@skokenes/slate-yjs
Version:
Yjs bindings for Slate.
33 lines • 2.11 kB
JavaScript
import { Editor } from 'slate';
import * as Y from 'yjs';
import applyArrayEvent from './arrayEvent';
import applyMapEvent from './mapEvent';
import applyTextEvent from './textEvent';
/**
* Applies a yjs event to a slate editor.
*
* @param event
*/
function applyYjsEvent(e, event) {
if (event instanceof Y.YArrayEvent) {
return applyArrayEvent(e, event);
}
if (event instanceof Y.YMapEvent) {
return applyMapEvent(e, event);
}
if (event instanceof Y.YTextEvent) {
return applyTextEvent(e, event);
}
throw new Error('Unsupported yjs event');
}
/**
* Applies multiple yjs events to a slate editor.
*
* @param event
*/
export default function applyYjsEvents(editor, events) {
Editor.withoutNormalizing(editor, () => {
events.forEach((event) => applyYjsEvent(editor, event));
});
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXBwbHlUb1NsYXRlL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFDL0IsT0FBTyxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUM7QUFDekIsT0FBTyxlQUFlLE1BQU0sY0FBYyxDQUFDO0FBQzNDLE9BQU8sYUFBYSxNQUFNLFlBQVksQ0FBQztBQUN2QyxPQUFPLGNBQWMsTUFBTSxhQUFhLENBQUM7QUFFekM7Ozs7R0FJRztBQUNILFNBQVMsYUFBYSxDQUFDLENBQVMsRUFBRSxLQUFlO0lBQy9DLElBQUksS0FBSyxZQUFZLENBQUMsQ0FBQyxXQUFXLEVBQUU7UUFDbEMsT0FBTyxlQUFlLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO0tBQ2xDO0lBRUQsSUFBSSxLQUFLLFlBQVksQ0FBQyxDQUFDLFNBQVMsRUFBRTtRQUNoQyxPQUFPLGFBQWEsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7S0FDaEM7SUFFRCxJQUFJLEtBQUssWUFBWSxDQUFDLENBQUMsVUFBVSxFQUFFO1FBQ2pDLE9BQU8sY0FBYyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztLQUNqQztJQUVELE1BQU0sSUFBSSxLQUFLLENBQUMsdUJBQXVCLENBQUMsQ0FBQztBQUMzQyxDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxPQUFPLFVBQVUsY0FBYyxDQUNwQyxNQUFjLEVBQ2QsTUFBa0I7SUFFbEIsTUFBTSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUU7UUFDckMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsYUFBYSxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQzFELENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyJ9