UNPKG

froala-editor

Version:

The next generation Javascript WYSIWYG HTML rich text editor made by devs for devs. High performance and modern design make it easy to use for developers and loved by users.

7 lines (6 loc) 3.75 kB
/*! * froala_editor v4.5.1 (https://www.froala.com/wysiwyg-editor) * License https://froala.com/wysiwyg-editor/terms/ * Copyright 2014-2025 Froala Labs */ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(require("froala-editor")):"function"==typeof define&&define.amd?define(["froala-editor"],t):t(e.FroalaEditor)}(this,function(i){"use strict";(i=i&&i.hasOwnProperty("default")?i["default"]:i).PLUGINS.align=function(o){var s=o.$;return{apply:function c(e){var t=o.selection.element(),n=s(t).closest(".fr-table-selected"),i=s(t).parents("TD"),a="TD"===t.tagName||i.length&&o.el.contains(i.get(0));if(s(t).parents(".fr-img-caption").length)s(t).css("text-align",e);else if(n.length&&o.el.contains(n[0]))n.find("td").css("text-align",e);else if(a)o.node.isBlock(t)?s(t).css("text-align",e):i.css("text-align",e);else{o.selection.save(),o.html.wrap(!0,!0,!0,!0),o.selection.restore();for(var l=o.selection.blocks(),r=0;r<l.length;r++)s(l[r]).css("text-align",e).removeClass("fr-temp-div"),""===s(l[r]).attr("class")&&s(l[r]).removeAttr("class"),""===s(l[r]).attr("style")&&s(l[r]).removeAttr("style");o.selection.save(),o.html.unwrap(),o.selection.restore()}},refresh:function i(e){var t=o.selection.blocks();if(t.length){var n=o.helpers.getAlignment(s(t[0]));e.find("> *").first().replaceWith(o.icon.create("align-".concat(n)))}},refreshOnShow:function a(e,t){var n=o.selection.blocks();if(n.length){var i=o.helpers.getAlignment(s(n[0]));t.find('a.fr-command[data-param1="'.concat(i,'"]')).addClass("fr-active").attr("aria-selected",!0)}},refreshForToolbar:function l(e){var t=o.selection.blocks();if(t.length){var n=o.helpers.getAlignment(s(t[0]));n=n.charAt(0).toUpperCase()+n.slice(1),"align".concat(n)===e.attr("data-cmd")&&e.addClass("fr-active")}}}},i.DefineIcon("align",{NAME:"align-left",SVG_KEY:"alignLeft"}),i.DefineIcon("align-left",{NAME:"align-left",SVG_KEY:"alignLeft"}),i.DefineIcon("align-right",{NAME:"align-right",SVG_KEY:"alignRight"}),i.DefineIcon("align-center",{NAME:"align-center",SVG_KEY:"alignCenter"}),i.DefineIcon("align-justify",{NAME:"align-justify",SVG_KEY:"alignJustify"}),i.RegisterCommand("align",{type:"dropdown",title:"Align",options:{left:"Align Left",center:"Align Center",right:"Align Right",justify:"Align Justify"},html:function(){var e='<ul class="fr-dropdown-list" role="presentation">',t=i.COMMANDS.align.options;for(var n in t)t.hasOwnProperty(n)&&(e+='<li role="presentation"><a class="fr-command fr-title" tabIndex="-1" role="option" data-cmd="align"data-param1="\n '.concat(n,'" title="').concat(this.language.translate(t[n]),'">').concat(this.icon.create("align-".concat(n)),'<span class="fr-sr-only">\n ').concat(this.language.translate(t[n]),"</span></a></li>"));return e+="</ul>"},callback:function(e,t){this.align.apply(t)},refresh:function(e){this.align.refresh(e)},refreshOnShow:function(e,t){this.align.refreshOnShow(e,t)},plugin:"align"}),i.RegisterCommand("alignLeft",{type:"button",icon:"align-left",title:"Align Left",callback:function(){this.align.apply("left")},refresh:function(e){this.align.refreshForToolbar(e)},plugin:"align"}),i.RegisterCommand("alignRight",{type:"button",icon:"align-right",title:"Align Right",callback:function(){this.align.apply("right")},refresh:function(e){this.align.refreshForToolbar(e)},plugin:"align"}),i.RegisterCommand("alignCenter",{type:"button",icon:"align-center",title:"Align Center",callback:function(){this.align.apply("center")},refresh:function(e){this.align.refreshForToolbar(e)},plugin:"align"}),i.RegisterCommand("alignJustify",{type:"button",icon:"align-justify",title:"Align Justify",callback:function(){this.align.apply("justify")},refresh:function(e){this.align.refreshForToolbar(e)},plugin:"align"})});