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