From e66d1c5afd4c90c56c0029a6b45007e20a406e99 Mon Sep 17 00:00:00 2001 From: Mitsuru Mutaguchi Date: Sun, 4 May 2025 03:20:22 +0900 Subject: [PATCH] =?UTF-8?q?change:=20JS=E3=83=A9=E3=82=A4=E3=83=96?= =?UTF-8?q?=E3=83=A9=E3=83=AA,=20WYSIWYG,=20=E3=83=86=E3=83=BC=E3=83=9E?= =?UTF-8?q?=E7=AE=A1=E7=90=86,=20tinymce6=E2=86=927=E3=81=B8=E3=82=A2?= =?UTF-8?q?=E3=83=83=E3=83=97=E3=83=87=E3=83=BC=E3=83=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Manage/ThemeManage/ThemeManage.php | 11 +++-- package-lock.json | 40 +++++++++---------- package.json | 2 +- public/js/app.js | 2 +- public/js/app.js.LICENSE.txt | 2 + public/mix-manifest.json | 2 +- resources/js/bootstrap.js | 6 +-- resources/js/tinymce/langs/ja.js | 2 +- resources/js/tinymce/plugins/image/plugin.js | 21 +++++----- .../views/plugins/common/wysiwyg.blade.php | 35 +++++----------- .../plugins/manage/theme/theme.blade.php | 3 +- .../manage/theme/theme_manage_tab.blade.php | 3 +- 12 files changed, 61 insertions(+), 68 deletions(-) diff --git a/app/Plugins/Manage/ThemeManage/ThemeManage.php b/app/Plugins/Manage/ThemeManage/ThemeManage.php index 80317a922..d3e432b42 100644 --- a/app/Plugins/Manage/ThemeManage/ThemeManage.php +++ b/app/Plugins/Manage/ThemeManage/ThemeManage.php @@ -32,7 +32,7 @@ public function declareRole() $role_ckeck_table["create"] = array('admin_site'); $role_ckeck_table["editCss"] = array('admin_site'); $role_ckeck_table["saveCss"] = array('admin_site'); - $role_ckeck_table["editTemplate"] = array('admin_site'); + // $role_ckeck_table["editTemplate"] = array('admin_site'); $role_ckeck_table["saveTemplate"] = array('admin_site'); $role_ckeck_table["editJs"] = array('admin_site'); $role_ckeck_table["saveJs"] = array('admin_site'); @@ -386,13 +386,15 @@ public function saveCss($request, $id) ]); } + // delete: tinymce7対応. template はTinyMCE 7.xのオープンソース版から削除されてPremium版に移りました /** * テンプレート編集画面 * - * @method_title テンプレート編集 - * @method_desc ユーザ・テーマ毎のテンプレートを画面で編集できます。 - * @method_detail 保存したテンプレートは選択したテーマで反映されます。 + * method_title テンプレート編集 + * method_desc ユーザ・テーマ毎のテンプレートを画面で編集できます。 + * method_detail 保存したテンプレートは選択したテーマで反映されます。 */ + /* public function editTemplate($request, $id) { // httpメソッド確認 @@ -426,6 +428,7 @@ public function editTemplate($request, $id) "template" => $template, ]); } + */ /** * テンプレート保存画面 diff --git a/package-lock.json b/package-lock.json index 5a7c6cbfb..8106b5112 100644 --- a/package-lock.json +++ b/package-lock.json @@ -25,7 +25,7 @@ "sass": "^1.62.1", "sass-loader": "^12.6.0", "sortablejs": "^1.15.2", - "tinymce": "^6.8.5", + "tinymce": "^7.8.0", "vue": "^3.5.13", "vue-loader": "^17.3.0" } @@ -1814,9 +1814,9 @@ } }, "node_modules/@codemirror/view": { - "version": "6.36.6", - "resolved": "https://registry.npmjs.org/@codemirror/view/-/view-6.36.6.tgz", - "integrity": "sha512-uxugGLet+Nzp0Jcit8Hn3LypM8ioMLKTsdf8FRoT3HWvZtb9GhaWMe0Cc15rz90Ljab4YFJiAulmIVB74OY0IQ==", + "version": "6.36.7", + "resolved": "https://registry.npmjs.org/@codemirror/view/-/view-6.36.7.tgz", + "integrity": "sha512-kCWGW/chWGPgZqfZ36Um9Iz0X2IVpmCjg1P/qY6B6a2ecXtWRRAigmpJ6YgUQ5lTWXMyyVdfmpzhLZmsZQMbtg==", "dev": true, "license": "MIT", "dependencies": { @@ -3752,9 +3752,9 @@ } }, "node_modules/browserslist": { - "version": "4.24.4", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.4.tgz", - "integrity": "sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==", + "version": "4.24.5", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.5.tgz", + "integrity": "sha512-FDToo4Wo82hIdgc1CQ+NQD0hEhmpPjrZ3hiUgwgOG6IuTdlpr8jdjyG24P6cNP1yJpTLzS5OcGgSw0xmDU1/Tw==", "dev": true, "funding": [ { @@ -3772,10 +3772,10 @@ ], "license": "MIT", "dependencies": { - "caniuse-lite": "^1.0.30001688", - "electron-to-chromium": "^1.5.73", + "caniuse-lite": "^1.0.30001716", + "electron-to-chromium": "^1.5.149", "node-releases": "^2.0.19", - "update-browserslist-db": "^1.1.1" + "update-browserslist-db": "^1.1.3" }, "bin": { "browserslist": "cli.js" @@ -5042,9 +5042,9 @@ "license": "MIT" }, "node_modules/electron-to-chromium": { - "version": "1.5.148", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.148.tgz", - "integrity": "sha512-8uc1QXwwqayD4mblcsQYZqoi+cOc97A2XmKSBOIRbEAvbp6vrqmSYs4dHD2qVygUgn7Mi0qdKgPaJ9WC8cv63A==", + "version": "1.5.149", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.149.tgz", + "integrity": "sha512-UyiO82eb9dVOx8YO3ajDf9jz2kKyt98DEITRdeLPstOEuTlLzDA4Gyq5K9he71TQziU5jUVu2OAu5N48HmQiyQ==", "dev": true, "license": "ISC" }, @@ -10055,11 +10055,11 @@ } }, "node_modules/tinymce": { - "version": "6.8.5", - "resolved": "https://registry.npmjs.org/tinymce/-/tinymce-6.8.5.tgz", - "integrity": "sha512-qAL/FxL7cwZHj4BfaF818zeJJizK9jU5IQzTcSLL4Rj5MaJdiVblEj7aDr80VCV1w9h4Lak9hlnALhq/kVtN1g==", + "version": "7.8.0", + "resolved": "https://registry.npmjs.org/tinymce/-/tinymce-7.8.0.tgz", + "integrity": "sha512-MUER5MWV9mkOB4expgbWknh/C5ZJvOXQlMVSx4tJxTuYtcUCDB6bMZ34fWNOIc8LvrnXmGHGj0eGQuxjQyRgrA==", "dev": true, - "license": "MIT" + "license": "GPL-2.0-or-later" }, "node_modules/to-arraybuffer": { "version": "1.0.1", @@ -10937,9 +10937,9 @@ "license": "ISC" }, "node_modules/ws": { - "version": "8.18.1", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.1.tgz", - "integrity": "sha512-RKW2aJZMXeMxVpnZ6bck+RswznaxmzdULiBr6KY7XkTnW8uvt0iT9H5DkHUChXrc+uurzwa0rVI16n/Xzjdz1w==", + "version": "8.18.2", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.2.tgz", + "integrity": "sha512-DMricUmwGZUVr++AEAe2uiVM7UoO9MAVZMDu05UQOaUII0lp+zOzLLU4Xqh/JvTqklB1T4uELaaPBKyjE1r4fQ==", "dev": true, "license": "MIT", "engines": { diff --git a/package.json b/package.json index 746e526d0..ced7acb6b 100644 --- a/package.json +++ b/package.json @@ -30,7 +30,7 @@ "sass": "^1.62.1", "sass-loader": "^12.6.0", "sortablejs": "^1.15.2", - "tinymce": "^6.8.5", + "tinymce": "^7.8.0", "vue": "^3.5.13", "vue-loader": "^17.3.0" } diff --git a/public/js/app.js b/public/js/app.js index 85158dec2..7c8d44d12 100644 --- a/public/js/app.js +++ b/public/js/app.js @@ -1,2 +1,2 @@ /*! For license information please see app.js.LICENSE.txt */ -(()=>{var e,t,n={95:()=>{!function(){"use strict";var e=tinymce.util.Tools.resolve("tinymce.PluginManager");const t=e=>t=>(e=>{const t=typeof e;return null===e?"null":"object"===t&&Array.isArray(e)?"array":"object"===t&&(n=r=e,o=(i=String).prototype,o.isPrototypeOf(n)||(null===(s=r.constructor)||void 0===s?void 0:s.name)===i.name)?"string":t;var n,o;var r,i,s})(t)===e,n=e=>t=>typeof t===e,o=t("string"),r=t("object"),i=t("array"),s=(a=null,e=>a===e);var a;const l=n("boolean"),c=e=>!(e=>null==e)(e),d=n("function"),u=(e,t)=>{if(i(e)){for(let n=0,o=e.length;n{},p=(e,t)=>e===t;class f{constructor(e,t){this.tag=e,this.value=t}static some(e){return new f(!0,e)}static none(){return f.singletonNone}fold(e,t){return this.tag?t(this.value):e()}isSome(){return this.tag}isNone(){return!this.tag}map(e){return this.tag?f.some(e(this.value)):f.none()}bind(e){return this.tag?e(this.value):f.none()}exists(e){return this.tag&&e(this.value)}forall(e){return!this.tag||e(this.value)}filter(e){return!this.tag||e(this.value)?this:f.none()}getOr(e){return this.tag?this.value:e}or(e){return this.tag?this:e}getOrThunk(e){return this.tag?this.value:e()}orThunk(e){return this.tag?this:e()}getOrDie(e){if(this.tag)return this.value;throw new Error(null!=e?e:"Called getOrDie on None")}static from(e){return c(e)?f.some(e):f.none()}getOrNull(){return this.tag?this.value:null}getOrUndefined(){return this.value}each(e){this.tag&&e(this.value)}toArray(){return this.tag?[this.value]:[]}toString(){return this.tag?`some(${this.value})`:"none()"}}f.singletonNone=new f(!1);const m=Array.prototype.indexOf,g=Array.prototype.push,O=(e,t)=>((e,t)=>m.call(e,t))(e,t)>-1,v=e=>{const t=[];for(let n=0,o=e.length;nv(((e,t)=>{const n=e.length,o=new Array(n);for(let r=0;r{for(let n=0;ne.exists((e=>n(e,t))),w=e=>{const t=[],n=e=>{t.push(e)};for(let t=0;te?f.some(t):f.none(),$=e=>t=>t.options.get(e),_=$("link_assume_external_targets"),k=$("link_context_toolbar"),Q=$("link_list"),T=$("link_default_target"),C=$("link_default_protocol"),P=$("link_target_list"),E=$("link_rel_list"),A=$("link_class_list"),R=$("link_title"),D=$("allow_unsafe_link_target"),z=$("link_quicklink");var M=tinymce.util.Tools.resolve("tinymce.util.Tools");const V=e=>o(e.value)?e.value:"",N=(e,t)=>{const n=[];return M.each(e,(e=>{const r=(e=>o(e.text)?e.text:o(e.title)?e.title:"")(e);if(void 0!==e.menu){const o=N(e.menu,t);n.push({text:r,items:o})}else{const o=t(e);n.push({text:r,value:o})}})),n},Z=(e=V)=>t=>f.from(t).map((t=>N(t,e))),X={sanitize:e=>Z(V)(e),sanitizeWith:Z,createUi:(e,t)=>n=>({name:e,type:"listbox",label:t,items:n}),getValue:V},q=Object.keys,L=Object.hasOwnProperty,I=(e,t,n,o)=>{((e,t)=>{const n=q(e);for(let o=0,r=n.length;o{(t(e,r)?n:o)(e,r)}))},W=(e,t)=>L.call(e,t);var U=tinymce.util.Tools.resolve("tinymce.dom.TreeWalker"),B=tinymce.util.Tools.resolve("tinymce.util.URI");const Y=e=>c(e)&&"a"===e.nodeName.toLowerCase(),j=e=>Y(e)&&!!G(e),H=(e,t)=>{if(e.collapsed)return[];{const n=e.cloneContents(),o=n.firstChild,r=new U(o,n),i=[];let s=o;do{t(s)&&i.push(s)}while(s=r.next());return i}},F=e=>/^\w+:/i.test(e),G=e=>{var t,n;return null!==(n=null!==(t=e.getAttribute("data-mce-href"))&&void 0!==t?t:e.getAttribute("href"))&&void 0!==n?n:""},K=(e,t)=>{const n=["noopener"],o=e?e.split(/\s+/):[],r=e=>e.filter((e=>-1===M.inArray(n,e))),i=t?(e=>(e=r(e)).length>0?e.concat(n):n)(o):r(o);return i.length>0?(e=>M.trim(e.sort().join(" ")))(i):""},J=(e,t)=>(t=t||ne(e.selection.getRng())[0]||e.selection.getNode(),se(t)?f.from(e.dom.select("a[href]",t)[0]):f.from(e.dom.getParent(t,"a[href]"))),ee=(e,t)=>J(e,t).isSome(),te=(e,t)=>(e=>e.replace(/\uFEFF/g,""))(t.fold((()=>e.getContent({format:"text"})),(e=>e.innerText||e.textContent||""))),ne=e=>H(e,j),oe=e=>M.grep(e,j),re=e=>oe(e).length>0,ie=e=>{const t=e.schema.getTextInlineElements(),n=e=>1===e.nodeType&&!Y(e)&&!W(t,e.nodeName.toLowerCase());if(J(e).exists((e=>e.hasAttribute("data-mce-block"))))return!1;const o=e.selection.getRng();if(o.collapsed)return!0;return 0===H(o,n).length},se=e=>c(e)&&"FIGURE"===e.nodeName&&/\bimage\b/i.test(e.className),ae=(e,t)=>{const n={...t};if(0===E(e).length&&!D(e)){const e=K(n.rel,"_blank"===n.target);n.rel=e||null}return f.from(n.target).isNone()&&!1===P(e)&&(n.target=T(e)),n.href=((e,t)=>"http"!==t&&"https"!==t||F(e)?e:t+"://"+e)(n.href,_(e)),n},le=(e,t,n)=>{const o=e.selection.getNode(),r=J(e,o),i=ae(e,(e=>{return t=["title","rel","class","target"],n=(t,n)=>(e[n].each((e=>{t[n]=e.length>0?e:null})),t),o={href:e.href},((e,t)=>{for(let n=0,o=e.length;n{o=n(o,e,t)})),o;var t,n,o})(n));e.undoManager.transact((()=>{n.href===t.href&&t.attach(),r.fold((()=>{((e,t,n,o)=>{const r=e.dom;se(t)?pe(r,t,o):n.fold((()=>{e.execCommand("mceInsertLink",!1,o)}),(t=>{e.insertContent(r.createHTML("a",o,r.encode(t)))}))})(e,o,n.text,i)}),(t=>{e.focus(),((e,t,n,o)=>{n.each((e=>{W(t,"innerText")?t.innerText=e:t.textContent=e})),e.dom.setAttribs(t,o),e.selection.select(t)})(e,t,n.text,i)}))}))},ce=e=>{const{class:t,href:n,rel:o,target:r,text:i,title:a}=e;return((e,t)=>{const n={};var o;return I(e,t,(o=n,(e,t)=>{o[t]=e}),h),n})({class:t.getOrNull(),href:n,rel:o.getOrNull(),target:r.getOrNull(),text:i.getOrNull(),title:a.getOrNull()},((e,t)=>!1===s(e)))},de=(e,t,n)=>{const o=((e,t)=>{const n=e.options.get,o={allow_html_data_urls:n("allow_html_data_urls"),allow_script_urls:n("allow_script_urls"),allow_svg_data_urls:n("allow_svg_data_urls")},r=t.href;return{...t,href:B.isDomSafe(r,"a",o)?r:""}})(e,n);e.hasPlugin("rtc",!0)?e.execCommand("createlink",!1,ce(o)):le(e,t,o)},ue=e=>{e.hasPlugin("rtc",!0)?e.execCommand("unlink"):(e=>{e.undoManager.transact((()=>{const t=e.selection.getNode();se(t)?he(e,t):(e=>{const t=e.dom,n=e.selection,o=n.getBookmark(),r=n.getRng().cloneRange(),i=t.getParent(r.startContainer,"a[href]",e.getBody()),s=t.getParent(r.endContainer,"a[href]",e.getBody());i&&r.setStartBefore(i),s&&r.setEndAfter(s),n.setRng(r),e.execCommand("unlink"),n.moveToBookmark(o)})(e),e.focus()}))})(e)},he=(e,t)=>{var n;const o=e.dom.select("img",t)[0];if(o){const r=e.dom.getParents(o,"a[href]",t)[0];r&&(null===(n=r.parentNode)||void 0===n||n.insertBefore(o,r),e.dom.remove(r))}},pe=(e,t,n)=>{var o;const r=e.select("img",t)[0];if(r){const t=e.create("a",n);null===(o=r.parentNode)||void 0===o||o.insertBefore(t,r),t.appendChild(r)}},fe=e=>{return W(t=e,n="items")&&void 0!==t[n]&&null!==t[n];var t,n},me=(e,t)=>y(t,(t=>fe(t)?me(e,t.items):S(t.value===e,t))),ge=(e,t,n,o)=>{const r=o[t],i=e.length>0;return void 0!==r?me(r,n).map((t=>({url:{value:t.value,meta:{text:i?e:t.text,attach:h}},text:i?e:t.text}))):f.none()},Oe=(e,t)=>{const n={text:e.text,title:e.title},o=e=>{const t=(o=e.url,S(n.text.length<=0,f.from(null===(r=o.meta)||void 0===r?void 0:r.text).getOr(o.value)));var o,r;const i=(e=>{var t;return S(n.title.length<=0,f.from(null===(t=e.meta)||void 0===t?void 0:t.title).getOr(""))})(e.url);return t.isSome()||i.isSome()?f.some({...t.map((e=>({text:e}))).getOr({}),...i.map((e=>({title:e}))).getOr({})}):f.none()},r=(e,o)=>{const r=(i=t,s=o,"link"===s?i.link:"anchor"===s?i.anchor:f.none()).getOr([]);var i,s;return ge(n.text,o,r,e)};return{onChange:(e,t)=>{const i=t.name;return"url"===i?o(e()):O(["anchor","link"],i)?r(e(),i):"text"===i||"title"===i?(n[i]=e()[i],f.none()):f.none()}}};var ve=tinymce.util.Tools.resolve("tinymce.util.Delay");const be=e=>{const t=e.href;return t.indexOf("@")>0&&-1===t.indexOf("/")&&-1===t.indexOf("mailto:")?f.some({message:"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?",preprocess:e=>({...e,href:"mailto:"+t})}):f.none()},ye=(e,t)=>n=>{const o=n.href;return 1===e&&!F(o)||0===e&&/^\s*www(\.|\d\.)/i.test(o)?f.some({message:`The URL you entered seems to be an external link. Do you want to add the required ${t}:// prefix?`,preprocess:e=>({...e,href:t+"://"+o})}):f.none()},xe=(e,t)=>y([be,ye(_(e),C(e))],(e=>e(t))).fold((()=>Promise.resolve(t)),(n=>new Promise((o=>{((e,t,n)=>{const o=e.selection.getRng();ve.setEditorTimeout(e,(()=>{e.windowManager.confirm(t,(t=>{e.selection.setRng(o),n(t)}))}))})(e,n.message,(e=>{o(e?n.preprocess(t):t)}))})))),we=e=>{const t=e.dom.select("a:not([href])"),n=b(t,(e=>{const t=e.name||e.id;return t?[{text:t,value:"#"+t}]:[]}));return n.length>0?f.some([{text:"None",value:""}].concat(n)):f.none()},Se=e=>{const t=A(e);return t.length>0?X.sanitize(t):f.none()},$e=e=>{try{return f.some(JSON.parse(e))}catch(e){return f.none()}},_e=e=>{const t=t=>e.convertURL(t.value||t.url||"","href"),n=Q(e);return new Promise((e=>{o(n)?fetch(n).then((e=>e.ok?e.text().then($e):Promise.reject())).then(e,(()=>e(f.none()))):d(n)?n((t=>e(f.some(t)))):e(f.from(n))})).then((e=>e.bind(X.sanitizeWith(t)).map((e=>{if(e.length>0){return[{text:"None",value:""}].concat(e)}return e}))))},ke=(e,t)=>{const n=E(e);if(n.length>0){const o=x(t,"_blank"),r=e=>K(X.getValue(e),o);return(!1===D(e)?X.sanitizeWith(r):X.sanitize)(n)}return f.none()},Qe=[{text:"Current window",value:""},{text:"New window",value:"_blank"}],Te=e=>{const t=P(e);return i(t)?X.sanitize(t).orThunk((()=>f.some(Qe))):!1===t?f.none():f.some(Qe)},Ce=(e,t,n)=>{const o=e.getAttrib(t,n);return null!==o&&o.length>0?f.some(o):f.none()},Pe=(e,t)=>_e(e).then((n=>{const o=((e,t)=>{const n=e.dom,o=ie(e)?f.some(te(e.selection,t)):f.none(),r=t.bind((e=>f.from(n.getAttrib(e,"href")))),i=t.bind((e=>f.from(n.getAttrib(e,"target")))),s=t.bind((e=>Ce(n,e,"rel"))),a=t.bind((e=>Ce(n,e,"class")));return{url:r,text:o,title:t.bind((e=>Ce(n,e,"title"))),target:i,rel:s,linkClass:a}})(e,t);return{anchor:o,catalogs:{targets:Te(e),rels:ke(e,o.target),classes:Se(e),anchor:we(e),link:n},optNode:t,flags:{titleEnabled:R(e)}}})),Ee=e=>{const t=(e=>{const t=J(e);return Pe(e,t)})(e);t.then((t=>{const n=((e,t)=>n=>{const o=n.getData();if(!o.url.value)return ue(e),void n.close();const r=e=>f.from(o[e]).filter((n=>!x(t.anchor[e],n))),i={href:o.url.value,text:r("text"),target:r("target"),rel:r("rel"),class:r("linkClass"),title:r("title")},s={href:o.url.value,attach:void 0!==o.url.meta&&o.url.meta.attach?o.url.meta.attach:h};xe(e,i).then((t=>{de(e,s,t)})),n.close()})(e,t);return((e,t,n)=>{const o=e.anchor.text.map((()=>({name:"text",type:"input",label:"Text to display"}))).toArray(),r=e.flags.titleEnabled?[{name:"title",type:"input",label:"Title"}]:[],i=((e,t)=>{const n=e.anchor,o=n.url.getOr("");return{url:{value:o,meta:{original:{value:o}}},text:n.text.getOr(""),title:n.title.getOr(""),anchor:o,link:o,rel:n.rel.getOr(""),target:n.target.or(t).getOr(""),linkClass:n.linkClass.getOr("")}})(e,f.from(T(n))),s=e.catalogs,a=Oe(i,s);return{title:"Insert/Edit Link",size:"normal",body:{type:"panel",items:v([[{name:"url",type:"urlinput",filetype:"file",label:"URL",picker_text:"Browse links"}],o,r,w([s.anchor.map(X.createUi("anchor","Anchors")),s.rels.map(X.createUi("rel","Rel")),s.targets.map(X.createUi("target","Open link in...")),s.link.map(X.createUi("link","Link list")),s.classes.map(X.createUi("linkClass","Class"))])])},buttons:[{type:"cancel",name:"cancel",text:"Cancel"},{type:"submit",name:"save",text:"Save",primary:!0}],initialData:i,onChange:(e,{name:t})=>{a.onChange(e.getData,{name:t}).each((t=>{e.setData(t)}))},onSubmit:t}})(t,n,e)})).then((t=>{e.windowManager.open(t)}))};var Ae=tinymce.util.Tools.resolve("tinymce.util.VK");const Re=e=>{const t=document.createElement("a");t.target="_blank",t.href=e,t.rel="noreferrer noopener";const n=document.createEvent("MouseEvents");n.initMouseEvent("click",!0,!0,window,0,0,0,0,0,!1,!1,!1,!1,0,null),((e,t)=>{document.body.appendChild(e),e.dispatchEvent(t),document.body.removeChild(e)})(t,n)},De=(e,t)=>e.dom.getParent(t,"a[href]"),ze=e=>De(e,e.selection.getStart()),Me=(e,t)=>{if(t){const n=G(t);if(/^#/.test(n)){const t=e.dom.select(n);t.length&&e.selection.scrollIntoView(t[0],!0)}else Re(t.href)}},Ve=e=>()=>{e.execCommand("mceLink",!1,{dialog:!0})},Ne=e=>()=>{Me(e,ze(e))},Ze=(e,t)=>(e.on("NodeChange",t),()=>e.off("NodeChange",t)),Xe=e=>t=>{const n=()=>{t.setActive(!e.mode.isReadOnly()&&ee(e,e.selection.getNode())),t.setEnabled(e.selection.isEditable())};return n(),Ze(e,n)},qe=e=>t=>{const n=()=>{t.setEnabled(e.selection.isEditable())};return n(),Ze(e,n)},Le=e=>t=>{const n=()=>t.setEnabled((e=>1===(e.selection.isCollapsed()?oe(e.dom.getParents(e.selection.getStart())):ne(e.selection.getRng())).length)(e));return n(),Ze(e,n)},Ie=e=>t=>{const n=t=>{return re(t)||(n=e.selection.getRng(),ne(n).length>0);var n},o=e.dom.getParents(e.selection.getStart()),r=o=>{t.setEnabled(n(o)&&e.selection.isEditable())};return r(o),Ze(e,(e=>r(e.parents)))},We=e=>{const t=t=>{const n=e.selection.getNode();return t.setEnabled(ee(e,n)),h};e.ui.registry.addContextForm("quicklink",{launch:{type:"contextformtogglebutton",icon:"link",tooltip:"Link",onSetup:Xe(e)},label:"Link",predicate:t=>k(e)&&ee(e,t),initValue:()=>{return J(e).fold((t="",()=>t),G);var t},commands:[{type:"contextformtogglebutton",icon:"link",tooltip:"Link",primary:!0,onSetup:t=>{const n=e.selection.getNode();return t.setActive(ee(e,n)),Xe(e)(t)},onAction:t=>{const n=t.getValue(),o=(t=>{const n=J(e),o=ie(e);if(n.isNone()&&o){const o=te(e.selection,n);return S(0===o.length,t)}return f.none()})(n);de(e,{href:n,attach:h},{href:n,text:o,title:f.none(),rel:f.none(),target:f.none(),class:f.none()}),(e=>{e.selection.collapse(!1)})(e),t.hide()}},{type:"contextformbutton",icon:"unlink",tooltip:"Remove link",onSetup:t,onAction:t=>{ue(e),t.hide()}},{type:"contextformbutton",icon:"new-tab",tooltip:"Open link",onSetup:t,onAction:t=>{Ne(e)(),t.hide()}}]})};e.add("link",(e=>{(e=>{const t=e.options.register;t("link_assume_external_targets",{processor:e=>{const t=o(e)||l(e);return t?!0===e?{value:1,valid:t}:"http"===e||"https"===e?{value:e,valid:t}:{value:0,valid:t}:{valid:!1,message:"Must be a string or a boolean."}},default:!1}),t("link_context_toolbar",{processor:"boolean",default:!1}),t("link_list",{processor:e=>o(e)||d(e)||u(e,r)}),t("link_default_target",{processor:"string"}),t("link_default_protocol",{processor:"string",default:"https"}),t("link_target_list",{processor:e=>l(e)||u(e,r),default:!0}),t("link_rel_list",{processor:"object[]",default:[]}),t("link_class_list",{processor:"object[]",default:[]}),t("link_title",{processor:"boolean",default:!0}),t("allow_unsafe_link_target",{processor:"boolean",default:!1}),t("link_quicklink",{processor:"boolean",default:!1})})(e),(e=>{e.ui.registry.addToggleButton("link",{icon:"link",tooltip:"Insert/edit link",onAction:Ve(e),onSetup:Xe(e)}),e.ui.registry.addButton("openlink",{icon:"new-tab",tooltip:"Open link",onAction:Ne(e),onSetup:Le(e)}),e.ui.registry.addButton("unlink",{icon:"unlink",tooltip:"Remove link",onAction:()=>ue(e),onSetup:Ie(e)})})(e),(e=>{e.ui.registry.addMenuItem("openlink",{text:"Open link",icon:"new-tab",onAction:Ne(e),onSetup:Le(e)}),e.ui.registry.addMenuItem("link",{icon:"link",text:"Link...",shortcut:"Meta+K",onSetup:qe(e),onAction:Ve(e)}),e.ui.registry.addMenuItem("unlink",{icon:"unlink",text:"Remove link",onAction:()=>ue(e),onSetup:Ie(e)})})(e),(e=>{e.ui.registry.addContextMenu("link",{update:t=>e.dom.isEditable(t)?re(e.dom.getParents(t,"a"))?"link unlink openlink":"link":""})})(e),We(e),(e=>{e.on("click",(t=>{const n=De(e,t.target);n&&Ae.metaKeyPressed(t)&&(t.preventDefault(),Me(e,n))})),e.on("keydown",(t=>{if(!t.isDefaultPrevented()&&13===t.keyCode&&(e=>!0===e.altKey&&!1===e.shiftKey&&!1===e.ctrlKey&&!1===e.metaKey)(t)){const n=ze(e);n&&(t.preventDefault(),Me(e,n))}}))})(e),(e=>{e.addCommand("mceLink",((t,n)=>{!0!==(null==n?void 0:n.dialog)&&z(e)?e.dispatch("contexttoolbar-show",{toolbarKey:"quicklink"}):Ee(e)}))})(e),(e=>{e.addShortcut("Meta+K","",(()=>{e.execCommand("mceLink")}))})(e)}))}()},128:()=>{tinymce.PluginManager.add("face",(function(e,t){function n(t){tinymce.activeEditor.windowManager.open({title:"AI顔認識",body:{type:"panel",items:[{type:"alertbanner",level:"info",text:"写真の顔をAIで判断して、モザイク処理を施します。",icon:"info"},{type:"urlinput",name:"photo",filetype:"file",label:"jpg, png 形式の画像ファイル"},{type:"collection",name:"upload_max_filesize_caption",label:e.options.get("cc_config").upload_max_filesize_caption},{type:"input",name:"alt",inputMode:"text",label:"代替テキスト",placeholder:"",disabled:!1,maximized:!1},{type:"listbox",name:"image_size",label:"画像サイズ(最大でこの大きさに縮小されます)",disabled:!1,items:e.options.get("cc_config").face_image_sizes},{type:"listbox",name:"mosaic_fineness",label:"モザイクの粗さ",disabled:!1,items:e.options.get("cc_config").finenesses}]},initialData:{image_size:e.options.get("cc_config").face_image_initial,mosaic_fineness:e.options.get("cc_config").fineness_initial},buttons:[{type:"cancel",text:"Close"},{type:"submit",text:"Save",primary:!0}],onSubmit:function(t){xhr=new XMLHttpRequest,xhr.withCredentials=!1,xhr.open("POST",tinymce.activeEditor.getParam("document_base_url")+"/upload/face"),xhr.onload=function(){var n;xhr.status<200||xhr.status>=300?console.error("HTTP Error: "+xhr.status):(void 0!==(n=JSON.parse(xhr.responseText)).link_text&&e.insertContent(n.link_text),document.getElementById("cc-face-upload-"+i).value="",t.close())};var n=document.getElementsByName("csrf-token"),o=document.getElementsByName("_page_id"),r=t.getData(),i=e.options.get("cc_config").frame_id;formData=new FormData,formData.append("_token",n[0].content),formData.append("page_id",o[0].content),formData.append("plugin_name",e.options.get("cc_config").plugin_name),formData.append("photo",document.getElementById("cc-face-upload-"+i).files[0]),formData.append("alt",r.alt),formData.append("image_size",r.image_size),formData.append("mosaic_fineness",r.mosaic_fineness),xhr.send(formData)}})}e.ui.registry.addIcon("face",'\x3c!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--\x3e'),e.ui.registry.addButton("face",{icon:"face",tooltip:"AI顔認識",onAction:n,onPostRender:function(){var t=this;e.on("NodeChange",(function(n){var o=jQuery(e.selection.getNode()).hasClass("plugin");t.active(o)})),e.on("DblClick",(function(e){"plugin"==e.target.className&&n(e.toElement.innerText)}))}})}))},246:(e,t,n)=>{"use strict";function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function r(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}n.d(t,{Ay:()=>at});function c(e){if("undefined"!=typeof window&&window.navigator)return!!navigator.userAgent.match(e)}var d=c(/(?:Trident.*rv[ :]?11\.|msie|iemobile|Windows Phone)/i),u=c(/Edge/i),h=c(/firefox/i),p=c(/safari/i)&&!c(/chrome/i)&&!c(/android/i),f=c(/iP(ad|od|hone)/i),m=c(/chrome/i)&&c(/android/i),g={capture:!1,passive:!1};function O(e,t,n){e.addEventListener(t,n,!d&&g)}function v(e,t,n){e.removeEventListener(t,n,!d&&g)}function b(e,t){if(t){if(">"===t[0]&&(t=t.substring(1)),e)try{if(e.matches)return e.matches(t);if(e.msMatchesSelector)return e.msMatchesSelector(t);if(e.webkitMatchesSelector)return e.webkitMatchesSelector(t)}catch(e){return!1}return!1}}function y(e){return e.host&&e!==document&&e.host.nodeType?e.host:e.parentNode}function x(e,t,n,o){if(e){n=n||document;do{if(null!=t&&(">"===t[0]?e.parentNode===n&&b(e,t):b(e,t))||o&&e===n)return e;if(e===n)break}while(e=y(e))}return null}var w,S=/\s+/g;function $(e,t,n){if(e&&t)if(e.classList)e.classList[n?"add":"remove"](t);else{var o=(" "+e.className+" ").replace(S," ").replace(" "+t+" "," ");e.className=(o+(n?" "+t:"")).replace(S," ")}}function _(e,t,n){var o=e&&e.style;if(o){if(void 0===n)return document.defaultView&&document.defaultView.getComputedStyle?n=document.defaultView.getComputedStyle(e,""):e.currentStyle&&(n=e.currentStyle),void 0===t?n:n[t];t in o||-1!==t.indexOf("webkit")||(t="-webkit-"+t),o[t]=n+("string"==typeof n?"":"px")}}function k(e,t){var n="";if("string"==typeof e)n=e;else do{var o=_(e,"transform");o&&"none"!==o&&(n=o+" "+n)}while(!t&&(e=e.parentNode));var r=window.DOMMatrix||window.WebKitCSSMatrix||window.CSSMatrix||window.MSCSSMatrix;return r&&new r(n)}function Q(e,t,n){if(e){var o=e.getElementsByTagName(t),r=0,i=o.length;if(n)for(;r=i:r<=i))return o;if(o===T())break;o=z(o,!1)}return!1}function E(e,t,n,o){for(var r=0,i=0,s=e.children;i2&&void 0!==arguments[2]?arguments[2]:{},o=n.evt,i=l(n,Y);U.pluginEvent.bind(Xe)(e,t,r({dragEl:F,parentEl:G,ghostEl:K,rootEl:J,nextEl:ee,lastDownEl:te,cloneEl:ne,cloneHidden:oe,dragStarted:ge,putSortable:ce,activeSortable:Xe.active,originalEvent:o,oldIndex:re,oldDraggableIndex:se,newIndex:ie,newDraggableIndex:ae,hideGhostForTarget:Me,unhideGhostForTarget:Ve,cloneNowHidden:function(){oe=!0},cloneNowShown:function(){oe=!1},dispatchSortableEvent:function(e){H({sortable:t,name:e,originalEvent:o})}},i))};function H(e){B(r({putSortable:ce,cloneEl:ne,targetEl:F,rootEl:J,oldIndex:re,oldDraggableIndex:se,newIndex:ie,newDraggableIndex:ae},e))}var F,G,K,J,ee,te,ne,oe,re,ie,se,ae,le,ce,de,ue,he,pe,fe,me,ge,Oe,ve,be,ye,xe=!1,we=!1,Se=[],$e=!1,_e=!1,ke=[],Qe=!1,Te=[],Ce="undefined"!=typeof document,Pe=f,Ee=u||d?"cssFloat":"float",Ae=Ce&&!m&&!f&&"draggable"in document.createElement("div"),Re=function(){if(Ce){if(d)return!1;var e=document.createElement("x");return e.style.cssText="pointer-events:auto","auto"===e.style.pointerEvents}}(),De=function(e,t){var n=_(e),o=parseInt(n.width)-parseInt(n.paddingLeft)-parseInt(n.paddingRight)-parseInt(n.borderLeftWidth)-parseInt(n.borderRightWidth),r=E(e,0,t),i=E(e,1,t),s=r&&_(r),a=i&&_(i),l=s&&parseInt(s.marginLeft)+parseInt(s.marginRight)+C(r).width,c=a&&parseInt(a.marginLeft)+parseInt(a.marginRight)+C(i).width;if("flex"===n.display)return"column"===n.flexDirection||"column-reverse"===n.flexDirection?"vertical":"horizontal";if("grid"===n.display)return n.gridTemplateColumns.split(" ").length<=1?"vertical":"horizontal";if(r&&s.float&&"none"!==s.float){var d="left"===s.float?"left":"right";return!i||"both"!==a.clear&&a.clear!==d?"horizontal":"vertical"}return r&&("block"===s.display||"flex"===s.display||"table"===s.display||"grid"===s.display||l>=o&&"none"===n[Ee]||i&&"none"===n[Ee]&&l+c>o)?"vertical":"horizontal"},ze=function(e){function t(e,n){return function(o,r,i,s){var a=o.options.group.name&&r.options.group.name&&o.options.group.name===r.options.group.name;if(null==e&&(n||a))return!0;if(null==e||!1===e)return!1;if(n&&"clone"===e)return e;if("function"==typeof e)return t(e(o,r,i,s),n)(o,r,i,s);var l=(n?o:r).options.group.name;return!0===e||"string"==typeof e&&e===l||e.join&&e.indexOf(l)>-1}}var n={},o=e.group;o&&"object"==i(o)||(o={name:o}),n.name=o.name,n.checkPull=t(o.pull,!0),n.checkPut=t(o.put),n.revertClone=o.revertClone,e.group=n},Me=function(){!Re&&K&&_(K,"display","none")},Ve=function(){!Re&&K&&_(K,"display","")};Ce&&!m&&document.addEventListener("click",(function(e){if(we)return e.preventDefault(),e.stopPropagation&&e.stopPropagation(),e.stopImmediatePropagation&&e.stopImmediatePropagation(),we=!1,!1}),!0);var Ne=function(e){if(F){e=e.touches?e.touches[0]:e;var t=(r=e.clientX,i=e.clientY,Se.some((function(e){var t=e[q].options.emptyInsertThreshold;if(t&&!A(e)){var n=C(e),o=r>=n.left-t&&r<=n.right+t,a=i>=n.top-t&&i<=n.bottom+t;return o&&a?s=e:void 0}})),s);if(t){var n={};for(var o in e)e.hasOwnProperty(o)&&(n[o]=e[o]);n.target=n.rootEl=t,n.preventDefault=void 0,n.stopPropagation=void 0,t[q]._onDragOver(n)}}var r,i,s},Ze=function(e){F&&F.parentNode[q]._isOutsideThisEl(e.target)};function Xe(e,t){if(!e||!e.nodeType||1!==e.nodeType)throw"Sortable: `el` must be an HTMLElement, not ".concat({}.toString.call(e));this.el=e,this.options=t=a({},t),e[q]=this;var n={group:null,sort:!0,disabled:!1,store:null,handle:null,draggable:/^[uo]l$/i.test(e.nodeName)?">li":">*",swapThreshold:1,invertSwap:!1,invertedSwapThreshold:null,removeCloneOnHide:!0,direction:function(){return De(e,this.options)},ghostClass:"sortable-ghost",chosenClass:"sortable-chosen",dragClass:"sortable-drag",ignore:"a, img",filter:null,preventOnFilter:!0,animation:0,easing:null,setData:function(e,t){e.setData("Text",t.textContent)},dropBubble:!1,dragoverBubble:!1,dataIdAttr:"data-id",delay:0,delayOnTouchOnly:!1,touchStartThreshold:(Number.parseInt?Number:window).parseInt(window.devicePixelRatio,10)||1,forceFallback:!1,fallbackClass:"sortable-fallback",fallbackOnBody:!1,fallbackTolerance:0,fallbackOffset:{x:0,y:0},supportPointer:!1!==Xe.supportPointer&&"PointerEvent"in window&&(!p||f),emptyInsertThreshold:5};for(var o in U.initializePlugins(this,e,n),n)!(o in t)&&(t[o]=n[o]);for(var r in ze(t),this)"_"===r.charAt(0)&&"function"==typeof this[r]&&(this[r]=this[r].bind(this));this.nativeDraggable=!t.forceFallback&&Ae,this.nativeDraggable&&(this.options.touchStartThreshold=1),t.supportPointer?O(e,"pointerdown",this._onTapStart):(O(e,"mousedown",this._onTapStart),O(e,"touchstart",this._onTapStart)),this.nativeDraggable&&(O(e,"dragover",this),O(e,"dragenter",this)),Se.push(this.el),t.store&&t.store.get&&this.sort(t.store.get(this)||[]),a(this,L())}function qe(e,t,n,o,r,i,s,a){var l,c,h=e[q],p=h.options.onMove;return!window.CustomEvent||d||u?(l=document.createEvent("Event")).initEvent("move",!0,!0):l=new CustomEvent("move",{bubbles:!0,cancelable:!0}),l.to=t,l.from=e,l.dragged=n,l.draggedRect=o,l.related=r||t,l.relatedRect=i||C(t),l.willInsertAfter=a,l.originalEvent=s,e.dispatchEvent(l),p&&(c=p.call(h,l,s)),c}function Le(e){e.draggable=!1}function Ie(){Qe=!1}function We(e){for(var t=e.tagName+e.className+e.src+e.href+e.textContent,n=t.length,o=0;n--;)o+=t.charCodeAt(n);return o.toString(36)}function Ue(e){return setTimeout(e,0)}function Be(e){return clearTimeout(e)}Xe.prototype={constructor:Xe,_isOutsideThisEl:function(e){this.el.contains(e)||e===this.el||(Oe=null)},_getDirection:function(e,t){return"function"==typeof this.options.direction?this.options.direction.call(this,e,t,F):this.options.direction},_onTapStart:function(e){if(e.cancelable){var t=this,n=this.el,o=this.options,r=o.preventOnFilter,i=e.type,s=e.touches&&e.touches[0]||e.pointerType&&"touch"===e.pointerType&&e,a=(s||e).target,l=e.target.shadowRoot&&(e.path&&e.path[0]||e.composedPath&&e.composedPath()[0])||a,c=o.filter;if(function(e){Te.length=0;var t=e.getElementsByTagName("input"),n=t.length;for(;n--;){var o=t[n];o.checked&&Te.push(o)}}(n),!F&&!(/mousedown|pointerdown/.test(i)&&0!==e.button||o.disabled)&&!l.isContentEditable&&(this.nativeDraggable||!p||!a||"SELECT"!==a.tagName.toUpperCase())&&!((a=x(a,o.draggable,n,!1))&&a.animated||te===a)){if(re=R(a),se=R(a,o.draggable),"function"==typeof c){if(c.call(this,e,a,this))return H({sortable:t,rootEl:l,name:"filter",targetEl:a,toEl:n,fromEl:n}),j("filter",t,{evt:e}),void(r&&e.preventDefault())}else if(c&&(c=c.split(",").some((function(o){if(o=x(l,o.trim(),n,!1))return H({sortable:t,rootEl:o,name:"filter",targetEl:a,fromEl:n,toEl:n}),j("filter",t,{evt:e}),!0}))))return void(r&&e.preventDefault());o.handle&&!x(l,o.handle,n,!1)||this._prepareDragStart(e,s,a)}}},_prepareDragStart:function(e,t,n){var o,r=this,i=r.el,s=r.options,a=i.ownerDocument;if(n&&!F&&n.parentNode===i){var l=C(n);if(J=i,G=(F=n).parentNode,ee=F.nextSibling,te=n,le=s.group,Xe.dragged=F,de={target:F,clientX:(t||e).clientX,clientY:(t||e).clientY},fe=de.clientX-l.left,me=de.clientY-l.top,this._lastX=(t||e).clientX,this._lastY=(t||e).clientY,F.style["will-change"]="all",o=function(){j("delayEnded",r,{evt:e}),Xe.eventCanceled?r._onDrop():(r._disableDelayedDragEvents(),!h&&r.nativeDraggable&&(F.draggable=!0),r._triggerDragStart(e,t),H({sortable:r,name:"choose",originalEvent:e}),$(F,s.chosenClass,!0))},s.ignore.split(",").forEach((function(e){Q(F,e.trim(),Le)})),O(a,"dragover",Ne),O(a,"mousemove",Ne),O(a,"touchmove",Ne),s.supportPointer?(O(a,"pointerup",r._onDrop),!this.nativeDraggable&&O(a,"pointercancel",r._onDrop)):(O(a,"mouseup",r._onDrop),O(a,"touchend",r._onDrop),O(a,"touchcancel",r._onDrop)),h&&this.nativeDraggable&&(this.options.touchStartThreshold=4,F.draggable=!0),j("delayStart",this,{evt:e}),!s.delay||s.delayOnTouchOnly&&!t||this.nativeDraggable&&(u||d))o();else{if(Xe.eventCanceled)return void this._onDrop();s.supportPointer?(O(a,"pointerup",r._disableDelayedDrag),O(a,"pointercancel",r._disableDelayedDrag)):(O(a,"mouseup",r._disableDelayedDrag),O(a,"touchend",r._disableDelayedDrag),O(a,"touchcancel",r._disableDelayedDrag)),O(a,"mousemove",r._delayedDragTouchMoveHandler),O(a,"touchmove",r._delayedDragTouchMoveHandler),s.supportPointer&&O(a,"pointermove",r._delayedDragTouchMoveHandler),r._dragStartTimer=setTimeout(o,s.delay)}}},_delayedDragTouchMoveHandler:function(e){var t=e.touches?e.touches[0]:e;Math.max(Math.abs(t.clientX-this._lastX),Math.abs(t.clientY-this._lastY))>=Math.floor(this.options.touchStartThreshold/(this.nativeDraggable&&window.devicePixelRatio||1))&&this._disableDelayedDrag()},_disableDelayedDrag:function(){F&&Le(F),clearTimeout(this._dragStartTimer),this._disableDelayedDragEvents()},_disableDelayedDragEvents:function(){var e=this.el.ownerDocument;v(e,"mouseup",this._disableDelayedDrag),v(e,"touchend",this._disableDelayedDrag),v(e,"touchcancel",this._disableDelayedDrag),v(e,"pointerup",this._disableDelayedDrag),v(e,"pointercancel",this._disableDelayedDrag),v(e,"mousemove",this._delayedDragTouchMoveHandler),v(e,"touchmove",this._delayedDragTouchMoveHandler),v(e,"pointermove",this._delayedDragTouchMoveHandler)},_triggerDragStart:function(e,t){t=t||"touch"==e.pointerType&&e,!this.nativeDraggable||t?this.options.supportPointer?O(document,"pointermove",this._onTouchMove):O(document,t?"touchmove":"mousemove",this._onTouchMove):(O(F,"dragend",this),O(J,"dragstart",this._onDragStart));try{document.selection?Ue((function(){document.selection.empty()})):window.getSelection().removeAllRanges()}catch(e){}},_dragStarted:function(e,t){if(xe=!1,J&&F){j("dragStarted",this,{evt:t}),this.nativeDraggable&&O(document,"dragover",Ze);var n=this.options;!e&&$(F,n.dragClass,!1),$(F,n.ghostClass,!0),Xe.active=this,e&&this._appendGhost(),H({sortable:this,name:"start",originalEvent:t})}else this._nulling()},_emulateDragOver:function(){if(ue){this._lastX=ue.clientX,this._lastY=ue.clientY,Me();for(var e=document.elementFromPoint(ue.clientX,ue.clientY),t=e;e&&e.shadowRoot&&(e=e.shadowRoot.elementFromPoint(ue.clientX,ue.clientY))!==t;)t=e;if(F.parentNode[q]._isOutsideThisEl(e),t)do{if(t[q]){if(t[q]._onDragOver({clientX:ue.clientX,clientY:ue.clientY,target:e,rootEl:t})&&!this.options.dragoverBubble)break}e=t}while(t=y(t));Ve()}},_onTouchMove:function(e){if(de){var t=this.options,n=t.fallbackTolerance,o=t.fallbackOffset,r=e.touches?e.touches[0]:e,i=K&&k(K,!0),s=K&&i&&i.a,a=K&&i&&i.d,l=Pe&&ye&&D(ye),c=(r.clientX-de.clientX+o.x)/(s||1)+(l?l[0]-ke[0]:0)/(s||1),d=(r.clientY-de.clientY+o.y)/(a||1)+(l?l[1]-ke[1]:0)/(a||1);if(!Xe.active&&!xe){if(n&&Math.max(Math.abs(r.clientX-this._lastX),Math.abs(r.clientY-this._lastY))r.right+i||e.clientY>o.bottom&&e.clientX>o.left:e.clientY>r.bottom+i||e.clientX>o.right&&e.clientY>o.top}(e,i,this)&&!g.animated){if(g===F)return I(!1);if(g&&s===e.target&&(a=g),a&&(n=C(a)),!1!==qe(J,s,F,t,a,n,e,!!a))return L(),g&&g.nextSibling?s.insertBefore(F,g.nextSibling):s.appendChild(F),G=s,W(),I(!0)}else if(g&&function(e,t,n){var o=C(E(n.el,0,n.options,!0)),r=X(n.el,n.options,K),i=10;return t?e.clientXd+c*i/2:lu-be)return-ve}else if(l>d+c*(1-r)/2&&lu-c*i/2))return l>d+c/2?1:-1;return 0}(e,a,n,i,S?1:l.swapThreshold,null==l.invertedSwapThreshold?l.swapThreshold:l.invertedSwapThreshold,_e,Oe===a),0!==v){var D=R(F);do{D-=v,y=G.children[D]}while(y&&("none"===_(y,"display")||y===K))}if(0===v||y===a)return I(!1);Oe=a,ve=v;var z=a.nextElementSibling,M=!1,V=qe(J,s,F,t,a,n,e,M=1===v);if(!1!==V)return 1!==V&&-1!==V||(M=1===V),Qe=!0,setTimeout(Ie,30),L(),M&&!z?s.appendChild(F):a.parentNode.insertBefore(F,M?z:a),Q&&N(Q,0,T-Q.scrollTop),G=F.parentNode,void 0===b||_e||(be=Math.abs(b-C(a)[k])),W(),I(!0)}if(s.contains(F))return I(!1)}return!1}function Z(l,c){j(l,f,r({evt:e,isOwner:u,axis:i?"vertical":"horizontal",revert:o,dragRect:t,targetRect:n,canSort:h,fromSortable:p,target:a,completed:I,onMove:function(n,o){return qe(J,s,F,t,n,C(n),e,o)},changed:W},c))}function L(){Z("dragOverAnimationCapture"),f.captureAnimationState(),f!==p&&p.captureAnimationState()}function I(t){return Z("dragOverCompleted",{insertion:t}),t&&(u?d._hideClone():d._showClone(f),f!==p&&($(F,ce?ce.options.ghostClass:d.options.ghostClass,!1),$(F,l.ghostClass,!0)),ce!==f&&f!==Xe.active?ce=f:f===Xe.active&&ce&&(ce=null),p===f&&(f._ignoreWhileAnimating=a),f.animateAll((function(){Z("dragOverAnimationComplete"),f._ignoreWhileAnimating=null})),f!==p&&(p.animateAll(),p._ignoreWhileAnimating=null)),(a===F&&!F.animated||a===s&&!a.animated)&&(Oe=null),l.dragoverBubble||e.rootEl||a===document||(F.parentNode[q]._isOutsideThisEl(e.target),!t&&Ne(e)),!l.dragoverBubble&&e.stopPropagation&&e.stopPropagation(),m=!0}function W(){ie=R(F),ae=R(F,l.draggable),H({sortable:f,name:"change",toEl:s,newIndex:ie,newDraggableIndex:ae,originalEvent:e})}},_ignoreWhileAnimating:null,_offMoveEvents:function(){v(document,"mousemove",this._onTouchMove),v(document,"touchmove",this._onTouchMove),v(document,"pointermove",this._onTouchMove),v(document,"dragover",Ne),v(document,"mousemove",Ne),v(document,"touchmove",Ne)},_offUpEvents:function(){var e=this.el.ownerDocument;v(e,"mouseup",this._onDrop),v(e,"touchend",this._onDrop),v(e,"pointerup",this._onDrop),v(e,"pointercancel",this._onDrop),v(e,"touchcancel",this._onDrop),v(document,"selectstart",this)},_onDrop:function(e){var t=this.el,n=this.options;ie=R(F),ae=R(F,n.draggable),j("drop",this,{evt:e}),G=F&&F.parentNode,ie=R(F),ae=R(F,n.draggable),Xe.eventCanceled||(xe=!1,_e=!1,$e=!1,clearInterval(this._loopId),clearTimeout(this._dragStartTimer),Be(this.cloneId),Be(this._dragStartId),this.nativeDraggable&&(v(document,"drop",this),v(t,"dragstart",this._onDragStart)),this._offMoveEvents(),this._offUpEvents(),p&&_(document.body,"user-select",""),_(F,"transform",""),e&&(ge&&(e.cancelable&&e.preventDefault(),!n.dropBubble&&e.stopPropagation()),K&&K.parentNode&&K.parentNode.removeChild(K),(J===G||ce&&"clone"!==ce.lastPutMode)&&ne&&ne.parentNode&&ne.parentNode.removeChild(ne),F&&(this.nativeDraggable&&v(F,"dragend",this),Le(F),F.style["will-change"]="",ge&&!xe&&$(F,ce?ce.options.ghostClass:this.options.ghostClass,!1),$(F,this.options.chosenClass,!1),H({sortable:this,name:"unchoose",toEl:G,newIndex:null,newDraggableIndex:null,originalEvent:e}),J!==G?(ie>=0&&(H({rootEl:G,name:"add",toEl:G,fromEl:J,originalEvent:e}),H({sortable:this,name:"remove",toEl:G,originalEvent:e}),H({rootEl:G,name:"sort",toEl:G,fromEl:J,originalEvent:e}),H({sortable:this,name:"sort",toEl:G,originalEvent:e})),ce&&ce.save()):ie!==re&&ie>=0&&(H({sortable:this,name:"update",toEl:G,originalEvent:e}),H({sortable:this,name:"sort",toEl:G,originalEvent:e})),Xe.active&&(null!=ie&&-1!==ie||(ie=re,ae=se),H({sortable:this,name:"end",toEl:G,originalEvent:e}),this.save())))),this._nulling()},_nulling:function(){j("nulling",this),J=F=G=K=ee=ne=te=oe=de=ue=ge=ie=ae=re=se=Oe=ve=ce=le=Xe.dragged=Xe.ghost=Xe.clone=Xe.active=null,Te.forEach((function(e){e.checked=!0})),Te.length=he=pe=0},handleEvent:function(e){switch(e.type){case"drop":case"dragend":this._onDrop(e);break;case"dragenter":case"dragover":F&&(this._onDragOver(e),function(e){e.dataTransfer&&(e.dataTransfer.dropEffect="move");e.cancelable&&e.preventDefault()}(e));break;case"selectstart":e.preventDefault()}},toArray:function(){for(var e,t=[],n=this.el.children,o=0,r=n.length,i=this.options;o{t.read=function(e,t,n,o,r){var i,s,a=8*r-o-1,l=(1<>1,d=-7,u=n?r-1:0,h=n?-1:1,p=e[t+u];for(u+=h,i=p&(1<<-d)-1,p>>=-d,d+=a;d>0;i=256*i+e[t+u],u+=h,d-=8);for(s=i&(1<<-d)-1,i>>=-d,d+=o;d>0;s=256*s+e[t+u],u+=h,d-=8);if(0===i)i=1-c;else{if(i===l)return s?NaN:1/0*(p?-1:1);s+=Math.pow(2,o),i-=c}return(p?-1:1)*s*Math.pow(2,i-o)},t.write=function(e,t,n,o,r,i){var s,a,l,c=8*i-r-1,d=(1<>1,h=23===r?Math.pow(2,-24)-Math.pow(2,-77):0,p=o?0:i-1,f=o?1:-1,m=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(a=isNaN(t)?1:0,s=d):(s=Math.floor(Math.log(t)/Math.LN2),t*(l=Math.pow(2,-s))<1&&(s--,l*=2),(t+=s+u>=1?h/l:h*Math.pow(2,1-u))*l>=2&&(s++,l/=2),s+u>=d?(a=0,s=d):s+u>=1?(a=(t*l-1)*Math.pow(2,r),s+=u):(a=t*Math.pow(2,u-1)*Math.pow(2,r),s=0));r>=8;e[n+p]=255&a,p+=f,a/=256,r-=8);for(s=s<0;e[n+p]=255&s,p+=f,s/=256,c-=8);e[n+p-f]|=128*m}},307:(e,t,n)=>{n(5196),window.Vue=n(9726).default},378:(e,t,n)=>{n(95)},1148:()=>{!function(){"use strict";var e=tinymce.util.Tools.resolve("tinymce.PluginManager");e.add("code",(e=>((e=>{e.addCommand("mceCodeEditor",(()=>{(e=>{const t=(e=>e.getContent({source_view:!0}))(e);e.windowManager.open({title:"Source Code",size:"large",body:{type:"panel",items:[{type:"textarea",name:"code"}]},buttons:[{type:"cancel",name:"cancel",text:"Cancel"},{type:"submit",name:"save",text:"Save",primary:!0}],initialData:{code:t},onSubmit:t=>{((e,t)=>{e.focus(),e.undoManager.transact((()=>{e.setContent(t)})),e.selection.setCursorLocation(),e.nodeChanged()})(e,t.getData().code),t.close()}})})(e)}))})(e),(e=>{const t=()=>e.execCommand("mceCodeEditor");e.ui.registry.addButton("code",{icon:"sourcecode",tooltip:"Source code",onAction:t}),e.ui.registry.addMenuItem("code",{icon:"sourcecode",text:"Source code",onAction:t})})(e),{})))}()},1627:(e,t,n)=>{n(9504)},1688:()=>{},1694:(e,t,n)=>{n(7235)},2171:()=>{!function(){"use strict";var e=tinymce.util.Tools.resolve("tinymce.PluginManager"),t=tinymce.util.Tools.resolve("tinymce.Env"),n=tinymce.util.Tools.resolve("tinymce.util.Tools");const o=e=>t=>t.options.get(e),r=o("content_style"),i=o("content_css_cors"),s=o("body_class"),a=o("body_id"),l=e=>{const o=(e=>{var o;let l="";const c=e.dom.encode,d=null!==(o=r(e))&&void 0!==o?o:"";l+='';const u=i(e)?' crossorigin="anonymous"':"";n.each(e.contentCSS,(t=>{l+='"})),d&&(l+='");const h=a(e),p=s(e),f='