UNPKG

element-plus

Version:

A Component Library for Vue3.0

83 lines (82 loc) 2.53 kB
import { Ref, ComputedRef } from 'vue'; import { Emitter } from 'mitt'; export interface RegisterMenuItem { index: string; indexPath: ComputedRef<string[]>; active: ComputedRef<boolean>; } export interface RootMenuData { activeIndex: string; openedMenus: unknown[]; items: any; submenus: any; isMenuPopup: boolean; } export interface RootMenuProvider { openedMenus: Ref<RootMenuData['openedMenus']>; items: Ref<RootMenuData['items']>; submenus: Ref<RootMenuData['submenus']>; activeIndex: Ref<RootMenuData['activeIndex']>; hoverBackground: Ref<string>; isMenuPopup: Ref<RootMenuData['isMenuPopup']>; props: Readonly<Partial<RootMenuProps>>; methods: { addMenuItem: (item: RegisterMenuItem) => void; removeMenuItem: (item: RegisterMenuItem) => void; addSubMenu: (item: RegisterMenuItem) => void; removeSubMenu: (item: RegisterMenuItem) => void; openMenu: (index: string, indexPath: Ref<string[]>) => void; closeMenu: (index: string) => void; }; rootMenuEmit: Emitter['emit']; rootMenuOn: Emitter['on']; } export interface SubMenuProvider { addSubMenu: (item: RegisterMenuItem) => void; removeSubMenu: (item: RegisterMenuItem) => void; handleMouseleave?: (deepDispatch: boolean) => void; } export interface IMenuProps { mode?: string | 'vertical' | 'horizontal'; defaultActive?: string; defaultOpeneds?: unknown[]; uniqueOpened?: boolean; router?: boolean; menuTrigger?: string | 'hover' | 'click'; collapse?: boolean; backgroundColor?: string; textColor?: string; activeTextColor?: string; collapseTransition?: boolean; } export interface RootMenuProps { mode: string; defaultActive: string; defaultOpeneds: unknown[]; uniqueOpened: boolean; router: boolean; menuTrigger: string; collapse: boolean; backgroundColor: string; textColor: string; activeTextColor: string; collapseTransition: boolean; } export interface ISubmenuProps { index: string; showTimeout?: number; hideTimeout?: number; popperClass?: string; disabled?: boolean; popperAppendToBody?: boolean; } export interface IMenuItemProps { index: string; route: string | Record<string, unknown>; popperClass: string; disabled: boolean; popperAppendToBody?: boolean; } export interface IMenuGroupProps { title: string; }