{"version":3,"file":"ngx-bootstrap-dropdown.mjs","sources":["../../../../src/dropdown/bs-dropdown.config.ts","../../../../src/dropdown/bs-dropdown.state.ts","../../../../src/dropdown/dropdown-animations.ts","../../../../src/dropdown/bs-dropdown-container.component.ts","../../../../src/dropdown/bs-dropdown.directive.ts","../../../../src/dropdown/bs-dropdown-menu.directive.ts","../../../../src/dropdown/bs-dropdown-toggle.directive.ts","../../../../src/dropdown/bs-dropdown.module.ts","../../../../src/dropdown/ngx-bootstrap-dropdown.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\n/** Default dropdown configuration */\n@Injectable({\n  providedIn: 'root'\n})\nexport class BsDropdownConfig {\n  /** default dropdown auto closing behavior */\n  autoClose = true;\n  /** default dropdown auto closing behavior */\n  insideClick = false;\n  /** turn on/off animation */\n  isAnimated = false;\n  /** value true of stopOnClickPropagation allows event stopPropagation*/\n  stopOnClickPropagation = false;\n}\n","import { EventEmitter, Injectable } from '@angular/core';\nimport { BsComponentRef } from 'ngx-bootstrap/component-loader';\nimport { BsDropdownMenuDirective } from './bs-dropdown-menu.directive';\n\n@Injectable({providedIn: 'platform'})\nexport class BsDropdownState {\n  direction: 'down' | 'up' = 'down';\n  autoClose = true;\n  insideClick = false;\n  isAnimated = false;\n  stopOnClickPropagation = false;\n  isOpenChange = new EventEmitter<boolean>();\n  isDisabledChange = new EventEmitter<boolean>();\n  toggleClick = new EventEmitter<boolean>();\n  counts = 0;\n  /**\n   * Content to be displayed as popover.\n   */\n  dropdownMenu: Promise<BsComponentRef<BsDropdownMenuDirective>>;\n  resolveDropdownMenu!: (componentRef: BsComponentRef<BsDropdownMenuDirective>) => void;\n\n  constructor() {\n    this.dropdownMenu = new Promise(resolve => {\n      this.resolveDropdownMenu = resolve;\n    });\n  }\n}\n","import {\n  animate,\n  style,\n  AnimationMetadata\n} from '@angular/animations';\n\nexport const DROPDOWN_ANIMATION_TIMING = '220ms cubic-bezier(0, 0, 0.2, 1)';\n\nexport const dropdownAnimation: AnimationMetadata[] = [\n  style({ height: 0, overflow: 'hidden' }),\n  animate(\n    DROPDOWN_ANIMATION_TIMING,\n    style({ height: '*', overflow: 'hidden' })\n  )\n];\n","import {\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  ElementRef,\n  OnDestroy,\n  Renderer2\n} from '@angular/core';\n\nimport { BsDropdownState } from './bs-dropdown.state';\n\nimport { dropdownAnimation } from './dropdown-animations';\nimport { AnimationBuilder, AnimationFactory } from '@angular/animations';\nimport { Subscription } from 'rxjs';\nimport { NgClass } from '@angular/common';\n\n// todo: revert ngClass to [class] when false positive angular-cli issue is fixed\n//          [class.dropdown]=\"direction === 'down'\"-->\n@Component({\n  selector: 'bs-dropdown-container',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  standalone: true,\n  imports: [NgClass],\n  host: {\n    style: 'display:block;position: absolute;z-index: 1040'\n  },\n  template: `\n    <div [class.dropup]=\"direction === 'up'\"\n         [ngClass]=\"{dropdown: direction === 'down'}\"\n         [class.show]=\"isOpen\"\n         [class.open]=\"isOpen\"><ng-content></ng-content>\n    </div>\n  `,\n})\nexport class BsDropdownContainerComponent implements OnDestroy {\n  isOpen = false;\n\n  private _factoryDropDownAnimation: AnimationFactory;\n\n  get direction(): 'down' | 'up' {\n    return this._state.direction;\n  }\n\n  private _subscription: Subscription;\n\n  constructor(\n    private _state: BsDropdownState,\n    private cd: ChangeDetectorRef,\n    private _renderer: Renderer2,\n    private _element: ElementRef,\n    _builder: AnimationBuilder\n  ) {\n    this._factoryDropDownAnimation = _builder.build(dropdownAnimation);\n\n    this._subscription = _state.isOpenChange.subscribe((value: boolean) => {\n      this.isOpen = value;\n      const dropdown = this._element.nativeElement.querySelector('.dropdown-menu');\n\n      this._renderer.addClass(this._element.nativeElement.querySelector('div'), 'open');\n\n      if (dropdown) {\n        this._renderer.addClass(dropdown, 'show');\n\n        if (dropdown.classList.contains('dropdown-menu-right') || dropdown.classList.contains('dropdown-menu-end')) {\n          this._renderer.setStyle(dropdown, 'left', 'auto');\n          this._renderer.setStyle(dropdown, 'right', '0');\n        }\n        if (this.direction === 'up') {\n          this._renderer.setStyle(dropdown, 'top', 'auto');\n          this._renderer.setStyle(\n            dropdown,\n            'transform',\n            'translateY(-101%)'\n          );\n        }\n      }\n\n      if (dropdown && this._state.isAnimated) {\n        this._factoryDropDownAnimation.create(dropdown)\n          .play();\n      }\n\n      this.cd.markForCheck();\n      this.cd.detectChanges();\n    });\n  }\n\n  /** @internal */\n  _contains(el: Element): boolean {\n    return this._element.nativeElement.contains(el);\n  }\n\n  ngOnDestroy(): void {\n    this._subscription.unsubscribe();\n  }\n}\n","import {\n  Directive,\n  ElementRef,\n  EmbeddedViewRef,\n  HostListener,\n  OnDestroy,\n  OnInit,\n  Renderer2,\n  ViewContainerRef,\n  input,\n  effect,\n  output\n} from '@angular/core';\nimport { filter } from 'rxjs/operators';\nimport { Subscription } from 'rxjs';\nimport { BsComponentRef, ComponentLoader, ComponentLoaderFactory } from 'ngx-bootstrap/component-loader';\n\nimport { BsDropdownConfig } from './bs-dropdown.config';\nimport { BsDropdownContainerComponent } from './bs-dropdown-container.component';\nimport { BsDropdownState } from './bs-dropdown.state';\nimport { BsDropdownMenuDirective } from './index';\nimport { AnimationBuilder, AnimationFactory } from '@angular/animations';\nimport { dropdownAnimation } from './dropdown-animations';\n\n@Directive({\n  selector: '[bsDropdown], [dropdown]',\n  exportAs: 'bs-dropdown',\n  providers: [BsDropdownState, ComponentLoaderFactory, BsDropdownConfig],\n  standalone: true,\n  host: {\n    '[class.dropup]': '_dropup',\n    '[class.open]': 'isOpen',\n    '[class.show]': 'isOpen'\n  }\n})\nexport class BsDropdownDirective implements OnInit, OnDestroy {\n  /**\n   * Placement of a popover. Accepts: \"top\", \"bottom\", \"left\", \"right\"\n   */\n  placement = input<string | undefined>();\n  /**\n   * Specifies events that should trigger. Supports a space separated list of\n   * event names.\n   */\n  triggers = input<string | undefined>();\n  /**\n   * A selector specifying the element the popover should be appended to.\n   */\n  container = input<string | undefined>();\n\n  /**\n   * This attribute indicates that the dropdown should be opened upwards\n   */\n  dropup = input<boolean>(false);\n\n  // Internal resolved value for dropup (for host binding)\n  _dropup = false;\n\n  /**\n   * Indicates that dropdown will be closed on item or document click,\n   * and after pressing ESC\n   */\n  autoClose = input<boolean | undefined>(undefined);\n\n  /**\n   * Indicates that dropdown will be animated\n   */\n  isAnimated = input<boolean | undefined>(undefined);\n\n  /**\n   * This attribute indicates that the dropdown shouldn't close on inside click when autoClose is set to true\n   */\n  insideClick = input<boolean | undefined>(undefined);\n\n  /**\n   * Disables dropdown toggle and hides dropdown menu if opened\n   */\n  // eslint-disable-next-line @angular-eslint/no-input-rename\n  isDisabledInput = input<boolean>(false, { alias: 'isDisabled' });\n\n  get isDisabled(): boolean {\n    return this._isDisabled;\n  }\n\n  /**\n   * Returns whether or not the popover is currently being shown\n   */\n  // eslint-disable-next-line @angular-eslint/no-input-rename\n  isOpenInput = input<boolean>(false, { alias: 'isOpen' });\n\n  get isOpen(): boolean {\n    if (this._showInline) {\n      return this._isInlineOpen;\n    }\n\n    return this._dropdown.isShown;\n  }\n\n  /**\n   * Emits an event when isOpen change\n   */\n  readonly isOpenChange = output<boolean>();\n\n  /**\n   * Emits an event when the popover is shown\n   */\n  readonly onShown = output<boolean>();\n\n  /**\n   * Emits an event when the popover is hidden\n   */\n  readonly onHidden = output<boolean>();\n\n  private _dropdown: ComponentLoader<BsDropdownContainerComponent>;\n\n  private get _showInline(): boolean {\n    return !this.container();\n  }\n\n  // todo: move to component loader\n  private _isInlineOpen = false;\n\n  private _inlinedMenu?: EmbeddedViewRef<BsDropdownMenuDirective>;\n  private _isDisabled = false;\n  private _subscriptions: Subscription[] = [];\n  private _isInited = false;\n  private _factoryDropDownAnimation: AnimationFactory;\n\n  constructor(\n    private _elementRef: ElementRef,\n    private _renderer: Renderer2,\n    private _viewContainerRef: ViewContainerRef,\n    private _cis: ComponentLoaderFactory,\n    private _state: BsDropdownState,\n    private _config: BsDropdownConfig,\n    _builder: AnimationBuilder\n  ) {\n    // set initial dropdown state from config\n    this._state.autoClose = this._config.autoClose;\n    this._state.insideClick = this._config.insideClick;\n    this._state.isAnimated = this._config.isAnimated;\n    this._state.stopOnClickPropagation = this._config.stopOnClickPropagation;\n\n    this._factoryDropDownAnimation = _builder.build(dropdownAnimation);\n\n    // create dropdown component loader\n    this._dropdown = this._cis\n      .createLoader<BsDropdownContainerComponent>(this._elementRef, this._viewContainerRef, this._renderer)\n      .provide({ provide: BsDropdownState, useValue: this._state });\n\n    this._dropdown.onShown.subscribe((v: boolean) => this.onShown.emit(v));\n    this._dropdown.onHidden.subscribe((v: boolean) => this.onHidden.emit(v));\n    this._state.isOpenChange.subscribe((v: boolean) => this.isOpenChange.emit(v));\n\n    // Effect for dropup\n    effect(() => {\n      this._dropup = this.dropup();\n    });\n\n    // Effect for autoClose\n    effect(() => {\n      const val = this.autoClose();\n      if (val !== undefined) {\n        this._state.autoClose = val;\n      }\n    });\n\n    // Effect for isAnimated\n    effect(() => {\n      const val = this.isAnimated();\n      if (val !== undefined) {\n        this._state.isAnimated = val;\n      }\n    });\n\n    // Effect for insideClick\n    effect(() => {\n      const val = this.insideClick();\n      if (val !== undefined) {\n        this._state.insideClick = val;\n      }\n    });\n\n    // Effect for isDisabled\n    effect(() => {\n      const val = this.isDisabledInput();\n      this._isDisabled = val;\n      this._state.isDisabledChange.emit(val);\n      if (val) {\n        this.hide();\n      }\n    });\n\n    // Effect for isOpen\n    effect(() => {\n      const val = this.isOpenInput();\n      if (val) {\n        this.show();\n      } else {\n        this.hide();\n      }\n    });\n  }\n\n  ngOnInit(): void {\n    // fix: seems there are an issue with `routerLinkActive`\n    // which result in duplicated call ngOnInit without call to ngOnDestroy\n    // read more: https://github.com/valor-software/ngx-bootstrap/issues/1885\n    if (this._isInited) {\n      return;\n    }\n    this._isInited = true;\n\n    // attach DOM listeners\n    this._dropdown.listen({\n      // because of dropdown inline mode\n      outsideClick: false,\n      triggers: this.triggers(),\n      show: () => this.show()\n    });\n\n    // toggle visibility on toggle element click\n    this._subscriptions.push(this._state.toggleClick.subscribe((value: boolean) => this.toggle(value)));\n\n    // hide dropdown if set disabled while opened\n    this._subscriptions.push(\n      this._state.isDisabledChange\n        .pipe(filter((value: boolean) => value))\n        .subscribe((/*value: boolean*/) => this.hide())\n    );\n  }\n\n  /**\n   * Opens an element’s popover. This is considered a “manual” triggering of\n   * the popover.\n   */\n  show(): void {\n    if (this.isOpen || this.isDisabled) {\n      return;\n    }\n\n    if (this._showInline) {\n      if (!this._inlinedMenu) {\n        this._state.dropdownMenu\n          .then((dropdownMenu: BsComponentRef<BsDropdownMenuDirective>) => {\n            this._dropdown.attachInline(dropdownMenu.viewContainer, dropdownMenu.templateRef);\n            this._inlinedMenu = this._dropdown._inlineViewRef;\n\n            this.addBs4Polyfills();\n            if (this._inlinedMenu) {\n              this._renderer.addClass(this._inlinedMenu.rootNodes[0].parentNode, 'open');\n            }\n\n            this.playAnimation();\n          })\n          // swallow errors\n          .catch();\n      }\n      this.addBs4Polyfills();\n\n      this._isInlineOpen = true;\n      this.onShown.emit(true);\n      this._state.isOpenChange.emit(true);\n\n      this.playAnimation();\n\n      return;\n    }\n    this._state.dropdownMenu\n      .then((dropdownMenu) => {\n        // check direction in which dropdown should be opened\n        const _dropup = this._dropup || (typeof this._dropup !== 'undefined' && this._dropup);\n        this._state.direction = _dropup ? 'up' : 'down';\n        const _placement = this.placement() || (_dropup ? 'top start' : 'bottom start');\n\n        // show dropdown\n        this._dropdown\n          .attach(BsDropdownContainerComponent)\n          .to(this.container())\n          .position({ attachment: _placement })\n          .show({\n            content: dropdownMenu.templateRef,\n            placement: _placement\n          });\n\n        this._state.isOpenChange.emit(true);\n      })\n      // swallow error\n      .catch();\n  }\n\n  /**\n   * Closes an element’s popover. This is considered a “manual” triggering of\n   * the popover.\n   */\n  hide(): void {\n    if (!this.isOpen) {\n      return;\n    }\n\n    if (this._showInline) {\n      this.removeShowClass();\n      this.removeDropupStyles();\n      this._isInlineOpen = false;\n      this.onHidden.emit(true);\n    } else {\n      this._dropdown.hide();\n    }\n\n    this._state.isOpenChange.emit(false);\n  }\n\n  /**\n   * Toggles an element’s popover. This is considered a “manual” triggering of\n   * the popover. With parameter <code>true</code> allows toggling, with parameter <code>false</code>\n   * only hides opened dropdown. Parameter usage will be removed in ngx-bootstrap v3\n   */\n  toggle(value?: boolean): void {\n    if (this.isOpen || !value) {\n      return this.hide();\n    }\n\n    return this.show();\n  }\n\n  /** @internal */\n  _contains(event: Event): boolean {\n    // handle Event target typing\n    if (!(event.target instanceof Node)) {\n      return false;\n    }\n    return (\n      this._elementRef.nativeElement.contains(event.target as Node) ||\n      (this._dropdown.instance && this._dropdown.instance._contains(event.target as unknown as HTMLElement))\n    );\n  }\n\n  @HostListener('keydown.arrowDown', ['$event'])\n  @HostListener('keydown.arrowUp', ['$event'])\n  navigationClick(event: Event): void {\n    const ke = event as KeyboardEvent;\n    const ref = this._elementRef.nativeElement.querySelector('.dropdown-menu');\n\n    if (!ref) {\n      return;\n    }\n\n    const firstActive = this._elementRef.nativeElement.ownerDocument.activeElement;\n    const allRef = ref.querySelectorAll('.dropdown-item');\n    switch (ke.keyCode) {\n      case 38:\n        if (this._state.counts > 0) {\n          allRef[--this._state.counts].focus();\n        }\n        break;\n      case 40:\n        if (this._state.counts + 1 < allRef.length) {\n          if (firstActive.classList !== allRef[this._state.counts].classList) {\n            allRef[this._state.counts].focus();\n          } else {\n            allRef[++this._state.counts].focus();\n          }\n        }\n        break;\n      default:\n    }\n    if ('preventDefault' in ke) {\n      ke.preventDefault();\n    }\n  }\n\n  ngOnDestroy(): void {\n    // clean up subscriptions and destroy dropdown\n    for (const sub of this._subscriptions) {\n      sub.unsubscribe();\n    }\n    this._dropdown.dispose();\n  }\n\n  private addBs4Polyfills(): void {\n    this.addShowClass();\n    this.checkRightAlignment();\n    this.addDropupStyles();\n  }\n\n  private playAnimation(): void {\n    if (this._state.isAnimated && this._inlinedMenu) {\n      setTimeout(() => {\n        if (this._inlinedMenu) {\n          this._factoryDropDownAnimation.create(this._inlinedMenu.rootNodes[0]).play();\n        }\n      });\n    }\n  }\n\n  private addShowClass(): void {\n    if (this._inlinedMenu && this._inlinedMenu.rootNodes[0]) {\n      this._renderer.addClass(this._inlinedMenu.rootNodes[0], 'show');\n    }\n  }\n\n  private removeShowClass(): void {\n    if (this._inlinedMenu && this._inlinedMenu.rootNodes[0]) {\n      this._renderer.removeClass(this._inlinedMenu.rootNodes[0], 'show');\n    }\n  }\n\n  private checkRightAlignment(): void {\n    if (this._inlinedMenu && this._inlinedMenu.rootNodes[0]) {\n      const isRightAligned =\n        this._inlinedMenu.rootNodes[0].classList.contains('dropdown-menu-right') ||\n        this._inlinedMenu.rootNodes[0].classList.contains('dropdown-menu-end');\n\n      this._renderer.setStyle(this._inlinedMenu.rootNodes[0], 'left', isRightAligned ? 'auto' : '0');\n      this._renderer.setStyle(this._inlinedMenu.rootNodes[0], 'right', isRightAligned ? '0' : 'auto');\n    }\n  }\n\n  private addDropupStyles(): void {\n    if (this._inlinedMenu && this._inlinedMenu.rootNodes[0]) {\n      // a little hack to not break support of bootstrap 4 beta\n      this._renderer.setStyle(this._inlinedMenu.rootNodes[0], 'top', this.dropup() ? 'auto' : '100%');\n      this._renderer.setStyle(\n        this._inlinedMenu.rootNodes[0],\n        'transform',\n        this.dropup() ? 'translateY(-101%)' : 'translateY(0)'\n      );\n      this._renderer.setStyle(this._inlinedMenu.rootNodes[0], 'bottom', 'auto');\n    }\n  }\n\n  private removeDropupStyles(): void {\n    if (this._inlinedMenu && this._inlinedMenu.rootNodes[0]) {\n      this._renderer.removeStyle(this._inlinedMenu.rootNodes[0], 'top');\n      this._renderer.removeStyle(this._inlinedMenu.rootNodes[0], 'transform');\n      this._renderer.removeStyle(this._inlinedMenu.rootNodes[0], 'bottom');\n    }\n  }\n}\n","import { Directive, TemplateRef, ViewContainerRef } from '@angular/core';\nimport { BsDropdownState } from './bs-dropdown.state';\n\n@Directive({\n  selector: '[bsDropdownMenu],[dropdownMenu]',\n  exportAs: 'bs-dropdown-menu',\n  standalone: true\n})\nexport class BsDropdownMenuDirective {\n  constructor(\n    _state: BsDropdownState,\n    _viewContainer: ViewContainerRef,\n    _templateRef: TemplateRef<BsDropdownMenuDirective>\n  ) {\n    _state.resolveDropdownMenu({\n      templateRef: _templateRef,\n      viewContainer: _viewContainer\n    });\n  }\n}\n","import {\n  ChangeDetectorRef,\n  Directive,\n  ElementRef,\n  HostBinding,\n  HostListener,\n  OnDestroy,\n  Renderer2\n} from '@angular/core';\n\nimport { Subscription } from 'rxjs';\nimport { BsDropdownState } from './bs-dropdown.state';\nimport { BsDropdownDirective } from './bs-dropdown.directive';\n\n@Directive({\n  selector: '[bsDropdownToggle],[dropdownToggle]',\n  exportAs: 'bs-dropdown-toggle',\n  host: {\n    '[attr.aria-haspopup]': 'true'\n  },\n  standalone: true\n})\nexport class BsDropdownToggleDirective implements OnDestroy {\n  @HostBinding('attr.disabled') isDisabled: undefined | true;\n  @HostBinding('attr.aria-expanded') isOpen = false;\n\n  private _subscriptions: Subscription[] = [];\n  private _documentClickListener?: () => void;\n  private _escKeyUpListener?: () => void;\n\n  constructor(\n    private _changeDetectorRef: ChangeDetectorRef,\n    private _dropdown: BsDropdownDirective,\n    private _element: ElementRef,\n    private _renderer: Renderer2,\n    private _state: BsDropdownState\n  ) {\n    // sync is open value with state\n    this._subscriptions.push(\n      this._state.isOpenChange.subscribe(\n        (value: boolean) => {\n          this.isOpen = value;\n\n          if (value) {\n            this._documentClickListener = this._renderer.listen('document', 'click', (event: Event) => {\n              if (!(event.target instanceof Node)) {\n                return;\n              }\n              const isPrimaryClick = event instanceof MouseEvent ? event.button !== 2 : true;\n              if (\n                this._state.autoClose &&\n                isPrimaryClick &&\n                !this._element.nativeElement.contains(event.target as Node) &&\n                !(this._state.insideClick && this._dropdown._contains(event))\n              ) {\n                this._state.toggleClick.emit(false);\n                this._changeDetectorRef.detectChanges();\n              }\n            });\n\n            this._escKeyUpListener = this._renderer.listen(this._element.nativeElement, 'keyup.esc', () => {\n              if (this._state.autoClose) {\n                this._state.toggleClick.emit(false);\n                this._changeDetectorRef.detectChanges();\n              }\n            });\n          } else {\n            this._documentClickListener && this._documentClickListener();\n            this._escKeyUpListener && this._escKeyUpListener();\n          }\n        }\n      )\n    );\n\n    // populate disabled state\n    this._subscriptions.push(\n      this._state.isDisabledChange\n        .subscribe((value: boolean) => this.isDisabled = value || void 0)\n    );\n  }\n\n  @HostListener('click', ['$event'])\n  onClick(event: MouseEvent): void {\n    if (this._state.stopOnClickPropagation) {\n      event.stopPropagation();\n    }\n\n    if (this.isDisabled) {\n      return;\n    }\n    this._state.toggleClick.emit(true);\n  }\n\n  ngOnDestroy(): void {\n    if (this._documentClickListener) {\n      this._documentClickListener();\n    }\n\n    if (this._escKeyUpListener) {\n      this._escKeyUpListener();\n    }\n\n    for (const sub of this._subscriptions) {\n      sub.unsubscribe();\n    }\n  }\n}\n","import { NgModule } from '@angular/core';\n\nimport { BsDropdownContainerComponent } from './bs-dropdown-container.component';\nimport { BsDropdownMenuDirective } from './bs-dropdown-menu.directive';\nimport { BsDropdownToggleDirective } from './bs-dropdown-toggle.directive';\n\nimport { BsDropdownDirective } from './bs-dropdown.directive';\n\n@NgModule({\n    imports: [\n      BsDropdownDirective,\n      BsDropdownContainerComponent,\n      BsDropdownMenuDirective,\n      BsDropdownToggleDirective\n    ],\n    exports: [\n        BsDropdownMenuDirective,\n        BsDropdownToggleDirective,\n        BsDropdownDirective\n    ]\n})\nexport class BsDropdownModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.BsDropdownState","i2.BsDropdownState","i3.BsDropdownConfig","i4","i1.BsDropdownDirective"],"mappings":"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"}