UNPKG

snowy-designer

Version:

基于Epic-Designer-Pro版本的设计器,可视化开发页面表单

112 lines (111 loc) 4.62 kB
import { ComponentSchema, PageSchema } from '../../../types/src/index'; /** * 深拷贝数据 * @param obj */ export declare function deepClone<T extends object>(obj: T, cache?: WeakMap<WeakKey, any>): T; /** * 生成新的schema数据 * 深拷贝数据,防止重复引用 * 生成uuid * 生成field * @param schema 原始数据 * @param schemas 页面schemas数据,用于检查是否生成重复uuid */ export declare function generateNewSchema(schema: ComponentSchema, schemas?: ComponentSchema[]): ComponentSchema; /** * 不改变obj1引用,将obj2所有属性遍历复制给obj1。 * 递归比较两个对象,将obj2的属性复制给obj1。 * 如果obj1中有obj2没有的属性,根据shouldDelete参数决定是否删除该属性。 * @param obj1 - 要修改的对象。 * @param obj2 - 要比较的对象。 * @param shouldDelete - 如果为true,则删除obj2中不存在的obj1的属性。 */ export declare function deepCompareAndModify(obj1: object, obj2: object, shouldDelete?: boolean): void; /** * 深度比较两个对象是否相等 * @param obj1 * @param obj2 * @param ignoreKeys 可选参数,指定要忽略比较的属性名数组 */ export declare function deepEqual(obj1: object, obj2: object, ignoreKeys?: string[], visitedObjs?: WeakMap<WeakKey, any>): boolean; /** * 通过 ID 在组件树中查找并获取匹配的节点路径。 * * @param schemas - 组件树的根节点列表。 * @param id - 需要查找的节点 ID。 * @returns - 包含匹配节点路径的数组。如果未找到指定 ID 的节点,则返回空数组。 */ export declare function getMatchedById(schemas: ComponentSchema[], id: string): ComponentSchema[]; /** * 从嵌套对象中提取值 * @param object - 要访问的对象 * @param path - 点分隔的路径字符串 * @param defaultValue - 如果路径不存在,返回的默认值 * @returns 通过路径获取的值 */ export declare function getValueByPath(object: object, path: string, defaultValue?: unknown): any; /** * 在嵌套对象中设置值 * @param object - 要修改的对象 * @param path - 点分隔的路径字符串 * @param value - 要设置的值 * @returns 修改后的对象 */ export declare function setValueByPath(object: object, path: string, value: unknown): object; /** * 获取表单字段 * @param schemas 页面结构数据 * @param formName 表单name */ export declare function getFormFields(schemas: ComponentSchema[], formName?: string): (string | undefined)[]; /** * 从给定的组件schema数组中获取特定表单的输入字段schema数组。 * @param {ComponentSchema[]} schemas - 包含整个表单结构信息的组件schema数组。 * @param {string} formName - 要获取输入字段schema的表单名称,默认为 "default"。 * @returns {ComponentSchema[]} 包含表单输入字段schema的数组。 */ export declare function getFormSchemas(schemas: ComponentSchema[], formName?: string): ComponentSchema[]; /** * 查询Schema 返回所有符合添加的数据 * @param schemas * @param handler * @param once 当once为true,表示只需要查询一条符合添加的数据之后结束函数 * @param filter 节点过滤,函数返回 false,则不查询该节点的子节点 children */ export declare function findSchemas(schemas: ComponentSchema[], handler: (item: ComponentSchema) => boolean, once?: boolean, filter?: (item: ComponentSchema) => boolean): false | ComponentSchema | ComponentSchema[]; /** * 遍历Schema 返回映射的数据 * @param schemas * @param handler 映射处理 * @param filter 节点过滤,函数返回 false,则不映射该节点得所有子节点 children */ export declare function mapSchemas(schemas: ComponentSchema[], handler: (item: ComponentSchema) => ComponentSchema, filter?: (item: ComponentSchema) => boolean): ComponentSchema[]; /** * 通过id查询schema * @param schemas * @param id */ export declare function findSchemaById(schemas: ComponentSchema[], id: string): ComponentSchema | null; /** * 通过id查询schema及节点children index 信息 * @param schemas * @param id */ export declare function findSchemaInfoById(schemas: ComponentSchema[], id: string): { index: number; list: ComponentSchema[]; parentSchema: ComponentSchema; schema: ComponentSchema; }; /** * 将k-form-design数据转换为epic-designer数据 * @param data * @returns */ export declare function convertKFormData(data: any): PageSchema; /** * 递归转换子节点 * @param children */ export declare function recursionConvertedNode(children: any, parent?: any): ComponentSchema[];