{"version":3,"file":"usitsdasdesign-dds-ng-dropdown.mjs","sources":["../../src/app/dds/dropdown/constants.ts","../../src/app/dds/dropdown/services/dropdown.service.ts","../../src/app/dds/dropdown/dropdown-item/dropdown-item.component.ts","../../src/app/dds/dropdown/dropdown-item/dropdown-item.component.html","../../src/app/dds/dropdown/dropdown-flyout/dropdown-flyout.component.ts","../../src/app/dds/dropdown/dropdown-flyout/dropdown-flyout.component.html","../../src/app/dds/dropdown/dropdown/dropdown.component.ts","../../src/app/dds/dropdown/dropdown/dropdown.component.html","../../src/app/dds/dropdown/dropdown.module.ts","../../src/app/dds/dropdown/usitsdasdesign-dds-ng-dropdown.ts"],"sourcesContent":["import { ThemeClassesMap, ThemeMapEnum } from '@usitsdasdesign/dds-ng/core/theme';\nimport { ButtonKind, ExtThemes, Size, WidthState } from '@usitsdasdesign/dds-ng/shared';\n\nexport const INDENT = 0;\nexport const SHIFT = 0;\nexport const DEFAULT_LABEL = 'Dropdown';\nexport const DEFAULT_ICON = 'dds-icon_arrow-down';\n\nexport const themeClassesMap: ThemeClassesMap = {\n  [ThemeMapEnum.Size]: {\n    [Size.lg]: 'dds-btn_lg',\n    [Size.sm]: 'dds-btn_sm',\n  },\n  [ThemeMapEnum.Kind]: {\n    [ButtonKind.primary]: 'dds-btn_primary',\n    [ButtonKind.secondary]: 'dds-btn_secondary',\n    [ButtonKind.secondaryLoud]: 'dds-btn_secondary-loud',\n    [ButtonKind.silent]: 'dds-btn_silent',\n  },\n  [ThemeMapEnum.Themes]: {\n    [ExtThemes.dark]: 'dds-btn_dark',\n    [ExtThemes.blue]: 'dds-btn_blue',\n    [ExtThemes.danger]: 'dds-btn_danger',\n  },\n  [ThemeMapEnum.WidthState]: {\n    [WidthState.full]: 'dds-btn_fluid-width',\n  },\n};\n","import { Injectable } from '@angular/core';\nimport { DropdownFlyoutComponent } from '../dropdown-flyout/dropdown-flyout.component';\nimport { DropdownItemComponent } from '../dropdown-item/dropdown-item.component';\nimport { DropdownComponent } from '../dropdown/dropdown.component';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class DropdownService {\n  private dropdown: DropdownComponent | DropdownFlyoutComponent;\n\n  // Initializes the dropdown service with the given component.\n  public initSelect(component: DropdownComponent | DropdownFlyoutComponent): void {\n    this.dropdown = component;\n  }\n\n  // Adds an item to the dropdown.\n  public addItem(item: DropdownItemComponent): void {\n    if (this.dropdown) {\n      this.dropdown.addDropdownItem(item);\n    }\n  }\n\n  // Changes the selected item in the dropdown.\n  public changeItem(value: string): void {\n    if (this.dropdown) {\n      this.dropdown.changeItem(value);\n    }\n  }\n}\n","import { CommonModule } from '@angular/common';\nimport { AfterViewInit, ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, HostBinding, Input, OnInit, ViewChild } from '@angular/core';\nimport { ContextMenuItemComponent, ContextMenuModule } from '@usitsdasdesign/dds-ng/context-menu';\nimport { AdditionalClass } from '@usitsdasdesign/dds-ng/shared';\nimport { DropdownService } from '../services/dropdown.service';\n\n@Component({\n  selector: 'dds-dropdown-item',\n  templateUrl: './dropdown-item.component.html',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  standalone: true,\n  imports: [\n    CommonModule,\n    ContextMenuModule\n  ],\n})\nexport class DropdownItemComponent implements OnInit, AfterViewInit {\n  // Bind the disabled class based on the disabled input property\n  @HostBinding(`class.${AdditionalClass.disabled}`) @Input() disabled: boolean | undefined;\n\n  // Bind the fullWidth class to always be true\n  @HostBinding(`class.${AdditionalClass.fullWidth}`) width = true;\n\n  // Input properties for the component\n  @Input() value: string | undefined;\n  @Input() customClass: string | undefined;\n  @Input() counter: number | undefined;\n  @Input() focus: boolean | undefined = false;\n  @Input() isSelected: boolean | undefined = false;\n\n  // ViewChild to access the ContextMenuItemComponent instance\n  @ViewChild(ContextMenuItemComponent, { static: true }) menuItem: ContextMenuItemComponent;\n\n  // Public property to store the item ID\n  public itemId: number;\n\n  // Constructor to inject dependencies\n  constructor(public cdr: ChangeDetectorRef, private dropdownService: DropdownService, public el: ElementRef) { }\n\n  // OnInit lifecycle hook to add the item to the dropdown service\n  public ngOnInit(): void {\n    this.dropdownService.addItem(this);\n  }\n\n  // AfterViewInit lifecycle hook to set the item ID from the menu item\n  public ngAfterViewInit(): void {\n    this.itemId = this.menuItem?.itemId;\n  }\n\n  // Method to change the item in the dropdown service\n  public changeItem(): void {\n    this.dropdownService.changeItem(this.value);\n  }\n\n  // Method to change the focus state and trigger change detection\n  public changeFocus(value: boolean): void {\n    this.focus = value;\n    this.cdr.detectChanges();\n  }\n}\n","<dds-context-menu-item [ngClass]=\"{\n                          'dds-dropdown-item_selected': isSelected\n                        }\"\n                       [counter]=\"counter\"\n                       [focus]=\"focus\"\n                       [disabled]=\"disabled\"\n                       [ariaSelected]=\"isSelected\"\n                       [customClass]=\"customClass\"\n                       (selectedItem)=\"changeItem()\">\n  <ng-content></ng-content>\n</dds-context-menu-item>","import { CommonModule } from '@angular/common';\nimport {\n  AfterViewInit,\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  ContentChildren,\n  ElementRef,\n  EventEmitter,\n  HostBinding,\n  Input,\n  OnInit,\n  Output,\n  QueryList,\n  SimpleChanges,\n  TemplateRef,\n  ViewChild\n} from '@angular/core';\nimport { ContextMenuComponent, ContextMenuModule } from '@usitsdasdesign/dds-ng/context-menu';\nimport { DestroyCtor, DestroyMixin, FormAccessorCtor, FormAccessorMixin } from '@usitsdasdesign/dds-ng/core/common-behaviors';\nimport { FocusHandlerModule } from '@usitsdasdesign/dds-ng/core/focus-handler';\nimport { ListManager } from '@usitsdasdesign/dds-ng/core/list-manager';\nimport { ThemeClassesMap, ThemeModule } from '@usitsdasdesign/dds-ng/core/theme';\nimport { generateId } from '@usitsdasdesign/dds-ng/core/utils';\nimport { AdditionalClass, ButtonKind, ExtThemes, KeyCodes, PositionState, Size, WidthState } from '@usitsdasdesign/dds-ng/shared';\nimport { DdsConfigService } from '@usitsdasdesign/dds-ng/shared/dds-config';\nimport { ResizeHandlerModule } from '@usitsdasdesign/dds-ng/shared/resize-handler';\nimport { StickerModule } from '@usitsdasdesign/dds-ng/sticker';\nimport { takeUntil } from 'rxjs';\nimport { DEFAULT_ICON, DEFAULT_LABEL, themeClassesMap } from '../constants';\nimport { DropdownItemComponent } from '../dropdown-item/dropdown-item.component';\nimport { DropdownService } from '../services/dropdown.service';\n\nconst DropdownFlyoutBase: DestroyCtor & FormAccessorCtor = DestroyMixin(FormAccessorMixin());\n\n@Component({\n  selector: 'dds-dropdown-flyout',\n  templateUrl: './dropdown-flyout.component.html',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [DropdownService],\n  standalone: true,\n  imports: [\n    CommonModule,\n    StickerModule,\n    FocusHandlerModule,\n    ContextMenuModule,\n    ResizeHandlerModule,\n    ThemeModule\n  ],\n})\nexport class DropdownFlyoutComponent extends DropdownFlyoutBase implements OnInit, AfterViewInit {\n  // Binds the disabled class to the host element based on the disabled input property.\n  @HostBinding(`class.${AdditionalClass.disabled}`) @Input() disabled: boolean | undefined;\n\n  // Binds the inlineFlex class to the host element.\n  @HostBinding(`class.${AdditionalClass.inlineFlex}`) inlineFlex = true;\n\n  // Binds the fullWidth class to the host element based on the width input property.\n  @HostBinding(`class.${AdditionalClass.fullWidth}`) get isFullWidth(): boolean {\n    return this.width === WidthState.full;\n  }\n\n  // Queries all DropdownItemComponent instances within the content of this component.\n  @ContentChildren(DropdownItemComponent, { descendants: true }) items: QueryList<DropdownItemComponent>;\n\n  // References the dropdown button element.\n  @ViewChild('dropdownBtn') dropdownBtn: ElementRef<HTMLElement>;\n\n  // The label for the dropdown button.\n  @Input() label: string | undefined = DEFAULT_LABEL;\n\n  // The aria-label attribute for the dropdown button.\n  @Input() ariaLabel: string | undefined;\n\n  // The icon for the dropdown button.\n  @Input() icon: string | undefined = DEFAULT_ICON;\n\n  // The theme for the dropdown component.\n  @Input() theme: ExtThemes | string | undefined = this.ddsConfig.getConfig().theme;\n\n  // The kind of button for the dropdown.\n  @Input() kind: ButtonKind | string | undefined;\n\n  // The size of the dropdown button.\n  @Input() size: Size | string | undefined = this.ddsConfig.getConfig().size;\n\n  // The width state of the dropdown.\n  @Input() width: WidthState | string | undefined;\n\n  // Custom CSS class for the dropdown component.\n  @Input() customClass: string | undefined;\n\n  // Indicates if the background color should be applied.\n  @Input() isColorBg: boolean | undefined;\n\n  // Indicates if the inverse theme should be applied.\n  @Input() isInverse: boolean | undefined;\n\n  // Indicates if the dropdown is in a loading state.\n  @Input() isLoading: boolean | undefined = false;\n\n  // Indicates if the dropdown is in a loading state with a counter.\n  @Input() isLoadingWithCounter: boolean | undefined = false;\n\n  // Template for the loading state.\n  @Input() loadingTemplate: TemplateRef<any> | undefined;\n\n  // The width of the dropdown menu.\n  @Input() dropdownMenuWidth: number | string | undefined = 200;\n\n  // The maximum height of the dropdown menu.\n  @Input() dropdownMenuMaxHeight: number | string | undefined;\n\n  // The position of the dropdown menu.\n  @Input() dropdownMenuPosition: PositionState | string | undefined = PositionState.bottomLeft;\n\n  // Custom CSS class for the dropdown menu.\n  @Input() dropdownMenuCustomClass: string | undefined;\n\n  // Event emitted when an item is selected.\n  @Output() itemSelected = new EventEmitter<string>();\n\n  // Indicates if the dropdown is currently shown.\n  public dropdownShow: boolean = false;\n\n  // Configuration for theme classes.\n  public themeConfig: ThemeClassesMap = themeClassesMap;\n\n  // The ID of the currently active item.\n  public activeItemId: number;\n\n  // The unique ID of the dropdown component.\n  public id: string;\n\n  // Indicates if the dropdown is responsive.\n  public isResponsive = false;\n\n  // The ID for the label element.\n  public labelId = generateId();\n\n  // List of dropdown items.\n  private dropdownItems: DropdownItemComponent[] = [];\n\n  // Manager for handling keyboard navigation.\n  private keyManager: ListManager<DropdownItemComponent>;\n\n  // The currently selected value.\n  private selectedValue: string;\n\n  // Reference to the context menu component.\n  private contextMenu: ContextMenuComponent;\n\n  // Indicates if the dropdown was triggered by a keyboard event.\n  private keyboardTrigger: boolean;\n\n  // Returns the expanded text based on the dropdownShow state.\n  get isExpandedText(): string {\n    return this.dropdownShow ? 'expanded' : '';\n  }\n\n  // Returns the width of the dropdown menu as a string.\n  get getDropdownMenuWidth(): string {\n    return this.isNumeric(this.dropdownMenuWidth) ? this.dropdownMenuWidth + 'px' : (this.dropdownMenuWidth as string);\n  }\n\n  constructor(public cdr: ChangeDetectorRef, private dropdownService: DropdownService, private ddsConfig: DdsConfigService) {\n    super();\n  }\n\n  public ngOnInit(): void {\n    this.dropdownService.initSelect(this);\n    this.id = generateId();\n  }\n\n  public ngOnChanges(changes: SimpleChanges): void {\n    if (changes.isLoading && !changes.isLoading.currentValue) {\n      this.setActiveItem();\n    }\n  }\n\n  public ngAfterViewInit(): void {\n    this.initKeyManager();\n  }\n\n  // Adds a dropdown item to the list of items.\n  public addDropdownItem(dropdownItem: DropdownItemComponent): void {\n    this.dropdownItems.push(dropdownItem);\n  }\n\n  // Handles mouseover events to show the dropdown.\n  public mouseover(): void {\n    this.dropdownShow = true;\n    this.setActiveItem();\n    this.onModelTouched();\n  }\n\n  // Closes the dropdown.\n  public close(): void {\n    this.dropdownShow = false;\n    this.keyboardTrigger = false;\n\n    if (this.keyManager.activeItem) {\n      this.keyManager.activeItem.changeFocus(false);\n    }\n\n    this.keyManager.updateActiveItem(null);\n\n    this.cdr.detectChanges();\n  }\n\n  // Checks if the button text element is empty.\n  public checkBtnText(btnTextEl: HTMLElement): boolean {\n    return !btnTextEl.innerHTML.trim();\n  }\n\n  // Changes the selected item and emits the itemSelected event.\n  public changeItem(value: string): void {\n    this.selectedValue = value;\n    this.itemSelected.emit(value);\n    this.close();\n  }\n\n  // Initializes the context menu component.\n  public contextMenuInit(contextMenu: ContextMenuComponent): void {\n    this.contextMenu = contextMenu;\n  }\n\n  // Handles keydown events for the dropdown button.\n  public handleKeydown(event: KeyboardEvent) {\n    if (event.keyCode === KeyCodes.ENTER || event.keyCode === KeyCodes.SPACE) {\n      this.dropdownShow = true;\n      this.keyboardTrigger = true;\n      this.dropdownBtn.nativeElement.blur();\n      this.dropdownBtn.nativeElement.classList.remove(AdditionalClass.keyboardFocus);\n      setTimeout(() => this.contextMenu.focus());\n\n      this.setActiveItem();\n      this.keyManager?.activeItem?.changeFocus(true);\n      this.onModelTouched();\n    }\n  }\n\n  // Prevents default behavior for certain keyboard events.\n  public preventEvent(event: KeyboardEvent): void {\n    if (event.keyCode === KeyCodes.ENTER || event.keyCode === KeyCodes.SPACE) {\n      event.preventDefault();\n    }\n  }\n\n  // Handles keydown events for the dropdown menu.\n  public handleKeydownMenu(event: KeyboardEvent): void {\n    if (!this.disabled) {\n      this.keyManager.onKeydown(event);\n    }\n\n    if ((event.keyCode === KeyCodes.ENTER || event.keyCode === KeyCodes.SPACE) && this.keyManager.activeItem) {\n      event.preventDefault();\n      event.stopPropagation();\n\n      this.keyManager.activeItem.changeItem();\n      this.dropdownBtn.nativeElement.focus();\n      this.dropdownShow = false;\n    }\n\n    if (event.keyCode === KeyCodes.ESC) {\n      event.stopPropagation();\n      event.preventDefault();\n      this.dropdownBtn.nativeElement.focus();\n      this.dropdownShow = false;\n      this.keyManager.updateActiveItem(null);\n    }\n  }\n\n  // Resets the selected item and marks the component for check.\n  public reset(): void {\n    this.changeItem(null);\n    this.cdr.markForCheck();\n  }\n\n  // Returns the aria-label attribute for the dropdown button.\n  public getAriaLabel(): string {\n    let isLabel = (this.label?.length && !this.ariaLabel?.length) ? null : this.ariaLabel;\n    return this.ariaLabel || isLabel;\n  }\n\n  // Returns the aria-labelledby attribute for the dropdown button.\n  public getAriaLabelBy(): string {\n    return this.label?.length && !this.ariaLabel?.length ? this.labelId : null;\n  }\n\n  // Checks if a value is numeric.\n  public isNumeric(val: any): boolean {\n    return !(val instanceof Array) && val - parseFloat(val) + 1 >= 0;\n  }\n\n  // Sets the active item in the dropdown.\n  private setActiveItem(): void {\n    setTimeout(() => {\n      let activeItemIndex = 0;\n\n      this.items.forEach((item, i) => {\n        item.isSelected = false;\n        if (this.keyboardTrigger) item.changeFocus(false);\n\n        if (item.value === this.selectedValue) {\n          activeItemIndex = i;\n          item.isSelected = true;\n          if (this.keyboardTrigger) item.changeFocus(true);\n        }\n\n        item.cdr.detectChanges();\n      });\n\n      if (this.keyboardTrigger) this.keyManager.setActiveItem(activeItemIndex);\n    });\n  }\n\n  // Initializes the key manager for handling keyboard navigation.\n  private initKeyManager(): void {\n    this.keyManager = new ListManager(this.items).withHomeAndEnd();\n\n    this.keyManager.change.pipe(takeUntil(this.destroy)).subscribe(() => {\n      if (this.keyManager.previousActiveItem) this.keyManager.previousActiveItem.changeFocus(false);\n\n      if (this.keyManager.activeItem) {\n        this.keyManager.activeItem.changeFocus(true);\n        this.activeItemId = this.keyManager.activeItem.itemId;\n        this.scrollToItem();\n      }\n    });\n\n    this.keyManager.tabOut.pipe(takeUntil(this.destroy)).subscribe(() => {\n      if (this.dropdownShow) {\n        this.dropdownBtn.nativeElement.focus();\n        this.dropdownShow = false;\n        this.keyManager.updateActiveItem(null);\n      }\n    });\n  }\n\n  // Scrolls to the active item in the dropdown menu.\n  private scrollToItem(): void {\n    const activeEl = this.keyManager.activeItem.el.nativeElement;\n    const contextMenuEl = this.contextMenu.contextMenu.nativeElement.querySelector('.dds-context-menu__body');\n    const activeElHeight = activeEl.getBoundingClientRect().height;\n    const contextMenuHeight = contextMenuEl.getBoundingClientRect().height;\n\n    contextMenuEl.scrollTop = activeEl.offsetTop - contextMenuHeight + activeElHeight * 2;\n  }\n}\n","<button [ngClass]=\"{\n          'dds-btn_fluid-width': isFullWidth,\n          'active': dropdownShow,\n          'dds-dropdown_disabled': disabled\n        }\"\n        [disabled]=\"disabled\"\n        [attr.aria-label]=\"getAriaLabel()\"\n        [attr.aria-labelledby]=\"getAriaLabelBy()\"\n        [attr.aria-disabled]=\"disabled\"\n        [attr.aria-expanded]=\"dropdownShow\"\n        [attr.aria-controls]=\"id\"\n        data-qa=\"dropdown\"\n        aria-haspopup=\"true\"\n        role=\"combobox\"\n        class=\"dds-dropdown {{customClass}}\"\n        ddsFocus\n        (mouseover)=\"mouseover()\"\n        (mouseout)=\"close()\"\n        (keydown)=\"handleKeydown($event);preventEvent($event)\"\n        (keyup)=\"preventEvent($event)\"\n        #dropdownBtn>\n\n  <div [ngClass]=\"{\n          'dds-btn_inverse': isInverse,\n          'dds-btn_color-bg': isColorBg,\n          'dds-btn_empty': !label?.length\n        }\"\n       [size]=\"size\"\n       [kind]=\"kind\"\n       [theme]=\"theme\"\n       [width]=\"width\"\n       [ddsTheme]=\"themeConfig\"\n       class=\"dds-btn dds-btn_with-icon dds-dropdown__btn\">\n\n    <div class=\"dds-btn__content\">\n\n      <span class=\"dds-btn__text\"\n            [attr.id]=\"labelId\"\n            aria-hidden=\"true\"\n            #btnText>\n        {{ label }}\n      </span>\n\n      <span class=\"dds-btn__icon dds-icon {{icon}}\"></span>\n    </div>\n  </div>\n\n  <span class=\"hidden-aria-polite\"\n        aria-live=\"polite\">{{isExpandedText}}</span>\n\n  <div [ngStyle]=\"{'width': getDropdownMenuWidth}\"\n       class=\"dds-dropdown__menu-wrap {{dropdownMenuPosition}} {{dropdownMenuCustomClass}}\">\n    <dds-context-menu [size]=\"size\"\n                      [maxHeight]=\"dropdownMenuMaxHeight\"\n                      [label]=\"label\"\n                      [isInverse]=\"isInverse\"\n                      [isResponsive]=\"isResponsive\"\n                      [id]=\"id\"\n                      [isLoading]=\"isLoading\"\n                      [isLoadingWithCounter]=\"isLoadingWithCounter\"\n                      [loadingTemplate]=\"loadingTemplate\"\n                      [enabledListManager]=\"false\"\n                      [activeItemId]=\"activeItemId\"\n                      ariaLabel=\"Context menu for Dropdown label\"\n                      ddsResize\n                      class=\"dds-dropdown__menu\"\n                      (onInit)=\"contextMenuInit($event)\"\n                      (keyPressed)=\"handleKeydownMenu($event)\">\n      <ng-content></ng-content>\n    </dds-context-menu>\n  </div>\n</button>\n","import { CommonModule } from '@angular/common';\nimport {\n  AfterViewInit,\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  ContentChildren,\n  ElementRef,\n  EventEmitter,\n  HostBinding,\n  Input,\n  OnInit,\n  Output,\n  QueryList,\n  SimpleChanges,\n  TemplateRef,\n  ViewChild,\n} from '@angular/core';\nimport { ContextMenuModule } from '@usitsdasdesign/dds-ng/context-menu';\nimport { DestroyCtor, DestroyMixin, FormAccessorCtor, FormAccessorMixin } from '@usitsdasdesign/dds-ng/core/common-behaviors';\nimport { FocusHandlerModule } from '@usitsdasdesign/dds-ng/core/focus-handler';\nimport { ListManager } from '@usitsdasdesign/dds-ng/core/list-manager';\nimport { ThemeClassesMap, ThemeModule } from '@usitsdasdesign/dds-ng/core/theme';\nimport { generateId } from '@usitsdasdesign/dds-ng/core/utils';\nimport { AdditionalClass, ButtonKind, ExtThemes, KeyCodes, PositionState, Size, WidthState } from '@usitsdasdesign/dds-ng/shared';\nimport { DdsConfigService } from '@usitsdasdesign/dds-ng/shared/dds-config';\nimport { I18nModule } from '@usitsdasdesign/dds-ng/shared/i18n';\nimport { ResizeHandlerModule } from '@usitsdasdesign/dds-ng/shared/resize-handler';\nimport { StickerDirective, StickerModule } from '@usitsdasdesign/dds-ng/sticker';\nimport { takeUntil } from 'rxjs/operators';\nimport { DEFAULT_ICON, DEFAULT_LABEL, SHIFT, themeClassesMap } from '../constants';\nimport { DropdownItemComponent } from '../dropdown-item/dropdown-item.component';\nimport { DropdownService } from '../services/dropdown.service';\n\nconst DropdownBase: DestroyCtor & FormAccessorCtor = DestroyMixin(FormAccessorMixin());\n\n@Component({\n  selector: 'dds-dropdown',\n  templateUrl: './dropdown.component.html',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [DropdownService],\n  standalone: true,\n  imports: [CommonModule, StickerModule, FocusHandlerModule, ContextMenuModule, ResizeHandlerModule, ThemeModule, I18nModule],\n})\nexport class DropdownComponent extends DropdownBase implements OnInit, AfterViewInit {\n  // Binds the 'disabled' class to the host element when the 'disabled' input is true.\n  @HostBinding(`class.${AdditionalClass.disabled}`) @Input() disabled: boolean | undefined;\n\n  // Binds the 'inlineFlex' class to the host element.\n  @HostBinding(`class.${AdditionalClass.inlineFlex}`) inlineFlex = true;\n\n  // Binds the 'fullWidth' class to the host element when the width is set to 'full'.\n  @HostBinding(`class.${AdditionalClass.fullWidth}`) get isFullWidth(): boolean {\n    return this.width === WidthState.full;\n  }\n\n  // Queries all descendant DropdownItemComponent instances.\n  @ContentChildren(DropdownItemComponent, { descendants: true }) items: QueryList<DropdownItemComponent>;\n\n  // References the dropdown button element.\n  @ViewChild('dropdownBtn') dropdownBtn: ElementRef<HTMLElement>;\n\n  // References the StickerDirective instance.\n  @ViewChild('stickerDir') sticker: StickerDirective;\n\n  // The label for the dropdown.\n  @Input() label: string | undefined = DEFAULT_LABEL;\n\n  // The aria-label for accessibility.\n  @Input() ariaLabel: string | undefined;\n\n  // The icon for the dropdown.\n  @Input() icon: string | undefined = DEFAULT_ICON;\n\n  // The theme for the dropdown.\n  @Input() theme: ExtThemes | string | undefined = this.ddsConfig.getConfig().theme;\n\n  // The kind of button for the dropdown.\n  @Input() kind: ButtonKind | string | undefined;\n\n  // The size of the dropdown.\n  @Input() size: Size | string | undefined = this.ddsConfig.getConfig().size;\n\n  // The width state of the dropdown.\n  @Input() width: WidthState | string | undefined;\n\n  // Custom CSS class for the dropdown.\n  @Input() customClass: string | undefined;\n\n  // Whether the dropdown has a colored background.\n  @Input() isColorBg: boolean | undefined;\n\n  // Whether the dropdown is in inverse mode.\n  @Input() isInverse: boolean | undefined;\n\n  // Whether the dropdown is responsive.\n  @Input() isResponsive: boolean | undefined = this.ddsConfig.getConfig().isResponsive;\n\n  // Whether the dropdown is in a loading state.\n  @Input() isLoading: boolean | undefined = false;\n\n  // Whether the dropdown shows a loading counter.\n  @Input() isLoadingWithCounter: boolean | undefined = false;\n\n  // Template for the loading state.\n  @Input() loadingTemplate: TemplateRef<any> | undefined;\n\n  // The width of the sticker.\n  @Input() stickerWidth: number | string | undefined;\n\n  // The maximum height of the sticker.\n  @Input() stickerMaxHeight: number | string | undefined;\n\n  // The shift value for the sticker.\n  @Input() stickerShift: number | undefined = SHIFT;\n\n  // Custom CSS class for the sticker.\n  @Input() stickerCustomClass: string | undefined;\n\n  // Whether the sticker closes on outside click.\n  @Input() stickerIsOutsideClick: boolean | undefined;\n\n  // Whether the sticker is disabled.\n  @Input() stickerIsDisabled: boolean | undefined;\n\n  // The position state of the sticker.\n  @Input() stickerPosition: PositionState | string | undefined = this.ddsConfig.getConfig().stickerPosition;\n\n  // The indent value for the sticker.\n  @Input() stickerIndent: number | undefined = this.ddsConfig.getConfig().stickerIndent;\n\n  // Whether the sticker is dynamic.\n  @Input() stickerIsDynamic: boolean | undefined = true;\n\n  // Event emitted when an item is selected.\n  @Output() itemSelected = new EventEmitter<string>();\n\n  // Whether the dropdown is shown.\n  public dropdownShow: boolean = false;\n\n  // The theme configuration map.\n  public themeConfig: ThemeClassesMap = themeClassesMap;\n\n  // The ID of the active item.\n  public activeItemId: number;\n\n  // The ID of the dropdown.\n  public id: string;\n\n  // The ID for the label element.\n  public labelId = generateId();\n\n  // The list of dropdown items.\n  private dropdownItems: DropdownItemComponent[] = [];\n\n  // The key manager for handling keyboard navigation.\n  private keyManager: ListManager<DropdownItemComponent>;\n\n  // The selected value of the dropdown.\n  private selectedValue: string;\n\n  // Whether the dropdown was triggered by keyboard.\n  private keyboardTrigger: boolean;\n\n  // Gets the expanded text for accessibility.\n  get isExpandedText(): string {\n    return this.dropdownShow ? 'expanded' : '';\n  }\n\n  constructor(public cdr: ChangeDetectorRef, private dropdownService: DropdownService, private ddsConfig: DdsConfigService) {\n    super();\n  }\n\n  public ngOnInit(): void {\n    this.dropdownService.initSelect(this);\n    this.id = generateId();\n  }\n\n  public ngOnChanges(changes: SimpleChanges): void {\n    if (changes.isLoading && !changes.isLoading.currentValue) {\n      this.setActiveItem();\n    }\n  }\n\n  public ngAfterViewInit(): void {\n    this.initKeyManager();\n  }\n\n  // Adds a dropdown item to the list.\n  public addDropdownItem(dropdownItem: DropdownItemComponent): void {\n    this.dropdownItems.push(dropdownItem);\n  }\n\n  // Toggles the visibility of the dropdown.\n  public toggleDropdown(): void {\n    this.dropdownShow = !this.dropdownShow;\n    this.onModelTouched();\n\n    if (this.keyManager.activeItem) {\n      this.keyManager.activeItem.changeFocus(false);\n    }\n  }\n\n  // Checks if the button text is empty.\n  public checkBtnText(btnTextEl: HTMLElement): boolean {\n    return !btnTextEl.innerHTML.trim();\n  }\n\n  // Handles the dropdown being hidden.\n  public onHidden(): void {\n    this.dropdownShow = false;\n    this.keyboardTrigger = false;\n    this.keyManager.updateActiveItem(null);\n    this.cdr.detectChanges();\n  }\n\n  // Handles the dropdown being shown.\n  public onShown(el: HTMLElement): void {\n    this.dropdownShow = true;\n    el.blur();\n    this.setActiveItem();\n  }\n\n  // Changes the selected item.\n  public changeItem(value: string): void {\n    this.selectedValue = value;\n    this.itemSelected.emit(value);\n  }\n\n  // Handles keydown events on the dropdown.\n  public handleKeydown(event: KeyboardEvent) {\n    if (event.keyCode === KeyCodes.ENTER || event.keyCode === KeyCodes.SPACE) {\n      this.keyboardTrigger = true;\n\n      this.sticker.show();\n      this.onModelTouched();\n    }\n  }\n\n  // Prevents the default event for certain keydown events.\n  public preventEvent(event: KeyboardEvent): void {\n    if (event.keyCode === KeyCodes.ENTER || event.keyCode === KeyCodes.SPACE) {\n      event.preventDefault();\n    }\n  }\n\n  // Handles keydown events on the dropdown menu.\n  public handleKeydownMenu(event: KeyboardEvent): void {\n    if (!this.disabled) {\n      this.keyManager.onKeydown(event);\n    }\n\n    if ((event.keyCode === KeyCodes.ENTER || event.keyCode === KeyCodes.SPACE) && this.keyManager.activeItem) {\n      event.preventDefault();\n      this.keyManager.activeItem.changeItem();\n      this.sticker.hide();\n    }\n  }\n\n  // Resets the dropdown to its initial state.\n  public reset(): void {\n    this.changeItem(null);\n    this.cdr.markForCheck();\n  }\n\n  // Gets the aria-label for the dropdown.\n  public getAriaLabel(): string {\n    let isLabel = this.label?.length && !this.ariaLabel?.length ? null : this.ariaLabel;\n    return this.ariaLabel || isLabel;\n  }\n\n  // Gets the aria-labelledby attribute value.\n  public getAriaLabelBy(): string {\n    return this.label?.length && !this.ariaLabel?.length ? this.labelId : null;\n  }\n\n  // Sets the active item in the dropdown.\n  private setActiveItem(): void {\n    setTimeout(() => {\n      let activeItemIndex = 0;\n\n      this.items.forEach((item, i) => {\n        item.isSelected = false;\n        item.changeFocus(false);\n        if (this.keyboardTrigger) item.changeFocus(false);\n\n        if (item.value === this.selectedValue) {\n          activeItemIndex = i;\n          item.isSelected = true;\n          if (this.keyboardTrigger) item.changeFocus(true);\n        }\n\n        item.cdr.detectChanges();\n      });\n\n      if (this.keyboardTrigger) this.keyManager.setActiveItem(activeItemIndex);\n    });\n  }\n\n  // Initializes the key manager for handling keyboard navigation.\n  private initKeyManager(): void {\n    this.keyManager = new ListManager(this.items).withHomeAndEnd();\n\n    this.keyManager.change.pipe(takeUntil(this.destroy)).subscribe(() => {\n      if (this.keyManager.previousActiveItem) this.keyManager.previousActiveItem.changeFocus(false);\n      if (this.keyManager.activeItem) {\n        this.keyManager.activeItem.changeFocus(true);\n        this.activeItemId = this.keyManager.activeItem.itemId;\n      }\n    });\n\n    this.keyManager.tabOut.pipe(takeUntil(this.destroy)).subscribe(() => {\n      if (this.dropdownShow) {\n        this.dropdownBtn.nativeElement.focus();\n        this.sticker.hide();\n      }\n    });\n  }\n}\n","<button [ngClass]=\"{\n          'dds-btn_fluid-width': isFullWidth,\n          'active': dropdownShow,\n          'dds-dropdown_disabled': disabled,\n          'dds-dropdown_inverse': isInverse\n        }\"\n        [ddsSticker]=\"dropdownMenu\"\n        [stickerWidth]=\"stickerWidth\"\n        [stickerMaxHeight]=\"stickerMaxHeight\"\n        [stickerIsOutsideClick]=\"stickerIsOutsideClick\"\n        [stickerShift]=\"stickerShift\"\n        [stickerIsDisabled]=\"stickerIsDisabled\"\n        [stickerPosition]=\"stickerPosition\"\n        [stickerIndent]=\"stickerIndent\"\n        [stickerIsResponsive]=\"isResponsive\"\n        [stickerCustomClass]=\"stickerCustomClass\"\n        [stickerIsDynamic]=\"stickerIsDynamic\"\n        [disabled]=\"disabled\"\n        [attr.aria-label]=\"getAriaLabel()\"\n        [attr.aria-labelledby]=\"getAriaLabelBy()\"\n        [attr.aria-disabled]=\"disabled\"\n        [attr.aria-expanded]=\"dropdownShow\"\n        [attr.aria-controls]=\"id\"\n        data-qa=\"dropdown\"\n        aria-haspopup=\"true\"\n        role=\"combobox\"\n        class=\"dds-dropdown {{customClass}}\"\n        ddsFocus\n        (click)=\"toggleDropdown()\"\n        (keydown)=\"handleKeydown($event);preventEvent($event)\"\n        (keyup)=\"preventEvent($event)\"\n        (onShown)=\"onShown(dropdownBtn)\"\n        (onHidden)=\"onHidden()\"\n        #stickerDir=\"dds-sticker\"\n        #dropdownBtn>\n\n  <div [ngClass]=\"{\n          'dds-btn_inverse': isInverse,\n          'dds-btn_color-bg': isColorBg,\n          'dds-btn_empty': !label?.length\n        }\"\n       [size]=\"size\"\n       [kind]=\"kind\"\n       [theme]=\"theme\"\n       [width]=\"width\"\n       [ddsTheme]=\"themeConfig\"\n       class=\"dds-btn dds-btn_with-icon dds-dropdown__btn\">\n\n    <div class=\"dds-btn__content\">\n\n      <span class=\"dds-btn__text\"\n            #btnText\n            [attr.id]=\"labelId\"\n            aria-hidden=\"true\">\n        {{ label }}\n      </span>\n\n      <span class=\"dds-btn__icon dds-icon {{icon}}\"></span>\n    </div>\n  </div>\n\n  <span class=\"hidden-aria-polite\"\n        aria-live=\"polite\">{{isExpandedText}}</span>\n\n  <ng-template #dropdownMenu>\n    <dds-context-menu [size]=\"size\"\n                      [maxHeight]=\"stickerMaxHeight\"\n                      [label]=\"label\"\n                      [isInverse]=\"isInverse\"\n                      [isResponsive]=\"isResponsive\"\n                      [id]=\"id\"\n                      [activeItemId]=\"activeItemId\"\n                      [isLoading]=\"isLoading\"\n                      [isLoadingWithCounter]=\"isLoadingWithCounter\"\n                      [loadingTemplate]=\"loadingTemplate\"\n                      ariaLabel=\"Context menu for Dropdown label\"\n                      ddsResize\n                      class=\"dds-dropdown__menu\"\n                      (keyPressed)=\"handleKeydownMenu($event)\">\n      <ng-content></ng-content>\n    </dds-context-menu>\n  </ng-template>\n</button>\n","import { NgModule } from '@angular/core';\nimport { DropdownFlyoutComponent } from './dropdown-flyout/dropdown-flyout.component';\nimport { DropdownItemComponent } from './dropdown-item/dropdown-item.component';\nimport { DropdownComponent } from './dropdown/dropdown.component';\n\n@NgModule({\n  declarations: [],\n  imports: [DropdownComponent, DropdownFlyoutComponent, DropdownItemComponent],\n  exports: [DropdownComponent, DropdownFlyoutComponent, DropdownItemComponent],\n})\nexport class DropdownModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.DropdownService","i3","i5","takeUntil","i4","i7","i8"],"mappings":"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"}