@ws-ui/store 1.5.11 → 1.5.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs.js CHANGED
@@ -34,7 +34,7 @@ function print() { __p += __j.call(arguments, '') }
34
34
  `)+B+`return __p
35
35
  }`;var ye=ch(function(){return xe(w,Z+"return "+B).apply(r,x)});if(ye.source=B,tu(ye))throw ye;return ye}function _C(n){return Oe(n).toLowerCase()}function bC(n){return Oe(n).toUpperCase()}function SC(n,o,c){if(n=Oe(n),n&&(c||o===r))return md(n);if(!n||!(o=Ft(o)))return n;var p=er(n),y=er(o),w=_d(p,y),x=bd(p,y)+1;return qr(p,w,x).join("")}function EC(n,o,c){if(n=Oe(n),n&&(c||o===r))return n.slice(0,Ed(n)+1);if(!n||!(o=Ft(o)))return n;var p=er(n),y=bd(p,er(o))+1;return qr(p,0,y).join("")}function TC(n,o,c){if(n=Oe(n),n&&(c||o===r))return n.replace(ti,"");if(!n||!(o=Ft(o)))return n;var p=er(n),y=_d(p,er(o));return qr(p,y).join("")}function wC(n,o){var c=Se,p=Q;if(He(o)){var y="separator"in o?o.separator:y;c="length"in o?ge(o.length):c,p="omission"in o?Ft(o.omission):p}n=Oe(n);var w=n.length;if(Sn(n)){var x=er(n);w=x.length}if(c>=w)return n;var P=c-En(p);if(P<1)return p;var F=x?qr(x,0,P).join(""):n.slice(0,P);if(y===r)return F+p;if(x&&(P+=F.length-P),ru(y)){if(n.slice(P).search(y)){var $,k=F;for(y.global||(y=mi(y.source,Oe(jf.exec(y))+"g")),y.lastIndex=0;$=y.exec(k);)var B=$.index;F=F.slice(0,B===r?P:B)}}else if(n.indexOf(Ft(y),P)!=P){var z=F.lastIndexOf(y);z>-1&&(F=F.slice(0,z))}return F+p}function CC(n){return n=Oe(n),n&&Lb.test(n)?n.replace($f,e0):n}var AC=On(function(n,o,c){return n+(c?" ":"")+o.toUpperCase()}),su=lp("toUpperCase");function uh(n,o,c){return n=Oe(n),o=c?r:o,o===r?KS(n)?n0(n):jS(n):n.match(o)||[]}var ch=be(function(n,o){try{return Dt(n,r,o)}catch(c){return tu(c)?c:new ie(c)}}),xC=br(function(n,o){return jt(o,function(c){c=or(c),mr(n,c,Zi(n[c],n))}),n});function RC(n){var o=n==null?0:n.length,c=ee();return n=o?Be(n,function(p){if(typeof p[1]!="function")throw new Bt(u);return[c(p[0]),p[1]]}):[],be(function(p){for(var y=-1;++y<o;){var w=n[y];if(Dt(w[0],this,p))return Dt(w[1],this,p)}})}function OC(n){return eE(Ut(n,g))}function ou(n){return function(){return n}}function PC(n,o){return n==null||n!==n?o:n}var DC=dp(),IC=dp(!0);function xt(n){return n}function iu(n){return Wd(typeof n=="function"?n:Ut(n,g))}function FC(n){return Hd(Ut(n,g))}function MC(n,o){return Gd(n,Ut(o,g))}var NC=be(function(n,o){return function(c){return aa(c,n,o)}}),LC=be(function(n,o){return function(c){return aa(n,c,o)}});function uu(n,o,c){var p=ut(o),y=Es(o,p);c==null&&!(He(o)&&(y.length||!p.length))&&(c=o,o=n,n=this,y=Es(o,ut(o)));var w=!(He(c)&&"chain"in c)||!!c.chain,x=Er(n);return jt(y,function(P){var F=o[P];n[P]=F,x&&(n.prototype[P]=function(){var $=this.__chain__;if(w||$){var k=n(this.__wrapped__),B=k.__actions__=wt(this.__actions__);return B.push({func:F,args:arguments,thisArg:n}),k.__chain__=$,k}return F.apply(n,Fr([this.value()],arguments))})}),n}function $C(){return lt._===this&&(lt._=c0),this}function cu(){}function kC(n){return n=ge(n),be(function(o){return Vd(o,n)})}var qC=ji(Be),jC=ji(pd),BC=ji(fi);function lh(n){return zi(n)?di(or(n)):yE(n)}function WC(n){return function(o){return n==null?r:sn(n,o)}}var UC=hp(),HC=hp(!0);function lu(){return[]}function fu(){return!1}function GC(){return{}}function VC(){return""}function zC(){return!0}function YC(n,o){if(n=ge(n),n<1||n>it)return[];var c=V,p=pt(n,V);o=ee(o),n-=V;for(var y=gi(p,o);++c<n;)o(c);return y}function KC(n){return ce(n)?Be(n,or):Mt(n)?[n]:wt(Pp(Oe(n)))}function JC(n){var o=++i0;return Oe(n)+o}var QC=Rs(function(n,o){return n+o},0),XC=Bi("ceil"),ZC=Rs(function(n,o){return n/o},1),eA=Bi("floor");function tA(n){return n&&n.length?Ss(n,xt,Ai):r}function rA(n,o){return n&&n.length?Ss(n,ee(o,2),Ai):r}function nA(n){return vd(n,xt)}function aA(n,o){return vd(n,ee(o,2))}function sA(n){return n&&n.length?Ss(n,xt,Pi):r}function oA(n,o){return n&&n.length?Ss(n,ee(o,2),Pi):r}var iA=Rs(function(n,o){return n*o},1),uA=Bi("round"),cA=Rs(function(n,o){return n-o},0);function lA(n){return n&&n.length?hi(n,xt):0}function fA(n,o){return n&&n.length?hi(n,ee(o,2)):0}return T.after=Fw,T.ary=Bp,T.assign=b1,T.assignIn=th,T.assignInWith=Bs,T.assignWith=S1,T.at=E1,T.before=Wp,T.bind=Zi,T.bindAll=xC,T.bindKey=Up,T.castArray=Gw,T.chain=kp,T.chunk=eT,T.compact=tT,T.concat=rT,T.cond=RC,T.conforms=OC,T.constant=ou,T.countBy=lw,T.create=T1,T.curry=Hp,T.curryRight=Gp,T.debounce=Vp,T.defaults=w1,T.defaultsDeep=C1,T.defer=Mw,T.delay=Nw,T.difference=nT,T.differenceBy=aT,T.differenceWith=sT,T.drop=oT,T.dropRight=iT,T.dropRightWhile=uT,T.dropWhile=cT,T.fill=lT,T.filter=dw,T.flatMap=gw,T.flatMapDeep=vw,T.flatMapDepth=yw,T.flatten=Mp,T.flattenDeep=fT,T.flattenDepth=dT,T.flip=Lw,T.flow=DC,T.flowRight=IC,T.fromPairs=pT,T.functions=I1,T.functionsIn=F1,T.groupBy=mw,T.initial=gT,T.intersection=vT,T.intersectionBy=yT,T.intersectionWith=mT,T.invert=N1,T.invertBy=L1,T.invokeMap=bw,T.iteratee=iu,T.keyBy=Sw,T.keys=ut,T.keysIn=At,T.map=Ns,T.mapKeys=k1,T.mapValues=q1,T.matches=FC,T.matchesProperty=MC,T.memoize=$s,T.merge=j1,T.mergeWith=rh,T.method=NC,T.methodOf=LC,T.mixin=uu,T.negate=ks,T.nthArg=kC,T.omit=B1,T.omitBy=W1,T.once=$w,T.orderBy=Ew,T.over=qC,T.overArgs=kw,T.overEvery=jC,T.overSome=BC,T.partial=eu,T.partialRight=zp,T.partition=Tw,T.pick=U1,T.pickBy=nh,T.property=lh,T.propertyOf=WC,T.pull=ET,T.pullAll=Lp,T.pullAllBy=TT,T.pullAllWith=wT,T.pullAt=CT,T.range=UC,T.rangeRight=HC,T.rearg=qw,T.reject=Aw,T.remove=AT,T.rest=jw,T.reverse=Qi,T.sampleSize=Rw,T.set=G1,T.setWith=V1,T.shuffle=Ow,T.slice=xT,T.sortBy=Iw,T.sortedUniq=MT,T.sortedUniqBy=NT,T.split=gC,T.spread=Bw,T.tail=LT,T.take=$T,T.takeRight=kT,T.takeRightWhile=qT,T.takeWhile=jT,T.tap=tw,T.throttle=Ww,T.thru=Ms,T.toArray=Xp,T.toPairs=ah,T.toPairsIn=sh,T.toPath=KC,T.toPlainObject=eh,T.transform=z1,T.unary=Uw,T.union=BT,T.unionBy=WT,T.unionWith=UT,T.uniq=HT,T.uniqBy=GT,T.uniqWith=VT,T.unset=Y1,T.unzip=Xi,T.unzipWith=$p,T.update=K1,T.updateWith=J1,T.values=In,T.valuesIn=Q1,T.without=zT,T.words=uh,T.wrap=Hw,T.xor=YT,T.xorBy=KT,T.xorWith=JT,T.zip=QT,T.zipObject=XT,T.zipObjectDeep=ZT,T.zipWith=ew,T.entries=ah,T.entriesIn=sh,T.extend=th,T.extendWith=Bs,uu(T,T),T.add=QC,T.attempt=ch,T.camelCase=tC,T.capitalize=oh,T.ceil=XC,T.clamp=X1,T.clone=Vw,T.cloneDeep=Yw,T.cloneDeepWith=Kw,T.cloneWith=zw,T.conformsTo=Jw,T.deburr=ih,T.defaultTo=PC,T.divide=ZC,T.endsWith=rC,T.eq=rr,T.escape=nC,T.escapeRegExp=aC,T.every=fw,T.find=pw,T.findIndex=Ip,T.findKey=A1,T.findLast=hw,T.findLastIndex=Fp,T.findLastKey=x1,T.floor=eA,T.forEach=qp,T.forEachRight=jp,T.forIn=R1,T.forInRight=O1,T.forOwn=P1,T.forOwnRight=D1,T.get=nu,T.gt=Qw,T.gte=Xw,T.has=M1,T.hasIn=au,T.head=Np,T.identity=xt,T.includes=_w,T.indexOf=hT,T.inRange=Z1,T.invoke=$1,T.isArguments=cn,T.isArray=ce,T.isArrayBuffer=Zw,T.isArrayLike=Ct,T.isArrayLikeObject=Ye,T.isBoolean=e1,T.isBuffer=jr,T.isDate=t1,T.isElement=r1,T.isEmpty=n1,T.isEqual=a1,T.isEqualWith=s1,T.isError=tu,T.isFinite=o1,T.isFunction=Er,T.isInteger=Yp,T.isLength=qs,T.isMap=Kp,T.isMatch=i1,T.isMatchWith=u1,T.isNaN=c1,T.isNative=l1,T.isNil=d1,T.isNull=f1,T.isNumber=Jp,T.isObject=He,T.isObjectLike=ze,T.isPlainObject=la,T.isRegExp=ru,T.isSafeInteger=p1,T.isSet=Qp,T.isString=js,T.isSymbol=Mt,T.isTypedArray=Dn,T.isUndefined=h1,T.isWeakMap=g1,T.isWeakSet=v1,T.join=_T,T.kebabCase=sC,T.last=Gt,T.lastIndexOf=bT,T.lowerCase=oC,T.lowerFirst=iC,T.lt=y1,T.lte=m1,T.max=tA,T.maxBy=rA,T.mean=nA,T.meanBy=aA,T.min=sA,T.minBy=oA,T.stubArray=lu,T.stubFalse=fu,T.stubObject=GC,T.stubString=VC,T.stubTrue=zC,T.multiply=iA,T.nth=ST,T.noConflict=$C,T.noop=cu,T.now=Ls,T.pad=uC,T.padEnd=cC,T.padStart=lC,T.parseInt=fC,T.random=eC,T.reduce=ww,T.reduceRight=Cw,T.repeat=dC,T.replace=pC,T.result=H1,T.round=uA,T.runInContext=D,T.sample=xw,T.size=Pw,T.snakeCase=hC,T.some=Dw,T.sortedIndex=RT,T.sortedIndexBy=OT,T.sortedIndexOf=PT,T.sortedLastIndex=DT,T.sortedLastIndexBy=IT,T.sortedLastIndexOf=FT,T.startCase=vC,T.startsWith=yC,T.subtract=cA,T.sum=lA,T.sumBy=fA,T.template=mC,T.times=YC,T.toFinite=Tr,T.toInteger=ge,T.toLength=Zp,T.toLower=_C,T.toNumber=Vt,T.toSafeInteger=_1,T.toString=Oe,T.toUpper=bC,T.trim=SC,T.trimEnd=EC,T.trimStart=TC,T.truncate=wC,T.unescape=CC,T.uniqueId=JC,T.upperCase=AC,T.upperFirst=su,T.each=qp,T.eachRight=jp,T.first=Np,uu(T,function(){var n={};return ar(T,function(o,c){Me.call(T.prototype,c)||(n[c]=o)}),n}(),{chain:!1}),T.VERSION=a,jt(["bind","bindKey","curry","curryRight","partial","partialRight"],function(n){T[n].placeholder=T}),jt(["drop","take"],function(n,o){we.prototype[n]=function(c){c=c===r?1:nt(ge(c),0);var p=this.__filtered__&&!o?new we(this):this.clone();return p.__filtered__?p.__takeCount__=pt(c,p.__takeCount__):p.__views__.push({size:pt(c,V),type:n+(p.__dir__<0?"Right":"")}),p},we.prototype[n+"Right"]=function(c){return this.reverse()[n](c).reverse()}}),jt(["filter","map","takeWhile"],function(n,o){var c=o+1,p=c==Re||c==Ge;we.prototype[n]=function(y){var w=this.clone();return w.__iteratees__.push({iteratee:ee(y,3),type:c}),w.__filtered__=w.__filtered__||p,w}}),jt(["head","last"],function(n,o){var c="take"+(o?"Right":"");we.prototype[n]=function(){return this[c](1).value()[0]}}),jt(["initial","tail"],function(n,o){var c="drop"+(o?"":"Right");we.prototype[n]=function(){return this.__filtered__?new we(this):this[c](1)}}),we.prototype.compact=function(){return this.filter(xt)},we.prototype.find=function(n){return this.filter(n).head()},we.prototype.findLast=function(n){return this.reverse().find(n)},we.prototype.invokeMap=be(function(n,o){return typeof n=="function"?new we(this):this.map(function(c){return aa(c,n,o)})}),we.prototype.reject=function(n){return this.filter(ks(ee(n)))},we.prototype.slice=function(n,o){n=ge(n);var c=this;return c.__filtered__&&(n>0||o<0)?new we(c):(n<0?c=c.takeRight(-n):n&&(c=c.drop(n)),o!==r&&(o=ge(o),c=o<0?c.dropRight(-o):c.take(o-n)),c)},we.prototype.takeRightWhile=function(n){return this.reverse().takeWhile(n).reverse()},we.prototype.toArray=function(){return this.take(V)},ar(we.prototype,function(n,o){var c=/^(?:filter|find|map|reject)|While$/.test(o),p=/^(?:head|last)$/.test(o),y=T[p?"take"+(o=="last"?"Right":""):o],w=p||/^find/.test(o);y&&(T.prototype[o]=function(){var x=this.__wrapped__,P=p?[1]:arguments,F=x instanceof we,$=P[0],k=F||ce(x),B=function(Te){var Ce=y.apply(T,Fr([Te],P));return p&&z?Ce[0]:Ce};k&&c&&typeof $=="function"&&$.length!=1&&(F=k=!1);var z=this.__chain__,Z=!!this.__actions__.length,ne=w&&!z,ye=F&&!Z;if(!w&&k){x=ye?x:new we(this);var ae=n.apply(x,P);return ae.__actions__.push({func:Ms,args:[B],thisArg:r}),new Wt(ae,z)}return ne&&ye?n.apply(this,P):(ae=this.thru(B),ne?p?ae.value()[0]:ae.value():ae)})}),jt(["pop","push","shift","sort","splice","unshift"],function(n){var o=os[n],c=/^(?:push|sort|unshift)$/.test(n)?"tap":"thru",p=/^(?:pop|shift)$/.test(n);T.prototype[n]=function(){var y=arguments;if(p&&!this.__chain__){var w=this.value();return o.apply(ce(w)?w:[],y)}return this[c](function(x){return o.apply(ce(x)?x:[],y)})}}),ar(we.prototype,function(n,o){var c=T[o];if(c){var p=c.name+"";Me.call(An,p)||(An[p]=[]),An[p].push({name:o,func:c})}}),An[xs(r,E).name]=[{name:"wrapper",func:r}],we.prototype.clone=C0,we.prototype.reverse=A0,we.prototype.value=x0,T.prototype.at=rw,T.prototype.chain=nw,T.prototype.commit=aw,T.prototype.next=sw,T.prototype.plant=iw,T.prototype.reverse=uw,T.prototype.toJSON=T.prototype.valueOf=T.prototype.value=cw,T.prototype.first=T.prototype.head,Qn&&(T.prototype[Qn]=ow),T},Tn=a0();en?((en.exports=Tn)._=Tn,ii._=Tn):lt._=Tn}).call(Fx)}(xa,xa.exports)),xa.exports}var le=Mx();const Nx=ef(le),Ja=2e3,rf={tabs:[],activeTab:"",recent:[],roles:{roles:{},privileges:{},flags:{touched:!1},selectedTab:"roles",forceLogin:!1},sharedCSS:{state:"loading",styles:[]},debugger:{meta:{state:Ur.DETACHED},list:[],sessions:[],expressions:[]},webforms:{templates:{selectedGroup:"",data:[]},components:[],inspector:{css:{active:!1},datasource:{active:!1}},datasources:{theme:"grey"},flags:{"sidebar.section.resizable":!0}},tasks:[]},zy="4DWS_PREFS",Yy=e=>`APP_STATE_${e}`,Ky=()=>{var e,t;return((t=(e=window==null?void 0:window.$$datastores)==null?void 0:e.ds)==null?void 0:t.getBaseID())||""};function Jy(e){try{const t=Ky(),r=JSON.stringify(e);localStorage.setItem(Yy(t),r)}catch(t){console.error(t)}}function Qy(e){try{const t=JSON.stringify(e);localStorage.setItem(zy,t)}catch(t){console.error(t)}}function nf(){try{const e=localStorage.getItem(zy);if(e)return JSON.parse(e)}catch(e){console.error(e)}}function vn(){const e=Ky(),t=localStorage.getItem(Yy(e));if(t){const r=JSON.parse(t);return r.tabs=r.tabs.map(a=>({...a,flags:{...a.flags,enabled:!0}})),r}return rf}function To(e){const{name:t,type:r,path:a}=e,s=a.split(".").at(-1);switch(r){case b.FileFolderType.WEBFORM:case b.FileFolderType.ROLES:case b.FileFolderType.HTTP_HANDLERS:case b.FileFolderType.SETTINGS:case b.FileFolderType.MODEL:return t;case b.FileFolderType.METHOD:case b.FileFolderType.CLASS:default:return s?`${t}.${s}`:t}}const Xy=e=>{if(!e)return[];const t=new Map;return e.dataClasses.forEach(r=>{var i,u;const a=r.extraProperties||{},s={id:r.className,type:"table",position:{x:((i=a.position)==null?void 0:i.x)||0,y:((u=a.position)==null?void 0:u.y)||0},dragHandle:".custom-drag-handle",data:r};t.set(r.name,s)}),Array.from(t.values())};function Zy(e){return e?["json","4dmodel","webform","mform","qodoc"].includes(e.toLowerCase()):!1}const Wn=(e,t,r="")=>t?e.type==="currentState"&&e.value===t?{...e,value:r}:e.type==="combination"&&e.conditions?{...e,conditions:e.conditions.map(a=>Wn(a,t,r))}:e:e;function em(e,t){const{id:r,label:a}=t;return{...e,components:Object.entries(e.components||{}).reduce((s,[i,u])=>({...s,[i]:{...u,custom:Object.entries(u.custom).reduce((l,[f,d])=>f===`states:${r}`?l:{...l,[f]:d},{}),props:Object.entries(u.props).reduce((l,[f,d])=>{let h=d;return f==="events"&&(h=h.map(g=>{var _,m;return g.type==="simple-action"?{...g,state:{...g.state,states:(m=(_=g.state)==null?void 0:_.states)==null?void 0:m.filter(C=>C!==r)}}:g})),{...l,[f]:h}},{})}}),{}),metadata:{...e.metadata,states:e.metadata.states.filter(s=>(s==null?void 0:s.id)!==r).map(s=>s.conditions?{...s,conditions:Wn(s.conditions,a)}:s)}}}const Lx=(e,t)=>le.isEqual(e,t);var Lu,zh;function $x(){if(zh)return Lu;zh=1;function e(){this.__data__=[],this.size=0}return Lu=e,Lu}var $u,Yh;function tm(){if(Yh)return $u;Yh=1;function e(t,r){return t===r||t!==t&&r!==r}return $u=e,$u}var ku,Kh;function wo(){if(Kh)return ku;Kh=1;var e=tm();function t(r,a){for(var s=r.length;s--;)if(e(r[s][0],a))return s;return-1}return ku=t,ku}var qu,Jh;function kx(){if(Jh)return qu;Jh=1;var e=wo(),t=Array.prototype,r=t.splice;function a(s){var i=this.__data__,u=e(i,s);if(u<0)return!1;var l=i.length-1;return u==l?i.pop():r.call(i,u,1),--this.size,!0}return qu=a,qu}var ju,Qh;function qx(){if(Qh)return ju;Qh=1;var e=wo();function t(r){var a=this.__data__,s=e(a,r);return s<0?void 0:a[s][1]}return ju=t,ju}var Bu,Xh;function jx(){if(Xh)return Bu;Xh=1;var e=wo();function t(r){return e(this.__data__,r)>-1}return Bu=t,Bu}var Wu,Zh;function Bx(){if(Zh)return Wu;Zh=1;var e=wo();function t(r,a){var s=this.__data__,i=e(s,r);return i<0?(++this.size,s.push([r,a])):s[i][1]=a,this}return Wu=t,Wu}var Uu,eg;function Co(){if(eg)return Uu;eg=1;var e=$x(),t=kx(),r=qx(),a=jx(),s=Bx();function i(u){var l=-1,f=u==null?0:u.length;for(this.clear();++l<f;){var d=u[l];this.set(d[0],d[1])}}return i.prototype.clear=e,i.prototype.delete=t,i.prototype.get=r,i.prototype.has=a,i.prototype.set=s,Uu=i,Uu}var Hu,tg;function Wx(){if(tg)return Hu;tg=1;var e=Co();function t(){this.__data__=new e,this.size=0}return Hu=t,Hu}var Gu,rg;function Ux(){if(rg)return Gu;rg=1;function e(t){var r=this.__data__,a=r.delete(t);return this.size=r.size,a}return Gu=e,Gu}var Vu,ng;function Hx(){if(ng)return Vu;ng=1;function e(t){return this.__data__.get(t)}return Vu=e,Vu}var zu,ag;function Gx(){if(ag)return zu;ag=1;function e(t){return this.__data__.has(t)}return zu=e,zu}var Yu,sg;function rm(){if(sg)return Yu;sg=1;var e=Ya(),t=za(),r="[object AsyncFunction]",a="[object Function]",s="[object GeneratorFunction]",i="[object Proxy]";function u(l){if(!t(l))return!1;var f=e(l);return f==a||f==s||f==r||f==i}return Yu=u,Yu}var Ku,og;function Vx(){if(og)return Ku;og=1;var e=lr(),t=e["__core-js_shared__"];return Ku=t,Ku}var Ju,ig;function zx(){if(ig)return Ju;ig=1;var e=Vx(),t=function(){var a=/[^.]+$/.exec(e&&e.keys&&e.keys.IE_PROTO||"");return a?"Symbol(src)_1."+a:""}();function r(a){return!!t&&t in a}return Ju=r,Ju}var Qu,ug;function nm(){if(ug)return Qu;ug=1;var e=Function.prototype,t=e.toString;function r(a){if(a!=null){try{return t.call(a)}catch{}try{return a+""}catch{}}return""}return Qu=r,Qu}var Xu,cg;function Yx(){if(cg)return Xu;cg=1;var e=rm(),t=zx(),r=za(),a=nm(),s=/[\\^$.*+?()[\]{}|]/g,i=/^\[object .+?Constructor\]$/,u=Function.prototype,l=Object.prototype,f=u.toString,d=l.hasOwnProperty,h=RegExp("^"+f.call(d).replace(s,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function g(_){if(!r(_)||t(_))return!1;var m=e(_)?h:i;return m.test(a(_))}return Xu=g,Xu}var Zu,lg;function Kx(){if(lg)return Zu;lg=1;function e(t,r){return t==null?void 0:t[r]}return Zu=e,Zu}var ec,fg;function Gn(){if(fg)return ec;fg=1;var e=Yx(),t=Kx();function r(a,s){var i=t(a,s);return e(i)?i:void 0}return ec=r,ec}var tc,dg;function af(){if(dg)return tc;dg=1;var e=Gn(),t=lr(),r=e(t,"Map");return tc=r,tc}var rc,pg;function Ao(){if(pg)return rc;pg=1;var e=Gn(),t=e(Object,"create");return rc=t,rc}var nc,hg;function Jx(){if(hg)return nc;hg=1;var e=Ao();function t(){this.__data__=e?e(null):{},this.size=0}return nc=t,nc}var ac,gg;function Qx(){if(gg)return ac;gg=1;function e(t){var r=this.has(t)&&delete this.__data__[t];return this.size-=r?1:0,r}return ac=e,ac}var sc,vg;function Xx(){if(vg)return sc;vg=1;var e=Ao(),t="__lodash_hash_undefined__",r=Object.prototype,a=r.hasOwnProperty;function s(i){var u=this.__data__;if(e){var l=u[i];return l===t?void 0:l}return a.call(u,i)?u[i]:void 0}return sc=s,sc}var oc,yg;function Zx(){if(yg)return oc;yg=1;var e=Ao(),t=Object.prototype,r=t.hasOwnProperty;function a(s){var i=this.__data__;return e?i[s]!==void 0:r.call(i,s)}return oc=a,oc}var ic,mg;function eR(){if(mg)return ic;mg=1;var e=Ao(),t="__lodash_hash_undefined__";function r(a,s){var i=this.__data__;return this.size+=this.has(a)?0:1,i[a]=e&&s===void 0?t:s,this}return ic=r,ic}var uc,_g;function tR(){if(_g)return uc;_g=1;var e=Jx(),t=Qx(),r=Xx(),a=Zx(),s=eR();function i(u){var l=-1,f=u==null?0:u.length;for(this.clear();++l<f;){var d=u[l];this.set(d[0],d[1])}}return i.prototype.clear=e,i.prototype.delete=t,i.prototype.get=r,i.prototype.has=a,i.prototype.set=s,uc=i,uc}var cc,bg;function rR(){if(bg)return cc;bg=1;var e=tR(),t=Co(),r=af();function a(){this.size=0,this.__data__={hash:new e,map:new(r||t),string:new e}}return cc=a,cc}var lc,Sg;function nR(){if(Sg)return lc;Sg=1;function e(t){var r=typeof t;return r=="string"||r=="number"||r=="symbol"||r=="boolean"?t!=="__proto__":t===null}return lc=e,lc}var fc,Eg;function xo(){if(Eg)return fc;Eg=1;var e=nR();function t(r,a){var s=r.__data__;return e(a)?s[typeof a=="string"?"string":"hash"]:s.map}return fc=t,fc}var dc,Tg;function aR(){if(Tg)return dc;Tg=1;var e=xo();function t(r){var a=e(this,r).delete(r);return this.size-=a?1:0,a}return dc=t,dc}var pc,wg;function sR(){if(wg)return pc;wg=1;var e=xo();function t(r){return e(this,r).get(r)}return pc=t,pc}var hc,Cg;function oR(){if(Cg)return hc;Cg=1;var e=xo();function t(r){return e(this,r).has(r)}return hc=t,hc}var gc,Ag;function iR(){if(Ag)return gc;Ag=1;var e=xo();function t(r,a){var s=e(this,r),i=s.size;return s.set(r,a),this.size+=s.size==i?0:1,this}return gc=t,gc}var vc,xg;function am(){if(xg)return vc;xg=1;var e=rR(),t=aR(),r=sR(),a=oR(),s=iR();function i(u){var l=-1,f=u==null?0:u.length;for(this.clear();++l<f;){var d=u[l];this.set(d[0],d[1])}}return i.prototype.clear=e,i.prototype.delete=t,i.prototype.get=r,i.prototype.has=a,i.prototype.set=s,vc=i,vc}var yc,Rg;function uR(){if(Rg)return yc;Rg=1;var e=Co(),t=af(),r=am(),a=200;function s(i,u){var l=this.__data__;if(l instanceof e){var f=l.__data__;if(!t||f.length<a-1)return f.push([i,u]),this.size=++l.size,this;l=this.__data__=new r(f)}return l.set(i,u),this.size=l.size,this}return yc=s,yc}var mc,Og;function cR(){if(Og)return mc;Og=1;var e=Co(),t=Wx(),r=Ux(),a=Hx(),s=Gx(),i=uR();function u(l){var f=this.__data__=new e(l);this.size=f.size}return u.prototype.clear=t,u.prototype.delete=r,u.prototype.get=a,u.prototype.has=s,u.prototype.set=i,mc=u,mc}var _c,Pg;function lR(){if(Pg)return _c;Pg=1;var e="__lodash_hash_undefined__";function t(r){return this.__data__.set(r,e),this}return _c=t,_c}var bc,Dg;function fR(){if(Dg)return bc;Dg=1;function e(t){return this.__data__.has(t)}return bc=e,bc}var Sc,Ig;function dR(){if(Ig)return Sc;Ig=1;var e=am(),t=lR(),r=fR();function a(s){var i=-1,u=s==null?0:s.length;for(this.__data__=new e;++i<u;)this.add(s[i])}return a.prototype.add=a.prototype.push=t,a.prototype.has=r,Sc=a,Sc}var Ec,Fg;function pR(){if(Fg)return Ec;Fg=1;function e(t,r){for(var a=-1,s=t==null?0:t.length;++a<s;)if(r(t[a],a,t))return!0;return!1}return Ec=e,Ec}var Tc,Mg;function hR(){if(Mg)return Tc;Mg=1;function e(t,r){return t.has(r)}return Tc=e,Tc}var wc,Ng;function sm(){if(Ng)return wc;Ng=1;var e=dR(),t=pR(),r=hR(),a=1,s=2;function i(u,l,f,d,h,g){var _=f&a,m=u.length,C=l.length;if(m!=C&&!(_&&C>m))return!1;var v=g.get(u),S=g.get(l);if(v&&S)return v==l&&S==u;var E=-1,A=!0,O=f&s?new e:void 0;for(g.set(u,l),g.set(l,u);++E<m;){var I=u[E],R=l[E];if(d)var j=_?d(R,I,E,l,u,g):d(I,R,E,u,l,g);if(j!==void 0){if(j)continue;A=!1;break}if(O){if(!t(l,function(W,X){if(!r(O,X)&&(I===W||h(I,W,f,d,g)))return O.push(X)})){A=!1;break}}else if(!(I===R||h(I,R,f,d,g))){A=!1;break}}return g.delete(u),g.delete(l),A}return wc=i,wc}var Cc,Lg;function gR(){if(Lg)return Cc;Lg=1;var e=lr(),t=e.Uint8Array;return Cc=t,Cc}var Ac,$g;function vR(){if($g)return Ac;$g=1;function e(t){var r=-1,a=Array(t.size);return t.forEach(function(s,i){a[++r]=[i,s]}),a}return Ac=e,Ac}var xc,kg;function yR(){if(kg)return xc;kg=1;function e(t){var r=-1,a=Array(t.size);return t.forEach(function(s){a[++r]=s}),a}return xc=e,xc}var Rc,qg;function mR(){if(qg)return Rc;qg=1;var e=tf(),t=gR(),r=tm(),a=sm(),s=vR(),i=yR(),u=1,l=2,f="[object Boolean]",d="[object Date]",h="[object Error]",g="[object Map]",_="[object Number]",m="[object RegExp]",C="[object Set]",v="[object String]",S="[object Symbol]",E="[object ArrayBuffer]",A="[object DataView]",O=e?e.prototype:void 0,I=O?O.valueOf:void 0;function R(j,W,X,re,Se,Q,me){switch(X){case A:if(j.byteLength!=W.byteLength||j.byteOffset!=W.byteOffset)return!1;j=j.buffer,W=W.buffer;case E:return!(j.byteLength!=W.byteLength||!Q(new t(j),new t(W)));case f:case d:case _:return r(+j,+W);case h:return j.name==W.name&&j.message==W.message;case m:case v:return j==W+"";case g:var U=s;case C:var Re=re&u;if(U||(U=i),j.size!=W.size&&!Re)return!1;var Ze=me.get(j);if(Ze)return Ze==W;re|=l,me.set(j,W);var Ge=a(U(j),U(W),re,Se,Q,me);return me.delete(j),Ge;case S:if(I)return I.call(j)==I.call(W)}return!1}return Rc=R,Rc}var Oc,jg;function _R(){if(jg)return Oc;jg=1;function e(t,r){for(var a=-1,s=r.length,i=t.length;++a<s;)t[i+a]=r[a];return t}return Oc=e,Oc}var Pc,Bg;function sf(){if(Bg)return Pc;Bg=1;var e=Array.isArray;return Pc=e,Pc}var Dc,Wg;function bR(){if(Wg)return Dc;Wg=1;var e=_R(),t=sf();function r(a,s,i){var u=s(a);return t(a)?u:e(u,i(a))}return Dc=r,Dc}var Ic,Ug;function SR(){if(Ug)return Ic;Ug=1;function e(t,r){for(var a=-1,s=t==null?0:t.length,i=0,u=[];++a<s;){var l=t[a];r(l,a,t)&&(u[i++]=l)}return u}return Ic=e,Ic}var Fc,Hg;function ER(){if(Hg)return Fc;Hg=1;function e(){return[]}return Fc=e,Fc}var Mc,Gg;function TR(){if(Gg)return Mc;Gg=1;var e=SR(),t=ER(),r=Object.prototype,a=r.propertyIsEnumerable,s=Object.getOwnPropertySymbols,i=s?function(u){return u==null?[]:(u=Object(u),e(s(u),function(l){return a.call(u,l)}))}:t;return Mc=i,Mc}var Nc,Vg;function wR(){if(Vg)return Nc;Vg=1;function e(t,r){for(var a=-1,s=Array(t);++a<t;)s[a]=r(a);return s}return Nc=e,Nc}var Lc,zg;function CR(){if(zg)return Lc;zg=1;var e=Ya(),t=Ka(),r="[object Arguments]";function a(s){return t(s)&&e(s)==r}return Lc=a,Lc}var $c,Yg;function AR(){if(Yg)return $c;Yg=1;var e=CR(),t=Ka(),r=Object.prototype,a=r.hasOwnProperty,s=r.propertyIsEnumerable,i=e(function(){return arguments}())?e:function(u){return t(u)&&a.call(u,"callee")&&!s.call(u,"callee")};return $c=i,$c}var Ra={exports:{}},kc,Kg;function xR(){if(Kg)return kc;Kg=1;function e(){return!1}return kc=e,kc}Ra.exports;var Jg;function om(){return Jg||(Jg=1,function(e,t){var r=lr(),a=xR(),s=t&&!t.nodeType&&t,i=s&&!0&&e&&!e.nodeType&&e,u=i&&i.exports===s,l=u?r.Buffer:void 0,f=l?l.isBuffer:void 0,d=f||a;e.exports=d}(Ra,Ra.exports)),Ra.exports}var qc,Qg;function RR(){if(Qg)return qc;Qg=1;var e=9007199254740991,t=/^(?:0|[1-9]\d*)$/;function r(a,s){var i=typeof a;return s=s??e,!!s&&(i=="number"||i!="symbol"&&t.test(a))&&a>-1&&a%1==0&&a<s}return qc=r,qc}var jc,Xg;function im(){if(Xg)return jc;Xg=1;var e=9007199254740991;function t(r){return typeof r=="number"&&r>-1&&r%1==0&&r<=e}return jc=t,jc}var Bc,Zg;function OR(){if(Zg)return Bc;Zg=1;var e=Ya(),t=im(),r=Ka(),a="[object Arguments]",s="[object Array]",i="[object Boolean]",u="[object Date]",l="[object Error]",f="[object Function]",d="[object Map]",h="[object Number]",g="[object Object]",_="[object RegExp]",m="[object Set]",C="[object String]",v="[object WeakMap]",S="[object ArrayBuffer]",E="[object DataView]",A="[object Float32Array]",O="[object Float64Array]",I="[object Int8Array]",R="[object Int16Array]",j="[object Int32Array]",W="[object Uint8Array]",X="[object Uint8ClampedArray]",re="[object Uint16Array]",Se="[object Uint32Array]",Q={};Q[A]=Q[O]=Q[I]=Q[R]=Q[j]=Q[W]=Q[X]=Q[re]=Q[Se]=!0,Q[a]=Q[s]=Q[S]=Q[i]=Q[E]=Q[u]=Q[l]=Q[f]=Q[d]=Q[h]=Q[g]=Q[_]=Q[m]=Q[C]=Q[v]=!1;function me(U){return r(U)&&t(U.length)&&!!Q[e(U)]}return Bc=me,Bc}var Wc,ev;function PR(){if(ev)return Wc;ev=1;function e(t){return function(r){return t(r)}}return Wc=e,Wc}var Oa={exports:{}};Oa.exports;var tv;function DR(){return tv||(tv=1,function(e,t){var r=Hy(),a=t&&!t.nodeType&&t,s=a&&!0&&e&&!e.nodeType&&e,i=s&&s.exports===a,u=i&&r.process,l=function(){try{var f=s&&s.require&&s.require("util").types;return f||u&&u.binding&&u.binding("util")}catch{}}();e.exports=l}(Oa,Oa.exports)),Oa.exports}var Uc,rv;function um(){if(rv)return Uc;rv=1;var e=OR(),t=PR(),r=DR(),a=r&&r.isTypedArray,s=a?t(a):e;return Uc=s,Uc}var Hc,nv;function IR(){if(nv)return Hc;nv=1;var e=wR(),t=AR(),r=sf(),a=om(),s=RR(),i=um(),u=Object.prototype,l=u.hasOwnProperty;function f(d,h){var g=r(d),_=!g&&t(d),m=!g&&!_&&a(d),C=!g&&!_&&!m&&i(d),v=g||_||m||C,S=v?e(d.length,String):[],E=S.length;for(var A in d)(h||l.call(d,A))&&!(v&&(A=="length"||m&&(A=="offset"||A=="parent")||C&&(A=="buffer"||A=="byteLength"||A=="byteOffset")||s(A,E)))&&S.push(A);return S}return Hc=f,Hc}var Gc,av;function FR(){if(av)return Gc;av=1;var e=Object.prototype;function t(r){var a=r&&r.constructor,s=typeof a=="function"&&a.prototype||e;return r===s}return Gc=t,Gc}var Vc,sv;function MR(){if(sv)return Vc;sv=1;function e(t,r){return function(a){return t(r(a))}}return Vc=e,Vc}var zc,ov;function NR(){if(ov)return zc;ov=1;var e=MR(),t=e(Object.keys,Object);return zc=t,zc}var Yc,iv;function LR(){if(iv)return Yc;iv=1;var e=FR(),t=NR(),r=Object.prototype,a=r.hasOwnProperty;function s(i){if(!e(i))return t(i);var u=[];for(var l in Object(i))a.call(i,l)&&l!="constructor"&&u.push(l);return u}return Yc=s,Yc}var Kc,uv;function $R(){if(uv)return Kc;uv=1;var e=rm(),t=im();function r(a){return a!=null&&t(a.length)&&!e(a)}return Kc=r,Kc}var Jc,cv;function kR(){if(cv)return Jc;cv=1;var e=IR(),t=LR(),r=$R();function a(s){return r(s)?e(s):t(s)}return Jc=a,Jc}var Qc,lv;function qR(){if(lv)return Qc;lv=1;var e=bR(),t=TR(),r=kR();function a(s){return e(s,r,t)}return Qc=a,Qc}var Xc,fv;function jR(){if(fv)return Xc;fv=1;var e=qR(),t=1,r=Object.prototype,a=r.hasOwnProperty;function s(i,u,l,f,d,h){var g=l&t,_=e(i),m=_.length,C=e(u),v=C.length;if(m!=v&&!g)return!1;for(var S=m;S--;){var E=_[S];if(!(g?E in u:a.call(u,E)))return!1}var A=h.get(i),O=h.get(u);if(A&&O)return A==u&&O==i;var I=!0;h.set(i,u),h.set(u,i);for(var R=g;++S<m;){E=_[S];var j=i[E],W=u[E];if(f)var X=g?f(W,j,E,u,i,h):f(j,W,E,i,u,h);if(!(X===void 0?j===W||d(j,W,l,f,h):X)){I=!1;break}R||(R=E=="constructor")}if(I&&!R){var re=i.constructor,Se=u.constructor;re!=Se&&"constructor"in i&&"constructor"in u&&!(typeof re=="function"&&re instanceof re&&typeof Se=="function"&&Se instanceof Se)&&(I=!1)}return h.delete(i),h.delete(u),I}return Xc=s,Xc}var Zc,dv;function BR(){if(dv)return Zc;dv=1;var e=Gn(),t=lr(),r=e(t,"DataView");return Zc=r,Zc}var el,pv;function WR(){if(pv)return el;pv=1;var e=Gn(),t=lr(),r=e(t,"Promise");return el=r,el}var tl,hv;function UR(){if(hv)return tl;hv=1;var e=Gn(),t=lr(),r=e(t,"Set");return tl=r,tl}var rl,gv;function HR(){if(gv)return rl;gv=1;var e=Gn(),t=lr(),r=e(t,"WeakMap");return rl=r,rl}var nl,vv;function GR(){if(vv)return nl;vv=1;var e=BR(),t=af(),r=WR(),a=UR(),s=HR(),i=Ya(),u=nm(),l="[object Map]",f="[object Object]",d="[object Promise]",h="[object Set]",g="[object WeakMap]",_="[object DataView]",m=u(e),C=u(t),v=u(r),S=u(a),E=u(s),A=i;return(e&&A(new e(new ArrayBuffer(1)))!=_||t&&A(new t)!=l||r&&A(r.resolve())!=d||a&&A(new a)!=h||s&&A(new s)!=g)&&(A=function(O){var I=i(O),R=I==f?O.constructor:void 0,j=R?u(R):"";if(j)switch(j){case m:return _;case C:return l;case v:return d;case S:return h;case E:return g}return I}),nl=A,nl}var al,yv;function VR(){if(yv)return al;yv=1;var e=cR(),t=sm(),r=mR(),a=jR(),s=GR(),i=sf(),u=om(),l=um(),f=1,d="[object Arguments]",h="[object Array]",g="[object Object]",_=Object.prototype,m=_.hasOwnProperty;function C(v,S,E,A,O,I){var R=i(v),j=i(S),W=R?h:s(v),X=j?h:s(S);W=W==d?g:W,X=X==d?g:X;var re=W==g,Se=X==g,Q=W==X;if(Q&&u(v)){if(!u(S))return!1;R=!0,re=!1}if(Q&&!re)return I||(I=new e),R||l(v)?t(v,S,E,A,O,I):r(v,S,W,E,A,O,I);if(!(E&f)){var me=re&&m.call(v,"__wrapped__"),U=Se&&m.call(S,"__wrapped__");if(me||U){var Re=me?v.value():v,Ze=U?S.value():S;return I||(I=new e),O(Re,Ze,E,A,I)}}return Q?(I||(I=new e),a(v,S,E,A,O,I)):!1}return al=C,al}var sl,mv;function zR(){if(mv)return sl;mv=1;var e=VR(),t=Ka();function r(a,s,i,u,l){return a===s?!0:a==null||s==null||!t(a)&&!t(s)?a!==a&&s!==s:e(a,s,i,u,r,l)}return sl=r,sl}var ol,_v;function YR(){if(_v)return ol;_v=1;var e=zR();function t(r,a,s){s=typeof s=="function"?s:void 0;var i=s?s(r,a):void 0;return i===void 0?e(r,a,void 0,s):!!i}return ol=t,ol}YR();typeof window<"u"&&(window.__CRAFTJS__||(window.__CRAFTJS__={}),window.__CRAFTJS__["@ws-ui/craftjs-utils"]="0.2.3");const KR="ROOT";SA(),bA();var bv;(function(e){e[e.HandlerDisabled=0]="HandlerDisabled",e[e.HandlerEnabled=1]="HandlerEnabled"})(bv||(bv={}));function of(e){return`Debugger/${e}`}function cm(e,t){var a;const r=(a=t.name)==null?void 0:a.replace(/\.(4dm|4qs)$/,"");return`#${e} ${r}`}const lm=(e,t,r)=>{const a=e instanceof RegExp?Sv(e,r):e,s=t instanceof RegExp?Sv(t,r):t,i=a!==null&&s!=null&&JR(a,s,r);return i&&{start:i[0],end:i[1],pre:r.slice(0,i[0]),body:r.slice(i[0]+a.length,i[1]),post:r.slice(i[1]+s.length)}},Sv=(e,t)=>{const r=t.match(e);return r?r[0]:null},JR=(e,t,r)=>{let a,s,i,u,l,f=r.indexOf(e),d=r.indexOf(t,f+1),h=f;if(f>=0&&d>0){if(e===t)return[f,d];for(a=[],i=r.length;h>=0&&!l;){if(h===f)a.push(h),f=r.indexOf(e,h+1);else if(a.length===1){const g=a.pop();g!==void 0&&(l=[g,d])}else s=a.pop(),s!==void 0&&s<i&&(i=s,u=d),d=r.indexOf(t,h+1);h=f<d&&f>=0?f:d}a.length&&u!==void 0&&(l=[i,u])}return l},fm="\0SLASH"+Math.random()+"\0",dm="\0OPEN"+Math.random()+"\0",uf="\0CLOSE"+Math.random()+"\0",pm="\0COMMA"+Math.random()+"\0",hm="\0PERIOD"+Math.random()+"\0",QR=new RegExp(fm,"g"),XR=new RegExp(dm,"g"),ZR=new RegExp(uf,"g"),eO=new RegExp(pm,"g"),tO=new RegExp(hm,"g"),rO=/\\\\/g,nO=/\\{/g,aO=/\\}/g,sO=/\\,/g,oO=/\\./g;function il(e){return isNaN(e)?e.charCodeAt(0):parseInt(e,10)}function iO(e){return e.replace(rO,fm).replace(nO,dm).replace(aO,uf).replace(sO,pm).replace(oO,hm)}function uO(e){return e.replace(QR,"\\").replace(XR,"{").replace(ZR,"}").replace(eO,",").replace(tO,".")}function gm(e){if(!e)return[""];const t=[],r=lm("{","}",e);if(!r)return e.split(",");const{pre:a,body:s,post:i}=r,u=a.split(",");u[u.length-1]+="{"+s+"}";const l=gm(i);return i.length&&(u[u.length-1]+=l.shift(),u.push.apply(u,l)),t.push.apply(t,u),t}function cO(e){return e?(e.slice(0,2)==="{}"&&(e="\\{\\}"+e.slice(2)),Pa(iO(e),!0).map(uO)):[]}function lO(e){return"{"+e+"}"}function fO(e){return/^-?0\d/.test(e)}function dO(e,t){return e<=t}function pO(e,t){return e>=t}function Pa(e,t){const r=[],a=lm("{","}",e);if(!a)return[e];const s=a.pre,i=a.post.length?Pa(a.post,!1):[""];if(/\$$/.test(a.pre))for(let u=0;u<i.length;u++){const l=s+"{"+a.body+"}"+i[u];r.push(l)}else{const u=/^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(a.body),l=/^[a-zA-Z]\.\.[a-zA-Z](?:\.\.-?\d+)?$/.test(a.body),f=u||l,d=a.body.indexOf(",")>=0;if(!f&&!d)return a.post.match(/,(?!,).*\}/)?(e=a.pre+"{"+a.body+uf+a.post,Pa(e)):[e];let h;if(f)h=a.body.split(/\.\./);else if(h=gm(a.body),h.length===1&&h[0]!==void 0&&(h=Pa(h[0],!1).map(lO),h.length===1))return i.map(_=>a.pre+h[0]+_);let g;if(f&&h[0]!==void 0&&h[1]!==void 0){const _=il(h[0]),m=il(h[1]),C=Math.max(h[0].length,h[1].length);let v=h.length===3&&h[2]!==void 0?Math.abs(il(h[2])):1,S=dO;m<_&&(v*=-1,S=pO);const A=h.some(fO);g=[];for(let O=_;S(O,m);O+=v){let I;if(l)I=String.fromCharCode(O),I==="\\"&&(I="");else if(I=String(O),A){const R=C-I.length;if(R>0){const j=new Array(R+1).join("0");O<0?I="-"+j+I.slice(1):I=j+I}}g.push(I)}}else{g=[];for(let _=0;_<h.length;_++)g.push.apply(g,Pa(h[_],!1))}for(let _=0;_<g.length;_++)for(let m=0;m<i.length;m++){const C=s+g[_]+i[m];(!t||f||C)&&r.push(C)}}return r}const hO=1024*64,ho=e=>{if(typeof e!="string")throw new TypeError("invalid pattern");if(e.length>hO)throw new TypeError("pattern is too long")},gO={"[:alnum:]":["\\p{L}\\p{Nl}\\p{Nd}",!0],"[:alpha:]":["\\p{L}\\p{Nl}",!0],"[:ascii:]":["\\x00-\\x7f",!1],"[:blank:]":["\\p{Zs}\\t",!0],"[:cntrl:]":["\\p{Cc}",!0],"[:digit:]":["\\p{Nd}",!0],"[:graph:]":["\\p{Z}\\p{C}",!0,!0],"[:lower:]":["\\p{Ll}",!0],"[:print:]":["\\p{C}",!0],"[:punct:]":["\\p{P}",!0],"[:space:]":["\\p{Z}\\t\\r\\n\\v\\f",!0],"[:upper:]":["\\p{Lu}",!0],"[:word:]":["\\p{L}\\p{Nl}\\p{Nd}\\p{Pc}",!0],"[:xdigit:]":["A-Fa-f0-9",!1]},fa=e=>e.replace(/[[\]\\-]/g,"\\$&"),vO=e=>e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),Ev=e=>e.join(""),yO=(e,t)=>{const r=t;if(e.charAt(r)!=="[")throw new Error("not in a brace expression");const a=[],s=[];let i=r+1,u=!1,l=!1,f=!1,d=!1,h=r,g="";e:for(;i<e.length;){const v=e.charAt(i);if((v==="!"||v==="^")&&i===r+1){d=!0,i++;continue}if(v==="]"&&u&&!f){h=i+1;break}if(u=!0,v==="\\"&&!f){f=!0,i++;continue}if(v==="["&&!f){for(const[S,[E,A,O]]of Object.entries(gO))if(e.startsWith(S,i)){if(g)return["$.",!1,e.length-r,!0];i+=S.length,O?s.push(E):a.push(E),l=l||A;continue e}}if(f=!1,g){v>g?a.push(fa(g)+"-"+fa(v)):v===g&&a.push(fa(v)),g="",i++;continue}if(e.startsWith("-]",i+1)){a.push(fa(v+"-")),i+=2;continue}if(e.startsWith("-",i+1)){g=v,i+=2;continue}a.push(fa(v)),i++}if(h<i)return["",!1,0,!1];if(!a.length&&!s.length)return["$.",!1,e.length-r,!0];if(s.length===0&&a.length===1&&/^\\?.$/.test(a[0])&&!d){const v=a[0].length===2?a[0].slice(-1):a[0];return[vO(v),!1,h-r,!1]}const _="["+(d?"^":"")+Ev(a)+"]",m="["+(d?"":"^")+Ev(s)+"]";return[a.length&&s.length?"("+_+"|"+m+")":a.length?_:m,l,h-r,!0]},Da=(e,{windowsPathsNoEscape:t=!1}={})=>t?e.replace(/\[([^\/\\])\]/g,"$1"):e.replace(/((?!\\).|^)\[([^\/\\])\]/g,"$1$2").replace(/\\([^\/])/g,"$1"),mO=new Set(["!","?","+","*","@"]),Tv=e=>mO.has(e),_O="(?!(?:^|/)\\.\\.?(?:$|/))",Hs="(?!\\.)",bO=new Set(["[","."]),SO=new Set(["..","."]),EO=new Set("().*{}+?[]^$\\!"),TO=e=>e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),cf="[^/]",wv=cf+"*?",Cv=cf+"+?";var st,ct,Cr,We,tt,Hr,dn,Gr,ir,pn,Va,gn,vm,Xr,Zs,Rl,ym;const Et=class Et{constructor(t,r,a={}){Rt(this,gn);at(this,"type");Rt(this,st);Rt(this,ct);Rt(this,Cr,!1);Rt(this,We,[]);Rt(this,tt);Rt(this,Hr);Rt(this,dn);Rt(this,Gr,!1);Rt(this,ir);Rt(this,pn);Rt(this,Va,!1);this.type=t,t&&Je(this,ct,!0),Je(this,tt,r),Je(this,st,G(this,tt)?G(G(this,tt),st):this),Je(this,ir,G(this,st)===this?a:G(G(this,st),ir)),Je(this,dn,G(this,st)===this?[]:G(G(this,st),dn)),t==="!"&&!G(G(this,st),Gr)&&G(this,dn).push(this),Je(this,Hr,G(this,tt)?G(G(this,tt),We).length:0)}get hasMagic(){if(G(this,ct)!==void 0)return G(this,ct);for(const t of G(this,We))if(typeof t!="string"&&(t.type||t.hasMagic))return Je(this,ct,!0);return G(this,ct)}toString(){return G(this,pn)!==void 0?G(this,pn):this.type?Je(this,pn,this.type+"("+G(this,We).map(t=>String(t)).join("|")+")"):Je(this,pn,G(this,We).map(t=>String(t)).join(""))}push(...t){for(const r of t)if(r!==""){if(typeof r!="string"&&!(r instanceof Et&&G(r,tt)===this))throw new Error("invalid part: "+r);G(this,We).push(r)}}toJSON(){var r;const t=this.type===null?G(this,We).slice().map(a=>typeof a=="string"?a:a.toJSON()):[this.type,...G(this,We).map(a=>a.toJSON())];return this.isStart()&&!this.type&&t.unshift([]),this.isEnd()&&(this===G(this,st)||G(G(this,st),Gr)&&((r=G(this,tt))==null?void 0:r.type)==="!")&&t.push({}),t}isStart(){var r;if(G(this,st)===this)return!0;if(!((r=G(this,tt))!=null&&r.isStart()))return!1;if(G(this,Hr)===0)return!0;const t=G(this,tt);for(let a=0;a<G(this,Hr);a++){const s=G(t,We)[a];if(!(s instanceof Et&&s.type==="!"))return!1}return!0}isEnd(){var r,a,s;if(G(this,st)===this||((r=G(this,tt))==null?void 0:r.type)==="!")return!0;if(!((a=G(this,tt))!=null&&a.isEnd()))return!1;if(!this.type)return(s=G(this,tt))==null?void 0:s.isEnd();const t=G(this,tt)?G(G(this,tt),We).length:0;return G(this,Hr)===t-1}copyIn(t){typeof t=="string"?this.push(t):this.push(t.clone(this))}clone(t){const r=new Et(this.type,t);for(const a of G(this,We))r.copyIn(a);return r}static fromGlob(t,r={}){var s;const a=new Et(null,void 0,r);return Br(s=Et,Xr,Zs).call(s,t,a,0,r),a}toMMPattern(){if(this!==G(this,st))return G(this,st).toMMPattern();const t=this.toString(),[r,a,s,i]=this.toRegExpSource();if(!(s||G(this,ct)||G(this,ir).nocase&&!G(this,ir).nocaseMagicOnly&&t.toUpperCase()!==t.toLowerCase()))return a;const l=(G(this,ir).nocase?"i":"")+(i?"u":"");return Object.assign(new RegExp(`^${r}$`,l),{_src:r,_glob:t})}get options(){return G(this,ir)}toRegExpSource(t){var f;const r=t??!!G(this,ir).dot;if(G(this,st)===this&&Br(this,gn,vm).call(this),!this.type){const d=this.isStart()&&this.isEnd(),h=G(this,We).map(C=>{var O;const[v,S,E,A]=typeof C=="string"?Br(O=Et,Xr,ym).call(O,C,G(this,ct),d):C.toRegExpSource(t);return Je(this,ct,G(this,ct)||E),Je(this,Cr,G(this,Cr)||A),v}).join("");let g="";if(this.isStart()&&typeof G(this,We)[0]=="string"&&!(G(this,We).length===1&&SO.has(G(this,We)[0]))){const v=bO,S=r&&v.has(h.charAt(0))||h.startsWith("\\.")&&v.has(h.charAt(2))||h.startsWith("\\.\\.")&&v.has(h.charAt(4)),E=!r&&!t&&v.has(h.charAt(0));g=S?_O:E?Hs:""}let _="";return this.isEnd()&&G(G(this,st),Gr)&&((f=G(this,tt))==null?void 0:f.type)==="!"&&(_="(?:$|\\/)"),[g+h+_,Da(h),Je(this,ct,!!G(this,ct)),G(this,Cr)]}const a=this.type==="*"||this.type==="+",s=this.type==="!"?"(?:(?!(?:":"(?:";let i=Br(this,gn,Rl).call(this,r);if(this.isStart()&&this.isEnd()&&!i&&this.type!=="!"){const d=this.toString();return Je(this,We,[d]),this.type=null,Je(this,ct,void 0),[d,Da(this.toString()),!1,!1]}let u=!a||t||r||!Hs?"":Br(this,gn,Rl).call(this,!0);u===i&&(u=""),u&&(i=`(?:${i})(?:${u})*?`);let l="";if(this.type==="!"&&G(this,Va))l=(this.isStart()&&!r?Hs:"")+Cv;else{const d=this.type==="!"?"))"+(this.isStart()&&!r&&!t?Hs:"")+wv+")":this.type==="@"?")":this.type==="?"?")?":this.type==="+"&&u?")":this.type==="*"&&u?")?":`)${this.type}`;l=s+i+d}return[l,Da(i),Je(this,ct,!!G(this,ct)),G(this,Cr)]}};st=new WeakMap,ct=new WeakMap,Cr=new WeakMap,We=new WeakMap,tt=new WeakMap,Hr=new WeakMap,dn=new WeakMap,Gr=new WeakMap,ir=new WeakMap,pn=new WeakMap,Va=new WeakMap,gn=new WeakSet,vm=function(){if(this!==G(this,st))throw new Error("should only call on root");if(G(this,Gr))return this;this.toString(),Je(this,Gr,!0);let t;for(;t=G(this,dn).pop();){if(t.type!=="!")continue;let r=t,a=G(r,tt);for(;a;){for(let s=G(r,Hr)+1;!a.type&&s<G(a,We).length;s++)for(const i of G(t,We)){if(typeof i=="string")throw new Error("string part in extglob AST??");i.copyIn(G(a,We)[s])}r=a,a=G(r,tt)}}return this},Xr=new WeakSet,Zs=function(t,r,a,s){var m,C;let i=!1,u=!1,l=-1,f=!1;if(r.type===null){let v=a,S="";for(;v<t.length;){const E=t.charAt(v++);if(i||E==="\\"){i=!i,S+=E;continue}if(u){v===l+1?(E==="^"||E==="!")&&(f=!0):E==="]"&&!(v===l+2&&f)&&(u=!1),S+=E;continue}else if(E==="["){u=!0,l=v,f=!1,S+=E;continue}if(!s.noext&&Tv(E)&&t.charAt(v)==="("){r.push(S),S="";const A=new Et(E,r);v=Br(m=Et,Xr,Zs).call(m,t,A,v,s),r.push(A);continue}S+=E}return r.push(S),v}let d=a+1,h=new Et(null,r);const g=[];let _="";for(;d<t.length;){const v=t.charAt(d++);if(i||v==="\\"){i=!i,_+=v;continue}if(u){d===l+1?(v==="^"||v==="!")&&(f=!0):v==="]"&&!(d===l+2&&f)&&(u=!1),_+=v;continue}else if(v==="["){u=!0,l=d,f=!1,_+=v;continue}if(Tv(v)&&t.charAt(d)==="("){h.push(_),_="";const S=new Et(v,h);h.push(S),d=Br(C=Et,Xr,Zs).call(C,t,S,d,s);continue}if(v==="|"){h.push(_),_="",g.push(h),h=new Et(null,r);continue}if(v===")")return _===""&&G(r,We).length===0&&Je(r,Va,!0),h.push(_),_="",r.push(...g,h),d;_+=v}return r.type=null,Je(r,ct,void 0),Je(r,We,[t.substring(a-1)]),d},Rl=function(t){return G(this,We).map(r=>{if(typeof r=="string")throw new Error("string type in extglob ast??");const[a,s,i,u]=r.toRegExpSource(t);return Je(this,Cr,G(this,Cr)||u),a}).filter(r=>!(this.isStart()&&this.isEnd())||!!r).join("|")},ym=function(t,r,a=!1){let s=!1,i="",u=!1;for(let l=0;l<t.length;l++){const f=t.charAt(l);if(s){s=!1,i+=(EO.has(f)?"\\":"")+f;continue}if(f==="\\"){l===t.length-1?i+="\\\\":s=!0;continue}if(f==="["){const[d,h,g,_]=yO(t,l);if(g){i+=d,u=u||h,l+=g-1,r=r||_;continue}}if(f==="*"){a&&t==="*"?i+=Cv:i+=wv,r=!0;continue}if(f==="?"){i+=cf,r=!0;continue}i+=TO(f)}return[i,Da(t),!!r,u]},Rt(Et,Xr);let go=Et;const wO=(e,{windowsPathsNoEscape:t=!1}={})=>t?e.replace(/[?*()[\]]/g,"[$&]"):e.replace(/[?*()[\]\\]/g,"\\$&"),dt=(e,t,r={})=>(ho(t),!r.nocomment&&t.charAt(0)==="#"?!1:new Ro(t,r).match(e)),CO=/^\*+([^+@!?\*\[\(]*)$/,AO=e=>t=>!t.startsWith(".")&&t.endsWith(e),xO=e=>t=>t.endsWith(e),RO=e=>(e=e.toLowerCase(),t=>!t.startsWith(".")&&t.toLowerCase().endsWith(e)),OO=e=>(e=e.toLowerCase(),t=>t.toLowerCase().endsWith(e)),PO=/^\*+\.\*+$/,DO=e=>!e.startsWith(".")&&e.includes("."),IO=e=>e!=="."&&e!==".."&&e.includes("."),FO=/^\.\*+$/,MO=e=>e!=="."&&e!==".."&&e.startsWith("."),NO=/^\*+$/,LO=e=>e.length!==0&&!e.startsWith("."),$O=e=>e.length!==0&&e!=="."&&e!=="..",kO=/^\?+([^+@!?\*\[\(]*)?$/,qO=([e,t=""])=>{const r=mm([e]);return t?(t=t.toLowerCase(),a=>r(a)&&a.toLowerCase().endsWith(t)):r},jO=([e,t=""])=>{const r=_m([e]);return t?(t=t.toLowerCase(),a=>r(a)&&a.toLowerCase().endsWith(t)):r},BO=([e,t=""])=>{const r=_m([e]);return t?a=>r(a)&&a.endsWith(t):r},WO=([e,t=""])=>{const r=mm([e]);return t?a=>r(a)&&a.endsWith(t):r},mm=([e])=>{const t=e.length;return r=>r.length===t&&!r.startsWith(".")},_m=([e])=>{const t=e.length;return r=>r.length===t&&r!=="."&&r!==".."},bm=typeof process=="object"&&process?typeof process.env=="object"&&process.env&&process.env.__MINIMATCH_TESTING_PLATFORM__||process.platform:"posix",Av={win32:{sep:"\\"},posix:{sep:"/"}},UO=bm==="win32"?Av.win32.sep:Av.posix.sep;dt.sep=UO;const Yt=Symbol("globstar **");dt.GLOBSTAR=Yt;const HO="[^/]",GO=HO+"*?",VO="(?:(?!(?:\\/|^)(?:\\.{1,2})($|\\/)).)*?",zO="(?:(?!(?:\\/|^)\\.).)*?",YO=(e,t={})=>r=>dt(r,e,t);dt.filter=YO;const zt=(e,t={})=>Object.assign({},e,t),KO=e=>{if(!e||typeof e!="object"||!Object.keys(e).length)return dt;const t=dt;return Object.assign((a,s,i={})=>t(a,s,zt(e,i)),{Minimatch:class extends t.Minimatch{constructor(s,i={}){super(s,zt(e,i))}static defaults(s){return t.defaults(zt(e,s)).Minimatch}},AST:class extends t.AST{constructor(s,i,u={}){super(s,i,zt(e,u))}static fromGlob(s,i={}){return t.AST.fromGlob(s,zt(e,i))}},unescape:(a,s={})=>t.unescape(a,zt(e,s)),escape:(a,s={})=>t.escape(a,zt(e,s)),filter:(a,s={})=>t.filter(a,zt(e,s)),defaults:a=>t.defaults(zt(e,a)),makeRe:(a,s={})=>t.makeRe(a,zt(e,s)),braceExpand:(a,s={})=>t.braceExpand(a,zt(e,s)),match:(a,s,i={})=>t.match(a,s,zt(e,i)),sep:t.sep,GLOBSTAR:Yt})};dt.defaults=KO;const Sm=(e,t={})=>(ho(e),t.nobrace||!/\{(?:(?!\{).)*\}/.test(e)?[e]:cO(e));dt.braceExpand=Sm;const JO=(e,t={})=>new Ro(e,t).makeRe();dt.makeRe=JO;const QO=(e,t,r={})=>{const a=new Ro(t,r);return e=e.filter(s=>a.match(s)),a.options.nonull&&!e.length&&e.push(t),e};dt.match=QO;const xv=/[?*]|[+@!]\(.*?\)|\[|\]/,XO=e=>e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&");class Ro{constructor(t,r={}){at(this,"options");at(this,"set");at(this,"pattern");at(this,"windowsPathsNoEscape");at(this,"nonegate");at(this,"negate");at(this,"comment");at(this,"empty");at(this,"preserveMultipleSlashes");at(this,"partial");at(this,"globSet");at(this,"globParts");at(this,"nocase");at(this,"isWindows");at(this,"platform");at(this,"windowsNoMagicRoot");at(this,"regexp");ho(t),r=r||{},this.options=r,this.pattern=t,this.platform=r.platform||bm,this.isWindows=this.platform==="win32",this.windowsPathsNoEscape=!!r.windowsPathsNoEscape||r.allowWindowsEscape===!1,this.windowsPathsNoEscape&&(this.pattern=this.pattern.replace(/\\/g,"/")),this.preserveMultipleSlashes=!!r.preserveMultipleSlashes,this.regexp=null,this.negate=!1,this.nonegate=!!r.nonegate,this.comment=!1,this.empty=!1,this.partial=!!r.partial,this.nocase=!!this.options.nocase,this.windowsNoMagicRoot=r.windowsNoMagicRoot!==void 0?r.windowsNoMagicRoot:!!(this.isWindows&&this.nocase),this.globSet=[],this.globParts=[],this.set=[],this.make()}hasMagic(){if(this.options.magicalBraces&&this.set.length>1)return!0;for(const t of this.set)for(const r of t)if(typeof r!="string")return!0;return!1}debug(...t){}make(){const t=this.pattern,r=this.options;if(!r.nocomment&&t.charAt(0)==="#"){this.comment=!0;return}if(!t){this.empty=!0;return}this.parseNegate(),this.globSet=[...new Set(this.braceExpand())],r.debug&&(this.debug=(...i)=>console.error(...i)),this.debug(this.pattern,this.globSet);const a=this.globSet.map(i=>this.slashSplit(i));this.globParts=this.preprocess(a),this.debug(this.pattern,this.globParts);let s=this.globParts.map((i,u,l)=>{if(this.isWindows&&this.windowsNoMagicRoot){const f=i[0]===""&&i[1]===""&&(i[2]==="?"||!xv.test(i[2]))&&!xv.test(i[3]),d=/^[a-z]:/i.test(i[0]);if(f)return[...i.slice(0,4),...i.slice(4).map(h=>this.parse(h))];if(d)return[i[0],...i.slice(1).map(h=>this.parse(h))]}return i.map(f=>this.parse(f))});if(this.debug(this.pattern,s),this.set=s.filter(i=>i.indexOf(!1)===-1),this.isWindows)for(let i=0;i<this.set.length;i++){const u=this.set[i];u[0]===""&&u[1]===""&&this.globParts[i][2]==="?"&&typeof u[3]=="string"&&/^[a-z]:$/i.test(u[3])&&(u[2]="?")}this.debug(this.pattern,this.set)}preprocess(t){if(this.options.noglobstar)for(let a=0;a<t.length;a++)for(let s=0;s<t[a].length;s++)t[a][s]==="**"&&(t[a][s]="*");const{optimizationLevel:r=1}=this.options;return r>=2?(t=this.firstPhasePreProcess(t),t=this.secondPhasePreProcess(t)):r>=1?t=this.levelOneOptimize(t):t=this.adjascentGlobstarOptimize(t),t}adjascentGlobstarOptimize(t){return t.map(r=>{let a=-1;for(;(a=r.indexOf("**",a+1))!==-1;){let s=a;for(;r[s+1]==="**";)s++;s!==a&&r.splice(a,s-a)}return r})}levelOneOptimize(t){return t.map(r=>(r=r.reduce((a,s)=>{const i=a[a.length-1];return s==="**"&&i==="**"?a:s===".."&&i&&i!==".."&&i!=="."&&i!=="**"?(a.pop(),a):(a.push(s),a)},[]),r.length===0?[""]:r))}levelTwoFileOptimize(t){Array.isArray(t)||(t=this.slashSplit(t));let r=!1;do{if(r=!1,!this.preserveMultipleSlashes){for(let s=1;s<t.length-1;s++){const i=t[s];s===1&&i===""&&t[0]===""||(i==="."||i==="")&&(r=!0,t.splice(s,1),s--)}t[0]==="."&&t.length===2&&(t[1]==="."||t[1]==="")&&(r=!0,t.pop())}let a=0;for(;(a=t.indexOf("..",a+1))!==-1;){const s=t[a-1];s&&s!=="."&&s!==".."&&s!=="**"&&(r=!0,t.splice(a-1,2),a-=2)}}while(r);return t.length===0?[""]:t}firstPhasePreProcess(t){let r=!1;do{r=!1;for(let a of t){let s=-1;for(;(s=a.indexOf("**",s+1))!==-1;){let u=s;for(;a[u+1]==="**";)u++;u>s&&a.splice(s+1,u-s);let l=a[s+1];const f=a[s+2],d=a[s+3];if(l!==".."||!f||f==="."||f===".."||!d||d==="."||d==="..")continue;r=!0,a.splice(s,1);const h=a.slice(0);h[s]="**",t.push(h),s--}if(!this.preserveMultipleSlashes){for(let u=1;u<a.length-1;u++){const l=a[u];u===1&&l===""&&a[0]===""||(l==="."||l==="")&&(r=!0,a.splice(u,1),u--)}a[0]==="."&&a.length===2&&(a[1]==="."||a[1]==="")&&(r=!0,a.pop())}let i=0;for(;(i=a.indexOf("..",i+1))!==-1;){const u=a[i-1];if(u&&u!=="."&&u!==".."&&u!=="**"){r=!0;const f=i===1&&a[i+1]==="**"?["."]:[];a.splice(i-1,2,...f),a.length===0&&a.push(""),i-=2}}}}while(r);return t}secondPhasePreProcess(t){for(let r=0;r<t.length-1;r++)for(let a=r+1;a<t.length;a++){const s=this.partsMatch(t[r],t[a],!this.preserveMultipleSlashes);if(s){t[r]=[],t[a]=s;break}}return t.filter(r=>r.length)}partsMatch(t,r,a=!1){let s=0,i=0,u=[],l="";for(;s<t.length&&i<r.length;)if(t[s]===r[i])u.push(l==="b"?r[i]:t[s]),s++,i++;else if(a&&t[s]==="**"&&r[i]===t[s+1])u.push(t[s]),s++;else if(a&&r[i]==="**"&&t[s]===r[i+1])u.push(r[i]),i++;else if(t[s]==="*"&&r[i]&&(this.options.dot||!r[i].startsWith("."))&&r[i]!=="**"){if(l==="b")return!1;l="a",u.push(t[s]),s++,i++}else if(r[i]==="*"&&t[s]&&(this.options.dot||!t[s].startsWith("."))&&t[s]!=="**"){if(l==="a")return!1;l="b",u.push(r[i]),s++,i++}else return!1;return t.length===r.length&&u}parseNegate(){if(this.nonegate)return;const t=this.pattern;let r=!1,a=0;for(let s=0;s<t.length&&t.charAt(s)==="!";s++)r=!r,a++;a&&(this.pattern=t.slice(a)),this.negate=r}matchOne(t,r,a=!1){const s=this.options;if(this.isWindows){const v=typeof t[0]=="string"&&/^[a-z]:$/i.test(t[0]),S=!v&&t[0]===""&&t[1]===""&&t[2]==="?"&&/^[a-z]:$/i.test(t[3]),E=typeof r[0]=="string"&&/^[a-z]:$/i.test(r[0]),A=!E&&r[0]===""&&r[1]===""&&r[2]==="?"&&typeof r[3]=="string"&&/^[a-z]:$/i.test(r[3]),O=S?3:v?0:void 0,I=A?3:E?0:void 0;if(typeof O=="number"&&typeof I=="number"){const[R,j]=[t[O],r[I]];R.toLowerCase()===j.toLowerCase()&&(r[I]=R,I>O?r=r.slice(I):O>I&&(t=t.slice(O)))}}const{optimizationLevel:i=1}=this.options;i>=2&&(t=this.levelTwoFileOptimize(t)),this.debug("matchOne",this,{file:t,pattern:r}),this.debug("matchOne",t.length,r.length);for(var u=0,l=0,f=t.length,d=r.length;u<f&&l<d;u++,l++){this.debug("matchOne loop");var h=r[l],g=t[u];if(this.debug(r,h,g),h===!1)return!1;if(h===Yt){this.debug("GLOBSTAR",[r,h,g]);var _=u,m=l+1;if(m===d){for(this.debug("** at the end");u<f;u++)if(t[u]==="."||t[u]===".."||!s.dot&&t[u].charAt(0)===".")return!1;return!0}for(;_<f;){var C=t[_];if(this.debug(`
