|
const Reactive={};(()=>{const e="[[ReactiveState]]",t=e=>{e.o.n();for(const r of e.c)t(r)},r=(e,t,r)=>Array.isArray(t)?s(e,t,r):o(e,t,r),s=(e,r,n)=>new Proxy(r,{get:(t,r)=>Array.isArray(t[r])?s(e,t[r],n):"object"==typeof t[r]?o(e,t[r],n):t[r],set:(e,r,s)=>e[r]===s||(e[r]=s,t(n),!0)}),o=(r,n,i)=>{const c={};for(const f in n)if(f!==e&&"toJSON"!==f){if(n[f][e])n[f][e].c.push(i);else if(Array.isArray(n[f]))n[f]=s(r,n[f],i);else if("object"==typeof n[f])n[f]=o(r,n[f],i);else if(i.p.includes(f))continue;c[f]=n[f],Object.defineProperty(n,f,{enumerable:!0,get:()=>c[f],set:e=>c[f]===e||(c[f]=e,t(i),!0)}),i.p.push(f)}return n};Reactive.observe=((t,r,s=[])=>{const o=[];for(const e of s)o.push(e());const n=t[e].o.s(()=>{if(0!==s.length)for(let e=0;e<s.length;e++){const n=s[e]();if(o[e]!==n)return o[e]=n,void r(t)}else r(t)});return()=>n.u()}),Reactive.create=(t=>{if(t[e])return r(t,t,t[e]);const s={o:new class{constructor(){this._s=[]}s(e){return this._s.push(e),{u:()=>this._ss=this._s.filter(t=>t!==e)}}n(e){for(const t |