UNPKG

tinymce-plugin

Version:
7 lines (6 loc) 4.78 kB
/*! * @plugin @tinymce-plugin/tp-extendgroups * @version 0.0.9 (2022-5-5) * @description 扩展组件 * @copyright (2022) Five(Li Hailong) https://github.com/tinymce-plugin/tp-extendgroups */(function(){"use strict";var T=function(t){return Object.assign({alignmentdrop:{icon:"align-left",tooltip:"alignment",isSelect:!0,type:"choiceitem",styleSelector:"text-align",onAction:function(c,e){c.formatter.apply("align"+e)},items:[{icon:"align-left",text:"\u5C45\u5DE6\u5BF9\u9F50",value:"left"},{icon:"align-center",text:"\u5C45\u4E2D\u5BF9\u9F50",value:"center"},{icon:"align-right",text:"\u5C45\u53F3\u5BF9\u9F50",value:"right"},{icon:"align-justify",text:"\u4E24\u7AEF\u5BF9\u9F50",value:"justify"}]}},t.getParam("tp_extend_groups",{},Object))},F=function(t){return t.getParam("tp_extend_groups_addicon",{},Object)},p="",r=tinymce.util.Tools.resolve("tinymce.util.Tools"),h=function(t,c,e){t.undoManager.transact(function(){t.focus(),e(t,c)})},s={isActive:!1},y={createState:function(t){var c=new Date().getTime();s[c]=[],t.stateId=c},setState:function(t,c){s[t]=c},getState:function(t){return s[t]}},w=p.tp$.Tools,g=w.selection.cell,A=function(t){return t.length>0?typeof t[0]=="string"?t[0]:t[0].value:""},S=function(t,c,e){t.execCommand(c,e)},d=function(t,c){return t.selector?[""+t.selector]:['*[style*="'+(c?t.styleSelector+": "+c:t.styleSelector)+'"]','*[data-mce-style*="'+(c?t.styleSelector+": "+c:t.styleSelector)+'"]']},C=function(t){var c=t.value.split(" ");y.createState(t),r.map(c,function(e,u){s[t.stateId].push(g(!1)),setTimeout(function(){p.selection.selectorChangedWithUnbind(d(t,e).join(","),s[t.stateId][u].set).unbind},2e3)})},M=function(t,c,e){var u=e.items;r.map(u,function(i){switch(i.type){case"selectItem":C(i);break}})},$=function(t,c,e){var u=e.items;e.styleSelector&&(y.createState(e),r.map(u,function(i,l){s[e.stateId].push(g(!1)),setTimeout(function(){p.selection.selectorChangedWithUnbind(d(e,i.value).join(","),s[e.stateId][l].set).unbind},2e3)}))},B=function(t,c,e){var u=e.items,i=g(A(e.items));t.ui.registry.addSplitButton(c,{icon:e.icon,tooltip:e.tooltip,select:function(a){return e.isSelect?a===i.get():!1},fetch:function(a){a(r.map(u,function(o,n){return s[e.stateId][n].get()&&i.set(o.value),{type:"choiceitem",icon:o.icon,text:o.text,value:o.value}}))},onAction:typeof e.onAction=="function"?function(a){h(t,i.getAction(),e.onAction)}:function(a){l(t,i.getAction())},onItemAction:typeof e.onAction=="function"?function(a,o){i.set(o,o),h(t,o,e.onAction)}:function(a,o){i.set(o,o),l(t,o)}});var l=function(a,o){a.execCommand(o)}},E=function(t,c,e){var u=e.items;g(A(e.items)),t.ui.registry.addMenuButton(c,{icon:e.icon,tooltip:e.tooltip,fetch:function(o){o(r.map(u,function(n){switch(n.type){case"selectItem":return i(t,n);default:return l(t,n)}}))}});var i=function(o,n){var v=n.value.split(" "),f={type:"nestedmenuitem",text:n.text||"",getSubmenuItems:function(){return r.map(v,function(m,b){return{type:"togglemenuitem",text:m,value:m,active:s[n.stateId][b].get(),onAction:function(G){h(o,m,n.onAction)}}})}};return n.icon&&(f.icon=n.icon),f},l=function(o,n){return n.buttonApi&&n.buttonApi.setActive||(n.buttonApi={isActive:function(){return!1},setActive:""}),n.isActive=!1,n.selector||n.styleSelector?{type:"togglemenuitem",icon:n.icon||"",text:n.text,value:n.value,active:n.buttonApi.isActive(),onAction:function(v){S(o,n.value)},onSetup:n.buttonApi.setActive?function(){}:a(o,d(n),n)}:{type:"togglemenuitem",icon:n.icon||"",text:n.text,value:n.value,active:n.isActive,onAction:function(v){n.isActive=!n.isActive,S(o,n.value)}}},a=function(o,n,v){return v.buttonApi.setActive?{}:function(f){return v.buttonApi=f,o.selection.selectorChangedWithUnbind(n.join(","),f.setActive).bind}}},P=function(t,c,e){switch(p=t,e.type){case"choiceitem":B(t,c,e);break;case"togglemenuitem":E(t,c,e);break}},k=function(t,c,e){switch(e.type){case"choiceitem":$(t,c,e);break;case"togglemenuitem":M(t,c,e);break}};tinymce.util.Tools.resolve("tinymce.PluginManager");var x=tinymce.util.Tools.resolve("tinymce.util.Tools"),z=function(t){tinymce.PluginManager.add(t.registryName,function(c,e){var u=T(c),i=F(c);return x.each(u,function(l,a){P(c,a,l),k(c,a,l)}),x.each(i,function(l,a){c.ui.registry.addIcon(a,l)}),{getMetadata:function(){return{name:t.name,url:t.repo}}}})},I={name:"Extendgroups",registryName:"tpExtendgroups",title:"Extend Groups",repo:"https://github.com/tinymce-plugin/tp-extendgroups",icon:'<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M9.984 12.984v-1.969h12v1.969h-12zM9.984 18.984v-1.969h12v1.969h-12zM9.984 5.016h12v1.969h-12v-1.969zM6 6.984v10.031h2.484l-3.469 3.469-3.516-3.469h2.484v-10.031h-2.484l3.516-3.469 3.469 3.469h-2.484z"></path></svg>'};z(I);var D={opt:I};return D})();