{"version":3,"file":"ngx-spinner.mjs","sources":["../../../projects/ngx-spinner/src/lib/ngx-spinner.enum.ts","../../../projects/ngx-spinner/src/lib/ngx-spinner.service.ts","../../../projects/ngx-spinner/src/lib/config.ts","../../../projects/ngx-spinner/src/lib/safe-html.pipe.ts","../../../projects/ngx-spinner/src/lib/ngx-spinner.component.ts","../../../projects/ngx-spinner/src/lib/ngx-spinner.component.html","../../../projects/ngx-spinner/src/lib/ngx-spinner.module.ts","../../../projects/ngx-spinner/src/lib/ngx-spinner.provider.ts","../../../projects/ngx-spinner/src/ngx-spinner.ts"],"sourcesContent":["export const LOADERS = {\n \"ball-8bits\": 16,\n \"ball-atom\": 4,\n \"ball-beat\": 3,\n \"ball-circus\": 5,\n \"ball-climbing-dot\": 4,\n \"ball-clip-rotate\": 1,\n \"ball-clip-rotate-multiple\": 2,\n \"ball-clip-rotate-pulse\": 2,\n \"ball-elastic-dots\": 5,\n \"ball-fall\": 3,\n \"ball-fussion\": 4,\n \"ball-grid-beat\": 9,\n \"ball-grid-pulse\": 9,\n \"ball-newton-cradle\": 4,\n \"ball-pulse\": 3,\n \"ball-pulse-rise\": 5,\n \"ball-pulse-sync\": 3,\n \"ball-rotate\": 1,\n \"ball-running-dots\": 5,\n \"ball-scale\": 1,\n \"ball-scale-multiple\": 3,\n \"ball-scale-pulse\": 2,\n \"ball-scale-ripple\": 1,\n \"ball-scale-ripple-multiple\": 3,\n \"ball-spin\": 8,\n \"ball-spin-clockwise\": 8,\n \"ball-spin-clockwise-fade\": 8,\n \"ball-spin-clockwise-fade-rotating\": 8,\n \"ball-spin-fade\": 8,\n \"ball-spin-fade-rotating\": 8,\n \"ball-spin-rotate\": 2,\n \"ball-square-clockwise-spin\": 8,\n \"ball-square-spin\": 8,\n \"ball-triangle-path\": 3,\n \"ball-zig-zag\": 2,\n \"ball-zig-zag-deflect\": 2,\n cog: 1,\n \"cube-transition\": 2,\n fire: 3,\n \"line-scale\": 5,\n \"line-scale-party\": 5,\n \"line-scale-pulse-out\": 5,\n \"line-scale-pulse-out-rapid\": 5,\n \"line-spin-clockwise-fade\": 8,\n \"line-spin-clockwise-fade-rotating\": 8,\n \"line-spin-fade\": 8,\n \"line-spin-fade-rotating\": 8,\n pacman: 6,\n \"square-jelly-box\": 2,\n \"square-loader\": 1,\n \"square-spin\": 1,\n timer: 1,\n \"triangle-skew-spin\": 1,\n};\n\nexport const DEFAULTS = {\n BD_COLOR: \"rgba(51,51,51,0.8)\",\n SPINNER_COLOR: \"#fff\",\n Z_INDEX: 99999,\n};\n\nexport const PRIMARY_SPINNER = \"primary\";\n\nexport type Size = \"default\" | \"small\" | \"medium\" | \"large\";\n\nexport interface Spinner {\n bdColor?: string;\n size?: Size;\n color?: string;\n type?: string;\n fullScreen?: boolean;\n zIndex?: number;\n template?: string;\n showSpinner?: boolean;\n}\n\nexport class NgxSpinner {\n name: string;\n bdColor: string;\n size: Size;\n color: string;\n type: string;\n class: string;\n divCount: number;\n divArray: Array;\n fullScreen: boolean;\n show: boolean;\n zIndex: number;\n template: string;\n showSpinner: boolean;\n\n constructor(init?: Partial) {\n Object.assign(this, init);\n }\n\n static create(init?: Partial): NgxSpinner {\n if (!init?.template && !init?.type) {\n console.warn(`[ngx-spinner]: Property \"type\" is missed. Please, provide animation type to component\n and ensure css is added to angular.json file`);\n }\n return new NgxSpinner(init);\n }\n}\n","import { Injectable } from \"@angular/core\";\nimport { Observable, BehaviorSubject } from \"rxjs\";\nimport { filter } from \"rxjs/operators\";\nimport { NgxSpinner, PRIMARY_SPINNER, Spinner } from \"./ngx-spinner.enum\";\n\n@Injectable({\n providedIn: \"root\",\n})\nexport class NgxSpinnerService {\n /**\n * Spinner observable\n *\n * @memberof NgxSpinnerService\n */\n public spinnerObservable = new BehaviorSubject(null);\n /**\n * Creates an instance of NgxSpinnerService.\n * @memberof NgxSpinnerService\n */\n constructor() {}\n /**\n * Get subscription of desired spinner\n * @memberof NgxSpinnerService\n **/\n getSpinner(name: string): Observable {\n return this.spinnerObservable\n .asObservable()\n .pipe(filter((x: NgxSpinner) => x && x.name === name));\n }\n /**\n * To show spinner\n *\n * @memberof NgxSpinnerService\n */\n show(name: string = PRIMARY_SPINNER, spinner?: Spinner) {\n return new Promise((resolve, _reject) => {\n setTimeout(() => {\n if (spinner && Object.keys(spinner).length) {\n spinner[\"name\"] = name;\n this.spinnerObservable.next(\n new NgxSpinner({ ...spinner, show: true })\n );\n resolve(true);\n } else {\n this.spinnerObservable.next(new NgxSpinner({ name, show: true }));\n resolve(true);\n }\n }, 10);\n });\n }\n /**\n * To hide spinner\n *\n * @memberof NgxSpinnerService\n */\n hide(name: string = PRIMARY_SPINNER, debounce: number = 10) {\n return new Promise((resolve, _reject) => {\n setTimeout(() => {\n this.spinnerObservable.next(new NgxSpinner({ name, show: false }));\n resolve(true);\n }, debounce);\n });\n }\n}\n","import { InjectionToken } from \"@angular/core\";\n\nexport interface NgxSpinnerConfig {\n type?: string;\n}\n\nexport const NGX_SPINNER_CONFIG = new InjectionToken(\n \"NGX_SPINNER_CONFIG\",\n);\n","import { DomSanitizer, SafeHtml } from \"@angular/platform-browser\";\nimport { Pipe, PipeTransform } from \"@angular/core\";\n\n@Pipe({\n name: \"safeHtml\",\n standalone: true,\n})\nexport class SafeHtmlPipe implements PipeTransform {\n constructor(private sanitizer: DomSanitizer) {}\n\n transform(value: string | null | undefined): SafeHtml {\n return value ? this.sanitizer.bypassSecurityTrustHtml(value) : '';\n }\n}\n","import {\n Component,\n OnDestroy,\n Input,\n OnInit,\n OnChanges,\n SimpleChange,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n ViewChild,\n ElementRef,\n Optional,\n Inject,\n} from \"@angular/core\";\nimport { NgxSpinnerService } from \"./ngx-spinner.service\";\nimport { Subject } from \"rxjs\";\nimport { takeUntil } from \"rxjs/operators\";\nimport {\n LOADERS,\n DEFAULTS,\n Size,\n NgxSpinner,\n PRIMARY_SPINNER,\n} from \"./ngx-spinner.enum\";\nimport {\n trigger,\n state,\n style,\n transition,\n animate,\n} from \"@angular/animations\";\nimport { NgxSpinnerConfig, NGX_SPINNER_CONFIG } from \"./config\";\nimport { SafeHtmlPipe } from \"./safe-html.pipe\";\nimport { NgFor, NgIf } from \"@angular/common\";\n\n@Component({\n imports: [SafeHtmlPipe, NgIf, NgFor],\n selector: \"ngx-spinner\",\n templateUrl: \"ngx-spinner.component.html\",\n styleUrls: [\"./ngx-spinner.component.css\"],\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [\n trigger(\"fadeIn\", [\n state(\"in\", style({ opacity: 1 })),\n transition(\":enter\", [style({ opacity: 0 }), animate(300)]),\n transition(\":leave\", animate(200, style({ opacity: 0 }))),\n ]),\n ]\n})\nexport class NgxSpinnerComponent implements OnDestroy, OnInit, OnChanges {\n /**\n * To set backdrop color\n * Only supports RGBA color format\n * @memberof NgxSpinnerComponent\n */\n @Input() bdColor: string;\n /**\n * To set spinner size\n *\n * @memberof NgxSpinnerComponent\n */\n @Input() size: Size;\n /**\n * To set spinner color(DEFAULTS.SPINNER_COLOR)\n *\n * @memberof NgxSpinnerComponent\n */\n @Input() color: string;\n /**\n * To set type of spinner\n *\n * @memberof NgxSpinnerComponent\n */\n @Input() type: string;\n /**\n * To toggle fullscreen mode\n *\n * @memberof NgxSpinnerComponent\n */\n @Input() fullScreen: boolean;\n /**\n * Spinner name\n *\n * @memberof NgxSpinnerComponent\n */\n @Input() name: string;\n /**\n * z-index value\n *\n * @memberof NgxSpinnerComponent\n */\n @Input() zIndex: number;\n /**\n * Custom template for spinner/loader\n *\n * @memberof NgxSpinnerComponent\n */\n @Input() template: string;\n /**\n * Show/Hide the spinner\n *\n * @type {boolean}\n * @memberof NgxSpinnerComponent\n */\n @Input() showSpinner: boolean;\n\n /**\n * To enable/disable animation\n *\n * @type {boolean}\n * @memberof NgxSpinnerComponent\n */\n @Input() disableAnimation: boolean = false;\n /**\n * Spinner Object\n *\n * @memberof NgxSpinnerComponent\n */\n spinner: NgxSpinner = new NgxSpinner();\n /**\n * Array for spinner's div\n *\n * @memberof NgxSpinnerComponent\n */\n divArray: Array;\n /**\n * Counter for div\n *\n * @memberof NgxSpinnerComponent\n *\n */\n divCount: number;\n /**\n * Show spinner\n *\n * @memberof NgxSpinnerComponent\n **/\n show: boolean;\n /**\n * Unsubscribe from spinner's observable\n *\n * @memberof NgxSpinnerComponent\n **/\n ngUnsubscribe: Subject = new Subject();\n /**\n * Element Reference\n *\n * @memberof NgxSpinnerComponent\n */\n @ViewChild(\"overlay\") spinnerDOM: { nativeElement: any };\n\n // TODO: https://github.com/Napster2210/ngx-spinner/issues/259\n // @HostListener(\"document:keydown\", [\"$event\"])\n // handleKeyboardEvent(event: KeyboardEvent) {\n // if (this.spinnerDOM && this.spinnerDOM.nativeElement) {\n // if (\n // this.fullScreen ||\n // (!this.fullScreen && this.isSpinnerZone(event.target))\n // ) {\n // event.returnValue = false;\n // event.preventDefault();\n // }\n // }\n // }\n\n /**\n * Creates an instance of NgxSpinnerComponent.\n *\n * @memberof NgxSpinnerComponent\n */\n constructor(\n private spinnerService: NgxSpinnerService,\n private changeDetector: ChangeDetectorRef,\n private elementRef: ElementRef,\n @Optional()\n @Inject(NGX_SPINNER_CONFIG)\n private globalConfig: NgxSpinnerConfig\n ) {\n this.bdColor = DEFAULTS.BD_COLOR;\n this.zIndex = DEFAULTS.Z_INDEX;\n this.color = DEFAULTS.SPINNER_COLOR;\n this.size = \"large\";\n this.fullScreen = true;\n this.name = PRIMARY_SPINNER;\n this.template = null;\n this.showSpinner = false;\n\n this.divArray = [];\n this.divCount = 0;\n this.show = false;\n }\n\n initObservable() {\n this.spinnerService\n .getSpinner(this.name)\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((spinner: NgxSpinner) => {\n this.setDefaultOptions();\n Object.assign(this.spinner, spinner);\n if (spinner.show) {\n this.onInputChange();\n }\n this.changeDetector.detectChanges();\n });\n }\n\n /**\n * Initialization method\n *\n * @memberof NgxSpinnerComponent\n */\n ngOnInit() {\n this.setDefaultOptions();\n this.initObservable();\n }\n\n /**\n * To check event triggers inside the Spinner Zone\n *\n * @param {*} element\n * @returns {boolean}\n * @memberof NgxSpinnerComponent\n */\n isSpinnerZone(element: any): boolean {\n if (element === this.elementRef.nativeElement.parentElement) {\n return true;\n }\n return element.parentNode && this.isSpinnerZone(element.parentNode);\n }\n\n /**\n * To set default ngx-spinner options\n *\n * @memberof NgxSpinnerComponent\n */\n setDefaultOptions = () => {\n const { type } = this.globalConfig ?? {};\n this.spinner = NgxSpinner.create({\n name: this.name,\n bdColor: this.bdColor,\n size: this.size,\n color: this.color,\n type: this.type ?? type,\n fullScreen: this.fullScreen,\n divArray: this.divArray,\n divCount: this.divCount,\n show: this.show,\n zIndex: this.zIndex,\n template: this.template,\n showSpinner: this.showSpinner,\n });\n };\n /**\n * On changes event for input variables\n *\n * @memberof NgxSpinnerComponent\n */\n ngOnChanges(changes: { [propKey: string]: SimpleChange }) {\n for (const propName in changes) {\n if (propName) {\n const changedProp = changes[propName];\n if (changedProp.isFirstChange()) {\n return;\n } else if (\n typeof changedProp.currentValue !== \"undefined\" &&\n changedProp.currentValue !== changedProp.previousValue\n ) {\n if (changedProp.currentValue !== \"\") {\n this.spinner[propName] = changedProp.currentValue;\n if (propName === \"showSpinner\") {\n if (changedProp.currentValue) {\n this.spinnerService.show(this.spinner.name, this.spinner);\n } else {\n this.spinnerService.hide(this.spinner.name);\n }\n }\n\n if (propName === \"name\") {\n this.initObservable();\n }\n }\n }\n }\n }\n }\n /**\n * To get class for spinner\n *\n * @memberof NgxSpinnerComponent\n */\n getClass(type: string, size: Size): string {\n this.spinner.divCount = LOADERS[type];\n this.spinner.divArray = Array(this.spinner.divCount)\n .fill(0)\n .map((_, i) => i);\n let sizeClass = \"\";\n switch (size.toLowerCase()) {\n case \"small\":\n sizeClass = \"la-sm\";\n break;\n case \"medium\":\n sizeClass = \"la-2x\";\n break;\n case \"large\":\n sizeClass = \"la-3x\";\n break;\n default:\n break;\n }\n return \"la-\" + type + \" \" + sizeClass;\n }\n /**\n * Check if input variables have changed\n *\n * @memberof NgxSpinnerComponent\n */\n onInputChange() {\n this.spinner.class = this.getClass(this.spinner.type, this.spinner.size);\n }\n /**\n * Component destroy event\n *\n * @memberof NgxSpinnerComponent\n */\n ngOnDestroy() {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n}\n","\n
\n
\n
\n
\n
\n \n
\n\n","import { ModuleWithProviders, NgModule } from \"@angular/core\";\nimport { NgxSpinnerComponent } from \"./ngx-spinner.component\";\nimport { SafeHtmlPipe } from \"./safe-html.pipe\";\nimport { NgxSpinnerConfig, NGX_SPINNER_CONFIG } from \"./config\";\n\n@NgModule({\n imports: [NgxSpinnerComponent, SafeHtmlPipe],\n exports: [NgxSpinnerComponent],\n})\nexport class NgxSpinnerModule {\n static forRoot(\n config?: NgxSpinnerConfig\n ): ModuleWithProviders {\n return {\n ngModule: NgxSpinnerModule,\n providers: [{ provide: NGX_SPINNER_CONFIG, useValue: config }],\n };\n }\n}\n","import {\n EnvironmentProviders,\n Provider,\n makeEnvironmentProviders,\n} from \"@angular/core\";\nimport { NGX_SPINNER_CONFIG, NgxSpinnerConfig } from \"./config\";\n\n/**\n * Provides the configuration for the NgxSpinner.\n *\n * @param config - The configuration object for NgxSpinner.\n * @returns An array of environment providers configured with the given NgxSpinner configuration.\n * @example\n * ```ts\n * import { provideSpinnerConfig } from 'ngx-spinner';\n *\n * bootstrap(AppComponent, {\n * providers: [\n * provideSpinnerConfig({type: 'ball-scale-multiple'}),\n * ],\n * })\n */\nexport const provideSpinnerConfig = (\n config: NgxSpinnerConfig,\n): EnvironmentProviders => {\n const providers: Provider[] = [\n {\n provide: NGX_SPINNER_CONFIG,\n useValue: config,\n },\n ];\n\n return makeEnvironmentProviders(providers);\n};\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}