virtua 0.15.3 → 0.15.4

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 o=Math.min,r=Math.max,i=Math.abs,s=Date.now,l=Object.values,c=Array.isArray,a=setTimeout,u=(e,t,n)=>o(n,r(t,e)),h=e=>null!=e,d=(e,t)=>{let n;const o=()=>{h(n)&&clearTimeout(n)},r=()=>{o(),n=a((()=>{n=null,e()}),t)};return r.t=o,r},f=e=>{let t,n;return(...o)=>(t||(t=!0,n=e(...o)),n)},_=e=>getComputedStyle(e),w=e=>e?parseFloat(e):0,g=-1,p=(e,t)=>{const n=e.o[t];return n===g?e.i:n},m=(e,t)=>{if(!e.l)return 0;if(e.u>=t)return e.h[t];let n=e.u,o=e.h[n];for(;n<t;)o+=p(e,n),e.h[++n]=o;return e.u=t,o},v=(e,t,n)=>{let o=m(e,n);for(;n>=0&&n<e.l;)if(o<=t){const r=p(e,n);if(o+r>t)break;o+=r,n++}else o-=p(e,--n);return u(n,0,e.l-1)},b=(e,t,n,r)=>{const i=v(e,t,o(n,e.l-1));return[i,v(e,t+r,i)]},S=(e,t,n)=>{const o=n?"unshift":"push";for(let n=e.l;n<t;n++)e.o[o](g),e.h.push(0===n?0:g);e.l=t},I=(e,t,n)=>{const o=t-e.l,r=o<0;let i;return r?(i=(n?e.o.splice(0,-o):e.o.splice(o)).reduce(((t,n)=>t+(n===g?e.i:n)),0),e.h.splice(o)):(i=e.i*o,S(e,e.l+o,n)),e.u=n?0:u(t-1,0,e.u),e.l=t,[i,r]},z="undefined"!=typeof window,y=()=>document.documentElement,x=/*#__PURE__*/f((e=>{const t="scrollLeft",n=e[t];e[t]=1;const o=e[t]<1;return e[t]=n,o})),R=/*#__PURE__*/f((()=>!!z&&"rtl"===_(y()).direction)),k=/*#__PURE__*/f((()=>/iP(hone|od|ad)/.test(navigator.userAgent))),O=/*#__PURE__*/f((()=>"scrollBehavior"in y().style)),C=(e,t,n)=>t.reduce(((t,[o,r])=>{const i=r-p(e,o);return(!n||i>0)&&(t+=i),t}),0),T=(e,t=40,n=0,s=((e,t)=>{const n={i:t,l:0,u:0,o:[],h:[]};return S(n,e),n})(e,t),l,c)=>{let a=t*r(n-1,0),h=0,d=0,f=0,_=0,w=0,v=0,z=0,y=!1,x=null,R=!1,O=[0,n];const T=new Set,M=()=>(e=>e.l?m(e,e.l-1)+p(e,e.l-1):0)(s),H=()=>M()-a+d,J=e=>u(e,0,H()),W=e=>{k()&&0!==z?v+=e:(w+=e,_++)},B=e=>{const t=z;return z=e,z!==t};return{_:()=>JSON.parse(JSON.stringify(s)),g:()=>x?[o(O[0],x[0]),r(O[1],x[1])]:O=b(s,f+v,O[0],a),p:e=>s.o[e]===g,m:()=>!!x&&s.o.slice(r(0,x[0]-1),o(s.l-1,x[1]+1)+1).includes(g),v(e){const t=m(s,e)-v;return l?t+r(0,a-M()):t},S:e=>p(s,e),I:()=>s.l,R:()=>f,k:H,O:()=>z,C:()=>a,T:()=>h,M:()=>r(M(),a),H:()=>_,J(){const e=w;return w=0,e},W(e,t){const n=[e,t];return T.add(n),()=>{T.delete(n)}},B(e,t){let n,r,l=0;switch(e){case 1:{const e=t.filter((([e,t])=>s.o[e]!==t));if(!e.length)break;let n=0;if(0===f);else if(f>H()-1.5)n=C(s,e,!0);else{const[t]=O;n=C(s,e.filter((([e])=>e<t)))}n&&W(n);let i=!1;e.forEach((([e,t])=>{((e,t,n)=>{const r=e.o[t]===g;return e.o[t]=n,e.u=o(t,e.u),r})(s,e,t)&&(i=!0)})),c&&i&&!f&&(e=>{const t=e.o.filter((e=>e!==g)),n=t[0];e.i=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)})(s),l+=2,R=r=!0;break}case 2:{const e=t[0]+t[1]+t[2];a!==e&&(a=e,h=t[1],d=t[2],l=2);break}case 3:if(t[1]){const e=H()-f,[n,r]=I(s,t[0],!0),i=r?-o(n,e):n;W(i),k()||(f=J(f+i)),l=1}else I(s,t[0]);break;case 4:{if(f===t)break;const e=t-f,n=R;R=!1,0!==z&&n||y||B(e<0?2:1),r=i(e)>a,l+=4,f=J(t),l+=1;break}case 5:B(0)&&(n=!0,l=1),y=!1,x=null;break;case 6:y=!0;break;case 7:x=b(s,t,O[0],a),l=1}l&&(n&&v&&(R=!0,w+=v,v=0,_++),T.forEach((([e,t])=>{l&e&&t(r)})))}}},M=z?t.useLayoutEffect:t.useEffect,H=(e,t,n)=>(()=>{let o=s()-50;return(...r)=>{const i=s();o+50<i&&(o=i,(o=>{if(0!==e.O()&&!o.ctrlKey&&(t?o.deltaX:o.deltaY)){const t=e.R();t>0&&t<e.k()&&n()}})(...r))}})(),J=(e,t,n,o)=>x(e)||o?-n:t.k()-n,W=(e,t)=>{let n,o,r=!1;const i=t?"scrollLeft":"scrollTop",s=(o,r)=>t&&R()?J(n,e,o,r):o,l=async(r,l)=>{if(!n)return;o&&o();const c=()=>u(r(),0,e.k()),h=()=>{let t;return[new Promise(((e,n)=>{t=e,a(o=n,150)})),e.W(2,(()=>{t&&t()}))]};if(l&&O()){for(;e.B(7,c()),e.m();){const[e,t]=h();try{await e}catch(e){return}finally{t()}}n.scrollTo({[t?"left":"top"]:s(c()),behavior:"smooth"})}else for(;;){const[t,o]=h();try{n[i]=s(c()),e.B(6),await t}catch(e){return}finally{o()}}};return{L(o){n=o;let l=!1,c=!1;const a=()=>{e.B(4,s(o[i]))},u=d((()=>{l?u():(c=!1,a(),e.B(5))}),150),h=()=>{c&&(r=!0),a(),u()},f=H(e,t,u),_=()=>{l=!0,c=r=!1},w=()=>{l=!1,k()&&(c=!0)};return o.addEventListener("scroll",h),o.addEventListener("wheel",f,{passive:!0}),o.addEventListener("touchstart",_,{passive:!0}),o.addEventListener("touchend",w,{passive:!0}),()=>{o.removeEventListener("scroll",h),o.removeEventListener("wheel",f),o.removeEventListener("touchstart",_),o.removeEventListener("touchend",w),u.t()}},$(e){l((()=>e))},q(t){t+=e.R(),l((()=>t))},P(t,{align:n,smooth:o}={}){t=u(t,0,e.I()-1),l("end"===n?()=>e.T()+e.v(t)+e.S(t)-e.C():"center"===n?()=>e.T()+e.v(t)+(e.S(t)-e.C())/2:()=>e.T()+e.v(t),o)},j:e=>{if(n){if(r){const e=n.style.overflow;n.style.overflow="hidden",r=!1,a((()=>{n.style.overflow=e}))}n[i]+=s(e,!0)}}}},B=(e,t)=>{let n;const o=t?"scrollX":"scrollY",r=t?"offsetLeft":"offsetTop",i=(o,r)=>t&&R()?J(n,e,o,r):o;return{L(s){n=s;let l=!1;const c=(e,n)=>{const o=n+(t&&R()?window.innerWidth-e[r]-e.offsetWidth:e[r]),i=e.offsetParent;return e!==document.body&&i?c(i,o):o},a=()=>{l&&e.B(4,i(window[o])-c(s,0))},u=d((()=>{a(),e.B(5)}),150),h=()=>{a(),u()},f=H(e,t,u),_=new IntersectionObserver((([e])=>{l=e.isIntersecting}));return _.observe(s),window.addEventListener("scroll",h),window.addEventListener("wheel",f,{passive:!0}),()=>{_.disconnect(),window.removeEventListener("scroll",h),window.removeEventListener("wheel",f),u.t()}},j:e=>{window.scrollBy(t?i(e,!0):0,t?0:e)}}},L="current",$={},q=(e,t)=>{if(c(e))for(const n of e)q(n,t);else h(e)&&"boolean"!=typeof e&&t.push(e)},P=e=>{const t=[];return q(e,t),t},j=(e,t,n)=>r(e-(1===n?1:r(1,t)),0),D=(e,t,n,i)=>o(e+(2===n?1:r(1,t)),i-1),N=e=>{const n=t.useRef();return n[L]||(n[L]=e())},U=e=>{const n=t.useRef(e);return M((()=>{n[L]=e}),[e]),n},V={box:"border-box"},A=(e,t)=>{let n;const o=t?"width":"height",r=new WeakMap,i=f((()=>new ResizeObserver((i=>{const s=[];for(const{target:l,contentRect:c}of i)if(l.offsetParent)if(l===n)e.B(2,[c[o],c[t?"left":"top"],w(_(n)[t?"paddingRight":"paddingBottom"])]);else{const e=r.get(l);h(e)&&s.push([e,c[o]])}s.length&&e.B(1,s)}))));return{D(e){n=e;const t=i();return t.observe(e,V),()=>{t.disconnect()}},N(e,t){const n=i();return r.set(e,t),n.observe(e),()=>{r.delete(e),n.unobserve(e)}}}},E=(e,t)=>{const n=t?"width":"height",o=t?"innerWidth":"innerHeight",r=new WeakMap,i=f((()=>new ResizeObserver((t=>{const o=[];for(const{target:e,contentRect:i}of t){if(!e.offsetParent)continue;const t=r.get(e);h(t)&&o.push([t,i[n]])}o.length&&e.B(1,o)}))));return{D(){const t=()=>{e.B(2,[window[o],0,0])};return window.addEventListener("resize",t),t(),()=>{window.removeEventListener("resize",t),i().disconnect()}},N(e,t){const n=i();return r.set(e,t),n.observe(e),()=>{r.delete(e),n.unobserve(e)}}}},F=(e,t)=>{let n;const o="height",i="width",s=new WeakMap,l=new Set,c=new Set,a=new Map,u=(e,t)=>`${e}-${t}`,h=f((()=>new ResizeObserver((h=>{const d=new Set,f=new Set;for(const{target:r,contentRect:l}of h)if(r.offsetParent)if(r===n){const r=_(n);e.B(2,[l[o],l.top,w(r.paddingBottom)]),t.B(2,[l[i],l.left,w(r.paddingRight)])}else{const e=s.get(r);if(e){const[t,n]=e,r=u(t,n),s=a.get(r),c=[l[o],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(r,c)}}if(d.size){const t=[];d.forEach((e=>{let n=0;c.forEach((t=>{const o=a.get(u(e,t));o&&(n=r(n,o[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 o=a.get(u(e,t));o&&(n=r(n,o[1]))})),n&&e.push([t,n])})),t.B(1,e)}}))));return{D(e){n=e;const t=h();return t.observe(e,V),()=>{t.disconnect()}},N(e,t,n){const o=h();return s.set(e,[t,n]),l.add(t),c.add(n),o.observe(e),()=>{s.delete(e),o.unobserve(e)}}}},X=t.forwardRef((({children:n,attrs:o,width:r,height:i,scrolling:s},l)=>e.jsx("div",{ref:l,...o,children:e.jsx("div",{style:t.useMemo((()=>({position:"relative",visibility:"hidden",width:null!=r?r:"100%",height:null!=i?i:"100%",pointerEvents:s?"none":"auto"})),[r,i,s]),children:n})}))),Y=t.memo((({U:n,V:o,A:r,F:i,X:s,Y:l,G:c})=>{const a=t.useRef(null);return M((()=>o.N(a[L],r)),[r]),e.jsx(l,{ref:a,style:t.useMemo((()=>{const e={margin:0,padding:0,position:"absolute",[c?"height":"width"]:"100%",[c?"top":"left"]:0,[c?R()?"right":"left":"top"]:i,visibility:s?"hidden":"visible"};return c&&(e.display="flex"),e}),[i,s]),children:n})})),G=()=>[],K=()=>t.useReducer(G,void 0,G)[1],Q=t.forwardRef((({children:o,overscan:r=4,initialItemSize:i,initialItemCount:s,shift:c,horizontal:a,reverse:u,cache:d,components:{Root:f=X,Item:_="div"}=$,onScroll:w,onScrollStop:g,onRangeChange:p,...m},v)=>{const b=t.useMemo((()=>P(o)),[o]),S=b.length,I=U(w),z=U(g),[y,x,R,k]=N((()=>{const e=!!a,t=T(S,i,s,d,!!u,!i);return[t,A(t,e),W(t,e),e]}));S!==y.I()&&y.B(3,[S,c]);const O=K(),[C,H]=y.g(),J=y.O(),B=y.H(),q=y.M(),V=t.useRef(null),E=0!==J;M((()=>{const e=V[L],t=x.D(e),o=R.L(e),r=y.W(3,(e=>{e?n.flushSync(O):O()})),i=y.W(4,(()=>{I[L]&&I[L](y.R())}));return()=>{t(),o(),r(),i()}}),[]),M((()=>{const e=y.J();e&&R.j(e)}),[B]),t.useEffect((()=>{E||z[L]&&z[L]()}),[E]),t.useEffect((()=>{p&&p(C,H)}),[C,H]),t.useImperativeHandle(v,(()=>({get cache(){return y._()},get scrollOffset(){return y.R()},get scrollSize(){return y.M()},get viewportSize(){return y.C()},scrollToIndex:R.P,scrollTo:R.$,scrollBy:R.q})),[]);const F=j(C,r,J),G=D(H,r,J,S),Q=[];for(let t=F;t<=G;t++){const n=b[t],o=n.key;Q.push(e.jsx(Y,{V:x,A:t,F:y.v(t),X:y.p(t),Y:_,U:n,G:k},h(o)?o:"_"+t))}return e.jsx(f,{ref:V,width:k?q:void 0,height:k?void 0:q,scrolling:E,attrs:t.useMemo((()=>({...m,style:{overflow:"auto",display:k?"inline-block":"block",contain:"strict",width:"100%",height:"100%",...m.style}})),l(m)),children:Q})})),Z=(e,t)=>`${e}-${t}`,ee=t.memo((({U:n,V:o,K:r,Z:i,ee:s,te:l,ne:c,oe:a,X:u,Y:h})=>{const d=t.useRef(null);return M((()=>o.N(d[L],r,i)),[i,r]),e.jsx(h,{ref:d,style:t.useMemo((()=>({display:"grid",margin:0,padding:0,position:"absolute",top:s,[R()?"right":"left"]:l,visibility:u?"hidden":"visible",minHeight:c,minWidth:a})),[s,l,a,c,u]),children:n})})),te=t.forwardRef((({children:o,row:r,col:i,cellHeight:s=40,cellWidth:c=100,overscan:a=2,initialRowCount:u,initialColCount:h,components:{Root:d=X,Cell:f="div"}=$,..._},w)=>{const[g,p,m,v,b]=N((()=>{const e=T(r,s,u),t=T(i,c,h);return[e,t,F(e,t),W(e,!1),W(t,!0)]}));r!==g.I()&&g.B(3,[r]),i!==p.I()&&p.B(3,[i]);const S=K(),[I,z]=g.g(),[y,x]=p.g(),R=g.O(),k=p.O(),O=g.H(),C=p.H(),H=g.M(),J=p.M(),B=t.useRef(null),q=0!==R,P=0!==k;M((()=>{const e=B[L],t=m.D(e),o=v.L(e),r=b.L(e),i=e=>{e?n.flushSync(S):S()},s=g.W(3,i),l=p.W(3,i);return()=>{t(),o(),r(),s(),l()}}),[]),M((()=>{const e=g.J();e&&v.j(e)}),[O]),M((()=>{const e=p.J();e&&b.j(e)}),[C]),t.useImperativeHandle(w,(()=>({get scrollOffset(){return[p.R(),g.R()]},get scrollSize(){return[p.M(),g.M()]},get viewportSize(){return[p.C(),g.C()]},scrollToIndex(e,t){b.P(e),v.P(t)},scrollTo(e,t){b.$(e),v.$(t)},scrollBy(e,t){b.q(e),v.q(t)}})),[]);const U=t.useMemo((()=>{const e=new Map;return(t,n)=>{let r=e.get(Z(t,n));return r||e.set(Z(t,n),r=o({rowIndex:t,colIndex:n})),r}}),[o]),V=j(I,a,R),A=D(z,a,R,r),E=j(y,a,k),Y=D(x,a,k,i),G=[];for(let t=V;t<=A;t++)for(let n=E;n<=Y;n++)G.push(e.jsx(ee,{V:m,K:t,Z:n,ee:g.v(t),te:p.v(n),ne:g.S(t),oe:p.S(n),X:g.p(t)||p.p(n),Y:f,U:U(t,n)},Z(t,n)));return e.jsx(d,{ref:B,width:J,height:H,scrolling:q||P,attrs:t.useMemo((()=>({..._,style:{overflow:"auto",contain:"strict",width:"100%",height:"100%",..._.style}})),l(_)),children:G})})),ne=t.forwardRef((({children:o,overscan:r=4,initialItemSize:i,initialItemCount:s,horizontal:c,cache:a,components:{Root:u=X,Item:d="div"}=$,onScrollStop:f,onRangeChange:_,...w},g)=>{const p=t.useMemo((()=>P(o)),[o]),m=p.length,v=U(f),[b,S,I,z]=N((()=>{const e=!!c,t=T(m,i,s,a,!1,!i);return[t,E(t,e),B(t,e),e]}));m!==b.I()&&b.B(3,[m]);const y=K(),[x,R]=b.g(),k=b.O(),O=b.H(),C=b.M(),H=t.useRef(null),J=0!==k;M((()=>{const e=H[L],t=S.D(e),o=I.L(e);return b.W(3,(e=>{e?n.flushSync(y):y()})),()=>{t(),o()}}),[]),M((()=>{const e=b.J();e&&I.j(e)}),[O]),t.useEffect((()=>{J||v[L]&&v[L]()}),[J]),t.useEffect((()=>{_&&_(x,R)}),[x,R]),t.useImperativeHandle(g,(()=>({get cache(){return b._()}})),[]);const W=j(x,r,k),q=D(R,r,k,m),V=[];for(let t=W;t<=q;t++){const n=p[t],o=n.key;V.push(e.jsx(Y,{V:S,A:t,F:b.v(t),X:b.p(t),Y:d,U:n,G:z},h(o)?o:"_"+t))}return e.jsx(u,{ref:H,width:z?C:void 0,height:z?void 0:C,scrolling:J,attrs:t.useMemo((()=>({...w,style:{display:z?"inline-block":"block",width:z?"auto":"100%",height:z?"100%":"auto",...w.style}})),l(w)),children:V})}));exports.VGrid=te,exports.VList=Q,exports.WVList=ne;
2
+ var e=require("react/jsx-runtime"),t=require("react"),n=require("react-dom");const o=Math.min,r=Math.max,i=Math.abs,s=Date.now,l=Object.values,c=Array.isArray,a=setTimeout,u=(e,t,n)=>o(n,r(t,e)),h=e=>null!=e,d=(e,t)=>{let n;const o=()=>{h(n)&&clearTimeout(n)},r=()=>{o(),n=a((()=>{n=null,e()}),t)};return r.t=o,r},f=e=>{let t,n;return(...o)=>(t||(t=!0,n=e(...o)),n)},_=e=>getComputedStyle(e),w=e=>e?parseFloat(e):0,g=-1,p=(e,t)=>{const n=e.o[t];return n===g?e.i:n},m=(e,t)=>{if(!e.l)return 0;if(e.u>=t)return e.h[t];let n=e.u,o=e.h[n];for(;n<t;)o+=p(e,n),e.h[++n]=o;return e.u=t,o},v=(e,t,n)=>{let o=m(e,n);for(;n>=0&&n<e.l;)if(o<=t){const r=p(e,n);if(o+r>t)break;o+=r,n++}else o-=p(e,--n);return u(n,0,e.l-1)},b=(e,t,n,r)=>{const i=v(e,t,o(n,e.l-1));return[i,v(e,t+r,i)]},S=(e,t,n)=>{const o=n?"unshift":"push";for(let n=e.l;n<t;n++)e.o[o](g),e.h.push(0===n?0:g);e.l=t},I=(e,t,n)=>{const o=t-e.l,r=o<0;let i;return r?(i=(n?e.o.splice(0,-o):e.o.splice(o)).reduce(((t,n)=>t+(n===g?e.i:n)),0),e.h.splice(o)):(i=e.i*o,S(e,e.l+o,n)),e.u=n?0:u(t-1,0,e.u),e.l=t,[i,r]},z="undefined"!=typeof window,y=()=>document.documentElement,x=/*#__PURE__*/f((e=>{const t="scrollLeft",n=e[t];e[t]=1;const o=e[t]<1;return e[t]=n,o})),R=/*#__PURE__*/f((()=>!!z&&"rtl"===_(y()).direction)),k=/*#__PURE__*/f((()=>/iP(hone|od|ad)/.test(navigator.userAgent))),O=/*#__PURE__*/f((()=>"scrollBehavior"in y().style)),C=(e,t,n)=>t.reduce(((t,[o,r])=>{const i=r-p(e,o);return(!n||i>0)&&(t+=i),t}),0),T=(e,t=40,n=0,s=((e,t)=>{const n={i:t,l:0,u:0,o:[],h:[]};return S(n,e),n})(e,t),l,c)=>{let a=t*r(n-1,0),h=0,d=0,f=0,_=0,w=0,v=0,z=0,y=!1,x=null,R=!1,O=[0,n];const T=new Set,M=()=>(e=>e.l?m(e,e.l-1)+p(e,e.l-1):0)(s),H=()=>M()-a+d,J=e=>u(e,0,H()),W=e=>{k()&&0!==z?v+=e:(w+=e,_++)},B=e=>{const t=z;return z=e,z!==t};return{_:()=>JSON.parse(JSON.stringify(s)),g:()=>x?[o(O[0],x[0]),r(O[1],x[1])]:O=b(s,f+v,O[0],a),p:e=>s.o[e]===g,m:()=>!!x&&s.o.slice(r(0,x[0]-1),o(s.l-1,x[1]+1)+1).includes(g),v(e){const t=m(s,e)-v;return l?t+r(0,a-M()):t},S:e=>p(s,e),I:()=>s.l,R:()=>f,k:H,O:()=>z,C:()=>a,T:()=>h,M:()=>r(M(),a),H:()=>_,J(){const e=w;return w=0,e},W(e,t){const n=[e,t];return T.add(n),()=>{T.delete(n)}},B(e,t){let n,r,l=0;switch(e){case 1:{const e=t.filter((([e,t])=>s.o[e]!==t));if(!e.length)break;let n=0;if(0===f);else if(f>H()-1.5)n=C(s,e,!0);else{const[t]=O;n=C(s,e.filter((([e])=>e<t)))}n&&W(n);let i=!1;e.forEach((([e,t])=>{((e,t,n)=>{const r=e.o[t]===g;return e.o[t]=n,e.u=o(t,e.u),r})(s,e,t)&&(i=!0)})),c&&i&&!f&&(e=>{const t=e.o.filter((e=>e!==g)),n=t[0];e.i=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)})(s),l+=2,R=r=!0;break}case 2:{const e=t[0]+t[1]+t[2];a!==e&&(a=e,h=t[1],d=t[2],l=2);break}case 3:if(t[1]){const e=H()-f,[n,r]=I(s,t[0],!0),i=r?-o(n,e):n;W(i),k()||(f=J(f+i)),l=1}else I(s,t[0]);break;case 4:{if(f===t)break;const e=t-f,n=R;R=!1,0!==z&&n||y||B(e<0?2:1),r=i(e)>a,l+=4,f=J(t),l+=1;break}case 5:B(0)&&(n=!0,l=1),y=!1,x=null;break;case 6:y=!0;break;case 7:x=b(s,t,O[0],a),l=1}l&&(n&&v&&(R=!0,w+=v,v=0,_++),T.forEach((([e,t])=>{l&e&&t(r)})))}}},M=z?t.useLayoutEffect:t.useEffect,H=(e,t,n)=>(()=>{let o=s()-50;return(...r)=>{const i=s();o+50<i&&(o=i,(o=>{if(0!==e.O()&&!o.ctrlKey&&(t?o.deltaX:o.deltaY)){const t=e.R();t>0&&t<e.k()&&n()}})(...r))}})(),J=(e,t,n,o)=>x(e)||o?-n:t.k()-n,W=(e,t)=>{let n,o,r=!1;const i=t?"scrollLeft":"scrollTop",s=(o,r)=>t&&R()?J(n,e,o,r):o,l=async(r,l)=>{if(!n)return;o&&o();const c=()=>u(r(),0,e.k()),h=()=>{let t;return[new Promise(((e,n)=>{t=e,a(o=n,150)})),e.W(2,(()=>{t&&t()}))]};if(l&&O()){for(;e.B(7,c()),e.m();){const[e,t]=h();try{await e}catch(e){return}finally{t()}}n.scrollTo({[t?"left":"top"]:s(c()),behavior:"smooth"})}else for(;;){const[t,o]=h();try{n[i]=s(c()),e.B(6),await t}catch(e){return}finally{o()}}};return{L(o){n=o;let l=!1,c=!1;const a=d((()=>{l?a():(c=!1,e.B(5))}),150),u=()=>{c&&(r=!0),e.B(4,s(o[i])),a()},h=H(e,t,a),f=()=>{l=!0,c=r=!1},_=()=>{l=!1,k()&&(c=!0)};return o.addEventListener("scroll",u),o.addEventListener("wheel",h,{passive:!0}),o.addEventListener("touchstart",f,{passive:!0}),o.addEventListener("touchend",_,{passive:!0}),()=>{o.removeEventListener("scroll",u),o.removeEventListener("wheel",h),o.removeEventListener("touchstart",f),o.removeEventListener("touchend",_),a.t()}},$(e){l((()=>e))},q(t){t+=e.R(),l((()=>t))},P(t,{align:n,smooth:o}={}){t=u(t,0,e.I()-1),l("end"===n?()=>e.T()+e.v(t)+e.S(t)-e.C():"center"===n?()=>e.T()+e.v(t)+(e.S(t)-e.C())/2:()=>e.T()+e.v(t),o)},j:e=>{if(n){if(r){const e=n.style.overflow;n.style.overflow="hidden",r=!1,a((()=>{n.style.overflow=e}))}n[i]+=s(e,!0)}}}},B=(e,t)=>{let n;const o=t?"scrollX":"scrollY",r=t?"offsetLeft":"offsetTop",i=(o,r)=>t&&R()?J(n,e,o,r):o;return{L(s){n=s;let l=!1;const c=(e,n)=>{const o=n+(t&&R()?window.innerWidth-e[r]-e.offsetWidth:e[r]),i=e.offsetParent;return e!==document.body&&i?c(i,o):o},a=d((()=>{e.B(5)}),150),u=()=>{l&&(e.B(4,i(window[o])-c(s,0)),a())},h=H(e,t,a),f=new IntersectionObserver((([e])=>{l=e.isIntersecting}));return f.observe(s),window.addEventListener("scroll",u),window.addEventListener("wheel",h,{passive:!0}),()=>{f.disconnect(),window.removeEventListener("scroll",u),window.removeEventListener("wheel",h),a.t()}},j:e=>{window.scrollBy(t?i(e,!0):0,t?0:e)}}},L="current",$={},q=(e,t)=>{if(c(e))for(const n of e)q(n,t);else h(e)&&"boolean"!=typeof e&&t.push(e)},P=e=>{const t=[];return q(e,t),t},j=(e,t,n)=>r(e-(1===n?1:r(1,t)),0),D=(e,t,n,i)=>o(e+(2===n?1:r(1,t)),i-1),N=e=>{const n=t.useRef();return n[L]||(n[L]=e())},U=e=>{const n=t.useRef(e);return M((()=>{n[L]=e}),[e]),n},V={box:"border-box"},A=(e,t)=>{let n;const o=t?"width":"height",r=new WeakMap,i=f((()=>new ResizeObserver((i=>{const s=[];for(const{target:l,contentRect:c}of i)if(l.offsetParent)if(l===n)e.B(2,[c[o],c[t?"left":"top"],w(_(n)[t?"paddingRight":"paddingBottom"])]);else{const e=r.get(l);h(e)&&s.push([e,c[o]])}s.length&&e.B(1,s)}))));return{D(e){n=e;const t=i();return t.observe(e,V),()=>{t.disconnect()}},N(e,t){const n=i();return r.set(e,t),n.observe(e),()=>{r.delete(e),n.unobserve(e)}}}},E=(e,t)=>{const n=t?"width":"height",o=t?"innerWidth":"innerHeight",r=new WeakMap,i=f((()=>new ResizeObserver((t=>{const o=[];for(const{target:e,contentRect:i}of t){if(!e.offsetParent)continue;const t=r.get(e);h(t)&&o.push([t,i[n]])}o.length&&e.B(1,o)}))));return{D(){const t=()=>{e.B(2,[window[o],0,0])};return window.addEventListener("resize",t),t(),()=>{window.removeEventListener("resize",t),i().disconnect()}},N(e,t){const n=i();return r.set(e,t),n.observe(e),()=>{r.delete(e),n.unobserve(e)}}}},F=(e,t)=>{let n;const o="height",i="width",s=new WeakMap,l=new Set,c=new Set,a=new Map,u=(e,t)=>`${e}-${t}`,h=f((()=>new ResizeObserver((h=>{const d=new Set,f=new Set;for(const{target:r,contentRect:l}of h)if(r.offsetParent)if(r===n){const r=_(n);e.B(2,[l[o],l.top,w(r.paddingBottom)]),t.B(2,[l[i],l.left,w(r.paddingRight)])}else{const e=s.get(r);if(e){const[t,n]=e,r=u(t,n),s=a.get(r),c=[l[o],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(r,c)}}if(d.size){const t=[];d.forEach((e=>{let n=0;c.forEach((t=>{const o=a.get(u(e,t));o&&(n=r(n,o[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 o=a.get(u(e,t));o&&(n=r(n,o[1]))})),n&&e.push([t,n])})),t.B(1,e)}}))));return{D(e){n=e;const t=h();return t.observe(e,V),()=>{t.disconnect()}},N(e,t,n){const o=h();return s.set(e,[t,n]),l.add(t),c.add(n),o.observe(e),()=>{s.delete(e),o.unobserve(e)}}}},X=t.forwardRef((({children:n,attrs:o,width:r,height:i,scrolling:s},l)=>e.jsx("div",{ref:l,...o,children:e.jsx("div",{style:t.useMemo((()=>({position:"relative",visibility:"hidden",width:null!=r?r:"100%",height:null!=i?i:"100%",pointerEvents:s?"none":"auto"})),[r,i,s]),children:n})}))),Y=t.memo((({U:n,V:o,A:r,F:i,X:s,Y:l,G:c})=>{const a=t.useRef(null);return M((()=>o.N(a[L],r)),[r]),e.jsx(l,{ref:a,style:t.useMemo((()=>{const e={margin:0,padding:0,position:"absolute",[c?"height":"width"]:"100%",[c?"top":"left"]:0,[c?R()?"right":"left":"top"]:i,visibility:s?"hidden":"visible"};return c&&(e.display="flex"),e}),[i,s]),children:n})})),G=()=>[],K=()=>t.useReducer(G,void 0,G)[1],Q=t.forwardRef((({children:o,overscan:r=4,initialItemSize:i,initialItemCount:s,shift:c,horizontal:a,reverse:u,cache:d,components:{Root:f=X,Item:_="div"}=$,onScroll:w,onScrollStop:g,onRangeChange:p,...m},v)=>{const b=t.useMemo((()=>P(o)),[o]),S=b.length,I=U(w),z=U(g),[y,x,R,k]=N((()=>{const e=!!a,t=T(S,i,s,d,!!u,!i);return[t,A(t,e),W(t,e),e]}));S!==y.I()&&y.B(3,[S,c]);const O=K(),[C,H]=y.g(),J=y.O(),B=y.H(),q=y.M(),V=t.useRef(null),E=0!==J;M((()=>{const e=V[L],t=x.D(e),o=R.L(e),r=y.W(3,(e=>{e?n.flushSync(O):O()})),i=y.W(4,(()=>{I[L]&&I[L](y.R())}));return()=>{t(),o(),r(),i()}}),[]),M((()=>{const e=y.J();e&&R.j(e)}),[B]),t.useEffect((()=>{E||z[L]&&z[L]()}),[E]),t.useEffect((()=>{p&&p(C,H)}),[C,H]),t.useImperativeHandle(v,(()=>({get cache(){return y._()},get scrollOffset(){return y.R()},get scrollSize(){return y.M()},get viewportSize(){return y.C()},scrollToIndex:R.P,scrollTo:R.$,scrollBy:R.q})),[]);const F=j(C,r,J),G=D(H,r,J,S),Q=[];for(let t=F;t<=G;t++){const n=b[t],o=n.key;Q.push(e.jsx(Y,{V:x,A:t,F:y.v(t),X:y.p(t),Y:_,U:n,G:k},h(o)?o:"_"+t))}return e.jsx(f,{ref:V,width:k?q:void 0,height:k?void 0:q,scrolling:E,attrs:t.useMemo((()=>({...m,style:{overflow:"auto",display:k?"inline-block":"block",contain:"strict",width:"100%",height:"100%",...m.style}})),l(m)),children:Q})})),Z=(e,t)=>`${e}-${t}`,ee=t.memo((({U:n,V:o,K:r,Z:i,ee:s,te:l,ne:c,oe:a,X:u,Y:h})=>{const d=t.useRef(null);return M((()=>o.N(d[L],r,i)),[i,r]),e.jsx(h,{ref:d,style:t.useMemo((()=>({display:"grid",margin:0,padding:0,position:"absolute",top:s,[R()?"right":"left"]:l,visibility:u?"hidden":"visible",minHeight:c,minWidth:a})),[s,l,a,c,u]),children:n})})),te=t.forwardRef((({children:o,row:r,col:i,cellHeight:s=40,cellWidth:c=100,overscan:a=2,initialRowCount:u,initialColCount:h,components:{Root:d=X,Cell:f="div"}=$,..._},w)=>{const[g,p,m,v,b]=N((()=>{const e=T(r,s,u),t=T(i,c,h);return[e,t,F(e,t),W(e,!1),W(t,!0)]}));r!==g.I()&&g.B(3,[r]),i!==p.I()&&p.B(3,[i]);const S=K(),[I,z]=g.g(),[y,x]=p.g(),R=g.O(),k=p.O(),O=g.H(),C=p.H(),H=g.M(),J=p.M(),B=t.useRef(null),q=0!==R,P=0!==k;M((()=>{const e=B[L],t=m.D(e),o=v.L(e),r=b.L(e),i=e=>{e?n.flushSync(S):S()},s=g.W(3,i),l=p.W(3,i);return()=>{t(),o(),r(),s(),l()}}),[]),M((()=>{const e=g.J();e&&v.j(e)}),[O]),M((()=>{const e=p.J();e&&b.j(e)}),[C]),t.useImperativeHandle(w,(()=>({get scrollOffset(){return[p.R(),g.R()]},get scrollSize(){return[p.M(),g.M()]},get viewportSize(){return[p.C(),g.C()]},scrollToIndex(e,t){b.P(e),v.P(t)},scrollTo(e,t){b.$(e),v.$(t)},scrollBy(e,t){b.q(e),v.q(t)}})),[]);const U=t.useMemo((()=>{const e=new Map;return(t,n)=>{let r=e.get(Z(t,n));return r||e.set(Z(t,n),r=o({rowIndex:t,colIndex:n})),r}}),[o]),V=j(I,a,R),A=D(z,a,R,r),E=j(y,a,k),Y=D(x,a,k,i),G=[];for(let t=V;t<=A;t++)for(let n=E;n<=Y;n++)G.push(e.jsx(ee,{V:m,K:t,Z:n,ee:g.v(t),te:p.v(n),ne:g.S(t),oe:p.S(n),X:g.p(t)||p.p(n),Y:f,U:U(t,n)},Z(t,n)));return e.jsx(d,{ref:B,width:J,height:H,scrolling:q||P,attrs:t.useMemo((()=>({..._,style:{overflow:"auto",contain:"strict",width:"100%",height:"100%",..._.style}})),l(_)),children:G})})),ne=t.forwardRef((({children:o,overscan:r=4,initialItemSize:i,initialItemCount:s,horizontal:c,cache:a,components:{Root:u=X,Item:d="div"}=$,onScrollStop:f,onRangeChange:_,...w},g)=>{const p=t.useMemo((()=>P(o)),[o]),m=p.length,v=U(f),[b,S,I,z]=N((()=>{const e=!!c,t=T(m,i,s,a,!1,!i);return[t,E(t,e),B(t,e),e]}));m!==b.I()&&b.B(3,[m]);const y=K(),[x,R]=b.g(),k=b.O(),O=b.H(),C=b.M(),H=t.useRef(null),J=0!==k;M((()=>{const e=H[L],t=S.D(e),o=I.L(e);return b.W(3,(e=>{e?n.flushSync(y):y()})),()=>{t(),o()}}),[]),M((()=>{const e=b.J();e&&I.j(e)}),[O]),t.useEffect((()=>{J||v[L]&&v[L]()}),[J]),t.useEffect((()=>{_&&_(x,R)}),[x,R]),t.useImperativeHandle(g,(()=>({get cache(){return b._()}})),[]);const W=j(x,r,k),q=D(R,r,k,m),V=[];for(let t=W;t<=q;t++){const n=p[t],o=n.key;V.push(e.jsx(Y,{V:S,A:t,F:b.v(t),X:b.p(t),Y:d,U:n,G:z},h(o)?o:"_"+t))}return e.jsx(u,{ref:H,width:z?C:void 0,height:z?void 0:C,scrolling:J,attrs:t.useMemo((()=>({...w,style:{display:z?"inline-block":"block",width:z?"auto":"100%",height:z?"100%":"auto",...w.style}})),l(w)),children:V})}));exports.VGrid=te,exports.VList=Q,exports.WVList=ne;
3
3
  //# sourceMappingURL=index.js.map