@siemens/element-ng 49.1.0 → 49.2.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.
- package/fesm2022/siemens-element-ng-application-header.mjs +10 -2
- package/fesm2022/siemens-element-ng-application-header.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-common.mjs +2 -2
- package/fesm2022/siemens-element-ng-common.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-dashboard.mjs +1 -1
- package/fesm2022/siemens-element-ng-dashboard.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-filtered-search.mjs +89 -95
- package/fesm2022/siemens-element-ng-filtered-search.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-formly.mjs +1 -1
- package/fesm2022/siemens-element-ng-formly.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-select.mjs +2 -2
- package/fesm2022/siemens-element-ng-select.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-typeahead.mjs +14 -4
- package/fesm2022/siemens-element-ng-typeahead.mjs.map +1 -1
- package/package.json +4 -4
- package/types/siemens-element-ng-application-header.d.ts +1 -0
- package/types/siemens-element-ng-common.d.ts +1 -1
- package/types/siemens-element-ng-file-uploader.d.ts +1 -1
- package/types/siemens-element-ng-filtered-search.d.ts +3 -9
- package/types/siemens-element-ng-form.d.ts +1 -1
- package/types/siemens-element-ng-typeahead.d.ts +7 -2
|
@@ -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-grow-1\"\n [class.overflow-hidden]=\"!selectionStrategy.allowMultiple\"\n [id]=\"baseId() + '-content'\"\n [siAutoCollapsableList]=\"selectionStrategy.allowMultiple\"\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\"\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<si-icon\n class=\"dropdown-caret icon flip-rtl\"\n [class.text-muted]=\"readonly()\"\n [icon]=\"icons.elementDown2\"\n/>\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/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<si-icon\n class=\"dropdown-caret icon flip-rtl\"\n [class.text-muted]=\"readonly()\"\n [icon]=\"icons.elementDown2\"\n/>\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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"}
|
|
@@ -495,6 +495,11 @@ class SiTypeaheadDirective {
|
|
|
495
495
|
* @defaultValue false
|
|
496
496
|
*/
|
|
497
497
|
typeaheadFullWidth = input(false, { ...(ngDevMode ? { debugName: "typeaheadFullWidth" } : {}), transform: booleanAttribute });
|
|
498
|
+
/**
|
|
499
|
+
* Optional CDK scroll strategy used for the typeahead overlay.
|
|
500
|
+
* If not provided, no strategy is set explicitly and CDK will apply its default behavior.
|
|
501
|
+
*/
|
|
502
|
+
typeaheadScrollStrategy = input(...(ngDevMode ? [undefined, { debugName: "typeaheadScrollStrategy" }] : []));
|
|
498
503
|
/**
|
|
499
504
|
* This option will be shown at the end of the typeahead.
|
|
500
505
|
* Use it to allow users to create new options on the fly.
|
|
@@ -720,7 +725,7 @@ class SiTypeaheadDirective {
|
|
|
720
725
|
loadComponent() {
|
|
721
726
|
if (!this.overlayRef?.hasAttached()) {
|
|
722
727
|
this.overlayRef?.dispose();
|
|
723
|
-
|
|
728
|
+
const overlayConfig = {
|
|
724
729
|
positionStrategy: this.overlay
|
|
725
730
|
.position()
|
|
726
731
|
.flexibleConnectedTo(this.elementRef.nativeElement)
|
|
@@ -728,7 +733,12 @@ class SiTypeaheadDirective {
|
|
|
728
733
|
minWidth: this.typeaheadFullWidth()
|
|
729
734
|
? this.elementRef.nativeElement.getBoundingClientRect().width + 2 // 2px border
|
|
730
735
|
: 0
|
|
731
|
-
}
|
|
736
|
+
};
|
|
737
|
+
const scrollStrategy = this.typeaheadScrollStrategy();
|
|
738
|
+
if (scrollStrategy) {
|
|
739
|
+
overlayConfig.scrollStrategy = scrollStrategy;
|
|
740
|
+
}
|
|
741
|
+
this.overlayRef = this.overlay.create(overlayConfig);
|
|
732
742
|
}
|
|
733
743
|
if (this.overlayRef.hasAttached()) {
|
|
734
744
|
return;
|
|
@@ -812,7 +822,7 @@ class SiTypeaheadDirective {
|
|
|
812
822
|
return query.replace(/[|\\{}()[\]^$+*?.]/g, '\\$&');
|
|
813
823
|
}
|
|
814
824
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiTypeaheadDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
815
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.0.8", type: SiTypeaheadDirective, isStandalone: true, selector: "[siTypeahead]", inputs: { siTypeahead: { classPropertyName: "siTypeahead", publicName: "siTypeahead", isSignal: true, isRequired: true, transformFunction: null }, typeaheadProcess: { classPropertyName: "typeaheadProcess", publicName: "typeaheadProcess", isSignal: true, isRequired: false, transformFunction: null }, typeaheadScrollable: { classPropertyName: "typeaheadScrollable", publicName: "typeaheadScrollable", isSignal: true, isRequired: false, transformFunction: null }, typeaheadOptionsInScrollableView: { classPropertyName: "typeaheadOptionsInScrollableView", publicName: "typeaheadOptionsInScrollableView", isSignal: true, isRequired: false, transformFunction: null }, typeaheadOptionsLimit: { classPropertyName: "typeaheadOptionsLimit", publicName: "typeaheadOptionsLimit", isSignal: true, isRequired: false, transformFunction: null }, typeaheadScrollableAdditionalHeight: { classPropertyName: "typeaheadScrollableAdditionalHeight", publicName: "typeaheadScrollableAdditionalHeight", isSignal: true, isRequired: false, transformFunction: null }, typeaheadAutoSelectIndex: { classPropertyName: "typeaheadAutoSelectIndex", publicName: "typeaheadAutoSelectIndex", isSignal: true, isRequired: false, transformFunction: null }, typeaheadCloseOnEsc: { classPropertyName: "typeaheadCloseOnEsc", publicName: "typeaheadCloseOnEsc", isSignal: true, isRequired: false, transformFunction: null }, typeaheadClearValueOnSelect: { classPropertyName: "typeaheadClearValueOnSelect", publicName: "typeaheadClearValueOnSelect", isSignal: true, isRequired: false, transformFunction: null }, typeaheadWaitMs: { classPropertyName: "typeaheadWaitMs", publicName: "typeaheadWaitMs", isSignal: true, isRequired: false, transformFunction: null }, typeaheadMinLength: { classPropertyName: "typeaheadMinLength", publicName: "typeaheadMinLength", isSignal: true, isRequired: false, transformFunction: null }, typeaheadOptionField: { classPropertyName: "typeaheadOptionField", publicName: "typeaheadOptionField", isSignal: true, isRequired: false, transformFunction: null }, typeaheadMultiSelect: { classPropertyName: "typeaheadMultiSelect", publicName: "typeaheadMultiSelect", isSignal: true, isRequired: false, transformFunction: null }, typeaheadTokenize: { classPropertyName: "typeaheadTokenize", publicName: "typeaheadTokenize", isSignal: true, isRequired: false, transformFunction: null }, typeaheadMatchAllTokens: { classPropertyName: "typeaheadMatchAllTokens", publicName: "typeaheadMatchAllTokens", isSignal: true, isRequired: false, transformFunction: null }, typeaheadItemTemplate: { classPropertyName: "typeaheadItemTemplate", publicName: "typeaheadItemTemplate", isSignal: true, isRequired: false, transformFunction: null }, typeaheadSkipSortingMatches: { classPropertyName: "typeaheadSkipSortingMatches", publicName: "typeaheadSkipSortingMatches", isSignal: true, isRequired: false, transformFunction: null }, typeaheadAutocompleteListLabel: { classPropertyName: "typeaheadAutocompleteListLabel", publicName: "typeaheadAutocompleteListLabel", isSignal: true, isRequired: false, transformFunction: null }, typeaheadFullWidth: { classPropertyName: "typeaheadFullWidth", publicName: "typeaheadFullWidth", isSignal: true, isRequired: false, transformFunction: null }, typeaheadCreateOption: { classPropertyName: "typeaheadCreateOption", publicName: "typeaheadCreateOption", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { typeaheadOnInput: "typeaheadOnInput", typeaheadOnSelect: "typeaheadOnSelect", typeaheadOnFullMatch: "typeaheadOnFullMatch", typeaheadOpenChange: "typeaheadOpenChange", typeaheadOnCreateOption: "typeaheadOnCreateOption" }, host: { listeners: { "focusout": "onBlur()", "focusin": "onInput($event)", "input": "onInput($event)", "keydown.escape": "onKeydownEscape()" }, classAttribute: "si-typeahead" }, exportAs: ["si-typeahead"], usesOnChanges: true, hostDirectives: [{ directive: i1.SiAutocompleteDirective }], ngImport: i0 });
|
|
825
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.0.8", type: SiTypeaheadDirective, isStandalone: true, selector: "[siTypeahead]", inputs: { siTypeahead: { classPropertyName: "siTypeahead", publicName: "siTypeahead", isSignal: true, isRequired: true, transformFunction: null }, typeaheadProcess: { classPropertyName: "typeaheadProcess", publicName: "typeaheadProcess", isSignal: true, isRequired: false, transformFunction: null }, typeaheadScrollable: { classPropertyName: "typeaheadScrollable", publicName: "typeaheadScrollable", isSignal: true, isRequired: false, transformFunction: null }, typeaheadOptionsInScrollableView: { classPropertyName: "typeaheadOptionsInScrollableView", publicName: "typeaheadOptionsInScrollableView", isSignal: true, isRequired: false, transformFunction: null }, typeaheadOptionsLimit: { classPropertyName: "typeaheadOptionsLimit", publicName: "typeaheadOptionsLimit", isSignal: true, isRequired: false, transformFunction: null }, typeaheadScrollableAdditionalHeight: { classPropertyName: "typeaheadScrollableAdditionalHeight", publicName: "typeaheadScrollableAdditionalHeight", isSignal: true, isRequired: false, transformFunction: null }, typeaheadAutoSelectIndex: { classPropertyName: "typeaheadAutoSelectIndex", publicName: "typeaheadAutoSelectIndex", isSignal: true, isRequired: false, transformFunction: null }, typeaheadCloseOnEsc: { classPropertyName: "typeaheadCloseOnEsc", publicName: "typeaheadCloseOnEsc", isSignal: true, isRequired: false, transformFunction: null }, typeaheadClearValueOnSelect: { classPropertyName: "typeaheadClearValueOnSelect", publicName: "typeaheadClearValueOnSelect", isSignal: true, isRequired: false, transformFunction: null }, typeaheadWaitMs: { classPropertyName: "typeaheadWaitMs", publicName: "typeaheadWaitMs", isSignal: true, isRequired: false, transformFunction: null }, typeaheadMinLength: { classPropertyName: "typeaheadMinLength", publicName: "typeaheadMinLength", isSignal: true, isRequired: false, transformFunction: null }, typeaheadOptionField: { classPropertyName: "typeaheadOptionField", publicName: "typeaheadOptionField", isSignal: true, isRequired: false, transformFunction: null }, typeaheadMultiSelect: { classPropertyName: "typeaheadMultiSelect", publicName: "typeaheadMultiSelect", isSignal: true, isRequired: false, transformFunction: null }, typeaheadTokenize: { classPropertyName: "typeaheadTokenize", publicName: "typeaheadTokenize", isSignal: true, isRequired: false, transformFunction: null }, typeaheadMatchAllTokens: { classPropertyName: "typeaheadMatchAllTokens", publicName: "typeaheadMatchAllTokens", isSignal: true, isRequired: false, transformFunction: null }, typeaheadItemTemplate: { classPropertyName: "typeaheadItemTemplate", publicName: "typeaheadItemTemplate", isSignal: true, isRequired: false, transformFunction: null }, typeaheadSkipSortingMatches: { classPropertyName: "typeaheadSkipSortingMatches", publicName: "typeaheadSkipSortingMatches", isSignal: true, isRequired: false, transformFunction: null }, typeaheadAutocompleteListLabel: { classPropertyName: "typeaheadAutocompleteListLabel", publicName: "typeaheadAutocompleteListLabel", isSignal: true, isRequired: false, transformFunction: null }, typeaheadFullWidth: { classPropertyName: "typeaheadFullWidth", publicName: "typeaheadFullWidth", isSignal: true, isRequired: false, transformFunction: null }, typeaheadScrollStrategy: { classPropertyName: "typeaheadScrollStrategy", publicName: "typeaheadScrollStrategy", isSignal: true, isRequired: false, transformFunction: null }, typeaheadCreateOption: { classPropertyName: "typeaheadCreateOption", publicName: "typeaheadCreateOption", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { typeaheadOnInput: "typeaheadOnInput", typeaheadOnSelect: "typeaheadOnSelect", typeaheadOnFullMatch: "typeaheadOnFullMatch", typeaheadOpenChange: "typeaheadOpenChange", typeaheadOnCreateOption: "typeaheadOnCreateOption" }, host: { listeners: { "focusout": "onBlur()", "focusin": "onInput($event)", "input": "onInput($event)", "keydown.escape": "onKeydownEscape()" }, classAttribute: "si-typeahead" }, exportAs: ["si-typeahead"], usesOnChanges: true, hostDirectives: [{ directive: i1.SiAutocompleteDirective }], ngImport: i0 });
|
|
816
826
|
}
|
|
817
827
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiTypeaheadDirective, decorators: [{
|
|
818
828
|
type: Directive,
|
|
@@ -824,7 +834,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImpor
|
|
|
824
834
|
hostDirectives: [SiAutocompleteDirective],
|
|
825
835
|
exportAs: 'si-typeahead'
|
|
826
836
|
}]
|
|
827
|
-
}], ctorParameters: () => [], propDecorators: { siTypeahead: [{ type: i0.Input, args: [{ isSignal: true, alias: "siTypeahead", required: true }] }], typeaheadProcess: [{ type: i0.Input, args: [{ isSignal: true, alias: "typeaheadProcess", required: false }] }], typeaheadScrollable: [{ type: i0.Input, args: [{ isSignal: true, alias: "typeaheadScrollable", required: false }] }], typeaheadOptionsInScrollableView: [{ type: i0.Input, args: [{ isSignal: true, alias: "typeaheadOptionsInScrollableView", required: false }] }], typeaheadOptionsLimit: [{ type: i0.Input, args: [{ isSignal: true, alias: "typeaheadOptionsLimit", required: false }] }], typeaheadScrollableAdditionalHeight: [{ type: i0.Input, args: [{ isSignal: true, alias: "typeaheadScrollableAdditionalHeight", required: false }] }], typeaheadAutoSelectIndex: [{ type: i0.Input, args: [{ isSignal: true, alias: "typeaheadAutoSelectIndex", required: false }] }], typeaheadCloseOnEsc: [{ type: i0.Input, args: [{ isSignal: true, alias: "typeaheadCloseOnEsc", required: false }] }], typeaheadClearValueOnSelect: [{ type: i0.Input, args: [{ isSignal: true, alias: "typeaheadClearValueOnSelect", required: false }] }], typeaheadWaitMs: [{ type: i0.Input, args: [{ isSignal: true, alias: "typeaheadWaitMs", required: false }] }], typeaheadMinLength: [{ type: i0.Input, args: [{ isSignal: true, alias: "typeaheadMinLength", required: false }] }], typeaheadOptionField: [{ type: i0.Input, args: [{ isSignal: true, alias: "typeaheadOptionField", required: false }] }], typeaheadMultiSelect: [{ type: i0.Input, args: [{ isSignal: true, alias: "typeaheadMultiSelect", required: false }] }], typeaheadTokenize: [{ type: i0.Input, args: [{ isSignal: true, alias: "typeaheadTokenize", required: false }] }], typeaheadMatchAllTokens: [{ type: i0.Input, args: [{ isSignal: true, alias: "typeaheadMatchAllTokens", required: false }] }], typeaheadItemTemplate: [{ type: i0.Input, args: [{ isSignal: true, alias: "typeaheadItemTemplate", required: false }] }], typeaheadSkipSortingMatches: [{ type: i0.Input, args: [{ isSignal: true, alias: "typeaheadSkipSortingMatches", required: false }] }], typeaheadAutocompleteListLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "typeaheadAutocompleteListLabel", required: false }] }], typeaheadFullWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "typeaheadFullWidth", required: false }] }], typeaheadCreateOption: [{ type: i0.Input, args: [{ isSignal: true, alias: "typeaheadCreateOption", required: false }] }], typeaheadOnInput: [{ type: i0.Output, args: ["typeaheadOnInput"] }], typeaheadOnSelect: [{ type: i0.Output, args: ["typeaheadOnSelect"] }], typeaheadOnFullMatch: [{ type: i0.Output, args: ["typeaheadOnFullMatch"] }], typeaheadOpenChange: [{ type: i0.Output, args: ["typeaheadOpenChange"] }], typeaheadOnCreateOption: [{ type: i0.Output, args: ["typeaheadOnCreateOption"] }], onBlur: [{
|
|
837
|
+
}], ctorParameters: () => [], propDecorators: { siTypeahead: [{ type: i0.Input, args: [{ isSignal: true, alias: "siTypeahead", required: true }] }], typeaheadProcess: [{ type: i0.Input, args: [{ isSignal: true, alias: "typeaheadProcess", required: false }] }], typeaheadScrollable: [{ type: i0.Input, args: [{ isSignal: true, alias: "typeaheadScrollable", required: false }] }], typeaheadOptionsInScrollableView: [{ type: i0.Input, args: [{ isSignal: true, alias: "typeaheadOptionsInScrollableView", required: false }] }], typeaheadOptionsLimit: [{ type: i0.Input, args: [{ isSignal: true, alias: "typeaheadOptionsLimit", required: false }] }], typeaheadScrollableAdditionalHeight: [{ type: i0.Input, args: [{ isSignal: true, alias: "typeaheadScrollableAdditionalHeight", required: false }] }], typeaheadAutoSelectIndex: [{ type: i0.Input, args: [{ isSignal: true, alias: "typeaheadAutoSelectIndex", required: false }] }], typeaheadCloseOnEsc: [{ type: i0.Input, args: [{ isSignal: true, alias: "typeaheadCloseOnEsc", required: false }] }], typeaheadClearValueOnSelect: [{ type: i0.Input, args: [{ isSignal: true, alias: "typeaheadClearValueOnSelect", required: false }] }], typeaheadWaitMs: [{ type: i0.Input, args: [{ isSignal: true, alias: "typeaheadWaitMs", required: false }] }], typeaheadMinLength: [{ type: i0.Input, args: [{ isSignal: true, alias: "typeaheadMinLength", required: false }] }], typeaheadOptionField: [{ type: i0.Input, args: [{ isSignal: true, alias: "typeaheadOptionField", required: false }] }], typeaheadMultiSelect: [{ type: i0.Input, args: [{ isSignal: true, alias: "typeaheadMultiSelect", required: false }] }], typeaheadTokenize: [{ type: i0.Input, args: [{ isSignal: true, alias: "typeaheadTokenize", required: false }] }], typeaheadMatchAllTokens: [{ type: i0.Input, args: [{ isSignal: true, alias: "typeaheadMatchAllTokens", required: false }] }], typeaheadItemTemplate: [{ type: i0.Input, args: [{ isSignal: true, alias: "typeaheadItemTemplate", required: false }] }], typeaheadSkipSortingMatches: [{ type: i0.Input, args: [{ isSignal: true, alias: "typeaheadSkipSortingMatches", required: false }] }], typeaheadAutocompleteListLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "typeaheadAutocompleteListLabel", required: false }] }], typeaheadFullWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "typeaheadFullWidth", required: false }] }], typeaheadScrollStrategy: [{ type: i0.Input, args: [{ isSignal: true, alias: "typeaheadScrollStrategy", required: false }] }], typeaheadCreateOption: [{ type: i0.Input, args: [{ isSignal: true, alias: "typeaheadCreateOption", required: false }] }], typeaheadOnInput: [{ type: i0.Output, args: ["typeaheadOnInput"] }], typeaheadOnSelect: [{ type: i0.Output, args: ["typeaheadOnSelect"] }], typeaheadOnFullMatch: [{ type: i0.Output, args: ["typeaheadOnFullMatch"] }], typeaheadOpenChange: [{ type: i0.Output, args: ["typeaheadOpenChange"] }], typeaheadOnCreateOption: [{ type: i0.Output, args: ["typeaheadOnCreateOption"] }], onBlur: [{
|
|
828
838
|
type: HostListener,
|
|
829
839
|
args: ['focusout']
|
|
830
840
|
}], onInput: [{
|