UNPKG

kwikid-forms

Version:

KwikID's JSON Configuration based Forms Renderer and Builder

27 lines 4.2 kB
import _ from "lodash"; export const removeField = (fields, fieldKey) => { fields = fields.filter((row) => { return row.key !== fieldKey; }); return fields; }; export const getFieldIndex = (fields, identifier) => { return fields.findIndex((row) => row.key === identifier); }; export const findModifiedKeys = (defaultJson, modifiedJson, currentPath = "") => { return _.reduce(modifiedJson, (result, value, key) => { const path = currentPath ? `${currentPath}.${key}` : key; const defaultValue = defaultJson[key]; if (_.isObject(value) && _.isObject(defaultValue)) { const nestedResult = findModifiedKeys(defaultValue, value, path); if (!_.isEmpty(nestedResult)) { result[key] = nestedResult; } } else if (!_.isEqual(value, defaultValue)) { result[key] = value; } return result; }, {}); }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGRlci1mb3JtLWVkaXRvci5oZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rd2lraWQtZm9ybXMvc3JjL2xpYi9idWlsZGVyL2J1aWxkZXItZm9ybS1lZGl0b3IvYnVpbGRlci1mb3JtLWVkaXRvci5oZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxDQUFDLE1BQU0sUUFBUSxDQUFDO0FBRXZCLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxDQUFDLE1BQWEsRUFBRSxRQUFnQixFQUFPLEVBQUU7SUFDbEUsTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtRQUM3QixPQUFPLEdBQUcsQ0FBQyxHQUFHLEtBQUssUUFBUSxDQUFDO0lBQzlCLENBQUMsQ0FBQyxDQUFDO0lBRUgsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLENBQUMsTUFBYSxFQUFFLFVBQWUsRUFBVSxFQUFFO0lBQ3RFLE9BQU8sTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxVQUFVLENBQUMsQ0FBQztBQUMzRCxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxDQUM5QixXQUFnQixFQUNoQixZQUFpQixFQUNqQixXQUFXLEdBQUcsRUFBRSxFQUNYLEVBQUU7SUFDUCxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQ2IsWUFBWSxFQUNaLENBQUMsTUFBVyxFQUFFLEtBQVUsRUFBRSxHQUFXLEVBQUUsRUFBRTtRQUN2QyxNQUFNLElBQUksR0FBRyxXQUFXLENBQUMsQ0FBQyxDQUFDLEdBQUcsV0FBVyxJQUFJLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7UUFDekQsTUFBTSxZQUFZLEdBQUcsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRXRDLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxFQUFFO1lBQ2pELE1BQU0sWUFBWSxHQUFHLGdCQUFnQixDQUFDLFlBQVksRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDakUsSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLEVBQUU7Z0JBQzVCLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxZQUFZLENBQUM7YUFDNUI7U0FDRjthQUFNLElBQUksQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxZQUFZLENBQUMsRUFBRTtZQUMxQyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDO1NBQ3JCO1FBRUQsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQyxFQUNELEVBQUUsQ0FDSCxDQUFDO0FBQ0osQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IF8gZnJvbSBcImxvZGFzaFwiO1xuXG5leHBvcnQgY29uc3QgcmVtb3ZlRmllbGQgPSAoZmllbGRzOiBhbnlbXSwgZmllbGRLZXk6IHN0cmluZyk6IGFueSA9PiB7XG4gIGZpZWxkcyA9IGZpZWxkcy5maWx0ZXIoKHJvdykgPT4ge1xuICAgIHJldHVybiByb3cua2V5ICE9PSBmaWVsZEtleTtcbiAgfSk7XG5cbiAgcmV0dXJuIGZpZWxkcztcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRGaWVsZEluZGV4ID0gKGZpZWxkczogYW55W10sIGlkZW50aWZpZXI6IGFueSk6IG51bWJlciA9PiB7XG4gIHJldHVybiBmaWVsZHMuZmluZEluZGV4KChyb3cpID0+IHJvdy5rZXkgPT09IGlkZW50aWZpZXIpO1xufTtcblxuZXhwb3J0IGNvbnN0IGZpbmRNb2RpZmllZEtleXMgPSAoXG4gIGRlZmF1bHRKc29uOiBhbnksXG4gIG1vZGlmaWVkSnNvbjogYW55LFxuICBjdXJyZW50UGF0aCA9IFwiXCJcbik6IGFueSA9PiB7XG4gIHJldHVybiBfLnJlZHVjZShcbiAgICBtb2RpZmllZEpzb24sXG4gICAgKHJlc3VsdDogYW55LCB2YWx1ZTogYW55LCBrZXk6IHN0cmluZykgPT4ge1xuICAgICAgY29uc3QgcGF0aCA9IGN1cnJlbnRQYXRoID8gYCR7Y3VycmVudFBhdGh9LiR7a2V5fWAgOiBrZXk7XG4gICAgICBjb25zdCBkZWZhdWx0VmFsdWUgPSBkZWZhdWx0SnNvbltrZXldO1xuXG4gICAgICBpZiAoXy5pc09iamVjdCh2YWx1ZSkgJiYgXy5pc09iamVjdChkZWZhdWx0VmFsdWUpKSB7XG4gICAgICAgIGNvbnN0IG5lc3RlZFJlc3VsdCA9IGZpbmRNb2RpZmllZEtleXMoZGVmYXVsdFZhbHVlLCB2YWx1ZSwgcGF0aCk7XG4gICAgICAgIGlmICghXy5pc0VtcHR5KG5lc3RlZFJlc3VsdCkpIHtcbiAgICAgICAgICByZXN1bHRba2V5XSA9IG5lc3RlZFJlc3VsdDtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmICghXy5pc0VxdWFsKHZhbHVlLCBkZWZhdWx0VmFsdWUpKSB7XG4gICAgICAgIHJlc3VsdFtrZXldID0gdmFsdWU7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfSxcbiAgICB7fVxuICApO1xufTtcbiJdfQ==