UNPKG

@skokenes/slate-yjs

Version:
43 lines 3.37 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.withCursor = exports.CursorEditor = void 0; const tiny_invariant_1 = __importDefault(require("tiny-invariant")); const utils_1 = require("../cursor/utils"); const yjsEditor_1 = require("./yjsEditor"); const AWARENESS = new WeakMap(); exports.CursorEditor = { awareness(editor) { const awareness = AWARENESS.get(editor); tiny_invariant_1.default(awareness, 'CursorEditor without attaches awareness'); return awareness; }, updateCursor: (editor) => { const sharedType = yjsEditor_1.YjsEditor.sharedType(editor); const { selection } = editor; const anchor = selection && utils_1.absolutePositionToRelativePosition(sharedType, selection.anchor); const focus = selection && utils_1.absolutePositionToRelativePosition(sharedType, selection.focus); const awareness = exports.CursorEditor.awareness(editor); awareness.setLocalStateField('anchor', anchor); awareness.setLocalStateField('focus', focus); }, }; function withCursor(editor, awareness) { const e = editor; AWARENESS.set(e, awareness); e.awareness = awareness; const { onChange } = editor; e.onChange = () => { setTimeout(() => exports.CursorEditor.updateCursor(e), 0); if (onChange) { onChange(); } }; return e; } exports.withCursor = withCursor; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3Vyc29yRWRpdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3BsdWdpbi9jdXJzb3JFZGl0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQ0Esb0VBQXVDO0FBRXZDLDJDQUFxRTtBQUNyRSwyQ0FBd0M7QUFFeEMsTUFBTSxTQUFTLEdBQStCLElBQUksT0FBTyxFQUFFLENBQUM7QUFNL0MsUUFBQSxZQUFZLEdBQUc7SUFDMUIsU0FBUyxDQUFDLE1BQW9CO1FBQzVCLE1BQU0sU0FBUyxHQUFHLFNBQVMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDeEMsd0JBQVMsQ0FBQyxTQUFTLEVBQUUseUNBQXlDLENBQUMsQ0FBQztRQUNoRSxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBRUQsWUFBWSxFQUFFLENBQUMsTUFBb0IsRUFBUSxFQUFFO1FBQzNDLE1BQU0sVUFBVSxHQUFHLHFCQUFTLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2hELE1BQU0sRUFBRSxTQUFTLEVBQUUsR0FBRyxNQUFNLENBQUM7UUFFN0IsTUFBTSxNQUFNLEdBQ1YsU0FBUztZQUNULDBDQUFrQyxDQUFDLFVBQVUsRUFBRSxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFbkUsTUFBTSxLQUFLLEdBQ1QsU0FBUztZQUNULDBDQUFrQyxDQUFDLFVBQVUsRUFBRSxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFbEUsTUFBTSxTQUFTLEdBQUcsb0JBQVksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDakQsU0FBUyxDQUFDLGtCQUFrQixDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUMvQyxTQUFTLENBQUMsa0JBQWtCLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQy9DLENBQUM7Q0FDRixDQUFDO0FBRUYsU0FBZ0IsVUFBVSxDQUN4QixNQUFTLEVBQ1QsU0FBb0I7SUFFcEIsTUFBTSxDQUFDLEdBQUcsTUFBMEIsQ0FBQztJQUVyQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxTQUFTLENBQUMsQ0FBQztJQUM1QixDQUFDLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztJQUV4QixNQUFNLEVBQUUsUUFBUSxFQUFFLEdBQUcsTUFBTSxDQUFDO0lBRTVCLENBQUMsQ0FBQyxRQUFRLEdBQUcsR0FBRyxFQUFFO1FBQ2hCLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxvQkFBWSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUVsRCxJQUFJLFFBQVEsRUFBRTtZQUNaLFFBQVEsRUFBRSxDQUFDO1NBQ1o7SUFDSCxDQUFDLENBQUM7SUFFRixPQUFPLENBQUMsQ0FBQztBQUNYLENBQUM7QUFwQkQsZ0NBb0JDIn0=