Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | 1x | /** * Copyright (c) Siemens 2016 - 2025 * SPDX-License-Identifier: MIT */ import { InjectionToken, Signal } from '@angular/core'; import { SelectItem, SelectOption } from '../si-select.types'; export const SI_SELECT_OPTIONS_STRATEGY = new InjectionToken<SiSelectOptionsStrategy<unknown>>( 'si-select.options-strategy' ); export interface SiSelectOptionsStrategy<T> { /** * List of all rows that should be rendered in a selection list. */ readonly rows: Signal<readonly SelectItem<T>[]>; /** * List of all options that are currently selected. * Must be updated when {@link onValueChange} is called. */ readonly selectedRows: Signal<readonly SelectOption<T>[]>; /** * Indicate loading state of the options. */ readonly loading?: Signal<boolean>; /** * Is always called when the value changes. * The implementation must update {@link selectedRows} when called. * * @param value - currently selected value of the related si-select. */ onValueChange(value: readonly T[]): void; /** * This function is called when a user enters a filter query. * It is expected that an implementation will update the `rows` * based on the query. * * @param filterInput - Unprocessed input by user in the filterInput field */ onFilter?(filterInput?: string): void; } |