{"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-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 {\n  createFlexibleConnectedPositionStrategy,\n  createOverlayRef,\n  createRepositionScrollStrategy,\n  OverlayRef\n} from '@angular/cdk/overlay';\nimport { Platform } from '@angular/cdk/platform';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport {\n  AfterViewInit,\n  booleanAttribute,\n  DestroyRef,\n  Directive,\n  ElementRef,\n  EventEmitter,\n  inject,\n  Injector,\n  Input,\n  OnChanges,\n  Output,\n  Renderer2,\n  SimpleChanges,\n  ViewContainerRef,\n  type AnimationCallbackEvent\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { BehaviorSubject, combineLatest, EMPTY, fromEvent, merge, Subject } from 'rxjs';\nimport { auditTime, distinctUntilChanged, filter, map, switchMap } from 'rxjs/operators';\n\nimport { NzConfigKey, NzConfigService, WithConfig } from 'ng-zorro-antd/core/config';\nimport {\n  getPlacementName,\n  POSITION_MAP,\n  POSITION_TYPE,\n  setConnectedPositionOffset,\n  TOOLTIP_OFFSET_MAP\n} from 'ng-zorro-antd/core/overlay';\nimport { IndexableObject } from 'ng-zorro-antd/core/types';\n\nimport { NzDropdownMenuComponent, NzPlacementType } from './dropdown-menu.component';\n\nconst NZ_CONFIG_MODULE_NAME: NzConfigKey = 'dropdown';\n\nconst listOfPositions: POSITION_TYPE[] = ['bottomLeft', 'bottomRight', 'topRight', 'topLeft'];\n\nconst normalizePlacementForClass = (p: NzPlacementType): NzDropdownMenuComponent['placement'] => {\n  // Map center placements to generic top/bottom classes for styling\n  if (p === 'topCenter') {\n    return 'top';\n  }\n  if (p === 'bottomCenter') {\n    return 'bottom';\n  }\n  return p as NzDropdownMenuComponent['placement'];\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, OnChanges {\n  public readonly nzConfigService = inject(NzConfigService);\n  private renderer = inject(Renderer2);\n  private viewContainerRef = inject(ViewContainerRef);\n  private platform = inject(Platform);\n  private destroyRef = inject(DestroyRef);\n  readonly _nzModuleName: NzConfigKey = NZ_CONFIG_MODULE_NAME;\n  public elementRef = inject(ElementRef);\n  private injector = inject(Injector);\n\n  private portal?: TemplatePortal;\n  private overlayRef: OverlayRef | null = null;\n\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({ transform: booleanAttribute }) @WithConfig() nzBackdrop = false;\n  @Input({ transform: booleanAttribute }) nzClickHide = true;\n  @Input({ transform: booleanAttribute }) nzDisabled = false;\n  @Input({ transform: booleanAttribute }) nzVisible = false;\n  @Input({ transform: booleanAttribute }) nzArrow = false;\n  @Input() nzOverlayClassName: string = '';\n  @Input() nzOverlayStyle: IndexableObject = {};\n  @Input() nzPlacement: NzPlacementType = 'bottomLeft';\n  @Output() readonly nzVisibleChange = new EventEmitter<boolean>();\n\n  constructor() {\n    this.destroyRef.onDestroy(() => {\n      this.overlayRef?.dispose();\n      this.overlayRef = null;\n    });\n  }\n\n  setDropdownMenuValue<T extends keyof NzDropdownMenuComponent>(key: T, value: NzDropdownMenuComponent[T]): void {\n    this.nzDropdownMenu?.setValue(key, value);\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(map(() => true)),\n        fromEvent(nativeElement, 'mouseleave').pipe(map(() => 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        map(() => 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          takeUntilDestroyed(this.destroyRef)\n        )\n        .subscribe(visible => {\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\n          if (visible) {\n            const positionStrategy = createFlexibleConnectedPositionStrategy(\n              this.injector,\n              this.elementRef.nativeElement\n            )\n              .withLockedPosition()\n              .withTransformOriginOn('.ant-dropdown');\n\n            // Listen for placement changes to update the menu classes (arrow position)\n            positionStrategy.positionChanges\n              .pipe(\n                filter(() => Boolean(this.overlayRef)),\n                map(change => getPlacementName(change) as NzPlacementType | undefined),\n                takeUntilDestroyed(this.destroyRef)\n              )\n              .subscribe(placement => {\n                if (placement) {\n                  this.setDropdownMenuValue('placement', normalizePlacementForClass(placement));\n                }\n              });\n\n            /** set up overlayRef **/\n            if (!this.overlayRef) {\n              /** new overlay **/\n              this.overlayRef = createOverlayRef(this.injector, {\n                positionStrategy,\n                minWidth: triggerWidth,\n                disposeOnNavigation: true,\n                hasBackdrop: this.nzBackdrop && this.nzTrigger === 'click',\n                scrollStrategy: createRepositionScrollStrategy(this.injector)\n              });\n              merge(\n                this.overlayRef.backdropClick(),\n                this.overlayRef.detachments(),\n                this.overlayRef\n                  .outsidePointerEvents()\n                  .pipe(filter(e => !this.elementRef.nativeElement.contains(e.target))),\n                this.overlayRef.keydownEvents().pipe(filter(e => e.keyCode === ESCAPE && !hasModifierKey(e)))\n              )\n                .pipe(takeUntilDestroyed(this.destroyRef))\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            const positions = [this.nzPlacement, ...listOfPositions].map(position => {\n              return this.nzArrow\n                ? setConnectedPositionOffset(POSITION_MAP[position], TOOLTIP_OFFSET_MAP[position])\n                : POSITION_MAP[position];\n            });\n            positionStrategy.withPositions(positions);\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            // Initialize arrow and placement on open\n            this.setDropdownMenuValue('nzArrow', this.nzArrow);\n            this.setDropdownMenuValue('placement', normalizePlacementForClass(this.nzPlacement));\n            this.overlayRef.attach(this.portal);\n          } else {\n            /** detach overlayRef if needed **/\n            this.overlayRef?.detach();\n          }\n        });\n\n      this.nzDropdownMenu!.animationStateChange$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(\n        (event: AnimationCallbackEvent) => {\n          this.overlayRef?.dispose();\n          this.overlayRef = null;\n          event.animationComplete();\n        }\n      );\n    }\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    const { nzVisible, nzDisabled, nzOverlayClassName, nzOverlayStyle, nzTrigger, nzArrow, nzPlacement } = 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    if (nzArrow) {\n      this.setDropdownMenuValue('nzArrow', this.nzArrow);\n    }\n    if (nzPlacement) {\n      this.setDropdownMenuValue('placement', normalizePlacementForClass(this.nzPlacement));\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","/**\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, Directionality } from '@angular/cdk/bidi';\nimport {\n  AfterContentInit,\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  DestroyRef,\n  ElementRef,\n  EventEmitter,\n  OnInit,\n  Renderer2,\n  TemplateRef,\n  ViewChild,\n  ViewContainerRef,\n  ViewEncapsulation,\n  inject,\n  type AnimationCallbackEvent\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { BehaviorSubject } from 'rxjs';\n\nimport { NzNoAnimationDirective, slideAnimationEnter, slideAnimationLeave } from 'ng-zorro-antd/core/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  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        [class.ant-dropdown-show-arrow]=\"nzArrow\"\n        [class.ant-dropdown-placement-bottomLeft]=\"placement === 'bottomLeft'\"\n        [class.ant-dropdown-placement-bottomRight]=\"placement === 'bottomRight'\"\n        [class.ant-dropdown-placement-bottom]=\"placement === 'bottom'\"\n        [class.ant-dropdown-placement-topLeft]=\"placement === 'topLeft'\"\n        [class.ant-dropdown-placement-topRight]=\"placement === 'topRight'\"\n        [class.ant-dropdown-placement-top]=\"placement === 'top'\"\n        [class]=\"nzOverlayClassName\"\n        [style]=\"nzOverlayStyle\"\n        [animate.enter]=\"dropdownAnimationEnter()\"\n        [animate.leave]=\"dropdownAnimationLeave()\"\n        (animate.leave)=\"onAnimationEvent($event)\"\n        [nzNoAnimation]=\"!!noAnimation?.nzNoAnimation?.()\"\n        (mouseenter)=\"setMouseState(true)\"\n        (mouseleave)=\"setMouseState(false)\"\n      >\n        @if (nzArrow) {\n          <div class=\"ant-dropdown-arrow\"></div>\n        }\n        <ng-content />\n      </div>\n    </ng-template>\n  `,\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  imports: [NzNoAnimationDirective]\n})\nexport class NzDropdownMenuComponent implements AfterContentInit, OnInit {\n  private cdr = inject(ChangeDetectorRef);\n  private elementRef = inject(ElementRef);\n  private renderer = inject(Renderer2);\n  public viewContainerRef = inject(ViewContainerRef);\n  private directionality = inject(Directionality);\n  private destroyRef = inject(DestroyRef);\n  noAnimation = inject(NzNoAnimationDirective, { host: true, optional: true });\n  public nzMenuService = inject(MenuService);\n\n  isChildSubMenuOpen$ = this.nzMenuService.isChildSubMenuOpen$;\n  descendantMenuItemClick$ = this.nzMenuService.descendantMenuItemClick$;\n  mouseState$ = new BehaviorSubject<boolean>(false);\n  animationStateChange$ = new EventEmitter<AnimationCallbackEvent>();\n  @ViewChild(TemplateRef, { static: true }) templateRef!: TemplateRef<NzSafeAny>;\n\n  nzOverlayClassName: string = '';\n  nzOverlayStyle: IndexableObject = {};\n  nzArrow: boolean = false;\n  placement: NzPlacementType | 'bottom' | 'top' = 'bottomLeft';\n  dir: Direction = 'ltr';\n\n  protected readonly dropdownAnimationEnter = slideAnimationEnter();\n  protected readonly dropdownAnimationLeave = slideAnimationLeave();\n\n  onAnimationEvent(event: AnimationCallbackEvent): void {\n    const element = event.target as HTMLElement;\n    const onAnimationEnd = (): void => {\n      element.removeEventListener('animationend', onAnimationEnd);\n      this.animationStateChange$.emit(event);\n    };\n    element.addEventListener('animationend', onAnimationEnd);\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  ngOnInit(): void {\n    this.directionality.change?.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(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","/**\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 { NzMenuModule } from 'ng-zorro-antd/menu';\n\nimport { NzContextMenuServiceModule } from './context-menu.service.module';\nimport { NzDropdownADirective } from './dropdown-a.directive';\nimport { NzDropdownMenuComponent } from './dropdown-menu.component';\nimport { NzDropdownDirective } from './dropdown.directive';\n\n@NgModule({\n  imports: [NzDropdownDirective, NzDropdownADirective, NzDropdownMenuComponent, NzContextMenuServiceModule],\n  exports: [NzMenuModule, NzDropdownDirective, NzDropdownADirective, NzDropdownMenuComponent]\n})\nexport class NzDropdownModule {}\n\n/**\n * @deprecated Use {@link NzDropdownModule} instead.\n * This will be removed in v22.0.0.\n */\nexport const NzDropDownModule = 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 {\n  ConnectionPositionPair,\n  createCloseScrollStrategy,\n  createFlexibleConnectedPositionStrategy,\n  createOverlayRef,\n  OverlayRef\n} from '@angular/cdk/overlay';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport { EmbeddedViewRef, inject, Injectable, Injector, NgZone } from '@angular/core';\nimport { merge, Subscription } from 'rxjs';\nimport { filter, first } from 'rxjs/operators';\n\nimport { NzSafeAny } from 'ng-zorro-antd/core/types';\nimport { fromEventOutsideAngular } from 'ng-zorro-antd/core/util';\n\nimport { NzContextMenuServiceModule } from './context-menu.service.module';\nimport { NzDropdownMenuComponent } from './dropdown-menu.component';\n\nconst LIST_OF_POSITIONS = [\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 ngZone = inject(NgZone);\n  private injector = inject(Injector);\n  private overlayRef: OverlayRef | null = null;\n  private closeSubscription = Subscription.EMPTY;\n\n  create(\n    $event: MouseEvent | { x: number; y: number },\n    nzDropdownMenuComponent: NzDropdownMenuComponent\n  ): EmbeddedViewRef<NzSafeAny> {\n    this.close(true);\n    const { x, y } = $event;\n    if ($event instanceof MouseEvent) {\n      $event.preventDefault();\n    }\n\n    this.overlayRef = createOverlayRef(this.injector, {\n      positionStrategy: createFlexibleConnectedPositionStrategy(this.injector, { x, y })\n        .withPositions(LIST_OF_POSITIONS)\n        .withTransformOriginOn('.ant-dropdown'),\n      disposeOnNavigation: true,\n      scrollStrategy: createCloseScrollStrategy(this.injector)\n    });\n\n    this.closeSubscription = new Subscription();\n\n    this.closeSubscription.add(nzDropdownMenuComponent.descendantMenuItemClick$.subscribe(() => this.close()));\n\n    this.closeSubscription.add(\n      merge(\n        fromEventOutsideAngular<MouseEvent>(document, 'click').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        ),\n        fromEventOutsideAngular<KeyboardEvent>(document, 'keydown').pipe(filter(event => event.key === 'Escape'))\n      )\n        .pipe(first())\n        .subscribe(() => this.ngZone.run(() => this.close()))\n    );\n\n    return 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-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":[],"mappings":"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"}