import { AsyncComponentLoader, Component, ShallowRef } from 'vue'; import { ComponentSchema } from './epic-designer'; export type ComponentType = AsyncComponentLoader | Component | string; export interface ActivitybarModel { component: ComponentType; icon: string; id: string; sort?: number; title: string; visible?: boolean; } export interface RightSidebarModel { component: ComponentType; id: string; sort?: number; title: string; visible?: boolean; } export interface ViewsContainersModel { activityBars: ShallowRef; rightSidebars: ShallowRef; } export type Components = Record; export interface EventModel { /** * @deprecated 此属性用于兼容旧版,后期可能会移除,请使用description属性代替。 */ describe?: string; description: string; type: string; } export interface ActionModel extends EventModel { args?: unknown[]; argsConfigs?: ComponentSchema[]; } export interface EditConstraintsModel { childImmovable?: boolean; fixedField?: boolean; immovable?: boolean; locked?: boolean; } export interface ComponentConfigModel { bindModel?: string; component: ComponentType; config: { action?: ActionModel[]; attribute?: ComponentSchema[]; event?: EventModel[]; style?: ComponentSchema[]; }; defaultSchema: ComponentSchema; editConstraints?: EditConstraintsModel; groupName?: string; icon?: string; isSubTable?: boolean; priority?: number; sort?: number; } export type ComponentConfigModelRecords = Record; export interface PublicMethodModel { /** * @deprecated 此属性用于兼容旧版,后期可能会移除,请使用description属性代替。 */ describe?: string; description?: string; handler: Function; /** * @deprecated 此属性用于兼容旧版,后期可能会移除,请使用handler属性代替。 */ method?: Function; /** * @deprecated 此属性用于兼容旧版,后期可能会移除,请使用name属性代替。 */ methodName?: string; name: string; } export type PublicMethodsModel = Record; export interface ComponentGroup { list: ComponentSchema[]; title: string; } export type ComponentSchemaGroups = ComponentGroup[];