snappymail/plugins/wysiwyg-example/example.js

83 lines
1.6 KiB
JavaScript

(rl => {
class Example
{
constructor(owner, editor) {
this.mode = 'wysiwyg';
this.owner = owner;
this.editor = editor;
console.dir({editor});
}
setMode(mode) {
console.log(`WYSIWYG-Example.setMode(${mode})`);
this.mode = mode;
}
on(type, fn) {
console.log(`WYSIWYG-Example.on(${type}, ${fn})`);
}
execCommand(cmd, cfg) {
console.log(`WYSIWYG-Example.execCommand(${cmd}, ${cfg})`);
/*
execCommand('insertSignature', {
clearCache: true
}));
execCommand('insertSignature', {
isHtml: html,
insertBefore: insertBefore,
signature: signature
}));
*/
}
getData() {
console.log(`WYSIWYG-Example.getData()`);
return this.editor.innerHTML;
}
setData(html) {
console.log(`WYSIWYG-Example.setData(${html})`);
this.editor.innerHTML = html;
}
getPlainData() {
console.log(`WYSIWYG-Example.getPlainData()`);
return this.editor.innerText;
}
setPlainData(text) {
console.log(`WYSIWYG-Example.setPlainData(${text})`);
return this.editor.textContent = text;
}
blur() {
console.log(`WYSIWYG-Example.blur()`);
this.editor.blur();
}
focus() {
console.log(`WYSIWYG-Example.focus()`);
}
}
if (rl) {
const path = rl.settings.app('webVersionPath'),
script = document.createElement('script');
script.src = path + 'static/wysiwyg-example/example.min.js';
document.head.append(script);
/**
* owner = HtmlEditor
* container = HTMLElement
* onReady = callback(SMQuill)
*/
rl.registerWYSIWYG('Example', (owner, container, onReady) => {
const editor = new Example(owner, container);
onReady(editor);
});
}
})(window.rl);