{"version":3,"file":"ng-zorro-antd-drawer.mjs","sources":["../../components/drawer/drawer-content.directive.ts","../../components/drawer/drawer-options.ts","../../components/drawer/drawer-ref.ts","../../components/drawer/drawer.component.ts","../../components/drawer/drawer.service.module.ts","../../components/drawer/drawer.module.ts","../../components/drawer/drawer.service.ts","../../components/drawer/public-api.ts","../../components/drawer/ng-zorro-antd-drawer.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 { Directive, TemplateRef } from '@angular/core';\n\nimport { NzSafeAny } from 'ng-zorro-antd/core/types';\n\n@Directive({\n  selector: '[nzDrawerContent]',\n  exportAs: 'nzDrawerContent'\n})\nexport class NzDrawerContentDirective {\n  constructor(public templateRef: TemplateRef<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 { Direction } from '@angular/cdk/bidi';\nimport { TemplateRef, Type } from '@angular/core';\n\nimport { NzSafeAny } from 'ng-zorro-antd/core/types';\n\nimport { NzDrawerRef } from './drawer-ref';\n\nexport const DRAWER_DEFAULT_SIZE = 378;\nexport const DRAWER_LARGE_SIZE = 736;\nexport type NzDrawerPlacement = 'left' | 'right' | 'top' | 'bottom';\nexport type NzDrawerSize = 'default' | 'large';\n\nexport interface NzDrawerOptionsOfComponent<T = NzSafeAny, D = NzSafeAny> {\n  nzClosable?: boolean;\n  nzMaskClosable?: boolean;\n  nzCloseOnNavigation?: boolean;\n  nzDirection?: Direction;\n  nzMask?: boolean;\n  nzKeyboard?: boolean;\n  nzNoAnimation?: boolean;\n  nzTitle?: string | TemplateRef<{}>;\n  nzExtra?: string | TemplateRef<{}>;\n  nzFooter?: string | TemplateRef<{}>;\n  nzContent?: TemplateRef<{ $implicit: D; drawerRef: NzDrawerRef }> | Type<T>;\n  nzContentParams?: Partial<T & D>;\n  nzMaskStyle?: object;\n  nzBodyStyle?: object;\n  nzWrapClassName?: string;\n  nzSize?: NzDrawerSize;\n  nzWidth?: number | string;\n  nzHeight?: number | string;\n  nzPlacement?: NzDrawerPlacement;\n  nzZIndex?: number;\n  nzOffsetX?: number;\n  nzOffsetY?: number;\n}\n\nexport interface NzDrawerOptions<T = NzSafeAny, D = NzSafeAny> extends NzDrawerOptionsOfComponent<T, D> {\n  nzOnCancel?(): Promise<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 { TemplateRef } from '@angular/core';\nimport { Observable } from 'rxjs';\n\nimport { NzSafeAny } from 'ng-zorro-antd/core/types';\n\nimport { NzDrawerPlacement } from './drawer-options';\n\nexport abstract class NzDrawerRef<T = NzSafeAny, R = NzSafeAny> {\n  abstract afterClose: Observable<R>;\n  abstract afterOpen: Observable<void>;\n  abstract close(result?: R): void;\n  abstract open(): void;\n  abstract getContentComponent(): T | null;\n\n  abstract nzClosable?: boolean;\n  abstract nzNoAnimation?: boolean;\n  abstract nzMaskClosable?: boolean;\n  abstract nzKeyboard?: boolean;\n  abstract nzMask?: boolean;\n  abstract nzTitle?: string | TemplateRef<{}>;\n  abstract nzPlacement?: NzDrawerPlacement;\n  abstract nzMaskStyle?: object;\n  abstract nzBodyStyle?: object;\n  abstract nzWrapClassName?: string;\n  abstract nzWidth?: number | string;\n  abstract nzHeight?: number | string;\n  abstract nzZIndex?: number | string;\n  abstract nzOffsetX?: number | string;\n  abstract nzOffsetY?: number | string;\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 { FocusTrap, FocusTrapFactory } from '@angular/cdk/a11y';\nimport { Direction, Directionality } from '@angular/cdk/bidi';\nimport { ESCAPE } from '@angular/cdk/keycodes';\nimport { Overlay, OverlayConfig, OverlayKeyboardDispatcher, OverlayRef } from '@angular/cdk/overlay';\nimport { CdkPortalOutlet, ComponentPortal, TemplatePortal } from '@angular/cdk/portal';\nimport { DOCUMENT } from '@angular/common';\nimport {\n  AfterViewInit,\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  ContentChild,\n  EventEmitter,\n  Inject,\n  Injector,\n  Input,\n  OnChanges,\n  OnDestroy,\n  OnInit,\n  Optional,\n  Output,\n  Renderer2,\n  SimpleChanges,\n  TemplateRef,\n  Type,\n  ViewChild,\n  ViewContainerRef\n} from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { NzConfigKey, NzConfigService, WithConfig } from 'ng-zorro-antd/core/config';\nimport { BooleanInput, NgStyleInterface, NzSafeAny } from 'ng-zorro-antd/core/types';\nimport { InputBoolean, toCssPixel } from 'ng-zorro-antd/core/util';\n\nimport { NzDrawerContentDirective } from './drawer-content.directive';\nimport {\n  DRAWER_DEFAULT_SIZE,\n  DRAWER_LARGE_SIZE,\n  NzDrawerOptionsOfComponent,\n  NzDrawerPlacement,\n  NzDrawerSize\n} from './drawer-options';\nimport { NzDrawerRef } from './drawer-ref';\n\nexport const DRAWER_ANIMATE_DURATION = 300;\n\nconst NZ_CONFIG_MODULE_NAME: NzConfigKey = 'drawer';\n\n@Component({\n  selector: 'nz-drawer',\n  exportAs: 'nzDrawer',\n  template: `\n    <ng-template #drawerTemplate>\n      <div\n        class=\"ant-drawer\"\n        [nzNoAnimation]=\"nzNoAnimation\"\n        [class.ant-drawer-rtl]=\"dir === 'rtl'\"\n        [class.ant-drawer-open]=\"isOpen\"\n        [class.no-mask]=\"!nzMask\"\n        [class.ant-drawer-top]=\"nzPlacement === 'top'\"\n        [class.ant-drawer-bottom]=\"nzPlacement === 'bottom'\"\n        [class.ant-drawer-right]=\"nzPlacement === 'right'\"\n        [class.ant-drawer-left]=\"nzPlacement === 'left'\"\n        [style.transform]=\"offsetTransform\"\n        [style.transition]=\"placementChanging ? 'none' : null\"\n        [style.zIndex]=\"nzZIndex\"\n      >\n        <div class=\"ant-drawer-mask\" (click)=\"maskClick()\" *ngIf=\"nzMask\" [ngStyle]=\"nzMaskStyle\"></div>\n        <div\n          class=\"ant-drawer-content-wrapper {{ nzWrapClassName }}\"\n          [style.width]=\"width\"\n          [style.height]=\"height\"\n          [style.transform]=\"transform\"\n          [style.transition]=\"placementChanging ? 'none' : null\"\n        >\n          <div class=\"ant-drawer-content\">\n            <div class=\"ant-drawer-wrapper-body\" [style.height]=\"isLeftOrRight ? '100%' : null\">\n              <div\n                *ngIf=\"nzTitle || nzClosable\"\n                class=\"ant-drawer-header\"\n                [class.ant-drawer-header-close-only]=\"!nzTitle\"\n              >\n                <div class=\"ant-drawer-header-title\">\n                  <button\n                    *ngIf=\"nzClosable\"\n                    (click)=\"closeClick()\"\n                    aria-label=\"Close\"\n                    class=\"ant-drawer-close\"\n                    style=\"--scroll-bar: 0px;\"\n                  >\n                    <ng-container *nzStringTemplateOutlet=\"nzCloseIcon; let closeIcon\">\n                      <i nz-icon [nzType]=\"closeIcon\"></i>\n                    </ng-container>\n                  </button>\n                  <div *ngIf=\"nzTitle\" class=\"ant-drawer-title\">\n                    <ng-container *nzStringTemplateOutlet=\"nzTitle\">\n                      <div [innerHTML]=\"nzTitle\"></div>\n                    </ng-container>\n                  </div>\n                </div>\n                <div *ngIf=\"nzExtra\" class=\"ant-drawer-extra\">\n                  <ng-container *nzStringTemplateOutlet=\"nzExtra\">\n                    <div [innerHTML]=\"nzExtra\"></div>\n                  </ng-container>\n                </div>\n              </div>\n              <div class=\"ant-drawer-body\" [ngStyle]=\"nzBodyStyle\">\n                <ng-template cdkPortalOutlet></ng-template>\n                <ng-container *ngIf=\"nzContent; else contentElseTemp\">\n                  <ng-container *ngIf=\"isTemplateRef(nzContent)\">\n                    <ng-container *ngTemplateOutlet=\"$any(nzContent); context: templateContext\"></ng-container>\n                  </ng-container>\n                </ng-container>\n                <ng-template #contentElseTemp>\n                  <ng-container *ngIf=\"contentFromContentChild && (isOpen || inAnimation)\">\n                    <ng-template [ngTemplateOutlet]=\"contentFromContentChild\"></ng-template>\n                  </ng-container>\n                </ng-template>\n              </div>\n              <div *ngIf=\"nzFooter\" class=\"ant-drawer-footer\">\n                <ng-container *nzStringTemplateOutlet=\"nzFooter\">\n                  <div [innerHTML]=\"nzFooter\"></div>\n                </ng-container>\n              </div>\n            </div>\n          </div>\n        </div>\n      </div>\n    </ng-template>\n  `,\n  preserveWhitespaces: false,\n  changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class NzDrawerComponent<T = NzSafeAny, R = NzSafeAny, D = NzSafeAny>\n  extends NzDrawerRef<T, R>\n  implements OnInit, OnDestroy, AfterViewInit, OnChanges, NzDrawerOptionsOfComponent\n{\n  readonly _nzModuleName: NzConfigKey = NZ_CONFIG_MODULE_NAME;\n  static ngAcceptInputType_nzClosable: BooleanInput;\n  static ngAcceptInputType_nzMaskClosable: BooleanInput;\n  static ngAcceptInputType_nzMask: BooleanInput;\n  static ngAcceptInputType_nzNoAnimation: BooleanInput;\n  static ngAcceptInputType_nzKeyboard: BooleanInput;\n  static ngAcceptInputType_nzCloseOnNavigation: BooleanInput;\n\n  @Input() nzContent!: TemplateRef<{ $implicit: D; drawerRef: NzDrawerRef<R> }> | Type<T>;\n  @Input() nzCloseIcon: string | TemplateRef<void> = 'close';\n  @Input() @InputBoolean() nzClosable: boolean = true;\n  @Input() @WithConfig() @InputBoolean() nzMaskClosable: boolean = true;\n  @Input() @WithConfig() @InputBoolean() nzMask: boolean = true;\n  @Input() @WithConfig() @InputBoolean() nzCloseOnNavigation: boolean = true;\n  @Input() @InputBoolean() nzNoAnimation = false;\n  @Input() @InputBoolean() nzKeyboard: boolean = true;\n  @Input() nzTitle?: string | TemplateRef<{}>;\n  @Input() nzExtra?: string | TemplateRef<{}>;\n  @Input() nzFooter?: string | TemplateRef<{}>;\n  @Input() nzPlacement: NzDrawerPlacement = 'right';\n  @Input() nzSize: NzDrawerSize = 'default';\n  @Input() nzMaskStyle: NgStyleInterface = {};\n  @Input() nzBodyStyle: NgStyleInterface = {};\n  @Input() nzWrapClassName?: string;\n  @Input() nzWidth?: number | string;\n  @Input() nzHeight?: number | string;\n  @Input() nzZIndex = 1000;\n  @Input() nzOffsetX = 0;\n  @Input() nzOffsetY = 0;\n  private componentInstance: T | null = null;\n\n  @Input()\n  set nzVisible(value: boolean) {\n    this.isOpen = value;\n  }\n\n  get nzVisible(): boolean {\n    return this.isOpen;\n  }\n\n  @Output() readonly nzOnViewInit = new EventEmitter<void>();\n  @Output() readonly nzOnClose = new EventEmitter<MouseEvent>();\n  @Output() readonly nzVisibleChange = new EventEmitter<boolean>();\n\n  @ViewChild('drawerTemplate', { static: true }) drawerTemplate!: TemplateRef<void>;\n  @ViewChild(CdkPortalOutlet, { static: false }) bodyPortalOutlet?: CdkPortalOutlet;\n  @ContentChild(NzDrawerContentDirective, { static: true, read: TemplateRef })\n  contentFromContentChild?: TemplateRef<NzSafeAny>;\n\n  private destroy$ = new Subject<void>();\n  previouslyFocusedElement?: HTMLElement;\n  placementChanging = false;\n  placementChangeTimeoutId = -1;\n  nzContentParams?: D; // only service\n  overlayRef?: OverlayRef | null;\n  portal?: TemplatePortal;\n  focusTrap?: FocusTrap;\n  isOpen = false;\n  inAnimation = false;\n  templateContext: { $implicit: D | undefined; drawerRef: NzDrawerRef<R> } = {\n    $implicit: undefined,\n    drawerRef: this as NzDrawerRef<R>\n  };\n\n  get offsetTransform(): string | null {\n    if (!this.isOpen || this.nzOffsetX + this.nzOffsetY === 0) {\n      return null;\n    }\n    switch (this.nzPlacement) {\n      case 'left':\n        return `translateX(${this.nzOffsetX}px)`;\n      case 'right':\n        return `translateX(-${this.nzOffsetX}px)`;\n      case 'top':\n        return `translateY(${this.nzOffsetY}px)`;\n      case 'bottom':\n        return `translateY(-${this.nzOffsetY}px)`;\n    }\n  }\n\n  get transform(): string | null {\n    if (this.isOpen) {\n      return null;\n    }\n\n    switch (this.nzPlacement) {\n      case 'left':\n        return `translateX(-100%)`;\n      case 'right':\n        return `translateX(100%)`;\n      case 'top':\n        return `translateY(-100%)`;\n      case 'bottom':\n        return `translateY(100%)`;\n    }\n  }\n\n  get width(): string | null {\n    if (this.isLeftOrRight) {\n      const defaultWidth = this.nzSize === 'large' ? DRAWER_LARGE_SIZE : DRAWER_DEFAULT_SIZE;\n      return this.nzWidth === undefined ? toCssPixel(defaultWidth) : toCssPixel(this.nzWidth);\n    }\n    return null;\n  }\n\n  get height(): string | null {\n    if (!this.isLeftOrRight) {\n      const defaultHeight = this.nzSize === 'large' ? DRAWER_LARGE_SIZE : DRAWER_DEFAULT_SIZE;\n      return this.nzHeight === undefined ? toCssPixel(defaultHeight) : toCssPixel(this.nzHeight);\n    }\n    return null;\n  }\n\n  get isLeftOrRight(): boolean {\n    return this.nzPlacement === 'left' || this.nzPlacement === 'right';\n  }\n\n  nzAfterOpen = new Subject<void>();\n  nzAfterClose = new Subject<R>();\n\n  get afterOpen(): Observable<void> {\n    return this.nzAfterOpen.asObservable();\n  }\n\n  get afterClose(): Observable<R> {\n    return this.nzAfterClose.asObservable();\n  }\n\n  isTemplateRef(value: {}): boolean {\n    return value instanceof TemplateRef;\n  }\n\n  // from service config\n  @WithConfig() nzDirection?: Direction = undefined;\n\n  dir: Direction = 'ltr';\n\n  constructor(\n    private cdr: ChangeDetectorRef,\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n    @Optional() @Inject(DOCUMENT) private document: NzSafeAny,\n    public nzConfigService: NzConfigService,\n    private renderer: Renderer2,\n    private overlay: Overlay,\n    private injector: Injector,\n    private changeDetectorRef: ChangeDetectorRef,\n    private focusTrapFactory: FocusTrapFactory,\n    private viewContainerRef: ViewContainerRef,\n    private overlayKeyboardDispatcher: OverlayKeyboardDispatcher,\n    @Optional() private directionality: Directionality\n  ) {\n    super();\n  }\n\n  ngOnInit(): void {\n    this.directionality.change?.pipe(takeUntil(this.destroy$)).subscribe((direction: Direction) => {\n      this.dir = direction;\n      this.cdr.detectChanges();\n    });\n    this.dir = this.nzDirection || this.directionality.value;\n\n    this.attachOverlay();\n    this.updateOverlayStyle();\n    this.updateBodyOverflow();\n    this.templateContext = { $implicit: this.nzContentParams, drawerRef: this as NzDrawerRef<R> };\n    this.changeDetectorRef.detectChanges();\n  }\n\n  ngAfterViewInit(): void {\n    this.attachBodyContent();\n    // The `setTimeout` triggers change detection. There's no sense to schedule the DOM timer if anyone is\n    // listening to the `nzOnViewInit` event inside the template, for instance `<nz-drawer (nzOnViewInit)=\"...\">`.\n    if (this.nzOnViewInit.observers.length) {\n      setTimeout(() => {\n        this.nzOnViewInit.emit();\n      });\n    }\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    const { nzPlacement, nzVisible } = changes;\n    if (nzVisible) {\n      const value = changes.nzVisible.currentValue;\n      if (value) {\n        this.open();\n      } else {\n        this.close();\n      }\n    }\n    if (nzPlacement && !nzPlacement.isFirstChange()) {\n      this.triggerPlacementChangeCycleOnce();\n    }\n  }\n\n  ngOnDestroy(): void {\n    this.destroy$.next();\n    this.destroy$.complete();\n    clearTimeout(this.placementChangeTimeoutId);\n    this.disposeOverlay();\n  }\n\n  private getAnimationDuration(): number {\n    return this.nzNoAnimation ? 0 : DRAWER_ANIMATE_DURATION;\n  }\n\n  // Disable the transition animation temporarily when the placement changing\n  private triggerPlacementChangeCycleOnce(): void {\n    if (!this.nzNoAnimation) {\n      this.placementChanging = true;\n      this.changeDetectorRef.markForCheck();\n      clearTimeout(this.placementChangeTimeoutId);\n      this.placementChangeTimeoutId = setTimeout(() => {\n        this.placementChanging = false;\n        this.changeDetectorRef.markForCheck();\n      }, this.getAnimationDuration());\n    }\n  }\n\n  close(result?: R): void {\n    this.isOpen = false;\n    this.inAnimation = true;\n    this.nzVisibleChange.emit(false);\n    this.updateOverlayStyle();\n    this.overlayKeyboardDispatcher.remove(this.overlayRef!);\n    this.changeDetectorRef.detectChanges();\n    setTimeout(() => {\n      this.updateBodyOverflow();\n      this.restoreFocus();\n      this.inAnimation = false;\n      this.nzAfterClose.next(result);\n      this.nzAfterClose.complete();\n      this.componentInstance = null;\n    }, this.getAnimationDuration());\n  }\n\n  open(): void {\n    this.attachOverlay();\n    this.isOpen = true;\n    this.inAnimation = true;\n    this.nzVisibleChange.emit(true);\n    this.overlayKeyboardDispatcher.add(this.overlayRef!);\n    this.updateOverlayStyle();\n    this.updateBodyOverflow();\n    this.savePreviouslyFocusedElement();\n    this.trapFocus();\n    this.changeDetectorRef.detectChanges();\n    setTimeout(() => {\n      this.inAnimation = false;\n      this.changeDetectorRef.detectChanges();\n      this.nzAfterOpen.next();\n    }, this.getAnimationDuration());\n  }\n\n  getContentComponent(): T | null {\n    return this.componentInstance;\n  }\n\n  closeClick(): void {\n    this.nzOnClose.emit();\n  }\n\n  maskClick(): void {\n    if (this.nzMaskClosable && this.nzMask) {\n      this.nzOnClose.emit();\n    }\n  }\n\n  private attachBodyContent(): void {\n    this.bodyPortalOutlet!.dispose();\n\n    if (this.nzContent instanceof Type) {\n      const childInjector = Injector.create({\n        parent: this.injector,\n        providers: [{ provide: NzDrawerRef, useValue: this }]\n      });\n      const componentPortal = new ComponentPortal<T>(this.nzContent, null, childInjector);\n      const componentRef = this.bodyPortalOutlet!.attachComponentPortal(componentPortal);\n      this.componentInstance = componentRef.instance;\n      Object.assign(componentRef.instance, this.nzContentParams);\n      componentRef.changeDetectorRef.detectChanges();\n    }\n  }\n\n  private attachOverlay(): void {\n    if (!this.overlayRef) {\n      this.portal = new TemplatePortal(this.drawerTemplate, this.viewContainerRef);\n      this.overlayRef = this.overlay.create(this.getOverlayConfig());\n    }\n\n    if (this.overlayRef && !this.overlayRef.hasAttached()) {\n      this.overlayRef.attach(this.portal);\n      this.overlayRef!.keydownEvents()\n        .pipe(takeUntil(this.destroy$))\n        .subscribe((event: KeyboardEvent) => {\n          if (event.keyCode === ESCAPE && this.isOpen && this.nzKeyboard) {\n            this.nzOnClose.emit();\n          }\n        });\n      this.overlayRef\n        .detachments()\n        .pipe(takeUntil(this.destroy$))\n        .subscribe(() => {\n          this.disposeOverlay();\n        });\n    }\n  }\n\n  private disposeOverlay(): void {\n    this.overlayRef?.dispose();\n    this.overlayRef = null;\n  }\n\n  private getOverlayConfig(): OverlayConfig {\n    return new OverlayConfig({\n      disposeOnNavigation: this.nzCloseOnNavigation,\n      positionStrategy: this.overlay.position().global(),\n      scrollStrategy: this.overlay.scrollStrategies.block()\n    });\n  }\n\n  private updateOverlayStyle(): void {\n    if (this.overlayRef && this.overlayRef.overlayElement) {\n      this.renderer.setStyle(this.overlayRef.overlayElement, 'pointer-events', this.isOpen ? 'auto' : 'none');\n    }\n  }\n\n  private updateBodyOverflow(): void {\n    if (this.overlayRef) {\n      if (this.isOpen) {\n        this.overlayRef.getConfig().scrollStrategy!.enable();\n      } else {\n        this.overlayRef.getConfig().scrollStrategy!.disable();\n      }\n    }\n  }\n\n  savePreviouslyFocusedElement(): void {\n    if (this.document && !this.previouslyFocusedElement) {\n      this.previouslyFocusedElement = this.document.activeElement as HTMLElement;\n      // We need the extra check, because IE's svg element has no blur method.\n      if (this.previouslyFocusedElement && typeof this.previouslyFocusedElement.blur === 'function') {\n        this.previouslyFocusedElement.blur();\n      }\n    }\n  }\n\n  private trapFocus(): void {\n    if (!this.focusTrap && this.overlayRef && this.overlayRef.overlayElement) {\n      this.focusTrap = this.focusTrapFactory.create(this.overlayRef!.overlayElement);\n      this.focusTrap.focusInitialElement();\n    }\n  }\n\n  private restoreFocus(): void {\n    // We need the extra check, because IE can set the `activeElement` to null in some cases.\n    if (this.previouslyFocusedElement && typeof this.previouslyFocusedElement.focus === 'function') {\n      this.previouslyFocusedElement.focus();\n    }\n    if (this.focusTrap) {\n      this.focusTrap.destroy();\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 { NgModule } from '@angular/core';\n\n@NgModule()\nexport class NzDrawerServiceModule {}\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 { NzNoAnimationModule } from 'ng-zorro-antd/core/no-animation';\nimport { NzOutletModule } from 'ng-zorro-antd/core/outlet';\nimport { NzIconModule } from 'ng-zorro-antd/icon';\n\nimport { NzDrawerContentDirective } from './drawer-content.directive';\nimport { NzDrawerComponent } from './drawer.component';\nimport { NzDrawerServiceModule } from './drawer.service.module';\n\n@NgModule({\n  imports: [\n    BidiModule,\n    CommonModule,\n    OverlayModule,\n    PortalModule,\n    NzIconModule,\n    NzOutletModule,\n    NzNoAnimationModule,\n    NzDrawerServiceModule\n  ],\n  exports: [NzDrawerComponent, NzDrawerContentDirective],\n  declarations: [NzDrawerComponent, NzDrawerContentDirective],\n  entryComponents: [NzDrawerComponent]\n})\nexport class NzDrawerModule {}\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 { Overlay, OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { NzSafeAny } from 'ng-zorro-antd/core/types';\n\nimport { NzDrawerOptions, NzDrawerOptionsOfComponent } from './drawer-options';\nimport { NzDrawerRef } from './drawer-ref';\nimport { NzDrawerComponent } from './drawer.component';\nimport { NzDrawerServiceModule } from './drawer.service.module';\n\nexport class DrawerBuilderForService<T, R> {\n  private drawerRef: NzDrawerComponent<T, R> | null;\n  private overlayRef: OverlayRef;\n  private unsubscribe$ = new Subject<void>();\n\n  constructor(private overlay: Overlay, private options: NzDrawerOptions) {\n    /** pick {@link NzDrawerOptions.nzOnCancel} and omit this option */\n    const { nzOnCancel, ...componentOption } = this.options;\n    this.overlayRef = this.overlay.create();\n    this.drawerRef = this.overlayRef.attach(new ComponentPortal(NzDrawerComponent)).instance;\n    this.updateOptions(componentOption);\n    // Prevent repeatedly open drawer when tap focus element.\n    this.drawerRef.savePreviouslyFocusedElement();\n    this.drawerRef.nzOnViewInit.pipe(takeUntil(this.unsubscribe$)).subscribe(() => {\n      this.drawerRef!.open();\n    });\n    this.drawerRef.nzOnClose.subscribe(() => {\n      if (nzOnCancel) {\n        nzOnCancel().then(canClose => {\n          if (canClose !== false) {\n            this.drawerRef!.close();\n          }\n        });\n      } else {\n        this.drawerRef!.close();\n      }\n    });\n\n    this.drawerRef.afterClose.pipe(takeUntil(this.unsubscribe$)).subscribe(() => {\n      this.overlayRef.dispose();\n      this.drawerRef = null;\n      this.unsubscribe$.next();\n      this.unsubscribe$.complete();\n    });\n  }\n\n  getInstance(): NzDrawerRef<T, R> {\n    return this.drawerRef!;\n  }\n\n  updateOptions(options: NzDrawerOptionsOfComponent): void {\n    Object.assign(this.drawerRef!, options);\n  }\n}\n\n@Injectable({ providedIn: NzDrawerServiceModule })\nexport class NzDrawerService {\n  constructor(private overlay: Overlay) {}\n\n  create<T = NzSafeAny, D = undefined, R = NzSafeAny>(\n    options: NzDrawerOptions<T, D extends undefined ? {} : D>\n  ): NzDrawerRef<T, R> {\n    return new DrawerBuilderForService<T, R>(this.overlay, options).getInstance();\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\nexport * from './drawer.component';\nexport * from './drawer-content.directive';\nexport * from './drawer.module';\nexport * from './drawer.service';\nexport * from './drawer.service.module';\nexport * from './drawer-options';\nexport * from './drawer-ref';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}