contentful-migration
Version:
Migration tooling for contentful
60 lines • 2.12 kB
JavaScript
;
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