text: /*!
   * froala_editor v2.0.5 (https://www.froala.com/wysiwyg-editor)
   * License https://froala.com/wysiwyg-editor/terms
   * Copyright 2014-2015 Froala Labs
   */
  
  !function(a){"function"==typeof define&&define.amd?define(["jquery"],a):"object"==typeof module&&module.exports?module.exports=function(b,c){return void 0===c&&(c="undefined"!=typeof window?require("jquery"):require("jquery")(b)),a(c),c}:a(jQuery)}(function(a){"use strict";a.extend(a.FroalaEditor.POPUP_TEMPLATES,{emoticons:"[_BUTTONS_][_EMOTICONS_]"}),a.extend(a.FroalaEditor.DEFAULTS,{emoticonsStep:8,emoticonsSet:[{code:"&#x1f600;",desc:"Grinning face"},{code:"&#x1f601;",desc:"Grinning face with smiling eyes"},{code:"&#x1f602;",desc:"Face with tears of joy"},{code:"&#x1f603;",desc:"Smiling face with open mouth"},{code:"&#x1f604;",desc:"Smiling face with open mouth and smiling eyes"},{code:"&#x1f605;",desc:"Smiling face with open mouth and cold sweat"},{code:"&#x1f606;",desc:"Smiling face with open mouth and tightly-closed eyes"},{code:"&#x1f607;",desc:"Smiling face with halo"},{code:"&#x1f608;",desc:"Smiling face with horns"},{code:"&#x1f609;",desc:"Winking face"},{code:"&#x1f60a;",desc:"Smiling face with smiling eyes"},{code:"&#x1f60b;",desc:"Face savoring delicious food"},{code:"&#x1f60c;",desc:"Relieved face"},{code:"&#x1f60d;",desc:"Smiling face with heart-shaped eyes"},{code:"&#x1f60e;",desc:"Smiling face with sunglasses"},{code:"&#x1f60f;",desc:"Smirking face"},{code:"&#x1f610;",desc:"Neutral face"},{code:"&#x1f611;",desc:"Expressionless face"},{code:"&#x1f612;",desc:"Unamused face"},{code:"&#x1f613;",desc:"Face with cold sweat"},{code:"&#x1f614;",desc:"Pensive face"},{code:"&#x1f615;",desc:"Confused face"},{code:"&#x1f616;",desc:"Confounded face"},{code:"&#x1f617;",desc:"Kissing face"},{code:"&#x1f618;",desc:"Face throwing a kiss"},{code:"&#x1f619;",desc:"Kissing face with smiling eyes"},{code:"&#x1f61a;",desc:"Kissing face with closed eyes"},{code:"&#x1f61b;",desc:"Face with stuck out tongue"},{code:"&#x1f61c;",desc:"Face with stuck out tongue and winking eye"},{code:"&#x1f61d;",desc:"Face with stuck out tongue and tightly-closed eyes"},{code:"&#x1f61e;",desc:"Disappointed face"},{code:"&#x1f61f;",desc:"Worried face"},{code:"&#x1f620;",desc:"Angry face"},{code:"&#x1f621;",desc:"Pouting face"},{code:"&#x1f622;",desc:"Crying face"},{code:"&#x1f623;",desc:"Persevering face"},{code:"&#x1f624;",desc:"Face with look of triumph"},{code:"&#x1f625;",desc:"Disappointed but relieved face"},{code:"&#x1f626;",desc:"Frowning face with open mouth"},{code:"&#x1f627;",desc:"Anguished face"},{code:"&#x1f628;",desc:"Fearful face"},{code:"&#x1f629;",desc:"Weary face"},{code:"&#x1f62a;",desc:"Sleepy face"},{code:"&#x1f62b;",desc:"Tired face"},{code:"&#x1f62c;",desc:"Grimacing face"},{code:"&#x1f62d;",desc:"Loudly crying face"},{code:"&#x1f62e;",desc:"Face with open mouth"},{code:"&#x1f62f;",desc:"Hushed face"},{code:"&#x1f630;",desc:"Face with open mouth and cold sweat"},{code:"&#x1f631;",desc:"Face screaming in fear"},{code:"&#x1f632;",desc:"Astonished face"},{code:"&#x1f633;",desc:"Flushed face"},{code:"&#x1f634;",desc:"Sleeping face"},{code:"&#x1f635;",desc:"Dizzy face"},{code:"&#x1f636;",desc:"Face without mouth"},{code:"&#x1f637;",desc:"Face with medical mask"}],emoticonsButtons:["emoticonsBack","|"]}),a.FroalaEditor.PLUGINS.emoticons=function(b){function c(){var a=b.$tb.find('.fr-command[data-cmd="emoticons"]'),c=b.popups.get("emoticons");if(c||(c=e()),!c.hasClass("fr-active")){b.popups.refresh("emoticons"),b.popups.setContainer("emoticons",b.$tb);var d=a.offset().left+a.outerWidth()/2,f=a.offset().top+(b.opts.toolbarBottom?10:a.outerHeight()-10);b.popups.show("emoticons",d,f,a.outerHeight())}}function d(){b.popups.hide("emoticons")}function e(){var a="";b.opts.toolbarInline&&b.opts.emoticonsButtons.length>0&&(a='<div class="fr-buttons fr-emoticons-buttons">'+b.button.buildList(b.opts.emoticonsButtons)+"</div>");var c={buttons:a,emoticons:f()},d=b.popups.create("emoticons",c);return b.tooltip.bind(d,".fr-emoticon"),d}function f(){for(var a="<div>",c=0;c<b.opts.emoticonsSet.length;c++)0!==c&&c%b.opts.emoticonsStep===0&&(a+="<br>"),a+='<span class="fr-command fr-emoticon" data-cmd="insertEmoticon" title="'+b.language.translate(b.opts.emoticonsSet[c].desc)+'" data-param1="'+b.opts.emoticonsSet[c].code+'">'+b.opts.emoticonsSet[c].code+"</span>";return a+="</div>"}function g(c){b.html.insert('<span class="fr-emoticon">'+c+"</span>"+a.FroalaEditor.MARKERS,!0)}function h(){b.popups.hide("emoticons"),b.toolbar.showInline()}function i(){b.events.on("html.get",function(c){for(var d=0;d<b.opts.emoticonsSet.length;d++){var e=b.opts.emoticonsSet[d],f=a("<div>").html(e.code).text();c=c.split(f).join(e.code)}return c});var c=function(){if(!b.selection.isCollapsed())return!1;var c=b.selection.element(),d=b.selection.endElement();if(a(c).hasClass("fr-emoticon"))return c;if(a(d).hasClass("fr-emoticon"))return d;var e=b.selection.ranges(0),f=e.startContainer;if(f.nodeType==Node.ELEMENT_NODE&&f.childNodes.length>0&&e.startOffset>0){var g=f.childNodes[e.startOffset-1];if(a(g).hasClass("fr-emoticon"))return g}return!1};b.events.on("keydown",function(d){if(b.keys.isCharacter(d.which)&&b.selection.inEditor()){var e=b.selection.ranges(0),f=c();f&&(0===e.startOffset?a(f).before(a.FroalaEditor.MARKERS+a.FroalaEditor.INVISIBLE_SPACE):a(f).after(a.FroalaEditor.INVISIBLE_SPACE+a.FroalaEditor.MARKERS),b.selection.restore())}}),b.events.on("keyup",function(){for(var c=b.$el.get(0).querySelectorAll(".fr-emoticon"),d=0;d<c.length;d++)"undefined"!=typeof c[d].textContent&&0===c[d].textContent.replace(/\u200B/gi,"").length&&a(c[d]).remove()})}return{_init:i,insert:g,showEmoticonsPopup:c,hideEmoticonsPopup:d,back:h}},a.FroalaEditor.DefineIcon("emoticons",{NAME:"smile-o"}),a.FroalaEditor.RegisterCommand("emoticons",{title:"Emoticons",undo:!1,focus:!0,refreshOnCallback:!1,popup:!0,callback:function(){this.popups.isVisible("emoticons")?(this.$el.find(".fr-marker")&&(this.events.disableBlur(),this.selection.restore()),this.popups.hide("emoticons")):this.emoticons.showEmoticonsPopup()}}),a.FroalaEditor.RegisterCommand("insertEmoticon",{callback:function(a,b){this.emoticons.insert(b),this.emoticons.hideEmoticonsPopup()}}),a.FroalaEditor.DefineIcon("emoticonsBack",{NAME:"arrow-left"}),a.FroalaEditor.RegisterCommand("emoticonsBack",{title:"Back",undo:!1,focus:!1,back:!0,refreshAfterCallback:!1,callback:function(){this.emoticons.back()}})});