36
36
  globstar while`,t,_,r,m,C),this.matchOne(t.slice(_),r.slice(m),a))return this.debug("globstar found match!",_,f,C),!0;if(C==="."||C===".."||!s.dot&&C.charAt(0)==="."){this.debug("dot detected!",t,_,r,m);break}this.debug("globstar swallow a segment, and continue"),_++}return!!(a&&(this.debug(`
37
- >>> no match, partial?`,t,_,r,m),_===f))}let v;if(typeof h=="string"?(v=g===h,this.debug("string match",h,g,v)):(v=h.test(g),this.debug("pattern match",h,g,v)),!v)return!1}if(u===f&&l===d)return!0;if(u===f)return a;if(l===d)return u===f-1&&t[u]==="";throw new Error("wtf?")}braceExpand(){return Sm(this.pattern,this.options)}parse(t){ho(t);const r=this.options;if(t==="**")return Yt;if(t==="")return"";let a,s=null;(a=t.match(NO))?s=r.dot?$O:LO:(a=t.match(CO))?s=(r.nocase?r.dot?OO:RO:r.dot?xO:AO)(a[1]):(a=t.match(kO))?s=(r.nocase?r.dot?jO:qO:r.dot?BO:WO)(a):(a=t.match(PO))?s=r.dot?IO:DO:(a=t.match(FO))&&(s=MO);const i=go.fromGlob(t,this.options).toMMPattern();return s&&typeof i=="object"&&Reflect.defineProperty(i,"test",{value:s}),i}makeRe(){if(this.regexp||this.regexp===!1)return this.regexp;const t=this.set;if(!t.length)return this.regexp=!1,this.regexp;const r=this.options,a=r.noglobstar?GO:r.dot?VO:zO,s=new Set(r.nocase?["i"]:[]);let i=t.map(f=>{const d=f.map(h=>{if(h instanceof RegExp)for(const g of h.flags.split(""))s.add(g);return typeof h=="string"?XO(h):h===Yt?Yt:h._src});return d.forEach((h,g)=>{const _=d[g+1],m=d[g-1];h!==Yt||m===Yt||(m===void 0?_!==void 0&&_!==Yt?d[g+1]="(?:\\/|"+a+"\\/)?"+_:d[g]=a:_===void 0?d[g-1]=m+"(?:\\/|"+a+")?":_!==Yt&&(d[g-1]=m+"(?:\\/|\\/"+a+"\\/)"+_,d[g+1]=Yt))}),d.filter(h=>h!==Yt).join("/")}).join("|");const[u,l]=t.length>1?["(?:",")"]:["",""];i="^"+u+i+l+"$",this.negate&&(i="^(?!"+i+").+$");try{this.regexp=new RegExp(i,[...s].join(""))}catch{this.regexp=!1}return this.regexp}slashSplit(t){return this.preserveMultipleSlashes?t.split("/"):this.isWindows&&/^\/\/[^\/]+/.test(t)?["",...t.split(/\/+/)]:t.split(/\/+/)}match(t,r=this.partial){if(this.debug("match",t,this.pattern),this.comment)return!1;if(this.empty)return t==="";if(t==="/"&&r)return!0;const a=this.options;this.isWindows&&(t=t.split("\\").join("/"));const s=this.slashSplit(t);this.debug(this.pattern,"split",s);const i=this.set;this.debug(this.pattern,"set",i);let u=s[s.length-1];if(!u)for(let l=s.length-2;!u&&l>=0;l--)u=s[l];for(let l=0;l<i.length;l++){const f=i[l];let d=s;if(a.matchBase&&f.length===1&&(d=[u]),this.matchOne(d,f,r))return a.flipNegate?!0:!this.negate}return a.flipNegate?!1:this.negate}static defaults(t){return dt.defaults(t).Minimatch}}dt.AST=go;dt.Minimatch=Ro;dt.escape=wO;dt.unescape=Da;const Em=[{pattern:b.ROLES_TAB_PATH,editor:{key:"editors:roles"},supportedEditors:[{key:"editors:code",config:{language:"json",theme:"vs-dark"}}]},{pattern:b.HTTP_HANDLERS_PATH,editor:{key:"editors:http-handlers"},supportedEditors:[{key:"editors:code",config:{language:"json"}}]},{pattern:b.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:"**/*.qodoc",editor:{key:"editors:reports"},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"}}],Tm=[{pattern:"**/*.+(json|4DModel|WebForm)",type:"json"},{pattern:"**/*.+(4dm|txt|json|4qs)",type:"text"}];function wm(e){const t=e.split("/");return t.pop(),t.join("/")}function yt(e){const t=Em.find(({pattern:r})=>dt(e,r,{nocase:!0}));return t||{pattern:"",editor:{key:"editors:unknown",config:{language:"text"}}}}function lf(e){const t=Tm.find(({pattern:r})=>dt(e,r,{nocase:!0}));return t?t.type:"text"}const fn=()=>({dataclass:({name:e,qodly:t})=>({name:e,content:t?`extends DataClass
37
+ >>> no match, partial?`,t,_,r,m),_===f))}let v;if(typeof h=="string"?(v=g===h,this.debug("string match",h,g,v)):(v=h.test(g),this.debug("pattern match",h,g,v)),!v)return!1}if(u===f&&l===d)return!0;if(u===f)return a;if(l===d)return u===f-1&&t[u]==="";throw new Error("wtf?")}braceExpand(){return Sm(this.pattern,this.options)}parse(t){ho(t);const r=this.options;if(t==="**")return Yt;if(t==="")return"";let a,s=null;(a=t.match(NO))?s=r.dot?$O:LO:(a=t.match(CO))?s=(r.nocase?r.dot?OO:RO:r.dot?xO:AO)(a[1]):(a=t.match(kO))?s=(r.nocase?r.dot?jO:qO:r.dot?BO:WO)(a):(a=t.match(PO))?s=r.dot?IO:DO:(a=t.match(FO))&&(s=MO);const i=go.fromGlob(t,this.options).toMMPattern();return s&&typeof i=="object"&&Reflect.defineProperty(i,"test",{value:s}),i}makeRe(){if(this.regexp||this.regexp===!1)return this.regexp;const t=this.set;if(!t.length)return this.regexp=!1,this.regexp;const r=this.options,a=r.noglobstar?GO:r.dot?VO:zO,s=new Set(r.nocase?["i"]:[]);let i=t.map(f=>{const d=f.map(h=>{if(h instanceof RegExp)for(const g of h.flags.split(""))s.add(g);return typeof h=="string"?XO(h):h===Yt?Yt:h._src});return d.forEach((h,g)=>{const _=d[g+1],m=d[g-1];h!==Yt||m===Yt||(m===void 0?_!==void 0&&_!==Yt?d[g+1]="(?:\\/|"+a+"\\/)?"+_:d[g]=a:_===void 0?d[g-1]=m+"(?:\\/|"+a+")?":_!==Yt&&(d[g-1]=m+"(?:\\/|\\/"+a+"\\/)"+_,d[g+1]=Yt))}),d.filter(h=>h!==Yt).join("/")}).join("|");const[u,l]=t.length>1?["(?:",")"]:["",""];i="^"+u+i+l+"$",this.negate&&(i="^(?!"+i+").+$");try{this.regexp=new RegExp(i,[...s].join(""))}catch{this.regexp=!1}return this.regexp}slashSplit(t){return this.preserveMultipleSlashes?t.split("/"):this.isWindows&&/^\/\/[^\/]+/.test(t)?["",...t.split(/\/+/)]:t.split(/\/+/)}match(t,r=this.partial){if(this.debug("match",t,this.pattern),this.comment)return!1;if(this.empty)return t==="";if(t==="/"&&r)return!0;const a=this.options;this.isWindows&&(t=t.split("\\").join("/"));const s=this.slashSplit(t);this.debug(this.pattern,"split",s);const i=this.set;this.debug(this.pattern,"set",i);let u=s[s.length-1];if(!u)for(let l=s.length-2;!u&&l>=0;l--)u=s[l];for(let l=0;l<i.length;l++){const f=i[l];let d=s;if(a.matchBase&&f.length===1&&(d=[u]),this.matchOne(d,f,r))return a.flipNegate?!0:!this.negate}return a.flipNegate?!1:this.negate}static defaults(t){return dt.defaults(t).Minimatch}}dt.AST=go;dt.Minimatch=Ro;dt.escape=wO;dt.unescape=Da;const Em=[{pattern:b.ROLES_TAB_PATH,editor:{key:"editors:roles"},supportedEditors:[{key:"editors:code",config:{language:"json",theme:"vs-dark"}}]},{pattern:b.HTTP_HANDLERS_PATH,editor:{key:"editors:http-handlers"},supportedEditors:[{key:"editors:code",config:{language:"json"}}]},{pattern:b.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"}},{key:"editors:event-report"}]},{pattern:"**/*.qodoc",editor:{key:"editors:reports"},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"}}],Tm=[{pattern:"**/*.+(json|4DModel|WebForm)",type:"json"},{pattern:"**/*.+(4dm|txt|json|4qs)",type:"text"}];function wm(e){const t=e.split("/");return t.pop(),t.join("/")}function yt(e){const t=Em.find(({pattern:r})=>dt(e,r,{nocase:!0}));return t||{pattern:"",editor:{key:"editors:unknown",config:{language:"text"}}}}function lf(e){const t=Tm.find(({pattern:r})=>dt(e,r,{nocase:!0}));return t?t.type:"text"}const fn=()=>({dataclass:({name:e,qodly:t})=>({name:e,content:t?`extends DataClass
38
38
  `:`Class extends DataClass
