UNPKG

react-web-native-sketch

Version:

[TODO: We need an overview of how this can be used via npm vs as a local package]

126 lines 4.09 kB
"use strict"; var __assign = (this && this.__assign) || Object.assign || function(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }; Object.defineProperty(exports, "__esModule", { value: true }); var common_1 = require("../../utils/common"); function getFormValues(formData, onlyTouchedFields) { if (onlyTouchedFields === void 0) { onlyTouchedFields = true; } var formValues = {}, fields = formData && formData.values || {}; Object.keys(fields).filter(function (key) { return onlyTouchedFields ? common_1.getNestedField(formData, ['fields', key, 'touched']) : true; }).map(function (key) { if (fields[key] !== null && fields[key] !== undefined) { if (key.indexOf('!') !== -1) { formValues = unpackJson(formValues, key, fields[key]); } else if (key.indexOf('~') === -1) { formValues = unpackForm(formValues, key, fields[key]); } else { formValues = unpackMultipleField(formValues, key, fields[key]); } } formValues = initFormArray(formValues, key); }); clearLists(formValues); return formValues; } exports.getFormValues = getFormValues; function getFormDbValue(state, formName, field) { if (!!state.form[formName] && !!state.form[formName].values) { if (!!state.form[formName].values[field]) { return state.form[formName].values[field]; } for (var fieldName in state.form[formName].values) { if (fieldName.split("~").indexOf(field) !== -1) { if (state.form[formName].values[fieldName] && state.form[formName].values[fieldName]) { return state.form[formName].values[fieldName][field]; } return null; } } } return null; } exports.getFormDbValue = getFormDbValue; function unpackMultipleField(root, s, value) { root = __assign({}, root, value); return root; } function unpackJson(root, s, value) { root[s.split('!')[0]] = value; return root; } function unpackForm(root, s, value) { var last = 0, key; var elem = root, index; for (index = 0; index < s.length; index++) { if (s[index] === ',' || s[index] === '.') { key = s.substring(last, index); last = index + 1; if (!elem[key]) { elem[key] = s[index] === ',' ? [] : {}; } elem = elem[key]; } } key = s.substring(last, index); elem[key] = value; return root; } function initFormArray(root, s) { var last = 0, key; var elem = root, index; for (index = 0; index < s.length; index++) { if (s[index] === ',' || s[index] === '.') { key = s.substring(last, index); last = index + 1; if (!elem[key]) { if (s[index] === ',') { elem[key] = []; } else { return; } } elem = elem[key]; } } return root; } function clearLists(formValues) { if (formValues === null) { return; } for (var k in formValues) { if (formValues[k] instanceof Array) { formValues[k] = formValues[k].filter(function (v) { return v !== null; }); } else if (formValues[k] instanceof Object) { clearLists(formValues[k]); } } } function getFormFieldContent(field, values, isRequired, alwaysTouched) { var dbValue; if (field.indexOf('~') > -1) { dbValue = {}; field.split('~').forEach(function (oneField) { dbValue[oneField] = values[oneField]; }); } else { dbValue = values[field]; } return dbValue; } exports.getFormFieldContent = getFormFieldContent; //# sourceMappingURL=Form.utils.js.map