marshall-y-slate
Version:
Yjs bindings for Slate.
20 lines • 2.2 kB
JavaScript
import { Node } from 'slate';
import { toSlatePath } from '../utils/convert';
/**
* Translates a Yjs map event into a slate operations.
*
* @param event
*/
export default function translateMapEvent(editor, event) {
const targetPath = toSlatePath(event.path);
const targetSyncElement = event.target;
const targetElement = 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 }];
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwLWV2ZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2FwcGx5LXRvLXNsYXRlL21hcC1ldmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQVUsSUFBSSxFQUFpQixNQUFNLE9BQU8sQ0FBQztBQUdwRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFL0M7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxPQUFPLFVBQVUsaUJBQWlCLENBQ3ZDLE1BQWMsRUFDZCxLQUEyQjtJQUUzQixNQUFNLFVBQVUsR0FBRyxXQUFXLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzNDLE1BQU0saUJBQWlCLEdBQUcsS0FBSyxDQUFDLE1BQXFCLENBQUM7SUFDdEQsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFFbkQsTUFBTSxVQUFVLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQzVELE1BQU0sYUFBYSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQ3RDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUM7UUFDOUIsR0FBRztRQUNILElBQUksQ0FBQyxNQUFNLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUM7S0FDN0QsQ0FBQyxDQUNILENBQUM7SUFFRixNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUNuQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLEVBQUUsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FDckQsQ0FBQztJQUVGLE9BQU8sQ0FBQyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsYUFBYSxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQztBQUM3RSxDQUFDIn0=