e-virt-table
Version:
A powerful data table based on canvas. You can use it as data grid、Microsoft Excel or Google sheets. It supports virtual scroll、cell edit etc.
46 lines (45 loc) • 1.34 kB
TypeScript
import { MenuItem } from './types';
export interface MenuOptions {
onClick?: (itemData: MenuItem, value: string) => void;
}
export declare class DOMTreeMenu {
private container;
private menuData;
private onClick?;
private activeSubmenus;
private boundMouseEnterHandler;
private boundMouseLeaveHandler;
private boundClickHandler;
constructor(container: HTMLElement, menuData?: MenuItem[], options?: MenuOptions);
private createMenu;
private createMenuItem;
private createSubmenu;
private createElement;
private bindEvents;
private handleMouseEvent;
private handleHover;
private handleLeave;
private hideSiblingSubmenus;
private showSubmenu;
private hideSubmenu;
private hideAllChildSubmenus;
private handleClick;
private findMenuItem;
positionMenu(e: MouseEvent): void;
private hide;
destroy(): void;
/**
* 删除指定值的菜单项
* @param value 要删除的菜单项的值
* @returns 是否成功删除
*/
removeMenuItem(value: string): boolean;
/**
* 删除指定值的子菜单项
* @param value 要删除的子菜单项的值
* @returns 是否成功删除
*/
removeSubMenuItem(value: string): boolean;
private cleanupAllSubmenus;
private cleanupSubmenuRecursively;
}