UNPKG

react-layouts-builder

Version:

Lightweight and powerfull react layouts drag and drop

44 lines (37 loc) 1.44 kB
import { __assign } from '../../node_modules/tslib/tslib.es6.js'; import { insertLayout } from './addHelpers.js'; import { removeLayout } from './removeHelpers.js'; var moveBlock = function moveBlock(data, options) { var item = options.item, targetItemId = options.targetItemId, position = options.position; var itemId = item['@id'] || item.id; if (!itemId || !options.targetItemId) return data; var copyLayout = JSON.parse(JSON.stringify(data)); var removedItem = removeLayout(copyLayout, itemId); var addToTarget = insertLayout({ layouts: removedItem, moved: item, targetId: targetItemId, position: position }); return removeEmptyChildren(addToTarget); }; function removeEmptyChildren(layout) { var updatedChildrens = ((layout === null || layout === void 0 ? void 0 : layout.childrens) || []).map(function (child) { return removeEmptyChildren(child); }).filter(function (child) { return child; }); if (updatedChildrens.length === 0 && !(layout === null || layout === void 0 ? void 0 : layout.block)) { return null; } var updatedLayout = __assign(__assign({}, layout), { childrens: updatedChildrens.length > 0 ? updatedChildrens : undefined }); if (updatedChildrens.length === 0 && !(updatedLayout === null || updatedLayout === void 0 ? void 0 : updatedLayout.block)) { return null; } return updatedLayout; } export { moveBlock, removeEmptyChildren };