@meshflow/core 0.4.3 → 0.4.5
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/index.d.mts +6 -5
- package/index.d.ts +6 -5
- package/index.js +1 -1
- package/index.mjs +1 -1
- package/metafile-cjs.json +1 -1
- package/metafile-esm.json +1 -1
- package/package.json +1 -1
package/index.d.mts
CHANGED
|
@@ -240,10 +240,11 @@ interface StandardUITrigger<T> {
|
|
|
240
240
|
}
|
|
241
241
|
interface logicApi<TKeys extends MeshPath> {
|
|
242
242
|
slot: {
|
|
243
|
-
triggerTargets: Array<Record<TKeys, any>>;
|
|
243
|
+
triggerTargets: Array<Record<TKeys | InternalKeys, any>>;
|
|
244
244
|
affectedTatget: any;
|
|
245
245
|
};
|
|
246
246
|
}
|
|
247
|
+
type InternalKeys = 'path' | 'uid' | 'type' | 'meta' | 'state';
|
|
247
248
|
interface SetRuleOptions<NM, TKeys extends KeysOfUnion<NM>> {
|
|
248
249
|
value?: any;
|
|
249
250
|
priority?: number;
|
|
@@ -252,7 +253,7 @@ interface SetRuleOptions<NM, TKeys extends KeysOfUnion<NM>> {
|
|
|
252
253
|
effect?: (args: any) => any;
|
|
253
254
|
effectArgs?: Array<KeysOfUnion<NM>>;
|
|
254
255
|
cacheStrategy?: "none" | "shallow";
|
|
255
|
-
triggerKeys?: Array<TKeys
|
|
256
|
+
triggerKeys?: Array<TKeys | Exclude<InternalKeys, 'state'>>;
|
|
256
257
|
}
|
|
257
258
|
type EntangleOp = "add" | "intersect" | "union" | "merge" | "remove";
|
|
258
259
|
interface GhostProposalApi<T> {
|
|
@@ -317,7 +318,7 @@ declare function useEngineInstance<T, P extends MeshPath, S = any, M extends Rec
|
|
|
317
318
|
} & M;
|
|
318
319
|
plugins: {};
|
|
319
320
|
}): {
|
|
320
|
-
SetRule: <TKeys extends KeysOfUnion<NM
|
|
321
|
+
SetRule: <TKeys extends KeysOfUnion<NM> = any>(outDegreePath: P, inDegreePath: P, key: KeysOfUnion<NM> | (string & {}), options: SetRuleOptions<NM, TKeys>) => void;
|
|
321
322
|
SetRules: <TKeys extends KeysOfUnion<NM>>(outDegreePaths: P[], inDegreePath: P, key: KeysOfUnion<NM> | (string & {}), options: SetRuleOptions<NM, TKeys>) => void;
|
|
322
323
|
SetStrategy: (path: P, key: KeysOfUnion<NM>, strategy: DefaultStrategy) => void;
|
|
323
324
|
useEntangle: (config: EntangleArgType<P>) => void;
|
|
@@ -511,7 +512,7 @@ M extends Record<string, any>, NM extends Record<string, any> = InferLeafType<S>
|
|
|
511
512
|
signalTrigger: (signal: T) => void;
|
|
512
513
|
};
|
|
513
514
|
}) => Engine<{
|
|
514
|
-
SetRule: <TKeys extends KeysOfUnion<NM
|
|
515
|
+
SetRule: <TKeys extends KeysOfUnion<NM> = any>(outDegreePath: P, inDegreePath: P, key: (string & {}) | KeysOfUnion<NM>, options: SetRuleOptions<NM, TKeys>) => void;
|
|
515
516
|
SetRules: <TKeys extends KeysOfUnion<NM>>(outDegreePaths: P[], inDegreePath: P, key: (string & {}) | KeysOfUnion<NM>, options: SetRuleOptions<NM, TKeys>) => void;
|
|
516
517
|
SetStrategy: (path: P, key: KeysOfUnion<NM>, strategy: DefaultStrategy) => void;
|
|
517
518
|
useEntangle: (config: EntangleArgType<P>) => void;
|
|
@@ -602,7 +603,7 @@ declare const useMeshFlow: <const S extends Record<string, any> | any[], T, M ex
|
|
|
602
603
|
signalTrigger: (signal: T) => void;
|
|
603
604
|
};
|
|
604
605
|
}) => Engine<{
|
|
605
|
-
SetRule: <TKeys extends KeysOfUnion<NM
|
|
606
|
+
SetRule: <TKeys extends KeysOfUnion<NM> = any>(outDegreePath: P, inDegreePath: P, key: (string & {}) | KeysOfUnion<NM>, options: SetRuleOptions<NM, TKeys>) => void;
|
|
606
607
|
SetRules: <TKeys extends KeysOfUnion<NM>>(outDegreePaths: P[], inDegreePath: P, key: (string & {}) | KeysOfUnion<NM>, options: SetRuleOptions<NM, TKeys>) => void;
|
|
607
608
|
SetStrategy: (path: P, key: KeysOfUnion<NM>, strategy: DefaultStrategy) => void;
|
|
608
609
|
useEntangle: (config: EntangleArgType<P>) => void;
|
package/index.d.ts
CHANGED
|
@@ -240,10 +240,11 @@ interface StandardUITrigger<T> {
|
|
|
240
240
|
}
|
|
241
241
|
interface logicApi<TKeys extends MeshPath> {
|
|
242
242
|
slot: {
|
|
243
|
-
triggerTargets: Array<Record<TKeys, any>>;
|
|
243
|
+
triggerTargets: Array<Record<TKeys | InternalKeys, any>>;
|
|
244
244
|
affectedTatget: any;
|
|
245
245
|
};
|
|
246
246
|
}
|
|
247
|
+
type InternalKeys = 'path' | 'uid' | 'type' | 'meta' | 'state';
|
|
247
248
|
interface SetRuleOptions<NM, TKeys extends KeysOfUnion<NM>> {
|
|
248
249
|
value?: any;
|
|
249
250
|
priority?: number;
|
|
@@ -252,7 +253,7 @@ interface SetRuleOptions<NM, TKeys extends KeysOfUnion<NM>> {
|
|
|
252
253
|
effect?: (args: any) => any;
|
|
253
254
|
effectArgs?: Array<KeysOfUnion<NM>>;
|
|
254
255
|
cacheStrategy?: "none" | "shallow";
|
|
255
|
-
triggerKeys?: Array<TKeys
|
|
256
|
+
triggerKeys?: Array<TKeys | Exclude<InternalKeys, 'state'>>;
|
|
256
257
|
}
|
|
257
258
|
type EntangleOp = "add" | "intersect" | "union" | "merge" | "remove";
|
|
258
259
|
interface GhostProposalApi<T> {
|
|
@@ -317,7 +318,7 @@ declare function useEngineInstance<T, P extends MeshPath, S = any, M extends Rec
|
|
|
317
318
|
} & M;
|
|
318
319
|
plugins: {};
|
|
319
320
|
}): {
|
|
320
|
-
SetRule: <TKeys extends KeysOfUnion<NM
|
|
321
|
+
SetRule: <TKeys extends KeysOfUnion<NM> = any>(outDegreePath: P, inDegreePath: P, key: KeysOfUnion<NM> | (string & {}), options: SetRuleOptions<NM, TKeys>) => void;
|
|
321
322
|
SetRules: <TKeys extends KeysOfUnion<NM>>(outDegreePaths: P[], inDegreePath: P, key: KeysOfUnion<NM> | (string & {}), options: SetRuleOptions<NM, TKeys>) => void;
|
|
322
323
|
SetStrategy: (path: P, key: KeysOfUnion<NM>, strategy: DefaultStrategy) => void;
|
|
323
324
|
useEntangle: (config: EntangleArgType<P>) => void;
|
|
@@ -511,7 +512,7 @@ M extends Record<string, any>, NM extends Record<string, any> = InferLeafType<S>
|
|
|
511
512
|
signalTrigger: (signal: T) => void;
|
|
512
513
|
};
|
|
513
514
|
}) => Engine<{
|
|
514
|
-
SetRule: <TKeys extends KeysOfUnion<NM
|
|
515
|
+
SetRule: <TKeys extends KeysOfUnion<NM> = any>(outDegreePath: P, inDegreePath: P, key: (string & {}) | KeysOfUnion<NM>, options: SetRuleOptions<NM, TKeys>) => void;
|
|
515
516
|
SetRules: <TKeys extends KeysOfUnion<NM>>(outDegreePaths: P[], inDegreePath: P, key: (string & {}) | KeysOfUnion<NM>, options: SetRuleOptions<NM, TKeys>) => void;
|
|
516
517
|
SetStrategy: (path: P, key: KeysOfUnion<NM>, strategy: DefaultStrategy) => void;
|
|
517
518
|
useEntangle: (config: EntangleArgType<P>) => void;
|
|
@@ -602,7 +603,7 @@ declare const useMeshFlow: <const S extends Record<string, any> | any[], T, M ex
|
|
|
602
603
|
signalTrigger: (signal: T) => void;
|
|
603
604
|
};
|
|
604
605
|
}) => Engine<{
|
|
605
|
-
SetRule: <TKeys extends KeysOfUnion<NM
|
|
606
|
+
SetRule: <TKeys extends KeysOfUnion<NM> = any>(outDegreePath: P, inDegreePath: P, key: (string & {}) | KeysOfUnion<NM>, options: SetRuleOptions<NM, TKeys>) => void;
|
|
606
607
|
SetRules: <TKeys extends KeysOfUnion<NM>>(outDegreePaths: P[], inDegreePath: P, key: (string & {}) | KeysOfUnion<NM>, options: SetRuleOptions<NM, TKeys>) => void;
|
|
607
608
|
SetStrategy: (path: P, key: KeysOfUnion<NM>, strategy: DefaultStrategy) => void;
|
|
608
609
|
useEntangle: (config: EntangleArgType<P>) => void;
|
package/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
'use strict';var we=(S=>(S[S.FlowStart=0]="FlowStart",S[S.FlowSuccess=1]="FlowSuccess",S[S.FlowEnd=2]="FlowEnd",S[S.FlowAbort=3]="FlowAbort",S[S.FlowWait=4]="FlowWait",S[S.FlowFire=5]="FlowFire",S[S.NodeStart=6]="NodeStart",S[S.NodeSuccess=7]="NodeSuccess",S[S.NodeProcessing=8]="NodeProcessing",S[S.NodeError=9]="NodeError",S[S.NodePending=10]="NodePending",S[S.NodeRevive=11]="NodeRevive",S[S.NodeIntercept=12]="NodeIntercept",S[S.NodeRelease=13]="NodeRelease",S[S.NodeStagnate=14]="NodeStagnate",S[S.NodeBucketSuccess=15]="NodeBucketSuccess",S[S.EntangleWarn=16]="EntangleWarn",S[S.EntangleBlocked=17]="EntangleBlocked",S))(we||{}),Fe=(r=>(r[r.CAUSALITY=0]="CAUSALITY",r[r.INVERSION=1]="INVERSION",r[r.REPERCUSSION=2]="REPERCUSSION",r))(Fe||{});var Ve=(r=>(r.OR="OR",r.PRIORITY="PRIORITY",r.MERGE="MERGE",r))(Ve||{}),De=class{computedRules=[];store={OR:(e,t)=>{let r,u,c=this.computedRules;for(let i=0;i<c.length;i++){let l=c[i],s=l.logic(e);if(s instanceof Promise)return (async()=>{let M=await s;if(l.entityId==="__base__"?u=M:M&&(r=M),typeof r>"u")for(let n=i+1;n<c.length;n++){let N=c[n],f=N.logic(e),g=f instanceof Promise?await f:f;if(N.entityId==="__base__"){u=g;continue}if(g){r=N.value;break}}return typeof r>"u"&&(r=u),{res:r,version:t}})();let h=s;if(l.entityId==="__base__"){u=h;continue}if(h){r=l.value;break}}return typeof r>"u"&&(r=u),{res:r,version:t}},PRIORITY:(e,t)=>{let r,u=this.computedRules;for(let c=0;c<u.length;c++){let l=u[c].logic(e);if(l instanceof Promise)return (async()=>{let s=await l;if(s!==void 0)return {res:s,version:t};for(let h=c+1;h<u.length;h++){let M=u[h].logic(e),n=M instanceof Promise?await M:M;if(n!==void 0)return {res:n,version:t}}return {res:void 0,version:t}})();if(l!==void 0)return {res:l,version:t}}return {res:r,version:t}},MERGE:(e,t)=>{let r,u,c=this.computedRules,i=(s,h)=>s===void 0?h:h===void 0?s:Array.isArray(s)&&Array.isArray(h)?[...h,...s]:typeof s=="object"&&typeof h=="object"?{...h,...s}:s;for(let s=0;s<c.length;s++){let h=c[s],M=h.logic(e);if(M instanceof Promise)return (async()=>{let N=await M,f=(m,P)=>{if(m.entityId==="__base__")u=i(u,P);else if(P){let R=m.value!==void 0?m.value:P;r=i(r,R);}};f(h,N);for(let m=s+1;m<c.length;m++){let P=c[m],R=P.logic(e),S=R instanceof Promise?await R:R;f(P,S);}return {res:i(r,u),version:t}})();let n=M;if(h.entityId==="__base__"){u=i(u,n);continue}if(n){let N=h.value!==void 0?h.value:n;r=i(r,N);}}return {res:i(r,u),version:t}}};CurrentStrategy=()=>{};CurrentStrategyType="PRIORITY";getRules=()=>{};constructor(e){this.getRules=e,this.CurrentStrategy=this.store.PRIORITY,this.updateComputedRules();}updateComputedRules(){let e=this.getRules();this.CurrentStrategyType==="PRIORITY"||this.CurrentStrategyType==="MERGE"?this.computedRules=Array.from(e.values()).map(t=>Array.from(t)).flat().sort((t,r)=>r.priority-t.priority):this.computedRules=Array.from(e.values()).map(t=>Array.from(t)).flat();}setStrategy(e){this.CurrentStrategyType=e,this.CurrentStrategy=this.store[e],this.updateComputedRules();}evaluate(e,t){return this.CurrentStrategy(e,t)}},Re=class{path;strategy;contract;rules=new Map;isValue=false;id=0;cache=void 0;pendingPromise=null;version=0;deps=new Map;_forceNotify=false;promiseToken=null;useCache=true;effectArray=[];constructor(e,t,r){let u=()=>this.rules;this.strategy=new De(u),this.path=r,this.isValue=t==="value",this.contract=this.inferType(e),this.cache=e,this.setRule({priority:0,entityId:"__base__",logic:()=>e});}setUseCache(e){this.useCache=e;}forceNotify(){this._forceNotify=true;}isForceNotify(){return this._forceNotify}setStrategy(e){this.strategy.setStrategy(e);}setDefaultRule(e){let t=new Set;t.add(e),this.rules.set(-1,t);}setRules(e,t){t&&this.updateDeps(t);let r=++this.id,u={...e,entityId:r};for(let c of e.triggerUids)this.rules.has(c)||this.rules.set(c,new Set),this.rules.get(c).add(u);return this.strategy.updateComputedRules(),()=>{for(let c of e.triggerUids){let i=this.rules.get(c);i&&(i.delete(u),i.size===0&&(this.rules.delete(c),this.deps.delete(c)));}this.strategy.updateComputedRules();}}updateDeps(e){for(let[t,r]of e)this.deps.set(t,r);}setRule(e,t){if(t&&this.updateDeps(t),typeof e.entityId=="string"){this.setDefaultRule(e);return}let r=++this.id,u={...e,entityId:r};if(e)for(let c of e.triggerUids)this.rules.has(c)||this.rules.set(c,new Set),this.rules.get(c).add(u);return this.strategy.updateComputedRules(),()=>{for(let c of e.triggerUids){let i=this.rules.get(c);i&&(i.delete(u),i.size===0&&(this.rules.delete(c),this.deps.delete(c)));}this.strategy.updateComputedRules();}}setSideEffect(e){this.effectArray.push(e);}getSideEffect(){return [...this.effectArray]}evaluate(e){let t=null;if(e.GetToken&&(t=e.GetToken()),this.pendingPromise&&this.promiseToken!==t&&(this.pendingPromise=null,this.promiseToken=null),this.pendingPromise)return this.pendingPromise;let r=false;if(typeof e.triggerUid=="number"){r=true;let i=this.deps.get(e.triggerUid),l=e.getStateByUid(e.triggerUid);if(typeof i=="object"||typeof l=="object")r=false;else {let s=Array.from(this.deps.keys());for(let h of s){let M=this.deps.get(h),n=e.getStateByUid(h);if(M!==n){r=false;break}}}}if(r&&this.useCache)return this.cache;this.promiseToken=t;let u=++this.version,c=this.strategy.evaluate(e,u);if(!(c instanceof Promise)){let{res:i,version:l}=c;return this.finalizeSync(i,l,e,t)}return this.pendingPromise=(async()=>{try{let{res:i,version:l}=await c;return this.finalizeSync(i,l,e,t)}catch(i){throw {path:this.path,error:i}}finally{this.promiseToken===t&&(this.pendingPromise=null,this.promiseToken=null);}})(),this.pendingPromise}finalizeSync(e,t,r,u){return u!==this.promiseToken||t<this.version?this.cache:(this.cache=e,this.deps.forEach((c,i)=>{this.deps.set(i,r.getProxyByUid(i));}),e)}inferType(e){return Array.isArray(e)?"array":typeof e}};var _e=(p,e,t)=>{let u=c=>{let i=t.triggerUids.map(h=>{let M=c.getProxyByUid(h);if(t.triggerKeys.length===0)return M;let n={};return t.triggerKeys.forEach(N=>{n[N]=M[N];}),n}),l=Object.create(null);return Object.defineProperty(l,"triggerTargets",{get:()=>i}),Object.defineProperty(l,"affectedTatget",{get:()=>c.getProxyByUid(p)[e]}),t.logic({slot:l})};return {value:t.value,targetUid:p,triggerUids:t.triggerUids,priority:t.priority??10,logic:u}},He=(p,e,t,r,u,c,i,l)=>{if(!p)throw Error();let s=p,h=(N,f)=>{typeof r[N]>"u"&&(r[N]=[],c[N]=new Set),c[N].add(f),c[N].size>r[N].length&&r[N].push(f),typeof u[f]>"u"&&(u[f]=[],i[f]=new Set),i[f].add(N),i[f].size>u[f].length&&u[f].push(N);};return {SetRule:(N,f,g,m)=>{let P=s(N),R=s(f),S=m.triggerKeys||[],Q=l.get(R.uid)||0,X=l.get(P.uid)||0;Q+=1,X+=1,l.set(R.uid,Q),l.set(P.uid,X);let Y=_e(R.uid,g,{...m,triggerUids:[P.uid],triggerKeys:S}),y=[N].map(V=>{let a=s(V);return [a.uid,a.state.value]});if(h(P.uid,R.uid),typeof R.nodeBucket[g]=="number"){let V=t(R.nodeBucket[g]);V.setRule(Y,y),m.effect&&V.setSideEffect({fn:m.effect,args:m.effectArgs?m.effectArgs:[g]});}else {let V=R.meta[g],a=new Re(V,g,f);a.setRule(Y,y),m.effect&&a.setSideEffect({fn:m.effect,args:m.effectArgs?m.effectArgs:[g]}),R.nodeBucket[g]=e(a);}R.state[g]=R.meta[g];let q=t(R.nodeBucket[g]);m.forceNotify&&q.forceNotify(),m.cacheStrategy=="none"&&q.setUseCache(false);},SetRules:(N,f,g,m)=>{let P=s(f),R=l.get(P.uid)||0;R+=1,l.set(P.uid,R);let S=[];for(let q of N){let V=s(q);S.push(V.uid);let a=l.get(V.uid)||0;a+=1,l.set(V.uid,a),h(V.uid,P.uid);}let Q=m.triggerKeys||[],X=_e(P.uid,g,{...m,triggerUids:S,triggerKeys:Q}),Y=N.map(q=>{let V=s(q);return [V.uid,V.state.value]});if(typeof P.nodeBucket[g]=="number"){let q=t(P.nodeBucket[g]);q.setRules(X,Y),m.effect&&q.setSideEffect({fn:m.effect,args:m.effectArgs?m.effectArgs:[g]});}else {let q=P.meta[g],V=new Re(q,g,f);V.setRules(X,Y),m.effect&&V.setSideEffect({fn:m.effect,args:m.effectArgs?m.effectArgs:[g]}),P.nodeBucket[g]=e(V);}P.state[g]=P.meta[g];let y=t(P.nodeBucket[g]);m.forceNotify&&y.forceNotify(),m.cacheStrategy=="none"&&y.setUseCache(false);}}};var Ye=(p,e)=>{let t=p||void 0;if(!t)throw Error();return {SetStrategy:(u,c,i)=>{let l=t(u);e(l.nodeBucket[c]).setStrategy(i);}}};function je(){let p=new Map,e=new Map,t=new Set,r=(i,l)=>{p.set(i,l);let s=e.get(i);s&&s(l);};return {SetTrace:(i,l)=>{e.set(i,l);let s=p.get(i)||"idle";return l(s),{cancel:()=>{e.delete(i);}}},useTrace:()=>({apply:l=>{l.on(0,()=>{t.forEach(s=>r(s,"idle")),t.clear(),p.clear();}),l.on(13,({path:s,type:h})=>{(h==1||h==2)&&(t.add(s),r(s,"pending"));}),l.on(10,({path:s})=>{t.add(s),(!p.has(s)||p.get(s)==="idle")&&r(s,"pending");}),l.on(6,({path:s})=>{t.add(s),r(s,"calculating");}),l.on(7,({path:s})=>{r(s,"calculated");}),l.on(12,({path:s,type:h})=>{h==3&&r(s,"calculating"),h==6&&r(s,"idle");}),l.on(14,({path:s})=>{r(s,"pending");}),l.on(9,({path:s})=>r(s,"error"));}})}}function ze(p,e,t,r){return {GetNextDependency:M=>r()[M]||[],GetPrevDependency:M=>t()[M]||[],GetAllPrevDependency:M=>e()[M]||[],GetAllNextDependency:M=>p()[M]||[],rebuildDirectDependencyMaps:M=>{let n=[],N=[],f=p();for(let g of M){let m=f[g]||[];n[g]=m;for(let P=0;P<m.length;P++){let R=m[P];typeof N[R]>"u"&&(N[R]=[]),N[R].push(g);}}return {directNextMap:n,directPrevMap:N}}}}function qe(p,e){let t=u=>{let c=[],i=[],l=new Map,s=u.size,h=0,M=0;for(let[n,N]of u)N===0&&i.push(n);if(i.length===0&&s>0)throw Error("Circular dependency detected");for(;i.length>0;){c.push([...i]);let n=[];for(let N of i){h++,l.set(N,M);let f=p[N];if(f)for(let g of f){let m=u.get(g)-1;u.set(g,m),m===0&&n.push(g);}}i=n,M++;}if(h<s)throw Error("Circular dependency detected");return {steps:c,levelMap:l}};return ()=>{let u=new Map;for(let c of e.keys()){let i=p[c]||[];u.has(c)||u.set(c,0);for(let l of i){let s=u.get(l)||0;u.set(l,++s);}}return t(u)}}var Ne=()=>{let p=[];return {on:e=>(p.push(e),()=>{let t=p.indexOf(e);t>-1&&p.splice(t,1);}),call:e=>p.forEach(t=>{t(e);})}};function Qe(){let{on:p,call:e}=Ne();return {onError:p,callOnError:e}}function $e(){let{on:p,call:e}=Ne();return {onSuccess:p,callOnSuccess:e}}var Xe=()=>{let p=new Set,e=new Map,t=new Set,r=(l,s)=>{e.get(l)?.forEach(h=>h(s));},u=(l,s)=>(e.has(l)||e.set(l,new Set),e.get(l).add(s),()=>e.get(l)?.delete(s));return {usePlugin:l=>{let s=new Set,h=(n,N)=>{let f=u(n,N);return s.add(f),f};l.apply({on:h}),p.add(l);let M=()=>{s.forEach(n=>n()),s.clear(),p.delete(l),t.delete(M);};return t.add(M),M},emit:r,destroyPlugin:()=>{t.forEach(l=>l()),t.clear(),e.clear(),p.clear();}}};function Ze(){let{on:p,call:e}=Ne();return {onStart:p,callOnStart:e}}var Je=(p={frameQuota:12})=>{let e=performance.now(),t=0,r=false,u=()=>!!navigator?.scheduling?.isInputPending?.({includeContinuous:true});return {getIsFirstFrame:()=>r,reset(){e=performance.now(),t=0,r=true;},shouldYield(){return !r&&(++t&15)!==0?false:!!(performance.now()-e>p.frameQuota||u())},async yieldToMain(){return new Promise(c=>{Be(()=>{e=performance.now(),t=0,r&&(r=false),c();});})}}},Be=p=>{let{port1:e,port2:t}=new MessageChannel;e.onmessage=p,t.postMessage(null);};function et(p,e,t,r,u,c){let i=new Map,l=p.useGreedy,s=null,h=()=>{i.clear();},M={path:null,level:0,targetLevel:0,currentLevel:0,pendingParentsCount:0,active:0,pending:0,blocked:0,nums:0,asyncNums:0},n={path:null,type:0,triggerPath:null,calledBy:0,key:null,value:null,error:null,token:null,duration:null,detail:M};return {TaskRunner:async(f,g)=>{let P=Symbol("token"),R=typeof f=="number"?f:"__NOTIFY_ALL__";i.set(R,P),s=P;let S=false;c.reset();let Q=t.GetMaxUid()+3,X=new Array(Q).fill(0),Y=0,y=new Uint8Array(Q),q=new Int32Array(Q),V=new Int32Array(Q),a=new Int32Array(Q*2),T=0,A=0,k=new Int32Array(Q*2),_=0,O=0,D=new Int32Array(Q*2),b=0,U=0;g.forEach(E=>{X[E]=1,e.GetAllNextDependency(E).forEach(se=>{X[se]=1;});});let K=new Array(Q).fill(null),v=[],o=t.Turnstile,d=new Array(Q).fill(null).map(()=>[]),B=new Array(Q).fill(null).map(()=>[]),H=o.volatileLevels.size>0,ne=H?o.hasObserver:E=>false,le=H?o.receiveGhosts:()=>[],ue=H?o.resolveGhosts:()=>[],Me=H?o.getTriggerKeys:()=>[],Se=o?.volatileLevels||new Set,ye=-1,ee=e.GetUidToLevelMap(),re=0,be=0,ge=E=>{e.GetAllNextDependency(E).forEach(ae=>{let te=ee.get(ae)||0;te>be&&(be=te);});},Ae=new Set;typeof f=="number"&&(y[f]|=16,Ae.add(f),ge(f),u.flushPathSet.add(f));let ve=typeof f=="number"?[f]:g;c.shouldYield()&&(u.requestUpdate(),await c.yieldToMain());let Ie=ve.map(async E=>{if(ne(E)){let se=t.GetNodeByUid(E),ae=Me(E);if(ae.length>0){let te=le(se,ae);return te instanceof Promise&&(te=await te),{seed:E,hitTargets:te}}}return {seed:E,hitTargets:[]}});if((await Promise.all(Ie)).forEach(({seed:E,hitTargets:se})=>{if(se&&se.length>0){v.push(...se);let ae=ee.get(E)||0;ye=Math.max(ye,ae);}}),(v.length>0||ve.length>1)&&(u.requestUpdate(),await c.yieldToMain(),i.get(R)!==P))return;let Te=v.length>0;g.forEach(E=>{if(!Ae.has(E))if(Te){let se=ee.get(E)??0;V[E]=se,y[E]&4||(y[E]|=4,D[b++]=E,U++);let ae=t.GetPathByUid(E);n.path=ae,n.type=2,r.emit(14,n);}else y[E]&1||(y[E]|=1,a[T++]=E,A++),ge(E);}),typeof f=="number"?re=ee.get(f)??0:re=Math.min(...g.map(E=>ee.get(E)??0));let Ce=performance.now(),Ee=typeof R=="number"?t.GetPathByUid(R):"__NOTIFY_ALL__";n.path=Ee,n.token=P,r.emit(0,n),r.callOnStart({path:Ee});let ke=false,Ke=30,Le=(E,se)=>{let ae=false,te=false,L=false,x=t.GetNodeByUid(E),$=t.GetPathByUid(E),j=x.calledBy,I=d[E];I.length=0;let C=B[E];C.length=0;let G=false;if(x.calledBy===1){G=true,ae=true,u.flushPathSet.add(E);let w=K[E];w&&(I.push(...w),K[E]=null);}let F=(w,Z)=>{let W=ee.get(w)??0,oe=t.GetNodeByUid(w),J=t.GetPathByUid(w),pe=(j===1||j===2)&&W<=ye;pe&&y[w]&16&&(y[w]&=-17,n.path=J,n.triggerPath=$,r.emit(11,n));let ie=0;if(!(y[w]&49)){if(y[w]&2)ie=q[w]-1;else {if(W>re&&O>Ke){V[w]=W,y[w]&4||(y[w]|=4,D[b++]=w,U++),n.path=J,n.type=7,r.emit(12,n);return}let me=e.GetPrevDependency(w),z=0;for(let he of me){if(y[he]&16)continue;(ee.get(he)??0)>re&&z++;}ie=z;}if(ie<=0){let me=(y[w]&1)!==0,z=(y[w]&32)!==0;if(me||z){n.path=J,n.type=z?3:3.1,r.emit(12,n);return}y[w]&2&&(y[w]&=-3,O--),pe?oe.calledBy=2:oe.calledBy=0,y[w]&1||(y[w]|=1,a[T++]=w,A++),n.path=J,n.type=Z,M.path=$,r.emit(13,n);}else q[w]=ie,y[w]&2||(y[w]|=2,k[_++]=w,O++);}},de=(w=[])=>{if(i.get(R)!==P)return;if(w.length){let W={},oe=x.proxy;for(let J of w){let pe=(J.args||[]).reduce((ie,me)=>(ie[me]=oe[me],ie),{});try{let ie=J.fn(pe);ie&&typeof ie=="object"&&Object.assign(W,ie);}catch(ie){}}for(let J in W)if(J in x.state)Object.is(x.state[J],W[J])||(x.state[J]=W[J],I.push(J),ae=true,(x.notifyKeys.size===0||x.notifyKeys.has(J))&&(te=true));else throw {error:`wrong effect in ${String(x.path)}`}}ae&&u.flushPathSet.add(E);let Z=(W=[])=>{if(i.get(R)!==P)return;W&&W.length>0&&(v.push(...W),ye=Math.max(ye,ee.get(E)||0)),I.length=0,n.path=$,n.calledBy=x.calledBy,r.emit(7,n),y[E]|=16;let oe=e.GetNextDependency(E);(te||L)&&(ge(E),e.GetAllNextDependency(E).forEach(he=>{X[he]=1;}));let J=t.GetNodeByUid(E),pe=ee.get(E)??0,ie=Se.has(pe)||v.length>0;for(let z of oe){let he=ee.get(z)??0,Pe=t.GetPathByUid(z);if(ie&&he>=pe){V[z]=he,y[z]&4||(y[z]|=4,D[b++]=z,U++),n.path=Pe,n.type=2,r.emit(14,n);continue}if(y[z]&16){n.path=Pe,n.type=2,r.emit(12,n);continue}if(y[z]&32||(y[z]&1)!==0){n.path=Pe,n.type=y[z]&32?3:3.1,r.emit(12,n);continue}if(te||L)F(z,1);else if(y[z]&2)F(z,2);else {let st=ee.get(z);V[z]=st,y[z]&4||(y[z]|=4,D[b++]=z,U++,n.path=Pe,n.type=1,r.emit(14,n));}}y[E]&32&&(y[E]&=-33,Y--),J.calledBy=0,(()=>{if(!S){S=true;let z=Y,he=A,Pe=O;n.path=$,n.type=1,M.active=z,M.pending=he,M.blocked=Pe,r.emit(5,n),Ge();}})();};if(ne(E)&&I.length>0){let W=le(x,I);W instanceof Promise?W.then(Z).catch(ce):Z(W);}else Z([]);},ce=w=>{n.path=$,n.error=w,r.emit(9,n);let Z=Symbol("abort");i.set(R,Z),T=0,A=0,_=0,O=0,b=0,U=0,y.fill(0),Y=0,K.fill(null),r.callOnError(w);},fe=(w,Z)=>{w!==x.state[Z]&&(x.state[Z]=w,ae=true,I.push(String(Z)),n.path=$,n.key=Z,n.value=w,n.calledBy=x.calledBy,r.emit(15,n),(x.notifyKeys.size===0||x.notifyKeys.has(Z))&&(te=true)),t.GetBucket(x.nodeBucket[Z]).isForceNotify()&&(L=true),(te||L)&&ge(E);};n.path=$,n.calledBy=x.calledBy,r.emit(6,n);try{let w=[];for(let Z in x.nodeBucket){let W=t.GetBucket(x.nodeBucket[Z]);if(w.push(...W.getSideEffect()),G){r.emit(15,{path:$,key:String(Z),value:x.state[Z],calledBy:x.calledBy}),W.isForceNotify()&&(L=!0),(x.notifyKeys.size===0||x.notifyKeys.has(Z))&&ge(E);continue}let oe=W.evaluate({affectKey:Z,triggerUid:se,getProxyByUid:J=>t.GetNodeByUid(J).proxy,getStateByUid:J=>t.GetNodeByUid(J).state,GetToken:()=>P});if(oe instanceof Promise){let J=oe.then(pe=>{i.get(R)===P&&fe(pe,Z);});C.push(J);}else fe(oe,Z);}if(C.length>0)return Promise.all(C).then(()=>{de(w);}).catch(ce);de(w);return}catch(w){ce(w);}},Ge=async()=>{if(i.get(R)!==P){S=false;return}S=true;let E=c.getIsFirstFrame(),se=0,ae=()=>30,te=0,L=ae();try{for(;i.get(R)===P;){let x=te>=L,$=c.shouldYield();if(x||$){if(te>0&&(se++,(E||se%2===0)&&u.requestUpdate()),await c.yieldToMain(),i.get(R)!==P)break;te=0,E=c.getIsFirstFrame();}if(A>0&&Y<40){let j=T,I=0;for(let C=0;C<j;C++){let G=a[C];if((y[G]&1)===0)continue;if(Y>=40||te>=L||c.shouldYield()){for(let W=C;W<T;W++){let oe=a[W];y[oe]&1&&(a[I++]=oe);}T=I,A=I;break}let F=t.GetNodeByUid(G),de=t.GetPathByUid(G),ce=ee.get(G)??0,fe=e.GetPrevDependency(G),w=fe.length>1;if((!l||w)&&ce>re){y[G]&=-2,A--;let W=fe.filter(oe=>X[oe]===1&&(y[oe]&16)===0).length;q[G]=W||0,y[G]&2||(y[G]|=2,k[_++]=G,O++),n.path=de,n.type=W>0?4:5,M.targetLevel=ce,M.currentLevel=re,M.pendingParentsCount=W,r.emit(12,n);continue}y[G]&=-2,A--,(y[G]&32)===0&&(y[G]|=32,Y++),n.path=de,n.calledBy=F.calledBy,r.emit(8,n),Le(G,f),te++;}if(T>j){for(let C=j;C<T;C++){let G=a[C];y[G]&1&&(a[I++]=G);}T=I,A=T;}else T=I;if(A>0&&Y<40)continue}if(te<L&&l&&O>0&&Y<40){let j=!1,I=0,C=0;for(let G=0;G<_;G++){let F=k[G];if((y[F]&2)===0)continue;if(q[F]<=0&&I<L){let ce=ee.get(F)??0,fe=e.GetPrevDependency(F);if(ce<=re||fe.length<=1){y[F]&=-3,O--,y[F]&1||(y[F]|=1,a[T++]=F,A++),I++,j=!0;let w=t.GetPathByUid(F);n.path=w,n.type=4,r.emit(13,n);continue}}k[C++]=F;}if(_=C,I>0)continue;if(j){if(c.shouldYield()&&(await c.yieldToMain(),i.get(R)!==P))break;continue}}if(Y===0&&A===0){if(v.length>0){let I=!1,C=re,G=Array.from(new Set(v));v.length=0;for(let F of G){let de=t.GetNodeByUid(F),ce=ue(de);if(ce&&ce.length>0){I=!0,de.calledBy=1,K[F]=ce,y[F]&=-17,y[F]&2&&(y[F]&=-3,O--),y[F]&1||(y[F]|=1,a[T++]=F,A++);let fe=ee.get(de.uid)??0;fe<C&&(C=fe),ge(de.uid),u.flushPathSet.add(de.uid);}}if(I){if(C<re&&(re=C),u.requestUpdate(),c.shouldYield()&&(await c.yieldToMain(),i.get(R)!==P))break;continue}}let j=1/0;for(let I=0;I<b;I++){let C=D[I];if(y[C]&4){let G=V[C];G<j&&(j=G);}}for(let I=0;I<_;I++){let C=k[I];if(y[C]&2){let G=ee.get(C)??0;G>re&&G<j&&(j=G);}}if(j!==1/0&&j<=be){re=j;let I=0;for(let G=0;G<b;G++){let F=D[G];y[F]&4&&(V[F]===j?(y[F]&=-5,U--,y[F]&1||(y[F]|=1,a[T++]=F,A++)):D[I++]=F);}b=I;let C=0;for(let G=0;G<_;G++){let F=k[G];if(y[F]&2)if((ee.get(F)??0)===j){y[F]&=-3,O--,y[F]&1||(y[F]|=1,a[T++]=F,A++);let ce=t.GetPathByUid(F);n.path=ce,n.type=3,M.level=j,r.emit(13,n);}else k[C++]=F;}_=C;continue}else {for(let I=0;I<b;I++){let C=D[I];if(y[C]&4){y[C]|=16;let G=t.GetPathByUid(C);n.path=G,n.type=6,r.emit(12,n);}}b=0,U=0;for(let I=0;I<_;I++){let C=k[I];if(y[C]&2){y[C]|=16;let G=t.GetPathByUid(C);n.path=G,n.type=6,r.emit(12,n);}}_=0,O=0;break}}A>0&&Y>=40&&(n.type=2,r.emit(4,n));break}}finally{S=false;let x=Y+O+A,$=o.inFlightCount||0;if(!(s===P)){n.token=P,r.emit(3,n);return}if(u.requestUpdate(),x===0&&$===0){if(i.get(R)===P&&!ke){ke=true,n.type=1,r.emit(2,n),o.resetCounters(),K.fill(null);let I=performance.now();ye=-1,i.delete(R),n.token=P,n.duration=(I-Ce).toFixed(2.1)+"ms",r.emit(1,n),Promise.resolve().then(()=>{r.callOnSuccess();});}}else {let I=x===0&&$>0?3:1;if(n.type=I,M.nums=Y,M.asyncNums=$,r.emit(4,n),$>0){let C=()=>{s===P&&(o.inFlightCount===0?Be(()=>{o.inFlightCount===0?Ge():requestAnimationFrame(C);}):requestAnimationFrame(C));};requestAnimationFrame(C);}}}};Ge();},CancelTask:h}}function Ue(p){let{path:e,uid:t,type:r,meta:u,dirtySignal:c,state:i}=p,l=null,s=["path","uid","type","dependOn","nodeBucket"],M={path:e,uid:t,type:r,meta:u,dirtySignal:c,createView:(n={})=>{if(l&&Object.keys(n).length===0)return l;let N=new Proxy(n,{get(f,g){let m=g;return Reflect.has(f,g)?Reflect.get(f,g):m in p.state?p.state[m]:m in p?p[m]:u&&m in u?u[m]:Reflect.get(f,g)},set(f,g,m){return false},ownKeys(f){let g=new Set([...Reflect.ownKeys(f),...Object.keys(i||{}),...Object.keys(u||{}),...s]);return Array.from(g)},getOwnPropertyDescriptor(f,g){let m=g;return Reflect.has(f,g)||i&&m in i||u&&m in u||s.includes(m)?{enumerable:true,configurable:true}:Reflect.getOwnPropertyDescriptor(f,g)}});return l=N,N}};return "children"in p?{...M,children:p.children}:{...M,state:p.state,nodeBucket:p.nodeBucket,notifyKeys:p.notifyKeys,dependOn:p.dependOn,calledBy:0,get proxy(){return l}}}var tt=(p,e,t,r,u,c,i)=>{let l=p.useEntangleStep,s=[],h=[],M=new Set,n=r,g=t,m=0,P=0,R=100,S=()=>{let a={link:null,impactNode:null,impactUid:-1,hitTargetUids:null,isDirty:false,propose:null};return a.propose={set:(T,A,k=1)=>{A!==a.impactNode.state[T]&&(a.link.count++,(!h[a.impactUid]||h[a.impactUid].length===0)&&(h[a.impactUid]=[],P++),h[a.impactUid].push({key:T,value:A,weight:k}),a.isDirty||(a.hitTargetUids.push(a.impactUid),a.isDirty=true));},update:(T,A,k="add")=>{a.link.count++,(!h[a.impactUid]||h[a.impactUid].length===0)&&(h[a.impactUid]=[],P++),h[a.impactUid].push({key:T,delta:A,op:k,weight:1}),a.isDirty||(a.hitTargetUids.push(a.impactUid),a.isDirty=true);},patch:(T,A)=>{a.link.count++,(!h[a.impactUid]||h[a.impactUid].length===0)&&(h[a.impactUid]=[],P++),h[a.impactUid].push({key:T,patch:A,weight:1}),a.isDirty||(a.hitTargetUids.push(a.impactUid),a.isDirty=true);}},a},Q=Array.from({length:R},S),X=R-1,Y=(a,T,A)=>{let k=T.path,_=a.impact;if(a.count>=l){i.emit("entangle:blocked",{observer:k,target:_,count:a.count});return}let O=n(_),D=a.isProxy?T.proxy:T,b=a.isProxy?O.proxy:O;if(a.filter&&!a.filter(D,b))return;let U,K=true;X<0?(U=S(),K=false):U=Q[X--],U.isDirty=false,U.link=a,U.impactNode=O,U.impactUid=O.uid,U.hitTargetUids=A;let v=a.emit(D,b,U.propose);if(v instanceof Promise||v&&typeof v.then=="function")return m++,(async()=>{try{await v;}catch(o){i.emit("node:error",{path:k,error:o}),i.onError({path:k,error:o});}finally{m--,K&&(Q[++X]=U);}})();K&&(Q[++X]=U);};return {useEntangle:a=>{let{cause:T,impact:A,via:k,emit:_,filter:O,isProxy:D}=a;if(!k||k.length===0){i.emit("entangle:warn",{path:T,type:"no_keys"});return}let U=n(T).uid;s[U]||(s[U]=new Map);let K=s[U];for(let v=0;v<k.length;v++){let o=k[v];K.has(o)||K.set(o,[]),K.get(o).push({impact:A,emit:_,filter:O,count:0,isProxy:!!D});}},updateEntangleLevel:()=>{let a=g();M.clear();for(let T=0;T<s.length;T++)if(s[T]!==void 0){let A=a.get(T)||0;M.add(A);}},Turnstile:{volatileLevels:M,get inFlightCount(){return m},get hasPendingGhosts(){return P>0},hasObserver:a=>s[a]!==void 0,getTriggerKeys:a=>{let T=s[a];return T?Array.from(T.keys()):[]},receiveGhosts:(a,T=[])=>{let A=a.uid,k=[],_=s[A];if(!_||T.length===0)return k;let O=[];for(let v=0;v<T.length;v++){let o=_.get(T[v]);if(o)for(let d=0;d<o.length;d++)O.push(o[d]);}let D=0,b=false,U=null;for(;D<O.length;D++){if(e.shouldYield()){b=true;break}let v=Y(O[D],a,k);if(v){U=v,b=true,D++;break}}let K=()=>{if(k.length<=1)return k;let v=[],o=Object.create(null);for(let d=0;d<k.length;d++){let B=k[d];o[B]||(o[B]=true,v.push(B));}return v};return b?(async()=>{for(U&&await U,e.shouldYield()&&await e.yieldToMain();D<O.length;){let v=[],o=Math.min(D+R,O.length);for(;D<o;D++){let d=Y(O[D],a,k);d&&v.push(d);}v.length>0&&await Promise.all(v.map(async d=>{await d,e.shouldYield()&&await e.yieldToMain();})),e.shouldYield()&&await e.yieldToMain();}return K()})():K()},resolveGhosts:a=>{let T=a.uid,A=h[T];if(!A||A.length===0)return [];let k=[],_=Object.create(null);for(let O=0;O<A.length;O++){let D=A[O];_[D.key]||(_[D.key]=[]),_[D.key].push(D);}for(let O in _){let D=_[O],b=a.state[O],U,K=-1/0,v=false;for(let o=0;o<D.length;o++){let d=D[o];if(d.patch!==void 0&&(b=d.patch(b)),d.value!==void 0){let B=d.weight??1;B>=K&&(K=B,U=d.value,v=true);}}v&&(b=U);for(let o=0;o<D.length;o++){let d=D[o];if(d.delta!==void 0)switch(d.op||"add"){case "add":b=(typeof b=="number"?b:0)+d.delta;break;case "remove":b=Array.isArray(b)?b.filter(H=>H!==d.delta):b;break;case "intersect":b=Array.isArray(b)?b.filter(H=>d.delta.includes(H)):d.delta;break;case "union":{let H=Array.isArray(b)?b:[],ne=Array.isArray(d.delta)?d.delta:[d.delta];b=[...new Set([...H,...ne])];break}case "merge":{let H=typeof b=="object"&&b!==null&&!Array.isArray(b)?b:{},ne=typeof d.delta=="object"&&d.delta!==null&&!Array.isArray(d.delta)?d.delta:{};b={...H,...ne};break}}}Object.is(a.state[O],b)||(a.state[O]=b,k.push(O));}return h[T]=[],P--,k.length>0?k:[]},resetCounters:()=>{for(let a=0;a<s.length;a++){let T=s[a];if(T)for(let A of T.values())for(let k=0;k<A.length;k++)A[k].count=0;}}}}};function nt(p,e,t,r,u){let c=Je(),i=0,l=new Map,s=[],h=[],M=[],n=[],N=false,f=new Set,m=async()=>{let o=Array.from(f);if(f.clear(),"signalTrigger"in u&&typeof u.signalTrigger=="function")for(let d of o){let B=T(d);u.signalTrigger(B.dirtySignal);}else "emit"in u&&u.emit(o);},P=()=>{N||(N=true,requestAnimationFrame(()=>{try{for(;f.size>0;)m();}finally{N=false;}}));},{useEntangle:R,updateEntangleLevel:S,Turnstile:Q}=tt({useEntangleStep:p.useEntangleStep},c,e.GetUidToLevelMap,a,T,A,{emit:r.emit,onError:r.callOnError}),{TaskRunner:X,CancelTask:Y}=et({useGreedy:p.useGreedy},e,{GetNodeByPath:a,GetNodeByUid:T,GetPathByUid:A,GetBucket:O,GetMaxUid:D,Turnstile:Q},r,{requestUpdate:P,flushPathSet:f},c),y=o=>{throw new Error(`[MeshFlow] Duplicate Path: ${o}`)},q=o=>{l.has(o.path)&&y(String(o.path));let d=++i,B={path:o.path,getNode:le=>a(le)},H=(le,ue="value")=>{let Me=le({...B}),Se=a(o.path);if(t.createHistoryAction&&t.pushIntoHistory){let ye=t.createHistoryAction([{path:o.path,value:Se.state[ue]},{path:o.path,value:Me}],ee=>{let re=a(ee.path);re.state[ue]=ee.value,b(ee.path);});t.pushIntoHistory(ye);}Se.state[ue]=Me,b(o.path);},ne=Ue({uid:d,type:o.type,path:o.path,state:o.state,meta:o.meta,nodeBucket:{},dirtySignal:"signalCreator"in u?u.signalCreator():void 0,notifyKeys:o.notifyKeys,dependOn:H});return l.set(ne.path,d),M[d]=ne.path,s[d]=ne,ne},V=o=>{l.has(o.path)&&y(String(o.path));let d=++i,B=Ue({uid:d,type:o.type,path:o.path,state:{},meta:o,nodeBucket:{},children:o.children});return l.set(B.path,d),h[d]=B,B};function a(o){let d=l.get(o),B=s[d];if(!B)throw Error("Wrong id");return B}function T(o){let d=s[o];if(!d)throw Error("Wrong id");return d}function A(o){return M[o]}function k(o){let d=l.get(o);return h[d]}function _(o){return n.push(o)-1}function O(o){let d=n[o];if(!d)throw Error("Wrong id");return d}function D(){return i}let b=o=>{let d=a(o);if(!d)throw Error("Wrong id");f.add(d.uid),P();let B=e.GetNextDependency(d.uid);U(d.uid,B);};function U(o,d){X(o,d);}return {registerNode:q,registerGroupNode:V,GetNodeByPath:a,GetGroupByPath:k,notify:b,notifyAll:async()=>{Promise.resolve().then(async()=>{let o=e.GetDependencyOrder();if(!o||o.length===0)return;let d=o[0];try{X(null,d);}catch(B){throw r.callOnError(B),B}finally{P();}});},batchNotify:o=>{if(!o||o.length===0)return;if(t.createHistoryAction&&t.pushIntoHistory){let B=t.createHistoryAction([o.map(H=>({path:H.path,key:H.key,value:a(H.path).state[H.key]})),o.map(H=>({path:H.path,key:H.key,value:H.value}))],H=>{let ne=new Set;H.forEach(le=>{let ue=a(le.path);ue.state[le.key]=le.value,f.add(le.path),ne.add(le.uid);}),P(),ne.size>0&&X(null,Array.from(ne));});t.pushIntoHistory(B);}let d=new Set;o.forEach(B=>{let H=a(B.path);H.state[B.key]=B.value,f.add(H.uid),d.add(H.uid);}),P(),d.size>0&&X(null,Array.from(d));},useEntangle:R,updateEntangleLevel:S,SetBucket:_,GetBucket:O,CancelTask:Y,UITrigger:u,UidToNodeMap:s}}function rt(p,e){let t=false,r=false,u=false,c=false,i=new Map,l=[],s=[],h=[],M=[],n=[],N=[],f=[],g=new Map,{GetNextDependency:P,GetPrevDependency:R,GetAllPrevDependency:S,GetAllNextDependency:Q,rebuildDirectDependencyMaps:X}=ze(()=>l,()=>h,()=>N,()=>n),Y={},y={};if(e.modules.useHistory){let L=e.modules.useHistory,x;L.isMeshModuleInited?x=L:x=L();let{Undo:$,Redo:j,PushIntoHistory:I,CreateHistoryAction:C,updateUndoSize:G,updateRedoSize:F}=x();Y.pushIntoHistory=I,Y.createHistoryAction=C,y={Undo:$,Redo:j,updateUndoSize:G,updateRedoSize:F};}let q=!!e.modules.useMeshRenderGate,V={};if(q){let L=e.modules.useMeshRenderGate.isMeshModuleInited,x=e.modules.useMeshRenderGate;V=(L?x:x())(()=>ue);}let{onError:a,callOnError:T}=Qe(),{onSuccess:A,callOnSuccess:k}=$e(),{onStart:_,callOnStart:O}=Ze(),{emit:D,usePlugin:b,destroyPlugin:U}=Xe(),{SetTrace:K,useTrace:v}=je(),o=v();b(o);let d=q?{...V}:{...e.UITrigger},B=nt({useGreedy:e.config.useGreedy,useEntangleStep:e.config.useEntangleStep||100},{GetDependencyOrder:()=>f,GetAllNextDependency:Q,GetNextDependency:P,GetPrevDependency:R,GetAllPrevDependency:S,GetUidToLevelMap:()=>g},Y,{callOnError:T,callOnSuccess:k,callOnStart:O,emit:D},d),{SetBucket:H,GetBucket:ne,GetGroupByPath:le,GetNodeByPath:ue,notifyAll:Me,useEntangle:Se,updateEntangleLevel:ye,CancelTask:ee}=B;q&&V.init();let re={};if(e.modules.useInternalForm){let{uiSchema:L,GetFormData:x}=e.modules.useInternalForm(B,p);re={uiSchema:L,GetFormData:x};}let be={};if(e.modules.useSchemaValidators){let{SetValidators:L}=e.modules.useSchemaValidators(ue);be={SetValidators:L};}let{SetRule:ge,SetRules:Ae}=He(ue,H,ne,l,h,s,M,i),{SetStrategy:ve}=Ye(ue,ne),Ie=qe(l,i),Oe=()=>{let L=Ie();f=L.steps,g=L.levelMap,Te();},Te=()=>{u&&(ye(),u=false);},Ce=()=>{c||(c=true,Promise.resolve().then(Te).finally(()=>{c=false;}));},Ee=()=>{r||(r=true,Promise.resolve().then(()=>{if(Oe(),t){let{directNextMap:L,directPrevMap:x}=X(f.flat());n=L,N=x;}}).finally(()=>{r=false,t=false;}));};return {SetRule:(L,x,$,j)=>{ge(L,x,$,j),t=true,Ee();},SetRules:(L,x,$,j)=>{Ae(L,x,$,j),t=true,Ee();},SetStrategy:ve,useEntangle:L=>{Se(L),u=true,Ce();},SetTrace:K,usePlugin:b,SetValue:(L,x,$)=>{Te(),ue(L).dependOn(()=>$,x);},GetValue:(L,x="value")=>ue(L).proxy[x],SetValues:L=>{Te(),B.batchNotify(L);},GetGroupByPath:le,notifyAll:async()=>{Oe(),await Me();},GetAllDependency:()=>l,GetDependencyOrder:()=>f,historyExports:y,formExports:re,validatorExports:be,batchRenderExport:V,hasRenderGate:()=>q,onError:a,onSuccess:A,onStart:_,scheduler:B,destroyPlugin:U,CancelTask:ee}}var xe=new Map,at=(p,e,t)=>{try{if(xe.has(p))throw Error("engineID repeated");let r=rt(e,{config:t.config||{useGreedy:!1},UITrigger:t.UITrigger,modules:t.modules??{},plugins:{}}),{SetRule:u,SetRules:c,SetValues:i,SetStrategy:l,SetValue:s,GetValue:h,usePlugin:M,useEntangle:n,GetGroupByPath:N,notifyAll:f,SetTrace:g,GetAllDependency:m,GetDependencyOrder:P,historyExports:R,formExports:S,validatorExports:Q,batchRenderExport:X,hasRenderGate:Y,onError:y,onSuccess:q,onStart:V,scheduler:a,destroyPlugin:T,CancelTask:A}=r,k={config:{SetRule:u,SetRules:c,SetStrategy:l,notifyAll:f,SetTrace:g,usePlugin:M,hasRenderGate:Y,useEntangle:n},data:{SetValue:s,GetValue:h,SetValues:i,GetGroupByPath:N},dependency:{GetAllDependency:m,GetDependencyOrder:P},hooks:{onError:y,onSuccess:q,onStart:V}},_=(b,U,K)=>{!U||typeof U!="object"||Object.keys(U).forEach(v=>{let o=U[v];if(typeof o=="object"&&o!==null)b[v]=b[v]||{},_(b[v],o,K);else if(typeof o=="function"){let d=v;if(d==="useMeshRenderGate")d="render";else if(d.startsWith("use")){let B=d.slice(3);d=B.charAt(0).toLowerCase()+B.slice(1);}v==="useHistory"&&K.exports.history&&Object.keys(K.exports.history).length>0?b[d]=K.exports.history:v==="useInternalForm"&&K.exports.form&&Object.keys(K.exports.form).length>0?b[d]=K.exports.form:v==="useSchemaValidators"&&K.exports.validator&&Object.keys(K.exports.validator).length>0?b[d]=K.exports.validator:v==="useMeshRenderGate"&&K.exports.render?b[d]=K.exports.render:b[d]=o(K.scheduler,K.Schema);}});},O={...k,destroyPlugin:T,CancelTask:A,modules:{}},D=t.modules;return D&&_(O.modules,D,{scheduler:a,Schema:e,exports:{history:R,form:S,validator:Q,render:X}}),xe.set(p,O),O}catch(r){throw Error(r)}},yn=()=>(p,e,t)=>ot(p,e,t),fn=p=>{let e=xe.get(p);if(!e)throw Error("Engine not found.");return e},pn=p=>{let e=xe.get(p);e.destroyPlugin(),e.CancelTask(),xe.delete(p);},ot=at;exports.DefaultStrategy=Ve;exports.MeshFlowEventsName=we;exports.TriggerCause=Fe;exports.deleteEngine=pn;exports.useEngine=fn;exports.useEngineManager=at;exports.useMeshFlow=ot;exports.useMeshFlowDefiner=yn;exports.useScheduler=nt;
|
|
1
|
+
'use strict';var we=(M=>(M[M.FlowStart=0]="FlowStart",M[M.FlowSuccess=1]="FlowSuccess",M[M.FlowEnd=2]="FlowEnd",M[M.FlowAbort=3]="FlowAbort",M[M.FlowWait=4]="FlowWait",M[M.FlowFire=5]="FlowFire",M[M.NodeStart=6]="NodeStart",M[M.NodeSuccess=7]="NodeSuccess",M[M.NodeProcessing=8]="NodeProcessing",M[M.NodeError=9]="NodeError",M[M.NodePending=10]="NodePending",M[M.NodeRevive=11]="NodeRevive",M[M.NodeIntercept=12]="NodeIntercept",M[M.NodeRelease=13]="NodeRelease",M[M.NodeStagnate=14]="NodeStagnate",M[M.NodeBucketSuccess=15]="NodeBucketSuccess",M[M.EntangleWarn=16]="EntangleWarn",M[M.EntangleBlocked=17]="EntangleBlocked",M))(we||{}),ke=(r=>(r[r.CAUSALITY=0]="CAUSALITY",r[r.INVERSION=1]="INVERSION",r[r.REPERCUSSION=2]="REPERCUSSION",r))(ke||{});var _e=(r=>(r.OR="OR",r.PRIORITY="PRIORITY",r.MERGE="MERGE",r))(_e||{}),De=class{computedRules=[];getRuleResult(e,t,r){if(e.entityId==="__base__")return e.logic(t);if(!(!e._hasRun||r(e.triggerUids)))return e._lastResult;let c=e.logic(t);return c instanceof Promise?c.then(l=>(e._lastResult=l,e._hasRun=true,l)):(e._lastResult=c,e._hasRun=true,c)}store={OR:(e,t,r)=>{let i,c,l=this.computedRules;for(let s=0;s<l.length;s++){let o=l[s],g=this.getRuleResult(o,e,r);if(g instanceof Promise)return (async()=>{let n=await g;if(o.entityId==="__base__"?c=n:n&&(i=n),typeof i>"u")for(let S=s+1;S<l.length;S++){let f=l[S],m=this.getRuleResult(f,e,r),b=m instanceof Promise?await m:m;if(f.entityId==="__base__"){c=b;continue}if(b){i=f.value;break}}return typeof i>"u"&&(i=c),{res:i,version:t}})();let h=g;if(o.entityId==="__base__"){c=h;continue}if(h){i=o.value;break}}return typeof i>"u"&&(i=c),{res:i,version:t}},PRIORITY:(e,t,r)=>{let i,c=this.computedRules;for(let l=0;l<c.length;l++){let s=c[l],o=this.getRuleResult(s,e,r);if(o instanceof Promise)return (async()=>{let g=await o;if(g!==void 0)return {res:g,version:t};for(let h=l+1;h<c.length;h++){let n=c[h],S=this.getRuleResult(n,e,r),f=S instanceof Promise?await S:S;if(f!==void 0)return {res:f,version:t}}return {res:void 0,version:t}})();if(o!==void 0)return {res:o,version:t}}return {res:i,version:t}},MERGE:(e,t,r)=>{let i,c,l=this.computedRules,s=(g,h)=>g===void 0?h:h===void 0?g:Array.isArray(g)&&Array.isArray(h)?[...h,...g]:typeof g=="object"&&typeof h=="object"?{...h,...g}:g;for(let g=0;g<l.length;g++){let h=l[g],n=this.getRuleResult(h,e,r);if(n instanceof Promise)return (async()=>{let f=await n,m=(P,E)=>{if(P.entityId==="__base__")c=s(c,E);else if(E){let M=P.value!==void 0?P.value:E;i=s(i,M);}};m(h,f);for(let P=g+1;P<l.length;P++){let E=l[P],M=this.getRuleResult(E,e,r),z=M instanceof Promise?await M:M;m(E,z);}return {res:s(i,c),version:t}})();let S=n;if(h.entityId==="__base__"){c=s(c,S);continue}if(S){let f=h.value!==void 0?h.value:S;i=s(i,f);}}return {res:s(i,c),version:t}}};CurrentStrategy=()=>{};CurrentStrategyType="PRIORITY";getRules=()=>{};constructor(e){this.getRules=e,this.CurrentStrategy=this.store.PRIORITY,this.updateComputedRules();}updateComputedRules(){let e=this.getRules();this.CurrentStrategyType==="PRIORITY"||this.CurrentStrategyType==="MERGE"?this.computedRules=Array.from(e.values()).map(t=>Array.from(t)).flat().sort((t,r)=>r.priority-t.priority):this.computedRules=Array.from(e.values()).map(t=>Array.from(t)).flat();}setStrategy(e){this.CurrentStrategyType=e,this.CurrentStrategy=this.store[e],this.updateComputedRules();}evaluate(e,t,r){return this.CurrentStrategy(e,t,r)}},Ee=class{path;strategy;contract;rules=new Map;isValue=false;id=0;cache=void 0;pendingPromise=null;version=0;deps=new Map;_forceNotify=false;promiseToken=null;useCache=true;effectArray=[];constructor(e,t,r){let i=()=>this.rules;this.strategy=new De(i),this.path=r,this.isValue=t==="value",this.contract=this.inferType(e),this.cache=e,this.setRule({priority:0,entityId:"__base__",logic:()=>e});}setUseCache(e){this.useCache=e;}forceNotify(){this._forceNotify=true;}isForceNotify(){return this._forceNotify}setStrategy(e){this.strategy.setStrategy(e);}setDefaultRule(e){let t=new Set;t.add(e),this.rules.set(-1,t);}setRules(e,t){t&&this.updateDeps(t);let r=++this.id,i={...e,entityId:r};for(let c of e.triggerUids)this.rules.has(c)||this.rules.set(c,new Set),this.rules.get(c).add(i);return this.strategy.updateComputedRules(),()=>{for(let c of e.triggerUids){let l=this.rules.get(c);l&&(l.delete(i),l.size===0&&(this.rules.delete(c),this.deps.delete(c)));}this.strategy.updateComputedRules();}}updateDeps(e){for(let[t,r]of e)this.deps.set(t,r);}setRule(e,t){if(t&&this.updateDeps(t),typeof e.entityId=="string"){this.setDefaultRule(e);return}let r=++this.id,i={...e,entityId:r};if(e)for(let c of e.triggerUids)this.rules.has(c)||this.rules.set(c,new Set),this.rules.get(c).add(i);return this.strategy.updateComputedRules(),()=>{for(let c of e.triggerUids){let l=this.rules.get(c);l&&(l.delete(i),l.size===0&&(this.rules.delete(c),this.deps.delete(c)));}this.strategy.updateComputedRules();}}setSideEffect(e){this.effectArray.push(e);}getSideEffect(){return [...this.effectArray]}evaluate(e){let t=null;if(e.GetToken&&(t=e.GetToken()),this.pendingPromise&&this.promiseToken!==t&&(this.pendingPromise=null,this.promiseToken=null),this.pendingPromise)return this.pendingPromise;let r=false;if(typeof e.triggerUid=="number"){r=true;let s=this.deps.get(e.triggerUid),o=e.getStateByUid(e.triggerUid);if(typeof s=="object"||typeof o=="object")r=false;else {let g=Array.from(this.deps.keys());for(let h of g){let n=this.deps.get(h),S=e.getStateByUid(h);if(n!==S){r=false;break}}}}if(r&&this.useCache)return this.cache;this.promiseToken=t;let i=++this.version,c=s=>{if(!s||s.length===0)return true;for(let o of s){let g=this.deps.get(o),h=e.getStateByUid(o);if(g!==h)return true}return false},l=this.strategy.evaluate(e,i,c);if(!(l instanceof Promise)){let{res:s,version:o}=l;return this.finalizeSync(s,o,e,t)}return this.pendingPromise=(async()=>{try{let{res:s,version:o}=await l;return this.finalizeSync(s,o,e,t)}catch(s){throw {path:this.path,error:s}}finally{this.promiseToken===t&&(this.pendingPromise=null,this.promiseToken=null);}})(),this.pendingPromise}finalizeSync(e,t,r,i){return i!==this.promiseToken||t<this.version?this.cache:(this.cache=e,this.deps.forEach((c,l)=>{this.deps.set(l,r.getProxyByUid(l));}),e)}inferType(e){return Array.isArray(e)?"array":typeof e}};var Le=(p,e,t)=>{let i=c=>{let l=t.triggerUids.map(g=>{let h=c.getProxyByUid(g);if(t.triggerKeys.length===0)return h;let n={};return t.triggerKeys.forEach(S=>{n[S]=h[S];}),n}),s=Object.create(null);return Object.defineProperty(s,"triggerTargets",{get:()=>l}),Object.defineProperty(s,"affectedTatget",{get:()=>c.getProxyByUid(p)[e]}),t.logic({slot:s})};return {value:t.value,targetUid:p,triggerUids:t.triggerUids,priority:t.priority??10,logic:i}},He=(p,e,t,r,i,c,l,s)=>{if(!p)throw Error();let o=p,g=(S,f)=>{typeof r[S]>"u"&&(r[S]=[],c[S]=new Set),c[S].add(f),c[S].size>r[S].length&&r[S].push(f),typeof i[f]>"u"&&(i[f]=[],l[f]=new Set),l[f].add(S),l[f].size>i[f].length&&i[f].push(S);};return {SetRule:(S,f,m,b)=>{let P=o(S),E=o(f),M=b.triggerKeys||[],z=s.get(E.uid)||0,X=s.get(P.uid)||0;z+=1,X+=1,s.set(E.uid,z),s.set(P.uid,X);let Y=Le(E.uid,m,{...b,triggerUids:[P.uid],triggerKeys:M}),y=[S].map(_=>{let a=o(_);return [a.uid,a.state.value]});if(g(P.uid,E.uid),typeof E.nodeBucket[m]=="number"){let _=t(E.nodeBucket[m]);_.setRule(Y,y),b.effect&&_.setSideEffect({fn:b.effect,args:b.effectArgs?b.effectArgs:[m]});}else {let _=E.meta[m],a=new Ee(_,m,f);a.setRule(Y,y),b.effect&&a.setSideEffect({fn:b.effect,args:b.effectArgs?b.effectArgs:[m]}),E.nodeBucket[m]=e(a);}E.state[m]=E.meta[m];let Q=t(E.nodeBucket[m]);b.forceNotify&&Q.forceNotify(),b.cacheStrategy=="none"&&Q.setUseCache(false);},SetRules:(S,f,m,b)=>{let P=o(f),E=s.get(P.uid)||0;E+=1,s.set(P.uid,E);let M=[];for(let Q of S){let _=o(Q);M.push(_.uid);let a=s.get(_.uid)||0;a+=1,s.set(_.uid,a),g(_.uid,P.uid);}let z=b.triggerKeys||[],X=Le(P.uid,m,{...b,triggerUids:M,triggerKeys:z}),Y=S.map(Q=>{let _=o(Q);return [_.uid,_.state.value]});if(typeof P.nodeBucket[m]=="number"){let Q=t(P.nodeBucket[m]);Q.setRules(X,Y),b.effect&&Q.setSideEffect({fn:b.effect,args:b.effectArgs?b.effectArgs:[m]});}else {let Q=P.meta[m],_=new Ee(Q,m,f);_.setRules(X,Y),b.effect&&_.setSideEffect({fn:b.effect,args:b.effectArgs?b.effectArgs:[m]}),P.nodeBucket[m]=e(_);}P.state[m]=P.meta[m];let y=t(P.nodeBucket[m]);b.forceNotify&&y.forceNotify(),b.cacheStrategy=="none"&&y.setUseCache(false);}}};var Ye=(p,e)=>{let t=p||void 0;if(!t)throw Error();return {SetStrategy:(i,c,l)=>{let s=t(i);e(s.nodeBucket[c]).setStrategy(l);}}};function je(){let p=new Map,e=new Map,t=new Set,r=(l,s)=>{p.set(l,s);let o=e.get(l);o&&o(s);};return {SetTrace:(l,s)=>{e.set(l,s);let o=p.get(l)||"idle";return s(o),{cancel:()=>{e.delete(l);}}},useTrace:()=>({apply:s=>{s.on(0,()=>{t.forEach(o=>r(o,"idle")),t.clear(),p.clear();}),s.on(13,({path:o,type:g})=>{(g==1||g==2)&&(t.add(o),r(o,"pending"));}),s.on(10,({path:o})=>{t.add(o),(!p.has(o)||p.get(o)==="idle")&&r(o,"pending");}),s.on(6,({path:o})=>{t.add(o),r(o,"calculating");}),s.on(7,({path:o})=>{r(o,"calculated");}),s.on(12,({path:o,type:g})=>{g==3&&r(o,"calculating"),g==6&&r(o,"idle");}),s.on(14,({path:o})=>{r(o,"pending");}),s.on(9,({path:o})=>r(o,"error"));}})}}function ze(p,e,t,r){return {GetNextDependency:h=>r()[h]||[],GetPrevDependency:h=>t()[h]||[],GetAllPrevDependency:h=>e()[h]||[],GetAllNextDependency:h=>p()[h]||[],rebuildDirectDependencyMaps:h=>{let n=[],S=[],f=p();for(let m of h){let b=f[m]||[];n[m]=b;for(let P=0;P<b.length;P++){let E=b[P];typeof S[E]>"u"&&(S[E]=[]),S[E].push(m);}}return {directNextMap:n,directPrevMap:S}}}}function qe(p,e){let t=i=>{let c=[],l=[],s=new Map,o=i.size,g=0,h=0;for(let[n,S]of i)S===0&&l.push(n);if(l.length===0&&o>0)throw Error("Circular dependency detected");for(;l.length>0;){c.push([...l]);let n=[];for(let S of l){g++,s.set(S,h);let f=p[S];if(f)for(let m of f){let b=i.get(m)-1;i.set(m,b),b===0&&n.push(m);}}l=n,h++;}if(g<o)throw Error("Circular dependency detected");return {steps:c,levelMap:s}};return ()=>{let i=new Map;for(let c of e.keys()){let l=p[c]||[];i.has(c)||i.set(c,0);for(let s of l){let o=i.get(s)||0;i.set(s,++o);}}return t(i)}}var Ne=()=>{let p=[];return {on:e=>(p.push(e),()=>{let t=p.indexOf(e);t>-1&&p.splice(t,1);}),call:e=>p.forEach(t=>{t(e);})}};function Qe(){let{on:p,call:e}=Ne();return {onError:p,callOnError:e}}function $e(){let{on:p,call:e}=Ne();return {onSuccess:p,callOnSuccess:e}}var Xe=()=>{let p=new Set,e=new Map,t=new Set,r=(s,o)=>{e.get(s)?.forEach(g=>g(o));},i=(s,o)=>(e.has(s)||e.set(s,new Set),e.get(s).add(o),()=>e.get(s)?.delete(o));return {usePlugin:s=>{let o=new Set,g=(n,S)=>{let f=i(n,S);return o.add(f),f};s.apply({on:g}),p.add(s);let h=()=>{o.forEach(n=>n()),o.clear(),p.delete(s),t.delete(h);};return t.add(h),h},emit:r,destroyPlugin:()=>{t.forEach(s=>s()),t.clear(),e.clear(),p.clear();}}};function Ze(){let{on:p,call:e}=Ne();return {onStart:p,callOnStart:e}}var Je=(p={frameQuota:12})=>{let e=performance.now(),t=0,r=false,i=()=>!!navigator?.scheduling?.isInputPending?.({includeContinuous:true});return {getIsFirstFrame:()=>r,reset(){e=performance.now(),t=0,r=true;},shouldYield(){return !r&&(++t&15)!==0?false:!!(performance.now()-e>p.frameQuota||i())},async yieldToMain(){return new Promise(c=>{Be(()=>{e=performance.now(),t=0,r&&(r=false),c();});})}}},Be=p=>{let{port1:e,port2:t}=new MessageChannel;e.onmessage=p,t.postMessage(null);};function et(p,e,t,r,i,c){let l=new Map,s=p.useGreedy,o=null,g=()=>{l.clear();},h={path:null,level:0,targetLevel:0,currentLevel:0,pendingParentsCount:0,active:0,pending:0,blocked:0,nums:0,asyncNums:0},n={path:null,type:0,triggerPath:null,calledBy:0,key:null,value:null,error:null,token:null,duration:null,detail:h};return {TaskRunner:async(f,m)=>{let P=Symbol("token"),E=typeof f=="number"?f:"__NOTIFY_ALL__";l.set(E,P),o=P;let M=false;c.reset();let z=t.GetMaxUid()+3,X=new Array(z).fill(0),Y=0,y=new Uint8Array(z),Q=new Int32Array(z),_=new Int32Array(z),a=new Int32Array(z*2),N=0,A=0,C=new Int32Array(z*2),L=0,O=0,D=new Int32Array(z*2),T=0,U=0;m.forEach(R=>{X[R]=1,e.GetAllNextDependency(R).forEach(se=>{X[se]=1;});});let K=new Array(z).fill(null),v=[],u=t.Turnstile,d=new Array(z).fill(null).map(()=>[]),B=new Array(z).fill(null).map(()=>[]),H=u.volatileLevels.size>0,ne=H?u.hasObserver:R=>false,le=H?u.receiveGhosts:()=>[],ue=H?u.resolveGhosts:()=>[],Me=H?u.getTriggerKeys:()=>[],Se=u?.volatileLevels||new Set,ye=-1,ee=e.GetUidToLevelMap(),re=0,be=0,ge=R=>{e.GetAllNextDependency(R).forEach(ae=>{let te=ee.get(ae)||0;te>be&&(be=te);});},Ae=new Set;typeof f=="number"&&(y[f]|=16,Ae.add(f),ge(f),i.flushPathSet.add(f));let ve=typeof f=="number"?[f]:m;c.shouldYield()&&(i.requestUpdate(),await c.yieldToMain());let Ie=ve.map(async R=>{if(ne(R)){let se=t.GetNodeByUid(R),ae=Me(R);if(ae.length>0){let te=le(se,ae);return te instanceof Promise&&(te=await te),{seed:R,hitTargets:te}}}return {seed:R,hitTargets:[]}});if((await Promise.all(Ie)).forEach(({seed:R,hitTargets:se})=>{if(se&&se.length>0){v.push(...se);let ae=ee.get(R)||0;ye=Math.max(ye,ae);}}),(v.length>0||ve.length>1)&&(i.requestUpdate(),await c.yieldToMain(),l.get(E)!==P))return;let Te=v.length>0;m.forEach(R=>{if(!Ae.has(R))if(Te){let se=ee.get(R)??0;_[R]=se,y[R]&4||(y[R]|=4,D[T++]=R,U++);let ae=t.GetPathByUid(R);n.path=ae,n.type=2,r.emit(14,n);}else y[R]&1||(y[R]|=1,a[N++]=R,A++),ge(R);}),typeof f=="number"?re=ee.get(f)??0:re=Math.min(...m.map(R=>ee.get(R)??0));let Fe=performance.now(),Re=typeof E=="number"?t.GetPathByUid(E):"__NOTIFY_ALL__";n.path=Re,n.token=P,r.emit(0,n),r.callOnStart({path:Re});let Ce=false,Ke=30,Ve=(R,se)=>{let ae=false,te=false,V=false,x=t.GetNodeByUid(R),$=t.GetPathByUid(R),j=x.calledBy,I=d[R];I.length=0;let F=B[R];F.length=0;let G=false;if(x.calledBy===1){G=true,ae=true,i.flushPathSet.add(R);let w=K[R];w&&(I.push(...w),K[R]=null);}let k=(w,Z)=>{let W=ee.get(w)??0,oe=t.GetNodeByUid(w),J=t.GetPathByUid(w),pe=(j===1||j===2)&&W<=ye;pe&&y[w]&16&&(y[w]&=-17,n.path=J,n.triggerPath=$,r.emit(11,n));let ie=0;if(!(y[w]&49)){if(y[w]&2)ie=Q[w]-1;else {if(W>re&&O>Ke){_[w]=W,y[w]&4||(y[w]|=4,D[T++]=w,U++),n.path=J,n.type=7,r.emit(12,n);return}let me=e.GetPrevDependency(w),q=0;for(let he of me){if(y[he]&16)continue;(ee.get(he)??0)>re&&q++;}ie=q;}if(ie<=0){let me=(y[w]&1)!==0,q=(y[w]&32)!==0;if(me||q){n.path=J,n.type=q?3:3.1,r.emit(12,n);return}y[w]&2&&(y[w]&=-3,O--),pe?oe.calledBy=2:oe.calledBy=0,y[w]&1||(y[w]|=1,a[N++]=w,A++),n.path=J,n.type=Z,h.path=$,r.emit(13,n);}else Q[w]=ie,y[w]&2||(y[w]|=2,C[L++]=w,O++);}},de=(w=[])=>{if(l.get(E)!==P)return;if(w.length){let W={},oe=x.proxy;for(let J of w){let pe=(J.args||[]).reduce((ie,me)=>(ie[me]=oe[me],ie),{});try{let ie=J.fn(pe);ie&&typeof ie=="object"&&Object.assign(W,ie);}catch(ie){}}for(let J in W)if(J in x.state)Object.is(x.state[J],W[J])||(x.state[J]=W[J],I.push(J),ae=true,(x.notifyKeys.size===0||x.notifyKeys.has(J))&&(te=true));else throw {error:`wrong effect in ${String(x.path)}`}}ae&&i.flushPathSet.add(R);let Z=(W=[])=>{if(l.get(E)!==P)return;W&&W.length>0&&(v.push(...W),ye=Math.max(ye,ee.get(R)||0)),I.length=0,n.path=$,n.calledBy=x.calledBy,r.emit(7,n),y[R]|=16;let oe=e.GetNextDependency(R);(te||V)&&(ge(R),e.GetAllNextDependency(R).forEach(he=>{X[he]=1;}));let J=t.GetNodeByUid(R),pe=ee.get(R)??0,ie=Se.has(pe)||v.length>0;for(let q of oe){let he=ee.get(q)??0,Pe=t.GetPathByUid(q);if(ie&&he>=pe){_[q]=he,y[q]&4||(y[q]|=4,D[T++]=q,U++),n.path=Pe,n.type=2,r.emit(14,n);continue}if(y[q]&16){n.path=Pe,n.type=2,r.emit(12,n);continue}if(y[q]&32||(y[q]&1)!==0){n.path=Pe,n.type=y[q]&32?3:3.1,r.emit(12,n);continue}if(te||V)k(q,1);else if(y[q]&2)k(q,2);else {let st=ee.get(q);_[q]=st,y[q]&4||(y[q]|=4,D[T++]=q,U++,n.path=Pe,n.type=1,r.emit(14,n));}}y[R]&32&&(y[R]&=-33,Y--),J.calledBy=0,(()=>{if(!M){M=true;let q=Y,he=A,Pe=O;n.path=$,n.type=1,h.active=q,h.pending=he,h.blocked=Pe,r.emit(5,n),Ge();}})();};if(ne(R)&&I.length>0){let W=le(x,I);W instanceof Promise?W.then(Z).catch(ce):Z(W);}else Z([]);},ce=w=>{n.path=$,n.error=w,r.emit(9,n);let Z=Symbol("abort");l.set(E,Z),N=0,A=0,L=0,O=0,T=0,U=0,y.fill(0),Y=0,K.fill(null),r.callOnError(w);},fe=(w,Z)=>{w!==x.state[Z]&&(x.state[Z]=w,ae=true,I.push(String(Z)),n.path=$,n.key=Z,n.value=w,n.calledBy=x.calledBy,r.emit(15,n),(x.notifyKeys.size===0||x.notifyKeys.has(Z))&&(te=true)),t.GetBucket(x.nodeBucket[Z]).isForceNotify()&&(V=true),(te||V)&&ge(R);};n.path=$,n.calledBy=x.calledBy,r.emit(6,n);try{let w=[];for(let Z in x.nodeBucket){let W=t.GetBucket(x.nodeBucket[Z]);if(w.push(...W.getSideEffect()),G){r.emit(15,{path:$,key:String(Z),value:x.state[Z],calledBy:x.calledBy}),W.isForceNotify()&&(V=!0),(x.notifyKeys.size===0||x.notifyKeys.has(Z))&&ge(R);continue}let oe=W.evaluate({affectKey:Z,triggerUid:se,getProxyByUid:J=>t.GetNodeByUid(J).proxy,getStateByUid:J=>t.GetNodeByUid(J).state,GetToken:()=>P});if(oe instanceof Promise){let J=oe.then(pe=>{l.get(E)===P&&fe(pe,Z);});F.push(J);}else fe(oe,Z);}if(F.length>0)return Promise.all(F).then(()=>{de(w);}).catch(ce);de(w);return}catch(w){ce(w);}},Ge=async()=>{if(l.get(E)!==P){M=false;return}M=true;let R=c.getIsFirstFrame(),se=0,ae=()=>30,te=0,V=ae();try{for(;l.get(E)===P;){let x=te>=V,$=c.shouldYield();if(x||$){if(te>0&&(se++,(R||se%2===0)&&i.requestUpdate()),await c.yieldToMain(),l.get(E)!==P)break;te=0,R=c.getIsFirstFrame();}if(A>0&&Y<40){let j=N,I=0;for(let F=0;F<j;F++){let G=a[F];if((y[G]&1)===0)continue;if(Y>=40||te>=V||c.shouldYield()){for(let W=F;W<N;W++){let oe=a[W];y[oe]&1&&(a[I++]=oe);}N=I,A=I;break}let k=t.GetNodeByUid(G),de=t.GetPathByUid(G),ce=ee.get(G)??0,fe=e.GetPrevDependency(G),w=fe.length>1;if((!s||w)&&ce>re){y[G]&=-2,A--;let W=fe.filter(oe=>X[oe]===1&&(y[oe]&16)===0).length;Q[G]=W||0,y[G]&2||(y[G]|=2,C[L++]=G,O++),n.path=de,n.type=W>0?4:5,h.targetLevel=ce,h.currentLevel=re,h.pendingParentsCount=W,r.emit(12,n);continue}y[G]&=-2,A--,(y[G]&32)===0&&(y[G]|=32,Y++),n.path=de,n.calledBy=k.calledBy,r.emit(8,n),Ve(G,f),te++;}if(N>j){for(let F=j;F<N;F++){let G=a[F];y[G]&1&&(a[I++]=G);}N=I,A=N;}else N=I;if(A>0&&Y<40)continue}if(te<V&&s&&O>0&&Y<40){let j=!1,I=0,F=0;for(let G=0;G<L;G++){let k=C[G];if((y[k]&2)===0)continue;if(Q[k]<=0&&I<V){let ce=ee.get(k)??0,fe=e.GetPrevDependency(k);if(ce<=re||fe.length<=1){y[k]&=-3,O--,y[k]&1||(y[k]|=1,a[N++]=k,A++),I++,j=!0;let w=t.GetPathByUid(k);n.path=w,n.type=4,r.emit(13,n);continue}}C[F++]=k;}if(L=F,I>0)continue;if(j){if(c.shouldYield()&&(await c.yieldToMain(),l.get(E)!==P))break;continue}}if(Y===0&&A===0){if(v.length>0){let I=!1,F=re,G=Array.from(new Set(v));v.length=0;for(let k of G){let de=t.GetNodeByUid(k),ce=ue(de);if(ce&&ce.length>0){I=!0,de.calledBy=1,K[k]=ce,y[k]&=-17,y[k]&2&&(y[k]&=-3,O--),y[k]&1||(y[k]|=1,a[N++]=k,A++);let fe=ee.get(de.uid)??0;fe<F&&(F=fe),ge(de.uid),i.flushPathSet.add(de.uid);}}if(I){if(F<re&&(re=F),i.requestUpdate(),c.shouldYield()&&(await c.yieldToMain(),l.get(E)!==P))break;continue}}let j=1/0;for(let I=0;I<T;I++){let F=D[I];if(y[F]&4){let G=_[F];G<j&&(j=G);}}for(let I=0;I<L;I++){let F=C[I];if(y[F]&2){let G=ee.get(F)??0;G>re&&G<j&&(j=G);}}if(j!==1/0&&j<=be){re=j;let I=0;for(let G=0;G<T;G++){let k=D[G];y[k]&4&&(_[k]===j?(y[k]&=-5,U--,y[k]&1||(y[k]|=1,a[N++]=k,A++)):D[I++]=k);}T=I;let F=0;for(let G=0;G<L;G++){let k=C[G];if(y[k]&2)if((ee.get(k)??0)===j){y[k]&=-3,O--,y[k]&1||(y[k]|=1,a[N++]=k,A++);let ce=t.GetPathByUid(k);n.path=ce,n.type=3,h.level=j,r.emit(13,n);}else C[F++]=k;}L=F;continue}else {for(let I=0;I<T;I++){let F=D[I];if(y[F]&4){y[F]|=16;let G=t.GetPathByUid(F);n.path=G,n.type=6,r.emit(12,n);}}T=0,U=0;for(let I=0;I<L;I++){let F=C[I];if(y[F]&2){y[F]|=16;let G=t.GetPathByUid(F);n.path=G,n.type=6,r.emit(12,n);}}L=0,O=0;break}}A>0&&Y>=40&&(n.type=2,r.emit(4,n));break}}finally{M=false;let x=Y+O+A,$=u.inFlightCount||0;if(!(o===P)){n.token=P,r.emit(3,n);return}if(i.requestUpdate(),x===0&&$===0){if(l.get(E)===P&&!Ce){Ce=true,n.type=1,r.emit(2,n),u.resetCounters(),K.fill(null);let I=performance.now();ye=-1,l.delete(E),n.token=P,n.duration=(I-Fe).toFixed(2.1)+"ms",r.emit(1,n),Promise.resolve().then(()=>{r.callOnSuccess();});}}else {let I=x===0&&$>0?3:1;if(n.type=I,h.nums=Y,h.asyncNums=$,r.emit(4,n),$>0){let F=()=>{o===P&&(u.inFlightCount===0?Be(()=>{u.inFlightCount===0?Ge():requestAnimationFrame(F);}):requestAnimationFrame(F));};requestAnimationFrame(F);}}}};Ge();},CancelTask:g}}function Ue(p){let{path:e,uid:t,type:r,meta:i,dirtySignal:c,state:l}=p,s=null,o=["path","uid","type","dependOn","nodeBucket"],h={path:e,uid:t,type:r,meta:i,dirtySignal:c,createView:(n={})=>{if(s&&Object.keys(n).length===0)return s;let S=new Proxy(n,{get(f,m){let b=m;return Reflect.has(f,m)?Reflect.get(f,m):b in p.state?p.state[b]:b in p?p[b]:i&&b in i?i[b]:Reflect.get(f,m)},set(f,m,b){return false},ownKeys(f){let m=new Set([...Reflect.ownKeys(f),...Object.keys(l||{}),...Object.keys(i||{}),...o]);return Array.from(m)},getOwnPropertyDescriptor(f,m){let b=m;return Reflect.has(f,m)||l&&b in l||i&&b in i||o.includes(b)?{enumerable:true,configurable:true}:Reflect.getOwnPropertyDescriptor(f,m)}});return s=S,S}};return "children"in p?{...h,children:p.children}:{...h,state:p.state,nodeBucket:p.nodeBucket,notifyKeys:p.notifyKeys,dependOn:p.dependOn,calledBy:0,get proxy(){return s}}}var tt=(p,e,t,r,i,c,l)=>{let s=p.useEntangleStep,o=[],g=[],h=new Set,n=r,m=t,b=0,P=0,E=100,M=()=>{let a={link:null,impactNode:null,impactUid:-1,hitTargetUids:null,isDirty:false,propose:null};return a.propose={set:(N,A,C=1)=>{A!==a.impactNode.state[N]&&(a.link.count++,(!g[a.impactUid]||g[a.impactUid].length===0)&&(g[a.impactUid]=[],P++),g[a.impactUid].push({key:N,value:A,weight:C}),a.isDirty||(a.hitTargetUids.push(a.impactUid),a.isDirty=true));},update:(N,A,C="add")=>{a.link.count++,(!g[a.impactUid]||g[a.impactUid].length===0)&&(g[a.impactUid]=[],P++),g[a.impactUid].push({key:N,delta:A,op:C,weight:1}),a.isDirty||(a.hitTargetUids.push(a.impactUid),a.isDirty=true);},patch:(N,A)=>{a.link.count++,(!g[a.impactUid]||g[a.impactUid].length===0)&&(g[a.impactUid]=[],P++),g[a.impactUid].push({key:N,patch:A,weight:1}),a.isDirty||(a.hitTargetUids.push(a.impactUid),a.isDirty=true);}},a},z=Array.from({length:E},M),X=E-1,Y=(a,N,A)=>{let C=N.path,L=a.impact;if(a.count>=s){l.emit("entangle:blocked",{observer:C,target:L,count:a.count});return}let O=n(L),D=a.isProxy?N.proxy:N,T=a.isProxy?O.proxy:O;if(a.filter&&!a.filter(D,T))return;let U,K=true;X<0?(U=M(),K=false):U=z[X--],U.isDirty=false,U.link=a,U.impactNode=O,U.impactUid=O.uid,U.hitTargetUids=A;let v=a.emit(D,T,U.propose);if(v instanceof Promise||v&&typeof v.then=="function")return b++,(async()=>{try{await v;}catch(u){l.emit("node:error",{path:C,error:u}),l.onError({path:C,error:u});}finally{b--,K&&(z[++X]=U);}})();K&&(z[++X]=U);};return {useEntangle:a=>{let{cause:N,impact:A,via:C,emit:L,filter:O,isProxy:D}=a;if(!C||C.length===0){l.emit("entangle:warn",{path:N,type:"no_keys"});return}let U=n(N).uid;o[U]||(o[U]=new Map);let K=o[U];for(let v=0;v<C.length;v++){let u=C[v];K.has(u)||K.set(u,[]),K.get(u).push({impact:A,emit:L,filter:O,count:0,isProxy:!!D});}},updateEntangleLevel:()=>{let a=m();h.clear();for(let N=0;N<o.length;N++)if(o[N]!==void 0){let A=a.get(N)||0;h.add(A);}},Turnstile:{volatileLevels:h,get inFlightCount(){return b},get hasPendingGhosts(){return P>0},hasObserver:a=>o[a]!==void 0,getTriggerKeys:a=>{let N=o[a];return N?Array.from(N.keys()):[]},receiveGhosts:(a,N=[])=>{let A=a.uid,C=[],L=o[A];if(!L||N.length===0)return C;let O=[];for(let v=0;v<N.length;v++){let u=L.get(N[v]);if(u)for(let d=0;d<u.length;d++)O.push(u[d]);}let D=0,T=false,U=null;for(;D<O.length;D++){if(e.shouldYield()){T=true;break}let v=Y(O[D],a,C);if(v){U=v,T=true,D++;break}}let K=()=>{if(C.length<=1)return C;let v=[],u=Object.create(null);for(let d=0;d<C.length;d++){let B=C[d];u[B]||(u[B]=true,v.push(B));}return v};return T?(async()=>{for(U&&await U,e.shouldYield()&&await e.yieldToMain();D<O.length;){let v=[],u=Math.min(D+E,O.length);for(;D<u;D++){let d=Y(O[D],a,C);d&&v.push(d);}v.length>0&&await Promise.all(v.map(async d=>{await d,e.shouldYield()&&await e.yieldToMain();})),e.shouldYield()&&await e.yieldToMain();}return K()})():K()},resolveGhosts:a=>{let N=a.uid,A=g[N];if(!A||A.length===0)return [];let C=[],L=Object.create(null);for(let O=0;O<A.length;O++){let D=A[O];L[D.key]||(L[D.key]=[]),L[D.key].push(D);}for(let O in L){let D=L[O],T=a.state[O],U,K=-1/0,v=false;for(let u=0;u<D.length;u++){let d=D[u];if(d.patch!==void 0&&(T=d.patch(T)),d.value!==void 0){let B=d.weight??1;B>=K&&(K=B,U=d.value,v=true);}}v&&(T=U);for(let u=0;u<D.length;u++){let d=D[u];if(d.delta!==void 0)switch(d.op||"add"){case "add":T=(typeof T=="number"?T:0)+d.delta;break;case "remove":T=Array.isArray(T)?T.filter(H=>H!==d.delta):T;break;case "intersect":T=Array.isArray(T)?T.filter(H=>d.delta.includes(H)):d.delta;break;case "union":{let H=Array.isArray(T)?T:[],ne=Array.isArray(d.delta)?d.delta:[d.delta];T=[...new Set([...H,...ne])];break}case "merge":{let H=typeof T=="object"&&T!==null&&!Array.isArray(T)?T:{},ne=typeof d.delta=="object"&&d.delta!==null&&!Array.isArray(d.delta)?d.delta:{};T={...H,...ne};break}}}Object.is(a.state[O],T)||(a.state[O]=T,C.push(O));}return g[N]=[],P--,C.length>0?C:[]},resetCounters:()=>{for(let a=0;a<o.length;a++){let N=o[a];if(N)for(let A of N.values())for(let C=0;C<A.length;C++)A[C].count=0;}}}}};function nt(p,e,t,r,i){let c=Je(),l=0,s=new Map,o=[],g=[],h=[],n=[],S=false,f=new Set,b=async()=>{let u=Array.from(f);if(f.clear(),"signalTrigger"in i&&typeof i.signalTrigger=="function")for(let d of u){let B=N(d);i.signalTrigger(B.dirtySignal);}else "emit"in i&&i.emit(u);},P=()=>{S||(S=true,requestAnimationFrame(()=>{try{for(;f.size>0;)b();}finally{S=false;}}));},{useEntangle:E,updateEntangleLevel:M,Turnstile:z}=tt({useEntangleStep:p.useEntangleStep},c,e.GetUidToLevelMap,a,N,A,{emit:r.emit,onError:r.callOnError}),{TaskRunner:X,CancelTask:Y}=et({useGreedy:p.useGreedy},e,{GetNodeByPath:a,GetNodeByUid:N,GetPathByUid:A,GetBucket:O,GetMaxUid:D,Turnstile:z},r,{requestUpdate:P,flushPathSet:f},c),y=u=>{throw new Error(`[MeshFlow] Duplicate Path: ${u}`)},Q=u=>{s.has(u.path)&&y(String(u.path));let d=++l,B={path:u.path,getNode:le=>a(le)},H=(le,ue="value")=>{let Me=le({...B}),Se=a(u.path);if(t.createHistoryAction&&t.pushIntoHistory){let ye=t.createHistoryAction([{path:u.path,value:Se.state[ue]},{path:u.path,value:Me}],ee=>{let re=a(ee.path);re.state[ue]=ee.value,T(ee.path);});t.pushIntoHistory(ye);}Se.state[ue]=Me,T(u.path);},ne=Ue({uid:d,type:u.type,path:u.path,state:u.state,meta:u.meta,nodeBucket:{},dirtySignal:"signalCreator"in i?i.signalCreator():void 0,notifyKeys:u.notifyKeys,dependOn:H});return s.set(ne.path,d),h[d]=ne.path,o[d]=ne,ne},_=u=>{s.has(u.path)&&y(String(u.path));let d=++l,B=Ue({uid:d,type:u.type,path:u.path,state:{},meta:u,nodeBucket:{},children:u.children});return s.set(B.path,d),g[d]=B,B};function a(u){let d=s.get(u),B=o[d];if(!B)throw Error("Wrong id");return B}function N(u){let d=o[u];if(!d)throw Error("Wrong id");return d}function A(u){return h[u]}function C(u){let d=s.get(u);return g[d]}function L(u){return n.push(u)-1}function O(u){let d=n[u];if(!d)throw Error("Wrong id");return d}function D(){return l}let T=u=>{let d=a(u);if(!d)throw Error("Wrong id");f.add(d.uid),P();let B=e.GetNextDependency(d.uid);U(d.uid,B);};function U(u,d){X(u,d);}return {registerNode:Q,registerGroupNode:_,GetNodeByPath:a,GetGroupByPath:C,notify:T,notifyAll:async()=>{Promise.resolve().then(async()=>{let u=e.GetDependencyOrder();if(!u||u.length===0)return;let d=u[0];try{X(null,d);}catch(B){throw r.callOnError(B),B}finally{P();}});},batchNotify:u=>{if(!u||u.length===0)return;if(t.createHistoryAction&&t.pushIntoHistory){let B=t.createHistoryAction([u.map(H=>({path:H.path,key:H.key,value:a(H.path).state[H.key]})),u.map(H=>({path:H.path,key:H.key,value:H.value}))],H=>{let ne=new Set;H.forEach(le=>{let ue=a(le.path);ue.state[le.key]=le.value,f.add(le.path),ne.add(le.uid);}),P(),ne.size>0&&X(null,Array.from(ne));});t.pushIntoHistory(B);}let d=new Set;u.forEach(B=>{let H=a(B.path);H.state[B.key]=B.value,f.add(H.uid),d.add(H.uid);}),P(),d.size>0&&X(null,Array.from(d));},useEntangle:E,updateEntangleLevel:M,SetBucket:L,GetBucket:O,CancelTask:Y,UITrigger:i,UidToNodeMap:o}}function rt(p,e){let t=false,r=false,i=false,c=false,l=new Map,s=[],o=[],g=[],h=[],n=[],S=[],f=[],m=new Map,{GetNextDependency:P,GetPrevDependency:E,GetAllPrevDependency:M,GetAllNextDependency:z,rebuildDirectDependencyMaps:X}=ze(()=>s,()=>g,()=>S,()=>n),Y={},y={};if(e.modules.useHistory){let V=e.modules.useHistory,x;V.isMeshModuleInited?x=V:x=V();let{Undo:$,Redo:j,PushIntoHistory:I,CreateHistoryAction:F,updateUndoSize:G,updateRedoSize:k}=x();Y.pushIntoHistory=I,Y.createHistoryAction=F,y={Undo:$,Redo:j,updateUndoSize:G,updateRedoSize:k};}let Q=!!e.modules.useMeshRenderGate,_={};if(Q){let V=e.modules.useMeshRenderGate.isMeshModuleInited,x=e.modules.useMeshRenderGate;_=(V?x:x())(()=>ue);}let{onError:a,callOnError:N}=Qe(),{onSuccess:A,callOnSuccess:C}=$e(),{onStart:L,callOnStart:O}=Ze(),{emit:D,usePlugin:T,destroyPlugin:U}=Xe(),{SetTrace:K,useTrace:v}=je(),u=v();T(u);let d=Q?{..._}:{...e.UITrigger},B=nt({useGreedy:e.config.useGreedy,useEntangleStep:e.config.useEntangleStep||100},{GetDependencyOrder:()=>f,GetAllNextDependency:z,GetNextDependency:P,GetPrevDependency:E,GetAllPrevDependency:M,GetUidToLevelMap:()=>m},Y,{callOnError:N,callOnSuccess:C,callOnStart:O,emit:D},d),{SetBucket:H,GetBucket:ne,GetGroupByPath:le,GetNodeByPath:ue,notifyAll:Me,useEntangle:Se,updateEntangleLevel:ye,CancelTask:ee}=B;Q&&_.init();let re={};if(e.modules.useInternalForm){let{uiSchema:V,GetFormData:x}=e.modules.useInternalForm(B,p);re={uiSchema:V,GetFormData:x};}let be={};if(e.modules.useSchemaValidators){let{SetValidators:V}=e.modules.useSchemaValidators(ue);be={SetValidators:V};}let{SetRule:ge,SetRules:Ae}=He(ue,H,ne,s,g,o,h,l),{SetStrategy:ve}=Ye(ue,ne),Ie=qe(s,l),Oe=()=>{let V=Ie();f=V.steps,m=V.levelMap,Te();},Te=()=>{i&&(ye(),i=false);},Fe=()=>{c||(c=true,Promise.resolve().then(Te).finally(()=>{c=false;}));},Re=()=>{r||(r=true,Promise.resolve().then(()=>{if(Oe(),t){let{directNextMap:V,directPrevMap:x}=X(f.flat());n=V,S=x;}}).finally(()=>{r=false,t=false;}));};return {SetRule:(V,x,$,j)=>{ge(V,x,$,j),t=true,Re();},SetRules:(V,x,$,j)=>{Ae(V,x,$,j),t=true,Re();},SetStrategy:ve,useEntangle:V=>{Se(V),i=true,Fe();},SetTrace:K,usePlugin:T,SetValue:(V,x,$)=>{Te(),ue(V).dependOn(()=>$,x);},GetValue:(V,x="value")=>ue(V).proxy[x],SetValues:V=>{Te(),B.batchNotify(V);},GetGroupByPath:le,notifyAll:async()=>{Oe(),await Me();},GetAllDependency:()=>s,GetDependencyOrder:()=>f,historyExports:y,formExports:re,validatorExports:be,batchRenderExport:_,hasRenderGate:()=>Q,onError:a,onSuccess:A,onStart:L,scheduler:B,destroyPlugin:U,CancelTask:ee}}var xe=new Map,at=(p,e,t)=>{try{if(xe.has(p))throw Error("engineID repeated");let r=rt(e,{config:t.config||{useGreedy:!1},UITrigger:t.UITrigger,modules:t.modules??{},plugins:{}}),{SetRule:i,SetRules:c,SetValues:l,SetStrategy:s,SetValue:o,GetValue:g,usePlugin:h,useEntangle:n,GetGroupByPath:S,notifyAll:f,SetTrace:m,GetAllDependency:b,GetDependencyOrder:P,historyExports:E,formExports:M,validatorExports:z,batchRenderExport:X,hasRenderGate:Y,onError:y,onSuccess:Q,onStart:_,scheduler:a,destroyPlugin:N,CancelTask:A}=r,C={config:{SetRule:i,SetRules:c,SetStrategy:s,notifyAll:f,SetTrace:m,usePlugin:h,hasRenderGate:Y,useEntangle:n},data:{SetValue:o,GetValue:g,SetValues:l,GetGroupByPath:S},dependency:{GetAllDependency:b,GetDependencyOrder:P},hooks:{onError:y,onSuccess:Q,onStart:_}},L=(T,U,K)=>{!U||typeof U!="object"||Object.keys(U).forEach(v=>{let u=U[v];if(typeof u=="object"&&u!==null)T[v]=T[v]||{},L(T[v],u,K);else if(typeof u=="function"){let d=v;if(d==="useMeshRenderGate")d="render";else if(d.startsWith("use")){let B=d.slice(3);d=B.charAt(0).toLowerCase()+B.slice(1);}v==="useHistory"&&K.exports.history&&Object.keys(K.exports.history).length>0?T[d]=K.exports.history:v==="useInternalForm"&&K.exports.form&&Object.keys(K.exports.form).length>0?T[d]=K.exports.form:v==="useSchemaValidators"&&K.exports.validator&&Object.keys(K.exports.validator).length>0?T[d]=K.exports.validator:v==="useMeshRenderGate"&&K.exports.render?T[d]=K.exports.render:T[d]=u(K.scheduler,K.Schema);}});},O={...C,destroyPlugin:N,CancelTask:A,modules:{}},D=t.modules;return D&&L(O.modules,D,{scheduler:a,Schema:e,exports:{history:E,form:M,validator:z,render:X}}),xe.set(p,O),O}catch(r){throw Error(r)}},yn=()=>(p,e,t)=>ot(p,e,t),fn=p=>{let e=xe.get(p);if(!e)throw Error("Engine not found.");return e},pn=p=>{let e=xe.get(p);e.destroyPlugin(),e.CancelTask(),xe.delete(p);},ot=at;exports.DefaultStrategy=_e;exports.MeshFlowEventsName=we;exports.TriggerCause=ke;exports.deleteEngine=pn;exports.useEngine=fn;exports.useEngineManager=at;exports.useMeshFlow=ot;exports.useMeshFlowDefiner=yn;exports.useScheduler=nt;
|
package/index.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var we=(S=>(S[S.FlowStart=0]="FlowStart",S[S.FlowSuccess=1]="FlowSuccess",S[S.FlowEnd=2]="FlowEnd",S[S.FlowAbort=3]="FlowAbort",S[S.FlowWait=4]="FlowWait",S[S.FlowFire=5]="FlowFire",S[S.NodeStart=6]="NodeStart",S[S.NodeSuccess=7]="NodeSuccess",S[S.NodeProcessing=8]="NodeProcessing",S[S.NodeError=9]="NodeError",S[S.NodePending=10]="NodePending",S[S.NodeRevive=11]="NodeRevive",S[S.NodeIntercept=12]="NodeIntercept",S[S.NodeRelease=13]="NodeRelease",S[S.NodeStagnate=14]="NodeStagnate",S[S.NodeBucketSuccess=15]="NodeBucketSuccess",S[S.EntangleWarn=16]="EntangleWarn",S[S.EntangleBlocked=17]="EntangleBlocked",S))(we||{}),Fe=(r=>(r[r.CAUSALITY=0]="CAUSALITY",r[r.INVERSION=1]="INVERSION",r[r.REPERCUSSION=2]="REPERCUSSION",r))(Fe||{});var Ve=(r=>(r.OR="OR",r.PRIORITY="PRIORITY",r.MERGE="MERGE",r))(Ve||{}),De=class{computedRules=[];store={OR:(e,t)=>{let r,u,c=this.computedRules;for(let i=0;i<c.length;i++){let l=c[i],s=l.logic(e);if(s instanceof Promise)return (async()=>{let M=await s;if(l.entityId==="__base__"?u=M:M&&(r=M),typeof r>"u")for(let n=i+1;n<c.length;n++){let N=c[n],f=N.logic(e),g=f instanceof Promise?await f:f;if(N.entityId==="__base__"){u=g;continue}if(g){r=N.value;break}}return typeof r>"u"&&(r=u),{res:r,version:t}})();let h=s;if(l.entityId==="__base__"){u=h;continue}if(h){r=l.value;break}}return typeof r>"u"&&(r=u),{res:r,version:t}},PRIORITY:(e,t)=>{let r,u=this.computedRules;for(let c=0;c<u.length;c++){let l=u[c].logic(e);if(l instanceof Promise)return (async()=>{let s=await l;if(s!==void 0)return {res:s,version:t};for(let h=c+1;h<u.length;h++){let M=u[h].logic(e),n=M instanceof Promise?await M:M;if(n!==void 0)return {res:n,version:t}}return {res:void 0,version:t}})();if(l!==void 0)return {res:l,version:t}}return {res:r,version:t}},MERGE:(e,t)=>{let r,u,c=this.computedRules,i=(s,h)=>s===void 0?h:h===void 0?s:Array.isArray(s)&&Array.isArray(h)?[...h,...s]:typeof s=="object"&&typeof h=="object"?{...h,...s}:s;for(let s=0;s<c.length;s++){let h=c[s],M=h.logic(e);if(M instanceof Promise)return (async()=>{let N=await M,f=(m,P)=>{if(m.entityId==="__base__")u=i(u,P);else if(P){let R=m.value!==void 0?m.value:P;r=i(r,R);}};f(h,N);for(let m=s+1;m<c.length;m++){let P=c[m],R=P.logic(e),S=R instanceof Promise?await R:R;f(P,S);}return {res:i(r,u),version:t}})();let n=M;if(h.entityId==="__base__"){u=i(u,n);continue}if(n){let N=h.value!==void 0?h.value:n;r=i(r,N);}}return {res:i(r,u),version:t}}};CurrentStrategy=()=>{};CurrentStrategyType="PRIORITY";getRules=()=>{};constructor(e){this.getRules=e,this.CurrentStrategy=this.store.PRIORITY,this.updateComputedRules();}updateComputedRules(){let e=this.getRules();this.CurrentStrategyType==="PRIORITY"||this.CurrentStrategyType==="MERGE"?this.computedRules=Array.from(e.values()).map(t=>Array.from(t)).flat().sort((t,r)=>r.priority-t.priority):this.computedRules=Array.from(e.values()).map(t=>Array.from(t)).flat();}setStrategy(e){this.CurrentStrategyType=e,this.CurrentStrategy=this.store[e],this.updateComputedRules();}evaluate(e,t){return this.CurrentStrategy(e,t)}},Re=class{path;strategy;contract;rules=new Map;isValue=false;id=0;cache=void 0;pendingPromise=null;version=0;deps=new Map;_forceNotify=false;promiseToken=null;useCache=true;effectArray=[];constructor(e,t,r){let u=()=>this.rules;this.strategy=new De(u),this.path=r,this.isValue=t==="value",this.contract=this.inferType(e),this.cache=e,this.setRule({priority:0,entityId:"__base__",logic:()=>e});}setUseCache(e){this.useCache=e;}forceNotify(){this._forceNotify=true;}isForceNotify(){return this._forceNotify}setStrategy(e){this.strategy.setStrategy(e);}setDefaultRule(e){let t=new Set;t.add(e),this.rules.set(-1,t);}setRules(e,t){t&&this.updateDeps(t);let r=++this.id,u={...e,entityId:r};for(let c of e.triggerUids)this.rules.has(c)||this.rules.set(c,new Set),this.rules.get(c).add(u);return this.strategy.updateComputedRules(),()=>{for(let c of e.triggerUids){let i=this.rules.get(c);i&&(i.delete(u),i.size===0&&(this.rules.delete(c),this.deps.delete(c)));}this.strategy.updateComputedRules();}}updateDeps(e){for(let[t,r]of e)this.deps.set(t,r);}setRule(e,t){if(t&&this.updateDeps(t),typeof e.entityId=="string"){this.setDefaultRule(e);return}let r=++this.id,u={...e,entityId:r};if(e)for(let c of e.triggerUids)this.rules.has(c)||this.rules.set(c,new Set),this.rules.get(c).add(u);return this.strategy.updateComputedRules(),()=>{for(let c of e.triggerUids){let i=this.rules.get(c);i&&(i.delete(u),i.size===0&&(this.rules.delete(c),this.deps.delete(c)));}this.strategy.updateComputedRules();}}setSideEffect(e){this.effectArray.push(e);}getSideEffect(){return [...this.effectArray]}evaluate(e){let t=null;if(e.GetToken&&(t=e.GetToken()),this.pendingPromise&&this.promiseToken!==t&&(this.pendingPromise=null,this.promiseToken=null),this.pendingPromise)return this.pendingPromise;let r=false;if(typeof e.triggerUid=="number"){r=true;let i=this.deps.get(e.triggerUid),l=e.getStateByUid(e.triggerUid);if(typeof i=="object"||typeof l=="object")r=false;else {let s=Array.from(this.deps.keys());for(let h of s){let M=this.deps.get(h),n=e.getStateByUid(h);if(M!==n){r=false;break}}}}if(r&&this.useCache)return this.cache;this.promiseToken=t;let u=++this.version,c=this.strategy.evaluate(e,u);if(!(c instanceof Promise)){let{res:i,version:l}=c;return this.finalizeSync(i,l,e,t)}return this.pendingPromise=(async()=>{try{let{res:i,version:l}=await c;return this.finalizeSync(i,l,e,t)}catch(i){throw {path:this.path,error:i}}finally{this.promiseToken===t&&(this.pendingPromise=null,this.promiseToken=null);}})(),this.pendingPromise}finalizeSync(e,t,r,u){return u!==this.promiseToken||t<this.version?this.cache:(this.cache=e,this.deps.forEach((c,i)=>{this.deps.set(i,r.getProxyByUid(i));}),e)}inferType(e){return Array.isArray(e)?"array":typeof e}};var _e=(p,e,t)=>{let u=c=>{let i=t.triggerUids.map(h=>{let M=c.getProxyByUid(h);if(t.triggerKeys.length===0)return M;let n={};return t.triggerKeys.forEach(N=>{n[N]=M[N];}),n}),l=Object.create(null);return Object.defineProperty(l,"triggerTargets",{get:()=>i}),Object.defineProperty(l,"affectedTatget",{get:()=>c.getProxyByUid(p)[e]}),t.logic({slot:l})};return {value:t.value,targetUid:p,triggerUids:t.triggerUids,priority:t.priority??10,logic:u}},He=(p,e,t,r,u,c,i,l)=>{if(!p)throw Error();let s=p,h=(N,f)=>{typeof r[N]>"u"&&(r[N]=[],c[N]=new Set),c[N].add(f),c[N].size>r[N].length&&r[N].push(f),typeof u[f]>"u"&&(u[f]=[],i[f]=new Set),i[f].add(N),i[f].size>u[f].length&&u[f].push(N);};return {SetRule:(N,f,g,m)=>{let P=s(N),R=s(f),S=m.triggerKeys||[],Q=l.get(R.uid)||0,X=l.get(P.uid)||0;Q+=1,X+=1,l.set(R.uid,Q),l.set(P.uid,X);let Y=_e(R.uid,g,{...m,triggerUids:[P.uid],triggerKeys:S}),y=[N].map(V=>{let a=s(V);return [a.uid,a.state.value]});if(h(P.uid,R.uid),typeof R.nodeBucket[g]=="number"){let V=t(R.nodeBucket[g]);V.setRule(Y,y),m.effect&&V.setSideEffect({fn:m.effect,args:m.effectArgs?m.effectArgs:[g]});}else {let V=R.meta[g],a=new Re(V,g,f);a.setRule(Y,y),m.effect&&a.setSideEffect({fn:m.effect,args:m.effectArgs?m.effectArgs:[g]}),R.nodeBucket[g]=e(a);}R.state[g]=R.meta[g];let q=t(R.nodeBucket[g]);m.forceNotify&&q.forceNotify(),m.cacheStrategy=="none"&&q.setUseCache(false);},SetRules:(N,f,g,m)=>{let P=s(f),R=l.get(P.uid)||0;R+=1,l.set(P.uid,R);let S=[];for(let q of N){let V=s(q);S.push(V.uid);let a=l.get(V.uid)||0;a+=1,l.set(V.uid,a),h(V.uid,P.uid);}let Q=m.triggerKeys||[],X=_e(P.uid,g,{...m,triggerUids:S,triggerKeys:Q}),Y=N.map(q=>{let V=s(q);return [V.uid,V.state.value]});if(typeof P.nodeBucket[g]=="number"){let q=t(P.nodeBucket[g]);q.setRules(X,Y),m.effect&&q.setSideEffect({fn:m.effect,args:m.effectArgs?m.effectArgs:[g]});}else {let q=P.meta[g],V=new Re(q,g,f);V.setRules(X,Y),m.effect&&V.setSideEffect({fn:m.effect,args:m.effectArgs?m.effectArgs:[g]}),P.nodeBucket[g]=e(V);}P.state[g]=P.meta[g];let y=t(P.nodeBucket[g]);m.forceNotify&&y.forceNotify(),m.cacheStrategy=="none"&&y.setUseCache(false);}}};var Ye=(p,e)=>{let t=p||void 0;if(!t)throw Error();return {SetStrategy:(u,c,i)=>{let l=t(u);e(l.nodeBucket[c]).setStrategy(i);}}};function je(){let p=new Map,e=new Map,t=new Set,r=(i,l)=>{p.set(i,l);let s=e.get(i);s&&s(l);};return {SetTrace:(i,l)=>{e.set(i,l);let s=p.get(i)||"idle";return l(s),{cancel:()=>{e.delete(i);}}},useTrace:()=>({apply:l=>{l.on(0,()=>{t.forEach(s=>r(s,"idle")),t.clear(),p.clear();}),l.on(13,({path:s,type:h})=>{(h==1||h==2)&&(t.add(s),r(s,"pending"));}),l.on(10,({path:s})=>{t.add(s),(!p.has(s)||p.get(s)==="idle")&&r(s,"pending");}),l.on(6,({path:s})=>{t.add(s),r(s,"calculating");}),l.on(7,({path:s})=>{r(s,"calculated");}),l.on(12,({path:s,type:h})=>{h==3&&r(s,"calculating"),h==6&&r(s,"idle");}),l.on(14,({path:s})=>{r(s,"pending");}),l.on(9,({path:s})=>r(s,"error"));}})}}function ze(p,e,t,r){return {GetNextDependency:M=>r()[M]||[],GetPrevDependency:M=>t()[M]||[],GetAllPrevDependency:M=>e()[M]||[],GetAllNextDependency:M=>p()[M]||[],rebuildDirectDependencyMaps:M=>{let n=[],N=[],f=p();for(let g of M){let m=f[g]||[];n[g]=m;for(let P=0;P<m.length;P++){let R=m[P];typeof N[R]>"u"&&(N[R]=[]),N[R].push(g);}}return {directNextMap:n,directPrevMap:N}}}}function qe(p,e){let t=u=>{let c=[],i=[],l=new Map,s=u.size,h=0,M=0;for(let[n,N]of u)N===0&&i.push(n);if(i.length===0&&s>0)throw Error("Circular dependency detected");for(;i.length>0;){c.push([...i]);let n=[];for(let N of i){h++,l.set(N,M);let f=p[N];if(f)for(let g of f){let m=u.get(g)-1;u.set(g,m),m===0&&n.push(g);}}i=n,M++;}if(h<s)throw Error("Circular dependency detected");return {steps:c,levelMap:l}};return ()=>{let u=new Map;for(let c of e.keys()){let i=p[c]||[];u.has(c)||u.set(c,0);for(let l of i){let s=u.get(l)||0;u.set(l,++s);}}return t(u)}}var Ne=()=>{let p=[];return {on:e=>(p.push(e),()=>{let t=p.indexOf(e);t>-1&&p.splice(t,1);}),call:e=>p.forEach(t=>{t(e);})}};function Qe(){let{on:p,call:e}=Ne();return {onError:p,callOnError:e}}function $e(){let{on:p,call:e}=Ne();return {onSuccess:p,callOnSuccess:e}}var Xe=()=>{let p=new Set,e=new Map,t=new Set,r=(l,s)=>{e.get(l)?.forEach(h=>h(s));},u=(l,s)=>(e.has(l)||e.set(l,new Set),e.get(l).add(s),()=>e.get(l)?.delete(s));return {usePlugin:l=>{let s=new Set,h=(n,N)=>{let f=u(n,N);return s.add(f),f};l.apply({on:h}),p.add(l);let M=()=>{s.forEach(n=>n()),s.clear(),p.delete(l),t.delete(M);};return t.add(M),M},emit:r,destroyPlugin:()=>{t.forEach(l=>l()),t.clear(),e.clear(),p.clear();}}};function Ze(){let{on:p,call:e}=Ne();return {onStart:p,callOnStart:e}}var Je=(p={frameQuota:12})=>{let e=performance.now(),t=0,r=false,u=()=>!!navigator?.scheduling?.isInputPending?.({includeContinuous:true});return {getIsFirstFrame:()=>r,reset(){e=performance.now(),t=0,r=true;},shouldYield(){return !r&&(++t&15)!==0?false:!!(performance.now()-e>p.frameQuota||u())},async yieldToMain(){return new Promise(c=>{Be(()=>{e=performance.now(),t=0,r&&(r=false),c();});})}}},Be=p=>{let{port1:e,port2:t}=new MessageChannel;e.onmessage=p,t.postMessage(null);};function et(p,e,t,r,u,c){let i=new Map,l=p.useGreedy,s=null,h=()=>{i.clear();},M={path:null,level:0,targetLevel:0,currentLevel:0,pendingParentsCount:0,active:0,pending:0,blocked:0,nums:0,asyncNums:0},n={path:null,type:0,triggerPath:null,calledBy:0,key:null,value:null,error:null,token:null,duration:null,detail:M};return {TaskRunner:async(f,g)=>{let P=Symbol("token"),R=typeof f=="number"?f:"__NOTIFY_ALL__";i.set(R,P),s=P;let S=false;c.reset();let Q=t.GetMaxUid()+3,X=new Array(Q).fill(0),Y=0,y=new Uint8Array(Q),q=new Int32Array(Q),V=new Int32Array(Q),a=new Int32Array(Q*2),T=0,A=0,k=new Int32Array(Q*2),_=0,O=0,D=new Int32Array(Q*2),b=0,U=0;g.forEach(E=>{X[E]=1,e.GetAllNextDependency(E).forEach(se=>{X[se]=1;});});let K=new Array(Q).fill(null),v=[],o=t.Turnstile,d=new Array(Q).fill(null).map(()=>[]),B=new Array(Q).fill(null).map(()=>[]),H=o.volatileLevels.size>0,ne=H?o.hasObserver:E=>false,le=H?o.receiveGhosts:()=>[],ue=H?o.resolveGhosts:()=>[],Me=H?o.getTriggerKeys:()=>[],Se=o?.volatileLevels||new Set,ye=-1,ee=e.GetUidToLevelMap(),re=0,be=0,ge=E=>{e.GetAllNextDependency(E).forEach(ae=>{let te=ee.get(ae)||0;te>be&&(be=te);});},Ae=new Set;typeof f=="number"&&(y[f]|=16,Ae.add(f),ge(f),u.flushPathSet.add(f));let ve=typeof f=="number"?[f]:g;c.shouldYield()&&(u.requestUpdate(),await c.yieldToMain());let Ie=ve.map(async E=>{if(ne(E)){let se=t.GetNodeByUid(E),ae=Me(E);if(ae.length>0){let te=le(se,ae);return te instanceof Promise&&(te=await te),{seed:E,hitTargets:te}}}return {seed:E,hitTargets:[]}});if((await Promise.all(Ie)).forEach(({seed:E,hitTargets:se})=>{if(se&&se.length>0){v.push(...se);let ae=ee.get(E)||0;ye=Math.max(ye,ae);}}),(v.length>0||ve.length>1)&&(u.requestUpdate(),await c.yieldToMain(),i.get(R)!==P))return;let Te=v.length>0;g.forEach(E=>{if(!Ae.has(E))if(Te){let se=ee.get(E)??0;V[E]=se,y[E]&4||(y[E]|=4,D[b++]=E,U++);let ae=t.GetPathByUid(E);n.path=ae,n.type=2,r.emit(14,n);}else y[E]&1||(y[E]|=1,a[T++]=E,A++),ge(E);}),typeof f=="number"?re=ee.get(f)??0:re=Math.min(...g.map(E=>ee.get(E)??0));let Ce=performance.now(),Ee=typeof R=="number"?t.GetPathByUid(R):"__NOTIFY_ALL__";n.path=Ee,n.token=P,r.emit(0,n),r.callOnStart({path:Ee});let ke=false,Ke=30,Le=(E,se)=>{let ae=false,te=false,L=false,x=t.GetNodeByUid(E),$=t.GetPathByUid(E),j=x.calledBy,I=d[E];I.length=0;let C=B[E];C.length=0;let G=false;if(x.calledBy===1){G=true,ae=true,u.flushPathSet.add(E);let w=K[E];w&&(I.push(...w),K[E]=null);}let F=(w,Z)=>{let W=ee.get(w)??0,oe=t.GetNodeByUid(w),J=t.GetPathByUid(w),pe=(j===1||j===2)&&W<=ye;pe&&y[w]&16&&(y[w]&=-17,n.path=J,n.triggerPath=$,r.emit(11,n));let ie=0;if(!(y[w]&49)){if(y[w]&2)ie=q[w]-1;else {if(W>re&&O>Ke){V[w]=W,y[w]&4||(y[w]|=4,D[b++]=w,U++),n.path=J,n.type=7,r.emit(12,n);return}let me=e.GetPrevDependency(w),z=0;for(let he of me){if(y[he]&16)continue;(ee.get(he)??0)>re&&z++;}ie=z;}if(ie<=0){let me=(y[w]&1)!==0,z=(y[w]&32)!==0;if(me||z){n.path=J,n.type=z?3:3.1,r.emit(12,n);return}y[w]&2&&(y[w]&=-3,O--),pe?oe.calledBy=2:oe.calledBy=0,y[w]&1||(y[w]|=1,a[T++]=w,A++),n.path=J,n.type=Z,M.path=$,r.emit(13,n);}else q[w]=ie,y[w]&2||(y[w]|=2,k[_++]=w,O++);}},de=(w=[])=>{if(i.get(R)!==P)return;if(w.length){let W={},oe=x.proxy;for(let J of w){let pe=(J.args||[]).reduce((ie,me)=>(ie[me]=oe[me],ie),{});try{let ie=J.fn(pe);ie&&typeof ie=="object"&&Object.assign(W,ie);}catch(ie){}}for(let J in W)if(J in x.state)Object.is(x.state[J],W[J])||(x.state[J]=W[J],I.push(J),ae=true,(x.notifyKeys.size===0||x.notifyKeys.has(J))&&(te=true));else throw {error:`wrong effect in ${String(x.path)}`}}ae&&u.flushPathSet.add(E);let Z=(W=[])=>{if(i.get(R)!==P)return;W&&W.length>0&&(v.push(...W),ye=Math.max(ye,ee.get(E)||0)),I.length=0,n.path=$,n.calledBy=x.calledBy,r.emit(7,n),y[E]|=16;let oe=e.GetNextDependency(E);(te||L)&&(ge(E),e.GetAllNextDependency(E).forEach(he=>{X[he]=1;}));let J=t.GetNodeByUid(E),pe=ee.get(E)??0,ie=Se.has(pe)||v.length>0;for(let z of oe){let he=ee.get(z)??0,Pe=t.GetPathByUid(z);if(ie&&he>=pe){V[z]=he,y[z]&4||(y[z]|=4,D[b++]=z,U++),n.path=Pe,n.type=2,r.emit(14,n);continue}if(y[z]&16){n.path=Pe,n.type=2,r.emit(12,n);continue}if(y[z]&32||(y[z]&1)!==0){n.path=Pe,n.type=y[z]&32?3:3.1,r.emit(12,n);continue}if(te||L)F(z,1);else if(y[z]&2)F(z,2);else {let st=ee.get(z);V[z]=st,y[z]&4||(y[z]|=4,D[b++]=z,U++,n.path=Pe,n.type=1,r.emit(14,n));}}y[E]&32&&(y[E]&=-33,Y--),J.calledBy=0,(()=>{if(!S){S=true;let z=Y,he=A,Pe=O;n.path=$,n.type=1,M.active=z,M.pending=he,M.blocked=Pe,r.emit(5,n),Ge();}})();};if(ne(E)&&I.length>0){let W=le(x,I);W instanceof Promise?W.then(Z).catch(ce):Z(W);}else Z([]);},ce=w=>{n.path=$,n.error=w,r.emit(9,n);let Z=Symbol("abort");i.set(R,Z),T=0,A=0,_=0,O=0,b=0,U=0,y.fill(0),Y=0,K.fill(null),r.callOnError(w);},fe=(w,Z)=>{w!==x.state[Z]&&(x.state[Z]=w,ae=true,I.push(String(Z)),n.path=$,n.key=Z,n.value=w,n.calledBy=x.calledBy,r.emit(15,n),(x.notifyKeys.size===0||x.notifyKeys.has(Z))&&(te=true)),t.GetBucket(x.nodeBucket[Z]).isForceNotify()&&(L=true),(te||L)&&ge(E);};n.path=$,n.calledBy=x.calledBy,r.emit(6,n);try{let w=[];for(let Z in x.nodeBucket){let W=t.GetBucket(x.nodeBucket[Z]);if(w.push(...W.getSideEffect()),G){r.emit(15,{path:$,key:String(Z),value:x.state[Z],calledBy:x.calledBy}),W.isForceNotify()&&(L=!0),(x.notifyKeys.size===0||x.notifyKeys.has(Z))&&ge(E);continue}let oe=W.evaluate({affectKey:Z,triggerUid:se,getProxyByUid:J=>t.GetNodeByUid(J).proxy,getStateByUid:J=>t.GetNodeByUid(J).state,GetToken:()=>P});if(oe instanceof Promise){let J=oe.then(pe=>{i.get(R)===P&&fe(pe,Z);});C.push(J);}else fe(oe,Z);}if(C.length>0)return Promise.all(C).then(()=>{de(w);}).catch(ce);de(w);return}catch(w){ce(w);}},Ge=async()=>{if(i.get(R)!==P){S=false;return}S=true;let E=c.getIsFirstFrame(),se=0,ae=()=>30,te=0,L=ae();try{for(;i.get(R)===P;){let x=te>=L,$=c.shouldYield();if(x||$){if(te>0&&(se++,(E||se%2===0)&&u.requestUpdate()),await c.yieldToMain(),i.get(R)!==P)break;te=0,E=c.getIsFirstFrame();}if(A>0&&Y<40){let j=T,I=0;for(let C=0;C<j;C++){let G=a[C];if((y[G]&1)===0)continue;if(Y>=40||te>=L||c.shouldYield()){for(let W=C;W<T;W++){let oe=a[W];y[oe]&1&&(a[I++]=oe);}T=I,A=I;break}let F=t.GetNodeByUid(G),de=t.GetPathByUid(G),ce=ee.get(G)??0,fe=e.GetPrevDependency(G),w=fe.length>1;if((!l||w)&&ce>re){y[G]&=-2,A--;let W=fe.filter(oe=>X[oe]===1&&(y[oe]&16)===0).length;q[G]=W||0,y[G]&2||(y[G]|=2,k[_++]=G,O++),n.path=de,n.type=W>0?4:5,M.targetLevel=ce,M.currentLevel=re,M.pendingParentsCount=W,r.emit(12,n);continue}y[G]&=-2,A--,(y[G]&32)===0&&(y[G]|=32,Y++),n.path=de,n.calledBy=F.calledBy,r.emit(8,n),Le(G,f),te++;}if(T>j){for(let C=j;C<T;C++){let G=a[C];y[G]&1&&(a[I++]=G);}T=I,A=T;}else T=I;if(A>0&&Y<40)continue}if(te<L&&l&&O>0&&Y<40){let j=!1,I=0,C=0;for(let G=0;G<_;G++){let F=k[G];if((y[F]&2)===0)continue;if(q[F]<=0&&I<L){let ce=ee.get(F)??0,fe=e.GetPrevDependency(F);if(ce<=re||fe.length<=1){y[F]&=-3,O--,y[F]&1||(y[F]|=1,a[T++]=F,A++),I++,j=!0;let w=t.GetPathByUid(F);n.path=w,n.type=4,r.emit(13,n);continue}}k[C++]=F;}if(_=C,I>0)continue;if(j){if(c.shouldYield()&&(await c.yieldToMain(),i.get(R)!==P))break;continue}}if(Y===0&&A===0){if(v.length>0){let I=!1,C=re,G=Array.from(new Set(v));v.length=0;for(let F of G){let de=t.GetNodeByUid(F),ce=ue(de);if(ce&&ce.length>0){I=!0,de.calledBy=1,K[F]=ce,y[F]&=-17,y[F]&2&&(y[F]&=-3,O--),y[F]&1||(y[F]|=1,a[T++]=F,A++);let fe=ee.get(de.uid)??0;fe<C&&(C=fe),ge(de.uid),u.flushPathSet.add(de.uid);}}if(I){if(C<re&&(re=C),u.requestUpdate(),c.shouldYield()&&(await c.yieldToMain(),i.get(R)!==P))break;continue}}let j=1/0;for(let I=0;I<b;I++){let C=D[I];if(y[C]&4){let G=V[C];G<j&&(j=G);}}for(let I=0;I<_;I++){let C=k[I];if(y[C]&2){let G=ee.get(C)??0;G>re&&G<j&&(j=G);}}if(j!==1/0&&j<=be){re=j;let I=0;for(let G=0;G<b;G++){let F=D[G];y[F]&4&&(V[F]===j?(y[F]&=-5,U--,y[F]&1||(y[F]|=1,a[T++]=F,A++)):D[I++]=F);}b=I;let C=0;for(let G=0;G<_;G++){let F=k[G];if(y[F]&2)if((ee.get(F)??0)===j){y[F]&=-3,O--,y[F]&1||(y[F]|=1,a[T++]=F,A++);let ce=t.GetPathByUid(F);n.path=ce,n.type=3,M.level=j,r.emit(13,n);}else k[C++]=F;}_=C;continue}else {for(let I=0;I<b;I++){let C=D[I];if(y[C]&4){y[C]|=16;let G=t.GetPathByUid(C);n.path=G,n.type=6,r.emit(12,n);}}b=0,U=0;for(let I=0;I<_;I++){let C=k[I];if(y[C]&2){y[C]|=16;let G=t.GetPathByUid(C);n.path=G,n.type=6,r.emit(12,n);}}_=0,O=0;break}}A>0&&Y>=40&&(n.type=2,r.emit(4,n));break}}finally{S=false;let x=Y+O+A,$=o.inFlightCount||0;if(!(s===P)){n.token=P,r.emit(3,n);return}if(u.requestUpdate(),x===0&&$===0){if(i.get(R)===P&&!ke){ke=true,n.type=1,r.emit(2,n),o.resetCounters(),K.fill(null);let I=performance.now();ye=-1,i.delete(R),n.token=P,n.duration=(I-Ce).toFixed(2.1)+"ms",r.emit(1,n),Promise.resolve().then(()=>{r.callOnSuccess();});}}else {let I=x===0&&$>0?3:1;if(n.type=I,M.nums=Y,M.asyncNums=$,r.emit(4,n),$>0){let C=()=>{s===P&&(o.inFlightCount===0?Be(()=>{o.inFlightCount===0?Ge():requestAnimationFrame(C);}):requestAnimationFrame(C));};requestAnimationFrame(C);}}}};Ge();},CancelTask:h}}function Ue(p){let{path:e,uid:t,type:r,meta:u,dirtySignal:c,state:i}=p,l=null,s=["path","uid","type","dependOn","nodeBucket"],M={path:e,uid:t,type:r,meta:u,dirtySignal:c,createView:(n={})=>{if(l&&Object.keys(n).length===0)return l;let N=new Proxy(n,{get(f,g){let m=g;return Reflect.has(f,g)?Reflect.get(f,g):m in p.state?p.state[m]:m in p?p[m]:u&&m in u?u[m]:Reflect.get(f,g)},set(f,g,m){return false},ownKeys(f){let g=new Set([...Reflect.ownKeys(f),...Object.keys(i||{}),...Object.keys(u||{}),...s]);return Array.from(g)},getOwnPropertyDescriptor(f,g){let m=g;return Reflect.has(f,g)||i&&m in i||u&&m in u||s.includes(m)?{enumerable:true,configurable:true}:Reflect.getOwnPropertyDescriptor(f,g)}});return l=N,N}};return "children"in p?{...M,children:p.children}:{...M,state:p.state,nodeBucket:p.nodeBucket,notifyKeys:p.notifyKeys,dependOn:p.dependOn,calledBy:0,get proxy(){return l}}}var tt=(p,e,t,r,u,c,i)=>{let l=p.useEntangleStep,s=[],h=[],M=new Set,n=r,g=t,m=0,P=0,R=100,S=()=>{let a={link:null,impactNode:null,impactUid:-1,hitTargetUids:null,isDirty:false,propose:null};return a.propose={set:(T,A,k=1)=>{A!==a.impactNode.state[T]&&(a.link.count++,(!h[a.impactUid]||h[a.impactUid].length===0)&&(h[a.impactUid]=[],P++),h[a.impactUid].push({key:T,value:A,weight:k}),a.isDirty||(a.hitTargetUids.push(a.impactUid),a.isDirty=true));},update:(T,A,k="add")=>{a.link.count++,(!h[a.impactUid]||h[a.impactUid].length===0)&&(h[a.impactUid]=[],P++),h[a.impactUid].push({key:T,delta:A,op:k,weight:1}),a.isDirty||(a.hitTargetUids.push(a.impactUid),a.isDirty=true);},patch:(T,A)=>{a.link.count++,(!h[a.impactUid]||h[a.impactUid].length===0)&&(h[a.impactUid]=[],P++),h[a.impactUid].push({key:T,patch:A,weight:1}),a.isDirty||(a.hitTargetUids.push(a.impactUid),a.isDirty=true);}},a},Q=Array.from({length:R},S),X=R-1,Y=(a,T,A)=>{let k=T.path,_=a.impact;if(a.count>=l){i.emit("entangle:blocked",{observer:k,target:_,count:a.count});return}let O=n(_),D=a.isProxy?T.proxy:T,b=a.isProxy?O.proxy:O;if(a.filter&&!a.filter(D,b))return;let U,K=true;X<0?(U=S(),K=false):U=Q[X--],U.isDirty=false,U.link=a,U.impactNode=O,U.impactUid=O.uid,U.hitTargetUids=A;let v=a.emit(D,b,U.propose);if(v instanceof Promise||v&&typeof v.then=="function")return m++,(async()=>{try{await v;}catch(o){i.emit("node:error",{path:k,error:o}),i.onError({path:k,error:o});}finally{m--,K&&(Q[++X]=U);}})();K&&(Q[++X]=U);};return {useEntangle:a=>{let{cause:T,impact:A,via:k,emit:_,filter:O,isProxy:D}=a;if(!k||k.length===0){i.emit("entangle:warn",{path:T,type:"no_keys"});return}let U=n(T).uid;s[U]||(s[U]=new Map);let K=s[U];for(let v=0;v<k.length;v++){let o=k[v];K.has(o)||K.set(o,[]),K.get(o).push({impact:A,emit:_,filter:O,count:0,isProxy:!!D});}},updateEntangleLevel:()=>{let a=g();M.clear();for(let T=0;T<s.length;T++)if(s[T]!==void 0){let A=a.get(T)||0;M.add(A);}},Turnstile:{volatileLevels:M,get inFlightCount(){return m},get hasPendingGhosts(){return P>0},hasObserver:a=>s[a]!==void 0,getTriggerKeys:a=>{let T=s[a];return T?Array.from(T.keys()):[]},receiveGhosts:(a,T=[])=>{let A=a.uid,k=[],_=s[A];if(!_||T.length===0)return k;let O=[];for(let v=0;v<T.length;v++){let o=_.get(T[v]);if(o)for(let d=0;d<o.length;d++)O.push(o[d]);}let D=0,b=false,U=null;for(;D<O.length;D++){if(e.shouldYield()){b=true;break}let v=Y(O[D],a,k);if(v){U=v,b=true,D++;break}}let K=()=>{if(k.length<=1)return k;let v=[],o=Object.create(null);for(let d=0;d<k.length;d++){let B=k[d];o[B]||(o[B]=true,v.push(B));}return v};return b?(async()=>{for(U&&await U,e.shouldYield()&&await e.yieldToMain();D<O.length;){let v=[],o=Math.min(D+R,O.length);for(;D<o;D++){let d=Y(O[D],a,k);d&&v.push(d);}v.length>0&&await Promise.all(v.map(async d=>{await d,e.shouldYield()&&await e.yieldToMain();})),e.shouldYield()&&await e.yieldToMain();}return K()})():K()},resolveGhosts:a=>{let T=a.uid,A=h[T];if(!A||A.length===0)return [];let k=[],_=Object.create(null);for(let O=0;O<A.length;O++){let D=A[O];_[D.key]||(_[D.key]=[]),_[D.key].push(D);}for(let O in _){let D=_[O],b=a.state[O],U,K=-1/0,v=false;for(let o=0;o<D.length;o++){let d=D[o];if(d.patch!==void 0&&(b=d.patch(b)),d.value!==void 0){let B=d.weight??1;B>=K&&(K=B,U=d.value,v=true);}}v&&(b=U);for(let o=0;o<D.length;o++){let d=D[o];if(d.delta!==void 0)switch(d.op||"add"){case "add":b=(typeof b=="number"?b:0)+d.delta;break;case "remove":b=Array.isArray(b)?b.filter(H=>H!==d.delta):b;break;case "intersect":b=Array.isArray(b)?b.filter(H=>d.delta.includes(H)):d.delta;break;case "union":{let H=Array.isArray(b)?b:[],ne=Array.isArray(d.delta)?d.delta:[d.delta];b=[...new Set([...H,...ne])];break}case "merge":{let H=typeof b=="object"&&b!==null&&!Array.isArray(b)?b:{},ne=typeof d.delta=="object"&&d.delta!==null&&!Array.isArray(d.delta)?d.delta:{};b={...H,...ne};break}}}Object.is(a.state[O],b)||(a.state[O]=b,k.push(O));}return h[T]=[],P--,k.length>0?k:[]},resetCounters:()=>{for(let a=0;a<s.length;a++){let T=s[a];if(T)for(let A of T.values())for(let k=0;k<A.length;k++)A[k].count=0;}}}}};function nt(p,e,t,r,u){let c=Je(),i=0,l=new Map,s=[],h=[],M=[],n=[],N=false,f=new Set,m=async()=>{let o=Array.from(f);if(f.clear(),"signalTrigger"in u&&typeof u.signalTrigger=="function")for(let d of o){let B=T(d);u.signalTrigger(B.dirtySignal);}else "emit"in u&&u.emit(o);},P=()=>{N||(N=true,requestAnimationFrame(()=>{try{for(;f.size>0;)m();}finally{N=false;}}));},{useEntangle:R,updateEntangleLevel:S,Turnstile:Q}=tt({useEntangleStep:p.useEntangleStep},c,e.GetUidToLevelMap,a,T,A,{emit:r.emit,onError:r.callOnError}),{TaskRunner:X,CancelTask:Y}=et({useGreedy:p.useGreedy},e,{GetNodeByPath:a,GetNodeByUid:T,GetPathByUid:A,GetBucket:O,GetMaxUid:D,Turnstile:Q},r,{requestUpdate:P,flushPathSet:f},c),y=o=>{throw new Error(`[MeshFlow] Duplicate Path: ${o}`)},q=o=>{l.has(o.path)&&y(String(o.path));let d=++i,B={path:o.path,getNode:le=>a(le)},H=(le,ue="value")=>{let Me=le({...B}),Se=a(o.path);if(t.createHistoryAction&&t.pushIntoHistory){let ye=t.createHistoryAction([{path:o.path,value:Se.state[ue]},{path:o.path,value:Me}],ee=>{let re=a(ee.path);re.state[ue]=ee.value,b(ee.path);});t.pushIntoHistory(ye);}Se.state[ue]=Me,b(o.path);},ne=Ue({uid:d,type:o.type,path:o.path,state:o.state,meta:o.meta,nodeBucket:{},dirtySignal:"signalCreator"in u?u.signalCreator():void 0,notifyKeys:o.notifyKeys,dependOn:H});return l.set(ne.path,d),M[d]=ne.path,s[d]=ne,ne},V=o=>{l.has(o.path)&&y(String(o.path));let d=++i,B=Ue({uid:d,type:o.type,path:o.path,state:{},meta:o,nodeBucket:{},children:o.children});return l.set(B.path,d),h[d]=B,B};function a(o){let d=l.get(o),B=s[d];if(!B)throw Error("Wrong id");return B}function T(o){let d=s[o];if(!d)throw Error("Wrong id");return d}function A(o){return M[o]}function k(o){let d=l.get(o);return h[d]}function _(o){return n.push(o)-1}function O(o){let d=n[o];if(!d)throw Error("Wrong id");return d}function D(){return i}let b=o=>{let d=a(o);if(!d)throw Error("Wrong id");f.add(d.uid),P();let B=e.GetNextDependency(d.uid);U(d.uid,B);};function U(o,d){X(o,d);}return {registerNode:q,registerGroupNode:V,GetNodeByPath:a,GetGroupByPath:k,notify:b,notifyAll:async()=>{Promise.resolve().then(async()=>{let o=e.GetDependencyOrder();if(!o||o.length===0)return;let d=o[0];try{X(null,d);}catch(B){throw r.callOnError(B),B}finally{P();}});},batchNotify:o=>{if(!o||o.length===0)return;if(t.createHistoryAction&&t.pushIntoHistory){let B=t.createHistoryAction([o.map(H=>({path:H.path,key:H.key,value:a(H.path).state[H.key]})),o.map(H=>({path:H.path,key:H.key,value:H.value}))],H=>{let ne=new Set;H.forEach(le=>{let ue=a(le.path);ue.state[le.key]=le.value,f.add(le.path),ne.add(le.uid);}),P(),ne.size>0&&X(null,Array.from(ne));});t.pushIntoHistory(B);}let d=new Set;o.forEach(B=>{let H=a(B.path);H.state[B.key]=B.value,f.add(H.uid),d.add(H.uid);}),P(),d.size>0&&X(null,Array.from(d));},useEntangle:R,updateEntangleLevel:S,SetBucket:_,GetBucket:O,CancelTask:Y,UITrigger:u,UidToNodeMap:s}}function rt(p,e){let t=false,r=false,u=false,c=false,i=new Map,l=[],s=[],h=[],M=[],n=[],N=[],f=[],g=new Map,{GetNextDependency:P,GetPrevDependency:R,GetAllPrevDependency:S,GetAllNextDependency:Q,rebuildDirectDependencyMaps:X}=ze(()=>l,()=>h,()=>N,()=>n),Y={},y={};if(e.modules.useHistory){let L=e.modules.useHistory,x;L.isMeshModuleInited?x=L:x=L();let{Undo:$,Redo:j,PushIntoHistory:I,CreateHistoryAction:C,updateUndoSize:G,updateRedoSize:F}=x();Y.pushIntoHistory=I,Y.createHistoryAction=C,y={Undo:$,Redo:j,updateUndoSize:G,updateRedoSize:F};}let q=!!e.modules.useMeshRenderGate,V={};if(q){let L=e.modules.useMeshRenderGate.isMeshModuleInited,x=e.modules.useMeshRenderGate;V=(L?x:x())(()=>ue);}let{onError:a,callOnError:T}=Qe(),{onSuccess:A,callOnSuccess:k}=$e(),{onStart:_,callOnStart:O}=Ze(),{emit:D,usePlugin:b,destroyPlugin:U}=Xe(),{SetTrace:K,useTrace:v}=je(),o=v();b(o);let d=q?{...V}:{...e.UITrigger},B=nt({useGreedy:e.config.useGreedy,useEntangleStep:e.config.useEntangleStep||100},{GetDependencyOrder:()=>f,GetAllNextDependency:Q,GetNextDependency:P,GetPrevDependency:R,GetAllPrevDependency:S,GetUidToLevelMap:()=>g},Y,{callOnError:T,callOnSuccess:k,callOnStart:O,emit:D},d),{SetBucket:H,GetBucket:ne,GetGroupByPath:le,GetNodeByPath:ue,notifyAll:Me,useEntangle:Se,updateEntangleLevel:ye,CancelTask:ee}=B;q&&V.init();let re={};if(e.modules.useInternalForm){let{uiSchema:L,GetFormData:x}=e.modules.useInternalForm(B,p);re={uiSchema:L,GetFormData:x};}let be={};if(e.modules.useSchemaValidators){let{SetValidators:L}=e.modules.useSchemaValidators(ue);be={SetValidators:L};}let{SetRule:ge,SetRules:Ae}=He(ue,H,ne,l,h,s,M,i),{SetStrategy:ve}=Ye(ue,ne),Ie=qe(l,i),Oe=()=>{let L=Ie();f=L.steps,g=L.levelMap,Te();},Te=()=>{u&&(ye(),u=false);},Ce=()=>{c||(c=true,Promise.resolve().then(Te).finally(()=>{c=false;}));},Ee=()=>{r||(r=true,Promise.resolve().then(()=>{if(Oe(),t){let{directNextMap:L,directPrevMap:x}=X(f.flat());n=L,N=x;}}).finally(()=>{r=false,t=false;}));};return {SetRule:(L,x,$,j)=>{ge(L,x,$,j),t=true,Ee();},SetRules:(L,x,$,j)=>{Ae(L,x,$,j),t=true,Ee();},SetStrategy:ve,useEntangle:L=>{Se(L),u=true,Ce();},SetTrace:K,usePlugin:b,SetValue:(L,x,$)=>{Te(),ue(L).dependOn(()=>$,x);},GetValue:(L,x="value")=>ue(L).proxy[x],SetValues:L=>{Te(),B.batchNotify(L);},GetGroupByPath:le,notifyAll:async()=>{Oe(),await Me();},GetAllDependency:()=>l,GetDependencyOrder:()=>f,historyExports:y,formExports:re,validatorExports:be,batchRenderExport:V,hasRenderGate:()=>q,onError:a,onSuccess:A,onStart:_,scheduler:B,destroyPlugin:U,CancelTask:ee}}var xe=new Map,at=(p,e,t)=>{try{if(xe.has(p))throw Error("engineID repeated");let r=rt(e,{config:t.config||{useGreedy:!1},UITrigger:t.UITrigger,modules:t.modules??{},plugins:{}}),{SetRule:u,SetRules:c,SetValues:i,SetStrategy:l,SetValue:s,GetValue:h,usePlugin:M,useEntangle:n,GetGroupByPath:N,notifyAll:f,SetTrace:g,GetAllDependency:m,GetDependencyOrder:P,historyExports:R,formExports:S,validatorExports:Q,batchRenderExport:X,hasRenderGate:Y,onError:y,onSuccess:q,onStart:V,scheduler:a,destroyPlugin:T,CancelTask:A}=r,k={config:{SetRule:u,SetRules:c,SetStrategy:l,notifyAll:f,SetTrace:g,usePlugin:M,hasRenderGate:Y,useEntangle:n},data:{SetValue:s,GetValue:h,SetValues:i,GetGroupByPath:N},dependency:{GetAllDependency:m,GetDependencyOrder:P},hooks:{onError:y,onSuccess:q,onStart:V}},_=(b,U,K)=>{!U||typeof U!="object"||Object.keys(U).forEach(v=>{let o=U[v];if(typeof o=="object"&&o!==null)b[v]=b[v]||{},_(b[v],o,K);else if(typeof o=="function"){let d=v;if(d==="useMeshRenderGate")d="render";else if(d.startsWith("use")){let B=d.slice(3);d=B.charAt(0).toLowerCase()+B.slice(1);}v==="useHistory"&&K.exports.history&&Object.keys(K.exports.history).length>0?b[d]=K.exports.history:v==="useInternalForm"&&K.exports.form&&Object.keys(K.exports.form).length>0?b[d]=K.exports.form:v==="useSchemaValidators"&&K.exports.validator&&Object.keys(K.exports.validator).length>0?b[d]=K.exports.validator:v==="useMeshRenderGate"&&K.exports.render?b[d]=K.exports.render:b[d]=o(K.scheduler,K.Schema);}});},O={...k,destroyPlugin:T,CancelTask:A,modules:{}},D=t.modules;return D&&_(O.modules,D,{scheduler:a,Schema:e,exports:{history:R,form:S,validator:Q,render:X}}),xe.set(p,O),O}catch(r){throw Error(r)}},yn=()=>(p,e,t)=>ot(p,e,t),fn=p=>{let e=xe.get(p);if(!e)throw Error("Engine not found.");return e},pn=p=>{let e=xe.get(p);e.destroyPlugin(),e.CancelTask(),xe.delete(p);},ot=at;export{Ve as DefaultStrategy,we as MeshFlowEventsName,Fe as TriggerCause,pn as deleteEngine,fn as useEngine,at as useEngineManager,ot as useMeshFlow,yn as useMeshFlowDefiner,nt as useScheduler};
|
|
1
|
+
var we=(M=>(M[M.FlowStart=0]="FlowStart",M[M.FlowSuccess=1]="FlowSuccess",M[M.FlowEnd=2]="FlowEnd",M[M.FlowAbort=3]="FlowAbort",M[M.FlowWait=4]="FlowWait",M[M.FlowFire=5]="FlowFire",M[M.NodeStart=6]="NodeStart",M[M.NodeSuccess=7]="NodeSuccess",M[M.NodeProcessing=8]="NodeProcessing",M[M.NodeError=9]="NodeError",M[M.NodePending=10]="NodePending",M[M.NodeRevive=11]="NodeRevive",M[M.NodeIntercept=12]="NodeIntercept",M[M.NodeRelease=13]="NodeRelease",M[M.NodeStagnate=14]="NodeStagnate",M[M.NodeBucketSuccess=15]="NodeBucketSuccess",M[M.EntangleWarn=16]="EntangleWarn",M[M.EntangleBlocked=17]="EntangleBlocked",M))(we||{}),ke=(r=>(r[r.CAUSALITY=0]="CAUSALITY",r[r.INVERSION=1]="INVERSION",r[r.REPERCUSSION=2]="REPERCUSSION",r))(ke||{});var _e=(r=>(r.OR="OR",r.PRIORITY="PRIORITY",r.MERGE="MERGE",r))(_e||{}),De=class{computedRules=[];getRuleResult(e,t,r){if(e.entityId==="__base__")return e.logic(t);if(!(!e._hasRun||r(e.triggerUids)))return e._lastResult;let c=e.logic(t);return c instanceof Promise?c.then(l=>(e._lastResult=l,e._hasRun=true,l)):(e._lastResult=c,e._hasRun=true,c)}store={OR:(e,t,r)=>{let i,c,l=this.computedRules;for(let s=0;s<l.length;s++){let o=l[s],g=this.getRuleResult(o,e,r);if(g instanceof Promise)return (async()=>{let n=await g;if(o.entityId==="__base__"?c=n:n&&(i=n),typeof i>"u")for(let S=s+1;S<l.length;S++){let f=l[S],m=this.getRuleResult(f,e,r),b=m instanceof Promise?await m:m;if(f.entityId==="__base__"){c=b;continue}if(b){i=f.value;break}}return typeof i>"u"&&(i=c),{res:i,version:t}})();let h=g;if(o.entityId==="__base__"){c=h;continue}if(h){i=o.value;break}}return typeof i>"u"&&(i=c),{res:i,version:t}},PRIORITY:(e,t,r)=>{let i,c=this.computedRules;for(let l=0;l<c.length;l++){let s=c[l],o=this.getRuleResult(s,e,r);if(o instanceof Promise)return (async()=>{let g=await o;if(g!==void 0)return {res:g,version:t};for(let h=l+1;h<c.length;h++){let n=c[h],S=this.getRuleResult(n,e,r),f=S instanceof Promise?await S:S;if(f!==void 0)return {res:f,version:t}}return {res:void 0,version:t}})();if(o!==void 0)return {res:o,version:t}}return {res:i,version:t}},MERGE:(e,t,r)=>{let i,c,l=this.computedRules,s=(g,h)=>g===void 0?h:h===void 0?g:Array.isArray(g)&&Array.isArray(h)?[...h,...g]:typeof g=="object"&&typeof h=="object"?{...h,...g}:g;for(let g=0;g<l.length;g++){let h=l[g],n=this.getRuleResult(h,e,r);if(n instanceof Promise)return (async()=>{let f=await n,m=(P,E)=>{if(P.entityId==="__base__")c=s(c,E);else if(E){let M=P.value!==void 0?P.value:E;i=s(i,M);}};m(h,f);for(let P=g+1;P<l.length;P++){let E=l[P],M=this.getRuleResult(E,e,r),z=M instanceof Promise?await M:M;m(E,z);}return {res:s(i,c),version:t}})();let S=n;if(h.entityId==="__base__"){c=s(c,S);continue}if(S){let f=h.value!==void 0?h.value:S;i=s(i,f);}}return {res:s(i,c),version:t}}};CurrentStrategy=()=>{};CurrentStrategyType="PRIORITY";getRules=()=>{};constructor(e){this.getRules=e,this.CurrentStrategy=this.store.PRIORITY,this.updateComputedRules();}updateComputedRules(){let e=this.getRules();this.CurrentStrategyType==="PRIORITY"||this.CurrentStrategyType==="MERGE"?this.computedRules=Array.from(e.values()).map(t=>Array.from(t)).flat().sort((t,r)=>r.priority-t.priority):this.computedRules=Array.from(e.values()).map(t=>Array.from(t)).flat();}setStrategy(e){this.CurrentStrategyType=e,this.CurrentStrategy=this.store[e],this.updateComputedRules();}evaluate(e,t,r){return this.CurrentStrategy(e,t,r)}},Ee=class{path;strategy;contract;rules=new Map;isValue=false;id=0;cache=void 0;pendingPromise=null;version=0;deps=new Map;_forceNotify=false;promiseToken=null;useCache=true;effectArray=[];constructor(e,t,r){let i=()=>this.rules;this.strategy=new De(i),this.path=r,this.isValue=t==="value",this.contract=this.inferType(e),this.cache=e,this.setRule({priority:0,entityId:"__base__",logic:()=>e});}setUseCache(e){this.useCache=e;}forceNotify(){this._forceNotify=true;}isForceNotify(){return this._forceNotify}setStrategy(e){this.strategy.setStrategy(e);}setDefaultRule(e){let t=new Set;t.add(e),this.rules.set(-1,t);}setRules(e,t){t&&this.updateDeps(t);let r=++this.id,i={...e,entityId:r};for(let c of e.triggerUids)this.rules.has(c)||this.rules.set(c,new Set),this.rules.get(c).add(i);return this.strategy.updateComputedRules(),()=>{for(let c of e.triggerUids){let l=this.rules.get(c);l&&(l.delete(i),l.size===0&&(this.rules.delete(c),this.deps.delete(c)));}this.strategy.updateComputedRules();}}updateDeps(e){for(let[t,r]of e)this.deps.set(t,r);}setRule(e,t){if(t&&this.updateDeps(t),typeof e.entityId=="string"){this.setDefaultRule(e);return}let r=++this.id,i={...e,entityId:r};if(e)for(let c of e.triggerUids)this.rules.has(c)||this.rules.set(c,new Set),this.rules.get(c).add(i);return this.strategy.updateComputedRules(),()=>{for(let c of e.triggerUids){let l=this.rules.get(c);l&&(l.delete(i),l.size===0&&(this.rules.delete(c),this.deps.delete(c)));}this.strategy.updateComputedRules();}}setSideEffect(e){this.effectArray.push(e);}getSideEffect(){return [...this.effectArray]}evaluate(e){let t=null;if(e.GetToken&&(t=e.GetToken()),this.pendingPromise&&this.promiseToken!==t&&(this.pendingPromise=null,this.promiseToken=null),this.pendingPromise)return this.pendingPromise;let r=false;if(typeof e.triggerUid=="number"){r=true;let s=this.deps.get(e.triggerUid),o=e.getStateByUid(e.triggerUid);if(typeof s=="object"||typeof o=="object")r=false;else {let g=Array.from(this.deps.keys());for(let h of g){let n=this.deps.get(h),S=e.getStateByUid(h);if(n!==S){r=false;break}}}}if(r&&this.useCache)return this.cache;this.promiseToken=t;let i=++this.version,c=s=>{if(!s||s.length===0)return true;for(let o of s){let g=this.deps.get(o),h=e.getStateByUid(o);if(g!==h)return true}return false},l=this.strategy.evaluate(e,i,c);if(!(l instanceof Promise)){let{res:s,version:o}=l;return this.finalizeSync(s,o,e,t)}return this.pendingPromise=(async()=>{try{let{res:s,version:o}=await l;return this.finalizeSync(s,o,e,t)}catch(s){throw {path:this.path,error:s}}finally{this.promiseToken===t&&(this.pendingPromise=null,this.promiseToken=null);}})(),this.pendingPromise}finalizeSync(e,t,r,i){return i!==this.promiseToken||t<this.version?this.cache:(this.cache=e,this.deps.forEach((c,l)=>{this.deps.set(l,r.getProxyByUid(l));}),e)}inferType(e){return Array.isArray(e)?"array":typeof e}};var Le=(p,e,t)=>{let i=c=>{let l=t.triggerUids.map(g=>{let h=c.getProxyByUid(g);if(t.triggerKeys.length===0)return h;let n={};return t.triggerKeys.forEach(S=>{n[S]=h[S];}),n}),s=Object.create(null);return Object.defineProperty(s,"triggerTargets",{get:()=>l}),Object.defineProperty(s,"affectedTatget",{get:()=>c.getProxyByUid(p)[e]}),t.logic({slot:s})};return {value:t.value,targetUid:p,triggerUids:t.triggerUids,priority:t.priority??10,logic:i}},He=(p,e,t,r,i,c,l,s)=>{if(!p)throw Error();let o=p,g=(S,f)=>{typeof r[S]>"u"&&(r[S]=[],c[S]=new Set),c[S].add(f),c[S].size>r[S].length&&r[S].push(f),typeof i[f]>"u"&&(i[f]=[],l[f]=new Set),l[f].add(S),l[f].size>i[f].length&&i[f].push(S);};return {SetRule:(S,f,m,b)=>{let P=o(S),E=o(f),M=b.triggerKeys||[],z=s.get(E.uid)||0,X=s.get(P.uid)||0;z+=1,X+=1,s.set(E.uid,z),s.set(P.uid,X);let Y=Le(E.uid,m,{...b,triggerUids:[P.uid],triggerKeys:M}),y=[S].map(_=>{let a=o(_);return [a.uid,a.state.value]});if(g(P.uid,E.uid),typeof E.nodeBucket[m]=="number"){let _=t(E.nodeBucket[m]);_.setRule(Y,y),b.effect&&_.setSideEffect({fn:b.effect,args:b.effectArgs?b.effectArgs:[m]});}else {let _=E.meta[m],a=new Ee(_,m,f);a.setRule(Y,y),b.effect&&a.setSideEffect({fn:b.effect,args:b.effectArgs?b.effectArgs:[m]}),E.nodeBucket[m]=e(a);}E.state[m]=E.meta[m];let Q=t(E.nodeBucket[m]);b.forceNotify&&Q.forceNotify(),b.cacheStrategy=="none"&&Q.setUseCache(false);},SetRules:(S,f,m,b)=>{let P=o(f),E=s.get(P.uid)||0;E+=1,s.set(P.uid,E);let M=[];for(let Q of S){let _=o(Q);M.push(_.uid);let a=s.get(_.uid)||0;a+=1,s.set(_.uid,a),g(_.uid,P.uid);}let z=b.triggerKeys||[],X=Le(P.uid,m,{...b,triggerUids:M,triggerKeys:z}),Y=S.map(Q=>{let _=o(Q);return [_.uid,_.state.value]});if(typeof P.nodeBucket[m]=="number"){let Q=t(P.nodeBucket[m]);Q.setRules(X,Y),b.effect&&Q.setSideEffect({fn:b.effect,args:b.effectArgs?b.effectArgs:[m]});}else {let Q=P.meta[m],_=new Ee(Q,m,f);_.setRules(X,Y),b.effect&&_.setSideEffect({fn:b.effect,args:b.effectArgs?b.effectArgs:[m]}),P.nodeBucket[m]=e(_);}P.state[m]=P.meta[m];let y=t(P.nodeBucket[m]);b.forceNotify&&y.forceNotify(),b.cacheStrategy=="none"&&y.setUseCache(false);}}};var Ye=(p,e)=>{let t=p||void 0;if(!t)throw Error();return {SetStrategy:(i,c,l)=>{let s=t(i);e(s.nodeBucket[c]).setStrategy(l);}}};function je(){let p=new Map,e=new Map,t=new Set,r=(l,s)=>{p.set(l,s);let o=e.get(l);o&&o(s);};return {SetTrace:(l,s)=>{e.set(l,s);let o=p.get(l)||"idle";return s(o),{cancel:()=>{e.delete(l);}}},useTrace:()=>({apply:s=>{s.on(0,()=>{t.forEach(o=>r(o,"idle")),t.clear(),p.clear();}),s.on(13,({path:o,type:g})=>{(g==1||g==2)&&(t.add(o),r(o,"pending"));}),s.on(10,({path:o})=>{t.add(o),(!p.has(o)||p.get(o)==="idle")&&r(o,"pending");}),s.on(6,({path:o})=>{t.add(o),r(o,"calculating");}),s.on(7,({path:o})=>{r(o,"calculated");}),s.on(12,({path:o,type:g})=>{g==3&&r(o,"calculating"),g==6&&r(o,"idle");}),s.on(14,({path:o})=>{r(o,"pending");}),s.on(9,({path:o})=>r(o,"error"));}})}}function ze(p,e,t,r){return {GetNextDependency:h=>r()[h]||[],GetPrevDependency:h=>t()[h]||[],GetAllPrevDependency:h=>e()[h]||[],GetAllNextDependency:h=>p()[h]||[],rebuildDirectDependencyMaps:h=>{let n=[],S=[],f=p();for(let m of h){let b=f[m]||[];n[m]=b;for(let P=0;P<b.length;P++){let E=b[P];typeof S[E]>"u"&&(S[E]=[]),S[E].push(m);}}return {directNextMap:n,directPrevMap:S}}}}function qe(p,e){let t=i=>{let c=[],l=[],s=new Map,o=i.size,g=0,h=0;for(let[n,S]of i)S===0&&l.push(n);if(l.length===0&&o>0)throw Error("Circular dependency detected");for(;l.length>0;){c.push([...l]);let n=[];for(let S of l){g++,s.set(S,h);let f=p[S];if(f)for(let m of f){let b=i.get(m)-1;i.set(m,b),b===0&&n.push(m);}}l=n,h++;}if(g<o)throw Error("Circular dependency detected");return {steps:c,levelMap:s}};return ()=>{let i=new Map;for(let c of e.keys()){let l=p[c]||[];i.has(c)||i.set(c,0);for(let s of l){let o=i.get(s)||0;i.set(s,++o);}}return t(i)}}var Ne=()=>{let p=[];return {on:e=>(p.push(e),()=>{let t=p.indexOf(e);t>-1&&p.splice(t,1);}),call:e=>p.forEach(t=>{t(e);})}};function Qe(){let{on:p,call:e}=Ne();return {onError:p,callOnError:e}}function $e(){let{on:p,call:e}=Ne();return {onSuccess:p,callOnSuccess:e}}var Xe=()=>{let p=new Set,e=new Map,t=new Set,r=(s,o)=>{e.get(s)?.forEach(g=>g(o));},i=(s,o)=>(e.has(s)||e.set(s,new Set),e.get(s).add(o),()=>e.get(s)?.delete(o));return {usePlugin:s=>{let o=new Set,g=(n,S)=>{let f=i(n,S);return o.add(f),f};s.apply({on:g}),p.add(s);let h=()=>{o.forEach(n=>n()),o.clear(),p.delete(s),t.delete(h);};return t.add(h),h},emit:r,destroyPlugin:()=>{t.forEach(s=>s()),t.clear(),e.clear(),p.clear();}}};function Ze(){let{on:p,call:e}=Ne();return {onStart:p,callOnStart:e}}var Je=(p={frameQuota:12})=>{let e=performance.now(),t=0,r=false,i=()=>!!navigator?.scheduling?.isInputPending?.({includeContinuous:true});return {getIsFirstFrame:()=>r,reset(){e=performance.now(),t=0,r=true;},shouldYield(){return !r&&(++t&15)!==0?false:!!(performance.now()-e>p.frameQuota||i())},async yieldToMain(){return new Promise(c=>{Be(()=>{e=performance.now(),t=0,r&&(r=false),c();});})}}},Be=p=>{let{port1:e,port2:t}=new MessageChannel;e.onmessage=p,t.postMessage(null);};function et(p,e,t,r,i,c){let l=new Map,s=p.useGreedy,o=null,g=()=>{l.clear();},h={path:null,level:0,targetLevel:0,currentLevel:0,pendingParentsCount:0,active:0,pending:0,blocked:0,nums:0,asyncNums:0},n={path:null,type:0,triggerPath:null,calledBy:0,key:null,value:null,error:null,token:null,duration:null,detail:h};return {TaskRunner:async(f,m)=>{let P=Symbol("token"),E=typeof f=="number"?f:"__NOTIFY_ALL__";l.set(E,P),o=P;let M=false;c.reset();let z=t.GetMaxUid()+3,X=new Array(z).fill(0),Y=0,y=new Uint8Array(z),Q=new Int32Array(z),_=new Int32Array(z),a=new Int32Array(z*2),N=0,A=0,C=new Int32Array(z*2),L=0,O=0,D=new Int32Array(z*2),T=0,U=0;m.forEach(R=>{X[R]=1,e.GetAllNextDependency(R).forEach(se=>{X[se]=1;});});let K=new Array(z).fill(null),v=[],u=t.Turnstile,d=new Array(z).fill(null).map(()=>[]),B=new Array(z).fill(null).map(()=>[]),H=u.volatileLevels.size>0,ne=H?u.hasObserver:R=>false,le=H?u.receiveGhosts:()=>[],ue=H?u.resolveGhosts:()=>[],Me=H?u.getTriggerKeys:()=>[],Se=u?.volatileLevels||new Set,ye=-1,ee=e.GetUidToLevelMap(),re=0,be=0,ge=R=>{e.GetAllNextDependency(R).forEach(ae=>{let te=ee.get(ae)||0;te>be&&(be=te);});},Ae=new Set;typeof f=="number"&&(y[f]|=16,Ae.add(f),ge(f),i.flushPathSet.add(f));let ve=typeof f=="number"?[f]:m;c.shouldYield()&&(i.requestUpdate(),await c.yieldToMain());let Ie=ve.map(async R=>{if(ne(R)){let se=t.GetNodeByUid(R),ae=Me(R);if(ae.length>0){let te=le(se,ae);return te instanceof Promise&&(te=await te),{seed:R,hitTargets:te}}}return {seed:R,hitTargets:[]}});if((await Promise.all(Ie)).forEach(({seed:R,hitTargets:se})=>{if(se&&se.length>0){v.push(...se);let ae=ee.get(R)||0;ye=Math.max(ye,ae);}}),(v.length>0||ve.length>1)&&(i.requestUpdate(),await c.yieldToMain(),l.get(E)!==P))return;let Te=v.length>0;m.forEach(R=>{if(!Ae.has(R))if(Te){let se=ee.get(R)??0;_[R]=se,y[R]&4||(y[R]|=4,D[T++]=R,U++);let ae=t.GetPathByUid(R);n.path=ae,n.type=2,r.emit(14,n);}else y[R]&1||(y[R]|=1,a[N++]=R,A++),ge(R);}),typeof f=="number"?re=ee.get(f)??0:re=Math.min(...m.map(R=>ee.get(R)??0));let Fe=performance.now(),Re=typeof E=="number"?t.GetPathByUid(E):"__NOTIFY_ALL__";n.path=Re,n.token=P,r.emit(0,n),r.callOnStart({path:Re});let Ce=false,Ke=30,Ve=(R,se)=>{let ae=false,te=false,V=false,x=t.GetNodeByUid(R),$=t.GetPathByUid(R),j=x.calledBy,I=d[R];I.length=0;let F=B[R];F.length=0;let G=false;if(x.calledBy===1){G=true,ae=true,i.flushPathSet.add(R);let w=K[R];w&&(I.push(...w),K[R]=null);}let k=(w,Z)=>{let W=ee.get(w)??0,oe=t.GetNodeByUid(w),J=t.GetPathByUid(w),pe=(j===1||j===2)&&W<=ye;pe&&y[w]&16&&(y[w]&=-17,n.path=J,n.triggerPath=$,r.emit(11,n));let ie=0;if(!(y[w]&49)){if(y[w]&2)ie=Q[w]-1;else {if(W>re&&O>Ke){_[w]=W,y[w]&4||(y[w]|=4,D[T++]=w,U++),n.path=J,n.type=7,r.emit(12,n);return}let me=e.GetPrevDependency(w),q=0;for(let he of me){if(y[he]&16)continue;(ee.get(he)??0)>re&&q++;}ie=q;}if(ie<=0){let me=(y[w]&1)!==0,q=(y[w]&32)!==0;if(me||q){n.path=J,n.type=q?3:3.1,r.emit(12,n);return}y[w]&2&&(y[w]&=-3,O--),pe?oe.calledBy=2:oe.calledBy=0,y[w]&1||(y[w]|=1,a[N++]=w,A++),n.path=J,n.type=Z,h.path=$,r.emit(13,n);}else Q[w]=ie,y[w]&2||(y[w]|=2,C[L++]=w,O++);}},de=(w=[])=>{if(l.get(E)!==P)return;if(w.length){let W={},oe=x.proxy;for(let J of w){let pe=(J.args||[]).reduce((ie,me)=>(ie[me]=oe[me],ie),{});try{let ie=J.fn(pe);ie&&typeof ie=="object"&&Object.assign(W,ie);}catch(ie){}}for(let J in W)if(J in x.state)Object.is(x.state[J],W[J])||(x.state[J]=W[J],I.push(J),ae=true,(x.notifyKeys.size===0||x.notifyKeys.has(J))&&(te=true));else throw {error:`wrong effect in ${String(x.path)}`}}ae&&i.flushPathSet.add(R);let Z=(W=[])=>{if(l.get(E)!==P)return;W&&W.length>0&&(v.push(...W),ye=Math.max(ye,ee.get(R)||0)),I.length=0,n.path=$,n.calledBy=x.calledBy,r.emit(7,n),y[R]|=16;let oe=e.GetNextDependency(R);(te||V)&&(ge(R),e.GetAllNextDependency(R).forEach(he=>{X[he]=1;}));let J=t.GetNodeByUid(R),pe=ee.get(R)??0,ie=Se.has(pe)||v.length>0;for(let q of oe){let he=ee.get(q)??0,Pe=t.GetPathByUid(q);if(ie&&he>=pe){_[q]=he,y[q]&4||(y[q]|=4,D[T++]=q,U++),n.path=Pe,n.type=2,r.emit(14,n);continue}if(y[q]&16){n.path=Pe,n.type=2,r.emit(12,n);continue}if(y[q]&32||(y[q]&1)!==0){n.path=Pe,n.type=y[q]&32?3:3.1,r.emit(12,n);continue}if(te||V)k(q,1);else if(y[q]&2)k(q,2);else {let st=ee.get(q);_[q]=st,y[q]&4||(y[q]|=4,D[T++]=q,U++,n.path=Pe,n.type=1,r.emit(14,n));}}y[R]&32&&(y[R]&=-33,Y--),J.calledBy=0,(()=>{if(!M){M=true;let q=Y,he=A,Pe=O;n.path=$,n.type=1,h.active=q,h.pending=he,h.blocked=Pe,r.emit(5,n),Ge();}})();};if(ne(R)&&I.length>0){let W=le(x,I);W instanceof Promise?W.then(Z).catch(ce):Z(W);}else Z([]);},ce=w=>{n.path=$,n.error=w,r.emit(9,n);let Z=Symbol("abort");l.set(E,Z),N=0,A=0,L=0,O=0,T=0,U=0,y.fill(0),Y=0,K.fill(null),r.callOnError(w);},fe=(w,Z)=>{w!==x.state[Z]&&(x.state[Z]=w,ae=true,I.push(String(Z)),n.path=$,n.key=Z,n.value=w,n.calledBy=x.calledBy,r.emit(15,n),(x.notifyKeys.size===0||x.notifyKeys.has(Z))&&(te=true)),t.GetBucket(x.nodeBucket[Z]).isForceNotify()&&(V=true),(te||V)&&ge(R);};n.path=$,n.calledBy=x.calledBy,r.emit(6,n);try{let w=[];for(let Z in x.nodeBucket){let W=t.GetBucket(x.nodeBucket[Z]);if(w.push(...W.getSideEffect()),G){r.emit(15,{path:$,key:String(Z),value:x.state[Z],calledBy:x.calledBy}),W.isForceNotify()&&(V=!0),(x.notifyKeys.size===0||x.notifyKeys.has(Z))&&ge(R);continue}let oe=W.evaluate({affectKey:Z,triggerUid:se,getProxyByUid:J=>t.GetNodeByUid(J).proxy,getStateByUid:J=>t.GetNodeByUid(J).state,GetToken:()=>P});if(oe instanceof Promise){let J=oe.then(pe=>{l.get(E)===P&&fe(pe,Z);});F.push(J);}else fe(oe,Z);}if(F.length>0)return Promise.all(F).then(()=>{de(w);}).catch(ce);de(w);return}catch(w){ce(w);}},Ge=async()=>{if(l.get(E)!==P){M=false;return}M=true;let R=c.getIsFirstFrame(),se=0,ae=()=>30,te=0,V=ae();try{for(;l.get(E)===P;){let x=te>=V,$=c.shouldYield();if(x||$){if(te>0&&(se++,(R||se%2===0)&&i.requestUpdate()),await c.yieldToMain(),l.get(E)!==P)break;te=0,R=c.getIsFirstFrame();}if(A>0&&Y<40){let j=N,I=0;for(let F=0;F<j;F++){let G=a[F];if((y[G]&1)===0)continue;if(Y>=40||te>=V||c.shouldYield()){for(let W=F;W<N;W++){let oe=a[W];y[oe]&1&&(a[I++]=oe);}N=I,A=I;break}let k=t.GetNodeByUid(G),de=t.GetPathByUid(G),ce=ee.get(G)??0,fe=e.GetPrevDependency(G),w=fe.length>1;if((!s||w)&&ce>re){y[G]&=-2,A--;let W=fe.filter(oe=>X[oe]===1&&(y[oe]&16)===0).length;Q[G]=W||0,y[G]&2||(y[G]|=2,C[L++]=G,O++),n.path=de,n.type=W>0?4:5,h.targetLevel=ce,h.currentLevel=re,h.pendingParentsCount=W,r.emit(12,n);continue}y[G]&=-2,A--,(y[G]&32)===0&&(y[G]|=32,Y++),n.path=de,n.calledBy=k.calledBy,r.emit(8,n),Ve(G,f),te++;}if(N>j){for(let F=j;F<N;F++){let G=a[F];y[G]&1&&(a[I++]=G);}N=I,A=N;}else N=I;if(A>0&&Y<40)continue}if(te<V&&s&&O>0&&Y<40){let j=!1,I=0,F=0;for(let G=0;G<L;G++){let k=C[G];if((y[k]&2)===0)continue;if(Q[k]<=0&&I<V){let ce=ee.get(k)??0,fe=e.GetPrevDependency(k);if(ce<=re||fe.length<=1){y[k]&=-3,O--,y[k]&1||(y[k]|=1,a[N++]=k,A++),I++,j=!0;let w=t.GetPathByUid(k);n.path=w,n.type=4,r.emit(13,n);continue}}C[F++]=k;}if(L=F,I>0)continue;if(j){if(c.shouldYield()&&(await c.yieldToMain(),l.get(E)!==P))break;continue}}if(Y===0&&A===0){if(v.length>0){let I=!1,F=re,G=Array.from(new Set(v));v.length=0;for(let k of G){let de=t.GetNodeByUid(k),ce=ue(de);if(ce&&ce.length>0){I=!0,de.calledBy=1,K[k]=ce,y[k]&=-17,y[k]&2&&(y[k]&=-3,O--),y[k]&1||(y[k]|=1,a[N++]=k,A++);let fe=ee.get(de.uid)??0;fe<F&&(F=fe),ge(de.uid),i.flushPathSet.add(de.uid);}}if(I){if(F<re&&(re=F),i.requestUpdate(),c.shouldYield()&&(await c.yieldToMain(),l.get(E)!==P))break;continue}}let j=1/0;for(let I=0;I<T;I++){let F=D[I];if(y[F]&4){let G=_[F];G<j&&(j=G);}}for(let I=0;I<L;I++){let F=C[I];if(y[F]&2){let G=ee.get(F)??0;G>re&&G<j&&(j=G);}}if(j!==1/0&&j<=be){re=j;let I=0;for(let G=0;G<T;G++){let k=D[G];y[k]&4&&(_[k]===j?(y[k]&=-5,U--,y[k]&1||(y[k]|=1,a[N++]=k,A++)):D[I++]=k);}T=I;let F=0;for(let G=0;G<L;G++){let k=C[G];if(y[k]&2)if((ee.get(k)??0)===j){y[k]&=-3,O--,y[k]&1||(y[k]|=1,a[N++]=k,A++);let ce=t.GetPathByUid(k);n.path=ce,n.type=3,h.level=j,r.emit(13,n);}else C[F++]=k;}L=F;continue}else {for(let I=0;I<T;I++){let F=D[I];if(y[F]&4){y[F]|=16;let G=t.GetPathByUid(F);n.path=G,n.type=6,r.emit(12,n);}}T=0,U=0;for(let I=0;I<L;I++){let F=C[I];if(y[F]&2){y[F]|=16;let G=t.GetPathByUid(F);n.path=G,n.type=6,r.emit(12,n);}}L=0,O=0;break}}A>0&&Y>=40&&(n.type=2,r.emit(4,n));break}}finally{M=false;let x=Y+O+A,$=u.inFlightCount||0;if(!(o===P)){n.token=P,r.emit(3,n);return}if(i.requestUpdate(),x===0&&$===0){if(l.get(E)===P&&!Ce){Ce=true,n.type=1,r.emit(2,n),u.resetCounters(),K.fill(null);let I=performance.now();ye=-1,l.delete(E),n.token=P,n.duration=(I-Fe).toFixed(2.1)+"ms",r.emit(1,n),Promise.resolve().then(()=>{r.callOnSuccess();});}}else {let I=x===0&&$>0?3:1;if(n.type=I,h.nums=Y,h.asyncNums=$,r.emit(4,n),$>0){let F=()=>{o===P&&(u.inFlightCount===0?Be(()=>{u.inFlightCount===0?Ge():requestAnimationFrame(F);}):requestAnimationFrame(F));};requestAnimationFrame(F);}}}};Ge();},CancelTask:g}}function Ue(p){let{path:e,uid:t,type:r,meta:i,dirtySignal:c,state:l}=p,s=null,o=["path","uid","type","dependOn","nodeBucket"],h={path:e,uid:t,type:r,meta:i,dirtySignal:c,createView:(n={})=>{if(s&&Object.keys(n).length===0)return s;let S=new Proxy(n,{get(f,m){let b=m;return Reflect.has(f,m)?Reflect.get(f,m):b in p.state?p.state[b]:b in p?p[b]:i&&b in i?i[b]:Reflect.get(f,m)},set(f,m,b){return false},ownKeys(f){let m=new Set([...Reflect.ownKeys(f),...Object.keys(l||{}),...Object.keys(i||{}),...o]);return Array.from(m)},getOwnPropertyDescriptor(f,m){let b=m;return Reflect.has(f,m)||l&&b in l||i&&b in i||o.includes(b)?{enumerable:true,configurable:true}:Reflect.getOwnPropertyDescriptor(f,m)}});return s=S,S}};return "children"in p?{...h,children:p.children}:{...h,state:p.state,nodeBucket:p.nodeBucket,notifyKeys:p.notifyKeys,dependOn:p.dependOn,calledBy:0,get proxy(){return s}}}var tt=(p,e,t,r,i,c,l)=>{let s=p.useEntangleStep,o=[],g=[],h=new Set,n=r,m=t,b=0,P=0,E=100,M=()=>{let a={link:null,impactNode:null,impactUid:-1,hitTargetUids:null,isDirty:false,propose:null};return a.propose={set:(N,A,C=1)=>{A!==a.impactNode.state[N]&&(a.link.count++,(!g[a.impactUid]||g[a.impactUid].length===0)&&(g[a.impactUid]=[],P++),g[a.impactUid].push({key:N,value:A,weight:C}),a.isDirty||(a.hitTargetUids.push(a.impactUid),a.isDirty=true));},update:(N,A,C="add")=>{a.link.count++,(!g[a.impactUid]||g[a.impactUid].length===0)&&(g[a.impactUid]=[],P++),g[a.impactUid].push({key:N,delta:A,op:C,weight:1}),a.isDirty||(a.hitTargetUids.push(a.impactUid),a.isDirty=true);},patch:(N,A)=>{a.link.count++,(!g[a.impactUid]||g[a.impactUid].length===0)&&(g[a.impactUid]=[],P++),g[a.impactUid].push({key:N,patch:A,weight:1}),a.isDirty||(a.hitTargetUids.push(a.impactUid),a.isDirty=true);}},a},z=Array.from({length:E},M),X=E-1,Y=(a,N,A)=>{let C=N.path,L=a.impact;if(a.count>=s){l.emit("entangle:blocked",{observer:C,target:L,count:a.count});return}let O=n(L),D=a.isProxy?N.proxy:N,T=a.isProxy?O.proxy:O;if(a.filter&&!a.filter(D,T))return;let U,K=true;X<0?(U=M(),K=false):U=z[X--],U.isDirty=false,U.link=a,U.impactNode=O,U.impactUid=O.uid,U.hitTargetUids=A;let v=a.emit(D,T,U.propose);if(v instanceof Promise||v&&typeof v.then=="function")return b++,(async()=>{try{await v;}catch(u){l.emit("node:error",{path:C,error:u}),l.onError({path:C,error:u});}finally{b--,K&&(z[++X]=U);}})();K&&(z[++X]=U);};return {useEntangle:a=>{let{cause:N,impact:A,via:C,emit:L,filter:O,isProxy:D}=a;if(!C||C.length===0){l.emit("entangle:warn",{path:N,type:"no_keys"});return}let U=n(N).uid;o[U]||(o[U]=new Map);let K=o[U];for(let v=0;v<C.length;v++){let u=C[v];K.has(u)||K.set(u,[]),K.get(u).push({impact:A,emit:L,filter:O,count:0,isProxy:!!D});}},updateEntangleLevel:()=>{let a=m();h.clear();for(let N=0;N<o.length;N++)if(o[N]!==void 0){let A=a.get(N)||0;h.add(A);}},Turnstile:{volatileLevels:h,get inFlightCount(){return b},get hasPendingGhosts(){return P>0},hasObserver:a=>o[a]!==void 0,getTriggerKeys:a=>{let N=o[a];return N?Array.from(N.keys()):[]},receiveGhosts:(a,N=[])=>{let A=a.uid,C=[],L=o[A];if(!L||N.length===0)return C;let O=[];for(let v=0;v<N.length;v++){let u=L.get(N[v]);if(u)for(let d=0;d<u.length;d++)O.push(u[d]);}let D=0,T=false,U=null;for(;D<O.length;D++){if(e.shouldYield()){T=true;break}let v=Y(O[D],a,C);if(v){U=v,T=true,D++;break}}let K=()=>{if(C.length<=1)return C;let v=[],u=Object.create(null);for(let d=0;d<C.length;d++){let B=C[d];u[B]||(u[B]=true,v.push(B));}return v};return T?(async()=>{for(U&&await U,e.shouldYield()&&await e.yieldToMain();D<O.length;){let v=[],u=Math.min(D+E,O.length);for(;D<u;D++){let d=Y(O[D],a,C);d&&v.push(d);}v.length>0&&await Promise.all(v.map(async d=>{await d,e.shouldYield()&&await e.yieldToMain();})),e.shouldYield()&&await e.yieldToMain();}return K()})():K()},resolveGhosts:a=>{let N=a.uid,A=g[N];if(!A||A.length===0)return [];let C=[],L=Object.create(null);for(let O=0;O<A.length;O++){let D=A[O];L[D.key]||(L[D.key]=[]),L[D.key].push(D);}for(let O in L){let D=L[O],T=a.state[O],U,K=-1/0,v=false;for(let u=0;u<D.length;u++){let d=D[u];if(d.patch!==void 0&&(T=d.patch(T)),d.value!==void 0){let B=d.weight??1;B>=K&&(K=B,U=d.value,v=true);}}v&&(T=U);for(let u=0;u<D.length;u++){let d=D[u];if(d.delta!==void 0)switch(d.op||"add"){case "add":T=(typeof T=="number"?T:0)+d.delta;break;case "remove":T=Array.isArray(T)?T.filter(H=>H!==d.delta):T;break;case "intersect":T=Array.isArray(T)?T.filter(H=>d.delta.includes(H)):d.delta;break;case "union":{let H=Array.isArray(T)?T:[],ne=Array.isArray(d.delta)?d.delta:[d.delta];T=[...new Set([...H,...ne])];break}case "merge":{let H=typeof T=="object"&&T!==null&&!Array.isArray(T)?T:{},ne=typeof d.delta=="object"&&d.delta!==null&&!Array.isArray(d.delta)?d.delta:{};T={...H,...ne};break}}}Object.is(a.state[O],T)||(a.state[O]=T,C.push(O));}return g[N]=[],P--,C.length>0?C:[]},resetCounters:()=>{for(let a=0;a<o.length;a++){let N=o[a];if(N)for(let A of N.values())for(let C=0;C<A.length;C++)A[C].count=0;}}}}};function nt(p,e,t,r,i){let c=Je(),l=0,s=new Map,o=[],g=[],h=[],n=[],S=false,f=new Set,b=async()=>{let u=Array.from(f);if(f.clear(),"signalTrigger"in i&&typeof i.signalTrigger=="function")for(let d of u){let B=N(d);i.signalTrigger(B.dirtySignal);}else "emit"in i&&i.emit(u);},P=()=>{S||(S=true,requestAnimationFrame(()=>{try{for(;f.size>0;)b();}finally{S=false;}}));},{useEntangle:E,updateEntangleLevel:M,Turnstile:z}=tt({useEntangleStep:p.useEntangleStep},c,e.GetUidToLevelMap,a,N,A,{emit:r.emit,onError:r.callOnError}),{TaskRunner:X,CancelTask:Y}=et({useGreedy:p.useGreedy},e,{GetNodeByPath:a,GetNodeByUid:N,GetPathByUid:A,GetBucket:O,GetMaxUid:D,Turnstile:z},r,{requestUpdate:P,flushPathSet:f},c),y=u=>{throw new Error(`[MeshFlow] Duplicate Path: ${u}`)},Q=u=>{s.has(u.path)&&y(String(u.path));let d=++l,B={path:u.path,getNode:le=>a(le)},H=(le,ue="value")=>{let Me=le({...B}),Se=a(u.path);if(t.createHistoryAction&&t.pushIntoHistory){let ye=t.createHistoryAction([{path:u.path,value:Se.state[ue]},{path:u.path,value:Me}],ee=>{let re=a(ee.path);re.state[ue]=ee.value,T(ee.path);});t.pushIntoHistory(ye);}Se.state[ue]=Me,T(u.path);},ne=Ue({uid:d,type:u.type,path:u.path,state:u.state,meta:u.meta,nodeBucket:{},dirtySignal:"signalCreator"in i?i.signalCreator():void 0,notifyKeys:u.notifyKeys,dependOn:H});return s.set(ne.path,d),h[d]=ne.path,o[d]=ne,ne},_=u=>{s.has(u.path)&&y(String(u.path));let d=++l,B=Ue({uid:d,type:u.type,path:u.path,state:{},meta:u,nodeBucket:{},children:u.children});return s.set(B.path,d),g[d]=B,B};function a(u){let d=s.get(u),B=o[d];if(!B)throw Error("Wrong id");return B}function N(u){let d=o[u];if(!d)throw Error("Wrong id");return d}function A(u){return h[u]}function C(u){let d=s.get(u);return g[d]}function L(u){return n.push(u)-1}function O(u){let d=n[u];if(!d)throw Error("Wrong id");return d}function D(){return l}let T=u=>{let d=a(u);if(!d)throw Error("Wrong id");f.add(d.uid),P();let B=e.GetNextDependency(d.uid);U(d.uid,B);};function U(u,d){X(u,d);}return {registerNode:Q,registerGroupNode:_,GetNodeByPath:a,GetGroupByPath:C,notify:T,notifyAll:async()=>{Promise.resolve().then(async()=>{let u=e.GetDependencyOrder();if(!u||u.length===0)return;let d=u[0];try{X(null,d);}catch(B){throw r.callOnError(B),B}finally{P();}});},batchNotify:u=>{if(!u||u.length===0)return;if(t.createHistoryAction&&t.pushIntoHistory){let B=t.createHistoryAction([u.map(H=>({path:H.path,key:H.key,value:a(H.path).state[H.key]})),u.map(H=>({path:H.path,key:H.key,value:H.value}))],H=>{let ne=new Set;H.forEach(le=>{let ue=a(le.path);ue.state[le.key]=le.value,f.add(le.path),ne.add(le.uid);}),P(),ne.size>0&&X(null,Array.from(ne));});t.pushIntoHistory(B);}let d=new Set;u.forEach(B=>{let H=a(B.path);H.state[B.key]=B.value,f.add(H.uid),d.add(H.uid);}),P(),d.size>0&&X(null,Array.from(d));},useEntangle:E,updateEntangleLevel:M,SetBucket:L,GetBucket:O,CancelTask:Y,UITrigger:i,UidToNodeMap:o}}function rt(p,e){let t=false,r=false,i=false,c=false,l=new Map,s=[],o=[],g=[],h=[],n=[],S=[],f=[],m=new Map,{GetNextDependency:P,GetPrevDependency:E,GetAllPrevDependency:M,GetAllNextDependency:z,rebuildDirectDependencyMaps:X}=ze(()=>s,()=>g,()=>S,()=>n),Y={},y={};if(e.modules.useHistory){let V=e.modules.useHistory,x;V.isMeshModuleInited?x=V:x=V();let{Undo:$,Redo:j,PushIntoHistory:I,CreateHistoryAction:F,updateUndoSize:G,updateRedoSize:k}=x();Y.pushIntoHistory=I,Y.createHistoryAction=F,y={Undo:$,Redo:j,updateUndoSize:G,updateRedoSize:k};}let Q=!!e.modules.useMeshRenderGate,_={};if(Q){let V=e.modules.useMeshRenderGate.isMeshModuleInited,x=e.modules.useMeshRenderGate;_=(V?x:x())(()=>ue);}let{onError:a,callOnError:N}=Qe(),{onSuccess:A,callOnSuccess:C}=$e(),{onStart:L,callOnStart:O}=Ze(),{emit:D,usePlugin:T,destroyPlugin:U}=Xe(),{SetTrace:K,useTrace:v}=je(),u=v();T(u);let d=Q?{..._}:{...e.UITrigger},B=nt({useGreedy:e.config.useGreedy,useEntangleStep:e.config.useEntangleStep||100},{GetDependencyOrder:()=>f,GetAllNextDependency:z,GetNextDependency:P,GetPrevDependency:E,GetAllPrevDependency:M,GetUidToLevelMap:()=>m},Y,{callOnError:N,callOnSuccess:C,callOnStart:O,emit:D},d),{SetBucket:H,GetBucket:ne,GetGroupByPath:le,GetNodeByPath:ue,notifyAll:Me,useEntangle:Se,updateEntangleLevel:ye,CancelTask:ee}=B;Q&&_.init();let re={};if(e.modules.useInternalForm){let{uiSchema:V,GetFormData:x}=e.modules.useInternalForm(B,p);re={uiSchema:V,GetFormData:x};}let be={};if(e.modules.useSchemaValidators){let{SetValidators:V}=e.modules.useSchemaValidators(ue);be={SetValidators:V};}let{SetRule:ge,SetRules:Ae}=He(ue,H,ne,s,g,o,h,l),{SetStrategy:ve}=Ye(ue,ne),Ie=qe(s,l),Oe=()=>{let V=Ie();f=V.steps,m=V.levelMap,Te();},Te=()=>{i&&(ye(),i=false);},Fe=()=>{c||(c=true,Promise.resolve().then(Te).finally(()=>{c=false;}));},Re=()=>{r||(r=true,Promise.resolve().then(()=>{if(Oe(),t){let{directNextMap:V,directPrevMap:x}=X(f.flat());n=V,S=x;}}).finally(()=>{r=false,t=false;}));};return {SetRule:(V,x,$,j)=>{ge(V,x,$,j),t=true,Re();},SetRules:(V,x,$,j)=>{Ae(V,x,$,j),t=true,Re();},SetStrategy:ve,useEntangle:V=>{Se(V),i=true,Fe();},SetTrace:K,usePlugin:T,SetValue:(V,x,$)=>{Te(),ue(V).dependOn(()=>$,x);},GetValue:(V,x="value")=>ue(V).proxy[x],SetValues:V=>{Te(),B.batchNotify(V);},GetGroupByPath:le,notifyAll:async()=>{Oe(),await Me();},GetAllDependency:()=>s,GetDependencyOrder:()=>f,historyExports:y,formExports:re,validatorExports:be,batchRenderExport:_,hasRenderGate:()=>Q,onError:a,onSuccess:A,onStart:L,scheduler:B,destroyPlugin:U,CancelTask:ee}}var xe=new Map,at=(p,e,t)=>{try{if(xe.has(p))throw Error("engineID repeated");let r=rt(e,{config:t.config||{useGreedy:!1},UITrigger:t.UITrigger,modules:t.modules??{},plugins:{}}),{SetRule:i,SetRules:c,SetValues:l,SetStrategy:s,SetValue:o,GetValue:g,usePlugin:h,useEntangle:n,GetGroupByPath:S,notifyAll:f,SetTrace:m,GetAllDependency:b,GetDependencyOrder:P,historyExports:E,formExports:M,validatorExports:z,batchRenderExport:X,hasRenderGate:Y,onError:y,onSuccess:Q,onStart:_,scheduler:a,destroyPlugin:N,CancelTask:A}=r,C={config:{SetRule:i,SetRules:c,SetStrategy:s,notifyAll:f,SetTrace:m,usePlugin:h,hasRenderGate:Y,useEntangle:n},data:{SetValue:o,GetValue:g,SetValues:l,GetGroupByPath:S},dependency:{GetAllDependency:b,GetDependencyOrder:P},hooks:{onError:y,onSuccess:Q,onStart:_}},L=(T,U,K)=>{!U||typeof U!="object"||Object.keys(U).forEach(v=>{let u=U[v];if(typeof u=="object"&&u!==null)T[v]=T[v]||{},L(T[v],u,K);else if(typeof u=="function"){let d=v;if(d==="useMeshRenderGate")d="render";else if(d.startsWith("use")){let B=d.slice(3);d=B.charAt(0).toLowerCase()+B.slice(1);}v==="useHistory"&&K.exports.history&&Object.keys(K.exports.history).length>0?T[d]=K.exports.history:v==="useInternalForm"&&K.exports.form&&Object.keys(K.exports.form).length>0?T[d]=K.exports.form:v==="useSchemaValidators"&&K.exports.validator&&Object.keys(K.exports.validator).length>0?T[d]=K.exports.validator:v==="useMeshRenderGate"&&K.exports.render?T[d]=K.exports.render:T[d]=u(K.scheduler,K.Schema);}});},O={...C,destroyPlugin:N,CancelTask:A,modules:{}},D=t.modules;return D&&L(O.modules,D,{scheduler:a,Schema:e,exports:{history:E,form:M,validator:z,render:X}}),xe.set(p,O),O}catch(r){throw Error(r)}},yn=()=>(p,e,t)=>ot(p,e,t),fn=p=>{let e=xe.get(p);if(!e)throw Error("Engine not found.");return e},pn=p=>{let e=xe.get(p);e.destroyPlugin(),e.CancelTask(),xe.delete(p);},ot=at;export{_e as DefaultStrategy,we as MeshFlowEventsName,ke as TriggerCause,pn as deleteEngine,fn as useEngine,at as useEngineManager,ot as useMeshFlow,yn as useMeshFlowDefiner,nt as useScheduler};
|
package/metafile-cjs.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"inputs":{"utils/core/types/types.ts":{"bytes":
|
|
1
|
+
{"inputs":{"utils/core/types/types.ts":{"bytes":7417,"imports":[{"path":"../utils/util","kind":"import-statement","external":true}],"format":"esm"},"utils/core/engine/bucket.ts":{"bytes":18950,"imports":[],"format":"esm"},"utils/core/dependency/useSetRule.ts":{"bytes":9720,"imports":[{"path":"utils/core/engine/bucket.ts","kind":"import-statement","original":"../engine/bucket"},{"path":"../types/types","kind":"import-statement","external":true},{"path":"../utils/util","kind":"import-statement","external":true}],"format":"esm"},"utils/core/dependency/useStrategy.ts":{"bytes":557,"imports":[{"path":"../engine/bucket","kind":"import-statement","external":true},{"path":"../utils/util","kind":"import-statement","external":true}],"format":"esm"},"utils/core/plugins/useExecutionTrace.ts":{"bytes":3887,"imports":[{"path":"utils/core/types/types.ts","kind":"import-statement","original":"../types/types"}],"format":"esm"},"utils/core/dependency/useDepenency.ts":{"bytes":6586,"imports":[{"path":"utils/core/types/types.ts","kind":"import-statement","original":"../types/types"}],"format":"esm"},"utils/core/hooks/useCreateHook.ts":{"bytes":436,"imports":[],"format":"esm"},"utils/core/hooks/useOnError.ts":{"bytes":481,"imports":[{"path":"utils/core/hooks/useCreateHook.ts","kind":"import-statement","original":"./useCreateHook"},{"path":"../types/types","kind":"import-statement","external":true}],"format":"esm"},"utils/core/hooks/useOnSuccess.ts":{"bytes":216,"imports":[{"path":"utils/core/hooks/useCreateHook.ts","kind":"import-statement","original":"./useCreateHook"}],"format":"esm"},"utils/core/plugins/usePlugin.ts":{"bytes":2971,"imports":[{"path":"../types/types","kind":"import-statement","external":true}],"format":"esm"},"utils/core/hooks/useOnStart.ts":{"bytes":210,"imports":[{"path":"utils/core/hooks/useCreateHook.ts","kind":"import-statement","original":"./useCreateHook"}],"format":"esm"},"utils/core/utils/util.ts":{"bytes":6875,"imports":[],"format":"esm"},"utils/core/engine/useMeshTask.ts":{"bytes":82718,"imports":[{"path":"utils/core/utils/util.ts","kind":"import-statement","original":"../utils/util"},{"path":"utils/core/types/types.ts","kind":"import-statement","original":"../types/types"},{"path":"./bucket","kind":"import-statement","external":true}],"format":"esm"},"utils/core/engine/useMeshNode.ts":{"bytes":4009,"imports":[{"path":"../types/types","kind":"import-statement","external":true}],"format":"esm"},"utils/core/dependency/useSetEntangle.ts":{"bytes":13440,"imports":[{"path":"../types/types","kind":"import-statement","external":true},{"path":"../utils/util","kind":"import-statement","external":true}],"format":"esm"},"utils/core/engine/useScheduler.ts":{"bytes":13453,"imports":[{"path":"utils/core/types/types.ts","kind":"import-statement","original":"../types/types"},{"path":"utils/core/engine/useMeshTask.ts","kind":"import-statement","original":"./useMeshTask"},{"path":"utils/core/engine/useMeshNode.ts","kind":"import-statement","original":"./useMeshNode"},{"path":"utils/core/utils/util.ts","kind":"import-statement","original":"../utils/util"},{"path":"utils/core/dependency/useSetEntangle.ts","kind":"import-statement","original":"../dependency/useSetEntangle"},{"path":"./bucket","kind":"import-statement","external":true}],"format":"esm"},"utils/core/engine/useEngineInstance.ts":{"bytes":13134,"imports":[{"path":"utils/core/dependency/useSetRule.ts","kind":"import-statement","original":"../dependency/useSetRule"},{"path":"utils/core/dependency/useStrategy.ts","kind":"import-statement","original":"../dependency/useStrategy"},{"path":"utils/core/plugins/useExecutionTrace.ts","kind":"import-statement","original":"../plugins/useExecutionTrace"},{"path":"utils/core/dependency/useDepenency.ts","kind":"import-statement","original":"../dependency/useDepenency"},{"path":"utils/core/hooks/useOnError.ts","kind":"import-statement","original":"../hooks/useOnError"},{"path":"utils/core/hooks/useOnSuccess.ts","kind":"import-statement","original":"../hooks/useOnSuccess"},{"path":"utils/core/plugins/usePlugin.ts","kind":"import-statement","original":"../plugins/usePlugin"},{"path":"utils/core/hooks/useOnStart.ts","kind":"import-statement","original":"../hooks/useOnStart"},{"path":"../types/types","kind":"import-statement","external":true},{"path":"utils/core/engine/useScheduler.ts","kind":"import-statement","original":"./useScheduler"},{"path":"../utils/util","kind":"import-statement","external":true}],"format":"esm"},"utils/core/engine/useEngineManager.ts":{"bytes":11068,"imports":[{"path":"utils/core/types/types.ts","kind":"import-statement","original":"../types/types"},{"path":"../utils/util","kind":"import-statement","external":true},{"path":"utils/core/engine/useEngineInstance.ts","kind":"import-statement","original":"./useEngineInstance"},{"path":"utils/core/types/types.ts","kind":"import-statement","original":"../types/types"},{"path":"utils/core/engine/bucket.ts","kind":"import-statement","original":"../engine/bucket"},{"path":"utils/core/engine/useScheduler.ts","kind":"import-statement","original":"../engine/useScheduler"}],"format":"esm"}},"outputs":{"lib-dist/index.js":{"imports":[],"exports":["DefaultStrategy","MeshFlowEventsName","TriggerCause","deleteEngine","useEngine","useEngineManager","useMeshFlow","useMeshFlowDefiner","useScheduler"],"entryPoint":"utils/core/engine/useEngineManager.ts","inputs":{"utils/core/types/types.ts":{"bytesInOutput":735},"utils/core/engine/bucket.ts":{"bytesInOutput":5468},"utils/core/dependency/useSetRule.ts":{"bytesInOutput":2105},"utils/core/dependency/useStrategy.ts":{"bytesInOutput":128},"utils/core/plugins/useExecutionTrace.ts":{"bytesInOutput":663},"utils/core/dependency/useDepenency.ts":{"bytesInOutput":1034},"utils/core/hooks/useCreateHook.ts":{"bytesInOutput":122},"utils/core/hooks/useOnError.ts":{"bytesInOutput":68},"utils/core/hooks/useOnSuccess.ts":{"bytesInOutput":72},"utils/core/plugins/usePlugin.ts":{"bytesInOutput":424},"utils/core/hooks/useOnStart.ts":{"bytesInOutput":68},"utils/core/utils/util.ts":{"bytesInOutput":462},"utils/core/engine/useMeshTask.ts":{"bytesInOutput":8773},"utils/core/engine/useMeshNode.ts":{"bytesInOutput":891},"utils/core/dependency/useSetEntangle.ts":{"bytesInOutput":4029},"utils/core/engine/useScheduler.ts":{"bytesInOutput":2887},"utils/core/engine/useEngineInstance.ts":{"bytesInOutput":2501},"utils/core/engine/useEngineManager.ts":{"bytesInOutput":1853}},"bytes":32478}}}
|
package/metafile-esm.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"inputs":{"utils/core/types/types.ts":{"bytes":
|
|
1
|
+
{"inputs":{"utils/core/types/types.ts":{"bytes":7417,"imports":[{"path":"../utils/util","kind":"import-statement","external":true}],"format":"esm"},"utils/core/engine/bucket.ts":{"bytes":18950,"imports":[],"format":"esm"},"utils/core/dependency/useSetRule.ts":{"bytes":9720,"imports":[{"path":"utils/core/engine/bucket.ts","kind":"import-statement","original":"../engine/bucket"},{"path":"../types/types","kind":"import-statement","external":true},{"path":"../utils/util","kind":"import-statement","external":true}],"format":"esm"},"utils/core/dependency/useStrategy.ts":{"bytes":557,"imports":[{"path":"../engine/bucket","kind":"import-statement","external":true},{"path":"../utils/util","kind":"import-statement","external":true}],"format":"esm"},"utils/core/plugins/useExecutionTrace.ts":{"bytes":3887,"imports":[{"path":"utils/core/types/types.ts","kind":"import-statement","original":"../types/types"}],"format":"esm"},"utils/core/dependency/useDepenency.ts":{"bytes":6586,"imports":[{"path":"utils/core/types/types.ts","kind":"import-statement","original":"../types/types"}],"format":"esm"},"utils/core/hooks/useCreateHook.ts":{"bytes":436,"imports":[],"format":"esm"},"utils/core/hooks/useOnError.ts":{"bytes":481,"imports":[{"path":"utils/core/hooks/useCreateHook.ts","kind":"import-statement","original":"./useCreateHook"},{"path":"../types/types","kind":"import-statement","external":true}],"format":"esm"},"utils/core/hooks/useOnSuccess.ts":{"bytes":216,"imports":[{"path":"utils/core/hooks/useCreateHook.ts","kind":"import-statement","original":"./useCreateHook"}],"format":"esm"},"utils/core/plugins/usePlugin.ts":{"bytes":2971,"imports":[{"path":"../types/types","kind":"import-statement","external":true}],"format":"esm"},"utils/core/hooks/useOnStart.ts":{"bytes":210,"imports":[{"path":"utils/core/hooks/useCreateHook.ts","kind":"import-statement","original":"./useCreateHook"}],"format":"esm"},"utils/core/utils/util.ts":{"bytes":6875,"imports":[],"format":"esm"},"utils/core/engine/useMeshTask.ts":{"bytes":82718,"imports":[{"path":"utils/core/utils/util.ts","kind":"import-statement","original":"../utils/util"},{"path":"utils/core/types/types.ts","kind":"import-statement","original":"../types/types"},{"path":"./bucket","kind":"import-statement","external":true}],"format":"esm"},"utils/core/engine/useMeshNode.ts":{"bytes":4009,"imports":[{"path":"../types/types","kind":"import-statement","external":true}],"format":"esm"},"utils/core/dependency/useSetEntangle.ts":{"bytes":13440,"imports":[{"path":"../types/types","kind":"import-statement","external":true},{"path":"../utils/util","kind":"import-statement","external":true}],"format":"esm"},"utils/core/engine/useScheduler.ts":{"bytes":13453,"imports":[{"path":"utils/core/types/types.ts","kind":"import-statement","original":"../types/types"},{"path":"utils/core/engine/useMeshTask.ts","kind":"import-statement","original":"./useMeshTask"},{"path":"utils/core/engine/useMeshNode.ts","kind":"import-statement","original":"./useMeshNode"},{"path":"utils/core/utils/util.ts","kind":"import-statement","original":"../utils/util"},{"path":"utils/core/dependency/useSetEntangle.ts","kind":"import-statement","original":"../dependency/useSetEntangle"},{"path":"./bucket","kind":"import-statement","external":true}],"format":"esm"},"utils/core/engine/useEngineInstance.ts":{"bytes":13134,"imports":[{"path":"utils/core/dependency/useSetRule.ts","kind":"import-statement","original":"../dependency/useSetRule"},{"path":"utils/core/dependency/useStrategy.ts","kind":"import-statement","original":"../dependency/useStrategy"},{"path":"utils/core/plugins/useExecutionTrace.ts","kind":"import-statement","original":"../plugins/useExecutionTrace"},{"path":"utils/core/dependency/useDepenency.ts","kind":"import-statement","original":"../dependency/useDepenency"},{"path":"utils/core/hooks/useOnError.ts","kind":"import-statement","original":"../hooks/useOnError"},{"path":"utils/core/hooks/useOnSuccess.ts","kind":"import-statement","original":"../hooks/useOnSuccess"},{"path":"utils/core/plugins/usePlugin.ts","kind":"import-statement","original":"../plugins/usePlugin"},{"path":"utils/core/hooks/useOnStart.ts","kind":"import-statement","original":"../hooks/useOnStart"},{"path":"../types/types","kind":"import-statement","external":true},{"path":"utils/core/engine/useScheduler.ts","kind":"import-statement","original":"./useScheduler"},{"path":"../utils/util","kind":"import-statement","external":true}],"format":"esm"},"utils/core/engine/useEngineManager.ts":{"bytes":11068,"imports":[{"path":"utils/core/types/types.ts","kind":"import-statement","original":"../types/types"},{"path":"../utils/util","kind":"import-statement","external":true},{"path":"utils/core/engine/useEngineInstance.ts","kind":"import-statement","original":"./useEngineInstance"},{"path":"utils/core/types/types.ts","kind":"import-statement","original":"../types/types"},{"path":"utils/core/engine/bucket.ts","kind":"import-statement","original":"../engine/bucket"},{"path":"utils/core/engine/useScheduler.ts","kind":"import-statement","original":"../engine/useScheduler"}],"format":"esm"}},"outputs":{"lib-dist/index.mjs":{"imports":[],"exports":["DefaultStrategy","MeshFlowEventsName","TriggerCause","deleteEngine","useEngine","useEngineManager","useMeshFlow","useMeshFlowDefiner","useScheduler"],"entryPoint":"utils/core/engine/useEngineManager.ts","inputs":{"utils/core/types/types.ts":{"bytesInOutput":735},"utils/core/engine/bucket.ts":{"bytesInOutput":5468},"utils/core/dependency/useSetRule.ts":{"bytesInOutput":2105},"utils/core/dependency/useStrategy.ts":{"bytesInOutput":128},"utils/core/plugins/useExecutionTrace.ts":{"bytesInOutput":663},"utils/core/dependency/useDepenency.ts":{"bytesInOutput":1034},"utils/core/hooks/useCreateHook.ts":{"bytesInOutput":122},"utils/core/hooks/useOnError.ts":{"bytesInOutput":68},"utils/core/hooks/useOnSuccess.ts":{"bytesInOutput":72},"utils/core/plugins/usePlugin.ts":{"bytesInOutput":424},"utils/core/hooks/useOnStart.ts":{"bytesInOutput":68},"utils/core/utils/util.ts":{"bytesInOutput":462},"utils/core/engine/useMeshTask.ts":{"bytesInOutput":8773},"utils/core/engine/useMeshNode.ts":{"bytesInOutput":891},"utils/core/dependency/useSetEntangle.ts":{"bytesInOutput":4029},"utils/core/engine/useScheduler.ts":{"bytesInOutput":2887},"utils/core/engine/useEngineInstance.ts":{"bytesInOutput":2501},"utils/core/engine/useEngineManager.ts":{"bytesInOutput":1853}},"bytes":32478}}}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@meshflow/core",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.5",
|
|
4
4
|
"description": "A logic orchestration engine utilizing topological scheduling and watermark control to resolve asynchronous race conditions in complex dependency linkages.”",
|
|
5
5
|
"main": "./index.cjs",
|
|
6
6
|
"module": "./index.js",
|