From e18fb38beb7bafdea292f3e25036f1bac619e373 Mon Sep 17 00:00:00 2001 From: Antoine Griffard Date: Mon, 14 Dec 2020 13:45:42 +0100 Subject: [PATCH] Trumbowyg plugins (#7985) Fixes #7983 --- .../plugins/highlight/trumbowyg.highlight.js | 93 - .../plugins/highlight/ui/icons/highlight.svg | 51 - .../ui/sass/trumbowyg.highlight.scss | 14 - .../wwwroot/Scripts/trumbowyg-plugins.js | 1506 ++++++++--------- .../wwwroot/Scripts/trumbowyg-plugins.min.js | 2 +- .../wwwroot/Styles/trumbowyg-plugins.css | 71 +- .../wwwroot/Styles/trumbowyg-plugins.min.css | 2 +- 7 files changed, 749 insertions(+), 990 deletions(-) delete mode 100644 src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/highlight/trumbowyg.highlight.js delete mode 100644 src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/highlight/ui/icons/highlight.svg delete mode 100644 src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/highlight/ui/sass/trumbowyg.highlight.scss diff --git a/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/highlight/trumbowyg.highlight.js b/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/highlight/trumbowyg.highlight.js deleted file mode 100644 index 3cb63ba4640..00000000000 --- a/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/highlight/trumbowyg.highlight.js +++ /dev/null @@ -1,93 +0,0 @@ -/* globals Prism */ -(function ($, Prism) { - 'use strict'; - - // My plugin default options - var defaultOptions = {}; - - function highlightIt(text, language) { - return [ - '
',
-            '' + Prism.highlight(text, Prism.languages[language]) + '',
-            '
', - ].join(''); - } - - // If my plugin is a button - function buildButtonDef(trumbowyg) { - return { - fn: function () { - var $modal = trumbowyg.openModal('Code', [ - '
', - ' ', - '
', - '
', - ' ', - '
', - ].join('\n')), - $language = $modal.find('.language'), - $code = $modal.find('.code'); - - // Listen clicks on modal box buttons - $modal.on('tbwconfirm', function () { - trumbowyg.restoreRange(); - trumbowyg.execCmd('insertHTML', highlightIt($code.val(), $language.val())); - trumbowyg.execCmd('insertHTML', '


'); - - trumbowyg.closeModal(); - }); - - $modal.on('tbwcancel', function () { - trumbowyg.closeModal(); - }); - } - }; - } - - $.extend(true, $.trumbowyg, { - // Add some translations - langs: { - // jshint camelcase:false - en: { - highlight: 'Code syntax highlight' - }, - hu: { - highlight: 'Kód kiemelés' - }, - ko: { - highlight: '코드 문법 하이라이트' - }, - pt_br: { - highlight: 'Realçar sintaxe de código' - }, - // jshint camelcase:true - }, - // Add our plugin to Trumbowyg registered plugins - plugins: { - highlight: { - init: function (trumbowyg) { - // Fill current Trumbowyg instance with my plugin default options - trumbowyg.o.plugins.highlight = $.extend(true, {}, - defaultOptions, - trumbowyg.o.plugins.highlight || {} - ); - - // If my plugin is a button - trumbowyg.addBtnDef('highlight', buildButtonDef(trumbowyg)); - } - } - } - }); -})(jQuery, Prism); diff --git a/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/highlight/ui/icons/highlight.svg b/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/highlight/ui/icons/highlight.svg deleted file mode 100644 index 15520a54ce4..00000000000 --- a/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/highlight/ui/icons/highlight.svg +++ /dev/null @@ -1,51 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/highlight/ui/sass/trumbowyg.highlight.scss b/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/highlight/ui/sass/trumbowyg.highlight.scss deleted file mode 100644 index f43c27894fa..00000000000 --- a/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/highlight/ui/sass/trumbowyg.highlight.scss +++ /dev/null @@ -1,14 +0,0 @@ -.trumbowyg-highlight-form-group { - margin: 15px 10px; - - .trumbowyg-highlight-form-control { - width: 100%; - border: 1px solid #DEDEDE; - font-size: 14px; - padding: 7px; - - &.code { - height: 200px; - } - } -} diff --git a/src/OrchardCore.Modules/OrchardCore.Resources/wwwroot/Scripts/trumbowyg-plugins.js b/src/OrchardCore.Modules/OrchardCore.Resources/wwwroot/Scripts/trumbowyg-plugins.js index 54554a24c0d..15187e505bc 100644 --- a/src/OrchardCore.Modules/OrchardCore.Resources/wwwroot/Scripts/trumbowyg-plugins.js +++ b/src/OrchardCore.Modules/OrchardCore.Resources/wwwroot/Scripts/trumbowyg-plugins.js @@ -203,6 +203,133 @@ } }); })(jQuery); +/* =========================================================== + * trumbowyg.cleanpaste.js v1.0 + * Font Clean paste plugin for Trumbowyg + * http://alex-d.github.com/Trumbowyg + * =========================================================== + * Authors : Eric Radin + * Todd Graham (slackwalker) + * + * This plugin will perform a "cleaning" on any paste, in particular + * it will clean pasted content of microsoft word document tags and classes. + */ +(function ($) { + 'use strict'; + + function checkValidTags(snippet) { + var theString = snippet; // Replace uppercase element names with lowercase + + theString = theString.replace(/<[^> ]*/g, function (match) { + return match.toLowerCase(); + }); // Replace uppercase attribute names with lowercase + + theString = theString.replace(/<[^>]*>/g, function (match) { + match = match.replace(/ [^=]+=/g, function (match2) { + return match2.toLowerCase(); + }); + return match; + }); // Put quotes around unquoted attributes + + theString = theString.replace(/<[^>]*>/g, function (match) { + match = match.replace(/( [^=]+=)([^"][^ >]*)/g, '$1\"$2\"'); + return match; + }); + return theString; + } + + function cleanIt(html) { + // first make sure all tags and attributes are made valid + html = checkValidTags(html); // Replace opening bold tags with strong + + html = html.replace(/)/g, ')/g, ')/g, ')/g, '\s*/g, ''); // strip out   -cgCraft + + html = html.replace(/ /gi, ' '); // strip out extra spaces -cgCraft + + html = html.replace(/ <\//gi, ']*>/g, function (match) { + match = match.replace(/ ([^=]+)="[^"]*"/g, function (match2, attributeName) { + if (['alt', 'href', 'src', 'title'].indexOf(attributeName) !== -1) { + return match2; + } + + return ''; + }); + return match; + }); // Final clean out for MS Word crud + + html = html.replace(/<\?xml[^>]*>/g, ''); + html = html.replace(/<[^ >]+:[^>]*>/g, ''); + html = html.replace(/<\/[^ >]+:[^>]*>/g, ''); // remove unwanted tags + + html = html.replace(/<(div|span|style|meta|link).*?>/gi, ''); + return html; + } // clean editor + // this will clean the inserted contents + // it does a compare, before and after paste to determine the + // pasted contents + + + $.extend(true, $.trumbowyg, { + plugins: { + cleanPaste: { + init: function init(trumbowyg) { + trumbowyg.pasteHandlers.push(function (pasteEvent) { + setTimeout(function () { + try { + trumbowyg.saveRange(); + var clipboardData = (pasteEvent.originalEvent || pasteEvent).clipboardData, + pastedData = clipboardData.getData('Text'), + node = trumbowyg.doc.getSelection().focusNode, + range = trumbowyg.doc.createRange(), + cleanedPaste = cleanIt(pastedData.trim()), + newNode = $(cleanedPaste)[0] || trumbowyg.doc.createTextNode(cleanedPaste); + + if (trumbowyg.$ed.html() === '') { + // simply append if there is no content in editor + trumbowyg.$ed[0].appendChild(newNode); + } else { + // insert pasted content behind last focused node + range.setStartAfter(node); + range.setEndAfter(node); + trumbowyg.doc.getSelection().removeAllRanges(); + trumbowyg.doc.getSelection().addRange(range); + trumbowyg.range.insertNode(newNode); + } // now set cursor right after pasted content + + + range = trumbowyg.doc.createRange(); + range.setStartAfter(newNode); + range.setEndAfter(newNode); + trumbowyg.doc.getSelection().removeAllRanges(); + trumbowyg.doc.getSelection().addRange(range); // prevent defaults + + pasteEvent.stopPropagation(); + pasteEvent.preventDefault(); // save new node as focused node + + trumbowyg.saveRange(); + trumbowyg.syncCode(); + } catch (c) {} + }, 0); + }); + } + } + } + }); +})(jQuery); /* =========================================================== * trumbowyg.colors.js v1.2 * Colors picker plugin for Trumbowyg @@ -443,133 +570,6 @@ return dropdown; } })(jQuery); -/* =========================================================== - * trumbowyg.cleanpaste.js v1.0 - * Font Clean paste plugin for Trumbowyg - * http://alex-d.github.com/Trumbowyg - * =========================================================== - * Authors : Eric Radin - * Todd Graham (slackwalker) - * - * This plugin will perform a "cleaning" on any paste, in particular - * it will clean pasted content of microsoft word document tags and classes. - */ -(function ($) { - 'use strict'; - - function checkValidTags(snippet) { - var theString = snippet; // Replace uppercase element names with lowercase - - theString = theString.replace(/<[^> ]*/g, function (match) { - return match.toLowerCase(); - }); // Replace uppercase attribute names with lowercase - - theString = theString.replace(/<[^>]*>/g, function (match) { - match = match.replace(/ [^=]+=/g, function (match2) { - return match2.toLowerCase(); - }); - return match; - }); // Put quotes around unquoted attributes - - theString = theString.replace(/<[^>]*>/g, function (match) { - match = match.replace(/( [^=]+=)([^"][^ >]*)/g, '$1\"$2\"'); - return match; - }); - return theString; - } - - function cleanIt(html) { - // first make sure all tags and attributes are made valid - html = checkValidTags(html); // Replace opening bold tags with strong - - html = html.replace(/)/g, ')/g, ')/g, ')/g, '\s*/g, ''); // strip out   -cgCraft - - html = html.replace(/ /gi, ' '); // strip out extra spaces -cgCraft - - html = html.replace(/ <\//gi, ']*>/g, function (match) { - match = match.replace(/ ([^=]+)="[^"]*"/g, function (match2, attributeName) { - if (['alt', 'href', 'src', 'title'].indexOf(attributeName) !== -1) { - return match2; - } - - return ''; - }); - return match; - }); // Final clean out for MS Word crud - - html = html.replace(/<\?xml[^>]*>/g, ''); - html = html.replace(/<[^ >]+:[^>]*>/g, ''); - html = html.replace(/<\/[^ >]+:[^>]*>/g, ''); // remove unwanted tags - - html = html.replace(/<(div|span|style|meta|link).*?>/gi, ''); - return html; - } // clean editor - // this will clean the inserted contents - // it does a compare, before and after paste to determine the - // pasted contents - - - $.extend(true, $.trumbowyg, { - plugins: { - cleanPaste: { - init: function init(trumbowyg) { - trumbowyg.pasteHandlers.push(function (pasteEvent) { - setTimeout(function () { - try { - trumbowyg.saveRange(); - var clipboardData = (pasteEvent.originalEvent || pasteEvent).clipboardData, - pastedData = clipboardData.getData('Text'), - node = trumbowyg.doc.getSelection().focusNode, - range = trumbowyg.doc.createRange(), - cleanedPaste = cleanIt(pastedData.trim()), - newNode = $(cleanedPaste)[0] || trumbowyg.doc.createTextNode(cleanedPaste); - - if (trumbowyg.$ed.html() === '') { - // simply append if there is no content in editor - trumbowyg.$ed[0].appendChild(newNode); - } else { - // insert pasted content behind last focused node - range.setStartAfter(node); - range.setEndAfter(node); - trumbowyg.doc.getSelection().removeAllRanges(); - trumbowyg.doc.getSelection().addRange(range); - trumbowyg.range.insertNode(newNode); - } // now set cursor right after pasted content - - - range = trumbowyg.doc.createRange(); - range.setStartAfter(newNode); - range.setEndAfter(newNode); - trumbowyg.doc.getSelection().removeAllRanges(); - trumbowyg.doc.getSelection().addRange(range); // prevent defaults - - pasteEvent.stopPropagation(); - pasteEvent.preventDefault(); // save new node as focused node - - trumbowyg.saveRange(); - trumbowyg.syncCode(); - } catch (c) {} - }, 0); - }); - } - } - } - }); -})(jQuery); /* =========================================================== * trumbowyg.emoji.js v0.1 * Emoji picker plugin for Trumbowyg @@ -1524,198 +1524,166 @@ } }); })(jQuery); -/* globals Prism */ -(function ($, Prism) { - 'use strict'; // My plugin default options - - var defaultOptions = {}; - - function highlightIt(text, language) { - return ['
', '' + Prism.highlight(text, Prism.languages[language]) + '', '
'].join(''); - } // If my plugin is a button - - - function buildButtonDef(trumbowyg) { - return { - fn: function fn() { - var $modal = trumbowyg.openModal('Code', ['
', ' ', '
', '
', ' ', '
'].join('\n')), - $language = $modal.find('.language'), - $code = $modal.find('.code'); // Listen clicks on modal box buttons - - $modal.on('tbwconfirm', function () { - trumbowyg.restoreRange(); - trumbowyg.execCmd('insertHTML', highlightIt($code.val(), $language.val())); - trumbowyg.execCmd('insertHTML', '


