UNPKG

@ebay/ebayui-core

Version:

Collection of core eBay components; considered to be the building blocks for all composite structures, pages & apps.

83 lines (82 loc) 3.07 kB
import { DropdownUtil } from "../../common/dropdown"; import { MenuUtils, type BaseMenuInput, type MenuState } from "../../common/menu-utils"; import type { MenuEvent } from "../ebay-menu/component"; import type { Input as EbayButtonInput, ButtonEvent } from "../ebay-button/index.marko"; import { WithNormalizedProps } from "../../global"; export interface MenuButtonEvent { el?: Element; originalEvent?: Event; indexes?: number[]; checked?: number[]; checkedValues?: string[]; /** @deprecated in v5 */ index?: number; } interface MenuButtonInput extends Omit<BaseMenuInput, "variant">, Omit<Marko.HTML.Span, `on${string}`> { "collapse-on-select"?: boolean; "prefix-id"?: string; variant?: "overflow" | "form" | "button" | "icon" | "filter"; borderless?: boolean; partiallyDisabled?: EbayButtonInput["partiallyDisabled"]; priority?: "primary" | "secondary" | "tertiary" | "delete" | "none"; size?: EbayButtonInput["size"]; transparent?: boolean; "a11y-text"?: Marko.HTMLAttributes["aria-label"]; disabled?: boolean; split?: string; "no-toggle-icon"?: boolean; label?: Marko.AttrTag<{ renderBody?: Marko.Body; }>; "prefix-label"?: string; icon?: Marko.AttrTag<{ renderBody?: Marko.Body; }>; "footer-button"?: Marko.AttrTag<EbayButtonInput>; "on-footer-button-click"?: (event: ButtonEvent<MouseEvent>) => void; status?: Marko.AttrTag<{ renderBody?: Marko.Body<[number, Boolean[]]>; }>; text?: string; reverse?: boolean; strategy?: "absolute" | "fixed"; flip?: boolean; "fix-width"?: boolean; "on-expand"?: (event: MenuButtonEvent) => void; "on-collapse"?: (event: MenuButtonEvent) => void; "on-change"?: (event: MenuButtonEvent) => void; "on-select"?: (event: MenuButtonEvent) => void; "on-mousedown"?: (event: MenuButtonEvent) => void; } export interface Input extends WithNormalizedProps<MenuButtonInput> { } export default class extends MenuUtils<Input, MenuState> { expander: any; isExpanded?: boolean; dropdownUtil: DropdownUtil; onCreate(): void; toggleItemChecked(index: number, itemEl: Element | undefined, originalEvent?: Event): void; handleItemClick(index: number, e: Event, itemEl?: Element): void; handleMenuKeydown({ el, originalEvent, index }: MenuEvent): void; focus(): void; handleButtonEscape(): void; handleExpand(): void; handleCollapse(): void; handleMenuChange({ el, originalEvent, index }: MenuEvent): void; handleMenuSelect({ el, originalEvent, index }: MenuEvent): void; handleMousedown(originalEvent: MouseEvent, el: HTMLSpanElement): void; emitComponentEvent({ eventType, el, originalEvent, index, }: { eventType: string; el?: Element; originalEvent?: Event; index?: number; }): void; onInput(input: Input): void; onRender(): void; onMount(): void; onUpdate(): void; onDestroy(): void; _setupMakeup(): void; _cleanupMakeup(): void; } export {};