{"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/public_api.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?.type == null || init.type.length === 0) {\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  // private spinnerObservable = new ReplaySubject<NgxSpinner>(1);\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})\nexport class SafeHtmlPipe implements PipeTransform {\n  constructor(private _sanitizer: DomSanitizer) {}\n\n  transform(v: string): SafeHtml {\n    if (v) {\n      return this._sanitizer.bypassSecurityTrustHtml(v);\n    }\n  }\n}\n","import {\n  Component,\n  OnDestroy,\n  Input,\n  OnInit,\n  OnChanges,\n  SimpleChange,\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  HostListener,\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\";\n\n@Component({\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  @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 { CommonModule } from \"@angular/common\";\nimport { NgxSpinnerComponent } from \"./ngx-spinner.component\";\nimport { SafeHtmlPipe } from \"./safe-html.pipe\";\nimport { NgxSpinnerConfig, NGX_SPINNER_CONFIG } from \"./config\";\n\n@NgModule({\n  imports: [CommonModule],\n  declarations: [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","/*\n * Public API Surface of ngx-spinner\n */\nexport * from \"./lib/ngx-spinner.service\";\nexport * from \"./lib/ngx-spinner.component\";\nexport * from \"./lib/ngx-spinner.module\";\nexport * from \"./lib/ngx-spinner.enum\";\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i3.SafeHtmlPipe"],"mappings":"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"}