44f0b4beef
Originally I changed the compiled output of TinyMCE from es2015 to es6 to try and allow our own requirejs system to serve the content. This is a change in the TinyMCE repository (or our copy of it). Unfortunately this turned out to not be possible, but I never got around to updating the configuration to stop doing so. Whilst working on this issue, I've removed this change to module compilation, which brings us closer in line to Tiny core, and simplifies the upgrade process.
119 lines
3.4 KiB
JavaScript
119 lines
3.4 KiB
JavaScript
/**
|
|
* TinyMCE version 6.6.2 (2023-08-09)
|
|
*/
|
|
|
|
(function () {
|
|
'use strict';
|
|
|
|
var global$2 = tinymce.util.Tools.resolve('tinymce.PluginManager');
|
|
|
|
const isSimpleType = type => value => typeof value === type;
|
|
const isFunction = isSimpleType('function');
|
|
|
|
var global$1 = tinymce.util.Tools.resolve('tinymce.dom.DOMUtils');
|
|
|
|
var global = tinymce.util.Tools.resolve('tinymce.util.Tools');
|
|
|
|
const option = name => editor => editor.options.get(name);
|
|
const register$2 = editor => {
|
|
const registerOption = editor.options.register;
|
|
registerOption('save_enablewhendirty', {
|
|
processor: 'boolean',
|
|
default: true
|
|
});
|
|
registerOption('save_onsavecallback', { processor: 'function' });
|
|
registerOption('save_oncancelcallback', { processor: 'function' });
|
|
};
|
|
const enableWhenDirty = option('save_enablewhendirty');
|
|
const getOnSaveCallback = option('save_onsavecallback');
|
|
const getOnCancelCallback = option('save_oncancelcallback');
|
|
|
|
const displayErrorMessage = (editor, message) => {
|
|
editor.notificationManager.open({
|
|
text: message,
|
|
type: 'error'
|
|
});
|
|
};
|
|
const save = editor => {
|
|
const formObj = global$1.DOM.getParent(editor.id, 'form');
|
|
if (enableWhenDirty(editor) && !editor.isDirty()) {
|
|
return;
|
|
}
|
|
editor.save();
|
|
const onSaveCallback = getOnSaveCallback(editor);
|
|
if (isFunction(onSaveCallback)) {
|
|
onSaveCallback.call(editor, editor);
|
|
editor.nodeChanged();
|
|
return;
|
|
}
|
|
if (formObj) {
|
|
editor.setDirty(false);
|
|
if (!formObj.onsubmit || formObj.onsubmit()) {
|
|
if (typeof formObj.submit === 'function') {
|
|
formObj.submit();
|
|
} else {
|
|
displayErrorMessage(editor, 'Error: Form submit field collision.');
|
|
}
|
|
}
|
|
editor.nodeChanged();
|
|
} else {
|
|
displayErrorMessage(editor, 'Error: No form element found.');
|
|
}
|
|
};
|
|
const cancel = editor => {
|
|
const h = global.trim(editor.startContent);
|
|
const onCancelCallback = getOnCancelCallback(editor);
|
|
if (isFunction(onCancelCallback)) {
|
|
onCancelCallback.call(editor, editor);
|
|
return;
|
|
}
|
|
editor.resetContent(h);
|
|
};
|
|
|
|
const register$1 = editor => {
|
|
editor.addCommand('mceSave', () => {
|
|
save(editor);
|
|
});
|
|
editor.addCommand('mceCancel', () => {
|
|
cancel(editor);
|
|
});
|
|
};
|
|
|
|
const stateToggle = editor => api => {
|
|
const handler = () => {
|
|
api.setEnabled(!enableWhenDirty(editor) || editor.isDirty());
|
|
};
|
|
handler();
|
|
editor.on('NodeChange dirty', handler);
|
|
return () => editor.off('NodeChange dirty', handler);
|
|
};
|
|
const register = editor => {
|
|
editor.ui.registry.addButton('save', {
|
|
icon: 'save',
|
|
tooltip: 'Save',
|
|
enabled: false,
|
|
onAction: () => editor.execCommand('mceSave'),
|
|
onSetup: stateToggle(editor)
|
|
});
|
|
editor.ui.registry.addButton('cancel', {
|
|
icon: 'cancel',
|
|
tooltip: 'Cancel',
|
|
enabled: false,
|
|
onAction: () => editor.execCommand('mceCancel'),
|
|
onSetup: stateToggle(editor)
|
|
});
|
|
editor.addShortcut('Meta+S', '', 'mceSave');
|
|
};
|
|
|
|
var Plugin = () => {
|
|
global$2.add('save', editor => {
|
|
register$2(editor);
|
|
register(editor);
|
|
register$1(editor);
|
|
});
|
|
};
|
|
|
|
Plugin();
|
|
|
|
})();
|