UNPKG

element-plus

Version:

A Component Library for Vue 3

40 lines (33 loc) 1.11 kB
import type { RouteLocationRaw } from 'vue-router' import type { MenuProps } from './menu' export interface MenuItemRegistered { index: string indexPath: string[] active: boolean } export interface MenuItemClicked { index: string indexPath: string[] route?: RouteLocationRaw } export interface MenuProvider { openedMenus: string[] items: Record<string, MenuItemRegistered> subMenus: Record<string, MenuItemRegistered> activeIndex?: string isMenuPopup: boolean props: MenuProps addMenuItem: (item: MenuItemRegistered) => void removeMenuItem: (item: MenuItemRegistered) => void addSubMenu: (item: MenuItemRegistered) => void removeSubMenu: (item: MenuItemRegistered) => void openMenu: (index: string, indexPath: string[]) => void closeMenu: (index: string) => void handleMenuItemClick: (item: MenuItemClicked) => void handleSubMenuClick: (subMenu: MenuItemRegistered) => void } export interface SubMenuProvider { addSubMenu: (item: MenuItemRegistered) => void removeSubMenu: (item: MenuItemRegistered) => void handleMouseleave?: (deepDispatch: boolean) => void }