UNPKG

tinybase

Version:

A reactive data store and sync engine.

2 lines (1 loc) 42.6 kB
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 o,ResultCellView as a,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 Z,useQueriesIds as M,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",oe="value",ae="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=()=>{},Ze=e=>e,Me=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,ot=e=>st(e,(e,t)=>t instanceof Map?Oe.fromEntries([...t]):t),at=e=>rt(e,(e,t)=>""===t?void 0:t),it=e=>t=>{return n=(t,n)=>t+e(n),bt(t).reduce(n,0);var n},dt=e=>e?.size??0,ct=it(dt),ut=it(ct),ht=it(ut),mt=(e,t)=>e?.has(t)??!1,gt=e=>ve(e)||0==dt(e),bt=e=>[...e?.values()??[]],pt=e=>e.clear(),vt=(e,t)=>e?.forEach(t),It=(e,t)=>e?.delete(t),ft=e=>new Map(e),Ct=e=>[...e?.keys()??[]],wt=(e,t)=>e?.get(t),Tt=(e,t)=>vt(e,(e,n)=>t(n,e)),yt=(e,t,n)=>ve(n)?(It(e,t),e):e?.set(t,n),qt=(e,t,n,l)=>(mt(e,t)?l?.(wt(e,t)):yt(e,t,n()),wt(e,t)),xt=(e,t,n,l=yt)=>(Ye(t,(t,l)=>n(e,l,t)),Tt(e,n=>Ge(t,n)?0:l(e,n)),e),kt=(e,t,n,l)=>{const s={};return vt(e,(e,r)=>{if(!n?.(e,r)){const n=t?t(e,r):e;l?.(n)||(s[r]=n)}}),s},St=(e,t,n)=>kt(e,e=>kt(e,t,n),gt,tt),Dt=(e,t,n)=>kt(e,e=>St(e,t,n),gt,tt),Zt=(e,t)=>{const n=ft();return vt(e,(e,l)=>n.set(l,t?.(e)??e)),n},Mt=e=>Zt(e,Zt),Nt=e=>Zt(e,Mt),Lt=(e,t,n,l,s=0)=>we((n?qt:wt)(e,t[s],s>Se(t)-2?n:ft),r=>{if(s>Se(t)-2)return l?.(r)&&yt(e,t[s]),r;const o=Lt(r,t,n,l,s+1);return gt(r)&&yt(e,t[s]),o}),Vt=/^\d+$/,Et=()=>{const e=[];let t=0;return[n=>(n?Je(e):null)??R+t++,t=>{Vt.test(t)&&Se(e)<1e3&&Pe(e,t)}]},Rt=e=>new Set(xe(e)||ve(e)?e:[e]),At=(e,t)=>e?.add(t),$t=e=>{let t;const[n,l]=Et(),s=ft();return[(l,r,o,a=[],i=()=>[])=>{t??=e();const d=n(1);return yt(s,d,[l,r,o,a,i]),At(Lt(r,o??[R],Rt),d),d},(e,n,...l)=>Ae(((e,t=[R])=>{const n=[],l=(e,s)=>s==Se(t)?Pe(n,e):Ie(t[s])?vt(e,e=>l(e,s+1)):Ae([t[s],null],t=>l(wt(e,t),s+1));return l(e,0),n})(e,n),e=>vt(e,e=>wt(s,e)[0](t,...n??[],...l))),e=>we(wt(s,e),([,t,n])=>(Lt(t,n??[R],void 0,t=>(It(t,e),gt(t)?1:0)),yt(s,e),l(e),n)),e=>we(wt(s,e),([e,,n=[],l,s])=>{const r=(...o)=>{const a=Se(o);a==Se(n)?e(t,...o,...s(o)):Ie(n[a])?Ae(l[a]?.(...o)??[],e=>r(...o,e)):r(...o,n[a])};r()})]},Ht=ft(),zt=ft(),Pt="storage",Jt=e=>{if(Ie(e))return"null";const t=E(e);return Te(t)||t==H&&be(e)?t:void 0},Ot=(e,t,n,l,s)=>ve(s)?e.delCell(t,n,l,!0):e.setCell(t,n,l,s),Bt=(e,t,n)=>ve(n)?e.delValue(t):e.setValue(t,n),jt=(e,t,n,l)=>e==A?t:e==H?n:e==$?l:null,Ft=e=>[e,e],Wt=(e,t=ct)=>t(e[0])+t(e[1]),Qt=()=>[ft(),ft()],_t=e=>[...e],Kt=([e,t])=>e===t,Gt=(e,t,n)=>yt(e,t,wt(e,t)==-n?void 0:n),Ut=()=>{let e,t,n=!1,l=!1,s=0,r=[];const o=ft(),a=ft(),i=ft(),d=ft(),c=ft(),u=ft(),h=ft(),m=ft(),g=ft(),b=ft(),p=ft(),v=ft(),I=ft(),f=ft(),C=Rt(),w=ft(),T=ft(),y=ft(),q=ft(),x=Qt(),k=Qt(),S=Qt(),D=Qt(),Z=Qt(),M=Qt(),N=Qt(),L=Qt(),V=Qt(),E=Qt(),R=Qt(),A=Qt(),$=Qt(),z=Qt(),j=Qt(),W=Qt(),Y=Qt(),re=Qt(),oe=Qt(),ae=Qt(),de=Qt(),ce=Qt(),ue=ft(),he=Qt(),[me,ge,be,pe]=$t(()=>On),fe=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)||Jt(n)==t||Ue(e,J),0))},Ce=xe,ye=(t,n)=>(!e||mt(p,n)||Xt(n))&&lt(t,(e,t)=>Se(n,t,e),()=>Xt(n)),Se=(e,t,n,l)=>lt(l?n:Le(n,e,t),(l,s)=>we(De(e,t,s,l),e=>(n[s]=e,!0),()=>!1),()=>Xt(e,t)),De=(t,n,l,s)=>e?we(wt(wt(p,t),l),e=>Ie(s)?e[O]?s:Xt(t,n,l,s,e[J]):Jt(s)==e[P]?s:Xt(t,n,l,s,e[J]),()=>Xt(t,n,l,s)):ve(Jt(s))?Xt(t,n,l,s):s,Ze=(e,t)=>lt(t?e:Ee(e),(t,n)=>we(Me(n,t),t=>(e[n]=t,!0),()=>!1),()=>Yt()),Me=(e,n)=>t?we(wt(I,e),t=>Ie(n)?t[O]?n:Yt(e,n,t[J]):Jt(n)==t[P]?n:Yt(e,n,t[J]),()=>Yt(e,n)):ve(Jt(n))?Yt(e,n):n,Le=(e,t,n)=>(we(wt(v,t),([l,s])=>{vt(l,(t,n)=>{Ge(e,n)||(e[n]=t)}),vt(s,l=>{Ge(e,l)||Xt(t,n,l)})}),e),Ee=e=>(t&&(vt(f,(t,n)=>{Ge(e,n)||(e[n]=t)}),vt(C,t=>{Ge(e,t)||Yt(t)})),e),$e=e=>xt(p,e,(e,t,n)=>{const l=ft(),s=Rt();xt(qt(p,t,ft),n,(e,t,n)=>{yt(e,t,n),we(n[J],e=>yt(l,t,e),()=>At(s,t))}),yt(v,t,[l,s])},(e,t)=>{yt(p,t),yt(v,t)}),ze=e=>xt(I,e,(e,t,n)=>{yt(I,t,n),we(n[J],e=>yt(f,t,e),()=>At(C,t))},(e,t)=>{yt(I,t),yt(f,t),It(C,t)}),Je=e=>tt(e)?Vn():Dn(e),Oe=e=>xt(y,e,(e,t,n)=>Be(t,n),(e,t)=>st(t)),Be=(e,t)=>xt(qt(y,e,()=>(Lt(e,1),yt(w,e,Et()),yt(T,e,ft()),ft())),t,(t,n,l)=>je(e,t,n,l),(t,n)=>at(e,t,n)),je=(e,t,n,l,s)=>xt(qt(t,n,()=>(Vt(e,n,1),ft())),l,(t,l,s)=>Fe(e,n,t,l,s),(l,r)=>it(e,t,n,l,r,s)),Fe=(e,t,n,l,s)=>{mt(n,l)||Ht(e,t,l,1);const r=wt(n,l);s!==r&&(zt(e,t,l,r,s),yt(n,l,s))},Qe=(e,t,n,l,s)=>we(wt(t,n),t=>Fe(e,n,t,l,s),()=>je(e,t,n,Le({[l]:s},e,n))),Ke=e=>tt(e)?An():Zn(e),Xe=e=>xt(q,e,(e,t,n)=>et(t,n),(e,t)=>bt(t)),et=(e,t)=>{mt(q,e)||Pt(e,1);const n=wt(q,e);t!==n&&(jt(e,n,t),yt(q,e,t))},nt=e=>wt(y,e)??Be(e,{}),st=e=>Be(e,{}),at=(e,t,n)=>{const[,l]=wt(w,e);l(n),je(e,t,n,{},!0)},it=(e,t,n,l,s,r)=>{const o=wt(wt(v,e)?.[0],s);if(!ve(o)&&!r)return Fe(e,n,l,s,o);const a=t=>{zt(e,n,t,wt(l,t)),Ht(e,n,t,-1),yt(l,t)};ve(o)?a(s):Tt(l,a),gt(l)&&(Vt(e,n,-1),gt(yt(t,n))&&(Lt(e,-1),yt(y,e),yt(w,e),yt(T,e)))},bt=e=>{const t=wt(f,e);if(!ve(t))return et(e,t);jt(e,wt(q,e)),Pt(e,-1),yt(q,e)},Lt=(e,t)=>Gt(o,e,t),Vt=(e,t,n)=>Gt(qt(d,e,ft),t,n)&&yt(i,e,qt(i,e,()=>0)+n),Ht=(e,t,n,l)=>{const s=wt(T,e),r=wt(s,n)??0;(0==r&&1==l||1==r&&-1==l)&&Gt(qt(a,e,ft),n,l),yt(s,n,r!=-l?r+l:void 0),Gt(qt(qt(c,e,ft),t,ft),n,l)},zt=(e,t,n,l,s)=>{qt(qt(qt(u,e,ft),t,ft),n,()=>[l,0])[1]=s,r[3]?.(e,t,n,s)},Pt=(e,t)=>Gt(h,e,t),jt=(e,t,n)=>{qt(m,e,()=>[t,0])[1]=n,r[4]?.(e,n)},Xt=(e,t,n,l,s)=>(Pe(qt(qt(qt(g,e,ft),t,ft),n,()=>[]),l),s),Yt=(e,t,n)=>(Pe(qt(b,e,()=>[]),t),n),en=(e,t,n)=>we(wt(wt(wt(u,e),t),n),([e,t])=>[!0,e,t],()=>[!1,...Ft(vn(e,t,n))]),tn=e=>we(wt(m,e),([e,t])=>[!0,e,t],()=>[!1,...Ft(Cn(e))]),nn=e=>gt(g)||gt(W[e])?0:vt(e?Nt(g):g,(t,n)=>vt(t,(t,l)=>vt(t,(t,s)=>ge(W[e],[n,l,s],t)))),ln=e=>gt(b)||gt(Y[e])?0:vt(e?Zt(b):b,(t,n)=>ge(Y[e],[n],t)),sn=(e,t,n,l)=>{if(!gt(e))return ge(t,l,()=>kt(e)),Tt(e,(e,t)=>ge(n,[...l??[],e],1==t)),1},rn=e=>{const t=wn();t!=n&&ge(x[e],void 0,t);const l=gt(E[e]),s=gt($[e])&&gt(z[e])&&gt(V[e])&&gt(R[e])&&gt(M[e])&&gt(N[e])&&gt(L[e])&&l&&gt(S[e])&&gt(D[e]),r=gt(j[e])&&gt(A[e])&&gt(Z[e])&&gt(k[e]);if(!s||!r){const t=e?[Zt(o),Mt(a),Zt(i),Mt(d),Nt(c),Nt(u)]:[o,a,i,d,c,u];if(!s){sn(t[0],S[e],D[e]),vt(t[1],(t,n)=>sn(t,M[e],N[e],[n])),vt(t[2],(t,n)=>{0!=t&&ge(L[e],[n],mn(n))});const n=Rt();vt(t[3],(t,s)=>{sn(t,V[e],R[e],[s])&&!l&&(ge(E[e],[s,null]),At(n,s))}),l||vt(t[5],(t,l)=>{if(!mt(n,l)){const n=Rt();vt(t,e=>vt(e,([t,l],s)=>l!==t?At(n,s):It(e,s))),vt(n,t=>ge(E[e],[l,t]))}}),vt(t[4],(t,n)=>vt(t,(t,l)=>sn(t,$[e],z[e],[n,l])))}if(!r){let n;vt(t[5],(t,l)=>{let s;vt(t,(t,r)=>{let o;vt(t,([t,a],i)=>{a!==t&&(ge(j[e],[l,r,i],a,t,en),n=s=o=1)}),o&&ge(A[e],[l,r],en)}),s&&ge(Z[e],[l],en)}),n&&ge(k[e],void 0,en)}}},on=e=>{const t=kn();t!=l&&ge(re[e],void 0,t);const n=gt(ae[e])&&gt(de[e]),s=gt(ce[e])&&gt(oe[e]);if(!n||!s){const t=e?[Zt(h),Zt(m)]:[h,m];if(n||sn(t[0],ae[e],de[e]),!s){let n;vt(t[1],([t,l],s)=>{l!==t&&(ge(ce[e],[s],l,t,tn),n=1)}),n&&ge(oe[e],void 0,tn)}}},an=(e,...t)=>(zn(()=>e(...He(t,ie))),On),dn=(e,t,n,l,s)=>{let r=bn(e,t,...n);return me(()=>{const s=bn(e,t,...n);Ve(s,r)||(r=s,l(On,e,t,...n,r))},E[s?1:0],[e,t],[un])},cn=()=>Dt(y),un=()=>Ct(y),hn=e=>Ct(wt(T,ie(e))),mn=e=>dt(wt(y,ie(e))),gn=e=>Ct(wt(y,ie(e))),bn=(e,t,n,l=0,s)=>{return We(e)?bn(e.tableId,e.cellId,e.descending,e.offset,e.limit):He(ke(Re((r=wt(y,ie(e)),o=(e,n)=>[ve(t)?n:wt(e,ie(t)),n],He([...r?.entries()??[]],([e,t])=>o(t,e))),([e],[t])=>((e??0)<(t??0)?-1:1)*(n?-1:1)),l,ve(s)?s:l+s),([,e])=>e);var r,o},pn=(e,t)=>Ct(wt(wt(y,ie(e)),ie(t))),vn=(e,t,n)=>wt(wt(wt(y,ie(e)),ie(t)),ie(n)),In=()=>kt(q),fn=()=>Ct(q),Cn=e=>wt(q,ie(e)),wn=()=>!gt(y),Tn=e=>mt(y,ie(e)),yn=(e,t)=>mt(wt(T,ie(e)),ie(t)),qn=(e,t)=>mt(wt(y,ie(e)),ie(t)),xn=(e,t,n)=>mt(wt(wt(y,ie(e)),ie(t)),ie(n)),kn=()=>!gt(q),Sn=e=>mt(q,ie(e)),Dn=e=>an(()=>(e=>lt(e,ye,Xt))(e)?Oe(e):0),Zn=e=>an(()=>Ze(e)?Xe(e):0),Mn=e=>(Ne(()=>Je(rt(e))),On),Nn=t=>an(()=>{if((e=lt(t,e=>lt(e,fe)))&&($e(t),!gt(y))){const e=cn();Vn(),Dn(e)}}),Ln=e=>an(()=>{if(t=(e=>lt(e,fe))(e)){const n=In();Hn(),An(),t=!0,ze(e),Zn(n)}}),Vn=()=>an(()=>Oe({})),En=e=>an(e=>mt(y,e)?st(e):0,e),Rn=(e,t)=>an((e,t)=>we(wt(y,e),n=>mt(n,t)?at(e,n,t):0),e,t),An=()=>an(()=>Xe({})),$n=()=>an(()=>{$e({}),e=!1}),Hn=()=>an(()=>{ze({}),t=!1}),zn=(e,t)=>{if(-1!=s){Pn();const n=e();return Jn(t),n}},Pn=()=>(-1!=s&&s++,1==s&&(r[0]?.(),ge(ue)),On),Jn=e=>(s>0&&(s--,0==s&&(s=1,nn(1),gt(u)||rn(1),ln(1),gt(m)||on(1),e?.(On)&&(vt(u,(e,t)=>vt(e,(e,n)=>vt(e,([e],l)=>Ot(On,t,n,l,e)))),pt(u),vt(m,([e],t)=>Bt(On,t,e)),pt(m)),ge(he[0],void 0),s=-1,nn(0),gt(u)||rn(0),ln(0),gt(m)||on(0),r[1]?.(),ge(he[1],void 0),r[2]?.(),s=0,n=wn(),l=kn(),Ae([o,a,i,d,c,u,g,h,m,b],pt))),On),On={getContent:()=>[cn(),In()],getTables:cn,getTableIds:un,getTable:e=>St(wt(y,ie(e))),getTableCellIds:hn,getRowCount:mn,getRowIds:gn,getSortedRowIds:bn,getRow:(e,t)=>kt(wt(wt(y,ie(e)),ie(t))),getCellIds:pn,getCell:vn,getValues:In,getValueIds:fn,getValue:Cn,hasTables:wn,hasTable:Tn,hasTableCell:yn,hasRow:qn,hasCell:xn,hasValues:kn,hasValue:Sn,getTablesJson:()=>ot(y),getValuesJson:()=>ot(q),getJson:()=>ot([y,q]),getTablesSchemaJson:()=>ot(p),getValuesSchemaJson:()=>ot(I),getSchemaJson:()=>ot([p,I]),hasTablesSchema:()=>e,hasValuesSchema:()=>t,setContent:e=>an(()=>{const t=qe(e)?e():e;Ce(t)&&(([e,t])=>{(tt(e)?Vn:Dn)(e),(tt(t)?An:Zn)(t)})(t)}),setTables:Dn,setTable:(e,t)=>an(e=>ye(t,e)?Be(e,t):0,e),setRow:(e,t,n)=>an((e,t)=>Se(e,t,n)?je(e,nt(e),t,n):0,e,t),addRow:(e,t,n=!0)=>zn(()=>{let l;return Se(e,l,t)&&(e=ie(e),je(e,nt(e),l=((e,t)=>{const[n]=wt(w,e);let l;do{l=n(t)}while(mt(wt(y,e),l));return l})(e,n?1:0),t)),l}),setPartialRow:(e,t,n)=>an((e,t)=>{if(Se(e,t,n,1)){const l=nt(e);Ye(n,(n,s)=>Qe(e,l,t,s,n))}},e,t),setCell:(e,t,n,l)=>an((e,t,n)=>we(De(e,t,n,qe(l)?l(vn(e,t,n)):l),l=>Qe(e,nt(e),t,n,l)),e,t,n),setValues:Zn,setPartialValues:e=>an(()=>Ze(e,1)?Ye(e,(e,t)=>et(t,e)):0),setValue:(e,t)=>an(e=>we(Me(e,qe(t)?t(Cn(e)):t),t=>et(e,t)),e),applyChanges:e=>an(()=>{Ye(e[0],(e,t)=>ve(e)?En(t):Ye(e,(e,n)=>ve(e)?Rn(t,n):Ye(e,(e,l)=>Ot(On,t,n,l,e)))),Ye(e[1],(e,t)=>Bt(On,t,e))}),setTablesJson:Mn,setValuesJson:e=>(Ne(()=>Ke(rt(e))),On),setJson:e=>an(()=>Ne(()=>{const[t,n]=rt(e);Je(t),Ke(n)},()=>Mn(e))),setTablesSchema:Nn,setValuesSchema:Ln,setSchema:(e,t)=>an(()=>{Nn(e),Ln(t)}),delTables:Vn,delTable:En,delRow:Rn,delCell:(e,t,n,l)=>an((e,t,n)=>we(wt(y,e),s=>we(wt(s,t),r=>mt(r,n)?it(e,s,t,r,n,l):0)),e,t,n),delValues:An,delValue:e=>an(e=>mt(q,e)?bt(e):0,e),delTablesSchema:$n,delValuesSchema:Hn,delSchema:()=>an(()=>{$n(),Hn()}),transaction:zn,startTransaction:Pn,getTransactionChanges:()=>[kt(u,(e,t)=>-1===wt(o,t)?void 0:kt(e,(e,n)=>-1===wt(wt(d,t),n)?void 0:kt(e,([,e])=>e,e=>Kt(e)),gt,tt),gt,tt),kt(m,([,e])=>e,e=>Kt(e)),1],getTransactionLog:()=>[!gt(u),!gt(m),Dt(u,_t,Kt),Dt(g),kt(m,_t,Kt),kt(b),kt(o),St(d),Dt(c),kt(h)],finishTransaction:Jn,forEachTable:e=>vt(y,(t,n)=>e(n,e=>vt(t,(t,n)=>e(n,e=>Tt(t,e))))),forEachTableCell:(e,t)=>Tt(wt(T,ie(e)),t),forEachRow:(e,t)=>vt(wt(y,ie(e)),(e,n)=>t(n,t=>Tt(e,t))),forEachCell:(e,t,n)=>Tt(wt(wt(y,ie(e)),ie(t)),n),forEachValue:e=>Tt(q,e),addSortedRowIdsListener:(e,t,n,l,s,r,o)=>We(e)?dn(e.tableId,e.cellId,[e.descending??!1,e.offset??0,e.limit],t,n):dn(e,t,[n,l,s],r,o),addStartTransactionListener:e=>me(e,ue),addWillFinishTransactionListener:e=>me(e,he[0]),addDidFinishTransactionListener:e=>me(e,he[1]),callListener:e=>(pe(e),On),delListener:e=>(be(e),On),getListenerStats:()=>({hasTables:Wt(x),tables:Wt(k),tableIds:Wt(S),hasTable:Wt(D),table:Wt(Z),tableCellIds:Wt(M),hasTableCell:Wt(N,ut),rowCount:Wt(L),rowIds:Wt(V),sortedRowIds:Wt(E),hasRow:Wt(R,ut),row:Wt(A,ut),cellIds:Wt($,ut),hasCell:Wt(z,ht),cell:Wt(j,ht),invalidCell:Wt(W,ht),hasValues:Wt(re),values:Wt(oe),valueIds:Wt(ae),hasValue:Wt(de),value:Wt(ce),invalidValue:Wt(Y),transaction:ct(ue)+Wt(he)}),isMergeable:()=>!1,createStore:Ut,addListener:me,callListeners:ge,setInternalListeners:(e,t,n,l,s)=>r=[e,t,n,l,s]};return Ye({[F+_]:[0,x,[],()=>[wn()]],[_]:[0,k],[K]:[0,S],[F+Q]:[1,D,[un],e=>[Tn(...e)]],[Q]:[1,Z,[un]],[Q+te]:[1,M,[un]],[F+Q+ee]:[2,N,[un,hn],e=>[yn(...e)]],[U]:[1,L,[un]],[X]:[1,V,[un]],[F+G]:[2,R,[un,gn],e=>[qn(...e)]],[G]:[2,A,[un,gn]],[te]:[2,$,[un,gn]],[F+ee]:[3,z,[un,gn,pn],e=>[xn(...e)]],[ee]:[3,j,[un,gn,pn],e=>Ft(vn(...e))],InvalidCell:[3,W],[F+le]:[0,re,[],()=>[kn()]],[le]:[0,oe],[se]:[0,ae],[F+ne]:[1,de,[fn],e=>[Sn(...e)]],[ne]:[1,ce,[fn],e=>Ft(Cn(e[0]))],InvalidValue:[1,Y]},([e,t,n,l],s)=>{On["add"+s+B]=(...s)=>me(s[e],t[s[e+1]?1:0],e>0?ke(s,0,e):void 0,n,l)}),_e(On)},{PureComponent:Xt,createContext:Yt,useCallback:en,useContext:tn,useEffect:nn,useLayoutEffect:ln,useMemo:sn,useRef:rn,useState:on,useSyncExternalStore:an}=V,dn=(e,...t)=>ve(e)?{}:e(...t),cn="tinybaseInspector",un="TinyBase Inspector",hn=["left","top","bottom","right","full"],mn="state",gn="sort",bn="open",pn="position",vn=bn,In="editable",fn=(...e)=>ot(e),Cn=(e,t)=>He(Re([...e]),t),wn=(e,t)=>[!!l(mn,e,In,t),en(n=>{t.setCell(mn,e,In,e=>!e),n.preventDefault()},[t,e])],Tn=({s:t})=>{const n=s(pn,t)??1,l=r(vn,()=>!0,[],t);return s(vn,t)?null:e("img",{onClick:l,title:un,"data-position":n})},yn="tinybase_uirc",qn=ce[yn]?ce[yn]:ce[yn]=Yt([]),xn=(e,t)=>{const n=((e,t)=>{const n=tn(qn);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},kn=[],Sn=[{},[],[kn,void 0,kn],{},void 0,void 0,!1,0],Dn=[nt,Ve,([e,t,n],[l,s,r])=>t===s&&Ve(e,l)&&Ve(n,r),(e,t)=>nt(e,t,Ee),Ee],Zn=(e,t)=>e===t,Mn=(e,t,n,l=kn)=>{const s=rn(Sn[n]),r=en(()=>{const r=t?.[(6==n?"has":"get")+e]?.(...l)??Sn[n];return(Dn[n]??Zn)(r,s.current)?s.current:s.current=r},[t,n,e,...l]),o=en(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 an(o,r,r)},Nn=(e,t,n,l,s,r,...o)=>((e,t,n,l=kn,s=De,r=kn,o,...a)=>en(l=>we(e,e=>we(n(l,e),n=>s(e[o+t](...Ln(a,e,l),n),n))),[e,t,...l,...r,o,...Vn(a)]))(Rn(e),t,n,l,s,r,"set",...o),Ln=(e,t,n)=>He(e,e=>qe(e)?e(n,t):e),Vn=e=>{return t=e=>!qe(e),e.filter(t);var t},En=(e,t,n=De,l=kn,...s)=>{const r=Rn(e);return en(e=>n(r?.["del"+t](...Ln(s,r,e))),[r,t,...l,...Vn(s)])},Rn=e=>xn(e,0),An=(e,t)=>Mn(Q+te,Rn(t),1,[e]),$n=(e,t,n,l,s,r)=>((e,t,n,l,s,r)=>Mn(Y,Rn(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]),Hn=(e,t,n,l)=>Mn(ee,Rn(l),5,[e,t,n]),zn=(e,t)=>Mn(ne,Rn(t),5,[e]),Pn=(e,t,n,l,s,r)=>Nn(l,Q,t,n,s,r,e),Jn=(e,t,n,l,s,r,o)=>Nn(s,G,n,l,r,o,e,t),On=(e,t,n,l,s,r,o,a)=>Nn(r,ee,l,s,o,a,e,t,n),Bn=(e,t,n,l,s,r)=>Nn(l,ne,t,n,s,r,e),jn=(e,t,n,l)=>En(t,Q,n,l,e),Fn=(e,t,n,l,s)=>En(n,G,l,s,e,t),Wn=(e,t,n,l,s,r,o)=>En(s,ee,r,o,e,t,n,l),Qn=(e,t,n,l)=>En(t,ne,n,l,e),_n=e=>xn(e,2),Kn=(e,t,n)=>Mn("Slice"+X,_n(n),1,[e,t]),Gn=e=>xn(e,3),Un=e=>xn(e,4),Xn=(e,t)=>Mn(j+Q+te,Un(t),1,[e]),Yn=(e,t,n,l=0,s,r)=>Mn(j+Y,Un(r),1,[e,t,n,l,s]),el=(e,t)=>sn(()=>({store:e,tableId:t}),[e,t]),tl=(e,t)=>sn(()=>({queries:e,queryId:t}),[e,t]),nl=(e,t,n)=>{const l=en(e,t);return n?l:void 0},ll=(...e)=>sn(()=>e,e),sl=(e,t,n)=>sn(()=>{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]),rl="editable",ol=(t=[],n,l=0)=>He(t,({component:t},s)=>e("td",{className:ae,children:e(t,{...n})},al(s,l))),al=(e,t)=>(t?">":"<")+e,il=(t=[],n=0)=>He(t,({label:t},l)=>e("th",{className:ae,children:t},al(l,n))),dl=({cellId:e,sort:[n,l],label:s=e??R,onClick:r})=>t("th",{onClick:nl(()=>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]}),cl=({className:n,headerRow:l,idColumn:s,params:[r,o,a,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:[il(i),!1===s?null:e(dl,{sort:c??[],label:"Id",onClick:u}),Xe(r,({label:t},n)=>e(dl,{cellId:n,label:t,sort:c??[],onClick:u},n)),il(d,1)]})}),e("tbody",{children:He(a,n=>{const l={...o,rowId:n};return t("tr",{children:[ol(i,l),fe(s)?null:e("th",{title:n,children:n}),Xe(r,({component:t,getComponentProps:s},r)=>e("td",{children:e(t,{...dn(s,n,r),...l,cellId:r})},r)),ol(d,l,1)]},n)})})]}),ul=({thing:n,onThingChange:l,className:s,hasSchema:r,showType:o=!0})=>{const[a,i]=on(),[d,c]=on(),[u,h]=on(),[m,g]=on(),[b,p]=on();d!==n&&(i(Jt(n)),c(n),h(n+""),g(Number(n)||0),p(!!n));const v=en((e,t)=>{t(e),c(e),l(e)},[l]),I=en(()=>{if(!r?.()){const e=jt(a,H,$,A),t=jt(e,u,m,b);i(e),c(t),l(t)}},[r,l,u,m,b,a]),f=jt(a,e("input",{value:u,onChange:en(e=>v(e[re][oe]+"",h),[v])},a),e("input",{type:"number",value:m,onChange:en(e=>v(Number(e[re][oe]||0),g),[v])},a),e("input",{type:"checkbox",checked:b,onChange:en(e=>v(!!e[re].checked,p),[v])},a));return t("div",{className:s,children:[o&&f?e("button",{title:a,className:a,onClick:I,children:a}):null,f]})},hl=({tableId:t,rowId:n,cellId:l,store:s,className:r,showType:o})=>{const[a,i]=((e,t,n,l)=>[Hn(e,t,n,l),On(e,t,n,Ze,[],l)])(t,n,l,s);return e(ul,{thing:a,onThingChange:i,className:r??rl+ee,showType:o,hasSchema:Rn(s)?.hasTablesSchema})},ml=({valueId:t,store:n,className:l,showType:s})=>{const[r,o]=((e,t)=>[zn(e,t),Bn(e,Ze,[],t)])(t,n);return e(ul,{thing:r,onThingChange:o,className:l??rl+ne,showType:s,hasSchema:Rn(n)?.hasValuesSchema})},gl=(e,t)=>He(An(e,t),t=>e+"."+t),bl=({localRowId:l,params:[s,r,o,a,i,d,c,u,h]})=>{const m=((e,t,n)=>Mn("RemoteRowId",Gn(n),5,[e,t]))(i,l,d),g={tableId:o??"",rowId:l,store:c};return t("tr",{children:[ol(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===o?l:r===a?m:void 0;return ve(d)?null:e("td",{children:e(t,{...dn(n,d,i),store:c,tableId:r,rowId:d,cellId:i})},s)}),ol(h,g,1)]})},pl=({relationshipId:l,relationships:s,editable:r,customCells:a,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)])(Gn(s),l),v=sl([...gl(b,g),...gl(p,g)],a,r?hl:o),I=ll(h,v,b,p,l,m,g,i,d);return t("table",{className:c,children:[fe(u)?null:e("thead",{children:t("tr",{children:[il(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)),il(d,1)]})}),e("tbody",{children:He((f=b,C=g,Mn(X,Rn(C),1,[f])),t=>e(bl,{localRowId:t,params:I},t))})]});var f,C},vl=(t,n=!1,l,s=0,r,o,a,i)=>{const[[d,c,u],h]=on([t,n,s]),m=en(e=>{h(e),i?.(e)},[i]),g=nl(e=>m([e,e==d&&!c,u]),[m,d,c,u],l),b=en(e=>m([d,c,e]),[m,d,c]),p=!0===a?Il:a;return[[d,c,u],g,sn(()=>fe(a)?null:e(p,{offset:u,limit:r,total:o,onChange:b}),[a,p,u,r,o,b])]},Il=({onChange:l,total:s,offset:r=0,limit:o=s,singular:a="row",plural:i=a+"s"})=>{(r>s||r<0)&&(r=0,l(0));const d=nl(()=>l(r-o),[l,r,o],r>0),c=nl(()=>l(r+o),[l,r,o],r+o<s);return t(n,{children:[s>o&&t(n,{children:[e("button",{className:"previous",disabled:0==r,onClick:d,children:"←"}),e("button",{className:"next",disabled:r+o>=s,onClick:c,children:"→"}),r+1," to ",me(s,r+o)," of "]}),s," ",1!=s?i:a]})},fl=({queryId:t,cellId:n,descending:l,offset:s,limit:r,queries:o,sortOnClick:i,paginator:d=!1,customCells:c,extraCellsBefore:u,extraCellsAfter:h,onChange:m,...g})=>{const[b,p,v]=vl(n,l,i,s,r,((e,t)=>Mn(j+U,Un(t),7,[e]))(t,o),d,m);return e(cl,{...g,params:ll(sl(Xn(t,o),c,a),tl(o,t),Yn(t,...b,r,o),u,h,b,p,v)})},Cl=({indexId:t,sliceId:n,indexes:l,editable:s,customCells:r,extraCellsBefore:a,extraCellsAfter:i,...d})=>{const[c,u,h]=((e,t)=>[e,e?.getStore(),e?.getTableId(t)])(_n(l),t);return e(cl,{...d,params:ll(sl(An(h,u),r,s?hl:o),el(u,h),Kn(t,n,c),a,i)})},wl=({tableId:t,cellId:n,descending:l,offset:s,limit:r,store:a,editable:i,sortOnClick:d,paginator:c=!1,onChange:u,customCells:h,extraCellsBefore:m,extraCellsAfter:g,...b})=>{const[p,v,I]=vl(n,l,d,s,r,((e,t)=>Mn(U,Rn(t),7,[e]))(t,a),c,u);return e(cl,{...b,params:ll(sl(An(t,a),h,i?hl:o),el(a,t),$n(t,...p,r,a),m,g,p,v,I)})},Tl=(t=[],n,l=0)=>He(t,({component:t},s)=>e("td",{className:ae,children:e(t,{...n})},al(s,l))),yl=({store:n,editable:l=!1,valueComponent:s=(l?ml:i),getValueComponentProps:r,extraCellsBefore:o,extraCellsAfter:a,className:d,headerRow:c,idColumn:u})=>{return t("table",{className:d,children:[!1===c?null:e("thead",{children:t("tr",{children:[il(o),!1===u?null:e("th",{children:"Id"}),e("th",{children:ne}),il(a,1)]})}),e("tbody",{children:He((h=n,Mn(se,Rn(h),1)),l=>{const i={valueId:l,store:n};return t("tr",{children:[Tl(o,i),fe(u)?null:e("th",{title:l,children:l}),e("td",{children:e(s,{...dn(r,l),...i})}),Tl(a,i,1)]},l)})})]});var h},ql=({uniqueId:n,title:s,editable:r,handleEditable:o,children:a,s:i})=>{const c=!!l(mn,n,bn,i),u=d(mn,n,bn,e=>e[re].open,[],i);return t("details",{open:c,onToggle:u,children:[t("summary",{children:[e("span",{children:s}),o?e("img",{onClick:o,className:r?"done":"edit",title:r?"Done editing":"Edit"}):null]}),e("div",{children:a})]})},xl=({indexes:t,indexesId:n,indexId:l,s:s})=>e(ql,{uniqueId:fn("i",n,l),title:"Index: "+l,s:s,children:He(h(l,t),r=>e(kl,{indexes:t,indexesId:n,indexId:l,sliceId:r,s:s},r))}),kl=({indexes:t,indexesId:n,indexId:l,sliceId:s,s:r})=>{const o=fn("i",n,l,s),[a,i]=wn(o,r);return e(ql,{uniqueId:o,title:"Slice: "+s,editable:a,handleEditable:i,s:r,children:e(Cl,{sliceId:s,indexId:l,indexes:t,editable:a})})},Sl=({indexesId:t,s:n})=>{const l=c(t),s=u(l);return ve(l)?null:e(ql,{uniqueId:fn("i",t),title:"Indexes: "+(t??J),s:n,children:ze(s)?"No indexes defined":Cn(s,s=>e(xl,{indexes:l,indexesId:t,indexId:s,s:n},s))})},Dl=({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)})]}),Zl=({metricsId:n,s:l})=>{const s=m(n),r=g(s);return ve(s)?null:e(ql,{uniqueId:fn("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(Dl,{metrics:s,metricId:t},t))})]})})},Ml=({queries:t,queriesId:n,queryId:s,s:r})=>{const o=fn("q",n,s),[a,i,c]=rt(l(mn,o,gn,r)??"[]"),u=d(mn,o,gn,ot,[],r);return e(ql,{uniqueId:o,title:"Query: "+s,s:r,children:e(fl,{queryId:s,queries:t,cellId:a,descending:i,offset:c,limit:10,paginator:!0,sortOnClick:!0,onChange:u})})},Nl=({queriesId:t,s:n})=>{const l=p(t),s=v(l);return ve(l)?null:e(ql,{uniqueId:fn("q",t),title:"Queries: "+(t??J),s:n,children:ze(s)?"No queries defined":Cn(s,s=>e(Ml,{queries:l,queriesId:t,queryId:s,s:n},s))})},Ll=({relationships:t,relationshipsId:n,relationshipId:l,s:s})=>{const r=fn("r",n,l),[o,a]=wn(r,s);return e(ql,{uniqueId:r,title:"Relationship: "+l,editable:o,handleEditable:a,s:s,children:e(pl,{relationshipId:l,relationships:t,editable:o})})},Vl=({relationshipsId:t,s:n})=>{const l=I(t),s=f(l);return ve(l)?null:e(ql,{uniqueId:fn("r",t),title:"Relationships: "+(t??J),s:n,children:ze(s)?"No relationships defined":Cn(s,s=>e(Ll,{relationships:l,relationshipsId:t,relationshipId:s,s:n},s))})},El=(e,t)=>{let n,l=0;for(;t(n=e+(l>0?" (copy"+(l>1?" "+l:"")+")":""));)l++;return n},Rl=({actions:l,...s})=>{const[r,o]=on(),a=en(()=>o(void 0),[]);if(nn(()=>{if(!ve(r)){const e=e=>{ve(r)||"Escape"!==e.key||(e.preventDefault(),a())};return document.addEventListener("keydown",e),()=>document.removeEventListener("keydown",e)}},[r,a]),ve(r))return l.map(([t,n],l)=>e("img",{title:n,className:t,onClick:()=>o(l)},l));{const[,,o]=l[r];return t(n,{children:[e(o,{onDone:a,...s}),e("img",{onClick:a,title:"Cancel",className:"cancel"})]})}},Al=({onDone:l,suggestedId:s,has:r,set:o,prompt:a="New Id"})=>{const[i,d]=on(s),[c,u]=on(!0),[h,m]=on(s),g=en(()=>{r(i)?u(!1):(o(i),l())},[l,u,r,o,i]),b=en(e=>{"Enter"===e.key&&(e.preventDefault(),g())},[g]);return s!=h&&(d(s),m(s)),t(n,{children:[a+": ",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"})]})},$l=({onClick:l,prompt:s="Delete"})=>{const r=en(e=>{"Enter"===e.key&&(e.preventDefault(),l())},[l]);return nn(()=>(document.addEventListener("keydown",r),()=>document.removeEventListener("keydown",r)),[r]),t(n,{children:[s,"? ",e("img",{onClick:l,title:"Confirm",className:"ok"})]})},Hl=({left:n,right:l})=>t("div",{className:"actions",children:[e("div",{children:n}),e("div",{children:l})]}),zl=e=>{const t=Rn(e);return en(e=>t?.hasTable(e)??!1,[t])},Pl=({onDone:t,store:n})=>{const l=zl(n);return e(Al,{onDone:t,suggestedId:El("table",l),has:l,set:Pn(e=>e,()=>({row:{cell:""}}),[],n),prompt:"Add table"})},Jl=({onDone:t,store:n})=>{return e($l,{onClick:(l=n,s=t,En(l,_,s,void 0)),prompt:"Delete all tables"});var l,s},Ol=({store:t})=>{return e(Hl,{left:e(Rl,{actions:[["add","Add table",Pl]],store:t}),right:(n=t,Mn(_,Rn(n),6,[])?e(Rl,{actions:[["delete","Delete all tables",Jl]],store:t}):null)});var n},Bl=({onDone:t,tableId:n,store:l})=>{const s=_l(l,n);return e(Al,{onDone:t,suggestedId:El("row",s),has:s,set:Jn(n,e=>e,(e,t)=>Ke(He(t.getTableCellIds(n),e=>[e,""]))),prompt:"Add row"})},jl=({onDone:t,tableId:n,store:l})=>{const s=Rn(l),r=zl(s);return e(Al,{onDone:t,suggestedId:El(n,r),has:r,set:Pn(e=>e,(e,t)=>t.getTable(n)),prompt:"Clone table to"})},Fl=({onDone:t,tableId:n,store:l})=>e($l,{onClick:jn(n,l,t),prompt:"Delete table"}),Wl=({tableId:t,store:n})=>e(Rl,{actions:[["add","Add row",Bl]],store:n,tableId:t}),Ql=({tableId:t,store:n})=>e(Rl,{actions:[["clone","Clone table",jl],["delete","Delete table",Fl]],store:n,tableId:t}),_l=(e,t)=>{const n=Rn(e);return en(e=>n?.hasRow(t,e)??!1,[n,t])},Kl=({onDone:t,tableId:n,rowId:l,store:s})=>{const r=Rn(s),o=en(e=>r.hasCell(n,l,e),[r,n,l]);return e(Al,{onDone:t,suggestedId:El("cell",o),has:o,set:On(n,l,e=>e,()=>"",[],r),prompt:"Add cell"})},Gl=({onDone:t,tableId:n,rowId:l,store:s})=>{const r=Rn(s),o=_l(r,n);return e(Al,{onDone:t,suggestedId:El(l,o),has:o,set:Jn(n,e=>e,(e,t)=>t.getRow(n,l),[l]),prompt:"Clone row to"})},Ul=({onDone:t,tableId:n,rowId:l,store:s})=>e($l,{onClick:Fn(n,l,s,t),prompt:"Delete row"}),Xl=({onDone:t,tableId:n,rowId:l,cellId:s,store:r})=>e($l,{onClick:Wn(n,l,s,!0,r,t),prompt:"Delete cell"}),Yl=({tableId:t,rowId:n,cellId:l,store:s})=>e(Rl,{actions:[["delete","Delete cell",Xl]],store:s,tableId:t,rowId:n,cellId:l}),es=[{label:"",component:({tableId:t,rowId:n,store:l})=>e(Rl,{actions:[["add","Add cell",Kl],["clone","Clone row",Gl],["delete","Delete row",Ul]],store:l,tableId:t,rowId:n})}],ts=l=>t(n,{children:[e(hl,{...l}),T(l.tableId,l.rowId,l.cellId,l.store)&&e(Yl,{...l})]}),ns=({tableId:n,store:s,storeId:r,s:a})=>{const i=fn("t",r,n),[c,u,h]=rt(l(mn,i,gn,a)??"[]"),m=d(mn,i,gn,ot,[],a),[g,b]=wn(i,a),p=g?ts:o;return t(ql,{uniqueId:i,title:Q+": "+n,editable:g,handleEditable:b,s:a,children:[e(wl,{tableId:n,store:s,cellId:c,descending:u,offset:h,limit:10,paginator:!0,sortOnClick:!0,onChange:m,editable:g,extraCellsAfter:g?es:[],customCells:Ke(He(w(n,s),e=>[e,{label:e,component:p}]))}),g?t("div",{className:"actions",children:[e("div",{children:e(Wl,{tableId:n,store:s})}),e("div",{children:e(Ql,{tableId:n,store:s})})]}):null]})},ls=({store:n,storeId:l,s:s})=>{const r=fn("ts",l),[o,a]=wn(r,s),i=C(n);return t(ql,{uniqueId:r,title:_,editable:o,handleEditable:a,s:s,children:[ze(i)?e("caption",{children:"No tables."}):Cn(i,t=>e(ns,{store:n,storeId:l,tableId:t,s:s},t)),o?e(Ol,{store:n}):null]})},ss=e=>{const t=Rn(e);return en(e=>t?.hasValue(e)??!1,[t])},rs=({onDone:t,store:n})=>{const l=ss(n);return e(Al,{onDone:t,suggestedId:El("value",l),has:l,set:Bn(e=>e,()=>"",[],n),prompt:"Add value"})},os=({onDone:t,store:n})=>{return e($l,{onClick:(l=n,s=t,En(l,le,s,void 0)),prompt:"Delete all values"});var l,s},as=({store:t})=>{return e(Hl,{left:e(Rl,{actions:[["add","Add value",rs]],store:t}),right:(n=t,Mn(le,Rn(n),6,[])?e(Rl,{actions:[["delete","Delete all values",os]],store:t}):null)});var n},is=({onDone:t,valueId:n,store:l})=>{const s=ss(l);return e(Al,{onDone:t,suggestedId:El(n,s),has:s,set:Bn(e=>e,(e,t)=>t.getValue(n)??"",[n],l),prompt:"Clone value to"})},ds=({onDone:t,valueId:n,store:l})=>e($l,{onClick:Qn(n,l,t),prompt:"Delete value"}),cs=[{label:"",component:({valueId:t,store:n})=>e(Rl,{actions:[["clone","Clone value",is],["delete","Delete value",ds]],store:n,valueId:t})}],us=({store:n,storeId:l,s:s})=>{const r=fn("v",l),[o,a]=wn(r,s);return t(ql,{uniqueId:r,title:le,editable:o,handleEditable:a,s:s,children:[ze(y(n))?e("caption",{children:"No values."}):e(yl,{store:n,editable:o,extraCellsAfter:o?cs:[]}),o?e(as,{store:n}):null]})},hs=({storeId:n,s:l})=>{const s=q(n);return ve(s)?null:t(ql,{uniqueId:fn("s",n),title:(s.isMergeable()?"Mergeable":"")+"Store: "+(n??J),s:l,children:[e(us,{storeId:n,store:s,s:l}),e(ls,{storeId:n,store:s,s:l})]})},ms=({s:n})=>{const l=rn(null),s=rn(0),[r,o]=on(!1),{scrollLeft:a,scrollTop:i}=x(n);ln(()=>{const e=l.current;if(e&&!r){const t=new MutationObserver(()=>{e.scrollWidth>=ge(a)+e.clientWidth&&e.scrollHeight>=ge(i)+e.clientHeight&&e.scrollTo(a,i)});return t.observe(e,{childList:!0,subtree:!0}),()=>t.disconnect()}},[r,a,i]);const d=en(e=>{const{scrollLeft:t,scrollTop:l}=e[re];cancelIdleCallback(s.current),s.current=requestIdleCallback(()=>{o(!0),n.setPartialValues({scrollLeft:t,scrollTop:l})})},[n]),u=q(),h=k(),g=m(),b=S(),v=c(),f=D(),C=I(),w=Z(),T=p(),y=M();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(hs,{s:n}),He(h,t=>e(hs,{storeId:t,s:n},t)),e(Zl,{s:n}),He(b,t=>e(Zl,{metricsId:t,s:n},t)),e(Sl,{s:n}),He(f,t=>e(Sl,{indexesId:t,s:n},t)),e(Vl,{s:n}),He(w,t=>e(Vl,{relationshipsId:t,s:n},t)),e(Nl,{s:n}),He(y,t=>e(Nl,{queriesId:t,s:n},t))]})};class gs extends Xt{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 bs=({s:n})=>{const l=s(pn,n)??1,o=r(vn,()=>!1,[],n),a=r(pn,e=>Number(e[re].dataset.id),[],n);return t("header",{children:[e("img",{className:"flat",title:un,onClick:()=>open("https://tinybase.org","_blank")}),e("span",{children:un}),He(hn,(t,n)=>n==l?null:e("img",{onClick:a,"data-id":n,title:"Dock to "+t},n)),e("img",{className:"flat",onClick:o,title:"Close"})]})},ps=({s:n})=>{const l=s(pn,n)??1;return s(vn,n)?t("main",{"data-position":l,children:[e(bs,{s:n}),e(gs,{children:e(ms,{s:n})})]}):null},vs='url("',Is=(e,t="white")=>({content:vs+`data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 -960 960 960' fill='${t}'><path d='${e}' /></svg>")`}),fs="v560h120v-560h-120Z",Cs="v560h360v-560h-360Z",ws="v120h560v-120h-560Z",Ts="v360h560v-360h-560Z",ys={content:vs+"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\")"},qs=He([`M200-760${fs} M400-760${Cs}`,`M200-760${ws} M200-560${Ts}`,`M200-760${Ts} M200-320${ws}`,`M200-760${Cs} M640-760${fs}`],e=>Is("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(qs,Is("M120-120v-200h80v120h120v80H120Zm520 0v-80h120v-120h80v200H640ZM120-640v-200h200v80H200v120h-80Zm640 0v-120H640v-80h200v200h-80Z"));const xs=Is("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"),ks=Is("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"),Ss=Is("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"),Ds=Is("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"),Zs=Is("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"),Ms=Is("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"),Ns=Is("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)"),Ls=Is("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)"),Vs=Is("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)"),Es=Is("M480-344 240-584l56-56 184 184 184-184 56 56-240 240Z"),Rs=Is("M504-480 320-664l56-56 240 240-240 240-56-56 184-184Z"),As="*::-webkit-scrollbar",$s="background",Hs="width",zs="max-"+Hs,Ps="min-"+Hs,Js="height",Os="border",Bs=Os+"-radius",js="padding",Fs="margin",Ws=Fs+"-right",Qs="top",_s="bottom",Ks="left",Gs="right",Us="color",Xs="position",Ys="box-shadow",er="font-size",tr="display",nr="overflow",lr="cursor",sr="vertical-align",rr="text-align",or="justify-content",ar="fixed",ir="revert",dr="unset",cr="none",ur="flex",hr="pointer",mr="auto",gr="hidden",br="nowrap",pr=(e,t="% 0.01 "+vr("hue"))=>`oklch(${e}${t})`,vr=e=>`var(--${e})`,Ir=(...e)=>e.join("rem ")+"rem",fr=(...e)=>e.join("px ")+"px",Cr=(e=100)=>e+"vw",wr=(e=100)=>e+"vh",Tr=$e(Xe({"":{all:"initial",[er]:Ir(.75),[Xs]:ar,"font-family":"inter,sans-serif","z-index":999999,"--bg":pr(20),"--bg2":pr(15),"--bg3":pr(25),"--bg4":pr(30),"--fg":pr(85),"--fg2":pr(60),["--"+Os]:fr(1)+" solid "+vr("bg4"),["--"+Ys]:fr(0,1,2,0)+" #0007"},"*":{all:ir},"*::before":{all:ir},"*::after":{all:ir},[As]:{[Hs]:Ir(.5),[Js]:Ir(.5)},[As+"-thumb"]:{[$s]:vr("bg4")},[As+"-thumb:hover"]:{[$s]:vr("bg4")},[As+"-corner"]:{[$s]:cr},[As+"-track"]:{[$s]:cr},img:{[Hs]:Ir(.8),[Js]:Ir(.8),[sr]:"text-"+_s,[lr]:hr,[Fs]:fr(-2.5,2,-2.5,0),[js]:fr(2),[Os]:vr(Os),[$s]:vr("bg3"),[Ys]:vr(Ys),[Bs]:Ir(.25)},"img.flat":{[Os]:cr,[$s]:cr,[Ys]:cr},">img":{[js]:Ir(.25),[_s]:0,[Gs]:0,[Xs]:ar,[Js]:dr,[Fs]:0,...ys},...Ke(He([{[_s]:0,[Ks]:0},{[Qs]:0,[Gs]:0}],(e,t)=>[`>img[data-position='${t}']`,e])),main:{[tr]:ur,[Us]:vr("fg"),[$s]:vr("bg"),[nr]:gr,[Xs]:ar,[Ys]:vr(Ys),"flex-direction":"column"},...Ke(He([{[_s]:0,[Ks]:0,[Hs]:Cr(35),[Js]:wr(),[Os+"-"+Gs]:vr(Os)},{[Qs]:0,[Gs]:0,[Hs]:Cr(),[Js]:wr(30),[Os+"-"+_s]:vr(Os)},{[_s]:0,[Ks]:0,[Hs]:Cr(),[Js]:wr(30),[Os+"-"+Qs]:vr(Os)},{[Qs]:0,[Gs]:0,[Hs]:Cr(35),[Js]:wr(),[Os+"-"+Ks]:vr(Os)},{[Qs]:0,[Gs]:0,[Hs]:Cr(),[Js]:wr()}],(e,t)=>[`main[data-position='${t}']`,e])),header:{[tr]:ur,[js]:Ir(.5),[Ys]:vr(Ys),[$s]:pr(30,"% 0.008 var(--hue) / .5"),[Hs]:"calc(100% - .5rem)",[Xs]:"absolute",[Os+"-"+_s]:vr(Os),"align-items":"center","backdrop-filter":"blur(4px)"},"header>img:nth-of-type(1)":{[Js]:Ir(1),[Hs]:Ir(1),...ys},"header>img:nth-of-type(6)":xs,...Ke(He(qs,(e,t)=>[`header>img[data-id='${t}']`,e])),"header>span":{[nr]:gr,[ur]:1,"font-weight":800,"white-space":br,"text-overflow":"ellipsis"},article:{[nr]:mr,[ur]:1,[js+"-"+Qs]:Ir(2)},details:{[Fs]:Ir(.5),[Os]:vr(Os),[Bs]:Ir(.25)},summary:{[$s]:vr("bg3"),[Fs]:fr(-1),[Os]:vr(Os),[js]:Ir(.25,.125),[tr]:ur,[Bs]:Ir(.25),"user-select":cr,[or]:"space-between","align-items":"center"},"summary>span::before":{[tr]:"inline-block",[sr]:"sub",[Fs]:fr(2),[Hs]:Ir(1),[Js]:Ir(1),...Rs},"details[open]>summary":{"border-bottom-left-radius":0,"border-bottom-right-radius":0,[Fs+"-"+_s]:0},"details[open]>summary>span::before":Es,"details>summary img":{[tr]:cr},"details[open]>summary img":{[tr]:dr,[Fs+"-"+Ks]:Ir(.25)},"details>div":{[nr]:mr},caption:{[Us]:vr("fg2"),[js]:Ir(.25,.5),[rr]:Ks,"white-space":br},"caption button":{[Hs]:Ir(1.5),[Os]:cr,[$s]:cr,[Us]:vr("fg"),[js]:0,[lr]:hr},"caption button[disabled]":{[Us]:vr("fg2")},".actions":{[js]:Ir(.75,.5),[Fs]:0,[tr]:ur,[Os+"-"+Qs]:vr(Os),[or]:"space-between"},table:{[Ps]:"100%","border-collapse":"collapse","table-layout":ar},thead:{[$s]:vr("bg")},[`th,#${cn} td`]:{[nr]:gr,[js]:Ir(.25,.5),[zs]:Ir(20),[Os]:vr(Os),"text-overflow":"ellipsis","white-space":br,"border-width":fr(1,0,0),[rr]:Ks},"th:first-child":{[Hs]:Ir(3),[Ps]:Ir(3),[zs]:Ir(3)},"th.sorted":{[$s]:vr("bg3")},"td.extra":{[rr]:Gs},"tbody button":{[$s]:cr,[Os]:cr,[er]:0,[Hs]:Ir(.8),[Js]:Ir(.8),[Us]:vr("fg2"),[Fs]:Ir(0,.25,0,-.25),"line-height":Ir(.8)},"tbody button:first-letter":{[er]:Ir(.8)},input:{[$s]:vr("bg2"),[Us]:dr,[js]:fr(4),[Os]:0,[Fs]:fr(-4,0),[er]:dr,[zs]:Ir(6)},"input:focus":{"outline-width":0},'input[type="number"]':{[Hs]:Ir(3)},'input[type="checkbox"]':{[sr]:fr(-2)},".editableCell":{[tr]:"inline-block",[Ws]:fr(2)},"button.next":{[Ws]:Ir(.5)},"img.edit":ks,"img.done":Ss,"img.add":Ds,"img.clone":Zs,"img.delete":Ms,"img.ok":Ns,"img.okDis":Ls,"img.cancel":Vs,"span.warn":{[Fs]:Ir(2,.25),[Us]:"#d81b60"}},(e,t)=>`#${cn} ${t}{${$e(Xe(e,(e,t)=>`${t}:${e};`))}}`)),yr=({position:l="right",open:s=!1,hue:r=270})=>{const o=N(Ut),a=hn.indexOf(l);return L(o,e=>{return t=cn,n=sessionStorage,((e,t,n,l,s,r,o,a={},i=0,d=[])=>{let c,u,h,m=0,g=0,b=0;qt(Ht,d,()=>0),qt(zt,d,()=>[]);const p=ft(),[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]:Me("Store type not supported by this Persister"))(o,e,i),[T,y,q]=$t(()=>R),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=>(2!=m&&(x(1),g++,await E(async()=>{await Ne(async()=>{const n=await t();xe(n)?k(n):e?w(e):Me("Content is not an array: "+n)},()=>{e&&w(e)}),x(0)})),R),D=async e=>(Z(),await S(e),await Ne(async()=>u=await l(async(e,t)=>{t||e?2!=m&&(x(1),g++,k(t??e),x(0)):await S()}),r),R),Z=async()=>(u&&(await Ne(()=>s(u),r),u=void 0),R),M=async e=>(1!=m&&(x(2),b++,await E(async()=>{await Ne(()=>n(I,e),r),x(0)})),R),N=async()=>(L(),await M(),h=e.addDidFinishTransactionListener(()=>{const e=f();C(e)&&M(e)}),R),L=async()=>(h&&(e.delListener(h),h=void 0),R),V=async(e=!1)=>{const[t,n]=e?[L,Z]:[Z,L];return await t(),await n(),R},E=async(...e)=>(Pe(wt(zt,d),...e),await(async()=>{if(!wt(Ht,d)){for(yt(Ht,d,1);!ve(c=Je(wt(zt,d)));)await Ne(c,r);yt(Ht,d,0)}})(),R),R={load:S,startAutoLoad:D,stopAutoLoad:Z,isAutoLoading:()=>!ve(u),save:M,startAutoSave:N,stopAutoSave:L,isAutoSaving:()=>!ve(h),startAutoPersisting:async(e,t=!1)=>{const[n,l]=t?[N,D]:[D,N];return await n(e),await l(e),R},stopAutoPersisting:V,getStatus:()=>m,addStatusListener:e=>T(e,p),delListener:t=>(q(t),e),schedule:E,getStore:()=>e,destroy:()=>(wt(zt,d).splice(0,void 0),V()),getStats:()=>({loads:g,saves:b}),...a};return _e(R)})(e,async()=>at(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(at(l.newValue)),e)};return ue.addEventListener(Pt,l),l},e=>ue.removeEventListener(Pt,e),void 0,3,{getStorageName:()=>t});var t,n},void 0,async e=>{await e.load([{},{position:-1==a?1:a,open:!!s}]),await e.startAutoSave()}),t(n,{children:[t("aside",{id:cn,children:[e(Tn,{s:o}),e(ps,{s:o})]}),t("style",{children:[`#${cn}{--hue:${r}}`,Tr]})]})};export{yr as Inspector};