'); - trumbowyg.closeModal(); - }); - $modal.on('tbwcancel', function () { - trumbowyg.closeModal(); - }); - } - }; - } +(function ($) { + 'use strict'; $.extend(true, $.trumbowyg, { - // Add some translations langs: { // jshint camelcase:false en: { - highlight: 'Code syntax highlight' - }, - hu: { - highlight: 'Kód kiemelés' - }, - ko: { - highlight: '코드 문법 하이라이트' - }, - pt_br: { - highlight: 'Realçar sintaxe de código' - } // jshint camelcase:true - - }, - // Add our plugin to Trumbowyg registered plugins - plugins: { - highlight: { - init: function init(trumbowyg) { - // Fill current Trumbowyg instance with my plugin default options - trumbowyg.o.plugins.highlight = $.extend(true, {}, defaultOptions, trumbowyg.o.plugins.highlight || {}); // If my plugin is a button - - trumbowyg.addBtnDef('highlight', buildButtonDef(trumbowyg)); + lineheight: 'Line height', + lineheights: { + '0.9': 'Small', + 'normal': 'Regular', + '1.5': 'Large', + '2.0': 'Extra large' } - } - } - }); -})(jQuery, Prism); -/* =========================================================== - * trumbowyg.mathMl.js v1.0 - * MathML plugin for Trumbowyg - * http://alex-d.github.com/Trumbowyg - * =========================================================== - * Author : loclamor - */ - -/* globals MathJax */ -(function ($) { - 'use strict'; - - $.extend(true, $.trumbowyg, { - langs: { - // jshint camelcase:false - en: { - mathml: 'Insert Formulas', - formulas: 'Formulas', - inline: 'Inline' }, da: { - mathml: 'Indsæt formler', - formulas: 'Formler', - inline: 'Inline' + lineheight: 'Linjehøjde', + lineheights: { + '0.9': 'Lille', + 'normal': 'Normal', + '1.5': 'Stor', + '2.0': 'Ekstra stor' + } }, fr: { - mathml: 'Inserer une formule', - formulas: 'Formule', - inline: 'En ligne' + lineheight: 'Hauteur de ligne', + lineheights: { + '0.9': 'Petite', + 'normal': 'Normale', + '1.5': 'Grande', + '2.0': 'Très grande' + } }, hu: { - mathml: 'Formulák beszúrás', - formulas: 'Formulák', - inline: 'Inline' + lineheight: 'Line height', + lineheights: { + '0.9': 'Small', + 'normal': 'Regular', + '1.5': 'Large', + '2.0': 'Extra large' + } + }, + it: { + lineheight: 'Altezza linea', + lineheights: { + '0.9': 'Bassa', + 'normal': 'Normale', + '1.5': 'Alta', + '2.0': 'Molto alta' + } }, ko: { - mathml: '수식 넣기', - formulas: '수식', - inline: '글 안에 넣기' + lineheight: '줄 간격', + lineheights: { + '0.9': '좁게', + 'normal': '보통', + '1.5': '넓게', + '2.0': '아주 넓게' + } + }, + nl: { + lineheight: 'Regelhoogte', + lineheights: { + '0.9': 'Klein', + 'normal': 'Normaal', + '1.5': 'Groot', + '2.0': 'Extra groot' + } }, pt_br: { - mathml: 'Inserir fórmulas', - formulas: 'Fórmulas', - inline: 'Em linha' + lineheight: 'Altura de linha', + lineheights: { + '0.9': 'Pequena', + 'normal': 'Regular', + '1.5': 'Grande', + '2.0': 'Extra grande' + } }, tr: { - mathml: 'Formül Ekle', - formulas: 'Formüller', - inline: 'Satır içi' + lineheight: 'Satır yüksekliği', + lineheights: { + '0.9': 'Küçük', + 'normal': 'Normal', + '1.5': 'Büyük', + '2.0': 'Çok Büyük' + } }, zh_tw: { - mathml: '插入方程式', - formulas: '方程式', - inline: '內嵌' + lineheight: '文字間距', + lineheights: { + '0.9': '小', + 'normal': '正常', + '1.5': '大', + '2.0': '特大' + } } - }, - // jshint camelcase:true + } + }); // jshint camelcase:true + + var defaultOptions = { + sizeList: ['0.9', 'normal', '1.5', '2.0'] + }; // Add dropdown with font sizes + + $.extend(true, $.trumbowyg, { plugins: { - mathml: { + lineheight: { init: function init(trumbowyg) { - var btnDef = { - fn: function fn() { - trumbowyg.saveRange(); - var mathMLoptions = { - formulas: { - label: trumbowyg.lang.formulas, - required: true, - value: '' - }, - inline: { - label: trumbowyg.lang.inline, - attributes: { - checked: true - }, - type: 'checkbox', - required: false - } - }; - - var mathmlCallback = function mathmlCallback(v) { - var delimiter = v.inline ? '$' : '$$'; + trumbowyg.o.plugins.lineheight = $.extend({}, defaultOptions, trumbowyg.o.plugins.lineheight || {}); + trumbowyg.addBtnDef('lineheight', { + dropdown: buildDropdown(trumbowyg) + }); + } + } + } + }); // Build the dropdown - if (trumbowyg.currentMathNode) { - $(trumbowyg.currentMathNode).html(delimiter + ' ' + v.formulas + ' ' + delimiter).attr('formulas', v.formulas).attr('inline', v.inline ? 'true' : 'false'); - } else { - var html = '' + delimiter + ' ' + v.formulas + ' ' + delimiter + ''; - var node = $(html)[0]; + function buildDropdown(trumbowyg) { + var dropdown = []; + $.each(trumbowyg.o.plugins.lineheight.sizeList, function (index, size) { + trumbowyg.addBtnDef('lineheight_' + size, { + text: trumbowyg.lang.lineheights[size] || size, + hasIcon: false, + fn: function fn() { + trumbowyg.saveRange(); + var text = trumbowyg.getRangeText(); - node.onclick = function () { - trumbowyg.currentMathNode = this; - mathMLoptions.formulas.value = $(this).attr('formulas'); + if (text.replace(/\s/g, '') !== '') { + try { + var parent = getSelectionParentElement(); + $(parent).css('lineHeight', size); + } catch (e) {} + } + } + }); + dropdown.push('lineheight_' + size); + }); + return dropdown; + } // Get the selection's parent - if ($(this).attr('inline') === 'true') { - mathMLoptions.inline.attributes.checked = true; - } else { - delete mathMLoptions.inline.attributes.checked; - } - trumbowyg.openModalInsert(trumbowyg.lang.mathml, mathMLoptions, mathmlCallback); - }; + function getSelectionParentElement() { + var parentEl = null, + selection; - trumbowyg.range.deleteContents(); - trumbowyg.range.insertNode(node); - } + if (window.getSelection) { + selection = window.getSelection(); - trumbowyg.currentMathNode = false; - MathJax.Hub.Queue(['Typeset', MathJax.Hub]); - return true; - }; + if (selection.rangeCount) { + parentEl = selection.getRangeAt(0).commonAncestorContainer; - mathMLoptions.formulas.value = trumbowyg.getRangeText(); - mathMLoptions.inline.attributes.checked = true; - trumbowyg.openModalInsert(trumbowyg.lang.mathml, mathMLoptions, mathmlCallback); - } - }; - trumbowyg.addBtnDef('mathml', btnDef); + if (parentEl.nodeType !== 1) { + parentEl = parentEl.parentNode; } } + } else if ((selection = document.selection) && selection.type !== 'Control') { + parentEl = selection.createRange().parentElement(); } - }); + + return parentEl; + } })(jQuery); /* =========================================================== * trumbowyg.mention.js v0.1 @@ -1829,174 +1797,13 @@ return '@' + item.login + ' '; } })(jQuery); -(function ($) { - 'use strict'; - - $.extend(true, $.trumbowyg, { - langs: { - // jshint camelcase:false - en: { - lineheight: 'Line height', - lineheights: { - '0.9': 'Small', - 'normal': 'Regular', - '1.5': 'Large', - '2.0': 'Extra large' - } - }, - da: { - lineheight: 'Linjehøjde', - lineheights: { - '0.9': 'Lille', - 'normal': 'Normal', - '1.5': 'Stor', - '2.0': 'Ekstra stor' - } - }, - fr: { - lineheight: 'Hauteur de ligne', - lineheights: { - '0.9': 'Petite', - 'normal': 'Normale', - '1.5': 'Grande', - '2.0': 'Très grande' - } - }, - hu: { - lineheight: 'Line height', - lineheights: { - '0.9': 'Small', - 'normal': 'Regular', - '1.5': 'Large', - '2.0': 'Extra large' - } - }, - it: { - lineheight: 'Altezza linea', - lineheights: { - '0.9': 'Bassa', - 'normal': 'Normale', - '1.5': 'Alta', - '2.0': 'Molto alta' - } - }, - ko: { - lineheight: '줄 간격', - lineheights: { - '0.9': '좁게', - 'normal': '보통', - '1.5': '넓게', - '2.0': '아주 넓게' - } - }, - nl: { - lineheight: 'Regelhoogte', - lineheights: { - '0.9': 'Klein', - 'normal': 'Normaal', - '1.5': 'Groot', - '2.0': 'Extra groot' - } - }, - pt_br: { - lineheight: 'Altura de linha', - lineheights: { - '0.9': 'Pequena', - 'normal': 'Regular', - '1.5': 'Grande', - '2.0': 'Extra grande' - } - }, - tr: { - lineheight: 'Satır yüksekliği', - lineheights: { - '0.9': 'Küçük', - 'normal': 'Normal', - '1.5': 'Büyük', - '2.0': 'Çok Büyük' - } - }, - zh_tw: { - lineheight: '文字間距', - lineheights: { - '0.9': '小', - 'normal': '正常', - '1.5': '大', - '2.0': '特大' - } - } - } - }); // jshint camelcase:true - - var defaultOptions = { - sizeList: ['0.9', 'normal', '1.5', '2.0'] - }; // Add dropdown with font sizes - - $.extend(true, $.trumbowyg, { - plugins: { - lineheight: { - init: function init(trumbowyg) { - trumbowyg.o.plugins.lineheight = $.extend({}, defaultOptions, trumbowyg.o.plugins.lineheight || {}); - trumbowyg.addBtnDef('lineheight', { - dropdown: buildDropdown(trumbowyg) - }); - } - } - } - }); // Build the dropdown - - function buildDropdown(trumbowyg) { - var dropdown = []; - $.each(trumbowyg.o.plugins.lineheight.sizeList, function (index, size) { - trumbowyg.addBtnDef('lineheight_' + size, { - text: trumbowyg.lang.lineheights[size] || size, - hasIcon: false, - fn: function fn() { - trumbowyg.saveRange(); - var text = trumbowyg.getRangeText(); - - if (text.replace(/\s/g, '') !== '') { - try { - var parent = getSelectionParentElement(); - $(parent).css('lineHeight', size); - } catch (e) {} - } - } - }); - dropdown.push('lineheight_' + size); - }); - return dropdown; - } // Get the selection's parent - - - function getSelectionParentElement() { - var parentEl = null, - selection; - - if (window.getSelection) { - selection = window.getSelection(); - - if (selection.rangeCount) { - parentEl = selection.getRangeAt(0).commonAncestorContainer; - - if (parentEl.nodeType !== 1) { - parentEl = parentEl.parentNode; - } - } - } else if ((selection = document.selection) && selection.type !== 'Control') { - parentEl = selection.createRange().parentElement(); - } - - return parentEl; - } -})(jQuery); -/* =========================================================== - * trumbowyg.noembed.js v1.0 - * noEmbed plugin for Trumbowyg - * http://alex-d.github.com/Trumbowyg - * =========================================================== - * Author : Jake Johns (jakejohns) - */ +/* =========================================================== + * trumbowyg.noembed.js v1.0 + * noEmbed plugin for Trumbowyg + * http://alex-d.github.com/Trumbowyg + * =========================================================== + * Author : Jake Johns (jakejohns) + */ (function ($) { 'use strict'; @@ -2097,6 +1904,127 @@ } }); })(jQuery); +/* =========================================================== + * trumbowyg.mathMl.js v1.0 + * MathML plugin for Trumbowyg + * http://alex-d.github.com/Trumbowyg + * =========================================================== + * Author : loclamor + */ + +/* globals MathJax */ +(function ($) { + 'use strict'; + + $.extend(true, $.trumbowyg, { + langs: { + // jshint camelcase:false + en: { + mathml: 'Insert Formulas', + formulas: 'Formulas', + inline: 'Inline' + }, + da: { + mathml: 'Indsæt formler', + formulas: 'Formler', + inline: 'Inline' + }, + fr: { + mathml: 'Inserer une formule', + formulas: 'Formule', + inline: 'En ligne' + }, + hu: { + mathml: 'Formulák beszúrás', + formulas: 'Formulák', + inline: 'Inline' + }, + ko: { + mathml: '수식 넣기', + formulas: '수식', + inline: '글 안에 넣기' + }, + pt_br: { + mathml: 'Inserir fórmulas', + formulas: 'Fórmulas', + inline: 'Em linha' + }, + tr: { + mathml: 'Formül Ekle', + formulas: 'Formüller', + inline: 'Satır içi' + }, + zh_tw: { + mathml: '插入方程式', + formulas: '方程式', + inline: '內嵌' + } + }, + // jshint camelcase:true + plugins: { + mathml: { + init: function init(trumbowyg) { + var btnDef = { + fn: function fn() { + trumbowyg.saveRange(); + var mathMLoptions = { + formulas: { + label: trumbowyg.lang.formulas, + required: true, + value: '' + }, + inline: { + label: trumbowyg.lang.inline, + attributes: { + checked: true + }, + type: 'checkbox', + required: false + } + }; + + var mathmlCallback = function mathmlCallback(v) { + var delimiter = v.inline ? '$' : '$$'; + + if (trumbowyg.currentMathNode) { + $(trumbowyg.currentMathNode).html(delimiter + ' ' + v.formulas + ' ' + delimiter).attr('formulas', v.formulas).attr('inline', v.inline ? 'true' : 'false'); + } else { + var html = '' + delimiter + ' ' + v.formulas + ' ' + delimiter + ''; + var node = $(html)[0]; + + node.onclick = function () { + trumbowyg.currentMathNode = this; + mathMLoptions.formulas.value = $(this).attr('formulas'); + + if ($(this).attr('inline') === 'true') { + mathMLoptions.inline.attributes.checked = true; + } else { + delete mathMLoptions.inline.attributes.checked; + } + + trumbowyg.openModalInsert(trumbowyg.lang.mathml, mathMLoptions, mathmlCallback); + }; + + trumbowyg.range.deleteContents(); + trumbowyg.range.insertNode(node); + } + + trumbowyg.currentMathNode = false; + MathJax.Hub.Queue(['Typeset', MathJax.Hub]); + return true; + }; + + mathMLoptions.formulas.value = trumbowyg.getRangeText(); + mathMLoptions.inline.attributes.checked = true; + trumbowyg.openModalInsert(trumbowyg.lang.mathml, mathMLoptions, mathmlCallback); + } + }; + trumbowyg.addBtnDef('mathml', btnDef); + } + } + } + }); +})(jQuery); /* =========================================================== * trumbowyg.pasteembed.js v1.0 * Url paste to iframe with noembed. Plugin for Trumbowyg @@ -2174,216 +2102,69 @@ text: pastedData }).prop('outerHTML'); } - - if (content.length > 0) { - index = 0; - trumbowyg.execCmd('insertHTML', content); - } - } - }); - } - } catch (c) {} - }); - } - } - } - }); -})(jQuery); -/* =========================================================== - * trumbowyg.pasteimage.js v1.0 - * Basic base64 paste plugin for Trumbowyg - * http://alex-d.github.com/Trumbowyg - * =========================================================== - * Author : Alexandre Demode (Alex-D) - * Twitter : @AlexandreDemode - * Website : alex-d.fr - */ -(function ($) { - 'use strict'; - - $.extend(true, $.trumbowyg, { - plugins: { - pasteImage: { - init: function init(trumbowyg) { - trumbowyg.pasteHandlers.push(function (pasteEvent) { - try { - var items = (pasteEvent.originalEvent || pasteEvent).clipboardData.items, - mustPreventDefault = false, - reader; - - for (var i = items.length - 1; i >= 0; i -= 1) { - if (items[i].type.match(/^image\//)) { - reader = new FileReader(); - /* jshint -W083 */ - - reader.onloadend = function (event) { - trumbowyg.execCmd('insertImage', event.target.result, false, true); - }; - /* jshint +W083 */ - - - reader.readAsDataURL(items[i].getAsFile()); - mustPreventDefault = true; - } - } - - if (mustPreventDefault) { - pasteEvent.stopPropagation(); - pasteEvent.preventDefault(); - } - } catch (c) {} - }); - } - } - } - }); -})(jQuery); -/* =========================================================== - * trumbowyg.preformatted.js v1.0 - * Preformatted plugin for Trumbowyg - * http://alex-d.github.com/Trumbowyg - * =========================================================== - * Author : Casella Edoardo (Civile) - */ -(function ($) { - 'use strict'; - - $.extend(true, $.trumbowyg, { - langs: { - // jshint camelcase:false - en: { - preformatted: 'Code sample
'
-      },
-      da: {
-        preformatted: 'Præformateret 
'
-      },
-      fr: {
-        preformatted: 'Exemple de code 
'
-      },
-      hu: {
-        preformatted: 'Kód minta 
'
-      },
-      it: {
-        preformatted: 'Codice 
'
-      },
-      ja: {
-        preformatted: 'コードサンプル 
'
-      },
-      ko: {
-        preformatted: '코드 예제 
'
-      },
-      pt_br: {
-        preformatted: 'Exemple de código 
'
-      },
-      ru: {
-        preformatted: 'Пример кода 
'
-      },
-      tr: {
-        preformatted: 'Kod örneği 
'
-      },
-      zh_cn: {
-        preformatted: '代码示例 
'
-      },
-      zh_tw: {
-        preformatted: '代碼範例 
'
-      }
-    },
-    // jshint camelcase:true
-    plugins: {
-      preformatted: {
-        init: function init(trumbowyg) {
-          var btnDef = {
-            fn: function fn() {
-              trumbowyg.saveRange();
-              var text = trumbowyg.getRangeText();
-
-              if (text.replace(/\s/g, '') !== '') {
-                try {
-                  var curtag = getSelectionParentElement().tagName.toLowerCase();
-
-                  if (curtag === 'code' || curtag === 'pre') {
-                    return unwrapCode();
-                  } else {
-                    trumbowyg.execCmd('insertHTML', '
' + strip(text) + '
'); - } - } catch (e) {} - } - }, - tag: 'pre' - }; - trumbowyg.addBtnDef('preformatted', btnDef); - } - } - } - }); - /* - * GetSelectionParentElement - */ - - function getSelectionParentElement() { - var parentEl = null, - selection; - - if (window.getSelection) { - selection = window.getSelection(); - - if (selection.rangeCount) { - parentEl = selection.getRangeAt(0).commonAncestorContainer; - - if (parentEl.nodeType !== 1) { - parentEl = parentEl.parentNode; + + if (content.length > 0) { + index = 0; + trumbowyg.execCmd('insertHTML', content); + } + } + }); + } + } catch (c) {} + }); } } - } else if ((selection = document.selection) && selection.type !== 'Control') { - parentEl = selection.createRange().parentElement(); } + }); +})(jQuery); +/* =========================================================== + * trumbowyg.pasteimage.js v1.0 + * Basic base64 paste plugin for Trumbowyg + * http://alex-d.github.com/Trumbowyg + * =========================================================== + * Author : Alexandre Demode (Alex-D) + * Twitter : @AlexandreDemode + * Website : alex-d.fr + */ +(function ($) { + 'use strict'; - return parentEl; - } - /* - * Strip - * returns a text without HTML tags - */ - + $.extend(true, $.trumbowyg, { + plugins: { + pasteImage: { + init: function init(trumbowyg) { + trumbowyg.pasteHandlers.push(function (pasteEvent) { + try { + var items = (pasteEvent.originalEvent || pasteEvent).clipboardData.items, + mustPreventDefault = false, + reader; - function strip(html) { - var tmp = document.createElement('DIV'); - tmp.innerHTML = html; - return tmp.textContent || tmp.innerText || ''; - } - /* - * UnwrapCode - * ADD/FIX: to improve, works but can be better - * "paranoic" solution - */ + for (var i = items.length - 1; i >= 0; i -= 1) { + if (items[i].type.match(/^image\//)) { + reader = new FileReader(); + /* jshint -W083 */ + reader.onloadend = function (event) { + trumbowyg.execCmd('insertImage', event.target.result, false, true); + }; + /* jshint +W083 */ - function unwrapCode() { - var container = null; - if (document.selection) { - //for IE - container = document.selection.createRange().parentElement(); - } else { - var select = window.getSelection(); + reader.readAsDataURL(items[i].getAsFile()); + mustPreventDefault = true; + } + } - if (select.rangeCount > 0) { - container = select.getRangeAt(0).startContainer.parentNode; + if (mustPreventDefault) { + pasteEvent.stopPropagation(); + pasteEvent.preventDefault(); + } + } catch (c) {} + }); + } } - } //'paranoic' unwrap - - - var ispre = $(container).contents().closest('pre').length; - var iscode = $(container).contents().closest('code').length; - - if (ispre && iscode) { - $(container).contents().unwrap('code').unwrap('pre'); - } else if (ispre) { - $(container).contents().unwrap('pre'); - } else if (iscode) { - $(container).contents().unwrap('code'); } - } + }); })(jQuery); function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } @@ -2620,73 +2401,220 @@ function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "functi onDrag: function onDrag(ev, $el, newWidth, newHeight) { var opt = trumbowyg.o.plugins.resizimg; - if (newHeight < opt.minSize) { - newHeight = opt.minSize; - } + if (newHeight < opt.minSize) { + newHeight = opt.minSize; + } + + newHeight -= newHeight % opt.step; + $el.height(newHeight); + return false; + }, + onDragEnd: function onDragEnd() { + // resize update canvas information + resizeWithCanvas.refresh(); + trumbowyg.syncCode(); + } + } + }); + + function initResizable() { + trumbowyg.$ed.find('img').off('click').on('click', function (e) { + // if I'm already do a resize, reset it + if (resizeWithCanvas.isActive()) { + resizeWithCanvas.reset(); + } // initialize resize of image + + + resizeWithCanvas.setup(this, trumbowyg.o.plugins.resizimg.resizable); + preventDefault(e); + }); + } + + trumbowyg.$c.on('tbwinit', function () { + initResizable(); // disable resize when click on other items + + trumbowyg.$ed.on('click', function (e) { + // check if I've clicked out of canvas or image to reset it + if ($(e.target).is('img') || e.target.id === resizeWithCanvas.canvasId()) { + return; + } + + preventDefault(e); + resizeWithCanvas.reset(); // save changes + + trumbowyg.$c.trigger('tbwchange'); + }); + trumbowyg.$ed.on('scroll', function () { + resizeWithCanvas.reCalcOffset(); + }); + }); + trumbowyg.$c.on('tbwfocus tbwchange', initResizable); + trumbowyg.$c.on('tbwresize', function () { + resizeWithCanvas.reCalcOffset(); + }); // Destroy + + trumbowyg.$c.on('tbwblur', function () { + // if I have already focused the canvas avoid destroy + if (resizeWithCanvas.isFocusedNow()) { + resizeWithCanvas.blurNow(); + } else { + destroyResizable(trumbowyg); + } + }); + }, + destroy: function destroy(trumbowyg) { + destroyResizable(trumbowyg); + } + } + } + }); +})(jQuery); +/* =========================================================== + * trumbowyg.preformatted.js v1.0 + * Preformatted plugin for Trumbowyg + * http://alex-d.github.com/Trumbowyg + * =========================================================== + * Author : Casella Edoardo (Civile) + */ +(function ($) { + 'use strict'; + + $.extend(true, $.trumbowyg, { + langs: { + // jshint camelcase:false + en: { + preformatted: 'Code sample
'
+      },
+      da: {
+        preformatted: 'Præformateret 
'
+      },
+      fr: {
+        preformatted: 'Exemple de code 
'
+      },
+      hu: {
+        preformatted: 'Kód minta 
'
+      },
+      it: {
+        preformatted: 'Codice 
'
+      },
+      ja: {
+        preformatted: 'コードサンプル 
'
+      },
+      ko: {
+        preformatted: '코드 예제 
'
+      },
+      pt_br: {
+        preformatted: 'Exemple de código 
'
+      },
+      ru: {
+        preformatted: 'Пример кода 
'
+      },
+      tr: {
+        preformatted: 'Kod örneği 
'
+      },
+      zh_cn: {
+        preformatted: '代码示例 
'
+      },
+      zh_tw: {
+        preformatted: '代碼範例 
'
+      }
+    },
+    // jshint camelcase:true
+    plugins: {
+      preformatted: {
+        init: function init(trumbowyg) {
+          var btnDef = {
+            fn: function fn() {
+              trumbowyg.saveRange();
+              var text = trumbowyg.getRangeText();
+
+              if (text.replace(/\s/g, '') !== '') {
+                try {
+                  var curtag = getSelectionParentElement().tagName.toLowerCase();
+
+                  if (curtag === 'code' || curtag === 'pre') {
+                    return unwrapCode();
+                  } else {
+                    trumbowyg.execCmd('insertHTML', '
' + strip(text) + '
'); + } + } catch (e) {} + } + }, + tag: 'pre' + }; + trumbowyg.addBtnDef('preformatted', btnDef); + } + } + } + }); + /* + * GetSelectionParentElement + */ + + function getSelectionParentElement() { + var parentEl = null, + selection; + + if (window.getSelection) { + selection = window.getSelection(); + + if (selection.rangeCount) { + parentEl = selection.getRangeAt(0).commonAncestorContainer; + + if (parentEl.nodeType !== 1) { + parentEl = parentEl.parentNode; + } + } + } else if ((selection = document.selection) && selection.type !== 'Control') { + parentEl = selection.createRange().parentElement(); + } + + return parentEl; + } + /* + * Strip + * returns a text without HTML tags + */ - newHeight -= newHeight % opt.step; - $el.height(newHeight); - return false; - }, - onDragEnd: function onDragEnd() { - // resize update canvas information - resizeWithCanvas.refresh(); - trumbowyg.syncCode(); - } - } - }); - function initResizable() { - trumbowyg.$ed.find('img').off('click').on('click', function (e) { - // if I'm already do a resize, reset it - if (resizeWithCanvas.isActive()) { - resizeWithCanvas.reset(); - } // initialize resize of image + function strip(html) { + var tmp = document.createElement('DIV'); + tmp.innerHTML = html; + return tmp.textContent || tmp.innerText || ''; + } + /* + * UnwrapCode + * ADD/FIX: to improve, works but can be better + * "paranoic" solution + */ - resizeWithCanvas.setup(this, trumbowyg.o.plugins.resizimg.resizable); - preventDefault(e); - }); - } + function unwrapCode() { + var container = null; - trumbowyg.$c.on('tbwinit', function () { - initResizable(); // disable resize when click on other items + if (document.selection) { + //for IE + container = document.selection.createRange().parentElement(); + } else { + var select = window.getSelection(); - trumbowyg.$ed.on('click', function (e) { - // check if I've clicked out of canvas or image to reset it - if ($(e.target).is('img') || e.target.id === resizeWithCanvas.canvasId()) { - return; - } + if (select.rangeCount > 0) { + container = select.getRangeAt(0).startContainer.parentNode; + } + } //'paranoic' unwrap - preventDefault(e); - resizeWithCanvas.reset(); // save changes - trumbowyg.$c.trigger('tbwchange'); - }); - trumbowyg.$ed.on('scroll', function () { - resizeWithCanvas.reCalcOffset(); - }); - }); - trumbowyg.$c.on('tbwfocus tbwchange', initResizable); - trumbowyg.$c.on('tbwresize', function () { - resizeWithCanvas.reCalcOffset(); - }); // Destroy + var ispre = $(container).contents().closest('pre').length; + var iscode = $(container).contents().closest('code').length; - trumbowyg.$c.on('tbwblur', function () { - // if I have already focused the canvas avoid destroy - if (resizeWithCanvas.isFocusedNow()) { - resizeWithCanvas.blurNow(); - } else { - destroyResizable(trumbowyg); - } - }); - }, - destroy: function destroy(trumbowyg) { - destroyResizable(trumbowyg); - } - } + if (ispre && iscode) { + $(container).contents().unwrap('code').unwrap('pre'); + } else if (ispre) { + $(container).contents().unwrap('pre'); + } else if (iscode) { + $(container).contents().unwrap('code'); } - }); + } })(jQuery); /* =========================================================== * trumbowyg.specialchars.js v0.99 @@ -2759,85 +2687,6 @@ function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "functi return dropdown; } })(jQuery); -(function ($) { - 'use strict'; // Adds the language variables - - $.extend(true, $.trumbowyg, { - langs: { - // jshint camelcase:false - en: { - template: 'Template' - }, - da: { - template: 'Skabelon' - }, - de: { - template: 'Vorlage' - }, - fr: { - template: 'Patron' - }, - hu: { - template: 'Sablon' - }, - ja: { - template: 'テンプレート' - }, - ko: { - template: '서식' - }, - nl: { - template: 'Sjabloon' - }, - pt_br: { - template: 'Modelo' - }, - ru: { - template: 'Шаблон' - }, - tr: { - template: 'Şablon' - }, - zh_tw: { - template: '模板' - } // jshint camelcase:true - - } - }); // Adds the extra button definition - - $.extend(true, $.trumbowyg, { - plugins: { - template: { - shouldInit: function shouldInit(trumbowyg) { - return trumbowyg.o.plugins.hasOwnProperty('templates'); - }, - init: function init(trumbowyg) { - trumbowyg.addBtnDef('template', { - dropdown: templateSelector(trumbowyg), - hasIcon: false, - text: trumbowyg.lang.template - }); - } - } - } - }); // Creates the template-selector dropdown. - - function templateSelector(trumbowyg) { - var available = trumbowyg.o.plugins.templates; - var templates = []; - $.each(available, function (index, template) { - trumbowyg.addBtnDef('template_' + index, { - fn: function fn() { - trumbowyg.html(template.html); - }, - hasIcon: false, - title: template.name - }); - templates.push('template_' + index); - }); - return templates; - } -})(jQuery); /* =========================================================== * trumbowyg.table.custom.js v2.0 * Table plugin for Trumbowyg @@ -3505,4 +3354,83 @@ function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "functi $.trumbowyg.addedXhrProgressEvent = true; } } +})(jQuery); +(function ($) { + 'use strict'; // Adds the language variables + + $.extend(true, $.trumbowyg, { + langs: { + // jshint camelcase:false + en: { + template: 'Template' + }, + da: { + template: 'Skabelon' + }, + de: { + template: 'Vorlage' + }, + fr: { + template: 'Patron' + }, + hu: { + template: 'Sablon' + }, + ja: { + template: 'テンプレート' + }, + ko: { + template: '서식' + }, + nl: { + template: 'Sjabloon' + }, + pt_br: { + template: 'Modelo' + }, + ru: { + template: 'Шаблон' + }, + tr: { + template: 'Şablon' + }, + zh_tw: { + template: '模板' + } // jshint camelcase:true + + } + }); // Adds the extra button definition + + $.extend(true, $.trumbowyg, { + plugins: { + template: { + shouldInit: function shouldInit(trumbowyg) { + return trumbowyg.o.plugins.hasOwnProperty('templates'); + }, + init: function init(trumbowyg) { + trumbowyg.addBtnDef('template', { + dropdown: templateSelector(trumbowyg), + hasIcon: false, + text: trumbowyg.lang.template + }); + } + } + } + }); // Creates the template-selector dropdown. + + function templateSelector(trumbowyg) { + var available = trumbowyg.o.plugins.templates; + var templates = []; + $.each(available, function (index, template) { + trumbowyg.addBtnDef('template_' + index, { + fn: function fn() { + trumbowyg.html(template.html); + }, + hasIcon: false, + title: template.name + }); + templates.push('template_' + index); + }); + return templates; + } })(jQuery); \ No newline at end of file diff --git a/src/OrchardCore.Modules/OrchardCore.Resources/wwwroot/Scripts/trumbowyg-plugins.min.js b/src/OrchardCore.Modules/OrchardCore.Resources/wwwroot/Scripts/trumbowyg-plugins.min.js index 90922cf84b1..fbf00f046da 100644 --- a/src/OrchardCore.Modules/OrchardCore.Resources/wwwroot/Scripts/trumbowyg-plugins.min.js +++ b/src/OrchardCore.Modules/OrchardCore.Resources/wwwroot/Scripts/trumbowyg-plugins.min.js @@ -1 +1 @@ -function _typeof(e){return(_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function _typeof(e){return(_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}!function(e){"use strict";var t={allowedTags:[],removableTags:["a","abbr","address","b","bdi","bdo","blockquote","br","cite","code","del","dfn","details","em","h1","h2","h3","h4","h5","h6","hr","i","ins","kbd","mark","meter","pre","progress","q","rp","rt","ruby","s","samp","small","span","strong","sub","summary","sup","time","u","var","wbr","img","map","area","canvas","figcaption","figure","picture","audio","source","track","video","ul","ol","li","dl","dt","dd","table","caption","th","tr","td","thead","tbody","tfoot","col","colgroup","style","div","p","form","input","textarea","button","select","optgroup","option","label","fieldset","legend","datalist","keygen","output","iframe","link","nav","header","hgroup","footer","main","section","article","aside","dialog","script","noscript","embed","object","param"]};e.extend(!0,e.trumbowyg,{plugins:{allowTagsFromPaste:{init:function(o){if(o.o.removeformatPasted=!1,o.o.plugins.allowTagsFromPaste){var n=o.o.plugins.allowTagsFromPaste.allowedTags||t.allowedTags,a=o.o.plugins.allowTagsFromPaste.removableTags||t.removableTags;if(0!==n.length){var r=e(a).not(n).get();o.pasteHandlers.push((function(){setTimeout((function(){var t=o.$ed.html();e.each(r,(function(e,o){t=t.replace(new RegExp("<\\/?"+o+"(\\s[^>]*)?>","gi"),"")})),o.$ed.html(t)}),0)}))}}}}}})}(jQuery),function(e){"use strict";var t=function(){return"undefined"!=typeof FileReader};e.extend(!0,e.trumbowyg,{langs:{en:{base64:"Image as base64",file:"File",errFileReaderNotSupported:"FileReader is not supported by your browser.",errInvalidImage:"Invalid image file."},cs:{base64:"Vložit obrázek",file:"Soubor"},da:{base64:"Billede som base64",file:"Fil",errFileReaderNotSupported:"FileReader er ikke understøttet af din browser.",errInvalidImage:"Ugyldig billedfil."},fr:{base64:"Image en base64",file:"Fichier"},hu:{base64:"Kép beszúrás inline",file:"Fájl",errFileReaderNotSupported:"Ez a böngésző nem támogatja a FileReader funkciót.",errInvalidImage:"Érvénytelen képfájl."},ja:{base64:"画像 (Base64形式)",file:"ファイル",errFileReaderNotSupported:"あなたのブラウザーはFileReaderをサポートしていません",errInvalidImage:"画像形式が正しくありません"},ko:{base64:"그림 넣기(base64)",file:"파일",errFileReaderNotSupported:"FileReader가 현재 브라우저를 지원하지 않습니다.",errInvalidImage:"유효하지 않은 파일"},nl:{base64:"Afbeelding inline",file:"Bestand",errFileReaderNotSupported:"Uw browser ondersteunt deze functionaliteit niet.",errInvalidImage:"De gekozen afbeelding is ongeldig."},pt_br:{base64:"Imagem em base64",file:"Arquivo",errFileReaderNotSupported:"FileReader não é suportado pelo seu navegador.",errInvalidImage:"Arquivo de imagem inválido."},ru:{base64:"Изображение как код в base64",file:"Файл",errFileReaderNotSupported:"FileReader не поддерживается вашим браузером.",errInvalidImage:"Недопустимый файл изображения."},tr:{base64:"Base64 olarak resim",file:"Dosya",errFileReaderNotSupported:"FileReader tarayıcınız tarafından desteklenmiyor.",errInvalidImage:"Geçersiz resim dosyası."},zh_cn:{base64:"图片(Base64编码)",file:"文件"},zh_tw:{base64:"圖片(base64編碼)",file:"檔案",errFileReaderNotSupported:"你的瀏覽器不支援FileReader",errInvalidImage:"不正確的檔案格式"}},plugins:{base64:{shouldInit:t,init:function(o){var n={isSupported:t,fn:function(){var t;o.saveRange();var n=o.openModalInsert(o.lang.base64,{file:{type:"file",required:!0,attributes:{accept:"image/*"}},alt:{label:"description",value:o.getRangeText()}},(function(a){var r=new FileReader;r.onloadend=function(t){var i;i=t.target.result,/^data:image\/[a-z]?/i.test(i)?(o.execCmd("insertImage",r.result,!1,!0),e(['img[src="',r.result,'"]:not([alt])'].join(""),o.$box).attr("alt",a.alt),o.closeModal()):o.addErrorOnModalField(e("input[type=file]",n),o.lang.errInvalidImage)},r.readAsDataURL(t)}));e("input[type=file]").on("change",(function(e){t=e.target.files[0]}))}};o.addBtnDef("base64",n)}}}})}(jQuery),function(e){"use strict";function t(e){return("0"+parseInt(e).toString(16)).slice(-2)}function o(e){return-1===e.search("rgb")?e.replace("#",""):"rgba(0, 0, 0, 0)"===e?"transparent":t((e=e.match(/^rgba?\((\d+),\s*(\d+),\s*(\d+)(?:,\s*(\d+))?\)$/))[1])+t(e[2])+t(e[3])}e.extend(!0,e.trumbowyg,{langs:{en:{foreColor:"Text color",backColor:"Background color",foreColorRemove:"Remove text color",backColorRemove:"Remove background color"},cs:{foreColor:"Barva textu",backColor:"Barva pozadí"},da:{foreColor:"Tekstfarve",backColor:"Baggrundsfarve"},de:{foreColor:"Textfarbe",backColor:"Hintergrundfarbe"},fr:{foreColor:"Couleur du texte",backColor:"Couleur de fond",foreColorRemove:"Supprimer la couleur du texte",backColorRemove:"Supprimer la couleur de fond"},hu:{foreColor:"Betű szín",backColor:"Háttér szín",foreColorRemove:"Betű szín eltávolítása",backColorRemove:"Háttér szín eltávolítása"},ja:{foreColor:"文字色",backColor:"背景色"},ko:{foreColor:"글자색",backColor:"배경색",foreColorRemove:"글자색 지우기",backColorRemove:"배경색 지우기"},nl:{foreColor:"Tekstkleur",backColor:"Achtergrondkleur"},pt_br:{foreColor:"Cor de fonte",backColor:"Cor de fundo"},ru:{foreColor:"Цвет текста",backColor:"Цвет выделения текста"},sk:{foreColor:"Farba textu",backColor:"Farba pozadia"},tr:{foreColor:"Yazı rengi",backColor:"Arkaplan rengi"},zh_cn:{foreColor:"文字颜色",backColor:"背景颜色"},zh_tw:{foreColor:"文字顏色",backColor:"背景顏色"}}});var n={colorList:["ffffff","000000","eeece1","1f497d","4f81bd","c0504d","9bbb59","8064a2","4bacc6","f79646","ffff00","f2f2f2","7f7f7f","ddd9c3","c6d9f0","dbe5f1","f2dcdb","ebf1dd","e5e0ec","dbeef3","fdeada","fff2ca","d8d8d8","595959","c4bd97","8db3e2","b8cce4","e5b9b7","d7e3bc","ccc1d9","b7dde8","fbd5b5","ffe694","bfbfbf","3f3f3f","938953","548dd4","95b3d7","d99694","c3d69b","b2a2c7","b7dde8","fac08f","f2c314","a5a5a5","262626","494429","17365d","366092","953734","76923c","5f497a","92cddc","e36c09","c09100","7f7f7f","0c0c0c","1d1b10","0f243e","244061","632423","4f6128","3f3151","31859b","974806","7f6000"],foreColorList:null,backColorList:null,allowCustomForeColor:!0,allowCustomBackColor:!0,displayAsList:!1};function a(t,o){var n=[],a=o.o.plugins.colors,r=a[t+"List"]||a.colorList;e.each(r,(function(e,r){var i=t+r,l={fn:t,forceCss:!0,hasIcon:!1,text:o.lang["#"+r]||"#"+r,param:"#"+r,style:"background-color: #"+r+";"};a.displayAsList&&"foreColor"===t&&(l.style="color: #"+r+" !important;"),o.addBtnDef(i,l),n.push(i)}));var i=t+"Remove",l={fn:"removeFormat",hasIcon:!1,param:t,style:"background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAAECAYAAACp8Z5+AAAAG0lEQVQIW2NkQAAfEJMRmwBYhoGBYQtMBYoAADziAp0jtJTgAAAAAElFTkSuQmCC);"};if(a.displayAsList&&(l.style=""),o.addBtnDef(i,l),n.push(i),a["allowCustom"+t.charAt(0).toUpperCase()+t.substr(1)]){var x=t+"Free",s={fn:function(){o.openModalInsert(o.lang[t],{color:{label:t,forceCss:!0,type:"color",value:"#FFFFFF"}},(function(e){return o.execCmd(t,e.color),!0}))},hasIcon:!1,text:"#",style:"text-indent: 0; line-height: 20px; padding: 0 5px;"};o.addBtnDef(x,s),n.push(x)}return n}e.extend(!0,e.trumbowyg,{plugins:{color:{init:function(e){e.o.plugins.colors=e.o.plugins.colors||n;var t=e.o.plugins.colors.displayAsList?e.o.prefix+"dropdown--color-list":"",o={dropdown:a("foreColor",e),dropdownClass:t},r={dropdown:a("backColor",e),dropdownClass:t};e.addBtnDef("foreColor",o),e.addBtnDef("backColor",r)},tagHandler:function(e,t){var n,a=[];if(!e.style)return a;if(""!==e.style.backgroundColor){var r=o(e.style.backgroundColor);t.o.plugins.colors.colorList.indexOf(r)>=0?a.push("backColor"+r):a.push("backColorFree")}return""!==e.style.color?n=o(e.style.color):e.hasAttribute("color")&&(n=o(e.getAttribute("color"))),n&&(t.o.plugins.colors.colorList.indexOf(n)>=0?a.push("foreColor"+n):a.push("foreColorFree")),a}}}})}(jQuery),function(e){"use strict";e.extend(!0,e.trumbowyg,{plugins:{cleanPaste:{init:function(t){t.pasteHandlers.push((function(o){setTimeout((function(){try{t.saveRange();var n=(o.originalEvent||o).clipboardData.getData("Text"),a=t.doc.getSelection().focusNode,r=t.doc.createRange(),i=((x=(x=(x=(x=(x=(x=(x=(x=(x=n.trim()).replace(/<[^> ]*/g,(function(e){return e.toLowerCase()})).replace(/<[^>]*>/g,(function(e){return e=e.replace(/ [^=]+=/g,(function(e){return e.toLowerCase()}))})).replace(/<[^>]*>/g,(function(e){return e=e.replace(/( [^=]+=)([^"][^ >]*)/g,'$1"$2"')}))).replace(/)/g,")/g,")/g,")/g,"\s*/g,"")).replace(/ /gi," ")).replace(/ <\//gi,"]*>/g,(function(e){return e=e.replace(/ ([^=]+)="[^"]*"/g,(function(e,t){return-1!==["alt","href","src","title"].indexOf(t)?e:""}))}))).replace(/<\?xml[^>]*>/g,"")).replace(/<[^ >]+:[^>]*>/g,"")).replace(/<\/[^ >]+:[^>]*>/g,"")).replace(/<(div|span|style|meta|link).*?>/gi,"")),l=e(i)[0]||t.doc.createTextNode(i);""===t.$ed.html()?t.$ed[0].appendChild(l):(r.setStartAfter(a),r.setEndAfter(a),t.doc.getSelection().removeAllRanges(),t.doc.getSelection().addRange(r),t.range.insertNode(l)),(r=t.doc.createRange()).setStartAfter(l),r.setEndAfter(l),t.doc.getSelection().removeAllRanges(),t.doc.getSelection().addRange(r),o.stopPropagation(),o.preventDefault(),t.saveRange(),t.syncCode()}catch(e){}var x}),0)}))}}}})}(jQuery),function(e){"use strict";var t={emojiList:["⁉","™","ℹ","↔","↕","↖","↗","↘","↙","⌨","☀","☁","☂","☃","☄","☑","☔","☕","☘","☠","☢","☣","☦","☸","☹","♀","♂","♈","♉","♐","♑","♒","♓","♠","♣","♥","♦","♨","⚒","⚓","⚔","⚕","⚖","⚗","⚙","✂","✅","✈","✉","✒","✔","✖","✡","✨","✳","✴","❄","❇","❓","❔","❕","❗","❣","❤","➕","➖","➗","⤴","⤵","〰","㊗","㊙","🧡","💛","💚","💙","💜","🖤","🤎","🤍","💔","💕","💞","💓","💗","💖","💘","💝","💟","☮","✝","☪","🕉","🔯","🕎","☯","🛐","⛎","♊","♋","♌","♍","♎","♏","🆔","⚛","🉑","📴","📳","🈶","🈚","🈸","🈺","🈷","🆚","💮","🉐","🈴","🈵","🈹","🈲","🅰","🅱","🆎","🆑","🅾","🆘","❌","⭕","🛑","⛔","📛","🚫","💯","💢","🚷","🚯","🚳","🚱","🔞","📵","🚭","‼","🔅","🔆","〽","⚠","🚸","🔱","⚜","🔰","♻","🈯","💹","❎","🌐","💠","Ⓜ","🌀","💤","🏧","🚾","♿","🅿","🈳","🈂","🛂","🛃","🛄","🛅","🚹","🚺","🚼","🚻","🚮","🎦","📶","🈁","🔣","🔤","🔡","🔠","🆖","🆗","🆙","🆒","🆕","🆓","0","1","2","3","4","5","6","7","8","9","🔟","🔢","#","*","⏏","▶","⏸","⏯","⏹","⏺","⏭","⏮","⏩","⏪","⏫","⏬","◀","🔼","🔽","➡","⬅","⬆","⬇","↪","↩","🔀","🔁","🔂","🔄","🔃","🎵","🎶","♾","💲","💱","©","®","➰","➿","🔚","🔙","🔛","🔝","🔜","🔘","⚪","⚫","🔴","🔵","🟤","🟣","🟢","🟡","🟠","🔺","🔻","🔸","🔹","🔶","🔷","🔳","🔲","▪","▫","◾","◽","◼","◻","⬛","⬜","🟧","🟦","🟥","🟫","🟪","🟩","🟨","🔈","🔇","🔉","🔊","🔔","🔕","📣","📢","🗨","👁","💬","💭","🗯","🃏","🎴","🀄","🕐","🕑","🕒","🕓","🕔","🕕","🕖","🕗","🕘","🕙","🕚","🕛","🕜","🕝","🕞","🕟","🕠","🕡","🕢","🕣","🕤","🕥","🕦","🕧","⚽","🏀","🏈","⚾","🥎","🎾","🏐","🏉","🥏","🎱","🏓","🏸","🏒","🏑","🥍","🏏","🥅","⛳","🏹","🎣","🥊","🥋","🎽","🛹","🛷","🪂","⛸","🥌","🎿","⛷","🏂","🏋","🤼","🤸","⛹","🤺","🤾","🏌","🏇","🧘","🏄","🏊","🤽","🚣","🧗","🚵","🚴","🏆","🥇","🥈","🥉","🏅","🎖","🏵","🎗","🎫","🎟","🎪","🤹","🎭","🎨","🎬","🎤","🎧","🎼","🎹","🥁","🎷","🎺","🪕","🎸","🎻","🎲","♟","🎯","🪁","🪀","🎳","🎮","🎰","🧩","⌚","📱","📲","💻","🖥","🖨","🖱","🖲","🕹","🗜","💽","💾","💿","📀","📼","📷","📸","📹","🎥","📽","🎞","📞","☎","📟","📠","📺","📻","🎙","🎚","🎛","🧭","⏱","⏲","⏰","🕰","⌛","⏳","📡","🔋","🔌","💡","🔦","🕯","🧯","🛢","💸","💵","💴","💶","💷","💰","💳","💎","🧰","🔧","🔨","🛠","⛏","🔩","🧱","⛓","🧲","🔫","💣","🧨","🪓","🪒","🔪","🗡","🛡","🚬","⚰","⚱","🏺","🪔","🔮","📿","🧿","💈","🔭","🔬","🕳","🦯","🩺","🩹","💊","💉","🩸","🧬","🦠","🧫","🧪","🌡","🪑","🧹","🧺","🧻","🚽","🚰","🚿","🛁","🛀","🧼","🧽","🧴","🛎","🔑","🗝","🚪","🛋","🛏","🛌","🧸","🖼","🛍","🛒","🎁","🎈","🎏","🎀","🎊","🎉","🎎","🏮","🎐","🧧","📩","📨","📧","💌","📥","📤","📦","🏷","📪","📫","📬","📭","📮","📯","📜","📃","📄","📑","🧾","📊","📈","📉","🗒","🗓","📆","📅","🗑","📇","🗃","🗳","🗄","📋","📁","📂","🗂","🗞","📰","📓","📔","📒","📕","📗","📘","📙","📚","📖","🔖","🧷","🔗","📎","🖇","📐","📏","🧮","📌","📍","🖊","🖋","🖌","🖍","📝","✏","🔍","🔎","🔏","🔐","🔒","🔓","🐶","🐱","🐭","🐹","🐰","🦊","🐻","🐼","🐨","🐯","🦁","🐮","🐷","🐽","🐸","🐵","🙈","🙉","🙊","🐒","🐔","🐧","🐦","🐤","🐣","🐥","🦆","🦅","🦉","🦇","🐺","🐗","🐴","🦄","🐝","🐛","🦋","🐌","🐚","🐞","🐜","🦟","🦗","🕷","🕸","🦂","🐢","🐍","🦎","🦖","🦕","🐙","🦑","🦐","🦞","🦪","🦀","🐡","🐠","🐟","🐬","🐳","🐋","🦈","🐊","🐅","🐆","🦓","🦍","🦧","🐘","🦛","🦏","🐪","🐫","🦒","🦘","🐃","🐂","🐄","🐎","🐖","🐏","🦙","🐑","🐐","🦌","🐕","🦮","🐩","🐈","🐓","🦃","🦚","🦜","🦢","🦩","🕊","🐇","🦥","🦦","🦨","🦝","🦡","🐁","🐀","🐿","🦔","🐾","🐉","🐲","🌵","🎄","🌲","🌳","🌴","🌱","🌿","🍀","🎍","🎋","🍃","🍂","🍁","🍄","🌾","💐","🌷","🌹","🥀","🌺","🌸","🌼","🌻","🌞","🌝","🌛","🌜","🌚","🌕","🌖","🌗","🌘","🌑","🌒","🌓","🌔","🌙","🌎","🌍","🌏","🪐","💫","⭐","🌟","⚡","💥","🔥","🌪","🌈","🌤","⛅","🌥","🌦","🌧","⛈","🌩","🌨","⛄","🌬","💨","💧","💦","🌊","🌫","🍏","🍎","🍐","🍊","🍋","🍌","🍉","🍇","🍓","🍈","🍒","🍑","🥭","🍍","🥥","🥝","🍅","🍆","🥑","🥦","🥬","🥒","🌶","🌽","🥕","🧅","🧄","🥔","🍠","🥐","🥯","🍞","🥖","🥨","🧀","🥚","🍳","🥞","🧇","🥓","🥩","🍗","🍖","🌭","🍔","🍟","🍕","🥪","🧆","🥙","🌮","🌯","🥗","🥘","🥫","🍝","🍜","🍲","🍛","🍣","🍱","🥟","🍤","🍙","🍚","🍘","🍥","🥠","🥮","🍢","🍡","🍧","🍨","🍦","🥧","🧁","🍰","🎂","🍮","🍭","🍬","🍫","🍿","🍩","🍪","🌰","🥜","🍯","🧈","🥛","🍼","🍵","🧉","🥤","🧃","🧊","🍶","🍺","🍻","🥂","🍷","🥃","🍸","🍹","🍾","🥄","🍴","🍽","🥣","🥡","🥢","🧂","😀","😃","😄","😁","😆","😅","😂","🤣","☺","😊","😇","🙂","🙃","😉","😌","😍","🥰","😘","😗","😙","😚","😋","😛","😝","😜","🤪","🤨","🧐","🤓","😎","🤩","🥳","😏","😒","😞","😔","😟","😕","🙁","😣","😖","😫","😩","🥺","😢","😭","😤","😠","😡","🤬","🤯","😳","🥵","🥶","😱","😨","😰","😥","😓","🤗","🤔","🤭","🥱","🤫","🤥","😶","😐","😑","😬","🙄","😯","😦","😧","😮","😲","😴","🤤","😪","😵","🤐","🥴","🤢","🤮","🤧","😷","🤒","🤕","🤑","🤠","😈","👿","👹","👺","🤡","💩","👻","💀","👽","👾","🤖","🎃","😺","😸","😹","😻","😼","😽","🙀","😿","😾","🤲","👐","🙌","👏","🤝","👍","👎","👊","✊","🤛","🤜","🤞","✌","🤟","🤘","👌","🤏","👈","👉","👆","👇","☝","✋","🤚","🖐","🖖","👋","🤙","💪","🦾","🖕","✍","🙏","🦶","🦵","🦿","💄","💋","👄","🦷","🦴","👅","👂","🦻","👃","👣","👀","🧠","🗣","👤","👥","👶","👧","🧒","👦","👩","🧑","👨","👱","🧔","👵","🧓","👴","👲","👳","🧕","👮","👷","💂","🕵","👰","🤵","👸","🤴","🦸","🦹","🤶","🎅","🧙","🧝","🧛","🧟","🧞","🧜","🧚","👼","🤰","🤱","🙇","💁","🙅","🙆","🙋","🧏","🤦","🤷","🙎","🙍","💇","💆","🧖","💅","🤳","💃","🕺","👯","🕴","🚶","🏃","🧍","🧎","👫","👭","👬","💑","💏","👪","🧶","🧵","🧥","🥼","🦺","👚","👕","👖","🩳","👔","👗","👙","🩱","👘","🥻","🥿","👠","👡","👢","🩰","👞","👟","🥾","🩲","🧦","🧤","🧣","🎩","🧢","👒","🎓","⛑","👑","💍","👝","👛","👜","💼","🎒","🧳","👓","🕶","🥽","🤿","🌂","🦱","🦰","🦳","🦲","🚗","🚕","🚙","🚌","🚎","🏎","🚓","🚑","🚒","🚐","🚚","🚛","🚜","🛺","🛵","🏍","🛴","🚲","🦼","🦽","🚨","🚔","🚍","🚘","🚖","🚡","🚠","🚟","🚃","🚋","🚞","🚝","🚄","🚅","🚈","🚂","🚆","🚇","🚊","🚉","🛫","🛬","🛩","💺","🛰","🚀","🛸","🚁","🛶","⛵","🚤","🛥","🛳","⛴","🚢","⛽","🚧","🚦","🚥","🚏","🗺","🗿","🗽","🗼","🏰","🏯","🏟","🎡","🎢","🎠","⛲","⛱","🏖","🏝","🏜","🌋","⛰","🏔","🗻","🏕","⛺","🏠","🏡","🏘","🏚","🏗","🏭","🏢","🏬","🏣","🏤","🏥","🏦","🏨","🏪","🏫","🏩","💒","🏛","⛪","🕌","🛕","🕍","🕋","⛩","🛤","🛣","🗾","🎑","🏞","🌅","🌄","🌠","🎇","🎆","🌇","🌆","🏙","🌃","🌌","🌉","🌁","🇿","🇾","🇽","🇼","🇻","🇺","🇹","🇸","🇷","🇶","🇵","🇴","🇳","🇲","🇱","🇰","🇯","🇮","🇭","🇬","🇫","🇪","🇩","🇨","🇧","🇦","🏳","🏴","🏁","🚩","🎌","🏻","🏼","🏽","🏾","🏿"]};function o(t){var o=[];return e.each(t.o.plugins.emoji.emojiList,(function(n,a){if(e.isArray(a)){var r=a[0],i=a[1],l=''+r+'',x="emoji-"+r.replace(/:/g,""),s={hasIcon:!1,text:l,fn:function(){return t.execCmd("insertImage",i,!1,!0),!0}};t.addBtnDef(x,s),o.push(x)}else{var F="emoji-"+a.replace(/:/g,""),d={text:a,fn:function(){var e=String.fromCodePoint(a.replace("&#","0"));return t.execCmd("insertText",e),!0}};t.addBtnDef(F,d),o.push(F)}})),o}e.extend(!0,e.trumbowyg,{langs:{en:{emoji:"Add an emoji"},da:{emoji:"Tilføj et humørikon"},de:{emoji:"Emoticon einfügen"},fr:{emoji:"Ajouter un emoji"},hu:{emoji:"Emoji beszúrás"},ja:{emoji:"絵文字の挿入"},ko:{emoji:"이모지 넣기"},ru:{emoji:"Вставить emoji"},tr:{emoji:"Emoji ekle"},zh_cn:{emoji:"添加表情"}},plugins:{emoji:{init:function(e){e.o.plugins.emoji=e.o.plugins.emoji||t;var n={dropdown:o(e)};e.addBtnDef("emoji",n)}}}})}(jQuery),function(e){"use strict";e.extend(!0,e.trumbowyg,{langs:{en:{fontFamily:"Font"},da:{fontFamily:"Skrifttype"},de:{fontFamily:"Schriftart"},fr:{fontFamily:"Police"},hu:{fontFamily:"Betűtípus"},ko:{fontFamily:"글꼴"},nl:{fontFamily:"Lettertype"},pt_br:{fontFamily:"Fonte"},tr:{fontFamily:"Yazı Tipi"},zh_tw:{fontFamily:"字體"}}});var t={fontList:[{name:"Arial",family:"Arial, Helvetica, sans-serif"},{name:"Arial Black",family:"Arial Black, Gadget, sans-serif"},{name:"Comic Sans",family:"Comic Sans MS, Textile, cursive, sans-serif"},{name:"Courier New",family:"Courier New, Courier, monospace"},{name:"Georgia",family:"Georgia, serif"},{name:"Impact",family:"Impact, Charcoal, sans-serif"},{name:"Lucida Console",family:"Lucida Console, Monaco, monospace"},{name:"Lucida Sans",family:"Lucida Sans Uncide, Lucida Grande, sans-serif"},{name:"Palatino",family:"Palatino Linotype, Book Antiqua, Palatino, serif"},{name:"Tahoma",family:"Tahoma, Geneva, sans-serif"},{name:"Times New Roman",family:"Times New Roman, Times, serif"},{name:"Trebuchet",family:"Trebuchet MS, Helvetica, sans-serif"},{name:"Verdana",family:"Verdana, Geneva, sans-serif"}]};function o(t){var o=[];return e.each(t.o.plugins.fontfamily.fontList,(function(e,n){t.addBtnDef("fontfamily_"+e,{title:''+n.name+"",hasIcon:!1,fn:function(){t.execCmd("fontName",n.family,!0)}}),o.push("fontfamily_"+e)})),o}e.extend(!0,e.trumbowyg,{plugins:{fontfamily:{init:function(n){n.o.plugins.fontfamily=e.extend({},t,n.o.plugins.fontfamily||{}),n.addBtnDef("fontfamily",{dropdown:o(n),hasIcon:!1,text:n.lang.fontFamily})}}}})}(jQuery),function(e){"use strict";e.extend(!0,e.trumbowyg,{langs:{en:{fontsize:"Font size",fontsizes:{"x-small":"Extra small",small:"Small",medium:"Regular",large:"Large","x-large":"Extra large",custom:"Custom"},fontCustomSize:{title:"Custom Font Size",label:"Font Size",value:"48px"}},da:{fontsize:"Skriftstørrelse",fontsizes:{"x-small":"Ekstra lille",small:"Lille",medium:"Normal",large:"Stor","x-large":"Ekstra stor",custom:"Brugerdefineret"}},de:{fontsize:"Schriftgröße",fontsizes:{"x-small":"Sehr klein",small:"Klein",medium:"Normal",large:"Groß","x-large":"Sehr groß",custom:"Benutzerdefiniert"},fontCustomSize:{title:"Benutzerdefinierte Schriftgröße",label:"Schriftgröße",value:"48px"}},es:{fontsize:"Tamaño de Fuente",fontsizes:{"x-small":"Extra pequeña",small:"Pegueña",medium:"Regular",large:"Grande","x-large":"Extra Grande",custom:"Customizada"},fontCustomSize:{title:"Tamaño de Fuente Customizada",label:"Tamaño de Fuente",value:"48px"}},fr:{fontsize:"Taille de la police",fontsizes:{"x-small":"Très petit",small:"Petit",medium:"Normal",large:"Grand","x-large":"Très grand",custom:"Taille personnalisée"},fontCustomSize:{title:"Taille de police personnalisée",label:"Taille de la police",value:"48px"}},hu:{fontsize:"Betű méret",fontsizes:{"x-small":"Extra kicsi",small:"Kicsi",medium:"Normális",large:"Nagy","x-large":"Extra nagy",custom:"Egyedi"},fontCustomSize:{title:"Egyedi betű méret",label:"Betű méret",value:"48px"}},it:{fontsize:"Dimensioni del testo",fontsizes:{"x-small":"Molto piccolo",small:"piccolo",regular:"normale",large:"grande","x-large":"Molto grande",custom:"Personalizzato"},fontCustomSize:{title:"Dimensioni del testo personalizzato",label:"Dimensioni del testo",value:"48px"}},ko:{fontsize:"글꼴 크기",fontsizes:{"x-small":"아주 작게",small:"작게",medium:"보통",large:"크게","x-large":"아주 크게",custom:"사용자 지정"},fontCustomSize:{title:"사용자 지정 글꼴 크기",label:"글꼴 크기",value:"48px"}},nl:{fontsize:"Lettergrootte",fontsizes:{"x-small":"Extra klein",small:"Klein",medium:"Normaal",large:"Groot","x-large":"Extra groot",custom:"Tilpasset"}},pt_br:{fontsize:"Tamanho da fonte",fontsizes:{"x-small":"Extra pequeno",small:"Pequeno",regular:"Médio",large:"Grande","x-large":"Extra grande",custom:"Personalizado"},fontCustomSize:{title:"Tamanho de Fonte Personalizado",label:"Tamanho de Fonte",value:"48px"}},tr:{fontsize:"Yazı Boyutu",fontsizes:{"x-small":"Çok Küçük",small:"Küçük",medium:"Normal",large:"Büyük","x-large":"Çok Büyük",custom:"Görenek"}},zh_tw:{fontsize:"字體大小",fontsizes:{"x-small":"最小",small:"小",medium:"中",large:"大","x-large":"最大",custom:"自訂大小"},fontCustomSize:{title:"自訂義字體大小",label:"字體大小",value:"48px"}}}});var t={sizeList:["x-small","small","medium","large","x-large"],allowCustomSize:!0};function o(t,o){t.$ed.focus(),t.saveRange(),t.execCmd("fontSize","1"),t.$ed.find('font[size="1"]').replaceWith((function(){return e("",{css:{"font-size":o},html:this.innerHTML})})),e(t.range.startContainer.parentElement).find('span[style=""]').contents().unwrap(),t.restoreRange()}function n(t){var n=[];if(e.each(t.o.plugins.fontsize.sizeList,(function(e,a){t.addBtnDef("fontsize_"+a,{text:''+(t.lang.fontsizes[a]||a)+"",hasIcon:!1,fn:function(){o(t,a)}}),n.push("fontsize_"+a)})),t.o.plugins.fontsize.allowCustomSize){var a={fn:function(){t.openModalInsert(t.lang.fontCustomSize.title,{size:{label:t.lang.fontCustomSize.label,value:t.lang.fontCustomSize.value}},(function(e){return o(t,e.size),!0}))},text:''+t.lang.fontsizes.custom+"",hasIcon:!1};t.addBtnDef("fontsize_custom",a),n.push("fontsize_custom")}return n}e.extend(!0,e.trumbowyg,{plugins:{fontsize:{init:function(o){o.o.plugins.fontsize=e.extend({},t,o.o.plugins.fontsize||{}),o.addBtnDef("fontsize",{dropdown:n(o)})}}}})}(jQuery),function(e){"use strict";e.extend(!0,e.trumbowyg,{langs:{en:{giphy:"Insert GIF"},fr:{giphy:"Insérer un GIF"},hu:{giphy:"GIF beszúrás"}}});function t(t,o,n,a){var r=(o.width()-20)/3,i=t.data.filter((function(e){return""!==e.images.downsized.url})).map((function(e){var t=e.images.downsized,o=t.height/t.width;return'
'})).join("");if(!0===a){if(0===i.length){if(e("."+n.o.prefix+"giphy-no-result",o).length>0)return;i=''}o.empty()}o.append(i),e("img",o).on("click",(function(){n.restoreRange(),n.execCmd("insertImage",e(this).attr("src"),!1,!0),e("img",o).off(),n.closeModal()}))}var o={rating:"g",apiKey:null,throttleDelay:300,noResultGifUrl:"https://media.giphy.com/media/2Faz9FbRzmwxY0pZS/giphy.gif"};e.extend(!0,e.trumbowyg,{plugins:{giphy:{init:function(n){n.o.plugins.giphy=e.extend({},o,n.o.plugins.giphy||{}),n.addBtnDef("giphy",{fn:function(){if(null===n.o.plugins.giphy.apiKey)throw new Error("You must set a Giphy API Key");var o="https://api.giphy.com/v1/gifs/search?api_key="+n.o.plugins.giphy.apiKey+"&rating="+n.o.plugins.giphy.rating,a=o.replace("/search","/trending"),r={abort:function(){}},i=n.o.prefix,l=''+('')+('
Powered by
')+'
';n.openModal(null,l,!1).one("tbwcancel",(function(){try{r.abort()}catch(e){}n.closeModal()}));var x=e("."+i+"giphy-search"),s=e("."+i+"giphy-close"),F=e("."+i+"giphy-modal"),d=function(){navigator.onLine||e("."+i+"giphy-offline",F).length||(F.empty(),F.append('

You are offline

'))};e.ajax({url:a,dataType:"json",success:function(e){t(e,F,n,!0)},error:d});var u,c,f,p,g=(u=function(){var a=x.val();if(0!==a.length){try{r.abort()}catch(e){}r=e.ajax({url:o+"&q="+encodeURIComponent(a),dataType:"json",success:function(e){t(e,F,n,!0)},error:d})}},c=n.o.plugins.giphy.throttleDelay,function(){var e=this,t=+new Date,o=arguments;f&&t0){t.o.plugins.history._index-=1;var e=t.o.plugins.history._index,o=t.o.plugins.history._stack[e];t.execCmd("html",o),t.o.plugins.history._stack[e]=t.$ed.html(),l(),a()}}},a=function(){var e=t.o.plugins.history._index,o=t.o.plugins.history._stack.length,n=0!==o&&e!==o-1;r("historyUndo",e>0),r("historyRedo",n)},r=function(e,o){var n=t.$box.find(".trumbowyg-"+e+"-button");o?n.removeClass("trumbowyg-disable"):n.hasClass("trumbowyg-disable")||n.addClass("trumbowyg-disable")},i=function(e,t){if(e===t)return!0;if(null==e||null==t)return!1;if(e.length!==t.length)return!1;for(var o=0;o0&&(o.setStartAfter(e.childNodes[e.childNodes.length-1]),o.setEndAfter(e.childNodes[e.childNodes.length-1]),t.doc.getSelection().removeAllRanges(),t.doc.getSelection().addRange(o))};t.$c.on("tbwinit tbwchange",(function(){var o,n,r=t.o.plugins.history._index,l=t.o.plugins.history._stack,x=l.slice(-1)[0]||"

",s=l[r],F=t.$ed.html(),d=t.doc.getSelection().focusNode,u="",c=t.o.plugins.history._focusEl;o=e("
"+x+"
").find("*").map((function(){return this.localName})),n=e("
"+F+"
").find("*").map((function(){return this.localName})),d&&(t.o.plugins.history._focusEl=d,u=d.outerHTML||d.textContent),F!==s&&(u.slice(-1).match(/\s/)||!i(o,n)||t.o.plugins.history._index<=0||d!==c?(t.o.plugins.history._index+=1,t.o.plugins.history._stack=l.slice(0,t.o.plugins.history._index),t.o.plugins.history._stack.push(F)):t.o.plugins.history._stack[r]=F,a())})),t.addBtnDef("historyRedo",o),t.addBtnDef("historyUndo",n)}}}})}(jQuery),function(e){"use strict";var t={src:{label:"URL",required:!0},autoplay:{label:"AutoPlay",required:!1,type:"checkbox"},muted:{label:"Muted",required:!1,type:"checkbox"},preload:{label:"preload options",required:!1}};e.extend(!0,e.trumbowyg,{langs:{en:{insertAudio:"Insert Audio"},da:{insertAudio:"Indsæt lyd"},fr:{insertAudio:"Insérer un son"},hu:{insertAudio:"Audio beszúrás"},ja:{insertAudio:"音声の挿入"},ko:{insertAudio:"소리 넣기"},pt_br:{insertAudio:"Inserir áudio"},ru:{insertAudio:"Вставить аудио"},tr:{insertAudio:"Ses Ekle"}},plugins:{insertAudio:{init:function(o){var n={fn:function(){o.openModalInsert(o.lang.insertAudio,t,(function(t){var n="")[0];return o.range.deleteContents(),o.range.insertNode(a),!0}))}};o.addBtnDef("insertAudio",n)}}}})}(jQuery),function(e,t){"use strict";var o={};function n(e){return{fn:function(){var o=e.openModal("Code",['
',' ","
",'
',' ',"
"].join("\n")),n=o.find(".language"),a=o.find(".code");o.on("tbwconfirm",(function(){var o,r;e.restoreRange(),e.execCmd("insertHTML",(o=a.val(),['
',''+t.highlight(o,t.languages[r])+"","
"].join(""))),e.execCmd("insertHTML","


"),e.closeModal()})),o.on("tbwcancel",(function(){e.closeModal()}))}}}e.extend(!0,e.trumbowyg,{langs:{en:{highlight:"Code syntax highlight"},hu:{highlight:"Kód kiemelés"},ko:{highlight:"코드 문법 하이라이트"},pt_br:{highlight:"Realçar sintaxe de código"}},plugins:{highlight:{init:function(t){t.o.plugins.highlight=e.extend(!0,{},o,t.o.plugins.highlight||{}),t.addBtnDef("highlight",n(t))}}}})}(jQuery,Prism),function(e){"use strict";e.extend(!0,e.trumbowyg,{langs:{en:{mathml:"Insert Formulas",formulas:"Formulas",inline:"Inline"},da:{mathml:"Indsæt formler",formulas:"Formler",inline:"Inline"},fr:{mathml:"Inserer une formule",formulas:"Formule",inline:"En ligne"},hu:{mathml:"Formulák beszúrás",formulas:"Formulák",inline:"Inline"},ko:{mathml:"수식 넣기",formulas:"수식",inline:"글 안에 넣기"},pt_br:{mathml:"Inserir fórmulas",formulas:"Fórmulas",inline:"Em linha"},tr:{mathml:"Formül Ekle",formulas:"Formüller",inline:"Satır içi"},zh_tw:{mathml:"插入方程式",formulas:"方程式",inline:"內嵌"}},plugins:{mathml:{init:function(t){var o={fn:function(){t.saveRange();var o={formulas:{label:t.lang.formulas,required:!0,value:""},inline:{label:t.lang.inline,attributes:{checked:!0},type:"checkbox",required:!1}};o.formulas.value=t.getRangeText(),o.inline.attributes.checked=!0,t.openModalInsert(t.lang.mathml,o,(function n(a){var r=a.inline?"$":"$$";if(t.currentMathNode)e(t.currentMathNode).html(r+" "+a.formulas+" "+r).attr("formulas",a.formulas).attr("inline",a.inline?"true":"false");else{var i=''+r+" "+a.formulas+" "+r+"",l=e(i)[0];l.onclick=function(){t.currentMathNode=this,o.formulas.value=e(this).attr("formulas"),"true"===e(this).attr("inline")?o.inline.attributes.checked=!0:delete o.inline.attributes.checked,t.openModalInsert(t.lang.mathml,o,n)},t.range.deleteContents(),t.range.insertNode(l)}return t.currentMathNode=!1,MathJax.Hub.Queue(["Typeset",MathJax.Hub]),!0}))}};t.addBtnDef("mathml",o)}}}})}(jQuery),function(e){"use strict";var t={source:[],formatDropdownItem:function(e){return e.login},formatResult:function(e){return"@"+e.login+" "}};function o(t,o){var n=[];return e.each(t,(function(e,t){var a="mention-"+e,r={hasIcon:!1,text:o.o.plugins.mention.formatDropdownItem(t),fn:function(){return o.execCmd("insertHTML",o.o.plugins.mention.formatResult(t)),!0}};o.addBtnDef(a,r),n.push(a)})),n}e.extend(!0,e.trumbowyg,{langs:{en:{mention:"Mention"},da:{mention:"Nævn"},fr:{mention:"Mentionner"},hu:{mention:"Említ"},ko:{mention:"언급"},pt_br:{mention:"Menção"},ru:{mention:"Упомянуть"},tr:{mention:"Bahset"},zh_tw:{mention:"標記"}},plugins:{mention:{init:function(n){n.o.plugins.mention=e.extend(!0,{},t,n.o.plugins.mention||{});var a={dropdown:o(n.o.plugins.mention.source,n)};n.addBtnDef("mention",a)}}}})}(jQuery),function(e){"use strict";e.extend(!0,e.trumbowyg,{langs:{en:{lineheight:"Line height",lineheights:{.9:"Small",normal:"Regular",1.5:"Large","2.0":"Extra large"}},da:{lineheight:"Linjehøjde",lineheights:{.9:"Lille",normal:"Normal",1.5:"Stor","2.0":"Ekstra stor"}},fr:{lineheight:"Hauteur de ligne",lineheights:{.9:"Petite",normal:"Normale",1.5:"Grande","2.0":"Très grande"}},hu:{lineheight:"Line height",lineheights:{.9:"Small",normal:"Regular",1.5:"Large","2.0":"Extra large"}},it:{lineheight:"Altezza linea",lineheights:{.9:"Bassa",normal:"Normale",1.5:"Alta","2.0":"Molto alta"}},ko:{lineheight:"줄 간격",lineheights:{.9:"좁게",normal:"보통",1.5:"넓게","2.0":"아주 넓게"}},nl:{lineheight:"Regelhoogte",lineheights:{.9:"Klein",normal:"Normaal",1.5:"Groot","2.0":"Extra groot"}},pt_br:{lineheight:"Altura de linha",lineheights:{.9:"Pequena",normal:"Regular",1.5:"Grande","2.0":"Extra grande"}},tr:{lineheight:"Satır yüksekliği",lineheights:{.9:"Küçük",normal:"Normal",1.5:"Büyük","2.0":"Çok Büyük"}},zh_tw:{lineheight:"文字間距",lineheights:{.9:"小",normal:"正常",1.5:"大","2.0":"特大"}}}});var t={sizeList:["0.9","normal","1.5","2.0"]};function o(t){var o=[];return e.each(t.o.plugins.lineheight.sizeList,(function(n,a){t.addBtnDef("lineheight_"+a,{text:t.lang.lineheights[a]||a,hasIcon:!1,fn:function(){if(t.saveRange(),""!==t.getRangeText().replace(/\s/g,""))try{var o=function(){var e,t=null;window.getSelection?(e=window.getSelection()).rangeCount&&1!==(t=e.getRangeAt(0).commonAncestorContainer).nodeType&&(t=t.parentNode):(e=document.selection)&&"Control"!==e.type&&(t=e.createRange().parentElement());return t}();e(o).css("lineHeight",a)}catch(e){}}}),o.push("lineheight_"+a)})),o}e.extend(!0,e.trumbowyg,{plugins:{lineheight:{init:function(n){n.o.plugins.lineheight=e.extend({},t,n.o.plugins.lineheight||{}),n.addBtnDef("lineheight",{dropdown:o(n)})}}}})}(jQuery),function(e){"use strict";var t={proxy:"https://noembed.com/embed?nowrap=on",urlFiled:"url",data:[],success:void 0,error:void 0};e.extend(!0,e.trumbowyg,{langs:{en:{noembed:"Noembed",noembedError:"Error"},cs:{noembedError:"Chyba"},da:{noembedError:"Fejl"},fr:{noembedError:"Erreur"},hu:{noembed:"Noembed",noembedError:"Hiba"},ja:{noembedError:"エラー"},ko:{noembed:"oEmbed 넣기",noembedError:"에러"},pt_br:{noembed:"Incorporar",noembedError:"Erro"},ru:{noembedError:"Ошибка"},sk:{noembedError:"Chyba"},tr:{noembedError:"Hata"},zh_tw:{noembed:"插入影片",noembedError:"錯誤"}},plugins:{noembed:{init:function(o){o.o.plugins.noembed=e.extend(!0,{},t,o.o.plugins.noembed||{});var n={fn:function(){var t=o.openModalInsert(o.lang.noembed,{url:{label:"URL",required:!0}},(function(n){e.ajax({url:o.o.plugins.noembed.proxy,type:"GET",data:n,cache:!1,dataType:"json",success:o.o.plugins.noembed.success||function(n){n.html?(o.execCmd("insertHTML",n.html),setTimeout((function(){o.closeModal()}),250)):o.addErrorOnModalField(e("input[type=text]",t),n.error)},error:o.o.plugins.noembed.error||function(){o.addErrorOnModalField(e("input[type=text]",t),o.lang.noembedError)}})}))}};o.addBtnDef("noembed",n)}}}})}(jQuery),function(e){"use strict";var t={enabled:!0,endpoints:["https://noembed.com/embed?nowrap=on","https://api.maxmade.nl/url2iframe/embed"]};e.extend(!0,e.trumbowyg,{plugins:{pasteEmbed:{init:function(o){o.o.plugins.pasteEmbed=e.extend(!0,{},t,o.o.plugins.pasteEmbed||{}),o.o.plugins.pasteEmbed.enabled&&o.pasteHandlers.push((function(t){try{var n=(t.originalEvent||t).clipboardData.getData("Text"),a=o.o.plugins.pasteEmbed.endpoints,r=null;if(n.startsWith("http")){t.stopPropagation(),t.preventDefault();var i={url:n.trim()},l="",x=0;r&&r.transport&&r.transport.abort(),r=e.ajax({crossOrigin:!0,url:a[x],type:"GET",data:i,cache:!1,dataType:"jsonp",success:function(e){e.html?(x=0,l=e.html):x+=1},error:function(){x+=1},complete:function(){0===l.length&&x",{href:n,text:n}).prop("outerHTML")),l.length>0&&(x=0,o.execCmd("insertHTML",l))}})}}catch(e){}}))}}}})}(jQuery),function(e){"use strict";e.extend(!0,e.trumbowyg,{plugins:{pasteImage:{init:function(e){e.pasteHandlers.push((function(t){try{for(var o,n=(t.originalEvent||t).clipboardData.items,a=!1,r=n.length-1;r>=0;r-=1)n[r].type.match(/^image\//)&&((o=new FileReader).onloadend=function(t){e.execCmd("insertImage",t.target.result,!1,!0)},o.readAsDataURL(n[r].getAsFile()),a=!0);a&&(t.stopPropagation(),t.preventDefault())}catch(e){}}))}}}})}(jQuery),function(e){"use strict";e.extend(!0,e.trumbowyg,{langs:{en:{preformatted:"Code sample
"},da:{preformatted:"Præformateret 
"},fr:{preformatted:"Exemple de code 
"},hu:{preformatted:"Kód minta 
"},it:{preformatted:"Codice 
"},ja:{preformatted:"コードサンプル 
"},ko:{preformatted:"코드 예제 
"},pt_br:{preformatted:"Exemple de código 
"},ru:{preformatted:"Пример кода 
"},tr:{preformatted:"Kod örneği 
"},zh_cn:{preformatted:"代码示例 
"},zh_tw:{preformatted:"代碼範例 
"}},plugins:{preformatted:{init:function(t){var o={fn:function(){t.saveRange();var o,n,a=t.getRangeText();if(""!==a.replace(/\s/g,""))try{var r=function(){var e,t=null;window.getSelection?(e=window.getSelection()).rangeCount&&1!==(t=e.getRangeAt(0).commonAncestorContainer).nodeType&&(t=t.parentNode):(e=document.selection)&&"Control"!==e.type&&(t=e.createRange().parentElement());return t}().tagName.toLowerCase();if("code"===r||"pre"===r)return function(){var t=null;if(document.selection)t=document.selection.createRange().parentElement();else{var o=window.getSelection();o.rangeCount>0&&(t=o.getRangeAt(0).startContainer.parentNode)}var n=e(t).contents().closest("pre").length,a=e(t).contents().closest("code").length;n&&a?e(t).contents().unwrap("code").unwrap("pre"):n?e(t).contents().unwrap("pre"):a&&e(t).contents().unwrap("code")}();t.execCmd("insertHTML","
"+(o=a,(n=document.createElement("DIV")).innerHTML=o,(n.textContent||n.innerText||"")+"
"))}catch(e){}},tag:"pre"};t.addBtnDef("preformatted",o)}}}})}(jQuery),function(e,t,o,n){"use strict";"object"===_typeof(void 0)&&"object"===_typeof((void 0).exports)?(void 0).exports=e((void 0)("jquery")):e(jQuery)}((function(e){"use strict";e.fn.uiresizable=e.fn.resizable,delete e.fn.resizable})),function(e){"use strict";var t={minSize:32,step:4};function o(e){e.stopPropagation(),e.preventDefault()}var n=new function(){this.resizeCanvas=document.createElement("canvas"),this.resizeCanvas.setAttribute("tabindex","0"),this.resizeCanvas.id="trumbowyg-resizimg-"+ +new Date,this.ctx=null,this.resizeImg=null,this.pressEscape=function(e){e.reset()},this.pressBackspaceOrDelete=function(t){e(t.resizeCanvas).replaceWith(""),t.resizeImg=null};var t,n,a=!1,r=!1,i=function(e){var o=e.getBoundingClientRect();t=o.left,n=o.top},l=function(e,t,o,n,a){return t.translate(.5,.5),t.lineWidth=1,t.drawImage(o,5,5,n-10,a-10),t.beginPath(),t.rect(5,5,n-10,a-10),t.stroke(),t.beginPath(),t.fillStyle="rgb(255, 255, 255)",t.rect(n-10,a-10,9,9),t.fill(),t.stroke(),i(e),t};this.init=function(){var t=this;e(window).on("scroll resize",(function(){t.reCalcOffset()}))},this.reCalcOffset=function(){i(this.resizeCanvas)},this.canvasId=function(){return this.resizeCanvas.id},this.isActive=function(){return null!==this.resizeImg},this.isFocusedNow=function(){return a},this.blurNow=function(){a=!1},this.reset=function(){null!==this.resizeImg&&(this.resizeImg.width=this.resizeCanvas.clientWidth-10,this.resizeImg.height=this.resizeCanvas.clientHeight-10,this.resizeImg.removeAttribute("style"),e(this.resizeCanvas).replaceWith(e(this.resizeImg)),this.resizeCanvas.removeAttribute("style"),this.resizeImg=null)},this.setup=function(i,x){if(this.resizeImg=i,!this.resizeCanvas.getContext)return!1;a=!0,this.resizeCanvas.width=e(this.resizeImg).width()+10,this.resizeCanvas.height=e(this.resizeImg).height()+10,this.resizeCanvas.style.margin="-5px",this.ctx=this.resizeCanvas.getContext("2d"),e(this.resizeImg).replaceWith(e(this.resizeCanvas)),l(this.resizeCanvas,this.ctx,this.resizeImg,this.resizeCanvas.width,this.resizeCanvas.height),e(this.resizeCanvas).resizable(x).on("mousedown",o);var s=this;return e(this.resizeCanvas).on("mousemove",(function(e){var o=Math.round(e.clientX-t),a=Math.round(e.clientY-n),i=r;s.ctx.rect(s.resizeCanvas.width-10,s.resizeCanvas.height-10,9,9),i!==(r=s.ctx.isPointInPath(o,a))&&(this.style.cursor=r?"se-resize":"default")})).on("keydown",(function(e){if(s.isActive()){var t=e.keyCode;27===t?s.pressEscape(s):8!==t&&46!==t||s.pressBackspaceOrDelete(s)}})).on("focus",o),this.resizeCanvas.focus(),!0},this.refresh=function(){this.resizeCanvas.getContext&&(this.resizeCanvas.width=this.resizeCanvas.clientWidth,this.resizeCanvas.height=this.resizeCanvas.clientHeight,l(this.resizeCanvas,this.ctx,this.resizeImg,this.resizeCanvas.width,this.resizeCanvas.height))}};function a(e){e.$ed.find("canvas.resizable").resizable("destroy").off("mousedown",o).removeClass("resizable"),n.reset(),e.syncCode()}e.extend(!0,e.trumbowyg,{plugins:{resizimg:{init:function(r){function i(){r.$ed.find("img").off("click").on("click",(function(e){n.isActive()&&n.reset(),n.setup(this,r.o.plugins.resizimg.resizable),o(e)}))}r.o.plugins.resizimg=e.extend(!0,{},t,r.o.plugins.resizimg||{},{resizable:{resizeWidth:!1,onDragStart:function(e,t){var o=r.o.plugins.resizimg,n=e.pageX-t.offset().left,a=e.pageY-t.offset().top;if(n",n);if(0===o.$box.find("."+t+"-table").length?o.$box.append(i.hide()):i=o.$box.find("."+t+"-table"),i.html(""),o.$box.find("."+o.o.prefix+"table-button").hasClass(o.o.prefix+"active-button"))i.append(o.buildSubBtn("tableAddRowAbove")),i.append(o.buildSubBtn("tableAddRow")),i.append(o.buildSubBtn("tableAddColumnLeft")),i.append(o.buildSubBtn("tableAddColumn")),i.append(o.buildSubBtn("tableDeleteRow")),i.append(o.buildSubBtn("tableDeleteColumn")),i.append(o.buildSubBtn("tableDestroy"));else{var l=e("");e("").appendTo(l);for(var x=0;x").appendTo(l),F=0;F").appendTo(s);l.find("td").on("mouseover",a),l.find("td").on("mousedown",r),i.append(l),i.append(e('
1x1
'))}o.dropdown("table")}},a=function(t){var o=e(t.target).closest("table"),n=this.cellIndex,a=this.parentNode.rowIndex;o.find("td").removeClass("active");for(var r=0;r<=a;r+=1)for(var i=0;i<=n;i+=1)o.find("tr:nth-of-type("+(r+1)+")").find("td:nth-of-type("+(i+1)+")").addClass("active");o.next(".trumbowyg-table-size").html(n+1+"x"+(a+1))},r=function(){o.saveRange();var t=e("
");e("").appendTo(t),o.o.plugins.table.styler&&t.attr("class",o.o.plugins.table.styler);for(var n=this.cellIndex,a=this.parentNode.rowIndex,r=0;r<=a;r+=1)for(var i=e("").appendTo(t),l=0;l<=n;l+=1)e(""),i=0;i").appendTo(r);n.after(r)}o.syncCode()}},l={title:o.lang.tableAddRowAbove,text:o.lang.tableAddRowAbove,ico:"row-above",fn:function(){o.saveRange();var t=o.doc.getSelection().focusNode,n=e(t).closest("tr"),a=e(t).closest("table");if(a.length>0){for(var r=e(""),i=0;i").appendTo(r);n.before(r)}o.syncCode()}},x={title:o.lang.tableAddColumn,text:o.lang.tableAddColumn,ico:"col-right",fn:function(){o.saveRange();var t=o.doc.getSelection().focusNode,n=e(t).closest("td"),a=e(t).closest("table"),r=n.index();a.length>0&&e(a).find("tr").each((function(){e(e(this).children()[r]).after("")})),o.syncCode()}},s={title:o.lang.tableAddColumnLeft,text:o.lang.tableAddColumnLeft,ico:"col-left",fn:function(){o.saveRange();var t=o.doc.getSelection().focusNode,n=e(t).closest("td"),a=e(t).closest("table"),r=n.index();a.length>0&&e(a).find("tr").each((function(){e(e(this).children()[r]).before("")})),o.syncCode()}},F={title:o.lang.tableDestroy,text:o.lang.tableDestroy,ico:"table-delete",fn:function(){o.saveRange();var t=o.doc.getSelection().focusNode;e(t).closest("table").remove(),o.syncCode()}},d={title:o.lang.tableDeleteRow,text:o.lang.tableDeleteRow,ico:"row-delete",fn:function(){o.saveRange();var t=o.doc.getSelection().focusNode;e(t).closest("tr").remove(),o.syncCode()}},u={title:o.lang.tableDeleteColumn,text:o.lang.tableDeleteColumn,ico:"col-delete",fn:function(){o.saveRange();var t=o.doc.getSelection().focusNode,n=e(t).closest("table"),a=e(t).closest("td").index();e(n).find("tr").each((function(){e(this).find("td:eq("+a+")").remove()})),o.syncCode()}};o.addBtnDef("table",n),o.addBtnDef("tableAddRowAbove",l),o.addBtnDef("tableAddRow",i),o.addBtnDef("tableAddColumnLeft",s),o.addBtnDef("tableAddColumn",x),o.addBtnDef("tableDeleteRow",d),o.addBtnDef("tableDeleteColumn",u),o.addBtnDef("tableDestroy",F)}}}})}(jQuery),function(e){"use strict";var t={serverPath:"",fileFieldName:"fileToUpload",data:[],headers:{},xhrFields:{},urlPropertyName:"file",statusPropertyName:"success",success:void 0,error:void 0,imageWidthModalEdit:!1};function o(e,t){var n=t.shift(),a=t;if(null!==e){if(0===a.length)return e[n];if("object"===_typeof(e))return o(e[n],a)}return e}!function(){if(!e.trumbowyg.addedXhrProgressEvent){var t=e.ajaxSettings.xhr;e.ajaxSetup({xhr:function(){var e=this,o=t();return o&&"object"===_typeof(o.upload)&&void 0!==e.progressUpload&&o.upload.addEventListener("progress",(function(t){e.progressUpload(t)}),!1),o}}),e.trumbowyg.addedXhrProgressEvent=!0}}(),e.extend(!0,e.trumbowyg,{langs:{en:{upload:"Upload",file:"File",uploadError:"Error"},cs:{upload:"Nahrát obrázek",file:"Soubor",uploadError:"Chyba"},da:{upload:"Upload",file:"Fil",uploadError:"Fejl"},de:{upload:"Hochladen",file:"Datei",uploadError:"Fehler"},fr:{upload:"Envoi",file:"Fichier",uploadError:"Erreur"},hu:{upload:"Feltöltés",file:"Fájl",uploadError:"Hiba"},ja:{upload:"アップロード",file:"ファイル",uploadError:"エラー"},ko:{upload:"그림 올리기",file:"파일",uploadError:"에러"},pt_br:{upload:"Enviar do local",file:"Arquivo",uploadError:"Erro"},ru:{upload:"Загрузка",file:"Файл",uploadError:"Ошибка"},sk:{upload:"Nahrať",file:"Súbor",uploadError:"Chyba"},tr:{upload:"Yükle",file:"Dosya",uploadError:"Hata"},zh_cn:{upload:"上传",file:"文件",uploadError:"错误"},zh_tw:{upload:"上傳",file:"文件",uploadError:"錯誤"}},plugins:{upload:{init:function(n){n.o.plugins.upload=e.extend(!0,{},t,n.o.plugins.upload||{});var a={fn:function(){n.saveRange();var t,a=n.o.prefix,r={file:{type:"file",required:!0,attributes:{accept:"image/*"}},alt:{label:"description",value:n.getRangeText()}};n.o.plugins.upload.imageWidthModalEdit&&(r.width={value:""});var i=n.openModalInsert(n.lang.upload,r,(function(r){var l=new FormData;l.append(n.o.plugins.upload.fileFieldName,t),n.o.plugins.upload.data.map((function(e){l.append(e.name,e.value)})),e.map(r,(function(e,t){"file"!==t&&l.append(t,e)})),0===e("."+a+"progress",i).length&&e("."+a+"modal-title",i).after(e("
",{class:a+"progress"}).append(e("
",{class:a+"progress-bar"}))),e.ajax({url:n.o.plugins.upload.serverPath,headers:n.o.plugins.upload.headers,xhrFields:n.o.plugins.upload.xhrFields,type:"POST",data:l,cache:!1,dataType:"json",processData:!1,contentType:!1,progressUpload:function(t){e("."+a+"progress-bar").css("width",Math.round(100*t.loaded/t.total)+"%")},success:function(t){if(n.o.plugins.upload.success)n.o.plugins.upload.success(t,n,i,r);else if(o(t,n.o.plugins.upload.statusPropertyName.split("."))){var a=o(t,n.o.plugins.upload.urlPropertyName.split("."));n.execCmd("insertImage",a,!1,!0);var l=e('img[src="'+a+'"]:not([alt])',n.$box);l.attr("alt",r.alt),n.o.imageWidthModalEdit&&parseInt(r.width)>0&&l.attr({width:r.width}),setTimeout((function(){n.closeModal()}),250),n.$c.trigger("tbwuploadsuccess",[n,t,a])}else n.addErrorOnModalField(e("input[type=file]",i),n.lang[t.message]),n.$c.trigger("tbwuploaderror",[n,t])},error:n.o.plugins.upload.error||function(){n.addErrorOnModalField(e("input[type=file]",i),n.lang.uploadError),n.$c.trigger("tbwuploaderror",[n])}})}));e("input[type=file]").on("change",(function(e){try{t=e.target.files[0]}catch(o){t=e.target.value}}))}};n.addBtnDef("upload",a)}}}})}(jQuery); +function _typeof(e){return(_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function _typeof(e){return(_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}!function(e){"use strict";var t={allowedTags:[],removableTags:["a","abbr","address","b","bdi","bdo","blockquote","br","cite","code","del","dfn","details","em","h1","h2","h3","h4","h5","h6","hr","i","ins","kbd","mark","meter","pre","progress","q","rp","rt","ruby","s","samp","small","span","strong","sub","summary","sup","time","u","var","wbr","img","map","area","canvas","figcaption","figure","picture","audio","source","track","video","ul","ol","li","dl","dt","dd","table","caption","th","tr","td","thead","tbody","tfoot","col","colgroup","style","div","p","form","input","textarea","button","select","optgroup","option","label","fieldset","legend","datalist","keygen","output","iframe","link","nav","header","hgroup","footer","main","section","article","aside","dialog","script","noscript","embed","object","param"]};e.extend(!0,e.trumbowyg,{plugins:{allowTagsFromPaste:{init:function(o){if(o.o.removeformatPasted=!1,o.o.plugins.allowTagsFromPaste){var n=o.o.plugins.allowTagsFromPaste.allowedTags||t.allowedTags,a=o.o.plugins.allowTagsFromPaste.removableTags||t.removableTags;if(0!==n.length){var r=e(a).not(n).get();o.pasteHandlers.push((function(){setTimeout((function(){var t=o.$ed.html();e.each(r,(function(e,o){t=t.replace(new RegExp("<\\/?"+o+"(\\s[^>]*)?>","gi"),"")})),o.$ed.html(t)}),0)}))}}}}}})}(jQuery),function(e){"use strict";var t=function(){return"undefined"!=typeof FileReader};e.extend(!0,e.trumbowyg,{langs:{en:{base64:"Image as base64",file:"File",errFileReaderNotSupported:"FileReader is not supported by your browser.",errInvalidImage:"Invalid image file."},cs:{base64:"Vložit obrázek",file:"Soubor"},da:{base64:"Billede som base64",file:"Fil",errFileReaderNotSupported:"FileReader er ikke understøttet af din browser.",errInvalidImage:"Ugyldig billedfil."},fr:{base64:"Image en base64",file:"Fichier"},hu:{base64:"Kép beszúrás inline",file:"Fájl",errFileReaderNotSupported:"Ez a böngésző nem támogatja a FileReader funkciót.",errInvalidImage:"Érvénytelen képfájl."},ja:{base64:"画像 (Base64形式)",file:"ファイル",errFileReaderNotSupported:"あなたのブラウザーはFileReaderをサポートしていません",errInvalidImage:"画像形式が正しくありません"},ko:{base64:"그림 넣기(base64)",file:"파일",errFileReaderNotSupported:"FileReader가 현재 브라우저를 지원하지 않습니다.",errInvalidImage:"유효하지 않은 파일"},nl:{base64:"Afbeelding inline",file:"Bestand",errFileReaderNotSupported:"Uw browser ondersteunt deze functionaliteit niet.",errInvalidImage:"De gekozen afbeelding is ongeldig."},pt_br:{base64:"Imagem em base64",file:"Arquivo",errFileReaderNotSupported:"FileReader não é suportado pelo seu navegador.",errInvalidImage:"Arquivo de imagem inválido."},ru:{base64:"Изображение как код в base64",file:"Файл",errFileReaderNotSupported:"FileReader не поддерживается вашим браузером.",errInvalidImage:"Недопустимый файл изображения."},tr:{base64:"Base64 olarak resim",file:"Dosya",errFileReaderNotSupported:"FileReader tarayıcınız tarafından desteklenmiyor.",errInvalidImage:"Geçersiz resim dosyası."},zh_cn:{base64:"图片(Base64编码)",file:"文件"},zh_tw:{base64:"圖片(base64編碼)",file:"檔案",errFileReaderNotSupported:"你的瀏覽器不支援FileReader",errInvalidImage:"不正確的檔案格式"}},plugins:{base64:{shouldInit:t,init:function(o){var n={isSupported:t,fn:function(){var t;o.saveRange();var n=o.openModalInsert(o.lang.base64,{file:{type:"file",required:!0,attributes:{accept:"image/*"}},alt:{label:"description",value:o.getRangeText()}},(function(a){var r=new FileReader;r.onloadend=function(t){var l;l=t.target.result,/^data:image\/[a-z]?/i.test(l)?(o.execCmd("insertImage",r.result,!1,!0),e(['img[src="',r.result,'"]:not([alt])'].join(""),o.$box).attr("alt",a.alt),o.closeModal()):o.addErrorOnModalField(e("input[type=file]",n),o.lang.errInvalidImage)},r.readAsDataURL(t)}));e("input[type=file]").on("change",(function(e){t=e.target.files[0]}))}};o.addBtnDef("base64",n)}}}})}(jQuery),function(e){"use strict";e.extend(!0,e.trumbowyg,{plugins:{cleanPaste:{init:function(t){t.pasteHandlers.push((function(o){setTimeout((function(){try{t.saveRange();var n=(o.originalEvent||o).clipboardData.getData("Text"),a=t.doc.getSelection().focusNode,r=t.doc.createRange(),l=((x=(x=(x=(x=(x=(x=(x=(x=(x=n.trim()).replace(/<[^> ]*/g,(function(e){return e.toLowerCase()})).replace(/<[^>]*>/g,(function(e){return e=e.replace(/ [^=]+=/g,(function(e){return e.toLowerCase()}))})).replace(/<[^>]*>/g,(function(e){return e=e.replace(/( [^=]+=)([^"][^ >]*)/g,'$1"$2"')}))).replace(/)/g,")/g,")/g,")/g,"\s*/g,"")).replace(/ /gi," ")).replace(/ <\//gi,"]*>/g,(function(e){return e=e.replace(/ ([^=]+)="[^"]*"/g,(function(e,t){return-1!==["alt","href","src","title"].indexOf(t)?e:""}))}))).replace(/<\?xml[^>]*>/g,"")).replace(/<[^ >]+:[^>]*>/g,"")).replace(/<\/[^ >]+:[^>]*>/g,"")).replace(/<(div|span|style|meta|link).*?>/gi,"")),i=e(l)[0]||t.doc.createTextNode(l);""===t.$ed.html()?t.$ed[0].appendChild(i):(r.setStartAfter(a),r.setEndAfter(a),t.doc.getSelection().removeAllRanges(),t.doc.getSelection().addRange(r),t.range.insertNode(i)),(r=t.doc.createRange()).setStartAfter(i),r.setEndAfter(i),t.doc.getSelection().removeAllRanges(),t.doc.getSelection().addRange(r),o.stopPropagation(),o.preventDefault(),t.saveRange(),t.syncCode()}catch(e){}var x}),0)}))}}}})}(jQuery),function(e){"use strict";function t(e){return("0"+parseInt(e).toString(16)).slice(-2)}function o(e){return-1===e.search("rgb")?e.replace("#",""):"rgba(0, 0, 0, 0)"===e?"transparent":t((e=e.match(/^rgba?\((\d+),\s*(\d+),\s*(\d+)(?:,\s*(\d+))?\)$/))[1])+t(e[2])+t(e[3])}e.extend(!0,e.trumbowyg,{langs:{en:{foreColor:"Text color",backColor:"Background color",foreColorRemove:"Remove text color",backColorRemove:"Remove background color"},cs:{foreColor:"Barva textu",backColor:"Barva pozadí"},da:{foreColor:"Tekstfarve",backColor:"Baggrundsfarve"},de:{foreColor:"Textfarbe",backColor:"Hintergrundfarbe"},fr:{foreColor:"Couleur du texte",backColor:"Couleur de fond",foreColorRemove:"Supprimer la couleur du texte",backColorRemove:"Supprimer la couleur de fond"},hu:{foreColor:"Betű szín",backColor:"Háttér szín",foreColorRemove:"Betű szín eltávolítása",backColorRemove:"Háttér szín eltávolítása"},ja:{foreColor:"文字色",backColor:"背景色"},ko:{foreColor:"글자색",backColor:"배경색",foreColorRemove:"글자색 지우기",backColorRemove:"배경색 지우기"},nl:{foreColor:"Tekstkleur",backColor:"Achtergrondkleur"},pt_br:{foreColor:"Cor de fonte",backColor:"Cor de fundo"},ru:{foreColor:"Цвет текста",backColor:"Цвет выделения текста"},sk:{foreColor:"Farba textu",backColor:"Farba pozadia"},tr:{foreColor:"Yazı rengi",backColor:"Arkaplan rengi"},zh_cn:{foreColor:"文字颜色",backColor:"背景颜色"},zh_tw:{foreColor:"文字顏色",backColor:"背景顏色"}}});var n={colorList:["ffffff","000000","eeece1","1f497d","4f81bd","c0504d","9bbb59","8064a2","4bacc6","f79646","ffff00","f2f2f2","7f7f7f","ddd9c3","c6d9f0","dbe5f1","f2dcdb","ebf1dd","e5e0ec","dbeef3","fdeada","fff2ca","d8d8d8","595959","c4bd97","8db3e2","b8cce4","e5b9b7","d7e3bc","ccc1d9","b7dde8","fbd5b5","ffe694","bfbfbf","3f3f3f","938953","548dd4","95b3d7","d99694","c3d69b","b2a2c7","b7dde8","fac08f","f2c314","a5a5a5","262626","494429","17365d","366092","953734","76923c","5f497a","92cddc","e36c09","c09100","7f7f7f","0c0c0c","1d1b10","0f243e","244061","632423","4f6128","3f3151","31859b","974806","7f6000"],foreColorList:null,backColorList:null,allowCustomForeColor:!0,allowCustomBackColor:!0,displayAsList:!1};function a(t,o){var n=[],a=o.o.plugins.colors,r=a[t+"List"]||a.colorList;e.each(r,(function(e,r){var l=t+r,i={fn:t,forceCss:!0,hasIcon:!1,text:o.lang["#"+r]||"#"+r,param:"#"+r,style:"background-color: #"+r+";"};a.displayAsList&&"foreColor"===t&&(i.style="color: #"+r+" !important;"),o.addBtnDef(l,i),n.push(l)}));var l=t+"Remove",i={fn:"removeFormat",hasIcon:!1,param:t,style:"background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAAECAYAAACp8Z5+AAAAG0lEQVQIW2NkQAAfEJMRmwBYhoGBYQtMBYoAADziAp0jtJTgAAAAAElFTkSuQmCC);"};if(a.displayAsList&&(i.style=""),o.addBtnDef(l,i),n.push(l),a["allowCustom"+t.charAt(0).toUpperCase()+t.substr(1)]){var x=t+"Free",s={fn:function(){o.openModalInsert(o.lang[t],{color:{label:t,forceCss:!0,type:"color",value:"#FFFFFF"}},(function(e){return o.execCmd(t,e.color),!0}))},hasIcon:!1,text:"#",style:"text-indent: 0; line-height: 20px; padding: 0 5px;"};o.addBtnDef(x,s),n.push(x)}return n}e.extend(!0,e.trumbowyg,{plugins:{color:{init:function(e){e.o.plugins.colors=e.o.plugins.colors||n;var t=e.o.plugins.colors.displayAsList?e.o.prefix+"dropdown--color-list":"",o={dropdown:a("foreColor",e),dropdownClass:t},r={dropdown:a("backColor",e),dropdownClass:t};e.addBtnDef("foreColor",o),e.addBtnDef("backColor",r)},tagHandler:function(e,t){var n,a=[];if(!e.style)return a;if(""!==e.style.backgroundColor){var r=o(e.style.backgroundColor);t.o.plugins.colors.colorList.indexOf(r)>=0?a.push("backColor"+r):a.push("backColorFree")}return""!==e.style.color?n=o(e.style.color):e.hasAttribute("color")&&(n=o(e.getAttribute("color"))),n&&(t.o.plugins.colors.colorList.indexOf(n)>=0?a.push("foreColor"+n):a.push("foreColorFree")),a}}}})}(jQuery),function(e){"use strict";var t={emojiList:["⁉","™","ℹ","↔","↕","↖","↗","↘","↙","⌨","☀","☁","☂","☃","☄","☑","☔","☕","☘","☠","☢","☣","☦","☸","☹","♀","♂","♈","♉","♐","♑","♒","♓","♠","♣","♥","♦","♨","⚒","⚓","⚔","⚕","⚖","⚗","⚙","✂","✅","✈","✉","✒","✔","✖","✡","✨","✳","✴","❄","❇","❓","❔","❕","❗","❣","❤","➕","➖","➗","⤴","⤵","〰","㊗","㊙","🧡","💛","💚","💙","💜","🖤","🤎","🤍","💔","💕","💞","💓","💗","💖","💘","💝","💟","☮","✝","☪","🕉","🔯","🕎","☯","🛐","⛎","♊","♋","♌","♍","♎","♏","🆔","⚛","🉑","📴","📳","🈶","🈚","🈸","🈺","🈷","🆚","💮","🉐","🈴","🈵","🈹","🈲","🅰","🅱","🆎","🆑","🅾","🆘","❌","⭕","🛑","⛔","📛","🚫","💯","💢","🚷","🚯","🚳","🚱","🔞","📵","🚭","‼","🔅","🔆","〽","⚠","🚸","🔱","⚜","🔰","♻","🈯","💹","❎","🌐","💠","Ⓜ","🌀","💤","🏧","🚾","♿","🅿","🈳","🈂","🛂","🛃","🛄","🛅","🚹","🚺","🚼","🚻","🚮","🎦","📶","🈁","🔣","🔤","🔡","🔠","🆖","🆗","🆙","🆒","🆕","🆓","0","1","2","3","4","5","6","7","8","9","🔟","🔢","#","*","⏏","▶","⏸","⏯","⏹","⏺","⏭","⏮","⏩","⏪","⏫","⏬","◀","🔼","🔽","➡","⬅","⬆","⬇","↪","↩","🔀","🔁","🔂","🔄","🔃","🎵","🎶","♾","💲","💱","©","®","➰","➿","🔚","🔙","🔛","🔝","🔜","🔘","⚪","⚫","🔴","🔵","🟤","🟣","🟢","🟡","🟠","🔺","🔻","🔸","🔹","🔶","🔷","🔳","🔲","▪","▫","◾","◽","◼","◻","⬛","⬜","🟧","🟦","🟥","🟫","🟪","🟩","🟨","🔈","🔇","🔉","🔊","🔔","🔕","📣","📢","🗨","👁","💬","💭","🗯","🃏","🎴","🀄","🕐","🕑","🕒","🕓","🕔","🕕","🕖","🕗","🕘","🕙","🕚","🕛","🕜","🕝","🕞","🕟","🕠","🕡","🕢","🕣","🕤","🕥","🕦","🕧","⚽","🏀","🏈","⚾","🥎","🎾","🏐","🏉","🥏","🎱","🏓","🏸","🏒","🏑","🥍","🏏","🥅","⛳","🏹","🎣","🥊","🥋","🎽","🛹","🛷","🪂","⛸","🥌","🎿","⛷","🏂","🏋","🤼","🤸","⛹","🤺","🤾","🏌","🏇","🧘","🏄","🏊","🤽","🚣","🧗","🚵","🚴","🏆","🥇","🥈","🥉","🏅","🎖","🏵","🎗","🎫","🎟","🎪","🤹","🎭","🎨","🎬","🎤","🎧","🎼","🎹","🥁","🎷","🎺","🪕","🎸","🎻","🎲","♟","🎯","🪁","🪀","🎳","🎮","🎰","🧩","⌚","📱","📲","💻","🖥","🖨","🖱","🖲","🕹","🗜","💽","💾","💿","📀","📼","📷","📸","📹","🎥","📽","🎞","📞","☎","📟","📠","📺","📻","🎙","🎚","🎛","🧭","⏱","⏲","⏰","🕰","⌛","⏳","📡","🔋","🔌","💡","🔦","🕯","🧯","🛢","💸","💵","💴","💶","💷","💰","💳","💎","🧰","🔧","🔨","🛠","⛏","🔩","🧱","⛓","🧲","🔫","💣","🧨","🪓","🪒","🔪","🗡","🛡","🚬","⚰","⚱","🏺","🪔","🔮","📿","🧿","💈","🔭","🔬","🕳","🦯","🩺","🩹","💊","💉","🩸","🧬","🦠","🧫","🧪","🌡","🪑","🧹","🧺","🧻","🚽","🚰","🚿","🛁","🛀","🧼","🧽","🧴","🛎","🔑","🗝","🚪","🛋","🛏","🛌","🧸","🖼","🛍","🛒","🎁","🎈","🎏","🎀","🎊","🎉","🎎","🏮","🎐","🧧","📩","📨","📧","💌","📥","📤","📦","🏷","📪","📫","📬","📭","📮","📯","📜","📃","📄","📑","🧾","📊","📈","📉","🗒","🗓","📆","📅","🗑","📇","🗃","🗳","🗄","📋","📁","📂","🗂","🗞","📰","📓","📔","📒","📕","📗","📘","📙","📚","📖","🔖","🧷","🔗","📎","🖇","📐","📏","🧮","📌","📍","🖊","🖋","🖌","🖍","📝","✏","🔍","🔎","🔏","🔐","🔒","🔓","🐶","🐱","🐭","🐹","🐰","🦊","🐻","🐼","🐨","🐯","🦁","🐮","🐷","🐽","🐸","🐵","🙈","🙉","🙊","🐒","🐔","🐧","🐦","🐤","🐣","🐥","🦆","🦅","🦉","🦇","🐺","🐗","🐴","🦄","🐝","🐛","🦋","🐌","🐚","🐞","🐜","🦟","🦗","🕷","🕸","🦂","🐢","🐍","🦎","🦖","🦕","🐙","🦑","🦐","🦞","🦪","🦀","🐡","🐠","🐟","🐬","🐳","🐋","🦈","🐊","🐅","🐆","🦓","🦍","🦧","🐘","🦛","🦏","🐪","🐫","🦒","🦘","🐃","🐂","🐄","🐎","🐖","🐏","🦙","🐑","🐐","🦌","🐕","🦮","🐩","🐈","🐓","🦃","🦚","🦜","🦢","🦩","🕊","🐇","🦥","🦦","🦨","🦝","🦡","🐁","🐀","🐿","🦔","🐾","🐉","🐲","🌵","🎄","🌲","🌳","🌴","🌱","🌿","🍀","🎍","🎋","🍃","🍂","🍁","🍄","🌾","💐","🌷","🌹","🥀","🌺","🌸","🌼","🌻","🌞","🌝","🌛","🌜","🌚","🌕","🌖","🌗","🌘","🌑","🌒","🌓","🌔","🌙","🌎","🌍","🌏","🪐","💫","⭐","🌟","⚡","💥","🔥","🌪","🌈","🌤","⛅","🌥","🌦","🌧","⛈","🌩","🌨","⛄","🌬","💨","💧","💦","🌊","🌫","🍏","🍎","🍐","🍊","🍋","🍌","🍉","🍇","🍓","🍈","🍒","🍑","🥭","🍍","🥥","🥝","🍅","🍆","🥑","🥦","🥬","🥒","🌶","🌽","🥕","🧅","🧄","🥔","🍠","🥐","🥯","🍞","🥖","🥨","🧀","🥚","🍳","🥞","🧇","🥓","🥩","🍗","🍖","🌭","🍔","🍟","🍕","🥪","🧆","🥙","🌮","🌯","🥗","🥘","🥫","🍝","🍜","🍲","🍛","🍣","🍱","🥟","🍤","🍙","🍚","🍘","🍥","🥠","🥮","🍢","🍡","🍧","🍨","🍦","🥧","🧁","🍰","🎂","🍮","🍭","🍬","🍫","🍿","🍩","🍪","🌰","🥜","🍯","🧈","🥛","🍼","🍵","🧉","🥤","🧃","🧊","🍶","🍺","🍻","🥂","🍷","🥃","🍸","🍹","🍾","🥄","🍴","🍽","🥣","🥡","🥢","🧂","😀","😃","😄","😁","😆","😅","😂","🤣","☺","😊","😇","🙂","🙃","😉","😌","😍","🥰","😘","😗","😙","😚","😋","😛","😝","😜","🤪","🤨","🧐","🤓","😎","🤩","🥳","😏","😒","😞","😔","😟","😕","🙁","😣","😖","😫","😩","🥺","😢","😭","😤","😠","😡","🤬","🤯","😳","🥵","🥶","😱","😨","😰","😥","😓","🤗","🤔","🤭","🥱","🤫","🤥","😶","😐","😑","😬","🙄","😯","😦","😧","😮","😲","😴","🤤","😪","😵","🤐","🥴","🤢","🤮","🤧","😷","🤒","🤕","🤑","🤠","😈","👿","👹","👺","🤡","💩","👻","💀","👽","👾","🤖","🎃","😺","😸","😹","😻","😼","😽","🙀","😿","😾","🤲","👐","🙌","👏","🤝","👍","👎","👊","✊","🤛","🤜","🤞","✌","🤟","🤘","👌","🤏","👈","👉","👆","👇","☝","✋","🤚","🖐","🖖","👋","🤙","💪","🦾","🖕","✍","🙏","🦶","🦵","🦿","💄","💋","👄","🦷","🦴","👅","👂","🦻","👃","👣","👀","🧠","🗣","👤","👥","👶","👧","🧒","👦","👩","🧑","👨","👱","🧔","👵","🧓","👴","👲","👳","🧕","👮","👷","💂","🕵","👰","🤵","👸","🤴","🦸","🦹","🤶","🎅","🧙","🧝","🧛","🧟","🧞","🧜","🧚","👼","🤰","🤱","🙇","💁","🙅","🙆","🙋","🧏","🤦","🤷","🙎","🙍","💇","💆","🧖","💅","🤳","💃","🕺","👯","🕴","🚶","🏃","🧍","🧎","👫","👭","👬","💑","💏","👪","🧶","🧵","🧥","🥼","🦺","👚","👕","👖","🩳","👔","👗","👙","🩱","👘","🥻","🥿","👠","👡","👢","🩰","👞","👟","🥾","🩲","🧦","🧤","🧣","🎩","🧢","👒","🎓","⛑","👑","💍","👝","👛","👜","💼","🎒","🧳","👓","🕶","🥽","🤿","🌂","🦱","🦰","🦳","🦲","🚗","🚕","🚙","🚌","🚎","🏎","🚓","🚑","🚒","🚐","🚚","🚛","🚜","🛺","🛵","🏍","🛴","🚲","🦼","🦽","🚨","🚔","🚍","🚘","🚖","🚡","🚠","🚟","🚃","🚋","🚞","🚝","🚄","🚅","🚈","🚂","🚆","🚇","🚊","🚉","🛫","🛬","🛩","💺","🛰","🚀","🛸","🚁","🛶","⛵","🚤","🛥","🛳","⛴","🚢","⛽","🚧","🚦","🚥","🚏","🗺","🗿","🗽","🗼","🏰","🏯","🏟","🎡","🎢","🎠","⛲","⛱","🏖","🏝","🏜","🌋","⛰","🏔","🗻","🏕","⛺","🏠","🏡","🏘","🏚","🏗","🏭","🏢","🏬","🏣","🏤","🏥","🏦","🏨","🏪","🏫","🏩","💒","🏛","⛪","🕌","🛕","🕍","🕋","⛩","🛤","🛣","🗾","🎑","🏞","🌅","🌄","🌠","🎇","🎆","🌇","🌆","🏙","🌃","🌌","🌉","🌁","🇿","🇾","🇽","🇼","🇻","🇺","🇹","🇸","🇷","🇶","🇵","🇴","🇳","🇲","🇱","🇰","🇯","🇮","🇭","🇬","🇫","🇪","🇩","🇨","🇧","🇦","🏳","🏴","🏁","🚩","🎌","🏻","🏼","🏽","🏾","🏿"]};function o(t){var o=[];return e.each(t.o.plugins.emoji.emojiList,(function(n,a){if(e.isArray(a)){var r=a[0],l=a[1],i=''+r+'',x="emoji-"+r.replace(/:/g,""),s={hasIcon:!1,text:i,fn:function(){return t.execCmd("insertImage",l,!1,!0),!0}};t.addBtnDef(x,s),o.push(x)}else{var F="emoji-"+a.replace(/:/g,""),d={text:a,fn:function(){var e=String.fromCodePoint(a.replace("&#","0"));return t.execCmd("insertText",e),!0}};t.addBtnDef(F,d),o.push(F)}})),o}e.extend(!0,e.trumbowyg,{langs:{en:{emoji:"Add an emoji"},da:{emoji:"Tilføj et humørikon"},de:{emoji:"Emoticon einfügen"},fr:{emoji:"Ajouter un emoji"},hu:{emoji:"Emoji beszúrás"},ja:{emoji:"絵文字の挿入"},ko:{emoji:"이모지 넣기"},ru:{emoji:"Вставить emoji"},tr:{emoji:"Emoji ekle"},zh_cn:{emoji:"添加表情"}},plugins:{emoji:{init:function(e){e.o.plugins.emoji=e.o.plugins.emoji||t;var n={dropdown:o(e)};e.addBtnDef("emoji",n)}}}})}(jQuery),function(e){"use strict";e.extend(!0,e.trumbowyg,{langs:{en:{fontFamily:"Font"},da:{fontFamily:"Skrifttype"},de:{fontFamily:"Schriftart"},fr:{fontFamily:"Police"},hu:{fontFamily:"Betűtípus"},ko:{fontFamily:"글꼴"},nl:{fontFamily:"Lettertype"},pt_br:{fontFamily:"Fonte"},tr:{fontFamily:"Yazı Tipi"},zh_tw:{fontFamily:"字體"}}});var t={fontList:[{name:"Arial",family:"Arial, Helvetica, sans-serif"},{name:"Arial Black",family:"Arial Black, Gadget, sans-serif"},{name:"Comic Sans",family:"Comic Sans MS, Textile, cursive, sans-serif"},{name:"Courier New",family:"Courier New, Courier, monospace"},{name:"Georgia",family:"Georgia, serif"},{name:"Impact",family:"Impact, Charcoal, sans-serif"},{name:"Lucida Console",family:"Lucida Console, Monaco, monospace"},{name:"Lucida Sans",family:"Lucida Sans Uncide, Lucida Grande, sans-serif"},{name:"Palatino",family:"Palatino Linotype, Book Antiqua, Palatino, serif"},{name:"Tahoma",family:"Tahoma, Geneva, sans-serif"},{name:"Times New Roman",family:"Times New Roman, Times, serif"},{name:"Trebuchet",family:"Trebuchet MS, Helvetica, sans-serif"},{name:"Verdana",family:"Verdana, Geneva, sans-serif"}]};function o(t){var o=[];return e.each(t.o.plugins.fontfamily.fontList,(function(e,n){t.addBtnDef("fontfamily_"+e,{title:''+n.name+"",hasIcon:!1,fn:function(){t.execCmd("fontName",n.family,!0)}}),o.push("fontfamily_"+e)})),o}e.extend(!0,e.trumbowyg,{plugins:{fontfamily:{init:function(n){n.o.plugins.fontfamily=e.extend({},t,n.o.plugins.fontfamily||{}),n.addBtnDef("fontfamily",{dropdown:o(n),hasIcon:!1,text:n.lang.fontFamily})}}}})}(jQuery),function(e){"use strict";e.extend(!0,e.trumbowyg,{langs:{en:{fontsize:"Font size",fontsizes:{"x-small":"Extra small",small:"Small",medium:"Regular",large:"Large","x-large":"Extra large",custom:"Custom"},fontCustomSize:{title:"Custom Font Size",label:"Font Size",value:"48px"}},da:{fontsize:"Skriftstørrelse",fontsizes:{"x-small":"Ekstra lille",small:"Lille",medium:"Normal",large:"Stor","x-large":"Ekstra stor",custom:"Brugerdefineret"}},de:{fontsize:"Schriftgröße",fontsizes:{"x-small":"Sehr klein",small:"Klein",medium:"Normal",large:"Groß","x-large":"Sehr groß",custom:"Benutzerdefiniert"},fontCustomSize:{title:"Benutzerdefinierte Schriftgröße",label:"Schriftgröße",value:"48px"}},es:{fontsize:"Tamaño de Fuente",fontsizes:{"x-small":"Extra pequeña",small:"Pegueña",medium:"Regular",large:"Grande","x-large":"Extra Grande",custom:"Customizada"},fontCustomSize:{title:"Tamaño de Fuente Customizada",label:"Tamaño de Fuente",value:"48px"}},fr:{fontsize:"Taille de la police",fontsizes:{"x-small":"Très petit",small:"Petit",medium:"Normal",large:"Grand","x-large":"Très grand",custom:"Taille personnalisée"},fontCustomSize:{title:"Taille de police personnalisée",label:"Taille de la police",value:"48px"}},hu:{fontsize:"Betű méret",fontsizes:{"x-small":"Extra kicsi",small:"Kicsi",medium:"Normális",large:"Nagy","x-large":"Extra nagy",custom:"Egyedi"},fontCustomSize:{title:"Egyedi betű méret",label:"Betű méret",value:"48px"}},it:{fontsize:"Dimensioni del testo",fontsizes:{"x-small":"Molto piccolo",small:"piccolo",regular:"normale",large:"grande","x-large":"Molto grande",custom:"Personalizzato"},fontCustomSize:{title:"Dimensioni del testo personalizzato",label:"Dimensioni del testo",value:"48px"}},ko:{fontsize:"글꼴 크기",fontsizes:{"x-small":"아주 작게",small:"작게",medium:"보통",large:"크게","x-large":"아주 크게",custom:"사용자 지정"},fontCustomSize:{title:"사용자 지정 글꼴 크기",label:"글꼴 크기",value:"48px"}},nl:{fontsize:"Lettergrootte",fontsizes:{"x-small":"Extra klein",small:"Klein",medium:"Normaal",large:"Groot","x-large":"Extra groot",custom:"Tilpasset"}},pt_br:{fontsize:"Tamanho da fonte",fontsizes:{"x-small":"Extra pequeno",small:"Pequeno",regular:"Médio",large:"Grande","x-large":"Extra grande",custom:"Personalizado"},fontCustomSize:{title:"Tamanho de Fonte Personalizado",label:"Tamanho de Fonte",value:"48px"}},tr:{fontsize:"Yazı Boyutu",fontsizes:{"x-small":"Çok Küçük",small:"Küçük",medium:"Normal",large:"Büyük","x-large":"Çok Büyük",custom:"Görenek"}},zh_tw:{fontsize:"字體大小",fontsizes:{"x-small":"最小",small:"小",medium:"中",large:"大","x-large":"最大",custom:"自訂大小"},fontCustomSize:{title:"自訂義字體大小",label:"字體大小",value:"48px"}}}});var t={sizeList:["x-small","small","medium","large","x-large"],allowCustomSize:!0};function o(t,o){t.$ed.focus(),t.saveRange(),t.execCmd("fontSize","1"),t.$ed.find('font[size="1"]').replaceWith((function(){return e("",{css:{"font-size":o},html:this.innerHTML})})),e(t.range.startContainer.parentElement).find('span[style=""]').contents().unwrap(),t.restoreRange()}function n(t){var n=[];if(e.each(t.o.plugins.fontsize.sizeList,(function(e,a){t.addBtnDef("fontsize_"+a,{text:''+(t.lang.fontsizes[a]||a)+"",hasIcon:!1,fn:function(){o(t,a)}}),n.push("fontsize_"+a)})),t.o.plugins.fontsize.allowCustomSize){var a={fn:function(){t.openModalInsert(t.lang.fontCustomSize.title,{size:{label:t.lang.fontCustomSize.label,value:t.lang.fontCustomSize.value}},(function(e){return o(t,e.size),!0}))},text:''+t.lang.fontsizes.custom+"",hasIcon:!1};t.addBtnDef("fontsize_custom",a),n.push("fontsize_custom")}return n}e.extend(!0,e.trumbowyg,{plugins:{fontsize:{init:function(o){o.o.plugins.fontsize=e.extend({},t,o.o.plugins.fontsize||{}),o.addBtnDef("fontsize",{dropdown:n(o)})}}}})}(jQuery),function(e){"use strict";e.extend(!0,e.trumbowyg,{langs:{en:{giphy:"Insert GIF"},fr:{giphy:"Insérer un GIF"},hu:{giphy:"GIF beszúrás"}}});function t(t,o,n,a){var r=(o.width()-20)/3,l=t.data.filter((function(e){return""!==e.images.downsized.url})).map((function(e){var t=e.images.downsized,o=t.height/t.width;return'
'})).join("");if(!0===a){if(0===l.length){if(e("."+n.o.prefix+"giphy-no-result",o).length>0)return;l=''}o.empty()}o.append(l),e("img",o).on("click",(function(){n.restoreRange(),n.execCmd("insertImage",e(this).attr("src"),!1,!0),e("img",o).off(),n.closeModal()}))}var o={rating:"g",apiKey:null,throttleDelay:300,noResultGifUrl:"https://media.giphy.com/media/2Faz9FbRzmwxY0pZS/giphy.gif"};e.extend(!0,e.trumbowyg,{plugins:{giphy:{init:function(n){n.o.plugins.giphy=e.extend({},o,n.o.plugins.giphy||{}),n.addBtnDef("giphy",{fn:function(){if(null===n.o.plugins.giphy.apiKey)throw new Error("You must set a Giphy API Key");var o="https://api.giphy.com/v1/gifs/search?api_key="+n.o.plugins.giphy.apiKey+"&rating="+n.o.plugins.giphy.rating,a=o.replace("/search","/trending"),r={abort:function(){}},l=n.o.prefix,i=''+('')+('
Powered by
')+'
';n.openModal(null,i,!1).one("tbwcancel",(function(){try{r.abort()}catch(e){}n.closeModal()}));var x=e("."+l+"giphy-search"),s=e("."+l+"giphy-close"),F=e("."+l+"giphy-modal"),d=function(){navigator.onLine||e("."+l+"giphy-offline",F).length||(F.empty(),F.append('

You are offline

'))};e.ajax({url:a,dataType:"json",success:function(e){t(e,F,n,!0)},error:d});var u,c,f,p,m=(u=function(){var a=x.val();if(0!==a.length){try{r.abort()}catch(e){}r=e.ajax({url:o+"&q="+encodeURIComponent(a),dataType:"json",success:function(e){t(e,F,n,!0)},error:d})}},c=n.o.plugins.giphy.throttleDelay,function(){var e=this,t=+new Date,o=arguments;f&&t0){t.o.plugins.history._index-=1;var e=t.o.plugins.history._index,o=t.o.plugins.history._stack[e];t.execCmd("html",o),t.o.plugins.history._stack[e]=t.$ed.html(),i(),a()}}},a=function(){var e=t.o.plugins.history._index,o=t.o.plugins.history._stack.length,n=0!==o&&e!==o-1;r("historyUndo",e>0),r("historyRedo",n)},r=function(e,o){var n=t.$box.find(".trumbowyg-"+e+"-button");o?n.removeClass("trumbowyg-disable"):n.hasClass("trumbowyg-disable")||n.addClass("trumbowyg-disable")},l=function(e,t){if(e===t)return!0;if(null==e||null==t)return!1;if(e.length!==t.length)return!1;for(var o=0;o0&&(o.setStartAfter(e.childNodes[e.childNodes.length-1]),o.setEndAfter(e.childNodes[e.childNodes.length-1]),t.doc.getSelection().removeAllRanges(),t.doc.getSelection().addRange(o))};t.$c.on("tbwinit tbwchange",(function(){var o,n,r=t.o.plugins.history._index,i=t.o.plugins.history._stack,x=i.slice(-1)[0]||"

",s=i[r],F=t.$ed.html(),d=t.doc.getSelection().focusNode,u="",c=t.o.plugins.history._focusEl;o=e("
"+x+"
").find("*").map((function(){return this.localName})),n=e("
"+F+"
").find("*").map((function(){return this.localName})),d&&(t.o.plugins.history._focusEl=d,u=d.outerHTML||d.textContent),F!==s&&(u.slice(-1).match(/\s/)||!l(o,n)||t.o.plugins.history._index<=0||d!==c?(t.o.plugins.history._index+=1,t.o.plugins.history._stack=i.slice(0,t.o.plugins.history._index),t.o.plugins.history._stack.push(F)):t.o.plugins.history._stack[r]=F,a())})),t.addBtnDef("historyRedo",o),t.addBtnDef("historyUndo",n)}}}})}(jQuery),function(e){"use strict";var t={src:{label:"URL",required:!0},autoplay:{label:"AutoPlay",required:!1,type:"checkbox"},muted:{label:"Muted",required:!1,type:"checkbox"},preload:{label:"preload options",required:!1}};e.extend(!0,e.trumbowyg,{langs:{en:{insertAudio:"Insert Audio"},da:{insertAudio:"Indsæt lyd"},fr:{insertAudio:"Insérer un son"},hu:{insertAudio:"Audio beszúrás"},ja:{insertAudio:"音声の挿入"},ko:{insertAudio:"소리 넣기"},pt_br:{insertAudio:"Inserir áudio"},ru:{insertAudio:"Вставить аудио"},tr:{insertAudio:"Ses Ekle"}},plugins:{insertAudio:{init:function(o){var n={fn:function(){o.openModalInsert(o.lang.insertAudio,t,(function(t){var n="")[0];return o.range.deleteContents(),o.range.insertNode(a),!0}))}};o.addBtnDef("insertAudio",n)}}}})}(jQuery),function(e){"use strict";e.extend(!0,e.trumbowyg,{langs:{en:{lineheight:"Line height",lineheights:{.9:"Small",normal:"Regular",1.5:"Large","2.0":"Extra large"}},da:{lineheight:"Linjehøjde",lineheights:{.9:"Lille",normal:"Normal",1.5:"Stor","2.0":"Ekstra stor"}},fr:{lineheight:"Hauteur de ligne",lineheights:{.9:"Petite",normal:"Normale",1.5:"Grande","2.0":"Très grande"}},hu:{lineheight:"Line height",lineheights:{.9:"Small",normal:"Regular",1.5:"Large","2.0":"Extra large"}},it:{lineheight:"Altezza linea",lineheights:{.9:"Bassa",normal:"Normale",1.5:"Alta","2.0":"Molto alta"}},ko:{lineheight:"줄 간격",lineheights:{.9:"좁게",normal:"보통",1.5:"넓게","2.0":"아주 넓게"}},nl:{lineheight:"Regelhoogte",lineheights:{.9:"Klein",normal:"Normaal",1.5:"Groot","2.0":"Extra groot"}},pt_br:{lineheight:"Altura de linha",lineheights:{.9:"Pequena",normal:"Regular",1.5:"Grande","2.0":"Extra grande"}},tr:{lineheight:"Satır yüksekliği",lineheights:{.9:"Küçük",normal:"Normal",1.5:"Büyük","2.0":"Çok Büyük"}},zh_tw:{lineheight:"文字間距",lineheights:{.9:"小",normal:"正常",1.5:"大","2.0":"特大"}}}});var t={sizeList:["0.9","normal","1.5","2.0"]};function o(t){var o=[];return e.each(t.o.plugins.lineheight.sizeList,(function(n,a){t.addBtnDef("lineheight_"+a,{text:t.lang.lineheights[a]||a,hasIcon:!1,fn:function(){if(t.saveRange(),""!==t.getRangeText().replace(/\s/g,""))try{var o=function(){var e,t=null;window.getSelection?(e=window.getSelection()).rangeCount&&1!==(t=e.getRangeAt(0).commonAncestorContainer).nodeType&&(t=t.parentNode):(e=document.selection)&&"Control"!==e.type&&(t=e.createRange().parentElement());return t}();e(o).css("lineHeight",a)}catch(e){}}}),o.push("lineheight_"+a)})),o}e.extend(!0,e.trumbowyg,{plugins:{lineheight:{init:function(n){n.o.plugins.lineheight=e.extend({},t,n.o.plugins.lineheight||{}),n.addBtnDef("lineheight",{dropdown:o(n)})}}}})}(jQuery),function(e){"use strict";var t={source:[],formatDropdownItem:function(e){return e.login},formatResult:function(e){return"@"+e.login+" "}};function o(t,o){var n=[];return e.each(t,(function(e,t){var a="mention-"+e,r={hasIcon:!1,text:o.o.plugins.mention.formatDropdownItem(t),fn:function(){return o.execCmd("insertHTML",o.o.plugins.mention.formatResult(t)),!0}};o.addBtnDef(a,r),n.push(a)})),n}e.extend(!0,e.trumbowyg,{langs:{en:{mention:"Mention"},da:{mention:"Nævn"},fr:{mention:"Mentionner"},hu:{mention:"Említ"},ko:{mention:"언급"},pt_br:{mention:"Menção"},ru:{mention:"Упомянуть"},tr:{mention:"Bahset"},zh_tw:{mention:"標記"}},plugins:{mention:{init:function(n){n.o.plugins.mention=e.extend(!0,{},t,n.o.plugins.mention||{});var a={dropdown:o(n.o.plugins.mention.source,n)};n.addBtnDef("mention",a)}}}})}(jQuery),function(e){"use strict";var t={proxy:"https://noembed.com/embed?nowrap=on",urlFiled:"url",data:[],success:void 0,error:void 0};e.extend(!0,e.trumbowyg,{langs:{en:{noembed:"Noembed",noembedError:"Error"},cs:{noembedError:"Chyba"},da:{noembedError:"Fejl"},fr:{noembedError:"Erreur"},hu:{noembed:"Noembed",noembedError:"Hiba"},ja:{noembedError:"エラー"},ko:{noembed:"oEmbed 넣기",noembedError:"에러"},pt_br:{noembed:"Incorporar",noembedError:"Erro"},ru:{noembedError:"Ошибка"},sk:{noembedError:"Chyba"},tr:{noembedError:"Hata"},zh_tw:{noembed:"插入影片",noembedError:"錯誤"}},plugins:{noembed:{init:function(o){o.o.plugins.noembed=e.extend(!0,{},t,o.o.plugins.noembed||{});var n={fn:function(){var t=o.openModalInsert(o.lang.noembed,{url:{label:"URL",required:!0}},(function(n){e.ajax({url:o.o.plugins.noembed.proxy,type:"GET",data:n,cache:!1,dataType:"json",success:o.o.plugins.noembed.success||function(n){n.html?(o.execCmd("insertHTML",n.html),setTimeout((function(){o.closeModal()}),250)):o.addErrorOnModalField(e("input[type=text]",t),n.error)},error:o.o.plugins.noembed.error||function(){o.addErrorOnModalField(e("input[type=text]",t),o.lang.noembedError)}})}))}};o.addBtnDef("noembed",n)}}}})}(jQuery),function(e){"use strict";e.extend(!0,e.trumbowyg,{langs:{en:{mathml:"Insert Formulas",formulas:"Formulas",inline:"Inline"},da:{mathml:"Indsæt formler",formulas:"Formler",inline:"Inline"},fr:{mathml:"Inserer une formule",formulas:"Formule",inline:"En ligne"},hu:{mathml:"Formulák beszúrás",formulas:"Formulák",inline:"Inline"},ko:{mathml:"수식 넣기",formulas:"수식",inline:"글 안에 넣기"},pt_br:{mathml:"Inserir fórmulas",formulas:"Fórmulas",inline:"Em linha"},tr:{mathml:"Formül Ekle",formulas:"Formüller",inline:"Satır içi"},zh_tw:{mathml:"插入方程式",formulas:"方程式",inline:"內嵌"}},plugins:{mathml:{init:function(t){var o={fn:function(){t.saveRange();var o={formulas:{label:t.lang.formulas,required:!0,value:""},inline:{label:t.lang.inline,attributes:{checked:!0},type:"checkbox",required:!1}};o.formulas.value=t.getRangeText(),o.inline.attributes.checked=!0,t.openModalInsert(t.lang.mathml,o,(function n(a){var r=a.inline?"$":"$$";if(t.currentMathNode)e(t.currentMathNode).html(r+" "+a.formulas+" "+r).attr("formulas",a.formulas).attr("inline",a.inline?"true":"false");else{var l=''+r+" "+a.formulas+" "+r+"",i=e(l)[0];i.onclick=function(){t.currentMathNode=this,o.formulas.value=e(this).attr("formulas"),"true"===e(this).attr("inline")?o.inline.attributes.checked=!0:delete o.inline.attributes.checked,t.openModalInsert(t.lang.mathml,o,n)},t.range.deleteContents(),t.range.insertNode(i)}return t.currentMathNode=!1,MathJax.Hub.Queue(["Typeset",MathJax.Hub]),!0}))}};t.addBtnDef("mathml",o)}}}})}(jQuery),function(e){"use strict";var t={enabled:!0,endpoints:["https://noembed.com/embed?nowrap=on","https://api.maxmade.nl/url2iframe/embed"]};e.extend(!0,e.trumbowyg,{plugins:{pasteEmbed:{init:function(o){o.o.plugins.pasteEmbed=e.extend(!0,{},t,o.o.plugins.pasteEmbed||{}),o.o.plugins.pasteEmbed.enabled&&o.pasteHandlers.push((function(t){try{var n=(t.originalEvent||t).clipboardData.getData("Text"),a=o.o.plugins.pasteEmbed.endpoints,r=null;if(n.startsWith("http")){t.stopPropagation(),t.preventDefault();var l={url:n.trim()},i="",x=0;r&&r.transport&&r.transport.abort(),r=e.ajax({crossOrigin:!0,url:a[x],type:"GET",data:l,cache:!1,dataType:"jsonp",success:function(e){e.html?(x=0,i=e.html):x+=1},error:function(){x+=1},complete:function(){0===i.length&&x",{href:n,text:n}).prop("outerHTML")),i.length>0&&(x=0,o.execCmd("insertHTML",i))}})}}catch(e){}}))}}}})}(jQuery),function(e){"use strict";e.extend(!0,e.trumbowyg,{plugins:{pasteImage:{init:function(e){e.pasteHandlers.push((function(t){try{for(var o,n=(t.originalEvent||t).clipboardData.items,a=!1,r=n.length-1;r>=0;r-=1)n[r].type.match(/^image\//)&&((o=new FileReader).onloadend=function(t){e.execCmd("insertImage",t.target.result,!1,!0)},o.readAsDataURL(n[r].getAsFile()),a=!0);a&&(t.stopPropagation(),t.preventDefault())}catch(e){}}))}}}})}(jQuery),function(e,t,o,n){"use strict";"object"===_typeof(void 0)&&"object"===_typeof((void 0).exports)?(void 0).exports=e((void 0)("jquery")):e(jQuery)}((function(e){"use strict";e.fn.uiresizable=e.fn.resizable,delete e.fn.resizable})),function(e){"use strict";var t={minSize:32,step:4};function o(e){e.stopPropagation(),e.preventDefault()}var n=new function(){this.resizeCanvas=document.createElement("canvas"),this.resizeCanvas.setAttribute("tabindex","0"),this.resizeCanvas.id="trumbowyg-resizimg-"+ +new Date,this.ctx=null,this.resizeImg=null,this.pressEscape=function(e){e.reset()},this.pressBackspaceOrDelete=function(t){e(t.resizeCanvas).replaceWith(""),t.resizeImg=null};var t,n,a=!1,r=!1,l=function(e){var o=e.getBoundingClientRect();t=o.left,n=o.top},i=function(e,t,o,n,a){return t.translate(.5,.5),t.lineWidth=1,t.drawImage(o,5,5,n-10,a-10),t.beginPath(),t.rect(5,5,n-10,a-10),t.stroke(),t.beginPath(),t.fillStyle="rgb(255, 255, 255)",t.rect(n-10,a-10,9,9),t.fill(),t.stroke(),l(e),t};this.init=function(){var t=this;e(window).on("scroll resize",(function(){t.reCalcOffset()}))},this.reCalcOffset=function(){l(this.resizeCanvas)},this.canvasId=function(){return this.resizeCanvas.id},this.isActive=function(){return null!==this.resizeImg},this.isFocusedNow=function(){return a},this.blurNow=function(){a=!1},this.reset=function(){null!==this.resizeImg&&(this.resizeImg.width=this.resizeCanvas.clientWidth-10,this.resizeImg.height=this.resizeCanvas.clientHeight-10,this.resizeImg.removeAttribute("style"),e(this.resizeCanvas).replaceWith(e(this.resizeImg)),this.resizeCanvas.removeAttribute("style"),this.resizeImg=null)},this.setup=function(l,x){if(this.resizeImg=l,!this.resizeCanvas.getContext)return!1;a=!0,this.resizeCanvas.width=e(this.resizeImg).width()+10,this.resizeCanvas.height=e(this.resizeImg).height()+10,this.resizeCanvas.style.margin="-5px",this.ctx=this.resizeCanvas.getContext("2d"),e(this.resizeImg).replaceWith(e(this.resizeCanvas)),i(this.resizeCanvas,this.ctx,this.resizeImg,this.resizeCanvas.width,this.resizeCanvas.height),e(this.resizeCanvas).resizable(x).on("mousedown",o);var s=this;return e(this.resizeCanvas).on("mousemove",(function(e){var o=Math.round(e.clientX-t),a=Math.round(e.clientY-n),l=r;s.ctx.rect(s.resizeCanvas.width-10,s.resizeCanvas.height-10,9,9),l!==(r=s.ctx.isPointInPath(o,a))&&(this.style.cursor=r?"se-resize":"default")})).on("keydown",(function(e){if(s.isActive()){var t=e.keyCode;27===t?s.pressEscape(s):8!==t&&46!==t||s.pressBackspaceOrDelete(s)}})).on("focus",o),this.resizeCanvas.focus(),!0},this.refresh=function(){this.resizeCanvas.getContext&&(this.resizeCanvas.width=this.resizeCanvas.clientWidth,this.resizeCanvas.height=this.resizeCanvas.clientHeight,i(this.resizeCanvas,this.ctx,this.resizeImg,this.resizeCanvas.width,this.resizeCanvas.height))}};function a(e){e.$ed.find("canvas.resizable").resizable("destroy").off("mousedown",o).removeClass("resizable"),n.reset(),e.syncCode()}e.extend(!0,e.trumbowyg,{plugins:{resizimg:{init:function(r){function l(){r.$ed.find("img").off("click").on("click",(function(e){n.isActive()&&n.reset(),n.setup(this,r.o.plugins.resizimg.resizable),o(e)}))}r.o.plugins.resizimg=e.extend(!0,{},t,r.o.plugins.resizimg||{},{resizable:{resizeWidth:!1,onDragStart:function(e,t){var o=r.o.plugins.resizimg,n=e.pageX-t.offset().left,a=e.pageY-t.offset().top;if(n"},da:{preformatted:"Præformateret
"},fr:{preformatted:"Exemple de code 
"},hu:{preformatted:"Kód minta 
"},it:{preformatted:"Codice 
"},ja:{preformatted:"コードサンプル 
"},ko:{preformatted:"코드 예제 
"},pt_br:{preformatted:"Exemple de código 
"},ru:{preformatted:"Пример кода 
"},tr:{preformatted:"Kod örneği 
"},zh_cn:{preformatted:"代码示例 
"},zh_tw:{preformatted:"代碼範例 
"}},plugins:{preformatted:{init:function(t){var o={fn:function(){t.saveRange();var o,n,a=t.getRangeText();if(""!==a.replace(/\s/g,""))try{var r=function(){var e,t=null;window.getSelection?(e=window.getSelection()).rangeCount&&1!==(t=e.getRangeAt(0).commonAncestorContainer).nodeType&&(t=t.parentNode):(e=document.selection)&&"Control"!==e.type&&(t=e.createRange().parentElement());return t}().tagName.toLowerCase();if("code"===r||"pre"===r)return function(){var t=null;if(document.selection)t=document.selection.createRange().parentElement();else{var o=window.getSelection();o.rangeCount>0&&(t=o.getRangeAt(0).startContainer.parentNode)}var n=e(t).contents().closest("pre").length,a=e(t).contents().closest("code").length;n&&a?e(t).contents().unwrap("code").unwrap("pre"):n?e(t).contents().unwrap("pre"):a&&e(t).contents().unwrap("code")}();t.execCmd("insertHTML","
"+(o=a,(n=document.createElement("DIV")).innerHTML=o,(n.textContent||n.innerText||"")+"
"))}catch(e){}},tag:"pre"};t.addBtnDef("preformatted",o)}}}})}(jQuery),function(e){"use strict";var t={symbolList:["0024","20AC","00A3","00A2","00A5","00A4","2030",null,"00A9","00AE","2122",null,"00A7","00B6","00C6","00E6","0152","0153",null,"2022","25CF","2023","25B6","2B29","25C6",null,"00B1","00D7","00F7","21D2","21D4","220F","2211","2243","2264","2265"]};function o(t){var o=[];return e.each(t.o.plugins.specialchars.symbolList,(function(e,n){var a="symbol-"+(n=null===n?" ":"&#x"+n).replace(/:/g,""),r={text:n,hasIcon:!1,fn:function(){var e=String.fromCodePoint(parseInt(n.replace("&#","0")));return t.execCmd("insertText",e),!0}};t.addBtnDef(a,r),o.push(a)})),o}e.extend(!0,e.trumbowyg,{langs:{en:{specialChars:"Special characters"},fr:{specialChars:"Caractères spéciaux"},hu:{specialChars:"Speciális karakterek"},ko:{specialChars:"특수문자"}},plugins:{specialchars:{init:function(e){e.o.plugins.specialchars=e.o.plugins.specialchars||t;var n={dropdown:o(e)};e.addBtnDef("specialChars",n)}}}})}(jQuery),function(e){"use strict";var t={rows:8,columns:8,styler:"table"};e.extend(!0,e.trumbowyg,{langs:{en:{table:"Insert table",tableAddRow:"Add row",tableAddRowAbove:"Add row above",tableAddColumnLeft:"Add column to the left",tableAddColumn:"Add column to the right",tableDeleteRow:"Delete row",tableDeleteColumn:"Delete column",tableDestroy:"Delete table",error:"Error"},cs:{table:"Vytvořit příkaz Table",tableAddRow:"Přidat řádek",tableAddRowAbove:"Přidat řádek",tableAddColumnLeft:"Přidat sloupec",tableAddColumn:"Přidat sloupec",error:"Chyba"},da:{table:"Indsæt tabel",tableAddRow:"Tilføj række",tableAddRowAbove:"Tilføj række",tableAddColumnLeft:"Tilføj kolonne",tableAddColumn:"Tilføj kolonne",tableDeleteRow:"Slet række",tableDeleteColumn:"Slet kolonne",tableDestroy:"Slet tabel",error:"Fejl"},de:{table:"Tabelle einfügen",tableAddRow:"Zeile hinzufügen",tableAddRowAbove:"Zeile hinzufügen",tableAddColumnLeft:"Spalte hinzufügen",tableAddColumn:"Spalte hinzufügen",tableDeleteRow:"Zeile löschen",tableDeleteColumn:"Spalte löschen",tableDestroy:"Tabelle löschen",error:"Error"},fr:{table:"Insérer un tableau",tableAddRow:"Ajouter des lignes",tableAddRowAbove:"Ajouter des lignes",tableAddColumnLeft:"Ajouter des colonnes",tableAddColumn:"Ajouter des colonnes",tableDeleteRow:"Effacer la ligne",tableDeleteColumn:"Effacer la colonne",tableDestroy:"Effacer le tableau",error:"Erreur"},hu:{table:"Táblázat beszúrás",tableAddRow:"Sor hozzáadás",tableAddRowAbove:"Sor beszúrás fönt",tableAddColumnLeft:"Sor beszúrás balra",tableAddColumn:"Sor beszúrás jobbra",tableDeleteRow:"Sor törlés",tableDeleteColumn:"Oszlop törlés",tableDestroy:"Táblázat törlés",error:"Hiba"},id:{table:"Sisipkan tabel",tableAddRow:"Sisipkan baris",tableAddRowAbove:"Sisipkan baris",tableAddColumnLeft:"Sisipkan kolom",tableAddColumn:"Sisipkan kolom",tableDeleteRow:"Hapus baris",tableDeleteColumn:"Hapus kolom",tableDestroy:"Hapus tabel",error:"Galat"},ja:{table:"表の挿入",tableAddRow:"行の追加",tableAddRowAbove:"行の追加",tableAddColumnLeft:"列の追加",tableAddColumn:"列の追加",error:"エラー"},ko:{table:"표 넣기",tableAddRow:"줄 추가",tableAddRowAbove:"줄 추가",tableAddColumnLeft:"칸 추가",tableAddColumn:"칸 추가",tableDeleteRow:"줄 삭제",tableDeleteColumn:"칸 삭제",tableDestroy:"표 지우기",error:"에러"},pt_br:{table:"Inserir tabela",tableAddRow:"Adicionar linha",tableAddRowAbove:"Adicionar linha",tableAddColumnLeft:"Adicionar coluna",tableAddColumn:"Adicionar coluna",tableDeleteRow:"Deletar linha",tableDeleteColumn:"Deletar coluna",tableDestroy:"Deletar tabela",error:"Erro"},ru:{table:"Вставить таблицу",tableAddRow:"Добавить строку",tableAddRowAbove:"Добавить строку",tableAddColumnLeft:"Добавить столбец",tableAddColumn:"Добавить столбец",tableDeleteRow:"Удалить строку",tableDeleteColumn:"Удалить столбец",tableDestroy:"Удалить таблицу",error:"Ошибка"},sk:{table:"Vytvoriť tabuľky",tableAddRow:"Pridať riadok",tableAddRowAbove:"Pridať riadok",tableAddColumnLeft:"Pridať stĺpec",tableAddColumn:"Pridať stĺpec",error:"Chyba"},tr:{table:"Tablo ekle",tableAddRow:"Satır ekle",tableAddRowAbove:"Satır ekle",tableAddColumnLeft:"Kolon ekle",tableAddColumn:"Kolon ekle",error:"Hata"},zh_tw:{table:"插入表格",tableAddRow:"加入行",tableAddRowAbove:"加入行",tableAddColumnLeft:"加入列",tableAddColumn:"加入列",tableDeleteRow:"刪除行",tableDeleteColumn:"刪除列",tableDestroy:"刪除表格",error:"錯誤"}},plugins:{table:{init:function(o){o.o.plugins.table=e.extend(!0,{},t,o.o.plugins.table||{});var n={fn:function(){o.saveRange();var t=o.o.prefix+"dropdown",n={class:t+"-table "+t+" "+o.o.prefix+"fixed-top"};n["data-"+t]="table";var l=e("
",n);if(0===o.$box.find("."+t+"-table").length?o.$box.append(l.hide()):l=o.$box.find("."+t+"-table"),l.html(""),o.$box.find("."+o.o.prefix+"table-button").hasClass(o.o.prefix+"active-button"))l.append(o.buildSubBtn("tableAddRowAbove")),l.append(o.buildSubBtn("tableAddRow")),l.append(o.buildSubBtn("tableAddColumnLeft")),l.append(o.buildSubBtn("tableAddColumn")),l.append(o.buildSubBtn("tableDeleteRow")),l.append(o.buildSubBtn("tableDeleteColumn")),l.append(o.buildSubBtn("tableDestroy"));else{var i=e("
").appendTo(i);o.range.deleteContents(),o.range.insertNode(t[0]),o.$c.trigger("tbwchange")},i={title:o.lang.tableAddRow,text:o.lang.tableAddRow,ico:"row-below",fn:function(){o.saveRange();var t=o.doc.getSelection().focusNode,n=e(t).closest("tr"),a=e(t).closest("table");if(a.length>0){for(var r=e("
");e("").appendTo(i);for(var x=0;x").appendTo(i),F=0;F").appendTo(s);i.find("td").on("mouseover",a),i.find("td").on("mousedown",r),l.append(i),l.append(e('
1x1
'))}o.dropdown("table")}},a=function(t){var o=e(t.target).closest("table"),n=this.cellIndex,a=this.parentNode.rowIndex;o.find("td").removeClass("active");for(var r=0;r<=a;r+=1)for(var l=0;l<=n;l+=1)o.find("tr:nth-of-type("+(r+1)+")").find("td:nth-of-type("+(l+1)+")").addClass("active");o.next(".trumbowyg-table-size").html(n+1+"x"+(a+1))},r=function(){o.saveRange();var t=e("
");e("").appendTo(t),o.o.plugins.table.styler&&t.attr("class",o.o.plugins.table.styler);for(var n=this.cellIndex,a=this.parentNode.rowIndex,r=0;r<=a;r+=1)for(var l=e("").appendTo(t),i=0;i<=n;i+=1)e(""),l=0;l").appendTo(r);n.after(r)}o.syncCode()}},i={title:o.lang.tableAddRowAbove,text:o.lang.tableAddRowAbove,ico:"row-above",fn:function(){o.saveRange();var t=o.doc.getSelection().focusNode,n=e(t).closest("tr"),a=e(t).closest("table");if(a.length>0){for(var r=e(""),l=0;l").appendTo(r);n.before(r)}o.syncCode()}},x={title:o.lang.tableAddColumn,text:o.lang.tableAddColumn,ico:"col-right",fn:function(){o.saveRange();var t=o.doc.getSelection().focusNode,n=e(t).closest("td"),a=e(t).closest("table"),r=n.index();a.length>0&&e(a).find("tr").each((function(){e(e(this).children()[r]).after("")})),o.syncCode()}},s={title:o.lang.tableAddColumnLeft,text:o.lang.tableAddColumnLeft,ico:"col-left",fn:function(){o.saveRange();var t=o.doc.getSelection().focusNode,n=e(t).closest("td"),a=e(t).closest("table"),r=n.index();a.length>0&&e(a).find("tr").each((function(){e(e(this).children()[r]).before("")})),o.syncCode()}},F={title:o.lang.tableDestroy,text:o.lang.tableDestroy,ico:"table-delete",fn:function(){o.saveRange();var t=o.doc.getSelection().focusNode;e(t).closest("table").remove(),o.syncCode()}},d={title:o.lang.tableDeleteRow,text:o.lang.tableDeleteRow,ico:"row-delete",fn:function(){o.saveRange();var t=o.doc.getSelection().focusNode;e(t).closest("tr").remove(),o.syncCode()}},u={title:o.lang.tableDeleteColumn,text:o.lang.tableDeleteColumn,ico:"col-delete",fn:function(){o.saveRange();var t=o.doc.getSelection().focusNode,n=e(t).closest("table"),a=e(t).closest("td").index();e(n).find("tr").each((function(){e(this).find("td:eq("+a+")").remove()})),o.syncCode()}};o.addBtnDef("table",n),o.addBtnDef("tableAddRowAbove",i),o.addBtnDef("tableAddRow",l),o.addBtnDef("tableAddColumnLeft",s),o.addBtnDef("tableAddColumn",x),o.addBtnDef("tableDeleteRow",d),o.addBtnDef("tableDeleteColumn",u),o.addBtnDef("tableDestroy",F)}}}})}(jQuery),function(e){"use strict";var t={serverPath:"",fileFieldName:"fileToUpload",data:[],headers:{},xhrFields:{},urlPropertyName:"file",statusPropertyName:"success",success:void 0,error:void 0,imageWidthModalEdit:!1};function o(e,t){var n=t.shift(),a=t;if(null!==e){if(0===a.length)return e[n];if("object"===_typeof(e))return o(e[n],a)}return e}!function(){if(!e.trumbowyg.addedXhrProgressEvent){var t=e.ajaxSettings.xhr;e.ajaxSetup({xhr:function(){var e=this,o=t();return o&&"object"===_typeof(o.upload)&&void 0!==e.progressUpload&&o.upload.addEventListener("progress",(function(t){e.progressUpload(t)}),!1),o}}),e.trumbowyg.addedXhrProgressEvent=!0}}(),e.extend(!0,e.trumbowyg,{langs:{en:{upload:"Upload",file:"File",uploadError:"Error"},cs:{upload:"Nahrát obrázek",file:"Soubor",uploadError:"Chyba"},da:{upload:"Upload",file:"Fil",uploadError:"Fejl"},de:{upload:"Hochladen",file:"Datei",uploadError:"Fehler"},fr:{upload:"Envoi",file:"Fichier",uploadError:"Erreur"},hu:{upload:"Feltöltés",file:"Fájl",uploadError:"Hiba"},ja:{upload:"アップロード",file:"ファイル",uploadError:"エラー"},ko:{upload:"그림 올리기",file:"파일",uploadError:"에러"},pt_br:{upload:"Enviar do local",file:"Arquivo",uploadError:"Erro"},ru:{upload:"Загрузка",file:"Файл",uploadError:"Ошибка"},sk:{upload:"Nahrať",file:"Súbor",uploadError:"Chyba"},tr:{upload:"Yükle",file:"Dosya",uploadError:"Hata"},zh_cn:{upload:"上传",file:"文件",uploadError:"错误"},zh_tw:{upload:"上傳",file:"文件",uploadError:"錯誤"}},plugins:{upload:{init:function(n){n.o.plugins.upload=e.extend(!0,{},t,n.o.plugins.upload||{});var a={fn:function(){n.saveRange();var t,a=n.o.prefix,r={file:{type:"file",required:!0,attributes:{accept:"image/*"}},alt:{label:"description",value:n.getRangeText()}};n.o.plugins.upload.imageWidthModalEdit&&(r.width={value:""});var l=n.openModalInsert(n.lang.upload,r,(function(r){var i=new FormData;i.append(n.o.plugins.upload.fileFieldName,t),n.o.plugins.upload.data.map((function(e){i.append(e.name,e.value)})),e.map(r,(function(e,t){"file"!==t&&i.append(t,e)})),0===e("."+a+"progress",l).length&&e("."+a+"modal-title",l).after(e("
",{class:a+"progress"}).append(e("
",{class:a+"progress-bar"}))),e.ajax({url:n.o.plugins.upload.serverPath,headers:n.o.plugins.upload.headers,xhrFields:n.o.plugins.upload.xhrFields,type:"POST",data:i,cache:!1,dataType:"json",processData:!1,contentType:!1,progressUpload:function(t){e("."+a+"progress-bar").css("width",Math.round(100*t.loaded/t.total)+"%")},success:function(t){if(n.o.plugins.upload.success)n.o.plugins.upload.success(t,n,l,r);else if(o(t,n.o.plugins.upload.statusPropertyName.split("."))){var a=o(t,n.o.plugins.upload.urlPropertyName.split("."));n.execCmd("insertImage",a,!1,!0);var i=e('img[src="'+a+'"]:not([alt])',n.$box);i.attr("alt",r.alt),n.o.imageWidthModalEdit&&parseInt(r.width)>0&&i.attr({width:r.width}),setTimeout((function(){n.closeModal()}),250),n.$c.trigger("tbwuploadsuccess",[n,t,a])}else n.addErrorOnModalField(e("input[type=file]",l),n.lang[t.message]),n.$c.trigger("tbwuploaderror",[n,t])},error:n.o.plugins.upload.error||function(){n.addErrorOnModalField(e("input[type=file]",l),n.lang.uploadError),n.$c.trigger("tbwuploaderror",[n])}})}));e("input[type=file]").on("change",(function(e){try{t=e.target.files[0]}catch(o){t=e.target.value}}))}};n.addBtnDef("upload",a)}}}})}(jQuery),function(e){"use strict";function t(t){var o=t.o.plugins.templates,n=[];return e.each(o,(function(e,o){t.addBtnDef("template_"+e,{fn:function(){t.html(o.html)},hasIcon:!1,title:o.name}),n.push("template_"+e)})),n}e.extend(!0,e.trumbowyg,{langs:{en:{template:"Template"},da:{template:"Skabelon"},de:{template:"Vorlage"},fr:{template:"Patron"},hu:{template:"Sablon"},ja:{template:"テンプレート"},ko:{template:"서식"},nl:{template:"Sjabloon"},pt_br:{template:"Modelo"},ru:{template:"Шаблон"},tr:{template:"Şablon"},zh_tw:{template:"模板"}}}),e.extend(!0,e.trumbowyg,{plugins:{template:{shouldInit:function(e){return e.o.plugins.hasOwnProperty("templates")},init:function(e){e.addBtnDef("template",{dropdown:t(e),hasIcon:!1,text:e.lang.template})}}}})}(jQuery); diff --git a/src/OrchardCore.Modules/OrchardCore.Resources/wwwroot/Styles/trumbowyg-plugins.css b/src/OrchardCore.Modules/OrchardCore.Resources/wwwroot/Styles/trumbowyg-plugins.css index 3771c20de40..697558b5450 100644 --- a/src/OrchardCore.Modules/OrchardCore.Resources/wwwroot/Styles/trumbowyg-plugins.css +++ b/src/OrchardCore.Modules/OrchardCore.Resources/wwwroot/Styles/trumbowyg-plugins.css @@ -221,17 +221,6 @@ .trumbowyg-giphy-modal .img-container img.tbw-loaded { opacity: 1; } -[dir] .trumbowyg-highlight-form-group { - margin: 15px 10px; } - .trumbowyg-highlight-form-group .trumbowyg-highlight-form-control { - width: 100%; - font-size: 14px; } - [dir] .trumbowyg-highlight-form-group .trumbowyg-highlight-form-control { - border: 1px solid #DEDEDE; - padding: 7px; } - .trumbowyg-highlight-form-group .trumbowyg-highlight-form-control.code { - height: 200px; } - .mathMlContainer { position: relative; } .mathMlContainer[inline="false"] { @@ -275,36 +264,6 @@ left: 0; background-image: linear-gradient(to left, rgba(255, 255, 255, 0) 0%, #ffffff 80%, #ffffff 100%); } -.trumbowyg-editor table { - width: 100%; } - [dir] .trumbowyg-editor table td { - border: 1px dotted #e7eaec; - padding: 8px; } - -.trumbowyg-dropdown-table table { - display: inline-block; } - -[dir] .trumbowyg-dropdown-table table { - margin: 10px; } - -.trumbowyg-dropdown-table table td { - display: inline-block; - height: 20px; - width: 20px; } - -[dir] .trumbowyg-dropdown-table table td { - margin: 1px; - padding: 0; - background-color: #fff; - box-shadow: 0 0 0 1px #cecece inset; } - [dir] .trumbowyg-dropdown-table table td.active { - background-color: #00b393; - box-shadow: none; - cursor: pointer; } - -[dir] .trumbowyg-dropdown-table .trumbowyg-table-size { - text-align: center; } - .trumbowyg-symbol-\ -dropdown-button { display: none !important; } @@ -354,3 +313,33 @@ width: 22px; height: 22px; display: inline-block; } + +.trumbowyg-editor table { + width: 100%; } + [dir] .trumbowyg-editor table td { + border: 1px dotted #e7eaec; + padding: 8px; } + +.trumbowyg-dropdown-table table { + display: inline-block; } + +[dir] .trumbowyg-dropdown-table table { + margin: 10px; } + +.trumbowyg-dropdown-table table td { + display: inline-block; + height: 20px; + width: 20px; } + +[dir] .trumbowyg-dropdown-table table td { + margin: 1px; + padding: 0; + background-color: #fff; + box-shadow: 0 0 0 1px #cecece inset; } + [dir] .trumbowyg-dropdown-table table td.active { + background-color: #00b393; + box-shadow: none; + cursor: pointer; } + +[dir] .trumbowyg-dropdown-table .trumbowyg-table-size { + text-align: center; } diff --git a/src/OrchardCore.Modules/OrchardCore.Resources/wwwroot/Styles/trumbowyg-plugins.min.css b/src/OrchardCore.Modules/OrchardCore.Resources/wwwroot/Styles/trumbowyg-plugins.min.css index 7e03dfc69f4..42e979b7554 100644 --- a/src/OrchardCore.Modules/OrchardCore.Resources/wwwroot/Styles/trumbowyg-plugins.min.css +++ b/src/OrchardCore.Modules/OrchardCore.Resources/wwwroot/Styles/trumbowyg-plugins.min.css @@ -1 +1 @@ -.trumbowyg-dropdown-backColor:not(.trumbowyg-dropdown--color-list),.trumbowyg-dropdown-foreColor:not(.trumbowyg-dropdown--color-list){max-width:276px;overflow:initial}[dir] .trumbowyg-dropdown-backColor:not(.trumbowyg-dropdown--color-list),[dir] .trumbowyg-dropdown-foreColor:not(.trumbowyg-dropdown--color-list){padding:7px 5px}.trumbowyg-dropdown-backColor:not(.trumbowyg-dropdown--color-list) button,.trumbowyg-dropdown-foreColor:not(.trumbowyg-dropdown--color-list) button{display:block;position:relative;text-indent:-9999px;height:20px;width:20px}[dir] .trumbowyg-dropdown-backColor:not(.trumbowyg-dropdown--color-list) button,[dir] .trumbowyg-dropdown-foreColor:not(.trumbowyg-dropdown--color-list) button{border:1px solid #333;padding:0;margin:2px}[dir=ltr] .trumbowyg-dropdown-backColor:not(.trumbowyg-dropdown--color-list) button,[dir=ltr] .trumbowyg-dropdown-foreColor:not(.trumbowyg-dropdown--color-list) button{float:left}[dir=rtl] .trumbowyg-dropdown-backColor:not(.trumbowyg-dropdown--color-list) button,[dir=rtl] .trumbowyg-dropdown-foreColor:not(.trumbowyg-dropdown--color-list) button{float:right}.trumbowyg-dropdown-backColor:not(.trumbowyg-dropdown--color-list) button:focus::after,.trumbowyg-dropdown-backColor:not(.trumbowyg-dropdown--color-list) button:hover::after,.trumbowyg-dropdown-foreColor:not(.trumbowyg-dropdown--color-list) button:focus::after,.trumbowyg-dropdown-foreColor:not(.trumbowyg-dropdown--color-list) button:hover::after{content:" ";display:block;position:absolute;top:-5px;width:27px;height:27px;z-index:10}[dir] .trumbowyg-dropdown-backColor:not(.trumbowyg-dropdown--color-list) button:focus::after,[dir] .trumbowyg-dropdown-backColor:not(.trumbowyg-dropdown--color-list) button:hover::after,[dir] .trumbowyg-dropdown-foreColor:not(.trumbowyg-dropdown--color-list) button:focus::after,[dir] .trumbowyg-dropdown-foreColor:not(.trumbowyg-dropdown--color-list) button:hover::after{background:inherit;border:1px solid #fff;box-shadow:#000 0 0 2px}[dir=ltr] .trumbowyg-dropdown-backColor:not(.trumbowyg-dropdown--color-list) button:focus::after,[dir=ltr] .trumbowyg-dropdown-backColor:not(.trumbowyg-dropdown--color-list) button:hover::after,[dir=ltr] .trumbowyg-dropdown-foreColor:not(.trumbowyg-dropdown--color-list) button:focus::after,[dir=ltr] .trumbowyg-dropdown-foreColor:not(.trumbowyg-dropdown--color-list) button:hover::after{left:-5px}[dir=rtl] .trumbowyg-dropdown-backColor:not(.trumbowyg-dropdown--color-list) button:focus::after,[dir=rtl] .trumbowyg-dropdown-backColor:not(.trumbowyg-dropdown--color-list) button:hover::after,[dir=rtl] .trumbowyg-dropdown-foreColor:not(.trumbowyg-dropdown--color-list) button:focus::after,[dir=rtl] .trumbowyg-dropdown-foreColor:not(.trumbowyg-dropdown--color-list) button:hover::after{right:-5px}.trumbowyg-dropdown-backColor.trumbowyg-dropdown--color-list button:not(.trumbowyg-backColorRemove-dropdown-button){position:relative;color:#fff!important}.trumbowyg-dropdown-backColor.trumbowyg-dropdown--color-list button:not(.trumbowyg-backColorRemove-dropdown-button):focus::after,.trumbowyg-dropdown-backColor.trumbowyg-dropdown--color-list button:not(.trumbowyg-backColorRemove-dropdown-button):hover::after{content:" ";display:block;position:absolute;top:13px;width:0;height:0}[dir] .trumbowyg-dropdown-backColor.trumbowyg-dropdown--color-list button:not(.trumbowyg-backColorRemove-dropdown-button):focus::after,[dir] .trumbowyg-dropdown-backColor.trumbowyg-dropdown--color-list button:not(.trumbowyg-backColorRemove-dropdown-button):hover::after{border:5px solid transparent}[dir=ltr] .trumbowyg-dropdown-backColor.trumbowyg-dropdown--color-list button:not(.trumbowyg-backColorRemove-dropdown-button):focus::after,[dir=ltr] .trumbowyg-dropdown-backColor.trumbowyg-dropdown--color-list button:not(.trumbowyg-backColorRemove-dropdown-button):hover::after{left:0;border-left-color:#fff}[dir=rtl] .trumbowyg-dropdown-backColor.trumbowyg-dropdown--color-list button:not(.trumbowyg-backColorRemove-dropdown-button):focus::after,[dir=rtl] .trumbowyg-dropdown-backColor.trumbowyg-dropdown--color-list button:not(.trumbowyg-backColorRemove-dropdown-button):hover::after{right:0;border-right-color:#fff}.trumbowyg-dropdown-emoji{width:265px}[dir=ltr] .trumbowyg-dropdown-emoji{padding:7px 0 7px 5px}[dir=rtl] .trumbowyg-dropdown-emoji{padding:7px 5px 7px 0}.trumbowyg-dropdown-emoji svg{display:none!important}.trumbowyg-dropdown-emoji button{display:block;position:relative;height:26px;width:26px;line-height:24px}[dir] .trumbowyg-dropdown-emoji button{padding:0;margin:2px;text-align:center}[dir=ltr] .trumbowyg-dropdown-emoji button{float:left}[dir=rtl] .trumbowyg-dropdown-emoji button{float:right}.trumbowyg-dropdown-emoji button:focus::after,.trumbowyg-dropdown-emoji button:hover::after{display:block;position:absolute;top:-5px;height:27px;width:27px;z-index:10}[dir] .trumbowyg-dropdown-emoji button:focus::after,[dir] .trumbowyg-dropdown-emoji button:hover::after{background:inherit;box-shadow:#000 0 0 2px;background-color:transparent}[dir=ltr] .trumbowyg-dropdown-emoji button:focus::after,[dir=ltr] .trumbowyg-dropdown-emoji button:hover::after{left:-5px}[dir=rtl] .trumbowyg-dropdown-emoji button:focus::after,[dir=rtl] .trumbowyg-dropdown-emoji button:hover::after{right:-5px}.trumbowyg .emoji{width:22px;height:22px;display:inline-block}[dir] .trumbowyg-giphy-button svg{transform:scale(1.22)}.trumbowyg-giphy-search{display:block;width:80%}[dir] .trumbowyg-giphy-search{margin:5%}[dir=ltr] .trumbowyg-giphy-search{padding-left:10px;padding-right:150px}[dir=rtl] .trumbowyg-giphy-search{padding-right:10px;padding-left:150px}.trumbowyg-giphy-close{position:absolute;top:calc(5% + 8px);width:30px;height:30px}[dir] .trumbowyg-giphy-close{background:0 0;border:1px solid transparent}[dir=ltr] .trumbowyg-giphy-close{right:calc(5% - 2px)}[dir=rtl] .trumbowyg-giphy-close{left:calc(5% - 2px)}.trumbowyg-giphy-close:focus,.trumbowyg-giphy-close:hover{outline:0}[dir] .trumbowyg-giphy-close:focus,[dir] .trumbowyg-giphy-close:hover{background:#ecf0f1}[dir] .trumbowyg-giphy-close:focus{border-color:rgba(0,0,0,.3)}.trumbowyg-powered-by-giphy{position:absolute;top:calc(5% + 12px);pointer-events:none;user-select:none}[dir=ltr] .trumbowyg-powered-by-giphy{right:calc(15% + 10px)}[dir=rtl] .trumbowyg-powered-by-giphy{left:calc(15% + 10px)}.trumbowyg-powered-by-giphy span{text-transform:uppercase;font-weight:700;font-size:10px;opacity:.6}.trumbowyg-powered-by-giphy svg{width:66px;height:15px;vertical-align:bottom;opacity:.45}[dir=ltr] .trumbowyg-powered-by-giphy svg{margin-left:6px}[dir=rtl] .trumbowyg-powered-by-giphy svg{margin-right:6px}.trumbowyg-giphy-modal-scroll{overflow:auto;overflow-x:hidden;height:240px}.trumbowyg-giphy-modal{columns:3;column-gap:10px}[dir] .trumbowyg-giphy-modal{padding:0 5%}.trumbowyg-giphy-modal .trumbowyg-giphy-no-result{width:250%}[dir=ltr] .trumbowyg-giphy-modal .trumbowyg-giphy-no-result{margin:13% 0 0 29%}[dir=rtl] .trumbowyg-giphy-modal .trumbowyg-giphy-no-result{margin:13% 29% 0 0}.trumbowyg-giphy-modal .trumbowyg-giphy-offline{font-size:18px;width:305%;height:600px}[dir] .trumbowyg-giphy-modal .trumbowyg-giphy-offline{margin-top:95px;text-align:center}.trumbowyg-giphy-modal .img-container{width:100%}[dir] .trumbowyg-giphy-modal .img-container{margin-bottom:10px;background-color:#ecf0f1}.trumbowyg-giphy-modal .img-container img{width:100%;opacity:0;transition:opacity 150ms}[dir] .trumbowyg-giphy-modal .img-container img{cursor:pointer}[dir] .trumbowyg-giphy-modal .img-container img:focus,[dir] .trumbowyg-giphy-modal .img-container img:hover{border:#2ecc71 solid 3px}.trumbowyg-giphy-modal .img-container img.tbw-loaded{opacity:1}[dir] .trumbowyg-highlight-form-group{margin:15px 10px}.trumbowyg-highlight-form-group .trumbowyg-highlight-form-control{width:100%;font-size:14px}[dir] .trumbowyg-highlight-form-group .trumbowyg-highlight-form-control{border:1px solid #dedede;padding:7px}.trumbowyg-highlight-form-group .trumbowyg-highlight-form-control.code{height:200px}.mathMlContainer{position:relative}.mathMlContainer[inline=false]{display:block;width:100%}.mathMlContainer:hover{pointer-events:none}.mathMlContainer:hover::after{content:'\270E';position:absolute;top:0;bottom:0;pointer-events:auto}[dir] .mathMlContainer:hover::after{background-color:rgba(255,255,255,.83);box-shadow:0 0 5px 5px rgba(255,255,255,.83);cursor:pointer}[dir=ltr] .mathMlContainer:hover::after{right:0;left:0}[dir=rtl] .mathMlContainer:hover::after{left:0;right:0}.trumbowyg-dropdown-mention button{position:relative;white-space:nowrap}.trumbowyg-dropdown-mention button:after{content:"";position:absolute;top:0;width:15%;height:100%;pointer-events:none}[dir] .trumbowyg-dropdown-mention button:after{background-size:100%}[dir=ltr] .trumbowyg-dropdown-mention button:after{right:0;background-image:linear-gradient(to right,rgba(255,255,255,0) 0,#fff 80%,#fff 100%)}[dir=rtl] .trumbowyg-dropdown-mention button:after{left:0;background-image:linear-gradient(to left,rgba(255,255,255,0) 0,#fff 80%,#fff 100%)}.trumbowyg-editor table{width:100%}[dir] .trumbowyg-editor table td{border:1px dotted #e7eaec;padding:8px}.trumbowyg-dropdown-table table{display:inline-block}[dir] .trumbowyg-dropdown-table table{margin:10px}.trumbowyg-dropdown-table table td{display:inline-block;height:20px;width:20px}[dir] .trumbowyg-dropdown-table table td{margin:1px;padding:0;background-color:#fff;box-shadow:0 0 0 1px #cecece inset}[dir] .trumbowyg-dropdown-table table td.active{background-color:#00b393;box-shadow:none;cursor:pointer}[dir] .trumbowyg-dropdown-table .trumbowyg-table-size{text-align:center}.trumbowyg-symbol-\ -dropdown-button{display:none!important}[dir] .trumbowyg-symbol-\ -dropdown-button+button{clear:both}.trumbowyg-dropdown-specialChars{width:248px}[dir] .trumbowyg-dropdown-specialChars{padding:5px 3px 3px}.trumbowyg-dropdown-specialChars button{display:block;position:relative;height:26px;width:26px;line-height:24px}[dir] .trumbowyg-dropdown-specialChars button{padding:0;margin:2px;text-align:center}[dir=ltr] .trumbowyg-dropdown-specialChars button{float:left}[dir=rtl] .trumbowyg-dropdown-specialChars button{float:right}.trumbowyg-dropdown-specialChars button:focus::after,.trumbowyg-dropdown-specialChars button:hover::after{display:block;position:absolute;top:-5px;height:27px;width:27px;z-index:10}[dir] .trumbowyg-dropdown-specialChars button:focus::after,[dir] .trumbowyg-dropdown-specialChars button:hover::after{background:inherit;box-shadow:#000 0 0 2px;background-color:transparent}[dir=ltr] .trumbowyg-dropdown-specialChars button:focus::after,[dir=ltr] .trumbowyg-dropdown-specialChars button:hover::after{left:-5px}[dir=rtl] .trumbowyg-dropdown-specialChars button:focus::after,[dir=rtl] .trumbowyg-dropdown-specialChars button:hover::after{right:-5px}.trumbowyg .specialChars{width:22px;height:22px;display:inline-block} +.trumbowyg-dropdown-backColor:not(.trumbowyg-dropdown--color-list),.trumbowyg-dropdown-foreColor:not(.trumbowyg-dropdown--color-list){max-width:276px;overflow:initial}[dir] .trumbowyg-dropdown-backColor:not(.trumbowyg-dropdown--color-list),[dir] .trumbowyg-dropdown-foreColor:not(.trumbowyg-dropdown--color-list){padding:7px 5px}.trumbowyg-dropdown-backColor:not(.trumbowyg-dropdown--color-list) button,.trumbowyg-dropdown-foreColor:not(.trumbowyg-dropdown--color-list) button{display:block;position:relative;text-indent:-9999px;height:20px;width:20px}[dir] .trumbowyg-dropdown-backColor:not(.trumbowyg-dropdown--color-list) button,[dir] .trumbowyg-dropdown-foreColor:not(.trumbowyg-dropdown--color-list) button{border:1px solid #333;padding:0;margin:2px}[dir=ltr] .trumbowyg-dropdown-backColor:not(.trumbowyg-dropdown--color-list) button,[dir=ltr] .trumbowyg-dropdown-foreColor:not(.trumbowyg-dropdown--color-list) button{float:left}[dir=rtl] .trumbowyg-dropdown-backColor:not(.trumbowyg-dropdown--color-list) button,[dir=rtl] .trumbowyg-dropdown-foreColor:not(.trumbowyg-dropdown--color-list) button{float:right}.trumbowyg-dropdown-backColor:not(.trumbowyg-dropdown--color-list) button:focus::after,.trumbowyg-dropdown-backColor:not(.trumbowyg-dropdown--color-list) button:hover::after,.trumbowyg-dropdown-foreColor:not(.trumbowyg-dropdown--color-list) button:focus::after,.trumbowyg-dropdown-foreColor:not(.trumbowyg-dropdown--color-list) button:hover::after{content:" ";display:block;position:absolute;top:-5px;width:27px;height:27px;z-index:10}[dir] .trumbowyg-dropdown-backColor:not(.trumbowyg-dropdown--color-list) button:focus::after,[dir] .trumbowyg-dropdown-backColor:not(.trumbowyg-dropdown--color-list) button:hover::after,[dir] .trumbowyg-dropdown-foreColor:not(.trumbowyg-dropdown--color-list) button:focus::after,[dir] .trumbowyg-dropdown-foreColor:not(.trumbowyg-dropdown--color-list) button:hover::after{background:inherit;border:1px solid #fff;box-shadow:#000 0 0 2px}[dir=ltr] .trumbowyg-dropdown-backColor:not(.trumbowyg-dropdown--color-list) button:focus::after,[dir=ltr] .trumbowyg-dropdown-backColor:not(.trumbowyg-dropdown--color-list) button:hover::after,[dir=ltr] .trumbowyg-dropdown-foreColor:not(.trumbowyg-dropdown--color-list) button:focus::after,[dir=ltr] .trumbowyg-dropdown-foreColor:not(.trumbowyg-dropdown--color-list) button:hover::after{left:-5px}[dir=rtl] .trumbowyg-dropdown-backColor:not(.trumbowyg-dropdown--color-list) button:focus::after,[dir=rtl] .trumbowyg-dropdown-backColor:not(.trumbowyg-dropdown--color-list) button:hover::after,[dir=rtl] .trumbowyg-dropdown-foreColor:not(.trumbowyg-dropdown--color-list) button:focus::after,[dir=rtl] .trumbowyg-dropdown-foreColor:not(.trumbowyg-dropdown--color-list) button:hover::after{right:-5px}.trumbowyg-dropdown-backColor.trumbowyg-dropdown--color-list button:not(.trumbowyg-backColorRemove-dropdown-button){position:relative;color:#fff!important}.trumbowyg-dropdown-backColor.trumbowyg-dropdown--color-list button:not(.trumbowyg-backColorRemove-dropdown-button):focus::after,.trumbowyg-dropdown-backColor.trumbowyg-dropdown--color-list button:not(.trumbowyg-backColorRemove-dropdown-button):hover::after{content:" ";display:block;position:absolute;top:13px;width:0;height:0}[dir] .trumbowyg-dropdown-backColor.trumbowyg-dropdown--color-list button:not(.trumbowyg-backColorRemove-dropdown-button):focus::after,[dir] .trumbowyg-dropdown-backColor.trumbowyg-dropdown--color-list button:not(.trumbowyg-backColorRemove-dropdown-button):hover::after{border:5px solid transparent}[dir=ltr] .trumbowyg-dropdown-backColor.trumbowyg-dropdown--color-list button:not(.trumbowyg-backColorRemove-dropdown-button):focus::after,[dir=ltr] .trumbowyg-dropdown-backColor.trumbowyg-dropdown--color-list button:not(.trumbowyg-backColorRemove-dropdown-button):hover::after{left:0;border-left-color:#fff}[dir=rtl] .trumbowyg-dropdown-backColor.trumbowyg-dropdown--color-list button:not(.trumbowyg-backColorRemove-dropdown-button):focus::after,[dir=rtl] .trumbowyg-dropdown-backColor.trumbowyg-dropdown--color-list button:not(.trumbowyg-backColorRemove-dropdown-button):hover::after{right:0;border-right-color:#fff}.trumbowyg-dropdown-emoji{width:265px}[dir=ltr] .trumbowyg-dropdown-emoji{padding:7px 0 7px 5px}[dir=rtl] .trumbowyg-dropdown-emoji{padding:7px 5px 7px 0}.trumbowyg-dropdown-emoji svg{display:none!important}.trumbowyg-dropdown-emoji button{display:block;position:relative;height:26px;width:26px;line-height:24px}[dir] .trumbowyg-dropdown-emoji button{padding:0;margin:2px;text-align:center}[dir=ltr] .trumbowyg-dropdown-emoji button{float:left}[dir=rtl] .trumbowyg-dropdown-emoji button{float:right}.trumbowyg-dropdown-emoji button:focus::after,.trumbowyg-dropdown-emoji button:hover::after{display:block;position:absolute;top:-5px;height:27px;width:27px;z-index:10}[dir] .trumbowyg-dropdown-emoji button:focus::after,[dir] .trumbowyg-dropdown-emoji button:hover::after{background:inherit;box-shadow:#000 0 0 2px;background-color:transparent}[dir=ltr] .trumbowyg-dropdown-emoji button:focus::after,[dir=ltr] .trumbowyg-dropdown-emoji button:hover::after{left:-5px}[dir=rtl] .trumbowyg-dropdown-emoji button:focus::after,[dir=rtl] .trumbowyg-dropdown-emoji button:hover::after{right:-5px}.trumbowyg .emoji{width:22px;height:22px;display:inline-block}[dir] .trumbowyg-giphy-button svg{transform:scale(1.22)}.trumbowyg-giphy-search{display:block;width:80%}[dir] .trumbowyg-giphy-search{margin:5%}[dir=ltr] .trumbowyg-giphy-search{padding-left:10px;padding-right:150px}[dir=rtl] .trumbowyg-giphy-search{padding-right:10px;padding-left:150px}.trumbowyg-giphy-close{position:absolute;top:calc(5% + 8px);width:30px;height:30px}[dir] .trumbowyg-giphy-close{background:0 0;border:1px solid transparent}[dir=ltr] .trumbowyg-giphy-close{right:calc(5% - 2px)}[dir=rtl] .trumbowyg-giphy-close{left:calc(5% - 2px)}.trumbowyg-giphy-close:focus,.trumbowyg-giphy-close:hover{outline:0}[dir] .trumbowyg-giphy-close:focus,[dir] .trumbowyg-giphy-close:hover{background:#ecf0f1}[dir] .trumbowyg-giphy-close:focus{border-color:rgba(0,0,0,.3)}.trumbowyg-powered-by-giphy{position:absolute;top:calc(5% + 12px);pointer-events:none;user-select:none}[dir=ltr] .trumbowyg-powered-by-giphy{right:calc(15% + 10px)}[dir=rtl] .trumbowyg-powered-by-giphy{left:calc(15% + 10px)}.trumbowyg-powered-by-giphy span{text-transform:uppercase;font-weight:700;font-size:10px;opacity:.6}.trumbowyg-powered-by-giphy svg{width:66px;height:15px;vertical-align:bottom;opacity:.45}[dir=ltr] .trumbowyg-powered-by-giphy svg{margin-left:6px}[dir=rtl] .trumbowyg-powered-by-giphy svg{margin-right:6px}.trumbowyg-giphy-modal-scroll{overflow:auto;overflow-x:hidden;height:240px}.trumbowyg-giphy-modal{columns:3;column-gap:10px}[dir] .trumbowyg-giphy-modal{padding:0 5%}.trumbowyg-giphy-modal .trumbowyg-giphy-no-result{width:250%}[dir=ltr] .trumbowyg-giphy-modal .trumbowyg-giphy-no-result{margin:13% 0 0 29%}[dir=rtl] .trumbowyg-giphy-modal .trumbowyg-giphy-no-result{margin:13% 29% 0 0}.trumbowyg-giphy-modal .trumbowyg-giphy-offline{font-size:18px;width:305%;height:600px}[dir] .trumbowyg-giphy-modal .trumbowyg-giphy-offline{margin-top:95px;text-align:center}.trumbowyg-giphy-modal .img-container{width:100%}[dir] .trumbowyg-giphy-modal .img-container{margin-bottom:10px;background-color:#ecf0f1}.trumbowyg-giphy-modal .img-container img{width:100%;opacity:0;transition:opacity 150ms}[dir] .trumbowyg-giphy-modal .img-container img{cursor:pointer}[dir] .trumbowyg-giphy-modal .img-container img:focus,[dir] .trumbowyg-giphy-modal .img-container img:hover{border:#2ecc71 solid 3px}.trumbowyg-giphy-modal .img-container img.tbw-loaded{opacity:1}.mathMlContainer{position:relative}.mathMlContainer[inline=false]{display:block;width:100%}.mathMlContainer:hover{pointer-events:none}.mathMlContainer:hover::after{content:'\270E';position:absolute;top:0;bottom:0;pointer-events:auto}[dir] .mathMlContainer:hover::after{background-color:rgba(255,255,255,.83);box-shadow:0 0 5px 5px rgba(255,255,255,.83);cursor:pointer}[dir=ltr] .mathMlContainer:hover::after{right:0;left:0}[dir=rtl] .mathMlContainer:hover::after{left:0;right:0}.trumbowyg-dropdown-mention button{position:relative;white-space:nowrap}.trumbowyg-dropdown-mention button:after{content:"";position:absolute;top:0;width:15%;height:100%;pointer-events:none}[dir] .trumbowyg-dropdown-mention button:after{background-size:100%}[dir=ltr] .trumbowyg-dropdown-mention button:after{right:0;background-image:linear-gradient(to right,rgba(255,255,255,0) 0,#fff 80%,#fff 100%)}[dir=rtl] .trumbowyg-dropdown-mention button:after{left:0;background-image:linear-gradient(to left,rgba(255,255,255,0) 0,#fff 80%,#fff 100%)}.trumbowyg-symbol-\ -dropdown-button{display:none!important}[dir] .trumbowyg-symbol-\ -dropdown-button+button{clear:both}.trumbowyg-dropdown-specialChars{width:248px}[dir] .trumbowyg-dropdown-specialChars{padding:5px 3px 3px}.trumbowyg-dropdown-specialChars button{display:block;position:relative;height:26px;width:26px;line-height:24px}[dir] .trumbowyg-dropdown-specialChars button{padding:0;margin:2px;text-align:center}[dir=ltr] .trumbowyg-dropdown-specialChars button{float:left}[dir=rtl] .trumbowyg-dropdown-specialChars button{float:right}.trumbowyg-dropdown-specialChars button:focus::after,.trumbowyg-dropdown-specialChars button:hover::after{display:block;position:absolute;top:-5px;height:27px;width:27px;z-index:10}[dir] .trumbowyg-dropdown-specialChars button:focus::after,[dir] .trumbowyg-dropdown-specialChars button:hover::after{background:inherit;box-shadow:#000 0 0 2px;background-color:transparent}[dir=ltr] .trumbowyg-dropdown-specialChars button:focus::after,[dir=ltr] .trumbowyg-dropdown-specialChars button:hover::after{left:-5px}[dir=rtl] .trumbowyg-dropdown-specialChars button:focus::after,[dir=rtl] .trumbowyg-dropdown-specialChars button:hover::after{right:-5px}.trumbowyg .specialChars{width:22px;height:22px;display:inline-block}.trumbowyg-editor table{width:100%}[dir] .trumbowyg-editor table td{border:1px dotted #e7eaec;padding:8px}.trumbowyg-dropdown-table table{display:inline-block}[dir] .trumbowyg-dropdown-table table{margin:10px}.trumbowyg-dropdown-table table td{display:inline-block;height:20px;width:20px}[dir] .trumbowyg-dropdown-table table td{margin:1px;padding:0;background-color:#fff;box-shadow:0 0 0 1px #cecece inset}[dir] .trumbowyg-dropdown-table table td.active{background-color:#00b393;box-shadow:none;cursor:pointer}[dir] .trumbowyg-dropdown-table .trumbowyg-table-size{text-align:center}
").appendTo(l);o.range.deleteContents(),o.range.insertNode(t[0]),o.$c.trigger("tbwchange")},l={title:o.lang.tableAddRow,text:o.lang.tableAddRow,ico:"row-below",fn:function(){o.saveRange();var t=o.doc.getSelection().focusNode,n=e(t).closest("tr"),a=e(t).closest("table");if(a.length>0){for(var r=e("