@ebay/ebayui-core
Version:
Collection of core eBay components; considered to be the building blocks for all composite structures, pages & apps.
77 lines (76 loc) • 2.8 kB
TypeScript
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 } from "../ebay-button/index.marko";
import { WithNormalizedProps } from "../../global";
import type { AttrString } from "marko/tags-html";
export interface MenuButtonEvent {
el?: Element;
originalEvent?: Event;
indexes?: number[];
checked?: number[];
checkedValues?: string[];
/** @deprecated in v5 */
index?: number;
}
interface MenuButtonInput extends BaseMenuInput, Omit<Marko.HTML.Span, `on${string}`> {
"collapse-on-select"?: boolean;
"prefix-id"?: string;
variant?: "overflow" | "form" | "button" | "icon";
borderless?: boolean;
partiallyDisabled?: EbayButtonInput["partiallyDisabled"];
priority?: "primary" | "secondary" | "tertiary" | "delete" | "none";
size?: EbayButtonInput["size"];
transparent?: boolean;
"a11y-text"?: AttrString;
disabled?: boolean;
split?: string;
"no-toggle-icon"?: boolean;
label?: Marko.AttrTag<{
renderBody?: Marko.Body;
}>;
"prefix-label"?: AttrString;
icon?: Marko.AttrTag<{
renderBody?: Marko.Body;
}>;
text?: AttrString;
reverse?: boolean;
strategy?: "absolute" | "fixed";
"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;
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 {};