@atlaskit/editor-plugin-block-menu
Version:
BlockMenu plugin for @atlaskit/editor-core
38 lines (37 loc) • 1.18 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.unwrapLayoutStep = void 0;
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
/**
* Unwraps a layoutSection node, extracting content from all columns.
* Works with any number of columns (2, 3, etc.).
*
* Example:
* layoutSection(
* layoutColumn(p('a'), p('b')),
* layoutColumn(p('c')),
* layoutColumn(p('d'))
* )
* → [p('a'), p('b'), p('c'), p('d')]
*/
var unwrapLayoutStep = exports.unwrapLayoutStep = function unwrapLayoutStep(nodes) {
var outputNodes = [];
nodes.forEach(function (node) {
var isLayoutSection = node.type.name === 'layoutSection';
if (isLayoutSection) {
node.children.forEach(function (column) {
var isLayoutColumn = column.type.name === 'layoutColumn';
if (isLayoutColumn) {
outputNodes.push.apply(outputNodes, (0, _toConsumableArray2.default)(column.children));
}
});
}
});
if (outputNodes.length === 0) {
return nodes;
}
return outputNodes;
};