{"version":3,"file":"ng-nest-ui-dropdown.mjs","sources":["../../../../lib/ng-nest/ui/dropdown/dropdown.property.ts","../../../../lib/ng-nest/ui/dropdown/dropdown-portal.component.ts","../../../../lib/ng-nest/ui/dropdown/dropdown-portal.component.html","../../../../lib/ng-nest/ui/dropdown/dropdown.component.ts","../../../../lib/ng-nest/ui/dropdown/dropdown.component.html","../../../../lib/ng-nest/ui/dropdown/dropdown.module.ts","../../../../lib/ng-nest/ui/dropdown/ng-nest-ui-dropdown.ts"],"sourcesContent":["import {\r\n  XBoolean,\r\n  XPlacement,\r\n  XSize,\r\n  XPropertyFunction,\r\n  XToDataArray,\r\n  XDataArray,\r\n  XToBoolean,\r\n  XToCssPixelValue,\r\n  XNumber,\r\n  XToNumber,\r\n  XTrigger\r\n} from '@ng-nest/ui/core';\r\nimport { XListNode } from '@ng-nest/ui/list';\r\nimport { Component, input, model, output } from '@angular/core';\r\n\r\n/**\r\n * Dropdown\r\n * @selector x-dropdown\r\n * @decorator component\r\n */\r\nexport const XDropdownPrefix = 'x-dropdown';\r\nconst X_DROPDOWN_CONFIG_NAME = 'dropdown';\r\n\r\n/**\r\n * Dropdown Property\r\n */\r\n@Component({ selector: `${XDropdownPrefix}-property`, template: '' })\r\nexport class XDropdownProperty extends XPropertyFunction(X_DROPDOWN_CONFIG_NAME) {\r\n  /**\r\n   * @zh_CN 节点数据\r\n   * @en_US Node data\r\n   */\r\n  readonly data = input<XDropdownNode[], XDataArray<XDropdownNode>>([], { transform: XToDataArray });\r\n  /**\r\n   * @zh_CN 触发方式\r\n   * @en_US Trigger method\r\n   */\r\n  readonly trigger = input<XDropdownTrigger>(this.config?.trigger ?? 'hover');\r\n  /**\r\n   * @zh_CN 展示位置\r\n   * @en_US Placement\r\n   */\r\n  readonly placement = input<XPlacement>(this.config?.placement ?? 'bottom-start');\r\n  /**\r\n   * @zh_CN 禁用\r\n   * @en_US Disabled\r\n   */\r\n  readonly disabled = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n  /**\r\n   * @zh_CN 节点中已经包含子节点数据\r\n   * @en_US The node already contains child node data\r\n   */\r\n  readonly children = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n  /**\r\n   * @zh_CN 弹框的最小宽度\r\n   * @en_US Portal min-width\r\n   */\r\n  readonly portalMinWidth = input<string, XNumber>('', { transform: XToCssPixelValue });\r\n  /**\r\n   * @zh_CN 弹框的最大宽度\r\n   * @en_US Portal max-width\r\n   */\r\n  readonly portalMaxWidth = input<string, XNumber>('', { transform: XToCssPixelValue });\r\n  /**\r\n   * @zh_CN 弹框的最小高度\r\n   * @en_US Portal min-height\r\n   */\r\n  readonly portalMinHeight = input<string, XNumber>('', { transform: XToCssPixelValue });\r\n  /**\r\n   * @zh_CN 弹框的最大高度\r\n   * @en_US Portal max-height\r\n   */\r\n  readonly portalMaxHeight = input<string, XNumber>('', { transform: XToCssPixelValue });\r\n  /**\r\n   * @zh_CN hover 延迟触发时间，只有 trigger 为 'hover' 生效\r\n   * @en_US Hover delay trigger time, only trigger is the 'hover'\r\n   */\r\n  readonly hoverDelay = input<number, XNumber>(200, { transform: XToNumber });\r\n  /**\r\n   * @zh_CN visible 参数控制显示/隐藏\r\n   * @en_US visible parameter controls display/hide\r\n   */\r\n  readonly visible = model<boolean | null>(null);\r\n  /**\r\n   * @zh_CN 当前激活的菜单\r\n   * @en_US The currently activated menu\r\n   */\r\n  readonly activatedId = model<string | number>();\r\n  /**\r\n   * @zh_CN 尺寸\r\n   * @en_US Size\r\n   */\r\n  readonly size = input<XSize>(this.config?.size ?? 'medium');\r\n  /**\r\n   * @zh_CN 节点点击事件\r\n   * @en_US Node click event\r\n   */\r\n  readonly nodeClick = output<XDropdownNode>();\r\n}\r\n\r\n/**\r\n * @zh_CN Dropdown 数据对象\r\n * @en_US Dropdown data object\r\n */\r\nexport interface XDropdownNode extends XListNode {}\r\n\r\n/**\r\n * @zh_CN 显示方式\r\n * @en_US Display method\r\n */\r\nexport type XDropdownTrigger = XTrigger;\r\n\r\n/**\r\n * Dropdown Portal\r\n * @selector x-dropdown-portal\r\n * @decorator component\r\n */\r\nexport const XDropdownPortalPrefix = 'x-dropdown-portal';\r\n","import {\r\n  Component,\r\n  ViewEncapsulation,\r\n  ChangeDetectionStrategy,\r\n  HostListener,\r\n  ViewContainerRef,\r\n  HostBinding,\r\n  input,\r\n  output,\r\n  model,\r\n  signal,\r\n  inject,\r\n  ComponentRef,\r\n  effect,\r\n  DestroyRef,\r\n  viewChild,\r\n  computed\r\n} from '@angular/core';\r\nimport { XDropdownPortalPrefix, XDropdownNode, XDropdownTrigger } from './dropdown.property';\r\nimport { XPortalConnectedPosition, XPortalOverlayRef, XPortalService } from '@ng-nest/ui/portal';\r\nimport { XPositionTopBottom, XSize } from '@ng-nest/ui/core';\r\nimport { Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport {\r\n  ConnectedOverlayPositionChange,\r\n  FlexibleConnectedPositionStrategy,\r\n  Overlay,\r\n  OverlayConfig,\r\n  OverlayRef\r\n} from '@angular/cdk/overlay';\r\nimport { XListComponent } from '@ng-nest/ui/list';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { LEFT_ARROW, RIGHT_ARROW } from '@angular/cdk/keycodes';\r\n\r\n@Component({\r\n  selector: `${XDropdownPortalPrefix}`,\r\n  imports: [FormsModule, XListComponent],\r\n  templateUrl: './dropdown-portal.component.html',\r\n  styleUrls: ['./dropdown-portal.component.scss'],\r\n  encapsulation: ViewEncapsulation.None,\r\n  changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class XDropdownPortalComponent {\r\n  @HostBinding('animate.enter') animateEnter = 'x-connect-enter';\r\n  @HostBinding('animate.leave') animateLeave = 'x-connect-leave';\r\n\r\n  @HostListener('animationend') done() {\r\n    if (this.destroy()) return;\r\n    this.animating.emit(false);\r\n  }\r\n  @HostListener('animationstart') start() {\r\n    if (this.destroy()) return;\r\n    this.animating.emit(true);\r\n  }\r\n\r\n  data = input<XDropdownNode[]>([]);\r\n  trigger = input<XDropdownTrigger>('hover');\r\n  placement = input<XPositionTopBottom>();\r\n  size = input<XSize>('medium');\r\n  minWidth = input<string>();\r\n  maxWidth = input<string>();\r\n  minHeight = input<string>();\r\n  maxHeight = input<string>();\r\n  level = input(0);\r\n  parentPortalComponent = input<XDropdownPortalComponent>();\r\n  isKeyboardControlled = model(true);\r\n  closed = output();\r\n  animating = output<boolean>();\r\n  nodeClick = output<XDropdownNode>();\r\n  portalHover = output<boolean>();\r\n  portal!: XPortalOverlayRef<XDropdownPortalComponent>;\r\n  node = signal<XDropdownNode | null>(null);\r\n  timeoutHide: any;\r\n\r\n  list = viewChild.required<XListComponent>('list');\r\n  portalPlacement = signal<XPositionTopBottom | null>(null);\r\n  childAnimating = signal(false);\r\n  activatedId = model<any>();\r\n  destroy = signal(false);\r\n  closeSubject!: Subject<void>;\r\n  keydownSubject!: Subject<KeyboardEvent>;\r\n  active = signal(0);\r\n  private unSubject = new Subject<void>();\r\n  private destroyRef = inject(DestroyRef);\r\n\r\n  activatedIdComputed = computed(() => {\r\n    const path = this.findPathById(this.data(), this.activatedId());\r\n    if (path) {\r\n      for (let node of path) {\r\n        const nd = this.data().find((x) => x.id === node.id);\r\n        if (nd) return nd.id;\r\n      }\r\n    }\r\n    return null;\r\n  });\r\n\r\n  @HostListener('mouseenter') mouseenter() {\r\n    this.portalHover.emit(true);\r\n  }\r\n\r\n  @HostListener('mouseleave') mouseleave() {\r\n    !this.portalAttached() && this.portalHover.emit(false);\r\n  }\r\n\r\n  portalService = inject(XPortalService);\r\n  overlay = inject(Overlay);\r\n  viewContainerRef = inject(ViewContainerRef);\r\n  portalComponent = signal<ComponentRef<XDropdownPortalComponent> | null>(null);\r\n  portalOverlayRef = signal<OverlayRef | null>(null);\r\n\r\n  constructor() {\r\n    effect(() => this.portalComponent()?.setInput('data', this.node()?.children));\r\n    effect(() => this.portalComponent()?.setInput('trigger', this.trigger()));\r\n    effect(() => this.portalComponent()?.setInput('level', this.level() + 1));\r\n    effect(() => this.portalComponent()?.setInput('minWidth', this.minWidth()));\r\n    effect(() => this.portalComponent()?.setInput('maxWidth', this.maxWidth()));\r\n    effect(() => this.portalComponent()?.setInput('minHeight', this.minHeight()));\r\n    effect(() => this.portalComponent()?.setInput('maxHeight', this.maxHeight()));\r\n    effect(() => this.portalComponent()?.setInput('size', this.size()));\r\n    effect(() => this.portalComponent()?.setInput('placement', this.portalPlacement()));\r\n    effect(() => this.portalComponent()?.setInput('activatedId', this.activatedId()));\r\n    effect(() => this.portalComponent()?.setInput('parentPortalComponent', this));\r\n  }\r\n\r\n  ngOnInit() {\r\n    this.closeSubject.subscribe(() => {\r\n      this.data() && this.data()!.length > 0 && this.list().setUnActive(this.active());\r\n    });\r\n    this.keydownSubject.pipe(takeUntil(this.unSubject)).subscribe((x) => {\r\n      if (!this.isKeyboardControlled()) return;\r\n      const keyCode = x.keyCode;\r\n      const isRightArrow = [RIGHT_ARROW].includes(keyCode);\r\n      const isLeftArrow = [LEFT_ARROW].includes(keyCode);\r\n      if (isRightArrow) {\r\n        const item = this.list().keyManager.activeItem!;\r\n        if (item?.leaf()) {\r\n          const node = item.node()!;\r\n          node.event = x;\r\n          node.component = item;\r\n          this.isKeyboardControlled.set(false);\r\n          this.onNodeClick(node);\r\n        }\r\n      }\r\n      if (isLeftArrow && this.level() > 0) {\r\n        this.parentPortalComponent()?.isKeyboardControlled.set(true);\r\n        this.parentPortalComponent()?.closePortal();\r\n      }\r\n      this.data() && this.data()!.length > 0 && this.list().keydown(x);\r\n    });\r\n    this.destroyRef.onDestroy(() => {\r\n      this.destroy.set(true);\r\n      this.unSubject.next();\r\n      this.unSubject.complete();\r\n    });\r\n  }\r\n\r\n  ngAfterViewInit() {\r\n    this.list().keyManager.setFirstItemActive();\r\n  }\r\n\r\n  onNodeClick(node: XDropdownNode) {\r\n    this.nodeClick.emit(node);\r\n    if (!node.leaf) {\r\n      this.activatedId.set(node.id);\r\n      this.closeSubject.next();\r\n    } else {\r\n      if (node.disabled || this.childAnimating()) return;\r\n      this.showPortal(node);\r\n    }\r\n  }\r\n\r\n  portalAttached() {\r\n    return this.portalOverlayRef()?.hasAttached();\r\n  }\r\n\r\n  closePortal() {\r\n    if (this.portalAttached()) {\r\n      this.portalOverlayRef()?.dispose();\r\n      return true;\r\n    }\r\n    return false;\r\n  }\r\n\r\n  createPortal() {\r\n    const config: OverlayConfig = {\r\n      backdropClass: '',\r\n      panelClass: 'x-dropdown-portal-child',\r\n      positionStrategy: this.setPlacement(),\r\n      scrollStrategy: this.overlay.scrollStrategies.reposition(),\r\n      minWidth: this.minWidth()\r\n    };\r\n    this.setPosition(config);\r\n    this.portal = this.portalService.attach({\r\n      content: XDropdownPortalComponent,\r\n      viewContainerRef: this.viewContainerRef,\r\n      overlayConfig: config\r\n    });\r\n    this.setInstance();\r\n  }\r\n\r\n  setPosition(config: OverlayConfig) {\r\n    let position = config.positionStrategy as FlexibleConnectedPositionStrategy;\r\n    position.positionChanges.pipe(takeUntil(this.unSubject)).subscribe((pos: ConnectedOverlayPositionChange) => {\r\n      const place = XPortalConnectedPosition.get(pos.connectionPair) as XPositionTopBottom;\r\n      if (place !== this.portalPlacement()) {\r\n        this.portalPlacement.set(place);\r\n        this.portalOverlayRef()?.updatePosition();\r\n      }\r\n    });\r\n  }\r\n\r\n  setInstance() {\r\n    let { componentRef, overlayRef } = this.portal;\r\n    if (!componentRef || !overlayRef) return;\r\n    this.portalComponent.set(componentRef);\r\n    this.portalOverlayRef.set(overlayRef);\r\n    Object.assign(componentRef.instance, {\r\n      closeSubject: this.closeSubject,\r\n      keydownSubject: this.keydownSubject,\r\n      parantPortal: this\r\n    });\r\n    const { closed, animating, nodeClick, portalHover, activatedId } = componentRef.instance;\r\n    closed.subscribe(() => this.closePortal());\r\n    animating.subscribe((ing) => this.childAnimating.set(ing));\r\n    nodeClick.subscribe((node) => this.nodeClick.emit(node));\r\n    activatedId.subscribe((id) => this.activatedId.set(id));\r\n    portalHover.subscribe((hover) => this.hover(hover));\r\n  }\r\n\r\n  hover(hover: boolean) {\r\n    if (this.timeoutHide && hover) {\r\n      clearTimeout(this.timeoutHide);\r\n    } else {\r\n      this.portalHover.emit(false);\r\n      this.onLeave();\r\n    }\r\n  }\r\n\r\n  setPlacement() {\r\n    return this.portalService.setPlacement({\r\n      elementRef: this.node()?.component?.getElementRef(),\r\n      placement: ['right-start', 'right-end', 'left-start', 'left-end'],\r\n      transformOriginOn: 'x-dropdown-portal'\r\n    });\r\n  }\r\n\r\n  showPortal(node: XDropdownNode) {\r\n    if (this.portalAttached() && this.node()?.id !== node.id) {\r\n      this.portalOverlayRef()?.dispose();\r\n    }\r\n    this.node.set(node);\r\n    if (!this.portalAttached()) {\r\n      this.createPortal();\r\n    }\r\n  }\r\n\r\n  onEnter(node: XDropdownNode) {\r\n    if (!node.leaf || node.disabled || this.trigger() === 'click' || this.childAnimating()) return;\r\n    if (this.timeoutHide) clearTimeout(this.timeoutHide);\r\n    this.showPortal(node);\r\n  }\r\n\r\n  onLeave() {\r\n    if (this.trigger() !== 'hover') return;\r\n    if (this.portalAttached()) {\r\n      this.timeoutHide = setTimeout(() => {\r\n        this.closePortal();\r\n      });\r\n    }\r\n  }\r\n\r\n  onActive(num: number) {\r\n    this.active.set(num);\r\n  }\r\n\r\n  onTabOut() {\r\n    this.closeSubject.next();\r\n  }\r\n\r\n  findPathById(nodes: XDropdownNode[], id: number, currentPath: XDropdownNode[] = []): XDropdownNode[] | null {\r\n    for (const node of nodes) {\r\n      const newPath = [...currentPath, node];\r\n      if (node.id === id) {\r\n        return newPath;\r\n      }\r\n      if (node.children && node.children.length > 0) {\r\n        const result = this.findPathById(node.children, id, newPath);\r\n        if (result) {\r\n          return result;\r\n        }\r\n      }\r\n    }\r\n    return null;\r\n  }\r\n}\r\n","<div\r\n  #dropdownPortal\r\n  class=\"x-dropdown-portal\"\r\n  [style.minWidth]=\"minWidth()\"\r\n  [style.maxWidth]=\"maxWidth()\"\r\n  [style.minHeight]=\"minHeight()\"\r\n  [style.maxHeight]=\"maxHeight()\"\r\n>\r\n  <x-list\r\n    #list\r\n    [data]=\"data()\"\r\n    [ngModel]=\"activatedIdComputed()\"\r\n    (nodeClick)=\"onNodeClick($event)\"\r\n    (keyManagerChange)=\"onActive($event)\"\r\n    (keyManagerTabOut)=\"onTabOut()\"\r\n    (nodeMouseenter)=\"onEnter($event)\"\r\n    (nodeMouseleave)=\"onLeave()\"\r\n    [isKeyboardControlled]=\"isKeyboardControlled()\"\r\n    [inPortal]=\"true\"\r\n    [size]=\"size()\"\r\n  ></x-list>\r\n</div>\r\n","import {\r\n  Component,\r\n  ViewEncapsulation,\r\n  ElementRef,\r\n  ChangeDetectionStrategy,\r\n  ViewContainerRef,\r\n  inject,\r\n  OnDestroy,\r\n  OnInit,\r\n  signal,\r\n  computed,\r\n  viewChild,\r\n  ComponentRef,\r\n  effect,\r\n  SimpleChanges\r\n} from '@angular/core';\r\nimport { XDropdownPrefix, XDropdownNode, XDropdownProperty } from './dropdown.property';\r\nimport {\r\n  XIsEmpty,\r\n  XHasChildren,\r\n  XGetChildren,\r\n  XPositionTopBottom,\r\n  XPlacement,\r\n  XIsChange,\r\n  XIsNull\r\n} from '@ng-nest/ui/core';\r\nimport { of, Subject } from 'rxjs';\r\nimport { XPortalConnectedPosition, XPortalOverlayRef, XPortalService } from '@ng-nest/ui/portal';\r\nimport { XDropdownPortalComponent } from './dropdown-portal.component';\r\nimport { debounceTime, delay, takeUntil, throttleTime } from 'rxjs/operators';\r\nimport {\r\n  ConnectedOverlayPositionChange,\r\n  FlexibleConnectedPositionStrategy,\r\n  Overlay,\r\n  OverlayConfig,\r\n  OverlayRef\r\n} from '@angular/cdk/overlay';\r\nimport { DOWN_ARROW, ESCAPE } from '@angular/cdk/keycodes';\r\n\r\n@Component({\r\n  selector: `${XDropdownPrefix}`,\r\n  imports: [],\r\n  templateUrl: './dropdown.component.html',\r\n  styleUrls: ['./dropdown.component.scss'],\r\n  encapsulation: ViewEncapsulation.None,\r\n  changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class XDropdownComponent extends XDropdownProperty implements OnInit, OnDestroy {\r\n  private unSubject = new Subject<void>();\r\n  private portalService = inject(XPortalService);\r\n  private viewContainerRef = inject(ViewContainerRef);\r\n  private overlay = inject(Overlay);\r\n  dropdown = viewChild.required<ElementRef<HTMLElement>>('dropdown');\r\n  nodes = computed(() => {\r\n    const data = this.data();\r\n    if (!this.children()) {\r\n      return data.filter((y) => XIsEmpty(y.pid)).map((y) => XGetChildren<XDropdownNode>(data, y, 0));\r\n    }\r\n    return XHasChildren(data, 0);\r\n  });\r\n  portal!: XPortalOverlayRef<XDropdownPortalComponent>;\r\n  timeoutHide: any;\r\n  animating = signal(false);\r\n  visibleClass = signal(false);\r\n  outsideClick = signal(false);\r\n  isClickNodeLeaf = signal(false);\r\n  minWidth = signal<string>('0px');\r\n  hoverDelayUnsub = new Subject<void>();\r\n  closeSubject: Subject<void> = new Subject();\r\n  keydownSubject: Subject<KeyboardEvent> = new Subject();\r\n  isNullVisible = signal(false);\r\n\r\n  private realPlacement = signal<XPlacement | null>(null);\r\n  portalComponent = signal<ComponentRef<XDropdownPortalComponent> | null>(null);\r\n  portalOverlayRef = signal<OverlayRef | null>(null);\r\n\r\n  constructor() {\r\n    super();\r\n    effect(() => this.portalComponent()?.setInput('data', this.nodes()));\r\n    effect(() => this.portalComponent()?.setInput('trigger', this.trigger()));\r\n    effect(() => this.portalComponent()?.setInput('minWidth', this.minWidth()));\r\n    effect(() => this.portalComponent()?.setInput('maxWidth', this.portalMaxWidth()));\r\n    effect(() => this.portalComponent()?.setInput('minHeight', this.portalMinHeight()));\r\n    effect(() => this.portalComponent()?.setInput('maxHeight', this.portalMaxHeight()));\r\n    effect(() => this.portalComponent()?.setInput('activatedId', this.activatedId()));\r\n    effect(() => this.portalComponent()?.setInput('size', this.size()));\r\n  }\r\n\r\n  ngOnInit() {\r\n    this.setSubject();\r\n    this.isNullVisible.set(XIsNull(this.visible()));\r\n  }\r\n\r\n  ngOnChanges(changes: SimpleChanges) {\r\n    const { visible } = changes;\r\n    XIsChange(visible) && this.setVisible();\r\n  }\r\n\r\n  ngOnDestroy(): void {\r\n    this.unSubject.next();\r\n    this.unSubject.complete();\r\n    this.hoverDelayUnsub.next();\r\n    this.hoverDelayUnsub.complete();\r\n  }\r\n\r\n  setVisible() {\r\n    if (this.disabled() || this.animating()) return;\r\n    if (this.visible()) {\r\n      if (this.portalAttached()) {\r\n        this.closeSubject.next();\r\n        return;\r\n      }\r\n      this.createPortal();\r\n    } else {\r\n      this.closePortal();\r\n    }\r\n  }\r\n\r\n  setSubject() {\r\n    this.closeSubject.pipe(takeUntil(this.unSubject)).subscribe(() => {\r\n      this.closePortal();\r\n    });\r\n    this.keydownSubject.pipe(throttleTime(10), takeUntil(this.unSubject)).subscribe((x) => {\r\n      const keyCode = x.keyCode;\r\n      if (this.portalAttached() && [ESCAPE].includes(keyCode)) {\r\n        this.closeSubject.next();\r\n      }\r\n      if (!this.portalAttached() && [DOWN_ARROW].includes(keyCode)) {\r\n        if (this.disabled()) return;\r\n        this.createPortal();\r\n      }\r\n    });\r\n  }\r\n\r\n  onEnter() {\r\n    if (!this.isNullVisible()) return;\r\n    of(true)\r\n      .pipe(delay(this.hoverDelay()), takeUntil(this.hoverDelayUnsub))\r\n      .subscribe(() => {\r\n        if (this.disabled() || this.trigger() === 'click') return;\r\n        if (this.timeoutHide) {\r\n          clearTimeout(this.timeoutHide);\r\n          this.timeoutHide = null;\r\n        }\r\n        if (!this.portal || (this.portal && !this.portalOverlayRef()?.hasAttached())) {\r\n          this.createPortal();\r\n        }\r\n      });\r\n  }\r\n\r\n  onLeave() {\r\n    if (!this.isNullVisible()) return;\r\n    this.hoverDelayUnsub.next();\r\n    if (this.disabled() || this.trigger() === 'click') return;\r\n    if (this.portalOverlayRef()?.hasAttached()) {\r\n      this.timeoutHide = setTimeout(() => {\r\n        this.closePortal();\r\n      });\r\n    }\r\n  }\r\n\r\n  onClickShow() {\r\n    if (this.disabled() || this.trigger() === 'hover' || this.animating()) return;\r\n    if (this.trigger() === 'click' && this.portalAttached()) {\r\n      this.closeSubject.next();\r\n      return;\r\n    }\r\n    this.createPortal();\r\n  }\r\n\r\n  portalAttached() {\r\n    return this.portalOverlayRef()?.hasAttached();\r\n  }\r\n\r\n  closePortal() {\r\n    if (this.portalAttached()) {\r\n      this.portalOverlayRef()?.dispose();\r\n      this.visibleClass.set(false);\r\n      return true;\r\n    }\r\n    return false;\r\n  }\r\n\r\n  createPortal() {\r\n    this.visibleClass.set(true);\r\n    let box = this.dropdown().nativeElement.getBoundingClientRect();\r\n    this.minWidth.set(this.portalMinWidth() ? this.portalMinWidth() : `${box.width}px`);\r\n    const config: OverlayConfig = {\r\n      backdropClass: '',\r\n      positionStrategy: this.setPlacement(),\r\n      scrollStrategy: this.overlay.scrollStrategies.reposition(),\r\n      minWidth: this.minWidth()\r\n    };\r\n    this.setPosition(config);\r\n    this.portal = this.portalService.attach({\r\n      content: XDropdownPortalComponent,\r\n      viewContainerRef: this.viewContainerRef,\r\n      overlayConfig: config\r\n    });\r\n\r\n    if (this.trigger() === 'click') {\r\n      this.portal.overlayRef\r\n        ?.outsidePointerEvents()\r\n        .pipe(debounceTime(30), takeUntil(this.unSubject))\r\n        .subscribe(() => {\r\n          if (!this.isClickNodeLeaf()) {\r\n            this.closeSubject.next();\r\n          }\r\n        });\r\n    }\r\n\r\n    this.setInstance();\r\n  }\r\n\r\n  setPosition(config: OverlayConfig) {\r\n    let position = config.positionStrategy as FlexibleConnectedPositionStrategy;\r\n    position.positionChanges.pipe(takeUntil(this.unSubject)).subscribe((pos: ConnectedOverlayPositionChange) => {\r\n      const place = XPortalConnectedPosition.get(pos.connectionPair) as XPositionTopBottom;\r\n      if (place !== this.realPlacement()) {\r\n        this.realPlacement.set(place);\r\n        this.portalOverlayRef()?.updatePosition();\r\n      }\r\n    });\r\n  }\r\n\r\n  setInstance() {\r\n    let { componentRef, overlayRef } = this.portal;\r\n    if (!componentRef || !overlayRef) return;\r\n    this.portalComponent.set(componentRef);\r\n    this.portalOverlayRef.set(overlayRef);\r\n    this.realPlacement.set(this.placement());\r\n    Object.assign(componentRef.instance, {\r\n      closeSubject: this.closeSubject,\r\n      keydownSubject: this.keydownSubject\r\n    });\r\n    const { closed, animating, nodeClick, portalHover, activatedId } = componentRef.instance;\r\n    closed.subscribe(() => this.closeSubject.next());\r\n    animating.subscribe((ing) => this.animating.set(ing));\r\n    nodeClick.subscribe((node) => {\r\n      this.isClickNodeLeaf.set(node.leaf!);\r\n      this.nodeClick.emit(node);\r\n    });\r\n    activatedId.subscribe((id) => this.activatedId.set(id));\r\n    portalHover.subscribe((hover) => this.portalHover(hover));\r\n  }\r\n\r\n  portalHover(hover: boolean) {\r\n    if (this.timeoutHide && hover) {\r\n      clearTimeout(this.timeoutHide);\r\n    } else {\r\n      this.onLeave();\r\n    }\r\n  }\r\n\r\n  onKeydown($event: KeyboardEvent) {\r\n    this.keydownSubject.next($event);\r\n  }\r\n\r\n  setPlacement() {\r\n    return this.portalService.setPlacement({\r\n      elementRef: this.dropdown(),\r\n      placement: [this.placement(), 'bottom-start', 'top-start', 'bottom-end', 'top-end'],\r\n      transformOriginOn: 'x-dropdown-portal'\r\n    });\r\n  }\r\n}\r\n","<div\r\n  #dropdown\r\n  class=\"x-dropdown\"\r\n  [class.x-visible]=\"visibleClass()\"\r\n  (mouseenter)=\"onEnter()\"\r\n  (mouseleave)=\"onLeave()\"\r\n  (click)=\"onClickShow()\"\r\n  (keydown)=\"onKeydown($event)\"\r\n  tabindex=\"-1\"\r\n>\r\n  <ng-content></ng-content>\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { XDropdownComponent } from './dropdown.component';\r\n@NgModule({\r\n  imports: [XDropdownComponent],\r\n  exports: [XDropdownComponent]\r\n})\r\nexport class XDropdownModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}