{"version":3,"file":"ui-vts-kit-ng-vts-drawer.mjs","sources":["../../components/drawer/drawer-content.directive.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/drawer-options.ts","../../components/drawer/public-api.ts","../../components/drawer/ui-vts-kit-ng-vts-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';\nimport { VtsSafeAny } from '@ui-vts-kit/ng-vts/core/types';\n\n@Directive({\n  selector: '[vtsDrawerContent]',\n  exportAs: 'vtsDrawerContent'\n})\nexport class VtsDrawerContentDirective {\n  constructor(public templateRef: TemplateRef<VtsSafeAny>) {}\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 { VtsSafeAny } from '@ui-vts-kit/ng-vts/core/types';\nimport { Observable } from 'rxjs';\nimport { VtsDrawerPlacement } from './drawer-options';\n\nexport abstract class VtsDrawerRef<T = VtsSafeAny, R = VtsSafeAny> {\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 vtsClosable?: boolean;\n  abstract vtsNoAnimation?: boolean;\n  abstract vtsMaskClosable?: boolean;\n  abstract vtsKeyboard?: boolean;\n  abstract vtsMask?: boolean;\n  abstract vtsTitle?: string | TemplateRef<{}>;\n  abstract vtsPlacement?: VtsDrawerPlacement;\n  abstract vtsMaskStyle?: object;\n  abstract vtsBodyStyle?: object;\n  abstract vtsWrapClassName?: string;\n  abstract vtsWidth?: number | string;\n  abstract vtsHeight?: number | string;\n  abstract vtsZIndex?: number | string;\n  abstract vtsOffsetX?: number | string;\n  abstract vtsOffsetY?: 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 {\n  Overlay,\n  OverlayConfig,\n  OverlayKeyboardDispatcher,\n  OverlayRef\n} from '@angular/cdk/overlay';\nimport { CdkPortalOutlet, ComponentPortal, TemplatePortal } from '@angular/cdk/portal';\nimport { DOCUMENT } from '@angular/common';\nimport {\n  AfterContentInit,\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';\n\nimport { Observable, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { VtsConfigKey, VtsConfigService, WithConfig } from '@ui-vts-kit/ng-vts/core/config';\nimport { warnDeprecation } from '@ui-vts-kit/ng-vts/core/logger';\nimport { BooleanInput, NgStyleInterface, VtsSafeAny } from '@ui-vts-kit/ng-vts/core/types';\nimport { InputBoolean, toCssPixel } from '@ui-vts-kit/ng-vts/core/util';\n\nimport { VtsDrawerContentDirective } from './drawer-content.directive';\nimport { VtsDrawerOptionsOfComponent, VtsDrawerPlacement } from './drawer-options';\nimport { VtsDrawerRef } from './drawer-ref';\n\nexport const DRAWER_ANIMATE_DURATION = 300;\n\nconst VTS_CONFIG_MODULE_NAME: VtsConfigKey = 'drawer';\n\n@Component({\n  selector: 'vts-drawer',\n  exportAs: 'vtsDrawer',\n  template: `\n    <ng-template #drawerTemplate>\n      <div\n        class=\"vts-drawer\"\n        [vtsNoAnimation]=\"vtsNoAnimation\"\n        [class.vts-drawer-rtl]=\"dir === 'rtl'\"\n        [class.vts-drawer-open]=\"isOpen\"\n        [class.no-mask]=\"!vtsMask\"\n        [class.vts-drawer-top]=\"vtsPlacement === 'top'\"\n        [class.vts-drawer-bottom]=\"vtsPlacement === 'bottom'\"\n        [class.vts-drawer-right]=\"vtsPlacement === 'right'\"\n        [class.vts-drawer-left]=\"vtsPlacement === 'left'\"\n        [style.transform]=\"offsetTransform\"\n        [style.transition]=\"placementChanging ? 'none' : null\"\n        [style.zIndex]=\"vtsZIndex\"\n      >\n        <div\n          class=\"vts-drawer-mask\"\n          (click)=\"maskClick()\"\n          *ngIf=\"vtsMask\"\n          [ngStyle]=\"vtsMaskStyle\"\n        ></div>\n        <div\n          class=\"vts-drawer-content-wrapper {{ vtsWrapClassName }}\"\n          [style.width]=\"width\"\n          [style.height]=\"height\"\n          [style.transform]=\"transform\"\n          [style.transition]=\"placementChanging ? 'none' : null\"\n        >\n          <div class=\"vts-drawer-content\">\n            <div class=\"vts-drawer-wrapper-body\" [style.height]=\"isLeftOrRight ? '100%' : null\">\n              <div\n                *ngIf=\"vtsTitle || vtsClosable\"\n                [class.vts-drawer-header]=\"!!vtsTitle\"\n                [class.vts-drawer-header-no-title]=\"!vtsTitle\"\n              >\n                <div *ngIf=\"vtsTitle\" class=\"vts-drawer-title\">\n                  <ng-container *vtsStringTemplateOutlet=\"vtsTitle\">\n                    <div [innerHTML]=\"vtsTitle\"></div>\n                  </ng-container>\n                </div>\n                <button\n                  *ngIf=\"vtsClosable\"\n                  (click)=\"closeClick()\"\n                  aria-label=\"Close\"\n                  class=\"vts-drawer-close\"\n                  style=\"--scroll-bar: 0px;\"\n                >\n                  <ng-container *vtsStringTemplateOutlet=\"vtsCloseIcon; let closeIcon\">\n                    <i vts-icon [vtsType]=\"closeIcon\"></i>\n                  </ng-container>\n                </button>\n              </div>\n              <div class=\"vts-drawer-body\" [ngStyle]=\"vtsBodyStyle\">\n                <ng-template cdkPortalOutlet></ng-template>\n                <ng-container *ngIf=\"vtsContent; else contentElseTemp\">\n                  <ng-container *ngIf=\"isTemplateRef(vtsContent)\">\n                    <ng-container\n                      *ngTemplateOutlet=\"$any(vtsContent); context: templateContext\"\n                    ></ng-container>\n                  </ng-container>\n                </ng-container>\n                <ng-template #contentElseTemp>\n                  <ng-container *ngIf=\"contentFromContentChild\">\n                    <ng-template [ngTemplateOutlet]=\"contentFromContentChild\"></ng-template>\n                  </ng-container>\n                </ng-template>\n                <ng-content *ngIf=\"!(vtsContent || contentFromContentChild)\"></ng-content>\n              </div>\n              <div *ngIf=\"vtsFooter\" class=\"vts-drawer-footer\">\n                <ng-container *vtsStringTemplateOutlet=\"vtsFooter\">\n                  <div [innerHTML]=\"vtsFooter\"></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 VtsDrawerComponent<T = VtsSafeAny, R = VtsSafeAny, D = VtsSafeAny>\n  extends VtsDrawerRef<T, R>\n  implements\n    OnInit,\n    OnDestroy,\n    AfterViewInit,\n    OnChanges,\n    AfterContentInit,\n    VtsDrawerOptionsOfComponent\n{\n  readonly _vtsModuleName: VtsConfigKey = VTS_CONFIG_MODULE_NAME;\n  static ngAcceptInputType_vtsClosable: BooleanInput;\n  static ngAcceptInputType_vtsMaskClosable: BooleanInput;\n  static ngAcceptInputType_vtsMask: BooleanInput;\n  static ngAcceptInputType_vtsNoAnimation: BooleanInput;\n  static ngAcceptInputType_vtsKeyboard: BooleanInput;\n  static ngAcceptInputType_vtsCloseOnNavigation: BooleanInput;\n\n  @Input() vtsContent!: TemplateRef<{ $implicit: D; drawerRef: VtsDrawerRef<R> }> | Type<T>;\n  @Input() vtsCloseIcon: string | TemplateRef<void> = 'Close:vts';\n  @Input() @InputBoolean() vtsClosable: boolean = true;\n  @Input() @WithConfig() @InputBoolean() vtsMaskClosable: boolean = true;\n  @Input() @WithConfig() @InputBoolean() vtsMask: boolean = true;\n  @Input() @WithConfig() @InputBoolean() vtsCloseOnNavigation: boolean = true;\n  @Input() @InputBoolean() vtsNoAnimation = false;\n  @Input() @InputBoolean() vtsKeyboard: boolean = true;\n  @Input() vtsTitle?: string | TemplateRef<{}>;\n  @Input() vtsFooter?: string | TemplateRef<{}>;\n  @Input() vtsPlacement: VtsDrawerPlacement = 'right';\n  @Input() vtsMaskStyle: NgStyleInterface = {};\n  @Input() vtsBodyStyle: NgStyleInterface = {};\n  @Input() vtsWrapClassName?: string;\n  @Input() vtsWidth: number | string = 256;\n  @Input() vtsHeight: number | string = 256;\n  @Input() vtsZIndex = 1000;\n  @Input() vtsOffsetX = 0;\n  @Input() vtsOffsetY = 0;\n  private componentInstance: T | null = null;\n\n  @Input()\n  set vtsVisible(value: boolean) {\n    this.isOpen = value;\n  }\n\n  get vtsVisible(): boolean {\n    return this.isOpen;\n  }\n\n  @Output() readonly vtsOnViewInit = new EventEmitter<void>();\n  @Output() readonly vtsOnClose = new EventEmitter<MouseEvent>();\n  @Output() readonly vtsVisibleChange = new EventEmitter<boolean>();\n\n  @ViewChild('drawerTemplate', { static: true })\n  drawerTemplate!: TemplateRef<void>;\n  @ViewChild(CdkPortalOutlet, { static: false })\n  bodyPortalOutlet?: CdkPortalOutlet;\n  @ContentChild(VtsDrawerContentDirective, { static: true, read: TemplateRef })\n  contentFromContentChild?: TemplateRef<VtsSafeAny>;\n\n  private destroy$ = new Subject<void>();\n  previouslyFocusedElement?: HTMLElement;\n  placementChanging = false;\n  placementChangeTimeoutId: number | ReturnType<typeof setTimeout> = -1;\n  vtsContentParams?: D; // only service\n  overlayRef?: OverlayRef | null;\n  portal?: TemplatePortal;\n  focusTrap?: FocusTrap;\n  isOpen = false;\n  templateContext: { $implicit: D | undefined; drawerRef: VtsDrawerRef<R> } = {\n    $implicit: undefined,\n    // @ts-ignore\n    drawerRef: this as VtsDrawerRef<R>\n  };\n\n  get offsetTransform(): string | null {\n    if (!this.isOpen || this.vtsOffsetX + this.vtsOffsetY === 0) {\n      return null;\n    }\n    switch (this.vtsPlacement) {\n      case 'left':\n        return `translateX(${this.vtsOffsetX}px)`;\n      case 'right':\n        return `translateX(-${this.vtsOffsetX}px)`;\n      case 'top':\n        return `translateY(${this.vtsOffsetY}px)`;\n      case 'bottom':\n        return `translateY(-${this.vtsOffsetY}px)`;\n    }\n  }\n\n  get transform(): string | null {\n    if (this.isOpen) {\n      return null;\n    }\n\n    switch (this.vtsPlacement) {\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    return this.isLeftOrRight ? toCssPixel(this.vtsWidth) : null;\n  }\n\n  get height(): string | null {\n    return !this.isLeftOrRight ? toCssPixel(this.vtsHeight) : null;\n  }\n\n  get isLeftOrRight(): boolean {\n    return this.vtsPlacement === 'left' || this.vtsPlacement === 'right';\n  }\n\n  vtsAfterOpen = new Subject<void>();\n  vtsAfterClose = new Subject<R>();\n\n  get afterOpen(): Observable<void> {\n    return this.vtsAfterOpen.asObservable();\n  }\n\n  get afterClose(): Observable<R> {\n    return this.vtsAfterClose.asObservable();\n  }\n\n  isTemplateRef(value: {}): boolean {\n    return value instanceof TemplateRef;\n  }\n\n  // from service config\n  @WithConfig() vtsDirection?: Direction = undefined;\n\n  dir: Direction = 'ltr';\n\n  constructor(\n    private cdr: ChangeDetectorRef,\n    // tslint:disable-next-line:no-any\n    @Optional() @Inject(DOCUMENT) private document: VtsSafeAny,\n    public vtsConfigService: VtsConfigService,\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.vtsDirection || this.directionality.value;\n\n    this.attachOverlay();\n    this.updateOverlayStyle();\n    this.updateBodyOverflow();\n    this.templateContext = {\n      $implicit: this.vtsContentParams,\n      // @ts-ignore\n      drawerRef: this as VtsDrawerRef<R>\n    };\n    this.changeDetectorRef.detectChanges();\n  }\n\n  ngAfterViewInit(): void {\n    this.attachBodyContent();\n    setTimeout(() => {\n      this.vtsOnViewInit.emit();\n    });\n  }\n\n  ngAfterContentInit(): void {\n    if (!(this.contentFromContentChild || this.vtsContent)) {\n      warnDeprecation(\n        'Usage `<ng-content></ng-content>` is deprecated, which will be removed in 12.0.0. Please instead use `<ng-template vtsDrawerContent></ng-template>` to declare the content of the drawer.'\n      );\n    }\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    const { vtsPlacement, vtsVisible } = changes;\n    if (vtsVisible) {\n      const value = changes.vtsVisible.currentValue;\n      if (value) {\n        this.open();\n      } else {\n        this.close();\n      }\n    }\n    if (vtsPlacement && !vtsPlacement.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.vtsNoAnimation ? 0 : DRAWER_ANIMATE_DURATION;\n  }\n\n  // Disable the transition animation temporarily when the placement changing\n  private triggerPlacementChangeCycleOnce(): void {\n    if (!this.vtsNoAnimation) {\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.vtsVisibleChange.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.vtsAfterClose.next(result);\n      this.vtsAfterClose.complete();\n      this.componentInstance = null;\n    }, this.getAnimationDuration());\n  }\n\n  open(): void {\n    this.attachOverlay();\n    this.isOpen = true;\n    this.vtsVisibleChange.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.vtsAfterOpen.next();\n    }, this.getAnimationDuration());\n  }\n\n  getContentComponent(): T | null {\n    return this.componentInstance;\n  }\n\n  closeClick(): void {\n    this.vtsOnClose.emit();\n  }\n\n  maskClick(): void {\n    if (this.vtsMaskClosable && this.vtsMask) {\n      this.vtsOnClose.emit();\n    }\n  }\n\n  private attachBodyContent(): void {\n    this.bodyPortalOutlet!.dispose();\n\n    if (this.vtsContent instanceof Type) {\n      const childInjector = Injector.create({\n        parent: this.injector,\n        providers: [{ provide: VtsDrawerRef, useValue: this }]\n      });\n      const componentPortal = new ComponentPortal<T>(this.vtsContent, null, childInjector);\n      const componentRef = this.bodyPortalOutlet!.attachComponentPortal(componentPortal);\n      this.componentInstance = componentRef.instance;\n      Object.assign(componentRef.instance, this.vtsContentParams);\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.vtsKeyboard) {\n            this.vtsOnClose.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.vtsCloseOnNavigation,\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(\n        this.overlayRef.overlayElement,\n        'pointer-events',\n        this.isOpen ? 'auto' : 'none'\n      );\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 (\n        this.previouslyFocusedElement &&\n        typeof this.previouslyFocusedElement.blur === 'function'\n      ) {\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 (\n      this.previouslyFocusedElement &&\n      typeof this.previouslyFocusedElement.focus === 'function'\n    ) {\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 VtsDrawerServiceModule {}\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';\nimport { VtsNoAnimationModule } from '@ui-vts-kit/ng-vts/core/no-animation';\nimport { VtsOutletModule } from '@ui-vts-kit/ng-vts/core/outlet';\n\nimport { VtsIconModule } from '@ui-vts-kit/ng-vts/icon';\n\nimport { VtsDrawerContentDirective } from './drawer-content.directive';\nimport { VtsDrawerComponent } from './drawer.component';\nimport { VtsDrawerServiceModule } from './drawer.service.module';\n\n@NgModule({\n  imports: [\n    BidiModule,\n    CommonModule,\n    OverlayModule,\n    PortalModule,\n    VtsIconModule,\n    VtsOutletModule,\n    VtsNoAnimationModule,\n    VtsDrawerServiceModule\n  ],\n  exports: [VtsDrawerComponent, VtsDrawerContentDirective],\n  declarations: [VtsDrawerComponent, VtsDrawerContentDirective]\n})\nexport class VtsDrawerModule {}\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 { VtsSafeAny } from '@ui-vts-kit/ng-vts/core/types';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { VtsDrawerOptions, VtsDrawerOptionsOfComponent } from './drawer-options';\nimport { VtsDrawerRef } from './drawer-ref';\nimport { VtsDrawerComponent } from './drawer.component';\nimport { VtsDrawerServiceModule } from './drawer.service.module';\n\nexport class DrawerBuilderForService<T, R> {\n  private drawerRef: VtsDrawerComponent<T, R> | null;\n  private overlayRef: OverlayRef;\n  private unsubscribe$ = new Subject<void>();\n\n  constructor(private overlay: Overlay, private options: VtsDrawerOptions) {\n    /** pick {@link VtsDrawerOptions.vtsOnCancel} and omit this option */\n    const { vtsOnCancel, ...componentOption } = this.options;\n    this.overlayRef = this.overlay.create();\n    this.drawerRef = this.overlayRef.attach(new ComponentPortal(VtsDrawerComponent)).instance;\n    this.updateOptions(componentOption);\n    // Prevent repeatedly open drawer when tap focus element.\n    this.drawerRef.savePreviouslyFocusedElement();\n    this.drawerRef.vtsOnViewInit.pipe(takeUntil(this.unsubscribe$)).subscribe(() => {\n      this.drawerRef!.open();\n    });\n    this.drawerRef.vtsOnClose.subscribe(() => {\n      if (vtsOnCancel) {\n        vtsOnCancel().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(): VtsDrawerRef<T, R> {\n    return this.drawerRef!;\n  }\n\n  updateOptions(options: VtsDrawerOptionsOfComponent): void {\n    Object.assign(this.drawerRef!, options);\n  }\n}\n\n@Injectable({ providedIn: VtsDrawerServiceModule })\nexport class VtsDrawerService {\n  constructor(private overlay: Overlay) {}\n\n  create<T = VtsSafeAny, D = undefined, R = VtsSafeAny>(\n    options: VtsDrawerOptions<T, D extends undefined ? {} : D>\n  ): VtsDrawerRef<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 { Direction } from '@angular/cdk/bidi';\nimport { TemplateRef, Type } from '@angular/core';\nimport { VtsSafeAny } from '@ui-vts-kit/ng-vts/core/types';\nimport { VtsDrawerRef } from './drawer-ref';\n\nexport type VtsDrawerPlacement = 'left' | 'right' | 'top' | 'bottom';\n\nexport interface VtsDrawerOptionsOfComponent<T = VtsSafeAny, D = VtsSafeAny> {\n  vtsClosable?: boolean;\n  vtsMaskClosable?: boolean;\n  vtsCloseOnNavigation?: boolean;\n  vtsDirection?: Direction;\n  vtsMask?: boolean;\n  vtsKeyboard?: boolean;\n  vtsNoAnimation?: boolean;\n  vtsTitle?: string | TemplateRef<{}>;\n  vtsFooter?: string | TemplateRef<{}>;\n  vtsContent?: TemplateRef<{ $implicit: D; drawerRef: VtsDrawerRef }> | Type<T>;\n  vtsContentParams?: Partial<T & D>;\n  vtsMaskStyle?: object;\n  vtsBodyStyle?: object;\n  vtsWrapClassName?: string;\n  vtsWidth?: number | string;\n  vtsHeight?: number | string;\n  vtsPlacement?: VtsDrawerPlacement;\n  vtsZIndex?: number;\n  vtsOffsetX?: number;\n  vtsOffsetY?: number;\n}\n\nexport interface VtsDrawerOptions<T = VtsSafeAny, D = VtsSafeAny>\n  extends VtsDrawerOptionsOfComponent<T, D> {\n  vtsOnCancel?(): Promise<VtsSafeAny>;\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":["i1"],"mappings":"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"}