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