UNPKG

@skokenes/slate-yjs

Version:
31 lines 2.88 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const slate_1 = require("slate"); const convert_1 = require("../utils/convert"); const util_1 = require("./util"); /** * Applies a Yjs map event to a Slate editor. * * @param event */ function applyMapEvent(editor, event) { const targetPath = convert_1.toSlatePath(event.path); const targetElement = event.target; const keyChanges = Array.from(event.changes.keys.entries()); const removedProperties = keyChanges .filter(([, info]) => info.action === 'delete') .map(([key]) => key); const newProperties = keyChanges .filter(([, info]) => info.action !== 'delete') .reduce((curr, [key]) => (Object.assign(Object.assign({}, curr), { [key]: targetElement.get(key) })), {}); util_1.withoutNormalizingAndSelectionMod(editor, () => { if (removedProperties.length > 0) { slate_1.Transforms.unsetNodes(editor, removedProperties, { at: targetPath }); } if (Object.keys(newProperties).length > 0) { slate_1.Transforms.setNodes(editor, newProperties, { at: targetPath }); } }); } exports.default = applyMapEvent; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwRXZlbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXBwbHlUb1NsYXRlL21hcEV2ZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsaUNBQTJDO0FBRzNDLDhDQUErQztBQUMvQyxpQ0FBMkQ7QUFFM0Q7Ozs7R0FJRztBQUNILFNBQXdCLGFBQWEsQ0FDbkMsTUFBYyxFQUNkLEtBQTJCO0lBRTNCLE1BQU0sVUFBVSxHQUFHLHFCQUFXLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzNDLE1BQU0sYUFBYSxHQUFHLEtBQUssQ0FBQyxNQUFxQixDQUFDO0lBRWxELE1BQU0sVUFBVSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUU1RCxNQUFNLGlCQUFpQixHQUFHLFVBQVU7U0FDakMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxLQUFLLFFBQVEsQ0FBQztTQUM5QyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUV2QixNQUFNLGFBQWEsR0FBNEIsVUFBVTtTQUN0RCxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLEtBQUssUUFBUSxDQUFDO1NBQzlDLE1BQU0sQ0FDTCxDQUFDLElBQUksRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxpQ0FDWixJQUFJLEtBQ1AsQ0FBQyxHQUFHLENBQUMsRUFBRSxhQUFhLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUM3QixFQUNGLEVBQUUsQ0FDSCxDQUFDO0lBRUosd0NBQWlDLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRTtRQUM3QyxJQUFJLGlCQUFpQixDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDaEMsa0JBQVUsQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLGlCQUFpQixFQUFFLEVBQUUsRUFBRSxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUM7U0FDdEU7UUFFRCxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUN6QyxrQkFBVSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsYUFBYSxFQUFFLEVBQUUsRUFBRSxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUM7U0FDaEU7SUFDSCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUM7QUFoQ0QsZ0NBZ0NDIn0=