@siemens/element-ng 49.8.0 → 49.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/fesm2022/siemens-element-ng-application-header.mjs +2 -2
  2. package/fesm2022/siemens-element-ng-application-header.mjs.map +1 -1
  3. package/fesm2022/siemens-element-ng-avatar.mjs +2 -2
  4. package/fesm2022/siemens-element-ng-avatar.mjs.map +1 -1
  5. package/fesm2022/siemens-element-ng-breadcrumb-router.mjs +6 -2
  6. package/fesm2022/siemens-element-ng-breadcrumb-router.mjs.map +1 -1
  7. package/fesm2022/siemens-element-ng-circle-status.mjs +2 -2
  8. package/fesm2022/siemens-element-ng-circle-status.mjs.map +1 -1
  9. package/fesm2022/siemens-element-ng-dashboard.mjs +8 -5
  10. package/fesm2022/siemens-element-ng-dashboard.mjs.map +1 -1
  11. package/fesm2022/siemens-element-ng-datatable.mjs +10 -19
  12. package/fesm2022/siemens-element-ng-datatable.mjs.map +1 -1
  13. package/fesm2022/siemens-element-ng-datepicker.mjs +6 -6
  14. package/fesm2022/siemens-element-ng-datepicker.mjs.map +1 -1
  15. package/fesm2022/siemens-element-ng-file-uploader.mjs +2 -2
  16. package/fesm2022/siemens-element-ng-file-uploader.mjs.map +1 -1
  17. package/fesm2022/siemens-element-ng-form.mjs +8 -10
  18. package/fesm2022/siemens-element-ng-form.mjs.map +1 -1
  19. package/fesm2022/siemens-element-ng-header-dropdown.mjs +19 -55
  20. package/fesm2022/siemens-element-ng-header-dropdown.mjs.map +1 -1
  21. package/fesm2022/siemens-element-ng-menu.mjs +5 -7
  22. package/fesm2022/siemens-element-ng-menu.mjs.map +1 -1
  23. package/fesm2022/siemens-element-ng-navbar-vertical-next.mjs +90 -49
  24. package/fesm2022/siemens-element-ng-navbar-vertical-next.mjs.map +1 -1
  25. package/fesm2022/siemens-element-ng-navbar-vertical.mjs +25 -29
  26. package/fesm2022/siemens-element-ng-navbar-vertical.mjs.map +1 -1
  27. package/fesm2022/siemens-element-ng-select.mjs +455 -48
  28. package/fesm2022/siemens-element-ng-select.mjs.map +1 -1
  29. package/fesm2022/siemens-element-ng-side-panel.mjs +2 -2
  30. package/fesm2022/siemens-element-ng-side-panel.mjs.map +1 -1
  31. package/fesm2022/siemens-element-ng-slider.mjs +2 -2
  32. package/fesm2022/siemens-element-ng-slider.mjs.map +1 -1
  33. package/fesm2022/siemens-element-ng-status-toggle.mjs +2 -2
  34. package/fesm2022/siemens-element-ng-status-toggle.mjs.map +1 -1
  35. package/fesm2022/siemens-element-ng-translate.mjs.map +1 -1
  36. package/fesm2022/siemens-element-ng-tree-view.mjs +52 -30
  37. package/fesm2022/siemens-element-ng-tree-view.mjs.map +1 -1
  38. package/package.json +3 -3
  39. package/template-i18n.json +1 -0
  40. package/types/siemens-element-ng-breadcrumb-router.d.ts +6 -2
  41. package/types/siemens-element-ng-dashboard.d.ts +2 -1
  42. package/types/siemens-element-ng-datatable.d.ts +0 -1
  43. package/types/siemens-element-ng-form.d.ts +1 -1
  44. package/types/siemens-element-ng-header-dropdown.d.ts +0 -8
  45. package/types/siemens-element-ng-navbar-vertical-next.d.ts +29 -8
  46. package/types/siemens-element-ng-navbar-vertical.d.ts +2 -1
  47. package/types/siemens-element-ng-select.d.ts +241 -2
  48. package/types/siemens-element-ng-translate.d.ts +1 -0
  49. package/types/siemens-element-ng-tree-view.d.ts +4 -5
