tinybase
Version:
A reactive data store and sync engine.
2 lines (1 loc) • 42.8 kB
JavaScript
import{jsx as e,jsxs as t,Fragment as n}from"react/jsx-runtime";import{useCell as l,useValue as s,useSetValueCallback as r,CellView as a,ResultCellView as o,ValueView as i,useSetCellCallback as d,useIndexes as c,useIndexIds as u,useSliceIds as h,useMetrics as m,useMetricIds as g,useMetric as b,useQueries as p,useQueryIds as v,useRelationships as I,useRelationshipIds as f,useTableIds as C,useTableCellIds as w,useHasCell as T,useValueIds as y,useStore as q,useValues as x,useStoreIds as k,useMetricsIds as S,useIndexesIds as D,useRelationshipsIds as M,useQueriesIds as Z,useCreateStore as N,useCreatePersister as L}from"../ui-react/index.js";import V from"react";const E=e=>typeof e,R="",A=E(R),$=E(!0),H=E(0),z=E(E),P="type",J="default",O="allowNull",B="Listener",j="Result",F="Has",W="Ids",Q="Table",_=Q+"s",K=Q+W,G="Row",U=G+"Count",X=G+W,Y="Sorted"+G+W,ee="Cell",te=ee+W,ne="Value",le=ne+"s",se=ne+W,re="currentTarget",ae="value",oe="extra",ie=e=>R+e,de=e=>(t,n,l)=>e(t)?l?.():n(t),ce=globalThis,ue=ce.window,he=Math,me=he.min,ge=he.floor,be=isFinite,pe=e=>null==e,ve=e=>void 0===e,Ie=e=>null===e,fe=e=>!1===e,Ce=de(pe),we=de(ve),Te=e=>e==A||e==$,ye=e=>E(e)==A,qe=e=>E(e)==z,xe=e=>Array.isArray(e),ke=(e,t,n)=>e.slice(t,n),Se=e=>e.length,De=()=>{},Me=e=>e,Ze=e=>{throw Error(e)},Ne=async(e,t,n)=>{try{return await e()}catch(e){t?.(e)}},Le=(e,t)=>e.every(t),Ve=(e,t)=>Se(e)===Se(t)&&Le(e,(e,n)=>t[n]===e),Ee=(e,t)=>xe(e)&&xe(t)?Ve(e,t):e===t,Re=(e,t)=>e.sort(t),Ae=(e,t)=>e.forEach(t),$e=(e,t="")=>e.join(t),He=(e,t)=>e.map(t),ze=e=>0==Se(e),Pe=(e,...t)=>e.push(...t),Je=e=>e.shift(),Oe=Object,Be=e=>Oe.getPrototypeOf(e),je=Oe.isFrozen,Fe=Oe.entries,We=e=>!pe(e)&&Ce(Be(e),e=>e==Oe.prototype||pe(Be(e)),()=>!0),Qe=Oe.keys,_e=Oe.freeze,Ke=(e=[])=>Oe.fromEntries(e),Ge=(e,t)=>t in e,Ue=(e,t)=>(delete e[t],e),Xe=(e,t)=>He(Fe(e),([e,n])=>t(n,e)),Ye=(e,t)=>Ke(Xe(e,(e,n)=>[n,t(e,n)])),et=e=>Se(Qe(e)),tt=e=>We(e)&&0==et(e),nt=(e,t,n=(e,t)=>e===t)=>{const l=Fe(e);return Se(l)===et(t)&&Le(l,([e,l])=>We(l)?!!We(t[e])&&nt(t[e],l):n(l,t[e]))},lt=(e,t,n,l=0)=>pe(e)||!We(e)||!l&&tt(e)||je(e)?(n?.(),!1):(((e,t)=>{Ae(Fe(e),([e,n])=>t(n,e))})(e,(n,l)=>{t(n,l)||Ue(e,l)}),!!l||!tt(e)),st=JSON.stringify,rt=JSON.parse,at=e=>st(e,(e,t)=>t instanceof Map?Oe.fromEntries([...t]):t),ot=e=>it(rt(e)),it=e=>""===e?void 0:xe(e)?He(e,it):We(e)?Ye(e,it):e,dt=e=>t=>{return n=(t,n)=>t+e(n),pt(t).reduce(n,0);var n},ct=e=>e?.size??0,ut=dt(ct),ht=dt(ut),mt=dt(ht),gt=(e,t)=>e?.has(t)??!1,bt=e=>ve(e)||0==ct(e),pt=e=>[...e?.values()??[]],vt=e=>e.clear(),It=(e,t)=>e?.forEach(t),ft=(e,t)=>e?.delete(t),Ct=Map,wt=e=>new Ct(e),Tt=e=>[...e?.keys()??[]],yt=(e,t)=>e?.get(t),qt=(e,t)=>It(e,(e,n)=>t(n,e)),xt=(e,t,n)=>ve(n)?(ft(e,t),e):e?.set(t,n),kt=(e,t,n,l)=>(gt(e,t)?l?.(yt(e,t)):xt(e,t,n()),yt(e,t)),St=(e,t,n,l=xt)=>(Ye(t,(t,l)=>n(e,l,t)),qt(e,n=>Ge(t,n)?0:l(e,n)),e),Dt=(e,t,n,l)=>{const s={};return It(e,(e,r)=>{if(!n?.(e,r)){const n=t?t(e,r):e;l?.(n)||(s[r]=n)}}),s},Mt=(e,t,n)=>Dt(e,e=>Dt(e,t,n),bt,tt),Zt=(e,t,n)=>Dt(e,e=>Mt(e,t,n),bt,tt),Nt=(e,t)=>{const n=wt();return It(e,(e,l)=>n.set(l,t?.(e)??e)),n},Lt=e=>Nt(e,Nt),Vt=e=>Nt(e,Lt),Et=(e,t,n,l,s=0)=>we((n?kt:yt)(e,t[s],s>Se(t)-2?n:wt),r=>{if(s>Se(t)-2)return l?.(r)&&xt(e,t[s]),r;const a=Et(r,t,n,l,s+1);return bt(r)&&xt(e,t[s]),a}),Rt=/^\d+$/,At=()=>{const e=[];let t=0;return[n=>(n?Je(e):null)??R+t++,t=>{Rt.test(t)&&Se(e)<1e3&&Pe(e,t)}]},$t=e=>new Set(xe(e)||ve(e)?e:[e]),Ht=(e,t)=>e?.add(t),zt=e=>{let t;const[n,l]=At(),s=wt();return[(l,r,a,o=[],i=()=>[])=>{t??=e();const d=n(1);return xt(s,d,[l,r,a,o,i]),Ht(Et(r,a??[R],$t),d),d},(e,n,...l)=>Ae(((e,t=[R])=>{const n=[],l=(e,s)=>s==Se(t)?Pe(n,e):Ie(t[s])?It(e,e=>l(e,s+1)):Ae([t[s],null],t=>l(yt(e,t),s+1));return l(e,0),n})(e,n),e=>It(e,e=>yt(s,e)[0](t,...n??[],...l))),e=>we(yt(s,e),([,t,n])=>(Et(t,n??[R],void 0,t=>(ft(t,e),bt(t)?1:0)),xt(s,e),l(e),n)),e=>we(yt(s,e),([e,,n=[],l,s])=>{const r=(...a)=>{const o=Se(a);o==Se(n)?e(t,...a,...s(a)):Ie(n[o])?Ae(l[o]?.(...a)??[],e=>r(...a,e)):r(...a,n[o])};r()})]},Pt=wt(),Jt=wt(),Ot="storage",Bt=e=>{if(Ie(e))return"null";const t=E(e);return Te(t)||t==H&&be(e)?t:void 0},jt=(e,t,n,l,s)=>ve(s)?e.delCell(t,n,l,!0):e.setCell(t,n,l,s),Ft=(e,t,n)=>ve(n)?e.delValue(t):e.setValue(t,n),Wt=(e,t,n,l)=>e==A?t:e==H?n:e==$?l:null,Qt=e=>[e,e],_t=(e,t=ut)=>t(e[0])+t(e[1]),Kt=()=>[wt(),wt()],Gt=e=>[...e],Ut=([e,t])=>e===t,Xt=(e,t,n)=>xt(e,t,yt(e,t)==-n?void 0:n),Yt=()=>{let e,t,n=!1,l=!1,s=0,r=[],a=0;const o=wt(),i=wt(),d=wt(),c=wt(),u=wt(),h=wt(),m=wt(),g=wt(),b=wt(),p=wt(),v=wt(),I=wt(),f=wt(),C=wt(),w=$t(),T=wt(),y=wt(),q=wt(),x=wt(),k=Kt(),S=Kt(),D=Kt(),M=Kt(),Z=Kt(),N=Kt(),L=Kt(),V=Kt(),E=Kt(),R=Kt(),A=Kt(),$=Kt(),z=Kt(),j=Kt(),W=Kt(),Y=Kt(),re=Kt(),ae=Kt(),oe=Kt(),de=Kt(),ce=Kt(),ue=Kt(),he=wt(),me=Kt(),[ge,be,pe,fe]=zt(()=>Bn),Ce=e=>{if(!lt(e,(e,t)=>[P,J,O].includes(t)))return!1;const t=e[P];if(!Te(t)&&t!=H)return!1;const n=e[J];return!(Ie(n)&&!e[O]||(Ie(n)||Bt(n)==t||Ue(e,J),0))},ye=xe,Se=(t,n)=>(!e||gt(v,n)||Wt(n))&<(t,(e,t)=>De(n,t,e),()=>Wt(n)),De=(e,t,n,l)=>lt(l?n:Ee(n,e,t),(l,s)=>we(Me(e,t,s,l),e=>(n[s]=e,!0),()=>!1),()=>Wt(e,t)),Me=(t,n,l,s)=>e?we(yt(yt(v,t),l),e=>Ie(s)?e[O]?s:Wt(t,n,l,s,e[J]):Bt(s)==e[P]?s:Wt(t,n,l,s,e[J]),()=>Wt(t,n,l,s)):ve(Bt(s))?Wt(t,n,l,s):s,Ze=(e,t)=>lt(t?e:$e(e),(t,n)=>we(Le(n,t),t=>(e[n]=t,!0),()=>!1),()=>en()),Le=(e,n)=>t?we(yt(f,e),t=>Ie(n)?t[O]?n:en(e,n,t[J]):Bt(n)==t[P]?n:en(e,n,t[J]),()=>en(e,n)):ve(Bt(n))?en(e,n):n,Ee=(e,t,n)=>(we(yt(I,t),([l,s])=>{It(l,(t,n)=>{Ge(e,n)||(e[n]=t)}),It(s,l=>{Ge(e,l)||Wt(t,n,l)})}),e),$e=e=>(t&&(It(C,(t,n)=>{Ge(e,n)||(e[n]=t)}),It(w,t=>{Ge(e,t)||en(t)})),e),ze=e=>St(v,e,(e,t,n)=>{const l=wt(),s=$t();St(kt(v,t,wt),n,(e,t,n)=>{xt(e,t,n),we(n[J],e=>xt(l,t,e),()=>Ht(s,t))}),xt(I,t,[l,s])},(e,t)=>{xt(v,t),xt(I,t)}),Je=e=>St(f,e,(e,t,n)=>{xt(f,t,n),we(n[J],e=>xt(C,t,e),()=>Ht(w,t))},(e,t)=>{xt(f,t),xt(C,t),ft(w,t)}),Oe=e=>tt(e)?En():Mn(e),Be=e=>St(q,e,(e,t,n)=>je(t,n),(e,t)=>ot(t)),je=(e,t)=>St(kt(q,e,()=>(Ct(e,1),xt(T,e,At()),xt(y,e,wt()),wt())),t,(t,n,l)=>Fe(e,t,n,l),(t,n)=>it(e,t,n)),Fe=(e,t,n,l,s)=>St(kt(t,n,()=>(Et(e,n,1),wt())),l,(t,l,s)=>Qe(e,n,t,l,s),(l,r)=>dt(e,t,n,l,r,s)),Qe=(e,t,n,l,s)=>{gt(n,l)||Rt(e,t,l,1);const r=yt(n,l);s!==r&&(Pt(e,t,l,r,s),xt(n,l,s))},Ke=(e,t,n,l,s)=>we(yt(t,n),t=>Qe(e,n,t,l,s),()=>Fe(e,t,n,Ee({[l]:s},e,n))),Xe=e=>tt(e)?$n():Zn(e),et=e=>St(x,e,(e,t,n)=>nt(t,n),(e,t)=>pt(t)),nt=(e,t)=>{gt(x,e)||Jt(e,1);const n=yt(x,e);t!==n&&(Ot(e,n,t),xt(x,e,t))},st=e=>yt(q,e)??je(e,{}),ot=e=>je(e,{}),it=(e,t,n)=>{const[,l]=yt(T,e);l(n),Fe(e,t,n,{},!0)},dt=(e,t,n,l,s,r)=>{const a=yt(yt(I,e)?.[0],s);if(!ve(a)&&!r)return Qe(e,n,l,s,a);const o=t=>{Pt(e,n,t,yt(l,t)),Rt(e,n,t,-1),xt(l,t)};ve(a)?o(s):qt(l,o),bt(l)&&(Et(e,n,-1),bt(xt(t,n))&&(Ct(e,-1),xt(q,e),xt(T,e),xt(y,e)))},pt=e=>{const t=yt(C,e);if(!ve(t))return nt(e,t);Ot(e,yt(x,e)),Jt(e,-1),xt(x,e)},Ct=(e,t)=>Xt(o,e,t),Et=(e,t,n)=>Xt(kt(c,e,wt),t,n)&&xt(d,e,kt(d,e,()=>0)+n),Rt=(e,t,n,l)=>{const s=yt(y,e),r=yt(s,n)??0;(0==r&&1==l||1==r&&-1==l)&&Xt(kt(i,e,wt),n,l),xt(s,n,r!=-l?r+l:void 0),Xt(kt(kt(u,e,wt),t,wt),n,l)},Pt=(e,t,n,l,s)=>{kt(kt(kt(h,e,wt),t,wt),n,()=>[l,0])[1]=s,r[3]?.(e,t,n,s,a)},Jt=(e,t)=>Xt(m,e,t),Ot=(e,t,n)=>{kt(g,e,()=>[t,0])[1]=n,r[4]?.(e,n,a)},Wt=(e,t,n,l,s)=>(Pe(kt(kt(kt(b,e,wt),t,wt),n,()=>[]),l),s),en=(e,t,n)=>(Pe(kt(p,e,()=>[]),t),n),tn=(e,t,n)=>we(yt(yt(yt(h,e),t),n),([e,t])=>[!0,e,t],()=>[!1,...Qt(In(e,t,n))]),nn=e=>we(yt(g,e),([e,t])=>[!0,e,t],()=>[!1,...Qt(wn(e))]),ln=e=>bt(b)||bt(Y[e])?0:It(e?Vt(b):b,(t,n)=>It(t,(t,l)=>It(t,(t,s)=>be(Y[e],[n,l,s],t)))),sn=e=>bt(p)||bt(re[e])?0:It(e?Nt(p):p,(t,n)=>be(re[e],[n],t)),rn=(e,t,n,l)=>{if(!bt(e))return be(t,l,()=>Dt(e)),qt(e,(e,t)=>be(n,[...l??[],e],1==t)),1},an=e=>{const t=!bt(k[e]),l=!bt(R[e]),s=!(bt(z[e])&&bt(j[e])&&bt(E[e])&&bt(A[e])&&bt(N[e])&&bt(L[e])&&bt(V[e])&&!l&&bt(D[e])&&bt(M[e])),r=!(bt(W[e])&&bt($[e])&&bt(Z[e])&&bt(S[e]));if(t||s||r){const a=e?[Nt(o),Lt(i),Nt(d),Lt(c),Vt(u),Nt(h,e=>Nt(e,e=>Nt(e,Gt)))]:[o,i,d,c,u,h];if(t){const t=Tn();t!=n&&be(k[e],void 0,t)}if(s){rn(a[0],D[e],M[e]),It(a[1],(t,n)=>rn(t,N[e],L[e],[n])),It(a[2],(t,n)=>{0!=t&&be(V[e],[n],gn(n))});const t=$t();It(a[3],(n,s)=>{rn(n,E[e],A[e],[s])&&l&&(be(R[e],[s,null]),Ht(t,s))}),l&&It(a[5],(n,l)=>{if(!gt(t,l)){const t=$t();It(n,e=>It(e,([n,l],s)=>l!==n?Ht(t,s):ft(e,s))),It(t,t=>be(R[e],[l,t]))}}),It(a[4],(t,n)=>It(t,(t,l)=>rn(t,z[e],j[e],[n,l])))}if(r){let t;It(a[5],(n,l)=>{let s;It(n,(n,r)=>{let a;It(n,([n,o],i)=>{o!==n&&(be(W[e],[l,r,i],o,n,tn),t=s=a=1)}),a&&be($[e],[l,r],tn)}),s&&be(Z[e],[l],tn)}),t&&be(S[e],void 0,tn)}}},on=e=>{const t=!bt(ae[e]),n=!bt(de[e])||!bt(ce[e]),s=!bt(ue[e])||!bt(oe[e]);if(t||n||s){const r=e?[Nt(m),Nt(g,Gt)]:[m,g];if(t){const t=Sn();t!=l&&be(ae[e],void 0,t)}if(n&&rn(r[0],de[e],ce[e]),s){let t;It(r[1],([n,l],s)=>{l!==n&&(be(ue[e],[s],l,n,nn),t=1)}),t&&be(oe[e],void 0,nn)}}},dn=(e,...t)=>(Pn(()=>e(...He(t,ie))),Bn),cn=(e,t,n,l,s)=>{let r=pn(e,t,...n);return ge(()=>{const s=pn(e,t,...n);Ve(s,r)||(r=s,l(Bn,e,t,...n,r))},R[s?1:0],[e,t],[hn])},un=()=>Zt(q),hn=()=>Tt(q),mn=e=>Tt(yt(y,ie(e))),gn=e=>ct(yt(q,ie(e))),bn=e=>Tt(yt(q,ie(e))),pn=(e,t,n,l=0,s)=>{return We(e)?pn(e.tableId,e.cellId,e.descending,e.offset,e.limit):He(ke(Re((r=yt(q,ie(e)),a=(e,n)=>[ve(t)?n:yt(e,ie(t)),n],He([...r?.entries()??[]],([e,t])=>a(t,e))),([e],[t])=>((e??0)<(t??0)?-1:1)*(n?-1:1)),l,ve(s)?s:l+s),([,e])=>e);var r,a},vn=(e,t)=>Tt(yt(yt(q,ie(e)),ie(t))),In=(e,t,n)=>yt(yt(yt(q,ie(e)),ie(t)),ie(n)),fn=()=>Dt(x),Cn=()=>Tt(x),wn=e=>yt(x,ie(e)),Tn=()=>!bt(q),yn=e=>gt(q,ie(e)),qn=(e,t)=>gt(yt(y,ie(e)),ie(t)),xn=(e,t)=>gt(yt(q,ie(e)),ie(t)),kn=(e,t,n)=>gt(yt(yt(q,ie(e)),ie(t)),ie(n)),Sn=()=>!bt(x),Dn=e=>gt(x,ie(e)),Mn=e=>dn(()=>(e=>lt(e,Se,Wt))(e)?Be(e):0),Zn=e=>dn(()=>Ze(e)?et(e):0),Nn=e=>(Ne(()=>Oe(rt(e))),Bn),Ln=t=>dn(()=>{if((e=lt(t,e=>lt(e,Ce)))&&(ze(t),!bt(q))){const e=un();En(),Mn(e)}}),Vn=e=>dn(()=>{if(t=(e=>lt(e,Ce))(e)){const n=fn();zn(),$n(),t=!0,Je(e),Zn(n)}}),En=()=>dn(()=>Be({})),Rn=e=>dn(e=>gt(q,e)?ot(e):0,e),An=(e,t)=>dn((e,t)=>we(yt(q,e),n=>gt(n,t)?it(e,n,t):0),e,t),$n=()=>dn(()=>et({})),Hn=()=>dn(()=>{ze({}),e=!1}),zn=()=>dn(()=>{Je({}),t=!1}),Pn=(e,t)=>{if(-1!=s){Jn();const n=e();return On(t),n}},Jn=()=>(-1!=s&&s++,1==s&&(r[0]?.(),be(he)),Bn),On=e=>(s>0&&(s--,0==s&&(s=1,a=1,ln(1),bt(h)||an(1),sn(1),bt(g)||on(1),a=0,e?.(Bn)&&(It(h,(e,t)=>It(e,(e,n)=>It(e,([e],l)=>jt(Bn,t,n,l,e)))),vt(h),It(g,([e],t)=>Ft(Bn,t,e)),vt(g)),be(me[0],void 0),s=-1,ln(0),bt(h)||an(0),sn(0),bt(g)||on(0),r[1]?.(),be(me[1],void 0),r[2]?.(),s=0,n=Tn(),l=Sn(),Ae([o,i,d,c,u,h,b,m,g,p],vt))),Bn),Bn={getContent:()=>[un(),fn()],getTables:un,getTableIds:hn,getTable:e=>Mt(yt(q,ie(e))),getTableCellIds:mn,getRowCount:gn,getRowIds:bn,getSortedRowIds:pn,getRow:(e,t)=>Dt(yt(yt(q,ie(e)),ie(t))),getCellIds:vn,getCell:In,getValues:fn,getValueIds:Cn,getValue:wn,hasTables:Tn,hasTable:yn,hasTableCell:qn,hasRow:xn,hasCell:kn,hasValues:Sn,hasValue:Dn,getTablesJson:()=>at(q),getValuesJson:()=>at(x),getJson:()=>at([q,x]),getTablesSchemaJson:()=>at(v),getValuesSchemaJson:()=>at(f),getSchemaJson:()=>at([v,f]),hasTablesSchema:()=>e,hasValuesSchema:()=>t,setContent:e=>dn(()=>{const t=qe(e)?e():e;ye(t)&&(([e,t])=>{(tt(e)?En:Mn)(e),(tt(t)?$n:Zn)(t)})(t)}),setTables:Mn,setTable:(e,t)=>dn(e=>Se(t,e)?je(e,t):0,e),setRow:(e,t,n)=>dn((e,t)=>De(e,t,n)?Fe(e,st(e),t,n):0,e,t),addRow:(e,t,n=!0)=>Pn(()=>{let l;return De(e,l,t)&&(e=ie(e),Fe(e,st(e),l=((e,t)=>{const[n]=yt(T,e);let l;do{l=n(t)}while(gt(yt(q,e),l));return l})(e,n?1:0),t)),l}),setPartialRow:(e,t,n)=>dn((e,t)=>{if(De(e,t,n,1)){const l=st(e);Ye(n,(n,s)=>Ke(e,l,t,s,n))}},e,t),setCell:(e,t,n,l)=>dn((e,t,n)=>we(Me(e,t,n,qe(l)?l(In(e,t,n)):l),l=>Ke(e,st(e),t,n,l)),e,t,n),setValues:Zn,setPartialValues:e=>dn(()=>Ze(e,1)?Ye(e,(e,t)=>nt(t,e)):0),setValue:(e,t)=>dn(e=>we(Le(e,qe(t)?t(wn(e)):t),t=>nt(e,t)),e),applyChanges:e=>dn(()=>{Ye(e[0],(e,t)=>ve(e)?Rn(t):Ye(e,(e,n)=>ve(e)?An(t,n):Ye(e,(e,l)=>jt(Bn,t,n,l,e)))),Ye(e[1],(e,t)=>Ft(Bn,t,e))}),setTablesJson:Nn,setValuesJson:e=>(Ne(()=>Xe(rt(e))),Bn),setJson:e=>dn(()=>Ne(()=>{const[t,n]=rt(e);Oe(t),Xe(n)},()=>Nn(e))),setTablesSchema:Ln,setValuesSchema:Vn,setSchema:(e,t)=>dn(()=>{Ln(e),Vn(t)}),delTables:En,delTable:Rn,delRow:An,delCell:(e,t,n,l)=>dn((e,t,n)=>we(yt(q,e),s=>we(yt(s,t),r=>gt(r,n)?dt(e,s,t,r,n,l):0)),e,t,n),delValues:$n,delValue:e=>dn(e=>gt(x,e)?pt(e):0,e),delTablesSchema:Hn,delValuesSchema:zn,delSchema:()=>dn(()=>{Hn(),zn()}),transaction:Pn,startTransaction:Jn,getTransactionChanges:()=>[Dt(h,(e,t)=>-1===yt(o,t)?void 0:Dt(e,(e,n)=>-1===yt(yt(c,t),n)?void 0:Dt(e,([,e])=>e,e=>Ut(e)),bt,tt),bt,tt),Dt(g,([,e])=>e,e=>Ut(e)),1],getTransactionLog:()=>[!bt(h),!bt(g),Zt(h,Gt,Ut),Zt(b),Dt(g,Gt,Ut),Dt(p),Dt(o),Mt(c),Zt(u),Dt(m)],finishTransaction:On,forEachTable:e=>It(q,(t,n)=>e(n,e=>It(t,(t,n)=>e(n,e=>qt(t,e))))),forEachTableCell:(e,t)=>qt(yt(y,ie(e)),t),forEachRow:(e,t)=>It(yt(q,ie(e)),(e,n)=>t(n,t=>qt(e,t))),forEachCell:(e,t,n)=>qt(yt(yt(q,ie(e)),ie(t)),n),forEachValue:e=>qt(x,e),addSortedRowIdsListener:(e,t,n,l,s,r,a)=>We(e)?cn(e.tableId,e.cellId,[e.descending??!1,e.offset??0,e.limit],t,n):cn(e,t,[n,l,s],r,a),addStartTransactionListener:e=>ge(e,he),addWillFinishTransactionListener:e=>ge(e,me[0]),addDidFinishTransactionListener:e=>ge(e,me[1]),callListener:e=>(fe(e),Bn),delListener:e=>(pe(e),Bn),getListenerStats:()=>({hasTables:_t(k),tables:_t(S),tableIds:_t(D),hasTable:_t(M),table:_t(Z),tableCellIds:_t(N),hasTableCell:_t(L,ht),rowCount:_t(V),rowIds:_t(E),sortedRowIds:_t(R),hasRow:_t(A,ht),row:_t($,ht),cellIds:_t(z,ht),hasCell:_t(j,mt),cell:_t(W,mt),invalidCell:_t(Y,mt),hasValues:_t(ae),values:_t(oe),valueIds:_t(de),hasValue:_t(ce),value:_t(ue),invalidValue:_t(re),transaction:ut(he)+_t(me)}),isMergeable:()=>!1,createStore:Yt,addListener:ge,callListeners:be,setInternalListeners:(e,t,n,l,s)=>r=[e,t,n,l,s]};return Ye({[F+_]:[0,k,[],()=>[Tn()]],[_]:[0,S],[K]:[0,D],[F+Q]:[1,M,[hn],e=>[yn(...e)]],[Q]:[1,Z,[hn]],[Q+te]:[1,N,[hn]],[F+Q+ee]:[2,L,[hn,mn],e=>[qn(...e)]],[U]:[1,V,[hn]],[X]:[1,E,[hn]],[F+G]:[2,A,[hn,bn],e=>[xn(...e)]],[G]:[2,$,[hn,bn]],[te]:[2,z,[hn,bn]],[F+ee]:[3,j,[hn,bn,vn],e=>[kn(...e)]],[ee]:[3,W,[hn,bn,vn],e=>Qt(In(...e))],InvalidCell:[3,Y],[F+le]:[0,ae,[],()=>[Sn()]],[le]:[0,oe],[se]:[0,de],[F+ne]:[1,ce,[Cn],e=>[Dn(...e)]],[ne]:[1,ue,[Cn],e=>Qt(wn(e[0]))],InvalidValue:[1,re]},([e,t,n,l],s)=>{Bn["add"+s+B]=(...s)=>ge(s[e],t[s[e+1]?1:0],e>0?ke(s,0,e):void 0,n,l)}),_e(Bn)},{PureComponent:en,createContext:tn,useCallback:nn,useContext:ln,useEffect:sn,useLayoutEffect:rn,useMemo:an,useRef:on,useState:dn,useSyncExternalStore:cn}=V,un=(e,...t)=>ve(e)?{}:e(...t),hn="tinybaseInspector",mn="TinyBase Inspector",gn=["left","top","bottom","right","full"],bn="state",pn="sort",vn="open",In="position",fn=vn,Cn="editable",wn=(...e)=>at(e),Tn=(e,t)=>He(Re([...e]),t),yn=(e,t)=>[!!l(bn,e,Cn,t),nn(n=>{t.setCell(bn,e,Cn,e=>!e),n.preventDefault()},[t,e])],qn=({s:t})=>{const n=s(In,t)??1,l=r(fn,()=>!0,[],t);return s(fn,t)?null:e("img",{onClick:l,title:mn,"data-position":n})},xn="tinybase_uirc",kn=ce[xn]?ce[xn]:ce[xn]=tn([]),Sn=(e,t)=>{const n=((e,t)=>{const n=ln(kn);return ve(e)?n[2*t]:ye(e)?((e,t)=>we(e,e=>e[t]))(n[2*t+1],e):e})(e,t);return ve(e)||ye(e)?n:e},Dn=[],Mn=[{},[],[Dn,void 0,Dn],{},void 0,void 0,!1,0],Zn=[nt,Ve,([e,t,n],[l,s,r])=>t===s&&Ve(e,l)&&Ve(n,r),(e,t)=>nt(e,t,Ee),Ee],Nn=(e,t)=>e===t,Ln=(e,t,n,l=Dn)=>{const s=on(Mn[n]),r=nn(()=>{const r=t?.[(6==n?"has":"get")+e]?.(...l)??Mn[n];return(Zn[n]??Nn)(r,s.current)?s.current:s.current=r},[t,n,e,...l]),a=nn(s=>((e,t,...n)=>{const l=e?.["add"+t+B]?.(...n);return()=>e?.delListener?.(l)})(t,(6==n?F:R)+e,...l,s),[t,n,e,...l]);return cn(a,r,r)},Vn=(e,t,n,l,s,r,...a)=>((e,t,n,l=Dn,s=De,r=Dn,a,...o)=>nn(l=>we(e,e=>we(n(l,e),n=>s(e[a+t](...En(o,e,l),n),n))),[e,t,...l,...r,a,...Rn(o)]))($n(e),t,n,l,s,r,"set",...a),En=(e,t,n)=>He(e,e=>qe(e)?e(n,t):e),Rn=e=>{return t=e=>!qe(e),e.filter(t);var t},An=(e,t,n=De,l=Dn,...s)=>{const r=$n(e);return nn(e=>n(r?.["del"+t](...En(s,r,e))),[r,t,...l,...Rn(s)])},$n=e=>Sn(e,0),Hn=(e,t)=>Ln(Q+te,$n(t),1,[e]),zn=(e,t,n,l,s,r)=>((e,t,n,l,s,r)=>Ln(Y,$n(r),1,[e,t,n,l,s]))(...We(e)?[e.tableId,e.cellId,e.descending??!1,e.offset??0,e.limit,t]:[e,t,n,l,s,r]),Pn=(e,t,n,l)=>Ln(ee,$n(l),5,[e,t,n]),Jn=(e,t)=>Ln(ne,$n(t),5,[e]),On=(e,t,n,l,s,r)=>Vn(l,Q,t,n,s,r,e),Bn=(e,t,n,l,s,r,a)=>Vn(s,G,n,l,r,a,e,t),jn=(e,t,n,l,s,r,a,o)=>Vn(r,ee,l,s,a,o,e,t,n),Fn=(e,t,n,l,s,r)=>Vn(l,ne,t,n,s,r,e),Wn=(e,t,n,l)=>An(t,Q,n,l,e),Qn=(e,t,n,l,s)=>An(n,G,l,s,e,t),_n=(e,t,n,l,s,r,a)=>An(s,ee,r,a,e,t,n,l),Kn=(e,t,n,l)=>An(t,ne,n,l,e),Gn=e=>Sn(e,2),Un=(e,t,n)=>Ln("Slice"+X,Gn(n),1,[e,t]),Xn=e=>Sn(e,3),Yn=e=>Sn(e,4),el=(e,t)=>Ln(j+Q+te,Yn(t),1,[e]),tl=(e,t,n,l=0,s,r)=>Ln(j+Y,Yn(r),1,[e,t,n,l,s]),nl=(e,t)=>an(()=>({store:e,tableId:t}),[e,t]),ll=(e,t)=>an(()=>({queries:e,queryId:t}),[e,t]),sl=(e,t,n)=>{const l=nn(e,t);return n?l:void 0},rl=(...e)=>an(()=>e,e),al=(e,t,n)=>an(()=>{const l=t??e;return Ye(xe(l)?Ke(He(l,e=>[e,e])):l,(e,t)=>({label:t,component:n,...ye(e)?{label:e}:e}))},[t,n,e]),ol="editable",il=(t=[],n,l=0)=>He(t,({component:t},s)=>e("td",{className:oe,children:e(t,{...n})},dl(s,l))),dl=(e,t)=>(t?">":"<")+e,cl=(t=[],n=0)=>He(t,({label:t},l)=>e("th",{className:oe,children:t},dl(l,n))),ul=({cellId:e,sort:[n,l],label:s=e??R,onClick:r})=>t("th",{onClick:sl(()=>r?.(e),[r,e],r),className:ve(l)||n!=e?void 0:`sorted ${l?"de":"a"}scending`,children:[ve(l)||n!=e?null:(l?"↓":"↑")+" ",s]}),hl=({className:n,headerRow:l,idColumn:s,params:[r,a,o,i,d,c,u,h]})=>t("table",{className:n,children:[h?e("caption",{children:h}):null,!1===l?null:e("thead",{children:t("tr",{children:[cl(i),!1===s?null:e(ul,{sort:c??[],label:"Id",onClick:u}),Xe(r,({label:t},n)=>e(ul,{cellId:n,label:t,sort:c??[],onClick:u},n)),cl(d,1)]})}),e("tbody",{children:He(o,n=>{const l={...a,rowId:n};return t("tr",{children:[il(i,l),fe(s)?null:e("th",{title:n,children:n}),Xe(r,({component:t,getComponentProps:s},r)=>e("td",{children:e(t,{...un(s,n,r),...l,cellId:r})},r)),il(d,l,1)]},n)})})]}),ml=({thing:n,onThingChange:l,className:s,hasSchema:r,showType:a=!0})=>{const[o,i]=dn(),[d,c]=dn(),[u,h]=dn(),[m,g]=dn(),[b,p]=dn();d!==n&&(i(Bt(n)),c(n),h(n+""),g(Number(n)||0),p(!!n));const v=nn((e,t)=>{t(e),c(e),l(e)},[l]),I=nn(()=>{if(!r?.()){const e=Wt(o,H,$,A),t=Wt(e,u,m,b);i(e),c(t),l(t)}},[r,l,u,m,b,o]),f=Wt(o,e("input",{value:u,onChange:nn(e=>v(e[re][ae]+"",h),[v])},o),e("input",{type:"number",value:m,onChange:nn(e=>v(Number(e[re][ae]||0),g),[v])},o),e("input",{type:"checkbox",checked:b,onChange:nn(e=>v(!!e[re].checked,p),[v])},o));return t("div",{className:s,children:[a&&f?e("button",{title:o,className:o,onClick:I,children:o}):null,f]})},gl=({tableId:t,rowId:n,cellId:l,store:s,className:r,showType:a})=>{const[o,i]=((e,t,n,l)=>[Pn(e,t,n,l),jn(e,t,n,Me,[],l)])(t,n,l,s);return e(ml,{thing:o,onThingChange:i,className:r??ol+ee,showType:a,hasSchema:$n(s)?.hasTablesSchema})},bl=({valueId:t,store:n,className:l,showType:s})=>{const[r,a]=((e,t)=>[Jn(e,t),Fn(e,Me,[],t)])(t,n);return e(ml,{thing:r,onThingChange:a,className:l??ol+ne,showType:s,hasSchema:$n(n)?.hasValuesSchema})},pl=(e,t)=>He(Hn(e,t),t=>e+"."+t),vl=({localRowId:l,params:[s,r,a,o,i,d,c,u,h]})=>{const m=((e,t,n)=>Ln("RemoteRowId",Xn(n),5,[e,t]))(i,l,d),g={tableId:a??"",rowId:l,store:c};return t("tr",{children:[il(u,g),fe(s)?null:t(n,{children:[e("th",{title:l,children:l}),e("th",{title:m,children:m})]}),Xe(r,({component:t,getComponentProps:n},s)=>{const[r,i]=((e,t="",n)=>e.split(t,n))(s,".",2),d=r===a?l:r===o?m:void 0;return ve(d)?null:e("td",{children:e(t,{...un(n,d,i),store:c,tableId:r,rowId:d,cellId:i})},s)}),il(h,g,1)]})},Il=({relationshipId:l,relationships:s,editable:r,customCells:o,extraCellsBefore:i,extraCellsAfter:d,className:c,headerRow:u,idColumn:h=!0})=>{const[m,g,b,p]=((e,t)=>[e,e?.getStore(),e?.getLocalTableId(t),e?.getRemoteTableId(t)])(Xn(s),l),v=al([...pl(b,g),...pl(p,g)],o,r?gl:a),I=rl(h,v,b,p,l,m,g,i,d);return t("table",{className:c,children:[fe(u)?null:e("thead",{children:t("tr",{children:[cl(i),fe(h)?null:t(n,{children:[t("th",{children:[b,".Id"]}),t("th",{children:[p,".Id"]})]}),Xe(v,({label:t},n)=>e("th",{children:t},n)),cl(d,1)]})}),e("tbody",{children:He((f=b,C=g,Ln(X,$n(C),1,[f])),t=>e(vl,{localRowId:t,params:I},t))})]});var f,C},fl=(t,n=!1,l,s=0,r,a,o,i)=>{const[[d,c,u],h]=dn([t,n,s]),m=nn(e=>{h(e),i?.(e)},[i]),g=sl(e=>m([e,e==d&&!c,u]),[m,d,c,u],l),b=nn(e=>m([d,c,e]),[m,d,c]),p=!0===o?Cl:o;return[[d,c,u],g,an(()=>fe(o)?null:e(p,{offset:u,limit:r,total:a,onChange:b}),[o,p,u,r,a,b])]},Cl=({onChange:l,total:s,offset:r=0,limit:a=s,singular:o="row",plural:i=o+"s"})=>{(r>s||r<0)&&(r=0,l(0));const d=sl(()=>l(r-a),[l,r,a],r>0),c=sl(()=>l(r+a),[l,r,a],r+a<s);return t(n,{children:[s>a&&t(n,{children:[e("button",{className:"previous",disabled:0==r,onClick:d,children:"←"}),e("button",{className:"next",disabled:r+a>=s,onClick:c,children:"→"}),r+1," to ",me(s,r+a)," of "]}),s," ",1!=s?i:o]})},wl=({queryId:t,cellId:n,descending:l,offset:s,limit:r,queries:a,sortOnClick:i,paginator:d=!1,customCells:c,extraCellsBefore:u,extraCellsAfter:h,onChange:m,...g})=>{const[b,p,v]=fl(n,l,i,s,r,((e,t)=>Ln(j+U,Yn(t),7,[e]))(t,a),d,m);return e(hl,{...g,params:rl(al(el(t,a),c,o),ll(a,t),tl(t,...b,r,a),u,h,b,p,v)})},Tl=({indexId:t,sliceId:n,indexes:l,editable:s,customCells:r,extraCellsBefore:o,extraCellsAfter:i,...d})=>{const[c,u,h]=((e,t)=>[e,e?.getStore(),e?.getTableId(t)])(Gn(l),t);return e(hl,{...d,params:rl(al(Hn(h,u),r,s?gl:a),nl(u,h),Un(t,n,c),o,i)})},yl=({tableId:t,cellId:n,descending:l,offset:s,limit:r,store:o,editable:i,sortOnClick:d,paginator:c=!1,onChange:u,customCells:h,extraCellsBefore:m,extraCellsAfter:g,...b})=>{const[p,v,I]=fl(n,l,d,s,r,((e,t)=>Ln(U,$n(t),7,[e]))(t,o),c,u);return e(hl,{...b,params:rl(al(Hn(t,o),h,i?gl:a),nl(o,t),zn(t,...p,r,o),m,g,p,v,I)})},ql=(t=[],n,l=0)=>He(t,({component:t},s)=>e("td",{className:oe,children:e(t,{...n})},dl(s,l))),xl=({store:n,editable:l=!1,valueComponent:s=(l?bl:i),getValueComponentProps:r,extraCellsBefore:a,extraCellsAfter:o,className:d,headerRow:c,idColumn:u})=>{return t("table",{className:d,children:[!1===c?null:e("thead",{children:t("tr",{children:[cl(a),!1===u?null:e("th",{children:"Id"}),e("th",{children:ne}),cl(o,1)]})}),e("tbody",{children:He((h=n,Ln(se,$n(h),1)),l=>{const i={valueId:l,store:n};return t("tr",{children:[ql(a,i),fe(u)?null:e("th",{title:l,children:l}),e("td",{children:e(s,{...un(r,l),...i})}),ql(o,i,1)]},l)})})]});var h},kl=({uniqueId:n,title:s,editable:r,handleEditable:a,children:o,s:i})=>{const c=!!l(bn,n,vn,i),u=d(bn,n,vn,e=>e[re].open,[],i);return t("details",{open:c,onToggle:u,children:[t("summary",{children:[e("span",{children:s}),a?e("img",{onClick:a,className:r?"done":"edit",title:r?"Done editing":"Edit"}):null]}),e("div",{children:o})]})},Sl=({indexes:t,indexesId:n,indexId:l,s:s})=>e(kl,{uniqueId:wn("i",n,l),title:"Index: "+l,s:s,children:He(h(l,t),r=>e(Dl,{indexes:t,indexesId:n,indexId:l,sliceId:r,s:s},r))}),Dl=({indexes:t,indexesId:n,indexId:l,sliceId:s,s:r})=>{const a=wn("i",n,l,s),[o,i]=yn(a,r);return e(kl,{uniqueId:a,title:"Slice: "+s,editable:o,handleEditable:i,s:r,children:e(Tl,{sliceId:s,indexId:l,indexes:t,editable:o})})},Ml=({indexesId:t,s:n})=>{const l=c(t),s=u(l);return ve(l)?null:e(kl,{uniqueId:wn("i",t),title:"Indexes: "+(t??J),s:n,children:ze(s)?"No indexes defined":Tn(s,s=>e(Sl,{indexes:l,indexesId:t,indexId:s,s:n},s))})},Zl=({metrics:n,metricId:l})=>t("tr",{children:[e("th",{title:l,children:l}),e("td",{children:n?.getTableId(l)}),e("td",{children:b(l,n)})]}),Nl=({metricsId:n,s:l})=>{const s=m(n),r=g(s);return ve(s)?null:e(kl,{uniqueId:wn("m",n),title:"Metrics: "+(n??J),s:l,children:ze(r)?"No metrics defined":t("table",{children:[t("thead",{children:[e("th",{children:"Metric Id"}),e("th",{children:"Table Id"}),e("th",{children:"Metric"})]}),e("tbody",{children:He(r,t=>e(Zl,{metrics:s,metricId:t},t))})]})})},Ll=({queries:t,queriesId:n,queryId:s,s:r})=>{const a=wn("q",n,s),[o,i,c]=rt(l(bn,a,pn,r)??"[]"),u=d(bn,a,pn,at,[],r);return e(kl,{uniqueId:a,title:"Query: "+s,s:r,children:e(wl,{queryId:s,queries:t,cellId:o,descending:i,offset:c,limit:10,paginator:!0,sortOnClick:!0,onChange:u})})},Vl=({queriesId:t,s:n})=>{const l=p(t),s=v(l);return ve(l)?null:e(kl,{uniqueId:wn("q",t),title:"Queries: "+(t??J),s:n,children:ze(s)?"No queries defined":Tn(s,s=>e(Ll,{queries:l,queriesId:t,queryId:s,s:n},s))})},El=({relationships:t,relationshipsId:n,relationshipId:l,s:s})=>{const r=wn("r",n,l),[a,o]=yn(r,s);return e(kl,{uniqueId:r,title:"Relationship: "+l,editable:a,handleEditable:o,s:s,children:e(Il,{relationshipId:l,relationships:t,editable:a})})},Rl=({relationshipsId:t,s:n})=>{const l=I(t),s=f(l);return ve(l)?null:e(kl,{uniqueId:wn("r",t),title:"Relationships: "+(t??J),s:n,children:ze(s)?"No relationships defined":Tn(s,s=>e(El,{relationships:l,relationshipsId:t,relationshipId:s,s:n},s))})},Al=(e,t)=>{let n,l=0;for(;t(n=e+(l>0?" (copy"+(l>1?" "+l:"")+")":""));)l++;return n},$l=({actions:l,...s})=>{const[r,a]=dn(),o=nn(()=>a(void 0),[]);if(sn(()=>{if(!ve(r)){const e=e=>{ve(r)||"Escape"!==e.key||(e.preventDefault(),o())};return document.addEventListener("keydown",e),()=>document.removeEventListener("keydown",e)}},[r,o]),ve(r))return l.map(([t,n],l)=>e("img",{title:n,className:t,onClick:()=>a(l)},l));{const[,,a]=l[r];return t(n,{children:[e(a,{onDone:o,...s}),e("img",{onClick:o,title:"Cancel",className:"cancel"})]})}},Hl=({onDone:l,suggestedId:s,has:r,set:a,prompt:o="New Id"})=>{const[i,d]=dn(s),[c,u]=dn(!0),[h,m]=dn(s),g=nn(()=>{r(i)?u(!1):(a(i),l())},[l,u,r,a,i]),b=nn(e=>{"Enter"===e.key&&(e.preventDefault(),g())},[g]);return s!=h&&(d(s),m(s)),t(n,{children:[o+": ",e("input",{type:"text",value:i,onChange:e=>{d(e.target.value),u(!r(e.target.value))},onKeyDown:b,autoFocus:!0})," ",e("img",{onClick:g,title:c?"Confirm":"Id already exists",className:c?"ok":"okDis"})]})},zl=({onClick:l,prompt:s="Delete"})=>{const r=nn(e=>{"Enter"===e.key&&(e.preventDefault(),l())},[l]);return sn(()=>(document.addEventListener("keydown",r),()=>document.removeEventListener("keydown",r)),[r]),t(n,{children:[s,"? ",e("img",{onClick:l,title:"Confirm",className:"ok"})]})},Pl=({left:n,right:l})=>t("div",{className:"actions",children:[e("div",{children:n}),e("div",{children:l})]}),Jl=e=>{const t=$n(e);return nn(e=>t?.hasTable(e)??!1,[t])},Ol=({onDone:t,store:n})=>{const l=Jl(n);return e(Hl,{onDone:t,suggestedId:Al("table",l),has:l,set:On(e=>e,()=>({row:{cell:""}}),[],n),prompt:"Add table"})},Bl=({onDone:t,store:n})=>{return e(zl,{onClick:(l=n,s=t,An(l,_,s,void 0)),prompt:"Delete all tables"});var l,s},jl=({store:t})=>{return e(Pl,{left:e($l,{actions:[["add","Add table",Ol]],store:t}),right:(n=t,Ln(_,$n(n),6,[])?e($l,{actions:[["delete","Delete all tables",Bl]],store:t}):null)});var n},Fl=({onDone:t,tableId:n,store:l})=>{const s=Gl(l,n);return e(Hl,{onDone:t,suggestedId:Al("row",s),has:s,set:Bn(n,e=>e,(e,t)=>Ke(He(t.getTableCellIds(n),e=>[e,""]))),prompt:"Add row"})},Wl=({onDone:t,tableId:n,store:l})=>{const s=$n(l),r=Jl(s);return e(Hl,{onDone:t,suggestedId:Al(n,r),has:r,set:On(e=>e,(e,t)=>t.getTable(n)),prompt:"Clone table to"})},Ql=({onDone:t,tableId:n,store:l})=>e(zl,{onClick:Wn(n,l,t),prompt:"Delete table"}),_l=({tableId:t,store:n})=>e($l,{actions:[["add","Add row",Fl]],store:n,tableId:t}),Kl=({tableId:t,store:n})=>e($l,{actions:[["clone","Clone table",Wl],["delete","Delete table",Ql]],store:n,tableId:t}),Gl=(e,t)=>{const n=$n(e);return nn(e=>n?.hasRow(t,e)??!1,[n,t])},Ul=({onDone:t,tableId:n,rowId:l,store:s})=>{const r=$n(s),a=nn(e=>r.hasCell(n,l,e),[r,n,l]);return e(Hl,{onDone:t,suggestedId:Al("cell",a),has:a,set:jn(n,l,e=>e,()=>"",[],r),prompt:"Add cell"})},Xl=({onDone:t,tableId:n,rowId:l,store:s})=>{const r=$n(s),a=Gl(r,n);return e(Hl,{onDone:t,suggestedId:Al(l,a),has:a,set:Bn(n,e=>e,(e,t)=>t.getRow(n,l),[l]),prompt:"Clone row to"})},Yl=({onDone:t,tableId:n,rowId:l,store:s})=>e(zl,{onClick:Qn(n,l,s,t),prompt:"Delete row"}),es=({onDone:t,tableId:n,rowId:l,cellId:s,store:r})=>e(zl,{onClick:_n(n,l,s,!0,r,t),prompt:"Delete cell"}),ts=({tableId:t,rowId:n,cellId:l,store:s})=>e($l,{actions:[["delete","Delete cell",es]],store:s,tableId:t,rowId:n,cellId:l}),ns=[{label:"",component:({tableId:t,rowId:n,store:l})=>e($l,{actions:[["add","Add cell",Ul],["clone","Clone row",Xl],["delete","Delete row",Yl]],store:l,tableId:t,rowId:n})}],ls=l=>t(n,{children:[e(gl,{...l}),T(l.tableId,l.rowId,l.cellId,l.store)&&e(ts,{...l})]}),ss=({tableId:n,store:s,storeId:r,s:o})=>{const i=wn("t",r,n),[c,u,h]=rt(l(bn,i,pn,o)??"[]"),m=d(bn,i,pn,at,[],o),[g,b]=yn(i,o),p=g?ls:a;return t(kl,{uniqueId:i,title:Q+": "+n,editable:g,handleEditable:b,s:o,children:[e(yl,{tableId:n,store:s,cellId:c,descending:u,offset:h,limit:10,paginator:!0,sortOnClick:!0,onChange:m,editable:g,extraCellsAfter:g?ns:[],customCells:Ke(He(w(n,s),e=>[e,{label:e,component:p}]))}),g?t("div",{className:"actions",children:[e("div",{children:e(_l,{tableId:n,store:s})}),e("div",{children:e(Kl,{tableId:n,store:s})})]}):null]})},rs=({store:n,storeId:l,s:s})=>{const r=wn("ts",l),[a,o]=yn(r,s),i=C(n);return t(kl,{uniqueId:r,title:_,editable:a,handleEditable:o,s:s,children:[ze(i)?e("caption",{children:"No tables."}):Tn(i,t=>e(ss,{store:n,storeId:l,tableId:t,s:s},t)),a?e(jl,{store:n}):null]})},as=e=>{const t=$n(e);return nn(e=>t?.hasValue(e)??!1,[t])},os=({onDone:t,store:n})=>{const l=as(n);return e(Hl,{onDone:t,suggestedId:Al("value",l),has:l,set:Fn(e=>e,()=>"",[],n),prompt:"Add value"})},is=({onDone:t,store:n})=>{return e(zl,{onClick:(l=n,s=t,An(l,le,s,void 0)),prompt:"Delete all values"});var l,s},ds=({store:t})=>{return e(Pl,{left:e($l,{actions:[["add","Add value",os]],store:t}),right:(n=t,Ln(le,$n(n),6,[])?e($l,{actions:[["delete","Delete all values",is]],store:t}):null)});var n},cs=({onDone:t,valueId:n,store:l})=>{const s=as(l);return e(Hl,{onDone:t,suggestedId:Al(n,s),has:s,set:Fn(e=>e,(e,t)=>t.getValue(n)??"",[n],l),prompt:"Clone value to"})},us=({onDone:t,valueId:n,store:l})=>e(zl,{onClick:Kn(n,l,t),prompt:"Delete value"}),hs=[{label:"",component:({valueId:t,store:n})=>e($l,{actions:[["clone","Clone value",cs],["delete","Delete value",us]],store:n,valueId:t})}],ms=({store:n,storeId:l,s:s})=>{const r=wn("v",l),[a,o]=yn(r,s);return t(kl,{uniqueId:r,title:le,editable:a,handleEditable:o,s:s,children:[ze(y(n))?e("caption",{children:"No values."}):e(xl,{store:n,editable:a,extraCellsAfter:a?hs:[]}),a?e(ds,{store:n}):null]})},gs=({storeId:n,s:l})=>{const s=q(n);return ve(s)?null:t(kl,{uniqueId:wn("s",n),title:(s.isMergeable()?"Mergeable":"")+"Store: "+(n??J),s:l,children:[e(ms,{storeId:n,store:s,s:l}),e(rs,{storeId:n,store:s,s:l})]})},bs=({s:n})=>{const l=on(null),s=on(0),[r,a]=dn(!1),{scrollLeft:o,scrollTop:i}=x(n);rn(()=>{const e=l.current;if(e&&!r){const t=new MutationObserver(()=>{e.scrollWidth>=ge(o)+e.clientWidth&&e.scrollHeight>=ge(i)+e.clientHeight&&e.scrollTo(o,i)});return t.observe(e,{childList:!0,subtree:!0}),()=>t.disconnect()}},[r,o,i]);const d=nn(e=>{const{scrollLeft:t,scrollTop:l}=e[re];cancelIdleCallback(s.current),s.current=requestIdleCallback(()=>{a(!0),n.setPartialValues({scrollLeft:t,scrollTop:l})})},[n]),u=q(),h=k(),g=m(),b=S(),v=c(),f=D(),C=I(),w=M(),T=p(),y=Z();return ve(u)&&ze(h)&&ve(g)&&ze(b)&&ve(v)&&ze(f)&&ve(C)&&ze(w)&&ve(T)&&ze(y)?e("span",{className:"warn",children:"There are no Stores or other objects to inspect. Make sure you placed the Inspector inside a Provider component."}):t("article",{ref:l,onScroll:d,children:[e(gs,{s:n}),He(h,t=>e(gs,{storeId:t,s:n},t)),e(Nl,{s:n}),He(b,t=>e(Nl,{metricsId:t,s:n},t)),e(Ml,{s:n}),He(f,t=>e(Ml,{indexesId:t,s:n},t)),e(Rl,{s:n}),He(w,t=>e(Rl,{relationshipsId:t,s:n},t)),e(Vl,{s:n}),He(y,t=>e(Vl,{queriesId:t,s:n},t))]})};class ps extends en{constructor(e){super(e),this.state={e:0}}static getDerivedStateFromError(){return{e:1}}componentDidCatch=(e,t)=>console.error(e,t.componentStack);render(){return this.state.e?e("span",{className:"warn",children:"Inspector error: please see console for details."}):this.props.children}}const vs=({s:n})=>{const l=s(In,n)??1,a=r(fn,()=>!1,[],n),o=r(In,e=>Number(e[re].dataset.id),[],n);return t("header",{children:[e("img",{className:"flat",title:mn,onClick:()=>open("https://tinybase.org","_blank")}),e("span",{children:mn}),He(gn,(t,n)=>n==l?null:e("img",{onClick:o,"data-id":n,title:"Dock to "+t},n)),e("img",{className:"flat",onClick:a,title:"Close"})]})},Is=({s:n})=>{const l=s(In,n)??1;return s(fn,n)?t("main",{"data-position":l,children:[e(vs,{s:n}),e(ps,{children:e(bs,{s:n})})]}):null},fs='url("',Cs=(e,t="white")=>({content:fs+`data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 -960 960 960' fill='${t}'><path d='${e}' /></svg>")`}),ws="v560h120v-560h-120Z",Ts="v560h360v-560h-360Z",ys="v120h560v-120h-560Z",qs="v360h560v-360h-560Z",xs={content:fs+"data:image/svg+xml,%3csvg viewBox='0 0 680 680' xmlns='http://www.w3.org/2000/svg' style='width:680px%3bheight:680px'%3e %3cpath stroke='white' stroke-width='80' fill='none' d='M340 617a84 241 90 11.01 0zM131 475a94 254 70 10428-124 114 286 70 01-428 124zm0-140a94 254 70 10428-124 114 286 70 01-428 124zm-12-127a94 254 70 00306 38 90 260 90 01-306-38zm221 3a74 241 90 11.01 0z' /%3e %3cpath fill='%23d81b60' d='M131 475a94 254 70 10428-124 114 286 70 01-428 124zm0-140a94 254 70 10428-124 114 286 70 01-428 124z' /%3e %3cpath d='M249 619a94 240 90 00308-128 114 289 70 01-308 128zM119 208a94 254 70 00306 38 90 260 90 01-306-38zm221 3a74 241 90 11.01 0z' /%3e%3c/svg%3e\")"},ks=He([`M200-760${ws} M400-760${Ts}`,`M200-760${ys} M200-560${qs}`,`M200-760${qs} M200-320${ys}`,`M200-760${Ts} M640-760${ws}`],e=>Cs("M200-120q-33 0-56.5-23.5T120-200v-560q0-33 23.5-56.5T200-840h560q33 0 56.5 23.5T840-760v560q0 33-23.5 56.5T760-120H200Z"+e));Pe(ks,Cs("M120-120v-200h80v120h120v80H120Zm520 0v-80h120v-120h80v200H640ZM120-640v-200h200v80H200v120h-80Zm640 0v-120H640v-80h200v200h-80Z"));const Ss=Cs("m336-280-56-56 144-144-144-143 56-56 144 144 143-144 56 56-144 143 144 144-56 56-143-144-144 144Z"),Ds=Cs("M200-200h57l391-391-57-57-391 391v57Zm-80 80v-170l528-527q12-11 26.5-17t30.5-6q16 0 31 6t26 18l55 56q12 11 17.5 26t5.5 30q0 16-5.5 30.5T817-647L290-120H120Zm640-584-56-56 56 56Zm-141 85-28-29 57 57-29-28Z"),Ms=Cs("m622-453-56-56 82-82-57-57-82 82-56-56 195-195q12-12 26.5-17.5T705-840q16 0 31 6t26 18l55 56q12 11 17.5 26t5.5 30q0 16-5.5 30.5T817-647L622-453ZM200-200h57l195-195-28-29-29-28-195 195v57ZM792-56 509-338 290-120H120v-169l219-219L56-792l57-57 736 736-57 57Zm-32-648-56-56 56 56Zm-169 56 57 57-57-57ZM424-424l-29-28 57 57-28-29Z"),Zs=Cs("M440-280h80v-160h160v-80H520v-160h-80v160H280v80h160v160ZM200-120q-33 0-56.5-23.5T120-200v-560q0-33 23.5-56.5T200-840h560q33 0 56.5 23.5T840-760v560q0 33-23.5 56.5T760-120H200Zm0-80h560v-560H200v560Zm0-560v560-560Z"),Ns=Cs("M520-400h80v-120h120v-80H600v-120h-80v120H400v80h120v120ZM320-240q-33 0-56.5-23.5T240-320v-480q0-33 23.5-56.5T320-880h480q33 0 56.5 23.5T880-800v480q0 33-23.5 56.5T800-240H320Zm0-80h480v-480H320v480ZM160-80q-33 0-56.5-23.5T80-160v-560h80v560h560v80H160Zm160-720v480-480Z"),Ls=Cs("M280-120q-33 0-56.5-23.5T200-200v-520h-40v-80h200v-40h240v40h200v80h-40v520q0 33-23.5 56.5T680-120H280Zm400-600H280v520h400v-520ZM360-280h80v-360h-80v360Zm160 0h80v-360h-80v360ZM280-720v520-520Z"),Vs=Cs("m424-296 282-282-56-56-226 226-114-114-56 56 170 170Zm56 216q-83 0-156-31.5T197-197q-54-54-85.5-127T80-480q0-83 31.5-156T197-763q54-54 127-85.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 83-31.5 156T763-197q-54 54-127 85.5T480-80Zm0-80q134 0 227-93t93-227q0-134-93-227t-227-93q-134 0-227 93t-93 227q0 134 93 227t227 93Zm0-320Z","rgb(127,255,127)"),Es=Cs("m40-120 440-760 440 760H40Zm138-80h604L480-720 178-200Zm302-40q17 0 28.5-11.5T520-280q0-17-11.5-28.5T480-320q-17 0-28.5 11.5T440-280q0 17 11.5 28.5T480-240Zm-40-120h80v-200h-80v200Zm40-100Z","rgb(255,255,127)"),Rs=Cs("m336-280 144-144 144 144 56-56-144-144 144-144-56-56-144 144-144-144-56 56 144 144-144 144 56 56ZM480-80q-83 0-156-31.5T197-197q-54-54-85.5-127T80-480q0-83 31.5-156T197-763q54-54 127-85.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 83-31.5 156T763-197q-54 54-127 85.5T480-80Zm0-80q134 0 227-93t93-227q0-134-93-227t-227-93q-134 0-227 93t-93 227q0 134 93 227t227 93Zm0-320Z","rgb(255,127,127)"),As=Cs("M480-344 240-584l56-56 184 184 184-184 56 56-240 240Z"),$s=Cs("M504-480 320-664l56-56 240 240-240 240-56-56 184-184Z"),Hs="*::-webkit-scrollbar",zs="background",Ps="width",Js="max-"+Ps,Os="min-"+Ps,Bs="height",js="border",Fs=js+"-radius",Ws="padding",Qs="margin",_s=Qs+"-right",Ks="top",Gs="bottom",Us="left",Xs="right",Ys="color",er="position",tr="box-shadow",nr="font-size",lr="display",sr="overflow",rr="cursor",ar="vertical-align",or="text-align",ir="justify-content",dr="fixed",cr="revert",ur="unset",hr="none",mr="flex",gr="pointer",br="auto",pr="hidden",vr="nowrap",Ir=(e,t="% 0.01 "+fr("hue"))=>`oklch(${e}${t})`,fr=e=>`var(--${e})`,Cr=(...e)=>e.join("rem ")+"rem",wr=(...e)=>e.join("px ")+"px",Tr=(e=100)=>e+"vw",yr=(e=100)=>e+"vh",qr=$e(Xe({"":{all:"initial",[nr]:Cr(.75),[er]:dr,"font-family":"inter,sans-serif","z-index":999999,"--bg":Ir(20),"--bg2":Ir(15),"--bg3":Ir(25),"--bg4":Ir(30),"--fg":Ir(85),"--fg2":Ir(60),["--"+js]:wr(1)+" solid "+fr("bg4"),["--"+tr]:wr(0,1,2,0)+" #0007"},"*":{all:cr},"*::before":{all:cr},"*::after":{all:cr},[Hs]:{[Ps]:Cr(.5),[Bs]:Cr(.5)},[Hs+"-thumb"]:{[zs]:fr("bg4")},[Hs+"-thumb:hover"]:{[zs]:fr("bg4")},[Hs+"-corner"]:{[zs]:hr},[Hs+"-track"]:{[zs]:hr},img:{[Ps]:Cr(.8),[Bs]:Cr(.8),[ar]:"text-"+Gs,[rr]:gr,[Qs]:wr(-2.5,2,-2.5,0),[Ws]:wr(2),[js]:fr(js),[zs]:fr("bg3"),[tr]:fr(tr),[Fs]:Cr(.25)},"img.flat":{[js]:hr,[zs]:hr,[tr]:hr},">img":{[Ws]:Cr(.25),[Gs]:0,[Xs]:0,[er]:dr,[Bs]:ur,[Qs]:0,...xs},...Ke(He([{[Gs]:0,[Us]:0},{[Ks]:0,[Xs]:0}],(e,t)=>[`>img[data-position='${t}']`,e])),main:{[lr]:mr,[Ys]:fr("fg"),[zs]:fr("bg"),[sr]:pr,[er]:dr,[tr]:fr(tr),"flex-direction":"column"},...Ke(He([{[Gs]:0,[Us]:0,[Ps]:Tr(35),[Bs]:yr(),[js+"-"+Xs]:fr(js)},{[Ks]:0,[Xs]:0,[Ps]:Tr(),[Bs]:yr(30),[js+"-"+Gs]:fr(js)},{[Gs]:0,[Us]:0,[Ps]:Tr(),[Bs]:yr(30),[js+"-"+Ks]:fr(js)},{[Ks]:0,[Xs]:0,[Ps]:Tr(35),[Bs]:yr(),[js+"-"+Us]:fr(js)},{[Ks]:0,[Xs]:0,[Ps]:Tr(),[Bs]:yr()}],(e,t)=>[`main[data-position='${t}']`,e])),header:{[lr]:mr,[Ws]:Cr(.5),[tr]:fr(tr),[zs]:Ir(30,"% 0.008 var(--hue) / .5"),[Ps]:"calc(100% - .5rem)",[er]:"absolute",[js+"-"+Gs]:fr(js),"align-items":"center","backdrop-filter":"blur(4px)"},"header>img:nth-of-type(1)":{[Bs]:Cr(1),[Ps]:Cr(1),...xs},"header>img:nth-of-type(6)":Ss,...Ke(He(ks,(e,t)=>[`header>img[data-id='${t}']`,e])),"header>span":{[sr]:pr,[mr]:1,"font-weight":800,"white-space":vr,"text-overflow":"ellipsis"},article:{[sr]:br,[mr]:1,[Ws+"-"+Ks]:Cr(2)},details:{[Qs]:Cr(.5),[js]:fr(js),[Fs]:Cr(.25)},summary:{[zs]:fr("bg3"),[Qs]:wr(-1),[js]:fr(js),[Ws]:Cr(.25,.125),[lr]:mr,[Fs]:Cr(.25),"user-select":hr,[ir]:"space-between","align-items":"center"},"summary>span::before":{[lr]:"inline-block",[ar]:"sub",[Qs]:wr(2),[Ps]:Cr(1),[Bs]:Cr(1),...$s},"details[open]>summary":{"border-bottom-left-radius":0,"border-bottom-right-radius":0,[Qs+"-"+Gs]:0},"details[open]>summary>span::before":As,"details>summary img":{[lr]:hr},"details[open]>summary img":{[lr]:ur,[Qs+"-"+Us]:Cr(.25)},"details>div":{[sr]:br},caption:{[Ys]:fr("fg2"),[Ws]:Cr(.25,.5),[or]:Us,"white-space":vr},"caption button":{[Ps]:Cr(1.5),[js]:hr,[zs]:hr,[Ys]:fr("fg"),[Ws]:0,[rr]:gr},"caption button[disabled]":{[Ys]:fr("fg2")},".actions":{[Ws]:Cr(.75,.5),[Qs]:0,[lr]:mr,[js+"-"+Ks]:fr(js),[ir]:"space-between"},table:{[Os]:"100%","border-collapse":"collapse","table-layout":dr},thead:{[zs]:fr("bg")},[`th,#${hn} td`]:{[sr]:pr,[Ws]:Cr(.25,.5),[Js]:Cr(20),[js]:fr(js),"text-overflow":"ellipsis","white-space":vr,"border-width":wr(1,0,0),[or]:Us},"th:first-child":{[Ps]:Cr(3),[Os]:Cr(3),[Js]:Cr(3)},"th.sorted":{[zs]:fr("bg3")},"td.extra":{[or]:Xs},"tbody button":{[zs]:hr,[js]:hr,[nr]:0,[Ps]:Cr(.8),[Bs]:Cr(.8),[Ys]:fr("fg2"),[Qs]:Cr(0,.25,0,-.25),"line-height":Cr(.8)},"tbody button:first-letter":{[nr]:Cr(.8)},input:{[zs]:fr("bg2"),[Ys]:ur,[Ws]:wr(4),[js]:0,[Qs]:wr(-4,0),[nr]:ur,[Js]:Cr(6)},"input:focus":{"outline-width":0},'input[type="number"]':{[Ps]:Cr(3)},'input[type="checkbox"]':{[ar]:wr(-2)},".editableCell":{[lr]:"inline-block",[_s]:wr(2)},"button.next":{[_s]:Cr(.5)},"img.edit":Ds,"img.done":Ms,"img.add":Zs,"img.clone":Ns,"img.delete":Ls,"img.ok":Vs,"img.okDis":Es,"img.cancel":Rs,"span.warn":{[Qs]:Cr(2,.25),[Ys]:"#d81b60"}},(e,t)=>`#${hn} ${t}{${$e(Xe(e,(e,t)=>`${t}:${e};`))}}`)),xr=({position:l="right",open:s=!1,hue:r=270})=>{const a=N(Yt),o=gn.indexOf(l);return L(a,e=>{return t=hn,n=sessionStorage,((e,t,n,l,s,r,a,o={},i=0,d=[])=>{let c,u,h,m=0,g=0,b=0;kt(Pt,d,()=>0),kt(Jt,d,()=>[]);const p=wt(),[v,I,f,C,w]=((e=1,t,n)=>1!=e&&t.isMergeable()?[1,t.getMergeableContent,()=>t.getTransactionMergeableChanges(!n),([[e],[t]])=>!tt(e)||!tt(t),t.setDefaultContent]:2!=e?[0,t.getContent,t.getTransactionChanges,([e,t])=>!tt(e)||!tt(t),t.setContent]:Ze("Store type not supported by this Persister"))(a,e,i),[T,y,q]=zt(()=>$),x=e=>{e!=m&&(m=e,y(p,void 0,m))},k=t=>{(v&&xe(t?.[0])?1===t?.[2]?e.applyMergeableChanges:e.setMergeableContent:1===t?.[2]?e.applyChanges:e.setContent)(t)},S=async()=>{E()&&e.hadMutated?.()&&await N()},D=async e=>(2!=m&&(x(1),g++,await A(async()=>{await Ne(async()=>{const n=await t();xe(n)?k(n):e?w(e):Ze("Content is not an array: "+n)},()=>{e&&w(e)}),x(0),await S()})),$),M=async e=>(Z(),await D(e),await Ne(async()=>u=await l(async(e,t)=>{t||e?2!=m&&(x(1),g++,k(t??e),x(0),await S()):await D()}),r),$),Z=async()=>(u&&(await Ne(()=>s(u),r),u=void 0),$),N=async e=>(1!=m&&(x(2),b++,await A(async()=>{await Ne(()=>n(I,e),r),x(0)})),$),L=async()=>(V(),await N(),h=e.addDidFinishTransactionListener(()=>{const e=f();C(e)&&N(e)}),$),V=async()=>(h&&(e.delListener(h),h=void 0),$),E=()=>!ve(h),R=async(e=!1)=>{const[t,n]=e?[V,Z]:[Z,V];return await t(),await n(),$},A=async(...e)=>(Pe(yt(Jt,d),...e),await(async()=>{if(!yt(Pt,d)){for(xt(Pt,d,1);!ve(c=Je(yt(Jt,d)));)await Ne(c,r);xt(Pt,d,0)}})(),$),$={load:D,startAutoLoad:M,stopAutoLoad:Z,isAutoLoading:()=>!ve(u),save:N,startAutoSave:L,stopAutoSave:V,isAutoSaving:E,startAutoPersisting:async(e,t=!1)=>{const[n,l]=t?[L,M]:[M,L];return await n(e),await l(e),$},stopAutoPersisting:R,getStatus:()=>m,addStatusListener:e=>T(e,p),delListener:t=>(q(t),e),schedule:A,getStore:()=>e,destroy:()=>(yt(Jt,d).splice(0,void 0),R()),getStats:()=>({loads:g,saves:b}),...o};return _e($)})(e,async()=>ot(n.getItem(t)),async e=>{return n.setItem(t,(l=e(),st(l,(e,t)=>ve(t)?"":t)));var l},e=>{const l=l=>{l.storageArea===n&&l.key===t&&Ne(()=>e(ot(l.newValue)),e)};return ue.addEventListener(Ot,l),l},e=>ue.removeEventListener(Ot,e),void 0,3,{getStorageName:()=>t});var t,n},void 0,async e=>{await e.load([{},{position:-1==o?1:o,open:!!s}]),await e.startAutoSave()}),t(n,{children:[t("aside",{id:hn,children:[e(qn,{s:a}),e(Is,{s:a})]}),t("style",{children:[`#${hn}{--hue:${r}}`,qr]})]})};export{xr as Inspector};