import { IgcBaseComboBoxLikeComponent } from '../common/mixins/combo-box.js'; import type { AbstractConstructor } from '../common/mixins/constructor.js'; import { type PopoverPlacement } from '../popover/popover.js'; import type { PopoverScrollStrategy } from '../types.js'; import IgcDropdownGroupComponent from './dropdown-group.js'; import IgcDropdownItemComponent from './dropdown-item.js'; export interface IgcDropdownComponentEventMap { igcOpening: CustomEvent; igcOpened: CustomEvent; igcClosing: CustomEvent; igcClosed: CustomEvent; igcChange: CustomEvent; } declare const IgcDropdownComponent_base: import("../common/mixins/constructor.js").Constructor> & AbstractConstructor; /** * Represents a DropDown component. * * @element igc-dropdown * * @fires igcChange - Emitted when the selected item changes. * @fires igcOpening - Emitted just before the dropdown is open. * @fires igcOpened - Emitted after the dropdown is open. * @fires igcClosing - Emitter just before the dropdown is closed. * @fires igcClosed - Emitted after closing the dropdown. * * @slot target - Renders the dropdown's target element. * @slot - Renders the dropdown list items. * * @csspart base - The dropdown list wrapper container. * @csspart list - The dropdown list element. */ export default class IgcDropdownComponent extends IgcDropdownComponent_base { static readonly tagName = "igc-dropdown"; static styles: import("lit").CSSResult[]; static register(): void; private readonly _keyBindings; private _rootScrollController; protected readonly _rootClickController: import("../common/controllers/root-click.js").RootClickController; protected _selectedItem: IgcDropdownItemComponent | null; protected _activeItem: IgcDropdownItemComponent; private get _activeItems(); private _targetListeners; private _target?; protected trigger: HTMLSlotElement; /** The preferred placement of the component around the target element. * @attr */ placement: PopoverPlacement; /** * Determines the behavior of the component during scrolling of the parent container. * @attr scroll-strategy */ scrollStrategy: PopoverScrollStrategy; /** * Whether the component should be flipped to the opposite side of the target once it's about to overflow the visible area. * When true, once enough space is detected on its preferred side, it will flip back. * @attr */ flip: boolean; /** * The distance from the target element. * @attr */ distance: number; /** * Whether the dropdown's width should be the same as the target's one. * @attr same-width */ sameWidth: boolean; /** Returns the items of the dropdown. */ get items(): IgcDropdownItemComponent[]; /** Returns the group items of the dropdown. */ get groups(): IgcDropdownGroupComponent[]; /** Returns the selected item from the dropdown or null. */ get selectedItem(): IgcDropdownItemComponent | null; protected scrollStrategyChanged(): void; protected openStateChange(): void; constructor(); protected firstUpdated(): Promise; disconnectedCallback(): void; private handleListBoxClick; private handleChange; private handleSlotChange; private onArrowUp; private onArrowDown; protected onHomeKey(): void; protected onEndKey(): void; protected onTabKey(): void; protected onEscapeKey(): void; protected onEnterKey(): void; protected handleClosing(): void; private activateItem; private _navigateToActiveItem; private _selectItem; private _updateAnchorAccessibility; private getItem; private _setTarget; /** Shows the component. */ show(target?: HTMLElement | string): Promise; /** Toggles the open state of the component. */ toggle(target?: HTMLElement | string): Promise; /** Navigates to the item with the specified value. If it exists, returns the found item, otherwise - null. */ navigateTo(value: string): IgcDropdownItemComponent | null; /** Navigates to the item at the specified index. If it exists, returns the found item, otherwise - null. */ navigateTo(index: number): IgcDropdownItemComponent | null; /** Selects the item with the specified value. If it exists, returns the found item, otherwise - null. */ select(value: string): IgcDropdownItemComponent | null; /** Selects the item at the specified index. If it exists, returns the found item, otherwise - null. */ select(index: number): IgcDropdownItemComponent | null; /** Clears the current selection of the dropdown. */ clearSelection(): void; protected render(): import("lit-html").TemplateResult<1>; } declare global { interface HTMLElementTagNameMap { 'igc-dropdown': IgcDropdownComponent; } } export {};