import { EventEmitter } from '../../stencil-public-runtime'; import { ComponentInterface } from '../../stencil-public-runtime'; import { ElementReference } from '../utils/element-reference'; import { CloseBehavior, DropdownInterface } from './dropdown-controller'; import { AlignedPlacement } from './placement'; export declare class Dropdown implements ComponentInterface, DropdownInterface { hostElement: HTMLIxDropdownElement; /** * Suppress the automatic placement of the dropdown. */ suppressAutomaticPlacement: boolean; /** * Show dropdown */ show: boolean; /** * Define an element that triggers the dropdown. * A trigger can either be a string that will be interpreted as id attribute or a DOM element. */ trigger?: ElementReference; /** * Define an anchor element */ anchor?: ElementReference; /** * Controls if the dropdown will be closed in response to a click event depending on the position of the event relative to the dropdown. * If the dropdown is a child of another one, it will be closed with the parent, regardless of its own close behavior. */ closeBehavior: CloseBehavior; /** * Placement of the dropdown */ placement: AlignedPlacement; /** * Position strategy */ positioningStrategy: 'absolute' | 'fixed'; /** * An optional header shown at the top of the dropdown */ header?: string; /** * Move dropdown along main axis of alignment * * @internal */ offset?: { mainAxis?: number; crossAxis?: number; alignmentAxis?: number; }; /** * @internal */ overwriteDropdownStyle?: (delegate: { dropdownRef: HTMLElement; triggerRef?: HTMLElement; }) => Promise>; /** * @internal * If initialization of this dropdown is expected to be deferred submenu discovery will have to be re-run globally by the controller. * This property indicates the need for that to the controller. */ discoverAllSubmenus: boolean; /** @internal */ ignoreRelatedSubmenu: boolean; /** @internal */ suppressOverflowBehavior: boolean; /** * Enable Popover API rendering for top-layer positioning. * * @default false in v4.x, will default to true in v5.0.0 */ enableTopLayer: boolean; /** * Fire event after visibility of dropdown has changed */ showChanged: EventEmitter; private autoUpdateCleanup?; private readonly dialogRef; private triggerElement?; private anchorElement?; private arrowFocusController?; private localUId; private assignedSubmenu; private itemObserver?; connectedCallback(): void; cacheSubmenuId(event: CustomEvent): void; disconnectedCallback(): void; getAssignedSubmenuIds(): string[]; isPresent(): boolean; present(): void; dismiss(): void; getId(): string; willDismiss(): boolean; willPresent(): boolean; get dropdownItems(): HTMLIxDropdownItemElement[]; get slotElement(): HTMLSlotElement | null; private disposeClickListener?; private disposeKeyListener?; private addEventListenersFor; /** @internal */ discoverSubmenu(): Promise; private registerKeyListener; private registerListener; private resolveElement; private checkForSubmenuAnchor; private resolveAnchorElement; changedShow(newShow: boolean): Promise; changedTrigger(newTriggerValue: ElementReference): void; private destroyAutoUpdate; private isAnchorSubmenu; private showDropdownAsync; private hideDropdownAsync; private cleanupOnHide; private applyDropdownPosition; private focusDropdownItem; componentDidLoad(): Promise; componentDidRender(): Promise; private isTriggerElement; private onDropdownClick; /** * Update position of dropdown */ updatePosition(): Promise; render(): any; }