//#region temp/packages/schema/src/index.d.ts type Method = 'get' | 'GET' | 'delete' | 'DELETE' | 'post' | 'POST' | 'put' | 'PUT'; interface HttpOptions { /** 请求链接 */ url: string; /** query参数 */ params?: Record; /** body数据 */ data?: Record; /** 请求头 */ headers?: Record; /** 请求方法 GET/POST */ method?: Method; [key: string]: any; } type RequestFunction = (options: HttpOptions) => Promise; type JsEngine = 'browser' | 'hippy' | 'nodejs'; declare enum NodeType { /** 容器 */ CONTAINER = "container", /** 页面 */ PAGE = "page", /** 根类型 */ ROOT = "app", /** 页面片 */ PAGE_FRAGMENT = "page-fragment" } declare const NODE_CONDS_KEY = "displayConds"; declare const NODE_CONDS_RESULT_KEY = "displayCondsResultReverse"; declare const NODE_DISABLE_DATA_SOURCE_KEY = "_tmagic_node_disabled_data_source"; declare const NODE_DISABLE_CODE_BLOCK_KEY = "_tmagic_node_disabled_code_block"; type Id = string | number; declare enum ActionType { /** 联动组件 */ COMP = "comp", /** 联动代码 */ CODE = "code", /** 数据源 */ DATA_SOURCE = "data-source" } interface DataSourceDeps { [dataSourceId: string | number]: DepData; } /** 事件类型(已废弃,后续不建议继续使用) */ interface DeprecatedEventConfig { /** 待触发的事件名称 */ name: string; /** 被选中组件ID */ to: Id; /** 触发事件后执行被选中组件的方法 */ method: string; } interface EventConfig { /** 待触发的事件名称 */ name: string; /** 动作响应配置 */ actions: EventActionItem[]; } interface CodeItemConfig { /** 动作类型 */ actionType: ActionType; /** 代码ID */ codeId: Id; /** 代码参数 */ params?: Record; } interface CompItemConfig { /** 动作类型 */ actionType: ActionType; /** 被选中组件ID */ to: Id; /** 触发事件后执行被选中组件的方法 */ method: string; } interface DataSourceItemConfig { /** 动作类型 */ actionType: ActionType; /** [数据源id, 方法] */ dataSourceMethod: [string, string]; /** 代码参数 */ params?: object; } type EventActionItem = CompItemConfig | CodeItemConfig | DataSourceItemConfig; interface MComponent { /** 组件ID,默认为${type}_${number}}形式, 如:page_123 */ id: Id; /** 组件类型 */ type?: string; /** 组件显示名称 */ name?: string; /** 组件根Dom上的class */ className?: string; events?: EventConfig[]; /** 是否隐藏 */ visible?: boolean; /** 显示条件中配置的数据源条件的编译结果 */ condResult?: boolean; /** 组件根Dom的style */ style?: StyleSchema; [NODE_CONDS_KEY]?: DisplayCond[]; [NODE_CONDS_RESULT_KEY]?: boolean; [key: string]: any; } interface MContainer extends MComponent { /** 容器类型,默认为'container' */ type?: NodeType.CONTAINER | string; /** 容器子元素 */ items: (MComponent | MContainer)[]; } interface MIteratorContainer extends MContainer { type: 'iterator-container'; iteratorData: any[]; dsField: string[]; itemConfig: { layout: string; [NODE_CONDS_KEY]: DisplayCond[]; style: Record; }; } interface MPage extends MContainer { /** 页面类型 */ type: NodeType.PAGE; } interface MPageFragment extends MContainer { /** 页面类型 */ type: NodeType.PAGE_FRAGMENT; } interface MApp extends MComponent { /** App页面类型,app作为整个结构的根节点;有且只有一个 */ type: NodeType.ROOT; /** */ items: (MPage | MPageFragment)[]; /** 代码块 */ codeBlocks?: CodeBlockDSL; dataSources?: DataSourceSchema[]; dataSourceDeps?: DataSourceDeps; dataSourceCondDeps?: DataSourceDeps; } interface CodeBlockDSL { [id: Id]: CodeBlockContent; } interface CodeBlockContent { /** 代码块名称 */ name: string; /** 代码块内容 */ content: ((...args: any[]) => any) | Function; /** 参数定义 */ params: CodeParam[] | []; /** 注释 */ desc?: string; /** 扩展字段 */ [propName: string]: any; } interface CodeParam { /** 参数名 */ name: string; /** 扩展字段 */ [propName: string]: any; } interface PastePosition { left?: number; top?: number; } type MNode = MComponent | MContainer | MIteratorContainer | MPage | MApp | MPageFragment; interface MNodeInstance extends Omit { id?: Id; type?: string; } declare enum HookType { /** 代码块钩子标识 */ CODE = "code" } declare enum HookCodeType { /** 代码块 */ CODE = "code", /** 数据源方法 */ DATA_SOURCE_METHOD = "data-source-method" } type DataSourceFieldType = 'null' | 'boolean' | 'object' | 'array' | 'number' | 'string' | 'any'; interface DataSchema { type?: DataSourceFieldType; /** 键名 */ name: string; /** 展示名称 */ title?: string; /** 实体描述,鼠标hover时展示 */ description?: string; /** 默认值 */ defaultValue?: any; /** 是否可用 */ enable?: boolean; /** type === 'object' || type === 'array' */ fields?: DataSchema[]; } interface MockSchema { /** 名称 */ title: string; /** 详细描述 */ description?: string; /** 是否启用,用于编辑器以外的runtime */ enable: boolean; /** 编辑器中使用使用此条数据,仅用于编辑器runtime中 */ useInEditor: boolean; /** mock数据 */ data: Record; } interface DataSourceSchema { /** 数据源类型,根据类型来实例化;例如http则使用new HttpDataSource */ type: string; /** 实体ID */ id: string; /** 实体名称,用于关联时展示 */ title?: string; /** 实体描述,鼠标hover时展示 */ description?: string; /** 字段列表 */ fields: DataSchema[]; /** 方法列表 */ methods: CodeBlockContent[]; /** mock数据 */ mocks?: MockSchema[]; /** 事件 */ events: EventConfig[]; /** 不执行init的环境 */ disabledInitInJsEngine?: (JsEngine | string)[]; /** 扩展字段 */ [key: string]: any; } interface DepData { [nodeId: Id]: { /** 组件名称 */name: string; keys: (string | number)[]; data?: Record; }; } type HookData = { /** 代码块id */codeId: Id; /** 参数 */ params?: object; }; interface DisplayCondItem { field: string[]; op: string; value?: any; range?: [number, number]; } interface DisplayCond { cond: DisplayCondItem[]; } interface UiComponentProps { config: T; model?: any; } interface StyleSchema { [key: string]: any; } //#endregion export { ActionType, CodeBlockContent, CodeBlockDSL, CodeItemConfig, CodeParam, CompItemConfig, DataSchema, DataSourceDeps, DataSourceFieldType, DataSourceItemConfig, DataSourceSchema, DepData, DeprecatedEventConfig, DisplayCond, DisplayCondItem, EventActionItem, EventConfig, HookCodeType, HookData, HookType, HttpOptions, Id, JsEngine, MApp, MComponent, MContainer, MIteratorContainer, MNode, MNodeInstance, MPage, MPageFragment, Method, MockSchema, NODE_CONDS_KEY, NODE_CONDS_RESULT_KEY, NODE_DISABLE_CODE_BLOCK_KEY, NODE_DISABLE_DATA_SOURCE_KEY, NodeType, PastePosition, RequestFunction, StyleSchema, UiComponentProps };