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) 4.63 kB
/*! * froala_editor v5.0.1 (https://www.froala.com/wysiwyg-editor) * License https://froala.com/wysiwyg-editor/terms/ * Copyright 2014-2026 Froala Labs */ !function(t,a){"object"==typeof exports&&"undefined"!=typeof module?a(require("froala-editor")):"function"==typeof define&&define.amd?define(["froala-editor"],a):a(("undefined"!=typeof globalThis?globalThis:t||self).FroalaEditor)}(this,function(t){"use strict";Object.assign(t.DEFAULTS,{paragraphFormat:{N:"Normal",H1:"Heading 1",H2:"Heading 2",H3:"Heading 3",H4:"Heading 4",PRE:"Code"},paragraphFormatSelection:!1,paragraphDefaultSelection:"Paragraph Format"}),t.PLUGINS.paragraphFormat=function(f){var g=f.$;return{apply:function(t){"N"==t&&(t=f.html.defaultTag()),f.selection.save(),f.html.wrap(!0,!0,!f.opts.paragraphFormat.BLOCKQUOTE,!0,!0),f.selection.restore();var a=f.helpers.selectionBlocks([".fr-code-snippet"]);f.selection.save(),f.$el.find("pre").attr("skip",!0);for(var e,r,o=0;o<a.length;o++)if(a[o].tagName!=t&&!f.node.isList(a[o])){var n,i=g(a[o]);if("LI"==a[o].tagName){h=d=m=s=l=p=void 0;var p=i,l=t,s=f.html.defaultTag();if(l&&l.toLowerCase()!=s)if(0<p.find("ul, ol").length)for(var m=g("<"+l+">"),d=(p.prepend(m),f.node.contents(p.get(0))[0]);d&&["UL","OL"].indexOf(d.tagName)<0;){var h=d.nextSibling;m.append(d),d=h}else p.html("<"+l+">"+p.html()+"</"+l+">")}else"LI"==a[o].parentNode.tagName&&a[o]?(s=i,l=t,p=void 0,p=f.html.defaultTag(),l&&l.toLowerCase()!=p||(l='div class="fr-temp-div"'),s.replaceWith(g("<"+l+">").html(s.html()))):0<=["TD","TH"].indexOf(a[o].parentNode.tagName)?(e=i,r=t,n=void 0,n=f.html.defaultTag(),(r=r||'div class="fr-temp-div"'+(f.node.isEmpty(e.get(0),!0)?' data-empty="true"':"")).toLowerCase()==n?(f.node.isEmpty(e.get(0),!0)||e.append("<br/>"),e.replaceWith(e.html())):e.replaceWith(g("<"+r+">").html(e.html()))):("PRE"===t&&null===i[0].nextSibling&&(n=g("<br>"),i[0].after(n[0])),r=i,("H1"==(e=(e=t)||'div class="fr-temp-div"'+(f.node.isEmpty(r.get(0),!0)?' data-empty="true"':""))||"H2"==e||"H3"==e||"H4"==e||"H5"==e)&&-1<f.node.attributes(r.get(0)).indexOf("font-size:")?r.replaceWith(g("<"+e+" "+f.node.attributes(r.get(0)).replace(/font-size:[0-9]+px;?/,"")+">").html(r.html()).removeAttr("data-empty")):r.replaceWith(g("<"+e+" "+f.node.attributes(r.get(0))+">").html(r.html()).removeAttr("data-empty")))}f.$el.find('pre:not([skip="true"]) + pre:not([skip="true"])').each(function(){g(this).prev().append("<br>"+g(this).html()),g(this).remove()}),f.$el.find("pre").removeAttr("skip"),f.html.unwrap(),f.selection.restore()},refreshOnShow:function(t,a){var e,r,o=f.selection.blocks();(o.length?(o=o[0],e="N",r=f.html.defaultTag(),o.tagName.toLowerCase()!=r&&o!=f.el&&(e=o.tagName),a.find('.fr-command[data-param1="'+e+'"]')):a.find('.fr-command[data-param1="N"]')).addClass("fr-active").attr("aria-selected",!0)},refresh:function(t){var a,e,r;f.opts.paragraphFormatSelection&&((a=f.selection.blocks()).length?(a=a[0],e="N",r=f.html.defaultTag(),a.tagName.toLowerCase()!=r&&a!=f.el&&(e=a.tagName),0<=["LI","TD","TH"].indexOf(e)&&(e="N"),t.find(">span").text(f.language.translate(f.opts.paragraphFormat[e]))):t.find(">span").text(f.language.translate(f.opts.paragraphFormat.N)))}}},t.RegisterCommand("paragraphFormat",{type:"dropdown",displaySelection:function(t){return t.opts.paragraphFormatSelection},defaultSelection:function(t){return t.language.translate(t.opts.paragraphDefaultSelection)},displaySelectionWidth:80,html:function(){var t,a='<ul class="fr-dropdown-list" role="presentation">',e=this.opts.paragraphFormat;for(t in e)e.hasOwnProperty(t)&&(this.shortcuts.get("paragraphFormat."+t),a+='<li role="presentation"><'+("N"==t?this.html.defaultTag()||"DIV":t)+' style="padding: 0 !important; margin: 0 !important; border: 0 !important; background-color: transparent !important; '+("PRE"==t||"N"==t?"font-size: 15px":"font-weight: bold !important; ")+("H1"==t?"font-size: 2em !important; ":"")+("H2"==t?"font-size: 1.5em !important; ":"")+("H3"==t?"font-size: 1.17em !important; ":"")+("H4"==t?"font-size: 15px !important;":"")+'" role="presentation"><a class="fr-command" tabIndex="-1" role="option" data-cmd="paragraphFormat" data-param1="'+t+'" title="'+this.language.translate(e[t])+'">'+this.language.translate(e[t])+"</a></"+("N"==t?this.html.defaultTag()||"DIV":t)+"></li>");return a+="</ul>"},title:"Paragraph Format",callback:function(t,a){this.paragraphFormat.apply(a)},refresh:function(t){this.paragraphFormat.refresh(t)},refreshOnShow:function(t,a){this.paragraphFormat.refreshOnShow(t,a)},plugin:"paragraphFormat"}),t.DefineIcon("paragraphFormat",{NAME:"paragraph",SVG_KEY:"paragraphFormat"})});