import { PropertyValueMap } from 'lit'; import { PopupPlacement } from '../../common/types'; import { GenericFormElement } from '../../internal/mixin/genericFormElement'; import { default as DapDSOptionList } from '../option-list/option-list.component'; export default class ComboboxBaseElement extends GenericFormElement { readonly triggerInput: HTMLInputElement; readonly optionList: DapDSOptionList; placement: PopupPlacement; opened: boolean; searchMode: 'none' | 'typehead' | 'autocomplete' | 'manual'; search: boolean; clearButton?: string; placeholder: string | null; sync?: boolean; allowManualInput?: boolean; searchForText?: boolean; searchOnValueSet?: string | undefined; loading?: boolean; selectable?: string; noAnimation?: boolean; textComplete?: boolean; openOnEmpty?: boolean; disableViewportAutoClose: boolean; searchButtonAriaLabel?: string; subtle: boolean; multiselect: boolean; maxSelections?: number; selectedItem: any; selectedItems: any[]; currentItem: any; selectedText: string; private optionListObserver; private isUserInteraction; private pendingInitialValues; static readonly styles: import('lit').CSSResult; protected firstUpdated(_changedProperties: PropertyValueMap | Map): Promise; protected updated(_changedProperties: PropertyValueMap | Map): void; /** * Handles value changes from outside the component * This ensures the selection state is updated when the value is set programmatically */ private handleValueChange; private setupOptionListObserver; private updateComboboxState; /** * Updates the selection state based on the current value * This is useful when options are loaded asynchronously */ private updateSelectionFromValue; private cleanupOptionListObserver; disconnectedCallback(): void; attributeChangedCallback(name: string, _old: string | null, value: string | null): void; get isAutoComplete(): boolean; /** * Get all option items directly from the combobox element * This is more reliable for dynamic updates than the option list component */ private getComboboxOptions; get isOpenOnEmpty(): boolean; get isOpenOnAutocomplete(): boolean; get shouldHideClearIcon(): boolean; handleClick: () => void; private handleEnterKey; private handleCurrentItemEnter; private handleSearchEnter; private handleDefaultEnter; private handleSelectedItemChange; private handleTextSearch; private handleArrowKeys; handleKeyDown: (event: KeyboardEvent) => Promise; handleInput: (event: InputEvent) => Promise; clearSelection(): Promise; /** * Multiselect helper methods */ private getSelectedValues; private isMaxSelectionsReached; private addSelectedItem; private removeSelectedItem; private clearAllSelections; private updateMultipleSelectionsFromValues; /** * Override value getter/setter to handle multiselect mode */ get value(): string | undefined; set value(val: string | undefined); handleListKeyDown: (event: CustomEvent) => void; handleDocumentMouseDown: (event: MouseEvent) => void; private readonly handlePopupAutoClose; handleFocus: () => void; handleBlur: () => void; showDropDown(): Promise; hideDropDown(options?: { skipFocus?: boolean; }): Promise; get focusElement(): HTMLInputElement; handleSelectedChange: (event: CustomEvent) => Promise; handleOptionDeselect: (event: CustomEvent) => void; handleCurrentOptionChange: (event: CustomEvent) => void; handleListChanged: (event: CustomEvent) => void; handleClearClick: () => void; handleSearchClick: (event: MouseEvent) => void; private setSelectionRange; private clearSelectionRange; getValidity(): boolean; formResetCallback(): void; private getMultiSelectValidity; private getAutoCompleteValidity; private getManualInputValidity; private getSearchTextValidity; private getSelectedItemValidity; private getBasicValidity; get validity(): ValidityState; get validationMessage(): string; checkValidity(): boolean; reportValidity(): boolean; setValidity(): void; handleInvalid(event: Event): void; getActiveDescendant(): HTMLInputElement | import('../option-item/option-item.component').default | null | undefined; getSearchIconSize(size: string): "lg" | "md" | "sm"; getInnerIconSize(size: string): 10 | 16; private handleChipRemove; private renderChip; private renderChips; private renderInput; private renderClearButton; private renderIndicatorIcon; private renderSelectActions; private renderOptionList; renderCombobox(): import('lit-html').TemplateResult; }