UNPKG

contentful-migration

Version:
60 lines 2.12 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.find = exports.collectFieldGroupIds = exports.findFieldGroup = exports.isFieldItem = exports.isFieldGroupItem = exports.MAX_FIELD_SETS = exports.MAX_TABS = exports.MIN_GROUPS = void 0; exports.MIN_GROUPS = 2; exports.MAX_TABS = 5; exports.MAX_FIELD_SETS = 15; function isFieldGroupItem(item) { return Boolean(item.groupId); } exports.isFieldGroupItem = isFieldGroupItem; function isFieldItem(item) { return Boolean(item.fieldId); } exports.isFieldItem = isFieldItem; const findFieldGroup = (editorLayout, groupId) => { const result = find(editorLayout, (item) => isFieldGroupItem(item) && item.groupId === groupId); if (result) { return Object.assign(Object.assign({}, result), { item: result.item }); } }; exports.findFieldGroup = findFieldGroup; const collectFieldGroupIds = (editorLayout) => { const fieldGroupIds = []; visitEditorLayout(editorLayout, (item) => { if (isFieldGroupItem(item)) { fieldGroupIds.push(item.groupId); } }); return fieldGroupIds; }; exports.collectFieldGroupIds = collectFieldGroupIds; function visitEditorLayout(editorLayout, cb) { for (const currentItem of editorLayout) { cb(currentItem); if (isFieldGroupItem(currentItem)) { visitEditorLayout(currentItem.items, cb); } } } function find(editorLayout, predicate) { const findIt = (list, path) => { for (const [index, item] of list.entries()) { if (predicate(item)) { return { path: [...path, index], item: list[index] }; } if (isFieldGroupItem(item)) { const result = findIt(item.items, [...path, index, 'items']); if (result) { return result; } } } }; const foundItem = findIt(editorLayout, []); if (foundItem) { return Object.assign(Object.assign({}, foundItem), { path: foundItem.path }); } } exports.find = find; //# sourceMappingURL=editor-layout.js.map