{"version":3,"file":"ui-vts-kit-ng-vts-dropdown.mjs","sources":["../../components/dropdown/dropdown.directive.ts","../../components/dropdown/context-menu.service.module.ts","../../components/dropdown/dropdown-a.directive.ts","../../components/dropdown/dropdown-button.directive.ts","../../components/dropdown/dropdown-menu.component.ts","../../components/dropdown/dropdown.module.ts","../../components/dropdown/context-menu.service.ts","../../components/dropdown/public-api.ts","../../components/dropdown/ui-vts-kit-ng-vts-dropdown.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 { ESCAPE, hasModifierKey } from '@angular/cdk/keycodes';\nimport { Overlay, OverlayRef } from '@angular/cdk/overlay';\nimport { Platform } from '@angular/cdk/platform';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport {\n  AfterViewInit,\n  Directive,\n  ElementRef,\n  EventEmitter,\n  Input,\n  OnChanges,\n  OnDestroy,\n  OnInit,\n  Output,\n  Renderer2,\n  SimpleChanges,\n  ViewContainerRef\n} from '@angular/core';\nimport { warnDeprecation } from '@ui-vts-kit/ng-vts/core/logger';\nimport { POSITION_MAP } from '@ui-vts-kit/ng-vts/core/overlay';\nimport { BooleanInput, IndexableObject } from '@ui-vts-kit/ng-vts/core/types';\nimport { InputBoolean } from '@ui-vts-kit/ng-vts/core/util';\nimport { BehaviorSubject, combineLatest, EMPTY, fromEvent, merge, Subject } from 'rxjs';\nimport {\n  auditTime,\n  distinctUntilChanged,\n  filter,\n  map,\n  mapTo,\n  switchMap,\n  takeUntil\n} from 'rxjs/operators';\nimport { VtsDropdownMenuComponent, VtsPlacementType } from './dropdown-menu.component';\n\nconst listOfPositions = [\n  POSITION_MAP.bottomLeft,\n  POSITION_MAP.bottomRight,\n  POSITION_MAP.topRight,\n  POSITION_MAP.topLeft\n];\n\n@Directive({\n  selector: '[vts-dropdown]',\n  exportAs: 'vtsDropdown'\n})\nexport class VtsDropDownDirective implements AfterViewInit, OnDestroy, OnChanges, OnInit {\n  static ngAcceptInputType_vtsBackdrop: BooleanInput;\n  static ngAcceptInputType_vtsHasBackdrop: BooleanInput;\n  static ngAcceptInputType_vtsClickHide: BooleanInput;\n  static ngAcceptInputType_vtsDisabled: BooleanInput;\n  static ngAcceptInputType_vtsVisible: BooleanInput;\n\n  private portal?: TemplatePortal;\n  private overlayRef: OverlayRef | null = null;\n  private destroy$ = new Subject();\n  private positionStrategy = this.overlay\n    .position()\n    .flexibleConnectedTo(this.elementRef.nativeElement)\n    .withLockedPosition()\n    .withTransformOriginOn('.vts-dropdown');\n  private inputVisible$ = new BehaviorSubject<boolean>(false);\n  private vtsTrigger$ = new BehaviorSubject<'click' | 'hover'>('hover');\n  private overlayClose$ = new Subject<boolean>();\n  @Input() vtsDropdownMenu: VtsDropdownMenuComponent | null = null;\n  @Input() vtsTrigger: 'click' | 'hover' = 'hover';\n  @Input() vtsMatchWidthElement: ElementRef | null = null;\n  /**\n   * @deprecated Not supported, use `vtsHasBackDrop` instead.\n   * @breaking-change 12.0.0\n   */\n  @Input() @InputBoolean() vtsBackdrop = false;\n  @Input() @InputBoolean() vtsHasBackdrop = false;\n  @Input() @InputBoolean() vtsClickHide = true;\n  @Input() @InputBoolean() vtsDisabled = false;\n  @Input() @InputBoolean() vtsVisible = false;\n  @Input() vtsOverlayClassName: string = '';\n  @Input() vtsOverlayStyle: IndexableObject = {};\n  @Input() vtsPlacement: VtsPlacementType = 'bottomLeft';\n  @Output()\n  readonly vtsVisibleChange: EventEmitter<boolean> = new EventEmitter();\n\n  setDropdownMenuValue<T extends keyof VtsDropdownMenuComponent>(\n    key: T,\n    value: VtsDropdownMenuComponent[T]\n  ): void {\n    if (this.vtsDropdownMenu) {\n      this.vtsDropdownMenu.setValue(key, value);\n    }\n  }\n\n  constructor(\n    public elementRef: ElementRef,\n    private overlay: Overlay,\n    private renderer: Renderer2,\n    private viewContainerRef: ViewContainerRef,\n    private platform: Platform\n  ) {\n    // TODO: move to host after View Engine deprecation\n    this.elementRef.nativeElement.classList.add('vts-dropdown-trigger');\n  }\n\n  ngOnInit(): void {}\n\n  ngAfterViewInit(): void {\n    if (this.vtsDropdownMenu) {\n      const nativeElement: HTMLElement = this.elementRef.nativeElement;\n      /** host mouse state **/\n      const hostMouseState$ = merge(\n        fromEvent(nativeElement, 'mouseenter').pipe(mapTo(true)),\n        fromEvent(nativeElement, 'mouseleave').pipe(mapTo(false))\n      );\n      /** menu mouse state **/\n      const menuMouseState$ = this.vtsDropdownMenu.mouseState$;\n      /** merged mouse state **/\n      const mergedMouseState$ = merge(menuMouseState$, hostMouseState$);\n      /** host click state **/\n      const hostClickState$ = fromEvent(nativeElement, 'click').pipe(map(() => !this.vtsVisible));\n      /** visible state switch by vtsTrigger **/\n      const visibleStateByTrigger$ = this.vtsTrigger$.pipe(\n        switchMap(trigger => {\n          if (trigger === 'hover') {\n            return mergedMouseState$;\n          } else if (trigger === 'click') {\n            return hostClickState$;\n          } else {\n            return EMPTY;\n          }\n        })\n      );\n      const descendantMenuItemClick$ = this.vtsDropdownMenu.descendantMenuItemClick$.pipe(\n        filter(() => this.vtsClickHide),\n        mapTo(false)\n      );\n      const domTriggerVisible$ = merge(\n        visibleStateByTrigger$,\n        descendantMenuItemClick$,\n        this.overlayClose$\n      ).pipe(filter(() => !this.vtsDisabled));\n      const visible$ = merge(this.inputVisible$, domTriggerVisible$);\n      combineLatest([visible$, this.vtsDropdownMenu.isChildSubMenuOpen$])\n        .pipe(\n          map(([visible, sub]) => visible || sub),\n          auditTime(150),\n          distinctUntilChanged(),\n          filter(() => this.platform.isBrowser),\n          takeUntil(this.destroy$)\n        )\n        .subscribe((visible: boolean) => {\n          const element = this.vtsMatchWidthElement\n            ? this.vtsMatchWidthElement.nativeElement\n            : nativeElement;\n          const triggerWidth = element.getBoundingClientRect().width;\n          if (this.vtsVisible !== visible) {\n            this.vtsVisibleChange.emit(visible);\n          }\n          this.vtsVisible = visible;\n          if (visible) {\n            /** set up overlayRef **/\n            if (!this.overlayRef) {\n              /** new overlay **/\n              this.overlayRef = this.overlay.create({\n                positionStrategy: this.positionStrategy,\n                minWidth: triggerWidth,\n                disposeOnNavigation: true,\n                hasBackdrop:\n                  (this.vtsHasBackdrop || this.vtsBackdrop) && this.vtsTrigger === 'click',\n                scrollStrategy: this.overlay.scrollStrategies.reposition()\n              });\n              merge(\n                this.overlayRef.backdropClick(),\n                this.overlayRef.detachments(),\n                this.overlayRef\n                  .outsidePointerEvents()\n                  .pipe(\n                    filter((e: MouseEvent) => !this.elementRef.nativeElement.contains(e.target))\n                  ),\n                this.overlayRef\n                  .keydownEvents()\n                  .pipe(filter(e => e.keyCode === ESCAPE && !hasModifierKey(e)))\n              )\n                .pipe(takeUntil(this.destroy$))\n                .subscribe(() => {\n                  this.overlayClose$.next(false);\n                });\n            } else {\n              /** update overlay config **/\n              const overlayConfig = this.overlayRef.getConfig();\n              overlayConfig.minWidth = triggerWidth;\n            }\n            /** open dropdown with animation **/\n            this.positionStrategy.withPositions([\n              POSITION_MAP[this.vtsPlacement],\n              ...listOfPositions\n            ]);\n            /** reset portal if needed **/\n            if (!this.portal || this.portal.templateRef !== this.vtsDropdownMenu!.templateRef) {\n              this.portal = new TemplatePortal(\n                this.vtsDropdownMenu!.templateRef,\n                this.viewContainerRef\n              );\n            }\n            this.overlayRef.attach(this.portal);\n          } else {\n            /** detach overlayRef if needed **/\n            if (this.overlayRef) {\n              this.overlayRef.detach();\n            }\n          }\n        });\n\n      this.vtsDropdownMenu!.animationStateChange$.pipe(takeUntil(this.destroy$)).subscribe(\n        event => {\n          if (event.toState === 'void') {\n            if (this.overlayRef) {\n              this.overlayRef.dispose();\n            }\n            this.overlayRef = null;\n          }\n        }\n      );\n    }\n  }\n\n  ngOnDestroy(): void {\n    this.destroy$.next();\n    this.destroy$.complete();\n    if (this.overlayRef) {\n      this.overlayRef.dispose();\n      this.overlayRef = null;\n    }\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    const {\n      vtsVisible,\n      vtsDisabled,\n      vtsOverlayClassName,\n      vtsOverlayStyle,\n      vtsTrigger,\n      vtsBackdrop\n    } = changes;\n    if (vtsTrigger) {\n      this.vtsTrigger$.next(this.vtsTrigger);\n    }\n    if (vtsVisible) {\n      this.inputVisible$.next(this.vtsVisible);\n    }\n    if (vtsDisabled) {\n      const nativeElement = this.elementRef.nativeElement;\n      if (this.vtsDisabled) {\n        this.renderer.setAttribute(nativeElement, 'disabled', '');\n        this.inputVisible$.next(false);\n      } else {\n        this.renderer.removeAttribute(nativeElement, 'disabled');\n      }\n    }\n    if (vtsOverlayClassName) {\n      this.setDropdownMenuValue('vtsOverlayClassName', this.vtsOverlayClassName);\n    }\n    if (vtsOverlayStyle) {\n      this.setDropdownMenuValue('vtsOverlayStyle', this.vtsOverlayStyle);\n    }\n    if (vtsBackdrop) {\n      warnDeprecation(\n        '`vtsBackdrop` in dropdown component will be removed in 12.0.0, please use `vtsHasBackdrop` instead.'\n      );\n    }\n  }\n}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { NgModule } from '@angular/core';\n\n@NgModule()\nexport class VtsContextMenuServiceModule {}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { Directive, ElementRef } from '@angular/core';\n\n@Directive({\n  selector: 'a[vts-dropdown]'\n})\nexport class VtsDropDownADirective {\n  constructor(private elementRef: ElementRef) {\n    // TODO: move to host after View Engine deprecation\n    this.elementRef.nativeElement.classList.add('vts-dropdown-link');\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 { AfterViewInit, Directive, ElementRef, Host, Optional, Renderer2 } from '@angular/core';\nimport { VtsButtonGroupComponent } from '@ui-vts-kit/ng-vts/button';\n\n@Directive({\n  selector: '[vts-button][vts-dropdown]'\n})\nexport class VtsDropdownButtonDirective implements AfterViewInit {\n  constructor(\n    private renderer: Renderer2,\n    @Host()\n    @Optional()\n    private vtsButtonGroupComponent: VtsButtonGroupComponent,\n    private elementRef: ElementRef\n  ) {}\n  ngAfterViewInit(): void {\n    const parentElement = this.renderer.parentNode(this.elementRef.nativeElement);\n    if (this.vtsButtonGroupComponent && parentElement) {\n      this.renderer.addClass(parentElement, 'vts-dropdown-button');\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 { AnimationEvent } from '@angular/animations';\nimport { Direction, Directionality } from '@angular/cdk/bidi';\nimport {\n  AfterContentInit,\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  ElementRef,\n  EventEmitter,\n  Host,\n  OnDestroy,\n  OnInit,\n  Optional,\n  Renderer2,\n  TemplateRef,\n  ViewChild,\n  ViewContainerRef,\n  ViewEncapsulation\n} from '@angular/core';\nimport { slideMotion } from '@ui-vts-kit/ng-vts/core/animation';\nimport { VtsNoAnimationDirective } from '@ui-vts-kit/ng-vts/core/no-animation';\nimport { IndexableObject, VtsSafeAny } from '@ui-vts-kit/ng-vts/core/types';\nimport { MenuService, VtsIsMenuInsideDropDownToken } from '@ui-vts-kit/ng-vts/menu';\nimport { BehaviorSubject, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nexport type VtsPlacementType =\n  | 'bottomLeft'\n  | 'bottomCenter'\n  | 'bottomRight'\n  | 'topLeft'\n  | 'topCenter'\n  | 'topRight';\n\n@Component({\n  selector: `vts-dropdown-menu`,\n  exportAs: `vtsDropdownMenu`,\n  animations: [slideMotion],\n  providers: [\n    MenuService,\n    /** menu is inside dropdown-menu component **/\n    {\n      provide: VtsIsMenuInsideDropDownToken,\n      useValue: true\n    }\n  ],\n  template: `\n    <ng-template>\n      <div\n        class=\"vts-dropdown\"\n        [class.vts-dropdown-rtl]=\"dir === 'rtl'\"\n        [ngClass]=\"vtsOverlayClassName\"\n        [ngStyle]=\"vtsOverlayStyle\"\n        @slideMotion\n        (@slideMotion.done)=\"onAnimationEvent($event)\"\n        [@.disabled]=\"noAnimation?.vtsNoAnimation\"\n        [vtsNoAnimation]=\"noAnimation?.vtsNoAnimation\"\n        (mouseenter)=\"setMouseState(true)\"\n        (mouseleave)=\"setMouseState(false)\"\n      >\n        <ng-content></ng-content>\n      </div>\n    </ng-template>\n  `,\n  preserveWhitespaces: false,\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class VtsDropdownMenuComponent implements AfterContentInit, OnDestroy, OnInit {\n  mouseState$ = new BehaviorSubject<boolean>(false);\n  isChildSubMenuOpen$ = this.vtsMenuService.isChildSubMenuOpen$;\n  descendantMenuItemClick$ = this.vtsMenuService.descendantMenuItemClick$;\n  animationStateChange$ = new EventEmitter<AnimationEvent>();\n  vtsOverlayClassName: string = '';\n  vtsOverlayStyle: IndexableObject = {};\n  @ViewChild(TemplateRef, { static: true })\n  templateRef!: TemplateRef<VtsSafeAny>;\n\n  dir: Direction = 'ltr';\n  private destroy$ = new Subject<void>();\n\n  onAnimationEvent(event: AnimationEvent): void {\n    this.animationStateChange$.emit(event);\n  }\n\n  setMouseState(visible: boolean): void {\n    this.mouseState$.next(visible);\n  }\n\n  setValue<T extends keyof VtsDropdownMenuComponent>(key: T, value: this[T]): void {\n    this[key] = value;\n    this.cdr.markForCheck();\n  }\n\n  constructor(\n    private cdr: ChangeDetectorRef,\n    private elementRef: ElementRef,\n    private renderer: Renderer2,\n    public viewContainerRef: ViewContainerRef,\n    public vtsMenuService: MenuService,\n    @Optional() private directionality: Directionality,\n    @Host() @Optional() public noAnimation?: VtsNoAnimationDirective\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\n    this.dir = this.directionality.value;\n  }\n\n  ngAfterContentInit(): void {\n    this.renderer.removeChild(\n      this.renderer.parentNode(this.elementRef.nativeElement),\n      this.elementRef.nativeElement\n    );\n  }\n\n  ngOnDestroy(): void {\n    this.destroy$.next();\n    this.destroy$.complete();\n  }\n}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { BidiModule } from '@angular/cdk/bidi';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { PlatformModule } from '@angular/cdk/platform';\n\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\nimport { VtsButtonModule } from '@ui-vts-kit/ng-vts/button';\nimport { VtsNoAnimationModule } from '@ui-vts-kit/ng-vts/core/no-animation';\nimport { VtsOutletModule } from '@ui-vts-kit/ng-vts/core/outlet';\nimport { VtsOverlayModule } from '@ui-vts-kit/ng-vts/core/overlay';\nimport { VtsIconModule } from '@ui-vts-kit/ng-vts/icon';\nimport { VtsMenuModule } from '@ui-vts-kit/ng-vts/menu';\nimport { VtsContextMenuServiceModule } from './context-menu.service.module';\nimport { VtsDropDownADirective } from './dropdown-a.directive';\nimport { VtsDropdownButtonDirective } from './dropdown-button.directive';\nimport { VtsDropdownMenuComponent } from './dropdown-menu.component';\nimport { VtsDropDownDirective } from './dropdown.directive';\n\n@NgModule({\n  imports: [\n    BidiModule,\n    CommonModule,\n    OverlayModule,\n    FormsModule,\n    VtsButtonModule,\n    VtsMenuModule,\n    VtsIconModule,\n    VtsNoAnimationModule,\n    PlatformModule,\n    VtsOverlayModule,\n    VtsContextMenuServiceModule,\n    VtsOutletModule\n  ],\n  declarations: [\n    VtsDropDownDirective,\n    VtsDropDownADirective,\n    VtsDropdownMenuComponent,\n    VtsDropdownButtonDirective\n  ],\n  exports: [\n    VtsMenuModule,\n    VtsDropDownDirective,\n    VtsDropDownADirective,\n    VtsDropdownMenuComponent,\n    VtsDropdownButtonDirective\n  ]\n})\nexport class VtsDropDownModule {}\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 { ConnectionPositionPair, Overlay, OverlayRef } from '@angular/cdk/overlay';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport { Injectable } from '@angular/core';\nimport { fromEvent, merge, Subscription } from 'rxjs';\nimport { filter, take } from 'rxjs/operators';\nimport { VtsContextMenuServiceModule } from './context-menu.service.module';\nimport { VtsDropdownMenuComponent } from './dropdown-menu.component';\n\nconst listOfPositions = [\n  new ConnectionPositionPair(\n    { originX: 'start', originY: 'top' },\n    { overlayX: 'start', overlayY: 'top' }\n  ),\n  new ConnectionPositionPair(\n    { originX: 'start', originY: 'top' },\n    { overlayX: 'start', overlayY: 'bottom' }\n  ),\n  new ConnectionPositionPair(\n    { originX: 'start', originY: 'top' },\n    { overlayX: 'end', overlayY: 'bottom' }\n  ),\n  new ConnectionPositionPair(\n    { originX: 'start', originY: 'top' },\n    { overlayX: 'end', overlayY: 'top' }\n  )\n];\n\n@Injectable({\n  providedIn: VtsContextMenuServiceModule\n})\nexport class VtsContextMenuService {\n  private overlayRef: OverlayRef | null = null;\n  private closeSubscription = Subscription.EMPTY;\n\n  constructor(private overlay: Overlay) {}\n\n  create(\n    $event: MouseEvent | { x: number; y: number },\n    vtsDropdownMenuComponent: VtsDropdownMenuComponent\n  ): void {\n    this.close(true);\n    const { x, y } = $event;\n    if ($event instanceof MouseEvent) {\n      $event.preventDefault();\n      $event.stopPropagation();\n    }\n    const positionStrategy = this.overlay\n      .position()\n      .flexibleConnectedTo({ x, y })\n      .withPositions(listOfPositions)\n      .withTransformOriginOn('.vts-dropdown');\n    this.overlayRef = this.overlay.create({\n      positionStrategy,\n      disposeOnNavigation: true,\n      scrollStrategy: this.overlay.scrollStrategies.close()\n    });\n    this.closeSubscription = merge(\n      vtsDropdownMenuComponent.descendantMenuItemClick$,\n      fromEvent<MouseEvent>(document, 'click').pipe(\n        filter(\n          event =>\n            !!this.overlayRef &&\n            !this.overlayRef.overlayElement.contains(event.target as HTMLElement)\n        ),\n        /** handle firefox contextmenu event **/\n        filter(event => event.button !== 2),\n        take(1)\n      )\n    ).subscribe(() => {\n      this.close();\n    });\n    this.overlayRef.attach(\n      new TemplatePortal(\n        vtsDropdownMenuComponent.templateRef,\n        vtsDropdownMenuComponent.viewContainerRef\n      )\n    );\n  }\n\n  close(clear: boolean = false): void {\n    if (this.overlayRef) {\n      this.overlayRef.detach();\n      if (clear) {\n        this.overlayRef.dispose();\n      }\n      this.overlayRef = null;\n      this.closeSubscription.unsubscribe();\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\nexport * from './dropdown.directive';\nexport * from './dropdown.module';\nexport * from './dropdown-a.directive';\nexport * from './dropdown-button.directive';\nexport * from './dropdown-menu.component';\nexport * from './context-menu.service';\nexport * from './context-menu.service.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["listOfPositions","i1","i2"],"mappings":"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"}