marshall-y-slate
Version:
Yjs bindings for Slate.
23 lines • 2.26 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const slate_1 = require("slate");
const convert_1 = require("../utils/convert");
/**
* Translates a Yjs map event into a slate operations.
*
* @param event
*/
function translateMapEvent(editor, event) {
const targetPath = (0, convert_1.toSlatePath)(event.path);
const targetSyncElement = event.target;
const targetElement = slate_1.Node.get(editor, targetPath);
const keyChanges = Array.from(event.changes.keys.entries());
const newProperties = Object.fromEntries(keyChanges.map(([key, info]) => [
key,
info.action === 'delete' ? null : targetSyncElement.get(key)
]));
const properties = Object.fromEntries(keyChanges.map(([key]) => [key, targetElement[key]]));
return [{ type: 'set_node', newProperties, properties, path: targetPath }];
}
exports.default = translateMapEvent;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwLWV2ZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2FwcGx5LXRvLXNsYXRlL21hcC1ldmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLGlDQUFvRDtBQUdwRCw4Q0FBK0M7QUFFL0M7Ozs7R0FJRztBQUNILFNBQXdCLGlCQUFpQixDQUN2QyxNQUFjLEVBQ2QsS0FBMkI7SUFFM0IsTUFBTSxVQUFVLEdBQUcsSUFBQSxxQkFBVyxFQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMzQyxNQUFNLGlCQUFpQixHQUFHLEtBQUssQ0FBQyxNQUFxQixDQUFDO0lBQ3RELE1BQU0sYUFBYSxHQUFHLFlBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBRW5ELE1BQU0sVUFBVSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUM1RCxNQUFNLGFBQWEsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUN0QyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQzlCLEdBQUc7UUFDSCxJQUFJLENBQUMsTUFBTSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDO0tBQzdELENBQUMsQ0FDSCxDQUFDO0lBRUYsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FDbkMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxFQUFFLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQ3JELENBQUM7SUFFRixPQUFPLENBQUMsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLGFBQWEsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUM7QUFDN0UsQ0FBQztBQXJCRCxvQ0FxQkMifQ==