39
39
  `}),collection:({name:e,qodly:t})=>({name:`${e}Selection`,content:t?`extends EntitySelection
40
40
  `:`Class extends EntitySelection
@@ -166,7 +166,7 @@ catch
166
166
 
167
167
  end
168
168
  `}];function x_(e,t){switch(e){case b.FileFolderType.WEBFORMS:{const r={metadata:{v:"1.0",datasources:[],styles:[]},components:{ROOT:{parent:"",type:{resolvedName:"Container"},isCanvas:!0,props:{airyMode:!1,className:"bg-white h-full w-full px-6",classNames:[],events:[]},displayName:"Page",custom:{},hidden:!1,nodes:[],linkedNodes:{}}}};return t["webforms.display-mode"]===_f.AIRY&&(r.components.ROOT.props.airyMode=!0),r}case b.FileFolderType.REPORT:return{metadata:{v:"1.0",datasources:[],styles:[]},pages:[{name:"doc",id:"index",components:{ROOT:{type:{resolvedName:"Document"},isCanvas:!0,props:{classNames:[],events:[],airyMode:!1,className:"bg-white h-full w-full px-6"},displayName:"Document",custom:{},parent:"",hidden:!1,nodes:[],linkedNodes:{}}}}]};case b.FileFolderType.METHODS:return`//%attributes = {}
