From 05fd31065d893931c094d59102ac6e82d27efd07 Mon Sep 17 00:00:00 2001 From: Lars Gebhardt-Kusche Date: Mon, 19 Jan 2026 00:10:26 +0100 Subject: [PATCH] inclide craft --- .../landingpage/accountsetup/settings.php | 5 + partials/structure/layout_start.php | 8 + public/assets/css/admin.css | 6 + public/assets/js/craft-editor.js | 251 ++++++++++++++++++ public/assets/js/ui-editor.js | 230 ++++++++++++---- public/assets/js/ui-user.js | 4 + public/index.php | 8 + .../es2022/core.bundle.mjs | 17 ++ .../es2022/react-dom.bundle.mjs | 36 +++ public/vendor/react@18.2.0/es2022/react.mjs | 16 ++ schema.sql | 5 + src/ApiKernel.php | 93 ++++++- 12 files changed, 624 insertions(+), 55 deletions(-) create mode 100644 public/assets/js/craft-editor.js create mode 100644 public/vendor/@craftjs/core@0.2.12/X-ZXJlYWN0LHJlYWN0LWRvbQ/es2022/core.bundle.mjs create mode 100644 public/vendor/react-dom@18.2.0/es2022/react-dom.bundle.mjs create mode 100644 public/vendor/react@18.2.0/es2022/react.mjs diff --git a/partials/landingpage/accountsetup/settings.php b/partials/landingpage/accountsetup/settings.php index e661357..aec388a 100644 --- a/partials/landingpage/accountsetup/settings.php +++ b/partials/landingpage/accountsetup/settings.php @@ -68,6 +68,11 @@ require dirname(__DIR__) . '/../structure/layout_start.php'; + +
diff --git a/partials/structure/layout_start.php b/partials/structure/layout_start.php index fee4131..9f4090d 100644 --- a/partials/structure/layout_start.php +++ b/partials/structure/layout_start.php @@ -66,6 +66,14 @@ if ($debugRedirect) { + \n${html}` : html; -    } -    const root = doc.querySelector('#gjs') || doc.body || doc.documentElement; -    return root ? root.innerHTML : ''; -  } + const ed = win.__gjs || (win.grapesjs && win.grapesjs.editors && win.grapesjs.editors[0]) || null; + if (ed && typeof ed.getHtml === 'function') { + const html = ed.getHtml(); + const css = (typeof ed.getCss === 'function') ? ed.getCss() : ''; + return css ? `\n${html}` : html; + } + const root = doc.querySelector('#gjs') || doc.body || doc.documentElement; + return root ? root.innerHTML : ''; + }   function waitForEditor(maxMs = 8000) {     return new Promise((resolve, reject) => { @@ -98,7 +105,7 @@ export function initEditor() {   }      // 🚨 NEUE FUNKTION: Delegiert das Kommando an den Editor im iFrame -  async function delegateCommand(commandName) { + async function delegateCommand(commandName) {     try {       const editor = await waitForEditor(3000);       if (editor.Commands.has(commandName)) { @@ -114,9 +121,9 @@ export function initEditor() {       console.error(e);       return false;     } -  } -  // ... (hideReadyBadge bleibt unverändert) ... -  function hideReadyBadge(doc) { + } + // ... (hideReadyBadge bleibt unverändert) ... + function hideReadyBadge(doc) {     if (!doc) return;     const kill = () => {       const el = doc.getElementById('badge'); @@ -143,7 +150,40 @@ export function initEditor() {     setTimeout(() => { kill(); /* hideByText(doc); */ }, 150);     setTimeout(() => { kill(); /* hideByText(doc); */ }, 500);     setTimeout(() => { kill(); /* hideByText(doc); */ }, 1200); -  } + } + + function extractCraftHtml(craftJson, fallbackHtml) { + if (!craftJson) return fallbackHtml || ''; + try { + const parsed = typeof craftJson === 'string' ? JSON.parse(craftJson) : craftJson; + if (parsed && typeof parsed.html === 'string') { + return parsed.html; + } + } catch {} + return fallbackHtml || ''; + } + + function looksCraftSerialized(payload) { + if (!payload) return false; + try { + const parsed = typeof payload === 'string' ? JSON.parse(payload) : payload; + return !!(parsed && typeof parsed === 'object' && parsed.ROOT); + } catch { + return false; + } + } + + function setEditorType(nextType) { + currentEditorType = nextType === 'craftjs' ? 'craftjs' : 'grapesjs'; + if (editorSelect) editorSelect.value = currentEditorType; + if (currentEditorType === 'craftjs') { + iframe?.classList?.add('hidden'); + craftEditor?.show(); + } else { + craftEditor?.hide(); + iframe?.classList?.remove('hidden'); + } + }      // ... (Lade-Overlay bleibt unverändert) ...   let veilEl = null; @@ -328,6 +368,9 @@ export function initEditor() { let hasJson = false; let jsonState = ''; + let editorType = 'grapesjs'; + let craftJson = ''; +     await Promise.all([       (async() => { try { @@ -342,12 +385,34 @@ export function initEditor() { if (!fresh && !looksJson) { fresh = rawContent; } + editorType = String(row?.editor_type ?? row?.item?.editor_type ?? 'grapesjs').toLowerCase(); + craftJson = row?.craft_json ?? row?.item?.craft_json ?? ''; } catch {} -      })(), + })(),       (async() => { snippets = await buildSnippetsForContext(current); })(),       (async() => { refLib   = await buildRefLibForContext(current); })()     ]); + editorType = editorType === 'craftjs' ? 'craftjs' : 'grapesjs'; + setEditorType(editorType); + if (editorType === 'craftjs') { + const craftHtml = extractCraftHtml(craftJson, fresh); + craftEditor?.setContent(craftHtml, craftJson); + hideVeil(); + if (dlg && typeof dlg.showModal === 'function') dlg.showModal(); + if (!looksCraftSerialized(craftJson) && craftEditor?.serializeFromHtml) { + const seed = craftEditor.serializeFromHtml(craftHtml); + try { + await apiUpdate(current.resource, current.id, { + editor_type: 'craftjs', + html: craftHtml, + craft_json: seed + }); + } catch {} + } + return; + } +     // iFrame-Load -> Bridge-Ready abhören     iframe.onload = function () {       if (myToken !== reqToken) return; @@ -417,21 +482,37 @@ export function initEditor() {     dlg?.showModal?.();   } -  // ---------- Speichern (DELEGIERT) ---------- -  // 🚨 KORRIGIERT: Delegiert Speichern an den iFrame, der die JSON-Daten holt! -  async function save() { -    if (!current?.id) return err('Keine aktive ID'); + // ---------- Speichern (DELEGIERT) ---------- + // 🚨 KORRIGIERT: Delegiert Speichern an den iFrame, der die JSON-Daten holt! + async function save() { + if (!current?.id) return err('Keine aktive ID'); -    return delegateCommand('save-data'); -  } + if (currentEditorType === 'craftjs') { + const html = craftEditor ? craftEditor.getContent() : ''; + const craftJson = craftEditor && craftEditor.getCraftJson + ? craftEditor.getCraftJson() + : JSON.stringify({ html }); + const payload = { html, craft_json: craftJson, editor_type: 'craftjs' }; + const res = await apiUpdate(current.resource, current.id, payload); + if (res?.ok) ok('Gespeichert'); + else err(res?.error || 'Speichern fehlgeschlagen'); + return res?.ok; + } + + return delegateCommand('save-data'); + }   // ... (Der Rest der Funktionen bleibt unverändert) ... -  async function clearEditor() { -    const win = iframe?.contentWindow; -    const ed  = win?.__gjs || (win?.grapesjs && win.grapesjs.editors && win.grapesjs.editors[0]) || null; -    if (ed) { -      ed.setComponents(''); -      ed.setStyle(''); + async function clearEditor() { + if (currentEditorType === 'craftjs') { + craftEditor?.clear(); + return; + } + const win = iframe?.contentWindow; + const ed = win?.__gjs || (win?.grapesjs && win.grapesjs.editors && win.grapesjs.editors[0]) || null; + if (ed) { + ed.setComponents(''); + ed.setStyle('');     } else {       writeHtmlToFrame('');     } @@ -485,7 +566,7 @@ export function initEditor() {   }   function closePreview(){ prevDlg?.close?.(); } -  function close() { + function close() {     // nächstes Öffnen invalidiert laufende asyncs     reqToken++; @@ -503,17 +584,64 @@ export function initEditor() {     current = null;     window.__currentItemId = undefined;     window.__currentEditorCtx = undefined; -  } + } -  // Buttons -  btnSave      && (btnSave.onclick      = save); -  btnClear     && (btnClear.onclick     = clearEditor); -  btnClose     && (btnClose.onclick     = close); + async function switchEditor(nextType) { + if (!current?.id) return; + const target = nextType === 'craftjs' ? 'craftjs' : 'grapesjs'; + if (target === currentEditorType) return; + const confirmed = window.confirm('Editor wechseln? Ungespeicherte Änderungen gehen verloren.'); + if (!confirmed) { + if (editorSelect) editorSelect.value = currentEditorType; + return; + } + if (currentEditorType === 'grapesjs' && target === 'craftjs') { + const html = await readEditedHtml(); + const craftJson = craftEditor && craftEditor.serializeFromHtml + ? craftEditor.serializeFromHtml(html) + : JSON.stringify({ html }); + const res = await apiUpdate(current.resource, current.id, { + editor_type: 'craftjs', + html, + craft_json: craftJson + }); + if (!res?.ok) { + err(res?.error || 'Editorwechsel fehlgeschlagen'); + if (editorSelect) editorSelect.value = currentEditorType; + return; + } + setEditorType('craftjs'); + craftEditor?.setContent(html, craftJson); + iframe.src = 'about:blank#' + Date.now(); + ok('Editor gewechselt'); + return; + } + if (currentEditorType === 'craftjs' && target === 'grapesjs') { + const html = craftEditor ? craftEditor.getContent() : ''; + const res = await apiUpdate(current.resource, current.id, { + editor_type: 'grapesjs', + html + }); + if (!res?.ok) { + err(res?.error || 'Editorwechsel fehlgeschlagen'); + if (editorSelect) editorSelect.value = currentEditorType; + return; + } + ok('Editor gewechselt'); + await open({ id: current.id, name: current.name }, current.resource); + } + } + + // Buttons + btnSave && (btnSave.onclick = save); + btnClear && (btnClear.onclick = clearEditor); + btnClose && (btnClose.onclick = close);   btnPrevClose && (btnPrevClose.onclick = closePreview); -  btnPreview   && (btnPreview.onclick   = openPreview); -  btnTest      && (btnTest.onclick      = openSend); -  btnCancelSend&& (btnCancelSend.onclick= closeSend); -  sendForm     && (sendForm.onsubmit    = doSend); + btnPreview && (btnPreview.onclick = openPreview); + btnTest && (btnTest.onclick = openSend); + btnCancelSend&& (btnCancelSend.onclick= closeSend); + sendForm && (sendForm.onsubmit = doSend); + editorSelect && (editorSelect.onchange = () => switchEditor(editorSelect.value));   window.AdminTestSend = window.AdminTestSend || {};   window.AdminTestSend.open = (opts = {}) => { diff --git a/public/assets/js/ui-user.js b/public/assets/js/ui-user.js index a9dca67..8906e00 100644 --- a/public/assets/js/ui-user.js +++ b/public/assets/js/ui-user.js @@ -272,6 +272,9 @@ function fillSettingsForm(settings) { settingsForm.bridge_token.value = settings.bridge_token || ''; settingsForm.sender_token.value = settings.sender_token || ''; settingsForm.external_api_token.value = settings.external_api_token || ''; + if (settingsForm.editor_default) { + settingsForm.editor_default.value = settings.editor_default || 'grapesjs'; + } state.rotate = { bridge: false, sender: false, external: false }; refreshAdminTables(settings.bridge_setup?.tables || [], settings.bridge_tables || []); } @@ -317,6 +320,7 @@ async function submitSettingsForm(ev) { bridge_token: settingsForm.bridge_token.value.trim(), sender_token: settingsForm.sender_token.value.trim(), external_api_token: settingsForm.external_api_token.value.trim(), + editor_default: settingsForm.editor_default ? settingsForm.editor_default.value : undefined, bridge_tables: bridgeTables, rotate_bridge_token: state.rotate.bridge ? 1 : 0, rotate_sender_token: state.rotate.sender ? 1 : 0, diff --git a/public/index.php b/public/index.php index 98c5fd7..e7d26e5 100644 --- a/public/index.php +++ b/public/index.php @@ -61,12 +61,20 @@ require __DIR__ . '/../partials/structure/layout_start.php';
E-Mail Editor + +
+
diff --git a/public/vendor/@craftjs/core@0.2.12/X-ZXJlYWN0LHJlYWN0LWRvbQ/es2022/core.bundle.mjs b/public/vendor/@craftjs/core@0.2.12/X-ZXJlYWN0LHJlYWN0LWRvbQ/es2022/core.bundle.mjs new file mode 100644 index 0000000..6798ff2 --- /dev/null +++ b/public/vendor/@craftjs/core@0.2.12/X-ZXJlYWN0LHJlYWN0LWRvbQ/es2022/core.bundle.mjs @@ -0,0 +1,17 @@ +/* esm.sh - @craftjs/core@0.2.12 */ +var zu=Object.create;var Wr=Object.defineProperty;var Ku=Object.getOwnPropertyDescriptor;var Wu=Object.getOwnPropertyNames;var $u=Object.getPrototypeOf,Yu=Object.prototype.hasOwnProperty;var h=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var Ju=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of Wu(t))!Yu.call(e,o)&&o!==r&&Wr(e,o,{get:()=>t[o],enumerable:!(n=Ku(t,o))||n.enumerable});return e};var ze=(e,t,r)=>(r=e!=null?zu($u(e)):{},Ju(t||!e||!e.__esModule?Wr(r,"default",{value:e,enumerable:!0}):r,e));var sn=h((bm,an)=>{function sc(){this.__data__=[],this.size=0}an.exports=sc});var et=h((Om,un)=>{function uc(e,t){return e===t||e!==e&&t!==t}un.exports=uc});var Pe=h((Em,cn)=>{var cc=et();function dc(e,t){for(var r=e.length;r--;)if(cc(e[r][0],t))return r;return-1}cn.exports=dc});var ln=h((_m,dn)=>{var lc=Pe(),fc=Array.prototype,pc=fc.splice;function hc(e){var t=this.__data__,r=lc(t,e);if(r<0)return!1;var n=t.length-1;return r==n?t.pop():pc.call(t,r,1),--this.size,!0}dn.exports=hc});var pn=h((Tm,fn)=>{var vc=Pe();function gc(e){var t=this.__data__,r=vc(t,e);return r<0?void 0:t[r][1]}fn.exports=gc});var vn=h((Nm,hn)=>{var yc=Pe();function mc(e){return yc(this.__data__,e)>-1}hn.exports=mc});var yn=h((wm,gn)=>{var bc=Pe();function Oc(e,t){var r=this.__data__,n=bc(r,e);return n<0?(++this.size,r.push([e,t])):r[n][1]=t,this}gn.exports=Oc});var xe=h((Rm,mn)=>{var Ec=sn(),_c=ln(),Tc=pn(),Nc=vn(),wc=yn();function ie(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t{var Rc=xe();function Ac(){this.__data__=new Rc,this.size=0}bn.exports=Ac});var _n=h((Pm,En)=>{function Pc(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}En.exports=Pc});var Nn=h((xm,Tn)=>{function xc(e){return this.__data__.get(e)}Tn.exports=xc});var Rn=h((Sm,wn)=>{function Sc(e){return this.__data__.has(e)}wn.exports=Sc});var Ft=h((jm,An)=>{var jc=typeof globalThis=="object"&&globalThis&&globalThis.Object===Object&&globalThis;An.exports=jc});var k=h((qm,Pn)=>{var qc=Ft(),Ic=typeof self=="object"&&self&&self.Object===Object&&self,Cc=qc||Ic||Function("return this")();Pn.exports=Cc});var Se=h((Im,xn)=>{var Dc=k(),Lc=Dc.Symbol;xn.exports=Lc});var In=h((Cm,qn)=>{var Sn=Se(),jn=Object.prototype,Mc=jn.hasOwnProperty,kc=jn.toString,je=Sn?Sn.toStringTag:void 0;function Fc(e){var t=Mc.call(e,je),r=e[je];try{e[je]=void 0;var n=!0}catch{}var o=kc.call(e);return n&&(t?e[je]=r:delete e[je]),o}qn.exports=Fc});var Dn=h((Dm,Cn)=>{var Hc=Object.prototype,Uc=Hc.toString;function Gc(e){return Uc.call(e)}Cn.exports=Gc});var qe=h((Lm,kn)=>{var Ln=Se(),Bc=In(),Vc=Dn(),zc="[object Null]",Kc="[object Undefined]",Mn=Ln?Ln.toStringTag:void 0;function Wc(e){return e==null?e===void 0?Kc:zc:Mn&&Mn in Object(e)?Bc(e):Vc(e)}kn.exports=Wc});var se=h((Mm,Fn)=>{function $c(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}Fn.exports=$c});var tt=h((km,Hn)=>{var Yc=qe(),Jc=se(),Xc="[object AsyncFunction]",Zc="[object Function]",Qc="[object GeneratorFunction]",ed="[object Proxy]";function td(e){if(!Jc(e))return!1;var t=Yc(e);return t==Zc||t==Qc||t==Xc||t==ed}Hn.exports=td});var Gn=h((Fm,Un)=>{var rd=k(),nd=rd["__core-js_shared__"];Un.exports=nd});var zn=h((Hm,Vn)=>{var Ht=Gn(),Bn=(function(){var e=/[^.]+$/.exec(Ht&&Ht.keys&&Ht.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""})();function od(e){return!!Bn&&Bn in e}Vn.exports=od});var Ut=h((Um,Kn)=>{var ad=Function.prototype,id=ad.toString;function sd(e){if(e!=null){try{return id.call(e)}catch{}try{return e+""}catch{}}return""}Kn.exports=sd});var $n=h((Gm,Wn)=>{var ud=tt(),cd=zn(),dd=se(),ld=Ut(),fd=/[\\^$.*+?()[\]{}|]/g,pd=/^\[object .+?Constructor\]$/,hd=Function.prototype,vd=Object.prototype,gd=hd.toString,yd=vd.hasOwnProperty,md=RegExp("^"+gd.call(yd).replace(fd,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function bd(e){if(!dd(e)||cd(e))return!1;var t=ud(e)?md:pd;return t.test(ld(e))}Wn.exports=bd});var Jn=h((Bm,Yn)=>{function Od(e,t){return e?.[t]}Yn.exports=Od});var W=h((Vm,Xn)=>{var Ed=$n(),_d=Jn();function Td(e,t){var r=_d(e,t);return Ed(r)?r:void 0}Xn.exports=Td});var rt=h((zm,Zn)=>{var Nd=W(),wd=k(),Rd=Nd(wd,"Map");Zn.exports=Rd});var Ie=h((Km,Qn)=>{var Ad=W(),Pd=Ad(Object,"create");Qn.exports=Pd});var ro=h((Wm,to)=>{var eo=Ie();function xd(){this.__data__=eo?eo(null):{},this.size=0}to.exports=xd});var oo=h(($m,no)=>{function Sd(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}no.exports=Sd});var io=h((Ym,ao)=>{var jd=Ie(),qd="__lodash_hash_undefined__",Id=Object.prototype,Cd=Id.hasOwnProperty;function Dd(e){var t=this.__data__;if(jd){var r=t[e];return r===qd?void 0:r}return Cd.call(t,e)?t[e]:void 0}ao.exports=Dd});var uo=h((Jm,so)=>{var Ld=Ie(),Md=Object.prototype,kd=Md.hasOwnProperty;function Fd(e){var t=this.__data__;return Ld?t[e]!==void 0:kd.call(t,e)}so.exports=Fd});var lo=h((Xm,co)=>{var Hd=Ie(),Ud="__lodash_hash_undefined__";function Gd(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=Hd&&t===void 0?Ud:t,this}co.exports=Gd});var po=h((Zm,fo)=>{var Bd=ro(),Vd=oo(),zd=io(),Kd=uo(),Wd=lo();function ue(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t{var ho=po(),$d=xe(),Yd=rt();function Jd(){this.size=0,this.__data__={hash:new ho,map:new(Yd||$d),string:new ho}}vo.exports=Jd});var mo=h((eb,yo)=>{function Xd(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}yo.exports=Xd});var Ce=h((tb,bo)=>{var Zd=mo();function Qd(e,t){var r=e.__data__;return Zd(t)?r[typeof t=="string"?"string":"hash"]:r.map}bo.exports=Qd});var Eo=h((rb,Oo)=>{var el=Ce();function tl(e){var t=el(this,e).delete(e);return this.size-=t?1:0,t}Oo.exports=tl});var To=h((nb,_o)=>{var rl=Ce();function nl(e){return rl(this,e).get(e)}_o.exports=nl});var wo=h((ob,No)=>{var ol=Ce();function al(e){return ol(this,e).has(e)}No.exports=al});var Ao=h((ab,Ro)=>{var il=Ce();function sl(e,t){var r=il(this,e),n=r.size;return r.set(e,t),this.size+=r.size==n?0:1,this}Ro.exports=sl});var Gt=h((ib,Po)=>{var ul=go(),cl=Eo(),dl=To(),ll=wo(),fl=Ao();function ce(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t{var pl=xe(),hl=rt(),vl=Gt(),gl=200;function yl(e,t){var r=this.__data__;if(r instanceof pl){var n=r.__data__;if(!hl||n.length{var ml=xe(),bl=On(),Ol=_n(),El=Nn(),_l=Rn(),Tl=So();function de(e){var t=this.__data__=new ml(e);this.size=t.size}de.prototype.clear=bl;de.prototype.delete=Ol;de.prototype.get=El;de.prototype.has=_l;de.prototype.set=Tl;jo.exports=de});var Io=h((cb,qo)=>{var Nl="__lodash_hash_undefined__";function wl(e){return this.__data__.set(e,Nl),this}qo.exports=wl});var Do=h((db,Co)=>{function Rl(e){return this.__data__.has(e)}Co.exports=Rl});var Mo=h((lb,Lo)=>{var Al=Gt(),Pl=Io(),xl=Do();function nt(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new Al;++t{function Sl(e,t){for(var r=-1,n=e==null?0:e.length;++r{function jl(e,t){return e.has(t)}Ho.exports=jl});var Vt=h((hb,Go)=>{var ql=Mo(),Il=Fo(),Cl=Uo(),Dl=1,Ll=2;function Ml(e,t,r,n,o,a){var s=r&Dl,i=e.length,c=t.length;if(i!=c&&!(s&&c>i))return!1;var u=a.get(e),d=a.get(t);if(u&&d)return u==t&&d==e;var l=-1,f=!0,p=r&Ll?new ql:void 0;for(a.set(e,t),a.set(t,e);++l{var kl=k(),Fl=kl.Uint8Array;Bo.exports=Fl});var zo=h((gb,Vo)=>{function Hl(e){var t=-1,r=Array(e.size);return e.forEach(function(n,o){r[++t]=[o,n]}),r}Vo.exports=Hl});var Wo=h((yb,Ko)=>{function Ul(e){var t=-1,r=Array(e.size);return e.forEach(function(n){r[++t]=n}),r}Ko.exports=Ul});var Zo=h((mb,Xo)=>{var $o=Se(),Yo=zt(),Gl=et(),Bl=Vt(),Vl=zo(),zl=Wo(),Kl=1,Wl=2,$l="[object Boolean]",Yl="[object Date]",Jl="[object Error]",Xl="[object Map]",Zl="[object Number]",Ql="[object RegExp]",ef="[object Set]",tf="[object String]",rf="[object Symbol]",nf="[object ArrayBuffer]",of="[object DataView]",Jo=$o?$o.prototype:void 0,Kt=Jo?Jo.valueOf:void 0;function af(e,t,r,n,o,a,s){switch(r){case of:if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case nf:return!(e.byteLength!=t.byteLength||!a(new Yo(e),new Yo(t)));case $l:case Yl:case Zl:return Gl(+e,+t);case Jl:return e.name==t.name&&e.message==t.message;case Ql:case tf:return e==t+"";case Xl:var i=Vl;case ef:var c=n&Kl;if(i||(i=zl),e.size!=t.size&&!c)return!1;var u=s.get(e);if(u)return u==t;n|=Wl,s.set(e,t);var d=Bl(i(e),i(t),n,o,a,s);return s.delete(e),d;case rf:if(Kt)return Kt.call(e)==Kt.call(t)}return!1}Xo.exports=af});var Wt=h((bb,Qo)=>{function sf(e,t){for(var r=-1,n=t.length,o=e.length;++r{var uf=Array.isArray;ea.exports=uf});var $t=h((Eb,ta)=>{var cf=Wt(),df=De();function lf(e,t,r){var n=t(e);return df(e)?n:cf(n,r(e))}ta.exports=lf});var na=h((_b,ra)=>{function ff(e,t){for(var r=-1,n=e==null?0:e.length,o=0,a=[];++r{function pf(){return[]}oa.exports=pf});var ot=h((Nb,ia)=>{var hf=na(),vf=Yt(),gf=Object.prototype,yf=gf.propertyIsEnumerable,aa=Object.getOwnPropertySymbols,mf=aa?function(e){return e==null?[]:(e=Object(e),hf(aa(e),function(t){return yf.call(e,t)}))}:vf;ia.exports=mf});var ua=h((wb,sa)=>{function bf(e,t){for(var r=-1,n=Array(e);++r{function Of(e){return e!=null&&typeof e=="object"}ca.exports=Of});var la=h((Ab,da)=>{var Ef=qe(),_f=Q(),Tf="[object Arguments]";function Nf(e){return _f(e)&&Ef(e)==Tf}da.exports=Nf});var va=h((Pb,ha)=>{var fa=la(),wf=Q(),pa=Object.prototype,Rf=pa.hasOwnProperty,Af=pa.propertyIsEnumerable,Pf=fa((function(){return arguments})())?fa:function(e){return wf(e)&&Rf.call(e,"callee")&&!Af.call(e,"callee")};ha.exports=Pf});var ya=h((xb,ga)=>{function xf(){return!1}ga.exports=xf});var at=h((Le,le)=>{var Sf=k(),jf=ya(),Oa=typeof Le=="object"&&Le&&!Le.nodeType&&Le,ma=Oa&&typeof le=="object"&&le&&!le.nodeType&&le,qf=ma&&ma.exports===Oa,ba=qf?Sf.Buffer:void 0,If=ba?ba.isBuffer:void 0,Cf=If||jf;le.exports=Cf});var _a=h((Sb,Ea)=>{var Df=9007199254740991,Lf=/^(?:0|[1-9]\d*)$/;function Mf(e,t){var r=typeof e;return t=t??Df,!!t&&(r=="number"||r!="symbol"&&Lf.test(e))&&e>-1&&e%1==0&&e{var kf=9007199254740991;function Ff(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=kf}Ta.exports=Ff});var wa=h((qb,Na)=>{var Hf=qe(),Uf=Jt(),Gf=Q(),Bf="[object Arguments]",Vf="[object Array]",zf="[object Boolean]",Kf="[object Date]",Wf="[object Error]",$f="[object Function]",Yf="[object Map]",Jf="[object Number]",Xf="[object Object]",Zf="[object RegExp]",Qf="[object Set]",ep="[object String]",tp="[object WeakMap]",rp="[object ArrayBuffer]",np="[object DataView]",op="[object Float32Array]",ap="[object Float64Array]",ip="[object Int8Array]",sp="[object Int16Array]",up="[object Int32Array]",cp="[object Uint8Array]",dp="[object Uint8ClampedArray]",lp="[object Uint16Array]",fp="[object Uint32Array]",P={};P[op]=P[ap]=P[ip]=P[sp]=P[up]=P[cp]=P[dp]=P[lp]=P[fp]=!0;P[Bf]=P[Vf]=P[rp]=P[zf]=P[np]=P[Kf]=P[Wf]=P[$f]=P[Yf]=P[Jf]=P[Xf]=P[Zf]=P[Qf]=P[ep]=P[tp]=!1;function pp(e){return Gf(e)&&Uf(e.length)&&!!P[Hf(e)]}Na.exports=pp});var it=h((Ib,Ra)=>{function hp(e){return function(t){return e(t)}}Ra.exports=hp});var st=h((Me,fe)=>{var vp=Ft(),Aa=typeof Me=="object"&&Me&&!Me.nodeType&&Me,ke=Aa&&typeof fe=="object"&&fe&&!fe.nodeType&&fe,gp=ke&&ke.exports===Aa,Xt=gp&&vp.process,yp=(function(){try{var e=ke&&ke.require&&ke.require("util").types;return e||Xt&&Xt.binding&&Xt.binding("util")}catch{}})();fe.exports=yp});var Zt=h((Cb,Sa)=>{var mp=wa(),bp=it(),Pa=st(),xa=Pa&&Pa.isTypedArray,Op=xa?bp(xa):mp;Sa.exports=Op});var Qt=h((Db,ja)=>{var Ep=ua(),_p=va(),Tp=De(),Np=at(),wp=_a(),Rp=Zt(),Ap=Object.prototype,Pp=Ap.hasOwnProperty;function xp(e,t){var r=Tp(e),n=!r&&_p(e),o=!r&&!n&&Np(e),a=!r&&!n&&!o&&Rp(e),s=r||n||o||a,i=s?Ep(e.length,String):[],c=i.length;for(var u in e)(t||Pp.call(e,u))&&!(s&&(u=="length"||o&&(u=="offset"||u=="parent")||a&&(u=="buffer"||u=="byteLength"||u=="byteOffset")||wp(u,c)))&&i.push(u);return i}ja.exports=xp});var ut=h((Lb,qa)=>{var Sp=Object.prototype;function jp(e){var t=e&&e.constructor,r=typeof t=="function"&&t.prototype||Sp;return e===r}qa.exports=jp});var er=h((Mb,Ia)=>{function qp(e,t){return function(r){return e(t(r))}}Ia.exports=qp});var Da=h((kb,Ca)=>{var Ip=er(),Cp=Ip(Object.keys,Object);Ca.exports=Cp});var Ma=h((Fb,La)=>{var Dp=ut(),Lp=Da(),Mp=Object.prototype,kp=Mp.hasOwnProperty;function Fp(e){if(!Dp(e))return Lp(e);var t=[];for(var r in Object(e))kp.call(e,r)&&r!="constructor"&&t.push(r);return t}La.exports=Fp});var tr=h((Hb,ka)=>{var Hp=tt(),Up=Jt();function Gp(e){return e!=null&&Up(e.length)&&!Hp(e)}ka.exports=Gp});var ct=h((Ub,Fa)=>{var Bp=Qt(),Vp=Ma(),zp=tr();function Kp(e){return zp(e)?Bp(e):Vp(e)}Fa.exports=Kp});var rr=h((Gb,Ha)=>{var Wp=$t(),$p=ot(),Yp=ct();function Jp(e){return Wp(e,Yp,$p)}Ha.exports=Jp});var Ba=h((Bb,Ga)=>{var Ua=rr(),Xp=1,Zp=Object.prototype,Qp=Zp.hasOwnProperty;function eh(e,t,r,n,o,a){var s=r&Xp,i=Ua(e),c=i.length,u=Ua(t),d=u.length;if(c!=d&&!s)return!1;for(var l=c;l--;){var f=i[l];if(!(s?f in t:Qp.call(t,f)))return!1}var p=a.get(e),v=a.get(t);if(p&&v)return p==t&&v==e;var g=!0;a.set(e,t),a.set(t,e);for(var y=s;++l{var th=W(),rh=k(),nh=th(rh,"DataView");Va.exports=nh});var Wa=h((zb,Ka)=>{var oh=W(),ah=k(),ih=oh(ah,"Promise");Ka.exports=ih});var Ya=h((Kb,$a)=>{var sh=W(),uh=k(),ch=sh(uh,"Set");$a.exports=ch});var Xa=h((Wb,Ja)=>{var dh=W(),lh=k(),fh=dh(lh,"WeakMap");Ja.exports=fh});var Fe=h(($b,oi)=>{var nr=za(),or=rt(),ar=Wa(),ir=Ya(),sr=Xa(),ni=qe(),pe=Ut(),Za="[object Map]",ph="[object Object]",Qa="[object Promise]",ei="[object Set]",ti="[object WeakMap]",ri="[object DataView]",hh=pe(nr),vh=pe(or),gh=pe(ar),yh=pe(ir),mh=pe(sr),ee=ni;(nr&&ee(new nr(new ArrayBuffer(1)))!=ri||or&&ee(new or)!=Za||ar&&ee(ar.resolve())!=Qa||ir&&ee(new ir)!=ei||sr&&ee(new sr)!=ti)&&(ee=function(e){var t=ni(e),r=t==ph?e.constructor:void 0,n=r?pe(r):"";if(n)switch(n){case hh:return ri;case vh:return Za;case gh:return Qa;case yh:return ei;case mh:return ti}return t});oi.exports=ee});var fi=h((Yb,li)=>{var ur=Bt(),bh=Vt(),Oh=Zo(),Eh=Ba(),ai=Fe(),ii=De(),si=at(),_h=Zt(),Th=1,ui="[object Arguments]",ci="[object Array]",dt="[object Object]",Nh=Object.prototype,di=Nh.hasOwnProperty;function wh(e,t,r,n,o,a){var s=ii(e),i=ii(t),c=s?ci:ai(e),u=i?ci:ai(t);c=c==ui?dt:c,u=u==ui?dt:u;var d=c==dt,l=u==dt,f=c==u;if(f&&si(e)){if(!si(t))return!1;s=!0,d=!1}if(f&&!d)return a||(a=new ur),s||_h(e)?bh(e,t,r,n,o,a):Oh(e,t,c,r,n,o,a);if(!(r&Th)){var p=d&&di.call(e,"__wrapped__"),v=l&&di.call(t,"__wrapped__");if(p||v){var g=p?e.value():e,y=v?t.value():t;return a||(a=new ur),o(g,y,r,n,a)}}return f?(a||(a=new ur),Eh(e,t,r,n,o,a)):!1}li.exports=wh});var gi=h((Jb,vi)=>{var Rh=fi(),pi=Q();function hi(e,t,r,n,o){return e===t?!0:e==null||t==null||!pi(e)&&!pi(t)?e!==e&&t!==t:Rh(e,t,r,n,hi,o)}vi.exports=hi});var mi=h((Xb,yi)=>{var Ah=gi();function Ph(e,t,r){r=typeof r=="function"?r:void 0;var n=r?r(e,t):void 0;return n===void 0?Ah(e,t,void 0,r):!!n}yi.exports=Ph});var Oi=h((Zb,bi)=>{bi.exports=function(t,r,n,o){var a=n?n.call(o,t,r):void 0;if(a!==void 0)return!!a;if(t===r)return!0;if(typeof t!="object"||!t||typeof r!="object"||!r)return!1;var s=Object.keys(t),i=Object.keys(r);if(s.length!==i.length)return!1;for(var c=Object.prototype.hasOwnProperty.bind(r),u=0;u{function Uh(e,t){for(var r=-1,n=e==null?0:e.length;++r{var Gh=W(),Bh=(function(){try{var e=Gh(Object,"defineProperty");return e({},"",{}),e}catch{}})();os.exports=Bh});var Tr=h((fO,ss)=>{var is=as();function Vh(e,t,r){t=="__proto__"&&is?is(e,t,{configurable:!0,enumerable:!0,value:r,writable:!0}):e[t]=r}ss.exports=Vh});var Nr=h((pO,us)=>{var zh=Tr(),Kh=et(),Wh=Object.prototype,$h=Wh.hasOwnProperty;function Yh(e,t,r){var n=e[t];(!($h.call(e,t)&&Kh(n,r))||r===void 0&&!(t in e))&&zh(e,t,r)}us.exports=Yh});var Ue=h((hO,cs)=>{var Jh=Nr(),Xh=Tr();function Zh(e,t,r,n){var o=!r;r||(r={});for(var a=-1,s=t.length;++a{var Qh=Ue(),ev=ct();function tv(e,t){return e&&Qh(t,ev(t),e)}ds.exports=tv});var ps=h((gO,fs)=>{function rv(e){var t=[];if(e!=null)for(var r in Object(e))t.push(r);return t}fs.exports=rv});var vs=h((yO,hs)=>{var nv=se(),ov=ut(),av=ps(),iv=Object.prototype,sv=iv.hasOwnProperty;function uv(e){if(!nv(e))return av(e);var t=ov(e),r=[];for(var n in e)n=="constructor"&&(t||!sv.call(e,n))||r.push(n);return r}hs.exports=uv});var lt=h((mO,gs)=>{var cv=Qt(),dv=vs(),lv=tr();function fv(e){return lv(e)?cv(e,!0):dv(e)}gs.exports=fv});var ms=h((bO,ys)=>{var pv=Ue(),hv=lt();function vv(e,t){return e&&pv(t,hv(t),e)}ys.exports=vv});var Ts=h((Ge,Oe)=>{var gv=k(),_s=typeof Ge=="object"&&Ge&&!Ge.nodeType&&Ge,bs=_s&&typeof Oe=="object"&&Oe&&!Oe.nodeType&&Oe,yv=bs&&bs.exports===_s,Os=yv?gv.Buffer:void 0,Es=Os?Os.allocUnsafe:void 0;function mv(e,t){if(t)return e.slice();var r=e.length,n=Es?Es(r):new e.constructor(r);return e.copy(n),n}Oe.exports=mv});var ws=h((OO,Ns)=>{function bv(e,t){var r=-1,n=e.length;for(t||(t=Array(n));++r{var Ov=Ue(),Ev=ot();function _v(e,t){return Ov(e,Ev(e),t)}Rs.exports=_v});var wr=h((_O,Ps)=>{var Tv=er(),Nv=Tv(Object.getPrototypeOf,Object);Ps.exports=Nv});var Rr=h((TO,xs)=>{var wv=Wt(),Rv=wr(),Av=ot(),Pv=Yt(),xv=Object.getOwnPropertySymbols,Sv=xv?function(e){for(var t=[];e;)wv(t,Av(e)),e=Rv(e);return t}:Pv;xs.exports=Sv});var js=h((NO,Ss)=>{var jv=Ue(),qv=Rr();function Iv(e,t){return jv(e,qv(e),t)}Ss.exports=Iv});var Is=h((wO,qs)=>{var Cv=$t(),Dv=Rr(),Lv=lt();function Mv(e){return Cv(e,Lv,Dv)}qs.exports=Mv});var Ds=h((RO,Cs)=>{var kv=Object.prototype,Fv=kv.hasOwnProperty;function Hv(e){var t=e.length,r=new e.constructor(t);return t&&typeof e[0]=="string"&&Fv.call(e,"index")&&(r.index=e.index,r.input=e.input),r}Cs.exports=Hv});var ft=h((AO,Ms)=>{var Ls=zt();function Uv(e){var t=new e.constructor(e.byteLength);return new Ls(t).set(new Ls(e)),t}Ms.exports=Uv});var Fs=h((PO,ks)=>{var Gv=ft();function Bv(e,t){var r=t?Gv(e.buffer):e.buffer;return new e.constructor(r,e.byteOffset,e.byteLength)}ks.exports=Bv});var Us=h((xO,Hs)=>{var Vv=/\w*$/;function zv(e){var t=new e.constructor(e.source,Vv.exec(e));return t.lastIndex=e.lastIndex,t}Hs.exports=zv});var Ks=h((SO,zs)=>{var Gs=Se(),Bs=Gs?Gs.prototype:void 0,Vs=Bs?Bs.valueOf:void 0;function Kv(e){return Vs?Object(Vs.call(e)):{}}zs.exports=Kv});var $s=h((jO,Ws)=>{var Wv=ft();function $v(e,t){var r=t?Wv(e.buffer):e.buffer;return new e.constructor(r,e.byteOffset,e.length)}Ws.exports=$v});var Js=h((qO,Ys)=>{var Yv=ft(),Jv=Fs(),Xv=Us(),Zv=Ks(),Qv=$s(),eg="[object Boolean]",tg="[object Date]",rg="[object Map]",ng="[object Number]",og="[object RegExp]",ag="[object Set]",ig="[object String]",sg="[object Symbol]",ug="[object ArrayBuffer]",cg="[object DataView]",dg="[object Float32Array]",lg="[object Float64Array]",fg="[object Int8Array]",pg="[object Int16Array]",hg="[object Int32Array]",vg="[object Uint8Array]",gg="[object Uint8ClampedArray]",yg="[object Uint16Array]",mg="[object Uint32Array]";function bg(e,t,r){var n=e.constructor;switch(t){case ug:return Yv(e);case eg:case tg:return new n(+e);case cg:return Jv(e,r);case dg:case lg:case fg:case pg:case hg:case vg:case gg:case yg:case mg:return Qv(e,r);case rg:return new n;case ng:case ig:return new n(e);case og:return Xv(e);case ag:return new n;case sg:return Zv(e)}}Ys.exports=bg});var Qs=h((IO,Zs)=>{var Og=se(),Xs=Object.create,Eg=(function(){function e(){}return function(t){if(!Og(t))return{};if(Xs)return Xs(t);e.prototype=t;var r=new e;return e.prototype=void 0,r}})();Zs.exports=Eg});var tu=h((CO,eu)=>{var _g=Qs(),Tg=wr(),Ng=ut();function wg(e){return typeof e.constructor=="function"&&!Ng(e)?_g(Tg(e)):{}}eu.exports=wg});var nu=h((DO,ru)=>{var Rg=Fe(),Ag=Q(),Pg="[object Map]";function xg(e){return Ag(e)&&Rg(e)==Pg}ru.exports=xg});var su=h((LO,iu)=>{var Sg=nu(),jg=it(),ou=st(),au=ou&&ou.isMap,qg=au?jg(au):Sg;iu.exports=qg});var cu=h((MO,uu)=>{var Ig=Fe(),Cg=Q(),Dg="[object Set]";function Lg(e){return Cg(e)&&Ig(e)==Dg}uu.exports=Lg});var pu=h((kO,fu)=>{var Mg=cu(),kg=it(),du=st(),lu=du&&du.isSet,Fg=lu?kg(lu):Mg;fu.exports=Fg});var mu=h((FO,yu)=>{var Hg=Bt(),Ug=ns(),Gg=Nr(),Bg=ls(),Vg=ms(),zg=Ts(),Kg=ws(),Wg=As(),$g=js(),Yg=rr(),Jg=Is(),Xg=Fe(),Zg=Ds(),Qg=Js(),ey=tu(),ty=De(),ry=at(),ny=su(),oy=se(),ay=pu(),iy=ct(),sy=lt(),uy=1,cy=2,dy=4,hu="[object Arguments]",ly="[object Array]",fy="[object Boolean]",py="[object Date]",hy="[object Error]",vu="[object Function]",vy="[object GeneratorFunction]",gy="[object Map]",yy="[object Number]",gu="[object Object]",my="[object RegExp]",by="[object Set]",Oy="[object String]",Ey="[object Symbol]",_y="[object WeakMap]",Ty="[object ArrayBuffer]",Ny="[object DataView]",wy="[object Float32Array]",Ry="[object Float64Array]",Ay="[object Int8Array]",Py="[object Int16Array]",xy="[object Int32Array]",Sy="[object Uint8Array]",jy="[object Uint8ClampedArray]",qy="[object Uint16Array]",Iy="[object Uint32Array]",R={};R[hu]=R[ly]=R[Ty]=R[Ny]=R[fy]=R[py]=R[wy]=R[Ry]=R[Ay]=R[Py]=R[xy]=R[gy]=R[yy]=R[gu]=R[my]=R[by]=R[Oy]=R[Ey]=R[Sy]=R[jy]=R[qy]=R[Iy]=!0;R[hy]=R[vu]=R[_y]=!1;function pt(e,t,r,n,o,a){var s,i=t&uy,c=t&cy,u=t&dy;if(r&&(s=o?r(e,n,o,a):r(e)),s!==void 0)return s;if(!oy(e))return e;var d=ty(e);if(d){if(s=Zg(e),!i)return Kg(e,s)}else{var l=Xg(e),f=l==vu||l==vy;if(ry(e))return zg(e,i);if(l==gu||l==hu||f&&!o){if(s=c||f?{}:ey(e),!i)return c?$g(e,Vg(s,e)):Wg(e,Bg(s,e))}else{if(!R[l])return o?e:{};s=Qg(e,l,i)}}a||(a=new Hg);var p=a.get(e);if(p)return p;a.set(e,s),ay(e)?e.forEach(function(y){s.add(pt(y,t,r,y,e,a))}):ny(e)&&e.forEach(function(y,b){s.set(b,pt(y,t,r,b,e,a))});var v=u?c?Jg:Yg:c?sy:iy,g=d?void 0:v(e);return Ug(g||e,function(y,b){g&&(b=y,y=e[b]),Gg(s,b,pt(y,t,r,b,e,a))}),s}yu.exports=pt});var Ou=h((HO,bu)=>{var Cy=mu(),Dy=1,Ly=4;function My(e){return Cy(e,Dy|Ly)}bu.exports=My});function C(e){for(var t=arguments.length,r=Array(t>1?t-1:0),n=1;n3?t.i-4:t.i:Array.isArray(e)?1:Ze(e)?2:Qe(e)?3:0}function we(e,t){return K(e)===2?e.has(t):Object.prototype.hasOwnProperty.call(e,t)}function We(e,t){return K(e)===2?e.get(t):e[t]}function en(e,t,r){var n=K(e);n===2?e.set(t,r):n===3?e.add(r):e[t]=r}function Xu(e,t){return e===t?e!==0||1/e==1/t:e!=e&&t!=t}function Ze(e){return tc&&e instanceof Map}function Qe(e){return rc&&e instanceof Set}function I(e){return e.o||e.t}function jt(e){if(Array.isArray(e))return Array.prototype.slice.call(e);var t=oc(e);delete t[_];for(var r=Lt(t),n=0;n1&&(e.set=e.add=e.clear=e.delete=Zu),Object.freeze(e),t&&Z(e,(function(r,n){return qt(n,!0)}),!0)),e}function Zu(){C(2)}function It(e){return e==null||typeof e!="object"||Object.isFrozen(e)}function H(e){var t=xt[e];return t||C(18,e),t}function tn(e,t){xt[e]||(xt[e]=t)}function $e(){return Ae}function Nt(e,t){t&&(H("Patches"),e.u=[],e.s=[],e.v=t)}function Ye(e){Pt(e),e.p.forEach(Qu),e.p=null}function Pt(e){e===Ae&&(Ae=e.l)}function $r(e){return Ae={p:[],l:Ae,h:e,m:!0,_:0}}function Qu(e){var t=e[_];t.i===0||t.i===1?t.j():t.g=!0}function wt(e,t){t._=t.p.length;var r=t.p[0],n=e!==void 0&&e!==r;return t.h.O||H("ES5").S(t,e,n),n?(r[_].P&&(Ye(t),C(4)),U(e)&&(e=Je(t,e),t.l||Xe(t,e)),t.u&&H("Patches").M(r[_].t,e,t.u,t.s)):e=Je(t,r,[]),Ye(t),t.u&&t.v(t.u,t.s),e!==Dt?e:void 0}function Je(e,t,r){if(It(t))return t;var n=t[_];if(!n)return Z(t,(function(i,c){return Yr(e,n,t,i,c,r)}),!0),t;if(n.A!==e)return t;if(!n.P)return Xe(e,n.t,!0),n.t;if(!n.I){n.I=!0,n.A._--;var o=n.i===4||n.i===5?n.o=jt(n.k):n.o,a=o,s=!1;n.i===3&&(a=new Set(o),o.clear(),s=!0),Z(a,(function(i,c){return Yr(e,n,o,i,c,r,s)})),Xe(e,o,!1),r&&e.u&&H("Patches").N(n,r,e.u,e.s)}return n.o}function Yr(e,t,r,n,o,a,s){if(X(o)){var i=Je(e,o,a&&t&&t.i!==3&&!we(t.R,n)?a.concat(n):void 0);if(en(r,n,i),!X(i))return;e.m=!1}else s&&r.add(o);if(U(o)&&!It(o)){if(!e.h.D&&e._<1)return;Je(e,o),t&&t.A.l||Xe(e,o)}}function Xe(e,t,r){r===void 0&&(r=!1),!e.l&&e.h.D&&e.m&&qt(t,r)}function Rt(e,t){var r=e[_];return(r?I(r):e)[t]}function Jr(e,t){if(t in e)for(var r=Object.getPrototypeOf(e);r;){var n=Object.getOwnPropertyDescriptor(r,t);if(n)return n;r=Object.getPrototypeOf(r)}}function G(e){e.P||(e.P=!0,e.l&&G(e.l))}function At(e){e.o||(e.o=jt(e.t))}function Re(e,t,r){var n=Ze(t)?H("MapSet").F(t,r):Qe(t)?H("MapSet").T(t,r):e.O?(function(o,a){var s=Array.isArray(o),i={i:s?1:0,A:a?a.A:$e(),P:!1,I:!1,R:{},l:a,t:o,k:null,o:null,j:null,C:!1},c=i,u=St;s&&(c=[i],u=Te);var d=Proxy.revocable(c,u),l=d.revoke,f=d.proxy;return i.k=f,i.j=l,f})(t,r):H("ES5").J(t,r);return(r?r.A:$e()).p.push(n),n}function ec(e){return X(e)||C(22,e),(function t(r){if(!U(r))return r;var n,o=r[_],a=K(r);if(o){if(!o.P&&(o.i<4||!H("ES5").K(o)))return o.t;o.I=!0,n=Xr(r,a),o.I=!1}else n=Xr(r,a);return Z(n,(function(s,i){o&&We(o.t,s)===i||en(n,s,t(i))})),a===3?new Set(n):n})(e)}function Xr(e,t){switch(t){case 2:return new Map(e);case 3:return Array.from(e)}return jt(e)}function rn(){function e(n){if(!U(n))return n;if(Array.isArray(n))return n.map(e);if(Ze(n))return new Map(Array.from(n.entries()).map((function(s){return[s[0],e(s[1])]})));if(Qe(n))return new Set(Array.from(n).map(e));var o=Object.create(Object.getPrototypeOf(n));for(var a in n)o[a]=e(n[a]);return we(n,Ne)&&(o[Ne]=n[Ne]),o}function t(n){return X(n)?e(n):n}var r="add";tn("Patches",{$:function(n,o){return o.forEach((function(a){for(var s=a.path,i=a.op,c=n,u=0;u1?b-1:0),N=1;N1?d-1:0),f=1;f=0;o--){var a=n[o];if(a.path.length===0&&a.op==="replace"){r=a.value;break}}o>-1&&(n=n.slice(o+1));var s=H("Patches").$;return X(r)?s(r,n):this.produce(r,(function(i){return s(i,n)}))},e})(),L=new ac,ic=L.produce,Mt=L.produceWithPatches.bind(L),hm=L.setAutoFreeze.bind(L),vm=L.setUseProxies.bind(L),kt=L.applyPatches.bind(L),gm=L.createDraft.bind(L),ym=L.finishDraft.bind(L),on=ic;var Ri=ze(mi()),Pi=ze(Oi());import Sh,{useMemo as he,useRef as te,useCallback as lr,useEffect as Ai,useState as jh,cloneElement as qh,isValidElement as Ih}from"react";var Ei=(e=21)=>crypto.getRandomValues(new Uint8Array(e)).reduce((t,r)=>(r&=63,r<36?t+=r.toString(36):r<62?t+=(r-26).toString(36).toUpperCase():r>62?t+="-":t+="_",t),"");var xh=!0,cr="Invariant failed";function w(e,t){if(!e){if(xh)throw new Error(cr);var r=typeof t=="function"?t():t,n=r?"".concat(cr,": ").concat(r):cr;throw new Error(n)}}import Ch from"react-dom";typeof window<"u"&&(window.__CRAFTJS__||(window.__CRAFTJS__={}),window.__CRAFTJS__["@craftjs/utils"]="0.2.5");var F="ROOT",vr="canvas-ROOT",xi="Parent id cannot be ommited",Si="Attempting to add a node with duplicated id",gr="Node does not exist, it may have been removed",ji='A that is used inside a User Component must specify an `id` prop, eg: ... ';var qi="Node cannot be dropped into target parent",Ii="Target parent rejects incoming node",Ci="Current parent rejects outgoing node",yr="Cannot move node that is not a direct child of a Canvas node",Di="Cannot move node into a non-Canvas parent",mr="A top-level Node cannot be moved";var Li="Cannot move node into a descendant",He="The component type specified for this node (%node_type%) does not exist in the resolver";var Mi="The node has specified a canDrag() rule that prevents it from being dragged",ki="Invalid parameter Node Id specified",Fi="Attempting to delete a top-level Node",Hi=`Resolver in has to be an object. For (de)serialization Craft.js needs a list of all the User Components. + +More info: https://craft.js.org/r/docs/api/editor#props`,Ui=`An Error occurred while deserializing components: Cannot find component <%displayName% /> in resolver map. Please check your resolver in + +Available components in resolver: %availableComponents% + +More info: https://craft.js.org/r/docs/api/editor#props`,Gi=`You can only use useEditor in the context of . + +Please only use useEditor in components that are children of the component.`,Bi=`You can only use useNode in the context of . + +Please only use useNode in components that are children of the component.`;function _i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable}))),r.push.apply(r,n)}return r}function M(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=new Array(t);r2&&arguments[2]!==void 0?arguments[2]:500;if(t.length!==0||r.length!==0){if(this.timeline.length&&this.pointer>=0){var o=this.timeline[this.pointer],a=o.patches,s=o.inversePatches,i=o.timestamp;if(new Date().getTime()-i=0){var n=this.timeline[this.pointer],o=n.inversePatches;this.timeline[this.pointer]={timestamp:n.timestamp,patches:[].concat(D(n.patches),D(t)),inversePatches:[].concat(D(r),D(o))}}else this.add(t,r)}},{key:"clear",value:function(){this.timeline=[],this.pointer=-1}},{key:"canUndo",value:function(){return this.pointer>=0}},{key:"canRedo",value:function(){return this.pointer-1)return this.subscribers.splice(r,1)}}},{key:"notify",value:function(){this.subscribers.forEach((function(t){return t.collect()}))}}]),e})(),Mh=(function(){function e(t,r){var n=arguments.length>2&&arguments[2]!==void 0&&arguments[2];ye(this,e),j(this,"collected",void 0),j(this,"collector",void 0),j(this,"onChange",void 0),j(this,"id",void 0),this.collector=t,this.onChange=r,n&&this.collect()}return me(e,[{key:"collect",value:function(){try{var t=this.collector();(0,Ri.default)(t,this.collected)||(this.collected=t,this.onChange&&this.onChange(this.collected))}catch(r){console.warn(r)}}}]),e})(),be=function(e){var t=e.getBoundingClientRect(),r=t.x,n=t.y,o=t.top,a=t.left,s=t.bottom,i=t.right,c=t.width,u=t.height,d=window.getComputedStyle(e),l={left:parseInt(d.marginLeft),right:parseInt(d.marginRight),bottom:parseInt(d.marginBottom),top:parseInt(d.marginTop)},f={left:parseInt(d.paddingLeft),right:parseInt(d.paddingRight),bottom:parseInt(d.paddingBottom),top:parseInt(d.paddingTop)};return{x:r,y:n,top:o,left:a,bottom:s,right:i,width:c,height:u,outerWidth:Math.round(c+l.left+l.right),outerHeight:Math.round(u+l.top+l.bottom),margin:l,padding:f,inFlow:e.parentElement&&!!(function(p){var v=getComputedStyle(p);if(!(d.overflow&&d.overflow!=="visible"||v.float!=="none"||v.display==="grid"||v.display==="flex"&&v["flex-direction"]!=="column")){switch(d.position){case"static":case"relative":break;default:return}switch(e.tagName){case"TR":case"TBODY":case"THEAD":case"TFOOT":return!0}switch(d.display){case"block":case"list-item":case"table":case"flex":case"grid":return!0}}})(e.parentElement)}};function Ji(e,t){let{subscribe:r,getState:n,actions:o,query:a}=e,s=te(!0),i=te(null),c=te(t);c.current=t;let u=lr((f=>({...f,actions:o,query:a})),[o,a]);s.current&&t&&(i.current=t(n(),a),s.current=!1);let[d,l]=jh(u(i.current));return Ai((()=>{let f;return c.current&&(f=r((p=>c.current(p,a)),(p=>{l(u(p))}))),()=>{f&&f()}}),[u,a,r]),d}var ge,Or=function(){return Ei(arguments.length>0&&arguments[0]!==void 0?arguments[0]:10)},kh=(function(){function e(){ye(this,e),j(this,"isEnabled",!0),j(this,"elementIdMap",new WeakMap),j(this,"registry",new Map)}return me(e,[{key:"getElementId",value:function(t){var r=this.elementIdMap.get(t);if(r)return r;var n=Or();return this.elementIdMap.set(t,n),n}},{key:"getConnectorId",value:function(t,r){var n=this.getElementId(t);return"".concat(r,"--").concat(n)}},{key:"register",value:function(t,r){var n=this,o=this.getByElement(t,r.name);if(o){if((0,Pi.default)(r.required,o.required))return o;this.getByElement(t,r.name).disable()}var a=null,s=this.getConnectorId(t,r.name);return this.registry.set(s,{id:s,required:r.required,enable:function(){a&&a(),a=r.connector(t,r.required,r.options)},disable:function(){a&&a()},remove:function(){return n.remove(s)}}),this.isEnabled&&this.registry.get(s).enable(),this.registry.get(s)}},{key:"get",value:function(t){return this.registry.get(t)}},{key:"remove",value:function(t){var r=this.get(t);r&&(r.disable(),this.registry.delete(r.id))}},{key:"enable",value:function(){this.isEnabled=!0,this.registry.forEach((function(t){t.enable()}))}},{key:"disable",value:function(){this.isEnabled=!1,this.registry.forEach((function(t){t.disable()}))}},{key:"getByElement",value:function(t,r){return this.get(this.getConnectorId(t,r))}},{key:"removeByElement",value:function(t,r){return this.remove(this.getConnectorId(t,r))}},{key:"clear",value:function(){this.disable(),this.elementIdMap=new WeakMap,this.registry=new Map}}]),e})();(function(e){e[e.HandlerDisabled=0]="HandlerDisabled",e[e.HandlerEnabled=1]="HandlerEnabled"})(ge||(ge={}));var Er=(function(){function e(t){ye(this,e),j(this,"options",void 0),j(this,"registry",new kh),j(this,"subscribers",new Set),this.options=t}return me(e,[{key:"listen",value:function(t){var r=this;return this.subscribers.add(t),function(){return r.subscribers.delete(t)}}},{key:"disable",value:function(){this.onDisable&&this.onDisable(),this.registry.disable(),this.subscribers.forEach((function(t){t(ge.HandlerDisabled)}))}},{key:"enable",value:function(){this.onEnable&&this.onEnable(),this.registry.enable(),this.subscribers.forEach((function(t){t(ge.HandlerEnabled)}))}},{key:"cleanup",value:function(){this.disable(),this.subscribers.clear(),this.registry.clear()}},{key:"addCraftEventListener",value:function(t,r,n,o){var a=function(s){(function(i,c,u){i.craft||(i.craft={stopPropagation:function(){},blockedEvents:{}});for(var d=i.craft&&i.craft.blockedEvents[c]||[],l=0;l1?d-1:0),f=1;f"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch{return!1}})(),function(){var a,s=ve(t);if(r){var i=ve(this).constructor;a=Reflect.construct(s,arguments,i)}else a=s.apply(this,arguments);return(function(c,u){if(u&&(typeof u=="object"||typeof u=="function"))return u;if(u!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return dr(c)})(this,a)});function o(a,s){var i;return ye(this,o),j(dr(i=n.call(this,s)),"derived",void 0),j(dr(i),"unsubscribeParentHandlerListener",void 0),i.derived=a,i.options=s,i.unsubscribeParentHandlerListener=i.derived.listen((function(c){switch(c){case ge.HandlerEnabled:return i.enable();case ge.HandlerDisabled:return i.disable();default:return}})),i}return me(o,[{key:"inherit",value:function(a){return this.createProxyHandlers(this.derived,a)}},{key:"cleanup",value:function(){pr(ve(o.prototype),"cleanup",this).call(this),this.unsubscribeParentHandlerListener()}}]),o})();function wi(e,t){t&&(typeof e=="function"?e(t):e.current=t)}function Fh(e,t){let r=e.ref;return w(typeof r!="string","Cannot connect to an element with an existing string ref. Please convert it to use a callback ref instead, or wrap it into a or
. Read more: https://facebook.github.io/react/docs/more-about-refs.html#the-ref-callback-attribute"),qh(e,r?{ref:n=>{wi(r,n),wi(t,n)}}:{ref:t})}function Hh(e){return(t=null,...r)=>{if(!Ih(t)){if(!t)return;let o=t;return o&&e(o,...r),o}let n=t;return(function(o){if(typeof o.type!="string")throw new Error})(n),Fh(n,e)}}function _r(e){return Object.keys(e).reduce(((t,r)=>(t[r]=Hh(((...n)=>e[r](...n))),t)),{})}var Zi=({style:e,className:t,parentDom:r})=>{let n=Sh.createElement("div",{className:t,style:{position:"fixed",display:"block",opacity:1,borderStyle:"solid",borderWidth:"1px",borderColor:"transparent",zIndex:99999,...e}});return r&&r.ownerDocument!==document?Ch.createPortal(n,r.ownerDocument.body):n};var B=function(e,t){var r="Deprecation warning: ".concat(e," will be deprecated in future relases."),n=t.suggest,o=t.doc;n&&(r+=" Please use ".concat(n," instead.")),o&&(r+="(".concat(o,")")),console.warn(r)},Qi=function(){return typeof window<"u"},es=function(){return Qi()&&/Linux/i.test(window.navigator.userAgent)},ts=function(){return Qi()&&/Chrome/i.test(window.navigator.userAgent)};import*as Y from"react";import T,{createContext as Au,useContext as mt,useMemo as re,useEffect as Fr,useState as ky,useRef as Fy,Children as Hy,Fragment as Uy}from"react";var Pu=ze(tt()),xu=ze(Ou());typeof window<"u"&&(window.__CRAFTJS__||(window.__CRAFTJS__={}),window.__CRAFTJS__["@craftjs/core"]="0.2.12");var Su=T.createContext(null),ju=({id:e,related:t=!1,children:r})=>T.createElement(Su.Provider,{value:{id:e,related:t}},r);function Eu(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable}))),r.push.apply(r,n)}return r}function O(e){for(var t=1;t=0||(d[c]=s[c]);return d})(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}function Be(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function Ur(e){var t=(function(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch{return!1}})();return function(){var r,n=vt(e);if(t){var o=vt(this).constructor;r=Reflect.construct(n,arguments,o)}else r=n.apply(this,arguments);return(function(a,s){if(s&&(typeof s=="object"||typeof s=="function"))return s;if(s!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return Be(a)})(this,r)}}function qu(e,t){return(function(r){if(Array.isArray(r))return r})(e)||(function(r,n){var o=r==null?null:typeof Symbol<"u"&&r[Symbol.iterator]||r["@@iterator"];if(o!=null){var a,s,i,c,u=[],d=!0,l=!1;try{if(i=(o=o.call(r)).next,n===0){if(Object(o)!==o)return;d=!1}else for(;!(d=(a=i.call(o)).done)&&(u.push(a.value),u.length!==n);d=!0);}catch(f){l=!0,s=f}finally{try{if(!d&&o.return!=null&&(c=o.return(),Object(c)!==c))return}finally{if(l)throw s}}return u}})(e,t)||Iu(e,t)||(function(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)})()}function Ve(e){return(function(t){if(Array.isArray(t))return jr(t)})(e)||(function(t){if(typeof Symbol<"u"&&t[Symbol.iterator]!=null||t["@@iterator"]!=null)return Array.from(t)})(e)||Iu(e)||(function(){throw new TypeError(`Invalid attempt to spread non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)})()}function Iu(e,t){if(e){if(typeof e=="string")return jr(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set"?Array.from(e):r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?jr(e,t):void 0}}function jr(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r{let{connectors:{connect:t,drag:r}}=Mu();return typeof e.type=="string"?t(r(T.cloneElement(e))):e},zy=()=>{let{type:e,props:t,nodes:r,hydrationTimestamp:n}=Et((o=>({type:o.data.type,props:o.data.props,nodes:o.data.nodes,hydrationTimestamp:o._hydrationTimestamp})));return re((()=>{let o=t.children;r&&r.length>0&&(o=T.createElement(T.Fragment,null,r.map((s=>T.createElement(Br,{id:s,key:s})))));let a=T.createElement(e,t,o);return typeof e=="string"?T.createElement(Vy,{render:a}):a}),[e,t,n,r])},Ky=({render:e})=>{let{hidden:t}=Et((n=>({hidden:n.data.hidden}))),{onRender:r}=ne((n=>({onRender:n.options.onRender})));return t?null:T.createElement(r,{render:e||T.createElement(zy,null)})},Br=({id:e,render:t})=>T.createElement(ju,{id:e},T.createElement(Ky,{render:t})),qr={is:"div",canvas:!1,custom:{},hidden:!1},Wy={is:"type",canvas:"isCanvas"};function Vr({id:e,children:t,...r}){let{is:n}={...qr,...r},{query:o,actions:a}=ne(),{id:s,inNodeContext:i}=Et(),[c]=ky((()=>{w(!!e,ji);let u=o.node(s).get();if(i){let d=u.data.linkedNodes[e]?o.node(u.data.linkedNodes[e]).get():null;if(d&&d.data.type===n)return d.id;let l=T.createElement(Vr,r,t),f=o.parseReactElement(l).toNodeTree();return a.history.ignore().addLinkedNodeFromTree(f,s,e),f.rootNodeId}return null}));return c?T.createElement(Br,{id:c}):null}var ku=()=>B("",{suggest:""});function Ir({...e}){return Fr((()=>ku()),[]),T.createElement(Vr,{...e,canvas:!0})}var $y=()=>{let{timestamp:e}=ne((t=>({timestamp:t.nodes[F]&&t.nodes[F]._hydrationTimestamp})));return e?T.createElement(Br,{id:F,key:e}):null},VO=({children:e,json:t,data:r})=>{let{actions:n,query:o}=ne();t&&B("",{suggest:""});let a=Fy(!1);if(!a.current){let s=r||t;if(s)n.history.ignore().deserialize(s);else if(e){let i=T.Children.only(e),c=o.parseReactElement(i).toNodeTree(((u,d)=>(d===i&&(u.id=F),u)));n.history.ignore().addNodeTree(c)}a.current=!0}return T.createElement($y,null)},Tu;(function(e){e[e.Any=0]="Any",e[e.Id=1]="Id",e[e.Obj=2]="Obj"})(Tu||(Tu={}));var Ar=e=>{let{addLinkedNodeFromTree:t,setDOM:r,setNodeEvent:n,replaceNodes:o,reset:a,...s}=e;return s};function Nu(e){let{connectors:t,actions:r,query:n,store:o,...a}=ne(e),s=Ar(r);return{connectors:t,actions:re((()=>({...s,history:{...s.history,ignore:(...i)=>Ar(s.history.ignore(...i)),throttle:(...i)=>Ar(s.history.throttle(...i))}})),[s]),query:n,store:o,...a}}function zO(e){return t=>r=>{let n=e?Nu(e):Nu();return T.createElement(t,{...n,...r})}}function KO(e){return function(t){return r=>{let n=Mu(e);return T.createElement(t,{...n,...r})}}}var Fu=function(e){return Object.fromEntries?Object.fromEntries(e):e.reduce((function(t,r){var n=qu(r,2),o=n[0],a=n[1];return O(O({},t),{},q({},o,a))}),{})},V=function(e,t,r){var n=Array.isArray(t)?t:[t],o=O({existOnly:!1,idOnly:!1},r||{}),a=n.filter((function(s){return!!s})).map((function(s){return typeof s=="string"?{node:e[s],exists:!!e[s]}:xr(s)!=="object"||o.idOnly?{node:null,exists:!1}:{node:s,exists:!!e[s.id]}}));return o.existOnly&&w(a.filter((function(s){return!s.exists})).length===0,gr),a},Yy=["history"],Ee=null,gt=function(e,t){if(typeof t=="string")return t;var r,n=(function(o,a){var s=(function(i){if(Ee&&Ee.resolver===i)return Ee.reversed;Ee={resolver:i,reversed:new Map};for(var c=0,u=Object.entries(i);ctypeof e=="string"?e:{resolvedName:gt(t,e)},Cr=(e,t)=>{let{type:r,isCanvas:n,props:o}=e;return o=Object.keys(o).reduce(((a,s)=>{let i=o[s];return i==null||typeof i=="function"||(a[s]=s==="children"&&typeof i!="string"?Hy.map(i,(c=>typeof c=="string"?c:Cr(c,t))):typeof i.type=="function"?Cr(i,t):i),a}),{}),{type:Jy(r,t),isCanvas:!!n,props:o}},Xy=(e,t)=>{let{type:r,props:n,isCanvas:o,name:a,...s}=e;return{...Cr({type:r,isCanvas:o,props:n},t),...s}};function Dr(e,t){w(typeof t=="string",ki);var r=e.nodes[t],n=function(o){return Dr(e,o)};return{isCanvas:function(){return!!r.data.isCanvas},isRoot:function(){return r.id===F},isLinkedNode:function(){return r.data.parent&&n(r.data.parent).linkedNodes().includes(r.id)},isTopLevelNode:function(){return this.isRoot()||this.isLinkedNode()},isDeletable:function(){return!this.isTopLevelNode()},isParentOfTopLevelNodes:function(){return r.data.linkedNodes&&Object.keys(r.data.linkedNodes).length>0},isParentOfTopLevelCanvas:function(){return B("query.node(id).isParentOfTopLevelCanvas",{suggest:"query.node(id).isParentOfTopLevelNodes"}),this.isParentOfTopLevelNodes()},isSelected:function(){return e.events.selected.has(t)},isHovered:function(){return e.events.hovered.has(t)},isDragged:function(){return e.events.dragged.has(t)},get:function(){return r},ancestors:function(){var o=arguments.length>0&&arguments[0]!==void 0&&arguments[0];return(function a(s){var i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[],c=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,u=e.nodes[s];return u?(i.push(s),u.data.parent&&(o||!o&&c===0)&&(i=a(u.data.parent,i,c+1)),i):i})(r.data.parent)},descendants:function(){var o=arguments.length>0&&arguments[0]!==void 0&&arguments[0],a=arguments.length>1?arguments[1]:void 0;return(function s(i){var c=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[],u=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0;return(o||!o&&u===0)&&e.nodes[i]&&(a!=="childNodes"&&n(i).linkedNodes().forEach((function(d){c.push(d),c=s(d,c,u+1)})),a!=="linkedNodes"&&n(i).childNodes().forEach((function(d){c.push(d),c=s(d,c,u+1)}))),c})(t)},linkedNodes:function(){return Object.values(r.data.linkedNodes||{})},childNodes:function(){return r.data.nodes||[]},isDraggable:function(o){try{var a=r;return w(!this.isTopLevelNode(),mr),w(Dr(e,a.data.parent).isCanvas(),yr),w(a.rules.canDrag(a,n),Mi),!0}catch(s){return o&&o(s),!1}},isDroppable:function(o,a){var s=V(e.nodes,o),i=r;try{w(this.isCanvas(),Di),w(i.rules.canMoveIn(s.map((function(u){return u.node})),i,n),Ii);var c={};return s.forEach((function(u){var d=u.node,l=u.exists;if(w(d.rules.canDrop(i,d,n),qi),l){w(!n(d.id).isTopLevelNode(),mr);var f=n(d.id).descendants(!0);w(!f.includes(i.id)&&i.id!==d.id,Li);var p=d.data.parent&&e.nodes[d.data.parent];w(p.data.isCanvas,yr),w(p||!p&&!e.nodes[d.id],Si),p.id!==i.id&&(c[p.id]||(c[p.id]=[]),c[p.id].push(d))}})),Object.keys(c).forEach((function(u){var d=e.nodes[u];w(d.rules.canMoveOut(c[u],d,n),Ci)})),!0}catch(u){return a&&a(u),!1}},toSerializedNode:function(){return Xy(r.data,e.options.resolver)},toNodeTree:function(o){var a=[t].concat(Ve(this.descendants(!0,o))).reduce((function(s,i){return s[i]=n(i).get(),s}),{});return{rootNodeId:t,nodes:a}},decendants:function(){var o=arguments.length>0&&arguments[0]!==void 0&&arguments[0];return B("query.node(id).decendants",{suggest:"query.node(id).descendants"}),this.descendants(o)},isTopLevelCanvas:function(){return!this.isRoot()&&!r.data.parent}}}function Hu(e,t,r,n){for(var o={parent:e,index:0,where:"before"},a=0,s=0,i=0,c=0,u=0,d=0,l=0,f=t.length;ls||i&&u>=i||a&&p.left+p.outerWidth{let{type:n,props:o}=e,a=((i,c)=>typeof i=="object"&&i.resolvedName?i.resolvedName==="Canvas"?Ir:c[i.resolvedName]:typeof i=="string"?i:null)(n,t);if(!a)return;o=Object.keys(o).reduce(((i,c)=>{let u=o[c];return i[c]=u==null?null:typeof u=="object"&&u.resolvedName?Mr(u,t):c==="children"&&Array.isArray(u)?u.map((d=>typeof d=="string"?d:Mr(d,t))):u,i}),{}),r&&(o.key=r);let s={...T.createElement(a,{...o})};return{...s,name:gt(t,s.type)}},Zy=(e,t)=>{let{type:r,props:n,...o}=e;w(r!==void 0&&typeof r=="string"||r!==void 0&&r.resolvedName!==void 0,Ui.replace("%displayName%",e.displayName).replace("%availableComponents%",Object.keys(t).join(", ")));let{type:a,name:s,props:i}=Mr(e,t),{parent:c,custom:u,displayName:d,isCanvas:l,nodes:f,hidden:p}=o;return{type:a,name:s,displayName:d||s,props:i,custom:u||{},isCanvas:!!l,hidden:!!p,parent:c,linkedNodes:o.linkedNodes||o._childCanvas||{},nodes:f||[]}},Qy=(e,t)=>{if(t.length<1)return{[e.id]:e};let r=t.map((({rootNodeId:o})=>o)),n={...e,data:{...e.data,nodes:r}};return t.reduce(((o,a)=>{let s=a.nodes[a.rootNodeId];return{...o,...a.nodes,[s.id]:{...s,data:{...s.data,parent:e.id}}}}),{[e.id]:n})},em=(e,t)=>({rootNodeId:e.id,nodes:Qy(e,t)});function Uu(e){let t=e&&e.options,r=()=>Uu(e);return{getDropPlaceholder:(n,o,a,s=(i=>e.nodes[i.id].dom))=>{let i=e.nodes[o],c=r().node(i.id).isCanvas()?i:e.nodes[i.data.parent];if(!c)return;let u=c.data.nodes||[],d=Hu(c,u?u.reduce(((p,v)=>{let g=s(e.nodes[v]);if(g){let y={id:v,...be(g)};p.push(y)}return p}),[]):[],a.x,a.y),l=u.length&&e.nodes[u[d.index]],f={placement:{...d,currentNode:l},error:null};return V(e.nodes,n).forEach((({node:p,exists:v})=>{v&&r().node(p.id).isDraggable((g=>f.error=g))})),r().node(c.id).isDroppable(n,(p=>f.error=p)),f},getOptions:()=>t,getNodes:()=>e.nodes,node:n=>Dr(e,n),getSerializedNodes(){let n=Object.keys(e.nodes).map((o=>[o,this.node(o).toSerializedNode()]));return Fu(n)},getEvent:n=>(function(o,a){var s=o.events[a];return{contains:function(i){return s.has(i)},isEmpty:function(){return this.all().length===0},first:function(){return this.all()[0]},last:function(){var i=this.all();return i[i.length-1]},all:function(){return Array.from(s)},size:function(){return this.all().length},at:function(i){return this.all()[i]},raw:function(){return s}}})(e,n),serialize(){return JSON.stringify(this.getSerializedNodes())},parseReactElement:n=>({toNodeTree(o){let a=(function(i,c){let u=i;return typeof u=="string"&&(u=T.createElement(Uy,{},u)),Lr({data:{type:u.type,props:{...u.props}}},(d=>{c&&c(d,u)}))})(n,((i,c)=>{let u=gt(e.options.resolver,i.data.type);i.data.displayName=i.data.displayName||u,i.data.name=u,o&&o(i,c)})),s=[];return n.props&&n.props.children&&(s=T.Children.toArray(n.props.children).reduce(((i,c)=>(T.isValidElement(c)&&i.push(r().parseReactElement(c).toNodeTree(o)),i)),[])),em(a,s)}}),parseSerializedNode:n=>({toNode(o){let a=Zy(n,e.options.resolver);w(a.type,He);let s=typeof o=="string"&&o;return s&&B("query.parseSerializedNode(...).toNode(id)",{suggest:"query.parseSerializedNode(...).toNode(node => node.id = id)"}),r().parseFreshNode({...s?{id:s}:{},data:a}).toNode(!s&&o)}}),parseFreshNode:n=>({toNode:o=>Lr(n,(a=>{a.data.parent===vr&&(a.data.parent=F);let s=gt(e.options.resolver,a.data.type);w(s!==null,He),a.data.displayName=a.data.displayName||s,a.data.name=s,o&&o(a)}))}),createNode(n,o){B(`query.createNode(${n})`,{suggest:`query.parseReactElement(${n}).toNodeTree()`});let a=this.parseReactElement(n).toNodeTree(),s=a.nodes[a.rootNodeId];return o&&(o.id&&(s.id=o.id),o.data&&(s.data={...s.data,...o.data})),s},getState:()=>e}}var tm=(function(e){Hr(r,Er);var t=Ur(r);function r(){return bt(this,r),t.apply(this,arguments)}return Ot(r,[{key:"handlers",value:function(){return{connect:function(n,o){},select:function(n,o){},hover:function(n,o){},drag:function(n,o){},drop:function(n,o){},create:function(n,o,a){}}}}]),r})(),WO=(function(e){Hr(r,Xi);var t=Ur(r);function r(){return bt(this,r),t.apply(this,arguments)}return Ot(r)})(),wu=function(e){e.preventDefault()},kr=(function(){function e(t,r){bt(this,e),q(this,"store",void 0),q(this,"dragTarget",void 0),q(this,"currentDropTargetId",void 0),q(this,"currentDropTargetCanvasAncestorId",void 0),q(this,"currentIndicator",null),q(this,"currentTargetId",void 0),q(this,"currentTargetChildDimensions",void 0),q(this,"dragError",void 0),q(this,"draggedNodes",void 0),q(this,"onScrollListener",void 0),this.store=t,this.dragTarget=r,this.currentDropTargetId=null,this.currentDropTargetCanvasAncestorId=null,this.currentTargetId=null,this.currentTargetChildDimensions=null,this.currentIndicator=null,this.dragError=null,this.draggedNodes=this.getDraggedNodes(),this.validateDraggedNodes(),this.onScrollListener=this.onScroll.bind(this),window.addEventListener("scroll",this.onScrollListener,!0),window.addEventListener("dragover",wu,!1)}return Ot(e,[{key:"cleanup",value:function(){window.removeEventListener("scroll",this.onScrollListener,!0),window.removeEventListener("dragover",wu,!1)}},{key:"onScroll",value:function(t){var r=t.target,n=this.store.query.node(F).get();r instanceof Element&&n&&n.dom&&r.contains(n.dom)&&(this.currentTargetChildDimensions=null)}},{key:"getDraggedNodes",value:function(){return V(this.store.query.getNodes(),this.dragTarget.type==="new"?this.dragTarget.tree.nodes[this.dragTarget.tree.rootNodeId]:this.dragTarget.nodes)}},{key:"validateDraggedNodes",value:function(){var t=this;this.dragTarget.type!=="new"&&this.draggedNodes.forEach((function(r){r.exists&&t.store.query.node(r.node.id).isDraggable((function(n){t.dragError=n}))}))}},{key:"isNearBorders",value:function(t,r,n){return t.top+e.BORDER_OFFSET>n||t.bottom-e.BORDER_OFFSETr||t.right-e.BORDER_OFFSET2&&arguments[2]!==void 0&&arguments[2]){var r=t[0].getBoundingClientRect(),n=r.width,o=r.height,a=t[0].cloneNode(!0);return a.style.position="absolute",a.style.left="-100%",a.style.top="-100%",a.style.width="".concat(n,"px"),a.style.height="".concat(o,"px"),a.style.pointerEvents="none",a.classList.add("drag-shadow"),document.body.appendChild(a),e.dataTransfer.setDragImage(a,0,0),a}var s=document.createElement("div");return s.style.position="absolute",s.style.left="-100%",s.style.top="-100%",s.style.width="100%",s.style.height="100%",s.style.pointerEvents="none",s.classList.add("drag-shadow-container"),t.forEach((function(i){var c=i.getBoundingClientRect(),u=c.width,d=c.height,l=c.top,f=c.left,p=i.cloneNode(!0);p.style.position="absolute",p.style.left="".concat(f,"px"),p.style.top="".concat(l,"px"),p.style.width="".concat(u,"px"),p.style.height="".concat(d,"px"),p.classList.add("drag-shadow"),s.appendChild(p)})),document.body.appendChild(s),e.dataTransfer.setDragImage(s,e.clientX,e.clientY),s},Gu=(function(e){Hr(r,tm);var t=Ur(r);function r(){var n;bt(this,r);for(var o=arguments.length,a=new Array(o),s=0;s1&&o.actions.setNodeEvent("selected",p=[s]),n.currentSelectedElementIds=p}));return function(){i(),c()}},hover:function(a,s){var i=n.addCraftEventListener(a,"mouseover",(function(u){u.craft.stopPropagation(),o.actions.setNodeEvent("hovered",s)})),c=null;return n.options.removeHoverOnMouseleave&&(c=n.addCraftEventListener(a,"mouseleave",(function(u){u.craft.stopPropagation(),o.actions.setNodeEvent("hovered",null)}))),function(){i(),c&&c()}},drop:function(a,s){var i=n.addCraftEventListener(a,"dragover",(function(u){if(u.craft.stopPropagation(),u.preventDefault(),n.positioner){var d=n.positioner.computeIndicator(s,u.clientX,u.clientY);d&&o.actions.setIndicator(d)}})),c=n.addCraftEventListener(a,"dragenter",(function(u){u.craft.stopPropagation(),u.preventDefault()}));return function(){c(),i()}},drag:function(a,s){if(!o.query.node(s).isDraggable())return function(){};a.setAttribute("draggable","true");var i=n.addCraftEventListener(a,"dragstart",(function(u){u.craft.stopPropagation();var d=o.query,l=o.actions,f=d.getEvent("selected").all(),p=n.options.isMultiSelectEnabled(u);n.currentSelectedElementIds.includes(s)||(f=p?[].concat(Ve(f),[s]):[s],o.actions.setNodeEvent("selected",f)),l.setNodeEvent("dragged",f);var v=f.map((function(g){return d.node(g).get().dom}));n.draggedElementShadow=Ru(u,v,r.forceSingleDragShadow),n.dragTarget={type:"existing",nodes:f},n.positioner=new kr(n.options.store,n.dragTarget)})),c=n.addCraftEventListener(a,"dragend",(function(u){u.craft.stopPropagation(),n.dropElement((function(d,l){d.type!=="new"&&o.actions.move(d.nodes,l.placement.parent.id,l.placement.index+(l.placement.where==="after"?1:0))}))}));return function(){a.setAttribute("draggable","false"),i(),c()}},create:function(a,s,i){a.setAttribute("draggable","true");var c=n.addCraftEventListener(a,"dragstart",(function(d){var l;if(d.craft.stopPropagation(),typeof s=="function"){var f=s();l=T.isValidElement(f)?o.query.parseReactElement(f).toNodeTree():f}else l=o.query.parseReactElement(s).toNodeTree();n.draggedElementShadow=Ru(d,[d.currentTarget],r.forceSingleDragShadow),n.dragTarget={type:"new",tree:l},n.positioner=new kr(n.options.store,n.dragTarget)})),u=n.addCraftEventListener(a,"dragend",(function(d){d.craft.stopPropagation(),n.dropElement((function(l,f){l.type!=="existing"&&(o.actions.addNodeTree(l.tree,f.placement.parent.id,f.placement.index+(f.placement.where==="after"?1:0)),i&&(0,Pu.default)(i.onCreate)&&i.onCreate(l.tree))}))}));return function(){a.removeAttribute("draggable"),c(),u()}}}}},{key:"dropElement",value:function(n){var o=this.options.store;if(this.positioner){var a=this.draggedElementShadow,s=this.positioner.getIndicator();this.dragTarget&&s&&!s.error&&n(this.dragTarget,s),a&&(a.parentNode.removeChild(a),this.draggedElementShadow=null),this.dragTarget=null,o.actions.setIndicator(null),o.actions.setNodeEvent("dragged",null),this.positioner.cleanup(),this.positioner=null}}}]),r})();function rm(e,t,r){var n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:2,o=0,a=0,s=0,i=0,c=e.where;return r?r.inFlow?(s=r.outerWidth,i=n,o=c==="before"?r.top:r.bottom,a=r.left):(s=n,i=r.outerHeight,o=r.top,a=c==="before"?r.left:r.left+r.outerWidth):t&&(o=t.top+t.padding.top,a=t.left+t.padding.left,s=t.outerWidth-t.padding.right-t.padding.left-t.margin.left-t.margin.right,i=n),{top:"".concat(o,"px"),left:"".concat(a,"px"),width:"".concat(s,"px"),height:"".concat(i,"px")}}q(Gu,"forceSingleDragShadow",ts()&&es());var nm=()=>{let{indicator:e,indicatorOptions:t,enabled:r}=ne((o=>({indicator:o.indicator,indicatorOptions:o.options.indicator,enabled:o.options.enabled}))),n=Lu();return Fr((()=>{n&&(r?n.enable():n.disable())}),[r,n]),e?T.createElement(Zi,{className:t.className,style:{...rm(e.placement,be(e.placement.parent.dom),e.placement.currentNode&&be(e.placement.currentNode.dom),t.thickness),backgroundColor:e.error?t.error:t.success,transition:t.transition||"0.2s ease-in",...t.style??{}},parentDom:e.placement.parent.dom}):null},om=({children:e})=>{let t=mt(Gr),r=re((()=>t.query.getOptions().handlers(t)),[t]);return r?T.createElement(Du.Provider,{value:r},T.createElement(nm,null),e):null},yt={nodes:{},events:{dragged:new Set,selected:new Set,hovered:new Set},indicator:null,options:{onNodesChange:()=>null,onRender:({render:e})=>e,onBeforeMoveEnd:()=>null,resolver:{},enabled:!0,indicator:{error:"red",success:"rgb(98, 196, 98)"},handlers:e=>new Gu({store:e,removeHoverOnMouseleave:!1,isMultiSelectEnabled:t=>!!t.metaKey}),normalizeNodes:()=>{}}},am={methods:function(e,t){return O(O({},(function(r,n){var o=function(i,c,u){if((function f(p,v){var g=i.nodes[p];typeof g.data.type!="string"&&w(r.options.resolver[g.data.name],He.replace("%node_type%","".concat(g.data.type.name))),r.nodes[p]=O(O({},g),{},{data:O(O({},g.data),{},{parent:v})}),g.data.nodes.length>0&&(delete r.nodes[p].data.props.children,g.data.nodes.forEach((function(y){return f(y,g.id)}))),Object.values(g.data.linkedNodes).forEach((function(y){return f(y,g.id)}))})(i.rootNodeId,c),c||i.rootNodeId!==F){var d=a(c);if(u.type!=="child")d.data.linkedNodes[u.id]=i.rootNodeId;else{var l=u.index;l!=null?d.data.nodes.splice(l,0,i.rootNodeId):d.data.nodes.push(i.rootNodeId)}}},a=function(i){w(i,xi);var c=r.nodes[i];return w(c,gr),c},s=function i(c){var u=r.nodes[c],d=r.nodes[u.data.parent];if(u.data.nodes&&Ve(u.data.nodes).forEach((function(p){return i(p)})),u.data.linkedNodes&&Object.values(u.data.linkedNodes).map((function(p){return i(p)})),d.data.nodes.includes(c)){var l=d.data.nodes;l.splice(l.indexOf(c),1)}else{var f=Object.keys(d.data.linkedNodes).find((function(p){return d.data.linkedNodes[p]===p}));f&&delete d.data.linkedNodes[f]}(function(p,v){Object.keys(p.events).forEach((function(g){var y=p.events[g];y&&y.has&&y.has(v)&&(p.events[g]=new Set(Array.from(y).filter((function(b){return v!==b}))))}))})(r,c),delete r.nodes[c]};return{addLinkedNodeFromTree:function(i,c,u){var d=a(c).data.linkedNodes[u];d&&s(d),o(i,c,{type:"linked",id:u})},add:function(i,c,u){var d=[i];Array.isArray(i)&&(B("actions.add(node: Node[])",{suggest:"actions.add(node: Node)"}),d=i),d.forEach((function(l){o({nodes:q({},l.id,l),rootNodeId:l.id},c,{type:"child",index:u})}))},addNodeTree:function(i,c,u){o(i,c,{type:"child",index:u})},delete:function(i){V(r.nodes,i,{existOnly:!0,idOnly:!0}).forEach((function(c){var u=c.node;w(!n.node(u.id).isTopLevelNode(),Fi),s(u.id)}))},deserialize:function(i){var c=typeof i=="string"?JSON.parse(i):i,u=Object.keys(c).map((function(d){var l=d;return d===vr&&(l=F),[l,n.parseSerializedNode(c[d]).toNode((function(f){return f.id=l}))]}));this.replaceNodes(Fu(u))},move:function(i,c,u){var d=V(r.nodes,i,{existOnly:!0}),l=r.nodes[c],f=new Set;d.forEach((function(p,v){var g=p.node,y=g.id,b=g.data.parent;n.node(c).isDroppable([y],(function(E){throw new Error(E)})),r.options.onBeforeMoveEnd(g,l,r.nodes[b]);var m=r.nodes[b].data.nodes;f.add(m);var N=m.indexOf(y);m[N]="$$",l.data.nodes.splice(u+v,0,y),r.nodes[y].data.parent=c})),f.forEach((function(p){var v=p.length;Ve(p).reverse().forEach((function(g,y){g==="$$"&&p.splice(v-1-y,1)}))}))},replaceNodes:function(i){this.clearEvents(),r.nodes=i},clearEvents:function(){this.setNodeEvent("selected",null),this.setNodeEvent("hovered",null),this.setNodeEvent("dragged",null),this.setIndicator(null)},reset:function(){this.clearEvents(),this.replaceNodes({})},setOptions:function(i){i(r.options)},setNodeEvent:function(i,c){if(r.events[i].forEach((function(l){r.nodes[l]&&(r.nodes[l].events[i]=!1)})),r.events[i]=new Set,c){var u=V(r.nodes,c,{idOnly:!0,existOnly:!0}),d=new Set(u.map((function(l){return l.node.id})));d.forEach((function(l){r.nodes[l].events[i]=!0})),r.events[i]=d}},setCustom:function(i,c){V(r.nodes,i,{idOnly:!0,existOnly:!0}).forEach((function(u){return c(r.nodes[u.node.id].data.custom)}))},setDOM:function(i,c){r.nodes[i]&&(r.nodes[i].dom=c)},setIndicator:function(i){i&&(!i.placement.parent.dom||i.placement.currentNode&&!i.placement.currentNode.dom)||(r.indicator=i)},setHidden:function(i,c){r.nodes[i].data.hidden=c},setProp:function(i,c){V(r.nodes,i,{idOnly:!0,existOnly:!0}).forEach((function(u){return c(r.nodes[u.node.id].data.props)}))},selectNode:function(i){if(i){var c=V(r.nodes,i,{idOnly:!0,existOnly:!0});this.setNodeEvent("selected",c.map((function(u){return u.node.id})))}else this.setNodeEvent("selected",null);this.setNodeEvent("hovered",null)}}})(e,t)),{},{setState:function(r){var n=$(this,Yy);r(e,n)}})},ignoreHistoryForActions:["setDOM","setNodeEvent","selectNode","clearEvents","setOptions","setIndicator"],normalizeHistory:e=>{Object.keys(e.events).forEach((t=>{Array.from(e.events[t]||[]).forEach((r=>{e.nodes[r]||e.events[t].delete(r)}))})),Object.keys(e.nodes).forEach((t=>{let r=e.nodes[t];Object.keys(r.events).forEach((n=>{r.events[n]&&e.events[n]&&!e.events[n].has(r.id)&&(r.events[n]=!1)}))}))}},im=(e,t)=>Yi(am,{...yt,options:{...yt.options,...e}},Uu,t),$O=({children:e,...t})=>{t.resolver!==void 0&&w(typeof t.resolver=="object"&&!Array.isArray(t.resolver)&&t.resolver!==null,Hi);let r=Y.useRef(t),n=im(r.current,((o,a,s,i,c)=>{if(!s)return;let{patches:u,...d}=s;for(let l=0;l2&&f[0]==="nodes"&&f[2]==="data";if([x.IGNORE,x.THROTTLE].includes(d.type)&&d.params&&(d.type=d.params[0]),["setState","deserialize"].includes(d.type)||p){c((v=>{o.options.normalizeNodes&&o.options.normalizeNodes(v,a,d,i)}));break}}}));return Y.useEffect((()=>{n&&t.enabled!==void 0&&n.query.getOptions().enabled!==t.enabled&&n.actions.setOptions((o=>{o.enabled=t.enabled}))}),[n,t.enabled]),Y.useEffect((()=>{n.subscribe((o=>({json:n.query.serialize()})),(()=>{n.query.getOptions().onNodesChange(n.query)}))}),[n]),n?Y.createElement(Gr.Provider,{value:n},Y.createElement(om,null,e)):null},sm=["events","data"],um=["nodes"],cm=["nodes"],dm=["_hydrationTimestamp","rules"],lm=["_hydrationTimestamp","rules"],Pr=function(e){var t=e.events,r=e.data,n=r.nodes,o=r.linkedNodes,a=$(e,sm),s=Lr((0,xu.default)(e));return{node:e=O(O(O({},s),a),{},{events:O(O({},s.events),t),dom:e.dom||s.dom}),childNodes:n,linkedNodes:o}},YO=function(e,t){var r=t.nodes,n=$(t,um),o=e.nodes,a=$(e,cm);expect(a).toEqual(n);var s=Object.keys(r).reduce((function(c,u){var d=$(r[u],dm);return c[u]=d,c}),{}),i=Object.keys(o).reduce((function(c,u){var d=$(o[u],lm);return c[u]=d,c}),{});expect(i).toEqual(s)},fm=function(e){var t={};return(function r(n){var o=Pr(n),a=o.node,s=o.childNodes,i=o.linkedNodes;t[a.id]=a,s&&s.forEach((function(c,u){var d=Pr(c),l=d.node,f=d.childNodes,p=d.linkedNodes;l.data.parent=a.id,t[l.id]=l,a.data.nodes[u]=l.id,r(O(O({},l),{},{data:O(O({},l.data),{},{nodes:f||[],linkedNodes:p||{}})}))})),i&&Object.keys(i).forEach((function(c){var u=Pr(i[c]),d=u.node,l=u.childNodes,f=u.linkedNodes;a.data.linkedNodes[c]=d.id,d.data.parent=a.id,t[d.id]=d,r(O(O({},d),{},{data:O(O({},d.data),{},{nodes:l||[],linkedNodes:f||{}})}))}))})(e),t},JO=function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},t=e.nodes,r=e.events;return O(O(O({},yt),e),{},{nodes:t?fm(t):{},events:O(O({},yt.events),r||{})})};export{am as ActionMethodsWithConfig,Ir as Canvas,tm as CoreEventHandlers,Gu as DefaultEventHandlers,WO as DerivedCoreEventHandlers,$O as Editor,Vr as Element,om as Events,VO as Frame,Br as NodeElement,Dr as NodeHelpers,ju as NodeProvider,Tu as NodeSelectorType,kr as Positioner,Uu as QueryMethods,F as ROOT_NODE,zO as connectEditor,KO as connectNode,Ru as createShadow,fm as createTestNodes,JO as createTestState,qr as defaultElementProps,ku as deprecateCanvasComponent,yt as editorInitialState,Wy as elementPropToNodeData,YO as expectEditorState,Xy as serializeNode,Nu as useEditor,im as useEditorStore,Lu as useEventHandler,Mu as useNode}; +//# sourceMappingURL=core.bundle.mjs.map \ No newline at end of file diff --git a/public/vendor/react-dom@18.2.0/es2022/react-dom.bundle.mjs b/public/vendor/react-dom@18.2.0/es2022/react-dom.bundle.mjs new file mode 100644 index 0000000..3e2a328 --- /dev/null +++ b/public/vendor/react-dom@18.2.0/es2022/react-dom.bundle.mjs @@ -0,0 +1,36 @@ +/* esm.sh - react-dom@18.2.0 */ +var __setImmediate$ = (cb, ...args) => ( { $t: setTimeout(cb, 0, ...args), [Symbol.dispose](){ clearTimeout(this.t) } }); +import*as __0$ from"/react@18.2.0/es2022/react.mjs";var require=n=>{const e=m=>typeof m.default<"u"?m.default:m,c=m=>Object.assign({__esModule:true},m);switch(n){case"react":return e(__0$);default:console.error('module "'+n+'" not found');return null;}}; +var ba=Object.create;var Lu=Object.defineProperty;var ec=Object.getOwnPropertyDescriptor;var nc=Object.getOwnPropertyNames;var tc=Object.getPrototypeOf,rc=Object.prototype.hasOwnProperty;var lc=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(n,t)=>(typeof require<"u"?require:n)[t]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var Gt=(e,n)=>()=>(n||e((n={exports:{}}).exports,n),n.exports);var ic=(e,n,t,r)=>{if(n&&typeof n=="object"||typeof n=="function")for(let l of nc(n))!rc.call(e,l)&&l!==t&&Lu(e,l,{get:()=>n[l],enumerable:!(r=ec(n,l))||r.enumerable});return e};var uc=(e,n,t)=>(t=e!=null?ba(tc(e)):{},ic(n||!e||!e.__esModule?Lu(t,"default",{value:e,enumerable:!0}):t,e));var Vu=Gt(L=>{"use strict";function wl(e,n){var t=e.length;e.push(n);e:for(;0>>1,l=e[r];if(0>>1;rZt(o,t))sZt(d,o)?(e[r]=d,e[s]=t,r=s):(e[r]=o,e[u]=t,r=u);else if(sZt(d,t))e[r]=d,e[s]=t,r=s;else break e}}return n}function Zt(e,n){var t=e.sortIndex-n.sortIndex;return t!==0?t:e.id-n.id}typeof performance=="object"&&typeof performance.now=="function"?(Tu=performance,L.unstable_now=function(){return Tu.now()}):(hl=Date,Mu=hl.now(),L.unstable_now=function(){return hl.now()-Mu});var Tu,hl,Mu,Le=[],Ke=[],oc=1,me=null,G=3,bt=!1,mn=!1,it=!1,Ou=typeof setTimeout=="function"?setTimeout:null,Fu=typeof clearTimeout=="function"?clearTimeout:null,Du=typeof __setImmediate$<"u"?__setImmediate$:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function kl(e){for(var n=Se(Ke);n!==null;){if(n.callback===null)qt(Ke);else if(n.startTime<=e)qt(Ke),n.sortIndex=n.expirationTime,wl(Le,n);else break;n=Se(Ke)}}function Sl(e){if(it=!1,kl(e),!mn)if(Se(Le)!==null)mn=!0,Cl(El);else{var n=Se(Ke);n!==null&&xl(Sl,n.startTime-e)}}function El(e,n){mn=!1,it&&(it=!1,Fu(ut),ut=-1),bt=!0;var t=G;try{for(kl(n),me=Se(Le);me!==null&&(!(me.expirationTime>n)||e&&!Uu());){var r=me.callback;if(typeof r=="function"){me.callback=null,G=me.priorityLevel;var l=r(me.expirationTime<=n);n=L.unstable_now(),typeof l=="function"?me.callback=l:me===Se(Le)&&qt(Le),kl(n)}else qt(Le);me=Se(Le)}if(me!==null)var i=!0;else{var u=Se(Ke);u!==null&&xl(Sl,u.startTime-n),i=!1}return i}finally{me=null,G=t,bt=!1}}var er=!1,Jt=null,ut=-1,Iu=5,ju=-1;function Uu(){return!(L.unstable_now()-jue||125r?(e.sortIndex=t,wl(Ke,e),Se(Le)===null&&e===Se(Ke)&&(it?(Fu(ut),ut=-1):it=!0,xl(Sl,t-r))):(e.sortIndex=l,wl(Le,e),mn||bt||(mn=!0,Cl(El))),e};L.unstable_shouldYield=Uu;L.unstable_wrapCallback=function(e){var n=G;return function(){var t=G;G=n;try{return e.apply(this,arguments)}finally{G=t}}}});var Bu=Gt((fd,Au)=>{"use strict";Au.exports=Vu()});var Xa=Gt(pe=>{"use strict";var Go=lc("react"),fe=Bu();function h(e){for(var n="https://reactjs.org/docs/error-decoder.html?invariant="+e,t=1;t"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),Yl=Object.prototype.hasOwnProperty,sc=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,Hu={},Wu={};function ac(e){return Yl.call(Wu,e)?!0:Yl.call(Hu,e)?!1:sc.test(e)?Wu[e]=!0:(Hu[e]=!0,!1)}function cc(e,n,t,r){if(t!==null&&t.type===0)return!1;switch(typeof n){case"function":case"symbol":return!0;case"boolean":return r?!1:t!==null?!t.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!=="data-"&&e!=="aria-");default:return!1}}function fc(e,n,t,r){if(n===null||typeof n>"u"||cc(e,n,t,r))return!0;if(r)return!1;if(t!==null)switch(t.type){case 3:return!n;case 4:return n===!1;case 5:return isNaN(n);case 6:return isNaN(n)||1>n}return!1}function te(e,n,t,r,l,i,u){this.acceptsBooleans=n===2||n===3||n===4,this.attributeName=r,this.attributeNamespace=l,this.mustUseProperty=t,this.propertyName=e,this.type=n,this.sanitizeURL=i,this.removeEmptyString=u}var X={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){X[e]=new te(e,0,!1,e,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var n=e[0];X[n]=new te(n,1,!1,e[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(e){X[e]=new te(e,2,!1,e.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){X[e]=new te(e,2,!1,e,null,!1,!1)});"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e){X[e]=new te(e,3,!1,e.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(e){X[e]=new te(e,3,!0,e,null,!1,!1)});["capture","download"].forEach(function(e){X[e]=new te(e,4,!1,e,null,!1,!1)});["cols","rows","size","span"].forEach(function(e){X[e]=new te(e,6,!1,e,null,!1,!1)});["rowSpan","start"].forEach(function(e){X[e]=new te(e,5,!1,e.toLowerCase(),null,!1,!1)});var Vi=/[\-:]([a-z])/g;function Ai(e){return e[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(e){var n=e.replace(Vi,Ai);X[n]=new te(n,1,!1,e,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var n=e.replace(Vi,Ai);X[n]=new te(n,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(e){var n=e.replace(Vi,Ai);X[n]=new te(n,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(e){X[e]=new te(e,1,!1,e.toLowerCase(),null,!1,!1)});X.xlinkHref=new te("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(e){X[e]=new te(e,1,!1,e.toLowerCase(),null,!0,!0)});function Bi(e,n,t,r){var l=X.hasOwnProperty(n)?X[n]:null;(l!==null?l.type!==0:r||!(2o||l[u]!==i[o]){var s=` +`+l[u].replace(" at new "," at ");return e.displayName&&s.includes("")&&(s=s.replace("",e.displayName)),s}while(1<=u&&0<=o);break}}}finally{Nl=!1,Error.prepareStackTrace=t}return(e=e?e.displayName||e.name:"")?vt(e):""}function dc(e){switch(e.tag){case 5:return vt(e.type);case 16:return vt("Lazy");case 13:return vt("Suspense");case 19:return vt("SuspenseList");case 0:case 2:case 15:return e=Pl(e.type,!1),e;case 11:return e=Pl(e.type.render,!1),e;case 1:return e=Pl(e.type,!0),e;default:return""}}function Jl(e){if(e==null)return null;if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case Dn:return"Fragment";case Mn:return"Portal";case Xl:return"Profiler";case Hi:return"StrictMode";case Gl:return"Suspense";case Zl:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case qo:return(e.displayName||"Context")+".Consumer";case Jo:return(e._context.displayName||"Context")+".Provider";case Wi:var n=e.render;return e=e.displayName,e||(e=n.displayName||n.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case Qi:return n=e.displayName||null,n!==null?n:Jl(e.type)||"Memo";case Xe:n=e._payload,e=e._init;try{return Jl(e(n))}catch{}}return null}function pc(e){var n=e.type;switch(e.tag){case 24:return"Cache";case 9:return(n.displayName||"Context")+".Consumer";case 10:return(n._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=n.render,e=e.displayName||e.name||"",n.displayName||(e!==""?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return n;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return Jl(n);case 8:return n===Hi?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof n=="function")return n.displayName||n.name||null;if(typeof n=="string")return n}return null}function an(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function es(e){var n=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(n==="checkbox"||n==="radio")}function mc(e){var n=es(e)?"checked":"value",t=Object.getOwnPropertyDescriptor(e.constructor.prototype,n),r=""+e[n];if(!e.hasOwnProperty(n)&&typeof t<"u"&&typeof t.get=="function"&&typeof t.set=="function"){var l=t.get,i=t.set;return Object.defineProperty(e,n,{configurable:!0,get:function(){return l.call(this)},set:function(u){r=""+u,i.call(this,u)}}),Object.defineProperty(e,n,{enumerable:t.enumerable}),{getValue:function(){return r},setValue:function(u){r=""+u},stopTracking:function(){e._valueTracker=null,delete e[n]}}}}function tr(e){e._valueTracker||(e._valueTracker=mc(e))}function ns(e){if(!e)return!1;var n=e._valueTracker;if(!n)return!0;var t=n.getValue(),r="";return e&&(r=es(e)?e.checked?"true":"false":e.value),e=r,e!==t?(n.setValue(e),!0):!1}function Tr(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}function ql(e,n){var t=n.checked;return I({},n,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:t??e._wrapperState.initialChecked})}function $u(e,n){var t=n.defaultValue==null?"":n.defaultValue,r=n.checked!=null?n.checked:n.defaultChecked;t=an(n.value!=null?n.value:t),e._wrapperState={initialChecked:r,initialValue:t,controlled:n.type==="checkbox"||n.type==="radio"?n.checked!=null:n.value!=null}}function ts(e,n){n=n.checked,n!=null&&Bi(e,"checked",n,!1)}function bl(e,n){ts(e,n);var t=an(n.value),r=n.type;if(t!=null)r==="number"?(t===0&&e.value===""||e.value!=t)&&(e.value=""+t):e.value!==""+t&&(e.value=""+t);else if(r==="submit"||r==="reset"){e.removeAttribute("value");return}n.hasOwnProperty("value")?ei(e,n.type,t):n.hasOwnProperty("defaultValue")&&ei(e,n.type,an(n.defaultValue)),n.checked==null&&n.defaultChecked!=null&&(e.defaultChecked=!!n.defaultChecked)}function Ku(e,n,t){if(n.hasOwnProperty("value")||n.hasOwnProperty("defaultValue")){var r=n.type;if(!(r!=="submit"&&r!=="reset"||n.value!==void 0&&n.value!==null))return;n=""+e._wrapperState.initialValue,t||n===e.value||(e.value=n),e.defaultValue=n}t=e.name,t!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,t!==""&&(e.name=t)}function ei(e,n,t){(n!=="number"||Tr(e.ownerDocument)!==e)&&(t==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+t&&(e.defaultValue=""+t))}var ht=Array.isArray;function Wn(e,n,t,r){if(e=e.options,n){n={};for(var l=0;l"+n.valueOf().toString()+"",n=rr.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;n.firstChild;)e.appendChild(n.firstChild)}});function Lt(e,n){if(n){var t=e.firstChild;if(t&&t===e.lastChild&&t.nodeType===3){t.nodeValue=n;return}}e.textContent=n}var wt={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},vc=["Webkit","ms","Moz","O"];Object.keys(wt).forEach(function(e){vc.forEach(function(n){n=n+e.charAt(0).toUpperCase()+e.substring(1),wt[n]=wt[e]})});function us(e,n,t){return n==null||typeof n=="boolean"||n===""?"":t||typeof n!="number"||n===0||wt.hasOwnProperty(e)&&wt[e]?(""+n).trim():n+"px"}function os(e,n){e=e.style;for(var t in n)if(n.hasOwnProperty(t)){var r=t.indexOf("--")===0,l=us(t,n[t],r);t==="float"&&(t="cssFloat"),r?e.setProperty(t,l):e[t]=l}}var hc=I({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function ri(e,n){if(n){if(hc[e]&&(n.children!=null||n.dangerouslySetInnerHTML!=null))throw Error(h(137,e));if(n.dangerouslySetInnerHTML!=null){if(n.children!=null)throw Error(h(60));if(typeof n.dangerouslySetInnerHTML!="object"||!("__html"in n.dangerouslySetInnerHTML))throw Error(h(61))}if(n.style!=null&&typeof n.style!="object")throw Error(h(62))}}function li(e,n){if(e.indexOf("-")===-1)return typeof n.is=="string";switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var ii=null;function $i(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var ui=null,Qn=null,$n=null;function Gu(e){if(e=Yt(e)){if(typeof ui!="function")throw Error(h(280));var n=e.stateNode;n&&(n=ll(n),ui(e.stateNode,e.type,n))}}function ss(e){Qn?$n?$n.push(e):$n=[e]:Qn=e}function as(){if(Qn){var e=Qn,n=$n;if($n=Qn=null,Gu(e),n)for(e=0;e>>=0,e===0?32:31-(Pc(e)/zc|0)|0}var lr=64,ir=4194304;function yt(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return e&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return e&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function Or(e,n){var t=e.pendingLanes;if(t===0)return 0;var r=0,l=e.suspendedLanes,i=e.pingedLanes,u=t&268435455;if(u!==0){var o=u&~l;o!==0?r=yt(o):(i&=u,i!==0&&(r=yt(i)))}else u=t&~l,u!==0?r=yt(u):i!==0&&(r=yt(i));if(r===0)return 0;if(n!==0&&n!==r&&(n&l)===0&&(l=r&-r,i=n&-n,l>=i||l===16&&(i&4194240)!==0))return n;if((r&4)!==0&&(r|=t&16),n=e.entangledLanes,n!==0)for(e=e.entanglements,n&=r;0t;t++)n.push(e);return n}function $t(e,n,t){e.pendingLanes|=n,n!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,n=31-Ne(n),e[n]=t}function Dc(e,n){var t=e.pendingLanes&~n;e.pendingLanes=n,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=n,e.mutableReadLanes&=n,e.entangledLanes&=n,n=e.entanglements;var r=e.eventTimes;for(e=e.expirationTimes;0=St),lo=" ",io=!1;function Ls(e,n){switch(e){case"keyup":return of.indexOf(n.keyCode)!==-1;case"keydown":return n.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Ts(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var Rn=!1;function af(e,n){switch(e){case"compositionend":return Ts(n);case"keypress":return n.which!==32?null:(io=!0,lo);case"textInput":return e=n.data,e===lo&&io?null:e;default:return null}}function cf(e,n){if(Rn)return e==="compositionend"||!bi&&Ls(e,n)?(e=Ps(),Sr=Zi=qe=null,Rn=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(n.ctrlKey||n.altKey||n.metaKey)||n.ctrlKey&&n.altKey){if(n.char&&1=n)return{node:t,offset:n-e};e=r}e:{for(;t;){if(t.nextSibling){t=t.nextSibling;break e}t=t.parentNode}t=void 0}t=so(t)}}function Os(e,n){return e&&n?e===n?!0:e&&e.nodeType===3?!1:n&&n.nodeType===3?Os(e,n.parentNode):"contains"in e?e.contains(n):e.compareDocumentPosition?!!(e.compareDocumentPosition(n)&16):!1:!1}function Fs(){for(var e=window,n=Tr();n instanceof e.HTMLIFrameElement;){try{var t=typeof n.contentWindow.location.href=="string"}catch{t=!1}if(t)e=n.contentWindow;else break;n=Tr(e.document)}return n}function eu(e){var n=e&&e.nodeName&&e.nodeName.toLowerCase();return n&&(n==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||n==="textarea"||e.contentEditable==="true")}function wf(e){var n=Fs(),t=e.focusedElem,r=e.selectionRange;if(n!==t&&t&&t.ownerDocument&&Os(t.ownerDocument.documentElement,t)){if(r!==null&&eu(t)){if(n=r.start,e=r.end,e===void 0&&(e=n),"selectionStart"in t)t.selectionStart=n,t.selectionEnd=Math.min(e,t.value.length);else if(e=(n=t.ownerDocument||document)&&n.defaultView||window,e.getSelection){e=e.getSelection();var l=t.textContent.length,i=Math.min(r.start,l);r=r.end===void 0?i:Math.min(r.end,l),!e.extend&&i>r&&(l=r,r=i,i=l),l=ao(t,i);var u=ao(t,r);l&&u&&(e.rangeCount!==1||e.anchorNode!==l.node||e.anchorOffset!==l.offset||e.focusNode!==u.node||e.focusOffset!==u.offset)&&(n=n.createRange(),n.setStart(l.node,l.offset),e.removeAllRanges(),i>r?(e.addRange(n),e.extend(u.node,u.offset)):(n.setEnd(u.node,u.offset),e.addRange(n)))}}for(n=[],e=t;e=e.parentNode;)e.nodeType===1&&n.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(typeof t.focus=="function"&&t.focus(),t=0;t=document.documentMode,On=null,di=null,Ct=null,pi=!1;function co(e,n,t){var r=t.window===t?t.document:t.nodeType===9?t:t.ownerDocument;pi||On==null||On!==Tr(r)||(r=On,"selectionStart"in r&&eu(r)?r={start:r.selectionStart,end:r.selectionEnd}:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection(),r={anchorNode:r.anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset}),Ct&&Ft(Ct,r)||(Ct=r,r=jr(di,"onSelect"),0jn||(e.current=wi[jn],wi[jn]=null,jn--)}function T(e,n){jn++,wi[jn]=e.current,e.current=n}var cn={},b=dn(cn),ie=dn(!1),En=cn;function Zn(e,n){var t=e.type.contextTypes;if(!t)return cn;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===n)return r.__reactInternalMemoizedMaskedChildContext;var l={},i;for(i in t)l[i]=n[i];return r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=n,e.__reactInternalMemoizedMaskedChildContext=l),l}function ue(e){return e=e.childContextTypes,e!=null}function Vr(){D(ie),D(b)}function ko(e,n,t){if(b.current!==cn)throw Error(h(168));T(b,n),T(ie,t)}function Qs(e,n,t){var r=e.stateNode;if(n=n.childContextTypes,typeof r.getChildContext!="function")return t;r=r.getChildContext();for(var l in r)if(!(l in n))throw Error(h(108,pc(e)||"Unknown",l));return I({},t,r)}function Ar(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||cn,En=b.current,T(b,e),T(ie,ie.current),!0}function So(e,n,t){var r=e.stateNode;if(!r)throw Error(h(169));t?(e=Qs(e,n,En),r.__reactInternalMemoizedMergedChildContext=e,D(ie),D(b),T(b,e)):D(ie),T(ie,t)}var Ie=null,il=!1,Ul=!1;function $s(e){Ie===null?Ie=[e]:Ie.push(e)}function Lf(e){il=!0,$s(e)}function pn(){if(!Ul&&Ie!==null){Ul=!0;var e=0,n=z;try{var t=Ie;for(z=1;e>=u,l-=u,je=1<<32-Ne(n)+l|t<_?(W=x,x=null):W=x.sibling;var P=p(c,x,f[_],y);if(P===null){x===null&&(x=W);break}e&&x&&P.alternate===null&&n(c,x),a=i(P,a,_),C===null?E=P:C.sibling=P,C=P,x=W}if(_===f.length)return t(c,x),R&&vn(c,_),E;if(x===null){for(;__?(W=x,x=null):W=x.sibling;var $e=p(c,x,P.value,y);if($e===null){x===null&&(x=W);break}e&&x&&$e.alternate===null&&n(c,x),a=i($e,a,_),C===null?E=$e:C.sibling=$e,C=$e,x=W}if(P.done)return t(c,x),R&&vn(c,_),E;if(x===null){for(;!P.done;_++,P=f.next())P=v(c,P.value,y),P!==null&&(a=i(P,a,_),C===null?E=P:C.sibling=P,C=P);return R&&vn(c,_),E}for(x=r(c,x);!P.done;_++,P=f.next())P=g(x,c,_,P.value,y),P!==null&&(e&&P.alternate!==null&&x.delete(P.key===null?_:P.key),a=i(P,a,_),C===null?E=P:C.sibling=P,C=P);return e&&x.forEach(function(qa){return n(c,qa)}),R&&vn(c,_),E}function U(c,a,f,y){if(typeof f=="object"&&f!==null&&f.type===Dn&&f.key===null&&(f=f.props.children),typeof f=="object"&&f!==null){switch(f.$$typeof){case nr:e:{for(var E=f.key,C=a;C!==null;){if(C.key===E){if(E=f.type,E===Dn){if(C.tag===7){t(c,C.sibling),a=l(C,f.props.children),a.return=c,c=a;break e}}else if(C.elementType===E||typeof E=="object"&&E!==null&&E.$$typeof===Xe&&zo(E)===C.type){t(c,C.sibling),a=l(C,f.props),a.ref=ft(c,C,f),a.return=c,c=a;break e}t(c,C);break}else n(c,C);C=C.sibling}f.type===Dn?(a=Sn(f.props.children,c.mode,y,f.key),a.return=c,c=a):(y=Lr(f.type,f.key,f.props,null,c.mode,y),y.ref=ft(c,a,f),y.return=c,c=y)}return u(c);case Mn:e:{for(C=f.key;a!==null;){if(a.key===C)if(a.tag===4&&a.stateNode.containerInfo===f.containerInfo&&a.stateNode.implementation===f.implementation){t(c,a.sibling),a=l(a,f.children||[]),a.return=c,c=a;break e}else{t(c,a);break}else n(c,a);a=a.sibling}a=Kl(f,c.mode,y),a.return=c,c=a}return u(c);case Xe:return C=f._init,U(c,a,C(f._payload),y)}if(ht(f))return k(c,a,f,y);if(ot(f))return S(c,a,f,y);hr(c,f)}return typeof f=="string"&&f!==""||typeof f=="number"?(f=""+f,a!==null&&a.tag===6?(t(c,a.sibling),a=l(a,f),a.return=c,c=a):(t(c,a),a=$l(f,c.mode,y),a.return=c,c=a),u(c)):t(c,a)}return U}var qn=bs(!0),ea=bs(!1),Xt={},Oe=dn(Xt),Vt=dn(Xt),At=dn(Xt);function wn(e){if(e===Xt)throw Error(h(174));return e}function au(e,n){switch(T(At,n),T(Vt,e),T(Oe,Xt),e=n.nodeType,e){case 9:case 11:n=(n=n.documentElement)?n.namespaceURI:ti(null,"");break;default:e=e===8?n.parentNode:n,n=e.namespaceURI||null,e=e.tagName,n=ti(n,e)}D(Oe),T(Oe,n)}function bn(){D(Oe),D(Vt),D(At)}function na(e){wn(At.current);var n=wn(Oe.current),t=ti(n,e.type);n!==t&&(T(Vt,e),T(Oe,t))}function cu(e){Vt.current===e&&(D(Oe),D(Vt))}var O=dn(0);function Kr(e){for(var n=e;n!==null;){if(n.tag===13){var t=n.memoizedState;if(t!==null&&(t=t.dehydrated,t===null||t.data==="$?"||t.data==="$!"))return n}else if(n.tag===19&&n.memoizedProps.revealOrder!==void 0){if((n.flags&128)!==0)return n}else if(n.child!==null){n.child.return=n,n=n.child;continue}if(n===e)break;for(;n.sibling===null;){if(n.return===null||n.return===e)return null;n=n.return}n.sibling.return=n.return,n=n.sibling}return null}var Vl=[];function fu(){for(var e=0;et?t:4,e(!0);var r=Al.transition;Al.transition={};try{e(!1),n()}finally{z=t,Al.transition=r}}function ya(){return ke().memoizedState}function Rf(e,n,t){var r=on(e);if(t={lane:r,action:t,hasEagerState:!1,eagerState:null,next:null},ga(e))wa(n,t);else if(t=Gs(e,n,t,r),t!==null){var l=ne();Pe(t,e,r,l),ka(t,n,r)}}function Of(e,n,t){var r=on(e),l={lane:r,action:t,hasEagerState:!1,eagerState:null,next:null};if(ga(e))wa(n,l);else{var i=e.alternate;if(e.lanes===0&&(i===null||i.lanes===0)&&(i=n.lastRenderedReducer,i!==null))try{var u=n.lastRenderedState,o=i(u,t);if(l.hasEagerState=!0,l.eagerState=o,ze(o,u)){var s=n.interleaved;s===null?(l.next=l,ou(n)):(l.next=s.next,s.next=l),n.interleaved=l;return}}catch{}finally{}t=Gs(e,n,l,r),t!==null&&(l=ne(),Pe(t,e,r,l),ka(t,n,r))}}function ga(e){var n=e.alternate;return e===F||n!==null&&n===F}function wa(e,n){xt=Yr=!0;var t=e.pending;t===null?n.next=n:(n.next=t.next,t.next=n),e.pending=n}function ka(e,n,t){if((t&4194240)!==0){var r=n.lanes;r&=e.pendingLanes,t|=r,n.lanes=t,Yi(e,t)}}var Xr={readContext:we,useCallback:Z,useContext:Z,useEffect:Z,useImperativeHandle:Z,useInsertionEffect:Z,useLayoutEffect:Z,useMemo:Z,useReducer:Z,useRef:Z,useState:Z,useDebugValue:Z,useDeferredValue:Z,useTransition:Z,useMutableSource:Z,useSyncExternalStore:Z,useId:Z,unstable_isNewReconciler:!1},Ff={readContext:we,useCallback:function(e,n){return Me().memoizedState=[e,n===void 0?null:n],e},useContext:we,useEffect:To,useImperativeHandle:function(e,n,t){return t=t!=null?t.concat([e]):null,_r(4194308,4,da.bind(null,n,e),t)},useLayoutEffect:function(e,n){return _r(4194308,4,e,n)},useInsertionEffect:function(e,n){return _r(4,2,e,n)},useMemo:function(e,n){var t=Me();return n=n===void 0?null:n,e=e(),t.memoizedState=[e,n],e},useReducer:function(e,n,t){var r=Me();return n=t!==void 0?t(n):n,r.memoizedState=r.baseState=n,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:n},r.queue=e,e=e.dispatch=Rf.bind(null,F,e),[r.memoizedState,e]},useRef:function(e){var n=Me();return e={current:e},n.memoizedState=e},useState:Lo,useDebugValue:hu,useDeferredValue:function(e){return Me().memoizedState=e},useTransition:function(){var e=Lo(!1),n=e[0];return e=Df.bind(null,e[1]),Me().memoizedState=e,[n,e]},useMutableSource:function(){},useSyncExternalStore:function(e,n,t){var r=F,l=Me();if(R){if(t===void 0)throw Error(h(407));t=t()}else{if(t=n(),$===null)throw Error(h(349));(xn&30)!==0||la(r,n,t)}l.memoizedState=t;var i={value:t,getSnapshot:n};return l.queue=i,To(ua.bind(null,r,i,e),[e]),r.flags|=2048,Wt(9,ia.bind(null,r,i,t,n),void 0,null),t},useId:function(){var e=Me(),n=$.identifierPrefix;if(R){var t=Ue,r=je;t=(r&~(1<<32-Ne(r)-1)).toString(32)+t,n=":"+n+"R"+t,t=Bt++,0<\/script>",e=e.removeChild(e.firstChild)):typeof r.is=="string"?e=u.createElement(t,{is:r.is}):(e=u.createElement(t),t==="select"&&(u=e,r.multiple?u.multiple=!0:r.size&&(u.size=r.size))):e=u.createElementNS(e,t),e[De]=n,e[Ut]=r,La(e,n,!1,!1),n.stateNode=e;e:{switch(u=li(t,r),t){case"dialog":M("cancel",e),M("close",e),l=r;break;case"iframe":case"object":case"embed":M("load",e),l=r;break;case"video":case"audio":for(l=0;lnt&&(n.flags|=128,r=!0,dt(i,!1),n.lanes=4194304)}else{if(!r)if(e=Kr(u),e!==null){if(n.flags|=128,r=!0,t=e.updateQueue,t!==null&&(n.updateQueue=t,n.flags|=4),dt(i,!0),i.tail===null&&i.tailMode==="hidden"&&!u.alternate&&!R)return J(n),null}else 2*V()-i.renderingStartTime>nt&&t!==1073741824&&(n.flags|=128,r=!0,dt(i,!1),n.lanes=4194304);i.isBackwards?(u.sibling=n.child,n.child=u):(t=i.last,t!==null?t.sibling=u:n.child=u,i.last=u)}return i.tail!==null?(n=i.tail,i.rendering=n,i.tail=n.sibling,i.renderingStartTime=V(),n.sibling=null,t=O.current,T(O,r?t&1|2:t&1),n):(J(n),null);case 22:case 23:return Eu(),r=n.memoizedState!==null,e!==null&&e.memoizedState!==null!==r&&(n.flags|=8192),r&&(n.mode&1)!==0?(se&1073741824)!==0&&(J(n),n.subtreeFlags&6&&(n.flags|=8192)):J(n),null;case 24:return null;case 25:return null}throw Error(h(156,n.tag))}function Wf(e,n){switch(tu(n),n.tag){case 1:return ue(n.type)&&Vr(),e=n.flags,e&65536?(n.flags=e&-65537|128,n):null;case 3:return bn(),D(ie),D(b),fu(),e=n.flags,(e&65536)!==0&&(e&128)===0?(n.flags=e&-65537|128,n):null;case 5:return cu(n),null;case 13:if(D(O),e=n.memoizedState,e!==null&&e.dehydrated!==null){if(n.alternate===null)throw Error(h(340));Jn()}return e=n.flags,e&65536?(n.flags=e&-65537|128,n):null;case 19:return D(O),null;case 4:return bn(),null;case 10:return uu(n.type._context),null;case 22:case 23:return Eu(),null;case 24:return null;default:return null}}var gr=!1,q=!1,Qf=typeof WeakSet=="function"?WeakSet:Set,w=null;function Bn(e,n){var t=e.ref;if(t!==null)if(typeof t=="function")try{t(null)}catch(r){j(e,n,r)}else t.current=null}function Mi(e,n,t){try{t()}catch(r){j(e,n,r)}}var Vo=!1;function $f(e,n){if(mi=Fr,e=Fs(),eu(e)){if("selectionStart"in e)var t={start:e.selectionStart,end:e.selectionEnd};else e:{t=(t=e.ownerDocument)&&t.defaultView||window;var r=t.getSelection&&t.getSelection();if(r&&r.rangeCount!==0){t=r.anchorNode;var l=r.anchorOffset,i=r.focusNode;r=r.focusOffset;try{t.nodeType,i.nodeType}catch{t=null;break e}var u=0,o=-1,s=-1,d=0,m=0,v=e,p=null;n:for(;;){for(var g;v!==t||l!==0&&v.nodeType!==3||(o=u+l),v!==i||r!==0&&v.nodeType!==3||(s=u+r),v.nodeType===3&&(u+=v.nodeValue.length),(g=v.firstChild)!==null;)p=v,v=g;for(;;){if(v===e)break n;if(p===t&&++d===l&&(o=u),p===i&&++m===r&&(s=u),(g=v.nextSibling)!==null)break;v=p,p=v.parentNode}v=g}t=o===-1||s===-1?null:{start:o,end:s}}else t=null}t=t||{start:0,end:0}}else t=null;for(vi={focusedElem:e,selectionRange:t},Fr=!1,w=n;w!==null;)if(n=w,e=n.child,(n.subtreeFlags&1028)!==0&&e!==null)e.return=n,w=e;else for(;w!==null;){n=w;try{var k=n.alternate;if((n.flags&1024)!==0)switch(n.tag){case 0:case 11:case 15:break;case 1:if(k!==null){var S=k.memoizedProps,U=k.memoizedState,c=n.stateNode,a=c.getSnapshotBeforeUpdate(n.elementType===n.type?S:Ce(n.type,S),U);c.__reactInternalSnapshotBeforeUpdate=a}break;case 3:var f=n.stateNode.containerInfo;f.nodeType===1?f.textContent="":f.nodeType===9&&f.documentElement&&f.removeChild(f.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(h(163))}}catch(y){j(n,n.return,y)}if(e=n.sibling,e!==null){e.return=n.return,w=e;break}w=n.return}return k=Vo,Vo=!1,k}function _t(e,n,t){var r=n.updateQueue;if(r=r!==null?r.lastEffect:null,r!==null){var l=r=r.next;do{if((l.tag&e)===e){var i=l.destroy;l.destroy=void 0,i!==void 0&&Mi(n,t,i)}l=l.next}while(l!==r)}}function sl(e,n){if(n=n.updateQueue,n=n!==null?n.lastEffect:null,n!==null){var t=n=n.next;do{if((t.tag&e)===e){var r=t.create;t.destroy=r()}t=t.next}while(t!==n)}}function Di(e){var n=e.ref;if(n!==null){var t=e.stateNode;switch(e.tag){case 5:e=t;break;default:e=t}typeof n=="function"?n(e):n.current=e}}function Da(e){var n=e.alternate;n!==null&&(e.alternate=null,Da(n)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(n=e.stateNode,n!==null&&(delete n[De],delete n[Ut],delete n[gi],delete n[Pf],delete n[zf])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function Ra(e){return e.tag===5||e.tag===3||e.tag===4}function Ao(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||Ra(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function Ri(e,n,t){var r=e.tag;if(r===5||r===6)e=e.stateNode,n?t.nodeType===8?t.parentNode.insertBefore(e,n):t.insertBefore(e,n):(t.nodeType===8?(n=t.parentNode,n.insertBefore(e,t)):(n=t,n.appendChild(e)),t=t._reactRootContainer,t!=null||n.onclick!==null||(n.onclick=Ur));else if(r!==4&&(e=e.child,e!==null))for(Ri(e,n,t),e=e.sibling;e!==null;)Ri(e,n,t),e=e.sibling}function Oi(e,n,t){var r=e.tag;if(r===5||r===6)e=e.stateNode,n?t.insertBefore(e,n):t.appendChild(e);else if(r!==4&&(e=e.child,e!==null))for(Oi(e,n,t),e=e.sibling;e!==null;)Oi(e,n,t),e=e.sibling}var K=null,xe=!1;function Ye(e,n,t){for(t=t.child;t!==null;)Oa(e,n,t),t=t.sibling}function Oa(e,n,t){if(Re&&typeof Re.onCommitFiberUnmount=="function")try{Re.onCommitFiberUnmount(el,t)}catch{}switch(t.tag){case 5:q||Bn(t,n);case 6:var r=K,l=xe;K=null,Ye(e,n,t),K=r,xe=l,K!==null&&(xe?(e=K,t=t.stateNode,e.nodeType===8?e.parentNode.removeChild(t):e.removeChild(t)):K.removeChild(t.stateNode));break;case 18:K!==null&&(xe?(e=K,t=t.stateNode,e.nodeType===8?jl(e.parentNode,t):e.nodeType===1&&jl(e,t),Rt(e)):jl(K,t.stateNode));break;case 4:r=K,l=xe,K=t.stateNode.containerInfo,xe=!0,Ye(e,n,t),K=r,xe=l;break;case 0:case 11:case 14:case 15:if(!q&&(r=t.updateQueue,r!==null&&(r=r.lastEffect,r!==null))){l=r=r.next;do{var i=l,u=i.destroy;i=i.tag,u!==void 0&&((i&2)!==0||(i&4)!==0)&&Mi(t,n,u),l=l.next}while(l!==r)}Ye(e,n,t);break;case 1:if(!q&&(Bn(t,n),r=t.stateNode,typeof r.componentWillUnmount=="function"))try{r.props=t.memoizedProps,r.state=t.memoizedState,r.componentWillUnmount()}catch(o){j(t,n,o)}Ye(e,n,t);break;case 21:Ye(e,n,t);break;case 22:t.mode&1?(q=(r=q)||t.memoizedState!==null,Ye(e,n,t),q=r):Ye(e,n,t);break;default:Ye(e,n,t)}}function Bo(e){var n=e.updateQueue;if(n!==null){e.updateQueue=null;var t=e.stateNode;t===null&&(t=e.stateNode=new Qf),n.forEach(function(r){var l=ed.bind(null,e,r);t.has(r)||(t.add(r),r.then(l,l))})}}function Ee(e,n){var t=n.deletions;if(t!==null)for(var r=0;rl&&(l=u),r&=~i}if(r=l,r=V()-r,r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*Yf(r/1960))-r,10e?16:e,be===null)var r=!1;else{if(e=be,be=null,Jr=0,(N&6)!==0)throw Error(h(331));var l=N;for(N|=4,w=e.current;w!==null;){var i=w,u=i.child;if((w.flags&16)!==0){var o=i.deletions;if(o!==null){for(var s=0;sV()-ku?kn(e,0):wu|=t),oe(e,n)}function Ha(e,n){n===0&&((e.mode&1)===0?n=1:(n=ir,ir<<=1,(ir&130023424)===0&&(ir=4194304)));var t=ne();e=He(e,n),e!==null&&($t(e,n,t),oe(e,t))}function bf(e){var n=e.memoizedState,t=0;n!==null&&(t=n.retryLane),Ha(e,t)}function ed(e,n){var t=0;switch(e.tag){case 13:var r=e.stateNode,l=e.memoizedState;l!==null&&(t=l.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(h(314))}r!==null&&r.delete(n),Ha(e,t)}var Wa;Wa=function(e,n,t){if(e!==null)if(e.memoizedProps!==n.pendingProps||ie.current)le=!0;else{if((e.lanes&t)===0&&(n.flags&128)===0)return le=!1,Bf(e,n,t);le=(e.flags&131072)!==0}else le=!1,R&&(n.flags&1048576)!==0&&Ks(n,Hr,n.index);switch(n.lanes=0,n.tag){case 2:var r=n.type;Nr(e,n),e=n.pendingProps;var l=Zn(n,b.current);Yn(n,t),l=pu(null,n,r,e,l,t);var i=mu();return n.flags|=1,typeof l=="object"&&l!==null&&typeof l.render=="function"&&l.$$typeof===void 0?(n.tag=1,n.memoizedState=null,n.updateQueue=null,ue(r)?(i=!0,Ar(n)):i=!1,n.memoizedState=l.state!==null&&l.state!==void 0?l.state:null,su(n),l.updater=ul,n.stateNode=l,l._reactInternals=n,xi(n,r,e,t),n=Pi(null,n,r,!0,i,t)):(n.tag=0,R&&i&&nu(n),ee(null,n,l,t),n=n.child),n;case 16:r=n.elementType;e:{switch(Nr(e,n),e=n.pendingProps,l=r._init,r=l(r._payload),n.type=r,l=n.tag=td(r),e=Ce(r,e),l){case 0:n=Ni(null,n,r,e,t);break e;case 1:n=Io(null,n,r,e,t);break e;case 11:n=Oo(null,n,r,e,t);break e;case 14:n=Fo(null,n,r,Ce(r.type,e),t);break e}throw Error(h(306,r,""))}return n;case 0:return r=n.type,l=n.pendingProps,l=n.elementType===r?l:Ce(r,l),Ni(e,n,r,l,t);case 1:return r=n.type,l=n.pendingProps,l=n.elementType===r?l:Ce(r,l),Io(e,n,r,l,t);case 3:e:{if(Na(n),e===null)throw Error(h(387));r=n.pendingProps,i=n.memoizedState,l=i.element,Zs(e,n),$r(n,r,null,t);var u=n.memoizedState;if(r=u.element,i.isDehydrated)if(i={element:r,isDehydrated:!1,cache:u.cache,pendingSuspenseBoundaries:u.pendingSuspenseBoundaries,transitions:u.transitions},n.updateQueue.baseState=i,n.memoizedState=i,n.flags&256){l=et(Error(h(423)),n),n=jo(e,n,r,t,l);break e}else if(r!==l){l=et(Error(h(424)),n),n=jo(e,n,r,t,l);break e}else for(ae=rn(n.stateNode.containerInfo.firstChild),ce=n,R=!0,_e=null,t=ea(n,null,r,t),n.child=t;t;)t.flags=t.flags&-3|4096,t=t.sibling;else{if(Jn(),r===l){n=We(e,n,t);break e}ee(e,n,r,t)}n=n.child}return n;case 5:return na(n),e===null&&Si(n),r=n.type,l=n.pendingProps,i=e!==null?e.memoizedProps:null,u=l.children,hi(r,l)?u=null:i!==null&&hi(r,i)&&(n.flags|=32),_a(e,n),ee(e,n,u,t),n.child;case 6:return e===null&&Si(n),null;case 13:return Pa(e,n,t);case 4:return au(n,n.stateNode.containerInfo),r=n.pendingProps,e===null?n.child=qn(n,null,r,t):ee(e,n,r,t),n.child;case 11:return r=n.type,l=n.pendingProps,l=n.elementType===r?l:Ce(r,l),Oo(e,n,r,l,t);case 7:return ee(e,n,n.pendingProps,t),n.child;case 8:return ee(e,n,n.pendingProps.children,t),n.child;case 12:return ee(e,n,n.pendingProps.children,t),n.child;case 10:e:{if(r=n.type._context,l=n.pendingProps,i=n.memoizedProps,u=l.value,T(Wr,r._currentValue),r._currentValue=u,i!==null)if(ze(i.value,u)){if(i.children===l.children&&!ie.current){n=We(e,n,t);break e}}else for(i=n.child,i!==null&&(i.return=n);i!==null;){var o=i.dependencies;if(o!==null){u=i.child;for(var s=o.firstContext;s!==null;){if(s.context===r){if(i.tag===1){s=Ve(-1,t&-t),s.tag=2;var d=i.updateQueue;if(d!==null){d=d.shared;var m=d.pending;m===null?s.next=s:(s.next=m.next,m.next=s),d.pending=s}}i.lanes|=t,s=i.alternate,s!==null&&(s.lanes|=t),Ei(i.return,t,n),o.lanes|=t;break}s=s.next}}else if(i.tag===10)u=i.type===n.type?null:i.child;else if(i.tag===18){if(u=i.return,u===null)throw Error(h(341));u.lanes|=t,o=u.alternate,o!==null&&(o.lanes|=t),Ei(u,t,n),u=i.sibling}else u=i.child;if(u!==null)u.return=i;else for(u=i;u!==null;){if(u===n){u=null;break}if(i=u.sibling,i!==null){i.return=u.return,u=i;break}u=u.return}i=u}ee(e,n,l.children,t),n=n.child}return n;case 9:return l=n.type,r=n.pendingProps.children,Yn(n,t),l=we(l),r=r(l),n.flags|=1,ee(e,n,r,t),n.child;case 14:return r=n.type,l=Ce(r,n.pendingProps),l=Ce(r.type,l),Fo(e,n,r,l,t);case 15:return Ca(e,n,n.type,n.pendingProps,t);case 17:return r=n.type,l=n.pendingProps,l=n.elementType===r?l:Ce(r,l),Nr(e,n),n.tag=1,ue(r)?(e=!0,Ar(n)):e=!1,Yn(n,t),qs(n,r,l),xi(n,r,l,t),Pi(null,n,r,!0,e,t);case 19:return za(e,n,t);case 22:return xa(e,n,t)}throw Error(h(156,n.tag))};function Qa(e,n){return hs(e,n)}function nd(e,n,t,r){this.tag=e,this.key=t,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=n,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function ye(e,n,t,r){return new nd(e,n,t,r)}function xu(e){return e=e.prototype,!(!e||!e.isReactComponent)}function td(e){if(typeof e=="function")return xu(e)?1:0;if(e!=null){if(e=e.$$typeof,e===Wi)return 11;if(e===Qi)return 14}return 2}function sn(e,n){var t=e.alternate;return t===null?(t=ye(e.tag,n,e.key,e.mode),t.elementType=e.elementType,t.type=e.type,t.stateNode=e.stateNode,t.alternate=e,e.alternate=t):(t.pendingProps=n,t.type=e.type,t.flags=0,t.subtreeFlags=0,t.deletions=null),t.flags=e.flags&14680064,t.childLanes=e.childLanes,t.lanes=e.lanes,t.child=e.child,t.memoizedProps=e.memoizedProps,t.memoizedState=e.memoizedState,t.updateQueue=e.updateQueue,n=e.dependencies,t.dependencies=n===null?null:{lanes:n.lanes,firstContext:n.firstContext},t.sibling=e.sibling,t.index=e.index,t.ref=e.ref,t}function Lr(e,n,t,r,l,i){var u=2;if(r=e,typeof e=="function")xu(e)&&(u=1);else if(typeof e=="string")u=5;else e:switch(e){case Dn:return Sn(t.children,l,i,n);case Hi:u=8,l|=8;break;case Xl:return e=ye(12,t,n,l|2),e.elementType=Xl,e.lanes=i,e;case Gl:return e=ye(13,t,n,l),e.elementType=Gl,e.lanes=i,e;case Zl:return e=ye(19,t,n,l),e.elementType=Zl,e.lanes=i,e;case bo:return cl(t,l,i,n);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case Jo:u=10;break e;case qo:u=9;break e;case Wi:u=11;break e;case Qi:u=14;break e;case Xe:u=16,r=null;break e}throw Error(h(130,e==null?e:typeof e,""))}return n=ye(u,t,n,l),n.elementType=e,n.type=r,n.lanes=i,n}function Sn(e,n,t,r){return e=ye(7,e,r,n),e.lanes=t,e}function cl(e,n,t,r){return e=ye(22,e,r,n),e.elementType=bo,e.lanes=t,e.stateNode={isHidden:!1},e}function $l(e,n,t){return e=ye(6,e,null,n),e.lanes=t,e}function Kl(e,n,t){return n=ye(4,e.children!==null?e.children:[],e.key,n),n.lanes=t,n.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},n}function rd(e,n,t,r,l){this.tag=n,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=Ll(0),this.expirationTimes=Ll(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Ll(0),this.identifierPrefix=r,this.onRecoverableError=l,this.mutableSourceEagerHydrationData=null}function _u(e,n,t,r,l,i,u,o,s){return e=new rd(e,n,t,o,s),n===1?(n=1,i===!0&&(n|=8)):n=0,i=ye(3,null,null,n),e.current=i,i.stateNode=e,i.memoizedState={element:r,isDehydrated:t,cache:null,transitions:null,pendingSuspenseBoundaries:null},su(i),e}function ld(e,n,t){var r=3{"use strict";function Ga(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(Ga)}catch(e){console.error(e)}}Ga(),Za.exports=Xa()});var vl=uc(Ja()),{__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:md,createPortal:vd,createRoot:hd,findDOMNode:yd,flushSync:gd,hydrate:wd,hydrateRoot:kd,render:Sd,unmountComponentAtNode:Ed,unstable_batchedUpdates:Cd,unstable_renderSubtreeIntoContainer:xd,version:_d}=vl,Nd=vl.default??vl;export{md as __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,vd as createPortal,hd as createRoot,Nd as default,yd as findDOMNode,gd as flushSync,wd as hydrate,kd as hydrateRoot,Sd as render,Ed as unmountComponentAtNode,Cd as unstable_batchedUpdates,xd as unstable_renderSubtreeIntoContainer,_d as version}; +/*! Bundled license information: + +scheduler/cjs/scheduler.production.min.js: + (** + * @license React + * scheduler.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + *) + +react-dom/cjs/react-dom.production.min.js: + (** + * @license React + * react-dom.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + *) +*/ +//# sourceMappingURL=react-dom.bundle.mjs.map \ No newline at end of file diff --git a/public/vendor/react@18.2.0/es2022/react.mjs b/public/vendor/react@18.2.0/es2022/react.mjs new file mode 100644 index 0000000..724a48e --- /dev/null +++ b/public/vendor/react@18.2.0/es2022/react.mjs @@ -0,0 +1,16 @@ +/* esm.sh - react@18.2.0 */ +var F=Object.create;var k=Object.defineProperty;var U=Object.getOwnPropertyDescriptor;var q=Object.getOwnPropertyNames;var A=Object.getPrototypeOf,M=Object.prototype.hasOwnProperty;var w=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var z=(e,t,r,u)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of q(t))!M.call(e,o)&&o!==r&&k(e,o,{get:()=>t[o],enumerable:!(u=U(t,o))||u.enumerable});return e};var B=(e,t,r)=>(r=e!=null?F(A(e)):{},z(t||!e||!e.__esModule?k(r,"default",{value:e,enumerable:!0}):r,e));var V=w(n=>{"use strict";var y=Symbol.for("react.element"),H=Symbol.for("react.portal"),W=Symbol.for("react.fragment"),Y=Symbol.for("react.strict_mode"),G=Symbol.for("react.profiler"),J=Symbol.for("react.provider"),K=Symbol.for("react.context"),Q=Symbol.for("react.forward_ref"),X=Symbol.for("react.suspense"),Z=Symbol.for("react.memo"),ee=Symbol.for("react.lazy"),b=Symbol.iterator;function te(e){return e===null||typeof e!="object"?null:(e=b&&e[b]||e["@@iterator"],typeof e=="function"?e:null)}var x={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},O=Object.assign,I={};function p(e,t,r){this.props=e,this.context=t,this.refs=I,this.updater=r||x}p.prototype.isReactComponent={};p.prototype.setState=function(e,t){if(typeof e!="object"&&typeof e!="function"&&e!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")};p.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function g(){}g.prototype=p.prototype;function S(e,t,r){this.props=e,this.context=t,this.refs=I,this.updater=r||x}var E=S.prototype=new g;E.constructor=S;O(E,p.prototype);E.isPureReactComponent=!0;var $=Array.isArray,P=Object.prototype.hasOwnProperty,R={current:null},T={key:!0,ref:!0,__self:!0,__source:!0};function D(e,t,r){var u,o={},c=null,f=null;if(t!=null)for(u in t.ref!==void 0&&(f=t.ref),t.key!==void 0&&(c=""+t.key),t)P.call(t,u)&&!T.hasOwnProperty(u)&&(o[u]=t[u]);var i=arguments.length-2;if(i===1)o.children=r;else if(1{"use strict";L.exports=V()});var h=B(N()),{Children:fe,Component:le,Fragment:ae,Profiler:pe,PureComponent:ye,StrictMode:de,Suspense:_e,__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:me,cloneElement:he,createContext:ve,createElement:Se,createFactory:Ee,createRef:Re,forwardRef:Ce,isValidElement:ke,lazy:we,memo:be,startTransition:$e,unstable_act:je,useCallback:xe,useContext:Oe,useDebugValue:Ie,useDeferredValue:ge,useEffect:Pe,useId:Te,useImperativeHandle:De,useInsertionEffect:Ve,useLayoutEffect:Le,useMemo:Ne,useReducer:Fe,useRef:Ue,useState:qe,useSyncExternalStore:Ae,useTransition:Me,version:ze}=h,Be=h.default??h;export{fe as Children,le as Component,ae as Fragment,pe as Profiler,ye as PureComponent,de as StrictMode,_e as Suspense,me as __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,he as cloneElement,ve as createContext,Se as createElement,Ee as createFactory,Re as createRef,Be as default,Ce as forwardRef,ke as isValidElement,we as lazy,be as memo,$e as startTransition,je as unstable_act,xe as useCallback,Oe as useContext,Ie as useDebugValue,ge as useDeferredValue,Pe as useEffect,Te as useId,De as useImperativeHandle,Ve as useInsertionEffect,Le as useLayoutEffect,Ne as useMemo,Fe as useReducer,Ue as useRef,qe as useState,Ae as useSyncExternalStore,Me as useTransition,ze as version}; +/*! Bundled license information: + +react/cjs/react.production.min.js: + (** + * @license React + * react.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + *) +*/ +//# sourceMappingURL=react.mjs.map \ No newline at end of file diff --git a/schema.sql b/schema.sql index c87ba31..312d839 100644 --- a/schema.sql +++ b/schema.sql @@ -106,6 +106,7 @@ CREATE TABLE IF NOT EXISTS `emailtemplate_customer_settings` ( `bridge_token` varchar(255) DEFAULT NULL, `sender_token` varchar(255) DEFAULT NULL, `external_api_token` varchar(255) DEFAULT NULL, + `editor_default` varchar(32) DEFAULT NULL, `created_at` timestamp NOT NULL DEFAULT current_timestamp(), `updated_at` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), PRIMARY KEY (`customer_id`) @@ -204,6 +205,8 @@ CREATE TABLE IF NOT EXISTS `emailtemplate_snippets` ( `category` varchar(100) NOT NULL DEFAULT '', `json_content` mediumtext DEFAULT NULL, `content` mediumtext DEFAULT NULL, + `editor_type` varchar(32) DEFAULT NULL, + `craft_json` mediumtext DEFAULT NULL, `block_id` int(10) unsigned DEFAULT NULL, `created_at` timestamp NOT NULL DEFAULT current_timestamp(), `updated_at` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), @@ -222,6 +225,8 @@ CREATE TABLE IF NOT EXISTS `emailtemplate_templates` ( `api_name` varchar(190) NOT NULL, `json_content` mediumtext DEFAULT NULL, `html` mediumtext DEFAULT NULL, + `editor_type` varchar(32) DEFAULT NULL, + `craft_json` mediumtext DEFAULT NULL, `created_at` timestamp NOT NULL DEFAULT current_timestamp(), `updated_at` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), PRIMARY KEY (`id`), diff --git a/src/ApiKernel.php b/src/ApiKernel.php index e1fff81..0a46a06 100644 --- a/src/ApiKernel.php +++ b/src/ApiKernel.php @@ -453,20 +453,62 @@ class ApiKernel $topHtml = ($htmlCol && isset($row[$htmlCol])) ? (string)$row[$htmlCol] : null; $jsonCol = $this->firstExisting($allCols, ['json_content']); $topContent = ($jsonCol && isset($row[$jsonCol])) ? $row[$jsonCol] : null; - + $editorCol = $this->firstExisting($allCols, ['editor_type', 'editor']); + $craftCol = $this->firstExisting($allCols, ['craft_json', 'craft_content', 'craft_data']); + $editorType = $editorCol && isset($row[$editorCol]) ? strtolower((string)$row[$editorCol]) : ''; + $pendingUpdate = []; + $gjsComponents = []; - + + if ($editorCol && $editorType === '') { + $settings = $this->getCustomerSettings((int)($auth['customer_id'] ?? 0)); + $editorType = strtolower((string)($settings['editor_default'] ?? 'grapesjs')); + if (!in_array($editorType, ['grapesjs', 'craftjs'], true)) { + $editorType = 'grapesjs'; + } + $pendingUpdate[$editorCol] = $editorType; + $rowOut[$editorCol] = $editorType; + } + if ($topContent !== null) { $decodedContent = json_decode($topContent, true); if (is_array($decodedContent)) { $gjsComponents = $decodedContent; } } - + if (empty($gjsComponents) && $topHtml !== null) { $gjsComponents = $this->parseHtmlToGjsComponents($topHtml); } + if ($editorType === 'grapesjs' && $jsonCol && empty($topContent) && $topHtml !== null) { + $pendingUpdate[$jsonCol] = $this->encodeJson($gjsComponents); + $topContent = $pendingUpdate[$jsonCol]; + $rowOut[$jsonCol] = $pendingUpdate[$jsonCol]; + } + if ($editorType === 'craftjs' && $craftCol) { + $craftPayload = isset($row[$craftCol]) ? (string)$row[$craftCol] : ''; + if ($craftPayload === '') { + $pendingUpdate[$craftCol] = $this->encodeJson(['html' => (string)($topHtml ?? '')]); + $rowOut[$craftCol] = $pendingUpdate[$craftCol]; + } + } + + if ($pendingUpdate) { + $pendingUpdate[$idCol] = $row[$idCol] ?? $id; + [$tw, $tp] = $this->tenantWhere($auth); + $set = []; + foreach (array_keys($pendingUpdate) as $c) { + if ($c === $idCol) continue; + $set[] = "`$c` = :$c"; + } + $sql = "UPDATE `$t` SET " . implode(',', $set) . " WHERE `$idCol` = :$idCol" . $tw . " LIMIT 1"; + $stmt = $this->pdo->prepare($sql); + foreach ($pendingUpdate as $k => $v) $stmt->bindValue(":$k", $v); + foreach ($tp as $k => $v) $stmt->bindValue($k, $v); + $stmt->execute(); + } + $usage = $this->calculateUsage($kind, (int)$rowOut['id'], $auth); $this->respond([ @@ -478,6 +520,8 @@ class ApiKernel 'html' => $topHtml, 'content' => $topContent, 'gjs_components' => $gjsComponents, + 'editor_type' => $editorType ?: null, + 'craft_json' => $craftCol && isset($rowOut[$craftCol]) ? $rowOut[$craftCol] : null, 'usage' => $usage, ]); } @@ -510,9 +554,13 @@ class ApiKernel : ['content_json', 'json', 'content', 'structure_json']; $json = $this->val($this->in, $jsonKeys, null); $settings = $this->val($this->in, ['settings_json', 'settings'], null); + $editorType = strtolower(trim((string)$this->val($this->in, ['editor_type', 'editor'], ''))); + $craftJson = $this->val($this->in, ['craft_json', 'craft_content', 'craft_data'], null); $templateId = $this->val($this->in, ['template_id', 'tpl_id'], null); $sectionId = $this->val($this->in, ['section_id', 'sec_id'], null); $blockId = $this->val($this->in, ['block_id', 'blk_id'], null); + $editorType = strtolower(trim((string)$this->val($this->in, ['editor_type', 'editor'], ''))); + $craftJson = $this->val($this->in, ['craft_json', 'craft_content', 'craft_data'], null); $data = [$nameCol => $name]; if ($kind === 'templates') { @@ -541,6 +589,10 @@ class ApiKernel $htmlDbCol = $this->firstExisting($allCols, ($kind === 'snippets' ? ['content'] : ['html', 'body', 'markup'])); $jsonDbCol = $this->firstExisting($allCols, ['json_content']); + $editorDbCol = $this->firstExisting($allCols, ['editor_type', 'editor']); + $craftDbCol = $this->firstExisting($allCols, ['craft_json', 'craft_content', 'craft_data']); + $editorDbCol = $this->firstExisting($allCols, ['editor_type', 'editor']); + $craftDbCol = $this->firstExisting($allCols, ['craft_json', 'craft_content', 'craft_data']); // --- LOGIK mit ERWEITERTER PRÜFUNG START --- @@ -570,6 +622,19 @@ class ApiKernel } // --- LOGIK mit ERWEITERTER PRÜFUNG ENDE --- + if ($editorDbCol) { + if ($editorType === '' && in_array($kind, ['templates', 'snippets'], true)) { + $settings = $this->getCustomerSettings((int)($auth['customer_id'] ?? 0)); + $editorType = strtolower((string)($settings['editor_default'] ?? 'grapesjs')); + } + if ($editorType !== '' && in_array($editorType, ['grapesjs', 'craftjs'], true)) { + $data[$editorDbCol] = $editorType; + } + } + if ($craftDbCol && $craftJson !== null) { + $data[$craftDbCol] = is_string($craftJson) ? $craftJson : $this->encodeJson($craftJson); + } + $c = $this->firstExisting($allCols, ['settings_json', 'settings']); if ($c && $settings !== null) $data[$c] = is_string($settings) ? $settings : $this->encodeJson($settings); @@ -684,6 +749,13 @@ class ApiKernel $data[$htmlDbCol] = (string)$html; } // --- LOGIK mit ERWEITERTER PRÜFUNG ENDE --- + + if ($editorDbCol && $editorType !== '' && in_array($editorType, ['grapesjs', 'craftjs'], true)) { + $data[$editorDbCol] = $editorType; + } + if ($craftDbCol && $craftJson !== null) { + $data[$craftDbCol] = is_string($craftJson) ? $craftJson : $this->encodeJson($craftJson); + } $c = $this->firstExisting($allCols, ['settings_json', 'settings']); if ($settings !== null && $c) $data[$c] = is_string($settings) ? $settings : $this->encodeJson($settings); @@ -1696,6 +1768,7 @@ class ApiKernel $bridgeToken = trim((string)($this->in['bridge_token'] ?? '')); $senderToken = trim((string)($this->in['sender_token'] ?? '')); $externalToken = trim((string)($this->in['external_api_token'] ?? '')); + $editorDefault = strtolower(trim((string)($this->in['editor_default'] ?? ''))); $rotateBridge = !empty($this->in['rotate_bridge_token']); $rotateSender = !empty($this->in['rotate_sender_token']); $rotateExternal = !empty($this->in['rotate_external_token']); @@ -1710,11 +1783,16 @@ class ApiKernel if ($rotateSender || $senderToken === '') $senderToken = $this->generateToken(); if ($rotateExternal || $externalToken === '') $externalToken = $this->generateToken(); + if ($editorDefault !== '' && !in_array($editorDefault, ['grapesjs', 'craftjs'], true)) { + $this->fail('Ungültiger Editor-Typ', null, 422); + } + $settings = $this->saveCustomerSettings($customerId, [ 'bridge_url' => $bridgeUrl, 'bridge_token' => $bridgeToken, 'sender_token' => $senderToken, 'external_api_token' => $externalToken, + 'editor_default' => $editorDefault ?: null, 'bridge_tables' => $bridgeTables, ]); @@ -2240,7 +2318,7 @@ class ApiKernel { if ($customerId <= 0) return []; $this->ensureCustomerSettingsTableExists(); - $allowed = ['bridge_url', 'bridge_token', 'sender_token', 'external_api_token', 'bridge_tables', 'bridge_setup']; + $allowed = ['bridge_url', 'bridge_token', 'sender_token', 'external_api_token', 'editor_default', 'bridge_tables', 'bridge_setup']; $fields = array_intersect_key($data, array_flip($allowed)); if (!$fields) return $this->getCustomerSettings($customerId); if (array_key_exists('bridge_tables', $fields)) { @@ -2303,6 +2381,9 @@ class ApiKernel } else { $row['bridge_setup'] = $this->defaultBridgeSetup(); } + if (empty($row['editor_default'])) { + $row['editor_default'] = 'grapesjs'; + } return $row; } @@ -2577,6 +2658,7 @@ CREATE TABLE IF NOT EXISTS `$table` ( `bridge_token` varchar(255) DEFAULT NULL, `sender_token` varchar(255) DEFAULT NULL, `external_api_token` varchar(255) DEFAULT NULL, + `editor_default` varchar(32) DEFAULT NULL, `bridge_tables` text DEFAULT NULL, `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, `updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, @@ -2615,6 +2697,9 @@ SQL; if (!in_array('bridge_setup', $columns, true)) { $missing[] = 'ADD COLUMN `bridge_setup` longtext DEFAULT NULL'; } + if (!in_array('editor_default', $columns, true)) { + $missing[] = 'ADD COLUMN `editor_default` varchar(32) DEFAULT NULL'; + } if (!$missing) { return;