UNPKG

@ng-flexy/layout

Version:

Flexy components and tools to build Angular 8+ applications

38 lines 4.38 kB
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==