json-joy
Version:
Collection of libraries for building collaborative editing apps.
41 lines (40 loc) • 1.41 kB
JavaScript
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;
;