{"version":3,"file":"ng-devui-modal.mjs","sources":["../../devui/modal/modal.directive.ts","../../devui/modal/movable.directive.ts","../../devui/modal/modal.component.ts","../../devui/modal/modal.component.html","../../devui/modal/modal-header.component.ts","../../devui/modal/modal-header.component.html","../../devui/modal/modal-footer.component.ts","../../devui/modal/modal-footer.component.html","../../devui/modal/modal-container.component.ts","../../devui/modal/modal-container.component.html","../../devui/modal/dialog.service.ts","../../devui/modal/modal.service.ts","../../devui/modal/modal.module.ts","../../devui/modal/ng-devui-modal.ts"],"sourcesContent":["import {\n  Directive,\n  ViewContainerRef\n} from '@angular/core';\n\n@Directive({\n  selector: '[dModalContentHost]',\n})\nexport class ModalContentDirective {\n  constructor(public viewContainerRef: ViewContainerRef) {\n  }\n}\n\n@Directive({\n  selector: '[dModalContainerHost]',\n})\nexport class ModalContainerDirective {\n  constructor(public viewContainerRef: ViewContainerRef) {\n  }\n}\n","import { Directive, ElementRef, HostListener, Input, OnChanges, OnInit, SimpleChanges } from '@angular/core';\r\n\r\n@Directive({\r\n  selector: '[dMovable]',\r\n})\r\nexport class MovableDirective implements OnInit, OnChanges {\r\n  topStart = 0;\r\n  leftStart = 0;\r\n  _allowDrag = false;\r\n  md: boolean;\r\n  @Input() handle: HTMLElement;\r\n  @Input() moveEl: HTMLElement;\r\n  public element: any;\r\n\r\n  constructor(public el: ElementRef) {}\r\n\r\n  ngOnInit() {\r\n    this.element = this.moveEl || this.el.nativeElement;\r\n    // css changes\r\n    if (this._allowDrag) {\r\n      this.element.style.position = 'relative';\r\n    }\r\n  }\r\n\r\n  ngOnChanges(changes: SimpleChanges) {\r\n    const { moveEl, handle } = changes;\r\n    if (moveEl) {\r\n      this.element = this.moveEl || this.el.nativeElement;\r\n    }\r\n    if (handle) {\r\n      this.allowDrag = this._allowDrag;\r\n    }\r\n  }\r\n\r\n  @HostListener('mousedown', ['$event'])\r\n  onMouseDown(event: MouseEvent) {\r\n    if (event.button === 2 || !this.checkHandleTarget(event.target, this.handle)) {\r\n      return; // prevents right click drag, remove his if you don't want it\r\n    }\r\n    this.md = true;\r\n    this.topStart = event.clientY - this.element.style.top.replace('px', '');\r\n    this.leftStart = event.clientX - this.element.style.left.replace('px', '');\r\n  }\r\n\r\n  @HostListener('document:mouseup', ['$event'])\r\n  onMouseUp(event: MouseEvent) {\r\n    this.md = false;\r\n  }\r\n\r\n  @HostListener('document:mousemove', ['$event'])\r\n  onMouseMove(event: MouseEvent) {\r\n    if (typeof window !== 'undefined' && this.md && this._allowDrag) {\r\n      // 阻止拖动过程中文字被选中\r\n      event.stopPropagation();\r\n      event.preventDefault();\r\n      // 判断边界条件\r\n      const modalRect = this.element.getBoundingClientRect();\r\n      const parentRect = this.element.parentNode.getBoundingClientRect();\r\n      const [translateX, translateY] = this.element.style.transform.match(/\\d+/g)?.map((item) => Number(item)) || [0, 0];\r\n      // 当前偏移量\r\n      let currentTop = event.clientY - this.topStart;\r\n      let currentLeft = event.clientX - this.leftStart;\r\n      // 计算上下距离，按照parentNode的位置计算偏移量，后续parentNode存在偏移量，需要考虑偏移量\r\n      const maxTop = window.innerHeight - parentRect.top - modalRect.height;\r\n      currentTop =\r\n        (parentRect.top + currentTop + translateY <= 0 && -parentRect.top - translateY) ||\r\n        (maxTop - currentTop - translateY <= 0 && maxTop - translateY) ||\r\n        currentTop;\r\n      const halfWidth = (window.innerWidth - modalRect.width) / 2;\r\n      // 计算左右距离，默认居中，后续parentNode存在偏移量，需要考虑偏移量\r\n      currentLeft =\r\n        (currentLeft + halfWidth + translateX <= 0 && -halfWidth - translateX) ||\r\n        (halfWidth - currentLeft - translateX <= 0 && halfWidth - translateX) ||\r\n        currentLeft;\r\n      this.element.style.top = currentTop + 'px';\r\n      this.element.style.left = currentLeft + 'px';\r\n    }\r\n  }\r\n\r\n  @HostListener('touchstart', ['$event'])\r\n  onTouchStart(event: any) {\r\n    this.md = true;\r\n    this.topStart = event.changedTouches[0].clientY - this.element.style.top.replace('px', '');\r\n    this.leftStart = event.changedTouches[0].clientX - this.element.style.left.replace('px', '');\r\n    event.stopPropagation();\r\n  }\r\n\r\n  @HostListener('document:touchend')\r\n  onTouchEnd() {\r\n    this.md = false;\r\n  }\r\n\r\n  @HostListener('document:touchmove', ['$event'])\r\n  onTouchMove(event: any) {\r\n    if (this.md && this._allowDrag) {\r\n      this.element.style.top = `${event.changedTouches[0].clientY - this.topStart}px`;\r\n      this.element.style.left = `${event.changedTouches[0].clientX - this.leftStart}px`;\r\n    }\r\n    event.stopPropagation();\r\n  }\r\n\r\n  checkHandleTarget = function (target, element) {\r\n    if (!element) {\r\n      return false;\r\n    }\r\n    // Checks if the target is the element clicked, then checks each child element of element as well\r\n    // Ignores button clicks\r\n    // Ignore elements of type button\r\n    if (element.tagName === 'BUTTON') {\r\n      return false;\r\n    }\r\n    // If the target was found, return true (handle was found)\r\n    if (element === target) {\r\n      return true;\r\n    }\r\n    // Recursively iterate this elements children\r\n    for (const /** @type {?} */ child in element.children) {\r\n      if (Object.prototype.hasOwnProperty.call(element.children, child)) {\r\n        if (this.checkHandleTarget(target, element.children[child])) {\r\n          return true;\r\n        }\r\n      }\r\n    }\r\n    // Handle was not found in this lineage\r\n    // Note: return false is ignore unless it is the parent element\r\n    return false;\r\n  };\r\n\r\n  @Input('dMovable')\r\n  set allowDrag(value: boolean) {\r\n    this._allowDrag = value;\r\n    if (this._allowDrag && this.handle) {\r\n      this.handle.style.cursor = 'move';\r\n    }\r\n  }\r\n}\r\n","import { DOCUMENT } from '@angular/common';\r\nimport { Component, ElementRef, Inject, Input, OnDestroy, OnInit, Renderer2, TemplateRef, ViewChild } from '@angular/core';\r\nimport { backdropFadeInOut, wipeInOutAnimation } from 'ng-devui/utils';\r\nimport { isUndefined } from 'lodash-es';\r\nimport { Observable, Subscription, fromEvent } from 'rxjs';\r\nimport { ModalContainerDirective } from './modal.directive';\r\n\r\n@Component({\r\n  selector: 'd-modal',\r\n  templateUrl: './modal.component.html',\r\n  styleUrls: ['./modal.component.scss'],\r\n  animations: [backdropFadeInOut, wipeInOutAnimation],\r\n  preserveWhitespaces: false,\r\n})\r\nexport class ModalComponent implements OnInit, OnDestroy {\r\n  @Input() id: string;\r\n  @Input() showAnimation = true;\r\n  @Input() width: string;\r\n  @Input() zIndex: number;\r\n  @Input() backDropZIndex: number;\r\n  @Input() backdropCloseable: boolean;\r\n  @Input() beforeHidden: () => boolean | Promise<boolean> | Observable<boolean>;\r\n  @Input() draggable: boolean;\r\n  @Input() placement: 'center' | 'top' | 'bottom' | 'unset' = 'center';\r\n  @Input() offsetX: string;\r\n  @Input() offsetY: string;\r\n  @Input() bodyScrollable = true; // 打开弹窗body是否可滚动\r\n  @Input() escapable: boolean; // 是否支持esc键关闭弹窗\r\n  @Input() cssClass: string;\r\n  @ViewChild(ModalContainerDirective, { static: true }) modalContainerHost: ModalContainerDirective;\r\n  @ViewChild('dialog', { static: true }) dialogElement: ElementRef;\r\n  animateState = '';\r\n  draggableHandleEl: HTMLElement;\r\n  scrollTop: number;\r\n  scrollLeft: number;\r\n  documentOverFlow: boolean;\r\n\r\n  mouseDwonEl: ElementRef;\r\n  ignoreBackDropClick = false;\r\n  pressEscToClose: Subscription = new Subscription();\r\n\r\n  contentTemplate: TemplateRef<any>;\r\n  document: Document;\r\n\r\n  maximized = false;\r\n  _oldWidth: string;\r\n\r\n  constructor(private elementRef: ElementRef, private renderer: Renderer2, @Inject(DOCUMENT) private doc: any) {\r\n    this.backdropCloseable = isUndefined(this.backdropCloseable) ? true : this.backdropCloseable;\r\n    this.document = this.doc;\r\n  }\r\n\r\n  ngOnInit() {\r\n    if (this.escapable) {\r\n      this.pressEscToClose.add(\r\n        fromEvent(window, 'keydown').subscribe((event: any) => {\r\n          if (event.keyCode === 27) {\r\n            this.hide();\r\n          }\r\n        })\r\n      );\r\n    }\r\n\r\n    const handle = this.elementRef.nativeElement.querySelector('#d-modal-header');\r\n    if (handle) {\r\n      this.draggableHandleEl = handle;\r\n    }\r\n\r\n    this._oldWidth = this.width;\r\n  }\r\n\r\n  ngOnDestroy(): void {\r\n    if (this.pressEscToClose) {\r\n      this.pressEscToClose.unsubscribe();\r\n      this.pressEscToClose = null;\r\n    }\r\n  }\r\n\r\n  // Will overwrite this method in modal service\r\n  onHidden() {}\r\n\r\n  updateButtonOptions<T>(buttonOptions: Array<T>) {}\r\n\r\n  canHideModel() {\r\n    let hiddenResult = Promise.resolve(true);\r\n\r\n    if (this.beforeHidden) {\r\n      const result: any = this.beforeHidden();\r\n      if (typeof result !== 'undefined') {\r\n        if (result.then) {\r\n          hiddenResult = result;\r\n        } else if (result.subscribe) {\r\n          hiddenResult = (result as Observable<boolean>).toPromise();\r\n        } else {\r\n          hiddenResult = Promise.resolve(result);\r\n        }\r\n      }\r\n    }\r\n\r\n    return hiddenResult;\r\n  }\r\n\r\n  onModalClick = ($event) => {\r\n    // 一定要document.contains($event.target)，因为$event.target可能已经不在document里了，这个时候就不能进hide了,使用document.body兼容IE\r\n    if (\r\n      this.backdropCloseable &&\r\n      !this.ignoreBackDropClick &&\r\n      !this.dialogElement.nativeElement.contains($event.target) &&\r\n      this.document.body.contains($event.target)\r\n    ) {\r\n      this.hide();\r\n    }\r\n    this.ignoreBackDropClick = false;\r\n  };\r\n\r\n  modalMouseDown = ($event) => {\r\n    this.mouseDwonEl = $event.target;\r\n  };\r\n\r\n  modalMouseUp = ($event) => {\r\n    if ($event.target !== this.mouseDwonEl) {\r\n      this.ignoreBackDropClick = true;\r\n    }\r\n  };\r\n\r\n  maximize() {\r\n    this.maximized = !this.maximized;\r\n    if (this.maximized) {\r\n      this.width = '100vw';\r\n      this.renderer.setStyle(this.document.body, 'overflow', 'hidden');\r\n    } else {\r\n      this.width = this._oldWidth;\r\n      this.renderer.setStyle(this.document.body, 'overflow', 'auto');\r\n    }\r\n  }\r\n\r\n  onAnimationEnd($event) {\r\n    if ($event.fromState !== 'void' && this.animateState === 'void') {\r\n      this.onHidden();\r\n    }\r\n  }\r\n\r\n  show() {\r\n    this.documentOverFlow = this.document.documentElement.scrollHeight > this.document.documentElement.clientHeight;\r\n    if (this.documentOverFlow) {\r\n      this.scrollTop = this.document.documentElement.scrollTop || this.document.body.scrollTop;\r\n      this.scrollLeft = this.document.documentElement.scrollLeft || this.document.body.scrollLeft;\r\n      this.renderer.addClass(this.document.body, 'devui-body-scrollblock');\r\n      this.renderer.setStyle(this.document.body, 'top', `-${this.scrollTop}px`);\r\n      this.renderer.setStyle(this.document.body, 'left', `-${this.scrollLeft}px`);\r\n    }\r\n    this.bodyScrollBlock(true);\r\n    this.dialogElement.nativeElement.focus();\r\n    if (this.showAnimation) {\r\n      this.animateState = 'in';\r\n    }\r\n  }\r\n\r\n  hide() {\r\n    this.canHideModel().then((canHide) => {\r\n      if (!canHide) {\r\n        return;\r\n      }\r\n      this.bodyScrollBlock(false);\r\n      this.animateState = 'void';\r\n    });\r\n  }\r\n\r\n  bodyScrollBlock(toggle: boolean) {\r\n    if (this.bodyScrollable || !this.documentOverFlow) {\r\n      return;\r\n    }\r\n    if (toggle) {\r\n      this.renderer.addClass(this.document.documentElement, 'devui-body-scrollblock-modal');\r\n      this.renderer.setStyle(this.document.documentElement, 'top', `-${this.scrollTop}px`);\r\n      this.renderer.setStyle(this.document.documentElement, 'left', `-${this.scrollLeft}px`);\r\n    } else {\r\n      this.renderer.removeClass(this.document.documentElement, 'devui-body-scrollblock-modal');\r\n      this.renderer.removeStyle(this.document.documentElement, 'top');\r\n      this.renderer.removeStyle(this.document.documentElement, 'left');\r\n      this.document.documentElement.scrollLeft = this.scrollLeft;\r\n      this.document.documentElement.scrollTop = this.scrollTop;\r\n    }\r\n  }\r\n\r\n  resolveTransformTranslate() {\r\n    let autoOffsetYByPlacement;\r\n    switch (this.placement) {\r\n    case 'top':\r\n      autoOffsetYByPlacement = '40px';\r\n      break;\r\n    case 'bottom':\r\n      autoOffsetYByPlacement = '-40px';\r\n      break;\r\n    case 'center':\r\n    default:\r\n      autoOffsetYByPlacement = 0;\r\n      break;\r\n    }\r\n    if (this.placement !== 'unset') {\r\n      const offsetX = this.offsetX ? this.offsetX : '0';\r\n      const offsetY = this.offsetY ? this.offsetY : autoOffsetYByPlacement;\r\n      return 'translate(' + offsetX + ',' + offsetY + ')';\r\n    } else {\r\n      return 'unset';\r\n    }\r\n  }\r\n}\r\n","<div class=\"modal-backdrop\" [ngStyle]=\"{ 'z-index': backDropZIndex }\" [@backdropAnimation]=\"animateState\"></div>\n<div\n  class=\"modal in\"\n  [ngClass]=\"cssClass\"\n  [ngStyle]=\"{ 'z-index': zIndex }\"\n  [attr.id]=\"id\"\n  (mousedown)=\"modalMouseDown($event)\"\n  (mouseup)=\"modalMouseUp($event)\"\n  (click)=\"onModalClick($event)\"\n>\n  <div\n    class=\"modal-dialog\"\n    [ngClass]=\"{\n      'place-at-top': placement === 'top',\n      'place-at-bottom': placement === 'bottom',\n      'place-at-center': placement === 'center' || placement === 'unset'\n    }\"\n    [ngStyle]=\"{ width: width }\"\n    [@wipeInOutAnimation]=\"animateState\"\n    (@wipeInOutAnimation.done)=\"onAnimationEnd($event)\"\n    [@.disabled]=\"!showAnimation\"\n    tabindex=\"1\"\n    #dialog\n  >\n    <div\n      class=\"modal-content\"\n      [class.maximize]=\"maximized\"\n      [dMovable]=\"draggable\"\n      [handle]=\"draggableHandleEl\"\n      [ngStyle]=\"{ transform: resolveTransformTranslate() }\"\n    >\n      <ng-template dModalContainerHost></ng-template>\n      <ng-container *ngIf=\"contentTemplate\">\n        <ng-template [ngTemplateOutlet]=\"contentTemplate\" [ngTemplateOutletContext]=\"{ modalInstance: this }\"></ng-template>\n      </ng-container>\n    </div>\n  </div>\n</div>\n","import {\n  ChangeDetectorRef,\n  Component,\n  EventEmitter,\n  Input,\n  OnDestroy,\n  OnInit,\n  Output\n} from '@angular/core';\nimport { I18nInterface, I18nService } from 'ng-devui/i18n';\nimport { Subscription } from 'rxjs';\n@Component({\n  selector: 'd-modal-header',\n  templateUrl: './modal-header.component.html',\n  styleUrls: ['./modal-header.component.scss'],\n  preserveWhitespaces: false,\n})\nexport class ModalHeaderComponent implements OnInit, OnDestroy {\n  @Input() title: string;\n  @Input() dialogtype = 'standard';\n  @Input() showCloseBtn: boolean;\n  @Output() closeEvent: EventEmitter<any> = new EventEmitter<any>();\n\n  @Input() showMaximizeBtn = false;\n  @Output() maximizeEvent = new EventEmitter<boolean>();\n  maximized = false;\n\n  i18nText: I18nInterface['modal'];\n  i18nSubscription: Subscription;\n\n  get checkDialogType() {\n    return this.dialogtype?.toLowerCase() || 'standard';\n  }\n\n  constructor(private ref: ChangeDetectorRef, private i18n: I18nService) {}\n\n  ngOnInit() {\n    this.i18nText = this.i18n.getI18nText().modal;\n    this.i18nSubscription = this.i18n.langChange().subscribe((data) => {\n      this.i18nText = data.modal;\n      this.ref.markForCheck();\n    });\n  }\n\n  close(event) {\n    this.closeEvent.emit(event);\n  }\n\n  ngOnDestroy() {\n    if (this.i18nSubscription) {\n      this.i18nSubscription.unsubscribe();\n    }\n  }\n\n  maximize() {\n    this.maximized = !this.maximized;\n    this.maximizeEvent.emit(this.maximized);\n  }\n}\n","<div class=\"modal-header\" [ngClass]=\"{ 'no-title': !title && title !== '' && checkDialogType === 'standard' }\">\n  <div class=\"standard-title\">\n    <div *ngIf=\"checkDialogType === 'warning'\" class=\"header-alert-icon\">\n      <svg\n        class=\"devui-icon devui-icon-warning\"\n        viewBox=\"0 0 16 16\"\n        version=\"1.1\"\n        xmlns=\"http://www.w3.org/2000/svg\"\n        xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n      >\n        <g stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n          <polygon\n            points=\"7.5 1.74501946 1.39184847 13.5954649 7.08947368 14.2207621 13.9973698 13.5954649 10.9383683 5.61273879 8.40084114 1.27624313\"\n          ></polygon>\n          <path\n            d=\"M8.51325441,0.127397589 C8.70423071,0.228333932 8.8605922,0.383286648 8.96244623,0.57254229 L15.8714442,13.4101975 C16.1549662,13.9370117 15.9538562,14.5918482 15.4222523,14.8728158 C15.2642579,14.9563203 15.0879506,15 14.9088903,15 L1.09089441,15 C0.488410063,15 0,14.5159904 0,13.9189343 C0,13.7414873 0.0440768395,13.5667684 0.128340519,13.4101975 L7.03733844,0.57254229 C7.32086049,0.0457280838 7.98165058,-0.153569987 8.51325441,0.127397589 Z M8.87894737,11.2105263 L7.08947368,11.2105263 L7.08947368,13 L8.87894737,13 L8.87894737,11.2105263 Z M8.96842105,4.5 L7,4.5 L7.08947368,9.86842105 L8.87894737,9.86842105 L8.96842105,4.5 Z\"\n          ></path>\n        </g>\n      </svg>\n    </div>\n    <div *ngIf=\"checkDialogType === 'failed'\" class=\"header-alert-icon\">\n      <svg\n        class=\"devui-icon devui-icon-error\"\n        width=\"16px\"\n        height=\"16px\"\n        viewBox=\"0 0 16 16\"\n        version=\"1.1\"\n        xmlns=\"http://www.w3.org/2000/svg\"\n        xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n      >\n        <g stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n          <circle cx=\"8\" cy=\"8\" r=\"7\"></circle>\n          <path\n            d=\"M8,0 C3.6,0 0,3.6 0,8 C0,12.4 3.6,16 8,16 C12.4,16 16,12.4 16,8 C16,3.6 12.4,0 8,0 Z M9,12.6 L7,12.6 L7,10.6 L9,10.6 L9,12.6 Z M9,9.1 L7,9.1 L6.9,3.1 L9.1,3.1 L9,9.1 Z\"\n            fill-rule=\"nonzero\"\n          ></path>\n        </g>\n      </svg>\n    </div>\n    <div *ngIf=\"checkDialogType === 'sucess' || checkDialogType === 'success'\" class=\"header-alert-icon\">\n      <svg\n        class=\"devui-icon devui-icon-success\"\n        viewBox=\"0 0 16 16\"\n        version=\"1.1\"\n        xmlns=\"http://www.w3.org/2000/svg\"\n        xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n      >\n        <g stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n          <circle cx=\"8\" cy=\"8\" r=\"7\"></circle>\n          <path d=\"M8,0 C3.6,0 0,3.6 0,8 C0,12.4 3.6,16 8,16 C12.4,16 16,12.4 16,8 C16,3.6 12.4,0 8,0 Z\" fill-rule=\"nonzero\"></path>\n          <polygon\n            stroke-width=\"0.4\"\n            fill-rule=\"nonzero\"\n            points=\"8.16 10.48 7.32 11.32 6.48 10.48 6.48 10.48 3.6 7.68 4.44 6.84 7.28 9.68 11.52 5.44 12.36 6.28\"\n          ></polygon>\n        </g>\n      </svg>\n    </div>\n    <div *ngIf=\"checkDialogType === 'info'\" class=\"header-alert-icon\">\n      <svg\n        class=\"devui-icon devui-icon-info\"\n        viewBox=\"0 0 16 16\"\n        version=\"1.1\"\n        xmlns=\"http://www.w3.org/2000/svg\"\n        xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n      >\n        <g stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n          <circle cx=\"8\" cy=\"8\" r=\"7\"></circle>\n          <g stroke-width=\"1\">\n            <path\n              d=\"M8,0 C3.6,0 0,3.6 0,8 C0,12.4 3.6,16 8,16 C12.4,16 16,12.4 16,8 C16,3.6 12.4,0 8,0 Z M9,5 L7,5 L7,3 L9,3 L9,5 Z M9,12.6 L7,12.6 L7,6.6 L9,6.6 L9,12.6 Z\"\n            ></path>\n          </g>\n        </g>\n      </svg>\n    </div>\n    <span *ngIf=\"title\" [title]=\"title\" class=\"title-text\">{{ title }}</span>\n    <ng-container *ngIf=\"!title\">\n      <span *ngIf=\"checkDialogType === 'warning'\" class=\"title-text\"> {{ i18nText?.warning }}</span>\n      <span *ngIf=\"checkDialogType === 'failed'\" class=\"title-text\">{{ i18nText?.error }}</span>\n      <span *ngIf=\"checkDialogType === 'sucess' || checkDialogType === 'success'\" class=\"title-text\">{{ i18nText?.success }}</span>\n      <span *ngIf=\"checkDialogType === 'info'\" class=\"title-text\">{{ i18nText?.info }}</span>\n    </ng-container>\n  </div>\n  <d-icon\n    class=\"modal-header-maximized\"\n    *ngIf=\"showMaximizeBtn\"\n    [icon]=\"maximized ? minTemplate : maxTemplate\"\n    [operable]=\"true\"\n    (click)=\"maximize()\"\n  ></d-icon>\n  <ng-template #maxTemplate>\n    <svg width=\"16px\" height=\"16px\" t=\"1624600373175\" viewBox=\"0 0 1024 1024\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" p-id=\"1179\">\n      <path\n        d=\"M810.666667 938.666667h-128c-25.6 0-42.666667-17.066667-42.666667-42.666667s17.066667-42.666667 42.666667-42.666667h128c25.6 0 42.666667-17.066667 42.666666-42.666666v-128c0-25.6 17.066667-42.666667 42.666667-42.666667s42.666667 17.066667 42.666667 42.666667v128c0 72.533333-55.466667 128-128 128zM341.333333 938.666667H213.333333c-72.533333 0-128-55.466667-128-128v-128c0-25.6 17.066667-42.666667 42.666667-42.666667s42.666667 17.066667 42.666667 42.666667v128c0 25.6 17.066667 42.666667 42.666666 42.666666h128c25.6 0 42.666667 17.066667 42.666667 42.666667s-17.066667 42.666667-42.666667 42.666667zM896 384c-25.6 0-42.666667-17.066667-42.666667-42.666667V213.333333c0-25.6-17.066667-42.666667-42.666666-42.666666h-128c-25.6 0-42.666667-17.066667-42.666667-42.666667s17.066667-42.666667 42.666667-42.666667h128c72.533333 0 128 55.466667 128 128v128c0 25.6-17.066667 42.666667-42.666667 42.666667zM128 384c-25.6 0-42.666667-17.066667-42.666667-42.666667V213.333333c0-72.533333 55.466667-128 128-128h128c25.6 0 42.666667 17.066667 42.666667 42.666667s-17.066667 42.666667-42.666667 42.666667H213.333333c-25.6 0-42.666667 17.066667-42.666666 42.666666v128c0 25.6-17.066667 42.666667-42.666667 42.666667z\"\n        p-id=\"1180\"\n      ></path>\n    </svg>\n  </ng-template>\n  <ng-template #minTemplate>\n    <svg width=\"16px\" height=\"16px\" t=\"1624607246708\" viewBox=\"0 0 1024 1024\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" p-id=\"5121\">\n      <path\n        d=\"M682.666667 938.666667c-25.6 0-42.666667-17.066667-42.666667-42.666667v-128c0-72.533333 55.466667-128 128-128h128c25.6 0 42.666667 17.066667 42.666667 42.666667s-17.066667 42.666667-42.666667 42.666666h-128c-25.6 0-42.666667 17.066667-42.666667 42.666667v128c0 25.6-17.066667 42.666667-42.666666 42.666667z m-341.333334 0c-25.6 0-42.666667-17.066667-42.666666-42.666667v-128c0-25.6-17.066667-42.666667-42.666667-42.666667H128c-25.6 0-42.666667-17.066667-42.666667-42.666666s17.066667-42.666667 42.666667-42.666667h128c72.533333 0 128 55.466667 128 128v128c0 25.6-17.066667 42.666667-42.666667 42.666667zM896 384h-128c-72.533333 0-128-55.466667-128-128V128c0-25.6 17.066667-42.666667 42.666667-42.666667s42.666667 17.066667 42.666666 42.666667v128c0 25.6 17.066667 42.666667 42.666667 42.666667h128c25.6 0 42.666667 17.066667 42.666667 42.666666s-17.066667 42.666667-42.666667 42.666667zM256 384H128c-25.6 0-42.666667-17.066667-42.666667-42.666667s17.066667-42.666667 42.666667-42.666666h128c25.6 0 42.666667-17.066667 42.666667-42.666667V128c0-25.6 17.066667-42.666667 42.666666-42.666667s42.666667 17.066667 42.666667 42.666667v128c0 72.533333-55.466667 128-128 128z\"\n        p-id=\"5122\"\n      ></path>\n    </svg>\n  </ng-template>\n  <d-icon\n    class=\"modal-header-close\"\n    *ngIf=\"showCloseBtn\"\n    [icon]=\"closeTemplate\"\n    [operable]=\"true\"\n    (mousedown)=\"$event.stopPropagation()\"\n    (click)=\"close($event)\"\n  >\n  </d-icon>\n  <ng-template #closeTemplate>\n    <svg\n      width=\"18px\"\n      height=\"18px\"\n      viewBox=\"0 0 16 16\"\n      version=\"1.1\"\n      xmlns=\"http://www.w3.org/2000/svg\"\n      xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n    >\n      <g id=\"ipd_close1\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n        <g transform=\"translate(3.000000, 3.000000)\" fill=\"#71757F\" fill-rule=\"nonzero\" id=\"路径\">\n          <path\n            d=\"M-0.353553391,-0.353553391 C-0.179987039,-0.527119742 0.0894373624,-0.546404893 0.284305503,-0.411408841 L0.353553391,-0.353553391 L10.3535534,9.64644661 C10.5488155,9.84170876 10.5488155,10.1582912 10.3535534,10.3535534 C10.179987,10.5271197 9.91056264,10.5464049 9.7156945,10.4114088 L9.64644661,10.3535534 L-0.353553391,0.353553391 C-0.548815536,0.158291245 -0.548815536,-0.158291245 -0.353553391,-0.353553391 Z\"\n          ></path>\n          <path\n            d=\"M9.64644661,-0.353553391 C9.84170876,-0.548815536 10.1582912,-0.548815536 10.3535534,-0.353553391 C10.5271197,-0.179987039 10.5464049,0.0894373624 10.4114088,0.284305503 L10.3535534,0.353553391 L0.353553391,10.3535534 C0.158291245,10.5488155 -0.158291245,10.5488155 -0.353553391,10.3535534 C-0.527119742,10.179987 -0.546404893,9.91056264 -0.411408841,9.7156945 L-0.353553391,9.64644661 L9.64644661,-0.353553391 Z\"\n          ></path>\n        </g>\n      </g>\n    </svg>\n  </ng-template>\n</div>\n","import {\n  Component,\n  Input\n} from '@angular/core';\nimport { IButtonStyle } from 'ng-devui/button';\n\n@Component({\n  selector: 'd-modal-footer',\n  templateUrl: './modal-footer.component.html',\n  styleUrls: ['./modal-footer.component.scss'],\n  preserveWhitespaces: false,\n})\nexport class ModalFooterComponent {\n  @Input() buttons: Array<{\n    id?: string;\n    cssClass?: IButtonStyle;\n    text: string;\n    handler: ($event: Event) => void;\n    btnwidth?: string;\n    autofocus?: boolean;\n    disabled: boolean;\n  }>;\n}\n","<div class=\"modal-footer\">\n  <d-button\n    *ngFor=\"let button of buttons\"\n    [bsSize]=\"'md'\"\n    [attr.id]=\"button.id\"\n    (btnClick)=\"button.handler($event)\"\n    [bsStyle]=\"button.cssClass\"\n    circled=\"true\"\n    [width]=\"button.btnwidth\"\n    [autofocus]=\"button.autofocus\"\n    [disabled]=\"button.disabled\"\n    >{{ button.text }}\n  </d-button>\n</div>\n","import {\n  Component,\n  Input,\n  OnInit,\n  TemplateRef,\n  ViewChild\n} from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { IButtonStyle } from 'ng-devui/button';\nimport { ModalComponent } from './modal.component';\nimport { ModalContentDirective } from './modal.directive';\n@Component({\n  selector: 'd-modal-container',\n  templateUrl: './modal-container.component.html',\n  styleUrls: ['./modal-container.component.scss'],\n  preserveWhitespaces: false,\n})\nexport class ModalContainerComponent implements OnInit {\n  @Input() maxHeight: string;\n  @Input() data: any;\n  @Input() title: string;\n  @Input() content: string | HTMLElement;\n  @Input() showMaximizeBtn: boolean;\n  @Input() buttons: Array<{\n    id?: string;\n    cssClass?: IButtonStyle;\n    text: string;\n    handler: ($event: Event) => void;\n    btnwidth?: string;\n    autofocus?: boolean;\n    disabled: boolean;\n  }>;\n  @Input() html: boolean;\n  @Input() onClose: ($event?: Event) => void;\n  @Input() onMaximize: (maximized: boolean) => void;\n  @ViewChild(ModalContentDirective, { static: true }) modalContentHost: ModalContentDirective;\n  @Input() dialogtype = 'standard';\n  @Input() showCloseBtn: boolean;\n  contentTemplate: TemplateRef<any>;\n  _oldMaxHeight: string;\n\n  constructor(private sanitizer: DomSanitizer, public modalInstance: ModalComponent) {}\n\n  ngOnInit() {\n    if (this.html) {\n      this.content = <HTMLElement>this.sanitizer.bypassSecurityTrustHtml(<string>this.content);\n    }\n  }\n\n  close(event) {\n    this.onClose(event);\n  }\n\n  maximize(maximized: boolean) {\n    if (this.onMaximize) {\n      this.onMaximize(maximized);\n    }\n    if (maximized) {\n      this._oldMaxHeight = this.maxHeight;\n      this.maxHeight = '100vh';\n    } else {\n      this.maxHeight = this._oldMaxHeight;\n    }\n  }\n\n  updateButtonOptions(buttonOptions = []) {\n    this.buttons = this.buttons.map((button, index) => {\n      return {...button, ...buttonOptions[index]};\n    });\n  }\n}\n","<div>\n  <d-modal-header\n    id=\"d-modal-header\"\n    [title]=\"title\"\n    (closeEvent)=\"close($event)\"\n    (maximizeEvent)=\"maximize($event)\"\n    [dialogtype]=\"dialogtype\"\n    [showMaximizeBtn]=\"showMaximizeBtn\"\n    [showCloseBtn]=\"showCloseBtn\"\n  ></d-modal-header>\n  <div\n    class=\"modal-body devui-scrollbar\"\n    [ngClass]=\"{\n      'flex-content': dialogtype === 'warning' || dialogtype === 'failed' || dialogtype === 'success' || dialogtype === 'info'\n    }\"\n    [ngStyle]=\"{ maxHeight: maxHeight, 'overflow-y': 'auto' }\"\n    cdkScrollable\n  >\n    <div\n      [ngClass]=\"{\n        'display-flex': dialogtype !== '' && dialogtype !== 'standard'\n      }\"\n    >\n      <div class=\"content\" [style.max-height]=\"maxHeight\" *ngIf=\"!!content && !html\">{{ content }}</div>\n      <div class=\"content\" [style.max-height]=\"maxHeight\" *ngIf=\"!!content && html\" [innerHTML]=\"content\"></div>\n      <div class=\"content\" *ngIf=\"contentTemplate\">\n        <ng-template\n          [ngTemplateOutlet]=\"contentTemplate\"\n          [ngTemplateOutletContext]=\"{ modalInstance: modalInstance, modalContentInstance: this }\"\n        ></ng-template>\n      </div>\n      <ng-template dModalContentHost></ng-template>\n    </div>\n  </div>\n\n  <d-modal-footer [buttons]=\"buttons\"></d-modal-footer>\n</div>\n","import { DOCUMENT } from '@angular/common';\nimport { ComponentFactoryResolver, ComponentRef, Inject, Injectable, Renderer2, RendererFactory2 } from '@angular/core';\nimport { OverlayContainerRef } from 'ng-devui/overlay-container';\nimport { DevConfigService } from 'ng-devui/utils';\nimport { assign, isUndefined } from 'lodash-es';\nimport { ModalContainerComponent } from './modal-container.component';\nimport { ModalComponent } from './modal.component';\nimport { IDialogOptions } from './modal.types';\n\n@Injectable()\nexport class DialogService {\n  contentRef: ComponentRef<any>;\n  private renderer: Renderer2;\n  document: Document;\n\n  constructor(\n    private componentFactoryResolver: ComponentFactoryResolver,\n    private overlayContainerRef: OverlayContainerRef,\n    private rendererFactory: RendererFactory2,\n    private devConfigService: DevConfigService,\n    @Inject(DOCUMENT) private doc: any\n  ) {\n    this.renderer = this.rendererFactory.createRenderer(null, null);\n    this.document = this.doc;\n  }\n\n  open({\n    id,\n    width,\n    zIndex,\n    backDropZIndex,\n    backdropCloseable,\n    maxHeight,\n    showAnimation,\n    /**\n     * @deprecated\n     */\n    showAnimate,\n    title,\n    content,\n    html,\n    data,\n    buttons,\n    injector,\n    componentFactoryResolver,\n    beforeHidden,\n    onClose,\n    onMaximize,\n    dialogtype = 'standard',\n    showCloseBtn = true,\n    draggable = true,\n    placement = 'center',\n    offsetX,\n    offsetY,\n    bodyScrollable,\n    contentTemplate,\n    escapable = true,\n    showMaximizeBtn = false,\n  }: IDialogOptions) {\n    const finalComponentFactoryResolver = componentFactoryResolver || this.componentFactoryResolver;\n    const modalRef = this.overlayContainerRef.createComponent(\n      finalComponentFactoryResolver.resolveComponentFactory(ModalComponent),\n      injector\n    );\n    const componentConfig = this.devConfigService.getConfigForComponent('modal') || {};\n    const showAnimationApiConfig = this.devConfigService.getConfigForApi('showAnimation');\n    const bodyScrollableApiConfig = this.devConfigService.getConfigForApi('bodyScrollable');\n    showAnimation = showAnimation ?? showAnimate ?? componentConfig.showAnimation ?? showAnimationApiConfig;\n    bodyScrollable = bodyScrollable ?? componentConfig.bodyScrollable ?? bodyScrollableApiConfig ?? true;\n\n    assign(modalRef.instance, {\n      id,\n      width,\n      zIndex,\n      backDropZIndex,\n      showAnimation,\n      beforeHidden,\n      // set backdropCloseable default value \"true\" when not passing it\n      backdropCloseable: isUndefined(backdropCloseable) ? true : backdropCloseable,\n      draggable,\n      placement,\n      offsetX,\n      offsetY,\n      bodyScrollable,\n      escapable\n    });\n\n    const modalContainerRef = modalRef.instance.modalContainerHost.viewContainerRef\n      .createComponent(finalComponentFactoryResolver.resolveComponentFactory(ModalContainerComponent), 0, injector);\n    assign(modalContainerRef.instance, { title, buttons, maxHeight, dialogtype, showCloseBtn, showMaximizeBtn });\n\n    if (contentTemplate) {\n      assign(modalContainerRef.instance, { contentTemplate });\n    } else {\n      if (typeof content === 'string') {\n        assign(modalContainerRef.instance, { content, html });\n      } else {\n        this.contentRef = modalContainerRef.instance.modalContentHost.viewContainerRef\n          .createComponent(finalComponentFactoryResolver.resolveComponentFactory(content));\n        assign(this.contentRef.instance, { data, dialogtype });\n      }\n    }\n\n    modalContainerRef.instance.onClose = () => {\n      modalRef.instance.hide();\n    };\n\n    modalContainerRef.instance.onMaximize = () => {\n      modalRef.instance.maximize();\n      if (onMaximize) {\n        onMaximize(modalRef.instance.maximized);\n      }\n    };\n\n    modalRef.instance.updateButtonOptions = (buttonOptions) => modalContainerRef.instance.updateButtonOptions(buttonOptions);\n\n    modalRef.instance.onHidden = () => {\n      if (modalRef.instance.documentOverFlow) {\n        this.renderer.removeStyle(this.document.body, 'top');\n        this.renderer.removeStyle(this.document.body, 'left');\n        this.renderer.removeClass(this.document.body, 'devui-body-scrollblock');\n        this.renderer.removeClass(this.document.body, 'devui-body-overflow-hidden');\n        this.document.documentElement.scrollTop = modalRef.instance.scrollTop;\n        this.document.body.scrollTop = modalRef.instance.scrollTop;\n        this.document.documentElement.scrollLeft = modalRef.instance.scrollLeft;\n        this.document.body.scrollLeft = modalRef.instance.scrollLeft;\n      }\n      if (onClose) {\n        onClose();\n      }\n      setTimeout(() => {\n        modalRef.hostView.destroy();\n      });\n    };\n\n    modalRef.instance.show();\n\n    return {\n      modalInstance: modalRef.instance,\n      modalContentInstance: this.contentRef ? this.contentRef.instance : null,\n    };\n  }\n}\n","import { DOCUMENT } from '@angular/common';\nimport {\n  ComponentFactoryResolver,\n  Inject,\n  Injectable,\n  Renderer2, RendererFactory2\n} from '@angular/core';\nimport { OverlayContainerRef } from 'ng-devui/overlay-container';\nimport { DevConfigService } from 'ng-devui/utils';\nimport { assign, isUndefined } from 'lodash-es';\nimport { ModalComponent } from './modal.component';\nimport { IModalOptions } from './modal.types';\n\n@Injectable()\nexport class ModalService {\n  private renderer: Renderer2;\n  document: Document;\n\n  constructor(private componentFactoryResolver: ComponentFactoryResolver,\n              private overlayContainerRef: OverlayContainerRef, private rendererFactory: RendererFactory2,\n              private devConfigService: DevConfigService,\n              @Inject(DOCUMENT) private doc: any) {\n    this.renderer = this.rendererFactory.createRenderer(null, null);\n    this.document = this.doc;\n  }\n\n  open({\n    id,\n    component,\n    injector,\n    width,\n    zIndex,\n    backDropZIndex,\n    data,\n    handler,\n    showAnimation,\n    /**\n     * @deprecated\n     */\n    showAnimate,\n    backdropCloseable,\n    componentFactoryResolver,\n    onClose,\n    beforeHidden,\n    placement = 'center',\n    offsetX,\n    offsetY,\n    bodyScrollable,\n    contentTemplate,\n    escapable = true,\n    cssClass\n  }: IModalOptions) {\n    const finalComponentFactoryResolver = componentFactoryResolver || this.componentFactoryResolver;\n    const modalRef = this.overlayContainerRef.createComponent(\n      finalComponentFactoryResolver.resolveComponentFactory(ModalComponent),\n      injector\n    );\n    const componentConfig = this.devConfigService.getConfigForComponent('modal') || {};\n    const showAnimationApiConfig = this.devConfigService.getConfigForApi('showAnimation');\n    const bodyScrollableApiConfig = this.devConfigService.getConfigForApi('bodyScrollable');\n    showAnimation = showAnimation ?? showAnimate ?? componentConfig.showAnimation ?? showAnimationApiConfig;\n    bodyScrollable = bodyScrollable ?? componentConfig.bodyScrollable ?? bodyScrollableApiConfig ?? true;\n\n    assign(modalRef.instance, {\n      id,\n      width,\n      zIndex,\n      backDropZIndex,\n      showAnimation,\n      beforeHidden,\n      backdropCloseable: isUndefined(backdropCloseable) ? true : backdropCloseable,\n      placement,\n      offsetX,\n      offsetY,\n      bodyScrollable,\n      contentTemplate,\n      escapable,\n      cssClass\n    });\n\n    let modalContentInstance;\n    if (component) {\n      modalContentInstance = modalRef.instance.modalContainerHost.viewContainerRef\n        .createComponent(finalComponentFactoryResolver.resolveComponentFactory(component), 0, injector);\n      assign(modalContentInstance.instance, { data, handler });\n    }\n\n    modalRef.instance.onHidden = () => {\n      if (modalRef.instance.documentOverFlow) {\n        this.renderer.removeStyle(this.document.body, 'top');\n        this.renderer.removeStyle(this.document.body, 'left');\n        this.renderer.removeClass(this.document.body, 'devui-body-scrollblock');\n        this.renderer.removeClass(this.document.body, 'devui-body-overflow-hidden');\n        this.document.documentElement.scrollTop = modalRef.instance.scrollTop;\n        this.document.body.scrollTop = modalRef.instance.scrollTop;\n        this.document.documentElement.scrollLeft = modalRef.instance.scrollLeft;\n        this.document.body.scrollLeft = modalRef.instance.scrollLeft;\n      }\n      if (onClose) {\n        onClose();\n      }\n      setTimeout(() => {\n        modalRef.hostView.destroy();\n      });\n    };\n\n    modalRef.instance.show();\n\n    return {\n      modalInstance: modalRef.instance,\n      modalContentInstance: modalContentInstance ? modalContentInstance.instance : null\n    };\n  }\n}\n","import { ScrollingModule } from '@angular/cdk/scrolling';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ButtonModule } from 'ng-devui/button';\nimport { IconModule } from 'ng-devui/icon';\nimport { OverlayContainerModule } from 'ng-devui/overlay-container';\nimport { DocumentRef } from 'ng-devui/window-ref';\nimport { DialogService } from './dialog.service';\nimport { ModalContainerComponent } from './modal-container.component';\nimport { ModalFooterComponent } from './modal-footer.component';\nimport { ModalHeaderComponent } from './modal-header.component';\nimport { ModalComponent } from './modal.component';\nimport { ModalContainerDirective, ModalContentDirective } from './modal.directive';\nimport { ModalService } from './modal.service';\nimport { MovableDirective } from './movable.directive';\n\n@NgModule({\n  imports: [CommonModule, OverlayContainerModule, ButtonModule, IconModule, ScrollingModule],\n  declarations: [\n    ModalComponent,\n    ModalContainerComponent,\n    ModalContainerDirective,\n    ModalContentDirective,\n    ModalHeaderComponent,\n    ModalFooterComponent,\n    MovableDirective,\n  ],\n  exports: [ModalComponent, ModalContainerComponent, ModalHeaderComponent, ModalFooterComponent, MovableDirective],\n  providers: [ModalService, DialogService, DocumentRef],\n})\nexport class ModalModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2","i2.ModalComponent","i3","i5.ModalContentDirective","i6.ModalHeaderComponent","i7.ModalFooterComponent"],"mappings":"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"}