@skokenes/slate-yjs
Version:
Yjs bindings for Slate.
44 lines • 3.43 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const slate_1 = require("slate");
const tiny_invariant_1 = __importDefault(require("tiny-invariant"));
const convert_1 = require("../utils/convert");
const util_1 = require("./util");
/**
* Applies a Yjs Array event to a Slate editor.
*
* @param event
*/
function applyArrayEvent(editor, event) {
let offset = 0;
const targetPath = convert_1.toSlatePath(event.path);
util_1.withoutNormalizingAndSelectionMod(editor, () => {
event.changes.delta.forEach((delta) => {
var _a, _b;
if ('retain' in delta) {
offset += (_a = delta.retain) !== null && _a !== void 0 ? _a : 0;
}
if ('delete' in delta) {
for (let i = 0; i < ((_b = delta.delete) !== null && _b !== void 0 ? _b : 0); i += 1) {
slate_1.Transforms.removeNodes(editor, {
at: [...targetPath, offset],
voids: true,
});
}
}
if ('insert' in delta) {
tiny_invariant_1.default(Array.isArray(delta.insert), `Unexpected array insert content type: expected array, got ${JSON.stringify(delta.insert)}`);
slate_1.Transforms.insertNodes(editor, delta.insert.map(convert_1.toSlateNode), {
at: [...targetPath, offset],
voids: true,
});
offset += delta.insert.length;
}
});
});
}
exports.default = applyArrayEvent;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJyYXlFdmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hcHBseVRvU2xhdGUvYXJyYXlFdmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLGlDQUEyQztBQUMzQyxvRUFBdUM7QUFHdkMsOENBQTREO0FBQzVELGlDQUEyRDtBQUUzRDs7OztHQUlHO0FBQ0gsU0FBd0IsZUFBZSxDQUNyQyxNQUFjLEVBQ2QsS0FBaUM7SUFFakMsSUFBSSxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBQ2YsTUFBTSxVQUFVLEdBQUcscUJBQVcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFM0Msd0NBQWlDLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRTtRQUM3QyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTs7WUFDcEMsSUFBSSxRQUFRLElBQUksS0FBSyxFQUFFO2dCQUNyQixNQUFNLElBQUksTUFBQSxLQUFLLENBQUMsTUFBTSxtQ0FBSSxDQUFDLENBQUM7YUFDN0I7WUFFRCxJQUFJLFFBQVEsSUFBSSxLQUFLLEVBQUU7Z0JBQ3JCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLE1BQUEsS0FBSyxDQUFDLE1BQU0sbUNBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRTtvQkFDL0Msa0JBQVUsQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFO3dCQUM3QixFQUFFLEVBQUUsQ0FBQyxHQUFHLFVBQVUsRUFBRSxNQUFNLENBQUM7d0JBQzNCLEtBQUssRUFBRSxJQUFJO3FCQUNaLENBQUMsQ0FBQztpQkFDSjthQUNGO1lBRUQsSUFBSSxRQUFRLElBQUksS0FBSyxFQUFFO2dCQUNyQix3QkFBUyxDQUNQLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxFQUMzQiw2REFBNkQsSUFBSSxDQUFDLFNBQVMsQ0FDekUsS0FBSyxDQUFDLE1BQU0sQ0FDYixFQUFFLENBQ0osQ0FBQztnQkFFRixrQkFBVSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMscUJBQVcsQ0FBQyxFQUFFO29CQUM1RCxFQUFFLEVBQUUsQ0FBQyxHQUFHLFVBQVUsRUFBRSxNQUFNLENBQUM7b0JBQzNCLEtBQUssRUFBRSxJQUFJO2lCQUNaLENBQUMsQ0FBQztnQkFFSCxNQUFNLElBQUksS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUM7YUFDL0I7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQXZDRCxrQ0F1Q0MifQ==