import { LitElement, nothing, PropertyValues } from 'lit'; import '@digital-realty/ix-field/ix-field.js'; import '@digital-realty/ix-menu/ix-menu.js'; import '@digital-realty/ix-menu/ix-menu-item.js'; import '@digital-realty/ix-icon-button/ix-icon-button.js'; import '@digital-realty/ix-button'; import { IxMenu } from '@digital-realty/ix-menu'; import { onReportValidity } from '@material/web/labs/behaviors/on-report-validity.js'; import { createValidator, getValidityAnchor } from '@material/web/labs/behaviors/constraint-validation.js'; import { getFormValue } from '@material/web/labs/behaviors/form-associated.js'; import { Validator } from '@material/web/labs/behaviors/validators/validator.js'; export interface IFilterSelectOption { value: string; label: string; } declare const filterSelectBaseClass: import("@material/web/labs/behaviors/mixin.js").MixinReturn object) & (abstract new (...args: any[]) => import("@material/web/labs/behaviors/element-internals.js").WithElementInternals) & typeof LitElement & import("@material/web/labs/behaviors/form-associated.js").FormAssociatedConstructor, import("@material/web/labs/behaviors/form-associated.js").FormAssociated>, import("@material/web/labs/behaviors/constraint-validation.js").ConstraintValidation>, import("@material/web/labs/behaviors/on-report-validity.js").OnReportValidity>; export declare class IxFilterSelect extends filterSelectBaseClass { static get styles(): import("lit").CSSResult[]; /** @nocollapse */ static shadowRootOptions: { delegatesFocus: boolean; mode: ShadowRootMode; slotAssignment?: SlotAssignmentMode | undefined; customElements?: CustomElementRegistry | undefined; registry?: CustomElementRegistry | undefined; }; menu: IxMenu; readonly input: HTMLInputElement; private readonly field; options: IFilterSelectOption[]; value: string; label: string; errorText: string; noFilteredOptions: string; supportingText: string; error: boolean; tabIndex: number; required: boolean; onViewMoreButtonClick: any; isViewMoreButtonVisible: boolean; isViewMoreButtonLoading: boolean; viewMoreButtonLabel: string; placeholder?: string; /** * Used to prevent IxFilterSelect from opening the menu. This is useful * when options are yet to be provided via an async process. */ disableMenu: boolean; /** * Optional property to control how the options are filtered based on value in the field. * If not provided, defaults to case-insensitive substring match on the label. */ filterFunctionGenerator?: (filterValue: string) => (option: IFilterSelectOption) => boolean; /** * Exposed method to open and close the menu */ setMenuOpen(value: boolean): void; private filteredOptions; selectedItem: IFilterSelectOption | undefined; private filterValue; /** * When set, either opens or closes the menu on the next render. * Also reflects when menu is opened from IxMenu. */ private menuOpen; /** * Returns true when the text field has been interacted with. Native * validation errors only display in response to user interactions. */ private dirty; private focused; /** * Whether or not a native error has been reported via `reportValidity()`. */ private nativeError; /** * The validation message displayed from a native error via * `reportValidity()`. */ private nativeErrorText; private menuOpening; private get hasError(); private getErrorText; private getInput; firstUpdated(): void; protected updated(changedProperties: PropertyValues): void; handleMenuOpening: () => void; menuOpened: () => void; setMenuStyles: () => void; showMenu: () => void; handleMenuClosed: () => void; handleInput: (e: InputEvent) => void; selectItem: (item: IFilterSelectOption | undefined) => void; toggleOpen: (e: Event) => void; filterOptions(): void; clear(): void; /** @private */ formResetCallback(): void; /** * Reset the text field to its default value. */ reset(): void; attributeChangedCallback(attribute: string, newValue: string | null, oldValue: string | null): void; [createValidator](): Validator; [getValidityAnchor](): HTMLElement | null; [onReportValidity](invalidEvent: Event | null): void; disabled: boolean; name: string; [getFormValue](): string; formStateRestoreCallback(formState: string): void; private handleFocusChange; focus(): void; renderViewMoreButton(): typeof nothing | import("lit-html").TemplateResult<1>; render(): import("lit-html").TemplateResult<1>; } export {};