{"version":3,"file":"usitsdasdesign-dds-ng-multi-select.mjs","sources":["../../src/app/dds/multi-select/typings.ts","../../src/app/dds/multi-select/multi-select/constants.ts","../../src/app/dds/multi-select/multi-select/multi-select.component.ts","../../src/app/dds/multi-select/multi-select/multi-select.component.html","../../src/app/dds/multi-select/multi-select.module.ts","../../src/app/dds/multi-select/usitsdasdesign-dds-ng-multi-select.ts"],"sourcesContent":["import { TemplateRef } from '@angular/core';\nimport { ErrorState, PositionState, Size, Themes } from '@usitsdasdesign/dds-ng/shared';\n\nexport interface MultiSelectOptions {\n  label?: string;\n  description?: string;\n  placeholder?: string;\n  icon?: string;\n  selectedAllLabel?: string;\n  tickAllBtnLabel?: string;\n  propName?: string;\n  groupingListProp?: string;\n  errorMessage?: string;\n  customClass?: string;\n  list?: string[];\n  controlType?: SelectControlTypes | string;\n  size?: Size | string;\n  errorState?: ErrorState | string;\n  type?: SelectType | string;\n  theme?: Themes | string;\n  counterTypeText?: string;\n  isInverse?: boolean;\n  disabled?: boolean;\n  displayTickAllBtn?: boolean;\n  isResponsive?: boolean;\n  isError?: boolean;\n  isRequired?: boolean;\n  ariaLabel?: string;\n  template?: TemplateRef<unknown>;\n  isLoading?: boolean;\n  isLoadingWithCounter?: boolean;\n  loadingTemplate?: TemplateRef<any>;\n  stickerWidth?: number | string;\n  stickerMaxHeight?: number | string;\n  stickerCustomClass?: string;\n  stickerIndent?: number;\n  stickerShift?: number;\n  stickerIsDisabled?: boolean;\n  stickerIsDynamic?: boolean;\n  stickerPosition?: PositionState | string;\n}\n\nexport interface MultiSelectItem {\n  label?: string;\n  value?: boolean;\n  counter?: number;\n  icon?: string;\n  imageSrc?: string;\n  customClass?: string;\n  disabled?: boolean;\n  [key: string]: any;\n}\n\nexport interface MultiSelectGroupingOptions {\n  items?: MultiSelectItem[];\n  [key: string]: any;\n}\n\nexport enum SelectType {\n  tags = 'tags',\n  text = 'text',\n  counter = 'counter',\n}\n\nexport enum SelectControlTypes {\n  checkbox = 'checkbox',\n  toggle = 'toggle',\n  icon = 'icon',\n}\n","import { ThemeClassesMap, ThemeMapEnum } from '@usitsdasdesign/dds-ng/core/theme';\nimport { Size, Themes } from '@usitsdasdesign/dds-ng/shared';\n\nexport const SHIFT = 0;\nexport const ALL_BTN_LABEL = 'All';\nexport const DEFAULT_PROP_NAME = 'label';\nexport const DEFAULT_ICON = 'dds-icon_arrow-down';\nexport const DEFAULT_COUNTER_TYPE_TEXT = 'selected options';\n\nexport const themeClassesMap: ThemeClassesMap = {\n  [ThemeMapEnum.Size]: {\n    [Size.lg]: 'dds-multi-select_lg',\n    [Size.sm]: 'dds-multi-select_sm',\n  },\n  [ThemeMapEnum.Themes]: {\n    [Themes.dark]: 'dds-multi-select_dark',\n    [Themes.blue]: 'dds-multi-select_blue',\n  },\n};\n","import { CommonModule } from '@angular/common';\nimport {\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  DoCheck,\n  ElementRef,\n  EventEmitter,\n  HostBinding,\n  Input,\n  OnChanges,\n  OnInit,\n  Optional,\n  Output,\n  QueryList,\n  Self,\n  SimpleChanges,\n  TemplateRef,\n  ViewChild,\n  ViewChildren,\n} from '@angular/core';\nimport { FormGroupDirective, NgControl, NgForm, ReactiveFormsModule } from '@angular/forms';\nimport { ButtonModule } from '@usitsdasdesign/dds-ng/button';\nimport { CheckboxModule } from '@usitsdasdesign/dds-ng/checkbox';\nimport { ContextMenuComponent, ContextMenuModule } from '@usitsdasdesign/dds-ng/context-menu';\nimport {\n  DestroyCtor,\n  DestroyMixin,\n  ErrorStateCtor,\n  ErrorStateMixin,\n  FormAccessorCtor,\n  FormAccessorMixin,\n  I18nCtor,\n  I18nMixin,\n  ResponsivenessCtor,\n  ResponsivenessMixin,\n} from '@usitsdasdesign/dds-ng/core/common-behaviors';\nimport { FocusHandlerModule } from '@usitsdasdesign/dds-ng/core/focus-handler';\nimport { ThemeClassesMap, ThemeModule } from '@usitsdasdesign/dds-ng/core/theme';\nimport { coerceBooleanProperty, generateId } from '@usitsdasdesign/dds-ng/core/utils';\nimport { AdditionalClass, ErrorState, KeyCodes, PositionState, Size, Themes } from '@usitsdasdesign/dds-ng/shared';\nimport { DdsConfigService } from '@usitsdasdesign/dds-ng/shared/dds-config';\nimport { I18nModule, I18nService, ITranslation } from '@usitsdasdesign/dds-ng/shared/i18n';\nimport { ResizeHandlerModule, ResizeHandlerService } from '@usitsdasdesign/dds-ng/shared/resize-handler';\nimport { StickerDirective, StickerModule } from '@usitsdasdesign/dds-ng/sticker';\nimport { TagComponent, TagsModule } from '@usitsdasdesign/dds-ng/tags';\nimport { ToggleModule } from '@usitsdasdesign/dds-ng/toggle';\nimport { take } from 'rxjs/operators';\nimport { MultiSelectItem, SelectControlTypes, SelectType } from '../typings';\nimport { ALL_BTN_LABEL, DEFAULT_COUNTER_TYPE_TEXT, DEFAULT_ICON, DEFAULT_PROP_NAME, SHIFT, themeClassesMap } from './constants';\n\nconst MultiSelectBase: DestroyCtor & I18nCtor & ResponsivenessCtor & FormAccessorCtor & ErrorStateCtor = DestroyMixin(\n  I18nMixin(ResponsivenessMixin(FormAccessorMixin(ErrorStateMixin())))\n);\n\n@Component({\n  selector: 'dds-multi-select',\n  templateUrl: './multi-select.component.html',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  standalone: true,\n  imports: [\n    CommonModule,\n    StickerModule,\n    FocusHandlerModule,\n    ReactiveFormsModule,\n    CheckboxModule,\n    ToggleModule,\n    TagsModule,\n    ContextMenuModule,\n    ResizeHandlerModule,\n    ButtonModule,\n    ThemeModule,\n    I18nModule,\n  ],\n})\nexport class MultiSelectComponent extends MultiSelectBase implements OnInit, DoCheck, OnChanges {\n  // Host binding for disabled class\n  @HostBinding(`class.${AdditionalClass.disabled}`) @Input() disabled: boolean | undefined;\n\n  // ViewChild and ViewChildren for accessing template elements\n  @ViewChild('stickerDir') sticker: StickerDirective;\n  @ViewChild('multiSelectBtn') multiSelectBtn: ElementRef<HTMLElement>;\n  @ViewChildren('tags') tags: QueryList<TagComponent>;\n\n  // Input properties for various configurations\n  @Input() value: string[] | MultiSelectItem[] | undefined = [];\n  @Input() label: string | undefined;\n  @Input() displayTickAllBtn: boolean | undefined;\n  @Input() selectedAllLabel: string | undefined = ALL_BTN_LABEL;\n  @Input() tickAllBtnLabel: string | undefined = ALL_BTN_LABEL;\n  @Input() description: string | undefined;\n  @Input() placeholder: string | undefined;\n  @Input() errorMessage: string | undefined;\n  @Input() customClass: string | undefined;\n  @Input() icon: string | undefined = DEFAULT_ICON;\n  @Input() theme: Themes | string | undefined = this.ddsConfig.getConfig().theme;\n  @Input() size: Size | string | undefined = this.ddsConfig.getConfig().size;\n  @Input() isError: boolean | undefined;\n  @Input() isInverse: boolean | undefined;\n  @Input() isResponsive: boolean | undefined = this.ddsConfig.getConfig().isResponsive;\n  @Input() isRequired: boolean | undefined = false;\n  @Input() ariaLabel: string | undefined;\n  @Input() ariaControls: string | undefined;\n  @Input() isLoading: boolean | undefined = false;\n  @Input() isLoadingWithCounter: boolean | undefined = false;\n  @Input() loadingTemplate: TemplateRef<any> | undefined;\n\n  // Error state and type configurations\n  @Input() errorState: string | ErrorState | undefined = this.ddsConfig.getConfig().errorState;\n  @Input() type: SelectType | string | undefined = SelectType.text;\n  @Input() counterTypeText: string | undefined = DEFAULT_COUNTER_TYPE_TEXT;\n  @Input() controlType: SelectControlTypes | string | undefined;\n  @Input() template: TemplateRef<unknown> | undefined;\n  @Input() propName: string | undefined = DEFAULT_PROP_NAME;\n  @Input() groupingListProp: string | undefined;\n\n  // Sticker options\n  @Input() stickerWidth: number | string | undefined;\n  @Input() stickerMaxHeight: number | string | undefined;\n  @Input() stickerCustomClass: string | undefined;\n  @Input() stickerIndent: number | undefined = this.ddsConfig.getConfig().stickerIndent;\n  @Input() stickerShift: number | undefined = SHIFT;\n  @Input() stickerIsDisabled: boolean | undefined;\n  @Input() stickerIsDynamic: boolean | undefined = true;\n  @Input() stickerPosition: PositionState | string | undefined = this.ddsConfig.getConfig().stickerPosition;\n\n  @Input()\n  set list(list: any[] | undefined) {\n    this._list = list;\n    this.setList(list);\n  }\n\n  get list(): any[] | undefined {\n    return this._list;\n  }\n\n  // Output events for value changes and sticker visibility\n  @Output() valueChanged = new EventEmitter<any[]>();\n  @Output() stickerShown: EventEmitter<void> = new EventEmitter();\n  @Output() stickerHidden: EventEmitter<void> = new EventEmitter();\n\n  // Public properties for component state and configuration\n  public selectOpen = false;\n  public selectedItems: string | string[];\n  public items: any[] = [];\n  public stickerIsOutsideClick = true;\n  public themeConfig: ThemeClassesMap = themeClassesMap;\n  public resetBtnText: string;\n  public applyBtnText: string;\n  public isCheckboxControl = true;\n  public isToggleControl: boolean;\n  public isIconControl: boolean;\n  public btnAriaLabel: string;\n  public popupAriaLabel: string;\n  public id: string;\n\n  // Private properties for internal state management\n  private keyboardTrigger: boolean;\n  private activeValues: string[] = [];\n  private _list: any[] = [];\n  private _oldList: any[] = [];\n  private contextMenu: ContextMenuComponent;\n\n  // Getter for expanded text state\n  get isExpandedText(): string {\n    return this.selectOpen ? 'expanded' : '';\n  }\n\n  // Getter to check if the type is tags\n  get isTagsType(): boolean {\n    if (typeof this.selectedItems === 'string') {\n      this.selectedItems = this.selectedItems.split('; ');\n    }\n\n    return this.type === SelectType.tags;\n  }\n\n  // Getter to check if the type is text\n  get isTextType(): boolean {\n    if (typeof this.selectedItems === 'object') {\n      this.selectedItems = this.selectedItems.join('; ');\n    }\n\n    return this.type === SelectType.text;\n  }\n\n  // Getter to check if the type is counter\n  get isCounterType(): boolean {\n    return this.type === SelectType.counter;\n  }\n\n  // Getter to check if the footer button should be disabled\n  get isFooterBtnDisabled(): boolean {\n    return this.selectedItems.length < 1;\n  }\n\n  constructor(\n    @Optional() @Self() public ngControl: NgControl,\n    @Optional() public parentForm: NgForm,\n    @Optional() public parentFormGroup: FormGroupDirective,\n    public cdr: ChangeDetectorRef,\n    public resizeService: ResizeHandlerService,\n    public i18n: I18nService,\n    private ddsConfig: DdsConfigService\n  ) {\n    super();\n\n    if (this.ngControl !== null) {\n      this.ngControl.valueAccessor = this;\n    }\n  }\n\n  public ngOnInit(): void {\n    this.setActiveItems(this.value);\n    super.ngOnInit();\n    this.id = generateId();\n  }\n\n  public ngOnChanges(changes: SimpleChanges): void {\n    if (changes.controlType) {\n      this.isCheckboxControl = this.controlType === SelectControlTypes.checkbox;\n      this.isToggleControl = this.controlType === SelectControlTypes.toggle;\n      this.isIconControl = this.controlType === SelectControlTypes.icon;\n    }\n\n    if (changes.isRequired) {\n      this.isRequired = coerceBooleanProperty(changes.isRequired.currentValue);\n    }\n\n    if (changes.value) {\n      if (changes.value.currentValue !== null) {\n        this.setActiveItems(changes.value.currentValue);\n      } else {\n        this.reset();\n      }\n    }\n\n    if (changes.isLoading && !changes.isLoading.currentValue) {\n      if (this.keyboardTrigger) {\n        this.contextMenu?.keyManager?.setFirstItemActive();\n\n        setTimeout(() => {\n          this.setActiveItems(this.value);\n          this.cdr.detectChanges();\n        });\n      }\n    }\n\n    super.ngOnChanges(changes);\n  }\n\n  public ngDoCheck(): void {\n    if (this.list?.length !== this._oldList?.length && this.list?.length) {\n      this.setList(this.list);\n\n      this._oldList = [...this.list];\n    }\n\n    super.ngDoCheck();\n  }\n\n  // Toggles the select dropdown open or closed.\n  public toggleSelect(): void {\n    this.selectOpen = !this.selectOpen;\n    this.keyboardTrigger = false;\n\n    // If the select is closed, mark the model as touched\n    if (!this.selectOpen) {\n      this.onModelTouched();\n    }\n  }\n\n  // Handles keydown events for the multi-select component.\n  public handleKeydown(event: KeyboardEvent): void {\n    if (event.keyCode === KeyCodes.ENTER || event.keyCode === KeyCodes.SPACE) {\n      event.preventDefault();\n      this.toggleSelect();\n      this.keyboardTrigger = true;\n      this.sticker.show();\n    }\n  }\n\n  // Handles the event when a tag is closed using the keyboard.\n  // If the Enter or Space key is pressed, it stops the event propagation,\n  // and then focuses on the previous tag in the list or the multi-select button if no tags are left.\n  public tagClosedPressed(event: KeyboardEvent, index: number): void {\n    if (event.keyCode === KeyCodes.ENTER || event.keyCode === KeyCodes.SPACE) {\n      event.stopPropagation();\n\n      this.tags.changes.pipe(take(1)).subscribe(() => {\n        const tagsList = this.tags.toArray();\n\n        if (tagsList.length) {\n          if (tagsList[index - 1]) {\n            if (tagsList[index]) tagsList[index].blur();\n            tagsList[index - 1].focus();\n          }\n        } else {\n          this.multiSelectBtn.nativeElement.focus();\n        }\n      });\n    }\n  }\n\n  // Handles the event when the sticker is hidden.\n  // Updates the selectOpen state, checks for errors, marks the model as touched,\n  // emits the stickerHidden event, and triggers change detection.\n  public onHidden(): void {\n    this.selectOpen = false;\n    this.checkError();\n    this.onModelTouched();\n    this.stickerHidden.emit();\n    this.cdr.detectChanges();\n  }\n\n  // Handles the event when the sticker is shown.\n  // Updates the selectOpen state, emits the stickerShown event, and removes focus from the element.\n  public onShown(el: HTMLElement): void {\n    this.selectOpen = true;\n    this.stickerShown.emit();\n    el.blur();\n  }\n\n  // Toggles the value of a specific item in the multi-select component.\n  // This method updates the value of the given item, sets the active items,\n  // marks the model as touched, triggers change detection, and updates the sticker position.\n  public changeItem(item: MultiSelectItem): void {\n    item.value = !item.value;\n\n    this.setActiveItems();\n    this.onModelTouched();\n    this.onModelChange(this.getSelectedItems());\n    this.valueChanged.emit(this.getSelectedItems());\n    this.checkError();\n    this.cdr.detectChanges();\n\n    this.sticker.updPosition();\n  }\n\n  // Updates the value of all items in the multi-select component.\n  // This method iterates through all items and sets their value to the specified boolean.\n  // If the item contains a grouping list property, it will update the value of each item in the grouping list.\n  public changeAllItems(value: boolean): void {\n    this.items.forEach((item) => {\n      if (this.groupingListProp && item[this.groupingListProp]) {\n        item[this.groupingListProp].forEach(groupingItem => (groupingItem.value = value));\n      } else {\n        item.value = value;\n      }\n    });\n\n    this.setActiveItems();\n    this.onModelTouched();\n    this.onModelChange(this.getSelectedItems());\n    this.valueChanged.emit(this.getSelectedItems());\n    this.checkError();\n    this.cdr.detectChanges();\n  }\n\n  // Checks if all items or grouped items are selected.\n  // This method returns true if all items or all items within groups are selected.\n  public allBtnValue(): boolean {\n    if (this.groupingListProp) {\n      const flattenItems = this.items.reduce((acc, item) => acc.concat(item[this.groupingListProp]), []);\n      return flattenItems.every((item) => !!item.value);\n    } else {\n      return this.items.every((item) => !!item.value);\n    }\n  }\n\n  // Checks if the \"select all\" button should be in an indeterminate state.\n  // This method returns true if not all items are selected but at least one item is selected.\n  public isAllBtnIndeterminate(): boolean {\n    if (this.groupingListProp) {\n      const flattenItems = this.items.reduce((acc, item) => acc.concat(item[this.groupingListProp]), []);\n      return !flattenItems.every((item) => !!item.value) && flattenItems.some((item) => !!item.value);\n    } else {\n      return !this.items.every((item) => !!item.value) && this.items.some((item) => !!item.value);\n    }\n  }\n\n  public writeValue(value: string[]): void {\n    this.value = value;\n\n    if (this.value !== null) {\n      this.setActiveItems(this.value);\n    } else {\n      this.reset();\n    }\n\n    super.writeValue(value);\n    this.cdr.detectChanges();\n  }\n\n  // Sets the disabled state of the component.\n  public setDisabledState(disabled: boolean): void {\n    this.disabled = disabled;\n    this.cdr.markForCheck();\n  }\n\n  // Resets the selection state of all items and clears the list of selected items.\n  public reset(): void {\n    this.items.forEach((item) => {\n      if (this.groupingListProp && item[this.groupingListProp]) {\n        item[this.groupingListProp].forEach(groupingItem => (groupingItem.value = false));\n      } else {\n        item.value = false;\n      }\n    });\n    this.selectedItems = [];\n    this.checkError();\n    this.cdr.markForCheck();\n  }\n\n  // Removes an item from the selection and updates the component state.\n  public remove(e: Event, removedItem: string) {\n    e.stopPropagation();\n\n    this.items.forEach((item) => {\n      if (this.groupingListProp && item[this.groupingListProp]) {\n        item[this.groupingListProp].forEach(groupingItem => {\n          if (removedItem === groupingItem[this.propName]) {\n            groupingItem.value = false;\n          }\n        });\n      } else {\n        if (removedItem === item[this.propName]) {\n          item.value = false;\n        }\n      }\n    });\n\n    this.setActiveItems();\n    this.onModelTouched();\n    this.onModelChange(this.getSelectedItems());\n    this.valueChanged.emit(this.getSelectedItems());\n    this.checkError();\n    this.cdr.markForCheck();\n  }\n\n  public close(): void {\n    this.sticker.hide();\n  }\n\n  // Handles the keydown event for the menu.\n  // This method checks if the select menu is open and if the pressed key is the TAB key.\n  // If both conditions are met, it focuses on the multi-select button and hides the sticker.\n  public handleKeydownMenu(event: KeyboardEvent): void {\n    if (this.selectOpen && event.keyCode === KeyCodes.TAB) {\n      this.multiSelectBtn.nativeElement.focus();\n      this.sticker.hide();\n    }\n  }\n\n  // Initializes the context menu component.\n  // This method sets the context menu instance, enables the aria-multiselectable attribute,\n  // and if triggered by the keyboard, sets the first item in the context menu as active.\n  public contextMenuInit(contextMenu: ContextMenuComponent): void {\n    this.contextMenu = contextMenu;\n    contextMenu.ariaMultiselectable = true;\n\n    if (this.keyboardTrigger) {\n      contextMenu?.keyManager?.setFirstItemActive();\n    }\n  }\n\n  // Sets the list of items and updates the component's state.\n  private setList(list: any[]): void {\n    this.items = [];\n\n    list?.forEach((item) => {\n      if (this.groupingListProp && item[this.groupingListProp]) {\n        item[this.groupingListProp].forEach(groupingItem => {\n          const itemWithSettings = typeof groupingItem === 'string' ? {} : groupingItem;\n          itemWithSettings[this.propName] = groupingItem[this.propName] || groupingItem;\n          itemWithSettings.value = !!groupingItem.value;\n        });\n        this.items.push(item);\n      } else {\n        const itemWithSettings = typeof item === 'string' ? {} : item;\n        itemWithSettings[this.propName] = item[this.propName] || item;\n        itemWithSettings.value = !!item.value;\n\n        this.items.push(itemWithSettings);\n      }\n    });\n\n    this.setActiveItems(this.getSelectedItems());\n    this.cdr.detectChanges();\n  }\n\n  // Sets the active items based on the provided updated items.\n  // The method also updates the `selectedItems` property with the current active values.\n  private setActiveItems(updItems?: any[]) {\n    this.activeValues = [];\n\n    if (updItems && updItems.length) {\n      this.items.forEach((item) => {\n        if (this.groupingListProp && item[this.groupingListProp]) {\n          item[this.groupingListProp].forEach(groupingItem => groupingItem.value = false);\n        } else {\n          item.value = false;\n        }\n      });\n\n      updItems.forEach((updItem) => {\n        if (this.groupingListProp && updItem[this.groupingListProp]) {\n          updItem[this.groupingListProp].forEach(updGroupingItem => {\n            const label = updGroupingItem[this.propName] || updGroupingItem;\n\n            this.items.forEach((item) => {\n              if (item[this.groupingListProp]) {\n                item[this.groupingListProp].forEach(groupingItem => {\n                  if (label === groupingItem[this.propName]) {\n                    groupingItem.value = true;\n                    this.activeValues.push(groupingItem[this.propName]);\n                  }\n                });\n              }\n            });\n          });\n        } else {\n          const label = updItem[this.propName] || updItem;\n\n          this.items.forEach((item) => {\n            if (label === item[this.propName]) {\n              item.value = true;\n              this.activeValues.push(item[this.propName]);\n            }\n          });\n        }\n      });\n    } else if (updItems && !updItems.length) {\n      this.activeValues = [];\n      this.items.forEach((item) => {\n        if (this.groupingListProp && item[this.groupingListProp]) {\n          item[this.groupingListProp].forEach(groupingItem => groupingItem.value = false);\n        } else {\n          item.value = false;\n        }\n      });\n    } else {\n      this.items.forEach((item) => {\n        if (this.groupingListProp && item[this.groupingListProp]) {\n          item[this.groupingListProp].forEach(groupingItem => {\n            if (groupingItem.value) {\n              this.activeValues.push(groupingItem[this.propName]);\n            }\n          });\n        } else {\n          if (item.value) {\n            this.activeValues.push(item[this.propName]);\n          }\n        }\n      });\n    }\n\n    this.selectedItems = this.activeValues;\n  }\n\n  // Retrieves the selected items from the list based on the active values.\n  private getSelectedItems(): any[] {\n    const result = [];\n\n    this.list?.forEach((listItem) => {\n      if (this.groupingListProp && listItem[this.groupingListProp]) {\n        const filteredList = listItem[this.groupingListProp].filter(item => {\n          const label = item[this.propName] || item;\n\n          return (this.activeValues.includes(label));\n        });\n\n        if (filteredList.length) {\n          const filteredGroup = JSON.parse(JSON.stringify(listItem));\n          filteredGroup[this.groupingListProp] = filteredList;\n          result.push(filteredGroup);\n        }\n      } else {\n        const label = listItem[this.propName] || listItem;\n\n        this.activeValues.forEach((activeitem) => {\n          if (label === activeitem) result.push(listItem);\n        });\n      }\n    });\n\n    return result;\n  }\n\n  // Sets the internationalization (i18n) texts for the multi-select component.\n  protected setI18nTexts(translation: ITranslation): void {\n    this.resetBtnText = translation.MULTISELECT.RESPONSIVE.CLEAR_BTN_TEXT;\n    this.applyBtnText = translation.MULTISELECT.RESPONSIVE.APPLY_BTN_TEXT;\n    this.popupAriaLabel = translation.MULTISELECT.A11Y.POPUP_ARIA_LABEL;\n    this.cdr.detectChanges();\n  }\n}\n","<div [ngClass]=\"{\n      'dds-multi-select_inverse': isInverse,\n      'dds-multi-select_disabled': disabled,\n      'dds-multi-select_error': _isError,\n      'show': selectOpen\n     }\"\n     [size]=\"size\"\n     [theme]=\"theme\"\n     [ddsTheme]=\"themeConfig\"\n     class=\"dds-multi-select dds-multi-select_external {{customClass}}\">\n  @if (label || description) {\n    <div class=\"dds-multi-select__text-wrap\">\n      @if (label) {\n        <label class=\"dds-multi-select__title\">{{ label }}\n          @if (isRequired) {\n            <span class=\"dds-required\"></span>\n          }\n        </label>\n      }\n      @if (description) {\n        <span class=\"dds-multi-select__description\">{{description}}</span>\n      }\n    </div>\n  }\n  <button [ddsSticker]=\"selectList\"\n          [stickerWidth]=\"stickerWidth\"\n          [stickerMaxHeight]=\"stickerMaxHeight\"\n          [stickerIsOutsideClick]=\"stickerIsOutsideClick\"\n          [stickerShift]=\"stickerShift\"\n          [stickerIsDisabled]=\"stickerIsDisabled\"\n          [stickerIsResponsive]=\"isResponsive\"\n          [stickerPosition]=\"stickerPosition\"\n          [stickerIndent]=\"stickerIndent\"\n          [stickerCustomClass]=\"stickerCustomClass\"\n          [stickerIsDynamic]=\"stickerIsDynamic\"\n          [disabled]=\"disabled\"\n          [ngClass]=\"{\n            'dds-multi-select__field_tags': isTagsType && selectedItems?.length\n          }\"\n          [attr.aria-disabled]=\"disabled\"\n          [attr.aria-invalid]=\"_isError\"\n          [attr.aria-expanded]=\"selectOpen\"\n          [attr.aria-required]=\"isRequired || _isFormControlRequired\"\n          [attr.aria-label]=\"ariaLabel || label\"\n          [attr.aria-controls]=\"ariaControls || id\"\n          aria-haspopup=\"dialog\"\n          role=\"combobox\"\n          ddsFocus\n          class=\"dds-multi-select__field\"\n          (onHidden)=\"onHidden()\"\n          (onShown)=\"onShown(multiSelectBtn)\"\n          (click)=\"toggleSelect()\"\n          (keydown)=\"handleKeydown($event)\"\n          #stickerDir=\"dds-sticker\"\n          #multiSelectBtn>\n    @if (selectedItems?.length) {\n      <div class=\"dds-multi-select__active-items\">\n        @switch (type) {\n          @case ('tags') {\n            @if (isTagsType) {\n              <dds-tags>\n                @for (item of selectedItems; track item; let index = $index) {\n                  <dds-tag [isRemovable]=\"true\"\n                           [size]=\"size\"\n                           [theme]=\"theme\"\n                           [isInverse]=\"isInverse\"\n                           [isError]=\"_isError\"\n                           [disabled]=\"disabled\"\n                           (removed)=\"remove($event, item)\"\n                           (keyPressed)=\"tagClosedPressed($event, index)\"\n                           #tags>\n                    {{item}}\n                  </dds-tag>\n                }\n              </dds-tags>\n            }\n          }\n          @case ('text') {\n            @if (isTextType) {\n              {{ allBtnValue() ? selectedAllLabel : selectedItems }}\n            }\n          }\n          @case ('counter') {\n            @if (isCounterType) {\n              {{ selectedItems.length }} {{counterTypeText}}\n            }\n          }\n        }\n      </div>\n    } @else {\n      <span class=\"dds-multi-select__placeholder\">{{ placeholder }}</span>\n    }\n\n    <span class=\"dds-multi-select__icon dds-icon {{icon}}\"></span>\n  </button>\n\n  <span class=\"hidden-aria-polite\"\n            aria-live=\"polite\">{{isExpandedText}}</span>\n\n  @if (_isError && errorMessage?.length) {\n    <span class=\"dds-multi-select__error\">{{errorMessage}}</span>\n  }\n\n  <ng-template #selectList>\n    <ng-container *ngTemplateOutlet=\"template || defaultTemplate; context: {ctx: this}\"></ng-container>\n    <ng-template #defaultTemplate>\n      <dds-context-menu [size]=\"size\"\n                        [theme]=\"theme\"\n                        [maxHeight]=\"stickerMaxHeight\"\n                        [label]=\"label\"\n                        [isResponsive]=\"isResponsive\"\n                        [isRequired]=\"isRequired\"\n                        [isInverse]=\"isInverse\"\n                        [ariaLabel]=\"popupAriaLabel\"\n                        [isLoading]=\"isLoading\"\n                        [isLoadingWithCounter]=\"isLoadingWithCounter\"\n                        [loadingTemplate]=\"loadingTemplate\"\n                        [id]=\"id\"\n                        [ngClass]=\"{\n                          'dds-multi-select__list_with-icon': isIconControl\n                        }\"\n                        ddsResize\n                        class=\"dds-multi-select__list\"\n                        (keyPressed)=\"handleKeydownMenu($event)\"\n                        (onInit)=\"contextMenuInit($event)\"\n                        (closed)=\"close()\">\n        <!-- Tick all button -->\n        @if (displayTickAllBtn && !isIconControl) {\n          <dds-context-menu-item>\n            @if (isCheckboxControl) {\n              <dds-checkbox [value]=\"allBtnValue()\"\n                            [theme]=\"theme\"\n                            [isInverse]=\"isInverse\"\n                            [ariaLabel]=\"tickAllBtnLabel\"\n                            [isIndeterminate]=\"isAllBtnIndeterminate()\"\n                            (stateChanged)=\"changeAllItems($event)\"></dds-checkbox>\n            }\n            @if (isToggleControl) {\n              <dds-toggle [value]=\"allBtnValue()\"\n                          [theme]=\"theme\"\n                          [isInverse]=\"isInverse\"\n                          (stateChanged)=\"changeAllItems($event)\"></dds-toggle>\n            }\n            {{tickAllBtnLabel}}\n          </dds-context-menu-item>\n        }\n\n        <!-- List items -->\n          @for (item of items; track item) {\n            <dds-context-menu-item [counter]=\"item.counter\"\n                                   [disabled]=\"item.disabled\"\n                                   [ariaSelected]=\"item?.value\"\n                                   [customClass]=\"item?.customClass\"\n                                   class=\"dds-multi-select__item\"\n                                   (selectedItem)=\"changeItem(item)\">\n              @if (isToggleControl) {\n                <dds-toggle [value]=\"item.value\"\n                            [theme]=\"theme\"\n                            [isInverse]=\"isInverse\"></dds-toggle>\n              }\n              @if (isCheckboxControl) {\n                <dds-checkbox [value]=\"item.value\"\n                              [theme]=\"theme\"\n                              [ariaLabel]=\"item[propName]\"\n                              [isInverse]=\"isInverse\"></dds-checkbox>\n              }\n              @if (isIconControl) {\n                <span icon\n                      class=\"dds-icon {{item?.icon}}\"></span>\n              }\n              @if (item.imageSrc) {\n                <img image\n                     [src]=\"item.imageSrc\"\n                     alt=\"\">\n              }\n              {{item[propName]}}\n            </dds-context-menu-item>\n          }\n\n        <!-- Responsive -->\n        @if (smallDevice) {\n          <div class=\"dds-multi-select__list-footer\">\n            <dds-button [disabled]=\"isFooterBtnDisabled\"\n                        [theme]=\"theme\"\n                        [isInverse]=\"isInverse\"\n                        kind=\"silent\"\n                        size=\"lg\"\n                        (clicked)=\"reset()\">{{resetBtnText}}</dds-button>\n            <dds-button [disabled]=\"isFooterBtnDisabled\"\n                        [theme]=\"theme\"\n                        [isInverse]=\"isInverse\"\n                        size=\"lg\"\n                        (clicked)=\"close()\">{{applyBtnText}}</dds-button>\n          </div>\n        }\n      </dds-context-menu>\n    </ng-template>\n  </ng-template>\n</div>\n","import { NgModule } from '@angular/core';\nimport { MultiSelectComponent } from './multi-select/multi-select.component';\n\n@NgModule({\n  declarations: [],\n  imports: [MultiSelectComponent],\n  exports: [MultiSelectComponent],\n})\nexport class MultiSelectModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}