import { MenuItemConfig } from './item';

/**
 * ���单组件配置选项
 */
export interface MenuOptions {
    /**
     * 菜单项列表
     * 可以是扁平数组，组件会根据 group 字段自动分组
     */
    items: MenuItemConfig[];

    /**
     * 分组显示顺序
     * 包含组 ID 的字符串数组。
     * 例如: ['view', 'edit', 'tools']
     * 未在此数组中定义的组将按默认顺序排在最后。
     */
    groupOrder?: string[]; 
}

/**
 * 右键容器内容接口
 * 任何想要挂载到 RightKey 容器中的组件都必须实现此接口
 */
export interface IRightKeyContent {
    /**
     * 获取组件的根 DOM 元素
     * 容器将把此元素 append 到自身内部
     */
    getElement(): HTMLElement;
    
    /**
     * 销毁组件
     * 容器在关闭或切换内容时会调用此方法，组件应在此清理资源
     */
    destroy(): void;
}
