mirror of
				https://github.com/BookStackApp/BookStack.git
				synced 2025-11-03 02:13:16 +03:00 
			
		
		
		
	
		
			
				
	
	
		
			53 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			53 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
import {build as buildEditorConfig} from '../wysiwyg/config';
 | 
						|
import {Component} from './component';
 | 
						|
 | 
						|
export class WysiwygEditor extends Component {
 | 
						|
 | 
						|
    setup() {
 | 
						|
        this.elem = this.$el;
 | 
						|
 | 
						|
        this.pageId = this.$opts.pageId;
 | 
						|
        this.textDirection = this.$opts.textDirection;
 | 
						|
        this.isDarkMode = document.documentElement.classList.contains('dark-mode');
 | 
						|
 | 
						|
        this.tinyMceConfig = buildEditorConfig({
 | 
						|
            language: this.$opts.language,
 | 
						|
            containerElement: this.elem,
 | 
						|
            darkMode: this.isDarkMode,
 | 
						|
            textDirection: this.textDirection,
 | 
						|
            drawioUrl: this.getDrawIoUrl(),
 | 
						|
            pageId: Number(this.pageId),
 | 
						|
            translations: {
 | 
						|
                imageUploadErrorText: this.$opts.imageUploadErrorText,
 | 
						|
                serverUploadLimitText: this.$opts.serverUploadLimitText,
 | 
						|
            },
 | 
						|
            translationMap: window.editor_translations,
 | 
						|
        });
 | 
						|
 | 
						|
        window.$events.emitPublic(this.elem, 'editor-tinymce::pre-init', {config: this.tinyMceConfig});
 | 
						|
        window.tinymce.init(this.tinyMceConfig).then(editors => {
 | 
						|
            this.editor = editors[0];
 | 
						|
        });
 | 
						|
    }
 | 
						|
 | 
						|
    getDrawIoUrl() {
 | 
						|
        const drawioUrlElem = document.querySelector('[drawio-url]');
 | 
						|
        if (drawioUrlElem) {
 | 
						|
            return drawioUrlElem.getAttribute('drawio-url');
 | 
						|
        }
 | 
						|
        return '';
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * Get the content of this editor.
 | 
						|
     * Used by the parent page editor component.
 | 
						|
     * @return {{html: String}}
 | 
						|
     */
 | 
						|
    getContent() {
 | 
						|
        return {
 | 
						|
            html: this.editor.getContent(),
 | 
						|
        };
 | 
						|
    }
 | 
						|
 | 
						|
}
 |