UNPKG

@skokenes/slate-yjs

Version:
39 lines 3.14 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const tiny_invariant_1 = __importDefault(require("tiny-invariant")); const model_1 = require("../../model"); const path_1 = require("../../path"); const utils_1 = require("../../utils"); /** * Applies a merge node operation to a SharedType. * * @param doc * @param op */ function mergeNode(doc, op) { const [parent, index] = path_1.getParent(doc, op.path); const children = model_1.SyncNode.getChildren(parent); tiny_invariant_1.default(children, 'Parent of element should have children'); const prev = children.get(index - 1); const next = children.get(index); const prevText = model_1.SyncNode.getText(prev); const nextText = model_1.SyncNode.getText(next); if (prevText && nextText) { prevText.insert(prevText.length, nextText.toString()); } else { const nextChildren = model_1.SyncNode.getChildren(next); const prevChildren = model_1.SyncNode.getChildren(prev); tiny_invariant_1.default(nextChildren, 'Next element should have children'); tiny_invariant_1.default(prevChildren, 'Prev element should have children'); const toPush = nextChildren.map(utils_1.cloneSyncElement); prevChildren.push(toPush); } children.delete(index, 1); return doc; } exports.default = mergeNode; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVyZ2VOb2RlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FwcGx5VG9ZanMvbm9kZS9tZXJnZU5vZGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFDQSxvRUFBdUM7QUFDdkMsdUNBQW1EO0FBQ25ELHFDQUF1QztBQUN2Qyx1Q0FBK0M7QUFFL0M7Ozs7O0dBS0c7QUFDSCxTQUF3QixTQUFTLENBQy9CLEdBQWUsRUFDZixFQUFzQjtJQUV0QixNQUFNLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxHQUFHLGdCQUFTLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUVoRCxNQUFNLFFBQVEsR0FBRyxnQkFBUSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM5Qyx3QkFBUyxDQUFDLFFBQVEsRUFBRSx3Q0FBd0MsQ0FBQyxDQUFDO0lBRTlELE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ3JDLE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7SUFFakMsTUFBTSxRQUFRLEdBQUcsZ0JBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDeEMsTUFBTSxRQUFRLEdBQUcsZ0JBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFeEMsSUFBSSxRQUFRLElBQUksUUFBUSxFQUFFO1FBQ3hCLFFBQVEsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztLQUN2RDtTQUFNO1FBQ0wsTUFBTSxZQUFZLEdBQUcsZ0JBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDaEQsTUFBTSxZQUFZLEdBQUcsZ0JBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFaEQsd0JBQVMsQ0FBQyxZQUFZLEVBQUUsbUNBQW1DLENBQUMsQ0FBQztRQUM3RCx3QkFBUyxDQUFDLFlBQVksRUFBRSxtQ0FBbUMsQ0FBQyxDQUFDO1FBRTdELE1BQU0sTUFBTSxHQUFHLFlBQVksQ0FBQyxHQUFHLENBQUMsd0JBQWdCLENBQUMsQ0FBQztRQUNsRCxZQUFZLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0tBQzNCO0lBRUQsUUFBUSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDMUIsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDO0FBOUJELDRCQThCQyJ9