{"version":3,"file":"ng-busy-19.mjs","sources":["../../../projects/ng-busy/src/lib/service/instance-config-holder.service.ts","../../../projects/ng-busy/src/lib/model/busy-config.ts","../../../projects/ng-busy/src/lib/util/isPromise.ts","../../../projects/ng-busy/src/lib/service/busy-tracker.service.ts","../../../projects/ng-busy/src/lib/service/busy-config-holder.service.ts","../../../projects/ng-busy/src/lib/component/ng-busy/ng-busy.component.ts","../../../projects/ng-busy/src/lib/component/ng-busy/ng-busy.component.html","../../../projects/ng-busy/src/lib/ng-busy.directive.ts","../../../projects/ng-busy/src/lib/ng-busy.module.ts","../../../projects/ng-busy/src/public_api.ts","../../../projects/ng-busy/src/ng-busy-19.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport {IBusyConfig} from '../model/busy-config';\n\n@Injectable({\n  providedIn: 'any'\n})\nexport class InstanceConfigHolderService {\n  public config: IBusyConfig;\n  constructor() { }\n}\n","import {Subscription} from 'rxjs';\nimport {Component, TemplateRef, Type, Inject, ChangeDetectorRef} from '@angular/core';\nimport {InstanceConfigHolderService} from '../service/instance-config-holder.service';\n\nexport class BusyConfig implements IBusyConfig {\n  template: TemplateRef<any> | Type<any>;\n  templateNgStyle: {};\n  delay: number;\n  minDuration: number;\n  backdrop: boolean;\n  message: string;\n  wrapperClass: string;\n  disableAnimation: boolean;\n\n  constructor(config: IBusyConfig = {}) {\n    for (const option of Object.keys(BUSY_CONFIG_DEFAULTS)) {\n      this[option] = config[option] !== undefined ? config[option] : BUSY_CONFIG_DEFAULTS[option];\n    }\n  }\n}\n\n@Component({\n  selector: 'default-busy',\n  template: `\n      <div class=\"ng-busy-default-wrapper\">\n          <div class=\"ng-busy-default-sign\">\n              <div class=\"ng-busy-default-spinner\">\n                  <div class=\"bar1\"></div>\n                  <div class=\"bar2\"></div>\n                  <div class=\"bar3\"></div>\n                  <div class=\"bar4\"></div>\n                  <div class=\"bar5\"></div>\n                  <div class=\"bar6\"></div>\n                  <div class=\"bar7\"></div>\n                  <div class=\"bar8\"></div>\n                  <div class=\"bar9\"></div>\n                  <div class=\"bar10\"></div>\n                  <div class=\"bar11\"></div>\n                  <div class=\"bar12\"></div>\n              </div>\n              <div class=\"ng-busy-default-text\">{{message}}</div>\n          </div>\n      </div>\n  `,\n  standalone: false\n})\nexport class DefaultBusyComponent {\n\n  constructor(@Inject('instanceConfigHolder') private instanceConfigHolder: InstanceConfigHolderService) {\n  }\n\n  get message() {\n    return this.instanceConfigHolder.config.message;\n  }\n}\n\nexport interface IBusyConfig {\n  template?: TemplateRef<any> | Type<any>;\n  templateNgStyle?: {};\n  delay?: number;\n  minDuration?: number;\n  backdrop?: boolean;\n  message?: string;\n  wrapperClass?: string;\n  busy?: Array<Promise<any> | Subscription>;\n  disableAnimation?: boolean;\n}\n\nexport const BUSY_CONFIG_DEFAULTS = {\n  template: DefaultBusyComponent,\n  templateNgStyle: {},\n  delay: 0,\n  minDuration: 0,\n  backdrop: true,\n  message: 'Please wait...',\n  wrapperClass: 'ng-busy',\n  disableAnimation: false\n};\n","export function isPromise(value: any): value is PromiseLike<any> {\n  return value && typeof (<any>value).subscribe !== 'function' && typeof (value as any).then === 'function';\n}\n","import { Injectable, OnDestroy } from '@angular/core';\nimport {\n  BehaviorSubject, Observable, Subject, tap,\n  Subscription, concatAll, from, takeUntil,\n  timer, map, take, filter, combineLatest\n} from 'rxjs';\nimport { isPromise } from '../util/isPromise';\n\nexport interface TrackerOptions {\n  minDuration: number;\n  delay: number;\n  busyList: Array<Promise<any> | Subscription>;\n}\n\n@Injectable({\n  providedIn: 'any'\n})\nexport class BusyTrackerService implements OnDestroy {\n\n  private busyQueue: Array<Subscription> = [];\n  private operations: Subject<Observable<any>> = new Subject<Observable<any>>();\n  private busyDone: Subject<any> = new Subject<any>();\n  private destroyIndicator: Subject<any> = new Subject<any>();\n  private checkSubject: Subject<TrackerOptions> = new Subject<TrackerOptions>();\n  private processingIndicator: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);\n  active: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);\n\n  get isActive(): boolean {\n    return this.active.value;\n  }\n\n  get busyList() {\n    return [...this.busyQueue];\n  }\n\n  get isBusy() {\n    return this.busyQueue.filter(b => !b.closed).length > 0;\n  }\n\n  constructor() {\n    this.reset();\n    this.operations.pipe(takeUntil(this.destroyIndicator), concatAll()).subscribe();\n    this.checkSubject.pipe(takeUntil(this.destroyIndicator)).subscribe((options) => {\n      this.processingIndicator.pipe(take(1)).subscribe((isProcessing) => {\n        if (isProcessing === false && this.isBusy) {\n          this.processingIndicator.next(true);\n          timer(options.delay || 0).pipe(map(() => this.isBusy)).subscribe((stillBusy) => {\n            if (stillBusy) {\n              this.active.next(stillBusy);\n              combineLatest([this.busyDone, timer(options.minDuration || 0)])\n              .pipe(takeUntil(this.active.pipe(filter(a => a === false))))\n              .subscribe(() => {\n                this.operations.next(new Observable((subscriber) => {\n                  if (!this.isBusy) {\n                    this.reset();\n                  }\n                  subscriber.complete();\n                }));\n              });\n            } else {\n              this.processingIndicator.next(false);\n            }\n          });\n        }\n      });\n    });\n  }\n\n  load(options: TrackerOptions) {\n    this.operations.next(\n      from(options.busyList).pipe(\n        filter(busy => busy !== null && busy !== undefined && !busy.hasOwnProperty('__loaded_mark_by_ng_busy')),\n        tap((busy) => Object.defineProperty(busy, '__loaded_mark_by_ng_busy', {\n          value: true, configurable: false, enumerable: false, writable: false\n        })),\n        map((busy) => isPromise(busy) ? from(busy).subscribe() : busy),\n        tap(subscription => this.appendToQueue(subscription))\n      )\n    );\n    this.checkSubject.next(options);\n  }\n\n  private updateActiveStatus() {\n    this.busyQueue = this.busyQueue.filter((cur: Subscription) => cur && !cur.closed);\n    if (this.busyQueue.length === 0) {\n      this.busyDone.next(true);\n    }\n  }\n\n  private reset() {\n    this.active.next(false);\n    this.busyQueue = [];\n    this.processingIndicator.next(false);\n  }\n\n  private appendToQueue(busy: Subscription) {\n    this.busyQueue.push(busy);\n    busy.add(() => {\n      this.operations.next(new Observable((subscriber) => {\n        this.updateActiveStatus();\n        subscriber.complete();\n      }));\n    });\n  }\n\n  ngOnDestroy(): void {\n    this.destroyIndicator.next(null);\n  }\n}\n","import {Injectable, Optional} from '@angular/core';\nimport {BUSY_CONFIG_DEFAULTS, BusyConfig} from '../model/busy-config';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class BusyConfigHolderService {\n  config: BusyConfig;\n\n  constructor(@Optional() config: BusyConfig) {\n    this.config = Object.assign({}, BUSY_CONFIG_DEFAULTS, config || new BusyConfig());\n  }\n}\n","import { ChangeDetectorRef, Component, EventEmitter, Inject, OnDestroy, ViewContainerRef } from '@angular/core';\nimport { animate, style, transition, trigger } from '@angular/animations';\nimport { InstanceConfigHolderService } from '../../service/instance-config-holder.service';\nimport { Subject, takeUntil } from 'rxjs';\n\nconst inactiveStyle = style({\n  opacity: 0,\n  transform: 'translateY(-40px)'\n});\nconst timing = '.3s ease';\n\n@Component({\n  selector: 'lib-ng-busy',\n  templateUrl: './ng-busy.component.html',\n  styleUrls: ['./ng-busy.component.css'],\n  animations: [\n    trigger('flyInOut', [\n      transition('void => *', [\n        inactiveStyle,\n        animate(timing)\n      ]),\n      transition('* => void', [\n        animate(timing, inactiveStyle)\n      ])\n    ])\n  ],\n  standalone: false\n})\nexport class NgBusyComponent implements OnDestroy {\n\n  public wrapperClass: string;\n  public disableAnimation = false;\n  public showBackdrop = true;\n  private destroyIndicator = new Subject<any>();\n  public show = new Subject<boolean>();\n\n  constructor(\n    @Inject('instanceConfigHolder') private instanceConfigHolder: InstanceConfigHolderService,\n    @Inject('busyEmitter') public busyEmitter: EventEmitter<boolean>,\n    public vcr: ViewContainerRef,\n    private cdr: ChangeDetectorRef,\n  ) {\n    this.show.pipe(takeUntil(this.destroyIndicator)).subscribe(() => {\n      this.cdr.detectChanges();\n    });\n    this.busyEmitter.pipe(takeUntil(this.destroyIndicator))\n      .subscribe((isActive: boolean) => {\n        if (isActive === true) {\n          const config = this.instanceConfigHolder.config;\n          this.wrapperClass = config.wrapperClass;\n          this.showBackdrop = config.backdrop;\n          this.disableAnimation = config.disableAnimation;\n        }\n        this.show.next(isActive);\n      });\n  }\n\n  ngOnDestroy(): void {\n    this.destroyIndicator.next(null);\n  }\n\n}\n","<ng-container *ngIf=\"show | async\">\n  <div [class]=\"wrapperClass\" @flyInOut [@.disabled]=\"disableAnimation\">\n    <ng-content></ng-content>\n  </div>\n  <div class=\"ng-busy-backdrop\" @flyInOut [@.disabled]=\"disableAnimation\" *ngIf=\"showBackdrop\">\n  </div>\n</ng-container>\n","import {\n  ChangeDetectorRef,\n  ComponentRef,\n  Directive, DoCheck,\n  EventEmitter, Injector,\n  Input, OnDestroy,\n  Output,\n  Renderer2,\n  TemplateRef, Type,\n  ViewContainerRef\n} from '@angular/core';\nimport { BusyTrackerService } from './service/busy-tracker.service';\nimport { BusyConfigHolderService } from './service/busy-config-holder.service';\nimport { Subject, Subscription, distinctUntilChanged, skip, takeUntil } from 'rxjs';\nimport { IBusyConfig } from './model/busy-config';\nimport { NgBusyComponent } from './component/ng-busy/ng-busy.component';\nimport { InstanceConfigHolderService } from './service/instance-config-holder.service';\nimport { isPromise } from './util/isPromise';\n\n@Directive({\n  selector: '[ngBusy]',\n  providers: [BusyTrackerService, InstanceConfigHolderService],\n  exportAs: 'ngBusy',\n  standalone: false\n})\nexport class NgBusyDirective implements DoCheck, OnDestroy {\n  @Input('ngBusy')\n  set options(op) {\n    this._option = op;\n  }\n\n  get options() {\n    return this._option;\n  }\n\n  get trackerService() {\n    return this.tracker;\n  }\n\n  @Output() busyStart = new EventEmitter();\n  @Output() busyStop = new EventEmitter();\n  private _option: any;\n  private optionsNorm: IBusyConfig;\n  private busyRef: ComponentRef<NgBusyComponent>;\n  private destroyIndicator: Subject<any> = new Subject<any>();\n  private configLoader: Subject<IBusyConfig> = new Subject<IBusyConfig>();\n  private busyEmitter: EventEmitter<boolean> = new EventEmitter<boolean>();\n  public template: TemplateRef<any> | Type<any>;\n  public templateNgStyle: {};\n\n  constructor(private configHolder: BusyConfigHolderService,\n    private instanceConfigHolder: InstanceConfigHolderService,\n    private tracker: BusyTrackerService,\n    private cdr: ChangeDetectorRef,\n    private vcr: ViewContainerRef,\n    private renderer: Renderer2,\n    private injector: Injector) {\n    tracker.active.pipe(skip(1), takeUntil(this.destroyIndicator), distinctUntilChanged()).subscribe((status) => {\n      if (status === true) {\n        this.recreateBusyIfNecessary();\n        this.busyStart.emit();\n      } else {\n        this.busyStop.emit();\n      }\n      this.busyEmitter.next(status);\n    });\n    this.configLoader.pipe(takeUntil(this.destroyIndicator)).subscribe((config) => {\n      const busyList = config.busy.filter(b => b?.['closed'] !== true && !b?.hasOwnProperty?.('__loaded_mark_by_ng_busy'));\n      this.optionsNorm = config;\n      this.instanceConfigHolder.config = this.optionsNorm;\n      if (busyList.length > 0) {\n        this.tracker.load({\n          busyList, delay: this.optionsNorm.delay,\n          minDuration: this.optionsNorm.minDuration\n        });\n      }\n    });\n  }\n\n  ngDoCheck() {\n    this.configLoader.next(this.normalizeOptions(this.options));\n  }\n\n  ngOnDestroy() {\n    this.destroyIndicator.next(null);\n  }\n\n  private recreateBusyIfNecessary() {\n    this.destroyComponents();\n    this.template = this.optionsNorm.template;\n    this.templateNgStyle = this.optionsNorm.templateNgStyle;\n    this.createBusy();\n  }\n\n  private normalizeOptions(options: any): IBusyConfig {\n    if (!options) {\n      options = { busy: [] };\n    } else if (Array.isArray(options)) {\n      options = { busy: options };\n    } else if (isPromise(options) || options instanceof Subscription) {\n      options = { busy: [options] }\n    }\n    options = Object.assign({}, this.configHolder.config, options);\n    if (!Array.isArray(options.busy)) {\n      options.busy = [options.busy];\n    }\n    return options;\n  }\n\n  private destroyComponents() {\n    if (this.busyRef) {\n      this.busyRef.destroy();\n    }\n  }\n\n  private createBusy() {\n    const injector = Injector.create({\n      providers: [\n        {\n          provide: 'instanceConfigHolder',\n          useValue: this.instanceConfigHolder\n        },\n        {\n          provide: 'busyEmitter',\n          useValue: this.busyEmitter\n        }\n      ], parent: this.injector\n    });\n    this.template = this.optionsNorm.template;\n    this.busyRef = this.vcr.createComponent(NgBusyComponent, { injector, projectableNodes: this.generateNgContent(injector) });\n    this.busyRef.onDestroy(() => {\n      this.busyRef.instance.ngOnDestroy();\n    });\n    this.cdr.markForCheck();\n    this.busyRef.hostView.detectChanges();\n  }\n\n  private generateNgContent(injector: Injector) {\n    if (typeof this.template === 'string') {\n      const element = this.renderer.createText(this.template);\n      return [[element]];\n    }\n    if (this.template instanceof TemplateRef) {\n      const context = {};\n      const viewRef = this.template.createEmbeddedView(context);\n      return [viewRef.rootNodes];\n    }\n    if (typeof this.template === 'function') {\n      const factory = this.vcr.createComponent(this.template, { injector });\n      factory.onDestroy(() => {\n        factory?.instance?.ngOnDestroy?.();\n      });\n      factory.changeDetectorRef.markForCheck();\n      return [[factory.location.nativeElement]];\n    }\n    return [[]];\n  }\n\n}","import {ModuleWithProviders, NgModule} from '@angular/core';\nimport {BusyConfig, DefaultBusyComponent, IBusyConfig} from './model/busy-config';\nimport {CommonModule} from '@angular/common';\nimport {BusyTrackerService} from './service/busy-tracker.service';\nimport {BusyConfigHolderService} from './service/busy-config-holder.service';\nimport {NgBusyDirective} from './ng-busy.directive';\nimport {NgBusyComponent} from './component/ng-busy/ng-busy.component';\n\n@NgModule({\n    imports: [CommonModule],\n    declarations: [DefaultBusyComponent, NgBusyDirective, NgBusyComponent],\n    providers: [BusyConfigHolderService, BusyTrackerService],\n    exports: [NgBusyDirective]\n})\nexport class NgBusyModule {\n  static forRoot(config: IBusyConfig): ModuleWithProviders<NgBusyModule> {\n    return {\n      ngModule: NgBusyModule,\n      providers: [\n        {provide: BusyConfig, useValue: config}\n      ]\n    };\n  }\n}\n","/*\n * Public API Surface of ng-busy\n */\n\nexport * from \"./lib/ng-busy.module\";\nexport * from \"./lib/util/isPromise\";\nexport * from \"./lib/model/busy-config\";\nexport { NgBusyDirective } from \"./lib/ng-busy.directive\";\nexport { NgBusyComponent } from \"./lib/component/ng-busy/ng-busy.component\";\nexport { InstanceConfigHolderService } from \"./lib/service/instance-config-holder.service\";\nexport { BusyTrackerService } from \"./lib/service/busy-tracker.service\";\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1.BusyConfig","i1.BusyConfigHolderService","i2.InstanceConfigHolderService","i3.BusyTrackerService"],"mappings":"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"}