@ebay/ebayui-core
Version:
Collection of core eBay components; considered to be the building blocks for all composite structures, pages & apps.
38 lines (37 loc) • 1.2 kB
TypeScript
export interface MenuItem extends Omit<Marko.HTML.Button, `on${string}`> {
href?: string;
value?: string;
renderBody?: Marko.Body;
separator?: boolean;
checked?: boolean;
badgeNumber?: number;
}
export interface BaseMenuInput {
item?: Marko.AttrTag<MenuItem>;
type?: string;
}
export interface MenuState {
checkedIndex?: number;
checkedItems?: boolean[];
}
declare const Component: typeof Marko.Component;
export declare class MenuUtils<Input extends BaseMenuInput, State extends MenuState> extends Component<Input, State> {
type?: string;
items: MenuItem[];
isRadio(): boolean;
getCheckedValues(): (string | undefined)[];
getCheckedIndexes(): number[] | undefined;
getInputState(input: Input): {
checkedIndex: number;
checkedItems?: undefined;
} | {
checkedItems: boolean[];
checkedIndex?: undefined;
};
isChecked(index: number): boolean;
isDisabled(index: number): import("marko/tags-html").AttrBoolean;
toggleChecked(index: number | number[]): void;
getSeparatorMap(input: Input): Record<number, boolean>;
}
export default function setupMenu(instance: any): void;
export {};