169
- `;default:return""}}function R_(e,t,r){switch(t){case b.FileFolderType.MOBILEFORM:return`${e}.MForm`;case b.FileFolderType.WEBFORM:return`${e}.WebForm`;case b.FileFolderType.REPORT:return`${e}.QoDoc`;case b.FileFolderType.METHOD:case b.FileFolderType.CLASS:return`${e}.${r?"4qs":"4dm"}`;default:return e}}function yF(e){switch(e){case b.FolderRootPath.WEBFORMS:return b.FileFolderType.WEBFORMS;case b.FolderRootPath.METHODS:return b.FileFolderType.METHODS;case b.FolderRootPath.CLASSES:return b.FileFolderType.CLASSES;case b.FolderRootPath.REPORTS:case"Reports":return b.FileFolderType.REPORT;case"Mobile":return b.FileFolderType.MOBILE;default:return e}}function O_(e){switch(e){case b.FileFolderType.WEBFORMS:return b.FileFolderType.WEBFORM;case b.FileFolderType.REPORT:return b.FileFolderType.REPORT;case b.FileFolderType.CLASSES:return b.FileFolderType.CLASS;case b.FileFolderType.METHODS:return b.FileFolderType.METHOD;case b.FileFolderType.FOLDER:return b.FileFolderType.FOLDER;case b.FileFolderType.MOBILE:return b.FileFolderType.MOBILEFORM;default:return e}}const mF=K("files/tryEditMethod",async({method:e},{dispatch:t})=>{const r=e.filePath.split("/"),[a]=r[1].split("."),{editor:s}=yt(e.filePath);return await t(Af({file:{name:a,path:e.filePath,date:new Date().toISOString(),type:b.FileFolderType.CLASS,editor:s},line:e.startingLine+1})).unwrap()}),Bl=K("explorer/createModelFiles",async(e,{dispatch:t,getState:r})=>{var g;const a=r(),s=b.FolderRootPath.CLASSES,i=a.settings.server.qodly,u=Qe(a.explorer,s);if(!u)return;await t(Jr(s));const f=((g=r().explorer.find(_=>_.name===s))==null?void 0:g.children)||[];let d=[{content:"",name:""}];if(e.type==="dataclass"&&!e.toCreate){const{className:_,collectionName:m}=e;d=[{...fn().dataclass({name:_,qodly:i})},{...fn().collection({name:m,qodly:i})},{...fn().entity({name:_,qodly:i})}]}else if(e.type==="dataclass"&&e.toCreate){const{className:_,collectionName:m}=e;d=[{...fn()[e.toCreate]({name:_||m,qodly:i})}]}else d=[{...fn().model({name:"DataStore",qodly:i})}];d=d.filter(_=>!f.find(({name:m,ext:C,info:{exist:v=!0}={}})=>m===_.name&&C===(i?"4qs":"4dm")&&v)),await Promise.all(d.map(async({name:_,content:m})=>{await t(Ln({type:b.FileFolderType.CLASS,path:s,fileName:_,parentNode:u,content:m,qodly:a.settings.server.qodly}))}));const h=e.type==="dataclass"&&e.expand?e.className:"";await t(Jr({nodePath:s,expandDataclass:h}))}),Jr=K("explorer/fetchFolderContent",async(e,{rejectWithValue:t,getState:r})=>{const{nodePath:a,expandDataclass:s=""}=typeof e=="string"?{nodePath:e}:e,i=r();try{const u=await b.getNodeInfo({verb:b.DesignerRequestVerb.GET_INFO,path:a});return i.catalog.state!=="loaded"?[]:a==="Classes"?Un(i,u,s):u.map(l=>{const f=`${a}/${l.name}${l.ext?`.${l.ext}`:""}`,{editor:d,supportedEditors:h}=yt(f);return{name:l.name,size:l.size,type:l.type,date:`${l.date}`,flags:{},error:null,path:f,ext:l.ext,config:l.type==="folder"?{}:{editor:d,supportedEditors:h}}})}catch{return t("Failed loading file content please Reload"),a==="Classes"?Un(i,[],s):[]}},{getPendingMeta:()=>{}}),P_=K("model/fetchClassesFolderContent",async(e,{getState:t})=>{const r=t(),a=b.FolderRootPath.CLASSES;if(Qe(r.explorer,a))try{const i=await b.getNodeInfo({verb:b.DesignerRequestVerb.GET_INFO,path:a});return Un(r,i)}catch{return Un(r,[])}}),Ma=K("explorer/fetchFolderContentWithoutExpanding",async(e,{rejectWithValue:t,getState:r})=>{const{nodePath:a}=typeof e=="string"?{nodePath:e}:e,s=r();try{const i=await b.getNodeInfo({verb:b.DesignerRequestVerb.GET_INFO,path:a});return a==="Classes"?Un(s,i):i.map(u=>{const l=`${a}/${u.name}${u.ext?`.${u.ext}`:""}`,{editor:f,supportedEditors:d}=yt(l);return{name:u.name,size:u.size,type:u.type,date:`${u.date}`,flags:{},error:null,path:l,ext:u.ext,config:u.type==="folder"?{}:{editor:f,supportedEditors:d}}})}catch{return t("Failed loading file content please Reload")}},{getPendingMeta:()=>{}});function _F(e){const t=e.split(".");return t.pop(),{name:t.join("."),ext:e.split(".")[e.split(".").length-1]}}const bF=K("explorer/uploadFileAndGetResponse",async e=>{const t=e.type.includes("image/")?"$rawPict=true":"$binary=true";try{const r=await fetch(`/rest/$upload?${t}`,{method:"POST",headers:{"Content-Type":e.type},body:e});return{status:r.status,data:await r.json()}}catch{return{status:500,data:null}}}),SF=K("explorer/uploadFile",async({file:e,path:t,parentNode:r},{dispatch:a})=>{const{editor:s,supportedEditors:i}=yt(t),{name:u,ext:l}=_F(e.name);a(A_({parent:r,child:{name:u,path:`${t}/${e.name}?t=${Date.now()}`,type:e.type,error:null,flags:{loading:!0},config:{editor:s,supportedEditors:i},ext:l}}));try{const f=await fetch(`/rest/$upload?$sharedFolder=true&$filename=${e.name}&$path=${t}`,{method:"POST",headers:{"Content-Type":e.type},body:e});return f.status>=300?(a(jl({parent:r,child:{name:u,path:`${t}/${e.name}`,type:e.type,error:{message:"error uploading file"},flags:{},config:{editor:s,supportedEditors:i},ext:l}})),f.status!==413&&b.toastSubject.next({message:"error uploading file",kind:"danger"})):await a(Jr(r.path)),{status:f.status,fileName:e.name}}catch{return a(jl({parent:r,child:{name:u,path:`${t}/${e.name}`,type:e.type,error:{message:"error uploading file"},flags:{},config:{editor:s,supportedEditors:i},ext:l}})),b.toastSubject.next({message:"error uploading file",kind:"danger"}),{status:500,fileName:e.name}}}),Ln=K("explorer/createNewFile",async({fileName:e,type:t,path:r,parentNode:a,content:s},{dispatch:i,rejectWithValue:u,getState:l})=>{const{server:{qodly:f},project:d}=l().settings;try{const h=await b.setFileContent({name:R_(e,t,f),content:s||x_(t,d),path:r,asText:[b.FileFolderType.CLASS,b.FileFolderType.METHOD].includes(t)});return a.error&&(a.flags.expanded?await i(Jr(a.path)):await i(Ma(a.path))),{qodly:f,file:h,parentNode:a}}catch{return u("failed to create folder")}});function D_(e,t){const{qodly:r=!0,withExtension:a=!0}=t||{},s=b.getFileExtentionFromType(e.type,r);let i="";switch(e.type){case b.FileFolderType.WEBFORM:i=`${b.FolderRootPath.WEBFORMS}/${e.name}`;break;case b.FileFolderType.METHOD:i=`${b.FolderRootPath.METHODS}/${e.name}`;break;case b.FileFolderType.CLASS:i=`${b.FolderRootPath.CLASSES}/${e.name}`;break;default:return""}return`${i}${a?`.${s}`:""}`}const EF=K("explorer/createNewFileAndOpen",async(e,{dispatch:t,getState:r})=>{const a=await t(Ln(e)).unwrap(),{qodly:s}=r().settings.server;if(a){const{file:i}=a,u=D_(i,{withExtension:!1,qodly:s}),{editor:l}=yt(u);await t(Na({file:{name:e.fileName,type:i.type,path:u,editor:l,date:new Date().toISOString()}}))}}),to=K("explorer/createNewNode",async({fileName:e,path:t,parentNode:r},{rejectWithValue:a})=>{try{return{file:await b.createFolder({verb:b.DesignerRequestVerb.CREATE_FOLDER,path:`${t}/${e}`,recursive:!0}),parentNode:r}}catch{return b.toastSubject.next({message:"failed to create folder",kind:"danger"}),a("failed to create folder")}}),Ua=async({file:e,flags:t={},node:r={}})=>{var a;try{const s=e.path.split(".").at(-1),i=await b.getNodeInfo({verb:b.DesignerRequestVerb.GET_INFO,path:e.path,content:((a=e.editor)==null?void 0:a.key)!=="editors:img",as:Zy(s)?"json":"text"}),u={editor:e.editor};r!=null&&r.info&&(u.kind=r.info.kind);const l=b.getTypeFromExtension(e.path);l===b.FileFolderType.METHOD&&(u.attributes=b.parseAttributes(i.content),i.content=b.addAttributesToContent(i.content,{}));const{content:f,date:d,ext:h}=i;return t.confirmed===void 0&&(t.confirmed=!0),{date:d,view:{panel:{isOpen:!1,type:"",current:""}},flags:{enabled:["WebForm","MForm"].includes(h),confirmed:t.confirmed},extra:u,name:e.name,path:e.path,type:l,initialContent:f,content:f,history:{stack:[],active:-1,locked:!1}}}catch(s){const{data:i}=s;if(i.__ERROR.find(u=>u.errCode===b.ERROR_CODES.FILE_NOT_FOUND))switch(e.path){case b.ROLES_TAB_PATH:{const u={permissions:{allowed:[]},privileges:[],roles:[]};return{date:new Date().toISOString(),flags:t,extra:{editor:{key:"editors:roles"},kind:"roles"},name:"Roles & Privileges",path:e.path,type:b.FileFolderType.ROLES,initialContent:u,content:u}}case b.SETTINGS_TAB_PATH:{const u={};return{date:new Date().toISOString(),flags:t,extra:{editor:{key:"editors:settings"},kind:"qodlyApp"},name:"Settings",path:e.path,type:b.FileFolderType.SETTINGS,initialContent:u,content:u}}}throw s}},I_=K("HTTPHandlers/fetch",async(e,{rejectWithValue:t})=>{const r=(await b.getFilesInfo({path:b.HTTP_HANDLERS_PATH})).files.find(a=>a.path===b.HTTP_HANDLERS_PATH);if(r!=null&&r.deleted)return t("not found")}),qo=(e,t)=>{const r=(a,s)=>{for(const i of a){if(i.path===s)return i;if(i.children){const u=r(i.children,s);if(u)return u}}};return r(e,t)},Na=K("explorer/openFile",async({file:e,inactive:t,isNew:r,flags:a={},info:s},{getState:i,dispatch:u})=>{const{root:{tabs:l},roles:f,explorer:d,debugger:{sessions:h},settings:{server:{qodly:g}}}=i(),_=l.find(({path:S})=>e.path===S);if(_){const S={..._,extra:{..._==null?void 0:_.extra,editor:e.editor},flags:{..._==null?void 0:_.flags,...a}};return u(Tt(S)),S}if(e.path.startsWith("Debugger")){const S=h.find(E=>`Debugger/${E.threadId}`===e.path);if(S){const{source:{content:E},source:A}=S.currentStackFrame,O={name:e.name,type:b.FileFolderType.DEBUGGER,date:new Date().toISOString(),path:e.path,content:E,view:{panel:{isOpen:!1,type:"",current:""}},initialContent:E,flags:{confirmed:!0},extra:{source:A,editor:e.editor}};return u(Tt(O)),O}}const m=qo(d,e.path);let C=null;try{e.path!==b.LOCALIZATION_PATH?C=await Ua({file:e,flags:a,node:m}):C={date:new Date().toString(),view:{panel:{isOpen:!1,type:"",current:""}},flags:{enabled:!1,confirmed:a.confirmed},extra:{editor:{key:"editors:localization"}},name:e.name,path:e.path,type:b.FileFolderType.TEXT,initialContent:"",content:"",history:{stack:[],active:-1,locked:!1}}}catch(S){const{data:E}=S;if(E.__ERROR.find(A=>[b.ERROR_CODES.JSON_MALFORMED,b.ERROR_CODES.JSON_MALFORMED_AT_LINE].includes(A.errCode))){const{confirmed:A}=await u(Qt({title:"Corrupt file",type:b.ModalType.CONFIRM,color:b.ModalColor.WARNING,message:"Open in code editor ?"})).unwrap();if(A){const O=await b.getNodeInfo({verb:b.DesignerRequestVerb.GET_INFO,path:e.path,content:!0,as:"text"}),{content:I,date:R,ext:j}=O;C={date:R,view:{panel:{isOpen:!1,type:"",current:""}},flags:{enabled:["WebForm","MForm","QoDoc"].includes(j),confirmed:!0},extra:{editor:b.EDITOR.Code},name:e.name,path:e.path,type:b.getTypeFromExtension(e.path),initialContent:I,content:I,history:{stack:[],active:-1,locked:!1}}}}if(e.type===b.FileFolderType.CLASS&&s){const A=s.kind,O=`${e.name}.${g?"4qs":"4dm"}`,I=fn()[A]({name:O,qodly:g}).content;if(C={date:(await b.setFileContent({name:O,content:I,path:"Classes",asText:!0})).date,view:{panel:{isOpen:!1,type:"",current:""}},flags:{enabled:!1,confirmed:!0},extra:{editor:b.EDITOR.Code},name:e.name,path:e.path,type:b.getTypeFromExtension(e.path),initialContent:I,content:I,history:{stack:[],active:-1,locked:!1}},A==="app"){const j=await b.getFilesInfo(...by.map(W=>({path:`DatabaseMethods/${W.name}`})));by.forEach(W=>{const X=j.files.find(re=>re.path===`DatabaseMethods/${W.name}`);X!=null&&X.deleted&&b.setFileContent({name:W.name,content:W.content,path:"DatabaseMethods",asText:!0})})}}if(e.path===b.HTTP_HANDLERS_PATH){const A=(await b.getFilesInfo({path:b.HTTP_HANDLERS_PATH})).files.find(O=>O.path===b.HTTP_HANDLERS_PATH);A!=null&&A.deleted&&await b.setFileContent({name:b.HTTP_HANDLERS_PATH,content:"[]",path:"./",asText:!0}).then(async()=>{C=await Ua({file:e,flags:a,node:m})})}}return C&&(e.path===b.ROLES_TAB_PATH&&!f.flags.touched?u(Tf({content:C.content,date:C.date,flags:a})):e.path===b.SETTINGS_TAB_PATH&&u(ko({path:"project",value:C.content})),u((t?lb:Tt)({...C,isNew:r})),C)}),Af=K("explorer/openFileAtLine",async({file:e},{getState:t,dispatch:r})=>{const{root:{tabs:a},explorer:s}=t(),i=a.find(({path:f})=>e.path===f);if(i){const f={...i,extra:{...i==null?void 0:i.extra,editor:e.editor}};return r(Tt(f)),f}const u=qo(s,e.path),l=await Ua({file:e,node:u});return r(Tt(l)),l}),F_=K("explorer/injectContentAtLine",async(e,{getState:t,dispatch:r,rejectWithValue:a})=>{const{explorer:s}=t();e.path.split("/").pop();const u=Qe(s,e.path);if(!u)return a(`Error while trying to inject content in file ${e.path}`);const l=`${u.path}.${u.ext}`,f=qo(s,l),d=await Ua({file:{name:u.name,date:u.date||new Date().toISOString(),path:l,type:b.FileFolderType.CLASS,editor:u.config.editor},node:f});return await r(Tt(d)),{...e,path:`${u.path}.${u.ext}`}}),M_=K("explorer/openFileAtSelection",async({file:e},{getState:t,dispatch:r})=>{const{root:{tabs:a},explorer:s}=t(),i=a.find(({path:f})=>e.path===f);if(i){const f={...i,extra:{...i==null?void 0:i.extra,editor:e.editor}};return r(Tt(f)),f}const u=qo(s,e.path),l=await Ua({file:e,node:u});return r(Tt(l)),l}),Wl=K("explorer/deleteFile",async e=>{const{name:t,type:r,path:a,flags:s}=e;if(s.error)return{deleted:!0,node:e};const i=a.split("/");return i.pop(),{deleted:await b.dropFile({root:b.FolderRootType.ROOT,type:O_(r),verb:b.DesignerRequestVerb.DROP,name:t,path:i.join("/")}),node:e}}),TF=K("explorer/deleteFolder",async(e,{getState:t,dispatch:r})=>{const{path:a,flags:s}=e;if(s.error)return{deleted:!0,node:e};const{deleted:i}=await b.removeItem({force:!0,path:a,verb:b.DesignerRequestVerb.REMOVE_ITEM}).catch(console.error)||{deleted:!1};if(e.children){const{tabs:u}=t().root;e.children.forEach(l=>{const f=u.findIndex(d=>d.path===l.path);r(Ho(f))})}return{deleted:i,node:e}}),Ul=K("explorer/removeFileNode",async(e,{getState:t,dispatch:r})=>{await b.removeItem({verb:b.DesignerRequestVerb.REMOVE_ITEM,path:e.path,force:!0}).catch(console.error);const{root:{tabs:a},catalog:s}=t();if((e.path==="Classes/DataStore"||N_(s,e))&&setTimeout(()=>{r(Qr())},Ja),e.ext){const i=a.findIndex(u=>u.path===e.path);i>=0&&r(Ho(i))}return{deleted:!0,node:e}}),N_=(e,t)=>{const{model:{singletons:r}}=e;return le.values(r).some(a=>a.name===t.name)},$n=K("explorer/renameFile",async({file:e,newname:t},{dispatch:r,getState:a})=>{if(e.type!=="folder"){const i=e.path.split("/");i.pop();const u=`${i.join("/")}/${e.name}.${e.ext}`,l=`${i.join("/")}/${t}.${e.ext}`;await b.moveItem({verb:b.DesignerRequestVerb.MOVE_ITEM,path:u,newpath:l});const{catalog:f}=a();return N_(f,e)&&setTimeout(()=>{r(Qr())},Ja),{old:{...e,path:u},new:{...e,name:t,path:l}}}const s=e.path.split("/");return s.pop(),await b.moveItem({verb:b.DesignerRequestVerb.MOVE_ITEM,path:`${s.join("/")}/${e.name}`,newpath:`${s.join("/")}/${t}`}),{old:e,new:{...e,name:t,path:`${s.join("/")}/${t}`}}}),La=K("explorer/relocateNode",async({draggedNode:e,newLocation:t},{rejectWithValue:r})=>{try{await b.moveItem({verb:b.DesignerRequestVerb.MOVE_ITEM,path:`${e.path}.${e.ext}`,newpath:`${t.path}/${e.name}.${e.ext}`})}catch{return r("can't move item")}}),ro=K("explorer/duplicateNode",async({node:e,duplicateName:t},{rejectWithValue:r,fulfillWithValue:a,getState:s})=>{const i=e.path.split("/");i.pop();try{const{tabs:u}=s().root,l=u.find(({path:g})=>g===e.path),f=["4dm","4qm","4qs"].includes(e.ext),{content:d}=l||await b.getNodeInfo({verb:b.DesignerRequestVerb.GET_INFO,path:e.path,content:!0,as:f?"text":"json"}),h=await b.setFileContent({name:`${t}.${e.ext}`,content:d,path:i.join("/"),asText:f});return a({node:{...h,path:i.join("/")}})}catch{return r("failed to duplicate file")}}),wF=K("explorer/executeMethod",async({methodName:e,params:t=[],resultingDataSource:r={},namespace:a=""},{rejectWithValue:s})=>{var i,u;try{const f=await window.Method4D.buildMethod({methodName:e,parameters:t,resultingDataSource:r},{namespace:a},null).callServerSide({id:"",serverSideRef:""},"onclick",{});return f!=null&&f.__NOTIFICATION?b.toastSubject.next({message:`${((i=f.__NOTIFICATION)==null?void 0:i.message)||""}`,kind:`${((u=f.__NOTIFICATION)==null?void 0:u.type)||"info"}`}):b.toastSubject.next({message:"Method executed Successfully",kind:"message"}),f}catch(l){return b.toastSubject.next({message:l.errorStack.length>1&&[{messages:l.errorStack.map(f=>f.message)}]||l.message||`Error executing the method "**${e}**"`,kind:"danger",markdown:!0}),s("can't execute method")}}),CF=e=>{const{dataClasses:t,...r}=e;return{...r,dataClasses:t==null?void 0:t.map(a=>{let s={...a};if(s.uuid||(s={...s,uuid:b.generateUUID()}),s.attributes){const i=["storage","relatedEntity"],u=s.attributes.map(l=>i.includes(l.kind)&&!l.uuid?{...l,uuid:b.generateUUID()}:l);s={...s,attributes:[...u]}}return s})}},AF=K("files/fetchFiles",async()=>b.getFolders(b.FolderRootType.WEBFORMS,b.FolderRootType.METHODS,b.FolderRootType.CLASSES)),xf=K("tabs/renameDatasource",async(e,{dispatch:t,getState:r})=>{var m,C;const a=!!e.datasourceNamespace,{confirmed:s}=await t(Qt({message:"Are you sure you want to rename the datasource?",title:"Rename Datasource",type:b.ModalType.CONFIRM,color:b.ModalColor.WARNING,views:{toggles:{},tips:a?[{type:"warning",message:"The datasource property of components bound with this datasource will also be updated on opened web forms only"},{type:"warning",message:"The origin of some other datasources might be also renamed (if this datasource is the origin of other datasources)"}]:[{type:"warning",message:"The datasource property of components bound with this datasource will also be updated"},{type:"warning",message:"The origin of some other datasources might be also renamed (if this datasource is the origin of other datasources)"}]}})).unwrap();if(!s)return null;const{autoUpdateReferences:i,datasourceId:u,datasourceNamespace:l,value:f,path:d}=e,h=r();let g=[];if(a){const v=h.sharedDatasources.sources[l]||[];g.push(...v)}else if(d){const v=h.root.tabs.find(b.by("path",d));if(g=(C=(m=v==null?void 0:v.content)==null?void 0:m.metadata)==null?void 0:C.datasources,!g)return null}const _=new RegExp(`^${u}\\b`,"");if(g=g.map(v=>{const S=(b.isObjectDatasource(v)||!b.isSimpleDatasource(v))&&v.from&&_.test(v.from),E=v.events?v.events.map(A=>{var O,I,R,j;switch(A==null?void 0:A.type){case"method":{const W=A;return W.params?{...W,params:W.params.map(X=>{var re;return{...X,datasource:(re=X.datasource)==null?void 0:re.replace(new RegExp(`^${u}`,""),f)}}),returns:(O=W.returns)!=null&&O.datasource?{...W.returns,datasource:(I=W.returns.datasource)==null?void 0:I.replace(new RegExp(`^${u}`,""),f)}:W.returns}:W}case"simple-action":{const W=A;return W.datasource?{...W,datasource:{...W.datasource,name:(R=W.datasource.name)==null?void 0:R.replace(new RegExp(`^${u}`,""),f),from:(j=W.datasource.from)==null?void 0:j.replace(new RegExp(`^${u}`,""),f)}}:W}default:return A}}):v.events;return v.id===u?{...v,id:f,events:E}:S&&v.from?{...v,from:v.from.replace(new RegExp(`^${u}`,""),f),events:E}:{...v,events:E}}),i){const v=a?`${l}:${u}`:`${u}`,S=a?`${l}:${f}`:`${f}`;b.datasourcesSubject.next({path:d??"",action:b.DatasourcesActions.RENAME,old_reference:v,new_reference:S,is_shared:a})}return{path:d,namespace:l,datasources:g}}),Rf=K("tabs/edit-datasource",(e,{getState:t})=>{var i,u;const r=t();let a=[];if(e.namespace)a=r.sharedDatasources.sources[e.namespace];else{const l=r.root.tabs.find(b.by("path",e.path));l&&(a=((u=(i=l.content)==null?void 0:i.metadata)==null?void 0:u.datasources)||[])}return a.map(l=>l.id===e.datasourceId?Object.assign({},l,{[e.propertyKey]:e.value}):l)}),L_=K("tabs/fetchChanges",async(e,{getState:t})=>{const a=yn(t()).filter(s=>[b.FileFolderType.METHOD,b.FileFolderType.CLASS].includes(s.type));return b.getFilesInfo(...a.map(s=>{const[i]=s.path.split("/").filter(Boolean);return{name:s.name,type:s.type,root:i,path:"."}}))}),xF=K("files/saveAll",async(e,{getState:t,dispatch:r})=>{const a=pf(t());for(const s of a)r(kn({tab:s}))}),Of=K("files/tryCloseTab",async(e,{getState:t,dispatch:r})=>{const{tabs:a}=t().root,s=a.findIndex(u=>u.path===e);if(s===-1)return!1;const i=a[s];if(i!=null&&i.flags.touched){const{confirmed:u}=await r(Qt({title:To(i),message:"Your unsaved changes will be lost. Proceed anyway?",type:b.ModalType.CONFIRM,color:b.ModalColor.WARNING,icon:"FdWarningDanger"})).unwrap();if(!u)return!1}return r(Ho(s)),i.path===b.ROLES_TAB_PATH&&i.flags.touched&&(async()=>{const l=await b.getNodeInfo({verb:b.DesignerRequestVerb.GET_INFO,path:b.ROLES_TAB_PATH,content:!0,as:"json"});r(Tf({content:l.content,date:l.date}))})(),!0}),RF=K("files/tryCloseOtherTabs",async(e,{getState:t,dispatch:r})=>{const{tabs:a}=t().root;if(a.some(i=>i.path!==e&&i.flags.touched===!0)){const{confirmed:i}=await r(Qt({title:"Closing other tabs",message:"Your changes will be lost if you do not save them. Close anyway?",type:b.ModalType.CONFIRM,color:b.ModalColor.WARNING,icon:"FdWarningDanger"})).unwrap();if(!i)return}r(ib(e))}),OF=K("files/tryCloseAllTabs",async(e,{getState:t,dispatch:r})=>{const{tabs:a}=t().root;if(a.some(i=>i.flags.touched===!0)){const{confirmed:i}=await r(Qt({title:"Closing all tabs",message:"Your changes will be lost if you do not save them. Close anyway?",type:b.ModalType.CONFIRM,color:b.ModalColor.WARNING,icon:"FdWarningDanger"})).unwrap();if(!i)return}r(sb())}),PF=K("files/tryCloseRightTabs",async(e,{getState:t,dispatch:r})=>{const{tabs:a}=t().root;let s=!1;for(let i=a.length-1;i>e;i-=1)if(a[i].flags.touched){s=!0;break}if(s){const{confirmed:i}=await r(Qt({title:"Closing right tabs",message:"Your changes will be lost if you do not save them. Close anyway?",type:b.ModalType.CONFIRM,color:b.ModalColor.WARNING,icon:"FdWarningDanger"})).unwrap();if(!i)return}r(ob(e))}),DF=K("files/tryCloseLeftTabs",async(e,{getState:t,dispatch:r})=>{const{tabs:a}=t().root;let s=!1;for(let i=0;i<e;i+=1)if(a[i].flags.touched){s=!0;break}if(s){const{confirmed:i}=await r(Qt({title:"Closing left tabs",message:"Your changes will be lost if you do not save them. Close anyway?",type:b.ModalType.CONFIRM,color:b.ModalColor.WARNING,icon:"FdWarningDanger"})).unwrap();if(!i)return}r(ub(e))}),no=K("files/reloadTab",async(e,{dispatch:t})=>{if(e.flags.touched){const{confirmed:s}=await t(Qt({title:To(e),message:"Changes made to the file will be lost. Continue?",type:b.ModalType.CONFIRM,color:b.ModalColor.WARNING,icon:"FdWarningDanger"})).unwrap();if(!s)throw new Error("Cancel modal!")}const r=lf(e.path),a=await b.getNodeInfo({verb:b.DesignerRequestVerb.GET_INFO,path:e.path,content:!0,as:r});if(e.path===b.ROLES_TAB_PATH){const{roles:s,privileges:i}=Lo(a.content);t(wf({roles:s,privileges:i}))}else if(e.path===b.SETTINGS_TAB_PATH){const{content:s}=a;t(ko({path:"project",value:s}))}else{const{content:s}=a;e.type===b.FileFolderType.WEBFORM?b.webformSubject.next({path:e.path,action:b.WebformActions.RELOAD,payload:s.components}):e.type===b.FileFolderType.MODEL&&Dm.next({action:"reload",payload:s})}return a}),kn=K("files/saveTab",async({tab:e},{dispatch:t,getState:r})=>{let{path:a,content:s}=e;if(e.type===b.FileFolderType.DEBUGGER)return{...e,errors:[]};a.split("/").pop();const u=await b.getFilesInfo({path:a});if(u.files[0]){const g=new Date(e.date),_=new Date(u.files[0].date);if(g.getTime()<_.getTime()){const{confirmed:m}=await t(Qt({title:To(e),message:"New content has been found on the server. Are you sure you want to continue?",type:b.ModalType.CONFIRM,icon:"FdSave"})).unwrap();if(!m)return t(ab({path:a,flags:{old:!0}})),null}}const l=IF(e,r()),f=await b.saveContent({verb:b.DesignerRequestVerb.SAVE_CONTENT,content:l,path:a});(e.type===b.FileFolderType.CLASS||e.type===b.FileFolderType.MODEL)&&setTimeout(()=>{t(Qr())},Ja);const d=(f.modelErrors||[]).map(g=>g.message),h=(f.permissionsErrors||[]).map(g=>g.message);return b.FileFolderType.MODEL===e.type&&(s=l),{...e,content:s,date:f.date,initialContent:s,errors:d.length>0||h.length>0?[{title:"Model errors",messages:d},{title:"Permissions errors",messages:h}]:[]}}),IF=(e,t)=>{var r,a;switch(!0){case e.path==="settings.json":case e.path===b.SETTINGS_TAB_PATH:return t.settings.project;case e.type===b.FileFolderType.ROLES:return((a=(r=e.extra)==null?void 0:r.editor)==null?void 0:a.key)==="editors:roles"?$o(t.roles):e.content;case e.type===b.FileFolderType.MODEL:{const s=e.content||{toJSON:!0,dataClasses:[],extraProperties:{}};return CF(s)}default:return e.content}},Sy=async e=>{if(e.type===b.FileFolderType.DATA_EXPLORER)return{name:"Data Explorer",path:e.path,flags:{},view:{panel:{isOpen:!1,type:"",current:""}},type:e.type,date:new Date().toISOString()};const t=lf(e.path),r=await b.getNodeInfo({verb:b.DesignerRequestVerb.GET_INFO,path:e.path,content:!0,as:t}),a={};r.type===b.FileFolderType.METHOD&&(a.attributes=b.parseAttributes(r.content));const{date:s,name:i,type:u,content:l}=r;return{date:s,flags:{enabled:e.type===b.FileFolderType.WEBFORM},extra:a,view:{panel:{isOpen:!1,type:"",current:""}},name:i,path:e.path,type:u,initialContent:l,content:u===b.FileFolderType.MODEL?Xy(l):l,history:{stack:[],active:-1,locked:!1}}},$_=le.debounce((e,t)=>{t(hb(e))},300),FF=K("tabs/setTabContent",(e,{getState:t,dispatch:r})=>{var u;const{root:{tabs:a}}=t(),s=a.find(l=>l.path===e.path),i=!!((u=s==null?void 0:s.history)!=null&&u.locked);r(Ff(e)),i?r(Mf(e.path)):$_(e.path,r)}),MF=K("tabs/setCurrentWebformState",(e,{getState:t,dispatch:r})=>{var u;const{root:{tabs:a}}=t(),s=a.find(l=>l.path===e.path),i=!!((u=s==null?void 0:s.history)!=null&&u.locked);r(fb(e)),i?r(Mf(e.path)):$_(e.path,r)}),k_=K("files/tryInjectMethod",async({type:e,dataclass:t,expand:r},{getState:a,dispatch:s})=>{const{root:{tabs:i},settings:{server:{qodly:u}}}=a(),l=b.getFileExtentionFromType("class",u);let f="",d="",h=null;if(!t)f="DataStore",d=`Classes/DataStore.${l}`;else switch(e){case"dataclass":f=t,d=`Classes/${t}.${l}`;break;case"collection":f=`${t}Selection`,d=`Classes/${t}Selection.${l}`;break;case"entity":f=`${t}Entity`,d=`Classes/${t}Entity.${l}`;break;default:return h}const g=i.find(b.by("path",d));if(g)return s(Tt(g)),g;try{h=await Sy({name:f,date:new Date().toISOString(),path:d,type:b.FileFolderType.CLASS})}catch{t?await s(Bl({type:"dataclass",className:t,collectionName:`${t}Selection`,toCreate:e,expand:r})):await s(Bl({type:"model"}))}return h=await Sy({date:new Date().toISOString(),path:d,type:b.FileFolderType.CLASS}),h.path=d,s(Tt(h)),h}),NF=K("roles/open",async(e,{dispatch:t,getState:r})=>{const{tabs:a}=r().root,s=a.find(i=>i.path===b.ROLES_TAB_PATH);if(s)return t(Tt(s)),s;t(mo())});function Ey(e,t){const{line:r,lineInEditor:a,offset:s,type:i="saved"}=t;e.breakpoints[i].locations.push({line:r,lineInEditor:a}),le.isNumber(s)&&(e.breakpoints[i].offset=s)}function bl(e,t,r,a,s=!1){if(s){const i=new Map;let u=0;e.breakpoints[r].locations.forEach((l,f)=>{l.disabled?i.set(f,-1):i.set(f,u++)}),e.breakpoints[r].locations=e.breakpoints[r].locations.map((l,f)=>{const d=i.get(f);return!l.disabled&&le.isNumber(d)&&t[d]?{...l,...t[d]}:l})}else e.breakpoints[r].locations=t;le.isNumber(a)&&(e.breakpoints[r].offset=a)}function Ty({filePath:e,fileType:t,methodName:r,className:a,ext:s,source:i}){return{filePath:e,fileType:t,methodName:r,className:a,ext:s,source:i,breakpoints:{draft:{locations:[],offset:0},saved:{locations:[],offset:0}}}}function Sl(e,t,r){let a=!1;const s=e.map(i=>i[r]!==t[r]?i:(a=!0,{...i,...t}));return a?s:[...s,t]}function Qs(e){return e.map(({label:t})=>({label:t}))}const q_=Pt({name:"debugger",initialState:()=>{var t,r;const{debugger:e={meta:{state:Ur.DETACHED},list:[],sessions:[],expressions:[]}}=vn();return{meta:{...e.meta,state:((t=e.meta)==null?void 0:t.state)===Ur.ATTACHED?(r=e.meta)==null?void 0:r.state:Ur.DETACHED},list:e.list||[],sessions:e.sessions||[],expressions:e.expressions||[]}},reducers:{addBreakpointDecoration(e,t){const{filePath:r,fileType:a,methodName:s,className:i,ext:u,source:l,breakpoint:f}=t.payload,d=ur(e.list,r,s,i);if(d)Ey(d,f);else{if(a===b.FileFolderType.CLASS&&f.offset===void 0)throw new Error(`Cannot add a breakpoint on a function without offset. Try editing the ${i} class.`);const h=Ty({filePath:r,fileType:a,methodName:s,className:i,ext:u,source:l});Ey(h,f),e.list.push(h)}},removeBreakpointDecoration(e,t){const{filePath:r,methodName:a,line:s,offset:i=0,type:u="saved"}=t.payload;if(r.startsWith("Classes/")){const l=e.list.filter(f=>f.filePath===r);if(l.length>0){const f=s+i;l.forEach(d=>{const h=d.breakpoints[u].offset||0;d.breakpoints[u].locations=d.breakpoints[u].locations.filter(g=>g.line+h!==f),u==="saved"&&(d.breakpoints.draft.locations=d.breakpoints.draft.locations.filter(g=>g.line+h!==f))})}}else{const l=ur(e.list,r,a);l&&(l.breakpoints[u].locations=l.breakpoints[u].locations.filter(f=>f.line!==s),u==="saved"&&(l.breakpoints.draft.locations=l.breakpoints.draft.locations.filter(f=>f.line!==s)))}},setBreakpointsDecoration(e,t){const{filePath:r,fileType:a,methodName:s,className:i,ext:u,source:l,breakpoints:f,offset:d,type:h="saved",merge:g=!1,clearDraft:_}=t.payload,m=ur(e.list,r,s,i);if(m)bl(m,f,h,d,g),_&&h!=="draft"&&(m.breakpoints.draft.locations=[]);else{const C=Ty({filePath:r,fileType:a,methodName:s,className:i,ext:u,source:l});bl(C,f,h,d),e.list.push(C)}},updateBreakpointsDecoration(e,t){const{filePath:r,methodName:a,className:s,breakpoints:i,type:u="saved",merge:l=!1}=t.payload,f=ur(e.list,r,a,s);f&&bl(f,i,u,void 0,l)},clearBreakpoints(e,t){const{filePath:r,type:a="saved"}=t.payload;e.list=e.list.map(s=>({...s,breakpoints:s.filePath===r?{draft:!a||a==="draft"||a==="any"?{locations:[],offset:0}:s.breakpoints.draft,saved:!a||a==="saved"||a==="any"?{locations:[],offset:0}:s.breakpoints.saved}:s.breakpoints}))},clearBreakpointsExcept(e,t){const{exceptedFilePath:r,type:a="saved"}=t.payload;e.list=e.list.map(s=>({...s,breakpoints:s.filePath!==r?{draft:!a||a==="draft"||a==="any"?{locations:[],offset:0}:s.breakpoints.draft,saved:!a||a==="saved"||a==="any"?{locations:[],offset:0}:s.breakpoints.saved}:s.breakpoints}))},clearAllBreakpoints(e){e.list=e.list.map(t=>({...t,breakpoints:{draft:{locations:[],offset:0},saved:{locations:[],offset:0}}}))},toggleBreakpoint(e,t){const{filePath:r,methodName:a,line:s,offset:i=0,disabled:u}=t.payload;if(r.startsWith("Classes/")){const l=e.list.filter(f=>f.filePath===r);if(l.length>0){const f=s+i;l.forEach(d=>{const h=d.breakpoints.saved.offset||0;d.breakpoints.saved.locations=d.breakpoints.saved.locations.map(g=>g.line+h===f?{...g,disabled:u}:g)})}}else{const l=ur(e.list,r,a);l&&(l.breakpoints.saved.locations=l.breakpoints.saved.locations.map(f=>f.line===s?{...f,disabled:u}:f))}},toggleBreakpointsInFile(e,t){const{filePath:r,methodName:a,disabled:s}=t.payload;if(r.startsWith("Classes/")){const i=e.list.filter(u=>u.filePath===r);i.length>0&&i.forEach(u=>{u.breakpoints.saved.locations=u.breakpoints.saved.locations.map(l=>({...l,disabled:s}))})}else{const i=ur(e.list,r,a);i&&(i.breakpoints.saved.locations=i.breakpoints.saved.locations.map(u=>({...u,disabled:s})))}},disableAllBreakpoints(e){e.list=e.list.map(t=>({...t,breakpoints:{...t.breakpoints,saved:{...t.breakpoints.saved,locations:t.breakpoints.saved.locations.map(r=>({...r,disabled:!0}))}}}))},enableAllBreakpoints(e){e.list=e.list.map(t=>({...t,breakpoints:{...t.breakpoints,saved:{...t.breakpoints.saved,locations:t.breakpoints.saved.locations.map(r=>({...r,disabled:!1}))}}}))},setActiveLine(e,t){const{threadId:r,line:a,highlight:s}=t.payload,i=Xe(e.sessions,r);i&&(i.activeLine=a,s&&(i.highlightedLines={start:a,end:a}))},addExpression(e,t){const{threadId:r,label:a,save:s}=t.payload,i=Xe(e.sessions,r);i&&i.stopped&&(i.expressions=[...i.expressions||[],{label:a}],s&&(e.expressions=Qs(i.expressions)))},removeExpression(e,t){const{threadId:r,index:a,save:s}=t.payload,i=Xe(e.sessions,r);i&&(i.expressions=i.expressions.filter((u,l)=>l!==a),s&&(e.expressions=Qs(i.expressions)))},removeAllExpressions(e,t){const{threadId:r,save:a}=t.payload,s=Xe(e.sessions,r);s&&(s.expressions=[],a&&(e.expressions=[]))},renameExpression(e,t){const{threadId:r,index:a,replacement:s,save:i}=t.payload,u=Xe(e.sessions,r);u&&u.expressions[a]&&(u.expressions[a].label=s,i&&(e.expressions=Qs(u.expressions)))},setExpression(e,t){const{threadId:r,expression:a}=t.payload,s=Xe(e.sessions,r);if(s){const i=a.index>=0?a.index:s.expressions.length>0?s.expressions.length-1:0,u=s.expressions[i];u?(u.result=a.result,u.nakedResult=a.nakedResult,u.variablesReference=a.variablesReference||0,u.presentationHint=a.presentationHint):s.expressions.push(a)}},updateExpressionAt(e,t){const{threadId:r,index:a,value:s}=t.payload,i=Xe(e.sessions,r);if(i){const u=i.expressions[a];u&&(u.result=`"${s}"`,u.nakedResult=s)}},saveExpressions(e,t){const{expressions:r}=t.payload;e.expressions=Qs(r)},addSession(e,t){const{threadId:r,channelId:a,stackFrames:s,exceptions:i=[]}=t.payload,u=Xe(e.sessions,r),l=s[0],{expressions:f=[]}=e;if(u)u.expressions=f;else{const d=of(r);e.sessions.push({tabPath:d,threadId:r,channelId:a,stackFrames:s,currentStackFrame:l,exceptions:i,expressions:f,variables:{callchain:[],expressions:[],local:[],currentLine:[]},highlightedLines:null,activeLine:null,stopped:!0})}},updateSession(e,t){const{threadId:r,changes:a}=t.payload;e.sessions=e.sessions.map(s=>s.threadId===r?{...s,...a}:s)},removeSession(e,t){const{threadId:r}=t.payload;e.sessions=e.sessions.filter(a=>a.threadId!==r)},removeSessionByIndex(e,t){const r=t.payload;e.sessions.splice(r,1)},setSessions(e,t){const r=t.payload;e.sessions=r},setCommonVariables(e,t){const{key:r,threadId:a,frameId:s,variablesReference:i,variables:u}=t.payload;e.sessions=e.sessions.map(l=>{var f;return l.threadId===a?{...l,variables:{...l.variables,[r]:Sl((f=l.variables)==null?void 0:f[r],{frameId:s,variablesReference:i,items:u},"frameId")}}:l})},setCallChainVariables(e,t){const{threadId:r,frameId:a,variablesReference:s,variables:i}=t.payload;e.sessions=e.sessions.map(u=>{var l;return u.threadId===r?{...u,variables:{...u.variables,callchain:Sl((l=u.variables)==null?void 0:l.callchain,{frameId:a,variablesReference:s,items:i},"frameId")}}:u})},setExpressionVariables(e,t){const{threadId:r,variablesReference:a,variables:s}=t.payload;e.sessions=e.sessions.map(i=>{var u;return i.threadId===r?{...i,variables:{...i.variables,expressions:Sl((u=i.variables)==null?void 0:u.expressions,{variablesReference:a,items:s},"variablesReference")}}:i})},setSourceContent(e,t){const{threadId:r,content:a}=t.payload,s=Xe(e.sessions,r);s&&(s.currentStackFrame.source={...s.currentStackFrame.source,content:a})},setDebuggerMeta(e,t){if(t.payload.state===Ur.ERROR){const{error:r={code:null,reason:"",type:po.SOCKET_ERROR}}=t.payload;if(e.meta.error={...e.meta.error,...r,time:Date.now()},(r==null?void 0:r.type)===po.SOCKET_CLOSURE&&(r==null?void 0:r.code)===1e3&&!(r!=null&&r.reason)&&e.meta.state===Ur.DETACHED)return}e.meta.state=t.payload.state}},extraReducers:e=>{e.addCase(B_.fulfilled,t=>{t.sessions=[]})}}),{addBreakpointDecoration:LF,removeBreakpointDecoration:$F,setBreakpointsDecoration:kF,updateBreakpointsDecoration:qF,clearBreakpoints:jF,clearBreakpointsExcept:BF,clearAllBreakpoints:WF,toggleBreakpoint:UF,toggleBreakpointsInFile:HF,disableAllBreakpoints:GF,enableAllBreakpoints:VF,setActiveLine:zF,addExpression:YF,renameExpression:KF,removeExpression:JF,removeAllExpressions:QF,setExpression:XF,updateExpressionAt:ZF,saveExpressions:eM,addSession:tM,updateSession:rM,removeSession:nM,removeSessionByIndex:aM,setSessions:j_,setCallChainVariables:sM,setExpressionVariables:oM,setCommonVariables:iM,setSourceContent:uM,setDebuggerMeta:cM}=q_.actions,B_=K("files/wipeDebuggerSessions",async(e,{getState:t,dispatch:r})=>{const{sessions:a}=t().debugger;for(const{threadId:s}of a){const i=of(s);r(Of(i))}}),W_=K("files/removeDebuggerSessionsNotIn",async(e,{getState:t,dispatch:r})=>{const{threadIds:a}=e,{sessions:s}=t().debugger,i=[],u=s.filter(l=>{const f=a.includes(l.threadId);return f||i.push(l.threadId),f});return r(j_(u)),{staleThreadIds:i}}),_o=K("models/fetch",async()=>(await b.http(b.API_PREFIX,{method:"POST",body:JSON.stringify({verb:b.DesignerRequestVerb.GET_INFO,path:b.MODEL_TAB_PATH,as:"json",content:!0}),headers:new Headers({"Content-Type":"application/json"})})).content),bo=K("models/save",async(e,{getState:t,dispatch:r,rejectWithValue:a})=>{const{tabs:s}=t().root,i=s.find(u=>u.path===b.MODEL_TAB_PATH);if(!i)return a("Error while saving the model");try{const u=await b.http(b.API_PREFIX,{method:"POST",body:JSON.stringify({verb:"save",path:i.path,content:i.content}),headers:new Headers({"Content-Type":"application/json"})});return setTimeout(()=>{r(Qr())},Ja),{...u,path:i.path,content:e.content||{toJSON:!0,dataClasses:[],extraProperties:{}}}}catch{return a("Error while saving the model")}}),lM=K("models/open",async(e,{dispatch:t,getState:r})=>{const{tabs:a}=r().root,s=a.find(i=>i.path==="models/main");if(s)return t(Tt(s)),s;t(_o())}),fM=K("model/rename-dataclass",async({dataclassId:e,selectionId:t,name:r},{getState:a,dispatch:s})=>{const i=await s(P_()).then(g=>g.payload);if(!a().explorer.find(g=>g.path===b.FolderRootPath.CLASSES))throw new Error("Classes folder was not found!");const f={class:{found:!1,newNameTaken:!1,file:null,filename_update:r},entity:{found:!1,newNameTaken:!1,file:null,filename_update:`${r}Entity`},selection:{found:!1,newNameTaken:!1,file:null,filename_update:`${r}Selection`}};i==null||i.forEach(g=>{var _;g.path===`Classes/${e}___[<QODLY_ID>]`?(_=g.children)==null||_.forEach(m=>{var v,S,E,A;const C={...m,name:(v=m.info)==null?void 0:v.filename};((S=m.info)==null?void 0:S.filename)===e?(f.class.found=!0,f.class.file=C):((E=m.info)==null?void 0:E.filename)===`${e}Entity`?(f.entity.found=!0,f.entity.file=C):((A=m.info)==null?void 0:A.filename)===t&&(f.selection.found=!0,f.selection.file=C)}):(g.name===f.class.filename_update&&(f.class.newNameTaken=!0),g.name===f.entity.filename_update&&(f.entity.newNameTaken=!0),g.name===f.selection.filename_update&&(f.selection.newNameTaken=!0))});const d=Object.entries(f).reduce((g,_)=>{const[m,C]=_;return C.found?C.newNameTaken?[...g,{type:"error",message:`Cannot rename ${m} file to ${C.filename_update} because it already exists. The existing file will be used instead!`}]:g:[...g,{type:"warning",message:`${e} ${m} file was not found`}]},[]);d.length>0&&s(Qt({message:"The following errors were encountered during dataclass rename:",views:{tips:d}}));const h=Object.values(f).filter(g=>g.found&&g.file&&!g.newNameTaken);await Promise.all(h.map(async g=>await s($n({file:g.file,newname:g.filename_update}))))}),Ha={DATACLASS_DELETE:"dataclass.delete",DATACLASS_DRAGGABLE:"dataclass.draggable"},dM={model:{dataClasses:{},collections:{},extraProperties:{}},draft:{dataClasses:{},collections:{},extraProperties:{}},flags:{[Ha.DATACLASS_DELETE]:!0,[Ha.DATACLASS_DRAGGABLE]:!0}},U_=Pt({name:"Models",initialState:dM,reducers:{setModelFlag(e,t){e.flags={...e.flags,...t.payload}}},extraReducers(e){e.addCase(_o.fulfilled,(t,r)=>{var u;const a={},s={},i=r.payload.extraProperties||{};(u=r.payload.dataClasses)==null||u.forEach(l=>{a[l.name]=l,s[l.collectionName]=l}),t.draft.dataClasses=a,t.draft.collections=s,t.draft.extraProperties=i,t.model.dataClasses=a,t.model.collections=s,t.model.extraProperties=i}),e.addCase(_o.rejected,t=>{t.errored=!0}),e.addCase(bo.pending,()=>{}).addCase(bo.fulfilled,(t,r)=>{const a={},s={},i=r.payload.content.extraProperties||{};r.payload.content.dataClasses.forEach(u=>{a[u.name]=u,s[u.collectionName]=u}),t.draft.dataClasses=a,t.draft.collections=s,t.draft.extraProperties=i,t.model.dataClasses=a,t.model.collections=s,t.model.extraProperties=i})}}),{setModelFlag:pM}=U_.actions;var H_=(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))(H_||{}),jo=(e=>(e.STORAGE="storage",e.RELATEDENTITY="relatedEntity",e.RELATEDENTITIES="relatedEntities",e.CALCULATED="calculated",e.COMPOSITION="composition",e.ALIAS="alias",e))(jo||{});const hM=e=>["string","uuid","number","long"].includes(e.type),gM=[{label:"Storage",value:"storage"},{label:"Calculated",value:"calculated"}],vM=[{title:"UUID",kind:"storage",value:"uuid",calculatedType:"uuid",calculatedKind:"storage"},{title:"Long",kind:"storage",value:"long",calculatedType:"long",calculatedKind:"storage"}],yM=[{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"}],mM=[{label:"Expose as REST",value:"public"},{label:"Do not expose as REST",value:"publicOnServer"}],_M=[{label:"Expose as REST",value:"public"},{label:"Do not expose as REST",value:"publicOnServer"}],bM=[{label:"None",value:"none"},{label:"B-tree",value:"btree"},{label:"Cluster",value:"cluster"},{label:"Automatic",value:"auto"}],SM=(e,t)=>({toJSON:!0,extraProperties:t,dataClasses:e.map(r=>{var a;return{...r.data,extraProperties:{position:{x:r.position.x,y:r.position.y},panelColor:(a=r.data.extraProperties)==null?void 0:a.panelColor}}})});function EM(e,t,r){const a=e;let s=0;for(;r[`${a}${s||""}`];)s++;return`${a}${s||""}`}const G_=e=>e.kind===jo.RELATEDENTITY,V_=e=>e.kind===jo.RELATEDENTITIES,TM=e=>V_(e)||G_(e),wM=()=>fr(e=>e.model),CM=()=>fr(e=>e.model.draft.dataClasses),AM=()=>fr(e=>e.model.draft.collections),xM=e=>fr(t=>t.model.draft.dataClasses[e]),RM=(e,t)=>fr(r=>r.model.draft.dataClasses[e].attributes.find(b.by("name",t))),OM=()=>fr(e=>e.settings.session["model.viewport"]),PM=()=>{const e=fr(s=>s.model.flags),t=s=>s in e?e[s]:void 0,r=t(Ha.DATACLASS_DELETE),a=t(Ha.DATACLASS_DRAGGABLE);return{deleteDataclass:r,draggableDataclass:a,flags:e}},DM=U_.reducer;function El(e,t){const r=e.tabs.find(({path:a})=>a===b.SETTINGS_TAB_PATH);r&&(r.flags.touched=t)}const z_={SIDEBAR_SECTION_RESIZABLE:"sidebar.section.resizable"},Y_={[z_.SIDEBAR_SECTION_RESIZABLE]:!0},K_=Pt({name:"webforms",initialState:()=>{const{webforms:e}=vn();return{i18n:{current:""},...e,templates:{data:[],selectedGroup:""},datasources:{...rf.webforms.datasources,...e==null?void 0:e.datasources},flags:Y_}},reducers:{toggleInspector:(e,t)=>{const{type:r}=t.payload;e.inspector[r].active=!e.inspector[r].active,e.inspector[r].active||(e.inspector[r].data=void 0)},inspect:(e,t)=>{const{type:r,data:a}=t.payload;e.inspector[r].active&&(e.inspector[r].data=a)},addComponent:(e,t)=>{e.components.push(t.payload)},editComponent:(e,t)=>{const{id:r,changes:a}=t.payload;e.components=e.components.map(s=>s.id===r?{...s,...a}:s)},removeComponent:(e,t)=>{const{payload:r}=t,a=e.components.findIndex(s=>s.id===r);a!==-1&&e.components.splice(a,1)},setSelectedGroup:(e,t)=>{e.templates.selectedGroup=t.payload.selectedGroup},setTemplatesData:(e,t)=>{e.templates.data=t.payload},setTemplateData:(e,t)=>{const{group:r,components:a}=t.payload,s=e.templates.data.find(i=>i.group===r);s&&(s.components=a)},setDatasourcesTheme:(e,t)=>{e.datasources.theme=t.payload},setWebformsFlag(e,t){e.flags={...e.flags,...t.payload}},setI18nCurrent(e,t){e.i18n={...e.i18n,current:t.payload.current}}},extraReducers(e){e.addCase(tb.fulfilled,(t,r)=>{t.components=r.payload})}}),{toggleInspector:IM,inspect:FM,addComponent:J_,editComponent:Q_,removeComponent:X_,setSelectedGroup:MM,setTemplatesData:Z_,setTemplateData:eb,setDatasourcesTheme:NM,setWebformsFlag:LM,setI18nCurrent:$M}=K_.actions,kM=K_.reducer,Pf=le.curry((e,t)=>{var s,i,u;const r={...t.sharedDatasources.sources},a=(u=(i=(s=t.root.tabs.find(b.by("path",e)))==null?void 0:s.content)==null?void 0:i.metadata)==null?void 0:u.datasources;return a&&(r[e]=a),le.cloneDeep(r)}),qM=K("webforms/fetchTemplates",async(e,{dispatch:t,getState:r})=>{const{data:a}=r().webforms.templates,s=r().settings.session["studio.tipsBaseUrl"]||"";if(!le.isEmpty(a))return a;try{const u=await(await fetch(`${s}/build/index.json?t=${Date.now()}`)).json();return t(Z_(u)),u}catch{return[]}}),jM=K("webforms/fetchTemplate",async({name:e},{dispatch:t,getState:r})=>{const{data:a}=r().webforms.templates,s=a.find(i=>i.group===e);if(s&&!le.isEmpty(s.components))return s.components;try{const u=await(await fetch(`${s==null?void 0:s.link}?t=${Date.now()}`)).json();return t(eb({group:e,components:u})),u}catch{return[]}}),tb=K("webforms/fetchCraftedComponents",async(e,{rejectWithValue:t})=>{try{return(await b.getNodeInfo({path:"WebForms/crafted_components.json",verb:b.DesignerRequestVerb.GET_INFO,content:!0,as:"json"})).content}catch{return t("Error while loading the crafted components")}}),BM=K("webforms/addCraftedComponent",async(e,{dispatch:t,rejectWithValue:r,getState:a})=>{try{t(J_(e));const{webforms:{components:s}}=a();b.setCraftedComponents(s)}catch{return r("Error while adding the crafted component")}}),WM=K("webforms/editCraftedComponent",async(e,{dispatch:t,rejectWithValue:r,getState:a})=>{try{t(Q_(e));const{webforms:{components:s}}=a();b.setCraftedComponents(s)}catch{return r("Error while editing the crafted component")}}),UM=K("webforms/removeCraftedComponent",async(e,{dispatch:t,rejectWithValue:r,getState:a})=>{try{t(X_(e));const{webforms:{components:s}}=a();b.setCraftedComponents(s)}catch{return r("Error while removing the crafted component")}}),Df=K("datasources/add-datasource",async(e,{getState:t,rejectWithValue:r})=>{var a,s;try{const i=t(),u=e.datasource,l=!!u.namespace,f=[];if(l){const d={...i.sharedDatasources.sources,[u.namespace]:[...i.sharedDatasources.sources[u.namespace],u]};f.push(...d[u.namespace]),await b.setSharedSources(d)}else(((s=(a=i.root.tabs.find(b.by("path",e.path)).content)==null?void 0:a.metadata)==null?void 0:s.datasources)||[]).push(u);return{list:f,path:e.path,namespace:e.datasource.namespace}}catch{console.error("Error while adding the datasource",e.datasource.id),r("Error while adding the datasource")}}),If=K("datasources/edit-datasource",async(e,{getState:t,rejectWithValue:r})=>{try{const{namespace:a,path:s}=e,i=t(),u=!!e.namespace,l=Pf(s,i);let f=le.defaultTo(l[a||s],[]);const d=f.find(m=>m.id===e.id&&(m.namespace||"")===(e.namespace||"")),h=e.changes,g=h??{[e.property]:e.value};return f=f.map(m=>m.id===e.id?{...m,...g}:m),u&&await b.setSharedSources({...i.sharedDatasources.sources,[e.namespace]:f}),(le.isObject(h)?Object.keys(h):[]).includes("dataType")&&e.updateRefs&&b.datasourcesSubject.next({datasource:{id:e.id,namespace:e.namespace},path:s??"",action:b.DatasourcesActions.TYPE_CHANGE,old_type:(d==null?void 0:d.dataType)||"",new_type:g.dataType,is_shared:u}),{list:f,path:e.path,namespace:e.namespace}}catch{r(`Error while editing datasource ${e.id}`)}}),HM=e=>e.type===qn.fulfilled.type,qn=K("datasources/rename-datasource",async(e,{getState:t,rejectWithValue:r})=>{try{const a=t(),s=!!e.namespace,i=e.namespace||e.path,u=Pf(e.path,a),l=le.defaultTo(u[i],[]),f=new RegExp(`^${e.id}\\b`,"");if(l.forEach(d=>{var g;const h=(b.isObjectDatasource(d)||!b.isSimpleDatasource(d))&&d.from&&f.test(d.from);e.updateRefs&&((g=d.events)==null||g.forEach(_=>{var m,C,v,S,E;switch(_.type){case"method":{const A=_;A.params.forEach(O=>{O.datasource&&Object.assign(O,{datasource:O.datasource.replace(new RegExp(`^${e.id}`,""),e.new_name)})}),A.returns&&Object.assign(A.returns,{datasource:(C=(m=A.returns)==null?void 0:m.datasource)==null?void 0:C.replace(new RegExp(`^${e.id}`,""),e.new_name)});return}case"simple-action":{const A=_;A.datasource&&Object.assign(A.datasource,{name:(v=A.datasource.name)==null?void 0:v.replace(new RegExp(`^${e.id}`,""),e.new_name),from:(S=A.datasource.from)==null?void 0:S.replace(new RegExp(`^${e.id}`,""),e.new_name),target:(E=A.datasource.target)==null?void 0:E.replace(new RegExp(`^${e.id}`,""),e.new_name)});return}default:return}})),d.id===e.id?d.id=e.new_name:h&&d.from&&(d.from=d.from.replace(new RegExp(`^${e.id}`,""),e.new_name))}),e.updateRefs){const d=b.getDatasourceId({id:e.id,namespace:e.namespace}),h=b.getDatasourceId({id:e.new_name,namespace:e.namespace});b.datasourcesSubject.next({path:e.path??"",action:b.DatasourcesActions.RENAME,old_reference:d,new_reference:h,is_shared:s})}return s&&await b.setSharedSources({...a.sharedDatasources.sources,[e.namespace]:l}),{list:l,path:e.path,namespace:e.namespace}}catch{return r(`Error while renaming datasource ${e.namespace}:${e.id}`)}}),$a=K("datasources/delete-datasource",async(e,{getState:t,rejectWithValue:r})=>{try{const a=t(),s=!!e.namespace,i=e.namespace||e.path,l=Pf(e.path,a)[i].filter(b.outById(e.id));return s&&await b.setSharedSources({...a.sharedDatasources.sources,[e.namespace]:l}),{list:l,path:e.path,namespace:e.namespace}}catch{return r(`Error while removing datasource ${e.id}`)}}),ao=K("saved_conditions/fetchSavedConditions",async(e,{rejectWithValue:t})=>{try{const{conditions:r=[]}=await b.getSavedConditions({createIfNotExists:!0});return r}catch{return t("Error while loading the shared conditions")}}),Bo=(e,t,r)=>{switch(e.type){case"datasource":return{...e,path:e.path===t?r:e.path,value:e.valueType==="datasource"&&e.value===t?r:e.value,compareValue:e.compareValueType==="datasource"&&e.compareValue===t?r:e.compareValue};case"privilege":case"currentState":case"parentState":if(e.valueType==="datasource")return{...e,value:e.value===t?r:e.value};break;case"combination":return{...e,conditions:(e.conditions||[]).map(a=>Bo(a,t,r))}}return e},GM=b.queue();async function wa(e){const t={verb:b.DesignerRequestVerb.SET_FILE_CONTENT,asText:!1,name:"saved_conditions.json",path:"",root:"shared",content:{conditions:e}};await GM(()=>b.http(b.API_PREFIX,{method:"POST",body:JSON.stringify(t),headers:new Headers({"Content-Type":"application/json"})}))}const Wo=(e,t)=>{if(e.id===t)return null;if(e.type==="reference"&&e.ref===t)return null;if(e.type==="combination"&&e.conditions){const r=e.conditions.map(a=>Wo(a,t)).filter(Boolean);return r.length===1?{...r[0],id:e.id}:{...e,conditions:r}}return e},Uo=e=>{if(e.id){if(e.type==="combination"&&e.conditions)return{...e,conditions:e.conditions.map(Uo)}}else return{...e,id:Wa.generate()};return e},rb=Pt({name:"shared-conditions",initialState:{state:"unknown",conditions:[]},reducers:{updateSavedConditions:(e,t)=>(e.conditions=t.payload.conditions,wa(t.payload.conditions),e),setSavedCondition:(e,t)=>{const{payload:r}=t;return e.conditions=e.conditions.map(a=>a.id===r.id?{...Uo(r.condition),id:a.id}:a),wa(e.conditions),e},updateSavedConditionDs:(e,t)=>{const{old_reference:r,new_reference:a}=t.payload;e.conditions=e.conditions.map(s=>Bo(s,r,a)),wa(e.conditions)},addSavedCondition:(e,t)=>(e.conditions=[...e.conditions,t.payload],wa(e.conditions),e),removeSavedCondition:(e,t)=>{const{id:r}=t.payload;return e.conditions=e.conditions.map(a=>Wo(a,r)).filter(Boolean),wa(e.conditions),e},initSavedConditions:(e,t)=>(e.conditions=t.payload.conditions,e)},extraReducers(e){e.addCase(ao.pending,t=>({...t,state:"loading"})).addCase(ao.fulfilled,(t,{payload:r})=>({state:"loaded",conditions:r})).addCase(ao.rejected,(t,r)=>({...t,state:"error",error:r.payload||"Error while loading the shared conditions"})),e.addMatcher($t(db),(t,r)=>{const{state:a,oldLabel:s}=r.payload;t.conditions=t.conditions.map(i=>Wn(i,s,a.label))}),e.addMatcher($t(pb),(t,r)=>{const{payload:a}=r;t.conditions=t.conditions.map(s=>{var i;return Wn(s,(i=a.state)==null?void 0:i.label)})})}}),{updateSavedConditions:VM,setSavedCondition:zM,updateSavedConditionDs:YM,addSavedCondition:KM,removeSavedCondition:nb,initSavedConditions:JM}=rb.actions,QM=rb.reducer,Ga=Pt({name:"root",initialState:()=>{const e=vn();return{filesLoading:!1,tabs:e.tabs||[],activeTab:e.activeTab,recent:e.recent||[],clipboard:null}},reducers:{setWebformState(e,t){const{path:r,currentState:a}=t.payload;e.tabs.forEach(s=>{s.path===r&&(s.content.metadata.currentState=a.id)})},copyToClipBoard(e,t){e.clipboard=t.payload},setPanelState(e,t){const{path:r,...a}=t.payload;e.tabs.forEach(s=>{s.path===r&&(s.view||(s.view={panel:{isOpen:!1,type:"",current:""}}),Object.assign(s.view.panel,a))})},openSettingsTab(e){const t={date:new Date().toISOString(),flags:{confirmed:!0},view:{panel:{isOpen:!1,type:"",current:""}},extra:{editor:{key:"editors:settings"}},name:"Settings",path:b.SETTINGS_TAB_PATH,type:b.FileFolderType.SETTINGS,initialContent:{},content:{}};let r=e.tabs.find(a=>a.path===t.path);if(r||(e.tabs.push(t),r=e.tabs[e.tabs.length-1]),e.activeTab!==t.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=t.path,r.weight=((a==null?void 0:a.weight)||0)+1}},addDataSource(e,t){var i;const{payload:{path:r,datasourceDef:a}}=t,s=e.tabs.find(u=>u.path===r);s&&(s.content.metadata.datasources=s.content.metadata.datasources||[],(i=s.content.metadata.datasources)!=null&&i.find(l=>l.id===a.id)||(s.content.metadata.datasources=[...s.content.metadata.datasources,{...a,events:[]}],s.flags={...s.flags,touched:!0,confirmed:!0}))},addWebformState(e,t){var i;const{payload:{path:r,stateDef:a}}=t,s=e.tabs.find(u=>u.path===r);s&&(s.content.metadata.states=s.content.metadata.states||[Hn],(i=s.content.metadata.states)!=null&&i.find(l=>l.id===a.id)||(s.content.metadata.states=[...s.content.metadata.states,a],s.flags={...s.flags,touched:!0,confirmed:!0}))},removeWebformState(e,t){const{payload:r}=t;e.tabs=e.tabs.map(a=>a.path===r.path?{...a,flags:{...a.flags,touched:!0,confirmed:!0},content:em(a.content,r.state)}:a)},editWebformState(e,t){const{path:r,state:a,oldLabel:s}=t.payload;e.tabs=e.tabs.map(i=>i.path===r?{...i,flags:{...i.flags,touched:!0,confirmed:!0},content:{...i.content,metadata:{...i.content.metadata,states:i.content.metadata.states.map(u=>vf(u)?u:u.id===a.id?a.conditions?{...a,conditions:Uo(a.conditions)}:a:{...u,conditions:u.conditions?Wn(u.conditions,s,a.label):u.conditions})}}}:i)},updateStateConditionDs(e,t){const{path:r,old_reference:a,new_reference:s}=t.payload;e.tabs=e.tabs.map(i=>{var u,l;return i.path===r?{...i,flags:{...i.flags,touched:!0,confirmed:!0},content:{...i.content,metadata:{...i.content.metadata,states:(((l=(u=i.content)==null?void 0:u.metadata)==null?void 0:l.states)||[]).map(f=>f.conditions?{...f,conditions:Bo(f.conditions,a,s)}:f)}}}:i})},resetComponentState(e,t){const{path:r,id:a,state:s}=t.payload;e.tabs=e.tabs.map(i=>i.path===r?{...i,flags:{...i.flags,touched:!0,confirmed:!0},content:{...i.content,components:{...i.content.components,[a]:{...i.content.components[a],custom:{...le.omit(i.content.components[a].custom,`states:${s.id}`)}}}}}:i)},setDefaultWebformStates(e,t){const{path:r,states:a}=t.payload;e.tabs=e.tabs.map(s=>s.path===r?{...s,flags:{...s.flags,touched:!0,confirmed:!0},content:{...s.content,metadata:{...s.content.metadata,defaultStates:a.map(({id:i})=>i)}}}:s)},addDefaultWebformState(e,t){const{payload:r}=t;e.tabs=e.tabs.map(a=>{var s;return a.path===r.path?{...a,flags:{...a.flags,touched:!0,confirmed:!0},content:{...a.content,metadata:{...a.content.metadata,defaultStates:Array.from(new Set([...((s=a.content.metadata)==null?void 0:s.defaultStates)||[],r.state.id]))}}}:a})},removeDefaultWebformState(e,t){const{payload:r}=t;e.tabs=e.tabs.map(a=>{var s;return a.path===r.path?{...a,flags:{...a.flags,touched:!0,confirmed:!0},content:{...a.content,metadata:{...a.content.metadata,defaultStates:(((s=a.content.metadata)==null?void 0:s.defaultStates)||[]).filter(i=>i!==r.state.id)}}}:a})},removeDataSource(e,t){const{path:r,datasourceID:a}=t.payload;e.tabs=e.tabs.map(s=>s.path===r?{...s,flags:{...s.flags,touched:!0,confirmed:!0},content:{...s.content,metadata:{...s.content.metadata,datasources:s.content.metadata.datasources.filter(i=>i.id!==a)}}}:s)},setDataSources(e,t){const{payload:{path:r,datasourceArr:a}}=t;e.tabs=e.tabs.map(s=>{var i;return s.path===r?{...s,flags:{...s.flags,touched:!0,confirmed:!0},content:{...s.content,metadata:{...(i=s.content)==null?void 0:i.metadata,datasources:a}}}:s})},setTabs(e,t){e.tabs=t.payload},closeTab(e,t){const r=t.payload;e.tabs.splice(r,1);const a=e.tabs.reduce((s,i)=>(i==null?void 0:i.weight)>((s==null?void 0:s.weight)||0)?i:s,null);e.activeTab=(a==null?void 0:a.path)||""},closeOthers(e,t){e.tabs=e.tabs.filter(r=>r.path===t.payload),e.activeTab=t.payload},closeAllTabs(e){e.tabs=[],e.activeTab=""},closeRightTabs(e,t){e.tabs.splice(t.payload+1),e.activeTab=e.tabs[t.payload].path},closeLeftTabs(e,t){e.tabs.splice(0,t.payload)},closeSavedTabs(e){e.tabs=e.tabs.filter(({flags:{touched:r}})=>r);const t=e.tabs.reduce((r,a)=>(a==null?void 0:a.weight)>((r==null?void 0:r.weight)||0)?a:r,null);e.activeTab=(t==null?void 0:t.path)||""},confirmTab(e,t){const r=e.tabs.find(({path:a})=>a===t.payload);r&&(r.flags.confirmed||Ga.caseReducers.setTabFlags(e,{type:t.type,payload:{path:t.payload,flags:{confirmed:!0}}}))},selectTab(e,t){const r=e.tabs.find(({path:s})=>s===t.payload);if(!r||e.activeTab===t.payload)return;const a=e.tabs.reduce((s,i)=>(i==null?void 0:i.weight)>((s==null?void 0:s.weight)||0)?i:s,null);r.weight=a?(a.weight||0)+1:1,e.activeTab=t.payload},openTabUnselected(e,t){const r=t.payload;let a=e.tabs.find(({path:i})=>r.path===i);a||(e.tabs.push(r),a=e.tabs[e.tabs.length-1]);const s=e.tabs.reduce((i,u)=>(u==null?void 0:u.weight)>((i==null?void 0:i.weight)||0)?u:i,null);a.weight=s?(s.weight||0)+1:1,a.extra={...a.extra,...r.extra}},selectTabByReference(e,t){const r=[b.FileFolderType.DEBUGGER],{isNew:a,...s}=t.payload;let i=s,u=e.tabs.find(({path:l})=>i.path===l);if(i.history||(i.history={stack:[],active:-1,locked:!1}),(r.includes(i.type)||u!=null&&u.flags.confirmed)&&(i={...i,flags:{...i.flags,confirmed:!0}}),!u){const l=e.tabs.findIndex(({flags:{confirmed:f}})=>f===!1);l!==-1&&!r.includes(i.type)&&!a?e.activeTab===e.tabs[l].path?(e.tabs[l]=i,u=e.tabs[l]):(e.tabs.push(i),u=e.tabs[e.tabs.length-1],e.tabs.splice(l,1)):(e.tabs.push(i),u=e.tabs[e.tabs.length-1])}if(e.activeTab!==i.path){const l=e.tabs.reduce((f,d)=>(d==null?void 0:d.weight)>((f==null?void 0:f.weight)||0)?d:f,null);e.activeTab=i.path,u.weight=((l==null?void 0:l.weight)||0)+1}u.extra={...u.extra,...i.extra},u.flags={...u.flags||{},...i.flags||{}}},setContent(e,t){const{path:r,content:a,contentPath:s}=t.payload;e.tabs=e.tabs.map(i=>{if(i.path!==r)return i;let u=!1,l=i.flags.confirmed;if(typeof a=="string")u=i.initialContent!==a,l=!l&&u?!0:l;else{const f=le.get(i.initialContent,s||"",i.initialContent),d=le.get(a,s||"",a);u=!le.isEqual(f,d),l=!l&&u?!0:l}return a&&typeof a=="object"&&(s?le.set(i.content,s,a):i.content=a),typeof a=="string"&&(i.content=a),{...i,flags:{...i.flags,touched:u,confirmed:l}}})},setTabFlags(e,t){const{path:r,flags:a}=t.payload;e.tabs=e.tabs.map(s=>s.path===r?{...s,flags:{...s.flags,...a}}:s)},setTabsFlags(e,t){const{tabs:r,flags:a}=t.payload;e.tabs=e.tabs.map(s=>r.includes(s.path)?{...s,flags:{...s.flags,...a}}:s)},setTabExtra(e,t){const{path:r,extra:a,flags:s}=t.payload;e.tabs=e.tabs.map(i=>i.path===r?{...i,extra:{...i.extra,...a},flags:s?{...i.flags,...s}:i.flags}:i)},addWebFormStyles(e,t){const{path:r,styles:a=[]}=t.payload,s=e.tabs.find(i=>i.path===r);if(s){const i=s.content.metadata.styles.map(({name:l})=>l),u=a.filter(({name:l})=>!i.includes(l));s.content.metadata.styles=[...s.content.metadata.styles,...u].map(({scope:l,...f})=>f)}},changeTabEditor(e,t){return e.tabs=e.tabs.map(r=>r.path===t.payload.path?t.payload:r),e},setHistoryContent(e,t){const r=t.payload;e.tabs=e.tabs.map(a=>{var i,u;if(a.path!==r)return a;const s=!le.isEqual(a.content,(i=a.history)==null?void 0:i.stack[a.history.active]);return a.history&&s&&(a.history.stack=[...(u=a.history)==null?void 0:u.stack.slice(0,a.history.active+1),a.content],a.history.active=a.history.stack.length-1),{...a}})},unlockHistory(e,t){const r=t.payload;e.tabs=e.tabs.map(a=>a.path!==r?a:(a.history&&(a.history.locked=!1),{...a}))},undo(e){e.tabs=e.tabs.map(t=>t.path!==e.activeTab?t:(t.history&&t.history.active>0&&(t.history.locked=!0,t.history.active--,t.content=t.history.stack[t.history.active]),{...t}))},redo(e){e.tabs=e.tabs.map(t=>t.path!==e.activeTab?t:(t.history&&t.history.active<t.history.stack.length-1&&(t.history.locked=!0,t.history.active++,t.content=t.history.stack[t.history.active]),{...t}))}},extraReducers:e=>{e.addCase(kl,(t,r)=>{if(r.payload.settingsKey==="studio.enablePreview"&&r.payload.value===!1){const a=t.tabs.find(({flags:{confirmed:s}})=>s===!1);a&&Ga.caseReducers.setTabFlags(t,{type:"",payload:{path:a.path,flags:{confirmed:!0}}})}}),e.addCase(F_.fulfilled,(t,r)=>{if(!r.payload)return;const{content:a,line:s,path:i}=r.payload,u=t.tabs.find(l=>l.path===i);if(u&&typeof u.content=="string"){const l=u.content.trim().split(`
169
+ `;default:return""}}function R_(e,t,r){switch(t){case b.FileFolderType.MOBILEFORM:return`${e}.MForm`;case b.FileFolderType.WEBFORM:return`${e}.WebForm`;case b.FileFolderType.REPORT:return`${e}.QoDoc`;case b.FileFolderType.METHOD:case b.FileFolderType.CLASS:return`${e}.${r?"4qs":"4dm"}`;default:return e}}function yF(e){switch(e){case b.FolderRootPath.WEBFORMS:return b.FileFolderType.WEBFORMS;case b.FolderRootPath.METHODS:return b.FileFolderType.METHODS;case b.FolderRootPath.CLASSES:return b.FileFolderType.CLASSES;case b.FolderRootPath.REPORTS:case"Reports":return b.FileFolderType.REPORT;case"Mobile":return b.FileFolderType.MOBILE;default:return e}}function O_(e){switch(e){case b.FileFolderType.WEBFORMS:return b.FileFolderType.WEBFORM;case b.FileFolderType.REPORT:return b.FileFolderType.REPORT;case b.FileFolderType.CLASSES:return b.FileFolderType.CLASS;case b.FileFolderType.METHODS:return b.FileFolderType.METHOD;case b.FileFolderType.FOLDER:return b.FileFolderType.FOLDER;case b.FileFolderType.MOBILE:return b.FileFolderType.MOBILEFORM;default:return e}}const mF=K("files/tryEditMethod",async({method:e},{dispatch:t})=>{const r=e.filePath.split("/"),[a]=r[1].split("."),{editor:s}=yt(e.filePath);return await t(Af({file:{name:a,path:e.filePath,date:new Date().toISOString(),type:b.FileFolderType.CLASS,editor:s},line:e.startingLine+1})).unwrap()}),Bl=K("explorer/createModelFiles",async(e,{dispatch:t,getState:r})=>{var g;const a=r(),s=b.FolderRootPath.CLASSES,i=a.settings.server.qodly,u=Qe(a.explorer,s);if(!u)return;await t(Jr(s));const f=((g=r().explorer.find(_=>_.name===s))==null?void 0:g.children)||[];let d=[{content:"",name:""}];if(e.type==="dataclass"&&!e.toCreate){const{className:_,collectionName:m}=e;d=[{...fn().dataclass({name:_,qodly:i})},{...fn().collection({name:m,qodly:i})},{...fn().entity({name:_,qodly:i})}]}else if(e.type==="dataclass"&&e.toCreate){const{className:_,collectionName:m}=e;d=[{...fn()[e.toCreate]({name:_||m,qodly:i})}]}else d=[{...fn().model({name:"DataStore",qodly:i})}];d=d.filter(_=>!f.find(({name:m,ext:C,info:{exist:v=!0}={}})=>m===_.name&&C===(i?"4qs":"4dm")&&v)),await Promise.all(d.map(async({name:_,content:m})=>{await t(Ln({type:b.FileFolderType.CLASS,path:s,fileName:_,parentNode:u,content:m,qodly:a.settings.server.qodly}))}));const h=e.type==="dataclass"&&e.expand?e.className:"";await t(Jr({nodePath:s,expandDataclass:h}))}),Jr=K("explorer/fetchFolderContent",async(e,{rejectWithValue:t,getState:r})=>{const{nodePath:a,expandDataclass:s=""}=typeof e=="string"?{nodePath:e}:e,i=r();try{const u=await b.getNodeInfo({verb:b.DesignerRequestVerb.GET_INFO,path:a});return i.catalog.state!=="loaded"?[]:a==="Classes"?Un(i,u,s):u.map(l=>{const f=`${a}/${l.name}${l.ext?`.${l.ext}`:""}`,{editor:d,supportedEditors:h}=yt(f);return{name:l.name,size:l.size,type:l.type,date:`${l.date}`,flags:{},error:null,path:f,ext:l.ext,config:l.type==="folder"?{}:{editor:d,supportedEditors:h}}})}catch{return t("Failed loading file content please Reload"),a==="Classes"?Un(i,[],s):[]}},{getPendingMeta:()=>{}}),P_=K("model/fetchClassesFolderContent",async(e,{getState:t})=>{const r=t(),a=b.FolderRootPath.CLASSES;if(Qe(r.explorer,a))try{const i=await b.getNodeInfo({verb:b.DesignerRequestVerb.GET_INFO,path:a});return Un(r,i)}catch{return Un(r,[])}}),Ma=K("explorer/fetchFolderContentWithoutExpanding",async(e,{rejectWithValue:t,getState:r})=>{const{nodePath:a}=typeof e=="string"?{nodePath:e}:e,s=r();try{const i=await b.getNodeInfo({verb:b.DesignerRequestVerb.GET_INFO,path:a});return a==="Classes"?Un(s,i):i.map(u=>{const l=`${a}/${u.name}${u.ext?`.${u.ext}`:""}`,{editor:f,supportedEditors:d}=yt(l);return{name:u.name,size:u.size,type:u.type,date:`${u.date}`,flags:{},error:null,path:l,ext:u.ext,config:u.type==="folder"?{}:{editor:f,supportedEditors:d}}})}catch{return t("Failed loading file content please Reload")}},{getPendingMeta:()=>{}});function _F(e){const t=e.split(".");return t.pop(),{name:t.join("."),ext:e.split(".")[e.split(".").length-1]}}const bF=K("explorer/uploadFileAndGetResponse",async e=>{const t=e.type.includes("image/")?"$rawPict=true":"$binary=true";try{const r=await fetch(`/rest/$upload?${t}`,{method:"POST",headers:{"Content-Type":e.type},body:e});return{status:r.status,data:await r.json()}}catch{return{status:500,data:null}}}),SF=K("explorer/uploadFile",async({file:e,path:t,parentNode:r},{dispatch:a})=>{const{editor:s,supportedEditors:i}=yt(t),{name:u,ext:l}=_F(e.name);a(A_({parent:r,child:{name:u,path:`${t}/${e.name}?t=${Date.now()}`,type:e.type,error:null,flags:{loading:!0},config:{editor:s,supportedEditors:i},ext:l}}));try{const f=await fetch(`/rest/$upload?$sharedFolder=true&$filename=${e.name}&$path=${t}`,{method:"POST",headers:{"Content-Type":e.type},body:e});return f.status>=300?(a(jl({parent:r,child:{name:u,path:`${t}/${e.name}`,type:e.type,error:{message:"error uploading file"},flags:{},config:{editor:s,supportedEditors:i},ext:l}})),f.status!==413&&b.toastSubject.next({message:"error uploading file",kind:"danger"})):await a(Jr(r.path)),{status:f.status,fileName:e.name}}catch{return a(jl({parent:r,child:{name:u,path:`${t}/${e.name}`,type:e.type,error:{message:"error uploading file"},flags:{},config:{editor:s,supportedEditors:i},ext:l}})),b.toastSubject.next({message:"error uploading file",kind:"danger"}),{status:500,fileName:e.name}}}),Ln=K("explorer/createNewFile",async({fileName:e,type:t,path:r,parentNode:a,content:s},{dispatch:i,rejectWithValue:u,getState:l})=>{const{server:{qodly:f},project:d}=l().settings;try{const h=await b.setFileContent({name:R_(e,t,f),content:s||x_(t,d),path:r,asText:[b.FileFolderType.CLASS,b.FileFolderType.METHOD].includes(t)});return a.error&&(a.flags.expanded?await i(Jr(a.path)):await i(Ma(a.path))),{qodly:f,file:h,parentNode:a}}catch{return u("failed to create folder")}});function D_(e,t){const{qodly:r=!0,withExtension:a=!0}=t||{},s=b.getFileExtentionFromType(e.type,r);let i="";switch(e.type){case b.FileFolderType.WEBFORM:i=`${b.FolderRootPath.WEBFORMS}/${e.name}`;break;case b.FileFolderType.METHOD:i=`${b.FolderRootPath.METHODS}/${e.name}`;break;case b.FileFolderType.CLASS:i=`${b.FolderRootPath.CLASSES}/${e.name}`;break;default:return""}return`${i}${a?`.${s}`:""}`}const EF=K("explorer/createNewFileAndOpen",async(e,{dispatch:t,getState:r})=>{const a=await t(Ln(e)).unwrap(),{qodly:s}=r().settings.server;if(a){const{file:i}=a,u=D_(i,{withExtension:!1,qodly:s}),{editor:l}=yt(u);await t(Na({file:{name:e.fileName,type:i.type,path:u,editor:l,date:new Date().toISOString()}}))}}),to=K("explorer/createNewNode",async({fileName:e,path:t,parentNode:r},{rejectWithValue:a})=>{try{return{file:await b.createFolder({verb:b.DesignerRequestVerb.CREATE_FOLDER,path:`${t}/${e}`,recursive:!0}),parentNode:r}}catch{return b.toastSubject.next({message:"failed to create folder",kind:"danger"}),a("failed to create folder")}}),Ua=async({file:e,flags:t={},node:r={}})=>{var a;try{const s=e.path.split(".").at(-1),i=await b.getNodeInfo({verb:b.DesignerRequestVerb.GET_INFO,path:e.path,content:((a=e.editor)==null?void 0:a.key)!=="editors:img",as:Zy(s)?"json":"text"}),u={editor:e.editor};r!=null&&r.info&&(u.kind=r.info.kind);const l=b.getTypeFromExtension(e.path);l===b.FileFolderType.METHOD&&(u.attributes=b.parseAttributes(i.content),i.content=b.addAttributesToContent(i.content,{}));const{content:f,date:d,ext:h}=i;return t.confirmed===void 0&&(t.confirmed=!0),{date:d,view:{panel:{isOpen:!1,type:"",current:""}},flags:{enabled:["WebForm","MForm"].includes(h),confirmed:t.confirmed},extra:u,name:e.name,path:e.path,type:l,initialContent:f,content:f,history:{stack:[],active:-1,locked:!1}}}catch(s){const{data:i}=s;if(i.__ERROR.find(u=>u.errCode===b.ERROR_CODES.FILE_NOT_FOUND))switch(e.path){case b.ROLES_TAB_PATH:{const u={permissions:{allowed:[]},privileges:[],roles:[]};return{date:new Date().toISOString(),flags:t,extra:{editor:{key:"editors:roles"},kind:"roles"},name:"Roles & Privileges",path:e.path,type:b.FileFolderType.ROLES,initialContent:u,content:u}}case b.SETTINGS_TAB_PATH:{const u={};return{date:new Date().toISOString(),flags:t,extra:{editor:{key:"editors:settings"},kind:"qodlyApp"},name:"Settings",path:e.path,type:b.FileFolderType.SETTINGS,initialContent:u,content:u}}}throw s}},I_=K("HTTPHandlers/fetch",async(e,{rejectWithValue:t})=>{const r=(await b.getFilesInfo({path:b.HTTP_HANDLERS_PATH})).files.find(a=>a.path===b.HTTP_HANDLERS_PATH);if(r!=null&&r.deleted)return t("not found")}),qo=(e,t)=>{const r=(a,s)=>{for(const i of a){if(i.path===s)return i;if(i.children){const u=r(i.children,s);if(u)return u}}};return r(e,t)},Na=K("explorer/openFile",async({file:e,inactive:t,isNew:r,flags:a={},info:s},{getState:i,dispatch:u})=>{const{root:{tabs:l},roles:f,explorer:d,debugger:{sessions:h},settings:{server:{qodly:g}}}=i(),_=l.find(({path:S})=>e.path===S);if(_){const S={..._,extra:{..._==null?void 0:_.extra,editor:e.editor},flags:{..._==null?void 0:_.flags,...a}};return u(Tt(S)),S}if(e.path.startsWith("Debugger")){const S=h.find(E=>`Debugger/${E.threadId}`===e.path);if(S){const{source:{content:E},source:A}=S.currentStackFrame,O={name:e.name,type:b.FileFolderType.DEBUGGER,date:new Date().toISOString(),path:e.path,content:E,view:{panel:{isOpen:!1,type:"",current:""}},initialContent:E,flags:{confirmed:!0},extra:{source:A,editor:e.editor}};return u(Tt(O)),O}}const m=qo(d,e.path);let C=null;try{e.path!==b.LOCALIZATION_PATH?C=await Ua({file:e,flags:a,node:m}):C={date:new Date().toString(),view:{panel:{isOpen:!1,type:"",current:""}},flags:{enabled:!1,confirmed:a.confirmed},extra:{editor:{key:"editors:localization"}},name:e.name,path:e.path,type:b.FileFolderType.TEXT,initialContent:"",content:"",history:{stack:[],active:-1,locked:!1}}}catch(S){const{data:E}=S;if(E.__ERROR.find(A=>[b.ERROR_CODES.JSON_MALFORMED,b.ERROR_CODES.JSON_MALFORMED_AT_LINE].includes(A.errCode))){const{confirmed:A}=await u(Qt({title:"Corrupt file",type:b.ModalType.CONFIRM,color:b.ModalColor.WARNING,message:"Open in code editor ?"})).unwrap();if(A){const O=await b.getNodeInfo({verb:b.DesignerRequestVerb.GET_INFO,path:e.path,content:!0,as:"text"}),{content:I,date:R,ext:j}=O;C={date:R,view:{panel:{isOpen:!1,type:"",current:""}},flags:{enabled:["WebForm","MForm","QoDoc"].includes(j),confirmed:!0},extra:{editor:b.EDITOR.Code},name:e.name,path:e.path,type:b.getTypeFromExtension(e.path),initialContent:I,content:I,history:{stack:[],active:-1,locked:!1}}}}if(e.type===b.FileFolderType.CLASS&&s){const A=s.kind,O=`${e.name}.${g?"4qs":"4dm"}`,I=fn()[A]({name:O,qodly:g}).content;if(C={date:(await b.setFileContent({name:O,content:I,path:"Classes",asText:!0})).date,view:{panel:{isOpen:!1,type:"",current:""}},flags:{enabled:!1,confirmed:!0},extra:{editor:b.EDITOR.Code},name:e.name,path:e.path,type:b.getTypeFromExtension(e.path),initialContent:I,content:I,history:{stack:[],active:-1,locked:!1}},A==="app"){const j=await b.getFilesInfo(...by.map(W=>({path:`DatabaseMethods/${W.name}`})));by.forEach(W=>{const X=j.files.find(re=>re.path===`DatabaseMethods/${W.name}`);X!=null&&X.deleted&&b.setFileContent({name:W.name,content:W.content,path:"DatabaseMethods",asText:!0})})}}if(e.path===b.HTTP_HANDLERS_PATH){const A=(await b.getFilesInfo({path:b.HTTP_HANDLERS_PATH})).files.find(O=>O.path===b.HTTP_HANDLERS_PATH);A!=null&&A.deleted&&await b.setFileContent({name:b.HTTP_HANDLERS_PATH,content:"[]",path:"./",asText:!0}).then(async()=>{C=await Ua({file:e,flags:a,node:m})})}}return C&&(e.path===b.ROLES_TAB_PATH&&!f.flags.touched?u(Tf({content:C.content,date:C.date,flags:a})):e.path===b.SETTINGS_TAB_PATH&&u(ko({path:"project",value:C.content})),u((t?lb:Tt)({...C,isNew:r})),C)}),Af=K("explorer/openFileAtLine",async({file:e},{getState:t,dispatch:r})=>{const{root:{tabs:a},explorer:s}=t(),i=a.find(({path:f})=>e.path===f);if(i){const f={...i,extra:{...i==null?void 0:i.extra,editor:e.editor}};return r(Tt(f)),f}const u=qo(s,e.path),l=await Ua({file:e,node:u});return r(Tt(l)),l}),F_=K("explorer/injectContentAtLine",async(e,{getState:t,dispatch:r,rejectWithValue:a})=>{const{explorer:s}=t();e.path.split("/").pop();const u=Qe(s,e.path);if(!u)return a(`Error while trying to inject content in file ${e.path}`);const l=`${u.path}.${u.ext}`,f=qo(s,l),d=await Ua({file:{name:u.name,date:u.date||new Date().toISOString(),path:l,type:b.FileFolderType.CLASS,editor:u.config.editor},node:f});return await r(Tt(d)),{...e,path:`${u.path}.${u.ext}`}}),M_=K("explorer/openFileAtSelection",async({file:e},{getState:t,dispatch:r})=>{const{root:{tabs:a},explorer:s}=t(),i=a.find(({path:f})=>e.path===f);if(i){const f={...i,extra:{...i==null?void 0:i.extra,editor:e.editor}};return r(Tt(f)),f}const u=qo(s,e.path),l=await Ua({file:e,node:u});return r(Tt(l)),l}),Wl=K("explorer/deleteFile",async e=>{const{name:t,type:r,path:a,flags:s}=e;if(s.error)return{deleted:!0,node:e};const i=a.split("/");return i.pop(),{deleted:await b.dropFile({root:b.FolderRootType.ROOT,type:O_(r),verb:b.DesignerRequestVerb.DROP,name:t,path:i.join("/")}),node:e}}),TF=K("explorer/deleteFolder",async(e,{getState:t,dispatch:r})=>{const{path:a,flags:s}=e;if(s.error)return{deleted:!0,node:e};const{deleted:i}=await b.removeItem({force:!0,path:a,verb:b.DesignerRequestVerb.REMOVE_ITEM}).catch(console.error)||{deleted:!1};if(e.children){const{tabs:u}=t().root;e.children.forEach(l=>{const f=u.findIndex(d=>d.path===l.path);r(Ho(f))})}return{deleted:i,node:e}}),Ul=K("explorer/removeFileNode",async(e,{getState:t,dispatch:r})=>{await b.removeItem({verb:b.DesignerRequestVerb.REMOVE_ITEM,path:e.path,force:!0}).catch(console.error);const{root:{tabs:a},catalog:s}=t();if((e.path==="Classes/DataStore"||N_(s,e))&&setTimeout(()=>{r(Qr())},Ja),e.ext){const i=a.findIndex(u=>u.path===e.path);i>=0&&r(Ho(i))}return{deleted:!0,node:e}}),N_=(e,t)=>{const{model:{singletons:r}}=e;return le.values(r).some(a=>a.name===t.name)},$n=K("explorer/renameFile",async({file:e,newname:t},{dispatch:r,getState:a})=>{if(e.type!=="folder"){const i=e.path.split("/");i.pop();const u=`${i.join("/")}/${e.name}.${e.ext}`,l=`${i.join("/")}/${t}.${e.ext}`;await b.moveItem({verb:b.DesignerRequestVerb.MOVE_ITEM,path:u,newpath:l});const{catalog:f}=a();return N_(f,e)&&setTimeout(()=>{r(Qr())},Ja),{old:{...e,path:u},new:{...e,name:t,path:l}}}const s=e.path.split("/");return s.pop(),await b.moveItem({verb:b.DesignerRequestVerb.MOVE_ITEM,path:`${s.join("/")}/${e.name}`,newpath:`${s.join("/")}/${t}`}),{old:e,new:{...e,name:t,path:`${s.join("/")}/${t}`}}}),La=K("explorer/relocateNode",async({draggedNode:e,newLocation:t},{rejectWithValue:r})=>{try{await b.moveItem({verb:b.DesignerRequestVerb.MOVE_ITEM,path:`${e.path}.${e.ext}`,newpath:`${t.path}/${e.name}.${e.ext}`})}catch{return r("can't move item")}}),ro=K("explorer/duplicateNode",async({node:e,duplicateName:t},{rejectWithValue:r,fulfillWithValue:a,getState:s})=>{const i=e.path.split("/");i.pop();try{const{tabs:u}=s().root,l=u.find(({path:g})=>g===e.path),f=["4dm","4qm","4qs"].includes(e.ext),{content:d}=l||await b.getNodeInfo({verb:b.DesignerRequestVerb.GET_INFO,path:e.path,content:!0,as:f?"text":"json"}),h=await b.setFileContent({name:`${t}.${e.ext}`,content:d,path:i.join("/"),asText:f});return a({node:{...h,path:i.join("/")}})}catch{return r("failed to duplicate file")}}),wF=K("explorer/executeMethod",async({methodName:e,params:t=[],resultingDataSource:r={},namespace:a=""},{rejectWithValue:s})=>{var i,u;try{const f=await window.Method4D.buildMethod({methodName:e,parameters:t,resultingDataSource:r},{namespace:a},null).callServerSide({id:"",serverSideRef:""},"onclick",{});return f!=null&&f.__NOTIFICATION?b.toastSubject.next({message:`${((i=f.__NOTIFICATION)==null?void 0:i.message)||""}`,kind:`${((u=f.__NOTIFICATION)==null?void 0:u.type)||"info"}`}):b.toastSubject.next({message:"Method executed Successfully",kind:"message"}),f}catch(l){return b.toastSubject.next({message:l.errorStack.length>1&&[{messages:l.errorStack.map(f=>f.message)}]||l.message||`Error executing the method "**${e}**"`,kind:"danger",markdown:!0}),s("can't execute method")}}),CF=e=>{const{dataClasses:t,...r}=e;return{...r,dataClasses:t==null?void 0:t.map(a=>{let s={...a};if(s.uuid||(s={...s,uuid:b.generateUUID()}),s.attributes){const i=["storage","relatedEntity"],u=s.attributes.map(l=>i.includes(l.kind)&&!l.uuid?{...l,uuid:b.generateUUID()}:l);s={...s,attributes:[...u]}}return s})}},AF=K("files/fetchFiles",async()=>b.getFolders(b.FolderRootType.WEBFORMS,b.FolderRootType.METHODS,b.FolderRootType.CLASSES)),xf=K("tabs/renameDatasource",async(e,{dispatch:t,getState:r})=>{var m,C;const a=!!e.datasourceNamespace,{confirmed:s}=await t(Qt({message:"Are you sure you want to rename the datasource?",title:"Rename Datasource",type:b.ModalType.CONFIRM,color:b.ModalColor.WARNING,views:{toggles:{},tips:a?[{type:"warning",message:"The datasource property of components bound with this datasource will also be updated on opened web forms only"},{type:"warning",message:"The origin of some other datasources might be also renamed (if this datasource is the origin of other datasources)"}]:[{type:"warning",message:"The datasource property of components bound with this datasource will also be updated"},{type:"warning",message:"The origin of some other datasources might be also renamed (if this datasource is the origin of other datasources)"}]}})).unwrap();if(!s)return null;const{autoUpdateReferences:i,datasourceId:u,datasourceNamespace:l,value:f,path:d}=e,h=r();let g=[];if(a){const v=h.sharedDatasources.sources[l]||[];g.push(...v)}else if(d){const v=h.root.tabs.find(b.by("path",d));if(g=(C=(m=v==null?void 0:v.content)==null?void 0:m.metadata)==null?void 0:C.datasources,!g)return null}const _=new RegExp(`^${u}\\b`,"");if(g=g.map(v=>{const S=(b.isObjectDatasource(v)||!b.isSimpleDatasource(v))&&v.from&&_.test(v.from),E=v.events?v.events.map(A=>{var O,I,R,j;switch(A==null?void 0:A.type){case"method":{const W=A;return W.params?{...W,params:W.params.map(X=>{var re;return{...X,datasource:(re=X.datasource)==null?void 0:re.replace(new RegExp(`^${u}`,""),f)}}),returns:(O=W.returns)!=null&&O.datasource?{...W.returns,datasource:(I=W.returns.datasource)==null?void 0:I.replace(new RegExp(`^${u}`,""),f)}:W.returns}:W}case"simple-action":{const W=A;return W.datasource?{...W,datasource:{...W.datasource,name:(R=W.datasource.name)==null?void 0:R.replace(new RegExp(`^${u}`,""),f),from:(j=W.datasource.from)==null?void 0:j.replace(new RegExp(`^${u}`,""),f)}}:W}default:return A}}):v.events;return v.id===u?{...v,id:f,events:E}:S&&v.from?{...v,from:v.from.replace(new RegExp(`^${u}`,""),f),events:E}:{...v,events:E}}),i){const v=a?`${l}:${u}`:`${u}`,S=a?`${l}:${f}`:`${f}`;b.datasourcesSubject.next({path:d??"",action:b.DatasourcesActions.RENAME,old_reference:v,new_reference:S,is_shared:a})}return{path:d,namespace:l,datasources:g}}),Rf=K("tabs/edit-datasource",(e,{getState:t})=>{var i,u;const r=t();let a=[];if(e.namespace)a=r.sharedDatasources.sources[e.namespace];else{const l=r.root.tabs.find(b.by("path",e.path));l&&(a=((u=(i=l.content)==null?void 0:i.metadata)==null?void 0:u.datasources)||[])}return a.map(l=>l.id===e.datasourceId?Object.assign({},l,{[e.propertyKey]:e.value}):l)}),L_=K("tabs/fetchChanges",async(e,{getState:t})=>{const a=yn(t()).filter(s=>[b.FileFolderType.METHOD,b.FileFolderType.CLASS].includes(s.type));return b.getFilesInfo(...a.map(s=>{const[i]=s.path.split("/").filter(Boolean);return{name:s.name,type:s.type,root:i,path:"."}}))}),xF=K("files/saveAll",async(e,{getState:t,dispatch:r})=>{const a=pf(t());for(const s of a)r(kn({tab:s}))}),Of=K("files/tryCloseTab",async(e,{getState:t,dispatch:r})=>{const{tabs:a}=t().root,s=a.findIndex(u=>u.path===e);if(s===-1)return!1;const i=a[s];if(i!=null&&i.flags.touched){const{confirmed:u}=await r(Qt({title:To(i),message:"Your unsaved changes will be lost. Proceed anyway?",type:b.ModalType.CONFIRM,color:b.ModalColor.WARNING,icon:"FdWarningDanger"})).unwrap();if(!u)return!1}return r(Ho(s)),i.path===b.ROLES_TAB_PATH&&i.flags.touched&&(async()=>{const l=await b.getNodeInfo({verb:b.DesignerRequestVerb.GET_INFO,path:b.ROLES_TAB_PATH,content:!0,as:"json"});r(Tf({content:l.content,date:l.date}))})(),!0}),RF=K("files/tryCloseOtherTabs",async(e,{getState:t,dispatch:r})=>{const{tabs:a}=t().root;if(a.some(i=>i.path!==e&&i.flags.touched===!0)){const{confirmed:i}=await r(Qt({title:"Closing other tabs",message:"Your changes will be lost if you do not save them. Close anyway?",type:b.ModalType.CONFIRM,color:b.ModalColor.WARNING,icon:"FdWarningDanger"})).unwrap();if(!i)return}r(ib(e))}),OF=K("files/tryCloseAllTabs",async(e,{getState:t,dispatch:r})=>{const{tabs:a}=t().root;if(a.some(i=>i.flags.touched===!0)){const{confirmed:i}=await r(Qt({title:"Closing all tabs",message:"Your changes will be lost if you do not save them. Close anyway?",type:b.ModalType.CONFIRM,color:b.ModalColor.WARNING,icon:"FdWarningDanger"})).unwrap();if(!i)return}r(sb())}),PF=K("files/tryCloseRightTabs",async(e,{getState:t,dispatch:r})=>{const{tabs:a}=t().root;let s=!1;for(let i=a.length-1;i>e;i-=1)if(a[i].flags.touched){s=!0;break}if(s){const{confirmed:i}=await r(Qt({title:"Closing right tabs",message:"Your changes will be lost if you do not save them. Close anyway?",type:b.ModalType.CONFIRM,color:b.ModalColor.WARNING,icon:"FdWarningDanger"})).unwrap();if(!i)return}r(ob(e))}),DF=K("files/tryCloseLeftTabs",async(e,{getState:t,dispatch:r})=>{const{tabs:a}=t().root;let s=!1;for(let i=0;i<e;i+=1)if(a[i].flags.touched){s=!0;break}if(s){const{confirmed:i}=await r(Qt({title:"Closing left tabs",message:"Your changes will be lost if you do not save them. Close anyway?",type:b.ModalType.CONFIRM,color:b.ModalColor.WARNING,icon:"FdWarningDanger"})).unwrap();if(!i)return}r(ub(e))}),no=K("files/reloadTab",async(e,{dispatch:t})=>{if(e.flags.touched){const{confirmed:s}=await t(Qt({title:To(e),message:"Changes made to the file will be lost. Continue?",type:b.ModalType.CONFIRM,color:b.ModalColor.WARNING,icon:"FdWarningDanger"})).unwrap();if(!s)throw new Error("Cancel modal!")}const r=lf(e.path),a=await b.getNodeInfo({verb:b.DesignerRequestVerb.GET_INFO,path:e.path,content:!0,as:r});if(e.path===b.ROLES_TAB_PATH){const{roles:s,privileges:i}=Lo(a.content);t(wf({roles:s,privileges:i}))}else if(e.path===b.SETTINGS_TAB_PATH){const{content:s}=a;t(ko({path:"project",value:s}))}else{const{content:s}=a;e.type===b.FileFolderType.WEBFORM?b.webformSubject.next({path:e.path,action:b.WebformActions.RELOAD,payload:s.components}):e.type===b.FileFolderType.MODEL&&Dm.next({action:"reload",payload:s})}return a}),kn=K("files/saveTab",async({tab:e},{dispatch:t,getState:r})=>{let{path:a,content:s}=e;if(e.type===b.FileFolderType.DEBUGGER)return{...e,errors:[]};a.split("/").pop();const u=await b.getFilesInfo({path:a});if(u.files[0]){const g=new Date(e.date),_=new Date(u.files[0].date);if(g.getTime()<_.getTime()){const{confirmed:m}=await t(Qt({title:To(e),message:"New content has been found on the server. Are you sure you want to continue?",type:b.ModalType.CONFIRM,icon:"FdSave"})).unwrap();if(!m)return t(ab({path:a,flags:{old:!0}})),null}}const l=IF(e,r()),f=await b.saveContent({verb:b.DesignerRequestVerb.SAVE_CONTENT,content:l,path:a});(e.type===b.FileFolderType.CLASS||e.type===b.FileFolderType.MODEL)&&setTimeout(()=>{t(Qr())},Ja);const d=(f.modelErrors||[]).map(g=>g.message),h=(f.permissionsErrors||[]).map(g=>g.message);return b.FileFolderType.MODEL===e.type&&(s=l),{...e,content:s,date:f.date,initialContent:s,errors:d.length>0||h.length>0?[{title:"Model errors",messages:d},{title:"Permissions errors",messages:h}]:[]}}),IF=(e,t)=>{var r,a;switch(!0){case e.path==="settings.json":case e.path===b.SETTINGS_TAB_PATH:return t.settings.project;case e.type===b.FileFolderType.ROLES:return((a=(r=e.extra)==null?void 0:r.editor)==null?void 0:a.key)==="editors:roles"?$o(t.roles):e.content;case e.type===b.FileFolderType.MODEL:{const s=e.content||{toJSON:!0,dataClasses:[],extraProperties:{}};return CF(s)}default:return e.content}},Sy=async e=>{if(e.type===b.FileFolderType.DATA_EXPLORER)return{name:"Data Explorer",path:e.path,flags:{},view:{panel:{isOpen:!1,type:"",current:""}},type:e.type,date:new Date().toISOString()};const t=lf(e.path),r=await b.getNodeInfo({verb:b.DesignerRequestVerb.GET_INFO,path:e.path,content:!0,as:t}),a={};r.type===b.FileFolderType.METHOD&&(a.attributes=b.parseAttributes(r.content));const{date:s,name:i,type:u,content:l}=r;return{date:s,flags:{enabled:e.type===b.FileFolderType.WEBFORM},extra:a,view:{panel:{isOpen:!1,type:"",current:""}},name:i,path:e.path,type:u,initialContent:l,content:u===b.FileFolderType.MODEL?Xy(l):l,history:{stack:[],active:-1,locked:!1}}},$_=le.debounce((e,t)=>{t(hb(e))},300),FF=K("tabs/setTabContent",(e,{getState:t,dispatch:r})=>{var u;const{root:{tabs:a}}=t(),s=a.find(l=>l.path===e.path),i=!!((u=s==null?void 0:s.history)!=null&&u.locked);r(Ff(e)),i?r(Mf(e.path)):$_(e.path,r)}),MF=K("tabs/setCurrentWebformState",(e,{getState:t,dispatch:r})=>{var u;const{root:{tabs:a}}=t(),s=a.find(l=>l.path===e.path),i=!!((u=s==null?void 0:s.history)!=null&&u.locked);r(fb(e)),i?r(Mf(e.path)):$_(e.path,r)}),k_=K("files/tryInjectMethod",async({type:e,dataclass:t,expand:r},{getState:a,dispatch:s})=>{const{root:{tabs:i},settings:{server:{qodly:u}}}=a(),l=b.getFileExtentionFromType("class",u);let f="",d="",h=null;if(!t)f="DataStore",d=`Classes/DataStore.${l}`;else switch(e){case"dataclass":f=t,d=`Classes/${t}.${l}`;break;case"collection":f=`${t}Selection`,d=`Classes/${t}Selection.${l}`;break;case"entity":f=`${t}Entity`,d=`Classes/${t}Entity.${l}`;break;default:return h}const g=i.find(b.by("path",d));if(g)return s(Tt(g)),g;try{h=await Sy({name:f,date:new Date().toISOString(),path:d,type:b.FileFolderType.CLASS})}catch{t?await s(Bl({type:"dataclass",className:t,collectionName:`${t}Selection`,toCreate:e,expand:r})):await s(Bl({type:"model"}))}return h=await Sy({date:new Date().toISOString(),path:d,type:b.FileFolderType.CLASS}),h.path=d,s(Tt(h)),h}),NF=K("roles/open",async(e,{dispatch:t,getState:r})=>{const{tabs:a}=r().root,s=a.find(i=>i.path===b.ROLES_TAB_PATH);if(s)return t(Tt(s)),s;t(mo())});function Ey(e,t){const{line:r,lineInEditor:a,offset:s,type:i="saved"}=t;e.breakpoints[i].locations.push({line:r,lineInEditor:a}),le.isNumber(s)&&(e.breakpoints[i].offset=s)}function bl(e,t,r,a,s=!1){if(s){const i=new Map;let u=0;e.breakpoints[r].locations.forEach((l,f)=>{l.disabled?i.set(f,-1):i.set(f,u++)}),e.breakpoints[r].locations=e.breakpoints[r].locations.map((l,f)=>{const d=i.get(f);return!l.disabled&&le.isNumber(d)&&t[d]?{...l,...t[d]}:l})}else e.breakpoints[r].locations=t;le.isNumber(a)&&(e.breakpoints[r].offset=a)}function Ty({filePath:e,fileType:t,methodName:r,className:a,ext:s,source:i}){return{filePath:e,fileType:t,methodName:r,className:a,ext:s,source:i,breakpoints:{draft:{locations:[],offset:0},saved:{locations:[],offset:0}}}}function Sl(e,t,r){let a=!1;const s=e.map(i=>i[r]!==t[r]?i:(a=!0,{...i,...t}));return a?s:[...s,t]}function Qs(e){return e.map(({label:t})=>({label:t}))}const q_=Pt({name:"debugger",initialState:()=>{var t,r;const{debugger:e={meta:{state:Ur.DETACHED},list:[],sessions:[],expressions:[]}}=vn();return{meta:{...e.meta,state:((t=e.meta)==null?void 0:t.state)===Ur.ATTACHED?(r=e.meta)==null?void 0:r.state:Ur.DETACHED},list:e.list||[],sessions:e.sessions||[],expressions:e.expressions||[]}},reducers:{addBreakpointDecoration(e,t){const{filePath:r,fileType:a,methodName:s,className:i,ext:u,source:l,breakpoint:f}=t.payload,d=ur(e.list,r,s,i);if(d)Ey(d,f);else{if(a===b.FileFolderType.CLASS&&f.offset===void 0)throw new Error(`Cannot add a breakpoint on a function without offset. Try editing the ${i} class.`);const h=Ty({filePath:r,fileType:a,methodName:s,className:i,ext:u,source:l});Ey(h,f),e.list.push(h)}},removeBreakpointDecoration(e,t){const{filePath:r,methodName:a,line:s,offset:i=0,type:u="saved"}=t.payload;if(r.startsWith("Classes/")){const l=e.list.filter(f=>f.filePath===r);if(l.length>0){const f=s+i;l.forEach(d=>{const h=d.breakpoints[u].offset||0;d.breakpoints[u].locations=d.breakpoints[u].locations.filter(g=>g.line+h!==f),u==="saved"&&(d.breakpoints.draft.locations=d.breakpoints.draft.locations.filter(g=>g.line+h!==f))})}}else{const l=ur(e.list,r,a);l&&(l.breakpoints[u].locations=l.breakpoints[u].locations.filter(f=>f.line!==s),u==="saved"&&(l.breakpoints.draft.locations=l.breakpoints.draft.locations.filter(f=>f.line!==s)))}},setBreakpointsDecoration(e,t){const{filePath:r,fileType:a,methodName:s,className:i,ext:u,source:l,breakpoints:f,offset:d,type:h="saved",merge:g=!1,clearDraft:_}=t.payload,m=ur(e.list,r,s,i);if(m)bl(m,f,h,d,g),_&&h!=="draft"&&(m.breakpoints.draft.locations=[]);else{const C=Ty({filePath:r,fileType:a,methodName:s,className:i,ext:u,source:l});bl(C,f,h,d),e.list.push(C)}},updateBreakpointsDecoration(e,t){const{filePath:r,methodName:a,className:s,breakpoints:i,type:u="saved",merge:l=!1}=t.payload,f=ur(e.list,r,a,s);f&&bl(f,i,u,void 0,l)},clearBreakpoints(e,t){const{filePath:r,type:a="saved"}=t.payload;e.list=e.list.map(s=>({...s,breakpoints:s.filePath===r?{draft:!a||a==="draft"||a==="any"?{locations:[],offset:0}:s.breakpoints.draft,saved:!a||a==="saved"||a==="any"?{locations:[],offset:0}:s.breakpoints.saved}:s.breakpoints}))},clearBreakpointsExcept(e,t){const{exceptedFilePath:r,type:a="saved"}=t.payload;e.list=e.list.map(s=>({...s,breakpoints:s.filePath!==r?{draft:!a||a==="draft"||a==="any"?{locations:[],offset:0}:s.breakpoints.draft,saved:!a||a==="saved"||a==="any"?{locations:[],offset:0}:s.breakpoints.saved}:s.breakpoints}))},clearAllBreakpoints(e){e.list=e.list.map(t=>({...t,breakpoints:{draft:{locations:[],offset:0},saved:{locations:[],offset:0}}}))},toggleBreakpoint(e,t){const{filePath:r,methodName:a,line:s,offset:i=0,disabled:u}=t.payload;if(r.startsWith("Classes/")){const l=e.list.filter(f=>f.filePath===r);if(l.length>0){const f=s+i;l.forEach(d=>{const h=d.breakpoints.saved.offset||0;d.breakpoints.saved.locations=d.breakpoints.saved.locations.map(g=>g.line+h===f?{...g,disabled:u}:g)})}}else{const l=ur(e.list,r,a);l&&(l.breakpoints.saved.locations=l.breakpoints.saved.locations.map(f=>f.line===s?{...f,disabled:u}:f))}},toggleBreakpointsInFile(e,t){const{filePath:r,methodName:a,disabled:s}=t.payload;if(r.startsWith("Classes/")){const i=e.list.filter(u=>u.filePath===r);i.length>0&&i.forEach(u=>{u.breakpoints.saved.locations=u.breakpoints.saved.locations.map(l=>({...l,disabled:s}))})}else{const i=ur(e.list,r,a);i&&(i.breakpoints.saved.locations=i.breakpoints.saved.locations.map(u=>({...u,disabled:s})))}},disableAllBreakpoints(e){e.list=e.list.map(t=>({...t,breakpoints:{...t.breakpoints,saved:{...t.breakpoints.saved,locations:t.breakpoints.saved.locations.map(r=>({...r,disabled:!0}))}}}))},enableAllBreakpoints(e){e.list=e.list.map(t=>({...t,breakpoints:{...t.breakpoints,saved:{...t.breakpoints.saved,locations:t.breakpoints.saved.locations.map(r=>({...r,disabled:!1}))}}}))},setActiveLine(e,t){const{threadId:r,line:a,highlight:s}=t.payload,i=Xe(e.sessions,r);i&&(i.activeLine=a,s&&(i.highlightedLines={start:a,end:a}))},addExpression(e,t){const{threadId:r,label:a,save:s}=t.payload,i=Xe(e.sessions,r);i&&i.stopped&&(i.expressions=[...i.expressions||[],{label:a}],s&&(e.expressions=Qs(i.expressions)))},removeExpression(e,t){const{threadId:r,index:a,save:s}=t.payload,i=Xe(e.sessions,r);i&&(i.expressions=i.expressions.filter((u,l)=>l!==a),s&&(e.expressions=Qs(i.expressions)))},removeAllExpressions(e,t){const{threadId:r,save:a}=t.payload,s=Xe(e.sessions,r);s&&(s.expressions=[],a&&(e.expressions=[]))},renameExpression(e,t){const{threadId:r,index:a,replacement:s,save:i}=t.payload,u=Xe(e.sessions,r);u&&u.expressions[a]&&(u.expressions[a].label=s,i&&(e.expressions=Qs(u.expressions)))},setExpression(e,t){const{threadId:r,expression:a}=t.payload,s=Xe(e.sessions,r);if(s){const i=a.index>=0?a.index:s.expressions.length>0?s.expressions.length-1:0,u=s.expressions[i];u?(u.result=a.result,u.nakedResult=a.nakedResult,u.variablesReference=a.variablesReference||0,u.presentationHint=a.presentationHint):s.expressions.push(a)}},updateExpressionAt(e,t){const{threadId:r,index:a,value:s}=t.payload,i=Xe(e.sessions,r);if(i){const u=i.expressions[a];u&&(u.result=`"${s}"`,u.nakedResult=s)}},saveExpressions(e,t){const{expressions:r}=t.payload;e.expressions=Qs(r)},addSession(e,t){const{threadId:r,channelId:a,stackFrames:s,exceptions:i=[]}=t.payload,u=Xe(e.sessions,r),l=s[0],{expressions:f=[]}=e;if(u)u.expressions=f;else{const d=of(r);e.sessions.push({tabPath:d,threadId:r,channelId:a,stackFrames:s,currentStackFrame:l,exceptions:i,expressions:f,variables:{callchain:[],expressions:[],local:[],currentLine:[]},highlightedLines:null,activeLine:null,stopped:!0})}},updateSession(e,t){const{threadId:r,changes:a}=t.payload;e.sessions=e.sessions.map(s=>s.threadId===r?{...s,...a}:s)},removeSession(e,t){const{threadId:r}=t.payload;e.sessions=e.sessions.filter(a=>a.threadId!==r)},removeSessionByIndex(e,t){const r=t.payload;e.sessions.splice(r,1)},setSessions(e,t){const r=t.payload;e.sessions=r},setCommonVariables(e,t){const{key:r,threadId:a,frameId:s,variablesReference:i,variables:u}=t.payload;e.sessions=e.sessions.map(l=>{var f;return l.threadId===a?{...l,variables:{...l.variables,[r]:Sl((f=l.variables)==null?void 0:f[r],{frameId:s,variablesReference:i,items:u},"frameId")}}:l})},setCallChainVariables(e,t){const{threadId:r,frameId:a,variablesReference:s,variables:i}=t.payload;e.sessions=e.sessions.map(u=>{var l;return u.threadId===r?{...u,variables:{...u.variables,callchain:Sl((l=u.variables)==null?void 0:l.callchain,{frameId:a,variablesReference:s,items:i},"frameId")}}:u})},setExpressionVariables(e,t){const{threadId:r,variablesReference:a,variables:s}=t.payload;e.sessions=e.sessions.map(i=>{var u;return i.threadId===r?{...i,variables:{...i.variables,expressions:Sl((u=i.variables)==null?void 0:u.expressions,{variablesReference:a,items:s},"variablesReference")}}:i})},setSourceContent(e,t){const{threadId:r,content:a}=t.payload,s=Xe(e.sessions,r);s&&(s.currentStackFrame.source={...s.currentStackFrame.source,content:a})},setDebuggerMeta(e,t){if(t.payload.state===Ur.ERROR){const{error:r={code:null,reason:"",type:po.SOCKET_ERROR}}=t.payload;if(e.meta.error={...e.meta.error,...r,time:Date.now()},(r==null?void 0:r.type)===po.SOCKET_CLOSURE&&(r==null?void 0:r.code)===1e3&&!(r!=null&&r.reason)&&e.meta.state===Ur.DETACHED)return}e.meta.state=t.payload.state}},extraReducers:e=>{e.addCase(B_.fulfilled,t=>{t.sessions=[]})}}),{addBreakpointDecoration:LF,removeBreakpointDecoration:$F,setBreakpointsDecoration:kF,updateBreakpointsDecoration:qF,clearBreakpoints:jF,clearBreakpointsExcept:BF,clearAllBreakpoints:WF,toggleBreakpoint:UF,toggleBreakpointsInFile:HF,disableAllBreakpoints:GF,enableAllBreakpoints:VF,setActiveLine:zF,addExpression:YF,renameExpression:KF,removeExpression:JF,removeAllExpressions:QF,setExpression:XF,updateExpressionAt:ZF,saveExpressions:eM,addSession:tM,updateSession:rM,removeSession:nM,removeSessionByIndex:aM,setSessions:j_,setCallChainVariables:sM,setExpressionVariables:oM,setCommonVariables:iM,setSourceContent:uM,setDebuggerMeta:cM}=q_.actions,B_=K("files/wipeDebuggerSessions",async(e,{getState:t,dispatch:r})=>{const{sessions:a}=t().debugger;for(const{threadId:s}of a){const i=of(s);r(Of(i))}}),W_=K("files/removeDebuggerSessionsNotIn",async(e,{getState:t,dispatch:r})=>{const{threadIds:a}=e,{sessions:s}=t().debugger,i=[],u=s.filter(l=>{const f=a.includes(l.threadId);return f||i.push(l.threadId),f});return r(j_(u)),{staleThreadIds:i}}),_o=K("models/fetch",async()=>(await b.http(b.API_PREFIX,{method:"POST",body:JSON.stringify({verb:b.DesignerRequestVerb.GET_INFO,path:b.MODEL_TAB_PATH,as:"json",content:!0}),headers:new Headers({"Content-Type":"application/json"})})).content),bo=K("models/save",async(e,{getState:t,dispatch:r,rejectWithValue:a})=>{const{tabs:s}=t().root,i=s.find(u=>u.path===b.MODEL_TAB_PATH);if(!i)return a("Error while saving the model");try{const u=await b.http(b.API_PREFIX,{method:"POST",body:JSON.stringify({verb:"save",path:i.path,content:i.content}),headers:new Headers({"Content-Type":"application/json"})});return setTimeout(()=>{r(Qr())},Ja),{...u,path:i.path,content:e.content||{toJSON:!0,dataClasses:[],extraProperties:{}}}}catch{return a("Error while saving the model")}}),lM=K("models/open",async(e,{dispatch:t,getState:r})=>{const{tabs:a}=r().root,s=a.find(i=>i.path==="models/main");if(s)return t(Tt(s)),s;t(_o())}),fM=K("model/rename-dataclass",async({dataclassId:e,selectionId:t,name:r},{getState:a,dispatch:s})=>{const i=await s(P_()).then(g=>g.payload);if(!a().explorer.find(g=>g.path===b.FolderRootPath.CLASSES))throw new Error("Classes folder was not found!");const f={class:{found:!1,newNameTaken:!1,file:null,filename_update:r},entity:{found:!1,newNameTaken:!1,file:null,filename_update:`${r}Entity`},selection:{found:!1,newNameTaken:!1,file:null,filename_update:`${r}Selection`}};i==null||i.forEach(g=>{var _;g.path===`Classes/${e}___[<QODLY_ID>]`?(_=g.children)==null||_.forEach(m=>{var v,S,E,A;const C={...m,name:(v=m.info)==null?void 0:v.filename};((S=m.info)==null?void 0:S.filename)===e?(f.class.found=!0,f.class.file=C):((E=m.info)==null?void 0:E.filename)===`${e}Entity`?(f.entity.found=!0,f.entity.file=C):((A=m.info)==null?void 0:A.filename)===t&&(f.selection.found=!0,f.selection.file=C)}):(g.name===f.class.filename_update&&(f.class.newNameTaken=!0),g.name===f.entity.filename_update&&(f.entity.newNameTaken=!0),g.name===f.selection.filename_update&&(f.selection.newNameTaken=!0))});const d=Object.entries(f).reduce((g,_)=>{const[m,C]=_;return C.found?C.newNameTaken?[...g,{type:"error",message:`Cannot rename ${m} file to ${C.filename_update} because it already exists. The existing file will be used instead!`}]:g:[...g,{type:"warning",message:`${e} ${m} file was not found`}]},[]);d.length>0&&s(Qt({message:"The following errors were encountered during dataclass rename:",views:{tips:d}}));const h=Object.values(f).filter(g=>g.found&&g.file&&!g.newNameTaken);await Promise.all(h.map(async g=>await s($n({file:g.file,newname:g.filename_update}))))}),Ha={DATACLASS_DELETE:"dataclass.delete",DATACLASS_DRAGGABLE:"dataclass.draggable"},dM={model:{dataClasses:{},collections:{},extraProperties:{}},draft:{dataClasses:{},collections:{},extraProperties:{}},flags:{[Ha.DATACLASS_DELETE]:!0,[Ha.DATACLASS_DRAGGABLE]:!0}},U_=Pt({name:"Models",initialState:dM,reducers:{setModelFlag(e,t){e.flags={...e.flags,...t.payload}}},extraReducers(e){e.addCase(_o.fulfilled,(t,r)=>{var u;const a={},s={},i=r.payload.extraProperties||{};(u=r.payload.dataClasses)==null||u.forEach(l=>{a[l.name]=l,s[l.collectionName]=l}),t.draft.dataClasses=a,t.draft.collections=s,t.draft.extraProperties=i,t.model.dataClasses=a,t.model.collections=s,t.model.extraProperties=i}),e.addCase(_o.rejected,t=>{t.errored=!0}),e.addCase(bo.pending,()=>{}).addCase(bo.fulfilled,(t,r)=>{const a={},s={},i=r.payload.content.extraProperties||{};r.payload.content.dataClasses.forEach(u=>{a[u.name]=u,s[u.collectionName]=u}),t.draft.dataClasses=a,t.draft.collections=s,t.draft.extraProperties=i,t.model.dataClasses=a,t.model.collections=s,t.model.extraProperties=i})}}),{setModelFlag:pM}=U_.actions;var H_=(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))(H_||{}),jo=(e=>(e.STORAGE="storage",e.RELATEDENTITY="relatedEntity",e.RELATEDENTITIES="relatedEntities",e.CALCULATED="calculated",e.COMPOSITION="composition",e.ALIAS="alias",e))(jo||{});const hM=e=>["string","uuid","number","long"].includes(e.type),gM=[{label:"Storage",value:"storage"},{label:"Calculated",value:"calculated"}],vM=[{title:"UUID",kind:"storage",value:"uuid",calculatedType:"uuid",calculatedKind:"storage"},{title:"Long",kind:"storage",value:"long",calculatedType:"long",calculatedKind:"storage"}],yM=[{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"}],mM=[{label:"Expose as REST",value:"public"},{label:"Do not expose as REST",value:"publicOnServer"}],_M=[{label:"Expose as REST",value:"public"},{label:"Do not expose as REST",value:"publicOnServer"}],bM=[{label:"None",value:"none"},{label:"B-tree",value:"btree"},{label:"Cluster",value:"cluster"},{label:"Automatic",value:"auto"}],SM=(e,t)=>({toJSON:!0,extraProperties:t,dataClasses:e.map(r=>{var a;return{...r.data,extraProperties:{position:{x:r.position.x,y:r.position.y},panelColor:(a=r.data.extraProperties)==null?void 0:a.panelColor}}})});function EM(e,t,r){const a=e;let s=0;for(;r[`${a}${s||""}`];)s++;return`${a}${s||""}`}const G_=e=>e.kind===jo.RELATEDENTITY,V_=e=>e.kind===jo.RELATEDENTITIES,TM=e=>V_(e)||G_(e),wM=()=>fr(e=>e.model),CM=()=>fr(e=>e.model.draft.dataClasses),AM=()=>fr(e=>e.model.draft.collections),xM=e=>fr(t=>t.model.draft.dataClasses[e]),RM=(e,t)=>fr(r=>r.model.draft.dataClasses[e].attributes.find(b.by("name",t))),OM=()=>fr(e=>e.settings.session["model.viewport"]),PM=()=>{const e=fr(s=>s.model.flags),t=s=>s in e?e[s]:void 0,r=t(Ha.DATACLASS_DELETE),a=t(Ha.DATACLASS_DRAGGABLE);return{deleteDataclass:r,draggableDataclass:a,flags:e}},DM=U_.reducer;function El(e,t){const r=e.tabs.find(({path:a})=>a===b.SETTINGS_TAB_PATH);r&&(r.flags.touched=t)}const z_={SIDEBAR_SECTION_RESIZABLE:"sidebar.section.resizable"},Y_={[z_.SIDEBAR_SECTION_RESIZABLE]:!0},K_=Pt({name:"webforms",initialState:()=>{const{webforms:e}=vn();return{i18n:{current:""},...e,templates:{data:[],selectedGroup:""},datasources:{...rf.webforms.datasources,...e==null?void 0:e.datasources},flags:Y_}},reducers:{toggleInspector:(e,t)=>{const{type:r}=t.payload;e.inspector[r].active=!e.inspector[r].active,e.inspector[r].active||(e.inspector[r].data=void 0)},inspect:(e,t)=>{const{type:r,data:a}=t.payload;e.inspector[r].active&&(e.inspector[r].data=a)},addComponent:(e,t)=>{e.components.push(t.payload)},editComponent:(e,t)=>{const{id:r,changes:a}=t.payload;e.components=e.components.map(s=>s.id===r?{...s,...a}:s)},removeComponent:(e,t)=>{const{payload:r}=t,a=e.components.findIndex(s=>s.id===r);a!==-1&&e.components.splice(a,1)},setSelectedGroup:(e,t)=>{e.templates.selectedGroup=t.payload.selectedGroup},setTemplatesData:(e,t)=>{e.templates.data=t.payload},setTemplateData:(e,t)=>{const{group:r,components:a}=t.payload,s=e.templates.data.find(i=>i.group===r);s&&(s.components=a)},setDatasourcesTheme:(e,t)=>{e.datasources.theme=t.payload},setWebformsFlag(e,t){e.flags={...e.flags,...t.payload}},setI18nCurrent(e,t){e.i18n={...e.i18n,current:t.payload.current}}},extraReducers(e){e.addCase(tb.fulfilled,(t,r)=>{t.components=r.payload})}}),{toggleInspector:IM,inspect:FM,addComponent:J_,editComponent:Q_,removeComponent:X_,setSelectedGroup:MM,setTemplatesData:Z_,setTemplateData:eb,setDatasourcesTheme:NM,setWebformsFlag:LM,setI18nCurrent:$M}=K_.actions,kM=K_.reducer,Pf=le.curry((e,t)=>{var s,i,u;const r={...t.sharedDatasources.sources},a=(u=(i=(s=t.root.tabs.find(b.by("path",e)))==null?void 0:s.content)==null?void 0:i.metadata)==null?void 0:u.datasources;return a&&(r[e]=a),le.cloneDeep(r)}),qM=K("webforms/fetchTemplates",async(e,{dispatch:t,getState:r})=>{const{data:a}=r().webforms.templates,s=r().settings.session["studio.tipsBaseUrl"]||"";if(!le.isEmpty(a))return a;try{const u=await(await fetch(`${s}/build/index.json?t=${Date.now()}`)).json();return t(Z_(u)),u}catch{return[]}}),jM=K("webforms/fetchTemplate",async({name:e},{dispatch:t,getState:r})=>{const{data:a}=r().webforms.templates,s=a.find(i=>i.group===e);if(s&&!le.isEmpty(s.components))return s.components;try{const u=await(await fetch(`${s==null?void 0:s.link}?t=${Date.now()}`)).json();return t(eb({group:e,components:u})),u}catch{return[]}}),tb=K("webforms/fetchCraftedComponents",async(e,{rejectWithValue:t})=>{try{return(await b.getNodeInfo({path:"WebForms/crafted_components.json",verb:b.DesignerRequestVerb.GET_INFO,content:!0,as:"json"})).content}catch{return t("Error while loading the crafted components")}}),BM=K("webforms/addCraftedComponent",async(e,{dispatch:t,rejectWithValue:r,getState:a})=>{try{t(J_(e));const{webforms:{components:s}}=a();b.setCraftedComponents(s)}catch{return r("Error while adding the crafted component")}}),WM=K("webforms/editCraftedComponent",async(e,{dispatch:t,rejectWithValue:r,getState:a})=>{try{t(Q_(e));const{webforms:{components:s}}=a();b.setCraftedComponents(s)}catch{return r("Error while editing the crafted component")}}),UM=K("webforms/removeCraftedComponent",async(e,{dispatch:t,rejectWithValue:r,getState:a})=>{try{t(X_(e));const{webforms:{components:s}}=a();b.setCraftedComponents(s)}catch{return r("Error while removing the crafted component")}}),Df=K("datasources/add-datasource",async(e,{getState:t,rejectWithValue:r})=>{var a,s;try{const i=t(),u=e.datasource,l=!!u.namespace,f=[];if(l){const d={...i.sharedDatasources.sources,[u.namespace]:[...i.sharedDatasources.sources[u.namespace],u]};f.push(...d[u.namespace]),await b.setSharedSources(d)}else(((s=(a=i.root.tabs.find(b.by("path",e.path)).content)==null?void 0:a.metadata)==null?void 0:s.datasources)||[]).push(u);return{list:f,path:e.path,namespace:e.datasource.namespace}}catch{console.error("Error while adding the datasource",e.datasource.id),r("Error while adding the datasource")}}),If=K("datasources/edit-datasource",async(e,{getState:t,rejectWithValue:r})=>{try{const{namespace:a,path:s}=e,i=t(),u=!!e.namespace,l=Pf(s,i);let f=le.defaultTo(l[a||s],[]);const d=f.find(m=>m.id===e.id&&(m.namespace||"")===(e.namespace||"")),h=e.changes,g=h??{[e.property]:e.value};return f=f.map(m=>m.id===e.id?{...m,...g}:m),u&&await b.setSharedSources({...i.sharedDatasources.sources,[e.namespace]:f}),(le.isObject(h)?Object.keys(h):[]).includes("dataType")&&e.updateRefs&&b.datasourcesSubject.next({datasource:{id:e.id,namespace:e.namespace},path:s??"",action:b.DatasourcesActions.TYPE_CHANGE,old_type:(d==null?void 0:d.dataType)||"",new_type:g.dataType,is_shared:u}),{list:f,path:e.path,namespace:e.namespace}}catch{r(`Error while editing datasource ${e.id}`)}}),HM=e=>e.type===qn.fulfilled.type,qn=K("datasources/rename-datasource",async(e,{getState:t,rejectWithValue:r})=>{try{const a=t(),s=!!e.namespace,i=e.namespace||e.path,u=Pf(e.path,a),l=le.defaultTo(u[i],[]),f=new RegExp(`^${e.id}\\b`,"");if(l.forEach(d=>{var g;const h=(b.isObjectDatasource(d)||!b.isSimpleDatasource(d))&&d.from&&f.test(d.from);e.updateRefs&&((g=d.events)==null||g.forEach(_=>{var m,C,v,S,E;switch(_.type){case"method":{const A=_;A.params.forEach(O=>{O.datasource&&Object.assign(O,{datasource:O.datasource.replace(new RegExp(`^${e.id}`,""),e.new_name)})}),A.returns&&Object.assign(A.returns,{datasource:(C=(m=A.returns)==null?void 0:m.datasource)==null?void 0:C.replace(new RegExp(`^${e.id}`,""),e.new_name)});return}case"simple-action":{const A=_;A.datasource&&Object.assign(A.datasource,{name:(v=A.datasource.name)==null?void 0:v.replace(new RegExp(`^${e.id}`,""),e.new_name),from:(S=A.datasource.from)==null?void 0:S.replace(new RegExp(`^${e.id}`,""),e.new_name),target:(E=A.datasource.target)==null?void 0:E.replace(new RegExp(`^${e.id}`,""),e.new_name)});return}default:return}})),d.id===e.id?d.id=e.new_name:h&&d.from&&(d.from=d.from.replace(new RegExp(`^${e.id}`,""),e.new_name))}),e.updateRefs){const d=b.getDatasourceId({id:e.id,namespace:e.namespace}),h=b.getDatasourceId({id:e.new_name,namespace:e.namespace});b.datasourcesSubject.next({path:e.path??"",action:b.DatasourcesActions.RENAME,old_reference:d,new_reference:h,is_shared:s})}return s&&await b.setSharedSources({...a.sharedDatasources.sources,[e.namespace]:l}),{list:l,path:e.path,namespace:e.namespace}}catch{return r(`Error while renaming datasource ${e.namespace}:${e.id}`)}}),$a=K("datasources/delete-datasource",async(e,{getState:t,rejectWithValue:r})=>{try{const a=t(),s=!!e.namespace,i=e.namespace||e.path,l=Pf(e.path,a)[i].filter(b.outById(e.id));return s&&await b.setSharedSources({...a.sharedDatasources.sources,[e.namespace]:l}),{list:l,path:e.path,namespace:e.namespace}}catch{return r(`Error while removing datasource ${e.id}`)}}),ao=K("saved_conditions/fetchSavedConditions",async(e,{rejectWithValue:t})=>{try{const{conditions:r=[]}=await b.getSavedConditions({createIfNotExists:!0});return r}catch{return t("Error while loading the shared conditions")}}),Bo=(e,t,r)=>{switch(e.type){case"datasource":return{...e,path:e.path===t?r:e.path,value:e.valueType==="datasource"&&e.value===t?r:e.value,compareValue:e.compareValueType==="datasource"&&e.compareValue===t?r:e.compareValue};case"privilege":case"currentState":case"parentState":if(e.valueType==="datasource")return{...e,value:e.value===t?r:e.value};break;case"combination":return{...e,conditions:(e.conditions||[]).map(a=>Bo(a,t,r))}}return e},GM=b.queue();async function wa(e){const t={verb:b.DesignerRequestVerb.SET_FILE_CONTENT,asText:!1,name:"saved_conditions.json",path:"",root:"shared",content:{conditions:e}};await GM(()=>b.http(b.API_PREFIX,{method:"POST",body:JSON.stringify(t),headers:new Headers({"Content-Type":"application/json"})}))}const Wo=(e,t)=>{if(e.id===t)return null;if(e.type==="reference"&&e.ref===t)return null;if(e.type==="combination"&&e.conditions){const r=e.conditions.map(a=>Wo(a,t)).filter(Boolean);return r.length===1?{...r[0],id:e.id}:{...e,conditions:r}}return e},Uo=e=>{if(e.id){if(e.type==="combination"&&e.conditions)return{...e,conditions:e.conditions.map(Uo)}}else return{...e,id:Wa.generate()};return e},rb=Pt({name:"shared-conditions",initialState:{state:"unknown",conditions:[]},reducers:{updateSavedConditions:(e,t)=>(e.conditions=t.payload.conditions,wa(t.payload.conditions),e),setSavedCondition:(e,t)=>{const{payload:r}=t;return e.conditions=e.conditions.map(a=>a.id===r.id?{...Uo(r.condition),id:a.id}:a),wa(e.conditions),e},updateSavedConditionDs:(e,t)=>{const{old_reference:r,new_reference:a}=t.payload;e.conditions=e.conditions.map(s=>Bo(s,r,a)),wa(e.conditions)},addSavedCondition:(e,t)=>(e.conditions=[...e.conditions,t.payload],wa(e.conditions),e),removeSavedCondition:(e,t)=>{const{id:r}=t.payload;return e.conditions=e.conditions.map(a=>Wo(a,r)).filter(Boolean),wa(e.conditions),e},initSavedConditions:(e,t)=>(e.conditions=t.payload.conditions,e)},extraReducers(e){e.addCase(ao.pending,t=>({...t,state:"loading"})).addCase(ao.fulfilled,(t,{payload:r})=>({state:"loaded",conditions:r})).addCase(ao.rejected,(t,r)=>({...t,state:"error",error:r.payload||"Error while loading the shared conditions"})),e.addMatcher($t(db),(t,r)=>{const{state:a,oldLabel:s}=r.payload;t.conditions=t.conditions.map(i=>Wn(i,s,a.label))}),e.addMatcher($t(pb),(t,r)=>{const{payload:a}=r;t.conditions=t.conditions.map(s=>{var i;return Wn(s,(i=a.state)==null?void 0:i.label)})})}}),{updateSavedConditions:VM,setSavedCondition:zM,updateSavedConditionDs:YM,addSavedCondition:KM,removeSavedCondition:nb,initSavedConditions:JM}=rb.actions,QM=rb.reducer,Ga=Pt({name:"root",initialState:()=>{const e=vn();return{filesLoading:!1,tabs:e.tabs||[],activeTab:e.activeTab,recent:e.recent||[],clipboard:null}},reducers:{setWebformState(e,t){const{path:r,currentState:a}=t.payload;e.tabs.forEach(s=>{s.path===r&&(s.content.metadata.currentState=a.id)})},copyToClipBoard(e,t){e.clipboard=t.payload},setPanelState(e,t){const{path:r,...a}=t.payload;e.tabs.forEach(s=>{s.path===r&&(s.view||(s.view={panel:{isOpen:!1,type:"",current:""}}),Object.assign(s.view.panel,a))})},openSettingsTab(e){const t={date:new Date().toISOString(),flags:{confirmed:!0},view:{panel:{isOpen:!1,type:"",current:""}},extra:{editor:{key:"editors:settings"}},name:"Settings",path:b.SETTINGS_TAB_PATH,type:b.FileFolderType.SETTINGS,initialContent:{},content:{}};let r=e.tabs.find(a=>a.path===t.path);if(r||(e.tabs.push(t),r=e.tabs[e.tabs.length-1]),e.activeTab!==t.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=t.path,r.weight=((a==null?void 0:a.weight)||0)+1}},addDataSource(e,t){var i;const{payload:{path:r,datasourceDef:a}}=t,s=e.tabs.find(u=>u.path===r);s&&(s.content.metadata.datasources=s.content.metadata.datasources||[],(i=s.content.metadata.datasources)!=null&&i.find(l=>l.id===a.id)||(s.content.metadata.datasources=[...s.content.metadata.datasources,{...a,events:[]}],s.flags={...s.flags,touched:!0,confirmed:!0}))},addWebformState(e,t){var i;const{payload:{path:r,stateDef:a}}=t,s=e.tabs.find(u=>u.path===r);s&&(s.content.metadata.states=s.content.metadata.states||[Hn],(i=s.content.metadata.states)!=null&&i.find(l=>l.id===a.id)||(s.content.metadata.states=[...s.content.metadata.states,a],s.flags={...s.flags,touched:!0,confirmed:!0}))},removeWebformState(e,t){const{payload:r}=t;e.tabs=e.tabs.map(a=>a.path===r.path?{...a,flags:{...a.flags,touched:!0,confirmed:!0},content:em(a.content,r.state)}:a)},editWebformState(e,t){const{path:r,state:a,oldLabel:s}=t.payload;e.tabs=e.tabs.map(i=>i.path===r?{...i,flags:{...i.flags,touched:!0,confirmed:!0},content:{...i.content,metadata:{...i.content.metadata,states:i.content.metadata.states.map(u=>vf(u)?u:u.id===a.id?a.conditions?{...a,conditions:Uo(a.conditions)}:a:{...u,conditions:u.conditions?Wn(u.conditions,s,a.label):u.conditions})}}}:i)},updateStateConditionDs(e,t){const{path:r,old_reference:a,new_reference:s}=t.payload;e.tabs=e.tabs.map(i=>{var u,l;return i.path===r?{...i,flags:{...i.flags,touched:!0,confirmed:!0},content:{...i.content,metadata:{...i.content.metadata,states:(((l=(u=i.content)==null?void 0:u.metadata)==null?void 0:l.states)||[]).map(f=>f.conditions?{...f,conditions:Bo(f.conditions,a,s)}:f)}}}:i})},resetComponentState(e,t){const{path:r,id:a,state:s}=t.payload;e.tabs=e.tabs.map(i=>i.path===r?{...i,flags:{...i.flags,touched:!0,confirmed:!0},content:{...i.content,components:{...i.content.components,[a]:{...i.content.components[a],custom:{...le.omit(i.content.components[a].custom,`states:${s.id}`)}}}}}:i)},setDefaultWebformStates(e,t){const{path:r,states:a}=t.payload;e.tabs=e.tabs.map(s=>s.path===r?{...s,flags:{...s.flags,touched:!0,confirmed:!0},content:{...s.content,metadata:{...s.content.metadata,defaultStates:a.map(({id:i})=>i)}}}:s)},addDefaultWebformState(e,t){const{payload:r}=t;e.tabs=e.tabs.map(a=>{var s;return a.path===r.path?{...a,flags:{...a.flags,touched:!0,confirmed:!0},content:{...a.content,metadata:{...a.content.metadata,defaultStates:Array.from(new Set([...((s=a.content.metadata)==null?void 0:s.defaultStates)||[],r.state.id]))}}}:a})},removeDefaultWebformState(e,t){const{payload:r}=t;e.tabs=e.tabs.map(a=>{var s;return a.path===r.path?{...a,flags:{...a.flags,touched:!0,confirmed:!0},content:{...a.content,metadata:{...a.content.metadata,defaultStates:(((s=a.content.metadata)==null?void 0:s.defaultStates)||[]).filter(i=>i!==r.state.id)}}}:a})},removeDataSource(e,t){const{path:r,datasourceID:a}=t.payload;e.tabs=e.tabs.map(s=>s.path===r?{...s,flags:{...s.flags,touched:!0,confirmed:!0},content:{...s.content,metadata:{...s.content.metadata,datasources:s.content.metadata.datasources.filter(i=>i.id!==a)}}}:s)},setDataSources(e,t){const{payload:{path:r,datasourceArr:a}}=t;e.tabs=e.tabs.map(s=>{var i;return s.path===r?{...s,flags:{...s.flags,touched:!0,confirmed:!0},content:{...s.content,metadata:{...(i=s.content)==null?void 0:i.metadata,datasources:a}}}:s})},setTabs(e,t){e.tabs=t.payload},closeTab(e,t){const r=t.payload;e.tabs.splice(r,1);const a=e.tabs.reduce((s,i)=>(i==null?void 0:i.weight)>((s==null?void 0:s.weight)||0)?i:s,null);e.activeTab=(a==null?void 0:a.path)||""},closeOthers(e,t){e.tabs=e.tabs.filter(r=>r.path===t.payload),e.activeTab=t.payload},closeAllTabs(e){e.tabs=[],e.activeTab=""},closeRightTabs(e,t){e.tabs.splice(t.payload+1),e.activeTab=e.tabs[t.payload].path},closeLeftTabs(e,t){e.tabs.splice(0,t.payload)},closeSavedTabs(e){e.tabs=e.tabs.filter(({flags:{touched:r}})=>r);const t=e.tabs.reduce((r,a)=>(a==null?void 0:a.weight)>((r==null?void 0:r.weight)||0)?a:r,null);e.activeTab=(t==null?void 0:t.path)||""},confirmTab(e,t){const r=e.tabs.find(({path:a})=>a===t.payload);r&&(r.flags.confirmed||Ga.caseReducers.setTabFlags(e,{type:t.type,payload:{path:t.payload,flags:{confirmed:!0}}}))},selectTab(e,t){const r=e.tabs.find(({path:s})=>s===t.payload);if(!r||e.activeTab===t.payload)return;const a=e.tabs.reduce((s,i)=>(i==null?void 0:i.weight)>((s==null?void 0:s.weight)||0)?i:s,null);r.weight=a?(a.weight||0)+1:1,e.activeTab=t.payload},openTabUnselected(e,t){const r=t.payload;let a=e.tabs.find(({path:i})=>r.path===i);a||(e.tabs.push(r),a=e.tabs[e.tabs.length-1]);const s=e.tabs.reduce((i,u)=>(u==null?void 0:u.weight)>((i==null?void 0:i.weight)||0)?u:i,null);a.weight=s?(s.weight||0)+1:1,a.extra={...a.extra,...r.extra}},selectTabByReference(e,t){const r=[b.FileFolderType.DEBUGGER],{isNew:a,...s}=t.payload;let i=s,u=e.tabs.find(({path:l})=>i.path===l);if(i.history||(i.history={stack:[],active:-1,locked:!1}),(r.includes(i.type)||u!=null&&u.flags.confirmed)&&(i={...i,flags:{...i.flags,confirmed:!0}}),!u){const l=e.tabs.findIndex(({flags:{confirmed:f}})=>f===!1);l!==-1&&!r.includes(i.type)&&!a?e.activeTab===e.tabs[l].path?(e.tabs[l]=i,u=e.tabs[l]):(e.tabs.push(i),u=e.tabs[e.tabs.length-1],e.tabs.splice(l,1)):(e.tabs.push(i),u=e.tabs[e.tabs.length-1])}if(e.activeTab!==i.path){const l=e.tabs.reduce((f,d)=>(d==null?void 0:d.weight)>((f==null?void 0:f.weight)||0)?d:f,null);e.activeTab=i.path,u.weight=((l==null?void 0:l.weight)||0)+1}u.extra={...u.extra,...i.extra},u.view={...u.view,...i.view},u.flags={...u.flags||{},...i.flags||{}}},setContent(e,t){const{path:r,content:a,contentPath:s}=t.payload;e.tabs=e.tabs.map(i=>{if(i.path!==r)return i;let u=!1,l=i.flags.confirmed;if(typeof a=="string")u=i.initialContent!==a,l=!l&&u?!0:l;else{const f=le.get(i.initialContent,s||"",i.initialContent),d=le.get(a,s||"",a);u=!le.isEqual(f,d),l=!l&&u?!0:l}return a&&typeof a=="object"&&(s?le.set(i.content,s,a):i.content=a),typeof a=="string"&&(i.content=a),{...i,flags:{...i.flags,touched:u,confirmed:l}}})},setTabFlags(e,t){const{path:r,flags:a}=t.payload;e.tabs=e.tabs.map(s=>s.path===r?{...s,flags:{...s.flags,...a}}:s)},setTabsFlags(e,t){const{tabs:r,flags:a}=t.payload;e.tabs=e.tabs.map(s=>r.includes(s.path)?{...s,flags:{...s.flags,...a}}:s)},setTabExtra(e,t){const{path:r,extra:a,flags:s}=t.payload;e.tabs=e.tabs.map(i=>i.path===r?{...i,extra:{...i.extra,...a},flags:s?{...i.flags,...s}:i.flags}:i)},addWebFormStyles(e,t){const{path:r,styles:a=[]}=t.payload,s=e.tabs.find(i=>i.path===r);if(s){const i=s.content.metadata.styles.map(({name:l})=>l),u=a.filter(({name:l})=>!i.includes(l));s.content.metadata.styles=[...s.content.metadata.styles,...u].map(({scope:l,...f})=>f)}},changeTabEditor(e,t){return e.tabs=e.tabs.map(r=>r.path===t.payload.path?t.payload:r),e},setHistoryContent(e,t){const r=t.payload;e.tabs=e.tabs.map(a=>{var i,u;if(a.path!==r)return a;const s=!le.isEqual(a.content,(i=a.history)==null?void 0:i.stack[a.history.active]);return a.history&&s&&(a.history.stack=[...(u=a.history)==null?void 0:u.stack.slice(0,a.history.active+1),a.content],a.history.active=a.history.stack.length-1),{...a}})},unlockHistory(e,t){const r=t.payload;e.tabs=e.tabs.map(a=>a.path!==r?a:(a.history&&(a.history.locked=!1),{...a}))},undo(e){e.tabs=e.tabs.map(t=>t.path!==e.activeTab?t:(t.history&&t.history.active>0&&(t.history.locked=!0,t.history.active--,t.content=t.history.stack[t.history.active]),{...t}))},redo(e){e.tabs=e.tabs.map(t=>t.path!==e.activeTab?t:(t.history&&t.history.active<t.history.stack.length-1&&(t.history.locked=!0,t.history.active++,t.content=t.history.stack[t.history.active]),{...t}))}},extraReducers:e=>{e.addCase(kl,(t,r)=>{if(r.payload.settingsKey==="studio.enablePreview"&&r.payload.value===!1){const a=t.tabs.find(({flags:{confirmed:s}})=>s===!1);a&&Ga.caseReducers.setTabFlags(t,{type:"",payload:{path:a.path,flags:{confirmed:!0}}})}}),e.addCase(F_.fulfilled,(t,r)=>{if(!r.payload)return;const{content:a,line:s,path:i}=r.payload,u=t.tabs.find(l=>l.path===i);if(u&&typeof u.content=="string"){const l=u.content.trim().split(`
170
170
  `);l.splice(s,0,a),u.content=l.join(`
