import { MenuItem, MenuTheme, PopupMenuTheme, PopupColorful, MenuResult, MenuEllipsisOption, MenuItemEvent } from './types'; import { VNode, Slot } from 'vue'; /** 子菜单项链接类名 */ export declare const linkClass = "ele-menu-link"; /** 菜单标题类名 */ export declare const titleClass = "ele-menu-title"; /** 子菜单项事件触发元素类名 */ export declare const triggerClass = "ele-menu-trigger"; /** 菜单溢出隐藏项类名 */ export declare const overflowClass = "ele-menu-overflow"; /** 菜单省略项的类名 */ export declare const ellipsisClass = "ele-sub-menu-ellipsis"; /** * 生成菜单链接节点 * @param path 链接地址 */ export declare function getLinkNode(path?: string): VNode | undefined; /** * 生成事件触发节点 * @param item 菜单数据 * @param path 链接地址 * @param onItemClick 点击事件 * @param onItemMouseenter 鼠标进入事件 * @param onItemMouseleave 鼠标离开事件 */ export declare function getTriggerNode(item: MenuItem, path?: string, onItemClick?: MenuItemEvent, onItemMouseenter?: MenuItemEvent, onItemMouseleave?: MenuItemEvent): VNode | undefined; /** * 生成菜单内容节点 * @param icons 图标节点 * @param titles 标题节点 * @param badge 徽章节点 * @param trigger 事件触发元素节点 */ export declare function getNodes(icons?: VNode[], titles?: VNode[], badge?: VNode | null, trigger?: VNode | null): VNode[]; /** * 递归生成菜单节点 * @param items 菜单数据 * @param sIcon 图标插槽 * @param sTitle 标题插槽 * @param tipDisabled 是否禁用折叠的tooltip * @param theme 主题 * @param popTheme 气泡菜单主题 * @param colorful 是否彩色图标 * @param popupColorful 气泡菜单是否彩色图标 * @param firstPopClass 第一级气泡菜单类名 * @param first 是否是第一级菜单 * @param onItemClick 子菜单项点击事件 * @param onItemMouseenter 子菜单项鼠标进入事件 * @param onItemMouseenter 子菜单项鼠标离开事件 * @param webkit 是否是webkit内核 * @param onParentMouseenter 父级菜单项鼠标进入事件 * @param onParentMouseleave 父级菜单项鼠标离开事件 */ export declare function renderItems(items?: MenuItem[], sIcon?: Slot, sTitle?: Slot, tipDisabled?: boolean, theme?: MenuTheme, popTheme?: PopupMenuTheme, colorful?: boolean, popupColorful?: PopupColorful, firstPopClass?: string, first?: boolean, onItemClick?: MenuItemEvent, onItemMouseenter?: MenuItemEvent, onItemMouseleave?: MenuItemEvent, webkit?: boolean, onParentMouseenter?: MenuItemEvent, onParentMouseleave?: MenuItemEvent): VNode[]; /** * 生成气泡菜单的类名 * @param customerClass 自定义的类名 * @param theme 主题 * @param popTheme 气泡菜单主题 * @param colorful 是否彩色图标 * @param popupColorful 气泡菜单是否彩色图标 * @param firstPopClass 第一级气泡菜单类名 * @param first 是否是第一级菜单 * @param webkit 是否是webkit内核 */ export declare function getPopperClass(customerClass?: string, theme?: MenuTheme, popTheme?: PopupMenuTheme, colorful?: boolean, popupColorful?: PopupColorful, firstPopClass?: string, first?: boolean, webkit?: boolean): string; /** * 生成菜单数据 * @param items 菜单数据 * @param index 省略位置 * @param horizontal 是否是水平菜单 */ export declare function getMenuItems(menus?: MenuItem[], index?: number, horizontal?: boolean): MenuResult; /** * 获取菜单节点宽度 * @param el 菜单节点 */ export declare function getMenuWidth(el?: HTMLElement | null): number | undefined; /** * 获取菜单项节点宽度 * @param el 菜单项节点 */ export declare function getItemWidth(el?: HTMLElement | null): number | undefined; /** * 获取菜单子级节点 * @param el 菜单节点 */ export declare function getMenuChilds(el: HTMLElement): HTMLElement[]; /** * 菜单溢出省略 */ export declare function useMenuEllipsis(option: MenuEllipsisOption): { observe: () => void; unobserve: () => void; computedEllipsis: () => void; };