BookStack/resources/js/code/simple-editor-interface.js
Dan Brown 900571ac9c
CM6: Updated for popup editor, added new interface
New simple interface added for abstraction of CM editor in simple
use-cases, just to provide common actions like get/set content, focus
and set mode.
2023-04-17 13:24:29 +01:00

46 lines
949 B
JavaScript

import {updateViewLanguage} from "./views";
export class SimpleEditorInterface {
/**
* @param {EditorView} editorView
*/
constructor(editorView) {
this.ev = editorView;
}
/**
* Get the contents of an editor instance.
* @return {string}
*/
getContent() {
return this.ev.state.doc.toString();
}
/**
* Set the contents of an editor instance.
* @param content
*/
setContent(content) {
const doc = this.ev.state.doc;
this.ev.dispatch({
changes: {from: 0, to: doc.length, insert: content}
});
}
/**
* Return focus to the editor instance.
*/
focus() {
this.ev.focus();
}
/**
* Set the language mode of the editor instance.
* @param {String} mode
* @param {String} content
*/
setMode(mode, content = '') {
updateViewLanguage(this.ev, mode, content);
}
}