virtua 0.24.0 → 0.25.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/index.js CHANGED
@@ -1,3 +1,3 @@
1
1
  "use client";
2
- var e=require("react/jsx-runtime"),t=require("react"),n=require("react-dom");const r=Math.min,o=Math.max,i=Math.abs,s=Object.values,l=Array.isArray,c=setTimeout,a=(e,t,n)=>r(n,o(t,e)),u=e=>null!=e,h="function"==typeof queueMicrotask?queueMicrotask:e=>{Promise.resolve().then(e)},d=e=>{let t,n;return(...r)=>(t||(t=!0,n=e(...r)),n)},f=-1,_=(e,t,n)=>{const r=n?"unshift":"push";for(let n=0;n<t;n++)e[r](f);return e},g=(e,t)=>{const n=e.t[t];return n===f?e.o:n},p=(e,t)=>{if(!e.i)return 0;if(e.l>=t)return e.u[t];e.l<0&&(e.u[0]=0,e.l=0);let n=e.l,r=e.u[n];for(;n<t;)r+=g(e,n),e.u[++n]=r;return e.l=t,r},v=(e,t,n)=>{let r=p(e,n);for(;n>=0&&n<e.i;)if(r<=t){const o=g(e,n);if(r+o>t)break;r+=o,n++}else r-=g(e,--n);return a(n,0,e.i-1)},m=(e,t,n,o)=>{const i=v(e,t,r(n,e.i-1));return[i,v(e,t+o,i)]},w=(e,t,n)=>{const o=t-e.i,i=o>0;let s;return i?(s=e.o*o,_(e.t,o,n),_(e.u,o)):(s=(n?e.t.splice(0,-o):e.t.splice(o)).reduce(((t,n)=>t+(n===f?e.o:n)),0),e.u.splice(o)),e.l=n?-1:r(t-1,e.l),e.i=t,[s,i]},S="undefined"!=typeof window,b=()=>document.documentElement,y=e=>e.ownerDocument,z=e=>e.defaultView,x=/*#__PURE__*/d((()=>!!S&&"rtl"===getComputedStyle(b()).direction)),I=/*#__PURE__*/d((()=>/iP(hone|od|ad)/.test(navigator.userAgent))),R=/*#__PURE__*/d((()=>"scrollBehavior"in b().style)),k=e=>o(e.h(),e._()),C=(e,t,n)=>o(e-(1===n?1:o(1,t)),0),M=(e,t,n,i)=>r(e+(2===n?1:o(1,t)),i-1),T=(e,t,n)=>t.reduce(((t,[r,o])=>{const i=o-g(e,r);return(!n||i>0)&&(t+=i),t}),0),E=(e,t=40,n=0,s,l,c=0,u=0)=>{let h=!!n,d=[],v=0,S=0,b=0,y=0,z=0,x=!1,R=0,k=0,C=0,M=h?[0,o(n-1,0)]:null,E=[0,0];const O=s||((e,t)=>({o:t,i:e,l:-1,t:_([],e),u:_([],e)}))(e,t),H=new Set,J=()=>(e=>e.i?p(e,e.i-1)+g(e,e.i-1):0)(O),W=()=>J()+c+u,q=()=>o(0,W()-v),B=e=>{I()&&0!==k?z+=e:(y+=e,b++)};return{p:()=>d,v:()=>JSON.parse(JSON.stringify(O)),m:()=>M?[r(E[0],M[0]),o(E[1],M[1])]:R?E:E=m(O,S-c+z+y,E[0],v),S:e=>O.t[e]===f,I:()=>!!M&&O.t.slice(o(0,M[0]-1),r(O.i-1,M[1]+1)+1).includes(f),R:e=>p(O,e)-z,k:e=>g(O,e),C:()=>O.i,M:()=>S,T:()=>k,_:()=>v,O:()=>c,H:()=>u,h:J,J:()=>b,W(){const e=y,t=x;return y=0,x=!1,v>W()?[0,!1]:[R=e,t]},q(e,t){const n=[e,t];return H.add(n),()=>{H.delete(n)}},B(e,t){let n,o,s=0;switch(e){case 1:{const e=t.filter((([e,t])=>O.t[e]!==t));if(!e.length)break;let n=0;if(0===S);else if(S>q()-1.5)n=T(O,e,!0);else if(2===C)n=T(O,e);else{const[t]=E;n=T(O,e.filter((([e])=>e<t)))}n&&B(n);let i=!1;e.forEach((([e,t])=>{((e,t,n)=>{const o=e.t[t]===f;return e.t[t]=n,e.l=r(t,e.l),o})(O,e,t)&&(i=!0)})),l&&i&&!S&&(e=>{const t=e.t.filter((e=>e!==f)),n=t[0];e.o=t.every((e=>e===n))?n:(e=>{const t=[...e].sort(((e,t)=>e-t)),n=e.length/2|0;return t.length%2==0?(t[n-1]+t[n])/2:t[n]})(t)})(O),s=2,o=!0;break}case 2:v!==t&&(v=t,s=2);break;case 3:if(t[1]){const e=q()-S,[n,o]=w(O,t[0],!0);B(o?n:-r(n,e)),o&&(C=2,x=!0),s=1}else w(O,t[0]);break;case 4:{const e=a(t,0,q()),n=R;if(R=0,e===S)break;const r=e-S,l=i(r);n&&l<i(n)+1||0!==C||(k=r<0?2:1),h&&(M=null,h=!1),o=l>v,S=e,s=5;break}case 5:s=8,0!==k&&(n=!0,s+=1),k=0,C=0,M=null;break;case 6:C=1;break;case 7:M=m(O,t,E[0],v),s=1}s&&(d=[],n&&z&&(y+=z,z=0,b++),H.forEach((([e,t])=>{s&e&&t(o)})))}}},O=S?t.useLayoutEffect:t.useEffect,H=(e,t)=>t&&x()?-e:e,J=(e,t,n,r,o)=>{const i=Date.now;let s=0,l=!1,a=!1,h=!1,d=!1;const f=(()=>{let t;const n=()=>{u(t)&&clearTimeout(t)},r=()=>{n(),t=c((()=>{t=null,(()=>{if(l||a)return l=!1,void f();h=!1,e.B(5)})()}),150)};return r.$=n,r})(),_=()=>{s=i(),h&&(d=!0),e.B(4,r()),f()},g=t=>{if(l||0===e.T()||t.ctrlKey)return;const r=i()-s;150>r&&50<r&&(n?t.deltaX:t.deltaY)&&(l=!0)},p=()=>{a=!0,h=d=!1},v=()=>{a=!1,I()&&(h=!0)};return t.addEventListener("scroll",_),t.addEventListener("wheel",g,{passive:!0}),t.addEventListener("touchstart",p,{passive:!0}),t.addEventListener("touchend",v,{passive:!0}),{A:()=>{t.removeEventListener("scroll",_),t.removeEventListener("wheel",g),t.removeEventListener("touchstart",p),t.removeEventListener("touchend",v),f.$()},L:()=>{const[t,n]=e.W();if(t)return o(t,d),d=!1,n}}},W=(e,t)=>{let n,r,o;const i=t?"scrollLeft":"scrollTop",s=t?"overflowX":"overflowY",l=async(r,s)=>{if(!n)return void h((()=>l(r,s)));o&&o();const a=()=>{let t;return[new Promise(((e,n)=>{t=e,c(o=n,150)})),e.q(2,(()=>{t&&t()}))]};if(s&&R()){for(;e.B(7,r()),e.I();){const[e,t]=a();try{await e}catch(e){return}finally{t()}}n.scrollTo({[t?"left":"top"]:H(r(),t),behavior:"smooth"})}else for(;;){const[o,s]=a();try{n[i]=H(r(),t),e.B(6),await o}catch(e){return}finally{s()}}};return{P(o){n=o,r=J(e,o,t,(()=>H(o[i],t)),((e,n)=>{if(n){const e=o.style,t=e[s];e[s]="hidden",c((()=>{e[s]=t}))}o[i]+=H(e,t)}))},A(){r&&r.A()},X(e){l((()=>e))},Y(t){t+=e.M(),l((()=>t))},j(t,{align:n,smooth:r}={}){if(t=a(t,0,e.C()-1),"nearest"===n){const r=e.R(t),o=e.M();if(r<o)n="start";else{if(!(r+e.k(t)>o+e._()))return;n="end"}}l((()=>e.O()+("end"===n?e.R(t)+e.k(t)-e._():"center"===n?e.R(t)+(e.k(t)-e._())/2:e.R(t))),r)},L:()=>{r&&r.L()&&o&&o()}}},q=(e,t)=>{let n;return{P(r){const o=t?"scrollX":"scrollY",i=y(r),s=z(i),l=i.body,c=(e,t,n,r=0)=>{const o=n?"offsetLeft":"offsetTop",i=r+(n&&x()?s.innerWidth-e[o]-e.offsetWidth:e[o]),l=e.offsetParent;return e!==t&&l?c(l,t,n,i):i};n=J(e,s,t,(()=>H(s[o],t)-c(r,l,t)),(e=>{s.scrollBy(t?H(e,t):0,t?0:e)}))},A(){n&&n.A()},L:()=>{n&&n.L()}}},B="current",$=(e,t)=>{if(l(e))for(const n of e)$(n,t);else u(e)&&"boolean"!=typeof e&&t.push(e)},A=(e,t)=>{const n=e.key;return u(n)?n:"_"+t},L=e=>{const n=t.useRef();return n[B]||(n[B]=e())},P=e=>{const n=t.useRef(e);return O((()=>{n[B]=e}),[e]),n},X=e=>{let t;return{P(n){(t||(t=new(z(y(n)).ResizeObserver)(e))).observe(n)},D(e){t.unobserve(e)},A(){t&&t.disconnect()}}},Y=(e,t)=>{let n;const r=t?"width":"height",o=new WeakMap,i=X((t=>{const i=[];for(const{target:s,contentRect:l}of t)if(s.offsetParent)if(s===n)e.B(2,l[r]);else{const e=o.get(s);u(e)&&i.push([e,l[r]])}i.length&&e.B(1,i)}));return{N(e){i.P(n=e)},U:(e,t)=>(o.set(e,t),i.P(e),()=>{o.delete(e),i.D(e)}),A:i.A}},j=(e,t)=>{const n=t?"width":"height",r=t?"innerWidth":"innerHeight",o=new WeakMap,i=X((t=>{const r=[];for(const{target:e,contentRect:i}of t){if(!e.offsetParent)continue;const t=o.get(e);u(t)&&r.push([t,i[n]])}r.length&&e.B(1,r)}));let s;return{N(t){const n=z(y(t)),o=()=>{e.B(2,n[r])};n.addEventListener("resize",o),o(),s=()=>{n.removeEventListener("resize",o)}},U:(e,t)=>(o.set(e,t),i.P(e),()=>{o.delete(e),i.D(e)}),A(){s&&s(),i.A()}}},D=(e,t)=>{let n;const r="height",i="width",s=new WeakMap,l=new Set,c=new Set,a=new Map,u=(e,t)=>`${e}-${t}`,h=X((h=>{const d=new Set,f=new Set;for(const{target:o,contentRect:l}of h)if(o.offsetParent)if(o===n)e.B(2,l[r]),t.B(2,l[i]);else{const e=s.get(o);if(e){const[t,n]=e,o=u(t,n),s=a.get(o),c=[l[r],l[i]];let h,_;s?(s[0]!==c[0]&&(h=!0),s[1]!==c[1]&&(_=!0)):h=_=!0,h&&d.add(t),_&&f.add(n),(h||_)&&a.set(o,c)}}if(d.size){const t=[];d.forEach((e=>{let n=0;c.forEach((t=>{const r=a.get(u(e,t));r&&(n=o(n,r[0]))})),n&&t.push([e,n])})),e.B(1,t)}if(f.size){const e=[];f.forEach((t=>{let n=0;l.forEach((e=>{const r=a.get(u(e,t));r&&(n=o(n,r[1]))})),n&&e.push([t,n])})),t.B(1,e)}}));return{N(e){h.P(n=e)},U:(e,t,n)=>(s.set(e,[t,n]),l.add(t),c.add(n),h.P(e),()=>{s.delete(e),h.D(e)}),A:h.A}},N=t.memo((({V:n,F:r,G:o,K:i,Z:s,ee:l,te:c,ne:a})=>{const u=t.useRef(null);O((()=>r(u[B],o)),[o]);const h=t.useMemo((()=>{const e={margin:0,padding:0,position:s&&a?void 0:"absolute",[c?"height":"width"]:"100%",[c?"top":"left"]:0,[c?x()?"right":"left":"top"]:i,visibility:!s||a?"visible":"hidden"};return c&&(e.display="flex"),e}),[i,s,a]);return"string"==typeof l?e.jsx(l,{ref:u,style:h,children:n}):e.jsx(l,{ref:u,style:h,index:o,children:n})})),U=e=>t.useReducer(e.p,void 0,e.p)[1],V=(e,n)=>t.useMemo((()=>{if("function"==typeof e)return[e,n||0];const t=(e=>{const t=[];return $(e,t),t})(e);return[e=>t[e],t.length]}),[e,n]),F=t.forwardRef((({children:r,count:i,overscan:s=4,itemSize:l,shift:c,horizontal:a,reverse:u,cache:d,startMargin:f,endMargin:_,ssrCount:g,as:p="div",item:v="div",scrollRef:m,onScroll:w,onScrollEnd:S,onRangeChange:b},y)=>{const[z,x]=V(r,i),I=t.useRef(null),R=t.useRef(!!g),T=P(w),H=P(S),[J,q,$,X]=L((()=>{const e=!!a,t=E(x,l,g,d,!l,f,_);return[t,Y(t,e),W(t,e),e]}));x!==J.C()&&J.B(3,[x,c]);const j=U(J),[D,F]=J.m(),G=J.T(),K=J.J(),Q=J.h(),Z=(e=>o(e.h(),e._()-e.O()-e.H()))(J),ee=u?o(0,Z-Q):0,te=[];O((()=>{R[B]=!1;const e=J.q(3,(e=>{e?n.flushSync(j):j()})),t=J.q(4,(()=>{T[B]&&T[B](J.M())})),r=J.q(8,(()=>{H[B]&&H[B]()})),o=e=>{q.N(e),$.P(e)};return m?h((()=>o(m[B]))):o(I[B].parentElement),()=>{e(),t(),r(),q.A(),$.A()}}),[]),O((()=>{$.L()}),[K]),t.useEffect((()=>{b&&b(D,F)}),[D,F]),t.useImperativeHandle(y,(()=>({get cache(){return J.v()},get scrollOffset(){return J.M()},get scrollSize(){return k(J)},get viewportSize(){return J._()},scrollToIndex:$.j,scrollTo:$.X,scrollBy:$.Y})),[]);for(let t=C(D,s,G),n=M(F,s,G,x);t<=n;t++){const n=z(t);te.push(e.jsx(N,{F:q.U,G:t,K:J.R(t)+ee,Z:J.S(t),ee:v,V:n,te:X,ne:R[B]},A(n,t)))}return e.jsx(p,{ref:I,style:{overflowAnchor:"none",flex:"none",position:"relative",visibility:"hidden",width:X?Q:"100%",height:X?"100%":Q,[X?"minWidth":"minHeight"]:Z,pointerEvents:0!==G?"none":"auto"},children:te})})),G=t.forwardRef((({children:t,count:n,overscan:r,itemSize:o,shift:i,horizontal:s,reverse:l,cache:c,ssrCount:a,item:u,onScroll:h,onScrollEnd:d,onRangeChange:f,style:_,...g},p)=>e.jsx("div",{...g,style:{display:s?"inline-block":"block",[s?"overflowX":"overflowY"]:"auto",contain:"strict",width:"100%",height:"100%",..._},children:e.jsx(F,{ref:p,count:n,overscan:r,itemSize:o,shift:i,horizontal:s,reverse:l,cache:c,ssrCount:a,item:u,onScroll:h,onScrollEnd:d,onRangeChange:f,children:t})}))),K=t.forwardRef((({children:r,count:o,overscan:i=4,itemSize:s,shift:l,horizontal:c,cache:a,ssrCount:u,as:h="div",item:d="div",onScrollEnd:f,onRangeChange:_},g)=>{const[p,v]=V(r,o),m=t.useRef(null),w=P(f),S=t.useRef(!!u),[b,y,z,x]=L((()=>{const e=!!c,t=E(v,s,u,a,!s);return[t,j(t,e),q(t,e),e]}));v!==b.C()&&b.B(3,[v,l]);const I=U(b),[R,k]=b.m(),T=b.T(),H=b.J(),J=b.h(),W=[];O((()=>{S[B]=!1;const e=b.q(3,(e=>{e?n.flushSync(I):I()})),t=b.q(8,(()=>{w[B]&&w[B]()})),r=m[B];return y.N(r),z.P(r),()=>{e(),t(),y.A(),z.A()}}),[]),O((()=>{z.L()}),[H]),t.useEffect((()=>{_&&_(R,k)}),[R,k]),t.useImperativeHandle(g,(()=>({get cache(){return b.v()}})),[]);for(let t=C(R,i,T),n=M(k,i,T,v);t<=n;t++){const n=p(t);W.push(e.jsx(N,{F:y.U,G:t,K:b.R(t),Z:b.S(t),ee:d,V:n,te:x,ne:S[B]},A(n,t)))}return e.jsx(h,{ref:m,style:{flex:"none",position:"relative",visibility:"hidden",width:x?J:"100%",height:x?"100%":J,pointerEvents:0!==T?"none":"auto"},children:W})})),Q=t.forwardRef((({children:n,attrs:r,width:o,height:i,scrolling:s},l)=>e.jsx("div",{ref:l,...r,children:e.jsx("div",{style:t.useMemo((()=>({position:"relative",visibility:"hidden",width:null!=o?o:"100%",height:null!=i?i:"100%",pointerEvents:s?"none":"auto"})),[o,i,s]),children:n})}))),Z=(e,t)=>`${e}-${t}`,ee=t.memo((({V:n,F:r,re:o,oe:i,ie:s,se:l,le:c,ce:a,Z:u,ee:h})=>{const d=t.useRef(null);return O((()=>r.U(d[B],o,i)),[i,o]),e.jsx(h,{ref:d,style:t.useMemo((()=>({display:"grid",margin:0,padding:0,position:"absolute",top:s,[x()?"right":"left"]:l,visibility:u?"hidden":"visible",minHeight:c,minWidth:a})),[s,l,a,c,u]),children:n})})),te=t.forwardRef((({children:r,row:o,col:i,cellHeight:l=40,cellWidth:c=100,overscan:a=2,initialRowCount:u,initialColCount:h,components:{Root:d=Q,Cell:f="div"}={},..._},g)=>{const[p,v,m,w,S]=L((()=>{const e=E(o,l,u),t=E(i,c,h);return[e,t,D(e,t),W(e,!1),W(t,!0)]}));o!==p.C()&&p.B(3,[o]),i!==v.C()&&v.B(3,[i]);const b=U(p),y=U(v),[z,x]=p.m(),[I,R]=v.m(),T=p.T(),H=v.T(),J=p.J(),q=v.J(),$=k(p),A=k(v),P=t.useRef(null);O((()=>{const e=P[B],t=p.q(3,(e=>{e?n.flushSync(b):b()})),r=v.q(3,(e=>{e?n.flushSync(y):y()}));return m.N(e),w.P(e),S.P(e),()=>{t(),r(),m.A(),w.A(),S.A()}}),[]),O((()=>{w.L()}),[J]),O((()=>{S.L()}),[q]),t.useImperativeHandle(g,(()=>({get scrollOffset(){return[v.M(),p.M()]},get scrollSize(){return[k(v),k(p)]},get viewportSize(){return[v._(),p._()]},scrollToIndex(e,t){S.j(e),w.j(t)},scrollTo(e,t){S.X(e),w.X(t)},scrollBy(e,t){S.Y(e),w.Y(t)}})),[]);const X=t.useMemo((()=>{const e=new Map;return(t,n)=>{let o=e.get(Z(t,n));return o||e.set(Z(t,n),o=r({rowIndex:t,colIndex:n})),o}}),[r]),Y=C(z,a,T),j=M(x,a,T,o),N=C(I,a,H),V=M(R,a,H,i),F=[];for(let t=Y;t<=j;t++)for(let n=N;n<=V;n++)F.push(e.jsx(ee,{F:m,re:t,oe:n,ie:p.R(t),se:v.R(n),le:p.k(t),ce:v.k(n),Z:p.S(t)||v.S(n),ee:f,V:X(t,n)},Z(t,n)));return e.jsx(d,{ref:P,width:A,height:$,scrolling:0!==T||0!==H,attrs:t.useMemo((()=>({..._,style:{overflow:"auto",overflowAnchor:"none",flex:"none",contain:"strict",width:"100%",height:"100%",..._.style}})),s(_)),children:F})}));exports.VList=G,exports.Virtualizer=F,exports.WindowVirtualizer=K,exports.experimental_VGrid=te;
2
+ var e=require("react/jsx-runtime"),t=require("react"),n=require("react-dom");const r=Math.min,o=Math.max,i=Math.abs,s=Array.isArray,l=setTimeout,c=(e,t,n)=>r(n,o(t,e)),a=e=>null!=e,u="function"==typeof queueMicrotask?queueMicrotask:e=>{Promise.resolve().then(e)},h=e=>{let t,n;return(...r)=>(t||(t=!0,n=e(...r)),n)},f=-1,d=(e,t,n)=>{const r=n?"unshift":"push";for(let n=0;n<t;n++)e[r](f);return e},_=(e,t)=>{const n=e.t[t];return n===f?e.o:n},g=(e,t)=>{if(!e.i)return 0;if(e.l>=t)return e.u[t];e.l<0&&(e.u[0]=0,e.l=0);let n=e.l,r=e.u[n];for(;n<t;)r+=_(e,n),e.u[++n]=r;return e.l=t,r},p=(e,t,n)=>{let r=g(e,n);for(;n>=0&&n<e.i;)if(r<=t){const o=_(e,n);if(r+o>t)break;r+=o,n++}else r-=_(e,--n);return c(n,0,e.i-1)},v=(e,t,n,o)=>{const i=p(e,t,r(n,e.i-1));return[i,p(e,t+o,i)]},m=(e,t,n)=>{const o=t-e.i,i=o>0;let s;return i?(s=e.o*o,d(e.t,o,n),d(e.u,o)):(s=(n?e.t.splice(0,-o):e.t.splice(o)).reduce(((t,n)=>t+(n===f?e.o:n)),0),e.u.splice(o)),e.l=n?-1:r(t-1,e.l),e.i=t,[s,i]},w="undefined"!=typeof window,S=()=>document.documentElement,b=e=>e.ownerDocument,y=e=>e.defaultView,z=/*#__PURE__*/h((()=>!!w&&"rtl"===getComputedStyle(S()).direction)),x=/*#__PURE__*/h((()=>/iP(hone|od|ad)/.test(navigator.userAgent))),I=/*#__PURE__*/h((()=>"scrollBehavior"in S().style)),R=e=>o(e.h(),e._()),k=(e,t,n)=>o(e-(1===n?1:o(1,t)),0),C=(e,t,n,i)=>r(e+(2===n?1:o(1,t)),i-1),M=(e,t,n)=>t.reduce(((t,[r,o])=>{const i=o-_(e,r);return(!n||i>0)&&(t+=i),t}),0),T=(e,t=40,n=0,s,l,a=0,u=0)=>{let h=!!n,p=[],w=0,S=0,b=0,y=0,z=0,I=!1,R=0,k=0,C=0,T=h?[0,o(n-1,0)]:null,E=[0,0];const H=s||((e,t)=>({o:t,i:e,l:-1,t:d([],e),u:d([],e)}))(e,t),J=new Set,O=()=>(e=>e.i?g(e,e.i-1)+_(e,e.i-1):0)(H),W=()=>O()+a+u,q=()=>o(0,W()-w),B=e=>{x()&&0!==k?z+=e:(y+=e,b++)};return{p:()=>p,v:()=>JSON.parse(JSON.stringify(H)),m:()=>T?[r(E[0],T[0]),o(E[1],T[1])]:R?E:E=v(H,S-a+z+y,E[0],w),S:e=>H.t[e]===f,I:()=>!!T&&H.t.slice(o(0,T[0]-1),r(H.i-1,T[1]+1)+1).includes(f),R:e=>g(H,e)-z,k:e=>_(H,e),C:()=>H.i,M:()=>S,T:()=>k,_:()=>w,H:()=>a,J:()=>u,h:O,O:()=>b,W(){const e=y,t=I;return y=0,I=!1,w>W()?[0,!1]:[R=e,t]},q(e,t){const n=[e,t];return J.add(n),()=>{J.delete(n)}},B(e,t){let n,o,s=0;switch(e){case 1:{const e=t.filter((([e,t])=>H.t[e]!==t));if(!e.length)break;let n=0;if(0===S);else if(S>q()-1.5)n=M(H,e,!0);else if(2===C)n=M(H,e);else{const[t]=E;n=M(H,e.filter((([e])=>e<t)))}n&&B(n);let i=!1;e.forEach((([e,t])=>{((e,t,n)=>{const o=e.t[t]===f;return e.t[t]=n,e.l=r(t,e.l),o})(H,e,t)&&(i=!0)})),l&&i&&!S&&(e=>{const t=e.t.filter((e=>e!==f)),n=t[0];e.o=t.every((e=>e===n))?n:(e=>{const t=[...e].sort(((e,t)=>e-t)),n=e.length/2|0;return t.length%2==0?(t[n-1]+t[n])/2:t[n]})(t)})(H),s=2,o=!0;break}case 2:w!==t&&(w=t,s=2);break;case 3:if(t[1]){const e=q()-S,[n,o]=m(H,t[0],!0);B(o?n:-r(n,e)),o&&(C=2,I=!0),s=1}else m(H,t[0]);break;case 4:{const e=c(t,0,q()),n=R;if(R=0,e===S)break;const r=e-S,l=i(r);n&&l<i(n)+1||0!==C||(k=r<0?2:1),h&&(T=null,h=!1),o=l>w,S=e,s=5;break}case 5:s=8,0!==k&&(n=!0,s+=1),k=0,C=0,T=null;break;case 6:C=1;break;case 7:T=v(H,t,E[0],w),s=1}s&&(p=[],n&&z&&(y+=z,z=0,b++),J.forEach((([e,t])=>{s&e&&t(o)})))}}},E=w?t.useLayoutEffect:t.useEffect,H=(e,t)=>t&&z()?-e:e,J=(e,t,n,r,o)=>{const i=Date.now;let s=0,c=!1,u=!1,h=!1,f=!1;const d=(()=>{let t;const n=()=>{a(t)&&clearTimeout(t)},r=()=>{n(),t=l((()=>{t=null,(()=>{if(c||u)return c=!1,void d();h=!1,e.B(5)})()}),150)};return r.$=n,r})(),_=()=>{s=i(),h&&(f=!0),e.B(4,r()),d()},g=t=>{if(c||0===e.T()||t.ctrlKey)return;const r=i()-s;150>r&&50<r&&(n?t.deltaX:t.deltaY)&&(c=!0)},p=()=>{u=!0,h=f=!1},v=()=>{u=!1,x()&&(h=!0)};return t.addEventListener("scroll",_),t.addEventListener("wheel",g,{passive:!0}),t.addEventListener("touchstart",p,{passive:!0}),t.addEventListener("touchend",v,{passive:!0}),{A:()=>{t.removeEventListener("scroll",_),t.removeEventListener("wheel",g),t.removeEventListener("touchstart",p),t.removeEventListener("touchend",v),d.$()},L:()=>{const[t,n]=e.W();if(t)return o(t,f),f=!1,n}}},O=(e,t)=>{let n,r,o;const i=t?"scrollLeft":"scrollTop",s=t?"overflowX":"overflowY",a=async(r,s)=>{if(!n)return void u((()=>a(r,s)));o&&o();const c=()=>{let t;return[new Promise(((e,n)=>{t=e,l(o=n,150)})),e.q(2,(()=>{t&&t()}))]};if(s&&I()){for(;e.B(7,r()),e.I();){const[e,t]=c();try{await e}catch(e){return}finally{t()}}n.scrollTo({[t?"left":"top"]:H(r(),t),behavior:"smooth"})}else for(;;){const[o,s]=c();try{n[i]=H(r(),t),e.B(6),await o}catch(e){return}finally{s()}}};return{P(o){n=o,r=J(e,o,t,(()=>H(o[i],t)),((e,n)=>{if(n){const e=o.style,t=e[s];e[s]="hidden",l((()=>{e[s]=t}))}o[i]+=H(e,t)}))},A(){r&&r.A()},X(e){a((()=>e))},Y(t){t+=e.M(),a((()=>t))},D(t,{align:n,smooth:r}={}){if(t=c(t,0,e.C()-1),"nearest"===n){const r=e.R(t),o=e.M();if(r<o)n="start";else{if(!(r+e.k(t)>o+e._()))return;n="end"}}a((()=>e.H()+("end"===n?e.R(t)+e.k(t)-e._():"center"===n?e.R(t)+(e.k(t)-e._())/2:e.R(t))),r)},L:()=>{r&&r.L()&&o&&o()}}},W=(e,t)=>{let n;return{P(r){const o=t?"scrollX":"scrollY",i=b(r),s=y(i),l=i.body,c=(e,t,n,r=0)=>{const o=n?"offsetLeft":"offsetTop",i=r+(n&&z()?s.innerWidth-e[o]-e.offsetWidth:e[o]),l=e.offsetParent;return e!==t&&l?c(l,t,n,i):i};n=J(e,s,t,(()=>H(s[o],t)-c(r,l,t)),(e=>{s.scrollBy(t?H(e,t):0,t?0:e)}))},A(){n&&n.A()},L:()=>{n&&n.L()}}},q="current",B=(e,t)=>{if(s(e))for(const n of e)B(n,t);else a(e)&&"boolean"!=typeof e&&t.push(e)},$=(e,t)=>{const n=e.key;return a(n)?n:"_"+t},A=e=>{const n=t.useRef();return n[q]||(n[q]=e())},L=e=>{const n=t.useRef(e);return E((()=>{n[q]=e}),[e]),n},P=e=>{let t;return{P(n){(t||(t=new(y(b(n)).ResizeObserver)(e))).observe(n)},N(e){t.unobserve(e)},A(){t&&t.disconnect()}}},X=(e,t)=>{let n;const r=t?"width":"height",o=new WeakMap,i=P((t=>{const i=[];for(const{target:s,contentRect:l}of t)if(s.offsetParent)if(s===n)e.B(2,l[r]);else{const e=o.get(s);a(e)&&i.push([e,l[r]])}i.length&&e.B(1,i)}));return{U(e){i.P(n=e)},V:(e,t)=>(o.set(e,t),i.P(e),()=>{o.delete(e),i.N(e)}),A:i.A}},Y=(e,t)=>{const n=t?"width":"height",r=t?"innerWidth":"innerHeight",o=new WeakMap,i=P((t=>{const r=[];for(const{target:e,contentRect:i}of t){if(!e.offsetParent)continue;const t=o.get(e);a(t)&&r.push([t,i[n]])}r.length&&e.B(1,r)}));let s;return{U(t){const n=y(b(t)),o=()=>{e.B(2,n[r])};n.addEventListener("resize",o),o(),s=()=>{n.removeEventListener("resize",o)}},V:(e,t)=>(o.set(e,t),i.P(e),()=>{o.delete(e),i.N(e)}),A(){s&&s(),i.A()}}},D=(e,t)=>{let n;const r="height",i="width",s=new WeakMap,l=new Set,c=new Set,a=new Map,u=(e,t)=>`${e}-${t}`,h=P((h=>{const f=new Set,d=new Set;for(const{target:o,contentRect:l}of h)if(o.offsetParent)if(o===n)e.B(2,l[r]),t.B(2,l[i]);else{const e=s.get(o);if(e){const[t,n]=e,o=u(t,n),s=a.get(o),c=[l[r],l[i]];let h,_;s?(s[0]!==c[0]&&(h=!0),s[1]!==c[1]&&(_=!0)):h=_=!0,h&&f.add(t),_&&d.add(n),(h||_)&&a.set(o,c)}}if(f.size){const t=[];f.forEach((e=>{let n=0;c.forEach((t=>{const r=a.get(u(e,t));r&&(n=o(n,r[0]))})),n&&t.push([e,n])})),e.B(1,t)}if(d.size){const e=[];d.forEach((t=>{let n=0;l.forEach((e=>{const r=a.get(u(e,t));r&&(n=o(n,r[1]))})),n&&e.push([t,n])})),t.B(1,e)}}));return{U(e){h.P(n=e)},V:(e,t,n)=>(s.set(e,[t,n]),l.add(t),c.add(n),h.P(e),()=>{s.delete(e),h.N(e)}),A:h.A}},N=t.memo((({j:n,F:r,G:o,K:i,Z:s,ee:l,te:c,ne:a})=>{const u=t.useRef(null);E((()=>r(u[q],o)),[o]);const h=t.useMemo((()=>{const e={margin:0,padding:0,position:s&&a?void 0:"absolute",[c?"height":"width"]:"100%",[c?"top":"left"]:0,[c?z()?"right":"left":"top"]:i,visibility:!s||a?"visible":"hidden"};return c&&(e.display="flex"),e}),[i,s,a]);return"string"==typeof l?e.jsx(l,{ref:u,style:h,children:n}):e.jsx(l,{ref:u,style:h,index:o,children:n})})),U=e=>t.useReducer(e.p,void 0,e.p)[1],V=(e,n)=>t.useMemo((()=>{if("function"==typeof e)return[e,n||0];const t=(e=>{const t=[];return B(e,t),t})(e);return[e=>t[e],t.length]}),[e,n]),j=t.forwardRef((({children:r,count:i,overscan:s=4,itemSize:l,shift:c,horizontal:a,reverse:h,cache:f,startMargin:d,endMargin:_,ssrCount:g,as:p="div",item:v="div",scrollRef:m,onScroll:w,onScrollEnd:S,onRangeChange:b},y)=>{const[z,x]=V(r,i),I=t.useRef(null),M=t.useRef(!!g),H=L(w),J=L(S),[W,B,P,Y]=A((()=>{const e=!!a,t=T(x,l,g,f,!l,d,_);return[t,X(t,e),O(t,e),e]}));x!==W.C()&&W.B(3,[x,c]);const D=U(W),[j,F]=W.m(),G=W.T(),K=W.O(),Q=W.h(),Z=(e=>o(e.h(),e._()-e.H()-e.J()))(W),ee=h?o(0,Z-Q):0,te=[];E((()=>{M[q]=!1;const e=W.q(3,(e=>{e?n.flushSync(D):D()})),t=W.q(4,(()=>{H[q]&&H[q](W.M())})),r=W.q(8,(()=>{J[q]&&J[q]()})),o=e=>{B.U(e),P.P(e)};return m?u((()=>o(m[q]))):o(I[q].parentElement),()=>{e(),t(),r(),B.A(),P.A()}}),[]),E((()=>{P.L()}),[K]),t.useEffect((()=>{b&&b(j,F)}),[j,F]),t.useImperativeHandle(y,(()=>({get cache(){return W.v()},get scrollOffset(){return W.M()},get scrollSize(){return R(W)},get viewportSize(){return W._()},scrollToIndex:P.D,scrollTo:P.X,scrollBy:P.Y})),[]);for(let t=k(j,s,G),n=C(F,s,G,x);t<=n;t++){const n=z(t);te.push(e.jsx(N,{F:B.V,G:t,K:W.R(t)+ee,Z:W.S(t),ee:v,j:n,te:Y,ne:M[q]},$(n,t)))}return e.jsx(p,{ref:I,style:{overflowAnchor:"none",flex:"none",position:"relative",visibility:"hidden",width:Y?Q:"100%",height:Y?"100%":Q,[Y?"minWidth":"minHeight"]:Z,pointerEvents:0!==G?"none":"auto"},children:te})})),F=t.forwardRef((({children:t,count:n,overscan:r,itemSize:o,shift:i,horizontal:s,reverse:l,cache:c,ssrCount:a,item:u,onScroll:h,onScrollEnd:f,onRangeChange:d,style:_,...g},p)=>e.jsx("div",{...g,style:{display:s?"inline-block":"block",[s?"overflowX":"overflowY"]:"auto",contain:"strict",width:"100%",height:"100%",..._},children:e.jsx(j,{ref:p,count:n,overscan:r,itemSize:o,shift:i,horizontal:s,reverse:l,cache:c,ssrCount:a,item:u,onScroll:h,onScrollEnd:f,onRangeChange:d,children:t})}))),G=t.forwardRef((({children:r,count:o,overscan:i=4,itemSize:s,shift:l,horizontal:c,cache:a,ssrCount:u,as:h="div",item:f="div",onScrollEnd:d,onRangeChange:_},g)=>{const[p,v]=V(r,o),m=t.useRef(null),w=L(d),S=t.useRef(!!u),[b,y,z,x]=A((()=>{const e=!!c,t=T(v,s,u,a,!s);return[t,Y(t,e),W(t,e),e]}));v!==b.C()&&b.B(3,[v,l]);const I=U(b),[R,M]=b.m(),H=b.T(),J=b.O(),O=b.h(),B=[];E((()=>{S[q]=!1;const e=b.q(3,(e=>{e?n.flushSync(I):I()})),t=b.q(8,(()=>{w[q]&&w[q]()})),r=m[q];return y.U(r),z.P(r),()=>{e(),t(),y.A(),z.A()}}),[]),E((()=>{z.L()}),[J]),t.useEffect((()=>{_&&_(R,M)}),[R,M]),t.useImperativeHandle(g,(()=>({get cache(){return b.v()}})),[]);for(let t=k(R,i,H),n=C(M,i,H,v);t<=n;t++){const n=p(t);B.push(e.jsx(N,{F:y.V,G:t,K:b.R(t),Z:b.S(t),ee:f,j:n,te:x,ne:S[q]},$(n,t)))}return e.jsx(h,{ref:m,style:{flex:"none",position:"relative",visibility:"hidden",width:x?O:"100%",height:x?"100%":O,pointerEvents:0!==H?"none":"auto"},children:B})})),K=(e,t)=>`${e}-${t}`,Q=t.memo((({j:n,F:r,re:o,oe:i,ie:s,se:l,le:c,ce:a,Z:u,ee:h})=>{const f=t.useRef(null);return E((()=>r.V(f[q],o,i)),[i,o]),e.jsx(h,{ref:f,style:t.useMemo((()=>({display:"grid",margin:0,padding:0,position:"absolute",top:s,[z()?"right":"left"]:l,visibility:u?"hidden":"visible",minHeight:c,minWidth:a})),[s,l,a,c,u]),children:n})})),Z=t.forwardRef((({children:r,row:o,col:i,cellHeight:s=40,cellWidth:l=100,overscan:c=2,initialRowCount:a,initialColCount:u,item:h="div",style:f,...d},_)=>{const[g,p,v,m,w]=A((()=>{const e=T(o,s,a),t=T(i,l,u);return[e,t,D(e,t),O(e,!1),O(t,!0)]}));o!==g.C()&&g.B(3,[o]),i!==p.C()&&p.B(3,[i]);const S=U(g),b=U(p),[y,z]=g.m(),[x,I]=p.m(),M=g.T(),H=p.T(),J=g.O(),W=p.O(),B=R(g),$=R(p),L=t.useRef(null);E((()=>{const e=L[q],t=g.q(3,(e=>{e?n.flushSync(S):S()})),r=p.q(3,(e=>{e?n.flushSync(b):b()}));return v.U(e),m.P(e),w.P(e),()=>{t(),r(),v.A(),m.A(),w.A()}}),[]),E((()=>{m.L()}),[J]),E((()=>{w.L()}),[W]),t.useImperativeHandle(_,(()=>({get scrollOffset(){return[p.M(),g.M()]},get scrollSize(){return[R(p),R(g)]},get viewportSize(){return[p._(),g._()]},scrollToIndex(e,t){w.D(e),m.D(t)},scrollTo(e,t){w.X(e),m.X(t)},scrollBy(e,t){w.Y(e),m.Y(t)}})),[]);const P=t.useMemo((()=>{const e=new Map;return(t,n)=>{let o=e.get(K(t,n));return o||e.set(K(t,n),o=r({rowIndex:t,colIndex:n})),o}}),[r]),X=k(y,c,M),Y=C(z,c,M,o),N=k(x,c,H),V=C(I,c,H,i),j=[];for(let t=X;t<=Y;t++)for(let n=N;n<=V;n++)j.push(e.jsx(Q,{F:v,re:t,oe:n,ie:g.R(t),se:p.R(n),le:g.k(t),ce:p.k(n),Z:g.S(t)||p.S(n),ee:h,j:P(t,n)},K(t,n)));return e.jsx("div",{ref:L,...d,style:{overflow:"auto",contain:"strict",width:"100%",height:"100%",...f},children:e.jsx("div",{style:{overflowAnchor:"none",flex:"none",position:"relative",visibility:"hidden",width:$,height:B,pointerEvents:0!==M||0!==H?"none":"auto"},children:j})})}));exports.VList=F,exports.Virtualizer=j,exports.WindowVirtualizer=G,exports.experimental_VGrid=Z;
3
3
  //# sourceMappingURL=index.js.map