@esri/calcite-components
Version:
Web Components for Esri's Calcite Design System.
88 lines (87 loc) • 3.31 kB
TypeScript
import { Event, EventEmitter } from "../../stencil-public-runtime";
import { VNode } from "../../stencil-public-runtime";
import { EffectivePlacement, LogicalPlacement, OverlayPositioning } from "../../utils/floating-ui";
import { LoadableComponent } from "../../utils/loadable";
import { Scale } from "../interfaces";
/**
* @slot - A slot for adding `calcite-action`s.
* @slot trigger - A slot for adding a `calcite-action` to trigger opening the menu.
* @slot tooltip - A slot for adding an tooltip for the menu.
*/
export declare class ActionMenu implements LoadableComponent {
componentWillLoad(): void;
componentDidLoad(): void;
disconnectedCallback(): void;
/**
* When `true`, the component is expanded.
*/
expanded: boolean;
expandedHandler(): void;
/**
* Defines the available placements that can be used when a flip occurs.
*/
flipPlacements: EffectivePlacement[];
/**
* Specifies the text string for the component.
*/
label: string;
/**
* When `true`, the component is open.
*/
open: boolean;
openHandler(open: boolean): void;
/**
* Determines the type of positioning to use for the overlaid content.
*
* Using `"absolute"` will work for most cases. The component will be positioned inside of overflowing parent containers and will affect the container's layout.
* `"fixed"` should be used to escape an overflowing parent container, or when the reference element's `position` CSS property is `"fixed"`.
*
*/
overlayPositioning: OverlayPositioning;
/**
* Determines where the component will be positioned relative to the `referenceElement`.
*/
placement: LogicalPlacement;
/**
* Specifies the size of the component's trigger `calcite-action`.
*/
scale: Scale;
/**
* Emits when the `open` property is toggled.
*
*/
calciteActionMenuOpen: EventEmitter<void>;
closeCalciteActionMenuOnClick(event: PointerEvent): void;
el: HTMLCalciteActionMenuElement;
menuButtonEl: HTMLCalciteActionElement;
slottedMenuButtonEl: HTMLCalciteActionElement;
defaultMenuButtonEl: HTMLCalciteActionElement;
actionElements: HTMLCalciteActionElement[];
guid: string;
menuId: string;
menuButtonId: string;
tooltipEl: HTMLCalciteTooltipElement;
activeMenuItemIndex: number;
activeMenuItemIndexHandler(): void;
/** Sets focus on the component. */
setFocus(): Promise<void>;
connectMenuButtonEl: () => void;
disconnectMenuButtonEl: () => void;
setMenuButtonEl: (event: Event) => void;
setDefaultMenuButtonEl: (el: HTMLCalciteActionElement) => void;
renderMenuButton(): VNode;
renderMenuItems(): VNode;
render(): VNode;
handleCalciteActionClick: () => void;
menuButtonClick: (event: PointerEvent) => void;
updateTooltip: (event: Event) => void;
setTooltipReferenceElement: () => void;
updateAction: (action: HTMLCalciteActionElement, index: number) => void;
updateActions: (actions: HTMLCalciteActionElement[]) => void;
handleDefaultSlotChange: (event: Event) => void;
isValidKey(key: string, supportedKeys: string[]): boolean;
menuButtonKeyDown: (event: KeyboardEvent) => void;
handleActionNavigation: (event: KeyboardEvent, key: string, actions: HTMLCalciteActionElement[]) => void;
toggleOpenEnd: () => void;
toggleOpen: (value?: boolean) => void;
}