/** * Copyright (c) Cisco Systems, Inc. and its affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * */ import "../icon/Icon"; import { LitElement, nothing, PropertyValues } from "lit"; export declare namespace Dropdown { export type OptionMember = { [key: string]: string; }; export type Option = string | OptionMember; type RenderOptionMember = { key: string; value: string; option?: Option; }; export type EventDetail = { "dropdown-focus-in": undefined; "dropdown-focus-out": undefined; "dropdown-selected": { option: Option; }; "dropdown-selection-removed": undefined; }; export type MessageType = "error" | "success" | "warning"; export type Message = { type: MessageType; message: string; id?: string; ariaLive?: "off" | "assertive" | "polite"; }; export class MessageController { determineMessageType(array: Dropdown.Message[]): MessageType; filterMessagesByType(array: Dropdown.Message[], value: string): string[]; } const ELEMENT_base: import("../../mixins/FocusMixin").FocusMixinReturnType; export class ELEMENT extends ELEMENT_base { title: string; options: Option[]; optionId: string; optionValue: string; defaultOption: Option; disabled: boolean; customTabIndex: number; allowUnselected: boolean; visibleOptions: number; newMomentum: boolean; compact: boolean; searchable: boolean; searchItem: boolean; inputValue: string; placeholder: string; readOnly: boolean; autofocus: boolean; leftIcon: string; trimSpace: boolean; resultsTextLocalization: string; pill: boolean | null; helpText: string; messageArr: Dropdown.Message[]; htmlId: string; clearAriaLabel: string; clearIconHeight: string; arrowAriaLabel: string; popupChevronAriaHidden: string; ariaLabel: string; searchResultAriaLabel: string; private ariaLabelForDropdown; private dropdownRenderOptions; private selectedKey; private expanded; private focusedIndex; label: HTMLLabelElement; input?: HTMLInputElement; optionsList: HTMLUListElement; optionsListItems?: HTMLLIElement[]; private readonly messageController; private lastMaxHeight; connectedCallback(): void; disconnectedCallback(): void; protected firstUpdated(changedProperties: PropertyValues): void; protected updated(changedProperties: PropertyValues): void; private notifySearchResultCount; private setInitialValue; private getOptionValue; private getOptionId; private isOptionObject; updateRenderOptions(): void; private updateActiveDescendant; updateListDOM(): Promise; resizeDropdownList(): Promise; protected handleFocusIn(event: Event): void; protected handleFocusOut(event: Event): void; static get styles(): import("lit").CSSResult[]; get filteredOptions(): RenderOptionMember[] | { key: string; value: string; disabled: boolean; }[]; get messageType(): Dropdown.MessageType | null; get messages(): string[] | null; private setVisualListbox; private updateOnNextFrame; private setInputValue; private shouldChangeButton; toggleVisualListBox(e: any): void; handleRemoveAll(event: MouseEvent): void; private removeAllSelected; setupEvents(): void; teardownEvents(): void; expand(): void; collapse(): void; toggle(): void; select(): void; onOutsideClick: (e: MouseEvent) => void; onKeyDown: (e: KeyboardEvent) => void; onLabelClick(): void; focusFirst(): void; focusLast(): void; focusNext(): void; focusPrev(): void; focusToIndex(n: number): void; focusToIndexWithOption(o: RenderOptionMember): void; focusReset(): void; scrollToIndex(n: number): Promise; getOptionKeyValuePair(option: Option): { key: string; value: string; }; get labelTitle(): string; get comboboxAriaLabel(): string; get dropDownClassMap(): { [x: string]: boolean; "md-dropdown__expanded": boolean; "md-new-dropdown": boolean; "md-dropdown--pill": boolean; }; handleInput(event: Event): void; private notifyInputValueChanged; helpTextTemplate(): import("lit-html").TemplateResult<1> | typeof nothing; messagesTemplate(): import("lit-html").TemplateResult<1> | typeof nothing; iconTemplate(): import("lit-html").TemplateResult<1>; clearButtonTemplate(): import("lit-html").TemplateResult<1>; arrowButtonTemplate(): import("lit-html").TemplateResult<1>; render(): import("lit-html").TemplateResult<1>; } export {}; } declare global { interface HTMLElementTagNameMap { "md-dropdown": Dropdown.ELEMENT; } interface HTMLElementEventMap { "dropdown-focus-in": CustomEvent; "dropdown-focus-out": CustomEvent; "dropdown-selected": CustomEvent<{ option: Dropdown.Option; }>; "dropdown-input": CustomEvent<{ value: string; }>; "combobox-on-expand": CustomEvent; "remove-all-selected": CustomEvent; } }