import { VueComponent, Region } from './base';

export interface WidgetTrigger {
  // 图标
  icon?: string;
  // 文本
  label?: string;
  // 打开方式
  type?: 'panel' | 'link' | 'dialog' | 'tab';
  // tab 能否关闭
  closable?: boolean;
}

export interface Widget {
  // 名称标识
  name: string;
  // 组件名
  type?: string | VueComponent;
  // 区域
  region?: Region;
  // 组件参数
  props?: Record<string, any>;
  // 禁用
  disabled?: boolean;
  // 排序
  order?: number;
  // 触发器
  trigger?: WidgetTrigger;
}

export type WidgetModify = Partial<Widget>;

export type RegionWidgets = Record<Region, Widget[]>;
