{"version":3,"file":"anyvado-ng-busy.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/anyvado-ng-busy.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\nimport {IBusyConfig} from '../model/busy-config';\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class InstanceConfigHolderService {\r\n  public config?: IBusyConfig;\r\n  constructor() { \r\n  }\r\n}\r\n","import {Subscription} from 'rxjs';\r\nimport {Component, TemplateRef, Type, Inject, ChangeDetectorRef} from '@angular/core';\r\nimport {InstanceConfigHolderService} from '../service/instance-config-holder.service';\r\n\r\nexport class BusyConfig implements IBusyConfig {\r\n  template?: TemplateRef<any> | Type<any>;\r\n  templateNgStyle?: {};\r\n  delay?: number;\r\n  minDuration?: number;\r\n  backdrop?: boolean;\r\n  message?: string;\r\n  wrapperClass?: string;\r\n  disableAnimation?: boolean;\r\n\r\n  constructor(config: IBusyConfig = {}) {\r\n    for (const option of Object.keys(BUSY_CONFIG_DEFAULTS)) {\r\n      const model = this as any;\r\n      model[option] = (config as any)[option] !== undefined ? (config as any)[option] : (BUSY_CONFIG_DEFAULTS as any)[option];\r\n    }\r\n  }\r\n}\r\n\r\n@Component({\r\n  selector: 'default-busy',\r\n  template: `\r\n      <div class=\"ng-busy-default-wrapper\">\r\n          <div class=\"ng-busy-default-sign\">\r\n              <div class=\"ng-busy-default-spinner\">\r\n                  <div class=\"bar1\"></div>\r\n                  <div class=\"bar2\"></div>\r\n                  <div class=\"bar3\"></div>\r\n                  <div class=\"bar4\"></div>\r\n                  <div class=\"bar5\"></div>\r\n                  <div class=\"bar6\"></div>\r\n                  <div class=\"bar7\"></div>\r\n                  <div class=\"bar8\"></div>\r\n                  <div class=\"bar9\"></div>\r\n                  <div class=\"bar10\"></div>\r\n                  <div class=\"bar11\"></div>\r\n                  <div class=\"bar12\"></div>\r\n              </div>\r\n              <div class=\"ng-busy-default-text\">{{message}}</div>\r\n          </div>\r\n      </div>\r\n  `,\r\n})\r\nexport class DefaultBusyComponent {\r\n\r\n  constructor(@Inject('instanceConfigHolder') private instanceConfigHolder: InstanceConfigHolderService) {\r\n  }\r\n\r\n  get message() {\r\n    return this.instanceConfigHolder.config?.message;\r\n  }\r\n}\r\n\r\nexport interface IBusyConfig {\r\n  template?: TemplateRef<any> | Type<any>;\r\n  templateNgStyle?: {};\r\n  delay?: number;\r\n  minDuration?: number;\r\n  backdrop?: boolean;\r\n  message?: string;\r\n  wrapperClass?: string;\r\n  busy?: Array<Promise<any> | Subscription>;\r\n  disableAnimation?: boolean;\r\n}\r\n\r\nexport const BUSY_CONFIG_DEFAULTS = {\r\n  template: DefaultBusyComponent,\r\n  templateNgStyle: {},\r\n  delay: 0,\r\n  minDuration: 0,\r\n  backdrop: true,\r\n  message: 'Please wait...',\r\n  wrapperClass: 'ng-busy',\r\n  disableAnimation: false\r\n};\r\n","export function isPromise(value: any): value is PromiseLike<any> {\r\n  return value && typeof (<any>value).subscribe !== 'function' && typeof (value as any).then === 'function';\r\n}\r\n","import {EventEmitter, Injectable, OnDestroy} from '@angular/core';\r\nimport {Subscription, from, timer} from 'rxjs';\r\nimport {isPromise} from '../util/isPromise';\r\n\r\nexport interface TrackerOptions {\r\n  minDuration: number;\r\n  delay: number;\r\n  busyList: Array<Promise<any> | Subscription>;\r\n}\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class BusyTrackerService implements OnDestroy {\r\n\r\n  private isDelayProcessing = false;\r\n  private isDurationProcessing = false;\r\n  private isBusiesProcessing = false;\r\n  private busyQueue: Array<Subscription> = [];\r\n  private __isActive = false;\r\n\r\n  onStartBusy: EventEmitter<any> = new EventEmitter();\r\n  onStopBusy: EventEmitter<any> = new EventEmitter();\r\n\r\n  get isActive(): boolean {\r\n    return this.__isActive;\r\n  }\r\n\r\n  set isActive(val: boolean) {\r\n    if (this.__isActive === false && val === true && this.onStartBusy) {\r\n      this.onStartBusy.emit();\r\n    }\r\n    if (this.__isActive === true && val === false && this.onStopBusy) {\r\n      this.isBusiesProcessing = false;\r\n      this.onStopBusy.emit();\r\n    }\r\n    this.__isActive = val;\r\n  }\r\n  get busyList() {\r\n    return this.busyQueue;\r\n  }\r\n\r\n  constructor() {}\r\n\r\n  load(options: TrackerOptions) {\r\n    this.loadBusyQueue(options.busyList);\r\n    this.startLoading(options);\r\n  }\r\n\r\n  private updateActiveStatus() {\r\n    this.isActive = this.isBusiesProcessing &&\r\n      !this.isDelayProcessing &&\r\n      (this.isDurationProcessing || this.busyQueue.length > 0);\r\n  }\r\n\r\n  private startLoading(options: TrackerOptions) {\r\n    if (!this.isBusiesProcessing && this.busyList.length > 0) {\r\n      this.isBusiesProcessing = true;\r\n      this.isDelayProcessing = true;\r\n      this.updateActiveStatus();\r\n      timer(options.delay).subscribe(() => {\r\n        this.isDelayProcessing = false;\r\n        this.isDurationProcessing = true;\r\n        this.updateActiveStatus();\r\n        timer(options.minDuration).subscribe(() => {\r\n          this.isDurationProcessing = false;\r\n          this.updateActiveStatus();\r\n        });\r\n      });\r\n    }\r\n  }\r\n\r\n  private loadBusyQueue(busies: Array<Promise<any> | Subscription>) {\r\n    busies.filter((busy) => {\r\n      return busy && !busy.hasOwnProperty('__loaded_mark_by_ng_busy');\r\n    }).forEach((busy: Promise<any> | Subscription) => {\r\n      Object.defineProperty(busy, '__loaded_mark_by_ng_busy', {\r\n        value: true, configurable: false, enumerable: false, writable: false\r\n      });\r\n      let cur_busy;\r\n      if (isPromise(busy)) {\r\n        cur_busy = from(busy).subscribe();\r\n      } else {\r\n        cur_busy = busy;\r\n      }\r\n      this.appendToQueue(cur_busy);\r\n    });\r\n  }\r\n\r\n  private appendToQueue(busy: Subscription) {\r\n    this.busyQueue.push(busy);\r\n    busy.add(() => {\r\n      this.busyQueue = this.busyQueue.filter((cur: Subscription) => !cur.closed);\r\n      this.updateActiveStatus();\r\n    });\r\n  }\r\n\r\n  ngOnDestroy(): void {\r\n  }\r\n}\r\n","import {Injectable, Optional} from '@angular/core';\r\nimport {BUSY_CONFIG_DEFAULTS, BusyConfig} from '../model/busy-config';\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class BusyConfigHolderService {\r\n  config: BusyConfig;\r\n\r\n  constructor(@Optional() config: BusyConfig) {\r\n    this.config = Object.assign({}, BUSY_CONFIG_DEFAULTS, config || new BusyConfig());\r\n  }\r\n}\r\n","import {ChangeDetectorRef, Component, EventEmitter, Inject, OnDestroy} from '@angular/core';\r\nimport {animate, style, transition, trigger} from '@angular/animations';\r\nimport {Subscription} from 'rxjs/internal/Subscription';\r\nimport {NgBusyDirective} from '../../ng-busy.directive';\r\nimport {InstanceConfigHolderService} from '../../service/instance-config-holder.service';\r\n\r\nconst inactiveStyle = style({\r\n  opacity: 0,\r\n  transform: 'translateY(-40px)'\r\n});\r\nconst timing = '.3s ease';\r\n\r\n@Component({\r\n  selector: 'lib-ng-busy',\r\n  templateUrl: './ng-busy.component.html',\r\n  styleUrls: ['./ng-busy.component.css'],\r\n  animations: [\r\n    trigger('flyInOut', [\r\n      transition('void => *', [\r\n        inactiveStyle,\r\n        animate(timing)\r\n      ]),\r\n      transition('* => void', [\r\n        animate(timing, inactiveStyle)\r\n      ])\r\n    ])\r\n  ]\r\n})\r\nexport class NgBusyComponent implements OnDestroy {\r\n\r\n  public wrapperClass?: string;\r\n  public disableAnimation = false;\r\n  public showBackdrop = true;\r\n  private readonly busyMonitor: Subscription;\r\n  isActive = false;\r\n\r\n  constructor(\r\n    @Inject('instanceConfigHolder') private instanceConfigHolder: InstanceConfigHolderService,\r\n    @Inject('busyEmitter') private busyEmitter: EventEmitter<boolean>,\r\n    private readonly cdr: ChangeDetectorRef\r\n  ) {\r\n    this.busyMonitor = this.busyEmitter.subscribe((isActive: boolean) => {\r\n      const config = this.instanceConfigHolder.config;\r\n      this.isActive = isActive;\r\n      this.wrapperClass = config?.wrapperClass;\r\n      this.showBackdrop = config?.backdrop || true;\r\n      this.disableAnimation = config?.disableAnimation || false;\r\n      if (this.cdr) {\r\n        this.cdr.markForCheck();\r\n      }\r\n    });\r\n  }\r\n\r\n  ngOnDestroy(): void {\r\n    if (this.busyMonitor) {\r\n      this.busyMonitor.unsubscribe();\r\n    }\r\n  }\r\n\r\n}\r\n","<div [class]=\"wrapperClass\" @flyInOut [@.disabled]=\"disableAnimation\" *ngIf=\"isActive\">\r\n  <ng-content></ng-content>\r\n</div>\r\n<div class=\"ng-busy-backdrop\" @flyInOut [@.disabled]=\"disableAnimation\" *ngIf=\"showBackdrop && isActive\">\r\n</div>\r\n","import {\r\n  ApplicationRef,\r\n  ComponentRef,\r\n  Directive, DoCheck,\r\n  ElementRef,\r\n  EventEmitter, Injector,\r\n  Input, OnDestroy,\r\n  Output,\r\n  Renderer2,\r\n  TemplateRef, Type,\r\n  ViewContainerRef, ViewRef\r\n} from '@angular/core';\r\nimport { BusyTrackerService } from './service/busy-tracker.service';\r\nimport { BusyConfigHolderService } from './service/busy-config-holder.service';\r\nimport { Subscription } from 'rxjs';\r\nimport { IBusyConfig } from './model/busy-config';\r\nimport { NgBusyComponent } from './component/ng-busy/ng-busy.component';\r\nimport { InstanceConfigHolderService } from './service/instance-config-holder.service';\r\nimport { isPromise } from './util/isPromise';\r\n\r\n@Directive({\r\n  selector: '[ngBusy]',\r\n  providers: [BusyTrackerService, InstanceConfigHolderService],\r\n  host: {'collision-id': 'directive'}\r\n})\r\nexport class NgBusyDirective implements DoCheck, OnDestroy {\r\n  @Input('ngBusy')\r\n  set options(op) {\r\n    this._option = op;\r\n  }\r\n\r\n  get options() {\r\n    return this._option;\r\n  }\r\n\r\n  @Output() busyStart = new EventEmitter();\r\n  @Output() busyStop = new EventEmitter();\r\n  private optionsNorm?: IBusyConfig;\r\n  private busyRef?: ComponentRef<NgBusyComponent>;\r\n  private componentViewRef?: ViewRef;\r\n  private onStartSubscription: Subscription;\r\n  private onStopSubscription: Subscription;\r\n  private isLoading = false;\r\n  private busyEmitter: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n  public template: TemplateRef<any> | Type<any> | undefined;\r\n  public templateNgStyle: {} | undefined;\r\n  private _option: any;\r\n\r\n  constructor(private configHolder: BusyConfigHolderService,\r\n    private instanceConfigHolder: InstanceConfigHolderService,\r\n    private tracker: BusyTrackerService,\r\n    private appRef: ApplicationRef,\r\n    private vcr: ViewContainerRef,\r\n    private element: ElementRef,\r\n    private renderer: Renderer2,\r\n    private injector: Injector) {\r\n    this.onStartSubscription = tracker.onStartBusy.subscribe(() => {\r\n      setTimeout(() => {\r\n        this.recreateBusyIfNecessary();\r\n        this.isLoading = true;\r\n        this.busyEmitter.emit(this.isLoading);\r\n        this.busyStart.emit();\r\n      }, 0);\r\n    });\r\n    this.onStopSubscription = tracker.onStopBusy.subscribe(() => {\r\n      this.isLoading = false;\r\n      this.busyEmitter.emit(this.isLoading);\r\n      this.busyStop.emit();\r\n      if (this.componentViewRef) {\r\n        this.appRef.detachView(this.componentViewRef);\r\n        this.componentViewRef.destroy();\r\n      }\r\n    });\r\n  }\r\n\r\n  ngDoCheck() {\r\n    this.optionsNorm = this.normalizeOptions(this.options);\r\n    this.instanceConfigHolder.config = this.optionsNorm;\r\n    this.tracker.load({\r\n      busyList: this.optionsNorm.busy || [],\r\n      delay: this.optionsNorm.delay || 0,\r\n      minDuration: this.optionsNorm.minDuration || 0\r\n    });\r\n  }\r\n\r\n  ngOnDestroy() {\r\n    this.destroyComponents();\r\n    this.onStartSubscription.unsubscribe();\r\n    this.onStopSubscription.unsubscribe();\r\n  }\r\n\r\n  private recreateBusyIfNecessary() {\r\n    if (!this.busyRef\r\n      || this.template !== this.optionsNorm?.template\r\n      || this.templateNgStyle !== this.optionsNorm?.templateNgStyle\r\n    ) {\r\n      this.destroyComponents();\r\n      this.template = this.optionsNorm?.template;\r\n      this.templateNgStyle = this.optionsNorm?.templateNgStyle;\r\n      this.createBusy();\r\n      this.busyEmitter.emit(this.isLoading);\r\n    }\r\n  }\r\n\r\n  private normalizeOptions(options: any): IBusyConfig {\r\n    if (!options) {\r\n      options = { busy: [] };\r\n    } else if (Array.isArray(options)\r\n      || isPromise(options)\r\n      || options instanceof Subscription\r\n    ) {\r\n      options = { busy: options };\r\n    }\r\n    options = Object.assign({}, this.configHolder.config, options);\r\n    if (!Array.isArray(options.busy)) {\r\n      options.busy = [options.busy];\r\n    }\r\n    return options;\r\n  }\r\n\r\n  private destroyComponents() {\r\n    if (this.busyRef) {\r\n      this.busyRef.destroy();\r\n    }\r\n    if (this.componentViewRef) {\r\n      this.appRef.detachView(this.componentViewRef);\r\n    }\r\n  }\r\n\r\n  private createBusy() {\r\n    const injector = Injector.create({\r\n      providers: [\r\n        {\r\n          provide: 'instanceConfigHolder',\r\n          useValue: this.instanceConfigHolder\r\n        },\r\n        {\r\n          provide: 'busyEmitter',\r\n          useValue: this.busyEmitter\r\n        }\r\n      ], parent: this.injector\r\n    });\r\n    this.template = this.optionsNorm?.template;\r\n\r\n    this.busyRef = this.vcr.createComponent(NgBusyComponent, {\r\n      index: 0,\r\n      injector,\r\n      projectableNodes: this.generateNgContent(injector)\r\n    });\r\n  }\r\n\r\n  private generateNgContent(injector: Injector) {\r\n    if (!this.template) {\r\n      return;\r\n    }\r\n    if (typeof this.template === 'string') {\r\n      const element = this.renderer.createText(this.template);\r\n      return [[element]];\r\n    }\r\n    if (this.template instanceof TemplateRef) {\r\n      const context = {};\r\n      const viewRef = this.template.createEmbeddedView(context);\r\n      return [viewRef.rootNodes];\r\n    }\r\n    const componentRef = this.vcr.createComponent(this.template, {\r\n      injector\r\n    });\r\n    componentRef.instance.templateNgStyle = this.options.templateNgStyle;\r\n    this.componentViewRef = componentRef.hostView;\r\n    return [[componentRef.location.nativeElement]];\r\n  }\r\n\r\n}\r\n","import {ModuleWithProviders, NgModule} from '@angular/core';\r\nimport {BusyConfig, DefaultBusyComponent, IBusyConfig} from './model/busy-config';\r\nimport {CommonModule} from '@angular/common';\r\nimport {BusyTrackerService} from './service/busy-tracker.service';\r\nimport {BusyConfigHolderService} from './service/busy-config-holder.service';\r\nimport {NgBusyDirective} from './ng-busy.directive';\r\nimport {NgBusyComponent} from './component/ng-busy/ng-busy.component';\r\n\r\n@NgModule({\r\n  imports: [CommonModule],\r\n  declarations: [DefaultBusyComponent, NgBusyDirective, NgBusyComponent],\r\n  providers: [BusyConfigHolderService, BusyTrackerService],\r\n  exports: [NgBusyDirective]\r\n})\r\nexport class NgBusyModule {\r\n  static forRoot(config: IBusyConfig): ModuleWithProviders<NgBusyModule> {\r\n    return {\r\n      ngModule: NgBusyModule,\r\n      providers: [\r\n        {provide: BusyConfig, useValue: config}\r\n      ]\r\n    };\r\n  }\r\n}\r\n","/*\r\n * Public API Surface of ng-busy\r\n */\r\n\r\nexport * from \"./lib/ng-busy.module\";\r\nexport * from \"./lib/util/isPromise\";\r\nexport * from \"./lib/model/busy-config\";\r\nexport { NgBusyDirective } from \"./lib/ng-busy.directive\";\r\nexport { NgBusyComponent } from \"./lib/component/ng-busy/ng-busy.component\";\r\nexport { InstanceConfigHolderService } from \"./lib/service/instance-config-holder.service\";\r\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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"}