UNPKG

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

Version:

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

94 lines (76 loc) 2.84 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray")); var _get = _interopRequireDefault(require("lodash/get")); var _prepareComponentProps = _interopRequireDefault(require("../prepare-component-props")); var _validatorFunctions = require("../validators/validator-functions"); var getValidates = function getValidates(schema, _ref) { var componentMapper = _ref.componentMapper, actionMapper = _ref.actionMapper, values = _ref.values; var validations = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; if (Array.isArray(schema)) { schema.map(function (field) { return getValidates(field, { componentMapper: componentMapper, actionMapper: actionMapper, values: values }, validations); }); } else { if (schema.component) { var validate; var _prepareComponentProp = (0, _prepareComponentProps["default"])({ component: schema.component, rest: schema, componentMapper: componentMapper, actionMapper: actionMapper }), componentProps = _prepareComponentProp.componentProps, overrideProps = _prepareComponentProp.overrideProps, mergedResolveProps = _prepareComponentProp.mergedResolveProps; var resolveProps = mergedResolveProps || overrideProps.resolveProps || componentProps.resolveProps; // fake form state with only values if (resolveProps) { var _resolveProps = resolveProps(schema, { input: { value: (0, _get["default"])(values, schema.name) }, meta: {} }, { getState: function getState() { return { values: values }; } }), resolvePropsValidate = _resolveProps.validate; validate = resolvePropsValidate; } validate = validate || overrideProps.validate || componentProps.validate; if (schema.dataType) { validate = [].concat((0, _toConsumableArray2["default"])(validate || []), [(0, _validatorFunctions.dataTypeValidator)(schema.dataType)()]); } if (validate) { if (validations[schema.name]) { validations[schema.name].push(validate); } else { validations[schema.name] = [validate]; } } } if (schema.fields) { getValidates(schema.fields, { componentMapper: componentMapper, actionMapper: actionMapper, values: values }, validations); } } return validations; }; var _default = getValidates; exports["default"] = _default;