@ws-ui/store 0.0.10 → 0.0.12
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/README.md +3 -3
- package/dist/index.cjs.js +2 -2
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.es.js +5 -4
- package/dist/index.es.js.map +1 -1
- package/package.json +55 -55
package/README.md
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
# Qodly store
|
|
2
|
-
|
|
3
|
-
coming soon...
|
|
1
|
+
# Qodly store
|
|
2
|
+
|
|
3
|
+
coming soon...
|
package/dist/index.cjs.js
CHANGED
|
@@ -87,7 +87,7 @@ globstar while`,r,m,t,b,E),this.matchOne(r.slice(m),t.slice(b),a))return this.de
|
|
|
87
87
|
>>> no match, partial?`,r,m,t,b),m===l))}var x;if(typeof p=="string"?(x=g===p,this.debug("string match",p,g,x)):(x=g.match(p),this.debug("pattern match",p,g,x)),!x)return!1}if(i===l&&c===d)return!0;if(i===l)return a;if(c===d)return i===l-1&&r[i]==="";throw new Error("wtf?")}braceExpand(){return Qh(this.pattern,this.options)}parse(r,t){bs(r);const a=this.options;if(r==="**")if(a.noglobstar)r="*";else return dr;if(r==="")return"";let s="",i=!1,c=!1;const l=[],d=[];let p,g=!1,m=-1,b=-1,E,x,C,I=r.charAt(0)===".",P=a.dot||I;const k=()=>I?"":P?"(?!(?:^|\\/)\\.{1,2}(?:$|\\/))":"(?!\\.)",M=H=>H.charAt(0)==="."?"":a.dot?"(?!(?:^|\\/)\\.{1,2}(?:$|\\/))":"(?!\\.)",j=()=>{if(p){switch(p){case"*":s+=Du,i=!0;break;case"?":s+=oc,i=!0;break;default:s+="\\"+p;break}this.debug("clearStateChar %j %j",p,s),p=!1}};for(let H=0,z;H<r.length&&(z=r.charAt(H));H++){if(this.debug("%s %s %s %j",r,H,s,z),c){if(z==="/")return!1;Dp[z]&&(s+="\\"),s+=z,c=!1;continue}switch(z){case"/":return!1;case"\\":if(g&&r.charAt(H+1)==="-"){s+=z;continue}j(),c=!0;continue;case"?":case"*":case"+":case"@":case"!":if(this.debug("%s %s %s %j <-- stateChar",r,H,s,z),g){this.debug(" in class"),z==="!"&&H===b+1&&(z="^"),s+=z;continue}this.debug("call clearStateChar %j",p),j(),p=z,a.noext&&j();continue;case"(":{if(g){s+="(";continue}if(!p){s+="\\(";continue}const te={type:p,start:H-1,reStart:s.length,open:Pp[p].open,close:Pp[p].close};this.debug(this.pattern," ",te),l.push(te),s+=te.open,te.start===0&&te.type!=="!"&&(I=!0,s+=M(r.slice(H+1))),this.debug("plType %j %j",p,s),p=!1;continue}case")":{const te=l[l.length-1];if(g||!te){s+="\\)";continue}l.pop(),j(),i=!0,x=te,s+=x.close,x.type==="!"&&d.push(Object.assign(x,{reEnd:s.length}));continue}case"|":{const te=l[l.length-1];if(g||!te){s+="\\|";continue}j(),s+="|",te.start===0&&te.type!=="!"&&(I=!0,s+=M(r.slice(H+1)));continue}case"[":if(j(),g){s+="\\"+z;continue}g=!0,b=H,m=s.length,s+=z;continue;case"]":if(H===b+1||!g){s+="\\"+z;continue}E=r.substring(b+1,H);try{RegExp("["+EO(bO(E))+"]"),s+=z}catch{s=s.substring(0,m)+"(?:$.)"}i=!0,g=!1;continue;default:j(),Dp[z]&&!(z==="^"&&g)&&(s+="\\"),s+=z;break}}for(g&&(E=r.slice(b+1),C=this.parse(E,Iu),s=s.substring(0,m)+"\\["+C[0],i=i||C[1]),x=l.pop();x;x=l.pop()){let H;H=s.slice(x.reStart+x.open.length),this.debug("setting tail",s,x),H=H.replace(/((?:\\{2}){0,64})(\\?)\|/g,(te,We,Te)=>(Te||(Te="\\"),We+We+Te+"|")),this.debug(`tail=%j
|
|
88
88
|
%s`,H,H,x,s);const z=x.type==="*"?Du:x.type==="?"?oc:"\\"+x.type;i=!0,s=s.slice(0,x.reStart)+z+"\\("+H}j(),c&&(s+="\\\\");const O=vO[s.charAt(0)];for(let H=d.length-1;H>-1;H--){const z=d[H],te=s.slice(0,z.reStart),We=s.slice(z.reStart,z.reEnd-8);let Te=s.slice(z.reEnd);const it=s.slice(z.reEnd-8,z.reEnd)+Te,X=te.split(")").length,Pe=te.split("(").length-X;let ut=Te;for(let He=0;He<Pe;He++)ut=ut.replace(/\)[+*?]?/,"");Te=ut;const et=Te===""&&t!==Iu?"(?:$|\\/)":"";s=te+We+Te+et+it}if(s!==""&&i&&(s="(?=.)"+s),O&&(s=k()+s),t===Iu)return[s,i];if(a.nocase&&!i&&(i=r.toUpperCase()!==r.toLowerCase()),!i)return yO(r);const Y=a.nocase?"i":"";try{return Object.assign(new RegExp("^"+s+"$",Y),{_glob:r,_src:s})}catch{return new RegExp("$.")}}makeRe(){if(this.regexp||this.regexp===!1)return this.regexp;const r=this.set;if(!r.length)return this.regexp=!1,this.regexp;const t=this.options,a=t.noglobstar?Du:t.dot?hO:gO,s=t.nocase?"i":"";let i=r.map(c=>(c=c.map(l=>typeof l=="string"?_O(l):l===dr?dr:l._src).reduce((l,d)=>(l[l.length-1]===dr&&d===dr||l.push(d),l),[]),c.forEach((l,d)=>{l!==dr||c[d-1]===dr||(d===0?c.length>1?c[d+1]="(?:\\/|"+a+"\\/)?"+c[d+1]:c[d]=a:d===c.length-1?c[d-1]+="(?:\\/|"+a+")?":(c[d-1]+="(?:\\/|\\/"+a+"\\/)"+c[d+1],c[d+1]=dr))}),c.filter(l=>l!==dr).join("/"))).join("|");i="^(?:"+i+")$",this.negate&&(i="^(?!"+i+").*$");try{this.regexp=new RegExp(i,s)}catch{this.regexp=!1}return this.regexp}match(r,t=this.partial){if(this.debug("match",r,this.pattern),this.comment)return!1;if(this.empty)return r==="";if(r==="/"&&t)return!0;const a=this.options;ac.sep!=="/"&&(r=r.split(ac.sep).join("/")),r=r.split(Ip),this.debug(this.pattern,"split",r);const s=this.set;this.debug(this.pattern,"set",s);let i;for(let c=r.length-1;c>=0&&(i=r[c],!i);c--);for(let c=0;c<s.length;c++){const l=s[c];let d=r;if(a.matchBase&&l.length===1&&(d=[i]),this.matchOne(d,l,t))return a.flipNegate?!0:!this.negate}return a.flipNegate?!1:this.negate}static defaults(r){return qt.defaults(r).Minimatch}}qt.Minimatch=Ls;const eg=Ps(Xh),tg=[{pattern:_.ROLES_TAB_PATH,editor:{key:"editors:roles"},supportedEditors:[{key:"editors:code",config:{language:"json",theme:"vs-dark"}}]},{pattern:_.MODEL_TAB_PATH,editor:{key:"editors:model"},supportedEditors:[{key:"editors:code",config:{language:"json",theme:"vs-dark"}}]},{pattern:"**/*.webform",editor:{key:"editors:webforms"},supportedEditors:[{key:"editors:code",config:{language:"json",theme:"vs-dark"}}]},{pattern:"Methods/*.4dm",editor:{key:"editors:code:method",config:{theme:"fd-dark",language:"4d"}}},{pattern:"Methods/*.4qs",editor:{key:"editors:code:method",config:{theme:"fd-dark",language:"4d"}}},{pattern:"Classes/*.4dm",editor:{key:"editors:code",config:{theme:"fd-dark",language:"4d"}}},{pattern:"Classes/*.4qs",editor:{key:"editors:code",config:{theme:"fd-dark",language:"4d"}}},{pattern:"**/*.+(json)",editor:{key:"editors:code",config:{language:"json"}}},{pattern:"**/*.+(js)",editor:{key:"editors:code",config:{language:"js"}}},{pattern:"**/*.+(css)",editor:{key:"editors:code",config:{language:"css"}}},{pattern:"**/*.+(txt)",editor:{key:"editors:code",config:{language:""}}},{pattern:"Debugger/*",editor:{key:"editors:code",config:{theme:"fd-dark",language:"4d"}}},{pattern:"**/*.+(png|jpeg|jpg|gif|svg)",editor:{key:"editors:img"}}],rg=[{pattern:"**/*.+(json|4DModel|WebForm)",type:"json"},{pattern:"**/*.+(4dm|txt|json|4qs)",type:"text"}];function ng(e){const r=e.split("/");return r.pop(),r.join("/")}function hr(e){const r=tg.find(({pattern:t})=>eg(e,t,{nocase:!0}));return r||{pattern:"",editor:{key:"editors:unknown",config:{language:"text"}}}}function ag(e){const r=rg.find(({pattern:t})=>eg(e,t,{nocase:!0}));return r?r.type:"text"}var sc=function(e,r){return sc=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,a){t.__proto__=a}||function(t,a){for(var s in a)Object.prototype.hasOwnProperty.call(a,s)&&(t[s]=a[s])},sc(e,r)};function js(e,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");sc(e,r);function t(){this.constructor=e}e.prototype=r===null?Object.create(r):(t.prototype=r.prototype,new t)}function ic(e){var r=typeof Symbol=="function"&&Symbol.iterator,t=r&&e[r],a=0;if(t)return t.call(e);if(e&&typeof e.length=="number")return{next:function(){return e&&a>=e.length&&(e=void 0),{value:e&&e[a++],done:!e}}};throw new TypeError(r?"Object is not iterable.":"Symbol.iterator is not defined.")}function _s(e,r){var t=typeof Symbol=="function"&&e[Symbol.iterator];if(!t)return e;var a=t.call(e),s,i=[],c;try{for(;(r===void 0||r-- >0)&&!(s=a.next()).done;)i.push(s.value)}catch(l){c={error:l}}finally{try{s&&!s.done&&(t=a.return)&&t.call(a)}finally{if(c)throw c.error}}return i}function Es(e,r,t){if(t||arguments.length===2)for(var a=0,s=r.length,i;a<s;a++)(i||!(a in r))&&(i||(i=Array.prototype.slice.call(r,0,a)),i[a]=r[a]);return e.concat(i||Array.prototype.slice.call(r))}function Lr(e){return typeof e=="function"}function og(e){var r=function(a){Error.call(a),a.stack=new Error().stack},t=e(r);return t.prototype=Object.create(Error.prototype),t.prototype.constructor=t,t}var Fu=og(function(e){return function(t){e(this),this.message=t?t.length+` errors occurred during unsubscription:
|
|
89
89
|
`+t.map(function(a,s){return s+1+") "+a.toString()}).join(`
|
|
90
|
-
`):"",this.name="UnsubscriptionError",this.errors=t}});function uc(e,r){if(e){var t=e.indexOf(r);0<=t&&e.splice(t,1)}}var ks=function(){function e(r){this.initialTeardown=r,this.closed=!1,this._parentage=null,this._finalizers=null}return e.prototype.unsubscribe=function(){var r,t,a,s,i;if(!this.closed){this.closed=!0;var c=this._parentage;if(c)if(this._parentage=null,Array.isArray(c))try{for(var l=ic(c),d=l.next();!d.done;d=l.next()){var p=d.value;p.remove(this)}}catch(C){r={error:C}}finally{try{d&&!d.done&&(t=l.return)&&t.call(l)}finally{if(r)throw r.error}}else c.remove(this);var g=this.initialTeardown;if(Lr(g))try{g()}catch(C){i=C instanceof Fu?C.errors:[C]}var m=this._finalizers;if(m){this._finalizers=null;try{for(var b=ic(m),E=b.next();!E.done;E=b.next()){var x=E.value;try{Fp(x)}catch(C){i=i??[],C instanceof Fu?i=Es(Es([],_s(i)),_s(C.errors)):i.push(C)}}}catch(C){a={error:C}}finally{try{E&&!E.done&&(s=b.return)&&s.call(b)}finally{if(a)throw a.error}}}if(i)throw new Fu(i)}},e.prototype.add=function(r){var t;if(r&&r!==this)if(this.closed)Fp(r);else{if(r instanceof e){if(r.closed||r._hasParent(this))return;r._addParent(this)}(this._finalizers=(t=this._finalizers)!==null&&t!==void 0?t:[]).push(r)}},e.prototype._hasParent=function(r){var t=this._parentage;return t===r||Array.isArray(t)&&t.includes(r)},e.prototype._addParent=function(r){var t=this._parentage;this._parentage=Array.isArray(t)?(t.push(r),t):t?[t,r]:r},e.prototype._removeParent=function(r){var t=this._parentage;t===r?this._parentage=null:Array.isArray(t)&&uc(t,r)},e.prototype.remove=function(r){var t=this._finalizers;t&&uc(t,r),r instanceof e&&r._removeParent(this)},e.EMPTY=function(){var r=new e;return r.closed=!0,r}(),e}(),sg=ks.EMPTY;function ig(e){return e instanceof ks||e&&"closed"in e&&Lr(e.remove)&&Lr(e.add)&&Lr(e.unsubscribe)}function Fp(e){Lr(e)?e():e.unsubscribe()}var ug={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1},cc={setTimeout:function(e,r){for(var t=[],a=2;a<arguments.length;a++)t[a-2]=arguments[a];var s=cc.delegate;return s!=null&&s.setTimeout?s.setTimeout.apply(s,Es([e,r],_s(t))):setTimeout.apply(void 0,Es([e,r],_s(t)))},clearTimeout:function(e){var r=cc.delegate;return((r==null?void 0:r.clearTimeout)||clearTimeout)(e)},delegate:void 0};function SO(e){cc.setTimeout(function(){throw e})}function $p(){}function ns(e){e()}var cg=function(e){js(r,e);function r(t){var a=e.call(this)||this;return a.isStopped=!1,t?(a.destination=t,ig(t)&&t.add(a)):a.destination=CO,a}return r.create=function(t,a,s){return new lc(t,a,s)},r.prototype.next=function(t){this.isStopped||this._next(t)},r.prototype.error=function(t){this.isStopped||(this.isStopped=!0,this._error(t))},r.prototype.complete=function(){this.isStopped||(this.isStopped=!0,this._complete())},r.prototype.unsubscribe=function(){this.closed||(this.isStopped=!0,e.prototype.unsubscribe.call(this),this.destination=null)},r.prototype._next=function(t){this.destination.next(t)},r.prototype._error=function(t){try{this.destination.error(t)}finally{this.unsubscribe()}},r.prototype._complete=function(){try{this.destination.complete()}finally{this.unsubscribe()}},r}(ks),wO=Function.prototype.bind;function $u(e,r){return wO.call(e,r)}var TO=function(){function e(r){this.partialObserver=r}return e.prototype.next=function(r){var t=this.partialObserver;if(t.next)try{t.next(r)}catch(a){Jo(a)}},e.prototype.error=function(r){var t=this.partialObserver;if(t.error)try{t.error(r)}catch(a){Jo(a)}else Jo(r)},e.prototype.complete=function(){var r=this.partialObserver;if(r.complete)try{r.complete()}catch(t){Jo(t)}},e}(),lc=function(e){js(r,e);function r(t,a,s){var i=e.call(this)||this,c;if(Lr(t)||!t)c={next:t??void 0,error:a??void 0,complete:s??void 0};else{var l;i&&ug.useDeprecatedNextContext?(l=Object.create(t),l.unsubscribe=function(){return i.unsubscribe()},c={next:t.next&&$u(t.next,l),error:t.error&&$u(t.error,l),complete:t.complete&&$u(t.complete,l)}):c=t}return i.destination=new TO(c),i}return r}(cg);function Jo(e){SO(e)}function xO(e){throw e}var CO={closed:!0,next:$p,error:xO,complete:$p},RO=function(){return typeof Symbol=="function"&&Symbol.observable||"@@observable"}();function OO(e){return e}function AO(e){return e.length===0?OO:e.length===1?e[0]:function(t){return e.reduce(function(a,s){return s(a)},t)}}var Mp=function(){function e(r){r&&(this._subscribe=r)}return e.prototype.lift=function(r){var t=new e;return t.source=this,t.operator=r,t},e.prototype.subscribe=function(r,t,a){var s=this,i=DO(r)?r:new lc(r,t,a);return ns(function(){var c=s,l=c.operator,d=c.source;i.add(l?l.call(i,d):d?s._subscribe(i):s._trySubscribe(i))}),i},e.prototype._trySubscribe=function(r){try{return this._subscribe(r)}catch(t){r.error(t)}},e.prototype.forEach=function(r,t){var a=this;return t=Np(t),new t(function(s,i){var c=new lc({next:function(l){try{r(l)}catch(d){i(d),c.unsubscribe()}},error:i,complete:s});a.subscribe(c)})},e.prototype._subscribe=function(r){var t;return(t=this.source)===null||t===void 0?void 0:t.subscribe(r)},e.prototype[RO]=function(){return this},e.prototype.pipe=function(){for(var r=[],t=0;t<arguments.length;t++)r[t]=arguments[t];return AO(r)(this)},e.prototype.toPromise=function(r){var t=this;return r=Np(r),new r(function(a,s){var i;t.subscribe(function(c){return i=c},function(c){return s(c)},function(){return a(i)})})},e.create=function(r){return new e(r)},e}();function Np(e){var r;return(r=e??ug.Promise)!==null&&r!==void 0?r:Promise}function PO(e){return e&&Lr(e.next)&&Lr(e.error)&&Lr(e.complete)}function DO(e){return e&&e instanceof cg||PO(e)&&ig(e)}var IO=og(function(e){return function(){e(this),this.name="ObjectUnsubscribedError",this.message="object unsubscribed"}}),lg=function(e){js(r,e);function r(){var t=e.call(this)||this;return t.closed=!1,t.currentObservers=null,t.observers=[],t.isStopped=!1,t.hasError=!1,t.thrownError=null,t}return r.prototype.lift=function(t){var a=new Lp(this,this);return a.operator=t,a},r.prototype._throwIfClosed=function(){if(this.closed)throw new IO},r.prototype.next=function(t){var a=this;ns(function(){var s,i;if(a._throwIfClosed(),!a.isStopped){a.currentObservers||(a.currentObservers=Array.from(a.observers));try{for(var c=ic(a.currentObservers),l=c.next();!l.done;l=c.next()){var d=l.value;d.next(t)}}catch(p){s={error:p}}finally{try{l&&!l.done&&(i=c.return)&&i.call(c)}finally{if(s)throw s.error}}}})},r.prototype.error=function(t){var a=this;ns(function(){if(a._throwIfClosed(),!a.isStopped){a.hasError=a.isStopped=!0,a.thrownError=t;for(var s=a.observers;s.length;)s.shift().error(t)}})},r.prototype.complete=function(){var t=this;ns(function(){if(t._throwIfClosed(),!t.isStopped){t.isStopped=!0;for(var a=t.observers;a.length;)a.shift().complete()}})},r.prototype.unsubscribe=function(){this.isStopped=this.closed=!0,this.observers=this.currentObservers=null},Object.defineProperty(r.prototype,"observed",{get:function(){var t;return((t=this.observers)===null||t===void 0?void 0:t.length)>0},enumerable:!1,configurable:!0}),r.prototype._trySubscribe=function(t){return this._throwIfClosed(),e.prototype._trySubscribe.call(this,t)},r.prototype._subscribe=function(t){return this._throwIfClosed(),this._checkFinalizedStatuses(t),this._innerSubscribe(t)},r.prototype._innerSubscribe=function(t){var a=this,s=this,i=s.hasError,c=s.isStopped,l=s.observers;return i||c?sg:(this.currentObservers=null,l.push(t),new ks(function(){a.currentObservers=null,uc(l,t)}))},r.prototype._checkFinalizedStatuses=function(t){var a=this,s=a.hasError,i=a.thrownError,c=a.isStopped;s?t.error(i):c&&t.complete()},r.prototype.asObservable=function(){var t=new Mp;return t.source=this,t},r.create=function(t,a){return new Lp(t,a)},r}(Mp),Lp=function(e){js(r,e);function r(t,a){var s=e.call(this)||this;return s.destination=t,s.source=a,s}return r.prototype.next=function(t){var a,s;(s=(a=this.destination)===null||a===void 0?void 0:a.next)===null||s===void 0||s.call(a,t)},r.prototype.error=function(t){var a,s;(s=(a=this.destination)===null||a===void 0?void 0:a.error)===null||s===void 0||s.call(a,t)},r.prototype.complete=function(){var t,a;(a=(t=this.destination)===null||t===void 0?void 0:t.complete)===null||a===void 0||a.call(t)},r.prototype._subscribe=function(t){var a,s;return(s=(a=this.source)===null||a===void 0?void 0:a.subscribe(t))!==null&&s!==void 0?s:sg},r}(lg);const fg=new lg,FO=()=>Uh(),Wr=eO,Nc=q(e=>e,e=>e.catalog.state==="loaded"?e.catalog.model:null),$O=q(Nc,e=>e?e.dataClasses:[]),MO=q(Nc,e=>e?e.methods:[]),dg=e=>q(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[]}}),NO=e=>Wr(dg(e),kh),LO=(e,r)=>q(dg(e),t=>t.find(a=>`${a.applyTo}.${a.name}`===r)),jO=(e,r,t)=>Wr(LO(e,`${t}.${r}`),kh),pg=q(e=>e,e=>e),kO=e=>q(Ur,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]}))}),hg=e=>q(Ur,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)||[]}),BO=(e,r,t)=>q(pg,a=>{var s,i;if(r){const c=a.sharedDatasources.sources[r];return c?c.find(l=>l.id===e):void 0}else{const c=a.root.tabs.find(d=>d.path===t);return c?(i=(s=c.content.metadata)==null?void 0:s.datasources)==null?void 0:i.find(d=>d.id===e):void 0}}),gg=q(e=>e,e=>{var r;return((r=e.sharedDatasources)==null?void 0:r.sources)||[]}),WO=(e,r,t,a)=>q(hg(e),gg,(s,i)=>{const c=ze.flatten(ze.values(i)),l=[...r!=="private"?s:[],...r!=="shared"?c:[]];return t?l.filter(d=>(!a||a.every(({id:p,namespace:g=""})=>d.id!==p||(d.namespace||"")!==g))&&(t.includes(d.type)||d.dataType&&(t.includes(d.dataType)||t.includes("objectFromArray")&&d.dataType==="object"&&d.from))):l}),UO=q(e=>e.debugger,e=>e.meta),An=q(e=>e.debugger,e=>e.list),It=q(e=>e.debugger,e=>e.sessions),HO=q(It,e=>e.length),On=(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),vg=(e,r)=>e.find(t=>t.tabPath===r),qO=(e,r)=>q(An,t=>{var a;return((a=On(t,e,r))==null?void 0:a.breakpoints.saved.locations)||[]}),GO=(e,r)=>q(An,t=>{var a;return((a=On(t,e,r))==null?void 0:a.breakpoints.draft.locations)||[]}),zO=e=>q(An,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)),YO=e=>q(An,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)),VO=e=>q(It,r=>{const t=st(r,e);return t!=null&&t.stopped?t.highlightedLines:null}),KO=e=>q(It,r=>{const t=st(r,e);return t!=null&&t.stopped?t.activeLine:null}),JO=e=>q(It,r=>{var t;return((t=st(r,e))==null?void 0:t.expressions)||[]}),XO=e=>q(It,r=>{var t;return((t=st(r,e))==null?void 0:t.stopped)||!1}),ZO=(e,r)=>q(An,t=>{var a;return(a=On(t,e,r))==null?void 0:a.source}),QO=e=>q(It,r=>{var t;return((t=vg(r,e))==null?void 0:t.threadId)||-1}),eA=e=>q(It,r=>{var t,a;return(a=(t=st(r,e))==null?void 0:t.currentStackFrame)==null?void 0:a.source}),tA=e=>q(It,r=>{var t;return(t=st(r,e))==null?void 0:t.currentStackFrame}),rA=q(It,e=>e.map(({channelId:r,threadId:t})=>({id:r,threadId:t}))),nA=e=>q(It,r=>{var t;return((t=st(r,e))==null?void 0:t.stackFrames)||[]}),aA=e=>q(It,r=>{var t,a;return((a=(t=st(r,e))==null?void 0:t.variables)==null?void 0:a.callchain)||[]}),oA=e=>q(It,r=>{var t,a;return((a=(t=st(r,e))==null?void 0:t.variables)==null?void 0:a.expressions)||[]}),sA=(e,r="saved")=>q(An,t=>{const a=t.find(s=>s.filePath===e);return(a==null?void 0:a.breakpoints[r].offset)||0}),iA=(e,r,t,a)=>q(It,s=>{var p;const i=((p=st(s,e))==null?void 0:p.exceptions)||[],c=r===_.FileFolderType.CLASS,l=c&&a?`${a}.${t}`:t;return(l?i.filter(g=>g.location===l):i).map(g=>({...g,locationLine:c?g.locationLine:g.locationLine+1}))}),Ur=q(e=>e.root,e=>e),ca=q(Ur,e=>e.tabs),uA=q(Ur,e=>e.activeTab),cA=q(Ur,e=>e.recent.filter(({type:r})=>r!==_.FileFolderType.DEBUGGER)),lA=q(Ur,({tabs:e,activeTab:r})=>e.find(({path:t})=>t===r)),fA=q(Ur,({tabs:e})=>e.reduce((t,a)=>(a==null?void 0:a.weight)>((t==null?void 0:t.weight)||0)?a:t,null)),dA=q(ca,e=>e.filter(({type:r,flags:t})=>r===_.FileFolderType.WEBFORM&&t.enabled===!1).map(({path:r})=>r)),pA=q(ca,e=>e.length>0),Ya=e=>q(Ur,r=>r.tabs.find(({path:t})=>t===e)),mg=(e,r="")=>q(Ya(e),t=>!t||!t.content||typeof t.content=="string"?t==null?void 0:t.content:ze.get(t.content,r)),hA=e=>q(Ya(e),r=>r==null?void 0:r.extra),gA=(e,r=t=>t)=>q(mg(e,"components"),t=>r(t||{})),Lc=q(ca,e=>e.filter(r=>r.flags.touched)),vA=q(Lc,e=>e.length),mA=q(It,e=>e.map(({threadId:r,currentStackFrame:{source:t},tabPath:a})=>({name:Dh(r,t),path:a,type:_.FileFolderType.DEBUGGER,content:t==null?void 0:t.content,flags:{},extra:{source:t}}))),yA=q(e=>e,e=>e.explorer||[]),yg=q(e=>e,e=>e.explorer.find(r=>r.path===_.FolderRootPath.WEBFORMS)),bg=q(e=>e,e=>e.explorer.find(r=>r.path===_.FolderRootPath.METHODS)),_g=q(e=>e,e=>e.explorer.find(r=>r.path===_.FolderRootPath.CLASSES)),bA=q(bg,e=>(e==null?void 0:e.children)||[]),_A=q(yg,e=>(e==null?void 0:e.children)||[]),EA=q(_g,e=>(e==null?void 0:e.children)||[]),SA=q(e=>e.modals,e=>e.list),wA=q(e=>e.roles,({roles:e})=>e),TA=q(e=>e.roles,({privileges:e})=>e),xA=q(e=>e.roles,({privileges:e})=>Object.values(e).find(({privilege:r})=>r==="guest")),CA=q(e=>e.roles,({flags:e})=>e),RA=q(e=>e.roles,({selectedTab:e})=>e),OA=q(e=>e.roles,({date:e})=>e),Eg=q(e=>e.settings,e=>e.session),AA=q(e=>e.settings,e=>e.project),PA=q(e=>e.settings,e=>e),jc=q(e=>e.settings,e=>e.server),DA=q(jc,e=>e.remoteDebuggerMode),IA=q(jc,e=>e.qodly),FA=q(Eg,e=>e["monaco.zoom"]),Sg=["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"],wg=Sg.map(e=>({id:xc(),content:"",name:e,parentId:null,scope:_.EWebFormStyleClassScope.THEME})),kc=e=>q(Ya(e),r=>{var t,a;return((a=(t=r==null?void 0:r.content)==null?void 0:t.metadata)==null?void 0:a.styles)||[]}),$A=(e,r)=>q(kc(e),t=>r.map(a=>{switch(!0){case a===_.EWebFormStyleClassScope.LOCAL:return t.map(s=>({...s,scope:_.EWebFormStyleClassScope.LOCAL}));case a===_.EWebFormStyleClassScope.THEME:return wg;default:return[]}}).flat()),MA=e=>q(kc(e),r=>[...r.map(t=>({...t,scope:_.EWebFormStyleClassScope.LOCAL})),...wg]),NA=q(e=>e,e=>{var r;return[...(((r=e.sharedCSS)==null?void 0:r.styles)||[]).map(t=>({...t,scope:_.EWebFormStyleClassScope.SHARED}))]}),LA=e=>q(Ya(e),r=>r==null?void 0:r.flags),Va=q(e=>e.webforms,e=>e),Tg=q(Va,e=>(e==null?void 0:e.components)||[]),Bs=q(Va,e=>e.inspector),jA=q(Bs,e=>e.css),kA=q(Bs,e=>e.datasource),xg=q(Va,e=>e.templates||{data:[]}),BA=q(xg,e=>e.data||[]),WA=e=>q(Tg,r=>r.find(t=>t.id===e)),UA=e=>q(Bs,r=>r[e]),HA=q(Va,e=>e.datasources.theme),qA=q(e=>e.catalog,e=>e.sharedDatasources,e=>e.sharedCSS,(e,r,t)=>[e.state,r.state,t.state].every(a=>["loaded","error"].includes(a)));var Bc=(e=>(e.SHOW_AFTER_TIMEOUT="show_after_timeout",e.HIDE_AFTER_TIMEOUT="hide_after_timeout",e))(Bc||{}),Cg=(e=>(e.AIRY="airy",e.COMPACT="neutral",e))(Cg||{});const Rg={metadata:{v:"1.0",datasources:[],styles:[]},components:{ROOT:{parent:"",type:{resolvedName:"Container"},isCanvas:!0,props:{className:"bg-white h-full w-full px-6",classNames:[],events:[],airyMode:!1},displayName:"App",custom:{},hidden:!1,nodes:[],linkedNodes:{}}}};var Xo,GA=new Uint8Array(16);function Og(){if(!Xo&&(Xo=typeof crypto<"u"&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)||typeof msCrypto<"u"&&typeof msCrypto.getRandomValues=="function"&&msCrypto.getRandomValues.bind(msCrypto),!Xo))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return Xo(GA)}const zA=/^(?:[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 Ws(e){return typeof e=="string"&&zA.test(e)}var mt=[];for(var Mu=0;Mu<256;++Mu)mt.push((Mu+256).toString(16).substr(1));function Us(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(!Ws(t))throw TypeError("Stringified UUID is invalid");return t}var jp,Nu,Lu=0,ju=0;function YA(e,r,t){var a=r&&t||0,s=r||new Array(16);e=e||{};var i=e.node||jp,c=e.clockseq!==void 0?e.clockseq:Nu;if(i==null||c==null){var l=e.random||(e.rng||Og)();i==null&&(i=jp=[l[0]|1,l[1],l[2],l[3],l[4],l[5]]),c==null&&(c=Nu=(l[6]<<8|l[7])&16383)}var d=e.msecs!==void 0?e.msecs:Date.now(),p=e.nsecs!==void 0?e.nsecs:ju+1,g=d-Lu+(p-ju)/1e4;if(g<0&&e.clockseq===void 0&&(c=c+1&16383),(g<0||d>Lu)&&e.nsecs===void 0&&(p=0),p>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");Lu=d,ju=p,Nu=c,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 b=d/4294967296*1e4&268435455;s[a++]=b>>>8&255,s[a++]=b&255,s[a++]=b>>>24&15|16,s[a++]=b>>>16&255,s[a++]=c>>>8|128,s[a++]=c&255;for(var E=0;E<6;++E)s[a+E]=i[E];return r||Us(s)}function Ag(e){if(!Ws(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 VA(e){e=unescape(encodeURIComponent(e));for(var r=[],t=0;t<e.length;++t)r.push(e.charCodeAt(t));return r}var KA="6ba7b810-9dad-11d1-80b4-00c04fd430c8",JA="6ba7b811-9dad-11d1-80b4-00c04fd430c8";function Pg(e,r,t){function a(s,i,c,l){if(typeof s=="string"&&(s=VA(s)),typeof i=="string"&&(i=Ag(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,c){l=l||0;for(var p=0;p<16;++p)c[l+p]=d[p];return c}return Us(d)}try{a.name=e}catch{}return a.DNS=KA,a.URL=JA,a}function XA(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 ZA(QA(eP(e),e.length*8))}function ZA(e){for(var r=[],t=e.length*32,a="0123456789abcdef",s=0;s<t;s+=8){var i=e[s>>5]>>>s%32&255,c=parseInt(a.charAt(i>>>4&15)+a.charAt(i&15),16);r.push(c)}return r}function Dg(e){return(e+64>>>9<<4)+14+1}function QA(e,r){e[r>>5]|=128<<r%32,e[Dg(r)-1]=r;for(var t=1732584193,a=-271733879,s=-1732584194,i=271733878,c=0;c<e.length;c+=16){var l=t,d=a,p=s,g=i;t=Et(t,a,s,i,e[c],7,-680876936),i=Et(i,t,a,s,e[c+1],12,-389564586),s=Et(s,i,t,a,e[c+2],17,606105819),a=Et(a,s,i,t,e[c+3],22,-1044525330),t=Et(t,a,s,i,e[c+4],7,-176418897),i=Et(i,t,a,s,e[c+5],12,1200080426),s=Et(s,i,t,a,e[c+6],17,-1473231341),a=Et(a,s,i,t,e[c+7],22,-45705983),t=Et(t,a,s,i,e[c+8],7,1770035416),i=Et(i,t,a,s,e[c+9],12,-1958414417),s=Et(s,i,t,a,e[c+10],17,-42063),a=Et(a,s,i,t,e[c+11],22,-1990404162),t=Et(t,a,s,i,e[c+12],7,1804603682),i=Et(i,t,a,s,e[c+13],12,-40341101),s=Et(s,i,t,a,e[c+14],17,-1502002290),a=Et(a,s,i,t,e[c+15],22,1236535329),t=St(t,a,s,i,e[c+1],5,-165796510),i=St(i,t,a,s,e[c+6],9,-1069501632),s=St(s,i,t,a,e[c+11],14,643717713),a=St(a,s,i,t,e[c],20,-373897302),t=St(t,a,s,i,e[c+5],5,-701558691),i=St(i,t,a,s,e[c+10],9,38016083),s=St(s,i,t,a,e[c+15],14,-660478335),a=St(a,s,i,t,e[c+4],20,-405537848),t=St(t,a,s,i,e[c+9],5,568446438),i=St(i,t,a,s,e[c+14],9,-1019803690),s=St(s,i,t,a,e[c+3],14,-187363961),a=St(a,s,i,t,e[c+8],20,1163531501),t=St(t,a,s,i,e[c+13],5,-1444681467),i=St(i,t,a,s,e[c+2],9,-51403784),s=St(s,i,t,a,e[c+7],14,1735328473),a=St(a,s,i,t,e[c+12],20,-1926607734),t=wt(t,a,s,i,e[c+5],4,-378558),i=wt(i,t,a,s,e[c+8],11,-2022574463),s=wt(s,i,t,a,e[c+11],16,1839030562),a=wt(a,s,i,t,e[c+14],23,-35309556),t=wt(t,a,s,i,e[c+1],4,-1530992060),i=wt(i,t,a,s,e[c+4],11,1272893353),s=wt(s,i,t,a,e[c+7],16,-155497632),a=wt(a,s,i,t,e[c+10],23,-1094730640),t=wt(t,a,s,i,e[c+13],4,681279174),i=wt(i,t,a,s,e[c],11,-358537222),s=wt(s,i,t,a,e[c+3],16,-722521979),a=wt(a,s,i,t,e[c+6],23,76029189),t=wt(t,a,s,i,e[c+9],4,-640364487),i=wt(i,t,a,s,e[c+12],11,-421815835),s=wt(s,i,t,a,e[c+15],16,530742520),a=wt(a,s,i,t,e[c+2],23,-995338651),t=Tt(t,a,s,i,e[c],6,-198630844),i=Tt(i,t,a,s,e[c+7],10,1126891415),s=Tt(s,i,t,a,e[c+14],15,-1416354905),a=Tt(a,s,i,t,e[c+5],21,-57434055),t=Tt(t,a,s,i,e[c+12],6,1700485571),i=Tt(i,t,a,s,e[c+3],10,-1894986606),s=Tt(s,i,t,a,e[c+10],15,-1051523),a=Tt(a,s,i,t,e[c+1],21,-2054922799),t=Tt(t,a,s,i,e[c+8],6,1873313359),i=Tt(i,t,a,s,e[c+15],10,-30611744),s=Tt(s,i,t,a,e[c+6],15,-1560198380),a=Tt(a,s,i,t,e[c+13],21,1309151649),t=Tt(t,a,s,i,e[c+4],6,-145523070),i=Tt(i,t,a,s,e[c+11],10,-1120210379),s=Tt(s,i,t,a,e[c+2],15,718787259),a=Tt(a,s,i,t,e[c+9],21,-343485551),t=nn(t,l),a=nn(a,d),s=nn(s,p),i=nn(i,g)}return[t,a,s,i]}function eP(e){if(e.length===0)return[];for(var r=e.length*8,t=new Uint32Array(Dg(r)),a=0;a<r;a+=8)t[a>>5]|=(e[a/8]&255)<<a%32;return t}function nn(e,r){var t=(e&65535)+(r&65535),a=(e>>16)+(r>>16)+(t>>16);return a<<16|t&65535}function tP(e,r){return e<<r|e>>>32-r}function Hs(e,r,t,a,s,i){return nn(tP(nn(nn(r,e),nn(a,i)),s),t)}function Et(e,r,t,a,s,i,c){return Hs(r&t|~r&a,e,r,s,i,c)}function St(e,r,t,a,s,i,c){return Hs(r&a|t&~a,e,r,s,i,c)}function wt(e,r,t,a,s,i,c){return Hs(r^t^a,e,r,s,i,c)}function Tt(e,r,t,a,s,i,c){return Hs(t^(r|~a),e,r,s,i,c)}var rP=Pg("v3",48,XA);const nP=rP;function aP(e,r,t){e=e||{};var a=e.random||(e.rng||Og)();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 Us(a)}function oP(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 ku(e,r){return e<<r|e>>>32-r}function sP(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,c=Math.ceil(i/16),l=new Array(c),d=0;d<c;++d){for(var p=new Uint32Array(16),g=0;g<16;++g)p[g]=e[d*64+g*4]<<24|e[d*64+g*4+1]<<16|e[d*64+g*4+2]<<8|e[d*64+g*4+3];l[d]=p}l[c-1][14]=(e.length-1)*8/Math.pow(2,32),l[c-1][14]=Math.floor(l[c-1][14]),l[c-1][15]=(e.length-1)*8&4294967295;for(var m=0;m<c;++m){for(var b=new Uint32Array(80),E=0;E<16;++E)b[E]=l[m][E];for(var x=16;x<80;++x)b[x]=ku(b[x-3]^b[x-8]^b[x-14]^b[x-16],1);for(var C=t[0],I=t[1],P=t[2],k=t[3],M=t[4],j=0;j<80;++j){var O=Math.floor(j/20),Y=ku(C,5)+oP(O,I,P,k)+M+r[O]+b[j]>>>0;M=k,k=P,P=ku(I,30)>>>0,I=C,C=Y}t[0]=t[0]+C>>>0,t[1]=t[1]+I>>>0,t[2]=t[2]+P>>>0,t[3]=t[3]+k>>>0,t[4]=t[4]+M>>>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 iP=Pg("v5",80,sP);const uP=iP,cP="00000000-0000-0000-0000-000000000000";function lP(e){if(!Ws(e))throw TypeError("Invalid UUID");return parseInt(e.substr(14,1),16)}const fP=Object.freeze(Object.defineProperty({__proto__:null,NIL:cP,parse:Ag,stringify:Us,v1:YA,v3:nP,v4:aP,v5:uP,validate:Ws,version:lP},Symbol.toStringTag,{value:"Module"})),dP=fw(fP);function Wc(e,r){if(!e||!r||!e.length||!r.length)throw new Error("Bad alphabet");this.srcAlphabet=e,this.dstAlphabet=r}Wc.prototype.convert=function(e){var r,t,a,s={},i=this.srcAlphabet.length,c=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>=c?(s[a++]=parseInt(t/c,10),t=t%c):a>0&&(s[a++]=0);l=a,d=this.dstAlphabet.slice(t,t+1).concat(d)}while(a!==0);return d};Wc.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=Wc,hP=pP;function Ka(e,r){var t=new hP(e,r);return function(a){return t.convert(a)}}Ka.BIN="01";Ka.OCT="01234567";Ka.DEC="0123456789";Ka.HEX="0123456789abcdef";var gP=Ka;const{v4:Bu}=dP,Zo=gP,Wu="123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ",vP="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!#$%&'()*+-./:<=>?@[]^_`{|}~",mP={consistentLength:!0};let Uu;const kp=(e,r,t)=>{const a=r(e.toLowerCase().replace(/-/g,""));return!t||!t.consistentLength?a:a.padStart(t.shortIdLength,t.paddingChar)},yP=(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("-")},bP=e=>Math.ceil(Math.log(2**128)/Math.log(e));var Ss=(()=>{const e=(r,t)=>{const a=r||Wu,s={...mP,...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=bP(a.length),c={shortIdLength:i,consistentLength:s.consistentLength,paddingChar:a[0]},l=Zo(Zo.HEX,a),d=Zo(a,Zo.HEX),p=()=>kp(Bu(),l,c),g={new:p,generate:p,uuid:Bu,fromUUID:m=>kp(m,l,c),toUUID:m=>yP(m,d),alphabet:a,maxLength:i};return Object.freeze(g),g};return e.constants={flickrBase58:Wu,cookieBase90:vP},e.uuid=Bu,e.generate=()=>(Uu||(Uu=e(Wu).generate),Uu()),e})(),Ae=(e=>(e.DATACLASS="dataclass",e.METHOD="method",e.ATTRIBUTE="attribute",e.DATASTORE="datastore",e))(Ae||{});const _P=[Ae.DATASTORE,Ae.DATACLASS,Ae.ATTRIBUTE,Ae.METHOD],ws="guest",Uc=[{key:"read",label:"Read",canApplyTo:[Ae.DATASTORE,Ae.DATACLASS,Ae.ATTRIBUTE]},{key:"create",label:"Create",canApplyTo:[Ae.DATASTORE,Ae.DATACLASS,Ae.ATTRIBUTE]},{key:"update",label:"Update",canApplyTo:[Ae.DATASTORE,Ae.DATACLASS,Ae.ATTRIBUTE]},{key:"drop",label:"Delete",canApplyTo:[Ae.DATASTORE,Ae.DATACLASS,Ae.ATTRIBUTE]},{key:"describe",label:"Describe",canApplyTo:[Ae.DATASTORE,Ae.DATACLASS,Ae.ATTRIBUTE,Ae.METHOD]},{key:"execute",label:"Execute",canApplyTo:[Ae.DATASTORE,Ae.DATACLASS,Ae.METHOD]},{key:"promote",label:"Promote",canApplyTo:[Ae.METHOD]}];function ar(e,...r){return Array.from(new Set([...e,...r]))}function Ig(e){const r={},t=new Map;e.forEach(d=>{const p=d.id||Ss.generate();r[p]={...d,id:p,parents:[],includes:ar(d.includes||[]),resources:[]},t.set(d.privilege,p)}),Object.entries(r).forEach(([d,p])=>{const g=p.includes.map(m=>{const b=t.get(m);return b?(r[b].parents=ar(r[b].parents,b),b):""}).filter(Boolean);r[d]={...p,includes:g}});const a=Fg(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===ws))return r;const l=Ss.generate();return{[l]:{id:l,privilege:ws,includes:[],parents:[],resources:[]},...r}}function Fg(e){return Object.values(e).sort((r,t)=>r.parents.length-t.parents.length)}function qs(e,r){const t=r[e];let a=[];return t&&t.parents.forEach(s=>{a=ar(a,...qs(s,r),s)}),a}function Ts(e,r){const t=r[e];let a=[];return t&&t.includes.forEach(s=>{a=ar(a,...Ts(s,r),s)}),a}function EP(e,r){const t=r[e];if(!t)return[];const a=[e,...qs(e,r),...t.includes];return Object.keys(r).filter(s=>!a.includes(s))}function SP(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 wP(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 TP(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 $g(e,r){_.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=Ss.generate();return{[t]:{id:t,privilege:e,includes:[],parents:[],resources:[]},...r}}function xP(e,r,t,a,s){let i=$g(e,s);const c=Object.entries(i).find(([,l])=>l.privilege===e);return c?(i=jg(c[1].id,r,t,a,i),i):s}function CP(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 RP(e,r){return e.map(t=>Hr(t,r))}function Hr(e,r){return r[e]?r[e]:null}function Mg({applyTo:e,type:r,...t}){return Object.entries(t).reduce((a,[s,i])=>{const c=ze.find(Uc,["key",s]);return!c||!c.canApplyTo.includes(r)||(typeof i=="string"?i.split(","):i).forEach(d=>{a[d]=ar(a[d]||[],s)}),a},{})}const fc=(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 Hc(e){return{permissions:Uc.filter(({canApplyTo:r})=>r.includes(e.type)).map(({key:r,label:t})=>{const a={name:r,from:[]};switch(e.type){case Ae.DATASTORE:return{...a,info:fc(t,!0)};case Ae.DATACLASS:return{...a,info:fc(t)};default:return a}}),resource:e.applyTo,type:e.type}}function Ng(e,r){const t=Lg(r),a={};return e.filter(({type:s})=>_P.includes(s)).forEach(s=>{const i=Mg(s);Object.entries(i).forEach(([c,l])=>{var g;const d=(g=t[c])==null?void 0:g.id;if(!d)return;a[d]=a[d]||{...r[d]};let p=ze.find(a[d].resources,{resource:s.applyTo,type:s.type});p||(p=Hc(s),a[d].resources.push(p)),p.permissions=p.permissions.map(m=>({...m,checked:m.checked||l.includes(m.name)}))})}),{...r,...a}}function Lg(e){return Object.values(e).reduce((r,t)=>({...r,[t.privilege]:t}),{})}function Gs(e){var t;const r=Ig(e.privileges||[]);return{privileges:Ng(((t=e.permissions)==null?void 0:t.allowed)||[],r),roles:(e.roles||[]).map(({id:a=Ss.generate(),role:s,privileges:i=[]})=>({id:a,role:s,privileges:ar(i).map(c=>{var l;return(l=Object.values(r).find(({privilege:d})=>d===c))==null?void 0:l.id}).filter(Boolean)})).reduce((a,s)=>({...a,[s.id]:{...s}}),{})}}function qc(e){const r=Object.values(e.privileges).filter(({includes:a})=>a.length===0).map(({id:a})=>a),t=[...r,...r.map(a=>qs(a,e.privileges).reverse())].flat().filter((a,s,i)=>i.indexOf(a)===s).map(a=>e.privileges[a]);return{permissions:{allowed:Object.values(e.privileges).reduce((a,s)=>(s.resources.forEach(({permissions:i,resource:c,type:l})=>{let d=ze.find(a,{applyTo:c,type:l});d||(d={applyTo:c,type:l},a.push(d)),i.forEach(({name:p,checked:g})=>{g&&d&&(d[p]=d[p]||[],d[p].push(s.privilege))})}),a),[])},privileges:t.filter(({privilege:a})=>a!==ws).map(({id:a,includes:s,privilege:i})=>({id:a,privilege:i,includes:s.map(c=>e.privileges[c].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 OP(e,r){const t=r[e],a={children:[],links:[],parents:[],selected:e};if(!t)return a;function s(l,d,p=[]){const g=l.reduce((m,b)=>[...m,...r[b][d]],[]);return g.length===0?p:(p.push(g),s(g,d,p))}function i(l){const d=[],p=[];for(let g=l.length-1;g>=0;g-=1){const m=l[g].filter(b=>d.includes(b)?!1:(d.push(b),!0));m.length>0&&p.unshift(ar(m))}return p}function c(l,d){const p=[];return l.reduce((g,m)=>(m.forEach(b=>{r[b][d==="parents"?"includes":"parents"].forEach(x=>{p.includes(x)&&g.push(d==="parents"?{source:b,target:x}:{source:x,target:b})}),p.push(b)}),g),[])}return a.children=s([e],"includes"),a.children=i(a.children),a.parents=s([e],"parents"),a.parents=i(a.parents),a.links=[...c([[e],...a.parents],"parents"),...c([[e],...a.children],"includes")],a}function AP(e,r,t){const a=Hr(e,t);if(!a||ze.find(a.resources,{resource:r.applyTo,type:r.type}))return t;const s={...a,resources:[...a.resources,Hc(r)]};return{...t,[e]:s}}function PP(e,r,t){const a=Hr(e,t);if(!a)return t;const s={...a,resources:a.resources.filter(({resource:i,type:c})=>i!==r.applyTo||c!==r.type)};return{...t,[e]:s}}function DP(e,r){const t=Hr(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 jg(e,r,t,a,s){const i=Hr(e,s);if(!i)return s;const l=ze.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:Uc.filter(d=>d.canApplyTo.includes(t)).map(d=>({from:[],name:d.key,checked:d.key===a,info:fc(d.key,t===Ae.DATASTORE)}))}]};return{...s,[e]:l}}function IP(e,r,t,a){const s=Hr(e,a);if(!s)return a;const c=ze.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]:c}}function FP(e,r){var d;const t=kg(e,r)||[],a=((d=Hr(e,r))==null?void 0:d.resources)||[],c=([...t,...a].filter(({type:p})=>p===Ae.METHOD)||[]).map(({resource:p})=>p);return Object.entries(r).reduce((p,[g,{resources:m}])=>(m.filter(({resource:b,type:E})=>E===Ae.METHOD&&c.includes(b)).forEach(({permissions:b,resource:E})=>{var C;((C=b.find(({name:I})=>I==="promote"))==null?void 0:C.checked)&&(p[E]=ar(p[E]||[],g))}),p),{})}function kg(e,r){var c;const t=Hr(e,r);if(!t)return[];const a=(c=Object.values(r).find(l=>l.privilege===ws))==null?void 0:c.id;return(a&&a!==e?ar(Ts(e,r),a):Ts(e,r)).reduce((l,d)=>(r[d].resources.forEach(g=>{if(g.permissions.filter(({checked:E})=>E).length===0)return;const b=ze.find(l,{type:g.type,resource:g.resource});if(!b){l.push({...g,permissions:g.permissions.map(E=>({...E,from:E.checked?[d]:[],checked:!1}))});return}b.permissions=b.permissions.map((E,x)=>{let{from:C=[]}=E;return g.permissions[x].checked&&!C.includes(d)&&(C=[...C,d]),{...E,from:C,checked:E.checked}})}),l),ze.clone(t.resources.map(l=>({...l,permissions:l.permissions.map(({checked:d,...p})=>({...p,checked:!!d}))}))))}const $P=e=>e.reduce((r,t)=>({...r,[t.id]:{...t}}),{}),MP=(e,r)=>r[e]?Object.values(r).reduce((t,a)=>e===a.id||a.role===""?t:{...t,[a.id]:a},{}):r,NP=(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,LP=(e,r)=>{const t={id:e,role:"",privileges:[]};return{...r,[t.id]:t}},jP=(e,r)=>{if(_.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},{})},kP={list:[]},Bp=(e,r)=>e.list.filter(t=>t.id!==r),Bg=or({name:"modals",initialState:kP,reducers:{createModal:(e,r)=>{e.list.push(r.payload)},editModal:(e,r)=>{const{id:t,...a}=r.payload,s=e.list.find(_.byId(t));s&&Object.assign(s,{...a})},removeModal:(e,r)=>{const t=r.payload;e.list=Bp(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=Bp(e,t)}}}),{createModal:Wg,removeModal:Ug,closeModal:BP,editModal:WP}=Bg.actions;var Hg={color:void 0,size:void 0,className:void 0,style:void 0,attr:void 0},Wp=Ke.createContext&&Ke.createContext(Hg),sn=globalThis&&globalThis.__assign||function(){return sn=Object.assign||function(e){for(var r,t=1,a=arguments.length;t<a;t++){r=arguments[t];for(var s in r)Object.prototype.hasOwnProperty.call(r,s)&&(e[s]=r[s])}return e},sn.apply(this,arguments)},UP=globalThis&&globalThis.__rest||function(e,r){var t={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&r.indexOf(a)<0&&(t[a]=e[a]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var s=0,a=Object.getOwnPropertySymbols(e);s<a.length;s++)r.indexOf(a[s])<0&&Object.prototype.propertyIsEnumerable.call(e,a[s])&&(t[a[s]]=e[a[s]]);return t};function qg(e){return e&&e.map(function(r,t){return Ke.createElement(r.tag,sn({key:t},r.attr),qg(r.child))})}function zs(e){return function(r){return Ke.createElement(HP,sn({attr:sn({},e.attr)},r),qg(e.child))}}function HP(e){var r=function(t){var a=e.attr,s=e.size,i=e.title,c=UP(e,["attr","size","title"]),l=s||t.size||"1em",d;return t.className&&(d=t.className),e.className&&(d=(d?d+" ":"")+e.className),Ke.createElement("svg",sn({stroke:"currentColor",fill:"currentColor",strokeWidth:"0"},t.attr,a,c,{className:d,style:sn(sn({color:e.color||t.color},t.style),e.style),height:l,width:l,xmlns:"http://www.w3.org/2000/svg"}),i&&Ke.createElement("title",null,i),e.children)};return Wp!==void 0?Ke.createElement(Wp.Consumer,null,function(t){return r(t)}):r(Hg)}function qP(e){return zs({tag:"svg",attr:{viewBox:"0 0 448 512"},child:[{tag:"path",attr:{d:"M433.941 129.941l-83.882-83.882A48 48 0 0 0 316.118 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V163.882a48 48 0 0 0-14.059-33.941zM224 416c-35.346 0-64-28.654-64-64 0-35.346 28.654-64 64-64s64 28.654 64 64c0 35.346-28.654 64-64 64zm96-304.52V212c0 6.627-5.373 12-12 12H76c-6.627 0-12-5.373-12-12V108c0-6.627 5.373-12 12-12h228.52c3.183 0 6.235 1.264 8.485 3.515l3.48 3.48A11.996 11.996 0 0 1 320 111.48z"}}]})(e)}function GP(e){return zs({tag:"svg",attr:{fill:"currentColor",viewBox:"0 0 16 16"},child:[{tag:"path",attr:{d:"M8 16A8 8 0 1 0 8 0a8 8 0 0 0 0 16zm.93-9.412-1 4.705c-.07.34.029.533.304.533.194 0 .487-.07.686-.246l-.088.416c-.287.346-.92.598-1.465.598-.703 0-1.002-.422-.808-1.319l.738-3.468c.064-.293.006-.399-.287-.47l-.451-.081.082-.381 2.29-.287zM8 5.5a1 1 0 1 1 0-2 1 1 0 0 1 0 2z"}}]})(e)}function zP(e){return zs({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{d:"M11.953 2C6.465 2 2 6.486 2 12s4.486 10 10 10 10-4.486 10-10S17.493 2 11.953 2zM12 20c-4.411 0-8-3.589-8-8s3.567-8 7.953-8C16.391 4 20 7.589 20 12s-3.589 8-8 8z"}},{tag:"path",attr:{d:"M11 7h2v7h-2zm0 8h2v2h-2z"}}]})(e)}function YP(e){return zs({tag:"svg",attr:{viewBox:"0 0 1024 1024"},child:[{tag:"path",attr:{d:"M955.7 856l-416-720c-6.2-10.7-16.9-16-27.7-16s-21.6 5.3-27.7 16l-416 720C56 877.4 71.4 904 96 904h832c24.6 0 40-26.6 27.7-48zM480 416c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v184c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V416zm32 352a48.01 48.01 0 0 1 0-96 48.01 48.01 0 0 1 0 96z"}}]})(e)}const VP={FaSave:qP,AiFillWarning:YP,BiErrorCircle:zP,BsFillInfoCircleFill:GP};var zt=(e=>(e.ALERT="alert",e.CONFIRM="confirm",e))(zt||{}),qr=(e=>(e.PRIMARY="primary",e.WARNING="warning",e.DANGER="danger",e))(qr||{}),Gc=(e=>(e.CONFIRMED="confirmed",e.CANCELED="canceled",e))(Gc||{});const vr=Q("modals/open",async(e,{dispatch:r})=>{const{type:t=zt.ALERT,store:a=ra}=e,s=xc();switch(r(Wg({id:s,type:t,isOpen:!0,...e})),t){case zt.CONFIRM:return new Promise(i=>{const c=a.subscribe(()=>{var p;const{modals:l}=a.getState(),d=l.list.find(g=>g.id===s);if(d&&!d.isOpen){const g=d.closeReason===Gc.CONFIRMED,m=ze.entries((p=d.views)==null?void 0:p.toggles).reduce((b,E)=>({...b,[E[0]]:E[1].value}),{});r(Ug(s)),c(),i({confirmed:g,options:m})}})});default:return{}}}),Gg=()=>_.getFileContent({name:_.ROLES_TAB_PATH}),zg="Roles & Privileges",xs=Q("roles/fetchRoles",async(e,{dispatch:r,rejectWithValue:t})=>{var i;let a;try{a=await Gg()}catch(c){if(!Array.isArray((i=c==null?void 0:c.data)==null?void 0:i.__ERROR))return t("Error while loading the roles");a={name:_.ROLES_TAB_PATH,date:new Date().toISOString(),content:{permissions:{allowed:[]},privileges:[],roles:[]}}}const s={name:zg,type:_.FileFolderType.ROLES,date:a.date,view:{panel:{isOpen:!1,type:"",current:""}},path:_.ROLES_TAB_PATH,flags:{},content:{}};return r(Dt(s)),{...a,content:Gs(a.content)}}),Yg=Q("roles/fetchRolesChanges",async(e,{getState:r})=>{const{tabs:t}=r().root;if(t.find(s=>s.path===_.ROLES_TAB_PATH)){const{date:s}=r().roles;if(s&&await zc(s))return{old:!0}}return{}}),zc=async e=>{if(!e)return!1;try{const r=await Gg();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},dc=Q("roles/saveRoles",async(e,{getState:r,rejectWithValue:t,dispatch:a})=>{try{const{flags:s,date:i}=r().roles;if(s.old||await zc(i)){const{confirmed:d}=await a(vr({title:zg,message:"New content has been found on the server. Are you sure you want to continue?",type:zt.CONFIRM,icon:"FaSave"})).unwrap();if(!d)return t({old:!0})}return await _.setFileContent({name:_.ROLES_TAB_PATH,content:qc(e)})}catch{return t("Error while loading the roles")}}),KP=na().roles,{roles:JP={},privileges:XP={},flags:ZP={touched:!1},date:QP,selectedTab:eD="roles"}=KP||{},tD={flags:ZP,roles:JP,privileges:XP,date:QP,selectedTab:eD},Vg=or({name:"roles",initialState:tD,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},setRolesContent(e,r){const{content:t,date:a}=r.payload,s=Gs(t);return{...e,...s,date:a}}},extraReducers(e){e.addCase(xs.fulfilled,(r,t)=>{const{content:a,date:s}=t.payload;r={...r,...a,date:s}}).addCase(xs.rejected,r=>({...r,roles:{},privileges:{},flags:{touched:!1},date:void 0})).addCase(dc.fulfilled,(r,t)=>({...r,flags:{...r.flags,touched:!1,old:!1},date:t.payload.date})).addCase(dc.rejected,(r,t)=>Ph.isString(t.payload)?r:{...r,flags:{...r.flags,...t.payload}}).addCase(Yg.fulfilled,(r,t)=>({...r,flags:{...r.flags,...t.payload}})).addCase(Qn.fulfilled,(r,t)=>{!t.payload||t.payload.path!==_.ROLES_TAB_PATH||(r.flags.touched=!1,r.flags.old=!1)}).addCase(Qc.fulfilled,(r,t)=>{t.meta.arg!==_.ROLES_TAB_PATH||!t.payload||(r.flags.touched=!1,r.flags.old=!1)})}}),{updatePrivileges:Kg,updateRoles:Jg,setRolesContent:Yc,toggleTab:rD,updateRolesAndPrivileges:Vc}=Vg.actions,nD=Vg.reducer,cn="qodlyApp.json",Kc=Q("settings/fetch",async()=>await _.getNodeInfo({verb:_.DesignerRequestVerb.GET_INFO,path:cn,content:!0,as:"json"})),Xg=Q("settings/app",_.getAppSettings),aD=wh(),Up={session:{"studio.tips":!0,"studio.notifications":!0,"webforms.tooltip.behavior":Bc.SHOW_AFTER_TIMEOUT,"webforms.tooltip.timeout":3e3,"webforms.renderer.showPopOver":!0,"welcometour.active":!0,"webforms.properties.advanced-mode":!1,"monaco.zoom":0},project:{"webforms.renderer.indexPage":"","webforms.display-mode":"neutral"},server:{projectOpened:!1,remoteDebuggerMode:_.RemoteDebuggerMode.DISABLED,baseUrl:"",qodly:!0,urls:{renderer:"/$lib/renderer/",debugger:"",lsp:""},isRestActive:!0}},oD={...Up,session:{...Up.session,...aD},welcometour:{}},Zg=or({name:"settings",initialState:oD,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(Kc.fulfilled,(r,t)=>{r.project={...r.project,...t.payload.content}}),e.addCase(Xg.fulfilled,(r,t)=>{r.server=t.payload,r.server.qodly&&(r.project["webforms.display-mode"]="airy")})}}),{setSetting:Qg,setSettings:Ys,setSettingsAsText:sD}=Zg.actions,iD=Zg.reducer,pc=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))},Re=(e,r)=>e.reduce((t,a)=>a.path===r.path&&a.type===r.type?[...t,r]:a.children?[...t,{...a,children:pc(Re(a.children,r))}]:[...t,a],[]),ft=(e,r)=>e.reduce((t,a)=>t||(a.path===r?a:a.children?ft(a.children,r):null),null),uD=[{name:_.FolderRootPath.WEBFORMS,type:_.FileFolderType.FOLDER,children:[],path:_.FolderRootPath.WEBFORMS,error:null,flags:{expanded:!1,loading:!1,cached:!1},tipKey:"editors:webform:explorer:webforms",config:{},isRoot:!0},{name:_.FolderRootPath.METHODS,type:_.FileFolderType.FOLDER,children:[],path:_.FolderRootPath.METHODS,error:null,flags:{expanded:!1,loading:!1,cached:!1},config:{},isRoot:!0},{name:_.FolderRootPath.CLASSES,type:_.FileFolderType.FOLDER,children:[],path:_.FolderRootPath.CLASSES,error:null,flags:{expanded:!1,loading:!1,cached:!1},config:{},isRoot:!0},{name:_.FolderRootPath.SHARED,type:_.FileFolderType.FOLDER,children:[],path:_.FolderRootPath.SHARED,error:null,flags:{expanded:!1,loading:!1,cached:!1},config:{},isRoot:!0},{name:"Debugger",type:_.FileFolderType.FOLDER,children:[],path:"Debugger",error:null,flags:{expanded:!1,cached:!0},config:{},isRoot:!0},{name:"Roles And Privileges",type:_.FileFolderType.FILE,ext:"json",path:"roles",error:null,flags:{},config:{editor:{key:"editors:roles"},supportedEditors:[{key:"editors:code",config:{language:"json",theme:"vs-dark"}}]},isRoot:!0},{name:"Model",type:_.FileFolderType.MODEL,ext:"4DModel",path:"model",error:null,flags:{},config:{editor:{key:"editors:model"},supportedEditors:[{key:"editors:code",config:{language:"json",theme:"vs-dark"}}]}},{name:"Settings",type:_.FileFolderType.FILE,ext:"json",path:"qodlyApp",error:null,flags:{},config:{editor:{key:"editors:settings"}},isRoot:!0}],ev=or({name:"explorer",initialState:uD,reducers:{toggleExpandFolder:(e,r)=>(e=Re(e,{...r.payload,flags:{...r.payload.flags,expanded:!r.payload.flags.expanded}}),e),expandFolder:(e,r)=>(e=Re(e,{...r.payload,flags:{...r.payload.flags,expanded:!0}}),e),openAddFileInput:(e,r)=>Re(e,{...r.payload,flags:{...r.payload.flags,adding:!0}}),addNewFile:(e,r)=>{const{parent:t,child:a}=r.payload;return Re(e,{...t,children:[a,...t.children||[]]})},removeFile:(e,r)=>{const{parent:t,child:a}=r.payload;return Re(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 Re(e,{...t,children:[a,...s]})},setFolderChildren:(e,r)=>{const t=ft(e,r.payload.parentPath);return t?Re(e,{...t,children:r.payload.children}):e}},extraReducers:e=>{e.addCase(Zn.pending,(r,t)=>{const{file:a,newname:s}=t.meta.arg,i=ft(r,a.path);if(!i)return r;const c=a.path.split("/");c.pop();const l=`${c.join("/")}/${a.name}.${a.ext}`,d=`${c.join("/")}/${s}.${a.ext}`;switch(a.ext){case"4dm":case"4qs":_.lspSubject.next({action:_.LspActions.WILL_RENAME,payload:{oldPath:l,newPath:d}});break}return Re(r,{...i,flags:{...i.flags,loading:!0}})}),e.addCase(Zn.fulfilled,(r,t)=>{const{meta:{arg:{file:a}},payload:s}=t,i=ft(r,a.path);if(!i)return r;switch(s.old.ext){case"4dm":case"4qs":_.lspSubject.next({action:_.LspActions.DID_RENAME,payload:{oldPath:s.old.path,newPath:s.new.path}});break}return Re(r,{...i,flags:{...i.flags,loading:!1}})}),e.addCase(Zn.rejected,(r,t)=>{const{file:a}=t.meta.arg,s=ft(r,a.path);return s?Re(r,{...s,flags:{...s.flags,loading:!1}}):r}),e.addCase(Sr.pending,(r,t)=>{const a=t.meta.arg,s=ft(r,a);return s?Re(r,{...s,flags:{...s.flags,loading:!0}}):r}),e.addCase(Sr.fulfilled,(r,t)=>{const a=t.meta.arg,s=ft(r,a);return s?Re(r,{...s,children:pc(t.payload),flags:{...s.flags,loading:!1,cached:!0,expanded:!0},error:null}):r}),e.addCase(Sr.rejected,(r,t)=>{const a=t.meta.arg,s=ft(r,a);return s?Re(r,{...s,error:{message:t.payload},flags:{...s.flags,loading:!1,cached:!0,expanded:!0}}):r}),e.addCase($a.pending,(r,t)=>{const a=t.meta.arg,s=ft(r,a);return s?Re(r,{...s,flags:{...s.flags,loading:!0}}):r}),e.addCase($a.fulfilled,(r,t)=>{const a=t.meta.arg,s=ft(r,a);return s?Re(r,{...s,children:pc(t.payload),flags:{...s.flags,loading:!1,cached:!0,expanded:!1},error:null}):r}),e.addCase($a.rejected,(r,t)=>{const a=t.meta.arg,s=ft(r,a);return s?Re(r,{...s,error:{message:t.payload},flags:{...s.flags,loading:!1,cached:!0,expanded:!1}}):r}),e.addCase(as.pending,(r,t)=>{const{fileName:a,parentNode:s,path:i,type:c}=t.meta.arg;return Re(r,{...s,children:[{name:a,path:`${i}/${a}`,type:c,error:null,flags:{loading:!0},config:{}},...s.children]})}),e.addCase(as.fulfilled,(r,t)=>{const{path:a,fileName:s,type:i}=t.meta.arg,c=_.getFileExtentionFromType(i),{editor:l,supportedEditors:d}=hr(`${a}${c?`.${c.toLowerCase()}`:""}`);return Re(r,{name:s,path:`${a}/${s}`,type:i,error:null,flags:{loading:!1},config:{editor:l,supportedEditors:d}})}),e.addCase(as.rejected,(r,t)=>{const{path:a,fileName:s,type:i}=t.meta.arg;return Re(r,{name:s,path:`${a}/${s}`,type:i,error:{message:t.payload},flags:{loading:!1},config:{}})}),e.addCase(os.pending,(r,t)=>{const{node:a,parentNode:s}=t.meta.arg;return Re(r,{...s,children:[{name:`${a.name}_copy`,path:`${a.path}/${a.name}_copy`,type:a.type,error:null,flags:{loading:!0},permissions:{canRename:!0,canDelete:!0}},...s.children]})}),e.addCase(os.fulfilled,(r,t)=>{const{node:a}=t.payload,{node:{path:s,ext:i}}=t.meta.arg,{editor:c,supportedEditors:l}=hr(`${s}${i?`.${i.toLowerCase()}`:""}`);return Re(r,{name:`${a.name}`,path:`${s}/${a.name}`,type:a.type,error:null,flags:{loading:!1},config:{editor:c,supportedEditors:l}})}),e.addCase(os.rejected,(r,t)=>{const a=t.payload,{node:s}=t.meta.arg;return Re(r,{name:`${s.name}_copy`,path:`${s.path}/${s.name}_copy`,type:s.type,error:{message:a},flags:{loading:!1},config:{}})}),e.addCase(Na.pending,(r,t)=>{}),e.addCase(Na.fulfilled,(r,t)=>{var m;const{draggedNode:a,newLocation:s}=t.meta.arg,i=ng(a.path),c=ft(r,i),l=ft(r,s.path),d=(m=c==null?void 0:c.children)==null?void 0:m.filter(b=>b.path!==a.path),p=s.path.split("/").length,g=a.path.split("/").length;return p>=g?(r=Re(r,{...c,children:d}),r=Re(r,{...l,children:[{...a,path:`${l.path}/${a.name}`},...l!=null&&l.children?l==null?void 0:l.children:[]],flags:{...l.flags,expanded:!0}})):(r=Re(r,{...l,children:[{...a,path:`${l.path}/${a.name}`},...l!=null&&l.children?l==null?void 0:l.children:[]],flags:{...l.flags,expanded:!0}}),r=Re(r,{...c,children:d})),r}),e.addCase(Na.rejected,(r,t)=>{_.toastSubject.next({message:"Error moving file",kind:"danger"})}),e.addCase(Xn.pending,(r,t)=>{var C;const{fileName:a,parentNode:s,path:i,type:c,qodly:l}=t.meta.arg,d=_.getFileExtentionFromType(c,l),p=`${i}/${a}${d?`.${d.toLowerCase()}`:""}`,{editor:g,supportedEditors:m}=hr(p);switch(c){case _.FileFolderType.CLASS:case _.FileFolderType.METHOD:_.lspSubject.next({action:_.LspActions.WILL_CREATE,payload:{filePath:p}});break}const b=(C=s.children)==null?void 0:C.filter(I=>I.path!==`${i}/${a}`),E=[{name:a,path:`${i}/${a}`,type:_.FileFolderType.FILE,error:null,flags:{loading:!0},config:{editor:g,supportedEditors:m},ext:d,date:new Date().toISOString()},...b],x=Re(r,{...s,children:E});return Ph.merge(r,x)}),e.addCase(Xn.fulfilled,(r,t)=>{const{fileName:a,path:s,type:i,qodly:c}=t.meta.arg,l=_.getFileExtentionFromType(i,c),d=`${s}/${a}${l?`.${l.toLowerCase()}`:""}`,{editor:p,supportedEditors:g}=hr(d),m=Re(r,{name:a,path:`${s}/${a}`,type:_.FileFolderType.FILE,error:null,flags:{},config:{editor:p,supportedEditors:g},ext:l,date:new Date().toISOString()});switch(i){case _.FileFolderType.CLASS:case _.FileFolderType.METHOD:_.lspSubject.next({action:_.LspActions.DID_CREATE,payload:{filePath:d}});break}return r=m,r}),e.addCase(Xn.rejected,(r,t)=>{const{fileName:a,path:s,type:i}=t.meta.arg,c=_.getFileExtentionFromType(i),{editor:l,supportedEditors:d}=hr(`${s}${c?`.${c.toLowerCase()}`:""}`);return r=Re(r,{name:a,path:`${s}/${a}`,type:_.FileFolderType.FILE,error:{message:"Failed creating file"},flags:{},config:{editor:l,supportedEditors:d},ext:c,date:new Date().toISOString()}),r}),e.addMatcher(dh(Ma),(r,t)=>{const a=ft(r,t.meta.arg.file.path.split(".")[0]);return a&&(r=Re(r,{...a,flags:{...a.flags,loading:!0}})),r}),e.addMatcher(hh(Ma),(r,t)=>{const a=ft(r,t.meta.arg.file.path.split(".")[0]);return a&&(r=Re(r,{...a,flags:{...a.flags,loading:!1}})),r}),e.addMatcher(ph(Ma),(r,t)=>{const a=ft(r,t.meta.arg.file.path.split(".")[0]);return a&&(r=Re(r,{...a,flags:{...a.flags,loading:!1}})),_.toastSubject.next({message:"Failed to open file, try again",kind:"danger"}),r})}}),{toggleExpandFolder:cD,expandFolder:lD,openAddFileInput:fD,addNewFile:tv,refreshFile:dD,removeFile:hc,setFolderChildren:pD}=ev.actions;function rv(e){switch(e){case _.FileFolderType.WEBFORMS:return Rg;case _.FileFolderType.METHODS:return`//%attributes = {}
|
|
90
|
+
`):"",this.name="UnsubscriptionError",this.errors=t}});function uc(e,r){if(e){var t=e.indexOf(r);0<=t&&e.splice(t,1)}}var ks=function(){function e(r){this.initialTeardown=r,this.closed=!1,this._parentage=null,this._finalizers=null}return e.prototype.unsubscribe=function(){var r,t,a,s,i;if(!this.closed){this.closed=!0;var c=this._parentage;if(c)if(this._parentage=null,Array.isArray(c))try{for(var l=ic(c),d=l.next();!d.done;d=l.next()){var p=d.value;p.remove(this)}}catch(C){r={error:C}}finally{try{d&&!d.done&&(t=l.return)&&t.call(l)}finally{if(r)throw r.error}}else c.remove(this);var g=this.initialTeardown;if(Lr(g))try{g()}catch(C){i=C instanceof Fu?C.errors:[C]}var m=this._finalizers;if(m){this._finalizers=null;try{for(var b=ic(m),E=b.next();!E.done;E=b.next()){var x=E.value;try{Fp(x)}catch(C){i=i??[],C instanceof Fu?i=Es(Es([],_s(i)),_s(C.errors)):i.push(C)}}}catch(C){a={error:C}}finally{try{E&&!E.done&&(s=b.return)&&s.call(b)}finally{if(a)throw a.error}}}if(i)throw new Fu(i)}},e.prototype.add=function(r){var t;if(r&&r!==this)if(this.closed)Fp(r);else{if(r instanceof e){if(r.closed||r._hasParent(this))return;r._addParent(this)}(this._finalizers=(t=this._finalizers)!==null&&t!==void 0?t:[]).push(r)}},e.prototype._hasParent=function(r){var t=this._parentage;return t===r||Array.isArray(t)&&t.includes(r)},e.prototype._addParent=function(r){var t=this._parentage;this._parentage=Array.isArray(t)?(t.push(r),t):t?[t,r]:r},e.prototype._removeParent=function(r){var t=this._parentage;t===r?this._parentage=null:Array.isArray(t)&&uc(t,r)},e.prototype.remove=function(r){var t=this._finalizers;t&&uc(t,r),r instanceof e&&r._removeParent(this)},e.EMPTY=function(){var r=new e;return r.closed=!0,r}(),e}(),sg=ks.EMPTY;function ig(e){return e instanceof ks||e&&"closed"in e&&Lr(e.remove)&&Lr(e.add)&&Lr(e.unsubscribe)}function Fp(e){Lr(e)?e():e.unsubscribe()}var ug={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1},cc={setTimeout:function(e,r){for(var t=[],a=2;a<arguments.length;a++)t[a-2]=arguments[a];var s=cc.delegate;return s!=null&&s.setTimeout?s.setTimeout.apply(s,Es([e,r],_s(t))):setTimeout.apply(void 0,Es([e,r],_s(t)))},clearTimeout:function(e){var r=cc.delegate;return((r==null?void 0:r.clearTimeout)||clearTimeout)(e)},delegate:void 0};function SO(e){cc.setTimeout(function(){throw e})}function $p(){}function ns(e){e()}var cg=function(e){js(r,e);function r(t){var a=e.call(this)||this;return a.isStopped=!1,t?(a.destination=t,ig(t)&&t.add(a)):a.destination=CO,a}return r.create=function(t,a,s){return new lc(t,a,s)},r.prototype.next=function(t){this.isStopped||this._next(t)},r.prototype.error=function(t){this.isStopped||(this.isStopped=!0,this._error(t))},r.prototype.complete=function(){this.isStopped||(this.isStopped=!0,this._complete())},r.prototype.unsubscribe=function(){this.closed||(this.isStopped=!0,e.prototype.unsubscribe.call(this),this.destination=null)},r.prototype._next=function(t){this.destination.next(t)},r.prototype._error=function(t){try{this.destination.error(t)}finally{this.unsubscribe()}},r.prototype._complete=function(){try{this.destination.complete()}finally{this.unsubscribe()}},r}(ks),wO=Function.prototype.bind;function $u(e,r){return wO.call(e,r)}var TO=function(){function e(r){this.partialObserver=r}return e.prototype.next=function(r){var t=this.partialObserver;if(t.next)try{t.next(r)}catch(a){Jo(a)}},e.prototype.error=function(r){var t=this.partialObserver;if(t.error)try{t.error(r)}catch(a){Jo(a)}else Jo(r)},e.prototype.complete=function(){var r=this.partialObserver;if(r.complete)try{r.complete()}catch(t){Jo(t)}},e}(),lc=function(e){js(r,e);function r(t,a,s){var i=e.call(this)||this,c;if(Lr(t)||!t)c={next:t??void 0,error:a??void 0,complete:s??void 0};else{var l;i&&ug.useDeprecatedNextContext?(l=Object.create(t),l.unsubscribe=function(){return i.unsubscribe()},c={next:t.next&&$u(t.next,l),error:t.error&&$u(t.error,l),complete:t.complete&&$u(t.complete,l)}):c=t}return i.destination=new TO(c),i}return r}(cg);function Jo(e){SO(e)}function xO(e){throw e}var CO={closed:!0,next:$p,error:xO,complete:$p},RO=function(){return typeof Symbol=="function"&&Symbol.observable||"@@observable"}();function OO(e){return e}function AO(e){return e.length===0?OO:e.length===1?e[0]:function(t){return e.reduce(function(a,s){return s(a)},t)}}var Mp=function(){function e(r){r&&(this._subscribe=r)}return e.prototype.lift=function(r){var t=new e;return t.source=this,t.operator=r,t},e.prototype.subscribe=function(r,t,a){var s=this,i=DO(r)?r:new lc(r,t,a);return ns(function(){var c=s,l=c.operator,d=c.source;i.add(l?l.call(i,d):d?s._subscribe(i):s._trySubscribe(i))}),i},e.prototype._trySubscribe=function(r){try{return this._subscribe(r)}catch(t){r.error(t)}},e.prototype.forEach=function(r,t){var a=this;return t=Np(t),new t(function(s,i){var c=new lc({next:function(l){try{r(l)}catch(d){i(d),c.unsubscribe()}},error:i,complete:s});a.subscribe(c)})},e.prototype._subscribe=function(r){var t;return(t=this.source)===null||t===void 0?void 0:t.subscribe(r)},e.prototype[RO]=function(){return this},e.prototype.pipe=function(){for(var r=[],t=0;t<arguments.length;t++)r[t]=arguments[t];return AO(r)(this)},e.prototype.toPromise=function(r){var t=this;return r=Np(r),new r(function(a,s){var i;t.subscribe(function(c){return i=c},function(c){return s(c)},function(){return a(i)})})},e.create=function(r){return new e(r)},e}();function Np(e){var r;return(r=e??ug.Promise)!==null&&r!==void 0?r:Promise}function PO(e){return e&&Lr(e.next)&&Lr(e.error)&&Lr(e.complete)}function DO(e){return e&&e instanceof cg||PO(e)&&ig(e)}var IO=og(function(e){return function(){e(this),this.name="ObjectUnsubscribedError",this.message="object unsubscribed"}}),lg=function(e){js(r,e);function r(){var t=e.call(this)||this;return t.closed=!1,t.currentObservers=null,t.observers=[],t.isStopped=!1,t.hasError=!1,t.thrownError=null,t}return r.prototype.lift=function(t){var a=new Lp(this,this);return a.operator=t,a},r.prototype._throwIfClosed=function(){if(this.closed)throw new IO},r.prototype.next=function(t){var a=this;ns(function(){var s,i;if(a._throwIfClosed(),!a.isStopped){a.currentObservers||(a.currentObservers=Array.from(a.observers));try{for(var c=ic(a.currentObservers),l=c.next();!l.done;l=c.next()){var d=l.value;d.next(t)}}catch(p){s={error:p}}finally{try{l&&!l.done&&(i=c.return)&&i.call(c)}finally{if(s)throw s.error}}}})},r.prototype.error=function(t){var a=this;ns(function(){if(a._throwIfClosed(),!a.isStopped){a.hasError=a.isStopped=!0,a.thrownError=t;for(var s=a.observers;s.length;)s.shift().error(t)}})},r.prototype.complete=function(){var t=this;ns(function(){if(t._throwIfClosed(),!t.isStopped){t.isStopped=!0;for(var a=t.observers;a.length;)a.shift().complete()}})},r.prototype.unsubscribe=function(){this.isStopped=this.closed=!0,this.observers=this.currentObservers=null},Object.defineProperty(r.prototype,"observed",{get:function(){var t;return((t=this.observers)===null||t===void 0?void 0:t.length)>0},enumerable:!1,configurable:!0}),r.prototype._trySubscribe=function(t){return this._throwIfClosed(),e.prototype._trySubscribe.call(this,t)},r.prototype._subscribe=function(t){return this._throwIfClosed(),this._checkFinalizedStatuses(t),this._innerSubscribe(t)},r.prototype._innerSubscribe=function(t){var a=this,s=this,i=s.hasError,c=s.isStopped,l=s.observers;return i||c?sg:(this.currentObservers=null,l.push(t),new ks(function(){a.currentObservers=null,uc(l,t)}))},r.prototype._checkFinalizedStatuses=function(t){var a=this,s=a.hasError,i=a.thrownError,c=a.isStopped;s?t.error(i):c&&t.complete()},r.prototype.asObservable=function(){var t=new Mp;return t.source=this,t},r.create=function(t,a){return new Lp(t,a)},r}(Mp),Lp=function(e){js(r,e);function r(t,a){var s=e.call(this)||this;return s.destination=t,s.source=a,s}return r.prototype.next=function(t){var a,s;(s=(a=this.destination)===null||a===void 0?void 0:a.next)===null||s===void 0||s.call(a,t)},r.prototype.error=function(t){var a,s;(s=(a=this.destination)===null||a===void 0?void 0:a.error)===null||s===void 0||s.call(a,t)},r.prototype.complete=function(){var t,a;(a=(t=this.destination)===null||t===void 0?void 0:t.complete)===null||a===void 0||a.call(t)},r.prototype._subscribe=function(t){var a,s;return(s=(a=this.source)===null||a===void 0?void 0:a.subscribe(t))!==null&&s!==void 0?s:sg},r}(lg);const fg=new lg,FO=()=>Uh(),Wr=eO,Nc=q(e=>e,e=>e.catalog.state==="loaded"?e.catalog.model:null),$O=q(Nc,e=>e?e.dataClasses:[]),MO=q(Nc,e=>e?e.methods:[]),dg=e=>q(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[]}}),NO=e=>Wr(dg(e),kh),LO=(e,r)=>q(dg(e),t=>t.find(a=>`${a.applyTo}.${a.name}`===r)),jO=(e,r,t)=>Wr(LO(e,`${t}.${r}`),kh),pg=q(e=>e,e=>e),kO=e=>q(Ur,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]}))}),hg=e=>q(Ur,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)||[]}),BO=(e,r,t)=>q(pg,a=>{var s,i;if(r){const c=a.sharedDatasources.sources[r];return c?c.find(l=>l.id===e):void 0}else{const c=a.root.tabs.find(d=>d.path===t);return c?(i=(s=c.content.metadata)==null?void 0:s.datasources)==null?void 0:i.find(d=>d.id===e):void 0}}),gg=q(e=>e,e=>{var r;return((r=e.sharedDatasources)==null?void 0:r.sources)||[]}),WO=(e,r,t,a)=>q(hg(e),gg,(s,i)=>{const c=ze.flatten(ze.values(i)),l=[...r!=="private"?s:[],...r!=="shared"?c:[]];return t?l.filter(d=>(!a||a.every(({id:p,namespace:g=""})=>d.id!==p||(d.namespace||"")!==g))&&(t.includes(d.type)||d.dataType&&(t.includes(d.dataType)||t.includes("objectFromArray")&&d.dataType==="object"&&d.from))):l}),UO=q(e=>e.debugger,e=>e.meta),An=q(e=>e.debugger,e=>e.list),It=q(e=>e.debugger,e=>e.sessions),HO=q(It,e=>e.length),On=(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),vg=(e,r)=>e.find(t=>t.tabPath===r),qO=(e,r)=>q(An,t=>{var a;return((a=On(t,e,r))==null?void 0:a.breakpoints.saved.locations)||[]}),GO=(e,r)=>q(An,t=>{var a;return((a=On(t,e,r))==null?void 0:a.breakpoints.draft.locations)||[]}),zO=e=>q(An,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)),YO=e=>q(An,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)),VO=e=>q(It,r=>{const t=st(r,e);return t!=null&&t.stopped?t.highlightedLines:null}),KO=e=>q(It,r=>{const t=st(r,e);return t!=null&&t.stopped?t.activeLine:null}),JO=e=>q(It,r=>{var t;return((t=st(r,e))==null?void 0:t.expressions)||[]}),XO=e=>q(It,r=>{var t;return((t=st(r,e))==null?void 0:t.stopped)||!1}),ZO=(e,r)=>q(An,t=>{var a;return(a=On(t,e,r))==null?void 0:a.source}),QO=e=>q(It,r=>{var t;return((t=vg(r,e))==null?void 0:t.threadId)||-1}),eA=e=>q(It,r=>{var t,a;return(a=(t=st(r,e))==null?void 0:t.currentStackFrame)==null?void 0:a.source}),tA=e=>q(It,r=>{var t;return(t=st(r,e))==null?void 0:t.currentStackFrame}),rA=q(It,e=>e.map(({channelId:r,threadId:t})=>({id:r,threadId:t}))),nA=e=>q(It,r=>{var t;return((t=st(r,e))==null?void 0:t.stackFrames)||[]}),aA=e=>q(It,r=>{var t,a;return((a=(t=st(r,e))==null?void 0:t.variables)==null?void 0:a.callchain)||[]}),oA=e=>q(It,r=>{var t,a;return((a=(t=st(r,e))==null?void 0:t.variables)==null?void 0:a.expressions)||[]}),sA=(e,r="saved")=>q(An,t=>{const a=t.find(s=>s.filePath===e);return(a==null?void 0:a.breakpoints[r].offset)||0}),iA=(e,r,t,a)=>q(It,s=>{var p;const i=((p=st(s,e))==null?void 0:p.exceptions)||[],c=r===_.FileFolderType.CLASS,l=c&&a?`${a}.${t}`:t;return(l?i.filter(g=>g.location===l):i).map(g=>({...g,locationLine:c?g.locationLine:g.locationLine+1}))}),Ur=q(e=>e.root,e=>e),ca=q(Ur,e=>e.tabs),uA=q(Ur,e=>e.activeTab),cA=q(Ur,e=>e.recent.filter(({type:r})=>r!==_.FileFolderType.DEBUGGER)),lA=q(Ur,({tabs:e,activeTab:r})=>e.find(({path:t})=>t===r)),fA=q(Ur,({tabs:e})=>e.reduce((t,a)=>(a==null?void 0:a.weight)>((t==null?void 0:t.weight)||0)?a:t,null)),dA=q(ca,e=>e.filter(({type:r,flags:t})=>r===_.FileFolderType.WEBFORM&&t.enabled===!1).map(({path:r})=>r)),pA=q(ca,e=>e.length>0),Ya=e=>q(Ur,r=>r.tabs.find(({path:t})=>t===e)),mg=(e,r="")=>q(Ya(e),t=>!t||!t.content||typeof t.content=="string"?t==null?void 0:t.content:ze.get(t.content,r)),hA=e=>q(Ya(e),r=>r==null?void 0:r.extra),gA=(e,r=t=>t)=>q(mg(e,"components"),t=>r(t||{})),Lc=q(ca,e=>e.filter(r=>r.flags.touched)),vA=q(Lc,e=>e.length),mA=q(It,e=>e.map(({threadId:r,currentStackFrame:{source:t},tabPath:a})=>({name:Dh(r,t),path:a,type:_.FileFolderType.DEBUGGER,content:t==null?void 0:t.content,flags:{},extra:{source:t}}))),yA=q(e=>e,e=>e.explorer||[]),yg=q(e=>e,e=>e.explorer.find(r=>r.path===_.FolderRootPath.WEBFORMS)),bg=q(e=>e,e=>e.explorer.find(r=>r.path===_.FolderRootPath.METHODS)),_g=q(e=>e,e=>e.explorer.find(r=>r.path===_.FolderRootPath.CLASSES)),bA=q(bg,e=>(e==null?void 0:e.children)||[]),_A=q(yg,e=>(e==null?void 0:e.children)||[]),EA=q(_g,e=>(e==null?void 0:e.children)||[]),SA=q(e=>e.modals,e=>e.list),wA=q(e=>e.roles,({roles:e})=>e),TA=q(e=>e.roles,({privileges:e})=>e),xA=q(e=>e.roles,({privileges:e})=>Object.values(e).find(({privilege:r})=>r==="guest")),CA=q(e=>e.roles,({flags:e})=>e),RA=q(e=>e.roles,({selectedTab:e})=>e),OA=q(e=>e.roles,({date:e})=>e),Eg=q(e=>e.settings,e=>e.session),AA=q(e=>e.settings,e=>e.project),PA=q(e=>e.settings,e=>e),jc=q(e=>e.settings,e=>e.server),DA=q(jc,e=>e.remoteDebuggerMode),IA=q(jc,e=>e.qodly),FA=q(Eg,e=>e["monaco.zoom"]),Sg=["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"],wg=Sg.map(e=>({id:xc(),content:"",name:e,parentId:null,scope:_.EWebFormStyleClassScope.THEME})),kc=e=>q(Ya(e),r=>{var t,a;return((a=(t=r==null?void 0:r.content)==null?void 0:t.metadata)==null?void 0:a.styles)||[]}),$A=(e,r)=>q(kc(e),t=>r.map(a=>{switch(!0){case a===_.EWebFormStyleClassScope.LOCAL:return t.map(s=>({...s,scope:_.EWebFormStyleClassScope.LOCAL}));case a===_.EWebFormStyleClassScope.THEME:return wg;default:return[]}}).flat()),MA=e=>q(kc(e),r=>[...r.map(t=>({...t,scope:_.EWebFormStyleClassScope.LOCAL})),...wg]),NA=q(e=>e,e=>{var r;return[...(((r=e.sharedCSS)==null?void 0:r.styles)||[]).map(t=>({...t,scope:_.EWebFormStyleClassScope.SHARED}))]}),LA=e=>q(Ya(e),r=>r==null?void 0:r.flags),Va=q(e=>e.webforms,e=>e),Tg=q(Va,e=>(e==null?void 0:e.components)||[]),Bs=q(Va,e=>e.inspector),jA=q(Bs,e=>e.css),kA=q(Bs,e=>e.datasource),xg=q(Va,e=>e.templates||{data:[]}),BA=q(xg,e=>e.data||[]),WA=e=>q(Tg,r=>r.find(t=>t.id===e)),UA=e=>q(Bs,r=>r[e]),HA=q(Va,e=>e.datasources.theme),qA=q(e=>e.catalog,e=>e.sharedDatasources,e=>e.sharedCSS,(e,r,t)=>[e.state,r.state,t.state].every(a=>["loaded","error"].includes(a)));var Bc=(e=>(e.SHOW_AFTER_TIMEOUT="show_after_timeout",e.HIDE_AFTER_TIMEOUT="hide_after_timeout",e))(Bc||{}),Cg=(e=>(e.AIRY="airy",e.COMPACT="neutral",e))(Cg||{});const Rg={metadata:{v:"1.0",datasources:[],styles:[]},components:{ROOT:{parent:"",type:{resolvedName:"Container"},isCanvas:!0,props:{className:"bg-white h-full w-full px-6",classNames:[],events:[],airyMode:!1},displayName:"App",custom:{},hidden:!1,nodes:[],linkedNodes:{}}}};var Xo,GA=new Uint8Array(16);function Og(){if(!Xo&&(Xo=typeof crypto<"u"&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)||typeof msCrypto<"u"&&typeof msCrypto.getRandomValues=="function"&&msCrypto.getRandomValues.bind(msCrypto),!Xo))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return Xo(GA)}const zA=/^(?:[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 Ws(e){return typeof e=="string"&&zA.test(e)}var mt=[];for(var Mu=0;Mu<256;++Mu)mt.push((Mu+256).toString(16).substr(1));function Us(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(!Ws(t))throw TypeError("Stringified UUID is invalid");return t}var jp,Nu,Lu=0,ju=0;function YA(e,r,t){var a=r&&t||0,s=r||new Array(16);e=e||{};var i=e.node||jp,c=e.clockseq!==void 0?e.clockseq:Nu;if(i==null||c==null){var l=e.random||(e.rng||Og)();i==null&&(i=jp=[l[0]|1,l[1],l[2],l[3],l[4],l[5]]),c==null&&(c=Nu=(l[6]<<8|l[7])&16383)}var d=e.msecs!==void 0?e.msecs:Date.now(),p=e.nsecs!==void 0?e.nsecs:ju+1,g=d-Lu+(p-ju)/1e4;if(g<0&&e.clockseq===void 0&&(c=c+1&16383),(g<0||d>Lu)&&e.nsecs===void 0&&(p=0),p>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");Lu=d,ju=p,Nu=c,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 b=d/4294967296*1e4&268435455;s[a++]=b>>>8&255,s[a++]=b&255,s[a++]=b>>>24&15|16,s[a++]=b>>>16&255,s[a++]=c>>>8|128,s[a++]=c&255;for(var E=0;E<6;++E)s[a+E]=i[E];return r||Us(s)}function Ag(e){if(!Ws(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 VA(e){e=unescape(encodeURIComponent(e));for(var r=[],t=0;t<e.length;++t)r.push(e.charCodeAt(t));return r}var KA="6ba7b810-9dad-11d1-80b4-00c04fd430c8",JA="6ba7b811-9dad-11d1-80b4-00c04fd430c8";function Pg(e,r,t){function a(s,i,c,l){if(typeof s=="string"&&(s=VA(s)),typeof i=="string"&&(i=Ag(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,c){l=l||0;for(var p=0;p<16;++p)c[l+p]=d[p];return c}return Us(d)}try{a.name=e}catch{}return a.DNS=KA,a.URL=JA,a}function XA(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 ZA(QA(eP(e),e.length*8))}function ZA(e){for(var r=[],t=e.length*32,a="0123456789abcdef",s=0;s<t;s+=8){var i=e[s>>5]>>>s%32&255,c=parseInt(a.charAt(i>>>4&15)+a.charAt(i&15),16);r.push(c)}return r}function Dg(e){return(e+64>>>9<<4)+14+1}function QA(e,r){e[r>>5]|=128<<r%32,e[Dg(r)-1]=r;for(var t=1732584193,a=-271733879,s=-1732584194,i=271733878,c=0;c<e.length;c+=16){var l=t,d=a,p=s,g=i;t=Et(t,a,s,i,e[c],7,-680876936),i=Et(i,t,a,s,e[c+1],12,-389564586),s=Et(s,i,t,a,e[c+2],17,606105819),a=Et(a,s,i,t,e[c+3],22,-1044525330),t=Et(t,a,s,i,e[c+4],7,-176418897),i=Et(i,t,a,s,e[c+5],12,1200080426),s=Et(s,i,t,a,e[c+6],17,-1473231341),a=Et(a,s,i,t,e[c+7],22,-45705983),t=Et(t,a,s,i,e[c+8],7,1770035416),i=Et(i,t,a,s,e[c+9],12,-1958414417),s=Et(s,i,t,a,e[c+10],17,-42063),a=Et(a,s,i,t,e[c+11],22,-1990404162),t=Et(t,a,s,i,e[c+12],7,1804603682),i=Et(i,t,a,s,e[c+13],12,-40341101),s=Et(s,i,t,a,e[c+14],17,-1502002290),a=Et(a,s,i,t,e[c+15],22,1236535329),t=St(t,a,s,i,e[c+1],5,-165796510),i=St(i,t,a,s,e[c+6],9,-1069501632),s=St(s,i,t,a,e[c+11],14,643717713),a=St(a,s,i,t,e[c],20,-373897302),t=St(t,a,s,i,e[c+5],5,-701558691),i=St(i,t,a,s,e[c+10],9,38016083),s=St(s,i,t,a,e[c+15],14,-660478335),a=St(a,s,i,t,e[c+4],20,-405537848),t=St(t,a,s,i,e[c+9],5,568446438),i=St(i,t,a,s,e[c+14],9,-1019803690),s=St(s,i,t,a,e[c+3],14,-187363961),a=St(a,s,i,t,e[c+8],20,1163531501),t=St(t,a,s,i,e[c+13],5,-1444681467),i=St(i,t,a,s,e[c+2],9,-51403784),s=St(s,i,t,a,e[c+7],14,1735328473),a=St(a,s,i,t,e[c+12],20,-1926607734),t=wt(t,a,s,i,e[c+5],4,-378558),i=wt(i,t,a,s,e[c+8],11,-2022574463),s=wt(s,i,t,a,e[c+11],16,1839030562),a=wt(a,s,i,t,e[c+14],23,-35309556),t=wt(t,a,s,i,e[c+1],4,-1530992060),i=wt(i,t,a,s,e[c+4],11,1272893353),s=wt(s,i,t,a,e[c+7],16,-155497632),a=wt(a,s,i,t,e[c+10],23,-1094730640),t=wt(t,a,s,i,e[c+13],4,681279174),i=wt(i,t,a,s,e[c],11,-358537222),s=wt(s,i,t,a,e[c+3],16,-722521979),a=wt(a,s,i,t,e[c+6],23,76029189),t=wt(t,a,s,i,e[c+9],4,-640364487),i=wt(i,t,a,s,e[c+12],11,-421815835),s=wt(s,i,t,a,e[c+15],16,530742520),a=wt(a,s,i,t,e[c+2],23,-995338651),t=Tt(t,a,s,i,e[c],6,-198630844),i=Tt(i,t,a,s,e[c+7],10,1126891415),s=Tt(s,i,t,a,e[c+14],15,-1416354905),a=Tt(a,s,i,t,e[c+5],21,-57434055),t=Tt(t,a,s,i,e[c+12],6,1700485571),i=Tt(i,t,a,s,e[c+3],10,-1894986606),s=Tt(s,i,t,a,e[c+10],15,-1051523),a=Tt(a,s,i,t,e[c+1],21,-2054922799),t=Tt(t,a,s,i,e[c+8],6,1873313359),i=Tt(i,t,a,s,e[c+15],10,-30611744),s=Tt(s,i,t,a,e[c+6],15,-1560198380),a=Tt(a,s,i,t,e[c+13],21,1309151649),t=Tt(t,a,s,i,e[c+4],6,-145523070),i=Tt(i,t,a,s,e[c+11],10,-1120210379),s=Tt(s,i,t,a,e[c+2],15,718787259),a=Tt(a,s,i,t,e[c+9],21,-343485551),t=nn(t,l),a=nn(a,d),s=nn(s,p),i=nn(i,g)}return[t,a,s,i]}function eP(e){if(e.length===0)return[];for(var r=e.length*8,t=new Uint32Array(Dg(r)),a=0;a<r;a+=8)t[a>>5]|=(e[a/8]&255)<<a%32;return t}function nn(e,r){var t=(e&65535)+(r&65535),a=(e>>16)+(r>>16)+(t>>16);return a<<16|t&65535}function tP(e,r){return e<<r|e>>>32-r}function Hs(e,r,t,a,s,i){return nn(tP(nn(nn(r,e),nn(a,i)),s),t)}function Et(e,r,t,a,s,i,c){return Hs(r&t|~r&a,e,r,s,i,c)}function St(e,r,t,a,s,i,c){return Hs(r&a|t&~a,e,r,s,i,c)}function wt(e,r,t,a,s,i,c){return Hs(r^t^a,e,r,s,i,c)}function Tt(e,r,t,a,s,i,c){return Hs(t^(r|~a),e,r,s,i,c)}var rP=Pg("v3",48,XA);const nP=rP;function aP(e,r,t){e=e||{};var a=e.random||(e.rng||Og)();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 Us(a)}function oP(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 ku(e,r){return e<<r|e>>>32-r}function sP(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,c=Math.ceil(i/16),l=new Array(c),d=0;d<c;++d){for(var p=new Uint32Array(16),g=0;g<16;++g)p[g]=e[d*64+g*4]<<24|e[d*64+g*4+1]<<16|e[d*64+g*4+2]<<8|e[d*64+g*4+3];l[d]=p}l[c-1][14]=(e.length-1)*8/Math.pow(2,32),l[c-1][14]=Math.floor(l[c-1][14]),l[c-1][15]=(e.length-1)*8&4294967295;for(var m=0;m<c;++m){for(var b=new Uint32Array(80),E=0;E<16;++E)b[E]=l[m][E];for(var x=16;x<80;++x)b[x]=ku(b[x-3]^b[x-8]^b[x-14]^b[x-16],1);for(var C=t[0],I=t[1],P=t[2],k=t[3],M=t[4],j=0;j<80;++j){var O=Math.floor(j/20),Y=ku(C,5)+oP(O,I,P,k)+M+r[O]+b[j]>>>0;M=k,k=P,P=ku(I,30)>>>0,I=C,C=Y}t[0]=t[0]+C>>>0,t[1]=t[1]+I>>>0,t[2]=t[2]+P>>>0,t[3]=t[3]+k>>>0,t[4]=t[4]+M>>>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 iP=Pg("v5",80,sP);const uP=iP,cP="00000000-0000-0000-0000-000000000000";function lP(e){if(!Ws(e))throw TypeError("Invalid UUID");return parseInt(e.substr(14,1),16)}const fP=Object.freeze(Object.defineProperty({__proto__:null,NIL:cP,parse:Ag,stringify:Us,v1:YA,v3:nP,v4:aP,v5:uP,validate:Ws,version:lP},Symbol.toStringTag,{value:"Module"})),dP=fw(fP);function Wc(e,r){if(!e||!r||!e.length||!r.length)throw new Error("Bad alphabet");this.srcAlphabet=e,this.dstAlphabet=r}Wc.prototype.convert=function(e){var r,t,a,s={},i=this.srcAlphabet.length,c=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>=c?(s[a++]=parseInt(t/c,10),t=t%c):a>0&&(s[a++]=0);l=a,d=this.dstAlphabet.slice(t,t+1).concat(d)}while(a!==0);return d};Wc.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=Wc,hP=pP;function Ka(e,r){var t=new hP(e,r);return function(a){return t.convert(a)}}Ka.BIN="01";Ka.OCT="01234567";Ka.DEC="0123456789";Ka.HEX="0123456789abcdef";var gP=Ka;const{v4:Bu}=dP,Zo=gP,Wu="123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ",vP="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!#$%&'()*+-./:<=>?@[]^_`{|}~",mP={consistentLength:!0};let Uu;const kp=(e,r,t)=>{const a=r(e.toLowerCase().replace(/-/g,""));return!t||!t.consistentLength?a:a.padStart(t.shortIdLength,t.paddingChar)},yP=(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("-")},bP=e=>Math.ceil(Math.log(2**128)/Math.log(e));var Ss=(()=>{const e=(r,t)=>{const a=r||Wu,s={...mP,...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=bP(a.length),c={shortIdLength:i,consistentLength:s.consistentLength,paddingChar:a[0]},l=Zo(Zo.HEX,a),d=Zo(a,Zo.HEX),p=()=>kp(Bu(),l,c),g={new:p,generate:p,uuid:Bu,fromUUID:m=>kp(m,l,c),toUUID:m=>yP(m,d),alphabet:a,maxLength:i};return Object.freeze(g),g};return e.constants={flickrBase58:Wu,cookieBase90:vP},e.uuid=Bu,e.generate=()=>(Uu||(Uu=e(Wu).generate),Uu()),e})(),Ae=(e=>(e.DATACLASS="dataclass",e.METHOD="method",e.ATTRIBUTE="attribute",e.DATASTORE="datastore",e))(Ae||{});const _P=[Ae.DATASTORE,Ae.DATACLASS,Ae.ATTRIBUTE,Ae.METHOD],ws="guest",Uc=[{key:"read",label:"Read",canApplyTo:[Ae.DATASTORE,Ae.DATACLASS,Ae.ATTRIBUTE]},{key:"create",label:"Create",canApplyTo:[Ae.DATASTORE,Ae.DATACLASS,Ae.ATTRIBUTE]},{key:"update",label:"Update",canApplyTo:[Ae.DATASTORE,Ae.DATACLASS,Ae.ATTRIBUTE]},{key:"drop",label:"Delete",canApplyTo:[Ae.DATASTORE,Ae.DATACLASS,Ae.ATTRIBUTE]},{key:"describe",label:"Describe",canApplyTo:[Ae.DATASTORE,Ae.DATACLASS,Ae.ATTRIBUTE,Ae.METHOD]},{key:"execute",label:"Execute",canApplyTo:[Ae.DATASTORE,Ae.DATACLASS,Ae.METHOD]},{key:"promote",label:"Promote",canApplyTo:[Ae.METHOD]}];function ar(e,...r){return Array.from(new Set([...e,...r]))}function Ig(e){const r={},t=new Map;e.forEach(d=>{const p=d.id||Ss.generate();r[p]={...d,id:p,parents:[],includes:ar(d.includes||[]),resources:[]},t.set(d.privilege,p)}),Object.entries(r).forEach(([d,p])=>{const g=p.includes.map(m=>{const b=t.get(m);return b?(r[b].parents=ar(r[b].parents,b),b):""}).filter(Boolean);r[d]={...p,includes:g}});const a=Fg(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===ws))return r;const l=Ss.generate();return{[l]:{id:l,privilege:ws,includes:[],parents:[],resources:[]},...r}}function Fg(e){return Object.values(e).sort((r,t)=>r.parents.length-t.parents.length)}function qs(e,r){const t=r[e];let a=[];return t&&t.parents.forEach(s=>{a=ar(a,...qs(s,r),s)}),a}function Ts(e,r){const t=r[e];let a=[];return t&&t.includes.forEach(s=>{a=ar(a,...Ts(s,r),s)}),a}function EP(e,r){const t=r[e];if(!t)return[];const a=[e,...qs(e,r),...t.includes];return Object.keys(r).filter(s=>!a.includes(s))}function SP(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 wP(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 TP(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 $g(e,r){_.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=Ss.generate();return{[t]:{id:t,privilege:e,includes:[],parents:[],resources:[]},...r}}function xP(e,r,t,a,s){let i=$g(e,s);const c=Object.entries(i).find(([,l])=>l.privilege===e);return c?(i=jg(c[1].id,r,t,a,i),i):s}function CP(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 RP(e,r){return e.map(t=>Hr(t,r))}function Hr(e,r){return r[e]?r[e]:null}function Mg({applyTo:e,type:r,...t}){return Object.entries(t).reduce((a,[s,i])=>{const c=ze.find(Uc,["key",s]);return!c||!c.canApplyTo.includes(r)||(typeof i=="string"?i.split(","):i).forEach(d=>{a[d]=ar(a[d]||[],s)}),a},{})}const fc=(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 Hc(e){return{permissions:Uc.filter(({canApplyTo:r})=>r.includes(e.type)).map(({key:r,label:t})=>{const a={name:r,from:[]};switch(e.type){case Ae.DATASTORE:return{...a,info:fc(t,!0)};case Ae.DATACLASS:return{...a,info:fc(t)};default:return a}}),resource:e.applyTo,type:e.type}}function Ng(e,r){const t=Lg(r),a={};return e.filter(({type:s})=>_P.includes(s)).forEach(s=>{const i=Mg(s);Object.entries(i).forEach(([c,l])=>{var g;const d=(g=t[c])==null?void 0:g.id;if(!d)return;a[d]=a[d]||{...r[d]};let p=ze.find(a[d].resources,{resource:s.applyTo,type:s.type});p||(p=Hc(s),a[d].resources.push(p)),p.permissions=p.permissions.map(m=>({...m,checked:m.checked||l.includes(m.name)}))})}),{...r,...a}}function Lg(e){return Object.values(e).reduce((r,t)=>({...r,[t.privilege]:t}),{})}function Gs(e){var t;const r=Ig(e.privileges||[]);return{privileges:Ng(((t=e.permissions)==null?void 0:t.allowed)||[],r),roles:(e.roles||[]).map(({id:a=Ss.generate(),role:s,privileges:i=[]})=>({id:a,role:s,privileges:ar(i).map(c=>{var l;return(l=Object.values(r).find(({privilege:d})=>d===c))==null?void 0:l.id}).filter(Boolean)})).reduce((a,s)=>({...a,[s.id]:{...s}}),{})}}function qc(e){const r=Object.values(e.privileges).filter(({includes:a})=>a.length===0).map(({id:a})=>a),t=[...r,...r.map(a=>qs(a,e.privileges).reverse())].flat().filter((a,s,i)=>i.indexOf(a)===s).map(a=>e.privileges[a]);return{permissions:{allowed:Object.values(e.privileges).reduce((a,s)=>(s.resources.forEach(({permissions:i,resource:c,type:l})=>{let d=ze.find(a,{applyTo:c,type:l});d||(d={applyTo:c,type:l},a.push(d)),i.forEach(({name:p,checked:g})=>{g&&d&&(d[p]=d[p]||[],d[p].push(s.privilege))})}),a),[])},privileges:t.filter(({privilege:a})=>a!==ws).map(({id:a,includes:s,privilege:i})=>({id:a,privilege:i,includes:s.map(c=>e.privileges[c].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 OP(e,r){const t=r[e],a={children:[],links:[],parents:[],selected:e};if(!t)return a;function s(l,d,p=[]){const g=l.reduce((m,b)=>[...m,...r[b][d]],[]);return g.length===0?p:(p.push(g),s(g,d,p))}function i(l){const d=[],p=[];for(let g=l.length-1;g>=0;g-=1){const m=l[g].filter(b=>d.includes(b)?!1:(d.push(b),!0));m.length>0&&p.unshift(ar(m))}return p}function c(l,d){const p=[];return l.reduce((g,m)=>(m.forEach(b=>{r[b][d==="parents"?"includes":"parents"].forEach(x=>{p.includes(x)&&g.push(d==="parents"?{source:b,target:x}:{source:x,target:b})}),p.push(b)}),g),[])}return a.children=s([e],"includes"),a.children=i(a.children),a.parents=s([e],"parents"),a.parents=i(a.parents),a.links=[...c([[e],...a.parents],"parents"),...c([[e],...a.children],"includes")],a}function AP(e,r,t){const a=Hr(e,t);if(!a||ze.find(a.resources,{resource:r.applyTo,type:r.type}))return t;const s={...a,resources:[...a.resources,Hc(r)]};return{...t,[e]:s}}function PP(e,r,t){const a=Hr(e,t);if(!a)return t;const s={...a,resources:a.resources.filter(({resource:i,type:c})=>i!==r.applyTo||c!==r.type)};return{...t,[e]:s}}function DP(e,r){const t=Hr(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 jg(e,r,t,a,s){const i=Hr(e,s);if(!i)return s;const l=ze.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:Uc.filter(d=>d.canApplyTo.includes(t)).map(d=>({from:[],name:d.key,checked:d.key===a,info:fc(d.key,t===Ae.DATASTORE)}))}]};return{...s,[e]:l}}function IP(e,r,t,a){const s=Hr(e,a);if(!s)return a;const c=ze.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]:c}}function FP(e,r){var d;const t=kg(e,r)||[],a=((d=Hr(e,r))==null?void 0:d.resources)||[],c=([...t,...a].filter(({type:p})=>p===Ae.METHOD)||[]).map(({resource:p})=>p);return Object.entries(r).reduce((p,[g,{resources:m}])=>(m.filter(({resource:b,type:E})=>E===Ae.METHOD&&c.includes(b)).forEach(({permissions:b,resource:E})=>{var C;((C=b.find(({name:I})=>I==="promote"))==null?void 0:C.checked)&&(p[E]=ar(p[E]||[],g))}),p),{})}function kg(e,r){var c;const t=Hr(e,r);if(!t)return[];const a=(c=Object.values(r).find(l=>l.privilege===ws))==null?void 0:c.id;return(a&&a!==e?ar(Ts(e,r),a):Ts(e,r)).reduce((l,d)=>(r[d].resources.forEach(g=>{if(g.permissions.filter(({checked:E})=>E).length===0)return;const b=ze.find(l,{type:g.type,resource:g.resource});if(!b){l.push({...g,permissions:g.permissions.map(E=>({...E,from:E.checked?[d]:[],checked:!1}))});return}b.permissions=b.permissions.map((E,x)=>{let{from:C=[]}=E;return g.permissions[x].checked&&!C.includes(d)&&(C=[...C,d]),{...E,from:C,checked:E.checked}})}),l),ze.clone(t.resources.map(l=>({...l,permissions:l.permissions.map(({checked:d,...p})=>({...p,checked:!!d}))}))))}const $P=e=>e.reduce((r,t)=>({...r,[t.id]:{...t}}),{}),MP=(e,r)=>r[e]?Object.values(r).reduce((t,a)=>e===a.id||a.role===""?t:{...t,[a.id]:a},{}):r,NP=(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,LP=(e,r)=>{const t={id:e,role:"",privileges:[]};return{...r,[t.id]:t}},jP=(e,r)=>{if(_.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},{})},kP={list:[]},Bp=(e,r)=>e.list.filter(t=>t.id!==r),Bg=or({name:"modals",initialState:kP,reducers:{createModal:(e,r)=>{e.list.push(r.payload)},editModal:(e,r)=>{const{id:t,...a}=r.payload,s=e.list.find(_.byId(t));s&&Object.assign(s,{...a})},removeModal:(e,r)=>{const t=r.payload;e.list=Bp(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=Bp(e,t)}}}),{createModal:Wg,removeModal:Ug,closeModal:BP,editModal:WP}=Bg.actions;var Hg={color:void 0,size:void 0,className:void 0,style:void 0,attr:void 0},Wp=Ke.createContext&&Ke.createContext(Hg),sn=globalThis&&globalThis.__assign||function(){return sn=Object.assign||function(e){for(var r,t=1,a=arguments.length;t<a;t++){r=arguments[t];for(var s in r)Object.prototype.hasOwnProperty.call(r,s)&&(e[s]=r[s])}return e},sn.apply(this,arguments)},UP=globalThis&&globalThis.__rest||function(e,r){var t={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&r.indexOf(a)<0&&(t[a]=e[a]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var s=0,a=Object.getOwnPropertySymbols(e);s<a.length;s++)r.indexOf(a[s])<0&&Object.prototype.propertyIsEnumerable.call(e,a[s])&&(t[a[s]]=e[a[s]]);return t};function qg(e){return e&&e.map(function(r,t){return Ke.createElement(r.tag,sn({key:t},r.attr),qg(r.child))})}function zs(e){return function(r){return Ke.createElement(HP,sn({attr:sn({},e.attr)},r),qg(e.child))}}function HP(e){var r=function(t){var a=e.attr,s=e.size,i=e.title,c=UP(e,["attr","size","title"]),l=s||t.size||"1em",d;return t.className&&(d=t.className),e.className&&(d=(d?d+" ":"")+e.className),Ke.createElement("svg",sn({stroke:"currentColor",fill:"currentColor",strokeWidth:"0"},t.attr,a,c,{className:d,style:sn(sn({color:e.color||t.color},t.style),e.style),height:l,width:l,xmlns:"http://www.w3.org/2000/svg"}),i&&Ke.createElement("title",null,i),e.children)};return Wp!==void 0?Ke.createElement(Wp.Consumer,null,function(t){return r(t)}):r(Hg)}function qP(e){return zs({tag:"svg",attr:{viewBox:"0 0 448 512"},child:[{tag:"path",attr:{d:"M433.941 129.941l-83.882-83.882A48 48 0 0 0 316.118 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V163.882a48 48 0 0 0-14.059-33.941zM224 416c-35.346 0-64-28.654-64-64 0-35.346 28.654-64 64-64s64 28.654 64 64c0 35.346-28.654 64-64 64zm96-304.52V212c0 6.627-5.373 12-12 12H76c-6.627 0-12-5.373-12-12V108c0-6.627 5.373-12 12-12h228.52c3.183 0 6.235 1.264 8.485 3.515l3.48 3.48A11.996 11.996 0 0 1 320 111.48z"}}]})(e)}function GP(e){return zs({tag:"svg",attr:{fill:"currentColor",viewBox:"0 0 16 16"},child:[{tag:"path",attr:{d:"M8 16A8 8 0 1 0 8 0a8 8 0 0 0 0 16zm.93-9.412-1 4.705c-.07.34.029.533.304.533.194 0 .487-.07.686-.246l-.088.416c-.287.346-.92.598-1.465.598-.703 0-1.002-.422-.808-1.319l.738-3.468c.064-.293.006-.399-.287-.47l-.451-.081.082-.381 2.29-.287zM8 5.5a1 1 0 1 1 0-2 1 1 0 0 1 0 2z"}}]})(e)}function zP(e){return zs({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{d:"M11.953 2C6.465 2 2 6.486 2 12s4.486 10 10 10 10-4.486 10-10S17.493 2 11.953 2zM12 20c-4.411 0-8-3.589-8-8s3.567-8 7.953-8C16.391 4 20 7.589 20 12s-3.589 8-8 8z"}},{tag:"path",attr:{d:"M11 7h2v7h-2zm0 8h2v2h-2z"}}]})(e)}function YP(e){return zs({tag:"svg",attr:{viewBox:"0 0 1024 1024"},child:[{tag:"path",attr:{d:"M955.7 856l-416-720c-6.2-10.7-16.9-16-27.7-16s-21.6 5.3-27.7 16l-416 720C56 877.4 71.4 904 96 904h832c24.6 0 40-26.6 27.7-48zM480 416c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v184c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V416zm32 352a48.01 48.01 0 0 1 0-96 48.01 48.01 0 0 1 0 96z"}}]})(e)}const VP={FaSave:qP,AiFillWarning:YP,BiErrorCircle:zP,BsFillInfoCircleFill:GP};var zt=(e=>(e.ALERT="alert",e.CONFIRM="confirm",e))(zt||{}),qr=(e=>(e.PRIMARY="primary",e.WARNING="warning",e.DANGER="danger",e))(qr||{}),Gc=(e=>(e.CONFIRMED="confirmed",e.CANCELED="canceled",e))(Gc||{});const vr=Q("modals/open",async(e,{dispatch:r})=>{const{type:t=zt.ALERT,store:a=ra}=e,s=xc();switch(r(Wg({id:s,type:t,isOpen:!0,...e})),t){case zt.CONFIRM:return new Promise(i=>{const c=a.subscribe(()=>{var p;const{modals:l}=a.getState(),d=l.list.find(g=>g.id===s);if(d&&!d.isOpen){const g=d.closeReason===Gc.CONFIRMED,m=ze.entries((p=d.views)==null?void 0:p.toggles).reduce((b,E)=>({...b,[E[0]]:E[1].value}),{});r(Ug(s)),c(),i({confirmed:g,options:m})}})});default:return{}}}),Gg=()=>_.getFileContent({name:_.ROLES_TAB_PATH}),zg="Roles & Privileges",xs=Q("roles/fetchRoles",async(e,{dispatch:r,rejectWithValue:t})=>{var i;let a;try{a=await Gg()}catch(c){if(!Array.isArray((i=c==null?void 0:c.data)==null?void 0:i.__ERROR))return t("Error while loading the roles");a={name:_.ROLES_TAB_PATH,date:new Date().toISOString(),content:{permissions:{allowed:[]},privileges:[],roles:[]}}}const s={name:zg,type:_.FileFolderType.ROLES,date:a.date,view:{panel:{isOpen:!1,type:"",current:""}},path:_.ROLES_TAB_PATH,flags:{},content:{}};return r(Dt(s)),{...a,content:Gs(a.content)}}),Yg=Q("roles/fetchRolesChanges",async(e,{getState:r})=>{const{tabs:t}=r().root;if(t.find(s=>s.path===_.ROLES_TAB_PATH)){const{date:s}=r().roles;if(s&&await zc(s))return{old:!0}}return{}}),zc=async e=>{if(!e)return!1;try{const r=await Gg();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},dc=Q("roles/saveRoles",async(e,{getState:r,rejectWithValue:t,dispatch:a})=>{try{const{flags:s,date:i}=r().roles;if(s.old||await zc(i)){const{confirmed:d}=await a(vr({title:zg,message:"New content has been found on the server. Are you sure you want to continue?",type:zt.CONFIRM,icon:"FaSave"})).unwrap();if(!d)return t({old:!0})}return await _.setFileContent({name:_.ROLES_TAB_PATH,content:qc(e)})}catch{return t("Error while loading the roles")}}),KP=na().roles,{roles:JP={},privileges:XP={},flags:ZP={touched:!1},date:QP,selectedTab:eD="roles"}=KP||{},tD={flags:ZP,roles:JP,privileges:XP,date:QP,selectedTab:eD},Vg=or({name:"roles",initialState:tD,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},setRolesContent(e,r){const{content:t,date:a}=r.payload,s=Gs(t);return{...e,...s,date:a}}},extraReducers(e){e.addCase(xs.fulfilled,(r,t)=>{const{content:a,date:s}=t.payload;r={...r,...a,date:s}}).addCase(xs.rejected,r=>({...r,roles:{},privileges:{},flags:{touched:!1},date:void 0})).addCase(dc.fulfilled,(r,t)=>({...r,flags:{...r.flags,touched:!1,old:!1},date:t.payload.date})).addCase(dc.rejected,(r,t)=>Ph.isString(t.payload)?r:{...r,flags:{...r.flags,...t.payload}}).addCase(Yg.fulfilled,(r,t)=>({...r,flags:{...r.flags,...t.payload}})).addCase(Qn.fulfilled,(r,t)=>{!t.payload||t.payload.path!==_.ROLES_TAB_PATH||(r.flags.touched=!1,r.flags.old=!1)}).addCase(Qc.fulfilled,(r,t)=>{t.meta.arg!==_.ROLES_TAB_PATH||!t.payload||(r.flags.touched=!1,r.flags.old=!1)})}}),{updatePrivileges:Kg,updateRoles:Jg,setRolesContent:Yc,toggleTab:rD,updateRolesAndPrivileges:Vc}=Vg.actions,nD=Vg.reducer,cn="qodlyApp.json",Kc=Q("settings/fetch",async()=>await _.getNodeInfo({verb:_.DesignerRequestVerb.GET_INFO,path:cn,content:!0,as:"json"})),Xg=Q("settings/app",_.getAppSettings),aD=wh(),Up={session:{"studio.tips":!0,"studio.notifications":!0,"studio.tipsBaseUrl":"https://raw.githubusercontent.com/4d/Web-studio-TIPS/gh-build","webforms.tooltip.behavior":Bc.SHOW_AFTER_TIMEOUT,"webforms.tooltip.timeout":3e3,"webforms.renderer.showPopOver":!0,"welcometour.active":!0,"webforms.properties.advanced-mode":!1,"monaco.zoom":0},project:{"webforms.renderer.indexPage":"","webforms.display-mode":"neutral"},server:{projectOpened:!1,remoteDebuggerMode:_.RemoteDebuggerMode.DISABLED,baseUrl:"",qodly:!0,urls:{renderer:"/$lib/renderer/",debugger:"",lsp:""},isRestActive:!0}},oD={...Up,session:{...Up.session,...aD},welcometour:{}},Zg=or({name:"settings",initialState:oD,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(Kc.fulfilled,(r,t)=>{r.project={...r.project,...t.payload.content}}),e.addCase(Xg.fulfilled,(r,t)=>{r.server=t.payload,r.server.qodly&&(r.project["webforms.display-mode"]="airy")})}}),{setSetting:Qg,setSettings:Ys,setSettingsAsText:sD}=Zg.actions,iD=Zg.reducer,pc=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))},Re=(e,r)=>e.reduce((t,a)=>a.path===r.path&&a.type===r.type?[...t,r]:a.children?[...t,{...a,children:pc(Re(a.children,r))}]:[...t,a],[]),ft=(e,r)=>e.reduce((t,a)=>t||(a.path===r?a:a.children?ft(a.children,r):null),null),uD=[{name:_.FolderRootPath.WEBFORMS,type:_.FileFolderType.FOLDER,children:[],path:_.FolderRootPath.WEBFORMS,error:null,flags:{expanded:!1,loading:!1,cached:!1},tipKey:"editors:webform:explorer:webforms",config:{},isRoot:!0},{name:_.FolderRootPath.METHODS,type:_.FileFolderType.FOLDER,children:[],path:_.FolderRootPath.METHODS,error:null,flags:{expanded:!1,loading:!1,cached:!1},config:{},isRoot:!0},{name:_.FolderRootPath.CLASSES,type:_.FileFolderType.FOLDER,children:[],path:_.FolderRootPath.CLASSES,error:null,flags:{expanded:!1,loading:!1,cached:!1},config:{},isRoot:!0},{name:_.FolderRootPath.SHARED,type:_.FileFolderType.FOLDER,children:[],path:_.FolderRootPath.SHARED,error:null,flags:{expanded:!1,loading:!1,cached:!1},config:{},isRoot:!0},{name:"Debugger",type:_.FileFolderType.FOLDER,children:[],path:"Debugger",error:null,flags:{expanded:!1,cached:!0},config:{},isRoot:!0},{name:"Roles And Privileges",type:_.FileFolderType.FILE,ext:"json",path:"roles",error:null,flags:{},config:{editor:{key:"editors:roles"},supportedEditors:[{key:"editors:code",config:{language:"json",theme:"vs-dark"}}]},isRoot:!0},{name:"Model",type:_.FileFolderType.MODEL,ext:"4DModel",path:"model",error:null,flags:{},config:{editor:{key:"editors:model"},supportedEditors:[{key:"editors:code",config:{language:"json",theme:"vs-dark"}}]}},{name:"Settings",type:_.FileFolderType.FILE,ext:"json",path:"qodlyApp",error:null,flags:{},config:{editor:{key:"editors:settings"}},isRoot:!0}],ev=or({name:"explorer",initialState:uD,reducers:{toggleExpandFolder:(e,r)=>(e=Re(e,{...r.payload,flags:{...r.payload.flags,expanded:!r.payload.flags.expanded}}),e),expandFolder:(e,r)=>(e=Re(e,{...r.payload,flags:{...r.payload.flags,expanded:!0}}),e),openAddFileInput:(e,r)=>Re(e,{...r.payload,flags:{...r.payload.flags,adding:!0}}),addNewFile:(e,r)=>{const{parent:t,child:a}=r.payload;return Re(e,{...t,children:[a,...t.children||[]]})},removeFile:(e,r)=>{const{parent:t,child:a}=r.payload;return Re(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 Re(e,{...t,children:[a,...s]})},setFolderChildren:(e,r)=>{const t=ft(e,r.payload.parentPath);return t?Re(e,{...t,children:r.payload.children}):e}},extraReducers:e=>{e.addCase(Zn.pending,(r,t)=>{const{file:a,newname:s}=t.meta.arg,i=ft(r,a.path);if(!i)return r;const c=a.path.split("/");c.pop();const l=`${c.join("/")}/${a.name}.${a.ext}`,d=`${c.join("/")}/${s}.${a.ext}`;switch(a.ext){case"4dm":case"4qs":_.lspSubject.next({action:_.LspActions.WILL_RENAME,payload:{oldPath:l,newPath:d}});break}return Re(r,{...i,flags:{...i.flags,loading:!0}})}),e.addCase(Zn.fulfilled,(r,t)=>{const{meta:{arg:{file:a}},payload:s}=t,i=ft(r,a.path);if(!i)return r;switch(s.old.ext){case"4dm":case"4qs":_.lspSubject.next({action:_.LspActions.DID_RENAME,payload:{oldPath:s.old.path,newPath:s.new.path}});break}return Re(r,{...i,flags:{...i.flags,loading:!1}})}),e.addCase(Zn.rejected,(r,t)=>{const{file:a}=t.meta.arg,s=ft(r,a.path);return s?Re(r,{...s,flags:{...s.flags,loading:!1}}):r}),e.addCase(Sr.pending,(r,t)=>{const a=t.meta.arg,s=ft(r,a);return s?Re(r,{...s,flags:{...s.flags,loading:!0}}):r}),e.addCase(Sr.fulfilled,(r,t)=>{const a=t.meta.arg,s=ft(r,a);return s?Re(r,{...s,children:pc(t.payload),flags:{...s.flags,loading:!1,cached:!0,expanded:!0},error:null}):r}),e.addCase(Sr.rejected,(r,t)=>{const a=t.meta.arg,s=ft(r,a);return s?Re(r,{...s,error:{message:t.payload},flags:{...s.flags,loading:!1,cached:!0,expanded:!0}}):r}),e.addCase($a.pending,(r,t)=>{const a=t.meta.arg,s=ft(r,a);return s?Re(r,{...s,flags:{...s.flags,loading:!0}}):r}),e.addCase($a.fulfilled,(r,t)=>{const a=t.meta.arg,s=ft(r,a);return s?Re(r,{...s,children:pc(t.payload),flags:{...s.flags,loading:!1,cached:!0,expanded:!1},error:null}):r}),e.addCase($a.rejected,(r,t)=>{const a=t.meta.arg,s=ft(r,a);return s?Re(r,{...s,error:{message:t.payload},flags:{...s.flags,loading:!1,cached:!0,expanded:!1}}):r}),e.addCase(as.pending,(r,t)=>{const{fileName:a,parentNode:s,path:i,type:c}=t.meta.arg;return Re(r,{...s,children:[{name:a,path:`${i}/${a}`,type:c,error:null,flags:{loading:!0},config:{}},...s.children]})}),e.addCase(as.fulfilled,(r,t)=>{const{path:a,fileName:s,type:i}=t.meta.arg,c=_.getFileExtentionFromType(i),{editor:l,supportedEditors:d}=hr(`${a}${c?`.${c.toLowerCase()}`:""}`);return Re(r,{name:s,path:`${a}/${s}`,type:i,error:null,flags:{loading:!1},config:{editor:l,supportedEditors:d}})}),e.addCase(as.rejected,(r,t)=>{const{path:a,fileName:s,type:i}=t.meta.arg;return Re(r,{name:s,path:`${a}/${s}`,type:i,error:{message:t.payload},flags:{loading:!1},config:{}})}),e.addCase(os.pending,(r,t)=>{const{node:a,parentNode:s}=t.meta.arg;return Re(r,{...s,children:[{name:`${a.name}_copy`,path:`${a.path}/${a.name}_copy`,type:a.type,error:null,flags:{loading:!0},permissions:{canRename:!0,canDelete:!0}},...s.children]})}),e.addCase(os.fulfilled,(r,t)=>{const{node:a}=t.payload,{node:{path:s,ext:i}}=t.meta.arg,{editor:c,supportedEditors:l}=hr(`${s}${i?`.${i.toLowerCase()}`:""}`);return Re(r,{name:`${a.name}`,path:`${s}/${a.name}`,type:a.type,error:null,flags:{loading:!1},config:{editor:c,supportedEditors:l}})}),e.addCase(os.rejected,(r,t)=>{const a=t.payload,{node:s}=t.meta.arg;return Re(r,{name:`${s.name}_copy`,path:`${s.path}/${s.name}_copy`,type:s.type,error:{message:a},flags:{loading:!1},config:{}})}),e.addCase(Na.pending,(r,t)=>{}),e.addCase(Na.fulfilled,(r,t)=>{var m;const{draggedNode:a,newLocation:s}=t.meta.arg,i=ng(a.path),c=ft(r,i),l=ft(r,s.path),d=(m=c==null?void 0:c.children)==null?void 0:m.filter(b=>b.path!==a.path),p=s.path.split("/").length,g=a.path.split("/").length;return p>=g?(r=Re(r,{...c,children:d}),r=Re(r,{...l,children:[{...a,path:`${l.path}/${a.name}`},...l!=null&&l.children?l==null?void 0:l.children:[]],flags:{...l.flags,expanded:!0}})):(r=Re(r,{...l,children:[{...a,path:`${l.path}/${a.name}`},...l!=null&&l.children?l==null?void 0:l.children:[]],flags:{...l.flags,expanded:!0}}),r=Re(r,{...c,children:d})),r}),e.addCase(Na.rejected,(r,t)=>{_.toastSubject.next({message:"Error moving file",kind:"danger"})}),e.addCase(Xn.pending,(r,t)=>{var C;const{fileName:a,parentNode:s,path:i,type:c,qodly:l}=t.meta.arg,d=_.getFileExtentionFromType(c,l),p=`${i}/${a}${d?`.${d.toLowerCase()}`:""}`,{editor:g,supportedEditors:m}=hr(p);switch(c){case _.FileFolderType.CLASS:case _.FileFolderType.METHOD:_.lspSubject.next({action:_.LspActions.WILL_CREATE,payload:{filePath:p}});break}const b=(C=s.children)==null?void 0:C.filter(I=>I.path!==`${i}/${a}`),E=[{name:a,path:`${i}/${a}`,type:_.FileFolderType.FILE,error:null,flags:{loading:!0},config:{editor:g,supportedEditors:m},ext:d,date:new Date().toISOString()},...b],x=Re(r,{...s,children:E});return Ph.merge(r,x)}),e.addCase(Xn.fulfilled,(r,t)=>{const{fileName:a,path:s,type:i,qodly:c}=t.meta.arg,l=_.getFileExtentionFromType(i,c),d=`${s}/${a}${l?`.${l.toLowerCase()}`:""}`,{editor:p,supportedEditors:g}=hr(d),m=Re(r,{name:a,path:`${s}/${a}`,type:_.FileFolderType.FILE,error:null,flags:{},config:{editor:p,supportedEditors:g},ext:l,date:new Date().toISOString()});switch(i){case _.FileFolderType.CLASS:case _.FileFolderType.METHOD:_.lspSubject.next({action:_.LspActions.DID_CREATE,payload:{filePath:d}});break}return r=m,r}),e.addCase(Xn.rejected,(r,t)=>{const{fileName:a,path:s,type:i}=t.meta.arg,c=_.getFileExtentionFromType(i),{editor:l,supportedEditors:d}=hr(`${s}${c?`.${c.toLowerCase()}`:""}`);return r=Re(r,{name:a,path:`${s}/${a}`,type:_.FileFolderType.FILE,error:{message:"Failed creating file"},flags:{},config:{editor:l,supportedEditors:d},ext:c,date:new Date().toISOString()}),r}),e.addMatcher(dh(Ma),(r,t)=>{const a=ft(r,t.meta.arg.file.path.split(".")[0]);return a&&(r=Re(r,{...a,flags:{...a.flags,loading:!0}})),r}),e.addMatcher(hh(Ma),(r,t)=>{const a=ft(r,t.meta.arg.file.path.split(".")[0]);return a&&(r=Re(r,{...a,flags:{...a.flags,loading:!1}})),r}),e.addMatcher(ph(Ma),(r,t)=>{const a=ft(r,t.meta.arg.file.path.split(".")[0]);return a&&(r=Re(r,{...a,flags:{...a.flags,loading:!1}})),_.toastSubject.next({message:"Failed to open file, try again",kind:"danger"}),r})}}),{toggleExpandFolder:cD,expandFolder:lD,openAddFileInput:fD,addNewFile:tv,refreshFile:dD,removeFile:hc,setFolderChildren:pD}=ev.actions;function rv(e){switch(e){case _.FileFolderType.WEBFORMS:return Rg;case _.FileFolderType.METHODS:return`//%attributes = {}
|
|
91
91
|
`;default:return""}}function nv(e,r,t){switch(r){case _.FileFolderType.MOBILEFORM:return`${e}.MForm`;case _.FileFolderType.WEBFORM:return`${e}.WebForm`;case _.FileFolderType.METHOD:case _.FileFolderType.CLASS:return`${e}.${t?"4qs":"4dm"}`;default:return e}}function hD(e){switch(e){case _.FolderRootPath.WEBFORMS:return _.FileFolderType.WEBFORMS;case _.FolderRootPath.METHODS:return _.FileFolderType.METHODS;case _.FolderRootPath.CLASSES:return _.FileFolderType.CLASSES;case"Mobile":return _.FileFolderType.MOBILE;default:return e}}function av(e){switch(e){case _.FileFolderType.WEBFORMS:return _.FileFolderType.WEBFORM;case _.FileFolderType.CLASSES:return _.FileFolderType.CLASS;case _.FileFolderType.METHODS:return _.FileFolderType.METHOD;case _.FileFolderType.FOLDER:return _.FileFolderType.FOLDER;case _.FileFolderType.MOBILE:return _.FileFolderType.MOBILEFORM;default:return e}}const gD=Q("files/tryEditMethod",async({method:e},{dispatch:r})=>{const t=e.filePath.split("/"),[a]=t[1].split("."),{editor:s}=hr(e.filePath);return await r(Jc({file:{name:a,path:e.filePath,date:new Date().toISOString(),type:_.FileFolderType.CLASS,editor:s},line:e.startingLine+1})).unwrap()}),gc=Q("explorer/createModelFiles",async(e,{dispatch:r,getState:t})=>{var m;const a=t(),s=_.FolderRootPath.CLASSES,i=a.settings.server.qodly,c=ft(a.explorer,s);if(!c)return;await r(Sr(s));const d=((m=t().explorer.find(b=>b.name===s))==null?void 0:m.children)||[];let p=[{content:"",name:""}];const g=b=>{switch(b){case"dataclass":return{name:e.type==="dataclass"?e.className:"DataStore",content:i?`extends DataClass
|
|
92
92
|
`:`Class extends DataClass
|
|
93
93
|
`};case"collection":return{name:e.type==="dataclass"?e.collectionName:"DataStore",content:i?`extends EntitySelection
|
|
@@ -96,7 +96,7 @@ globstar while`,r,m,t,b,E),this.matchOne(r.slice(m),t.slice(b),a))return this.de
|
|
|
96
96
|
`:`Class extends Entity
|
|
97
97
|
`};case"model":return{name:"DataStore",content:i?`extends DataStoreImplementation
|
|
98
98
|
`:`Class extends DataStoreImplementation
|
|
99
|
-
`}}};e.type==="dataclass"&&!e.toCreate?p=[{...g("dataclass")},{...g("collection")},{...g("entity")}]:e.type==="dataclass"&&e.toCreate?p=[{...g(e.toCreate)}]:p=[{...g("model")}],p=p.filter(b=>!d.find(({name:E,ext:x})=>E===b.name&&x===(i?"4qs":"4dm"))),await Promise.all(p.map(async({name:b,content:E})=>{await r(Xn({type:_.FileFolderType.CLASS,path:s,fileName:b,parentNode:c,content:E,qodly:a.settings.server.qodly}))})),await r(Sr(s))}),Sr=Q("explorer/fetchFolderContent",async(e,{rejectWithValue:r})=>{try{return(await _.getNodeInfo({verb:_.DesignerRequestVerb.GET_INFO,path:e})).map(a=>{const s=`${e}/${a.name}`,{editor:i,supportedEditors:c}=hr(`${s}${a.ext?`.${a.ext.toLowerCase()}`:""}`);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:c}}})}catch{return r("Failed loading file content please Reload")}},{getPendingMeta:()=>{}}),$a=Q("explorer/fetchFolderContentWithoutExpanding",async(e,{rejectWithValue:r})=>{try{return(await _.getNodeInfo({verb:_.DesignerRequestVerb.GET_INFO,path:e})).map(a=>{const s=`${e}/${a.name}`,{editor:i,supportedEditors:c}=hr(`${s}${a.ext?`.${a.ext.toLowerCase()}`:""}`);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:c}}})}catch{return r("Failed loading file content please Reload")}},{getPendingMeta:()=>{}});function vD(e){const r=e.split(".");return r.pop(),{name:r.join("."),ext:e.split(".")[e.split(".").length-1]}}const mD=Q("explorer/uploadFile",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}}}),yD=Q("explorer/uploadFile",async({file:e,path:r,parentNode:t},{dispatch:a})=>{const{editor:s,supportedEditors:i}=hr(r),{name:c,ext:l}=vD(e.name);a(tv({parent:t,child:{name:c,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(hc({parent:t,child:{name:c,path:`${r}/${e.name}`,type:e.type,error:{message:"error uploading file"},flags:{},config:{editor:s,supportedEditors:i},ext:l}})),d.status!==413&&_.toastSubject.next({message:"error uploading file",kind:"danger"})):await a(Sr(t.path)),{status:d.status,fileName:e.name}}catch{return a(hc({parent:t,child:{name:c,path:`${r}/${e.name}`,type:e.type,error:{message:"error uploading file"},flags:{},config:{editor:s,supportedEditors:i},ext:l}})),_.toastSubject.next({message:"error uploading file",kind:"danger"}),{status:500,fileName:e.name}}}),Xn=Q("explorer/createNewFile",async({fileName:e,type:r,path:t,parentNode:a,content:s},{dispatch:i,rejectWithValue:c,getState:l})=>{const{qodly:d}=l().settings.server;try{const p=await _.setFileContent({name:nv(e,r,d),content:s||rv(r),path:t,asText:[_.FileFolderType.CLASS,_.FileFolderType.METHOD].includes(r)});return a.error&&(a.flags.expanded?await i(Sr(a.path)):await i($a(a.path))),{qodly:d,file:p,parentNode:a}}catch{return c("failed to create folder")}});function ov(e,r){const{qodly:t=!0,withExtension:a=!0}=r||{},s=_.getFileExtentionFromType(e.type,t);let i="";switch(e.type){case _.FileFolderType.WEBFORM:i=`${_.FolderRootPath.WEBFORMS}/${e.name}`;break;case _.FileFolderType.METHOD:i=`${_.FolderRootPath.METHODS}/${e.name}`;break;case _.FileFolderType.CLASS:i=`${_.FolderRootPath.CLASSES}/${e.name}`;break;default:return""}return`${i}${a?`.${s}`:""}`}const bD=Q("explorer/createNewFileAndOpen",async(e,{dispatch:r,getState:t})=>{const a=await r(Xn(e)).unwrap(),{qodly:s}=t().settings.server;if(a){const{file:i}=a,c=ov(i,{withExtension:!1,qodly:s}),{editor:l}=hr(c);await r(Ma({file:{name:e.fileName,type:i.type,path:c,editor:l,date:new Date().toISOString()}}))}}),as=Q("explorer/createNewNode",async({fileName:e,path:r,parentNode:t},{rejectWithValue:a})=>{try{return{file:await _.createFolder({verb:_.DesignerRequestVerb.CREATE_FOLDER,path:`${r}/${e}`,recursive:!0}),parentNode:t}}catch{return _.toastSubject.next({message:"failed to create folder",kind:"danger"}),a("failed to create folder")}}),Vs=async e=>{try{const r=e.path.split(".").at(-1),t=await _.getNodeInfo({verb:_.DesignerRequestVerb.GET_INFO,path:e.path,content:!0,as:xh(r)?"json":"text"}),a={editor:e.editor},s=_.getTypeFromExtension(e.path);s===_.FileFolderType.METHOD&&(a.attributes=_.parseAttributes(t.content),t.content=_.addAttributesToContent(t.content,{}));const{content:i,date:c,ext:l}=t;return{date:c,view:{panel:{isOpen:!1,type:"",current:""}},flags:{enabled:["WebForm","MForm"].includes(l)},extra:a,name:e.name,path:e.path,type:s,initialContent:i,content:i}}catch(r){const{data:t}=r;if(t.__ERROR.find(a=>a.errCode===_.ERROR_CODES.FILE_NOT_FOUND))switch(e.path){case _.ROLES_TAB_PATH:{const a={permissions:{allowed:[]},privileges:[],roles:[]};return{date:new Date().toISOString(),flags:{},extra:{editor:{key:"editors:roles"}},name:"Roles & Privileges",path:e.path,type:_.FileFolderType.ROLES,initialContent:a,content:a}}case cn:{const a={};return{date:new Date().toISOString(),flags:{},extra:{editor:{key:"editors:settings"}},name:"Settings",path:e.path,type:_.FileFolderType.SETTINGS,initialContent:a,content:a}}}throw r}},Ma=Q("explorer/openFile",async({file:e,inactive:r,flags:t={}},{getState:a,dispatch:s})=>{const{root:{tabs:i},roles:c}=a(),l=i.find(({path:g})=>e.path===g);if(l){const g={...l,extra:{...l==null?void 0:l.extra,editor:e.editor},flags:{...l==null?void 0:l.flags,...t}};return s(Dt(g)),g}if(e.path.startsWith("Debugger")){const g=a().debugger.sessions.find(m=>`Debugger/${m.threadId}`===e.path);if(g){const{source:{content:m},source:b}=g.currentStackFrame,E={name:e.name,type:_.FileFolderType.DEBUGGER,date:new Date().toISOString(),path:e.path,content:m,view:{panel:{isOpen:!1,type:"",current:""}},initialContent:m,flags:{},extra:{source:b,editor:e.editor}};return s(Dt(E)),E}}const d=await Vs(e);return e.path===_.ROLES_TAB_PATH&&!c.flags.touched?s(Yc({content:d.content,date:d.date})):e.path===cn&&s(Ys({path:"project",value:d.content})),s((r?Wv:Dt)(d)),d}),Jc=Q("explorer/openFileAtLine",async({file:e},{getState:r,dispatch:t})=>{const{tabs:a}=r().root,s=a.find(({path:c})=>e.path===c);if(s){const c={...s,extra:{...s==null?void 0:s.extra,editor:e.editor}};return t(Dt(c)),c}const i=await Vs(e);return t(Dt(i)),i}),sv=Q("explorer/injectContentAtLine",async(e,{getState:r,dispatch:t,rejectWithValue:a})=>{const s=r();e.path.split("/").pop();const c=ft(s.explorer,e.path);if(!c)return a(`Error while trying to inject content in file ${e.path}`);const l=await Vs({name:c.name,date:c.date||new Date().toISOString(),path:`${c.path}.${c.ext}`,type:_.FileFolderType.CLASS,editor:c.config.editor});return await t(Dt(l)),{...e,path:`${c.path}.${c.ext}`}}),iv=Q("explorer/openFileAtSelection",async({file:e},{getState:r,dispatch:t})=>{const{tabs:a}=r().root,s=a.find(({path:c})=>e.path===c);if(s){const c={...s,extra:{...s==null?void 0:s.extra,editor:e.editor}};return t(Dt(c)),c}const i=await Vs(e);return t(Dt(i)),i}),vc=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 _.dropFile({root:_.FolderRootType.ROOT,type:av(t),verb:_.DesignerRequestVerb.DROP,name:r,path:i.join("/")}),node:e}}),_D=Q("explorer/deleteFolder",async e=>{const{path:r,flags:t}=e;if(t.error)return{deleted:!0,node:e};const{deleted:a}=await _.removeItem({force:!0,path:r,verb:_.DesignerRequestVerb.REMOVE_ITEM});return{deleted:a,node:e}}),ED=Q("explorer/removeFileNode",async e=>{const{ext:r,path:t}=e;return await _.removeItem({verb:_.DesignerRequestVerb.REMOVE_ITEM,path:`${t}.${r}`,force:!0}),t==="Classes/DataStore"&&za(),{deleted:!0,node:e}}),Zn=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 _.moveItem({verb:_.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 _.moveItem({verb:_.DesignerRequestVerb.MOVE_ITEM,path:`${t.join("/")}/${e.name}`,newpath:`${t.join("/")}/${r}`}),{old:e,new:{...e,name:r,path:`${t.join("/")}/${r}`}}}),Na=Q("explorer/relocateNode",async({draggedNode:e,newLocation:r},{rejectWithValue:t})=>{try{await _.moveItem({verb:_.DesignerRequestVerb.MOVE_ITEM,path:`${e.path}.${e.ext}`,newpath:`${r.path}/${e.name}.${e.ext}`})}catch{return t("can't move item")}}),os=Q("explorer/duplicateNode",async({node:e,duplicateName:r},{rejectWithValue:t,fulfillWithValue:a,getState:s})=>{const i=e.path.split("/");i.pop();try{const{tabs:c}=s().root,l=c.find(({path:m})=>m===`${e.path}${e.ext?`.${e.ext}`:""}`),d=["4dm","4qm","4qs"].includes(e.ext),{content:p}=l||await _.getNodeInfo({verb:_.DesignerRequestVerb.GET_INFO,path:`${e.path}.${e.ext}`,content:!0,as:d?"text":"json"}),g=await _.setFileContent({name:`${r}.${e.ext}`,content:p,path:i.join("/"),asText:d});return a({node:{...g,path:i.join("/")}})}catch{return t("failed to duplicate file")}}),SD=Q("explorer/executeMethod",async({methodName:e,params:r=[],resultingDataSource:t={},namespace:a=""},{rejectWithValue:s})=>{var i,c;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?_.toastSubject.next({message:`${((i=d.__NOTIFICATION)==null?void 0:i.message)||""}`,kind:`${((c=d.__NOTIFICATION)==null?void 0:c.type)||"info"}`}):_.toastSubject.next({message:"Method executed Successfully",kind:"message"}),d}catch(l){return _.toastSubject.next({message:l.message||`Error executing the method "**${e}**"`,kind:"danger",markdown:!0}),s("can't execute method")}}),wD=Q("files/fetchFiles",async()=>_.getFolders(_.FolderRootType.WEBFORMS,_.FolderRootType.METHODS,_.FolderRootType.CLASSES)),Xc=Q("tabs/renameDatasource",async(e,{dispatch:r,getState:t})=>{var E,x;const a=!!e.datasourceNamespace,{confirmed:s}=await r(vr({message:"Are you sure you want to rename the datasource?",title:"Rename Datasource",type:zt.CONFIRM,color:qr.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:c,datasourceNamespace:l,value:d,path:p}=e,g=t();let m=[];if(a){const C=g.sharedDatasources.sources[l]||[];m.push(...C)}else if(p){const C=g.root.tabs.find(_.by("path",p));if(m=(x=(E=C==null?void 0:C.content)==null?void 0:E.metadata)==null?void 0:x.datasources,!m)return null}const b=new RegExp(`^${c}\\b`,"");if(m=m.map(C=>{const I=(_.isObjectDatasource(C)||!_.isSimpleDatasource(C))&&C.from&&b.test(C.from),P=C.events?C.events.map(k=>{var M,j,O,Y;switch(k==null?void 0:k.type){case"method":{const H=k;return H.params?{...H,params:H.params.map(z=>{var te;return{...z,datasource:(te=z.datasource)==null?void 0:te.replace(new RegExp(`^${c}`,""),d)}}),returns:(M=H.returns)!=null&&M.datasource?{...H.returns,datasource:(j=H.returns.datasource)==null?void 0:j.replace(new RegExp(`^${c}`,""),d)}:H.returns}:H}case"simple-action":{const H=k;return H.datasource?{...H,datasource:{...H.datasource,name:(O=H.datasource.name)==null?void 0:O.replace(new RegExp(`^${c}`,""),d),from:(Y=H.datasource.from)==null?void 0:Y.replace(new RegExp(`^${c}`,""),d)}}:H}default:return k}}):C.events;return C.id===c?{...C,id:d,events:P}:I&&C.from?{...C,from:C.from.replace(new RegExp(`^${c}`,""),d),events:P}:{...C,events:P}}),i){const C=a?`${l}:${c}`:`${c}`,I=a?`${l}:${d}`:`${d}`;_.datasourcesSubject.next({path:p??"",action:_.DatasourcesActions.RENAME,old_reference:C,new_reference:I,is_shared:a})}return{path:p,namespace:l,datasources:m}}),Zc=Q("tabs/edit-datasource",(e,{getState:r})=>{var i,c;const t=r();let a=[];if(e.namespace)a=t.sharedDatasources.sources[e.namespace];else{const l=t.root.tabs.find(_.by("path",e.path));l&&(a=((c=(i=l.content)==null?void 0:i.metadata)==null?void 0:c.datasources)||[])}return a.map(l=>l.id===e.datasourceId?Object.assign({},l,{[e.propertyKey]:e.value}):l)}),uv=Q("tabs/fetchChanges",async(e,{getState:r})=>{const a=ca(r()).filter(s=>[_.FileFolderType.METHOD,_.FileFolderType.CLASS].includes(s.type));return _.getFilesInfo(...a.map(s=>{const[i]=s.path.split("/").filter(Boolean);return{name:s.name,type:s.type,root:i,path:"."}}))}),TD=Q("files/saveAll",async(e,{getState:r,dispatch:t})=>{const a=Lc(r());for(const s of a)t(Qn({tab:s}))}),Qc=Q("files/tryCloseTab",async(e,{getState:r,dispatch:t})=>{const{tabs:a}=r().root,s=a.findIndex(c=>c.path===e);if(s===-1)return!1;const i=a[s];if(i!=null&&i.flags.touched){const{confirmed:c}=await t(vr({title:Is(i),message:"Your unsaved changes will be lost. Proceed anyway?",type:zt.CONFIRM,color:qr.WARNING,icon:"AiFillWarning"})).unwrap();if(!c)return!1}return t(Fv(s)),i.path===_.ROLES_TAB_PATH&&i.flags.touched&&(async()=>{const l=await _.getNodeInfo({verb:_.DesignerRequestVerb.GET_INFO,path:_.ROLES_TAB_PATH,content:!0,as:"json"});t(Yc({content:l.content,date:l.date}))})(),!0}),xD=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(vr({title:"Closing other tabs",message:"Your changes will be lost if you do not save them. Close anyway?",type:zt.CONFIRM,color:qr.WARNING,icon:"AiFillWarning"})).unwrap();if(!i)return}t(jv(e))}),CD=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(vr({title:"Closing all tabs",message:"Your changes will be lost if you do not save them. Close anyway?",type:zt.CONFIRM,color:qr.WARNING,icon:"AiFillWarning"})).unwrap();if(!i)return}t(Nv())}),RD=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(vr({title:"Closing right tabs",message:"Your changes will be lost if you do not save them. Close anyway?",type:zt.CONFIRM,color:qr.WARNING,icon:"AiFillWarning"})).unwrap();if(!i)return}t(Lv(e))}),OD=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(vr({title:"Closing left tabs",message:"Your changes will be lost if you do not save them. Close anyway?",type:zt.CONFIRM,color:qr.WARNING,icon:"AiFillWarning"})).unwrap();if(!i)return}t(kv(e))}),mc=Q("files/reloadTab",async(e,{dispatch:r})=>{if(e.flags.touched){const{confirmed:s}=await r(vr({title:Is(e),message:"Changes made to the file will be lost. Continue?",type:zt.CONFIRM,color:qr.WARNING,icon:"AiFillWarning"})).unwrap();if(!s)return}const t=ag(e.path),a=await _.getNodeInfo({verb:_.DesignerRequestVerb.GET_INFO,path:e.path,content:!0,as:t});if(e.path===_.ROLES_TAB_PATH){const{roles:s,privileges:i}=Gs(a.content);r(Vc({roles:s,privileges:i}))}else if(e.path===cn){const{content:s}=a;r(Ys({path:"project",value:s}))}else{const{content:s}=a;e.type===_.FileFolderType.WEBFORM?_.webformSubject.next({path:e.path,action:_.WebformActions.RELOAD,payload:s.components}):e.type===_.FileFolderType.MODEL&&fg.next({action:"reload",payload:s})}return a}),Qn=Q("files/saveTab",async({tab:e},{dispatch:r,getState:t})=>{const{path:a,content:s}=e;if(e.type===_.FileFolderType.DEBUGGER)return{...e,errors:[]};a.split("/").pop();const c=await _.getFilesInfo({path:a});if(c.files[0]){const g=new Date(e.date),m=new Date(c.files[0].date);if(g.getTime()<m.getTime()){const{confirmed:b}=await r(vr({title:Is(e),message:"New content has been found on the server. Are you sure you want to continue?",type:zt.CONFIRM,icon:"FaSave"})).unwrap();if(!b)return r(Mv({path:a,flags:{old:!0}})),null}}const l=await _.saveContent({verb:_.DesignerRequestVerb.SAVE_CONTENT,content:AD(e,t()),path:a});(e.type===_.FileFolderType.CLASS||e.type===_.FileFolderType.MODEL)&&za();const d=(l.modelErrors||[]).map(g=>g.message),p=(l.permissionsErrors||[]).map(g=>g.message);return{...e,content:s,date:l.date,initialContent:s,errors:d.length>0||p.length>0?[{title:"Model errors",messages:d},{title:"Permissions errors",messages:p}]:[]}}),AD=(e,r)=>{switch(!0){case e.path==="settings.json":case e.path===cn:return r.settings.project;case e.type===_.FileFolderType.ROLES:return qc(r.roles);case e.type===_.FileFolderType.MODEL:return e.content||{toJSON:!0,dataClasses:[],extraProperties:{}};default:return e.content}},Hp=async e=>{if(e.type===_.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=e.path.split("/").filter(Boolean)[0],t=await _.getFile({root:r,type:e.type,verb:_.DesignerRequestVerb.GET,name:e.name}),a={};t.type===_.FileFolderType.METHOD&&(a.attributes=_.parseAttributes(t.content));const{date:s,name:i,type:c,content:l}=t;return{date:s,flags:{enabled:e.type===_.FileFolderType.WEBFORM},extra:a,view:{panel:{isOpen:!1,type:"",current:""}},name:i,path:e.path,type:c,initialContent:l,content:c===_.FileFolderType.MODEL?Th(l):l}},cv=Q("files/tryInjectMethod",async({type:e,dataclass:r},{getState:t,dispatch:a})=>{const{root:{tabs:s},settings:{server:{qodly:i}}}=t(),c=_.getFileExtentionFromType("class",i);let l="",d="",p=null;if(!r)l="DataStore",d=`Classes/DataStore.${c}`;else switch(e){case"dataclass":l=r,d=`Classes/${r}.${c}`;break;case"collection":l=`${r}Selection`,d=`Classes/${r}Selection.${c}`;break;case"entity":l=`${r}Entity`,d=`Classes/${r}Entity.${c}`;break;default:return p}const g=s.find(_.by("path",d));if(g)return a(Dt(g)),g;try{p=await Hp({name:l,date:new Date().toISOString(),path:`class/${l}.${c}`,type:_.FileFolderType.CLASS})}catch{r?await a(gc({type:"dataclass",className:r,collectionName:`${r}Selection`,toCreate:e})):await a(gc({type:"model"}))}return p=await Hp({name:l,date:new Date().toISOString(),path:`class/${l}.${c}`,type:_.FileFolderType.CLASS}),p.path=d,a(Dt(p)),p}),PD=Q("roles/open",async(e,{dispatch:r,getState:t})=>{const{tabs:a}=t().root,s=a.find(i=>i.path===_.ROLES_TAB_PATH);if(s)return r(Dt(s)),s;r(xs())}),{debugger:Yn={meta:{state:Nr.DETACHED},list:[],sessions:[],expressions:[]}}=na();var Jp,Xp;const DD={meta:{...Yn.meta,state:((Jp=Yn.meta)==null?void 0:Jp.state)===Nr.ATTACHED?(Xp=Yn.meta)==null?void 0:Xp.state:Nr.DETACHED},list:Yn.list||[],sessions:Yn.sessions||[],expressions:Yn.expressions||[]};function qp(e,r){const{line:t,offset:a,type:s="saved"}=r;e.breakpoints[s].locations.push({line:t}),ze.isNumber(a)&&(e.breakpoints[s].offset=a)}function Gp(e,r,t,a){e.breakpoints[t].locations=r,ze.isNumber(a)&&(e.breakpoints[t].offset=a)}function zp({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 Yp(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 Qo(e){return e.map(({label:r})=>({label:r}))}const lv=or({name:"debugger",initialState:DD,reducers:{addBreakpointDecoration(e,r){const{filePath:t,fileType:a,methodName:s,className:i,ext:c,source:l,breakpoint:d}=r.payload,p=On(e.list,t,s,i);if(p)qp(p,d);else{if(a===_.FileFolderType.CLASS&&d.offset===void 0)throw new Error(`Cannot add a breakpoint on a function without offset. Try editing the ${i} class.`);const g=zp({filePath:t,fileType:a,methodName:s,className:i,ext:c,source:l});qp(g,d),e.list.push(g)}},removeBreakpointDecoration(e,r){const{filePath:t,methodName:a,line:s,offset:i=0,type:c="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 g=p.breakpoints[c].offset||0;p.breakpoints[c].locations=p.breakpoints[c].locations.filter(m=>m.line+g!==d),c==="saved"&&(p.breakpoints.draft.locations=p.breakpoints.draft.locations.filter(m=>m.line+g!==d))})}}else{const l=On(e.list,t,a);l&&(l.breakpoints[c].locations=l.breakpoints[c].locations.filter(d=>d.line!==s),c==="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:c,source:l,breakpoints:d,offset:p,type:g="saved",clearDraft:m}=r.payload,b=On(e.list,t,s);if(b)Gp(b,d,g,p),m&&g!=="draft"&&(b.breakpoints.draft.locations=[]);else{const E=zp({filePath:t,fileType:a,methodName:s,className:i,ext:c,source:l});Gp(E,d,g,p),e.list.push(E)}},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"?{locations:[],offset:0}:s.breakpoints.draft,saved:!a||a==="saved"?{locations:[],offset:0}:s.breakpoints.saved}:s.breakpoints}))},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=Qo(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((c,l)=>l!==a),s&&(e.expressions=Qo(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,c=st(e.sessions,t);c&&c.expressions[a]&&(c.expressions[a].label=s,i&&(e.expressions=Qo(c.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,c=s.expressions[i];c?(c.result=a.result,c.nakedResult=a.nakedResult,c.variablesReference=a.variablesReference||0,c.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 c=i.expressions[a];c&&(c.result=`"${s}"`,c.nakedResult=s)}},saveExpressions(e,r){const{expressions:t}=r.payload;e.expressions=Qo(t)},addSession(e,r){const{threadId:t,channelId:a,stackFrames:s,exceptions:i=[]}=r.payload,c=st(e.sessions,t),l=s[0],{expressions:d=[]}=e;if(c)c.expressions=d;else{const p=Ic(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 c;return i.threadId===t?{...i,variables:{...i.variables,callchain:Yp((c=i.variables)==null?void 0:c.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 c;return i.threadId===t?{...i,variables:{...i.variables,expressions:Yp((c=i.variables)==null?void 0:c.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===Nr.ERROR){e.meta.error={...e.meta.error,time:Date.now()};const{override:t,error:a={code:null,reason:"",type:gs.SOCKET_ERROR}}=r.payload;if((t||e.meta.state!==Nr.ERROR)&&(e.meta.error={...e.meta.error,...a}),(a==null?void 0:a.type)===gs.SOCKET_CLOSURE&&!(a!=null&&a.reason)&&e.meta.state===Nr.DETACHED)return}e.meta.state=r.payload.state}},extraReducers:e=>{e.addCase(dv.fulfilled,r=>{r.sessions=[]})}}),{addBreakpointDecoration:ID,removeBreakpointDecoration:FD,setBreakpointsDecoration:$D,clearBreakpoints:MD,setActiveLine:ND,addExpression:LD,renameExpression:jD,removeExpression:kD,removeAllExpressions:BD,setExpression:WD,updateExpressionAt:UD,saveExpressions:HD,addSession:qD,updateSession:GD,removeSession:zD,removeSessionByIndex:YD,setSessions:fv,setCallChainVariables:VD,setExpressionVariables:KD,setSourceContent:JD,setDebuggerMeta:XD}=lv.actions,dv=Q("files/wipeDebuggerSessions",async(e,{getState:r,dispatch:t})=>{const{sessions:a}=r().debugger;for(const{threadId:s}of a){const i=Ic(s);t(Qc(i))}}),pv=Q("files/removeDebuggerSessionsNotIn",async(e,{getState:r,dispatch:t})=>{const{threadIds:a}=e,{sessions:s}=r().debugger,i=[],c=s.filter(l=>{const d=a.includes(l.threadId);return d||i.push(l.threadId),d});return t(fv(c)),{staleThreadIds:i}});var el=(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))(el||{}),Mr=(e=>(e.STORAGE="storage",e.RELATEDENTITY="relatedEntity",e.RELATEDENTITIES="relatedEntities",e.CALCULATED="calculated",e.COMPOSITION="composition",e.ALIAS="alias",e))(Mr||{});const ZD=e=>["string","uuid","number","long"].includes(e.type),QD=[{label:"Storage",value:"storage"},{label:"Calculated",value:"calculated"}],eI=[{title:"UUID",kind:"storage",value:"uuid",calculatedType:"uuid",calculatedKind:"storage"},{title:"Long",kind:"storage",value:"long",calculatedType:"long",calculatedKind:"storage"}],tI=[{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"}],rI=[{label:"Expose as REST",value:"public"},{label:"Do not expose as REST",value:"publicOnServer"}],nI=[{label:"Expose as REST",value:"public"},{label:"Do not expose as REST",value:"publicOnServer"}],aI=[{label:"None",value:"none"},{label:"B-tree",value:"btree"},{label:"Cluster",value:"cluster"},{label:"Automatic",value:"auto"}],hv=Pt("model/add-dataclass"),gv=Pt("model/rename-dataclass"),vv=Pt("model/remove-dataclass"),mv=Pt("model/add-attribute"),oI=Pt("model/edit-attribute-property"),yv=Pt("model/remove-attribute"),bv=Pt("model/rename-attribute"),_v=Pt("model/edit-primary-key"),sI=Pt("model/edit-dataclass-property"),Ev=Pt("model/rename-collection"),iI=(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 ss(e,r,t){const a=e;let s=0;for(;t[`${a}${s||""}`];)s++;return`${a}${s||""}`}const La=e=>e.kind===Mr.RELATEDENTITY,Cs=e=>e.kind===Mr.RELATEDENTITIES,uI=e=>Cs(e)||La(e),tl=Q("models/fetch",async()=>{try{return(await _.http(_.API_PREFIX,{method:"POST",body:JSON.stringify({verb:_.DesignerRequestVerb.GET_INFO,path:_.MODEL_TAB_PATH,as:"json",content:!0}),headers:new Headers({"Content-Type":"application/json"})})).content}catch(e){return e.message}}),Rs=Q("models/save",async(e,{getState:r,rejectWithValue:t})=>{const{tabs:a}=r().root,s=a.find(i=>i.path===_.MODEL_TAB_PATH);if(!s)return t("Error while saving the model");try{const i=await _.http(_.API_PREFIX,{method:"POST",body:JSON.stringify({verb:"save",path:s.path,content:s.content}),headers:new Headers({"Content-Type":"application/json"})});return za(),{...i,path:s.path,content:e.content||{toJSON:!0,dataClasses:[],extraProperties:{}}}}catch{return t("Error while saving the model")}}),cI=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(tl())}),lI=Q("model/rename-dataclass",async(e,{getState:r,dispatch:t})=>{var m,b;const{dataclassId:a,selectionId:s,name:i}=e;let c=r();const l=c.explorer.find(E=>E.path===_.FolderRootPath.CLASSES);if(!l)throw new Error("Classes folder was not found!");await t(Sr(l.path)),c=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`}};(b=(m=c.explorer.find(E=>E.path===_.FolderRootPath.CLASSES))==null?void 0:m.children)==null||b.forEach(E=>{E.name===d.class.filename_update&&(d.class.newNameTaken=!0),E.name===d.entity.filename_update&&(d.entity.newNameTaken=!0),E.name===d.selection.filename_update&&(d.selection.newNameTaken=!0),E.name===a?(d.class.found=!0,d.class.file=E):E.name===`${a}Entity`?(d.entity.found=!0,d.entity.file=E):E.name===s&&(d.selection.found=!0,d.selection.file=E)});const p=Object.entries(d).reduce((E,x)=>{const[C,I]=x;return I.found?I.newNameTaken?[...E,{type:"error",message:`Cannot rename ${C} file to ${I.filename_update} because it already exists. The existing file will be used instead!`}]:E:[...E,{type:"warning",message:`${a} ${C} file was not found`}]},[]);p.length>0&&t(vr({message:"The following errors were encountered during dataclass rename:",views:{tips:p}}));const g=Object.values(d).filter(E=>E.found&&E.file&&!E.newNameTaken);await Promise.all(g.map(async E=>await t(Zn({file:E.file,newname:E.filename_update})))),g.length>0&&t(Sr("Classes"))}),Ha={DATACLASS_DELETE:"dataclass.delete",DATACLASS_DRAGGABLE:"dataclass.draggable"},fI={model:{dataClasses:{},collections:{},extraProperties:{}},draft:{dataClasses:{},collections:{},extraProperties:{}},flags:{[Ha.DATACLASS_DELETE]:!0,[Ha.DATACLASS_DRAGGABLE]:!0}},Sv=or({name:"Models",initialState:fI,reducers:{setModelFlag(e,r){e.flags={...e.flags,...r.payload}}},extraReducers(e){e.addCase(hv,({draft:{dataClasses:r}},t)=>{var c,l;const{dataclassID:a}=t.payload,s=ss(a||"DataClass","className",r),i={className:s,collectionName:`${s}Selection`,attributes:[{name:"ID",kind:Mr.STORAGE,type:el.LONG,scope:"public",indexKind:"auto",unique:!0,primKey:!0,autosequence:!0}],name:s,scope:"public",extraProperties:{position:{x:((c=t.payload.position)==null?void 0:c.x)||0,y:((l=t.payload.position)==null?void 0:l.y)||0}}};r[i.name]=i}).addCase(vv,({draft:{dataClasses:r}},t)=>{const{dataclassID:a}=t.payload;r[a]&&(delete r[a],Object.values(r).forEach(i=>{i.attributes=i.attributes.filter(c=>c.type!==a&&c.type!==i.collectionName)}))}).addCase(gv,({draft:{dataClasses:r,collections:t}},a)=>{const{dataclassID:s,newName:i}=a.payload;if(!r[s]||r[i])return;const c=r[s].collectionName,l=ss(`${i}Selection`,"collectionName",t);Object.values(r).forEach(d=>{d.className===s&&(d.className=i,d.name=i,d.collectionName=l),d.attributes.forEach(p=>{p.type===s?(p.type=i,p.path=i):p.type===c&&(p.type=l)})})}).addCase(mv,({draft:{dataClasses:r}},t)=>{const{dataclassID:a,attributeName:s,attributeType:i,attributeKind:c,target:l}=t.payload;if(!r[a]||_.exists("name",s,r[a].attributes))return;const p={name:s,kind:c,type:i,exposed:!0,scope:"public"};if(c===Mr.RELATEDENTITY){if(!r[i])return;p.path=i;const m={name:ss(r[i].collectionName,"name",r[i].attributes),type:r[a].collectionName,kind:Mr.RELATEDENTITIES,reversePath:!0,path:s,scope:"public",exposed:!0};r[i].attributes.push(m)}else if(c===Mr.RELATEDENTITIES){const g=r[i];if(!g)return;const m=g.attributes.find(_.by("name",l));if(m){if(!La(m)||m.type!==r[a].className)return}else{p.path=l,p.reversePath=!0,p.type=i;const b={name:l,kind:Mr.RELATEDENTITY,scope:"public",path:g.className,type:g.className,exposed:!0};g.attributes.push(b)}}r[a].attributes.push(p)}).addCase(bv,({draft:{dataClasses:r}},t)=>{const{dataclassID:a,attributeID:s,newName:i}=t.payload,c=r[a].attributes.find(_.by("name",s)),l=r[a].attributes.find(_.by("name",i));!c||l||Object.values(r).forEach(({collectionName:d,attributes:p,className:g})=>{p.forEach(m=>{La(c)&&Cs(m)&&m.type===d&&m.path===s&&(m.path=i),g===a&&m.name===s&&(m.name=i)})})}).addCase(yv,({draft:{dataClasses:r}},t)=>{const{dataclassID:a,attributeID:s}=t.payload;if(!r[a])return;const i=r[a].attributes.find(_.by("name",s));i&&(La(i)&&Object.values(r).forEach(c=>{c.attributes=c.attributes.filter(l=>!(Cs(l)&&l.type===c.collectionName&&l.path===i.name))}),r[a].attributes=r[a].attributes.filter(_.outBy("name",s)))}).addCase(Ev,({draft:{dataClasses:r,collections:t}},a)=>{const{dataclassID:s,collectionName:i}=a.payload;if(!r[s])return;const c=r[s].collectionName;t[i]||(r[s].collectionName=i,t[i]=r[s],delete t[c],Object.values(r).forEach(l=>l.attributes.forEach(d=>{d.type===c&&(d.type=i)})))}).addCase(_v,({draft:{dataClasses:r}},t)=>{const{dataclassID:a,newPrimKey:s}=t.payload;r[a]&&r[a].attributes.forEach(i=>{i.name===s?i.primKey=!0:i.primKey=!1})}),e.addCase(tl.fulfilled,(r,t)=>{var c;const a={},s={},i=t.payload.extraProperties||{};(c=t.payload.dataClasses)==null||c.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(Rs.pending,()=>{}).addCase(Rs.fulfilled,(r,t)=>{const a={},s={},i=t.payload.content.extraProperties||{};t.payload.content.dataClasses.forEach(c=>{a[c.name]=c,s[c.collectionName]=c}),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:dI}=Sv.actions,pI=()=>Wr(e=>e.model.draft.dataClasses),hI=()=>Wr(e=>e.model.draft.collections),gI=e=>Wr(r=>r.model.draft.dataClasses[e]),vI=(e,r)=>Wr(t=>t.model.draft.dataClasses[e].attributes.find(_.by("name",r))),mI=()=>Wr(e=>e.model.draft.extraProperties),yI=()=>{const e=Wr(s=>s.model.flags),r=s=>s in e?e[s]:void 0,t=r(Ha.DATACLASS_DELETE),a=r(Ha.DATACLASS_DRAGGABLE);return{deleteDataclass:t,draggableDataclass:a,flags:e}},bI=Sv.reducer;function Hu(e,r){const t=e.tabs.find(({path:a})=>a===cn);t&&(t.flags.touched=r)}const wv={SIDEBAR_SECTION_RESIZABLE:"sidebar.section.resizable"},{webforms:es}=na(),Tv={[wv.SIDEBAR_SECTION_RESIZABLE]:!0},xv={...es,templates:{data:[],selectedGroup:""},datasources:{...Pc.webforms.datasources,...es==null?void 0:es.datasources},flags:Tv},Cv=or({name:"webforms",initialState:xv,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(Iv.fulfilled,(r,t)=>{r.components=t.payload})}}),{toggleInspector:_I,inspect:EI,addComponent:Rv,editComponent:Ov,removeComponent:Av,setSelectedGroup:SI,setTemplatesData:Pv,setTemplateData:Dv,setDatasourcesTheme:wI,setWebformsFlag:TI}=Cv.actions,xI=Cv.reducer,rl=ze.curry((e,r)=>{var s,i;const t={...r.sharedDatasources.sources},a=(i=((s=r.root.tabs.find(_.by("path",e)))==null?void 0:s.content).metadata)==null?void 0:i.datasources;return a&&(t[e]=a),ze.cloneDeep(t)}),CI=Q("webforms/fetchTemplates",async(e,{dispatch:r,getState:t})=>{const{data:a}=t().webforms.templates;if(!ze.isEmpty(a))return a;try{const i=await(await fetch(`https://raw.githubusercontent.com/4d/Web-studio-TIPS/gh-build/build/index.json?t=${Date.now()}`)).json();return r(Pv(i)),i}catch{return[]}}),RI=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&&!ze.isEmpty(s.components))return s.components;try{const c=await(await fetch(`${s==null?void 0:s.link}?t=${Date.now()}`)).json();return r(Dv({group:e,components:c})),c}catch{return[]}}),Iv=Q("webforms/fetchCraftedComponents",async(e,{rejectWithValue:r})=>{try{return(await _.getNodeInfo({path:"WebForms/crafted_components.json",verb:_.DesignerRequestVerb.GET_INFO,content:!0,as:"json"})).content}catch{return r("Error while loading the crafted components")}}),OI=Q("webforms/addCraftedComponent",async(e,{dispatch:r,rejectWithValue:t,getState:a})=>{try{r(Rv(e));const{webforms:{components:s}}=a();_.setCraftedComponents(s)}catch{return t("Error while adding the crafted component")}}),AI=Q("webforms/editCraftedComponent",async(e,{dispatch:r,rejectWithValue:t,getState:a})=>{try{r(Ov(e));const{webforms:{components:s}}=a();_.setCraftedComponents(s)}catch{return t("Error while editing the crafted component")}}),PI=Q("webforms/removeCraftedComponent",async(e,{dispatch:r,rejectWithValue:t,getState:a})=>{try{r(Av(e));const{webforms:{components:s}}=a();_.setCraftedComponents(s)}catch{return t("Error while removing the crafted component")}}),nl=Q("datasources/add-datasource",async(e,{getState:r,rejectWithValue:t})=>{var a,s;try{const i=r(),c=e.datasource,l=!!c.namespace,d=[];if(l){const p={...i.sharedDatasources.sources,[c.namespace]:[...i.sharedDatasources.sources[c.namespace],c]};d.push(...p[c.namespace]),await _.setSharedSources(p)}else(((s=(a=i.root.tabs.find(_.by("path",e.path)).content)==null?void 0:a.metadata)==null?void 0:s.datasources)||[]).push(c);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")}}),al=Q("datasources/edit-datasource",async(e,{getState:r,rejectWithValue:t})=>{try{const{namespace:a,path:s}=e,i=r(),c=!!e.namespace,l=rl(s,i);let d=ze.defaultTo(l[a||s],[]);return d=d.map(p=>p.id===e.id?{...p,[e.property]:e.value}:p),c&&await _.setSharedSources({...i.sharedDatasources.sources,[e.namespace]:d}),{list:d,path:e.path,namespace:e.namespace}}catch{t(`Error while editing datasource ${e.id}`)}}),DI=e=>e.type===ea.fulfilled.type,ea=Q("datasources/rename-datasource",async(e,{getState:r,rejectWithValue:t})=>{try{const a=r(),s=!!e.namespace,i=e.namespace||e.path,c=rl(e.path,a),l=ze.defaultTo(c[i],[]),d=new RegExp(`^${e.id}\\b`,"");if(l.forEach(p=>{var m;const g=(_.isObjectDatasource(p)||!_.isSimpleDatasource(p))&&p.from&&d.test(p.from);e.updateRefs&&((m=p.events)==null||m.forEach(b=>{var E,x,C,I,P;switch(b.type){case"method":{const k=b;k.params.forEach(M=>{M.datasource&&Object.assign(M,{datasource:M.datasource.replace(new RegExp(`^${e.id}`,""),e.new_name)})}),k.returns&&Object.assign(k.returns,{datasource:(x=(E=k.returns)==null?void 0:E.datasource)==null?void 0:x.replace(new RegExp(`^${e.id}`,""),e.new_name)});return}case"simple-action":{const k=b;k.datasource&&Object.assign(k.datasource,{name:(C=k.datasource.name)==null?void 0:C.replace(new RegExp(`^${e.id}`,""),e.new_name),from:(I=k.datasource.from)==null?void 0:I.replace(new RegExp(`^${e.id}`,""),e.new_name),target:(P=k.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:g&&p.from&&(p.from=p.from.replace(new RegExp(`^${e.id}`,""),e.new_name))}),e.updateRefs){const p=_.getDatasourceId({id:e.id,namespace:e.namespace}),g=_.getDatasourceId({id:e.new_name,namespace:e.namespace});_.datasourcesSubject.next({path:e.path??"",action:_.DatasourcesActions.RENAME,old_reference:p,new_reference:g,is_shared:s})}return s&&await _.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}`)}}),ja=Q("datasources/delete-datasource",async(e,{getState:r,rejectWithValue:t})=>{try{const a=r(),s=!!e.namespace,i=e.namespace||e.path,l=rl(e.path,a)[i].filter(_.outById(e.id));return s&&await _.setSharedSources({...a.sharedDatasources.sources,[e.namespace]:l}),{list:l,path:e.path,namespace:e.namespace}}catch{return t(`Error while removing datasource ${e.id}`)}}),qu=na(),II={filesLoading:!1,tabs:qu.tabs||[],activeTab:qu.activeTab,recent:qu.recent||[]},ol=or({name:"root",initialState:II,reducers:{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))})},addDataSource(e,r){var i;const{payload:{path:t,datasourceDef:a}}=r,s=e.tabs.find(c=>c.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}))},openSettingsTab(e){const r={date:new Date().toISOString(),flags:{},view:{panel:{isOpen:!1,type:"",current:""}},extra:{editor:{key:"editors:settings"}},name:"Settings",path:cn,type:_.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}},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},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},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)||""},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,c)=>(c==null?void 0:c.weight)>((i==null?void 0:i.weight)||0)?c:i,null);a.weight=s?(s.weight||0)+1:1,a.extra={...a.extra,...t.extra}},selectTabByReference(e,r){const t=r.payload;let a=e.tabs.find(({path:s})=>t.path===s);if(a||(e.tabs.push(t),a=e.tabs[e.tabs.length-1]),e.activeTab!==t.path){const s=e.tabs.reduce((i,c)=>(c==null?void 0:c.weight)>((i==null?void 0:i.weight)||0)?c:i,null);e.activeTab=t.path,a.weight=((s==null?void 0:s.weight)||0)+1}a.extra={...a.extra,...t.extra},a.flags={...a.flags||{},...t.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 c=!1;if(typeof a=="string")c=i.initialContent!==a;else{const l=JSON.stringify(ze.get(i.initialContent,s||"",i.initialContent)),d=JSON.stringify(ze.get(a,s||"",a));c=l!==d}return a&&typeof a=="object"&&(s?ze.set(i.content,s,a):i.content=a),typeof a=="string"&&(i.content=a),{...i,flags:{...i.flags,touched:c}}})},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),c=a.filter(({name:l})=>!i.includes(l));s.content.metadata.styles=[...s.content.metadata.styles,...c].map(({scope:l,...d})=>({...d}))}},changeTabEditor(e,r){return e.tabs=e.tabs.map(t=>t.path===r.payload.path?r.payload:t),e}},extraReducers:e=>{e.addCase(sv.fulfilled,(r,t)=>{if(!t.payload)return;const{content:a,line:s,path:i}=t.payload,c=r.tabs.find(l=>l.path===i);if(c&&typeof c.content=="string"){const l=c.content.trim().split(`
|
|
99
|
+
`}}};e.type==="dataclass"&&!e.toCreate?p=[{...g("dataclass")},{...g("collection")},{...g("entity")}]:e.type==="dataclass"&&e.toCreate?p=[{...g(e.toCreate)}]:p=[{...g("model")}],p=p.filter(b=>!d.find(({name:E,ext:x})=>E===b.name&&x===(i?"4qs":"4dm"))),await Promise.all(p.map(async({name:b,content:E})=>{await r(Xn({type:_.FileFolderType.CLASS,path:s,fileName:b,parentNode:c,content:E,qodly:a.settings.server.qodly}))})),await r(Sr(s))}),Sr=Q("explorer/fetchFolderContent",async(e,{rejectWithValue:r})=>{try{return(await _.getNodeInfo({verb:_.DesignerRequestVerb.GET_INFO,path:e})).map(a=>{const s=`${e}/${a.name}`,{editor:i,supportedEditors:c}=hr(`${s}${a.ext?`.${a.ext.toLowerCase()}`:""}`);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:c}}})}catch{return r("Failed loading file content please Reload")}},{getPendingMeta:()=>{}}),$a=Q("explorer/fetchFolderContentWithoutExpanding",async(e,{rejectWithValue:r})=>{try{return(await _.getNodeInfo({verb:_.DesignerRequestVerb.GET_INFO,path:e})).map(a=>{const s=`${e}/${a.name}`,{editor:i,supportedEditors:c}=hr(`${s}${a.ext?`.${a.ext.toLowerCase()}`:""}`);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:c}}})}catch{return r("Failed loading file content please Reload")}},{getPendingMeta:()=>{}});function vD(e){const r=e.split(".");return r.pop(),{name:r.join("."),ext:e.split(".")[e.split(".").length-1]}}const mD=Q("explorer/uploadFile",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}}}),yD=Q("explorer/uploadFile",async({file:e,path:r,parentNode:t},{dispatch:a})=>{const{editor:s,supportedEditors:i}=hr(r),{name:c,ext:l}=vD(e.name);a(tv({parent:t,child:{name:c,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(hc({parent:t,child:{name:c,path:`${r}/${e.name}`,type:e.type,error:{message:"error uploading file"},flags:{},config:{editor:s,supportedEditors:i},ext:l}})),d.status!==413&&_.toastSubject.next({message:"error uploading file",kind:"danger"})):await a(Sr(t.path)),{status:d.status,fileName:e.name}}catch{return a(hc({parent:t,child:{name:c,path:`${r}/${e.name}`,type:e.type,error:{message:"error uploading file"},flags:{},config:{editor:s,supportedEditors:i},ext:l}})),_.toastSubject.next({message:"error uploading file",kind:"danger"}),{status:500,fileName:e.name}}}),Xn=Q("explorer/createNewFile",async({fileName:e,type:r,path:t,parentNode:a,content:s},{dispatch:i,rejectWithValue:c,getState:l})=>{const{qodly:d}=l().settings.server;try{const p=await _.setFileContent({name:nv(e,r,d),content:s||rv(r),path:t,asText:[_.FileFolderType.CLASS,_.FileFolderType.METHOD].includes(r)});return a.error&&(a.flags.expanded?await i(Sr(a.path)):await i($a(a.path))),{qodly:d,file:p,parentNode:a}}catch{return c("failed to create folder")}});function ov(e,r){const{qodly:t=!0,withExtension:a=!0}=r||{},s=_.getFileExtentionFromType(e.type,t);let i="";switch(e.type){case _.FileFolderType.WEBFORM:i=`${_.FolderRootPath.WEBFORMS}/${e.name}`;break;case _.FileFolderType.METHOD:i=`${_.FolderRootPath.METHODS}/${e.name}`;break;case _.FileFolderType.CLASS:i=`${_.FolderRootPath.CLASSES}/${e.name}`;break;default:return""}return`${i}${a?`.${s}`:""}`}const bD=Q("explorer/createNewFileAndOpen",async(e,{dispatch:r,getState:t})=>{const a=await r(Xn(e)).unwrap(),{qodly:s}=t().settings.server;if(a){const{file:i}=a,c=ov(i,{withExtension:!1,qodly:s}),{editor:l}=hr(c);await r(Ma({file:{name:e.fileName,type:i.type,path:c,editor:l,date:new Date().toISOString()}}))}}),as=Q("explorer/createNewNode",async({fileName:e,path:r,parentNode:t},{rejectWithValue:a})=>{try{return{file:await _.createFolder({verb:_.DesignerRequestVerb.CREATE_FOLDER,path:`${r}/${e}`,recursive:!0}),parentNode:t}}catch{return _.toastSubject.next({message:"failed to create folder",kind:"danger"}),a("failed to create folder")}}),Vs=async e=>{try{const r=e.path.split(".").at(-1),t=await _.getNodeInfo({verb:_.DesignerRequestVerb.GET_INFO,path:e.path,content:!0,as:xh(r)?"json":"text"}),a={editor:e.editor},s=_.getTypeFromExtension(e.path);s===_.FileFolderType.METHOD&&(a.attributes=_.parseAttributes(t.content),t.content=_.addAttributesToContent(t.content,{}));const{content:i,date:c,ext:l}=t;return{date:c,view:{panel:{isOpen:!1,type:"",current:""}},flags:{enabled:["WebForm","MForm"].includes(l)},extra:a,name:e.name,path:e.path,type:s,initialContent:i,content:i}}catch(r){const{data:t}=r;if(t.__ERROR.find(a=>a.errCode===_.ERROR_CODES.FILE_NOT_FOUND))switch(e.path){case _.ROLES_TAB_PATH:{const a={permissions:{allowed:[]},privileges:[],roles:[]};return{date:new Date().toISOString(),flags:{},extra:{editor:{key:"editors:roles"}},name:"Roles & Privileges",path:e.path,type:_.FileFolderType.ROLES,initialContent:a,content:a}}case cn:{const a={};return{date:new Date().toISOString(),flags:{},extra:{editor:{key:"editors:settings"}},name:"Settings",path:e.path,type:_.FileFolderType.SETTINGS,initialContent:a,content:a}}}throw r}},Ma=Q("explorer/openFile",async({file:e,inactive:r,flags:t={}},{getState:a,dispatch:s})=>{const{root:{tabs:i},roles:c}=a(),l=i.find(({path:g})=>e.path===g);if(l){const g={...l,extra:{...l==null?void 0:l.extra,editor:e.editor},flags:{...l==null?void 0:l.flags,...t}};return s(Dt(g)),g}if(e.path.startsWith("Debugger")){const g=a().debugger.sessions.find(m=>`Debugger/${m.threadId}`===e.path);if(g){const{source:{content:m},source:b}=g.currentStackFrame,E={name:e.name,type:_.FileFolderType.DEBUGGER,date:new Date().toISOString(),path:e.path,content:m,view:{panel:{isOpen:!1,type:"",current:""}},initialContent:m,flags:{},extra:{source:b,editor:e.editor}};return s(Dt(E)),E}}const d=await Vs(e);return e.path===_.ROLES_TAB_PATH&&!c.flags.touched?s(Yc({content:d.content,date:d.date})):e.path===cn&&s(Ys({path:"project",value:d.content})),s((r?Wv:Dt)(d)),d}),Jc=Q("explorer/openFileAtLine",async({file:e},{getState:r,dispatch:t})=>{const{tabs:a}=r().root,s=a.find(({path:c})=>e.path===c);if(s){const c={...s,extra:{...s==null?void 0:s.extra,editor:e.editor}};return t(Dt(c)),c}const i=await Vs(e);return t(Dt(i)),i}),sv=Q("explorer/injectContentAtLine",async(e,{getState:r,dispatch:t,rejectWithValue:a})=>{const s=r();e.path.split("/").pop();const c=ft(s.explorer,e.path);if(!c)return a(`Error while trying to inject content in file ${e.path}`);const l=await Vs({name:c.name,date:c.date||new Date().toISOString(),path:`${c.path}.${c.ext}`,type:_.FileFolderType.CLASS,editor:c.config.editor});return await t(Dt(l)),{...e,path:`${c.path}.${c.ext}`}}),iv=Q("explorer/openFileAtSelection",async({file:e},{getState:r,dispatch:t})=>{const{tabs:a}=r().root,s=a.find(({path:c})=>e.path===c);if(s){const c={...s,extra:{...s==null?void 0:s.extra,editor:e.editor}};return t(Dt(c)),c}const i=await Vs(e);return t(Dt(i)),i}),vc=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 _.dropFile({root:_.FolderRootType.ROOT,type:av(t),verb:_.DesignerRequestVerb.DROP,name:r,path:i.join("/")}),node:e}}),_D=Q("explorer/deleteFolder",async e=>{const{path:r,flags:t}=e;if(t.error)return{deleted:!0,node:e};const{deleted:a}=await _.removeItem({force:!0,path:r,verb:_.DesignerRequestVerb.REMOVE_ITEM});return{deleted:a,node:e}}),ED=Q("explorer/removeFileNode",async e=>{const{ext:r,path:t}=e;return await _.removeItem({verb:_.DesignerRequestVerb.REMOVE_ITEM,path:`${t}.${r}`,force:!0}),t==="Classes/DataStore"&&za(),{deleted:!0,node:e}}),Zn=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 _.moveItem({verb:_.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 _.moveItem({verb:_.DesignerRequestVerb.MOVE_ITEM,path:`${t.join("/")}/${e.name}`,newpath:`${t.join("/")}/${r}`}),{old:e,new:{...e,name:r,path:`${t.join("/")}/${r}`}}}),Na=Q("explorer/relocateNode",async({draggedNode:e,newLocation:r},{rejectWithValue:t})=>{try{await _.moveItem({verb:_.DesignerRequestVerb.MOVE_ITEM,path:`${e.path}.${e.ext}`,newpath:`${r.path}/${e.name}.${e.ext}`})}catch{return t("can't move item")}}),os=Q("explorer/duplicateNode",async({node:e,duplicateName:r},{rejectWithValue:t,fulfillWithValue:a,getState:s})=>{const i=e.path.split("/");i.pop();try{const{tabs:c}=s().root,l=c.find(({path:m})=>m===`${e.path}${e.ext?`.${e.ext}`:""}`),d=["4dm","4qm","4qs"].includes(e.ext),{content:p}=l||await _.getNodeInfo({verb:_.DesignerRequestVerb.GET_INFO,path:`${e.path}.${e.ext}`,content:!0,as:d?"text":"json"}),g=await _.setFileContent({name:`${r}.${e.ext}`,content:p,path:i.join("/"),asText:d});return a({node:{...g,path:i.join("/")}})}catch{return t("failed to duplicate file")}}),SD=Q("explorer/executeMethod",async({methodName:e,params:r=[],resultingDataSource:t={},namespace:a=""},{rejectWithValue:s})=>{var i,c;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?_.toastSubject.next({message:`${((i=d.__NOTIFICATION)==null?void 0:i.message)||""}`,kind:`${((c=d.__NOTIFICATION)==null?void 0:c.type)||"info"}`}):_.toastSubject.next({message:"Method executed Successfully",kind:"message"}),d}catch(l){return _.toastSubject.next({message:l.message||`Error executing the method "**${e}**"`,kind:"danger",markdown:!0}),s("can't execute method")}}),wD=Q("files/fetchFiles",async()=>_.getFolders(_.FolderRootType.WEBFORMS,_.FolderRootType.METHODS,_.FolderRootType.CLASSES)),Xc=Q("tabs/renameDatasource",async(e,{dispatch:r,getState:t})=>{var E,x;const a=!!e.datasourceNamespace,{confirmed:s}=await r(vr({message:"Are you sure you want to rename the datasource?",title:"Rename Datasource",type:zt.CONFIRM,color:qr.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:c,datasourceNamespace:l,value:d,path:p}=e,g=t();let m=[];if(a){const C=g.sharedDatasources.sources[l]||[];m.push(...C)}else if(p){const C=g.root.tabs.find(_.by("path",p));if(m=(x=(E=C==null?void 0:C.content)==null?void 0:E.metadata)==null?void 0:x.datasources,!m)return null}const b=new RegExp(`^${c}\\b`,"");if(m=m.map(C=>{const I=(_.isObjectDatasource(C)||!_.isSimpleDatasource(C))&&C.from&&b.test(C.from),P=C.events?C.events.map(k=>{var M,j,O,Y;switch(k==null?void 0:k.type){case"method":{const H=k;return H.params?{...H,params:H.params.map(z=>{var te;return{...z,datasource:(te=z.datasource)==null?void 0:te.replace(new RegExp(`^${c}`,""),d)}}),returns:(M=H.returns)!=null&&M.datasource?{...H.returns,datasource:(j=H.returns.datasource)==null?void 0:j.replace(new RegExp(`^${c}`,""),d)}:H.returns}:H}case"simple-action":{const H=k;return H.datasource?{...H,datasource:{...H.datasource,name:(O=H.datasource.name)==null?void 0:O.replace(new RegExp(`^${c}`,""),d),from:(Y=H.datasource.from)==null?void 0:Y.replace(new RegExp(`^${c}`,""),d)}}:H}default:return k}}):C.events;return C.id===c?{...C,id:d,events:P}:I&&C.from?{...C,from:C.from.replace(new RegExp(`^${c}`,""),d),events:P}:{...C,events:P}}),i){const C=a?`${l}:${c}`:`${c}`,I=a?`${l}:${d}`:`${d}`;_.datasourcesSubject.next({path:p??"",action:_.DatasourcesActions.RENAME,old_reference:C,new_reference:I,is_shared:a})}return{path:p,namespace:l,datasources:m}}),Zc=Q("tabs/edit-datasource",(e,{getState:r})=>{var i,c;const t=r();let a=[];if(e.namespace)a=t.sharedDatasources.sources[e.namespace];else{const l=t.root.tabs.find(_.by("path",e.path));l&&(a=((c=(i=l.content)==null?void 0:i.metadata)==null?void 0:c.datasources)||[])}return a.map(l=>l.id===e.datasourceId?Object.assign({},l,{[e.propertyKey]:e.value}):l)}),uv=Q("tabs/fetchChanges",async(e,{getState:r})=>{const a=ca(r()).filter(s=>[_.FileFolderType.METHOD,_.FileFolderType.CLASS].includes(s.type));return _.getFilesInfo(...a.map(s=>{const[i]=s.path.split("/").filter(Boolean);return{name:s.name,type:s.type,root:i,path:"."}}))}),TD=Q("files/saveAll",async(e,{getState:r,dispatch:t})=>{const a=Lc(r());for(const s of a)t(Qn({tab:s}))}),Qc=Q("files/tryCloseTab",async(e,{getState:r,dispatch:t})=>{const{tabs:a}=r().root,s=a.findIndex(c=>c.path===e);if(s===-1)return!1;const i=a[s];if(i!=null&&i.flags.touched){const{confirmed:c}=await t(vr({title:Is(i),message:"Your unsaved changes will be lost. Proceed anyway?",type:zt.CONFIRM,color:qr.WARNING,icon:"AiFillWarning"})).unwrap();if(!c)return!1}return t(Fv(s)),i.path===_.ROLES_TAB_PATH&&i.flags.touched&&(async()=>{const l=await _.getNodeInfo({verb:_.DesignerRequestVerb.GET_INFO,path:_.ROLES_TAB_PATH,content:!0,as:"json"});t(Yc({content:l.content,date:l.date}))})(),!0}),xD=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(vr({title:"Closing other tabs",message:"Your changes will be lost if you do not save them. Close anyway?",type:zt.CONFIRM,color:qr.WARNING,icon:"AiFillWarning"})).unwrap();if(!i)return}t(jv(e))}),CD=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(vr({title:"Closing all tabs",message:"Your changes will be lost if you do not save them. Close anyway?",type:zt.CONFIRM,color:qr.WARNING,icon:"AiFillWarning"})).unwrap();if(!i)return}t(Nv())}),RD=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(vr({title:"Closing right tabs",message:"Your changes will be lost if you do not save them. Close anyway?",type:zt.CONFIRM,color:qr.WARNING,icon:"AiFillWarning"})).unwrap();if(!i)return}t(Lv(e))}),OD=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(vr({title:"Closing left tabs",message:"Your changes will be lost if you do not save them. Close anyway?",type:zt.CONFIRM,color:qr.WARNING,icon:"AiFillWarning"})).unwrap();if(!i)return}t(kv(e))}),mc=Q("files/reloadTab",async(e,{dispatch:r})=>{if(e.flags.touched){const{confirmed:s}=await r(vr({title:Is(e),message:"Changes made to the file will be lost. Continue?",type:zt.CONFIRM,color:qr.WARNING,icon:"AiFillWarning"})).unwrap();if(!s)return}const t=ag(e.path),a=await _.getNodeInfo({verb:_.DesignerRequestVerb.GET_INFO,path:e.path,content:!0,as:t});if(e.path===_.ROLES_TAB_PATH){const{roles:s,privileges:i}=Gs(a.content);r(Vc({roles:s,privileges:i}))}else if(e.path===cn){const{content:s}=a;r(Ys({path:"project",value:s}))}else{const{content:s}=a;e.type===_.FileFolderType.WEBFORM?_.webformSubject.next({path:e.path,action:_.WebformActions.RELOAD,payload:s.components}):e.type===_.FileFolderType.MODEL&&fg.next({action:"reload",payload:s})}return a}),Qn=Q("files/saveTab",async({tab:e},{dispatch:r,getState:t})=>{const{path:a,content:s}=e;if(e.type===_.FileFolderType.DEBUGGER)return{...e,errors:[]};a.split("/").pop();const c=await _.getFilesInfo({path:a});if(c.files[0]){const g=new Date(e.date),m=new Date(c.files[0].date);if(g.getTime()<m.getTime()){const{confirmed:b}=await r(vr({title:Is(e),message:"New content has been found on the server. Are you sure you want to continue?",type:zt.CONFIRM,icon:"FaSave"})).unwrap();if(!b)return r(Mv({path:a,flags:{old:!0}})),null}}const l=await _.saveContent({verb:_.DesignerRequestVerb.SAVE_CONTENT,content:AD(e,t()),path:a});(e.type===_.FileFolderType.CLASS||e.type===_.FileFolderType.MODEL)&&za();const d=(l.modelErrors||[]).map(g=>g.message),p=(l.permissionsErrors||[]).map(g=>g.message);return{...e,content:s,date:l.date,initialContent:s,errors:d.length>0||p.length>0?[{title:"Model errors",messages:d},{title:"Permissions errors",messages:p}]:[]}}),AD=(e,r)=>{switch(!0){case e.path==="settings.json":case e.path===cn:return r.settings.project;case e.type===_.FileFolderType.ROLES:return qc(r.roles);case e.type===_.FileFolderType.MODEL:return e.content||{toJSON:!0,dataClasses:[],extraProperties:{}};default:return e.content}},Hp=async e=>{if(e.type===_.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=e.path.split("/").filter(Boolean)[0],t=await _.getFile({root:r,type:e.type,verb:_.DesignerRequestVerb.GET,name:e.name}),a={};t.type===_.FileFolderType.METHOD&&(a.attributes=_.parseAttributes(t.content));const{date:s,name:i,type:c,content:l}=t;return{date:s,flags:{enabled:e.type===_.FileFolderType.WEBFORM},extra:a,view:{panel:{isOpen:!1,type:"",current:""}},name:i,path:e.path,type:c,initialContent:l,content:c===_.FileFolderType.MODEL?Th(l):l}},cv=Q("files/tryInjectMethod",async({type:e,dataclass:r},{getState:t,dispatch:a})=>{const{root:{tabs:s},settings:{server:{qodly:i}}}=t(),c=_.getFileExtentionFromType("class",i);let l="",d="",p=null;if(!r)l="DataStore",d=`Classes/DataStore.${c}`;else switch(e){case"dataclass":l=r,d=`Classes/${r}.${c}`;break;case"collection":l=`${r}Selection`,d=`Classes/${r}Selection.${c}`;break;case"entity":l=`${r}Entity`,d=`Classes/${r}Entity.${c}`;break;default:return p}const g=s.find(_.by("path",d));if(g)return a(Dt(g)),g;try{p=await Hp({name:l,date:new Date().toISOString(),path:`class/${l}.${c}`,type:_.FileFolderType.CLASS})}catch{r?await a(gc({type:"dataclass",className:r,collectionName:`${r}Selection`,toCreate:e})):await a(gc({type:"model"}))}return p=await Hp({name:l,date:new Date().toISOString(),path:`class/${l}.${c}`,type:_.FileFolderType.CLASS}),p.path=d,a(Dt(p)),p}),PD=Q("roles/open",async(e,{dispatch:r,getState:t})=>{const{tabs:a}=t().root,s=a.find(i=>i.path===_.ROLES_TAB_PATH);if(s)return r(Dt(s)),s;r(xs())}),{debugger:Yn={meta:{state:Nr.DETACHED},list:[],sessions:[],expressions:[]}}=na();var Jp,Xp;const DD={meta:{...Yn.meta,state:((Jp=Yn.meta)==null?void 0:Jp.state)===Nr.ATTACHED?(Xp=Yn.meta)==null?void 0:Xp.state:Nr.DETACHED},list:Yn.list||[],sessions:Yn.sessions||[],expressions:Yn.expressions||[]};function qp(e,r){const{line:t,offset:a,type:s="saved"}=r;e.breakpoints[s].locations.push({line:t}),ze.isNumber(a)&&(e.breakpoints[s].offset=a)}function Gp(e,r,t,a){e.breakpoints[t].locations=r,ze.isNumber(a)&&(e.breakpoints[t].offset=a)}function zp({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 Yp(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 Qo(e){return e.map(({label:r})=>({label:r}))}const lv=or({name:"debugger",initialState:DD,reducers:{addBreakpointDecoration(e,r){const{filePath:t,fileType:a,methodName:s,className:i,ext:c,source:l,breakpoint:d}=r.payload,p=On(e.list,t,s,i);if(p)qp(p,d);else{if(a===_.FileFolderType.CLASS&&d.offset===void 0)throw new Error(`Cannot add a breakpoint on a function without offset. Try editing the ${i} class.`);const g=zp({filePath:t,fileType:a,methodName:s,className:i,ext:c,source:l});qp(g,d),e.list.push(g)}},removeBreakpointDecoration(e,r){const{filePath:t,methodName:a,line:s,offset:i=0,type:c="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 g=p.breakpoints[c].offset||0;p.breakpoints[c].locations=p.breakpoints[c].locations.filter(m=>m.line+g!==d),c==="saved"&&(p.breakpoints.draft.locations=p.breakpoints.draft.locations.filter(m=>m.line+g!==d))})}}else{const l=On(e.list,t,a);l&&(l.breakpoints[c].locations=l.breakpoints[c].locations.filter(d=>d.line!==s),c==="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:c,source:l,breakpoints:d,offset:p,type:g="saved",clearDraft:m}=r.payload,b=On(e.list,t,s);if(b)Gp(b,d,g,p),m&&g!=="draft"&&(b.breakpoints.draft.locations=[]);else{const E=zp({filePath:t,fileType:a,methodName:s,className:i,ext:c,source:l});Gp(E,d,g,p),e.list.push(E)}},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"?{locations:[],offset:0}:s.breakpoints.draft,saved:!a||a==="saved"?{locations:[],offset:0}:s.breakpoints.saved}:s.breakpoints}))},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=Qo(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((c,l)=>l!==a),s&&(e.expressions=Qo(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,c=st(e.sessions,t);c&&c.expressions[a]&&(c.expressions[a].label=s,i&&(e.expressions=Qo(c.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,c=s.expressions[i];c?(c.result=a.result,c.nakedResult=a.nakedResult,c.variablesReference=a.variablesReference||0,c.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 c=i.expressions[a];c&&(c.result=`"${s}"`,c.nakedResult=s)}},saveExpressions(e,r){const{expressions:t}=r.payload;e.expressions=Qo(t)},addSession(e,r){const{threadId:t,channelId:a,stackFrames:s,exceptions:i=[]}=r.payload,c=st(e.sessions,t),l=s[0],{expressions:d=[]}=e;if(c)c.expressions=d;else{const p=Ic(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 c;return i.threadId===t?{...i,variables:{...i.variables,callchain:Yp((c=i.variables)==null?void 0:c.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 c;return i.threadId===t?{...i,variables:{...i.variables,expressions:Yp((c=i.variables)==null?void 0:c.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===Nr.ERROR){e.meta.error={...e.meta.error,time:Date.now()};const{override:t,error:a={code:null,reason:"",type:gs.SOCKET_ERROR}}=r.payload;if((t||e.meta.state!==Nr.ERROR)&&(e.meta.error={...e.meta.error,...a}),(a==null?void 0:a.type)===gs.SOCKET_CLOSURE&&!(a!=null&&a.reason)&&e.meta.state===Nr.DETACHED)return}e.meta.state=r.payload.state}},extraReducers:e=>{e.addCase(dv.fulfilled,r=>{r.sessions=[]})}}),{addBreakpointDecoration:ID,removeBreakpointDecoration:FD,setBreakpointsDecoration:$D,clearBreakpoints:MD,setActiveLine:ND,addExpression:LD,renameExpression:jD,removeExpression:kD,removeAllExpressions:BD,setExpression:WD,updateExpressionAt:UD,saveExpressions:HD,addSession:qD,updateSession:GD,removeSession:zD,removeSessionByIndex:YD,setSessions:fv,setCallChainVariables:VD,setExpressionVariables:KD,setSourceContent:JD,setDebuggerMeta:XD}=lv.actions,dv=Q("files/wipeDebuggerSessions",async(e,{getState:r,dispatch:t})=>{const{sessions:a}=r().debugger;for(const{threadId:s}of a){const i=Ic(s);t(Qc(i))}}),pv=Q("files/removeDebuggerSessionsNotIn",async(e,{getState:r,dispatch:t})=>{const{threadIds:a}=e,{sessions:s}=r().debugger,i=[],c=s.filter(l=>{const d=a.includes(l.threadId);return d||i.push(l.threadId),d});return t(fv(c)),{staleThreadIds:i}});var el=(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))(el||{}),Mr=(e=>(e.STORAGE="storage",e.RELATEDENTITY="relatedEntity",e.RELATEDENTITIES="relatedEntities",e.CALCULATED="calculated",e.COMPOSITION="composition",e.ALIAS="alias",e))(Mr||{});const ZD=e=>["string","uuid","number","long"].includes(e.type),QD=[{label:"Storage",value:"storage"},{label:"Calculated",value:"calculated"}],eI=[{title:"UUID",kind:"storage",value:"uuid",calculatedType:"uuid",calculatedKind:"storage"},{title:"Long",kind:"storage",value:"long",calculatedType:"long",calculatedKind:"storage"}],tI=[{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"}],rI=[{label:"Expose as REST",value:"public"},{label:"Do not expose as REST",value:"publicOnServer"}],nI=[{label:"Expose as REST",value:"public"},{label:"Do not expose as REST",value:"publicOnServer"}],aI=[{label:"None",value:"none"},{label:"B-tree",value:"btree"},{label:"Cluster",value:"cluster"},{label:"Automatic",value:"auto"}],hv=Pt("model/add-dataclass"),gv=Pt("model/rename-dataclass"),vv=Pt("model/remove-dataclass"),mv=Pt("model/add-attribute"),oI=Pt("model/edit-attribute-property"),yv=Pt("model/remove-attribute"),bv=Pt("model/rename-attribute"),_v=Pt("model/edit-primary-key"),sI=Pt("model/edit-dataclass-property"),Ev=Pt("model/rename-collection"),iI=(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 ss(e,r,t){const a=e;let s=0;for(;t[`${a}${s||""}`];)s++;return`${a}${s||""}`}const La=e=>e.kind===Mr.RELATEDENTITY,Cs=e=>e.kind===Mr.RELATEDENTITIES,uI=e=>Cs(e)||La(e),tl=Q("models/fetch",async()=>{try{return(await _.http(_.API_PREFIX,{method:"POST",body:JSON.stringify({verb:_.DesignerRequestVerb.GET_INFO,path:_.MODEL_TAB_PATH,as:"json",content:!0}),headers:new Headers({"Content-Type":"application/json"})})).content}catch(e){return e.message}}),Rs=Q("models/save",async(e,{getState:r,rejectWithValue:t})=>{const{tabs:a}=r().root,s=a.find(i=>i.path===_.MODEL_TAB_PATH);if(!s)return t("Error while saving the model");try{const i=await _.http(_.API_PREFIX,{method:"POST",body:JSON.stringify({verb:"save",path:s.path,content:s.content}),headers:new Headers({"Content-Type":"application/json"})});return za(),{...i,path:s.path,content:e.content||{toJSON:!0,dataClasses:[],extraProperties:{}}}}catch{return t("Error while saving the model")}}),cI=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(tl())}),lI=Q("model/rename-dataclass",async(e,{getState:r,dispatch:t})=>{var m,b;const{dataclassId:a,selectionId:s,name:i}=e;let c=r();const l=c.explorer.find(E=>E.path===_.FolderRootPath.CLASSES);if(!l)throw new Error("Classes folder was not found!");await t(Sr(l.path)),c=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`}};(b=(m=c.explorer.find(E=>E.path===_.FolderRootPath.CLASSES))==null?void 0:m.children)==null||b.forEach(E=>{E.name===d.class.filename_update&&(d.class.newNameTaken=!0),E.name===d.entity.filename_update&&(d.entity.newNameTaken=!0),E.name===d.selection.filename_update&&(d.selection.newNameTaken=!0),E.name===a?(d.class.found=!0,d.class.file=E):E.name===`${a}Entity`?(d.entity.found=!0,d.entity.file=E):E.name===s&&(d.selection.found=!0,d.selection.file=E)});const p=Object.entries(d).reduce((E,x)=>{const[C,I]=x;return I.found?I.newNameTaken?[...E,{type:"error",message:`Cannot rename ${C} file to ${I.filename_update} because it already exists. The existing file will be used instead!`}]:E:[...E,{type:"warning",message:`${a} ${C} file was not found`}]},[]);p.length>0&&t(vr({message:"The following errors were encountered during dataclass rename:",views:{tips:p}}));const g=Object.values(d).filter(E=>E.found&&E.file&&!E.newNameTaken);await Promise.all(g.map(async E=>await t(Zn({file:E.file,newname:E.filename_update})))),g.length>0&&t(Sr("Classes"))}),Ha={DATACLASS_DELETE:"dataclass.delete",DATACLASS_DRAGGABLE:"dataclass.draggable"},fI={model:{dataClasses:{},collections:{},extraProperties:{}},draft:{dataClasses:{},collections:{},extraProperties:{}},flags:{[Ha.DATACLASS_DELETE]:!0,[Ha.DATACLASS_DRAGGABLE]:!0}},Sv=or({name:"Models",initialState:fI,reducers:{setModelFlag(e,r){e.flags={...e.flags,...r.payload}}},extraReducers(e){e.addCase(hv,({draft:{dataClasses:r}},t)=>{var c,l;const{dataclassID:a}=t.payload,s=ss(a||"DataClass","className",r),i={className:s,collectionName:`${s}Selection`,attributes:[{name:"ID",kind:Mr.STORAGE,type:el.LONG,scope:"public",indexKind:"auto",unique:!0,primKey:!0,autosequence:!0}],name:s,scope:"public",extraProperties:{position:{x:((c=t.payload.position)==null?void 0:c.x)||0,y:((l=t.payload.position)==null?void 0:l.y)||0}}};r[i.name]=i}).addCase(vv,({draft:{dataClasses:r}},t)=>{const{dataclassID:a}=t.payload;r[a]&&(delete r[a],Object.values(r).forEach(i=>{i.attributes=i.attributes.filter(c=>c.type!==a&&c.type!==i.collectionName)}))}).addCase(gv,({draft:{dataClasses:r,collections:t}},a)=>{const{dataclassID:s,newName:i}=a.payload;if(!r[s]||r[i])return;const c=r[s].collectionName,l=ss(`${i}Selection`,"collectionName",t);Object.values(r).forEach(d=>{d.className===s&&(d.className=i,d.name=i,d.collectionName=l),d.attributes.forEach(p=>{p.type===s?(p.type=i,p.path=i):p.type===c&&(p.type=l)})})}).addCase(mv,({draft:{dataClasses:r}},t)=>{const{dataclassID:a,attributeName:s,attributeType:i,attributeKind:c,target:l}=t.payload;if(!r[a]||_.exists("name",s,r[a].attributes))return;const p={name:s,kind:c,type:i,exposed:!0,scope:"public"};if(c===Mr.RELATEDENTITY){if(!r[i])return;p.path=i;const m={name:ss(r[i].collectionName,"name",r[i].attributes),type:r[a].collectionName,kind:Mr.RELATEDENTITIES,reversePath:!0,path:s,scope:"public",exposed:!0};r[i].attributes.push(m)}else if(c===Mr.RELATEDENTITIES){const g=r[i];if(!g)return;const m=g.attributes.find(_.by("name",l));if(m){if(!La(m)||m.type!==r[a].className)return}else{p.path=l,p.reversePath=!0,p.type=i;const b={name:l,kind:Mr.RELATEDENTITY,scope:"public",path:g.className,type:g.className,exposed:!0};g.attributes.push(b)}}r[a].attributes.push(p)}).addCase(bv,({draft:{dataClasses:r}},t)=>{const{dataclassID:a,attributeID:s,newName:i}=t.payload,c=r[a].attributes.find(_.by("name",s)),l=r[a].attributes.find(_.by("name",i));!c||l||Object.values(r).forEach(({collectionName:d,attributes:p,className:g})=>{p.forEach(m=>{La(c)&&Cs(m)&&m.type===d&&m.path===s&&(m.path=i),g===a&&m.name===s&&(m.name=i)})})}).addCase(yv,({draft:{dataClasses:r}},t)=>{const{dataclassID:a,attributeID:s}=t.payload;if(!r[a])return;const i=r[a].attributes.find(_.by("name",s));i&&(La(i)&&Object.values(r).forEach(c=>{c.attributes=c.attributes.filter(l=>!(Cs(l)&&l.type===c.collectionName&&l.path===i.name))}),r[a].attributes=r[a].attributes.filter(_.outBy("name",s)))}).addCase(Ev,({draft:{dataClasses:r,collections:t}},a)=>{const{dataclassID:s,collectionName:i}=a.payload;if(!r[s])return;const c=r[s].collectionName;t[i]||(r[s].collectionName=i,t[i]=r[s],delete t[c],Object.values(r).forEach(l=>l.attributes.forEach(d=>{d.type===c&&(d.type=i)})))}).addCase(_v,({draft:{dataClasses:r}},t)=>{const{dataclassID:a,newPrimKey:s}=t.payload;r[a]&&r[a].attributes.forEach(i=>{i.name===s?i.primKey=!0:i.primKey=!1})}),e.addCase(tl.fulfilled,(r,t)=>{var c;const a={},s={},i=t.payload.extraProperties||{};(c=t.payload.dataClasses)==null||c.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(Rs.pending,()=>{}).addCase(Rs.fulfilled,(r,t)=>{const a={},s={},i=t.payload.content.extraProperties||{};t.payload.content.dataClasses.forEach(c=>{a[c.name]=c,s[c.collectionName]=c}),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:dI}=Sv.actions,pI=()=>Wr(e=>e.model.draft.dataClasses),hI=()=>Wr(e=>e.model.draft.collections),gI=e=>Wr(r=>r.model.draft.dataClasses[e]),vI=(e,r)=>Wr(t=>t.model.draft.dataClasses[e].attributes.find(_.by("name",r))),mI=()=>Wr(e=>e.model.draft.extraProperties),yI=()=>{const e=Wr(s=>s.model.flags),r=s=>s in e?e[s]:void 0,t=r(Ha.DATACLASS_DELETE),a=r(Ha.DATACLASS_DRAGGABLE);return{deleteDataclass:t,draggableDataclass:a,flags:e}},bI=Sv.reducer;function Hu(e,r){const t=e.tabs.find(({path:a})=>a===cn);t&&(t.flags.touched=r)}const wv={SIDEBAR_SECTION_RESIZABLE:"sidebar.section.resizable"},{webforms:es}=na(),Tv={[wv.SIDEBAR_SECTION_RESIZABLE]:!0},xv={...es,templates:{data:[],selectedGroup:""},datasources:{...Pc.webforms.datasources,...es==null?void 0:es.datasources},flags:Tv},Cv=or({name:"webforms",initialState:xv,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(Iv.fulfilled,(r,t)=>{r.components=t.payload})}}),{toggleInspector:_I,inspect:EI,addComponent:Rv,editComponent:Ov,removeComponent:Av,setSelectedGroup:SI,setTemplatesData:Pv,setTemplateData:Dv,setDatasourcesTheme:wI,setWebformsFlag:TI}=Cv.actions,xI=Cv.reducer,rl=ze.curry((e,r)=>{var s,i;const t={...r.sharedDatasources.sources},a=(i=((s=r.root.tabs.find(_.by("path",e)))==null?void 0:s.content).metadata)==null?void 0:i.datasources;return a&&(t[e]=a),ze.cloneDeep(t)}),CI=Q("webforms/fetchTemplates",async(e,{dispatch:r,getState:t})=>{const{data:a}=t().webforms.templates,s=t().settings.session["studio.tipsBaseUrl"]||"";if(!ze.isEmpty(a))return a;try{const c=await(await fetch(`${s}/build/index.json?t=${Date.now()}`)).json();return r(Pv(c)),c}catch{return[]}}),RI=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&&!ze.isEmpty(s.components))return s.components;try{const c=await(await fetch(`${s==null?void 0:s.link}?t=${Date.now()}`)).json();return r(Dv({group:e,components:c})),c}catch{return[]}}),Iv=Q("webforms/fetchCraftedComponents",async(e,{rejectWithValue:r})=>{try{return(await _.getNodeInfo({path:"WebForms/crafted_components.json",verb:_.DesignerRequestVerb.GET_INFO,content:!0,as:"json"})).content}catch{return r("Error while loading the crafted components")}}),OI=Q("webforms/addCraftedComponent",async(e,{dispatch:r,rejectWithValue:t,getState:a})=>{try{r(Rv(e));const{webforms:{components:s}}=a();_.setCraftedComponents(s)}catch{return t("Error while adding the crafted component")}}),AI=Q("webforms/editCraftedComponent",async(e,{dispatch:r,rejectWithValue:t,getState:a})=>{try{r(Ov(e));const{webforms:{components:s}}=a();_.setCraftedComponents(s)}catch{return t("Error while editing the crafted component")}}),PI=Q("webforms/removeCraftedComponent",async(e,{dispatch:r,rejectWithValue:t,getState:a})=>{try{r(Av(e));const{webforms:{components:s}}=a();_.setCraftedComponents(s)}catch{return t("Error while removing the crafted component")}}),nl=Q("datasources/add-datasource",async(e,{getState:r,rejectWithValue:t})=>{var a,s;try{const i=r(),c=e.datasource,l=!!c.namespace,d=[];if(l){const p={...i.sharedDatasources.sources,[c.namespace]:[...i.sharedDatasources.sources[c.namespace],c]};d.push(...p[c.namespace]),await _.setSharedSources(p)}else(((s=(a=i.root.tabs.find(_.by("path",e.path)).content)==null?void 0:a.metadata)==null?void 0:s.datasources)||[]).push(c);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")}}),al=Q("datasources/edit-datasource",async(e,{getState:r,rejectWithValue:t})=>{try{const{namespace:a,path:s}=e,i=r(),c=!!e.namespace,l=rl(s,i);let d=ze.defaultTo(l[a||s],[]);return d=d.map(p=>p.id===e.id?{...p,[e.property]:e.value}:p),c&&await _.setSharedSources({...i.sharedDatasources.sources,[e.namespace]:d}),{list:d,path:e.path,namespace:e.namespace}}catch{t(`Error while editing datasource ${e.id}`)}}),DI=e=>e.type===ea.fulfilled.type,ea=Q("datasources/rename-datasource",async(e,{getState:r,rejectWithValue:t})=>{try{const a=r(),s=!!e.namespace,i=e.namespace||e.path,c=rl(e.path,a),l=ze.defaultTo(c[i],[]),d=new RegExp(`^${e.id}\\b`,"");if(l.forEach(p=>{var m;const g=(_.isObjectDatasource(p)||!_.isSimpleDatasource(p))&&p.from&&d.test(p.from);e.updateRefs&&((m=p.events)==null||m.forEach(b=>{var E,x,C,I,P;switch(b.type){case"method":{const k=b;k.params.forEach(M=>{M.datasource&&Object.assign(M,{datasource:M.datasource.replace(new RegExp(`^${e.id}`,""),e.new_name)})}),k.returns&&Object.assign(k.returns,{datasource:(x=(E=k.returns)==null?void 0:E.datasource)==null?void 0:x.replace(new RegExp(`^${e.id}`,""),e.new_name)});return}case"simple-action":{const k=b;k.datasource&&Object.assign(k.datasource,{name:(C=k.datasource.name)==null?void 0:C.replace(new RegExp(`^${e.id}`,""),e.new_name),from:(I=k.datasource.from)==null?void 0:I.replace(new RegExp(`^${e.id}`,""),e.new_name),target:(P=k.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:g&&p.from&&(p.from=p.from.replace(new RegExp(`^${e.id}`,""),e.new_name))}),e.updateRefs){const p=_.getDatasourceId({id:e.id,namespace:e.namespace}),g=_.getDatasourceId({id:e.new_name,namespace:e.namespace});_.datasourcesSubject.next({path:e.path??"",action:_.DatasourcesActions.RENAME,old_reference:p,new_reference:g,is_shared:s})}return s&&await _.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}`)}}),ja=Q("datasources/delete-datasource",async(e,{getState:r,rejectWithValue:t})=>{try{const a=r(),s=!!e.namespace,i=e.namespace||e.path,l=rl(e.path,a)[i].filter(_.outById(e.id));return s&&await _.setSharedSources({...a.sharedDatasources.sources,[e.namespace]:l}),{list:l,path:e.path,namespace:e.namespace}}catch{return t(`Error while removing datasource ${e.id}`)}}),qu=na(),II={filesLoading:!1,tabs:qu.tabs||[],activeTab:qu.activeTab,recent:qu.recent||[]},ol=or({name:"root",initialState:II,reducers:{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))})},addDataSource(e,r){var i;const{payload:{path:t,datasourceDef:a}}=r,s=e.tabs.find(c=>c.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}))},openSettingsTab(e){const r={date:new Date().toISOString(),flags:{},view:{panel:{isOpen:!1,type:"",current:""}},extra:{editor:{key:"editors:settings"}},name:"Settings",path:cn,type:_.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}},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},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},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)||""},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,c)=>(c==null?void 0:c.weight)>((i==null?void 0:i.weight)||0)?c:i,null);a.weight=s?(s.weight||0)+1:1,a.extra={...a.extra,...t.extra}},selectTabByReference(e,r){const t=r.payload;let a=e.tabs.find(({path:s})=>t.path===s);if(a||(e.tabs.push(t),a=e.tabs[e.tabs.length-1]),e.activeTab!==t.path){const s=e.tabs.reduce((i,c)=>(c==null?void 0:c.weight)>((i==null?void 0:i.weight)||0)?c:i,null);e.activeTab=t.path,a.weight=((s==null?void 0:s.weight)||0)+1}a.extra={...a.extra,...t.extra},a.flags={...a.flags||{},...t.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 c=!1;if(typeof a=="string")c=i.initialContent!==a;else{const l=JSON.stringify(ze.get(i.initialContent,s||"",i.initialContent)),d=JSON.stringify(ze.get(a,s||"",a));c=l!==d}return a&&typeof a=="object"&&(s?ze.set(i.content,s,a):i.content=a),typeof a=="string"&&(i.content=a),{...i,flags:{...i.flags,touched:c}}})},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),c=a.filter(({name:l})=>!i.includes(l));s.content.metadata.styles=[...s.content.metadata.styles,...c].map(({scope:l,...d})=>({...d}))}},changeTabEditor(e,r){return e.tabs=e.tabs.map(t=>t.path===r.payload.path?r.payload:t),e}},extraReducers:e=>{e.addCase(sv.fulfilled,(r,t)=>{if(!t.payload)return;const{content:a,line:s,path:i}=t.payload,c=r.tabs.find(l=>l.path===i);if(c&&typeof c.content=="string"){const l=c.content.trim().split(`
|
|
100
100
|
`);l.splice(s,0,a),c.content=l.join(`
|
|
101
101
|
`)}}),e.addCase(Qn.pending,(r,t)=>{const{tab:a}=t.meta.arg;switch(a.type){case _.FileFolderType.CLASS:case _.FileFolderType.METHOD:_.lspSubject.next({action:_.LspActions.WILL_SAVE,payload:{filePath:a.path}});break}}),e.addCase(Qn.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.old=!1,a.type){case _.FileFolderType.CLASS:case _.FileFolderType.METHOD:_.lspSubject.next({action:_.LspActions.DID_SAVE,payload:{filePath:a.path,content:a.content}});break}t.payload.errors.length>0&&_.toastSubject.next({kind:"error",message:t.payload.errors})}}),e.addCase(Qn.rejected,(r,t)=>{_.toastSubject.next({kind:"danger",message:"Cannot save file"})}),e.addCase(uv.fulfilled,(r,t)=>{const a=[...t.payload.files];r.tabs=r.tabs.map(s=>{if([_.FileFolderType.CLASS,_.FileFolderType.METHOD].includes(s.type)){const i=a.find(c=>c.name===s.name&&c.type===s.type);if(i){const c=new Date(s.date),l=new Date(i.date);if(c.getTime()!==l.getTime())return{...s,flags:{...s.flags,old:!0}}}}return s})}),e.addCase(mc.pending,(r,t)=>{r.tabs=r.tabs.map(a=>a.path===t.meta.arg.path?{...a,flags:{...a.flags,loading:!0}}:a)}),e.addCase(mc.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 c=i.extra||{};return i.type===_.FileFolderType.METHOD?(c.attributes=_.parseAttributes(a.content),a.content=_.addAttributesToContent(a.content,{})):i.type===_.FileFolderType.SETTINGS&&(a.content={}),{...i,initialContent:a.content,content:a.content,date:a.date,flags:{},extra:c}}return i})}}),e.addCase(Jc.fulfilled,(r,t)=>{if(!t.payload)return;const{line:a,offset:s}=t.meta.arg,i=r.tabs.find(({path:c})=>{var l;return c===((l=t.payload)==null?void 0:l.path)});i&&(i.extra={...i.extra,initialLineInfo:{line:a,offset:s,lastModification:Date.now()}})}),e.addCase(iv.fulfilled,(r,t)=>{if(!t.payload)return;const{selection:a}=t.meta.arg,s=r.tabs.find(({path:i})=>{var c;return i===((c=t.payload)==null?void 0:c.path)});s&&(s.extra={...s.extra,initialSelectionInfo:{selection:a,lastModification:Date.now()}})}),e.addCase(Zn.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(vc.pending,(r,t)=>{const a=t.meta.arg,s=`${a.path}${a.ext?`.${a.ext}`:""}`;switch(a.ext){case"4dm":case"4qs":_.lspSubject.next({action:_.LspActions.WILL_DELETE,payload:{filePath:s}});break}}),e.addCase(vc.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":_.lspSubject.next({action:_.LspActions.DID_DELETE,payload:{filePath:i}});break}if(r.tabs=r.tabs.filter(c=>c.path!==i),r.recent=r.recent.filter(({path:c})=>i!==c),r.tabs.length){r.activeTab=r.tabs[r.tabs.length-1].path;return}r.activeTab=""}),e.addCase(Na.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(Rs.fulfilled,(r,t)=>{const a=r.tabs.find(s=>s.path===t.payload.path);a&&(a.flags.touched=!1,a.date=t.payload.date,a.content=t.payload.content,a.initialContent=t.payload.content)}),e.addCase(cv.fulfilled,(r,t)=>{var i;if(!((i=t.payload)!=null&&i.path))return;const a=r.tabs.find(_.by("path",t.payload.path));if(!a)return;a.content=a.content+`
|
|
102
102
|
|