1 line
8.2 KiB
JavaScript
1 line
8.2 KiB
JavaScript
!function(){"use strict";var e=tinymce.util.Tools.resolve("tinymce.PluginManager");const t=e=>t=>(e=>{const t=typeof e;return null===e?"null":"object"===t&&Array.isArray(e)?"array":"object"===t&&(a=r=e,n=(s=String).prototype,n.isPrototypeOf(a)||(null===(l=r.constructor)||void 0===l?void 0:l.name)===s.name)?"string":t;var a,n;var r,s,l})(t)===e,a=t("string"),n=t("object"),r=t("array"),s=(l="function",e=>typeof e===l);var l;const o=(c=!1,()=>c);var c;var i=tinymce.util.Tools.resolve("tinymce.util.Tools");const m=e=>t=>t.options.get(e),u=e=>{const t=e.options.register;t("template_cdate_classes",{processor:"string",default:"cdate"}),t("template_mdate_classes",{processor:"string",default:"mdate"}),t("template_selected_content_classes",{processor:"string",default:"selcontent"}),t("template_preview_replace_values",{processor:"object"}),t("template_replace_values",{processor:"object"}),t("jtemplates",{processor:e=>a(e)||((e,t)=>{if(r(e)){for(let a=0,n=e.length;a<n;++a)if(!t(e[a]))return!1;return!0}return!1})(e,n)||s(e),default:[]}),t("template_cdate_format",{processor:"string",default:e.translate("%Y-%m-%d")}),t("template_mdate_format",{processor:"string",default:e.translate("%Y-%m-%d")})},p=m("template_cdate_classes"),d=m("template_mdate_classes"),h=m("template_selected_content_classes"),g=m("template_preview_replace_values"),v=m("template_replace_values"),y=m("jtemplates"),f=m("template_cdate_format"),_=m("template_mdate_format"),b=m("content_style"),M=m("content_css_cors"),T=m("body_class"),w=(e,t)=>{if((e=""+e).length<t)for(let a=0;a<t-e.length;a++)e="0"+e;return e},x=(e,t,a=new Date)=>{const n="Sun Mon Tue Wed Thu Fri Sat Sun".split(" "),r="Sunday Monday Tuesday Wednesday Thursday Friday Saturday Sunday".split(" "),s="Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec".split(" "),l="January February March April May June July August September October November December".split(" ");return t=(t=(t=(t=(t=(t=(t=(t=(t=(t=(t=(t=(t=(t=(t=(t=t.replace("%D","%m/%d/%Y")).replace("%r","%I:%M:%S %p")).replace("%Y",""+a.getFullYear())).replace("%y",""+a.getYear())).replace("%m",w(a.getMonth()+1,2))).replace("%d",w(a.getDate(),2))).replace("%H",""+w(a.getHours(),2))).replace("%M",""+w(a.getMinutes(),2))).replace("%S",""+w(a.getSeconds(),2))).replace("%I",""+((a.getHours()+11)%12+1))).replace("%p",a.getHours()<12?"AM":"PM")).replace("%B",""+e.translate(l[a.getMonth()]))).replace("%b",""+e.translate(s[a.getMonth()]))).replace("%A",""+e.translate(r[a.getDay()]))).replace("%a",""+e.translate(n[a.getDay()]))).replace("%%","%")};class S{constructor(e,t){this.tag=e,this.value=t}static some(e){return new S(!0,e)}static none(){return S.singletonNone}fold(e,t){return this.tag?t(this.value):e()}isSome(){return this.tag}isNone(){return!this.tag}map(e){return this.tag?S.some(e(this.value)):S.none()}bind(e){return this.tag?e(this.value):S.none()}exists(e){return this.tag&&e(this.value)}forall(e){return!this.tag||e(this.value)}filter(e){return!this.tag||e(this.value)?this:S.none()}getOr(e){return this.tag?this.value:e}or(e){return this.tag?this:e}getOrThunk(e){return this.tag?this.value:e()}orThunk(e){return this.tag?this:e()}getOrDie(e){if(this.tag)return this.value;throw new Error(null!=e?e:"Called getOrDie on None")}static from(e){return(e=>null==e)(e)?S.none():S.some(e)}getOrNull(){return this.tag?this.value:null}getOrUndefined(){return this.value}each(e){this.tag&&e(this.value)}toArray(){return this.tag?[this.value]:[]}toString(){return this.tag?`some(${this.value})`:"none()"}}S.singletonNone=new S(!1);const C=(e,t)=>((e,t,a)=>{for(let n=0,r=e.length;n<r;n++){const r=e[n];if(t(r,n))return S.some(r);if(a(r,n))break}return S.none()})(e,t,o),O=Object.hasOwnProperty,j=(e,t)=>O.call(e,t);var A=tinymce.util.Tools.resolve("tinymce.html.Serializer");const D={'"':""","<":"<",">":">","&":"&","'":"'"},I=e=>e.replace(/["'<>&]/g,(e=>{return(t=D,a=e,j(t,a)?S.from(t[a]):S.none()).getOr(e);var t,a})),N=(e,t,a)=>((e,t)=>{for(let a=0,n=e.length;a<n;a++)if(t(e[a],a))return!0;return!1})(a.split(/\s+/),(a=>e.hasClass(t,a))),k=(e,t)=>A({validate:!0},e.schema).serialize(e.parser.parse(t,{insert:!0})),P=(e,t)=>(i.each(t,((t,a)=>{s(t)&&(t=t(a)),e=e.replace(new RegExp("\\{\\$"+(a.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")+"\\}"),"g"),t)})),e),E=(e,t)=>{const a=e.dom,n=v(e);i.each(a.select("*",t),(e=>{i.each(n,((t,n)=>{a.hasClass(e,n)&&s(t)&&t(e)}))}))},H=(e,t,a)=>{const n=e.dom,r=e.selection.getContent();a=P(a,v(e));let s=n.create("div",{},k(e,a));const l=n.select(".mceTmpl",s);l&&l.length>0&&(s=n.create("div"),s.appendChild(l[0].cloneNode(!0))),i.each(n.select("*",s),(t=>{N(n,t,p(e))&&(t.innerHTML=x(e,f(e))),N(n,t,d(e))&&(t.innerHTML=x(e,_(e))),N(n,t,h(e))&&(t.innerHTML=r)})),E(e,s),e.execCommand("mceInsertContent",!1,s.innerHTML),e.addVisual()};var L=tinymce.util.Tools.resolve("tinymce.Env");const J=(e,t)=>{const a=e=>((e,t)=>{const a=e.length,n=new Array(a);for(let r=0;r<a;r++){const a=e[r];n[r]=t(a,r)}return n})(e,(e=>({text:e.text,value:e.text}))),n=(e,t)=>C(e,(e=>e.text===t)),r=t=>{e.windowManager.alert("Could not load the specified template.",(()=>t.focus("template")))},s=e=>e.value.url.fold((()=>Promise.resolve(e.value.content.getOr(""))),(e=>fetch(e).then((e=>e.ok?e.text():Promise.reject())))),l=(e,t)=>(a,l)=>{if("template"===l.name){const l=a.getData().template;n(e,l).each((e=>{a.block("Loading..."),s(e).then((n=>{t(a,e,n)})).catch((()=>{t(a,e,""),a.setEnabled("save",!1),r(a)}))}))}},o=t=>a=>{const l=a.getData();n(t,l.template).each((t=>{s(t).then((t=>{e.execCommand("mceInsertTemplate",!1,t),a.close()})).catch((()=>{a.setEnabled("save",!1),r(a)}))}))};(()=>{if(!t||0===t.length){const t=e.translate("No templates defined.");return e.notificationManager.open({text:t,type:"info"}),S.none()}return S.from(i.map(t,((e,t)=>{const a=e=>void 0!==e.url;return{selected:0===t,text:e.title,value:{url:a(e)?S.from(e.url):S.none(),content:a(e)?S.none():S.from(e.content),description:e.description}}})))})().each((t=>{const n=a(t),c=(e,a)=>({title:"Insert Template",size:"large",body:{type:"panel",items:e},initialData:a,buttons:[{type:"cancel",name:"cancel",text:"Cancel"},{type:"submit",name:"save",text:"Save",primary:!0}],onSubmit:o(t),onChange:l(t,m)}),m=(t,a,r)=>{const s=((e,t)=>{var a;if(-1===t.indexOf("<html>")){let n="";const r=null!==(a=b(e))&&void 0!==a?a:"",s=M(e)?' crossorigin="anonymous"':"";i.each(e.contentCSS,(t=>{n+='<link type="text/css" rel="stylesheet" href="'+e.documentBaseURI.toAbsolute(t)+'"'+s+">"})),r&&(n+='<style type="text/css">'+r+"</style>");const l=T(e),o=e.dom.encode,c='<script>document.addEventListener && document.addEventListener("click", function(e) {for (var elm = e.target; elm; elm = elm.parentNode) {if (elm.nodeName === "A" && !('+(L.os.isMacOS()||L.os.isiOS()?"e.metaKey":"e.ctrlKey && !e.altKey")+")) {e.preventDefault();}}}, false);<\/script> ",m=e.getBody().dir,u=m?' dir="'+o(m)+'"':"";t='<!DOCTYPE html><html><head><base href="'+o(e.documentBaseURI.getURI())+'">'+n+c+'</head><body class="'+o(l)+'"'+u+">"+k(e,t)+"</body></html>"}return P(t,g(e))})(e,r),l=[{type:"selectbox",name:"template",label:"Templates",items:n},{type:"htmlpanel",html:`<p aria-live="polite">${I(a.value.description)}</p>`},{label:"Preview",type:"iframe",name:"preview",sandboxed:!1,transparent:!1}],o={template:a.text,preview:s};t.unblock(),t.redial(c(l,o)),t.focus("template")},u=e.windowManager.open(c([],{template:"",preview:""}));u.block("Loading..."),s(t[0]).then((e=>{m(u,t[0],e)})).catch((()=>{m(u,t[0],""),u.setEnabled("save",!1),r(u)}))}))},Y=e=>{e.addCommand("mceInsertTemplate",function(e,...t){return(...a)=>{const n=t.concat(a);return e.apply(null,n)}}(H,e)),e.addCommand("mceTemplate",((e,t)=>()=>{const n=y(e);s(n)?n(t):a(n)?fetch(n).then((e=>{e.ok&&e.json().then(t)})):t(n)})(e,(e=>t=>{J(e,t)})(e)))};e.add("jtemplate",(e=>(u(e),(e=>{const t=()=>e.execCommand("mceTemplate");e.ui.registry.addButton("jtemplate",{icon:"template",tooltip:"Insert template",onAction:t}),e.ui.registry.addMenuItem("jtemplate",{icon:"template",text:"Insert template...",onAction:t})})(e),Y(e),(e=>{e.on("PreProcess",(t=>{const a=e.dom,n=_(e);i.each(a.select("div",t.node),(t=>{a.hasClass(t,"mceTmpl")&&(i.each(a.select("*",t),(t=>{N(a,t,d(e))&&(t.innerHTML=x(e,n))})),E(e,t))}))}))})(e),{getMetadata:()=>({name:"Template (Joomla)",url:"https://www.joomla.org/"})})))}(); |