UNPKG

form-render

Version:

通过 JSON Schema 生成标准 Form,常用于自定义搭建配置界面生成

67 lines (66 loc) 2.44 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _utils = require("../utils"); var transformHidden = function transformHidden(str) { var formData = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; var parentData = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; if (typeof str !== 'string') { return !!str; } var funcBody = str.replace(/^{\s*{/g, '').replace(/}\s*}$/g, '').trim(); var funcStr = "\n return ".concat(funcBody.replace(/formData/g, JSON.stringify(formData)).replace(/rootValue/g, JSON.stringify(parentData)), "\n "); try { var result = Function(funcStr)(); return result; } catch (error) { return false; } }; /** * 过滤 field.schema.hidden = true,的值 */ var _default = exports.default = function _default(_values, flattenSchema) { var recursiveArray = function recursiveArray(list, _path) { return list.map(function (item) { if ((0, _utils.isObject)(item)) { return _recursiveObj(item, _path, item); } return item; }); }; var _recursiveObj = function recursiveObj(obj, prePath, parentData) { var _a, _b; for (var _i = 0, _Object$keys = Object.keys(obj); _i < _Object$keys.length; _i++) { var key = _Object$keys[_i]; var item = obj[key]; var path = prePath ? "".concat(prePath, ".").concat(key) : key; var schema = (_a = flattenSchema[path]) === null || _a === void 0 ? void 0 : _a.schema; if ((0, _utils.isArray)(item) && !schema) { path = prePath ? "".concat(prePath, ".").concat(key, "[]") : "".concat(key, "[]"); schema = (_b = flattenSchema[path]) === null || _b === void 0 ? void 0 : _b.schema; } // 剔除隐藏数据 if (schema === null || schema === void 0 ? void 0 : schema.hidden) { var hidden = transformHidden(schema.hidden, _values, parentData); if (hidden) { obj[key] = undefined; continue; } } if ((0, _utils.isObject)(item)) { obj[key] = _recursiveObj(item, path, parentData); continue; } if ((0, _utils.isArray)(item) && (schema === null || schema === void 0 ? void 0 : schema.items)) { obj[key] = recursiveArray(item, path) || []; continue; } obj[key] = item; } return obj; }; return _recursiveObj(_values) || {}; };