You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
201 lines
6.1 KiB
JavaScript
201 lines
6.1 KiB
JavaScript
2 months ago
|
/**
|
||
|
* Copyright (c) Tiny Technologies, Inc. All rights reserved.
|
||
|
* Licensed under the LGPL or a commercial license.
|
||
|
* For LGPL see License.txt in the project root for license information.
|
||
|
* For commercial licenses see https://www.tiny.cloud/
|
||
|
*
|
||
|
* Version: 5.9.2 (2021-09-08)
|
||
|
*/
|
||
|
(function () {
|
||
|
'use strict';
|
||
|
|
||
|
var global$1 = tinymce.util.Tools.resolve('tinymce.PluginManager');
|
||
|
|
||
|
var global = tinymce.util.Tools.resolve('tinymce.util.Tools');
|
||
|
|
||
|
var getFontSizeFormats = function (editor) {
|
||
|
return editor.getParam('fontsize_formats');
|
||
|
};
|
||
|
var setFontSizeFormats = function (editor, fontsize_formats) {
|
||
|
editor.settings.fontsize_formats = fontsize_formats;
|
||
|
};
|
||
|
var getFontFormats = function (editor) {
|
||
|
return editor.getParam('font_formats');
|
||
|
};
|
||
|
var setFontFormats = function (editor, font_formats) {
|
||
|
editor.settings.font_formats = font_formats;
|
||
|
};
|
||
|
var getFontSizeStyleValues = function (editor) {
|
||
|
return editor.getParam('font_size_style_values', 'xx-small,x-small,small,medium,large,x-large,xx-large');
|
||
|
};
|
||
|
var setInlineStyles = function (editor, inline_styles) {
|
||
|
editor.settings.inline_styles = inline_styles;
|
||
|
};
|
||
|
|
||
|
var overrideFormats = function (editor) {
|
||
|
var alignElements = 'p,h1,h2,h3,h4,h5,h6,td,th,div,ul,ol,li,table', fontSizes = global.explode(getFontSizeStyleValues(editor)), schema = editor.schema;
|
||
|
editor.formatter.register({
|
||
|
alignleft: {
|
||
|
selector: alignElements,
|
||
|
attributes: { align: 'left' }
|
||
|
},
|
||
|
aligncenter: {
|
||
|
selector: alignElements,
|
||
|
attributes: { align: 'center' }
|
||
|
},
|
||
|
alignright: {
|
||
|
selector: alignElements,
|
||
|
attributes: { align: 'right' }
|
||
|
},
|
||
|
alignjustify: {
|
||
|
selector: alignElements,
|
||
|
attributes: { align: 'justify' }
|
||
|
},
|
||
|
bold: [
|
||
|
{
|
||
|
inline: 'b',
|
||
|
remove: 'all',
|
||
|
preserve_attributes: [
|
||
|
'class',
|
||
|
'style'
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
inline: 'strong',
|
||
|
remove: 'all',
|
||
|
preserve_attributes: [
|
||
|
'class',
|
||
|
'style'
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
inline: 'span',
|
||
|
styles: { fontWeight: 'bold' }
|
||
|
}
|
||
|
],
|
||
|
italic: [
|
||
|
{
|
||
|
inline: 'i',
|
||
|
remove: 'all',
|
||
|
preserve_attributes: [
|
||
|
'class',
|
||
|
'style'
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
inline: 'em',
|
||
|
remove: 'all',
|
||
|
preserve_attributes: [
|
||
|
'class',
|
||
|
'style'
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
inline: 'span',
|
||
|
styles: { fontStyle: 'italic' }
|
||
|
}
|
||
|
],
|
||
|
underline: [
|
||
|
{
|
||
|
inline: 'u',
|
||
|
remove: 'all',
|
||
|
preserve_attributes: [
|
||
|
'class',
|
||
|
'style'
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
inline: 'span',
|
||
|
styles: { textDecoration: 'underline' },
|
||
|
exact: true
|
||
|
}
|
||
|
],
|
||
|
strikethrough: [
|
||
|
{
|
||
|
inline: 'strike',
|
||
|
remove: 'all',
|
||
|
preserve_attributes: [
|
||
|
'class',
|
||
|
'style'
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
inline: 'span',
|
||
|
styles: { textDecoration: 'line-through' },
|
||
|
exact: true
|
||
|
}
|
||
|
],
|
||
|
fontname: {
|
||
|
inline: 'font',
|
||
|
toggle: false,
|
||
|
attributes: { face: '%value' }
|
||
|
},
|
||
|
fontsize: {
|
||
|
inline: 'font',
|
||
|
toggle: false,
|
||
|
attributes: {
|
||
|
size: function (vars) {
|
||
|
return String(global.inArray(fontSizes, vars.value) + 1);
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
forecolor: {
|
||
|
inline: 'font',
|
||
|
attributes: { color: '%value' },
|
||
|
links: true,
|
||
|
remove_similar: true,
|
||
|
clear_child_styles: true
|
||
|
},
|
||
|
hilitecolor: {
|
||
|
inline: 'font',
|
||
|
styles: { backgroundColor: '%value' },
|
||
|
links: true,
|
||
|
remove_similar: true,
|
||
|
clear_child_styles: true
|
||
|
}
|
||
|
});
|
||
|
global.each('b,i,u,strike'.split(','), function (name) {
|
||
|
schema.addValidElements(name + '[*]');
|
||
|
});
|
||
|
if (!schema.getElementRule('font')) {
|
||
|
schema.addValidElements('font[face|size|color|style]');
|
||
|
}
|
||
|
global.each(alignElements.split(','), function (name) {
|
||
|
var rule = schema.getElementRule(name);
|
||
|
if (rule) {
|
||
|
if (!rule.attributes.align) {
|
||
|
rule.attributes.align = {};
|
||
|
rule.attributesOrder.push('align');
|
||
|
}
|
||
|
}
|
||
|
});
|
||
|
};
|
||
|
var overrideSettings = function (editor) {
|
||
|
var defaultFontsizeFormats = '8pt=1 10pt=2 12pt=3 14pt=4 18pt=5 24pt=6 36pt=7';
|
||
|
var defaultFontsFormats = 'Andale Mono=andale mono,monospace;' + 'Arial=arial,helvetica,sans-serif;' + 'Arial Black=arial black,sans-serif;' + 'Book Antiqua=book antiqua,palatino,serif;' + 'Comic Sans MS=comic sans ms,sans-serif;' + 'Courier New=courier new,courier,monospace;' + 'Georgia=georgia,palatino,serif;' + 'Helvetica=helvetica,arial,sans-serif;' + 'Impact=impact,sans-serif;' + 'Symbol=symbol;' + 'Tahoma=tahoma,arial,helvetica,sans-serif;' + 'Terminal=terminal,monaco,monospace;' + 'Times New Roman=times new roman,times,serif;' + 'Trebuchet MS=trebuchet ms,geneva,sans-serif;' + 'Verdana=verdana,geneva,sans-serif;' + 'Webdings=webdings;' + 'Wingdings=wingdings,zapf dingbats';
|
||
|
setInlineStyles(editor, false);
|
||
|
if (!getFontSizeFormats(editor)) {
|
||
|
setFontSizeFormats(editor, defaultFontsizeFormats);
|
||
|
}
|
||
|
if (!getFontFormats(editor)) {
|
||
|
setFontFormats(editor, defaultFontsFormats);
|
||
|
}
|
||
|
};
|
||
|
var setup = function (editor) {
|
||
|
overrideSettings(editor);
|
||
|
editor.on('PreInit', function () {
|
||
|
return overrideFormats(editor);
|
||
|
});
|
||
|
};
|
||
|
|
||
|
function Plugin () {
|
||
|
global$1.add('legacyoutput', function (editor) {
|
||
|
console.warn('The legacyoutput plugin has been deprecated and marked for removal in TinyMCE 6.0');
|
||
|
setup(editor);
|
||
|
});
|
||
|
}
|
||
|
|
||
|
Plugin();
|
||
|
|
||
|
}());
|