import { EventEmitter } from '../../stencil-public-runtime'; import { BreakpointsTokenType } from '../../types/design-token.type'; import { ResponsiveType } from '../../types/ui.type'; import { FormFieldValidationRule } from '../../helpers/validator/rules/form-field-validation-rule'; import { SelectedLabelType, SelectedLabelTypeForAllModes, SelectSourceItem, SelectType, SelectValueType, VegaDropdownPropsForSelect, VegaInputSelectSize, VegaInputSelectSourceLazyLoadCallback, VegaInputSelectTooltipProps, VegaInputSelectDropdownTooltipProps } from './types'; import { VegaInputSelectRenderer } from './slimmers/renderers/vega-input-select-renderer'; import { GlobalSlimmers } from '../../vega-slimmer/vega-slimmer-core'; import { VegaInputSelectDropdownController } from './slimmers/controllers/vega-input-select-dropdown-controller'; import { VegaInputSelectValueController } from './slimmers/controllers/vega-input-select-value-controller'; import { VegaInputSelectItemController } from './slimmers/controllers/vega-input-select-item-controller'; import { VegaInputSelectDropdownRenderer } from './slimmers/renderers/vega-input-select-dropdown-renderer'; import { FormFieldControllerSlimmer } from '../../helpers/slimmers/form-field-controller-slimmer'; import { PageResizeObserverSlimmer } from '../../helpers/slimmers/page-resize-observer-slimmer'; import { EventEmitSlimmerBase } from '../../helpers/event-manager/slimmers/event-emit-slimmer'; import { ChildNodesEventPreventSlimmer } from '../../helpers/event-manager/slimmers/child-nodes-event-prevent-slimmer'; import { VegaInputSelectLazyLoadController } from './slimmers/controllers/vega-input-select-lazy-load-controller'; import { VegaComponentUsageRuntimeMetricsSlimmer } from '../../helpers/slimmers/component-usage-runtime-metrics'; import { VegaInputSelectSourceController } from './slimmers/controllers/vega-input-select-source-controller'; import { VegaInputSelectItemsSlotController } from './slimmers/controllers/vega-input-select-items-slot-controler'; import { TranslationSlimmer } from '../../helpers/slimmers/translation'; import { VegaDropdownSearchTriggerEventDetail } from '../vega-dropdown/types'; import { VegaInputSelectPrefixIconRenderer } from './slimmers/renderers/vega-input-select-prefix-icon-renderer'; import { LabelSuffixButtonConfig } from '../vega-field-label/types'; import { Nullable } from '../../types/general'; /** * @vegaVersion 1.0.7 */ export declare class VegaInputSelect { protected readonly globalSlimmers: GlobalSlimmers; protected translationSlimmer: TranslationSlimmer; protected readonly sourceController: VegaInputSelectSourceController; protected readonly vegaInputSelectRenderer: VegaInputSelectRenderer; protected readonly vegaInputSelectPrefixIconRenderer: VegaInputSelectPrefixIconRenderer; protected readonly vegaInputSelectDropdownController: VegaInputSelectDropdownController; protected readonly vegaInputSelectValueController: VegaInputSelectValueController; protected readonly vegaInputSelectDropdownRenderer: VegaInputSelectDropdownRenderer; protected readonly vegaInputSelectItemsSlotController: VegaInputSelectItemsSlotController; protected readonly vegaInputSelectItemController: VegaInputSelectItemController; protected readonly formFieldControllerSlimmer: FormFieldControllerSlimmer>; protected readonly pageResizeObserverSlimmer: PageResizeObserverSlimmer; protected readonly lazyLoadController: VegaInputSelectLazyLoadController; protected changeEventEmitter: EventEmitSlimmerBase; protected searchEventEmitter: EventEmitSlimmerBase; protected searchTriggerEventEmitter: EventEmitSlimmerBase; protected showEventEmitter: EventEmitSlimmerBase; protected hideEventEmitter: EventEmitSlimmerBase; protected labelButtonClickEventEmitter: EventEmitSlimmerBase; protected eventPrevent: ChildNodesEventPreventSlimmer; protected vegaComponentUsageRuntimeMetricsSlimmer: VegaComponentUsageRuntimeMetricsSlimmer; host: HTMLVegaInputSelectElement; isDropdownShow: boolean; currentBreakpoint: BreakpointsTokenType; isLazyLoading: boolean; selectedItem: Nullable; /** * Specifies the label or title for the input field. * * It provides descriptive text that helps identify the purpose or * content expected in the input select field. * * @vegaVersion 1.3.0 */ label: string; /** * Specifies the properties for the suffix button associated with the input. * * It provides essential information and functionality * related to the suffix button's role and behavior. * * @vegaVersion 2.68.0 */ labelSuffixButtonConfig: Nullable; /** * Determines whether the input select field is required. * * @vegaVersion 1.0.7 */ required: boolean; /** * Allows customization of the text displayed within the * select field when single or multiple items are selected. * The default format for the selected label is * `{0} Selected` for multiple mode only. * * To enable all modes, use the `SelectedLabelTypeForAllModes` type. * For single mode, the default format is the `displayName` of the selected item if not set * For multiple mode, the default format is `{0} Selected` if not set * * @vegaVersion 1.35.0 */ selectedLabel: SelectedLabelType | SelectedLabelTypeForAllModes; /** * Controls the selection capabilities of the associated dropdown menu. * * @vegaVersion 1.35.0 */ selectType: SelectType; watchSelectType(): void; /** * Specifies the dataset used to populate the options * available in the select input dropdown menu. * * @vegaVersion 1.0.7 */ source: SelectSourceItem[]; watchSource(): void; /** * Specifies the ID of the item selected from the source data * in the dropdown menu. * * The ID should be unique within the source collection to * correctly associate the chosen option with its * corresponding data entry. * * @vegaVersion 1.0.7 */ value: SelectValueType; watchValue(newValue: SelectValueType, oldValue: SelectValueType): void; /** * Indicates the current validation status of the user's selection * from the dropdown menu. * * @vegaVersion 1.3.0 */ isValid: boolean | null; /** * Specifies whether the system should automatically carry out * validation checks on the user's selection in real-time, * ensuring that the input adheres to predefined criteria before * submission or proceeding further. * * @vegaVersion 1.0.11 */ autoValidation: boolean; /** * Allows setting custom criteria or constraints that * the user's selection in the dropdown menu must * comply with. * * @vegaVersion 1.0.11 */ validationRules: FormFieldValidationRule[]; watchValidationRules(): void; /** * Specifies a prefix icon for visual context or aesthetic enhancement. * * @vegaVersion 1.3.0 */ prefixIcon: string; /** * Specifies whether the input select field is disabled. * * @vegaVersion 1.3.0 */ disabled: boolean; /** * Specifies a placeholder string that displays as a temporary hint or * example inside the input select field. * * It indicates the expected format or pattern of the input. * * @vegaVersion 1.0.7 */ placeholder: string; /** * Provides a supplementary prompt message that assists users in * understanding the expected value for the input select field. * * @vegaVersion 1.3.0 */ hint: string; /** * Provides partial properties for the `vega-dropdown` component used * in the input select element. * * You can specify custom properties and their corresponding values as needed. * * @vegaVersion 1.3.0 */ vegaDropdownProps: VegaDropdownPropsForSelect; watchVegaDropdownProps(): void; /** * Provides tooltip configuration for the selected label text. * * Use this to control tooltip placement, width, and other display properties. * * @vegaVersion 2.82.0 */ selectedLabelTooltipProps: VegaInputSelectTooltipProps; watchSelectedLabelTooltipProps(): void; /** * Provides tooltip configuration for dropdown items. * * Use this to control tooltip placement and width for long item labels. * * @vegaVersion 2.82.0 */ dropdownItemTooltipProps: VegaInputSelectDropdownTooltipProps; watchDropdownItemTooltipProps(): void; /** * Defines the size of the input select field. * * @vegaVersion 1.18.0 */ size: ResponsiveType; /** * Specifies the callback function for source lazy loading, which returns new data to load. * * When the dropdown reaches the bottom, this function is triggered and * receives the current end index as a parameter. * * @vegaVersion 2.3.0 */ sourceLazyLoadCallback: VegaInputSelectSourceLazyLoadCallback; /** * An event emitter notifying the change of the select value. * * @vegaVersion 1.0.11 */ vegaChange: EventEmitter>; /** * An event emitter notifying the change of the select value. * * @eventSemantics namespace:native * @vegaVersion 2.0.0 */ change: EventEmitter>; /** * An event emitter notifying the search of the dropdown. * * @vegaVersion 1.50.0 */ vegaSearch: EventEmitter; /** * An event emitter notifying the search of the dropdown. * * @eventSemantics namespace:native * @vegaVersion 2.0.0 */ search: EventEmitter; /** * An event emitter notifying the search event triggered within the dropdown, * but only if `useDefaultFilter` is set to `false`. * Unlike the Vegasearch event, this event includes the details of the user who triggered it. * It can be triggered in two ways: by pressing "Enter" or through user input. * * @vegaVersion 2.30.0 */ vegaSearchTrigger: EventEmitter; /** * An event emitter notifying the search event triggered within the dropdown, * Unlike the Vegasearch event, this event includes the details of the user who triggered it. * It can be triggered in two ways: by pressing "Enter" or through user input. * * @eventSemantics namespace:native * @vegaVersion 2.30.0 */ searchTrigger: EventEmitter; /** * An event emitter notifying that the input-select has been opened, * either programmatically or via user interaction. * * @vegaVersion 2.32.0 */ vegaShow: EventEmitter; /** * Event emitter notifying that the input-select has been dismissed, * either programmatically or via user interaction. * * @vegaVersion 2.32.0 */ vegaHide: EventEmitter; /** * An event emitter notifying that the suffix button associated with the field label has been clicked. * * @vegaVersion 2.68.0 */ vegaLabelButtonClick: EventEmitter; /** * An event emitter notifying that the suffix button associated with the field label has been clicked. * * @eventSemantics namespace:native * @vegaVersion 2.68.0 */ labelButtonClick: EventEmitter; componentWillLoad(): void; /** * Invoke this method to close the select dropdown and clear * the dropdown element reference. * * @vegaVersion 1.0.7 */ doClose(): Promise; /** * Invoke this method to open the select dropdown. * * @vegaVersion 1.0.7 */ doOpen(): Promise; /** * Invoke this method to change the ID of the select source item. * * @vegaVersion 1.0.7 */ doChange(value: SelectValueType): Promise; render(): VegaInputSelect; }