UNPKG

froala-editor

Version:

A beautiful Javascript WYSIWYG HTML rich text editor. High performance and modern design make it easy to use for developers and loved by users.

7 lines (6 loc) 7.83 kB
/*! * froala_editor v2.8.3 (https://www.froala.com/wysiwyg-editor) * License https://froala.com/wysiwyg-editor/terms/ * Copyright 2014-2018 Froala Labs */ !function(o,t){"object"==typeof exports&&"undefined"!=typeof module?t(require("jquery")):"function"==typeof define&&define.amd?define(["jquery"],t):t(o.jQuery)}(this,function(o){"use strict";var m=(o=o&&o.hasOwnProperty("default")?o["default"]:o).FE;Object.assign(m.POPUP_TEMPLATES,{"colors.picker":"[_BUTTONS_][_TEXT_COLORS_][_BACKGROUND_COLORS_][_CUSTOM_COLOR_]"}),Object.assign(m.DEFAULTS,{colorsText:["#61BD6D","#1ABC9C","#54ACD2","#2C82C9","#9365B8","#475577","#CCCCCC","#41A85F","#00A885","#3D8EB9","#2969B0","#553982","#28324E","#000000","#F7DA64","#FBA026","#EB6B56","#E25041","#A38F84","#EFEFEF","#FFFFFF","#FAC51C","#F37934","#D14841","#B8312F","#7C706B","#D1D5D8","REMOVE"],colorsBackground:["#61BD6D","#1ABC9C","#54ACD2","#2C82C9","#9365B8","#475577","#CCCCCC","#41A85F","#00A885","#3D8EB9","#2969B0","#553982","#28324E","#000000","#F7DA64","#FBA026","#EB6B56","#E25041","#A38F84","#EFEFEF","#FFFFFF","#FAC51C","#F37934","#D14841","#B8312F","#7C706B","#D1D5D8","REMOVE"],colorsStep:7,colorsHEXInput:!0,colorsDefaultTab:"text",colorsButtons:["colorsBack","|","-"]}),m.PLUGINS.colors=function(C){var g=C.$;function t(){C.popups.hide("colors.picker")}function s(o){for(var t="text"==o?C.opts.colorsText:C.opts.colorsBackground,e='<div class="fr-color-set fr-'+o+"-color"+(C.opts.colorsDefaultTab==o||"text"!=C.opts.colorsDefaultTab&&"background"!=C.opts.colorsDefaultTab&&"text"==o?" fr-selected-set":"")+'">',r=0;r<t.length;r++)0!==r&&r%C.opts.colorsStep==0&&(e+="<br>"),"REMOVE"!=t[r]?e+='<span class="fr-command fr-select-color" style="background: '+t[r]+';" tabIndex="-1" aria-selected="false" role="button" data-cmd="'+o+'Color" data-param1="'+t[r]+'"><span class="fr-sr-only">'+C.language.translate("Color")+" "+t[r]+"&nbsp;&nbsp;&nbsp;</span></span>":e+='<span class="fr-command fr-select-color" data-cmd="'+o+'Color" tabIndex="-1" role="button" data-param1="REMOVE" title="'+C.language.translate("Clear Formatting")+'">'+C.icon.create("remove")+'<span class="fr-sr-only">'+C.language.translate("Clear Formatting")+"</span></span>";return e+"</div>"}function a(o){var t,e=C.popups.get("colors.picker"),r=g(C.selection.element());t="background"==o?"background-color":"color";var a=e.find(".fr-"+o+"-color .fr-select-color");for(a.find(".fr-selected-color").remove(),a.removeClass("fr-active-item"),a.not('[data-param1="REMOVE"]').attr("aria-selected",!1);r.get(0)!=C.el;){if("transparent"!=r.css(t)&&"rgba(0, 0, 0, 0)"!=r.css(t)){var s=e.find(".fr-"+o+'-color .fr-select-color[data-param1="'+C.helpers.RGBToHex(r.css(t))+'"]');s.append('<span class="fr-selected-color" aria-hidden="true">\uf00c</span>'),s.addClass("fr-active-item").attr("aria-selected",!0);break}r=r.parent()}var l=e.find(".fr-color-hex-layer input");l.length&&l.val(C.helpers.RGBToHex(r.css(t))).trigger("change")}function r(o){"REMOVE"!=o?C.format.applyStyle("background-color",C.helpers.HEXtoRGB(o)):C.format.removeStyle("background-color"),t()}function l(o){"REMOVE"!=o?C.format.applyStyle("color",C.helpers.HEXtoRGB(o)):C.format.removeStyle("color"),t()}return{showColorsPopup:function(){var o=C.$tb.find('.fr-command[data-cmd="color"]'),t=C.popups.get("colors.picker");if(t||(t=function(){var o,t='<div class="fr-buttons fr-colors-buttons">';C.opts.toolbarInline&&0<C.opts.colorsButtons.length&&(t+=C.button.buildList(C.opts.colorsButtons)),t+=(o='<div class="fr-colors-tabs fr-group">',o+='<span class="fr-colors-tab '+("background"==C.opts.colorsDefaultTab?"":"fr-selected-tab ")+'fr-command" tabIndex="-1" role="button" aria-pressed="'+("background"!=C.opts.colorsDefaultTab)+'" data-param1="text" data-cmd="colorChangeSet" title="'+C.language.translate("Text")+'">'+C.language.translate("Text")+"</span>",(o+='<span class="fr-colors-tab '+("background"==C.opts.colorsDefaultTab?"fr-selected-tab ":"")+'fr-command" tabIndex="-1" role="button" aria-pressed="'+("background"==C.opts.colorsDefaultTab)+'" data-param1="background" data-cmd="colorChangeSet" title="'+C.language.translate("Background")+'">'+C.language.translate("Background")+"</span>")+"</div></div>");var e="";C.opts.colorsHEXInput&&(e='<div class="fr-color-hex-layer fr-active fr-layer" id="fr-color-hex-layer-'+C.id+'"><div class="fr-input-line"><input maxlength="7" id="fr-color-hex-layer-text-'+C.id+'" type="text" placeholder="'+C.language.translate("HEX Color")+'" tabIndex="1" aria-required="true"></div><div class="fr-action-buttons"><button type="button" class="fr-command fr-submit" data-cmd="customColor" tabIndex="2" role="button">'+C.language.translate("OK")+"</button></div></div>");var b,r={buttons:t,text_colors:s("text"),background_colors:s("background"),custom_color:e},a=C.popups.create("colors.picker",r);return b=a,C.events.on("popup.tab",function(o){var t=g(o.currentTarget);if(!C.popups.isVisible("colors.picker")||!t.is("span"))return!0;var e=o.which,r=!0;if(m.KEYCODE.TAB==e){var a=b.find(".fr-buttons");r=!C.accessibility.focusToolbar(a,!!o.shiftKey)}else if(m.KEYCODE.ARROW_UP==e||m.KEYCODE.ARROW_DOWN==e||m.KEYCODE.ARROW_LEFT==e||m.KEYCODE.ARROW_RIGHT==e){if(t.is("span.fr-select-color")){var s=t.parent().find("span.fr-select-color"),l=s.index(t),c=C.opts.colorsStep,n=Math.floor(s.length/c),i=l%c,p=Math.floor(l/c),u=p*c+i,f=n*c;m.KEYCODE.ARROW_UP==e?u=((u-c)%f+f)%f:m.KEYCODE.ARROW_DOWN==e?u=(u+c)%f:m.KEYCODE.ARROW_LEFT==e?u=((u-1)%f+f)%f:m.KEYCODE.ARROW_RIGHT==e&&(u=(u+1)%f);var d=g(s.get(u));C.events.disableBlur(),d.focus(),r=!1}}else m.KEYCODE.ENTER==e&&(C.button.exec(t),r=!1);return!1===r&&(o.preventDefault(),o.stopPropagation()),r},!0),a}()),!t.hasClass("fr-active"))if(C.popups.setContainer("colors.picker",C.$tb),a(t.find(".fr-selected-tab").attr("data-param1")),o.isVisible()){var e=o.offset().left+o.outerWidth()/2,r=o.offset().top+(C.opts.toolbarBottom?10:o.outerHeight()-10);C.popups.show("colors.picker",e,r,o.outerHeight())}else C.position.forSelection(t),C.popups.show("colors.picker")},hideColorsPopup:t,changeSet:function(o,t){o.hasClass("fr-selected-tab")||(o.siblings().removeClass("fr-selected-tab").attr("aria-pressed",!1),o.addClass("fr-selected-tab").attr("aria-pressed",!0),o.parents(".fr-popup").find(".fr-color-set").removeClass("fr-selected-set"),o.parents(".fr-popup").find(".fr-color-set.fr-"+t+"-color").addClass("fr-selected-set"),a(t)),C.accessibility.focusPopup(o.parents(".fr-popup"))},background:r,customColor:function(){var o=C.popups.get("colors.picker"),t=o.find(".fr-color-hex-layer input");if(t.length){var e=t.val();"background"==o.find(".fr-selected-tab").attr("data-param1")?r(e):l(e)}},text:l,back:function(){C.popups.hide("colors.picker"),C.toolbar.showInline()}}},m.DefineIcon("colors",{NAME:"tint"}),m.RegisterCommand("color",{title:"Colors",undo:!1,focus:!0,refreshOnCallback:!1,popup:!0,callback:function(){this.popups.isVisible("colors.picker")?(this.$el.find(".fr-marker").length&&(this.events.disableBlur(),this.selection.restore()),this.popups.hide("colors.picker")):this.colors.showColorsPopup()},plugin:"colors"}),m.RegisterCommand("textColor",{undo:!0,callback:function(o,t){this.colors.text(t)}}),m.RegisterCommand("backgroundColor",{undo:!0,callback:function(o,t){this.colors.background(t)}}),m.RegisterCommand("colorChangeSet",{undo:!1,focus:!1,callback:function(o,t){var e=this.popups.get("colors.picker").find('.fr-command[data-cmd="'+o+'"][data-param1="'+t+'"]');this.colors.changeSet(e,t)}}),m.DefineIcon("colorsBack",{NAME:"arrow-left"}),m.RegisterCommand("colorsBack",{title:"Back",undo:!1,focus:!1,back:!0,refreshAfterCallback:!1,callback:function(){this.colors.back()}}),m.RegisterCommand("customColor",{title:"OK",undo:!0,callback:function(){this.colors.customColor()}}),m.DefineIcon("remove",{NAME:"eraser"})});