171
171
  `)}}),e.addCase(kn.pending,(t,r)=>{const{tab:a}=r.meta.arg;switch(a.type){case b.FileFolderType.CLASS:case b.FileFolderType.METHOD:b.lspSubject.next({action:b.LspActions.WILL_SAVE,payload:{filePath:a.path}});break}}),e.addCase(kn.fulfilled,(t,r)=>{if(!r.payload)return;const a=t.tabs.find(({path:s})=>{var i;return s===((i=r.payload)==null?void 0:i.path)});if(a){switch(a.content=r.payload.content,a.date=r.payload.date,a.initialContent=r.payload.initialContent,a.flags.touched=!1,a.flags.confirmed=!0,a.flags.old=!1,a.type){case b.FileFolderType.CLASS:case b.FileFolderType.METHOD:b.lspSubject.next({action:b.LspActions.DID_SAVE,payload:{filePath:a.path,content:a.content}});break}r.payload.errors.length>0&&b.toastSubject.next({kind:"error",message:r.payload.errors})}}),e.addCase(kn.rejected,()=>{b.toastSubject.next({kind:"danger",message:"Cannot save file"})}),e.addCase(L_.fulfilled,(t,r)=>{const a=[...r.payload.files];t.tabs=t.tabs.map(s=>{if([b.FileFolderType.CLASS,b.FileFolderType.METHOD].includes(s.type)){const i=a.find(u=>u.name===s.name&&u.type===s.type);if(i){const u=new Date(s.date),l=new Date(i.date);if(u.getTime()!==l.getTime())return{...s,flags:{...s.flags,old:!0}}}}return s})}),e.addCase(no.pending,(t,r)=>{t.tabs=t.tabs.map(a=>a.path===r.meta.arg.path?{...a,flags:{...a.flags,loading:!0}}:a)}),e.addCase(no.fulfilled,(t,r)=>{const a=r.payload;if(a){const s=r.meta.arg;t.tabs=t.tabs.map(i=>{if(i.name===s.name&&i.type===s.type){const u=i.extra||{};return i.type===b.FileFolderType.METHOD?(u.attributes=b.parseAttributes(a.content),a.content=b.addAttributesToContent(a.content,{})):i.type===b.FileFolderType.SETTINGS&&(a.content={}),{...i,initialContent:a.content,content:a.content,date:a.date,flags:{enabled:i.flags.enabled,confirmed:i.flags.confirmed},extra:u}}return i})}}),e.addCase(no.rejected,(t,r)=>{const a=r.meta.arg.path;t.tabs=t.tabs.map(s=>s.path===a?{...s,flags:{...s.flags,loading:!1}}:s)}),e.addCase(Af.fulfilled,(t,r)=>{if(!r.payload)return;const{line:a,offset:s}=r.meta.arg,i=t.tabs.find(({path:u})=>{var l;return u===((l=r.payload)==null?void 0:l.path)});i&&(i.extra={...i.extra,initialLineInfo:{line:a,offset:s,lastModification:Date.now()}})}),e.addCase(M_.fulfilled,(t,r)=>{if(!r.payload)return;const{selection:a}=r.meta.arg,s=t.tabs.find(({path:i})=>{var u;return i===((u=r.payload)==null?void 0:u.path)});s&&(s.extra={...s.extra,initialSelectionInfo:{selection:a,lastModification:Date.now()}})}),e.addCase($n.fulfilled,(t,r)=>{r.payload.new!==r.payload.old&&(t.tabs=[...t.tabs].map(a=>a.path===r.payload.old.path?{...a,path:r.payload.new.path,name:r.payload.new.name}:a),t.activeTab===r.payload.old.path&&(t.activeTab=r.payload.new.path))}),e.addCase(Wl.pending,(t,r)=>{const a=r.meta.arg,s=`${a.path}${a.ext?`.${a.ext}`:""}`;switch(a.ext){case"4dm":case"4qs":b.lspSubject.next({action:b.LspActions.WILL_DELETE,payload:{filePath:s}});break}}),e.addCase(Wl.fulfilled,(t,r)=>{const{deleted:a,node:s}=r.payload;if(!a)return;const i=`${s.path}${s.ext?`.${s.ext}`:""}`;switch(s.ext){case"4dm":case"4qs":b.lspSubject.next({action:b.LspActions.DID_DELETE,payload:{filePath:i}});break}if(t.tabs=t.tabs.filter(u=>u.path!==i),t.recent=t.recent.filter(({path:u})=>i!==u),t.tabs.length){t.activeTab=t.tabs[t.tabs.length-1].path;return}t.activeTab=""}),e.addCase(Ul.pending,(t,r)=>{const a=r.meta.arg,s=`${a.path}${a.ext?`.${a.ext}`:""}`;switch(a.ext){case"4dm":case"4qs":b.lspSubject.next({action:b.LspActions.WILL_DELETE,payload:{filePath:s}});break}}),e.addCase(Ul.fulfilled,(t,r)=>{const{node:a}=r.payload,s=`${a.path}${a.ext?`.${a.ext}`:""}`;switch(a.ext){case"4dm":case"4qs":b.lspSubject.next({action:b.LspActions.DID_DELETE,payload:{filePath:s}});break}}),e.addCase(La.fulfilled,(t,r)=>{const{draggedNode:a,newLocation:s}=r.meta.arg;if(t.tabs.find(i=>i.path===`${a.path}${a.ext?`.${a.ext}`:""}`))return t.tabs=t.tabs.map(i=>i.path===`${a.path}${a.ext?`.${a.ext}`:""}`?{...i,path:`${s.path}/${a.name}.${a.ext}`}:i),t.recent=t.recent.map(i=>i.path===`${a.path}${a.ext?`.${a.ext}`:""}`?{...i,path:`${s.path}/${a.name}.${a.ext}`}:i),t.activeTab=`${s.path}/${a.name}.${a.ext}`,t}),e.addCase(bo.fulfilled,(t,r)=>{const a=t.tabs.find(s=>s.path===r.payload.path);a&&(a.flags.touched=!1,a.flags.confirmed=!0,a.date=r.payload.date,a.content=r.payload.content,a.initialContent=r.payload.content)}),e.addCase(k_.fulfilled,(t,r)=>{var i;if(!((i=r.payload)!=null&&i.path))return;const a=t.tabs.find(b.by("path",r.payload.path));if(!a)return;a.content=a.content+`
172
172
  exposed Function ${r.meta.arg.name}()