;
/****************************************************************************/
handleOptionsChange(newValue: typeof this.options): void;
watchValueHandler(): void;
handleOpenChange(newOpen: boolean): void;
/****************************************************************************/
/**
* Listen for the `itemChecked` event emitted by child items.
* @param {CustomEvent} event - The event object containing the selected value and its checked state.
*/
handleItemChecked(event: CustomEvent<{
/** Value associated with the option */
value: string;
/** Whether this option is checked */
checked: boolean;
}>): void;
handleSlotChange(event: Event): void;
/**
* Close the dropdown when keyboard focus leaves the component.
* Uses focusout (which bubbles) so it covers every internal focusable
* (filter input, hidden input, trigger ``, chevron iconbutton,
* clear-filter iconbutton, dropdown items, badge close button) without
* needing per-element onBlur wiring.
* @param {FocusEvent} event - The focus event.
*/
handleFocusOut(event: FocusEvent): void;
/**
* Handle keyboard events & arrow key navigation.
* If the multiselect is not open, opens it and focuses on the first item if the list is not filterable.
* If the multiselect is open, handles arrow key navigation and closes it if the focus is outside the component.
* @param {KeyboardEvent} event - The keyboard event.
*/
handleKeyDown(event: KeyboardEvent): Promise;
/****************************************************************************/
/**
* Subscribe to click outside event.
*/
connectedCallback(): void;
/**
* Set the mode state and handle options change.
*/
componentWillLoad(): void;
/**
* Force reorder if options mode in componentDidLoad because of the initial render not trigger @watch
*/
componentDidLoad(): void;
/**
* Unsubscribe from click outside event and clean up worker.
*/
disconnectedCallback(): void;
/****************************************************************************/
/**
* Retrieves the current filter text entered by the user.
* @returns {string} The filter text.
*/
getFilterText(): Promise;
/**
* Reset the filter and make all items visible.
*/
resetFilter(): Promise;
/**
* Returns the list of selected values.
* @returns {string[]} The selected values.
*/
getSelectedValues(): Promise;
/**
* Select all visible and enabled items.
* Works for both options and slots mode.
* @returns {Promise}
*/
selectAll(): Promise;
/**
* Deselect all visible and enabled items.
* Works for both options and slots mode.
* @returns {Promise}
*/
deselectAll(): Promise;
/**
* Toggle selection state of all visible and enabled items.
* If all items are selected, deselects all. Otherwise, selects all.
* Works for both options and slots mode.
* @returns {Promise}
*/
toggleSelectAll(): Promise;
/**
* Reorder the content of the slot using CSS flex `order` so the
* underlying DOM order is preserved (clearing the selection restores
* the original visual order automatically).
*/
private reorderSlotContent;
/**
* Reorder the content for options mode using CSS flex `order` so the
* underlying DOM order is preserved (clearing the selection restores
* the original visual order automatically).
*/
private reorderOptionsContent;
/**
* Filter multiselect items based on the text entered by the user.
* Uses the search engine for optimized filtering with configurable modes.
*/
private filterItems;
/**
* Handle badge close for options mode.
*/
private handleBadgeCloseOptions;
/**
* Handle badge close for slots mode.
*/
private handleBadgeCloseSlots;
/**
* Rebuilds the search index from current items (options prop or slot items).
*/
private rebuildSearchIndex;
/**
* Initializes the Web Worker for search operations.
* Falls back to main thread if worker is not available.
* Note: Fuzzy search now works on main thread with Fuse.js, so no mode change needed.
*/
private initSearchWorker;
/**
* Terminates the Web Worker and cleans up resources.
*/
private terminateSearchWorker;
/**
* Performs a search over the indexed items, using a Web Worker when available
* and falling back to the main thread otherwise.
* @returns {Promise} Resolves with the search results.
*/
private performAdvancedSearch;
/**
* Adds a non-selectable list item showing truncation information.
* @param {HTMLElement} ul - The list element to which the truncation message will be appended.
* @param {number} shown - The number of items currently shown.
* @param {number} total - The total number of available items.
*/
private addTruncatedMessage;
private handleClickOutside;
/**
* Handle popover close
*/
private handlePopoverClose;
/**
* Clear the filter text
*/
private clearFilterText;
/**
* Updates the highlighted item in the dropdown list.
*
* @param {(HTMLNvFielddropdownitemElement | HTMLNvFielddropdownitemcheckElement)[]} items - The items to update.
* @param {number} index - The index of the item to highlight.
*/
private updateHighlightedItem;
/**
* Focus on the first item in the dropdown list (visual order).
*/
private focusFirstItem;
/**
* Handle click on the input container for options mode.
* @param {MouseEvent} event - The click event.
*/
private handleInputContainerClickOptions;
/**
* Handle click on the input container for slots mode.
* @param {MouseEvent} event - The click event.
*/
private handleInputContainerClickSlots;
/**
* Handle input change for options mode.
* @param {Event} event - The input event.
*/
private readonly handleInputOptions;
/**
* Handle input change for slots mode
* @param {Event} event - The input event.
*/
private readonly handleInputSlots;
/**
* Handle input focus for options mode.
*/
private handleInputFocusOptions;
/**
* Handle input focus for slots mode.
*/
private handleInputFocusSlots;
/**
* Toggle the multiselect popover for options mode.
*/
private togglePopoverOptions;
/**
* Toggle the multiselect popover for slots mode.
*/
private togglePopoverSlots;
private manageDivider;
/**
* Synchronizes the checked state of all child nv-fielddropdownitemcheck components
* with the current selectedValues state.
*/
private syncChildComponents;
/**
* Gets visible and enabled slot items using consistent logic.
* @returns {Element[]} Array of visible and enabled items
*/
private getVisibleEnabledSlotItems;
/**
* Gets visible and enabled option items by checking DOM elements.
* @returns {string[]} Array of visible and enabled option values
*/
private getVisibleEnabledOptionItems;
/**
* Determines if the toggle all button should be shown in options mode.
* @returns {boolean} True if there are visible items and no "No results found" message
*/
private shouldShowToggleAllOptionsButton;
/**
* Toggles the selection state of all non-disabled options in options mode.
* Respects filtering by only selecting/deselecting visible items.
* @param {boolean} selectAll - Whether to select all items (true) or deselect all (false)
*/
private toggleSelectAllOptions;
/**
* Gets the checkbox state for the select all checkbox in options mode.
* @returns {'checked' | 'unchecked' | 'indeterminate'} The checkbox state
*/
private getSelectAllCheckboxStateOptions;
/**
* Gets the checkbox state for the select all checkbox in slots mode.
* @returns {'checked' | 'unchecked' | 'indeterminate'} The checkbox state
*/
private getSelectAllCheckboxStateSlots;
/**
* Toggles the selection state of all non-disabled slot items.
* @param {boolean} selectAll - Whether to select all items (true) or deselect all (false)
*/
private toggleSelectAllSlots;
/**
* Handle click on the select all checkbox in options mode.
* @param {Event} event - The click event.
*/
private handleSelectAllCheckboxOptionsClick;
/**
* Handle click on the select all checkbox in slots mode.
* @param {Event} event - The click event.
*/
private handleSelectAllCheckboxSlotsClick;
/**
* Determines if the toggle all button should be shown in slots mode.
* @returns {boolean} True if there are visible items and no "No results found" message
*/
private shouldShowToggleAllSlotButton;
/**
* Initializes the value array from checked slotted nv-fielddropdownitemcheck elements (slots mode only).
*/
private initializeValueFromSlots;
private handleMouseDownPreventBlur;
/**
* Calculates aria-required and native required values based on props and attributes
* @returns {object} Object with ariaRequiredValue and useNativeRequired
*/
private getRequiredAttributes;
/**
* Emitted when the input loses focus.
* @param {CustomEvent} event - The event object containing the focus state.
*/
private handleOpenChanged;
/****************************************************************************/
/**
* Renders the component in options mode
* @returns {any} The JSX for options mode
*/
private renderOptionsMode;
/**
* Renders the component in slots mode
* @returns {any} The JSX for slots mode
*/
private renderSlotsMode;
/**
* Renders description and error description sections
* @returns {any} The JSX for descriptions
*/
private renderDescriptions;
/**
* Main render method that decides which mode to render
* @returns {any} The JSX for the component
*/
render(): any;
}