{"version":3,"file":"ng-devui-dropdown.mjs","sources":["../../devui/dropdown/dropdown-item.directive.ts","../../devui/dropdown/dropdown.service.ts","../../devui/dropdown/dropdown.directive.ts","../../devui/dropdown/dropdown-menu.directive.ts","../../devui/dropdown/dropdown-toggle.directive.ts","../../devui/dropdown/dropdown.component.ts","../../devui/dropdown/dropdown.module.ts","../../devui/dropdown/ng-devui-dropdown.ts"],"sourcesContent":["import { Directive, ElementRef, HostBinding, Input, OnChanges, Renderer2, SimpleChanges } from '@angular/core';\r\n\r\n@Directive({\r\n  selector: '[dDropDownMenuItem]',\r\n  exportAs: 'd-dropdown-menu-item',\r\n})\r\nexport class DropDownMenuItemDirective implements OnChanges {\r\n  @Input() disabled = false;\r\n  @HostBinding('class.devui-dropdown-item') itemClass = true;\r\n\r\n  constructor(private el: ElementRef, private render: Renderer2) {}\r\n\r\n  ngOnChanges(changes: SimpleChanges): void {\r\n    if (changes.disabled) {\r\n      if (this.disabled) {\r\n        this.render.setStyle(this.el.nativeElement, 'pointer-events', 'none');\r\n      } else {\r\n        this.render.removeStyle(this.el.nativeElement, 'pointer-events');\r\n      }\r\n    }\r\n  }\r\n}\r\n","import { DOCUMENT } from '@angular/common';\r\nimport { Inject, Injectable } from '@angular/core';\r\nimport { DropDownDirective } from './dropdown.directive';\r\n\r\n@Injectable()\r\nexport class DropDownService {\r\n  private openScope: DropDownDirective;\r\n  private documentClickTimeOut = null;\r\n  private closeDropdownBind: EventListener = this.closeDropdown.bind(this);\r\n  document: Document;\r\n  constructor(@Inject(DOCUMENT) private doc: any) {\r\n    this.document = this.doc;\r\n  }\r\n\r\n  public open(dropdownScope: DropDownDirective) {\r\n    if (!this.openScope) {\r\n      // 延时绑定document事件，防止事件冒泡导致立即触发\r\n      this.documentClickTimeOut = setTimeout(() => {\r\n        this.document.addEventListener('click', this.closeDropdownBind);\r\n      });\r\n    }\r\n    this.openScope = dropdownScope;\r\n  }\r\n\r\n  public close(dropdownScope: DropDownDirective) {\r\n    if (this.openScope !== dropdownScope) {\r\n      return;\r\n    }\r\n    this.openScope = null;\r\n    clearTimeout(this.documentClickTimeOut);\r\n    this.document.removeEventListener('click', this.closeDropdownBind);\r\n  }\r\n\r\n  private closeDropdown(event: MouseEvent) {\r\n    if (event && this.openScope?.menuEl) {\r\n      const menuEl = this.openScope.menuEl.nativeElement;\r\n      const target = event.target as Element;\r\n      const className = target && typeof target.className === 'string' ? target.className : '';\r\n      const rules = [\r\n        className.indexOf('disabled') > -1,\r\n        /input|textarea/i.test(target.tagName) && menuEl.contains(target),\r\n        this.openScope.closeScope === 'none',\r\n        menuEl.contains(target) && this.openScope.closeScope === 'blank',\r\n        this.openScope.dropdownChildren.some((children) => children.toggleEl.nativeElement.contains(target)),\r\n      ];\r\n      if (!rules.includes(true)) {\r\n        this.openScope.isOpen = false;\r\n      }\r\n    }\r\n  }\r\n}\r\n","import { CdkOverlayOrigin } from '@angular/cdk/overlay';\r\nimport { DOCUMENT } from '@angular/common';\r\nimport {\r\n  AfterContentInit,\r\n  ChangeDetectorRef,\r\n  ContentChildren,\r\n  Directive,\r\n  ElementRef,\r\n  EventEmitter,\r\n  forwardRef,\r\n  HostBinding,\r\n  Inject,\r\n  Input,\r\n  OnChanges,\r\n  OnDestroy,\r\n  Optional,\r\n  Output,\r\n  QueryList,\r\n  SimpleChanges,\r\n  SkipSelf,\r\n} from '@angular/core';\r\nimport { addClassToOrigin, DevConfigService, formWithDropDown, removeClassFromOrigin, WithConfig } from 'ng-devui/utils';\r\nimport { fromEvent, merge, Observable, ReplaySubject, Subscription } from 'rxjs';\r\nimport { debounceTime, delay, filter, mapTo, tap } from 'rxjs/operators';\r\nimport { DropDownService } from './dropdown.service';\r\n\r\n@Directive({\r\n  selector: '[dDropDown]',\r\n  exportAs: 'd-dropdown',\r\n  providers: [DropDownService],\r\n})\r\nexport class DropDownDirective implements OnDestroy, OnChanges, AfterContentInit {\r\n  @ContentChildren(forwardRef(() => DropDownDirective), { descendants: true }) dropdownChildren: QueryList<DropDownDirective>;\r\n  private hoverSubscription: Subscription;\r\n  /**\r\n   * 控制是否打开dropdown，绑定一个devui-dropdown-open class\r\n   */\r\n  @HostBinding('class.devui-dropdown-open')\r\n  @Input() set isOpen(value) {\r\n    this._isOpen = !!value;\r\n    if (this.disabled) {\r\n      return;\r\n    }\r\n    if (this.isOpen) {\r\n      this.visibleSubject.next(true);\r\n      this.focusToggleElement();\r\n      this.dropdownService.open(this);\r\n      addClassToOrigin(this.toggleEl);\r\n      setTimeout(() => {\r\n        this.startAnimation = true;\r\n        this.cdr.detectChanges();\r\n      });\r\n    } else {\r\n      this.startAnimation = false;\r\n      this.visibleSubject.next(false);\r\n      this.dropdownService.close(this);\r\n      removeClassFromOrigin(this.toggleEl);\r\n    }\r\n    this.toggleEvent.emit(this.isOpen);\r\n  }\r\n  get isOpen(): boolean {\r\n    return this._isOpen;\r\n  }\r\n  mouseenterFlag = false;\r\n  startAnimation = false;\r\n\r\n  @HostBinding('class.devui-dropdown') addClass = true;\r\n  @Input() disabled = false;\r\n  @HostBinding('class.devui-dropdown-animation')\r\n  @Input() @WithConfig() showAnimation = true;\r\n  /**\r\n   * dropdown触发方式\r\n   */\r\n  @Input() trigger: 'click' | 'hover' | 'manually' = 'click';\r\n  /**\r\n   * 关闭区域，默认点击菜单链接也会关闭，blank点击其他空白区域才关闭\r\n   */\r\n  @Input() closeScope: 'all' | 'blank' | 'none' = 'all';\r\n  @Input() closeOnMouseLeaveMenu = false;\r\n  @Input() autofocusToggleElement = true;\r\n  @Output() toggleEvent: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n\r\n  visibleSubject = new ReplaySubject<boolean>(1);\r\n\r\n  private _isOpen = false;\r\n\r\n  // drop menu html\r\n  public menuEl: ElementRef;\r\n  // drop down toggle element\r\n  public toggleEl: ElementRef;\r\n\r\n  public cdkConnectedOverlayOrigin: CdkOverlayOrigin;\r\n\r\n  private _appendToBody: boolean;\r\n  document: Document;\r\n\r\n  public set appendToBody(bool: boolean) {\r\n    this._appendToBody = bool === true;\r\n    this.updateCdkConnectedOverlayOrigin();\r\n  }\r\n  public get appendToBody() {\r\n    return this._appendToBody;\r\n  }\r\n\r\n  public set dropDownMenu(dropdownMenu) {\r\n    // init drop down menu\r\n    this.menuEl = dropdownMenu.el;\r\n  }\r\n\r\n  public set dropDownToggle(dropdownToggle) {\r\n    // init toggle element\r\n    this.toggleEl = dropdownToggle.el;\r\n    this.updateCdkConnectedOverlayOrigin();\r\n  }\r\n\r\n  constructor(\r\n    private dropdownService: DropDownService,\r\n    private cdr: ChangeDetectorRef,\r\n    public el: ElementRef,\r\n    private devConfigService: DevConfigService,\r\n    @Optional() @SkipSelf() public parentDropdown: DropDownDirective,\r\n    @Inject(DOCUMENT) private doc: any\r\n  ) {\r\n    this.document = this.doc;\r\n  }\r\n\r\n  ngOnChanges(changes: SimpleChanges) {\r\n    if (Object.prototype.hasOwnProperty.call(changes, 'trigger')) {\r\n      this.handleHoverSubscriptionIfTriggerIsHover();\r\n    }\r\n  }\r\n\r\n  ngOnDestroy() {\r\n    this.dropdownService.close(this);\r\n    this.unsubscribeHoverAction();\r\n  }\r\n\r\n  ngAfterContentInit() {\r\n    this.handleHoverSubscriptionIfTriggerIsHover();\r\n  }\r\n\r\n  public toggle(): boolean {\r\n    this.isOpen = !this.isOpen;\r\n    return this.isOpen;\r\n  }\r\n\r\n  public focusToggleElement() {\r\n    if (this.toggleEl && this.autofocusToggleElement) {\r\n      this.toggleEl.nativeElement.focus();\r\n    }\r\n  }\r\n\r\n  updateCdkConnectedOverlayOrigin() {\r\n    if (this.toggleEl && this.appendToBody === true) {\r\n      this.cdkConnectedOverlayOrigin = new CdkOverlayOrigin(formWithDropDown(this.toggleEl) || this.toggleEl.nativeElement);\r\n    } else {\r\n      this.cdkConnectedOverlayOrigin = undefined;\r\n    }\r\n  }\r\n\r\n  subscribeHoverAction(observable: Observable<boolean>): void {\r\n    if (!this.hoverSubscription) {\r\n      this.hoverSubscription = observable.pipe(debounceTime(50)).subscribe((isOpen) => {\r\n        if (this.mouseenterFlag) {\r\n          this.mouseenterFlag = false;\r\n          return;\r\n        }\r\n        if (!this.disabled && this.isOpen !== isOpen) {\r\n          this.isOpen = isOpen;\r\n        }\r\n      });\r\n    }\r\n  }\r\n\r\n  private unsubscribeHoverAction() {\r\n    if (this.hoverSubscription) {\r\n      this.hoverSubscription.unsubscribe();\r\n      this.hoverSubscription = null;\r\n    }\r\n  }\r\n\r\n  handleHoverSubscriptionIfTriggerIsHover() {\r\n    if (this.trigger === 'hover') {\r\n      const states: Observable<boolean> = merge(\r\n        fromEvent(this.el.nativeElement, 'mouseenter').pipe(mapTo(true)),\r\n        fromEvent(this.el.nativeElement, 'mouseleave').pipe(\r\n          delay(200),\r\n          filter((event: any) => {\r\n            if (this.isOpen && this.appendToBody === true) {\r\n              // 冒泡模拟的relatedTarget， 和作用于dropdown本身event.relatedTarget\r\n              // menu（子） -> toggle（父） 冒泡模拟的用于离开菜单的时候判断不判断overlay的div层，即只判断menuEl.nativeElement\r\n              // toggle（父） -> menu（子） 离开元素本身的需要判断是否落入了overlay的div层，即只判断menuEl.nativeElement.parentElement\r\n              const relatedTarget = event.relatedTarget || (event.originEvent && event.originEvent.relatedTarget);\r\n              return  !(this.menuEl?.nativeElement && relatedTarget &&\r\n                  (this.menuEl?.nativeElement.parentElement?.contains(event.relatedTarget)\r\n                  || this.menuEl?.nativeElement.parentElement?.parentElement?.contains(event.relatedTarget) // 套了两层div增加判断\r\n                  || this.menuEl?.nativeElement.contains(relatedTarget)\r\n                  || this.dropdownChildren.some(\r\n                    children =>\r\n                      children !== this\r\n                      // appendToBody的时候可能会没有实例化不在document上需要做判断有没有parentElement\r\n                      && (children.menuEl?.nativeElement.parentElement?.contains(event.relatedTarget)\r\n                      || children.menuEl?.nativeElement.contains(relatedTarget))\r\n                  ))\r\n              );\r\n            } else {\r\n              return true;\r\n            }\r\n          }),\r\n          tap((event) => {\r\n            if (this.parentDropdown) {\r\n              this.simulateEventDispatch(event, this.parentDropdown.el.nativeElement);\r\n            }\r\n          }),\r\n          mapTo(false))\r\n      );\r\n      this.subscribeHoverAction(states);\r\n    } else {\r\n      this.unsubscribeHoverAction();\r\n    }\r\n  }\r\n\r\n  simulateEventDispatch($event, target?) {\r\n    const event: any = this.document.createEvent('MouseEvents');\r\n    event.initEvent($event.type, true, true);\r\n    event.originEvent = $event.originEvent || $event;\r\n\r\n    if (!target) {\r\n      target = this.el.nativeElement;\r\n    }\r\n\r\n    target.dispatchEvent(event);\r\n  }\r\n}\r\n","import { animate, AnimationBuilder, AnimationMetadata, AnimationPlayer, style } from '@angular/animations';\r\nimport { DOCUMENT } from '@angular/common';\r\nimport { Directive, ElementRef, Host, HostBinding, HostListener, Inject, OnDestroy, OnInit, Renderer2 } from '@angular/core';\r\nimport { AnimationCurves, AnimationDuration } from 'ng-devui/utils';\r\nimport { WindowRef } from 'ng-devui/window-ref';\r\nimport { fromEvent, Subscription } from 'rxjs';\r\nimport { filter } from 'rxjs/operators';\r\nimport { DropDownDirective } from './dropdown.directive';\r\n\r\n@Directive({\r\n  selector: '[dDropDownMenu]',\r\n  exportAs: 'd-dropdown-menu',\r\n})\r\nexport class DropDownMenuDirective implements OnInit, OnDestroy {\r\n  player: AnimationPlayer;\r\n  @HostBinding('style.display') display = 'none';\r\n  @HostBinding('attr.tabIndex') tabIndex = -1;\r\n  @HostBinding('class.devui-dropdown-menu') addClass = true;\r\n  subscription: Subscription;\r\n  keydownEscapeEvent$;\r\n  keydownEscapeSub: Subscription;\r\n  popDirectionCache: 'top' | 'bottom';\r\n  private currentValue: any = false;\r\n  constructor(@Host() private dropdown: DropDownDirective, private el: ElementRef, private render: Renderer2,\r\n              private windowRef: WindowRef, private builder: AnimationBuilder, @Inject(DOCUMENT) private doc: any) {\r\n    this.keydownEscapeEvent$ = fromEvent(this.doc.body, 'keydown').pipe(\r\n      // chrome 为 Escape , ie 11为Esc\r\n      filter(event => (<KeyboardEvent>event).key === 'Escape' || (<KeyboardEvent>event).key === 'Esc')\r\n    );\r\n  }\r\n\r\n  ngOnInit() {\r\n    this.dropdown.dropDownMenu = this;\r\n    this.subscription = this.dropdown.visibleSubject.subscribe(value => {\r\n      if (value !== this.currentValue) {\r\n        this.currentValue = value;\r\n        if (this.keydownEscapeSub) {\r\n          this.keydownEscapeSub.unsubscribe();\r\n        }\r\n        if (value) {\r\n          this.keydownEscapeSub = this.keydownEscapeEvent$.subscribe(event => {\r\n            if (event.defaultPrevented) { return; }\r\n            this.hide(event);\r\n          });\r\n        }\r\n        if (this.dropdown.appendToBody) {\r\n          this.render.setStyle(this.el.nativeElement, 'display', 'block'); // 立马生效不等host binding绑定\r\n          this.display = 'block';\r\n          return;\r\n        }\r\n        if (this.player) { // 此处保留一个防止点击过快\r\n          this.player.finish();\r\n        }\r\n        if (this.dropdown.showAnimation) {\r\n          const direction = this.calcPopDirection(value);\r\n          const metadata = value ? this.fadeIn(direction) : this.fadeOut(direction);\r\n          const factory = this.builder.build(metadata);\r\n          this.player = factory.create(this.el.nativeElement);\r\n          const player = this.player;\r\n          this.player.onDone(() => {\r\n            if (!value) {\r\n              this.render.setStyle(this.el.nativeElement, 'display', 'none');\r\n              this.display = 'none';\r\n            }\r\n            player.destroy();\r\n            if (this.player === player) {\r\n              this.player = undefined;\r\n            }\r\n          });\r\n          this.player.onStart(() => {\r\n            if (value) {\r\n              this.render.setStyle(this.el.nativeElement, 'display', 'block');\r\n              this.display = 'block';\r\n            }\r\n          });\r\n          this.player.play();\r\n        } else {\r\n          this.render.setStyle(this.el.nativeElement, 'display', value ? 'block' : 'none');\r\n          this.display = value ? 'block' : 'none';\r\n        }\r\n      }\r\n    });\r\n  }\r\n\r\n  ngOnDestroy() {\r\n    if (this.keydownEscapeSub) {\r\n      this.keydownEscapeSub.unsubscribe();\r\n    }\r\n    if (this.subscription) {\r\n      this.subscription.unsubscribe();\r\n    }\r\n  }\r\n\r\n  calcPopDirection(value) {\r\n    const dropdownMenuElement = this.el.nativeElement;\r\n    const elementHeight = dropdownMenuElement.offsetHeight;\r\n    const bottomDistance = this.windowRef.innerHeight - this.dropdown.el.nativeElement.getBoundingClientRect().bottom;\r\n    const isBottomEnough = bottomDistance >= elementHeight;\r\n    if (!value) {\r\n      return this.popDirectionCache;\r\n    } else {\r\n      if (!isBottomEnough) {\r\n        this.render.setStyle(dropdownMenuElement, 'bottom', '100%');\r\n        this.render.setStyle(dropdownMenuElement, 'top', 'auto');\r\n        this.popDirectionCache = 'top';\r\n        return 'top';\r\n      } else {\r\n        this.render.removeStyle(dropdownMenuElement, 'bottom');\r\n        this.render.removeStyle(dropdownMenuElement, 'top');\r\n        this.popDirectionCache = 'bottom';\r\n        return 'bottom';\r\n      }\r\n    }\r\n  }\r\n\r\n  @HostListener('mouseenter', ['$event'])\r\n  public mouseEnter(event: MouseEvent) {\r\n    this.dropdown.mouseenterFlag = true;\r\n  }\r\n\r\n  @HostListener('mouseleave', ['$event'])\r\n  public mouseLeave(event: MouseEvent) {\r\n    event.stopPropagation();\r\n    this.dropdown.mouseenterFlag = false;\r\n    if ((this.dropdown.appendToBody && this.dropdown.trigger === 'hover')\r\n      || (this.dropdown.trigger === 'click' && this.dropdown.closeOnMouseLeaveMenu)) {\r\n      if (this.dropdown.toggleEl?.nativeElement.contains(event.relatedTarget)\r\n        || this.dropdown.dropdownChildren.some(\r\n          children =>\r\n            children.menuEl !== this.el\r\n            && children.menuEl?.nativeElement.parentElement?.contains(event.relatedTarget))) {\r\n        return;\r\n      } else {\r\n        if (this.dropdown.trigger === 'hover') {\r\n          this.dropdown.simulateEventDispatch(event);\r\n        } else {\r\n          const relatedTarget = (event as any).originEvent?.relatedTarget;\r\n          if (relatedTarget && (\r\n            this.dropdown.toggleEl?.nativeElement.contains(relatedTarget)\r\n            || this.dropdown.dropdownChildren.some(children => children.menuEl?.nativeElement.contains(relatedTarget))\r\n          )) {\r\n            return;\r\n          }\r\n          this.dropdown.isOpen = false;\r\n        }\r\n      }\r\n    }\r\n    return false;\r\n  }\r\n\r\n  private fadeIn(direction): AnimationMetadata[] {\r\n    switch (direction) {\r\n    case 'top':\r\n      return [\r\n        style({transform: 'scaleY(0.8) translateY(4px)', opacity: 0.8, transformOrigin: '0% 100%'}),\r\n        animate(`200ms ${AnimationCurves.EASE_IN}`,\r\n          style({transform: 'scaleY(0.9999) translateY(0)', opacity: 1, transformOrigin: '0% 100%'})),\r\n      ];\r\n    case 'bottom':\r\n    default:\r\n      return [\r\n        style({transform: 'scaleY(0.8)  translateY(-4px)', opacity: 0.8, transformOrigin: '0% 0%'}),\r\n        animate(`200ms ${AnimationCurves.EASE_OUT}`,\r\n          style({transform: 'scaleY(0.9999)  translateY(0)', opacity: 1, transformOrigin: '0% 0%'})),\r\n      ];\r\n    }\r\n  }\r\n\r\n  public hide = (event: Event) => {\r\n    this.dropdown.toggle();\r\n  };\r\n\r\n  private fadeOut(direction): AnimationMetadata[] {\r\n    switch (direction) {\r\n    case 'top':\r\n      return [\r\n        style({transform: 'scaleY(0.9999)  translateY(0)', opacity: 1, transformOrigin: '0% 100%'}),\r\n        animate(`${AnimationDuration.BASE} ${AnimationCurves.EASE_IN}`,\r\n          style({transform: 'scaleY(0.8)  translateY(4px)', opacity: 0.8, transformOrigin: '0% 100%'}))\r\n      ];\r\n    case 'bottom':\r\n    default:\r\n      return [\r\n        style({transform: 'scaleY(0.9999)  translateY(0)', opacity: 1, transformOrigin: '0% 0%'}),\r\n        animate(`${AnimationDuration.BASE} ${AnimationCurves.EASE_IN}`,\r\n          style({transform: 'scaleY(0.8)  translateY(-4px)', opacity: 0.8, transformOrigin: '0% 0%'}))\r\n      ];\r\n    }\r\n  }\r\n}\r\n","import { AfterViewInit, Directive, ElementRef, Host, HostBinding, HostListener, Input, OnInit } from '@angular/core';\nimport { DropDownDirective } from './dropdown.directive';\n\n@Directive({\n  selector: '[dDropDownToggle]',\n  exportAs: 'd-dropdown-toggle',\n})\nexport class DropDownToggleDirective implements OnInit, AfterViewInit {\n  @HostBinding('attr.tabIndex') get tabIndex() {\n    return this.disabled ? null : 0;\n  }\n  @HostBinding('attr.disabled')\n  get attrDisabled() {\n    return this.disabled ? 'disabled' : null;\n  }\n  get disabled() {\n    return this.dropdown && this.dropdown.disabled;\n  }\n  @HostBinding('class.devui-dropdown-toggle') addClass = true;\n  @Input() toggleOnFocus = false;\n  @Input() autoFocus = false;\n  isMouseEvent = false;\n\n  constructor(@Host() private dropdown: DropDownDirective, private el: ElementRef) { }\n\n  ngOnInit() {\n    this.dropdown.dropDownToggle = this;\n  }\n  ngAfterViewInit(): void {\n    if (this.autoFocus) {\n      setTimeout(() => {\n        this.el.nativeElement.focus();\n      }, 0);\n    }\n  }\n\n  @HostListener('click', ['$event'])\n  toggleDropdown(event: MouseEvent) {\n    if (!this.disabled && this.dropdown.trigger !== 'manually') {\n      this.dropdown.toggle();\n    }\n    return false;\n  }\n  // mousedown mouseup解决focus与click冲突问题\n  @HostListener('mousedown', ['$event'])\n  setMouseEventTrue(event) {\n    this.isMouseEvent = true;\n  }\n  @HostListener('mouseup', ['$event'])\n  setMouseEventFalse(event) {\n    this.isMouseEvent = false;\n  }\n  @HostListener('focus', ['$event'])\n  toggleOnFocusFn(event: FocusEvent) {\n    if (this.toggleOnFocus && !this.disabled && !this.dropdown.isOpen && !this.isMouseEvent) {\n      this.dropdown.toggle();\n    }\n  }\n  @HostListener('keydown.enter', ['$event'])\n  public toggle(event) {\n    if (this.disabled || this.dropdown.trigger === 'manually' || event.defaultPrevented) {return; }\n    this.dropdown.toggle();\n  }\n}\n","import {\r\n  CdkConnectedOverlay,\r\n  CdkOverlayOrigin,\r\n  ConnectedOverlayPositionChange,\r\n  ConnectedPosition,\r\n  ScrollStrategy,\r\n  ScrollStrategyOptions,\r\n  VerticalConnectionPos,\r\n} from '@angular/cdk/overlay';\r\nimport { Component, ElementRef, Host, Input, OnChanges, OnInit, SimpleChanges, ViewChild, ViewEncapsulation } from '@angular/core';\r\nimport {\r\n  AppendToBodyDirection,\r\n  AppendToBodyDirectionsConfig,\r\n  AppendToBodyScrollStrategyType,\r\n  DevConfigService,\r\n  WithConfig,\r\n  fadeInOut,\r\n} from 'ng-devui/utils';\r\nimport { DropDownDirective } from './dropdown.directive';\r\n\r\n@Component({\r\n  /* eslint-disable-next-line @angular-eslint/component-selector*/\r\n  selector: '[dDropDown][appendToBody]',\r\n  exportAs: 'd-dropdown-append-to-body',\r\n  template: `\r\n    <ng-content></ng-content>\r\n    <ng-template\r\n      cdk-connected-overlay\r\n      [cdkConnectedOverlayOrigin]=\"origin || dropDown.cdkConnectedOverlayOrigin\"\r\n      [cdkConnectedOverlayOpen]=\"dropDown.isOpen\"\r\n      [cdkConnectedOverlayPositions]=\"positions\"\r\n      [cdkConnectedOverlayScrollStrategy]=\"scrollStrategy\"\r\n      (backdropClick)=\"dropDown.isOpen = false\"\r\n      (detach)=\"dropDown.isOpen && (dropDown.isOpen = false)\"\r\n      (positionChange)=\"onPositionChange($event)\"\r\n    >\r\n      <div [@fadeInOut]=\"dropDown.startAnimation ? menuPosition : 'void'\" #dropDownWrapper [@.disabled]=\"!dropDown.showAnimation\">\r\n        <ng-content select=\"[dDropDownMenu]\"></ng-content>\r\n      </div>\r\n    </ng-template>\r\n  `,\r\n  styleUrls: ['dropdown.component.scss'],\r\n  encapsulation: ViewEncapsulation.None,\r\n  animations: [fadeInOut],\r\n  preserveWhitespaces: false,\r\n})\r\nexport class DropDownAppendToBodyComponent implements OnInit, OnChanges {\r\n  @ViewChild('dropDownWrapper') dropDownWrapper: ElementRef;\r\n  @ViewChild(CdkConnectedOverlay, { static: true }) overlay: CdkConnectedOverlay;\r\n  @Input() alignOrigin: ElementRef<any>;\r\n  @Input() appendToBodyDirections: Array<AppendToBodyDirection | ConnectedPosition> = ['rightDown', 'leftDown', 'rightUp', 'leftUp'];\r\n  @Input() @WithConfig() appendToBodyScrollStrategy: AppendToBodyScrollStrategyType;\r\n  menuPosition: VerticalConnectionPos = 'bottom';\r\n  origin: CdkOverlayOrigin;\r\n  positions;\r\n  scrollStrategy: ScrollStrategy;\r\n\r\n  constructor(\r\n    @Host() public dropDown: DropDownDirective,\r\n    private scrollStrategyOption: ScrollStrategyOptions,\r\n    private devConfigService: DevConfigService\r\n  ) {\r\n    this.dropDown.appendToBody = true;\r\n    this.scrollStrategy = this.scrollStrategyOption.reposition();\r\n  }\r\n\r\n  ngOnChanges(changes: SimpleChanges) {\r\n    const { alignOrigin, appendToBodyDirections, appendToBodyScrollStrategy } = changes;\r\n    const globalScrollStrategy = this.devConfigService.getConfigForApi('appendToBodyScrollStrategy');\r\n    if (appendToBodyDirections) {\r\n      this.setPositions();\r\n    }\r\n    if (alignOrigin) {\r\n      this.setOrigin();\r\n    }\r\n    if (this.appendToBodyScrollStrategy && (appendToBodyScrollStrategy || globalScrollStrategy)) {\r\n      const func = this.scrollStrategyOption[this.appendToBodyScrollStrategy];\r\n      this.scrollStrategy = func();\r\n    }\r\n  }\r\n\r\n  ngOnInit() {\r\n    this.setPositions();\r\n    this.setOrigin();\r\n  }\r\n\r\n  setOrigin() {\r\n    if (this.alignOrigin) {\r\n      this.origin = new CdkOverlayOrigin(this.alignOrigin);\r\n    } else {\r\n      this.origin = undefined;\r\n    }\r\n  }\r\n  setPositions() {\r\n    if (this.appendToBodyDirections && this.appendToBodyDirections.length > 0) {\r\n      this.positions = this.appendToBodyDirections\r\n        .map((position) => {\r\n          if (typeof position === 'string') {\r\n            return AppendToBodyDirectionsConfig[position];\r\n          } else {\r\n            return position;\r\n          }\r\n        })\r\n        .filter((position) => position !== undefined);\r\n    } else {\r\n      this.positions = undefined;\r\n    }\r\n  }\r\n\r\n  reposition(): void {\r\n    if (this.overlay && this.overlay.overlayRef) {\r\n      setTimeout(() => {\r\n        this.setPositions();\r\n        this.overlay.overlayRef.updatePosition();\r\n      }, 0);\r\n    }\r\n  }\r\n\r\n  onPositionChange(position: ConnectedOverlayPositionChange) {\r\n    switch (position.connectionPair.overlayY) {\r\n    case 'top':\r\n    case 'center':\r\n      this.menuPosition = 'bottom';\r\n      break;\r\n    case 'bottom':\r\n      this.menuPosition = 'top';\r\n      break;\r\n    default:\r\n    }\r\n  }\r\n}\r\n","import { OverlayModule } from '@angular/cdk/overlay';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { WindowRefModule } from 'ng-devui/window-ref';\nimport { DropDownMenuItemDirective } from './dropdown-item.directive';\nimport { DropDownMenuDirective } from './dropdown-menu.directive';\nimport { DropDownToggleDirective } from './dropdown-toggle.directive';\nimport { DropDownAppendToBodyComponent } from './dropdown.component';\nimport { DropDownDirective } from './dropdown.directive';\n\n@NgModule({\n  imports: [CommonModule, OverlayModule, WindowRefModule],\n  exports: [DropDownDirective, DropDownMenuItemDirective, DropDownMenuDirective, DropDownToggleDirective, DropDownAppendToBodyComponent],\n  declarations: [\n    DropDownDirective,\n    DropDownMenuItemDirective,\n    DropDownMenuDirective,\n    DropDownToggleDirective,\n    DropDownAppendToBodyComponent,\n  ],\n})\nexport class DropDownModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.DropDownDirective","i2","i3"],"mappings":"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"}