@farris/renderer
Version:
Render schema to web page with farris ui.
69 lines (68 loc) • 2.37 kB
TypeScript
import { ChangeObserverRegistry } from "@farris/devkit-vue";
import { ChangeEffectResolveService } from "../change-effect-resolver";
import { ComponentConfigResolveService } from "../component-config-resolver";
import { RenderEngineImpl } from "../render-engine";
import { FormMetadataService } from "../service";
import { Configuration } from "../config";
import { DataGridRequiredEffector, FormGroupRequiredEffector } from "../component-effectors";
import { ComponentConfigDependencyResolveService } from "../component-config-dependency-resolver";
/**
* 表单引擎
*/
export declare class FormEngine {
private changeObserverRegistry;
private changeEffectResolveService;
private componentConfigResolveService;
private renderEngineImpl;
private formMetadataService;
private formGroupRequiredEffector;
private dataGridRequiredEffector;
private componentConfigDependencyResolveService;
constructor(changeObserverRegistry: ChangeObserverRegistry, changeEffectResolveService: ChangeEffectResolveService, componentConfigResolveService: ComponentConfigResolveService, renderEngineImpl: RenderEngineImpl, formMetadataService: FormMetadataService, formGroupRequiredEffector: FormGroupRequiredEffector, dataGridRequiredEffector: DataGridRequiredEffector, componentConfigDependencyResolveService: ComponentConfigDependencyResolveService);
/**
* 初始化变更观察者
*/
private initChangeObservers;
/**
* 处理变更
*/
private handleChange;
/**
* 处理组件变更
*/
private processComponentChanges;
/**
* 更新组件属性
*/
private updateComponentProps;
/**
* 应用必填效果
*/
private applyRequiredEffects;
/**
* 根据组件类型应用必填效果器
*/
private applyRequiredEffectorByType;
/**
* 应用数据表格必填效果
*/
private applyDataGridRequiredEffects;
/**
* 从路径中提取列ID
*/
private extractColumnId;
/**
* 解析组件
*/
resolve(components: any[]): void;
/**
* 过滤Schema
* @param schema
* @param config config中path格式:columns/enum1_2500a61c_oi2p:editor/readonly
*/
filterSchema(schema: any, config: Configuration): Record<string, any>;
/**
* 合并数组
*/
private mergeArray;
}