UNPKG

@firestitch/froala

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.

3 lines (2 loc) 7.83 kB
!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(r){"use strict";r=r&&r.hasOwnProperty("default")?r.default:r,Object.assign(r.DEFAULTS,{listAdvancedTypes:!0}),r.PLUGINS.lists=function(y){var I=y.$;function p(e){return'<span class="fr-open-'.concat(e.toLowerCase(),'"></span>')}function d(e){return'<span class="fr-close-'.concat(e.toLowerCase(),'"></span>')}function b(e){for(var t,a=e.length-1;0<=a;a--)for(t=a-1;0<=t;t--){if(I(e[t]).find(e[a]).length||e[t]==e[a]){e.splice(a,1);break}if(I(e[t]).contains(e[a])){e.splice(t,1);break}}var n=[];for(a=0;a<e.length;a++){var r,o=I(e[a]),l=e[a].parentNode,s=o.attr("class");o.before(d(l.tagName)),"LI"==l.parentNode.tagName?(o.before(d("LI")),o.after(p("LI"))):"OL"==l.parentNode.tagName?(o.before(d("OL")),o.after(p("OL"))):"UL"==l.parentNode.tagName?(o.before(d("UL")),o.after(p("UL"))):(r="",s&&(r+=' class="'.concat(s,'"')),s="rtl"==y.opts.direction||"rtl"==o.css("direction")?"margin-right":"margin-left",y.helpers.getPX(I(l).css(s))&&0<=(I(l).attr("style")||"").indexOf("".concat(s,":"))&&(r+=' style="'.concat(s,":").concat(y.helpers.getPX(I(l).css(s)),'px;"')),y.html.defaultTag()&&0===o.find(y.html.blockTagsQuery()).length&&o.wrapInner(y.html.defaultTag()+r),y.node.isEmpty(o.get(0),!0)||0!==o.find(y.html.blockTagsQuery()).length||("DIV"==l.parentNode.tagName&&y.html.defaultTag()?(o.prepend(p(y.html.defaultTag())),o.append(d(y.html.defaultTag()))):o.append("<br>")),o.append(p("LI")),o.prepend(d("LI"))),o.after(p(l.tagName)),"LI"==l.parentNode.tagName&&(l=l.parentNode.parentNode),n.indexOf(l)<0&&n.push(l)}for(a=0;a<n.length;a++){var i=I(n[a]),c=(c=(c=i.html()).replace(/<span class="fr-close-([a-z]*)"><\/span>/g,"</$1>")).replace(/<span class="fr-open-([a-z]*)"><\/span>/g,"<$1>");i.replaceWith(y.node.openTagString(i.get(0))+c+y.node.closeTagString(i.get(0)))}y.$el.find("li:empty").remove(),y.$el.find("ul:empty, ol:empty").remove(),y.clean.lists(),y.$el.find("ul:empty, ol:empty").remove(),y.html.wrap()}function e(e){if("indent"==e||"outdent"==e){var t=!1,a=y.selection.blocks(),n=[],r=a[0].previousSibling||a[0].parentElement;if("outdent"==e){if("UL"!=a[0].parentNode.tagName&&"UL"!=r.parentNode.tagName&&"OL"!=r.parentNode.tagName&&"LI"!=r.parentNode.tagName)return;if(!a[0].previousSibling&&"none"==r.parentNode.style.listStyleType){var o=r;for(y.selection.save();0<o.childNodes.length;)o.parentNode.parentNode.append(o.childNodes[0]);y.clean.lists(),y.selection.restore();return}}else{if("UL"!=a[0].parentElement.tagName&&"OL"!=a[0].parentElement.tagName&&"LI"!=a[0].parentElement.tagName)return;if(y.node.isBlock(a[0])&&"LI"!==a[0].tagName&&0<I(a[0]).parentsUntil(y.$el,"LI").length&&(a[0]=a[0].parentElement,r=a[0].parentElement),!a[0].previousSibling||"LI"!=a[0].previousSibling.tagName){var l=r;y.selection.save();for(var s="OL"==l.tagName?document.createElement("ol"):document.createElement("ul");0<l.childNodes.length;)s.append(l.childNodes[0]);r=document.createElement("li");s.append(r),l.append(s),y.clean.lists(),y.selection.restore();return}}for(var i=0;i<a.length;i++)"LI"==a[i].tagName?(t=!0,n.push(a[i])):"LI"==a[i].parentNode.tagName&&(t=!0,n.push(a[i].parentNode));if(t){if("indent"!=e)r=n,y.selection.save(),b(r);else{var c=n;y.selection.save();for(var p=0;p<c.length;p++){var d=c[p].previousSibling;if(d){var f=I(c[p]).find("> ul, > ol").last().get(0);if(f){var m=I(document.createElement("li"));if(f.childNodes.length)for(var g=f.childNodes[0].attributes,u=0;u<g.length;u++){var h=g[u];"style"===h.name&&(m[0].style.cssText+=h.value)}I(f).prepend(m);for(var N=y.node.contents(c[p])[0];N&&!y.node.isList(N);){var L=N.nextSibling;m.append(N),N=L}I(d).append(I(f)),I(c[p]).remove()}else{var f=I(d).find("> ul, > ol").last().get(0);(f?I(f):(f=I("<".concat(c[p].parentNode.tagName,">")),I(d).append(f),f)).append(I(c[p]))}}}y.clean.lists()}y.selection.restore()}}}return{_init:function(){y.events.on("commands.after",e),y.events.on("keydown",function(e){if(e.which==r.KEYCODE.TAB){for(var t=y.selection.blocks(),a=[],n=0;n<t.length;n++)"LI"==t[n].tagName?a.push(t[n]):"LI"==t[n].parentNode.tagName&&a.push(t[n].parentNode);if(1<a.length||a.length&&(y.selection.info(a[0]).atStart||y.node.isEmpty(a[0])))return e.preventDefault(),e.stopPropagation(),e.shiftKey?y.commands.outdent():y.commands.indent(),!1}},!0)},format:function(e,t){var a,n;for(y.html.syncInputs(),y.selection.save(),y.html.wrap(!0,!0,!0,!0),y.selection.restore(),n=y.selection.blocks(!0),a=0;a<n.length;a++)"LI"!=n[a].tagName&&"LI"==n[a].parentNode.tagName&&(n[a]=n[a].parentNode);if(y.selection.save(),function(e,t){for(var a=!0,n=0;n<e.length;n++){if("LI"!=e[n].tagName)return;e[n].parentNode.tagName!=t&&(a=!1)}return a}(n,e))t||b(n);else{for(var r=n,o=e,l=r,s=o,i=[],c=0;c<l.length;c++){var p=l[c].parentNode;"LI"==l[c].tagName&&p.tagName!=s&&i.indexOf(p)<0&&i.push(p)}for(var d=i.length-1;0<=d;d--){var f=I(i[d]);f.replaceWith("<".concat(s.toLowerCase()," ").concat(y.node.attributes(f.get(0)),">").concat(f.html(),"</").concat(s.toLowerCase(),">"))}var m,g=y.html.defaultTag(),u=null;r.length&&(m="rtl"==y.opts.direction||"rtl"==I(r[0]).css("direction")?"margin-right":"margin-left");for(var h=0;h<r.length;h++)if("TD"!=r[h].tagName&&"TH"!=r[h].tagName&&"LI"!=r[h].tagName){var N=y.helpers.getPX(I(r[h]).css(m))||0,L=0<(u=(r[h].style.marginLeft=null)===u?N:u)?"<".concat(o,' style="').concat(m,": ").concat(u,'px ">'):"<".concat(o,">"),v="</".concat(o,">");for(N-=u;0<N/y.opts.indentMargin;)L+="</".concat(o,">"),v+=v,N-=y.opts.indentMargin;g&&r[h].tagName.toLowerCase()==g?I(r[h]).replaceWith("".concat(L,"<li").concat(y.node.attributes(r[h]),">").concat(I(r[h]).html(),"</li>").concat(v)):I(r[h]).wrap("".concat(L,"<li></li>").concat(v))}y.clean.lists()}if(y.html.unwrap(),y.selection.restore(),t=t||"default"){for(n=y.selection.blocks(),a=0;a<n.length;a++)"LI"!=n[a].tagName&&"LI"==n[a].parentNode.tagName&&(n[a]=n[a].parentNode);for(a=0;a<n.length;a++)"LI"==n[a].tagName&&(I(n[a].parentNode).css("list-style-type","default"===t?"":t),0===(I(n[a].parentNode).attr("style")||"").length)&&I(n[a].parentNode).removeAttr("style")}},refresh:function(e,t){var a,n=I(y.selection.element());n.get(0)!=y.el&&(a=("LI"==(a=n.get(0)).tagName||!a.firstElementChild||"LI"==a.firstElementChild.tagName)&&("LI"==a.tagName||a.firstElementChild)?a.firstElementChild&&"LI"==a.firstElementChild.tagName?n.get(0).firstChild:n.get(0):n.parents("li").get(0))&&a.parentNode.tagName==t&&y.el.contains(a.parentNode)&&e.addClass("fr-active")}}},r.DefineIcon("formatOLSimple",{NAME:"list-ol",SVG_KEY:"orderedList"}),r.RegisterCommand("formatOLSimple",{title:"Ordered List",type:"button",options:{default:"Default",circle:"Circle",disc:"Disc",square:"Square"},refresh:function(e){this.lists.refresh(e,"OL")},callback:function(e,t){this.lists.format("OL",t)},plugin:"lists"}),r.RegisterCommand("formatUL",{title:"Unordered List",type:"button",hasOptions:function(){return this.opts.listAdvancedTypes},options:{default:"Default",circle:"Circle",disc:"Disc",square:"Square"},refresh:function(e){this.lists.refresh(e,"UL")},callback:function(e,t){this.lists.format("UL",t)},plugin:"lists"}),r.RegisterCommand("formatOL",{title:"Ordered List",hasOptions:function(){return this.opts.listAdvancedTypes},options:{default:"Default","lower-alpha":"Lower Alpha","lower-greek":"Lower Greek","lower-roman":"Lower Roman","upper-alpha":"Upper Alpha","upper-roman":"Upper Roman"},refresh:function(e){this.lists.refresh(e,"OL")},callback:function(e,t){this.lists.format("OL",t)},plugin:"lists"}),r.DefineIcon("formatUL",{NAME:"list-ul",SVG_KEY:"unorderedList"}),r.DefineIcon("formatOL",{NAME:"list-ol",SVG_KEY:"orderedList"})}); //# sourceMappingURL=lists.min.min.js.map