UNPKG

json-joy

Version:

Collection of libraries for building collaborative editing apps.

49 lines (48 loc) 1.73 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.RichTextController = void 0; const peritext_1 = require("../../../json-crdt-extensions/peritext"); class RichTextController { constructor(opts) { this.opts = opts; } /** -------------------------------------------------- {@link UiLifeCycles} */ start() { const el = this.opts.source; const onKeyDown = (event) => { const key = event.key; if (event.isComposing || key === 'Dead') return; const et = this.opts.et; if (event.metaKey || event.ctrlKey) { switch (key) { case 'b': event.preventDefault(); et.format(peritext_1.CommonSliceType.b); return; case 'i': event.preventDefault(); et.format(peritext_1.CommonSliceType.i); return; case 'u': event.preventDefault(); et.format(peritext_1.CommonSliceType.u); return; } } if (event.metaKey && event.shiftKey) { switch (key) { case 'x': event.preventDefault(); et.format(peritext_1.CommonSliceType.s); return; } } }; el.addEventListener('keydown', onKeyDown); return () => { el.removeEventListener('keydown', onKeyDown); }; } } exports.RichTextController = RichTextController;