UNPKG

marshall-y-slate

Version:
50 lines 3.9 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 yjs_editor_1 = require("./yjs-editor"); const AWARENESS = new WeakMap(); exports.CursorEditor = { awareness(editor) { const awareness = AWARENESS.get(editor); (0, tiny_invariant_1.default)(awareness, 'CursorEditor without attaches awareness'); return awareness; }, updateCursor: (editor) => { const sharedType = yjs_editor_1.YjsEditor.sharedType(editor); const { selection } = editor; try { const anchor = selection && (0, utils_1.absolutePositionToRelativePosition)(sharedType, selection.anchor); const focus = selection && (0, utils_1.absolutePositionToRelativePosition)(sharedType, selection.focus); const awareness = exports.CursorEditor.awareness(editor); awareness.setLocalState(Object.assign(Object.assign({}, awareness.getLocalState()), { anchor, focus })); } catch (error) { const e = editor; if (e.onError) { e.onError({ code: 10003, name: 'update cursor', nativeError: error }); } } } }; 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3Vyc29yLWVkaXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wbHVnaW4vY3Vyc29yLWVkaXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFDQSxvRUFBdUM7QUFFdkMsMkNBQXFFO0FBQ3JFLDZDQUF5QztBQUV6QyxNQUFNLFNBQVMsR0FBK0IsSUFBSSxPQUFPLEVBQUUsQ0FBQztBQU0vQyxRQUFBLFlBQVksR0FBRztJQUN4QixTQUFTLENBQUMsTUFBb0I7UUFDMUIsTUFBTSxTQUFTLEdBQUcsU0FBUyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN4QyxJQUFBLHdCQUFTLEVBQUMsU0FBUyxFQUFFLHlDQUF5QyxDQUFDLENBQUM7UUFDaEUsT0FBTyxTQUFTLENBQUM7SUFDckIsQ0FBQztJQUVELFlBQVksRUFBRSxDQUFDLE1BQW9CLEVBQVEsRUFBRTtRQUN6QyxNQUFNLFVBQVUsR0FBRyxzQkFBUyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNoRCxNQUFNLEVBQUUsU0FBUyxFQUFFLEdBQUcsTUFBTSxDQUFDO1FBRTdCLElBQUk7WUFDQSxNQUFNLE1BQU0sR0FDUixTQUFTO2dCQUNULElBQUEsMENBQWtDLEVBQUMsVUFBVSxFQUFFLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUVyRSxNQUFNLEtBQUssR0FDUCxTQUFTO2dCQUNULElBQUEsMENBQWtDLEVBQUMsVUFBVSxFQUFFLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUVwRSxNQUFNLFNBQVMsR0FBRyxvQkFBWSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNqRCxTQUFTLENBQUMsYUFBYSxpQ0FBTSxTQUFTLENBQUMsYUFBYSxFQUFFLEtBQUUsTUFBTSxFQUFFLEtBQUssSUFBRyxDQUFDO1NBQzVFO1FBQUMsT0FBTyxLQUFLLEVBQUU7WUFDWixNQUFNLENBQUMsR0FPSCxNQUFhLENBQUM7WUFDbEIsSUFBSSxDQUFDLENBQUMsT0FBTyxFQUFFO2dCQUNYLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxlQUFlLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7YUFDekU7U0FDSjtJQUNMLENBQUM7Q0FDSixDQUFDO0FBRUYsU0FBZ0IsVUFBVSxDQUN0QixNQUFTLEVBQ1QsU0FBb0I7SUFFcEIsTUFBTSxDQUFDLEdBQUcsTUFBMEIsQ0FBQztJQUVyQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxTQUFTLENBQUMsQ0FBQztJQUM1QixDQUFDLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztJQUV4QixNQUFNLEVBQUUsUUFBUSxFQUFFLEdBQUcsTUFBTSxDQUFDO0lBRTVCLENBQUMsQ0FBQyxRQUFRLEdBQUcsR0FBRyxFQUFFO1FBQ2QsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLG9CQUFZLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBRWxELElBQUksUUFBUSxFQUFFO1lBQ1YsUUFBUSxFQUFFLENBQUM7U0FDZDtJQUNMLENBQUMsQ0FBQztJQUVGLE9BQU8sQ0FBQyxDQUFDO0FBQ2IsQ0FBQztBQXBCRCxnQ0FvQkMifQ==