From 3ed547651c245cea089e840962e1d2ba4296657f Mon Sep 17 00:00:00 2001 From: Thomas Skerbis Date: Tue, 19 May 2026 13:07:45 +0200 Subject: [PATCH 1/3] 8.10.2 --- CHANGELOG.md | 15 +++++++++++++++ .../scripts/tinymce/plugins/link_yform/plugin.js | 4 ++-- .../tinymce/plugins/link_yform/plugin.min.js | 4 ++-- assets/scripts/tinymce/plugins/quote/plugin.js | 2 +- .../scripts/tinymce/plugins/quote/plugin.min.js | 2 +- .../vendor/tinymce/plugins/link_yform/plugin.js | 4 ++-- .../tinymce/plugins/link_yform/plugin.min.js | 4 ++-- assets/vendor/tinymce/plugins/quote/plugin.js | 2 +- assets/vendor/tinymce/plugins/quote/plugin.min.js | 2 +- custom_plugins/link_yform/build.js | 6 +++++- .../link_yform/dist/link_yform/plugin.js | 4 ++-- .../link_yform/dist/link_yform/plugin.min.js | 4 ++-- custom_plugins/quote/build.js | 6 +++++- package.yml | 2 +- scripts/build-plugins.js | 8 ++++++-- 15 files changed, 48 insertions(+), 21 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7e1707be..095a4b13 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,21 @@ Changelog ========= +Version 8.10.2 +--------------- + +### Span-Inline-Styles (Farbe) bleiben beim Speichern erhalten + +* TinyMCE 8 reduziert das ``-Schema serverseitig auf `[class|title]`, wodurch Inline-Styles wie `style="color:…"` beim Serialisieren entfernt wurden. +* Neu: In `assets/scripts/base.js` wird das Span-Schema in `PreInit` **und** `init` defensiv um `style|id|lang|dir|data-mce-*` ergänzt (`editor.schema.addValidElements(...)`), sodass Plugin-Reduktionen unsere Regel nicht mehr überschreiben. +* `for_footnotes` und `for_video` ergänzen ihre Span-Schema-Regeln jetzt **additiv** (`span[class|style|title|id|lang|dir|data-mce-*]`) statt das Schema auf `[class|title]` zu reduzieren. + +### Ladeoptimierung: `quote` und `link_yform` registrieren sich wieder zuverlässig + +* Die plugin-eigenen `build.js`-Skripte von `quote` und `link_yform` bündelten bisher `src/main/ts/Plugin.ts` als Entry-Point. Plugin.ts exportiert in der TinyMCE-Konvention jedoch nur die Setup-Funktion (`export default (): void => { … }`) – `tinymce.PluginManager.add(...)` wurde damit nie aufgerufen. +* Entry-Point in beiden `build.js` auf `src/main/ts/Main.ts` umgestellt (ruft `Plugin()` korrekt auf). Die kaputten vorgebauten `dist/`-Artefakte wurden entfernt und neu erzeugt. +* `scripts/build-plugins.js` priorisiert im Fallback-Pfad jetzt `Main.ts` vor `Plugin.ts`, damit dieser Fehler bei neuen Plugins nicht erneut auftritt. + Version 8.10 (in development) ------------------------------- diff --git a/assets/scripts/tinymce/plugins/link_yform/plugin.js b/assets/scripts/tinymce/plugins/link_yform/plugin.js index da64f434..03ee308b 100644 --- a/assets/scripts/tinymce/plugins/link_yform/plugin.js +++ b/assets/scripts/tinymce/plugins/link_yform/plugin.js @@ -1,3 +1,3 @@ -(()=>{var h=(e,i,c)=>{let l;return c(e,i.prototype)?!0:((l=e.constructor)===null||l===void 0?void 0:l.name)===i.name},E=e=>{let i=typeof e;return e===null?"null":i==="object"&&Array.isArray(e)?"array":i==="object"&&h(e,String,(c,l)=>Object.prototype.isPrototypeOf.call(l,c))?"string":i},d=e=>i=>E(i)===e,u=e=>e==null,w=d("object"),j=d("string"),M=e=>{e.options.register("link_yform_tables",{processor:"object",default:{title:"YForm",items:[]}});let i=e.options.get("link_yform_tables"),c=i.title,l=i.items,f=[];for(let t=0,s=l.length;t0){console.warn("TinyMCE Plugin link-yform reports for entry "+(t+1)+`: +(()=>{var E=(e,i,c)=>{let s;return c(e,i.prototype)?!0:((s=e.constructor)===null||s===void 0?void 0:s.name)===i.name},w=e=>{let i=typeof e;return e===null?"null":i==="object"&&Array.isArray(e)?"array":i==="object"&&E(e,String,(c,s)=>Object.prototype.isPrototypeOf.call(s,c))?"string":i},d=e=>i=>w(i)===e,u=e=>e==null,j=d("object"),M=d("string"),k=e=>{e.options.register("link_yform_tables",{processor:"object",default:{title:"YForm",items:[]}});let i=e.options.get("link_yform_tables"),c=i.title,s=i.items,f=[];for(let t=0,l=s.length;t0){console.warn("TinyMCE Plugin link-yform reports for entry "+(t+1)+`: - `+o.join(` -- `));continue}let a=u(n.title)?n.table:n.title;f.push({type:"menuitem",text:a,onAction:()=>b(n)})}let y=t=>t!=null&&t.nodeName==="FIGURE"&&/\bimage\b/i.test(t.className),_=(t,s,n)=>{var a;let o=t.select("img",s)[0];if(o){let r=t.create("a",n);(a=o.parentNode)==null||a.insertBefore(r,o),r.appendChild(o)}},b=t=>{try{let s=e.dom,n=newPoolWindow("index.php?page=yform/manager/data_edit&table_name="+t.table+"&rex_yform_manager_opener[id]=1&rex_yform_manager_opener[field]="+t.field+"&rex_yform_manager_opener[multiple]=0");$(n).on("rex:YForm_selectData",function(o,a,r){o.preventDefault(),n.close(),r=r.replace(new RegExp("(.*?)\\s\\[.*?\\]","gi"),"$1");let m={href:(!u(t.url)&&j(t.url)?t.url:t.table.split("_").join("-")+"://")+a,title:r},g=e.selection.getNode();if(y(g))_(s,g,m);else{let p=s.encode(r);e.selection.getContent()&&(p=e.selection.getContent()),e.insertContent(s.createHTML("a",m,p))}})}catch(s){console.log(s)}};e.ui.registry.addMenuButton("link_yform",{text:c,fetch:t=>{t(f)}})},k=()=>{tinymce.PluginManager.add("link_yform",M)};})(); +- `));continue}let a=u(n.title)?n.table:n.title;f.push({type:"menuitem",text:a,onAction:()=>h(n)})}let _=t=>t!=null&&t.nodeName==="FIGURE"&&/\bimage\b/i.test(t.className),b=(t,l,n)=>{var a;let o=t.select("img",l)[0];if(o){let r=t.create("a",n);(a=o.parentNode)==null||a.insertBefore(r,o),r.appendChild(o)}},h=t=>{try{let l=e.dom,n=newPoolWindow("index.php?page=yform/manager/data_edit&table_name="+t.table+"&rex_yform_manager_opener[id]=1&rex_yform_manager_opener[field]="+t.field+"&rex_yform_manager_opener[multiple]=0");$(n).on("rex:YForm_selectData",function(o,a,r){o.preventDefault(),n.close(),r=r.replace(new RegExp("(.*?)\\s\\[.*?\\]","gi"),"$1");let m={href:(!u(t.url)&&M(t.url)?t.url:t.table.split("_").join("-")+"://")+a,title:r},g=e.selection.getNode();if(_(g))b(l,g,m);else{let p=l.encode(r);e.selection.getContent()&&(p=e.selection.getContent()),e.insertContent(l.createHTML("a",m,p))}})}catch(l){console.log(l)}};e.ui.registry.addMenuButton("link_yform",{text:c,fetch:t=>{t(f)}})},y=()=>{tinymce.PluginManager.add("link_yform",k)};y();})(); diff --git a/assets/scripts/tinymce/plugins/link_yform/plugin.min.js b/assets/scripts/tinymce/plugins/link_yform/plugin.min.js index da64f434..03ee308b 100644 --- a/assets/scripts/tinymce/plugins/link_yform/plugin.min.js +++ b/assets/scripts/tinymce/plugins/link_yform/plugin.min.js @@ -1,3 +1,3 @@ -(()=>{var h=(e,i,c)=>{let l;return c(e,i.prototype)?!0:((l=e.constructor)===null||l===void 0?void 0:l.name)===i.name},E=e=>{let i=typeof e;return e===null?"null":i==="object"&&Array.isArray(e)?"array":i==="object"&&h(e,String,(c,l)=>Object.prototype.isPrototypeOf.call(l,c))?"string":i},d=e=>i=>E(i)===e,u=e=>e==null,w=d("object"),j=d("string"),M=e=>{e.options.register("link_yform_tables",{processor:"object",default:{title:"YForm",items:[]}});let i=e.options.get("link_yform_tables"),c=i.title,l=i.items,f=[];for(let t=0,s=l.length;t0){console.warn("TinyMCE Plugin link-yform reports for entry "+(t+1)+`: +(()=>{var E=(e,i,c)=>{let s;return c(e,i.prototype)?!0:((s=e.constructor)===null||s===void 0?void 0:s.name)===i.name},w=e=>{let i=typeof e;return e===null?"null":i==="object"&&Array.isArray(e)?"array":i==="object"&&E(e,String,(c,s)=>Object.prototype.isPrototypeOf.call(s,c))?"string":i},d=e=>i=>w(i)===e,u=e=>e==null,j=d("object"),M=d("string"),k=e=>{e.options.register("link_yform_tables",{processor:"object",default:{title:"YForm",items:[]}});let i=e.options.get("link_yform_tables"),c=i.title,s=i.items,f=[];for(let t=0,l=s.length;t0){console.warn("TinyMCE Plugin link-yform reports for entry "+(t+1)+`: - `+o.join(` -- `));continue}let a=u(n.title)?n.table:n.title;f.push({type:"menuitem",text:a,onAction:()=>b(n)})}let y=t=>t!=null&&t.nodeName==="FIGURE"&&/\bimage\b/i.test(t.className),_=(t,s,n)=>{var a;let o=t.select("img",s)[0];if(o){let r=t.create("a",n);(a=o.parentNode)==null||a.insertBefore(r,o),r.appendChild(o)}},b=t=>{try{let s=e.dom,n=newPoolWindow("index.php?page=yform/manager/data_edit&table_name="+t.table+"&rex_yform_manager_opener[id]=1&rex_yform_manager_opener[field]="+t.field+"&rex_yform_manager_opener[multiple]=0");$(n).on("rex:YForm_selectData",function(o,a,r){o.preventDefault(),n.close(),r=r.replace(new RegExp("(.*?)\\s\\[.*?\\]","gi"),"$1");let m={href:(!u(t.url)&&j(t.url)?t.url:t.table.split("_").join("-")+"://")+a,title:r},g=e.selection.getNode();if(y(g))_(s,g,m);else{let p=s.encode(r);e.selection.getContent()&&(p=e.selection.getContent()),e.insertContent(s.createHTML("a",m,p))}})}catch(s){console.log(s)}};e.ui.registry.addMenuButton("link_yform",{text:c,fetch:t=>{t(f)}})},k=()=>{tinymce.PluginManager.add("link_yform",M)};})(); +- `));continue}let a=u(n.title)?n.table:n.title;f.push({type:"menuitem",text:a,onAction:()=>h(n)})}let _=t=>t!=null&&t.nodeName==="FIGURE"&&/\bimage\b/i.test(t.className),b=(t,l,n)=>{var a;let o=t.select("img",l)[0];if(o){let r=t.create("a",n);(a=o.parentNode)==null||a.insertBefore(r,o),r.appendChild(o)}},h=t=>{try{let l=e.dom,n=newPoolWindow("index.php?page=yform/manager/data_edit&table_name="+t.table+"&rex_yform_manager_opener[id]=1&rex_yform_manager_opener[field]="+t.field+"&rex_yform_manager_opener[multiple]=0");$(n).on("rex:YForm_selectData",function(o,a,r){o.preventDefault(),n.close(),r=r.replace(new RegExp("(.*?)\\s\\[.*?\\]","gi"),"$1");let m={href:(!u(t.url)&&M(t.url)?t.url:t.table.split("_").join("-")+"://")+a,title:r},g=e.selection.getNode();if(_(g))b(l,g,m);else{let p=l.encode(r);e.selection.getContent()&&(p=e.selection.getContent()),e.insertContent(l.createHTML("a",m,p))}})}catch(l){console.log(l)}};e.ui.registry.addMenuButton("link_yform",{text:c,fetch:t=>{t(f)}})},y=()=>{tinymce.PluginManager.add("link_yform",k)};y();})(); diff --git a/assets/scripts/tinymce/plugins/quote/plugin.js b/assets/scripts/tinymce/plugins/quote/plugin.js index 4b99bbf2..e59808c9 100644 --- a/assets/scripts/tinymce/plugins/quote/plugin.js +++ b/assets/scripts/tinymce/plugins/quote/plugin.js @@ -1 +1 @@ -(()=>{var r=(u,c)=>{u.ui.registry.addButton("quote",{icon:"quote",onAction:()=>i()});let a=(t,e)=>{t.focus(),t.undoManager.transact(()=>{t.insertContent(e)}),t.selection.setCursorLocation(),t.nodeChanged()},i=()=>{u.windowManager.open({title:"Quote",size:"normal",body:{type:"panel",items:[{type:"textarea",label:"Quote text",name:"quoteText"},{type:"input",label:"Quote author",name:"quoteAuthor"},{type:"input",label:"Quote cite",name:"quoteCite"}]},buttons:[{type:"cancel",name:"cancel",text:"Cancel"},{type:"submit",name:"save",text:"Save",primary:!0}],initialData:{quoteText:u.selection.getContent(),quoteAuthor:"",quoteCite:""},onSubmit:t=>{let e=t.getData();if(e.quoteText.trim()==="")return;let o="";e.quoteCite.trim()!==""&&(o=""+e.quoteCite+"");let n="";e.quoteAuthor.trim()!==""&&(n=e.quoteAuthor,o!==""&&(n+=", "+o,o=""),n="
"+n+"
"),a(u,"
"+e.quoteText+"
"+n+o+"
"),t.close()}})}},l=()=>{tinymce.PluginManager.add("quote",r),tinymce.PluginManager.requireLangPack("quote","de")};})(); +(()=>{var c=(u,l)=>{u.ui.registry.addButton("quote",{icon:"quote",onAction:()=>r()});let a=(t,e)=>{t.focus(),t.undoManager.transact(()=>{t.insertContent(e)}),t.selection.setCursorLocation(),t.nodeChanged()},r=()=>{u.windowManager.open({title:"Quote",size:"normal",body:{type:"panel",items:[{type:"textarea",label:"Quote text",name:"quoteText"},{type:"input",label:"Quote author",name:"quoteAuthor"},{type:"input",label:"Quote cite",name:"quoteCite"}]},buttons:[{type:"cancel",name:"cancel",text:"Cancel"},{type:"submit",name:"save",text:"Save",primary:!0}],initialData:{quoteText:u.selection.getContent(),quoteAuthor:"",quoteCite:""},onSubmit:t=>{let e=t.getData();if(e.quoteText.trim()==="")return;let o="";e.quoteCite.trim()!==""&&(o=""+e.quoteCite+"");let n="";e.quoteAuthor.trim()!==""&&(n=e.quoteAuthor,o!==""&&(n+=", "+o,o=""),n="
"+n+"
"),a(u,"
"+e.quoteText+"
"+n+o+"
"),t.close()}})}},i=()=>{tinymce.PluginManager.add("quote",c),tinymce.PluginManager.requireLangPack("quote","de")};i();})(); diff --git a/assets/scripts/tinymce/plugins/quote/plugin.min.js b/assets/scripts/tinymce/plugins/quote/plugin.min.js index 4b99bbf2..e59808c9 100644 --- a/assets/scripts/tinymce/plugins/quote/plugin.min.js +++ b/assets/scripts/tinymce/plugins/quote/plugin.min.js @@ -1 +1 @@ -(()=>{var r=(u,c)=>{u.ui.registry.addButton("quote",{icon:"quote",onAction:()=>i()});let a=(t,e)=>{t.focus(),t.undoManager.transact(()=>{t.insertContent(e)}),t.selection.setCursorLocation(),t.nodeChanged()},i=()=>{u.windowManager.open({title:"Quote",size:"normal",body:{type:"panel",items:[{type:"textarea",label:"Quote text",name:"quoteText"},{type:"input",label:"Quote author",name:"quoteAuthor"},{type:"input",label:"Quote cite",name:"quoteCite"}]},buttons:[{type:"cancel",name:"cancel",text:"Cancel"},{type:"submit",name:"save",text:"Save",primary:!0}],initialData:{quoteText:u.selection.getContent(),quoteAuthor:"",quoteCite:""},onSubmit:t=>{let e=t.getData();if(e.quoteText.trim()==="")return;let o="";e.quoteCite.trim()!==""&&(o=""+e.quoteCite+"");let n="";e.quoteAuthor.trim()!==""&&(n=e.quoteAuthor,o!==""&&(n+=", "+o,o=""),n="
"+n+"
"),a(u,"
"+e.quoteText+"
"+n+o+"
"),t.close()}})}},l=()=>{tinymce.PluginManager.add("quote",r),tinymce.PluginManager.requireLangPack("quote","de")};})(); +(()=>{var c=(u,l)=>{u.ui.registry.addButton("quote",{icon:"quote",onAction:()=>r()});let a=(t,e)=>{t.focus(),t.undoManager.transact(()=>{t.insertContent(e)}),t.selection.setCursorLocation(),t.nodeChanged()},r=()=>{u.windowManager.open({title:"Quote",size:"normal",body:{type:"panel",items:[{type:"textarea",label:"Quote text",name:"quoteText"},{type:"input",label:"Quote author",name:"quoteAuthor"},{type:"input",label:"Quote cite",name:"quoteCite"}]},buttons:[{type:"cancel",name:"cancel",text:"Cancel"},{type:"submit",name:"save",text:"Save",primary:!0}],initialData:{quoteText:u.selection.getContent(),quoteAuthor:"",quoteCite:""},onSubmit:t=>{let e=t.getData();if(e.quoteText.trim()==="")return;let o="";e.quoteCite.trim()!==""&&(o=""+e.quoteCite+"");let n="";e.quoteAuthor.trim()!==""&&(n=e.quoteAuthor,o!==""&&(n+=", "+o,o=""),n="
"+n+"
"),a(u,"
"+e.quoteText+"
"+n+o+"
"),t.close()}})}},i=()=>{tinymce.PluginManager.add("quote",c),tinymce.PluginManager.requireLangPack("quote","de")};i();})(); diff --git a/assets/vendor/tinymce/plugins/link_yform/plugin.js b/assets/vendor/tinymce/plugins/link_yform/plugin.js index da64f434..03ee308b 100644 --- a/assets/vendor/tinymce/plugins/link_yform/plugin.js +++ b/assets/vendor/tinymce/plugins/link_yform/plugin.js @@ -1,3 +1,3 @@ -(()=>{var h=(e,i,c)=>{let l;return c(e,i.prototype)?!0:((l=e.constructor)===null||l===void 0?void 0:l.name)===i.name},E=e=>{let i=typeof e;return e===null?"null":i==="object"&&Array.isArray(e)?"array":i==="object"&&h(e,String,(c,l)=>Object.prototype.isPrototypeOf.call(l,c))?"string":i},d=e=>i=>E(i)===e,u=e=>e==null,w=d("object"),j=d("string"),M=e=>{e.options.register("link_yform_tables",{processor:"object",default:{title:"YForm",items:[]}});let i=e.options.get("link_yform_tables"),c=i.title,l=i.items,f=[];for(let t=0,s=l.length;t0){console.warn("TinyMCE Plugin link-yform reports for entry "+(t+1)+`: +(()=>{var E=(e,i,c)=>{let s;return c(e,i.prototype)?!0:((s=e.constructor)===null||s===void 0?void 0:s.name)===i.name},w=e=>{let i=typeof e;return e===null?"null":i==="object"&&Array.isArray(e)?"array":i==="object"&&E(e,String,(c,s)=>Object.prototype.isPrototypeOf.call(s,c))?"string":i},d=e=>i=>w(i)===e,u=e=>e==null,j=d("object"),M=d("string"),k=e=>{e.options.register("link_yform_tables",{processor:"object",default:{title:"YForm",items:[]}});let i=e.options.get("link_yform_tables"),c=i.title,s=i.items,f=[];for(let t=0,l=s.length;t0){console.warn("TinyMCE Plugin link-yform reports for entry "+(t+1)+`: - `+o.join(` -- `));continue}let a=u(n.title)?n.table:n.title;f.push({type:"menuitem",text:a,onAction:()=>b(n)})}let y=t=>t!=null&&t.nodeName==="FIGURE"&&/\bimage\b/i.test(t.className),_=(t,s,n)=>{var a;let o=t.select("img",s)[0];if(o){let r=t.create("a",n);(a=o.parentNode)==null||a.insertBefore(r,o),r.appendChild(o)}},b=t=>{try{let s=e.dom,n=newPoolWindow("index.php?page=yform/manager/data_edit&table_name="+t.table+"&rex_yform_manager_opener[id]=1&rex_yform_manager_opener[field]="+t.field+"&rex_yform_manager_opener[multiple]=0");$(n).on("rex:YForm_selectData",function(o,a,r){o.preventDefault(),n.close(),r=r.replace(new RegExp("(.*?)\\s\\[.*?\\]","gi"),"$1");let m={href:(!u(t.url)&&j(t.url)?t.url:t.table.split("_").join("-")+"://")+a,title:r},g=e.selection.getNode();if(y(g))_(s,g,m);else{let p=s.encode(r);e.selection.getContent()&&(p=e.selection.getContent()),e.insertContent(s.createHTML("a",m,p))}})}catch(s){console.log(s)}};e.ui.registry.addMenuButton("link_yform",{text:c,fetch:t=>{t(f)}})},k=()=>{tinymce.PluginManager.add("link_yform",M)};})(); +- `));continue}let a=u(n.title)?n.table:n.title;f.push({type:"menuitem",text:a,onAction:()=>h(n)})}let _=t=>t!=null&&t.nodeName==="FIGURE"&&/\bimage\b/i.test(t.className),b=(t,l,n)=>{var a;let o=t.select("img",l)[0];if(o){let r=t.create("a",n);(a=o.parentNode)==null||a.insertBefore(r,o),r.appendChild(o)}},h=t=>{try{let l=e.dom,n=newPoolWindow("index.php?page=yform/manager/data_edit&table_name="+t.table+"&rex_yform_manager_opener[id]=1&rex_yform_manager_opener[field]="+t.field+"&rex_yform_manager_opener[multiple]=0");$(n).on("rex:YForm_selectData",function(o,a,r){o.preventDefault(),n.close(),r=r.replace(new RegExp("(.*?)\\s\\[.*?\\]","gi"),"$1");let m={href:(!u(t.url)&&M(t.url)?t.url:t.table.split("_").join("-")+"://")+a,title:r},g=e.selection.getNode();if(_(g))b(l,g,m);else{let p=l.encode(r);e.selection.getContent()&&(p=e.selection.getContent()),e.insertContent(l.createHTML("a",m,p))}})}catch(l){console.log(l)}};e.ui.registry.addMenuButton("link_yform",{text:c,fetch:t=>{t(f)}})},y=()=>{tinymce.PluginManager.add("link_yform",k)};y();})(); diff --git a/assets/vendor/tinymce/plugins/link_yform/plugin.min.js b/assets/vendor/tinymce/plugins/link_yform/plugin.min.js index da64f434..03ee308b 100644 --- a/assets/vendor/tinymce/plugins/link_yform/plugin.min.js +++ b/assets/vendor/tinymce/plugins/link_yform/plugin.min.js @@ -1,3 +1,3 @@ -(()=>{var h=(e,i,c)=>{let l;return c(e,i.prototype)?!0:((l=e.constructor)===null||l===void 0?void 0:l.name)===i.name},E=e=>{let i=typeof e;return e===null?"null":i==="object"&&Array.isArray(e)?"array":i==="object"&&h(e,String,(c,l)=>Object.prototype.isPrototypeOf.call(l,c))?"string":i},d=e=>i=>E(i)===e,u=e=>e==null,w=d("object"),j=d("string"),M=e=>{e.options.register("link_yform_tables",{processor:"object",default:{title:"YForm",items:[]}});let i=e.options.get("link_yform_tables"),c=i.title,l=i.items,f=[];for(let t=0,s=l.length;t0){console.warn("TinyMCE Plugin link-yform reports for entry "+(t+1)+`: +(()=>{var E=(e,i,c)=>{let s;return c(e,i.prototype)?!0:((s=e.constructor)===null||s===void 0?void 0:s.name)===i.name},w=e=>{let i=typeof e;return e===null?"null":i==="object"&&Array.isArray(e)?"array":i==="object"&&E(e,String,(c,s)=>Object.prototype.isPrototypeOf.call(s,c))?"string":i},d=e=>i=>w(i)===e,u=e=>e==null,j=d("object"),M=d("string"),k=e=>{e.options.register("link_yform_tables",{processor:"object",default:{title:"YForm",items:[]}});let i=e.options.get("link_yform_tables"),c=i.title,s=i.items,f=[];for(let t=0,l=s.length;t0){console.warn("TinyMCE Plugin link-yform reports for entry "+(t+1)+`: - `+o.join(` -- `));continue}let a=u(n.title)?n.table:n.title;f.push({type:"menuitem",text:a,onAction:()=>b(n)})}let y=t=>t!=null&&t.nodeName==="FIGURE"&&/\bimage\b/i.test(t.className),_=(t,s,n)=>{var a;let o=t.select("img",s)[0];if(o){let r=t.create("a",n);(a=o.parentNode)==null||a.insertBefore(r,o),r.appendChild(o)}},b=t=>{try{let s=e.dom,n=newPoolWindow("index.php?page=yform/manager/data_edit&table_name="+t.table+"&rex_yform_manager_opener[id]=1&rex_yform_manager_opener[field]="+t.field+"&rex_yform_manager_opener[multiple]=0");$(n).on("rex:YForm_selectData",function(o,a,r){o.preventDefault(),n.close(),r=r.replace(new RegExp("(.*?)\\s\\[.*?\\]","gi"),"$1");let m={href:(!u(t.url)&&j(t.url)?t.url:t.table.split("_").join("-")+"://")+a,title:r},g=e.selection.getNode();if(y(g))_(s,g,m);else{let p=s.encode(r);e.selection.getContent()&&(p=e.selection.getContent()),e.insertContent(s.createHTML("a",m,p))}})}catch(s){console.log(s)}};e.ui.registry.addMenuButton("link_yform",{text:c,fetch:t=>{t(f)}})},k=()=>{tinymce.PluginManager.add("link_yform",M)};})(); +- `));continue}let a=u(n.title)?n.table:n.title;f.push({type:"menuitem",text:a,onAction:()=>h(n)})}let _=t=>t!=null&&t.nodeName==="FIGURE"&&/\bimage\b/i.test(t.className),b=(t,l,n)=>{var a;let o=t.select("img",l)[0];if(o){let r=t.create("a",n);(a=o.parentNode)==null||a.insertBefore(r,o),r.appendChild(o)}},h=t=>{try{let l=e.dom,n=newPoolWindow("index.php?page=yform/manager/data_edit&table_name="+t.table+"&rex_yform_manager_opener[id]=1&rex_yform_manager_opener[field]="+t.field+"&rex_yform_manager_opener[multiple]=0");$(n).on("rex:YForm_selectData",function(o,a,r){o.preventDefault(),n.close(),r=r.replace(new RegExp("(.*?)\\s\\[.*?\\]","gi"),"$1");let m={href:(!u(t.url)&&M(t.url)?t.url:t.table.split("_").join("-")+"://")+a,title:r},g=e.selection.getNode();if(_(g))b(l,g,m);else{let p=l.encode(r);e.selection.getContent()&&(p=e.selection.getContent()),e.insertContent(l.createHTML("a",m,p))}})}catch(l){console.log(l)}};e.ui.registry.addMenuButton("link_yform",{text:c,fetch:t=>{t(f)}})},y=()=>{tinymce.PluginManager.add("link_yform",k)};y();})(); diff --git a/assets/vendor/tinymce/plugins/quote/plugin.js b/assets/vendor/tinymce/plugins/quote/plugin.js index 4b99bbf2..e59808c9 100644 --- a/assets/vendor/tinymce/plugins/quote/plugin.js +++ b/assets/vendor/tinymce/plugins/quote/plugin.js @@ -1 +1 @@ -(()=>{var r=(u,c)=>{u.ui.registry.addButton("quote",{icon:"quote",onAction:()=>i()});let a=(t,e)=>{t.focus(),t.undoManager.transact(()=>{t.insertContent(e)}),t.selection.setCursorLocation(),t.nodeChanged()},i=()=>{u.windowManager.open({title:"Quote",size:"normal",body:{type:"panel",items:[{type:"textarea",label:"Quote text",name:"quoteText"},{type:"input",label:"Quote author",name:"quoteAuthor"},{type:"input",label:"Quote cite",name:"quoteCite"}]},buttons:[{type:"cancel",name:"cancel",text:"Cancel"},{type:"submit",name:"save",text:"Save",primary:!0}],initialData:{quoteText:u.selection.getContent(),quoteAuthor:"",quoteCite:""},onSubmit:t=>{let e=t.getData();if(e.quoteText.trim()==="")return;let o="";e.quoteCite.trim()!==""&&(o=""+e.quoteCite+"");let n="";e.quoteAuthor.trim()!==""&&(n=e.quoteAuthor,o!==""&&(n+=", "+o,o=""),n="
"+n+"
"),a(u,"
"+e.quoteText+"
"+n+o+"
"),t.close()}})}},l=()=>{tinymce.PluginManager.add("quote",r),tinymce.PluginManager.requireLangPack("quote","de")};})(); +(()=>{var c=(u,l)=>{u.ui.registry.addButton("quote",{icon:"quote",onAction:()=>r()});let a=(t,e)=>{t.focus(),t.undoManager.transact(()=>{t.insertContent(e)}),t.selection.setCursorLocation(),t.nodeChanged()},r=()=>{u.windowManager.open({title:"Quote",size:"normal",body:{type:"panel",items:[{type:"textarea",label:"Quote text",name:"quoteText"},{type:"input",label:"Quote author",name:"quoteAuthor"},{type:"input",label:"Quote cite",name:"quoteCite"}]},buttons:[{type:"cancel",name:"cancel",text:"Cancel"},{type:"submit",name:"save",text:"Save",primary:!0}],initialData:{quoteText:u.selection.getContent(),quoteAuthor:"",quoteCite:""},onSubmit:t=>{let e=t.getData();if(e.quoteText.trim()==="")return;let o="";e.quoteCite.trim()!==""&&(o=""+e.quoteCite+"");let n="";e.quoteAuthor.trim()!==""&&(n=e.quoteAuthor,o!==""&&(n+=", "+o,o=""),n="
"+n+"
"),a(u,"
"+e.quoteText+"
"+n+o+"
"),t.close()}})}},i=()=>{tinymce.PluginManager.add("quote",c),tinymce.PluginManager.requireLangPack("quote","de")};i();})(); diff --git a/assets/vendor/tinymce/plugins/quote/plugin.min.js b/assets/vendor/tinymce/plugins/quote/plugin.min.js index 4b99bbf2..e59808c9 100644 --- a/assets/vendor/tinymce/plugins/quote/plugin.min.js +++ b/assets/vendor/tinymce/plugins/quote/plugin.min.js @@ -1 +1 @@ -(()=>{var r=(u,c)=>{u.ui.registry.addButton("quote",{icon:"quote",onAction:()=>i()});let a=(t,e)=>{t.focus(),t.undoManager.transact(()=>{t.insertContent(e)}),t.selection.setCursorLocation(),t.nodeChanged()},i=()=>{u.windowManager.open({title:"Quote",size:"normal",body:{type:"panel",items:[{type:"textarea",label:"Quote text",name:"quoteText"},{type:"input",label:"Quote author",name:"quoteAuthor"},{type:"input",label:"Quote cite",name:"quoteCite"}]},buttons:[{type:"cancel",name:"cancel",text:"Cancel"},{type:"submit",name:"save",text:"Save",primary:!0}],initialData:{quoteText:u.selection.getContent(),quoteAuthor:"",quoteCite:""},onSubmit:t=>{let e=t.getData();if(e.quoteText.trim()==="")return;let o="";e.quoteCite.trim()!==""&&(o=""+e.quoteCite+"");let n="";e.quoteAuthor.trim()!==""&&(n=e.quoteAuthor,o!==""&&(n+=", "+o,o=""),n="
"+n+"
"),a(u,"
"+e.quoteText+"
"+n+o+"
"),t.close()}})}},l=()=>{tinymce.PluginManager.add("quote",r),tinymce.PluginManager.requireLangPack("quote","de")};})(); +(()=>{var c=(u,l)=>{u.ui.registry.addButton("quote",{icon:"quote",onAction:()=>r()});let a=(t,e)=>{t.focus(),t.undoManager.transact(()=>{t.insertContent(e)}),t.selection.setCursorLocation(),t.nodeChanged()},r=()=>{u.windowManager.open({title:"Quote",size:"normal",body:{type:"panel",items:[{type:"textarea",label:"Quote text",name:"quoteText"},{type:"input",label:"Quote author",name:"quoteAuthor"},{type:"input",label:"Quote cite",name:"quoteCite"}]},buttons:[{type:"cancel",name:"cancel",text:"Cancel"},{type:"submit",name:"save",text:"Save",primary:!0}],initialData:{quoteText:u.selection.getContent(),quoteAuthor:"",quoteCite:""},onSubmit:t=>{let e=t.getData();if(e.quoteText.trim()==="")return;let o="";e.quoteCite.trim()!==""&&(o=""+e.quoteCite+"");let n="";e.quoteAuthor.trim()!==""&&(n=e.quoteAuthor,o!==""&&(n+=", "+o,o=""),n="
"+n+"
"),a(u,"
"+e.quoteText+"
"+n+o+"
"),t.close()}})}},i=()=>{tinymce.PluginManager.add("quote",c),tinymce.PluginManager.requireLangPack("quote","de")};i();})(); diff --git a/custom_plugins/link_yform/build.js b/custom_plugins/link_yform/build.js index cd4c6d6c..f657d4de 100644 --- a/custom_plugins/link_yform/build.js +++ b/custom_plugins/link_yform/build.js @@ -26,7 +26,11 @@ async function build() { // Build mit esbuild await esbuild.build({ - entryPoints: ['src/main/ts/Plugin.ts'], + // Wichtig: Main.ts als Entry — Plugin.ts exportiert nur die Setup-Funktion + // (`export default (): void => { ... }`), Main.ts ruft sie tatsaechlich auf + // (`Plugin();`). Ohne diesen Aufruf landet im IIFE-Bundle keine Registrierung + // und tinymce.PluginManager.add wird nie aufgerufen. + entryPoints: ['src/main/ts/Main.ts'], bundle: true, minify: true, format: 'iife', diff --git a/custom_plugins/link_yform/dist/link_yform/plugin.js b/custom_plugins/link_yform/dist/link_yform/plugin.js index da64f434..03ee308b 100644 --- a/custom_plugins/link_yform/dist/link_yform/plugin.js +++ b/custom_plugins/link_yform/dist/link_yform/plugin.js @@ -1,3 +1,3 @@ -(()=>{var h=(e,i,c)=>{let l;return c(e,i.prototype)?!0:((l=e.constructor)===null||l===void 0?void 0:l.name)===i.name},E=e=>{let i=typeof e;return e===null?"null":i==="object"&&Array.isArray(e)?"array":i==="object"&&h(e,String,(c,l)=>Object.prototype.isPrototypeOf.call(l,c))?"string":i},d=e=>i=>E(i)===e,u=e=>e==null,w=d("object"),j=d("string"),M=e=>{e.options.register("link_yform_tables",{processor:"object",default:{title:"YForm",items:[]}});let i=e.options.get("link_yform_tables"),c=i.title,l=i.items,f=[];for(let t=0,s=l.length;t0){console.warn("TinyMCE Plugin link-yform reports for entry "+(t+1)+`: +(()=>{var E=(e,i,c)=>{let s;return c(e,i.prototype)?!0:((s=e.constructor)===null||s===void 0?void 0:s.name)===i.name},w=e=>{let i=typeof e;return e===null?"null":i==="object"&&Array.isArray(e)?"array":i==="object"&&E(e,String,(c,s)=>Object.prototype.isPrototypeOf.call(s,c))?"string":i},d=e=>i=>w(i)===e,u=e=>e==null,j=d("object"),M=d("string"),k=e=>{e.options.register("link_yform_tables",{processor:"object",default:{title:"YForm",items:[]}});let i=e.options.get("link_yform_tables"),c=i.title,s=i.items,f=[];for(let t=0,l=s.length;t0){console.warn("TinyMCE Plugin link-yform reports for entry "+(t+1)+`: - `+o.join(` -- `));continue}let a=u(n.title)?n.table:n.title;f.push({type:"menuitem",text:a,onAction:()=>b(n)})}let y=t=>t!=null&&t.nodeName==="FIGURE"&&/\bimage\b/i.test(t.className),_=(t,s,n)=>{var a;let o=t.select("img",s)[0];if(o){let r=t.create("a",n);(a=o.parentNode)==null||a.insertBefore(r,o),r.appendChild(o)}},b=t=>{try{let s=e.dom,n=newPoolWindow("index.php?page=yform/manager/data_edit&table_name="+t.table+"&rex_yform_manager_opener[id]=1&rex_yform_manager_opener[field]="+t.field+"&rex_yform_manager_opener[multiple]=0");$(n).on("rex:YForm_selectData",function(o,a,r){o.preventDefault(),n.close(),r=r.replace(new RegExp("(.*?)\\s\\[.*?\\]","gi"),"$1");let m={href:(!u(t.url)&&j(t.url)?t.url:t.table.split("_").join("-")+"://")+a,title:r},g=e.selection.getNode();if(y(g))_(s,g,m);else{let p=s.encode(r);e.selection.getContent()&&(p=e.selection.getContent()),e.insertContent(s.createHTML("a",m,p))}})}catch(s){console.log(s)}};e.ui.registry.addMenuButton("link_yform",{text:c,fetch:t=>{t(f)}})},k=()=>{tinymce.PluginManager.add("link_yform",M)};})(); +- `));continue}let a=u(n.title)?n.table:n.title;f.push({type:"menuitem",text:a,onAction:()=>h(n)})}let _=t=>t!=null&&t.nodeName==="FIGURE"&&/\bimage\b/i.test(t.className),b=(t,l,n)=>{var a;let o=t.select("img",l)[0];if(o){let r=t.create("a",n);(a=o.parentNode)==null||a.insertBefore(r,o),r.appendChild(o)}},h=t=>{try{let l=e.dom,n=newPoolWindow("index.php?page=yform/manager/data_edit&table_name="+t.table+"&rex_yform_manager_opener[id]=1&rex_yform_manager_opener[field]="+t.field+"&rex_yform_manager_opener[multiple]=0");$(n).on("rex:YForm_selectData",function(o,a,r){o.preventDefault(),n.close(),r=r.replace(new RegExp("(.*?)\\s\\[.*?\\]","gi"),"$1");let m={href:(!u(t.url)&&M(t.url)?t.url:t.table.split("_").join("-")+"://")+a,title:r},g=e.selection.getNode();if(_(g))b(l,g,m);else{let p=l.encode(r);e.selection.getContent()&&(p=e.selection.getContent()),e.insertContent(l.createHTML("a",m,p))}})}catch(l){console.log(l)}};e.ui.registry.addMenuButton("link_yform",{text:c,fetch:t=>{t(f)}})},y=()=>{tinymce.PluginManager.add("link_yform",k)};y();})(); diff --git a/custom_plugins/link_yform/dist/link_yform/plugin.min.js b/custom_plugins/link_yform/dist/link_yform/plugin.min.js index da64f434..03ee308b 100644 --- a/custom_plugins/link_yform/dist/link_yform/plugin.min.js +++ b/custom_plugins/link_yform/dist/link_yform/plugin.min.js @@ -1,3 +1,3 @@ -(()=>{var h=(e,i,c)=>{let l;return c(e,i.prototype)?!0:((l=e.constructor)===null||l===void 0?void 0:l.name)===i.name},E=e=>{let i=typeof e;return e===null?"null":i==="object"&&Array.isArray(e)?"array":i==="object"&&h(e,String,(c,l)=>Object.prototype.isPrototypeOf.call(l,c))?"string":i},d=e=>i=>E(i)===e,u=e=>e==null,w=d("object"),j=d("string"),M=e=>{e.options.register("link_yform_tables",{processor:"object",default:{title:"YForm",items:[]}});let i=e.options.get("link_yform_tables"),c=i.title,l=i.items,f=[];for(let t=0,s=l.length;t0){console.warn("TinyMCE Plugin link-yform reports for entry "+(t+1)+`: +(()=>{var E=(e,i,c)=>{let s;return c(e,i.prototype)?!0:((s=e.constructor)===null||s===void 0?void 0:s.name)===i.name},w=e=>{let i=typeof e;return e===null?"null":i==="object"&&Array.isArray(e)?"array":i==="object"&&E(e,String,(c,s)=>Object.prototype.isPrototypeOf.call(s,c))?"string":i},d=e=>i=>w(i)===e,u=e=>e==null,j=d("object"),M=d("string"),k=e=>{e.options.register("link_yform_tables",{processor:"object",default:{title:"YForm",items:[]}});let i=e.options.get("link_yform_tables"),c=i.title,s=i.items,f=[];for(let t=0,l=s.length;t0){console.warn("TinyMCE Plugin link-yform reports for entry "+(t+1)+`: - `+o.join(` -- `));continue}let a=u(n.title)?n.table:n.title;f.push({type:"menuitem",text:a,onAction:()=>b(n)})}let y=t=>t!=null&&t.nodeName==="FIGURE"&&/\bimage\b/i.test(t.className),_=(t,s,n)=>{var a;let o=t.select("img",s)[0];if(o){let r=t.create("a",n);(a=o.parentNode)==null||a.insertBefore(r,o),r.appendChild(o)}},b=t=>{try{let s=e.dom,n=newPoolWindow("index.php?page=yform/manager/data_edit&table_name="+t.table+"&rex_yform_manager_opener[id]=1&rex_yform_manager_opener[field]="+t.field+"&rex_yform_manager_opener[multiple]=0");$(n).on("rex:YForm_selectData",function(o,a,r){o.preventDefault(),n.close(),r=r.replace(new RegExp("(.*?)\\s\\[.*?\\]","gi"),"$1");let m={href:(!u(t.url)&&j(t.url)?t.url:t.table.split("_").join("-")+"://")+a,title:r},g=e.selection.getNode();if(y(g))_(s,g,m);else{let p=s.encode(r);e.selection.getContent()&&(p=e.selection.getContent()),e.insertContent(s.createHTML("a",m,p))}})}catch(s){console.log(s)}};e.ui.registry.addMenuButton("link_yform",{text:c,fetch:t=>{t(f)}})},k=()=>{tinymce.PluginManager.add("link_yform",M)};})(); +- `));continue}let a=u(n.title)?n.table:n.title;f.push({type:"menuitem",text:a,onAction:()=>h(n)})}let _=t=>t!=null&&t.nodeName==="FIGURE"&&/\bimage\b/i.test(t.className),b=(t,l,n)=>{var a;let o=t.select("img",l)[0];if(o){let r=t.create("a",n);(a=o.parentNode)==null||a.insertBefore(r,o),r.appendChild(o)}},h=t=>{try{let l=e.dom,n=newPoolWindow("index.php?page=yform/manager/data_edit&table_name="+t.table+"&rex_yform_manager_opener[id]=1&rex_yform_manager_opener[field]="+t.field+"&rex_yform_manager_opener[multiple]=0");$(n).on("rex:YForm_selectData",function(o,a,r){o.preventDefault(),n.close(),r=r.replace(new RegExp("(.*?)\\s\\[.*?\\]","gi"),"$1");let m={href:(!u(t.url)&&M(t.url)?t.url:t.table.split("_").join("-")+"://")+a,title:r},g=e.selection.getNode();if(_(g))b(l,g,m);else{let p=l.encode(r);e.selection.getContent()&&(p=e.selection.getContent()),e.insertContent(l.createHTML("a",m,p))}})}catch(l){console.log(l)}};e.ui.registry.addMenuButton("link_yform",{text:c,fetch:t=>{t(f)}})},y=()=>{tinymce.PluginManager.add("link_yform",k)};y();})(); diff --git a/custom_plugins/quote/build.js b/custom_plugins/quote/build.js index 52041ee6..fa52b01c 100644 --- a/custom_plugins/quote/build.js +++ b/custom_plugins/quote/build.js @@ -26,7 +26,11 @@ async function build() { // Build mit esbuild await esbuild.build({ - entryPoints: ['src/main/ts/Plugin.ts'], + // Wichtig: Main.ts als Entry — Plugin.ts exportiert nur die Setup-Funktion + // (`export default (): void => { ... }`), Main.ts ruft sie tatsaechlich auf + // (`Plugin();`). Ohne diesen Aufruf landet im IIFE-Bundle keine Registrierung + // und tinymce.PluginManager.add wird nie aufgerufen. + entryPoints: ['src/main/ts/Main.ts'], bundle: true, minify: true, format: 'iife', diff --git a/package.yml b/package.yml index 60734027..f503ad31 100644 --- a/package.yml +++ b/package.yml @@ -1,6 +1,6 @@ package: tinymce -version: '8.10.1' +version: '8.10.2' author: Friends Of REDAXO supportpage: https://github.com/FriendsOfREDAXO/tinymce/issues diff --git a/scripts/build-plugins.js b/scripts/build-plugins.js index 58a53352..a9265c3f 100644 --- a/scripts/build-plugins.js +++ b/scripts/build-plugins.js @@ -73,11 +73,15 @@ async function buildPlugin(p){ } } - // If no prebuilt artifact, try to bundle a common entrypoint with esbuild + // If no prebuilt artifact, try to bundle a common entrypoint with esbuild. + // Wichtig: Main.ts kommt VOR Plugin.ts, weil Plugin.ts in der TinyMCE-Konvention + // nur die Setup-Funktion exportiert (`export default (): void => {...}`), während + // Main.ts diese tatsächlich aufruft (`Plugin();`). Würde esbuild Plugin.ts als + // Entry nehmen, fehlt im IIFE-Output der Aufruf und das Plugin registriert sich nie. const entryCandidates = [ - 'src/main/ts/Plugin.ts', 'src/main/ts/Main.ts', 'src/main/ts/api/Main.ts', + 'src/main/ts/Plugin.ts', 'src/main/index.ts', 'src/main.js', 'src/index.js' From 066170f0d4e268b197714f379dfc1baa8b9c29c7 Mon Sep 17 00:00:00 2001 From: Thomas Skerbis Date: Tue, 19 May 2026 13:31:13 +0200 Subject: [PATCH 2/3] cleanpaste: Optionales Bereinigen interner Pastes --- CHANGELOG.md | 7 +++++++ .../tinymce/plugins/cleanpaste/plugin.js | 4 ++-- .../tinymce/plugins/cleanpaste/plugin.min.js | 4 ++-- .../tinymce/plugins/cleanpaste/plugin.js | 4 ++-- .../tinymce/plugins/cleanpaste/plugin.min.js | 4 ++-- .../cleanpaste/dist/cleanpaste/plugin.js | 4 ++-- .../cleanpaste/dist/cleanpaste/plugin.min.js | 4 ++-- .../cleanpaste/src/main/ts/Plugin.ts | 16 +++++++++++----- lang/de_de.lang | 2 ++ lang/en_gb.lang | 4 ++-- lang/sv_se.lang | 2 ++ lib/TinyMce/Creator/Profiles.php | 1 + lib/TinyMce/Provider/Assets.php | 1 + pages/paste_settings.php | 19 ++++++++++++++++++- 14 files changed, 56 insertions(+), 20 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 095a4b13..e71bc2c2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,13 @@ Changelog Version 8.10.2 --------------- +### cleanpaste: Optionales Bereinigen interner Pastes + +* Neue Option **„Auch interne Pastes bereinigen“** (`clean_internal_paste`, Default `false`) in den Paste-Settings. +* Bisheriges Verhalten bleibt Standard: Copy/Paste innerhalb desselben Editors wird nicht bereinigt, damit Style-Sets, Snippets und bewusst gesetzte Inline-Formate (z. B. eingefärbte Schrift) erhalten bleiben. +* Mit aktivierter Option werden auch interne Pastes durch die normale `cleanpaste`-Pipeline geschickt – z. B. verliert eine kopierte eingefärbte Passage beim erneuten Einfügen ihre Inline-Styles (sofern `Inline-Styles entfernen` aktiv ist). +* Lang-Keys für `de_de`, `en_gb` und `sv_se` ergänzt. + ### Span-Inline-Styles (Farbe) bleiben beim Speichern erhalten * TinyMCE 8 reduziert das ``-Schema serverseitig auf `[class|title]`, wodurch Inline-Styles wie `style="color:…"` beim Serialisieren entfernt wurden. diff --git a/assets/scripts/tinymce/plugins/cleanpaste/plugin.js b/assets/scripts/tinymce/plugins/cleanpaste/plugin.js index eaf514ed..3bd8a0d3 100644 --- a/assets/scripts/tinymce/plugins/cleanpaste/plugin.js +++ b/assets/scripts/tinymce/plugins/cleanpaste/plugin.js @@ -1,4 +1,4 @@ -"use strict";(()=>{var w=Object.defineProperty;var m=Object.getOwnPropertySymbols;var A=Object.prototype.hasOwnProperty,v=Object.prototype.propertyIsEnumerable;var d=(e,t,r)=>t in e?w(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,g=(e,t)=>{for(var r in t||(t={}))A.call(t,r)&&d(e,r,t[r]);if(m)for(var r of m(t))v.call(t,r)&&d(e,r,t[r]);return e};var P={strip_ms_office:!0,strip_google_docs:!0,remove_styles:!0,preserve_styles:[],remove_classes:!0,preserve_classes:[],remove_ids:!0,remove_data_attrs:!0,max_br:2,max_empty_paragraphs:2,allowed_tags:[]};function y(e,t){for(let r of t)if(r.trim()!==""){if(r.startsWith("regex:"))try{if(new RegExp(r.slice(6),"i").test(e))return!0}catch(a){}else if(e.trim()===r.trim())return!0}return!1}function _(e){return/^for-/.test(e)||e==="media"?!0:/^img-/.test(e)||/^uk-(width|float|margin|display|box-shadow|border-rounded)/.test(e)||/^(float-(start|end)|mx-auto|w-100)$/.test(e)||/^col-/.test(e)}function x(e){return/^data-for-/.test(e)||e==="data-mce-selected"}function S(e){return e=e.replace(//gi,""),e=e.replace(/<\/?[a-z]:[^>]*>/gi,""),e=e.replace(/[\s\S]*?<\/xml>/gi,""),e=e.replace(//gi,""),e=e.replace(new RegExp("","gs"),""),e}function E(e){return e=e.replace(//gi,""),e=e.replace(//gi,""),e=e.replace(/\s+id="docs-internal-guid-[^"]*"/gi,""),e}function k(e){let t=e;for(;t&&t.nodeType===1;){if(t.tagName&&t.tagName.toLowerCase()==="figure"&&(t.getAttribute("class")||"").split(/\s+/).filter(Boolean).some(i=>_(i))||t.tagName&&t.tagName.toLowerCase()==="oembed")return!0;t=t.parentElement}return!1}function b(e,t,r){var p,o,u;if(k(e))return;let a=Array.from(e.children);for(let l of a)b(l,t,r);let i=e.tagName.toLowerCase();if(t.allowed_tags.length>0&&!t.allowed_tags.some(s=>s.toLowerCase()===i)){let s=r.createDocumentFragment();for(;e.firstChild;)s.appendChild(e.firstChild);(p=e.parentNode)==null||p.replaceChild(s,e);return}if(t.remove_ids&&e.removeAttribute("id"),t.remove_data_attrs){let l=Array.from(e.attributes).map(s=>s.name).filter(s=>s.startsWith("data-")&&!x(s));for(let s of l)e.removeAttribute(s)}if(e.hasAttribute("style")){let l=(o=e.getAttribute("style"))!=null?o:"",s=[];t.remove_styles?s=l.split(";").map(n=>n.trim()).filter(Boolean).filter(n=>{let c=n.indexOf(":"),f=c>=0?n.slice(0,c).trim():n;return y(f,t.preserve_styles)}):s=l.split(";").map(n=>n.trim()).filter(Boolean),t.strip_ms_office&&(s=s.filter(n=>{let c=n.indexOf(":"),f=c>=0?n.slice(0,c).trim().toLowerCase():n.toLowerCase();return!f.startsWith("mso-")&&f!=="tab-stop-num"&&f!=="-webkit-tap-highlight-color"})),s.length>0?e.setAttribute("style",s.join("; ")):e.removeAttribute("style")}if(t.remove_classes&&e.hasAttribute("class")){let n=((u=e.getAttribute("class"))!=null?u:"").split(/\s+/).filter(Boolean).filter(c=>_(c)||y(c,t.preserve_classes));n.length>0?e.setAttribute("class",n.join(" ")):e.removeAttribute("class")}t.strip_ms_office&&i!=="html"&&(e.removeAttribute("lang"),e.removeAttribute("xml:lang"))}function F(e,t){if(t.max_br>0){let r=`(?:\\s*){${t.max_br+1},}`,a="
".repeat(t.max_br);e=e.replace(new RegExp(r,"gi"),a)}if(t.max_empty_paragraphs>0){let r=`(?:]*>\\s*(?:| )*\\s*<\\/p>\\s*){${t.max_empty_paragraphs+1},}`,a=`

 

