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