import { DesignViewModelField, DesignViewModelService, DomService, RefreshFormService, SchemaService } from '@farris/designer-services'; import { FormPropertyChangeObject } from '../entity/property-change-entity'; /** * 控件属性变更后,同步DOM结构 */ export declare class ControlPropertyChangedService { private domService; private schemaService; private dgViewModelService; private refreshFormService; constructor(domService: DomService, schemaService: SchemaService, dgViewModelService: DesignViewModelService, refreshFormService: RefreshFormService); afterPropertyChanged(changeObject: FormPropertyChangeObject, propertyData: any, parameters: any, focusedComponentInstance: any): void; /** * 新版属性编辑器,在编辑过程中可能会新增变量,此处需要将新增的变量追加到ViewModel中 */ private addNewVariableToViewModel; /** * 收集关联属性的变更(用于dgViewModel的变更) * @param changeObject 变更集 */ private relateChangeObjects; /** * 属性面板更新后同步DOM结构 * @param controlId 控件ID * @param changeObject 变更集 */ private updateExpressionAfterPropChange; /** * 更新表达式相关dom:帮助前表达式需要额外记录ID * @param domJson 控件DOM结构 * @param change 变更集 * @param parameters 表达式ID */ private updateExpressionDomAfterPropChange; /** * 收集Schema字段的变更 * @param propertyData 属性值 * @param changeObjects 变更集 * @param viewModelId VMID */ private changeDgViewModel; /** * 更新DOM的修改至Schema实体 * @param propertyData 属性值 * @param changeObject 变更集 */ getSchemaChangeByDomChange(propertyData: any, changeObject: FormPropertyChangeObject, dgVMField: DesignViewModelField): any; /** * 某些属性更新后需要重新刷新表单和控件树 * @param propertyType 控件类型 * @param changeObject 属性变更 */ refreshFormAfterPropChanged(changeObject: FormPropertyChangeObject): void; /** * 属性变更后,将属性同步到Schema字段上,目前用于零代码表单驱动 * @param changeObject 变更集 * @param propertyData 控件schema * @param viewModelId 模型id */ syncSchemaFieldAfterControlPropChanged(changeObject: FormPropertyChangeObject, propertyData: any, viewModelId: string): void; }