ng-zorro-antd
Version:
An enterprise-class UI components based on Ant Design and Angular
1 lines • 45.3 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.ts","../../components/drawer/drawer.module.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 standalone: true\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 { InjectionToken, 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 /**@Deprecated**/\n nzContentParams?: Partial<T & D>;\n nzData?: 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\nexport const NZ_DRAWER_DATA = new InjectionToken<NzSafeAny>('NZ_DRAWER_DATA');\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 { ComponentRef, 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 | undefined>;\n abstract afterOpen: Observable<void>;\n abstract close(result?: R): void;\n abstract open(): void;\n abstract getContentComponent(): T | null;\n abstract getContentComponentRef(): Readonly<ComponentRef<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, PortalModule, TemplatePortal } from '@angular/cdk/portal';\nimport { DOCUMENT, NgStyle, NgTemplateOutlet } from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ComponentRef,\n ContentChild,\n EventEmitter,\n Injector,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n Renderer2,\n SimpleChanges,\n TemplateRef,\n Type,\n ViewChild,\n ViewContainerRef,\n booleanAttribute,\n inject\n} from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { drawerMaskMotion } from 'ng-zorro-antd/core/animation';\nimport { NzConfigKey, NzConfigService, WithConfig } from 'ng-zorro-antd/core/config';\nimport { NzNoAnimationDirective } from 'ng-zorro-antd/core/no-animation';\nimport { NzOutletModule } from 'ng-zorro-antd/core/outlet';\nimport { overlayZIndexSetter } from 'ng-zorro-antd/core/overlay';\nimport { NgStyleInterface, NzSafeAny } from 'ng-zorro-antd/core/types';\nimport { isTemplateRef, toCssPixel } from 'ng-zorro-antd/core/util';\nimport { NzIconModule } from 'ng-zorro-antd/icon';\n\nimport { NzDrawerContentDirective } from './drawer-content.directive';\nimport {\n DRAWER_DEFAULT_SIZE,\n DRAWER_LARGE_SIZE,\n NZ_DRAWER_DATA,\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 @if (nzMask && isOpen) {\n <div @drawerMaskMotion class=\"ant-drawer-mask\" (click)=\"maskClick()\" [ngStyle]=\"nzMaskStyle\"></div>\n }\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 @if (nzTitle || nzClosable) {\n <div class=\"ant-drawer-header\" [class.ant-drawer-header-close-only]=\"!nzTitle\">\n <div class=\"ant-drawer-header-title\">\n @if (nzClosable) {\n <button (click)=\"closeClick()\" aria-label=\"Close\" class=\"ant-drawer-close\">\n <ng-container *nzStringTemplateOutlet=\"nzCloseIcon; let closeIcon\">\n <span nz-icon [nzType]=\"closeIcon\"></span>\n </ng-container>\n </button>\n }\n\n @if (nzTitle) {\n <div class=\"ant-drawer-title\">\n <ng-container *nzStringTemplateOutlet=\"nzTitle\">\n <div [innerHTML]=\"nzTitle\"></div>\n </ng-container>\n </div>\n }\n </div>\n @if (nzExtra) {\n <div class=\"ant-drawer-extra\">\n <ng-container *nzStringTemplateOutlet=\"nzExtra\">\n <div [innerHTML]=\"nzExtra\"></div>\n </ng-container>\n </div>\n }\n </div>\n }\n <div class=\"ant-drawer-body\" [ngStyle]=\"nzBodyStyle\">\n <ng-template cdkPortalOutlet />\n @if (nzContent) {\n @if (isNzContentTemplateRef) {\n <ng-container *ngTemplateOutlet=\"$any(nzContent); context: templateContext\" />\n }\n } @else {\n @if (contentFromContentChild && (isOpen || inAnimation)) {\n <ng-template [ngTemplateOutlet]=\"contentFromContentChild\" />\n }\n }\n </div>\n @if (nzFooter) {\n <div class=\"ant-drawer-footer\">\n <ng-container *nzStringTemplateOutlet=\"nzFooter\">\n <div [innerHTML]=\"nzFooter\"></div>\n </ng-container>\n </div>\n }\n </div>\n </div>\n </div>\n </div>\n </ng-template>\n `,\n preserveWhitespaces: false,\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [drawerMaskMotion],\n imports: [NzNoAnimationDirective, NgStyle, NzOutletModule, NzIconModule, PortalModule, NgTemplateOutlet],\n standalone: true\n})\nexport class NzDrawerComponent<T extends {} = NzSafeAny, R = NzSafeAny, D extends Partial<T> = NzSafeAny>\n extends NzDrawerRef<T, R>\n implements OnInit, OnDestroy, AfterViewInit, OnChanges, NzDrawerOptionsOfComponent\n{\n readonly _nzModuleName: NzConfigKey = NZ_CONFIG_MODULE_NAME;\n\n @Input() nzContent!: TemplateRef<{ $implicit: D; drawerRef: NzDrawerRef<R> }> | Type<T>;\n @Input() nzCloseIcon: string | TemplateRef<void> = 'close';\n @Input({ transform: booleanAttribute }) nzClosable: boolean = true;\n @Input({ transform: booleanAttribute }) @WithConfig() nzMaskClosable: boolean = true;\n @Input({ transform: booleanAttribute }) @WithConfig() nzMask: boolean = true;\n @Input({ transform: booleanAttribute }) @WithConfig() nzCloseOnNavigation: boolean = true;\n @Input({ transform: booleanAttribute }) nzNoAnimation = false;\n @Input({ transform: booleanAttribute }) 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 private componentRef: ComponentRef<T> | null = null;\n\n @Input({ transform: booleanAttribute })\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?: ReturnType<typeof setTimeout>;\n nzContentParams?: NzSafeAny; // only service\n nzData?: D;\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 | undefined>();\n\n get afterOpen(): Observable<void> {\n return this.nzAfterOpen.asObservable();\n }\n\n get afterClose(): Observable<R | undefined> {\n return this.nzAfterClose.asObservable();\n }\n\n get isNzContentTemplateRef(): boolean {\n return isTemplateRef(this.nzContent);\n }\n\n // from service config\n @WithConfig() nzDirection?: Direction = undefined;\n\n dir: Direction = 'ltr';\n private document: Document = inject(DOCUMENT);\n\n constructor(\n private cdr: ChangeDetectorRef,\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 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.nzData || 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.componentRef = 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 override getContentComponentRef(): ComponentRef<T> | null {\n return this.componentRef;\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: [\n { provide: NzDrawerRef, useValue: this },\n { provide: NZ_DRAWER_DATA, useValue: this.nzData }\n ]\n });\n const componentPortal = new ComponentPortal<T>(this.nzContent, null, childInjector);\n this.componentRef = this.bodyPortalOutlet!.attachComponentPortal(componentPortal);\n\n this.componentInstance = this.componentRef.instance;\n /**TODO\n * When nzContentParam will be remove in the next major version, we have to remove the following line\n * **/\n Object.assign(this.componentRef.instance!, this.nzData || this.nzContentParams);\n this.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 overlayZIndexSetter(this.overlayRef, this.nzZIndex);\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 { 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';\n\nexport class DrawerBuilderForService<T extends {}, R> {\n private drawerRef: NzDrawerComponent<T, R> | null;\n private overlayRef: OverlayRef;\n private unsubscribe$ = new Subject<void>();\n\n constructor(\n private overlay: Overlay,\n private options: NzDrawerOptions\n ) {\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()\nexport class NzDrawerService {\n constructor(private overlay: Overlay) {}\n\n create<T extends {} = 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\nimport { NgModule } from '@angular/core';\n\nimport { NzDrawerContentDirective } from './drawer-content.directive';\nimport { NzDrawerComponent } from './drawer.component';\nimport { NzDrawerService } from './drawer.service';\n\n@NgModule({\n imports: [NzDrawerComponent, NzDrawerContentDirective],\n providers: [NzDrawerService],\n exports: [NzDrawerComponent, NzDrawerContentDirective]\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\nexport * from './drawer-content.directive';\nexport * from './drawer-options';\nexport * from './drawer-ref';\nexport * from './drawer.component';\nexport * from './drawer.module';\nexport * from './drawer.service';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1"],"mappings":"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"}