{"version":3,"file":"mdb-angular-ui-kit-dropdown.mjs","sources":["../../../projects/mdb-angular-ui-kit/dropdown/dropdown-toggle.directive.ts","../../../projects/mdb-angular-ui-kit/dropdown/dropdown-menu.directive.ts","../../../projects/mdb-angular-ui-kit/dropdown/dropdown.directive.ts","../../../projects/mdb-angular-ui-kit/dropdown/dropdown.component.html","../../../projects/mdb-angular-ui-kit/dropdown/dropdown.module.ts","../../../projects/mdb-angular-ui-kit/dropdown/mdb-angular-ui-kit-dropdown.ts"],"sourcesContent":["import { Directive } from '@angular/core';\n\n@Directive({\n  selector: '[mdbDropdownToggle]',\n  exportAs: 'mdbDropdownToggle',\n  standalone: false,\n})\nexport class MdbDropdownToggleDirective {\n  constructor() {}\n}\n","import { Directive, ElementRef, EventEmitter, Input, Output, Renderer2 } from '@angular/core';\n\nexport type MdbDropdownMenuPositionClass = 'dropdown-menu-end';\n\n@Directive({\n  // eslint-disable-next-line @angular-eslint/directive-selector\n  selector: '[mdbDropdownMenu]',\n  exportAs: 'mdbDropdownMenu',\n  standalone: false,\n})\n// eslint-disable-next-line @angular-eslint/component-class-suffix\nexport class MdbDropdownMenuDirective {\n  constructor(public elementRef: ElementRef, private _renderer: Renderer2) {}\n  @Output() menuPositionClassChanged: EventEmitter<string> = new EventEmitter<string>();\n\n  @Input()\n  get menuPositionClass(): string {\n    return this._menuPositionClass;\n  }\n\n  set menuPositionClass(newClass: string) {\n    const host = this.elementRef.nativeElement;\n    const isSameClass = host.classList.contains(newClass);\n    if (this._menuPositionClass !== newClass && !isSameClass) {\n      const menuPositionClasses = [\n        'dropdown-menu-start',\n        'dropdown-menu-sm-start',\n        'dropdown-menu-md-start',\n        'dropdown-menu-lg-start',\n        'dropdown-menu-xl-start',\n        'dropdown-menu-xxl-start',\n        'dropdown-menu-xxl-start',\n        'dropdown-menu-xxl-start',\n        'dropdown-menu-end',\n        'dropdown-menu-sm-end',\n        'dropdown-menu-md-end',\n        'dropdown-menu-lg-end',\n        'dropdown-menu-xl-end',\n        'dropdown-menu-xxl-end',\n        'dropdown-menu-xxl-end',\n        'dropdown-menu-xxl-end',\n      ];\n\n      menuPositionClasses.forEach((className) => {\n        this._renderer.removeClass(host, className);\n      });\n      this._renderer.addClass(host, newClass);\n\n      this.menuPositionClassChanged.emit(this.menuPositionClass);\n    }\n  }\n  private _menuPositionClass: string;\n}\n","import {\n  AfterContentInit,\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  ElementRef,\n  EventEmitter,\n  Input,\n  OnDestroy,\n  Output,\n  Renderer2,\n  TemplateRef,\n  ViewChild,\n  ViewContainerRef,\n  booleanAttribute,\n  numberAttribute,\n} from '@angular/core';\nimport {\n  ConnectedPosition,\n  FlexibleConnectedPositionStrategy,\n  Overlay,\n  OverlayConfig,\n  OverlayPositionBuilder,\n  OverlayRef,\n} from '@angular/cdk/overlay';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport { fromEvent, Observable, Subject } from 'rxjs';\nimport { filter, takeUntil } from 'rxjs/operators';\nimport { ContentChild } from '@angular/core';\nimport { MdbDropdownToggleDirective } from './dropdown-toggle.directive';\nimport { MdbDropdownMenuDirective } from './dropdown-menu.directive';\nimport { animate, state, style, transition, trigger, AnimationEvent } from '@angular/animations';\nimport { BreakpointObserver } from '@angular/cdk/layout';\n\nexport type MdbDropdownPositionClass = 'dropdown' | 'dropup' | 'dropstart' | 'dropend';\n\n@Component({\n  // eslint-disable-next-line @angular-eslint/component-selector\n  selector: '[mdbDropdown]',\n  templateUrl: 'dropdown.component.html',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  animations: [\n    trigger('fade', [\n      state('visible', style({ opacity: 1 })),\n      state('hidden', style({ opacity: 0 })),\n      transition('visible => hidden', animate('150ms linear')),\n      transition('hidden => visible', [style({ opacity: 0 }), animate('150ms linear')]),\n    ]),\n  ],\n  standalone: false,\n})\n// eslint-disable-next-line @angular-eslint/component-class-suffix\nexport class MdbDropdownDirective implements OnDestroy, AfterContentInit {\n  @ViewChild('dropdownTemplate') _template: TemplateRef<any>;\n  @ContentChild(MdbDropdownToggleDirective, { read: ElementRef }) _dropdownToggle: ElementRef;\n  @ContentChild(MdbDropdownMenuDirective) _dropdownMenu: MdbDropdownMenuDirective;\n\n  @Input({ transform: booleanAttribute }) animation = true;\n  @Input({ transform: booleanAttribute }) closeOnEsc = true;\n  @Input({ transform: booleanAttribute }) closeOnItemClick = true;\n  @Input({ transform: booleanAttribute }) closeOnOutsideClick = true;\n  @Input({ transform: numberAttribute }) offset = 0;\n  @Input()\n  get positionClass(): MdbDropdownPositionClass {\n    return this._positionClass;\n  }\n  set positionClass(newClass: MdbDropdownPositionClass) {\n    const isSameClass = this.host.classList.contains(newClass);\n    if (this._positionClass !== newClass && !isSameClass) {\n      const positionClasses = ['dropdown', 'dropup', 'dropstart', 'dropend'];\n      positionClasses.forEach((className) => {\n        this._renderer.removeClass(this.host, className);\n      });\n      this._renderer.addClass(this.host, newClass);\n    }\n    this._updateOverlay();\n  }\n  private _positionClass: MdbDropdownPositionClass;\n  @Input({ transform: booleanAttribute }) withPush = false;\n\n  @Output() dropdownShow: EventEmitter<MdbDropdownDirective> = new EventEmitter();\n  @Output() dropdownShown: EventEmitter<MdbDropdownDirective> = new EventEmitter();\n  @Output() dropdownHide: EventEmitter<MdbDropdownDirective> = new EventEmitter();\n  @Output() dropdownHidden: EventEmitter<MdbDropdownDirective> = new EventEmitter();\n\n  private _overlayRef: OverlayRef;\n  private _portal: TemplatePortal;\n  private _open = false;\n  private _isDropUp: boolean;\n  private _isDropStart: boolean;\n  private _isDropEnd: boolean;\n  private _isDropdownMenuEnd: boolean;\n  private _xPosition: string;\n  private _breakpoints: any;\n  private _mousedownTarget: HTMLElement | null = null;\n\n  readonly _destroy$: Subject<void> = new Subject<void>();\n\n  get host(): HTMLElement {\n    return this._elementRef.nativeElement;\n  }\n\n  _breakpointSubscription: any;\n  _animationState = 'hidden';\n\n  constructor(\n    private _overlay: Overlay,\n    private _overlayPositionBuilder: OverlayPositionBuilder,\n    private _elementRef: ElementRef,\n    private _vcr: ViewContainerRef,\n    private _breakpointObserver: BreakpointObserver,\n    private _cdRef: ChangeDetectorRef,\n    private _renderer: Renderer2\n  ) {\n    this._breakpoints = {\n      isSm: this._breakpointObserver.isMatched('(min-width: 576px)'),\n      isMd: this._breakpointObserver.isMatched('(min-width: 768px)'),\n      isLg: this._breakpointObserver.isMatched('(min-width: 992px)'),\n      isXl: this._breakpointObserver.isMatched('(min-width: 1200px)'),\n      isXxl: this._breakpointObserver.isMatched('(min-width: 1400px)'),\n    };\n  }\n\n  ngAfterContentInit(): void {\n    this._bindDropdownToggleClick();\n    this._listenToMenuPositionClassChange();\n  }\n\n  ngOnDestroy(): void {\n    if (this._overlayRef) {\n      this._overlayRef.detach();\n      this._overlayRef.dispose();\n    }\n\n    this._destroy$.next();\n    this._destroy$.complete();\n  }\n\n  private _bindDropdownToggleClick(): void {\n    fromEvent(this._dropdownToggle.nativeElement, 'click')\n      .pipe(takeUntil(this._destroy$))\n      .subscribe(() => this.toggle());\n  }\n\n  private _listenToMenuPositionClassChange(): void {\n    this._dropdownMenu.menuPositionClassChanged\n      .pipe(takeUntil(this._destroy$))\n      .subscribe(() => this._updateOverlay());\n  }\n\n  private _updateOverlay() {\n    this._overlayRef?.updatePositionStrategy(this._createPositionStrategy());\n  }\n\n  private _createOverlayConfig(): OverlayConfig {\n    return new OverlayConfig({\n      hasBackdrop: false,\n      scrollStrategy: this._overlay.scrollStrategies.reposition(),\n      positionStrategy: this._createPositionStrategy(),\n    });\n  }\n\n  private _createOverlay(): void {\n    this._overlayRef = this._overlay.create(this._createOverlayConfig());\n  }\n\n  private _createPositionStrategy(): FlexibleConnectedPositionStrategy {\n    const positionStrategy = this._overlayPositionBuilder\n      .flexibleConnectedTo(this._dropdownToggle)\n      .withPositions(this._getPosition())\n      .withFlexibleDimensions(false)\n      .withPush(this.withPush);\n\n    return positionStrategy;\n  }\n\n  private _getPosition(): ConnectedPosition[] {\n    this._isDropUp = this.host.classList.contains('dropup');\n    this._isDropStart = this.host.classList.contains('dropstart');\n    this._isDropEnd = this.host.classList.contains('dropend');\n    this._isDropdownMenuEnd =\n      this._dropdownMenu.elementRef.nativeElement.classList.contains('dropdown-menu-end');\n    this._xPosition = this._isDropdownMenuEnd ? 'end' : 'start';\n\n    const regex = new RegExp(/dropdown-menu-(sm|md|lg|xl|xxl)-(start|end)/, 'g');\n\n    const responsiveClass = this._dropdownMenu.elementRef.nativeElement.className.match(regex);\n\n    if (responsiveClass) {\n      this._subscribeBrakpoints();\n\n      const positionRegex = new RegExp(/start|end/, 'g');\n      const breakpointRegex = new RegExp(/(sm|md|lg|xl|xxl)/, 'g');\n\n      const dropdownPosition = positionRegex.exec(responsiveClass)[0];\n      const breakpoint = breakpointRegex.exec(responsiveClass)[0];\n\n      switch (true) {\n        case breakpoint === 'xxl' && this._breakpoints.isXxl:\n          this._xPosition = dropdownPosition;\n          break;\n        case breakpoint === 'xl' && this._breakpoints.isXl:\n          this._xPosition = dropdownPosition;\n          break;\n        case breakpoint === 'lg' && this._breakpoints.isLg:\n          this._xPosition = dropdownPosition;\n          break;\n        case breakpoint === 'md' && this._breakpoints.isMd:\n          this._xPosition = dropdownPosition;\n          break;\n        case breakpoint === 'sm' && this._breakpoints.isSm:\n          this._xPosition = dropdownPosition;\n          break;\n        default:\n          break;\n      }\n    }\n\n    let position;\n\n    const positionDropup = {\n      originX: this._xPosition,\n      originY: 'top',\n      overlayX: this._xPosition,\n      overlayY: 'bottom',\n      offsetY: -this.offset,\n    };\n\n    const positionDropdown = {\n      originX: this._xPosition,\n      originY: 'bottom',\n      overlayX: this._xPosition,\n      overlayY: 'top',\n      offsetY: this.offset,\n    };\n\n    const positionDropstart = {\n      originX: 'start',\n      originY: 'top',\n      overlayX: 'end',\n      overlayY: 'top',\n      offsetX: this.offset,\n    };\n\n    const positionDropend = {\n      originX: 'end',\n      originY: 'top',\n      overlayX: 'start',\n      overlayY: 'top',\n      offsetX: -this.offset,\n    };\n\n    switch (true) {\n      case this._isDropEnd:\n        position = [positionDropend, positionDropstart];\n        break;\n      case this._isDropStart:\n        position = [positionDropstart, positionDropend];\n        break;\n      case this._isDropUp:\n        position = [positionDropup, positionDropdown];\n        break;\n      default:\n        position = [positionDropdown, positionDropup];\n        break;\n    }\n\n    return position;\n  }\n\n  private _listenToEscKeyup(overlayRef: OverlayRef): Observable<KeyboardEvent> {\n    return fromEvent(document, 'keyup').pipe(\n      filter((event: KeyboardEvent) => event.key === 'Escape'),\n      takeUntil(overlayRef.detachments())\n    );\n  }\n\n  private _listenToMousedown(overlayRef: OverlayRef): Observable<MouseEvent> {\n    return fromEvent<MouseEvent>(document, 'mousedown').pipe(takeUntil(overlayRef.detachments()));\n  }\n\n  private _listenToClick(overlayRef: OverlayRef, origin: HTMLElement): Observable<MouseEvent> {\n    return fromEvent(document, 'click').pipe(\n      filter((event: MouseEvent) => {\n        const target = event.target as HTMLElement;\n        const isInsideMenu = this._dropdownMenu.elementRef.nativeElement.contains(target);\n        const notTogglerIcon = !this._dropdownToggle.nativeElement.contains(target);\n        const notCustomContent =\n          !isInsideMenu || (target.classList && target.classList.contains('dropdown-item'));\n        const notOrigin = target !== origin;\n        return notOrigin && notTogglerIcon && notCustomContent;\n      }),\n      takeUntil(overlayRef.detachments())\n    );\n  }\n\n  public onAnimationEnd(event: AnimationEvent): void {\n    if (event.fromState === 'visible' && event.toState === 'hidden') {\n      this._overlayRef.detach();\n      this._open = false;\n\n      this._renderer.setAttribute(this._dropdownToggle.nativeElement, 'aria-expanded', 'false');\n\n      this.dropdownHidden.emit(this);\n    }\n\n    if (event.fromState === 'hidden' && event.toState === 'visible') {\n      this.dropdownShown.emit(this);\n    }\n  }\n\n  private _subscribeBrakpoints(): void {\n    const brakpoints = [\n      '(min-width: 576px)',\n      '(min-width: 768px)',\n      '(min-width: 992px)',\n      '(min-width: 1200px)',\n      '(min-width: 1400px)',\n    ];\n\n    this._breakpointSubscription = this._breakpointObserver\n      .observe(brakpoints)\n      .pipe(takeUntil(this._destroy$))\n      .subscribe((result) => {\n        Object.keys(this._breakpoints).forEach((key, index) => {\n          const brakpointValue = brakpoints[index];\n          const newBreakpoint = result.breakpoints[brakpointValue];\n          const isBreakpointChanged = newBreakpoint !== this._breakpoints[key];\n\n          if (!isBreakpointChanged) {\n            return;\n          }\n\n          this._breakpoints[key] = newBreakpoint;\n\n          if (this._open) {\n            this._updateOverlay();\n          }\n        });\n      });\n  }\n\n  show(): void {\n    this._cdRef.markForCheck();\n\n    if (this._open) {\n      return;\n    }\n\n    if (!this._overlayRef) {\n      this._createOverlay();\n    }\n\n    this._portal = new TemplatePortal(this._template, this._vcr);\n\n    this.dropdownShow.emit(this);\n\n    this._open = true;\n\n    this._renderer.setAttribute(this._dropdownToggle.nativeElement, 'aria-expanded', 'true');\n\n    this._overlayRef.attach(this._portal);\n\n    this._listenToEscKeyup(this._overlayRef).subscribe((isEsc) => {\n      if (isEsc && this.closeOnEsc) {\n        this.hide();\n      }\n    });\n\n    this._overlayRef\n      .keydownEvents()\n      .pipe(takeUntil(this._overlayRef.detachments()))\n      .subscribe((event: KeyboardEvent) => {\n        this._handleKeyboardNavigation(event);\n      });\n\n    this._listenToMousedown(this._overlayRef).subscribe((event) => {\n      this._mousedownTarget = event.target as HTMLElement;\n    });\n\n    this._listenToClick(this._overlayRef, this._dropdownToggle.nativeElement).subscribe((event) => {\n      const target = event.target as HTMLElement;\n      const isDropdownItem = target.classList && target.classList.contains('dropdown-item');\n\n      const isOnMousedownDropdownMenu = this._dropdownMenu.elementRef.nativeElement.contains(\n        this._mousedownTarget\n      );\n\n      this._mousedownTarget = null;\n\n      if (this.closeOnItemClick && isDropdownItem) {\n        this.hide();\n        return;\n      }\n      if (this.closeOnOutsideClick && !isDropdownItem && !isOnMousedownDropdownMenu) {\n        this.hide();\n        return;\n      }\n    });\n\n    this._animationState = 'visible';\n  }\n\n  private _handleKeyboardNavigation(event: KeyboardEvent) {\n    const items: HTMLElement[] = Array.from(\n      this._dropdownMenu.elementRef.nativeElement.querySelectorAll('.dropdown-item')\n    );\n    const key = event.key;\n    const activeElement = this._dropdownMenu.elementRef.nativeElement.ownerDocument.activeElement;\n\n    if (items.length === 0) {\n      return;\n    }\n\n    let index = items.indexOf(activeElement);\n\n    switch (key) {\n      case 'ArrowDown':\n        event.preventDefault();\n\n        index = Math.min(index + 1, items.length - 1);\n        break;\n      case 'ArrowUp':\n        event.preventDefault();\n\n        if (index === -1) {\n          index = items.length - 1;\n          break;\n        }\n        index = Math.max(index - 1, 0);\n        break;\n    }\n\n    const nextActiveElement: HTMLElement = items[index];\n\n    if (nextActiveElement) {\n      nextActiveElement.focus();\n    }\n  }\n\n  hide(): void {\n    this._cdRef.markForCheck();\n\n    if (!this._open) {\n      return;\n    }\n\n    this.dropdownHide.emit(this);\n\n    this._animationState = 'hidden';\n  }\n\n  toggle(): void {\n    this._cdRef.markForCheck();\n\n    if (this._open) {\n      this.hide();\n    } else {\n      this.show();\n    }\n  }\n}\n","<ng-content></ng-content>\n<ng-content select=\".dropdown-toggle\"></ng-content>\n<ng-template #dropdownTemplate>\n  <div [@fade]=\"_animationState\" (@fade.done)=\"onAnimationEnd($event)\" [@.disabled]=\"!animation\">\n    <ng-content select=\".dropdown-menu\"></ng-content>\n  </div>\n</ng-template>\n","import { MdbDropdownDirective } from './dropdown.directive';\nimport { MdbDropdownToggleDirective } from './dropdown-toggle.directive';\nimport { MdbDropdownMenuDirective } from './dropdown-menu.directive';\nimport { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { OverlayModule } from '@angular/cdk/overlay';\n@NgModule({\n  imports: [CommonModule, OverlayModule],\n  declarations: [MdbDropdownDirective, MdbDropdownToggleDirective, MdbDropdownMenuDirective],\n  exports: [MdbDropdownDirective, MdbDropdownToggleDirective, MdbDropdownMenuDirective],\n})\nexport class MdbDropdownModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}