@vericus/slate-kit-align
Version:
Plugins to provide a way to align blocks on slate
24 lines • 1.01 kB
JavaScript
import * as tslib_1 from "tslib";
import { Block } from "slate";
import { List } from "immutable";
function getAlignBlocksInBlock(opts, node) {
if (!node || !Block.isBlock(node))
return [];
var textBlocks = opts.textBlocks, floatBlocks = opts.floatBlocks;
if (node.isLeafBlock()) {
if (textBlocks.includes(node.type) || floatBlocks.includes(node.type)) {
return [node];
}
return [];
}
return node.nodes.reduce(function (alignBlocks, block) { return tslib_1.__spread(alignBlocks, getAlignBlocksInBlock(opts, block)); }, []);
}
function getAlignBlocks(opts, editor) {
var maybeAlignBlocks = editor.getHighestSelectedBlocks();
if (maybeAlignBlocks.size === 0)
return [];
return List(maybeAlignBlocks).reduce(function (alignBlocks, block) { return tslib_1.__spread(alignBlocks, getAlignBlocksInBlock(opts, block)); }, []);
}
export default getAlignBlocks;
export { getAlignBlocksInBlock };
//# sourceMappingURL=getAlignBlocks.js.map