tinybase 7.2.0-beta.2 → 7.2.0-beta.3
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/@types/queries/index.d.ts +333 -4
- package/@types/queries/with-schemas/index.d.ts +359 -4
- package/@types/ui-react/index.d.ts +477 -8
- package/@types/ui-react/with-schemas/index.d.ts +519 -8
- package/agents.md +34 -0
- package/index.js +67 -12
- package/min/index.js +1 -1
- package/min/index.js.gz +0 -0
- package/min/omni/index.js +1 -1
- package/min/omni/index.js.gz +0 -0
- package/min/omni/with-schemas/index.js +1 -1
- package/min/omni/with-schemas/index.js.gz +0 -0
- package/min/queries/index.js +1 -1
- package/min/queries/index.js.gz +0 -0
- package/min/queries/with-schemas/index.js +1 -1
- package/min/queries/with-schemas/index.js.gz +0 -0
- package/min/ui-react/index.js +1 -1
- package/min/ui-react/index.js.gz +0 -0
- package/min/ui-react/with-schemas/index.js +1 -1
- package/min/ui-react/with-schemas/index.js.gz +0 -0
- package/min/ui-react-dom/index.js +1 -1
- package/min/ui-react-dom/index.js.gz +0 -0
- package/min/ui-react-dom/with-schemas/index.js +1 -1
- package/min/ui-react-dom/with-schemas/index.js.gz +0 -0
- package/min/ui-react-inspector/index.js +1 -1
- package/min/ui-react-inspector/index.js.gz +0 -0
- package/min/ui-react-inspector/with-schemas/index.js +1 -1
- package/min/ui-react-inspector/with-schemas/index.js.gz +0 -0
- package/min/with-schemas/index.js +1 -1
- package/min/with-schemas/index.js.gz +0 -0
- package/omni/index.js +157 -41
- package/omni/with-schemas/index.js +157 -41
- package/package.json +2 -2
- package/queries/index.js +80 -15
- package/queries/with-schemas/index.js +80 -15
- package/readme.md +2 -2
- package/releases.md +1 -1
- package/ui-react/index.js +94 -29
- package/ui-react/with-schemas/index.js +94 -29
- package/ui-react-dom/index.js +34 -14
- package/ui-react-dom/with-schemas/index.js +34 -14
- package/ui-react-inspector/index.js +36 -16
- package/ui-react-inspector/with-schemas/index.js +36 -16
- package/with-schemas/index.js +67 -12
package/index.js
CHANGED
|
@@ -78,6 +78,10 @@ const arrayEvery = (array, cb) => array.every(cb);
|
|
|
78
78
|
const arrayIsEqual = (array1, array2) =>
|
|
79
79
|
size(array1) === size(array2) &&
|
|
80
80
|
arrayEvery(array1, (value1, index) => array2[index] === value1);
|
|
81
|
+
const arrayOrValueEqual = (value1, value2) =>
|
|
82
|
+
isArray(value1) && isArray(value2)
|
|
83
|
+
? arrayIsEqual(value1, value2)
|
|
84
|
+
: value1 === value2;
|
|
81
85
|
const arrayIsSorted = (array, sorter) =>
|
|
82
86
|
arrayEvery(
|
|
83
87
|
array,
|
|
@@ -3221,6 +3225,8 @@ const createQueries = getCreateFunction((store) => {
|
|
|
3221
3225
|
const preStore = createStore();
|
|
3222
3226
|
const resultStore = createStore();
|
|
3223
3227
|
const preStoreListenerIds = mapNew();
|
|
3228
|
+
const paramValuesListeners = mapNew();
|
|
3229
|
+
const paramValueListeners = mapNew();
|
|
3224
3230
|
const {
|
|
3225
3231
|
addListener,
|
|
3226
3232
|
callListeners,
|
|
@@ -3243,7 +3249,7 @@ const createQueries = getCreateFunction((store) => {
|
|
|
3243
3249
|
delStoreListeners,
|
|
3244
3250
|
] = getDefinableFunctions(
|
|
3245
3251
|
store,
|
|
3246
|
-
() => [
|
|
3252
|
+
() => [],
|
|
3247
3253
|
getUndefined,
|
|
3248
3254
|
addListener,
|
|
3249
3255
|
callListeners,
|
|
@@ -3614,21 +3620,45 @@ const createQueries = getCreateFunction((store) => {
|
|
|
3614
3620
|
return queries;
|
|
3615
3621
|
};
|
|
3616
3622
|
const delQueryDefinition = (queryId) => {
|
|
3623
|
+
const oldParamValues = getQueryArgs(queryId)?.[1];
|
|
3617
3624
|
resetPreStores(queryId);
|
|
3618
3625
|
delDefinition(queryId);
|
|
3626
|
+
ifNotUndefined(oldParamValues, (paramValues) => {
|
|
3627
|
+
mapForEach(paramValues, (paramId) =>
|
|
3628
|
+
callListeners(paramValueListeners, [queryId, paramId], void 0),
|
|
3629
|
+
);
|
|
3630
|
+
callListeners(paramValuesListeners, [queryId], {});
|
|
3631
|
+
});
|
|
3619
3632
|
return queries;
|
|
3620
3633
|
};
|
|
3621
3634
|
const setParamValues = (queryId, paramValues) => {
|
|
3622
|
-
ifNotUndefined(getQueryArgs(queryId), (definition) =>
|
|
3623
|
-
|
|
3624
|
-
|
|
3625
|
-
|
|
3626
|
-
|
|
3627
|
-
|
|
3628
|
-
|
|
3629
|
-
|
|
3630
|
-
|
|
3631
|
-
|
|
3635
|
+
ifNotUndefined(getQueryArgs(queryId), ([definition, oldParamValues]) => {
|
|
3636
|
+
const changedParamValues = mapNew();
|
|
3637
|
+
mapMatch(
|
|
3638
|
+
oldParamValues,
|
|
3639
|
+
paramValues,
|
|
3640
|
+
(_, paramId, newValue) => {
|
|
3641
|
+
if (!arrayOrValueEqual(newValue, mapGet(oldParamValues, paramId))) {
|
|
3642
|
+
mapSet(changedParamValues, paramId, newValue);
|
|
3643
|
+
}
|
|
3644
|
+
},
|
|
3645
|
+
(_, paramId) => mapSet(changedParamValues, paramId, void 0),
|
|
3646
|
+
);
|
|
3647
|
+
if (!collIsEmpty(changedParamValues)) {
|
|
3648
|
+
resultStore.transaction(() =>
|
|
3649
|
+
setQueryDefinition(
|
|
3650
|
+
queryId,
|
|
3651
|
+
getTableId(queryId),
|
|
3652
|
+
definition,
|
|
3653
|
+
paramValues,
|
|
3654
|
+
),
|
|
3655
|
+
);
|
|
3656
|
+
mapForEach(changedParamValues, (paramId, value) =>
|
|
3657
|
+
callListeners(paramValueListeners, [queryId, paramId], value),
|
|
3658
|
+
);
|
|
3659
|
+
callListeners(paramValuesListeners, [queryId], {...paramValues});
|
|
3660
|
+
}
|
|
3661
|
+
});
|
|
3632
3662
|
return queries;
|
|
3633
3663
|
};
|
|
3634
3664
|
const setParamValue = (queryId, paramId, value) =>
|
|
@@ -3636,8 +3666,25 @@ const createQueries = getCreateFunction((store) => {
|
|
|
3636
3666
|
...mapToObj(getQueryArgs(queryId)?.[1]),
|
|
3637
3667
|
[paramId]: value,
|
|
3638
3668
|
});
|
|
3669
|
+
const getParamValues = (queryId) =>
|
|
3670
|
+
ifNotUndefined(getQueryArgs(queryId)?.[1], mapToObj) ?? {};
|
|
3671
|
+
const getParamValue = (queryId, paramId) =>
|
|
3672
|
+
mapGet(getQueryArgs(queryId)?.[1], paramId);
|
|
3639
3673
|
const addQueryIdsListener = (listener) =>
|
|
3640
3674
|
addQueryIdsListenerImpl(() => listener(queries));
|
|
3675
|
+
const addParamValuesListener = (queryId, listener) =>
|
|
3676
|
+
addListener(
|
|
3677
|
+
(_, queryId2, paramValues) => listener(queries, queryId2, paramValues),
|
|
3678
|
+
paramValuesListeners,
|
|
3679
|
+
[queryId],
|
|
3680
|
+
);
|
|
3681
|
+
const addParamValueListener = (queryId, paramId, listener) =>
|
|
3682
|
+
addListener(
|
|
3683
|
+
(_, queryId2, paramId2, paramValue) =>
|
|
3684
|
+
listener(queries, queryId2, paramId2, paramValue),
|
|
3685
|
+
paramValueListeners,
|
|
3686
|
+
[queryId, paramId],
|
|
3687
|
+
);
|
|
3641
3688
|
const delListener = (listenerId) => {
|
|
3642
3689
|
delListenerImpl(listenerId);
|
|
3643
3690
|
return queries;
|
|
@@ -3649,11 +3696,17 @@ const createQueries = getCreateFunction((store) => {
|
|
|
3649
3696
|
transaction: _3,
|
|
3650
3697
|
...stats
|
|
3651
3698
|
} = resultStore.getListenerStats();
|
|
3652
|
-
return
|
|
3699
|
+
return {
|
|
3700
|
+
...stats,
|
|
3701
|
+
paramValues: collSize2(paramValuesListeners),
|
|
3702
|
+
paramValue: collSize3(paramValueListeners),
|
|
3703
|
+
};
|
|
3653
3704
|
};
|
|
3654
3705
|
const queries = {
|
|
3655
3706
|
setQueryDefinition,
|
|
3656
3707
|
delQueryDefinition,
|
|
3708
|
+
getParamValues,
|
|
3709
|
+
getParamValue,
|
|
3657
3710
|
setParamValues,
|
|
3658
3711
|
setParamValue,
|
|
3659
3712
|
getStore,
|
|
@@ -3662,6 +3715,8 @@ const createQueries = getCreateFunction((store) => {
|
|
|
3662
3715
|
hasQuery,
|
|
3663
3716
|
getTableId,
|
|
3664
3717
|
addQueryIdsListener,
|
|
3718
|
+
addParamValuesListener,
|
|
3719
|
+
addParamValueListener,
|
|
3665
3720
|
delListener,
|
|
3666
3721
|
destroy,
|
|
3667
3722
|
getListenerStats,
|
package/min/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=e=>typeof e,t="",s=e(t),n=e(!0),o=e(0),a=e(e),r="type",l="default",i="allowNull",d="Listener",c="Result",u="add",g="Has",h="Ids",f="Table",I=f+"s",b=f+h,w="Row",L=w+"Count",v=w+h,C="Sorted"+w+h,R="Cell",T=R+h,p="Value",S=p+"s",V=p+h,m=e=>t+e,y=(e,t)=>e.startsWith(t),M=(e,t)=>e.endsWith(t),E=(e,s=t,n)=>e.split(s,n),k=e=>(t,s,n)=>e(t)?n?.():s(t),D=globalThis,H=Math,J=H.max,x=H.min,F=H.floor,Q=isFinite,N=e=>null==e,P=e=>void 0===e,z=e=>null===e,O=k(N),W=k(P),A=e=>e==s||e==n,j=t=>e(t)==s,_=t=>e(t)==a,B=e=>Array.isArray(e),U=(e,t,s)=>e.slice(t,s),q=e=>e.length,G=()=>{},K=()=>{},X=async(e,t,s)=>{try{return await e()}catch(e){t?.(e)}},Y=(e,t)=>e.includes(t),Z=(e,t)=>e.every(t),$=(e,t)=>q(e)===q(t)&&Z(e,(e,s)=>t[s]===e),ee=(e,t)=>Z(e,(s,n)=>0==n||t(e[n-1],s)<=0),te=(e,t)=>e.sort(t),se=(e,t)=>e.forEach(t),ne=(e,t)=>e.map(t),oe=e=>re(e,(e,t)=>e+t,0),ae=e=>0==q(e),re=(e,t,s)=>e.reduce(t,s),le=(e,...t)=>e.push(...t),ie=e=>e.pop(),de=e=>e.shift(),ce=t=>{if(z(t))return"null";const s=e(t);return A(s)||s==o&&Q(t)?s:void 0},ue=e=>P(e)||!P(ce(e)),ge=(e,t,s,n,o)=>P(o)?e.delCell(t,s,n,!0):e.setCell(t,s,n,o),he=(e,t,s)=>P(s)?e.delValue(t):e.setValue(t,s),fe=e=>t=>re(Re(t),(t,s)=>t+e(s),0),Ie=e=>e?.size??0,be=fe(Ie),we=fe(be),Le=fe(we),ve=(e,t)=>e?.has(t)??!1,Ce=e=>P(e)||0==Ie(e),Re=e=>[...e?.values()??[]],Te=e=>e.clear(),pe=(e,t)=>e?.forEach(t),Se=(e,t)=>e?.delete(t),Ve=Object,me=e=>Ve.getPrototypeOf(e),ye=Ve.isFrozen,Me=Ve.entries,Ee=e=>!N(e)&&O(me(e),e=>e==Ve.prototype||N(me(e)),()=>!0),ke=Ve.keys,De=Ve.freeze,He=(e=[])=>Ve.fromEntries(e),Je=(e,t)=>t in e,xe=(e,t)=>(delete e[t],e),Fe=(e,t)=>se(Me(e),([e,s])=>t(s,e)),Qe=(e,t)=>He(((e,t)=>ne(Me(e),([e,s])=>t(s,e)))(e,(e,s)=>[s,t(e,s)])),Ne=e=>Ee(e)&&0==(e=>q(ke(e)))(e),Pe=(e,t,s)=>(Je(e,t)||(e[t]=s()),e[t]),ze=(e,t,s,n=0)=>N(e)||!Ee(e)||!n&&Ne(e)||ye(e)?(s?.(),!1):(Fe(e,(s,n)=>{t(s,n)||xe(e,n)}),!!n||!Ne(e)),Oe=e=>new Map(e),We=e=>[...e?.keys()??[]],Ae=(e,t)=>e?.get(t),je=(e,t)=>pe(e,(e,s)=>t(s,e)),_e=(e,t,s)=>P(s)?(Se(e,t),e):e?.set(t,s),Be=(e,t,s,n)=>(ve(e,t)?n?.(Ae(e,t)):_e(e,t,s()),Ae(e,t)),Ue=(e,t,s,n=_e)=>(Qe(t,(t,n)=>s(e,n,t)),je(e,s=>Je(t,s)?0:n(e,s)),e),qe=(e,t,s,n)=>{const o={};return pe(e,(e,a)=>{if(!s?.(e,a)){const s=t?t(e,a):e;n?.(s)||(o[a]=s)}}),o},Ge=(e,t,s)=>qe(e,e=>qe(e,t,s),Ce,Ne),Ke=(e,t,s)=>qe(e,e=>Ge(e,t,s),Ce,Ne),Xe=(e,t)=>{const s=Oe();return pe(e,(e,n)=>s.set(n,t?.(e)??e)),s},Ye=e=>Xe(e,Xe),Ze=e=>Xe(e,Ye),$e=(e,t,s,n,o=0)=>W((s?Be:Ae)(e,t[o],o>q(t)-2?s:Oe),a=>{if(o>q(t)-2)return n?.(a)&&_e(e,t[o]),a;const r=$e(a,t,s,n,o+1);return Ce(a)&&_e(e,t[o]),r}),et=e=>new Set(B(e)||P(e)?e:[e]),tt=(e,t)=>e?.add(t),st=(e,t,s,n,o)=>{const a=e.hasRow,r=Oe(),l=Oe(),i=Oe(),d=Oe(),c=Oe(),u=Oe(),g=(t,s,...n)=>{const o=Be(u,t,et);return se(n,t=>tt(o,t)&&s&&e.callListener(t)),n},h=(t,...s)=>W(Ae(u,t),n=>{se(ae(s)?Re(n):s,t=>{e.delListener(t),Se(n,t)}),Ce(n)&&_e(u,t)}),f=(e,s)=>{_e(r,e,s),ve(l,e)||(_e(l,e,t()),_e(d,e,Oe()),_e(c,e,Oe()),o(i))},I=e=>{_e(r,e),_e(l,e),_e(d,e),_e(c,e),h(e),o(i)};return[()=>e,()=>We(r),e=>je(l,e),e=>ve(l,e),e=>Ae(r,e),e=>Ae(l,e),(e,t)=>_e(l,e,t),f,(t,n,o,r,l)=>{f(t,n);const i=Oe(),u=Oe(),I=Ae(d,t),b=Ae(c,t),w=t=>{const o=s=>e.getCell(n,t,s),d=Ae(I,t),c=a(n,t)?s(r(o,t)):void 0;if(d===c||B(d)&&B(c)&&$(d,c)||_e(i,t,[d,c]),!P(l)){const e=Ae(b,t),s=a(n,t)?l(o,t):void 0;e!=s&&_e(u,t,s)}},L=e=>{o(()=>{pe(i,([,e],t)=>_e(I,t,e)),pe(u,(e,t)=>_e(b,t,e))},i,u,I,b,e),Te(i),Te(u)};je(I,w),e.hasTable(n)&&se(e.getRowIds(n),e=>{ve(I,e)||w(e)}),L(!0),h(t),g(t,0,e.addRowListener(n,null,(e,t,s)=>w(s)),e.addTableListener(n,()=>L()))},I,e=>n(e,i),()=>je(u,I),g,h]},nt=(e,s)=>j(e)?t=>t(e):e??(()=>s??t),ot=(e,t)=>{const s=new WeakMap;return n=>{s.has(n)||s.set(n,e(n));const o=s.get(n);return t?.(o),o}},at=/^\d+$/,rt=()=>{const e=[];let s=0;return[n=>(n?de(e):null)??t+s++,t=>{at.test(t)&&q(e)<1e3&&le(e,t)}]},lt=e=>{let s;const[n,o]=rt(),a=Oe();return[(o,r,l,i=[],d=()=>[])=>{s??=e();const c=n(1);return _e(a,c,[o,r,l,i,d]),tt($e(r,l??[t],et),c),c},(e,n,...o)=>se(((e,s=[t])=>{const n=[],o=(e,t)=>t==q(s)?le(n,e):z(s[t])?pe(e,e=>o(e,t+1)):se([s[t],null],s=>o(Ae(e,s),t+1));return o(e,0),n})(e,n),e=>pe(e,e=>Ae(a,e)[0](s,...n??[],...o))),e=>W(Ae(a,e),([,s,n])=>($e(s,n??[t],void 0,t=>(Se(t,e),Ce(t)?1:0)),_e(a,e),o(e),n)),e=>W(Ae(a,e),([e,,t=[],n,o])=>{const a=(...r)=>{const l=q(r);l==q(t)?e(s,...r,...o(r)):z(t[l])?se(n[l]?.(...r)??[],e=>a(...r,e)):a(...r,t[l])};a()})]},it=ot(e=>{let s,n,o,a=100,r=Oe(),l=Oe(),i=1;const d=Oe(),c=Oe(),[u,g,h]=lt(()=>J),f=Oe(),I=Oe(),b=[],w=[],L=(t,s)=>{i=0,e.transaction(()=>{const[n,o]=Ae(f,s);pe(n,(s,n)=>pe(s,(s,o)=>pe(s,(s,a)=>ge(e,n,o,a,s[t])))),pe(o,(s,n)=>he(e,n,s[t]))}),i=1},v=e=>{_e(f,e),_e(I,e),g(c,[e])},C=(e,t)=>se(((e,t)=>e.splice(0,t))(e,t??q(e)),v),R=()=>C(b,q(b)-a),T=()=>W(s,()=>{le(b,s),R(),C(w),s=void 0,o=1}),p=()=>{s=ie(b),o=1};let S,V;const m=(e=t)=>(P(s)&&(s=t+n++,_e(f,s,[r,l]),D(s,e),r=Oe(),l=Oe(),o=1),s),y=()=>{ae(b)||(((e,...t)=>{e.unshift(...t)})(w,m()),L(0,s),s=ie(b),o=1)},M=()=>{ae(w)||(le(b,s),s=de(w),L(1,s),o=1)},E=()=>{o&&(g(d),o=0)},k=e=>{const t=m(e);return E(),t},D=(e,t)=>(H(e)&&Ae(I,e)!==t&&(_e(I,e,t),g(c,[e])),J),H=e=>ve(f,e),J={setSize:e=>(a=e,R(),J),addCheckpoint:k,setCheckpoint:D,getStore:()=>e,getCheckpointIds:()=>[[...b],s,[...w]],forEachCheckpoint:e=>je(I,e),hasCheckpoint:H,getCheckpoint:e=>Ae(I,e),goBackward:()=>(y(),E(),J),goForward:()=>(M(),E(),J),goTo:e=>{const t=Y(b,e)?y:Y(w,e)?M:void 0;for(;!P(t)&&e!=s;)t();return E(),J},addCheckpointIdsListener:e=>u(e,d),addCheckpointListener:(e,t)=>u(t,c,[e]),delListener:e=>(h(e),J),clear:()=>(C(b),C(w),P(s)||v(s),s=void 0,n=0,k(),J),clearForward:()=>(ae(w)||(C(w),g(d)),J),destroy:()=>{e.delListener(S),e.delListener(V)},getListenerStats:()=>({checkpointIds:be(d),checkpoint:be(c)}),_registerListeners:()=>{S=e.addCellListener(null,null,null,(e,t,s,n,o,a)=>{if(i){T();const e=Be(r,t,Oe),l=Be(e,s,Oe),i=Be(l,n,()=>[a,void 0]);i[1]=o,i[0]===o&&Ce(_e(l,n))&&Ce(_e(e,s))&&Ce(_e(r,t))&&p(),E()}}),V=e.addValueListener(null,(e,t,s,n)=>{if(i){T();const e=Be(l,t,()=>[n,void 0]);e[1]=s,e[0]===s&&Ce(_e(l,t))&&p(),E()}})}};return De(J.clear())},e=>e._registerListeners()),dt=E("-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz"),ct=Oe(ne(dt,(e,t)=>[e,t])),ut=e=>dt[63&e],gt=(e,t)=>Ae(ct,e[t])??0,ht=D.crypto?e=>D.crypto.getRandomValues(e):e=>ne(e,()=>F(256*H.random())),ft=(e=16)=>re(ht(new Uint8Array(e)),(e,t)=>e+ut(t),t),It=JSON.stringify,bt=JSON.parse,wt=e=>It(e,(e,t)=>t instanceof Map?Ve.fromEntries([...t]):t),Lt=new D.TextEncoder,vt=e=>{let t=2166136261;return se(Lt.encode(e),e=>{t^=e,t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24)}),t>>>0},Ct=(e,t)=>(e^t)>>>0,Rt=e=>re(Me(e),(e,[t,s])=>Ct(e,Tt(t,s)^Tt(t,0)),0),Tt=(e,t)=>vt(e+":"+t),pt=(e,t)=>vt(wt(e??null)+":"+t),St=pt,Vt=Tt,mt=Rt,yt=Tt,Mt=e=>re(Me(e),(e,[t,s])=>Ct(e,Tt(t,s)),0),Et=Tt,kt=Mt,Dt=2**36,Ht=2**30,Jt=2**24,xt=2**18,Ft=4096,Qt=e=>{const t=vt(e);return ut(t/Jt)+ut(t/xt)+ut(t/Ft)+ut(t/64)+ut(t)},Nt=(e,t=Date.now)=>{let s=0,n=-1;const o=W(e,Qt,()=>ft(5)),a=e=>{const o=s,[a,r]=P(e)||""==e?[0,0]:l(e);s=J(o,a,t()),n=s==o?s==a?J(n,r):n:s==a?r:-1},r=(e,t,s)=>ut(e/Dt)+ut(e/Ht)+ut(e/Jt)+ut(e/xt)+ut(e/Ft)+ut(e/64)+ut(e)+ut(t/xt)+ut(t/Ft)+ut(t/64)+ut(t)+(P(s)?o:Qt(s)),l=e=>[gt(e,0)*Dt+gt(e,1)*Ht+gt(e,2)*Jt+gt(e,3)*xt+gt(e,4)*Ft+64*gt(e,5)+gt(e,6),gt(e,7)*xt+gt(e,8)*Ft+64*gt(e,9)+gt(e,10),e.slice(11)];return[()=>(a(),r(s,++n)),a,r,l,()=>s,()=>n,()=>o]},Pt=(e,t)=>(e??0)<(t??0)?-1:1,zt=ot(e=>{const s=Oe(),n=Oe(),[o,a,r]=lt(()=>v),[l,i,d,c,u,g,h,,f,I,b,w]=st(e,Oe,e=>P(e)?t:B(e)?ne(e,m):m(e),o,a),L=(t,s,n)=>{const o=u(t);pe(n,(t,n)=>s(n,s=>pe(t,t=>s(t,s=>e.forEachCell(o,t,s)))))},v={setIndexDefinition:(e,t,o,r,l,i=Pt)=>{const d=P(l)?void 0:([e],[t])=>l(e,t);return f(e,t,(t,o,l,c,u,f)=>{let I=0;const b=et(),w=et(),L=g(e);if(pe(o,([e,t],s)=>{const n=et(e),o=et(t);pe(n,e=>Se(o,e)?Se(n,e):0),pe(n,e=>{tt(b,e),W(Ae(L,e),t=>{Se(t,s),Ce(t)&&(_e(L,e),I=1)})}),pe(o,e=>{tt(b,e),ve(L,e)||(_e(L,e,et()),I=1),tt(Ae(L,e),s),P(r)||tt(w,e)})}),t(),Ce(u)||(f?je(L,e=>tt(w,e)):je(l,e=>W(Ae(c,e),e=>se(B(e)?e:[e],e=>tt(w,e)))),pe(w,e=>{const t=(t,s)=>i(Ae(u,t),Ae(u,s),e),s=[...Ae(L,e)];ee(s,t)||(_e(L,e,et(te(s,t))),tt(b,e))})),(I||f)&&!P(d)){const t=[...L];ee(t,d)||(h(e,Oe(te(t,d))),I=1)}I&&a(s,[e]),pe(b,t=>a(n,[e,t]))},nt(o),W(r,nt)),v},delIndexDefinition:e=>(I(e),v),getStore:l,getIndexIds:i,forEachIndex:e=>d((t,s)=>e(t,e=>L(t,e,s))),forEachSlice:(e,t)=>L(e,t,g(e)),hasIndex:c,hasSlice:(e,t)=>ve(g(e),t),getTableId:u,getSliceIds:e=>We(g(e)),getSliceRowIds:(e,t)=>Re(Ae(g(e),t)),addIndexIdsListener:b,addSliceIdsListener:(e,t)=>o(t,s,[e]),addSliceRowIdsListener:(e,t,s)=>o(s,n,[e,t]),delListener:e=>(r(e),v),destroy:w,getListenerStats:()=>({sliceIds:be(s),sliceRowIds:we(n)})};return De(v)}),Ot=([e,t])=>At(e,t),Wt=([e,t,s])=>[e,t,s],At=(e,t)=>t?[e,t]:[e],jt=(e,t,s)=>[e,t,s],_t=e=>e[2],Bt=(e,t)=>t>e?(e?vt(e):0)^vt(t):0,Ut=(e,t)=>((e??"")>(t??"")?e:t)??"",qt=(e,t,s)=>{t>e[1]&&(e[1]=t),e[2]=s>>>0},Gt=(e=t)=>At(He(),e),Kt=(e=t)=>[Oe(),e,0],Xt=([e,t,s],n=Wt)=>[qe(e,n),t,s],Yt=([e,t],s=Ot)=>At(qe(e,s),t),Zt=(t,s)=>B(t)&&3==q(t)&&j(t[1])&&e(t[2])==o&&Q(t[2])&&s(t[0]),$t=e=>[e,e],es=(e,t=be)=>t(e[0])+t(e[1]),ts=()=>[Oe(),Oe()],ss=e=>[...e],ns=([e,t])=>e===t,os=(e,t,s)=>_e(e,t,Ae(e,t)==-s?void 0:s),as=()=>{let e,t,s=!1,n=!1,a=0,c=[];const h=Oe(),C=Oe(),y=Oe(),M=Oe(),E=Oe(),k=Oe(),D=Oe(),H=Oe(),J=Oe(),x=Oe(),F=Oe(),Q=Oe(),N=Oe(),O=Oe(),j=et(),q=Oe(),G=Oe(),K=Oe(),Z=Oe(),ee=ts(),oe=ts(),ae=ts(),re=ts(),ie=ts(),de=ts(),ue=ts(),fe=ts(),Re=ts(),Ve=ts(),me=ts(),ye=ts(),Me=ts(),ke=ts(),He=ts(),Fe=ts(),Pe=ts(),$e=ts(),st=ts(),nt=ts(),ot=ts(),at=ts(),it=Oe(),dt=ts(),[ct,ut,gt,ht]=lt(()=>_s),ft=e=>{if(!ze(e,(e,t)=>Y([r,l,i],t)))return!1;const t=e[r];if(!A(t)&&t!=o)return!1;const s=e[l];return!(z(s)&&!e[i]||(z(s)||ce(s)==t||xe(e,l),0))},It=B,Lt=(t,s)=>(!e||ve(F,s)||Gt(s))&&ze(t,(e,t)=>vt(s,t,e),()=>Gt(s)),vt=(e,t,s,n)=>ze(n?s:pt(s,e,t),(n,o)=>W(Ct(e,t,o,n),e=>(s[o]=e,!0),()=>!1),()=>Gt(e,t)),Ct=(t,s,n,o)=>e?W(Ae(Ae(F,t),n),e=>z(o)?e[i]?o:Gt(t,s,n,o,e[l]):ce(o)==e[r]?o:Gt(t,s,n,o,e[l]),()=>Gt(t,s,n,o)):P(ce(o))?Gt(t,s,n,o):o,Rt=(e,t)=>ze(t?e:St(e),(t,s)=>W(Tt(s,t),t=>(e[s]=t,!0),()=>!1),()=>Kt()),Tt=(e,s)=>t?W(Ae(N,e),t=>z(s)?t[i]?s:Kt(e,s,t[l]):ce(s)==t[r]?s:Kt(e,s,t[l]),()=>Kt(e,s)):P(ce(s))?Kt(e,s):s,pt=(e,t,s)=>(W(Ae(Q,t),([n,o])=>{pe(n,(t,s)=>{Je(e,s)||(e[s]=t)}),pe(o,n=>{Je(e,n)||Gt(t,s,n)})}),e),St=e=>(t&&(pe(O,(t,s)=>{Je(e,s)||(e[s]=t)}),pe(j,t=>{Je(e,t)||Kt(t)})),e),Vt=e=>Ue(F,e,(e,t,s)=>{const n=Oe(),o=et();Ue(Be(F,t,Oe),s,(e,t,s)=>{_e(e,t,s),W(s[l],e=>_e(n,t,e),()=>tt(o,t))}),_e(Q,t,[n,o])},(e,t)=>{_e(F,t),_e(Q,t)}),mt=e=>Ue(N,e,(e,t,s)=>{_e(N,t,s),W(s[l],e=>_e(O,t,e),()=>tt(j,t))},(e,t)=>{_e(N,t),_e(O,t),Se(j,t)}),yt=e=>Ne(e)?Fs():ks(e),Mt=e=>Ue(K,e,(e,t,s)=>Et(t,s),(e,t)=>Nt(t)),Et=(e,t)=>Ue(Be(K,e,()=>(At(e,1),_e(q,e,rt()),_e(G,e,Oe()),Oe())),t,(t,s,n)=>kt(e,t,s,n),(t,s)=>zt(e,t,s)),kt=(e,t,s,n,o)=>Ue(Be(t,s,()=>(jt(e,s,1),Oe())),n,(t,n,o)=>Dt(e,s,t,n,o),(n,a)=>Ot(e,t,s,n,a,o)),Dt=(e,t,s,n,o)=>{ve(s,n)||_t(e,t,n,1);const a=Ae(s,n);o!==a&&(Bt(e,t,n,a,o),_e(s,n,o))},Ht=(e,t,s,n,o)=>W(Ae(t,s),t=>Dt(e,s,t,n,o),()=>kt(e,t,s,pt({[n]:o},e,s))),Jt=e=>Ne(e)?Ps():Ds(e),xt=e=>Ue(Z,e,(e,t,s)=>Ft(t,s),(e,t)=>Wt(t)),Ft=(e,t)=>{ve(Z,e)||Ut(e,1);const s=Ae(Z,e);t!==s&&(qt(e,s,t),_e(Z,e,t))},Qt=e=>Ae(K,e)??Et(e,{}),Nt=e=>Et(e,{}),zt=(e,t,s)=>{const[,n]=Ae(q,e);n(s),kt(e,t,s,{},!0)},Ot=(e,t,s,n,o,a)=>{const r=Ae(Ae(Q,e)?.[0],o);if(!P(r)&&!a)return Dt(e,s,n,o,r);const l=t=>{Bt(e,s,t,Ae(n,t)),_t(e,s,t,-1),_e(n,t)};P(r)?l(o):je(n,l),Ce(n)&&(jt(e,s,-1),Ce(_e(t,s))&&(At(e,-1),_e(K,e),_e(q,e),_e(G,e)))},Wt=e=>{const t=Ae(O,e);if(!P(t))return Ft(e,t);qt(e,Ae(Z,e)),Ut(e,-1),_e(Z,e)},At=(e,t)=>os(h,e,t),jt=(e,t,s)=>os(Be(M,e,Oe),t,s)&&_e(y,e,Be(y,e,()=>0)+s),_t=(e,t,s,n)=>{const o=Ae(G,e),a=Ae(o,s)??0;(0==a&&1==n||1==a&&-1==n)&&os(Be(C,e,Oe),s,n),_e(o,s,a!=-n?a+n:void 0),os(Be(Be(E,e,Oe),t,Oe),s,n)},Bt=(e,t,s,n,o)=>{Be(Be(Be(k,e,Oe),t,Oe),s,()=>[n,0])[1]=o,c[3]?.(e,t,s,o)},Ut=(e,t)=>os(D,e,t),qt=(e,t,s)=>{Be(H,e,()=>[t,0])[1]=s,c[4]?.(e,s)},Gt=(e,t,s,n,o)=>(le(Be(Be(Be(J,e,Oe),t,Oe),s,()=>[]),n),o),Kt=(e,t,s)=>(le(Be(x,e,()=>[]),t),s),Xt=(e,t,s)=>W(Ae(Ae(Ae(k,e),t),s),([e,t])=>[!0,e,t],()=>[!1,...$t(vs(e,t,s))]),Yt=e=>W(Ae(H,e),([e,t])=>[!0,e,t],()=>[!1,...$t(Ts(e))]),Zt=e=>Ce(J)||Ce(Fe[e])?0:pe(e?Ze(J):J,(t,s)=>pe(t,(t,n)=>pe(t,(t,o)=>ut(Fe[e],[s,n,o],t)))),rs=e=>Ce(x)||Ce(Pe[e])?0:pe(e?Xe(x):x,(t,s)=>ut(Pe[e],[s],t)),ls=(e,t,s,n)=>{if(!Ce(e))return ut(t,n,()=>qe(e)),je(e,(e,t)=>ut(s,[...n??[],e],1==t)),1},is=e=>{const t=ps();t!=s&&ut(ee[e],void 0,t);const n=Ce(Ve[e]),o=Ce(Me[e])&&Ce(ke[e])&&Ce(Re[e])&&Ce(me[e])&&Ce(de[e])&&Ce(ue[e])&&Ce(fe[e])&&n&&Ce(ae[e])&&Ce(re[e]),a=Ce(He[e])&&Ce(ye[e])&&Ce(ie[e])&&Ce(oe[e]);if(!o||!a){const t=e?[Xe(h),Ye(C),Xe(y),Ye(M),Ze(E),Ze(k)]:[h,C,y,M,E,k];if(!o){ls(t[0],ae[e],re[e]),pe(t[1],(t,s)=>ls(t,de[e],ue[e],[s])),pe(t[2],(t,s)=>{0!=t&&ut(fe[e],[s],Is(s))});const s=et();pe(t[3],(t,o)=>{ls(t,Re[e],me[e],[o])&&!n&&(ut(Ve[e],[o,null]),tt(s,o))}),n||pe(t[5],(t,n)=>{if(!ve(s,n)){const s=et();pe(t,e=>pe(e,([t,n],o)=>n!==t?tt(s,o):Se(e,o))),pe(s,t=>ut(Ve[e],[n,t]))}}),pe(t[4],(t,s)=>pe(t,(t,n)=>ls(t,Me[e],ke[e],[s,n])))}if(!a){let s;pe(t[5],(t,n)=>{let o;pe(t,(t,a)=>{let r;pe(t,([t,l],i)=>{l!==t&&(ut(He[e],[n,a,i],l,t,Xt),s=o=r=1)}),r&&ut(ye[e],[n,a],Xt)}),o&&ut(ie[e],[n],Xt)}),s&&ut(oe[e],void 0,Xt)}}},ds=e=>{const t=Ms();t!=n&&ut($e[e],void 0,t);const s=Ce(nt[e])&&Ce(ot[e]),o=Ce(at[e])&&Ce(st[e]);if(!s||!o){const t=e?[Xe(D),Xe(H)]:[D,H];if(s||ls(t[0],nt[e],ot[e]),!o){let s;pe(t[1],([t,n],o)=>{n!==t&&(ut(at[e],[o],n,t,Yt),s=1)}),s&&ut(st[e],void 0,Yt)}}},cs=(e,...t)=>(Ws(()=>e(...ne(t,m))),_s),us=(e,t,s,n,o)=>{let a=ws(e,t,...s);return ct(()=>{const o=ws(e,t,...s);$(o,a)||(a=o,n(_s,e,t,...s,a))},Ve[o?1:0],[e,t],[hs])},gs=()=>Ke(K),hs=()=>We(K),fs=e=>We(Ae(G,m(e))),Is=e=>Ie(Ae(K,m(e))),bs=e=>We(Ae(K,m(e))),ws=(e,t,s,n=0,o)=>{return Ee(e)?ws(e.tableId,e.cellId,e.descending,e.offset,e.limit):ne(U(te((a=Ae(K,m(e)),r=(e,s)=>[P(t)?s:Ae(e,m(t)),s],ne([...a?.entries()??[]],([e,t])=>r(t,e))),([e],[t])=>Pt(e,t)*(s?-1:1)),n,P(o)?o:n+o),([,e])=>e);var a,r},Ls=(e,t)=>We(Ae(Ae(K,m(e)),m(t))),vs=(e,t,s)=>Ae(Ae(Ae(K,m(e)),m(t)),m(s)),Cs=()=>qe(Z),Rs=()=>We(Z),Ts=e=>Ae(Z,m(e)),ps=()=>!Ce(K),Ss=e=>ve(K,m(e)),Vs=(e,t)=>ve(Ae(G,m(e)),m(t)),ms=(e,t)=>ve(Ae(K,m(e)),m(t)),ys=(e,t,s)=>ve(Ae(Ae(K,m(e)),m(t)),m(s)),Ms=()=>!Ce(Z),Es=e=>ve(Z,m(e)),ks=e=>cs(()=>(e=>ze(e,Lt,Gt))(e)?Mt(e):0),Ds=e=>cs(()=>Rt(e)?xt(e):0),Hs=e=>(X(()=>yt(bt(e))),_s),Js=t=>cs(()=>{if((e=ze(t,e=>ze(e,ft)))&&(Vt(t),!Ce(K))){const e=gs();Fs(),ks(e)}}),xs=e=>cs(()=>{if(t=(e=>ze(e,ft))(e)){const s=Cs();Os(),Ps(),t=!0,mt(e),Ds(s)}}),Fs=()=>cs(()=>Mt({})),Qs=e=>cs(e=>ve(K,e)?Nt(e):0,e),Ns=(e,t)=>cs((e,t)=>W(Ae(K,e),s=>ve(s,t)?zt(e,s,t):0),e,t),Ps=()=>cs(()=>xt({})),zs=()=>cs(()=>{Vt({}),e=!1}),Os=()=>cs(()=>{mt({}),t=!1}),Ws=(e,t)=>{if(-1!=a){As();const s=e();return js(t),s}},As=()=>(-1!=a&&a++,1==a&&(c[0]?.(),ut(it)),_s),js=e=>(a>0&&(a--,0==a&&(a=1,Zt(1),Ce(k)||is(1),rs(1),Ce(H)||ds(1),e?.(_s)&&(pe(k,(e,t)=>pe(e,(e,s)=>pe(e,([e],n)=>ge(_s,t,s,n,e)))),Te(k),pe(H,([e],t)=>he(_s,t,e)),Te(H)),ut(dt[0],void 0),a=-1,Zt(0),Ce(k)||is(0),rs(0),Ce(H)||ds(0),c[1]?.(),ut(dt[1],void 0),c[2]?.(),a=0,s=ps(),n=Ms(),se([h,C,y,M,E,k,J,D,H,x],Te))),_s),_s={getContent:()=>[gs(),Cs()],getTables:gs,getTableIds:hs,getTable:e=>Ge(Ae(K,m(e))),getTableCellIds:fs,getRowCount:Is,getRowIds:bs,getSortedRowIds:ws,getRow:(e,t)=>qe(Ae(Ae(K,m(e)),m(t))),getCellIds:Ls,getCell:vs,getValues:Cs,getValueIds:Rs,getValue:Ts,hasTables:ps,hasTable:Ss,hasTableCell:Vs,hasRow:ms,hasCell:ys,hasValues:Ms,hasValue:Es,getTablesJson:()=>wt(K),getValuesJson:()=>wt(Z),getJson:()=>wt([K,Z]),getTablesSchemaJson:()=>wt(F),getValuesSchemaJson:()=>wt(N),getSchemaJson:()=>wt([F,N]),hasTablesSchema:()=>e,hasValuesSchema:()=>t,setContent:e=>cs(()=>{const t=_(e)?e():e;It(t)&&(([e,t])=>{(Ne(e)?Fs:ks)(e),(Ne(t)?Ps:Ds)(t)})(t)}),setTables:ks,setTable:(e,t)=>cs(e=>Lt(t,e)?Et(e,t):0,e),setRow:(e,t,s)=>cs((e,t)=>vt(e,t,s)?kt(e,Qt(e),t,s):0,e,t),addRow:(e,t,s=!0)=>Ws(()=>{let n;return vt(e,n,t)&&(e=m(e),kt(e,Qt(e),n=((e,t)=>{const[s]=Ae(q,e);let n;do{n=s(t)}while(ve(Ae(K,e),n));return n})(e,s?1:0),t)),n}),setPartialRow:(e,t,s)=>cs((e,t)=>{if(vt(e,t,s,1)){const n=Qt(e);Qe(s,(s,o)=>Ht(e,n,t,o,s))}},e,t),setCell:(e,t,s,n)=>cs((e,t,s)=>W(Ct(e,t,s,_(n)?n(vs(e,t,s)):n),n=>Ht(e,Qt(e),t,s,n)),e,t,s),setValues:Ds,setPartialValues:e=>cs(()=>Rt(e,1)?Qe(e,(e,t)=>Ft(t,e)):0),setValue:(e,t)=>cs(e=>W(Tt(e,_(t)?t(Ts(e)):t),t=>Ft(e,t)),e),applyChanges:e=>cs(()=>{Qe(e[0],(e,t)=>P(e)?Qs(t):Qe(e,(e,s)=>P(e)?Ns(t,s):Qe(e,(e,n)=>ge(_s,t,s,n,e)))),Qe(e[1],(e,t)=>he(_s,t,e))}),setTablesJson:Hs,setValuesJson:e=>(X(()=>Jt(bt(e))),_s),setJson:e=>cs(()=>X(()=>{const[t,s]=bt(e);yt(t),Jt(s)},()=>Hs(e))),setTablesSchema:Js,setValuesSchema:xs,setSchema:(e,t)=>cs(()=>{Js(e),xs(t)}),delTables:Fs,delTable:Qs,delRow:Ns,delCell:(e,t,s,n)=>cs((e,t,s)=>W(Ae(K,e),o=>W(Ae(o,t),a=>ve(a,s)?Ot(e,o,t,a,s,n):0)),e,t,s),delValues:Ps,delValue:e=>cs(e=>ve(Z,e)?Wt(e):0,e),delTablesSchema:zs,delValuesSchema:Os,delSchema:()=>cs(()=>{zs(),Os()}),transaction:Ws,startTransaction:As,getTransactionChanges:()=>[qe(k,(e,t)=>-1===Ae(h,t)?void 0:qe(e,(e,s)=>-1===Ae(Ae(M,t),s)?void 0:qe(e,([,e])=>e,e=>ns(e)),Ce,Ne),Ce,Ne),qe(H,([,e])=>e,e=>ns(e)),1],getTransactionLog:()=>[!Ce(k),!Ce(H),Ke(k,ss,ns),Ke(J),qe(H,ss,ns),qe(x),qe(h),Ge(M),Ke(E),qe(D)],finishTransaction:js,forEachTable:e=>pe(K,(t,s)=>e(s,e=>pe(t,(t,s)=>e(s,e=>je(t,e))))),forEachTableCell:(e,t)=>je(Ae(G,m(e)),t),forEachRow:(e,t)=>pe(Ae(K,m(e)),(e,s)=>t(s,t=>je(e,t))),forEachCell:(e,t,s)=>je(Ae(Ae(K,m(e)),m(t)),s),forEachValue:e=>je(Z,e),addSortedRowIdsListener:(e,t,s,n,o,a,r)=>Ee(e)?us(e.tableId,e.cellId,[e.descending??!1,e.offset??0,e.limit],t,s):us(e,t,[s,n,o],a,r),addStartTransactionListener:e=>ct(e,it),addWillFinishTransactionListener:e=>ct(e,dt[0]),addDidFinishTransactionListener:e=>ct(e,dt[1]),callListener:e=>(ht(e),_s),delListener:e=>(gt(e),_s),getListenerStats:()=>({hasTables:es(ee),tables:es(oe),tableIds:es(ae),hasTable:es(re),table:es(ie),tableCellIds:es(de),hasTableCell:es(ue,we),rowCount:es(fe),rowIds:es(Re),sortedRowIds:es(Ve),hasRow:es(me,we),row:es(ye,we),cellIds:es(Me,we),hasCell:es(ke,Le),cell:es(He,Le),invalidCell:es(Fe,Le),hasValues:es($e),values:es(st),valueIds:es(nt),hasValue:es(ot),value:es(at),invalidValue:es(Pe),transaction:be(it)+es(dt)}),isMergeable:()=>!1,createStore:as,addListener:ct,callListeners:ut,setInternalListeners:(e,t,s,n,o)=>c=[e,t,s,n,o]};return Qe({[g+I]:[0,ee,[],()=>[ps()]],[I]:[0,oe],[b]:[0,ae],[g+f]:[1,re,[hs],e=>[Ss(...e)]],[f]:[1,ie,[hs]],[f+T]:[1,de,[hs]],[g+f+R]:[2,ue,[hs,fs],e=>[Vs(...e)]],[L]:[1,fe,[hs]],[v]:[1,Re,[hs]],[g+w]:[2,me,[hs,bs],e=>[ms(...e)]],[w]:[2,ye,[hs,bs]],[T]:[2,Me,[hs,bs]],[g+R]:[3,ke,[hs,bs,Ls],e=>[ys(...e)]],[R]:[3,He,[hs,bs,Ls],e=>$t(vs(...e))],InvalidCell:[3,Fe],[g+S]:[0,$e,[],()=>[Ms()]],[S]:[0,st],[V]:[0,nt],[g+p]:[1,ot,[Rs],e=>[Es(...e)]],[p]:[1,at,[Rs],e=>$t(Ts(e[0]))],InvalidValue:[1,Pe]},([e,t,s,n],o)=>{_s[u+o+d]=(...o)=>ct(o[e],t[o[e+1]?1:0],e>0?U(o,0,e):void 0,s,n)}),De(_s)},rs={HasTable:1,Table:1,TableCellIds:1,HasTableCell:2,RowCount:1,RowIds:1,SortedRowIds:5,HasRow:2,Row:2,CellIds:2,HasCell:3,Cell:3,HasValue:1,Value:1,InvalidCell:3,InvalidValue:1},ls=(e=t)=>[Kt(e),Kt(e)],is=(e,s)=>{let n=1,o=ls(),a=0;const r=Oe(),l=et(),[i,c]=Nt(e,s),g=as(),h=e=>{const t=n;return n=0,e(),n=t,C},f=(e,s=0)=>{const n={},a={},[[r,l=t,i=0],d]=e,[u,g]=o,[h,f,b]=u;let w=s?i:b,L=l;Fe(r,([e,o=t,a=0],r)=>{const l=Be(h,r,Kt),[i,d,c]=l;let u=s?a:c,g=o;Fe(e,(e,t)=>{const[o,a,l]=I(e,Be(i,t,Kt),Pe(Pe(n,r,He),t,He),s);u^=s?0:Ct(a?Tt(t,a):0,Tt(t,l)),g=Ut(g,o)}),u^=s?0:Bt(d,o),qt(l,o,u),w^=s?0:Ct(c?Tt(r,c):0,Tt(r,l[2])),L=Ut(L,g)}),w^=s?0:Bt(f,l),qt(u,l,w);const[v]=I(d,g,a,s);return c(Ut(L,v)),[n,a,1]},I=(e,s,n,o)=>{const[a,r=t,l=0]=e,[i,d,c]=s;let u=r,g=o?l:c;return Fe(a,([e,s=t,a=0],r)=>{const l=Be(i,r,()=>[void 0,t,0]),[,d,c]=l;(!d||s>d)&&(qt(l,s,o?a:pt(e,s)),l[0]=e,n[r]=e,g^=o?0:Ct(Tt(r,c),Tt(r,l[2])),u=Ut(u,s))}),g^=o?0:Bt(d,r),qt(s,r,g),[u,c,s[2]]},b=K,w=K,L=()=>[Xt(o[0],e=>Xt(e,e=>Xt(e))),Xt(o[1])],v=e=>h(()=>g.applyChanges(f(e))),C={getMergeableContent:L,getMergeableContentHashes:()=>[o[0][2],o[1][2]],getMergeableTableHashes:()=>qe(o[0][0],_t),getMergeableTableDiff:e=>{const t=Gt(o[0][1]),s={};return je(o[0][0],(n,[o,a,r])=>Je(e,n)?r!=e[n]?s[n]=r:0:t[0][n]=Yt([o,a],e=>Yt(e))),[t,s]},getMergeableRowHashes:e=>{const t={};return Fe(e,(e,s)=>W(Ae(o[0][0],s),([n,,o])=>o!=e?je(n,(e,[,,n])=>Pe(t,s,He)[e]=n):0)),t},getMergeableRowDiff:e=>{const t=Gt(o[0][1]),s={};return Fe(e,(e,n)=>je(Ae(o[0][0],n)?.[0],(o,[a,r,l])=>Je(e,o)?l!==e[o]?Pe(s,n,He)[o]=l:0:Pe(t[0],n,Gt)[0][o]=Yt([a,r]))),[t,s]},getMergeableCellHashes:e=>{const t={};return Fe(e,(e,s)=>W(Ae(o[0][0],s),([n])=>Fe(e,(e,o)=>W(Ae(n,o),([n,,a])=>a!==e?je(n,(e,[,,n])=>Pe(Pe(t,s,He),o,He)[e]=n):0)))),t},getMergeableCellDiff:e=>{const[[t,s]]=o,n={};return Fe(e,(e,s)=>Fe(e,(e,o)=>W(Ae(t,s),([t,a])=>W(Ae(t,o),([t,r])=>je(t,(t,[l,i,d])=>d!==e[t]?Pe(Pe(n,s,()=>Gt(a))[0],o,()=>Gt(r))[0][t]=[l,i]:0))))),At(n,s)},getMergeableValueHashes:()=>qe(o[1][0],_t),getMergeableValueDiff:e=>{const[,[t,s]]=o,n=qe(t,Ot,([,,t],s)=>t==e?.[s]);return At(n,s)},setMergeableContent:e=>h(()=>(e=>B(e)&&2==q(e)&&Zt(e[0],e=>ze(e,e=>Zt(e,e=>ze(e,e=>Zt(e,e=>ze(e,e=>Zt(e,ue),void 0,1)),void 0,1)),void 0,1))&&Zt(e[1],e=>ze(e,e=>Zt(e,ue),void 0,1)))(e)?g.transaction(()=>{g.delTables().delValues(),o=ls(),g.applyChanges(f(e,1))}):0),setDefaultContent:e=>(g.transaction(()=>{a=1,g.setContent(e),a=0}),C),getTransactionMergeableChanges:(e=!1)=>{const[[t,s,n],[a,i,d]]=o,c=e?jt:At,u={};pe(r,(e,s)=>W(Ae(t,s),([t,n,o])=>{const a={};pe(e,(e,s)=>W(Ae(t,s),([t,n,o])=>{const r={};pe(e,e=>{W(Ae(t,e),([t,s,n])=>r[e]=c(t,s,n))}),a[s]=c(r,n,o)})),u[s]=c(a,n,o)}));const g={};return pe(l,e=>W(Ae(a,e),([t,s,n])=>g[e]=c(t,s,n))),[c(u,s,n),c(g,i,d),1]},applyMergeableChanges:v,merge:e=>{const t=L(),s=e.getMergeableContent();return e.applyMergeableChanges(t),v(s)}};return g.setInternalListeners(b,w,()=>{Te(r),Te(l)},(e,s,o,l)=>{tt(Be(Be(r,e,Oe),s,et),o),n&&f([[{[e]:[{[s]:[{[o]:[l,a?t:i()]}]}]}],[{}],1])},(e,s)=>{tt(l,e),n&&f([[{}],[{[e]:[s,a?t:i()]}],1])}),Qe(g,(e,t)=>C[t]=y(t,"set")||y(t,"del")||y(t,"apply")||M(t,"Transaction")||t=="call"+d?(...t)=>(e(...t),C):y(t,u)&&M(t,d)?(...s)=>{const n=rs[U(t,3,-8)]??0,o=s[n];return s[n]=(e,...t)=>o(C,...t),e(...s)}:"isMergeable"==t?()=>!0:e),De(C)},ds=Oe([["avg",[(e,t)=>oe(e)/t,(e,t,s)=>e+(t-e)/(s+1),(e,t,s)=>e+(e-t)/(s-1),(e,t,s,n)=>e+(t-s)/n]],["max",[e=>J(...e),(e,t)=>J(t,e),(e,t)=>t==e?void 0:e,(e,t,s)=>s==e?void 0:J(t,e)]],["min",[e=>x(...e),(e,t)=>x(t,e),(e,t)=>t==e?void 0:e,(e,t,s)=>s==e?void 0:x(t,e)]],["sum",[e=>oe(e),(e,t)=>e+t,(e,t)=>e-t,(e,t,s)=>e-s+t]]]),cs=(e,t,s,n,o,a=!1)=>{if(Ce(s))return;const[r,l,i,d]=o;return a||=P(e),pe(n,([s,n])=>{a||(e=P(s)?l?.(e,n,t++):P(n)?i?.(e,s,t--):d?.(e,n,s,t),a||=P(e))}),a?r(Re(s),Ie(s)):e},us=ot(e=>{const s=Oe(),[n,o,a]=lt(()=>w),[r,l,i,d,c,u,g,,h,f,I,b]=st(e,G,e=>isNaN(e)||P(e)||!0===e||!1===e||e===t?void 0:1*e,n,o),w={setMetricDefinition:(e,t,n,a,r,l,i)=>{const d=_(n)?[n,r,l,i]:Ae(ds,n)??Ae(ds,"sum");return h(e,t,(t,n,a,r,l,i)=>{const c=u(e),h=Ie(r);i||=P(c),t();let f=cs(c,h,r,n,d,i);Q(f)||(f=void 0),f!=c&&(g(e,f),o(s,[e],f,c))},nt(a,1)),w},delMetricDefinition:e=>(f(e),w),getStore:r,getMetricIds:l,forEachMetric:i,hasMetric:d,getTableId:c,getMetric:u,addMetricIdsListener:I,addMetricListener:(e,t)=>n(t,s,[e]),delListener:e=>(a(e),w),destroy:b,getListenerStats:()=>({metric:be(s)})};return De(w)}),gs=ot(e=>{const s=e.createStore,n=s(),o=s(),a=Oe(),{addListener:r,callListeners:l,delListener:i}=o,[g,h,I,b,p,S,V,m,,y,M,E,k,D]=st(e,()=>[()=>{},Oe()],G,r,l),H=(e,t,...s)=>se(s,s=>tt(Be(Be(a,t,Oe),e,et),s)),J=e=>{W(Ae(a,e),e=>{je(e,(e,t)=>pe(t,t=>e.delListener(t))),Te(e)}),se([o,n],t=>t.delTable(e))},x=(e,t,s)=>H(t,e,t.addStartTransactionListener(s.startTransaction),t.addDidFinishTransactionListener(()=>s.finishTransaction())),F=(s,a,r,l={})=>{var i;m(s,a),V(s,[r,(i=l,new Map(Me(i)))]),J(s);const[,d]=S(s),c=[],u=[[void 0,[a,void 0,void 0,[],Oe()]]],g=[],h=[],f=[];r({select:(e,s)=>{const n=_(e)?[q(c)+t,e]:[P(s)?e:s,t=>t(e,s)];return le(c,n),{as:e=>n[0]=e}},join:(e,t,s)=>{const n=P(s)||_(t)?void 0:t,o=P(n)?t:s,a=[e,[e,n,_(o)?o:e=>e(o),[],Oe()]];return le(u,a),{as:e=>a[0]=e}},where:(e,t,s)=>le(g,_(e)?e:P(s)?s=>s(e)===t:n=>n(e,t)===s),group:(e,t,s,n,o)=>{const a=[e,[e,_(t)?[t,s,n,o]:Ae(ds,t)??[(e,t)=>t]]];return le(h,a),{as:e=>a[0]=e}},having:(e,t)=>le(f,_(e)?e:s=>s(e)===t),param:e=>Ae(d,e)});const I=Oe(c);if(Ce(I))return N;const b=Oe(u);je(b,(e,[,t])=>W(Ae(b,t),({3:t})=>P(e)?0:le(t,e)));const w=Oe(h);let L=n;if(Ce(w)&&ae(f))L=o;else{x(s,L,o);const e=Oe();je(w,(t,[s,n])=>tt(Be(e,s,et),[t,n]));const t=et();je(I,s=>ve(e,s)?0:tt(t,s));const n=Oe(),a=(t,n,a,r)=>W(t,([l,i,d,c])=>{je(n,(t,[s])=>{const n=Be(l,t,Oe),o=Ae(n,a),i=r?void 0:s;if(o!==i){const s=et([[o,i]]),r=Ie(n);_e(n,a,i),pe(Ae(e,t),([e,t])=>{const o=cs(c[e],r,n,s,t);c[e]=P(ce(o))?void 0:o})}}),Ce(i)||!Z(f,e=>e(e=>c[e]))?o.delRow(s,d):P(d)?t[2]=o.addRow(s,c):o.setRow(s,d,c)});H(L,s,L.addRowListener(s,null,(o,r,l,i)=>{const d=[],c=[],u=Oe(),g=L.hasRow(s,l);let h=!g;pe(t,e=>{const[t,n,o]=i(s,l,e);le(d,n),le(c,o),h||=t}),je(e,e=>{const[t,,n]=i(s,l,e);(h||t)&&_e(u,e,[n])}),h&&a($e(n,d,void 0,([,e])=>(Se(e,l),Ce(e))),u,l,1),g&&a($e(n,c,()=>{const e={};return pe(t,t=>e[t]=L.getCell(s,l,t)),[Oe(),et(),void 0,e]},([,e])=>{tt(e,l)}),u,l)}))}x(s,e,L);const v=(t,n,o,r)=>{const l=t=>e.getCell(n,o,t);se(r,n=>{const[o,,a,r,i]=Ae(b,n),d=a?.(l,t),[c,u]=Ae(i,t)??[];d!=c&&(P(u)||D(s,u),_e(i,t,P(d)?void 0:[d,...k(s,1,e.addRowListener(o,d,()=>v(t,o,d,r)))]))}),(t=>{const n=(s,n)=>e.getCell(...P(n)?[a,t,s]:s===a?[a,t,n]:[Ae(b,s)?.[0],Ae(Ae(b,s)?.[4],t)?.[0],n]);L.transaction(()=>Z(g,e=>e(n))?je(I,(e,o)=>ge(L,s,t,e,o(n,t))):L.delRow(s,t))})(t)},{3:C}=Ae(b,void 0);return L.transaction(()=>k(s,1,e.addRowListener(a,null,(t,n,o)=>{e.hasRow(a,o)?v(o,a,o,C):(L.delRow(s,o),pe(b,({4:e})=>W(Ae(e,o),([,t])=>{D(s,t),_e(e,o)})))}))),N},Q=(e,t)=>(W(S(e),s=>o.transaction(()=>F(e,p(e),s[0],t))),N),N={setQueryDefinition:F,delQueryDefinition:e=>(J(e),y(e),N),setParamValues:Q,setParamValue:(e,t,s)=>Q(e,{...qe(S(e)?.[1]),[t]:s}),getStore:g,getQueryIds:h,forEachQuery:I,hasQuery:b,getTableId:p,addQueryIdsListener:e=>M(()=>e(N)),delListener:e=>(i(e),N),destroy:E,getListenerStats:()=>{const{tables:e,tableIds:t,transaction:s,...n}=o.getListenerStats();return n}};return Qe({[f]:[1,1],[f+T]:[0,1],[L]:[0,1],[v]:[0,1],[C]:[0,5],[w]:[1,2],[T]:[0,2],[R]:[1,3]},([e,t],s)=>{se(e?["get","has","forEach"]:["get"],e=>N[e+c+s]=(...t)=>o[e+s](...t)),N[u+c+s+d]=(...e)=>o[u+s+d](...U(e,0,t),(s,...n)=>e[t](N,...n),!0)}),De(N)}),hs=ot(e=>{const s=Oe(),n=Oe(),o=Oe(),a=Oe(),[r,l,i]=lt(()=>T),[d,c,u,g,h,f,,,I,b,w,L]=st(e,()=>[Oe(),Oe(),Oe(),Oe()],e=>P(e)?void 0:e+t,r,l),v=(e,t,s)=>W(f(e),([n,,o])=>{if(!ve(o,t)){const a=et();if(h(e)!=R(e))tt(a,t);else{let e=t;for(;!P(e)&&!ve(a,e);)tt(a,e),e=Ae(n,e)}if(s)return a;_e(o,t,a)}return Ae(o,t)}),C=(e,t)=>W(f(e),([,,e])=>_e(e,t)),R=e=>Ae(s,e),T={setRelationshipDefinition:(e,t,r,i)=>(_e(s,e,r),I(e,t,(t,s)=>{const r=et(),i=et(),d=et(),[c,u]=f(e);pe(s,([t,s],n)=>{P(t)||(tt(i,t),W(Ae(u,t),e=>{Se(e,n),Ce(e)&&_e(u,t)})),P(s)||(tt(i,s),ve(u,s)||_e(u,s,et()),tt(Ae(u,s),n)),tt(r,n),_e(c,n,s),je(Ae(a,e),t=>{ve(v(e,t),n)&&tt(d,t)})}),t(),pe(r,t=>l(n,[e,t])),pe(i,t=>l(o,[e,t])),pe(d,t=>{C(e,t),l(a,[e,t])})},nt(i)),T),delRelationshipDefinition:e=>(_e(s,e),b(e),T),getStore:d,getRelationshipIds:c,forEachRelationship:t=>u(s=>t(s,t=>e.forEachRow(h(s),t))),hasRelationship:g,getLocalTableId:h,getRemoteTableId:R,getRemoteRowId:(e,t)=>Ae(f(e)?.[0],t),getLocalRowIds:(e,t)=>Re(Ae(f(e)?.[1],t)),getLinkedRowIds:(e,t)=>P(f(e))?[t]:Re(v(e,t,!0)),addRelationshipIdsListener:w,addRemoteRowIdListener:(e,t,s)=>r(s,n,[e,t]),addLocalRowIdsListener:(e,t,s)=>r(s,o,[e,t]),addLinkedRowIdsListener:(e,t,s)=>(v(e,t),r(s,a,[e,t])),delListener:e=>(C(...i(e)??[]),T),destroy:L,getListenerStats:()=>({remoteRowId:we(n),localRowIds:we(o),linkedRowIds:we(a)})};return De(T)});export{Ct as addOrRemoveHash,it as createCheckpoints,zt as createIndexes,is as createMergeableStore,us as createMetrics,gs as createQueries,hs as createRelationships,as as createStore,Pt as defaultSorter,St as getCellHash,Vt as getCellInRowHash,vt as getHash,Nt as getHlcFunctions,mt as getRowHash,yt as getRowInTableHash,Mt as getTableHash,Et as getTableInTablesHash,kt as getTablesHash,ft as getUniqueId,pt as getValueHash,Tt as getValueInValuesHash,Rt as getValuesHash};
|
|
1
|
+
const e=e=>typeof e,t="",s=e(t),n=e(!0),a=e(0),o=e(e),r="type",l="default",i="allowNull",d="Listener",c="Result",u="add",g="Has",h="Ids",f="Table",I=f+"s",b=f+h,w="Row",v=w+"Count",L=w+h,C="Sorted"+w+h,R="Cell",T=R+h,p="Value",S=p+"s",V=p+h,m=e=>t+e,y=(e,t)=>e.startsWith(t),M=(e,t)=>e.endsWith(t),E=(e,s=t,n)=>e.split(s,n),k=e=>(t,s,n)=>e(t)?n?.():s(t),D=globalThis,H=Math,J=H.max,x=H.min,P=H.floor,F=isFinite,Q=e=>null==e,N=e=>void 0===e,z=e=>null===e,O=k(Q),W=k(N),A=e=>e==s||e==n,j=t=>e(t)==s,_=t=>e(t)==o,B=e=>Array.isArray(e),U=(e,t,s)=>e.slice(t,s),q=e=>e.length,G=()=>{},K=()=>{},X=async(e,t,s)=>{try{return await e()}catch(e){t?.(e)}},Y=(e,t)=>e.includes(t),Z=(e,t)=>e.every(t),$=(e,t)=>q(e)===q(t)&&Z(e,(e,s)=>t[s]===e),ee=(e,t)=>Z(e,(s,n)=>0==n||t(e[n-1],s)<=0),te=(e,t)=>e.sort(t),se=(e,t)=>e.forEach(t),ne=(e,t)=>e.map(t),ae=e=>re(e,(e,t)=>e+t,0),oe=e=>0==q(e),re=(e,t,s)=>e.reduce(t,s),le=(e,...t)=>e.push(...t),ie=e=>e.pop(),de=e=>e.shift(),ce=t=>{if(z(t))return"null";const s=e(t);return A(s)||s==a&&F(t)?s:void 0},ue=e=>N(e)||!N(ce(e)),ge=(e,t,s,n,a)=>N(a)?e.delCell(t,s,n,!0):e.setCell(t,s,n,a),he=(e,t,s)=>N(s)?e.delValue(t):e.setValue(t,s),fe=e=>t=>re(Re(t),(t,s)=>t+e(s),0),Ie=e=>e?.size??0,be=fe(Ie),we=fe(be),ve=fe(we),Le=(e,t)=>e?.has(t)??!1,Ce=e=>N(e)||0==Ie(e),Re=e=>[...e?.values()??[]],Te=e=>e.clear(),pe=(e,t)=>e?.forEach(t),Se=(e,t)=>e?.delete(t),Ve=Object,me=e=>Ve.getPrototypeOf(e),ye=Ve.isFrozen,Me=Ve.entries,Ee=e=>!Q(e)&&O(me(e),e=>e==Ve.prototype||Q(me(e)),()=>!0),ke=Ve.keys,De=Ve.freeze,He=(e=[])=>Ve.fromEntries(e),Je=(e,t)=>t in e,xe=(e,t)=>(delete e[t],e),Pe=(e,t)=>se(Me(e),([e,s])=>t(s,e)),Fe=(e,t)=>He(((e,t)=>ne(Me(e),([e,s])=>t(s,e)))(e,(e,s)=>[s,t(e,s)])),Qe=e=>Ee(e)&&0==(e=>q(ke(e)))(e),Ne=(e,t,s)=>(Je(e,t)||(e[t]=s()),e[t]),ze=(e,t,s,n=0)=>Q(e)||!Ee(e)||!n&&Qe(e)||ye(e)?(s?.(),!1):(Pe(e,(s,n)=>{t(s,n)||xe(e,n)}),!!n||!Qe(e)),Oe=e=>new Map(e),We=e=>[...e?.keys()??[]],Ae=(e,t)=>e?.get(t),je=(e,t)=>pe(e,(e,s)=>t(s,e)),_e=(e,t,s)=>N(s)?(Se(e,t),e):e?.set(t,s),Be=(e,t,s,n)=>(Le(e,t)?n?.(Ae(e,t)):_e(e,t,s()),Ae(e,t)),Ue=(e,t,s,n=_e)=>(Fe(t,(t,n)=>s(e,n,t)),je(e,s=>Je(t,s)?0:n(e,s)),e),qe=(e,t,s,n)=>{const a={};return pe(e,(e,o)=>{if(!s?.(e,o)){const s=t?t(e,o):e;n?.(s)||(a[o]=s)}}),a},Ge=(e,t,s)=>qe(e,e=>qe(e,t,s),Ce,Qe),Ke=(e,t,s)=>qe(e,e=>Ge(e,t,s),Ce,Qe),Xe=(e,t)=>{const s=Oe();return pe(e,(e,n)=>s.set(n,t?.(e)??e)),s},Ye=e=>Xe(e,Xe),Ze=e=>Xe(e,Ye),$e=(e,t,s,n,a=0)=>W((s?Be:Ae)(e,t[a],a>q(t)-2?s:Oe),o=>{if(a>q(t)-2)return n?.(o)&&_e(e,t[a]),o;const r=$e(o,t,s,n,a+1);return Ce(o)&&_e(e,t[a]),r}),et=e=>new Set(B(e)||N(e)?e:[e]),tt=(e,t)=>e?.add(t),st=(e,t,s,n,a)=>{const o=e.hasRow,r=Oe(),l=Oe(),i=Oe(),d=Oe(),c=Oe(),u=Oe(),g=(t,s,...n)=>{const a=Be(u,t,et);return se(n,t=>tt(a,t)&&s&&e.callListener(t)),n},h=(t,...s)=>W(Ae(u,t),n=>{se(oe(s)?Re(n):s,t=>{e.delListener(t),Se(n,t)}),Ce(n)&&_e(u,t)}),f=(e,s)=>{_e(r,e,s),Le(l,e)||(_e(l,e,t()),_e(d,e,Oe()),_e(c,e,Oe()),a(i))},I=e=>{_e(r,e),_e(l,e),_e(d,e),_e(c,e),h(e),a(i)};return[()=>e,()=>We(r),e=>je(l,e),e=>Le(l,e),e=>Ae(r,e),e=>Ae(l,e),(e,t)=>_e(l,e,t),f,(t,n,a,r,l)=>{f(t,n);const i=Oe(),u=Oe(),I=Ae(d,t),b=Ae(c,t),w=t=>{const a=s=>e.getCell(n,t,s),d=Ae(I,t),c=o(n,t)?s(r(a,t)):void 0;if(d===c||B(d)&&B(c)&&$(d,c)||_e(i,t,[d,c]),!N(l)){const e=Ae(b,t),s=o(n,t)?l(a,t):void 0;e!=s&&_e(u,t,s)}},v=e=>{a(()=>{pe(i,([,e],t)=>_e(I,t,e)),pe(u,(e,t)=>_e(b,t,e))},i,u,I,b,e),Te(i),Te(u)};je(I,w),e.hasTable(n)&&se(e.getRowIds(n),e=>{Le(I,e)||w(e)}),v(!0),h(t),g(t,0,e.addRowListener(n,null,(e,t,s)=>w(s)),e.addTableListener(n,()=>v()))},I,e=>n(e,i),()=>je(u,I),g,h]},nt=(e,s)=>j(e)?t=>t(e):e??(()=>s??t),at=(e,t)=>{const s=new WeakMap;return n=>{s.has(n)||s.set(n,e(n));const a=s.get(n);return t?.(a),a}},ot=/^\d+$/,rt=()=>{const e=[];let s=0;return[n=>(n?de(e):null)??t+s++,t=>{ot.test(t)&&q(e)<1e3&&le(e,t)}]},lt=e=>{let s;const[n,a]=rt(),o=Oe();return[(a,r,l,i=[],d=()=>[])=>{s??=e();const c=n(1);return _e(o,c,[a,r,l,i,d]),tt($e(r,l??[t],et),c),c},(e,n,...a)=>se(((e,s=[t])=>{const n=[],a=(e,t)=>t==q(s)?le(n,e):z(s[t])?pe(e,e=>a(e,t+1)):se([s[t],null],s=>a(Ae(e,s),t+1));return a(e,0),n})(e,n),e=>pe(e,e=>Ae(o,e)[0](s,...n??[],...a))),e=>W(Ae(o,e),([,s,n])=>($e(s,n??[t],void 0,t=>(Se(t,e),Ce(t)?1:0)),_e(o,e),a(e),n)),e=>W(Ae(o,e),([e,,t=[],n,a])=>{const o=(...r)=>{const l=q(r);l==q(t)?e(s,...r,...a(r)):z(t[l])?se(n[l]?.(...r)??[],e=>o(...r,e)):o(...r,t[l])};o()})]},it=at(e=>{let s,n,a,o=100,r=Oe(),l=Oe(),i=1;const d=Oe(),c=Oe(),[u,g,h]=lt(()=>J),f=Oe(),I=Oe(),b=[],w=[],v=(t,s)=>{i=0,e.transaction(()=>{const[n,a]=Ae(f,s);pe(n,(s,n)=>pe(s,(s,a)=>pe(s,(s,o)=>ge(e,n,a,o,s[t])))),pe(a,(s,n)=>he(e,n,s[t]))}),i=1},L=e=>{_e(f,e),_e(I,e),g(c,[e])},C=(e,t)=>se(((e,t)=>e.splice(0,t))(e,t??q(e)),L),R=()=>C(b,q(b)-o),T=()=>W(s,()=>{le(b,s),R(),C(w),s=void 0,a=1}),p=()=>{s=ie(b),a=1};let S,V;const m=(e=t)=>(N(s)&&(s=t+n++,_e(f,s,[r,l]),D(s,e),r=Oe(),l=Oe(),a=1),s),y=()=>{oe(b)||(((e,...t)=>{e.unshift(...t)})(w,m()),v(0,s),s=ie(b),a=1)},M=()=>{oe(w)||(le(b,s),s=de(w),v(1,s),a=1)},E=()=>{a&&(g(d),a=0)},k=e=>{const t=m(e);return E(),t},D=(e,t)=>(H(e)&&Ae(I,e)!==t&&(_e(I,e,t),g(c,[e])),J),H=e=>Le(f,e),J={setSize:e=>(o=e,R(),J),addCheckpoint:k,setCheckpoint:D,getStore:()=>e,getCheckpointIds:()=>[[...b],s,[...w]],forEachCheckpoint:e=>je(I,e),hasCheckpoint:H,getCheckpoint:e=>Ae(I,e),goBackward:()=>(y(),E(),J),goForward:()=>(M(),E(),J),goTo:e=>{const t=Y(b,e)?y:Y(w,e)?M:void 0;for(;!N(t)&&e!=s;)t();return E(),J},addCheckpointIdsListener:e=>u(e,d),addCheckpointListener:(e,t)=>u(t,c,[e]),delListener:e=>(h(e),J),clear:()=>(C(b),C(w),N(s)||L(s),s=void 0,n=0,k(),J),clearForward:()=>(oe(w)||(C(w),g(d)),J),destroy:()=>{e.delListener(S),e.delListener(V)},getListenerStats:()=>({checkpointIds:be(d),checkpoint:be(c)}),_registerListeners:()=>{S=e.addCellListener(null,null,null,(e,t,s,n,a,o)=>{if(i){T();const e=Be(r,t,Oe),l=Be(e,s,Oe),i=Be(l,n,()=>[o,void 0]);i[1]=a,i[0]===a&&Ce(_e(l,n))&&Ce(_e(e,s))&&Ce(_e(r,t))&&p(),E()}}),V=e.addValueListener(null,(e,t,s,n)=>{if(i){T();const e=Be(l,t,()=>[n,void 0]);e[1]=s,e[0]===s&&Ce(_e(l,t))&&p(),E()}})}};return De(J.clear())},e=>e._registerListeners()),dt=E("-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz"),ct=Oe(ne(dt,(e,t)=>[e,t])),ut=e=>dt[63&e],gt=(e,t)=>Ae(ct,e[t])??0,ht=D.crypto?e=>D.crypto.getRandomValues(e):e=>ne(e,()=>P(256*H.random())),ft=(e=16)=>re(ht(new Uint8Array(e)),(e,t)=>e+ut(t),t),It=JSON.stringify,bt=JSON.parse,wt=e=>It(e,(e,t)=>t instanceof Map?Ve.fromEntries([...t]):t),vt=new D.TextEncoder,Lt=e=>{let t=2166136261;return se(vt.encode(e),e=>{t^=e,t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24)}),t>>>0},Ct=(e,t)=>(e^t)>>>0,Rt=e=>re(Me(e),(e,[t,s])=>Ct(e,Tt(t,s)^Tt(t,0)),0),Tt=(e,t)=>Lt(e+":"+t),pt=(e,t)=>Lt(wt(e??null)+":"+t),St=pt,Vt=Tt,mt=Rt,yt=Tt,Mt=e=>re(Me(e),(e,[t,s])=>Ct(e,Tt(t,s)),0),Et=Tt,kt=Mt,Dt=2**36,Ht=2**30,Jt=2**24,xt=2**18,Pt=4096,Ft=e=>{const t=Lt(e);return ut(t/Jt)+ut(t/xt)+ut(t/Pt)+ut(t/64)+ut(t)},Qt=(e,t=Date.now)=>{let s=0,n=-1;const a=W(e,Ft,()=>ft(5)),o=e=>{const a=s,[o,r]=N(e)||""==e?[0,0]:l(e);s=J(a,o,t()),n=s==a?s==o?J(n,r):n:s==o?r:-1},r=(e,t,s)=>ut(e/Dt)+ut(e/Ht)+ut(e/Jt)+ut(e/xt)+ut(e/Pt)+ut(e/64)+ut(e)+ut(t/xt)+ut(t/Pt)+ut(t/64)+ut(t)+(N(s)?a:Ft(s)),l=e=>[gt(e,0)*Dt+gt(e,1)*Ht+gt(e,2)*Jt+gt(e,3)*xt+gt(e,4)*Pt+64*gt(e,5)+gt(e,6),gt(e,7)*xt+gt(e,8)*Pt+64*gt(e,9)+gt(e,10),e.slice(11)];return[()=>(o(),r(s,++n)),o,r,l,()=>s,()=>n,()=>a]},Nt=(e,t)=>(e??0)<(t??0)?-1:1,zt=at(e=>{const s=Oe(),n=Oe(),[a,o,r]=lt(()=>L),[l,i,d,c,u,g,h,,f,I,b,w]=st(e,Oe,e=>N(e)?t:B(e)?ne(e,m):m(e),a,o),v=(t,s,n)=>{const a=u(t);pe(n,(t,n)=>s(n,s=>pe(t,t=>s(t,s=>e.forEachCell(a,t,s)))))},L={setIndexDefinition:(e,t,a,r,l,i=Nt)=>{const d=N(l)?void 0:([e],[t])=>l(e,t);return f(e,t,(t,a,l,c,u,f)=>{let I=0;const b=et(),w=et(),v=g(e);if(pe(a,([e,t],s)=>{const n=et(e),a=et(t);pe(n,e=>Se(a,e)?Se(n,e):0),pe(n,e=>{tt(b,e),W(Ae(v,e),t=>{Se(t,s),Ce(t)&&(_e(v,e),I=1)})}),pe(a,e=>{tt(b,e),Le(v,e)||(_e(v,e,et()),I=1),tt(Ae(v,e),s),N(r)||tt(w,e)})}),t(),Ce(u)||(f?je(v,e=>tt(w,e)):je(l,e=>W(Ae(c,e),e=>se(B(e)?e:[e],e=>tt(w,e)))),pe(w,e=>{const t=(t,s)=>i(Ae(u,t),Ae(u,s),e),s=[...Ae(v,e)];ee(s,t)||(_e(v,e,et(te(s,t))),tt(b,e))})),(I||f)&&!N(d)){const t=[...v];ee(t,d)||(h(e,Oe(te(t,d))),I=1)}I&&o(s,[e]),pe(b,t=>o(n,[e,t]))},nt(a),W(r,nt)),L},delIndexDefinition:e=>(I(e),L),getStore:l,getIndexIds:i,forEachIndex:e=>d((t,s)=>e(t,e=>v(t,e,s))),forEachSlice:(e,t)=>v(e,t,g(e)),hasIndex:c,hasSlice:(e,t)=>Le(g(e),t),getTableId:u,getSliceIds:e=>We(g(e)),getSliceRowIds:(e,t)=>Re(Ae(g(e),t)),addIndexIdsListener:b,addSliceIdsListener:(e,t)=>a(t,s,[e]),addSliceRowIdsListener:(e,t,s)=>a(s,n,[e,t]),delListener:e=>(r(e),L),destroy:w,getListenerStats:()=>({sliceIds:be(s),sliceRowIds:we(n)})};return De(L)}),Ot=([e,t])=>At(e,t),Wt=([e,t,s])=>[e,t,s],At=(e,t)=>t?[e,t]:[e],jt=(e,t,s)=>[e,t,s],_t=e=>e[2],Bt=(e,t)=>t>e?(e?Lt(e):0)^Lt(t):0,Ut=(e,t)=>((e??"")>(t??"")?e:t)??"",qt=(e,t,s)=>{t>e[1]&&(e[1]=t),e[2]=s>>>0},Gt=(e=t)=>At(He(),e),Kt=(e=t)=>[Oe(),e,0],Xt=([e,t,s],n=Wt)=>[qe(e,n),t,s],Yt=([e,t],s=Ot)=>At(qe(e,s),t),Zt=(t,s)=>B(t)&&3==q(t)&&j(t[1])&&e(t[2])==a&&F(t[2])&&s(t[0]),$t=e=>[e,e],es=(e,t=be)=>t(e[0])+t(e[1]),ts=()=>[Oe(),Oe()],ss=e=>[...e],ns=([e,t])=>e===t,as=(e,t,s)=>_e(e,t,Ae(e,t)==-s?void 0:s),os=()=>{let e,t,s=!1,n=!1,o=0,c=[];const h=Oe(),C=Oe(),y=Oe(),M=Oe(),E=Oe(),k=Oe(),D=Oe(),H=Oe(),J=Oe(),x=Oe(),P=Oe(),F=Oe(),Q=Oe(),O=Oe(),j=et(),q=Oe(),G=Oe(),K=Oe(),Z=Oe(),ee=ts(),ae=ts(),oe=ts(),re=ts(),ie=ts(),de=ts(),ue=ts(),fe=ts(),Re=ts(),Ve=ts(),me=ts(),ye=ts(),Me=ts(),ke=ts(),He=ts(),Pe=ts(),Ne=ts(),$e=ts(),st=ts(),nt=ts(),at=ts(),ot=ts(),it=Oe(),dt=ts(),[ct,ut,gt,ht]=lt(()=>_s),ft=e=>{if(!ze(e,(e,t)=>Y([r,l,i],t)))return!1;const t=e[r];if(!A(t)&&t!=a)return!1;const s=e[l];return!(z(s)&&!e[i]||(z(s)||ce(s)==t||xe(e,l),0))},It=B,vt=(t,s)=>(!e||Le(P,s)||Gt(s))&&ze(t,(e,t)=>Lt(s,t,e),()=>Gt(s)),Lt=(e,t,s,n)=>ze(n?s:pt(s,e,t),(n,a)=>W(Ct(e,t,a,n),e=>(s[a]=e,!0),()=>!1),()=>Gt(e,t)),Ct=(t,s,n,a)=>e?W(Ae(Ae(P,t),n),e=>z(a)?e[i]?a:Gt(t,s,n,a,e[l]):ce(a)==e[r]?a:Gt(t,s,n,a,e[l]),()=>Gt(t,s,n,a)):N(ce(a))?Gt(t,s,n,a):a,Rt=(e,t)=>ze(t?e:St(e),(t,s)=>W(Tt(s,t),t=>(e[s]=t,!0),()=>!1),()=>Kt()),Tt=(e,s)=>t?W(Ae(Q,e),t=>z(s)?t[i]?s:Kt(e,s,t[l]):ce(s)==t[r]?s:Kt(e,s,t[l]),()=>Kt(e,s)):N(ce(s))?Kt(e,s):s,pt=(e,t,s)=>(W(Ae(F,t),([n,a])=>{pe(n,(t,s)=>{Je(e,s)||(e[s]=t)}),pe(a,n=>{Je(e,n)||Gt(t,s,n)})}),e),St=e=>(t&&(pe(O,(t,s)=>{Je(e,s)||(e[s]=t)}),pe(j,t=>{Je(e,t)||Kt(t)})),e),Vt=e=>Ue(P,e,(e,t,s)=>{const n=Oe(),a=et();Ue(Be(P,t,Oe),s,(e,t,s)=>{_e(e,t,s),W(s[l],e=>_e(n,t,e),()=>tt(a,t))}),_e(F,t,[n,a])},(e,t)=>{_e(P,t),_e(F,t)}),mt=e=>Ue(Q,e,(e,t,s)=>{_e(Q,t,s),W(s[l],e=>_e(O,t,e),()=>tt(j,t))},(e,t)=>{_e(Q,t),_e(O,t),Se(j,t)}),yt=e=>Qe(e)?Ps():ks(e),Mt=e=>Ue(K,e,(e,t,s)=>Et(t,s),(e,t)=>Qt(t)),Et=(e,t)=>Ue(Be(K,e,()=>(At(e,1),_e(q,e,rt()),_e(G,e,Oe()),Oe())),t,(t,s,n)=>kt(e,t,s,n),(t,s)=>zt(e,t,s)),kt=(e,t,s,n,a)=>Ue(Be(t,s,()=>(jt(e,s,1),Oe())),n,(t,n,a)=>Dt(e,s,t,n,a),(n,o)=>Ot(e,t,s,n,o,a)),Dt=(e,t,s,n,a)=>{Le(s,n)||_t(e,t,n,1);const o=Ae(s,n);a!==o&&(Bt(e,t,n,o,a),_e(s,n,a))},Ht=(e,t,s,n,a)=>W(Ae(t,s),t=>Dt(e,s,t,n,a),()=>kt(e,t,s,pt({[n]:a},e,s))),Jt=e=>Qe(e)?Ns():Ds(e),xt=e=>Ue(Z,e,(e,t,s)=>Pt(t,s),(e,t)=>Wt(t)),Pt=(e,t)=>{Le(Z,e)||Ut(e,1);const s=Ae(Z,e);t!==s&&(qt(e,s,t),_e(Z,e,t))},Ft=e=>Ae(K,e)??Et(e,{}),Qt=e=>Et(e,{}),zt=(e,t,s)=>{const[,n]=Ae(q,e);n(s),kt(e,t,s,{},!0)},Ot=(e,t,s,n,a,o)=>{const r=Ae(Ae(F,e)?.[0],a);if(!N(r)&&!o)return Dt(e,s,n,a,r);const l=t=>{Bt(e,s,t,Ae(n,t)),_t(e,s,t,-1),_e(n,t)};N(r)?l(a):je(n,l),Ce(n)&&(jt(e,s,-1),Ce(_e(t,s))&&(At(e,-1),_e(K,e),_e(q,e),_e(G,e)))},Wt=e=>{const t=Ae(O,e);if(!N(t))return Pt(e,t);qt(e,Ae(Z,e)),Ut(e,-1),_e(Z,e)},At=(e,t)=>as(h,e,t),jt=(e,t,s)=>as(Be(M,e,Oe),t,s)&&_e(y,e,Be(y,e,()=>0)+s),_t=(e,t,s,n)=>{const a=Ae(G,e),o=Ae(a,s)??0;(0==o&&1==n||1==o&&-1==n)&&as(Be(C,e,Oe),s,n),_e(a,s,o!=-n?o+n:void 0),as(Be(Be(E,e,Oe),t,Oe),s,n)},Bt=(e,t,s,n,a)=>{Be(Be(Be(k,e,Oe),t,Oe),s,()=>[n,0])[1]=a,c[3]?.(e,t,s,a)},Ut=(e,t)=>as(D,e,t),qt=(e,t,s)=>{Be(H,e,()=>[t,0])[1]=s,c[4]?.(e,s)},Gt=(e,t,s,n,a)=>(le(Be(Be(Be(J,e,Oe),t,Oe),s,()=>[]),n),a),Kt=(e,t,s)=>(le(Be(x,e,()=>[]),t),s),Xt=(e,t,s)=>W(Ae(Ae(Ae(k,e),t),s),([e,t])=>[!0,e,t],()=>[!1,...$t(Ls(e,t,s))]),Yt=e=>W(Ae(H,e),([e,t])=>[!0,e,t],()=>[!1,...$t(Ts(e))]),Zt=e=>Ce(J)||Ce(Pe[e])?0:pe(e?Ze(J):J,(t,s)=>pe(t,(t,n)=>pe(t,(t,a)=>ut(Pe[e],[s,n,a],t)))),rs=e=>Ce(x)||Ce(Ne[e])?0:pe(e?Xe(x):x,(t,s)=>ut(Ne[e],[s],t)),ls=(e,t,s,n)=>{if(!Ce(e))return ut(t,n,()=>qe(e)),je(e,(e,t)=>ut(s,[...n??[],e],1==t)),1},is=e=>{const t=ps();t!=s&&ut(ee[e],void 0,t);const n=Ce(Ve[e]),a=Ce(Me[e])&&Ce(ke[e])&&Ce(Re[e])&&Ce(me[e])&&Ce(de[e])&&Ce(ue[e])&&Ce(fe[e])&&n&&Ce(oe[e])&&Ce(re[e]),o=Ce(He[e])&&Ce(ye[e])&&Ce(ie[e])&&Ce(ae[e]);if(!a||!o){const t=e?[Xe(h),Ye(C),Xe(y),Ye(M),Ze(E),Ze(k)]:[h,C,y,M,E,k];if(!a){ls(t[0],oe[e],re[e]),pe(t[1],(t,s)=>ls(t,de[e],ue[e],[s])),pe(t[2],(t,s)=>{0!=t&&ut(fe[e],[s],Is(s))});const s=et();pe(t[3],(t,a)=>{ls(t,Re[e],me[e],[a])&&!n&&(ut(Ve[e],[a,null]),tt(s,a))}),n||pe(t[5],(t,n)=>{if(!Le(s,n)){const s=et();pe(t,e=>pe(e,([t,n],a)=>n!==t?tt(s,a):Se(e,a))),pe(s,t=>ut(Ve[e],[n,t]))}}),pe(t[4],(t,s)=>pe(t,(t,n)=>ls(t,Me[e],ke[e],[s,n])))}if(!o){let s;pe(t[5],(t,n)=>{let a;pe(t,(t,o)=>{let r;pe(t,([t,l],i)=>{l!==t&&(ut(He[e],[n,o,i],l,t,Xt),s=a=r=1)}),r&&ut(ye[e],[n,o],Xt)}),a&&ut(ie[e],[n],Xt)}),s&&ut(ae[e],void 0,Xt)}}},ds=e=>{const t=Ms();t!=n&&ut($e[e],void 0,t);const s=Ce(nt[e])&&Ce(at[e]),a=Ce(ot[e])&&Ce(st[e]);if(!s||!a){const t=e?[Xe(D),Xe(H)]:[D,H];if(s||ls(t[0],nt[e],at[e]),!a){let s;pe(t[1],([t,n],a)=>{n!==t&&(ut(ot[e],[a],n,t,Yt),s=1)}),s&&ut(st[e],void 0,Yt)}}},cs=(e,...t)=>(Ws(()=>e(...ne(t,m))),_s),us=(e,t,s,n,a)=>{let o=ws(e,t,...s);return ct(()=>{const a=ws(e,t,...s);$(a,o)||(o=a,n(_s,e,t,...s,o))},Ve[a?1:0],[e,t],[hs])},gs=()=>Ke(K),hs=()=>We(K),fs=e=>We(Ae(G,m(e))),Is=e=>Ie(Ae(K,m(e))),bs=e=>We(Ae(K,m(e))),ws=(e,t,s,n=0,a)=>{return Ee(e)?ws(e.tableId,e.cellId,e.descending,e.offset,e.limit):ne(U(te((o=Ae(K,m(e)),r=(e,s)=>[N(t)?s:Ae(e,m(t)),s],ne([...o?.entries()??[]],([e,t])=>r(t,e))),([e],[t])=>Nt(e,t)*(s?-1:1)),n,N(a)?a:n+a),([,e])=>e);var o,r},vs=(e,t)=>We(Ae(Ae(K,m(e)),m(t))),Ls=(e,t,s)=>Ae(Ae(Ae(K,m(e)),m(t)),m(s)),Cs=()=>qe(Z),Rs=()=>We(Z),Ts=e=>Ae(Z,m(e)),ps=()=>!Ce(K),Ss=e=>Le(K,m(e)),Vs=(e,t)=>Le(Ae(G,m(e)),m(t)),ms=(e,t)=>Le(Ae(K,m(e)),m(t)),ys=(e,t,s)=>Le(Ae(Ae(K,m(e)),m(t)),m(s)),Ms=()=>!Ce(Z),Es=e=>Le(Z,m(e)),ks=e=>cs(()=>(e=>ze(e,vt,Gt))(e)?Mt(e):0),Ds=e=>cs(()=>Rt(e)?xt(e):0),Hs=e=>(X(()=>yt(bt(e))),_s),Js=t=>cs(()=>{if((e=ze(t,e=>ze(e,ft)))&&(Vt(t),!Ce(K))){const e=gs();Ps(),ks(e)}}),xs=e=>cs(()=>{if(t=(e=>ze(e,ft))(e)){const s=Cs();Os(),Ns(),t=!0,mt(e),Ds(s)}}),Ps=()=>cs(()=>Mt({})),Fs=e=>cs(e=>Le(K,e)?Qt(e):0,e),Qs=(e,t)=>cs((e,t)=>W(Ae(K,e),s=>Le(s,t)?zt(e,s,t):0),e,t),Ns=()=>cs(()=>xt({})),zs=()=>cs(()=>{Vt({}),e=!1}),Os=()=>cs(()=>{mt({}),t=!1}),Ws=(e,t)=>{if(-1!=o){As();const s=e();return js(t),s}},As=()=>(-1!=o&&o++,1==o&&(c[0]?.(),ut(it)),_s),js=e=>(o>0&&(o--,0==o&&(o=1,Zt(1),Ce(k)||is(1),rs(1),Ce(H)||ds(1),e?.(_s)&&(pe(k,(e,t)=>pe(e,(e,s)=>pe(e,([e],n)=>ge(_s,t,s,n,e)))),Te(k),pe(H,([e],t)=>he(_s,t,e)),Te(H)),ut(dt[0],void 0),o=-1,Zt(0),Ce(k)||is(0),rs(0),Ce(H)||ds(0),c[1]?.(),ut(dt[1],void 0),c[2]?.(),o=0,s=ps(),n=Ms(),se([h,C,y,M,E,k,J,D,H,x],Te))),_s),_s={getContent:()=>[gs(),Cs()],getTables:gs,getTableIds:hs,getTable:e=>Ge(Ae(K,m(e))),getTableCellIds:fs,getRowCount:Is,getRowIds:bs,getSortedRowIds:ws,getRow:(e,t)=>qe(Ae(Ae(K,m(e)),m(t))),getCellIds:vs,getCell:Ls,getValues:Cs,getValueIds:Rs,getValue:Ts,hasTables:ps,hasTable:Ss,hasTableCell:Vs,hasRow:ms,hasCell:ys,hasValues:Ms,hasValue:Es,getTablesJson:()=>wt(K),getValuesJson:()=>wt(Z),getJson:()=>wt([K,Z]),getTablesSchemaJson:()=>wt(P),getValuesSchemaJson:()=>wt(Q),getSchemaJson:()=>wt([P,Q]),hasTablesSchema:()=>e,hasValuesSchema:()=>t,setContent:e=>cs(()=>{const t=_(e)?e():e;It(t)&&(([e,t])=>{(Qe(e)?Ps:ks)(e),(Qe(t)?Ns:Ds)(t)})(t)}),setTables:ks,setTable:(e,t)=>cs(e=>vt(t,e)?Et(e,t):0,e),setRow:(e,t,s)=>cs((e,t)=>Lt(e,t,s)?kt(e,Ft(e),t,s):0,e,t),addRow:(e,t,s=!0)=>Ws(()=>{let n;return Lt(e,n,t)&&(e=m(e),kt(e,Ft(e),n=((e,t)=>{const[s]=Ae(q,e);let n;do{n=s(t)}while(Le(Ae(K,e),n));return n})(e,s?1:0),t)),n}),setPartialRow:(e,t,s)=>cs((e,t)=>{if(Lt(e,t,s,1)){const n=Ft(e);Fe(s,(s,a)=>Ht(e,n,t,a,s))}},e,t),setCell:(e,t,s,n)=>cs((e,t,s)=>W(Ct(e,t,s,_(n)?n(Ls(e,t,s)):n),n=>Ht(e,Ft(e),t,s,n)),e,t,s),setValues:Ds,setPartialValues:e=>cs(()=>Rt(e,1)?Fe(e,(e,t)=>Pt(t,e)):0),setValue:(e,t)=>cs(e=>W(Tt(e,_(t)?t(Ts(e)):t),t=>Pt(e,t)),e),applyChanges:e=>cs(()=>{Fe(e[0],(e,t)=>N(e)?Fs(t):Fe(e,(e,s)=>N(e)?Qs(t,s):Fe(e,(e,n)=>ge(_s,t,s,n,e)))),Fe(e[1],(e,t)=>he(_s,t,e))}),setTablesJson:Hs,setValuesJson:e=>(X(()=>Jt(bt(e))),_s),setJson:e=>cs(()=>X(()=>{const[t,s]=bt(e);yt(t),Jt(s)},()=>Hs(e))),setTablesSchema:Js,setValuesSchema:xs,setSchema:(e,t)=>cs(()=>{Js(e),xs(t)}),delTables:Ps,delTable:Fs,delRow:Qs,delCell:(e,t,s,n)=>cs((e,t,s)=>W(Ae(K,e),a=>W(Ae(a,t),o=>Le(o,s)?Ot(e,a,t,o,s,n):0)),e,t,s),delValues:Ns,delValue:e=>cs(e=>Le(Z,e)?Wt(e):0,e),delTablesSchema:zs,delValuesSchema:Os,delSchema:()=>cs(()=>{zs(),Os()}),transaction:Ws,startTransaction:As,getTransactionChanges:()=>[qe(k,(e,t)=>-1===Ae(h,t)?void 0:qe(e,(e,s)=>-1===Ae(Ae(M,t),s)?void 0:qe(e,([,e])=>e,e=>ns(e)),Ce,Qe),Ce,Qe),qe(H,([,e])=>e,e=>ns(e)),1],getTransactionLog:()=>[!Ce(k),!Ce(H),Ke(k,ss,ns),Ke(J),qe(H,ss,ns),qe(x),qe(h),Ge(M),Ke(E),qe(D)],finishTransaction:js,forEachTable:e=>pe(K,(t,s)=>e(s,e=>pe(t,(t,s)=>e(s,e=>je(t,e))))),forEachTableCell:(e,t)=>je(Ae(G,m(e)),t),forEachRow:(e,t)=>pe(Ae(K,m(e)),(e,s)=>t(s,t=>je(e,t))),forEachCell:(e,t,s)=>je(Ae(Ae(K,m(e)),m(t)),s),forEachValue:e=>je(Z,e),addSortedRowIdsListener:(e,t,s,n,a,o,r)=>Ee(e)?us(e.tableId,e.cellId,[e.descending??!1,e.offset??0,e.limit],t,s):us(e,t,[s,n,a],o,r),addStartTransactionListener:e=>ct(e,it),addWillFinishTransactionListener:e=>ct(e,dt[0]),addDidFinishTransactionListener:e=>ct(e,dt[1]),callListener:e=>(ht(e),_s),delListener:e=>(gt(e),_s),getListenerStats:()=>({hasTables:es(ee),tables:es(ae),tableIds:es(oe),hasTable:es(re),table:es(ie),tableCellIds:es(de),hasTableCell:es(ue,we),rowCount:es(fe),rowIds:es(Re),sortedRowIds:es(Ve),hasRow:es(me,we),row:es(ye,we),cellIds:es(Me,we),hasCell:es(ke,ve),cell:es(He,ve),invalidCell:es(Pe,ve),hasValues:es($e),values:es(st),valueIds:es(nt),hasValue:es(at),value:es(ot),invalidValue:es(Ne),transaction:be(it)+es(dt)}),isMergeable:()=>!1,createStore:os,addListener:ct,callListeners:ut,setInternalListeners:(e,t,s,n,a)=>c=[e,t,s,n,a]};return Fe({[g+I]:[0,ee,[],()=>[ps()]],[I]:[0,ae],[b]:[0,oe],[g+f]:[1,re,[hs],e=>[Ss(...e)]],[f]:[1,ie,[hs]],[f+T]:[1,de,[hs]],[g+f+R]:[2,ue,[hs,fs],e=>[Vs(...e)]],[v]:[1,fe,[hs]],[L]:[1,Re,[hs]],[g+w]:[2,me,[hs,bs],e=>[ms(...e)]],[w]:[2,ye,[hs,bs]],[T]:[2,Me,[hs,bs]],[g+R]:[3,ke,[hs,bs,vs],e=>[ys(...e)]],[R]:[3,He,[hs,bs,vs],e=>$t(Ls(...e))],InvalidCell:[3,Pe],[g+S]:[0,$e,[],()=>[Ms()]],[S]:[0,st],[V]:[0,nt],[g+p]:[1,at,[Rs],e=>[Es(...e)]],[p]:[1,ot,[Rs],e=>$t(Ts(e[0]))],InvalidValue:[1,Ne]},([e,t,s,n],a)=>{_s[u+a+d]=(...a)=>ct(a[e],t[a[e+1]?1:0],e>0?U(a,0,e):void 0,s,n)}),De(_s)},rs={HasTable:1,Table:1,TableCellIds:1,HasTableCell:2,RowCount:1,RowIds:1,SortedRowIds:5,HasRow:2,Row:2,CellIds:2,HasCell:3,Cell:3,HasValue:1,Value:1,InvalidCell:3,InvalidValue:1},ls=(e=t)=>[Kt(e),Kt(e)],is=(e,s)=>{let n=1,a=ls(),o=0;const r=Oe(),l=et(),[i,c]=Qt(e,s),g=os(),h=e=>{const t=n;return n=0,e(),n=t,C},f=(e,s=0)=>{const n={},o={},[[r,l=t,i=0],d]=e,[u,g]=a,[h,f,b]=u;let w=s?i:b,v=l;Pe(r,([e,a=t,o=0],r)=>{const l=Be(h,r,Kt),[i,d,c]=l;let u=s?o:c,g=a;Pe(e,(e,t)=>{const[a,o,l]=I(e,Be(i,t,Kt),Ne(Ne(n,r,He),t,He),s);u^=s?0:Ct(o?Tt(t,o):0,Tt(t,l)),g=Ut(g,a)}),u^=s?0:Bt(d,a),qt(l,a,u),w^=s?0:Ct(c?Tt(r,c):0,Tt(r,l[2])),v=Ut(v,g)}),w^=s?0:Bt(f,l),qt(u,l,w);const[L]=I(d,g,o,s);return c(Ut(v,L)),[n,o,1]},I=(e,s,n,a)=>{const[o,r=t,l=0]=e,[i,d,c]=s;let u=r,g=a?l:c;return Pe(o,([e,s=t,o=0],r)=>{const l=Be(i,r,()=>[void 0,t,0]),[,d,c]=l;(!d||s>d)&&(qt(l,s,a?o:pt(e,s)),l[0]=e,n[r]=e,g^=a?0:Ct(Tt(r,c),Tt(r,l[2])),u=Ut(u,s))}),g^=a?0:Bt(d,r),qt(s,r,g),[u,c,s[2]]},b=K,w=K,v=()=>[Xt(a[0],e=>Xt(e,e=>Xt(e))),Xt(a[1])],L=e=>h(()=>g.applyChanges(f(e))),C={getMergeableContent:v,getMergeableContentHashes:()=>[a[0][2],a[1][2]],getMergeableTableHashes:()=>qe(a[0][0],_t),getMergeableTableDiff:e=>{const t=Gt(a[0][1]),s={};return je(a[0][0],(n,[a,o,r])=>Je(e,n)?r!=e[n]?s[n]=r:0:t[0][n]=Yt([a,o],e=>Yt(e))),[t,s]},getMergeableRowHashes:e=>{const t={};return Pe(e,(e,s)=>W(Ae(a[0][0],s),([n,,a])=>a!=e?je(n,(e,[,,n])=>Ne(t,s,He)[e]=n):0)),t},getMergeableRowDiff:e=>{const t=Gt(a[0][1]),s={};return Pe(e,(e,n)=>je(Ae(a[0][0],n)?.[0],(a,[o,r,l])=>Je(e,a)?l!==e[a]?Ne(s,n,He)[a]=l:0:Ne(t[0],n,Gt)[0][a]=Yt([o,r]))),[t,s]},getMergeableCellHashes:e=>{const t={};return Pe(e,(e,s)=>W(Ae(a[0][0],s),([n])=>Pe(e,(e,a)=>W(Ae(n,a),([n,,o])=>o!==e?je(n,(e,[,,n])=>Ne(Ne(t,s,He),a,He)[e]=n):0)))),t},getMergeableCellDiff:e=>{const[[t,s]]=a,n={};return Pe(e,(e,s)=>Pe(e,(e,a)=>W(Ae(t,s),([t,o])=>W(Ae(t,a),([t,r])=>je(t,(t,[l,i,d])=>d!==e[t]?Ne(Ne(n,s,()=>Gt(o))[0],a,()=>Gt(r))[0][t]=[l,i]:0))))),At(n,s)},getMergeableValueHashes:()=>qe(a[1][0],_t),getMergeableValueDiff:e=>{const[,[t,s]]=a,n=qe(t,Ot,([,,t],s)=>t==e?.[s]);return At(n,s)},setMergeableContent:e=>h(()=>(e=>B(e)&&2==q(e)&&Zt(e[0],e=>ze(e,e=>Zt(e,e=>ze(e,e=>Zt(e,e=>ze(e,e=>Zt(e,ue),void 0,1)),void 0,1)),void 0,1))&&Zt(e[1],e=>ze(e,e=>Zt(e,ue),void 0,1)))(e)?g.transaction(()=>{g.delTables().delValues(),a=ls(),g.applyChanges(f(e,1))}):0),setDefaultContent:e=>(g.transaction(()=>{o=1,g.setContent(e),o=0}),C),getTransactionMergeableChanges:(e=!1)=>{const[[t,s,n],[o,i,d]]=a,c=e?jt:At,u={};pe(r,(e,s)=>W(Ae(t,s),([t,n,a])=>{const o={};pe(e,(e,s)=>W(Ae(t,s),([t,n,a])=>{const r={};pe(e,e=>{W(Ae(t,e),([t,s,n])=>r[e]=c(t,s,n))}),o[s]=c(r,n,a)})),u[s]=c(o,n,a)}));const g={};return pe(l,e=>W(Ae(o,e),([t,s,n])=>g[e]=c(t,s,n))),[c(u,s,n),c(g,i,d),1]},applyMergeableChanges:L,merge:e=>{const t=v(),s=e.getMergeableContent();return e.applyMergeableChanges(t),L(s)}};return g.setInternalListeners(b,w,()=>{Te(r),Te(l)},(e,s,a,l)=>{tt(Be(Be(r,e,Oe),s,et),a),n&&f([[{[e]:[{[s]:[{[a]:[l,o?t:i()]}]}]}],[{}],1])},(e,s)=>{tt(l,e),n&&f([[{}],[{[e]:[s,o?t:i()]}],1])}),Fe(g,(e,t)=>C[t]=y(t,"set")||y(t,"del")||y(t,"apply")||M(t,"Transaction")||t=="call"+d?(...t)=>(e(...t),C):y(t,u)&&M(t,d)?(...s)=>{const n=rs[U(t,3,-8)]??0,a=s[n];return s[n]=(e,...t)=>a(C,...t),e(...s)}:"isMergeable"==t?()=>!0:e),De(C)},ds=Oe([["avg",[(e,t)=>ae(e)/t,(e,t,s)=>e+(t-e)/(s+1),(e,t,s)=>e+(e-t)/(s-1),(e,t,s,n)=>e+(t-s)/n]],["max",[e=>J(...e),(e,t)=>J(t,e),(e,t)=>t==e?void 0:e,(e,t,s)=>s==e?void 0:J(t,e)]],["min",[e=>x(...e),(e,t)=>x(t,e),(e,t)=>t==e?void 0:e,(e,t,s)=>s==e?void 0:x(t,e)]],["sum",[e=>ae(e),(e,t)=>e+t,(e,t)=>e-t,(e,t,s)=>e-s+t]]]),cs=(e,t,s,n,a,o=!1)=>{if(Ce(s))return;const[r,l,i,d]=a;return o||=N(e),pe(n,([s,n])=>{o||(e=N(s)?l?.(e,n,t++):N(n)?i?.(e,s,t--):d?.(e,n,s,t),o||=N(e))}),o?r(Re(s),Ie(s)):e},us=at(e=>{const s=Oe(),[n,a,o]=lt(()=>w),[r,l,i,d,c,u,g,,h,f,I,b]=st(e,G,e=>isNaN(e)||N(e)||!0===e||!1===e||e===t?void 0:1*e,n,a),w={setMetricDefinition:(e,t,n,o,r,l,i)=>{const d=_(n)?[n,r,l,i]:Ae(ds,n)??Ae(ds,"sum");return h(e,t,(t,n,o,r,l,i)=>{const c=u(e),h=Ie(r);i||=N(c),t();let f=cs(c,h,r,n,d,i);F(f)||(f=void 0),f!=c&&(g(e,f),a(s,[e],f,c))},nt(o,1)),w},delMetricDefinition:e=>(f(e),w),getStore:r,getMetricIds:l,forEachMetric:i,hasMetric:d,getTableId:c,getMetric:u,addMetricIdsListener:I,addMetricListener:(e,t)=>n(t,s,[e]),delListener:e=>(o(e),w),destroy:b,getListenerStats:()=>({metric:be(s)})};return De(w)}),gs=at(e=>{const s=e.createStore,n=s(),a=s(),o=Oe(),r=Oe(),l=Oe(),{addListener:i,callListeners:g,delListener:h}=a,[I,b,p,S,V,m,y,M,,E,k,D,H,J]=st(e,()=>[],G,i,g),x=(e,t,...s)=>se(s,s=>tt(Be(Be(o,t,Oe),e,et),s)),P=e=>{W(Ae(o,e),e=>{je(e,(e,t)=>pe(t,t=>e.delListener(t))),Te(e)}),se([a,n],t=>t.delTable(e))},F=(e,t,s)=>x(t,e,t.addStartTransactionListener(s.startTransaction),t.addDidFinishTransactionListener(()=>s.finishTransaction())),Q=(s,o,r,l={})=>{var i;M(s,o),y(s,[r,(i=l,new Map(Me(i)))]),P(s);const[,d]=m(s),c=[],u=[[void 0,[o,void 0,void 0,[],Oe()]]],g=[],h=[],f=[];r({select:(e,s)=>{const n=_(e)?[q(c)+t,e]:[N(s)?e:s,t=>t(e,s)];return le(c,n),{as:e=>n[0]=e}},join:(e,t,s)=>{const n=N(s)||_(t)?void 0:t,a=N(n)?t:s,o=[e,[e,n,_(a)?a:e=>e(a),[],Oe()]];return le(u,o),{as:e=>o[0]=e}},where:(e,t,s)=>le(g,_(e)?e:N(s)?s=>s(e)===t:n=>n(e,t)===s),group:(e,t,s,n,a)=>{const o=[e,[e,_(t)?[t,s,n,a]:Ae(ds,t)??[(e,t)=>t]]];return le(h,o),{as:e=>o[0]=e}},having:(e,t)=>le(f,_(e)?e:s=>s(e)===t),param:e=>Ae(d,e)});const I=Oe(c);if(Ce(I))return O;const b=Oe(u);je(b,(e,[,t])=>W(Ae(b,t),({3:t})=>N(e)?0:le(t,e)));const w=Oe(h);let v=n;if(Ce(w)&&oe(f))v=a;else{F(s,v,a);const e=Oe();je(w,(t,[s,n])=>tt(Be(e,s,et),[t,n]));const t=et();je(I,s=>Le(e,s)?0:tt(t,s));const n=Oe(),o=(t,n,o,r)=>W(t,([l,i,d,c])=>{je(n,(t,[s])=>{const n=Be(l,t,Oe),a=Ae(n,o),i=r?void 0:s;if(a!==i){const s=et([[a,i]]),r=Ie(n);_e(n,o,i),pe(Ae(e,t),([e,t])=>{const a=cs(c[e],r,n,s,t);c[e]=N(ce(a))?void 0:a})}}),Ce(i)||!Z(f,e=>e(e=>c[e]))?a.delRow(s,d):N(d)?t[2]=a.addRow(s,c):a.setRow(s,d,c)});x(v,s,v.addRowListener(s,null,(a,r,l,i)=>{const d=[],c=[],u=Oe(),g=v.hasRow(s,l);let h=!g;pe(t,e=>{const[t,n,a]=i(s,l,e);le(d,n),le(c,a),h||=t}),je(e,e=>{const[t,,n]=i(s,l,e);(h||t)&&_e(u,e,[n])}),h&&o($e(n,d,void 0,([,e])=>(Se(e,l),Ce(e))),u,l,1),g&&o($e(n,c,()=>{const e={};return pe(t,t=>e[t]=v.getCell(s,l,t)),[Oe(),et(),void 0,e]},([,e])=>{tt(e,l)}),u,l)}))}F(s,e,v);const L=(t,n,a,r)=>{const l=t=>e.getCell(n,a,t);se(r,n=>{const[a,,o,r,i]=Ae(b,n),d=o?.(l,t),[c,u]=Ae(i,t)??[];d!=c&&(N(u)||J(s,u),_e(i,t,N(d)?void 0:[d,...H(s,1,e.addRowListener(a,d,()=>L(t,a,d,r)))]))}),(t=>{const n=(s,n)=>e.getCell(...N(n)?[o,t,s]:s===o?[o,t,n]:[Ae(b,s)?.[0],Ae(Ae(b,s)?.[4],t)?.[0],n]);v.transaction(()=>Z(g,e=>e(n))?je(I,(e,a)=>ge(v,s,t,e,a(n,t))):v.delRow(s,t))})(t)},{3:C}=Ae(b,void 0);return v.transaction(()=>H(s,1,e.addRowListener(o,null,(t,n,a)=>{e.hasRow(o,a)?L(a,o,a,C):(v.delRow(s,a),pe(b,({4:e})=>W(Ae(e,a),([,t])=>{J(s,t),_e(e,a)})))}))),O},z=(e,t)=>(W(m(e),([s,n])=>{const o=Oe();Ue(n,t,(e,t,s)=>{var a,r;a=s,r=Ae(n,t),(B(a)&&B(r)?$(a,r):a===r)||_e(o,t,s)},(e,t)=>_e(o,t,void 0)),Ce(o)||(a.transaction(()=>Q(e,V(e),s,t)),je(o,(t,s)=>g(l,[e,t],s)),g(r,[e],{...t}))}),O),O={setQueryDefinition:Q,delQueryDefinition:e=>{const t=m(e)?.[1];return P(e),E(e),W(t,t=>{je(t,t=>g(l,[e,t],void 0)),g(r,[e],{})}),O},getParamValues:e=>W(m(e)?.[1],qe)??{},getParamValue:(e,t)=>Ae(m(e)?.[1],t),setParamValues:z,setParamValue:(e,t,s)=>z(e,{...qe(m(e)?.[1]),[t]:s}),getStore:I,getQueryIds:b,forEachQuery:p,hasQuery:S,getTableId:V,addQueryIdsListener:e=>k(()=>e(O)),addParamValuesListener:(e,t)=>i((e,s,n)=>t(O,s,n),r,[e]),addParamValueListener:(e,t,s)=>i((e,t,n,a)=>s(O,t,n,a),l,[e,t]),delListener:e=>(h(e),O),destroy:D,getListenerStats:()=>{const{tables:e,tableIds:t,transaction:s,...n}=a.getListenerStats();return{...n,paramValues:be(r),paramValue:we(l)}}};return Fe({[f]:[1,1],[f+T]:[0,1],[v]:[0,1],[L]:[0,1],[C]:[0,5],[w]:[1,2],[T]:[0,2],[R]:[1,3]},([e,t],s)=>{se(e?["get","has","forEach"]:["get"],e=>O[e+c+s]=(...t)=>a[e+s](...t)),O[u+c+s+d]=(...e)=>a[u+s+d](...U(e,0,t),(s,...n)=>e[t](O,...n),!0)}),De(O)}),hs=at(e=>{const s=Oe(),n=Oe(),a=Oe(),o=Oe(),[r,l,i]=lt(()=>T),[d,c,u,g,h,f,,,I,b,w,v]=st(e,()=>[Oe(),Oe(),Oe(),Oe()],e=>N(e)?void 0:e+t,r,l),L=(e,t,s)=>W(f(e),([n,,a])=>{if(!Le(a,t)){const o=et();if(h(e)!=R(e))tt(o,t);else{let e=t;for(;!N(e)&&!Le(o,e);)tt(o,e),e=Ae(n,e)}if(s)return o;_e(a,t,o)}return Ae(a,t)}),C=(e,t)=>W(f(e),([,,e])=>_e(e,t)),R=e=>Ae(s,e),T={setRelationshipDefinition:(e,t,r,i)=>(_e(s,e,r),I(e,t,(t,s)=>{const r=et(),i=et(),d=et(),[c,u]=f(e);pe(s,([t,s],n)=>{N(t)||(tt(i,t),W(Ae(u,t),e=>{Se(e,n),Ce(e)&&_e(u,t)})),N(s)||(tt(i,s),Le(u,s)||_e(u,s,et()),tt(Ae(u,s),n)),tt(r,n),_e(c,n,s),je(Ae(o,e),t=>{Le(L(e,t),n)&&tt(d,t)})}),t(),pe(r,t=>l(n,[e,t])),pe(i,t=>l(a,[e,t])),pe(d,t=>{C(e,t),l(o,[e,t])})},nt(i)),T),delRelationshipDefinition:e=>(_e(s,e),b(e),T),getStore:d,getRelationshipIds:c,forEachRelationship:t=>u(s=>t(s,t=>e.forEachRow(h(s),t))),hasRelationship:g,getLocalTableId:h,getRemoteTableId:R,getRemoteRowId:(e,t)=>Ae(f(e)?.[0],t),getLocalRowIds:(e,t)=>Re(Ae(f(e)?.[1],t)),getLinkedRowIds:(e,t)=>N(f(e))?[t]:Re(L(e,t,!0)),addRelationshipIdsListener:w,addRemoteRowIdListener:(e,t,s)=>r(s,n,[e,t]),addLocalRowIdsListener:(e,t,s)=>r(s,a,[e,t]),addLinkedRowIdsListener:(e,t,s)=>(L(e,t),r(s,o,[e,t])),delListener:e=>(C(...i(e)??[]),T),destroy:v,getListenerStats:()=>({remoteRowId:we(n),localRowIds:we(a),linkedRowIds:we(o)})};return De(T)});export{Ct as addOrRemoveHash,it as createCheckpoints,zt as createIndexes,is as createMergeableStore,us as createMetrics,gs as createQueries,hs as createRelationships,os as createStore,Nt as defaultSorter,St as getCellHash,Vt as getCellInRowHash,Lt as getHash,Qt as getHlcFunctions,mt as getRowHash,yt as getRowInTableHash,Mt as getTableHash,Et as getTableInTablesHash,kt as getTablesHash,ft as getUniqueId,pt as getValueHash,Tt as getValueInValuesHash,Rt as getValuesHash};
|
package/min/index.js.gz
CHANGED
|
Binary file
|