@ng-flexy/layout
Version:
Flexy components and tools to build Angular 8+ applications
38 lines • 4.38 kB
JavaScript
export function parseFormJson(json) {
if (Array.isArray(json)) {
return parseFormVersion1(json);
}
else if (json.schemaVersion === 1) {
return parseFormVersion1(json.schema);
}
else {
return json.schema;
}
}
export function parseFormVersion1(json) {
const parsed = [];
json.forEach(item => {
parsed.push(parseFormVersion1Item(item));
});
return parsed;
}
export function parseFormVersion1Item(item) {
const schema = {};
if (item.properties && item.properties.class) {
if (!item.attributes) {
item.attributes = {};
}
item.attributes.class = item.properties.class;
}
if (item.component) {
Object.assign(schema, {
component: item.component,
properties: item.componentInputs ? item.componentInputs : {}
});
}
if (item.children) {
schema.children = parseFormVersion1(item.children);
}
return schema;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LWpzb24tbWFwcGVyLnV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbGF5b3V0L3NyYy9saWIvc2VydmljZXMvbGF5b3V0LWpzb24tbWFwcGVyLnV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE1BQU0sVUFBVSxhQUFhLENBQUMsSUFBcUI7SUFDakQsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFO1FBQ3ZCLE9BQU8saUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUM7S0FDaEM7U0FBTSxJQUFJLElBQUksQ0FBQyxhQUFhLEtBQUssQ0FBQyxFQUFFO1FBQ25DLE9BQU8saUJBQWlCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0tBQ3ZDO1NBQU07UUFDTCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7S0FDcEI7QUFDSCxDQUFDO0FBRUQsTUFBTSxVQUFVLGlCQUFpQixDQUFDLElBQVc7SUFDM0MsTUFBTSxNQUFNLEdBQXdCLEVBQUUsQ0FBQztJQUN2QyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFO1FBQ2xCLE1BQU0sQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUMzQyxDQUFDLENBQUMsQ0FBQztJQUNILE9BQU8sTUFBNkIsQ0FBQztBQUN2QyxDQUFDO0FBRUQsTUFBTSxVQUFVLHFCQUFxQixDQUFDLElBQVM7SUFDN0MsTUFBTSxNQUFNLEdBQXNCLEVBQUUsQ0FBQztJQUNyQyxJQUFJLElBQUksQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUU7UUFDNUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDcEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUM7U0FDdEI7UUFDRCxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQztLQUMvQztJQUNELElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtRQUNsQixNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRTtZQUNwQixTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVM7WUFDekIsVUFBVSxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLEVBQUU7U0FDN0QsQ0FBQyxDQUFDO0tBQ0o7SUFFRCxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7UUFDakIsTUFBTSxDQUFDLFFBQVEsR0FBRyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7S0FDcEQ7SUFFRCxPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmxleHlMYXlvdXRKc29uIH0gZnJvbSAnLi4vbW9kZWwvbGF5b3V0LWpzb24tc2NoZW1hLm1vZGVsJztcbmltcG9ydCB7IEZsZXh5TGF5b3V0U2NoZW1hIH0gZnJvbSAnLi4vbW9kZWwvbGF5b3V0LXNjaGVtYS5tb2RlbCc7XG5cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZUZvcm1Kc29uKGpzb246IEZsZXh5TGF5b3V0SnNvbik6IEZsZXh5TGF5b3V0U2NoZW1hW10ge1xuICBpZiAoQXJyYXkuaXNBcnJheShqc29uKSkge1xuICAgIHJldHVybiBwYXJzZUZvcm1WZXJzaW9uMShqc29uKTtcbiAgfSBlbHNlIGlmIChqc29uLnNjaGVtYVZlcnNpb24gPT09IDEpIHtcbiAgICByZXR1cm4gcGFyc2VGb3JtVmVyc2lvbjEoanNvbi5zY2hlbWEpO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBqc29uLnNjaGVtYTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VGb3JtVmVyc2lvbjEoanNvbjogYW55W10pOiBGbGV4eUxheW91dFNjaGVtYVtdIHtcbiAgY29uc3QgcGFyc2VkOiBGbGV4eUxheW91dFNjaGVtYVtdID0gW107XG4gIGpzb24uZm9yRWFjaChpdGVtID0+IHtcbiAgICBwYXJzZWQucHVzaChwYXJzZUZvcm1WZXJzaW9uMUl0ZW0oaXRlbSkpO1xuICB9KTtcbiAgcmV0dXJuIHBhcnNlZCBhcyBGbGV4eUxheW91dFNjaGVtYVtdO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VGb3JtVmVyc2lvbjFJdGVtKGl0ZW06IGFueSk6IEZsZXh5TGF5b3V0U2NoZW1hIHtcbiAgY29uc3Qgc2NoZW1hOiBGbGV4eUxheW91dFNjaGVtYSA9IHt9O1xuICBpZiAoaXRlbS5wcm9wZXJ0aWVzICYmIGl0ZW0ucHJvcGVydGllcy5jbGFzcykge1xuICAgIGlmICghaXRlbS5hdHRyaWJ1dGVzKSB7XG4gICAgICBpdGVtLmF0dHJpYnV0ZXMgPSB7fTtcbiAgICB9XG4gICAgaXRlbS5hdHRyaWJ1dGVzLmNsYXNzID0gaXRlbS5wcm9wZXJ0aWVzLmNsYXNzO1xuICB9XG4gIGlmIChpdGVtLmNvbXBvbmVudCkge1xuICAgIE9iamVjdC5hc3NpZ24oc2NoZW1hLCB7XG4gICAgICBjb21wb25lbnQ6IGl0ZW0uY29tcG9uZW50LFxuICAgICAgcHJvcGVydGllczogaXRlbS5jb21wb25lbnRJbnB1dHMgPyBpdGVtLmNvbXBvbmVudElucHV0cyA6IHt9XG4gICAgfSk7XG4gIH1cblxuICBpZiAoaXRlbS5jaGlsZHJlbikge1xuICAgIHNjaGVtYS5jaGlsZHJlbiA9IHBhcnNlRm9ybVZlcnNpb24xKGl0ZW0uY2hpbGRyZW4pO1xuICB9XG5cbiAgcmV0dXJuIHNjaGVtYTtcbn1cbiJdfQ==