UNPKG

json-joy

Version:

Collection of libraries for building collaborative editing apps.

41 lines (40 loc) 1.41 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.EditorSlices = void 0; const PersistedSlice_1 = require("../slice/PersistedSlice"); class EditorSlices { constructor(txt, slices) { this.txt = txt; this.slices = slices; } insAtCursors(callback) { const slices = []; this.txt.editor.forCursor((cursor) => { const slice = callback(cursor); slices.push(slice); }); return slices; } insStack(type, data) { return this.insAtCursors((cursor) => this.slices.insStack(cursor.range(), type, data)); } insOne(type, data) { return this.insAtCursors((cursor) => this.slices.insOne(cursor.range(), type, data)); } insErase(type, data) { return this.insAtCursors((cursor) => this.slices.insErase(cursor.range(), type, data)); } insMarker(type, data, separator) { return this.insAtCursors((cursor) => { this.txt.editor.collapseCursor(cursor); const after = cursor.start.clone(); after.refAfter(); const marker = this.slices.insMarkerAfter(after.id, type, data, separator); return marker; }); } del(sliceOrId) { this.slices.del(sliceOrId instanceof PersistedSlice_1.PersistedSlice ? sliceOrId.id : sliceOrId); } } exports.EditorSlices = EditorSlices;