kwikid-forms
Version:
KwikID's JSON Configuration based Forms Renderer and Builder
76 lines • 9.53 kB
JavaScript
import { checkObjectKeyExists, isEmptyValue, setValueToObjectPath } from "kwikid-toolkit";
export function convertFormListConfig(formsList) {
const convertFormListConfigTypeForm = (form) => {
if (checkObjectKeyExists(form, "formContent")) {
if (checkObjectKeyExists(form.formContent, "url")) {
form = setValueToObjectPath(form, "props.url", form.formContent.url);
delete form.formContent.url;
}
if (checkObjectKeyExists(form.formContent, "path")) {
form = setValueToObjectPath(form, "props.path", form.formContent.path);
delete form.formContent.path;
}
}
if (isEmptyValue(form.formContent)) {
delete form.formContent;
}
if (checkObjectKeyExists(form, "title")) {
form = setValueToObjectPath(form, "props.title", form.title);
delete form.title;
}
if (!checkObjectKeyExists(form, "hidden")) {
form.hidden = false;
}
if (!checkObjectKeyExists(form, "disabled")) {
form.disabled = false;
}
if (!checkObjectKeyExists(form, "required")) {
form.required = true;
}
if (!checkObjectKeyExists(form, "dependentOn")) {
form.dependentOn = [];
}
return form;
};
const convertFormListConfigTypeHtml = (form) => {
if (form.type === "html") {
form.type = "HTML";
}
if (checkObjectKeyExists(form, "htmlContent")) {
if (!checkObjectKeyExists(form, "props")) {
form.props = {
htmlContent: form.htmlContent
};
}
delete form.htmlContent;
}
else if (!checkObjectKeyExists(form, "props")) {
form.props = {
htmlContent: ""
};
}
if (checkObjectKeyExists(form, "title")) {
form = setValueToObjectPath(form, "props.title", form.title);
delete form.title;
}
if (!checkObjectKeyExists(form, "hidden")) {
form.hidden = false;
}
return form;
};
return formsList.map((form) => {
if (!checkObjectKeyExists(form, "type")) {
form.type = "FORM";
}
if (checkObjectKeyExists(form, "type")) {
if (form.type === "FORM") {
form = convertFormListConfigTypeForm(form);
}
if (form.type === "HTML" || form.type === "html") {
form = convertFormListConfigTypeHtml(form);
}
}
return form;
});
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGRlci5oZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rd2lraWQtZm9ybXMvc3JjL2xpYi9idWlsZGVyL2J1aWxkZXIuaGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxvQkFBb0IsRUFDcEIsWUFBWSxFQUNaLG9CQUFvQixFQUNyQixNQUFNLGdCQUFnQixDQUFDO0FBRXhCLE1BQU0sVUFBVSxxQkFBcUIsQ0FBQyxTQUFnQjtJQUNwRCxNQUFNLDZCQUE2QixHQUFHLENBQUMsSUFBUyxFQUFFLEVBQUU7UUFDbEQsSUFBSSxvQkFBb0IsQ0FBQyxJQUFJLEVBQUUsYUFBYSxDQUFDLEVBQUU7WUFDN0MsSUFBSSxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLEtBQUssQ0FBQyxFQUFFO2dCQUNqRCxJQUFJLEdBQUcsb0JBQW9CLENBQUMsSUFBSSxFQUFFLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUNyRSxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDO2FBQzdCO1lBQ0QsSUFBSSxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLE1BQU0sQ0FBQyxFQUFFO2dCQUNsRCxJQUFJLEdBQUcsb0JBQW9CLENBQUMsSUFBSSxFQUFFLFlBQVksRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUN2RSxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDO2FBQzlCO1NBQ0Y7UUFDRCxJQUFJLFlBQVksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUU7WUFDbEMsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO1NBQ3pCO1FBQ0QsSUFBSSxvQkFBb0IsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLEVBQUU7WUFDdkMsSUFBSSxHQUFHLG9CQUFvQixDQUFDLElBQUksRUFBRSxhQUFhLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzdELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztTQUNuQjtRQUNELElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLEVBQUU7WUFDekMsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7U0FDckI7UUFDRCxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxFQUFFO1lBQzNDLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1NBQ3ZCO1FBQ0QsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsRUFBRTtZQUMzQyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztTQUN0QjtRQUNELElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLEVBQUUsYUFBYSxDQUFDLEVBQUU7WUFDOUMsSUFBSSxDQUFDLFdBQVcsR0FBRyxFQUFFLENBQUM7U0FDdkI7UUFFRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUMsQ0FBQztJQUVGLE1BQU0sNkJBQTZCLEdBQUcsQ0FBQyxJQUFTLEVBQUUsRUFBRTtRQUNsRCxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssTUFBTSxFQUFFO1lBQ3hCLElBQUksQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDO1NBQ3BCO1FBRUQsSUFBSSxvQkFBb0IsQ0FBQyxJQUFJLEVBQUUsYUFBYSxDQUFDLEVBQUU7WUFDN0MsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsRUFBRTtnQkFDeEMsSUFBSSxDQUFDLEtBQUssR0FBRztvQkFDWCxXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVc7aUJBQzlCLENBQUM7YUFDSDtZQUNELE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztTQUN6QjthQUFNLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLEVBQUU7WUFDL0MsSUFBSSxDQUFDLEtBQUssR0FBRztnQkFDWCxXQUFXLEVBQUUsRUFBRTthQUNoQixDQUFDO1NBQ0g7UUFDRCxJQUFJLG9CQUFvQixDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsRUFBRTtZQUN2QyxJQUFJLEdBQUcsb0JBQW9CLENBQUMsSUFBSSxFQUFFLGFBQWEsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDN0QsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO1NBQ25CO1FBQ0QsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsRUFBRTtZQUN6QyxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztTQUNyQjtRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQyxDQUFDO0lBRUYsT0FBTyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7UUFDNUIsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsRUFBRTtZQUN2QyxJQUFJLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQztTQUNwQjtRQUNELElBQUksb0JBQW9CLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxFQUFFO1lBQ3RDLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxNQUFNLEVBQUU7Z0JBQ3hCLElBQUksR0FBRyw2QkFBNkIsQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUM1QztZQUVELElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxNQUFNLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxNQUFNLEVBQUU7Z0JBQ2hELElBQUksR0FBRyw2QkFBNkIsQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUM1QztTQUNGO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBjaGVja09iamVjdEtleUV4aXN0cyxcbiAgaXNFbXB0eVZhbHVlLFxuICBzZXRWYWx1ZVRvT2JqZWN0UGF0aFxufSBmcm9tIFwia3dpa2lkLXRvb2xraXRcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIGNvbnZlcnRGb3JtTGlzdENvbmZpZyhmb3Jtc0xpc3Q6IGFueVtdKTogYW55W10ge1xuICBjb25zdCBjb252ZXJ0Rm9ybUxpc3RDb25maWdUeXBlRm9ybSA9IChmb3JtOiBhbnkpID0+IHtcbiAgICBpZiAoY2hlY2tPYmplY3RLZXlFeGlzdHMoZm9ybSwgXCJmb3JtQ29udGVudFwiKSkge1xuICAgICAgaWYgKGNoZWNrT2JqZWN0S2V5RXhpc3RzKGZvcm0uZm9ybUNvbnRlbnQsIFwidXJsXCIpKSB7XG4gICAgICAgIGZvcm0gPSBzZXRWYWx1ZVRvT2JqZWN0UGF0aChmb3JtLCBcInByb3BzLnVybFwiLCBmb3JtLmZvcm1Db250ZW50LnVybCk7XG4gICAgICAgIGRlbGV0ZSBmb3JtLmZvcm1Db250ZW50LnVybDtcbiAgICAgIH1cbiAgICAgIGlmIChjaGVja09iamVjdEtleUV4aXN0cyhmb3JtLmZvcm1Db250ZW50LCBcInBhdGhcIikpIHtcbiAgICAgICAgZm9ybSA9IHNldFZhbHVlVG9PYmplY3RQYXRoKGZvcm0sIFwicHJvcHMucGF0aFwiLCBmb3JtLmZvcm1Db250ZW50LnBhdGgpO1xuICAgICAgICBkZWxldGUgZm9ybS5mb3JtQ29udGVudC5wYXRoO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoaXNFbXB0eVZhbHVlKGZvcm0uZm9ybUNvbnRlbnQpKSB7XG4gICAgICBkZWxldGUgZm9ybS5mb3JtQ29udGVudDtcbiAgICB9XG4gICAgaWYgKGNoZWNrT2JqZWN0S2V5RXhpc3RzKGZvcm0sIFwidGl0bGVcIikpIHtcbiAgICAgIGZvcm0gPSBzZXRWYWx1ZVRvT2JqZWN0UGF0aChmb3JtLCBcInByb3BzLnRpdGxlXCIsIGZvcm0udGl0bGUpO1xuICAgICAgZGVsZXRlIGZvcm0udGl0bGU7XG4gICAgfVxuICAgIGlmICghY2hlY2tPYmplY3RLZXlFeGlzdHMoZm9ybSwgXCJoaWRkZW5cIikpIHtcbiAgICAgIGZvcm0uaGlkZGVuID0gZmFsc2U7XG4gICAgfVxuICAgIGlmICghY2hlY2tPYmplY3RLZXlFeGlzdHMoZm9ybSwgXCJkaXNhYmxlZFwiKSkge1xuICAgICAgZm9ybS5kaXNhYmxlZCA9IGZhbHNlO1xuICAgIH1cbiAgICBpZiAoIWNoZWNrT2JqZWN0S2V5RXhpc3RzKGZvcm0sIFwicmVxdWlyZWRcIikpIHtcbiAgICAgIGZvcm0ucmVxdWlyZWQgPSB0cnVlO1xuICAgIH1cbiAgICBpZiAoIWNoZWNrT2JqZWN0S2V5RXhpc3RzKGZvcm0sIFwiZGVwZW5kZW50T25cIikpIHtcbiAgICAgIGZvcm0uZGVwZW5kZW50T24gPSBbXTtcbiAgICB9XG5cbiAgICByZXR1cm4gZm9ybTtcbiAgfTtcblxuICBjb25zdCBjb252ZXJ0Rm9ybUxpc3RDb25maWdUeXBlSHRtbCA9IChmb3JtOiBhbnkpID0+IHtcbiAgICBpZiAoZm9ybS50eXBlID09PSBcImh0bWxcIikge1xuICAgICAgZm9ybS50eXBlID0gXCJIVE1MXCI7XG4gICAgfVxuXG4gICAgaWYgKGNoZWNrT2JqZWN0S2V5RXhpc3RzKGZvcm0sIFwiaHRtbENvbnRlbnRcIikpIHtcbiAgICAgIGlmICghY2hlY2tPYmplY3RLZXlFeGlzdHMoZm9ybSwgXCJwcm9wc1wiKSkge1xuICAgICAgICBmb3JtLnByb3BzID0ge1xuICAgICAgICAgIGh0bWxDb250ZW50OiBmb3JtLmh0bWxDb250ZW50XG4gICAgICAgIH07XG4gICAgICB9XG4gICAgICBkZWxldGUgZm9ybS5odG1sQ29udGVudDtcbiAgICB9IGVsc2UgaWYgKCFjaGVja09iamVjdEtleUV4aXN0cyhmb3JtLCBcInByb3BzXCIpKSB7XG4gICAgICBmb3JtLnByb3BzID0ge1xuICAgICAgICBodG1sQ29udGVudDogXCJcIlxuICAgICAgfTtcbiAgICB9XG4gICAgaWYgKGNoZWNrT2JqZWN0S2V5RXhpc3RzKGZvcm0sIFwidGl0bGVcIikpIHtcbiAgICAgIGZvcm0gPSBzZXRWYWx1ZVRvT2JqZWN0UGF0aChmb3JtLCBcInByb3BzLnRpdGxlXCIsIGZvcm0udGl0bGUpO1xuICAgICAgZGVsZXRlIGZvcm0udGl0bGU7XG4gICAgfVxuICAgIGlmICghY2hlY2tPYmplY3RLZXlFeGlzdHMoZm9ybSwgXCJoaWRkZW5cIikpIHtcbiAgICAgIGZvcm0uaGlkZGVuID0gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiBmb3JtO1xuICB9O1xuXG4gIHJldHVybiBmb3Jtc0xpc3QubWFwKChmb3JtKSA9PiB7XG4gICAgaWYgKCFjaGVja09iamVjdEtleUV4aXN0cyhmb3JtLCBcInR5cGVcIikpIHtcbiAgICAgIGZvcm0udHlwZSA9IFwiRk9STVwiO1xuICAgIH1cbiAgICBpZiAoY2hlY2tPYmplY3RLZXlFeGlzdHMoZm9ybSwgXCJ0eXBlXCIpKSB7XG4gICAgICBpZiAoZm9ybS50eXBlID09PSBcIkZPUk1cIikge1xuICAgICAgICBmb3JtID0gY29udmVydEZvcm1MaXN0Q29uZmlnVHlwZUZvcm0oZm9ybSk7XG4gICAgICB9XG5cbiAgICAgIGlmIChmb3JtLnR5cGUgPT09IFwiSFRNTFwiIHx8IGZvcm0udHlwZSA9PT0gXCJodG1sXCIpIHtcbiAgICAgICAgZm9ybSA9IGNvbnZlcnRGb3JtTGlzdENvbmZpZ1R5cGVIdG1sKGZvcm0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBmb3JtO1xuICB9KTtcbn1cbiJdfQ==