{"version":3,"file":"ng-devui-loading.mjs","sources":["../../devui/loading/loading-backdrop.component.ts","../../devui/loading/loading.component.ts","../../devui/loading/loading.directive.ts","../../devui/loading/loading.service.ts","../../devui/loading/loading.module.ts","../../devui/loading/ng-devui-loading.ts"],"sourcesContent":["import { Component, Input, OnChanges, OnInit, SimpleChanges } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'd-loading-backdrop',\r\n  template: `<div\r\n    class=\"devui-loading-backdrop\"\r\n    [ngStyle]=\"{ 'z-index': zIndex }\"\r\n    [ngClass]=\"{ 'devui-loading-full': targetName === 'BODY' }\"\r\n    *ngIf=\"backdrop\"\r\n  ></div>`,\r\n  styleUrls: ['./loading-backdrop.component.scss'],\r\n  preserveWhitespaces: false,\r\n})\r\nexport class LoadingBackdropComponent implements OnInit, OnChanges {\r\n  @Input() backdrop = true;\r\n  @Input() target: Element;\r\n  @Input() zIndex: number;\r\n  targetName: string;\r\n\r\n  ngOnInit() {\r\n    if (this.target) {\r\n      this.targetName = this.target.nodeName;\r\n    }\r\n  }\r\n\r\n  ngOnChanges(changes: SimpleChanges): void {\r\n    if (changes.target) {\r\n      if (this.target) {\r\n        this.targetName = this.target.nodeName;\r\n      }\r\n    }\r\n  }\r\n}\r\n","import { Component, Input, OnChanges, OnInit, SimpleChanges, TemplateRef } from '@angular/core';\r\nimport { LoadingStyle } from './loading.types';\r\n@Component({\r\n  selector: 'd-loading',\r\n  template: `<div class=\"devui-loading-wrapper\" [ngClass]=\"{ 'devui-loading-full': targetName === 'BODY' }\" [style.zIndex]=\"zIndex\">\r\n    <ng-container *ngTemplateOutlet=\"loadingTemplateRef ? loadingTemplateRef : default\"> </ng-container>\r\n    <ng-template #default>\r\n      <div\r\n        class=\"devui-spinner-wrapper\"\r\n        [ngClass]=\"{ 'devui-fix-loading-position': !customPosition, 'devui-message-wrapper': !!message }\"\r\n        [ngStyle]=\"{ top: top, left: left }\"\r\n      >\r\n        <div class=\"devui-busy-default-sign\">\r\n          <div *ngIf=\"loadingStyle === 'default'\" class=\"devui-busy-default-spinner\">\r\n            <svg viewBox=\"25 25 50 50\">\r\n              <circle cx=\"50\" cy=\"50\" r=\"20\" fill=\"none\"></circle>\r\n            </svg>\r\n            <div class=\"devui-loading-dots\">\r\n              <span *ngFor=\"let spinner of spinners\"><i></i></span>\r\n            </div>\r\n          </div>\r\n          <div *ngIf=\"loadingStyle === 'infinity'\" class=\"devui-infinity-loading-wrapper\">\r\n            <svg\r\n              width=\"68px\"\r\n              height=\"34px\"\r\n              viewBox=\"0 0 68 34\"\r\n              version=\"1.1\"\r\n              xmlns=\"http://www.w3.org/2000/svg\"\r\n              xmlns:xlink=\"http://www.w3.org/1999/xlink\"\r\n            >\r\n              <defs>\r\n                <linearGradient\r\n                  x1=\"115.001687%\"\r\n                  y1=\"62.0561305%\"\r\n                  x2=\"5.52129005%\"\r\n                  y2=\"37.7390732%\"\r\n                  id=\"devui-container-loading-linearGradient\"\r\n                >\r\n                  <stop stop-color=\"#299BFF\" offset=\"0%\"></stop>\r\n                  <stop stop-color=\"#0064D6\" offset=\"100%\"></stop>\r\n                </linearGradient>\r\n              </defs>\r\n              <g id=\"Loading\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\r\n                <g id=\"oldLoading\" transform=\"translate(6.000000, 5.000000)\" stroke-width=\"5\">\r\n                  <path\r\n                    id=\"infinity-bg\"\r\n                    stroke-linecap=\"round\"\r\n                    stroke-linejoin=\"round\"\r\n                    stroke-miterlimit=\"10\"\r\n                    d=\"M28.8273356,12.0651475 C34.9215537,4.0217158 40.200047,0 44.6627517,0 C51.4764195,0 57,5.5964615 57,12.4999677 C57,\r\n                    19.4036031 51.4764195,25 44.6627517,25 C40.258896,25 35.0606745,21.0837108 29.0680872,13.2510678 L27.8765067,\r\n                    11.6765806 C21.9073188,3.8921935 16.7275235,0 12.3372483,0 C5.52358054,0 0,5.5964615 0,12.4999677 C0,\r\n                    19.4036031 5.52358054,25 12.3372483,25 C16.7979128,25 22.0734732,20.9820956 28.164057,\r\n                    12.9462221 L28.8273356,12.0651475 Z\"\r\n                  ></path>\r\n                  <path\r\n                    stroke=\"url(#devui-container-loading-linearGradient)\"\r\n                    id=\"infinity-outline\"\r\n                    stroke-linecap=\"round\"\r\n                    stroke-linejoin=\"round\"\r\n                    stroke-miterlimit=\"10\"\r\n                    d=\"M28.8273356,12.0651475 C34.9215537,4.0217158 40.200047,0 44.6627517,0 C51.4764195,0 57,5.5964615 57,12.4999677 C57,\r\n                    19.4036031 51.4764195,25 44.6627517,25 C40.258896,25 35.0606745,21.0837108 29.0680872,13.2510678 L27.8765067,\r\n                    11.6765806 C21.9073188,3.8921935 16.7275235,0 12.3372483,0 C5.52358054,0 0,5.5964615 0,12.4999677 C0,\r\n                    19.4036031 5.52358054,25 12.3372483,25 C16.7979128,25 22.0734732,20.9820956 28.164057,\r\n                    12.9462221 L28.8273356,12.0651475 Z\"\r\n                  ></path>\r\n                </g>\r\n              </g>\r\n            </svg>\r\n          </div>\r\n          <div class=\"devui-busy-default-text\" *ngIf=\"!!message\">{{ message }}</div>\r\n        </div>\r\n      </div>\r\n    </ng-template>\r\n  </div>`,\r\n  styleUrls: ['./loading.component.scss'],\r\n  preserveWhitespaces: false,\r\n})\r\nexport class LoadingComponent implements OnInit, OnChanges {\r\n  @Input() loadingTemplateRef: TemplateRef<any>;\r\n  @Input() message: string;\r\n  @Input() top: string;\r\n  @Input() left: string;\r\n  @Input() customPosition: boolean;\r\n  @Input() target: Element;\r\n  @Input() zIndex: number;\r\n  @Input() loadingStyle: LoadingStyle = 'default';\r\n  spinners = new Array(12);\r\n  targetName: string;\r\n\r\n  ngOnChanges(changes: SimpleChanges): void {\r\n    if (changes.target && this.target) {\r\n      this.targetName = this.target.nodeName;\r\n    }\r\n  }\r\n\r\n  ngOnInit(): void {\r\n    if (this.target) {\r\n      this.targetName = this.target.nodeName;\r\n    }\r\n  }\r\n\r\n  // Will overwrite this method in modal service\r\n  close() {}\r\n}\r\n","import {\r\n  ComponentFactoryResolver,\r\n  ComponentRef,\r\n  Directive,\r\n  ElementRef,\r\n  EmbeddedViewRef,\r\n  HostBinding,\r\n  Injector,\r\n  Input,\r\n  OnChanges,\r\n  SimpleChanges,\r\n  TemplateRef,\r\n  ViewContainerRef,\r\n  ViewRef,\r\n} from '@angular/core';\r\nimport { Observable, Subscription, forkJoin, from, throwError } from 'rxjs';\r\nimport { catchError } from 'rxjs/operators';\r\nimport { LoadingBackdropComponent } from './loading-backdrop.component';\r\nimport { LoadingComponent } from './loading.component';\r\nimport { ILoadingViewPosition, LoadingStyle, LoadingType } from './loading.types';\r\n@Directive({\r\n  selector: '[dLoading]',\r\n  exportAs: 'dLoading',\r\n})\r\nexport class LoadingDirective implements OnChanges {\r\n  @Input() backdrop: boolean;\r\n  @Input() message: string;\r\n  @Input() positionType: string;\r\n  @Input() showLoading: boolean;\r\n  @Input() view: ILoadingViewPosition;\r\n  @Input() zIndex: number;\r\n  @Input() loading: LoadingType | boolean;\r\n  @Input() loadingStyle: LoadingStyle = 'default';\r\n  @Input() loadingTemplateRef: TemplateRef<any>;\r\n  @HostBinding('style.position') position: string;\r\n  active = true;\r\n  backdropRef: ComponentRef<any>;\r\n  loadingRef: ComponentRef<any>;\r\n\r\n  constructor(\r\n    private componentFactoryResolver: ComponentFactoryResolver,\r\n    private elementRef: ElementRef,\r\n    private injector: Injector,\r\n    private triggerElementRef: ElementRef,\r\n    private viewContainerRef: ViewContainerRef\r\n  ) {}\r\n\r\n  ngOnChanges(changes: SimpleChanges): void {\r\n    const { backdrop, loading, loadingTemplateRef, message, positionType, showLoading, view, zIndex } = changes;\r\n    const changeArr = [backdrop, loading, loadingTemplateRef, message, positionType, showLoading, view, zIndex];\r\n    if (changeArr.find((item) => item !== undefined)) {\r\n      // loading 兼容showLoading, 赋值类型为 boolean 时触发显示\r\n      const isBoolean = typeof this.loading === 'boolean';\r\n      const flag = isBoolean ? this.loading : undefined;\r\n      const isLoading = this.showLoading !== undefined ? this.showLoading : flag;\r\n      if (isLoading !== undefined) {\r\n        this.showLoadingChangeEvent(isLoading as boolean);\r\n      }\r\n      if (!isBoolean && this.loading) {\r\n        this.loadingChangeEvent(this.loading as LoadingType);\r\n      }\r\n    }\r\n  }\r\n\r\n  loadingChangeEvent(loading: LoadingType): void {\r\n    if (loading instanceof Subscription) {\r\n      this.startLoading();\r\n      loading.add(() => this.endLoading());\r\n      return;\r\n    }\r\n    const loadingArr = [].concat(loading).map((item) => (item instanceof Observable ? item : from(item)));\r\n    if (loadingArr.length > 0) {\r\n      this.startLoading();\r\n      forkJoin(loadingArr)\r\n        .pipe(catchError((error) => throwError(error)))\r\n        .subscribe({\r\n          next: null,\r\n          error: () => this.endLoading(),\r\n          complete: () => this.endLoading(),\r\n        });\r\n    }\r\n  }\r\n\r\n  showLoadingChangeEvent(showLoading: boolean): void {\r\n    if (showLoading === true) {\r\n      this.startLoading();\r\n    } else {\r\n      this.endLoading();\r\n    }\r\n  }\r\n\r\n  private startLoading(): void {\r\n    this.position = this.positionType || 'relative';\r\n\r\n    if (this.backdrop && !this.backdropRef) {\r\n      this.createLoadingBackdrop();\r\n    }\r\n\r\n    if (!this.backdrop && this.backdropRef) {\r\n      this.backdropRef.destroy();\r\n      this.backdropRef = null;\r\n    }\r\n\r\n    if (!this.loadingRef) {\r\n      this.loadingRef = this.viewContainerRef.createComponent(LoadingComponent, { index: null, injector: this.injector });\r\n\r\n      this.insert(this.loadingRef.hostView);\r\n    }\r\n\r\n    Object.assign(this.loadingRef.instance, {\r\n      message: this.message,\r\n      loadingTemplateRef: this.loadingTemplateRef,\r\n      top: this.view ? this.view.top : '50%',\r\n      left: this.view ? this.view.left : '50%',\r\n      isCustomPosition: !!this.view,\r\n      zIndex: this.zIndex ? this.zIndex : '',\r\n      loadingStyle: this.loadingStyle,\r\n    });\r\n  }\r\n\r\n  private endLoading(): void {\r\n    if (this.loadingRef) {\r\n      this.loadingRef.destroy();\r\n      this.loadingRef = null;\r\n    }\r\n\r\n    if (this.backdropRef) {\r\n      this.backdropRef.destroy();\r\n      this.backdropRef = null;\r\n    }\r\n\r\n    this.position = '';\r\n  }\r\n\r\n  private createLoadingBackdrop(): void {\r\n    this.backdropRef =\r\n      !this.backdropRef && this.viewContainerRef.createComponent(LoadingBackdropComponent, { index: null, injector: this.injector });\r\n\r\n    this.insert(this.backdropRef.hostView);\r\n\r\n    Object.assign(this.backdropRef.instance, {\r\n      triggerElementRef: this.triggerElementRef,\r\n      backdrop: this.backdrop,\r\n      zIndex: this.zIndex ? this.zIndex : '',\r\n    });\r\n  }\r\n\r\n  private insert(viewRef: ViewRef): ViewRef {\r\n    (viewRef as EmbeddedViewRef<any>).rootNodes.forEach((node) => this.elementRef.nativeElement.appendChild(node));\r\n    return viewRef;\r\n  }\r\n}\r\n","import { DOCUMENT } from '@angular/common';\r\nimport { ComponentFactoryResolver, ComponentRef, EmbeddedViewRef, Inject, Injectable, Renderer2, RendererFactory2 } from '@angular/core';\r\nimport { OverlayContainerRef } from 'ng-devui/overlay-container';\r\nimport { LoadingBackdropComponent } from './loading-backdrop.component';\r\nimport { LoadingComponent } from './loading.component';\r\nimport { ILoadingOptions } from './loading.types';\r\n@Injectable({\r\n  providedIn: 'root',\r\n})\r\nexport class LoadingService {\r\n  private renderer: Renderer2;\r\n  document: Document;\r\n\r\n  constructor(\r\n    private overlayContainerRef: OverlayContainerRef,\r\n    private componentFactoryResolver: ComponentFactoryResolver,\r\n    private rendererFactory: RendererFactory2,\r\n    @Inject(DOCUMENT) private doc: any\r\n  ) {\r\n    this.renderer = this.rendererFactory.createRenderer(null, null);\r\n    this.document = this.doc;\r\n  }\r\n  // loading 服务内的函数，外部就可以传入ILoadingOptions类型的参数调用它\r\n  open({\r\n    target = this.document.body,\r\n    backdrop = true,\r\n    message,\r\n    loadingTemplateRef,\r\n    positionType = 'relative',\r\n    view,\r\n    injector,\r\n    zIndex,\r\n    loadingStyle = 'default',\r\n  }: ILoadingOptions = {}) {\r\n    const finalComponentFactoryResolver = this.componentFactoryResolver;\r\n\r\n    let positionTypeOld = '';\r\n    positionTypeOld = '' || (target as any).style.position;\r\n    let backdropRef: ComponentRef<LoadingBackdropComponent>;\r\n    if (backdrop) {\r\n      backdropRef = this.overlayContainerRef.createComponent(\r\n        finalComponentFactoryResolver.resolveComponentFactory(LoadingBackdropComponent),\r\n        injector\r\n      );\r\n      Object.assign(backdropRef.instance, {\r\n        backdrop: backdrop,\r\n        zIndex: zIndex,\r\n        target: target ? target : this.document.body,\r\n      });\r\n      const viewRef = backdropRef.hostView;\r\n      (viewRef as EmbeddedViewRef<any>).rootNodes.forEach((node) => target.appendChild(node));\r\n    }\r\n\r\n    const loadingRef = this.overlayContainerRef.createComponent(\r\n      finalComponentFactoryResolver.resolveComponentFactory(LoadingComponent),\r\n      injector\r\n    );\r\n\r\n    Object.assign(loadingRef.instance, {\r\n      message: message,\r\n      zIndex: zIndex,\r\n      loadingTemplateRef: loadingTemplateRef,\r\n      top: view ? view.top : '50%',\r\n      left: view ? view.left : '50%',\r\n      isCustomPosition: !!view,\r\n      target: target ? target : this.document.body,\r\n      loadingStyle: loadingStyle,\r\n    });\r\n\r\n    this.renderer.setStyle(target, 'position', positionType);\r\n\r\n    const viewRef1 = loadingRef.hostView;\r\n    (viewRef1 as EmbeddedViewRef<any>).rootNodes.forEach((node) => target.appendChild(node));\r\n\r\n    loadingRef.instance.close = () => {\r\n      if (loadingRef) {\r\n        loadingRef.destroy();\r\n      }\r\n      if (backdropRef) {\r\n        backdropRef.destroy();\r\n        backdropRef = null;\r\n      }\r\n      this.renderer.setStyle(target, 'position', positionTypeOld);\r\n    };\r\n\r\n    //  返回一个对象内含2个实例loadingInstance和backdropInstance\r\n    return {\r\n      loadingInstance: loadingRef.instance,\r\n      backdropInstance: backdropRef ? backdropRef.instance : null,\r\n    };\r\n  }\r\n}\r\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { LoadingBackdropComponent } from './loading-backdrop.component';\nimport { LoadingComponent } from './loading.component';\n\nimport { LoadingDirective } from './loading.directive';\nimport { LoadingService } from './loading.service';\n@NgModule({\n  imports: [CommonModule],\n  exports: [\n    LoadingDirective,\n    LoadingBackdropComponent,\n    LoadingComponent,\n  ],\n  declarations: [\n    LoadingDirective,\n    LoadingBackdropComponent,\n    LoadingComponent\n  ],\n\n  providers: [LoadingService],\n})\nexport class LoadingModule {\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}