import { Observable } from 'rxjs'; import { ControlDataModel } from '../types/control.types'; import { ControlBroadCastEvent } from '../types'; import { RemoteDataSourceService } from '../services/remote-data-source.service'; import { DynamicFormCommonConfig, FormContentResponse } from 'zr-dynamic-form/dynamic-form-common'; import { DynamicFormDesignerConfig } from './dynamic-form-designer-config'; import { ShowHiddenRuleModel } from '../types/control-show-hidden.types'; /** * @description 表单事件类型 * * @export * @enum {number} */ export declare enum DynamicFormEventType { BeforeLoad = "beforeLoad", AfterLoad = "afterLoad", BeforeDataLoad = "beforeDataLoad", AfterDataLoad = "afterDataLoad" } /** * 控件共享 * */ export interface ControlShared { /** * 是否是设计时 * */ isDesign: boolean; globalData: any; /** * 全局data值改变 * */ globalDataChange: Observable; /** * * 发送全局值改变 */ sendGlobalDataChange(data: any): void; /** * * 控件广播事件 */ controlBroadCasted$: Observable; /** * * 发送控件广播事件 */ controlBroadCasted(event: ControlBroadCastEvent): void; /** * 远程数据源服务 */ remoteDataSourceService: RemoteDataSourceService; /** * 通用配置 */ commonConfig: DynamicFormCommonConfig; /** * 设计器配置 */ designerConfig: DynamicFormDesignerConfig; /** * 获取已发布表单content */ getFormContent(formCode: string, labelCode: string): Observable; } /** * @description 表单事件 * * @export */ export interface DynamicFormEvent { /** * @description 分组名称 * * @memberof DynamicFormEvent */ groupName: string; /** * @description 名称 * * @memberof DynamicFormEvent */ name: DynamicFormEventType; /** * 脚本,支持原生js和jquery * * @memberof DynamicFormEvent */ script: string; /** * @description 描述 * * @memberof DynamicFormEvent */ description?: string; } /** * @description 动态表单model * * @export */ export interface DynamicFormModel { /** * 表单model * @memberof DynamicFormModel */ form: { /** * @description 表单事件 * */ events: Array; /** * 显隐规则 */ showHiddenRules?: Array; }; /** * @description 控件DataModel * * @memberof DynamicFormModel */ controls: Array; } /** * 转换成表单model * @param val 原始数据 */ export declare function toDynamicFormModel(val: any): DynamicFormModel; /** * @description 执行表单事件 * * @export * @param events 表单事件集合 * @param eventType 事件类型 * @param thisArg The object to be used as the current object */ export declare function executeFormEvent(events: Array, eventType: DynamicFormEventType, thisArg: any): void; /** * 获取表单异同内容 * */ export declare function getDiffContent(originalContent: DynamicFormModel, newContent: DynamicFormModel): DynamicFormModel; /** * 合并表单content * */ export declare function mergeDiffContent(originalContent: DynamicFormModel, diffContent: DynamicFormModel): DynamicFormModel;