ng-zorro-antd
Version:
An enterprise-class UI components based on Ant Design and Angular
1 lines • 39 kB
Source Map (JSON)
{"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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"}