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) 5.23 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(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(require("jquery")):"function"==typeof define&&define.amd?define(["jquery"],e):e(t.jQuery)}(this,function(l){"use strict";var t=(l=l&&l.hasOwnProperty("default")?l["default"]:l).FE;Object.assign(t.POPUP_TEMPLATES,{"forms.edit":"[_BUTTONS_]","forms.update":"[_BUTTONS_][_TEXT_LAYER_]"}),Object.assign(t.DEFAULTS,{formEditButtons:["inputStyle","inputEdit"],formStyles:{"fr-rounded":"Rounded","fr-large":"Large"},formMultipleStyles:!0,formUpdateButtons:["inputBack","|"]}),t.PLUGINS.forms=function(a){var u;function t(t){t.preventDefault(),a.selection.clear(),l(this).data("mousedown",!0)}function e(t){l(this).data("mousedown")&&(t.stopPropagation(),l(this).removeData("mousedown"),i(u=this)),t.preventDefault()}function o(){a.$el.find("input, textarea, button").removeData("mousedown")}function n(){l(this).removeData("mousedown")}function r(){return u||null}function i(t){var e=a.popups.get("forms.edit");e||(e=function(){var t="";0<a.opts.formEditButtons.length&&(t='<div class="fr-buttons">'+a.button.buildList(a.opts.formEditButtons)+"</div>");var e={buttons:t},o=a.popups.create("forms.edit",e);return a.$wp&&a.events.$on(a.$wp,"scroll.link-edit",function(){r()&&a.popups.isVisible("forms.edit")&&i(r())}),o}());var o=l(u=t);a.popups.refresh("forms.edit"),a.popups.setContainer("forms.edit",a.$sc);var n=o.offset().left+o.outerWidth()/2,s=o.offset().top+o.outerHeight();a.popups.show("forms.edit",n,s,o.outerHeight())}function p(){var t=a.popups.get("forms.update"),e=r();if(e){var o=l(e);o.is("button")?t.find('input[type="text"][name="text"]').val(o.text()):t.find('input[type="text"][name="text"]').val(o.attr("placeholder"))}t.find('input[type="text"][name="text"]').trigger("change")}function f(){u=null}function d(t){if(t)return a.popups.onRefresh("forms.update",p),a.popups.onHide("forms.update",f),!0;var e="";1<=a.opts.formUpdateButtons.length&&(e='<div class="fr-buttons">'+a.button.buildList(a.opts.formUpdateButtons)+"</div>");var o="",n=0;o='<div class="fr-forms-text-layer fr-layer fr-active">',o+='<div class="fr-input-line"><input name="text" type="text" placeholder="Text" tabIndex="'+ ++n+'"></div>';var s={buttons:e,text_layer:o+='<div class="fr-action-buttons"><button class="fr-command fr-submit" data-cmd="updateInput" href="#" tabIndex="'+ ++n+'" type="button">'+a.language.translate("Update")+"</button></div></div>"};return a.popups.create("forms.update",s)}return{_init:function(){a.events.$on(a.$el,a._mousedown,"input, textarea, button",t),a.events.$on(a.$el,a._mouseup,"input, textarea, button",e),a.events.$on(a.$el,"touchmove","input, textarea, button",n),a.events.$on(a.$el,a._mouseup,o),a.events.$on(a.$win,a._mouseup,o),d(!0),a.events.$on(a.$el,"submit","form",function(t){return t.preventDefault(),!1})},updateInput:function(){var t=a.popups.get("forms.update"),e=r();if(e){var o=l(e),n=t.find('input[type="text"][name="text"]').val()||"";n.length&&(o.is("button")?o.text(n):o.attr("placeholder",n)),a.popups.hide("forms.update"),i(e)}},getInput:r,applyStyle:function(t,e,o){void 0===e&&(e=a.opts.formStyles),void 0===o&&(o=a.opts.formMultipleStyles);var n=r();if(!n)return!1;if(!o){var s=Object.keys(e);s.splice(s.indexOf(t),1),l(n).removeClass(s.join(" "))}l(n).toggleClass(t)},showUpdatePopup:function(){var t=r();if(t){var e=l(t),o=a.popups.get("forms.update");o||(o=d()),a.popups.isVisible("forms.update")||a.popups.refresh("forms.update"),a.popups.setContainer("forms.update",a.$sc);var n=e.offset().left+e.outerWidth()/2,s=e.offset().top+e.outerHeight();a.popups.show("forms.update",n,s,e.outerHeight())}},showEditPopup:i,back:function(){a.events.disableBlur(),a.selection.restore(),a.events.enableBlur();var t=r();t&&a.$wp&&("BUTTON"==t.tagName&&a.selection.restore(),i(t))}}},t.RegisterCommand("updateInput",{undo:!1,focus:!1,title:"Update",callback:function(){this.forms.updateInput()}}),t.DefineIcon("inputStyle",{NAME:"magic"}),t.RegisterCommand("inputStyle",{title:"Style",type:"dropdown",html:function(){var t='<ul class="fr-dropdown-list">',e=this.opts.formStyles;for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&(t+='<li><a class="fr-command" tabIndex="-1" data-cmd="inputStyle" data-param1="'+o+'">'+this.language.translate(e[o])+"</a></li>");return t+="</ul>"},callback:function(t,e){var o=this.forms.getInput();o&&(this.forms.applyStyle(e),this.forms.showEditPopup(o))},refreshOnShow:function(t,e){var o=this.forms.getInput();if(o){var n=l(o);e.find(".fr-command").each(function(){var t=l(this).data("param1");l(this).toggleClass("fr-active",n.hasClass(t))})}}}),t.DefineIcon("inputEdit",{NAME:"edit"}),t.RegisterCommand("inputEdit",{title:"Edit Button",undo:!1,refreshAfterCallback:!1,callback:function(){this.forms.showUpdatePopup()}}),t.DefineIcon("inputBack",{NAME:"arrow-left"}),t.RegisterCommand("inputBack",{title:"Back",undo:!1,focus:!1,back:!0,refreshAfterCallback:!1,callback:function(){this.forms.back()}}),t.RegisterCommand("updateInput",{undo:!1,focus:!1,title:"Update",callback:function(){this.forms.updateInput()}})});