{"version":3,"file":"ng-zorro-antd-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/ng-zorro-antd-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  Output,\n  Renderer2,\n  SimpleChanges,\n  ViewContainerRef\n} from '@angular/core';\nimport { BehaviorSubject, combineLatest, EMPTY, fromEvent, merge, Subject } from 'rxjs';\nimport { auditTime, distinctUntilChanged, filter, map, mapTo, switchMap, takeUntil } from 'rxjs/operators';\n\nimport { NzConfigKey, NzConfigService, WithConfig } from 'ng-zorro-antd/core/config';\nimport { POSITION_MAP } from 'ng-zorro-antd/core/overlay';\nimport { BooleanInput, IndexableObject } from 'ng-zorro-antd/core/types';\nimport { InputBoolean } from 'ng-zorro-antd/core/util';\n\nimport { NzDropdownMenuComponent, NzPlacementType } from './dropdown-menu.component';\n\nconst NZ_CONFIG_MODULE_NAME: NzConfigKey = 'dropDown';\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: '[nz-dropdown]',\n  exportAs: 'nzDropdown',\n  host: {\n    class: 'ant-dropdown-trigger'\n  }\n})\nexport class NzDropDownDirective implements AfterViewInit, OnDestroy, OnChanges {\n  readonly _nzModuleName: NzConfigKey = NZ_CONFIG_MODULE_NAME;\n\n  static ngAcceptInputType_nzBackdrop: BooleanInput;\n  static ngAcceptInputType_nzClickHide: BooleanInput;\n  static ngAcceptInputType_nzDisabled: BooleanInput;\n  static ngAcceptInputType_nzVisible: 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('.ant-dropdown');\n  private inputVisible$ = new BehaviorSubject<boolean>(false);\n  private nzTrigger$ = new BehaviorSubject<'click' | 'hover'>('hover');\n  private overlayClose$ = new Subject<boolean>();\n  @Input() nzDropdownMenu: NzDropdownMenuComponent | null = null;\n  @Input() nzTrigger: 'click' | 'hover' = 'hover';\n  @Input() nzMatchWidthElement: ElementRef | null = null;\n  @Input() @WithConfig<boolean>() @InputBoolean() nzBackdrop = false;\n  @Input() @InputBoolean() nzClickHide = true;\n  @Input() @InputBoolean() nzDisabled = false;\n  @Input() @InputBoolean() nzVisible = false;\n  @Input() nzOverlayClassName: string = '';\n  @Input() nzOverlayStyle: IndexableObject = {};\n  @Input() nzPlacement: NzPlacementType = 'bottomLeft';\n  @Output() readonly nzVisibleChange: EventEmitter<boolean> = new EventEmitter();\n\n  setDropdownMenuValue<T extends keyof NzDropdownMenuComponent>(key: T, value: NzDropdownMenuComponent[T]): void {\n    if (this.nzDropdownMenu) {\n      this.nzDropdownMenu.setValue(key, value);\n    }\n  }\n\n  constructor(\n    public readonly nzConfigService: NzConfigService,\n    public elementRef: ElementRef,\n    private overlay: Overlay,\n    private renderer: Renderer2,\n    private viewContainerRef: ViewContainerRef,\n    private platform: Platform\n  ) {}\n\n  ngAfterViewInit(): void {\n    if (this.nzDropdownMenu) {\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.nzDropdownMenu.mouseState$;\n      /** merged mouse state **/\n      const mergedMouseState$ = merge(menuMouseState$, hostMouseState$);\n      /** host click state **/\n      const hostClickState$ = fromEvent(nativeElement, 'click').pipe(map(() => !this.nzVisible));\n      /** visible state switch by nzTrigger **/\n      const visibleStateByTrigger$ = this.nzTrigger$.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.nzDropdownMenu.descendantMenuItemClick$.pipe(\n        filter(() => this.nzClickHide),\n        mapTo(false)\n      );\n      const domTriggerVisible$ = merge(visibleStateByTrigger$, descendantMenuItemClick$, this.overlayClose$).pipe(\n        filter(() => !this.nzDisabled)\n      );\n      const visible$ = merge(this.inputVisible$, domTriggerVisible$);\n      combineLatest([visible$, this.nzDropdownMenu.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.nzMatchWidthElement ? this.nzMatchWidthElement.nativeElement : nativeElement;\n          const triggerWidth = element.getBoundingClientRect().width;\n          if (this.nzVisible !== visible) {\n            this.nzVisibleChange.emit(visible);\n          }\n          this.nzVisible = 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: this.nzBackdrop && this.nzTrigger === '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(filter((e: MouseEvent) => !this.elementRef.nativeElement.contains(e.target))),\n                this.overlayRef.keydownEvents().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([POSITION_MAP[this.nzPlacement], ...listOfPositions]);\n            /** reset portal if needed **/\n            if (!this.portal || this.portal.templateRef !== this.nzDropdownMenu!.templateRef) {\n              this.portal = new TemplatePortal(this.nzDropdownMenu!.templateRef, this.viewContainerRef);\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.nzDropdownMenu!.animationStateChange$.pipe(takeUntil(this.destroy$)).subscribe(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  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 { nzVisible, nzDisabled, nzOverlayClassName, nzOverlayStyle, nzTrigger } = changes;\n    if (nzTrigger) {\n      this.nzTrigger$.next(this.nzTrigger);\n    }\n    if (nzVisible) {\n      this.inputVisible$.next(this.nzVisible);\n    }\n    if (nzDisabled) {\n      const nativeElement = this.elementRef.nativeElement;\n      if (this.nzDisabled) {\n        this.renderer.setAttribute(nativeElement, 'disabled', '');\n        this.inputVisible$.next(false);\n      } else {\n        this.renderer.removeAttribute(nativeElement, 'disabled');\n      }\n    }\n    if (nzOverlayClassName) {\n      this.setDropdownMenuValue('nzOverlayClassName', this.nzOverlayClassName);\n    }\n    if (nzOverlayStyle) {\n      this.setDropdownMenuValue('nzOverlayStyle', this.nzOverlayStyle);\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 NzContextMenuServiceModule {}\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 } from '@angular/core';\n\n@Directive({\n  selector: 'a[nz-dropdown]',\n  host: {\n    class: 'ant-dropdown-link'\n  }\n})\nexport class NzDropDownADirective {\n  constructor() {}\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';\n\nimport { NzButtonGroupComponent } from 'ng-zorro-antd/button';\n\n@Directive({\n  selector: '[nz-button][nz-dropdown]'\n})\nexport class NzDropdownButtonDirective implements AfterViewInit {\n  constructor(\n    private renderer: Renderer2,\n    @Host() @Optional() private nzButtonGroupComponent: NzButtonGroupComponent,\n    private elementRef: ElementRef\n  ) {}\n  ngAfterViewInit(): void {\n    const parentElement = this.renderer.parentNode(this.elementRef.nativeElement);\n    if (this.nzButtonGroupComponent && parentElement) {\n      this.renderer.addClass(parentElement, 'ant-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 { BehaviorSubject, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { slideMotion } from 'ng-zorro-antd/core/animation';\nimport { NzNoAnimationDirective } from 'ng-zorro-antd/core/no-animation';\nimport { IndexableObject, NzSafeAny } from 'ng-zorro-antd/core/types';\nimport { MenuService, NzIsMenuInsideDropDownToken } from 'ng-zorro-antd/menu';\n\nexport type NzPlacementType = 'bottomLeft' | 'bottomCenter' | 'bottomRight' | 'topLeft' | 'topCenter' | 'topRight';\n\n@Component({\n  selector: `nz-dropdown-menu`,\n  exportAs: `nzDropdownMenu`,\n  animations: [slideMotion],\n  providers: [\n    MenuService,\n    /** menu is inside dropdown-menu component **/\n    {\n      provide: NzIsMenuInsideDropDownToken,\n      useValue: true\n    }\n  ],\n  template: `\n    <ng-template>\n      <div\n        class=\"ant-dropdown\"\n        [class.ant-dropdown-rtl]=\"dir === 'rtl'\"\n        [ngClass]=\"nzOverlayClassName\"\n        [ngStyle]=\"nzOverlayStyle\"\n        @slideMotion\n        (@slideMotion.done)=\"onAnimationEvent($event)\"\n        [@.disabled]=\"noAnimation?.nzNoAnimation\"\n        [nzNoAnimation]=\"noAnimation?.nzNoAnimation\"\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 NzDropdownMenuComponent implements AfterContentInit, OnDestroy, OnInit {\n  mouseState$ = new BehaviorSubject<boolean>(false);\n  isChildSubMenuOpen$ = this.nzMenuService.isChildSubMenuOpen$;\n  descendantMenuItemClick$ = this.nzMenuService.descendantMenuItemClick$;\n  animationStateChange$ = new EventEmitter<AnimationEvent>();\n  nzOverlayClassName: string = '';\n  nzOverlayStyle: IndexableObject = {};\n  @ViewChild(TemplateRef, { static: true }) templateRef!: TemplateRef<NzSafeAny>;\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 NzDropdownMenuComponent>(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 nzMenuService: MenuService,\n    @Optional() private directionality: Directionality,\n    @Host() @Optional() public noAnimation?: NzNoAnimationDirective\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(this.renderer.parentNode(this.elementRef.nativeElement), this.elementRef.nativeElement);\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';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\nimport { NzButtonModule } from 'ng-zorro-antd/button';\nimport { NzNoAnimationModule } from 'ng-zorro-antd/core/no-animation';\nimport { NzOutletModule } from 'ng-zorro-antd/core/outlet';\nimport { NzOverlayModule } from 'ng-zorro-antd/core/overlay';\nimport { NzIconModule } from 'ng-zorro-antd/icon';\nimport { NzMenuModule } from 'ng-zorro-antd/menu';\n\nimport { NzContextMenuServiceModule } from './context-menu.service.module';\nimport { NzDropDownADirective } from './dropdown-a.directive';\nimport { NzDropdownButtonDirective } from './dropdown-button.directive';\nimport { NzDropdownMenuComponent } from './dropdown-menu.component';\nimport { NzDropDownDirective } from './dropdown.directive';\n\n@NgModule({\n  imports: [\n    BidiModule,\n    CommonModule,\n    OverlayModule,\n    FormsModule,\n    NzButtonModule,\n    NzMenuModule,\n    NzIconModule,\n    NzNoAnimationModule,\n    PlatformModule,\n    NzOverlayModule,\n    NzContextMenuServiceModule,\n    NzOutletModule\n  ],\n  entryComponents: [NzDropdownMenuComponent],\n  declarations: [NzDropDownDirective, NzDropDownADirective, NzDropdownMenuComponent, NzDropdownButtonDirective],\n  exports: [NzMenuModule, NzDropDownDirective, NzDropDownADirective, NzDropdownMenuComponent, NzDropdownButtonDirective]\n})\nexport class NzDropDownModule {}\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, NgZone } from '@angular/core';\nimport { fromEvent, Subscription } from 'rxjs';\nimport { filter, take } from 'rxjs/operators';\n\nimport { NzContextMenuServiceModule } from './context-menu.service.module';\nimport { NzDropdownMenuComponent } from './dropdown-menu.component';\n\nconst listOfPositions = [\n  new ConnectionPositionPair({ originX: 'start', originY: 'top' }, { overlayX: 'start', overlayY: 'top' }),\n  new ConnectionPositionPair({ originX: 'start', originY: 'top' }, { overlayX: 'start', overlayY: 'bottom' }),\n  new ConnectionPositionPair({ originX: 'start', originY: 'top' }, { overlayX: 'end', overlayY: 'bottom' }),\n  new ConnectionPositionPair({ originX: 'start', originY: 'top' }, { overlayX: 'end', overlayY: 'top' })\n];\n\n@Injectable({\n  providedIn: NzContextMenuServiceModule\n})\nexport class NzContextMenuService {\n  private overlayRef: OverlayRef | null = null;\n  private closeSubscription = Subscription.EMPTY;\n\n  constructor(private ngZone: NgZone, private overlay: Overlay) {}\n\n  create($event: MouseEvent | { x: number; y: number }, nzDropdownMenuComponent: NzDropdownMenuComponent): void {\n    this.close(true);\n    const { x, y } = $event;\n    if ($event instanceof MouseEvent) {\n      $event.preventDefault();\n    }\n    const positionStrategy = this.overlay\n      .position()\n      .flexibleConnectedTo({ x, y })\n      .withPositions(listOfPositions)\n      .withTransformOriginOn('.ant-dropdown');\n    this.overlayRef = this.overlay.create({\n      positionStrategy,\n      disposeOnNavigation: true,\n      scrollStrategy: this.overlay.scrollStrategies.close()\n    });\n\n    this.closeSubscription = new Subscription();\n\n    this.closeSubscription.add(nzDropdownMenuComponent.descendantMenuItemClick$.subscribe(() => this.close()));\n\n    this.closeSubscription.add(\n      this.ngZone.runOutsideAngular(() =>\n        fromEvent<MouseEvent>(document, 'click')\n          .pipe(\n            filter(event => !!this.overlayRef && !this.overlayRef.overlayElement.contains(event.target as HTMLElement)),\n            /** handle firefox contextmenu event **/\n            filter(event => event.button !== 2),\n            take(1)\n          )\n          .subscribe(() => this.ngZone.run(() => this.close()))\n      )\n    );\n\n    this.overlayRef.attach(\n      new TemplatePortal(nzDropdownMenuComponent.templateRef, nzDropdownMenuComponent.viewContainerRef)\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"],"mappings":"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"}