UNPKG

@data-driven-forms/react-form-renderer

Version:

React Form Renderer. Data Driven Forms converts JSON form definitions into fully functional React forms.

59 lines 3.04 kB
"use strict"; var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) { if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { if (ar || !(i in from)) { if (!ar) ar = Array.prototype.slice.call(from, 0, i); ar[i] = from[i]; } } return to.concat(ar || Array.prototype.slice.call(from)); }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); var get_1 = __importDefault(require("lodash/get")); var prepare_component_props_1 = __importDefault(require("../prepare-component-props")); var validator_functions_1 = require("../validators/validator-functions"); var getValidates = function (field, _a, validations) { var componentMapper = _a.componentMapper, actionMapper = _a.actionMapper, values = _a.values; if (validations === void 0) { validations = {}; } if (Array.isArray(field)) { field.forEach(function (fieldItem) { return getValidates(fieldItem, { componentMapper: componentMapper, actionMapper: actionMapper, values: values }, validations); }); } else { if (field.component) { var validate = void 0; var _b = (0, prepare_component_props_1.default)({ component: field.component, rest: field, componentMapper: componentMapper, actionMapper: actionMapper, }), componentProps = _b.componentProps, overrideProps = _b.overrideProps, mergedResolveProps = _b.mergedResolveProps; var resolveProps = mergedResolveProps || overrideProps.resolveProps || componentProps.resolveProps; // fake form state with only values if (resolveProps) { var resolvedProps = resolveProps(field, { input: { value: (0, get_1.default)(values, field.name) }, meta: {} }, { getState: function () { return ({ values: values }); } }); validate = resolvedProps === null || resolvedProps === void 0 ? void 0 : resolvedProps.validate; } validate = validate || overrideProps.validate || componentProps.validate; if (field.dataType) { validate = __spreadArray(__spreadArray([], (validate || []), true), [(0, validator_functions_1.dataTypeValidator)(field.dataType)[field.dataType]()], false); } if (validate) { if (validations[field.name]) { validations[field.name].push(validate); } else { validations[field.name] = [validate]; } } } if (field.fields) { getValidates(field.fields, { componentMapper: componentMapper, actionMapper: actionMapper, values: values }, validations); } } return validations; }; exports.default = getValidates; //# sourceMappingURL=get-validates.js.map