+"use strict";(()=>{var w=Object.defineProperty;var m=Object.getOwnPropertySymbols;var A=Object.prototype.hasOwnProperty,v=Object.prototype.propertyIsEnumerable;var d=(e,t,r)=>t in e?w(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,g=(e,t)=>{for(var r in t||(t={}))A.call(t,r)&&d(e,r,t[r]);if(m)for(var r of m(t))v.call(t,r)&&d(e,r,t[r]);return e};var P={strip_ms_office:!0,strip_google_docs:!0,remove_styles:!0,preserve_styles:[],remove_classes:!0,preserve_classes:[],remove_ids:!0,remove_data_attrs:!0,max_br:2,max_empty_paragraphs:2,allowed_tags:[],clean_internal_paste:!1};function _(e,t){for(let r of t)if(r.trim()!==""){if(r.startsWith("regex:"))try{if(new RegExp(r.slice(6),"i").test(e))return!0}catch(a){}else if(e.trim()===r.trim())return!0}return!1}function y(e){return/^for-/.test(e)||e==="media"?!0:/^img-/.test(e)||/^uk-(width|float|margin|display|box-shadow|border-rounded)/.test(e)||/^(float-(start|end)|mx-auto|w-100)$/.test(e)||/^col-/.test(e)}function x(e){return/^data-for-/.test(e)||e==="data-mce-selected"}function S(e){return e=e.replace(//gi,""),e=e.replace(/<\/?[a-z]:[^>]*>/gi,""),e=e.replace(/[\s\S]*?<\/xml>/gi,""),e=e.replace(//gi,""),e=e.replace(new RegExp("","gs"),""),e}function E(e){return e=e.replace(//gi,""),e=e.replace(//gi,""),e=e.replace(/\s+id="docs-internal-guid-[^"]*"/gi,""),e}function k(e){let t=e;for(;t&&t.nodeType===1;){if(t.tagName&&t.tagName.toLowerCase()==="figure"&&(t.getAttribute("class")||"").split(/\s+/).filter(Boolean).some(i=>y(i))||t.tagName&&t.tagName.toLowerCase()==="oembed")return!0;t=t.parentElement}return!1}function b(e,t,r){var p,o,u;if(k(e))return;let a=Array.from(e.children);for(let l of a)b(l,t,r);let i=e.tagName.toLowerCase();if(t.allowed_tags.length>0&&!t.allowed_tags.some(s=>s.toLowerCase()===i)){let s=r.createDocumentFragment();for(;e.firstChild;)s.appendChild(e.firstChild);(p=e.parentNode)==null||p.replaceChild(s,e);return}if(t.remove_ids&&e.removeAttribute("id"),t.remove_data_attrs){let l=Array.from(e.attributes).map(s=>s.name).filter(s=>s.startsWith("data-")&&!x(s));for(let s of l)e.removeAttribute(s)}if(e.hasAttribute("style")){let l=(o=e.getAttribute("style"))!=null?o:"",s=[];t.remove_styles?s=l.split(";").map(n=>n.trim()).filter(Boolean).filter(n=>{let c=n.indexOf(":"),f=c>=0?n.slice(0,c).trim():n;return _(f,t.preserve_styles)}):s=l.split(";").map(n=>n.trim()).filter(Boolean),t.strip_ms_office&&(s=s.filter(n=>{let c=n.indexOf(":"),f=c>=0?n.slice(0,c).trim().toLowerCase():n.toLowerCase();return!f.startsWith("mso-")&&f!=="tab-stop-num"&&f!=="-webkit-tap-highlight-color"})),s.length>0?e.setAttribute("style",s.join("; ")):e.removeAttribute("style")}if(t.remove_classes&&e.hasAttribute("class")){let n=((u=e.getAttribute("class"))!=null?u:"").split(/\s+/).filter(Boolean).filter(c=>y(c)||_(c,t.preserve_classes));n.length>0?e.setAttribute("class",n.join(" ")):e.removeAttribute("class")}t.strip_ms_office&&i!=="html"&&(e.removeAttribute("lang"),e.removeAttribute("xml:lang"))}function F(e,t){if(t.max_br>0){let r=`(?:\\s*){${t.max_br+1},}`,a="
".repeat(t.max_br);e=e.replace(new RegExp(r,"gi"),a)}if(t.max_empty_paragraphs>0){let r=`(?:]*>\\s*(?:| )*\\s*<\\/p>\\s*){${t.max_empty_paragraphs+1},}`,a=`

 

`.repeat(t.max_empty_paragraphs);e=e.replace(new RegExp(r,"gi"),a)}return e=e.replace(/(\r\n|\r|\n){3,}/g,` -`),e}function h(e,t){t.strip_ms_office&&(e=S(e)),t.strip_google_docs&&(e=E(e));let a=new DOMParser().parseFromString(""+e+"","text/html"),i=a.body;return b(i,t,a),e=i.innerHTML,e=F(e,t),e}function L(){var i,p;let e=new Set,r=(p=(i=window.rex)==null?void 0:i.tinyGlobalOptions)==null?void 0:p.style_formats;if(!Array.isArray(r))return[];let a=o=>{var c;if(!o||typeof o!="object")return;let u=(c=o.format)!=null?c:o;if(!u)return;let l=u.classes;typeof l=="string"?l.split(/\s+/).filter(Boolean).forEach(f=>e.add(f)):Array.isArray(l)&&l.forEach(f=>{typeof f=="string"&&e.add(f)});let s=u.items;Array.isArray(s)&&s.forEach(a);let n=o.items;Array.isArray(n)&&n.forEach(a)};return r.forEach(a),Array.from(e)}var N=()=>{tinymce.PluginManager.add("cleanpaste",e=>{var i,p;let t=(p=typeof tinyCleanPasteConfig!="undefined"?tinyCleanPasteConfig:null)!=null?p:(i=window.tinyCleanPasteConfig)!=null?i:{},r=g(g({},P),t),a=L();if(a.length>0){let o=new Set([...r.preserve_classes,...a]);r.preserve_classes=Array.from(o)}e.on("PastePreProcess",o=>{o.internal||o.content&&(o.content=h(o.content,r))})})},C=N;C();})(); +`),e}function h(e,t){t.strip_ms_office&&(e=S(e)),t.strip_google_docs&&(e=E(e));let a=new DOMParser().parseFromString(""+e+"","text/html"),i=a.body;return b(i,t,a),e=i.innerHTML,e=F(e,t),e}function L(){var i,p;let e=new Set,r=(p=(i=window.rex)==null?void 0:i.tinyGlobalOptions)==null?void 0:p.style_formats;if(!Array.isArray(r))return[];let a=o=>{var c;if(!o||typeof o!="object")return;let u=(c=o.format)!=null?c:o;if(!u)return;let l=u.classes;typeof l=="string"?l.split(/\s+/).filter(Boolean).forEach(f=>e.add(f)):Array.isArray(l)&&l.forEach(f=>{typeof f=="string"&&e.add(f)});let s=u.items;Array.isArray(s)&&s.forEach(a);let n=o.items;Array.isArray(n)&&n.forEach(a)};return r.forEach(a),Array.from(e)}var N=()=>{tinymce.PluginManager.add("cleanpaste",e=>{var i,p;let t=(p=typeof tinyCleanPasteConfig!="undefined"?tinyCleanPasteConfig:null)!=null?p:(i=window.tinyCleanPasteConfig)!=null?i:{},r=g(g({},P),t),a=L();if(a.length>0){let o=new Set([...r.preserve_classes,...a]);r.preserve_classes=Array.from(o)}e.on("PastePreProcess",o=>{o.internal&&!r.clean_internal_paste||o.content&&(o.content=h(o.content,r))})})},C=N;C();})(); diff --git a/assets/scripts/tinymce/plugins/cleanpaste/plugin.min.js b/assets/scripts/tinymce/plugins/cleanpaste/plugin.min.js index eaf514ed..3bd8a0d3 100644 --- a/assets/scripts/tinymce/plugins/cleanpaste/plugin.min.js +++ b/assets/scripts/tinymce/plugins/cleanpaste/plugin.min.js @@ -1,4 +1,4 @@ -"use strict";(()=>{var w=Object.defineProperty;var m=Object.getOwnPropertySymbols;var A=Object.prototype.hasOwnProperty,v=Object.prototype.propertyIsEnumerable;var d=(e,t,r)=>t in e?w(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,g=(e,t)=>{for(var r in t||(t={}))A.call(t,r)&&d(e,r,t[r]);if(m)for(var r of m(t))v.call(t,r)&&d(e,r,t[r]);return e};var P={strip_ms_office:!0,strip_google_docs:!0,remove_styles:!0,preserve_styles:[],remove_classes:!0,preserve_classes:[],remove_ids:!0,remove_data_attrs:!0,max_br:2,max_empty_paragraphs:2,allowed_tags:[]};function y(e,t){for(let r of t)if(r.trim()!==""){if(r.startsWith("regex:"))try{if(new RegExp(r.slice(6),"i").test(e))return!0}catch(a){}else if(e.trim()===r.trim())return!0}return!1}function _(e){return/^for-/.test(e)||e==="media"?!0:/^img-/.test(e)||/^uk-(width|float|margin|display|box-shadow|border-rounded)/.test(e)||/^(float-(start|end)|mx-auto|w-100)$/.test(e)||/^col-/.test(e)}function x(e){return/^data-for-/.test(e)||e==="data-mce-selected"}function S(e){return e=e.replace(//gi,""),e=e.replace(/<\/?[a-z]:[^>]*>/gi,""),e=e.replace(/[\s\S]*?<\/xml>/gi,""),e=e.replace(//gi,""),e=e.replace(new RegExp("","gs"),""),e}function E(e){return e=e.replace(//gi,""),e=e.replace(//gi,""),e=e.replace(/\s+id="docs-internal-guid-[^"]*"/gi,""),e}function k(e){let t=e;for(;t&&t.nodeType===1;){if(t.tagName&&t.tagName.toLowerCase()==="figure"&&(t.getAttribute("class")||"").split(/\s+/).filter(Boolean).some(i=>_(i))||t.tagName&&t.tagName.toLowerCase()==="oembed")return!0;t=t.parentElement}return!1}function b(e,t,r){var p,o,u;if(k(e))return;let a=Array.from(e.children);for(let l of a)b(l,t,r);let i=e.tagName.toLowerCase();if(t.allowed_tags.length>0&&!t.allowed_tags.some(s=>s.toLowerCase()===i)){let s=r.createDocumentFragment();for(;e.firstChild;)s.appendChild(e.firstChild);(p=e.parentNode)==null||p.replaceChild(s,e);return}if(t.remove_ids&&e.removeAttribute("id"),t.remove_data_attrs){let l=Array.from(e.attributes).map(s=>s.name).filter(s=>s.startsWith("data-")&&!x(s));for(let s of l)e.removeAttribute(s)}if(e.hasAttribute("style")){let l=(o=e.getAttribute("style"))!=null?o:"",s=[];t.remove_styles?s=l.split(";").map(n=>n.trim()).filter(Boolean).filter(n=>{let c=n.indexOf(":"),f=c>=0?n.slice(0,c).trim():n;return y(f,t.preserve_styles)}):s=l.split(";").map(n=>n.trim()).filter(Boolean),t.strip_ms_office&&(s=s.filter(n=>{let c=n.indexOf(":"),f=c>=0?n.slice(0,c).trim().toLowerCase():n.toLowerCase();return!f.startsWith("mso-")&&f!=="tab-stop-num"&&f!=="-webkit-tap-highlight-color"})),s.length>0?e.setAttribute("style",s.join("; ")):e.removeAttribute("style")}if(t.remove_classes&&e.hasAttribute("class")){let n=((u=e.getAttribute("class"))!=null?u:"").split(/\s+/).filter(Boolean).filter(c=>_(c)||y(c,t.preserve_classes));n.length>0?e.setAttribute("class",n.join(" ")):e.removeAttribute("class")}t.strip_ms_office&&i!=="html"&&(e.removeAttribute("lang"),e.removeAttribute("xml:lang"))}function F(e,t){if(t.max_br>0){let r=`(?:\\s*){${t.max_br+1},}`,a="
".repeat(t.max_br);e=e.replace(new RegExp(r,"gi"),a)}if(t.max_empty_paragraphs>0){let r=`(?:]*>\\s*(?:| )*\\s*<\\/p>\\s*){${t.max_empty_paragraphs+1},}`,a=`

 

+"use strict";(()=>{var w=Object.defineProperty;var m=Object.getOwnPropertySymbols;var A=Object.prototype.hasOwnProperty,v=Object.prototype.propertyIsEnumerable;var d=(e,t,r)=>t in e?w(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,g=(e,t)=>{for(var r in t||(t={}))A.call(t,r)&&d(e,r,t[r]);if(m)for(var r of m(t))v.call(t,r)&&d(e,r,t[r]);return e};var P={strip_ms_office:!0,strip_google_docs:!0,remove_styles:!0,preserve_styles:[],remove_classes:!0,preserve_classes:[],remove_ids:!0,remove_data_attrs:!0,max_br:2,max_empty_paragraphs:2,allowed_tags:[],clean_internal_paste:!1};function _(e,t){for(let r of t)if(r.trim()!==""){if(r.startsWith("regex:"))try{if(new RegExp(r.slice(6),"i").test(e))return!0}catch(a){}else if(e.trim()===r.trim())return!0}return!1}function y(e){return/^for-/.test(e)||e==="media"?!0:/^img-/.test(e)||/^uk-(width|float|margin|display|box-shadow|border-rounded)/.test(e)||/^(float-(start|end)|mx-auto|w-100)$/.test(e)||/^col-/.test(e)}function x(e){return/^data-for-/.test(e)||e==="data-mce-selected"}function S(e){return e=e.replace(//gi,""),e=e.replace(/<\/?[a-z]:[^>]*>/gi,""),e=e.replace(/[\s\S]*?<\/xml>/gi,""),e=e.replace(//gi,""),e=e.replace(new RegExp("","gs"),""),e}function E(e){return e=e.replace(//gi,""),e=e.replace(//gi,""),e=e.replace(/\s+id="docs-internal-guid-[^"]*"/gi,""),e}function k(e){let t=e;for(;t&&t.nodeType===1;){if(t.tagName&&t.tagName.toLowerCase()==="figure"&&(t.getAttribute("class")||"").split(/\s+/).filter(Boolean).some(i=>y(i))||t.tagName&&t.tagName.toLowerCase()==="oembed")return!0;t=t.parentElement}return!1}function b(e,t,r){var p,o,u;if(k(e))return;let a=Array.from(e.children);for(let l of a)b(l,t,r);let i=e.tagName.toLowerCase();if(t.allowed_tags.length>0&&!t.allowed_tags.some(s=>s.toLowerCase()===i)){let s=r.createDocumentFragment();for(;e.firstChild;)s.appendChild(e.firstChild);(p=e.parentNode)==null||p.replaceChild(s,e);return}if(t.remove_ids&&e.removeAttribute("id"),t.remove_data_attrs){let l=Array.from(e.attributes).map(s=>s.name).filter(s=>s.startsWith("data-")&&!x(s));for(let s of l)e.removeAttribute(s)}if(e.hasAttribute("style")){let l=(o=e.getAttribute("style"))!=null?o:"",s=[];t.remove_styles?s=l.split(";").map(n=>n.trim()).filter(Boolean).filter(n=>{let c=n.indexOf(":"),f=c>=0?n.slice(0,c).trim():n;return _(f,t.preserve_styles)}):s=l.split(";").map(n=>n.trim()).filter(Boolean),t.strip_ms_office&&(s=s.filter(n=>{let c=n.indexOf(":"),f=c>=0?n.slice(0,c).trim().toLowerCase():n.toLowerCase();return!f.startsWith("mso-")&&f!=="tab-stop-num"&&f!=="-webkit-tap-highlight-color"})),s.length>0?e.setAttribute("style",s.join("; ")):e.removeAttribute("style")}if(t.remove_classes&&e.hasAttribute("class")){let n=((u=e.getAttribute("class"))!=null?u:"").split(/\s+/).filter(Boolean).filter(c=>y(c)||_(c,t.preserve_classes));n.length>0?e.setAttribute("class",n.join(" ")):e.removeAttribute("class")}t.strip_ms_office&&i!=="html"&&(e.removeAttribute("lang"),e.removeAttribute("xml:lang"))}function F(e,t){if(t.max_br>0){let r=`(?:\\s*){${t.max_br+1},}`,a="
".repeat(t.max_br);e=e.replace(new RegExp(r,"gi"),a)}if(t.max_empty_paragraphs>0){let r=`(?:]*>\\s*(?:| )*\\s*<\\/p>\\s*){${t.max_empty_paragraphs+1},}`,a=`

 

`.repeat(t.max_empty_paragraphs);e=e.replace(new RegExp(r,"gi"),a)}return e=e.replace(/(\r\n|\r|\n){3,}/g,` -`),e}function h(e,t){t.strip_ms_office&&(e=S(e)),t.strip_google_docs&&(e=E(e));let a=new DOMParser().parseFromString(""+e+"","text/html"),i=a.body;return b(i,t,a),e=i.innerHTML,e=F(e,t),e}function L(){var i,p;let e=new Set,r=(p=(i=window.rex)==null?void 0:i.tinyGlobalOptions)==null?void 0:p.style_formats;if(!Array.isArray(r))return[];let a=o=>{var c;if(!o||typeof o!="object")return;let u=(c=o.format)!=null?c:o;if(!u)return;let l=u.classes;typeof l=="string"?l.split(/\s+/).filter(Boolean).forEach(f=>e.add(f)):Array.isArray(l)&&l.forEach(f=>{typeof f=="string"&&e.add(f)});let s=u.items;Array.isArray(s)&&s.forEach(a);let n=o.items;Array.isArray(n)&&n.forEach(a)};return r.forEach(a),Array.from(e)}var N=()=>{tinymce.PluginManager.add("cleanpaste",e=>{var i,p;let t=(p=typeof tinyCleanPasteConfig!="undefined"?tinyCleanPasteConfig:null)!=null?p:(i=window.tinyCleanPasteConfig)!=null?i:{},r=g(g({},P),t),a=L();if(a.length>0){let o=new Set([...r.preserve_classes,...a]);r.preserve_classes=Array.from(o)}e.on("PastePreProcess",o=>{o.internal||o.content&&(o.content=h(o.content,r))})})},C=N;C();})(); +`),e}function h(e,t){t.strip_ms_office&&(e=S(e)),t.strip_google_docs&&(e=E(e));let a=new DOMParser().parseFromString(""+e+"","text/html"),i=a.body;return b(i,t,a),e=i.innerHTML,e=F(e,t),e}function L(){var i,p;let e=new Set,r=(p=(i=window.rex)==null?void 0:i.tinyGlobalOptions)==null?void 0:p.style_formats;if(!Array.isArray(r))return[];let a=o=>{var c;if(!o||typeof o!="object")return;let u=(c=o.format)!=null?c:o;if(!u)return;let l=u.classes;typeof l=="string"?l.split(/\s+/).filter(Boolean).forEach(f=>e.add(f)):Array.isArray(l)&&l.forEach(f=>{typeof f=="string"&&e.add(f)});let s=u.items;Array.isArray(s)&&s.forEach(a);let n=o.items;Array.isArray(n)&&n.forEach(a)};return r.forEach(a),Array.from(e)}var N=()=>{tinymce.PluginManager.add("cleanpaste",e=>{var i,p;let t=(p=typeof tinyCleanPasteConfig!="undefined"?tinyCleanPasteConfig:null)!=null?p:(i=window.tinyCleanPasteConfig)!=null?i:{},r=g(g({},P),t),a=L();if(a.length>0){let o=new Set([...r.preserve_classes,...a]);r.preserve_classes=Array.from(o)}e.on("PastePreProcess",o=>{o.internal&&!r.clean_internal_paste||o.content&&(o.content=h(o.content,r))})})},C=N;C();})(); diff --git a/assets/vendor/tinymce/plugins/cleanpaste/plugin.js b/assets/vendor/tinymce/plugins/cleanpaste/plugin.js index eaf514ed..3bd8a0d3 100644 --- a/assets/vendor/tinymce/plugins/cleanpaste/plugin.js +++ b/assets/vendor/tinymce/plugins/cleanpaste/plugin.js @@ -1,4 +1,4 @@ -"use strict";(()=>{var w=Object.defineProperty;var m=Object.getOwnPropertySymbols;var A=Object.prototype.hasOwnProperty,v=Object.prototype.propertyIsEnumerable;var d=(e,t,r)=>t in e?w(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,g=(e,t)=>{for(var r in t||(t={}))A.call(t,r)&&d(e,r,t[r]);if(m)for(var r of m(t))v.call(t,r)&&d(e,r,t[r]);return e};var P={strip_ms_office:!0,strip_google_docs:!0,remove_styles:!0,preserve_styles:[],remove_classes:!0,preserve_classes:[],remove_ids:!0,remove_data_attrs:!0,max_br:2,max_empty_paragraphs:2,allowed_tags:[]};function y(e,t){for(let r of t)if(r.trim()!==""){if(r.startsWith("regex:"))try{if(new RegExp(r.slice(6),"i").test(e))return!0}catch(a){}else if(e.trim()===r.trim())return!0}return!1}function _(e){return/^for-/.test(e)||e==="media"?!0:/^img-/.test(e)||/^uk-(width|float|margin|display|box-shadow|border-rounded)/.test(e)||/^(float-(start|end)|mx-auto|w-100)$/.test(e)||/^col-/.test(e)}function x(e){return/^data-for-/.test(e)||e==="data-mce-selected"}function S(e){return e=e.replace(//gi,""),e=e.replace(/<\/?[a-z]:[^>]*>/gi,""),e=e.replace(/[\s\S]*?<\/xml>/gi,""),e=e.replace(//gi,""),e=e.replace(new RegExp("","gs"),""),e}function E(e){return e=e.replace(//gi,""),e=e.replace(//gi,""),e=e.replace(/\s+id="docs-internal-guid-[^"]*"/gi,""),e}function k(e){let t=e;for(;t&&t.nodeType===1;){if(t.tagName&&t.tagName.toLowerCase()==="figure"&&(t.getAttribute("class")||"").split(/\s+/).filter(Boolean).some(i=>_(i))||t.tagName&&t.tagName.toLowerCase()==="oembed")return!0;t=t.parentElement}return!1}function b(e,t,r){var p,o,u;if(k(e))return;let a=Array.from(e.children);for(let l of a)b(l,t,r);let i=e.tagName.toLowerCase();if(t.allowed_tags.length>0&&!t.allowed_tags.some(s=>s.toLowerCase()===i)){let s=r.createDocumentFragment();for(;e.firstChild;)s.appendChild(e.firstChild);(p=e.parentNode)==null||p.replaceChild(s,e);return}if(t.remove_ids&&e.removeAttribute("id"),t.remove_data_attrs){let l=Array.from(e.attributes).map(s=>s.name).filter(s=>s.startsWith("data-")&&!x(s));for(let s of l)e.removeAttribute(s)}if(e.hasAttribute("style")){let l=(o=e.getAttribute("style"))!=null?o:"",s=[];t.remove_styles?s=l.split(";").map(n=>n.trim()).filter(Boolean).filter(n=>{let c=n.indexOf(":"),f=c>=0?n.slice(0,c).trim():n;return y(f,t.preserve_styles)}):s=l.split(";").map(n=>n.trim()).filter(Boolean),t.strip_ms_office&&(s=s.filter(n=>{let c=n.indexOf(":"),f=c>=0?n.slice(0,c).trim().toLowerCase():n.toLowerCase();return!f.startsWith("mso-")&&f!=="tab-stop-num"&&f!=="-webkit-tap-highlight-color"})),s.length>0?e.setAttribute("style",s.join("; ")):e.removeAttribute("style")}if(t.remove_classes&&e.hasAttribute("class")){let n=((u=e.getAttribute("class"))!=null?u:"").split(/\s+/).filter(Boolean).filter(c=>_(c)||y(c,t.preserve_classes));n.length>0?e.setAttribute("class",n.join(" ")):e.removeAttribute("class")}t.strip_ms_office&&i!=="html"&&(e.removeAttribute("lang"),e.removeAttribute("xml:lang"))}function F(e,t){if(t.max_br>0){let r=`(?:\\s*){${t.max_br+1},}`,a="
".repeat(t.max_br);e=e.replace(new RegExp(r,"gi"),a)}if(t.max_empty_paragraphs>0){let r=`(?:]*>\\s*(?:| )*\\s*<\\/p>\\s*){${t.max_empty_paragraphs+1},}`,a=`

 

+"use strict";(()=>{var w=Object.defineProperty;var m=Object.getOwnPropertySymbols;var A=Object.prototype.hasOwnProperty,v=Object.prototype.propertyIsEnumerable;var d=(e,t,r)=>t in e?w(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,g=(e,t)=>{for(var r in t||(t={}))A.call(t,r)&&d(e,r,t[r]);if(m)for(var r of m(t))v.call(t,r)&&d(e,r,t[r]);return e};var P={strip_ms_office:!0,strip_google_docs:!0,remove_styles:!0,preserve_styles:[],remove_classes:!0,preserve_classes:[],remove_ids:!0,remove_data_attrs:!0,max_br:2,max_empty_paragraphs:2,allowed_tags:[],clean_internal_paste:!1};function _(e,t){for(let r of t)if(r.trim()!==""){if(r.startsWith("regex:"))try{if(new RegExp(r.slice(6),"i").test(e))return!0}catch(a){}else if(e.trim()===r.trim())return!0}return!1}function y(e){return/^for-/.test(e)||e==="media"?!0:/^img-/.test(e)||/^uk-(width|float|margin|display|box-shadow|border-rounded)/.test(e)||/^(float-(start|end)|mx-auto|w-100)$/.test(e)||/^col-/.test(e)}function x(e){return/^data-for-/.test(e)||e==="data-mce-selected"}function S(e){return e=e.replace(//gi,""),e=e.replace(/<\/?[a-z]:[^>]*>/gi,""),e=e.replace(/[\s\S]*?<\/xml>/gi,""),e=e.replace(//gi,""),e=e.replace(new RegExp("","gs"),""),e}function E(e){return e=e.replace(//gi,""),e=e.replace(//gi,""),e=e.replace(/\s+id="docs-internal-guid-[^"]*"/gi,""),e}function k(e){let t=e;for(;t&&t.nodeType===1;){if(t.tagName&&t.tagName.toLowerCase()==="figure"&&(t.getAttribute("class")||"").split(/\s+/).filter(Boolean).some(i=>y(i))||t.tagName&&t.tagName.toLowerCase()==="oembed")return!0;t=t.parentElement}return!1}function b(e,t,r){var p,o,u;if(k(e))return;let a=Array.from(e.children);for(let l of a)b(l,t,r);let i=e.tagName.toLowerCase();if(t.allowed_tags.length>0&&!t.allowed_tags.some(s=>s.toLowerCase()===i)){let s=r.createDocumentFragment();for(;e.firstChild;)s.appendChild(e.firstChild);(p=e.parentNode)==null||p.replaceChild(s,e);return}if(t.remove_ids&&e.removeAttribute("id"),t.remove_data_attrs){let l=Array.from(e.attributes).map(s=>s.name).filter(s=>s.startsWith("data-")&&!x(s));for(let s of l)e.removeAttribute(s)}if(e.hasAttribute("style")){let l=(o=e.getAttribute("style"))!=null?o:"",s=[];t.remove_styles?s=l.split(";").map(n=>n.trim()).filter(Boolean).filter(n=>{let c=n.indexOf(":"),f=c>=0?n.slice(0,c).trim():n;return _(f,t.preserve_styles)}):s=l.split(";").map(n=>n.trim()).filter(Boolean),t.strip_ms_office&&(s=s.filter(n=>{let c=n.indexOf(":"),f=c>=0?n.slice(0,c).trim().toLowerCase():n.toLowerCase();return!f.startsWith("mso-")&&f!=="tab-stop-num"&&f!=="-webkit-tap-highlight-color"})),s.length>0?e.setAttribute("style",s.join("; ")):e.removeAttribute("style")}if(t.remove_classes&&e.hasAttribute("class")){let n=((u=e.getAttribute("class"))!=null?u:"").split(/\s+/).filter(Boolean).filter(c=>y(c)||_(c,t.preserve_classes));n.length>0?e.setAttribute("class",n.join(" ")):e.removeAttribute("class")}t.strip_ms_office&&i!=="html"&&(e.removeAttribute("lang"),e.removeAttribute("xml:lang"))}function F(e,t){if(t.max_br>0){let r=`(?:\\s*){${t.max_br+1},}`,a="
".repeat(t.max_br);e=e.replace(new RegExp(r,"gi"),a)}if(t.max_empty_paragraphs>0){let r=`(?:]*>\\s*(?:| )*\\s*<\\/p>\\s*){${t.max_empty_paragraphs+1},}`,a=`

 

`.repeat(t.max_empty_paragraphs);e=e.replace(new RegExp(r,"gi"),a)}return e=e.replace(/(\r\n|\r|\n){3,}/g,` -`),e}function h(e,t){t.strip_ms_office&&(e=S(e)),t.strip_google_docs&&(e=E(e));let a=new DOMParser().parseFromString(""+e+"","text/html"),i=a.body;return b(i,t,a),e=i.innerHTML,e=F(e,t),e}function L(){var i,p;let e=new Set,r=(p=(i=window.rex)==null?void 0:i.tinyGlobalOptions)==null?void 0:p.style_formats;if(!Array.isArray(r))return[];let a=o=>{var c;if(!o||typeof o!="object")return;let u=(c=o.format)!=null?c:o;if(!u)return;let l=u.classes;typeof l=="string"?l.split(/\s+/).filter(Boolean).forEach(f=>e.add(f)):Array.isArray(l)&&l.forEach(f=>{typeof f=="string"&&e.add(f)});let s=u.items;Array.isArray(s)&&s.forEach(a);let n=o.items;Array.isArray(n)&&n.forEach(a)};return r.forEach(a),Array.from(e)}var N=()=>{tinymce.PluginManager.add("cleanpaste",e=>{var i,p;let t=(p=typeof tinyCleanPasteConfig!="undefined"?tinyCleanPasteConfig:null)!=null?p:(i=window.tinyCleanPasteConfig)!=null?i:{},r=g(g({},P),t),a=L();if(a.length>0){let o=new Set([...r.preserve_classes,...a]);r.preserve_classes=Array.from(o)}e.on("PastePreProcess",o=>{o.internal||o.content&&(o.content=h(o.content,r))})})},C=N;C();})(); +`),e}function h(e,t){t.strip_ms_office&&(e=S(e)),t.strip_google_docs&&(e=E(e));let a=new DOMParser().parseFromString(""+e+"","text/html"),i=a.body;return b(i,t,a),e=i.innerHTML,e=F(e,t),e}function L(){var i,p;let e=new Set,r=(p=(i=window.rex)==null?void 0:i.tinyGlobalOptions)==null?void 0:p.style_formats;if(!Array.isArray(r))return[];let a=o=>{var c;if(!o||typeof o!="object")return;let u=(c=o.format)!=null?c:o;if(!u)return;let l=u.classes;typeof l=="string"?l.split(/\s+/).filter(Boolean).forEach(f=>e.add(f)):Array.isArray(l)&&l.forEach(f=>{typeof f=="string"&&e.add(f)});let s=u.items;Array.isArray(s)&&s.forEach(a);let n=o.items;Array.isArray(n)&&n.forEach(a)};return r.forEach(a),Array.from(e)}var N=()=>{tinymce.PluginManager.add("cleanpaste",e=>{var i,p;let t=(p=typeof tinyCleanPasteConfig!="undefined"?tinyCleanPasteConfig:null)!=null?p:(i=window.tinyCleanPasteConfig)!=null?i:{},r=g(g({},P),t),a=L();if(a.length>0){let o=new Set([...r.preserve_classes,...a]);r.preserve_classes=Array.from(o)}e.on("PastePreProcess",o=>{o.internal&&!r.clean_internal_paste||o.content&&(o.content=h(o.content,r))})})},C=N;C();})(); diff --git a/assets/vendor/tinymce/plugins/cleanpaste/plugin.min.js b/assets/vendor/tinymce/plugins/cleanpaste/plugin.min.js index eaf514ed..3bd8a0d3 100644 --- a/assets/vendor/tinymce/plugins/cleanpaste/plugin.min.js +++ b/assets/vendor/tinymce/plugins/cleanpaste/plugin.min.js @@ -1,4 +1,4 @@ -"use strict";(()=>{var w=Object.defineProperty;var m=Object.getOwnPropertySymbols;var A=Object.prototype.hasOwnProperty,v=Object.prototype.propertyIsEnumerable;var d=(e,t,r)=>t in e?w(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,g=(e,t)=>{for(var r in t||(t={}))A.call(t,r)&&d(e,r,t[r]);if(m)for(var r of m(t))v.call(t,r)&&d(e,r,t[r]);return e};var P={strip_ms_office:!0,strip_google_docs:!0,remove_styles:!0,preserve_styles:[],remove_classes:!0,preserve_classes:[],remove_ids:!0,remove_data_attrs:!0,max_br:2,max_empty_paragraphs:2,allowed_tags:[]};function y(e,t){for(let r of t)if(r.trim()!==""){if(r.startsWith("regex:"))try{if(new RegExp(r.slice(6),"i").test(e))return!0}catch(a){}else if(e.trim()===r.trim())return!0}return!1}function _(e){return/^for-/.test(e)||e==="media"?!0:/^img-/.test(e)||/^uk-(width|float|margin|display|box-shadow|border-rounded)/.test(e)||/^(float-(start|end)|mx-auto|w-100)$/.test(e)||/^col-/.test(e)}function x(e){return/^data-for-/.test(e)||e==="data-mce-selected"}function S(e){return e=e.replace(//gi,""),e=e.replace(/<\/?[a-z]:[^>]*>/gi,""),e=e.replace(/[\s\S]*?<\/xml>/gi,""),e=e.replace(//gi,""),e=e.replace(new RegExp("","gs"),""),e}function E(e){return e=e.replace(//gi,""),e=e.replace(//gi,""),e=e.replace(/\s+id="docs-internal-guid-[^"]*"/gi,""),e}function k(e){let t=e;for(;t&&t.nodeType===1;){if(t.tagName&&t.tagName.toLowerCase()==="figure"&&(t.getAttribute("class")||"").split(/\s+/).filter(Boolean).some(i=>_(i))||t.tagName&&t.tagName.toLowerCase()==="oembed")return!0;t=t.parentElement}return!1}function b(e,t,r){var p,o,u;if(k(e))return;let a=Array.from(e.children);for(let l of a)b(l,t,r);let i=e.tagName.toLowerCase();if(t.allowed_tags.length>0&&!t.allowed_tags.some(s=>s.toLowerCase()===i)){let s=r.createDocumentFragment();for(;e.firstChild;)s.appendChild(e.firstChild);(p=e.parentNode)==null||p.replaceChild(s,e);return}if(t.remove_ids&&e.removeAttribute("id"),t.remove_data_attrs){let l=Array.from(e.attributes).map(s=>s.name).filter(s=>s.startsWith("data-")&&!x(s));for(let s of l)e.removeAttribute(s)}if(e.hasAttribute("style")){let l=(o=e.getAttribute("style"))!=null?o:"",s=[];t.remove_styles?s=l.split(";").map(n=>n.trim()).filter(Boolean).filter(n=>{let c=n.indexOf(":"),f=c>=0?n.slice(0,c).trim():n;return y(f,t.preserve_styles)}):s=l.split(";").map(n=>n.trim()).filter(Boolean),t.strip_ms_office&&(s=s.filter(n=>{let c=n.indexOf(":"),f=c>=0?n.slice(0,c).trim().toLowerCase():n.toLowerCase();return!f.startsWith("mso-")&&f!=="tab-stop-num"&&f!=="-webkit-tap-highlight-color"})),s.length>0?e.setAttribute("style",s.join("; ")):e.removeAttribute("style")}if(t.remove_classes&&e.hasAttribute("class")){let n=((u=e.getAttribute("class"))!=null?u:"").split(/\s+/).filter(Boolean).filter(c=>_(c)||y(c,t.preserve_classes));n.length>0?e.setAttribute("class",n.join(" ")):e.removeAttribute("class")}t.strip_ms_office&&i!=="html"&&(e.removeAttribute("lang"),e.removeAttribute("xml:lang"))}function F(e,t){if(t.max_br>0){let r=`(?:\\s*){${t.max_br+1},}`,a="
".repeat(t.max_br);e=e.replace(new RegExp(r,"gi"),a)}if(t.max_empty_paragraphs>0){let r=`(?:]*>\\s*(?:| )*\\s*<\\/p>\\s*){${t.max_empty_paragraphs+1},}`,a=`

 

+"use strict";(()=>{var w=Object.defineProperty;var m=Object.getOwnPropertySymbols;var A=Object.prototype.hasOwnProperty,v=Object.prototype.propertyIsEnumerable;var d=(e,t,r)=>t in e?w(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,g=(e,t)=>{for(var r in t||(t={}))A.call(t,r)&&d(e,r,t[r]);if(m)for(var r of m(t))v.call(t,r)&&d(e,r,t[r]);return e};var P={strip_ms_office:!0,strip_google_docs:!0,remove_styles:!0,preserve_styles:[],remove_classes:!0,preserve_classes:[],remove_ids:!0,remove_data_attrs:!0,max_br:2,max_empty_paragraphs:2,allowed_tags:[],clean_internal_paste:!1};function _(e,t){for(let r of t)if(r.trim()!==""){if(r.startsWith("regex:"))try{if(new RegExp(r.slice(6),"i").test(e))return!0}catch(a){}else if(e.trim()===r.trim())return!0}return!1}function y(e){return/^for-/.test(e)||e==="media"?!0:/^img-/.test(e)||/^uk-(width|float|margin|display|box-shadow|border-rounded)/.test(e)||/^(float-(start|end)|mx-auto|w-100)$/.test(e)||/^col-/.test(e)}function x(e){return/^data-for-/.test(e)||e==="data-mce-selected"}function S(e){return e=e.replace(//gi,""),e=e.replace(/<\/?[a-z]:[^>]*>/gi,""),e=e.replace(/[\s\S]*?<\/xml>/gi,""),e=e.replace(//gi,""),e=e.replace(new RegExp("","gs"),""),e}function E(e){return e=e.replace(//gi,""),e=e.replace(//gi,""),e=e.replace(/\s+id="docs-internal-guid-[^"]*"/gi,""),e}function k(e){let t=e;for(;t&&t.nodeType===1;){if(t.tagName&&t.tagName.toLowerCase()==="figure"&&(t.getAttribute("class")||"").split(/\s+/).filter(Boolean).some(i=>y(i))||t.tagName&&t.tagName.toLowerCase()==="oembed")return!0;t=t.parentElement}return!1}function b(e,t,r){var p,o,u;if(k(e))return;let a=Array.from(e.children);for(let l of a)b(l,t,r);let i=e.tagName.toLowerCase();if(t.allowed_tags.length>0&&!t.allowed_tags.some(s=>s.toLowerCase()===i)){let s=r.createDocumentFragment();for(;e.firstChild;)s.appendChild(e.firstChild);(p=e.parentNode)==null||p.replaceChild(s,e);return}if(t.remove_ids&&e.removeAttribute("id"),t.remove_data_attrs){let l=Array.from(e.attributes).map(s=>s.name).filter(s=>s.startsWith("data-")&&!x(s));for(let s of l)e.removeAttribute(s)}if(e.hasAttribute("style")){let l=(o=e.getAttribute("style"))!=null?o:"",s=[];t.remove_styles?s=l.split(";").map(n=>n.trim()).filter(Boolean).filter(n=>{let c=n.indexOf(":"),f=c>=0?n.slice(0,c).trim():n;return _(f,t.preserve_styles)}):s=l.split(";").map(n=>n.trim()).filter(Boolean),t.strip_ms_office&&(s=s.filter(n=>{let c=n.indexOf(":"),f=c>=0?n.slice(0,c).trim().toLowerCase():n.toLowerCase();return!f.startsWith("mso-")&&f!=="tab-stop-num"&&f!=="-webkit-tap-highlight-color"})),s.length>0?e.setAttribute("style",s.join("; ")):e.removeAttribute("style")}if(t.remove_classes&&e.hasAttribute("class")){let n=((u=e.getAttribute("class"))!=null?u:"").split(/\s+/).filter(Boolean).filter(c=>y(c)||_(c,t.preserve_classes));n.length>0?e.setAttribute("class",n.join(" ")):e.removeAttribute("class")}t.strip_ms_office&&i!=="html"&&(e.removeAttribute("lang"),e.removeAttribute("xml:lang"))}function F(e,t){if(t.max_br>0){let r=`(?:\\s*){${t.max_br+1},}`,a="
".repeat(t.max_br);e=e.replace(new RegExp(r,"gi"),a)}if(t.max_empty_paragraphs>0){let r=`(?:]*>\\s*(?:| )*\\s*<\\/p>\\s*){${t.max_empty_paragraphs+1},}`,a=`

 

`.repeat(t.max_empty_paragraphs);e=e.replace(new RegExp(r,"gi"),a)}return e=e.replace(/(\r\n|\r|\n){3,}/g,` -`),e}function h(e,t){t.strip_ms_office&&(e=S(e)),t.strip_google_docs&&(e=E(e));let a=new DOMParser().parseFromString(""+e+"","text/html"),i=a.body;return b(i,t,a),e=i.innerHTML,e=F(e,t),e}function L(){var i,p;let e=new Set,r=(p=(i=window.rex)==null?void 0:i.tinyGlobalOptions)==null?void 0:p.style_formats;if(!Array.isArray(r))return[];let a=o=>{var c;if(!o||typeof o!="object")return;let u=(c=o.format)!=null?c:o;if(!u)return;let l=u.classes;typeof l=="string"?l.split(/\s+/).filter(Boolean).forEach(f=>e.add(f)):Array.isArray(l)&&l.forEach(f=>{typeof f=="string"&&e.add(f)});let s=u.items;Array.isArray(s)&&s.forEach(a);let n=o.items;Array.isArray(n)&&n.forEach(a)};return r.forEach(a),Array.from(e)}var N=()=>{tinymce.PluginManager.add("cleanpaste",e=>{var i,p;let t=(p=typeof tinyCleanPasteConfig!="undefined"?tinyCleanPasteConfig:null)!=null?p:(i=window.tinyCleanPasteConfig)!=null?i:{},r=g(g({},P),t),a=L();if(a.length>0){let o=new Set([...r.preserve_classes,...a]);r.preserve_classes=Array.from(o)}e.on("PastePreProcess",o=>{o.internal||o.content&&(o.content=h(o.content,r))})})},C=N;C();})(); +`),e}function h(e,t){t.strip_ms_office&&(e=S(e)),t.strip_google_docs&&(e=E(e));let a=new DOMParser().parseFromString(""+e+"","text/html"),i=a.body;return b(i,t,a),e=i.innerHTML,e=F(e,t),e}function L(){var i,p;let e=new Set,r=(p=(i=window.rex)==null?void 0:i.tinyGlobalOptions)==null?void 0:p.style_formats;if(!Array.isArray(r))return[];let a=o=>{var c;if(!o||typeof o!="object")return;let u=(c=o.format)!=null?c:o;if(!u)return;let l=u.classes;typeof l=="string"?l.split(/\s+/).filter(Boolean).forEach(f=>e.add(f)):Array.isArray(l)&&l.forEach(f=>{typeof f=="string"&&e.add(f)});let s=u.items;Array.isArray(s)&&s.forEach(a);let n=o.items;Array.isArray(n)&&n.forEach(a)};return r.forEach(a),Array.from(e)}var N=()=>{tinymce.PluginManager.add("cleanpaste",e=>{var i,p;let t=(p=typeof tinyCleanPasteConfig!="undefined"?tinyCleanPasteConfig:null)!=null?p:(i=window.tinyCleanPasteConfig)!=null?i:{},r=g(g({},P),t),a=L();if(a.length>0){let o=new Set([...r.preserve_classes,...a]);r.preserve_classes=Array.from(o)}e.on("PastePreProcess",o=>{o.internal&&!r.clean_internal_paste||o.content&&(o.content=h(o.content,r))})})},C=N;C();})(); diff --git a/custom_plugins/cleanpaste/dist/cleanpaste/plugin.js b/custom_plugins/cleanpaste/dist/cleanpaste/plugin.js index eaf514ed..3bd8a0d3 100644 --- a/custom_plugins/cleanpaste/dist/cleanpaste/plugin.js +++ b/custom_plugins/cleanpaste/dist/cleanpaste/plugin.js @@ -1,4 +1,4 @@ -"use strict";(()=>{var w=Object.defineProperty;var m=Object.getOwnPropertySymbols;var A=Object.prototype.hasOwnProperty,v=Object.prototype.propertyIsEnumerable;var d=(e,t,r)=>t in e?w(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,g=(e,t)=>{for(var r in t||(t={}))A.call(t,r)&&d(e,r,t[r]);if(m)for(var r of m(t))v.call(t,r)&&d(e,r,t[r]);return e};var P={strip_ms_office:!0,strip_google_docs:!0,remove_styles:!0,preserve_styles:[],remove_classes:!0,preserve_classes:[],remove_ids:!0,remove_data_attrs:!0,max_br:2,max_empty_paragraphs:2,allowed_tags:[]};function y(e,t){for(let r of t)if(r.trim()!==""){if(r.startsWith("regex:"))try{if(new RegExp(r.slice(6),"i").test(e))return!0}catch(a){}else if(e.trim()===r.trim())return!0}return!1}function _(e){return/^for-/.test(e)||e==="media"?!0:/^img-/.test(e)||/^uk-(width|float|margin|display|box-shadow|border-rounded)/.test(e)||/^(float-(start|end)|mx-auto|w-100)$/.test(e)||/^col-/.test(e)}function x(e){return/^data-for-/.test(e)||e==="data-mce-selected"}function S(e){return e=e.replace(//gi,""),e=e.replace(/<\/?[a-z]:[^>]*>/gi,""),e=e.replace(/[\s\S]*?<\/xml>/gi,""),e=e.replace(//gi,""),e=e.replace(new RegExp("","gs"),""),e}function E(e){return e=e.replace(//gi,""),e=e.replace(//gi,""),e=e.replace(/\s+id="docs-internal-guid-[^"]*"/gi,""),e}function k(e){let t=e;for(;t&&t.nodeType===1;){if(t.tagName&&t.tagName.toLowerCase()==="figure"&&(t.getAttribute("class")||"").split(/\s+/).filter(Boolean).some(i=>_(i))||t.tagName&&t.tagName.toLowerCase()==="oembed")return!0;t=t.parentElement}return!1}function b(e,t,r){var p,o,u;if(k(e))return;let a=Array.from(e.children);for(let l of a)b(l,t,r);let i=e.tagName.toLowerCase();if(t.allowed_tags.length>0&&!t.allowed_tags.some(s=>s.toLowerCase()===i)){let s=r.createDocumentFragment();for(;e.firstChild;)s.appendChild(e.firstChild);(p=e.parentNode)==null||p.replaceChild(s,e);return}if(t.remove_ids&&e.removeAttribute("id"),t.remove_data_attrs){let l=Array.from(e.attributes).map(s=>s.name).filter(s=>s.startsWith("data-")&&!x(s));for(let s of l)e.removeAttribute(s)}if(e.hasAttribute("style")){let l=(o=e.getAttribute("style"))!=null?o:"",s=[];t.remove_styles?s=l.split(";").map(n=>n.trim()).filter(Boolean).filter(n=>{let c=n.indexOf(":"),f=c>=0?n.slice(0,c).trim():n;return y(f,t.preserve_styles)}):s=l.split(";").map(n=>n.trim()).filter(Boolean),t.strip_ms_office&&(s=s.filter(n=>{let c=n.indexOf(":"),f=c>=0?n.slice(0,c).trim().toLowerCase():n.toLowerCase();return!f.startsWith("mso-")&&f!=="tab-stop-num"&&f!=="-webkit-tap-highlight-color"})),s.length>0?e.setAttribute("style",s.join("; ")):e.removeAttribute("style")}if(t.remove_classes&&e.hasAttribute("class")){let n=((u=e.getAttribute("class"))!=null?u:"").split(/\s+/).filter(Boolean).filter(c=>_(c)||y(c,t.preserve_classes));n.length>0?e.setAttribute("class",n.join(" ")):e.removeAttribute("class")}t.strip_ms_office&&i!=="html"&&(e.removeAttribute("lang"),e.removeAttribute("xml:lang"))}function F(e,t){if(t.max_br>0){let r=`(?:\\s*){${t.max_br+1},}`,a="
".repeat(t.max_br);e=e.replace(new RegExp(r,"gi"),a)}if(t.max_empty_paragraphs>0){let r=`(?:]*>\\s*(?:| )*\\s*<\\/p>\\s*){${t.max_empty_paragraphs+1},}`,a=`

 

+"use strict";(()=>{var w=Object.defineProperty;var m=Object.getOwnPropertySymbols;var A=Object.prototype.hasOwnProperty,v=Object.prototype.propertyIsEnumerable;var d=(e,t,r)=>t in e?w(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,g=(e,t)=>{for(var r in t||(t={}))A.call(t,r)&&d(e,r,t[r]);if(m)for(var r of m(t))v.call(t,r)&&d(e,r,t[r]);return e};var P={strip_ms_office:!0,strip_google_docs:!0,remove_styles:!0,preserve_styles:[],remove_classes:!0,preserve_classes:[],remove_ids:!0,remove_data_attrs:!0,max_br:2,max_empty_paragraphs:2,allowed_tags:[],clean_internal_paste:!1};function _(e,t){for(let r of t)if(r.trim()!==""){if(r.startsWith("regex:"))try{if(new RegExp(r.slice(6),"i").test(e))return!0}catch(a){}else if(e.trim()===r.trim())return!0}return!1}function y(e){return/^for-/.test(e)||e==="media"?!0:/^img-/.test(e)||/^uk-(width|float|margin|display|box-shadow|border-rounded)/.test(e)||/^(float-(start|end)|mx-auto|w-100)$/.test(e)||/^col-/.test(e)}function x(e){return/^data-for-/.test(e)||e==="data-mce-selected"}function S(e){return e=e.replace(//gi,""),e=e.replace(/<\/?[a-z]:[^>]*>/gi,""),e=e.replace(/[\s\S]*?<\/xml>/gi,""),e=e.replace(//gi,""),e=e.replace(new RegExp("","gs"),""),e}function E(e){return e=e.replace(//gi,""),e=e.replace(//gi,""),e=e.replace(/\s+id="docs-internal-guid-[^"]*"/gi,""),e}function k(e){let t=e;for(;t&&t.nodeType===1;){if(t.tagName&&t.tagName.toLowerCase()==="figure"&&(t.getAttribute("class")||"").split(/\s+/).filter(Boolean).some(i=>y(i))||t.tagName&&t.tagName.toLowerCase()==="oembed")return!0;t=t.parentElement}return!1}function b(e,t,r){var p,o,u;if(k(e))return;let a=Array.from(e.children);for(let l of a)b(l,t,r);let i=e.tagName.toLowerCase();if(t.allowed_tags.length>0&&!t.allowed_tags.some(s=>s.toLowerCase()===i)){let s=r.createDocumentFragment();for(;e.firstChild;)s.appendChild(e.firstChild);(p=e.parentNode)==null||p.replaceChild(s,e);return}if(t.remove_ids&&e.removeAttribute("id"),t.remove_data_attrs){let l=Array.from(e.attributes).map(s=>s.name).filter(s=>s.startsWith("data-")&&!x(s));for(let s of l)e.removeAttribute(s)}if(e.hasAttribute("style")){let l=(o=e.getAttribute("style"))!=null?o:"",s=[];t.remove_styles?s=l.split(";").map(n=>n.trim()).filter(Boolean).filter(n=>{let c=n.indexOf(":"),f=c>=0?n.slice(0,c).trim():n;return _(f,t.preserve_styles)}):s=l.split(";").map(n=>n.trim()).filter(Boolean),t.strip_ms_office&&(s=s.filter(n=>{let c=n.indexOf(":"),f=c>=0?n.slice(0,c).trim().toLowerCase():n.toLowerCase();return!f.startsWith("mso-")&&f!=="tab-stop-num"&&f!=="-webkit-tap-highlight-color"})),s.length>0?e.setAttribute("style",s.join("; ")):e.removeAttribute("style")}if(t.remove_classes&&e.hasAttribute("class")){let n=((u=e.getAttribute("class"))!=null?u:"").split(/\s+/).filter(Boolean).filter(c=>y(c)||_(c,t.preserve_classes));n.length>0?e.setAttribute("class",n.join(" ")):e.removeAttribute("class")}t.strip_ms_office&&i!=="html"&&(e.removeAttribute("lang"),e.removeAttribute("xml:lang"))}function F(e,t){if(t.max_br>0){let r=`(?:\\s*){${t.max_br+1},}`,a="
".repeat(t.max_br);e=e.replace(new RegExp(r,"gi"),a)}if(t.max_empty_paragraphs>0){let r=`(?:]*>\\s*(?:| )*\\s*<\\/p>\\s*){${t.max_empty_paragraphs+1},}`,a=`

 

`.repeat(t.max_empty_paragraphs);e=e.replace(new RegExp(r,"gi"),a)}return e=e.replace(/(\r\n|\r|\n){3,}/g,` -`),e}function h(e,t){t.strip_ms_office&&(e=S(e)),t.strip_google_docs&&(e=E(e));let a=new DOMParser().parseFromString(""+e+"","text/html"),i=a.body;return b(i,t,a),e=i.innerHTML,e=F(e,t),e}function L(){var i,p;let e=new Set,r=(p=(i=window.rex)==null?void 0:i.tinyGlobalOptions)==null?void 0:p.style_formats;if(!Array.isArray(r))return[];let a=o=>{var c;if(!o||typeof o!="object")return;let u=(c=o.format)!=null?c:o;if(!u)return;let l=u.classes;typeof l=="string"?l.split(/\s+/).filter(Boolean).forEach(f=>e.add(f)):Array.isArray(l)&&l.forEach(f=>{typeof f=="string"&&e.add(f)});let s=u.items;Array.isArray(s)&&s.forEach(a);let n=o.items;Array.isArray(n)&&n.forEach(a)};return r.forEach(a),Array.from(e)}var N=()=>{tinymce.PluginManager.add("cleanpaste",e=>{var i,p;let t=(p=typeof tinyCleanPasteConfig!="undefined"?tinyCleanPasteConfig:null)!=null?p:(i=window.tinyCleanPasteConfig)!=null?i:{},r=g(g({},P),t),a=L();if(a.length>0){let o=new Set([...r.preserve_classes,...a]);r.preserve_classes=Array.from(o)}e.on("PastePreProcess",o=>{o.internal||o.content&&(o.content=h(o.content,r))})})},C=N;C();})(); +`),e}function h(e,t){t.strip_ms_office&&(e=S(e)),t.strip_google_docs&&(e=E(e));let a=new DOMParser().parseFromString(""+e+"","text/html"),i=a.body;return b(i,t,a),e=i.innerHTML,e=F(e,t),e}function L(){var i,p;let e=new Set,r=(p=(i=window.rex)==null?void 0:i.tinyGlobalOptions)==null?void 0:p.style_formats;if(!Array.isArray(r))return[];let a=o=>{var c;if(!o||typeof o!="object")return;let u=(c=o.format)!=null?c:o;if(!u)return;let l=u.classes;typeof l=="string"?l.split(/\s+/).filter(Boolean).forEach(f=>e.add(f)):Array.isArray(l)&&l.forEach(f=>{typeof f=="string"&&e.add(f)});let s=u.items;Array.isArray(s)&&s.forEach(a);let n=o.items;Array.isArray(n)&&n.forEach(a)};return r.forEach(a),Array.from(e)}var N=()=>{tinymce.PluginManager.add("cleanpaste",e=>{var i,p;let t=(p=typeof tinyCleanPasteConfig!="undefined"?tinyCleanPasteConfig:null)!=null?p:(i=window.tinyCleanPasteConfig)!=null?i:{},r=g(g({},P),t),a=L();if(a.length>0){let o=new Set([...r.preserve_classes,...a]);r.preserve_classes=Array.from(o)}e.on("PastePreProcess",o=>{o.internal&&!r.clean_internal_paste||o.content&&(o.content=h(o.content,r))})})},C=N;C();})(); diff --git a/custom_plugins/cleanpaste/dist/cleanpaste/plugin.min.js b/custom_plugins/cleanpaste/dist/cleanpaste/plugin.min.js index eaf514ed..3bd8a0d3 100644 --- a/custom_plugins/cleanpaste/dist/cleanpaste/plugin.min.js +++ b/custom_plugins/cleanpaste/dist/cleanpaste/plugin.min.js @@ -1,4 +1,4 @@ -"use strict";(()=>{var w=Object.defineProperty;var m=Object.getOwnPropertySymbols;var A=Object.prototype.hasOwnProperty,v=Object.prototype.propertyIsEnumerable;var d=(e,t,r)=>t in e?w(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,g=(e,t)=>{for(var r in t||(t={}))A.call(t,r)&&d(e,r,t[r]);if(m)for(var r of m(t))v.call(t,r)&&d(e,r,t[r]);return e};var P={strip_ms_office:!0,strip_google_docs:!0,remove_styles:!0,preserve_styles:[],remove_classes:!0,preserve_classes:[],remove_ids:!0,remove_data_attrs:!0,max_br:2,max_empty_paragraphs:2,allowed_tags:[]};function y(e,t){for(let r of t)if(r.trim()!==""){if(r.startsWith("regex:"))try{if(new RegExp(r.slice(6),"i").test(e))return!0}catch(a){}else if(e.trim()===r.trim())return!0}return!1}function _(e){return/^for-/.test(e)||e==="media"?!0:/^img-/.test(e)||/^uk-(width|float|margin|display|box-shadow|border-rounded)/.test(e)||/^(float-(start|end)|mx-auto|w-100)$/.test(e)||/^col-/.test(e)}function x(e){return/^data-for-/.test(e)||e==="data-mce-selected"}function S(e){return e=e.replace(//gi,""),e=e.replace(/<\/?[a-z]:[^>]*>/gi,""),e=e.replace(/[\s\S]*?<\/xml>/gi,""),e=e.replace(//gi,""),e=e.replace(new RegExp("","gs"),""),e}function E(e){return e=e.replace(//gi,""),e=e.replace(//gi,""),e=e.replace(/\s+id="docs-internal-guid-[^"]*"/gi,""),e}function k(e){let t=e;for(;t&&t.nodeType===1;){if(t.tagName&&t.tagName.toLowerCase()==="figure"&&(t.getAttribute("class")||"").split(/\s+/).filter(Boolean).some(i=>_(i))||t.tagName&&t.tagName.toLowerCase()==="oembed")return!0;t=t.parentElement}return!1}function b(e,t,r){var p,o,u;if(k(e))return;let a=Array.from(e.children);for(let l of a)b(l,t,r);let i=e.tagName.toLowerCase();if(t.allowed_tags.length>0&&!t.allowed_tags.some(s=>s.toLowerCase()===i)){let s=r.createDocumentFragment();for(;e.firstChild;)s.appendChild(e.firstChild);(p=e.parentNode)==null||p.replaceChild(s,e);return}if(t.remove_ids&&e.removeAttribute("id"),t.remove_data_attrs){let l=Array.from(e.attributes).map(s=>s.name).filter(s=>s.startsWith("data-")&&!x(s));for(let s of l)e.removeAttribute(s)}if(e.hasAttribute("style")){let l=(o=e.getAttribute("style"))!=null?o:"",s=[];t.remove_styles?s=l.split(";").map(n=>n.trim()).filter(Boolean).filter(n=>{let c=n.indexOf(":"),f=c>=0?n.slice(0,c).trim():n;return y(f,t.preserve_styles)}):s=l.split(";").map(n=>n.trim()).filter(Boolean),t.strip_ms_office&&(s=s.filter(n=>{let c=n.indexOf(":"),f=c>=0?n.slice(0,c).trim().toLowerCase():n.toLowerCase();return!f.startsWith("mso-")&&f!=="tab-stop-num"&&f!=="-webkit-tap-highlight-color"})),s.length>0?e.setAttribute("style",s.join("; ")):e.removeAttribute("style")}if(t.remove_classes&&e.hasAttribute("class")){let n=((u=e.getAttribute("class"))!=null?u:"").split(/\s+/).filter(Boolean).filter(c=>_(c)||y(c,t.preserve_classes));n.length>0?e.setAttribute("class",n.join(" ")):e.removeAttribute("class")}t.strip_ms_office&&i!=="html"&&(e.removeAttribute("lang"),e.removeAttribute("xml:lang"))}function F(e,t){if(t.max_br>0){let r=`(?:\\s*){${t.max_br+1},}`,a="
".repeat(t.max_br);e=e.replace(new RegExp(r,"gi"),a)}if(t.max_empty_paragraphs>0){let r=`(?:]*>\\s*(?:| )*\\s*<\\/p>\\s*){${t.max_empty_paragraphs+1},}`,a=`

 

+"use strict";(()=>{var w=Object.defineProperty;var m=Object.getOwnPropertySymbols;var A=Object.prototype.hasOwnProperty,v=Object.prototype.propertyIsEnumerable;var d=(e,t,r)=>t in e?w(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,g=(e,t)=>{for(var r in t||(t={}))A.call(t,r)&&d(e,r,t[r]);if(m)for(var r of m(t))v.call(t,r)&&d(e,r,t[r]);return e};var P={strip_ms_office:!0,strip_google_docs:!0,remove_styles:!0,preserve_styles:[],remove_classes:!0,preserve_classes:[],remove_ids:!0,remove_data_attrs:!0,max_br:2,max_empty_paragraphs:2,allowed_tags:[],clean_internal_paste:!1};function _(e,t){for(let r of t)if(r.trim()!==""){if(r.startsWith("regex:"))try{if(new RegExp(r.slice(6),"i").test(e))return!0}catch(a){}else if(e.trim()===r.trim())return!0}return!1}function y(e){return/^for-/.test(e)||e==="media"?!0:/^img-/.test(e)||/^uk-(width|float|margin|display|box-shadow|border-rounded)/.test(e)||/^(float-(start|end)|mx-auto|w-100)$/.test(e)||/^col-/.test(e)}function x(e){return/^data-for-/.test(e)||e==="data-mce-selected"}function S(e){return e=e.replace(//gi,""),e=e.replace(/<\/?[a-z]:[^>]*>/gi,""),e=e.replace(/[\s\S]*?<\/xml>/gi,""),e=e.replace(//gi,""),e=e.replace(new RegExp("","gs"),""),e}function E(e){return e=e.replace(//gi,""),e=e.replace(//gi,""),e=e.replace(/\s+id="docs-internal-guid-[^"]*"/gi,""),e}function k(e){let t=e;for(;t&&t.nodeType===1;){if(t.tagName&&t.tagName.toLowerCase()==="figure"&&(t.getAttribute("class")||"").split(/\s+/).filter(Boolean).some(i=>y(i))||t.tagName&&t.tagName.toLowerCase()==="oembed")return!0;t=t.parentElement}return!1}function b(e,t,r){var p,o,u;if(k(e))return;let a=Array.from(e.children);for(let l of a)b(l,t,r);let i=e.tagName.toLowerCase();if(t.allowed_tags.length>0&&!t.allowed_tags.some(s=>s.toLowerCase()===i)){let s=r.createDocumentFragment();for(;e.firstChild;)s.appendChild(e.firstChild);(p=e.parentNode)==null||p.replaceChild(s,e);return}if(t.remove_ids&&e.removeAttribute("id"),t.remove_data_attrs){let l=Array.from(e.attributes).map(s=>s.name).filter(s=>s.startsWith("data-")&&!x(s));for(let s of l)e.removeAttribute(s)}if(e.hasAttribute("style")){let l=(o=e.getAttribute("style"))!=null?o:"",s=[];t.remove_styles?s=l.split(";").map(n=>n.trim()).filter(Boolean).filter(n=>{let c=n.indexOf(":"),f=c>=0?n.slice(0,c).trim():n;return _(f,t.preserve_styles)}):s=l.split(";").map(n=>n.trim()).filter(Boolean),t.strip_ms_office&&(s=s.filter(n=>{let c=n.indexOf(":"),f=c>=0?n.slice(0,c).trim().toLowerCase():n.toLowerCase();return!f.startsWith("mso-")&&f!=="tab-stop-num"&&f!=="-webkit-tap-highlight-color"})),s.length>0?e.setAttribute("style",s.join("; ")):e.removeAttribute("style")}if(t.remove_classes&&e.hasAttribute("class")){let n=((u=e.getAttribute("class"))!=null?u:"").split(/\s+/).filter(Boolean).filter(c=>y(c)||_(c,t.preserve_classes));n.length>0?e.setAttribute("class",n.join(" ")):e.removeAttribute("class")}t.strip_ms_office&&i!=="html"&&(e.removeAttribute("lang"),e.removeAttribute("xml:lang"))}function F(e,t){if(t.max_br>0){let r=`(?:\\s*){${t.max_br+1},}`,a="
".repeat(t.max_br);e=e.replace(new RegExp(r,"gi"),a)}if(t.max_empty_paragraphs>0){let r=`(?:]*>\\s*(?:| )*\\s*<\\/p>\\s*){${t.max_empty_paragraphs+1},}`,a=`

 

`.repeat(t.max_empty_paragraphs);e=e.replace(new RegExp(r,"gi"),a)}return e=e.replace(/(\r\n|\r|\n){3,}/g,` -`),e}function h(e,t){t.strip_ms_office&&(e=S(e)),t.strip_google_docs&&(e=E(e));let a=new DOMParser().parseFromString(""+e+"","text/html"),i=a.body;return b(i,t,a),e=i.innerHTML,e=F(e,t),e}function L(){var i,p;let e=new Set,r=(p=(i=window.rex)==null?void 0:i.tinyGlobalOptions)==null?void 0:p.style_formats;if(!Array.isArray(r))return[];let a=o=>{var c;if(!o||typeof o!="object")return;let u=(c=o.format)!=null?c:o;if(!u)return;let l=u.classes;typeof l=="string"?l.split(/\s+/).filter(Boolean).forEach(f=>e.add(f)):Array.isArray(l)&&l.forEach(f=>{typeof f=="string"&&e.add(f)});let s=u.items;Array.isArray(s)&&s.forEach(a);let n=o.items;Array.isArray(n)&&n.forEach(a)};return r.forEach(a),Array.from(e)}var N=()=>{tinymce.PluginManager.add("cleanpaste",e=>{var i,p;let t=(p=typeof tinyCleanPasteConfig!="undefined"?tinyCleanPasteConfig:null)!=null?p:(i=window.tinyCleanPasteConfig)!=null?i:{},r=g(g({},P),t),a=L();if(a.length>0){let o=new Set([...r.preserve_classes,...a]);r.preserve_classes=Array.from(o)}e.on("PastePreProcess",o=>{o.internal||o.content&&(o.content=h(o.content,r))})})},C=N;C();})(); +`),e}function h(e,t){t.strip_ms_office&&(e=S(e)),t.strip_google_docs&&(e=E(e));let a=new DOMParser().parseFromString(""+e+"","text/html"),i=a.body;return b(i,t,a),e=i.innerHTML,e=F(e,t),e}function L(){var i,p;let e=new Set,r=(p=(i=window.rex)==null?void 0:i.tinyGlobalOptions)==null?void 0:p.style_formats;if(!Array.isArray(r))return[];let a=o=>{var c;if(!o||typeof o!="object")return;let u=(c=o.format)!=null?c:o;if(!u)return;let l=u.classes;typeof l=="string"?l.split(/\s+/).filter(Boolean).forEach(f=>e.add(f)):Array.isArray(l)&&l.forEach(f=>{typeof f=="string"&&e.add(f)});let s=u.items;Array.isArray(s)&&s.forEach(a);let n=o.items;Array.isArray(n)&&n.forEach(a)};return r.forEach(a),Array.from(e)}var N=()=>{tinymce.PluginManager.add("cleanpaste",e=>{var i,p;let t=(p=typeof tinyCleanPasteConfig!="undefined"?tinyCleanPasteConfig:null)!=null?p:(i=window.tinyCleanPasteConfig)!=null?i:{},r=g(g({},P),t),a=L();if(a.length>0){let o=new Set([...r.preserve_classes,...a]);r.preserve_classes=Array.from(o)}e.on("PastePreProcess",o=>{o.internal&&!r.clean_internal_paste||o.content&&(o.content=h(o.content,r))})})},C=N;C();})(); diff --git a/custom_plugins/cleanpaste/src/main/ts/Plugin.ts b/custom_plugins/cleanpaste/src/main/ts/Plugin.ts index 4c475803..a3f98485 100644 --- a/custom_plugins/cleanpaste/src/main/ts/Plugin.ts +++ b/custom_plugins/cleanpaste/src/main/ts/Plugin.ts @@ -19,6 +19,7 @@ interface CleanPasteConfig { max_br: number; // 0 = no limit max_empty_paragraphs: number; // 0 = no limit allowed_tags: string[]; // empty array = allow all tags + clean_internal_paste: boolean; // if true, also clean pastes originating inside TinyMCE itself } /* ================================================================== */ @@ -38,6 +39,7 @@ const defaultConfig: CleanPasteConfig = { max_br: 2, max_empty_paragraphs: 2, allowed_tags: [], + clean_internal_paste: false, }; /* ================================================================== */ @@ -388,11 +390,15 @@ const Plugin = (): void => { } editor.on('PastePreProcess', (e: { content: string; internal?: boolean }) => { - // Skip cleanup for internal pastes (cut/copy/paste inside the same editor). - // Otherwise styles applied via Style-Sets or content inserted via the - // snippets plugin would lose their classes/styles when the user copies - // and re-pastes them inside the editor. - if (e.internal) { + // Skip cleanup for internal pastes (cut/copy/paste inside the same editor) + // by default. Otherwise styles applied via Style-Sets or content inserted + // via the snippets plugin would lose their classes/styles when the user + // copies and re-pastes them inside the editor. + // + // Opt-in via config flag `clean_internal_paste`: when enabled, internal + // pastes are also bereinigt (so z.B. eingefärbte Schrift verliert beim + // Copy/Paste innerhalb des Editors ihre Inline-Farbe). + if (e.internal && !config.clean_internal_paste) { return; } if (e.content) { diff --git a/lang/de_de.lang b/lang/de_de.lang index 04156e13..23fbb7c1 100644 --- a/lang/de_de.lang +++ b/lang/de_de.lang @@ -312,6 +312,8 @@ tinymce_cleanpaste_strip_ms_office = MS Office Markup entfernen tinymce_cleanpaste_strip_ms_office_help = Entfernt bedingte Kommentare, Office-XML-Namespace-Tags (o:p, w:sdtPr usw.) und mso-* CSS-Eigenschaften. tinymce_cleanpaste_strip_google_docs = Google Docs Markup entfernen tinymce_cleanpaste_strip_google_docs_help = Entfernt startFragment/endFragment-Kommentare und interne Google-IDs. +tinymce_cleanpaste_clean_internal_paste = Auch interne Pastes bereinigen +tinymce_cleanpaste_clean_internal_paste_help = Standardmäßig werden Copy/Paste-Vorgänge innerhalb desselben Editors (z. B. Style-Sets, Snippets, eingefärbte Schrift) nicht bereinigt, damit diese Formatierungen erhalten bleiben. Aktivieren, wenn auch beim editor-internen Einfügen Inline-Styles, Klassen usw. konsequent gemäß den Regeln oben entfernt werden sollen. tinymce_cleanpaste_section_styles = Klassen & Styles tinymce_cleanpaste_remove_styles = Inline-Styles entfernen diff --git a/lang/en_gb.lang b/lang/en_gb.lang index 0e902927..fd5c758e 100644 --- a/lang/en_gb.lang +++ b/lang/en_gb.lang @@ -307,8 +307,8 @@ tinymce_cleanpaste_section_source = Source cleanup tinymce_cleanpaste_strip_ms_office = Remove MS Office markup tinymce_cleanpaste_strip_ms_office_help = Removes conditional comments, Office XML namespace tags (o:p, w:sdtPr etc.) and mso-* CSS properties. tinymce_cleanpaste_strip_google_docs = Remove Google Docs markup -tinymce_cleanpaste_strip_google_docs_help = Removes startFragment/endFragment comments and internal Google IDs. - +tinymce_cleanpaste_strip_google_docs_help = Removes startFragment/endFragment comments and internal Google IDs.tinymce_cleanpaste_clean_internal_paste = Also clean internal pastes +tinymce_cleanpaste_clean_internal_paste_help = By default, copy/paste operations inside the same editor (e.g. style-sets, snippets, coloured text) are not cleaned so those formats survive. Enable to also strip inline styles, classes etc. on editor-internal pastes according to the rules above. tinymce_cleanpaste_section_styles = Classes & styles tinymce_cleanpaste_remove_styles = Remove inline styles tinymce_cleanpaste_remove_styles_help = Removes all style="..." attributes from pasted content. diff --git a/lang/sv_se.lang b/lang/sv_se.lang index b24e7f55..be06b2f2 100644 --- a/lang/sv_se.lang +++ b/lang/sv_se.lang @@ -312,6 +312,8 @@ tinymce_cleanpaste_strip_ms_office = Ta bort MS Office-markup tinymce_cleanpaste_strip_ms_office_help = Tar bort villkorliga kommentarer, Office-XML-namnrymder (o:p, w:sdtPr osv.) och mso-* CSS-egenskaper. tinymce_cleanpaste_strip_google_docs = Ta bort Google Docs-markup tinymce_cleanpaste_strip_google_docs_help = Tar bort startFragment/endFragment-kommentarer och interna Google-ID:n. +tinymce_cleanpaste_clean_internal_paste = Rensa även interna klistringar +tinymce_cleanpaste_clean_internal_paste_help = Som standard rensas inte kopiera/klistra in inom samma editor (t.ex. style-sets, snippets, färgad text) så att dessa format behålls. Aktivera för att även ta bort inline-stilar, klasser m.m. vid interna klistringar enligt reglerna ovan. tinymce_cleanpaste_section_styles = Klasser & stilar tinymce_cleanpaste_remove_styles = Ta bort inline-stilar diff --git a/lib/TinyMce/Creator/Profiles.php b/lib/TinyMce/Creator/Profiles.php index 0081919c..053c9e94 100644 --- a/lib/TinyMce/Creator/Profiles.php +++ b/lib/TinyMce/Creator/Profiles.php @@ -92,6 +92,7 @@ public static function profilesCreate(?array $getProfile = null): void 'max_br' => 2, 'max_empty_paragraphs' => 2, 'allowed_tags' => [], + 'clean_internal_paste' => false, ]); $cleanPasteConfigJs = json_encode($cleanPasteCfg, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES); diff --git a/lib/TinyMce/Provider/Assets.php b/lib/TinyMce/Provider/Assets.php index 9a2be718..ad5f8d2c 100644 --- a/lib/TinyMce/Provider/Assets.php +++ b/lib/TinyMce/Provider/Assets.php @@ -219,6 +219,7 @@ public static function provideCleanPasteConfig(): void 'max_br' => 2, 'max_empty_paragraphs' => 2, 'allowed_tags' => [], + 'clean_internal_paste' => false, ]); \rex_view::setJsProperty('tinyCleanPasteConfig', $cfg); diff --git a/pages/paste_settings.php b/pages/paste_settings.php index 6c6fac96..12011ea3 100644 --- a/pages/paste_settings.php +++ b/pages/paste_settings.php @@ -26,6 +26,7 @@ 'allowed_tags' => array_values(array_filter( array_map('trim', explode("\n", rex_request::request('allowed_tags', 'string', ''))) )), + 'clean_internal_paste' => (bool) rex_request::request('clean_internal_paste', 'boolean', false), ]; $addon->setConfig('cleanpaste_settings', $settings); @@ -50,7 +51,8 @@ * remove_data_attrs: bool, * max_br: int, * max_empty_paragraphs: int, - * allowed_tags: list + * allowed_tags: list, + * clean_internal_paste: bool * } $cfg */ $cfg = $addon->getConfig('cleanpaste_settings', [ 'strip_ms_office' => true, @@ -64,6 +66,7 @@ 'max_br' => 2, 'max_empty_paragraphs' => 2, 'allowed_tags' => [], + 'clean_internal_paste' => false, ]); echo $message; @@ -106,6 +109,20 @@ +
+
+
+
+ +
+

i18n('cleanpaste_clean_internal_paste_help') ?>

+
+
+
From f1b1b3f8275a4709b6282049bf0dbad1212023c6 Mon Sep 17 00:00:00 2001 From: Thomas Skerbis Date: Tue, 19 May 2026 13:39:44 +0200 Subject: [PATCH 3/3] cs fixes --- ensure_table.php | 1 + lib/TinyMce/Provider/Assets.php | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/ensure_table.php b/ensure_table.php index 01afab1d..01ac0e13 100644 --- a/ensure_table.php +++ b/ensure_table.php @@ -1,4 +1,5 @@ + * @return array */ private static function loadProfileNamesById(): array { + /** @var array $map */ $map = []; try {