{"version":3,"file":"ng-zorro-antd-modal.mjs","sources":["../../components/modal/modal-types.ts","../../components/modal/modal-config.ts","../../components/modal/modal-animations.ts","../../components/modal/utils.ts","../../components/modal/modal-container.directive.ts","../../components/modal/modal-close.component.ts","../../components/modal/modal-confirm-container.component.ts","../../components/modal/modal-title.component.ts","../../components/modal/modal-footer.component.ts","../../components/modal/modal-container.component.ts","../../components/modal/modal-ref.ts","../../components/modal/modal.service.ts","../../components/modal/modal-content.directive.ts","../../components/modal/modal-footer.directive.ts","../../components/modal/modal-title.directive.ts","../../components/modal/modal.component.ts","../../components/modal/modal.module.ts","../../components/modal/modal-legacy-api.ts","../../components/modal/public-api.ts","../../components/modal/ng-zorro-antd-modal.ts"],"sourcesContent":["/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { Direction } from '@angular/cdk/bidi';\nimport { EventEmitter, TemplateRef, Type, ViewContainerRef } from '@angular/core';\n\nimport { NzButtonShape, NzButtonSize, NzButtonType } from 'ng-zorro-antd/button';\nimport { NzSafeAny } from 'ng-zorro-antd/core/types';\n\nexport type OnClickCallback<T> = (instance: T) => (false | void | {}) | Promise<false | void | {}>;\n\nexport type ModalTypes = 'default' | 'confirm'; // Different modal styles we have supported\n\nexport type ConfirmType = 'confirm' | 'info' | 'success' | 'error' | 'warning'; // Subtypes of Confirm Modal\n\nexport interface StyleObjectLike {\n  [key: string]: string;\n}\n\nconst noopFun = () => void 0;\n\nexport class ModalOptions<T = NzSafeAny, R = NzSafeAny> {\n  nzCentered?: boolean = false;\n  nzClosable?: boolean = true;\n  nzOkLoading?: boolean = false;\n  nzOkDisabled?: boolean = false;\n  nzCancelDisabled?: boolean = false;\n  nzCancelLoading?: boolean = false;\n  nzNoAnimation?: boolean = false;\n  nzAutofocus?: 'ok' | 'cancel' | 'auto' | null = 'auto';\n  nzMask?: boolean;\n  nzMaskClosable?: boolean;\n  nzKeyboard?: boolean = true;\n  nzZIndex?: number = 1000;\n  nzWidth?: number | string = 520;\n  nzCloseIcon?: string | TemplateRef<void> = 'close';\n  nzOkType?: NzButtonType = 'primary';\n  nzOkDanger?: boolean = false;\n  nzModalType?: ModalTypes = 'default';\n  nzOnCancel?: EventEmitter<T> | OnClickCallback<T> = noopFun;\n  nzOnOk?: EventEmitter<T> | OnClickCallback<T> = noopFun;\n  nzComponentParams?: Partial<T>;\n  nzMaskStyle?: StyleObjectLike;\n  nzBodyStyle?: StyleObjectLike;\n  nzWrapClassName?: string;\n  nzClassName?: string;\n  nzStyle?: object;\n  nzTitle?: string | TemplateRef<{}>;\n  nzFooter?: string | TemplateRef<{}> | Array<ModalButtonOptions<T>> | null; // Default Modal ONLY\n  nzCancelText?: string | null;\n  nzOkText?: string | null;\n  nzContent?: string | TemplateRef<NzSafeAny> | Type<T>;\n  nzCloseOnNavigation?: boolean;\n  nzViewContainerRef?: ViewContainerRef;\n  // Template use only\n  nzAfterOpen?: EventEmitter<void>;\n  nzAfterClose?: EventEmitter<R>;\n\n  // Confirm\n  nzIconType?: string = 'question-circle';\n  nzDirection?: Direction;\n}\n\nexport interface ModalButtonOptions<T = NzSafeAny> {\n  label: string;\n  type?: NzButtonType;\n  danger?: boolean;\n  shape?: NzButtonShape;\n  ghost?: boolean;\n  size?: NzButtonSize;\n  autoLoading?: boolean; // Default: true, indicate whether show loading automatically while onClick returned a Promise\n\n  // [NOTE] \"componentInstance\" will refer to the component's instance when using Component\n  show?: boolean | ((this: ModalButtonOptions<T>, contentComponentInstance?: T) => boolean);\n  loading?: boolean | ((this: ModalButtonOptions<T>, contentComponentInstance?: T) => boolean); // This prop CAN'T use with autoLoading=true\n  disabled?: boolean | ((this: ModalButtonOptions<T>, contentComponentInstance?: T) => boolean);\n  onClick?(this: ModalButtonOptions<T>, contentComponentInstance?: T): NzSafeAny | Promise<NzSafeAny>;\n  [key: string]: NzSafeAny;\n}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { NzConfigKey } from 'ng-zorro-antd/core/config';\n\nexport const ZOOM_CLASS_NAME_MAP = {\n  enter: 'ant-zoom-enter',\n  enterActive: 'ant-zoom-enter-active',\n  leave: 'ant-zoom-leave',\n  leaveActive: 'ant-zoom-leave-active'\n};\n\nexport const FADE_CLASS_NAME_MAP = {\n  enter: 'ant-fade-enter',\n  enterActive: 'ant-fade-enter-active',\n  leave: 'ant-fade-leave',\n  leaveActive: 'ant-fade-leave-active'\n};\n\nexport const MODAL_MASK_CLASS_NAME = 'ant-modal-mask';\nexport const NZ_CONFIG_MODULE_NAME: NzConfigKey = 'modal';\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { animate, AnimationTriggerMetadata, state, style, transition, trigger } from '@angular/animations';\n\nexport const nzModalAnimations: {\n  readonly modalContainer: AnimationTriggerMetadata;\n} = {\n  modalContainer: trigger('modalContainer', [\n    state('void, exit', style({})),\n    state('enter', style({})),\n    transition('* => enter', animate('.24s', style({}))),\n    transition('* => void, * => exit', animate('.2s', style({})))\n  ])\n};\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { ModalOptions } from './modal-types';\n\nexport function applyConfigDefaults(config: ModalOptions, defaultOptions: ModalOptions): ModalOptions {\n  return { ...defaultOptions, ...config };\n}\n\nexport function getValueWithConfig<T>(\n  userValue: T | undefined,\n  configValue: T | undefined,\n  defaultValue: T\n): T | undefined {\n  return typeof userValue === 'undefined'\n    ? typeof configValue === 'undefined'\n      ? defaultValue\n      : configValue\n    : userValue;\n}\n\n/**\n * Assign the params into the content component instance.\n *\n * @deprecated Should use dependency injection to get the params for user\n * @breaking-change 14.0.0\n */\nexport function setContentInstanceParams<T>(instance: T, params: Partial<T> | undefined): void {\n  Object.assign(instance, params);\n}\n\nexport function getConfigFromComponent<T extends ModalOptions>(component: T): ModalOptions {\n  const {\n    nzCentered,\n    nzMask,\n    nzMaskClosable,\n    nzClosable,\n    nzOkLoading,\n    nzOkDisabled,\n    nzCancelDisabled,\n    nzCancelLoading,\n    nzKeyboard,\n    nzNoAnimation,\n    nzContent,\n    nzComponentParams,\n    nzFooter,\n    nzZIndex,\n    nzWidth,\n    nzWrapClassName,\n    nzClassName,\n    nzStyle,\n    nzTitle,\n    nzCloseIcon,\n    nzMaskStyle,\n    nzBodyStyle,\n    nzOkText,\n    nzCancelText,\n    nzOkType,\n    nzOkDanger,\n    nzIconType,\n    nzModalType,\n    nzOnOk,\n    nzOnCancel,\n    nzAfterOpen,\n    nzAfterClose,\n    nzCloseOnNavigation,\n    nzAutofocus\n  } = component;\n  return {\n    nzCentered,\n    nzMask,\n    nzMaskClosable,\n    nzClosable,\n    nzOkLoading,\n    nzOkDisabled,\n    nzCancelDisabled,\n    nzCancelLoading,\n    nzKeyboard,\n    nzNoAnimation,\n    nzContent,\n    nzComponentParams,\n    nzFooter,\n    nzZIndex,\n    nzWidth,\n    nzWrapClassName,\n    nzClassName,\n    nzStyle,\n    nzTitle,\n    nzCloseIcon,\n    nzMaskStyle,\n    nzBodyStyle,\n    nzOkText,\n    nzCancelText,\n    nzOkType,\n    nzOkDanger,\n    nzIconType,\n    nzModalType,\n    nzOnOk,\n    nzOnCancel,\n    nzAfterOpen,\n    nzAfterClose,\n    nzCloseOnNavigation,\n    nzAutofocus\n  };\n}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { AnimationEvent } from '@angular/animations';\nimport { FocusTrap, FocusTrapFactory } from '@angular/cdk/a11y';\nimport { Direction } from '@angular/cdk/bidi';\nimport { OverlayRef } from '@angular/cdk/overlay';\nimport { BasePortalOutlet, CdkPortalOutlet, ComponentPortal, TemplatePortal } from '@angular/cdk/portal';\nimport {\n  ChangeDetectorRef,\n  ComponentRef,\n  Directive,\n  ElementRef,\n  EmbeddedViewRef,\n  EventEmitter,\n  NgZone,\n  OnDestroy,\n  Renderer2\n} from '@angular/core';\nimport { fromEvent, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { NzConfigService } from 'ng-zorro-antd/core/config';\nimport { NzSafeAny } from 'ng-zorro-antd/core/types';\nimport { getElementOffset, isNotNil } from 'ng-zorro-antd/core/util';\n\nimport { FADE_CLASS_NAME_MAP, MODAL_MASK_CLASS_NAME, NZ_CONFIG_MODULE_NAME, ZOOM_CLASS_NAME_MAP } from './modal-config';\nimport { NzModalRef } from './modal-ref';\nimport { ModalOptions } from './modal-types';\nimport { getValueWithConfig } from './utils';\n\nexport function throwNzModalContentAlreadyAttachedError(): never {\n  throw Error('Attempting to attach modal content after content is already attached');\n}\n\n@Directive()\nexport class BaseModalContainerComponent extends BasePortalOutlet implements OnDestroy {\n  portalOutlet!: CdkPortalOutlet;\n  modalElementRef!: ElementRef<HTMLDivElement>;\n\n  animationStateChanged = new EventEmitter<AnimationEvent>();\n  containerClick = new EventEmitter<void>();\n  cancelTriggered = new EventEmitter<void>();\n  okTriggered = new EventEmitter<void>();\n\n  state: 'void' | 'enter' | 'exit' = 'enter';\n  document: Document;\n  modalRef!: NzModalRef;\n  isStringContent: boolean = false;\n  dir: Direction = 'ltr';\n  private elementFocusedBeforeModalWasOpened: HTMLElement | null = null;\n  private focusTrap!: FocusTrap;\n  private mouseDown = false;\n  private oldMaskStyle: { [key: string]: string } | null = null;\n  protected destroy$ = new Subject();\n\n  get showMask(): boolean {\n    const defaultConfig: NzSafeAny = this.nzConfigService.getConfigForComponent(NZ_CONFIG_MODULE_NAME) || {};\n\n    return !!getValueWithConfig<boolean>(this.config.nzMask, defaultConfig.nzMask, true);\n  }\n\n  get maskClosable(): boolean {\n    const defaultConfig: NzSafeAny = this.nzConfigService.getConfigForComponent(NZ_CONFIG_MODULE_NAME) || {};\n\n    return !!getValueWithConfig<boolean>(this.config.nzMaskClosable, defaultConfig.nzMaskClosable, true);\n  }\n\n  constructor(\n    protected ngZone: NgZone,\n    protected host: ElementRef<HTMLElement>,\n    protected focusTrapFactory: FocusTrapFactory,\n    public cdr: ChangeDetectorRef,\n    protected render: Renderer2,\n    protected overlayRef: OverlayRef,\n    protected nzConfigService: NzConfigService,\n    public config: ModalOptions,\n    document?: NzSafeAny,\n    protected animationType?: string\n  ) {\n    super();\n    this.document = document;\n    this.dir = overlayRef.getDirection();\n    this.isStringContent = typeof config.nzContent === 'string';\n    this.nzConfigService\n      .getConfigChangeEventForComponent(NZ_CONFIG_MODULE_NAME)\n      .pipe(takeUntil(this.destroy$))\n      .subscribe(() => {\n        this.updateMaskClassname();\n      });\n  }\n\n  onContainerClick(e: MouseEvent): void {\n    if (e.target === e.currentTarget && !this.mouseDown && this.showMask && this.maskClosable) {\n      this.containerClick.emit();\n    }\n  }\n\n  onCloseClick(): void {\n    this.cancelTriggered.emit();\n  }\n\n  onOkClick(): void {\n    this.okTriggered.emit();\n  }\n\n  attachComponentPortal<T>(portal: ComponentPortal<T>): ComponentRef<T> {\n    if (this.portalOutlet.hasAttached()) {\n      throwNzModalContentAlreadyAttachedError();\n    }\n    this.savePreviouslyFocusedElement();\n    this.setZIndexForBackdrop();\n    return this.portalOutlet.attachComponentPortal(portal);\n  }\n\n  attachTemplatePortal<C>(portal: TemplatePortal<C>): EmbeddedViewRef<C> {\n    if (this.portalOutlet.hasAttached()) {\n      throwNzModalContentAlreadyAttachedError();\n    }\n    this.savePreviouslyFocusedElement();\n    this.setZIndexForBackdrop();\n    return this.portalOutlet.attachTemplatePortal(portal);\n  }\n\n  attachStringContent(): void {\n    this.savePreviouslyFocusedElement();\n    this.setZIndexForBackdrop();\n  }\n\n  getNativeElement(): HTMLElement {\n    return this.host.nativeElement;\n  }\n\n  private animationDisabled(): boolean {\n    return this.config.nzNoAnimation || this.animationType === 'NoopAnimations';\n  }\n\n  private setModalTransformOrigin(): void {\n    const modalElement = this.modalElementRef.nativeElement;\n    if (this.elementFocusedBeforeModalWasOpened as HTMLElement) {\n      const previouslyDOMRect = this.elementFocusedBeforeModalWasOpened!.getBoundingClientRect();\n      const lastPosition = getElementOffset(this.elementFocusedBeforeModalWasOpened!);\n      const x = lastPosition.left + previouslyDOMRect.width / 2;\n      const y = lastPosition.top + previouslyDOMRect.height / 2;\n      const transformOrigin = `${x - modalElement.offsetLeft}px ${y - modalElement.offsetTop}px 0px`;\n      this.render.setStyle(modalElement, 'transform-origin', transformOrigin);\n    }\n  }\n\n  private savePreviouslyFocusedElement(): void {\n    if (!this.focusTrap) {\n      this.focusTrap = this.focusTrapFactory.create(this.host.nativeElement);\n    }\n\n    if (this.document) {\n      this.elementFocusedBeforeModalWasOpened = this.document.activeElement as HTMLElement;\n      if (this.host.nativeElement.focus) {\n        this.ngZone.runOutsideAngular(() => Promise.resolve().then(() => this.host.nativeElement.focus()));\n      }\n    }\n  }\n\n  private trapFocus(): void {\n    const element = this.host.nativeElement;\n\n    if (this.config.nzAutofocus) {\n      this.focusTrap.focusInitialElementWhenReady();\n    } else {\n      const activeElement = this.document.activeElement;\n      if (activeElement !== element && !element.contains(activeElement)) {\n        element.focus();\n      }\n    }\n  }\n\n  private restoreFocus(): void {\n    const toFocus = this.elementFocusedBeforeModalWasOpened as HTMLElement;\n\n    // We need the extra check, because IE can set the `activeElement` to null in some cases.\n    if (toFocus && typeof toFocus.focus === 'function') {\n      const activeElement = this.document.activeElement as Element;\n      const element = this.host.nativeElement;\n\n      if (\n        !activeElement ||\n        activeElement === this.document.body ||\n        activeElement === element ||\n        element.contains(activeElement)\n      ) {\n        toFocus.focus();\n      }\n    }\n\n    if (this.focusTrap) {\n      this.focusTrap.destroy();\n    }\n  }\n\n  private setEnterAnimationClass(): void {\n    if (this.animationDisabled()) {\n      return;\n    }\n    // Make sure to set the `TransformOrigin` style before set the modelElement's class names\n    this.setModalTransformOrigin();\n    const modalElement = this.modalElementRef.nativeElement;\n    const backdropElement = this.overlayRef.backdropElement;\n    modalElement.classList.add(ZOOM_CLASS_NAME_MAP.enter);\n    modalElement.classList.add(ZOOM_CLASS_NAME_MAP.enterActive);\n    if (backdropElement) {\n      backdropElement.classList.add(FADE_CLASS_NAME_MAP.enter);\n      backdropElement.classList.add(FADE_CLASS_NAME_MAP.enterActive);\n    }\n  }\n\n  private setExitAnimationClass(): void {\n    const modalElement = this.modalElementRef.nativeElement;\n\n    modalElement.classList.add(ZOOM_CLASS_NAME_MAP.leave);\n    modalElement.classList.add(ZOOM_CLASS_NAME_MAP.leaveActive);\n\n    this.setMaskExitAnimationClass();\n  }\n\n  private setMaskExitAnimationClass(force: boolean = false): void {\n    const backdropElement = this.overlayRef.backdropElement;\n    if (backdropElement) {\n      if (this.animationDisabled() || force) {\n        // https://github.com/angular/components/issues/18645\n        backdropElement.classList.remove(MODAL_MASK_CLASS_NAME);\n        return;\n      }\n      backdropElement.classList.add(FADE_CLASS_NAME_MAP.leave);\n      backdropElement.classList.add(FADE_CLASS_NAME_MAP.leaveActive);\n    }\n  }\n\n  private cleanAnimationClass(): void {\n    if (this.animationDisabled()) {\n      return;\n    }\n    const backdropElement = this.overlayRef.backdropElement;\n    const modalElement = this.modalElementRef.nativeElement;\n    if (backdropElement) {\n      backdropElement.classList.remove(FADE_CLASS_NAME_MAP.enter);\n      backdropElement.classList.remove(FADE_CLASS_NAME_MAP.enterActive);\n    }\n    modalElement.classList.remove(ZOOM_CLASS_NAME_MAP.enter);\n    modalElement.classList.remove(ZOOM_CLASS_NAME_MAP.enterActive);\n    modalElement.classList.remove(ZOOM_CLASS_NAME_MAP.leave);\n    modalElement.classList.remove(ZOOM_CLASS_NAME_MAP.leaveActive);\n  }\n\n  private setZIndexForBackdrop(): void {\n    const backdropElement = this.overlayRef.backdropElement;\n    if (backdropElement) {\n      if (isNotNil(this.config.nzZIndex)) {\n        this.render.setStyle(backdropElement, 'z-index', this.config.nzZIndex);\n      }\n    }\n  }\n\n  bindBackdropStyle(): void {\n    const backdropElement = this.overlayRef.backdropElement;\n    if (backdropElement) {\n      if (this.oldMaskStyle) {\n        const styles = this.oldMaskStyle as { [key: string]: string };\n        Object.keys(styles).forEach(key => {\n          this.render.removeStyle(backdropElement, key);\n        });\n        this.oldMaskStyle = null;\n      }\n\n      this.setZIndexForBackdrop();\n\n      if (typeof this.config.nzMaskStyle === 'object' && Object.keys(this.config.nzMaskStyle).length) {\n        const styles: { [key: string]: string } = { ...this.config.nzMaskStyle };\n        Object.keys(styles).forEach(key => {\n          this.render.setStyle(backdropElement, key, styles[key]);\n        });\n        this.oldMaskStyle = styles;\n      }\n    }\n  }\n\n  updateMaskClassname(): void {\n    const backdropElement = this.overlayRef.backdropElement;\n    if (backdropElement) {\n      if (this.showMask) {\n        backdropElement.classList.add(MODAL_MASK_CLASS_NAME);\n      } else {\n        backdropElement.classList.remove(MODAL_MASK_CLASS_NAME);\n      }\n    }\n  }\n\n  onAnimationDone(event: AnimationEvent): void {\n    if (event.toState === 'enter') {\n      this.trapFocus();\n    } else if (event.toState === 'exit') {\n      this.restoreFocus();\n    }\n    this.cleanAnimationClass();\n    this.animationStateChanged.emit(event);\n  }\n\n  onAnimationStart(event: AnimationEvent): void {\n    if (event.toState === 'enter') {\n      this.setEnterAnimationClass();\n      this.bindBackdropStyle();\n    } else if (event.toState === 'exit') {\n      this.setExitAnimationClass();\n    }\n    this.animationStateChanged.emit(event);\n  }\n\n  startExitAnimation(): void {\n    this.state = 'exit';\n    this.cdr.markForCheck();\n  }\n\n  ngOnDestroy(): void {\n    this.setMaskExitAnimationClass(true);\n    this.destroy$.next();\n    this.destroy$.complete();\n  }\n\n  protected setupMouseListeners(modalContainer: ElementRef<HTMLElement>): void {\n    this.ngZone.runOutsideAngular(() => {\n      fromEvent(this.host.nativeElement, 'mouseup')\n        .pipe(takeUntil(this.destroy$))\n        .subscribe(() => {\n          if (this.mouseDown) {\n            setTimeout(() => {\n              this.mouseDown = false;\n            });\n          }\n        });\n\n      fromEvent(modalContainer.nativeElement, 'mousedown')\n        .pipe(takeUntil(this.destroy$))\n        .subscribe(() => {\n          this.mouseDown = true;\n        });\n    });\n  }\n}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { ModalOptions } from './modal-types';\n\n@Component({\n  selector: 'button[nz-modal-close]',\n  exportAs: 'NzModalCloseBuiltin',\n  template: `\n    <span class=\"ant-modal-close-x\">\n      <ng-container *nzStringTemplateOutlet=\"config.nzCloseIcon; let closeIcon\">\n        <i nz-icon [nzType]=\"closeIcon\" class=\"ant-modal-close-icon\"></i>\n      </ng-container>\n    </span>\n  `,\n  host: {\n    class: 'ant-modal-close',\n    'aria-label': 'Close'\n  },\n  changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class NzModalCloseComponent {\n  constructor(public config: ModalOptions) {}\n}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { FocusTrapFactory } from '@angular/cdk/a11y';\nimport { OverlayRef } from '@angular/cdk/overlay';\nimport { CdkPortalOutlet } from '@angular/cdk/portal';\nimport { DOCUMENT } from '@angular/common';\nimport {\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  ElementRef,\n  EventEmitter,\n  Inject,\n  NgZone,\n  OnInit,\n  Optional,\n  Output,\n  Renderer2,\n  ViewChild\n} from '@angular/core';\nimport { ANIMATION_MODULE_TYPE } from '@angular/platform-browser/animations';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { NzConfigService } from 'ng-zorro-antd/core/config';\nimport { NzSafeAny } from 'ng-zorro-antd/core/types';\nimport { NzI18nService, NzModalI18nInterface } from 'ng-zorro-antd/i18n';\n\nimport { nzModalAnimations } from './modal-animations';\nimport { BaseModalContainerComponent } from './modal-container.directive';\nimport { ModalOptions } from './modal-types';\n\n@Component({\n  selector: 'nz-modal-confirm-container',\n  exportAs: 'nzModalConfirmContainer',\n  template: `\n    <div\n      #modalElement\n      role=\"document\"\n      class=\"ant-modal\"\n      [ngClass]=\"config.nzClassName!\"\n      [ngStyle]=\"config.nzStyle!\"\n      [style.width]=\"config?.nzWidth! | nzToCssUnit\"\n    >\n      <div class=\"ant-modal-content\">\n        <button *ngIf=\"config.nzClosable\" nz-modal-close (click)=\"onCloseClick()\"></button>\n        <div class=\"ant-modal-body\" [ngStyle]=\"config.nzBodyStyle!\">\n          <div class=\"ant-modal-confirm-body-wrapper\">\n            <div class=\"ant-modal-confirm-body\">\n              <i nz-icon [nzType]=\"config.nzIconType!\"></i>\n              <span class=\"ant-modal-confirm-title\">\n                <ng-container *nzStringTemplateOutlet=\"config.nzTitle\">\n                  <span [innerHTML]=\"config.nzTitle\"></span>\n                </ng-container>\n              </span>\n              <div class=\"ant-modal-confirm-content\">\n                <ng-template cdkPortalOutlet></ng-template>\n                <div *ngIf=\"isStringContent\" [innerHTML]=\"config.nzContent\"></div>\n              </div>\n            </div>\n            <div class=\"ant-modal-confirm-btns\">\n              <button\n                *ngIf=\"config.nzCancelText !== null\"\n                [attr.cdkFocusInitial]=\"config.nzAutofocus === 'cancel' || null\"\n                nz-button\n                (click)=\"onCancel()\"\n                [nzLoading]=\"!!config.nzCancelLoading\"\n                [disabled]=\"config.nzCancelDisabled\"\n              >\n                {{ config.nzCancelText || locale.cancelText }}\n              </button>\n              <button\n                *ngIf=\"config.nzOkText !== null\"\n                [attr.cdkFocusInitial]=\"config.nzAutofocus === 'ok' || null\"\n                nz-button\n                [nzType]=\"config.nzOkType!\"\n                (click)=\"onOk()\"\n                [nzLoading]=\"!!config.nzOkLoading\"\n                [disabled]=\"config.nzOkDisabled\"\n                [nzDanger]=\"config.nzOkDanger\"\n              >\n                {{ config.nzOkText || locale.okText }}\n              </button>\n            </div>\n          </div>\n        </div>\n      </div>\n    </div>\n  `,\n  animations: [nzModalAnimations.modalContainer],\n  // Using OnPush for modal caused footer can not to detect changes. we can fix it when 8.x.\n  changeDetection: ChangeDetectionStrategy.Default,\n  host: {\n    tabindex: '-1',\n    role: 'dialog',\n    '[class]': 'config.nzWrapClassName ? \"ant-modal-wrap \" + config.nzWrapClassName : \"ant-modal-wrap\"',\n    '[class.ant-modal-wrap-rtl]': `dir === 'rtl'`,\n    '[class.ant-modal-centered]': 'config.nzCentered',\n    '[style.zIndex]': 'config.nzZIndex',\n    '[@.disabled]': 'config.nzNoAnimation',\n    '[@modalContainer]': 'state',\n    '(@modalContainer.start)': 'onAnimationStart($event)',\n    '(@modalContainer.done)': 'onAnimationDone($event)',\n    '(click)': 'onContainerClick($event)'\n  }\n})\nexport class NzModalConfirmContainerComponent extends BaseModalContainerComponent implements OnInit {\n  @ViewChild(CdkPortalOutlet, { static: true }) override portalOutlet!: CdkPortalOutlet;\n  @ViewChild('modalElement', { static: true }) override modalElementRef!: ElementRef<HTMLDivElement>;\n  @Output() override readonly cancelTriggered = new EventEmitter<void>();\n  @Output() override readonly okTriggered = new EventEmitter<void>();\n  locale!: NzModalI18nInterface;\n\n  constructor(\n    ngZone: NgZone,\n    private i18n: NzI18nService,\n    host: ElementRef<HTMLElement>,\n    focusTrapFactory: FocusTrapFactory,\n    cdr: ChangeDetectorRef,\n    render: Renderer2,\n    overlayRef: OverlayRef,\n    nzConfigService: NzConfigService,\n    public override config: ModalOptions,\n    @Optional() @Inject(DOCUMENT) document: NzSafeAny,\n    @Optional() @Inject(ANIMATION_MODULE_TYPE) animationType: string\n  ) {\n    super(ngZone, host, focusTrapFactory, cdr, render, overlayRef, nzConfigService, config, document, animationType);\n\n    this.i18n.localeChange.pipe(takeUntil(this.destroy$)).subscribe(() => {\n      this.locale = this.i18n.getLocaleData('Modal');\n    });\n  }\n\n  ngOnInit(): void {\n    this.setupMouseListeners(this.modalElementRef);\n  }\n\n  onCancel(): void {\n    this.cancelTriggered.emit();\n  }\n\n  onOk(): void {\n    this.okTriggered.emit();\n  }\n}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { ModalOptions } from './modal-types';\n\n@Component({\n  selector: 'div[nz-modal-title]',\n  exportAs: 'NzModalTitleBuiltin',\n  template: `\n    <div class=\"ant-modal-title\">\n      <ng-container *nzStringTemplateOutlet=\"config.nzTitle\">\n        <div [innerHTML]=\"config.nzTitle\"></div>\n      </ng-container>\n    </div>\n  `,\n  host: {\n    class: 'ant-modal-header'\n  },\n  changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class NzModalTitleComponent {\n  constructor(public config: ModalOptions) {}\n}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { ChangeDetectionStrategy, Component, EventEmitter, Input, OnDestroy, Output } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { isPromise } from 'ng-zorro-antd/core/util';\nimport { NzI18nService, NzModalI18nInterface } from 'ng-zorro-antd/i18n';\n\nimport { NzModalRef } from './modal-ref';\nimport { ModalButtonOptions, ModalOptions } from './modal-types';\n\n@Component({\n  selector: 'div[nz-modal-footer]',\n  exportAs: 'NzModalFooterBuiltin',\n  template: `\n    <ng-container *ngIf=\"config.nzFooter; else defaultFooterButtons\">\n      <ng-container\n        *nzStringTemplateOutlet=\"config.nzFooter; context: { $implicit: config.nzComponentParams, modalRef: modalRef }\"\n      >\n        <div *ngIf=\"!buttonsFooter\" [innerHTML]=\"config.nzFooter\"></div>\n        <ng-container *ngIf=\"buttonsFooter\">\n          <button\n            *ngFor=\"let button of buttons\"\n            nz-button\n            (click)=\"onButtonClick(button)\"\n            [hidden]=\"!getButtonCallableProp(button, 'show')\"\n            [nzLoading]=\"getButtonCallableProp(button, 'loading')\"\n            [disabled]=\"getButtonCallableProp(button, 'disabled')\"\n            [nzType]=\"button.type!\"\n            [nzDanger]=\"button.danger\"\n            [nzShape]=\"button.shape!\"\n            [nzSize]=\"button.size!\"\n            [nzGhost]=\"button.ghost!\"\n          >\n            {{ button.label }}\n          </button>\n        </ng-container>\n      </ng-container>\n    </ng-container>\n    <ng-template #defaultFooterButtons>\n      <button\n        *ngIf=\"config.nzCancelText !== null\"\n        [attr.cdkFocusInitial]=\"config.nzAutofocus === 'cancel' || null\"\n        nz-button\n        (click)=\"onCancel()\"\n        [nzLoading]=\"!!config.nzCancelLoading\"\n        [disabled]=\"config.nzCancelDisabled\"\n      >\n        {{ config.nzCancelText || locale.cancelText }}\n      </button>\n      <button\n        *ngIf=\"config.nzOkText !== null\"\n        [attr.cdkFocusInitial]=\"config.nzAutofocus === 'ok' || null\"\n        nz-button\n        [nzType]=\"config.nzOkType!\"\n        [nzDanger]=\"config.nzOkDanger\"\n        (click)=\"onOk()\"\n        [nzLoading]=\"!!config.nzOkLoading\"\n        [disabled]=\"config.nzOkDisabled\"\n      >\n        {{ config.nzOkText || locale.okText }}\n      </button>\n    </ng-template>\n  `,\n  host: {\n    class: 'ant-modal-footer'\n  },\n  changeDetection: ChangeDetectionStrategy.Default\n})\nexport class NzModalFooterComponent implements OnDestroy {\n  buttonsFooter = false;\n  buttons: ModalButtonOptions[] = [];\n  locale!: NzModalI18nInterface;\n  @Output() readonly cancelTriggered = new EventEmitter<void>();\n  @Output() readonly okTriggered = new EventEmitter<void>();\n  @Input() modalRef!: NzModalRef;\n  private destroy$ = new Subject<void>();\n\n  constructor(private i18n: NzI18nService, public config: ModalOptions) {\n    if (Array.isArray(config.nzFooter)) {\n      this.buttonsFooter = true;\n      this.buttons = (config.nzFooter as ModalButtonOptions[]).map(mergeDefaultOption);\n    }\n    this.i18n.localeChange.pipe(takeUntil(this.destroy$)).subscribe(() => {\n      this.locale = this.i18n.getLocaleData('Modal');\n    });\n  }\n\n  onCancel(): void {\n    this.cancelTriggered.emit();\n  }\n\n  onOk(): void {\n    this.okTriggered.emit();\n  }\n\n  /**\n   * Returns the value of the specified key.\n   * If it is a function, run and return the return value of the function.\n   */\n  getButtonCallableProp(options: ModalButtonOptions, prop: keyof ModalButtonOptions): boolean {\n    const value = options[prop];\n    const componentInstance = this.modalRef.getContentComponent();\n    return typeof value === 'function' ? value.apply(options, componentInstance && [componentInstance]) : value;\n  }\n\n  /**\n   * Run function based on the type and set its `loading` prop if needed.\n   */\n  onButtonClick(options: ModalButtonOptions): void {\n    const loading = this.getButtonCallableProp(options, 'loading');\n    if (!loading) {\n      const result = this.getButtonCallableProp(options, 'onClick');\n      if (options.autoLoading && isPromise(result)) {\n        options.loading = true;\n        result\n          .then(() => (options.loading = false))\n          .catch(e => {\n            options.loading = false;\n            throw e;\n          });\n      }\n    }\n  }\n\n  ngOnDestroy(): void {\n    this.destroy$.next();\n    this.destroy$.complete();\n  }\n}\n\nfunction mergeDefaultOption(options: ModalButtonOptions): ModalButtonOptions {\n  return {\n    type: null,\n    size: 'default',\n    autoLoading: true,\n    show: true,\n    loading: false,\n    disabled: false,\n    ...options\n  };\n}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { FocusTrapFactory } from '@angular/cdk/a11y';\nimport { OverlayRef } from '@angular/cdk/overlay';\nimport { CdkPortalOutlet } from '@angular/cdk/portal';\nimport { DOCUMENT } from '@angular/common';\nimport {\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  ElementRef,\n  Inject,\n  NgZone,\n  OnInit,\n  Optional,\n  Renderer2,\n  ViewChild\n} from '@angular/core';\nimport { ANIMATION_MODULE_TYPE } from '@angular/platform-browser/animations';\n\nimport { NzConfigService } from 'ng-zorro-antd/core/config';\nimport { NzSafeAny } from 'ng-zorro-antd/core/types';\n\nimport { nzModalAnimations } from './modal-animations';\nimport { BaseModalContainerComponent } from './modal-container.directive';\nimport { ModalOptions } from './modal-types';\n\n@Component({\n  selector: 'nz-modal-container',\n  exportAs: 'nzModalContainer',\n  template: `\n    <div\n      #modalElement\n      role=\"document\"\n      class=\"ant-modal\"\n      [ngClass]=\"config.nzClassName!\"\n      [ngStyle]=\"config.nzStyle!\"\n      [style.width]=\"config?.nzWidth! | nzToCssUnit\"\n    >\n      <div class=\"ant-modal-content\">\n        <button *ngIf=\"config.nzClosable\" nz-modal-close (click)=\"onCloseClick()\"></button>\n        <div *ngIf=\"config.nzTitle\" nz-modal-title></div>\n        <div class=\"ant-modal-body\" [ngStyle]=\"config.nzBodyStyle!\">\n          <ng-template cdkPortalOutlet></ng-template>\n          <div *ngIf=\"isStringContent\" [innerHTML]=\"config.nzContent\"></div>\n        </div>\n        <div\n          *ngIf=\"config.nzFooter !== null\"\n          nz-modal-footer\n          [modalRef]=\"modalRef\"\n          (cancelTriggered)=\"onCloseClick()\"\n          (okTriggered)=\"onOkClick()\"\n        ></div>\n      </div>\n    </div>\n  `,\n  animations: [nzModalAnimations.modalContainer],\n  // Using OnPush for modal caused footer can not to detect changes. we can fix it when 8.x.\n  changeDetection: ChangeDetectionStrategy.Default,\n  host: {\n    tabindex: '-1',\n    role: 'dialog',\n    '[class]': 'config.nzWrapClassName ? \"ant-modal-wrap \" + config.nzWrapClassName : \"ant-modal-wrap\"',\n    '[class.ant-modal-wrap-rtl]': `dir === 'rtl'`,\n    '[class.ant-modal-centered]': 'config.nzCentered',\n    '[style.zIndex]': 'config.nzZIndex',\n    '[@.disabled]': 'config.nzNoAnimation',\n    '[@modalContainer]': 'state',\n    '(@modalContainer.start)': 'onAnimationStart($event)',\n    '(@modalContainer.done)': 'onAnimationDone($event)',\n    '(click)': 'onContainerClick($event)'\n  }\n})\nexport class NzModalContainerComponent extends BaseModalContainerComponent implements OnInit {\n  @ViewChild(CdkPortalOutlet, { static: true }) override portalOutlet!: CdkPortalOutlet;\n  @ViewChild('modalElement', { static: true }) override modalElementRef!: ElementRef<HTMLDivElement>;\n  constructor(\n    ngZone: NgZone,\n    host: ElementRef<HTMLElement>,\n    focusTrapFactory: FocusTrapFactory,\n    cdr: ChangeDetectorRef,\n    render: Renderer2,\n    overlayRef: OverlayRef,\n    nzConfigService: NzConfigService,\n    public override config: ModalOptions,\n    @Optional() @Inject(DOCUMENT) document: NzSafeAny,\n    @Optional() @Inject(ANIMATION_MODULE_TYPE) animationType: string\n  ) {\n    super(ngZone, host, focusTrapFactory, cdr, render, overlayRef, nzConfigService, config, document, animationType);\n  }\n\n  ngOnInit(): void {\n    this.setupMouseListeners(this.modalElementRef);\n  }\n}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { ESCAPE, hasModifierKey } from '@angular/cdk/keycodes';\nimport { OverlayRef } from '@angular/cdk/overlay';\nimport { EventEmitter } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { filter, take, takeUntil } from 'rxjs/operators';\n\nimport { NzSafeAny } from 'ng-zorro-antd/core/types';\nimport { isPromise } from 'ng-zorro-antd/core/util';\n\nimport { BaseModalContainerComponent } from './modal-container.directive';\nimport { NzModalLegacyAPI } from './modal-legacy-api';\nimport { ModalOptions } from './modal-types';\n\nexport const enum NzModalState {\n  OPEN,\n  CLOSING,\n  CLOSED\n}\n\nexport const enum NzTriggerAction {\n  CANCEL = 'cancel',\n  OK = 'ok'\n}\n\nexport class NzModalRef<T = NzSafeAny, R = NzSafeAny> implements NzModalLegacyAPI<T, R> {\n  componentInstance: T | null = null;\n  result?: R;\n  state: NzModalState = NzModalState.OPEN;\n  afterClose: Subject<R> = new Subject();\n  afterOpen: Subject<void> = new Subject();\n\n  private closeTimeout?: number;\n\n  private destroy$ = new Subject<void>();\n\n  constructor(\n    private overlayRef: OverlayRef,\n    private config: ModalOptions,\n    public containerInstance: BaseModalContainerComponent\n  ) {\n    containerInstance.animationStateChanged\n      .pipe(\n        filter(event => event.phaseName === 'done' && event.toState === 'enter'),\n        take(1)\n      )\n      .subscribe(() => {\n        this.afterOpen.next();\n        this.afterOpen.complete();\n        if (config.nzAfterOpen instanceof EventEmitter) {\n          config.nzAfterOpen.emit();\n        }\n      });\n\n    containerInstance.animationStateChanged\n      .pipe(\n        filter(event => event.phaseName === 'done' && event.toState === 'exit'),\n        take(1)\n      )\n      .subscribe(() => {\n        clearTimeout(this.closeTimeout);\n        this._finishDialogClose();\n      });\n\n    containerInstance.containerClick.pipe(take(1), takeUntil(this.destroy$)).subscribe(() => {\n      const cancelable = !this.config.nzCancelLoading && !this.config.nzOkLoading;\n      if (cancelable) {\n        this.trigger(NzTriggerAction.CANCEL);\n      }\n    });\n\n    overlayRef\n      .keydownEvents()\n      .pipe(\n        filter(\n          event =>\n            (this.config.nzKeyboard as boolean) &&\n            !this.config.nzCancelLoading &&\n            !this.config.nzOkLoading &&\n            event.keyCode === ESCAPE &&\n            !hasModifierKey(event)\n        )\n      )\n      .subscribe(event => {\n        event.preventDefault();\n        this.trigger(NzTriggerAction.CANCEL);\n      });\n\n    containerInstance.cancelTriggered\n      .pipe(takeUntil(this.destroy$))\n      .subscribe(() => this.trigger(NzTriggerAction.CANCEL));\n\n    containerInstance.okTriggered.pipe(takeUntil(this.destroy$)).subscribe(() => this.trigger(NzTriggerAction.OK));\n\n    overlayRef.detachments().subscribe(() => {\n      this.afterClose.next(this.result);\n      this.afterClose.complete();\n      if (config.nzAfterClose instanceof EventEmitter) {\n        config.nzAfterClose.emit(this.result);\n      }\n      this.componentInstance = null;\n      this.overlayRef.dispose();\n    });\n  }\n\n  getContentComponent(): T {\n    return this.componentInstance as T;\n  }\n\n  getElement(): HTMLElement {\n    return this.containerInstance.getNativeElement();\n  }\n\n  destroy(result?: R): void {\n    this.close(result);\n  }\n\n  triggerOk(): Promise<void> {\n    return this.trigger(NzTriggerAction.OK);\n  }\n\n  triggerCancel(): Promise<void> {\n    return this.trigger(NzTriggerAction.CANCEL);\n  }\n\n  close(result?: R): void {\n    if (this.state !== NzModalState.OPEN) {\n      return;\n    }\n    this.result = result;\n    this.containerInstance.animationStateChanged\n      .pipe(\n        filter(event => event.phaseName === 'start'),\n        take(1)\n      )\n      .subscribe(event => {\n        this.overlayRef.detachBackdrop();\n        this.closeTimeout = setTimeout(() => {\n          this._finishDialogClose();\n        }, event.totalTime + 100);\n      });\n\n    this.containerInstance.startExitAnimation();\n    this.state = NzModalState.CLOSING;\n  }\n\n  updateConfig(config: ModalOptions): void {\n    Object.assign(this.config, config);\n    this.containerInstance.bindBackdropStyle();\n    this.containerInstance.cdr.markForCheck();\n  }\n\n  getState(): NzModalState {\n    return this.state;\n  }\n\n  getConfig(): ModalOptions {\n    return this.config;\n  }\n\n  getBackdropElement(): HTMLElement | null {\n    return this.overlayRef.backdropElement;\n  }\n\n  private async trigger(action: NzTriggerAction): Promise<void> {\n    const trigger = { ok: this.config.nzOnOk, cancel: this.config.nzOnCancel }[action];\n    const loadingKey = { ok: 'nzOkLoading', cancel: 'nzCancelLoading' }[action] as 'nzOkLoading' | 'nzCancelLoading';\n    const loading = this.config[loadingKey];\n    if (loading) {\n      return;\n    }\n    if (trigger instanceof EventEmitter) {\n      trigger.emit(this.getContentComponent());\n    } else if (typeof trigger === 'function') {\n      const result = trigger(this.getContentComponent());\n      if (isPromise(result)) {\n        this.config[loadingKey] = true;\n        let doClose: boolean | void | {} = false;\n        try {\n          doClose = await result;\n        } finally {\n          this.config[loadingKey] = false;\n          this.closeWhitResult(doClose);\n        }\n      } else {\n        this.closeWhitResult(result);\n      }\n    }\n  }\n\n  private closeWhitResult(result: NzSafeAny): void {\n    if (result !== false) {\n      this.close(result);\n    }\n  }\n\n  _finishDialogClose(): void {\n    this.state = NzModalState.CLOSED;\n    this.overlayRef.dispose();\n    this.destroy$.next();\n  }\n}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { Directionality } from '@angular/cdk/bidi';\nimport { ComponentType, Overlay, OverlayConfig, OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentPortal, TemplatePortal } from '@angular/cdk/portal';\nimport { Injectable, Injector, OnDestroy, Optional, SkipSelf, TemplateRef } from '@angular/core';\nimport { defer, Observable, Subject } from 'rxjs';\nimport { startWith } from 'rxjs/operators';\n\nimport { NzConfigService } from 'ng-zorro-antd/core/config';\nimport { warn } from 'ng-zorro-antd/core/logger';\nimport { IndexableObject, NzSafeAny } from 'ng-zorro-antd/core/types';\nimport { isNotNil } from 'ng-zorro-antd/core/util';\n\nimport { MODAL_MASK_CLASS_NAME, NZ_CONFIG_MODULE_NAME } from './modal-config';\nimport { NzModalConfirmContainerComponent } from './modal-confirm-container.component';\nimport { NzModalContainerComponent } from './modal-container.component';\nimport { BaseModalContainerComponent } from './modal-container.directive';\nimport { NzModalRef } from './modal-ref';\nimport { ConfirmType, ModalOptions } from './modal-types';\nimport { applyConfigDefaults, getValueWithConfig, setContentInstanceParams } from './utils';\n\ntype ContentType<T> = ComponentType<T> | TemplateRef<T> | string;\n\n@Injectable()\nexport class NzModalService implements OnDestroy {\n  private openModalsAtThisLevel: NzModalRef[] = [];\n  private readonly afterAllClosedAtThisLevel = new Subject<void>();\n\n  get openModals(): NzModalRef[] {\n    return this.parentModal ? this.parentModal.openModals : this.openModalsAtThisLevel;\n  }\n\n  get _afterAllClosed(): Subject<void> {\n    const parent = this.parentModal;\n    return parent ? parent._afterAllClosed : this.afterAllClosedAtThisLevel;\n  }\n\n  readonly afterAllClose: Observable<void> = defer(() =>\n    this.openModals.length ? this._afterAllClosed : this._afterAllClosed.pipe(startWith(undefined))\n  ) as Observable<void>;\n\n  constructor(\n    private overlay: Overlay,\n    private injector: Injector,\n    private nzConfigService: NzConfigService,\n    @Optional() @SkipSelf() private parentModal: NzModalService,\n    @Optional() private directionality: Directionality\n  ) {}\n\n  create<T, R = NzSafeAny>(config: ModalOptions<T, R>): NzModalRef<T, R> {\n    return this.open<T, R>(config.nzContent as ComponentType<T>, config);\n  }\n\n  closeAll(): void {\n    this.closeModals(this.openModals);\n  }\n\n  confirm<T>(options: ModalOptions<T> = {}, confirmType: ConfirmType = 'confirm'): NzModalRef<T> {\n    if ('nzFooter' in options) {\n      warn(`The Confirm-Modal doesn't support \"nzFooter\", this property will be ignored.`);\n    }\n    if (!('nzWidth' in options)) {\n      options.nzWidth = 416;\n    }\n    if (!('nzMaskClosable' in options)) {\n      options.nzMaskClosable = false;\n    }\n\n    options.nzModalType = 'confirm';\n    options.nzClassName = `ant-modal-confirm ant-modal-confirm-${confirmType} ${options.nzClassName || ''}`;\n    return this.create(options);\n  }\n\n  info<T>(options: ModalOptions<T> = {}): NzModalRef<T> {\n    return this.confirmFactory(options, 'info');\n  }\n\n  success<T>(options: ModalOptions<T> = {}): NzModalRef<T> {\n    return this.confirmFactory(options, 'success');\n  }\n\n  error<T>(options: ModalOptions<T> = {}): NzModalRef<T> {\n    return this.confirmFactory(options, 'error');\n  }\n\n  warning<T>(options: ModalOptions<T> = {}): NzModalRef<T> {\n    return this.confirmFactory(options, 'warning');\n  }\n\n  private open<T, R>(componentOrTemplateRef: ContentType<T>, config?: ModalOptions): NzModalRef<T, R> {\n    const configMerged = applyConfigDefaults(config || {}, new ModalOptions());\n    const overlayRef = this.createOverlay(configMerged);\n    const modalContainer = this.attachModalContainer(overlayRef, configMerged);\n    const modalRef = this.attachModalContent<T, R>(componentOrTemplateRef, modalContainer, overlayRef, configMerged);\n    modalContainer.modalRef = modalRef;\n\n    this.openModals.push(modalRef);\n    modalRef.afterClose.subscribe(() => this.removeOpenModal(modalRef));\n\n    return modalRef;\n  }\n\n  private removeOpenModal(modalRef: NzModalRef): void {\n    const index = this.openModals.indexOf(modalRef);\n    if (index > -1) {\n      this.openModals.splice(index, 1);\n\n      if (!this.openModals.length) {\n        this._afterAllClosed.next();\n      }\n    }\n  }\n\n  private closeModals(dialogs: NzModalRef[]): void {\n    let i = dialogs.length;\n    while (i--) {\n      dialogs[i].close();\n      if (!this.openModals.length) {\n        this._afterAllClosed.next();\n      }\n    }\n  }\n\n  private createOverlay(config: ModalOptions): OverlayRef {\n    const globalConfig: NzSafeAny = this.nzConfigService.getConfigForComponent(NZ_CONFIG_MODULE_NAME) || {};\n    const overlayConfig = new OverlayConfig({\n      hasBackdrop: true,\n      scrollStrategy: this.overlay.scrollStrategies.block(),\n      positionStrategy: this.overlay.position().global(),\n      disposeOnNavigation: getValueWithConfig(config.nzCloseOnNavigation, globalConfig.nzCloseOnNavigation, true),\n      direction: getValueWithConfig(config.nzDirection, globalConfig.nzDirection, this.directionality.value)\n    });\n    if (getValueWithConfig(config.nzMask, globalConfig.nzMask, true)) {\n      overlayConfig.backdropClass = MODAL_MASK_CLASS_NAME;\n    }\n\n    return this.overlay.create(overlayConfig);\n  }\n\n  private attachModalContainer(overlayRef: OverlayRef, config: ModalOptions): BaseModalContainerComponent {\n    const userInjector = config && config.nzViewContainerRef && config.nzViewContainerRef.injector;\n    const injector = Injector.create({\n      parent: userInjector || this.injector,\n      providers: [\n        { provide: OverlayRef, useValue: overlayRef },\n        { provide: ModalOptions, useValue: config }\n      ]\n    });\n\n    const ContainerComponent =\n      config.nzModalType === 'confirm'\n        ? // If the mode is `confirm`, use `NzModalConfirmContainerComponent`\n          NzModalConfirmContainerComponent\n        : // If the mode is not `confirm`, use `NzModalContainerComponent`\n          NzModalContainerComponent;\n\n    const containerPortal = new ComponentPortal<BaseModalContainerComponent>(\n      ContainerComponent,\n      config.nzViewContainerRef,\n      injector\n    );\n    const containerRef = overlayRef.attach<BaseModalContainerComponent>(containerPortal);\n\n    return containerRef.instance;\n  }\n\n  private attachModalContent<T, R>(\n    componentOrTemplateRef: ContentType<T>,\n    modalContainer: BaseModalContainerComponent,\n    overlayRef: OverlayRef,\n    config: ModalOptions<T>\n  ): NzModalRef<T, R> {\n    const modalRef = new NzModalRef<T, R>(overlayRef, config, modalContainer);\n\n    if (componentOrTemplateRef instanceof TemplateRef) {\n      modalContainer.attachTemplatePortal(\n        new TemplatePortal<T>(componentOrTemplateRef, null!, {\n          $implicit: config.nzComponentParams,\n          modalRef\n        } as NzSafeAny)\n      );\n    } else if (isNotNil(componentOrTemplateRef) && typeof componentOrTemplateRef !== 'string') {\n      const injector = this.createInjector<T, R>(modalRef, config);\n      const contentRef = modalContainer.attachComponentPortal<T>(\n        new ComponentPortal(componentOrTemplateRef, config.nzViewContainerRef, injector)\n      );\n      setContentInstanceParams<T>(contentRef.instance, config.nzComponentParams);\n      modalRef.componentInstance = contentRef.instance;\n    } else {\n      modalContainer.attachStringContent();\n    }\n    return modalRef;\n  }\n\n  private createInjector<T, R>(modalRef: NzModalRef<T, R>, config: ModalOptions<T>): Injector {\n    const userInjector = config && config.nzViewContainerRef && config.nzViewContainerRef.injector;\n\n    return Injector.create({\n      parent: userInjector || this.injector,\n      providers: [{ provide: NzModalRef, useValue: modalRef }]\n    });\n  }\n\n  private confirmFactory<T>(options: ModalOptions<T> = {}, confirmType: ConfirmType): NzModalRef<T> {\n    const iconMap: IndexableObject = {\n      info: 'info-circle',\n      success: 'check-circle',\n      error: 'close-circle',\n      warning: 'exclamation-circle'\n    };\n    if (!('nzIconType' in options)) {\n      options.nzIconType = iconMap[confirmType];\n    }\n    if (!('nzCancelText' in options)) {\n      // Remove the Cancel button if the user not specify a Cancel button\n      options.nzCancelText = null;\n    }\n    return this.confirm(options, confirmType);\n  }\n\n  ngOnDestroy(): void {\n    this.closeModals(this.openModalsAtThisLevel);\n    this.afterAllClosedAtThisLevel.complete();\n  }\n}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { Directive, TemplateRef } from '@angular/core';\n\n@Directive({\n  selector: '[nzModalContent]',\n  exportAs: 'nzModalContent'\n})\nexport class NzModalContentDirective {\n  constructor(public templateRef: TemplateRef<{}>) {}\n}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { Directive, Optional, TemplateRef } from '@angular/core';\n\nimport { NzModalRef } from './modal-ref';\n\n@Directive({\n  selector: '[nzModalFooter]',\n  exportAs: 'nzModalFooter'\n})\nexport class NzModalFooterDirective {\n  constructor(@Optional() private nzModalRef: NzModalRef, public templateRef: TemplateRef<{}>) {\n    if (this.nzModalRef) {\n      this.nzModalRef.updateConfig({\n        nzFooter: this.templateRef\n      });\n    }\n  }\n}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { Directive, Optional, TemplateRef } from '@angular/core';\n\nimport { NzModalRef } from './modal-ref';\n\n@Directive({\n  selector: '[nzModalTitle]',\n  exportAs: 'nzModalTitle'\n})\nexport class NzModalTitleDirective {\n  constructor(@Optional() private nzModalRef: NzModalRef, public templateRef: TemplateRef<{}>) {\n    if (this.nzModalRef) {\n      this.nzModalRef.updateConfig({\n        nzTitle: this.templateRef\n      });\n    }\n  }\n}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport {\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  ContentChild,\n  EventEmitter,\n  Input,\n  OnChanges,\n  OnDestroy,\n  Output,\n  SimpleChanges,\n  TemplateRef,\n  Type,\n  ViewContainerRef\n} from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { NzButtonType } from 'ng-zorro-antd/button';\nimport { BooleanInput, NzSafeAny } from 'ng-zorro-antd/core/types';\nimport { InputBoolean } from 'ng-zorro-antd/core/util';\n\nimport { NzModalContentDirective } from './modal-content.directive';\nimport { NzModalFooterDirective } from './modal-footer.directive';\nimport { NzModalLegacyAPI } from './modal-legacy-api';\nimport { NzModalRef } from './modal-ref';\nimport { NzModalTitleDirective } from './modal-title.directive';\nimport { ModalButtonOptions, ModalOptions, ModalTypes, OnClickCallback, StyleObjectLike } from './modal-types';\nimport { NzModalService } from './modal.service';\nimport { getConfigFromComponent } from './utils';\n\n@Component({\n  selector: 'nz-modal',\n  exportAs: 'nzModal',\n  template: ``,\n  changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class NzModalComponent<T = NzSafeAny, R = NzSafeAny> implements OnChanges, NzModalLegacyAPI<T, R>, OnDestroy {\n  static ngAcceptInputType_nzMask: BooleanInput;\n  static ngAcceptInputType_nzMaskClosable: BooleanInput;\n  static ngAcceptInputType_nzCloseOnNavigation: BooleanInput;\n  static ngAcceptInputType_nzVisible: BooleanInput;\n  static ngAcceptInputType_nzClosable: BooleanInput;\n  static ngAcceptInputType_nzOkLoading: BooleanInput;\n  static ngAcceptInputType_nzOkDisabled: BooleanInput;\n  static ngAcceptInputType_nzCancelDisabled: BooleanInput;\n  static ngAcceptInputType_nzCancelLoading: BooleanInput;\n  static ngAcceptInputType_nzKeyboard: BooleanInput;\n  static ngAcceptInputType_nzNoAnimation: BooleanInput;\n  static ngAcceptInputType_nzOkDanger: BooleanInput;\n  static ngAcceptInputType_nzCentered: BooleanInput;\n\n  @Input() @InputBoolean() nzMask?: boolean;\n  @Input() @InputBoolean() nzMaskClosable?: boolean;\n  @Input() @InputBoolean() nzCloseOnNavigation?: boolean;\n  @Input() @InputBoolean() nzVisible: boolean = false;\n  @Input() @InputBoolean() nzClosable: boolean = true;\n  @Input() @InputBoolean() nzOkLoading: boolean = false;\n  @Input() @InputBoolean() nzOkDisabled: boolean = false;\n  @Input() @InputBoolean() nzCancelDisabled: boolean = false;\n  @Input() @InputBoolean() nzCancelLoading: boolean = false;\n  @Input() @InputBoolean() nzKeyboard: boolean = true;\n  @Input() @InputBoolean() nzNoAnimation = false;\n  @Input() @InputBoolean() nzCentered = false;\n  @Input() nzContent?: string | TemplateRef<{}> | Type<T>;\n  @Input() nzComponentParams?: T;\n  @Input() nzFooter?: string | TemplateRef<{}> | Array<ModalButtonOptions<T>> | null;\n  @Input() nzZIndex: number = 1000;\n  @Input() nzWidth: number | string = 520;\n  @Input() nzWrapClassName?: string;\n  @Input() nzClassName?: string;\n  @Input() nzStyle?: object;\n  @Input() nzTitle?: string | TemplateRef<{}>;\n  @Input() nzCloseIcon: string | TemplateRef<void> = 'close';\n  @Input() nzMaskStyle?: StyleObjectLike;\n  @Input() nzBodyStyle?: StyleObjectLike;\n  @Input() nzOkText?: string | null;\n  @Input() nzCancelText?: string | null;\n  @Input() nzOkType: NzButtonType = 'primary';\n  @Input() @InputBoolean() nzOkDanger: boolean = false;\n  @Input() nzIconType: string = 'question-circle'; // Confirm Modal ONLY\n  @Input() nzModalType: ModalTypes = 'default';\n  @Input() nzAutofocus: 'ok' | 'cancel' | 'auto' | null = 'auto';\n\n  // TODO(@hsuanxyz) Input will not be supported\n  @Input()\n  @Output()\n  readonly nzOnOk: EventEmitter<T> | OnClickCallback<T> | NzSafeAny = new EventEmitter<T>();\n\n  // TODO(@hsuanxyz) Input will not be supported\n  @Input()\n  @Output()\n  readonly nzOnCancel: EventEmitter<T> | OnClickCallback<T> | NzSafeAny = new EventEmitter<T>();\n\n  @Output() readonly nzAfterOpen = new EventEmitter<void>();\n  @Output() readonly nzAfterClose = new EventEmitter<R>();\n  @Output() readonly nzVisibleChange = new EventEmitter<boolean>();\n\n  @ContentChild(NzModalTitleDirective, { static: true, read: TemplateRef })\n  set modalTitle(value: TemplateRef<NzSafeAny>) {\n    if (value) {\n      this.setTitleWithTemplate(value);\n    }\n  }\n\n  @ContentChild(NzModalContentDirective, { static: true, read: TemplateRef })\n  contentFromContentChild!: TemplateRef<NzSafeAny>;\n\n  @ContentChild(NzModalFooterDirective, { static: true, read: TemplateRef })\n  set modalFooter(value: TemplateRef<NzSafeAny>) {\n    if (value) {\n      this.setFooterWithTemplate(value);\n    }\n  }\n\n  private modalRef: NzModalRef | null = null;\n  private destroy$ = new Subject<void>();\n\n  get afterOpen(): Observable<void> {\n    // Observable alias for nzAfterOpen\n    return this.nzAfterOpen.asObservable();\n  }\n\n  get afterClose(): Observable<R> {\n    // Observable alias for nzAfterClose\n    return this.nzAfterClose.asObservable();\n  }\n\n  constructor(\n    private cdr: ChangeDetectorRef,\n    private modal: NzModalService,\n    private viewContainerRef: ViewContainerRef\n  ) {}\n\n  open(): void {\n    if (!this.nzVisible) {\n      this.nzVisible = true;\n      this.nzVisibleChange.emit(true);\n    }\n\n    if (!this.modalRef) {\n      const config = this.getConfig();\n      this.modalRef = this.modal.create(config);\n\n      // When the modal is implicitly closed (e.g. closeAll) the nzVisible needs to be set to the correct value and emit.\n      this.modalRef.afterClose\n        .asObservable()\n        .pipe(takeUntil(this.destroy$))\n        .subscribe(() => {\n          this.close();\n        });\n    }\n  }\n\n  close(result?: R): void {\n    if (this.nzVisible) {\n      this.nzVisible = false;\n      this.nzVisibleChange.emit(false);\n    }\n\n    if (this.modalRef) {\n      this.modalRef.close(result);\n      this.modalRef = null;\n    }\n  }\n\n  destroy(result?: R): void {\n    this.close(result);\n  }\n\n  triggerOk(): void {\n    this.modalRef?.triggerOk();\n  }\n\n  triggerCancel(): void {\n    this.modalRef?.triggerCancel();\n  }\n\n  getContentComponent(): T | void {\n    return this.modalRef?.getContentComponent();\n  }\n\n  getElement(): HTMLElement | void {\n    return this.modalRef?.getElement();\n  }\n\n  getModalRef(): NzModalRef | null {\n    return this.modalRef;\n  }\n\n  private setTitleWithTemplate(templateRef: TemplateRef<{}>): void {\n    this.nzTitle = templateRef;\n    if (this.modalRef) {\n      // If modalRef already created, set the title in next tick\n      Promise.resolve().then(() => {\n        this.modalRef!.updateConfig({\n          nzTitle: this.nzTitle\n        });\n      });\n    }\n  }\n\n  private setFooterWithTemplate(templateRef: TemplateRef<{}>): void {\n    this.nzFooter = templateRef;\n    if (this.modalRef) {\n      // If modalRef already created, set the footer in next tick\n      Promise.resolve().then(() => {\n        this.modalRef!.updateConfig({\n          nzFooter: this.nzFooter\n        });\n      });\n    }\n\n    this.cdr.markForCheck();\n  }\n\n  private getConfig(): ModalOptions {\n    const componentConfig = getConfigFromComponent(this);\n    componentConfig.nzViewContainerRef = this.viewContainerRef;\n    componentConfig.nzContent = this.nzContent || this.contentFromContentChild;\n    return componentConfig;\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    const { nzVisible, ...otherChanges } = changes;\n\n    if (Object.keys(otherChanges).length && this.modalRef) {\n      this.modalRef.updateConfig(getConfigFromComponent(this));\n    }\n\n    if (nzVisible) {\n      if (this.nzVisible) {\n        this.open();\n      } else {\n        this.close();\n      }\n    }\n  }\n\n  ngOnDestroy(): void {\n    this.modalRef?._finishDialogClose();\n    this.destroy$.next();\n    this.destroy$.complete();\n  }\n}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { BidiModule } from '@angular/cdk/bidi';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { NzButtonModule } from 'ng-zorro-antd/button';\nimport { NzNoAnimationModule } from 'ng-zorro-antd/core/no-animation';\nimport { NzOutletModule } from 'ng-zorro-antd/core/outlet';\nimport { NzI18nModule } from 'ng-zorro-antd/i18n';\nimport { NzIconModule } from 'ng-zorro-antd/icon';\nimport { NzPipesModule } from 'ng-zorro-antd/pipes';\n\nimport { NzModalCloseComponent } from './modal-close.component';\nimport { NzModalConfirmContainerComponent } from './modal-confirm-container.component';\nimport { NzModalContainerComponent } from './modal-container.component';\nimport { NzModalContentDirective } from './modal-content.directive';\nimport { NzModalFooterComponent } from './modal-footer.component';\nimport { NzModalFooterDirective } from './modal-footer.directive';\nimport { NzModalTitleComponent } from './modal-title.component';\nimport { NzModalTitleDirective } from './modal-title.directive';\nimport { NzModalComponent } from './modal.component';\nimport { NzModalService } from './modal.service';\n\n@NgModule({\n  imports: [\n    CommonModule,\n    BidiModule,\n    OverlayModule,\n    NzOutletModule,\n    PortalModule,\n    NzI18nModule,\n    NzButtonModule,\n    NzIconModule,\n    NzPipesModule,\n    NzNoAnimationModule,\n    NzPipesModule\n  ],\n  exports: [NzModalComponent, NzModalFooterDirective, NzModalContentDirective, NzModalTitleDirective],\n  providers: [NzModalService],\n  entryComponents: [NzModalContainerComponent, NzModalConfirmContainerComponent],\n  declarations: [\n    NzModalComponent,\n    NzModalFooterDirective,\n    NzModalContentDirective,\n    NzModalCloseComponent,\n    NzModalFooterComponent,\n    NzModalTitleComponent,\n    NzModalTitleDirective,\n    NzModalContainerComponent,\n    NzModalConfirmContainerComponent,\n    NzModalComponent\n  ]\n})\nexport class NzModalModule {}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { Observable } from 'rxjs';\n\nexport abstract class NzModalLegacyAPI<T, R> {\n  abstract afterOpen: Observable<void>;\n  abstract afterClose: Observable<R>;\n\n  abstract close(result?: R): void;\n  abstract destroy(result?: R): void;\n\n  /**\n   * Trigger the nzOnOk/nzOnCancel by manual\n   */\n  abstract triggerOk(): void;\n  abstract triggerCancel(): void;\n  /**\n   * Return the component instance of nzContent when specify nzContent as a Component\n   */\n  abstract getContentComponent(): T | void;\n\n  /**\n   * Get the dom element of this Modal\n   */\n  abstract getElement(): HTMLElement | void;\n}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nexport * from './modal-types';\nexport * from './modal.service';\nexport * from './modal-ref';\nexport * from './modal-config';\nexport * from './modal.component';\nexport * from './modal-title.directive';\nexport * from './modal-footer.directive';\nexport * from './modal-content.directive';\nexport * from './modal.module';\nexport * from './modal-confirm-container.component';\nexport * from './modal-container.component';\nexport * from './modal-container.directive';\nexport * from './modal-close.component';\nexport * from './modal-title.component';\nexport * from './modal-legacy-api';\nexport * from './modal-types';\nexport * from './modal-animations';\nexport * from './modal-footer.component';\nexport * from './utils';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}