@ws-ui/store 0.2.22 → 0.2.24

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
@@ -42,7 +42,7 @@ globstar while`,r,m,t,_,S),this.matchOne(r.slice(m),t.slice(_),a))return this.de
42
42
  `:`Class extends Entity
43
43
  `}),model:({name:e,qodly:r})=>({name:e,content:r?`extends DataStoreImplementation
44
44
  `:`Class extends DataStoreImplementation
45
- `}),app:({name:e})=>({name:e,content:`shared singleton Class constructor()
45
+ `}),app:({name:e})=>({name:e,content:`shared singleton constructor()
46
46
 
47
47
  shared function onStartup()
48
48
 
@@ -99,7 +99,7 @@ Valid keys: `+JSON.stringify(Object.keys(H),null," "));var M=J(ue,ge,se,fe,ne+"
99
99
  The error may be correlated with this previous error:
100
100
  `+l.current.stack+`
101
101
 
102
- `),T}return du(function(){d.current=e,p.current=m,h.current=_,l.current=void 0}),du(function(){function T(){try{var w=t.getState();if(w===p.current)return;var D=d.current(w);if(r(D,h.current))return;h.current=D,p.current=w}catch(P){l.current=P}i()}return u.onStateChange=T,u.trySubscribe(),T(),function(){return u.tryUnsubscribe()}},[t,u]),_}function IR(e){e===void 0&&(e=Lr);var r=e===Lr?dg:function(){return pt.useContext(e)};return function(a,s){if(s===void 0&&(s=DR),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=r(),u=i.store,l=i.subscription,d=FR(a,s,u,l);return pt.useDebugValue(d),d}}var $R=IR();yR(sT.unstable_batchedUpdates);const MR=()=>PR(),Sr=$R,ks=B(e=>e,e=>e.catalog.state==="loaded"?e.catalog.model:null),LR=B(e=>e,({catalog:e})=>e.state),hg=B(ks,e=>e?e.dataClasses:[]),NR=B(ks,e=>e?e.singletons:[]),kR=B(hg,e=>Object.values(e).filter(({virtual:r})=>r)),jR=B(ks,e=>e?e.methods:[]),gg=e=>B(r=>r,r=>{switch(r.catalog.state){case"loaded":const t=e?r.catalog.model.dataClasses[e]:r.catalog.model;return(t==null?void 0:t.methods)||[];default:return[]}}),BR=e=>Sr(gg(e),fg),WR=(e,r)=>B(gg(e),t=>t.find(a=>`${a.applyTo}.${a.name}`===r)),UR=(e,r,t)=>Sr(WR(e,`${t}.${r}`),fg),vg=B(e=>e,e=>e),HR=e=>B(Nr,r=>{var s;const t=r.tabs.find(({path:i})=>i===e),a=t==null?void 0:t.content.components;return!t||!a?[]:(s=Object.keys(a))==null?void 0:s.map(i=>({id:i,...a[i]}))}),mg=e=>B(Nr,r=>{var a,s;const t=r.tabs.find(({path:i})=>i===e);return((s=(a=t==null?void 0:t.content)==null?void 0:a.metadata)==null?void 0:s.datasources)||[]}),GR=(e,r,t)=>B(vg,a=>{var s,i;if(r){const u=a.sharedDatasources.sources[r];return u?u.find(l=>l.id===e):void 0}else{const u=a.root.tabs.find(d=>d.path===t);return u?(i=(s=u.content.metadata)==null?void 0:s.datasources)==null?void 0:i.find(d=>d.id===e):void 0}}),yg=B(e=>e,e=>{var r;return((r=e.sharedDatasources)==null?void 0:r.sources)||[]}),qR=(e,r,t,a)=>B(mg(e),yg,(s,i)=>{const u=Ae.flatten(Ae.values(i)),l=[...r!=="private"?s:[],...r!=="shared"?u:[]];return t?l.filter(d=>(!a||a.every(({id:p,namespace:h=""})=>d.id!==p||(d.namespace||"")!==h))&&(t.includes(d.type)||d.dataType&&(t.includes(d.dataType)||t.includes("objectFromArray")&&d.dataType==="object"&&d.from))):l}),YR=B(e=>e.debugger,e=>e.meta),xn=B(e=>e.debugger,e=>e.list),Ft=B(e=>e.debugger,e=>e.sessions),VR=B(Ft,e=>e.length),wn=(e,r,t,a)=>e.find(s=>s.filePath===r&&s.methodName===t&&(!a||s.className===a)),st=(e,r)=>e.find(t=>t.threadId===r),bg=(e,r)=>e.find(t=>t.tabPath===r),zR=(e,r)=>B(xn,t=>{var a;return((a=wn(t,e,r))==null?void 0:a.breakpoints.saved.locations)||[]}),KR=(e,r)=>B(xn,t=>{var a;return((a=wn(t,e,r))==null?void 0:a.breakpoints.draft.locations)||[]}),JR=e=>B(xn,r=>r.filter(t=>t.filePath===e).reduce((t,a)=>[...t,...a.breakpoints.saved.locations.map(s=>({...s,line:s.line+(a.breakpoints.saved.offset||0)}))],[]).sort((t,a)=>t.line-a.line)),XR=e=>B(xn,r=>r.filter(t=>t.filePath===e).reduce((t,a)=>[...t,...a.breakpoints.draft.locations.map(s=>({...s,line:s.line+(a.breakpoints.draft.offset||0)}))],[]).sort((t,a)=>t.line-a.line)),ZR=e=>B(Ft,r=>{const t=st(r,e);return t!=null&&t.stopped?t.highlightedLines:null}),QR=e=>B(Ft,r=>{const t=st(r,e);return t!=null&&t.stopped?t.activeLine:null}),eA=e=>B(Ft,r=>{var t;return((t=st(r,e))==null?void 0:t.expressions)||[]}),tA=e=>B(Ft,r=>{var t;return((t=st(r,e))==null?void 0:t.stopped)||!1}),rA=(e,r)=>B(xn,t=>{var a;return(a=wn(t,e,r))==null?void 0:a.source}),nA=e=>B(Ft,r=>{var t;return((t=bg(r,e))==null?void 0:t.threadId)||-1}),aA=e=>B(Ft,r=>{var t,a;return(a=(t=st(r,e))==null?void 0:t.currentStackFrame)==null?void 0:a.source}),oA=e=>B(Ft,r=>{var t;return(t=st(r,e))==null?void 0:t.currentStackFrame}),sA=B(Ft,e=>e.map(({channelId:r,threadId:t})=>({id:r,threadId:t}))),iA=e=>B(Ft,r=>{var t;return((t=st(r,e))==null?void 0:t.stackFrames)||[]}),cA=e=>B(Ft,r=>{var t,a;return((a=(t=st(r,e))==null?void 0:t.variables)==null?void 0:a.callchain)||[]}),uA=e=>B(Ft,r=>{var t,a;return((a=(t=st(r,e))==null?void 0:t.variables)==null?void 0:a.expressions)||[]}),lA=(e,r="saved")=>B(xn,t=>{const a=t.find(s=>s.filePath===e);return(a==null?void 0:a.breakpoints[r].offset)||0}),fA=(e,r,t,a)=>B(Ft,s=>{var p;const i=((p=st(s,e))==null?void 0:p.exceptions)||[],u=r===v.FileFolderType.CLASS,l=u&&a?`${a}.${t}`:t;return(l?i.filter(h=>h.location===l):i).map(h=>({...h,locationLine:u?h.locationLine:h.locationLine+1}))}),Nr=B(e=>e.root,e=>e),aa=B(Nr,e=>e.tabs),dA=B(Nr,e=>e.activeTab),pA=B(Nr,e=>e.recent.filter(({type:r})=>r!==v.FileFolderType.DEBUGGER)),_g=B(Nr,({tabs:e,activeTab:r})=>e.find(({path:t})=>t===r)),hA=B(Nr,({tabs:e})=>e.reduce((t,a)=>(a==null?void 0:a.weight)>((t==null?void 0:t.weight)||0)?a:t,null)),gA=B(aa,e=>e.filter(({type:r,flags:t})=>r===v.FileFolderType.WEBFORM&&t.enabled===!1).map(({path:r})=>r)),vA=B(aa,e=>e.length>0),kr=e=>B(Nr,r=>r.tabs.find(({path:t})=>t===e)),Sg=(e,r="")=>B(kr(e),t=>!t||!t.content||typeof t.content=="string"?t==null?void 0:t.content:Ae.get(t.content,r)),mA=e=>B(kr(e),r=>r==null?void 0:r.extra),yA=(e,r=t=>t)=>B(Sg(e,"components"),t=>r(t||{})),Uu=B(aa,e=>e.filter(r=>r.flags.touched)),bA=B(Uu,e=>e.length),_A=B(Ft,e=>e.map(({threadId:r,currentStackFrame:{source:t},tabPath:a})=>({name:$h(r,t),path:a,type:v.FileFolderType.DEBUGGER,content:t==null?void 0:t.content,flags:{},extra:{source:t}}))),SA=B(e=>e,e=>e.explorer||[]),Eg=B(e=>e,e=>e.explorer.find(r=>r.path===v.FolderRootPath.WEBFORMS)),Tg=B(e=>e,e=>e.explorer.find(r=>r.path===v.FolderRootPath.METHODS)),wg=B(e=>e,e=>e.explorer.find(r=>r.path===v.FolderRootPath.CLASSES)),EA=B(Tg,e=>(e==null?void 0:e.children)||[]),TA=B(Eg,e=>(e==null?void 0:e.children)||[]),wA=B(wg,e=>(e==null?void 0:e.children)||[]),CA=B(e=>e.modals,e=>e.list),xA=B(e=>e.roles,e=>qs(e)),OA=B(e=>e.roles,({roles:e})=>e),RA=B(e=>e.roles,({privileges:e})=>e),AA=B(e=>e.roles,({privileges:e})=>Object.values(e).find(({privilege:r})=>r==="guest")),PA=B(e=>e.roles,({flags:e})=>e),DA=B(e=>e.roles,({selectedTab:e})=>e),FA=B(e=>e.roles,({forceLogin:e})=>e),IA=B(e=>e.roles,({date:e})=>e),oa=B(e=>e.settings,e=>e.session),$A=(...e)=>B(oa,r=>e.length>0?Ae.pick(r,e):r),MA=e=>B(oa,r=>r[e]),LA=e=>B(oa,r=>["states"].includes(e)?!0:!!r[`features.experimental.${e}`]),Cg=B(e=>e.settings,e=>e.project),NA=B(e=>e.settings,e=>e),Hu=B(e=>e.settings,e=>e.server),kA=B(Hu,e=>e.remoteDebuggerMode),jA=B(Hu,e=>e.qodly),BA=B(oa,e=>e["monaco.zoom"]),WA=B(Cg,e=>e["webforms.i18n"]),UA=B(oa,e=>e["webforms.i18n.current"]),xg=["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"],Og=xg.map(e=>({id:Au(),content:"",name:e,parentId:null,scope:v.EWebFormStyleClassScope.THEME})),Gu=e=>B(kr(e),r=>{var t,a;return((a=(t=r==null?void 0:r.content)==null?void 0:t.metadata)==null?void 0:a.styles)||[]}),HA=(e,r)=>B(Gu(e),t=>r.map(a=>{switch(!0){case a===v.EWebFormStyleClassScope.LOCAL:return t.map(s=>({...s,scope:v.EWebFormStyleClassScope.LOCAL}));case a===v.EWebFormStyleClassScope.THEME:return Og;default:return[]}}).flat()),GA=e=>B(Gu(e),r=>[...r.map(t=>({...t,scope:v.EWebFormStyleClassScope.LOCAL})),...Og]),qA=B(e=>e,e=>{var r;return[...(((r=e.sharedCSS)==null?void 0:r.styles)||[]).map(t=>({...t,scope:v.EWebFormStyleClassScope.SHARED}))]}),YA=e=>B(kr(e),r=>r==null?void 0:r.flags),VA=e=>B(kr(e),r=>r==null?void 0:r.history),zA=B(_g,e=>{const r=e!=null&&e.history?e.history.active>0:!1,t=e!=null&&e.history?e.history.active<e.history.stack.length-1:!1;return{canUndo:r,canRedo:t}}),qa=B(e=>e.webforms,e=>e),Rg=B(qa,e=>(e==null?void 0:e.components)||[]),js=B(qa,e=>e.inspector),KA=B(js,e=>e.css),JA=B(js,e=>e.datasource),Ag=B(qa,e=>e.templates||{data:[]}),XA=B(Ag,e=>e.data||[]),ZA=e=>B(Rg,r=>r.find(t=>t.id===e)),QA=e=>B(js,r=>r[e]),eP=B(qa,e=>e.datasources.theme),tP=B(e=>e.root,e=>e.clipboard),rP=B(e=>e.catalog,e=>e.sharedDatasources,e=>e.sharedCSS,(e,r,t)=>[e.state,r.state,t.state].every(a=>["loaded","error"].includes(a))),Xn={label:"Base",id:"root"},Pg=e=>!e.find(r=>Ae.isEqual(r,Xn)),Dg=(e,r=[])=>B(kr(e),t=>{var i,u;let s=((u=(i=t==null?void 0:t.content)==null?void 0:i.metadata)==null?void 0:u.states)||[Xn];return Pg(s)&&(s=[Xn,...s]),s.filter(({id:l})=>!r.includes(l))}),nP=(e,r=[])=>B(Dg(e,r),t=>t.map(({label:a})=>a)),aP=e=>B(kr(e),r=>{var t,a;return((a=(t=r==null?void 0:r.content)==null?void 0:t.metadata)==null?void 0:a.defaultStates)||[]}),oP=e=>B(kr(e),r=>{var a,s,i,u;const{currentState:t}=((a=r==null?void 0:r.content)==null?void 0:a.metadata)||{};return((u=(i=(s=r==null?void 0:r.content)==null?void 0:s.metadata)==null?void 0:i.states)==null?void 0:u.find(l=>l.id===t))||Xn}),sP=B(e=>e,e=>{var r;return((r=e.savedConditions)==null?void 0:r.conditions)||[]});var qu=(e=>(e.SHOW_AFTER_TIMEOUT="show_after_timeout",e.HIDE_AFTER_TIMEOUT="hide_after_timeout",e))(qu||{}),Yu=(e=>(e.NONE="none",e.SAVE_ALL_AND_PROCEED="saved_all_and_proceed",e.PROCEED="proceed",e))(Yu||{}),Vu=(e=>(e.AIRY="airy",e.COMPACT="neutral",e))(Vu||{}),zo,iP=new Uint8Array(16);function Fg(){if(!zo&&(zo=typeof crypto<"u"&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)||typeof msCrypto<"u"&&typeof msCrypto.getRandomValues=="function"&&msCrypto.getRandomValues.bind(msCrypto),!zo))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return zo(iP)}const cP=/^(?:[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;function Bs(e){return typeof e=="string"&&cP.test(e)}var mt=[];for(var kc=0;kc<256;++kc)mt.push((kc+256).toString(16).substr(1));function Ws(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,t=(mt[e[r+0]]+mt[e[r+1]]+mt[e[r+2]]+mt[e[r+3]]+"-"+mt[e[r+4]]+mt[e[r+5]]+"-"+mt[e[r+6]]+mt[e[r+7]]+"-"+mt[e[r+8]]+mt[e[r+9]]+"-"+mt[e[r+10]]+mt[e[r+11]]+mt[e[r+12]]+mt[e[r+13]]+mt[e[r+14]]+mt[e[r+15]]).toLowerCase();if(!Bs(t))throw TypeError("Stringified UUID is invalid");return t}var Up,jc,Bc=0,Wc=0;function uP(e,r,t){var a=r&&t||0,s=r||new Array(16);e=e||{};var i=e.node||Up,u=e.clockseq!==void 0?e.clockseq:jc;if(i==null||u==null){var l=e.random||(e.rng||Fg)();i==null&&(i=Up=[l[0]|1,l[1],l[2],l[3],l[4],l[5]]),u==null&&(u=jc=(l[6]<<8|l[7])&16383)}var d=e.msecs!==void 0?e.msecs:Date.now(),p=e.nsecs!==void 0?e.nsecs:Wc+1,h=d-Bc+(p-Wc)/1e4;if(h<0&&e.clockseq===void 0&&(u=u+1&16383),(h<0||d>Bc)&&e.nsecs===void 0&&(p=0),p>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");Bc=d,Wc=p,jc=u,d+=122192928e5;var m=((d&268435455)*1e4+p)%4294967296;s[a++]=m>>>24&255,s[a++]=m>>>16&255,s[a++]=m>>>8&255,s[a++]=m&255;var _=d/4294967296*1e4&268435455;s[a++]=_>>>8&255,s[a++]=_&255,s[a++]=_>>>24&15|16,s[a++]=_>>>16&255,s[a++]=u>>>8|128,s[a++]=u&255;for(var S=0;S<6;++S)s[a+S]=i[S];return r||Ws(s)}function Ig(e){if(!Bs(e))throw TypeError("Invalid UUID");var r,t=new Uint8Array(16);return t[0]=(r=parseInt(e.slice(0,8),16))>>>24,t[1]=r>>>16&255,t[2]=r>>>8&255,t[3]=r&255,t[4]=(r=parseInt(e.slice(9,13),16))>>>8,t[5]=r&255,t[6]=(r=parseInt(e.slice(14,18),16))>>>8,t[7]=r&255,t[8]=(r=parseInt(e.slice(19,23),16))>>>8,t[9]=r&255,t[10]=(r=parseInt(e.slice(24,36),16))/1099511627776&255,t[11]=r/4294967296&255,t[12]=r>>>24&255,t[13]=r>>>16&255,t[14]=r>>>8&255,t[15]=r&255,t}function lP(e){e=unescape(encodeURIComponent(e));for(var r=[],t=0;t<e.length;++t)r.push(e.charCodeAt(t));return r}var fP="6ba7b810-9dad-11d1-80b4-00c04fd430c8",dP="6ba7b811-9dad-11d1-80b4-00c04fd430c8";function $g(e,r,t){function a(s,i,u,l){if(typeof s=="string"&&(s=lP(s)),typeof i=="string"&&(i=Ig(i)),i.length!==16)throw TypeError("Namespace must be array-like (16 iterable integer values, 0-255)");var d=new Uint8Array(16+s.length);if(d.set(i),d.set(s,i.length),d=t(d),d[6]=d[6]&15|r,d[8]=d[8]&63|128,u){l=l||0;for(var p=0;p<16;++p)u[l+p]=d[p];return u}return Ws(d)}try{a.name=e}catch{}return a.DNS=fP,a.URL=dP,a}function pP(e){if(typeof e=="string"){var r=unescape(encodeURIComponent(e));e=new Uint8Array(r.length);for(var t=0;t<r.length;++t)e[t]=r.charCodeAt(t)}return hP(gP(vP(e),e.length*8))}function hP(e){for(var r=[],t=e.length*32,a="0123456789abcdef",s=0;s<t;s+=8){var i=e[s>>5]>>>s%32&255,u=parseInt(a.charAt(i>>>4&15)+a.charAt(i&15),16);r.push(u)}return r}function Mg(e){return(e+64>>>9<<4)+14+1}function gP(e,r){e[r>>5]|=128<<r%32,e[Mg(r)-1]=r;for(var t=1732584193,a=-271733879,s=-1732584194,i=271733878,u=0;u<e.length;u+=16){var l=t,d=a,p=s,h=i;t=St(t,a,s,i,e[u],7,-680876936),i=St(i,t,a,s,e[u+1],12,-389564586),s=St(s,i,t,a,e[u+2],17,606105819),a=St(a,s,i,t,e[u+3],22,-1044525330),t=St(t,a,s,i,e[u+4],7,-176418897),i=St(i,t,a,s,e[u+5],12,1200080426),s=St(s,i,t,a,e[u+6],17,-1473231341),a=St(a,s,i,t,e[u+7],22,-45705983),t=St(t,a,s,i,e[u+8],7,1770035416),i=St(i,t,a,s,e[u+9],12,-1958414417),s=St(s,i,t,a,e[u+10],17,-42063),a=St(a,s,i,t,e[u+11],22,-1990404162),t=St(t,a,s,i,e[u+12],7,1804603682),i=St(i,t,a,s,e[u+13],12,-40341101),s=St(s,i,t,a,e[u+14],17,-1502002290),a=St(a,s,i,t,e[u+15],22,1236535329),t=Et(t,a,s,i,e[u+1],5,-165796510),i=Et(i,t,a,s,e[u+6],9,-1069501632),s=Et(s,i,t,a,e[u+11],14,643717713),a=Et(a,s,i,t,e[u],20,-373897302),t=Et(t,a,s,i,e[u+5],5,-701558691),i=Et(i,t,a,s,e[u+10],9,38016083),s=Et(s,i,t,a,e[u+15],14,-660478335),a=Et(a,s,i,t,e[u+4],20,-405537848),t=Et(t,a,s,i,e[u+9],5,568446438),i=Et(i,t,a,s,e[u+14],9,-1019803690),s=Et(s,i,t,a,e[u+3],14,-187363961),a=Et(a,s,i,t,e[u+8],20,1163531501),t=Et(t,a,s,i,e[u+13],5,-1444681467),i=Et(i,t,a,s,e[u+2],9,-51403784),s=Et(s,i,t,a,e[u+7],14,1735328473),a=Et(a,s,i,t,e[u+12],20,-1926607734),t=Tt(t,a,s,i,e[u+5],4,-378558),i=Tt(i,t,a,s,e[u+8],11,-2022574463),s=Tt(s,i,t,a,e[u+11],16,1839030562),a=Tt(a,s,i,t,e[u+14],23,-35309556),t=Tt(t,a,s,i,e[u+1],4,-1530992060),i=Tt(i,t,a,s,e[u+4],11,1272893353),s=Tt(s,i,t,a,e[u+7],16,-155497632),a=Tt(a,s,i,t,e[u+10],23,-1094730640),t=Tt(t,a,s,i,e[u+13],4,681279174),i=Tt(i,t,a,s,e[u],11,-358537222),s=Tt(s,i,t,a,e[u+3],16,-722521979),a=Tt(a,s,i,t,e[u+6],23,76029189),t=Tt(t,a,s,i,e[u+9],4,-640364487),i=Tt(i,t,a,s,e[u+12],11,-421815835),s=Tt(s,i,t,a,e[u+15],16,530742520),a=Tt(a,s,i,t,e[u+2],23,-995338651),t=wt(t,a,s,i,e[u],6,-198630844),i=wt(i,t,a,s,e[u+7],10,1126891415),s=wt(s,i,t,a,e[u+14],15,-1416354905),a=wt(a,s,i,t,e[u+5],21,-57434055),t=wt(t,a,s,i,e[u+12],6,1700485571),i=wt(i,t,a,s,e[u+3],10,-1894986606),s=wt(s,i,t,a,e[u+10],15,-1051523),a=wt(a,s,i,t,e[u+1],21,-2054922799),t=wt(t,a,s,i,e[u+8],6,1873313359),i=wt(i,t,a,s,e[u+15],10,-30611744),s=wt(s,i,t,a,e[u+6],15,-1560198380),a=wt(a,s,i,t,e[u+13],21,1309151649),t=wt(t,a,s,i,e[u+4],6,-145523070),i=wt(i,t,a,s,e[u+11],10,-1120210379),s=wt(s,i,t,a,e[u+2],15,718787259),a=wt(a,s,i,t,e[u+9],21,-343485551),t=Qr(t,l),a=Qr(a,d),s=Qr(s,p),i=Qr(i,h)}return[t,a,s,i]}function vP(e){if(e.length===0)return[];for(var r=e.length*8,t=new Uint32Array(Mg(r)),a=0;a<r;a+=8)t[a>>5]|=(e[a/8]&255)<<a%32;return t}function Qr(e,r){var t=(e&65535)+(r&65535),a=(e>>16)+(r>>16)+(t>>16);return a<<16|t&65535}function mP(e,r){return e<<r|e>>>32-r}function Us(e,r,t,a,s,i){return Qr(mP(Qr(Qr(r,e),Qr(a,i)),s),t)}function St(e,r,t,a,s,i,u){return Us(r&t|~r&a,e,r,s,i,u)}function Et(e,r,t,a,s,i,u){return Us(r&a|t&~a,e,r,s,i,u)}function Tt(e,r,t,a,s,i,u){return Us(r^t^a,e,r,s,i,u)}function wt(e,r,t,a,s,i,u){return Us(t^(r|~a),e,r,s,i,u)}var yP=$g("v3",48,pP);const bP=yP;function _P(e,r,t){e=e||{};var a=e.random||(e.rng||Fg)();if(a[6]=a[6]&15|64,a[8]=a[8]&63|128,r){t=t||0;for(var s=0;s<16;++s)r[t+s]=a[s];return r}return Ws(a)}function SP(e,r,t,a){switch(e){case 0:return r&t^~r&a;case 1:return r^t^a;case 2:return r&t^r&a^t&a;case 3:return r^t^a}}function Uc(e,r){return e<<r|e>>>32-r}function EP(e){var r=[1518500249,1859775393,2400959708,3395469782],t=[1732584193,4023233417,2562383102,271733878,3285377520];if(typeof e=="string"){var a=unescape(encodeURIComponent(e));e=[];for(var s=0;s<a.length;++s)e.push(a.charCodeAt(s))}else Array.isArray(e)||(e=Array.prototype.slice.call(e));e.push(128);for(var i=e.length/4+2,u=Math.ceil(i/16),l=new Array(u),d=0;d<u;++d){for(var p=new Uint32Array(16),h=0;h<16;++h)p[h]=e[d*64+h*4]<<24|e[d*64+h*4+1]<<16|e[d*64+h*4+2]<<8|e[d*64+h*4+3];l[d]=p}l[u-1][14]=(e.length-1)*8/Math.pow(2,32),l[u-1][14]=Math.floor(l[u-1][14]),l[u-1][15]=(e.length-1)*8&4294967295;for(var m=0;m<u;++m){for(var _=new Uint32Array(80),S=0;S<16;++S)_[S]=l[m][S];for(var T=16;T<80;++T)_[T]=Uc(_[T-3]^_[T-8]^_[T-14]^_[T-16],1);for(var w=t[0],D=t[1],P=t[2],F=t[3],$=t[4],L=0;L<80;++L){var O=Math.floor(L/20),Y=Uc(w,5)+SP(O,D,P,F)+$+r[O]+_[L]>>>0;$=F,F=P,P=Uc(D,30)>>>0,D=w,w=Y}t[0]=t[0]+w>>>0,t[1]=t[1]+D>>>0,t[2]=t[2]+P>>>0,t[3]=t[3]+F>>>0,t[4]=t[4]+$>>>0}return[t[0]>>24&255,t[0]>>16&255,t[0]>>8&255,t[0]&255,t[1]>>24&255,t[1]>>16&255,t[1]>>8&255,t[1]&255,t[2]>>24&255,t[2]>>16&255,t[2]>>8&255,t[2]&255,t[3]>>24&255,t[3]>>16&255,t[3]>>8&255,t[3]&255,t[4]>>24&255,t[4]>>16&255,t[4]>>8&255,t[4]&255]}var TP=$g("v5",80,EP);const wP=TP,CP="00000000-0000-0000-0000-000000000000";function xP(e){if(!Bs(e))throw TypeError("Invalid UUID");return parseInt(e.substr(14,1),16)}const OP=Object.freeze(Object.defineProperty({__proto__:null,NIL:CP,parse:Ig,stringify:Ws,v1:uP,v3:bP,v4:_P,v5:wP,validate:Bs,version:xP},Symbol.toStringTag,{value:"Module"})),RP=fw(OP);function zu(e,r){if(!e||!r||!e.length||!r.length)throw new Error("Bad alphabet");this.srcAlphabet=e,this.dstAlphabet=r}zu.prototype.convert=function(e){var r,t,a,s={},i=this.srcAlphabet.length,u=this.dstAlphabet.length,l=e.length,d=typeof e=="string"?"":[];if(!this.isValid(e))throw new Error('Number "'+e+'" contains of non-alphabetic digits ('+this.srcAlphabet+")");if(this.srcAlphabet===this.dstAlphabet)return e;for(r=0;r<l;r++)s[r]=this.srcAlphabet.indexOf(e[r]);do{for(t=0,a=0,r=0;r<l;r++)t=t*i+s[r],t>=u?(s[a++]=parseInt(t/u,10),t=t%u):a>0&&(s[a++]=0);l=a,d=this.dstAlphabet.slice(t,t+1).concat(d)}while(a!==0);return d};zu.prototype.isValid=function(e){for(var r=0;r<e.length;++r)if(this.srcAlphabet.indexOf(e[r])===-1)return!1;return!0};var AP=zu,PP=AP;function Ya(e,r){var t=new PP(e,r);return function(a){return t.convert(a)}}Ya.BIN="01";Ya.OCT="01234567";Ya.DEC="0123456789";Ya.HEX="0123456789abcdef";var DP=Ya;const{v4:Hc}=RP,Ko=DP,Gc="123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ",FP="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!#$%&'()*+-./:<=>?@[]^_`{|}~",IP={consistentLength:!0};let qc;const Hp=(e,r,t)=>{const a=r(e.toLowerCase().replace(/-/g,""));return!t||!t.consistentLength?a:a.padStart(t.shortIdLength,t.paddingChar)},$P=(e,r)=>{const a=r(e).padStart(32,"0").match(/(\w{8})(\w{4})(\w{4})(\w{4})(\w{12})/);return[a[1],a[2],a[3],a[4],a[5]].join("-")},MP=e=>Math.ceil(Math.log(2**128)/Math.log(e));var Ba=(()=>{const e=(r,t)=>{const a=r||Gc,s={...IP,...t};if([...new Set(Array.from(a))].length!==a.length)throw new Error("The provided Alphabet has duplicate characters resulting in unreliable results");const i=MP(a.length),u={shortIdLength:i,consistentLength:s.consistentLength,paddingChar:a[0]},l=Ko(Ko.HEX,a),d=Ko(a,Ko.HEX),p=()=>Hp(Hc(),l,u),h={new:p,generate:p,uuid:Hc,fromUUID:m=>Hp(m,l,u),toUUID:m=>$P(m,d),alphabet:a,maxLength:i};return Object.freeze(h),h};return e.constants={flickrBase58:Gc,cookieBase90:FP},e.uuid=Hc,e.generate=()=>(qc||(qc=e(Gc).generate),qc()),e})(),Te=(e=>(e.DATACLASS="dataclass",e.METHOD="method",e.ATTRIBUTE="attribute",e.DATASTORE="datastore",e.SINGLTON="singleton",e.SINGLTON_METHOD="singletonMethod",e))(Te||{});const LP=[Te.DATASTORE,Te.DATACLASS,Te.ATTRIBUTE,Te.METHOD,Te.SINGLTON_METHOD,Te.SINGLTON],_s="guest",Ku=[{key:"read",label:"Read",canApplyTo:[Te.DATASTORE,Te.DATACLASS,Te.ATTRIBUTE]},{key:"create",label:"Create",canApplyTo:[Te.DATASTORE,Te.DATACLASS,Te.ATTRIBUTE]},{key:"update",label:"Update",canApplyTo:[Te.DATASTORE,Te.DATACLASS,Te.ATTRIBUTE]},{key:"drop",label:"Delete",canApplyTo:[Te.DATASTORE,Te.DATACLASS,Te.ATTRIBUTE]},{key:"describe",label:"Describe",canApplyTo:[Te.DATASTORE,Te.DATACLASS,Te.ATTRIBUTE,Te.METHOD,Te.SINGLTON,Te.SINGLTON_METHOD]},{key:"execute",label:"Execute",canApplyTo:[Te.DATASTORE,Te.DATACLASS,Te.METHOD,Te.SINGLTON,Te.SINGLTON_METHOD]},{key:"promote",label:"Promote",canApplyTo:[Te.METHOD,Te.SINGLTON_METHOD]}];function ar(e,...r){return Array.from(new Set([...e,...r]))}function Lg(e){const r={},t=new Map;e.forEach(d=>{const p=d.id||Ba.generate();r[p]={...d,id:p,parents:[],includes:ar(d.includes||[]),resources:[]},t.set(d.privilege,p)}),Object.entries(r).forEach(([d,p])=>{const h=p.includes.map(m=>{const _=t.get(m);return _?(r[_].parents=ar(r[_].parents,_),_):""}).filter(Boolean);r[d]={...p,includes:h}});const a=Ng(r),s=new Set;function i(d){s.add(d.id),d.includes=d.includes.filter(p=>!s.has(p))}if(a.forEach(i),a.forEach(d=>d.parents=[]),a.forEach(d=>{d.includes.forEach(p=>r[p].parents.push(d.id))}),Object.values(r).find(({privilege:d})=>d===_s))return r;const l=Ba.generate();return{[l]:{id:l,privilege:_s,includes:[],parents:[],resources:[]},...r}}function Ng(e){return Object.values(e).sort((r,t)=>r.parents.length-t.parents.length)}function Hs(e,r){const t=r[e];let a=[];return t&&t.parents.forEach(s=>{a=ar(a,...Hs(s,r),s)}),a}function Ss(e,r){const t=r[e];let a=[];return t&&t.includes.forEach(s=>{a=ar(a,...Ss(s,r),s)}),a}function NP(e,r){const t=r[e];if(!t)return[];const a=[e,...Hs(e,r),...t.includes];return Object.keys(r).filter(s=>!a.includes(s))}function kP(e,r){return r[e]?Object.keys(r).reduce((a,s)=>s===e?a:{...a,[s]:{...r[s],parents:r[s].parents.filter(i=>i!==e),includes:r[s].includes.filter(i=>i!==e)}},{}):r}function jP(e,r,t){const a=t[e],s=t[r];return!a||!s?t:{...t,[e]:{...t[e],includes:ar(a.includes,r)},[r]:{...t[r],parents:ar(s.parents,e)}}}function BP(e,r,t){const a=t[e],s=t[r];return!a||!s?t:{...t,[e]:{...t[e],includes:t[e].includes.filter(i=>i!==r)},[r]:{...t[r],parents:t[r].parents.filter(i=>i!==e)}}}function kg(e,r){v.validateName(e),Object.entries(r).forEach(([,{privilege:a}])=>{if(e.toLowerCase()===a.toLowerCase())throw new Error(`There's already a Privilege with the name ${e}`)});const t=Ba.generate();return{[t]:{id:t,privilege:e,includes:[],parents:[],resources:[]},...r}}function WP(e,r,t,a,s){let i=kg(e,s);const u=Object.entries(i).find(([,l])=>l.privilege===e);return u?(i=Ug(u[1].id,r,t,a,i),i):s}function UP(e,r,t){if(!e)throw new Error("Please enter a name");if(!t[r])throw new Error("Invalid privilege");return Object.entries(t).forEach(([,{privilege:a,id:s}])=>{if(e.toLowerCase()===a.toLowerCase()&&r!==s)throw new Error(`There's already a Privilege with the name ${e}`)}),{...t,[r]:{...t[r],privilege:e}}}function HP(e,r){return e.map(t=>jr(t,r))}function jr(e,r){return r[e]?r[e]:null}function jg({applyTo:e,type:r,...t}){return Object.entries(t).reduce((a,[s,i])=>{const u=Ae.find(Ku,["key",s]);return!u||!u.canApplyTo.includes(r)||(typeof i=="string"?i.split(","):i).forEach(d=>{a[d]=ar(a[d]||[],s)}),a},{})}const hu=(e,r=!1)=>["read","create","update","delete"].includes(e.toLowerCase())?`All ${r?"dataclasses and ":""}attributes have the '${e.toLowerCase()}' permission`:e.toLowerCase()==="execute"?`All functions defined ${r?"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 ${r?"dataclasses, ":""}attributes and functions have the '${e.toLowerCase()}' permission`;function Ju(e){return{permissions:Ku.filter(({canApplyTo:r})=>r.includes(e.type)).map(({key:r,label:t})=>{const a={name:r,from:[]};switch(e.type){case Te.DATASTORE:return{...a,info:hu(t,!0)};case Te.DATACLASS:return{...a,info:hu(t)};default:return a}}),resource:e.applyTo,type:e.type}}function Bg(e,r){const t=Wg(r),a={};return e.filter(({type:s})=>LP.includes(s)).forEach(s=>{const i=jg(s);Object.entries(i).forEach(([u,l])=>{var h;const d=(h=t[u])==null?void 0:h.id;if(!d)return;a[d]=a[d]||{...r[d]};let p=Ae.find(a[d].resources,{resource:s.applyTo,type:s.type});p||(p=Ju(s),a[d].resources.push(p)),p.permissions=p.permissions.map(m=>({...m,checked:m.checked||l.includes(m.name)}))})}),{...r,...a}}function Wg(e){return Object.values(e).reduce((r,t)=>({...r,[t.privilege]:t}),{})}function Gs(e){var t;const r=Lg(e.privileges||[]);return{forceLogin:e==null?void 0:e.forceLogin,privileges:Bg(((t=e.permissions)==null?void 0:t.allowed)||[],r),roles:(e.roles||[]).map(({id:a=Ba.generate(),role:s,privileges:i=[]})=>({id:a,role:s,privileges:ar(i).map(u=>{var l;return(l=Object.values(r).find(({privilege:d})=>d===u))==null?void 0:l.id}).filter(Boolean)})).reduce((a,s)=>({...a,[s.id]:{...s}}),{})}}function qs(e){const r=Object.values(e.privileges).filter(({includes:a})=>a.length===0).map(({id:a})=>a),t=[...r,...r.map(a=>Hs(a,e.privileges).reverse())].flat().filter((a,s,i)=>i.indexOf(a)===s).map(a=>e.privileges[a]);return{forceLogin:e.forceLogin,permissions:{allowed:Object.values(e.privileges).reduce((a,s)=>(s.resources.forEach(({permissions:i,resource:u,type:l})=>{let d=Ae.find(a,{applyTo:u,type:l});d||(d={applyTo:u,type:l},a.push(d)),i.forEach(({name:p,checked:h})=>{h&&d&&(d[p]=d[p]||[],d[p].push(s.privilege))})}),a),[])},privileges:t.filter(({privilege:a})=>a!==_s).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 GP(e,r){const t=r[e],a={children:[],links:[],parents:[],selected:e};if(!t)return a;function s(l,d,p=[]){const h=l.reduce((m,_)=>[...m,...r[_][d]],[]);return h.length===0?p:(p.push(h),s(h,d,p))}function i(l){const d=[],p=[];for(let h=l.length-1;h>=0;h-=1){const m=l[h].filter(_=>d.includes(_)?!1:(d.push(_),!0));m.length>0&&p.unshift(ar(m))}return p}function u(l,d){const p=[];return l.reduce((h,m)=>(m.forEach(_=>{r[_][d==="parents"?"includes":"parents"].forEach(T=>{p.includes(T)&&h.push(d==="parents"?{source:_,target:T}:{source:T,target:_})}),p.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 qP(e,r,t){const a=jr(e,t);if(!a||Ae.find(a.resources,{resource:r.applyTo,type:r.type}))return t;const s={...a,resources:[...a.resources,Ju(r)]};return{...t,[e]:s}}function YP(e,r,t){const a=jr(e,t);if(!a)return t;const s={...a,resources:a.resources.filter(({resource:i,type:u})=>i!==r.applyTo||u!==r.type)};return{...t,[e]:s}}function VP(e,r){const t=jr(e,r);if(!t)return r;const a={...t,resources:t.resources.filter(s=>s.permissions.some(i=>i.from.length)).map(s=>({...s,permissions:s.permissions.map(i=>({...i,checked:!1}))}))};return{...r,[e]:a}}function Ug(e,r,t,a,s){const i=jr(e,s);if(!i)return s;const l=Ae.find(i.resources,{type:t,resource:r})?{...i,resources:i.resources.map(d=>d.type===t&&d.resource===r?{...d,permissions:d.permissions.map(p=>p.name===a?{...p,checked:!p.checked,from:[]}:p)}:d)}:{...i,resources:[...i.resources,{type:t,resource:r,permissions:Ku.filter(d=>d.canApplyTo.includes(t)).map(d=>({from:[],name:d.key,checked:d.key===a,info:hu(d.key,t===Te.DATASTORE)}))}]};return{...s,[e]:l}}function zP(e,r,t,a){const s=jr(e,a);if(!s)return a;const u=Ae.find(s.resources,{type:r.type,resource:r.resource})?{...s,resources:s.resources.map(l=>l.type===r.type&&l.resource===r.resource?{...l,permissions:r.permissions.map(d=>d.name===t.name?{...d,checked:!d.checked,from:[]}:d)}:l)}:{...s,resources:[...s.resources,{...r,permissions:r.permissions.map(l=>({...l,checked:t.name===l.name,from:[]}))}]};return{...a,[e]:u}}function KP(e,r){var d;const t=Hg(e,r)||[],a=((d=jr(e,r))==null?void 0:d.resources)||[],u=([...t,...a].filter(({type:p})=>p===Te.METHOD)||[]).map(({resource:p})=>p);return Object.entries(r).reduce((p,[h,{resources:m}])=>(m.filter(({resource:_,type:S})=>S===Te.METHOD&&u.includes(_)).forEach(({permissions:_,resource:S})=>{var w;((w=_.find(({name:D})=>D==="promote"))==null?void 0:w.checked)&&(p[S]=ar(p[S]||[],h))}),p),{})}function Hg(e,r){var u;const t=jr(e,r);if(!t)return[];const a=(u=Object.values(r).find(l=>l.privilege===_s))==null?void 0:u.id;return(a&&a!==e?ar(Ss(e,r),a):Ss(e,r)).reduce((l,d)=>(r[d].resources.forEach(h=>{if(h.permissions.filter(({checked:S,name:T})=>S&&T!=="promote").length===0)return;const _=Ae.find(l,{type:h.type,resource:h.resource});if(!_){l.push({...h,permissions:h.permissions.map(S=>({...S,from:S.checked?[d]:[],checked:!1}))});return}_.permissions=_.permissions.map((S,T)=>{let{from:w=[]}=S;return h.permissions[T].checked&&!w.includes(d)&&(w=[...w,d]),{...S,from:w,checked:S.checked}})}),l),Ae.clone(t.resources.map(l=>({...l,permissions:l.permissions.map(({checked:d,...p})=>({...p,checked:!!d}))}))))}const JP=e=>e.reduce((r,t)=>({...r,[t.id]:{...t}}),{}),XP=(e,r)=>r[e]?Object.values(r).reduce((t,a)=>e===a.id||a.role===""?t:{...t,[a.id]:a},{}):r,ZP=(e,r,t)=>t[e]?Object.values(t).reduce((a,s)=>e===s.id?{...a,[s.id]:{...s,name:r}}:{...a,[s.id]:s},{}):t,QP=(e,r)=>{const t={id:e,role:"",privileges:[]};return{...r,[t.id]:t}},eD=(e,r)=>{if(v.validateName(e.role),Object.values(r).find(a=>a.role===e.role))throw new Error(`a role with the name ${e.role} already exists`);return Object.values(r).reduce((a,s)=>e.id===s.id?{...a,[e.id]:e}:{...a,[s.id]:s},{})},tD={list:[]},Gp=(e,r)=>e.list.filter(t=>t.id!==r),Gg=Yt({name:"modals",initialState:tD,reducers:{createModal:(e,r)=>{e.list.push(r.payload)},editModal:(e,r)=>{const{id:t,...a}=r.payload,s=e.list.find(v.byId(t));s&&Object.assign(s,{...a})},removeModal:(e,r)=>{const t=r.payload;e.list=Gp(e,t)},closeModal:(e,r)=>{const{id:t,reason:a}=r.payload;if(a){const s=e.list.find(i=>i.id===t);s&&(s.closeReason=a,s.isOpen=!1)}else e.list=Gp(e,t)}}}),{createModal:qg,removeModal:Yg,closeModal:rD,editModal:nD}=Gg.actions,or=Q("modals/open",async(e,{dispatch:r})=>{const t=zv(),{type:a=v.ModalType.ALERT}=e,s=Au();switch(r(qg({id:s,type:a,isOpen:!0,...e})),a){case v.ModalType.CONFIRM:return new Promise(i=>{const u=t.subscribe(()=>{var p;const{modals:l}=t.getState(),d=l.list.find(h=>h.id===s);if(d&&!d.isOpen){const h=d.closeReason===v.ModalCloseReason.CONFIRMED,m=Ae.entries((p=d.views)==null?void 0:p.toggles).reduce((_,S)=>({..._,[S[0]]:S[1].value}),{});r(Yg(s)),u(),i({confirmed:h,options:m})}})});default:return{}}}),Vg=()=>v.getFileContent({name:v.ROLES_TAB_PATH}),zg="Roles & Privileges",Es=Q("roles/fetchRoles",async(e,{dispatch:r,rejectWithValue:t})=>{var i;let a;try{a=await Vg()}catch(u){if(!Array.isArray((i=u==null?void 0:u.data)==null?void 0:i.__ERROR))return t("Error while loading the roles");a={name:v.ROLES_TAB_PATH,date:new Date().toISOString(),content:{permissions:{allowed:[]},privileges:[],roles:[]}}}const s={name:zg,type:v.FileFolderType.ROLES,date:a.date,view:{panel:{isOpen:!1,type:"",current:""}},path:v.ROLES_TAB_PATH,flags:{},extra:{editor:{key:"editors:roles"}},content:{}};return r(Dt(s)),{...a,content:Gs(a.content)}}),Kg=Q("roles/fetchRolesChanges",async(e,{getState:r})=>{const{tabs:t}=r().root;if(t.find(s=>s.path===v.ROLES_TAB_PATH)){const{date:s}=r().roles;if(s&&await Xu(s))return{old:!0}}return{}}),Xu=async e=>{if(!e)return!1;try{const r=await Vg();if(r.date){const t=new Date(e),a=new Date(r.date);if(t>a)return!0}}catch(r){if(!Array.isArray(r==null?void 0:r.data.__ERROR))throw r}return!1},gu=Q("roles/saveRoles",async(e,{getState:r,rejectWithValue:t,dispatch:a})=>{try{const{flags:s,date:i}=r().roles;if(s.old||await Xu(i)){const{confirmed:d}=await a(or({title:zg,message:"New content has been found on the server. Are you sure you want to continue?",type:v.ModalType.CONFIRM,icon:"FdSave"})).unwrap();if(!d)return t({old:!0})}return await v.setFileContent({name:v.ROLES_TAB_PATH,content:qs(e)})}catch{return t("Error while loading the roles")}}),Jg=Yt({name:"roles",initialState:()=>{const{roles:e}=Zn(),{roles:r={},privileges:t={},flags:a={touched:!1},date:s,selectedTab:i="roles"}=e||{};return{flags:a,roles:r,privileges:t,date:s,selectedTab:i}},reducers:{updatePrivileges:(e,r)=>{e.privileges=r.payload,e.flags.touched=!0},updateRoles:(e,r)=>{e.roles=r.payload,e.flags.touched=!0},updateRolesAndPrivileges:(e,r)=>{e.roles=r.payload.roles,e.privileges=r.payload.privileges},toggleTab:(e,r)=>{e.selectedTab=r.payload},toggleForceLogin:(e,r)=>{e.forceLogin!==r.payload&&(e.forceLogin=r.payload,e.flags.touched=!0)},setRolesContent(e,r){const{content:t,flags:a={},...s}=r.payload,i=Gs(t),u={...e.flags,...a};return{...e,...i,...s,flags:u}}},extraReducers(e){e.addCase(Es.fulfilled,(r,t)=>{const{content:a,date:s}=t.payload;r={...r,...a,date:s}}).addCase(Es.rejected,r=>({...r,roles:{},privileges:{},flags:{touched:!1},date:void 0})).addCase(gu.fulfilled,(r,t)=>({...r,flags:{...r.flags,confirmed:!0,touched:!1,old:!1},date:t.payload.date})).addCase(gu.rejected,(r,t)=>h1.isString(t.payload)?r:{...r,flags:{...r.flags,...t.payload}}).addCase(Kg.fulfilled,(r,t)=>({...r,flags:{...r.flags,...t.payload}})).addCase(zn.fulfilled,(r,t)=>{!t.payload||t.payload.path!==v.ROLES_TAB_PATH||(r.flags.touched=!1,r.flags.old=!1)}).addCase(al.fulfilled,(r,t)=>{t.meta.arg!==v.ROLES_TAB_PATH||!t.payload||(r.flags.touched=!1,r.flags.old=!1)})}}),{updatePrivileges:Xg,updateRoles:Zg,setRolesContent:Zu,toggleTab:aD,toggleForceLogin:oD,updateRolesAndPrivileges:Qu}=Jg.actions,sD=Jg.reducer,el=Q("settings/fetch",async()=>await v.getNodeInfo({verb:v.DesignerRequestVerb.GET_INFO,path:v.SETTINGS_TAB_PATH,content:!0,as:"json"})),Qg=Q("settings/app",v.getAppSettings),iD=Mu(),qp={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":qu.SHOW_AFTER_TIMEOUT,"webforms.tooltip.timeout":3e3,"webforms.renderer.showPopOver":!0,"webforms.renderer.showUnsavedPopOver":!0,"webforms.renderer.unsavedPopOverChoice":Yu.NONE,"welcometour.active":!0,"webforms.properties.advanced-mode":!1,"monaco.zoom":0,"webforms.i18n.current":""},project:{"webforms.renderer.indexPage":"","webforms.display-mode":"neutral","webforms.i18n":{supported:[],primary:""}},server:{projectOpened:!1,remoteDebuggerMode:v.RemoteDebuggerMode.DISABLED,baseUrl:"",qodly:!0,urls:{renderer:"/$lib/renderer/",debugger:"",lsp:""},isRestActive:!0}},cD={...qp,session:{...qp.session,...iD},welcometour:{}},ev=Yt({name:"settings",initialState:cD,reducers:{setSetting(e,r){const{path:t,settingsKey:a,value:s}=r.payload;e[t][a]=s},setSettings(e,r){const{path:t,value:a}=r.payload;e[t]={...e[t],...a}},setSettingsAsText(e,r){const{path:t,settings:a}=r.payload;e[t]=a}},extraReducers(e){e.addCase(el.fulfilled,(r,t)=>{r.project={...r.project,...t.payload.content}}),e.addCase(Qg.fulfilled,(r,t)=>{r.server=t.payload,r.server.qodly&&(r.project["webforms.display-mode"]="airy")})}}),{setSetting:vu,setSettings:Ys,setSettingsAsText:uD}=ev.actions,lD=ev.reducer,mu=e=>{const r=["folder","file"];return e.sort((t,a)=>t.type===a.type?t.name.localeCompare(a.name):r.indexOf(t.type)-r.indexOf(a.type))},Pe=(e,r)=>e.reduce((t,a)=>a.path===r.path&&a.type===r.type?[...t,r]:a.children?[...t,{...a,children:mu(Pe(a.children,r))}]:[...t,a],[]),lt=(e,r)=>e.reduce((t,a)=>t||(a.path===r?a:a.children?lt(a.children,r):null),null),tv=[{name:v.FolderRootPath.WEBFORMS,type:v.FileFolderType.FOLDER,children:[],path:v.FolderRootPath.WEBFORMS,error:null,flags:{expanded:!1,loading:!1,cached:!1},tipKey:"editors:webform:explorer:webforms",config:{},isRoot:!0},{name:v.FolderRootPath.METHODS,type:v.FileFolderType.FOLDER,children:[],path:v.FolderRootPath.METHODS,error:null,flags:{expanded:!1,loading:!1,cached:!1},config:{},isRoot:!0},{name:v.FolderRootPath.CLASSES,type:v.FileFolderType.FOLDER,children:[],path:v.FolderRootPath.CLASSES,error:null,flags:{expanded:!1,loading:!1,cached:!1},config:{},isRoot:!0},{name:v.FolderRootPath.SHARED,type:v.FileFolderType.FOLDER,children:[],path:v.FolderRootPath.SHARED,error:null,flags:{expanded:!1,loading:!1,cached:!1},config:{},isRoot:!0},{name:"Debugger",type:v.FileFolderType.FOLDER,children:[],path:"Debugger",error:null,flags:{expanded:!1,cached:!0},config:{},isRoot:!0},{name:"Roles And Privileges",type:v.FileFolderType.FILE,ext:"json",path:v.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:v.FileFolderType.MODEL,ext:"4DModel",path:v.MODEL_TAB_PATH,error:null,flags:{},config:{editor:{key:"editors:model"},supportedEditors:[{key:"editors:code",config:{language:"json",theme:"vs-dark"}}]}},{name:"Settings",type:v.FileFolderType.FILE,ext:"json",path:"qodlyApp.json",error:null,flags:{},config:{editor:{key:"editors:settings"}},isRoot:!0}],fD=Mu(),dD=!!Ae.get(fD,"features.experimental.reports");dD&&tv.unshift({name:v.FolderRootPath.REPORTS,type:v.FileFolderType.FOLDER,children:[],path:v.FolderRootPath.REPORTS,error:null,flags:{expanded:!1,loading:!1,cached:!1},tipKey:"editors:report:explorer:reports",config:{},isRoot:!0});const rv=Yt({name:"explorer",initialState:tv,reducers:{renameClassesFolder:(e,r)=>{const{payload:t}=r,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 t.forEach(({newName:u,prevName:l})=>{var d;a.children=(d=a.children)==null?void 0:d.map(p=>{var h;return p.path.endsWith("[<QODLY_ID>]")&&p.name===l?{...p,name:u,path:`Classes/${u}___[<QODLY_ID>]`,children:(h=p.children)==null?void 0:h.map(m=>{var _;return{...m,path:m.path.replace(l,u),info:{...m.info,filename:i((_=m.info)==null?void 0:_.kind,u),dataclass:u}}})}:p})}),e[s]=a,e},removeClassesFolder:(e,r)=>{const{payload:t}=r;if(!t||t.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 t.forEach(u=>{var d,p;const l=(d=a.children)==null?void 0:d.find(h=>h.name===u);if(l){let h=(p=l.children)==null?void 0:p.filter(m=>{var _;return(_=m.info)==null?void 0:_.exist});h&&(h==null?void 0:h.length)>0&&(h=h.map(m=>{var _;return{...m,name:(_=m.info)==null?void 0:_.filename,info:{...m.info,kind:"userClass"}}}),i=i.concat(h))}}),a.children=a.children.filter(u=>!t.includes(u.name)),a.children=a.children.concat(i),a.children.sort((u,l)=>u.name==="DataStore"?-1:l.name==="DataStore"?1:u.type===v.FileFolderType.CLASS_FOLDER&&l.type===v.FileFolderType.CLASS_FOLDER||u.type===v.FileFolderType.CLASS&&l.type===v.FileFolderType.CLASS?u.name.localeCompare(l.name):u.type===v.FileFolderType.CLASS_FOLDER&&l.type!==v.FileFolderType.CLASS_FOLDER?-1:1),e[s]=a,e},addClassesFolder:(e,r)=>{const{payload:t}=r;if(t.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===v.FileFolderType.CLASS_FOLDER&&(i=l)}),t.forEach(u=>{var l;a.children=(l=a.children)==null?void 0:l.filter(d=>{var h,m;const p=(h=u.children)==null?void 0:h.find(_=>{var S;return((S=_.info)==null?void 0:S.filename)===d.name});return p&&(u.children=(m=u.children)==null?void 0:m.map(_=>{var S;return((S=_.info)==null?void 0:S.filename)===d.name?{..._,info:{..._.info,exist:!0}}:_})),!p})}),t.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===v.FileFolderType.CLASS_FOLDER&&l.type===v.FileFolderType.CLASS_FOLDER?u.name.localeCompare(l.name):u.type===v.FileFolderType.CLASS_FOLDER&&l.type!==v.FileFolderType.CLASS_FOLDER?-1:1),e[s]=a,e},toggleExpandFolder:(e,r)=>(e=Pe(e,{...r.payload,flags:{...r.payload.flags,expanded:!r.payload.flags.expanded}}),e),expandFolder:(e,r)=>(e=Pe(e,{...r.payload,flags:{...r.payload.flags,expanded:!0}}),e),openAddFileInput:(e,r)=>Pe(e,{...r.payload,flags:{...r.payload.flags,adding:!0}}),addNewFile:(e,r)=>{const{parent:t,child:a}=r.payload;return Pe(e,{...t,children:[a,...t.children||[]]})},removeFile:(e,r)=>{const{parent:t,child:a}=r.payload;return Pe(e,{...t,children:t.children.filter(s=>s.path!==a.path)})},refreshFile:(e,r)=>{const{parent:t,child:a}=r.payload,s=(t.children||[]).filter(i=>i.path!==a.path&&!a.error);return Pe(e,{...t,children:[a,...s]})},setFolderChildren:(e,r)=>{const t=lt(e,r.payload.parentPath);return t?Pe(e,{...t,children:r.payload.children}):e}},extraReducers:e=>{e.addCase(Vn.pending,(r,t)=>{const{file:a,newname:s}=t.meta.arg,i=lt(r,a.path);if(!i)return r;const u=a.path.split("/");u.pop();const l=`${u.join("/")}/${a.name}.${a.ext}`,d=`${u.join("/")}/${s}.${a.ext}`;switch(a.ext){case"4dm":case"4qs":v.lspSubject.next({action:v.LspActions.WILL_RENAME,payload:{oldPath:l,newPath:d}});break}return Pe(r,{...i,flags:{...i.flags,loading:!0}})}),e.addCase(Vn.fulfilled,(r,t)=>{const{meta:{arg:{file:a}},payload:s}=t,i=lt(r,a.path);if(!i)return r;switch(s.old.ext){case"4dm":case"4qs":v.lspSubject.next({action:v.LspActions.DID_RENAME,payload:{oldPath:s.old.path,newPath:s.new.path}});break}return Pe(r,{...i,flags:{...i.flags,loading:!1}})}),e.addCase(Vn.rejected,(r,t)=>{const{file:a}=t.meta.arg,s=lt(r,a.path);return s?Pe(r,{...s,flags:{...s.flags,loading:!1}}):r}),e.addCase(rn.pending,(r,t)=>{const a=typeof t.meta.arg=="string"?t.meta.arg:t.meta.arg.nodePath,s=lt(r,a);return s?Pe(r,{...s,flags:{...s.flags,loading:!0}}):r}),e.addCase(rn.fulfilled,(r,t)=>{const a=typeof t.meta.arg=="string"?t.meta.arg:t.meta.arg.nodePath,s=lt(r,a);return s?Pe(r,{...s,children:mu(t.payload),flags:{...s.flags,loading:!1,cached:!0,expanded:!0},error:null}):r}),e.addCase(rn.rejected,(r,t)=>{const a=typeof t.meta.arg=="string"?t.meta.arg:t.meta.arg.nodePath,s=lt(r,a);return s?Pe(r,{...s,error:{message:t.payload},flags:{...s.flags,loading:!1,cached:!0,expanded:!0}}):r}),e.addCase(Fa.pending,(r,t)=>{const a=t.meta.arg,s=lt(r,a);return s?Pe(r,{...s,flags:{...s.flags,loading:!0}}):r}),e.addCase(Fa.fulfilled,(r,t)=>{const a=t.meta.arg,s=lt(r,a);return s?Pe(r,{...s,children:mu(t.payload),flags:{...s.flags,loading:!1,cached:!0,expanded:!1},error:null}):r}),e.addCase(Fa.rejected,(r,t)=>{const a=t.meta.arg,s=lt(r,a);return s?Pe(r,{...s,error:{message:t.payload},flags:{...s.flags,loading:!1,cached:!0,expanded:!1}}):r}),e.addCase(ts.pending,(r,t)=>{const{fileName:a,parentNode:s,path:i,type:u}=t.meta.arg,l=v.getFileExtentionFromType(u),d=`${i}/${a}${l?`.${l}`:""}`;return Pe(r,{...s,children:[{name:a,path:d,type:u,error:null,flags:{loading:!0},config:{}},...s.children]})}),e.addCase(ts.fulfilled,(r,t)=>{const{path:a,fileName:s,type:i}=t.meta.arg,u=v.getFileExtentionFromType(i),l=`${a}${u?`.${u}`:""}`,{editor:d,supportedEditors:p}=xt(l);return Pe(r,{name:s,path:l,type:i,error:null,flags:{loading:!1},config:{editor:d,supportedEditors:p}})}),e.addCase(ts.rejected,(r,t)=>{const{path:a,fileName:s,type:i}=t.meta.arg,u=v.getFileExtentionFromType(i),l=`${a}${u?`.${u}`:""}`;return Pe(r,{name:s,path:l,type:i,error:{message:t.payload},flags:{loading:!1},config:{}})}),e.addCase(rs.pending,(r,t)=>{const{node:a,parentNode:s}=t.meta.arg,i=`${a.name}_copy`,u=`${a.path}/${i}${a.ext?`.${a.ext}`:""}`;return Pe(r,{...s,children:[{name:i,path:u,type:a.type,error:null,flags:{loading:!0},permissions:{canRename:!0,canDelete:!0}},...s.children]})}),e.addCase(rs.fulfilled,(r,t)=>{const{node:a}=t.payload,s=Jh(a.name),i=`${a.path}/${a.name}`,{editor:u,supportedEditors:l}=xt(i);return Pe(r,{name:s,path:i,type:a.type,error:null,flags:{loading:!1},config:{editor:u,supportedEditors:l}})}),e.addCase(rs.rejected,(r,t)=>{const a=t.payload,{node:s}=t.meta.arg,i=`${s.name}_copy`,u=`${s.path}/${i}${s.ext?`.${s.ext}`:""}`;return Pe(r,{name:i,path:u,type:s.type,error:{message:a},flags:{loading:!1},config:{}})}),e.addCase($a.pending,()=>{}),e.addCase($a.fulfilled,(r,t)=>{var m;const{draggedNode:a,newLocation:s}=t.meta.arg,i=Kh(a.path),u=lt(r,i),l=lt(r,s.path),d=(m=u==null?void 0:u.children)==null?void 0:m.filter(_=>_.path!==a.path),p=s.path.split("/").length,h=a.path.split("/").length;return p>=h?(r=Pe(r,{...u,children:d}),r=Pe(r,{...l,children:[{...a,path:`${l.path}/${a.name}`},...l!=null&&l.children?l.children:[]],flags:{...l.flags,expanded:!0}})):(r=Pe(r,{...l,children:[{...a,path:`${l.path}/${a.name}`},...l!=null&&l.children?l.children:[]],flags:{...l.flags,expanded:!0}}),r=Pe(r,{...u,children:d})),r}),e.addCase($a.rejected,()=>{v.toastSubject.next({message:"Error moving file",kind:"danger"})}),e.addCase(Yn.pending,(r,t)=>{var w;const{fileName:a,parentNode:s,path:i,type:u,qodly:l}=t.meta.arg,d=v.getFileExtentionFromType(u,l),p=`${i}/${a}${d?`.${d}`:""}`,{editor:h,supportedEditors:m}=xt(p);switch(u){case v.FileFolderType.CLASS:case v.FileFolderType.METHOD:v.lspSubject.next({action:v.LspActions.WILL_CREATE,payload:{filePath:p}});break}const S=[...(w=s.children)==null?void 0:w.filter(D=>D.path!==p),{name:a,path:p,type:u===v.FileFolderType.CLASS?u:v.FileFolderType.FILE,error:null,flags:{loading:!0},config:{editor:h,supportedEditors:m},ext:d,date:new Date().toISOString(),info:{exist:!0,kind:u===v.FileFolderType.CLASS?"userClass":""}}],T=Pe(r,{...s,children:S});return Ae.merge(r,T)}),e.addCase(Yn.fulfilled,(r,t)=>{const{fileName:a,path:s,type:i,qodly:u}=t.meta.arg,l=v.getFileExtentionFromType(i,u),d=`${s}/${a}${l?`.${l}`:""}`,{editor:p,supportedEditors:h}=xt(d),m=Pe(r,{name:a,path:d,type:v.FileFolderType.FILE,error:null,flags:{},config:{editor:p,supportedEditors:h},ext:l,date:new Date().toISOString(),info:{exist:!0,kind:i===v.FileFolderType.CLASS?"userClass":""}});switch(i){case v.FileFolderType.CLASS:case v.FileFolderType.METHOD:v.lspSubject.next({action:v.LspActions.DID_CREATE,payload:{filePath:d}});break}return r=m,r}),e.addCase(Yn.rejected,(r,t)=>{const{fileName:a,path:s,type:i}=t.meta.arg,u=v.getFileExtentionFromType(i),l=`${s}${u?`.${u}`:""}`,{editor:d,supportedEditors:p}=xt(l);return r=Pe(r,{name:a,path:l,type:v.FileFolderType.FILE,error:{message:"Failed creating file"},flags:{},config:{editor:d,supportedEditors:p},ext:u,date:new Date().toISOString()}),r}),e.addMatcher(hh(Ia),(r,t)=>{const a=lt(r,t.meta.arg.file.path);return a&&(r=Pe(r,{...a,flags:{...a.flags,loading:!0}})),r}),e.addMatcher(vh(Ia),(r,t)=>{const a=lt(r,t.meta.arg.file.path),s=a!=null&&a.info?{...a.info,exist:!0}:void 0;return a&&(r=Pe(r,{...a,flags:{...a.flags,loading:!1},info:s})),r}),e.addMatcher(gh(Ia),(r,t)=>{const a=lt(r,t.meta.arg.file.path);return a&&(r=Pe(r,{...a,flags:{...a.flags,loading:!1}})),v.toastSubject.next({message:"Failed to open file, try again",kind:"danger"}),r})}}),{toggleExpandFolder:pD,expandFolder:hD,openAddFileInput:gD,addNewFile:nv,refreshFile:vD,removeFile:yu,setFolderChildren:mD,addClassesFolder:yD,removeClassesFolder:bD,renameClassesFolder:_D}=rv.actions,Yp=[{name:"onServerStartup.4qs",content:`var $error : Object
102
+ `),T}return du(function(){d.current=e,p.current=m,h.current=_,l.current=void 0}),du(function(){function T(){try{var w=t.getState();if(w===p.current)return;var D=d.current(w);if(r(D,h.current))return;h.current=D,p.current=w}catch(P){l.current=P}i()}return u.onStateChange=T,u.trySubscribe(),T(),function(){return u.tryUnsubscribe()}},[t,u]),_}function IR(e){e===void 0&&(e=Lr);var r=e===Lr?dg:function(){return pt.useContext(e)};return function(a,s){if(s===void 0&&(s=DR),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=r(),u=i.store,l=i.subscription,d=FR(a,s,u,l);return pt.useDebugValue(d),d}}var $R=IR();yR(sT.unstable_batchedUpdates);const MR=()=>PR(),Sr=$R,ks=B(e=>e,e=>e.catalog.state==="loaded"?e.catalog.model:null),LR=B(e=>e,({catalog:e})=>e.state),hg=B(ks,e=>e?e.dataClasses:[]),NR=B(ks,e=>e?e.singletons:[]),kR=B(hg,e=>Object.values(e).filter(({virtual:r})=>r)),jR=B(ks,e=>e?e.methods:[]),gg=e=>B(r=>r,r=>{switch(r.catalog.state){case"loaded":const t=e?r.catalog.model.dataClasses[e]:r.catalog.model;return(t==null?void 0:t.methods)||[];default:return[]}}),BR=e=>Sr(gg(e),fg),WR=(e,r)=>B(gg(e),t=>t.find(a=>`${a.applyTo}.${a.name}`===r)),UR=(e,r,t)=>Sr(WR(e,`${t}.${r}`),fg),vg=B(e=>e,e=>e),HR=e=>B(Nr,r=>{var s;const t=r.tabs.find(({path:i})=>i===e),a=t==null?void 0:t.content.components;return!t||!a?[]:(s=Object.keys(a))==null?void 0:s.map(i=>({id:i,...a[i]}))}),mg=e=>B(Nr,r=>{var a,s;const t=r.tabs.find(({path:i})=>i===e);return((s=(a=t==null?void 0:t.content)==null?void 0:a.metadata)==null?void 0:s.datasources)||[]}),GR=(e,r,t)=>B(vg,a=>{var s,i;if(r){const u=a.sharedDatasources.sources[r];return u?u.find(l=>l.id===e):void 0}else{const u=a.root.tabs.find(d=>d.path===t);return u?(i=(s=u.content.metadata)==null?void 0:s.datasources)==null?void 0:i.find(d=>d.id===e):void 0}}),yg=B(e=>e,e=>{var r;return((r=e.sharedDatasources)==null?void 0:r.sources)||[]}),qR=(e,r,t,a)=>B(mg(e),yg,(s,i)=>{const u=Ae.flatten(Ae.values(i)),l=[...r!=="private"?s:[],...r!=="shared"?u:[]];return t?l.filter(d=>(!a||a.every(({id:p,namespace:h=""})=>d.id!==p||(d.namespace||"")!==h))&&(t.includes(d.type)||d.dataType&&(t.includes(d.dataType)||t.includes("objectFromArray")&&d.dataType==="object"&&d.from))):l}),YR=B(e=>e.debugger,e=>e.meta),xn=B(e=>e.debugger,e=>e.list),Ft=B(e=>e.debugger,e=>e.sessions),VR=B(Ft,e=>e.length),wn=(e,r,t,a)=>e.find(s=>s.filePath===r&&s.methodName===t&&(!a||s.className===a)),st=(e,r)=>e.find(t=>t.threadId===r),bg=(e,r)=>e.find(t=>t.tabPath===r),zR=(e,r)=>B(xn,t=>{var a;return((a=wn(t,e,r))==null?void 0:a.breakpoints.saved.locations)||[]}),KR=(e,r)=>B(xn,t=>{var a;return((a=wn(t,e,r))==null?void 0:a.breakpoints.draft.locations)||[]}),JR=e=>B(xn,r=>r.filter(t=>t.filePath===e).reduce((t,a)=>[...t,...a.breakpoints.saved.locations.map(s=>({...s,line:s.line+(a.breakpoints.saved.offset||0)}))],[]).sort((t,a)=>t.line-a.line)),XR=e=>B(xn,r=>r.filter(t=>t.filePath===e).reduce((t,a)=>[...t,...a.breakpoints.draft.locations.map(s=>({...s,line:s.line+(a.breakpoints.draft.offset||0)}))],[]).sort((t,a)=>t.line-a.line)),ZR=e=>B(Ft,r=>{const t=st(r,e);return t!=null&&t.stopped?t.highlightedLines:null}),QR=e=>B(Ft,r=>{const t=st(r,e);return t!=null&&t.stopped?t.activeLine:null}),eA=e=>B(Ft,r=>{var t;return((t=st(r,e))==null?void 0:t.expressions)||[]}),tA=e=>B(Ft,r=>{var t;return((t=st(r,e))==null?void 0:t.stopped)||!1}),rA=(e,r)=>B(xn,t=>{var a;return(a=wn(t,e,r))==null?void 0:a.source}),nA=e=>B(Ft,r=>{var t;return((t=bg(r,e))==null?void 0:t.threadId)||-1}),aA=e=>B(Ft,r=>{var t,a;return(a=(t=st(r,e))==null?void 0:t.currentStackFrame)==null?void 0:a.source}),oA=e=>B(Ft,r=>{var t;return(t=st(r,e))==null?void 0:t.currentStackFrame}),sA=B(Ft,e=>e.map(({channelId:r,threadId:t})=>({id:r,threadId:t}))),iA=e=>B(Ft,r=>{var t;return((t=st(r,e))==null?void 0:t.stackFrames)||[]}),cA=e=>B(Ft,r=>{var t,a;return((a=(t=st(r,e))==null?void 0:t.variables)==null?void 0:a.callchain)||[]}),uA=e=>B(Ft,r=>{var t,a;return((a=(t=st(r,e))==null?void 0:t.variables)==null?void 0:a.expressions)||[]}),lA=(e,r="saved")=>B(xn,t=>{const a=t.find(s=>s.filePath===e);return(a==null?void 0:a.breakpoints[r].offset)||0}),fA=(e,r,t,a)=>B(Ft,s=>{var p;const i=((p=st(s,e))==null?void 0:p.exceptions)||[],u=r===v.FileFolderType.CLASS,l=u&&a?`${a}.${t}`:t;return(l?i.filter(h=>h.location===l):i).map(h=>({...h,locationLine:u?h.locationLine:h.locationLine+1}))}),Nr=B(e=>e.root,e=>e),aa=B(Nr,e=>e.tabs),dA=B(Nr,e=>e.activeTab),pA=B(Nr,e=>e.recent.filter(({type:r})=>r!==v.FileFolderType.DEBUGGER)),_g=B(Nr,({tabs:e,activeTab:r})=>e.find(({path:t})=>t===r)),hA=B(Nr,({tabs:e})=>e.reduce((t,a)=>(a==null?void 0:a.weight)>((t==null?void 0:t.weight)||0)?a:t,null)),gA=B(aa,e=>e.filter(({type:r,flags:t})=>r===v.FileFolderType.WEBFORM&&t.enabled===!1).map(({path:r})=>r)),vA=B(aa,e=>e.length>0),kr=e=>B(Nr,r=>r.tabs.find(({path:t})=>t===e)),Sg=(e,r="")=>B(kr(e),t=>!t||!t.content||typeof t.content=="string"?t==null?void 0:t.content:Ae.get(t.content,r)),mA=e=>B(kr(e),r=>r==null?void 0:r.extra),yA=(e,r=t=>t)=>B(Sg(e,"components"),t=>r(t||{})),Uu=B(aa,e=>e.filter(r=>r.flags.touched)),bA=B(Uu,e=>e.length),_A=B(Ft,e=>e.map(({threadId:r,currentStackFrame:{source:t},tabPath:a})=>({name:$h(r,t),path:a,type:v.FileFolderType.DEBUGGER,content:t==null?void 0:t.content,flags:{},extra:{source:t}}))),SA=B(e=>e,e=>e.explorer||[]),Eg=B(e=>e,e=>e.explorer.find(r=>r.path===v.FolderRootPath.WEBFORMS)),Tg=B(e=>e,e=>e.explorer.find(r=>r.path===v.FolderRootPath.METHODS)),wg=B(e=>e,e=>e.explorer.find(r=>r.path===v.FolderRootPath.CLASSES)),EA=B(Tg,e=>(e==null?void 0:e.children)||[]),TA=B(Eg,e=>(e==null?void 0:e.children)||[]),wA=B(wg,e=>(e==null?void 0:e.children)||[]),CA=B(e=>e.modals,e=>e.list),xA=B(e=>e.roles,e=>qs(e)),OA=B(e=>e.roles,({roles:e})=>e),RA=B(e=>e.roles,({privileges:e})=>e),AA=B(e=>e.roles,({privileges:e})=>Object.values(e).find(({privilege:r})=>r==="guest")),PA=B(e=>e.roles,({flags:e})=>e),DA=B(e=>e.roles,({selectedTab:e})=>e),FA=B(e=>e.roles,({forceLogin:e})=>e),IA=B(e=>e.roles,({date:e})=>e),oa=B(e=>e.settings,e=>e.session),$A=(...e)=>B(oa,r=>e.length>0?Ae.pick(r,e):r),MA=e=>B(oa,r=>r[e]),LA=e=>B(oa,r=>["states"].includes(e)?!0:!!r[`features.experimental.${e}`]),Cg=B(e=>e.settings,e=>e.project),NA=B(e=>e.settings,e=>e),Hu=B(e=>e.settings,e=>e.server),kA=B(Hu,e=>e.remoteDebuggerMode),jA=B(Hu,e=>e.qodly),BA=B(oa,e=>e["monaco.zoom"]),WA=B(Cg,e=>e["webforms.i18n"]),UA=B(oa,e=>e["webforms.i18n.current"]),xg=["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"],Og=xg.map(e=>({id:Au(),content:"",name:e,parentId:null,scope:v.EWebFormStyleClassScope.THEME})),Gu=e=>B(kr(e),r=>{var t,a;return((a=(t=r==null?void 0:r.content)==null?void 0:t.metadata)==null?void 0:a.styles)||[]}),HA=(e,r)=>B(Gu(e),t=>r.map(a=>{switch(!0){case a===v.EWebFormStyleClassScope.LOCAL:return t.map(s=>({...s,scope:v.EWebFormStyleClassScope.LOCAL}));case a===v.EWebFormStyleClassScope.THEME:return Og;default:return[]}}).flat()),GA=e=>B(Gu(e),r=>[...r.map(t=>({...t,scope:v.EWebFormStyleClassScope.LOCAL})),...Og]),qA=B(e=>e,e=>{var r;return[...(((r=e.sharedCSS)==null?void 0:r.styles)||[]).map(t=>({...t,scope:v.EWebFormStyleClassScope.SHARED}))]}),YA=e=>B(kr(e),r=>r==null?void 0:r.flags),VA=e=>B(kr(e),r=>r==null?void 0:r.history),zA=B(_g,e=>{const r=e!=null&&e.history?e.history.active>0:!1,t=e!=null&&e.history?e.history.active<e.history.stack.length-1:!1;return{canUndo:r,canRedo:t}}),qa=B(e=>e.webforms,e=>e),Rg=B(qa,e=>(e==null?void 0:e.components)||[]),js=B(qa,e=>e.inspector),KA=B(js,e=>e.css),JA=B(js,e=>e.datasource),Ag=B(qa,e=>e.templates||{data:[]}),XA=B(Ag,e=>e.data||[]),ZA=e=>B(Rg,r=>r.find(t=>t.id===e)),QA=e=>B(js,r=>r[e]),eP=B(qa,e=>e.datasources.theme),tP=B(e=>e.root,e=>e.clipboard),rP=B(e=>e.catalog,e=>e.sharedDatasources,e=>e.sharedCSS,(e,r,t)=>[e.state,r.state,t.state].every(a=>["loaded","error"].includes(a))),nP=e=>B(r=>r.root,r=>{var a;const t=r.tabs.find(({path:s})=>s===e);return((a=t==null?void 0:t.content)==null?void 0:a.metadata)||{}}),Xn={label:"Base",id:"root"},Pg=e=>!e.find(r=>Ae.isEqual(r,Xn)),Dg=(e,r=[])=>B(kr(e),t=>{var i,u;let s=((u=(i=t==null?void 0:t.content)==null?void 0:i.metadata)==null?void 0:u.states)||[Xn];return Pg(s)&&(s=[Xn,...s]),s.filter(({id:l})=>!r.includes(l))}),aP=(e,r=[])=>B(Dg(e,r),t=>t.map(({label:a})=>a)),oP=e=>B(kr(e),r=>{var t,a;return((a=(t=r==null?void 0:r.content)==null?void 0:t.metadata)==null?void 0:a.defaultStates)||[]}),sP=e=>B(kr(e),r=>{var a,s,i,u;const{currentState:t}=((a=r==null?void 0:r.content)==null?void 0:a.metadata)||{};return((u=(i=(s=r==null?void 0:r.content)==null?void 0:s.metadata)==null?void 0:i.states)==null?void 0:u.find(l=>l.id===t))||Xn}),iP=B(e=>e,e=>{var r;return((r=e.savedConditions)==null?void 0:r.conditions)||[]});var qu=(e=>(e.SHOW_AFTER_TIMEOUT="show_after_timeout",e.HIDE_AFTER_TIMEOUT="hide_after_timeout",e))(qu||{}),Yu=(e=>(e.NONE="none",e.SAVE_ALL_AND_PROCEED="saved_all_and_proceed",e.PROCEED="proceed",e))(Yu||{}),Vu=(e=>(e.AIRY="airy",e.COMPACT="neutral",e))(Vu||{}),zo,cP=new Uint8Array(16);function Fg(){if(!zo&&(zo=typeof crypto<"u"&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)||typeof msCrypto<"u"&&typeof msCrypto.getRandomValues=="function"&&msCrypto.getRandomValues.bind(msCrypto),!zo))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return zo(cP)}const uP=/^(?:[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;function Bs(e){return typeof e=="string"&&uP.test(e)}var mt=[];for(var kc=0;kc<256;++kc)mt.push((kc+256).toString(16).substr(1));function Ws(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,t=(mt[e[r+0]]+mt[e[r+1]]+mt[e[r+2]]+mt[e[r+3]]+"-"+mt[e[r+4]]+mt[e[r+5]]+"-"+mt[e[r+6]]+mt[e[r+7]]+"-"+mt[e[r+8]]+mt[e[r+9]]+"-"+mt[e[r+10]]+mt[e[r+11]]+mt[e[r+12]]+mt[e[r+13]]+mt[e[r+14]]+mt[e[r+15]]).toLowerCase();if(!Bs(t))throw TypeError("Stringified UUID is invalid");return t}var Up,jc,Bc=0,Wc=0;function lP(e,r,t){var a=r&&t||0,s=r||new Array(16);e=e||{};var i=e.node||Up,u=e.clockseq!==void 0?e.clockseq:jc;if(i==null||u==null){var l=e.random||(e.rng||Fg)();i==null&&(i=Up=[l[0]|1,l[1],l[2],l[3],l[4],l[5]]),u==null&&(u=jc=(l[6]<<8|l[7])&16383)}var d=e.msecs!==void 0?e.msecs:Date.now(),p=e.nsecs!==void 0?e.nsecs:Wc+1,h=d-Bc+(p-Wc)/1e4;if(h<0&&e.clockseq===void 0&&(u=u+1&16383),(h<0||d>Bc)&&e.nsecs===void 0&&(p=0),p>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");Bc=d,Wc=p,jc=u,d+=122192928e5;var m=((d&268435455)*1e4+p)%4294967296;s[a++]=m>>>24&255,s[a++]=m>>>16&255,s[a++]=m>>>8&255,s[a++]=m&255;var _=d/4294967296*1e4&268435455;s[a++]=_>>>8&255,s[a++]=_&255,s[a++]=_>>>24&15|16,s[a++]=_>>>16&255,s[a++]=u>>>8|128,s[a++]=u&255;for(var S=0;S<6;++S)s[a+S]=i[S];return r||Ws(s)}function Ig(e){if(!Bs(e))throw TypeError("Invalid UUID");var r,t=new Uint8Array(16);return t[0]=(r=parseInt(e.slice(0,8),16))>>>24,t[1]=r>>>16&255,t[2]=r>>>8&255,t[3]=r&255,t[4]=(r=parseInt(e.slice(9,13),16))>>>8,t[5]=r&255,t[6]=(r=parseInt(e.slice(14,18),16))>>>8,t[7]=r&255,t[8]=(r=parseInt(e.slice(19,23),16))>>>8,t[9]=r&255,t[10]=(r=parseInt(e.slice(24,36),16))/1099511627776&255,t[11]=r/4294967296&255,t[12]=r>>>24&255,t[13]=r>>>16&255,t[14]=r>>>8&255,t[15]=r&255,t}function fP(e){e=unescape(encodeURIComponent(e));for(var r=[],t=0;t<e.length;++t)r.push(e.charCodeAt(t));return r}var dP="6ba7b810-9dad-11d1-80b4-00c04fd430c8",pP="6ba7b811-9dad-11d1-80b4-00c04fd430c8";function $g(e,r,t){function a(s,i,u,l){if(typeof s=="string"&&(s=fP(s)),typeof i=="string"&&(i=Ig(i)),i.length!==16)throw TypeError("Namespace must be array-like (16 iterable integer values, 0-255)");var d=new Uint8Array(16+s.length);if(d.set(i),d.set(s,i.length),d=t(d),d[6]=d[6]&15|r,d[8]=d[8]&63|128,u){l=l||0;for(var p=0;p<16;++p)u[l+p]=d[p];return u}return Ws(d)}try{a.name=e}catch{}return a.DNS=dP,a.URL=pP,a}function hP(e){if(typeof e=="string"){var r=unescape(encodeURIComponent(e));e=new Uint8Array(r.length);for(var t=0;t<r.length;++t)e[t]=r.charCodeAt(t)}return gP(vP(mP(e),e.length*8))}function gP(e){for(var r=[],t=e.length*32,a="0123456789abcdef",s=0;s<t;s+=8){var i=e[s>>5]>>>s%32&255,u=parseInt(a.charAt(i>>>4&15)+a.charAt(i&15),16);r.push(u)}return r}function Mg(e){return(e+64>>>9<<4)+14+1}function vP(e,r){e[r>>5]|=128<<r%32,e[Mg(r)-1]=r;for(var t=1732584193,a=-271733879,s=-1732584194,i=271733878,u=0;u<e.length;u+=16){var l=t,d=a,p=s,h=i;t=St(t,a,s,i,e[u],7,-680876936),i=St(i,t,a,s,e[u+1],12,-389564586),s=St(s,i,t,a,e[u+2],17,606105819),a=St(a,s,i,t,e[u+3],22,-1044525330),t=St(t,a,s,i,e[u+4],7,-176418897),i=St(i,t,a,s,e[u+5],12,1200080426),s=St(s,i,t,a,e[u+6],17,-1473231341),a=St(a,s,i,t,e[u+7],22,-45705983),t=St(t,a,s,i,e[u+8],7,1770035416),i=St(i,t,a,s,e[u+9],12,-1958414417),s=St(s,i,t,a,e[u+10],17,-42063),a=St(a,s,i,t,e[u+11],22,-1990404162),t=St(t,a,s,i,e[u+12],7,1804603682),i=St(i,t,a,s,e[u+13],12,-40341101),s=St(s,i,t,a,e[u+14],17,-1502002290),a=St(a,s,i,t,e[u+15],22,1236535329),t=Et(t,a,s,i,e[u+1],5,-165796510),i=Et(i,t,a,s,e[u+6],9,-1069501632),s=Et(s,i,t,a,e[u+11],14,643717713),a=Et(a,s,i,t,e[u],20,-373897302),t=Et(t,a,s,i,e[u+5],5,-701558691),i=Et(i,t,a,s,e[u+10],9,38016083),s=Et(s,i,t,a,e[u+15],14,-660478335),a=Et(a,s,i,t,e[u+4],20,-405537848),t=Et(t,a,s,i,e[u+9],5,568446438),i=Et(i,t,a,s,e[u+14],9,-1019803690),s=Et(s,i,t,a,e[u+3],14,-187363961),a=Et(a,s,i,t,e[u+8],20,1163531501),t=Et(t,a,s,i,e[u+13],5,-1444681467),i=Et(i,t,a,s,e[u+2],9,-51403784),s=Et(s,i,t,a,e[u+7],14,1735328473),a=Et(a,s,i,t,e[u+12],20,-1926607734),t=Tt(t,a,s,i,e[u+5],4,-378558),i=Tt(i,t,a,s,e[u+8],11,-2022574463),s=Tt(s,i,t,a,e[u+11],16,1839030562),a=Tt(a,s,i,t,e[u+14],23,-35309556),t=Tt(t,a,s,i,e[u+1],4,-1530992060),i=Tt(i,t,a,s,e[u+4],11,1272893353),s=Tt(s,i,t,a,e[u+7],16,-155497632),a=Tt(a,s,i,t,e[u+10],23,-1094730640),t=Tt(t,a,s,i,e[u+13],4,681279174),i=Tt(i,t,a,s,e[u],11,-358537222),s=Tt(s,i,t,a,e[u+3],16,-722521979),a=Tt(a,s,i,t,e[u+6],23,76029189),t=Tt(t,a,s,i,e[u+9],4,-640364487),i=Tt(i,t,a,s,e[u+12],11,-421815835),s=Tt(s,i,t,a,e[u+15],16,530742520),a=Tt(a,s,i,t,e[u+2],23,-995338651),t=wt(t,a,s,i,e[u],6,-198630844),i=wt(i,t,a,s,e[u+7],10,1126891415),s=wt(s,i,t,a,e[u+14],15,-1416354905),a=wt(a,s,i,t,e[u+5],21,-57434055),t=wt(t,a,s,i,e[u+12],6,1700485571),i=wt(i,t,a,s,e[u+3],10,-1894986606),s=wt(s,i,t,a,e[u+10],15,-1051523),a=wt(a,s,i,t,e[u+1],21,-2054922799),t=wt(t,a,s,i,e[u+8],6,1873313359),i=wt(i,t,a,s,e[u+15],10,-30611744),s=wt(s,i,t,a,e[u+6],15,-1560198380),a=wt(a,s,i,t,e[u+13],21,1309151649),t=wt(t,a,s,i,e[u+4],6,-145523070),i=wt(i,t,a,s,e[u+11],10,-1120210379),s=wt(s,i,t,a,e[u+2],15,718787259),a=wt(a,s,i,t,e[u+9],21,-343485551),t=Qr(t,l),a=Qr(a,d),s=Qr(s,p),i=Qr(i,h)}return[t,a,s,i]}function mP(e){if(e.length===0)return[];for(var r=e.length*8,t=new Uint32Array(Mg(r)),a=0;a<r;a+=8)t[a>>5]|=(e[a/8]&255)<<a%32;return t}function Qr(e,r){var t=(e&65535)+(r&65535),a=(e>>16)+(r>>16)+(t>>16);return a<<16|t&65535}function yP(e,r){return e<<r|e>>>32-r}function Us(e,r,t,a,s,i){return Qr(yP(Qr(Qr(r,e),Qr(a,i)),s),t)}function St(e,r,t,a,s,i,u){return Us(r&t|~r&a,e,r,s,i,u)}function Et(e,r,t,a,s,i,u){return Us(r&a|t&~a,e,r,s,i,u)}function Tt(e,r,t,a,s,i,u){return Us(r^t^a,e,r,s,i,u)}function wt(e,r,t,a,s,i,u){return Us(t^(r|~a),e,r,s,i,u)}var bP=$g("v3",48,hP);const _P=bP;function SP(e,r,t){e=e||{};var a=e.random||(e.rng||Fg)();if(a[6]=a[6]&15|64,a[8]=a[8]&63|128,r){t=t||0;for(var s=0;s<16;++s)r[t+s]=a[s];return r}return Ws(a)}function EP(e,r,t,a){switch(e){case 0:return r&t^~r&a;case 1:return r^t^a;case 2:return r&t^r&a^t&a;case 3:return r^t^a}}function Uc(e,r){return e<<r|e>>>32-r}function TP(e){var r=[1518500249,1859775393,2400959708,3395469782],t=[1732584193,4023233417,2562383102,271733878,3285377520];if(typeof e=="string"){var a=unescape(encodeURIComponent(e));e=[];for(var s=0;s<a.length;++s)e.push(a.charCodeAt(s))}else Array.isArray(e)||(e=Array.prototype.slice.call(e));e.push(128);for(var i=e.length/4+2,u=Math.ceil(i/16),l=new Array(u),d=0;d<u;++d){for(var p=new Uint32Array(16),h=0;h<16;++h)p[h]=e[d*64+h*4]<<24|e[d*64+h*4+1]<<16|e[d*64+h*4+2]<<8|e[d*64+h*4+3];l[d]=p}l[u-1][14]=(e.length-1)*8/Math.pow(2,32),l[u-1][14]=Math.floor(l[u-1][14]),l[u-1][15]=(e.length-1)*8&4294967295;for(var m=0;m<u;++m){for(var _=new Uint32Array(80),S=0;S<16;++S)_[S]=l[m][S];for(var T=16;T<80;++T)_[T]=Uc(_[T-3]^_[T-8]^_[T-14]^_[T-16],1);for(var w=t[0],D=t[1],P=t[2],F=t[3],$=t[4],L=0;L<80;++L){var O=Math.floor(L/20),Y=Uc(w,5)+EP(O,D,P,F)+$+r[O]+_[L]>>>0;$=F,F=P,P=Uc(D,30)>>>0,D=w,w=Y}t[0]=t[0]+w>>>0,t[1]=t[1]+D>>>0,t[2]=t[2]+P>>>0,t[3]=t[3]+F>>>0,t[4]=t[4]+$>>>0}return[t[0]>>24&255,t[0]>>16&255,t[0]>>8&255,t[0]&255,t[1]>>24&255,t[1]>>16&255,t[1]>>8&255,t[1]&255,t[2]>>24&255,t[2]>>16&255,t[2]>>8&255,t[2]&255,t[3]>>24&255,t[3]>>16&255,t[3]>>8&255,t[3]&255,t[4]>>24&255,t[4]>>16&255,t[4]>>8&255,t[4]&255]}var wP=$g("v5",80,TP);const CP=wP,xP="00000000-0000-0000-0000-000000000000";function OP(e){if(!Bs(e))throw TypeError("Invalid UUID");return parseInt(e.substr(14,1),16)}const RP=Object.freeze(Object.defineProperty({__proto__:null,NIL:xP,parse:Ig,stringify:Ws,v1:lP,v3:_P,v4:SP,v5:CP,validate:Bs,version:OP},Symbol.toStringTag,{value:"Module"})),AP=fw(RP);function zu(e,r){if(!e||!r||!e.length||!r.length)throw new Error("Bad alphabet");this.srcAlphabet=e,this.dstAlphabet=r}zu.prototype.convert=function(e){var r,t,a,s={},i=this.srcAlphabet.length,u=this.dstAlphabet.length,l=e.length,d=typeof e=="string"?"":[];if(!this.isValid(e))throw new Error('Number "'+e+'" contains of non-alphabetic digits ('+this.srcAlphabet+")");if(this.srcAlphabet===this.dstAlphabet)return e;for(r=0;r<l;r++)s[r]=this.srcAlphabet.indexOf(e[r]);do{for(t=0,a=0,r=0;r<l;r++)t=t*i+s[r],t>=u?(s[a++]=parseInt(t/u,10),t=t%u):a>0&&(s[a++]=0);l=a,d=this.dstAlphabet.slice(t,t+1).concat(d)}while(a!==0);return d};zu.prototype.isValid=function(e){for(var r=0;r<e.length;++r)if(this.srcAlphabet.indexOf(e[r])===-1)return!1;return!0};var PP=zu,DP=PP;function Ya(e,r){var t=new DP(e,r);return function(a){return t.convert(a)}}Ya.BIN="01";Ya.OCT="01234567";Ya.DEC="0123456789";Ya.HEX="0123456789abcdef";var FP=Ya;const{v4:Hc}=AP,Ko=FP,Gc="123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ",IP="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!#$%&'()*+-./:<=>?@[]^_`{|}~",$P={consistentLength:!0};let qc;const Hp=(e,r,t)=>{const a=r(e.toLowerCase().replace(/-/g,""));return!t||!t.consistentLength?a:a.padStart(t.shortIdLength,t.paddingChar)},MP=(e,r)=>{const a=r(e).padStart(32,"0").match(/(\w{8})(\w{4})(\w{4})(\w{4})(\w{12})/);return[a[1],a[2],a[3],a[4],a[5]].join("-")},LP=e=>Math.ceil(Math.log(2**128)/Math.log(e));var Ba=(()=>{const e=(r,t)=>{const a=r||Gc,s={...$P,...t};if([...new Set(Array.from(a))].length!==a.length)throw new Error("The provided Alphabet has duplicate characters resulting in unreliable results");const i=LP(a.length),u={shortIdLength:i,consistentLength:s.consistentLength,paddingChar:a[0]},l=Ko(Ko.HEX,a),d=Ko(a,Ko.HEX),p=()=>Hp(Hc(),l,u),h={new:p,generate:p,uuid:Hc,fromUUID:m=>Hp(m,l,u),toUUID:m=>MP(m,d),alphabet:a,maxLength:i};return Object.freeze(h),h};return e.constants={flickrBase58:Gc,cookieBase90:IP},e.uuid=Hc,e.generate=()=>(qc||(qc=e(Gc).generate),qc()),e})(),Te=(e=>(e.DATACLASS="dataclass",e.METHOD="method",e.ATTRIBUTE="attribute",e.DATASTORE="datastore",e.SINGLTON="singleton",e.SINGLTON_METHOD="singletonMethod",e))(Te||{});const NP=[Te.DATASTORE,Te.DATACLASS,Te.ATTRIBUTE,Te.METHOD,Te.SINGLTON_METHOD,Te.SINGLTON],_s="guest",Ku=[{key:"read",label:"Read",canApplyTo:[Te.DATASTORE,Te.DATACLASS,Te.ATTRIBUTE]},{key:"create",label:"Create",canApplyTo:[Te.DATASTORE,Te.DATACLASS,Te.ATTRIBUTE]},{key:"update",label:"Update",canApplyTo:[Te.DATASTORE,Te.DATACLASS,Te.ATTRIBUTE]},{key:"drop",label:"Delete",canApplyTo:[Te.DATASTORE,Te.DATACLASS,Te.ATTRIBUTE]},{key:"describe",label:"Describe",canApplyTo:[Te.DATASTORE,Te.DATACLASS,Te.ATTRIBUTE,Te.METHOD,Te.SINGLTON,Te.SINGLTON_METHOD]},{key:"execute",label:"Execute",canApplyTo:[Te.DATASTORE,Te.DATACLASS,Te.METHOD,Te.SINGLTON,Te.SINGLTON_METHOD]},{key:"promote",label:"Promote",canApplyTo:[Te.METHOD,Te.SINGLTON_METHOD]}];function ar(e,...r){return Array.from(new Set([...e,...r]))}function Lg(e){const r={},t=new Map;e.forEach(d=>{const p=d.id||Ba.generate();r[p]={...d,id:p,parents:[],includes:ar(d.includes||[]),resources:[]},t.set(d.privilege,p)}),Object.entries(r).forEach(([d,p])=>{const h=p.includes.map(m=>{const _=t.get(m);return _?(r[_].parents=ar(r[_].parents,_),_):""}).filter(Boolean);r[d]={...p,includes:h}});const a=Ng(r),s=new Set;function i(d){s.add(d.id),d.includes=d.includes.filter(p=>!s.has(p))}if(a.forEach(i),a.forEach(d=>d.parents=[]),a.forEach(d=>{d.includes.forEach(p=>r[p].parents.push(d.id))}),Object.values(r).find(({privilege:d})=>d===_s))return r;const l=Ba.generate();return{[l]:{id:l,privilege:_s,includes:[],parents:[],resources:[]},...r}}function Ng(e){return Object.values(e).sort((r,t)=>r.parents.length-t.parents.length)}function Hs(e,r){const t=r[e];let a=[];return t&&t.parents.forEach(s=>{a=ar(a,...Hs(s,r),s)}),a}function Ss(e,r){const t=r[e];let a=[];return t&&t.includes.forEach(s=>{a=ar(a,...Ss(s,r),s)}),a}function kP(e,r){const t=r[e];if(!t)return[];const a=[e,...Hs(e,r),...t.includes];return Object.keys(r).filter(s=>!a.includes(s))}function jP(e,r){return r[e]?Object.keys(r).reduce((a,s)=>s===e?a:{...a,[s]:{...r[s],parents:r[s].parents.filter(i=>i!==e),includes:r[s].includes.filter(i=>i!==e)}},{}):r}function BP(e,r,t){const a=t[e],s=t[r];return!a||!s?t:{...t,[e]:{...t[e],includes:ar(a.includes,r)},[r]:{...t[r],parents:ar(s.parents,e)}}}function WP(e,r,t){const a=t[e],s=t[r];return!a||!s?t:{...t,[e]:{...t[e],includes:t[e].includes.filter(i=>i!==r)},[r]:{...t[r],parents:t[r].parents.filter(i=>i!==e)}}}function kg(e,r){v.validateName(e),Object.entries(r).forEach(([,{privilege:a}])=>{if(e.toLowerCase()===a.toLowerCase())throw new Error(`There's already a Privilege with the name ${e}`)});const t=Ba.generate();return{[t]:{id:t,privilege:e,includes:[],parents:[],resources:[]},...r}}function UP(e,r,t,a,s){let i=kg(e,s);const u=Object.entries(i).find(([,l])=>l.privilege===e);return u?(i=Ug(u[1].id,r,t,a,i),i):s}function HP(e,r,t){if(!e)throw new Error("Please enter a name");if(!t[r])throw new Error("Invalid privilege");return Object.entries(t).forEach(([,{privilege:a,id:s}])=>{if(e.toLowerCase()===a.toLowerCase()&&r!==s)throw new Error(`There's already a Privilege with the name ${e}`)}),{...t,[r]:{...t[r],privilege:e}}}function GP(e,r){return e.map(t=>jr(t,r))}function jr(e,r){return r[e]?r[e]:null}function jg({applyTo:e,type:r,...t}){return Object.entries(t).reduce((a,[s,i])=>{const u=Ae.find(Ku,["key",s]);return!u||!u.canApplyTo.includes(r)||(typeof i=="string"?i.split(","):i).forEach(d=>{a[d]=ar(a[d]||[],s)}),a},{})}const hu=(e,r=!1)=>["read","create","update","delete"].includes(e.toLowerCase())?`All ${r?"dataclasses and ":""}attributes have the '${e.toLowerCase()}' permission`:e.toLowerCase()==="execute"?`All functions defined ${r?"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 ${r?"dataclasses, ":""}attributes and functions have the '${e.toLowerCase()}' permission`;function Ju(e){return{permissions:Ku.filter(({canApplyTo:r})=>r.includes(e.type)).map(({key:r,label:t})=>{const a={name:r,from:[]};switch(e.type){case Te.DATASTORE:return{...a,info:hu(t,!0)};case Te.DATACLASS:return{...a,info:hu(t)};default:return a}}),resource:e.applyTo,type:e.type}}function Bg(e,r){const t=Wg(r),a={};return e.filter(({type:s})=>NP.includes(s)).forEach(s=>{const i=jg(s);Object.entries(i).forEach(([u,l])=>{var h;const d=(h=t[u])==null?void 0:h.id;if(!d)return;a[d]=a[d]||{...r[d]};let p=Ae.find(a[d].resources,{resource:s.applyTo,type:s.type});p||(p=Ju(s),a[d].resources.push(p)),p.permissions=p.permissions.map(m=>({...m,checked:m.checked||l.includes(m.name)}))})}),{...r,...a}}function Wg(e){return Object.values(e).reduce((r,t)=>({...r,[t.privilege]:t}),{})}function Gs(e){var t;const r=Lg(e.privileges||[]);return{forceLogin:e==null?void 0:e.forceLogin,privileges:Bg(((t=e.permissions)==null?void 0:t.allowed)||[],r),roles:(e.roles||[]).map(({id:a=Ba.generate(),role:s,privileges:i=[]})=>({id:a,role:s,privileges:ar(i).map(u=>{var l;return(l=Object.values(r).find(({privilege:d})=>d===u))==null?void 0:l.id}).filter(Boolean)})).reduce((a,s)=>({...a,[s.id]:{...s}}),{})}}function qs(e){const r=Object.values(e.privileges).filter(({includes:a})=>a.length===0).map(({id:a})=>a),t=[...r,...r.map(a=>Hs(a,e.privileges).reverse())].flat().filter((a,s,i)=>i.indexOf(a)===s).map(a=>e.privileges[a]);return{forceLogin:e.forceLogin,permissions:{allowed:Object.values(e.privileges).reduce((a,s)=>(s.resources.forEach(({permissions:i,resource:u,type:l})=>{let d=Ae.find(a,{applyTo:u,type:l});d||(d={applyTo:u,type:l},a.push(d)),i.forEach(({name:p,checked:h})=>{h&&d&&(d[p]=d[p]||[],d[p].push(s.privilege))})}),a),[])},privileges:t.filter(({privilege:a})=>a!==_s).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 qP(e,r){const t=r[e],a={children:[],links:[],parents:[],selected:e};if(!t)return a;function s(l,d,p=[]){const h=l.reduce((m,_)=>[...m,...r[_][d]],[]);return h.length===0?p:(p.push(h),s(h,d,p))}function i(l){const d=[],p=[];for(let h=l.length-1;h>=0;h-=1){const m=l[h].filter(_=>d.includes(_)?!1:(d.push(_),!0));m.length>0&&p.unshift(ar(m))}return p}function u(l,d){const p=[];return l.reduce((h,m)=>(m.forEach(_=>{r[_][d==="parents"?"includes":"parents"].forEach(T=>{p.includes(T)&&h.push(d==="parents"?{source:_,target:T}:{source:T,target:_})}),p.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 YP(e,r,t){const a=jr(e,t);if(!a||Ae.find(a.resources,{resource:r.applyTo,type:r.type}))return t;const s={...a,resources:[...a.resources,Ju(r)]};return{...t,[e]:s}}function VP(e,r,t){const a=jr(e,t);if(!a)return t;const s={...a,resources:a.resources.filter(({resource:i,type:u})=>i!==r.applyTo||u!==r.type)};return{...t,[e]:s}}function zP(e,r){const t=jr(e,r);if(!t)return r;const a={...t,resources:t.resources.filter(s=>s.permissions.some(i=>i.from.length)).map(s=>({...s,permissions:s.permissions.map(i=>({...i,checked:!1}))}))};return{...r,[e]:a}}function Ug(e,r,t,a,s){const i=jr(e,s);if(!i)return s;const l=Ae.find(i.resources,{type:t,resource:r})?{...i,resources:i.resources.map(d=>d.type===t&&d.resource===r?{...d,permissions:d.permissions.map(p=>p.name===a?{...p,checked:!p.checked,from:[]}:p)}:d)}:{...i,resources:[...i.resources,{type:t,resource:r,permissions:Ku.filter(d=>d.canApplyTo.includes(t)).map(d=>({from:[],name:d.key,checked:d.key===a,info:hu(d.key,t===Te.DATASTORE)}))}]};return{...s,[e]:l}}function KP(e,r,t,a){const s=jr(e,a);if(!s)return a;const u=Ae.find(s.resources,{type:r.type,resource:r.resource})?{...s,resources:s.resources.map(l=>l.type===r.type&&l.resource===r.resource?{...l,permissions:r.permissions.map(d=>d.name===t.name?{...d,checked:!d.checked,from:[]}:d)}:l)}:{...s,resources:[...s.resources,{...r,permissions:r.permissions.map(l=>({...l,checked:t.name===l.name,from:[]}))}]};return{...a,[e]:u}}function JP(e,r){var d;const t=Hg(e,r)||[],a=((d=jr(e,r))==null?void 0:d.resources)||[],u=([...t,...a].filter(({type:p})=>p===Te.METHOD)||[]).map(({resource:p})=>p);return Object.entries(r).reduce((p,[h,{resources:m}])=>(m.filter(({resource:_,type:S})=>S===Te.METHOD&&u.includes(_)).forEach(({permissions:_,resource:S})=>{var w;((w=_.find(({name:D})=>D==="promote"))==null?void 0:w.checked)&&(p[S]=ar(p[S]||[],h))}),p),{})}function Hg(e,r){var u;const t=jr(e,r);if(!t)return[];const a=(u=Object.values(r).find(l=>l.privilege===_s))==null?void 0:u.id;return(a&&a!==e?ar(Ss(e,r),a):Ss(e,r)).reduce((l,d)=>(r[d].resources.forEach(h=>{if(h.permissions.filter(({checked:S,name:T})=>S&&T!=="promote").length===0)return;const _=Ae.find(l,{type:h.type,resource:h.resource});if(!_){l.push({...h,permissions:h.permissions.map(S=>({...S,from:S.checked?[d]:[],checked:!1}))});return}_.permissions=_.permissions.map((S,T)=>{let{from:w=[]}=S;return h.permissions[T].checked&&!w.includes(d)&&(w=[...w,d]),{...S,from:w,checked:S.checked}})}),l),Ae.clone(t.resources.map(l=>({...l,permissions:l.permissions.map(({checked:d,...p})=>({...p,checked:!!d}))}))))}const XP=e=>e.reduce((r,t)=>({...r,[t.id]:{...t}}),{}),ZP=(e,r)=>r[e]?Object.values(r).reduce((t,a)=>e===a.id||a.role===""?t:{...t,[a.id]:a},{}):r,QP=(e,r,t)=>t[e]?Object.values(t).reduce((a,s)=>e===s.id?{...a,[s.id]:{...s,name:r}}:{...a,[s.id]:s},{}):t,eD=(e,r)=>{const t={id:e,role:"",privileges:[]};return{...r,[t.id]:t}},tD=(e,r)=>{if(v.validateName(e.role),Object.values(r).find(a=>a.role===e.role))throw new Error(`a role with the name ${e.role} already exists`);return Object.values(r).reduce((a,s)=>e.id===s.id?{...a,[e.id]:e}:{...a,[s.id]:s},{})},rD={list:[]},Gp=(e,r)=>e.list.filter(t=>t.id!==r),Gg=Yt({name:"modals",initialState:rD,reducers:{createModal:(e,r)=>{e.list.push(r.payload)},editModal:(e,r)=>{const{id:t,...a}=r.payload,s=e.list.find(v.byId(t));s&&Object.assign(s,{...a})},removeModal:(e,r)=>{const t=r.payload;e.list=Gp(e,t)},closeModal:(e,r)=>{const{id:t,reason:a}=r.payload;if(a){const s=e.list.find(i=>i.id===t);s&&(s.closeReason=a,s.isOpen=!1)}else e.list=Gp(e,t)}}}),{createModal:qg,removeModal:Yg,closeModal:nD,editModal:aD}=Gg.actions,or=Q("modals/open",async(e,{dispatch:r})=>{const t=zv(),{type:a=v.ModalType.ALERT}=e,s=Au();switch(r(qg({id:s,type:a,isOpen:!0,...e})),a){case v.ModalType.CONFIRM:return new Promise(i=>{const u=t.subscribe(()=>{var p;const{modals:l}=t.getState(),d=l.list.find(h=>h.id===s);if(d&&!d.isOpen){const h=d.closeReason===v.ModalCloseReason.CONFIRMED,m=Ae.entries((p=d.views)==null?void 0:p.toggles).reduce((_,S)=>({..._,[S[0]]:S[1].value}),{});r(Yg(s)),u(),i({confirmed:h,options:m})}})});default:return{}}}),Vg=()=>v.getFileContent({name:v.ROLES_TAB_PATH}),zg="Roles & Privileges",Es=Q("roles/fetchRoles",async(e,{dispatch:r,rejectWithValue:t})=>{var i;let a;try{a=await Vg()}catch(u){if(!Array.isArray((i=u==null?void 0:u.data)==null?void 0:i.__ERROR))return t("Error while loading the roles");a={name:v.ROLES_TAB_PATH,date:new Date().toISOString(),content:{permissions:{allowed:[]},privileges:[],roles:[]}}}const s={name:zg,type:v.FileFolderType.ROLES,date:a.date,view:{panel:{isOpen:!1,type:"",current:""}},path:v.ROLES_TAB_PATH,flags:{},extra:{editor:{key:"editors:roles"}},content:{}};return r(Dt(s)),{...a,content:Gs(a.content)}}),Kg=Q("roles/fetchRolesChanges",async(e,{getState:r})=>{const{tabs:t}=r().root;if(t.find(s=>s.path===v.ROLES_TAB_PATH)){const{date:s}=r().roles;if(s&&await Xu(s))return{old:!0}}return{}}),Xu=async e=>{if(!e)return!1;try{const r=await Vg();if(r.date){const t=new Date(e),a=new Date(r.date);if(t>a)return!0}}catch(r){if(!Array.isArray(r==null?void 0:r.data.__ERROR))throw r}return!1},gu=Q("roles/saveRoles",async(e,{getState:r,rejectWithValue:t,dispatch:a})=>{try{const{flags:s,date:i}=r().roles;if(s.old||await Xu(i)){const{confirmed:d}=await a(or({title:zg,message:"New content has been found on the server. Are you sure you want to continue?",type:v.ModalType.CONFIRM,icon:"FdSave"})).unwrap();if(!d)return t({old:!0})}return await v.setFileContent({name:v.ROLES_TAB_PATH,content:qs(e)})}catch{return t("Error while loading the roles")}}),Jg=Yt({name:"roles",initialState:()=>{const{roles:e}=Zn(),{roles:r={},privileges:t={},flags:a={touched:!1},date:s,selectedTab:i="roles"}=e||{};return{flags:a,roles:r,privileges:t,date:s,selectedTab:i}},reducers:{updatePrivileges:(e,r)=>{e.privileges=r.payload,e.flags.touched=!0},updateRoles:(e,r)=>{e.roles=r.payload,e.flags.touched=!0},updateRolesAndPrivileges:(e,r)=>{e.roles=r.payload.roles,e.privileges=r.payload.privileges},toggleTab:(e,r)=>{e.selectedTab=r.payload},toggleForceLogin:(e,r)=>{e.forceLogin!==r.payload&&(e.forceLogin=r.payload,e.flags.touched=!0)},setRolesContent(e,r){const{content:t,flags:a={},...s}=r.payload,i=Gs(t),u={...e.flags,...a};return{...e,...i,...s,flags:u}}},extraReducers(e){e.addCase(Es.fulfilled,(r,t)=>{const{content:a,date:s}=t.payload;r={...r,...a,date:s}}).addCase(Es.rejected,r=>({...r,roles:{},privileges:{},flags:{touched:!1},date:void 0})).addCase(gu.fulfilled,(r,t)=>({...r,flags:{...r.flags,confirmed:!0,touched:!1,old:!1},date:t.payload.date})).addCase(gu.rejected,(r,t)=>h1.isString(t.payload)?r:{...r,flags:{...r.flags,...t.payload}}).addCase(Kg.fulfilled,(r,t)=>({...r,flags:{...r.flags,...t.payload}})).addCase(zn.fulfilled,(r,t)=>{!t.payload||t.payload.path!==v.ROLES_TAB_PATH||(r.flags.touched=!1,r.flags.old=!1)}).addCase(al.fulfilled,(r,t)=>{t.meta.arg!==v.ROLES_TAB_PATH||!t.payload||(r.flags.touched=!1,r.flags.old=!1)})}}),{updatePrivileges:Xg,updateRoles:Zg,setRolesContent:Zu,toggleTab:oD,toggleForceLogin:sD,updateRolesAndPrivileges:Qu}=Jg.actions,iD=Jg.reducer,el=Q("settings/fetch",async()=>await v.getNodeInfo({verb:v.DesignerRequestVerb.GET_INFO,path:v.SETTINGS_TAB_PATH,content:!0,as:"json"})),Qg=Q("settings/app",v.getAppSettings),cD=Mu(),qp={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":qu.SHOW_AFTER_TIMEOUT,"webforms.tooltip.timeout":3e3,"webforms.renderer.showPopOver":!0,"webforms.renderer.showUnsavedPopOver":!0,"webforms.renderer.unsavedPopOverChoice":Yu.NONE,"welcometour.active":!0,"webforms.properties.advanced-mode":!1,"monaco.zoom":0,"webforms.i18n.current":""},project:{"webforms.renderer.indexPage":"","webforms.display-mode":"neutral","webforms.i18n":{supported:[],primary:""}},server:{projectOpened:!1,remoteDebuggerMode:v.RemoteDebuggerMode.DISABLED,baseUrl:"",qodly:!0,urls:{renderer:"/$lib/renderer/",debugger:"",lsp:""},isRestActive:!0}},uD={...qp,session:{...qp.session,...cD},welcometour:{}},ev=Yt({name:"settings",initialState:uD,reducers:{setSetting(e,r){const{path:t,settingsKey:a,value:s}=r.payload;e[t][a]=s},setSettings(e,r){const{path:t,value:a}=r.payload;e[t]={...e[t],...a}},setSettingsAsText(e,r){const{path:t,settings:a}=r.payload;e[t]=a}},extraReducers(e){e.addCase(el.fulfilled,(r,t)=>{r.project={...r.project,...t.payload.content}}),e.addCase(Qg.fulfilled,(r,t)=>{r.server=t.payload,r.server.qodly&&(r.project["webforms.display-mode"]="airy")})}}),{setSetting:vu,setSettings:Ys,setSettingsAsText:lD}=ev.actions,fD=ev.reducer,mu=e=>{const r=["folder","file"];return e.sort((t,a)=>t.type===a.type?t.name.localeCompare(a.name):r.indexOf(t.type)-r.indexOf(a.type))},Pe=(e,r)=>e.reduce((t,a)=>a.path===r.path&&a.type===r.type?[...t,r]:a.children?[...t,{...a,children:mu(Pe(a.children,r))}]:[...t,a],[]),lt=(e,r)=>e.reduce((t,a)=>t||(a.path===r?a:a.children?lt(a.children,r):null),null),tv=[{name:v.FolderRootPath.WEBFORMS,type:v.FileFolderType.FOLDER,children:[],path:v.FolderRootPath.WEBFORMS,error:null,flags:{expanded:!1,loading:!1,cached:!1},tipKey:"editors:webform:explorer:webforms",config:{},isRoot:!0},{name:v.FolderRootPath.METHODS,type:v.FileFolderType.FOLDER,children:[],path:v.FolderRootPath.METHODS,error:null,flags:{expanded:!1,loading:!1,cached:!1},config:{},isRoot:!0},{name:v.FolderRootPath.CLASSES,type:v.FileFolderType.FOLDER,children:[],path:v.FolderRootPath.CLASSES,error:null,flags:{expanded:!1,loading:!1,cached:!1},config:{},isRoot:!0},{name:v.FolderRootPath.SHARED,type:v.FileFolderType.FOLDER,children:[],path:v.FolderRootPath.SHARED,error:null,flags:{expanded:!1,loading:!1,cached:!1},config:{},isRoot:!0},{name:"Debugger",type:v.FileFolderType.FOLDER,children:[],path:"Debugger",error:null,flags:{expanded:!1,cached:!0},config:{},isRoot:!0},{name:"Roles And Privileges",type:v.FileFolderType.FILE,ext:"json",path:v.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:v.FileFolderType.MODEL,ext:"4DModel",path:v.MODEL_TAB_PATH,error:null,flags:{},config:{editor:{key:"editors:model"},supportedEditors:[{key:"editors:code",config:{language:"json",theme:"vs-dark"}}]}},{name:"Settings",type:v.FileFolderType.FILE,ext:"json",path:"qodlyApp.json",error:null,flags:{},config:{editor:{key:"editors:settings"}},isRoot:!0}],dD=Mu(),pD=!!Ae.get(dD,"features.experimental.reports");pD&&tv.unshift({name:v.FolderRootPath.REPORTS,type:v.FileFolderType.FOLDER,children:[],path:v.FolderRootPath.REPORTS,error:null,flags:{expanded:!1,loading:!1,cached:!1},tipKey:"editors:report:explorer:reports",config:{},isRoot:!0});const rv=Yt({name:"explorer",initialState:tv,reducers:{renameClassesFolder:(e,r)=>{const{payload:t}=r,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 t.forEach(({newName:u,prevName:l})=>{var d;a.children=(d=a.children)==null?void 0:d.map(p=>{var h;return p.path.endsWith("[<QODLY_ID>]")&&p.name===l?{...p,name:u,path:`Classes/${u}___[<QODLY_ID>]`,children:(h=p.children)==null?void 0:h.map(m=>{var _;return{...m,path:m.path.replace(l,u),info:{...m.info,filename:i((_=m.info)==null?void 0:_.kind,u),dataclass:u}}})}:p})}),e[s]=a,e},removeClassesFolder:(e,r)=>{const{payload:t}=r;if(!t||t.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 t.forEach(u=>{var d,p;const l=(d=a.children)==null?void 0:d.find(h=>h.name===u);if(l){let h=(p=l.children)==null?void 0:p.filter(m=>{var _;return(_=m.info)==null?void 0:_.exist});h&&(h==null?void 0:h.length)>0&&(h=h.map(m=>{var _;return{...m,name:(_=m.info)==null?void 0:_.filename,info:{...m.info,kind:"userClass"}}}),i=i.concat(h))}}),a.children=a.children.filter(u=>!t.includes(u.name)),a.children=a.children.concat(i),a.children.sort((u,l)=>u.name==="DataStore"?-1:l.name==="DataStore"?1:u.type===v.FileFolderType.CLASS_FOLDER&&l.type===v.FileFolderType.CLASS_FOLDER||u.type===v.FileFolderType.CLASS&&l.type===v.FileFolderType.CLASS?u.name.localeCompare(l.name):u.type===v.FileFolderType.CLASS_FOLDER&&l.type!==v.FileFolderType.CLASS_FOLDER?-1:1),e[s]=a,e},addClassesFolder:(e,r)=>{const{payload:t}=r;if(t.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===v.FileFolderType.CLASS_FOLDER&&(i=l)}),t.forEach(u=>{var l;a.children=(l=a.children)==null?void 0:l.filter(d=>{var h,m;const p=(h=u.children)==null?void 0:h.find(_=>{var S;return((S=_.info)==null?void 0:S.filename)===d.name});return p&&(u.children=(m=u.children)==null?void 0:m.map(_=>{var S;return((S=_.info)==null?void 0:S.filename)===d.name?{..._,info:{..._.info,exist:!0}}:_})),!p})}),t.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===v.FileFolderType.CLASS_FOLDER&&l.type===v.FileFolderType.CLASS_FOLDER?u.name.localeCompare(l.name):u.type===v.FileFolderType.CLASS_FOLDER&&l.type!==v.FileFolderType.CLASS_FOLDER?-1:1),e[s]=a,e},toggleExpandFolder:(e,r)=>(e=Pe(e,{...r.payload,flags:{...r.payload.flags,expanded:!r.payload.flags.expanded}}),e),expandFolder:(e,r)=>(e=Pe(e,{...r.payload,flags:{...r.payload.flags,expanded:!0}}),e),openAddFileInput:(e,r)=>Pe(e,{...r.payload,flags:{...r.payload.flags,adding:!0}}),addNewFile:(e,r)=>{const{parent:t,child:a}=r.payload;return Pe(e,{...t,children:[a,...t.children||[]]})},removeFile:(e,r)=>{const{parent:t,child:a}=r.payload;return Pe(e,{...t,children:t.children.filter(s=>s.path!==a.path)})},refreshFile:(e,r)=>{const{parent:t,child:a}=r.payload,s=(t.children||[]).filter(i=>i.path!==a.path&&!a.error);return Pe(e,{...t,children:[a,...s]})},setFolderChildren:(e,r)=>{const t=lt(e,r.payload.parentPath);return t?Pe(e,{...t,children:r.payload.children}):e}},extraReducers:e=>{e.addCase(Vn.pending,(r,t)=>{const{file:a,newname:s}=t.meta.arg,i=lt(r,a.path);if(!i)return r;const u=a.path.split("/");u.pop();const l=`${u.join("/")}/${a.name}.${a.ext}`,d=`${u.join("/")}/${s}.${a.ext}`;switch(a.ext){case"4dm":case"4qs":v.lspSubject.next({action:v.LspActions.WILL_RENAME,payload:{oldPath:l,newPath:d}});break}return Pe(r,{...i,flags:{...i.flags,loading:!0}})}),e.addCase(Vn.fulfilled,(r,t)=>{const{meta:{arg:{file:a}},payload:s}=t,i=lt(r,a.path);if(!i)return r;switch(s.old.ext){case"4dm":case"4qs":v.lspSubject.next({action:v.LspActions.DID_RENAME,payload:{oldPath:s.old.path,newPath:s.new.path}});break}return Pe(r,{...i,flags:{...i.flags,loading:!1}})}),e.addCase(Vn.rejected,(r,t)=>{const{file:a}=t.meta.arg,s=lt(r,a.path);return s?Pe(r,{...s,flags:{...s.flags,loading:!1}}):r}),e.addCase(rn.pending,(r,t)=>{const a=typeof t.meta.arg=="string"?t.meta.arg:t.meta.arg.nodePath,s=lt(r,a);return s?Pe(r,{...s,flags:{...s.flags,loading:!0}}):r}),e.addCase(rn.fulfilled,(r,t)=>{const a=typeof t.meta.arg=="string"?t.meta.arg:t.meta.arg.nodePath,s=lt(r,a);return s?Pe(r,{...s,children:mu(t.payload),flags:{...s.flags,loading:!1,cached:!0,expanded:!0},error:null}):r}),e.addCase(rn.rejected,(r,t)=>{const a=typeof t.meta.arg=="string"?t.meta.arg:t.meta.arg.nodePath,s=lt(r,a);return s?Pe(r,{...s,error:{message:t.payload},flags:{...s.flags,loading:!1,cached:!0,expanded:!0}}):r}),e.addCase(Fa.pending,(r,t)=>{const a=t.meta.arg,s=lt(r,a);return s?Pe(r,{...s,flags:{...s.flags,loading:!0}}):r}),e.addCase(Fa.fulfilled,(r,t)=>{const a=t.meta.arg,s=lt(r,a);return s?Pe(r,{...s,children:mu(t.payload),flags:{...s.flags,loading:!1,cached:!0,expanded:!1},error:null}):r}),e.addCase(Fa.rejected,(r,t)=>{const a=t.meta.arg,s=lt(r,a);return s?Pe(r,{...s,error:{message:t.payload},flags:{...s.flags,loading:!1,cached:!0,expanded:!1}}):r}),e.addCase(ts.pending,(r,t)=>{const{fileName:a,parentNode:s,path:i,type:u}=t.meta.arg,l=v.getFileExtentionFromType(u),d=`${i}/${a}${l?`.${l}`:""}`;return Pe(r,{...s,children:[{name:a,path:d,type:u,error:null,flags:{loading:!0},config:{}},...s.children]})}),e.addCase(ts.fulfilled,(r,t)=>{const{path:a,fileName:s,type:i}=t.meta.arg,u=v.getFileExtentionFromType(i),l=`${a}${u?`.${u}`:""}`,{editor:d,supportedEditors:p}=xt(l);return Pe(r,{name:s,path:l,type:i,error:null,flags:{loading:!1},config:{editor:d,supportedEditors:p}})}),e.addCase(ts.rejected,(r,t)=>{const{path:a,fileName:s,type:i}=t.meta.arg,u=v.getFileExtentionFromType(i),l=`${a}${u?`.${u}`:""}`;return Pe(r,{name:s,path:l,type:i,error:{message:t.payload},flags:{loading:!1},config:{}})}),e.addCase(rs.pending,(r,t)=>{const{node:a,parentNode:s}=t.meta.arg,i=`${a.name}_copy`,u=`${a.path}/${i}${a.ext?`.${a.ext}`:""}`;return Pe(r,{...s,children:[{name:i,path:u,type:a.type,error:null,flags:{loading:!0},permissions:{canRename:!0,canDelete:!0}},...s.children]})}),e.addCase(rs.fulfilled,(r,t)=>{const{node:a}=t.payload,s=Jh(a.name),i=`${a.path}/${a.name}`,{editor:u,supportedEditors:l}=xt(i);return Pe(r,{name:s,path:i,type:a.type,error:null,flags:{loading:!1},config:{editor:u,supportedEditors:l}})}),e.addCase(rs.rejected,(r,t)=>{const a=t.payload,{node:s}=t.meta.arg,i=`${s.name}_copy`,u=`${s.path}/${i}${s.ext?`.${s.ext}`:""}`;return Pe(r,{name:i,path:u,type:s.type,error:{message:a},flags:{loading:!1},config:{}})}),e.addCase($a.pending,()=>{}),e.addCase($a.fulfilled,(r,t)=>{var m;const{draggedNode:a,newLocation:s}=t.meta.arg,i=Kh(a.path),u=lt(r,i),l=lt(r,s.path),d=(m=u==null?void 0:u.children)==null?void 0:m.filter(_=>_.path!==a.path),p=s.path.split("/").length,h=a.path.split("/").length;return p>=h?(r=Pe(r,{...u,children:d}),r=Pe(r,{...l,children:[{...a,path:`${l.path}/${a.name}`},...l!=null&&l.children?l.children:[]],flags:{...l.flags,expanded:!0}})):(r=Pe(r,{...l,children:[{...a,path:`${l.path}/${a.name}`},...l!=null&&l.children?l.children:[]],flags:{...l.flags,expanded:!0}}),r=Pe(r,{...u,children:d})),r}),e.addCase($a.rejected,()=>{v.toastSubject.next({message:"Error moving file",kind:"danger"})}),e.addCase(Yn.pending,(r,t)=>{var w;const{fileName:a,parentNode:s,path:i,type:u,qodly:l}=t.meta.arg,d=v.getFileExtentionFromType(u,l),p=`${i}/${a}${d?`.${d}`:""}`,{editor:h,supportedEditors:m}=xt(p);switch(u){case v.FileFolderType.CLASS:case v.FileFolderType.METHOD:v.lspSubject.next({action:v.LspActions.WILL_CREATE,payload:{filePath:p}});break}const S=[...(w=s.children)==null?void 0:w.filter(D=>D.path!==p),{name:a,path:p,type:u===v.FileFolderType.CLASS?u:v.FileFolderType.FILE,error:null,flags:{loading:!0},config:{editor:h,supportedEditors:m},ext:d,date:new Date().toISOString(),info:{exist:!0,kind:u===v.FileFolderType.CLASS?"userClass":""}}],T=Pe(r,{...s,children:S});return Ae.merge(r,T)}),e.addCase(Yn.fulfilled,(r,t)=>{const{fileName:a,path:s,type:i,qodly:u}=t.meta.arg,l=v.getFileExtentionFromType(i,u),d=`${s}/${a}${l?`.${l}`:""}`,{editor:p,supportedEditors:h}=xt(d),m=Pe(r,{name:a,path:d,type:v.FileFolderType.FILE,error:null,flags:{},config:{editor:p,supportedEditors:h},ext:l,date:new Date().toISOString(),info:{exist:!0,kind:i===v.FileFolderType.CLASS?"userClass":""}});switch(i){case v.FileFolderType.CLASS:case v.FileFolderType.METHOD:v.lspSubject.next({action:v.LspActions.DID_CREATE,payload:{filePath:d}});break}return r=m,r}),e.addCase(Yn.rejected,(r,t)=>{const{fileName:a,path:s,type:i}=t.meta.arg,u=v.getFileExtentionFromType(i),l=`${s}${u?`.${u}`:""}`,{editor:d,supportedEditors:p}=xt(l);return r=Pe(r,{name:a,path:l,type:v.FileFolderType.FILE,error:{message:"Failed creating file"},flags:{},config:{editor:d,supportedEditors:p},ext:u,date:new Date().toISOString()}),r}),e.addMatcher(hh(Ia),(r,t)=>{const a=lt(r,t.meta.arg.file.path);return a&&(r=Pe(r,{...a,flags:{...a.flags,loading:!0}})),r}),e.addMatcher(vh(Ia),(r,t)=>{const a=lt(r,t.meta.arg.file.path),s=a!=null&&a.info?{...a.info,exist:!0}:void 0;return a&&(r=Pe(r,{...a,flags:{...a.flags,loading:!1},info:s})),r}),e.addMatcher(gh(Ia),(r,t)=>{const a=lt(r,t.meta.arg.file.path);return a&&(r=Pe(r,{...a,flags:{...a.flags,loading:!1}})),v.toastSubject.next({message:"Failed to open file, try again",kind:"danger"}),r})}}),{toggleExpandFolder:hD,expandFolder:gD,openAddFileInput:vD,addNewFile:nv,refreshFile:mD,removeFile:yu,setFolderChildren:yD,addClassesFolder:bD,removeClassesFolder:_D,renameClassesFolder:SD}=rv.actions,Yp=[{name:"onServerStartup.4qs",content:`var $error : Object
103
103
  var $obj : Object
104
104
  var $startUpExists : Boolean
105
105
 
@@ -138,26 +138,26 @@ For each ($error; Last errors)
138
138
  End for each
139
139
 
140
140
  End try`}];function av(e,r){switch(e){case v.FileFolderType.WEBFORMS:{const t={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:"App",custom:{},hidden:!1,nodes:[],linkedNodes:{}}}};return r["webforms.display-mode"]===Vu.AIRY&&(t.components.ROOT.props.airyMode=!0),t}case v.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 v.FileFolderType.METHODS:return`//%attributes = {}
141
- `;default:return""}}function ov(e,r,t){switch(r){case v.FileFolderType.MOBILEFORM:return`${e}.MForm`;case v.FileFolderType.WEBFORM:return`${e}.WebForm`;case v.FileFolderType.REPORT:return`${e}.QoDoc`;case v.FileFolderType.METHOD:case v.FileFolderType.CLASS:return`${e}.${t?"4qs":"4dm"}`;default:return e}}function SD(e){switch(e){case v.FolderRootPath.WEBFORMS:return v.FileFolderType.WEBFORMS;case v.FolderRootPath.METHODS:return v.FileFolderType.METHODS;case v.FolderRootPath.CLASSES:return v.FileFolderType.CLASSES;case v.FolderRootPath.REPORTS:case"Reports":return v.FileFolderType.REPORT;case"Mobile":return v.FileFolderType.MOBILE;default:return e}}function sv(e){switch(e){case v.FileFolderType.WEBFORMS:return v.FileFolderType.WEBFORM;case v.FileFolderType.REPORT:return v.FileFolderType.REPORT;case v.FileFolderType.CLASSES:return v.FileFolderType.CLASS;case v.FileFolderType.METHODS:return v.FileFolderType.METHOD;case v.FileFolderType.FOLDER:return v.FileFolderType.FOLDER;case v.FileFolderType.MOBILE:return v.FileFolderType.MOBILEFORM;default:return e}}const ED=Q("files/tryEditMethod",async({method:e},{dispatch:r})=>{const t=e.filePath.split("/"),[a]=t[1].split("."),{editor:s}=xt(e.filePath);return await r(tl({file:{name:a,path:e.filePath,date:new Date().toISOString(),type:v.FileFolderType.CLASS,editor:s},line:e.startingLine+1})).unwrap()}),bu=Q("explorer/createModelFiles",async(e,{dispatch:r,getState:t})=>{var m;const a=t(),s=v.FolderRootPath.CLASSES,i=a.settings.server.qodly,u=lt(a.explorer,s);if(!u)return;await r(rn(s));const d=((m=t().explorer.find(_=>_.name===s))==null?void 0:m.children)||[];let p=[{content:"",name:""}];if(e.type==="dataclass"&&!e.toCreate){const{className:_,collectionName:S}=e;p=[{...En().dataclass({name:_,qodly:i})},{...En().collection({name:S,qodly:i})},{...En().entity({name:_,qodly:i})}]}else if(e.type==="dataclass"&&e.toCreate){const{className:_,collectionName:S}=e;p=[{...En()[e.toCreate]({name:_||S,qodly:i})}]}else p=[{...En().model({name:"DataStore",qodly:i})}];p=p.filter(_=>!d.find(({name:S,ext:T,info:{exist:w=!0}={}})=>S===_.name&&T===(i?"4qs":"4dm")&&w)),await Promise.all(p.map(async({name:_,content:S})=>{await r(Yn({type:v.FileFolderType.CLASS,path:s,fileName:_,parentNode:u,content:S,qodly:a.settings.server.qodly}))}));const h=e.type==="dataclass"&&e.expand?e.className:"";await r(rn({nodePath:s,expandDataclass:h}))}),rn=Q("explorer/fetchFolderContent",async(e,{rejectWithValue:r,getState:t})=>{const{nodePath:a,expandDataclass:s=""}=typeof e=="string"?{nodePath:e}:e,i=t();try{const u=await v.getNodeInfo({verb:v.DesignerRequestVerb.GET_INFO,path:a});return i.catalog.state!=="loaded"?[]:a==="Classes"?ou(i,u,s):u.map(l=>{const d=`${a}/${l.name}${l.ext?`.${l.ext}`:""}`,{editor:p,supportedEditors:h}=xt(d);return{name:l.name,size:l.size,type:l.type,date:`${l.date}`,flags:{},error:null,path:d,ext:l.ext,config:l.type==="folder"?{}:{editor:p,supportedEditors:h}}})}catch{return r("Failed loading file content please Reload"),a==="Classes"?ou(i,[],s):[]}},{getPendingMeta:()=>{}}),Fa=Q("explorer/fetchFolderContentWithoutExpanding",async(e,{rejectWithValue:r})=>{try{return(await v.getNodeInfo({verb:v.DesignerRequestVerb.GET_INFO,path:e})).map(a=>{const s=`${e}/${a.name}${a.ext?`.${a.ext}`:""}`,{editor:i,supportedEditors:u}=xt(s);return{name:a.name,size:a.size,type:a.type,date:`${a.date}`,flags:{},error:null,path:s,ext:a.ext,config:a.type==="folder"?{}:{editor:i,supportedEditors:u}}})}catch{return r("Failed loading file content please Reload")}},{getPendingMeta:()=>{}});function TD(e){const r=e.split(".");return r.pop(),{name:r.join("."),ext:e.split(".")[e.split(".").length-1]}}const wD=Q("explorer/uploadFileAndGetResponse",async e=>{const r=e.type.includes("image/")?"$rawPict=true":"$binary=true";try{const t=await fetch(`/rest/$upload?${r}`,{method:"POST",headers:{"Content-Type":e.type},body:e});return{status:t.status,data:await t.json()}}catch{return{status:500,data:null}}}),CD=Q("explorer/uploadFile",async({file:e,path:r,parentNode:t},{dispatch:a})=>{const{editor:s,supportedEditors:i}=xt(r),{name:u,ext:l}=TD(e.name);a(nv({parent:t,child:{name:u,path:`${r}/${e.name}?t=${Date.now()}`,type:e.type,error:null,flags:{loading:!0},config:{editor:s,supportedEditors:i},ext:l}}));try{const d=await fetch(`/rest/$upload?$sharedFolder=true&$filename=${e.name}&$path=${r}`,{method:"POST",headers:{"Content-Type":e.type},body:e});return d.status>=300?(a(yu({parent:t,child:{name:u,path:`${r}/${e.name}`,type:e.type,error:{message:"error uploading file"},flags:{},config:{editor:s,supportedEditors:i},ext:l}})),d.status!==413&&v.toastSubject.next({message:"error uploading file",kind:"danger"})):await a(rn(t.path)),{status:d.status,fileName:e.name}}catch{return a(yu({parent:t,child:{name:u,path:`${r}/${e.name}`,type:e.type,error:{message:"error uploading file"},flags:{},config:{editor:s,supportedEditors:i},ext:l}})),v.toastSubject.next({message:"error uploading file",kind:"danger"}),{status:500,fileName:e.name}}}),Yn=Q("explorer/createNewFile",async({fileName:e,type:r,path:t,parentNode:a,content:s},{dispatch:i,rejectWithValue:u,getState:l})=>{const{server:{qodly:d},project:p}=l().settings;try{const h=await v.setFileContent({name:ov(e,r,d),content:s||av(r,p),path:t,asText:[v.FileFolderType.CLASS,v.FileFolderType.METHOD].includes(r)});return a.error&&(a.flags.expanded?await i(rn(a.path)):await i(Fa(a.path))),{qodly:d,file:h,parentNode:a}}catch{return u("failed to create folder")}});function iv(e,r){const{qodly:t=!0,withExtension:a=!0}=r||{},s=v.getFileExtentionFromType(e.type,t);let i="";switch(e.type){case v.FileFolderType.WEBFORM:i=`${v.FolderRootPath.WEBFORMS}/${e.name}`;break;case v.FileFolderType.METHOD:i=`${v.FolderRootPath.METHODS}/${e.name}`;break;case v.FileFolderType.CLASS:i=`${v.FolderRootPath.CLASSES}/${e.name}`;break;default:return""}return`${i}${a?`.${s}`:""}`}const xD=Q("explorer/createNewFileAndOpen",async(e,{dispatch:r,getState:t})=>{const a=await r(Yn(e)).unwrap(),{qodly:s}=t().settings.server;if(a){const{file:i}=a,u=iv(i,{withExtension:!1,qodly:s}),{editor:l}=xt(u);await r(Ia({file:{name:e.fileName,type:i.type,path:u,editor:l,date:new Date().toISOString()}}))}}),ts=Q("explorer/createNewNode",async({fileName:e,path:r,parentNode:t},{rejectWithValue:a})=>{try{return{file:await v.createFolder({verb:v.DesignerRequestVerb.CREATE_FOLDER,path:`${r}/${e}`,recursive:!0}),parentNode:t}}catch{return v.toastSubject.next({message:"failed to create folder",kind:"danger"}),a("failed to create folder")}}),Vs=async(e,r={})=>{var t;try{const a=e.path.split(".").at(-1),s=await v.getNodeInfo({verb:v.DesignerRequestVerb.GET_INFO,path:e.path,content:((t=e.editor)==null?void 0:t.key)!=="editors:img",as:Oh(a)?"json":"text"}),i={editor:e.editor},u=v.getTypeFromExtension(e.path);u===v.FileFolderType.METHOD&&(i.attributes=v.parseAttributes(s.content),s.content=v.addAttributesToContent(s.content,{}));const{content:l,date:d,ext:p}=s;return r.confirmed===void 0&&(r.confirmed=!0),{date:d,view:{panel:{isOpen:!1,type:"",current:""}},flags:{enabled:["WebForm","MForm"].includes(p),confirmed:r.confirmed},extra:i,name:e.name,path:e.path,type:u,initialContent:l,content:l,history:{stack:[],active:-1,locked:!1}}}catch(a){const{data:s}=a;if(s.__ERROR.find(i=>i.errCode===v.ERROR_CODES.FILE_NOT_FOUND))switch(e.path){case v.ROLES_TAB_PATH:{const i={permissions:{allowed:[]},privileges:[],roles:[]};return{date:new Date().toISOString(),flags:r,extra:{editor:{key:"editors:roles"}},name:"Roles & Privileges",path:e.path,type:v.FileFolderType.ROLES,initialContent:i,content:i}}case v.SETTINGS_TAB_PATH:{const i={};return{date:new Date().toISOString(),flags:r,extra:{editor:{key:"editors:settings"}},name:"Settings",path:e.path,type:v.FileFolderType.SETTINGS,initialContent:i,content:i}}}throw a}},Ia=Q("explorer/openFile",async({file:e,inactive:r,isNew:t,flags:a={},info:s},{getState:i,dispatch:u})=>{const{root:{tabs:l},roles:d,debugger:{sessions:p},settings:{server:{qodly:h}}}=i(),m=l.find(({path:T})=>e.path===T);if(m){const T={...m,extra:{...m==null?void 0:m.extra,editor:e.editor},flags:{...m==null?void 0:m.flags,...a}};return u(Dt(T)),T}if(e.path.startsWith("Debugger")){const T=p.find(w=>`Debugger/${w.threadId}`===e.path);if(T){const{source:{content:w},source:D}=T.currentStackFrame,P={name:e.name,type:v.FileFolderType.DEBUGGER,date:new Date().toISOString(),path:e.path,content:w,view:{panel:{isOpen:!1,type:"",current:""}},initialContent:w,flags:{confirmed:!0},extra:{source:D,editor:e.editor}};return u(Dt(P)),P}}let _=null;try{_=await Vs(e,a)}catch(T){const{data:w}=T;if(w.__ERROR.find(D=>[v.ERROR_CODES.JSON_MALFORMED,v.ERROR_CODES.JSON_MALFORMED_AT_LINE].includes(D.errCode))){const{confirmed:D}=await u(or({title:"Corrupt file",type:v.ModalType.CONFIRM,color:v.ModalColor.WARNING,message:"Open in code editor ?"})).unwrap();if(D){const P=await v.getNodeInfo({verb:v.DesignerRequestVerb.GET_INFO,path:e.path,content:!0,as:"text"}),{content:F,date:$,ext:L}=P;_={date:$,view:{panel:{isOpen:!1,type:"",current:""}},flags:{enabled:["WebForm","MForm","QoDoc"].includes(L),confirmed:!0},extra:{editor:v.EDITOR.Code},name:e.name,path:e.path,type:v.getTypeFromExtension(e.path),initialContent:F,content:F,history:{stack:[],active:-1,locked:!1}}}}if(e.type===v.FileFolderType.CLASS&&s){const D=s.kind,P=`${e.name}.${h?"4qs":"4dm"}`,F=En()[D]({name:P,qodly:h}).content;if(_={date:(await v.setFileContent({name:P,content:F,path:"Classes",asText:!0})).date,view:{panel:{isOpen:!1,type:"",current:""}},flags:{enabled:!1,confirmed:!0},extra:{editor:v.EDITOR.Code},name:e.name,path:e.path,type:v.getTypeFromExtension(e.path),initialContent:F,content:F,history:{stack:[],active:-1,locked:!1}},D==="app"){const L=await v.getFilesInfo(...Yp.map(O=>({path:`DatabaseMethods/${O.name}`})));Yp.forEach(O=>{const Y=L.files.find(U=>U.path===`DatabaseMethods/${O.name}`);Y!=null&&Y.deleted&&v.setFileContent({name:O.name,content:O.content,path:"DatabaseMethods",asText:!0})})}}}return _&&(e.path===v.ROLES_TAB_PATH&&!d.flags.touched?u(Zu({content:_.content,date:_.date,flags:a})):e.path===v.SETTINGS_TAB_PATH&&u(Ys({path:"project",value:_.content})),u((r?kv:Dt)({..._,isNew:t})),_)}),tl=Q("explorer/openFileAtLine",async({file:e},{getState:r,dispatch:t})=>{const{tabs:a}=r().root,s=a.find(({path:u})=>e.path===u);if(s){const u={...s,extra:{...s==null?void 0:s.extra,editor:e.editor}};return t(Dt(u)),u}const i=await Vs(e);return t(Dt(i)),i}),cv=Q("explorer/injectContentAtLine",async(e,{getState:r,dispatch:t,rejectWithValue:a})=>{const s=r();e.path.split("/").pop();const u=lt(s.explorer,e.path);if(!u)return a(`Error while trying to inject content in file ${e.path}`);const l=await Vs({name:u.name,date:u.date||new Date().toISOString(),path:`${u.path}.${u.ext}`,type:v.FileFolderType.CLASS,editor:u.config.editor});return await t(Dt(l)),{...e,path:`${u.path}.${u.ext}`}}),uv=Q("explorer/openFileAtSelection",async({file:e},{getState:r,dispatch:t})=>{const{tabs:a}=r().root,s=a.find(({path:u})=>e.path===u);if(s){const u={...s,extra:{...s==null?void 0:s.extra,editor:e.editor}};return t(Dt(u)),u}const i=await Vs(e);return t(Dt(i)),i}),_u=Q("explorer/deleteFile",async e=>{const{name:r,type:t,path:a,flags:s}=e;if(s.error)return{deleted:!0,node:e};const i=a.split("/");return i.pop(),{deleted:await v.dropFile({root:v.FolderRootType.ROOT,type:sv(t),verb:v.DesignerRequestVerb.DROP,name:r,path:i.join("/")}),node:e}}),OD=Q("explorer/deleteFolder",async(e,{getState:r,dispatch:t})=>{const{path:a,flags:s}=e;if(s.error)return{deleted:!0,node:e};const{deleted:i}=await v.removeItem({force:!0,path:a,verb:v.DesignerRequestVerb.REMOVE_ITEM}).catch(console.error)||{deleted:!1};if(e.children){const{tabs:u}=r().root;e.children.forEach(l=>{const d=u.findIndex(p=>p.path===l.path);t(Xs(d))})}return{deleted:i,node:e}}),Su=Q("explorer/removeFileNode",async(e,{getState:r,dispatch:t})=>{if(await v.removeItem({verb:v.DesignerRequestVerb.REMOVE_ITEM,path:e.path,force:!0}).catch(console.error),e.path==="Classes/DataStore"&&setTimeout(()=>{t(Cn())},As),e.ext){const{tabs:a}=r().root,s=a.findIndex(i=>i.path===e.path);s>=0&&t(Xs(s))}return{deleted:!0,node:e}}),Vn=Q("explorer/renameFile",async({file:e,newname:r})=>{if(e.type!=="folder"){const a=e.path.split("/");a.pop();const s=`${a.join("/")}/${e.name}.${e.ext}`,i=`${a.join("/")}/${r}.${e.ext}`;return await v.moveItem({verb:v.DesignerRequestVerb.MOVE_ITEM,path:s,newpath:i}),{old:{...e,path:s},new:{...e,name:r,path:i}}}const t=e.path.split("/");return t.pop(),await v.moveItem({verb:v.DesignerRequestVerb.MOVE_ITEM,path:`${t.join("/")}/${e.name}`,newpath:`${t.join("/")}/${r}`}),{old:e,new:{...e,name:r,path:`${t.join("/")}/${r}`}}}),$a=Q("explorer/relocateNode",async({draggedNode:e,newLocation:r},{rejectWithValue:t})=>{try{await v.moveItem({verb:v.DesignerRequestVerb.MOVE_ITEM,path:`${e.path}.${e.ext}`,newpath:`${r.path}/${e.name}.${e.ext}`})}catch{return t("can't move item")}}),rs=Q("explorer/duplicateNode",async({node:e,duplicateName:r},{rejectWithValue:t,fulfillWithValue:a,getState:s})=>{const i=e.path.split("/");i.pop();try{const{tabs:u}=s().root,l=u.find(({path:m})=>m===e.path),d=["4dm","4qm","4qs"].includes(e.ext),{content:p}=l||await v.getNodeInfo({verb:v.DesignerRequestVerb.GET_INFO,path:e.path,content:!0,as:d?"text":"json"}),h=await v.setFileContent({name:`${r}.${e.ext}`,content:p,path:i.join("/"),asText:d});return a({node:{...h,path:i.join("/")}})}catch{return t("failed to duplicate file")}}),RD=Q("explorer/executeMethod",async({methodName:e,params:r=[],resultingDataSource:t={},namespace:a=""},{rejectWithValue:s})=>{var i,u;try{const d=await window.Method4D.buildMethod({methodName:e,parameters:r,resultingDataSource:t},{namespace:a},null).callServerSide({id:"",serverSideRef:""},"onclick",{});return d!=null&&d.__NOTIFICATION?v.toastSubject.next({message:`${((i=d.__NOTIFICATION)==null?void 0:i.message)||""}`,kind:`${((u=d.__NOTIFICATION)==null?void 0:u.type)||"info"}`}):v.toastSubject.next({message:"Method executed Successfully",kind:"message"}),d}catch(l){return v.toastSubject.next({message:l.message||`Error executing the method "**${e}**"`,kind:"danger",markdown:!0}),s("can't execute method")}}),AD=e=>{const{dataClasses:r,...t}=e;return{...t,dataClasses:r==null?void 0:r.map(a=>{let s={...a};if(s.uuid||(s={...s,uuid:v.generateUUID()}),s.attributes){const i=["storage","relatedEntity"],u=s.attributes.map(l=>i.includes(l.kind)&&!l.uuid?{...l,uuid:v.generateUUID()}:l);s={...s,attributes:[...u]}}return s})}},PD=Q("files/fetchFiles",async()=>v.getFolders(v.FolderRootType.WEBFORMS,v.FolderRootType.METHODS,v.FolderRootType.CLASSES)),rl=Q("tabs/renameDatasource",async(e,{dispatch:r,getState:t})=>{var S,T;const a=!!e.datasourceNamespace,{confirmed:s}=await r(or({message:"Are you sure you want to rename the datasource?",title:"Rename Datasource",type:v.ModalType.CONFIRM,color:v.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:d,path:p}=e,h=t();let m=[];if(a){const w=h.sharedDatasources.sources[l]||[];m.push(...w)}else if(p){const w=h.root.tabs.find(v.by("path",p));if(m=(T=(S=w==null?void 0:w.content)==null?void 0:S.metadata)==null?void 0:T.datasources,!m)return null}const _=new RegExp(`^${u}\\b`,"");if(m=m.map(w=>{const D=(v.isObjectDatasource(w)||!v.isSimpleDatasource(w))&&w.from&&_.test(w.from),P=w.events?w.events.map(F=>{var $,L,O,Y;switch(F==null?void 0:F.type){case"method":{const U=F;return U.params?{...U,params:U.params.map(q=>{var te;return{...q,datasource:(te=q.datasource)==null?void 0:te.replace(new RegExp(`^${u}`,""),d)}}),returns:($=U.returns)!=null&&$.datasource?{...U.returns,datasource:(L=U.returns.datasource)==null?void 0:L.replace(new RegExp(`^${u}`,""),d)}:U.returns}:U}case"simple-action":{const U=F;return U.datasource?{...U,datasource:{...U.datasource,name:(O=U.datasource.name)==null?void 0:O.replace(new RegExp(`^${u}`,""),d),from:(Y=U.datasource.from)==null?void 0:Y.replace(new RegExp(`^${u}`,""),d)}}:U}default:return F}}):w.events;return w.id===u?{...w,id:d,events:P}:D&&w.from?{...w,from:w.from.replace(new RegExp(`^${u}`,""),d),events:P}:{...w,events:P}}),i){const w=a?`${l}:${u}`:`${u}`,D=a?`${l}:${d}`:`${d}`;v.datasourcesSubject.next({path:p??"",action:v.DatasourcesActions.RENAME,old_reference:w,new_reference:D,is_shared:a})}return{path:p,namespace:l,datasources:m}}),nl=Q("tabs/edit-datasource",(e,{getState:r})=>{var i,u;const t=r();let a=[];if(e.namespace)a=t.sharedDatasources.sources[e.namespace];else{const l=t.root.tabs.find(v.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)}),lv=Q("tabs/fetchChanges",async(e,{getState:r})=>{const a=aa(r()).filter(s=>[v.FileFolderType.METHOD,v.FileFolderType.CLASS].includes(s.type));return v.getFilesInfo(...a.map(s=>{const[i]=s.path.split("/").filter(Boolean);return{name:s.name,type:s.type,root:i,path:"."}}))}),DD=Q("files/saveAll",async(e,{getState:r,dispatch:t})=>{const a=Uu(r());for(const s of a)t(zn({tab:s}))}),al=Q("files/tryCloseTab",async(e,{getState:r,dispatch:t})=>{const{tabs:a}=r().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 t(or({title:Ps(i),message:"Your unsaved changes will be lost. Proceed anyway?",type:v.ModalType.CONFIRM,color:v.ModalColor.WARNING,icon:"FdWarningDanger"})).unwrap();if(!u)return!1}return t(Xs(s)),i.path===v.ROLES_TAB_PATH&&i.flags.touched&&(async()=>{const l=await v.getNodeInfo({verb:v.DesignerRequestVerb.GET_INFO,path:v.ROLES_TAB_PATH,content:!0,as:"json"});t(Zu({content:l.content,date:l.date}))})(),!0}),FD=Q("files/tryCloseOtherTabs",async(e,{getState:r,dispatch:t})=>{const{tabs:a}=r().root;if(a.some(i=>i.path!==e&&i.flags.touched===!0)){const{confirmed:i}=await t(or({title:"Closing other tabs",message:"Your changes will be lost if you do not save them. Close anyway?",type:v.ModalType.CONFIRM,color:v.ModalColor.WARNING,icon:"FdWarningDanger"})).unwrap();if(!i)return}t(Mv(e))}),ID=Q("files/tryCloseAllTabs",async(e,{getState:r,dispatch:t})=>{const{tabs:a}=r().root;if(a.some(i=>i.flags.touched===!0)){const{confirmed:i}=await t(or({title:"Closing all tabs",message:"Your changes will be lost if you do not save them. Close anyway?",type:v.ModalType.CONFIRM,color:v.ModalColor.WARNING,icon:"FdWarningDanger"})).unwrap();if(!i)return}t(Iv())}),$D=Q("files/tryCloseRightTabs",async(e,{getState:r,dispatch:t})=>{const{tabs:a}=r().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 t(or({title:"Closing right tabs",message:"Your changes will be lost if you do not save them. Close anyway?",type:v.ModalType.CONFIRM,color:v.ModalColor.WARNING,icon:"FdWarningDanger"})).unwrap();if(!i)return}t($v(e))}),MD=Q("files/tryCloseLeftTabs",async(e,{getState:r,dispatch:t})=>{const{tabs:a}=r().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 t(or({title:"Closing left tabs",message:"Your changes will be lost if you do not save them. Close anyway?",type:v.ModalType.CONFIRM,color:v.ModalColor.WARNING,icon:"FdWarningDanger"})).unwrap();if(!i)return}t(Lv(e))}),ns=Q("files/reloadTab",async(e,{dispatch:r})=>{if(e.flags.touched){const{confirmed:s}=await r(or({title:Ps(e),message:"Changes made to the file will be lost. Continue?",type:v.ModalType.CONFIRM,color:v.ModalColor.WARNING,icon:"FdWarningDanger"})).unwrap();if(!s)throw new Error("Cancel modal!")}const t=ju(e.path),a=await v.getNodeInfo({verb:v.DesignerRequestVerb.GET_INFO,path:e.path,content:!0,as:t});if(e.path===v.ROLES_TAB_PATH){const{roles:s,privileges:i}=Gs(a.content);r(Qu({roles:s,privileges:i}))}else if(e.path===v.SETTINGS_TAB_PATH){const{content:s}=a;r(Ys({path:"project",value:s}))}else{const{content:s}=a;e.type===v.FileFolderType.WEBFORM?v.webformSubject.next({path:e.path,action:v.WebformActions.RELOAD,payload:s.components}):e.type===v.FileFolderType.MODEL&&ng.next({action:"reload",payload:s})}return a}),zn=Q("files/saveTab",async({tab:e},{dispatch:r,getState:t})=>{let{path:a,content:s}=e;if(e.type===v.FileFolderType.DEBUGGER)return{...e,errors:[]};a.split("/").pop();const u=await v.getFilesInfo({path:a});if(u.files[0]){const m=new Date(e.date),_=new Date(u.files[0].date);if(m.getTime()<_.getTime()){const{confirmed:S}=await r(or({title:Ps(e),message:"New content has been found on the server. Are you sure you want to continue?",type:v.ModalType.CONFIRM,icon:"FdSave"})).unwrap();if(!S)return r(Fv({path:a,flags:{old:!0}})),null}}const l=LD(e,t()),d=await v.saveContent({verb:v.DesignerRequestVerb.SAVE_CONTENT,content:l,path:a});(e.type===v.FileFolderType.CLASS||e.type===v.FileFolderType.MODEL)&&setTimeout(()=>{r(Cn())},As);const p=(d.modelErrors||[]).map(m=>m.message),h=(d.permissionsErrors||[]).map(m=>m.message);return v.FileFolderType.MODEL===e.type&&(s=l),{...e,content:s,date:d.date,initialContent:s,errors:p.length>0||h.length>0?[{title:"Model errors",messages:p},{title:"Permissions errors",messages:h}]:[]}}),LD=(e,r)=>{switch(!0){case e.path==="settings.json":case e.path===v.SETTINGS_TAB_PATH:return r.settings.project;case e.type===v.FileFolderType.ROLES:return{...e.content,...qs(r.roles)};case e.type===v.FileFolderType.MODEL:{const t=e.content||{toJSON:!0,dataClasses:[],extraProperties:{}};return AD(t)}default:return e.content}},Vp=async e=>{if(e.type===v.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 r=ju(e.path),t=await v.getNodeInfo({verb:v.DesignerRequestVerb.GET_INFO,path:e.path,content:!0,as:r}),a={};t.type===v.FileFolderType.METHOD&&(a.attributes=v.parseAttributes(t.content));const{date:s,name:i,type:u,content:l}=t;return{date:s,flags:{enabled:e.type===v.FileFolderType.WEBFORM},extra:a,view:{panel:{isOpen:!1,type:"",current:""}},name:i,path:e.path,type:u,initialContent:l,content:u===v.FileFolderType.MODEL?xh(l):l,history:{stack:[],active:-1,locked:!1}}},fv=Ae.debounce((e,r)=>{r(Bv(e))},300),ND=Q("tabs/setTabContent",(e,{getState:r,dispatch:t})=>{var u;const{root:{tabs:a}}=r(),s=a.find(l=>l.path===e.path),i=!!((u=s==null?void 0:s.history)!=null&&u.locked);t(cl(e)),i?t(ul(e.path)):fv(e.path,t)}),kD=Q("tabs/setCurrentWebformState",(e,{getState:r,dispatch:t})=>{var u;const{root:{tabs:a}}=r(),s=a.find(l=>l.path===e.path),i=!!((u=s==null?void 0:s.history)!=null&&u.locked);t(jv(e)),i?t(ul(e.path)):fv(e.path,t)}),dv=Q("files/tryInjectMethod",async({type:e,dataclass:r,expand:t},{getState:a,dispatch:s})=>{const{root:{tabs:i},settings:{server:{qodly:u}}}=a(),l=v.getFileExtentionFromType("class",u);let d="",p="",h=null;if(!r)d="DataStore",p=`Classes/DataStore.${l}`;else switch(e){case"dataclass":d=r,p=`Classes/${r}.${l}`;break;case"collection":d=`${r}Selection`,p=`Classes/${r}Selection.${l}`;break;case"entity":d=`${r}Entity`,p=`Classes/${r}Entity.${l}`;break;default:return h}const m=i.find(v.by("path",p));if(m)return s(Dt(m)),m;try{h=await Vp({name:d,date:new Date().toISOString(),path:p,type:v.FileFolderType.CLASS})}catch{r?await s(bu({type:"dataclass",className:r,collectionName:`${r}Selection`,toCreate:e,expand:t})):await s(bu({type:"model"}))}return h=await Vp({name:d,date:new Date().toISOString(),path:p,type:v.FileFolderType.CLASS}),h.path=p,s(Dt(h)),h}),jD=Q("roles/open",async(e,{dispatch:r,getState:t})=>{const{tabs:a}=t().root,s=a.find(i=>i.path===v.ROLES_TAB_PATH);if(s)return r(Dt(s)),s;r(Es())});function zp(e,r){const{line:t,offset:a,type:s="saved"}=r;e.breakpoints[s].locations.push({line:t}),Ae.isNumber(a)&&(e.breakpoints[s].offset=a)}function Kp(e,r,t,a){e.breakpoints[t].locations=r,Ae.isNumber(a)&&(e.breakpoints[t].offset=a)}function Jp({filePath:e,fileType:r,methodName:t,className:a,ext:s,source:i}){return{filePath:e,fileType:r,methodName:t,className:a,ext:s,source:i,breakpoints:{draft:{locations:[],offset:0},saved:{locations:[],offset:0}}}}function Xp(e,r,t){let a=!1;const s=e.map(i=>i[t]!==r[t]?i:(a=!0,{...i,...r}));return a?s:[...s,r]}function Jo(e){return e.map(({label:r})=>({label:r}))}const pv=Yt({name:"debugger",initialState:()=>{var r,t;const{debugger:e={meta:{state:Zr.DETACHED},list:[],sessions:[],expressions:[]}}=Zn();return{meta:{...e.meta,state:((r=e.meta)==null?void 0:r.state)===Zr.ATTACHED?(t=e.meta)==null?void 0:t.state:Zr.DETACHED},list:e.list||[],sessions:e.sessions||[],expressions:e.expressions||[]}},reducers:{addBreakpointDecoration(e,r){const{filePath:t,fileType:a,methodName:s,className:i,ext:u,source:l,breakpoint:d}=r.payload,p=wn(e.list,t,s,i);if(p)zp(p,d);else{if(a===v.FileFolderType.CLASS&&d.offset===void 0)throw new Error(`Cannot add a breakpoint on a function without offset. Try editing the ${i} class.`);const h=Jp({filePath:t,fileType:a,methodName:s,className:i,ext:u,source:l});zp(h,d),e.list.push(h)}},removeBreakpointDecoration(e,r){const{filePath:t,methodName:a,line:s,offset:i=0,type:u="saved"}=r.payload;if(t.startsWith("Classes/")){const l=e.list.filter(d=>d.filePath===t);if(l.length>0){const d=s+i;l.forEach(p=>{const h=p.breakpoints[u].offset||0;p.breakpoints[u].locations=p.breakpoints[u].locations.filter(m=>m.line+h!==d),u==="saved"&&(p.breakpoints.draft.locations=p.breakpoints.draft.locations.filter(m=>m.line+h!==d))})}}else{const l=wn(e.list,t,a);l&&(l.breakpoints[u].locations=l.breakpoints[u].locations.filter(d=>d.line!==s),u==="saved"&&(l.breakpoints.draft.locations=l.breakpoints.draft.locations.filter(d=>d.line!==s)))}},setBreakpointsDecoration(e,r){const{filePath:t,fileType:a,methodName:s,className:i,ext:u,source:l,breakpoints:d,offset:p,type:h="saved",clearDraft:m}=r.payload,_=wn(e.list,t,s);if(_)Kp(_,d,h,p),m&&h!=="draft"&&(_.breakpoints.draft.locations=[]);else{const S=Jp({filePath:t,fileType:a,methodName:s,className:i,ext:u,source:l});Kp(S,d,h,p),e.list.push(S)}},clearBreakpoints(e,r){const{filePath:t,type:a="saved"}=r.payload;e.list=e.list.map(s=>({...s,breakpoints:s.filePath===t?{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,r){const{exceptedFilePath:t,type:a="saved"}=r.payload;e.list=e.list.map(s=>({...s,breakpoints:s.filePath!==t?{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(r=>({...r,breakpoints:{draft:{locations:[],offset:0},saved:{locations:[],offset:0}}}))},setActiveLine(e,r){const{threadId:t,line:a,highlight:s}=r.payload,i=st(e.sessions,t);i&&(i.activeLine=a,s&&(i.highlightedLines={start:a,end:a}))},addExpression(e,r){const{threadId:t,label:a,save:s}=r.payload,i=st(e.sessions,t);i&&i.stopped&&(i.expressions=[...i.expressions||[],{label:a}],s&&(e.expressions=Jo(i.expressions)))},removeExpression(e,r){const{threadId:t,index:a,save:s}=r.payload,i=st(e.sessions,t);i&&(i.expressions=i.expressions.filter((u,l)=>l!==a),s&&(e.expressions=Jo(i.expressions)))},removeAllExpressions(e,r){const{threadId:t,save:a}=r.payload,s=st(e.sessions,t);s&&(s.expressions=[],a&&(e.expressions=[]))},renameExpression(e,r){const{threadId:t,index:a,replacement:s,save:i}=r.payload,u=st(e.sessions,t);u&&u.expressions[a]&&(u.expressions[a].label=s,i&&(e.expressions=Jo(u.expressions)))},setExpression(e,r){const{threadId:t,expression:a}=r.payload,s=st(e.sessions,t);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,r){const{threadId:t,index:a,value:s}=r.payload,i=st(e.sessions,t);if(i){const u=i.expressions[a];u&&(u.result=`"${s}"`,u.nakedResult=s)}},saveExpressions(e,r){const{expressions:t}=r.payload;e.expressions=Jo(t)},addSession(e,r){const{threadId:t,channelId:a,stackFrames:s,exceptions:i=[]}=r.payload,u=st(e.sessions,t),l=s[0],{expressions:d=[]}=e;if(u)u.expressions=d;else{const p=Nu(t);e.sessions.push({tabPath:p,threadId:t,channelId:a,stackFrames:s,currentStackFrame:l,exceptions:i,expressions:d,variables:{callchain:[],expressions:[]},highlightedLines:null,activeLine:null,stopped:!0})}},updateSession(e,r){const{threadId:t,changes:a}=r.payload;e.sessions=e.sessions.map(s=>s.threadId===t?{...s,...a}:s)},removeSession(e,r){const{threadId:t}=r.payload;e.sessions=e.sessions.filter(a=>a.threadId!==t)},removeSessionByIndex(e,r){const t=r.payload;e.sessions.splice(t,1)},setSessions(e,r){const t=r.payload;e.sessions=t},setCallChainVariables(e,r){const{threadId:t,frameId:a,variables:s}=r.payload;e.sessions=e.sessions.map(i=>{var u;return i.threadId===t?{...i,variables:{...i.variables,callchain:Xp((u=i.variables)==null?void 0:u.callchain,{frameId:a,items:s},"frameId")}}:i})},setExpressionVariables(e,r){const{threadId:t,variablesReference:a,variables:s}=r.payload;e.sessions=e.sessions.map(i=>{var u;return i.threadId===t?{...i,variables:{...i.variables,expressions:Xp((u=i.variables)==null?void 0:u.expressions,{variablesReference:a,items:s},"variablesReference")}}:i})},setSourceContent(e,r){const{threadId:t,content:a}=r.payload,s=st(e.sessions,t);s&&(s.currentStackFrame.source={...s.currentStackFrame.source,content:a})},setDebuggerMeta(e,r){if(r.payload.state===Zr.ERROR){const{error:t={code:null,reason:"",type:ps.SOCKET_ERROR}}=r.payload;if(e.meta.error={...e.meta.error,...t,time:Date.now()},(t==null?void 0:t.type)===ps.SOCKET_CLOSURE&&(t==null?void 0:t.code)===1e3&&!(t!=null&&t.reason)&&e.meta.state===Zr.DETACHED)return}e.meta.state=r.payload.state}},extraReducers:e=>{e.addCase(gv.fulfilled,r=>{r.sessions=[]})}}),{addBreakpointDecoration:BD,removeBreakpointDecoration:WD,setBreakpointsDecoration:UD,clearBreakpoints:HD,clearBreakpointsExcept:GD,clearAllBreakpoints:qD,setActiveLine:YD,addExpression:VD,renameExpression:zD,removeExpression:KD,removeAllExpressions:JD,setExpression:XD,updateExpressionAt:ZD,saveExpressions:QD,addSession:eF,updateSession:tF,removeSession:rF,removeSessionByIndex:nF,setSessions:hv,setCallChainVariables:aF,setExpressionVariables:oF,setSourceContent:sF,setDebuggerMeta:iF}=pv.actions,gv=Q("files/wipeDebuggerSessions",async(e,{getState:r,dispatch:t})=>{const{sessions:a}=r().debugger;for(const{threadId:s}of a){const i=Nu(s);t(al(i))}}),vv=Q("files/removeDebuggerSessionsNotIn",async(e,{getState:r,dispatch:t})=>{const{threadIds:a}=e,{sessions:s}=r().debugger,i=[],u=s.filter(l=>{const d=a.includes(l.threadId);return d||i.push(l.threadId),d});return t(hv(u)),{staleThreadIds:i}}),Ts=Q("models/fetch",async()=>(await v.http(v.API_PREFIX,{method:"POST",body:JSON.stringify({verb:v.DesignerRequestVerb.GET_INFO,path:v.MODEL_TAB_PATH,as:"json",content:!0}),headers:new Headers({"Content-Type":"application/json"})})).content),ws=Q("models/save",async(e,{getState:r,dispatch:t,rejectWithValue:a})=>{const{tabs:s}=r().root,i=s.find(u=>u.path===v.MODEL_TAB_PATH);if(!i)return a("Error while saving the model");try{const u=await v.http(v.API_PREFIX,{method:"POST",body:JSON.stringify({verb:"save",path:i.path,content:i.content}),headers:new Headers({"Content-Type":"application/json"})});return setTimeout(()=>{t(Cn())},As),{...u,path:i.path,content:e.content||{toJSON:!0,dataClasses:[],extraProperties:{}}}}catch{return a("Error while saving the model")}}),cF=Q("models/open",async(e,{dispatch:r,getState:t})=>{const{tabs:a}=t().root,s=a.find(i=>i.path==="models/main");if(s)return r(Dt(s)),s;r(Ts())}),uF=Q("model/rename-dataclass",async(e,{getState:r,dispatch:t})=>{var m,_;const{dataclassId:a,selectionId:s,name:i}=e;let u=r();if(!u.explorer.find(S=>S.path===v.FolderRootPath.CLASSES))throw new Error("Classes folder was not found!");u=r();const d={class:{found:!1,newNameTaken:!1,file:null,filename_update:i},entity:{found:!1,newNameTaken:!1,file:null,filename_update:`${i}Entity`},selection:{found:!1,newNameTaken:!1,file:null,filename_update:`${i}Selection`}};(_=(m=u.explorer.find(S=>S.path===v.FolderRootPath.CLASSES))==null?void 0:m.children)==null||_.forEach(S=>{var T;S.path===`Classes/${a}___[<QODLY_ID>]`?(T=S.children)==null||T.forEach(w=>{var P,F,$,L;const D={...w,name:(P=w.info)==null?void 0:P.filename};((F=w.info)==null?void 0:F.filename)===a?(d.class.found=!0,d.class.file=D):(($=w.info)==null?void 0:$.filename)===`${a}Entity`?(d.entity.found=!0,d.entity.file=D):((L=w.info)==null?void 0:L.filename)===s&&(d.selection.found=!0,d.selection.file=D)}):(S.name===d.class.filename_update&&(d.class.newNameTaken=!0),S.name===d.entity.filename_update&&(d.entity.newNameTaken=!0),S.name===d.selection.filename_update&&(d.selection.newNameTaken=!0))});const p=Object.entries(d).reduce((S,T)=>{const[w,D]=T;return D.found?D.newNameTaken?[...S,{type:"error",message:`Cannot rename ${w} file to ${D.filename_update} because it already exists. The existing file will be used instead!`}]:S:[...S,{type:"warning",message:`${a} ${w} file was not found`}]},[]);p.length>0&&t(or({message:"The following errors were encountered during dataclass rename:",views:{tips:p}}));const h=Object.values(d).filter(S=>S.found&&S.file&&!S.newNameTaken);await Promise.all(h.map(async S=>await t(Vn({file:S.file,newname:S.filename_update}))))}),Wa={DATACLASS_DELETE:"dataclass.delete",DATACLASS_DRAGGABLE:"dataclass.draggable"},lF={model:{dataClasses:{},collections:{},extraProperties:{}},draft:{dataClasses:{},collections:{},extraProperties:{}},flags:{[Wa.DATACLASS_DELETE]:!0,[Wa.DATACLASS_DRAGGABLE]:!0}},mv=Yt({name:"Models",initialState:lF,reducers:{setModelFlag(e,r){e.flags={...e.flags,...r.payload}}},extraReducers(e){e.addCase(Ts.fulfilled,(r,t)=>{var u;const a={},s={},i=t.payload.extraProperties||{};(u=t.payload.dataClasses)==null||u.forEach(l=>{a[l.name]=l,s[l.collectionName]=l}),r.draft.dataClasses=a,r.draft.collections=s,r.draft.extraProperties=i,r.model.dataClasses=a,r.model.collections=s,r.model.extraProperties=i}),e.addCase(Ts.rejected,r=>{r.errored=!0}),e.addCase(ws.pending,()=>{}).addCase(ws.fulfilled,(r,t)=>{const a={},s={},i=t.payload.content.extraProperties||{};t.payload.content.dataClasses.forEach(u=>{a[u.name]=u,s[u.collectionName]=u}),r.draft.dataClasses=a,r.draft.collections=s,r.draft.extraProperties=i,r.model.dataClasses=a,r.model.collections=s,r.model.extraProperties=i})}}),{setModelFlag:fF}=mv.actions;var yv=(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))(yv||{}),zs=(e=>(e.STORAGE="storage",e.RELATEDENTITY="relatedEntity",e.RELATEDENTITIES="relatedEntities",e.CALCULATED="calculated",e.COMPOSITION="composition",e.ALIAS="alias",e))(zs||{});const dF=e=>["string","uuid","number","long"].includes(e.type),pF=[{label:"Storage",value:"storage"},{label:"Calculated",value:"calculated"}],hF=[{title:"UUID",kind:"storage",value:"uuid",calculatedType:"uuid",calculatedKind:"storage"},{title:"Long",kind:"storage",value:"long",calculatedType:"long",calculatedKind:"storage"}],gF=[{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"}],vF=[{label:"Expose as REST",value:"public"},{label:"Do not expose as REST",value:"publicOnServer"}],mF=[{label:"Expose as REST",value:"public"},{label:"Do not expose as REST",value:"publicOnServer"}],yF=[{label:"None",value:"none"},{label:"B-tree",value:"btree"},{label:"Cluster",value:"cluster"},{label:"Automatic",value:"auto"}],bF=(e,r)=>({toJSON:!0,extraProperties:r,dataClasses:e.map(t=>{var a;return{...t.data,extraProperties:{position:{x:t.position.x,y:t.position.y},panelColor:(a=t.data.extraProperties)==null?void 0:a.panelColor}}})});function _F(e,r,t){const a=e;let s=0;for(;t[`${a}${s||""}`];)s++;return`${a}${s||""}`}const bv=e=>e.kind===zs.RELATEDENTITY,_v=e=>e.kind===zs.RELATEDENTITIES,SF=e=>_v(e)||bv(e),EF=()=>Sr(e=>e.model),TF=()=>Sr(e=>e.model.draft.dataClasses),wF=()=>Sr(e=>e.model.draft.collections),CF=e=>Sr(r=>r.model.draft.dataClasses[e]),xF=(e,r)=>Sr(t=>t.model.draft.dataClasses[e].attributes.find(v.by("name",r))),OF=()=>Sr(e=>e.model.draft.extraProperties),RF=()=>{const e=Sr(s=>s.model.flags),r=s=>s in e?e[s]:void 0,t=r(Wa.DATACLASS_DELETE),a=r(Wa.DATACLASS_DRAGGABLE);return{deleteDataclass:t,draggableDataclass:a,flags:e}},AF=mv.reducer;function Yc(e,r){const t=e.tabs.find(({path:a})=>a===v.SETTINGS_TAB_PATH);t&&(t.flags.touched=r)}const Sv={SIDEBAR_SECTION_RESIZABLE:"sidebar.section.resizable"},Ev={[Sv.SIDEBAR_SECTION_RESIZABLE]:!0},Tv=Yt({name:"webforms",initialState:()=>{const{webforms:e}=Zn();return{...e,templates:{data:[],selectedGroup:""},datasources:{...$u.webforms.datasources,...e==null?void 0:e.datasources},flags:Ev}},reducers:{toggleInspector:(e,r)=>{const{type:t}=r.payload;e.inspector[t].active=!e.inspector[t].active,e.inspector[t].active||(e.inspector[t].data=void 0)},inspect:(e,r)=>{const{type:t,data:a}=r.payload;e.inspector[t].active&&(e.inspector[t].data=a)},addComponent:(e,r)=>{e.components.push(r.payload)},editComponent:(e,r)=>{const{id:t,changes:a}=r.payload;e.components=e.components.map(s=>s.id===t?{...s,...a}:s)},removeComponent:(e,r)=>{const{payload:t}=r,a=e.components.findIndex(s=>s.id===t);a!==-1&&e.components.splice(a,1)},setSelectedGroup:(e,r)=>{e.templates.selectedGroup=r.payload.selectedGroup},setTemplatesData:(e,r)=>{e.templates.data=r.payload},setTemplateData:(e,r)=>{const{group:t,components:a}=r.payload,s=e.templates.data.find(i=>i.group===t);s&&(s.components=a)},setDatasourcesTheme:(e,r)=>{e.datasources.theme=r.payload},setWebformsFlag(e,r){e.flags={...e.flags,...r.payload}}},extraReducers(e){e.addCase(Av.fulfilled,(r,t)=>{r.components=t.payload})}}),{toggleInspector:PF,inspect:DF,addComponent:wv,editComponent:Cv,removeComponent:xv,setSelectedGroup:FF,setTemplatesData:Ov,setTemplateData:Rv,setDatasourcesTheme:IF,setWebformsFlag:$F}=Tv.actions,MF=Tv.reducer,ol=Ae.curry((e,r)=>{var s,i;const t={...r.sharedDatasources.sources},a=(i=((s=r.root.tabs.find(v.by("path",e)))==null?void 0:s.content).metadata)==null?void 0:i.datasources;return a&&(t[e]=a),Ae.cloneDeep(t)}),LF=Q("webforms/fetchTemplates",async(e,{dispatch:r,getState:t})=>{const{data:a}=t().webforms.templates,s=t().settings.session["studio.tipsBaseUrl"]||"";if(!Ae.isEmpty(a))return a;try{const u=await(await fetch(`${s}/build/index.json?t=${Date.now()}`)).json();return r(Ov(u)),u}catch{return[]}}),NF=Q("webforms/fetchTemplate",async({name:e},{dispatch:r,getState:t})=>{const{data:a}=t().webforms.templates,s=a.find(i=>i.group===e);if(s&&!Ae.isEmpty(s.components))return s.components;try{const u=await(await fetch(`${s==null?void 0:s.link}?t=${Date.now()}`)).json();return r(Rv({group:e,components:u})),u}catch{return[]}}),Av=Q("webforms/fetchCraftedComponents",async(e,{rejectWithValue:r})=>{try{return(await v.getNodeInfo({path:"WebForms/crafted_components.json",verb:v.DesignerRequestVerb.GET_INFO,content:!0,as:"json"})).content}catch{return r("Error while loading the crafted components")}}),kF=Q("webforms/addCraftedComponent",async(e,{dispatch:r,rejectWithValue:t,getState:a})=>{try{r(wv(e));const{webforms:{components:s}}=a();v.setCraftedComponents(s)}catch{return t("Error while adding the crafted component")}}),jF=Q("webforms/editCraftedComponent",async(e,{dispatch:r,rejectWithValue:t,getState:a})=>{try{r(Cv(e));const{webforms:{components:s}}=a();v.setCraftedComponents(s)}catch{return t("Error while editing the crafted component")}}),BF=Q("webforms/removeCraftedComponent",async(e,{dispatch:r,rejectWithValue:t,getState:a})=>{try{r(xv(e));const{webforms:{components:s}}=a();v.setCraftedComponents(s)}catch{return t("Error while removing the crafted component")}}),sl=Q("datasources/add-datasource",async(e,{getState:r,rejectWithValue:t})=>{var a,s;try{const i=r(),u=e.datasource,l=!!u.namespace,d=[];if(l){const p={...i.sharedDatasources.sources,[u.namespace]:[...i.sharedDatasources.sources[u.namespace],u]};d.push(...p[u.namespace]),await v.setSharedSources(p)}else(((s=(a=i.root.tabs.find(v.by("path",e.path)).content)==null?void 0:a.metadata)==null?void 0:s.datasources)||[]).push(u);return{list:d,path:e.path,namespace:e.datasource.namespace}}catch{console.error("Error while adding the datasource",e.datasource.id),t("Error while adding the datasource")}}),il=Q("datasources/edit-datasource",async(e,{getState:r,rejectWithValue:t})=>{try{const{namespace:a,path:s}=e,i=r(),u=!!e.namespace,l=ol(s,i);let d=Ae.defaultTo(l[a||s],[]);const p=e.changes??{[e.property]:e.value};return d=d.map(h=>h.id===e.id?{...h,...p}:h),u&&await v.setSharedSources({...i.sharedDatasources.sources,[e.namespace]:d}),{list:d,path:e.path,namespace:e.namespace}}catch{t(`Error while editing datasource ${e.id}`)}}),WF=e=>e.type===Kn.fulfilled.type,Kn=Q("datasources/rename-datasource",async(e,{getState:r,rejectWithValue:t})=>{try{const a=r(),s=!!e.namespace,i=e.namespace||e.path,u=ol(e.path,a),l=Ae.defaultTo(u[i],[]),d=new RegExp(`^${e.id}\\b`,"");if(l.forEach(p=>{var m;const h=(v.isObjectDatasource(p)||!v.isSimpleDatasource(p))&&p.from&&d.test(p.from);e.updateRefs&&((m=p.events)==null||m.forEach(_=>{var S,T,w,D,P;switch(_.type){case"method":{const F=_;F.params.forEach($=>{$.datasource&&Object.assign($,{datasource:$.datasource.replace(new RegExp(`^${e.id}`,""),e.new_name)})}),F.returns&&Object.assign(F.returns,{datasource:(T=(S=F.returns)==null?void 0:S.datasource)==null?void 0:T.replace(new RegExp(`^${e.id}`,""),e.new_name)});return}case"simple-action":{const F=_;F.datasource&&Object.assign(F.datasource,{name:(w=F.datasource.name)==null?void 0:w.replace(new RegExp(`^${e.id}`,""),e.new_name),from:(D=F.datasource.from)==null?void 0:D.replace(new RegExp(`^${e.id}`,""),e.new_name),target:(P=F.datasource.target)==null?void 0:P.replace(new RegExp(`^${e.id}`,""),e.new_name)});return}default:return}})),p.id===e.id?p.id=e.new_name:h&&p.from&&(p.from=p.from.replace(new RegExp(`^${e.id}`,""),e.new_name))}),e.updateRefs){const p=v.getDatasourceId({id:e.id,namespace:e.namespace}),h=v.getDatasourceId({id:e.new_name,namespace:e.namespace});v.datasourcesSubject.next({path:e.path??"",action:v.DatasourcesActions.RENAME,old_reference:p,new_reference:h,is_shared:s})}return s&&await v.setSharedSources({...a.sharedDatasources.sources,[e.namespace]:l}),{list:l,path:e.path,namespace:e.namespace}}catch{return t(`Error while renaming datasource ${e.namespace}:${e.id}`)}}),Ma=Q("datasources/delete-datasource",async(e,{getState:r,rejectWithValue:t})=>{try{const a=r(),s=!!e.namespace,i=e.namespace||e.path,l=ol(e.path,a)[i].filter(v.outById(e.id));return s&&await v.setSharedSources({...a.sharedDatasources.sources,[e.namespace]:l}),{list:l,path:e.path,namespace:e.namespace}}catch{return t(`Error while removing datasource ${e.id}`)}}),as=Q("saved_conditions/fetchSavedConditions",async(e,{rejectWithValue:r})=>{try{const{conditions:t}=await v.getSavedConditions();return t}catch{return r("Error while loading the shared conditions")}}),UF=v.queue();async function Xo(e){const r={verb:v.DesignerRequestVerb.SET_FILE_CONTENT,asText:!1,name:"saved_conditions.json",path:"",root:"shared",content:{conditions:e}};await UF(()=>v.http(v.API_PREFIX,{method:"POST",body:JSON.stringify(r),headers:new Headers({"Content-Type":"application/json"})}))}const Ks=(e,r)=>{if(e.id===r)return null;if(e.type==="reference"&&e.ref===r)return null;if(e.type==="combination"&&e.conditions){const t=e.conditions.map(a=>Ks(a,r)).filter(Boolean);return t.length===1?{...t[0],id:e.id}:{...e,conditions:t}}return e},Js=e=>{if(e.id){if(e.type==="combination"&&e.conditions)return{...e,conditions:e.conditions.map(Js)}}else return{...e,id:Ba.generate()};return e},Pv=Yt({name:"shared-conditions",initialState:{state:"unknown",conditions:[]},reducers:{updateSavedConditions:(e,r)=>(e.conditions=r.payload.conditions,Xo(r.payload.conditions),e),setSavedCondition:(e,r)=>{const{payload:t}=r;return e.conditions=e.conditions.map(a=>a.id===t.id?{...Js(t.condition),id:a.id}:a),Xo(e.conditions),e},addSavedCondition:(e,r)=>(e.conditions=[...e.conditions,r.payload],Xo(e.conditions),e),removeSavedCondition:(e,r)=>{const{id:t}=r.payload;return e.conditions=e.conditions.map(a=>Ks(a,t)).filter(Boolean),Xo(e.conditions),e},initSavedConditions:(e,r)=>(e.conditions=r.payload.conditions,e)},extraReducers(e){e.addCase(as.pending,r=>({...r,state:"loading"})).addCase(as.fulfilled,(r,{payload:t})=>({state:"loaded",conditions:t})).addCase(as.rejected,(r,t)=>({...r,state:"error",error:t.payload||"Error while loading the shared conditions"}))}}),{updateSavedConditions:HF,setSavedCondition:GF,addSavedCondition:qF,removeSavedCondition:Dv,initSavedConditions:YF}=Pv.actions,VF=Pv.reducer,Ua=Yt({name:"root",initialState:()=>{const e=Zn();return{filesLoading:!1,tabs:e.tabs||[],activeTab:e.activeTab,recent:e.recent||[],clipboard:null}},reducers:{setWebformState(e,r){const{path:t,currentState:a}=r.payload;e.tabs.forEach(s=>{s.path===t&&(s.content.metadata.currentState=a.id)})},copyToClipBoard(e,r){e.clipboard=r.payload},setPanelState(e,r){const{path:t,...a}=r.payload;e.tabs.forEach(s=>{s.path===t&&(s.view||(s.view={panel:{isOpen:!1,type:"",current:""}}),Object.assign(s.view.panel,a))})},openSettingsTab(e){const r={date:new Date().toISOString(),flags:{confirmed:!0},view:{panel:{isOpen:!1,type:"",current:""}},extra:{editor:{key:"editors:settings"}},name:"Settings",path:v.SETTINGS_TAB_PATH,type:v.FileFolderType.SETTINGS,initialContent:{},content:{}};let t=e.tabs.find(a=>a.path===r.path);if(t||(e.tabs.push(r),t=e.tabs[e.tabs.length-1]),e.activeTab!==r.path){const a=e.tabs.reduce((s,i)=>(i==null?void 0:i.weight)>((s==null?void 0:s.weight)||0)?i:s,null);e.activeTab=r.path,t.weight=((a==null?void 0:a.weight)||0)+1}},addDataSource(e,r){var i;const{payload:{path:t,datasourceDef:a}}=r,s=e.tabs.find(u=>u.path===t);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,r){var i;const{payload:{path:t,stateDef:a}}=r,s=e.tabs.find(u=>u.path===t);s&&(s.content.metadata.states=s.content.metadata.states||[Xn],(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,r){const{path:t,id:a}=r.payload;e.tabs=e.tabs.map(s=>s.path===t?{...s,flags:{...s.flags,touched:!0,confirmed:!0},content:Ah(s.content,a)}:s)},editWebformState(e,r){const{path:t,state:a}=r.payload;e.tabs=e.tabs.map(s=>s.path===t?{...s,flags:{...s.flags,touched:!0,confirmed:!0},content:{...s.content,metadata:{...s.content.metadata,states:s.content.metadata.states.map(i=>i.id===a.id?a.conditions?{...a,conditions:Js(a.conditions)}:a:i)}}}:s)},resetComponentState(e,r){const{path:t,id:a,state:s}=r.payload;e.tabs=e.tabs.map(i=>i.path===t?{...i,flags:{...i.flags,touched:!0,confirmed:!0},content:{...i.content,components:{...i.content.components,[a]:{...i.content.components[a],custom:{...Ae.omit(i.content.components[a].custom,`states:${s.id}`)}}}}}:i)},setDefaultWebformStates(e,r){const{path:t,states:a}=r.payload;e.tabs=e.tabs.map(s=>s.path===t?{...s,flags:{...s.flags,touched:!0,confirmed:!0},content:{...s.content,metadata:{...s.content.metadata,defaultStates:a.map(({id:i})=>i)}}}:s)},addDefaultWebformState(e,r){const{payload:t}=r;e.tabs=e.tabs.map(a=>{var s;return a.path===t.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)||[],t.state.id]))}}}:a})},removeDefaultWebformState(e,r){const{payload:t}=r;e.tabs=e.tabs.map(a=>{var s;return a.path===t.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!==t.state.id)}}}:a})},removeDataSource(e,r){const{path:t,datasourceID:a}=r.payload;e.tabs=e.tabs.map(s=>s.path===t?{...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,r){const{payload:{path:t,datasourceArr:a}}=r;e.tabs=e.tabs.map(s=>{var i;return s.path===t?{...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,r){e.tabs=r.payload},closeTab(e,r){const t=r.payload;e.tabs.splice(t,1);const a=e.tabs.reduce((s,i)=>(i==null?void 0:i.weight)>((s==null?void 0:s.weight)||0)?i:s,null);e.activeTab=(a==null?void 0:a.path)||""},closeOthers(e,r){e.tabs=e.tabs.filter(t=>t.path===r.payload),e.activeTab=r.payload},closeAllTabs(e){e.tabs=[],e.activeTab=""},closeRightTabs(e,r){e.tabs.splice(r.payload+1),e.activeTab=e.tabs[r.payload].path},closeLeftTabs(e,r){e.tabs.splice(0,r.payload)},closeSavedTabs(e){e.tabs=e.tabs.filter(({flags:{touched:t}})=>t);const r=e.tabs.reduce((t,a)=>(a==null?void 0:a.weight)>((t==null?void 0:t.weight)||0)?a:t,null);e.activeTab=(r==null?void 0:r.path)||""},confirmTab(e,r){const t=e.tabs.find(({path:a})=>a===r.payload);t&&(t.flags.confirmed||Ua.caseReducers.setTabFlags(e,{type:r.type,payload:{path:r.payload,flags:{confirmed:!0}}}))},selectTab(e,r){const t=e.tabs.find(({path:s})=>s===r.payload);if(!t||e.activeTab===r.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);t.weight=a?(a.weight||0)+1:1,e.activeTab=r.payload},openTabUnselected(e,r){const t=r.payload;let a=e.tabs.find(({path:i})=>t.path===i);a||(e.tabs.push(t),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,...t.extra}},selectTabByReference(e,r){const t=[v.FileFolderType.DEBUGGER],{isNew:a,...s}=r.payload;let i=s,u=e.tabs.find(({path:l})=>i.path===l);if(i.history||(i.history={stack:[],active:-1,locked:!1}),(t.includes(i.type)||u!=null&&u.flags.confirmed)&&(i={...i,flags:{...i.flags,confirmed:!0}}),!u){const l=e.tabs.findIndex(({flags:{confirmed:d}})=>d===!1);l!==-1&&!t.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((d,p)=>(p==null?void 0:p.weight)>((d==null?void 0:d.weight)||0)?p:d,null);e.activeTab=i.path,u.weight=((l==null?void 0:l.weight)||0)+1}u.extra={...u.extra,...i.extra},u.flags={...u.flags||{},...i.flags||{}}},setContent(e,r){const{path:t,content:a,contentPath:s}=r.payload;e.tabs=e.tabs.map(i=>{if(i.path!==t)return i;let u=!1,l=i.flags.confirmed;if(typeof a=="string")u=i.initialContent!==a,l=!l&&u?!0:l;else{const d=JSON.stringify(Ae.get(i.initialContent,s||"",i.initialContent)),p=JSON.stringify(Ae.get(a,s||"",a));u=d!==p,l=!l&&u?!0:l}return a&&typeof a=="object"&&(s?Ae.set(i.content,s,a):i.content=a),typeof a=="string"&&(i.content=a),{...i,flags:{...i.flags,touched:u,confirmed:l}}})},setTabFlags(e,r){const{path:t,flags:a}=r.payload;e.tabs=e.tabs.map(s=>s.path===t?{...s,flags:{...s.flags,...a}}:s)},setTabsFlags(e,r){const{tabs:t,flags:a}=r.payload;e.tabs=e.tabs.map(s=>t.includes(s.path)?{...s,flags:{...s.flags,...a}}:s)},setTabExtra(e,r){const{path:t,extra:a,flags:s}=r.payload;e.tabs=e.tabs.map(i=>i.path===t?{...i,extra:{...i.extra,...a},flags:s?{...i.flags,...s}:i.flags}:i)},addWebFormStyles(e,r){const{path:t,styles:a=[]}=r.payload,s=e.tabs.find(i=>i.path===t);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,...d})=>({...d}))}},changeTabEditor(e,r){return e.tabs=e.tabs.map(t=>t.path===r.payload.path?r.payload:t),e},setHistoryContent(e,r){const t=r.payload;e.tabs=e.tabs.map(a=>{var i,u;if(a.path!==t)return a;const s=!Ae.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,r){const t=r.payload;e.tabs=e.tabs.map(a=>a.path!==t?a:(a.history&&(a.history.locked=!1),{...a}))},undo(e){e.tabs=e.tabs.map(r=>r.path!==e.activeTab?r:(r.history&&r.history.active>0&&(r.history.locked=!0,r.history.active--,r.content=r.history.stack[r.history.active]),{...r}))},redo(e){e.tabs=e.tabs.map(r=>r.path!==e.activeTab?r:(r.history&&r.history.active<r.history.stack.length-1&&(r.history.locked=!0,r.history.active++,r.content=r.history.stack[r.history.active]),{...r}))}},extraReducers:e=>{e.addCase(vu,(r,t)=>{if(t.payload.settingsKey==="studio.enablePreview"&&t.payload.value===!1){const a=r.tabs.find(({flags:{confirmed:s}})=>s===!1);a&&Ua.caseReducers.setTabFlags(r,{type:"",payload:{path:a.path,flags:{confirmed:!0}}})}}),e.addCase(cv.fulfilled,(r,t)=>{if(!t.payload)return;const{content:a,line:s,path:i}=t.payload,u=r.tabs.find(l=>l.path===i);if(u&&typeof u.content=="string"){const l=u.content.trim().split(`
141
+ `;default:return""}}function ov(e,r,t){switch(r){case v.FileFolderType.MOBILEFORM:return`${e}.MForm`;case v.FileFolderType.WEBFORM:return`${e}.WebForm`;case v.FileFolderType.REPORT:return`${e}.QoDoc`;case v.FileFolderType.METHOD:case v.FileFolderType.CLASS:return`${e}.${t?"4qs":"4dm"}`;default:return e}}function ED(e){switch(e){case v.FolderRootPath.WEBFORMS:return v.FileFolderType.WEBFORMS;case v.FolderRootPath.METHODS:return v.FileFolderType.METHODS;case v.FolderRootPath.CLASSES:return v.FileFolderType.CLASSES;case v.FolderRootPath.REPORTS:case"Reports":return v.FileFolderType.REPORT;case"Mobile":return v.FileFolderType.MOBILE;default:return e}}function sv(e){switch(e){case v.FileFolderType.WEBFORMS:return v.FileFolderType.WEBFORM;case v.FileFolderType.REPORT:return v.FileFolderType.REPORT;case v.FileFolderType.CLASSES:return v.FileFolderType.CLASS;case v.FileFolderType.METHODS:return v.FileFolderType.METHOD;case v.FileFolderType.FOLDER:return v.FileFolderType.FOLDER;case v.FileFolderType.MOBILE:return v.FileFolderType.MOBILEFORM;default:return e}}const TD=Q("files/tryEditMethod",async({method:e},{dispatch:r})=>{const t=e.filePath.split("/"),[a]=t[1].split("."),{editor:s}=xt(e.filePath);return await r(tl({file:{name:a,path:e.filePath,date:new Date().toISOString(),type:v.FileFolderType.CLASS,editor:s},line:e.startingLine+1})).unwrap()}),bu=Q("explorer/createModelFiles",async(e,{dispatch:r,getState:t})=>{var m;const a=t(),s=v.FolderRootPath.CLASSES,i=a.settings.server.qodly,u=lt(a.explorer,s);if(!u)return;await r(rn(s));const d=((m=t().explorer.find(_=>_.name===s))==null?void 0:m.children)||[];let p=[{content:"",name:""}];if(e.type==="dataclass"&&!e.toCreate){const{className:_,collectionName:S}=e;p=[{...En().dataclass({name:_,qodly:i})},{...En().collection({name:S,qodly:i})},{...En().entity({name:_,qodly:i})}]}else if(e.type==="dataclass"&&e.toCreate){const{className:_,collectionName:S}=e;p=[{...En()[e.toCreate]({name:_||S,qodly:i})}]}else p=[{...En().model({name:"DataStore",qodly:i})}];p=p.filter(_=>!d.find(({name:S,ext:T,info:{exist:w=!0}={}})=>S===_.name&&T===(i?"4qs":"4dm")&&w)),await Promise.all(p.map(async({name:_,content:S})=>{await r(Yn({type:v.FileFolderType.CLASS,path:s,fileName:_,parentNode:u,content:S,qodly:a.settings.server.qodly}))}));const h=e.type==="dataclass"&&e.expand?e.className:"";await r(rn({nodePath:s,expandDataclass:h}))}),rn=Q("explorer/fetchFolderContent",async(e,{rejectWithValue:r,getState:t})=>{const{nodePath:a,expandDataclass:s=""}=typeof e=="string"?{nodePath:e}:e,i=t();try{const u=await v.getNodeInfo({verb:v.DesignerRequestVerb.GET_INFO,path:a});return i.catalog.state!=="loaded"?[]:a==="Classes"?ou(i,u,s):u.map(l=>{const d=`${a}/${l.name}${l.ext?`.${l.ext}`:""}`,{editor:p,supportedEditors:h}=xt(d);return{name:l.name,size:l.size,type:l.type,date:`${l.date}`,flags:{},error:null,path:d,ext:l.ext,config:l.type==="folder"?{}:{editor:p,supportedEditors:h}}})}catch{return r("Failed loading file content please Reload"),a==="Classes"?ou(i,[],s):[]}},{getPendingMeta:()=>{}}),Fa=Q("explorer/fetchFolderContentWithoutExpanding",async(e,{rejectWithValue:r})=>{try{return(await v.getNodeInfo({verb:v.DesignerRequestVerb.GET_INFO,path:e})).map(a=>{const s=`${e}/${a.name}${a.ext?`.${a.ext}`:""}`,{editor:i,supportedEditors:u}=xt(s);return{name:a.name,size:a.size,type:a.type,date:`${a.date}`,flags:{},error:null,path:s,ext:a.ext,config:a.type==="folder"?{}:{editor:i,supportedEditors:u}}})}catch{return r("Failed loading file content please Reload")}},{getPendingMeta:()=>{}});function wD(e){const r=e.split(".");return r.pop(),{name:r.join("."),ext:e.split(".")[e.split(".").length-1]}}const CD=Q("explorer/uploadFileAndGetResponse",async e=>{const r=e.type.includes("image/")?"$rawPict=true":"$binary=true";try{const t=await fetch(`/rest/$upload?${r}`,{method:"POST",headers:{"Content-Type":e.type},body:e});return{status:t.status,data:await t.json()}}catch{return{status:500,data:null}}}),xD=Q("explorer/uploadFile",async({file:e,path:r,parentNode:t},{dispatch:a})=>{const{editor:s,supportedEditors:i}=xt(r),{name:u,ext:l}=wD(e.name);a(nv({parent:t,child:{name:u,path:`${r}/${e.name}?t=${Date.now()}`,type:e.type,error:null,flags:{loading:!0},config:{editor:s,supportedEditors:i},ext:l}}));try{const d=await fetch(`/rest/$upload?$sharedFolder=true&$filename=${e.name}&$path=${r}`,{method:"POST",headers:{"Content-Type":e.type},body:e});return d.status>=300?(a(yu({parent:t,child:{name:u,path:`${r}/${e.name}`,type:e.type,error:{message:"error uploading file"},flags:{},config:{editor:s,supportedEditors:i},ext:l}})),d.status!==413&&v.toastSubject.next({message:"error uploading file",kind:"danger"})):await a(rn(t.path)),{status:d.status,fileName:e.name}}catch{return a(yu({parent:t,child:{name:u,path:`${r}/${e.name}`,type:e.type,error:{message:"error uploading file"},flags:{},config:{editor:s,supportedEditors:i},ext:l}})),v.toastSubject.next({message:"error uploading file",kind:"danger"}),{status:500,fileName:e.name}}}),Yn=Q("explorer/createNewFile",async({fileName:e,type:r,path:t,parentNode:a,content:s},{dispatch:i,rejectWithValue:u,getState:l})=>{const{server:{qodly:d},project:p}=l().settings;try{const h=await v.setFileContent({name:ov(e,r,d),content:s||av(r,p),path:t,asText:[v.FileFolderType.CLASS,v.FileFolderType.METHOD].includes(r)});return a.error&&(a.flags.expanded?await i(rn(a.path)):await i(Fa(a.path))),{qodly:d,file:h,parentNode:a}}catch{return u("failed to create folder")}});function iv(e,r){const{qodly:t=!0,withExtension:a=!0}=r||{},s=v.getFileExtentionFromType(e.type,t);let i="";switch(e.type){case v.FileFolderType.WEBFORM:i=`${v.FolderRootPath.WEBFORMS}/${e.name}`;break;case v.FileFolderType.METHOD:i=`${v.FolderRootPath.METHODS}/${e.name}`;break;case v.FileFolderType.CLASS:i=`${v.FolderRootPath.CLASSES}/${e.name}`;break;default:return""}return`${i}${a?`.${s}`:""}`}const OD=Q("explorer/createNewFileAndOpen",async(e,{dispatch:r,getState:t})=>{const a=await r(Yn(e)).unwrap(),{qodly:s}=t().settings.server;if(a){const{file:i}=a,u=iv(i,{withExtension:!1,qodly:s}),{editor:l}=xt(u);await r(Ia({file:{name:e.fileName,type:i.type,path:u,editor:l,date:new Date().toISOString()}}))}}),ts=Q("explorer/createNewNode",async({fileName:e,path:r,parentNode:t},{rejectWithValue:a})=>{try{return{file:await v.createFolder({verb:v.DesignerRequestVerb.CREATE_FOLDER,path:`${r}/${e}`,recursive:!0}),parentNode:t}}catch{return v.toastSubject.next({message:"failed to create folder",kind:"danger"}),a("failed to create folder")}}),Vs=async(e,r={})=>{var t;try{const a=e.path.split(".").at(-1),s=await v.getNodeInfo({verb:v.DesignerRequestVerb.GET_INFO,path:e.path,content:((t=e.editor)==null?void 0:t.key)!=="editors:img",as:Oh(a)?"json":"text"}),i={editor:e.editor},u=v.getTypeFromExtension(e.path);u===v.FileFolderType.METHOD&&(i.attributes=v.parseAttributes(s.content),s.content=v.addAttributesToContent(s.content,{}));const{content:l,date:d,ext:p}=s;return r.confirmed===void 0&&(r.confirmed=!0),{date:d,view:{panel:{isOpen:!1,type:"",current:""}},flags:{enabled:["WebForm","MForm"].includes(p),confirmed:r.confirmed},extra:i,name:e.name,path:e.path,type:u,initialContent:l,content:l,history:{stack:[],active:-1,locked:!1}}}catch(a){const{data:s}=a;if(s.__ERROR.find(i=>i.errCode===v.ERROR_CODES.FILE_NOT_FOUND))switch(e.path){case v.ROLES_TAB_PATH:{const i={permissions:{allowed:[]},privileges:[],roles:[]};return{date:new Date().toISOString(),flags:r,extra:{editor:{key:"editors:roles"}},name:"Roles & Privileges",path:e.path,type:v.FileFolderType.ROLES,initialContent:i,content:i}}case v.SETTINGS_TAB_PATH:{const i={};return{date:new Date().toISOString(),flags:r,extra:{editor:{key:"editors:settings"}},name:"Settings",path:e.path,type:v.FileFolderType.SETTINGS,initialContent:i,content:i}}}throw a}},Ia=Q("explorer/openFile",async({file:e,inactive:r,isNew:t,flags:a={},info:s},{getState:i,dispatch:u})=>{const{root:{tabs:l},roles:d,debugger:{sessions:p},settings:{server:{qodly:h}}}=i(),m=l.find(({path:T})=>e.path===T);if(m){const T={...m,extra:{...m==null?void 0:m.extra,editor:e.editor},flags:{...m==null?void 0:m.flags,...a}};return u(Dt(T)),T}if(e.path.startsWith("Debugger")){const T=p.find(w=>`Debugger/${w.threadId}`===e.path);if(T){const{source:{content:w},source:D}=T.currentStackFrame,P={name:e.name,type:v.FileFolderType.DEBUGGER,date:new Date().toISOString(),path:e.path,content:w,view:{panel:{isOpen:!1,type:"",current:""}},initialContent:w,flags:{confirmed:!0},extra:{source:D,editor:e.editor}};return u(Dt(P)),P}}let _=null;try{_=await Vs(e,a)}catch(T){const{data:w}=T;if(w.__ERROR.find(D=>[v.ERROR_CODES.JSON_MALFORMED,v.ERROR_CODES.JSON_MALFORMED_AT_LINE].includes(D.errCode))){const{confirmed:D}=await u(or({title:"Corrupt file",type:v.ModalType.CONFIRM,color:v.ModalColor.WARNING,message:"Open in code editor ?"})).unwrap();if(D){const P=await v.getNodeInfo({verb:v.DesignerRequestVerb.GET_INFO,path:e.path,content:!0,as:"text"}),{content:F,date:$,ext:L}=P;_={date:$,view:{panel:{isOpen:!1,type:"",current:""}},flags:{enabled:["WebForm","MForm","QoDoc"].includes(L),confirmed:!0},extra:{editor:v.EDITOR.Code},name:e.name,path:e.path,type:v.getTypeFromExtension(e.path),initialContent:F,content:F,history:{stack:[],active:-1,locked:!1}}}}if(e.type===v.FileFolderType.CLASS&&s){const D=s.kind,P=`${e.name}.${h?"4qs":"4dm"}`,F=En()[D]({name:P,qodly:h}).content;if(_={date:(await v.setFileContent({name:P,content:F,path:"Classes",asText:!0})).date,view:{panel:{isOpen:!1,type:"",current:""}},flags:{enabled:!1,confirmed:!0},extra:{editor:v.EDITOR.Code},name:e.name,path:e.path,type:v.getTypeFromExtension(e.path),initialContent:F,content:F,history:{stack:[],active:-1,locked:!1}},D==="app"){const L=await v.getFilesInfo(...Yp.map(O=>({path:`DatabaseMethods/${O.name}`})));Yp.forEach(O=>{const Y=L.files.find(U=>U.path===`DatabaseMethods/${O.name}`);Y!=null&&Y.deleted&&v.setFileContent({name:O.name,content:O.content,path:"DatabaseMethods",asText:!0})})}}}return _&&(e.path===v.ROLES_TAB_PATH&&!d.flags.touched?u(Zu({content:_.content,date:_.date,flags:a})):e.path===v.SETTINGS_TAB_PATH&&u(Ys({path:"project",value:_.content})),u((r?kv:Dt)({..._,isNew:t})),_)}),tl=Q("explorer/openFileAtLine",async({file:e},{getState:r,dispatch:t})=>{const{tabs:a}=r().root,s=a.find(({path:u})=>e.path===u);if(s){const u={...s,extra:{...s==null?void 0:s.extra,editor:e.editor}};return t(Dt(u)),u}const i=await Vs(e);return t(Dt(i)),i}),cv=Q("explorer/injectContentAtLine",async(e,{getState:r,dispatch:t,rejectWithValue:a})=>{const s=r();e.path.split("/").pop();const u=lt(s.explorer,e.path);if(!u)return a(`Error while trying to inject content in file ${e.path}`);const l=await Vs({name:u.name,date:u.date||new Date().toISOString(),path:`${u.path}.${u.ext}`,type:v.FileFolderType.CLASS,editor:u.config.editor});return await t(Dt(l)),{...e,path:`${u.path}.${u.ext}`}}),uv=Q("explorer/openFileAtSelection",async({file:e},{getState:r,dispatch:t})=>{const{tabs:a}=r().root,s=a.find(({path:u})=>e.path===u);if(s){const u={...s,extra:{...s==null?void 0:s.extra,editor:e.editor}};return t(Dt(u)),u}const i=await Vs(e);return t(Dt(i)),i}),_u=Q("explorer/deleteFile",async e=>{const{name:r,type:t,path:a,flags:s}=e;if(s.error)return{deleted:!0,node:e};const i=a.split("/");return i.pop(),{deleted:await v.dropFile({root:v.FolderRootType.ROOT,type:sv(t),verb:v.DesignerRequestVerb.DROP,name:r,path:i.join("/")}),node:e}}),RD=Q("explorer/deleteFolder",async(e,{getState:r,dispatch:t})=>{const{path:a,flags:s}=e;if(s.error)return{deleted:!0,node:e};const{deleted:i}=await v.removeItem({force:!0,path:a,verb:v.DesignerRequestVerb.REMOVE_ITEM}).catch(console.error)||{deleted:!1};if(e.children){const{tabs:u}=r().root;e.children.forEach(l=>{const d=u.findIndex(p=>p.path===l.path);t(Xs(d))})}return{deleted:i,node:e}}),Su=Q("explorer/removeFileNode",async(e,{getState:r,dispatch:t})=>{if(await v.removeItem({verb:v.DesignerRequestVerb.REMOVE_ITEM,path:e.path,force:!0}).catch(console.error),e.path==="Classes/DataStore"&&setTimeout(()=>{t(Cn())},As),e.ext){const{tabs:a}=r().root,s=a.findIndex(i=>i.path===e.path);s>=0&&t(Xs(s))}return{deleted:!0,node:e}}),Vn=Q("explorer/renameFile",async({file:e,newname:r})=>{if(e.type!=="folder"){const a=e.path.split("/");a.pop();const s=`${a.join("/")}/${e.name}.${e.ext}`,i=`${a.join("/")}/${r}.${e.ext}`;return await v.moveItem({verb:v.DesignerRequestVerb.MOVE_ITEM,path:s,newpath:i}),{old:{...e,path:s},new:{...e,name:r,path:i}}}const t=e.path.split("/");return t.pop(),await v.moveItem({verb:v.DesignerRequestVerb.MOVE_ITEM,path:`${t.join("/")}/${e.name}`,newpath:`${t.join("/")}/${r}`}),{old:e,new:{...e,name:r,path:`${t.join("/")}/${r}`}}}),$a=Q("explorer/relocateNode",async({draggedNode:e,newLocation:r},{rejectWithValue:t})=>{try{await v.moveItem({verb:v.DesignerRequestVerb.MOVE_ITEM,path:`${e.path}.${e.ext}`,newpath:`${r.path}/${e.name}.${e.ext}`})}catch{return t("can't move item")}}),rs=Q("explorer/duplicateNode",async({node:e,duplicateName:r},{rejectWithValue:t,fulfillWithValue:a,getState:s})=>{const i=e.path.split("/");i.pop();try{const{tabs:u}=s().root,l=u.find(({path:m})=>m===e.path),d=["4dm","4qm","4qs"].includes(e.ext),{content:p}=l||await v.getNodeInfo({verb:v.DesignerRequestVerb.GET_INFO,path:e.path,content:!0,as:d?"text":"json"}),h=await v.setFileContent({name:`${r}.${e.ext}`,content:p,path:i.join("/"),asText:d});return a({node:{...h,path:i.join("/")}})}catch{return t("failed to duplicate file")}}),AD=Q("explorer/executeMethod",async({methodName:e,params:r=[],resultingDataSource:t={},namespace:a=""},{rejectWithValue:s})=>{var i,u;try{const d=await window.Method4D.buildMethod({methodName:e,parameters:r,resultingDataSource:t},{namespace:a},null).callServerSide({id:"",serverSideRef:""},"onclick",{});return d!=null&&d.__NOTIFICATION?v.toastSubject.next({message:`${((i=d.__NOTIFICATION)==null?void 0:i.message)||""}`,kind:`${((u=d.__NOTIFICATION)==null?void 0:u.type)||"info"}`}):v.toastSubject.next({message:"Method executed Successfully",kind:"message"}),d}catch(l){return v.toastSubject.next({message:l.message||`Error executing the method "**${e}**"`,kind:"danger",markdown:!0}),s("can't execute method")}}),PD=e=>{const{dataClasses:r,...t}=e;return{...t,dataClasses:r==null?void 0:r.map(a=>{let s={...a};if(s.uuid||(s={...s,uuid:v.generateUUID()}),s.attributes){const i=["storage","relatedEntity"],u=s.attributes.map(l=>i.includes(l.kind)&&!l.uuid?{...l,uuid:v.generateUUID()}:l);s={...s,attributes:[...u]}}return s})}},DD=Q("files/fetchFiles",async()=>v.getFolders(v.FolderRootType.WEBFORMS,v.FolderRootType.METHODS,v.FolderRootType.CLASSES)),rl=Q("tabs/renameDatasource",async(e,{dispatch:r,getState:t})=>{var S,T;const a=!!e.datasourceNamespace,{confirmed:s}=await r(or({message:"Are you sure you want to rename the datasource?",title:"Rename Datasource",type:v.ModalType.CONFIRM,color:v.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:d,path:p}=e,h=t();let m=[];if(a){const w=h.sharedDatasources.sources[l]||[];m.push(...w)}else if(p){const w=h.root.tabs.find(v.by("path",p));if(m=(T=(S=w==null?void 0:w.content)==null?void 0:S.metadata)==null?void 0:T.datasources,!m)return null}const _=new RegExp(`^${u}\\b`,"");if(m=m.map(w=>{const D=(v.isObjectDatasource(w)||!v.isSimpleDatasource(w))&&w.from&&_.test(w.from),P=w.events?w.events.map(F=>{var $,L,O,Y;switch(F==null?void 0:F.type){case"method":{const U=F;return U.params?{...U,params:U.params.map(q=>{var te;return{...q,datasource:(te=q.datasource)==null?void 0:te.replace(new RegExp(`^${u}`,""),d)}}),returns:($=U.returns)!=null&&$.datasource?{...U.returns,datasource:(L=U.returns.datasource)==null?void 0:L.replace(new RegExp(`^${u}`,""),d)}:U.returns}:U}case"simple-action":{const U=F;return U.datasource?{...U,datasource:{...U.datasource,name:(O=U.datasource.name)==null?void 0:O.replace(new RegExp(`^${u}`,""),d),from:(Y=U.datasource.from)==null?void 0:Y.replace(new RegExp(`^${u}`,""),d)}}:U}default:return F}}):w.events;return w.id===u?{...w,id:d,events:P}:D&&w.from?{...w,from:w.from.replace(new RegExp(`^${u}`,""),d),events:P}:{...w,events:P}}),i){const w=a?`${l}:${u}`:`${u}`,D=a?`${l}:${d}`:`${d}`;v.datasourcesSubject.next({path:p??"",action:v.DatasourcesActions.RENAME,old_reference:w,new_reference:D,is_shared:a})}return{path:p,namespace:l,datasources:m}}),nl=Q("tabs/edit-datasource",(e,{getState:r})=>{var i,u;const t=r();let a=[];if(e.namespace)a=t.sharedDatasources.sources[e.namespace];else{const l=t.root.tabs.find(v.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)}),lv=Q("tabs/fetchChanges",async(e,{getState:r})=>{const a=aa(r()).filter(s=>[v.FileFolderType.METHOD,v.FileFolderType.CLASS].includes(s.type));return v.getFilesInfo(...a.map(s=>{const[i]=s.path.split("/").filter(Boolean);return{name:s.name,type:s.type,root:i,path:"."}}))}),FD=Q("files/saveAll",async(e,{getState:r,dispatch:t})=>{const a=Uu(r());for(const s of a)t(zn({tab:s}))}),al=Q("files/tryCloseTab",async(e,{getState:r,dispatch:t})=>{const{tabs:a}=r().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 t(or({title:Ps(i),message:"Your unsaved changes will be lost. Proceed anyway?",type:v.ModalType.CONFIRM,color:v.ModalColor.WARNING,icon:"FdWarningDanger"})).unwrap();if(!u)return!1}return t(Xs(s)),i.path===v.ROLES_TAB_PATH&&i.flags.touched&&(async()=>{const l=await v.getNodeInfo({verb:v.DesignerRequestVerb.GET_INFO,path:v.ROLES_TAB_PATH,content:!0,as:"json"});t(Zu({content:l.content,date:l.date}))})(),!0}),ID=Q("files/tryCloseOtherTabs",async(e,{getState:r,dispatch:t})=>{const{tabs:a}=r().root;if(a.some(i=>i.path!==e&&i.flags.touched===!0)){const{confirmed:i}=await t(or({title:"Closing other tabs",message:"Your changes will be lost if you do not save them. Close anyway?",type:v.ModalType.CONFIRM,color:v.ModalColor.WARNING,icon:"FdWarningDanger"})).unwrap();if(!i)return}t(Mv(e))}),$D=Q("files/tryCloseAllTabs",async(e,{getState:r,dispatch:t})=>{const{tabs:a}=r().root;if(a.some(i=>i.flags.touched===!0)){const{confirmed:i}=await t(or({title:"Closing all tabs",message:"Your changes will be lost if you do not save them. Close anyway?",type:v.ModalType.CONFIRM,color:v.ModalColor.WARNING,icon:"FdWarningDanger"})).unwrap();if(!i)return}t(Iv())}),MD=Q("files/tryCloseRightTabs",async(e,{getState:r,dispatch:t})=>{const{tabs:a}=r().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 t(or({title:"Closing right tabs",message:"Your changes will be lost if you do not save them. Close anyway?",type:v.ModalType.CONFIRM,color:v.ModalColor.WARNING,icon:"FdWarningDanger"})).unwrap();if(!i)return}t($v(e))}),LD=Q("files/tryCloseLeftTabs",async(e,{getState:r,dispatch:t})=>{const{tabs:a}=r().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 t(or({title:"Closing left tabs",message:"Your changes will be lost if you do not save them. Close anyway?",type:v.ModalType.CONFIRM,color:v.ModalColor.WARNING,icon:"FdWarningDanger"})).unwrap();if(!i)return}t(Lv(e))}),ns=Q("files/reloadTab",async(e,{dispatch:r})=>{if(e.flags.touched){const{confirmed:s}=await r(or({title:Ps(e),message:"Changes made to the file will be lost. Continue?",type:v.ModalType.CONFIRM,color:v.ModalColor.WARNING,icon:"FdWarningDanger"})).unwrap();if(!s)throw new Error("Cancel modal!")}const t=ju(e.path),a=await v.getNodeInfo({verb:v.DesignerRequestVerb.GET_INFO,path:e.path,content:!0,as:t});if(e.path===v.ROLES_TAB_PATH){const{roles:s,privileges:i}=Gs(a.content);r(Qu({roles:s,privileges:i}))}else if(e.path===v.SETTINGS_TAB_PATH){const{content:s}=a;r(Ys({path:"project",value:s}))}else{const{content:s}=a;e.type===v.FileFolderType.WEBFORM?v.webformSubject.next({path:e.path,action:v.WebformActions.RELOAD,payload:s.components}):e.type===v.FileFolderType.MODEL&&ng.next({action:"reload",payload:s})}return a}),zn=Q("files/saveTab",async({tab:e},{dispatch:r,getState:t})=>{let{path:a,content:s}=e;if(e.type===v.FileFolderType.DEBUGGER)return{...e,errors:[]};a.split("/").pop();const u=await v.getFilesInfo({path:a});if(u.files[0]){const m=new Date(e.date),_=new Date(u.files[0].date);if(m.getTime()<_.getTime()){const{confirmed:S}=await r(or({title:Ps(e),message:"New content has been found on the server. Are you sure you want to continue?",type:v.ModalType.CONFIRM,icon:"FdSave"})).unwrap();if(!S)return r(Fv({path:a,flags:{old:!0}})),null}}const l=ND(e,t()),d=await v.saveContent({verb:v.DesignerRequestVerb.SAVE_CONTENT,content:l,path:a});(e.type===v.FileFolderType.CLASS||e.type===v.FileFolderType.MODEL)&&setTimeout(()=>{r(Cn())},As);const p=(d.modelErrors||[]).map(m=>m.message),h=(d.permissionsErrors||[]).map(m=>m.message);return v.FileFolderType.MODEL===e.type&&(s=l),{...e,content:s,date:d.date,initialContent:s,errors:p.length>0||h.length>0?[{title:"Model errors",messages:p},{title:"Permissions errors",messages:h}]:[]}}),ND=(e,r)=>{switch(!0){case e.path==="settings.json":case e.path===v.SETTINGS_TAB_PATH:return r.settings.project;case e.type===v.FileFolderType.ROLES:return{...e.content,...qs(r.roles)};case e.type===v.FileFolderType.MODEL:{const t=e.content||{toJSON:!0,dataClasses:[],extraProperties:{}};return PD(t)}default:return e.content}},Vp=async e=>{if(e.type===v.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 r=ju(e.path),t=await v.getNodeInfo({verb:v.DesignerRequestVerb.GET_INFO,path:e.path,content:!0,as:r}),a={};t.type===v.FileFolderType.METHOD&&(a.attributes=v.parseAttributes(t.content));const{date:s,name:i,type:u,content:l}=t;return{date:s,flags:{enabled:e.type===v.FileFolderType.WEBFORM},extra:a,view:{panel:{isOpen:!1,type:"",current:""}},name:i,path:e.path,type:u,initialContent:l,content:u===v.FileFolderType.MODEL?xh(l):l,history:{stack:[],active:-1,locked:!1}}},fv=Ae.debounce((e,r)=>{r(Bv(e))},300),kD=Q("tabs/setTabContent",(e,{getState:r,dispatch:t})=>{var u;const{root:{tabs:a}}=r(),s=a.find(l=>l.path===e.path),i=!!((u=s==null?void 0:s.history)!=null&&u.locked);t(cl(e)),i?t(ul(e.path)):fv(e.path,t)}),jD=Q("tabs/setCurrentWebformState",(e,{getState:r,dispatch:t})=>{var u;const{root:{tabs:a}}=r(),s=a.find(l=>l.path===e.path),i=!!((u=s==null?void 0:s.history)!=null&&u.locked);t(jv(e)),i?t(ul(e.path)):fv(e.path,t)}),dv=Q("files/tryInjectMethod",async({type:e,dataclass:r,expand:t},{getState:a,dispatch:s})=>{const{root:{tabs:i},settings:{server:{qodly:u}}}=a(),l=v.getFileExtentionFromType("class",u);let d="",p="",h=null;if(!r)d="DataStore",p=`Classes/DataStore.${l}`;else switch(e){case"dataclass":d=r,p=`Classes/${r}.${l}`;break;case"collection":d=`${r}Selection`,p=`Classes/${r}Selection.${l}`;break;case"entity":d=`${r}Entity`,p=`Classes/${r}Entity.${l}`;break;default:return h}const m=i.find(v.by("path",p));if(m)return s(Dt(m)),m;try{h=await Vp({name:d,date:new Date().toISOString(),path:p,type:v.FileFolderType.CLASS})}catch{r?await s(bu({type:"dataclass",className:r,collectionName:`${r}Selection`,toCreate:e,expand:t})):await s(bu({type:"model"}))}return h=await Vp({name:d,date:new Date().toISOString(),path:p,type:v.FileFolderType.CLASS}),h.path=p,s(Dt(h)),h}),BD=Q("roles/open",async(e,{dispatch:r,getState:t})=>{const{tabs:a}=t().root,s=a.find(i=>i.path===v.ROLES_TAB_PATH);if(s)return r(Dt(s)),s;r(Es())});function zp(e,r){const{line:t,offset:a,type:s="saved"}=r;e.breakpoints[s].locations.push({line:t}),Ae.isNumber(a)&&(e.breakpoints[s].offset=a)}function Kp(e,r,t,a){e.breakpoints[t].locations=r,Ae.isNumber(a)&&(e.breakpoints[t].offset=a)}function Jp({filePath:e,fileType:r,methodName:t,className:a,ext:s,source:i}){return{filePath:e,fileType:r,methodName:t,className:a,ext:s,source:i,breakpoints:{draft:{locations:[],offset:0},saved:{locations:[],offset:0}}}}function Xp(e,r,t){let a=!1;const s=e.map(i=>i[t]!==r[t]?i:(a=!0,{...i,...r}));return a?s:[...s,r]}function Jo(e){return e.map(({label:r})=>({label:r}))}const pv=Yt({name:"debugger",initialState:()=>{var r,t;const{debugger:e={meta:{state:Zr.DETACHED},list:[],sessions:[],expressions:[]}}=Zn();return{meta:{...e.meta,state:((r=e.meta)==null?void 0:r.state)===Zr.ATTACHED?(t=e.meta)==null?void 0:t.state:Zr.DETACHED},list:e.list||[],sessions:e.sessions||[],expressions:e.expressions||[]}},reducers:{addBreakpointDecoration(e,r){const{filePath:t,fileType:a,methodName:s,className:i,ext:u,source:l,breakpoint:d}=r.payload,p=wn(e.list,t,s,i);if(p)zp(p,d);else{if(a===v.FileFolderType.CLASS&&d.offset===void 0)throw new Error(`Cannot add a breakpoint on a function without offset. Try editing the ${i} class.`);const h=Jp({filePath:t,fileType:a,methodName:s,className:i,ext:u,source:l});zp(h,d),e.list.push(h)}},removeBreakpointDecoration(e,r){const{filePath:t,methodName:a,line:s,offset:i=0,type:u="saved"}=r.payload;if(t.startsWith("Classes/")){const l=e.list.filter(d=>d.filePath===t);if(l.length>0){const d=s+i;l.forEach(p=>{const h=p.breakpoints[u].offset||0;p.breakpoints[u].locations=p.breakpoints[u].locations.filter(m=>m.line+h!==d),u==="saved"&&(p.breakpoints.draft.locations=p.breakpoints.draft.locations.filter(m=>m.line+h!==d))})}}else{const l=wn(e.list,t,a);l&&(l.breakpoints[u].locations=l.breakpoints[u].locations.filter(d=>d.line!==s),u==="saved"&&(l.breakpoints.draft.locations=l.breakpoints.draft.locations.filter(d=>d.line!==s)))}},setBreakpointsDecoration(e,r){const{filePath:t,fileType:a,methodName:s,className:i,ext:u,source:l,breakpoints:d,offset:p,type:h="saved",clearDraft:m}=r.payload,_=wn(e.list,t,s);if(_)Kp(_,d,h,p),m&&h!=="draft"&&(_.breakpoints.draft.locations=[]);else{const S=Jp({filePath:t,fileType:a,methodName:s,className:i,ext:u,source:l});Kp(S,d,h,p),e.list.push(S)}},clearBreakpoints(e,r){const{filePath:t,type:a="saved"}=r.payload;e.list=e.list.map(s=>({...s,breakpoints:s.filePath===t?{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,r){const{exceptedFilePath:t,type:a="saved"}=r.payload;e.list=e.list.map(s=>({...s,breakpoints:s.filePath!==t?{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(r=>({...r,breakpoints:{draft:{locations:[],offset:0},saved:{locations:[],offset:0}}}))},setActiveLine(e,r){const{threadId:t,line:a,highlight:s}=r.payload,i=st(e.sessions,t);i&&(i.activeLine=a,s&&(i.highlightedLines={start:a,end:a}))},addExpression(e,r){const{threadId:t,label:a,save:s}=r.payload,i=st(e.sessions,t);i&&i.stopped&&(i.expressions=[...i.expressions||[],{label:a}],s&&(e.expressions=Jo(i.expressions)))},removeExpression(e,r){const{threadId:t,index:a,save:s}=r.payload,i=st(e.sessions,t);i&&(i.expressions=i.expressions.filter((u,l)=>l!==a),s&&(e.expressions=Jo(i.expressions)))},removeAllExpressions(e,r){const{threadId:t,save:a}=r.payload,s=st(e.sessions,t);s&&(s.expressions=[],a&&(e.expressions=[]))},renameExpression(e,r){const{threadId:t,index:a,replacement:s,save:i}=r.payload,u=st(e.sessions,t);u&&u.expressions[a]&&(u.expressions[a].label=s,i&&(e.expressions=Jo(u.expressions)))},setExpression(e,r){const{threadId:t,expression:a}=r.payload,s=st(e.sessions,t);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,r){const{threadId:t,index:a,value:s}=r.payload,i=st(e.sessions,t);if(i){const u=i.expressions[a];u&&(u.result=`"${s}"`,u.nakedResult=s)}},saveExpressions(e,r){const{expressions:t}=r.payload;e.expressions=Jo(t)},addSession(e,r){const{threadId:t,channelId:a,stackFrames:s,exceptions:i=[]}=r.payload,u=st(e.sessions,t),l=s[0],{expressions:d=[]}=e;if(u)u.expressions=d;else{const p=Nu(t);e.sessions.push({tabPath:p,threadId:t,channelId:a,stackFrames:s,currentStackFrame:l,exceptions:i,expressions:d,variables:{callchain:[],expressions:[]},highlightedLines:null,activeLine:null,stopped:!0})}},updateSession(e,r){const{threadId:t,changes:a}=r.payload;e.sessions=e.sessions.map(s=>s.threadId===t?{...s,...a}:s)},removeSession(e,r){const{threadId:t}=r.payload;e.sessions=e.sessions.filter(a=>a.threadId!==t)},removeSessionByIndex(e,r){const t=r.payload;e.sessions.splice(t,1)},setSessions(e,r){const t=r.payload;e.sessions=t},setCallChainVariables(e,r){const{threadId:t,frameId:a,variables:s}=r.payload;e.sessions=e.sessions.map(i=>{var u;return i.threadId===t?{...i,variables:{...i.variables,callchain:Xp((u=i.variables)==null?void 0:u.callchain,{frameId:a,items:s},"frameId")}}:i})},setExpressionVariables(e,r){const{threadId:t,variablesReference:a,variables:s}=r.payload;e.sessions=e.sessions.map(i=>{var u;return i.threadId===t?{...i,variables:{...i.variables,expressions:Xp((u=i.variables)==null?void 0:u.expressions,{variablesReference:a,items:s},"variablesReference")}}:i})},setSourceContent(e,r){const{threadId:t,content:a}=r.payload,s=st(e.sessions,t);s&&(s.currentStackFrame.source={...s.currentStackFrame.source,content:a})},setDebuggerMeta(e,r){if(r.payload.state===Zr.ERROR){const{error:t={code:null,reason:"",type:ps.SOCKET_ERROR}}=r.payload;if(e.meta.error={...e.meta.error,...t,time:Date.now()},(t==null?void 0:t.type)===ps.SOCKET_CLOSURE&&(t==null?void 0:t.code)===1e3&&!(t!=null&&t.reason)&&e.meta.state===Zr.DETACHED)return}e.meta.state=r.payload.state}},extraReducers:e=>{e.addCase(gv.fulfilled,r=>{r.sessions=[]})}}),{addBreakpointDecoration:WD,removeBreakpointDecoration:UD,setBreakpointsDecoration:HD,clearBreakpoints:GD,clearBreakpointsExcept:qD,clearAllBreakpoints:YD,setActiveLine:VD,addExpression:zD,renameExpression:KD,removeExpression:JD,removeAllExpressions:XD,setExpression:ZD,updateExpressionAt:QD,saveExpressions:eF,addSession:tF,updateSession:rF,removeSession:nF,removeSessionByIndex:aF,setSessions:hv,setCallChainVariables:oF,setExpressionVariables:sF,setSourceContent:iF,setDebuggerMeta:cF}=pv.actions,gv=Q("files/wipeDebuggerSessions",async(e,{getState:r,dispatch:t})=>{const{sessions:a}=r().debugger;for(const{threadId:s}of a){const i=Nu(s);t(al(i))}}),vv=Q("files/removeDebuggerSessionsNotIn",async(e,{getState:r,dispatch:t})=>{const{threadIds:a}=e,{sessions:s}=r().debugger,i=[],u=s.filter(l=>{const d=a.includes(l.threadId);return d||i.push(l.threadId),d});return t(hv(u)),{staleThreadIds:i}}),Ts=Q("models/fetch",async()=>(await v.http(v.API_PREFIX,{method:"POST",body:JSON.stringify({verb:v.DesignerRequestVerb.GET_INFO,path:v.MODEL_TAB_PATH,as:"json",content:!0}),headers:new Headers({"Content-Type":"application/json"})})).content),ws=Q("models/save",async(e,{getState:r,dispatch:t,rejectWithValue:a})=>{const{tabs:s}=r().root,i=s.find(u=>u.path===v.MODEL_TAB_PATH);if(!i)return a("Error while saving the model");try{const u=await v.http(v.API_PREFIX,{method:"POST",body:JSON.stringify({verb:"save",path:i.path,content:i.content}),headers:new Headers({"Content-Type":"application/json"})});return setTimeout(()=>{t(Cn())},As),{...u,path:i.path,content:e.content||{toJSON:!0,dataClasses:[],extraProperties:{}}}}catch{return a("Error while saving the model")}}),uF=Q("models/open",async(e,{dispatch:r,getState:t})=>{const{tabs:a}=t().root,s=a.find(i=>i.path==="models/main");if(s)return r(Dt(s)),s;r(Ts())}),lF=Q("model/rename-dataclass",async(e,{getState:r,dispatch:t})=>{var m,_;const{dataclassId:a,selectionId:s,name:i}=e;let u=r();if(!u.explorer.find(S=>S.path===v.FolderRootPath.CLASSES))throw new Error("Classes folder was not found!");u=r();const d={class:{found:!1,newNameTaken:!1,file:null,filename_update:i},entity:{found:!1,newNameTaken:!1,file:null,filename_update:`${i}Entity`},selection:{found:!1,newNameTaken:!1,file:null,filename_update:`${i}Selection`}};(_=(m=u.explorer.find(S=>S.path===v.FolderRootPath.CLASSES))==null?void 0:m.children)==null||_.forEach(S=>{var T;S.path===`Classes/${a}___[<QODLY_ID>]`?(T=S.children)==null||T.forEach(w=>{var P,F,$,L;const D={...w,name:(P=w.info)==null?void 0:P.filename};((F=w.info)==null?void 0:F.filename)===a?(d.class.found=!0,d.class.file=D):(($=w.info)==null?void 0:$.filename)===`${a}Entity`?(d.entity.found=!0,d.entity.file=D):((L=w.info)==null?void 0:L.filename)===s&&(d.selection.found=!0,d.selection.file=D)}):(S.name===d.class.filename_update&&(d.class.newNameTaken=!0),S.name===d.entity.filename_update&&(d.entity.newNameTaken=!0),S.name===d.selection.filename_update&&(d.selection.newNameTaken=!0))});const p=Object.entries(d).reduce((S,T)=>{const[w,D]=T;return D.found?D.newNameTaken?[...S,{type:"error",message:`Cannot rename ${w} file to ${D.filename_update} because it already exists. The existing file will be used instead!`}]:S:[...S,{type:"warning",message:`${a} ${w} file was not found`}]},[]);p.length>0&&t(or({message:"The following errors were encountered during dataclass rename:",views:{tips:p}}));const h=Object.values(d).filter(S=>S.found&&S.file&&!S.newNameTaken);await Promise.all(h.map(async S=>await t(Vn({file:S.file,newname:S.filename_update}))))}),Wa={DATACLASS_DELETE:"dataclass.delete",DATACLASS_DRAGGABLE:"dataclass.draggable"},fF={model:{dataClasses:{},collections:{},extraProperties:{}},draft:{dataClasses:{},collections:{},extraProperties:{}},flags:{[Wa.DATACLASS_DELETE]:!0,[Wa.DATACLASS_DRAGGABLE]:!0}},mv=Yt({name:"Models",initialState:fF,reducers:{setModelFlag(e,r){e.flags={...e.flags,...r.payload}}},extraReducers(e){e.addCase(Ts.fulfilled,(r,t)=>{var u;const a={},s={},i=t.payload.extraProperties||{};(u=t.payload.dataClasses)==null||u.forEach(l=>{a[l.name]=l,s[l.collectionName]=l}),r.draft.dataClasses=a,r.draft.collections=s,r.draft.extraProperties=i,r.model.dataClasses=a,r.model.collections=s,r.model.extraProperties=i}),e.addCase(Ts.rejected,r=>{r.errored=!0}),e.addCase(ws.pending,()=>{}).addCase(ws.fulfilled,(r,t)=>{const a={},s={},i=t.payload.content.extraProperties||{};t.payload.content.dataClasses.forEach(u=>{a[u.name]=u,s[u.collectionName]=u}),r.draft.dataClasses=a,r.draft.collections=s,r.draft.extraProperties=i,r.model.dataClasses=a,r.model.collections=s,r.model.extraProperties=i})}}),{setModelFlag:dF}=mv.actions;var yv=(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))(yv||{}),zs=(e=>(e.STORAGE="storage",e.RELATEDENTITY="relatedEntity",e.RELATEDENTITIES="relatedEntities",e.CALCULATED="calculated",e.COMPOSITION="composition",e.ALIAS="alias",e))(zs||{});const pF=e=>["string","uuid","number","long"].includes(e.type),hF=[{label:"Storage",value:"storage"},{label:"Calculated",value:"calculated"}],gF=[{title:"UUID",kind:"storage",value:"uuid",calculatedType:"uuid",calculatedKind:"storage"},{title:"Long",kind:"storage",value:"long",calculatedType:"long",calculatedKind:"storage"}],vF=[{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"}],mF=[{label:"Expose as REST",value:"public"},{label:"Do not expose as REST",value:"publicOnServer"}],yF=[{label:"Expose as REST",value:"public"},{label:"Do not expose as REST",value:"publicOnServer"}],bF=[{label:"None",value:"none"},{label:"B-tree",value:"btree"},{label:"Cluster",value:"cluster"},{label:"Automatic",value:"auto"}],_F=(e,r)=>({toJSON:!0,extraProperties:r,dataClasses:e.map(t=>{var a;return{...t.data,extraProperties:{position:{x:t.position.x,y:t.position.y},panelColor:(a=t.data.extraProperties)==null?void 0:a.panelColor}}})});function SF(e,r,t){const a=e;let s=0;for(;t[`${a}${s||""}`];)s++;return`${a}${s||""}`}const bv=e=>e.kind===zs.RELATEDENTITY,_v=e=>e.kind===zs.RELATEDENTITIES,EF=e=>_v(e)||bv(e),TF=()=>Sr(e=>e.model),wF=()=>Sr(e=>e.model.draft.dataClasses),CF=()=>Sr(e=>e.model.draft.collections),xF=e=>Sr(r=>r.model.draft.dataClasses[e]),OF=(e,r)=>Sr(t=>t.model.draft.dataClasses[e].attributes.find(v.by("name",r))),RF=()=>Sr(e=>e.model.draft.extraProperties),AF=()=>{const e=Sr(s=>s.model.flags),r=s=>s in e?e[s]:void 0,t=r(Wa.DATACLASS_DELETE),a=r(Wa.DATACLASS_DRAGGABLE);return{deleteDataclass:t,draggableDataclass:a,flags:e}},PF=mv.reducer;function Yc(e,r){const t=e.tabs.find(({path:a})=>a===v.SETTINGS_TAB_PATH);t&&(t.flags.touched=r)}const Sv={SIDEBAR_SECTION_RESIZABLE:"sidebar.section.resizable"},Ev={[Sv.SIDEBAR_SECTION_RESIZABLE]:!0},Tv=Yt({name:"webforms",initialState:()=>{const{webforms:e}=Zn();return{...e,templates:{data:[],selectedGroup:""},datasources:{...$u.webforms.datasources,...e==null?void 0:e.datasources},flags:Ev}},reducers:{toggleInspector:(e,r)=>{const{type:t}=r.payload;e.inspector[t].active=!e.inspector[t].active,e.inspector[t].active||(e.inspector[t].data=void 0)},inspect:(e,r)=>{const{type:t,data:a}=r.payload;e.inspector[t].active&&(e.inspector[t].data=a)},addComponent:(e,r)=>{e.components.push(r.payload)},editComponent:(e,r)=>{const{id:t,changes:a}=r.payload;e.components=e.components.map(s=>s.id===t?{...s,...a}:s)},removeComponent:(e,r)=>{const{payload:t}=r,a=e.components.findIndex(s=>s.id===t);a!==-1&&e.components.splice(a,1)},setSelectedGroup:(e,r)=>{e.templates.selectedGroup=r.payload.selectedGroup},setTemplatesData:(e,r)=>{e.templates.data=r.payload},setTemplateData:(e,r)=>{const{group:t,components:a}=r.payload,s=e.templates.data.find(i=>i.group===t);s&&(s.components=a)},setDatasourcesTheme:(e,r)=>{e.datasources.theme=r.payload},setWebformsFlag(e,r){e.flags={...e.flags,...r.payload}}},extraReducers(e){e.addCase(Av.fulfilled,(r,t)=>{r.components=t.payload})}}),{toggleInspector:DF,inspect:FF,addComponent:wv,editComponent:Cv,removeComponent:xv,setSelectedGroup:IF,setTemplatesData:Ov,setTemplateData:Rv,setDatasourcesTheme:$F,setWebformsFlag:MF}=Tv.actions,LF=Tv.reducer,ol=Ae.curry((e,r)=>{var s,i;const t={...r.sharedDatasources.sources},a=(i=((s=r.root.tabs.find(v.by("path",e)))==null?void 0:s.content).metadata)==null?void 0:i.datasources;return a&&(t[e]=a),Ae.cloneDeep(t)}),NF=Q("webforms/fetchTemplates",async(e,{dispatch:r,getState:t})=>{const{data:a}=t().webforms.templates,s=t().settings.session["studio.tipsBaseUrl"]||"";if(!Ae.isEmpty(a))return a;try{const u=await(await fetch(`${s}/build/index.json?t=${Date.now()}`)).json();return r(Ov(u)),u}catch{return[]}}),kF=Q("webforms/fetchTemplate",async({name:e},{dispatch:r,getState:t})=>{const{data:a}=t().webforms.templates,s=a.find(i=>i.group===e);if(s&&!Ae.isEmpty(s.components))return s.components;try{const u=await(await fetch(`${s==null?void 0:s.link}?t=${Date.now()}`)).json();return r(Rv({group:e,components:u})),u}catch{return[]}}),Av=Q("webforms/fetchCraftedComponents",async(e,{rejectWithValue:r})=>{try{return(await v.getNodeInfo({path:"WebForms/crafted_components.json",verb:v.DesignerRequestVerb.GET_INFO,content:!0,as:"json"})).content}catch{return r("Error while loading the crafted components")}}),jF=Q("webforms/addCraftedComponent",async(e,{dispatch:r,rejectWithValue:t,getState:a})=>{try{r(wv(e));const{webforms:{components:s}}=a();v.setCraftedComponents(s)}catch{return t("Error while adding the crafted component")}}),BF=Q("webforms/editCraftedComponent",async(e,{dispatch:r,rejectWithValue:t,getState:a})=>{try{r(Cv(e));const{webforms:{components:s}}=a();v.setCraftedComponents(s)}catch{return t("Error while editing the crafted component")}}),WF=Q("webforms/removeCraftedComponent",async(e,{dispatch:r,rejectWithValue:t,getState:a})=>{try{r(xv(e));const{webforms:{components:s}}=a();v.setCraftedComponents(s)}catch{return t("Error while removing the crafted component")}}),sl=Q("datasources/add-datasource",async(e,{getState:r,rejectWithValue:t})=>{var a,s;try{const i=r(),u=e.datasource,l=!!u.namespace,d=[];if(l){const p={...i.sharedDatasources.sources,[u.namespace]:[...i.sharedDatasources.sources[u.namespace],u]};d.push(...p[u.namespace]),await v.setSharedSources(p)}else(((s=(a=i.root.tabs.find(v.by("path",e.path)).content)==null?void 0:a.metadata)==null?void 0:s.datasources)||[]).push(u);return{list:d,path:e.path,namespace:e.datasource.namespace}}catch{console.error("Error while adding the datasource",e.datasource.id),t("Error while adding the datasource")}}),il=Q("datasources/edit-datasource",async(e,{getState:r,rejectWithValue:t})=>{try{const{namespace:a,path:s}=e,i=r(),u=!!e.namespace,l=ol(s,i);let d=Ae.defaultTo(l[a||s],[]);const p=e.changes??{[e.property]:e.value};return d=d.map(h=>h.id===e.id?{...h,...p}:h),u&&await v.setSharedSources({...i.sharedDatasources.sources,[e.namespace]:d}),{list:d,path:e.path,namespace:e.namespace}}catch{t(`Error while editing datasource ${e.id}`)}}),UF=e=>e.type===Kn.fulfilled.type,Kn=Q("datasources/rename-datasource",async(e,{getState:r,rejectWithValue:t})=>{try{const a=r(),s=!!e.namespace,i=e.namespace||e.path,u=ol(e.path,a),l=Ae.defaultTo(u[i],[]),d=new RegExp(`^${e.id}\\b`,"");if(l.forEach(p=>{var m;const h=(v.isObjectDatasource(p)||!v.isSimpleDatasource(p))&&p.from&&d.test(p.from);e.updateRefs&&((m=p.events)==null||m.forEach(_=>{var S,T,w,D,P;switch(_.type){case"method":{const F=_;F.params.forEach($=>{$.datasource&&Object.assign($,{datasource:$.datasource.replace(new RegExp(`^${e.id}`,""),e.new_name)})}),F.returns&&Object.assign(F.returns,{datasource:(T=(S=F.returns)==null?void 0:S.datasource)==null?void 0:T.replace(new RegExp(`^${e.id}`,""),e.new_name)});return}case"simple-action":{const F=_;F.datasource&&Object.assign(F.datasource,{name:(w=F.datasource.name)==null?void 0:w.replace(new RegExp(`^${e.id}`,""),e.new_name),from:(D=F.datasource.from)==null?void 0:D.replace(new RegExp(`^${e.id}`,""),e.new_name),target:(P=F.datasource.target)==null?void 0:P.replace(new RegExp(`^${e.id}`,""),e.new_name)});return}default:return}})),p.id===e.id?p.id=e.new_name:h&&p.from&&(p.from=p.from.replace(new RegExp(`^${e.id}`,""),e.new_name))}),e.updateRefs){const p=v.getDatasourceId({id:e.id,namespace:e.namespace}),h=v.getDatasourceId({id:e.new_name,namespace:e.namespace});v.datasourcesSubject.next({path:e.path??"",action:v.DatasourcesActions.RENAME,old_reference:p,new_reference:h,is_shared:s})}return s&&await v.setSharedSources({...a.sharedDatasources.sources,[e.namespace]:l}),{list:l,path:e.path,namespace:e.namespace}}catch{return t(`Error while renaming datasource ${e.namespace}:${e.id}`)}}),Ma=Q("datasources/delete-datasource",async(e,{getState:r,rejectWithValue:t})=>{try{const a=r(),s=!!e.namespace,i=e.namespace||e.path,l=ol(e.path,a)[i].filter(v.outById(e.id));return s&&await v.setSharedSources({...a.sharedDatasources.sources,[e.namespace]:l}),{list:l,path:e.path,namespace:e.namespace}}catch{return t(`Error while removing datasource ${e.id}`)}}),as=Q("saved_conditions/fetchSavedConditions",async(e,{rejectWithValue:r})=>{try{const{conditions:t}=await v.getSavedConditions();return t}catch{return r("Error while loading the shared conditions")}}),HF=v.queue();async function Xo(e){const r={verb:v.DesignerRequestVerb.SET_FILE_CONTENT,asText:!1,name:"saved_conditions.json",path:"",root:"shared",content:{conditions:e}};await HF(()=>v.http(v.API_PREFIX,{method:"POST",body:JSON.stringify(r),headers:new Headers({"Content-Type":"application/json"})}))}const Ks=(e,r)=>{if(e.id===r)return null;if(e.type==="reference"&&e.ref===r)return null;if(e.type==="combination"&&e.conditions){const t=e.conditions.map(a=>Ks(a,r)).filter(Boolean);return t.length===1?{...t[0],id:e.id}:{...e,conditions:t}}return e},Js=e=>{if(e.id){if(e.type==="combination"&&e.conditions)return{...e,conditions:e.conditions.map(Js)}}else return{...e,id:Ba.generate()};return e},Pv=Yt({name:"shared-conditions",initialState:{state:"unknown",conditions:[]},reducers:{updateSavedConditions:(e,r)=>(e.conditions=r.payload.conditions,Xo(r.payload.conditions),e),setSavedCondition:(e,r)=>{const{payload:t}=r;return e.conditions=e.conditions.map(a=>a.id===t.id?{...Js(t.condition),id:a.id}:a),Xo(e.conditions),e},addSavedCondition:(e,r)=>(e.conditions=[...e.conditions,r.payload],Xo(e.conditions),e),removeSavedCondition:(e,r)=>{const{id:t}=r.payload;return e.conditions=e.conditions.map(a=>Ks(a,t)).filter(Boolean),Xo(e.conditions),e},initSavedConditions:(e,r)=>(e.conditions=r.payload.conditions,e)},extraReducers(e){e.addCase(as.pending,r=>({...r,state:"loading"})).addCase(as.fulfilled,(r,{payload:t})=>({state:"loaded",conditions:t})).addCase(as.rejected,(r,t)=>({...r,state:"error",error:t.payload||"Error while loading the shared conditions"}))}}),{updateSavedConditions:GF,setSavedCondition:qF,addSavedCondition:YF,removeSavedCondition:Dv,initSavedConditions:VF}=Pv.actions,zF=Pv.reducer,Ua=Yt({name:"root",initialState:()=>{const e=Zn();return{filesLoading:!1,tabs:e.tabs||[],activeTab:e.activeTab,recent:e.recent||[],clipboard:null}},reducers:{setWebformState(e,r){const{path:t,currentState:a}=r.payload;e.tabs.forEach(s=>{s.path===t&&(s.content.metadata.currentState=a.id)})},copyToClipBoard(e,r){e.clipboard=r.payload},setPanelState(e,r){const{path:t,...a}=r.payload;e.tabs.forEach(s=>{s.path===t&&(s.view||(s.view={panel:{isOpen:!1,type:"",current:""}}),Object.assign(s.view.panel,a))})},openSettingsTab(e){const r={date:new Date().toISOString(),flags:{confirmed:!0},view:{panel:{isOpen:!1,type:"",current:""}},extra:{editor:{key:"editors:settings"}},name:"Settings",path:v.SETTINGS_TAB_PATH,type:v.FileFolderType.SETTINGS,initialContent:{},content:{}};let t=e.tabs.find(a=>a.path===r.path);if(t||(e.tabs.push(r),t=e.tabs[e.tabs.length-1]),e.activeTab!==r.path){const a=e.tabs.reduce((s,i)=>(i==null?void 0:i.weight)>((s==null?void 0:s.weight)||0)?i:s,null);e.activeTab=r.path,t.weight=((a==null?void 0:a.weight)||0)+1}},addDataSource(e,r){var i;const{payload:{path:t,datasourceDef:a}}=r,s=e.tabs.find(u=>u.path===t);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,r){var i;const{payload:{path:t,stateDef:a}}=r,s=e.tabs.find(u=>u.path===t);s&&(s.content.metadata.states=s.content.metadata.states||[Xn],(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,r){const{path:t,id:a}=r.payload;e.tabs=e.tabs.map(s=>s.path===t?{...s,flags:{...s.flags,touched:!0,confirmed:!0},content:Ah(s.content,a)}:s)},editWebformState(e,r){const{path:t,state:a}=r.payload;e.tabs=e.tabs.map(s=>s.path===t?{...s,flags:{...s.flags,touched:!0,confirmed:!0},content:{...s.content,metadata:{...s.content.metadata,states:s.content.metadata.states.map(i=>i.id===a.id?a.conditions?{...a,conditions:Js(a.conditions)}:a:i)}}}:s)},resetComponentState(e,r){const{path:t,id:a,state:s}=r.payload;e.tabs=e.tabs.map(i=>i.path===t?{...i,flags:{...i.flags,touched:!0,confirmed:!0},content:{...i.content,components:{...i.content.components,[a]:{...i.content.components[a],custom:{...Ae.omit(i.content.components[a].custom,`states:${s.id}`)}}}}}:i)},setDefaultWebformStates(e,r){const{path:t,states:a}=r.payload;e.tabs=e.tabs.map(s=>s.path===t?{...s,flags:{...s.flags,touched:!0,confirmed:!0},content:{...s.content,metadata:{...s.content.metadata,defaultStates:a.map(({id:i})=>i)}}}:s)},addDefaultWebformState(e,r){const{payload:t}=r;e.tabs=e.tabs.map(a=>{var s;return a.path===t.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)||[],t.state.id]))}}}:a})},removeDefaultWebformState(e,r){const{payload:t}=r;e.tabs=e.tabs.map(a=>{var s;return a.path===t.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!==t.state.id)}}}:a})},removeDataSource(e,r){const{path:t,datasourceID:a}=r.payload;e.tabs=e.tabs.map(s=>s.path===t?{...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,r){const{payload:{path:t,datasourceArr:a}}=r;e.tabs=e.tabs.map(s=>{var i;return s.path===t?{...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,r){e.tabs=r.payload},closeTab(e,r){const t=r.payload;e.tabs.splice(t,1);const a=e.tabs.reduce((s,i)=>(i==null?void 0:i.weight)>((s==null?void 0:s.weight)||0)?i:s,null);e.activeTab=(a==null?void 0:a.path)||""},closeOthers(e,r){e.tabs=e.tabs.filter(t=>t.path===r.payload),e.activeTab=r.payload},closeAllTabs(e){e.tabs=[],e.activeTab=""},closeRightTabs(e,r){e.tabs.splice(r.payload+1),e.activeTab=e.tabs[r.payload].path},closeLeftTabs(e,r){e.tabs.splice(0,r.payload)},closeSavedTabs(e){e.tabs=e.tabs.filter(({flags:{touched:t}})=>t);const r=e.tabs.reduce((t,a)=>(a==null?void 0:a.weight)>((t==null?void 0:t.weight)||0)?a:t,null);e.activeTab=(r==null?void 0:r.path)||""},confirmTab(e,r){const t=e.tabs.find(({path:a})=>a===r.payload);t&&(t.flags.confirmed||Ua.caseReducers.setTabFlags(e,{type:r.type,payload:{path:r.payload,flags:{confirmed:!0}}}))},selectTab(e,r){const t=e.tabs.find(({path:s})=>s===r.payload);if(!t||e.activeTab===r.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);t.weight=a?(a.weight||0)+1:1,e.activeTab=r.payload},openTabUnselected(e,r){const t=r.payload;let a=e.tabs.find(({path:i})=>t.path===i);a||(e.tabs.push(t),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,...t.extra}},selectTabByReference(e,r){const t=[v.FileFolderType.DEBUGGER],{isNew:a,...s}=r.payload;let i=s,u=e.tabs.find(({path:l})=>i.path===l);if(i.history||(i.history={stack:[],active:-1,locked:!1}),(t.includes(i.type)||u!=null&&u.flags.confirmed)&&(i={...i,flags:{...i.flags,confirmed:!0}}),!u){const l=e.tabs.findIndex(({flags:{confirmed:d}})=>d===!1);l!==-1&&!t.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((d,p)=>(p==null?void 0:p.weight)>((d==null?void 0:d.weight)||0)?p:d,null);e.activeTab=i.path,u.weight=((l==null?void 0:l.weight)||0)+1}u.extra={...u.extra,...i.extra},u.flags={...u.flags||{},...i.flags||{}}},setContent(e,r){const{path:t,content:a,contentPath:s}=r.payload;e.tabs=e.tabs.map(i=>{if(i.path!==t)return i;let u=!1,l=i.flags.confirmed;if(typeof a=="string")u=i.initialContent!==a,l=!l&&u?!0:l;else{const d=JSON.stringify(Ae.get(i.initialContent,s||"",i.initialContent)),p=JSON.stringify(Ae.get(a,s||"",a));u=d!==p,l=!l&&u?!0:l}return a&&typeof a=="object"&&(s?Ae.set(i.content,s,a):i.content=a),typeof a=="string"&&(i.content=a),{...i,flags:{...i.flags,touched:u,confirmed:l}}})},setTabFlags(e,r){const{path:t,flags:a}=r.payload;e.tabs=e.tabs.map(s=>s.path===t?{...s,flags:{...s.flags,...a}}:s)},setTabsFlags(e,r){const{tabs:t,flags:a}=r.payload;e.tabs=e.tabs.map(s=>t.includes(s.path)?{...s,flags:{...s.flags,...a}}:s)},setTabExtra(e,r){const{path:t,extra:a,flags:s}=r.payload;e.tabs=e.tabs.map(i=>i.path===t?{...i,extra:{...i.extra,...a},flags:s?{...i.flags,...s}:i.flags}:i)},addWebFormStyles(e,r){const{path:t,styles:a=[]}=r.payload,s=e.tabs.find(i=>i.path===t);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,...d})=>({...d}))}},changeTabEditor(e,r){return e.tabs=e.tabs.map(t=>t.path===r.payload.path?r.payload:t),e},setHistoryContent(e,r){const t=r.payload;e.tabs=e.tabs.map(a=>{var i,u;if(a.path!==t)return a;const s=!Ae.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,r){const t=r.payload;e.tabs=e.tabs.map(a=>a.path!==t?a:(a.history&&(a.history.locked=!1),{...a}))},undo(e){e.tabs=e.tabs.map(r=>r.path!==e.activeTab?r:(r.history&&r.history.active>0&&(r.history.locked=!0,r.history.active--,r.content=r.history.stack[r.history.active]),{...r}))},redo(e){e.tabs=e.tabs.map(r=>r.path!==e.activeTab?r:(r.history&&r.history.active<r.history.stack.length-1&&(r.history.locked=!0,r.history.active++,r.content=r.history.stack[r.history.active]),{...r}))}},extraReducers:e=>{e.addCase(vu,(r,t)=>{if(t.payload.settingsKey==="studio.enablePreview"&&t.payload.value===!1){const a=r.tabs.find(({flags:{confirmed:s}})=>s===!1);a&&Ua.caseReducers.setTabFlags(r,{type:"",payload:{path:a.path,flags:{confirmed:!0}}})}}),e.addCase(cv.fulfilled,(r,t)=>{if(!t.payload)return;const{content:a,line:s,path:i}=t.payload,u=r.tabs.find(l=>l.path===i);if(u&&typeof u.content=="string"){const l=u.content.trim().split(`
142
142
  `);l.splice(s,0,a),u.content=l.join(`
143
143
  `)}}),e.addCase(zn.pending,(r,t)=>{const{tab:a}=t.meta.arg;switch(a.type){case v.FileFolderType.CLASS:case v.FileFolderType.METHOD:v.lspSubject.next({action:v.LspActions.WILL_SAVE,payload:{filePath:a.path}});break}}),e.addCase(zn.fulfilled,(r,t)=>{if(!t.payload)return;const a=r.tabs.find(({path:s})=>{var i;return s===((i=t.payload)==null?void 0:i.path)});if(a){switch(a.content=t.payload.content,a.date=t.payload.date,a.initialContent=t.payload.initialContent,a.flags.touched=!1,a.flags.confirmed=!0,a.flags.old=!1,a.type){case v.FileFolderType.CLASS:case v.FileFolderType.METHOD:v.lspSubject.next({action:v.LspActions.DID_SAVE,payload:{filePath:a.path,content:a.content}});break}t.payload.errors.length>0&&v.toastSubject.next({kind:"error",message:t.payload.errors})}}),e.addCase(zn.rejected,()=>{v.toastSubject.next({kind:"danger",message:"Cannot save file"})}),e.addCase(lv.fulfilled,(r,t)=>{const a=[...t.payload.files];r.tabs=r.tabs.map(s=>{if([v.FileFolderType.CLASS,v.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(ns.pending,(r,t)=>{r.tabs=r.tabs.map(a=>a.path===t.meta.arg.path?{...a,flags:{...a.flags,loading:!0}}:a)}),e.addCase(ns.fulfilled,(r,t)=>{const a=t.payload;if(a){const s=t.meta.arg;r.tabs=r.tabs.map(i=>{if(i.name===s.name&&i.type===s.type){const u=i.extra||{};return i.type===v.FileFolderType.METHOD?(u.attributes=v.parseAttributes(a.content),a.content=v.addAttributesToContent(a.content,{})):i.type===v.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(ns.rejected,(r,t)=>{const a=t.meta.arg.path;r.tabs=r.tabs.map(s=>s.path===a?{...s,flags:{...s.flags,loading:!1}}:s)}),e.addCase(tl.fulfilled,(r,t)=>{if(!t.payload)return;const{line:a,offset:s}=t.meta.arg,i=r.tabs.find(({path:u})=>{var l;return u===((l=t.payload)==null?void 0:l.path)});i&&(i.extra={...i.extra,initialLineInfo:{line:a,offset:s,lastModification:Date.now()}})}),e.addCase(uv.fulfilled,(r,t)=>{if(!t.payload)return;const{selection:a}=t.meta.arg,s=r.tabs.find(({path:i})=>{var u;return i===((u=t.payload)==null?void 0:u.path)});s&&(s.extra={...s.extra,initialSelectionInfo:{selection:a,lastModification:Date.now()}})}),e.addCase(Vn.fulfilled,(r,t)=>{t.payload.new!==t.payload.old&&(r.tabs=[...r.tabs].map(a=>a.path===t.payload.old.path?{...a,path:t.payload.new.path,name:t.payload.new.name}:a),r.activeTab===t.payload.old.path&&(r.activeTab=t.payload.new.path))}),e.addCase(_u.pending,(r,t)=>{const a=t.meta.arg,s=`${a.path}${a.ext?`.${a.ext}`:""}`;switch(a.ext){case"4dm":case"4qs":v.lspSubject.next({action:v.LspActions.WILL_DELETE,payload:{filePath:s}});break}}),e.addCase(_u.fulfilled,(r,t)=>{const{deleted:a,node:s}=t.payload;if(!a)return;const i=`${s.path}${s.ext?`.${s.ext}`:""}`;switch(s.ext){case"4dm":case"4qs":v.lspSubject.next({action:v.LspActions.DID_DELETE,payload:{filePath:i}});break}if(r.tabs=r.tabs.filter(u=>u.path!==i),r.recent=r.recent.filter(({path:u})=>i!==u),r.tabs.length){r.activeTab=r.tabs[r.tabs.length-1].path;return}r.activeTab=""}),e.addCase(Su.pending,(r,t)=>{const a=t.meta.arg,s=`${a.path}${a.ext?`.${a.ext}`:""}`;switch(a.ext){case"4dm":case"4qs":v.lspSubject.next({action:v.LspActions.WILL_DELETE,payload:{filePath:s}});break}}),e.addCase(Su.fulfilled,(r,t)=>{const{node:a}=t.payload,s=`${a.path}${a.ext?`.${a.ext}`:""}`;switch(a.ext){case"4dm":case"4qs":v.lspSubject.next({action:v.LspActions.DID_DELETE,payload:{filePath:s}});break}}),e.addCase($a.fulfilled,(r,t)=>{const{draggedNode:a,newLocation:s}=t.meta.arg;if(r.tabs.find(i=>i.path===`${a.path}${a.ext?`.${a.ext}`:""}`))return r.tabs=r.tabs.map(i=>i.path===`${a.path}${a.ext?`.${a.ext}`:""}`?{...i,path:`${s.path}/${a.name}.${a.ext}`}:i),r.recent=r.recent.map(i=>i.path===`${a.path}${a.ext?`.${a.ext}`:""}`?{...i,path:`${s.path}/${a.name}.${a.ext}`}:i),r.activeTab=`${s.path}/${a.name}.${a.ext}`,r}),e.addCase(ws.fulfilled,(r,t)=>{const a=r.tabs.find(s=>s.path===t.payload.path);a&&(a.flags.touched=!1,a.flags.confirmed=!0,a.date=t.payload.date,a.content=t.payload.content,a.initialContent=t.payload.content)}),e.addCase(dv.fulfilled,(r,t)=>{var i;if(!((i=t.payload)!=null&&i.path))return;const a=r.tabs.find(v.by("path",t.payload.path));if(!a)return;a.content=a.content+`
144
144
  exposed Function ${t.meta.arg.name}()
145
145
  `,a.flags={...a.flags,touched:!0,confirmed:!0};const s=a.content.split(`
146
- `);a.path.startsWith("Classes/")&&(a.type=v.FileFolderType.CLASS),a.extra={...a.extra,editor:v.EDITOR.Code,initialLineInfo:{line:s.length-1,lastModification:Date.now()}}}),e.addCase(rl.fulfilled,(r,t)=>{var i,u;if(!((i=t.payload)!=null&&i.path)||(u=t.payload)!=null&&u.namespace)return;const a=t.payload.path,s=r.tabs.find(v.by("path",a));!s||!s.content||!s.content.metadata||(Object.assign(s.content.metadata,{datasources:t.payload.datasources}),s.flags.touched=!0,s.flags.confirmed=!0)}),e.addCase(nl.fulfilled,(r,t)=>{const{payload:a,meta:{arg:s}}=t;s.namespace||r.tabs.forEach(i=>{i.path===s.path&&Object.assign(i.content,{metadata:{...i.content.metadata,datasources:a}})})}),e.addCase(vv.fulfilled,(r,t)=>{const{staleThreadIds:a}=t.payload;if(a.length===0)return;const s=a.map(i=>`Debugger/${i}`);if(r.tabs=r.tabs.filter(i=>!s.includes(i.path)),r.recent=r.recent.filter(({path:i})=>!s.includes(i)),r.tabs.length){r.activeTab=r.tabs[r.tabs.length-1].path;return}r.activeTab=""}),e.addCase(el.pending,r=>Yc(r,!1)),e.addCase(Dv,(r,t)=>{const{id:a}=t.payload;r.tabs=r.tabs.map(s=>({...s,content:{...s.content,metadata:{...s.content.metadata,states:(s.content.metadata.states||[]).map(i=>{if(i.conditions){const u=Ks(i.conditions,a);return u?{...i,conditions:u}:Ae.omit(i,"conditions")}return i})}}}))}),e.addMatcher(pr(vu),(r,t)=>{["project"].includes(t.payload.path)&&Yc(r,!0)}),e.addMatcher(pr(Ys),r=>{Yc(r,!1)}),e.addMatcher(pr(Nv,Dt),(r,t)=>{const{payload:a}=t;let s;typeof a=="string"?s=r.tabs.find(({path:i})=>a===i):s=a,s&&(r.recent=[s,...r.recent.filter(({path:i})=>![s.path,"settings"].includes(i))])}),e.addMatcher(pr(Zg,Xg),r=>{r.tabs=r.tabs.map(t=>t.path===v.ROLES_TAB_PATH?{...t,flags:{...t.flags,confirmed:!0,touched:!0}}:t)}),e.addMatcher(pr(Qu),r=>{r.tabs=r.tabs.map(t=>t.path===v.ROLES_TAB_PATH?{...t,flags:{...t.flags,touched:!1}}:t)}),e.addMatcher(pr(sl.fulfilled,il.fulfilled,Ma.fulfilled,Kn.fulfilled),(r,t)=>{var s,i,u;const a=r.tabs.find(v.by("path",((s=t.payload)==null?void 0:s.path)||t.meta.arg.path));!a||(i=t.payload)!=null&&i.namespace||(a.flags.touched=!0,a.flags.confirmed=!0,Object.assign(a.content,{metadata:{...a.content.metadata,datasources:(u=t.payload)==null?void 0:u.list}}))}),e.addMatcher(pr(Ma.fulfilled,Kn.fulfilled),(r,t)=>{var l;const a=r.tabs.find(v.by("path",((l=t.payload)==null?void 0:l.path)||t.meta.arg.path));if(!a)return;const{panel:s}=a.view,i=v.getDatasourceId({id:t.meta.arg.id,namespace:t.meta.arg.namespace});if(s.type==="datasource"&&s.current===i)switch(t.type){case Ma.fulfilled.type:Object.assign(a.view.panel,{type:"component",current:DO});break;case Kn.fulfilled.type:const d=v.getDatasourceId({id:t.meta.arg.new_name,namespace:t.meta.arg.namespace});Object.assign(a.view.panel,{type:"datasource",current:d});break}})}}),{copyToClipBoard:zF,setTabs:KF,closeTab:Xs,setContent:cl,setTabFlags:Fv,setTabsFlags:JF,setTabExtra:XF,closeAllTabs:Iv,addDataSource:ZF,closeRightTabs:$v,closeOthers:Mv,closeLeftTabs:Lv,closeSavedTabs:QF,setDataSources:eI,removeDataSource:tI,confirmTab:rI,selectTab:Nv,selectTabByReference:Dt,openTabUnselected:kv,addWebFormStyles:nI,changeTabEditor:aI,openSettingsTab:oI,setWebformState:jv,setPanelState:sI,addWebformState:iI,editWebformState:cI,removeWebformState:uI,resetComponentState:lI,addDefaultWebformState:fI,removeDefaultWebformState:dI,setDefaultWebformStates:pI,setHistoryContent:Bv,unlockHistory:ul,undo:hI,redo:gI}=Ua.actions,Wv=Ua.reducer,vI=pv.reducer,Cn=Q("catalog/fetchCatalog",async(e,{rejectWithValue:r})=>{var t,a;try{const s=await v.getCatalog(),i=new Map,u=new Map,l=new Map;return(t=s.singletons)==null||t.forEach(({methods:d=[],...p})=>{const h={...p,methods:d};l.set(p.name,h)}),(a=s==null?void 0:s.dataClasses)==null||a.forEach(({methods:d=[],...p})=>{if(p.uuid||Object.assign(p,{uuid:v.generateUUID()}),p.attributes){const m=["storage","relatedEntity"];p.attributes=p.attributes.map(_=>(m.includes(_.kind)&&!_.uuid&&Object.assign(_,{uuid:v.generateUUID()}),_))}const h={...p,methods:d};u.set(p.className,h),i.set(p.collectionName,h)}),{__BASEID:s.__BASEID,__UNIQID:s.__UNIQID,dataClassByCollectionName:Object.fromEntries(i.entries()),methods:s.methods||[],dataClasses:Object.fromEntries(u.entries()),singletons:Object.fromEntries(l.entries())}}catch{return r("Error while loading the catalog")}}),mI=Yt({name:"catalog",initialState:{state:"loading"},reducers:{},extraReducers(e){e.addCase(Cn.pending,()=>({state:"loading"})).addCase(Cn.fulfilled,(r,{payload:t})=>({state:"loaded",model:t})).addCase(Cn.rejected,(r,t)=>({state:"error",error:t.payload||"Error while loading the catalog"}))}}),yI=mI.reducer,bI=Gg.reducer,os=Q("shared_datasources/fetchSharedSources",async(e,{rejectWithValue:r})=>{try{return await v.getSharedDatasources()}catch{return r("Error while loading the shared datasources")}}),Uv=Q("shared_datasources/addSharedSource",async(e,{rejectWithValue:r,getState:t})=>{try{const a=JSON.parse(JSON.stringify(t().sharedDatasources));if(e.namespace)a.sources[e.namespace]?a.sources[e.namespace].push(e):a.sources[e.namespace]=[e];else return r("Namespace is required");return await v.setSharedSources(a.sources),a.sources}catch{return r("Error while saving the shared datasources")}}),Hv=Q("shared_datasources/editSharedSource",async(e,{rejectWithValue:r,getState:t})=>{try{const a=t().sharedDatasources;if(!e.namespace)return r("Namespace is required");if(a.sources[e.namespace])a.sources[e.namespace]=a.sources[e.namespace].map(s=>s.id===e.id?{...e,id:s.id}:s);else return r("Namespace not found");return await v.setSharedSources(a.sources),a.sources}catch{return r("Error while saving the shared datasources")}}),Gv=Q("shared_datasources/deleteSharedSource",async(e,{rejectWithValue:r,getState:t})=>{try{const a={...t().sharedDatasources};if(a.sources[e.namespace]){const s=a.sources[e.namespace].filter(i=>i.id!==e.id);if(s.length===0){const{[e.namespace]:i,...u}=a.sources;a.sources=u}else a.sources={...a.sources,[e.namespace]:s}}return await v.setSharedSources(a.sources),a.sources}catch{return r("Error while saving the shared datasources")}}),ll=Q("shared_datasources/updateSharedDatasources",async(e,{rejectWithValue:r,getState:t})=>{try{const a={...t().sharedDatasources};for(const s of e){if(!s.namespace)return r("Namespace is required");if(a.sources[s.namespace])a.sources[s.namespace]=a.sources[s.namespace].map(i=>i.id===s.id?s:i);else return r("Namespace not found")}return await v.setSharedSources(a.sources),a.sources}catch{return r("Error while saving the shared datasources")}}),_I=Q("shared_datasources/setDatasourceEvents",async({tabPath:e,name:r,namespace:t,events:a},{getState:s,dispatch:i})=>{var S,T,w;const{root:{tabs:u},sharedDatasources:l}=s(),d=((w=(T=(S=u.find(({path:D})=>D===e))==null?void 0:S.content)==null?void 0:T.metadata)==null?void 0:w.datasources)||[],p={local:!1,shared:!1},h=(D,P)=>D.id===r&&(!t&&!D.namespace||D.namespace===t)?(P==null||P(),{...D,events:a}):D,m=d.map(D=>h(D,()=>{p.local=!0})),_=Ae.flatten(Ae.values(l.sources)).map(D=>h(D,()=>{p.shared=!0}));p.local&&i(cl({path:e,content:m,contentPath:"metadata.datasources"})),p.shared&&i(ll(_))}),qv=Yt({name:"shared-datasources",initialState:{},reducers:{addEmptyNamespace(e,r){e.sources[r.payload.name]=[]}},extraReducers(e){e.addCase(os.pending,r=>({state:"loading",sources:{}})).addCase(os.fulfilled,(r,t)=>({state:"loaded",sources:t.payload})).addCase(os.rejected,(r,t)=>({state:"error",sources:{},error:t.payload||"Error while loading the shared datasources"})).addCase(ll.fulfilled,(r,t)=>({state:"loaded",sources:t.payload})).addCase(nl.fulfilled,(r,t)=>{const{payload:a,meta:{arg:s}}=t;s.namespace&&Object.assign(r.sources,{[s.namespace]:a})}).addCase(Uv.fulfilled,(r,t)=>({...r,sources:t.payload})).addCase(Gv.fulfilled,(r,t)=>({...r,sources:t.payload})).addCase(Hv.fulfilled,(r,t)=>({...r,sources:t.payload})).addCase(rl.fulfilled,(r,t)=>{if(!t.payload)return r;const{datasources:a,namespace:s}=t.payload;s&&r.sources[s]&&Object.assign(r.sources[s],{[s]:a})}).addMatcher(pr(sl.fulfilled,Ma.fulfilled,il.fulfilled,Kn.fulfilled),(r,t)=>{if(!t.payload)return;const{namespace:a,list:s}=t.payload;a&&Object.assign(r.sources,{[a]:s})})}}),{addEmptyNamespace:SI}=qv.actions,EI=qv.reducer,TI=rv.reducer,ss=Q("shared_css/fetchSharedCSS",async(e,{rejectWithValue:r})=>{try{const{classes:t}=await v.getSharedCSS();return t}catch{return r("Error while loading the shared CSS")}}),wI=v.queue();async function CI(e){const r={verb:v.DesignerRequestVerb.SET_FILE_CONTENT,asText:!1,name:"shared_css.json",path:"",root:"shared",content:{classes:e.map(({scope:t,...a})=>({...a}))}};await wI(()=>v.http(v.API_PREFIX,{method:"POST",body:JSON.stringify(r),headers:new Headers({"Content-Type":"application/json"})}))}const Yv=Yt({name:"shared-css",initialState:()=>{const{sharedCSS:e}=Zn();return e||{state:"loading",styles:[]}},reducers:{updateSharedCss:(e,r)=>(e.styles=r.payload.classes,CI(r.payload.classes),e),initSharedCss:(e,r)=>(e.styles=r.payload.classes,e)},extraReducers(e){e.addCase(ss.pending,r=>({...r,state:"loading"})).addCase(ss.fulfilled,(r,{payload:t})=>({state:"loaded",styles:t})).addCase(ss.rejected,(r,t)=>({...r,state:"error",error:t.payload||"Error while loading the shared css"}))}}),{updateSharedCss:xI,initSharedCss:OI}=Yv.actions,RI=Yv.reducer,AI={},PI=Yt({name:"tabs",initialState:AI,reducers:{}}),DI=e=>B(aa,r=>{var t,a;return(a=(t=r.find(s=>s.path===e))==null?void 0:t.view)==null?void 0:a.panel});PI.reducer;const Vv=oh({root:Wv,explorer:TI,debugger:vI,settings:lD,catalog:yI,roles:sD,sharedDatasources:EI,savedConditions:VF,webforms:MF,modals:bI,sharedCSS:RI,model:AF});let Oa;const zv=()=>(Oa||(Oa=ew({reducer:Vv}),Oa.subscribe(p1(()=>{const{root:{activeTab:e,tabs:r,recent:t},roles:a,debugger:s,webforms:i,sharedCSS:u,settings:{session:l}}=Oa.getState();Ch({...l}),wh({tabs:r,activeTab:e,recent:t,roles:a,debugger:s,webforms:i,sharedCSS:u})},1e3))),Oa);var Eu={exports:{}},Gn={};/** @license React v17.0.2
146
+ `);a.path.startsWith("Classes/")&&(a.type=v.FileFolderType.CLASS),a.extra={...a.extra,editor:v.EDITOR.Code,initialLineInfo:{line:s.length-1,lastModification:Date.now()}}}),e.addCase(rl.fulfilled,(r,t)=>{var i,u;if(!((i=t.payload)!=null&&i.path)||(u=t.payload)!=null&&u.namespace)return;const a=t.payload.path,s=r.tabs.find(v.by("path",a));!s||!s.content||!s.content.metadata||(Object.assign(s.content.metadata,{datasources:t.payload.datasources}),s.flags.touched=!0,s.flags.confirmed=!0)}),e.addCase(nl.fulfilled,(r,t)=>{const{payload:a,meta:{arg:s}}=t;s.namespace||r.tabs.forEach(i=>{i.path===s.path&&Object.assign(i.content,{metadata:{...i.content.metadata,datasources:a}})})}),e.addCase(vv.fulfilled,(r,t)=>{const{staleThreadIds:a}=t.payload;if(a.length===0)return;const s=a.map(i=>`Debugger/${i}`);if(r.tabs=r.tabs.filter(i=>!s.includes(i.path)),r.recent=r.recent.filter(({path:i})=>!s.includes(i)),r.tabs.length){r.activeTab=r.tabs[r.tabs.length-1].path;return}r.activeTab=""}),e.addCase(el.pending,r=>Yc(r,!1)),e.addCase(Dv,(r,t)=>{const{id:a}=t.payload;r.tabs=r.tabs.map(s=>({...s,content:{...s.content,metadata:{...s.content.metadata,states:(s.content.metadata.states||[]).map(i=>{if(i.conditions){const u=Ks(i.conditions,a);return u?{...i,conditions:u}:Ae.omit(i,"conditions")}return i})}}}))}),e.addMatcher(pr(vu),(r,t)=>{["project"].includes(t.payload.path)&&Yc(r,!0)}),e.addMatcher(pr(Ys),r=>{Yc(r,!1)}),e.addMatcher(pr(Nv,Dt),(r,t)=>{const{payload:a}=t;let s;typeof a=="string"?s=r.tabs.find(({path:i})=>a===i):s=a,s&&(r.recent=[s,...r.recent.filter(({path:i})=>![s.path,"settings"].includes(i))])}),e.addMatcher(pr(Zg,Xg),r=>{r.tabs=r.tabs.map(t=>t.path===v.ROLES_TAB_PATH?{...t,flags:{...t.flags,confirmed:!0,touched:!0}}:t)}),e.addMatcher(pr(Qu),r=>{r.tabs=r.tabs.map(t=>t.path===v.ROLES_TAB_PATH?{...t,flags:{...t.flags,touched:!1}}:t)}),e.addMatcher(pr(sl.fulfilled,il.fulfilled,Ma.fulfilled,Kn.fulfilled),(r,t)=>{var s,i,u;const a=r.tabs.find(v.by("path",((s=t.payload)==null?void 0:s.path)||t.meta.arg.path));!a||(i=t.payload)!=null&&i.namespace||(a.flags.touched=!0,a.flags.confirmed=!0,Object.assign(a.content,{metadata:{...a.content.metadata,datasources:(u=t.payload)==null?void 0:u.list}}))}),e.addMatcher(pr(Ma.fulfilled,Kn.fulfilled),(r,t)=>{var l;const a=r.tabs.find(v.by("path",((l=t.payload)==null?void 0:l.path)||t.meta.arg.path));if(!a)return;const{panel:s}=a.view,i=v.getDatasourceId({id:t.meta.arg.id,namespace:t.meta.arg.namespace});if(s.type==="datasource"&&s.current===i)switch(t.type){case Ma.fulfilled.type:Object.assign(a.view.panel,{type:"component",current:DO});break;case Kn.fulfilled.type:const d=v.getDatasourceId({id:t.meta.arg.new_name,namespace:t.meta.arg.namespace});Object.assign(a.view.panel,{type:"datasource",current:d});break}})}}),{copyToClipBoard:KF,setTabs:JF,closeTab:Xs,setContent:cl,setTabFlags:Fv,setTabsFlags:XF,setTabExtra:ZF,closeAllTabs:Iv,addDataSource:QF,closeRightTabs:$v,closeOthers:Mv,closeLeftTabs:Lv,closeSavedTabs:eI,setDataSources:tI,removeDataSource:rI,confirmTab:nI,selectTab:Nv,selectTabByReference:Dt,openTabUnselected:kv,addWebFormStyles:aI,changeTabEditor:oI,openSettingsTab:sI,setWebformState:jv,setPanelState:iI,addWebformState:cI,editWebformState:uI,removeWebformState:lI,resetComponentState:fI,addDefaultWebformState:dI,removeDefaultWebformState:pI,setDefaultWebformStates:hI,setHistoryContent:Bv,unlockHistory:ul,undo:gI,redo:vI}=Ua.actions,Wv=Ua.reducer,mI=pv.reducer,Cn=Q("catalog/fetchCatalog",async(e,{rejectWithValue:r})=>{var t,a;try{const s=await v.getCatalog(),i=new Map,u=new Map,l=new Map;return(t=s.singletons)==null||t.forEach(({methods:d=[],...p})=>{const h={...p,methods:d};l.set(p.name,h)}),(a=s==null?void 0:s.dataClasses)==null||a.forEach(({methods:d=[],...p})=>{if(p.uuid||Object.assign(p,{uuid:v.generateUUID()}),p.attributes){const m=["storage","relatedEntity"];p.attributes=p.attributes.map(_=>(m.includes(_.kind)&&!_.uuid&&Object.assign(_,{uuid:v.generateUUID()}),_))}const h={...p,methods:d};u.set(p.className,h),i.set(p.collectionName,h)}),{__BASEID:s.__BASEID,__UNIQID:s.__UNIQID,dataClassByCollectionName:Object.fromEntries(i.entries()),methods:s.methods||[],dataClasses:Object.fromEntries(u.entries()),singletons:Object.fromEntries(l.entries())}}catch{return r("Error while loading the catalog")}}),yI=Yt({name:"catalog",initialState:{state:"loading"},reducers:{},extraReducers(e){e.addCase(Cn.pending,()=>({state:"loading"})).addCase(Cn.fulfilled,(r,{payload:t})=>({state:"loaded",model:t})).addCase(Cn.rejected,(r,t)=>({state:"error",error:t.payload||"Error while loading the catalog"}))}}),bI=yI.reducer,_I=Gg.reducer,os=Q("shared_datasources/fetchSharedSources",async(e,{rejectWithValue:r})=>{try{return await v.getSharedDatasources()}catch{return r("Error while loading the shared datasources")}}),Uv=Q("shared_datasources/addSharedSource",async(e,{rejectWithValue:r,getState:t})=>{try{const a=JSON.parse(JSON.stringify(t().sharedDatasources));if(e.namespace)a.sources[e.namespace]?a.sources[e.namespace].push(e):a.sources[e.namespace]=[e];else return r("Namespace is required");return await v.setSharedSources(a.sources),a.sources}catch{return r("Error while saving the shared datasources")}}),Hv=Q("shared_datasources/editSharedSource",async(e,{rejectWithValue:r,getState:t})=>{try{const a=t().sharedDatasources;if(!e.namespace)return r("Namespace is required");if(a.sources[e.namespace])a.sources[e.namespace]=a.sources[e.namespace].map(s=>s.id===e.id?{...e,id:s.id}:s);else return r("Namespace not found");return await v.setSharedSources(a.sources),a.sources}catch{return r("Error while saving the shared datasources")}}),Gv=Q("shared_datasources/deleteSharedSource",async(e,{rejectWithValue:r,getState:t})=>{try{const a={...t().sharedDatasources};if(a.sources[e.namespace]){const s=a.sources[e.namespace].filter(i=>i.id!==e.id);if(s.length===0){const{[e.namespace]:i,...u}=a.sources;a.sources=u}else a.sources={...a.sources,[e.namespace]:s}}return await v.setSharedSources(a.sources),a.sources}catch{return r("Error while saving the shared datasources")}}),ll=Q("shared_datasources/updateSharedDatasources",async(e,{rejectWithValue:r,getState:t})=>{try{const a={...t().sharedDatasources};for(const s of e){if(!s.namespace)return r("Namespace is required");if(a.sources[s.namespace])a.sources[s.namespace]=a.sources[s.namespace].map(i=>i.id===s.id?s:i);else return r("Namespace not found")}return await v.setSharedSources(a.sources),a.sources}catch{return r("Error while saving the shared datasources")}}),SI=Q("shared_datasources/setDatasourceEvents",async({tabPath:e,name:r,namespace:t,events:a},{getState:s,dispatch:i})=>{var S,T,w;const{root:{tabs:u},sharedDatasources:l}=s(),d=((w=(T=(S=u.find(({path:D})=>D===e))==null?void 0:S.content)==null?void 0:T.metadata)==null?void 0:w.datasources)||[],p={local:!1,shared:!1},h=(D,P)=>D.id===r&&(!t&&!D.namespace||D.namespace===t)?(P==null||P(),{...D,events:a}):D,m=d.map(D=>h(D,()=>{p.local=!0})),_=Ae.flatten(Ae.values(l.sources)).map(D=>h(D,()=>{p.shared=!0}));p.local&&i(cl({path:e,content:m,contentPath:"metadata.datasources"})),p.shared&&i(ll(_))}),qv=Yt({name:"shared-datasources",initialState:{},reducers:{addEmptyNamespace(e,r){e.sources[r.payload.name]=[]}},extraReducers(e){e.addCase(os.pending,r=>({state:"loading",sources:{}})).addCase(os.fulfilled,(r,t)=>({state:"loaded",sources:t.payload})).addCase(os.rejected,(r,t)=>({state:"error",sources:{},error:t.payload||"Error while loading the shared datasources"})).addCase(ll.fulfilled,(r,t)=>({state:"loaded",sources:t.payload})).addCase(nl.fulfilled,(r,t)=>{const{payload:a,meta:{arg:s}}=t;s.namespace&&Object.assign(r.sources,{[s.namespace]:a})}).addCase(Uv.fulfilled,(r,t)=>({...r,sources:t.payload})).addCase(Gv.fulfilled,(r,t)=>({...r,sources:t.payload})).addCase(Hv.fulfilled,(r,t)=>({...r,sources:t.payload})).addCase(rl.fulfilled,(r,t)=>{if(!t.payload)return r;const{datasources:a,namespace:s}=t.payload;s&&r.sources[s]&&Object.assign(r.sources[s],{[s]:a})}).addMatcher(pr(sl.fulfilled,Ma.fulfilled,il.fulfilled,Kn.fulfilled),(r,t)=>{if(!t.payload)return;const{namespace:a,list:s}=t.payload;a&&Object.assign(r.sources,{[a]:s})})}}),{addEmptyNamespace:EI}=qv.actions,TI=qv.reducer,wI=rv.reducer,ss=Q("shared_css/fetchSharedCSS",async(e,{rejectWithValue:r})=>{try{const{classes:t}=await v.getSharedCSS();return t}catch{return r("Error while loading the shared CSS")}}),CI=v.queue();async function xI(e){const r={verb:v.DesignerRequestVerb.SET_FILE_CONTENT,asText:!1,name:"shared_css.json",path:"",root:"shared",content:{classes:e.map(({scope:t,...a})=>({...a}))}};await CI(()=>v.http(v.API_PREFIX,{method:"POST",body:JSON.stringify(r),headers:new Headers({"Content-Type":"application/json"})}))}const Yv=Yt({name:"shared-css",initialState:()=>{const{sharedCSS:e}=Zn();return e||{state:"loading",styles:[]}},reducers:{updateSharedCss:(e,r)=>(e.styles=r.payload.classes,xI(r.payload.classes),e),initSharedCss:(e,r)=>(e.styles=r.payload.classes,e)},extraReducers(e){e.addCase(ss.pending,r=>({...r,state:"loading"})).addCase(ss.fulfilled,(r,{payload:t})=>({state:"loaded",styles:t})).addCase(ss.rejected,(r,t)=>({...r,state:"error",error:t.payload||"Error while loading the shared css"}))}}),{updateSharedCss:OI,initSharedCss:RI}=Yv.actions,AI=Yv.reducer,PI={},DI=Yt({name:"tabs",initialState:PI,reducers:{}}),FI=e=>B(aa,r=>{var t,a;return(a=(t=r.find(s=>s.path===e))==null?void 0:t.view)==null?void 0:a.panel});DI.reducer;const Vv=oh({root:Wv,explorer:wI,debugger:mI,settings:fD,catalog:bI,roles:iD,sharedDatasources:TI,savedConditions:zF,webforms:LF,modals:_I,sharedCSS:AI,model:PF});let Oa;const zv=()=>(Oa||(Oa=ew({reducer:Vv}),Oa.subscribe(p1(()=>{const{root:{activeTab:e,tabs:r,recent:t},roles:a,debugger:s,webforms:i,sharedCSS:u,settings:{session:l}}=Oa.getState();Ch({...l}),wh({tabs:r,activeTab:e,recent:t,roles:a,debugger:s,webforms:i,sharedCSS:u})},1e3))),Oa);var Eu={exports:{}},Gn={};/** @license React v17.0.2
147
147
  * react-jsx-runtime.production.min.js
148
148
  *
149
149
  * Copyright (c) Facebook, Inc. and its affiliates.
150
150
  *
151
151
  * This source code is licensed under the MIT license found in the
152
152
  * LICENSE file in the root directory of this source tree.
153
- */var Zp;function FI(){if(Zp)return Gn;Zp=1,Bu();var e=pt,r=60103;if(Gn.Fragment=60107,typeof Symbol=="function"&&Symbol.for){var t=Symbol.for;r=t("react.element"),Gn.Fragment=t("react.fragment")}var a=e.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,s=Object.prototype.hasOwnProperty,i={key:!0,ref:!0,__self:!0,__source:!0};function u(l,d,p){var h,m={},_=null,S=null;p!==void 0&&(_=""+p),d.key!==void 0&&(_=""+d.key),d.ref!==void 0&&(S=d.ref);for(h in d)s.call(d,h)&&!i.hasOwnProperty(h)&&(m[h]=d[h]);if(l&&l.defaultProps)for(h in d=l.defaultProps,d)m[h]===void 0&&(m[h]=d[h]);return{$$typeof:r,type:l,key:_,ref:S,props:m,_owner:a.current}}return Gn.jsx=u,Gn.jsxs=u,Gn}var Vc={};/** @license React v17.0.2
153
+ */var Zp;function II(){if(Zp)return Gn;Zp=1,Bu();var e=pt,r=60103;if(Gn.Fragment=60107,typeof Symbol=="function"&&Symbol.for){var t=Symbol.for;r=t("react.element"),Gn.Fragment=t("react.fragment")}var a=e.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,s=Object.prototype.hasOwnProperty,i={key:!0,ref:!0,__self:!0,__source:!0};function u(l,d,p){var h,m={},_=null,S=null;p!==void 0&&(_=""+p),d.key!==void 0&&(_=""+d.key),d.ref!==void 0&&(S=d.ref);for(h in d)s.call(d,h)&&!i.hasOwnProperty(h)&&(m[h]=d[h]);if(l&&l.defaultProps)for(h in d=l.defaultProps,d)m[h]===void 0&&(m[h]=d[h]);return{$$typeof:r,type:l,key:_,ref:S,props:m,_owner:a.current}}return Gn.jsx=u,Gn.jsxs=u,Gn}var Vc={};/** @license React v17.0.2
154
154
  * react-jsx-runtime.development.js
155
155
  *
156
156
  * Copyright (c) Facebook, Inc. and its affiliates.
157
157
  *
158
158
  * This source code is licensed under the MIT license found in the
159
159
  * LICENSE file in the root directory of this source tree.
160
- */var Qp;function II(){return Qp||(Qp=1,function(e){process.env.NODE_ENV!=="production"&&function(){var r=pt,t=Bu(),a=60103,s=60106;e.Fragment=60107;var i=60108,u=60114,l=60109,d=60110,p=60112,h=60113,m=60120,_=60115,S=60116,T=60121,w=60122,D=60117,P=60129,F=60131;if(typeof Symbol=="function"&&Symbol.for){var $=Symbol.for;a=$("react.element"),s=$("react.portal"),e.Fragment=$("react.fragment"),i=$("react.strict_mode"),u=$("react.profiler"),l=$("react.provider"),d=$("react.context"),p=$("react.forward_ref"),h=$("react.suspense"),m=$("react.suspense_list"),_=$("react.memo"),S=$("react.lazy"),T=$("react.block"),w=$("react.server.block"),D=$("react.fundamental"),$("react.scope"),$("react.opaque.id"),P=$("react.debug_trace_mode"),$("react.offscreen"),F=$("react.legacy_hidden")}var L=typeof Symbol=="function"&&Symbol.iterator,O="@@iterator";function Y(C){if(C===null||typeof C!="object")return null;var G=L&&C[L]||C[O];return typeof G=="function"?G:null}var U=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function q(C){{for(var G=arguments.length,X=new Array(G>1?G-1:0),ie=1;ie<G;ie++)X[ie-1]=arguments[ie];te("error",C,X)}}function te(C,G,X){{var ie=U.ReactDebugCurrentFrame,ke=ie.getStackAddendum();ke!==""&&(G+="%s",X=X.concat([ke]));var je=X.map(function(Oe){return""+Oe});je.unshift("Warning: "+G),Function.prototype.apply.call(console[C],console,je)}}var Fe=!1;function Se(C){return!!(typeof C=="string"||typeof C=="function"||C===e.Fragment||C===u||C===P||C===i||C===h||C===m||C===F||Fe||typeof C=="object"&&C!==null&&(C.$$typeof===S||C.$$typeof===_||C.$$typeof===l||C.$$typeof===d||C.$$typeof===p||C.$$typeof===D||C.$$typeof===T||C[0]===w))}function Qe(C,G,X){var ie=G.displayName||G.name||"";return C.displayName||(ie!==""?X+"("+ie+")":X)}function K(C){return C.displayName||"Context"}function Ee(C){if(C==null)return null;if(typeof C.tag=="number"&&q("Received an unexpected object in getComponentName(). This is likely a bug in React. Please file an issue."),typeof C=="function")return C.displayName||C.name||null;if(typeof C=="string")return C;switch(C){case e.Fragment:return"Fragment";case s:return"Portal";case u:return"Profiler";case i:return"StrictMode";case h:return"Suspense";case m:return"SuspenseList"}if(typeof C=="object")switch(C.$$typeof){case d:var G=C;return K(G)+".Consumer";case l:var X=C;return K(X._context)+".Provider";case p:return Qe(C,C.render,"ForwardRef");case _:return Ee(C.type);case T:return Ee(C._render);case S:{var ie=C,ke=ie._payload,je=ie._init;try{return Ee(je(ke))}catch{return null}}}return null}var it=0,et,Ge,nt,Vt,H,V,de;function le(){}le.__reactDisabledLog=!0;function se(){{if(it===0){et=console.log,Ge=console.info,nt=console.warn,Vt=console.error,H=console.group,V=console.groupCollapsed,de=console.groupEnd;var C={configurable:!0,enumerable:!0,value:le,writable:!0};Object.defineProperties(console,{info:C,log:C,warn:C,error:C,group:C,groupCollapsed:C,groupEnd:C})}it++}}function fe(){{if(it--,it===0){var C={configurable:!0,enumerable:!0,writable:!0};Object.defineProperties(console,{log:t({},C,{value:et}),info:t({},C,{value:Ge}),warn:t({},C,{value:nt}),error:t({},C,{value:Vt}),group:t({},C,{value:H}),groupCollapsed:t({},C,{value:V}),groupEnd:t({},C,{value:de})})}it<0&&q("disabledDepth fell below zero. This is a bug in React. Please file an issue.")}}var ne=U.ReactCurrentDispatcher,ue;function ce(C,G,X){{if(ue===void 0)try{throw Error()}catch(ke){var ie=ke.stack.trim().match(/\n( *(at )?)/);ue=ie&&ie[1]||""}return`
160
+ */var Qp;function $I(){return Qp||(Qp=1,function(e){process.env.NODE_ENV!=="production"&&function(){var r=pt,t=Bu(),a=60103,s=60106;e.Fragment=60107;var i=60108,u=60114,l=60109,d=60110,p=60112,h=60113,m=60120,_=60115,S=60116,T=60121,w=60122,D=60117,P=60129,F=60131;if(typeof Symbol=="function"&&Symbol.for){var $=Symbol.for;a=$("react.element"),s=$("react.portal"),e.Fragment=$("react.fragment"),i=$("react.strict_mode"),u=$("react.profiler"),l=$("react.provider"),d=$("react.context"),p=$("react.forward_ref"),h=$("react.suspense"),m=$("react.suspense_list"),_=$("react.memo"),S=$("react.lazy"),T=$("react.block"),w=$("react.server.block"),D=$("react.fundamental"),$("react.scope"),$("react.opaque.id"),P=$("react.debug_trace_mode"),$("react.offscreen"),F=$("react.legacy_hidden")}var L=typeof Symbol=="function"&&Symbol.iterator,O="@@iterator";function Y(C){if(C===null||typeof C!="object")return null;var G=L&&C[L]||C[O];return typeof G=="function"?G:null}var U=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function q(C){{for(var G=arguments.length,X=new Array(G>1?G-1:0),ie=1;ie<G;ie++)X[ie-1]=arguments[ie];te("error",C,X)}}function te(C,G,X){{var ie=U.ReactDebugCurrentFrame,ke=ie.getStackAddendum();ke!==""&&(G+="%s",X=X.concat([ke]));var je=X.map(function(Oe){return""+Oe});je.unshift("Warning: "+G),Function.prototype.apply.call(console[C],console,je)}}var Fe=!1;function Se(C){return!!(typeof C=="string"||typeof C=="function"||C===e.Fragment||C===u||C===P||C===i||C===h||C===m||C===F||Fe||typeof C=="object"&&C!==null&&(C.$$typeof===S||C.$$typeof===_||C.$$typeof===l||C.$$typeof===d||C.$$typeof===p||C.$$typeof===D||C.$$typeof===T||C[0]===w))}function Qe(C,G,X){var ie=G.displayName||G.name||"";return C.displayName||(ie!==""?X+"("+ie+")":X)}function K(C){return C.displayName||"Context"}function Ee(C){if(C==null)return null;if(typeof C.tag=="number"&&q("Received an unexpected object in getComponentName(). This is likely a bug in React. Please file an issue."),typeof C=="function")return C.displayName||C.name||null;if(typeof C=="string")return C;switch(C){case e.Fragment:return"Fragment";case s:return"Portal";case u:return"Profiler";case i:return"StrictMode";case h:return"Suspense";case m:return"SuspenseList"}if(typeof C=="object")switch(C.$$typeof){case d:var G=C;return K(G)+".Consumer";case l:var X=C;return K(X._context)+".Provider";case p:return Qe(C,C.render,"ForwardRef");case _:return Ee(C.type);case T:return Ee(C._render);case S:{var ie=C,ke=ie._payload,je=ie._init;try{return Ee(je(ke))}catch{return null}}}return null}var it=0,et,Ge,nt,Vt,H,V,de;function le(){}le.__reactDisabledLog=!0;function se(){{if(it===0){et=console.log,Ge=console.info,nt=console.warn,Vt=console.error,H=console.group,V=console.groupCollapsed,de=console.groupEnd;var C={configurable:!0,enumerable:!0,value:le,writable:!0};Object.defineProperties(console,{info:C,log:C,warn:C,error:C,group:C,groupCollapsed:C,groupEnd:C})}it++}}function fe(){{if(it--,it===0){var C={configurable:!0,enumerable:!0,writable:!0};Object.defineProperties(console,{log:t({},C,{value:et}),info:t({},C,{value:Ge}),warn:t({},C,{value:nt}),error:t({},C,{value:Vt}),group:t({},C,{value:H}),groupCollapsed:t({},C,{value:V}),groupEnd:t({},C,{value:de})})}it<0&&q("disabledDepth fell below zero. This is a bug in React. Please file an issue.")}}var ne=U.ReactCurrentDispatcher,ue;function ce(C,G,X){{if(ue===void 0)try{throw Error()}catch(ke){var ie=ke.stack.trim().match(/\n( *(at )?)/);ue=ie&&ie[1]||""}return`
161
161
  `+ue+C}}var he=!1,ge;{var J=typeof WeakMap=="function"?WeakMap:Map;ge=new J}function M(C,G){if(!C||he)return"";{var X=ge.get(C);if(X!==void 0)return X}var ie;he=!0;var ke=Error.prepareStackTrace;Error.prepareStackTrace=void 0;var je;je=ne.current,ne.current=null,se();try{if(G){var Oe=function(){throw Error()};if(Object.defineProperty(Oe.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(Oe,[])}catch(ir){ie=ir}Reflect.construct(C,[],Oe)}else{try{Oe.call()}catch(ir){ie=ir}C.call(Oe.prototype)}}else{try{throw Error()}catch(ir){ie=ir}C()}}catch(ir){if(ir&&ie&&typeof ir.stack=="string"){for(var we=ir.stack.split(`
162
162
  `),ht=ie.stack.split(`
163
163
  `),Xe=we.length-1,tt=ht.length-1;Xe>=1&&tt>=0&&we[Xe]!==ht[tt];)tt--;for(;Xe>=1&&tt>=0;Xe--,tt--)if(we[Xe]!==ht[tt]){if(Xe!==1||tt!==1)do if(Xe--,tt--,tt<0||we[Xe]!==ht[tt]){var Kt=`
@@ -167,5 +167,5 @@ Check the render method of \``+C+"`."}return""}}function ei(C){{if(C!==void 0){v
167
167
 
168
168
  Check your code at `+G+":"+X+"."}return""}}var Ja={};function Xa(C){{var G=Ka();if(!G){var X=typeof C=="string"?C:C.displayName||C.name;X&&(G=`
169
169
 
170
- Check the top-level render call using <`+X+">.")}return G}}function la(C,G){{if(!C._store||C._store.validated||C.key!=null)return;C._store.validated=!0;var X=Xa(G);if(Ja[X])return;Ja[X]=!0;var ie="";C&&C._owner&&C._owner!==un.current&&(ie=" It was passed a child from "+Ee(C._owner.type)+"."),gr(C),q('Each child in a list should have a unique "key" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',X,ie),gr(null)}}function Za(C,G){{if(typeof C!="object")return;if(Array.isArray(C))for(var X=0;X<C.length;X++){var ie=C[X];fn(ie)&&la(ie,G)}else if(fn(C))C._store&&(C._store.validated=!0);else if(C){var ke=Y(C);if(typeof ke=="function"&&ke!==C.entries)for(var je=ke.call(C),Oe;!(Oe=je.next()).done;)fn(Oe.value)&&la(Oe.value,G)}}}function ti(C){{var G=C.type;if(G==null||typeof G=="string")return;var X;if(typeof G=="function")X=G.propTypes;else if(typeof G=="object"&&(G.$$typeof===p||G.$$typeof===_))X=G.propTypes;else return;if(X){var ie=Ee(G);Zs(X,C.props,"prop",ie,C)}else if(G.PropTypes!==void 0&&!ln){ln=!0;var ke=Ee(G);q("Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?",ke||"Unknown")}typeof G.getDefaultProps=="function"&&!G.getDefaultProps.isReactClassApproved&&q("getDefaultProps is only used on classic React.createClass definitions. Use a static property named `defaultProps` instead.")}}function ri(C){{for(var G=Object.keys(C.props),X=0;X<G.length;X++){var ie=G[X];if(ie!=="children"&&ie!=="key"){gr(C),q("Invalid prop `%s` supplied to `React.Fragment`. React.Fragment can only have `key` and `children` props.",ie),gr(null);break}}C.ref!==null&&(gr(C),q("Invalid attribute `ref` supplied to `React.Fragment`."),gr(null))}}function Qa(C,G,X,ie,ke,je){{var Oe=Se(C);if(!Oe){var we="";(C===void 0||typeof C=="object"&&C!==null&&Object.keys(C).length===0)&&(we+=" You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.");var ht=ei(ke);ht?we+=ht:we+=Ka();var Xe;C===null?Xe="null":Array.isArray(C)?Xe="array":C!==void 0&&C.$$typeof===a?(Xe="<"+(Ee(C.type)||"Unknown")+" />",we=" Did you accidentally export a JSX literal instead of a component?"):Xe=typeof C,q("React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s",Xe,we)}var tt=ua(C,G,X,ke,je);if(tt==null)return tt;if(Oe){var Kt=G.children;if(Kt!==void 0)if(ie)if(Array.isArray(Kt)){for(var Wr=0;Wr<Kt.length;Wr++)Za(Kt[Wr],C);Object.freeze&&Object.freeze(Kt)}else q("React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.");else Za(Kt,C)}return C===e.Fragment?ri(tt):ti(tt),tt}}function eo(C,G,X){return Qa(C,G,X,!0)}function ni(C,G,X){return Qa(C,G,X,!1)}var ai=ni,oi=eo;e.jsx=ai,e.jsxs=oi}()}(Vc)),Vc}process.env.NODE_ENV==="production"?Eu.exports=FI():Eu.exports=II();var $I=Eu.exports;const MI=({children:e,store:r})=>$I.jsx(cg,{store:r,children:e});exports.CATALOG_REFRESH_DELAY=As;exports.DEFAULT_CACHE=$u;exports.EAttributeKind=zs;exports.EAttributeTypes=yv;exports.EDebuggerErrorReason=_h;exports.EDebuggerErrorType=ps;exports.EDebuggerState=Zr;exports.EDisplayMode=Vu;exports.EPermissionType=Te;exports.ETooltipBehavior=qu;exports.EUnsavedPopOverChoice=Yu;exports.ExpressionIndex=bh;exports.FLAGS_INIT_STATE=Ev;exports.FLAGS_KEYS=Wa;exports.ROOT_WEBFORM_STATE=Xn;exports.ReduxProvider=MI;exports.THEME_CLASSES=xg;exports.WT_FLAGS_KEYS=Sv;exports.actionsToPrivs=jg;exports.addBreakpointDecoration=BD;exports.addClassesFolder=yD;exports.addComponent=wv;exports.addCraftedComponent=kF;exports.addDataSource=ZF;exports.addDatasource=sl;exports.addDefaultWebformState=fI;exports.addEmptyNamespace=SI;exports.addExpression=VD;exports.addIn=jP;exports.addNewFile=nv;exports.addPermission=qP;exports.addSavedCondition=qF;exports.addSession=eF;exports.addSharedSource=Uv;exports.addWebFormStyles=nI;exports.addWebformState=iI;exports.allowed=NP;exports.attributeKinds=pF;exports.attributeScopes=mF;exports.attributeTypes=gF;exports.castToFileFolder=SD;exports.changeTabEditor=aI;exports.children=Ss;exports.clearAllBreakpoints=qD;exports.clearBreakpoints=HD;exports.clearBreakpointsExcept=GD;exports.closeAllTabs=Iv;exports.closeLeftTabs=Lv;exports.closeModal=rD;exports.closeOthers=Mv;exports.closeRightTabs=$v;exports.closeSavedTabs=QF;exports.closeTab=Xs;exports.confirmTab=rI;exports.copyToClipBoard=zF;exports.create=kg;exports.createClassesFolderContent=ou;exports.createModal=qg;exports.createModelFiles=bu;exports.createNewFile=Yn;exports.createNewFileAndOpen=xD;exports.createNewNode=ts;exports.createRole=QP;exports.createWithResource=WP;exports.dataclassScopes=vF;exports.deepDeleteCondition=Ks;exports.deepSanitizeCondition=Js;exports.deleteDatasource=Ma;exports.deleteFile=_u;exports.deleteFolder=OD;exports.deleteSharedSource=Gv;exports.deserializeModel=xh;exports.duplicateNode=rs;exports.editComponent=Cv;exports.editCraftedComponent=jF;exports.editDataSource=nl;exports.editDatasource=il;exports.editModal=nD;exports.editRole=ZP;exports.editSharedSource=Hv;exports.editWebformState=cI;exports.editors=Vh;exports.executeMethod=RD;exports.expandFolder=hD;exports.extensions=zh;exports.fetchAppSettings=Qg;exports.fetchCatalog=Cn;exports.fetchChanges=lv;exports.fetchCraftedComponents=Av;exports.fetchFiles=PD;exports.fetchFolderContent=rn;exports.fetchFolderContentWithoutExpanding=Fa;exports.fetchModel=Ts;exports.fetchRoles=Es;exports.fetchRolesChanges=Kg;exports.fetchSavedConditions=as;exports.fetchSettings=el;exports.fetchSharedCss=ss;exports.fetchSharedDatasources=os;exports.fetchTemplate=NF;exports.fetchTemplates=LF;exports.findNodeByPath=lt;exports.findOne=wn;exports.findSession=st;exports.findSessionByPath=bg;exports.getCachedState=Zn;exports.getCashedPrefrences=Mu;exports.getContent=En;exports.getDebuggerTabName=$h;exports.getDebuggerTabPath=Nu;exports.getDefaultContent=av;exports.getDefaultName=_F;exports.getDictByName=Wg;exports.getEditors=xt;exports.getExtension=ju;exports.getFileNameWithoutExtension=Jh;exports.getFilePath=iv;exports.getFileType=sv;exports.getFilenameFromType=ov;exports.getGraphData=GP;exports.getInheritedResources=Hg;exports.getModalTitle=Ps;exports.getNodeRelativePath=Kh;exports.getPrivilegeById=jr;exports.getPromotions=KP;exports.getResourceFromType=Ju;exports.getStore=zv;exports.indexTypes=yF;exports.initSavedConditions=YF;exports.initSharedCss=OI;exports.injectContentAtLine=cv;exports.inspect=DF;exports.isJSON=Oh;exports.isRelatedAttr=SF;exports.isRelatedEntitiesAttr=_v;exports.isRelatedEntityAttr=bv;exports.isRenameDatasource=WF;exports.isRolesOutdated=Xu;exports.isValidPrimaryKey=dF;exports.modelSubject=ng;exports.noBaseState=Pg;exports.openAddFileInput=gD;exports.openFile=Ia;exports.openFileAtLine=tl;exports.openFileAtSelection=uv;exports.openModal=or;exports.openModel=cF;exports.openRoles=jD;exports.openSettingsTab=oI;exports.openTabUnselected=kv;exports.parents=Hs;exports.populateShallow=HP;exports.primaryKeyAttributes=hF;exports.redo=gI;exports.refactorWebform=Ah;exports.refreshFile=vD;exports.reloadTab=ns;exports.relocateNode=$a;exports.remove=kP;exports.removeAllExpressions=JD;exports.removeBreakpointDecoration=WD;exports.removeClassesFolder=bD;exports.removeComponent=xv;exports.removeCraftedComponent=BF;exports.removeDataSource=tI;exports.removeDebuggerSessionsNotIn=vv;exports.removeDefaultWebformState=dI;exports.removeExpression=KD;exports.removeFile=yu;exports.removeFileNode=Su;exports.removeFrom=BP;exports.removeModal=Yg;exports.removePermission=YP;exports.removeRole=XP;exports.removeSavedCondition=Dv;exports.removeSession=rF;exports.removeSessionByIndex=nF;exports.removeWebformState=uI;exports.rename=UP;exports.renameClassesFolder=_D;exports.renameDataSource=rl;exports.renameDatasource=Kn;exports.renameExpression=zD;exports.renameFile=Vn;exports.resetComponentState=lI;exports.resetResources=VP;exports.rootReducer=Wv;exports.sanitize=Gs;exports.sanitizePermissions=Bg;exports.sanitizePrivileges=Lg;exports.saveAll=DD;exports.saveExpressions=QD;exports.saveModel=ws;exports.savePrefrences=Ch;exports.saveRole=eD;exports.saveRoles=gu;exports.saveState=wh;exports.saveTab=zn;exports.selectActiveLine=QR;exports.selectActiveTab=dA;exports.selectActiveTabHistoryActions=zA;exports.selectAllDatasourcesByPath=qR;exports.selectAppState=vg;exports.selectBreakpoints=zR;exports.selectCSSClassesByPath=GA;exports.selectCallChainVariables=cA;exports.selectCatalog=ks;exports.selectCatalogMethods=jR;exports.selectCatalogState=LR;exports.selectClassBreakpoints=JR;exports.selectClassOffset=lA;exports.selectClasses=wA;exports.selectClassesFolder=wg;exports.selectClipBoard=tP;exports.selectComponents=Rg;exports.selectComponentsByPath=HR;exports.selectContentByPath=Sg;exports.selectCraftedComponent=ZA;exports.selectCurrentFrameByThreadId=oA;exports.selectCurrentTab=_g;exports.selectCurrentWebformStateByPath=oP;exports.selectDataclasses=hg;exports.selectDatasource=GR;exports.selectDatasourcesByPath=mg;exports.selectDatasourcesTheme=eP;exports.selectDebuggerChannels=sA;exports.selectDebuggerData=xn;exports.selectDebuggerMeta=YR;exports.selectDebuggerSessions=Ft;exports.selectDebuggerSessionsCount=VR;exports.selectDebuggers=_A;exports.selectDefaultWebformStatesByPath=aP;exports.selectDraftBreakpoints=KR;exports.selectDraftClassBreakpoints=XR;exports.selectExceptions=fA;exports.selectExplorer=SA;exports.selectExpressions=eA;exports.selectExpressionsVariables=uA;exports.selectFeatureFlag=LA;exports.selectFlagsByPath=YA;exports.selectForceLogin=FA;exports.selectGuestPrivilege=AA;exports.selectHasTabs=vA;exports.selectHighlightedLines=ZR;exports.selectHistoryByPath=VA;exports.selectI18nCurrent=UA;exports.selectI18nSetting=WA;exports.selectInspectedCSSClass=KA;exports.selectInspectedDatasource=JA;exports.selectInspector=js;exports.selectInspectorStateByType=QA;exports.selectIsLoaded=rP;exports.selectMethods=EA;exports.selectMethodsFolder=Tg;exports.selectModals=CA;exports.selectMonacoZoom=BA;exports.selectPanelByPath=DI;exports.selectPartialSessionSettings=$A;exports.selectPreferences=NA;exports.selectPreviewedWebformsPaths=gA;exports.selectPrivileges=RA;exports.selectProjectSettings=Cg;exports.selectQodly=jA;exports.selectRecentFiles=pA;exports.selectRemoteDebuggerMode=kA;exports.selectRoles=OA;exports.selectRolesAndPrivileges=xA;exports.selectRolesDate=IA;exports.selectRolesFlags=PA;exports.selectRoot=Nr;exports.selectSavedConditions=sP;exports.selectSelectedTab=DA;exports.selectServerSettings=Hu;exports.selectSessionSetting=MA;exports.selectSessionSettings=oa;exports.selectSharedCSS=qA;exports.selectSharedDatasources=yg;exports.selectSingletons=NR;exports.selectSourceByPath=rA;exports.selectSourceByThreadId=aA;exports.selectStackFrames=iA;exports.selectStoppedFromDebugSession=tA;exports.selectStylesByPath=HA;exports.selectTab=Nv;exports.selectTabByPath=kr;exports.selectTabByReference=Dt;exports.selectTabExtraByPath=mA;exports.selectTabMaxWeight=hA;exports.selectTabs=aa;exports.selectTemplates=Ag;exports.selectTemplatesData=XA;exports.selectThreadIdByPath=nA;exports.selectTouchedTabs=Uu;exports.selectTouchedTabsLength=bA;exports.selectVirtualDataClasses=kR;exports.selectWebForms=TA;exports.selectWebFormsFolder=Eg;exports.selectWebformNodes=yA;exports.selectWebformStatesByPath=Dg;exports.selectWebformStatesLabelsByPath=nP;exports.selectWebformStylesByPath=Gu;exports.selectWebforms=qa;exports.selectorEqualityFn=g1;exports.serializeModel=bF;exports.setActiveLine=YD;exports.setBreakpointsDecoration=UD;exports.setCallChainVariables=aF;exports.setContent=cl;exports.setCurrentWebformState=kD;exports.setDataSources=eI;exports.setDatasourceEvents=_I;exports.setDatasourcesTheme=IF;exports.setDebuggerMeta=iF;exports.setDefaultWebformStates=pI;exports.setExpression=XD;exports.setExpressionVariables=oF;exports.setFolderChildren=mD;exports.setHistoryContent=Bv;exports.setModelFlag=fF;exports.setPanelState=sI;exports.setRolesContent=Zu;exports.setSavedCondition=GF;exports.setSelectedGroup=FF;exports.setSessions=hv;exports.setSetting=vu;exports.setSettings=Ys;exports.setSettingsAsText=uD;exports.setSourceContent=sF;exports.setTabContent=ND;exports.setTabExtra=XF;exports.setTabFlags=Fv;exports.setTabs=KF;exports.setTabsFlags=JF;exports.setTemplateData=Rv;exports.setTemplatesData=Ov;exports.setWebformState=jv;exports.setWebformsFlag=$F;exports.sort=Ng;exports.stateReducer=Vv;exports.stateSlice=Ua;exports.toAPI=qs;exports.toState=JP;exports.toggleExpandFolder=pD;exports.toggleForceLogin=oD;exports.toggleInspector=PF;exports.togglePermission=zP;exports.togglePrivilegePermission=Ug;exports.toggleTab=aD;exports.tryCloseAllTabs=ID;exports.tryCloseLeftTabs=MD;exports.tryCloseOtherTabs=FD;exports.tryCloseRightTabs=$D;exports.tryCloseTab=al;exports.tryEditMethod=ED;exports.tryInjectMethod=dv;exports.tryRenameDataclass=uF;exports.undo=hI;exports.uniquePush=ar;exports.unlockHistory=ul;exports.updateExpressionAt=ZD;exports.updatePrivileges=Xg;exports.updateRoles=Zg;exports.updateRolesAndPrivileges=Qu;exports.updateSavedConditions=HF;exports.updateSession=tF;exports.updateSharedCss=xI;exports.updateSharedDatasources=ll;exports.uploadFile=CD;exports.uploadFileAndGetResponse=wD;exports.useAppDispatch=MR;exports.useAppSelector=Sr;exports.useAttribute=xF;exports.useCollections=wF;exports.useDataclass=CF;exports.useDataclasses=TF;exports.useMethod=UR;exports.useMethods=BR;exports.useModelFlags=RF;exports.useModelProperties=OF;exports.useModelSelector=EF;exports.wipeDebuggerSessions=gv;
170
+ Check the top-level render call using <`+X+">.")}return G}}function la(C,G){{if(!C._store||C._store.validated||C.key!=null)return;C._store.validated=!0;var X=Xa(G);if(Ja[X])return;Ja[X]=!0;var ie="";C&&C._owner&&C._owner!==un.current&&(ie=" It was passed a child from "+Ee(C._owner.type)+"."),gr(C),q('Each child in a list should have a unique "key" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',X,ie),gr(null)}}function Za(C,G){{if(typeof C!="object")return;if(Array.isArray(C))for(var X=0;X<C.length;X++){var ie=C[X];fn(ie)&&la(ie,G)}else if(fn(C))C._store&&(C._store.validated=!0);else if(C){var ke=Y(C);if(typeof ke=="function"&&ke!==C.entries)for(var je=ke.call(C),Oe;!(Oe=je.next()).done;)fn(Oe.value)&&la(Oe.value,G)}}}function ti(C){{var G=C.type;if(G==null||typeof G=="string")return;var X;if(typeof G=="function")X=G.propTypes;else if(typeof G=="object"&&(G.$$typeof===p||G.$$typeof===_))X=G.propTypes;else return;if(X){var ie=Ee(G);Zs(X,C.props,"prop",ie,C)}else if(G.PropTypes!==void 0&&!ln){ln=!0;var ke=Ee(G);q("Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?",ke||"Unknown")}typeof G.getDefaultProps=="function"&&!G.getDefaultProps.isReactClassApproved&&q("getDefaultProps is only used on classic React.createClass definitions. Use a static property named `defaultProps` instead.")}}function ri(C){{for(var G=Object.keys(C.props),X=0;X<G.length;X++){var ie=G[X];if(ie!=="children"&&ie!=="key"){gr(C),q("Invalid prop `%s` supplied to `React.Fragment`. React.Fragment can only have `key` and `children` props.",ie),gr(null);break}}C.ref!==null&&(gr(C),q("Invalid attribute `ref` supplied to `React.Fragment`."),gr(null))}}function Qa(C,G,X,ie,ke,je){{var Oe=Se(C);if(!Oe){var we="";(C===void 0||typeof C=="object"&&C!==null&&Object.keys(C).length===0)&&(we+=" You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.");var ht=ei(ke);ht?we+=ht:we+=Ka();var Xe;C===null?Xe="null":Array.isArray(C)?Xe="array":C!==void 0&&C.$$typeof===a?(Xe="<"+(Ee(C.type)||"Unknown")+" />",we=" Did you accidentally export a JSX literal instead of a component?"):Xe=typeof C,q("React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s",Xe,we)}var tt=ua(C,G,X,ke,je);if(tt==null)return tt;if(Oe){var Kt=G.children;if(Kt!==void 0)if(ie)if(Array.isArray(Kt)){for(var Wr=0;Wr<Kt.length;Wr++)Za(Kt[Wr],C);Object.freeze&&Object.freeze(Kt)}else q("React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.");else Za(Kt,C)}return C===e.Fragment?ri(tt):ti(tt),tt}}function eo(C,G,X){return Qa(C,G,X,!0)}function ni(C,G,X){return Qa(C,G,X,!1)}var ai=ni,oi=eo;e.jsx=ai,e.jsxs=oi}()}(Vc)),Vc}process.env.NODE_ENV==="production"?Eu.exports=II():Eu.exports=$I();var MI=Eu.exports;const LI=({children:e,store:r})=>MI.jsx(cg,{store:r,children:e});exports.CATALOG_REFRESH_DELAY=As;exports.DEFAULT_CACHE=$u;exports.EAttributeKind=zs;exports.EAttributeTypes=yv;exports.EDebuggerErrorReason=_h;exports.EDebuggerErrorType=ps;exports.EDebuggerState=Zr;exports.EDisplayMode=Vu;exports.EPermissionType=Te;exports.ETooltipBehavior=qu;exports.EUnsavedPopOverChoice=Yu;exports.ExpressionIndex=bh;exports.FLAGS_INIT_STATE=Ev;exports.FLAGS_KEYS=Wa;exports.ROOT_WEBFORM_STATE=Xn;exports.ReduxProvider=LI;exports.THEME_CLASSES=xg;exports.WT_FLAGS_KEYS=Sv;exports.actionsToPrivs=jg;exports.addBreakpointDecoration=WD;exports.addClassesFolder=bD;exports.addComponent=wv;exports.addCraftedComponent=jF;exports.addDataSource=QF;exports.addDatasource=sl;exports.addDefaultWebformState=dI;exports.addEmptyNamespace=EI;exports.addExpression=zD;exports.addIn=BP;exports.addNewFile=nv;exports.addPermission=YP;exports.addSavedCondition=YF;exports.addSession=tF;exports.addSharedSource=Uv;exports.addWebFormStyles=aI;exports.addWebformState=cI;exports.allowed=kP;exports.attributeKinds=hF;exports.attributeScopes=yF;exports.attributeTypes=vF;exports.castToFileFolder=ED;exports.changeTabEditor=oI;exports.children=Ss;exports.clearAllBreakpoints=YD;exports.clearBreakpoints=GD;exports.clearBreakpointsExcept=qD;exports.closeAllTabs=Iv;exports.closeLeftTabs=Lv;exports.closeModal=nD;exports.closeOthers=Mv;exports.closeRightTabs=$v;exports.closeSavedTabs=eI;exports.closeTab=Xs;exports.confirmTab=nI;exports.copyToClipBoard=KF;exports.create=kg;exports.createClassesFolderContent=ou;exports.createModal=qg;exports.createModelFiles=bu;exports.createNewFile=Yn;exports.createNewFileAndOpen=OD;exports.createNewNode=ts;exports.createRole=eD;exports.createWithResource=UP;exports.dataclassScopes=mF;exports.deepDeleteCondition=Ks;exports.deepSanitizeCondition=Js;exports.deleteDatasource=Ma;exports.deleteFile=_u;exports.deleteFolder=RD;exports.deleteSharedSource=Gv;exports.deserializeModel=xh;exports.duplicateNode=rs;exports.editComponent=Cv;exports.editCraftedComponent=BF;exports.editDataSource=nl;exports.editDatasource=il;exports.editModal=aD;exports.editRole=QP;exports.editSharedSource=Hv;exports.editWebformState=uI;exports.editors=Vh;exports.executeMethod=AD;exports.expandFolder=gD;exports.extensions=zh;exports.fetchAppSettings=Qg;exports.fetchCatalog=Cn;exports.fetchChanges=lv;exports.fetchCraftedComponents=Av;exports.fetchFiles=DD;exports.fetchFolderContent=rn;exports.fetchFolderContentWithoutExpanding=Fa;exports.fetchModel=Ts;exports.fetchRoles=Es;exports.fetchRolesChanges=Kg;exports.fetchSavedConditions=as;exports.fetchSettings=el;exports.fetchSharedCss=ss;exports.fetchSharedDatasources=os;exports.fetchTemplate=kF;exports.fetchTemplates=NF;exports.findNodeByPath=lt;exports.findOne=wn;exports.findSession=st;exports.findSessionByPath=bg;exports.getCachedState=Zn;exports.getCashedPrefrences=Mu;exports.getContent=En;exports.getDebuggerTabName=$h;exports.getDebuggerTabPath=Nu;exports.getDefaultContent=av;exports.getDefaultName=SF;exports.getDictByName=Wg;exports.getEditors=xt;exports.getExtension=ju;exports.getFileNameWithoutExtension=Jh;exports.getFilePath=iv;exports.getFileType=sv;exports.getFilenameFromType=ov;exports.getGraphData=qP;exports.getInheritedResources=Hg;exports.getModalTitle=Ps;exports.getNodeRelativePath=Kh;exports.getPrivilegeById=jr;exports.getPromotions=JP;exports.getResourceFromType=Ju;exports.getStore=zv;exports.indexTypes=bF;exports.initSavedConditions=VF;exports.initSharedCss=RI;exports.injectContentAtLine=cv;exports.inspect=FF;exports.isJSON=Oh;exports.isRelatedAttr=EF;exports.isRelatedEntitiesAttr=_v;exports.isRelatedEntityAttr=bv;exports.isRenameDatasource=UF;exports.isRolesOutdated=Xu;exports.isValidPrimaryKey=pF;exports.modelSubject=ng;exports.noBaseState=Pg;exports.openAddFileInput=vD;exports.openFile=Ia;exports.openFileAtLine=tl;exports.openFileAtSelection=uv;exports.openModal=or;exports.openModel=uF;exports.openRoles=BD;exports.openSettingsTab=sI;exports.openTabUnselected=kv;exports.parents=Hs;exports.populateShallow=GP;exports.primaryKeyAttributes=gF;exports.redo=vI;exports.refactorWebform=Ah;exports.refreshFile=mD;exports.reloadTab=ns;exports.relocateNode=$a;exports.remove=jP;exports.removeAllExpressions=XD;exports.removeBreakpointDecoration=UD;exports.removeClassesFolder=_D;exports.removeComponent=xv;exports.removeCraftedComponent=WF;exports.removeDataSource=rI;exports.removeDebuggerSessionsNotIn=vv;exports.removeDefaultWebformState=pI;exports.removeExpression=JD;exports.removeFile=yu;exports.removeFileNode=Su;exports.removeFrom=WP;exports.removeModal=Yg;exports.removePermission=VP;exports.removeRole=ZP;exports.removeSavedCondition=Dv;exports.removeSession=nF;exports.removeSessionByIndex=aF;exports.removeWebformState=lI;exports.rename=HP;exports.renameClassesFolder=SD;exports.renameDataSource=rl;exports.renameDatasource=Kn;exports.renameExpression=KD;exports.renameFile=Vn;exports.resetComponentState=fI;exports.resetResources=zP;exports.rootReducer=Wv;exports.sanitize=Gs;exports.sanitizePermissions=Bg;exports.sanitizePrivileges=Lg;exports.saveAll=FD;exports.saveExpressions=eF;exports.saveModel=ws;exports.savePrefrences=Ch;exports.saveRole=tD;exports.saveRoles=gu;exports.saveState=wh;exports.saveTab=zn;exports.selectActiveLine=QR;exports.selectActiveTab=dA;exports.selectActiveTabHistoryActions=zA;exports.selectAllDatasourcesByPath=qR;exports.selectAppState=vg;exports.selectBreakpoints=zR;exports.selectCSSClassesByPath=GA;exports.selectCallChainVariables=cA;exports.selectCatalog=ks;exports.selectCatalogMethods=jR;exports.selectCatalogState=LR;exports.selectClassBreakpoints=JR;exports.selectClassOffset=lA;exports.selectClasses=wA;exports.selectClassesFolder=wg;exports.selectClipBoard=tP;exports.selectComponents=Rg;exports.selectComponentsByPath=HR;exports.selectContentByPath=Sg;exports.selectCraftedComponent=ZA;exports.selectCurrentFrameByThreadId=oA;exports.selectCurrentTab=_g;exports.selectCurrentWebformStateByPath=sP;exports.selectDataclasses=hg;exports.selectDatasource=GR;exports.selectDatasourcesByPath=mg;exports.selectDatasourcesTheme=eP;exports.selectDebuggerChannels=sA;exports.selectDebuggerData=xn;exports.selectDebuggerMeta=YR;exports.selectDebuggerSessions=Ft;exports.selectDebuggerSessionsCount=VR;exports.selectDebuggers=_A;exports.selectDefaultWebformStatesByPath=oP;exports.selectDraftBreakpoints=KR;exports.selectDraftClassBreakpoints=XR;exports.selectExceptions=fA;exports.selectExplorer=SA;exports.selectExpressions=eA;exports.selectExpressionsVariables=uA;exports.selectFeatureFlag=LA;exports.selectFlagsByPath=YA;exports.selectForceLogin=FA;exports.selectGuestPrivilege=AA;exports.selectHasTabs=vA;exports.selectHighlightedLines=ZR;exports.selectHistoryByPath=VA;exports.selectI18nCurrent=UA;exports.selectI18nSetting=WA;exports.selectInspectedCSSClass=KA;exports.selectInspectedDatasource=JA;exports.selectInspector=js;exports.selectInspectorStateByType=QA;exports.selectIsLoaded=rP;exports.selectMethods=EA;exports.selectMethodsFolder=Tg;exports.selectModals=CA;exports.selectMonacoZoom=BA;exports.selectPanelByPath=FI;exports.selectPartialSessionSettings=$A;exports.selectPreferences=NA;exports.selectPreviewedWebformsPaths=gA;exports.selectPrivileges=RA;exports.selectProjectSettings=Cg;exports.selectQodly=jA;exports.selectRecentFiles=pA;exports.selectRemoteDebuggerMode=kA;exports.selectRoles=OA;exports.selectRolesAndPrivileges=xA;exports.selectRolesDate=IA;exports.selectRolesFlags=PA;exports.selectRoot=Nr;exports.selectSavedConditions=iP;exports.selectSelectedTab=DA;exports.selectServerSettings=Hu;exports.selectSessionSetting=MA;exports.selectSessionSettings=oa;exports.selectSharedCSS=qA;exports.selectSharedDatasources=yg;exports.selectSingletons=NR;exports.selectSourceByPath=rA;exports.selectSourceByThreadId=aA;exports.selectStackFrames=iA;exports.selectStoppedFromDebugSession=tA;exports.selectStylesByPath=HA;exports.selectTab=Nv;exports.selectTabByPath=kr;exports.selectTabByReference=Dt;exports.selectTabExtraByPath=mA;exports.selectTabMaxWeight=hA;exports.selectTabs=aa;exports.selectTemplates=Ag;exports.selectTemplatesData=XA;exports.selectThreadIdByPath=nA;exports.selectTouchedTabs=Uu;exports.selectTouchedTabsLength=bA;exports.selectVirtualDataClasses=kR;exports.selectWebForms=TA;exports.selectWebFormsFolder=Eg;exports.selectWebformMetadataByPath=nP;exports.selectWebformNodes=yA;exports.selectWebformStatesByPath=Dg;exports.selectWebformStatesLabelsByPath=aP;exports.selectWebformStylesByPath=Gu;exports.selectWebforms=qa;exports.selectorEqualityFn=g1;exports.serializeModel=_F;exports.setActiveLine=VD;exports.setBreakpointsDecoration=HD;exports.setCallChainVariables=oF;exports.setContent=cl;exports.setCurrentWebformState=jD;exports.setDataSources=tI;exports.setDatasourceEvents=SI;exports.setDatasourcesTheme=$F;exports.setDebuggerMeta=cF;exports.setDefaultWebformStates=hI;exports.setExpression=ZD;exports.setExpressionVariables=sF;exports.setFolderChildren=yD;exports.setHistoryContent=Bv;exports.setModelFlag=dF;exports.setPanelState=iI;exports.setRolesContent=Zu;exports.setSavedCondition=qF;exports.setSelectedGroup=IF;exports.setSessions=hv;exports.setSetting=vu;exports.setSettings=Ys;exports.setSettingsAsText=lD;exports.setSourceContent=iF;exports.setTabContent=kD;exports.setTabExtra=ZF;exports.setTabFlags=Fv;exports.setTabs=JF;exports.setTabsFlags=XF;exports.setTemplateData=Rv;exports.setTemplatesData=Ov;exports.setWebformState=jv;exports.setWebformsFlag=MF;exports.sort=Ng;exports.stateReducer=Vv;exports.stateSlice=Ua;exports.toAPI=qs;exports.toState=XP;exports.toggleExpandFolder=hD;exports.toggleForceLogin=sD;exports.toggleInspector=DF;exports.togglePermission=KP;exports.togglePrivilegePermission=Ug;exports.toggleTab=oD;exports.tryCloseAllTabs=$D;exports.tryCloseLeftTabs=LD;exports.tryCloseOtherTabs=ID;exports.tryCloseRightTabs=MD;exports.tryCloseTab=al;exports.tryEditMethod=TD;exports.tryInjectMethod=dv;exports.tryRenameDataclass=lF;exports.undo=gI;exports.uniquePush=ar;exports.unlockHistory=ul;exports.updateExpressionAt=QD;exports.updatePrivileges=Xg;exports.updateRoles=Zg;exports.updateRolesAndPrivileges=Qu;exports.updateSavedConditions=GF;exports.updateSession=rF;exports.updateSharedCss=OI;exports.updateSharedDatasources=ll;exports.uploadFile=xD;exports.uploadFileAndGetResponse=CD;exports.useAppDispatch=MR;exports.useAppSelector=Sr;exports.useAttribute=OF;exports.useCollections=CF;exports.useDataclass=xF;exports.useDataclasses=wF;exports.useMethod=UR;exports.useMethods=BR;exports.useModelFlags=AF;exports.useModelProperties=RF;exports.useModelSelector=TF;exports.wipeDebuggerSessions=gv;
171
171
  //# sourceMappingURL=index.cjs.js.map