virtua 0.46.2 → 0.46.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/README.md +2 -1
- package/lib/core/index.cjs +1 -1
- package/lib/core/index.cjs.map +1 -1
- package/lib/core/index.js +1 -1
- package/lib/core/index.js.map +1 -1
- package/lib/index.cjs +1 -1
- package/lib/index.cjs.map +1 -1
- package/lib/index.js +1 -1
- package/lib/index.js.map +1 -1
- package/lib/solid/index.cjs +1 -1
- package/lib/solid/index.cjs.map +1 -1
- package/lib/solid/index.js +1 -1
- package/lib/solid/index.js.map +1 -1
- package/lib/solid/index.jsx +28 -38
- package/lib/solid/index.jsx.map +1 -1
- package/lib/svelte/Virtualizer.svelte +6 -12
- package/lib/svelte/WindowVirtualizer.svelte +6 -13
- package/lib/vue/index.cjs +1 -1
- package/lib/vue/index.cjs.map +1 -1
- package/lib/vue/index.js +1 -1
- package/lib/vue/index.js.map +1 -1
- package/package.json +2 -2
package/lib/vue/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{defineComponent as e,ref as t,computed as r,watch as o,createVNode as n,mergeProps as s,isVNode as i,onMounted as l,onUnmounted as c}from"vue";const a=null,{min:u,max:f,abs:d,floor:p}=Math,m=(e,t,r)=>u(r,f(t,e)),h=e=>[...e].sort(((e,t)=>e-t)),_="function"==typeof queueMicrotask?queueMicrotask:e=>{Promise.resolve().then(e)},b=()=>{let e;return[new Promise((t=>{e=t})),e]},v=e=>{let t;return()=>(e&&(t=e(),e=void 0),t)},S=(e,t,r)=>{const o=r?"unshift":"push";for(let r=0;r<t;r++)e[o](-1);return e},y=(e,t)=>{const r=e.t[t];return-1===r?e.o:r},g=(e,t,r)=>{const o=-1===e.t[t];return e.t[t]=r,e.i=u(t,e.i),o},z=(e,t)=>{if(!e.l)return 0;if(e.i>=t)return e.u[t];e.i<0&&(e.u[0]=0,e.i=0);let r=e.i,o=e.u[r];for(;r<t;)o+=y(e,r),e.u[++r]=o;return e.i=t,o},x=(e,t,r=0,o=e.l-1)=>{for(;r<=o;){const n=p((r+o)/2),s=z(e,n);if(s<=t){if(s+y(e,n)>t)return n;r=n+1}else o=n-1}return m(r,0,e.l-1)},$=(e,t,r)=>{const o=t-e.l;return e.i=r?-1:u(t-1,e.i),e.l=t,o>0?(S(e.u,o),S(e.t,o,r),e.o*o):(e.u.splice(o),(r?e.t.splice(0,-o):e.t.splice(o)).reduce(((t,r)=>t-(-1===r?e.o:r)),0))},w="undefined"!=typeof window,I=()=>document.documentElement,k=e=>e.ownerDocument,O=e=>e.defaultView,j=/*#__PURE__*/v((()=>!!w&&"rtl"===getComputedStyle(I()).direction)),E=/*#__PURE__*/v((()=>!!/iP(hone|od|ad)/.test(navigator.userAgent)||"MacIntel"===navigator.platform&&navigator.maxTouchPoints>0)),T=/*#__PURE__*/v((()=>"scrollBehavior"in I().style)),q=(e,t=40,r=0,o,n=!1)=>{let s=!!r,i=1,l=0,c=0,p=0,m=0,_=0,b=0,v=0,w=0,I=a,k=[0,s?f(r-1,0):-1],O=0;const j=((e,t)=>({o:t,t:S([],e),l:e,i:-1,u:S([],e)}))(e,t),T=new Set,q=()=>p-c,B=()=>q()+_+m,M=(e,t)=>((e,t,r,o)=>{if(o=u(o,e.l-1),z(e,o)<=t){const n=x(e,r,o);return[x(e,t,o,n),n]}{const n=x(e,t,void 0,o);return[n,x(e,r,n)]}})(j,e,t,k[0]),N=()=>(e=>e.l?z(e,e.l-1)+y(e,e.l-1):0)(j),P=e=>z(j,e)-_,R=e=>y(j,e),A=(e,t=-1)=>j.t[e]===t,H=e=>{e&&(E()&&0!==v||I&&1===w?_+=e:m+=e)};return{p:()=>i,m:()=>(e=>[e.t.slice(),e.o])(j),h:(e=200)=>{if(!l||s)return k;let t,r;if(b)[t,r]=k;else{e=f(0,e);let o=f(0,B()),s=o+l;n||(1!==v&&(o-=e),2!==v&&(s+=e)),[t,r]=k=M(f(0,o),f(0,s)),I&&(t=u(t,I[0]),r=f(r,I[1]))}return[f(t,0),u(r,j.l-1)]},v:()=>x(j,B()),S:()=>x(j,B()+l),I:A,k:P,O:R,j:()=>j.l,T:()=>p,q:()=>0!==v,B:()=>l,M:()=>c,N,P:()=>(b=m,m=0,[b,2===w]),R:(e,t)=>{const r=[e,t];return T.add(r),()=>{T.delete(r)}},A:(e,t)=>{let r,o,u=0;switch(e){case 1:{const e=b;b=0;const r=t-p,n=d(r);e&&n<d(e)+1||0!==w||(v=r<0?2:1),s&&(s=!1),p=t,u=4;const i=q();i>=-l&&i<=N()&&(u+=1,o=n>l);break}case 2:u=8,0!==v&&(r=!0,u+=1),v=0,w=0,I=a;break;case 3:{const e=t.filter((([e,t])=>!A(e,t)));if(!e.length)break;H(e.reduce(((e,[t,r])=>((2===w||(I&&1===w?t<I[0]:P(t)+(0===v&&0===w?R(t):0)<q()))&&(e+=r-R(t)),e)),0));for(const[t,r]of e){const e=R(t),o=g(j,t,r);n&&(O+=o?r:r-e)}n&&l&&O>l&&(H(((e,t)=>{let r=0;const o=[];e.t.forEach(((e,n)=>{-1!==e&&(o.push(e),n<t&&r++)})),e.i=-1;const n=h(o),s=n.length,i=s/2|0,l=s%2==0?(n[i-1]+n[i])/2:n[i],c=e.o;return((e.o=l)-c)*f(t-r,0)})(j,x(j,B()))),n=!1),u=3,o=!0;break}case 4:l!==t&&(l||(o=!0),l=t,u=3);break;case 5:t[1]?(H($(j,t[0],!0)),w=2,u=1):($(j,t[0]),u=1);break;case 6:c=t;break;case 7:w=1;break;case 8:I=M(t,t+l),u=1}u&&(i=1+(2147483647&i),r&&_&&(m+=_,_=0),T.forEach((([e,t])=>{u&e&&t(o)})))}}},B=setTimeout,M=(e,t)=>t&&j()?-e:e,N=(e,t,r,o,n,s)=>{const i=Date.now;let l=0,c=!1,u=!1,f=!1,d=!1;const p=(()=>{let t;const r=()=>{t!=a&&clearTimeout(t)},o=()=>{r(),t=B((()=>{t=a,(()=>{if(c||u)return c=!1,void p();f=!1,e.A(2)})()}),150)};return o.H=r,o})(),m=()=>{l=i(),f&&(d=!0),s&&e.A(6,s()),e.A(1,o()),p()},h=t=>{if(c||!e.q()||t.ctrlKey)return;const o=i()-l;150>o&&50<o&&(r?t.deltaX:t.deltaY)&&(c=!0)},_=()=>{u=!0,f=d=!1},b=()=>{u=!1,E()&&(f=!0)};return t.addEventListener("scroll",m),t.addEventListener("wheel",h,{passive:!0}),t.addEventListener("touchstart",_,{passive:!0}),t.addEventListener("touchend",b,{passive:!0}),{V:()=>{t.removeEventListener("scroll",m),t.removeEventListener("wheel",h),t.removeEventListener("touchstart",_),t.removeEventListener("touchend",b),p.H()},C:()=>{const[t,s]=e.P();t&&(n(M(t,r),s,d),d=!1,s&&e.B()>e.N()&&e.A(1,o()))}}},P=(e,t,r)=>{let o;return[async(n,s)=>{if(!await t())return;o&&o();const i=()=>{const[t,r]=b();return o=()=>{r(!1)},e.B()&&B(o,150),[t,e.R(2,(()=>{r(!0)}))]};if(s&&T())e.A(8,n()),_((async()=>{for(;;){let t=!0;for(let[r,o]=e.h();r<=o;r++)if(e.I(r)){t=!1;break}if(t)break;const[r,o]=i();try{if(!await r)return}finally{o()}}e.A(7),r(n(),s)}));else for(;;){const[t,o]=i();try{if(e.A(7),r(n()),!await t)return}finally{o()}}},()=>{o&&o()}]},R=e=>{let t;return{F(r){(t||(t=new(O(k(r)).ResizeObserver)(e))).observe(r)},J(e){t.unobserve(e)},V(){t&&t.disconnect()}}},A=/*#__PURE__*/e({props:{L:{type:Object,required:!0},W:{type:Object,required:!0},X:{type:Object,required:!0},Y:{type:Function,required:!0},D:{type:Number,required:!0},U:{type:Boolean},G:{type:Boolean},K:{type:String,required:!0},Z:Object},setup(e){const l=t(),c=r((()=>e.L.value&&e.W.k(e.D))),a=r((()=>e.L.value&&e.W.I(e.D)));return o((()=>l.value&&e.D),((t,r,o)=>{o(e.Y(l.value,e.D))}),{flush:"post"}),()=>{var t;const{X:r,U:o,G:u,K:f}=e,d=a.value,{style:p,...m}=null!==(t=e.Z)&&void 0!==t?t:{},h={contain:"layout style",position:d&&u?void 0:"absolute",[o?"height":"width"]:"100%",[o?"top":"left"]:"0px",[o?j()?"right":"left":"top"]:c.value+"px",visibility:!d||u?"visible":"hidden",...p};return o&&(h.display="inline-flex"),n(f,s({ref:l,style:h},m),"function"==typeof(_=r)||"[object Object]"===Object.prototype.toString.call(_)&&!i(_)?r:{default:()=>[r],_:2},16,["style"]);var _}}}),H=(e,t)=>{const r=e.key;return null!=r?r:"_"+t},V=(e,t)=>e[0]===t[0]&&e[1]===t[1],C=/*#__PURE__*/e({props:{data:{type:Array,required:!0},bufferSize:Number,itemSize:Number,shift:Boolean,horizontal:Boolean,startMargin:{type:Number,default:0},ssrCount:Number,scrollRef:Object,as:{type:String,default:"div"},item:{type:String,default:"div"},itemProps:Function,keepMounted:Array},emits:["scroll","scrollEnd"],setup(e,{emit:s,expose:u,slots:d}){let p=!!e.ssrCount;const _=e.horizontal,v=t(),S=q(e.data.length,e.itemSize,e.ssrCount,0,!e.itemSize),y=((e,t)=>{let r;const o=t?"width":"height",n=new WeakMap,s=R((t=>{const s=[];for(const{target:i,contentRect:l}of t)if(i.offsetParent)if(i===r)e.A(4,l[o]);else{const e=n.get(i);e!=a&&s.push([e,l[o]])}s.length&&e.A(3,s)}));return{ee(e){s.F(r=e)},te:(e,t)=>(n.set(e,t),s.F(e),()=>{n.delete(e),s.J(e)}),re:s.V}})(S,_),g=((e,t)=>{let r,o,n=b();const s=t?"scrollLeft":"scrollTop",i=t?"overflowX":"overflowY",[l,c]=P(e,(()=>n[0]),((e,o)=>{e=M(e,t),o?r.scrollTo({[t?"left":"top"]:e,behavior:"smooth"}):r[s]=e}));return{oe(l){r=l,o=N(e,l,t,(()=>M(l[s],t)),((t,r,o)=>{if(o){const e=l.style,t=e[i];e[i]="hidden",B((()=>{e[i]=t}))}l[s]=e.T()+t,r&&c()})),n[1](!0)},re(){o&&o.V(),n[1](!1),n=b()},ne(e){l((()=>e))},se(t){t+=e.T(),l((()=>t))},ie(t,{align:r,smooth:o,offset:n=0}={}){if(t=m(t,0,e.j()-1),"nearest"===r){const o=e.k(t),n=e.T();if(o<n)r="start";else{if(!(o+e.O(t)>n+e.B()))return;r="end"}}l((()=>n+e.M()+e.k(t)+("end"===r?e.O(t)-e.B():"center"===r?(e.O(t)-e.B())/2:0)),o)},le:()=>{o&&o.C()}}})(S,_),z=t(S.p()),x=S.R(1,(()=>{z.value=S.p()})),$=S.R(4,(()=>{s("scroll",S.T())})),w=S.R(8,(()=>{s("scrollEnd")})),I=r((t=>{z.value;const r=S.h(e.bufferSize);return t&&V(t,r)?t:r})),k=r((()=>z.value&&S.q())),O=r((()=>z.value&&S.N()));return l((()=>{p=!1;const t=requestAnimationFrame((()=>{const t=e=>{y.ee(e),g.oe(e)};e.scrollRef?t(e.scrollRef):t(v.value.parentElement)}));c((()=>{cancelAnimationFrame(t)}))})),c((()=>{x(),$(),w(),y.re(),g.re()})),o((()=>e.data.length),(t=>{S.A(5,[t,e.shift])})),o((()=>e.startMargin),(e=>{S.A(6,e)}),{immediate:!0}),o([z],(()=>{g.le()}),{flush:"post"}),u({get scrollOffset(){return S.T()},get scrollSize(){return(e=>f(e.N(),e.B()))(S)},get viewportSize(){return S.B()},findStartIndex:S.v,findEndIndex:S.S,getItemOffset:S.k,getItemSize:S.O,scrollToIndex:g.ie,scrollTo:g.ne,scrollBy:g.se}),()=>{const t=e.as,r=e.item,o=O.value,s=[],l=t=>{var o;const s=d.default({item:e.data[t],index:t})[0];return n(A,{key:H(s,t),L:z,W:S,Y:y.te,D:t,X:s,U:_,G:p,K:r,Z:null===(o=e.itemProps)||void 0===o?void 0:o.call(e,{item:e.data[t],index:t})},null,8,["L","W","Y","D","X","U","G","K","Z"])};if(e.keepMounted){const t=new Set(e.keepMounted);for(let[e,r]=I.value;e<=r;e++)t.add(e);h([...t]).forEach((e=>{s.push(l(e))}))}else for(let[e,t]=I.value;e<=t;e++)s.push(l(e));return n(t,{ref:v,style:{contain:"size paint style",overflowAnchor:"none",overflow:"clip",flex:"none",position:"relative",width:_?o+"px":"100%",height:_?"100%":o+"px",pointerEvents:k.value?"none":void 0}},"function"==typeof(c=s)||"[object Object]"===Object.prototype.toString.call(c)&&!i(c)?s:{default:()=>[s],_:2},8,["style"]);var c}}}),F=/*#__PURE__*/e({props:{data:{type:Array,required:!0},bufferSize:Number,itemSize:Number,shift:Boolean,horizontal:Boolean,ssrCount:Number,itemProps:Function,keepMounted:Array},emits:["scroll","scrollEnd"],setup(e,{emit:r,expose:o,slots:s}){const l=e.horizontal,c=e=>{r("scroll",e)},a=()=>{r("scrollEnd")},u=t();return o({get scrollOffset(){return u.value.scrollOffset},get scrollSize(){return u.value.scrollSize},get viewportSize(){return u.value.viewportSize},findStartIndex:(...e)=>u.value.findStartIndex(...e),findEndIndex:(...e)=>u.value.findEndIndex(...e),getItemOffset:(...e)=>u.value.getItemOffset(...e),getItemSize:(...e)=>u.value.getItemSize(...e),scrollToIndex:(...e)=>u.value.scrollToIndex(...e),scrollTo:(...e)=>u.value.scrollTo(...e),scrollBy:(...e)=>u.value.scrollBy(...e)}),()=>{return n("div",{style:{display:l?"inline-block":"block",[l?"overflowX":"overflowY"]:"auto",contain:"strict",width:"100%",height:"100%"}},[n(C,{ref:u,data:e.data,bufferSize:e.bufferSize,itemSize:e.itemSize,itemProps:e.itemProps,shift:e.shift,ssrCount:e.ssrCount,horizontal:l,keepMounted:e.keepMounted,onScroll:c,onScrollEnd:a},(t=s,"function"==typeof t||"[object Object]"===Object.prototype.toString.call(t)&&!i(t)?s:{default:()=>[s],_:2}),8,["data","bufferSize","itemSize","itemProps","shift","ssrCount","horizontal","keepMounted","onScroll","onScrollEnd"])],4);var t}}}),J=/*#__PURE__*/e({props:{data:{type:Array,required:!0},bufferSize:Number,itemSize:Number,shift:Boolean,horizontal:Boolean,as:{type:String,default:"div"},item:{type:String,default:"div"}},emits:["scroll","scrollEnd"],setup(e,{emit:s,slots:u,expose:f}){const d=e.horizontal,p=t(),h=q(e.data.length,e.itemSize,void 0,0,!e.itemSize),v=((e,t)=>{const r=t?"width":"height",o=t?"innerWidth":"innerHeight",n=new WeakMap,s=R((t=>{const o=[];for(const{target:e,contentRect:s}of t){if(!e.offsetParent)continue;const t=n.get(e);t!=a&&o.push([t,s[r]])}o.length&&e.A(3,o)}));let i;return{ee(t){const r=O(k(t)),n=()=>{e.A(4,r[o])};r.addEventListener("resize",n),_(n),i=()=>{r.removeEventListener("resize",n)}},te:(e,t)=>(n.set(e,t),s.F(e),()=>{n.delete(e),s.J(e)}),re(){i&&i(),s.V()}}})(h,d),S=((e,t)=>{let r,o,n=b();const s=t?"left":"top",[i]=P(e,(()=>n[0]),((e,o)=>{e=M(e,t);const n=O(k(r));o?n.scroll({[s]:e,behavior:"smooth"}):n.scroll({[s]:e})})),l=(e,t,r,o,n=0)=>{const s=o?"offsetLeft":"offsetTop",i=n+(o&&j()?r.innerWidth-e[s]-e.offsetWidth:e[s]),c=e.offsetParent;return e!==t&&c?l(c,t,r,o,i):i};return{oe(i){r=i;const c=t?"scrollX":"scrollY",a=k(i),u=O(a);o=N(e,u,t,(()=>M(u[c],t)),((t,r)=>{r?u.scroll({[s]:e.T()+t}):u.scrollBy({[s]:t})}),(()=>l(i,a.body,u,t))),n[1](!0)},re(){o&&o.V(),r=void 0,n[1](!1),n=b()},le:()=>{o&&o.C()},ie(o,{align:n,smooth:s,offset:c=0}={}){if(!r)return;if(o=m(o,0,e.j()-1),"nearest"===n){const t=e.k(o),r=e.T();if(t<r)n="start";else{if(!(t+e.O(o)>r+e.B()))return;n="end"}}const a=k(r),u=O(a),f=a.documentElement,d=()=>e.B()-(t?f.clientWidth:f.clientHeight);i((()=>c+l(r,a.body,u,t)+e.k(o)+("end"===n?e.O(o)-(e.B()-d()):"center"===n?(e.O(o)-(e.B()-d()))/2:0)),s)}}})(h,d),y=t(h.p()),g=h.R(1,(()=>{y.value=h.p()})),z=h.R(4,(()=>{s("scroll")})),x=h.R(8,(()=>{s("scrollEnd")})),$=r((t=>{y.value;const r=h.h(e.bufferSize);return t&&V(t,r)?t:r})),w=r((()=>y.value&&h.q())),I=r((()=>y.value&&h.N()));return l((()=>{const e=p.value;e&&(v.ee(e),S.oe(e))})),c((()=>{g(),z(),x(),v.re(),S.re()})),o((()=>e.data.length),(t=>{h.A(5,[t,e.shift])})),o([y],(()=>{S.le()}),{flush:"post"}),f({findStartIndex:h.v,findEndIndex:h.S,scrollToIndex:S.ie}),()=>{const t=e.as,r=e.item,o=I.value,s=[];for(let[t,o]=$.value;t<=o;t++){const o=u.default({item:e.data[t],index:t})[0];s.push(n(A,{key:H(o,t),L:y,W:h,Y:v.te,D:t,X:o,U:d,K:r},null,8,["L","W","Y","D","X","U","K"]))}return n(t,{ref:p,style:{contain:"size paint style",overflowAnchor:"none",overflow:"clip",flex:"none",position:"relative",width:d?o+"px":"100%",height:d?"100%":o+"px",pointerEvents:w.value?"none":void 0}},"function"==typeof(l=s)||"[object Object]"===Object.prototype.toString.call(l)&&!i(l)?s:{default:()=>[s],_:2},8,["style"]);var l}}});export{F as VList,C as Virtualizer,J as WindowVirtualizer};
|
|
1
|
+
import{defineComponent as e,ref as t,computed as r,watch as o,createVNode as n,mergeProps as s,isVNode as i,onMounted as l,onUnmounted as c}from"vue";const a=null,{min:u,max:f,abs:d,floor:p}=Math,m=(e,t,r)=>u(r,f(t,e)),h=e=>[...e].sort(((e,t)=>e-t)),b="function"==typeof queueMicrotask?queueMicrotask:e=>{Promise.resolve().then(e)},_=()=>{let e;return[new Promise((t=>{e=t})),e]},v=e=>{let t;return()=>(e&&(t=e(),e=void 0),t)},S=(e,t,r)=>{const o=r?"unshift":"push";for(let r=0;r<t;r++)e[o](-1);return e},y=(e,t)=>{const r=e.t[t];return-1===r?e.o:r},g=(e,t,r)=>{const o=-1===e.t[t];return e.t[t]=r,e.i=u(t,e.i),o},z=(e,t)=>{if(!e.l)return 0;if(e.i>=t)return e.u[t];e.i<0&&(e.u[0]=0,e.i=0);let r=e.i,o=e.u[r];for(;r<t;)o+=y(e,r),e.u[++r]=o;return e.i=t,o},x=(e,t,r=0,o=e.l-1)=>{for(;r<=o;){const n=p((r+o)/2);if(z(e,n)<=t){if(z(e,n+1)>t)return n;r=n+1}else o=n-1}return m(r,0,e.l-1)},$=(e,t,r)=>{const o=t-e.l;return e.i=r?-1:u(t-1,e.i),e.l=t,o>0?(S(e.u,o),S(e.t,o,r),e.o*o):(e.u.splice(o),(r?e.t.splice(0,-o):e.t.splice(o)).reduce(((t,r)=>t-(-1===r?e.o:r)),0))},w="undefined"!=typeof window,I=()=>document.documentElement,k=e=>e.ownerDocument,O=e=>e.defaultView,j=/*#__PURE__*/v((()=>!!w&&"rtl"===getComputedStyle(I()).direction)),E=/*#__PURE__*/v((()=>!!/iP(hone|od|ad)/.test(navigator.userAgent)||"MacIntel"===navigator.platform&&navigator.maxTouchPoints>0)),T=/*#__PURE__*/v((()=>"scrollBehavior"in I().style)),q=(e,t=40,r=0,o,n=!1)=>{let s=!!r,i=1,l=0,c=0,p=0,m=0,b=0,_=0,v=0,w=0,I=a,k=[0,s?f(r-1,0):-1],O=0;const j=((e,t)=>({o:t,t:S([],e),l:e,i:-1,u:S([],e+1)}))(e,t),T=new Set,q=()=>p-c,B=()=>q()+b+m,M=(e,t)=>((e,t,r,o)=>{if(o=u(o,e.l-1),z(e,o)<=t){const n=x(e,r,o);return[x(e,t,o,n),n]}{const n=x(e,t,void 0,o);return[n,x(e,r,n)]}})(j,e,t,k[0]),N=()=>z(j,j.l),P=e=>z(j,e)-b,R=e=>y(j,e),A=(e,t=-1)=>j.t[e]===t,H=e=>{e&&(E()&&0!==v||I&&1===w?b+=e:m+=e)};return{p:()=>{T.clear()},m:()=>i,h:()=>(e=>[e.t.slice(),e.o])(j),v:(e=200)=>{if(!l||s)return k;let t,r;if(_)[t,r]=k;else{let o=f(0,B()),s=o+l;n||(e=f(0,e),1!==v&&(o-=e),2!==v&&(s+=e)),[t,r]=k=M(f(0,o),f(0,s)),I&&(t=u(t,I[0]),r=f(r,I[1]))}return[f(t,0),u(r,j.l-1)]},S:()=>x(j,B()),I:()=>x(j,B()+l),k:A,O:P,j:R,T:()=>j.l,q:()=>p,B:()=>0!==v,M:()=>l,N:()=>c,P:N,R:()=>(_=m,m=0,[_,2===w]),A:(e,t)=>{const r=[e,t];return T.add(r),()=>{T.delete(r)}},H:(e,t)=>{let r,o,u=0;switch(e){case 1:{if(t===p&&0===w)break;const e=_;_=0;const r=t-p,n=d(r);e&&n<d(e)+1||0!==w||(v=r<0?2:1),s&&(s=!1),p=t,u=4;const i=q();i>=-l&&i<=N()&&(u+=1,o=n>l);break}case 2:u=8,0!==v&&(r=!0,u+=1),v=0,w=0,I=a;break;case 3:{const e=t.filter((([e,t])=>!A(e,t)));if(!e.length)break;H(e.reduce(((e,[t,r])=>((2===w||(I&&1===w?t<I[0]:P(t+(0===v&&0===w?1:0))<q()))&&(e+=r-R(t)),e)),0));for(const[t,r]of e){const e=R(t),o=g(j,t,r);n&&(O+=o?r:r-e)}n&&l&&O>l&&(H(((e,t)=>{let r=0;const o=[];e.t.forEach(((e,n)=>{-1!==e&&(o.push(e),n<t&&r++)})),e.i=-1;const n=h(o),s=n.length,i=s/2|0,l=s%2==0?(n[i-1]+n[i])/2:n[i],c=e.o;return((e.o=l)-c)*f(t-r,0)})(j,x(j,B()))),n=!1),u=3,o=!0;break}case 4:l!==t&&(l||(o=!0),l=t,u=3);break;case 5:t[1]?(H($(j,t[0],!0)),w=2,u=1):($(j,t[0]),u=1);break;case 6:c=t;break;case 7:w=1;break;case 8:I=M(t,t+l),u=1}u&&(i=1+(2147483647&i),r&&b&&(m+=b,b=0),T.forEach((([e,t])=>{u&e&&t(o)})))}}},B=setTimeout,M=(e,t)=>t&&j()?-e:e,N=(e,t,r,o,n,s)=>{const i=Date.now;let l=0,c=!1,u=!1,f=!1,d=!1;const p=(()=>{let t;const r=()=>{t!=a&&clearTimeout(t)},o=()=>{r(),t=B((()=>{t=a,(()=>{if(c||u)return c=!1,void p();f=!1,e.H(2)})()}),150)};return o.V=r,o})(),m=()=>{l=i(),f&&(d=!0),s&&e.H(6,s()),e.H(1,o()),p()},h=t=>{if(c||!e.B()||t.ctrlKey)return;const o=i()-l;150>o&&50<o&&(r?t.deltaX:t.deltaY)&&(c=!0)},b=()=>{u=!0,f=d=!1},_=()=>{u=!1,E()&&(f=!0)};return t.addEventListener("scroll",m),t.addEventListener("wheel",h,{passive:!0}),t.addEventListener("touchstart",b,{passive:!0}),t.addEventListener("touchend",_,{passive:!0}),{C:()=>{t.removeEventListener("scroll",m),t.removeEventListener("wheel",h),t.removeEventListener("touchstart",b),t.removeEventListener("touchend",_),p.V()},F:()=>{const[t,s]=e.R();t&&(n(M(t,r),s,d),d=!1,s&&e.M()>e.P()&&e.H(1,o()))}}},P=(e,t,r)=>{let o;return[async(n,s)=>{if(!await t())return;o&&o();const i=()=>{const[t,r]=_();return o=()=>{r(!1)},e.M()&&B(o,150),[t,e.A(2,(()=>{r(!0)}))]};if(s&&T())e.H(8,n()),b((async()=>{for(;;){let t=!0;for(let[r,o]=e.v();r<=o;r++)if(e.k(r)){t=!1;break}if(t)break;const[r,o]=i();try{if(!await r)return}finally{o()}}e.H(7),r(n(),s)}));else for(;;){const[t,o]=i();try{if(e.H(7),r(n()),!await t)return}finally{o()}}},()=>{o&&o()}]},R=e=>{let t;return{J(r){(t||(t=new(O(k(r)).ResizeObserver)(e))).observe(r)},L(e){t.unobserve(e)},C(){t&&t.disconnect()}}},A=/*#__PURE__*/e({props:{W:{type:Object,required:!0},X:{type:Object,required:!0},Y:{type:Object,required:!0},D:{type:Function,required:!0},U:{type:Number,required:!0},G:{type:Boolean},K:{type:Boolean},Z:{type:String,required:!0},ee:Object},setup(e){const l=t(),c=r((()=>e.W.value&&e.X.O(e.U))),a=r((()=>e.W.value&&e.X.k(e.U)));return o((()=>l.value&&e.U),((t,r,o)=>{o(e.D(l.value,e.U))}),{flush:"post"}),()=>{var t;const{Y:r,G:o,K:u,Z:f}=e,d=a.value,{style:p,...m}=null!==(t=e.ee)&&void 0!==t?t:{},h={contain:"layout style",position:d&&u?void 0:"absolute",[o?"height":"width"]:"100%",[o?"top":"left"]:"0px",[o?j()?"right":"left":"top"]:c.value+"px",visibility:!d||u?"visible":"hidden",...p};return o&&(h.display="inline-flex"),n(f,s({ref:l,style:h},m),"function"==typeof(b=r)||"[object Object]"===Object.prototype.toString.call(b)&&!i(b)?r:{default:()=>[r],_:2},16,["style"]);var b}}}),H=(e,t)=>{const r=e.key;return null!=r?r:"_"+t},V=(e,t)=>e[0]===t[0]&&e[1]===t[1],C=/*#__PURE__*/e({props:{data:{type:Array,required:!0},bufferSize:Number,itemSize:Number,shift:Boolean,horizontal:Boolean,startMargin:{type:Number,default:0},ssrCount:Number,scrollRef:Object,as:{type:String,default:"div"},item:{type:String,default:"div"},itemProps:Function,keepMounted:Array},emits:["scroll","scrollEnd"],setup(e,{emit:s,expose:u,slots:d}){let p=!!e.ssrCount;const b=e.horizontal,v=t(),S=q(e.data.length,e.itemSize,e.ssrCount,0,!e.itemSize),y=((e,t)=>{let r;const o=t?"width":"height",n=new WeakMap,s=R((t=>{const s=[];for(const{target:i,contentRect:l}of t)if(i.offsetParent)if(i===r)e.H(4,l[o]);else{const e=n.get(i);e!=a&&s.push([e,l[o]])}s.length&&e.H(3,s)}));return{te(e){s.J(r=e)},re:(e,t)=>(n.set(e,t),s.J(e),()=>{n.delete(e),s.L(e)}),p:s.C}})(S,b),g=((e,t)=>{let r,o,n=_();const s=t?"scrollLeft":"scrollTop",i=t?"overflowX":"overflowY",[l,c]=P(e,(()=>n[0]),((e,o)=>{e=M(e,t),o?r.scrollTo({[t?"left":"top"]:e,behavior:"smooth"}):r[s]=e}));return{oe(l){r=l,o=N(e,l,t,(()=>M(l[s],t)),((t,r,o)=>{if(o){const e=l.style,t=e[i];e[i]="hidden",B((()=>{e[i]=t}))}l[s]=e.q()+t,r&&c()})),n[1](!0)},p(){o&&o.C(),n[1](!1),n=_()},ne(e){l((()=>e))},se(t){t+=e.q(),l((()=>t))},ie(t,{align:r,smooth:o,offset:n=0}={}){if(t=m(t,0,e.T()-1),"nearest"===r){const o=e.O(t),n=e.q();if(o<n)r="start";else{if(!(o+e.j(t)>n+e.M()))return;r="end"}}l((()=>n+e.N()+e.O(t)+("end"===r?e.j(t)-e.M():"center"===r?(e.j(t)-e.M())/2:0)),o)},le:()=>{o&&o.F()}}})(S,b),z=t(S.m());S.A(1,(()=>{z.value=S.m()})),S.A(4,(()=>{s("scroll",S.q())})),S.A(8,(()=>{s("scrollEnd")}));const x=r((t=>{z.value;const r=S.v(e.bufferSize);return t&&V(t,r)?t:r})),$=r((()=>z.value&&S.B())),w=r((()=>z.value&&S.P()));return l((()=>{p=!1;const t=requestAnimationFrame((()=>{const t=e=>{y.te(e),g.oe(e)};e.scrollRef?t(e.scrollRef):t(v.value.parentElement)}));c((()=>{cancelAnimationFrame(t)}))})),c((()=>{S.p(),y.p(),g.p()})),o((()=>e.data.length),(t=>{S.H(5,[t,e.shift])})),o((()=>e.startMargin),(e=>{S.H(6,e)}),{immediate:!0}),o([z],(()=>{g.le()}),{flush:"post"}),u({get scrollOffset(){return S.q()},get scrollSize(){return(e=>f(e.P(),e.M()))(S)},get viewportSize(){return S.M()},findStartIndex:S.S,findEndIndex:S.I,getItemOffset:S.O,getItemSize:S.j,scrollToIndex:g.ie,scrollTo:g.ne,scrollBy:g.se}),()=>{const t=e.as,r=e.item,o=w.value,s=[],l=t=>{var o;const s=d.default({item:e.data[t],index:t})[0];return n(A,{key:H(s,t),W:z,X:S,D:y.re,U:t,Y:s,G:b,K:p,Z:r,ee:null===(o=e.itemProps)||void 0===o?void 0:o.call(e,{item:e.data[t],index:t})},null,8,["W","X","D","U","Y","G","K","Z","ee"])};if(e.keepMounted){const t=new Set(e.keepMounted);for(let[e,r]=x.value;e<=r;e++)t.add(e);h([...t]).forEach((e=>{s.push(l(e))}))}else for(let[e,t]=x.value;e<=t;e++)s.push(l(e));return n(t,{ref:v,style:{contain:"size paint style",overflowAnchor:"none",flex:"none",position:"relative",width:b?o+"px":"100%",height:b?"100%":o+"px",pointerEvents:$.value?"none":void 0}},"function"==typeof(c=s)||"[object Object]"===Object.prototype.toString.call(c)&&!i(c)?s:{default:()=>[s],_:2},8,["style"]);var c}}}),F=/*#__PURE__*/e({props:{data:{type:Array,required:!0},bufferSize:Number,itemSize:Number,shift:Boolean,horizontal:Boolean,ssrCount:Number,itemProps:Function,keepMounted:Array},emits:["scroll","scrollEnd"],setup(e,{emit:r,expose:o,slots:s}){const l=e.horizontal,c=e=>{r("scroll",e)},a=()=>{r("scrollEnd")},u=t();return o({get scrollOffset(){return u.value.scrollOffset},get scrollSize(){return u.value.scrollSize},get viewportSize(){return u.value.viewportSize},findStartIndex:(...e)=>u.value.findStartIndex(...e),findEndIndex:(...e)=>u.value.findEndIndex(...e),getItemOffset:(...e)=>u.value.getItemOffset(...e),getItemSize:(...e)=>u.value.getItemSize(...e),scrollToIndex:(...e)=>u.value.scrollToIndex(...e),scrollTo:(...e)=>u.value.scrollTo(...e),scrollBy:(...e)=>u.value.scrollBy(...e)}),()=>{return n("div",{style:{display:l?"inline-block":"block",[l?"overflowX":"overflowY"]:"auto",contain:"strict",width:"100%",height:"100%"}},[n(C,{ref:u,data:e.data,bufferSize:e.bufferSize,itemSize:e.itemSize,itemProps:e.itemProps,shift:e.shift,ssrCount:e.ssrCount,horizontal:l,keepMounted:e.keepMounted,onScroll:c,onScrollEnd:a},(t=s,"function"==typeof t||"[object Object]"===Object.prototype.toString.call(t)&&!i(t)?s:{default:()=>[s],_:2}),8,["data","bufferSize","itemSize","itemProps","shift","ssrCount","horizontal","keepMounted","onScroll","onScrollEnd"])],4);var t}}}),J=/*#__PURE__*/e({props:{data:{type:Array,required:!0},bufferSize:Number,itemSize:Number,shift:Boolean,horizontal:Boolean,as:{type:String,default:"div"},item:{type:String,default:"div"}},emits:["scroll","scrollEnd"],setup(e,{emit:s,slots:u,expose:f}){const d=e.horizontal,p=t(),h=q(e.data.length,e.itemSize,void 0,0,!e.itemSize),v=((e,t)=>{const r=t?"width":"height",o=t?"innerWidth":"innerHeight",n=new WeakMap,s=R((t=>{const o=[];for(const{target:e,contentRect:s}of t){if(!e.offsetParent)continue;const t=n.get(e);t!=a&&o.push([t,s[r]])}o.length&&e.H(3,o)}));let i;return{te(t){const r=O(k(t)),n=()=>{e.H(4,r[o])};r.addEventListener("resize",n),b(n),i=()=>{r.removeEventListener("resize",n)}},re:(e,t)=>(n.set(e,t),s.J(e),()=>{n.delete(e),s.L(e)}),p(){i&&i(),s.C()}}})(h,d),S=((e,t)=>{let r,o,n=_();const s=t?"left":"top",[i]=P(e,(()=>n[0]),((e,o)=>{e=M(e,t);const n=O(k(r));o?n.scroll({[s]:e,behavior:"smooth"}):n.scroll({[s]:e})})),l=(e,t,r,o,n=0)=>{const s=o?"offsetLeft":"offsetTop",i=n+(o&&j()?r.innerWidth-e[s]-e.offsetWidth:e[s]),c=e.offsetParent;return e!==t&&c?l(c,t,r,o,i):i};return{oe(i){r=i;const c=t?"scrollX":"scrollY",a=k(i),u=O(a);o=N(e,u,t,(()=>M(u[c],t)),((t,r)=>{r?u.scroll({[s]:e.q()+t}):u.scrollBy({[s]:t})}),(()=>l(i,a.body,u,t))),n[1](!0)},p(){o&&o.C(),r=void 0,n[1](!1),n=_()},le:()=>{o&&o.F()},ie(o,{align:n,smooth:s,offset:c=0}={}){if(!r)return;if(o=m(o,0,e.T()-1),"nearest"===n){const t=e.O(o),r=e.q();if(t<r)n="start";else{if(!(t+e.j(o)>r+e.M()))return;n="end"}}const a=k(r),u=O(a),f=a.documentElement,d=()=>e.M()-(t?f.clientWidth:f.clientHeight);i((()=>c+l(r,a.body,u,t)+e.O(o)+("end"===n?e.j(o)-(e.M()-d()):"center"===n?(e.j(o)-(e.M()-d()))/2:0)),s)}}})(h,d),y=t(h.m());h.A(1,(()=>{y.value=h.m()})),h.A(4,(()=>{s("scroll")})),h.A(8,(()=>{s("scrollEnd")}));const g=r((t=>{y.value;const r=h.v(e.bufferSize);return t&&V(t,r)?t:r})),z=r((()=>y.value&&h.B())),x=r((()=>y.value&&h.P()));return l((()=>{const e=p.value;e&&(v.te(e),S.oe(e))})),c((()=>{h.p(),v.p(),S.p()})),o((()=>e.data.length),(t=>{h.H(5,[t,e.shift])})),o([y],(()=>{S.le()}),{flush:"post"}),f({findStartIndex:h.S,findEndIndex:h.I,scrollToIndex:S.ie}),()=>{const t=e.as,r=e.item,o=x.value,s=[];for(let[t,o]=g.value;t<=o;t++){const o=u.default({item:e.data[t],index:t})[0];s.push(n(A,{key:H(o,t),W:y,X:h,D:v.re,U:t,Y:o,G:d,Z:r},null,8,["W","X","D","U","Y","G","Z"]))}return n(t,{ref:p,style:{contain:"size paint style",overflowAnchor:"none",flex:"none",position:"relative",width:d?o+"px":"100%",height:d?"100%":o+"px",pointerEvents:z.value?"none":void 0}},"function"==typeof(l=s)||"[object Object]"===Object.prototype.toString.call(l)&&!i(l)?s:{default:()=>[s],_:2},8,["style"]);var l}}});export{F as VList,C as Virtualizer,J as WindowVirtualizer};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|