]> BookStack Code Mirror - bookstack/blob - resources/js/components/wysiwyg-editor.js
446f2ca4938696e6538774fa8357419f727b72c0
[bookstack] / resources / js / components / wysiwyg-editor.js
1 import {build as buildEditorConfig} from "../wysiwyg/config";
2
3 class WysiwygEditor {
4
5     setup() {
6         this.elem = this.$el;
7
8         this.pageId = this.$opts.pageId;
9         this.textDirection = this.$opts.textDirection;
10         this.isDarkMode = document.documentElement.classList.contains('dark-mode');
11
12         this.tinyMceConfig = buildEditorConfig({
13             language: this.$opts.language,
14             containerElement: this.elem,
15             darkMode: this.isDarkMode,
16             textDirection: this.textDirection,
17             drawioUrl: this.getDrawIoUrl(),
18             pageId: Number(this.pageId),
19             translations: {
20                 imageUploadErrorText: this.$opts.imageUploadErrorText,
21                 serverUploadLimitText: this.$opts.serverUploadLimitText,
22             },
23             translationMap: window.editor_translations,
24         });
25
26         window.$events.emitPublic(this.elem, 'editor-tinymce::pre-init', {config: this.tinyMceConfig});
27         window.tinymce.init(this.tinyMceConfig);
28     }
29
30     getDrawIoUrl() {
31         const drawioUrlElem = document.querySelector('[drawio-url]');
32         if (drawioUrlElem) {
33             return drawioUrlElem.getAttribute('drawio-url');
34         }
35         return '';
36     }
37
38 }
39
40 export default WysiwygEditor;