@@ -1 +1 @@
1
- {"version":3,"file":"siemens-element-ng-select.mjs","sources":["../../../../projects/element-ng/select/options/si-select-options-strategy.ts","../../../../projects/element-ng/select/si-select-option-template.directive.ts","../../../../projects/element-ng/select/select-option/si-select-option.component.ts","../../../../projects/element-ng/select/select-option/si-select-option.component.html","../../../../projects/element-ng/select/selection/si-select-selection-strategy.ts","../../../../projects/element-ng/select/select-input/si-select-input.component.ts","../../../../projects/element-ng/select/select-input/si-select-input.component.html","../../../../projects/element-ng/select/select-option/si-select-option-row.component.ts","../../../../projects/element-ng/select/select-option/si-select-option-row.component.html","../../../../projects/element-ng/select/si-select-group-template.directive.ts","../../../../projects/element-ng/select/si-select-option-row-template.directive.ts","../../../../projects/element-ng/select/select-list/si-select-list.base.ts","../../../../projects/element-ng/select/select-list/si-select-list-has-filter.component.ts","../../../../projects/element-ng/select/select-list/si-select-list-has-filter.component.html","../../../../projects/element-ng/select/select-list/si-select-list.component.ts","../../../../projects/element-ng/select/select-list/si-select-list.component.html","../../../../projects/element-ng/select/si-select-actions.directive.ts","../../../../projects/element-ng/select/si-select.component.ts","../../../../projects/element-ng/select/si-select.component.html","../../../../projects/element-ng/select/options/si-select-lazy-options.directive.ts","../../../../projects/element-ng/select/options/si-select-options-strategy.base.ts","../../../../projects/element-ng/select/options/si-select-simple-options.directive.ts","../../../../projects/element-ng/select/selection/si-select-single-value.directive.ts","../../../../projects/element-ng/select/selection/si-select-multi-value.directive.ts","../../../../projects/element-ng/select/si-select-action.directive.ts","../../../../projects/element-ng/select/si-select.module.ts","../../../../projects/element-ng/select/index.ts","../../../../projects/element-ng/select/siemens-element-ng-select.ts"],"sourcesContent":["/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { InjectionToken, Signal } from '@angular/core';\n\nimport { SelectItem, SelectOption } from '../si-select.types';\n\nexport const SI_SELECT_OPTIONS_STRATEGY = new InjectionToken<SiSelectOptionsStrategy<unknown>>(\n 'si-select.options-strategy'\n);\n\nexport interface SiSelectOptionsStrategy<T> {\n /**\n * List of all rows that should be rendered in a selection list.\n */\n readonly rows: Signal<readonly SelectItem<T>[]>;\n\n /**\n * List of all options that are currently selected.\n * Must be updated when {@link onValueChange} is called.\n */\n readonly selectedRows: Signal<readonly SelectOption<T>[]>;\n\n /**\n * Indicate loading state of the options.\n */\n readonly loading?: Signal<boolean>;\n\n /**\n * Is always called when the value changes.\n * The implementation must update {@link selectedRows} when called.\n *\n * @param value - currently selected value of the related si-select.\n */\n onValueChange(value: readonly T[]): void;\n\n /**\n * This function is called when a user enters a filter query.\n * It is expected that an implementation will update the `rows`\n * based on the query.\n *\n * @param filterInput - Unprocessed input by user in the filterInput field\n */\n onFilter?(filterInput?: string): void;\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { Directive } from '@angular/core';\n\nimport { SelectOption } from './si-select.types';\n\n/**\n * The directive allows to template/customize the value option rendering.\n * This requires using the {@link SiSelectSimpleOptionsDirective} to specify options as input.\n *\n * @example\n * ```html\n * <si-select [options]=\"[{ id: 'good', title: 'Good' }, { id: 'fair', title: 'Fair' }, { id: 'bad', title: 'Bad' }]\" >\n * <ng-template siSelectOptionTemplate let-option>{{ option.value | uppercase }}</ng-template>\n * </si-select>\n * ```\n */\n@Directive({\n selector: '[siSelectOptionTemplate]'\n})\nexport class SiSelectOptionTemplateDirective {\n /** @internal */\n static ngTemplateContextGuard<T = any>(\n directive: SiSelectOptionTemplateDirective,\n context: unknown\n ): context is { $implicit: SelectOption<T> } {\n return true;\n }\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, input, TemplateRef } from '@angular/core';\nimport { SiIconComponent } from '@siemens/element-ng/icon';\nimport { SiTranslatePipe } from '@siemens/element-translate-ng/translate';\n\nimport { SiSelectOptionTemplateDirective } from '../si-select-option-template.directive';\nimport { SelectOption } from '../si-select.types';\n\n@Component({\n selector: 'si-select-option',\n imports: [NgTemplateOutlet, SiIconComponent, SiTranslatePipe, SiSelectOptionTemplateDirective],\n templateUrl: './si-select-option.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'd-flex align-items-center overflow-hidden'\n }\n})\nexport class SiSelectOptionComponent {\n readonly option = input.required<SelectOption<unknown>>();\n readonly optionTemplate = input<TemplateRef<unknown>>();\n}\n","<ng-container\n [ngTemplateOutlet]=\"optionTemplate() ?? defaultOptionTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: option() }\"\n/>\n\n<ng-template #defaultOptionTemplate let-item siSelectOptionTemplate>\n @if (item.icon) {\n <i class=\"icon-stack\">\n <si-icon\n class=\"icon me-2\"\n [icon]=\"item.icon\"\n [class]=\"!item.disabled && item.iconColor ? item.iconColor : ''\"\n />\n @if (item.stackedIcon) {\n <si-icon\n class=\"icon me-2\"\n [class]=\"item.stackedIconColor ?? ''\"\n [icon]=\"item.stackedIcon\"\n />\n }\n </i>\n }\n @if (item.label) {\n <span class=\"text-truncate\">{{ item.label | translate }}</span>\n }\n</ng-template>\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport {\n booleanAttribute,\n computed,\n Directive,\n inject,\n input,\n Input,\n output,\n signal,\n Signal\n} from '@angular/core';\nimport { ControlValueAccessor } from '@angular/forms';\n\nimport {\n SI_SELECT_OPTIONS_STRATEGY,\n SiSelectOptionsStrategy\n} from '../options/si-select-options-strategy';\n\n/**\n * Selection strategy base class.\n */\n@Directive({\n host: {\n '[class.disabled]': 'disabled()'\n }\n})\nexport abstract class SiSelectSelectionStrategy<T, IV = T | T[]> implements ControlValueAccessor {\n /**\n * Whether the select input is disabled.\n *\n * @defaultValue false\n */\n // eslint-disable-next-line @angular-eslint/no-input-rename\n readonly disabledInput = input(false, { alias: 'disabled', transform: booleanAttribute });\n\n /**\n * The selected value(s).\n */\n @Input() set value(value: IV | undefined) {\n this.updateFromInput(this.toArrayValue(value));\n }\n\n /** Emitted when the selection is changed */\n readonly valueChange = output<IV>();\n\n /**\n * Whether the select control allows to select multiple values.\n * @internal\n */\n abstract readonly allowMultiple: boolean;\n\n /**\n * Provides the internal value always as an array\n * @internal\n */\n readonly arrayValue: Signal<readonly T[]> = computed(() =>\n this.selectOptions.selectedRows().map(option => option.value)\n );\n\n /**\n * Registered form callback which shall be called on blur.\n * @internal\n */\n onTouched: () => void = () => {};\n /** @internal */\n public readonly disabled = computed(() => this.disabledInput() || this.disabledNgControl());\n protected onChange: (_: any) => void = () => {};\n private readonly disabledNgControl = signal(false);\n private readonly selectOptions = inject<SiSelectOptionsStrategy<T>>(SI_SELECT_OPTIONS_STRATEGY);\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n /**\n * CDK Listbox value changed handler.\n * @internal\n */\n updateFromUser(values: T[]): void {\n const parsedValue = this.fromArrayValue(values);\n this.onChange(parsedValue);\n this.valueChange.emit(parsedValue);\n this.selectOptions.onValueChange(values);\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabledNgControl.set(isDisabled);\n }\n\n writeValue(obj: any): void {\n this.updateFromInput(this.toArrayValue(obj));\n }\n\n protected abstract toArrayValue(value: IV | undefined): readonly T[];\n\n protected abstract fromArrayValue(value: readonly T[]): IV;\n\n private updateFromInput(values: readonly T[]): void {\n this.selectOptions.onValueChange(values);\n }\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n HostListener,\n inject,\n input,\n output,\n TemplateRef\n} from '@angular/core';\nimport { elementDown2 } from '@siemens/element-icons';\nimport { SiAutoCollapsableListModule } from '@siemens/element-ng/auto-collapsable-list';\nimport { addIcons, SiIconComponent } from '@siemens/element-ng/icon';\nimport { SiTranslatePipe, TranslatableString } from '@siemens/element-translate-ng/translate';\n\nimport {\n SI_SELECT_OPTIONS_STRATEGY,\n SiSelectOptionsStrategy\n} from '../options/si-select-options-strategy';\nimport { SiSelectOptionComponent } from '../select-option/si-select-option.component';\nimport { SiSelectSelectionStrategy } from '../selection/si-select-selection-strategy';\nimport { SelectOption } from '../si-select.types';\n\n@Component({\n selector: 'si-select-input',\n imports: [SiAutoCollapsableListModule, SiIconComponent, SiSelectOptionComponent, SiTranslatePipe],\n templateUrl: './si-select-input.component.html',\n styleUrl: './si-select-input.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n // In readonly mode, the select needs to be announced as a textbox.\n // Otherwise, screen-reader won't announce the readonly state.\n class: 'select focus-none dropdown-toggle d-flex align-items-center ps-4',\n 'aria-autocomplete': 'none',\n '[attr.role]': 'readonly() ? \"textbox\": \"combobox\"',\n '[attr.aria-haspopup]': 'readonly() ? undefined : \"listbox\"',\n '[attr.aria-expanded]': 'readonly() ? undefined : open()',\n '[attr.aria-controls]': 'readonly() ? undefined : controls()',\n '[attr.aria-readonly]': 'readonly()',\n '[attr.aria-labelledby]': 'labeledBy()',\n '[attr.aria-disabled]': 'selectionStrategy.disabled()',\n '[attr.tabindex]': 'selectionStrategy.disabled() ? \"-1\" : \"0\"',\n '[class.disabled]': 'selectionStrategy.disabled()',\n '[class.active]': 'open()'\n }\n})\nexport class SiSelectInputComponent<T> {\n readonly baseId = input.required<string>();\n /**\n * Aria labelledby of the select.\n *\n * @defaultValue null\n */\n readonly labelledby = input<string | null>(null);\n /**\n * Aria label of the select.\n *\n * @defaultValue null\n */\n readonly ariaLabel = input<string | null>(null);\n /** @defaultValue false */\n readonly open = input(false, { transform: booleanAttribute });\n readonly placeholder = input<TranslatableString>();\n readonly controls = input.required<string>();\n readonly optionTemplate = input<\n TemplateRef<{\n $implicit: SelectOption<T>;\n }>\n >();\n\n /** @defaultValue false */\n readonly readonly = input(false, { transform: booleanAttribute });\n\n readonly openListbox = output<void>();\n protected readonly selectionStrategy = inject<SiSelectSelectionStrategy<T>>(\n SiSelectSelectionStrategy<T>\n );\n private readonly selectOptions = inject<SiSelectOptionsStrategy<T>>(SI_SELECT_OPTIONS_STRATEGY);\n protected readonly selectedRows = this.selectOptions.selectedRows;\n protected readonly labeledBy = computed(() => `${this.baseId()}-aria-label ${this.labelledby()}`);\n protected readonly icons = addIcons({ elementDown2 });\n\n @HostListener('blur')\n protected blur(): void {\n if (!this.open()) {\n this.selectionStrategy.onTouched();\n }\n }\n\n @HostListener('click')\n @HostListener('keydown.arrowDown', ['$event'])\n @HostListener('keydown.alt.arrowDown', ['$event'])\n @HostListener('keydown.arrowUp', ['$event'])\n @HostListener('keydown.enter')\n @HostListener('keydown.space')\n protected click(event?: Event): void {\n event?.preventDefault();\n this.openListbox.emit();\n }\n}\n","@if (ariaLabel()) {\n <span class=\"visually-hidden\" [id]=\"baseId() + '-aria-label'\">{{ ariaLabel() }}</span>\n}\n<div\n class=\"d-flex align-items-center flex-fill overflow-hidden\"\n [id]=\"baseId() + '-content'\"\n [siAutoCollapsableList]=\"selectionStrategy.allowMultiple && selectedRows().length > 1\"\n>\n @for (activeOption of selectedRows(); track activeOption) {\n @if (activeOption) {\n <si-select-option\n siAutoCollapsableListItem\n [option]=\"activeOption\"\n [optionTemplate]=\"optionTemplate()\"\n [class.overflow-hidden]=\"!selectionStrategy.allowMultiple || $count === 1\"\n />\n }\n } @empty {\n <div class=\"text-secondary\">{{ placeholder() | translate }}</div>\n }\n @if (selectionStrategy.allowMultiple) {\n <div #overflowItem=\"siAutoCollapsableListOverflowItem\" siAutoCollapsableListOverflowItem>\n <div class=\"overflow-item\"> {{ overflowItem.hiddenItemCount }}+</div>\n </div>\n }\n</div>\n<div class=\"form-control-actions\">\n <si-icon\n class=\"dropdown-caret icon flip-rtl ps-0 m-0\"\n [class.text-muted]=\"readonly()\"\n [icon]=\"icons.elementDown2\"\n />\n</div>\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n input,\n TemplateRef\n} from '@angular/core';\nimport { elementOk } from '@siemens/element-icons';\nimport { addIcons, SiIconComponent } from '@siemens/element-ng/icon';\n\nimport { SiSelectOptionComponent } from '../select-option/si-select-option.component';\nimport { SelectOption } from '../si-select.types';\n\n@Component({\n selector: 'si-select-option-row',\n imports: [SiIconComponent, SiSelectOptionComponent],\n templateUrl: './si-select-option-row.component.html',\n styleUrl: './si-select-option-row.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'dropdown-item focus-none pe-4 gap-4',\n '[class.disabled]': '!!this.option().disabled',\n '[attr.aria-selected]': 'selected()',\n '[attr.data-id]': 'this.option().value'\n }\n})\nexport class SiSelectOptionRowComponent {\n readonly option = input.required<SelectOption<unknown>>();\n readonly optionTemplate = input<TemplateRef<unknown>>();\n /** @defaultValue false */\n readonly selected = input(false, { transform: booleanAttribute });\n protected readonly icons = addIcons({ elementOk });\n}\n","<span\n class=\"form-check-input si-form-checkbox\"\n [class.checked]=\"selected()\"\n [class.disabled]=\"option().disabled\"\n></span>\n<si-select-option [option]=\"option()\" [optionTemplate]=\"optionTemplate()\" />\n@if (selected()) {\n <span class=\"ms-auto selected-marker\" aria-hidden=\"true\">\n <si-icon class=\"d-block icon\" [icon]=\"icons.elementOk\" />\n </span>\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { Directive } from '@angular/core';\n\nimport { SelectGroup } from './si-select.types';\n\n/**\n * The directive allows to template/customize the group option rendering.\n * This requires using the {@link SiSelectSimpleOptionsDirective} to specify options as input.\n *\n * @example\n * ```html\n * <si-select [options]=\"[\n * { type: 'group', key: 'g1', label: 'Group 1', options: [\n * { type: 'option', value: 'g1.i1', label: 'Item 1' },\n * { type: 'option', value: 'g1.i2', label: 'Item 2' }\n * ]},\n * { type: 'group', key: 'g2', label: 'Group 2', options: [\n * { type: 'option', value: 'g2.i1', label: 'Item 1' }\n * ]}\n * ]\">\n * <ng-template siSelectGroupTemplate let-group>{{ group.key | uppercase }}</ng-template>\n * </si-select>\n * ```\n */\n@Directive({\n selector: '[siSelectGroupTemplate]'\n})\nexport class SiSelectGroupTemplateDirective {\n static ngTemplateContextGuard<T = any>(\n directive: SiSelectGroupTemplateDirective,\n context: unknown\n ): context is { $implicit: SelectGroup<T> } {\n return true;\n }\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { Directive } from '@angular/core';\n\nimport { SelectOption } from './si-select.types';\n\n@Directive({\n selector: '[siSelectOptionRowTemplate]'\n})\nexport class SiSelectOptionRowTemplateDirective {\n static ngTemplateContextGuard<T = any>(\n directive: SiSelectOptionRowTemplateDirective,\n context: unknown\n ): context is { $implicit: SelectOption<T> } {\n return true;\n }\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { ConfigurableFocusTrap, ConfigurableFocusTrapFactory } from '@angular/cdk/a11y';\nimport {\n Directive,\n ElementRef,\n HostBinding,\n HostListener,\n inject,\n input,\n OnDestroy,\n OnInit,\n output,\n TemplateRef\n} from '@angular/core';\n\nimport {\n SI_SELECT_OPTIONS_STRATEGY,\n SiSelectOptionsStrategy\n} from '../options/si-select-options-strategy';\nimport { SiSelectSelectionStrategy } from '../selection/si-select-selection-strategy';\nimport { SelectGroup, SelectOption } from '../si-select.types';\n\n@Directive({\n host: {\n class: 'dropdown-menu position-static w-100 py-4 d-flex flex-column'\n }\n})\nexport abstract class SiSelectListBase<T> implements OnInit, OnDestroy {\n readonly baseId = input.required<string>();\n readonly optionTemplate = input<\n TemplateRef<{\n $implicit: SelectOption<T>;\n }>\n >();\n readonly groupTemplate = input<\n TemplateRef<{\n $implicit: SelectGroup<T>;\n }>\n >();\n /** @defaultValue null */\n readonly labelledby = input<string | null>(null);\n readonly actionsTemplate = input<TemplateRef<any>>();\n\n readonly closeOverlay = output<void>();\n\n protected readonly selectionStrategy =\n inject<SiSelectSelectionStrategy<T>>(SiSelectSelectionStrategy);\n protected readonly selectOptions = inject<SiSelectOptionsStrategy<T>>(SI_SELECT_OPTIONS_STRATEGY);\n protected readonly focusTrapFactory = inject(ConfigurableFocusTrapFactory);\n protected readonly elementRef = inject(ElementRef);\n protected rows = this.selectOptions.rows;\n protected focusTrap!: ConfigurableFocusTrap;\n\n @HostBinding('class.si-multi-select')\n protected multiSelect = this.selectionStrategy.allowMultiple;\n\n ngOnInit(): void {\n this.focusTrap = this.focusTrapFactory.create(this.elementRef.nativeElement);\n }\n\n ngOnDestroy(): void {\n this.focusTrap.destroy();\n }\n\n @HostListener('keydown.tab')\n protected keydownTab(): void {\n // Ignore tab key if actions are displayed.\n if (!this.actionsTemplate()) {\n this.closeOverlayAlways();\n }\n }\n\n protected closeOverlayAlways(): void {\n this.closeOverlay.emit();\n }\n\n protected closeOverlayIfSingle(): void {\n if (!this.selectionStrategy.allowMultiple) {\n this.closeOverlayAlways();\n }\n }\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n ElementRef,\n input,\n OnInit,\n Signal,\n signal,\n viewChild\n} from '@angular/core';\nimport { elementSearch } from '@siemens/element-icons';\nimport { SiAutocompleteDirective, SiAutocompleteModule } from '@siemens/element-ng/autocomplete';\nimport { addIcons, SiIconComponent } from '@siemens/element-ng/icon';\nimport { SiLoadingSpinnerComponent } from '@siemens/element-ng/loading-spinner';\nimport { SiTranslatePipe, TranslatableString } from '@siemens/element-translate-ng/translate';\n\nimport { SiSelectOptionRowComponent } from '../select-option/si-select-option-row.component';\nimport { SiSelectGroupTemplateDirective } from '../si-select-group-template.directive';\nimport { SiSelectOptionRowTemplateDirective } from '../si-select-option-row-template.directive';\nimport { SiSelectListBase } from './si-select-list.base';\n\n@Component({\n selector: 'si-select-list-has-filter',\n imports: [\n NgTemplateOutlet,\n SiAutocompleteDirective,\n SiIconComponent,\n SiSelectGroupTemplateDirective,\n SiSelectOptionRowComponent,\n SiSelectOptionRowTemplateDirective,\n SiTranslatePipe,\n SiAutocompleteModule,\n SiLoadingSpinnerComponent\n ],\n templateUrl: './si-select-list-has-filter.component.html',\n styleUrl: './si-select-list-has-filter.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'pt-0',\n '[attr.id]': 'id()'\n }\n})\nexport class SiSelectListHasFilterComponent<T> extends SiSelectListBase<T> implements OnInit {\n /** Placeholder for search input field. */\n readonly filterPlaceholder = input.required<TranslatableString>();\n /** Label if no item can be found. */\n readonly noResultsFoundLabel = input.required<TranslatableString>();\n\n protected readonly filterInput = viewChild.required<ElementRef<HTMLInputElement>>('filter');\n protected readonly initIndex: Signal<number>;\n protected readonly id = computed(() => `${this.baseId()}-listbox`);\n protected readonly icons = addIcons({ elementSearch });\n\n constructor() {\n super();\n if (!this.selectOptions.onFilter) {\n console.error('Missing implementation for `onFilter`');\n }\n const firstValue = this.selectionStrategy.arrayValue()[0];\n if (firstValue) {\n this.initIndex = computed(() =>\n this.rows().findIndex(row => row.type === 'option' && row.value === firstValue)\n );\n } else {\n this.initIndex = signal(0);\n }\n }\n\n override ngOnInit(): void {\n super.ngOnInit();\n this.selectOptions.onFilter!();\n setTimeout(() => this.filterInput().nativeElement.focus());\n }\n\n protected input(): void {\n this.selectOptions.onFilter!(this.filterInput().nativeElement.value);\n }\n\n protected select(newValue: T): void {\n if (this.selectionStrategy.allowMultiple) {\n if (this.selectionStrategy.arrayValue().includes(newValue)) {\n this.selectionStrategy.updateFromUser(\n this.selectionStrategy.arrayValue().filter(value => value !== newValue)\n );\n } else {\n this.selectionStrategy.updateFromUser([...this.selectionStrategy.arrayValue(), newValue]);\n }\n } else {\n this.selectionStrategy.updateFromUser([newValue]);\n }\n this.closeOverlayIfSingle();\n }\n}\n","<div class=\"pt-5 pb-5 px-5 top-0\">\n <div class=\"position-relative\">\n <input\n #filter\n #siAutocomplete=\"siAutocomplete\"\n siAutocomplete\n class=\"form-control ps-9 border-0 rounded-2 bg-base-0\"\n [placeholder]=\"filterPlaceholder() | translate\"\n [id]=\"baseId() + 'filter-input'\"\n [attr.aria-labelledby]=\"baseId() + '-aria-label' + ' ' + labelledby()\"\n (input)=\"input()\"\n />\n <si-icon\n class=\"icon text-secondary position-absolute top-0 bottom-0 d-flex align-items-center ps-2\"\n [icon]=\"icons.elementSearch\"\n />\n @if (selectOptions.loading?.()) {\n <si-loading-spinner class=\"position-absolute end-0 bottom-0 d-flex align-items-center p-2\" />\n }\n </div>\n</div>\n<div\n class=\"si-select-filtered-items\"\n tabindex=\"-1\"\n [siAutocompleteListboxFor]=\"siAutocomplete\"\n [siAutocompleteDefaultIndex]=\"initIndex()\"\n [attr.aria-labelledby]=\"baseId() + '-aria-label' + ' ' + labelledby()\"\n (siAutocompleteOptionSubmitted)=\"select($event)\"\n>\n @for (item of rows(); track item; let index = $index) {\n @if (item.type === 'group') {\n <div\n role=\"group\"\n class=\"ps-0\"\n aria-disabled=\"false\"\n [attr.aria-labelledby]=\"baseId() + '-' + index + '-group-header'\"\n >\n <div class=\"dropdown-header\" [id]=\"baseId() + '-' + index + '-group-header'\">\n <ng-container\n [ngTemplateOutlet]=\"groupTemplate() ?? defaultGroupTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"\n />\n </div>\n @for (optionRow of item.options; track optionRow) {\n <ng-container\n [ngTemplateOutlet]=\"optionRowTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: optionRow }\"\n />\n }\n </div>\n }\n @if (item.type === 'option') {\n <ng-container\n [ngTemplateOutlet]=\"optionRowTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"\n />\n }\n } @empty {\n <div\n role=\"option\"\n aria-disabled=\"true\"\n aria-selected=\"false\"\n class=\"dropdown-item disabled text-secondary justify-content-center mb-2\"\n >\n <span>{{ noResultsFoundLabel() | translate }}</span>\n </div>\n }\n\n <ng-template #optionRowTemplate let-option siSelectOptionRowTemplate>\n <si-select-option-row\n [option]=\"option\"\n [optionTemplate]=\"optionTemplate()\"\n [siAutocompleteOption]=\"option.value\"\n [disabled]=\"option.disabled\"\n [selected]=\"selectionStrategy.arrayValue().includes(option.value)\"\n />\n </ng-template>\n</div>\n@if (actionsTemplate()) {\n <div class=\"dropdown-divider\"></div>\n <div class=\"d-flex flex-column align-items-start\">\n <ng-container\n [ngTemplateOutlet]=\"actionsTemplate()!\"\n [ngTemplateOutletContext]=\"{\n searchText: filter.value,\n visibleOptionsCount: rows().length\n }\"\n />\n </div>\n}\n\n<ng-template #defaultGroupTemplate let-group siSelectGroupTemplate>\n {{ group.label | translate }}\n</ng-template>\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { CdkListbox, CdkOption, ListboxValueChangeEvent } from '@angular/cdk/listbox';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ElementRef, OnInit, viewChild } from '@angular/core';\nimport { SiTranslatePipe } from '@siemens/element-translate-ng/translate';\n\nimport { SiSelectOptionRowComponent } from '../select-option/si-select-option-row.component';\nimport { SiSelectGroupTemplateDirective } from '../si-select-group-template.directive';\nimport { SiSelectOptionRowTemplateDirective } from '../si-select-option-row-template.directive';\nimport { SiSelectListBase } from './si-select-list.base';\n\n@Component({\n selector: 'si-select-list',\n imports: [\n CommonModule,\n CdkListbox,\n SiTranslatePipe,\n CdkOption,\n SiSelectOptionRowTemplateDirective,\n SiSelectGroupTemplateDirective,\n SiSelectOptionRowComponent\n ],\n templateUrl: './si-select-list.component.html',\n styleUrl: './si-select-list.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SiSelectListComponent<T> extends SiSelectListBase<T> implements OnInit {\n private readonly listbox = viewChild.required<CdkListbox, ElementRef<HTMLUListElement>>(\n CdkListbox,\n {\n read: ElementRef\n }\n );\n\n override ngOnInit(): void {\n super.ngOnInit();\n setTimeout(() => this.listbox().nativeElement.focus());\n }\n\n protected listBoxValueChange(changeEvent: ListboxValueChangeEvent<T>): void {\n this.selectionStrategy.updateFromUser(changeEvent.value.slice());\n }\n}\n","<div\n cdkListbox\n class=\"si-select-filtered-items focus-none\"\n [id]=\"baseId() + '-listbox'\"\n [cdkListboxMultiple]=\"selectionStrategy.allowMultiple\"\n [cdkListboxValue]=\"selectionStrategy.arrayValue()\"\n [attr.aria-labelledby]=\"baseId() + '-aria-label' + ' ' + labelledby()\"\n (cdkListboxValueChange)=\"listBoxValueChange($event)\"\n (click)=\"closeOverlayIfSingle()\"\n (keydown.enter)=\"closeOverlayIfSingle()\"\n (keydown.space)=\"closeOverlayIfSingle()\"\n>\n @for (item of rows(); track item; let index = $index) {\n @if (item.type === 'group') {\n <div\n role=\"group\"\n class=\"ps-0\"\n aria-disabled=\"false\"\n [attr.aria-labelledby]=\"baseId() + '-' + index + '-group-header'\"\n >\n <span class=\"dropdown-header\" [id]=\"baseId() + '-' + index + '-group-header'\">\n <ng-container\n [ngTemplateOutlet]=\"groupTemplate() ?? defaultGroupTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"\n />\n </span>\n @for (optionRow of item.options; track optionRow) {\n <ng-container\n [ngTemplateOutlet]=\"optionRowTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: optionRow }\"\n />\n }\n </div>\n }\n @if (item.type === 'option') {\n <ng-container\n [ngTemplateOutlet]=\"optionRowTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"\n />\n }\n }\n <ng-template #optionRowTemplate let-option siSelectOptionRowTemplate>\n <si-select-option-row\n #cdkOption=\"cdkOption\"\n [option]=\"option\"\n [optionTemplate]=\"optionTemplate()\"\n [cdkOption]=\"option.value\"\n [cdkOptionDisabled]=\"!!option.disabled\"\n [cdkOptionTypeaheadLabel]=\"(option.typeaheadLabel | translate)!\"\n [class.active]=\"cdkOption.isActive()\"\n [selected]=\"cdkOption.isSelected()\"\n />\n </ng-template>\n</div>\n@if (actionsTemplate()) {\n <div class=\"dropdown-divider\"></div>\n <div class=\"d-flex flex-column align-items-start\">\n <ng-container [ngTemplateOutlet]=\"actionsTemplate()!\" />\n </div>\n}\n\n<ng-template #defaultGroupTemplate let-group siSelectGroupTemplate>\n {{ group.label | translate }}\n</ng-template>\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { Directive } from '@angular/core';\n\n@Directive({\n selector: '[siSelectActions]',\n exportAs: 'si-select-actions'\n})\nexport class SiSelectActionsDirective {\n /** @internal */\n static ngTemplateContextGuard(\n directive: SiSelectActionsDirective,\n context: unknown\n ): context is { searchText?: string; visibleOptionsCount?: number } {\n return true;\n }\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { CdkOverlayOrigin, OverlayModule } from '@angular/cdk/overlay';\nimport {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChild,\n ElementRef,\n inject,\n input,\n output,\n signal,\n TemplateRef,\n viewChild\n} from '@angular/core';\nimport { SI_FORM_ITEM_CONTROL, SiFormItemControl } from '@siemens/element-ng/form';\nimport { t, TranslatableString } from '@siemens/element-translate-ng/translate';\n\nimport { SiSelectInputComponent } from './select-input/si-select-input.component';\nimport { SiSelectListHasFilterComponent } from './select-list/si-select-list-has-filter.component';\nimport { SiSelectListComponent } from './select-list/si-select-list.component';\nimport { SiSelectSelectionStrategy } from './selection/si-select-selection-strategy';\nimport { SiSelectActionsDirective } from './si-select-actions.directive';\nimport { SiSelectGroupTemplateDirective } from './si-select-group-template.directive';\nimport { SiSelectOptionTemplateDirective } from './si-select-option-template.directive';\nimport { SelectGroup, SelectItem, SelectOption } from './si-select.types';\n\n@Component({\n selector: 'si-select',\n imports: [\n OverlayModule,\n SiSelectInputComponent,\n SiSelectListComponent,\n SiSelectListHasFilterComponent\n ],\n templateUrl: './si-select.component.html',\n styleUrl: './si-select.component.scss',\n providers: [{ provide: SI_FORM_ITEM_CONTROL, useExisting: SiSelectComponent }],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'dropdown',\n '[class.readonly]': 'readonly()',\n '[class.open]': 'isOpen()',\n '[class.si-select-has-filter]': 'hasFilter()'\n }\n})\nexport class SiSelectComponent<T> implements SiFormItemControl {\n private static idCounter = 0;\n /**\n * Unique identifier.\n *\n * @defaultValue\n * ```\n * `__si-select-${SiSelectComponent.idCounter++}`\n * ```\n */\n readonly id = input(`__si-select-${SiSelectComponent.idCounter++}`);\n /**\n * Aria label of the select.\n *\n * @defaultValue null\n */\n readonly ariaLabel = input<string | null>(null);\n /**\n * Aria labelledby of the select.\n * @defaultValue undefined\n */\n // eslint-disable-next-line @angular-eslint/no-input-rename\n readonly labelledbyInput = input<string | undefined>(undefined, { alias: 'labelledby' });\n /**\n * Placeholder for search input field.\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_SELECT.SEARCH-PLACEHOLDER:Search...`)\n * ```\n */\n readonly filterPlaceholder = input(t(() => $localize`:@@SI_SELECT.SEARCH-PLACEHOLDER:Search...`));\n /**\n * Label if no item can be found.\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_SELECT.NO-RESULTS-FOUND:No results found`)\n * ```\n */\n readonly noResultsFoundLabel = input(\n t(() => $localize`:@@SI_SELECT.NO-RESULTS-FOUND:No results found`)\n );\n /** Placeholder text to display when no options are selected. */\n readonly placeholder = input<TranslatableString>();\n /**\n * Readonly state. Similar to disabled but with higher contrast *\n *\n * @defaultValue false\n */\n readonly readonly = input(false, { transform: booleanAttribute });\n\n /** Emits when the dropdown open state changes. */\n readonly openChange = output<boolean>();\n\n protected readonly isOpen = signal(false);\n\n protected readonly optionTemplate = contentChild<\n SiSelectOptionTemplateDirective,\n TemplateRef<{ $implicit: SelectOption<T> }>\n >(SiSelectOptionTemplateDirective, { read: TemplateRef });\n\n protected readonly groupTemplate = contentChild<\n SiSelectGroupTemplateDirective,\n TemplateRef<{ $implicit: SelectGroup<T> }>\n >(SiSelectGroupTemplateDirective, { read: TemplateRef });\n\n protected readonly actionsTemplate = contentChild<SiSelectActionsDirective, TemplateRef<any>>(\n SiSelectActionsDirective,\n { read: TemplateRef }\n );\n\n private readonly trigger = viewChild.required<CdkOverlayOrigin, ElementRef<HTMLDivElement>>(\n CdkOverlayOrigin,\n {\n read: ElementRef\n }\n );\n\n /** @internal */\n readonly labelledby = computed(() => this.labelledbyInput() ?? this.id() + '-label');\n /**\n * This ID will be bound to the `aria-describedby` attribute of the select.\n * Use this to reference the element containing the error message(s) for the select.\n * It will be picked by the {@link SiFormItemComponent} if the select is used inside a form item.\n *\n * @defaultValue\n * ```\n * `${this.id()}-errormessage`\n * ```\n */\n readonly errormessageId = input(`${this.id()}-errormessage`);\n\n protected rows: readonly SelectItem<T>[] = [];\n protected overlayWidth = 0;\n protected readonly selectionStrategy = inject(SiSelectSelectionStrategy<T>);\n\n private backdropClicked = false;\n\n /**\n * Enables the filter input\n * @defaultValue false\n * @defaultref {@link SiSelectComponent#_hasFilter}\n */\n readonly hasFilter = input(false, { transform: booleanAttribute });\n\n /** Opens the `si-select`. */\n open(): void {\n if (this.readonly() || this.selectionStrategy.disabled()) {\n return;\n }\n this.overlayWidth = this.trigger().nativeElement.getBoundingClientRect().width + 2; // 2px border\n this.isOpen.set(true);\n this.openChange.emit(true);\n }\n\n /** Closes the `si-select`. */\n close(): void {\n this.isOpen.set(false);\n if (!this.backdropClicked) {\n this.trigger().nativeElement.focus();\n } else {\n this.backdropClicked = false;\n this.selectionStrategy.onTouched();\n }\n this.openChange.emit(false);\n }\n\n protected backdropClick(): void {\n this.backdropClicked = true;\n this.isOpen.set(false);\n }\n}\n","<si-select-input\n #trigger=\"cdkOverlayOrigin\"\n cdkOverlayOrigin\n [baseId]=\"id()\"\n [labelledby]=\"labelledby()\"\n [optionTemplate]=\"optionTemplate()\"\n [ariaLabel]=\"ariaLabel()\"\n [controls]=\"id() + '-listbox'\"\n [open]=\"isOpen()\"\n [placeholder]=\"placeholder()\"\n [readonly]=\"readonly()\"\n [attr.aria-describedby]=\"errormessageId()\"\n (openListbox)=\"open()\"\n/>\n\n<ng-template\n cdkConnectedOverlay\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n [cdkConnectedOverlayHasBackdrop]=\"true\"\n [cdkConnectedOverlayOrigin]=\"trigger\"\n [cdkConnectedOverlayOpen]=\"isOpen()\"\n [cdkConnectedOverlayFlexibleDimensions]=\"true\"\n [cdkConnectedOverlayOffsetX]=\"-1\"\n [cdkConnectedOverlayMinWidth]=\"overlayWidth\"\n (backdropClick)=\"backdropClick()\"\n (detach)=\"close()\"\n>\n @if (!hasFilter()) {\n <si-select-list\n [baseId]=\"id()\"\n [optionTemplate]=\"optionTemplate()\"\n [groupTemplate]=\"groupTemplate()\"\n [labelledby]=\"labelledby()\"\n [actionsTemplate]=\"actionsTemplate()\"\n (closeOverlay)=\"close()\"\n />\n } @else {\n <si-select-list-has-filter\n [baseId]=\"id()\"\n [filterPlaceholder]=\"filterPlaceholder()\"\n [noResultsFoundLabel]=\"noResultsFoundLabel()\"\n [optionTemplate]=\"optionTemplate()\"\n [groupTemplate]=\"groupTemplate()\"\n [labelledby]=\"labelledby()\"\n [actionsTemplate]=\"actionsTemplate()\"\n (closeOverlay)=\"close()\"\n />\n }\n</ng-template>\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { Directive, input, OnDestroy, signal } from '@angular/core';\nimport { of, Subject, switchMap } from 'rxjs';\nimport { debounceTime, takeUntil } from 'rxjs/operators';\n\nimport { SelectItem, SelectOption } from '../si-select.types';\nimport { SelectOptionSource } from './si-select-option.source';\nimport { SI_SELECT_OPTIONS_STRATEGY, SiSelectOptionsStrategy } from './si-select-options-strategy';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'si-select[optionSource]',\n providers: [{ provide: SI_SELECT_OPTIONS_STRATEGY, useExisting: SiSelectLazyOptionsDirective }]\n})\nexport class SiSelectLazyOptionsDirective<T> implements SiSelectOptionsStrategy<T>, OnDestroy {\n /**\n * {@inheritDoc SiSelectOptionsStrategy#loading}\n * @defaultValue false\n */\n readonly loading = signal(false);\n\n /**\n * {@inheritDoc SiSelectOptionsStrategy#rows}\n * @defaultValue []\n */\n readonly rows = signal<SelectItem<T>[]>([]);\n\n /**\n * {@inheritDoc SiSelectOptionsStrategy#selectedRows}\n * @defaultValue []\n */\n readonly selectedRows = signal<SelectOption<T>[]>([]);\n\n readonly optionSource = input.required<SelectOptionSource<T>>();\n\n private valueChange = new Subject<void>();\n private filterChange = new Subject<string | undefined>();\n\n constructor() {\n this.filterChange\n .pipe(\n debounceTime(100),\n switchMap(filterInput => {\n if (filterInput) {\n return this.optionSource().getOptionsForSearch!(filterInput);\n } else {\n const optionSource = this.optionSource();\n if (optionSource.getAllOptions) {\n return optionSource.getAllOptions();\n } else {\n return of(this.selectedRows());\n }\n }\n })\n )\n .subscribe(rows => {\n this.loading.set(false);\n this.rows.set(rows);\n });\n }\n\n ngOnDestroy(): void {\n this.valueChange.next();\n this.valueChange.complete();\n this.filterChange.complete();\n }\n\n /** {@inheritDoc SiSelectOptionsStrategy.onValueChange} */\n onValueChange(value: T[]): void {\n this.valueChange.next();\n\n // To prevent flickering, we need to check if we already got all the requested options.\n // This should always be the case if the user selects one\n const knownSelectedOptions = value\n .map(\n valueEntry =>\n this.selectedRows().find(selected => this.valueEqual(selected.value, valueEntry)) ??\n (this.rows().find(\n selected => selected.type === 'option' && this.valueEqual(selected.value, valueEntry)\n ) as SelectOption<T>)\n )\n .filter(v => !!v);\n\n const optionSource = this.optionSource();\n if (knownSelectedOptions.length === value.length) {\n if (optionSource.compareOptions) {\n knownSelectedOptions.sort(optionSource.compareOptions);\n }\n this.selectedRows.set(knownSelectedOptions);\n } else {\n // We don't have all options, so we need to fetch them.\n optionSource\n .getOptionsForValues(value)\n .pipe(takeUntil(this.valueChange))\n .subscribe(selectedOptions => this.selectedRows.set(selectedOptions));\n }\n }\n\n /** {@inheritDoc SiSelectOptionsStrategy.onFilter} */\n onFilter(filterInput?: string): void {\n this.filterChange.next(filterInput);\n this.loading.set(true);\n }\n\n private valueEqual(a?: T, b?: T): boolean {\n if (a === b) {\n return true;\n }\n if (!a || !b) {\n return false;\n }\n\n const optionSource = this.optionSource();\n if (optionSource.valuesEqual) {\n return optionSource.valuesEqual(a, b);\n }\n\n return false;\n }\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { computed, Directive, InputSignal, Signal, signal } from '@angular/core';\n\nimport { SelectItem, SelectOption } from '../si-select.types';\nimport { SiSelectOptionsStrategy } from './si-select-options-strategy';\n\n/**\n * Input options strategy base class, for eagerly fetched options.\n */\n@Directive()\nexport abstract class SiSelectOptionsStrategyBase<T> implements SiSelectOptionsStrategy<T> {\n /**\n * Function to compare two values on equality which is used to match/filter options.\n */\n abstract optionsEqual: InputSignal<(a: T, b: T) => boolean>;\n\n /**\n * All group and option items in the dropdown.\n *\n * @defaultValue []\n */\n abstract readonly allRows: Signal<(SelectItem<T> | SelectOption<T>)[]>;\n\n private readonly value = signal<T[]>([]);\n private readonly filterValue = signal('');\n\n /**\n * Rows that should be shown.\n *\n * @defaultValue []\n */\n readonly rows = computed(() => {\n const filterValue = this.filterValue();\n if (filterValue) {\n const filterValueLC = filterValue.toLowerCase();\n const checkRow: (row: SelectOption<T>) => boolean = (row: SelectOption<T>) =>\n (row.typeaheadLabel ?? row.label)!.toLowerCase().includes(filterValueLC!);\n\n return this.allRows().reduce((rows, row) => {\n if (row.type === 'option' && checkRow(row)) {\n rows.push(row);\n } else if (row.type === 'group') {\n if (row.label!.toLowerCase().includes(filterValueLC!)) {\n rows.push(row);\n } else {\n const options = row.options.filter(checkRow);\n\n if (options.length) {\n rows.push({ ...row, options });\n }\n }\n }\n\n return rows;\n }, [] as SelectItem<T>[]);\n } else {\n return this.allRows();\n }\n });\n\n readonly selectedRows = computed(() => {\n const values = this.value();\n return this.allRows()\n .map(row => (row.type === 'group' ? row.options : row))\n .flat()\n .filter(option => values.some(value => this.optionsEqual()(value, option.value)));\n });\n\n onValueChange(value: T[]): void {\n this.value.set(value);\n }\n\n onFilter(filterValue?: string): void {\n this.filterValue.set(filterValue ?? '');\n }\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { computed, Directive, input } from '@angular/core';\n\nimport { SelectItem } from '../si-select.types';\nimport { SI_SELECT_OPTIONS_STRATEGY } from './si-select-options-strategy';\nimport { SiSelectOptionsStrategyBase } from './si-select-options-strategy.base';\n\n/**\n * This directive allows passing {@link SelectItem} to the {@link SiSelectComponent}.\n *\n * @example\n * ```html\n * <si-select [options]=\"[{ type: 'option', value: 'one', label: 'One' }, { type: 'option', value: 'two', label: 'Two' }]\"></si-select>\n * <si-select [options]=\"[{ type: 'group', label: 'Group', options [{ type: 'option', value: 1, label: 'One' }, { type: 'option', value: 2, label: 'Two' }] }]\"></si-select>\n * ```\n */\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'si-select[options]',\n providers: [{ provide: SI_SELECT_OPTIONS_STRATEGY, useExisting: SiSelectSimpleOptionsDirective }]\n})\nexport class SiSelectSimpleOptionsDirective<T = string> extends SiSelectOptionsStrategyBase<T> {\n /** Options to be shown in select dropdown */\n readonly options = input<SelectItem<T>[] | null>();\n\n /**\n * By default, values are check on referential equality. Provide a function to customize the behavior.\n *\n * @defaultValue\n * ```\n * (a: T, b: T): boolean => a === b\n * ```\n */\n override readonly optionsEqual = input((a: T, b: T): boolean => a === b, {\n // eslint-disable-next-line @angular-eslint/no-input-rename\n alias: 'optionEqualCheckFn'\n });\n\n override readonly allRows = computed(() => this.options() ?? []);\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { Directive } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { SiSelectSelectionStrategy } from './si-select-selection-strategy';\n\n/**\n * The directive enables the single-select behavior.\n * Otherwise, use the {@link SiSelectMultiValueDirective} directive.\n *\n * @example\n * ```html\n * <si-select [(value)]=\"selectedValue\" [options]=\"[\n * { id: 'good', title: 'Good' },\n * { id: 'average', title: 'Average' },\n * { id: 'poor', title: 'Poor' }\n * ]\"></si-select>\n * ```\n */\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'si-select:not([multi])',\n providers: [\n { provide: SiSelectSelectionStrategy, useExisting: SiSelectSingleValueDirective },\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: SiSelectSingleValueDirective,\n multi: true\n }\n ]\n})\nexport class SiSelectSingleValueDirective<T> extends SiSelectSelectionStrategy<T, T> {\n /**\n * {@inheritDoc SiSelectSelectionStrategy#allowMultiple}\n * @defaultValue false\n */\n override allowMultiple = false;\n\n protected toArrayValue(value: T | undefined): readonly T[] {\n return value !== undefined ? [value] : [];\n }\n\n protected fromArrayValue([value]: readonly T[]): T {\n return value;\n }\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { Directive } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { SiSelectSelectionStrategy } from './si-select-selection-strategy';\n\n/**\n * The directive enables the multi-select behavior.\n * Otherwise, use the {@link SiSelectSingleValueDirective} directive.\n *\n * @example\n * ```html\n * <si-select multi [(value)]=\"multiValue\" [options]=\"[\n * { id: 'good', title: 'Good' },\n * { id: 'average', title: 'Average' },\n * { id: 'poor', title: 'Poor' }\n * ]\"></si-select>\n * ```\n */\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'si-select[multi]',\n providers: [\n { provide: SiSelectSelectionStrategy, useExisting: SiSelectMultiValueDirective },\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: SiSelectMultiValueDirective,\n multi: true\n }\n ]\n})\nexport class SiSelectMultiValueDirective<T> extends SiSelectSelectionStrategy<T, T[]> {\n /**\n * {@inheritDoc SiSelectSelectionStrategy#allowMultiple}\n * @defaultValue true\n */\n override readonly allowMultiple = true;\n\n protected fromArrayValue(value: T[]): T[] {\n return value;\n }\n\n protected toArrayValue(value: T[] | undefined): T[] {\n return value ?? [];\n }\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { booleanAttribute, Directive, HostListener, inject, input } from '@angular/core';\n\nimport { SiSelectComponent } from './si-select.component';\n\n@Directive({\n selector: '[siSelectAction]',\n host: {\n class: 'mx-5 my-4'\n },\n exportAs: 'si-select-action'\n})\nexport class SiSelectActionDirective {\n private readonly select = inject(SiSelectComponent);\n /**\n * Close the select drop down on click.\n * @defaultValue false\n */\n readonly selectActionAutoClose = input(false, { transform: booleanAttribute });\n\n @HostListener('click')\n protected close(): void {\n if (this.selectActionAutoClose()) {\n this.select.close();\n }\n }\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { NgModule } from '@angular/core';\n\nimport { SiSelectSimpleOptionsDirective } from './options/si-select-simple-options.directive';\nimport { SiSelectMultiValueDirective } from './selection/si-select-multi-value.directive';\nimport { SiSelectSingleValueDirective } from './selection/si-select-single-value.directive';\nimport { SiSelectActionDirective } from './si-select-action.directive';\nimport { SiSelectActionsDirective } from './si-select-actions.directive';\nimport { SiSelectGroupTemplateDirective } from './si-select-group-template.directive';\nimport { SiSelectOptionTemplateDirective } from './si-select-option-template.directive';\nimport { SiSelectComponent } from './si-select.component';\n\n@NgModule({\n imports: [\n SiSelectActionDirective,\n SiSelectActionsDirective,\n SiSelectComponent,\n SiSelectGroupTemplateDirective,\n SiSelectMultiValueDirective,\n SiSelectOptionTemplateDirective,\n SiSelectSimpleOptionsDirective,\n SiSelectSingleValueDirective\n ],\n exports: [\n SiSelectActionDirective,\n SiSelectActionsDirective,\n SiSelectComponent,\n SiSelectGroupTemplateDirective,\n SiSelectMultiValueDirective,\n SiSelectOptionTemplateDirective,\n SiSelectSimpleOptionsDirective,\n SiSelectSingleValueDirective\n ]\n})\nexport class SiSelectModule {}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nexport * from './si-select.component';\nexport * from './options/si-select-lazy-options.directive';\nexport * from './options/si-select-simple-options.directive';\nexport * from './options/si-select-option.source';\nexport * from './selection/si-select-single-value.directive';\nexport * from './selection/si-select-multi-value.directive';\nexport * from './si-select-option-template.directive';\nexport * from './si-select-group-template.directive';\nexport * from './si-select.module';\nexport * from './select-list/si-select-list-has-filter.component';\nexport * from './si-select-action.directive';\nexport * from './si-select-actions.directive';\nexport * from './si-select.types';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1"],"mappings":"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"}
1
+ {"version":3,"file":"siemens-element-ng-select.mjs","sources":["../../../../projects/element-ng/select/options/si-select-options-strategy.ts","../../../../projects/element-ng/select/si-select-option-template.directive.ts","../../../../projects/element-ng/select/select-option/si-select-option.component.ts","../../../../projects/element-ng/select/select-option/si-select-option.component.html","../../../../projects/element-ng/select/selection/si-select-selection-strategy.ts","../../../../projects/element-ng/select/select-input/si-select-input.component.ts","../../../../projects/element-ng/select/select-input/si-select-input.component.html","../../../../projects/element-ng/select/select-option/si-select-option-row.component.ts","../../../../projects/element-ng/select/select-option/si-select-option-row.component.html","../../../../projects/element-ng/select/si-select-group-template.directive.ts","../../../../projects/element-ng/select/si-select-option-row-template.directive.ts","../../../../projects/element-ng/select/select-list/si-select-list.base.ts","../../../../projects/element-ng/select/select-list/si-select-list-has-filter.component.ts","../../../../projects/element-ng/select/select-list/si-select-list-has-filter.component.html","../../../../projects/element-ng/select/select-list/si-select-list.component.ts","../../../../projects/element-ng/select/select-list/si-select-list.component.html","../../../../projects/element-ng/select/si-select-actions.directive.ts","../../../../projects/element-ng/select/si-select.component.ts","../../../../projects/element-ng/select/si-select.component.html","../../../../projects/element-ng/select/options/si-select-lazy-options.directive.ts","../../../../projects/element-ng/select/options/si-select-options-strategy.base.ts","../../../../projects/element-ng/select/options/si-select-simple-options.directive.ts","../../../../projects/element-ng/select/selection/si-select-single-value.directive.ts","../../../../projects/element-ng/select/selection/si-select-multi-value.directive.ts","../../../../projects/element-ng/select/si-select-action.directive.ts","../../../../projects/element-ng/select/si-select.module.ts","../../../../projects/element-ng/select/si-custom-select.directive.ts","../../../../projects/element-ng/select/si-select-combobox.component.ts","../../../../projects/element-ng/select/si-select-combobox-value.component.ts","../../../../projects/element-ng/select/si-select-dropdown.directive.ts","../../../../projects/element-ng/select/index.ts","../../../../projects/element-ng/select/siemens-element-ng-select.ts"],"sourcesContent":["/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { InjectionToken, Signal } from '@angular/core';\n\nimport { SelectItem, SelectOption } from '../si-select.types';\n\nexport const SI_SELECT_OPTIONS_STRATEGY = new InjectionToken<SiSelectOptionsStrategy<unknown>>(\n 'si-select.options-strategy'\n);\n\nexport interface SiSelectOptionsStrategy<T> {\n /**\n * List of all rows that should be rendered in a selection list.\n */\n readonly rows: Signal<readonly SelectItem<T>[]>;\n\n /**\n * List of all options that are currently selected.\n * Must be updated when {@link onValueChange} is called.\n */\n readonly selectedRows: Signal<readonly SelectOption<T>[]>;\n\n /**\n * Indicate loading state of the options.\n */\n readonly loading?: Signal<boolean>;\n\n /**\n * Is always called when the value changes.\n * The implementation must update {@link selectedRows} when called.\n *\n * @param value - currently selected value of the related si-select.\n */\n onValueChange(value: readonly T[]): void;\n\n /**\n * This function is called when a user enters a filter query.\n * It is expected that an implementation will update the `rows`\n * based on the query.\n *\n * @param filterInput - Unprocessed input by user in the filterInput field\n */\n onFilter?(filterInput?: string): void;\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { Directive } from '@angular/core';\n\nimport { SelectOption } from './si-select.types';\n\n/**\n * The directive allows to template/customize the value option rendering.\n * This requires using the {@link SiSelectSimpleOptionsDirective} to specify options as input.\n *\n * @example\n * ```html\n * <si-select [options]=\"[{ id: 'good', title: 'Good' }, { id: 'fair', title: 'Fair' }, { id: 'bad', title: 'Bad' }]\" >\n * <ng-template siSelectOptionTemplate let-option>{{ option.value | uppercase }}</ng-template>\n * </si-select>\n * ```\n */\n@Directive({\n selector: '[siSelectOptionTemplate]'\n})\nexport class SiSelectOptionTemplateDirective {\n /** @internal */\n static ngTemplateContextGuard<T = any>(\n directive: SiSelectOptionTemplateDirective,\n context: unknown\n ): context is { $implicit: SelectOption<T> } {\n return true;\n }\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, input, TemplateRef } from '@angular/core';\nimport { SiIconComponent } from '@siemens/element-ng/icon';\nimport { SiTranslatePipe } from '@siemens/element-translate-ng/translate';\n\nimport { SiSelectOptionTemplateDirective } from '../si-select-option-template.directive';\nimport { SelectOption } from '../si-select.types';\n\n@Component({\n selector: 'si-select-option',\n imports: [NgTemplateOutlet, SiIconComponent, SiTranslatePipe, SiSelectOptionTemplateDirective],\n templateUrl: './si-select-option.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'd-flex align-items-center overflow-hidden'\n }\n})\nexport class SiSelectOptionComponent {\n readonly option = input.required<SelectOption<unknown>>();\n readonly optionTemplate = input<TemplateRef<unknown>>();\n}\n","<ng-container\n [ngTemplateOutlet]=\"optionTemplate() ?? defaultOptionTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: option() }\"\n/>\n\n<ng-template #defaultOptionTemplate let-item siSelectOptionTemplate>\n @if (item.icon) {\n <i class=\"icon-stack\">\n <si-icon\n class=\"icon me-2\"\n [icon]=\"item.icon\"\n [class]=\"!item.disabled && item.iconColor ? item.iconColor : ''\"\n />\n @if (item.stackedIcon) {\n <si-icon\n class=\"icon me-2\"\n [class]=\"item.stackedIconColor ?? ''\"\n [icon]=\"item.stackedIcon\"\n />\n }\n </i>\n }\n @if (item.label) {\n <span class=\"text-truncate\">{{ item.label | translate }}</span>\n }\n</ng-template>\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport {\n booleanAttribute,\n computed,\n Directive,\n inject,\n input,\n Input,\n output,\n signal,\n Signal\n} from '@angular/core';\nimport { ControlValueAccessor } from '@angular/forms';\n\nimport {\n SI_SELECT_OPTIONS_STRATEGY,\n SiSelectOptionsStrategy\n} from '../options/si-select-options-strategy';\n\n/**\n * Selection strategy base class.\n */\n@Directive({\n host: {\n '[class.disabled]': 'disabled()'\n }\n})\nexport abstract class SiSelectSelectionStrategy<T, IV = T | T[]> implements ControlValueAccessor {\n /**\n * Whether the select input is disabled.\n *\n * @defaultValue false\n */\n // eslint-disable-next-line @angular-eslint/no-input-rename\n readonly disabledInput = input(false, { alias: 'disabled', transform: booleanAttribute });\n\n /**\n * The selected value(s).\n */\n @Input() set value(value: IV | undefined) {\n this.updateFromInput(this.toArrayValue(value));\n }\n\n /** Emitted when the selection is changed */\n readonly valueChange = output<IV>();\n\n /**\n * Whether the select control allows to select multiple values.\n * @internal\n */\n abstract readonly allowMultiple: boolean;\n\n /**\n * Provides the internal value always as an array\n * @internal\n */\n readonly arrayValue: Signal<readonly T[]> = computed(() =>\n this.selectOptions.selectedRows().map(option => option.value)\n );\n\n /**\n * Registered form callback which shall be called on blur.\n * @internal\n */\n onTouched: () => void = () => {};\n /** @internal */\n public readonly disabled = computed(() => this.disabledInput() || this.disabledNgControl());\n protected onChange: (_: any) => void = () => {};\n private readonly disabledNgControl = signal(false);\n private readonly selectOptions = inject<SiSelectOptionsStrategy<T>>(SI_SELECT_OPTIONS_STRATEGY);\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n /**\n * CDK Listbox value changed handler.\n * @internal\n */\n updateFromUser(values: T[]): void {\n const parsedValue = this.fromArrayValue(values);\n this.onChange(parsedValue);\n this.valueChange.emit(parsedValue);\n this.selectOptions.onValueChange(values);\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabledNgControl.set(isDisabled);\n }\n\n writeValue(obj: any): void {\n this.updateFromInput(this.toArrayValue(obj));\n }\n\n protected abstract toArrayValue(value: IV | undefined): readonly T[];\n\n protected abstract fromArrayValue(value: readonly T[]): IV;\n\n private updateFromInput(values: readonly T[]): void {\n this.selectOptions.onValueChange(values);\n }\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n inject,\n input,\n output,\n TemplateRef\n} from '@angular/core';\nimport { elementDown2 } from '@siemens/element-icons';\nimport { SiAutoCollapsableListModule } from '@siemens/element-ng/auto-collapsable-list';\nimport { addIcons, SiIconComponent } from '@siemens/element-ng/icon';\nimport { SiTranslatePipe, TranslatableString } from '@siemens/element-translate-ng/translate';\n\nimport {\n SI_SELECT_OPTIONS_STRATEGY,\n SiSelectOptionsStrategy\n} from '../options/si-select-options-strategy';\nimport { SiSelectOptionComponent } from '../select-option/si-select-option.component';\nimport { SiSelectSelectionStrategy } from '../selection/si-select-selection-strategy';\nimport { SelectOption } from '../si-select.types';\n\n@Component({\n selector: 'si-select-input',\n imports: [SiAutoCollapsableListModule, SiIconComponent, SiSelectOptionComponent, SiTranslatePipe],\n templateUrl: './si-select-input.component.html',\n styleUrl: './si-select-input.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n // In readonly mode, the select needs to be announced as a textbox.\n // Otherwise, screen-reader won't announce the readonly state.\n class: 'select focus-none dropdown-toggle d-flex align-items-center ps-4',\n 'aria-autocomplete': 'none',\n '[attr.role]': 'readonly() ? \"textbox\": \"combobox\"',\n '[attr.aria-haspopup]': 'readonly() ? undefined : \"listbox\"',\n '[attr.aria-expanded]': 'readonly() ? undefined : open()',\n '[attr.aria-controls]': 'readonly() ? undefined : controls()',\n '[attr.aria-readonly]': 'readonly()',\n '[attr.aria-labelledby]': 'labeledBy()',\n '[attr.aria-disabled]': 'selectionStrategy.disabled()',\n '[attr.tabindex]': 'selectionStrategy.disabled() ? \"-1\" : \"0\"',\n '[class.disabled]': 'selectionStrategy.disabled()',\n '[class.active]': 'open()',\n '(blur)': 'blur()',\n '(click)': 'click($event)',\n '(keydown.arrowDown)': 'click($event)',\n '(keydown.alt.arrowDown)': 'click($event)',\n '(keydown.arrowUp)': 'click($event)',\n '(keydown.enter)': 'click($event)',\n '(keydown.space)': 'click($event)'\n }\n})\nexport class SiSelectInputComponent<T> {\n readonly baseId = input.required<string>();\n /**\n * Aria labelledby of the select.\n *\n * @defaultValue null\n */\n readonly labelledby = input<string | null>(null);\n /**\n * Aria label of the select.\n *\n * @defaultValue null\n */\n readonly ariaLabel = input<string | null>(null);\n /** @defaultValue false */\n readonly open = input(false, { transform: booleanAttribute });\n readonly placeholder = input<TranslatableString>();\n readonly controls = input.required<string>();\n readonly optionTemplate = input<\n TemplateRef<{\n $implicit: SelectOption<T>;\n }>\n >();\n\n /** @defaultValue false */\n readonly readonly = input(false, { transform: booleanAttribute });\n\n readonly openListbox = output<void>();\n protected readonly selectionStrategy = inject<SiSelectSelectionStrategy<T>>(\n SiSelectSelectionStrategy<T>\n );\n private readonly selectOptions = inject<SiSelectOptionsStrategy<T>>(SI_SELECT_OPTIONS_STRATEGY);\n protected readonly selectedRows = this.selectOptions.selectedRows;\n protected readonly labeledBy = computed(() => `${this.baseId()}-aria-label ${this.labelledby()}`);\n protected readonly icons = addIcons({ elementDown2 });\n\n protected blur(): void {\n if (!this.open()) {\n this.selectionStrategy.onTouched();\n }\n }\n\n protected click(event?: Event): void {\n event?.preventDefault();\n this.openListbox.emit();\n }\n}\n","@if (ariaLabel()) {\n <span class=\"visually-hidden\" [id]=\"baseId() + '-aria-label'\">{{ ariaLabel() }}</span>\n}\n<div\n class=\"d-flex align-items-center flex-fill overflow-hidden\"\n [id]=\"baseId() + '-content'\"\n [siAutoCollapsableList]=\"selectionStrategy.allowMultiple && selectedRows().length > 1\"\n>\n @for (activeOption of selectedRows(); track activeOption) {\n @if (activeOption) {\n <si-select-option\n siAutoCollapsableListItem\n [option]=\"activeOption\"\n [optionTemplate]=\"optionTemplate()\"\n [class.overflow-hidden]=\"!selectionStrategy.allowMultiple || $count === 1\"\n />\n }\n } @empty {\n <div class=\"text-secondary\">{{ placeholder() | translate }}</div>\n }\n @if (selectionStrategy.allowMultiple) {\n <div #overflowItem=\"siAutoCollapsableListOverflowItem\" siAutoCollapsableListOverflowItem>\n <div class=\"pill py-0 ms-2\"> {{ overflowItem.hiddenItemCount }}+</div>\n </div>\n }\n</div>\n<div class=\"form-control-actions\">\n <si-icon\n class=\"dropdown-caret icon flip-rtl ps-0 m-0\"\n [class.text-muted]=\"readonly()\"\n [icon]=\"icons.elementDown2\"\n />\n</div>\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n input,\n TemplateRef\n} from '@angular/core';\nimport { elementOk } from '@siemens/element-icons';\nimport { addIcons, SiIconComponent } from '@siemens/element-ng/icon';\n\nimport { SiSelectOptionComponent } from '../select-option/si-select-option.component';\nimport { SelectOption } from '../si-select.types';\n\n@Component({\n selector: 'si-select-option-row',\n imports: [SiIconComponent, SiSelectOptionComponent],\n templateUrl: './si-select-option-row.component.html',\n styleUrl: './si-select-option-row.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'dropdown-item focus-none pe-4 gap-4',\n '[class.disabled]': '!!this.option().disabled',\n '[attr.aria-selected]': 'selected()',\n '[attr.data-id]': 'this.option().value'\n }\n})\nexport class SiSelectOptionRowComponent {\n readonly option = input.required<SelectOption<unknown>>();\n readonly optionTemplate = input<TemplateRef<unknown>>();\n /** @defaultValue false */\n readonly selected = input(false, { transform: booleanAttribute });\n protected readonly icons = addIcons({ elementOk });\n}\n","<span\n class=\"form-check-input si-form-checkbox\"\n [class.checked]=\"selected()\"\n [class.disabled]=\"option().disabled\"\n></span>\n<si-select-option [option]=\"option()\" [optionTemplate]=\"optionTemplate()\" />\n@if (selected()) {\n <span class=\"ms-auto selected-marker\" aria-hidden=\"true\">\n <si-icon class=\"d-block icon\" [icon]=\"icons.elementOk\" />\n </span>\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { Directive } from '@angular/core';\n\nimport { SelectGroup } from './si-select.types';\n\n/**\n * The directive allows to template/customize the group option rendering.\n * This requires using the {@link SiSelectSimpleOptionsDirective} to specify options as input.\n *\n * @example\n * ```html\n * <si-select [options]=\"[\n * { type: 'group', key: 'g1', label: 'Group 1', options: [\n * { type: 'option', value: 'g1.i1', label: 'Item 1' },\n * { type: 'option', value: 'g1.i2', label: 'Item 2' }\n * ]},\n * { type: 'group', key: 'g2', label: 'Group 2', options: [\n * { type: 'option', value: 'g2.i1', label: 'Item 1' }\n * ]}\n * ]\">\n * <ng-template siSelectGroupTemplate let-group>{{ group.key | uppercase }}</ng-template>\n * </si-select>\n * ```\n */\n@Directive({\n selector: '[siSelectGroupTemplate]'\n})\nexport class SiSelectGroupTemplateDirective {\n static ngTemplateContextGuard<T = any>(\n directive: SiSelectGroupTemplateDirective,\n context: unknown\n ): context is { $implicit: SelectGroup<T> } {\n return true;\n }\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { Directive } from '@angular/core';\n\nimport { SelectOption } from './si-select.types';\n\n@Directive({\n selector: '[siSelectOptionRowTemplate]'\n})\nexport class SiSelectOptionRowTemplateDirective {\n static ngTemplateContextGuard<T = any>(\n directive: SiSelectOptionRowTemplateDirective,\n context: unknown\n ): context is { $implicit: SelectOption<T> } {\n return true;\n }\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { ConfigurableFocusTrap, ConfigurableFocusTrapFactory } from '@angular/cdk/a11y';\nimport {\n Directive,\n ElementRef,\n inject,\n input,\n OnDestroy,\n OnInit,\n output,\n TemplateRef\n} from '@angular/core';\n\nimport {\n SI_SELECT_OPTIONS_STRATEGY,\n SiSelectOptionsStrategy\n} from '../options/si-select-options-strategy';\nimport { SiSelectSelectionStrategy } from '../selection/si-select-selection-strategy';\nimport { SelectGroup, SelectOption } from '../si-select.types';\n\n@Directive({\n host: {\n class: 'dropdown-menu position-static w-100 py-4 d-flex flex-column',\n '[class.si-multi-select]': 'multiSelect',\n '(keydown.tab)': 'keydownTab()'\n }\n})\nexport abstract class SiSelectListBase<T> implements OnInit, OnDestroy {\n readonly baseId = input.required<string>();\n readonly optionTemplate = input<\n TemplateRef<{\n $implicit: SelectOption<T>;\n }>\n >();\n readonly groupTemplate = input<\n TemplateRef<{\n $implicit: SelectGroup<T>;\n }>\n >();\n /** @defaultValue null */\n readonly labelledby = input<string | null>(null);\n readonly actionsTemplate = input<TemplateRef<any>>();\n\n readonly closeOverlay = output<void>();\n\n protected readonly selectionStrategy =\n inject<SiSelectSelectionStrategy<T>>(SiSelectSelectionStrategy);\n protected readonly selectOptions = inject<SiSelectOptionsStrategy<T>>(SI_SELECT_OPTIONS_STRATEGY);\n protected readonly focusTrapFactory = inject(ConfigurableFocusTrapFactory);\n protected readonly elementRef = inject(ElementRef);\n protected rows = this.selectOptions.rows;\n protected focusTrap!: ConfigurableFocusTrap;\n\n protected multiSelect = this.selectionStrategy.allowMultiple;\n\n ngOnInit(): void {\n this.focusTrap = this.focusTrapFactory.create(this.elementRef.nativeElement);\n }\n\n ngOnDestroy(): void {\n this.focusTrap.destroy();\n }\n\n protected keydownTab(): void {\n // Ignore tab key if actions are displayed.\n if (!this.actionsTemplate()) {\n this.closeOverlayAlways();\n }\n }\n\n protected closeOverlayAlways(): void {\n this.closeOverlay.emit();\n }\n\n protected closeOverlayIfSingle(): void {\n if (!this.selectionStrategy.allowMultiple) {\n this.closeOverlayAlways();\n }\n }\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n ElementRef,\n input,\n OnInit,\n Signal,\n signal,\n viewChild\n} from '@angular/core';\nimport { elementSearch } from '@siemens/element-icons';\nimport { SiAutocompleteDirective, SiAutocompleteModule } from '@siemens/element-ng/autocomplete';\nimport { addIcons, SiIconComponent } from '@siemens/element-ng/icon';\nimport { SiLoadingSpinnerComponent } from '@siemens/element-ng/loading-spinner';\nimport { SiTranslatePipe, TranslatableString } from '@siemens/element-translate-ng/translate';\n\nimport { SiSelectOptionRowComponent } from '../select-option/si-select-option-row.component';\nimport { SiSelectGroupTemplateDirective } from '../si-select-group-template.directive';\nimport { SiSelectOptionRowTemplateDirective } from '../si-select-option-row-template.directive';\nimport { SiSelectListBase } from './si-select-list.base';\n\n@Component({\n selector: 'si-select-list-has-filter',\n imports: [\n NgTemplateOutlet,\n SiAutocompleteDirective,\n SiIconComponent,\n SiSelectGroupTemplateDirective,\n SiSelectOptionRowComponent,\n SiSelectOptionRowTemplateDirective,\n SiTranslatePipe,\n SiAutocompleteModule,\n SiLoadingSpinnerComponent\n ],\n templateUrl: './si-select-list-has-filter.component.html',\n styleUrl: './si-select-list-has-filter.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'pt-0',\n '[attr.id]': 'id()'\n }\n})\nexport class SiSelectListHasFilterComponent<T> extends SiSelectListBase<T> implements OnInit {\n /** Placeholder for search input field. */\n readonly filterPlaceholder = input.required<TranslatableString>();\n /** Label if no item can be found. */\n readonly noResultsFoundLabel = input.required<TranslatableString>();\n\n protected readonly filterInput = viewChild.required<ElementRef<HTMLInputElement>>('filter');\n protected readonly initIndex: Signal<number>;\n protected readonly id = computed(() => `${this.baseId()}-listbox`);\n protected readonly icons = addIcons({ elementSearch });\n\n constructor() {\n super();\n if (!this.selectOptions.onFilter) {\n console.error('Missing implementation for `onFilter`');\n }\n const firstValue = this.selectionStrategy.arrayValue()[0];\n if (firstValue) {\n this.initIndex = computed(() =>\n this.rows().findIndex(row => row.type === 'option' && row.value === firstValue)\n );\n } else {\n this.initIndex = signal(0);\n }\n }\n\n override ngOnInit(): void {\n super.ngOnInit();\n this.selectOptions.onFilter!();\n setTimeout(() => this.filterInput().nativeElement.focus());\n }\n\n protected input(): void {\n this.selectOptions.onFilter!(this.filterInput().nativeElement.value);\n }\n\n protected select(newValue: T): void {\n if (this.selectionStrategy.allowMultiple) {\n if (this.selectionStrategy.arrayValue().includes(newValue)) {\n this.selectionStrategy.updateFromUser(\n this.selectionStrategy.arrayValue().filter(value => value !== newValue)\n );\n } else {\n this.selectionStrategy.updateFromUser([...this.selectionStrategy.arrayValue(), newValue]);\n }\n } else {\n this.selectionStrategy.updateFromUser([newValue]);\n }\n this.closeOverlayIfSingle();\n }\n}\n","<div class=\"pt-5 pb-5 px-5 top-0\">\n <div class=\"position-relative\">\n <input\n #filter\n #siAutocomplete=\"siAutocomplete\"\n siAutocomplete\n class=\"form-control icon-start border-0 rounded-2 bg-base-0\"\n [placeholder]=\"filterPlaceholder() | translate\"\n [id]=\"baseId() + 'filter-input'\"\n [attr.aria-labelledby]=\"baseId() + '-aria-label' + ' ' + labelledby()\"\n (input)=\"input()\"\n />\n <si-icon\n class=\"icon text-secondary position-absolute top-0 bottom-0 d-flex align-items-center ps-2\"\n [icon]=\"icons.elementSearch\"\n />\n @if (selectOptions.loading?.()) {\n <si-loading-spinner class=\"position-absolute end-0 bottom-0 d-flex align-items-center p-2\" />\n }\n </div>\n</div>\n<div\n class=\"si-select-filtered-items\"\n tabindex=\"-1\"\n [siAutocompleteListboxFor]=\"siAutocomplete\"\n [siAutocompleteDefaultIndex]=\"initIndex()\"\n [attr.aria-labelledby]=\"baseId() + '-aria-label' + ' ' + labelledby()\"\n (siAutocompleteOptionSubmitted)=\"select($event)\"\n>\n @for (item of rows(); track item; let index = $index) {\n @if (item.type === 'group') {\n <div\n role=\"group\"\n class=\"ps-0\"\n aria-disabled=\"false\"\n [attr.aria-labelledby]=\"baseId() + '-' + index + '-group-header'\"\n >\n <div class=\"dropdown-header\" [id]=\"baseId() + '-' + index + '-group-header'\">\n <ng-container\n [ngTemplateOutlet]=\"groupTemplate() ?? defaultGroupTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"\n />\n </div>\n @for (optionRow of item.options; track optionRow) {\n <ng-container\n [ngTemplateOutlet]=\"optionRowTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: optionRow }\"\n />\n }\n </div>\n }\n @if (item.type === 'option') {\n <ng-container\n [ngTemplateOutlet]=\"optionRowTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"\n />\n }\n } @empty {\n <div\n role=\"option\"\n aria-disabled=\"true\"\n aria-selected=\"false\"\n class=\"dropdown-item disabled text-secondary justify-content-center mb-2\"\n >\n <span>{{ noResultsFoundLabel() | translate }}</span>\n </div>\n }\n\n <ng-template #optionRowTemplate let-option siSelectOptionRowTemplate>\n <si-select-option-row\n [option]=\"option\"\n [optionTemplate]=\"optionTemplate()\"\n [siAutocompleteOption]=\"option.value\"\n [disabled]=\"option.disabled\"\n [selected]=\"selectionStrategy.arrayValue().includes(option.value)\"\n />\n </ng-template>\n</div>\n@if (actionsTemplate()) {\n <div class=\"dropdown-divider\"></div>\n <div class=\"d-flex flex-column align-items-start\">\n <ng-container\n [ngTemplateOutlet]=\"actionsTemplate()!\"\n [ngTemplateOutletContext]=\"{\n searchText: filter.value,\n visibleOptionsCount: rows().length\n }\"\n />\n </div>\n}\n\n<ng-template #defaultGroupTemplate let-group siSelectGroupTemplate>\n {{ group.label | translate }}\n</ng-template>\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { CdkListbox, CdkOption, ListboxValueChangeEvent } from '@angular/cdk/listbox';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ElementRef, OnInit, viewChild } from '@angular/core';\nimport { SiTranslatePipe } from '@siemens/element-translate-ng/translate';\n\nimport { SiSelectOptionRowComponent } from '../select-option/si-select-option-row.component';\nimport { SiSelectGroupTemplateDirective } from '../si-select-group-template.directive';\nimport { SiSelectOptionRowTemplateDirective } from '../si-select-option-row-template.directive';\nimport { SiSelectListBase } from './si-select-list.base';\n\n@Component({\n selector: 'si-select-list',\n imports: [\n CommonModule,\n CdkListbox,\n SiTranslatePipe,\n CdkOption,\n SiSelectOptionRowTemplateDirective,\n SiSelectGroupTemplateDirective,\n SiSelectOptionRowComponent\n ],\n templateUrl: './si-select-list.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SiSelectListComponent<T> extends SiSelectListBase<T> implements OnInit {\n private readonly listbox = viewChild.required<CdkListbox, ElementRef<HTMLUListElement>>(\n CdkListbox,\n {\n read: ElementRef\n }\n );\n\n override ngOnInit(): void {\n super.ngOnInit();\n setTimeout(() => this.listbox().nativeElement.focus());\n }\n\n protected listBoxValueChange(changeEvent: ListboxValueChangeEvent<T>): void {\n this.selectionStrategy.updateFromUser(changeEvent.value.slice());\n }\n}\n","<div\n cdkListbox\n class=\"dropdown-menu-scroller focus-none\"\n [id]=\"baseId() + '-listbox'\"\n [cdkListboxMultiple]=\"selectionStrategy.allowMultiple\"\n [cdkListboxValue]=\"selectionStrategy.arrayValue()\"\n [attr.aria-labelledby]=\"baseId() + '-aria-label' + ' ' + labelledby()\"\n (cdkListboxValueChange)=\"listBoxValueChange($event)\"\n (click)=\"closeOverlayIfSingle()\"\n (keydown.enter)=\"closeOverlayIfSingle()\"\n (keydown.space)=\"closeOverlayIfSingle()\"\n>\n @for (item of rows(); track item; let index = $index) {\n @if (item.type === 'group') {\n <div\n role=\"group\"\n class=\"ps-0\"\n aria-disabled=\"false\"\n [attr.aria-labelledby]=\"baseId() + '-' + index + '-group-header'\"\n >\n <span class=\"dropdown-header\" [id]=\"baseId() + '-' + index + '-group-header'\">\n <ng-container\n [ngTemplateOutlet]=\"groupTemplate() ?? defaultGroupTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"\n />\n </span>\n @for (optionRow of item.options; track optionRow) {\n <ng-container\n [ngTemplateOutlet]=\"optionRowTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: optionRow }\"\n />\n }\n </div>\n }\n @if (item.type === 'option') {\n <ng-container\n [ngTemplateOutlet]=\"optionRowTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"\n />\n }\n }\n <ng-template #optionRowTemplate let-option siSelectOptionRowTemplate>\n <si-select-option-row\n #cdkOption=\"cdkOption\"\n [option]=\"option\"\n [optionTemplate]=\"optionTemplate()\"\n [cdkOption]=\"option.value\"\n [cdkOptionDisabled]=\"!!option.disabled\"\n [cdkOptionTypeaheadLabel]=\"(option.typeaheadLabel | translate)!\"\n [class.active]=\"cdkOption.isActive()\"\n [selected]=\"cdkOption.isSelected()\"\n />\n </ng-template>\n</div>\n@if (actionsTemplate()) {\n <div class=\"dropdown-divider\"></div>\n <div class=\"d-flex flex-column align-items-start\">\n <ng-container [ngTemplateOutlet]=\"actionsTemplate()!\" />\n </div>\n}\n\n<ng-template #defaultGroupTemplate let-group siSelectGroupTemplate>\n {{ group.label | translate }}\n</ng-template>\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { Directive } from '@angular/core';\n\n@Directive({\n selector: '[siSelectActions]',\n exportAs: 'si-select-actions'\n})\nexport class SiSelectActionsDirective {\n /** @internal */\n static ngTemplateContextGuard(\n directive: SiSelectActionsDirective,\n context: unknown\n ): context is { searchText?: string; visibleOptionsCount?: number } {\n return true;\n }\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { CdkOverlayOrigin, OverlayModule } from '@angular/cdk/overlay';\nimport {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChild,\n ElementRef,\n inject,\n input,\n output,\n signal,\n TemplateRef,\n viewChild\n} from '@angular/core';\nimport { SI_FORM_ITEM_CONTROL, SiFormItemControl } from '@siemens/element-ng/form';\nimport { t, TranslatableString } from '@siemens/element-translate-ng/translate';\n\nimport { SiSelectInputComponent } from './select-input/si-select-input.component';\nimport { SiSelectListHasFilterComponent } from './select-list/si-select-list-has-filter.component';\nimport { SiSelectListComponent } from './select-list/si-select-list.component';\nimport { SiSelectSelectionStrategy } from './selection/si-select-selection-strategy';\nimport { SiSelectActionsDirective } from './si-select-actions.directive';\nimport { SiSelectGroupTemplateDirective } from './si-select-group-template.directive';\nimport { SiSelectOptionTemplateDirective } from './si-select-option-template.directive';\nimport { SelectGroup, SelectItem, SelectOption } from './si-select.types';\n\n@Component({\n selector: 'si-select',\n imports: [\n OverlayModule,\n SiSelectInputComponent,\n SiSelectListComponent,\n SiSelectListHasFilterComponent\n ],\n templateUrl: './si-select.component.html',\n styleUrl: './si-select.component.scss',\n providers: [{ provide: SI_FORM_ITEM_CONTROL, useExisting: SiSelectComponent }],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'dropdown',\n '[class.readonly]': 'readonly()',\n '[class.open]': 'isOpen()',\n '[class.si-select-has-filter]': 'hasFilter()'\n }\n})\nexport class SiSelectComponent<T> implements SiFormItemControl {\n private static idCounter = 0;\n /**\n * Unique identifier.\n *\n * @defaultValue\n * ```\n * `__si-select-${SiSelectComponent.idCounter++}`\n * ```\n */\n readonly id = input(`__si-select-${SiSelectComponent.idCounter++}`);\n /**\n * Aria label of the select.\n *\n * @defaultValue null\n */\n readonly ariaLabel = input<string | null>(null);\n /**\n * Aria labelledby of the select.\n * @defaultValue undefined\n */\n // eslint-disable-next-line @angular-eslint/no-input-rename\n readonly labelledbyInput = input<string | undefined>(undefined, { alias: 'labelledby' });\n /**\n * Placeholder for search input field.\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_SELECT.SEARCH-PLACEHOLDER:Search...`)\n * ```\n */\n readonly filterPlaceholder = input(t(() => $localize`:@@SI_SELECT.SEARCH-PLACEHOLDER:Search...`));\n /**\n * Label if no item can be found.\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_SELECT.NO-RESULTS-FOUND:No results found`)\n * ```\n */\n readonly noResultsFoundLabel = input(\n t(() => $localize`:@@SI_SELECT.NO-RESULTS-FOUND:No results found`)\n );\n /** Placeholder text to display when no options are selected. */\n readonly placeholder = input<TranslatableString>();\n /**\n * Readonly state. Similar to disabled but with higher contrast *\n *\n * @defaultValue false\n */\n readonly readonly = input(false, { transform: booleanAttribute });\n\n /** Emits when the dropdown open state changes. */\n readonly openChange = output<boolean>();\n\n protected readonly isOpen = signal(false);\n\n protected readonly optionTemplate = contentChild<\n SiSelectOptionTemplateDirective,\n TemplateRef<{ $implicit: SelectOption<T> }>\n >(SiSelectOptionTemplateDirective, { read: TemplateRef });\n\n protected readonly groupTemplate = contentChild<\n SiSelectGroupTemplateDirective,\n TemplateRef<{ $implicit: SelectGroup<T> }>\n >(SiSelectGroupTemplateDirective, { read: TemplateRef });\n\n protected readonly actionsTemplate = contentChild<SiSelectActionsDirective, TemplateRef<any>>(\n SiSelectActionsDirective,\n { read: TemplateRef }\n );\n\n private readonly trigger = viewChild.required<CdkOverlayOrigin, ElementRef<HTMLDivElement>>(\n CdkOverlayOrigin,\n {\n read: ElementRef\n }\n );\n\n /** @internal */\n readonly labelledby = computed(() => this.labelledbyInput() ?? this.id() + '-label');\n /**\n * This ID will be bound to the `aria-describedby` attribute of the select.\n * Use this to reference the element containing the error message(s) for the select.\n * It will be picked by the {@link SiFormItemComponent} if the select is used inside a form item.\n *\n * @defaultValue\n * ```\n * `${this.id()}-errormessage`\n * ```\n */\n readonly errormessageId = input(`${this.id()}-errormessage`);\n\n protected rows: readonly SelectItem<T>[] = [];\n protected overlayWidth = 0;\n protected readonly selectionStrategy = inject(SiSelectSelectionStrategy<T>);\n\n private backdropClicked = false;\n\n /**\n * Enables the filter input\n * @defaultValue false\n * @defaultref {@link SiSelectComponent#_hasFilter}\n */\n readonly hasFilter = input(false, { transform: booleanAttribute });\n\n /** Opens the `si-select`. */\n open(): void {\n if (this.readonly() || this.selectionStrategy.disabled()) {\n return;\n }\n this.overlayWidth = this.trigger().nativeElement.getBoundingClientRect().width + 2; // 2px border\n this.isOpen.set(true);\n this.openChange.emit(true);\n }\n\n /** Closes the `si-select`. */\n close(): void {\n this.isOpen.set(false);\n if (!this.backdropClicked) {\n this.trigger().nativeElement.focus();\n } else {\n this.backdropClicked = false;\n this.selectionStrategy.onTouched();\n }\n this.openChange.emit(false);\n }\n\n protected backdropClick(): void {\n this.backdropClicked = true;\n this.isOpen.set(false);\n }\n}\n","<si-select-input\n #trigger=\"cdkOverlayOrigin\"\n cdkOverlayOrigin\n [baseId]=\"id()\"\n [labelledby]=\"labelledby()\"\n [optionTemplate]=\"optionTemplate()\"\n [ariaLabel]=\"ariaLabel()\"\n [controls]=\"id() + '-listbox'\"\n [open]=\"isOpen()\"\n [placeholder]=\"placeholder()\"\n [readonly]=\"readonly()\"\n [attr.aria-describedby]=\"errormessageId()\"\n (openListbox)=\"open()\"\n/>\n\n<ng-template\n cdkConnectedOverlay\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n [cdkConnectedOverlayHasBackdrop]=\"true\"\n [cdkConnectedOverlayOrigin]=\"trigger\"\n [cdkConnectedOverlayOpen]=\"isOpen()\"\n [cdkConnectedOverlayFlexibleDimensions]=\"true\"\n [cdkConnectedOverlayOffsetX]=\"-1\"\n [cdkConnectedOverlayMinWidth]=\"overlayWidth\"\n (backdropClick)=\"backdropClick()\"\n (detach)=\"close()\"\n>\n @if (!hasFilter()) {\n <si-select-list\n [baseId]=\"id()\"\n [optionTemplate]=\"optionTemplate()\"\n [groupTemplate]=\"groupTemplate()\"\n [labelledby]=\"labelledby()\"\n [actionsTemplate]=\"actionsTemplate()\"\n (closeOverlay)=\"close()\"\n />\n } @else {\n <si-select-list-has-filter\n [baseId]=\"id()\"\n [filterPlaceholder]=\"filterPlaceholder()\"\n [noResultsFoundLabel]=\"noResultsFoundLabel()\"\n [optionTemplate]=\"optionTemplate()\"\n [groupTemplate]=\"groupTemplate()\"\n [labelledby]=\"labelledby()\"\n [actionsTemplate]=\"actionsTemplate()\"\n (closeOverlay)=\"close()\"\n />\n }\n</ng-template>\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { Directive, input, OnDestroy, signal } from '@angular/core';\nimport { of, Subject, switchMap } from 'rxjs';\nimport { debounceTime, takeUntil } from 'rxjs/operators';\n\nimport { SelectItem, SelectOption } from '../si-select.types';\nimport { SelectOptionSource } from './si-select-option.source';\nimport { SI_SELECT_OPTIONS_STRATEGY, SiSelectOptionsStrategy } from './si-select-options-strategy';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'si-select[optionSource]',\n providers: [{ provide: SI_SELECT_OPTIONS_STRATEGY, useExisting: SiSelectLazyOptionsDirective }]\n})\nexport class SiSelectLazyOptionsDirective<T> implements SiSelectOptionsStrategy<T>, OnDestroy {\n /**\n * {@inheritDoc SiSelectOptionsStrategy#loading}\n * @defaultValue false\n */\n readonly loading = signal(false);\n\n /**\n * {@inheritDoc SiSelectOptionsStrategy#rows}\n * @defaultValue []\n */\n readonly rows = signal<SelectItem<T>[]>([]);\n\n /**\n * {@inheritDoc SiSelectOptionsStrategy#selectedRows}\n * @defaultValue []\n */\n readonly selectedRows = signal<SelectOption<T>[]>([]);\n\n readonly optionSource = input.required<SelectOptionSource<T>>();\n\n private valueChange = new Subject<void>();\n private filterChange = new Subject<string | undefined>();\n\n constructor() {\n this.filterChange\n .pipe(\n debounceTime(100),\n switchMap(filterInput => {\n if (filterInput) {\n return this.optionSource().getOptionsForSearch!(filterInput);\n } else {\n const optionSource = this.optionSource();\n if (optionSource.getAllOptions) {\n return optionSource.getAllOptions();\n } else {\n return of(this.selectedRows());\n }\n }\n })\n )\n .subscribe(rows => {\n this.loading.set(false);\n this.rows.set(rows);\n });\n }\n\n ngOnDestroy(): void {\n this.valueChange.next();\n this.valueChange.complete();\n this.filterChange.complete();\n }\n\n /** {@inheritDoc SiSelectOptionsStrategy.onValueChange} */\n onValueChange(value: T[]): void {\n this.valueChange.next();\n\n // To prevent flickering, we need to check if we already got all the requested options.\n // This should always be the case if the user selects one\n const knownSelectedOptions = value\n .map(\n valueEntry =>\n this.selectedRows().find(selected => this.valueEqual(selected.value, valueEntry)) ??\n (this.rows().find(\n selected => selected.type === 'option' && this.valueEqual(selected.value, valueEntry)\n ) as SelectOption<T>)\n )\n .filter(v => !!v);\n\n const optionSource = this.optionSource();\n if (knownSelectedOptions.length === value.length) {\n if (optionSource.compareOptions) {\n knownSelectedOptions.sort(optionSource.compareOptions);\n }\n this.selectedRows.set(knownSelectedOptions);\n } else {\n // We don't have all options, so we need to fetch them.\n optionSource\n .getOptionsForValues(value)\n .pipe(takeUntil(this.valueChange))\n .subscribe(selectedOptions => this.selectedRows.set(selectedOptions));\n }\n }\n\n /** {@inheritDoc SiSelectOptionsStrategy.onFilter} */\n onFilter(filterInput?: string): void {\n this.filterChange.next(filterInput);\n this.loading.set(true);\n }\n\n private valueEqual(a?: T, b?: T): boolean {\n if (a === b) {\n return true;\n }\n if (!a || !b) {\n return false;\n }\n\n const optionSource = this.optionSource();\n if (optionSource.valuesEqual) {\n return optionSource.valuesEqual(a, b);\n }\n\n return false;\n }\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { computed, Directive, InputSignal, Signal, signal } from '@angular/core';\n\nimport { SelectItem, SelectOption } from '../si-select.types';\nimport { SiSelectOptionsStrategy } from './si-select-options-strategy';\n\n/**\n * Input options strategy base class, for eagerly fetched options.\n */\n@Directive()\nexport abstract class SiSelectOptionsStrategyBase<T> implements SiSelectOptionsStrategy<T> {\n /**\n * Function to compare two values on equality which is used to match/filter options.\n */\n abstract optionsEqual: InputSignal<(a: T, b: T) => boolean>;\n\n /**\n * All group and option items in the dropdown.\n *\n * @defaultValue []\n */\n abstract readonly allRows: Signal<(SelectItem<T> | SelectOption<T>)[]>;\n\n private readonly value = signal<T[]>([]);\n private readonly filterValue = signal('');\n\n /**\n * Rows that should be shown.\n *\n * @defaultValue []\n */\n readonly rows = computed(() => {\n const filterValue = this.filterValue();\n if (filterValue) {\n const filterValueLC = filterValue.toLowerCase();\n const checkRow: (row: SelectOption<T>) => boolean = (row: SelectOption<T>) =>\n (row.typeaheadLabel ?? row.label)!.toLowerCase().includes(filterValueLC!);\n\n return this.allRows().reduce((rows, row) => {\n if (row.type === 'option' && checkRow(row)) {\n rows.push(row);\n } else if (row.type === 'group') {\n if (row.label!.toLowerCase().includes(filterValueLC!)) {\n rows.push(row);\n } else {\n const options = row.options.filter(checkRow);\n\n if (options.length) {\n rows.push({ ...row, options });\n }\n }\n }\n\n return rows;\n }, [] as SelectItem<T>[]);\n } else {\n return this.allRows();\n }\n });\n\n readonly selectedRows = computed(() => {\n const values = this.value();\n return this.allRows()\n .map(row => (row.type === 'group' ? row.options : row))\n .flat()\n .filter(option => values.some(value => this.optionsEqual()(value, option.value)));\n });\n\n onValueChange(value: T[]): void {\n this.value.set(value);\n }\n\n onFilter(filterValue?: string): void {\n this.filterValue.set(filterValue ?? '');\n }\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { computed, Directive, input } from '@angular/core';\n\nimport { SelectItem } from '../si-select.types';\nimport { SI_SELECT_OPTIONS_STRATEGY } from './si-select-options-strategy';\nimport { SiSelectOptionsStrategyBase } from './si-select-options-strategy.base';\n\n/**\n * This directive allows passing {@link SelectItem} to the {@link SiSelectComponent}.\n *\n * @example\n * ```html\n * <si-select [options]=\"[{ type: 'option', value: 'one', label: 'One' }, { type: 'option', value: 'two', label: 'Two' }]\"></si-select>\n * <si-select [options]=\"[{ type: 'group', label: 'Group', options [{ type: 'option', value: 1, label: 'One' }, { type: 'option', value: 2, label: 'Two' }] }]\"></si-select>\n * ```\n */\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'si-select[options]',\n providers: [{ provide: SI_SELECT_OPTIONS_STRATEGY, useExisting: SiSelectSimpleOptionsDirective }]\n})\nexport class SiSelectSimpleOptionsDirective<T = string> extends SiSelectOptionsStrategyBase<T> {\n /** Options to be shown in select dropdown */\n readonly options = input<SelectItem<T>[] | null>();\n\n /**\n * By default, values are check on referential equality. Provide a function to customize the behavior.\n *\n * @defaultValue\n * ```\n * (a: T, b: T): boolean => a === b\n * ```\n */\n override readonly optionsEqual = input((a: T, b: T): boolean => a === b, {\n // eslint-disable-next-line @angular-eslint/no-input-rename\n alias: 'optionEqualCheckFn'\n });\n\n override readonly allRows = computed(() => this.options() ?? []);\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { Directive } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { SiSelectSelectionStrategy } from './si-select-selection-strategy';\n\n/**\n * The directive enables the single-select behavior.\n * Otherwise, use the {@link SiSelectMultiValueDirective} directive.\n *\n * @example\n * ```html\n * <si-select [(value)]=\"selectedValue\" [options]=\"[\n * { id: 'good', title: 'Good' },\n * { id: 'average', title: 'Average' },\n * { id: 'poor', title: 'Poor' }\n * ]\"></si-select>\n * ```\n */\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'si-select:not([multi])',\n providers: [\n { provide: SiSelectSelectionStrategy, useExisting: SiSelectSingleValueDirective },\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: SiSelectSingleValueDirective,\n multi: true\n }\n ]\n})\nexport class SiSelectSingleValueDirective<T> extends SiSelectSelectionStrategy<T, T> {\n /**\n * {@inheritDoc SiSelectSelectionStrategy#allowMultiple}\n * @defaultValue false\n */\n override allowMultiple = false;\n\n protected toArrayValue(value: T | undefined): readonly T[] {\n return value !== undefined ? [value] : [];\n }\n\n protected fromArrayValue([value]: readonly T[]): T {\n return value;\n }\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { Directive } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { SiSelectSelectionStrategy } from './si-select-selection-strategy';\n\n/**\n * The directive enables the multi-select behavior.\n * Otherwise, use the {@link SiSelectSingleValueDirective} directive.\n *\n * @example\n * ```html\n * <si-select multi [(value)]=\"multiValue\" [options]=\"[\n * { id: 'good', title: 'Good' },\n * { id: 'average', title: 'Average' },\n * { id: 'poor', title: 'Poor' }\n * ]\"></si-select>\n * ```\n */\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'si-select[multi]',\n providers: [\n { provide: SiSelectSelectionStrategy, useExisting: SiSelectMultiValueDirective },\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: SiSelectMultiValueDirective,\n multi: true\n }\n ]\n})\nexport class SiSelectMultiValueDirective<T> extends SiSelectSelectionStrategy<T, T[]> {\n /**\n * {@inheritDoc SiSelectSelectionStrategy#allowMultiple}\n * @defaultValue true\n */\n override readonly allowMultiple = true;\n\n protected fromArrayValue(value: T[]): T[] {\n return value;\n }\n\n protected toArrayValue(value: T[] | undefined): T[] {\n return value ?? [];\n }\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { booleanAttribute, Directive, inject, input } from '@angular/core';\n\nimport { SiSelectComponent } from './si-select.component';\n\n@Directive({\n selector: '[siSelectAction]',\n host: {\n class: 'mx-5 my-4',\n '(click)': 'close()'\n },\n exportAs: 'si-select-action'\n})\nexport class SiSelectActionDirective {\n private readonly select = inject(SiSelectComponent);\n /**\n * Close the select drop down on click.\n * @defaultValue false\n */\n readonly selectActionAutoClose = input(false, { transform: booleanAttribute });\n\n protected close(): void {\n if (this.selectActionAutoClose()) {\n this.select.close();\n }\n }\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { NgModule } from '@angular/core';\n\nimport { SiSelectSimpleOptionsDirective } from './options/si-select-simple-options.directive';\nimport { SiSelectMultiValueDirective } from './selection/si-select-multi-value.directive';\nimport { SiSelectSingleValueDirective } from './selection/si-select-single-value.directive';\nimport { SiSelectActionDirective } from './si-select-action.directive';\nimport { SiSelectActionsDirective } from './si-select-actions.directive';\nimport { SiSelectGroupTemplateDirective } from './si-select-group-template.directive';\nimport { SiSelectOptionTemplateDirective } from './si-select-option-template.directive';\nimport { SiSelectComponent } from './si-select.component';\n\n@NgModule({\n imports: [\n SiSelectActionDirective,\n SiSelectActionsDirective,\n SiSelectComponent,\n SiSelectGroupTemplateDirective,\n SiSelectMultiValueDirective,\n SiSelectOptionTemplateDirective,\n SiSelectSimpleOptionsDirective,\n SiSelectSingleValueDirective\n ],\n exports: [\n SiSelectActionDirective,\n SiSelectActionsDirective,\n SiSelectComponent,\n SiSelectGroupTemplateDirective,\n SiSelectMultiValueDirective,\n SiSelectOptionTemplateDirective,\n SiSelectSimpleOptionsDirective,\n SiSelectSingleValueDirective\n ]\n})\nexport class SiSelectModule {}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { ConfigurableFocusTrap, ConfigurableFocusTrapFactory } from '@angular/cdk/a11y';\nimport { Overlay, OverlayRef } from '@angular/cdk/overlay';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport { isPlatformBrowser } from '@angular/common';\nimport {\n booleanAttribute,\n computed,\n DestroyRef,\n Directive,\n ElementRef,\n inject,\n input,\n model,\n output,\n PLATFORM_ID,\n signal,\n ViewContainerRef\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { SI_FORM_ITEM_CONTROL, SiFormItemControl } from '@siemens/element-ng/form';\nimport { filter, merge, Subject, takeUntil } from 'rxjs';\n\nimport type { SiSelectDropdownDirective } from './si-select-dropdown.directive';\n\n/**\n * Host directive for building custom selects.\n *\n * Add this as a `hostDirective` on your component and expose the inputs/outputs you need.\n * The directive handles:\n * - {@link ControlValueAccessor} integration (`formControl`, `ngModel`, `[(value)]`)\n * - Disabled / readonly state management\n * - Overlay lifecycle for the dropdown (open/close)\n * - Focus management and focus trapping in the dropdown\n * - Opening the dropdown on click, Enter, Space, ArrowDown, ArrowUp\n * - {@link SiFormItemControl} integration\n *\n * Use {@link SiSelectDropdownDirective} to mark the dropdown template in your component,\n * and call {@link open}, {@link close}, {@link updateValue} from your component logic.\n *\n * @example\n * ```ts\n * @Component({\n * selector: 'app-my-select',\n * hostDirectives: [{\n * directive: SiCustomSelectDirective,\n * inputs: ['disabled', 'readonly', 'value'],\n * outputs: ['valueChange']\n * }],\n * template: `\n * <si-select-combobox>\n * {{ select.value() }}\n * </si-select-combobox>\n * <ng-template si-select-dropdown contentType=\"listbox\">\n * <button (click)=\"select.updateValue('new'); select.close()\">Pick</button>\n * </ng-template>\n * `\n * })\n * export class MySelectComponent {\n * readonly select = inject(SiCustomSelectDirective);\n * }\n * ```\n *\n * @experimental\n */\n@Directive({\n selector: '[siCustomSelect]',\n providers: [\n { provide: NG_VALUE_ACCESSOR, useExisting: SiCustomSelectDirective, multi: true },\n { provide: SI_FORM_ITEM_CONTROL, useExisting: SiCustomSelectDirective }\n ],\n host: {\n class: 'dropdown',\n '[style.--si-action-icon-offset.rem]': '1.5',\n role: 'combobox',\n 'aria-autocomplete': 'none',\n '[attr.aria-haspopup]': 'haspopup()',\n '[attr.aria-labelledby]': 'labelledby()',\n '[attr.aria-describedby]': 'errormessageId()',\n '[attr.aria-controls]': 'isOpen() ? dropdownId() : null',\n '[attr.aria-expanded]': 'isOpen()',\n '[attr.aria-disabled]': 'disabled()',\n '[attr.id]': 'id()',\n '[attr.tabindex]': 'disabled() ? \"-1\" : \"0\"',\n '[class.disabled]': 'disabled()',\n '[class.pe-none]': 'disabled()',\n '[class.readonly]': 'readonly()',\n '[class.open]': 'isOpen()',\n '[class.show]': 'isOpen()',\n '(click)': 'open()',\n '(keydown.enter)': 'open()',\n '(keydown.space)': 'open($event)',\n '(keydown.arrowDown)': 'open($event)',\n '(keydown.arrowUp)': 'open($event)'\n }\n})\nexport class SiCustomSelectDirective<T> implements ControlValueAccessor, SiFormItemControl {\n private static idCounter = 0;\n\n /**\n * Unique identifier.\n *\n * @defaultValue\n * ```\n * `__si-custom-select-${SiCustomSelectDirective.idCounter++}`\n * ```\n */\n readonly id = input(`__si-custom-select-${SiCustomSelectDirective.idCounter++}`);\n\n /**\n * Whether the select input is disabled.\n *\n * @defaultValue false\n */\n // eslint-disable-next-line @angular-eslint/no-input-rename\n readonly disabledInput = input(false, { alias: 'disabled', transform: booleanAttribute });\n\n /**\n * Readonly state. Similar to disabled but with higher contrast.\n *\n * @defaultValue false\n */\n readonly readonly = input(false, { transform: booleanAttribute });\n\n /** Emits when the dropdown open state changes. */\n readonly openChange = output<boolean>();\n\n /**\n * The current value, supports two-way binding via `[(value)]`.\n *\n * @defaultValue undefined\n */\n readonly value = model<T | undefined>(undefined);\n\n /**\n * Whether the dropdown is currently open.\n *\n * @defaultValue false\n */\n readonly isOpen = signal(false);\n\n /** @internal */\n readonly labelledby = computed(() => `${this.id()}-label ${this.id()}-combobox`);\n\n /** @internal */\n readonly comboboxLabelId = computed(() => `${this.id()}-combobox`);\n\n /** @internal */\n readonly dropdownId = computed(() => this.id() + '-dropdown');\n\n /**\n * Value forwarded to the `aria-haspopup` attribute. Reflects the\n * `contentType` input of the registered {@link SiSelectDropdownDirective},\n * defaulting to `'listbox'` until a dropdown template is registered.\n * @internal\n */\n readonly haspopup = computed(() => this.dropdownDirective()?.contentType() ?? 'listbox');\n\n /**\n * This ID will be bound to the `aria-describedby` attribute of the select.\n *\n * @defaultValue\n * ```\n * `${this.id()}-errormessage`\n * ```\n */\n readonly errormessageId = input(`${this.id()}-errormessage`);\n\n /** Combined disabled state from input and form control. */\n readonly disabled = computed(() => this.disabledInput() || this.disabledByForm());\n\n private onTouched: () => void = () => {};\n\n private onChange: (_: T | undefined) => void = () => {};\n private readonly disabledByForm = signal(false);\n\n private readonly overlay = inject(Overlay);\n private readonly focusTrapFactory = inject(ConfigurableFocusTrapFactory);\n private readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly viewContainerRef = inject(ViewContainerRef);\n private readonly destroyRef = inject(DestroyRef);\n private readonly isBrowser = isPlatformBrowser(inject(PLATFORM_ID));\n\n private overlayRef?: OverlayRef;\n private focusTrap?: ConfigurableFocusTrap;\n private readonly closeOverlay$ = new Subject<void>();\n\n private readonly dropdownDirective = signal<SiSelectDropdownDirective | undefined>(undefined);\n\n constructor() {\n this.destroyRef.onDestroy(() => {\n this.disposeOverlay();\n this.closeOverlay$.complete();\n });\n }\n\n /**\n * Registers the dropdown directive. Called by\n * {@link SiSelectDropdownDirective} when it is initialized.\n * @internal\n */\n registerDropdown(directive: SiSelectDropdownDirective): void {\n this.dropdownDirective.set(directive);\n }\n\n /**\n * Updates the value programmatically.\n * Call this from your dropdown template to set the new value.\n */\n updateValue(value: T | undefined): void {\n this.value.set(value);\n this.onChange(value);\n }\n\n /** Opens the dropdown overlay. */\n open(event?: Event): void {\n if (this.disabled() || this.readonly() || this.isOpen() || !this.isBrowser) {\n return;\n }\n\n if (!this.dropdownDirective()) {\n return;\n }\n\n // Prevent default scrolling behavior for Space / ArrowUp / ArrowDown.\n event?.preventDefault();\n\n const width = this.elementRef.nativeElement.getBoundingClientRect().width;\n this.overlayRef = this.overlay.create({\n positionStrategy: this.overlay\n .position()\n .flexibleConnectedTo(this.elementRef)\n .withPositions([\n // Preferred: below, aligned to the start edge of the trigger.\n { originX: 'start', originY: 'bottom', overlayX: 'start', overlayY: 'top' },\n // Below, aligned to the end edge (trigger near the end of the viewport).\n { originX: 'end', originY: 'bottom', overlayX: 'end', overlayY: 'top' },\n // Above, aligned to the start edge (no space below).\n { originX: 'start', originY: 'top', overlayX: 'start', overlayY: 'bottom' },\n // Above, aligned to the end edge (no space below, trigger near the end).\n { originX: 'end', originY: 'top', overlayX: 'end', overlayY: 'bottom' },\n // Below, centered (small screens, trigger in the middle).\n { originX: 'center', originY: 'bottom', overlayX: 'center', overlayY: 'top' },\n // Above, centered.\n { originX: 'center', originY: 'top', overlayX: 'center', overlayY: 'bottom' }\n ])\n .withFlexibleDimensions(true)\n .withPush(true),\n hasBackdrop: true,\n backdropClass: 'cdk-overlay-transparent-backdrop',\n panelClass: ['dropdown-menu', 'show'],\n minWidth: width + 2\n });\n\n const portal = new TemplatePortal(this.dropdownDirective()!.templateRef, this.viewContainerRef);\n this.overlayRef.attach(portal);\n this.overlayRef.overlayElement.id = this.dropdownId();\n\n this.focusTrap = this.focusTrapFactory.create(this.overlayRef.overlayElement);\n this.focusTrap.focusFirstTabbableElementWhenReady();\n\n this.isOpen.set(true);\n this.openChange.emit(true);\n\n merge(\n this.overlayRef.backdropClick(),\n this.overlayRef.keydownEvents().pipe(filter(e => e.key === 'Escape'))\n )\n .pipe(takeUntil(this.closeOverlay$), takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.close());\n }\n\n /** Closes the dropdown overlay and restores focus. */\n close(): void {\n if (!this.isOpen()) {\n return;\n }\n this.isOpen.set(false);\n this.disposeOverlay();\n this.openChange.emit(false);\n this.onTouched();\n if (this.isBrowser) {\n this.elementRef.nativeElement.focus();\n }\n }\n\n /** @internal */\n writeValue(obj: T | null): void {\n this.value.set(obj ?? undefined);\n }\n\n /** @internal */\n registerOnChange(fn: (_: T | undefined) => void): void {\n this.onChange = fn;\n }\n\n /** @internal */\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n /** @internal */\n setDisabledState(isDisabled: boolean): void {\n this.disabledByForm.set(isDisabled);\n }\n\n private disposeOverlay(): void {\n if (this.overlayRef) {\n this.closeOverlay$.next();\n this.focusTrap?.destroy();\n this.focusTrap = undefined;\n this.overlayRef.detach();\n this.overlayRef.dispose();\n this.overlayRef = undefined;\n }\n }\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { ChangeDetectionStrategy, Component, inject } from '@angular/core';\nimport { elementDown2 } from '@siemens/element-icons';\nimport { addIcons, SiIconComponent } from '@siemens/element-ng/icon';\n\nimport { SiCustomSelectDirective } from './si-custom-select.directive';\n\n/**\n * Visual trigger element for custom selects built with {@link SiCustomSelectDirective}.\n * Renders the projected content and a dropdown caret icon.\n *\n * The ARIA role, focus handling, and state attributes live on the host component\n * via {@link SiCustomSelectDirective} — this component is purely visual.\n *\n * @example\n * ```html\n * <si-select-combobox>\n * {{ select.value() }}\n * </si-select-combobox>\n * ```\n *\n * @experimental\n */\n@Component({\n selector: 'si-select-combobox',\n imports: [SiIconComponent],\n template: `\n <ng-content />\n <div class=\"form-control-actions ms-auto my-n4\">\n <si-icon class=\"dropdown-caret icon flip-rtl p-0 m-0\" [icon]=\"icons.elementDown2\" />\n </div>\n `,\n styleUrl: './si-select-combobox.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'select focus-none dropdown-toggle d-flex align-items-center w-100',\n '[attr.id]': 'customSelect.comboboxLabelId()',\n '[class.show]': 'customSelect.isOpen()'\n }\n})\nexport class SiSelectComboboxComponent {\n protected readonly icons = addIcons({ elementDown2 });\n protected readonly customSelect = inject(SiCustomSelectDirective);\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { ChangeDetectionStrategy, Component, input } from '@angular/core';\nimport { SiIconComponent } from '@siemens/element-ng/icon';\n\n/**\n * Represents a single selected value inside an {@link SiSelectComboboxComponent}.\n *\n * Project one `<si-select-combobox-value>` per selected entry. Optional\n * `icon`, `iconColor`, `stackedIcon` and `stackedIconColor` inputs mirror the\n * icon API of {@link SelectOption} and render an icon (with optional stacked\n * overlay) before the projected content.\n *\n * Add the `comma-separated` CSS class to render a comma between adjacent\n * values. Omit it when using chips, custom separators, or a single value.\n *\n * @example\n * ```html\n * <si-select-combobox>\n * <si-select-combobox-value\n * icon=\"element-face-happy\"\n * iconColor=\"status-success\"\n * >\n * {{ select.value() }}\n * </si-select-combobox-value>\n * </si-select-combobox>\n * ```\n *\n * @experimental\n */\n@Component({\n selector: 'si-select-combobox-value',\n imports: [SiIconComponent],\n template: `\n @if (icon(); as iconName) {\n <div class=\"icon-stack icon me-2 my-n4\">\n <si-icon [icon]=\"iconName\" [class]=\"iconColor() ?? ''\" />\n @if (stackedIcon(); as stackedIconName) {\n <si-icon [icon]=\"stackedIconName\" [class]=\"stackedIconColor() ?? ''\" />\n }\n </div>\n }\n <ng-content />\n `,\n styleUrl: './si-select-combobox-value.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'text-nowrap'\n }\n})\nexport class SiSelectComboboxValueComponent {\n /** An optional icon rendered before the projected content. */\n readonly icon = input<string>();\n\n /** Optional CSS color class applied to {@link icon}. */\n readonly iconColor = input<string>();\n\n /** Optional secondary icon stacked on top of {@link icon}. */\n readonly stackedIcon = input<string>();\n\n /** Optional CSS color class applied to {@link stackedIcon}. */\n readonly stackedIconColor = input<string>();\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { Directive, inject, input, TemplateRef } from '@angular/core';\n\nimport { SiCustomSelectDirective } from './si-custom-select.directive';\n\n/**\n * Possible values for the `aria-haspopup` attribute exposed by the\n * combobox host of a custom select.\n */\nexport type SiSelectDropdownContentType =\n | 'false'\n | 'true'\n | 'menu'\n | 'listbox'\n | 'tree'\n | 'grid'\n | 'dialog';\n\n/**\n * Structural directive marking the dropdown template for custom selects\n * built with {@link SiCustomSelectDirective}.\n *\n * When placed on an `<ng-template>`, it automatically registers the template\n * with the parent {@link SiCustomSelectDirective}.\n *\n * @example\n * ```html\n * <ng-template si-select-dropdown contentType=\"listbox\">\n * <!-- custom dropdown content -->\n * </ng-template>\n * ```\n *\n * @experimental\n */\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[si-select-dropdown]'\n})\nexport class SiSelectDropdownDirective {\n /**\n * Describes the kind of content rendered by the dropdown. The value is\n * forwarded to the `aria-haspopup` attribute of the combobox host of\n * the parent {@link SiCustomSelectDirective}.\n */\n readonly contentType = input.required<SiSelectDropdownContentType>();\n\n /** @internal */\n readonly templateRef = inject<TemplateRef<void>>(TemplateRef);\n\n constructor() {\n const customSelect = inject(SiCustomSelectDirective, { optional: true });\n customSelect?.registerDropdown(this);\n }\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nexport * from './si-select.component';\nexport * from './options/si-select-lazy-options.directive';\nexport * from './options/si-select-simple-options.directive';\nexport * from './options/si-select-option.source';\nexport * from './selection/si-select-single-value.directive';\nexport * from './selection/si-select-multi-value.directive';\nexport * from './si-select-option-template.directive';\nexport * from './si-select-group-template.directive';\nexport * from './si-select.module';\nexport * from './select-list/si-select-list-has-filter.component';\nexport * from './si-select-action.directive';\nexport * from './si-select-actions.directive';\nexport * from './si-select.types';\nexport * from './si-custom-select.directive';\nexport * from './si-select-combobox.component';\nexport * from './si-select-combobox-value.component';\nexport * from './si-select-dropdown.directive';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","takeUntil"],"mappings":"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"}