@ws-ui/store 1.9.1 → 1.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs.js CHANGED
@@ -99,7 +99,7 @@ Valid keys: `+JSON.stringify(Object.keys(H),null," "));var L=K(fe,Se,ae,ue,se+"
99
99
  The error may be correlated with this previous error:
100
100
  `+l.current.stack+`
101
101
 
102
- `),C}return Bl(function(){f.current=e,d.current=g,h.current=_,l.current=void 0}),Bl(function(){function C(){try{var v=r.getState();if(v===d.current)return;var S=f.current(v);if(t(S,h.current))return;h.current=S,d.current=v}catch(E){l.current=E}i()}return u.onStateChange=C,u.trySubscribe(),C(),function(){return u.tryUnsubscribe()}},[r,u]),_}function YP(e){e===void 0&&(e=Dr);var t=e===Dr?zm:function(){return mt.useContext(e)};return function(a,s){if(s===void 0&&(s=VP),process.env.NODE_ENV!=="production"){if(!a)throw new Error("You must pass a selector to useSelector");if(typeof a!="function")throw new Error("You must pass a function as a selector to useSelector");if(typeof s!="function")throw new Error("You must pass a function as an equality function to useSelector")}var i=t(),u=i.store,l=i.subscription,f=zP(a,s,u,l);return mt.useDebugValue(f),f}}var KP=YP();IP(AA.unstable_batchedUpdates);const QP=()=>GP(),dr=KP,No=q(e=>e,e=>e.catalog.state==="loaded"?e.catalog.model:null),JP=q(e=>e,({catalog:e})=>e.state),Km=q(No,e=>e?e.dataClasses:[]),ZP=q(No,e=>e?e.singletons:[]),XP=q(Km,e=>Object.values(e).filter(({virtual:t})=>t)),eD=q(No,e=>e?e.methods:[]),Qm=e=>q(t=>t,t=>{switch(t.catalog.state){case"loaded":const r=e?t.catalog.model.dataClasses[e]:t.catalog.model;return(r==null?void 0:r.methods)||[];default:return[]}}),tD=e=>dr(Qm(e),Vm),rD=(e,t)=>q(Qm(e),r=>r.find(a=>`${a.applyTo}.${a.name}`===t)),nD=(e,t,r)=>dr(rD(e,`${r}.${t}`),Vm),Jm=q(e=>e,e=>e),aD=e=>q(Ir,t=>{var s,i;const r=t.tabs.find(({path:u})=>u===e),a=(s=r==null?void 0:r.content)==null?void 0:s.components;return!r||!a?[]:(i=Object.keys(a))==null?void 0:i.map(u=>({id:u,...a[u]}))}),Zm=e=>q(Ir,t=>{var a,s;const r=t.tabs.find(({path:i})=>i===e);return((s=(a=r==null?void 0:r.content)==null?void 0:a.metadata)==null?void 0:s.datasources)||[]}),sD=(e,t,r)=>q(Jm,a=>{var s,i;if(t){const u=a.sharedDatasources.sources[t];return u?u==null?void 0:u.find(l=>l.id===e):void 0}else{const u=a.root.tabs.find(f=>f.path===r);return u?(i=(s=u.content.metadata)==null?void 0:s.datasources)==null?void 0:i.find(f=>f.id===e):void 0}}),Xm=q(e=>e,e=>{var t;return((t=e.sharedDatasources)==null?void 0:t.sources)||{}}),oD=q(e=>e,e=>{var t;return(t=e.sharedDatasources)==null?void 0:t.state}),iD=(e,t,r,a)=>q(Zm(e),Xm,(s,i)=>{const u=ie.flatten(ie.values(i)),l=[...t!=="private"?s:[],...t!=="shared"?u:[]];return r?l.filter(f=>(!a||a.every(({id:d,namespace:h=""})=>f.id!==d||(f.namespace||"")!==h))&&(r.includes(f.type)||f.dataType&&(r.includes(f.dataType)||r.includes("objectFromArray")&&f.dataType==="object"&&f.from))):l}),uD=q(e=>e.debugger,e=>e.meta),Fr=q(e=>e.debugger,e=>e.list),_t=q(e=>e.debugger,e=>e.sessions),cD=q(_t,e=>e.length),cr=(e,t,r,a)=>e.find(s=>s.filePath===t&&s.methodName===r&&(!a||s.className===a)),Xe=(e,t)=>e.find(r=>r.threadId===t),e_=(e,t)=>e.find(r=>r.tabPath===t),mf=q(Fr,e=>e.reduce((t,r)=>{const a=r.breakpoints.saved.locations.map(s=>({...s,offset:r.breakpoints.saved.offset,fileType:r.fileType,filePath:r.filePath,methodName:r.methodName,className:r.className,ext:r.ext}));return[...t,...a]},[])),lD=q(Fr,e=>e.reduce((t,r)=>{const a=(l,f)=>l.line+(l.offset||0)-(f.line+(f.offset||0)),s=r.breakpoints.saved.locations.map(l=>({...l,offset:r.breakpoints.saved.offset,fileType:r.fileType,filePath:r.filePath,methodName:r.methodName,className:r.className,ext:r.ext}));if(s.length===0)return t;let i=!1;const u=t.map(l=>l.file.path===r.filePath?(i=!0,{...l,breakpoints:[...l.breakpoints,...s].sort(a)}):l);return i?u:[...t,{file:{path:r.filePath,type:r.fileType,methodName:r.methodName,className:r.className,ext:r.ext},breakpoints:s.sort(a)}]},[])),fD=q(mf,e=>e.length),dD=q(mf,e=>e.filter(({disabled:t})=>!t).length),pD=(e,t)=>q(Fr,r=>{var a;return((a=cr(r,e,t))==null?void 0:a.breakpoints.saved.locations)||[]}),hD=(e,t)=>q(Fr,r=>{var a;return((a=cr(r,e,t))==null?void 0:a.breakpoints.draft.locations)||[]}),gD=e=>q(Fr,t=>t.filter(r=>r.filePath===e).reduce((r,a)=>[...r,...a.breakpoints.saved.locations.map(s=>({...s,line:s.line+(a.breakpoints.saved.offset||0)}))],[]).sort((r,a)=>r.line-a.line)),vD=e=>q(Fr,t=>t.filter(r=>r.filePath===e).reduce((r,a)=>[...r,...a.breakpoints.draft.locations.map(s=>({...s,line:s.line+(a.breakpoints.draft.offset||0)}))],[]).sort((r,a)=>r.line-a.line)),yD=e=>q(_t,t=>{const r=Xe(t,e);return r!=null&&r.stopped?r.highlightedLines:null}),mD=e=>q(_t,t=>{const r=Xe(t,e);return r!=null&&r.stopped?r.activeLine:null}),_D=e=>q(_t,t=>{var r;return((r=Xe(t,e))==null?void 0:r.expressions)||[]}),bD=e=>q(_t,t=>{var r;return((r=Xe(t,e))==null?void 0:r.stopped)||!1}),SD=(e,t)=>q(Fr,r=>{var a;return(a=cr(r,e,t))==null?void 0:a.source}),ED=e=>q(_t,t=>{var r;return((r=e_(t,e))==null?void 0:r.threadId)||-1}),TD=e=>q(_t,t=>{var r,a;return(a=(r=Xe(t,e))==null?void 0:r.currentStackFrame)==null?void 0:a.source}),wD=e=>q(_t,t=>{var r;return(r=Xe(t,e))==null?void 0:r.currentStackFrame}),CD=q(_t,e=>e.map(({channelId:t,threadId:r})=>({id:t,threadId:r}))),AD=e=>q(_t,t=>{var r;return((r=Xe(t,e))==null?void 0:r.stackFrames)||[]}),xD=(e,t,r)=>q(_t,a=>{var s,i,u,l;return((l=(u=(i=(s=Xe(a,e))==null?void 0:s.variables)==null?void 0:i[t])==null?void 0:u.find(f=>f.frameId===r))==null?void 0:l.items)||[]}),RD=e=>q(_t,t=>{var r,a;return((a=(r=Xe(t,e))==null?void 0:r.variables)==null?void 0:a.callchain)||[]}),OD=e=>q(_t,t=>{var r,a;return((a=(r=Xe(t,e))==null?void 0:r.variables)==null?void 0:a.expressions)||[]}),PD=(e,t="saved")=>q(Fr,r=>{const a=r.find(s=>s.filePath===e);return(a==null?void 0:a.breakpoints[t].offset)||0}),DD=(e,t,r,a)=>q(_t,s=>{var d;const i=((d=Xe(s,e))==null?void 0:d.exceptions)||[],u=t===b.FileFolderType.CLASS,l=u&&a?`${a}.${r}`:r;return(l?i.filter(h=>h.location===l):i).map(h=>({...h,locationLine:u?h.locationLine:h.locationLine+1}))}),FD=q(_t,e=>e.map(({threadId:t,currentStackFrame:{source:r},tabPath:a})=>({name:mm(t,r),path:a,type:b.FileFolderType.DEBUGGER,content:r==null?void 0:r.content,flags:{},extra:{source:r}}))),Ir=q(e=>e.root,e=>e),bn=q(Ir,e=>e.tabs),ID=q(Ir,e=>e.activeTab),MD=q(Ir,e=>e.recent.filter(({type:t})=>t!==b.FileFolderType.DEBUGGER)),t_=q(Ir,({tabs:e,activeTab:t})=>e.find(({path:r})=>r===t)),LD=q(Ir,({tabs:e})=>e.reduce((r,a)=>(a==null?void 0:a.weight)>((r==null?void 0:r.weight)||0)?a:r,null)),ND=q(bn,e=>e.filter(({type:t,flags:r})=>t===b.FileFolderType.WEBFORM&&r.enabled===!1).map(({path:t})=>t)),$D=q(bn,e=>e.length>0),pr=e=>q(Ir,t=>t.tabs.find(({path:r})=>r===e)),kD=e=>q(pr(e),t=>t==null?void 0:t.name),r_=(e,t="")=>q(pr(e),r=>!r||!r.content||typeof r.content=="string"?r==null?void 0:r.content:ie.get(r.content,t)),qD=e=>q(pr(e),t=>t==null?void 0:t.extra),jD=(e,t=r=>r)=>q(r_(e,"components"),r=>t(r||{})),_f=q(bn,e=>e.filter(t=>t.flags.touched)),BD=q(_f,e=>e.length),WD=q(e=>e,e=>e.explorer||[]),n_=q(e=>e,e=>e.explorer.find(t=>t.path===b.FolderRootPath.WEBFORMS)),a_=q(e=>e,e=>e.explorer.find(t=>t.path===b.FolderRootPath.METHODS)),s_=q(e=>e,e=>e.explorer.find(t=>t.path===b.FolderRootPath.CLASSES)),UD=q(a_,e=>(e==null?void 0:e.children)||[]),HD=q(n_,e=>{var t;return((t=e==null?void 0:e.children)==null?void 0:t.filter(r=>r.ext==="WebForm"))||[]}),GD=q(s_,e=>(e==null?void 0:e.children)||[]),VD=q(e=>e.modals,e=>e.list),zD=q(e=>e.roles,e=>Wo(e)),YD=q(e=>e.roles,({roles:e})=>e),KD=q(e=>e.roles,({privileges:e})=>e),QD=q(e=>e.roles,({privileges:e})=>Object.values(e).find(({privilege:t})=>t==="guest")),JD=q(e=>e.roles,({flags:e})=>e),ZD=q(e=>e.roles,({selectedTab:e})=>e),XD=q(e=>e.roles,({forceLogin:e})=>e),eF=q(e=>e.roles,({restrictedByDefault:e})=>e),tF=q(e=>e.roles,({date:e})=>e),ts=q(e=>e.settings,e=>e.session),rF=(...e)=>q(ts,t=>e.length>0?ie.pick(t,e):t),nF=e=>q(ts,t=>t[e]),aF=e=>q(ts,t=>["states"].includes(e)?!0:!!t[`features.experimental.${e}`]),sF=q(e=>e.settings,e=>e.project),oF=q(e=>e.settings,e=>e),bf=q(e=>e.settings,e=>e.server),iF=q(bf,e=>e.remoteDebuggerMode),uF=q(bf,e=>e.qodly),cF=q(ts,e=>e["monaco.zoom"]),o_=["rounded-full","rounded-lg","border-gray-400","border-2","bg-red-500","bg-blue-500","bg-indigo-500","bg-transparent","bg-primary-dark","bg-green-500","bg-yellow-400","text-gray-500","text-4xl","text-white","px-4","py-2","primary","info","secondary","success","warning","danger","w-10","w-20","w-40","w-60","w-80","mb-2","mb-3","shadow","shadow-lg","shadow-xl","shadow-2xl"],i_=o_.map(e=>({id:rf(),content:"",name:e,parentId:null,scope:b.EWebFormStyleClassScope.THEME})),Sf=e=>q(pr(e),t=>{var r,a;return((a=(r=t==null?void 0:t.content)==null?void 0:r.metadata)==null?void 0:a.styles)||[]}),lF=(e,t)=>q(Sf(e),r=>t.map(a=>{switch(!0){case a===b.EWebFormStyleClassScope.LOCAL:return r.map(s=>({...s,scope:b.EWebFormStyleClassScope.LOCAL}));case a===b.EWebFormStyleClassScope.THEME:return i_;default:return[]}}).flat()),fF=e=>q(Sf(e),t=>[...t.map(r=>({...r,scope:b.EWebFormStyleClassScope.LOCAL})),...i_]),dF=q(e=>e,e=>{var t;return[...(((t=e.sharedCSS)==null?void 0:t.styles)||[]).map(r=>({...r,scope:b.EWebFormStyleClassScope.SHARED}))]}),pF=e=>q(bn,t=>{var r,a;return(a=(r=t.find(s=>s.path===e))==null?void 0:r.view)==null?void 0:a.panel}),hF=e=>q(pr(e),t=>t==null?void 0:t.flags),gF=e=>q(pr(e),t=>t==null?void 0:t.history),vF=q(t_,e=>{const t=e!=null&&e.history?e.history.active>0:!1,r=e!=null&&e.history?e.history.active<e.history.stack.length-1:!1;return{canUndo:t,canRedo:r}}),yF=e=>q(bn,t=>t.filter(r=>r.type===e)),rs=q(e=>e.webforms,e=>e),u_=q(rs,e=>(e==null?void 0:e.components)||[]),$o=q(rs,e=>e.inspector),mF=q($o,e=>e.css),_F=q($o,e=>e.datasource),c_=q(rs,e=>e.templates||{data:[]}),bF=q(c_,e=>e.data||[]),SF=e=>q(u_,t=>t.find(r=>r.id===e)),EF=e=>q($o,t=>t[e]),TF=q(rs,e=>e.datasources.theme),wF=q(e=>e.root,e=>e.clipboard),CF=q(e=>e.catalog,e=>e.sharedDatasources,e=>e.sharedCSS,(e,t,r)=>[e.state,t.state,r.state].every(a=>["loaded","error"].includes(a))),AF=e=>q(t=>t.root,t=>{var a;const r=t.tabs.find(({path:s})=>s===e);return((a=r==null?void 0:r.content)==null?void 0:a.metadata)||{}}),xF=q(e=>e.webforms,({i18n:e})=>e.current),Yn={label:"Base",id:"root"},Ef=e=>e.id===Yn.id,l_=(e,t=[])=>q(pr(e),r=>{var i,u;let s=((u=(i=r==null?void 0:r.content)==null?void 0:i.metadata)==null?void 0:u.states)||[Yn];return s.find(Ef)||(s=[Yn,...s]),s.filter(({id:l})=>!t.includes(l))}),RF=(e,t=[])=>q(l_(e,t),r=>r.map(({label:a})=>a)),OF=e=>q(pr(e),t=>{var r,a;return((a=(r=t==null?void 0:t.content)==null?void 0:r.metadata)==null?void 0:a.defaultStates)||[]}),PF=e=>q(pr(e),t=>{var a,s,i,u;const{currentState:r}=((a=t==null?void 0:t.content)==null?void 0:a.metadata)||{};return((u=(i=(s=t==null?void 0:t.content)==null?void 0:s.metadata)==null?void 0:i.states)==null?void 0:u.find(l=>l.id===r))||Yn}),DF=q(e=>e,e=>{var t;return((t=e.savedConditions)==null?void 0:t.conditions)||[]});var Tf=(e=>(e.SHOW_AFTER_TIMEOUT="show_after_timeout",e.HIDE_AFTER_TIMEOUT="hide_after_timeout",e))(Tf||{}),wf=(e=>(e.NONE="none",e.SAVE_ALL_AND_PROCEED="saved_all_and_proceed",e.PROCEED="proceed",e))(wf||{}),Cf=(e=>(e.AIRY="airy",e.COMPACT="neutral",e))(Cf||{}),Sl={},va={},eo={},sy;function f_(){if(sy)return eo;sy=1,Object.defineProperty(eo,"__esModule",{value:!0}),eo.default=r;let e;const t=new Uint8Array(16);function r(){if(!e&&(e=typeof crypto<"u"&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!e))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return e(t)}return eo}var $n={},ya={},ma={},oy;function FF(){if(oy)return ma;oy=1,Object.defineProperty(ma,"__esModule",{value:!0}),ma.default=void 0;var e=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;return ma.default=e,ma}var iy;function ko(){if(iy)return ya;iy=1,Object.defineProperty(ya,"__esModule",{value:!0}),ya.default=void 0;var e=t(FF());function t(s){return s&&s.__esModule?s:{default:s}}function r(s){return typeof s=="string"&&e.default.test(s)}var a=r;return ya.default=a,ya}var uy;function qo(){if(uy)return $n;uy=1,Object.defineProperty($n,"__esModule",{value:!0}),$n.default=void 0,$n.unsafeStringify=a;var e=t(ko());function t(u){return u&&u.__esModule?u:{default:u}}const r=[];for(let u=0;u<256;++u)r.push((u+256).toString(16).slice(1));function a(u,l=0){return r[u[l+0]]+r[u[l+1]]+r[u[l+2]]+r[u[l+3]]+"-"+r[u[l+4]]+r[u[l+5]]+"-"+r[u[l+6]]+r[u[l+7]]+"-"+r[u[l+8]]+r[u[l+9]]+"-"+r[u[l+10]]+r[u[l+11]]+r[u[l+12]]+r[u[l+13]]+r[u[l+14]]+r[u[l+15]]}function s(u,l=0){const f=a(u,l);if(!(0,e.default)(f))throw TypeError("Stringified UUID is invalid");return f}var i=s;return $n.default=i,$n}var cy;function IF(){if(cy)return va;cy=1,Object.defineProperty(va,"__esModule",{value:!0}),va.default=void 0;var e=r(f_()),t=qo();function r(d){return d&&d.__esModule?d:{default:d}}let a,s,i=0,u=0;function l(d,h,g){let _=h&&g||0;const m=h||new Array(16);d=d||{};let C=d.node||a,v=d.clockseq!==void 0?d.clockseq:s;if(C==null||v==null){const R=d.random||(d.rng||e.default)();C==null&&(C=a=[R[0]|1,R[1],R[2],R[3],R[4],R[5]]),v==null&&(v=s=(R[6]<<8|R[7])&16383)}let S=d.msecs!==void 0?d.msecs:Date.now(),E=d.nsecs!==void 0?d.nsecs:u+1;const A=S-i+(E-u)/1e4;if(A<0&&d.clockseq===void 0&&(v=v+1&16383),(A<0||S>i)&&d.nsecs===void 0&&(E=0),E>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");i=S,u=E,s=v,S+=122192928e5;const O=((S&268435455)*1e4+E)%4294967296;m[_++]=O>>>24&255,m[_++]=O>>>16&255,m[_++]=O>>>8&255,m[_++]=O&255;const F=S/4294967296*1e4&268435455;m[_++]=F>>>8&255,m[_++]=F&255,m[_++]=F>>>24&15|16,m[_++]=F>>>16&255,m[_++]=v>>>8|128,m[_++]=v&255;for(let R=0;R<6;++R)m[_+R]=C[R];return h||(0,t.unsafeStringify)(m)}var f=l;return va.default=f,va}var _a={},Hr={},ba={},ly;function d_(){if(ly)return ba;ly=1,Object.defineProperty(ba,"__esModule",{value:!0}),ba.default=void 0;var e=t(ko());function t(s){return s&&s.__esModule?s:{default:s}}function r(s){if(!(0,e.default)(s))throw TypeError("Invalid UUID");let i;const u=new Uint8Array(16);return u[0]=(i=parseInt(s.slice(0,8),16))>>>24,u[1]=i>>>16&255,u[2]=i>>>8&255,u[3]=i&255,u[4]=(i=parseInt(s.slice(9,13),16))>>>8,u[5]=i&255,u[6]=(i=parseInt(s.slice(14,18),16))>>>8,u[7]=i&255,u[8]=(i=parseInt(s.slice(19,23),16))>>>8,u[9]=i&255,u[10]=(i=parseInt(s.slice(24,36),16))/1099511627776&255,u[11]=i/4294967296&255,u[12]=i>>>24&255,u[13]=i>>>16&255,u[14]=i>>>8&255,u[15]=i&255,u}var a=r;return ba.default=a,ba}var fy;function p_(){if(fy)return Hr;fy=1,Object.defineProperty(Hr,"__esModule",{value:!0}),Hr.URL=Hr.DNS=void 0,Hr.default=u;var e=qo(),t=r(d_());function r(l){return l&&l.__esModule?l:{default:l}}function a(l){l=unescape(encodeURIComponent(l));const f=[];for(let d=0;d<l.length;++d)f.push(l.charCodeAt(d));return f}const s="6ba7b810-9dad-11d1-80b4-00c04fd430c8";Hr.DNS=s;const i="6ba7b811-9dad-11d1-80b4-00c04fd430c8";Hr.URL=i;function u(l,f,d){function h(g,_,m,C){var v;if(typeof g=="string"&&(g=a(g)),typeof _=="string"&&(_=(0,t.default)(_)),((v=_)===null||v===void 0?void 0:v.length)!==16)throw TypeError("Namespace must be array-like (16 iterable integer values, 0-255)");let S=new Uint8Array(16+g.length);if(S.set(_),S.set(g,_.length),S=d(S),S[6]=S[6]&15|f,S[8]=S[8]&63|128,m){C=C||0;for(let E=0;E<16;++E)m[C+E]=S[E];return m}return(0,e.unsafeStringify)(S)}try{h.name=l}catch{}return h.DNS=s,h.URL=i,h}return Hr}var Sa={},dy;function MF(){if(dy)return Sa;dy=1,Object.defineProperty(Sa,"__esModule",{value:!0}),Sa.default=void 0;function e(m){if(typeof m=="string"){const C=unescape(encodeURIComponent(m));m=new Uint8Array(C.length);for(let v=0;v<C.length;++v)m[v]=C.charCodeAt(v)}return t(a(s(m),m.length*8))}function t(m){const C=[],v=m.length*32,S="0123456789abcdef";for(let E=0;E<v;E+=8){const A=m[E>>5]>>>E%32&255,O=parseInt(S.charAt(A>>>4&15)+S.charAt(A&15),16);C.push(O)}return C}function r(m){return(m+64>>>9<<4)+14+1}function a(m,C){m[C>>5]|=128<<C%32,m[r(C)-1]=C;let v=1732584193,S=-271733879,E=-1732584194,A=271733878;for(let O=0;O<m.length;O+=16){const F=v,R=S,j=E,W=A;v=f(v,S,E,A,m[O],7,-680876936),A=f(A,v,S,E,m[O+1],12,-389564586),E=f(E,A,v,S,m[O+2],17,606105819),S=f(S,E,A,v,m[O+3],22,-1044525330),v=f(v,S,E,A,m[O+4],7,-176418897),A=f(A,v,S,E,m[O+5],12,1200080426),E=f(E,A,v,S,m[O+6],17,-1473231341),S=f(S,E,A,v,m[O+7],22,-45705983),v=f(v,S,E,A,m[O+8],7,1770035416),A=f(A,v,S,E,m[O+9],12,-1958414417),E=f(E,A,v,S,m[O+10],17,-42063),S=f(S,E,A,v,m[O+11],22,-1990404162),v=f(v,S,E,A,m[O+12],7,1804603682),A=f(A,v,S,E,m[O+13],12,-40341101),E=f(E,A,v,S,m[O+14],17,-1502002290),S=f(S,E,A,v,m[O+15],22,1236535329),v=d(v,S,E,A,m[O+1],5,-165796510),A=d(A,v,S,E,m[O+6],9,-1069501632),E=d(E,A,v,S,m[O+11],14,643717713),S=d(S,E,A,v,m[O],20,-373897302),v=d(v,S,E,A,m[O+5],5,-701558691),A=d(A,v,S,E,m[O+10],9,38016083),E=d(E,A,v,S,m[O+15],14,-660478335),S=d(S,E,A,v,m[O+4],20,-405537848),v=d(v,S,E,A,m[O+9],5,568446438),A=d(A,v,S,E,m[O+14],9,-1019803690),E=d(E,A,v,S,m[O+3],14,-187363961),S=d(S,E,A,v,m[O+8],20,1163531501),v=d(v,S,E,A,m[O+13],5,-1444681467),A=d(A,v,S,E,m[O+2],9,-51403784),E=d(E,A,v,S,m[O+7],14,1735328473),S=d(S,E,A,v,m[O+12],20,-1926607734),v=h(v,S,E,A,m[O+5],4,-378558),A=h(A,v,S,E,m[O+8],11,-2022574463),E=h(E,A,v,S,m[O+11],16,1839030562),S=h(S,E,A,v,m[O+14],23,-35309556),v=h(v,S,E,A,m[O+1],4,-1530992060),A=h(A,v,S,E,m[O+4],11,1272893353),E=h(E,A,v,S,m[O+7],16,-155497632),S=h(S,E,A,v,m[O+10],23,-1094730640),v=h(v,S,E,A,m[O+13],4,681279174),A=h(A,v,S,E,m[O],11,-358537222),E=h(E,A,v,S,m[O+3],16,-722521979),S=h(S,E,A,v,m[O+6],23,76029189),v=h(v,S,E,A,m[O+9],4,-640364487),A=h(A,v,S,E,m[O+12],11,-421815835),E=h(E,A,v,S,m[O+15],16,530742520),S=h(S,E,A,v,m[O+2],23,-995338651),v=g(v,S,E,A,m[O],6,-198630844),A=g(A,v,S,E,m[O+7],10,1126891415),E=g(E,A,v,S,m[O+14],15,-1416354905),S=g(S,E,A,v,m[O+5],21,-57434055),v=g(v,S,E,A,m[O+12],6,1700485571),A=g(A,v,S,E,m[O+3],10,-1894986606),E=g(E,A,v,S,m[O+10],15,-1051523),S=g(S,E,A,v,m[O+1],21,-2054922799),v=g(v,S,E,A,m[O+8],6,1873313359),A=g(A,v,S,E,m[O+15],10,-30611744),E=g(E,A,v,S,m[O+6],15,-1560198380),S=g(S,E,A,v,m[O+13],21,1309151649),v=g(v,S,E,A,m[O+4],6,-145523070),A=g(A,v,S,E,m[O+11],10,-1120210379),E=g(E,A,v,S,m[O+2],15,718787259),S=g(S,E,A,v,m[O+9],21,-343485551),v=i(v,F),S=i(S,R),E=i(E,j),A=i(A,W)}return[v,S,E,A]}function s(m){if(m.length===0)return[];const C=m.length*8,v=new Uint32Array(r(C));for(let S=0;S<C;S+=8)v[S>>5]|=(m[S/8]&255)<<S%32;return v}function i(m,C){const v=(m&65535)+(C&65535);return(m>>16)+(C>>16)+(v>>16)<<16|v&65535}function u(m,C){return m<<C|m>>>32-C}function l(m,C,v,S,E,A){return i(u(i(i(C,m),i(S,A)),E),v)}function f(m,C,v,S,E,A,O){return l(C&v|~C&S,m,C,E,A,O)}function d(m,C,v,S,E,A,O){return l(C&S|v&~S,m,C,E,A,O)}function h(m,C,v,S,E,A,O){return l(C^v^S,m,C,E,A,O)}function g(m,C,v,S,E,A,O){return l(v^(C|~S),m,C,E,A,O)}var _=e;return Sa.default=_,Sa}var py;function LF(){if(py)return _a;py=1,Object.defineProperty(_a,"__esModule",{value:!0}),_a.default=void 0;var e=r(p_()),t=r(MF());function r(i){return i&&i.__esModule?i:{default:i}}var s=(0,e.default)("v3",48,t.default);return _a.default=s,_a}var Ea={},Ta={},hy;function NF(){if(hy)return Ta;hy=1,Object.defineProperty(Ta,"__esModule",{value:!0}),Ta.default=void 0;var t={randomUUID:typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};return Ta.default=t,Ta}var gy;function $F(){if(gy)return Ea;gy=1,Object.defineProperty(Ea,"__esModule",{value:!0}),Ea.default=void 0;var e=a(NF()),t=a(f_()),r=qo();function a(u){return u&&u.__esModule?u:{default:u}}function s(u,l,f){if(e.default.randomUUID&&!l&&!u)return e.default.randomUUID();u=u||{};const d=u.random||(u.rng||t.default)();if(d[6]=d[6]&15|64,d[8]=d[8]&63|128,l){f=f||0;for(let h=0;h<16;++h)l[f+h]=d[h];return l}return(0,r.unsafeStringify)(d)}var i=s;return Ea.default=i,Ea}var wa={},Ca={},vy;function kF(){if(vy)return Ca;vy=1,Object.defineProperty(Ca,"__esModule",{value:!0}),Ca.default=void 0;function e(s,i,u,l){switch(s){case 0:return i&u^~i&l;case 1:return i^u^l;case 2:return i&u^i&l^u&l;case 3:return i^u^l}}function t(s,i){return s<<i|s>>>32-i}function r(s){const i=[1518500249,1859775393,2400959708,3395469782],u=[1732584193,4023233417,2562383102,271733878,3285377520];if(typeof s=="string"){const h=unescape(encodeURIComponent(s));s=[];for(let g=0;g<h.length;++g)s.push(h.charCodeAt(g))}else Array.isArray(s)||(s=Array.prototype.slice.call(s));s.push(128);const l=s.length/4+2,f=Math.ceil(l/16),d=new Array(f);for(let h=0;h<f;++h){const g=new Uint32Array(16);for(let _=0;_<16;++_)g[_]=s[h*64+_*4]<<24|s[h*64+_*4+1]<<16|s[h*64+_*4+2]<<8|s[h*64+_*4+3];d[h]=g}d[f-1][14]=(s.length-1)*8/Math.pow(2,32),d[f-1][14]=Math.floor(d[f-1][14]),d[f-1][15]=(s.length-1)*8&4294967295;for(let h=0;h<f;++h){const g=new Uint32Array(80);for(let E=0;E<16;++E)g[E]=d[h][E];for(let E=16;E<80;++E)g[E]=t(g[E-3]^g[E-8]^g[E-14]^g[E-16],1);let _=u[0],m=u[1],C=u[2],v=u[3],S=u[4];for(let E=0;E<80;++E){const A=Math.floor(E/20),O=t(_,5)+e(A,m,C,v)+S+i[A]+g[E]>>>0;S=v,v=C,C=t(m,30)>>>0,m=_,_=O}u[0]=u[0]+_>>>0,u[1]=u[1]+m>>>0,u[2]=u[2]+C>>>0,u[3]=u[3]+v>>>0,u[4]=u[4]+S>>>0}return[u[0]>>24&255,u[0]>>16&255,u[0]>>8&255,u[0]&255,u[1]>>24&255,u[1]>>16&255,u[1]>>8&255,u[1]&255,u[2]>>24&255,u[2]>>16&255,u[2]>>8&255,u[2]&255,u[3]>>24&255,u[3]>>16&255,u[3]>>8&255,u[3]&255,u[4]>>24&255,u[4]>>16&255,u[4]>>8&255,u[4]&255]}var a=r;return Ca.default=a,Ca}var yy;function qF(){if(yy)return wa;yy=1,Object.defineProperty(wa,"__esModule",{value:!0}),wa.default=void 0;var e=r(p_()),t=r(kF());function r(i){return i&&i.__esModule?i:{default:i}}var s=(0,e.default)("v5",80,t.default);return wa.default=s,wa}var Aa={},my;function jF(){if(my)return Aa;my=1,Object.defineProperty(Aa,"__esModule",{value:!0}),Aa.default=void 0;var e="00000000-0000-0000-0000-000000000000";return Aa.default=e,Aa}var xa={},_y;function BF(){if(_y)return xa;_y=1,Object.defineProperty(xa,"__esModule",{value:!0}),xa.default=void 0;var e=t(ko());function t(s){return s&&s.__esModule?s:{default:s}}function r(s){if(!(0,e.default)(s))throw TypeError("Invalid UUID");return parseInt(s.slice(14,15),16)}var a=r;return xa.default=a,xa}var by;function WF(){return by||(by=1,(function(e){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"NIL",{enumerable:!0,get:function(){return i.default}}),Object.defineProperty(e,"parse",{enumerable:!0,get:function(){return d.default}}),Object.defineProperty(e,"stringify",{enumerable:!0,get:function(){return f.default}}),Object.defineProperty(e,"v1",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"v3",{enumerable:!0,get:function(){return r.default}}),Object.defineProperty(e,"v4",{enumerable:!0,get:function(){return a.default}}),Object.defineProperty(e,"v5",{enumerable:!0,get:function(){return s.default}}),Object.defineProperty(e,"validate",{enumerable:!0,get:function(){return l.default}}),Object.defineProperty(e,"version",{enumerable:!0,get:function(){return u.default}});var t=h(IF()),r=h(LF()),a=h($F()),s=h(qF()),i=h(jF()),u=h(BF()),l=h(ko()),f=h(qo()),d=h(d_());function h(g){return g&&g.__esModule?g:{default:g}}})(Sl)),Sl}var El,Sy;function UF(){if(Sy)return El;Sy=1;function e(t,r){if(!t||!r||!t.length||!r.length)throw new Error("Bad alphabet");this.srcAlphabet=t,this.dstAlphabet=r}return e.prototype.convert=function(t){var r,a,s,i={},u=this.srcAlphabet.length,l=this.dstAlphabet.length,f=t.length,d=typeof t=="string"?"":[];if(!this.isValid(t))throw new Error('Number "'+t+'" contains of non-alphabetic digits ('+this.srcAlphabet+")");if(this.srcAlphabet===this.dstAlphabet)return t;for(r=0;r<f;r++)i[r]=this.srcAlphabet.indexOf(t[r]);do{for(a=0,s=0,r=0;r<f;r++)a=a*u+i[r],a>=l?(i[s++]=parseInt(a/l,10),a=a%l):s>0&&(i[s++]=0);f=s,d=this.dstAlphabet.slice(a,a+1).concat(d)}while(s!==0);return d},e.prototype.isValid=function(t){for(var r=0;r<t.length;++r)if(this.srcAlphabet.indexOf(t[r])===-1)return!1;return!0},El=e,El}var Tl,Ey;function HF(){if(Ey)return Tl;Ey=1;var e=UF();function t(r,a){var s=new e(r,a);return function(i){return s.convert(i)}}return t.BIN="01",t.OCT="01234567",t.DEC="0123456789",t.HEX="0123456789abcdef",Tl=t,Tl}var wl,Ty;function GF(){if(Ty)return wl;Ty=1;const{v4:e,validate:t}=WF(),r=HF(),a={cookieBase90:"0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!#$%&'()*+-./:<=>?@[]^_`{|}~",flickrBase58:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ",uuid25Base36:"0123456789abcdefghijklmnopqrstuvwxyz"},s={consistentLength:!0};let i;const u=(d,h,g)=>{const _=h(d.toLowerCase().replace(/-/g,""));return!g||!g.consistentLength?_:_.padStart(g.shortIdLength,g.paddingChar)},l=(d,h)=>{const _=h(d).padStart(32,"0").match(/(\w{8})(\w{4})(\w{4})(\w{4})(\w{12})/);return[_[1],_[2],_[3],_[4],_[5]].join("-")},f=d=>Math.ceil(Math.log(2**128)/Math.log(d));return wl=(()=>{const d=(h,g)=>{const _=h||a.flickrBase58,m={...s,...g};if([...new Set(Array.from(_))].length!==_.length)throw new Error("The provided Alphabet has duplicate characters resulting in unreliable results");const C=f(_.length),v={shortIdLength:C,consistentLength:m.consistentLength,paddingChar:_[0]},S=r(r.HEX,_),E=r(_,r.HEX),A=()=>u(e(),S,v),F={alphabet:_,fromUUID:R=>u(R,S,v),maxLength:C,generate:A,new:A,toUUID:R=>l(R,E),uuid:e,validate:(R,j=!1)=>{if(!R||typeof R!="string")return!1;const W=m.consistentLength?R.length===C:R.length<=C,Z=R.split("").every(te=>_.includes(te));return j===!1?W&&Z:W&&Z&&t(l(R,E))}};return Object.freeze(F),F};return d.constants=a,d.uuid=e,d.generate=()=>(i||(i=d(a.flickrBase58).generate),i()),d})(),wl}var Va=GF(),xe=(e=>(e.DATACLASS="dataclass",e.METHOD="method",e.ATTRIBUTE="attribute",e.DATASTORE="datastore",e.SINGLETON="singleton",e.SINGLETON_METHOD="singletonMethod",e))(xe||{}),je=(e=>(e.DS_METHOD="dsMethod",e.DATACLASS_METHOD="dataclassMethod",e.ENTITY_METHOD="entityMethod",e.ENTITY_SEL_METHOD="entityselMethod",e))(je||{});const VF=[xe.DATASTORE,xe.DATACLASS,xe.ATTRIBUTE,xe.SINGLETON_METHOD,xe.SINGLETON,xe.METHOD,je.DS_METHOD,je.DATACLASS_METHOD,je.ENTITY_METHOD,je.ENTITY_SEL_METHOD],wy=e=>[je.DS_METHOD,je.ENTITY_METHOD,je.DATACLASS_METHOD].includes(e)?xe.METHOD:e,So="guest",Af=[{key:"read",label:"Read",canApplyTo:[xe.DATASTORE,xe.DATACLASS,xe.ATTRIBUTE]},{key:"create",label:"Create",canApplyTo:[xe.DATASTORE,xe.DATACLASS,xe.ATTRIBUTE]},{key:"update",label:"Update",canApplyTo:[xe.DATASTORE,xe.DATACLASS,xe.ATTRIBUTE]},{key:"drop",label:"Delete",canApplyTo:[xe.DATASTORE,xe.DATACLASS,xe.ATTRIBUTE]},{key:"execute",label:"Execute",canApplyTo:[xe.DATASTORE,xe.DATACLASS,xe.METHOD,je.DS_METHOD,je.DATACLASS_METHOD,je.ENTITY_METHOD,je.ENTITY_SEL_METHOD,xe.SINGLETON,xe.SINGLETON_METHOD]},{key:"promote",label:"Promote",canApplyTo:[xe.METHOD,je.DS_METHOD,je.DATACLASS_METHOD,je.ENTITY_METHOD,je.ENTITY_SEL_METHOD,xe.SINGLETON_METHOD]}];function Jt(e,...t){return Array.from(new Set([...e,...t]))}function h_(e){const t={},r=new Map;e.forEach(f=>{const d=f.id||Va.generate();t[d]={...f,id:d,parents:[],includes:Jt(f.includes||[]),resources:[]},r.set(f.privilege,d)}),Object.entries(t).forEach(([f,d])=>{const h=d.includes.map(g=>{const _=r.get(g);return _?(t[_].parents=Jt(t[_].parents,_),_):""}).filter(Boolean);t[f]={...d,includes:h}});const a=g_(t),s=new Set;function i(f){s.add(f.id),f.includes=f.includes.filter(d=>!s.has(d))}if(a.forEach(i),a.forEach(f=>f.parents=[]),a.forEach(f=>{f.includes.forEach(d=>t[d].parents.push(f.id))}),Object.values(t).find(({privilege:f})=>f===So))return t;const l=Va.generate();return{[l]:{id:l,privilege:So,includes:[],parents:[],resources:[]},...t}}function g_(e){return Object.values(e).sort((t,r)=>t.parents.length-r.parents.length)}function jo(e,t){const r=t[e];let a=[];return r&&r.parents.forEach(s=>{a=Jt(a,...jo(s,t),s)}),a}function Eo(e,t){const r=t[e];let a=[];return r&&r.includes.forEach(s=>{a=Jt(a,...Eo(s,t),s)}),a}function zF(e,t){const r=t[e];if(!r)return[];const a=[e,...jo(e,t),...r.includes];return Object.keys(t).filter(s=>!a.includes(s))}function YF(e,t){return t[e]?Object.keys(t).reduce((a,s)=>s===e?a:{...a,[s]:{...t[s],parents:t[s].parents.filter(i=>i!==e),includes:t[s].includes.filter(i=>i!==e)}},{}):t}function KF(e,t,r){const a=r[e],s=r[t];return!a||!s?r:{...r,[e]:{...r[e],includes:Jt(a.includes,t)},[t]:{...r[t],parents:Jt(s.parents,e)}}}function QF(e,t,r){const a=r[e],s=r[t];return!a||!s?r:{...r,[e]:{...r[e],includes:r[e].includes.filter(i=>i!==t)},[t]:{...r[t],parents:r[t].parents.filter(i=>i!==e)}}}function v_(e,t){b.validateName(e),Object.entries(t).forEach(([,{privilege:a}])=>{if(e.toLowerCase()===a.toLowerCase())throw new Error(`There's already a Privilege with the name ${e}`)});const r=Va.generate();return{[r]:{id:r,privilege:e,includes:[],parents:[],resources:[]},...t}}function JF(e,t,r,a,s){let i=v_(e,s);const u=Object.entries(i).find(([,l])=>l.privilege===e);return u?(i=b_(u[1].id,t,r,a,i),i):s}function ZF(e,t,r){if(!e)throw new Error("Please enter a name");if(!r[t])throw new Error("Invalid privilege");return Object.entries(r).forEach(([,{privilege:a,id:s}])=>{if(e.toLowerCase()===a.toLowerCase()&&t!==s)throw new Error(`There's already a Privilege with the name ${e}`)}),{...r,[t]:{...r[t],privilege:e}}}function XF(e,t){return e.map(r=>hr(r,t))}function hr(e,t){return t[e]?t[e]:null}function y_({applyTo:e,type:t,...r}){return Object.entries(r).reduce((a,[s,i])=>{const u=ie.find(Af,["key",s]);return!u||!u.canApplyTo.includes(t)||(typeof i=="string"?i.split(","):i).forEach(f=>{a[f]=Jt(a[f]||[],s)}),a},{})}const Wl=(e,t=!1)=>["read","create","update","delete"].includes(e.toLowerCase())?`All ${t?"dataclasses and ":""}attributes have the '${e.toLowerCase()}' permission`:e.toLowerCase()==="execute"?`All functions defined ${t?"through the model (DataStore, Dataclasses, Entity selections, Entities) have the execute permission":"on this Dataclass, Entity selection class, Entity class have the execute permission"}`:`All ${t?"dataclasses, ":""}attributes and functions have the '${e.toLowerCase()}' permission`;function xf(e){return{permissions:Af.filter(({canApplyTo:t})=>t.includes(e.type)).map(({key:t,label:r})=>{const a={name:t,from:[]};switch(e.type){case xe.DATASTORE:return{...a,info:Wl(r,!0)};case xe.DATACLASS:return{...a,info:Wl(r)};default:return a}}),resource:e.applyTo,type:e.type}}function m_(e,t){const r=__(t),a={};return e.filter(({type:s})=>VF.includes(s)).forEach(s=>{const i=y_(s);Object.entries(i).forEach(([u,l])=>{var h;const f=(h=r[u])==null?void 0:h.id;if(!f)return;a[f]=a[f]||{...t[f]};let d=ie.find(a[f].resources,{resource:s.applyTo,type:s.type});d||(d=xf(s),a[f].resources.push(d)),d.permissions=d.permissions.map(g=>({...g,checked:g.checked||l.includes(g.name)}))})}),{...t,...a}}function __(e){return Object.values(e).reduce((t,r)=>({...t,[r.privilege]:r}),{})}function Bo(e){var r;const t=h_(e.privileges||[]);return{forceLogin:(e==null?void 0:e.forceLogin)||!1,restrictedByDefault:(e==null?void 0:e.restrictedByDefault)||!1,privileges:m_(((r=e.permissions)==null?void 0:r.allowed)||[],t),roles:(e.roles||[]).map(({id:a=Va.generate(),role:s,privileges:i=[]})=>({id:a,role:s,privileges:Jt(i).map(u=>{var l;return(l=Object.values(t).find(({privilege:f})=>f===u))==null?void 0:l.id}).filter(Boolean)})).reduce((a,s)=>({...a,[s.id]:{...s}}),{})}}function Wo(e){const t=Object.values(e.privileges).filter(({includes:a})=>a.length===0).map(({id:a})=>a),r=[...t,...t.map(a=>jo(a,e.privileges).reverse())].flat().filter((a,s,i)=>i.indexOf(a)===s).map(a=>e.privileges[a]);return{forceLogin:e.forceLogin||!1,restrictedByDefault:e.restrictedByDefault||!1,permissions:{allowed:Object.values(e.privileges).reduce((a,s)=>(s.resources.forEach(({permissions:i,resource:u,type:l})=>{let f=ie.find(a,{applyTo:u,type:wy(l)});f||(f={applyTo:u,type:wy(l)},a.push(f)),i.forEach(({name:d,checked:h})=>{h&&f&&(f[d]=f[d]||[],f[d].push(s.privilege))})}),a),[])},privileges:r.filter(({privilege:a})=>a!==So).map(({id:a,includes:s,privilege:i})=>({id:a,privilege:i,includes:s.map(u=>e.privileges[u].privilege)})),roles:Object.values(e.roles).map(a=>({...a,privileges:a.privileges.map(s=>{var i;return(i=e.privileges[s])==null?void 0:i.privilege}).filter(Boolean)}))}}function eI(e,t){const r=t[e],a={children:[],links:[],parents:[],selected:e};if(!r)return a;function s(l,f,d=[]){const h=l.reduce((g,_)=>[...g,...t[_][f]],[]);return h.length===0?d:(d.push(h),s(h,f,d))}function i(l){const f=[],d=[];for(let h=l.length-1;h>=0;h-=1){const g=l[h].filter(_=>f.includes(_)?!1:(f.push(_),!0));g.length>0&&d.unshift(Jt(g))}return d}function u(l,f){const d=[];return l.reduce((h,g)=>(g.forEach(_=>{t[_][f==="parents"?"includes":"parents"].forEach(C=>{d.includes(C)&&h.push(f==="parents"?{source:_,target:C}:{source:C,target:_})}),d.push(_)}),h),[])}return a.children=s([e],"includes"),a.children=i(a.children),a.parents=s([e],"parents"),a.parents=i(a.parents),a.links=[...u([[e],...a.parents],"parents"),...u([[e],...a.children],"includes")],a}function tI(e,t,r){const a=hr(e,r);if(!a||ie.find(a.resources,{resource:t.applyTo,type:t.type}))return r;const s={...a,resources:[...a.resources,xf(t)]};return{...r,[e]:s}}function rI(e,t,r){const a=hr(e,r);if(!a)return r;const s={...a,resources:a.resources.filter(({resource:i,type:u})=>i!==t.applyTo||u!==t.type)};return{...r,[e]:s}}function nI(e,t){const r=Object.entries(e).map(([a,s])=>{const i=hr(a,t);if(!i)return{[a]:t[a]};const u={...i,resources:i.resources.filter(({resource:l,type:f})=>!s.some(d=>d.applyTo===l&&d.type===f))};return{[a]:u}}).reduce((a,s)=>({...a,...s}),{});return{...t,...r}}function aI(e,t){const r=hr(e,t);if(!r)return t;const a={...r,resources:r.resources.filter(s=>s.permissions.some(i=>i.from.length)).map(s=>({...s,permissions:s.permissions.map(i=>({...i,checked:!1}))}))};return{...t,[e]:a}}function b_(e,t,r,a,s){const i=hr(e,s);if(!i)return s;const l=ie.find(i.resources,{type:r,resource:t})?{...i,resources:i.resources.map(f=>f.type===r&&f.resource===t?{...f,permissions:f.permissions.map(d=>d.name===a?{...d,checked:!d.checked,from:[]}:d)}:f)}:{...i,resources:[...i.resources,{type:r,resource:t,permissions:Af.filter(f=>f.canApplyTo.includes(r)).map(f=>({from:[],name:f.key,checked:f.key===a,info:Wl(f.key,r===xe.DATASTORE)}))}]};return{...s,[e]:l}}function sI(e,t,r,a){const s=hr(e,a);if(!s)return a;const u=ie.find(s.resources,{type:t.type,resource:t.resource})?{...s,resources:s.resources.map(l=>l.type===t.type&&l.resource===t.resource?{...l,permissions:t.permissions.map(f=>f.name===r.name?{...f,checked:!f.checked,from:[]}:f)}:l)}:{...s,resources:[...s.resources,{...t,permissions:t.permissions.map(l=>({...l,checked:r.name===l.name,from:[]}))}]};return{...a,[e]:u}}function oI(e,t){var f;const r=S_(e,t)||[],a=((f=hr(e,t))==null?void 0:f.resources)||[],u=([...r,...a].filter(({type:d})=>[je.DS_METHOD,je.DATACLASS_METHOD,je.ENTITY_METHOD,je.ENTITY_SEL_METHOD].includes(d))||[]).map(({resource:d})=>d);return Object.entries(t).reduce((d,[h,{resources:g}])=>(g.filter(({resource:_,type:m})=>[je.DS_METHOD,je.DATACLASS_METHOD,je.ENTITY_METHOD,je.ENTITY_SEL_METHOD].includes(m)&&u.includes(_)).forEach(({permissions:_,resource:m})=>{var v;((v=_.find(({name:S})=>S==="promote"))==null?void 0:v.checked)&&(d[m]=Jt(d[m]||[],h))}),d),{})}function S_(e,t){var u;const r=hr(e,t);if(!r)return[];const a=(u=Object.values(t).find(l=>l.privilege===So))==null?void 0:u.id;return(a&&a!==e?Jt(Eo(e,t),a):Eo(e,t)).reduce((l,f)=>(t[f].resources.forEach(h=>{if(h.permissions.filter(({checked:m,name:C})=>m&&C!=="promote").length===0)return;const _=ie.find(l,{type:h.type,resource:h.resource});if(!_){l.push({...h,permissions:h.permissions.map(m=>({...m,from:m.checked?[f]:[],checked:!1}))});return}_.permissions=_.permissions.map((m,C)=>{let{from:v=[]}=m;return h.permissions[C].checked&&!v.includes(f)&&(v=[...v,f]),{...m,from:v,checked:m.checked}})}),l),ie.clone(r.resources.map(l=>({...l,permissions:l.permissions.map(({checked:f,...d})=>({...d,checked:!!f}))}))))}const iI=e=>e.reduce((t,r)=>({...t,[r.id]:{...r}}),{}),uI=(e,t)=>t[e]?Object.values(t).reduce((r,a)=>e===a.id||a.role===""?r:{...r,[a.id]:a},{}):t,cI=(e,t,r)=>r[e]?Object.values(r).reduce((a,s)=>e===s.id?{...a,[s.id]:{...s,name:t}}:{...a,[s.id]:s},{}):r,lI=(e,t,r)=>{const a={id:e,role:t,privileges:[]};return{...r,[a.id]:a}},fI=(e,t)=>{if(b.validateName(e.role),Object.values(t).find(a=>a.role===e.role))throw new Error(`a role with the name ${e.role} already exists`);return Object.values(t).reduce((a,s)=>e.id===s.id?{...a,[e.id]:e}:{...a,[s.id]:s},{})},dI={list:[]},Cy=(e,t)=>e.list.filter(r=>r.id!==t),E_=Ft({name:"modals",initialState:dI,reducers:{createModal:(e,t)=>{e.list.push(t.payload)},editModal:(e,t)=>{const{id:r,...a}=t.payload,s=e.list.find(b.byId(r));s&&Object.assign(s,{...a})},removeModal:(e,t)=>{const r=t.payload;e.list=Cy(e,r)},closeModal:(e,t)=>{const{id:r,reason:a}=t.payload;if(a){const s=e.list.find(i=>i.id===r);s&&(s.closeReason=a,s.isOpen=!1)}else e.list=Cy(e,r)}}}),{createModal:T_,removeModal:w_,closeModal:pI,editModal:hI}=E_.actions,Zt=Y("modals/open",async(e,{dispatch:t})=>{const r=jb(),{type:a=b.ModalType.ALERT}=e,s=rf();switch(t(T_({id:s,type:a,isOpen:!0,...e})),a){case b.ModalType.CONFIRM:return new Promise(i=>{const u=r.subscribe(()=>{var d;const{modals:l}=r.getState(),f=l.list.find(h=>h.id===s);if(f&&!f.isOpen){const h=f.closeReason===b.ModalCloseReason.CONFIRMED,g=ie.entries((d=f.views)==null?void 0:d.toggles).reduce((_,m)=>({..._,[m[0]]:m[1].value}),{});t(w_(s)),u(),i({confirmed:h,options:g})}})});default:return{}}}),C_=()=>b.getFileContent({name:b.ROLES_TAB_PATH}),A_="Roles & Privileges",To=Y("roles/fetchRoles",async(e,{dispatch:t,rejectWithValue:r})=>{var i;let a;try{a=await C_()}catch(u){if(!Array.isArray((i=u==null?void 0:u.data)==null?void 0:i.__ERROR))return r("Error while loading the roles");a={name:b.ROLES_TAB_PATH,date:new Date().toISOString(),content:{permissions:{allowed:[]},privileges:[],roles:[]}}}const s={name:A_,type:b.FileFolderType.ROLES,date:a.date,view:{panel:{isOpen:!1,type:"",current:""}},path:b.ROLES_TAB_PATH,flags:{},extra:{editor:{key:"editors:roles"}},content:{}};return t(wt(s)),{...a,content:Bo(a.content)}}),x_=Y("roles/fetchRolesChanges",async(e,{getState:t})=>{const{tabs:r}=t().root;if(r.find(s=>s.path===b.ROLES_TAB_PATH)){const{date:s}=t().roles;if(s&&await Rf(s))return{old:!0}}return{}}),Rf=async e=>{if(!e)return!1;try{const t=await C_();if(t.date){const r=new Date(e),a=new Date(t.date);if(r>a)return!0}}catch(t){if(!Array.isArray(t==null?void 0:t.data.__ERROR))throw t}return!1},Ul=Y("roles/saveRoles",async(e,{getState:t,rejectWithValue:r,dispatch:a})=>{try{const{flags:s,date:i}=t().roles;if(s.old||await Rf(i)){const{confirmed:f}=await a(Zt({title:A_,message:"New content has been found on the server. Are you sure you want to continue?",type:b.ModalType.CONFIRM,icon:"FdSave"})).unwrap();if(!f)return r({old:!0})}return await b.setFileContent({name:b.ROLES_TAB_PATH,content:Wo(e)})}catch{return r("Error while loading the roles")}}),R_=Ft({name:"roles",initialState:()=>{const{roles:e}=_n(),{roles:t={},privileges:r={},flags:a={touched:!1},date:s,selectedTab:i="roles"}=e||{};return{flags:a,roles:t,privileges:r,date:s,selectedTab:i}},reducers:{updatePrivileges:(e,t)=>{e.privileges=t.payload,e.flags.touched=!0},updateRoles:(e,t)=>{e.roles=t.payload,e.flags.touched=!0},updateRolesAndPrivileges:(e,t)=>{e.roles=t.payload.roles,e.privileges=t.payload.privileges},toggleTab:(e,t)=>{e.selectedTab=t.payload},toggleForceLogin:(e,t)=>{e.forceLogin!==t.payload&&(e.forceLogin=t.payload,e.flags.touched=!0)},toggleRestrictedByDefault:(e,t)=>{e.restrictedByDefault!==t.payload&&(e.restrictedByDefault=t.payload,e.flags.touched=!0)},setRolesContent(e,t){const{content:r,flags:a={},...s}=t.payload,i=Bo(r),u={...e.flags,...a};return{...e,...i,...s,flags:u}}},extraReducers(e){e.addCase(To.fulfilled,(t,r)=>{const{content:a,date:s}=r.payload;t={...t,...a,date:s}}).addCase(To.rejected,t=>({...t,roles:{},privileges:{},flags:{touched:!1},date:void 0})).addCase(Ul.fulfilled,(t,r)=>({...t,flags:{...t.flags,confirmed:!0,touched:!1,old:!1},date:r.payload.date})).addCase(Ul.rejected,(t,r)=>zx.isString(r.payload)?t:{...t,flags:{...t.flags,...r.payload}}).addCase(x_.fulfilled,(t,r)=>({...t,flags:{...t.flags,...r.payload}})).addCase(Wn.fulfilled,(t,r)=>{!r.payload||r.payload.path!==b.ROLES_TAB_PATH||(t.flags.touched=!1,t.flags.old=!1)}).addCase(Lf.fulfilled,(t,r)=>{r.meta.arg!==b.ROLES_TAB_PATH||!r.payload||(t.flags.touched=!1,t.flags.old=!1)})}}),{updatePrivileges:O_,updateRoles:P_,setRolesContent:Of,toggleTab:gI,toggleForceLogin:vI,toggleRestrictedByDefault:yI,updateRolesAndPrivileges:Pf}=R_.actions,mI=R_.reducer,Df=Y("settings/fetch",async()=>await b.getNodeInfo({verb:b.DesignerRequestVerb.GET_INFO,path:b.SETTINGS_TAB_PATH,content:!0,as:"json"})),D_=Y("settings/app",b.getAppSettings),_I=lf(),Ay={session:{"studio.tips":!0,"studio.notifications":!0,"studio.enablePreview":!1,"studio.tipsBaseUrl":"https://raw.githubusercontent.com/4d/Web-studio-TIPS/gh-build","webforms.tooltip.behavior":Tf.SHOW_AFTER_TIMEOUT,"webforms.tooltip.timeout":3e3,"webforms.renderer.showPopOver":!0,"webforms.renderer.showUnsavedPopOver":!0,"webforms.renderer.unsavedPopOverChoice":wf.NONE,"welcometour.active":!0,"webforms.properties.advanced-mode":!1,"monaco.zoom":0,"model.viewport":{zoom:1,y:0,x:0}},project:{"webforms.renderer.indexPage":"","webforms.display-mode":"neutral"},server:{projectOpened:!1,remoteDebuggerMode:b.RemoteDebuggerMode.DISABLED,baseUrl:"",qodly:!0,urls:{renderer:"/$lib/renderer/",debugger:"",lsp:""},isRestActive:!0}},bI={...Ay,session:{...Ay.session,..._I},welcometour:{}},F_=Ft({name:"settings",initialState:bI,reducers:{setSetting(e,t){const{path:r,settingsKey:a,value:s}=t.payload;e[r][a]=s},setSettings(e,t){const{path:r,value:a}=t.payload;e[r]={...e[r],...a}},setSettingsAsText(e,t){const{path:r,settings:a}=t.payload;e[r]=a}},extraReducers(e){e.addCase(Df.fulfilled,(t,r)=>{t.project={...t.project,...r.payload.content}}),e.addCase(D_.fulfilled,(t,r)=>{t.server=r.payload,t.server.qodly&&(t.project["webforms.display-mode"]="airy")})}}),{setSetting:Hl,setSettings:Uo,setSettingsAsText:SI}=F_.actions,EI=F_.reducer,xy=[{name:"onServerStartup.4qs",content:`var error : object
102
+ `),C}return Bl(function(){f.current=e,d.current=g,h.current=_,l.current=void 0}),Bl(function(){function C(){try{var v=r.getState();if(v===d.current)return;var S=f.current(v);if(t(S,h.current))return;h.current=S,d.current=v}catch(E){l.current=E}i()}return u.onStateChange=C,u.trySubscribe(),C(),function(){return u.tryUnsubscribe()}},[r,u]),_}function YP(e){e===void 0&&(e=Dr);var t=e===Dr?zm:function(){return mt.useContext(e)};return function(a,s){if(s===void 0&&(s=VP),process.env.NODE_ENV!=="production"){if(!a)throw new Error("You must pass a selector to useSelector");if(typeof a!="function")throw new Error("You must pass a function as a selector to useSelector");if(typeof s!="function")throw new Error("You must pass a function as an equality function to useSelector")}var i=t(),u=i.store,l=i.subscription,f=zP(a,s,u,l);return mt.useDebugValue(f),f}}var KP=YP();IP(AA.unstable_batchedUpdates);const QP=()=>GP(),dr=KP,No=q(e=>e,e=>e.catalog.state==="loaded"?e.catalog.model:null),JP=q(e=>e,({catalog:e})=>e.state),Km=q(No,e=>e?e.dataClasses:[]),ZP=q(No,e=>e?e.singletons:[]),XP=q(Km,e=>Object.values(e).filter(({virtual:t})=>t)),eD=q(No,e=>e?e.methods:[]),Qm=e=>q(t=>t,t=>{switch(t.catalog.state){case"loaded":const r=e?t.catalog.model.dataClasses[e]:t.catalog.model;return(r==null?void 0:r.methods)||[];default:return[]}}),tD=e=>dr(Qm(e),Vm),rD=(e,t)=>q(Qm(e),r=>r.find(a=>`${a.applyTo}.${a.name}`===t)),nD=(e,t,r)=>dr(rD(e,`${r}.${t}`),Vm),Jm=q(e=>e,e=>e),aD=e=>q(Ir,t=>{var s,i;const r=t.tabs.find(({path:u})=>u===e),a=(s=r==null?void 0:r.content)==null?void 0:s.components;return!r||!a?[]:(i=Object.keys(a))==null?void 0:i.map(u=>({id:u,...a[u]}))}),Zm=e=>q(Ir,t=>{var a,s;const r=t.tabs.find(({path:i})=>i===e);return((s=(a=r==null?void 0:r.content)==null?void 0:a.metadata)==null?void 0:s.datasources)||[]}),sD=(e,t,r)=>q(Jm,a=>{var s,i;if(t){const u=a.sharedDatasources.sources[t];return u?u==null?void 0:u.find(l=>l.id===e):void 0}else{const u=a.root.tabs.find(f=>f.path===r);return u?(i=(s=u.content.metadata)==null?void 0:s.datasources)==null?void 0:i.find(f=>f.id===e):void 0}}),Xm=q(e=>e,e=>{var t;return((t=e.sharedDatasources)==null?void 0:t.sources)||{}}),oD=q(e=>e,e=>{var t;return(t=e.sharedDatasources)==null?void 0:t.state}),iD=(e,t,r,a)=>q(Zm(e),Xm,(s,i)=>{const u=ie.flatten(ie.values(i)),l=[...t!=="private"?s:[],...t!=="shared"?u:[]];return r?l.filter(f=>(!a||a.every(({id:d,namespace:h=""})=>f.id!==d||(f.namespace||"")!==h))&&(r.includes(f.type)||f.dataType&&(r.includes(f.dataType)||r.includes("objectFromArray")&&f.dataType==="object"&&f.from))):l}),uD=q(e=>e.debugger,e=>e.meta),Fr=q(e=>e.debugger,e=>e.list),_t=q(e=>e.debugger,e=>e.sessions),cD=q(_t,e=>e.length),cr=(e,t,r,a)=>e.find(s=>s.filePath===t&&s.methodName===r&&(!a||s.className===a)),Xe=(e,t)=>e.find(r=>r.threadId===t),e_=(e,t)=>e.find(r=>r.tabPath===t),mf=q(Fr,e=>e.reduce((t,r)=>{const a=r.breakpoints.saved.locations.map(s=>({...s,offset:r.breakpoints.saved.offset,fileType:r.fileType,filePath:r.filePath,methodName:r.methodName,className:r.className,ext:r.ext}));return[...t,...a]},[])),lD=q(Fr,e=>e.reduce((t,r)=>{const a=(l,f)=>l.line+(l.offset||0)-(f.line+(f.offset||0)),s=r.breakpoints.saved.locations.map(l=>({...l,offset:r.breakpoints.saved.offset,fileType:r.fileType,filePath:r.filePath,methodName:r.methodName,className:r.className,ext:r.ext}));if(s.length===0)return t;let i=!1;const u=t.map(l=>l.file.path===r.filePath?(i=!0,{...l,breakpoints:[...l.breakpoints,...s].sort(a)}):l);return i?u:[...t,{file:{path:r.filePath,type:r.fileType,methodName:r.methodName,className:r.className,ext:r.ext},breakpoints:s.sort(a)}]},[])),fD=q(mf,e=>e.length),dD=q(mf,e=>e.filter(({disabled:t})=>!t).length),pD=(e,t)=>q(Fr,r=>{var a;return((a=cr(r,e,t))==null?void 0:a.breakpoints.saved.locations)||[]}),hD=(e,t)=>q(Fr,r=>{var a;return((a=cr(r,e,t))==null?void 0:a.breakpoints.draft.locations)||[]}),gD=e=>q(Fr,t=>t.filter(r=>r.filePath===e).reduce((r,a)=>[...r,...a.breakpoints.saved.locations.map(s=>({...s,line:s.line+(a.breakpoints.saved.offset||0)}))],[]).sort((r,a)=>r.line-a.line)),vD=e=>q(Fr,t=>t.filter(r=>r.filePath===e).reduce((r,a)=>[...r,...a.breakpoints.draft.locations.map(s=>({...s,line:s.line+(a.breakpoints.draft.offset||0)}))],[]).sort((r,a)=>r.line-a.line)),yD=e=>q(_t,t=>{const r=Xe(t,e);return r!=null&&r.stopped?r.highlightedLines:null}),mD=e=>q(_t,t=>{const r=Xe(t,e);return r!=null&&r.stopped?r.activeLine:null}),_D=e=>q(_t,t=>{var r;return((r=Xe(t,e))==null?void 0:r.expressions)||[]}),bD=e=>q(_t,t=>{var r;return((r=Xe(t,e))==null?void 0:r.stopped)||!1}),SD=(e,t)=>q(Fr,r=>{var a;return(a=cr(r,e,t))==null?void 0:a.source}),ED=e=>q(_t,t=>{var r;return((r=e_(t,e))==null?void 0:r.threadId)||-1}),TD=e=>q(_t,t=>{var r,a;return(a=(r=Xe(t,e))==null?void 0:r.currentStackFrame)==null?void 0:a.source}),wD=e=>q(_t,t=>{var r;return(r=Xe(t,e))==null?void 0:r.currentStackFrame}),CD=q(_t,e=>e.map(({channelId:t,threadId:r})=>({id:t,threadId:r}))),AD=e=>q(_t,t=>{var r;return((r=Xe(t,e))==null?void 0:r.stackFrames)||[]}),xD=(e,t,r)=>q(_t,a=>{var s,i,u,l;return((l=(u=(i=(s=Xe(a,e))==null?void 0:s.variables)==null?void 0:i[t])==null?void 0:u.find(f=>f.frameId===r))==null?void 0:l.items)||[]}),RD=e=>q(_t,t=>{var r,a;return((a=(r=Xe(t,e))==null?void 0:r.variables)==null?void 0:a.callchain)||[]}),OD=e=>q(_t,t=>{var r,a;return((a=(r=Xe(t,e))==null?void 0:r.variables)==null?void 0:a.expressions)||[]}),PD=(e,t="saved")=>q(Fr,r=>{const a=r.find(s=>s.filePath===e);return(a==null?void 0:a.breakpoints[t].offset)||0}),DD=(e,t,r,a)=>q(_t,s=>{var d;const i=((d=Xe(s,e))==null?void 0:d.exceptions)||[],u=t===b.FileFolderType.CLASS,l=u&&a?`${a}.${r}`:r;return(l?i.filter(h=>h.location===l):i).map(h=>({...h,locationLine:u?h.locationLine:h.locationLine+1}))}),FD=q(_t,e=>e.map(({threadId:t,currentStackFrame:{source:r},tabPath:a})=>({name:mm(t,r),path:a,type:b.FileFolderType.DEBUGGER,content:r==null?void 0:r.content,flags:{},extra:{source:r}}))),Ir=q(e=>e.root,e=>e),bn=q(Ir,e=>e.tabs),ID=q(Ir,e=>e.activeTab),MD=q(Ir,e=>e.recent.filter(({type:t})=>t!==b.FileFolderType.DEBUGGER)),t_=q(Ir,({tabs:e,activeTab:t})=>e.find(({path:r})=>r===t)),LD=q(Ir,({tabs:e})=>e.reduce((r,a)=>(a==null?void 0:a.weight)>((r==null?void 0:r.weight)||0)?a:r,null)),ND=q(bn,e=>e.filter(({type:t,flags:r})=>t===b.FileFolderType.WEBFORM&&r.enabled===!1).map(({path:t})=>t)),$D=q(bn,e=>e.length>0),pr=e=>q(Ir,t=>t.tabs.find(({path:r})=>r===e)),kD=e=>q(pr(e),t=>t==null?void 0:t.name),r_=(e,t="")=>q(pr(e),r=>!r||!r.content||typeof r.content=="string"?r==null?void 0:r.content:t?ie.get(r.content,t):r.content),qD=e=>q(pr(e),t=>t==null?void 0:t.extra),jD=(e,t=r=>r)=>q(r_(e,"components"),r=>t(r||{})),_f=q(bn,e=>e.filter(t=>t.flags.touched)),BD=q(_f,e=>e.length),WD=q(e=>e,e=>e.explorer||[]),n_=q(e=>e,e=>e.explorer.find(t=>t.path===b.FolderRootPath.WEBFORMS)),a_=q(e=>e,e=>e.explorer.find(t=>t.path===b.FolderRootPath.METHODS)),s_=q(e=>e,e=>e.explorer.find(t=>t.path===b.FolderRootPath.CLASSES)),UD=q(a_,e=>(e==null?void 0:e.children)||[]),HD=q(n_,e=>{var t;return((t=e==null?void 0:e.children)==null?void 0:t.filter(r=>r.ext==="WebForm"))||[]}),GD=q(s_,e=>(e==null?void 0:e.children)||[]),VD=q(e=>e.modals,e=>e.list),zD=q(e=>e.roles,e=>Wo(e)),YD=q(e=>e.roles,({roles:e})=>e),KD=q(e=>e.roles,({privileges:e})=>e),QD=q(e=>e.roles,({privileges:e})=>Object.values(e).find(({privilege:t})=>t==="guest")),JD=q(e=>e.roles,({flags:e})=>e),ZD=q(e=>e.roles,({selectedTab:e})=>e),XD=q(e=>e.roles,({forceLogin:e})=>e),eF=q(e=>e.roles,({restrictedByDefault:e})=>e),tF=q(e=>e.roles,({date:e})=>e),ts=q(e=>e.settings,e=>e.session),rF=(...e)=>q(ts,t=>e.length>0?ie.pick(t,e):t),nF=e=>q(ts,t=>t[e]),aF=e=>q(ts,t=>["states"].includes(e)?!0:!!t[`features.experimental.${e}`]),sF=q(e=>e.settings,e=>e.project),oF=q(e=>e.settings,e=>e),bf=q(e=>e.settings,e=>e.server),iF=q(bf,e=>e.remoteDebuggerMode),uF=q(bf,e=>e.qodly),cF=q(ts,e=>e["monaco.zoom"]),o_=["rounded-full","rounded-lg","border-gray-400","border-2","bg-red-500","bg-blue-500","bg-indigo-500","bg-transparent","bg-primary-dark","bg-green-500","bg-yellow-400","text-gray-500","text-4xl","text-white","px-4","py-2","primary","info","secondary","success","warning","danger","w-10","w-20","w-40","w-60","w-80","mb-2","mb-3","shadow","shadow-lg","shadow-xl","shadow-2xl"],i_=o_.map(e=>({id:rf(),content:"",name:e,parentId:null,scope:b.EWebFormStyleClassScope.THEME})),Sf=e=>q(pr(e),t=>{var r,a;return((a=(r=t==null?void 0:t.content)==null?void 0:r.metadata)==null?void 0:a.styles)||[]}),lF=(e,t)=>q(Sf(e),r=>t.map(a=>{switch(!0){case a===b.EWebFormStyleClassScope.LOCAL:return r.map(s=>({...s,scope:b.EWebFormStyleClassScope.LOCAL}));case a===b.EWebFormStyleClassScope.THEME:return i_;default:return[]}}).flat()),fF=e=>q(Sf(e),t=>[...t.map(r=>({...r,scope:b.EWebFormStyleClassScope.LOCAL})),...i_]),dF=q(e=>e,e=>{var t;return[...(((t=e.sharedCSS)==null?void 0:t.styles)||[]).map(r=>({...r,scope:b.EWebFormStyleClassScope.SHARED}))]}),pF=e=>q(bn,t=>{var r,a;return(a=(r=t.find(s=>s.path===e))==null?void 0:r.view)==null?void 0:a.panel}),hF=e=>q(pr(e),t=>t==null?void 0:t.flags),gF=e=>q(pr(e),t=>t==null?void 0:t.history),vF=q(t_,e=>{const t=e!=null&&e.history?e.history.active>0:!1,r=e!=null&&e.history?e.history.active<e.history.stack.length-1:!1;return{canUndo:t,canRedo:r}}),yF=e=>q(bn,t=>t.filter(r=>r.type===e)),rs=q(e=>e.webforms,e=>e),u_=q(rs,e=>(e==null?void 0:e.components)||[]),$o=q(rs,e=>e.inspector),mF=q($o,e=>e.css),_F=q($o,e=>e.datasource),c_=q(rs,e=>e.templates||{data:[]}),bF=q(c_,e=>e.data||[]),SF=e=>q(u_,t=>t.find(r=>r.id===e)),EF=e=>q($o,t=>t[e]),TF=q(rs,e=>e.datasources.theme),wF=q(e=>e.root,e=>e.clipboard),CF=q(e=>e.catalog,e=>e.sharedDatasources,e=>e.sharedCSS,(e,t,r)=>[e.state,t.state,r.state].every(a=>["loaded","error"].includes(a))),AF=e=>q(t=>t.root,t=>{var a;const r=t.tabs.find(({path:s})=>s===e);return((a=r==null?void 0:r.content)==null?void 0:a.metadata)||{}}),xF=q(e=>e.webforms,({i18n:e})=>e.current),Yn={label:"Base",id:"root"},Ef=e=>e.id===Yn.id,l_=(e,t=[])=>q(pr(e),r=>{var i,u;let s=((u=(i=r==null?void 0:r.content)==null?void 0:i.metadata)==null?void 0:u.states)||[Yn];return s.find(Ef)||(s=[Yn,...s]),s.filter(({id:l})=>!t.includes(l))}),RF=(e,t=[])=>q(l_(e,t),r=>r.map(({label:a})=>a)),OF=e=>q(pr(e),t=>{var r,a;return((a=(r=t==null?void 0:t.content)==null?void 0:r.metadata)==null?void 0:a.defaultStates)||[]}),PF=e=>q(pr(e),t=>{var a,s,i,u;const{currentState:r}=((a=t==null?void 0:t.content)==null?void 0:a.metadata)||{};return((u=(i=(s=t==null?void 0:t.content)==null?void 0:s.metadata)==null?void 0:i.states)==null?void 0:u.find(l=>l.id===r))||Yn}),DF=q(e=>e,e=>{var t;return((t=e.savedConditions)==null?void 0:t.conditions)||[]});var Tf=(e=>(e.SHOW_AFTER_TIMEOUT="show_after_timeout",e.HIDE_AFTER_TIMEOUT="hide_after_timeout",e))(Tf||{}),wf=(e=>(e.NONE="none",e.SAVE_ALL_AND_PROCEED="saved_all_and_proceed",e.PROCEED="proceed",e))(wf||{}),Cf=(e=>(e.AIRY="airy",e.COMPACT="neutral",e))(Cf||{}),Sl={},va={},eo={},sy;function f_(){if(sy)return eo;sy=1,Object.defineProperty(eo,"__esModule",{value:!0}),eo.default=r;let e;const t=new Uint8Array(16);function r(){if(!e&&(e=typeof crypto<"u"&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!e))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return e(t)}return eo}var $n={},ya={},ma={},oy;function FF(){if(oy)return ma;oy=1,Object.defineProperty(ma,"__esModule",{value:!0}),ma.default=void 0;var e=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;return ma.default=e,ma}var iy;function ko(){if(iy)return ya;iy=1,Object.defineProperty(ya,"__esModule",{value:!0}),ya.default=void 0;var e=t(FF());function t(s){return s&&s.__esModule?s:{default:s}}function r(s){return typeof s=="string"&&e.default.test(s)}var a=r;return ya.default=a,ya}var uy;function qo(){if(uy)return $n;uy=1,Object.defineProperty($n,"__esModule",{value:!0}),$n.default=void 0,$n.unsafeStringify=a;var e=t(ko());function t(u){return u&&u.__esModule?u:{default:u}}const r=[];for(let u=0;u<256;++u)r.push((u+256).toString(16).slice(1));function a(u,l=0){return r[u[l+0]]+r[u[l+1]]+r[u[l+2]]+r[u[l+3]]+"-"+r[u[l+4]]+r[u[l+5]]+"-"+r[u[l+6]]+r[u[l+7]]+"-"+r[u[l+8]]+r[u[l+9]]+"-"+r[u[l+10]]+r[u[l+11]]+r[u[l+12]]+r[u[l+13]]+r[u[l+14]]+r[u[l+15]]}function s(u,l=0){const f=a(u,l);if(!(0,e.default)(f))throw TypeError("Stringified UUID is invalid");return f}var i=s;return $n.default=i,$n}var cy;function IF(){if(cy)return va;cy=1,Object.defineProperty(va,"__esModule",{value:!0}),va.default=void 0;var e=r(f_()),t=qo();function r(d){return d&&d.__esModule?d:{default:d}}let a,s,i=0,u=0;function l(d,h,g){let _=h&&g||0;const m=h||new Array(16);d=d||{};let C=d.node||a,v=d.clockseq!==void 0?d.clockseq:s;if(C==null||v==null){const R=d.random||(d.rng||e.default)();C==null&&(C=a=[R[0]|1,R[1],R[2],R[3],R[4],R[5]]),v==null&&(v=s=(R[6]<<8|R[7])&16383)}let S=d.msecs!==void 0?d.msecs:Date.now(),E=d.nsecs!==void 0?d.nsecs:u+1;const A=S-i+(E-u)/1e4;if(A<0&&d.clockseq===void 0&&(v=v+1&16383),(A<0||S>i)&&d.nsecs===void 0&&(E=0),E>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");i=S,u=E,s=v,S+=122192928e5;const O=((S&268435455)*1e4+E)%4294967296;m[_++]=O>>>24&255,m[_++]=O>>>16&255,m[_++]=O>>>8&255,m[_++]=O&255;const F=S/4294967296*1e4&268435455;m[_++]=F>>>8&255,m[_++]=F&255,m[_++]=F>>>24&15|16,m[_++]=F>>>16&255,m[_++]=v>>>8|128,m[_++]=v&255;for(let R=0;R<6;++R)m[_+R]=C[R];return h||(0,t.unsafeStringify)(m)}var f=l;return va.default=f,va}var _a={},Hr={},ba={},ly;function d_(){if(ly)return ba;ly=1,Object.defineProperty(ba,"__esModule",{value:!0}),ba.default=void 0;var e=t(ko());function t(s){return s&&s.__esModule?s:{default:s}}function r(s){if(!(0,e.default)(s))throw TypeError("Invalid UUID");let i;const u=new Uint8Array(16);return u[0]=(i=parseInt(s.slice(0,8),16))>>>24,u[1]=i>>>16&255,u[2]=i>>>8&255,u[3]=i&255,u[4]=(i=parseInt(s.slice(9,13),16))>>>8,u[5]=i&255,u[6]=(i=parseInt(s.slice(14,18),16))>>>8,u[7]=i&255,u[8]=(i=parseInt(s.slice(19,23),16))>>>8,u[9]=i&255,u[10]=(i=parseInt(s.slice(24,36),16))/1099511627776&255,u[11]=i/4294967296&255,u[12]=i>>>24&255,u[13]=i>>>16&255,u[14]=i>>>8&255,u[15]=i&255,u}var a=r;return ba.default=a,ba}var fy;function p_(){if(fy)return Hr;fy=1,Object.defineProperty(Hr,"__esModule",{value:!0}),Hr.URL=Hr.DNS=void 0,Hr.default=u;var e=qo(),t=r(d_());function r(l){return l&&l.__esModule?l:{default:l}}function a(l){l=unescape(encodeURIComponent(l));const f=[];for(let d=0;d<l.length;++d)f.push(l.charCodeAt(d));return f}const s="6ba7b810-9dad-11d1-80b4-00c04fd430c8";Hr.DNS=s;const i="6ba7b811-9dad-11d1-80b4-00c04fd430c8";Hr.URL=i;function u(l,f,d){function h(g,_,m,C){var v;if(typeof g=="string"&&(g=a(g)),typeof _=="string"&&(_=(0,t.default)(_)),((v=_)===null||v===void 0?void 0:v.length)!==16)throw TypeError("Namespace must be array-like (16 iterable integer values, 0-255)");let S=new Uint8Array(16+g.length);if(S.set(_),S.set(g,_.length),S=d(S),S[6]=S[6]&15|f,S[8]=S[8]&63|128,m){C=C||0;for(let E=0;E<16;++E)m[C+E]=S[E];return m}return(0,e.unsafeStringify)(S)}try{h.name=l}catch{}return h.DNS=s,h.URL=i,h}return Hr}var Sa={},dy;function MF(){if(dy)return Sa;dy=1,Object.defineProperty(Sa,"__esModule",{value:!0}),Sa.default=void 0;function e(m){if(typeof m=="string"){const C=unescape(encodeURIComponent(m));m=new Uint8Array(C.length);for(let v=0;v<C.length;++v)m[v]=C.charCodeAt(v)}return t(a(s(m),m.length*8))}function t(m){const C=[],v=m.length*32,S="0123456789abcdef";for(let E=0;E<v;E+=8){const A=m[E>>5]>>>E%32&255,O=parseInt(S.charAt(A>>>4&15)+S.charAt(A&15),16);C.push(O)}return C}function r(m){return(m+64>>>9<<4)+14+1}function a(m,C){m[C>>5]|=128<<C%32,m[r(C)-1]=C;let v=1732584193,S=-271733879,E=-1732584194,A=271733878;for(let O=0;O<m.length;O+=16){const F=v,R=S,j=E,W=A;v=f(v,S,E,A,m[O],7,-680876936),A=f(A,v,S,E,m[O+1],12,-389564586),E=f(E,A,v,S,m[O+2],17,606105819),S=f(S,E,A,v,m[O+3],22,-1044525330),v=f(v,S,E,A,m[O+4],7,-176418897),A=f(A,v,S,E,m[O+5],12,1200080426),E=f(E,A,v,S,m[O+6],17,-1473231341),S=f(S,E,A,v,m[O+7],22,-45705983),v=f(v,S,E,A,m[O+8],7,1770035416),A=f(A,v,S,E,m[O+9],12,-1958414417),E=f(E,A,v,S,m[O+10],17,-42063),S=f(S,E,A,v,m[O+11],22,-1990404162),v=f(v,S,E,A,m[O+12],7,1804603682),A=f(A,v,S,E,m[O+13],12,-40341101),E=f(E,A,v,S,m[O+14],17,-1502002290),S=f(S,E,A,v,m[O+15],22,1236535329),v=d(v,S,E,A,m[O+1],5,-165796510),A=d(A,v,S,E,m[O+6],9,-1069501632),E=d(E,A,v,S,m[O+11],14,643717713),S=d(S,E,A,v,m[O],20,-373897302),v=d(v,S,E,A,m[O+5],5,-701558691),A=d(A,v,S,E,m[O+10],9,38016083),E=d(E,A,v,S,m[O+15],14,-660478335),S=d(S,E,A,v,m[O+4],20,-405537848),v=d(v,S,E,A,m[O+9],5,568446438),A=d(A,v,S,E,m[O+14],9,-1019803690),E=d(E,A,v,S,m[O+3],14,-187363961),S=d(S,E,A,v,m[O+8],20,1163531501),v=d(v,S,E,A,m[O+13],5,-1444681467),A=d(A,v,S,E,m[O+2],9,-51403784),E=d(E,A,v,S,m[O+7],14,1735328473),S=d(S,E,A,v,m[O+12],20,-1926607734),v=h(v,S,E,A,m[O+5],4,-378558),A=h(A,v,S,E,m[O+8],11,-2022574463),E=h(E,A,v,S,m[O+11],16,1839030562),S=h(S,E,A,v,m[O+14],23,-35309556),v=h(v,S,E,A,m[O+1],4,-1530992060),A=h(A,v,S,E,m[O+4],11,1272893353),E=h(E,A,v,S,m[O+7],16,-155497632),S=h(S,E,A,v,m[O+10],23,-1094730640),v=h(v,S,E,A,m[O+13],4,681279174),A=h(A,v,S,E,m[O],11,-358537222),E=h(E,A,v,S,m[O+3],16,-722521979),S=h(S,E,A,v,m[O+6],23,76029189),v=h(v,S,E,A,m[O+9],4,-640364487),A=h(A,v,S,E,m[O+12],11,-421815835),E=h(E,A,v,S,m[O+15],16,530742520),S=h(S,E,A,v,m[O+2],23,-995338651),v=g(v,S,E,A,m[O],6,-198630844),A=g(A,v,S,E,m[O+7],10,1126891415),E=g(E,A,v,S,m[O+14],15,-1416354905),S=g(S,E,A,v,m[O+5],21,-57434055),v=g(v,S,E,A,m[O+12],6,1700485571),A=g(A,v,S,E,m[O+3],10,-1894986606),E=g(E,A,v,S,m[O+10],15,-1051523),S=g(S,E,A,v,m[O+1],21,-2054922799),v=g(v,S,E,A,m[O+8],6,1873313359),A=g(A,v,S,E,m[O+15],10,-30611744),E=g(E,A,v,S,m[O+6],15,-1560198380),S=g(S,E,A,v,m[O+13],21,1309151649),v=g(v,S,E,A,m[O+4],6,-145523070),A=g(A,v,S,E,m[O+11],10,-1120210379),E=g(E,A,v,S,m[O+2],15,718787259),S=g(S,E,A,v,m[O+9],21,-343485551),v=i(v,F),S=i(S,R),E=i(E,j),A=i(A,W)}return[v,S,E,A]}function s(m){if(m.length===0)return[];const C=m.length*8,v=new Uint32Array(r(C));for(let S=0;S<C;S+=8)v[S>>5]|=(m[S/8]&255)<<S%32;return v}function i(m,C){const v=(m&65535)+(C&65535);return(m>>16)+(C>>16)+(v>>16)<<16|v&65535}function u(m,C){return m<<C|m>>>32-C}function l(m,C,v,S,E,A){return i(u(i(i(C,m),i(S,A)),E),v)}function f(m,C,v,S,E,A,O){return l(C&v|~C&S,m,C,E,A,O)}function d(m,C,v,S,E,A,O){return l(C&S|v&~S,m,C,E,A,O)}function h(m,C,v,S,E,A,O){return l(C^v^S,m,C,E,A,O)}function g(m,C,v,S,E,A,O){return l(v^(C|~S),m,C,E,A,O)}var _=e;return Sa.default=_,Sa}var py;function LF(){if(py)return _a;py=1,Object.defineProperty(_a,"__esModule",{value:!0}),_a.default=void 0;var e=r(p_()),t=r(MF());function r(i){return i&&i.__esModule?i:{default:i}}var s=(0,e.default)("v3",48,t.default);return _a.default=s,_a}var Ea={},Ta={},hy;function NF(){if(hy)return Ta;hy=1,Object.defineProperty(Ta,"__esModule",{value:!0}),Ta.default=void 0;var t={randomUUID:typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};return Ta.default=t,Ta}var gy;function $F(){if(gy)return Ea;gy=1,Object.defineProperty(Ea,"__esModule",{value:!0}),Ea.default=void 0;var e=a(NF()),t=a(f_()),r=qo();function a(u){return u&&u.__esModule?u:{default:u}}function s(u,l,f){if(e.default.randomUUID&&!l&&!u)return e.default.randomUUID();u=u||{};const d=u.random||(u.rng||t.default)();if(d[6]=d[6]&15|64,d[8]=d[8]&63|128,l){f=f||0;for(let h=0;h<16;++h)l[f+h]=d[h];return l}return(0,r.unsafeStringify)(d)}var i=s;return Ea.default=i,Ea}var wa={},Ca={},vy;function kF(){if(vy)return Ca;vy=1,Object.defineProperty(Ca,"__esModule",{value:!0}),Ca.default=void 0;function e(s,i,u,l){switch(s){case 0:return i&u^~i&l;case 1:return i^u^l;case 2:return i&u^i&l^u&l;case 3:return i^u^l}}function t(s,i){return s<<i|s>>>32-i}function r(s){const i=[1518500249,1859775393,2400959708,3395469782],u=[1732584193,4023233417,2562383102,271733878,3285377520];if(typeof s=="string"){const h=unescape(encodeURIComponent(s));s=[];for(let g=0;g<h.length;++g)s.push(h.charCodeAt(g))}else Array.isArray(s)||(s=Array.prototype.slice.call(s));s.push(128);const l=s.length/4+2,f=Math.ceil(l/16),d=new Array(f);for(let h=0;h<f;++h){const g=new Uint32Array(16);for(let _=0;_<16;++_)g[_]=s[h*64+_*4]<<24|s[h*64+_*4+1]<<16|s[h*64+_*4+2]<<8|s[h*64+_*4+3];d[h]=g}d[f-1][14]=(s.length-1)*8/Math.pow(2,32),d[f-1][14]=Math.floor(d[f-1][14]),d[f-1][15]=(s.length-1)*8&4294967295;for(let h=0;h<f;++h){const g=new Uint32Array(80);for(let E=0;E<16;++E)g[E]=d[h][E];for(let E=16;E<80;++E)g[E]=t(g[E-3]^g[E-8]^g[E-14]^g[E-16],1);let _=u[0],m=u[1],C=u[2],v=u[3],S=u[4];for(let E=0;E<80;++E){const A=Math.floor(E/20),O=t(_,5)+e(A,m,C,v)+S+i[A]+g[E]>>>0;S=v,v=C,C=t(m,30)>>>0,m=_,_=O}u[0]=u[0]+_>>>0,u[1]=u[1]+m>>>0,u[2]=u[2]+C>>>0,u[3]=u[3]+v>>>0,u[4]=u[4]+S>>>0}return[u[0]>>24&255,u[0]>>16&255,u[0]>>8&255,u[0]&255,u[1]>>24&255,u[1]>>16&255,u[1]>>8&255,u[1]&255,u[2]>>24&255,u[2]>>16&255,u[2]>>8&255,u[2]&255,u[3]>>24&255,u[3]>>16&255,u[3]>>8&255,u[3]&255,u[4]>>24&255,u[4]>>16&255,u[4]>>8&255,u[4]&255]}var a=r;return Ca.default=a,Ca}var yy;function qF(){if(yy)return wa;yy=1,Object.defineProperty(wa,"__esModule",{value:!0}),wa.default=void 0;var e=r(p_()),t=r(kF());function r(i){return i&&i.__esModule?i:{default:i}}var s=(0,e.default)("v5",80,t.default);return wa.default=s,wa}var Aa={},my;function jF(){if(my)return Aa;my=1,Object.defineProperty(Aa,"__esModule",{value:!0}),Aa.default=void 0;var e="00000000-0000-0000-0000-000000000000";return Aa.default=e,Aa}var xa={},_y;function BF(){if(_y)return xa;_y=1,Object.defineProperty(xa,"__esModule",{value:!0}),xa.default=void 0;var e=t(ko());function t(s){return s&&s.__esModule?s:{default:s}}function r(s){if(!(0,e.default)(s))throw TypeError("Invalid UUID");return parseInt(s.slice(14,15),16)}var a=r;return xa.default=a,xa}var by;function WF(){return by||(by=1,(function(e){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"NIL",{enumerable:!0,get:function(){return i.default}}),Object.defineProperty(e,"parse",{enumerable:!0,get:function(){return d.default}}),Object.defineProperty(e,"stringify",{enumerable:!0,get:function(){return f.default}}),Object.defineProperty(e,"v1",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"v3",{enumerable:!0,get:function(){return r.default}}),Object.defineProperty(e,"v4",{enumerable:!0,get:function(){return a.default}}),Object.defineProperty(e,"v5",{enumerable:!0,get:function(){return s.default}}),Object.defineProperty(e,"validate",{enumerable:!0,get:function(){return l.default}}),Object.defineProperty(e,"version",{enumerable:!0,get:function(){return u.default}});var t=h(IF()),r=h(LF()),a=h($F()),s=h(qF()),i=h(jF()),u=h(BF()),l=h(ko()),f=h(qo()),d=h(d_());function h(g){return g&&g.__esModule?g:{default:g}}})(Sl)),Sl}var El,Sy;function UF(){if(Sy)return El;Sy=1;function e(t,r){if(!t||!r||!t.length||!r.length)throw new Error("Bad alphabet");this.srcAlphabet=t,this.dstAlphabet=r}return e.prototype.convert=function(t){var r,a,s,i={},u=this.srcAlphabet.length,l=this.dstAlphabet.length,f=t.length,d=typeof t=="string"?"":[];if(!this.isValid(t))throw new Error('Number "'+t+'" contains of non-alphabetic digits ('+this.srcAlphabet+")");if(this.srcAlphabet===this.dstAlphabet)return t;for(r=0;r<f;r++)i[r]=this.srcAlphabet.indexOf(t[r]);do{for(a=0,s=0,r=0;r<f;r++)a=a*u+i[r],a>=l?(i[s++]=parseInt(a/l,10),a=a%l):s>0&&(i[s++]=0);f=s,d=this.dstAlphabet.slice(a,a+1).concat(d)}while(s!==0);return d},e.prototype.isValid=function(t){for(var r=0;r<t.length;++r)if(this.srcAlphabet.indexOf(t[r])===-1)return!1;return!0},El=e,El}var Tl,Ey;function HF(){if(Ey)return Tl;Ey=1;var e=UF();function t(r,a){var s=new e(r,a);return function(i){return s.convert(i)}}return t.BIN="01",t.OCT="01234567",t.DEC="0123456789",t.HEX="0123456789abcdef",Tl=t,Tl}var wl,Ty;function GF(){if(Ty)return wl;Ty=1;const{v4:e,validate:t}=WF(),r=HF(),a={cookieBase90:"0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!#$%&'()*+-./:<=>?@[]^_`{|}~",flickrBase58:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ",uuid25Base36:"0123456789abcdefghijklmnopqrstuvwxyz"},s={consistentLength:!0};let i;const u=(d,h,g)=>{const _=h(d.toLowerCase().replace(/-/g,""));return!g||!g.consistentLength?_:_.padStart(g.shortIdLength,g.paddingChar)},l=(d,h)=>{const _=h(d).padStart(32,"0").match(/(\w{8})(\w{4})(\w{4})(\w{4})(\w{12})/);return[_[1],_[2],_[3],_[4],_[5]].join("-")},f=d=>Math.ceil(Math.log(2**128)/Math.log(d));return wl=(()=>{const d=(h,g)=>{const _=h||a.flickrBase58,m={...s,...g};if([...new Set(Array.from(_))].length!==_.length)throw new Error("The provided Alphabet has duplicate characters resulting in unreliable results");const C=f(_.length),v={shortIdLength:C,consistentLength:m.consistentLength,paddingChar:_[0]},S=r(r.HEX,_),E=r(_,r.HEX),A=()=>u(e(),S,v),F={alphabet:_,fromUUID:R=>u(R,S,v),maxLength:C,generate:A,new:A,toUUID:R=>l(R,E),uuid:e,validate:(R,j=!1)=>{if(!R||typeof R!="string")return!1;const W=m.consistentLength?R.length===C:R.length<=C,Z=R.split("").every(te=>_.includes(te));return j===!1?W&&Z:W&&Z&&t(l(R,E))}};return Object.freeze(F),F};return d.constants=a,d.uuid=e,d.generate=()=>(i||(i=d(a.flickrBase58).generate),i()),d})(),wl}var Va=GF(),xe=(e=>(e.DATACLASS="dataclass",e.METHOD="method",e.ATTRIBUTE="attribute",e.DATASTORE="datastore",e.SINGLETON="singleton",e.SINGLETON_METHOD="singletonMethod",e))(xe||{}),je=(e=>(e.DS_METHOD="dsMethod",e.DATACLASS_METHOD="dataclassMethod",e.ENTITY_METHOD="entityMethod",e.ENTITY_SEL_METHOD="entityselMethod",e))(je||{});const VF=[xe.DATASTORE,xe.DATACLASS,xe.ATTRIBUTE,xe.SINGLETON_METHOD,xe.SINGLETON,xe.METHOD,je.DS_METHOD,je.DATACLASS_METHOD,je.ENTITY_METHOD,je.ENTITY_SEL_METHOD],wy=e=>[je.DS_METHOD,je.ENTITY_METHOD,je.DATACLASS_METHOD].includes(e)?xe.METHOD:e,So="guest",Af=[{key:"read",label:"Read",canApplyTo:[xe.DATASTORE,xe.DATACLASS,xe.ATTRIBUTE]},{key:"create",label:"Create",canApplyTo:[xe.DATASTORE,xe.DATACLASS,xe.ATTRIBUTE]},{key:"update",label:"Update",canApplyTo:[xe.DATASTORE,xe.DATACLASS,xe.ATTRIBUTE]},{key:"drop",label:"Delete",canApplyTo:[xe.DATASTORE,xe.DATACLASS,xe.ATTRIBUTE]},{key:"execute",label:"Execute",canApplyTo:[xe.DATASTORE,xe.DATACLASS,xe.METHOD,je.DS_METHOD,je.DATACLASS_METHOD,je.ENTITY_METHOD,je.ENTITY_SEL_METHOD,xe.SINGLETON,xe.SINGLETON_METHOD]},{key:"promote",label:"Promote",canApplyTo:[xe.METHOD,je.DS_METHOD,je.DATACLASS_METHOD,je.ENTITY_METHOD,je.ENTITY_SEL_METHOD,xe.SINGLETON_METHOD]}];function Jt(e,...t){return Array.from(new Set([...e,...t]))}function h_(e){const t={},r=new Map;e.forEach(f=>{const d=f.id||Va.generate();t[d]={...f,id:d,parents:[],includes:Jt(f.includes||[]),resources:[]},r.set(f.privilege,d)}),Object.entries(t).forEach(([f,d])=>{const h=d.includes.map(g=>{const _=r.get(g);return _?(t[_].parents=Jt(t[_].parents,_),_):""}).filter(Boolean);t[f]={...d,includes:h}});const a=g_(t),s=new Set;function i(f){s.add(f.id),f.includes=f.includes.filter(d=>!s.has(d))}if(a.forEach(i),a.forEach(f=>f.parents=[]),a.forEach(f=>{f.includes.forEach(d=>t[d].parents.push(f.id))}),Object.values(t).find(({privilege:f})=>f===So))return t;const l=Va.generate();return{[l]:{id:l,privilege:So,includes:[],parents:[],resources:[]},...t}}function g_(e){return Object.values(e).sort((t,r)=>t.parents.length-r.parents.length)}function jo(e,t){const r=t[e];let a=[];return r&&r.parents.forEach(s=>{a=Jt(a,...jo(s,t),s)}),a}function Eo(e,t){const r=t[e];let a=[];return r&&r.includes.forEach(s=>{a=Jt(a,...Eo(s,t),s)}),a}function zF(e,t){const r=t[e];if(!r)return[];const a=[e,...jo(e,t),...r.includes];return Object.keys(t).filter(s=>!a.includes(s))}function YF(e,t){return t[e]?Object.keys(t).reduce((a,s)=>s===e?a:{...a,[s]:{...t[s],parents:t[s].parents.filter(i=>i!==e),includes:t[s].includes.filter(i=>i!==e)}},{}):t}function KF(e,t,r){const a=r[e],s=r[t];return!a||!s?r:{...r,[e]:{...r[e],includes:Jt(a.includes,t)},[t]:{...r[t],parents:Jt(s.parents,e)}}}function QF(e,t,r){const a=r[e],s=r[t];return!a||!s?r:{...r,[e]:{...r[e],includes:r[e].includes.filter(i=>i!==t)},[t]:{...r[t],parents:r[t].parents.filter(i=>i!==e)}}}function v_(e,t){b.validateName(e),Object.entries(t).forEach(([,{privilege:a}])=>{if(e.toLowerCase()===a.toLowerCase())throw new Error(`There's already a Privilege with the name ${e}`)});const r=Va.generate();return{[r]:{id:r,privilege:e,includes:[],parents:[],resources:[]},...t}}function JF(e,t,r,a,s){let i=v_(e,s);const u=Object.entries(i).find(([,l])=>l.privilege===e);return u?(i=b_(u[1].id,t,r,a,i),i):s}function ZF(e,t,r){if(!e)throw new Error("Please enter a name");if(!r[t])throw new Error("Invalid privilege");return Object.entries(r).forEach(([,{privilege:a,id:s}])=>{if(e.toLowerCase()===a.toLowerCase()&&t!==s)throw new Error(`There's already a Privilege with the name ${e}`)}),{...r,[t]:{...r[t],privilege:e}}}function XF(e,t){return e.map(r=>hr(r,t))}function hr(e,t){return t[e]?t[e]:null}function y_({applyTo:e,type:t,...r}){return Object.entries(r).reduce((a,[s,i])=>{const u=ie.find(Af,["key",s]);return!u||!u.canApplyTo.includes(t)||(typeof i=="string"?i.split(","):i).forEach(f=>{a[f]=Jt(a[f]||[],s)}),a},{})}const Wl=(e,t=!1)=>["read","create","update","delete"].includes(e.toLowerCase())?`All ${t?"dataclasses and ":""}attributes have the '${e.toLowerCase()}' permission`:e.toLowerCase()==="execute"?`All functions defined ${t?"through the model (DataStore, Dataclasses, Entity selections, Entities) have the execute permission":"on this Dataclass, Entity selection class, Entity class have the execute permission"}`:`All ${t?"dataclasses, ":""}attributes and functions have the '${e.toLowerCase()}' permission`;function xf(e){return{permissions:Af.filter(({canApplyTo:t})=>t.includes(e.type)).map(({key:t,label:r})=>{const a={name:t,from:[]};switch(e.type){case xe.DATASTORE:return{...a,info:Wl(r,!0)};case xe.DATACLASS:return{...a,info:Wl(r)};default:return a}}),resource:e.applyTo,type:e.type}}function m_(e,t){const r=__(t),a={};return e.filter(({type:s})=>VF.includes(s)).forEach(s=>{const i=y_(s);Object.entries(i).forEach(([u,l])=>{var h;const f=(h=r[u])==null?void 0:h.id;if(!f)return;a[f]=a[f]||{...t[f]};let d=ie.find(a[f].resources,{resource:s.applyTo,type:s.type});d||(d=xf(s),a[f].resources.push(d)),d.permissions=d.permissions.map(g=>({...g,checked:g.checked||l.includes(g.name)}))})}),{...t,...a}}function __(e){return Object.values(e).reduce((t,r)=>({...t,[r.privilege]:r}),{})}function Bo(e){var r;const t=h_(e.privileges||[]);return{forceLogin:(e==null?void 0:e.forceLogin)||!1,restrictedByDefault:(e==null?void 0:e.restrictedByDefault)||!1,privileges:m_(((r=e.permissions)==null?void 0:r.allowed)||[],t),roles:(e.roles||[]).map(({id:a=Va.generate(),role:s,privileges:i=[]})=>({id:a,role:s,privileges:Jt(i).map(u=>{var l;return(l=Object.values(t).find(({privilege:f})=>f===u))==null?void 0:l.id}).filter(Boolean)})).reduce((a,s)=>({...a,[s.id]:{...s}}),{})}}function Wo(e){const t=Object.values(e.privileges).filter(({includes:a})=>a.length===0).map(({id:a})=>a),r=[...t,...t.map(a=>jo(a,e.privileges).reverse())].flat().filter((a,s,i)=>i.indexOf(a)===s).map(a=>e.privileges[a]);return{forceLogin:e.forceLogin||!1,restrictedByDefault:e.restrictedByDefault||!1,permissions:{allowed:Object.values(e.privileges).reduce((a,s)=>(s.resources.forEach(({permissions:i,resource:u,type:l})=>{let f=ie.find(a,{applyTo:u,type:wy(l)});f||(f={applyTo:u,type:wy(l)},a.push(f)),i.forEach(({name:d,checked:h})=>{h&&f&&(f[d]=f[d]||[],f[d].push(s.privilege))})}),a),[])},privileges:r.filter(({privilege:a})=>a!==So).map(({id:a,includes:s,privilege:i})=>({id:a,privilege:i,includes:s.map(u=>e.privileges[u].privilege)})),roles:Object.values(e.roles).map(a=>({...a,privileges:a.privileges.map(s=>{var i;return(i=e.privileges[s])==null?void 0:i.privilege}).filter(Boolean)}))}}function eI(e,t){const r=t[e],a={children:[],links:[],parents:[],selected:e};if(!r)return a;function s(l,f,d=[]){const h=l.reduce((g,_)=>[...g,...t[_][f]],[]);return h.length===0?d:(d.push(h),s(h,f,d))}function i(l){const f=[],d=[];for(let h=l.length-1;h>=0;h-=1){const g=l[h].filter(_=>f.includes(_)?!1:(f.push(_),!0));g.length>0&&d.unshift(Jt(g))}return d}function u(l,f){const d=[];return l.reduce((h,g)=>(g.forEach(_=>{t[_][f==="parents"?"includes":"parents"].forEach(C=>{d.includes(C)&&h.push(f==="parents"?{source:_,target:C}:{source:C,target:_})}),d.push(_)}),h),[])}return a.children=s([e],"includes"),a.children=i(a.children),a.parents=s([e],"parents"),a.parents=i(a.parents),a.links=[...u([[e],...a.parents],"parents"),...u([[e],...a.children],"includes")],a}function tI(e,t,r){const a=hr(e,r);if(!a||ie.find(a.resources,{resource:t.applyTo,type:t.type}))return r;const s={...a,resources:[...a.resources,xf(t)]};return{...r,[e]:s}}function rI(e,t,r){const a=hr(e,r);if(!a)return r;const s={...a,resources:a.resources.filter(({resource:i,type:u})=>i!==t.applyTo||u!==t.type)};return{...r,[e]:s}}function nI(e,t){const r=Object.entries(e).map(([a,s])=>{const i=hr(a,t);if(!i)return{[a]:t[a]};const u={...i,resources:i.resources.filter(({resource:l,type:f})=>!s.some(d=>d.applyTo===l&&d.type===f))};return{[a]:u}}).reduce((a,s)=>({...a,...s}),{});return{...t,...r}}function aI(e,t){const r=hr(e,t);if(!r)return t;const a={...r,resources:r.resources.filter(s=>s.permissions.some(i=>i.from.length)).map(s=>({...s,permissions:s.permissions.map(i=>({...i,checked:!1}))}))};return{...t,[e]:a}}function b_(e,t,r,a,s){const i=hr(e,s);if(!i)return s;const l=ie.find(i.resources,{type:r,resource:t})?{...i,resources:i.resources.map(f=>f.type===r&&f.resource===t?{...f,permissions:f.permissions.map(d=>d.name===a?{...d,checked:!d.checked,from:[]}:d)}:f)}:{...i,resources:[...i.resources,{type:r,resource:t,permissions:Af.filter(f=>f.canApplyTo.includes(r)).map(f=>({from:[],name:f.key,checked:f.key===a,info:Wl(f.key,r===xe.DATASTORE)}))}]};return{...s,[e]:l}}function sI(e,t,r,a){const s=hr(e,a);if(!s)return a;const u=ie.find(s.resources,{type:t.type,resource:t.resource})?{...s,resources:s.resources.map(l=>l.type===t.type&&l.resource===t.resource?{...l,permissions:t.permissions.map(f=>f.name===r.name?{...f,checked:!f.checked,from:[]}:f)}:l)}:{...s,resources:[...s.resources,{...t,permissions:t.permissions.map(l=>({...l,checked:r.name===l.name,from:[]}))}]};return{...a,[e]:u}}function oI(e,t){var f;const r=S_(e,t)||[],a=((f=hr(e,t))==null?void 0:f.resources)||[],u=([...r,...a].filter(({type:d})=>[je.DS_METHOD,je.DATACLASS_METHOD,je.ENTITY_METHOD,je.ENTITY_SEL_METHOD].includes(d))||[]).map(({resource:d})=>d);return Object.entries(t).reduce((d,[h,{resources:g}])=>(g.filter(({resource:_,type:m})=>[je.DS_METHOD,je.DATACLASS_METHOD,je.ENTITY_METHOD,je.ENTITY_SEL_METHOD].includes(m)&&u.includes(_)).forEach(({permissions:_,resource:m})=>{var v;((v=_.find(({name:S})=>S==="promote"))==null?void 0:v.checked)&&(d[m]=Jt(d[m]||[],h))}),d),{})}function S_(e,t){var u;const r=hr(e,t);if(!r)return[];const a=(u=Object.values(t).find(l=>l.privilege===So))==null?void 0:u.id;return(a&&a!==e?Jt(Eo(e,t),a):Eo(e,t)).reduce((l,f)=>(t[f].resources.forEach(h=>{if(h.permissions.filter(({checked:m,name:C})=>m&&C!=="promote").length===0)return;const _=ie.find(l,{type:h.type,resource:h.resource});if(!_){l.push({...h,permissions:h.permissions.map(m=>({...m,from:m.checked?[f]:[],checked:!1}))});return}_.permissions=_.permissions.map((m,C)=>{let{from:v=[]}=m;return h.permissions[C].checked&&!v.includes(f)&&(v=[...v,f]),{...m,from:v,checked:m.checked}})}),l),ie.clone(r.resources.map(l=>({...l,permissions:l.permissions.map(({checked:f,...d})=>({...d,checked:!!f}))}))))}const iI=e=>e.reduce((t,r)=>({...t,[r.id]:{...r}}),{}),uI=(e,t)=>t[e]?Object.values(t).reduce((r,a)=>e===a.id||a.role===""?r:{...r,[a.id]:a},{}):t,cI=(e,t,r)=>r[e]?Object.values(r).reduce((a,s)=>e===s.id?{...a,[s.id]:{...s,name:t}}:{...a,[s.id]:s},{}):r,lI=(e,t,r)=>{const a={id:e,role:t,privileges:[]};return{...r,[a.id]:a}},fI=(e,t)=>{if(b.validateName(e.role),Object.values(t).find(a=>a.role===e.role))throw new Error(`a role with the name ${e.role} already exists`);return Object.values(t).reduce((a,s)=>e.id===s.id?{...a,[e.id]:e}:{...a,[s.id]:s},{})},dI={list:[]},Cy=(e,t)=>e.list.filter(r=>r.id!==t),E_=Ft({name:"modals",initialState:dI,reducers:{createModal:(e,t)=>{e.list.push(t.payload)},editModal:(e,t)=>{const{id:r,...a}=t.payload,s=e.list.find(b.byId(r));s&&Object.assign(s,{...a})},removeModal:(e,t)=>{const r=t.payload;e.list=Cy(e,r)},closeModal:(e,t)=>{const{id:r,reason:a}=t.payload;if(a){const s=e.list.find(i=>i.id===r);s&&(s.closeReason=a,s.isOpen=!1)}else e.list=Cy(e,r)}}}),{createModal:T_,removeModal:w_,closeModal:pI,editModal:hI}=E_.actions,Zt=Y("modals/open",async(e,{dispatch:t})=>{const r=jb(),{type:a=b.ModalType.ALERT}=e,s=rf();switch(t(T_({id:s,type:a,isOpen:!0,...e})),a){case b.ModalType.CONFIRM:return new Promise(i=>{const u=r.subscribe(()=>{var d;const{modals:l}=r.getState(),f=l.list.find(h=>h.id===s);if(f&&!f.isOpen){const h=f.closeReason===b.ModalCloseReason.CONFIRMED,g=ie.entries((d=f.views)==null?void 0:d.toggles).reduce((_,m)=>({..._,[m[0]]:m[1].value}),{});t(w_(s)),u(),i({confirmed:h,options:g})}})});default:return{}}}),C_=()=>b.getFileContent({name:b.ROLES_TAB_PATH}),A_="Roles & Privileges",To=Y("roles/fetchRoles",async(e,{dispatch:t,rejectWithValue:r})=>{var i;let a;try{a=await C_()}catch(u){if(!Array.isArray((i=u==null?void 0:u.data)==null?void 0:i.__ERROR))return r("Error while loading the roles");a={name:b.ROLES_TAB_PATH,date:new Date().toISOString(),content:{permissions:{allowed:[]},privileges:[],roles:[]}}}const s={name:A_,type:b.FileFolderType.ROLES,date:a.date,view:{panel:{isOpen:!1,type:"",current:""}},path:b.ROLES_TAB_PATH,flags:{},extra:{editor:{key:"editors:roles"}},content:{}};return t(wt(s)),{...a,content:Bo(a.content)}}),x_=Y("roles/fetchRolesChanges",async(e,{getState:t})=>{const{tabs:r}=t().root;if(r.find(s=>s.path===b.ROLES_TAB_PATH)){const{date:s}=t().roles;if(s&&await Rf(s))return{old:!0}}return{}}),Rf=async e=>{if(!e)return!1;try{const t=await C_();if(t.date){const r=new Date(e),a=new Date(t.date);if(r>a)return!0}}catch(t){if(!Array.isArray(t==null?void 0:t.data.__ERROR))throw t}return!1},Ul=Y("roles/saveRoles",async(e,{getState:t,rejectWithValue:r,dispatch:a})=>{try{const{flags:s,date:i}=t().roles;if(s.old||await Rf(i)){const{confirmed:f}=await a(Zt({title:A_,message:"New content has been found on the server. Are you sure you want to continue?",type:b.ModalType.CONFIRM,icon:"FdSave"})).unwrap();if(!f)return r({old:!0})}return await b.setFileContent({name:b.ROLES_TAB_PATH,content:Wo(e)})}catch{return r("Error while loading the roles")}}),R_=Ft({name:"roles",initialState:()=>{const{roles:e}=_n(),{roles:t={},privileges:r={},flags:a={touched:!1},date:s,selectedTab:i="roles"}=e||{};return{flags:a,roles:t,privileges:r,date:s,selectedTab:i}},reducers:{updatePrivileges:(e,t)=>{e.privileges=t.payload,e.flags.touched=!0},updateRoles:(e,t)=>{e.roles=t.payload,e.flags.touched=!0},updateRolesAndPrivileges:(e,t)=>{e.roles=t.payload.roles,e.privileges=t.payload.privileges},toggleTab:(e,t)=>{e.selectedTab=t.payload},toggleForceLogin:(e,t)=>{e.forceLogin!==t.payload&&(e.forceLogin=t.payload,e.flags.touched=!0)},toggleRestrictedByDefault:(e,t)=>{e.restrictedByDefault!==t.payload&&(e.restrictedByDefault=t.payload,e.flags.touched=!0)},setRolesContent(e,t){const{content:r,flags:a={},...s}=t.payload,i=Bo(r),u={...e.flags,...a};return{...e,...i,...s,flags:u}}},extraReducers(e){e.addCase(To.fulfilled,(t,r)=>{const{content:a,date:s}=r.payload;t={...t,...a,date:s}}).addCase(To.rejected,t=>({...t,roles:{},privileges:{},flags:{touched:!1},date:void 0})).addCase(Ul.fulfilled,(t,r)=>({...t,flags:{...t.flags,confirmed:!0,touched:!1,old:!1},date:r.payload.date})).addCase(Ul.rejected,(t,r)=>zx.isString(r.payload)?t:{...t,flags:{...t.flags,...r.payload}}).addCase(x_.fulfilled,(t,r)=>({...t,flags:{...t.flags,...r.payload}})).addCase(Wn.fulfilled,(t,r)=>{!r.payload||r.payload.path!==b.ROLES_TAB_PATH||(t.flags.touched=!1,t.flags.old=!1)}).addCase(Lf.fulfilled,(t,r)=>{r.meta.arg!==b.ROLES_TAB_PATH||!r.payload||(t.flags.touched=!1,t.flags.old=!1)})}}),{updatePrivileges:O_,updateRoles:P_,setRolesContent:Of,toggleTab:gI,toggleForceLogin:vI,toggleRestrictedByDefault:yI,updateRolesAndPrivileges:Pf}=R_.actions,mI=R_.reducer,Df=Y("settings/fetch",async()=>await b.getNodeInfo({verb:b.DesignerRequestVerb.GET_INFO,path:b.SETTINGS_TAB_PATH,content:!0,as:"json"})),D_=Y("settings/app",b.getAppSettings),_I=lf(),Ay={session:{"studio.tips":!0,"studio.notifications":!0,"studio.enablePreview":!1,"studio.tipsBaseUrl":"https://raw.githubusercontent.com/4d/Web-studio-TIPS/gh-build","webforms.tooltip.behavior":Tf.SHOW_AFTER_TIMEOUT,"webforms.tooltip.timeout":3e3,"webforms.renderer.showPopOver":!0,"webforms.renderer.showUnsavedPopOver":!0,"webforms.renderer.unsavedPopOverChoice":wf.NONE,"welcometour.active":!0,"webforms.properties.advanced-mode":!1,"monaco.zoom":0,"model.viewport":{zoom:1,y:0,x:0}},project:{"webforms.renderer.indexPage":"","webforms.display-mode":"neutral"},server:{projectOpened:!1,remoteDebuggerMode:b.RemoteDebuggerMode.DISABLED,baseUrl:"",qodly:!0,urls:{renderer:"/$lib/renderer/",debugger:"",lsp:""},isRestActive:!0}},bI={...Ay,session:{...Ay.session,..._I},welcometour:{}},F_=Ft({name:"settings",initialState:bI,reducers:{setSetting(e,t){const{path:r,settingsKey:a,value:s}=t.payload;e[r][a]=s},setSettings(e,t){const{path:r,value:a}=t.payload;e[r]={...e[r],...a}},setSettingsAsText(e,t){const{path:r,settings:a}=t.payload;e[r]=a}},extraReducers(e){e.addCase(Df.fulfilled,(t,r)=>{t.project={...t.project,...r.payload.content}}),e.addCase(D_.fulfilled,(t,r)=>{t.server=r.payload,t.server.qodly&&(t.project["webforms.display-mode"]="airy")})}}),{setSetting:Hl,setSettings:Uo,setSettingsAsText:SI}=F_.actions,EI=F_.reducer,xy=[{name:"onServerStartup.4qs",content:`var error : object
103
103
  var obj : object
104
104
  var startUpExists : boolean
105
105
  var myWebServer : object = webServer
@@ -165,7 +165,7 @@ catch
165
165
  end
166
166
 
167
167
  end
168
- `}],Gl=e=>{const t=["folder","file"];return e.sort((r,a)=>r.type===a.type?r.name.localeCompare(a.name):t.indexOf(r.type)-t.indexOf(a.type))},Ce=(e,t)=>e.reduce((r,a)=>a.path===t.path&&a.type===t.type&&a.id===t.id?[...r,t]:a.children?[...r,{...a,children:Gl(Ce(a.children,t))}]:[...r,a],[]),Ze=(e,t)=>e.reduce((r,a)=>r||(a.path===t?a:a.children?Ze(a.children,t):null),null),I_=[{name:b.FolderRootPath.WEBFORMS,type:b.FileFolderType.FOLDER,children:[],path:b.FolderRootPath.WEBFORMS,error:null,flags:{expanded:!1,loading:!1,cached:!1},tipKey:"editors:webform:explorer:webforms",config:{},isRoot:!0},{name:b.FolderRootPath.METHODS,type:b.FileFolderType.FOLDER,children:[],path:b.FolderRootPath.METHODS,error:null,flags:{expanded:!1,loading:!1,cached:!1},config:{},isRoot:!0},{name:b.FolderRootPath.CLASSES,type:b.FileFolderType.FOLDER,children:[],path:b.FolderRootPath.CLASSES,error:null,flags:{expanded:!1,loading:!1,cached:!1},config:{},isRoot:!0},{name:b.FolderRootPath.SHARED,type:b.FileFolderType.FOLDER,children:[],path:b.FolderRootPath.SHARED,error:null,flags:{expanded:!1,loading:!1,cached:!1},config:{},isRoot:!0},{name:"Debugger",type:b.FileFolderType.FOLDER,children:[],path:"Debugger",error:null,flags:{expanded:!1,cached:!0},config:{},isRoot:!0},{name:"Roles And Privileges",type:b.FileFolderType.ROLES,ext:"json",path:b.ROLES_TAB_PATH,error:null,flags:{},config:{editor:{key:"editors:roles"},supportedEditors:[{key:"editors:code",config:{language:"json",theme:"vs-dark"}}]},isRoot:!0},{name:"Model",type:b.FileFolderType.MODEL,ext:"4DModel",path:b.MODEL_TAB_PATH,error:null,flags:{},config:{editor:{key:"editors:model"},supportedEditors:[{key:"editors:code",config:{language:"json",theme:"vs-dark"}}]}},{name:"HTTP Handlers",type:b.FileFolderType.HTTP_HANDLERS,ext:"json",path:b.HTTP_HANDLERS_TAB_PATH,error:null,flags:{},config:{editor:{key:"editors:http-handlers"},supportedEditors:[{key:"editors:code",config:{language:"json"}}]}},{name:"Localization",type:b.FileFolderType.LOCALIZATION,ext:"json",path:b.LOCALIZATION_TAB_PATH,error:null,flags:{},config:{editor:{key:"editors:localization"},supportedEditors:[{key:"editors:code",config:{language:"json"}}]},isRoot:!0},{name:"Settings",type:b.FileFolderType.SETTINGS,ext:"json",path:b.SETTINGS_TAB_PATH,error:null,flags:{},config:{editor:{key:"editors:settings"},supportedEditors:[{key:"editors:code",config:{language:"json"}}]},isRoot:!0}],TI=lf(),wI=!!ie.get(TI,"features.experimental.reports");wI&&I_.unshift({name:b.FolderRootPath.REPORTS,type:b.FileFolderType.FOLDER,children:[],path:b.FolderRootPath.REPORTS,error:null,flags:{expanded:!1,loading:!1,cached:!1},tipKey:"editors:report:explorer:reports",config:{},isRoot:!0});const M_=Ft({name:"explorer",initialState:I_,reducers:{renameClassesFolder:(e,t)=>{const{payload:r}=t,a=e.find(u=>u.name==="Classes");if(!a||!a.children||a.children.length===0)return e;const s=e.findIndex(u=>u.name==="Classes"),i=(u,l)=>{switch(u){case"dataclass":return l;case"entity":return`${l}Entity`;default:return`${l}Selection`}};return r.forEach(({newName:u,prevName:l})=>{var f;a.children=(f=a.children)==null?void 0:f.map(d=>{var h;return d.path.endsWith("[<QODLY_ID>]")&&d.name===l?{...d,name:u,path:`Classes/${u}___[<QODLY_ID>]`,children:(h=d.children)==null?void 0:h.map(g=>{var _;return{...g,path:g.path.replace(l,u),info:{...g.info,filename:i((_=g.info)==null?void 0:_.kind,u),dataclass:u}}})}:d})}),e[s]=a,e},removeClassesFolder:(e,t)=>{const{payload:r}=t;if(!r||r.length===0)return e;const a=e.find(u=>u.name==="Classes");if(!(a!=null&&a.children)||a.children.length===0)return e;const s=e.findIndex(u=>u.name==="Classes");let i=[];return r.forEach(u=>{var f,d;const l=(f=a.children)==null?void 0:f.find(h=>h.name===u);if(l){let h=(d=l.children)==null?void 0:d.filter(g=>{var _;return(_=g.info)==null?void 0:_.exist});h&&(h==null?void 0:h.length)>0&&(h=h.map(g=>{var _;return{...g,name:(_=g.info)==null?void 0:_.filename,info:{...g.info,kind:"userClass"}}}),i=i.concat(h))}}),a.children=a.children.filter(u=>!r.includes(u.name)),a.children=a.children.concat(i),a.children.sort((u,l)=>u.name==="DataStore"?-1:l.name==="DataStore"?1:u.type===b.FileFolderType.CLASS_FOLDER&&l.type===b.FileFolderType.CLASS_FOLDER||u.type===b.FileFolderType.CLASS&&l.type===b.FileFolderType.CLASS?u.name.localeCompare(l.name):u.type===b.FileFolderType.CLASS_FOLDER&&l.type!==b.FileFolderType.CLASS_FOLDER?-1:1),e[s]=a,e},addClassesFolder:(e,t)=>{const{payload:r}=t;if(r.length===0)return e;const a=e.find(u=>u.name==="Classes");if(!(a!=null&&a.children)||a.children.length===0)return e;const s=e.findIndex(u=>u.name==="Classes");let i=0;return a.children.forEach((u,l)=>{u.type===b.FileFolderType.CLASS_FOLDER&&(i=l)}),r.forEach(u=>{var l;a.children=(l=a.children)==null?void 0:l.filter(f=>{var h,g;const d=(h=u.children)==null?void 0:h.find(_=>{var m;return((m=_.info)==null?void 0:m.filename)===f.name});return d&&(u.children=(g=u.children)==null?void 0:g.map(_=>{var m;return((m=_.info)==null?void 0:m.filename)===f.name?{..._,info:{..._.info,exist:!0}}:_})),!d})}),r.forEach(u=>{var l;(l=a==null?void 0:a.children)==null||l.splice(i+1,0,u)}),a.children.sort((u,l)=>u.name==="DataStore"?-1:l.name==="DataStore"?1:u.type===b.FileFolderType.CLASS_FOLDER&&l.type===b.FileFolderType.CLASS_FOLDER?u.name.localeCompare(l.name):u.type===b.FileFolderType.CLASS_FOLDER&&l.type!==b.FileFolderType.CLASS_FOLDER?-1:1),e[s]=a,e},toggleExpandFolder:(e,t)=>(e=Ce(e,{...t.payload,flags:{...t.payload.flags,expanded:!t.payload.flags.expanded}}),e),expandFolder:(e,t)=>(e=Ce(e,{...t.payload,flags:{...t.payload.flags,expanded:!0}}),e),openAddFileInput:(e,t)=>Ce(e,{...t.payload,flags:{...t.payload.flags,adding:!0}}),addNewFile:(e,t)=>{const{parent:r,child:a}=t.payload;return Ce(e,{...r,children:[a,...r.children||[]]})},removeFile:(e,t)=>{const{parent:r,child:a}=t.payload;return Ce(e,{...r,children:r.children.filter(s=>s.path!==a.path)})},refreshFile:(e,t)=>{const{parent:r,child:a}=t.payload,s=(r.children||[]).filter(i=>i.path!==a.path&&!a.error);return Ce(e,{...r,children:[a,...s]})},setFolderChildren:(e,t)=>{const r=Ze(e,t.payload.parentPath);return r?Ce(e,{...r,children:t.payload.children}):e}},extraReducers:e=>{e.addCase(Bn.pending,(t,r)=>{const{file:a,newname:s}=r.meta.arg,i=Ze(t,a.path);if(!i)return t;const u=a.path.split("/");u.pop();const l=`${u.join("/")}/${a.name}.${a.ext}`,f=`${u.join("/")}/${s}.${a.ext}`;switch(a.ext){case"4dm":case"4qs":b.lspSubject.next({action:b.LspActions.WILL_RENAME,payload:{oldPath:l,newPath:f}});break}return Ce(t,{...i,flags:{...i.flags,loading:!0}})}),e.addCase(Bn.fulfilled,(t,r)=>{const{meta:{arg:{file:a}},payload:s}=r,i=Ze(t,a.path);if(!i)return t;switch(s.old.ext){case"4dm":case"4qs":b.lspSubject.next({action:b.LspActions.DID_RENAME,payload:{oldPath:s.old.path,newPath:s.new.path}});break}const u={...s.new};return Ar(u),Ce(t,{...i,flags:{...i.flags,loading:!1}})}),e.addCase(Bn.rejected,(t,r)=>{const{file:a}=r.meta.arg,s=Ze(t,a.path);return s?Ce(t,{...s,flags:{...s.flags,loading:!1}}):t}),e.addCase(Zr.pending,(t,r)=>{const a=typeof r.meta.arg=="string"?r.meta.arg:r.meta.arg.nodePath,s=Ze(t,a);return s?Ce(t,{...s,flags:{...s.flags,loading:!0}}):t}),e.addCase(Zr.fulfilled,(t,r)=>{const a=typeof r.meta.arg=="string"?r.meta.arg:r.meta.arg.nodePath,s=Ze(t,a);return s?Ce(t,{...s,children:Gl(r.payload),flags:{...s.flags,loading:!1,cached:!0,expanded:!0},error:null}):t}),e.addCase(Zr.rejected,(t,r)=>{const a=typeof r.meta.arg=="string"?r.meta.arg:r.meta.arg.nodePath,s=Ze(t,a);return s?Ce(t,{...s,error:{message:r.payload},flags:{...s.flags,loading:!1,cached:!0,expanded:!0}}):t}),e.addCase(ka.pending,(t,r)=>{const{nodePath:a}=typeof r.meta.arg=="string"?{nodePath:r.meta.arg}:r.meta.arg,s=Ze(t,a);return s?Ce(t,{...s,flags:{...s.flags,loading:!0}}):t}),e.addCase(ka.fulfilled,(t,r)=>{const{nodePath:a,collapseIfExpanded:s=!0}=typeof r.meta.arg=="string"?{nodePath:r.meta.arg}:r.meta.arg,i=Ze(t,a);return i?Ce(t,{...i,children:Gl(r.payload),flags:{...i.flags,loading:!1,cached:!0,...s?{expanded:!1}:{}},error:null}):t}),e.addCase(ka.rejected,(t,r)=>{const{nodePath:a,collapseIfExpanded:s=!0}=typeof r.meta.arg=="string"?{nodePath:r.meta.arg}:r.meta.arg,i=Ze(t,a);return i?Ce(t,{...i,error:{message:r.payload},flags:{...i.flags,loading:!1,cached:!0,...s?{expanded:!1}:{}}}):t}),e.addCase(so.pending,(t,r)=>{const{fileName:a,parentNode:s,path:i,type:u}=r.meta.arg,l=b.getFileExtentionFromType(u),f=`${i}/${a}${l?`.${l}`:""}`;return Ce(t,{...s,children:[{name:a,path:f,type:u,error:null,flags:{loading:!0},config:{}},...s.children]})}),e.addCase(so.fulfilled,(t,r)=>{const{path:a,fileName:s,type:i}=r.meta.arg,u=b.getFileExtentionFromType(i),l=`${a}${u?`.${u}`:""}`,{editor:f,supportedEditors:d}=pt(l);return Ce(t,{id:`${l}-${Date.now()}`,name:s,path:l,type:i,error:null,flags:{loading:!1},config:{editor:f,supportedEditors:d}})}),e.addCase(so.rejected,(t,r)=>{const{path:a,fileName:s,type:i}=r.meta.arg,u=b.getFileExtentionFromType(i),l=`${a}${u?`.${u}`:""}`;return Ce(t,{name:s,path:l,type:i,error:{message:r.payload},flags:{loading:!1},config:{}})}),e.addCase(oo.pending,(t,r)=>{const{node:a,parentNode:s}=r.meta.arg,i=`${a.name}_copy`,u=`${a.path}/${i}${a.ext?`.${a.ext}`:""}`;return Ce(t,{...s,children:[{name:i,path:u,type:a.type,error:null,flags:{loading:!0},permissions:{canRename:!0,canDelete:!0}},...s.children]})}),e.addCase(oo.fulfilled,(t,r)=>{const{node:a}=r.payload,s=Mm(a.name),i=`${a.path}/${a.name}`,{editor:u,supportedEditors:l}=pt(i);return Ce(t,{name:s,path:i,type:a.type,error:null,flags:{loading:!1},config:{editor:u,supportedEditors:l}})}),e.addCase(oo.rejected,(t,r)=>{const a=r.payload,{node:s}=r.meta.arg,i=`${s.name}_copy`,u=`${s.path}/${i}${s.ext?`.${s.ext}`:""}`;return Ce(t,{name:i,path:u,type:s.type,error:{message:a},flags:{loading:!1},config:{}})}),e.addCase(qa.pending,()=>{}),e.addCase(qa.fulfilled,(t,r)=>{var g;const{draggedNode:a,newLocation:s}=r.meta.arg,i=Im(a.path),u=Ze(t,i),l=Ze(t,s.path),f=(g=u==null?void 0:u.children)==null?void 0:g.filter(_=>_.path!==a.path),d=s.path.split("/").length,h=a.path.split("/").length;return d>=h?(t=Ce(t,{...u,children:f}),t=Ce(t,{...l,children:[{...a,path:`${l.path}/${a.name}`},...l!=null&&l.children?l.children:[]],flags:{...l.flags,expanded:!0}})):(t=Ce(t,{...l,children:[{...a,path:`${l.path}/${a.name}`},...l!=null&&l.children?l.children:[]],flags:{...l.flags,expanded:!0}}),t=Ce(t,{...u,children:f})),t}),e.addCase(qa.rejected,()=>{b.toastSubject.next({message:"Error moving file",kind:"danger"})}),e.addCase(jn.pending,(t,r)=>{var v;const{fileName:a,parentNode:s,path:i,type:u,qodly:l}=r.meta.arg,f=b.getFileExtentionFromType(u,l),d=`${i}/${a}${f?`.${f}`:""}`,{editor:h,supportedEditors:g}=pt(d);switch(u){case b.FileFolderType.CLASS:case b.FileFolderType.METHOD:b.lspSubject.next({action:b.LspActions.WILL_CREATE,payload:{filePath:d}});break}const m=[...(v=s.children)==null?void 0:v.filter(S=>S.path!==d),{name:a,path:d,type:u===b.FileFolderType.CLASS?u:b.FileFolderType.FILE,error:null,flags:{loading:!0},config:{editor:h,supportedEditors:g},ext:f,date:new Date().toISOString(),info:{exist:!0,kind:u===b.FileFolderType.CLASS?"userClass":""}}],C=Ce(t,{...s,children:m});return ie.merge(t,C)}),e.addCase(jn.fulfilled,(t,r)=>{const{fileName:a,path:s,type:i,qodly:u}=r.meta.arg,l=b.getFileExtentionFromType(i,u),f=`${s}/${a}${l?`.${l}`:""}`,{editor:d,supportedEditors:h}=pt(f),g=Ce(t,{name:a,path:f,type:b.FileFolderType.FILE,error:null,flags:{},config:{editor:d,supportedEditors:h},ext:l,date:new Date().toISOString(),info:{exist:!0,kind:i===b.FileFolderType.CLASS?"userClass":""}});switch(i){case b.FileFolderType.CLASS:case b.FileFolderType.METHOD:b.lspSubject.next({action:b.LspActions.DID_CREATE,payload:{filePath:f}});break}return t=g,t}),e.addCase(jn.rejected,(t,r)=>{const{fileName:a,path:s,type:i}=r.meta.arg,u=b.getFileExtentionFromType(i),l=`${s}${u?`.${u}`:""}`,{editor:f,supportedEditors:d}=pt(l);return t=Ce(t,{name:a,path:l,type:b.FileFolderType.FILE,error:{message:"Failed creating file"},flags:{},config:{editor:f,supportedEditors:d},ext:u,date:new Date().toISOString()}),t}),e.addCase(B_.rejected,t=>{const r=Ze(t,b.HTTP_HANDLERS_TAB_PATH);return r&&(t=Ce(t,{...r,flags:{...r.flags,disabled:!0}})),t}),e.addMatcher(Yy(Xr),(t,r)=>{const a=Ze(t,r.meta.arg.file.path);return a&&(t=Ce(t,{...a,flags:{...a.flags,loading:!0}})),t}),e.addMatcher(Qy(Xr),(t,r)=>{const a=Ze(t,r.meta.arg.file.path),s=a!=null&&a.info?{...a.info,exist:!0}:void 0;return a&&(t=Ce(t,{...a,flags:{...a.flags,loading:!1,disabled:!1},info:s})),t}),e.addMatcher(Ky(Xr),(t,r)=>{const a=Ze(t,r.meta.arg.file.path);return a&&(t=Ce(t,{...a,flags:{...a.flags,loading:!1}})),b.toastSubject.next({message:"Failed to open file, try again",kind:"danger"}),t})}}),{toggleExpandFolder:CI,expandFolder:AI,openAddFileInput:xI,addNewFile:L_,refreshFile:RI,removeFile:Vl,setFolderChildren:OI,addClassesFolder:PI,removeClassesFolder:DI,renameClassesFolder:FI}=M_.actions;function N_(e,t){switch(e){case b.FileFolderType.WEBFORMS:{const r={metadata:{v:"1.0",datasources:[],styles:[]},components:{ROOT:{parent:"",type:{resolvedName:"Container"},isCanvas:!0,props:{airyMode:!1,className:"bg-white h-full w-full px-6",classNames:[],events:[]},displayName:"Page",custom:{},hidden:!1,nodes:[],linkedNodes:{}}}};return t["webforms.display-mode"]===Cf.AIRY&&(r.components.ROOT.props.airyMode=!0),r}case b.FileFolderType.REPORT:return{metadata:{v:"1.0",datasources:[],styles:[]},pages:[{name:"doc",id:"index",components:{ROOT:{type:{resolvedName:"Document"},isCanvas:!0,props:{classNames:[],events:[],airyMode:!1,className:"bg-white h-full w-full px-6"},displayName:"Document",custom:{},parent:"",hidden:!1,nodes:[],linkedNodes:{}}}}]};case b.FileFolderType.METHODS:return`//%attributes = {}
168
+ `}],Gl=e=>{const t=["folder","file"];return e.sort((r,a)=>r.type===a.type?r.name.localeCompare(a.name):t.indexOf(r.type)-t.indexOf(a.type))},Ce=(e,t)=>e.reduce((r,a)=>a.path===t.path&&a.type===t.type&&a.id===t.id?[...r,t]:a.children?[...r,{...a,children:Gl(Ce(a.children,t))}]:[...r,a],[]),Ze=(e,t)=>e.reduce((r,a)=>r||(a.path===t?a:a.children?Ze(a.children,t):null),null),I_=[{name:b.FolderRootPath.WEBFORMS,type:b.FileFolderType.FOLDER,children:[],path:b.FolderRootPath.WEBFORMS,error:null,flags:{expanded:!1,loading:!1,cached:!1},tipKey:"editors:webform:explorer:webforms",config:{},isRoot:!0},{name:b.FolderRootPath.METHODS,type:b.FileFolderType.FOLDER,children:[],path:b.FolderRootPath.METHODS,error:null,flags:{expanded:!1,loading:!1,cached:!1},config:{},isRoot:!0},{name:b.FolderRootPath.CLASSES,type:b.FileFolderType.FOLDER,children:[],path:b.FolderRootPath.CLASSES,error:null,flags:{expanded:!1,loading:!1,cached:!1},config:{},isRoot:!0},{name:b.FolderRootPath.SHARED,type:b.FileFolderType.FOLDER,children:[],path:b.FolderRootPath.SHARED,error:null,flags:{expanded:!1,loading:!1,cached:!1},config:{},isRoot:!0},{name:"Debugger",type:b.FileFolderType.FOLDER,children:[],path:"Debugger",error:null,flags:{expanded:!1,cached:!0},config:{},isRoot:!0},{name:"Roles And Privileges",type:b.FileFolderType.ROLES,ext:"json",path:b.ROLES_TAB_PATH,error:null,flags:{},config:{editor:{key:"editors:roles"},supportedEditors:[{key:"editors:code",config:{language:"json",theme:"vs-dark"}}]},isRoot:!0},{name:"Model",type:b.FileFolderType.MODEL,ext:"4DModel",path:b.MODEL_TAB_PATH,error:null,flags:{},config:{editor:{key:"editors:model"},supportedEditors:[{key:"editors:code",config:{language:"json",theme:"vs-dark"}}]}},{name:"HTTP Handlers",type:b.FileFolderType.HTTP_HANDLERS,ext:"json",path:b.HTTP_HANDLERS_TAB_PATH,error:null,flags:{},config:{editor:{key:"editors:http-handlers"},supportedEditors:[{key:"editors:code",config:{language:"json"}}]}},{name:"Localization",type:b.FileFolderType.LOCALIZATION,ext:"json",path:b.LOCALIZATION_TAB_PATH,error:null,flags:{},config:{editor:{key:"editors:localization"},supportedEditors:[{key:"editors:code",config:{language:"json"}}]},isRoot:!0},{name:"Settings",type:b.FileFolderType.SETTINGS,ext:"json",path:b.SETTINGS_TAB_PATH,error:null,flags:{},config:{editor:{key:"editors:settings"},supportedEditors:[{key:"editors:code",config:{language:"json"}}]},isRoot:!0}],TI=lf(),wI=!!ie.get(TI,"features.experimental.reports");wI&&I_.unshift({name:b.FolderRootPath.REPORTS,type:b.FileFolderType.FOLDER,children:[],path:b.FolderRootPath.REPORTS,error:null,flags:{expanded:!1,loading:!1,cached:!1},tipKey:"editors:report:explorer:reports",config:{},isRoot:!0});const M_=Ft({name:"explorer",initialState:I_,reducers:{renameClassesFolder:(e,t)=>{const{payload:r}=t,a=e.find(u=>u.name==="Classes");if(!a||!a.children||a.children.length===0)return e;const s=e.findIndex(u=>u.name==="Classes"),i=(u,l)=>{switch(u){case"dataclass":return l;case"entity":return`${l}Entity`;default:return`${l}Selection`}};return r.forEach(({newName:u,prevName:l})=>{var f;a.children=(f=a.children)==null?void 0:f.map(d=>{var h;return d.path.endsWith("[<QODLY_ID>]")&&d.name===l?{...d,name:u,path:`Classes/${u}___[<QODLY_ID>]`,children:(h=d.children)==null?void 0:h.map(g=>{var _;return{...g,path:g.path.replace(l,u),info:{...g.info,filename:i((_=g.info)==null?void 0:_.kind,u),dataclass:u}}})}:d})}),e[s]=a,e},removeClassesFolder:(e,t)=>{const{payload:r}=t;if(!r||r.length===0)return e;const a=e.find(u=>u.name==="Classes");if(!(a!=null&&a.children)||a.children.length===0)return e;const s=e.findIndex(u=>u.name==="Classes");let i=[];return r.forEach(u=>{var f,d;const l=(f=a.children)==null?void 0:f.find(h=>h.name===u);if(l){let h=(d=l.children)==null?void 0:d.filter(g=>{var _;return(_=g.info)==null?void 0:_.exist});h&&(h==null?void 0:h.length)>0&&(h=h.map(g=>{var _;return{...g,name:(_=g.info)==null?void 0:_.filename,info:{...g.info,kind:"userClass"}}}),i=i.concat(h))}}),a.children=a.children.filter(u=>!r.includes(u.name)),a.children=a.children.concat(i),a.children.sort((u,l)=>u.name==="DataStore"?-1:l.name==="DataStore"?1:u.type===b.FileFolderType.CLASS_FOLDER&&l.type===b.FileFolderType.CLASS_FOLDER||u.type===b.FileFolderType.CLASS&&l.type===b.FileFolderType.CLASS?u.name.localeCompare(l.name):u.type===b.FileFolderType.CLASS_FOLDER&&l.type!==b.FileFolderType.CLASS_FOLDER?-1:1),e[s]=a,e},addClassesFolder:(e,t)=>{const{payload:r}=t;if(r.length===0)return e;const a=e.find(u=>u.name==="Classes");if(!(a!=null&&a.children)||a.children.length===0)return e;const s=e.findIndex(u=>u.name==="Classes");let i=0;return a.children.forEach((u,l)=>{u.type===b.FileFolderType.CLASS_FOLDER&&(i=l)}),r.forEach(u=>{var l;a.children=(l=a.children)==null?void 0:l.filter(f=>{var h,g;const d=(h=u.children)==null?void 0:h.find(_=>{var m;return((m=_.info)==null?void 0:m.filename)===f.name});return d&&(u.children=(g=u.children)==null?void 0:g.map(_=>{var m;return((m=_.info)==null?void 0:m.filename)===f.name?{..._,info:{..._.info,exist:!0}}:_})),!d})}),r.forEach(u=>{var l;(l=a==null?void 0:a.children)==null||l.splice(i+1,0,u)}),a.children.sort((u,l)=>u.name==="DataStore"?-1:l.name==="DataStore"?1:u.type===b.FileFolderType.CLASS_FOLDER&&l.type===b.FileFolderType.CLASS_FOLDER?u.name.localeCompare(l.name):u.type===b.FileFolderType.CLASS_FOLDER&&l.type!==b.FileFolderType.CLASS_FOLDER?-1:1),e[s]=a,e},toggleExpandFolder:(e,t)=>(e=Ce(e,{...t.payload,flags:{...t.payload.flags,expanded:!t.payload.flags.expanded}}),e),expandFolder:(e,t)=>(e=Ce(e,{...t.payload,flags:{...t.payload.flags,expanded:!0}}),e),openAddFileInput:(e,t)=>Ce(e,{...t.payload,flags:{...t.payload.flags,adding:!0}}),addNewFile:(e,t)=>{const{parent:r,child:a}=t.payload;return Ce(e,{...r,children:[a,...r.children||[]]})},removeFile:(e,t)=>{const{parent:r,child:a}=t.payload;return Ce(e,{...r,children:r.children.filter(s=>s.path!==a.path)})},refreshFile:(e,t)=>{const{parent:r,child:a}=t.payload,s=(r.children||[]).filter(i=>i.path!==a.path&&!a.error);return Ce(e,{...r,children:[a,...s]})},setFolderChildren:(e,t)=>{const r=Ze(e,t.payload.parentPath);return r?Ce(e,{...r,children:t.payload.children}):e}},extraReducers:e=>{e.addCase(Bn.pending,(t,r)=>{const{file:a,newname:s}=r.meta.arg,i=Ze(t,a.path);if(!i)return t;const u=a.path.split("/");u.pop();const l=`${u.join("/")}/${a.name}.${a.ext}`,f=`${u.join("/")}/${s}.${a.ext}`;switch(a.ext){case"4dm":case"4qs":b.lspSubject.next({action:b.LspActions.WILL_RENAME,payload:{oldPath:l,newPath:f}});break}return Ce(t,{...i,flags:{...i.flags,loading:!0}})}),e.addCase(Bn.fulfilled,(t,r)=>{const{meta:{arg:{file:a}},payload:s}=r,i=Ze(t,a.path);if(!i)return t;switch(s.old.ext){case"4dm":case"4qs":b.lspSubject.next({action:b.LspActions.DID_RENAME,payload:{oldPath:s.old.path,newPath:s.new.path}});break}const u={...s.new};return Ar(u),Ce(t,{...i,flags:{...i.flags,loading:!1}})}),e.addCase(Bn.rejected,(t,r)=>{const{file:a}=r.meta.arg,s=Ze(t,a.path);return s?Ce(t,{...s,flags:{...s.flags,loading:!1}}):t}),e.addCase(Zr.pending,(t,r)=>{const a=typeof r.meta.arg=="string"?r.meta.arg:r.meta.arg.nodePath,s=Ze(t,a);return s?Ce(t,{...s,flags:{...s.flags,loading:!0}}):t}),e.addCase(Zr.fulfilled,(t,r)=>{const a=typeof r.meta.arg=="string"?r.meta.arg:r.meta.arg.nodePath,s=Ze(t,a);return s?Ce(t,{...s,children:Gl(r.payload),flags:{...s.flags,loading:!1,cached:!0,expanded:!0},error:null}):t}),e.addCase(Zr.rejected,(t,r)=>{const a=typeof r.meta.arg=="string"?r.meta.arg:r.meta.arg.nodePath,s=Ze(t,a);return s?Ce(t,{...s,error:{message:r.payload},flags:{...s.flags,loading:!1,cached:!0,expanded:!0}}):t}),e.addCase(ka.pending,(t,r)=>{const{nodePath:a}=typeof r.meta.arg=="string"?{nodePath:r.meta.arg}:r.meta.arg,s=Ze(t,a);return s?Ce(t,{...s,flags:{...s.flags,loading:!0}}):t}),e.addCase(ka.fulfilled,(t,r)=>{const{nodePath:a,collapseIfExpanded:s=!0}=typeof r.meta.arg=="string"?{nodePath:r.meta.arg}:r.meta.arg,i=Ze(t,a);return i?Ce(t,{...i,children:Gl(r.payload),flags:{...i.flags,loading:!1,cached:!0,...s?{expanded:!1}:{}},error:null}):t}),e.addCase(ka.rejected,(t,r)=>{const{nodePath:a,collapseIfExpanded:s=!0}=typeof r.meta.arg=="string"?{nodePath:r.meta.arg}:r.meta.arg,i=Ze(t,a);return i?Ce(t,{...i,error:{message:r.payload},flags:{...i.flags,loading:!1,cached:!0,...s?{expanded:!1}:{}}}):t}),e.addCase(so.pending,(t,r)=>{const{fileName:a,parentNode:s,path:i,type:u}=r.meta.arg,l=b.getFileExtentionFromType(u),f=`${i}/${a}${l?`.${l}`:""}`;return Ce(t,{...s,children:[{name:a,path:f,type:u,error:null,flags:{loading:!0},config:{}},...s.children]})}),e.addCase(so.fulfilled,(t,r)=>{const{path:a,fileName:s,type:i}=r.meta.arg,u=b.getFileExtentionFromType(i),l=`${a}${u?`.${u}`:""}`,{editor:f,supportedEditors:d}=pt(l);return Ce(t,{id:`${l}-${Date.now()}`,name:s,path:l,type:i,error:null,flags:{loading:!1},config:{editor:f,supportedEditors:d}})}),e.addCase(so.rejected,(t,r)=>{const{path:a,fileName:s,type:i}=r.meta.arg,u=b.getFileExtentionFromType(i),l=`${a}${u?`.${u}`:""}`;return Ce(t,{name:s,path:l,type:i,error:{message:r.payload},flags:{loading:!1},config:{}})}),e.addCase(oo.pending,(t,r)=>{const{node:a,parentNode:s}=r.meta.arg,i=`${a.name}_copy`,u=`${a.path}/${i}${a.ext?`.${a.ext}`:""}`;return Ce(t,{...s,children:[{name:i,path:u,type:a.type,error:null,flags:{loading:!0},permissions:{canRename:!0,canDelete:!0}},...s.children]})}),e.addCase(oo.fulfilled,(t,r)=>{const{node:a}=r.payload,s=Mm(a.name),i=`${a.path}/${a.name}`,{editor:u,supportedEditors:l}=pt(i);return Ce(t,{name:s,path:i,type:a.type,error:null,flags:{loading:!1},config:{editor:u,supportedEditors:l}})}),e.addCase(oo.rejected,(t,r)=>{const a=r.payload,{node:s}=r.meta.arg,i=`${s.name}_copy`,u=`${s.path}/${i}${s.ext?`.${s.ext}`:""}`;return Ce(t,{name:i,path:u,type:s.type,error:{message:a},flags:{loading:!1},config:{}})}),e.addCase(qa.pending,()=>{}),e.addCase(qa.fulfilled,(t,r)=>{var g;const{draggedNode:a,newLocation:s}=r.meta.arg,i=Im(a.path),u=Ze(t,i),l=Ze(t,s.path),f=(g=u==null?void 0:u.children)==null?void 0:g.filter(_=>_.path!==a.path),d=s.path.split("/").length,h=a.path.split("/").length;return d>=h?(t=Ce(t,{...u,children:f}),t=Ce(t,{...l,children:[{...a,path:`${l.path}/${a.name}`},...l!=null&&l.children?l.children:[]],flags:{...l.flags,expanded:!0}})):(t=Ce(t,{...l,children:[{...a,path:`${l.path}/${a.name}`},...l!=null&&l.children?l.children:[]],flags:{...l.flags,expanded:!0}}),t=Ce(t,{...u,children:f})),t}),e.addCase(qa.rejected,()=>{b.toastSubject.next({message:"Error moving file",kind:"danger"})}),e.addCase(jn.pending,(t,r)=>{var v;const{fileName:a,parentNode:s,path:i,type:u,qodly:l}=r.meta.arg,f=b.getFileExtentionFromType(u,l),d=`${i}/${a}${f?`.${f}`:""}`,{editor:h,supportedEditors:g}=pt(d);switch(u){case b.FileFolderType.CLASS:case b.FileFolderType.METHOD:b.lspSubject.next({action:b.LspActions.WILL_CREATE,payload:{filePath:d}});break}const m=[...(v=s.children)==null?void 0:v.filter(S=>S.path!==d),{name:a,path:d,type:u===b.FileFolderType.CLASS?u:b.FileFolderType.FILE,error:null,flags:{loading:!0},config:{editor:h,supportedEditors:g},ext:f,date:new Date().toISOString(),info:{exist:!0,kind:u===b.FileFolderType.CLASS?"userClass":""}}],C=Ce(t,{...s,children:m});return ie.merge(t,C)}),e.addCase(jn.fulfilled,(t,r)=>{const{fileName:a,path:s,type:i,qodly:u}=r.meta.arg,l=b.getFileExtentionFromType(i,u),f=`${s}/${a}${l?`.${l}`:""}`,{editor:d,supportedEditors:h}=pt(f),g=Ce(t,{name:a,path:f,type:b.FileFolderType.FILE,error:null,flags:{},config:{editor:d,supportedEditors:h},ext:l,date:new Date().toISOString(),info:{exist:!0,kind:i===b.FileFolderType.CLASS?"userClass":""}});switch(i){case b.FileFolderType.CLASS:case b.FileFolderType.METHOD:b.lspSubject.next({action:b.LspActions.DID_CREATE,payload:{filePath:f}});break}return t=g,t}),e.addCase(jn.rejected,(t,r)=>{const{fileName:a,path:s,type:i}=r.meta.arg,u=b.getFileExtentionFromType(i),l=`${s}${u?`.${u}`:""}`,{editor:f,supportedEditors:d}=pt(l);return t=Ce(t,{name:a,path:l,type:b.FileFolderType.FILE,error:{message:"Failed creating file"},flags:{},config:{editor:f,supportedEditors:d},ext:u,date:new Date().toISOString()}),t}),e.addCase(B_.rejected,t=>{const r=Ze(t,b.HTTP_HANDLERS_TAB_PATH);return r&&(t=Ce(t,{...r,flags:{...r.flags,disabled:!0}})),t}),e.addMatcher(Yy(Xr),(t,r)=>{const a=Ze(t,r.meta.arg.file.path);return a&&(t=Ce(t,{...a,flags:{...a.flags,loading:!0}})),t}),e.addMatcher(Qy(Xr),(t,r)=>{const a=Ze(t,r.meta.arg.file.path),s=a!=null&&a.info?{...a.info,exist:!0}:void 0;return a&&(t=Ce(t,{...a,flags:{...a.flags,loading:!1,disabled:!1},info:s})),t}),e.addMatcher(Ky(Xr),(t,r)=>{const a=Ze(t,r.meta.arg.file.path);return a&&(t=Ce(t,{...a,flags:{...a.flags,loading:!1}})),b.toastSubject.next({message:"Failed to open file, try again",kind:"danger"}),t})}}),{toggleExpandFolder:CI,expandFolder:AI,openAddFileInput:xI,addNewFile:L_,refreshFile:RI,removeFile:Vl,setFolderChildren:OI,addClassesFolder:PI,removeClassesFolder:DI,renameClassesFolder:FI}=M_.actions;function N_(e,t){switch(e){case b.FileFolderType.WEBFORMS:{const r={metadata:{v:"1.0",datasources:[],styles:[]},components:{ROOT:{parent:"",type:{resolvedName:"Container"},isCanvas:!0,props:{airyMode:!1,className:"bg-white w-full px-6",classNames:[],events:[]},displayName:"Page",custom:{},hidden:!1,nodes:[],linkedNodes:{}}}};return t["webforms.display-mode"]===Cf.AIRY&&(r.components.ROOT.props.airyMode=!0),r}case b.FileFolderType.REPORT:return{metadata:{v:"1.0",datasources:[],styles:[]},pages:[{name:"doc",id:"index",components:{ROOT:{type:{resolvedName:"Document"},isCanvas:!0,props:{classNames:[],events:[],airyMode:!1,className:"bg-white w-full px-6"},displayName:"Document",custom:{},parent:"",hidden:!1,nodes:[],linkedNodes:{}}}}]};case b.FileFolderType.METHODS:return`//%attributes = {}
169
169
  `;default:return""}}function $_(e,t,r){switch(t){case b.FileFolderType.MOBILEFORM:return`${e}.MForm`;case b.FileFolderType.WEBFORM:return`${e}.WebForm`;case b.FileFolderType.REPORT:return`${e}.QoDoc`;case b.FileFolderType.METHOD:case b.FileFolderType.CLASS:return`${e}.${r?"4qs":"4dm"}`;default:return e}}function II(e){switch(e){case b.FolderRootPath.WEBFORMS:return b.FileFolderType.WEBFORMS;case b.FolderRootPath.METHODS:return b.FileFolderType.METHODS;case b.FolderRootPath.CLASSES:return b.FileFolderType.CLASSES;case b.FolderRootPath.REPORTS:case"Reports":return b.FileFolderType.REPORT;case"Mobile":return b.FileFolderType.MOBILE;default:return e}}function k_(e){switch(e){case b.FileFolderType.WEBFORMS:return b.FileFolderType.WEBFORM;case b.FileFolderType.REPORT:return b.FileFolderType.REPORT;case b.FileFolderType.CLASSES:return b.FileFolderType.CLASS;case b.FileFolderType.METHODS:return b.FileFolderType.METHOD;case b.FileFolderType.FOLDER:return b.FileFolderType.FOLDER;case b.FileFolderType.MOBILE:return b.FileFolderType.MOBILEFORM;default:return e}}const MI=Y("files/tryEditMethod",async({method:e},{dispatch:t})=>{const r=e.filePath.split("/"),[a]=r[1].split("."),{editor:s}=pt(e.filePath);return await t(Ff({file:{name:a,path:e.filePath,date:new Date().toISOString(),type:b.FileFolderType.CLASS,editor:s},line:e.startingLine+1})).unwrap()}),zl=Y("explorer/createModelFiles",async(e,{dispatch:t,getState:r})=>{var g;const a=r(),s=b.FolderRootPath.CLASSES,i=a.settings.server.qodly,u=Ze(a.explorer,s);if(!u)return;await t(Zr(s));const f=((g=r().explorer.find(_=>_.name===s))==null?void 0:g.children)||[];let d=[{content:"",name:""}];if(e.type==="dataclass"&&!e.toCreate){const{className:_,collectionName:m}=e;d=[{...hn().dataclass({name:_,qodly:i})},{...hn().collection({name:m,qodly:i})},{...hn().entity({name:_,qodly:i})}]}else if(e.type==="dataclass"&&e.toCreate){const{className:_,collectionName:m}=e;d=[{...hn()[e.toCreate]({name:_||m,qodly:i})}]}else d=[{...hn().model({name:"DataStore",qodly:i})}];d=d.filter(_=>!f.find(({name:m,ext:C,info:{exist:v=!0}={}})=>m===_.name&&C===(i?"4qs":"4dm")&&v)),await Promise.all(d.map(async({name:_,content:m})=>{await t(jn({type:b.FileFolderType.CLASS,path:s,fileName:_,parentNode:u,content:m,qodly:a.settings.server.qodly}))}));const h=e.type==="dataclass"&&e.expand?e.className:"";await t(Zr({nodePath:s,expandDataclass:h}))}),Zr=Y("explorer/fetchFolderContent",async(e,{rejectWithValue:t,getState:r})=>{const{nodePath:a,expandDataclass:s=""}=typeof e=="string"?{nodePath:e}:e,i=r();try{const u=await b.getNodeInfo({verb:b.DesignerRequestVerb.GET_INFO,path:a});return i.catalog.state!=="loaded"?[]:a==="Classes"?zn(i,u,s):u.map(l=>{const f=`${a}/${l.name}${l.ext?`.${l.ext}`:""}`,{editor:d,supportedEditors:h}=pt(f);return{name:l.name,size:l.size,type:l.type,date:`${l.date}`,flags:{},error:null,path:f,ext:l.ext,config:l.type==="folder"?{}:{editor:d,supportedEditors:h}}})}catch{return t("Failed loading file content please Reload"),a==="Classes"?zn(i,[],s):[]}},{getPendingMeta:()=>{}}),q_=Y("model/fetchClassesFolderContent",async(e,{getState:t})=>{const r=t(),a=b.FolderRootPath.CLASSES;if(Ze(r.explorer,a))try{const i=await b.getNodeInfo({verb:b.DesignerRequestVerb.GET_INFO,path:a});return zn(r,i)}catch{return zn(r,[])}}),ka=Y("explorer/fetchFolderContentWithoutExpanding",async(e,{rejectWithValue:t,getState:r})=>{const{nodePath:a}=typeof e=="string"?{nodePath:e}:e,s=r();try{const i=await b.getNodeInfo({verb:b.DesignerRequestVerb.GET_INFO,path:a});return a==="Classes"?zn(s,i):i.map(u=>{const l=`${a}/${u.name}${u.ext?`.${u.ext}`:""}`,{editor:f,supportedEditors:d}=pt(l);return{name:u.name,size:u.size,type:u.type,date:`${u.date}`,flags:{},error:null,path:l,ext:u.ext,config:u.type==="folder"?{}:{editor:f,supportedEditors:d}}})}catch{return t("Failed loading file content please Reload")}},{getPendingMeta:()=>{}});function LI(e){const t=e.split(".");return t.pop(),{name:t.join("."),ext:e.split(".")[e.split(".").length-1]}}const NI=Y("explorer/uploadFileAndGetResponse",async e=>{const t=e.type.includes("image/")?"$rawPict=true":"$binary=true";try{const r=await fetch(`/rest/$upload?${t}`,{method:"POST",headers:{"Content-Type":e.type},body:e});return{status:r.status,data:await r.json()}}catch{return{status:500,data:null}}}),$I=Y("explorer/uploadFile",async({file:e,path:t,parentNode:r},{dispatch:a})=>{const{editor:s,supportedEditors:i}=pt(t),{name:u,ext:l}=LI(e.name);a(L_({parent:r,child:{name:u,path:`${t}/${e.name}?t=${Date.now()}`,type:e.type,error:null,flags:{loading:!0},config:{editor:s,supportedEditors:i},ext:l}}));try{const f=await fetch(`/rest/$upload?$sharedFolder=true&$filename=${e.name}&$path=${t}`,{method:"POST",headers:{"Content-Type":e.type},body:e});return f.status>=300?(a(Vl({parent:r,child:{name:u,path:`${t}/${e.name}`,type:e.type,error:{message:"error uploading file"},flags:{},config:{editor:s,supportedEditors:i},ext:l}})),f.status!==413&&b.toastSubject.next({message:"error uploading file",kind:"danger"})):await a(Zr(r.path)),{status:f.status,fileName:e.name}}catch{return a(Vl({parent:r,child:{name:u,path:`${t}/${e.name}`,type:e.type,error:{message:"error uploading file"},flags:{},config:{editor:s,supportedEditors:i},ext:l}})),b.toastSubject.next({message:"error uploading file",kind:"danger"}),{status:500,fileName:e.name}}}),jn=Y("explorer/createNewFile",async({fileName:e,type:t,path:r,parentNode:a,content:s},{dispatch:i,rejectWithValue:u,getState:l})=>{const{server:{qodly:f},project:d}=l().settings;try{const h=await b.setFileContent({name:$_(e,t,f),content:s||N_(t,d),path:r,asText:[b.FileFolderType.CLASS,b.FileFolderType.METHOD].includes(t)});return a.error&&(a.flags.expanded?await i(Zr(a.path)):await i(ka(a.path))),{qodly:f,file:h,parentNode:a}}catch{return u("failed to create folder")}});function j_(e,t){const{qodly:r=!0,withExtension:a=!0}=t||{},s=b.getFileExtentionFromType(e.type,r);let i="";switch(e.type){case b.FileFolderType.WEBFORM:i=`${b.FolderRootPath.WEBFORMS}/${e.name}`;break;case b.FileFolderType.METHOD:i=`${b.FolderRootPath.METHODS}/${e.name}`;break;case b.FileFolderType.CLASS:i=`${b.FolderRootPath.CLASSES}/${e.name}`;break;default:return""}return`${i}${a?`.${s}`:""}`}const kI=Y("explorer/createNewFileAndOpen",async(e,{dispatch:t,getState:r})=>{const a=await t(jn(e)).unwrap(),{qodly:s}=r().settings.server;if(a){const{file:i}=a,u=j_(i,{withExtension:!1,qodly:s}),{editor:l}=pt(u);await t(Xr({file:{name:e.fileName,type:i.type,path:u,editor:l,date:new Date().toISOString()}}))}}),so=Y("explorer/createNewNode",async({fileName:e,path:t,parentNode:r},{rejectWithValue:a})=>{try{return{file:await b.createFolder({verb:b.DesignerRequestVerb.CREATE_FOLDER,path:`${t}/${e}`,recursive:!0}),parentNode:r}}catch{return b.toastSubject.next({message:"failed to create folder",kind:"danger"}),a("failed to create folder")}}),za=async({file:e,flags:t={},node:r={}})=>{var a;try{const s=e.path.split(".").at(-1),i=await b.getNodeInfo({verb:b.DesignerRequestVerb.GET_INFO,path:e.path,content:((a=e.editor)==null?void 0:a.key)!=="editors:img",as:im(s)?"json":"text"}),u={editor:e.editor};r!=null&&r.info&&(u.kind=r.info.kind);const l=b.getTypeFromExtension(e.path);l===b.FileFolderType.METHOD&&(u.attributes=b.parseAttributes(i.content),i.content=b.addAttributesToContent(i.content,{}));const{content:f,date:d,ext:h}=i;return t.confirmed===void 0&&(t.confirmed=!0),{date:d,view:{panel:{isOpen:!1,type:l===b.FileFolderType.WEBFORM?"component":"",current:l===b.FileFolderType.WEBFORM?"ROOT":""}},flags:{enabled:["WebForm","MForm"].includes(h),confirmed:t.confirmed},extra:u,name:e.name,path:e.path,type:l,initialContent:f,content:f,history:{stack:[],active:-1,locked:!1}}}catch(s){const{data:i}=s;if(i.__ERROR.find(u=>u.errCode===b.ERROR_CODES.FILE_NOT_FOUND))switch(e.path){case b.ROLES_TAB_PATH:{const u={permissions:{allowed:[]},privileges:[],roles:[]};return{date:new Date().toISOString(),flags:t,extra:{editor:{key:"editors:roles"},kind:"roles"},name:"Roles & Privileges",path:e.path,type:b.FileFolderType.ROLES,initialContent:u,content:u}}case b.SETTINGS_TAB_PATH:{const u={};return{date:new Date().toISOString(),flags:t,extra:{editor:{key:"editors:settings"},kind:"qodlyApp"},name:"Settings",path:e.path,type:b.FileFolderType.SETTINGS,initialContent:u,content:u}}}throw s}},B_=Y("HTTPHandlers/fetch",async(e,{rejectWithValue:t})=>{const r=(await b.getFilesInfo({path:b.HTTP_HANDLERS_TAB_PATH})).files.find(a=>a.path===b.HTTP_HANDLERS_TAB_PATH);if(r!=null&&r.deleted)return t("not found")}),Ho=(e,t)=>{const r=(a,s)=>{for(const i of a){if(i.path===s)return i;if(i.children){const u=r(i.children,s);if(u)return u}}};return r(e,t)},qI=Y("explorer/openFileFromLocation",async(e,{dispatch:t})=>{const r=cm();if(r.page){const a=`WebForms/${r.page}.WebForm`,s=Ml(a,r.editor,{key:"editors:webforms"});t(Xr({file:{path:a,editor:s,name:r.page,type:b.FileFolderType.WEBFORM},flags:{confirmed:!0}}))}else if(r.path){const{filename:a,type:s}=b.getFilenameAndTypeFromPath(r.path),i=Ml(r.path,r.editor);t(Xr({file:{type:s,editor:i,name:a,path:r.path},flags:{confirmed:!0}}))}}),jI=Y("explorer/switchEditor",async({tab:e,editor:t},{dispatch:r})=>{e.path===b.LOCALIZATION_TAB_PATH&&t.key==="editors:localization"&&b.i18nSubject.next({action:"set_locale_state",payload:typeof e.content=="string"?JSON.parse(e.content):e.content}),r(Xr({file:{path:e.path,type:e.type,name:e.name,editor:t}}))}),Xr=Y("explorer/openFile",async({file:e,inactive:t,isNew:r,flags:a={},info:s},{getState:i,dispatch:u})=>{const{root:{tabs:l},roles:f,explorer:d,debugger:{sessions:h},settings:{server:{qodly:g}}}=i(),_=l.find(({path:S})=>e.path===S);if(_){const S={..._,extra:{..._==null?void 0:_.extra,editor:e.editor??_.editor},flags:{..._==null?void 0:_.flags,...a}};return u(wt(S)),S}if(e.path.startsWith("Debugger")){const S=h.find(E=>`Debugger/${E.threadId}`===e.path);if(S){const{source:{content:E},source:A}=S.currentStackFrame,O={name:e.name,type:b.FileFolderType.DEBUGGER,date:new Date().toISOString(),path:e.path,content:E,view:{panel:{isOpen:!1,type:"",current:""}},initialContent:E,flags:{confirmed:!0},extra:{source:A,editor:e.editor}};return u(wt(O)),O}}const m=Ho(d,e.path);let C=null;try{C=await za({file:e,flags:a,node:m})}catch(S){const{data:E}=S;if(E.__ERROR.find(A=>[b.ERROR_CODES.JSON_MALFORMED,b.ERROR_CODES.JSON_MALFORMED_AT_LINE].includes(A.errCode))){const{confirmed:A}=await u(Zt({title:"Corrupt file",type:b.ModalType.CONFIRM,color:b.ModalColor.WARNING,message:"Open in text editor ?"})).unwrap();if(A){const O=await b.getNodeInfo({verb:b.DesignerRequestVerb.GET_INFO,path:e.path,content:!0,as:"text"}),{content:F,date:R,ext:j}=O;C={date:R,view:{panel:{isOpen:!1,type:"",current:""}},flags:{enabled:["WebForm","MForm","QoDoc"].includes(j),confirmed:!0},extra:{editor:b.EDITOR.Code},name:e.name,path:e.path,type:b.getTypeFromExtension(e.path),initialContent:F,content:F,history:{stack:[],active:-1,locked:!1}}}}if(e.type===b.FileFolderType.CLASS&&s){const A=s.kind,O=`${e.name}.${g?"4qs":"4dm"}`,F=hn()[A]({name:O,qodly:g}).content;if(C={date:(await b.setFileContent({name:O,content:F,path:"Classes",asText:!0})).date,view:{panel:{isOpen:!1,type:"",current:""}},flags:{enabled:!1,confirmed:!0},extra:{editor:b.EDITOR.Code},name:e.name,path:e.path,type:b.getTypeFromExtension(e.path),initialContent:F,content:F,history:{stack:[],active:-1,locked:!1}},A==="app"){const j=await b.getFilesInfo(...xy.map(W=>({path:`DatabaseMethods/${W.name}`})));xy.forEach(W=>{const Z=j.files.find(te=>te.path===`DatabaseMethods/${W.name}`);Z!=null&&Z.deleted&&b.setFileContent({name:W.name,content:W.content,path:"DatabaseMethods",asText:!0})})}}if(e.path===b.HTTP_HANDLERS_TAB_PATH){const A=(await b.getFilesInfo({path:b.HTTP_HANDLERS_TAB_PATH})).files.find(O=>O.path===b.HTTP_HANDLERS_TAB_PATH);A!=null&&A.deleted&&await b.setFileContent({name:b.HTTP_HANDLERS_TAB_PATH,content:"[]",path:"./",asText:!0}).then(async()=>{C=await za({file:e,flags:a,node:m})})}}return C&&(e.path===b.ROLES_TAB_PATH&&!f.flags.touched?u(Of({content:C.content,date:C.date,flags:a})):e.path===b.SETTINGS_TAB_PATH&&u(Uo({path:"project",value:C.content})),u((t?bb:wt)({...C,isNew:r})),C)}),Ff=Y("explorer/openFileAtLine",async({file:e},{getState:t,dispatch:r})=>{const{root:{tabs:a},explorer:s}=t(),i=a.find(({path:f})=>e.path===f);if(i){const f={...i,extra:{...i==null?void 0:i.extra,editor:e.editor}};return r(wt(f)),f}const u=Ho(s,e.path),l=await za({file:e,node:u});return r(wt(l)),l}),W_=Y("explorer/injectContentAtLine",async(e,{getState:t,dispatch:r,rejectWithValue:a})=>{const{explorer:s}=t();e.path.split("/").pop();const u=Ze(s,e.path);if(!u)return a(`Error while trying to inject content in file ${e.path}`);const l=`${u.path}.${u.ext}`,f=Ho(s,l),d=await za({file:{name:u.name,date:u.date||new Date().toISOString(),path:l,type:b.FileFolderType.CLASS,editor:u.config.editor},node:f});return await r(wt(d)),{...e,path:`${u.path}.${u.ext}`}}),U_=Y("explorer/openFileAtSelection",async({file:e},{getState:t,dispatch:r})=>{const{root:{tabs:a},explorer:s}=t(),i=a.find(({path:f})=>e.path===f);if(i){const f={...i,extra:{...i==null?void 0:i.extra,editor:e.editor}};return r(wt(f)),f}const u=Ho(s,e.path),l=await za({file:e,node:u});return r(wt(l)),l}),Yl=Y("explorer/deleteFile",async e=>{const{name:t,type:r,path:a,flags:s}=e;if(s.error)return{deleted:!0,node:e};const i=a.split("/");return i.pop(),{deleted:await b.dropFile({root:b.FolderRootType.ROOT,type:k_(r),verb:b.DesignerRequestVerb.DROP,name:t,path:i.join("/")}),node:e}}),BI=Y("explorer/deleteFolder",async(e,{getState:t,dispatch:r})=>{const{path:a,flags:s}=e;if(s.error)return{deleted:!0,node:e};const{deleted:i}=await b.removeItem({force:!0,path:a,verb:b.DesignerRequestVerb.REMOVE_ITEM}).catch(console.error)||{deleted:!1};if(e.children){const{tabs:u}=t().root;e.children.forEach(l=>{const f=u.findIndex(d=>d.path===l.path);r(Ko(f))})}return{deleted:i,node:e}}),Kl=Y("explorer/removeFileNode",async(e,{getState:t,dispatch:r})=>{await b.removeItem({verb:b.DesignerRequestVerb.REMOVE_ITEM,path:e.path,force:!0}).catch(console.error);const{root:{tabs:a},catalog:s}=t();if((e.path==="Classes/DataStore"||H_(s,e))&&setTimeout(()=>{r(en())},es),e.ext){const i=a.findIndex(u=>u.path===e.path);i>=0&&r(Ko(i))}return{deleted:!0,node:e}}),H_=(e,t)=>{const{model:{singletons:r}}=e;return ie.values(r).some(a=>a.name===t.name)},Bn=Y("explorer/renameFile",async({file:e,newname:t},{dispatch:r,getState:a})=>{if(e.type!=="folder"){const i=e.path.split("/");i.pop();const u=`${i.join("/")}/${e.name}.${e.ext}`,l=`${i.join("/")}/${t}.${e.ext}`;await b.moveItem({verb:b.DesignerRequestVerb.MOVE_ITEM,path:u,newpath:l});const{catalog:f}=a();return H_(f,e)&&setTimeout(()=>{r(en())},es),{old:{...e,path:u},new:{...e,name:t,path:l}}}const s=e.path.split("/");return s.pop(),await b.moveItem({verb:b.DesignerRequestVerb.MOVE_ITEM,path:`${s.join("/")}/${e.name}`,newpath:`${s.join("/")}/${t}`}),{old:e,new:{...e,name:t,path:`${s.join("/")}/${t}`}}}),qa=Y("explorer/relocateNode",async({draggedNode:e,newLocation:t},{rejectWithValue:r})=>{try{await b.moveItem({verb:b.DesignerRequestVerb.MOVE_ITEM,path:`${e.path}.${e.ext}`,newpath:`${t.path}/${e.name}.${e.ext}`})}catch{return r("can't move item")}}),oo=Y("explorer/duplicateNode",async({node:e,duplicateName:t},{rejectWithValue:r,fulfillWithValue:a,getState:s})=>{const i=e.path.split("/");i.pop();try{const{tabs:u}=s().root,l=u.find(({path:g})=>g===e.path),f=["4dm","4qm","4qs"].includes(e.ext),{content:d}=l||await b.getNodeInfo({verb:b.DesignerRequestVerb.GET_INFO,path:e.path,content:!0,as:f?"text":"json"}),h=await b.setFileContent({name:`${t}.${e.ext}`,content:d,path:i.join("/"),asText:f});return a({node:{...h,path:i.join("/")}})}catch{return r("failed to duplicate file")}}),WI=Y("explorer/executeMethod",async({methodName:e,params:t=[],resultingDataSource:r={},namespace:a=""},{rejectWithValue:s})=>{var i,u;try{const l=window.Method4D.buildMethod({methodName:e,parameters:t,resultingDataSource:r},{namespace:a},null),f=b.callServerSideParser(await l.callServerSide({id:"",serverSideRef:""},"onclick",{}));return f!=null&&f.__NOTIFICATION?b.toastSubject.next({message:`${((i=f.__NOTIFICATION)==null?void 0:i.message)||""}`,kind:`${((u=f.__NOTIFICATION)==null?void 0:u.type)||"info"}`}):b.toastSubject.next({message:"Method executed Successfully",kind:"message"}),f}catch(l){return b.toastSubject.next({message:l.errorStack.length>1&&[{messages:l.errorStack.map(f=>f.message)}]||l.message||`Error executing the method "**${e}**"`,kind:"danger",markdown:!0}),s("can't execute method")}}),UI=e=>{const{dataClasses:t,...r}=e;return{...r,dataClasses:t==null?void 0:t.map(a=>{let s={...a};if(s.uuid||(s={...s,uuid:b.generateUUID()}),s.attributes){const i=["storage","relatedEntity"],u=s.attributes.map(l=>i.includes(l.kind)&&!l.uuid?{...l,uuid:b.generateUUID()}:l);s={...s,attributes:[...u]}}return s})}},HI=Y("files/fetchFiles",async()=>b.getFolders(b.FolderRootType.WEBFORMS,b.FolderRootType.METHODS,b.FolderRootType.CLASSES)),If=Y("tabs/renameDatasource",async(e,{dispatch:t,getState:r})=>{var m,C;const a=!!e.datasourceNamespace,{confirmed:s}=await t(Zt({message:"Are you sure you want to rename the datasource?",title:"Rename Datasource",type:b.ModalType.CONFIRM,color:b.ModalColor.WARNING,views:{toggles:{},tips:a?[{type:"warning",message:"The datasource property of components bound with this datasource will also be updated on opened web forms only"},{type:"warning",message:"The origin of some other datasources might be also renamed (if this datasource is the origin of other datasources)"}]:[{type:"warning",message:"The datasource property of components bound with this datasource will also be updated"},{type:"warning",message:"The origin of some other datasources might be also renamed (if this datasource is the origin of other datasources)"}]}})).unwrap();if(!s)return null;const{autoUpdateReferences:i,datasourceId:u,datasourceNamespace:l,value:f,path:d}=e,h=r();let g=[];if(a){const v=h.sharedDatasources.sources[l]||[];g.push(...v)}else if(d){const v=h.root.tabs.find(b.by("path",d));if(g=(C=(m=v==null?void 0:v.content)==null?void 0:m.metadata)==null?void 0:C.datasources,!g)return null}const _=new RegExp(`^${u}\\b`,"");if(g=g.map(v=>{const S=(b.isObjectDatasource(v)||!b.isSimpleDatasource(v))&&v.from&&_.test(v.from),E=v.events?v.events.map(A=>{var O,F,R,j;switch(A==null?void 0:A.type){case"method":{const W=A;return W.params?{...W,params:W.params.map(Z=>{var te;return{...Z,datasource:(te=Z.datasource)==null?void 0:te.replace(new RegExp(`^${u}`,""),f)}}),returns:(O=W.returns)!=null&&O.datasource?{...W.returns,datasource:(F=W.returns.datasource)==null?void 0:F.replace(new RegExp(`^${u}`,""),f)}:W.returns}:W}case"simple-action":{const W=A;return W.datasource?{...W,datasource:{...W.datasource,name:(R=W.datasource.name)==null?void 0:R.replace(new RegExp(`^${u}`,""),f),from:(j=W.datasource.from)==null?void 0:j.replace(new RegExp(`^${u}`,""),f)}}:W}default:return A}}):v.events;return v.id===u?{...v,id:f,events:E}:S&&v.from?{...v,from:v.from.replace(new RegExp(`^${u}`,""),f),events:E}:{...v,events:E}}),i){const v=a?`${l}:${u}`:`${u}`,S=a?`${l}:${f}`:`${f}`;b.datasourcesSubject.next({path:d??"",action:b.DatasourcesActions.RENAME,old_reference:v,new_reference:S,is_shared:a})}return{path:d,namespace:l,datasources:g}}),Mf=Y("tabs/edit-datasource",(e,{getState:t})=>{var i,u;const r=t();let a=[];if(e.namespace)a=r.sharedDatasources.sources[e.namespace];else{const l=r.root.tabs.find(b.by("path",e.path));l&&(a=((u=(i=l.content)==null?void 0:i.metadata)==null?void 0:u.datasources)||[])}return a.map(l=>l.id===e.datasourceId?Object.assign({},l,{[e.propertyKey]:e.value}):l)}),G_=Y("tabs/fetchChanges",async(e,{getState:t})=>{const a=bn(t()).filter(s=>[b.FileFolderType.METHOD,b.FileFolderType.CLASS].includes(s.type));return b.getFilesInfo(...a.map(s=>{const[i]=s.path.split("/").filter(Boolean);return{name:s.name,type:s.type,root:i,path:"."}}))}),GI=Y("files/saveAll",async(e,{getState:t,dispatch:r})=>{const a=_f(t());for(const s of a)r(Wn({tab:s}))}),Lf=Y("files/tryCloseTab",async(e,{getState:t,dispatch:r})=>{const{tabs:a}=t().root,s=a.findIndex(u=>u.path===e);if(s===-1)return!1;const i=a[s];if(i!=null&&i.flags.touched){const{confirmed:u}=await r(Zt({title:Ro(i),message:"Your unsaved changes will be lost. Proceed anyway?",type:b.ModalType.CONFIRM,color:b.ModalColor.WARNING,icon:"FdWarningDanger"})).unwrap();if(!u)return!1}return r(Ko(s)),i.path===b.ROLES_TAB_PATH&&i.flags.touched&&(async()=>{const l=await b.getNodeInfo({verb:b.DesignerRequestVerb.GET_INFO,path:b.ROLES_TAB_PATH,content:!0,as:"json"});r(Of({content:l.content,date:l.date}))})(),!0}),VI=Y("files/tryCloseOtherTabs",async(e,{getState:t,dispatch:r})=>{const{tabs:a}=t().root;if(a.some(i=>i.path!==e&&i.flags.touched===!0)){const{confirmed:i}=await r(Zt({title:"Closing other tabs",message:"Your changes will be lost if you do not save them. Close anyway?",type:b.ModalType.CONFIRM,color:b.ModalColor.WARNING,icon:"FdWarningDanger"})).unwrap();if(!i)return}r(yb(e))}),zI=Y("files/tryCloseAllTabs",async(e,{getState:t,dispatch:r})=>{const{tabs:a}=t().root;if(a.some(i=>i.flags.touched===!0)){const{confirmed:i}=await r(Zt({title:"Closing all tabs",message:"Your changes will be lost if you do not save them. Close anyway?",type:b.ModalType.CONFIRM,color:b.ModalColor.WARNING,icon:"FdWarningDanger"})).unwrap();if(!i)return}r(gb())}),YI=Y("files/tryCloseRightTabs",async(e,{getState:t,dispatch:r})=>{const{tabs:a}=t().root;let s=!1;for(let i=a.length-1;i>e;i-=1)if(a[i].flags.touched){s=!0;break}if(s){const{confirmed:i}=await r(Zt({title:"Closing right tabs",message:"Your changes will be lost if you do not save them. Close anyway?",type:b.ModalType.CONFIRM,color:b.ModalColor.WARNING,icon:"FdWarningDanger"})).unwrap();if(!i)return}r(vb(e))}),KI=Y("files/tryCloseLeftTabs",async(e,{getState:t,dispatch:r})=>{const{tabs:a}=t().root;let s=!1;for(let i=0;i<e;i+=1)if(a[i].flags.touched){s=!0;break}if(s){const{confirmed:i}=await r(Zt({title:"Closing left tabs",message:"Your changes will be lost if you do not save them. Close anyway?",type:b.ModalType.CONFIRM,color:b.ModalColor.WARNING,icon:"FdWarningDanger"})).unwrap();if(!i)return}r(mb(e))}),io=Y("files/reloadTab",async(e,{dispatch:t})=>{var s,i;if(e.flags.touched){const{confirmed:u}=await t(Zt({title:Ro(e),message:"Changes made to the file will be lost. Continue?",type:b.ModalType.CONFIRM,color:b.ModalColor.WARNING,icon:"FdWarningDanger"})).unwrap();if(!u)throw new Error("Cancel modal!")}const r=vf(e.path),a=await b.getNodeInfo({verb:b.DesignerRequestVerb.GET_INFO,path:e.path,content:!0,as:r});if(e.path===b.ROLES_TAB_PATH){const{roles:u,privileges:l}=Bo(a.content);t(Pf({roles:u,privileges:l}))}else if(e.path===b.SETTINGS_TAB_PATH){const{content:u}=a;t(Uo({path:"project",value:u}))}else{const{content:u}=a;e.type===b.FileFolderType.WEBFORM?b.webformSubject.next({path:e.path,action:b.WebformActions.RELOAD,payload:u.components}):e.type===b.FileFolderType.MODEL?jm.next({action:"reload",payload:u}):e.path===b.LOCALIZATION_TAB_PATH&&((i=(s=e.extra)==null?void 0:s.editor)==null?void 0:i.key)==="editors:localization"&&b.i18nSubject.next({action:"set_locale_state",payload:u})}return a}),Wn=Y("files/saveTab",async({tab:e},{dispatch:t,getState:r})=>{let{path:a,content:s}=e;if(e.type===b.FileFolderType.DEBUGGER)return{...e,errors:[]};a.split("/").pop();const u=await b.getFilesInfo({path:a});if(u.files[0]){const g=new Date(e.date),_=new Date(u.files[0].date);if(g.getTime()<_.getTime()){const{confirmed:m}=await t(Zt({title:Ro(e),message:"New content has been found on the server. Are you sure you want to continue?",type:b.ModalType.CONFIRM,icon:"FdSave"})).unwrap();if(!m)return t(hb({path:a,flags:{old:!0}})),null}}const l=QI(e,r()),f=await b.saveContent({verb:b.DesignerRequestVerb.SAVE_CONTENT,content:l,path:a});(e.type===b.FileFolderType.CLASS||e.type===b.FileFolderType.MODEL)&&setTimeout(()=>{t(en())},es);const d=(f.modelErrors||[]).map(g=>g.message),h=(f.permissionsErrors||[]).map(g=>g.message);return b.FileFolderType.MODEL===e.type&&(s=l),{...e,content:s,date:f.date,initialContent:s,errors:d.length>0||h.length>0?[{title:"Model errors",messages:d},{title:"Permissions errors",messages:h}]:[]}}),QI=(e,t)=>{var r,a;switch(!0){case e.path==="settings.json":case e.path===b.SETTINGS_TAB_PATH:return t.settings.project;case e.type===b.FileFolderType.ROLES:return((a=(r=e.extra)==null?void 0:r.editor)==null?void 0:a.key)==="editors:roles"?Wo(t.roles):e.content;case e.type===b.FileFolderType.MODEL:{const s=e.content||{toJSON:!0,dataClasses:[],extraProperties:{}};return UI(s)}default:return e.content}},Ry=async e=>{if(e.type===b.FileFolderType.DATA_EXPLORER)return{name:"Data Explorer",path:e.path,flags:{},view:{panel:{isOpen:!1,type:"",current:""}},type:e.type,date:new Date().toISOString()};const t=vf(e.path),r=await b.getNodeInfo({verb:b.DesignerRequestVerb.GET_INFO,path:e.path,content:!0,as:t}),a={};r.type===b.FileFolderType.METHOD&&(a.attributes=b.parseAttributes(r.content));const{date:s,name:i,type:u,content:l}=r;return{date:s,flags:{enabled:e.type===b.FileFolderType.WEBFORM},extra:a,view:{panel:{isOpen:!1,type:"",current:""}},name:i,path:e.path,type:u,initialContent:l,content:u===b.FileFolderType.MODEL?om(l):l,history:{stack:[],active:-1,locked:!1}}},V_=ie.debounce((e,t)=>{t(wb(e))},300),JI=Y("tabs/setTabContent",(e,{getState:t,dispatch:r})=>{var u;const{root:{tabs:a}}=t(),s=a.find(l=>l.path===e.path),i=!!((u=s==null?void 0:s.history)!=null&&u.locked);r(qf(e)),i?r(jf(e.path)):V_(e.path,r)}),ZI=Y("tabs/setCurrentWebformState",(e,{getState:t,dispatch:r})=>{var u;const{root:{tabs:a}}=t(),s=a.find(l=>l.path===e.path),i=!!((u=s==null?void 0:s.history)!=null&&u.locked);r(Sb(e)),i?r(jf(e.path)):V_(e.path,r)}),z_=Y("files/tryInjectMethod",async({type:e,dataclass:t,expand:r},{getState:a,dispatch:s})=>{const{root:{tabs:i},settings:{server:{qodly:u}}}=a(),l=b.getFileExtentionFromType("class",u);let f="",d="",h=null;if(!t)f="DataStore",d=`Classes/DataStore.${l}`;else switch(e){case"dataclass":f=t,d=`Classes/${t}.${l}`;break;case"collection":f=`${t}Selection`,d=`Classes/${t}Selection.${l}`;break;case"entity":f=`${t}Entity`,d=`Classes/${t}Entity.${l}`;break;default:return h}const g=i.find(b.by("path",d));if(g)return s(wt(g)),g;try{h=await Ry({name:f,date:new Date().toISOString(),path:d,type:b.FileFolderType.CLASS})}catch{t?await s(zl({type:"dataclass",className:t,collectionName:`${t}Selection`,toCreate:e,expand:r})):await s(zl({type:"model"}))}return h=await Ry({date:new Date().toISOString(),path:d,type:b.FileFolderType.CLASS}),h.path=d,s(wt(h)),h}),XI=Y("roles/open",async(e,{dispatch:t,getState:r})=>{const{tabs:a}=r().root,s=a.find(i=>i.path===b.ROLES_TAB_PATH);if(s)return t(wt(s)),s;t(To())});function Oy(e,t){const{line:r,lineInEditor:a,offset:s,type:i="saved"}=t;e.breakpoints[i].locations.push({line:r,lineInEditor:a}),ie.isNumber(s)&&(e.breakpoints[i].offset=s)}function Cl(e,t,r,a,s=!1){if(s){const i=new Map;let u=0;e.breakpoints[r].locations.forEach((l,f)=>{l.disabled?i.set(f,-1):i.set(f,u++)}),e.breakpoints[r].locations=e.breakpoints[r].locations.map((l,f)=>{const d=i.get(f);return!l.disabled&&ie.isNumber(d)&&t[d]?{...l,...t[d]}:l})}else e.breakpoints[r].locations=t;ie.isNumber(a)&&(e.breakpoints[r].offset=a)}function Py({filePath:e,fileType:t,methodName:r,className:a,ext:s,source:i}){return{filePath:e,fileType:t,methodName:r,className:a,ext:s,source:i,breakpoints:{draft:{locations:[],offset:0},saved:{locations:[],offset:0}}}}function Al(e,t,r){let a=!1;const s=e.map(i=>i[r]!==t[r]?i:(a=!0,{...i,...t}));return a?s:[...s,t]}function to(e){return e.map(({label:t})=>({label:t}))}const Y_=Ft({name:"debugger",initialState:()=>{var t,r,a;const{debugger:e={meta:{state:Gr.DETACHED},list:[],sessions:[],expressions:[]}}=_n();return{meta:{...e.meta,state:((t=e.meta)==null?void 0:t.state)===Gr.ATTACHED?(r=e.meta)==null?void 0:r.state:Gr.DETACHED,shouldAutoReattach:((a=e.meta)==null?void 0:a.shouldAutoReattach)??!1},list:e.list||[],sessions:e.sessions||[],expressions:e.expressions||[]}},reducers:{addBreakpointDecoration(e,t){const{filePath:r,fileType:a,methodName:s,className:i,ext:u,source:l,breakpoint:f}=t.payload,d=cr(e.list,r,s,i);if(d)Oy(d,f);else{if(a===b.FileFolderType.CLASS&&f.offset===void 0)throw new Error(`Cannot add a breakpoint on a function without offset. Try editing the ${i} class.`);const h=Py({filePath:r,fileType:a,methodName:s,className:i,ext:u,source:l});Oy(h,f),e.list.push(h)}},removeBreakpointDecoration(e,t){const{filePath:r,methodName:a,line:s,offset:i=0,type:u="saved"}=t.payload;if(r.startsWith("Classes/")){const l=e.list.filter(f=>f.filePath===r);if(l.length>0){const f=s+i;l.forEach(d=>{const h=d.breakpoints[u].offset||0;d.breakpoints[u].locations=d.breakpoints[u].locations.filter(g=>g.line+h!==f),u==="saved"&&(d.breakpoints.draft.locations=d.breakpoints.draft.locations.filter(g=>g.line+h!==f))})}}else{const l=cr(e.list,r,a);l&&(l.breakpoints[u].locations=l.breakpoints[u].locations.filter(f=>f.line!==s),u==="saved"&&(l.breakpoints.draft.locations=l.breakpoints.draft.locations.filter(f=>f.line!==s)))}},setBreakpointsDecoration(e,t){const{filePath:r,fileType:a,methodName:s,className:i,ext:u,source:l,breakpoints:f,offset:d,type:h="saved",merge:g=!1,clearDraft:_}=t.payload,m=cr(e.list,r,s,i);if(m)Cl(m,f,h,d,g),_&&h!=="draft"&&(m.breakpoints.draft.locations=[]);else{const C=Py({filePath:r,fileType:a,methodName:s,className:i,ext:u,source:l});Cl(C,f,h,d),e.list.push(C)}},updateBreakpointsDecoration(e,t){const{filePath:r,methodName:a,className:s,breakpoints:i,type:u="saved",merge:l=!1}=t.payload,f=cr(e.list,r,a,s);f&&Cl(f,i,u,void 0,l)},clearBreakpoints(e,t){const{filePath:r,type:a="saved"}=t.payload;e.list=e.list.map(s=>({...s,breakpoints:s.filePath===r?{draft:!a||a==="draft"||a==="any"?{locations:[],offset:0}:s.breakpoints.draft,saved:!a||a==="saved"||a==="any"?{locations:[],offset:0}:s.breakpoints.saved}:s.breakpoints}))},clearBreakpointsExcept(e,t){const{exceptedFilePath:r,type:a="saved"}=t.payload;e.list=e.list.map(s=>({...s,breakpoints:s.filePath!==r?{draft:!a||a==="draft"||a==="any"?{locations:[],offset:0}:s.breakpoints.draft,saved:!a||a==="saved"||a==="any"?{locations:[],offset:0}:s.breakpoints.saved}:s.breakpoints}))},clearAllBreakpoints(e){e.list=e.list.map(t=>({...t,breakpoints:{draft:{locations:[],offset:0},saved:{locations:[],offset:0}}}))},toggleBreakpoint(e,t){const{filePath:r,methodName:a,line:s,offset:i=0,disabled:u}=t.payload;if(r.startsWith("Classes/")){const l=e.list.filter(f=>f.filePath===r);if(l.length>0){const f=s+i;l.forEach(d=>{const h=d.breakpoints.saved.offset||0;d.breakpoints.saved.locations=d.breakpoints.saved.locations.map(g=>g.line+h===f?{...g,disabled:u}:g)})}}else{const l=cr(e.list,r,a);l&&(l.breakpoints.saved.locations=l.breakpoints.saved.locations.map(f=>f.line===s?{...f,disabled:u}:f))}},toggleBreakpointsInFile(e,t){const{filePath:r,methodName:a,disabled:s}=t.payload;if(r.startsWith("Classes/")){const i=e.list.filter(u=>u.filePath===r);i.length>0&&i.forEach(u=>{u.breakpoints.saved.locations=u.breakpoints.saved.locations.map(l=>({...l,disabled:s}))})}else{const i=cr(e.list,r,a);i&&(i.breakpoints.saved.locations=i.breakpoints.saved.locations.map(u=>({...u,disabled:s})))}},disableAllBreakpoints(e){e.list=e.list.map(t=>({...t,breakpoints:{...t.breakpoints,saved:{...t.breakpoints.saved,locations:t.breakpoints.saved.locations.map(r=>({...r,disabled:!0}))}}}))},enableAllBreakpoints(e){e.list=e.list.map(t=>({...t,breakpoints:{...t.breakpoints,saved:{...t.breakpoints.saved,locations:t.breakpoints.saved.locations.map(r=>({...r,disabled:!1}))}}}))},setActiveLine(e,t){const{threadId:r,line:a,highlight:s}=t.payload,i=Xe(e.sessions,r);i&&(i.activeLine=a,s&&(i.highlightedLines={start:a,end:a}))},addExpression(e,t){const{threadId:r,label:a,save:s}=t.payload,i=Xe(e.sessions,r);i&&i.stopped&&(i.expressions=[...i.expressions||[],{label:a}],s&&(e.expressions=to(i.expressions)))},removeExpression(e,t){const{threadId:r,index:a,save:s}=t.payload,i=Xe(e.sessions,r);i&&(i.expressions=i.expressions.filter((u,l)=>l!==a),s&&(e.expressions=to(i.expressions)))},removeAllExpressions(e,t){const{threadId:r,save:a}=t.payload,s=Xe(e.sessions,r);s&&(s.expressions=[],a&&(e.expressions=[]))},renameExpression(e,t){const{threadId:r,index:a,replacement:s,save:i}=t.payload,u=Xe(e.sessions,r);u&&u.expressions[a]&&(u.expressions[a].label=s,i&&(e.expressions=to(u.expressions)))},setExpression(e,t){const{threadId:r,expression:a}=t.payload,s=Xe(e.sessions,r);if(s){const i=a.index>=0?a.index:s.expressions.length>0?s.expressions.length-1:0,u=s.expressions[i];u?(u.result=a.result,u.nakedResult=a.nakedResult,u.variablesReference=a.variablesReference||0,u.presentationHint=a.presentationHint):s.expressions.push(a)}},updateExpressionAt(e,t){const{threadId:r,index:a,value:s}=t.payload,i=Xe(e.sessions,r);if(i){const u=i.expressions[a];u&&(u.result=`"${s}"`,u.nakedResult=s)}},saveExpressions(e,t){const{expressions:r}=t.payload;e.expressions=to(r)},addSession(e,t){const{threadId:r,channelId:a,stackFrames:s,exceptions:i=[]}=t.payload,u=Xe(e.sessions,r),l=s[0],{expressions:f=[]}=e;if(u)u.expressions=f;else{const d=pf(r);e.sessions.push({tabPath:d,threadId:r,channelId:a,stackFrames:s,currentStackFrame:l,exceptions:i,expressions:f,variables:{callchain:[],expressions:[],argument:[],local:[],currentLine:[]},expandedVariables:[],highlightedLines:null,activeLine:null,stopped:!0})}},updateSession(e,t){const{threadId:r,changes:a}=t.payload;e.sessions=e.sessions.map(s=>s.threadId===r?{...s,...a}:s)},removeSession(e,t){const{threadId:r}=t.payload;e.sessions=e.sessions.filter(a=>a.threadId!==r)},removeSessionByIndex(e,t){const r=t.payload;e.sessions.splice(r,1)},setSessions(e,t){const r=t.payload;e.sessions=r},setCommonVariables(e,t){const{key:r,threadId:a,frameId:s,variablesReference:i,variables:u}=t.payload;e.sessions=e.sessions.map(l=>{var f;return l.threadId===a?{...l,variables:{...l.variables,[r]:Al((f=l.variables)==null?void 0:f[r],{frameId:s,variablesReference:i,items:u},"frameId")},expandedVariables:[...l.expandedVariables,r]}:l})},setCallChainVariables(e,t){const{threadId:r,frameId:a,variablesReference:s,variables:i}=t.payload;e.sessions=e.sessions.map(u=>{var l;return u.threadId===r?{...u,variables:{...u.variables,callchain:Al((l=u.variables)==null?void 0:l.callchain,{frameId:a,variablesReference:s,items:i},"frameId")},expandedVariables:[...u.expandedVariables,"callchain"]}:u})},setExpressionVariables(e,t){const{threadId:r,variablesReference:a,variables:s}=t.payload;e.sessions=e.sessions.map(i=>{var u;return i.threadId===r?{...i,variables:{...i.variables,expressions:Al((u=i.variables)==null?void 0:u.expressions,{variablesReference:a,items:s},"variablesReference")}}:i})},setSourceContent(e,t){const{threadId:r,content:a}=t.payload,s=Xe(e.sessions,r);s&&(s.currentStackFrame.source={...s.currentStackFrame.source,content:a})},setDebuggerMeta(e,t){if(t.payload.state===Gr.ERROR){const{error:r={code:null,reason:"",type:mo.SOCKET_ERROR}}=t.payload;if(e.meta.error={...e.meta.error,...r,time:Date.now()},(r==null?void 0:r.type)===mo.SOCKET_CLOSURE&&(r==null?void 0:r.code)===1e3&&!(r!=null&&r.reason)&&e.meta.state===Gr.DETACHED)return}e.meta.state=t.payload.state,t.payload.shouldAutoReattach!==void 0&&(e.meta.shouldAutoReattach=t.payload.shouldAutoReattach)}},extraReducers:e=>{e.addMatcher(Pt(Q_.fulfilled,pb),t=>{t.sessions=[]})}}),{addBreakpointDecoration:eM,removeBreakpointDecoration:tM,setBreakpointsDecoration:rM,updateBreakpointsDecoration:nM,clearBreakpoints:aM,clearBreakpointsExcept:sM,clearAllBreakpoints:oM,toggleBreakpoint:iM,toggleBreakpointsInFile:uM,disableAllBreakpoints:cM,enableAllBreakpoints:lM,setActiveLine:fM,addExpression:dM,renameExpression:pM,removeExpression:hM,removeAllExpressions:gM,setExpression:vM,updateExpressionAt:yM,saveExpressions:mM,addSession:_M,updateSession:bM,removeSession:SM,removeSessionByIndex:EM,setSessions:K_,setCallChainVariables:TM,setExpressionVariables:wM,setCommonVariables:CM,setSourceContent:AM,setDebuggerMeta:xM}=Y_.actions,Q_=Y("files/wipeDebuggerSessions",async(e,{getState:t,dispatch:r})=>{const{sessions:a}=t().debugger;for(const{threadId:s}of a){const i=pf(s);r(Lf(i))}}),J_=Y("files/removeDebuggerSessionsNotIn",async(e,{getState:t,dispatch:r})=>{const{threadIds:a}=e,{sessions:s}=t().debugger,i=[],u=s.filter(l=>{const f=a.includes(l.threadId);return f||i.push(l.threadId),f});return r(K_(u)),{staleThreadIds:i}}),wo=Y("models/fetch",async()=>(await b.http(b.API_PREFIX,{method:"POST",body:JSON.stringify({verb:b.DesignerRequestVerb.GET_INFO,path:b.MODEL_TAB_PATH,as:"json",content:!0}),headers:new Headers({"Content-Type":"application/json"})})).content),Co=Y("models/save",async(e,{getState:t,dispatch:r,rejectWithValue:a})=>{const{tabs:s}=t().root,i=s.find(u=>u.path===b.MODEL_TAB_PATH);if(!i)return a("Error while saving the model");try{const u=await b.http(b.API_PREFIX,{method:"POST",body:JSON.stringify({verb:"save",path:i.path,content:i.content}),headers:new Headers({"Content-Type":"application/json"})});return setTimeout(()=>{r(en())},es),{...u,path:i.path,content:e.content||{toJSON:!0,dataClasses:[],extraProperties:{}}}}catch{return a("Error while saving the model")}}),RM=Y("models/open",async(e,{dispatch:t,getState:r})=>{const{tabs:a}=r().root,s=a.find(i=>i.path==="models/main");if(s)return t(wt(s)),s;t(wo())}),OM=Y("model/rename-dataclass",async({dataclassId:e,selectionId:t,name:r},{getState:a,dispatch:s})=>{const i=await s(q_()).then(g=>g.payload);if(!a().explorer.find(g=>g.path===b.FolderRootPath.CLASSES))throw new Error("Classes folder was not found!");const f={class:{found:!1,newNameTaken:!1,file:null,filename_update:r},entity:{found:!1,newNameTaken:!1,file:null,filename_update:`${r}Entity`},selection:{found:!1,newNameTaken:!1,file:null,filename_update:`${r}Selection`}};i==null||i.forEach(g=>{var _;g.path===`Classes/${e}___[<QODLY_ID>]`?(_=g.children)==null||_.forEach(m=>{var v,S,E,A;const C={...m,name:(v=m.info)==null?void 0:v.filename};((S=m.info)==null?void 0:S.filename)===e?(f.class.found=!0,f.class.file=C):((E=m.info)==null?void 0:E.filename)===`${e}Entity`?(f.entity.found=!0,f.entity.file=C):((A=m.info)==null?void 0:A.filename)===t&&(f.selection.found=!0,f.selection.file=C)}):(g.name===f.class.filename_update&&(f.class.newNameTaken=!0),g.name===f.entity.filename_update&&(f.entity.newNameTaken=!0),g.name===f.selection.filename_update&&(f.selection.newNameTaken=!0))});const d=Object.entries(f).reduce((g,_)=>{const[m,C]=_;return C.found?C.newNameTaken?[...g,{type:"error",message:`Cannot rename ${m} file to ${C.filename_update} because it already exists. The existing file will be used instead!`}]:g:[...g,{type:"warning",message:`${e} ${m} file was not found`}]},[]);d.length>0&&s(Zt({message:"The following errors were encountered during dataclass rename:",views:{tips:d}}));const h=Object.values(f).filter(g=>g.found&&g.file&&!g.newNameTaken);await Promise.all(h.map(async g=>await s(Bn({file:g.file,newname:g.filename_update}))))}),Ya={DATACLASS_DELETE:"dataclass.delete",DATACLASS_DRAGGABLE:"dataclass.draggable"},PM={model:{dataClasses:{},collections:{},extraProperties:{}},draft:{dataClasses:{},collections:{},extraProperties:{}},flags:{[Ya.DATACLASS_DELETE]:!0,[Ya.DATACLASS_DRAGGABLE]:!0}},Z_=Ft({name:"Models",initialState:PM,reducers:{setModelFlag(e,t){e.flags={...e.flags,...t.payload}}},extraReducers(e){e.addCase(wo.fulfilled,(t,r)=>{var u;const a={},s={},i=r.payload.extraProperties||{};(u=r.payload.dataClasses)==null||u.forEach(l=>{a[l.name]=l,s[l.collectionName]=l}),t.draft.dataClasses=a,t.draft.collections=s,t.draft.extraProperties=i,t.model.dataClasses=a,t.model.collections=s,t.model.extraProperties=i}),e.addCase(wo.rejected,t=>{t.errored=!0}),e.addCase(Co.pending,()=>{}).addCase(Co.fulfilled,(t,r)=>{const a={},s={},i=r.payload.content.extraProperties||{};r.payload.content.dataClasses.forEach(u=>{a[u.name]=u,s[u.collectionName]=u}),t.draft.dataClasses=a,t.draft.collections=s,t.draft.extraProperties=i,t.model.dataClasses=a,t.model.collections=s,t.model.extraProperties=i})}}),{setModelFlag:DM}=Z_.actions;var X_=(e=>(e.UUID="uuid",e.STRING="string",e.TEXT="text",e.DATE="date",e.TIME="duration",e.BOOLEAN="bool",e.BYTE="byte",e.INTEGER="word",e.LONG="long",e.LONG64="long64",e.FLOAT="number",e.BLOB="blob",e.IMAGE="image",e.OBJECT="object",e))(X_||{}),Go=(e=>(e.STORAGE="storage",e.RELATEDENTITY="relatedEntity",e.RELATEDENTITIES="relatedEntities",e.CALCULATED="calculated",e.COMPOSITION="composition",e.ALIAS="alias",e))(Go||{});const FM=e=>["string","uuid","number","long"].includes(e.type),IM=[{label:"Storage",value:"storage"},{label:"Calculated",value:"calculated"}],MM=[{title:"UUID",kind:"storage",value:"uuid",calculatedType:"uuid",calculatedKind:"storage"},{title:"Long",kind:"storage",value:"long",calculatedType:"long",calculatedKind:"storage"}],LM=[{title:"String",kind:"storage",value:"string",calculatedType:"string",calculatedKind:"storage"},{title:"Text",kind:"storage",value:"text",calculatedType:"text",calculatedKind:"storage"},{title:"UUID",kind:"storage",value:"uuid",calculatedType:"uuid",calculatedKind:"storage"},{title:"Date",kind:"storage",value:"date",calculatedType:"date",calculatedKind:"storage"},{title:"Duration",kind:"storage",value:"duration",calculatedType:"duration",calculatedKind:"storage"},{title:"Bool",kind:"storage",value:"bool",calculatedType:"bool",calculatedKind:"storage"},{title:"Byte",kind:"storage",value:"byte",calculatedType:"byte",calculatedKind:"storage"},{title:"Word",kind:"storage",value:"word",calculatedType:"word",calculatedKind:"storage"},{title:"Number",kind:"storage",value:"number",calculatedType:"number",calculatedKind:"storage"},{title:"Long",kind:"storage",value:"long",calculatedType:"long",calculatedKind:"storage"},{title:"Object",kind:"storage",value:"object",calculatedType:"object",calculatedKind:"storage"},{title:"Image",kind:"storage",value:"image",calculatedType:"image",calculatedKind:"storage"},{title:"Blob",kind:"storage",value:"blob",calculatedType:"blob",calculatedKind:"storage"}],NM=[{label:"Expose as REST",value:"public"},{label:"Do not expose as REST",value:"publicOnServer"}],$M=[{label:"Expose as REST",value:"public"},{label:"Do not expose as REST",value:"publicOnServer"}],kM=[{label:"None",value:"none"},{label:"B-tree",value:"btree"},{label:"Cluster",value:"cluster"},{label:"Automatic",value:"auto"}],qM=(e,t)=>({toJSON:!0,extraProperties:t,dataClasses:e.map(r=>{var a;return{...r.data,extraProperties:{position:{x:r.position.x,y:r.position.y},panelColor:(a=r.data.extraProperties)==null?void 0:a.panelColor}}})});function jM(e,t,r){const a=e;let s=0;for(;r[`${a}${s||""}`];)s++;return`${a}${s||""}`}const eb=e=>e.kind===Go.RELATEDENTITY,tb=e=>e.kind===Go.RELATEDENTITIES,BM=e=>tb(e)||eb(e),WM=()=>dr(e=>e.model),UM=()=>dr(e=>e.model.draft.dataClasses),HM=()=>dr(e=>e.model.draft.collections),GM=e=>dr(t=>t.model.draft.dataClasses[e]),VM=(e,t)=>dr(r=>r.model.draft.dataClasses[e].attributes.find(b.by("name",t))),zM=()=>dr(e=>e.settings.session["model.viewport"]),YM=()=>{const e=dr(s=>s.model.flags),t=s=>s in e?e[s]:void 0,r=t(Ya.DATACLASS_DELETE),a=t(Ya.DATACLASS_DRAGGABLE);return{deleteDataclass:r,draggableDataclass:a,flags:e}},KM=Z_.reducer;function xl(e,t){const r=e.tabs.find(({path:a})=>a===b.SETTINGS_TAB_PATH);r&&(r.flags.touched=t)}const rb={SIDEBAR_SECTION_RESIZABLE:"sidebar.section.resizable"},nb={[rb.SIDEBAR_SECTION_RESIZABLE]:!0},ab=Ft({name:"webforms",initialState:()=>{const{webforms:e}=_n();return{i18n:{current:""},...e,templates:{data:[],selectedGroup:""},datasources:{...cf.webforms.datasources,...e==null?void 0:e.datasources},flags:nb}},reducers:{toggleInspector:(e,t)=>{const{type:r}=t.payload;e.inspector[r].active=!e.inspector[r].active,e.inspector[r].active||(e.inspector[r].data=void 0)},inspect:(e,t)=>{const{type:r,data:a}=t.payload;e.inspector[r].active&&(e.inspector[r].data=a)},addComponent:(e,t)=>{e.components.push(t.payload)},editComponent:(e,t)=>{const{id:r,changes:a}=t.payload;e.components=e.components.map(s=>s.id===r?{...s,...a}:s)},removeComponent:(e,t)=>{const{payload:r}=t,a=e.components.findIndex(s=>s.id===r);a!==-1&&e.components.splice(a,1)},setSelectedGroup:(e,t)=>{e.templates.selectedGroup=t.payload.selectedGroup},setTemplatesData:(e,t)=>{e.templates.data=t.payload},setTemplateData:(e,t)=>{const{group:r,components:a}=t.payload,s=e.templates.data.find(i=>i.group===r);s&&(s.components=a)},setDatasourcesTheme:(e,t)=>{e.datasources.theme=t.payload},setWebformsFlag(e,t){e.flags={...e.flags,...t.payload}},setI18nCurrent(e,t){e.i18n={...e.i18n,current:t.payload.current}}},extraReducers(e){e.addCase(lb.fulfilled,(t,r)=>{t.components=r.payload})}}),{toggleInspector:QM,inspect:JM,addComponent:sb,editComponent:ob,removeComponent:ib,setSelectedGroup:ZM,setTemplatesData:ub,setTemplateData:cb,setDatasourcesTheme:XM,setWebformsFlag:eL,setI18nCurrent:tL}=ab.actions,rL=ab.reducer,Nf=ie.curry((e,t)=>{var s,i,u;const r={...t.sharedDatasources.sources},a=(u=(i=(s=t.root.tabs.find(b.by("path",e)))==null?void 0:s.content)==null?void 0:i.metadata)==null?void 0:u.datasources;return a&&(r[e]=a),ie.cloneDeep(r)}),nL=Y("webforms/fetchTemplates",async(e,{dispatch:t,getState:r})=>{const{data:a}=r().webforms.templates,s=r().settings.session["studio.tipsBaseUrl"]||"";if(!ie.isEmpty(a))return a;try{const u=await(await fetch(`${s}/build/index.json?t=${Date.now()}`)).json();return t(ub(u)),u}catch{return[]}}),aL=Y("webforms/fetchTemplate",async({name:e},{dispatch:t,getState:r})=>{const{data:a}=r().webforms.templates,s=a.find(i=>i.group===e);if(s&&!ie.isEmpty(s.components))return s.components;try{const u=await(await fetch(`${s==null?void 0:s.link}?t=${Date.now()}`)).json();return t(cb({group:e,components:u})),u}catch{return[]}}),lb=Y("webforms/fetchCraftedComponents",async(e,{rejectWithValue:t})=>{try{return(await b.getNodeInfo({path:"WebForms/crafted_components.json",verb:b.DesignerRequestVerb.GET_INFO,content:!0,as:"json"})).content}catch{return t("Error while loading the crafted components")}}),sL=Y("webforms/addCraftedComponent",async(e,{dispatch:t,rejectWithValue:r,getState:a})=>{try{t(sb(e));const{webforms:{components:s}}=a();b.setCraftedComponents(s)}catch{return r("Error while adding the crafted component")}}),oL=Y("webforms/editCraftedComponent",async(e,{dispatch:t,rejectWithValue:r,getState:a})=>{try{t(ob(e));const{webforms:{components:s}}=a();b.setCraftedComponents(s)}catch{return r("Error while editing the crafted component")}}),iL=Y("webforms/removeCraftedComponent",async(e,{dispatch:t,rejectWithValue:r,getState:a})=>{try{t(ib(e));const{webforms:{components:s}}=a();b.setCraftedComponents(s)}catch{return r("Error while removing the crafted component")}}),$f=Y("datasources/add-datasource",async(e,{getState:t,rejectWithValue:r})=>{var a,s;try{const i=t(),u=e.datasource,l=!!u.namespace,f=[];if(l){const d={...i.sharedDatasources.sources,[u.namespace]:[...i.sharedDatasources.sources[u.namespace],u]};f.push(...d[u.namespace]),await b.setSharedSources(d)}else(((s=(a=i.root.tabs.find(b.by("path",e.path)).content)==null?void 0:a.metadata)==null?void 0:s.datasources)||[]).push(u);return{list:f,path:e.path,namespace:e.datasource.namespace}}catch{console.error("Error while adding the datasource",e.datasource.id),r("Error while adding the datasource")}}),kf=Y("datasources/edit-datasource",async(e,{getState:t,rejectWithValue:r})=>{try{const{namespace:a,path:s}=e,i=t(),u=!!e.namespace,l=Nf(s,i);let f=ie.defaultTo(l[a||s],[]);const d=f.find(m=>m.id===e.id&&(m.namespace||"")===(e.namespace||"")),h=e.changes,g=h??{[e.property]:e.value};return f=f.map(m=>m.id===e.id?{...m,...g}:m),u&&await b.setSharedSources({...i.sharedDatasources.sources,[e.namespace]:f}),(ie.isObject(h)?Object.keys(h):[]).includes("dataType")&&e.updateRefs&&b.datasourcesSubject.next({datasource:{id:e.id,namespace:e.namespace},path:s??"",action:b.DatasourcesActions.TYPE_CHANGE,old_type:(d==null?void 0:d.dataType)||"",new_type:g.dataType,is_shared:u}),{list:f,path:e.path,namespace:e.namespace}}catch{r(`Error while editing datasource ${e.id}`)}}),uL=e=>e.type===Un.fulfilled.type,Un=Y("datasources/rename-datasource",async(e,{getState:t,rejectWithValue:r})=>{try{const a=t(),s=!!e.namespace,i=e.namespace||e.path,u=Nf(e.path,a),l=ie.defaultTo(u[i],[]),f=new RegExp(`^${e.id}\\b`,"");if(l.forEach(d=>{var g;const h=(b.isObjectDatasource(d)||!b.isSimpleDatasource(d))&&d.from&&f.test(d.from);e.updateRefs&&((g=d.events)==null||g.forEach(_=>{var m,C,v,S,E;switch(_.type){case"method":{const A=_;A.params.forEach(O=>{O.datasource&&Object.assign(O,{datasource:O.datasource.replace(new RegExp(`^${e.id}`,""),e.new_name)})}),A.returns&&Object.assign(A.returns,{datasource:(C=(m=A.returns)==null?void 0:m.datasource)==null?void 0:C.replace(new RegExp(`^${e.id}`,""),e.new_name)});return}case"simple-action":{const A=_;A.datasource&&Object.assign(A.datasource,{name:(v=A.datasource.name)==null?void 0:v.replace(new RegExp(`^${e.id}`,""),e.new_name),from:(S=A.datasource.from)==null?void 0:S.replace(new RegExp(`^${e.id}`,""),e.new_name),target:(E=A.datasource.target)==null?void 0:E.replace(new RegExp(`^${e.id}`,""),e.new_name)});return}default:return}})),d.id===e.id?d.id=e.new_name:h&&d.from&&(d.from=d.from.replace(new RegExp(`^${e.id}`,""),e.new_name))}),e.updateRefs){const d=b.getDatasourceId({id:e.id,namespace:e.namespace}),h=b.getDatasourceId({id:e.new_name,namespace:e.namespace});b.datasourcesSubject.next({path:e.path??"",action:b.DatasourcesActions.RENAME,old_reference:d,new_reference:h,is_shared:s})}return s&&await b.setSharedSources({...a.sharedDatasources.sources,[e.namespace]:l}),{list:l,path:e.path,namespace:e.namespace}}catch{return r(`Error while renaming datasource ${e.namespace}:${e.id}`)}}),ja=Y("datasources/delete-datasource",async(e,{getState:t,rejectWithValue:r})=>{try{const a=t(),s=!!e.namespace,i=e.namespace||e.path,l=Nf(e.path,a)[i].filter(b.outById(e.id));return s&&await b.setSharedSources({...a.sharedDatasources.sources,[e.namespace]:l}),{list:l,path:e.path,namespace:e.namespace}}catch{return r(`Error while removing datasource ${e.id}`)}}),uo=Y("saved_conditions/fetchSavedConditions",async(e,{rejectWithValue:t})=>{try{const{conditions:r=[]}=await b.getSavedConditions();return r}catch{return t("Error while loading the shared conditions")}}),Vo=(e,t,r)=>{switch(e.type){case"datasource":return{...e,path:e.path===t?r:e.path,value:e.valueType==="datasource"&&e.value===t?r:e.value,compareValue:e.compareValueType==="datasource"&&e.compareValue===t?r:e.compareValue};case"privilege":case"currentState":case"parentState":if(e.valueType==="datasource")return{...e,value:e.value===t?r:e.value};break;case"combination":return{...e,conditions:(e.conditions||[]).map(a=>Vo(a,t,r))}}return e},cL=b.queue();async function Ra(e){const t={verb:b.DesignerRequestVerb.SET_FILE_CONTENT,asText:!1,name:"saved_conditions.json",path:"",root:"shared",content:{conditions:e}};await cL(()=>b.http(b.API_PREFIX,{method:"POST",body:JSON.stringify(t),headers:new Headers({"Content-Type":"application/json"})}))}const zo=(e,t)=>{if(e.id===t)return null;if(e.type==="reference"&&e.ref===t)return null;if(e.type==="combination"&&e.conditions){const r=e.conditions.map(a=>zo(a,t)).filter(Boolean);return r.length===1?{...r[0],id:e.id}:{...e,conditions:r}}return e},Yo=e=>{if(e.id){if(e.type==="combination"&&e.conditions)return{...e,conditions:e.conditions.map(Yo)}}else return{...e,id:Va.generate()};return e},fb=Ft({name:"shared-conditions",initialState:{state:"unknown",conditions:[]},reducers:{updateSavedConditions:(e,t)=>(e.conditions=t.payload.conditions,Ra(t.payload.conditions),e),setSavedCondition:(e,t)=>{const{payload:r}=t;return e.conditions=e.conditions.map(a=>a.id===r.id?{...Yo(r.condition),id:a.id}:a),Ra(e.conditions),e},updateSavedConditionDs:(e,t)=>{const{old_reference:r,new_reference:a}=t.payload;e.conditions=e.conditions.map(s=>Vo(s,r,a)),Ra(e.conditions)},addSavedCondition:(e,t)=>(e.conditions=[...e.conditions,t.payload],Ra(e.conditions),e),removeSavedCondition:(e,t)=>{const{id:r}=t.payload;return e.conditions=e.conditions.map(a=>zo(a,r)).filter(Boolean),Ra(e.conditions),e},initSavedConditions:(e,t)=>(e.conditions=t.payload.conditions,e)},extraReducers(e){e.addCase(uo.pending,t=>({...t,state:"loading"})).addCase(uo.fulfilled,(t,{payload:r})=>({state:"loaded",conditions:r})).addCase(uo.rejected,(t,r)=>({...t,state:"error",error:r.payload||"Error while loading the shared conditions"})),e.addMatcher(Pt(Eb),(t,r)=>{const{state:a,oldLabel:s}=r.payload;t.conditions=t.conditions.map(i=>Vn(i,s,a.label))}),e.addMatcher(Pt(Tb),(t,r)=>{const{payload:a}=r;t.conditions=t.conditions.map(s=>{var i;return Vn(s,(i=a.state)==null?void 0:i.label)})})}}),{updateSavedConditions:lL,setSavedCondition:fL,updateSavedConditionDs:dL,addSavedCondition:pL,removeSavedCondition:db,initSavedConditions:hL}=fb.actions,gL=fb.reducer,Ka=Ft({name:"root",initialState:()=>{const e=_n();return{filesLoading:!1,tabs:e.tabs||[],activeTab:e.activeTab,recent:e.recent||[],clipboard:null}},reducers:{setWebformState(e,t){const{path:r,currentState:a}=t.payload;e.tabs.forEach(s=>{s.path===r&&(s.content.metadata.currentState=a.id)})},copyToClipBoard(e,t){e.clipboard=t.payload},setPanelState(e,t){const{path:r,...a}=t.payload;e.tabs.forEach(s=>{s.path===r&&(s.view||(s.view={panel:{isOpen:!1,type:"",current:""}}),Object.assign(s.view.panel,a))})},addDataSource(e,t){var i;const{payload:{path:r,datasourceDef:a}}=t,s=e.tabs.find(u=>u.path===r);s&&(s.content.metadata.datasources=s.content.metadata.datasources||[],(i=s.content.metadata.datasources)!=null&&i.find(l=>l.id===a.id)||(s.content.metadata.datasources=[...s.content.metadata.datasources,{...a,events:[]}],s.flags={...s.flags,touched:!0,confirmed:!0}))},addWebformState(e,t){var i;const{payload:{path:r,stateDef:a}}=t,s=e.tabs.find(u=>u.path===r);s&&(s.content.metadata.states=s.content.metadata.states||[Yn],(i=s.content.metadata.states)!=null&&i.find(l=>l.id===a.id)||(s.content.metadata.states=[...s.content.metadata.states,a],s.flags={...s.flags,touched:!0,confirmed:!0}))},removeWebformState(e,t){const{payload:r}=t;e.tabs=e.tabs.map(a=>a.path===r.path?{...a,flags:{...a.flags,touched:!0,confirmed:!0},content:um(a.content,r.state)}:a)},editWebformState(e,t){const{path:r,state:a,oldLabel:s}=t.payload;e.tabs=e.tabs.map(i=>i.path===r?{...i,flags:{...i.flags,touched:!0,confirmed:!0},content:{...i.content,metadata:{...i.content.metadata,states:i.content.metadata.states.map(u=>Ef(u)?u:u.id===a.id?a.conditions?{...a,conditions:Yo(a.conditions)}:a:{...u,conditions:u.conditions?Vn(u.conditions,s,a.label):u.conditions})}}}:i)},updateStateConditionDs(e,t){const{path:r,old_reference:a,new_reference:s}=t.payload;e.tabs=e.tabs.map(i=>{var u,l;return i.path===r?{...i,flags:{...i.flags,touched:!0,confirmed:!0},content:{...i.content,metadata:{...i.content.metadata,states:(((l=(u=i.content)==null?void 0:u.metadata)==null?void 0:l.states)||[]).map(f=>f.conditions?{...f,conditions:Vo(f.conditions,a,s)}:f)}}}:i})},resetComponentState(e,t){const{path:r,id:a,state:s,lang:i,resetAll:u}=t.payload;e.tabs=e.tabs.map(l=>l.path===r?{...l,flags:{...l.flags,touched:!0,confirmed:!0},content:{...l.content,components:{...l.content.components,[a]:{...l.content.components[a],custom:{...ie.omit(l.content.components[a].custom,u&&s&&i?[`states:${s.id}`,`i18n:${i}`,`states:${s.id}:i18n:${i}`]:s?i?`states:${s.id}:i18n:${i}`:`states:${s.id}`:i?`i18n:${i}`:"")}}}}}:l)},unsetCustomComponentProp(e,t){const{path:r,id:a,prop:s,state:i,lang:u}=t.payload;e.tabs=e.tabs.map(l=>l.path===r?{...l,flags:{...l.flags,touched:!0,confirmed:!0},content:{...l.content,components:{...l.content.components,[a]:{...l.content.components[a],custom:{...ie.omit(l.content.components[a].custom,i?u?`states:${i.id}:i18n:${u}.${s}`:`states:${i.id}.${s}`:u?`i18n:${u}.${s}`:s)}}}}}:l)},setDefaultWebformStates(e,t){const{path:r,states:a}=t.payload;e.tabs=e.tabs.map(s=>s.path===r?{...s,flags:{...s.flags,touched:!0,confirmed:!0},content:{...s.content,metadata:{...s.content.metadata,defaultStates:a.map(({id:i})=>i)}}}:s)},addDefaultWebformState(e,t){const{payload:r}=t;e.tabs=e.tabs.map(a=>{var s;return a.path===r.path?{...a,flags:{...a.flags,touched:!0,confirmed:!0},content:{...a.content,metadata:{...a.content.metadata,defaultStates:Array.from(new Set([...((s=a.content.metadata)==null?void 0:s.defaultStates)||[],r.state.id]))}}}:a})},removeDefaultWebformState(e,t){const{payload:r}=t;e.tabs=e.tabs.map(a=>{var s;return a.path===r.path?{...a,flags:{...a.flags,touched:!0,confirmed:!0},content:{...a.content,metadata:{...a.content.metadata,defaultStates:(((s=a.content.metadata)==null?void 0:s.defaultStates)||[]).filter(i=>i!==r.state.id)}}}:a})},removeDataSource(e,t){const{path:r,datasourceID:a}=t.payload;e.tabs=e.tabs.map(s=>s.path===r?{...s,flags:{...s.flags,touched:!0,confirmed:!0},content:{...s.content,metadata:{...s.content.metadata,datasources:s.content.metadata.datasources.filter(i=>i.id!==a)}}}:s)},setDataSources(e,t){const{payload:{path:r,datasourceArr:a}}=t;e.tabs=e.tabs.map(s=>{var i;return s.path===r?{...s,flags:{...s.flags,touched:!0,confirmed:!0},content:{...s.content,metadata:{...(i=s.content)==null?void 0:i.metadata,datasources:a}}}:s})},setTabs(e,t){e.tabs=t.payload},closeDebuggerTabs(e){e.tabs=e.tabs.filter(r=>r.type!==b.FileFolderType.DEBUGGER);const t=e.tabs.length?e.tabs[e.tabs.length-1]:null;e.activeTab=t?t.path:"",t?Ar(t):Da()},closeTab(e,t){const r=t.payload;e.tabs.splice(r,1);const a=e.tabs.reduce((s,i)=>(i==null?void 0:i.weight)>((s==null?void 0:s.weight)||0)?i:s,null);a?(e.activeTab=a.path,Ar(a)):(e.activeTab="",Da())},closeOthers(e,t){e.tabs=e.tabs.filter(r=>r.path===t.payload),e.activeTab=t.payload,Ar(e.tabs[0])},closeAllTabs(e){e.tabs=[],e.activeTab="",Da()},closeRightTabs(e,t){e.tabs.splice(t.payload+1),e.activeTab=e.tabs[t.payload].path,Ar(e.tabs[t.payload])},closeLeftTabs(e,t){e.tabs.splice(0,t.payload),e.activeTab=e.tabs[t.payload].path,Ar(e.tabs[t.payload])},closeSavedTabs(e){e.tabs=e.tabs.filter(({flags:{touched:r}})=>r);const t=e.tabs.reduce((r,a)=>(a==null?void 0:a.weight)>((r==null?void 0:r.weight)||0)?a:r,null);t?(e.activeTab=t.path,Ar(t)):(e.activeTab="",Da())},confirmTab(e,t){const r=e.tabs.find(({path:a})=>a===t.payload);r&&(r.flags.confirmed||Ka.caseReducers.setTabFlags(e,{type:t.type,payload:{path:t.payload,flags:{confirmed:!0}}}))},selectTab(e,t){const r=e.tabs.find(({path:s})=>s===t.payload);if(!r||e.activeTab===t.payload)return;const a=e.tabs.reduce((s,i)=>(i==null?void 0:i.weight)>((s==null?void 0:s.weight)||0)?i:s,null);r.weight=a?(a.weight||0)+1:1,e.activeTab=t.payload},openTabUnselected(e,t){const r=t.payload;let a=e.tabs.find(({path:i})=>r.path===i);a||(e.tabs.push(r),a=e.tabs[e.tabs.length-1]);const s=e.tabs.reduce((i,u)=>(u==null?void 0:u.weight)>((i==null?void 0:i.weight)||0)?u:i,null);a.weight=s?(s.weight||0)+1:1,a.extra={...a.extra,...r.extra}},selectTabByReference(e,t){const r=[b.FileFolderType.DEBUGGER],{isNew:a,...s}=t.payload;let i=s,u=e.tabs.find(({path:l})=>i.path===l);if(i.history||(i.history={stack:[],active:-1,locked:!1}),(r.includes(i.type)||u!=null&&u.flags.confirmed)&&(i={...i,flags:{...i.flags,confirmed:!0}}),!u){const l=e.tabs.findIndex(({flags:{confirmed:f}})=>f===!1);l!==-1&&!r.includes(i.type)&&!a?e.activeTab===e.tabs[l].path?(e.tabs[l]=i,u=e.tabs[l]):(e.tabs.push(i),u=e.tabs[e.tabs.length-1],e.tabs.splice(l,1)):(e.tabs.push(i),u=e.tabs[e.tabs.length-1])}if(e.activeTab!==i.path){const l=e.tabs.reduce((f,d)=>(d==null?void 0:d.weight)>((f==null?void 0:f.weight)||0)?d:f,null);e.activeTab=i.path,u.weight=((l==null?void 0:l.weight)||0)+1}u.extra={...u.extra,...i.extra},u.view={...u.view,...i.view},u.flags={...u.flags||{},...i.flags||{}}},setContent(e,t){const{path:r,content:a,contentPath:s,date:i}=t.payload;e.tabs=e.tabs.map(u=>{var d,h;if(u.path!==r)return u;let l=!1,f=u.flags.confirmed;if(((h=(d=u.extra)==null?void 0:d.editor)==null?void 0:h.key)!=="editors:localization")if(typeof a=="string")l=u.initialContent!==a,f=!f&&l?!0:f;else{const g=ie.get(u.initialContent,s||"",u.initialContent),_=ie.get(a,s||"",a);l=!ie.isEqual(g,_),f=!f&&l?!0:f}return a&&typeof a=="object"&&(s?ie.set(u.content,s,a):u.content=a),typeof a=="string"&&(u.content=a),i&&(u.date=i),{...u,flags:{...u.flags,touched:l,confirmed:f}}})},setTabFlags(e,t){const{path:r,flags:a}=t.payload;e.tabs=e.tabs.map(s=>s.path===r?{...s,flags:{...s.flags,...a}}:s)},setTabsFlags(e,t){const{tabs:r,flags:a}=t.payload;e.tabs=e.tabs.map(s=>r.includes(s.path)?{...s,flags:{...s.flags,...a}}:s)},setTabExtra(e,t){const{path:r,extra:a,flags:s}=t.payload;e.tabs=e.tabs.map(i=>i.path===r?{...i,extra:{...i.extra,...a},flags:s?{...i.flags,...s}:i.flags}:i)},addWebFormStyles(e,t){const{path:r,styles:a=[]}=t.payload,s=e.tabs.find(i=>i.path===r);if(s){const i=s.content.metadata.styles.map(({name:l})=>l),u=a.filter(({name:l})=>!i.includes(l));s.content.metadata.styles=[...s.content.metadata.styles,...u].map(({scope:l,...f})=>f)}},changeTabEditor(e,t){return e.tabs=e.tabs.map(r=>r.path===t.payload.path?t.payload:r),e},setHistoryContent(e,t){const r=t.payload;e.tabs=e.tabs.map(a=>{var i,u;if(a.path!==r)return a;const s=!ie.isEqual(a.content,(i=a.history)==null?void 0:i.stack[a.history.active]);return a.history&&s&&(a.history.stack=[...(u=a.history)==null?void 0:u.stack.slice(0,a.history.active+1),a.content],a.history.active=a.history.stack.length-1),{...a}})},unlockHistory(e,t){const r=t.payload;e.tabs=e.tabs.map(a=>a.path!==r?a:(a.history&&(a.history.locked=!1),{...a}))},undo(e){e.tabs=e.tabs.map(t=>t.path!==e.activeTab?t:(t.history&&t.history.active>0&&(t.history.locked=!0,t.history.active--,t.content=t.history.stack[t.history.active]),{...t}))},redo(e){e.tabs=e.tabs.map(t=>t.path!==e.activeTab?t:(t.history&&t.history.active<t.history.stack.length-1&&(t.history.locked=!0,t.history.active++,t.content=t.history.stack[t.history.active]),{...t}))}},extraReducers:e=>{e.addCase(Hl,(t,r)=>{if(r.payload.settingsKey==="studio.enablePreview"&&r.payload.value===!1){const a=t.tabs.find(({flags:{confirmed:s}})=>s===!1);a&&Ka.caseReducers.setTabFlags(t,{type:"",payload:{path:a.path,flags:{confirmed:!0}}})}}),e.addCase(W_.fulfilled,(t,r)=>{if(!r.payload)return;const{content:a,line:s,path:i}=r.payload,u=t.tabs.find(l=>l.path===i);if(u&&typeof u.content=="string"){const l=u.content.trim().split(`
170
170
  `);l.splice(s,0,a),u.content=l.join(`
171
171
  `)}}),e.addCase(Wn.pending,(t,r)=>{const{tab:a}=r.meta.arg;switch(a.type){case b.FileFolderType.CLASS:case b.FileFolderType.METHOD:b.lspSubject.next({action:b.LspActions.WILL_SAVE,payload:{filePath:a.path}});break}}),e.addCase(Wn.fulfilled,(t,r)=>{if(!r.payload)return;const a=t.tabs.find(({path:s})=>{var i;return s===((i=r.payload)==null?void 0:i.path)});if(a){switch(a.content=r.payload.content,a.date=r.payload.date,a.initialContent=r.payload.initialContent,a.flags.touched=!1,a.flags.confirmed=!0,a.flags.old=!1,a.type){case b.FileFolderType.CLASS:case b.FileFolderType.METHOD:b.lspSubject.next({action:b.LspActions.DID_SAVE,payload:{filePath:a.path,content:a.content}});break;case b.FileFolderType.HTTP_HANDLERS:b.toastSubject.next({kind:"info",message:"Restart WEB server to have modifications taken into account"});break}r.payload.errors.length>0&&b.toastSubject.next({kind:"error",message:r.payload.errors})}}),e.addCase(Wn.rejected,()=>{b.toastSubject.next({kind:"danger",message:"Cannot save file"})}),e.addCase(G_.fulfilled,(t,r)=>{const a=[...r.payload.files];t.tabs=t.tabs.map(s=>{if([b.FileFolderType.CLASS,b.FileFolderType.METHOD].includes(s.type)){const i=a.find(u=>u.name===s.name&&u.type===s.type);if(i){const u=new Date(s.date),l=new Date(i.date);if(u.getTime()!==l.getTime())return{...s,flags:{...s.flags,old:!0}}}}return s})}),e.addCase(io.pending,(t,r)=>{t.tabs=t.tabs.map(a=>a.path===r.meta.arg.path?{...a,flags:{...a.flags,loading:!0}}:a)}),e.addCase(io.fulfilled,(t,r)=>{const a=r.payload;if(a){const s=r.meta.arg;t.tabs=t.tabs.map(i=>{if(i.name===s.name&&i.type===s.type){const u=i.extra||{};return i.type===b.FileFolderType.METHOD?(u.attributes=b.parseAttributes(a.content),a.content=b.addAttributesToContent(a.content,{})):i.type===b.FileFolderType.SETTINGS&&(a.content={}),{...i,initialContent:a.content,content:a.content,date:a.date,flags:{enabled:i.flags.enabled,confirmed:i.flags.confirmed},extra:u}}return i})}}),e.addCase(io.rejected,(t,r)=>{const a=r.meta.arg.path;t.tabs=t.tabs.map(s=>s.path===a?{...s,flags:{...s.flags,loading:!1}}:s)}),e.addCase(Ff.fulfilled,(t,r)=>{if(!r.payload)return;const{line:a,offset:s}=r.meta.arg,i=t.tabs.find(({path:u})=>{var l;return u===((l=r.payload)==null?void 0:l.path)});i&&(i.extra={...i.extra,initialLineInfo:{line:a,offset:s,lastModification:Date.now()}})}),e.addCase(U_.fulfilled,(t,r)=>{if(!r.payload)return;const{selection:a}=r.meta.arg,s=t.tabs.find(({path:i})=>{var u;return i===((u=r.payload)==null?void 0:u.path)});s&&(s.extra={...s.extra,initialSelectionInfo:{selection:a,lastModification:Date.now()}})}),e.addCase(Bn.fulfilled,(t,r)=>{r.payload.new!==r.payload.old&&(t.tabs=[...t.tabs].map(a=>a.path===r.payload.old.path?{...a,path:r.payload.new.path,name:r.payload.new.name}:a),t.activeTab===r.payload.old.path&&(t.activeTab=r.payload.new.path))}),e.addCase(Yl.pending,(t,r)=>{const a=r.meta.arg,s=`${a.path}${a.ext?`.${a.ext}`:""}`;switch(a.ext){case"4dm":case"4qs":b.lspSubject.next({action:b.LspActions.WILL_DELETE,payload:{filePath:s}});break}}),e.addCase(Yl.fulfilled,(t,r)=>{const{deleted:a,node:s}=r.payload;if(!a)return;const i=`${s.path}${s.ext?`.${s.ext}`:""}`;switch(s.ext){case"4dm":case"4qs":b.lspSubject.next({action:b.LspActions.DID_DELETE,payload:{filePath:i}});break}if(t.tabs=t.tabs.filter(u=>u.path!==i),t.recent=t.recent.filter(({path:u})=>i!==u),t.tabs.length){t.activeTab=t.tabs[t.tabs.length-1].path;return}t.activeTab=""}),e.addCase(Kl.pending,(t,r)=>{const a=r.meta.arg,s=`${a.path}${a.ext?`.${a.ext}`:""}`;switch(a.ext){case"4dm":case"4qs":b.lspSubject.next({action:b.LspActions.WILL_DELETE,payload:{filePath:s}});break}}),e.addCase(Kl.fulfilled,(t,r)=>{const{node:a}=r.payload,s=`${a.path}${a.ext?`.${a.ext}`:""}`;switch(a.ext){case"4dm":case"4qs":b.lspSubject.next({action:b.LspActions.DID_DELETE,payload:{filePath:s}});break}}),e.addCase(qa.fulfilled,(t,r)=>{const{draggedNode:a,newLocation:s}=r.meta.arg;if(t.tabs.find(i=>i.path===`${a.path}${a.ext?`.${a.ext}`:""}`))return t.tabs=t.tabs.map(i=>i.path===`${a.path}${a.ext?`.${a.ext}`:""}`?{...i,path:`${s.path}/${a.name}.${a.ext}`}:i),t.recent=t.recent.map(i=>i.path===`${a.path}${a.ext?`.${a.ext}`:""}`?{...i,path:`${s.path}/${a.name}.${a.ext}`}:i),t.activeTab=`${s.path}/${a.name}.${a.ext}`,t}),e.addCase(Co.fulfilled,(t,r)=>{const a=t.tabs.find(s=>s.path===r.payload.path);a&&(a.flags.touched=!1,a.flags.confirmed=!0,a.date=r.payload.date,a.content=r.payload.content,a.initialContent=r.payload.content)}),e.addCase(z_.fulfilled,(t,r)=>{var i;if(!((i=r.payload)!=null&&i.path))return;const a=t.tabs.find(b.by("path",r.payload.path));if(!a)return;a.content=a.content+`