import { EventEmitter } from '../../stencil-public-runtime'; import { DropdownItemWrapper } from '../dropdown/dropdown-controller'; import { IxSelectItemLabelChangeEvent } from '../select-item/events'; import { IxInputFieldComponent, ValidationResults } from '../utils/input'; /** * @form-ready */ export declare class Select implements IxInputFieldComponent { hostElement: HTMLIxSelectElement; formInternals: ElementInternals; /** * A string that represents the element's name attribute, * containing a name that identifies the element when submitting the form. */ name?: string; /** * A Boolean attribute indicating that an option with a non-empty string value must be selected */ required: boolean; /** * Label for the select component */ label?: string; /** * ARIA label for the chevron down icon button * Will be set as aria-label on the nested HTML button element * * @since 3.2.0 */ ariaLabelChevronDownIconButton?: string; /** * ARIA label for the clear icon button * Will be set as aria-label on the nested HTML button element * * @since 3.2.0 */ ariaLabelClearIconButton?: string; /** * Warning text for the select component **/ warningText?: string; /** * Info text for the select component **/ infoText?: string; /** * Error text for the select component **/ invalidText?: string; /** * Valid text for the select component **/ validText?: string; /** * Helper text for the select component **/ helperText?: string; /** * Show helper, error, info, warning text as tooltip */ showTextAsTooltip?: boolean; /** * Current selected value. * This corresponds to the value property of ix-select-items */ value: string | string[]; /** * Show clear button */ allowClear: boolean; /** * Selection mode */ mode: 'single' | 'multiple'; /** * Select is extendable */ editable: boolean; /** * If true the select will be in disabled state */ disabled: boolean; /** * If true the select will be in readonly mode */ readonly: boolean; /** * Input field placeholder */ i18nPlaceholder: string; /** * Input field placeholder for editable select */ i18nPlaceholderEditable: string; /** * Select list header */ i18nSelectListHeader: string; /** * Information inside of dropdown if no items where found with current filter text */ i18nNoMatches: string; /** * Chip label for all selected items in multiple mode. */ i18nAllSelected: string; /** * Hide list header */ hideListHeader: boolean; /** * The width of the dropdown element with value and unit (e.g. "200px" or "12.5rem"). */ dropdownWidth?: string; /** * The maximum width of the dropdown element with value and unit (e.g. "200px" or "12.5rem"). * By default the maximum width of the dropdown element is set to 100%. */ dropdownMaxWidth?: string; /** * Show "all" chip when all items are selected in multiple mode */ collapseMultipleSelection: boolean; /** * Enable Popover API rendering for dropdown. * * @default false * @since 4.3.0 */ enableTopLayer: boolean; /** * Value changed */ valueChange: EventEmitter; /** * Event dispatched whenever the text input changes. */ inputChange: EventEmitter; /** * Item added to selection */ addItem: EventEmitter; /** * Blur input */ ixBlur: EventEmitter; dropdownShow: boolean; selectedLabels: (string | undefined)[]; isDropdownEmpty: boolean; navigationItem?: DropdownItemWrapper; inputFilterText: string; inputValue: string; isInvalid: boolean; isValid: boolean; isInfo: boolean; isWarning: boolean; private readonly dropdownWrapperRef; private readonly dropdownAnchorRef; private readonly inputRef; private inputElement?; private dropdownElement?; private customItemsContainerElement?; private addItemElement?; private arrowFocusController?; private touched; private readonly itemObserver; private readonly focusControllerCallbackBind; get nonShadowItems(): HTMLIxSelectItemElement[]; get visibleNonShadowItems(): HTMLIxSelectItemElement[]; get shadowItems(): HTMLIxSelectItemElement[]; get visibleShadowItems(): HTMLIxSelectItemElement[]; get items(): HTMLIxSelectItemElement[]; get visibleItems(): HTMLIxSelectItemElement[]; get selectedItems(): HTMLIxSelectItemElement[]; get addItemButton(): Element | null; get isSingleMode(): boolean; get isMultipleMode(): boolean; get isEveryDropdownItemHidden(): boolean; watchValue(value: string | string[]): void; watchDropdownShow(show: boolean): void; private cleanupResources; onItemClicked(event: CustomEvent): void; updateFormInternalValue(value: string | string[]): void; /** @internal */ hasValidValue(): Promise; private hasValue; private focusDropdownItem; private itemClick; private emitAddItem; private toggleValue; private updateSelection; private emitValueChange; componentDidLoad(): void; componentWillLoad(): void; componentDidRender(): void; onLabelChange(event: IxSelectItemLabelChangeEvent): void; disconnectedCallback(): void; private itemExists; private dropdownVisibilityChanged; onKeyDown(event: KeyboardEvent): Promise; private onEnterNavigation; private onArrowNavigation; private applyFocusTo; private focusAddItemButton; private filterItemsWithTypeahead; private removeHiddenFromItems; private clearInput; private clear; private onInputBlur; private placeholderValue; private isAddItemVisible; private shouldDisplayAllChip; private renderAllChip; private renderChip; onValidationChange({ isInvalid, isInvalidByRequired, isValid, isInfo, isWarning, }: ValidationResults): void; /** @internal */ getAssociatedFormElement(): Promise; /** * Returns the native input element used in the component. */ getNativeInputElement(): Promise; /** * Focuses the input field */ focusInput(): Promise; /** * Check if the input field has been touched. * @internal * */ isTouched(): Promise; render(): any; }