@nocobase/flow-engine
Version:
A standalone flow engine for NocoBase, managing workflows, models, and actions.
41 lines (40 loc) • 1.91 kB
TypeScript
/**
* This file is part of the NocoBase (R) project.
* Copyright (c) 2020-2024 NocoBase Co., Ltd.
* Authors: NocoBase Team.
*
* This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
* For more information, please refer to: https://www.nocobase.com/agreement.
*/
import type { ISchema } from '@formily/json-schema';
import type { FlowModel } from '../models';
import { FlowRuntimeContext } from '../flowContext';
import type { StepDefinition, StepUIMode } from '../types';
/**
* 解析 uiMode,支持静态值和函数形式
* 函数可以接收 FlowRuntimeContext
* @param {StepUIMode | ((ctx: FlowRuntimeContext<TModel>) => StepUIMode | Promise<StepUIMode>)} uiMode UI模式定义
* @param {FlowRuntimeContext<TModel>} ctx 上下文
* @returns {Promise<StepUIMode>} 解析后的 UI 模式
*/
export declare function resolveUiMode<TModel extends FlowModel = FlowModel>(uiMode: StepUIMode | ((ctx: FlowRuntimeContext<TModel>) => StepUIMode | Promise<StepUIMode>) | undefined, ctx: FlowRuntimeContext<TModel>): Promise<StepUIMode>;
/**
* 编译 UI Schema 中的表达式
*
* @param scope 编译作用域,包含可用的变量和函数(如 t, randomString 等)
* @param uiSchema 待编译的 UI Schema
* @param options 编译选项
* @returns 编译后的 UI Schema
*/
export declare function compileUiSchema(scope: Record<string, any>, uiSchema: any, options?: {
noCache?: boolean;
}): any;
/**
* 解析并合并步骤的完整uiSchema
* 这个函数提取了在多个组件中重复使用的uiSchema解析和合并逻辑
* @param model 模型实例
* @param flow 流程定义
* @param step 步骤定义
* @returns 合并后的uiSchema对象,如果为空则返回null
*/
export declare function resolveStepUiSchema<TModel extends FlowModel = FlowModel>(model: TModel, flow: any, step: StepDefinition): Promise<Record<string, ISchema> | null>;