{"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<number>;\n  fullScreen: boolean;\n  show: boolean;\n  zIndex: number;\n  template: string;\n  showSpinner: boolean;\n\n  constructor(init?: Partial<NgxSpinner>) {\n    Object.assign(this, init);\n  }\n\n  static create(init?: Partial<NgxSpinner>): NgxSpinner {\n    if (!init?.template && !init?.type) {\n      console.warn(`[ngx-spinner]: Property \"type\" is missed. Please, provide animation type to <ngx-spinner> 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<NgxSpinner>(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<NgxSpinner> {\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<NgxSpinnerConfig>(\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<number>;\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<void> = 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","<div\n  [@.disabled]=\"disableAnimation\"\n  [@fadeIn]=\"'in'\"\n  *ngIf=\"spinner.show\"\n  class=\"ngx-spinner-overlay\"\n  [style.background-color]=\"spinner.bdColor\"\n  [style.z-index]=\"spinner.zIndex\"\n  [style.position]=\"spinner.fullScreen ? 'fixed' : 'absolute'\"\n  #overlay\n>\n  <div *ngIf=\"!template\" [class]=\"spinner.class\" [style.color]=\"spinner.color\">\n    <div *ngFor=\"let index of spinner.divArray\"></div>\n  </div>\n  <div *ngIf=\"template\" [innerHTML]=\"template | safeHtml\"></div>\n  <div class=\"loading-text\" [style.z-index]=\"spinner.zIndex\">\n    <ng-content></ng-content>\n  </div>\n</div>\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<NgxSpinnerModule> {\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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"}