UNPKG

marshall-y-slate

Version:
34 lines 2.91 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 move node operation to a SharedType. * * @param doc * @param op */ function moveNode(doc, op) { const [from, fromIndex] = (0, path_1.getParent)(doc, op.path); const [to, toIndex] = (0, path_1.getParent)(doc, op.newPath); if (model_1.SyncNode.getText(from) !== undefined || model_1.SyncNode.getText(to) !== undefined) { throw new TypeError('Can\'t move node as child of a text node'); } const fromChildren = model_1.SyncNode.getChildren(from); const toChildren = model_1.SyncNode.getChildren(to); (0, tiny_invariant_1.default)(fromChildren, 'From element should not be a text node'); (0, tiny_invariant_1.default)(toChildren, 'To element should not be a text node'); const toMove = fromChildren.get(fromIndex); const toInsert = (0, utils_1.cloneSyncElement)(toMove); fromChildren.delete(fromIndex); toChildren.insert(Math.min(toIndex, toChildren.length), [toInsert]); return doc; } exports.default = moveNode; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW92ZS1ub2RlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FwcGx5LXRvLXlqcy9ub2RlL21vdmUtbm9kZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUNBLG9FQUF1QztBQUN2Qyx1Q0FBbUQ7QUFDbkQscUNBQXVDO0FBQ3ZDLHVDQUErQztBQUUvQzs7Ozs7R0FLRztBQUNILFNBQXdCLFFBQVEsQ0FDOUIsR0FBZSxFQUNmLEVBQXFCO0lBRXJCLE1BQU0sQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLEdBQUcsSUFBQSxnQkFBUyxFQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbEQsTUFBTSxDQUFDLEVBQUUsRUFBRSxPQUFPLENBQUMsR0FBRyxJQUFBLGdCQUFTLEVBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUVqRCxJQUNFLGdCQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLFNBQVM7UUFDcEMsZ0JBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEtBQUssU0FBUyxFQUNsQztRQUNBLE1BQU0sSUFBSSxTQUFTLENBQUMsMENBQTBDLENBQUMsQ0FBQztLQUNqRTtJQUVELE1BQU0sWUFBWSxHQUFHLGdCQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2hELE1BQU0sVUFBVSxHQUFHLGdCQUFRLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBRTVDLElBQUEsd0JBQVMsRUFBQyxZQUFZLEVBQUUsd0NBQXdDLENBQUMsQ0FBQztJQUNsRSxJQUFBLHdCQUFTLEVBQUMsVUFBVSxFQUFFLHNDQUFzQyxDQUFDLENBQUM7SUFFOUQsTUFBTSxNQUFNLEdBQUcsWUFBWSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMzQyxNQUFNLFFBQVEsR0FBRyxJQUFBLHdCQUFnQixFQUFDLE1BQU0sQ0FBQyxDQUFDO0lBRTFDLFlBQVksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDL0IsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxVQUFVLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBRXBFLE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQztBQTNCRCwyQkEyQkMifQ==