{"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';\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  // eslint-disable-next-line @angular-eslint/no-host-metadata-property\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  EventEmitter,\n  HostListener,\n  Input,\n  OnDestroy,\n  OnInit,\n  Output,\n  Renderer2,\n  ViewContainerRef\n } from '@angular/core';\nimport { filter } from 'rxjs/operators';\nimport { Subscription } from 'rxjs';\nimport { ComponentLoader, ComponentLoaderFactory, BsComponentRef } 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],\n  // eslint-disable-next-line @angular-eslint/no-host-metadata-property\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  @Input() placement?: string;\n  /**\n   * Specifies events that should trigger. Supports a space separated list of\n   * event names.\n   */\n  @Input() triggers?: string;\n  /**\n   * A selector specifying the element the popover should be appended to.\n   */\n  @Input() container?: string;\n\n  /**\n   * This attribute indicates that the dropdown should be opened upwards\n   */\n  @Input() dropup = false;\n\n  /**\n   * Indicates that dropdown will be closed on item or document click,\n   * and after pressing ESC\n   */\n  @Input()\n  set autoClose(value: boolean) {\n    this._state.autoClose = value;\n  }\n\n  get autoClose(): boolean {\n    return this._state.autoClose;\n  }\n\n  /**\n   * Indicates that dropdown will be animated\n   */\n  @Input()\n  set isAnimated(value: boolean) {\n    this._state.isAnimated = value;\n  }\n\n  get isAnimated(): boolean {\n    return this._state.isAnimated;\n  }\n\n  /**\n   * This attribute indicates that the dropdown shouldn't close on inside click when autoClose is set to true\n   */\n  @Input()\n  set insideClick(value: boolean) {\n    this._state.insideClick = value;\n  }\n\n  get insideClick(): boolean {\n    return this._state.insideClick;\n  }\n\n  /**\n   * Disables dropdown toggle and hides dropdown menu if opened\n   */\n  @Input()\n  set isDisabled(value: boolean) {\n    this._isDisabled = value;\n    this._state.isDisabledChange.emit(value);\n    if (value) {\n      this.hide();\n    }\n  }\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  @Input()\n  get isOpen(): boolean {\n    if (this._showInline) {\n      return this._isInlineOpen;\n    }\n\n    return this._dropdown.isShown;\n  }\n\n  set isOpen(value: boolean) {\n    if (value) {\n      this.show();\n    } else {\n      this.hide();\n    }\n  }\n\n  /**\n   * Emits an event when isOpen change\n   */\n  @Output() isOpenChange: EventEmitter<boolean>;\n\n  /**\n   * Emits an event when the popover is shown\n   */\n  @Output() onShown: EventEmitter<boolean>;\n\n  /**\n   * Emits an event when the popover is hidden\n   */\n  @Output() onHidden: EventEmitter<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>(\n        this._elementRef,\n        this._viewContainerRef,\n        this._renderer\n      )\n      .provide({provide: BsDropdownState, useValue: this._state});\n\n    this.onShown = this._dropdown.onShown;\n    this.onHidden = this._dropdown.onHidden;\n    this.isOpenChange = this._state.isOpenChange;\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(\n      this._state.toggleClick.subscribe((value: boolean) => this.toggle(value))\n    );\n\n    // hide dropdown if set disabled while opened\n    this._subscriptions.push(\n      this._state.isDisabledChange\n        .pipe(\n          filter((value: boolean) => value)\n        )\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.then(\n          (dropdownMenu: BsComponentRef<BsDropdownMenuDirective>) => {\n            this._dropdown.attachInline(\n              dropdownMenu.viewContainer,\n              dropdownMenu.templateRef\n            );\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        )\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.then(dropdownMenu => {\n      // check direction in which dropdown should be opened\n      const _dropup =\n        this.dropup ||\n        (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: MouseEvent): boolean {\n    // todo: valorkin fix typings\n    return this._elementRef.nativeElement.contains(event.target) ||\n      (this._dropdown.instance && this._dropdown.instance._contains(event.target as unknown as HTMLElement));\n  }\n\n  @HostListener('keydown.arrowDown', ['$event'])\n  @HostListener('keydown.arrowUp', ['$event'])\n  navigationClick(event: any): void {\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 (event.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    event.preventDefault();\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 = this._inlinedMenu.rootNodes[0].classList.contains(\n        'dropdown-menu-right'\n      ) || this._inlinedMenu.rootNodes[0].classList.contains(\n        'dropdown-menu-end'\n      );\n\n      this._renderer.setStyle(\n        this._inlinedMenu.rootNodes[0],\n        'left',\n        isRightAligned ? 'auto' : '0'\n      );\n      this._renderer.setStyle(\n        this._inlinedMenu.rootNodes[0],\n        'right',\n        isRightAligned ? '0' : 'auto'\n      );\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(\n        this._inlinedMenu.rootNodes[0],\n        'top',\n        this.dropup ? 'auto' : '100%'\n      );\n      this._renderer.setStyle(\n        this._inlinedMenu.rootNodes[0],\n        'transform',\n        this.dropup ? 'translateY(-101%)' : 'translateY(0)'\n      );\n      this._renderer.setStyle(\n        this._inlinedMenu.rootNodes[0],\n        'bottom',\n        'auto'\n      );\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})\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  // eslint-disable-next-line @angular-eslint/no-host-metadata-property\n  host: {\n    '[attr.aria-haspopup]': 'true'\n  }\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: MouseEvent) => {\n              if (this._state.autoClose && event.button !== 2 &&\n                !this._element.nativeElement.contains(event.target) &&\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 { CommonModule } from '@angular/common';\nimport { ModuleWithProviders, NgModule } from '@angular/core';\nimport { ComponentLoaderFactory } from 'ngx-bootstrap/component-loader';\n\nimport { PositioningService } from 'ngx-bootstrap/positioning';\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';\nimport { BsDropdownState } from './bs-dropdown.state';\n\n@NgModule({\n    imports: [CommonModule],\n    declarations: [\n        BsDropdownMenuDirective,\n        BsDropdownToggleDirective,\n        BsDropdownContainerComponent,\n        BsDropdownDirective\n    ],\n    exports: [\n        BsDropdownMenuDirective,\n        BsDropdownToggleDirective,\n        BsDropdownDirective\n    ]\n})\nexport class BsDropdownModule {\n  static forRoot(): ModuleWithProviders<BsDropdownModule> {\n    return {\n      ngModule: BsDropdownModule,\n      providers: [\n        ComponentLoaderFactory,\n        PositioningService,\n        BsDropdownState\n      ]\n    };\n  }\n}\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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"}