{"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-footer.component.ts","../../components/modal/modal-title.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 { reqAnimFrame } from 'ng-zorro-antd/core/polyfill';\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(() => reqAnimFrame(() => 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        <span nz-icon [nzType]=\"closeIcon\" class=\"ant-modal-close-icon\"></span>\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              <span nz-icon [nzType]=\"config.nzIconType!\"></span>\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, 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 { 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 { 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    if (this.state === NzModalState.CLOSING) {\n      return;\n    }\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  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":["i1.ModalOptions","i2","i3","i1","i4","i5.ModalOptions","i7","i10","i12","i13.NzModalCloseComponent","i2.ModalOptions","i5","i6","i4.ModalOptions","i7.NzModalCloseComponent","i8.NzModalFooterComponent","i9.NzModalTitleComponent","i1.NzModalRef","i1.NzModalService"],"mappings":"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"}