diff --git a/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/allowtagsfrompaste/trumbowyg.allowtagsfrompaste.min.js b/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/allowtagsfrompaste/trumbowyg.allowtagsfrompaste.min.js deleted file mode 100644 index 8d79247f72f..00000000000 --- a/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/allowtagsfrompaste/trumbowyg.allowtagsfrompaste.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(e){"use strict";var a={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(t){if(t.o.plugins.allowTagsFromPaste){t.o.removeformatPasted=!1;var o=t.o.plugins.allowTagsFromPaste.allowedTags||a.allowedTags,r=t.o.plugins.allowTagsFromPaste.removableTags||a.removableTags;if(0!==o.length){var s=e(r).not(o).get();t.pasteHandlers.push((function(){setTimeout((function(){var a=t.$ed.html();e.each(s,(function(e,t){a=a.replace(new RegExp("<\\/?"+t+"(\\s[^>]*)?>","gi"),"")})),t.$ed.html(a)}),0)}))}}}}}})}(jQuery); \ No newline at end of file diff --git a/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/base64/trumbowyg.base64.js b/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/base64/trumbowyg.base64.js index 5ea7e3a2423..ee8bae26f6a 100644 --- a/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/base64/trumbowyg.base64.js +++ b/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/base64/trumbowyg.base64.js @@ -26,6 +26,12 @@ errFileReaderNotSupported: 'FileReader is not supported by your browser.', errInvalidImage: 'Invalid image file.' }, + sl: { + base64: 'Slika kot base64', + file: 'Datoteka', + errFileReaderNotSupported: 'FileReader ni podprt v tem brskalniku.', + errInvalidImage: 'Neveljavna datoteka s sliko.' + }, by: { base64: 'Выява (фармат base64)', file: 'Файл', diff --git a/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/base64/trumbowyg.base64.min.js b/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/base64/trumbowyg.base64.min.js deleted file mode 100644 index bd1c85cdd00..00000000000 --- a/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/base64/trumbowyg.base64.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(e){"use strict";var a=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."},et:{base64:"Pilt base64 formaadis",file:"Fail",errFileReaderNotSupported:"Teie veebilehitseja ei toeta FileReader funktsiooni.",errInvalidImage:"Vigane pildifail."},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:a,init:function(r){var i={isSupported:a,fn:function(){var a;r.saveRange();var i=r.openModalInsert(r.lang.base64,{file:{type:"file",required:!0,attributes:{accept:"image/*"}},alt:{label:"description",value:r.getRangeText()}},(function(l){var t=new FileReader;t.onloadend=function(a){var n;n=a.target.result,/^data:image\/[a-z]?/i.test(n)?(r.execCmd("insertImage",t.result,!1,!0),e(['img[src="',t.result,'"]:not([alt])'].join(""),r.$box).attr("alt",l.alt),r.closeModal()):r.addErrorOnModalField(e("input[type=file]",i),r.lang.errInvalidImage)},t.readAsDataURL(a)}));e("input[type=file]").on("change",(function(e){a=e.target.files[0]}))}};r.addBtnDef("base64",i)}}}})}(jQuery); \ No newline at end of file diff --git a/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/cleanpaste/trumbowyg.cleanpaste.min.js b/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/cleanpaste/trumbowyg.cleanpaste.min.js deleted file mode 100644 index 7d035912feb..00000000000 --- a/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/cleanpaste/trumbowyg.cleanpaste.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(e){"use strict";e.extend(!0,e.trumbowyg,{plugins:{cleanPaste:{init:function(t){t.pasteHandlers.push((function(r){setTimeout((function(){try{t.saveRange();var a=(r.originalEvent||r).clipboardData.getData("Text"),n=t.doc.getSelection().focusNode,c=t.doc.createRange(),g=((l=(l=(l=(l=(l=(l=(l=(l=(l=a.trim()).replace(/<[^> ]*/g,(function(e){return e.toLowerCase()})).replace(/<[^>]*>/g,(function(e){return e.replace(/ [^=]+=/g,(function(e){return e.toLowerCase()}))})).replace(/<[^>]*>/g,(function(e){return e.replace(/( [^=]+=)([^"][^ >]*)/g,'$1"$2"')}))).replace(/)/g,")/g,")/g,")/g,"\s*/g,"")).replace(/ /gi," ")).replace(/ <\//gi,"]*>/g,(function(e){return 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,"")),o=e(g)[0]||t.doc.createTextNode(g);""===t.$ed.html()?t.$ed[0].appendChild(o):(c.setStartAfter(n),c.setEndAfter(n),t.doc.getSelection().removeAllRanges(),t.doc.getSelection().addRange(c),t.range.insertNode(o)),(c=t.doc.createRange()).setStartAfter(o),c.setEndAfter(o),t.doc.getSelection().removeAllRanges(),t.doc.getSelection().addRange(c),r.stopPropagation(),r.preventDefault(),t.saveRange(),t.syncCode(),t.$c.trigger("tbwchange")}catch(e){}var l}),0)}))}}}})}(jQuery); \ No newline at end of file diff --git a/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/colors/trumbowyg.colors.js b/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/colors/trumbowyg.colors.js index 4c55c55e8d7..68d16bd6715 100644 --- a/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/colors/trumbowyg.colors.js +++ b/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/colors/trumbowyg.colors.js @@ -20,6 +20,12 @@ foreColorRemove: 'Remove text color', backColorRemove: 'Remove background color' }, + sl: { + foreColor: 'Barva teksta', + backColor: 'Barva ozadja', + foreColorRemove: 'Ponastavi barvo teksta', + backColorRemove: 'Ponastavi barvo ozadja', + }, by: { foreColor: 'Колер тэксту', backColor: 'Колер фону тэксту', diff --git a/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/colors/trumbowyg.colors.min.js b/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/colors/trumbowyg.colors.min.js deleted file mode 100644 index a8a05b7fcab..00000000000 --- a/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/colors/trumbowyg.colors.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(o){"use strict";function r(o){return("0"+parseInt(o).toString(16)).slice(-2)}function e(o){return-1===o.search("rgb")?o.replace("#",""):"rgba(0, 0, 0, 0)"===o?"transparent":r((o=o.match(/^rgba?\((\d+),\s*(\d+),\s*(\d+)(?:,\s*(\d?(.\d+)))?\)$/))[1])+r(o[2])+r(o[3])}o.extend(!0,o.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"},et:{foreColor:"Teksti värv",backColor:"Taustavärv",foreColorRemove:"Eemalda teksti värv",backColorRemove:"Eemalda taustavärv"},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:"Arka plan rengi",foreColorRemove:"Yazı rengini kaldır",backColorRemove:"Arka plan rengini kaldır"},zh_cn:{foreColor:"文字颜色",backColor:"背景颜色"},zh_tw:{foreColor:"文字顏色",backColor:"背景顏色"}}});var l={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(r,e){var l=[],a=e.o.plugins.colors,t=a[r+"List"]||a.colorList;o.each(t,(function(o,t){var c=r+t,f={fn:r,forceCss:!0,hasIcon:!1,text:e.lang["#"+t]||"#"+t,param:"#"+t,style:"background-color: #"+t+";"};a.displayAsList&&"foreColor"===r&&(f.style="color: #"+t+" !important;"),e.addBtnDef(c,f),l.push(c)}));var c=r+"Remove",f={fn:"removeFormat",hasIcon:!1,param:r,style:"background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAAECAYAAACp8Z5+AAAAG0lEQVQIW2NkQAAfEJMRmwBYhoGBYQtMBYoAADziAp0jtJTgAAAAAElFTkSuQmCC);"};if(a.displayAsList&&(f.style=""),e.addBtnDef(c,f),l.push(c),a["allowCustom"+r.charAt(0).toUpperCase()+r.substr(1)]){var d=r+"Free",n={fn:function(){e.openModalInsert(e.lang[r],{color:{label:r,forceCss:!0,type:"color",value:"#FFFFFF"}},(function(o){return e.execCmd(r,o.color),!0}))},hasIcon:!1,text:"#",style:"text-indent: 0; line-height: 20px; padding: 0 5px;"};e.addBtnDef(d,n),l.push(d)}return l}o.extend(!0,o.trumbowyg,{plugins:{color:{init:function(o){o.o.plugins.colors=o.o.plugins.colors||l;var r=o.o.plugins.colors.displayAsList?o.o.prefix+"dropdown--color-list":"",e={dropdown:a("foreColor",o),dropdownClass:r},t={dropdown:a("backColor",o),dropdownClass:r};o.addBtnDef("foreColor",e),o.addBtnDef("backColor",t)},tagHandler:function(o,r){var l,a=[];if(!o.style)return a;if(""!==o.style.backgroundColor){var t=e(o.style.backgroundColor);r.o.plugins.colors.colorList.indexOf(t)>=0?a.push("backColor"+t):a.push("backColorFree")}return""!==o.style.color?l=e(o.style.color):o.hasAttribute("color")&&(l=e(o.getAttribute("color"))),l&&(r.o.plugins.colors.colorList.indexOf(l)>=0?a.push("foreColor"+l):a.push("foreColorFree")),a}}}})}(jQuery); \ No newline at end of file diff --git a/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/colors/ui/trumbowyg.colors.css b/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/colors/ui/trumbowyg.colors.css deleted file mode 100644 index a0e096f1c31..00000000000 --- a/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/colors/ui/trumbowyg.colors.css +++ /dev/null @@ -1,56 +0,0 @@ -/** - * Trumbowyg v2.25.1 - A lightweight WYSIWYG editor - * Trumbowyg plugin stylesheet - * ------------------------ - * @link http://alex-d.github.io/Trumbowyg - * @license MIT - * @author Alexandre Demode (Alex-D) - * Twitter : @AlexandreDemode - * Website : alex-d.fr - */ - -.trumbowyg-dropdown-foreColor:not(.trumbowyg-dropdown--color-list), -.trumbowyg-dropdown-backColor:not(.trumbowyg-dropdown--color-list) { - max-width: 276px; - padding: 7px 5px; - overflow: initial; } - .trumbowyg-dropdown-foreColor:not(.trumbowyg-dropdown--color-list) button, - .trumbowyg-dropdown-backColor:not(.trumbowyg-dropdown--color-list) button { - display: block; - position: relative; - float: left; - text-indent: -9999px; - height: 20px; - width: 20px; - border: 1px solid #333; - padding: 0; - margin: 2px; } - .trumbowyg-dropdown-foreColor:not(.trumbowyg-dropdown--color-list) button:hover::after, .trumbowyg-dropdown-foreColor:not(.trumbowyg-dropdown--color-list) button:focus::after, - .trumbowyg-dropdown-backColor:not(.trumbowyg-dropdown--color-list) button:hover::after, - .trumbowyg-dropdown-backColor:not(.trumbowyg-dropdown--color-list) button:focus::after { - content: " "; - display: block; - position: absolute; - top: -5px; - left: -5px; - width: 27px; - height: 27px; - background: inherit; - border: 1px solid #fff; - -webkit-box-shadow: #000 0 0 2px; - box-shadow: #000 0 0 2px; - z-index: 10; } - -.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):hover::after, .trumbowyg-dropdown-backColor.trumbowyg-dropdown--color-list button:not(.trumbowyg-backColorRemove-dropdown-button):focus::after { - content: " "; - display: block; - position: absolute; - top: 13px; - left: 0; - width: 0; - height: 0; - border: 5px solid transparent; - border-left-color: #fff; } diff --git a/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/colors/ui/trumbowyg.colors.min.css b/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/colors/ui/trumbowyg.colors.min.css deleted file mode 100644 index 3f823810a4e..00000000000 --- a/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/colors/ui/trumbowyg.colors.min.css +++ /dev/null @@ -1,2 +0,0 @@ -/** Trumbowyg v2.25.1 - A lightweight WYSIWYG editor - alex-d.github.io/Trumbowyg - License MIT - Author : Alexandre Demode (Alex-D) / alex-d.fr */ -.trumbowyg-dropdown-backColor:not(.trumbowyg-dropdown--color-list),.trumbowyg-dropdown-foreColor:not(.trumbowyg-dropdown--color-list){max-width:276px;padding:7px 5px;overflow:initial}.trumbowyg-dropdown-backColor:not(.trumbowyg-dropdown--color-list) button,.trumbowyg-dropdown-foreColor:not(.trumbowyg-dropdown--color-list) button{display:block;position:relative;float:left;text-indent:-9999px;height:20px;width:20px;border:1px solid #333;padding:0;margin:2px}.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;left:-5px;width:27px;height:27px;background:inherit;border:1px solid #fff;-webkit-box-shadow:#000 0 0 2px;box-shadow:#000 0 0 2px;z-index:10}.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;left:0;width:0;height:0;border:5px solid transparent;border-left-color:#fff} \ No newline at end of file diff --git a/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/emoji/trumbowyg.emoji.js b/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/emoji/trumbowyg.emoji.js index 63802196f24..1ac34bdd522 100644 --- a/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/emoji/trumbowyg.emoji.js +++ b/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/emoji/trumbowyg.emoji.js @@ -1389,6 +1389,9 @@ en: { emoji: 'Add an emoji' }, + sl: { + emoji: 'Vstavi emotikon' + }, da: { emoji: 'Tilføj et humørikon' }, diff --git a/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/emoji/trumbowyg.emoji.min.js b/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/emoji/trumbowyg.emoji.min.js deleted file mode 100644 index f61a1ec7e19..00000000000 --- a/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/emoji/trumbowyg.emoji.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(x){"use strict";var F={emojiList:["⁉","™","ℹ","↔","↕","↖","↗","↘","↙","⌨","☀","☁","☂","☃","☄","☑","☔","☕","☘","☠","☢","☣","☦","☸","☹","♀","♂","♈","♉","♐","♑","♒","♓","♠","♣","♥","♦","♨","⚒","⚓","⚔","⚕","⚖","⚗","⚙","✂","✅","✈","✉","✒","✔","✖","✡","✨","✳","✴","❄","❇","❓","❔","❕","❗","❣","❤","➕","➖","➗","⤴","⤵","〰","㊗","㊙","🧡","💛","💚","💙","💜","🖤","🤎","🤍","💔","💕","💞","💓","💗","💖","💘","💝","💟","☮","✝","☪","🕉","🔯","🕎","☯","🛐","⛎","♊","♋","♌","♍","♎","♏","🆔","⚛","🉑","📴","📳","🈶","🈚","🈸","🈺","🈷","🆚","💮","🉐","🈴","🈵","🈹","🈲","🅰","🅱","🆎","🆑","🅾","🆘","❌","⭕","🛑","⛔","📛","🚫","💯","💢","🚷","🚯","🚳","🚱","🔞","📵","🚭","‼","🔅","🔆","〽","⚠","🚸","🔱","⚜","🔰","♻","🈯","💹","❎","🌐","💠","Ⓜ","🌀","💤","🏧","🚾","♿","🅿","🈳","🈂","🛂","🛃","🛄","🛅","🚹","🚺","🚼","🚻","🚮","🎦","📶","🈁","🔣","🔤","🔡","🔠","🆖","🆗","🆙","🆒","🆕","🆓","0","1","2","3","4","5","6","7","8","9","🔟","🔢","#","*","⏏","▶","⏸","⏯","⏹","⏺","⏭","⏮","⏩","⏪","⏫","⏬","◀","🔼","🔽","➡","⬅","⬆","⬇","↪","↩","🔀","🔁","🔂","🔄","🔃","🎵","🎶","♾","💲","💱","©","®","➰","➿","🔚","🔙","🔛","🔝","🔜","🔘","⚪","⚫","🔴","🔵","🟤","🟣","🟢","🟡","🟠","🔺","🔻","🔸","🔹","🔶","🔷","🔳","🔲","▪","▫","◾","◽","◼","◻","⬛","⬜","🟧","🟦","🟥","🟫","🟪","🟩","🟨","🔈","🔇","🔉","🔊","🔔","🔕","📣","📢","🗨","👁","💬","💭","🗯","🃏","🎴","🀄","🕐","🕑","🕒","🕓","🕔","🕕","🕖","🕗","🕘","🕙","🕚","🕛","🕜","🕝","🕞","🕟","🕠","🕡","🕢","🕣","🕤","🕥","🕦","🕧","⚽","🏀","🏈","⚾","🥎","🎾","🏐","🏉","🥏","🎱","🏓","🏸","🏒","🏑","🥍","🏏","🥅","⛳","🏹","🎣","🥊","🥋","🎽","🛹","🛷","🪂","⛸","🥌","🎿","⛷","🏂","🏋","🤼","🤸","⛹","🤺","🤾","🏌","🏇","🧘","🏄","🏊","🤽","🚣","🧗","🚵","🚴","🏆","🥇","🥈","🥉","🏅","🎖","🏵","🎗","🎫","🎟","🎪","🤹","🎭","🎨","🎬","🎤","🎧","🎼","🎹","🥁","🎷","🎺","🪕","🎸","🎻","🎲","♟","🎯","🪁","🪀","🎳","🎮","🎰","🧩","⌚","📱","📲","💻","🖥","🖨","🖱","🖲","🕹","🗜","💽","💾","💿","📀","📼","📷","📸","📹","🎥","📽","🎞","📞","☎","📟","📠","📺","📻","🎙","🎚","🎛","🧭","⏱","⏲","⏰","🕰","⌛","⏳","📡","🔋","🔌","💡","🔦","🕯","🧯","🛢","💸","💵","💴","💶","💷","💰","💳","💎","🧰","🔧","🔨","🛠","⛏","🔩","🧱","⛓","🧲","🔫","💣","🧨","🪓","🪒","🔪","🗡","🛡","🚬","⚰","⚱","🏺","🪔","🔮","📿","🧿","💈","🔭","🔬","🕳","🦯","🩺","🩹","💊","💉","🩸","🧬","🦠","🧫","🧪","🌡","🪑","🧹","🧺","🧻","🚽","🚰","🚿","🛁","🛀","🧼","🧽","🧴","🛎","🔑","🗝","🚪","🛋","🛏","🛌","🧸","🖼","🛍","🛒","🎁","🎈","🎏","🎀","🎊","🎉","🎎","🏮","🎐","🧧","📩","📨","📧","💌","📥","📤","📦","🏷","📪","📫","📬","📭","📮","📯","📜","📃","📄","📑","🧾","📊","📈","📉","🗒","🗓","📆","📅","🗑","📇","🗃","🗳","🗄","📋","📁","📂","🗂","🗞","📰","📓","📔","📒","📕","📗","📘","📙","📚","📖","🔖","🧷","🔗","📎","🖇","📐","📏","🧮","📌","📍","🖊","🖋","🖌","🖍","📝","✏","🔍","🔎","🔏","🔐","🔒","🔓","🐶","🐱","🐭","🐹","🐰","🦊","🐻","🐼","🐨","🐯","🦁","🐮","🐷","🐽","🐸","🐵","🙈","🙉","🙊","🐒","🐔","🐧","🐦","🐤","🐣","🐥","🦆","🦅","🦉","🦇","🐺","🐗","🐴","🦄","🐝","🐛","🦋","🐌","🐚","🐞","🐜","🦟","🦗","🕷","🕸","🦂","🐢","🐍","🦎","🦖","🦕","🐙","🦑","🦐","🦞","🦪","🦀","🐡","🐠","🐟","🐬","🐳","🐋","🦈","🐊","🐅","🐆","🦓","🦍","🦧","🐘","🦛","🦏","🐪","🐫","🦒","🦘","🐃","🐂","🐄","🐎","🐖","🐏","🦙","🐑","🐐","🦌","🐕","🦮","🐩","🐈","🐓","🦃","🦚","🦜","🦢","🦩","🕊","🐇","🦥","🦦","🦨","🦝","🦡","🐁","🐀","🐿","🦔","🐾","🐉","🐲","🌵","🎄","🌲","🌳","🌴","🌱","🌿","🍀","🎍","🎋","🍃","🍂","🍁","🍄","🌾","💐","🌷","🌹","🥀","🌺","🌸","🌼","🌻","🌞","🌝","🌛","🌜","🌚","🌕","🌖","🌗","🌘","🌑","🌒","🌓","🌔","🌙","🌎","🌍","🌏","🪐","💫","⭐","🌟","⚡","💥","🔥","🌪","🌈","🌤","⛅","🌥","🌦","🌧","⛈","🌩","🌨","⛄","🌬","💨","💧","💦","🌊","🌫","🍏","🍎","🍐","🍊","🍋","🍌","🍉","🍇","🍓","🍈","🍒","🍑","🥭","🍍","🥥","🥝","🍅","🍆","🥑","🥦","🥬","🥒","🌶","🌽","🥕","🧅","🧄","🥔","🍠","🥐","🥯","🍞","🥖","🥨","🧀","🥚","🍳","🥞","🧇","🥓","🥩","🍗","🍖","🌭","🍔","🍟","🍕","🥪","🧆","🥙","🌮","🌯","🥗","🥘","🥫","🍝","🍜","🍲","🍛","🍣","🍱","🥟","🍤","🍙","🍚","🍘","🍥","🥠","🥮","🍢","🍡","🍧","🍨","🍦","🥧","🧁","🍰","🎂","🍮","🍭","🍬","🍫","🍿","🍩","🍪","🌰","🥜","🍯","🧈","🥛","🍼","🍵","🧉","🥤","🧃","🧊","🍶","🍺","🍻","🥂","🍷","🥃","🍸","🍹","🍾","🥄","🍴","🍽","🥣","🥡","🥢","🧂","😀","😃","😄","😁","😆","😅","😂","🤣","☺","😊","😇","🙂","🙃","😉","😌","😍","🥰","😘","😗","😙","😚","😋","😛","😝","😜","🤪","🤨","🧐","🤓","😎","🤩","🥳","😏","😒","😞","😔","😟","😕","🙁","😣","😖","😫","😩","🥺","😢","😭","😤","😠","😡","🤬","🤯","😳","🥵","🥶","😱","😨","😰","😥","😓","🤗","🤔","🤭","🥱","🤫","🤥","😶","😐","😑","😬","🙄","😯","😦","😧","😮","😲","😴","🤤","😪","😵","🤐","🥴","🤢","🤮","🤧","😷","🤒","🤕","🤑","🤠","😈","👿","👹","👺","🤡","💩","👻","💀","👽","👾","🤖","🎃","😺","😸","😹","😻","😼","😽","🙀","😿","😾","🤲","👐","🙌","👏","🤝","👍","👎","👊","✊","🤛","🤜","🤞","✌","🤟","🤘","👌","🤏","👈","👉","👆","👇","☝","✋","🤚","🖐","🖖","👋","🤙","💪","🦾","🖕","✍","🙏","🦶","🦵","🦿","💄","💋","👄","🦷","🦴","👅","👂","🦻","👃","👣","👀","🧠","🗣","👤","👥","👶","👧","🧒","👦","👩","🧑","👨","👱","🧔","👵","🧓","👴","👲","👳","🧕","👮","👷","💂","🕵","👰","🤵","👸","🤴","🦸","🦹","🤶","🎅","🧙","🧝","🧛","🧟","🧞","🧜","🧚","👼","🤰","🤱","🙇","💁","🙅","🙆","🙋","🧏","🤦","🤷","🙎","🙍","💇","💆","🧖","💅","🤳","💃","🕺","👯","🕴","🚶","🏃","🧍","🧎","👫","👭","👬","💑","💏","👪","🧶","🧵","🧥","🥼","🦺","👚","👕","👖","🩳","👔","👗","👙","🩱","👘","🥻","🥿","👠","👡","👢","🩰","👞","👟","🥾","🩲","🧦","🧤","🧣","🎩","🧢","👒","🎓","⛑","👑","💍","👝","👛","👜","💼","🎒","🧳","👓","🕶","🥽","🤿","🌂","🦱","🦰","🦳","🦲","🚗","🚕","🚙","🚌","🚎","🏎","🚓","🚑","🚒","🚐","🚚","🚛","🚜","🛺","🛵","🏍","🛴","🚲","🦼","🦽","🚨","🚔","🚍","🚘","🚖","🚡","🚠","🚟","🚃","🚋","🚞","🚝","🚄","🚅","🚈","🚂","🚆","🚇","🚊","🚉","🛫","🛬","🛩","💺","🛰","🚀","🛸","🚁","🛶","⛵","🚤","🛥","🛳","⛴","🚢","⛽","🚧","🚦","🚥","🚏","🗺","🗿","🗽","🗼","🏰","🏯","🏟","🎡","🎢","🎠","⛲","⛱","🏖","🏝","🏜","🌋","⛰","🏔","🗻","🏕","⛺","🏠","🏡","🏘","🏚","🏗","🏭","🏢","🏬","🏣","🏤","🏥","🏦","🏨","🏪","🏫","🏩","💒","🏛","⛪","🕌","🛕","🕍","🕋","⛩","🛤","🛣","🗾","🎑","🏞","🌅","🌄","🌠","🎇","🎆","🌇","🌆","🏙","🌃","🌌","🌉","🌁","🇿","🇾","🇽","🇼","🇻","🇺","🇹","🇸","🇷","🇶","🇵","🇴","🇳","🇲","🇱","🇰","🇯","🇮","🇭","🇬","🇫","🇪","🇩","🇨","🇧","🇦","🏳","🏴","🏁","🚩","🎌","🏻","🏼","🏽","🏾","🏿"]};function A(F){var A=[];return x.each(F.o.plugins.emoji.emojiList,(function(E,B){if(x.isArray(B)){var C=B[0],D=B[1],e=''+C+'',i="emoji-"+C.replace(/:/g,""),o={hasIcon:!1,text:e,fn:function(){return F.execCmd("insertImage",D,!1,!0),!0}};F.addBtnDef(i,o),A.push(i)}else{var n="emoji-"+B.replace(/:/g,""),t={text:B,fn:function(){var x=String.fromCodePoint(B.replace("&#","0"));return F.execCmd("insertText",x),!0}};F.addBtnDef(n,t),A.push(n)}})),A}x.extend(!0,x.trumbowyg,{langs:{en:{emoji:"Add an emoji"},da:{emoji:"Tilføj et humørikon"},de:{emoji:"Emoticon einfügen"},et:{emoji:"Lisa emotikon"},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(x){x.o.plugins.emoji=x.o.plugins.emoji||F;var E={dropdown:A(x)};x.addBtnDef("emoji",E)}}}})}(jQuery); \ No newline at end of file diff --git a/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/emoji/ui/trumbowyg.emoji.css b/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/emoji/ui/trumbowyg.emoji.css deleted file mode 100644 index 8a8b32f0209..00000000000 --- a/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/emoji/ui/trumbowyg.emoji.css +++ /dev/null @@ -1,45 +0,0 @@ -/** - * Trumbowyg v2.25.1 - A lightweight WYSIWYG editor - * Trumbowyg plugin stylesheet - * ------------------------ - * @link http://alex-d.github.io/Trumbowyg - * @license MIT - * @author Alexandre Demode (Alex-D) - * Twitter : @AlexandreDemode - * Website : alex-d.fr - */ - -.trumbowyg-dropdown-emoji { - width: 265px; - padding: 7px 0 7px 5px; } - -.trumbowyg-dropdown-emoji svg { - display: none !important; } - -.trumbowyg-dropdown-emoji button { - display: block; - position: relative; - float: left; - height: 26px; - width: 26px; - padding: 0; - margin: 2px; - line-height: 24px; - text-align: center; } - .trumbowyg-dropdown-emoji button:hover::after, .trumbowyg-dropdown-emoji button:focus::after { - display: block; - position: absolute; - top: -5px; - left: -5px; - height: 27px; - width: 27px; - background: inherit; - -webkit-box-shadow: #000 0 0 2px; - box-shadow: #000 0 0 2px; - z-index: 10; - background-color: transparent; } - -.trumbowyg .emoji { - width: 22px; - height: 22px; - display: inline-block; } diff --git a/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/emoji/ui/trumbowyg.emoji.min.css b/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/emoji/ui/trumbowyg.emoji.min.css deleted file mode 100644 index 7197deb016a..00000000000 --- a/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/emoji/ui/trumbowyg.emoji.min.css +++ /dev/null @@ -1,2 +0,0 @@ -/** Trumbowyg v2.25.1 - A lightweight WYSIWYG editor - alex-d.github.io/Trumbowyg - License MIT - Author : Alexandre Demode (Alex-D) / alex-d.fr */ -.trumbowyg-dropdown-emoji{width:265px;padding:7px 0 7px 5px}.trumbowyg-dropdown-emoji svg{display:none!important}.trumbowyg-dropdown-emoji button{display:block;position:relative;float:left;height:26px;width:26px;padding:0;margin:2px;line-height:24px;text-align:center}.trumbowyg-dropdown-emoji button:focus::after,.trumbowyg-dropdown-emoji button:hover::after{display:block;position:absolute;top:-5px;left:-5px;height:27px;width:27px;background:inherit;-webkit-box-shadow:#000 0 0 2px;box-shadow:#000 0 0 2px;z-index:10;background-color:transparent}.trumbowyg .emoji{width:22px;height:22px;display:inline-block} \ No newline at end of file diff --git a/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/fontfamily/trumbowyg.fontfamily.js b/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/fontfamily/trumbowyg.fontfamily.js index 8104c3cc054..cbf335436af 100644 --- a/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/fontfamily/trumbowyg.fontfamily.js +++ b/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/fontfamily/trumbowyg.fontfamily.js @@ -7,6 +7,9 @@ en: { fontFamily: 'Font' }, + sl: { + fontFamily: 'Pisava' + }, by: { fontFamily: 'Шрыфт' }, diff --git a/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/fontfamily/trumbowyg.fontfamily.min.js b/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/fontfamily/trumbowyg.fontfamily.min.js deleted file mode 100644 index b7d54674124..00000000000 --- a/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/fontfamily/trumbowyg.fontfamily.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(a){"use strict";a.extend(!0,a.trumbowyg,{langs:{en:{fontFamily:"Font"},es:{fontFamily:"Fuente"},da:{fontFamily:"Skrifttype"},de:{fontFamily:"Schriftart"},et:{fontFamily:"Font"},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 n={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 i(n){var i=[];return a.each(n.o.plugins.fontfamily.fontList,(function(a,e){n.addBtnDef("fontfamily_"+a,{title:''+e.name+"",hasIcon:!1,fn:function(){n.execCmd("fontName",e.family,!0)}}),i.push("fontfamily_"+a)})),i}a.extend(!0,a.trumbowyg,{plugins:{fontfamily:{init:function(e){e.o.plugins.fontfamily=a.extend({},n,e.o.plugins.fontfamily||{}),e.addBtnDef("fontfamily",{dropdown:i(e),hasIcon:!1,text:e.lang.fontFamily})}}}})}(jQuery); \ No newline at end of file diff --git a/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/fontsize/trumbowyg.fontsize.js b/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/fontsize/trumbowyg.fontsize.js index c3d37442e54..9f493e5a573 100644 --- a/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/fontsize/trumbowyg.fontsize.js +++ b/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/fontsize/trumbowyg.fontsize.js @@ -20,6 +20,22 @@ value: '48px' } }, + sl: { + fontsize: 'Velikost pisave', + fontsizes: { + 'x-small': 'Ekstra majhna', + 'small': 'Majhna', + 'medium': 'Navadno', + 'large': 'Velika', + 'x-large': 'Ekstra velika', + 'custom': 'Poljubna' + }, + fontCustomSize: { + title: 'Poljubna velikost pisave', + label: 'Velikost pisave', + value: '48px' + } + }, by: { fontsize: 'Памер шрыфта', fontsizes: { @@ -167,7 +183,12 @@ 'medium': 'Normaal', 'large': 'Groot', 'x-large': 'Extra groot', - 'custom': 'Tilpasset' + 'custom': 'Handmatig' + }, + fontCustomSize: { + title: 'Handmatige lettergrootte', + label: 'Lettergrootte', + value: '48px' } }, pt_br: { diff --git a/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/fontsize/trumbowyg.fontsize.min.js b/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/fontsize/trumbowyg.fontsize.min.js deleted file mode 100644 index 44d34135043..00000000000 --- a/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/fontsize/trumbowyg.fontsize.min.js +++ /dev/null @@ -1 +0,0 @@ -!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"}},et:{fontsize:"Teksti suurus",fontsizes:{"x-small":"Väga väike",small:"Väike",medium:"Tavaline",large:"Suur","x-large":"Väga suur",custom:"Määra ise"},fontCustomSize:{title:"Kohandatud teksti suurus",label:"Teksti suurus",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:"Özel"},fontCustomSize:{title:"Özel Yazı Boyutu",label:"Yazı Boyutu",value:"48px"}},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 l(t,l){t.$ed.focus(),t.saveRange(),t.execCmd("fontSize","1"),t.$ed.find('font[size="1"]').replaceWith((function(){return e("",{css:{"font-size":l},html:this.innerHTML})})),e(t.range.startContainer.parentElement).find('span[style=""]').contents().unwrap(),t.restoreRange(),t.syncCode(),t.$c.trigger("tbwchange")}function a(t){var a=[];if(e.each(t.o.plugins.fontsize.sizeList,(function(e,s){t.addBtnDef("fontsize_"+s,{text:''+(t.lang.fontsizes[s]||s)+"",hasIcon:!1,fn:function(){l(t,s)}}),a.push("fontsize_"+s)})),t.o.plugins.fontsize.allowCustomSize){var s="fontsize_custom",o={fn:function(){t.openModalInsert(t.lang.fontCustomSize.title,{size:{label:t.lang.fontCustomSize.label,value:t.lang.fontCustomSize.value}},(function(e){return l(t,e.size),!0}))},text:''+t.lang.fontsizes.custom+"",hasIcon:!1};t.addBtnDef(s,o),a.push(s)}return a}e.extend(!0,e.trumbowyg,{plugins:{fontsize:{init:function(l){l.o.plugins.fontsize=e.extend({},t,l.o.plugins.fontsize||{}),l.addBtnDef("fontsize",{dropdown:a(l)})}}}})}(jQuery); \ No newline at end of file diff --git a/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/giphy/trumbowyg.giphy.js b/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/giphy/trumbowyg.giphy.js index a0c68a085aa..92c8e2aef93 100644 --- a/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/giphy/trumbowyg.giphy.js +++ b/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/giphy/trumbowyg.giphy.js @@ -7,6 +7,9 @@ en: { giphy: 'Insert GIF', }, + sl: { + giphy: 'Vstavi GIF', + }, by: { giphy: 'Уставіць GIF', }, @@ -62,13 +65,21 @@ var html = response.data .filter(function (gifData) { - return gifData.images.downsized.url !== ''; + // jshint camelcase:false + var downsized = gifData.images.downsized || gifData.images.downsized_medium; + // jshint camelcase:true + return !!downsized.url; }) .map(function (gifData) { - var image = gifData.images.downsized, - imageRatio = image.height / image.width; - - return '
'; + // jshint camelcase:false + var downsized = gifData.images.downsized || gifData.images.downsized_medium; + // jshint camelcase:true + var image = downsized, + imageRatio = image.height / image.width, + altText = gifData.title; + + var imgHtml = '' + altText + ''; + return '
' + imgHtml + '
'; }) .join('') ; @@ -85,9 +96,33 @@ $giphyModal.empty(); } $giphyModal.append(html); + + // Remove gray overlay on image load + // moved here from inline callback definition due to CSP issue + // Note: this is being done post-factum because load event doesn't bubble up and so can't be delegated + var addLoadedClass = function (img) { img.classList.add('tbw-loaded'); }; + $('img', $giphyModal).each(function (){ + var img = this; + if (img.complete){ // images load instantly when cached and esp. when loaded in previous modal open + addLoadedClass(img); + } else { + img.addEventListener('load', function(){ addLoadedClass(this); }); + } + }); + $('img', $giphyModal).on('click', function () { + var src = $(this).attr('src'), + alt = $(this).attr('alt'); trumbowyg.restoreRange(); - trumbowyg.execCmd('insertImage', $(this).attr('src'), false, true); + trumbowyg.execCmd('insertImage', src, false, true); + + // relay alt tag into inserted image + if (alt){ + var $img = $('img[src="' + src + '"]:not([alt])',trumbowyg.$box); + $img.attr('alt', alt); + // Note: This seems to fire relatively early and could be wrapped in a setTimeout if needed + trumbowyg.syncCode(); + } $('img', $giphyModal).off(); trumbowyg.closeModal(); }); diff --git a/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/giphy/trumbowyg.giphy.min.js b/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/giphy/trumbowyg.giphy.min.js deleted file mode 100644 index 743843e7609..00000000000 --- a/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/giphy/trumbowyg.giphy.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(i){"use strict";i.extend(!0,i.trumbowyg,{langs:{en:{giphy:"Insert GIF"},et:{giphy:"Sisesta GIF"},fr:{giphy:"Insérer un GIF"},hu:{giphy:"GIF beszúrás"},tr:{giphy:"GIF ekle"}}});var e="tbwcancel";function n(e,n,t,l){var o=(n.width()-20)/3,a=e.data.filter((function(i){return""!==i.images.downsized.url})).map((function(i){var e=i.images.downsized,n=e.height/e.width;return'
'})).join("");if(!0===l){if(0===a.length){if(i("."+t.o.prefix+"giphy-no-result",n).length>0)return;a=''}n.empty()}n.append(a),i("img",n).on("click",(function(){t.restoreRange(),t.execCmd("insertImage",i(this).attr("src"),!1,!0),i("img",n).off(),t.closeModal()}))}var t={rating:"g",apiKey:null,throttleDelay:300,noResultGifUrl:"https://media.giphy.com/media/2Faz9FbRzmwxY0pZS/giphy.gif"};i.extend(!0,i.trumbowyg,{plugins:{giphy:{init:function(l){l.o.plugins.giphy=i.extend({},t,l.o.plugins.giphy||{}),l.addBtnDef("giphy",{fn:function(){if(null===l.o.plugins.giphy.apiKey)throw new Error("You must set a Giphy API Key");var t="https://api.giphy.com/v1/gifs/search?api_key="+l.o.plugins.giphy.apiKey+"&rating="+l.o.plugins.giphy.rating,o=t.replace("/search","/trending"),a={abort:function(){}},c=l.o.prefix,r=''+('')+('
Powered by
')+'
';l.openModal(null,r,!1).one(e,(function(){try{a.abort()}catch(i){}l.closeModal()}));var s=i("."+c+"giphy-search"),p=i("."+c+"giphy-close"),g=i("."+c+"giphy-modal"),u=function(){navigator.onLine||i("."+c+"giphy-offline",g).length||(g.empty(),g.append('

You are offline

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

",u=d[s],h=i.$ed.html(),c=i.doc.getSelection().focusNode,a="",g=i.o.plugins.history._focusEl;t=o("
"+l+"
").find("*").map((function(){return this.localName})),n=o("
"+h+"
").find("*").map((function(){return this.localName})),c&&(i.o.plugins.history._focusEl=c,a=c.outerHTML||c.textContent),h!==u&&(a.slice(-1).match(/\s/)||!r(t,n)||i.o.plugins.history._index<=0||c!==g?(i.o.plugins.history._index+=1,i.o.plugins.history._stack=d.slice(0,i.o.plugins.history._index),i.o.plugins.history._stack.push(h)):i.o.plugins.history._stack[s]=h,e())})),i.addBtnDef("historyRedo",t),i.addBtnDef("historyUndo",n)}}}})}(jQuery); \ No newline at end of file diff --git a/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/indent/trumbowyg.indent.js b/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/indent/trumbowyg.indent.js index 4d0a388fcc5..d715a002194 100644 --- a/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/indent/trumbowyg.indent.js +++ b/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/indent/trumbowyg.indent.js @@ -18,6 +18,10 @@ indent: 'Indent', outdent: 'Outdent' }, + sl: { + indent: 'Povečaj zamik', + outdent: 'Zmanjšaj zamik' + }, by: { indent: 'Водступ', outdent: 'Выступ' diff --git a/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/indent/trumbowyg.indent.min.js b/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/indent/trumbowyg.indent.min.js deleted file mode 100644 index fa33f1c325a..00000000000 --- a/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/indent/trumbowyg.indent.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(n){"use strict";n.extend(!0,n.trumbowyg,{langs:{en:{indent:"Indent",outdent:"Outdent"},et:{indent:"Taande suurendamine",outdent:"Taande vähendamine"},fr:{indent:"Augmenter le retrait",outdent:"Diminuer le retrait"}}}),n.extend(!0,n.trumbowyg,{plugins:{paragraph:{init:function(n){var t={fn:"indent",title:n.lang.indent,isSupported:function(){return!!document.queryCommandSupported&&!!document.queryCommandSupported("indent")},ico:"indent"},e={fn:"outdent",title:n.lang.outdent,isSupported:function(){return!!document.queryCommandSupported&&!!document.queryCommandSupported("outdent")},ico:"outdent"};n.addBtnDef("indent",t),n.addBtnDef("outdent",e)}}}})}(jQuery); \ No newline at end of file diff --git a/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/insertaudio/trumbowyg.insertaudio.js b/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/insertaudio/trumbowyg.insertaudio.js index 5f79d751ea7..453f29ffeba 100644 --- a/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/insertaudio/trumbowyg.insertaudio.js +++ b/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/insertaudio/trumbowyg.insertaudio.js @@ -37,6 +37,9 @@ en: { insertAudio: 'Insert Audio' }, + sl: { + insertAudio: 'Vstavi zvočno datoteko' + }, by: { insertAudio: 'Уставіць аўдыё' }, diff --git a/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/insertaudio/trumbowyg.insertaudio.min.js b/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/insertaudio/trumbowyg.insertaudio.min.js deleted file mode 100644 index 870f5a6df44..00000000000 --- a/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/insertaudio/trumbowyg.insertaudio.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(e){"use strict";var r={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"},et:{insertAudio:"Lisa helifail"},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(i){var t={fn:function(){i.openModalInsert(i.lang.insertAudio,r,(function(r){var t="")[0];return i.range.deleteContents(),i.range.insertNode(n),!0}))}};i.addBtnDef("insertAudio",t)}}}})}(jQuery); \ No newline at end of file diff --git a/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/lineheight/trumbowyg.lineheight.js b/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/lineheight/trumbowyg.lineheight.js index 366699f35e1..7102691d1be 100644 --- a/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/lineheight/trumbowyg.lineheight.js +++ b/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/lineheight/trumbowyg.lineheight.js @@ -13,6 +13,15 @@ '2.0': 'Extra large' } }, + sl: { + lineheight: 'Višina vrstice', + lineheights: { + '0.9': 'Majhna', + 'normal': 'Navadna', + '1.5': 'Velika', + '2.0': 'Ekstra velika' + } + }, by: { lineheight: 'Міжрадковы інтэрвал', lineheights: { diff --git a/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/lineheight/trumbowyg.lineheight.min.js b/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/lineheight/trumbowyg.lineheight.min.js deleted file mode 100644 index dac9902188d..00000000000 --- a/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/lineheight/trumbowyg.lineheight.min.js +++ /dev/null @@ -1 +0,0 @@ -!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"}},et:{lineheight:"Reavahe",lineheights:{.9:"Väike",normal:"Tavaline",1.5:"Suur","2.0":"Väga suur"}},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 n={sizeList:["0.9","normal","1.5","2.0"]};function i(n){var i=[];return e.each(n.o.plugins.lineheight.sizeList,(function(t,l){n.addBtnDef("lineheight_"+l,{text:n.lang.lineheights[l]||l,hasIcon:!1,fn:function(){if(n.saveRange(),""!==n.getRangeText().replace(/\s/g,""))try{var i=function(){var e,n=null;window.getSelection?(e=window.getSelection()).rangeCount&&1!==(n=e.getRangeAt(0).commonAncestorContainer).nodeType&&(n=n.parentNode):(e=document.selection)&&"Control"!==e.type&&(n=e.createRange().parentElement());return n}();e(i).css("lineHeight",l)}catch(e){}}}),i.push("lineheight_"+l)})),i}e.extend(!0,e.trumbowyg,{plugins:{lineheight:{init:function(t){t.o.plugins.lineheight=e.extend({},n,t.o.plugins.lineheight||{}),t.addBtnDef("lineheight",{dropdown:i(t)})}}}})}(jQuery); \ No newline at end of file diff --git a/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/mathml/trumbowyg.mathml.js b/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/mathml/trumbowyg.mathml.js index bd60e27a8a2..62ef548a46e 100644 --- a/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/mathml/trumbowyg.mathml.js +++ b/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/mathml/trumbowyg.mathml.js @@ -17,6 +17,11 @@ formulas: 'Formulas', inline: 'Inline' }, + sl: { + mathml: 'Vstavi matematični izraz', + formulas: 'Formula', + inline: 'V vrstici' + }, by: { mathml: 'Уставіць формулу', formulas: 'Формула', diff --git a/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/mathml/trumbowyg.mathml.min.js b/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/mathml/trumbowyg.mathml.min.js deleted file mode 100644 index c9accc3491e..00000000000 --- a/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/mathml/trumbowyg.mathml.min.js +++ /dev/null @@ -1 +0,0 @@ -!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"},et:{mathml:"Sisesta valem",formulas:"Valemid",inline:"Teksti sees"},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(l){var n={fn:function(){l.saveRange();var n={formulas:{label:l.lang.formulas,required:!0,value:""},inline:{label:l.lang.inline,attributes:{checked:!0},type:"checkbox",required:!1}},a=function(t){var r=t.inline?"$":"$$";if(l.currentMathNode)e(l.currentMathNode).html(r+" "+t.formulas+" "+r).attr("formulas",t.formulas).attr("inline",t.inline?"true":"false");else{var i=''+r+" "+t.formulas+" "+r+"",m=e(i)[0];m.onclick=function(){l.currentMathNode=this,n.formulas.value=e(this).attr("formulas"),"true"===e(this).attr("inline")?n.inline.attributes.checked=!0:delete n.inline.attributes.checked,l.openModalInsert(l.lang.mathml,n,a)},l.range.deleteContents(),l.range.insertNode(m)}return l.currentMathNode=!1,MathJax.Hub.Queue(["Typeset",MathJax.Hub]),!0};n.formulas.value=l.getRangeText(),n.inline.attributes.checked=!0,l.openModalInsert(l.lang.mathml,n,a)}};l.addBtnDef("mathml",n)}}}})}(jQuery); \ No newline at end of file diff --git a/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/mathml/ui/trumbowyg.mathml.css b/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/mathml/ui/trumbowyg.mathml.css deleted file mode 100644 index 1c6a284ea1a..00000000000 --- a/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/mathml/ui/trumbowyg.mathml.css +++ /dev/null @@ -1,30 +0,0 @@ -/** - * Trumbowyg v2.25.1 - A lightweight WYSIWYG editor - * Trumbowyg plugin stylesheet - * ------------------------ - * @link http://alex-d.github.io/Trumbowyg - * @license MIT - * @author Alexandre Demode (Alex-D) - * Twitter : @AlexandreDemode - * Website : alex-d.fr - */ - -.mathMlContainer { - position: relative; } - .mathMlContainer[inline="false"] { - display: block; - width: 100%; } - .mathMlContainer:hover { - pointer-events: none; } - .mathMlContainer:hover::after { - content: '\270E'; - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; - background-color: rgba(255, 255, 255, 0.83); - -webkit-box-shadow: 0 0 5px 5px rgba(255, 255, 255, 0.83); - box-shadow: 0 0 5px 5px rgba(255, 255, 255, 0.83); - cursor: pointer; - pointer-events: auto; } diff --git a/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/mathml/ui/trumbowyg.mathml.min.css b/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/mathml/ui/trumbowyg.mathml.min.css deleted file mode 100644 index cc5fee6e0af..00000000000 --- a/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/mathml/ui/trumbowyg.mathml.min.css +++ /dev/null @@ -1,2 +0,0 @@ -/** Trumbowyg v2.25.1 - A lightweight WYSIWYG editor - alex-d.github.io/Trumbowyg - License MIT - Author : Alexandre Demode (Alex-D) / alex-d.fr */ -.mathMlContainer{position:relative}.mathMlContainer[inline=false]{display:block;width:100%}.mathMlContainer:hover{pointer-events:none}.mathMlContainer:hover::after{content:'\270E';position:absolute;top:0;right:0;bottom:0;left:0;background-color:rgba(255,255,255,.83);-webkit-box-shadow:0 0 5px 5px rgba(255,255,255,.83);box-shadow:0 0 5px 5px rgba(255,255,255,.83);cursor:pointer;pointer-events:auto} \ No newline at end of file diff --git a/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/mention/trumbowyg.mention.js b/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/mention/trumbowyg.mention.js index 2a75f0507cc..0cde869de6d 100644 --- a/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/mention/trumbowyg.mention.js +++ b/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/mention/trumbowyg.mention.js @@ -23,6 +23,9 @@ en: { mention: 'Mention' }, + sl: { + mention: 'Omeni' + }, by: { mention: 'Згадаць' }, diff --git a/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/mention/trumbowyg.mention.min.js b/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/mention/trumbowyg.mention.min.js deleted file mode 100644 index eed401a4429..00000000000 --- a/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/mention/trumbowyg.mention.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(n){"use strict";var t={source:[],formatDropdownItem:function(n){return n.login},formatResult:function(n){return"@"+n.login+" "}};function o(t,o){var e=[];return n.each(t,(function(n,t){var i="mention-"+n,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(i,r),e.push(i)})),e}n.extend(!0,n.trumbowyg,{langs:{en:{mention:"Mention"},da:{mention:"Nævn"},et:{mention:"Maini"},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(e){e.o.plugins.mention=n.extend(!0,{},t,e.o.plugins.mention||{});var i={dropdown:o(e.o.plugins.mention.source,e)};e.addBtnDef("mention",i)}}}})}(jQuery); \ No newline at end of file diff --git a/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/mention/ui/trumbowyg.mention.css b/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/mention/ui/trumbowyg.mention.css deleted file mode 100644 index 7150900dc97..00000000000 --- a/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/mention/ui/trumbowyg.mention.css +++ /dev/null @@ -1,28 +0,0 @@ -/** - * Trumbowyg v2.25.1 - A lightweight WYSIWYG editor - * Trumbowyg plugin stylesheet - * ------------------------ - * @link http://alex-d.github.io/Trumbowyg - * @license MIT - * @author Alexandre Demode (Alex-D) - * Twitter : @AlexandreDemode - * Website : alex-d.fr - */ - -.trumbowyg-dropdown-mention button { - position: relative; - white-space: nowrap; } - .trumbowyg-dropdown-mention button:after { - content: ""; - position: absolute; - top: 0; - right: 0; - width: 15%; - height: 100%; - -webkit-background-size: 100% 100%; - background-size: 100%; - background-image: -webkit-gradient(linear, left top, right top, from(rgba(255, 255, 255, 0)), color-stop(80%, #ffffff), to(#ffffff)); - background-image: -webkit-linear-gradient(left, rgba(255, 255, 255, 0) 0%, #ffffff 80%, #ffffff 100%); - background-image: -o-linear-gradient(left, rgba(255, 255, 255, 0) 0%, #ffffff 80%, #ffffff 100%); - background-image: linear-gradient(to right, rgba(255, 255, 255, 0) 0%, #ffffff 80%, #ffffff 100%); - pointer-events: none; } diff --git a/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/mention/ui/trumbowyg.mention.min.css b/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/mention/ui/trumbowyg.mention.min.css deleted file mode 100644 index 66382a6078f..00000000000 --- a/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/mention/ui/trumbowyg.mention.min.css +++ /dev/null @@ -1,2 +0,0 @@ -/** Trumbowyg v2.25.1 - A lightweight WYSIWYG editor - alex-d.github.io/Trumbowyg - License MIT - Author : Alexandre Demode (Alex-D) / alex-d.fr */ -.trumbowyg-dropdown-mention button{position:relative;white-space:nowrap}.trumbowyg-dropdown-mention button:after{content:"";position:absolute;top:0;right:0;width:15%;height:100%;-webkit-background-size:100% 100%;background-size:100%;background-image:-webkit-gradient(linear,left top,right top,from(rgba(255,255,255,0)),color-stop(80%,#fff),to(#fff));background-image:-webkit-linear-gradient(left,rgba(255,255,255,0) 0,#fff 80%,#fff 100%);background-image:-o-linear-gradient(left,rgba(255,255,255,0) 0,#fff 80%,#fff 100%);background-image:linear-gradient(to right,rgba(255,255,255,0) 0,#fff 80%,#fff 100%);pointer-events:none} \ No newline at end of file diff --git a/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/noembed/trumbowyg.noembed.js b/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/noembed/trumbowyg.noembed.js index 255190594ca..8693ff8a1bb 100644 --- a/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/noembed/trumbowyg.noembed.js +++ b/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/noembed/trumbowyg.noembed.js @@ -24,6 +24,10 @@ noembed: 'Noembed', noembedError: 'Error' }, + sl: { + noembed: 'Noembed', + noembedError: 'Napaka' + }, by: { noembedError: 'Памылка' }, @@ -99,18 +103,24 @@ cache: false, dataType: 'json', - success: trumbowyg.o.plugins.noembed.success || function (data) { - if (data.html) { - trumbowyg.execCmd('insertHTML', data.html); - setTimeout(function () { - trumbowyg.closeModal(); - }, 250); - } else { + success: function (data) { + if (trumbowyg.o.plugins.noembed.success) { + trumbowyg.o.plugins.noembed.success(data, trumbowyg, $modal); + return; + } + + if (!data.html) { trumbowyg.addErrorOnModalField( $('input[type=text]', $modal), data.error ); + return; } + + trumbowyg.execCmd('insertHTML', data.html); + setTimeout(function () { + trumbowyg.closeModal(); + }, 250); }, error: trumbowyg.o.plugins.noembed.error || function () { trumbowyg.addErrorOnModalField( diff --git a/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/noembed/trumbowyg.noembed.min.js b/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/noembed/trumbowyg.noembed.min.js deleted file mode 100644 index 8adf8017efc..00000000000 --- a/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/noembed/trumbowyg.noembed.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(e){"use strict";var r={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"},et:{noembed:"Noembed",noembedError:"Viga"},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,{},r,o.o.plugins.noembed||{});var n={fn:function(){var r=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]",r),n.error)},error:o.o.plugins.noembed.error||function(){o.addErrorOnModalField(e("input[type=text]",r),o.lang.noembedError)}})}))}};o.addBtnDef("noembed",n)}}}})}(jQuery); \ No newline at end of file diff --git a/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/pasteembed/trumbowyg.pasteembed.min.js b/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/pasteembed/trumbowyg.pasteembed.min.js deleted file mode 100644 index 4c369a9579a..00000000000 --- a/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/pasteembed/trumbowyg.pasteembed.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(t){"use strict";var e={enabled:!0,endpoints:["https://noembed.com/embed?nowrap=on","https://api.maxmade.nl/url2iframe/embed"]};t.extend(!0,t.trumbowyg,{plugins:{pasteEmbed:{init:function(n){n.o.plugins.pasteEmbed=t.extend(!0,{},e,n.o.plugins.pasteEmbed||{}),n.o.plugins.pasteEmbed.enabled&&n.pasteHandlers.push((function(e){try{var a=(e.originalEvent||e).clipboardData.getData("Text"),r=n.o.plugins.pasteEmbed.endpoints,s=null;if(a.startsWith("http")){e.stopPropagation(),e.preventDefault();var i={url:a.trim()},o="",p=0;s&&s.transport&&s.transport.abort(),s=t.ajax({crossOrigin:!0,url:r[p],type:"GET",data:i,cache:!1,dataType:"jsonp",success:function(t){t.html?(p=0,o=t.html):p+=1},error:function(){p+=1},complete:function(){0===o.length&&p",{href:a,text:a}).prop("outerHTML")),o.length>0&&(p=0,n.execCmd("insertHTML",o))}})}}catch(t){}}))}}}})}(jQuery); \ No newline at end of file diff --git a/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/pasteimage/trumbowyg.pasteimage.min.js b/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/pasteimage/trumbowyg.pasteimage.min.js deleted file mode 100644 index 1205210e35d..00000000000 --- a/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/pasteimage/trumbowyg.pasteimage.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(e){"use strict";e.extend(!0,e.trumbowyg,{plugins:{pasteImage:{init:function(e){e.pasteHandlers.push((function(t){try{for(var a,n=(t.originalEvent||t).clipboardData.items,i=!1,r=n.length-1;r>=0;r-=1)n[r].type.match(/^image\//)&&((a=new FileReader).onloadend=function(t){e.execCmd("insertImage",t.target.result,!1,!0)},a.readAsDataURL(n[r].getAsFile()),i=!0);i&&(t.stopPropagation(),t.preventDefault())}catch(e){}}))}}}})}(jQuery); \ No newline at end of file diff --git a/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/preformatted/trumbowyg.preformatted.js b/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/preformatted/trumbowyg.preformatted.js index 5c866ffb824..8d32775276c 100644 --- a/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/preformatted/trumbowyg.preformatted.js +++ b/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/preformatted/trumbowyg.preformatted.js @@ -16,6 +16,9 @@ en: { preformatted: 'Code sample
'
             },
+            sl: {
+                preformatted: 'Vstavi neformatiran tekst 
'
+            },
             by: {
                 preformatted: 'Прыклад кода 
'
             },
diff --git a/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/preformatted/trumbowyg.preformatted.min.js b/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/preformatted/trumbowyg.preformatted.min.js
deleted file mode 100644
index 703f880c189..00000000000
--- a/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/preformatted/trumbowyg.preformatted.min.js
+++ /dev/null
@@ -1 +0,0 @@
-!function(e){"use strict";e.extend(!0,e.trumbowyg,{langs:{en:{preformatted:"Code sample 
"},da:{preformatted:"Præformateret 
"},et:{preformatted:"Eelvormindatud tekst 
"},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 r={fn:function(){t.saveRange();var r,n,o=t.getRangeText();if(""!==o.replace(/\s/g,""))try{var a=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"===a||"pre"===a)return function(){var t=null;if(document.selection)t=document.selection.createRange().parentElement();else{var r=window.getSelection();r.rangeCount>0&&(t=r.getRangeAt(0).startContainer.parentNode)}var n=e(t).contents().closest("pre").length,o=e(t).contents().closest("code").length;n&&o?e(t).contents().unwrap("code").unwrap("pre"):n?e(t).contents().unwrap("pre"):o&&e(t).contents().unwrap("code")}();t.execCmd("insertHTML","
"+(r=o,(n=document.createElement("DIV")).innerHTML=r,(n.textContent||n.innerText||"")+"
"))}catch(e){}},tag:"pre"};t.addBtnDef("preformatted",r)}}}})}(jQuery); \ No newline at end of file diff --git a/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/resizimg/trumbowyg.resizimg.min.js b/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/resizimg/trumbowyg.resizimg.min.js deleted file mode 100644 index 070579411ed..00000000000 --- a/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/resizimg/trumbowyg.resizimg.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(e){"use strict";var i={minSize:32,step:4};function t(e){e.stopPropagation(),e.preventDefault()}var s=function(i){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).remove(),t.resizeImg=null,null!==i&&(i.syncCode(),i.$c.trigger("tbwchange"))};var s,n,r=!1,a=!1,o=function(e){var i=e.getBoundingClientRect();s=i.left,n=i.top},h=function(e,i,t,s,n){return i.translate(.5,.5),i.lineWidth=1,i.drawImage(t,5,5,s-10,n-10),i.beginPath(),i.rect(5,5,s-10,n-10),i.stroke(),i.beginPath(),i.fillStyle="rgb(255, 255, 255)",i.rect(s-10,n-10,9,9),i.fill(),i.stroke(),o(e),i};this.init=function(){var i=this;e(window).on("scroll resize",(function(){i.reCalcOffset()}))},this.reCalcOffset=function(){o(this.resizeCanvas)},this.canvasId=function(){return this.resizeCanvas.id},this.isActive=function(){return null!==this.resizeImg},this.isFocusedNow=function(){return r},this.blurNow=function(){r=!1},this.reset=function(){null!==this.resizeImg&&(this.resizeImg.setAttribute("style","width: 100%; max-width: "+(this.resizeCanvas.clientWidth-10)+"px; height: auto; max-height: "+(this.resizeCanvas.clientHeight-10)+"px;"),e(this.resizeCanvas).replaceWith(e(this.resizeImg)),this.resizeCanvas.removeAttribute("style"),this.resizeImg=null)},this.setup=function(o,c){if(this.resizeImg=o,!this.resizeCanvas.getContext)return!1;r=!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)),h(this.resizeCanvas,this.ctx,this.resizeImg,this.resizeCanvas.width,this.resizeCanvas.height),e(this.resizeCanvas).resizableSafe(c).on("mousedown",t);var u=this;return e(this.resizeCanvas).on("mousemove",(function(e){var i=Math.round(e.clientX-s),t=Math.round(e.clientY-n),r=a;u.ctx.rect(u.resizeCanvas.width-10,u.resizeCanvas.height-10,9,9),r!==(a=u.ctx.isPointInPath(i,t))&&(this.style.cursor=a?"se-resize":"default")})).on("keydown",(function(e){if(u.isActive()){var i=e.keyCode;27===i?u.pressEscape(u):8!==i&&46!==i||u.pressBackspaceOrDelete(u)}})).on("focus",t).on("blur",(function(){u.reset(),null!==i&&(i.syncCode(),i.$c.trigger("tbwchange"))})),this.resizeCanvas.focus(),!0},this.refresh=function(){this.resizeCanvas.getContext&&(this.resizeCanvas.width=this.resizeCanvas.clientWidth,this.resizeCanvas.height=this.resizeCanvas.clientHeight,h(this.resizeCanvas,this.ctx,this.resizeImg,this.resizeCanvas.width,this.resizeCanvas.height))}};e.extend(!0,e.trumbowyg,{plugins:{resizimg:{destroyResizable:function(){},init:function(n){var r=this.destroyResizable,a=new s(n);function o(){n.$ed.find("img").off("click").on("click",(function(e){a.isActive()&&a.reset(),a.setup(this,n.o.plugins.resizimg.resizable),t(e)}))}this.destroyResizable=function(){n.$ed.find("canvas.resizable").resizableSafe("destroy").off("mousedown",t).removeClass("resizable"),a.reset(),n.syncCode()},n.o.plugins.resizimg=e.extend(!0,{},i,n.o.plugins.resizimg||{},{resizable:{resizeWidth:!1,onDragStart:function(e,i){var t=n.o.plugins.resizimg,s=e.pageX-i.offset().left,r=e.pageY-i.offset().top;if(s 0) { var row = $(''); // add columns according to current columns count - for (var i = 0; i < table.find('tr')[0].childElementCount; i += 1) { - $('').appendTo(row); - } + $('td,th', focusedRow).each(function(){ + $(this).clone().appendTo(row).text(''); + }); // add row to table focusedRow.after(row); } @@ -327,9 +339,9 @@ if(table.length > 0) { var row = $(''); // add columns according to current columns count - for (var i = 0; i < table.find('tr')[0].childElementCount; i += 1) { - $('').appendTo(row); - } + $('td,th', focusedRow).each(function(){ + $(this).clone().appendTo(row).text(''); + }); // add row to table focusedRow.before(row); } diff --git a/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/table/trumbowyg.table.min.js b/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/table/trumbowyg.table.min.js deleted file mode 100644 index 7671fd0e8bd..00000000000 --- a/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/table/trumbowyg.table.min.js +++ /dev/null @@ -1 +0,0 @@ -!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"},et:{table:"Sisesta tabel",tableAddRow:"Lisa rida",tableAddRowAbove:"Lisa rida üles",tableAddColumnLeft:"Lisa tulp vasakule",tableAddColumn:"Lisa tulp paremale",tableDeleteRow:"Kustuta rida",tableDeleteColumn:"Kustuta tulp",tableDestroy:"Kustuta tabel",error:"Viga"},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:"Yukarıya satır ekle",tableAddColumnLeft:"Sola sütun ekle",tableAddColumn:"Sağa sütun ekle",tableDeleteRow:"Satırı sil",tableDeleteColumn:"Sütunu sil",tableDestroy:"Tabloyu sil",error:"Hata"},zh_tw:{table:"插入表格",tableAddRow:"加入行",tableAddRowAbove:"加入行",tableAddColumnLeft:"加入列",tableAddColumn:"加入列",tableDeleteRow:"刪除行",tableDeleteColumn:"刪除列",tableDestroy:"刪除表格",error:"錯誤"},es:{table:"Insertar tabla",tableAddRow:"Agregar fila",tableAddRowAbove:"Agregar fila arriba",tableAddColumnLeft:"Agregar columna a la izquierda",tableAddColumn:"Agregar columna a la derecha",tableDeleteRow:"Borrar fila",tableDeleteColumn:"Borrar columna",tableDestroy:"Borrar tabla",error:"Error"}},plugins:{table:{init:function(l){l.o.plugins.table=e.extend(!0,{},t,l.o.plugins.table||{});var a={fn:function(){l.saveRange();var t="table",a=l.o.prefix+"dropdown",n={class:a+"-"+"table "+a+" "+l.o.prefix+"fixed-top"};n["data-"+a]=t;var b=e("
",n);if(0===l.$box.find("."+a+"-"+t).length?l.$box.append(b.hide()):b=l.$box.find("."+a+"-"+t),b.html(""),l.$box.find("."+l.o.prefix+"table-button").hasClass(l.o.prefix+"active-button"))b.append(l.buildSubBtn("tableAddRowAbove")),b.append(l.buildSubBtn("tableAddRow")),b.append(l.buildSubBtn("tableAddColumnLeft")),b.append(l.buildSubBtn("tableAddColumn")),b.append(l.buildSubBtn("tableDeleteRow")),b.append(l.buildSubBtn("tableDeleteColumn")),b.append(l.buildSubBtn("tableDestroy"));else{var r=e("");e("").appendTo(r);for(var i=0;i").appendTo(r),u=0;u").appendTo(s);r.find("td").on("mouseover",o),r.find("td").on("mousedown",d),b.append(r),b.append(e('
1x1
'))}l.dropdown(t)}},o=function(t){var l=e(t.target).closest("table"),a=this.cellIndex,o=this.parentNode.rowIndex;l.find("td").removeClass("active");for(var d=0;d<=o;d+=1)for(var n=0;n<=a;n+=1)l.find("tr:nth-of-type("+(d+1)+")").find("td:nth-of-type("+(n+1)+")").addClass("active");l.next(".trumbowyg-table-size").html(a+1+"x"+(o+1))},d=function(){l.saveRange();var t=e("
");e("").appendTo(t),l.o.plugins.table.styler&&t.attr("class",l.o.plugins.table.styler);for(var a=this.cellIndex,o=this.parentNode.rowIndex,d=0;d<=o;d+=1)for(var n=e("").appendTo(t),b=0;b<=a;b+=1)e(""),n=0;n").appendTo(d);a.after(d)}l.syncCode()}},b={title:l.lang.tableAddRowAbove,text:l.lang.tableAddRowAbove,ico:"row-above",fn:function(){l.saveRange();var t=l.doc.getSelection().focusNode,a=e(t).closest("tr"),o=e(t).closest("table");if(o.length>0){for(var d=e(""),n=0;n").appendTo(d);a.before(d)}l.syncCode()}},r={title:l.lang.tableAddColumn,text:l.lang.tableAddColumn,ico:"col-right",fn:function(){l.saveRange();var t=l.doc.getSelection().focusNode,a=e(t).closest("td"),o=e(t).closest("table"),d=a.index();o.length>0&&e(o).find("tr").each((function(){e(e(this).children()[d]).after("")})),l.syncCode()}},i={title:l.lang.tableAddColumnLeft,text:l.lang.tableAddColumnLeft,ico:"col-left",fn:function(){l.saveRange();var t=l.doc.getSelection().focusNode,a=e(t).closest("td"),o=e(t).closest("table"),d=a.index();o.length>0&&e(o).find("tr").each((function(){e(e(this).children()[d]).before("")})),l.syncCode()}},s={title:l.lang.tableDestroy,text:l.lang.tableDestroy,ico:"table-delete",fn:function(){l.saveRange();var t=l.doc.getSelection().focusNode;e(t).closest("table").remove(),l.syncCode()}},u={title:l.lang.tableDeleteRow,text:l.lang.tableDeleteRow,ico:"row-delete",fn:function(){l.saveRange();var t=l.doc.getSelection().focusNode;e(t).closest("tr").remove(),l.syncCode()}},f={title:l.lang.tableDeleteColumn,text:l.lang.tableDeleteColumn,ico:"col-delete",fn:function(){l.saveRange();var t=l.doc.getSelection().focusNode,a=e(t).closest("table"),o=e(t).closest("td").index();e(a).find("tr").each((function(){e(this).find("td:eq("+o+")").remove()})),l.syncCode()}};l.addBtnDef("table",a),l.addBtnDef("tableAddRowAbove",b),l.addBtnDef("tableAddRow",n),l.addBtnDef("tableAddColumnLeft",i),l.addBtnDef("tableAddColumn",r),l.addBtnDef("tableDeleteRow",u),l.addBtnDef("tableDeleteColumn",f),l.addBtnDef("tableDestroy",s)}}}})}(jQuery); \ No newline at end of file diff --git a/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/table/ui/trumbowyg.table.css b/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/table/ui/trumbowyg.table.css deleted file mode 100644 index ab665292280..00000000000 --- a/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/table/ui/trumbowyg.table.css +++ /dev/null @@ -1,38 +0,0 @@ -/** - * Trumbowyg v2.25.1 - A lightweight WYSIWYG editor - * Trumbowyg plugin stylesheet - * ------------------------ - * @link http://alex-d.github.io/Trumbowyg - * @license MIT - * @author Alexandre Demode (Alex-D) - * Twitter : @AlexandreDemode - * Website : alex-d.fr - */ - -.trumbowyg-editor table { - width: 100%; } - .trumbowyg-editor table td { - border: 1px dotted #e7eaec; - padding: 8px; } - -.trumbowyg-dropdown-table table { - margin: 10px; - display: inline-block; } - -.trumbowyg-dropdown-table table td { - display: inline-block; - height: 20px; - width: 20px; - margin: 1px; - padding: 0; - background-color: #fff; - -webkit-box-shadow: 0 0 0 1px #cecece inset; - box-shadow: 0 0 0 1px #cecece inset; } - .trumbowyg-dropdown-table table td.active { - background-color: #00b393; - -webkit-box-shadow: none; - box-shadow: none; - cursor: pointer; } - -.trumbowyg-dropdown-table .trumbowyg-table-size { - text-align: center; } diff --git a/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/table/ui/trumbowyg.table.min.css b/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/table/ui/trumbowyg.table.min.css deleted file mode 100644 index 6d94bdfcc2d..00000000000 --- a/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/table/ui/trumbowyg.table.min.css +++ /dev/null @@ -1,2 +0,0 @@ -/** Trumbowyg v2.25.1 - A lightweight WYSIWYG editor - alex-d.github.io/Trumbowyg - License MIT - Author : Alexandre Demode (Alex-D) / alex-d.fr */ -.trumbowyg-editor table{width:100%}.trumbowyg-editor table td{border:1px dotted #e7eaec;padding:8px}.trumbowyg-dropdown-table table{margin:10px;display:inline-block}.trumbowyg-dropdown-table table td{display:inline-block;height:20px;width:20px;margin:1px;padding:0;background-color:#fff;-webkit-box-shadow:0 0 0 1px #cecece inset;box-shadow:0 0 0 1px #cecece inset}.trumbowyg-dropdown-table table td.active{background-color:#00b393;-webkit-box-shadow:none;box-shadow:none;cursor:pointer}.trumbowyg-dropdown-table .trumbowyg-table-size{text-align:center} \ No newline at end of file diff --git a/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/template/trumbowyg.template.js b/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/template/trumbowyg.template.js index a4dc84577d2..00d72dba3e0 100644 --- a/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/template/trumbowyg.template.js +++ b/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/template/trumbowyg.template.js @@ -8,6 +8,9 @@ en: { template: 'Template' }, + sl: { + template: 'Predloga' + }, by: { template: 'Шаблон' }, diff --git a/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/template/trumbowyg.template.min.js b/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/template/trumbowyg.template.min.js deleted file mode 100644 index 07d813f9111..00000000000 --- a/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/template/trumbowyg.template.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(t){"use strict";function e(e){var a=e.o.plugins.templates,l=[];return t.each(a,(function(t,a){e.addBtnDef("template_"+t,{fn:function(){e.html(a.html)},hasIcon:!1,title:a.name}),l.push("template_"+t)})),l}t.extend(!0,t.trumbowyg,{langs:{en:{template:"Template"},da:{template:"Skabelon"},de:{template:"Vorlage"},et:{template:"Mall"},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:"模板"}}}),t.extend(!0,t.trumbowyg,{plugins:{template:{shouldInit:function(t){return t.o.plugins.hasOwnProperty("templates")},init:function(t){t.addBtnDef("template",{dropdown:e(t),hasIcon:!1,text:t.lang.template})}}}})}(jQuery); \ No newline at end of file diff --git a/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/upload/trumbowyg.upload.js b/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/upload/trumbowyg.upload.js index 276e90c3fb5..28581981e14 100644 --- a/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/upload/trumbowyg.upload.js +++ b/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/upload/trumbowyg.upload.js @@ -53,6 +53,11 @@ file: 'File', uploadError: 'Error' }, + sl: { + upload: 'Naloži datoteko', + file: 'Datoteka', + uploadError: 'Napaka' + }, by: { upload: 'Загрузка', file: 'Файл', diff --git a/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/upload/trumbowyg.upload.min.js b/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/upload/trumbowyg.upload.min.js deleted file mode 100644 index c47ad68c72a..00000000000 --- a/src/OrchardCore.Modules/OrchardCore.Resources/Assets/trumbowyg/plugins/upload/trumbowyg.upload.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(r){"use strict";var a={serverPath:"",fileFieldName:"fileToUpload",data:[],headers:{},xhrFields:{},urlPropertyName:"file",statusPropertyName:"success",success:void 0,error:void 0,imageWidthModalEdit:!1};function e(r,a){var o=a.shift(),l=a;if(null!==r){if(0===l.length)return r[o];if("object"==typeof r)return e(r[o],l)}return r}!function(){if(!r.trumbowyg.addedXhrProgressEvent){var a=r.ajaxSettings.xhr;r.ajaxSetup({xhr:function(){var r=this,e=a();return e&&"object"==typeof e.upload&&void 0!==r.progressUpload&&e.upload.addEventListener("progress",(function(a){r.progressUpload(a)}),!1),e}}),r.trumbowyg.addedXhrProgressEvent=!0}}(),r.extend(!0,r.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"},et:{upload:"Lae üles",file:"Fail",uploadError:"Viga"},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(o){o.o.plugins.upload=r.extend(!0,{},a,o.o.plugins.upload||{});var l={fn:function(){o.saveRange();var a,l=o.o.prefix,t={file:{type:"file",required:!0,attributes:{accept:"image/*"}},alt:{label:"description",value:o.getRangeText()}};o.o.plugins.upload.imageWidthModalEdit&&(t.width={value:""});var d=!1,i=o.openModalInsert(o.lang.upload,t,(function(t){if(!d){d=!0;var u=new FormData;u.append(o.o.plugins.upload.fileFieldName,a),o.o.plugins.upload.data.map((function(r){u.append(r.name,r.value)})),r.map(t,(function(r,a){"file"!==a&&u.append(a,r)})),0===r("."+l+"progress",i).length&&r("."+l+"modal-title",i).after(r("
",{class:l+"progress"}).append(r("
",{class:l+"progress-bar"}))),r.ajax({url:o.o.plugins.upload.serverPath,headers:o.o.plugins.upload.headers,xhrFields:o.o.plugins.upload.xhrFields,type:"POST",data:u,cache:!1,dataType:"json",processData:!1,contentType:!1,progressUpload:function(a){r("."+l+"progress-bar").css("width",Math.round(100*a.loaded/a.total)+"%")},success:function(a){if(o.o.plugins.upload.success)o.o.plugins.upload.success(a,o,i,t);else if(e(a,o.o.plugins.upload.statusPropertyName.split("."))){var l=e(a,o.o.plugins.upload.urlPropertyName.split("."));o.execCmd("insertImage",l,!1,!0);var u=r('img[src="'+l+'"]:not([alt])',o.$box);u.attr("alt",t.alt),o.o.plugins.upload.imageWidthModalEdit&&parseInt(t.width)>0&&u.attr({width:t.width}),setTimeout((function(){o.closeModal()}),250),o.$c.trigger("tbwuploadsuccess",[o,a,l])}else o.addErrorOnModalField(r("input[type=file]",i),o.lang[a.message]),o.$c.trigger("tbwuploaderror",[o,a]);d=!1},error:o.o.plugins.upload.error||function(){o.addErrorOnModalField(r("input[type=file]",i),o.lang.uploadError),o.$c.trigger("tbwuploaderror",[o]),d=!1}})}}));r("input[type=file]").on("change",(function(r){try{a=r.target.files[0]}catch(e){a=r.target.value}}))}};o.addBtnDef("upload",l)}}}})}(jQuery); \ No newline at end of file diff --git a/src/OrchardCore.Modules/OrchardCore.Resources/ResourceManagementOptionsConfiguration.cs b/src/OrchardCore.Modules/OrchardCore.Resources/ResourceManagementOptionsConfiguration.cs index 585a4dcf326..86b60c999d7 100644 --- a/src/OrchardCore.Modules/OrchardCore.Resources/ResourceManagementOptionsConfiguration.cs +++ b/src/OrchardCore.Modules/OrchardCore.Resources/ResourceManagementOptionsConfiguration.cs @@ -405,17 +405,17 @@ ResourceManifest BuildManifest() manifest .DefineStyle("trumbowyg") .SetUrl("~/OrchardCore.Resources/Styles/trumbowyg.min.css", "~/OrchardCore.Resources/Styles/trumbowyg.css") - .SetCdn("https://cdn.jsdelivr.net/npm/trumbowyg@2.25.2/dist/ui/trumbowyg.min.css", "https://cdn.jsdelivr.net/npm/trumbowyg@2.25.2/dist/ui/trumbowyg.css") - .SetCdnIntegrity("sha384-wwpeiBFrdO0V1aLjiU21530YH/T4YzFEW34gCpvzo+8DZwBStD4XaQ9mkxC9ytwQ", "sha384-8aBq5EbdAWlCRbZ7E0W7ZlQACYWE+wMyYwxceZcJRatfzEHocA2SCjLs2u9GAqG2") - .SetVersion("2.25.2"); + .SetCdn("https://cdn.jsdelivr.net/npm/trumbowyg@2.26.0/dist/ui/trumbowyg.min.css", "https://cdn.jsdelivr.net/npm/trumbowyg@2.26.0/dist/ui/trumbowyg.css") + .SetCdnIntegrity("sha384-+T8SPyf0Vyl+3TH9ow1Gy0KHdS1SR6qmMcZaxAk8oNqqAZHL4vP/7bFKXlN9PfKj", "sha384-OBhzvWPQzXYGx9FsO4htUdVgTHEuWOvJbmEZqkChsFnJ2PQQ6fZHr7RDfIFhjGWU") + .SetVersion("2.26.0"); manifest .DefineScript("trumbowyg") .SetDependencies("jquery-resizable") .SetUrl("~/OrchardCore.Resources/Scripts/trumbowyg.min.js", "~/OrchardCore.Resources/Scripts/trumbowyg.js") - .SetCdn("https://cdn.jsdelivr.net/npm/trumbowyg@2.25.2/dist/trumbowyg.min.js", "https://cdn.jsdelivr.net/npm/trumbowyg@2.25.2/dist/trumbowyg.js") - .SetCdnIntegrity("sha384-cgMkkV1jH1jAfeu7o6hknHAw7ZNJPDC8yo3HfWD00QfPPcSFRW2liHVAsh5pIAFO", "sha384-d0w4Osv7z3mhSbzxfK1A/J3L02ZgvzHClV8r30qdEoJSJZ5jYpkAl2gT1dRKQqJ+") - .SetVersion("2.25.2"); + .SetCdn("https://cdn.jsdelivr.net/npm/trumbowyg@2.26.0/dist/trumbowyg.min.js", "https://cdn.jsdelivr.net/npm/trumbowyg@2.26.0/dist/trumbowyg.js") + .SetCdnIntegrity("sha384-YGsY0ZvKPVv3kWTqOyL3rLsAr6cyr9u+k1m0hmY0zELx3uEWAk3BJw4wKzQixh9c", "sha384-0aCseDLZjxFfgqMIgcnFSfkcp1NeC7kOGUt71JoTjIpNXwpDC6J932/R8RCH703m") + .SetVersion("2.26.0"); manifest .DefineScript("trumbowyg-shortcodes") @@ -427,13 +427,13 @@ ResourceManifest BuildManifest() .DefineStyle("trumbowyg-plugins") .SetDependencies("trumbowyg") .SetUrl("~/OrchardCore.Resources/Styles/trumbowyg-plugins.min.css", "~/OrchardCore.Resources/Styles/trumbowyg-plugins.css") - .SetVersion("2.25.2"); + .SetVersion("2.26.0"); manifest .DefineScript("trumbowyg-plugins") .SetDependencies("trumbowyg") .SetUrl("~/OrchardCore.Resources/Scripts/trumbowyg-plugins.min.js", "~/OrchardCore.Resources/Scripts/trumbowyg-plugins.js") - .SetVersion("2.25.2"); + .SetVersion("2.26.0"); manifest .DefineScript("vuejs") diff --git a/src/OrchardCore.Modules/OrchardCore.Resources/package-lock.json b/src/OrchardCore.Modules/OrchardCore.Resources/package-lock.json index 45b49a329a5..8f40e6fe4b7 100644 --- a/src/OrchardCore.Modules/OrchardCore.Resources/package-lock.json +++ b/src/OrchardCore.Modules/OrchardCore.Resources/package-lock.json @@ -21,7 +21,7 @@ "monaco-editor": "^0.34.1", "nouislider": "15.6.1", "sortablejs": "^1.14.0", - "trumbowyg": "2.25.2", + "trumbowyg": "2.26.0", "vue": "^2.6.14", "vue-multiselect": "^2.1.6", "vuedraggable": "^2.24.3" @@ -459,9 +459,9 @@ } }, "node_modules/trumbowyg": { - "version": "2.25.2", - "resolved": "https://registry.npmjs.org/trumbowyg/-/trumbowyg-2.25.2.tgz", - "integrity": "sha512-wpWZzvmYgDHBiDBEWZ+YrYfeWmWdwAwudb1mNquRX7VpVqbzetNfrM307E1qgq36v+Gviu4r1V9ITFD8zZvmhg==", + "version": "2.26.0", + "resolved": "https://registry.npmjs.org/trumbowyg/-/trumbowyg-2.26.0.tgz", + "integrity": "sha512-PbcoeAIoddI9lK3Gcty079wdplc2Tfp2yZRdSlkJpekiYiPgEqsvy70znkZH3vIofK7LFPpN2uz7qUaVg1CxoQ==", "peerDependencies": { "jquery": ">=1.8" } @@ -989,9 +989,9 @@ } }, "trumbowyg": { - "version": "2.25.2", - "resolved": "https://registry.npmjs.org/trumbowyg/-/trumbowyg-2.25.2.tgz", - "integrity": "sha512-wpWZzvmYgDHBiDBEWZ+YrYfeWmWdwAwudb1mNquRX7VpVqbzetNfrM307E1qgq36v+Gviu4r1V9ITFD8zZvmhg==", + "version": "2.26.0", + "resolved": "https://registry.npmjs.org/trumbowyg/-/trumbowyg-2.26.0.tgz", + "integrity": "sha512-PbcoeAIoddI9lK3Gcty079wdplc2Tfp2yZRdSlkJpekiYiPgEqsvy70znkZH3vIofK7LFPpN2uz7qUaVg1CxoQ==", "requires": {} }, "ts-node": { diff --git a/src/OrchardCore.Modules/OrchardCore.Resources/package.json b/src/OrchardCore.Modules/OrchardCore.Resources/package.json index f3a3a195827..3c92c18d947 100644 --- a/src/OrchardCore.Modules/OrchardCore.Resources/package.json +++ b/src/OrchardCore.Modules/OrchardCore.Resources/package.json @@ -15,7 +15,7 @@ "js-cookie": "3.0.1", "monaco-editor": "^0.34.1", "sortablejs": "^1.14.0", - "trumbowyg": "2.25.2", + "trumbowyg": "2.26.0", "vue": "^2.6.14", "vue-multiselect": "^2.1.6", "vuedraggable": "^2.24.3" 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 6b1bf3a6347..7e2d84236a1 100644 --- a/src/OrchardCore.Modules/OrchardCore.Resources/wwwroot/Scripts/trumbowyg-plugins.js +++ b/src/OrchardCore.Modules/OrchardCore.Resources/wwwroot/Scripts/trumbowyg-plugins.js @@ -57,206 +57,6 @@ } }); })(jQuery); -!function (e) { - "use strict"; - - var a = { - 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 init(t) { - if (t.o.plugins.allowTagsFromPaste) { - t.o.removeformatPasted = !1; - var o = t.o.plugins.allowTagsFromPaste.allowedTags || a.allowedTags, - r = t.o.plugins.allowTagsFromPaste.removableTags || a.removableTags; - - if (0 !== o.length) { - var s = e(r).not(o).get(); - t.pasteHandlers.push(function () { - setTimeout(function () { - var a = t.$ed.html(); - e.each(s, function (e, t) { - a = a.replace(new RegExp("<\\/?" + t + "(\\s[^>]*)?>", "gi"), ""); - }), t.$ed.html(a); - }, 0); - }); - } - } - } - } - } - }); -}(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(); - trumbowyg.$c.trigger('tbwchange'); - } catch (c) {} - }, 0); - }); - } - } - } - }); -})(jQuery); -!function (e) { - "use strict"; - - e.extend(!0, e.trumbowyg, { - plugins: { - cleanPaste: { - init: function init(t) { - t.pasteHandlers.push(function (r) { - setTimeout(function () { - try { - t.saveRange(); - var a = (r.originalEvent || r).clipboardData.getData("Text"), - n = t.doc.getSelection().focusNode, - c = t.doc.createRange(), - g = ((l = (l = (l = (l = (l = (l = (l = (l = (l = a.trim()).replace(/<[^> ]*/g, function (e) { - return e.toLowerCase(); - }).replace(/<[^>]*>/g, function (e) { - return e.replace(/ [^=]+=/g, function (e) { - return e.toLowerCase(); - }); - }).replace(/<[^>]*>/g, function (e) { - return e.replace(/( [^=]+=)([^"][^ >]*)/g, '$1"$2"'); - })).replace(/)/g, ")/g, ")/g, ")/g, "\s*/g, "")).replace(/ /gi, " ")).replace(/ <\//gi, "]*>/g, function (e) { - return 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, "")), - o = e(g)[0] || t.doc.createTextNode(g); - "" === t.$ed.html() ? t.$ed[0].appendChild(o) : (c.setStartAfter(n), c.setEndAfter(n), t.doc.getSelection().removeAllRanges(), t.doc.getSelection().addRange(c), t.range.insertNode(o)), (c = t.doc.createRange()).setStartAfter(o), c.setEndAfter(o), t.doc.getSelection().removeAllRanges(), t.doc.getSelection().addRange(c), r.stopPropagation(), r.preventDefault(), t.saveRange(), t.syncCode(), t.$c.trigger("tbwchange"); - } catch (e) {} - - var l; - }, 0); - }); - } - } - } - }); -}(jQuery); /* =========================================================== * trumbowyg.base64.js v1.0 * Base64 plugin for Trumbowyg @@ -284,6 +84,12 @@ errFileReaderNotSupported: 'FileReader is not supported by your browser.', errInvalidImage: 'Invalid image file.' }, + sl: { + base64: 'Slika kot base64', + file: 'Datoteka', + errFileReaderNotSupported: 'FileReader ni podprt v tem brskalniku.', + errInvalidImage: 'Neveljavna datoteka s sliko.' + }, by: { base64: 'Выява (фармат base64)', file: 'Файл', @@ -414,560 +220,134 @@ } }); })(jQuery); -!function (e) { - "use strict"; - - var a = function a() { - 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." - }, - et: { - base64: "Pilt base64 formaadis", - file: "Fail", - errFileReaderNotSupported: "Teie veebilehitseja ei toeta FileReader funktsiooni.", - errInvalidImage: "Vigane pildifail." - }, - 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: a, - init: function init(r) { - var i = { - isSupported: a, - fn: function fn() { - var a; - r.saveRange(); - var i = r.openModalInsert(r.lang.base64, { - file: { - type: "file", - required: !0, - attributes: { - accept: "image/*" - } - }, - alt: { - label: "description", - value: r.getRangeText() - } - }, function (l) { - var t = new FileReader(); - t.onloadend = function (a) { - var n; - n = a.target.result, /^data:image\/[a-z]?/i.test(n) ? (r.execCmd("insertImage", t.result, !1, !0), e(['img[src="', t.result, '"]:not([alt])'].join(""), r.$box).attr("alt", l.alt), r.closeModal()) : r.addErrorOnModalField(e("input[type=file]", i), r.lang.errInvalidImage); - }, t.readAsDataURL(a); - }); - e("input[type=file]").on("change", function (e) { - a = e.target.files[0]; - }); - } - }; - r.addBtnDef("base64", i); - } - } - } - }); -}(jQuery); /* =========================================================== - * trumbowyg.emoji.js v0.1 - * Emoji picker plugin for Trumbowyg + * trumbowyg.cleanpaste.js v1.0 + * Font Clean paste plugin for Trumbowyg * http://alex-d.github.com/Trumbowyg * =========================================================== - * Author : Nicolas Pion - * Twitter : @nicolas_pion + * 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'; - var defaultOptions = { - emojiList: ['⁉', '™', 'ℹ', '↔', '↕', '↖', '↗', '↘', '↙', '⌨', '☀', '☁', '☂', '☃', '☄', '☑', '☔', '☕', '☘', '☠', '☢', '☣', '☦', '☸', '☹', '♀', '♂', '♈', '♉', '♐', '♑', '♒', '♓', '♠', '♣', '♥', '♦', '♨', '⚒', '⚓', '⚔', '⚕', '⚖', '⚗', '⚙', '✂', '✅', '✈', '✉', '✒', '✔', '✖', '✡', '✨', '✳', '✴', '❄', '❇', '❓', '❔', '❕', '❗', '❣', '❤', '➕', '➖', '➗', '⤴', '⤵', '〰', '㊗', '㊙', '😀', '😃', '😄', '😁', '😆', '😅', '😂', '🤣', '☺', '😊', '😇', '🙂', '🙃', '😉', '😌', '🥲', '😍', '🥰', '😘', '😗', '😙', '😚', '😋', '😛', '😝', '😜', '🤪', '🤨', '🧐', '🤓', '😎', '🤩', '🥳', '😏', '😒', '😞', '😔', '😟', '😕', '🙁', '😣', '😖', '😫', '😩', '🥺', '😢', '😭', '😤', '😮', '😠', '😡', '🤬', '🤯', '😳', '😶', '🥵', '🥶', '😱', '😨', '😰', '😥', '😓', '🤗', '🤔', '🤭', '🥱', '🤫', '🤥', '😐', '😑', '😬', '🙄', '😯', '😦', '😧', '😲', '😴', '🤤', '😪', '😵', '🤐', '🥴', '🤢', '🤮', '🤧', '😷', '🤒', '🤕', '🤑', '🤠', '🥸', '😈', '👿', '👹', '👺', '🤡', '💩', '👻', '💀', '👽', '👾', '🤖', '🎃', '😺', '😸', '😹', '😻', '😼', '😽', '🙀', '😿', '😾', '🤲', '👐', '🙌', '👏', '🤝', '👍', '👎', '👊', '✊', '🤛', '🤜', '🤞', '✌', '🤟', '🤘', '👌', '🤏', '🤌', '👈', '👉', '👆', '👇', '☝', '✋', '🤚', '🖐', '🖖', '👋', '🤙', '💪', '🦾', '🖕', '✍', '🙏', '🦶', '🦵', '🦿', '💄', '💋', '👄', '🦷', '👅', '👂', '🦻', '👃', '👣', '👁', '👀', '🧠', '🫀', '🫁', '🦴', '🗣', '👤', '👥', '🫂', '👶', '👧', '🧒', '👦', '👩', '🧑', '👨', '👱', '🧔', '👵', '🧓', '👴', '👲', '👳', '🧕', '👮', '👷', '💂', '🕵', '👰', '🤵', '👸', '🤴', '🦸', '🦹', '🥷', '🤶', '🎅', '🧙', '🧝', '🧛', '🧟', '🧞', '🧜', '🧚', '👼', '🤰', '🤱', '🙇', '💁', '🙅', '🙆', '🙋', '🧏', '🤦', '🤷', '🙎', '🙍', '💇', '💆', '🧖', '💅', '🤳', '💃', '🕺', '👯', '🕴', '🚶', '🧎', '🏃', '🧍', '👫', '👭', '👬', '💑', '💏', '👪', '🧶', '🧵', '🧥', '🥼', '🦺', '👚', '👕', '👖', '🩲', '🩳', '👔', '👗', '👙', '🩱', '👘', '🥻', '🥿', '👠', '👡', '👢', '👞', '👟', '🥾', '🩴', '🧦', '🧤', '🧣', '🎩', '🧢', '👒', '🎓', '⛑', '🪖', '👑', '💍', '👝', '👛', '👜', '💼', '🎒', '🧳', '👓', '🕶', '🥽', '🌂', '🦱', '🦰', '🦳', '🦲', '🐶', '🐱', '🐭', '🐹', '🐰', '🦊', '🐻', '🐼', '🐨', '🐯', '🦁', '🐮', '🐷', '🐽', '🐸', '🐵', '🙈', '🙉', '🙊', '🐒', '🐔', '🐧', '🐦', '🐤', '🐣', '🐥', '🦆', '🦤', '🦅', '🦉', '🦇', '🐺', '🐗', '🐴', '🦄', '🐝', '🐛', '🦋', '🐌', '🪱', '🐞', '🐜', '🪰', '🦟', '🪳', '🪲', '🦗', '🕷', '🕸', '🦂', '🐢', '🐍', '🦎', '🦖', '🦕', '🐙', '🦑', '🦐', '🦞', '🦀', '🐡', '🐠', '🐟', '🦭', '🐬', '🐳', '🐋', '🦈', '🐊', '🐅', '🐆', '🦓', '🦍', '🦧', '🐘', '🦣', '🦬', '🦛', '🦏', '🐪', '🐫', '🦒', '🦘', '🐃', '🐂', '🐄', '🐎', '🐖', '🐏', '🐑', '🦙', '🐐', '🦌', '🐕', '🐩', '🦮', '🐈', '🐓', '🦃', '🦚', '🦜', '🦢', '🦩', '🕊', '🐇', '🦝', '🦨', '🦡', '🦫', '🦦', '🦥', '🐁', '🐀', '🐿', '🦔', '🐾', '🐉', '🐲', '🌵', '🎄', '🌲', '🌳', '🌴', '🌱', '🌿', '🍀', '🎍', '🎋', '🍃', '🍂', '🍁', '🪶', '🍄', '🐚', '🪨', '🪵', '🌾', '🪴', '💐', '🌷', '🌹', '🥀', '🌺', '🌸', '🌼', '🌻', '🌞', '🌝', '🌛', '🌜', '🌚', '🌕', '🌖', '🌗', '🌘', '🌑', '🌒', '🌓', '🌔', '🌙', '🌎', '🌍', '🌏', '🪐', '💫', '⭐', '🌟', '⚡', '💥', '🔥', '🌪', '🌈', '🌤', '⛅', '🌥', '🌦', '🌧', '⛈', '🌩', '🌨', '⛄', '🌬', '💨', '💧', '💦', '🌊', '🌫', '🍏', '🍎', '🍐', '🍊', '🍋', '🍌', '🍉', '🍇', '🫐', '🍓', '🍈', '🍒', '🍑', '🥭', '🍍', '🥥', '🥝', '🍅', '🍆', '🥑', '🫒', '🥦', '🥬', '🫑', '🥒', '🌶', '🌽', '🥕', '🧄', '🧅', '🥔', '🍠', '🥐', '🥯', '🍞', '🥖', '🫓', '🥨', '🧀', '🥚', '🍳', '🧈', '🥞', '🧇', '🥓', '🥩', '🍗', '🍖', '🌭', '🍔', '🍟', '🍕', '🥪', '🥙', '🧆', '🌮', '🌯', '🫔', '🥗', '🥘', '🫕', '🥫', '🍝', '🍜', '🍲', '🍛', '🍣', '🍱', '🥟', '🦪', '🍤', '🍙', '🍚', '🍘', '🍥', '🥠', '🥮', '🍢', '🍡', '🍧', '🍨', '🍦', '🥧', '🧁', '🍰', '🎂', '🍮', '🍭', '🍬', '🍫', '🍿', '🍩', '🍪', '🌰', '🥜', '🍯', '🥛', '🍼', '🍵', '🫖', '🧉', '🧋', '🧃', '🥤', '🍶', '🍺', '🍻', '🥂', '🍷', '🥃', '🍸', '🍹', '🍾', '🧊', '🥄', '🍴', '🍽', '🥣', '🥡', '🥢', '🧂', '⚽', '🏀', '🏈', '⚾', '🥎', '🎾', '🏐', '🏉', '🥏', '🪃', '🎱', '🪀', '🏓', '🏸', '🏒', '🏑', '🥍', '🏏', '🥅', '⛳', '🪁', '🏹', '🎣', '🤿', '🥊', '🥋', '🎽', '🛹', '🛼', '🛷', '⛸', '🥌', '🎿', '⛷', '🏂', '🪂', '🏋', '🤼', '🤸', '⛹', '🤺', '🤾', '🏌', '🏇', '🧘', '🏄', '🏊', '🤽', '🚣', '🧗', '🚵', '🚴', '🏆', '🥇', '🥈', '🥉', '🏅', '🎖', '🏵', '🎗', '🎫', '🎟', '🎪', '🤹', '🎭', '🩰', '🎨', '🎬', '🎤', '🎧', '🎼', '🎹', '🥁', '🪘', '🎷', '🎺', '🎸', '🪕', '🎻', '🪗', '🎲', '♟', '🎯', '🎳', '🎮', '🎰', '🧩', '🚗', '🚕', '🚙', '🛻', '🚌', '🚎', '🏎', '🚓', '🚑', '🚒', '🚐', '🚚', '🚛', '🚜', '🦯', '🦽', '🦼', '🛴', '🚲', '🛵', '🏍', '🛺', '🚨', '🚔', '🚍', '🚘', '🚖', '🚡', '🚠', '🚟', '🚃', '🚋', '🚞', '🚝', '🚄', '🚅', '🚈', '🚂', '🚆', '🚇', '🚊', '🚉', '🛫', '🛬', '🛩', '💺', '🛰', '🚀', '🛸', '🚁', '🛶', '⛵', '🚤', '🛥', '🛳', '⛴', '🚢', '⛽', '🚧', '🚦', '🚥', '🚏', '🗺', '🗿', '🗽', '🗼', '🏰', '🏯', '🏟', '🎡', '🎢', '🎠', '⛲', '⛱', '🏖', '🏝', '🏜', '🌋', '⛰', '🏔', '🗻', '🏕', '⛺', '🏠', '🏡', '🏘', '🏚', '🛖', '🏗', '🏭', '🏢', '🏬', '🏣', '🏤', '🏥', '🏦', '🏨', '🏪', '🏫', '🏩', '💒', '🏛', '⛪', '🕌', '🕍', '🛕', '🕋', '⛩', '🛤', '🛣', '🗾', '🎑', '🏞', '🌅', '🌄', '🌠', '🎇', '🎆', '🌇', '🌆', '🏙', '🌃', '🌌', '🌉', '🌁', '⌚', '📱', '📲', '💻', '🖥', '🖨', '🖱', '🖲', '🕹', '🗜', '💽', '💾', '💿', '📀', '📼', '📷', '📸', '📹', '🎥', '📽', '🎞', '📞', '☎', '📟', '📠', '📺', '📻', '🎙', '🎚', '🎛', '🧭', '⏱', '⏲', '⏰', '🕰', '⌛', '⏳', '📡', '🔋', '🔌', '💡', '🔦', '🕯', '🪔', '🧯', '🛢', '💸', '💵', '💴', '💶', '💷', '🪙', '💰', '💳', '💎', '🪜', '🧰', '🪛', '🔧', '🔨', '🛠', '⛏', '🔩', '🧱', '⛓', '🪝', '🪢', '🧲', '🔫', '💣', '🧨', '🪓', '🪚', '🔪', '🗡', '🛡', '🚬', '⚰', '🪦', '⚱', '🏺', '🪄', '🔮', '📿', '🧿', '💈', '🔭', '🔬', '🕳', '🪟', '🩹', '🩺', '💊', '💉', '🩸', '🧬', '🦠', '🧫', '🧪', '🌡', '🪤', '🧹', '🧺', '🪡', '🧻', '🚽', '🪠', '🪣', '🚰', '🚿', '🛁', '🛀', '🪥', '🧼', '🪒', '🧽', '🧴', '🛎', '🔑', '🗝', '🚪', '🪑', '🪞', '🛋', '🛏', '🛌', '🧸', '🖼', '🛍', '🛒', '🎁', '🎈', '🎏', '🎀', '🎊', '🎉', '🪅', '🪆', '🎎', '🏮', '🎐', '🧧', '📩', '📨', '📧', '💌', '📥', '📤', '📦', '🏷', '📪', '📫', '📬', '📭', '📮', '📯', '🪧', '📜', '📃', '📄', '📑', '🧾', '📊', '📈', '📉', '🗒', '🗓', '📆', '📅', '🗑', '📇', '🗃', '🗳', '🗄', '📋', '📁', '📂', '🗂', '🗞', '📰', '📓', '📔', '📒', '📕', '📗', '📘', '📙', '📚', '📖', '🔖', '🧷', '🔗', '📎', '🖇', '📐', '📏', '🧮', '📌', '📍', '🖊', '🖋', '🖌', '🖍', '📝', '✏', '🔍', '🔎', '🔏', '🔐', '🔒', '🔓', '🧡', '💛', '💚', '💙', '💜', '🖤', '🤎', '🤍', '💔', '💕', '💞', '💓', '💗', '💖', '💘', '💝', '💟', '☮', '✝', '☪', '🕉', '🔯', '🕎', '☯', '🛐', '⛎', '♊', '♋', '♌', '♍', '♎', '♏', '🆔', '⚛', '🉑', '📴', '📳', '🈶', '🈚', '🈸', '🈺', '🈷', '🆚', '💮', '🉐', '🈴', '🈵', '🈹', '🈲', '🅰', '🅱', '🆎', '🆑', '🅾', '🆘', '❌', '⭕', '🛑', '⛔', '📛', '🚫', '💯', '💢', '🚷', '🚯', '🚳', '🚱', '🔞', '📵', '🚭', '‼', '🔅', '🔆', '〽', '⚠', '🚸', '🔱', '⚜', '🔰', '♻', '🈯', '💹', '❎', '🌐', '💠', 'Ⓜ', '🌀', '💤', '🏧', '🚾', '♿', '🅿', '🈳', '🈂', '🛂', '🛃', '🛄', '🛅', '🛗', '🚹', '🚺', '🚼', '🚻', '🚮', '🎦', '📶', '🈁', '🔣', '🔤', '🔡', '🔠', '🆖', '🆗', '🆙', '🆒', '🆕', '🆓', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '🔟', '🔢', '#', '*', '⏏', '▶', '⏸', '⏯', '⏹', '⏺', '⏭', '⏮', '⏩', '⏪', '⏫', '⏬', '◀', '🔼', '🔽', '➡', '⬅', '⬆', '⬇', '↪', '↩', '🔀', '🔁', '🔂', '🔄', '🔃', '🎵', '🎶', '♾', '💲', '💱', '©', '®', '➰', '➿', '🔚', '🔙', '🔛', '🔝', '🔜', '🔘', '⚪', '⚫', '🔴', '🔵', '🟤', '🟣', '🟢', '🟡', '🟠', '🔺', '🔻', '🔸', '🔹', '🔶', '🔷', '🔳', '🔲', '▪', '▫', '◾', '◽', '◼', '◻', '⬛', '⬜', '🟧', '🟦', '🟥', '🟫', '🟪', '🟩', '🟨', '🔈', '🔇', '🔉', '🔊', '🔔', '🔕', '📣', '📢', '🗨', '💬', '💭', '🗯', '🃏', '🎴', '🀄', '🕐', '🕑', '🕒', '🕓', '🕔', '🕕', '🕖', '🕗', '🕘', '🕙', '🕚', '🕛', '🕜', '🕝', '🕞', '🕟', '🕠', '🕡', '🕢', '🕣', '🕤', '🕥', '🕦', '🕧', '⚧', '🏳', '🏴', '🏁', '🚩', '🇦', '🇩', '🇧', '🇮', '🇻', '🇰', '🇨', '🇹', '🇭', '🇪', '🇸', '🇬', '🇫', '🇵', '🇯', '🎌', '🇽', '🇱', '🇲', '🇾', '🇳', '🇴', '🇶', '🇷', '🇼', '🇿', '🇺', '🏻', '🏼', '🏽', '🏾', '🏿'] - }; // Add all emoji in a dropdown - - $.extend(true, $.trumbowyg, { - langs: { - // jshint camelcase:false - en: { - emoji: 'Add an emoji' - }, - da: { - emoji: 'Tilføj et humørikon' - }, - de: { - emoji: 'Emoticon einfügen' - }, - et: { - emoji: 'Lisa emotikon' - }, - 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: '添加表情' - } - }, - // jshint camelcase:true - plugins: { - emoji: { - init: function init(trumbowyg) { - trumbowyg.o.plugins.emoji = trumbowyg.o.plugins.emoji || defaultOptions; - var emojiBtnDef = { - dropdown: buildDropdown(trumbowyg) - }; - trumbowyg.addBtnDef('emoji', emojiBtnDef); - } - } - } - }); - - function buildDropdown(trumbowyg) { - var dropdown = []; - $.each(trumbowyg.o.plugins.emoji.emojiList, function (i, emoji) { - if ($.isArray(emoji)) { - // Custom emoji behaviour - var emojiCode = emoji[0], - emojiUrl = emoji[1], - emojiHtml = '' + emojiCode + '', - customEmojiBtnName = 'emoji-' + emojiCode.replace(/:/g, ''), - customEmojiBtnDef = { - hasIcon: false, - text: emojiHtml, - fn: function fn() { - trumbowyg.execCmd('insertImage', emojiUrl, false, true); - return true; - } - }; - trumbowyg.addBtnDef(customEmojiBtnName, customEmojiBtnDef); - dropdown.push(customEmojiBtnName); - } else { - // Default behaviour - var btn = emoji.replace(/:/g, ''), - defaultEmojiBtnName = 'emoji-' + btn, - defaultEmojiBtnDef = { - text: emoji, - fn: function fn() { - var encodedEmoji = String.fromCodePoint(emoji.replace('&#', '0')); - trumbowyg.execCmd('insertText', encodedEmoji); - return true; - } - }; - trumbowyg.addBtnDef(defaultEmojiBtnName, defaultEmojiBtnDef); - dropdown.push(defaultEmojiBtnName); - } - }); - return dropdown; - } -})(jQuery); -!function (x) { - "use strict"; - - var F = { - emojiList: ["⁉", "™", "ℹ", "↔", "↕", "↖", "↗", "↘", "↙", "⌨", "☀", "☁", "☂", "☃", "☄", "☑", "☔", "☕", "☘", "☠", "☢", "☣", "☦", "☸", "☹", "♀", "♂", "♈", "♉", "♐", "♑", "♒", "♓", "♠", "♣", "♥", "♦", "♨", "⚒", "⚓", "⚔", "⚕", "⚖", "⚗", "⚙", "✂", "✅", "✈", "✉", "✒", "✔", "✖", "✡", "✨", "✳", "✴", "❄", "❇", "❓", "❔", "❕", "❗", "❣", "❤", "➕", "➖", "➗", "⤴", "⤵", "〰", "㊗", "㊙", "🧡", "💛", "💚", "💙", "💜", "🖤", "🤎", "🤍", "💔", "💕", "💞", "💓", "💗", "💖", "💘", "💝", "💟", "☮", "✝", "☪", "🕉", "🔯", "🕎", "☯", "🛐", "⛎", "♊", "♋", "♌", "♍", "♎", "♏", "🆔", "⚛", "🉑", "📴", "📳", "🈶", "🈚", "🈸", "🈺", "🈷", "🆚", "💮", "🉐", "🈴", "🈵", "🈹", "🈲", "🅰", "🅱", "🆎", "🆑", "🅾", "🆘", "❌", "⭕", "🛑", "⛔", "📛", "🚫", "💯", "💢", "🚷", "🚯", "🚳", "🚱", "🔞", "📵", "🚭", "‼", "🔅", "🔆", "〽", "⚠", "🚸", "🔱", "⚜", "🔰", "♻", "🈯", "💹", "❎", "🌐", "💠", "Ⓜ", "🌀", "💤", "🏧", "🚾", "♿", "🅿", "🈳", "🈂", "🛂", "🛃", "🛄", "🛅", "🚹", "🚺", "🚼", "🚻", "🚮", "🎦", "📶", "🈁", "🔣", "🔤", "🔡", "🔠", "🆖", "🆗", "🆙", "🆒", "🆕", "🆓", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "🔟", "🔢", "#", "*", "⏏", "▶", "⏸", "⏯", "⏹", "⏺", "⏭", "⏮", "⏩", "⏪", "⏫", "⏬", "◀", "🔼", "🔽", "➡", "⬅", "⬆", "⬇", "↪", "↩", "🔀", "🔁", "🔂", "🔄", "🔃", "🎵", "🎶", "♾", "💲", "💱", "©", "®", "➰", "➿", "🔚", "🔙", "🔛", "🔝", "🔜", "🔘", "⚪", "⚫", "🔴", "🔵", "🟤", "🟣", "🟢", "🟡", "🟠", "🔺", "🔻", "🔸", "🔹", "🔶", "🔷", "🔳", "🔲", "▪", "▫", "◾", "◽", "◼", "◻", "⬛", "⬜", "🟧", "🟦", "🟥", "🟫", "🟪", "🟩", "🟨", "🔈", "🔇", "🔉", "🔊", "🔔", "🔕", "📣", "📢", "🗨", "👁", "💬", "💭", "🗯", "🃏", "🎴", "🀄", "🕐", "🕑", "🕒", "🕓", "🕔", "🕕", "🕖", "🕗", "🕘", "🕙", "🕚", "🕛", "🕜", "🕝", "🕞", "🕟", "🕠", "🕡", "🕢", "🕣", "🕤", "🕥", "🕦", "🕧", "⚽", "🏀", "🏈", "⚾", "🥎", "🎾", "🏐", "🏉", "🥏", "🎱", "🏓", "🏸", "🏒", "🏑", "🥍", "🏏", "🥅", "⛳", "🏹", "🎣", "🥊", "🥋", "🎽", "🛹", "🛷", "🪂", "⛸", "🥌", "🎿", "⛷", "🏂", "🏋", "🤼", "🤸", "⛹", "🤺", "🤾", "🏌", "🏇", "🧘", "🏄", "🏊", "🤽", "🚣", "🧗", "🚵", "🚴", "🏆", "🥇", "🥈", "🥉", "🏅", "🎖", "🏵", "🎗", "🎫", "🎟", "🎪", "🤹", "🎭", "🎨", "🎬", "🎤", "🎧", "🎼", "🎹", "🥁", "🎷", "🎺", "🪕", "🎸", "🎻", "🎲", "♟", "🎯", "🪁", "🪀", "🎳", "🎮", "🎰", "🧩", "⌚", "📱", "📲", "💻", "🖥", "🖨", "🖱", "🖲", "🕹", "🗜", "💽", "💾", "💿", "📀", "📼", "📷", "📸", "📹", "🎥", "📽", "🎞", "📞", "☎", "📟", "📠", "📺", "📻", "🎙", "🎚", "🎛", "🧭", "⏱", "⏲", "⏰", "🕰", "⌛", "⏳", "📡", "🔋", "🔌", "💡", "🔦", "🕯", "🧯", "🛢", "💸", "💵", "💴", "💶", "💷", "💰", "💳", "💎", "🧰", "🔧", "🔨", "🛠", "⛏", "🔩", "🧱", "⛓", "🧲", "🔫", "💣", "🧨", "🪓", "🪒", "🔪", "🗡", "🛡", "🚬", "⚰", "⚱", "🏺", "🪔", "🔮", "📿", "🧿", "💈", "🔭", "🔬", "🕳", "🦯", "🩺", "🩹", "💊", "💉", "🩸", "🧬", "🦠", "🧫", "🧪", "🌡", "🪑", "🧹", "🧺", "🧻", "🚽", "🚰", "🚿", "🛁", "🛀", "🧼", "🧽", "🧴", "🛎", "🔑", "🗝", "🚪", "🛋", "🛏", "🛌", "🧸", "🖼", "🛍", "🛒", "🎁", "🎈", "🎏", "🎀", "🎊", "🎉", "🎎", "🏮", "🎐", "🧧", "📩", "📨", "📧", "💌", "📥", "📤", "📦", "🏷", "📪", "📫", "📬", "📭", "📮", "📯", "📜", "📃", "📄", "📑", "🧾", "📊", "📈", "📉", "🗒", "🗓", "📆", "📅", "🗑", "📇", "🗃", "🗳", "🗄", "📋", "📁", "📂", "🗂", "🗞", "📰", "📓", "📔", "📒", "📕", "📗", "📘", "📙", "📚", "📖", "🔖", "🧷", "🔗", "📎", "🖇", "📐", "📏", "🧮", "📌", "📍", "🖊", "🖋", "🖌", "🖍", "📝", "✏", "🔍", "🔎", "🔏", "🔐", "🔒", "🔓", "🐶", "🐱", "🐭", "🐹", "🐰", "🦊", "🐻", "🐼", "🐨", "🐯", "🦁", "🐮", "🐷", "🐽", "🐸", "🐵", "🙈", "🙉", "🙊", "🐒", "🐔", "🐧", "🐦", "🐤", "🐣", "🐥", "🦆", "🦅", "🦉", "🦇", "🐺", "🐗", "🐴", "🦄", "🐝", "🐛", "🦋", "🐌", "🐚", "🐞", "🐜", "🦟", "🦗", "🕷", "🕸", "🦂", "🐢", "🐍", "🦎", "🦖", "🦕", "🐙", "🦑", "🦐", "🦞", "🦪", "🦀", "🐡", "🐠", "🐟", "🐬", "🐳", "🐋", "🦈", "🐊", "🐅", "🐆", "🦓", "🦍", "🦧", "🐘", "🦛", "🦏", "🐪", "🐫", "🦒", "🦘", "🐃", "🐂", "🐄", "🐎", "🐖", "🐏", "🦙", "🐑", "🐐", "🦌", "🐕", "🦮", "🐩", "🐈", "🐓", "🦃", "🦚", "🦜", "🦢", "🦩", "🕊", "🐇", "🦥", "🦦", "🦨", "🦝", "🦡", "🐁", "🐀", "🐿", "🦔", "🐾", "🐉", "🐲", "🌵", "🎄", "🌲", "🌳", "🌴", "🌱", "🌿", "🍀", "🎍", "🎋", "🍃", "🍂", "🍁", "🍄", "🌾", "💐", "🌷", "🌹", "🥀", "🌺", "🌸", "🌼", "🌻", "🌞", "🌝", "🌛", "🌜", "🌚", "🌕", "🌖", "🌗", "🌘", "🌑", "🌒", "🌓", "🌔", "🌙", "🌎", "🌍", "🌏", "🪐", "💫", "⭐", "🌟", "⚡", "💥", "🔥", "🌪", "🌈", "🌤", "⛅", "🌥", "🌦", "🌧", "⛈", "🌩", "🌨", "⛄", "🌬", "💨", "💧", "💦", "🌊", "🌫", "🍏", "🍎", "🍐", "🍊", "🍋", "🍌", "🍉", "🍇", "🍓", "🍈", "🍒", "🍑", "🥭", "🍍", "🥥", "🥝", "🍅", "🍆", "🥑", "🥦", "🥬", "🥒", "🌶", "🌽", "🥕", "🧅", "🧄", "🥔", "🍠", "🥐", "🥯", "🍞", "🥖", "🥨", "🧀", "🥚", "🍳", "🥞", "🧇", "🥓", "🥩", "🍗", "🍖", "🌭", "🍔", "🍟", "🍕", "🥪", "🧆", "🥙", "🌮", "🌯", "🥗", "🥘", "🥫", "🍝", "🍜", "🍲", "🍛", "🍣", "🍱", "🥟", "🍤", "🍙", "🍚", "🍘", "🍥", "🥠", "🥮", "🍢", "🍡", "🍧", "🍨", "🍦", "🥧", "🧁", "🍰", "🎂", "🍮", "🍭", "🍬", "🍫", "🍿", "🍩", "🍪", "🌰", "🥜", "🍯", "🧈", "🥛", "🍼", "🍵", "🧉", "🥤", "🧃", "🧊", "🍶", "🍺", "🍻", "🥂", "🍷", "🥃", "🍸", "🍹", "🍾", "🥄", "🍴", "🍽", "🥣", "🥡", "🥢", "🧂", "😀", "😃", "😄", "😁", "😆", "😅", "😂", "🤣", "☺", "😊", "😇", "🙂", "🙃", "😉", "😌", "😍", "🥰", "😘", "😗", "😙", "😚", "😋", "😛", "😝", "😜", "🤪", "🤨", "🧐", "🤓", "😎", "🤩", "🥳", "😏", "😒", "😞", "😔", "😟", "😕", "🙁", "😣", "😖", "😫", "😩", "🥺", "😢", "😭", "😤", "😠", "😡", "🤬", "🤯", "😳", "🥵", "🥶", "😱", "😨", "😰", "😥", "😓", "🤗", "🤔", "🤭", "🥱", "🤫", "🤥", "😶", "😐", "😑", "😬", "🙄", "😯", "😦", "😧", "😮", "😲", "😴", "🤤", "😪", "😵", "🤐", "🥴", "🤢", "🤮", "🤧", "😷", "🤒", "🤕", "🤑", "🤠", "😈", "👿", "👹", "👺", "🤡", "💩", "👻", "💀", "👽", "👾", "🤖", "🎃", "😺", "😸", "😹", "😻", "😼", "😽", "🙀", "😿", "😾", "🤲", "👐", "🙌", "👏", "🤝", "👍", "👎", "👊", "✊", "🤛", "🤜", "🤞", "✌", "🤟", "🤘", "👌", "🤏", "👈", "👉", "👆", "👇", "☝", "✋", "🤚", "🖐", "🖖", "👋", "🤙", "💪", "🦾", "🖕", "✍", "🙏", "🦶", "🦵", "🦿", "💄", "💋", "👄", "🦷", "🦴", "👅", "👂", "🦻", "👃", "👣", "👀", "🧠", "🗣", "👤", "👥", "👶", "👧", "🧒", "👦", "👩", "🧑", "👨", "👱", "🧔", "👵", "🧓", "👴", "👲", "👳", "🧕", "👮", "👷", "💂", "🕵", "👰", "🤵", "👸", "🤴", "🦸", "🦹", "🤶", "🎅", "🧙", "🧝", "🧛", "🧟", "🧞", "🧜", "🧚", "👼", "🤰", "🤱", "🙇", "💁", "🙅", "🙆", "🙋", "🧏", "🤦", "🤷", "🙎", "🙍", "💇", "💆", "🧖", "💅", "🤳", "💃", "🕺", "👯", "🕴", "🚶", "🏃", "🧍", "🧎", "👫", "👭", "👬", "💑", "💏", "👪", "🧶", "🧵", "🧥", "🥼", "🦺", "👚", "👕", "👖", "🩳", "👔", "👗", "👙", "🩱", "👘", "🥻", "🥿", "👠", "👡", "👢", "🩰", "👞", "👟", "🥾", "🩲", "🧦", "🧤", "🧣", "🎩", "🧢", "👒", "🎓", "⛑", "👑", "💍", "👝", "👛", "👜", "💼", "🎒", "🧳", "👓", "🕶", "🥽", "🤿", "🌂", "🦱", "🦰", "🦳", "🦲", "🚗", "🚕", "🚙", "🚌", "🚎", "🏎", "🚓", "🚑", "🚒", "🚐", "🚚", "🚛", "🚜", "🛺", "🛵", "🏍", "🛴", "🚲", "🦼", "🦽", "🚨", "🚔", "🚍", "🚘", "🚖", "🚡", "🚠", "🚟", "🚃", "🚋", "🚞", "🚝", "🚄", "🚅", "🚈", "🚂", "🚆", "🚇", "🚊", "🚉", "🛫", "🛬", "🛩", "💺", "🛰", "🚀", "🛸", "🚁", "🛶", "⛵", "🚤", "🛥", "🛳", "⛴", "🚢", "⛽", "🚧", "🚦", "🚥", "🚏", "🗺", "🗿", "🗽", "🗼", "🏰", "🏯", "🏟", "🎡", "🎢", "🎠", "⛲", "⛱", "🏖", "🏝", "🏜", "🌋", "⛰", "🏔", "🗻", "🏕", "⛺", "🏠", "🏡", "🏘", "🏚", "🏗", "🏭", "🏢", "🏬", "🏣", "🏤", "🏥", "🏦", "🏨", "🏪", "🏫", "🏩", "💒", "🏛", "⛪", "🕌", "🛕", "🕍", "🕋", "⛩", "🛤", "🛣", "🗾", "🎑", "🏞", "🌅", "🌄", "🌠", "🎇", "🎆", "🌇", "🌆", "🏙", "🌃", "🌌", "🌉", "🌁", "🇿", "🇾", "🇽", "🇼", "🇻", "🇺", "🇹", "🇸", "🇷", "🇶", "🇵", "🇴", "🇳", "🇲", "🇱", "🇰", "🇯", "🇮", "🇭", "🇬", "🇫", "🇪", "🇩", "🇨", "🇧", "🇦", "🏳", "🏴", "🏁", "🚩", "🎌", "🏻", "🏼", "🏽", "🏾", "🏿"] - }; - - function A(F) { - var A = []; - return x.each(F.o.plugins.emoji.emojiList, function (E, B) { - if (x.isArray(B)) { - var C = B[0], - D = B[1], - e = '' + C + '', - i = "emoji-" + C.replace(/:/g, ""), - o = { - hasIcon: !1, - text: e, - fn: function fn() { - return F.execCmd("insertImage", D, !1, !0), !0; - } - }; - F.addBtnDef(i, o), A.push(i); - } else { - var n = "emoji-" + B.replace(/:/g, ""), - t = { - text: B, - fn: function fn() { - var x = String.fromCodePoint(B.replace("&#", "0")); - return F.execCmd("insertText", x), !0; - } - }; - F.addBtnDef(n, t), A.push(n); - } - }), A; - } - - x.extend(!0, x.trumbowyg, { - langs: { - en: { - emoji: "Add an emoji" - }, - da: { - emoji: "Tilføj et humørikon" - }, - de: { - emoji: "Emoticon einfügen" - }, - et: { - emoji: "Lisa emotikon" - }, - 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 init(x) { - x.o.plugins.emoji = x.o.plugins.emoji || F; - var E = { - dropdown: A(x) - }; - x.addBtnDef("emoji", E); - } - } - } - }); -}(jQuery); -(function ($) { - 'use strict'; - - $.extend(true, $.trumbowyg, { - langs: { - // jshint camelcase:false - en: { - fontFamily: 'Font' - }, - by: { - fontFamily: 'Шрыфт' - }, - es: { - fontFamily: 'Fuente' - }, - da: { - fontFamily: 'Skrifttype' - }, - de: { - fontFamily: 'Schriftart' - }, - et: { - fontFamily: 'Font' - }, - fr: { - fontFamily: 'Police' - }, - hu: { - fontFamily: 'Betűtípus' - }, - ko: { - fontFamily: '글꼴' - }, - nl: { - fontFamily: 'Lettertype' - }, - pt_br: { - fontFamily: 'Fonte' - }, - ru: { - fontFamily: 'Шрифт' - }, - tr: { - fontFamily: 'Yazı tipi' - }, - zh_tw: { - fontFamily: '字體' - } - } - }); // jshint camelcase:true - - var defaultOptions = { - 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' - }] - }; // Add dropdown with web safe fonts - - $.extend(true, $.trumbowyg, { - plugins: { - fontfamily: { - init: function init(trumbowyg) { - trumbowyg.o.plugins.fontfamily = $.extend({}, defaultOptions, trumbowyg.o.plugins.fontfamily || {}); - trumbowyg.addBtnDef('fontfamily', { - dropdown: buildDropdown(trumbowyg), - hasIcon: false, - text: trumbowyg.lang.fontFamily - }); - } - } - } - }); + function checkValidTags(snippet) { + var theString = snippet; // Replace uppercase element names with lowercase - function buildDropdown(trumbowyg) { - var dropdown = []; - $.each(trumbowyg.o.plugins.fontfamily.fontList, function (index, font) { - trumbowyg.addBtnDef('fontfamily_' + index, { - title: '' + font.name + '', - hasIcon: false, - fn: function fn() { - trumbowyg.execCmd('fontName', font.family, true); - } + 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(); }); - dropdown.push('fontfamily_' + index); + return match; + }); // Put quotes around unquoted attributes + + theString = theString.replace(/<[^>]*>/g, function (match) { + match = match.replace(/( [^=]+=)([^"][^ >]*)/g, '$1\"$2\"'); + return match; }); - return dropdown; + return theString; } -})(jQuery); -!function (a) { - "use strict"; - a.extend(!0, a.trumbowyg, { - langs: { - en: { - fontFamily: "Font" - }, - es: { - fontFamily: "Fuente" - }, - da: { - fontFamily: "Skrifttype" - }, - de: { - fontFamily: "Schriftart" - }, - et: { - fontFamily: "Font" - }, - 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 n = { - 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 cleanIt(html) { + // first make sure all tags and attributes are made valid + html = checkValidTags(html); // Replace opening bold tags with strong - function i(n) { - var i = []; - return a.each(n.o.plugins.fontfamily.fontList, function (a, e) { - n.addBtnDef("fontfamily_" + a, { - title: '' + e.name + "", - hasIcon: !1, - fn: function fn() { - n.execCmd("fontName", e.family, !0); + 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; } - }), i.push("fontfamily_" + a); - }), i; - } - a.extend(!0, a.trumbowyg, { + 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: { - fontfamily: { - init: function init(e) { - e.o.plugins.fontfamily = a.extend({}, n, e.o.plugins.fontfamily || {}), e.addBtnDef("fontfamily", { - dropdown: i(e), - hasIcon: !1, - text: e.lang.fontFamily + 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(); + trumbowyg.$c.trigger('tbwchange'); + } catch (c) {} + }, 0); }); } } } }); -}(jQuery); +})(jQuery); /* =========================================================== * trumbowyg.colors.js v1.2 * Colors picker plugin for Trumbowyg @@ -989,6 +369,12 @@ foreColorRemove: 'Remove text color', backColorRemove: 'Remove background color' }, + sl: { + foreColor: 'Barva teksta', + backColor: 'Barva ozadja', + foreColorRemove: 'Ponastavi barvo teksta', + backColorRemove: 'Ponastavi barvo ozadja' + }, by: { foreColor: 'Колер тэксту', backColor: 'Колер фону тэксту', @@ -1229,187 +615,240 @@ return dropdown; } })(jQuery); -!function (o) { - "use strict"; - - function r(o) { - return ("0" + parseInt(o).toString(16)).slice(-2); - } - - function e(o) { - return -1 === o.search("rgb") ? o.replace("#", "") : "rgba(0, 0, 0, 0)" === o ? "transparent" : r((o = o.match(/^rgba?\((\d+),\s*(\d+),\s*(\d+)(?:,\s*(\d?(.\d+)))?\)$/))[1]) + r(o[2]) + r(o[3]); - } +/* =========================================================== + * trumbowyg.emoji.js v0.1 + * Emoji picker plugin for Trumbowyg + * http://alex-d.github.com/Trumbowyg + * =========================================================== + * Author : Nicolas Pion + * Twitter : @nicolas_pion + */ +(function ($) { + 'use strict'; + + var defaultOptions = { + emojiList: ['⁉', '™', 'ℹ', '↔', '↕', '↖', '↗', '↘', '↙', '⌨', '☀', '☁', '☂', '☃', '☄', '☑', '☔', '☕', '☘', '☠', '☢', '☣', '☦', '☸', '☹', '♀', '♂', '♈', '♉', '♐', '♑', '♒', '♓', '♠', '♣', '♥', '♦', '♨', '⚒', '⚓', '⚔', '⚕', '⚖', '⚗', '⚙', '✂', '✅', '✈', '✉', '✒', '✔', '✖', '✡', '✨', '✳', '✴', '❄', '❇', '❓', '❔', '❕', '❗', '❣', '❤', '➕', '➖', '➗', '⤴', '⤵', '〰', '㊗', '㊙', '😀', '😃', '😄', '😁', '😆', '😅', '😂', '🤣', '☺', '😊', '😇', '🙂', '🙃', '😉', '😌', '🥲', '😍', '🥰', '😘', '😗', '😙', '😚', '😋', '😛', '😝', '😜', '🤪', '🤨', '🧐', '🤓', '😎', '🤩', '🥳', '😏', '😒', '😞', '😔', '😟', '😕', '🙁', '😣', '😖', '😫', '😩', '🥺', '😢', '😭', '😤', '😮', '😠', '😡', '🤬', '🤯', '😳', '😶', '🥵', '🥶', '😱', '😨', '😰', '😥', '😓', '🤗', '🤔', '🤭', '🥱', '🤫', '🤥', '😐', '😑', '😬', '🙄', '😯', '😦', '😧', '😲', '😴', '🤤', '😪', '😵', '🤐', '🥴', '🤢', '🤮', '🤧', '😷', '🤒', '🤕', '🤑', '🤠', '🥸', '😈', '👿', '👹', '👺', '🤡', '💩', '👻', '💀', '👽', '👾', '🤖', '🎃', '😺', '😸', '😹', '😻', '😼', '😽', '🙀', '😿', '😾', '🤲', '👐', '🙌', '👏', '🤝', '👍', '👎', '👊', '✊', '🤛', '🤜', '🤞', '✌', '🤟', '🤘', '👌', '🤏', '🤌', '👈', '👉', '👆', '👇', '☝', '✋', '🤚', '🖐', '🖖', '👋', '🤙', '💪', '🦾', '🖕', '✍', '🙏', '🦶', '🦵', '🦿', '💄', '💋', '👄', '🦷', '👅', '👂', '🦻', '👃', '👣', '👁', '👀', '🧠', '🫀', '🫁', '🦴', '🗣', '👤', '👥', '🫂', '👶', '👧', '🧒', '👦', '👩', '🧑', '👨', '👱', '🧔', '👵', '🧓', '👴', '👲', '👳', '🧕', '👮', '👷', '💂', '🕵', '👰', '🤵', '👸', '🤴', '🦸', '🦹', '🥷', '🤶', '🎅', '🧙', '🧝', '🧛', '🧟', '🧞', '🧜', '🧚', '👼', '🤰', '🤱', '🙇', '💁', '🙅', '🙆', '🙋', '🧏', '🤦', '🤷', '🙎', '🙍', '💇', '💆', '🧖', '💅', '🤳', '💃', '🕺', '👯', '🕴', '🚶', '🧎', '🏃', '🧍', '👫', '👭', '👬', '💑', '💏', '👪', '🧶', '🧵', '🧥', '🥼', '🦺', '👚', '👕', '👖', '🩲', '🩳', '👔', '👗', '👙', '🩱', '👘', '🥻', '🥿', '👠', '👡', '👢', '👞', '👟', '🥾', '🩴', '🧦', '🧤', '🧣', '🎩', '🧢', '👒', '🎓', '⛑', '🪖', '👑', '💍', '👝', '👛', '👜', '💼', '🎒', '🧳', '👓', '🕶', '🥽', '🌂', '🦱', '🦰', '🦳', '🦲', '🐶', '🐱', '🐭', '🐹', '🐰', '🦊', '🐻', '🐼', '🐨', '🐯', '🦁', '🐮', '🐷', '🐽', '🐸', '🐵', '🙈', '🙉', '🙊', '🐒', '🐔', '🐧', '🐦', '🐤', '🐣', '🐥', '🦆', '🦤', '🦅', '🦉', '🦇', '🐺', '🐗', '🐴', '🦄', '🐝', '🐛', '🦋', '🐌', '🪱', '🐞', '🐜', '🪰', '🦟', '🪳', '🪲', '🦗', '🕷', '🕸', '🦂', '🐢', '🐍', '🦎', '🦖', '🦕', '🐙', '🦑', '🦐', '🦞', '🦀', '🐡', '🐠', '🐟', '🦭', '🐬', '🐳', '🐋', '🦈', '🐊', '🐅', '🐆', '🦓', '🦍', '🦧', '🐘', '🦣', '🦬', '🦛', '🦏', '🐪', '🐫', '🦒', '🦘', '🐃', '🐂', '🐄', '🐎', '🐖', '🐏', '🐑', '🦙', '🐐', '🦌', '🐕', '🐩', '🦮', '🐈', '🐓', '🦃', '🦚', '🦜', '🦢', '🦩', '🕊', '🐇', '🦝', '🦨', '🦡', '🦫', '🦦', '🦥', '🐁', '🐀', '🐿', '🦔', '🐾', '🐉', '🐲', '🌵', '🎄', '🌲', '🌳', '🌴', '🌱', '🌿', '🍀', '🎍', '🎋', '🍃', '🍂', '🍁', '🪶', '🍄', '🐚', '🪨', '🪵', '🌾', '🪴', '💐', '🌷', '🌹', '🥀', '🌺', '🌸', '🌼', '🌻', '🌞', '🌝', '🌛', '🌜', '🌚', '🌕', '🌖', '🌗', '🌘', '🌑', '🌒', '🌓', '🌔', '🌙', '🌎', '🌍', '🌏', '🪐', '💫', '⭐', '🌟', '⚡', '💥', '🔥', '🌪', '🌈', '🌤', '⛅', '🌥', '🌦', '🌧', '⛈', '🌩', '🌨', '⛄', '🌬', '💨', '💧', '💦', '🌊', '🌫', '🍏', '🍎', '🍐', '🍊', '🍋', '🍌', '🍉', '🍇', '🫐', '🍓', '🍈', '🍒', '🍑', '🥭', '🍍', '🥥', '🥝', '🍅', '🍆', '🥑', '🫒', '🥦', '🥬', '🫑', '🥒', '🌶', '🌽', '🥕', '🧄', '🧅', '🥔', '🍠', '🥐', '🥯', '🍞', '🥖', '🫓', '🥨', '🧀', '🥚', '🍳', '🧈', '🥞', '🧇', '🥓', '🥩', '🍗', '🍖', '🌭', '🍔', '🍟', '🍕', '🥪', '🥙', '🧆', '🌮', '🌯', '🫔', '🥗', '🥘', '🫕', '🥫', '🍝', '🍜', '🍲', '🍛', '🍣', '🍱', '🥟', '🦪', '🍤', '🍙', '🍚', '🍘', '🍥', '🥠', '🥮', '🍢', '🍡', '🍧', '🍨', '🍦', '🥧', '🧁', '🍰', '🎂', '🍮', '🍭', '🍬', '🍫', '🍿', '🍩', '🍪', '🌰', '🥜', '🍯', '🥛', '🍼', '🍵', '🫖', '🧉', '🧋', '🧃', '🥤', '🍶', '🍺', '🍻', '🥂', '🍷', '🥃', '🍸', '🍹', '🍾', '🧊', '🥄', '🍴', '🍽', '🥣', '🥡', '🥢', '🧂', '⚽', '🏀', '🏈', '⚾', '🥎', '🎾', '🏐', '🏉', '🥏', '🪃', '🎱', '🪀', '🏓', '🏸', '🏒', '🏑', '🥍', '🏏', '🥅', '⛳', '🪁', '🏹', '🎣', '🤿', '🥊', '🥋', '🎽', '🛹', '🛼', '🛷', '⛸', '🥌', '🎿', '⛷', '🏂', '🪂', '🏋', '🤼', '🤸', '⛹', '🤺', '🤾', '🏌', '🏇', '🧘', '🏄', '🏊', '🤽', '🚣', '🧗', '🚵', '🚴', '🏆', '🥇', '🥈', '🥉', '🏅', '🎖', '🏵', '🎗', '🎫', '🎟', '🎪', '🤹', '🎭', '🩰', '🎨', '🎬', '🎤', '🎧', '🎼', '🎹', '🥁', '🪘', '🎷', '🎺', '🎸', '🪕', '🎻', '🪗', '🎲', '♟', '🎯', '🎳', '🎮', '🎰', '🧩', '🚗', '🚕', '🚙', '🛻', '🚌', '🚎', '🏎', '🚓', '🚑', '🚒', '🚐', '🚚', '🚛', '🚜', '🦯', '🦽', '🦼', '🛴', '🚲', '🛵', '🏍', '🛺', '🚨', '🚔', '🚍', '🚘', '🚖', '🚡', '🚠', '🚟', '🚃', '🚋', '🚞', '🚝', '🚄', '🚅', '🚈', '🚂', '🚆', '🚇', '🚊', '🚉', '🛫', '🛬', '🛩', '💺', '🛰', '🚀', '🛸', '🚁', '🛶', '⛵', '🚤', '🛥', '🛳', '⛴', '🚢', '⛽', '🚧', '🚦', '🚥', '🚏', '🗺', '🗿', '🗽', '🗼', '🏰', '🏯', '🏟', '🎡', '🎢', '🎠', '⛲', '⛱', '🏖', '🏝', '🏜', '🌋', '⛰', '🏔', '🗻', '🏕', '⛺', '🏠', '🏡', '🏘', '🏚', '🛖', '🏗', '🏭', '🏢', '🏬', '🏣', '🏤', '🏥', '🏦', '🏨', '🏪', '🏫', '🏩', '💒', '🏛', '⛪', '🕌', '🕍', '🛕', '🕋', '⛩', '🛤', '🛣', '🗾', '🎑', '🏞', '🌅', '🌄', '🌠', '🎇', '🎆', '🌇', '🌆', '🏙', '🌃', '🌌', '🌉', '🌁', '⌚', '📱', '📲', '💻', '🖥', '🖨', '🖱', '🖲', '🕹', '🗜', '💽', '💾', '💿', '📀', '📼', '📷', '📸', '📹', '🎥', '📽', '🎞', '📞', '☎', '📟', '📠', '📺', '📻', '🎙', '🎚', '🎛', '🧭', '⏱', '⏲', '⏰', '🕰', '⌛', '⏳', '📡', '🔋', '🔌', '💡', '🔦', '🕯', '🪔', '🧯', '🛢', '💸', '💵', '💴', '💶', '💷', '🪙', '💰', '💳', '💎', '🪜', '🧰', '🪛', '🔧', '🔨', '🛠', '⛏', '🔩', '🧱', '⛓', '🪝', '🪢', '🧲', '🔫', '💣', '🧨', '🪓', '🪚', '🔪', '🗡', '🛡', '🚬', '⚰', '🪦', '⚱', '🏺', '🪄', '🔮', '📿', '🧿', '💈', '🔭', '🔬', '🕳', '🪟', '🩹', '🩺', '💊', '💉', '🩸', '🧬', '🦠', '🧫', '🧪', '🌡', '🪤', '🧹', '🧺', '🪡', '🧻', '🚽', '🪠', '🪣', '🚰', '🚿', '🛁', '🛀', '🪥', '🧼', '🪒', '🧽', '🧴', '🛎', '🔑', '🗝', '🚪', '🪑', '🪞', '🛋', '🛏', '🛌', '🧸', '🖼', '🛍', '🛒', '🎁', '🎈', '🎏', '🎀', '🎊', '🎉', '🪅', '🪆', '🎎', '🏮', '🎐', '🧧', '📩', '📨', '📧', '💌', '📥', '📤', '📦', '🏷', '📪', '📫', '📬', '📭', '📮', '📯', '🪧', '📜', '📃', '📄', '📑', '🧾', '📊', '📈', '📉', '🗒', '🗓', '📆', '📅', '🗑', '📇', '🗃', '🗳', '🗄', '📋', '📁', '📂', '🗂', '🗞', '📰', '📓', '📔', '📒', '📕', '📗', '📘', '📙', '📚', '📖', '🔖', '🧷', '🔗', '📎', '🖇', '📐', '📏', '🧮', '📌', '📍', '🖊', '🖋', '🖌', '🖍', '📝', '✏', '🔍', '🔎', '🔏', '🔐', '🔒', '🔓', '🧡', '💛', '💚', '💙', '💜', '🖤', '🤎', '🤍', '💔', '💕', '💞', '💓', '💗', '💖', '💘', '💝', '💟', '☮', '✝', '☪', '🕉', '🔯', '🕎', '☯', '🛐', '⛎', '♊', '♋', '♌', '♍', '♎', '♏', '🆔', '⚛', '🉑', '📴', '📳', '🈶', '🈚', '🈸', '🈺', '🈷', '🆚', '💮', '🉐', '🈴', '🈵', '🈹', '🈲', '🅰', '🅱', '🆎', '🆑', '🅾', '🆘', '❌', '⭕', '🛑', '⛔', '📛', '🚫', '💯', '💢', '🚷', '🚯', '🚳', '🚱', '🔞', '📵', '🚭', '‼', '🔅', '🔆', '〽', '⚠', '🚸', '🔱', '⚜', '🔰', '♻', '🈯', '💹', '❎', '🌐', '💠', 'Ⓜ', '🌀', '💤', '🏧', '🚾', '♿', '🅿', '🈳', '🈂', '🛂', '🛃', '🛄', '🛅', '🛗', '🚹', '🚺', '🚼', '🚻', '🚮', '🎦', '📶', '🈁', '🔣', '🔤', '🔡', '🔠', '🆖', '🆗', '🆙', '🆒', '🆕', '🆓', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '🔟', '🔢', '#', '*', '⏏', '▶', '⏸', '⏯', '⏹', '⏺', '⏭', '⏮', '⏩', '⏪', '⏫', '⏬', '◀', '🔼', '🔽', '➡', '⬅', '⬆', '⬇', '↪', '↩', '🔀', '🔁', '🔂', '🔄', '🔃', '🎵', '🎶', '♾', '💲', '💱', '©', '®', '➰', '➿', '🔚', '🔙', '🔛', '🔝', '🔜', '🔘', '⚪', '⚫', '🔴', '🔵', '🟤', '🟣', '🟢', '🟡', '🟠', '🔺', '🔻', '🔸', '🔹', '🔶', '🔷', '🔳', '🔲', '▪', '▫', '◾', '◽', '◼', '◻', '⬛', '⬜', '🟧', '🟦', '🟥', '🟫', '🟪', '🟩', '🟨', '🔈', '🔇', '🔉', '🔊', '🔔', '🔕', '📣', '📢', '🗨', '💬', '💭', '🗯', '🃏', '🎴', '🀄', '🕐', '🕑', '🕒', '🕓', '🕔', '🕕', '🕖', '🕗', '🕘', '🕙', '🕚', '🕛', '🕜', '🕝', '🕞', '🕟', '🕠', '🕡', '🕢', '🕣', '🕤', '🕥', '🕦', '🕧', '⚧', '🏳', '🏴', '🏁', '🚩', '🇦', '🇩', '🇧', '🇮', '🇻', '🇰', '🇨', '🇹', '🇭', '🇪', '🇸', '🇬', '🇫', '🇵', '🇯', '🎌', '🇽', '🇱', '🇲', '🇾', '🇳', '🇴', '🇶', '🇷', '🇼', '🇿', '🇺', '🏻', '🏼', '🏽', '🏾', '🏿'] + }; // Add all emoji in a dropdown + + $.extend(true, $.trumbowyg, { + langs: { + // jshint camelcase:false + en: { + emoji: 'Add an emoji' + }, + sl: { + emoji: 'Vstavi emotikon' + }, + da: { + emoji: 'Tilføj et humørikon' + }, + de: { + emoji: 'Emoticon einfügen' + }, + et: { + emoji: 'Lisa emotikon' + }, + 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: '添加表情' + } + }, + // jshint camelcase:true + plugins: { + emoji: { + init: function init(trumbowyg) { + trumbowyg.o.plugins.emoji = trumbowyg.o.plugins.emoji || defaultOptions; + var emojiBtnDef = { + dropdown: buildDropdown(trumbowyg) + }; + trumbowyg.addBtnDef('emoji', emojiBtnDef); + } + } + } + }); + + function buildDropdown(trumbowyg) { + var dropdown = []; + $.each(trumbowyg.o.plugins.emoji.emojiList, function (i, emoji) { + if ($.isArray(emoji)) { + // Custom emoji behaviour + var emojiCode = emoji[0], + emojiUrl = emoji[1], + emojiHtml = '' + emojiCode + '', + customEmojiBtnName = 'emoji-' + emojiCode.replace(/:/g, ''), + customEmojiBtnDef = { + hasIcon: false, + text: emojiHtml, + fn: function fn() { + trumbowyg.execCmd('insertImage', emojiUrl, false, true); + return true; + } + }; + trumbowyg.addBtnDef(customEmojiBtnName, customEmojiBtnDef); + dropdown.push(customEmojiBtnName); + } else { + // Default behaviour + var btn = emoji.replace(/:/g, ''), + defaultEmojiBtnName = 'emoji-' + btn, + defaultEmojiBtnDef = { + text: emoji, + fn: function fn() { + var encodedEmoji = String.fromCodePoint(emoji.replace('&#', '0')); + trumbowyg.execCmd('insertText', encodedEmoji); + return true; + } + }; + trumbowyg.addBtnDef(defaultEmojiBtnName, defaultEmojiBtnDef); + dropdown.push(defaultEmojiBtnName); + } + }); + return dropdown; + } +})(jQuery); +(function ($) { + 'use strict'; - o.extend(!0, o.trumbowyg, { + $.extend(true, $.trumbowyg, { langs: { + // jshint camelcase:false en: { - foreColor: "Text color", - backColor: "Background color", - foreColorRemove: "Remove text color", - backColorRemove: "Remove background color" + fontFamily: 'Font' }, - cs: { - foreColor: "Barva textu", - backColor: "Barva pozadí" + sl: { + fontFamily: 'Pisava' + }, + by: { + fontFamily: 'Шрыфт' + }, + es: { + fontFamily: 'Fuente' }, da: { - foreColor: "Tekstfarve", - backColor: "Baggrundsfarve" + fontFamily: 'Skrifttype' }, de: { - foreColor: "Textfarbe", - backColor: "Hintergrundfarbe" + fontFamily: 'Schriftart' }, et: { - foreColor: "Teksti värv", - backColor: "Taustavärv", - foreColorRemove: "Eemalda teksti värv", - backColorRemove: "Eemalda taustavärv" + fontFamily: 'Font' }, fr: { - foreColor: "Couleur du texte", - backColor: "Couleur de fond", - foreColorRemove: "Supprimer la couleur du texte", - backColorRemove: "Supprimer la couleur de fond" + fontFamily: 'Police' }, 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: "背景色" + fontFamily: 'Betűtípus' }, ko: { - foreColor: "글자색", - backColor: "배경색", - foreColorRemove: "글자색 지우기", - backColorRemove: "배경색 지우기" + fontFamily: '글꼴' }, nl: { - foreColor: "Tekstkleur", - backColor: "Achtergrondkleur" + fontFamily: 'Lettertype' }, pt_br: { - foreColor: "Cor de fonte", - backColor: "Cor de fundo" + fontFamily: 'Fonte' }, ru: { - foreColor: "Цвет текста", - backColor: "Цвет выделения текста" - }, - sk: { - foreColor: "Farba textu", - backColor: "Farba pozadia" + fontFamily: 'Шрифт' }, tr: { - foreColor: "Yazı rengi", - backColor: "Arka plan rengi", - foreColorRemove: "Yazı rengini kaldır", - backColorRemove: "Arka plan rengini kaldır" - }, - zh_cn: { - foreColor: "文字颜色", - backColor: "背景颜色" + fontFamily: 'Yazı tipi' }, zh_tw: { - foreColor: "文字顏色", - backColor: "背景顏色" + fontFamily: '字體' } } - }); - var l = { - 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(r, e) { - var l = [], - a = e.o.plugins.colors, - t = a[r + "List"] || a.colorList; - o.each(t, function (o, t) { - var c = r + t, - f = { - fn: r, - forceCss: !0, - hasIcon: !1, - text: e.lang["#" + t] || "#" + t, - param: "#" + t, - style: "background-color: #" + t + ";" - }; - a.displayAsList && "foreColor" === r && (f.style = "color: #" + t + " !important;"), e.addBtnDef(c, f), l.push(c); - }); - var c = r + "Remove", - f = { - fn: "removeFormat", - hasIcon: !1, - param: r, - style: "background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAAECAYAAACp8Z5+AAAAG0lEQVQIW2NkQAAfEJMRmwBYhoGBYQtMBYoAADziAp0jtJTgAAAAAElFTkSuQmCC);" - }; - - if (a.displayAsList && (f.style = ""), e.addBtnDef(c, f), l.push(c), a["allowCustom" + r.charAt(0).toUpperCase() + r.substr(1)]) { - var d = r + "Free", - n = { - fn: function fn() { - e.openModalInsert(e.lang[r], { - color: { - label: r, - forceCss: !0, - type: "color", - value: "#FFFFFF" - } - }, function (o) { - return e.execCmd(r, o.color), !0; - }); - }, - hasIcon: !1, - text: "#", - style: "text-indent: 0; line-height: 20px; padding: 0 5px;" - }; - e.addBtnDef(d, n), l.push(d); - } + }); // jshint camelcase:true - return l; - } + var defaultOptions = { + 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' + }] + }; // Add dropdown with web safe fonts - o.extend(!0, o.trumbowyg, { + $.extend(true, $.trumbowyg, { plugins: { - color: { - init: function init(o) { - o.o.plugins.colors = o.o.plugins.colors || l; - var r = o.o.plugins.colors.displayAsList ? o.o.prefix + "dropdown--color-list" : "", - e = { - dropdown: a("foreColor", o), - dropdownClass: r - }, - t = { - dropdown: a("backColor", o), - dropdownClass: r - }; - o.addBtnDef("foreColor", e), o.addBtnDef("backColor", t); - }, - tagHandler: function tagHandler(o, r) { - var l, - a = []; - if (!o.style) return a; - - if ("" !== o.style.backgroundColor) { - var t = e(o.style.backgroundColor); - r.o.plugins.colors.colorList.indexOf(t) >= 0 ? a.push("backColor" + t) : a.push("backColorFree"); - } - - return "" !== o.style.color ? l = e(o.style.color) : o.hasAttribute("color") && (l = e(o.getAttribute("color"))), l && (r.o.plugins.colors.colorList.indexOf(l) >= 0 ? a.push("foreColor" + l) : a.push("foreColorFree")), a; + fontfamily: { + init: function init(trumbowyg) { + trumbowyg.o.plugins.fontfamily = $.extend({}, defaultOptions, trumbowyg.o.plugins.fontfamily || {}); + trumbowyg.addBtnDef('fontfamily', { + dropdown: buildDropdown(trumbowyg), + hasIcon: false, + text: trumbowyg.lang.fontFamily + }); } } } }); -}(jQuery); + + function buildDropdown(trumbowyg) { + var dropdown = []; + $.each(trumbowyg.o.plugins.fontfamily.fontList, function (index, font) { + trumbowyg.addBtnDef('fontfamily_' + index, { + title: '' + font.name + '', + hasIcon: false, + fn: function fn() { + trumbowyg.execCmd('fontName', font.family, true); + } + }); + dropdown.push('fontfamily_' + index); + }); + return dropdown; + } +})(jQuery); (function ($) { 'use strict'; @@ -1432,6 +871,22 @@ value: '48px' } }, + sl: { + fontsize: 'Velikost pisave', + fontsizes: { + 'x-small': 'Ekstra majhna', + 'small': 'Majhna', + 'medium': 'Navadno', + 'large': 'Velika', + 'x-large': 'Ekstra velika', + 'custom': 'Poljubna' + }, + fontCustomSize: { + title: 'Poljubna velikost pisave', + label: 'Velikost pisave', + value: '48px' + } + }, by: { fontsize: 'Памер шрыфта', fontsizes: { @@ -1579,7 +1034,12 @@ 'medium': 'Normaal', 'large': 'Groot', 'x-large': 'Extra groot', - 'custom': 'Tilpasset' + 'custom': 'Handmatig' + }, + fontCustomSize: { + title: 'Handmatige lettergrootte', + label: 'Lettergrootte', + value: '48px' } }, pt_br: { @@ -1730,272 +1190,6 @@ return dropdown; } })(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" - } - }, - et: { - fontsize: "Teksti suurus", - fontsizes: { - "x-small": "Väga väike", - small: "Väike", - medium: "Tavaline", - large: "Suur", - "x-large": "Väga suur", - custom: "Määra ise" - }, - fontCustomSize: { - title: "Kohandatud teksti suurus", - label: "Teksti suurus", - 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: "Özel" - }, - fontCustomSize: { - title: "Özel Yazı Boyutu", - label: "Yazı Boyutu", - value: "48px" - } - }, - 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 l(t, l) { - t.$ed.focus(), t.saveRange(), t.execCmd("fontSize", "1"), t.$ed.find('font[size="1"]').replaceWith(function () { - return e("", { - css: { - "font-size": l - }, - html: this.innerHTML - }); - }), e(t.range.startContainer.parentElement).find('span[style=""]').contents().unwrap(), t.restoreRange(), t.syncCode(), t.$c.trigger("tbwchange"); - } - - function a(t) { - var a = []; - - if (e.each(t.o.plugins.fontsize.sizeList, function (e, s) { - t.addBtnDef("fontsize_" + s, { - text: '' + (t.lang.fontsizes[s] || s) + "", - hasIcon: !1, - fn: function fn() { - l(t, s); - } - }), a.push("fontsize_" + s); - }), t.o.plugins.fontsize.allowCustomSize) { - var s = "fontsize_custom", - o = { - fn: function fn() { - t.openModalInsert(t.lang.fontCustomSize.title, { - size: { - label: t.lang.fontCustomSize.label, - value: t.lang.fontCustomSize.value - } - }, function (e) { - return l(t, e.size), !0; - }); - }, - text: '' + t.lang.fontsizes.custom + "", - hasIcon: !1 - }; - t.addBtnDef(s, o), a.push(s); - } - - return a; - } - - e.extend(!0, e.trumbowyg, { - plugins: { - fontsize: { - init: function init(l) { - l.o.plugins.fontsize = e.extend({}, t, l.o.plugins.fontsize || {}), l.addBtnDef("fontsize", { - dropdown: a(l) - }); - } - } - } - }); -}(jQuery); (function ($) { 'use strict'; @@ -2005,6 +1199,9 @@ en: { giphy: 'Insert GIF' }, + sl: { + giphy: 'Vstavi GIF' + }, by: { giphy: 'Уставіць GIF' }, @@ -2055,11 +1252,19 @@ function renderGifs(response, $giphyModal, trumbowyg, mustEmpty) { var width = ($giphyModal.width() - 20) / 3; var html = response.data.filter(function (gifData) { - return gifData.images.downsized.url !== ''; + // jshint camelcase:false + var downsized = gifData.images.downsized || gifData.images.downsized_medium; // jshint camelcase:true + + return !!downsized.url; }).map(function (gifData) { - var image = gifData.images.downsized, - imageRatio = image.height / image.width; - return '
'; + // jshint camelcase:false + var downsized = gifData.images.downsized || gifData.images.downsized_medium; // jshint camelcase:true + + var image = downsized, + imageRatio = image.height / image.width, + altText = gifData.title; + var imgHtml = '' + altText + ''; + return '
' + imgHtml + '
'; }).join(''); if (mustEmpty === true) { @@ -2071,13 +1276,42 @@ html = ''; } - $giphyModal.empty(); - } + $giphyModal.empty(); + } + + $giphyModal.append(html); // Remove gray overlay on image load + // moved here from inline callback definition due to CSP issue + // Note: this is being done post-factum because load event doesn't bubble up and so can't be delegated + + var addLoadedClass = function addLoadedClass(img) { + img.classList.add('tbw-loaded'); + }; + + $('img', $giphyModal).each(function () { + var img = this; - $giphyModal.append(html); + if (img.complete) { + // images load instantly when cached and esp. when loaded in previous modal open + addLoadedClass(img); + } else { + img.addEventListener('load', function () { + addLoadedClass(this); + }); + } + }); $('img', $giphyModal).on('click', function () { + var src = $(this).attr('src'), + alt = $(this).attr('alt'); trumbowyg.restoreRange(); - trumbowyg.execCmd('insertImage', $(this).attr('src'), false, true); + trumbowyg.execCmd('insertImage', src, false, true); // relay alt tag into inserted image + + if (alt) { + var $img = $('img[src="' + src + '"]:not([alt])', trumbowyg.$box); + $img.attr('alt', alt); // Note: This seems to fire relatively early and could be wrapped in a setTimeout if needed + + trumbowyg.syncCode(); + } + $('img', $giphyModal).off(); trumbowyg.closeModal(); }); @@ -2174,136 +1408,6 @@ } }); })(jQuery); -!function (i) { - "use strict"; - - i.extend(!0, i.trumbowyg, { - langs: { - en: { - giphy: "Insert GIF" - }, - et: { - giphy: "Sisesta GIF" - }, - fr: { - giphy: "Insérer un GIF" - }, - hu: { - giphy: "GIF beszúrás" - }, - tr: { - giphy: "GIF ekle" - } - } - }); - var e = "tbwcancel"; - - function n(e, n, t, l) { - var o = (n.width() - 20) / 3, - a = e.data.filter(function (i) { - return "" !== i.images.downsized.url; - }).map(function (i) { - var e = i.images.downsized, - n = e.height / e.width; - return '
'; - }).join(""); - - if (!0 === l) { - if (0 === a.length) { - if (i("." + t.o.prefix + "giphy-no-result", n).length > 0) return; - a = ''; - } - - n.empty(); - } - - n.append(a), i("img", n).on("click", function () { - t.restoreRange(), t.execCmd("insertImage", i(this).attr("src"), !1, !0), i("img", n).off(), t.closeModal(); - }); - } - - var t = { - rating: "g", - apiKey: null, - throttleDelay: 300, - noResultGifUrl: "https://media.giphy.com/media/2Faz9FbRzmwxY0pZS/giphy.gif" - }; - i.extend(!0, i.trumbowyg, { - plugins: { - giphy: { - init: function init(l) { - l.o.plugins.giphy = i.extend({}, t, l.o.plugins.giphy || {}), l.addBtnDef("giphy", { - fn: function fn() { - if (null === l.o.plugins.giphy.apiKey) throw new Error("You must set a Giphy API Key"); - var t = "https://api.giphy.com/v1/gifs/search?api_key=" + l.o.plugins.giphy.apiKey + "&rating=" + l.o.plugins.giphy.rating, - o = t.replace("/search", "/trending"), - a = { - abort: function abort() {} - }, - c = l.o.prefix, - r = '' + ('') + ('
Powered by
') + '
'; - l.openModal(null, r, !1).one(e, function () { - try { - a.abort(); - } catch (i) {} - - l.closeModal(); - }); - - var s = i("." + c + "giphy-search"), - p = i("." + c + "giphy-close"), - g = i("." + c + "giphy-modal"), - u = function u() { - navigator.onLine || i("." + c + "giphy-offline", g).length || (g.empty(), g.append('

You are offline

')); - }; - - i.ajax({ - url: o, - dataType: "json", - success: function success(i) { - n(i, g, l, !0); - }, - error: u - }); - var h, - d, - y, - f, - v = (h = function h() { - var e = s.val(); - - if (0 !== e.length) { - try { - a.abort(); - } catch (i) {} - - a = i.ajax({ - url: t + "&q=" + encodeURIComponent(e), - dataType: "json", - success: function success(i) { - n(i, g, l, !0); - }, - error: u - }); - } - }, d = l.o.plugins.giphy.throttleDelay, function () { - var i = this, - e = +new Date(), - n = arguments; - y && e < y + d ? (clearTimeout(f), f = setTimeout(function () { - y = e, h.apply(i, n); - }, d)) : (y = e, h.apply(i, n)); - }); - s.on("input", v), s.focus(), p.one("click", function () { - g.trigger(e); - }); - } - }); - } - } - } - }); -}(jQuery); /*/* =========================================================== * trumbowyg.history.js v1.0 * history plugin for Trumbowyg @@ -2323,6 +1427,12 @@ undo: 'Undo' } }, + sl: { + history: { + redo: 'Ponovno uveljavi', + undo: 'Razveljavi' + } + }, by: { history: { redo: 'Паўтарыць', @@ -2393,6 +1503,9 @@ }, plugins: { history: { + destroy: function destroy(t) { + t.$c.off('tbwinit.history tbwchange.history'); + }, init: function init(t) { t.o.plugins.history = $.extend(true, { _stack: [], @@ -2532,7 +1645,7 @@ } }; - t.$c.on('tbwinit tbwchange', pushToHistory); + t.$c.on('tbwinit.history tbwchange.history', pushToHistory); t.addBtnDef('historyRedo', btnBuildDefRedo); t.addBtnDef('historyUndo', btnBuildDefUndo); } @@ -2540,150 +1653,6 @@ } }); })(jQuery); -!function (o) { - "use strict"; - - o.extend(!0, o.trumbowyg, { - langs: { - en: { - history: { - redo: "Redo", - undo: "Undo" - } - }, - da: { - history: { - redo: "Annuller fortryd", - undo: "Fortryd" - } - }, - de: { - history: { - redo: "Wiederholen", - undo: "Rückgängig" - } - }, - et: { - history: { - redo: "Võta tagasi", - undo: "Tee uuesti" - } - }, - fr: { - history: { - redo: "Annuler", - undo: "Rétablir" - } - }, - hu: { - history: { - redo: "Visszállít", - undo: "Visszavon" - } - }, - ko: { - history: { - redo: "다시 실행", - undo: "되돌리기" - } - }, - pt_br: { - history: { - redo: "Refazer", - undo: "Desfazer" - } - }, - zh_tw: { - history: { - redo: "重做", - undo: "復原" - } - } - }, - plugins: { - history: { - init: function init(i) { - i.o.plugins.history = o.extend(!0, { - _stack: [], - _index: -1, - _focusEl: void 0 - }, i.o.plugins.history || {}); - - var t = { - title: i.lang.history.redo, - ico: "redo", - key: "Y", - fn: function fn() { - if (i.o.plugins.history._index < i.o.plugins.history._stack.length - 1) { - i.o.plugins.history._index += 1; - var o = i.o.plugins.history._index, - t = i.o.plugins.history._stack[o]; - i.execCmd("html", t), i.o.plugins.history._stack[o] = i.$ed.html(), d(), e(); - } - } - }, - n = { - title: i.lang.history.undo, - ico: "undo", - key: "Z", - fn: function fn() { - if (i.o.plugins.history._index > 0) { - i.o.plugins.history._index -= 1; - var o = i.o.plugins.history._index, - t = i.o.plugins.history._stack[o]; - i.execCmd("html", t), i.o.plugins.history._stack[o] = i.$ed.html(), d(), e(); - } - } - }, - e = function e() { - var o = i.o.plugins.history._index, - t = i.o.plugins.history._stack.length, - n = 0 !== t && o !== t - 1; - s("historyUndo", o > 0), s("historyRedo", n); - }, - s = function s(o, t) { - var n = i.$box.find(".trumbowyg-" + o + "-button"); - t ? n.removeClass("trumbowyg-disable") : n.hasClass("trumbowyg-disable") || n.addClass("trumbowyg-disable"); - }, - r = function r(o, i) { - if (o === i) return !0; - if (null == o || null == i) return !1; - if (o.length !== i.length) return !1; - - for (var t = 0; t < o.length; t += 1) { - if (o[t] !== i[t]) return !1; - } - - return !0; - }, - d = function d() { - var o = i.doc.getSelection().focusNode, - t = i.doc.createRange(); - o.childNodes.length > 0 && (t.setStartAfter(o.childNodes[o.childNodes.length - 1]), t.setEndAfter(o.childNodes[o.childNodes.length - 1]), i.doc.getSelection().removeAllRanges(), i.doc.getSelection().addRange(t)); - }; - - i.$c.on("tbwinit tbwchange", function () { - var t, - n, - s = i.o.plugins.history._index, - d = i.o.plugins.history._stack, - l = d.slice(-1)[0] || "

", - u = d[s], - h = i.$ed.html(), - c = i.doc.getSelection().focusNode, - a = "", - g = i.o.plugins.history._focusEl; - t = o("
" + l + "
").find("*").map(function () { - return this.localName; - }), n = o("
" + h + "
").find("*").map(function () { - return this.localName; - }), c && (i.o.plugins.history._focusEl = c, a = c.outerHTML || c.textContent), h !== u && (a.slice(-1).match(/\s/) || !r(t, n) || i.o.plugins.history._index <= 0 || c !== g ? (i.o.plugins.history._index += 1, i.o.plugins.history._stack = d.slice(0, i.o.plugins.history._index), i.o.plugins.history._stack.push(h)) : i.o.plugins.history._stack[s] = h, e()); - }), i.addBtnDef("historyRedo", t), i.addBtnDef("historyUndo", n); - } - } - } - }); -}(jQuery); /* =========================================================== * trumbowyg.indent.js v1.0 * Indent or Outdent plugin for Trumbowyg @@ -2702,6 +1671,10 @@ indent: 'Indent', outdent: 'Outdent' }, + sl: { + indent: 'Povečaj zamik', + outdent: 'Zmanjšaj zamik' + }, by: { indent: 'Водступ', outdent: 'Выступ' @@ -2757,50 +1730,6 @@ } }); })(jQuery); -!function (n) { - "use strict"; - - n.extend(!0, n.trumbowyg, { - langs: { - en: { - indent: "Indent", - outdent: "Outdent" - }, - et: { - indent: "Taande suurendamine", - outdent: "Taande vähendamine" - }, - fr: { - indent: "Augmenter le retrait", - outdent: "Diminuer le retrait" - } - } - }), n.extend(!0, n.trumbowyg, { - plugins: { - paragraph: { - init: function init(n) { - var t = { - fn: "indent", - title: n.lang.indent, - isSupported: function isSupported() { - return !!document.queryCommandSupported && !!document.queryCommandSupported("indent"); - }, - ico: "indent" - }, - e = { - fn: "outdent", - title: n.lang.outdent, - isSupported: function isSupported() { - return !!document.queryCommandSupported && !!document.queryCommandSupported("outdent"); - }, - ico: "outdent" - }; - n.addBtnDef("indent", t), n.addBtnDef("outdent", e); - } - } - } - }); -}(jQuery); /*/* =========================================================== * trumbowyg.insertaudio.js v1.0 * InsertAudio plugin for Trumbowyg @@ -2837,6 +1766,9 @@ en: { insertAudio: 'Insert Audio' }, + sl: { + insertAudio: 'Vstavi zvočno datoteko' + }, by: { insertAudio: 'Уставіць аўдыё' }, @@ -2911,81 +1843,6 @@ } }); })(jQuery); -!function (e) { - "use strict"; - - var r = { - 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" - }, - et: { - insertAudio: "Lisa helifail" - }, - 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 init(i) { - var t = { - fn: function fn() { - i.openModalInsert(i.lang.insertAudio, r, function (r) { - var t = "
", - m = e(i)[0]; - m.onclick = function () { - l.currentMathNode = this, n.formulas.value = e(this).attr("formulas"), "true" === e(this).attr("inline") ? n.inline.attributes.checked = !0 : delete n.inline.attributes.checked, l.openModalInsert(l.lang.mathml, n, a); - }, l.range.deleteContents(), l.range.insertNode(m); - } - return l.currentMathNode = !1, MathJax.Hub.Queue(["Typeset", MathJax.Hub]), !0; - }; - - n.formulas.value = l.getRangeText(), n.inline.attributes.checked = !0, l.openModalInsert(l.lang.mathml, n, a); - } - }; - l.addBtnDef("mathml", n); - } - } - } - }); -}(jQuery); /* =========================================================== * trumbowyg.mention.js v0.1 * Mention plugin for Trumbowyg @@ -3577,6 +2210,9 @@ en: { mention: 'Mention' }, + sl: { + mention: 'Omeni' + }, by: { mention: 'Згадаць' }, @@ -3672,80 +2308,6 @@ return '@' + item.login + ' '; } })(jQuery); -!function (n) { - "use strict"; - - var t = { - source: [], - formatDropdownItem: function formatDropdownItem(n) { - return n.login; - }, - formatResult: function formatResult(n) { - return "@" + n.login + " "; - } - }; - - function o(t, o) { - var e = []; - return n.each(t, function (n, t) { - var i = "mention-" + n, - r = { - hasIcon: !1, - text: o.o.plugins.mention.formatDropdownItem(t), - fn: function fn() { - return o.execCmd("insertHTML", o.o.plugins.mention.formatResult(t)), !0; - } - }; - o.addBtnDef(i, r), e.push(i); - }), e; - } - - n.extend(!0, n.trumbowyg, { - langs: { - en: { - mention: "Mention" - }, - da: { - mention: "Nævn" - }, - et: { - mention: "Maini" - }, - 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 init(e) { - e.o.plugins.mention = n.extend(!0, {}, t, e.o.plugins.mention || {}); - var i = { - dropdown: o(e.o.plugins.mention.source, e) - }; - e.addBtnDef("mention", i); - } - } - } - }); -}(jQuery); /* =========================================================== * trumbowyg.noembed.js v1.0 * noEmbed plugin for Trumbowyg @@ -3770,6 +2332,10 @@ noembed: 'Noembed', noembedError: 'Error' }, + sl: { + noembed: 'Noembed', + noembedError: 'Napaka' + }, by: { noembedError: 'Памылка' }, @@ -3837,15 +2403,21 @@ data: data, cache: false, dataType: 'json', - success: trumbowyg.o.plugins.noembed.success || function (data) { - if (data.html) { - trumbowyg.execCmd('insertHTML', data.html); - setTimeout(function () { - trumbowyg.closeModal(); - }, 250); - } else { + success: function success(data) { + if (trumbowyg.o.plugins.noembed.success) { + trumbowyg.o.plugins.noembed.success(data, trumbowyg, $modal); + return; + } + + if (!data.html) { trumbowyg.addErrorOnModalField($('input[type=text]', $modal), data.error); + return; } + + trumbowyg.execCmd('insertHTML', data.html); + setTimeout(function () { + trumbowyg.closeModal(); + }, 250); }, error: trumbowyg.o.plugins.noembed.error || function () { trumbowyg.addErrorOnModalField($('input[type=text]', $modal), trumbowyg.lang.noembedError); @@ -3860,100 +2432,6 @@ } }); })(jQuery); -!function (e) { - "use strict"; - - var r = { - 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" - }, - et: { - noembed: "Noembed", - noembedError: "Viga" - }, - 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 init(o) { - o.o.plugins.noembed = e.extend(!0, {}, r, o.o.plugins.noembed || {}); - var n = { - fn: function fn() { - var r = 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]", r), n.error); - }, - error: o.o.plugins.noembed.error || function () { - o.addErrorOnModalField(e("input[type=text]", r), o.lang.noembedError); - } - }); - }); - } - }; - o.addBtnDef("noembed", n); - } - } - } - }); -}(jQuery); /* =========================================================== * trumbowyg.pasteembed.js v1.0 * Url paste to iframe with noembed. Plugin for Trumbowyg @@ -4046,58 +2524,6 @@ } }); })(jQuery); -!function (t) { - "use strict"; - - var e = { - enabled: !0, - endpoints: ["https://noembed.com/embed?nowrap=on", "https://api.maxmade.nl/url2iframe/embed"] - }; - t.extend(!0, t.trumbowyg, { - plugins: { - pasteEmbed: { - init: function init(n) { - n.o.plugins.pasteEmbed = t.extend(!0, {}, e, n.o.plugins.pasteEmbed || {}), n.o.plugins.pasteEmbed.enabled && n.pasteHandlers.push(function (e) { - try { - var a = (e.originalEvent || e).clipboardData.getData("Text"), - r = n.o.plugins.pasteEmbed.endpoints, - s = null; - - if (a.startsWith("http")) { - e.stopPropagation(), e.preventDefault(); - var i = { - url: a.trim() - }, - o = "", - p = 0; - s && s.transport && s.transport.abort(), s = t.ajax({ - crossOrigin: !0, - url: r[p], - type: "GET", - data: i, - cache: !1, - dataType: "jsonp", - success: function success(t) { - t.html ? (p = 0, o = t.html) : p += 1; - }, - error: function error() { - p += 1; - }, - complete: function complete() { - 0 === o.length && p < r.length - 1 && (this.url = r[p], this.data = i, t.ajax(this)), p === r.length - 1 && (o = t("", { - href: a, - text: a - }).prop("outerHTML")), o.length > 0 && (p = 0, n.execCmd("insertHTML", o)); - } - }); - } - } catch (t) {} - }); - } - } - } - }); -}(jQuery); /* =========================================================== * trumbowyg.pasteimage.js v1.0 * Basic base64 paste plugin for Trumbowyg @@ -4147,29 +2573,6 @@ } }); })(jQuery); -!function (e) { - "use strict"; - - e.extend(!0, e.trumbowyg, { - plugins: { - pasteImage: { - init: function init(e) { - e.pasteHandlers.push(function (t) { - try { - for (var a, n = (t.originalEvent || t).clipboardData.items, i = !1, r = n.length - 1; r >= 0; r -= 1) { - n[r].type.match(/^image\//) && ((a = new FileReader()).onloadend = function (t) { - e.execCmd("insertImage", t.target.result, !1, !0); - }, a.readAsDataURL(n[r].getAsFile()), i = !0); - } - - i && (t.stopPropagation(), t.preventDefault()); - } catch (e) {} - }); - } - } - } - }); -}(jQuery); /* =========================================================== * trumbowyg.preformatted.js v1.0 * Preformatted plugin for Trumbowyg @@ -4186,6 +2589,9 @@ en: { preformatted: 'Code sample
'
       },
+      sl: {
+        preformatted: 'Vstavi neformatiran tekst 
'
+      },
       by: {
         preformatted: 'Прыклад кода 
'
       },
@@ -4323,89 +2729,6 @@
     }
   }
 })(jQuery);
-!function (e) {
-  "use strict";
-
-  e.extend(!0, e.trumbowyg, {
-    langs: {
-      en: {
-        preformatted: "Code sample 
"
-      },
-      da: {
-        preformatted: "Præformateret 
"
-      },
-      et: {
-        preformatted: "Eelvormindatud tekst 
"
-      },
-      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 init(t) {
-          var r = {
-            fn: function fn() {
-              t.saveRange();
-              var r,
-                  n,
-                  o = t.getRangeText();
-              if ("" !== o.replace(/\s/g, "")) try {
-                var a = 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" === a || "pre" === a) return function () {
-                  var t = null;
-                  if (document.selection) t = document.selection.createRange().parentElement();else {
-                    var r = window.getSelection();
-                    r.rangeCount > 0 && (t = r.getRangeAt(0).startContainer.parentNode);
-                  }
-                  var n = e(t).contents().closest("pre").length,
-                      o = e(t).contents().closest("code").length;
-                  n && o ? e(t).contents().unwrap("code").unwrap("pre") : n ? e(t).contents().unwrap("pre") : o && e(t).contents().unwrap("code");
-                }();
-                t.execCmd("insertHTML", "
" + (r = o, (n = document.createElement("DIV")).innerHTML = r, (n.textContent || n.innerText || "") + "
")); - } catch (e) {} - }, - tag: "pre" - }; - t.addBtnDef("preformatted", r); - } - } - } - }); -}(jQuery); ; (function ($) { @@ -4696,135 +3019,100 @@ } } }); -})(jQuery); -!function (e) { - "use strict"; - - var i = { - minSize: 32, - step: 4 - }; - - function t(e) { - e.stopPropagation(), e.preventDefault(); - } - - var s = function s(i) { - 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).remove(), t.resizeImg = null, null !== i && (i.syncCode(), i.$c.trigger("tbwchange")); - }; +})(jQuery); +/* =========================================================== + * trumbowyg.specialchars.js v0.99 + * Unicode characters picker plugin for Trumbowyg + * http://alex-d.github.com/Trumbowyg + * =========================================================== + * Author : Renaud Hoyoux (geektortoise) +*/ +(function ($) { + 'use strict'; + + var defaultOptions = { + symbolList: [// currencies + '0024', '20AC', '00A3', '00A2', '00A5', '00A4', '2030', null, // legal signs + '00A9', '00AE', '2122', null, // textual sign + '00A7', '00B6', '00C6', '00E6', '0152', '0153', null, '2022', '25CF', '2023', '25B6', '2B29', '25C6', null, //maths + '00B1', '00D7', '00F7', '21D2', '21D4', '220F', '2211', '2243', '2264', '2265'] + }; + $.extend(true, $.trumbowyg, { + langs: { + en: { + specialChars: 'Special characters' + }, + sl: { + specialChars: 'Posebni znaki' + }, + by: { + specialChars: 'Спецыяльныя сімвалы' + }, + et: { + specialChars: 'Erimärgid' + }, + fr: { + specialChars: 'Caractères spéciaux' + }, + hu: { + specialChars: 'Speciális karakterek' + }, + ko: { + specialChars: '특수문자' + }, + ru: { + specialChars: 'Специальные символы' + }, + tr: { + specialChars: 'Özel karakterler' + } + }, + plugins: { + specialchars: { + init: function init(trumbowyg) { + trumbowyg.o.plugins.specialchars = trumbowyg.o.plugins.specialchars || defaultOptions; + var specialCharsBtnDef = { + dropdown: buildDropdown(trumbowyg) + }; + trumbowyg.addBtnDef('specialChars', specialCharsBtnDef); + } + } + } + }); - var s, - n, - r = !1, - a = !1, - o = function o(e) { - var i = e.getBoundingClientRect(); - s = i.left, n = i.top; - }, - h = function h(e, i, t, s, n) { - return i.translate(.5, .5), i.lineWidth = 1, i.drawImage(t, 5, 5, s - 10, n - 10), i.beginPath(), i.rect(5, 5, s - 10, n - 10), i.stroke(), i.beginPath(), i.fillStyle = "rgb(255, 255, 255)", i.rect(s - 10, n - 10, 9, 9), i.fill(), i.stroke(), o(e), i; - }; - - this.init = function () { - var i = this; - e(window).on("scroll resize", function () { - i.reCalcOffset(); - }); - }, this.reCalcOffset = function () { - o(this.resizeCanvas); - }, this.canvasId = function () { - return this.resizeCanvas.id; - }, this.isActive = function () { - return null !== this.resizeImg; - }, this.isFocusedNow = function () { - return r; - }, this.blurNow = function () { - r = !1; - }, this.reset = function () { - null !== this.resizeImg && (this.resizeImg.setAttribute("style", "width: 100%; max-width: " + (this.resizeCanvas.clientWidth - 10) + "px; height: auto; max-height: " + (this.resizeCanvas.clientHeight - 10) + "px;"), e(this.resizeCanvas).replaceWith(e(this.resizeImg)), this.resizeCanvas.removeAttribute("style"), this.resizeImg = null); - }, this.setup = function (o, c) { - if (this.resizeImg = o, !this.resizeCanvas.getContext) return !1; - r = !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)), h(this.resizeCanvas, this.ctx, this.resizeImg, this.resizeCanvas.width, this.resizeCanvas.height), e(this.resizeCanvas).resizableSafe(c).on("mousedown", t); - var u = this; - return e(this.resizeCanvas).on("mousemove", function (e) { - var i = Math.round(e.clientX - s), - t = Math.round(e.clientY - n), - r = a; - u.ctx.rect(u.resizeCanvas.width - 10, u.resizeCanvas.height - 10, 9, 9), r !== (a = u.ctx.isPointInPath(i, t)) && (this.style.cursor = a ? "se-resize" : "default"); - }).on("keydown", function (e) { - if (u.isActive()) { - var i = e.keyCode; - 27 === i ? u.pressEscape(u) : 8 !== i && 46 !== i || u.pressBackspaceOrDelete(u); - } - }).on("focus", t).on("blur", function () { - u.reset(), null !== i && (i.syncCode(), i.$c.trigger("tbwchange")); - }), this.resizeCanvas.focus(), !0; - }, this.refresh = function () { - this.resizeCanvas.getContext && (this.resizeCanvas.width = this.resizeCanvas.clientWidth, this.resizeCanvas.height = this.resizeCanvas.clientHeight, h(this.resizeCanvas, this.ctx, this.resizeImg, this.resizeCanvas.width, this.resizeCanvas.height)); - }; - }; - - e.extend(!0, e.trumbowyg, { - plugins: { - resizimg: { - destroyResizable: function destroyResizable() {}, - init: function init(n) { - var r = this.destroyResizable, - a = new s(n); - - function o() { - n.$ed.find("img").off("click").on("click", function (e) { - a.isActive() && a.reset(), a.setup(this, n.o.plugins.resizimg.resizable), t(e); - }); - } + function buildDropdown(trumbowyg) { + var dropdown = []; + $.each(trumbowyg.o.plugins.specialchars.symbolList, function (i, symbol) { + if (symbol === null) { + symbol = ' '; + } else { + symbol = '&#x' + symbol; + } - this.destroyResizable = function () { - n.$ed.find("canvas.resizable").resizableSafe("destroy").off("mousedown", t).removeClass("resizable"), a.reset(), n.syncCode(); - }, n.o.plugins.resizimg = e.extend(!0, {}, i, n.o.plugins.resizimg || {}, { - resizable: { - resizeWidth: !1, - onDragStart: function onDragStart(e, i) { - var t = n.o.plugins.resizimg, - s = e.pageX - i.offset().left, - r = e.pageY - i.offset().top; - if (s < i.width() - t.minSize || r < i.height() - t.minSize) return !1; - }, - onDrag: function onDrag(e, i, t, s) { - var r = n.o.plugins.resizimg; - return s < r.minSize && (s = r.minSize), s -= s % r.step, i.height(s), !1; - }, - onDragEnd: function onDragEnd() { - a.refresh(), n.syncCode(); - } - } - }), n.$c.on("tbwinit", function () { - o(), n.$ed.on("click", function (i) { - e(i.target).is("img") || i.target.id === a.canvasId() || (t(i), a.reset(), n.syncCode(), n.$c.trigger("tbwchange")); - }), n.$ed.on("scroll", function () { - a.reCalcOffset(); - }); - }), n.$c.on("tbwfocus tbwchange", o), n.$c.on("tbwresize", function () { - a.reCalcOffset(); - }), n.$c.on("tbwblur", function () { - a.isFocusedNow() ? a.blurNow() : r(); - }); - }, - destroy: function destroy() { - this.destroyResizable(); + var btn = symbol.replace(/:/g, ''), + defaultSymbolBtnName = 'symbol-' + btn, + defaultSymbolBtnDef = { + text: symbol, + hasIcon: false, + fn: function fn() { + var encodedSymbol = String.fromCodePoint(parseInt(symbol.replace('&#', '0'))); + trumbowyg.execCmd('insertText', encodedSymbol); + return true; } - } - } - }); -}(jQuery); + }; + trumbowyg.addBtnDef(defaultSymbolBtnName, defaultSymbolBtnDef); + dropdown.push(defaultSymbolBtnName); + }); + return dropdown; + } +})(jQuery); /* =========================================================== * trumbowyg.table.custom.js v2.0 * Table plugin for Trumbowyg * http://alex-d.github.com/Trumbowyg * =========================================================== * Author : Sven Dunemann [dunemann@forelabs.eu] + * Mod : Uros Gaber [uros@powercom.si] - Added Slovenian (sl) translations */ (function ($) { 'use strict'; @@ -4848,6 +3136,17 @@ tableDestroy: 'Delete table', error: 'Error' }, + sl: { + table: 'Dodaj tabelo', + tableAddRow: 'Dodaj vrstico', + tableAddRowAbove: 'Vrini vrstico', + tableAddColumnLeft: 'Vrini stolpec', + tableAddColumn: 'Dodaj stolpec', + tableDeleteRow: 'Izbriši vrstico', + tableDeleteColumn: 'Izbriši stolpec', + tableDestroy: 'Izbriši tabelo', + error: 'Napaka' + }, cs: { table: 'Vytvořit příkaz Table', tableAddRow: 'Přidat řádek', @@ -5117,10 +3416,9 @@ if (table.length > 0) { var row = $('
'); // add columns according to current columns count - for (var i = 0; i < table.find('tr')[0].childElementCount; i += 1) { - $(''); // add columns according to current columns count - for (var i = 0; i < table.find('tr')[0].childElementCount; i += 1) { - $('
").appendTo(n);l.range.deleteContents(),l.range.insertNode(t[0]),l.$c.trigger("tbwchange")},n={title:l.lang.tableAddRow,text:l.lang.tableAddRow,ico:"row-below",fn:function(){l.saveRange();var t=l.doc.getSelection().focusNode,a=e(t).closest("tr"),o=e(t).closest("table");if(o.length>0){for(var d=e("
').appendTo(row); - } // add row to table - + $('td,th', focusedRow).each(function () { + $(this).clone().appendTo(row).text(''); + }); // add row to table focusedRow.after(row); } @@ -5141,10 +3439,9 @@ if (table.length > 0) { var row = $('
').appendTo(row); - } // add row to table - + $('td,th', focusedRow).each(function () { + $(this).clone().appendTo(row).text(''); + }); // add row to table focusedRow.before(row); } @@ -5245,491 +3542,94 @@ } }); })(jQuery); -!function (e) { - "use strict"; +(function ($) { + 'use strict'; // Adds the language variables - var t = { - rows: 8, - columns: 8, - styler: "table" - }; - e.extend(!0, e.trumbowyg, { + $.extend(true, $.trumbowyg, { langs: { + // jshint camelcase:false 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" + template: 'Template' }, - 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" + sl: { + template: 'Predloga' + }, + by: { + template: 'Шаблон' }, 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" + template: 'Skabelon' }, 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" + template: 'Vorlage' }, et: { - table: "Sisesta tabel", - tableAddRow: "Lisa rida", - tableAddRowAbove: "Lisa rida üles", - tableAddColumnLeft: "Lisa tulp vasakule", - tableAddColumn: "Lisa tulp paremale", - tableDeleteRow: "Kustuta rida", - tableDeleteColumn: "Kustuta tulp", - tableDestroy: "Kustuta tabel", - error: "Viga" + template: 'Mall' }, 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" + template: 'Patron' }, 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" + template: 'Sablon' }, 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: "Yukarıya satır ekle", - tableAddColumnLeft: "Sola sütun ekle", - tableAddColumn: "Sağa sütun ekle", - tableDeleteRow: "Satırı sil", - tableDeleteColumn: "Sütunu sil", - tableDestroy: "Tabloyu sil", - error: "Hata" - }, - zh_tw: { - table: "插入表格", - tableAddRow: "加入行", - tableAddRowAbove: "加入行", - tableAddColumnLeft: "加入列", - tableAddColumn: "加入列", - tableDeleteRow: "刪除行", - tableDeleteColumn: "刪除列", - tableDestroy: "刪除表格", - error: "錯誤" - }, - es: { - table: "Insertar tabla", - tableAddRow: "Agregar fila", - tableAddRowAbove: "Agregar fila arriba", - tableAddColumnLeft: "Agregar columna a la izquierda", - tableAddColumn: "Agregar columna a la derecha", - tableDeleteRow: "Borrar fila", - tableDeleteColumn: "Borrar columna", - tableDestroy: "Borrar tabla", - error: "Error" - } - }, - plugins: { - table: { - init: function init(l) { - l.o.plugins.table = e.extend(!0, {}, t, l.o.plugins.table || {}); - - var a = { - fn: function fn() { - l.saveRange(); - var t = "table", - a = l.o.prefix + "dropdown", - n = { - "class": a + "-" + "table " + a + " " + l.o.prefix + "fixed-top" - }; - n["data-" + a] = t; - var b = e("
", n); - if (0 === l.$box.find("." + a + "-" + t).length ? l.$box.append(b.hide()) : b = l.$box.find("." + a + "-" + t), b.html(""), l.$box.find("." + l.o.prefix + "table-button").hasClass(l.o.prefix + "active-button")) b.append(l.buildSubBtn("tableAddRowAbove")), b.append(l.buildSubBtn("tableAddRow")), b.append(l.buildSubBtn("tableAddColumnLeft")), b.append(l.buildSubBtn("tableAddColumn")), b.append(l.buildSubBtn("tableDeleteRow")), b.append(l.buildSubBtn("tableDeleteColumn")), b.append(l.buildSubBtn("tableDestroy"));else { - var r = e(""); - e("").appendTo(r); - - for (var i = 0; i < l.o.plugins.table.rows; i += 1) { - for (var s = e("").appendTo(r), u = 0; u < l.o.plugins.table.columns; u += 1) { - e("
").appendTo(s); - } - } - - r.find("td").on("mouseover", o), r.find("td").on("mousedown", d), b.append(r), b.append(e('
1x1
')); - } - l.dropdown(t); - } - }, - o = function o(t) { - var l = e(t.target).closest("table"), - a = this.cellIndex, - o = this.parentNode.rowIndex; - l.find("td").removeClass("active"); - - for (var d = 0; d <= o; d += 1) { - for (var n = 0; n <= a; n += 1) { - l.find("tr:nth-of-type(" + (d + 1) + ")").find("td:nth-of-type(" + (n + 1) + ")").addClass("active"); - } - } - - l.next(".trumbowyg-table-size").html(a + 1 + "x" + (o + 1)); - }, - d = function d() { - l.saveRange(); - var t = e(""); - e("").appendTo(t), l.o.plugins.table.styler && t.attr("class", l.o.plugins.table.styler); - - for (var a = this.cellIndex, o = this.parentNode.rowIndex, d = 0; d <= o; d += 1) { - for (var n = e("").appendTo(t), b = 0; b <= a; b += 1) { - e(""), n = 0; n < o.find("tr")[0].childElementCount; n += 1) { - e(""), n = 0; n < o.find("tr")[0].childElementCount; n += 1) { - e(""); - }), l.syncCode(); - } - }, - i = { - title: l.lang.tableAddColumnLeft, - text: l.lang.tableAddColumnLeft, - ico: "col-left", - fn: function fn() { - l.saveRange(); - var t = l.doc.getSelection().focusNode, - a = e(t).closest("td"), - o = e(t).closest("table"), - d = a.index(); - o.length > 0 && e(o).find("tr").each(function () { - e(e(this).children()[d]).before(""); - }), l.syncCode(); - } - }, - s = { - title: l.lang.tableDestroy, - text: l.lang.tableDestroy, - ico: "table-delete", - fn: function fn() { - l.saveRange(); - var t = l.doc.getSelection().focusNode; - e(t).closest("table").remove(), l.syncCode(); - } - }, - u = { - title: l.lang.tableDeleteRow, - text: l.lang.tableDeleteRow, - ico: "row-delete", - fn: function fn() { - l.saveRange(); - var t = l.doc.getSelection().focusNode; - e(t).closest("tr").remove(), l.syncCode(); - } - }, - f = { - title: l.lang.tableDeleteColumn, - text: l.lang.tableDeleteColumn, - ico: "col-delete", - fn: function fn() { - l.saveRange(); - var t = l.doc.getSelection().focusNode, - a = e(t).closest("table"), - o = e(t).closest("td").index(); - e(a).find("tr").each(function () { - e(this).find("td:eq(" + o + ")").remove(); - }), l.syncCode(); - } - }; - - l.addBtnDef("table", a), l.addBtnDef("tableAddRowAbove", b), l.addBtnDef("tableAddRow", n), l.addBtnDef("tableAddColumnLeft", i), l.addBtnDef("tableAddColumn", r), l.addBtnDef("tableDeleteRow", u), l.addBtnDef("tableDeleteColumn", f), l.addBtnDef("tableDestroy", s); - } - } - } - }); -}(jQuery); -/* =========================================================== - * trumbowyg.specialchars.js v0.99 - * Unicode characters picker plugin for Trumbowyg - * http://alex-d.github.com/Trumbowyg - * =========================================================== - * Author : Renaud Hoyoux (geektortoise) -*/ -(function ($) { - 'use strict'; - - var defaultOptions = { - symbolList: [// currencies - '0024', '20AC', '00A3', '00A2', '00A5', '00A4', '2030', null, // legal signs - '00A9', '00AE', '2122', null, // textual sign - '00A7', '00B6', '00C6', '00E6', '0152', '0153', null, '2022', '25CF', '2023', '25B6', '2B29', '25C6', null, //maths - '00B1', '00D7', '00F7', '21D2', '21D4', '220F', '2211', '2243', '2264', '2265'] - }; - $.extend(true, $.trumbowyg, { - langs: { - en: { - specialChars: 'Special characters' - }, - by: { - specialChars: 'Спецыяльныя сімвалы' - }, - et: { - specialChars: 'Erimärgid' - }, - fr: { - specialChars: 'Caractères spéciaux' - }, - hu: { - specialChars: 'Speciális karakterek' - }, - ko: { - specialChars: '특수문자' - }, - ru: { - specialChars: 'Специальные символы' - }, - tr: { - specialChars: 'Özel karakterler' - } - }, - plugins: { - specialchars: { - init: function init(trumbowyg) { - trumbowyg.o.plugins.specialchars = trumbowyg.o.plugins.specialchars || defaultOptions; - var specialCharsBtnDef = { - dropdown: buildDropdown(trumbowyg) - }; - trumbowyg.addBtnDef('specialChars', specialCharsBtnDef); - } - } - } - }); - - function buildDropdown(trumbowyg) { - var dropdown = []; - $.each(trumbowyg.o.plugins.specialchars.symbolList, function (i, symbol) { - if (symbol === null) { - symbol = ' '; - } else { - symbol = '&#x' + symbol; - } - - var btn = symbol.replace(/:/g, ''), - defaultSymbolBtnName = 'symbol-' + btn, - defaultSymbolBtnDef = { - text: symbol, - hasIcon: false, - fn: function fn() { - var encodedSymbol = String.fromCodePoint(parseInt(symbol.replace('&#', '0'))); - trumbowyg.execCmd('insertText', encodedSymbol); - return true; - } - }; - trumbowyg.addBtnDef(defaultSymbolBtnName, defaultSymbolBtnDef); - dropdown.push(defaultSymbolBtnName); - }); - return dropdown; - } -})(jQuery); -!function (a) { - "use strict"; - - var s = { - 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 e(s) { - var e = []; - return a.each(s.o.plugins.specialchars.symbolList, function (a, r) { - var n = "symbol-" + (r = null === r ? " " : "&#x" + r).replace(/:/g, ""), - i = { - text: r, - hasIcon: !1, - fn: function fn() { - var a = String.fromCodePoint(parseInt(r.replace("&#", "0"))); - return s.execCmd("insertText", a), !0; - } - }; - s.addBtnDef(n, i), e.push(n); - }), e; - } - - a.extend(!0, a.trumbowyg, { - langs: { - en: { - specialChars: "Special characters" + template: 'テンプレート' }, - et: { - specialChars: "Erimärgid" + ko: { + template: '서식' }, - fr: { - specialChars: "Caractères spéciaux" + nl: { + template: 'Sjabloon' }, - hu: { - specialChars: "Speciális karakterek" + pt_br: { + template: 'Modelo' }, - ko: { - specialChars: "특수문자" - } - }, + ru: { + template: 'Шаблон' + }, + tr: { + template: 'Şablon' + }, + zh_tw: { + template: '模板' + } // jshint camelcase:true + + } + }); // Adds the extra button definition + + $.extend(true, $.trumbowyg, { plugins: { - specialchars: { - init: function init(a) { - a.o.plugins.specialchars = a.o.plugins.specialchars || s; - var r = { - dropdown: e(a) - }; - a.addBtnDef("specialChars", r); + 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 + }); } } } - }); -}(jQuery); + }); // 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); function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } /* =========================================================== @@ -5794,6 +3694,11 @@ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" = file: 'File', uploadError: 'Error' }, + sl: { + upload: 'Naloži datoteko', + file: 'Datoteka', + uploadError: 'Napaka' + }, by: { upload: 'Загрузка', file: 'Файл', @@ -6016,371 +3921,4 @@ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" = $.trumbowyg.addedXhrProgressEvent = true; } } -})(jQuery); -function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } - -!function (r) { - "use strict"; - - var a = { - serverPath: "", - fileFieldName: "fileToUpload", - data: [], - headers: {}, - xhrFields: {}, - urlPropertyName: "file", - statusPropertyName: "success", - success: void 0, - error: void 0, - imageWidthModalEdit: !1 - }; - - function e(r, a) { - var o = a.shift(), - l = a; - - if (null !== r) { - if (0 === l.length) return r[o]; - if ("object" == _typeof(r)) return e(r[o], l); - } - - return r; - } - - !function () { - if (!r.trumbowyg.addedXhrProgressEvent) { - var a = r.ajaxSettings.xhr; - r.ajaxSetup({ - xhr: function xhr() { - var r = this, - e = a(); - return e && "object" == _typeof(e.upload) && void 0 !== r.progressUpload && e.upload.addEventListener("progress", function (a) { - r.progressUpload(a); - }, !1), e; - } - }), r.trumbowyg.addedXhrProgressEvent = !0; - } - }(), r.extend(!0, r.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" - }, - et: { - upload: "Lae üles", - file: "Fail", - uploadError: "Viga" - }, - 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 init(o) { - o.o.plugins.upload = r.extend(!0, {}, a, o.o.plugins.upload || {}); - var l = { - fn: function fn() { - o.saveRange(); - var a, - l = o.o.prefix, - t = { - file: { - type: "file", - required: !0, - attributes: { - accept: "image/*" - } - }, - alt: { - label: "description", - value: o.getRangeText() - } - }; - o.o.plugins.upload.imageWidthModalEdit && (t.width = { - value: "" - }); - var d = !1, - i = o.openModalInsert(o.lang.upload, t, function (t) { - if (!d) { - d = !0; - var u = new FormData(); - u.append(o.o.plugins.upload.fileFieldName, a), o.o.plugins.upload.data.map(function (r) { - u.append(r.name, r.value); - }), r.map(t, function (r, a) { - "file" !== a && u.append(a, r); - }), 0 === r("." + l + "progress", i).length && r("." + l + "modal-title", i).after(r("
", { - "class": l + "progress" - }).append(r("
", { - "class": l + "progress-bar" - }))), r.ajax({ - url: o.o.plugins.upload.serverPath, - headers: o.o.plugins.upload.headers, - xhrFields: o.o.plugins.upload.xhrFields, - type: "POST", - data: u, - cache: !1, - dataType: "json", - processData: !1, - contentType: !1, - progressUpload: function progressUpload(a) { - r("." + l + "progress-bar").css("width", Math.round(100 * a.loaded / a.total) + "%"); - }, - success: function success(a) { - if (o.o.plugins.upload.success) o.o.plugins.upload.success(a, o, i, t);else if (e(a, o.o.plugins.upload.statusPropertyName.split("."))) { - var l = e(a, o.o.plugins.upload.urlPropertyName.split(".")); - o.execCmd("insertImage", l, !1, !0); - var u = r('img[src="' + l + '"]:not([alt])', o.$box); - u.attr("alt", t.alt), o.o.plugins.upload.imageWidthModalEdit && parseInt(t.width) > 0 && u.attr({ - width: t.width - }), setTimeout(function () { - o.closeModal(); - }, 250), o.$c.trigger("tbwuploadsuccess", [o, a, l]); - } else o.addErrorOnModalField(r("input[type=file]", i), o.lang[a.message]), o.$c.trigger("tbwuploaderror", [o, a]); - d = !1; - }, - error: o.o.plugins.upload.error || function () { - o.addErrorOnModalField(r("input[type=file]", i), o.lang.uploadError), o.$c.trigger("tbwuploaderror", [o]), d = !1; - } - }); - } - }); - r("input[type=file]").on("change", function (r) { - try { - a = r.target.files[0]; - } catch (e) { - a = r.target.value; - } - }); - } - }; - o.addBtnDef("upload", l); - } - } - } - }); -}(jQuery); -(function ($) { - 'use strict'; // Adds the language variables - - $.extend(true, $.trumbowyg, { - langs: { - // jshint camelcase:false - en: { - template: 'Template' - }, - by: { - template: 'Шаблон' - }, - da: { - template: 'Skabelon' - }, - de: { - template: 'Vorlage' - }, - et: { - template: 'Mall' - }, - 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); -!function (t) { - "use strict"; - - function e(e) { - var a = e.o.plugins.templates, - l = []; - return t.each(a, function (t, a) { - e.addBtnDef("template_" + t, { - fn: function fn() { - e.html(a.html); - }, - hasIcon: !1, - title: a.name - }), l.push("template_" + t); - }), l; - } - - t.extend(!0, t.trumbowyg, { - langs: { - en: { - template: "Template" - }, - da: { - template: "Skabelon" - }, - de: { - template: "Vorlage" - }, - et: { - template: "Mall" - }, - 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: "模板" - } - } - }), t.extend(!0, t.trumbowyg, { - plugins: { - template: { - shouldInit: function shouldInit(t) { - return t.o.plugins.hasOwnProperty("templates"); - }, - init: function init(t) { - t.addBtnDef("template", { - dropdown: e(t), - hasIcon: !1, - text: t.lang.template - }); - } - } - } - }); -}(jQuery); \ No newline at end of file +})(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 ee6c0bd0752..836fc851bd4 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},_typeof(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},_typeof(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.plugins.allowTagsFromPaste){o.o.removeformatPasted=!1;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={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.plugins.allowTagsFromPaste){o.o.removeformatPasted=!1;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";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=((s=(s=(s=(s=(s=(s=(s=(s=(s=n.trim()).replace(/<[^> ]*/g,(function(e){return e.toLowerCase()})).replace(/<[^>]*>/g,(function(e){return e.replace(/ [^=]+=/g,(function(e){return e.toLowerCase()}))})).replace(/<[^>]*>/g,(function(e){return e.replace(/( [^=]+=)([^"][^ >]*)/g,'$1"$2"')}))).replace(/)/g,")/g,")/g,")/g,"\s*/g,"")).replace(/ /gi," ")).replace(/ <\//gi,"]*>/g,(function(e){return 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(),t.$c.trigger("tbwchange")}catch(e){}var s}),0)}))}}}})}(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=((s=(s=(s=(s=(s=(s=(s=(s=(s=n.trim()).replace(/<[^> ]*/g,(function(e){return e.toLowerCase()})).replace(/<[^>]*>/g,(function(e){return e.replace(/ [^=]+=/g,(function(e){return e.toLowerCase()}))})).replace(/<[^>]*>/g,(function(e){return e.replace(/( [^=]+=)([^"][^ >]*)/g,'$1"$2"')}))).replace(/)/g,")/g,")/g,")/g,"\s*/g,"")).replace(/ /gi," ")).replace(/ <\//gi,"]*>/g,(function(e){return 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(),t.$c.trigger("tbwchange")}catch(e){}var s}),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."},by:{base64:"Выява (фармат base64)",file:"Файл",errFileReaderNotSupported:"FileReader не падтрымліваецца вашым браўзэрам.",errInvalidImage:"Несапраўдны файл выявы."},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."},et:{base64:"Pilt base64 formaadis",file:"Fail",errFileReaderNotSupported:"Teie veebilehitseja ei toeta FileReader funktsiooni.",errInvalidImage:"Vigane pildifail."},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";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."},et:{base64:"Pilt base64 formaadis",file:"Fail",errFileReaderNotSupported:"Teie veebilehitseja ei toeta FileReader funktsiooni.",errInvalidImage:"Vigane pildifail."},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";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+'',s="emoji-"+r.replace(/:/g,""),x={hasIcon:!1,text:i,fn:function(){return t.execCmd("insertImage",l,!1,!0),!0}};t.addBtnDef(s,x),o.push(s)}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"},et:{emoji:"Lisa emotikon"},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";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+'',s="emoji-"+r.replace(/:/g,""),x={hasIcon:!1,text:i,fn:function(){return t.execCmd("insertImage",l,!1,!0),!0}};t.addBtnDef(s,x),o.push(s)}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"},et:{emoji:"Lisa emotikon"},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"},by:{fontFamily:"Шрыфт"},es:{fontFamily:"Fuente"},da:{fontFamily:"Skrifttype"},de:{fontFamily:"Schriftart"},et:{fontFamily:"Font"},fr:{fontFamily:"Police"},hu:{fontFamily:"Betűtípus"},ko:{fontFamily:"글꼴"},nl:{fontFamily:"Lettertype"},pt_br:{fontFamily:"Fonte"},ru:{fontFamily:"Шрифт"},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:{fontFamily:"Font"},es:{fontFamily:"Fuente"},da:{fontFamily:"Skrifttype"},de:{fontFamily:"Schriftart"},et:{fontFamily:"Font"},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";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||null==(e=e.match(/^rgba?\((\d+),\s*(\d+),\s*(\d+)(?:,\s*(\d?(.\d+)))?\)$/))?"transparent":t(e[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"},by:{foreColor:"Колер тэксту",backColor:"Колер фону тэксту",foreColorRemove:"Выдаліць колер тэксту",backColorRemove:"Выдаліць колер фону тэксту"},cs:{foreColor:"Barva textu",backColor:"Barva pozadí"},da:{foreColor:"Tekstfarve",backColor:"Baggrundsfarve"},de:{foreColor:"Textfarbe",backColor:"Hintergrundfarbe"},et:{foreColor:"Teksti värv",backColor:"Taustavärv",foreColorRemove:"Eemalda teksti värv",backColorRemove:"Eemalda taustavärv"},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:"Цвет выделения текста",foreColorRemove:"Очистить цвет текста",backColorRemove:"Очистить цвет выделения текста"},sk:{foreColor:"Farba textu",backColor:"Farba pozadia"},tr:{foreColor:"Yazı rengi",backColor:"Arka plan rengi",foreColorRemove:"Yazı rengini kaldır",backColorRemove:"Arka plan rengini kaldır"},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 s=t+"Free",x={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(s,x),n.push(s)}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";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?(.\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"},et:{foreColor:"Teksti värv",backColor:"Taustavärv",foreColorRemove:"Eemalda teksti värv",backColorRemove:"Eemalda taustavärv"},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:"Arka plan rengi",foreColorRemove:"Yazı rengini kaldır",backColorRemove:"Arka plan rengini kaldır"},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 s=t+"Free",x={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(s,x),n.push(s)}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,{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"}},by:{fontsize:"Памер шрыфта",fontsizes:{"x-small":"Вельмі маленькі",small:"Маленькі",medium:"Звычайны",large:"Вялікі","x-large":"Вельмі вялікі",custom:"Карыстальніцкі"},fontCustomSize:{title:"Карыстальніцкі Памер Шрыфта",label:"Памер Шрыфта",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"}},et:{fontsize:"Teksti suurus",fontsizes:{"x-small":"Väga väike",small:"Väike",medium:"Tavaline",large:"Suur","x-large":"Väga suur",custom:"Määra ise"},fontCustomSize:{title:"Kohandatud teksti suurus",label:"Teksti suurus",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"}},ru:{fontsize:"Размер шрифта",fontsizes:{"x-small":"Очень маленький",small:"Маленький",medium:"Обычный",large:"Большой","x-large":"Очень большой",custom:"Пользовательский"},fontCustomSize:{title:"Пользовательский Размер Шрифта",label:"Размер Шрифта",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:"Özel"},fontCustomSize:{title:"Özel Yazı Boyutu",label:"Yazı Boyutu",value:"48px"}},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");var n=t.$ed.find('font[size="1"]');n.find('span[style*="font-size"]').contents().unwrap(),n.replaceWith((function(){return e("",{css:{"font-size":o},html:this.innerHTML})})),e(t.range.startContainer.parentElement).find('span[style=""]').contents().unwrap(),t.restoreRange(),t.syncCode(),t.$c.trigger("tbwchange")}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="fontsize_custom",r={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(a,r),n.push(a)}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:{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"}},et:{fontsize:"Teksti suurus",fontsizes:{"x-small":"Väga väike",small:"Väike",medium:"Tavaline",large:"Suur","x-large":"Väga suur",custom:"Määra ise"},fontCustomSize:{title:"Kohandatud teksti suurus",label:"Teksti suurus",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:"Özel"},fontCustomSize:{title:"Özel Yazı Boyutu",label:"Yazı Boyutu",value:"48px"}},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(),t.syncCode(),t.$c.trigger("tbwchange")}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="fontsize_custom",r={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(a,r),n.push(a)}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"},by:{giphy:"Уставіць GIF"},et:{giphy:"Sisesta GIF"},fr:{giphy:"Insérer un GIF"},hu:{giphy:"GIF beszúrás"},ru:{giphy:"Вставить GIF"},tr:{giphy:"GIF ekle"}}});var t="tbwcancel";function o(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 n={rating:"g",apiKey:null,throttleDelay:300,noResultGifUrl:"https://media.giphy.com/media/2Faz9FbRzmwxY0pZS/giphy.gif"};e.extend(!0,e.trumbowyg,{plugins:{giphy:{init:function(a){a.o.plugins.giphy=e.extend({},n,a.o.plugins.giphy||{}),a.addBtnDef("giphy",{fn:function(){if(null===a.o.plugins.giphy.apiKey)throw new Error("You must set a Giphy API Key");var n="https://api.giphy.com/v1/gifs/search?api_key="+a.o.plugins.giphy.apiKey+"&rating="+a.o.plugins.giphy.rating,r=n.replace("/search","/trending"),l={abort:function(){}},i=a.o.prefix,s=''+('')+('
Powered by
')+'
';a.openModal(null,s,!1).one(t,(function(){try{l.abort()}catch(e){}a.closeModal()}));var x=e("."+i+"giphy-search"),F=e("."+i+"giphy-close"),d=e("."+i+"giphy-modal"),u=function(){navigator.onLine||e("."+i+"giphy-offline",d).length||(d.empty(),d.append('

You are offline

'))};e.ajax({url:r,dataType:"json",success:function(e){o(e,d,a,!0)},error:u});var c,f,m,p,g=(c=function(){var t=x.val();if(0!==t.length){try{l.abort()}catch(e){}l=e.ajax({url:n+"&q="+encodeURIComponent(t),dataType:"json",success:function(e){o(e,d,a,!0)},error:u})}},f=a.o.plugins.giphy.throttleDelay,function(){var e=this,t=+new Date,o=arguments;m&&t
'})).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 n={rating:"g",apiKey:null,throttleDelay:300,noResultGifUrl:"https://media.giphy.com/media/2Faz9FbRzmwxY0pZS/giphy.gif"};e.extend(!0,e.trumbowyg,{plugins:{giphy:{init:function(a){a.o.plugins.giphy=e.extend({},n,a.o.plugins.giphy||{}),a.addBtnDef("giphy",{fn:function(){if(null===a.o.plugins.giphy.apiKey)throw new Error("You must set a Giphy API Key");var n="https://api.giphy.com/v1/gifs/search?api_key="+a.o.plugins.giphy.apiKey+"&rating="+a.o.plugins.giphy.rating,r=n.replace("/search","/trending"),l={abort:function(){}},i=a.o.prefix,s='
Powered by
';a.openModal(null,s,!1).one(t,(function(){try{l.abort()}catch(e){}a.closeModal()}));var x=e("."+i+"giphy-search"),F=e("."+i+"giphy-close"),d=e("."+i+"giphy-modal"),u=function(){navigator.onLine||e("."+i+"giphy-offline",d).length||(d.empty(),d.append('

You are offline

'))};e.ajax({url:r,dataType:"json",success:function(e){o(e,d,a,!0)},error:u});var c,f,m,p,g=(c=function(){var t=x.val();if(0!==t.length){try{l.abort()}catch(e){}l=e.ajax({url:n+"&q="+encodeURIComponent(t),dataType:"json",success:function(e){o(e,d,a,!0)},error:u})}},f=a.o.plugins.giphy.throttleDelay,function(){var e=this,t=+new Date,o=arguments;m&&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,s=i.slice(-1)[0]||"

",x=i[r],F=t.$ed.html(),d=t.doc.getSelection().focusNode,u="",c=t.o.plugins.history._focusEl;o=e("
"+s+"
").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!==x&&(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";e.extend(!0,e.trumbowyg,{langs:{en:{history:{redo:"Redo",undo:"Undo"}},da:{history:{redo:"Annuller fortryd",undo:"Fortryd"}},de:{history:{redo:"Wiederholen",undo:"Rückgängig"}},et:{history:{redo:"Võta tagasi",undo:"Tee uuesti"}},fr:{history:{redo:"Annuler",undo:"Rétablir"}},hu:{history:{redo:"Visszállít",undo:"Visszavon"}},ko:{history:{redo:"다시 실행",undo:"되돌리기"}},pt_br:{history:{redo:"Refazer",undo:"Desfazer"}},zh_tw:{history:{redo:"重做",undo:"復原"}}},plugins:{history:{init:function(t){t.o.plugins.history=e.extend(!0,{_stack:[],_index:-1,_focusEl:void 0},t.o.plugins.history||{});var o={title:t.lang.history.redo,ico:"redo",key:"Y",fn:function(){if(t.o.plugins.history._index0){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")},l=function(){var e=t.doc.getSelection().focusNode,o=t.doc.createRange();e.childNodes.length>0&&(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,i=l.slice(-1)[0]||"

",s=l[r],x=t.$ed.html(),F=t.doc.getSelection().focusNode,d="",u=t.o.plugins.history._focusEl;o=e("
"+i+"
").find("*").map((function(){return this.localName})),n=e("
"+x+"
").find("*").map((function(){return this.localName})),F&&(t.o.plugins.history._focusEl=F,d=F.outerHTML||F.textContent),x!==s&&(d.slice(-1).match(/\s/)||!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;o")[0];return o.range.deleteContents(),o.range.insertNode(a),!0}))}};o.addBtnDef("insertAudio",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"},et:{insertAudio:"Lisa helifail"},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"}},by:{lineheight:"Міжрадковы інтэрвал",lineheights:{.9:"Маленькі",normal:"Звычайны",1.5:"Вялікі","2.0":"Вельмі вялікі"}},da:{lineheight:"Linjehøjde",lineheights:{.9:"Lille",normal:"Normal",1.5:"Stor","2.0":"Ekstra stor"}},et:{lineheight:"Reavahe",lineheights:{.9:"Väike",normal:"Tavaline",1.5:"Suur","2.0":"Väga suur"}},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"}},ru:{lineheight:"Межстрочный интервал",lineheights:{.9:"Маленький",normal:"Обычный",1.5:"Большой","2.0":"Очень большой"}},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";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"}},et:{lineheight:"Reavahe",lineheights:{.9:"Väike",normal:"Tavaline",1.5:"Suur","2.0":"Väga suur"}},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;return 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()),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";e.extend(!0,e.trumbowyg,{langs:{en:{mathml:"Insert Formulas",formulas:"Formulas",inline:"Inline"},by:{mathml:"Уставіць формулу",formulas:"Формула",inline:"Inline-элемент"},da:{mathml:"Indsæt formler",formulas:"Formler",inline:"Inline"},et:{mathml:"Sisesta valem",formulas:"Valemid",inline:"Teksti sees"},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"},ru:{mathml:"Вставить формулу",formulas:"Формула",inline:"Строчный элемент"},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={formulas:{label:t.lang.formulas,required:!0,value:""},inline:{label:t.lang.inline,attributes:{checked:!0},type:"checkbox",required:!1}},n=function(o){var n=o.inline?"$":"$$";if(t.currentMathNode)e(t.currentMathNode).html(n+" "+o.formulas+" "+n).attr("formulas",o.formulas).attr("inline",o.inline?"true":"false");else{var r=''+n+" "+o.formulas+" "+n+"",l=e(r)[0];l.onclick=a,t.range.deleteContents(),t.range.insertNode(l)}return t.currentMathNode=!1,MathJax.Hub.Queue(["Typeset",MathJax.Hub]),!0},a=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)},r={fn:function(){t.saveRange(),o.formulas.value=t.getRangeText(),o.inline.attributes.checked=!0,t.openModalInsert(t.lang.mathml,o,n)}};t.$ta.on("tbwinit",(function(){t.$ed.find("[formulas]").each((function(e,t){t.onclick=a}))})),t.addBtnDef("mathml",r)}}}})}(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"},et:{mathml:"Sisesta valem",formulas:"Valemid",inline:"Teksti sees"},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={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"},by:{mention:"Згадаць"},da:{mention:"Nævn"},et:{mention:"Maini"},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={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"},et:{mention:"Maini"},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"},by:{noembedError:"Памылка"},cs:{noembedError:"Chyba"},da:{noembedError:"Fejl"},et:{noembed:"Noembed",noembedError:"Viga"},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={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"},et:{noembed:"Noembed",noembedError:"Viga"},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 l={url:n.trim()},i="",s=0;r&&r.transport&&r.transport.abort(),r=e.ajax({crossOrigin:!0,url:a[s],type:"GET",data:l,cache:!1,dataType:"jsonp",success:function(e){e.html?(s=0,i=e.html):s+=1},error:function(){s+=1},complete:function(){0===i.length&&s",{href:n,text:n}).prop("outerHTML")),i.length>0&&(s=0,o.execCmd("insertHTML",i))}})}}catch(e){}}))}}}})}(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="",s=0;r&&r.transport&&r.transport.abort(),r=e.ajax({crossOrigin:!0,url:a[s],type:"GET",data:l,cache:!1,dataType:"jsonp",success:function(e){e.html?(s=0,i=e.html):s+=1},error:function(){s+=1},complete:function(){0===i.length&&s",{href:n,text:n}).prop("outerHTML")),i.length>0&&(s=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){"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
"},by:{preformatted:"Прыклад кода 
"},da:{preformatted:"Præformateret 
"},et:{preformatted:"Eelvormindatud tekst 
"},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";e.extend(!0,e.trumbowyg,{langs:{en:{preformatted:"Code sample
"},da:{preformatted:"Præformateret 
"},et:{preformatted:"Eelvormindatud tekst 
"},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;return 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()),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={minSize:32,step:4};function o(e){e.stopPropagation(),e.preventDefault()}var n=function(t){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(o){e(o.resizeCanvas).remove(),o.resizeImg=null,null!==t&&(t.syncCode(),t.$c.trigger("tbwchange"))};var n,a,r=!1,l=!1,i=function(e){var t=e.getBoundingClientRect();n=t.left,a=t.top},s=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 r},this.blurNow=function(){r=!1},this.reset=function(){null!==this.resizeImg&&(this.resizeImg.setAttribute("style","width: 100%; max-width: "+(this.resizeCanvas.clientWidth-10)+"px; height: auto; max-height: "+(this.resizeCanvas.clientHeight-10)+"px;"),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;r=!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)),s(this.resizeCanvas,this.ctx,this.resizeImg,this.resizeCanvas.width,this.resizeCanvas.height),e(this.resizeCanvas).resizableSafe(x).on("mousedown",o);var F=this;return e(this.resizeCanvas).on("mousemove",(function(e){var t=Math.round(e.clientX-n),o=Math.round(e.clientY-a),r=l;F.ctx.rect(F.resizeCanvas.width-10,F.resizeCanvas.height-10,9,9),r!==(l=F.ctx.isPointInPath(t,o))&&(this.style.cursor=l?"se-resize":"default")})).on("keydown",(function(e){if(F.isActive()){var t=e.keyCode;27===t?F.pressEscape(F):8!==t&&46!==t||F.pressBackspaceOrDelete(F)}})).on("focus",o).on("blur",(function(){F.reset(),null!==t&&(t.syncCode(),t.$c.trigger("tbwchange"))})),this.resizeCanvas.focus(),!0},this.refresh=function(){this.resizeCanvas.getContext&&(this.resizeCanvas.width=this.resizeCanvas.clientWidth,this.resizeCanvas.height=this.resizeCanvas.clientHeight,s(this.resizeCanvas,this.ctx,this.resizeImg,this.resizeCanvas.width,this.resizeCanvas.height))}};e.extend(!0,e.trumbowyg,{plugins:{resizimg:{destroyResizable:function(){},init:function(a){var r=this.destroyResizable,l=new n(a);function i(){a.$ed.find("img").off("click").on("click",(function(e){l.isActive()&&l.reset(),l.setup(this,a.o.plugins.resizimg.resizable),o(e)}))}this.destroyResizable=function(){a.$ed.find("canvas.resizable").resizableSafe("destroy").off("mousedown",o).removeClass("resizable"),l.reset(),a.syncCode()},a.o.plugins.resizimg=e.extend(!0,{},t,a.o.plugins.resizimg||{},{resizable:{resizeWidth:!1,onDragStart:function(e,t){var o=a.o.plugins.resizimg,n=e.pageX-t.offset().left,r=e.pageY-t.offset().top;if(n",l);if(0===o.$box.find("."+n+"-"+t).length?o.$box.append(i.hide()):i=o.$box.find("."+n+"-"+t),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 s=e("
").appendTo(n); - } - } - - l.range.deleteContents(), l.range.insertNode(t[0]), l.$c.trigger("tbwchange"); - }, - n = { - title: l.lang.tableAddRow, - text: l.lang.tableAddRow, - ico: "row-below", - fn: function fn() { - l.saveRange(); - var t = l.doc.getSelection().focusNode, - a = e(t).closest("tr"), - o = e(t).closest("table"); - - if (o.length > 0) { - for (var d = e("
").appendTo(d); - } - - a.after(d); - } - - l.syncCode(); - } - }, - b = { - title: l.lang.tableAddRowAbove, - text: l.lang.tableAddRowAbove, - ico: "row-above", - fn: function fn() { - l.saveRange(); - var t = l.doc.getSelection().focusNode, - a = e(t).closest("tr"), - o = e(t).closest("table"); - - if (o.length > 0) { - for (var d = e("
").appendTo(d); - } - - a.before(d); - } - - l.syncCode(); - } - }, - r = { - title: l.lang.tableAddColumn, - text: l.lang.tableAddColumn, - ico: "col-right", - fn: function fn() { - l.saveRange(); - var t = l.doc.getSelection().focusNode, - a = e(t).closest("td"), - o = e(t).closest("table"), - d = a.index(); - o.length > 0 && e(o).find("tr").each(function () { - e(e(this).children()[d]).after("
");e("").appendTo(s);for(var x=0;x").appendTo(s),d=0;d").appendTo(F);s.find("td").on("mouseover",a),s.find("td").on("mousedown",r),i.append(s),i.append(e('
1x1
'))}o.dropdown(t)}},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()}},s={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()}},x={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",x),o.addBtnDef("tableAddColumn",s),o.addBtnDef("tableDeleteRow",d),o.addBtnDef("tableDeleteColumn",u),o.addBtnDef("tableDestroy",F)}}}})}(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"},et:{table:"Sisesta tabel",tableAddRow:"Lisa rida",tableAddRowAbove:"Lisa rida üles",tableAddColumnLeft:"Lisa tulp vasakule",tableAddColumn:"Lisa tulp paremale",tableDeleteRow:"Kustuta rida",tableDeleteColumn:"Kustuta tulp",tableDestroy:"Kustuta tabel",error:"Viga"},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:"Yukarıya satır ekle",tableAddColumnLeft:"Sola sütun ekle",tableAddColumn:"Sağa sütun ekle",tableDeleteRow:"Satırı sil",tableDeleteColumn:"Sütunu sil",tableDestroy:"Tabloyu sil",error:"Hata"},zh_tw:{table:"插入表格",tableAddRow:"加入行",tableAddRowAbove:"加入行",tableAddColumnLeft:"加入列",tableAddColumn:"加入列",tableDeleteRow:"刪除行",tableDeleteColumn:"刪除列",tableDestroy:"刪除表格",error:"錯誤"},es:{table:"Insertar tabla",tableAddRow:"Agregar fila",tableAddRowAbove:"Agregar fila arriba",tableAddColumnLeft:"Agregar columna a la izquierda",tableAddColumn:"Agregar columna a la derecha",tableDeleteRow:"Borrar fila",tableDeleteColumn:"Borrar columna",tableDestroy:"Borrar tabla",error:"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="table",n=o.o.prefix+"dropdown",l={class:n+"-table "+n+" "+o.o.prefix+"fixed-top"};l["data-"+n]=t;var i=e("
",l);if(0===o.$box.find("."+n+"-"+t).length?o.$box.append(i.hide()):i=o.$box.find("."+n+"-"+t),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 s=e("
").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("
");e("").appendTo(s);for(var x=0;x").appendTo(s),d=0;d").appendTo(F);s.find("td").on("mouseover",a),s.find("td").on("mousedown",r),i.append(s),i.append(e('
1x1
'))}o.dropdown(t)}},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()}},s={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()}},x={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",x),o.addBtnDef("tableAddColumn",s),o.addBtnDef("tableDeleteRow",d),o.addBtnDef("tableDeleteColumn",u),o.addBtnDef("tableDestroy",F)}}}})}(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"},by:{specialChars:"Спецыяльныя сімвалы"},et:{specialChars:"Erimärgid"},fr:{specialChars:"Caractères spéciaux"},hu:{specialChars:"Speciális karakterek"},ko:{specialChars:"특수문자"},ru:{specialChars:"Специальные символы"},tr:{specialChars:"Özel karakterler"}},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={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"},et:{specialChars:"Erimärgid"},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={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"},by:{upload:"Загрузка",file:"Файл",uploadError:"Памылка"},cs:{upload:"Nahrát obrázek",file:"Soubor",uploadError:"Chyba"},da:{upload:"Upload",file:"Fil",uploadError:"Fejl"},de:{upload:"Hochladen",file:"Datei",uploadError:"Fehler"},et:{upload:"Lae üles",file:"Fail",uploadError:"Viga"},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=!1,i=n.openModalInsert(n.lang.upload,r,(function(r){if(!l){l=!0;var s=new FormData;s.append(n.o.plugins.upload.fileFieldName,t),n.o.plugins.upload.data.map((function(e){s.append(e.name,e.value)})),e.map(r,(function(e,t){"file"!==t&&s.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:s,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 s=e('img[src="'+a+'"]:not([alt])',n.$box);s.attr("alt",r.alt),n.o.plugins.upload.imageWidthModalEdit&&parseInt(r.width)>0&&s.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]);l=!1},error:n.o.plugins.upload.error||function(){n.addErrorOnModalField(e("input[type=file]",i),n.lang.uploadError),n.$c.trigger("tbwuploaderror",[n]),l=!1}})}}));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";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"},et:{upload:"Lae üles",file:"Fail",uploadError:"Viga"},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=!1,i=n.openModalInsert(n.lang.upload,r,(function(r){if(!l){l=!0;var s=new FormData;s.append(n.o.plugins.upload.fileFieldName,t),n.o.plugins.upload.data.map((function(e){s.append(e.name,e.value)})),e.map(r,(function(e,t){"file"!==t&&s.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:s,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 s=e('img[src="'+a+'"]:not([alt])',n.$box);s.attr("alt",r.alt),n.o.plugins.upload.imageWidthModalEdit&&parseInt(r.width)>0&&s.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]);l=!1},error:n.o.plugins.upload.error||function(){n.addErrorOnModalField(e("input[type=file]",i),n.lang.uploadError),n.$c.trigger("tbwuploaderror",[n]),l=!1}})}}));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"},by:{template:"Шаблон"},da:{template:"Skabelon"},de:{template:"Vorlage"},et:{template:"Mall"},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),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"},et:{template:"Mall"},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); +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},_typeof(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.plugins.allowTagsFromPaste){o.o.removeformatPasted=!1;var a=o.o.plugins.allowTagsFromPaste.allowedTags||t.allowedTags,n=o.o.plugins.allowTagsFromPaste.removableTags||t.removableTags;if(0!==a.length){var r=e(n).not(a).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."},sl:{base64:"Slika kot base64",file:"Datoteka",errFileReaderNotSupported:"FileReader ni podprt v tem brskalniku.",errInvalidImage:"Neveljavna datoteka s sliko."},by:{base64:"Выява (фармат base64)",file:"Файл",errFileReaderNotSupported:"FileReader не падтрымліваецца вашым браўзэрам.",errInvalidImage:"Несапраўдны файл выявы."},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."},et:{base64:"Pilt base64 formaadis",file:"Fail",errFileReaderNotSupported:"Teie veebilehitseja ei toeta FileReader funktsiooni.",errInvalidImage:"Vigane pildifail."},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 a={isSupported:t,fn:function(){var t;o.saveRange();var a=o.openModalInsert(o.lang.base64,{file:{type:"file",required:!0,attributes:{accept:"image/*"}},alt:{label:"description",value:o.getRangeText()}},(function(n){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",n.alt),o.closeModal()):o.addErrorOnModalField(e("input[type=file]",a),o.lang.errInvalidImage)},r.readAsDataURL(t)}));e("input[type=file]").on("change",(function(e){t=e.target.files[0]}))}};o.addBtnDef("base64",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 a=(o.originalEvent||o).clipboardData.getData("Text"),n=t.doc.getSelection().focusNode,r=t.doc.createRange(),l=((s=(s=(s=(s=(s=(s=(s=(s=(s=a.trim()).replace(/<[^> ]*/g,(function(e){return e.toLowerCase()})).replace(/<[^>]*>/g,(function(e){return e.replace(/ [^=]+=/g,(function(e){return e.toLowerCase()}))})).replace(/<[^>]*>/g,(function(e){return e.replace(/( [^=]+=)([^"][^ >]*)/g,'$1"$2"')}))).replace(/)/g,")/g,")/g,")/g,"\s*/g,"")).replace(/ /gi," ")).replace(/ <\//gi,"]*>/g,(function(e){return 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(n),r.setEndAfter(n),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(),t.$c.trigger("tbwchange")}catch(e){}var s}),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||null==(e=e.match(/^rgba?\((\d+),\s*(\d+),\s*(\d+)(?:,\s*(\d?(.\d+)))?\)$/))?"transparent":t(e[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"},sl:{foreColor:"Barva teksta",backColor:"Barva ozadja",foreColorRemove:"Ponastavi barvo teksta",backColorRemove:"Ponastavi barvo ozadja"},by:{foreColor:"Колер тэксту",backColor:"Колер фону тэксту",foreColorRemove:"Выдаліць колер тэксту",backColorRemove:"Выдаліць колер фону тэксту"},cs:{foreColor:"Barva textu",backColor:"Barva pozadí"},da:{foreColor:"Tekstfarve",backColor:"Baggrundsfarve"},de:{foreColor:"Textfarbe",backColor:"Hintergrundfarbe"},et:{foreColor:"Teksti värv",backColor:"Taustavärv",foreColorRemove:"Eemalda teksti värv",backColorRemove:"Eemalda taustavärv"},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:"Цвет выделения текста",foreColorRemove:"Очистить цвет текста",backColorRemove:"Очистить цвет выделения текста"},sk:{foreColor:"Farba textu",backColor:"Farba pozadia"},tr:{foreColor:"Yazı rengi",backColor:"Arka plan rengi",foreColorRemove:"Yazı rengini kaldır",backColorRemove:"Arka plan rengini kaldır"},zh_cn:{foreColor:"文字颜色",backColor:"背景颜色"},zh_tw:{foreColor:"文字顏色",backColor:"背景顏色"}}});var a={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 n(t,o){var a=[],n=o.o.plugins.colors,r=n[t+"List"]||n.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+";"};n.displayAsList&&"foreColor"===t&&(i.style="color: #"+r+" !important;"),o.addBtnDef(l,i),a.push(l)}));var l=t+"Remove",i={fn:"removeFormat",hasIcon:!1,param:t,style:"background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAAECAYAAACp8Z5+AAAAG0lEQVQIW2NkQAAfEJMRmwBYhoGBYQtMBYoAADziAp0jtJTgAAAAAElFTkSuQmCC);"};if(n.displayAsList&&(i.style=""),o.addBtnDef(l,i),a.push(l),n["allowCustom"+t.charAt(0).toUpperCase()+t.substr(1)]){var s=t+"Free",x={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(s,x),a.push(s)}return a}e.extend(!0,e.trumbowyg,{plugins:{color:{init:function(e){e.o.plugins.colors=e.o.plugins.colors||a;var t=e.o.plugins.colors.displayAsList?e.o.prefix+"dropdown--color-list":"",o={dropdown:n("foreColor",e),dropdownClass:t},r={dropdown:n("backColor",e),dropdownClass:t};e.addBtnDef("foreColor",o),e.addBtnDef("backColor",r)},tagHandler:function(e,t){var a,n=[];if(!e.style)return n;if(""!==e.style.backgroundColor){var r=o(e.style.backgroundColor);t.o.plugins.colors.colorList.indexOf(r)>=0?n.push("backColor"+r):n.push("backColorFree")}return""!==e.style.color?a=o(e.style.color):e.hasAttribute("color")&&(a=o(e.getAttribute("color"))),a&&(t.o.plugins.colors.colorList.indexOf(a)>=0?n.push("foreColor"+a):n.push("foreColorFree")),n}}}})}(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(a,n){if(e.isArray(n)){var r=n[0],l=n[1],i=''+r+'',s="emoji-"+r.replace(/:/g,""),x={hasIcon:!1,text:i,fn:function(){return t.execCmd("insertImage",l,!1,!0),!0}};t.addBtnDef(s,x),o.push(s)}else{var F="emoji-"+n.replace(/:/g,""),d={text:n,fn:function(){var e=String.fromCodePoint(n.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"},sl:{emoji:"Vstavi emotikon"},da:{emoji:"Tilføj et humørikon"},de:{emoji:"Emoticon einfügen"},et:{emoji:"Lisa emotikon"},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 a={dropdown:o(e)};e.addBtnDef("emoji",a)}}}})}(jQuery),function(e){"use strict";e.extend(!0,e.trumbowyg,{langs:{en:{fontFamily:"Font"},sl:{fontFamily:"Pisava"},by:{fontFamily:"Шрыфт"},es:{fontFamily:"Fuente"},da:{fontFamily:"Skrifttype"},de:{fontFamily:"Schriftart"},et:{fontFamily:"Font"},fr:{fontFamily:"Police"},hu:{fontFamily:"Betűtípus"},ko:{fontFamily:"글꼴"},nl:{fontFamily:"Lettertype"},pt_br:{fontFamily:"Fonte"},ru:{fontFamily:"Шрифт"},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,a){t.addBtnDef("fontfamily_"+e,{title:''+a.name+"",hasIcon:!1,fn:function(){t.execCmd("fontName",a.family,!0)}}),o.push("fontfamily_"+e)})),o}e.extend(!0,e.trumbowyg,{plugins:{fontfamily:{init:function(a){a.o.plugins.fontfamily=e.extend({},t,a.o.plugins.fontfamily||{}),a.addBtnDef("fontfamily",{dropdown:o(a),hasIcon:!1,text:a.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"}},sl:{fontsize:"Velikost pisave",fontsizes:{"x-small":"Ekstra majhna",small:"Majhna",medium:"Navadno",large:"Velika","x-large":"Ekstra velika",custom:"Poljubna"},fontCustomSize:{title:"Poljubna velikost pisave",label:"Velikost pisave",value:"48px"}},by:{fontsize:"Памер шрыфта",fontsizes:{"x-small":"Вельмі маленькі",small:"Маленькі",medium:"Звычайны",large:"Вялікі","x-large":"Вельмі вялікі",custom:"Карыстальніцкі"},fontCustomSize:{title:"Карыстальніцкі Памер Шрыфта",label:"Памер Шрыфта",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"}},et:{fontsize:"Teksti suurus",fontsizes:{"x-small":"Väga väike",small:"Väike",medium:"Tavaline",large:"Suur","x-large":"Väga suur",custom:"Määra ise"},fontCustomSize:{title:"Kohandatud teksti suurus",label:"Teksti suurus",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:"Handmatig"},fontCustomSize:{title:"Handmatige lettergrootte",label:"Lettergrootte",value:"48px"}},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"}},ru:{fontsize:"Размер шрифта",fontsizes:{"x-small":"Очень маленький",small:"Маленький",medium:"Обычный",large:"Большой","x-large":"Очень большой",custom:"Пользовательский"},fontCustomSize:{title:"Пользовательский Размер Шрифта",label:"Размер Шрифта",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:"Özel"},fontCustomSize:{title:"Özel Yazı Boyutu",label:"Yazı Boyutu",value:"48px"}},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");var a=t.$ed.find('font[size="1"]');a.find('span[style*="font-size"]').contents().unwrap(),a.replaceWith((function(){return e("",{css:{"font-size":o},html:this.innerHTML})})),e(t.range.startContainer.parentElement).find('span[style=""]').contents().unwrap(),t.restoreRange(),t.syncCode(),t.$c.trigger("tbwchange")}function a(t){var a=[];if(e.each(t.o.plugins.fontsize.sizeList,(function(e,n){t.addBtnDef("fontsize_"+n,{text:''+(t.lang.fontsizes[n]||n)+"",hasIcon:!1,fn:function(){o(t,n)}}),a.push("fontsize_"+n)})),t.o.plugins.fontsize.allowCustomSize){var n="fontsize_custom",r={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(n,r),a.push(n)}return a}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:a(o)})}}}})}(jQuery),function(e){"use strict";e.extend(!0,e.trumbowyg,{langs:{en:{giphy:"Insert GIF"},sl:{giphy:"Vstavi GIF"},by:{giphy:"Уставіць GIF"},et:{giphy:"Sisesta GIF"},fr:{giphy:"Insérer un GIF"},hu:{giphy:"GIF beszúrás"},ru:{giphy:"Вставить GIF"},tr:{giphy:"GIF ekle"}}});var t="tbwcancel";function o(t,o,a,n){var r=(o.width()-20)/3,l=t.data.filter((function(e){return!!(e.images.downsized||e.images.downsized_medium).url})).map((function(e){var t=e.images.downsized||e.images.downsized_medium,o=t.height/t.width,a=e.title;return'
'+("'+a+'')+"
"})).join("");if(!0===n){if(0===l.length){if(e("."+a.o.prefix+"giphy-no-result",o).length>0)return;l=''}o.empty()}o.append(l);var i=function(e){e.classList.add("tbw-loaded")};e("img",o).each((function(){var e=this;e.complete?i(e):e.addEventListener("load",(function(){i(this)}))})),e("img",o).on("click",(function(){var t=e(this).attr("src"),n=e(this).attr("alt");(a.restoreRange(),a.execCmd("insertImage",t,!1,!0),n)&&(e('img[src="'+t+'"]:not([alt])',a.$box).attr("alt",n),a.syncCode());e("img",o).off(),a.closeModal()}))}var a={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({},a,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 a="https://api.giphy.com/v1/gifs/search?api_key="+n.o.plugins.giphy.apiKey+"&rating="+n.o.plugins.giphy.rating,r=a.replace("/search","/trending"),l={abort:function(){}},i=n.o.prefix,s=''+('')+('
Powered by
')+'
';n.openModal(null,s,!1).one(t,(function(){try{l.abort()}catch(e){}n.closeModal()}));var x=e("."+i+"giphy-search"),F=e("."+i+"giphy-close"),d=e("."+i+"giphy-modal"),u=function(){navigator.onLine||e("."+i+"giphy-offline",d).length||(d.empty(),d.append('

You are offline

'))};e.ajax({url:r,dataType:"json",success:function(e){o(e,d,n,!0)},error:u});var c,f,m,p,g=(c=function(){var t=x.val();if(0!==t.length){try{l.abort()}catch(e){}l=e.ajax({url:a+"&q="+encodeURIComponent(t),dataType:"json",success:function(e){o(e,d,n,!0)},error:u})}},f=n.o.plugins.giphy.throttleDelay,function(){var e=this,t=+new Date,o=arguments;m&&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(),n()}}},n=function(){var e=t.o.plugins.history._index,o=t.o.plugins.history._stack.length,a=0!==o&&e!==o-1;r("historyUndo",e>0),r("historyRedo",a)},r=function(e,o){var a=t.$box.find(".trumbowyg-"+e+"-button");o?a.removeClass("trumbowyg-disable"):a.hasClass("trumbowyg-disable")||a.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.history tbwchange.history",(function(){var o,a,r=t.o.plugins.history._index,i=t.o.plugins.history._stack,s=i.slice(-1)[0]||"

",x=i[r],F=t.$ed.html(),d=t.doc.getSelection().focusNode,u="",c=t.o.plugins.history._focusEl;o=e("
"+s+"
").find("*").map((function(){return this.localName})),a=e("
"+F+"
").find("*").map((function(){return this.localName})),d&&(t.o.plugins.history._focusEl=d,u=d.outerHTML||d.textContent),F!==x&&(u.slice(-1).match(/\s/)||!l(o,a)||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,n())})),t.addBtnDef("historyRedo",o),t.addBtnDef("historyUndo",a)}}}})}(jQuery),function(e){"use strict";e.extend(!0,e.trumbowyg,{langs:{en:{indent:"Indent",outdent:"Outdent"},sl:{indent:"Povečaj zamik",outdent:"Zmanjšaj zamik"},by:{indent:"Водступ",outdent:"Выступ"},et:{indent:"Taande suurendamine",outdent:"Taande vähendamine"},fr:{indent:"Augmenter le retrait",outdent:"Diminuer le retrait"},pt_br:{indent:"Aumentar Recuo",outdent:"Diminuir Recuo"},ru:{indent:"Отступ",outdent:"Выступ"},tr:{indent:"Girinti",outdent:"Çıkıntı"}}}),e.extend(!0,e.trumbowyg,{plugins:{paragraph:{init:function(e){var t={fn:"indent",title:e.lang.indent,isSupported:function(){return!!document.queryCommandSupported&&!!document.queryCommandSupported("indent")},ico:"indent"},o={fn:"outdent",title:e.lang.outdent,isSupported:function(){return!!document.queryCommandSupported&&!!document.queryCommandSupported("outdent")},ico:"outdent"};e.addBtnDef("indent",t),e.addBtnDef("outdent",o)}}}})}(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"},sl:{insertAudio:"Vstavi zvočno datoteko"},by:{insertAudio:"Уставіць аўдыё"},da:{insertAudio:"Indsæt lyd"},et:{insertAudio:"Lisa helifail"},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 a={fn:function(){o.openModalInsert(o.lang.insertAudio,t,(function(t){var a="")[0];return o.range.deleteContents(),o.range.insertNode(n),!0}))}};o.addBtnDef("insertAudio",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"}},sl:{lineheight:"Višina vrstice",lineheights:{.9:"Majhna",normal:"Navadna",1.5:"Velika","2.0":"Ekstra velika"}},by:{lineheight:"Міжрадковы інтэрвал",lineheights:{.9:"Маленькі",normal:"Звычайны",1.5:"Вялікі","2.0":"Вельмі вялікі"}},da:{lineheight:"Linjehøjde",lineheights:{.9:"Lille",normal:"Normal",1.5:"Stor","2.0":"Ekstra stor"}},et:{lineheight:"Reavahe",lineheights:{.9:"Väike",normal:"Tavaline",1.5:"Suur","2.0":"Väga suur"}},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"}},ru:{lineheight:"Межстрочный интервал",lineheights:{.9:"Маленький",normal:"Обычный",1.5:"Большой","2.0":"Очень большой"}},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(a,n){t.addBtnDef("lineheight_"+n,{text:t.lang.lineheights[n]||n,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",n)}catch(e){}}}),o.push("lineheight_"+n)})),o}e.extend(!0,e.trumbowyg,{plugins:{lineheight:{init:function(a){a.o.plugins.lineheight=e.extend({},t,a.o.plugins.lineheight||{}),a.addBtnDef("lineheight",{dropdown:o(a)})}}}})}(jQuery),function(e){"use strict";e.extend(!0,e.trumbowyg,{langs:{en:{mathml:"Insert Formulas",formulas:"Formulas",inline:"Inline"},sl:{mathml:"Vstavi matematični izraz",formulas:"Formula",inline:"V vrstici"},by:{mathml:"Уставіць формулу",formulas:"Формула",inline:"Inline-элемент"},da:{mathml:"Indsæt formler",formulas:"Formler",inline:"Inline"},et:{mathml:"Sisesta valem",formulas:"Valemid",inline:"Teksti sees"},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"},ru:{mathml:"Вставить формулу",formulas:"Формула",inline:"Строчный элемент"},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={formulas:{label:t.lang.formulas,required:!0,value:""},inline:{label:t.lang.inline,attributes:{checked:!0},type:"checkbox",required:!1}},a=function(o){var a=o.inline?"$":"$$";if(t.currentMathNode)e(t.currentMathNode).html(a+" "+o.formulas+" "+a).attr("formulas",o.formulas).attr("inline",o.inline?"true":"false");else{var r=''+a+" "+o.formulas+" "+a+"",l=e(r)[0];l.onclick=n,t.range.deleteContents(),t.range.insertNode(l)}return t.currentMathNode=!1,MathJax.Hub.Queue(["Typeset",MathJax.Hub]),!0},n=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,a)},r={fn:function(){t.saveRange(),o.formulas.value=t.getRangeText(),o.inline.attributes.checked=!0,t.openModalInsert(t.lang.mathml,o,a)}};t.$ta.on("tbwinit",(function(){t.$ed.find("[formulas]").each((function(e,t){t.onclick=n}))})),t.addBtnDef("mathml",r)}}}})}(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 a=[];return e.each(t,(function(e,t){var n="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(n,r),a.push(n)})),a}e.extend(!0,e.trumbowyg,{langs:{en:{mention:"Mention"},sl:{mention:"Omeni"},by:{mention:"Згадаць"},da:{mention:"Nævn"},et:{mention:"Maini"},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(a){a.o.plugins.mention=e.extend(!0,{},t,a.o.plugins.mention||{});var n={dropdown:o(a.o.plugins.mention.source,a)};a.addBtnDef("mention",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"},sl:{noembed:"Noembed",noembedError:"Napaka"},by:{noembedError:"Памылка"},cs:{noembedError:"Chyba"},da:{noembedError:"Fejl"},et:{noembed:"Noembed",noembedError:"Viga"},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 a={fn:function(){var t=o.openModalInsert(o.lang.noembed,{url:{label:"URL",required:!0}},(function(a){e.ajax({url:o.o.plugins.noembed.proxy,type:"GET",data:a,cache:!1,dataType:"json",success:function(a){o.o.plugins.noembed.success?o.o.plugins.noembed.success(a,o,t):a.html?(o.execCmd("insertHTML",a.html),setTimeout((function(){o.closeModal()}),250)):o.addErrorOnModalField(e("input[type=text]",t),a.error)},error:o.o.plugins.noembed.error||function(){o.addErrorOnModalField(e("input[type=text]",t),o.lang.noembedError)}})}))}};o.addBtnDef("noembed",a)}}}})}(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 a=(t.originalEvent||t).clipboardData.getData("Text"),n=o.o.plugins.pasteEmbed.endpoints,r=null;if(a.startsWith("http")){t.stopPropagation(),t.preventDefault();var l={url:a.trim()},i="",s=0;r&&r.transport&&r.transport.abort(),r=e.ajax({crossOrigin:!0,url:n[s],type:"GET",data:l,cache:!1,dataType:"jsonp",success:function(e){e.html?(s=0,i=e.html):s+=1},error:function(){s+=1},complete:function(){0===i.length&&s",{href:a,text:a}).prop("outerHTML")),i.length>0&&(s=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,a=(t.originalEvent||t).clipboardData.items,n=!1,r=a.length-1;r>=0;r-=1)a[r].type.match(/^image\//)&&((o=new FileReader).onloadend=function(t){e.execCmd("insertImage",t.target.result,!1,!0)},o.readAsDataURL(a[r].getAsFile()),n=!0);n&&(t.stopPropagation(),t.preventDefault())}catch(e){}}))}}}})}(jQuery),function(e){"use strict";e.extend(!0,e.trumbowyg,{langs:{en:{preformatted:"Code sample
"},sl:{preformatted:"Vstavi neformatiran tekst 
"},by:{preformatted:"Прыклад кода 
"},da:{preformatted:"Præformateret 
"},et:{preformatted:"Eelvormindatud tekst 
"},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,a,n=t.getRangeText();if(""!==n.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 a=e(t).contents().closest("pre").length,n=e(t).contents().closest("code").length;a&&n?e(t).contents().unwrap("code").unwrap("pre"):a?e(t).contents().unwrap("pre"):n&&e(t).contents().unwrap("code")}();t.execCmd("insertHTML","
"+(o=n,(a=document.createElement("DIV")).innerHTML=o,(a.textContent||a.innerText||"")+"
"))}catch(e){}},tag:"pre"};t.addBtnDef("preformatted",o)}}}})}(jQuery),function(e){"use strict";var t={minSize:32,step:4};function o(e){e.stopPropagation(),e.preventDefault()}var a=function(t){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(o){e(o.resizeCanvas).remove(),o.resizeImg=null,null!==t&&(t.syncCode(),t.$c.trigger("tbwchange"))};var a,n,r=!1,l=!1,i=function(e){var t=e.getBoundingClientRect();a=t.left,n=t.top},s=function(e,t,o,a,n){return t.translate(.5,.5),t.lineWidth=1,t.drawImage(o,5,5,a-10,n-10),t.beginPath(),t.rect(5,5,a-10,n-10),t.stroke(),t.beginPath(),t.fillStyle="rgb(255, 255, 255)",t.rect(a-10,n-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 r},this.blurNow=function(){r=!1},this.reset=function(){null!==this.resizeImg&&(this.resizeImg.setAttribute("style","width: 100%; max-width: "+(this.resizeCanvas.clientWidth-10)+"px; height: auto; max-height: "+(this.resizeCanvas.clientHeight-10)+"px;"),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;r=!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)),s(this.resizeCanvas,this.ctx,this.resizeImg,this.resizeCanvas.width,this.resizeCanvas.height),e(this.resizeCanvas).resizableSafe(x).on("mousedown",o);var F=this;return e(this.resizeCanvas).on("mousemove",(function(e){var t=Math.round(e.clientX-a),o=Math.round(e.clientY-n),r=l;F.ctx.rect(F.resizeCanvas.width-10,F.resizeCanvas.height-10,9,9),r!==(l=F.ctx.isPointInPath(t,o))&&(this.style.cursor=l?"se-resize":"default")})).on("keydown",(function(e){if(F.isActive()){var t=e.keyCode;27===t?F.pressEscape(F):8!==t&&46!==t||F.pressBackspaceOrDelete(F)}})).on("focus",o).on("blur",(function(){F.reset(),null!==t&&(t.syncCode(),t.$c.trigger("tbwchange"))})),this.resizeCanvas.focus(),!0},this.refresh=function(){this.resizeCanvas.getContext&&(this.resizeCanvas.width=this.resizeCanvas.clientWidth,this.resizeCanvas.height=this.resizeCanvas.clientHeight,s(this.resizeCanvas,this.ctx,this.resizeImg,this.resizeCanvas.width,this.resizeCanvas.height))}};e.extend(!0,e.trumbowyg,{plugins:{resizimg:{destroyResizable:function(){},init:function(n){var r=this.destroyResizable,l=new a(n);function i(){n.$ed.find("img").off("click").on("click",(function(e){l.isActive()&&l.reset(),l.setup(this,n.o.plugins.resizimg.resizable),o(e)}))}this.destroyResizable=function(){n.$ed.find("canvas.resizable").resizableSafe("destroy").off("mousedown",o).removeClass("resizable"),l.reset(),n.syncCode()},n.o.plugins.resizimg=e.extend(!0,{},t,n.o.plugins.resizimg||{},{resizable:{resizeWidth:!1,onDragStart:function(e,t){var o=n.o.plugins.resizimg,a=e.pageX-t.offset().left,r=e.pageY-t.offset().top;if(a",l);if(0===o.$box.find("."+a+"-"+t).length?o.$box.append(i.hide()):i=o.$box.find("."+a+"-"+t),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 s=e("
").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("
");e("").appendTo(s);for(var x=0;x").appendTo(s),d=0;d").appendTo(F);s.find("td").on("mouseover",n),s.find("td").on("mousedown",r),i.append(s),i.append(e('
1x1
'))}o.dropdown(t)}},n=function(t){var o=e(t.target).closest("table"),a=this.cellIndex,n=this.parentNode.rowIndex;o.find("td").removeClass("active");for(var r=0;r<=n;r+=1)for(var l=0;l<=a;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(a+1+"x"+(n+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 a=this.cellIndex,n=this.parentNode.rowIndex,r=0;r<=n;r+=1)for(var l=e("").appendTo(t),i=0;i<=a;i+=1)e("");e("td,th",a).each((function(){e(this).clone().appendTo(n).text("")})),a.after(n)}o.syncCode()}},i={title:o.lang.tableAddRowAbove,text:o.lang.tableAddRowAbove,ico:"row-above",fn:function(){o.saveRange();var t=o.doc.getSelection().focusNode,a=e(t).closest("tr");if(e(t).closest("table").length>0){var n=e("");e("td,th",a).each((function(){e(this).clone().appendTo(n).text("")})),a.before(n)}o.syncCode()}},s={title:o.lang.tableAddColumn,text:o.lang.tableAddColumn,ico:"col-right",fn:function(){o.saveRange();var t=o.doc.getSelection().focusNode,a=e(t).closest("td"),n=e(t).closest("table"),r=a.index();n.length>0&&e(n).find("tr").each((function(){e(e(this).children()[r]).after("")})),o.syncCode()}},x={title:o.lang.tableAddColumnLeft,text:o.lang.tableAddColumnLeft,ico:"col-left",fn:function(){o.saveRange();var t=o.doc.getSelection().focusNode,a=e(t).closest("td"),n=e(t).closest("table"),r=a.index();n.length>0&&e(n).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,a=e(t).closest("table"),n=e(t).closest("td").index();e(a).find("tr").each((function(){e(this).find("td:eq("+n+")").remove()})),o.syncCode()}};o.addBtnDef("table",a),o.addBtnDef("tableAddRowAbove",i),o.addBtnDef("tableAddRow",l),o.addBtnDef("tableAddColumnLeft",x),o.addBtnDef("tableAddColumn",s),o.addBtnDef("tableDeleteRow",d),o.addBtnDef("tableDeleteColumn",u),o.addBtnDef("tableDestroy",F)}}}})}(jQuery),function(e){"use strict";function t(t){var o=t.o.plugins.templates,a=[];return e.each(o,(function(e,o){t.addBtnDef("template_"+e,{fn:function(){t.html(o.html)},hasIcon:!1,title:o.name}),a.push("template_"+e)})),a}e.extend(!0,e.trumbowyg,{langs:{en:{template:"Template"},sl:{template:"Predloga"},by:{template:"Шаблон"},da:{template:"Skabelon"},de:{template:"Vorlage"},et:{template:"Mall"},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),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 a=t.shift(),n=t;if(null!==e){if(0===n.length)return e[a];if("object"===_typeof(e))return o(e[a],n)}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"},sl:{upload:"Naloži datoteko",file:"Datoteka",uploadError:"Napaka"},by:{upload:"Загрузка",file:"Файл",uploadError:"Памылка"},cs:{upload:"Nahrát obrázek",file:"Soubor",uploadError:"Chyba"},da:{upload:"Upload",file:"Fil",uploadError:"Fejl"},de:{upload:"Hochladen",file:"Datei",uploadError:"Fehler"},et:{upload:"Lae üles",file:"Fail",uploadError:"Viga"},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(a){a.o.plugins.upload=e.extend(!0,{},t,a.o.plugins.upload||{});var n={fn:function(){a.saveRange();var t,n=a.o.prefix,r={file:{type:"file",required:!0,attributes:{accept:"image/*"}},alt:{label:"description",value:a.getRangeText()}};a.o.plugins.upload.imageWidthModalEdit&&(r.width={value:""});var l=!1,i=a.openModalInsert(a.lang.upload,r,(function(r){if(!l){l=!0;var s=new FormData;s.append(a.o.plugins.upload.fileFieldName,t),a.o.plugins.upload.data.map((function(e){s.append(e.name,e.value)})),e.map(r,(function(e,t){"file"!==t&&s.append(t,e)})),0===e("."+n+"progress",i).length&&e("."+n+"modal-title",i).after(e("
",{class:n+"progress"}).append(e("
",{class:n+"progress-bar"}))),e.ajax({url:a.o.plugins.upload.serverPath,headers:a.o.plugins.upload.headers,xhrFields:a.o.plugins.upload.xhrFields,type:"POST",data:s,cache:!1,dataType:"json",processData:!1,contentType:!1,progressUpload:function(t){e("."+n+"progress-bar").css("width",Math.round(100*t.loaded/t.total)+"%")},success:function(t){if(a.o.plugins.upload.success)a.o.plugins.upload.success(t,a,i,r);else if(o(t,a.o.plugins.upload.statusPropertyName.split("."))){var n=o(t,a.o.plugins.upload.urlPropertyName.split("."));a.execCmd("insertImage",n,!1,!0);var s=e('img[src="'+n+'"]:not([alt])',a.$box);s.attr("alt",r.alt),a.o.plugins.upload.imageWidthModalEdit&&parseInt(r.width)>0&&s.attr({width:r.width}),setTimeout((function(){a.closeModal()}),250),a.$c.trigger("tbwuploadsuccess",[a,t,n])}else a.addErrorOnModalField(e("input[type=file]",i),a.lang[t.message]),a.$c.trigger("tbwuploaderror",[a,t]);l=!1},error:a.o.plugins.upload.error||function(){a.addErrorOnModalField(e("input[type=file]",i),a.lang.uploadError),a.$c.trigger("tbwuploaderror",[a]),l=!1}})}}));e("input[type=file]").on("change",(function(e){try{t=e.target.files[0]}catch(o){t=e.target.value}}))}};a.addBtnDef("upload",n)}}}})}(jQuery); diff --git a/src/OrchardCore.Modules/OrchardCore.Resources/wwwroot/Scripts/trumbowyg.js b/src/OrchardCore.Modules/OrchardCore.Resources/wwwroot/Scripts/trumbowyg.js index cebf00b8e41..9d4277f578a 100644 --- a/src/OrchardCore.Modules/OrchardCore.Resources/wwwroot/Scripts/trumbowyg.js +++ b/src/OrchardCore.Modules/OrchardCore.Resources/wwwroot/Scripts/trumbowyg.js @@ -6,7 +6,7 @@ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } /** - * Trumbowyg v2.25.2 - A lightweight WYSIWYG editor + * Trumbowyg v2.26.0 - A lightweight WYSIWYG editor * Trumbowyg core file * ------------------------ * @link http://alex-d.github.io/Trumbowyg @@ -41,6 +41,8 @@ jQuery.trumbowyg = { link: 'Link', createLink: 'Insert link', unlink: 'Remove link', + _self: 'Same tab (default)', + _blank: 'New tab', justifyLeft: 'Align Left', justifyCenter: 'Align Center', justifyRight: 'Align Right', @@ -96,7 +98,7 @@ Object.defineProperty(jQuery.trumbowyg, 'defaultOptions', { plugins: {}, urlProtocol: false, minimalLinks: false, - defaultLinkTarget: undefined, + linkTargets: ['_self', '_blank'], svgPath: null }, writable: false, @@ -247,7 +249,7 @@ Object.defineProperty(jQuery.trumbowyg, 'defaultOptions', { } } - var baseHref = !!t.doc.querySelector('base') ? window.location.href.split(/[?#]/)[0] : ''; + var baseHref = !!t.doc.querySelector('base') ? window.location.href.replace(window.location.hash, '') : ''; t.svgPath = $trumbowyg.svgAbsoluteUseHref ? svgPathOption : baseHref; /** * When the button is associated to a empty object @@ -1196,7 +1198,8 @@ Object.defineProperty(jQuery.trumbowyg, 'defaultOptions', { text = new XMLSerializer().serializeToString(selectedRange.cloneContents()) || selectedRange + '', url, title, - target; + target, + linkDefaultTarget = t.o.linkTargets[0]; while (['A', 'DIV'].indexOf(node.nodeName) < 0) { node = node.parentNode; @@ -1209,7 +1212,7 @@ Object.defineProperty(jQuery.trumbowyg, 'defaultOptions', { if (!t.o.minimalLinks) { title = $a.attr('title'); - target = $a.attr('target') || t.o.defaultLinkTarget; + target = $a.attr('target') || linkDefaultTarget; } var range = t.doc.createRange(); @@ -1232,6 +1235,10 @@ Object.defineProperty(jQuery.trumbowyg, 'defaultOptions', { }; if (!t.o.minimalLinks) { + var targetOptions = t.o.linkTargets.reduce(function (options, optionValue) { + options[optionValue] = t.lang[optionValue]; + return options; + }, {}); $.extend(options, { title: { label: t.lang.title, @@ -1239,7 +1246,8 @@ Object.defineProperty(jQuery.trumbowyg, 'defaultOptions', { }, target: { label: t.lang.target, - value: target + value: target, + options: targetOptions } }); } @@ -1258,8 +1266,8 @@ Object.defineProperty(jQuery.trumbowyg, 'defaultOptions', { link.attr('title', v.title); } - if (v.target || t.o.defaultLinkTarget) { - link.attr('target', v.target || t.o.defaultLinkTarget); + if (v.target || linkDefaultTarget) { + link.attr('target', v.target || linkDefaultTarget); } t.range.deleteContents(); @@ -1452,7 +1460,13 @@ Object.defineProperty(jQuery.trumbowyg, 'defaultOptions', { }).css({ top: t.$box.offset().top + t.$btnPane.height(), zIndex: 99999 - }).appendTo($(t.doc.body)); // Click on overlay close modal by cancelling them + }).appendTo($(t.doc.body)); + var darkClass = prefix + 'dark'; + + if (t.$c.parents('.' + darkClass).length !== 0) { + $modal.addClass(darkClass); + } // Click on overlay close modal by cancelling them + t.$overlay.one('click', function () { $modal.trigger(CANCEL_EVENT); @@ -1562,11 +1576,25 @@ Object.defineProperty(jQuery.trumbowyg, 'defaultOptions', { } html += field.type(field, fieldId, prefix, lg); + return; + } + + html += '
'; + html += '
'; + html += '
'; + + if ($.isPlainObject(field.options)) { + html += ''; } else { - html += '
' + '
' + '
'; - html += '
'; + html += ''; } + + html += '
'; }); return t.openModal(title, html).on(CONFIRM_EVENT, function () { var $form = $('form', $(this)), diff --git a/src/OrchardCore.Modules/OrchardCore.Resources/wwwroot/Scripts/trumbowyg.min.js b/src/OrchardCore.Modules/OrchardCore.Resources/wwwroot/Scripts/trumbowyg.min.js index 7fbc2682f12..398de8beb31 100644 --- a/src/OrchardCore.Modules/OrchardCore.Resources/wwwroot/Scripts/trumbowyg.min.js +++ b/src/OrchardCore.Modules/OrchardCore.Resources/wwwroot/Scripts/trumbowyg.min.js @@ -1,6 +1,6 @@ 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},_typeof(e) /** - * Trumbowyg v2.25.2 - A lightweight WYSIWYG editor + * Trumbowyg v2.26.0 - A lightweight WYSIWYG editor * Trumbowyg core file * ------------------------ * @link http://alex-d.github.io/Trumbowyg @@ -8,4 +8,4 @@ function _typeof(e){return _typeof="function"==typeof Symbol&&"symbol"==typeof S * @author Alexandre Demode (Alex-D) * Twitter : @AlexandreDemode * Website : alex-d.fr - */}jQuery.trumbowyg={langs:{en:{viewHTML:"View HTML",undo:"Undo",redo:"Redo",formatting:"Formatting",p:"Paragraph",blockquote:"Quote",code:"Code",header:"Header",bold:"Bold",italic:"Italic",strikethrough:"Strikethrough",underline:"Underline",strong:"Strong",em:"Emphasis",del:"Deleted",superscript:"Superscript",subscript:"Subscript",unorderedList:"Unordered list",orderedList:"Ordered list",insertImage:"Insert Image",link:"Link",createLink:"Insert link",unlink:"Remove link",justifyLeft:"Align Left",justifyCenter:"Align Center",justifyRight:"Align Right",justifyFull:"Align Justify",horizontalRule:"Insert horizontal rule",removeformat:"Remove format",fullscreen:"Fullscreen",close:"Close",submit:"Confirm",reset:"Cancel",required:"Required",description:"Description",title:"Title",text:"Text",target:"Target",width:"Width"}},plugins:{},svgPath:null,svgAbsoluteUseHref:!1,hideButtonTexts:null},Object.defineProperty(jQuery.trumbowyg,"defaultOptions",{value:{lang:"en",fixedBtnPane:!1,fixedFullWidth:!1,autogrow:!1,autogrowOnEnter:!1,imageWidthModalEdit:!1,hideButtonTexts:null,prefix:"trumbowyg-",tagClasses:{},semantic:!0,semanticKeepAttributes:!1,resetCss:!1,removeformatPasted:!1,tabToIndent:!1,tagsToRemove:[],tagsToKeep:["hr","img","embed","iframe","input"],btns:[["viewHTML"],["undo","redo"],["formatting"],["strong","em","del"],["superscript","subscript"],["link"],["insertImage"],["justifyLeft","justifyCenter","justifyRight","justifyFull"],["unorderedList","orderedList"],["horizontalRule"],["removeformat"],["fullscreen"]],btnsDef:{},changeActiveDropdownIcon:!1,inlineElementsSelector:"a,abbr,acronym,b,caption,cite,code,col,dfn,dir,dt,dd,em,font,hr,i,kbd,li,q,span,strikeout,strong,sub,sup,u",pasteHandlers:[],plugins:{},urlProtocol:!1,minimalLinks:!1,defaultLinkTarget:void 0,svgPath:null},writable:!1,enumerable:!0,configurable:!1}),function(e,t,n,o){"use strict";var a="tbwconfirm",r="tbwcancel";o.fn.trumbowyg=function(e,t){var n="trumbowyg";if(e===Object(e)||!e)return this.each((function(){o(this).data(n)||o(this).data(n,new i(this,e))}));if(1===this.length)try{var a=o(this).data(n);switch(e){case"execCmd":return a.execCmd(t.cmd,t.param,t.forceCss,t.skipTrumbowyg);case"openModal":return a.openModal(t.title,t.content);case"closeModal":return a.closeModal();case"openModalInsert":return a.openModalInsert(t.title,t.fields,t.callback);case"saveRange":return a.saveRange();case"getRange":return a.range;case"getRangeText":return a.getRangeText();case"restoreRange":return a.restoreRange();case"enable":return a.setDisabled(!1);case"disable":return a.setDisabled(!0);case"toggle":return a.toggle();case"destroy":return a.destroy();case"empty":return a.empty();case"html":return a.html(t)}}catch(e){}return!1};var i=function(a,r){var i=this,s="trumbowyg-icons",l=o.trumbowyg;i.doc=a.ownerDocument||n,i.$ta=o(a),i.$c=o(a),null!=(r=r||{}).lang||null!=l.langs[r.lang]?i.lang=o.extend(!0,{},l.langs.en,l.langs[r.lang]):i.lang=l.langs.en,i.hideButtonTexts=null!=l.hideButtonTexts?l.hideButtonTexts:r.hideButtonTexts;var d=null!=l.svgPath?l.svgPath:r.svgPath;if(i.hasSvg=!1!==d,!1!==d&&(l.svgAbsoluteUseHref||0===o("#trumbowyg-icons",i.doc).length)){if(null==d)o("script[src]").each((function(e,t){var n=t.src,o=n.match("trumbowyg(.min)?.js");null!=o&&(d=n.substring(0,n.indexOf(o[0]))+"ui/icons.svg")}));if(null==d)console.warn("You must define svgPath: https://goo.gl/CfTY9U");else if(!l.svgAbsoluteUseHref){var c=i.doc.createElement("div");c.id=s,i.doc.body.insertBefore(c,i.doc.body.childNodes[0]),o.ajax({async:!0,type:"GET",contentType:"application/x-www-form-urlencoded; charset=UTF-8",dataType:"xml",crossDomain:!0,url:d,data:null,beforeSend:null,complete:null,success:function(e){c.innerHTML=(new XMLSerializer).serializeToString(e.documentElement)}})}}var u=i.doc.querySelector("base")?t.location.href.split(/[?#]/)[0]:"";i.svgPath=l.svgAbsoluteUseHref?d:u;var g=i.lang.header,f=function(){return(t.chrome||t.Intl&&Intl.v8BreakIterator)&&"CSS"in t};i.btnsDef={viewHTML:{fn:"toggle",class:"trumbowyg-not-disable"},undo:{isSupported:f,key:"Z"},redo:{isSupported:f,key:"Y"},p:{fn:"formatBlock"},blockquote:{fn:"formatBlock"},h1:{fn:"formatBlock",title:g+" 1"},h2:{fn:"formatBlock",title:g+" 2"},h3:{fn:"formatBlock",title:g+" 3"},h4:{fn:"formatBlock",title:g+" 4"},h5:{fn:"formatBlock",title:g+" 5"},h6:{fn:"formatBlock",title:g+" 6"},subscript:{tag:"sub"},superscript:{tag:"sup"},bold:{key:"B",tag:"b"},italic:{key:"I",tag:"i"},underline:{tag:"u"},strikethrough:{tag:"strike"},strong:{fn:"bold",key:"B"},em:{fn:"italic",key:"I"},del:{fn:"strikethrough"},createLink:{key:"K",tag:"a"},unlink:{},insertImage:{},justifyLeft:{tag:"left",forceCss:!0},justifyCenter:{tag:"center",forceCss:!0},justifyRight:{tag:"right",forceCss:!0},justifyFull:{tag:"justify",forceCss:!0},unorderedList:{fn:"insertUnorderedList",tag:"ul"},orderedList:{fn:"insertOrderedList",tag:"ol"},horizontalRule:{fn:"insertHorizontalRule"},removeformat:{},fullscreen:{class:"trumbowyg-not-disable"},close:{fn:"destroy",class:"trumbowyg-not-disable"},formatting:{dropdown:["p","blockquote","h1","h2","h3","h4"],ico:"p"},link:{dropdown:["createLink","unlink"]}},i.o=o.extend(!0,{},l.defaultOptions,r),i.o.hasOwnProperty("imgDblClickHandler")||(i.o.imgDblClickHandler=i.getDefaultImgDblClickHandler()),i.urlPrefix=i.setupUrlPrefix(),i.disabled=i.o.disabled||"TEXTAREA"===a.nodeName&&a.disabled,r.btns?i.o.btns=r.btns:i.o.semantic||(i.o.btns[3]=["bold","italic","underline","strikethrough"]),o.each(i.o.btnsDef,(function(e,t){i.addBtnDef(e,t)})),i.eventNamespace="trumbowyg-event",i.keys=[],i.tagToButton={},i.tagHandlers=[],i.pasteHandlers=[].concat(i.o.pasteHandlers),i.isIE=-1!==e.userAgent.indexOf("MSIE")||-1!==e.appVersion.indexOf("Trident/"),i.isMac=-1!==e.platform.toUpperCase().indexOf("MAC"),i.init()};i.prototype={DEFAULT_SEMANTIC_MAP:{b:"strong",i:"em",s:"del",strike:"del",div:"p"},init:function(){var e=this;e.height=e.$ta.height(),e.initPlugins();try{e.doc.execCommand("enableObjectResizing",!1,!1),e.doc.execCommand("defaultParagraphSeparator",!1,"p")}catch(e){}e.buildEditor(),e.buildBtnPane(),e.fixedBtnPaneEvents(),e.buildOverlay(),setTimeout((function(){e.disabled&&e.setDisabled(!0),e.$c.trigger("tbwinit")}))},addBtnDef:function(e,t){this.btnsDef[e]=o.extend(t,this.btnsDef[e]||{})},setupUrlPrefix:function(){var e=this.o.urlProtocol;if(e)return"string"!=typeof e?"https://":e.replace("://","")+"://"},buildEditor:function(){var e=this,n=e.o.prefix,a="";e.$box=o("
",{class:n+"box "+n+"editor-visible "+n+e.o.lang+" trumbowyg"}),e.isTextarea=e.$ta.is("textarea"),e.isTextarea?(a=e.$ta.val(),e.$ed=o("
"),e.$box.insertAfter(e.$ta).append(e.$ed,e.$ta)):(e.$ed=e.$ta,a=e.$ed.html(),e.$ta=o("
").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,a=e(t).closest("tr");if(e(t).closest("table").length>0){var n=e("