virtua 0.36.1 → 0.36.3

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.
@@ -43,14 +43,8 @@ export interface WindowVirtualizerProps<T> {
43
43
  onscrollend?: () => void;
44
44
  /**
45
45
  * Callback invoked when visible items range changes.
46
+ * @param startIndex The start index of viewable items.
47
+ * @param endIndex The end index of viewable items.
46
48
  */
47
- onrangechange?: (
48
- /**
49
- * The start index of viewable items.
50
- */
51
- startIndex: number,
52
- /**
53
- * The end index of viewable items.
54
- */
55
- endIndex: number) => void;
49
+ onrangechange?: (startIndex: number, endIndex: number) => void;
56
50
  }
@@ -12,17 +12,18 @@ export declare const GET_SCROLL_OFFSET = 5;
12
12
  export declare const GET_SCROLL_DIRECTION = 6;
13
13
  export declare const GET_JUMP_COUNT = 7;
14
14
  export declare const GET_ITEM_OFFSET = 8;
15
- export declare const IS_ITEM_HIDDEN = 9;
16
- export declare const GET_ITEMS_LENGTH = 10;
17
- export declare const GET_START_SPACER_SIZE = 11;
18
- export declare const OBSERVE_ITEM_RESIZE = 12;
19
- export declare const FIX_SCROLL_JUMP = 13;
20
- export declare const CHANGE_ITEM_LENGTH = 14;
21
- export declare const CHANGE_START_MARGIN = 15;
22
- export declare const GET_SCROLL_SIZE = 16;
23
- export declare const SCROLL_TO = 17;
24
- export declare const SCROLL_BY = 18;
25
- export declare const SCROLL_TO_INDEX = 19;
15
+ export declare const GET_ITEM_SIZE = 9;
16
+ export declare const IS_ITEM_HIDDEN = 10;
17
+ export declare const GET_ITEMS_LENGTH = 11;
18
+ export declare const GET_START_SPACER_SIZE = 12;
19
+ export declare const OBSERVE_ITEM_RESIZE = 13;
20
+ export declare const FIX_SCROLL_JUMP = 14;
21
+ export declare const CHANGE_ITEM_LENGTH = 15;
22
+ export declare const CHANGE_START_MARGIN = 16;
23
+ export declare const GET_SCROLL_SIZE = 17;
24
+ export declare const SCROLL_TO = 18;
25
+ export declare const SCROLL_BY = 19;
26
+ export declare const SCROLL_TO_INDEX = 20;
26
27
  /**
27
28
  * This function is workaround for terser minification.
28
29
  * Svelte doesn't seem to have a good way to modify and print its AST.
@@ -37,17 +38,18 @@ export declare const createVirtualizer: (count: number, itemSize: number | undef
37
38
  6: () => import("../core/store").ScrollDirection;
38
39
  7: () => number;
39
40
  8: (index: number) => number;
40
- 9: (index: number) => boolean;
41
- 10: () => number;
41
+ 9: (index: number) => number;
42
+ 10: (index: number) => boolean;
42
43
  11: () => number;
43
- 12: import("./core").ItemResizeObserver;
44
- 13: () => void;
45
- 14: (len: number, shift?: boolean) => void;
46
- 15: (value: number) => void;
47
- 16: () => number;
48
- 17: (offset: number) => void;
44
+ 12: () => number;
45
+ 13: import("./core").ItemResizeObserver;
46
+ 14: () => void;
47
+ 15: (len: number, shift?: boolean) => void;
48
+ 16: (value: number) => void;
49
+ 17: () => number;
49
50
  18: (offset: number) => void;
50
- 19: (index: number, opts?: import("..").ScrollToIndexOpts) => void;
51
+ 19: (offset: number) => void;
52
+ 20: (index: number, opts?: import("..").ScrollToIndexOpts) => void;
51
53
  };
52
54
  /**
53
55
  * This function is workaround for terser minification.
@@ -63,10 +65,9 @@ export declare const createWindowVirtualizer: (count: number, itemSize: number |
63
65
  6: () => import("../core/store").ScrollDirection;
64
66
  7: () => number;
65
67
  8: (index: number) => number;
66
- 9: (index: number) => boolean;
67
- 10: () => number;
68
+ 10: (index: number) => boolean;
68
69
  11: () => number;
69
- 12: import("./core").ItemResizeObserver;
70
- 13: () => void;
71
- 14: (len: number, shift?: boolean) => void;
70
+ 13: import("./core").ItemResizeObserver;
71
+ 14: () => void;
72
+ 15: (len: number, shift?: boolean) => void;
72
73
  };
@@ -1 +1 @@
1
- const e=null,{min:t,max:o,abs:r,floor:n}=Math,s=setTimeout,c=(e,r,n)=>t(n,o(r,e)),i="function"==typeof queueMicrotask?queueMicrotask:e=>{Promise.resolve().then(e)},l=e=>{let t,o;return(...r)=>(t||(t=!0,o=e(...r)),o)},u=-1,a=(e,t,o)=>{const r=o?"unshift":"push";for(let o=0;o<t;o++)e[r](u);return e},f=(e,t)=>{const o=e.t[t];return o===u?e.o:o},_=(e,o,r)=>{const n=e.t[o]===u;return e.t[o]=r,e.i=t(o,e.i),n},d=(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 o=e.i,r=e.u[o];for(;o<t;)r+=f(e,o),e.u[++o]=r;return e.i=t,r},h=(e,t,o=0,r=e.l-1)=>{for(;o<=r;){const s=n((o+r)/2),c=d(e,s);if(c<=t){if(c+f(e,s)>t)return s;o=s+1}else r=s-1}return c(o,0,e.l-1)},p=(e,o,r)=>{const n=o-e.l;return e.i=r?-1:t(o-1,e.i),e.l=o,n>0?(a(e.u,n),a(e.t,n,r),e.o*n):(e.u.splice(n),(r?e.t.splice(0,-n):e.t.splice(n)).reduce(((t,o)=>t-(o===u?e.o:o)),0))},m="undefined"!=typeof window,g=()=>document.documentElement,v=e=>e.ownerDocument,b=e=>e.defaultView,w=/*#__PURE__*/l((()=>!!m&&"rtl"===getComputedStyle(g()).direction)),S=/*#__PURE__*/l((()=>/iP(hone|od|ad)/.test(navigator.userAgent))),k=/*#__PURE__*/l((()=>"scrollBehavior"in g().style)),I=0,y=(e,r,n,s,c)=>(1!==s&&(e-=o(0,n)),2!==s&&(r+=o(0,n)),[o(e,0),t(r,c-1)]),z=(n,s=40,c=0,i,l=!1)=>{let m=!!c,g=[],v=0,b=0,w=0,k=0,I=0,y=0,z=0,x=0,T=0,R=m?[0,o(c-1,0)]:e,J=[0,0],M=0;const C=((e,t)=>({o:t,t:a([],e),l:e,i:-1,u:a([],e)}))(n,s),L=new Set,O=()=>w-b,P=e=>((e,o,r,n)=>{if(n=t(n,e.l-1),d(e,n)<=o){const t=h(e,o+r,n);return[h(e,o,n,t),t]}{const t=h(e,o,void 0,n);return[t,h(e,o+r,t)]}})(C,e,v,J[0]),W=()=>(e=>e.l?d(e,e.l-1)+f(e,e.l-1):0)(C),q=e=>d(C,e)-y,B=e=>f(C,e),D=e=>{e&&(S()&&0!==x?y+=e:(I+=e,k++))};return{_:()=>g,h:()=>(e=>[e.t.slice(),e.o])(C),p:()=>z?J:(J=P(o(0,O()+y+I)),R?[t(J[0],R[0]),o(J[1],R[1])]:J),m:e=>C.t[e]===u,v:()=>!!R&&C.t.slice(o(0,R[0]-1),t(C.l-1,R[1]+1)+1).includes(u),S:q,k:B,I:()=>C.l,T:()=>w,R:()=>x,J:()=>v,M:()=>b,C:W,L:()=>k,O:()=>(z=I,I=0,[z,2===T||O()+v>=W()]),P(e,t){const o=[e,t];return L.add(o),()=>{L.delete(o)}},W(t,n){let s,c,i=0;switch(t){case 1:{const t=z;z=0;const o=n-w,s=r(o);t&&s<r(t)+1||0!==T||(x=o<0?2:1),m&&(R=e,m=!1),w=n,i=4;const l=O();l>=-v&&l<=W()&&(i+=1,c=s>v);break}case 2:i=8,0!==x&&(s=!0,i+=1),x=0,T=0,R=e;break;case 3:{const e=n.filter((([e,t])=>C.t[e]!==t));if(!e.length)break;D(e.reduce(((e,[t,o])=>((2===T||(R?t<R[0]:q(t)+(0===x&&0===T?B(t):0)<O()))&&(e+=o-B(t)),e)),0));for(const[t,o]of e){const e=B(t),r=_(C,t,o);l&&(M+=r?o:o-e)}l&&v&&M>v&&(D(((e,t)=>{let r=0;const n=e.t.filter(((e,o)=>{const n=e!==u;return n&&o<t&&r++,n})),s=e.o;return e.i=-1,((e.o=(e=>{const t=(e=>[...e].sort(((e,t)=>e-t)))(e),o=e.length/2|0;return t.length%2==0?(t[o-1]+t[o])/2:t[o]})(n))-s)*o(t-r,0)})(C,J[0])),l=!1),i=3,c=!0;break}case 4:v!==n&&(v=n,i=3);break;case 5:n[1]?(D(p(C,n[0],!0)),T=2,i=1):p(C,n[0]);break;case 6:b=n;break;case 7:T=1;break;case 8:R=P(n),i=1}i&&(g=[],s&&y&&(I+=y,y=0,k++),L.forEach((([e,t])=>{i&e&&t(c)})))}}},x=e=>{let t;return{q(o){(t||(t=new(b(v(o)).ResizeObserver)(e))).observe(o)},B(e){t.unobserve(e)},D(){t&&t.disconnect()}}},T=(e,t)=>t&&w()?-e:e,R=(t,o,r,n,c,i)=>{const l=Date.now;let u=0,a=!1,f=!1,_=!1,d=!1;const h=(()=>{let o;const r=()=>{o!=e&&clearTimeout(o)},n=()=>{r(),o=s((()=>{o=e,(()=>{if(a||f)return a=!1,void h();_=!1,t.W(2)})()}),150)};return n.U=r,n})(),p=()=>{u=l(),_&&(d=!0),i&&t.W(6,i()),t.W(1,n()),h()},m=e=>{if(a||0===t.R()||e.ctrlKey)return;const o=l()-u;150>o&&50<o&&(r?e.deltaX:e.deltaY)&&(a=!0)},g=()=>{f=!0,_=d=!1},v=()=>{f=!1,S()&&(_=!0)};return o.addEventListener("scroll",p),o.addEventListener("wheel",m,{passive:!0}),o.addEventListener("touchstart",g,{passive:!0}),o.addEventListener("touchend",v,{passive:!0}),{D:()=>{o.removeEventListener("scroll",p),o.removeEventListener("wheel",m),o.removeEventListener("touchstart",g),o.removeEventListener("touchend",v),h.U()},V:()=>{const[e,o]=t.O();e&&(c(T(e,r),o,d),d=!1,o&&t.J()>t.C()&&t.W(1,n()))}}},J=0,M=1,C=2,L=3,O=4,P=5,W=6,q=7,B=8,D=9,U=10,V=11,X=12,Y=13,F=14,H=15,j=16,A=17,E=18,G=19,K=(t,r,n,l,u,a)=>{const f=z(t,null!=r?r:40,void 0,0,!r),_=((t,o)=>{let r;const n=o?"width":"height",s=new WeakMap,c=x((o=>{const c=[];for(const{target:i,contentRect:l}of o)if(i.offsetParent)if(i===r)t.W(4,l[n]);else{const t=s.get(i);t!=e&&c.push([t,l[n]])}c.length&&t.W(3,c)}));return{X(e){c.q(r=e)},Y:(e,t)=>(s.set(e,t),c.q(e),()=>{s.delete(e),c.B(e)}),D:c.D}})(f,n),d=((e,t)=>{let o,r,n;const l=t?"scrollLeft":"scrollTop",u=t?"overflowX":"overflowY",a=async(r,c)=>{if(!o)return void i((()=>a(r,c)));n&&n();const u=()=>{let t;return[new Promise(((o,r)=>{t=o,n=r,(e=>!!e.J())(e)&&s(r,150)})),e.P(2,(()=>{t&&t()}))]};if(c&&k()){for(;e.W(8,r()),e.v();){const[e,t]=u();try{await e}catch(e){return}finally{t()}}o.scrollTo({[t?"left":"top"]:T(r(),t),behavior:"smooth"})}else for(;;){const[n,s]=u();try{o[l]=T(r(),t),e.W(7),await n}catch(e){return}finally{s()}}};return{q(c){o=c,r=R(e,c,t,(()=>T(c[l],t)),((t,o,r)=>{if(r){const e=c.style,t=e[u];e[u]="hidden",s((()=>{e[u]=t}))}o?(c[l]=e.T()+t,n&&n()):c[l]+=t}))},D(){r&&r.D()},F(e){a((()=>e))},H(t){t+=e.T(),a((()=>t))},j(t,{align:o,smooth:r,offset:n=0}={}){if(t=c(t,0,e.I()-1),"nearest"===o){const r=e.S(t),n=e.T();if(r<n)o="start";else{if(!(r+e.k(t)>n+e.J()))return;o="end"}}a((()=>n+e.M()+e.S(t)+("end"===o?e.k(t)-e.J():"center"===o?(e.k(t)-e.J())/2:0)),r)},V:()=>{r&&r.V()}}})(f,n),h=f.P(1,(()=>{l(f._())})),p=f.P(4,(()=>{u(f.T())})),m=f.P(8,(()=>{a()}));return{[J]:e=>{_.X(e),d.q(e)},[M]:()=>{h(),p(),m(),_.D(),d.D()},[C]:f.p,[L]:f.C,[O]:f.J,[P]:f.T,[W]:f.R,[q]:f.L,[B]:f.S,[D]:f.m,[U]:f.I,[V]:f.M,[X]:_.Y,[Y]:d.V,[F]:(e,t)=>{f.W(5,[e,t])},[H]:e=>{f.W(6,e)},[j]:()=>(e=>o(e.C(),e.J()))(f),[A]:d.F,[E]:d.H,[G]:d.j}},N=(t,o,r,n,s)=>{const c=z(t,null!=o?o:40,void 0,0,!o),i=((t,o)=>{const r=o?"width":"height",n=o?"innerWidth":"innerHeight",s=new WeakMap,c=x((o=>{const n=[];for(const{target:t,contentRect:c}of o){if(!t.offsetParent)continue;const o=s.get(t);o!=e&&n.push([o,c[r]])}n.length&&t.W(3,n)}));let i;return{X(e){const o=b(v(e)),r=()=>{t.W(4,o[n])};o.addEventListener("resize",r),r(),i=()=>{o.removeEventListener("resize",r)}},Y:(e,t)=>(s.set(e,t),c.q(e),()=>{s.delete(e),c.B(e)}),D(){i&&i(),c.D()}}})(c,r),l=((e,t)=>{let o;return{q(r){const n=t?"scrollX":"scrollY",s=v(r),c=b(s),i=s.body,l=(e,t,o,r=0)=>{const n=o?"offsetLeft":"offsetTop",s=r+(o&&w()?c.innerWidth-e[n]-e.offsetWidth:e[n]),i=e.offsetParent;return e!==t&&i?l(i,t,o,s):s};o=R(e,c,t,(()=>T(c[n],t)),((o,r)=>{r?c.scroll({[t?"left":"top"]:e.T()+o}):c.scrollBy(t?o:0,t?0:o)}),(()=>l(r,i,t)))},D(){o&&o.D()},V:()=>{o&&o.V()}}})(c,r),u=c.P(1,(()=>{n(c._())})),a=c.P(8,(()=>{s()}));return{[J]:e=>{i.X(e),l.q(e)},[M]:()=>{u(),a(),i.D(),l.D()},[C]:c.p,[L]:c.C,[O]:c.J,[P]:c.T,[W]:c.R,[q]:c.L,[B]:c.S,[D]:c.m,[U]:c.I,[V]:c.M,[X]:i.Y,[Y]:l.V,[F]:(e,t)=>{c.W(5,[e,t])}}};export{F as CHANGE_ITEM_LENGTH,H as CHANGE_START_MARGIN,Y as FIX_SCROLL_JUMP,U as GET_ITEMS_LENGTH,B as GET_ITEM_OFFSET,q as GET_JUMP_COUNT,C as GET_RANGE,W as GET_SCROLL_DIRECTION,P as GET_SCROLL_OFFSET,j as GET_SCROLL_SIZE,V as GET_START_SPACER_SIZE,L as GET_TOTAL_SIZE,O as GET_VIEWPORT_SIZE,D as IS_ITEM_HIDDEN,X as OBSERVE_ITEM_RESIZE,J as ON_MOUNT,M as ON_UN_MOUNT,E as SCROLL_BY,I as SCROLL_IDLE,A as SCROLL_TO,G as SCROLL_TO_INDEX,K as createVirtualizer,N as createWindowVirtualizer,y as getOverscanedRange,w as isRTLDocument};
1
+ const e=null,{min:t,max:o,abs:r,floor:n}=Math,s=setTimeout,c=(e,r,n)=>t(n,o(r,e)),i="function"==typeof queueMicrotask?queueMicrotask:e=>{Promise.resolve().then(e)},l=e=>{let t,o;return(...r)=>(t||(t=!0,o=e(...r)),o)},u=-1,a=(e,t,o)=>{const r=o?"unshift":"push";for(let o=0;o<t;o++)e[r](u);return e},f=(e,t)=>{const o=e.t[t];return o===u?e.o:o},_=(e,o,r)=>{const n=e.t[o]===u;return e.t[o]=r,e.i=t(o,e.i),n},d=(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 o=e.i,r=e.u[o];for(;o<t;)r+=f(e,o),e.u[++o]=r;return e.i=t,r},h=(e,t,o=0,r=e.l-1)=>{for(;o<=r;){const s=n((o+r)/2),c=d(e,s);if(c<=t){if(c+f(e,s)>t)return s;o=s+1}else r=s-1}return c(o,0,e.l-1)},p=(e,o,r)=>{const n=o-e.l;return e.i=r?-1:t(o-1,e.i),e.l=o,n>0?(a(e.u,n),a(e.t,n,r),e.o*n):(e.u.splice(n),(r?e.t.splice(0,-n):e.t.splice(n)).reduce(((t,o)=>t-(o===u?e.o:o)),0))},m="undefined"!=typeof window,g=()=>document.documentElement,v=e=>e.ownerDocument,b=e=>e.defaultView,w=/*#__PURE__*/l((()=>!!m&&"rtl"===getComputedStyle(g()).direction)),S=/*#__PURE__*/l((()=>/iP(hone|od|ad)/.test(navigator.userAgent))),k=/*#__PURE__*/l((()=>"scrollBehavior"in g().style)),I=0,y=(e,r,n,s,c)=>(1!==s&&(e-=o(0,n)),2!==s&&(r+=o(0,n)),[o(e,0),t(r,c-1)]),z=(n,s=40,c=0,i,l=!1)=>{let m=!!c,g=[],v=0,b=0,w=0,k=0,I=0,y=0,z=0,x=0,T=0,R=m?[0,o(c-1,0)]:e,J=[0,0],M=0;const C=((e,t)=>({o:t,t:a([],e),l:e,i:-1,u:a([],e)}))(n,s),L=new Set,O=()=>w-b,P=e=>((e,o,r,n)=>{if(n=t(n,e.l-1),d(e,n)<=o){const t=h(e,o+r,n);return[h(e,o,n,t),t]}{const t=h(e,o,void 0,n);return[t,h(e,o+r,t)]}})(C,e,v,J[0]),W=()=>(e=>e.l?d(e,e.l-1)+f(e,e.l-1):0)(C),q=e=>d(C,e)-y,B=e=>f(C,e),D=e=>{e&&(S()&&0!==x?y+=e:(I+=e,k++))};return{_:()=>g,h:()=>(e=>[e.t.slice(),e.o])(C),p:()=>z?J:(J=P(o(0,O()+y+I)),R?[t(J[0],R[0]),o(J[1],R[1])]:J),m:e=>C.t[e]===u,v:()=>!!R&&C.t.slice(o(0,R[0]-1),t(C.l-1,R[1]+1)+1).includes(u),S:q,k:B,I:()=>C.l,T:()=>w,R:()=>x,J:()=>v,M:()=>b,C:W,L:()=>k,O:()=>(z=I,I=0,[z,2===T||O()+v>=W()]),P(e,t){const o=[e,t];return L.add(o),()=>{L.delete(o)}},W(t,n){let s,c,i=0;switch(t){case 1:{const t=z;z=0;const o=n-w,s=r(o);t&&s<r(t)+1||0!==T||(x=o<0?2:1),m&&(R=e,m=!1),w=n,i=4;const l=O();l>=-v&&l<=W()&&(i+=1,c=s>v);break}case 2:i=8,0!==x&&(s=!0,i+=1),x=0,T=0,R=e;break;case 3:{const e=n.filter((([e,t])=>C.t[e]!==t));if(!e.length)break;D(e.reduce(((e,[t,o])=>((2===T||(R?t<R[0]:q(t)+(0===x&&0===T?B(t):0)<O()))&&(e+=o-B(t)),e)),0));for(const[t,o]of e){const e=B(t),r=_(C,t,o);l&&(M+=r?o:o-e)}l&&v&&M>v&&(D(((e,t)=>{let r=0;const n=e.t.filter(((e,o)=>{const n=e!==u;return n&&o<t&&r++,n})),s=e.o;return e.i=-1,((e.o=(e=>{const t=(e=>[...e].sort(((e,t)=>e-t)))(e),o=e.length/2|0;return t.length%2==0?(t[o-1]+t[o])/2:t[o]})(n))-s)*o(t-r,0)})(C,J[0])),l=!1),i=3,c=!0;break}case 4:v!==n&&(v=n,i=3);break;case 5:n[1]?(D(p(C,n[0],!0)),T=2,i=1):p(C,n[0]);break;case 6:b=n;break;case 7:T=1;break;case 8:R=P(n),i=1}i&&(g=[],s&&y&&(I+=y,y=0,k++),L.forEach((([e,t])=>{i&e&&t(c)})))}}},x=e=>{let t;return{q(o){(t||(t=new(b(v(o)).ResizeObserver)(e))).observe(o)},B(e){t.unobserve(e)},D(){t&&t.disconnect()}}},T=(e,t)=>t&&w()?-e:e,R=(t,o,r,n,c,i)=>{const l=Date.now;let u=0,a=!1,f=!1,_=!1,d=!1;const h=(()=>{let o;const r=()=>{o!=e&&clearTimeout(o)},n=()=>{r(),o=s((()=>{o=e,(()=>{if(a||f)return a=!1,void h();_=!1,t.W(2)})()}),150)};return n.U=r,n})(),p=()=>{u=l(),_&&(d=!0),i&&t.W(6,i()),t.W(1,n()),h()},m=e=>{if(a||0===t.R()||e.ctrlKey)return;const o=l()-u;150>o&&50<o&&(r?e.deltaX:e.deltaY)&&(a=!0)},g=()=>{f=!0,_=d=!1},v=()=>{f=!1,S()&&(_=!0)};return o.addEventListener("scroll",p),o.addEventListener("wheel",m,{passive:!0}),o.addEventListener("touchstart",g,{passive:!0}),o.addEventListener("touchend",v,{passive:!0}),{D:()=>{o.removeEventListener("scroll",p),o.removeEventListener("wheel",m),o.removeEventListener("touchstart",g),o.removeEventListener("touchend",v),h.U()},V:()=>{const[e,o]=t.O();e&&(c(T(e,r),o,d),d=!1,o&&t.J()>t.C()&&t.W(1,n()))}}},J=0,M=1,C=2,L=3,O=4,P=5,W=6,q=7,B=8,D=9,U=10,V=11,X=12,Y=13,F=14,H=15,j=16,A=17,E=18,G=19,K=20,N=(t,r,n,l,u,a)=>{const f=z(t,null!=r?r:40,void 0,0,!r),_=((t,o)=>{let r;const n=o?"width":"height",s=new WeakMap,c=x((o=>{const c=[];for(const{target:i,contentRect:l}of o)if(i.offsetParent)if(i===r)t.W(4,l[n]);else{const t=s.get(i);t!=e&&c.push([t,l[n]])}c.length&&t.W(3,c)}));return{X(e){c.q(r=e)},Y:(e,t)=>(s.set(e,t),c.q(e),()=>{s.delete(e),c.B(e)}),D:c.D}})(f,n),d=((e,t)=>{let o,r,n;const l=t?"scrollLeft":"scrollTop",u=t?"overflowX":"overflowY",a=async(r,c)=>{if(!o)return void i((()=>a(r,c)));n&&n();const u=()=>{let t;return[new Promise(((o,r)=>{t=o,n=r,(e=>!!e.J())(e)&&s(r,150)})),e.P(2,(()=>{t&&t()}))]};if(c&&k()){for(;e.W(8,r()),e.v();){const[e,t]=u();try{await e}catch(e){return}finally{t()}}o.scrollTo({[t?"left":"top"]:T(r(),t),behavior:"smooth"})}else for(;;){const[n,s]=u();try{o[l]=T(r(),t),e.W(7),await n}catch(e){return}finally{s()}}};return{q(c){o=c,r=R(e,c,t,(()=>T(c[l],t)),((t,o,r)=>{if(r){const e=c.style,t=e[u];e[u]="hidden",s((()=>{e[u]=t}))}o?(c[l]=e.T()+t,n&&n()):c[l]+=t}))},D(){r&&r.D()},F(e){a((()=>e))},H(t){t+=e.T(),a((()=>t))},j(t,{align:o,smooth:r,offset:n=0}={}){if(t=c(t,0,e.I()-1),"nearest"===o){const r=e.S(t),n=e.T();if(r<n)o="start";else{if(!(r+e.k(t)>n+e.J()))return;o="end"}}a((()=>n+e.M()+e.S(t)+("end"===o?e.k(t)-e.J():"center"===o?(e.k(t)-e.J())/2:0)),r)},V:()=>{r&&r.V()}}})(f,n),h=f.P(1,(()=>{l(f._())})),p=f.P(4,(()=>{u(f.T())})),m=f.P(8,(()=>{a()}));return{[J]:e=>{_.X(e),d.q(e)},[M]:()=>{h(),p(),m(),_.D(),d.D()},[C]:f.p,[L]:f.C,[O]:f.J,[P]:f.T,[W]:f.R,[q]:f.L,[B]:f.S,[D]:f.k,[U]:f.m,[V]:f.I,[X]:f.M,[Y]:_.Y,[F]:d.V,[H]:(e,t)=>{f.W(5,[e,t])},[j]:e=>{f.W(6,e)},[A]:()=>(e=>o(e.C(),e.J()))(f),[E]:d.F,[G]:d.H,[K]:d.j}},Q=(t,o,r,n,s)=>{const c=z(t,null!=o?o:40,void 0,0,!o),i=((t,o)=>{const r=o?"width":"height",n=o?"innerWidth":"innerHeight",s=new WeakMap,c=x((o=>{const n=[];for(const{target:t,contentRect:c}of o){if(!t.offsetParent)continue;const o=s.get(t);o!=e&&n.push([o,c[r]])}n.length&&t.W(3,n)}));let i;return{X(e){const o=b(v(e)),r=()=>{t.W(4,o[n])};o.addEventListener("resize",r),r(),i=()=>{o.removeEventListener("resize",r)}},Y:(e,t)=>(s.set(e,t),c.q(e),()=>{s.delete(e),c.B(e)}),D(){i&&i(),c.D()}}})(c,r),l=((e,t)=>{let o;return{q(r){const n=t?"scrollX":"scrollY",s=v(r),c=b(s),i=s.body,l=(e,t,o,r=0)=>{const n=o?"offsetLeft":"offsetTop",s=r+(o&&w()?c.innerWidth-e[n]-e.offsetWidth:e[n]),i=e.offsetParent;return e!==t&&i?l(i,t,o,s):s};o=R(e,c,t,(()=>T(c[n],t)),((o,r)=>{r?c.scroll({[t?"left":"top"]:e.T()+o}):c.scrollBy(t?o:0,t?0:o)}),(()=>l(r,i,t)))},D(){o&&o.D()},V:()=>{o&&o.V()}}})(c,r),u=c.P(1,(()=>{n(c._())})),a=c.P(8,(()=>{s()}));return{[J]:e=>{i.X(e),l.q(e)},[M]:()=>{u(),a(),i.D(),l.D()},[C]:c.p,[L]:c.C,[O]:c.J,[P]:c.T,[W]:c.R,[q]:c.L,[B]:c.S,[U]:c.m,[V]:c.I,[Y]:i.Y,[F]:l.V,[H]:(e,t)=>{c.W(5,[e,t])}}};export{H as CHANGE_ITEM_LENGTH,j as CHANGE_START_MARGIN,F as FIX_SCROLL_JUMP,V as GET_ITEMS_LENGTH,B as GET_ITEM_OFFSET,D as GET_ITEM_SIZE,q as GET_JUMP_COUNT,C as GET_RANGE,W as GET_SCROLL_DIRECTION,P as GET_SCROLL_OFFSET,A as GET_SCROLL_SIZE,X as GET_START_SPACER_SIZE,L as GET_TOTAL_SIZE,O as GET_VIEWPORT_SIZE,U as IS_ITEM_HIDDEN,Y as OBSERVE_ITEM_RESIZE,J as ON_MOUNT,M as ON_UN_MOUNT,G as SCROLL_BY,I as SCROLL_IDLE,E as SCROLL_TO,K as SCROLL_TO_INDEX,N as createVirtualizer,Q as createWindowVirtualizer,y as getOverscanedRange,w as isRTLDocument};
@@ -41,7 +41,7 @@ export declare const VList: import("vue").DefineComponent<{
41
41
  }, VListHandle, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
42
42
  /**
43
43
  * Callback invoked whenever scroll offset changes.
44
- * @param offset Current scrollTop or scrollLeft.
44
+ * @param offset Current scrollTop, or scrollLeft if horizontal: true.
45
45
  */
46
46
  scroll: (offset: number) => void;
47
47
  /**
@@ -50,16 +50,10 @@ export declare const VList: import("vue").DefineComponent<{
50
50
  scrollEnd: () => void;
51
51
  /**
52
52
  * Callback invoked when visible items range changes.
53
+ * @param startIndex The start index of viewable items.
54
+ * @param endIndex The end index of viewable items.
53
55
  */
54
- rangeChange: (
55
- /**
56
- * The start index of viewable items.
57
- */
58
- startIndex: number,
59
- /**
60
- * The end index of viewable items.
61
- */
62
- endIndex: number) => void;
56
+ rangeChange: (startIndex: number, endIndex: number) => void;
63
57
  }, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
64
58
  /**
65
59
  * The data items rendered by this component.
@@ -3,15 +3,15 @@ import { VNode, ComponentOptionsMixin, SlotsType, PropType, NativeElements } fro
3
3
  import { ScrollToIndexOpts } from "../core/types";
4
4
  export interface VirtualizerHandle {
5
5
  /**
6
- * Get current scrollTop or scrollLeft.
6
+ * Get current scrollTop, or scrollLeft if horizontal: true.
7
7
  */
8
8
  readonly scrollOffset: number;
9
9
  /**
10
- * Get current scrollHeight or scrollWidth.
10
+ * Get current scrollHeight, or scrollWidth if horizontal: true.
11
11
  */
12
12
  readonly scrollSize: number;
13
13
  /**
14
- * Get current offsetHeight or offsetWidth.
14
+ * Get current offsetHeight, or offsetWidth if horizontal: true.
15
15
  */
16
16
  readonly viewportSize: number;
17
17
  /**
@@ -19,6 +19,11 @@ export interface VirtualizerHandle {
19
19
  * @param index index of item
20
20
  */
21
21
  getItemOffset(index: number): number;
22
+ /**
23
+ * Get item size.
24
+ * @param index index of item
25
+ */
26
+ getItemSize(index: number): number;
22
27
  /**
23
28
  * Scroll to the item specified by index.
24
29
  * @param index index of item
@@ -79,7 +84,7 @@ export declare const Virtualizer: import("vue").DefineComponent<{
79
84
  */
80
85
  ssrCount: NumberConstructor;
81
86
  /**
82
- * Reference to the scrollable element. The default will get the parent element of virtualizer.
87
+ * Reference to the scrollable element. The default will get the direct parent element of virtualizer.
83
88
  */
84
89
  scrollRef: PropType<HTMLElement>;
85
90
  /**
@@ -101,7 +106,7 @@ export declare const Virtualizer: import("vue").DefineComponent<{
101
106
  }, VirtualizerHandle, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
102
107
  /**
103
108
  * Callback invoked whenever scroll offset changes.
104
- * @param offset Current scrollTop or scrollLeft.
109
+ * @param offset Current scrollTop, or scrollLeft if horizontal: true.
105
110
  */
106
111
  scroll: (offset: number) => void;
107
112
  /**
@@ -110,16 +115,10 @@ export declare const Virtualizer: import("vue").DefineComponent<{
110
115
  scrollEnd: () => void;
111
116
  /**
112
117
  * Callback invoked when visible items range changes.
118
+ * @param startIndex The start index of viewable items.
119
+ * @param endIndex The end index of viewable items.
113
120
  */
114
- rangeChange: (
115
- /**
116
- * The start index of viewable items.
117
- */
118
- startIndex: number,
119
- /**
120
- * The end index of viewable items.
121
- */
122
- endIndex: number) => void;
121
+ rangeChange: (startIndex: number, endIndex: number) => void;
123
122
  }, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
124
123
  /**
125
124
  * The data items rendered by this component.
@@ -163,7 +162,7 @@ export declare const Virtualizer: import("vue").DefineComponent<{
163
162
  */
164
163
  ssrCount: NumberConstructor;
165
164
  /**
166
- * Reference to the scrollable element. The default will get the parent element of virtualizer.
165
+ * Reference to the scrollable element. The default will get the direct parent element of virtualizer.
167
166
  */
168
167
  scrollRef: PropType<HTMLElement>;
169
168
  /**
@@ -54,16 +54,10 @@ export declare const WindowVirtualizer: import("vue").DefineComponent<{
54
54
  scrollEnd: () => void;
55
55
  /**
56
56
  * Callback invoked when visible items range changes.
57
+ * @param startIndex The start index of viewable items.
58
+ * @param endIndex The end index of viewable items.
57
59
  */
58
- rangeChange: (
59
- /**
60
- * The start index of viewable items.
61
- */
62
- startIndex: number,
63
- /**
64
- * The end index of viewable items.
65
- */
66
- endIndex: number) => void;
60
+ rangeChange: (startIndex: number, endIndex: number) => void;
67
61
  }, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
68
62
  /**
69
63
  * The data items rendered by this component.
package/lib/vue/index.js CHANGED
@@ -1,2 +1,2 @@
1
- var e=require("vue");const t=null,{min:o,max:r,abs:n,floor:s}=Math,i=setTimeout,l=(e,t,n)=>o(n,r(t,e)),c="function"==typeof queueMicrotask?queueMicrotask:e=>{Promise.resolve().then(e)},a=e=>{let t,o;return(...r)=>(t||(t=!0,o=e(...r)),o)},u=-1,f=(e,t,o)=>{const r=o?"unshift":"push";for(let o=0;o<t;o++)e[r](u);return e},d=(e,t)=>{const o=e.t[t];return o===u?e.o:o},_=(e,t,r)=>{const n=e.t[t]===u;return e.t[t]=r,e.i=o(t,e.i),n},p=(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 o=e.i,r=e.u[o];for(;o<t;)r+=d(e,o),e.u[++o]=r;return e.i=t,r},h=(e,t,o=0,r=e.l-1)=>{for(;o<=r;){const n=s((o+r)/2),i=p(e,n);if(i<=t){if(i+d(e,n)>t)return n;o=n+1}else r=n-1}return l(o,0,e.l-1)},g=(e,t,r)=>{const n=t-e.l;return e.i=r?-1:o(t-1,e.i),e.l=t,n>0?(f(e.u,n),f(e.t,n,r),e.o*n):(e.u.splice(n),(r?e.t.splice(0,-n):e.t.splice(n)).reduce(((t,o)=>t-(o===u?e.o:o)),0))},v="undefined"!=typeof window,m=()=>document.documentElement,b=e=>e.ownerDocument,y=e=>e.defaultView,S=/*#__PURE__*/a((()=>!!v&&"rtl"===getComputedStyle(m()).direction)),z=/*#__PURE__*/a((()=>/iP(hone|od|ad)/.test(navigator.userAgent))),x=/*#__PURE__*/a((()=>"scrollBehavior"in m().style)),w=(e,t,n,s,i)=>(1!==s&&(e-=r(0,n)),2!==s&&(t+=r(0,n)),[r(e,0),o(t,i-1)]),O=(e,s=40,i=0,l,c=!1)=>{let a=!!i,v=[],m=0,b=0,y=0,S=0,x=0,w=0,O=0,k=0,C=0,I=a?[0,r(i-1,0)]:t,j=[0,0],B=0;const R=((e,t)=>({o:t,t:f([],e),l:e,i:-1,u:f([],e)}))(e,s),q=new Set,N=()=>y-b,T=e=>((e,t,r,n)=>{if(n=o(n,e.l-1),p(e,n)<=t){const o=h(e,t+r,n);return[h(e,t,n,o),o]}{const o=h(e,t,void 0,n);return[o,h(e,t+r,o)]}})(R,e,m,j[0]),E=()=>(e=>e.l?p(e,e.l-1)+d(e,e.l-1):0)(R),H=e=>p(R,e)-w,M=e=>d(R,e),A=e=>{e&&(z()&&0!==k?w+=e:(x+=e,S++))};return{p:()=>v,h:()=>(e=>[e.t.slice(),e.o])(R),v:()=>O?j:(j=T(r(0,N()+w+x)),I?[o(j[0],I[0]),r(j[1],I[1])]:j),m:e=>R.t[e]===u,S:()=>!!I&&R.t.slice(r(0,I[0]-1),o(R.l-1,I[1]+1)+1).includes(u),O:H,k:M,C:()=>R.l,I:()=>y,j:()=>k,B:()=>m,R:()=>b,q:E,N:()=>S,T:()=>(O=x,x=0,[O,2===C||N()+m>=E()]),H(e,t){const o=[e,t];return q.add(o),()=>{q.delete(o)}},M(e,o){let s,i,l=0;switch(e){case 1:{const e=O;O=0;const r=o-y,s=n(r);e&&s<n(e)+1||0!==C||(k=r<0?2:1),a&&(I=t,a=!1),y=o,l=4;const c=N();c>=-m&&c<=E()&&(l+=1,i=s>m);break}case 2:l=8,0!==k&&(s=!0,l+=1),k=0,C=0,I=t;break;case 3:{const e=o.filter((([e,t])=>R.t[e]!==t));if(!e.length)break;A(e.reduce(((e,[t,o])=>((2===C||(I?t<I[0]:H(t)+(0===k&&0===C?M(t):0)<N()))&&(e+=o-M(t)),e)),0));for(const[t,o]of e){const e=M(t),r=_(R,t,o);c&&(B+=r?o:o-e)}c&&m&&B>m&&(A(((e,t)=>{let o=0;const n=e.t.filter(((e,r)=>{const n=e!==u;return n&&r<t&&o++,n})),s=e.o;return e.i=-1,((e.o=(e=>{const t=(e=>[...e].sort(((e,t)=>e-t)))(e),o=e.length/2|0;return t.length%2==0?(t[o-1]+t[o])/2:t[o]})(n))-s)*r(t-o,0)})(R,j[0])),c=!1),l=3,i=!0;break}case 4:m!==o&&(m=o,l=3);break;case 5:o[1]?(A(g(R,o[0],!0)),C=2,l=1):g(R,o[0]);break;case 6:b=o;break;case 7:C=1;break;case 8:I=T(o),l=1}l&&(v=[],s&&w&&(x+=w,w=0,S++),q.forEach((([e,t])=>{l&e&&t(i)})))}}},k=e=>{let t;return{A(o){(t||(t=new(y(b(o)).ResizeObserver)(e))).observe(o)},J(e){t.unobserve(e)},L(){t&&t.disconnect()}}},C=(e,t)=>t&&S()?-e:e,I=(e,o,r,n,s,l)=>{const c=Date.now;let a=0,u=!1,f=!1,d=!1,_=!1;const p=(()=>{let o;const r=()=>{o!=t&&clearTimeout(o)},n=()=>{r(),o=i((()=>{o=t,(()=>{if(u||f)return u=!1,void p();d=!1,e.M(2)})()}),150)};return n.P=r,n})(),h=()=>{a=c(),d&&(_=!0),l&&e.M(6,l()),e.M(1,n()),p()},g=t=>{if(u||0===e.j()||t.ctrlKey)return;const o=c()-a;150>o&&50<o&&(r?t.deltaX:t.deltaY)&&(u=!0)},v=()=>{f=!0,d=_=!1},m=()=>{f=!1,z()&&(d=!0)};return o.addEventListener("scroll",h),o.addEventListener("wheel",g,{passive:!0}),o.addEventListener("touchstart",v,{passive:!0}),o.addEventListener("touchend",m,{passive:!0}),{L:()=>{o.removeEventListener("scroll",h),o.removeEventListener("wheel",g),o.removeEventListener("touchstart",v),o.removeEventListener("touchend",m),p.P()},W:()=>{const[t,o]=e.T();t&&(s(C(t,r),o,_),_=!1,o&&e.B()>e.q()&&e.M(1,n()))}}},j=/*#__PURE__*/e.defineComponent({props:{X:{type:Object,required:!0},Y:{type:Function,required:!0},D:{type:Number,required:!0},F:{type:Number,required:!0},U:{type:Boolean},V:{type:Boolean},G:{type:Boolean},K:{type:String,required:!0}},setup(t){const o=e.ref();return e.watch((()=>o.value&&t.D),((e,r,n)=>{n(t.Y(o.value,t.D))}),{flush:"post"}),()=>{const{X:r,F:n,U:s,V:i,G:l,K:c}=t,a={position:s&&l?void 0:"absolute",[i?"height":"width"]:"100%",[i?"top":"left"]:"0px",[i?S()?"right":"left":"top"]:n+"px",visibility:!s||l?"visible":"hidden"};return i&&(a.display="flex"),e.createVNode(c,{ref:o,style:a},"function"==typeof(u=r)||"[object Object]"===Object.prototype.toString.call(u)&&!e.isVNode(u)?r:{default:()=>[r],_:2},8,["style"]);var u}}}),B=(e,o)=>{const r=e.key;return r!=t?r:"_"+o},R={data:{type:Array,required:!0},overscan:{type:Number,default:4},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"}},q=/*#__PURE__*/e.defineComponent({props:R,emits:["scroll","scrollEnd","rangeChange"],setup(o,{emit:n,expose:s,slots:a}){var u;let f=!!o.ssrCount;const d=o.horizontal,_=e.ref(),p=O(o.data.length,null!==(u=o.itemSize)&&void 0!==u?u:40,o.ssrCount,0,!o.itemSize),h=((e,o)=>{let r;const n=o?"width":"height",s=new WeakMap,i=k((o=>{const i=[];for(const{target:l,contentRect:c}of o)if(l.offsetParent)if(l===r)e.M(4,c[n]);else{const e=s.get(l);e!=t&&i.push([e,c[n]])}i.length&&e.M(3,i)}));return{Z(e){i.A(r=e)},$:(e,t)=>(s.set(e,t),i.A(e),()=>{s.delete(e),i.J(e)}),L:i.L}})(p,d),g=((e,t)=>{let o,r,n;const s=t?"scrollLeft":"scrollTop",a=t?"overflowX":"overflowY",u=async(r,l)=>{if(!o)return void c((()=>u(r,l)));n&&n();const a=()=>{let t;return[new Promise(((o,r)=>{t=o,n=r,(e=>!!e.B())(e)&&i(r,150)})),e.H(2,(()=>{t&&t()}))]};if(l&&x()){for(;e.M(8,r()),e.S();){const[e,t]=a();try{await e}catch(e){return}finally{t()}}o.scrollTo({[t?"left":"top"]:C(r(),t),behavior:"smooth"})}else for(;;){const[n,i]=a();try{o[s]=C(r(),t),e.M(7),await n}catch(e){return}finally{i()}}};return{A(l){o=l,r=I(e,l,t,(()=>C(l[s],t)),((t,o,r)=>{if(r){const e=l.style,t=e[a];e[a]="hidden",i((()=>{e[a]=t}))}o?(l[s]=e.I()+t,n&&n()):l[s]+=t}))},L(){r&&r.L()},ee(e){u((()=>e))},te(t){t+=e.I(),u((()=>t))},oe(t,{align:o,smooth:r,offset:n=0}={}){if(t=l(t,0,e.C()-1),"nearest"===o){const r=e.O(t),n=e.I();if(r<n)o="start";else{if(!(r+e.k(t)>n+e.B()))return;o="end"}}u((()=>n+e.R()+e.O(t)+("end"===o?e.k(t)-e.B():"center"===o?(e.k(t)-e.B())/2:0)),r)},W:()=>{r&&r.W()}}})(p,d),v=e.ref(p.p()),m=p.H(1,(()=>{v.value=p.p()})),b=p.H(4,(()=>{n("scroll",p.I())})),y=p.H(8,(()=>{n("scrollEnd")}));return e.onMounted((()=>{f=!1,c((()=>{const e=e=>{h.Z(e),g.A(e)};o.scrollRef?e(o.scrollRef):e(_.value.parentElement)}))})),e.onUnmounted((()=>{m(),b(),y(),h.L(),g.L()})),e.watch((()=>o.data.length),(e=>{p.M(5,[e,o.shift])})),e.watch((()=>o.startMargin),(e=>{p.M(6,e)}),{immediate:!0}),e.watch([v,p.N],(([,e],[,t])=>{e!==t&&g.W()}),{flush:"post"}),e.watch([v,p.v],(([,[e,t]],[,[o,r]])=>{o===e&&r===t||n("rangeChange",e,t)}),{flush:"post"}),s({get scrollOffset(){return p.I()},get scrollSize(){return(e=>r(e.q(),e.B()))(p)},get viewportSize(){return p.B()},getItemOffset:p.O,scrollToIndex:g.oe,scrollTo:g.ee,scrollBy:g.te}),()=>{v.value;const t=o.as,r=o.item,n=o.data.length,[s,i]=p.v(),l=p.j(),c=p.q(),u=[];for(let[t,c]=w(s,i,o.overscan,l,n);t<=c;t++){const n=a.default({item:o.data[t],index:t})[0];u.push(e.createVNode(j,{key:B(n,t),Y:h.$,D:t,F:p.O(t),U:p.m(t),X:n,V:d,G:f,K:r},null,8,["_resizer","_index","_offset","_hide","_children","_isHorizontal","_isSSR","_as"]))}return e.createVNode(t,{ref:_,style:{overflowAnchor:"none",flex:"none",position:"relative",visibility:"hidden",width:d?c+"px":"100%",height:d?"100%":c+"px",pointerEvents:0!==l?"none":void 0}},"function"==typeof(g=u)||"[object Object]"===Object.prototype.toString.call(g)&&!e.isVNode(g)?u:{default:()=>[u],_:2},8,["style"]);var g}}}),N={data:{type:Array,required:!0},overscan:{type:Number,default:4},itemSize:Number,shift:Boolean,horizontal:Boolean,ssrCount:Number},T=/*#__PURE__*/e.defineComponent({props:N,emits:["scroll","scrollEnd","rangeChange"],setup(t,{emit:o,expose:r,slots:n}){const s=t.horizontal,i=e=>{o("scroll",e)},l=()=>{o("scrollEnd")},c=(e,t)=>{o("rangeChange",e,t)},a=e.ref();return r({get scrollOffset(){return a.value.scrollOffset},get scrollSize(){return a.value.scrollSize},get viewportSize(){return a.value.viewportSize},getItemOffset:(...e)=>a.value.getItemOffset(...e),scrollToIndex:(...e)=>a.value.scrollToIndex(...e),scrollTo:(...e)=>a.value.scrollTo(...e),scrollBy:(...e)=>a.value.scrollBy(...e)}),()=>{return e.createVNode("div",{style:{display:s?"inline-block":"block",[s?"overflowX":"overflowY"]:"auto",contain:"strict",width:"100%",height:"100%"}},[e.createVNode(q,{ref:a,data:t.data,overscan:t.overscan,itemSize:t.itemSize,shift:t.shift,ssrCount:t.ssrCount,horizontal:s,onScroll:i,onScrollEnd:l,onRangeChange:c},(o=n,"function"==typeof o||"[object Object]"===Object.prototype.toString.call(o)&&!e.isVNode(o)?n:{default:()=>[n],_:2}),8,["data","overscan","itemSize","shift","ssrCount","horizontal","onScroll","onScrollEnd","onRangeChange"])],4);var o}}}),E={data:{type:Array,required:!0},overscan:{type:Number,default:4},itemSize:Number,shift:Boolean,horizontal:Boolean,as:{type:String,default:"div"},item:{type:String,default:"div"}},H=/*#__PURE__*/e.defineComponent({props:E,emits:["scrollEnd","rangeChange"],setup(o,{emit:r,slots:n}){var s;const i=o.horizontal,l=e.ref(),c=O(o.data.length,null!==(s=o.itemSize)&&void 0!==s?s:40,void 0,0,!o.itemSize),a=((e,o)=>{const r=o?"width":"height",n=o?"innerWidth":"innerHeight",s=new WeakMap,i=k((o=>{const n=[];for(const{target:e,contentRect:i}of o){if(!e.offsetParent)continue;const o=s.get(e);o!=t&&n.push([o,i[r]])}n.length&&e.M(3,n)}));let l;return{Z(t){const o=y(b(t)),r=()=>{e.M(4,o[n])};o.addEventListener("resize",r),r(),l=()=>{o.removeEventListener("resize",r)}},$:(e,t)=>(s.set(e,t),i.A(e),()=>{s.delete(e),i.J(e)}),L(){l&&l(),i.L()}}})(c,i),u=((e,t)=>{let o;return{A(r){const n=t?"scrollX":"scrollY",s=b(r),i=y(s),l=s.body,c=(e,t,o,r=0)=>{const n=o?"offsetLeft":"offsetTop",s=r+(o&&S()?i.innerWidth-e[n]-e.offsetWidth:e[n]),l=e.offsetParent;return e!==t&&l?c(l,t,o,s):s};o=I(e,i,t,(()=>C(i[n],t)),((o,r)=>{r?i.scroll({[t?"left":"top"]:e.I()+o}):i.scrollBy(t?o:0,t?0:o)}),(()=>c(r,l,t)))},L(){o&&o.L()},W:()=>{o&&o.W()}}})(c,i),f=e.ref(c.p()),d=c.H(1,(()=>{f.value=c.p()})),_=c.H(8,(()=>{r("scrollEnd")}));return e.onMounted((()=>{const e=l.value;e&&(a.Z(e),u.A(e))})),e.onUnmounted((()=>{d(),_(),a.L(),u.L()})),e.watch((()=>o.data.length),(e=>{c.M(5,[e,o.shift])})),e.watch([f,c.N],(([,e],[,t])=>{e!==t&&u.W()}),{flush:"post"}),e.watch([f,c.v],(([,[e,t]],[,[o,n]])=>{o===e&&n===t||r("rangeChange",e,t)}),{flush:"post"}),()=>{f.value;const t=o.as,r=o.item,s=o.data.length,[u,d]=c.v(),_=c.j(),p=c.q(),h=[];for(let[t,l]=w(u,d,o.overscan,_,s);t<=l;t++){const s=n.default({item:o.data[t],index:t})[0];h.push(e.createVNode(j,{key:B(s,t),Y:a.$,D:t,F:c.O(t),U:c.m(t),X:s,V:i,K:r},null,8,["_resizer","_index","_offset","_hide","_children","_isHorizontal","_as"]))}return e.createVNode(t,{ref:l,style:{overflowAnchor:"none",flex:"none",position:"relative",visibility:"hidden",width:i?p+"px":"100%",height:i?"100%":p+"px",pointerEvents:0!==_?"none":void 0}},"function"==typeof(g=h)||"[object Object]"===Object.prototype.toString.call(g)&&!e.isVNode(g)?h:{default:()=>[h],_:2},8,["style"]);var g}}});exports.VList=T,exports.Virtualizer=q,exports.WindowVirtualizer=H;
1
+ var e=require("vue");const t=null,{min:o,max:r,abs:n,floor:s}=Math,i=setTimeout,l=(e,t,n)=>o(n,r(t,e)),c="function"==typeof queueMicrotask?queueMicrotask:e=>{Promise.resolve().then(e)},a=e=>{let t,o;return(...r)=>(t||(t=!0,o=e(...r)),o)},u=-1,f=(e,t,o)=>{const r=o?"unshift":"push";for(let o=0;o<t;o++)e[r](u);return e},d=(e,t)=>{const o=e.t[t];return o===u?e.o:o},_=(e,t,r)=>{const n=e.t[t]===u;return e.t[t]=r,e.i=o(t,e.i),n},p=(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 o=e.i,r=e.u[o];for(;o<t;)r+=d(e,o),e.u[++o]=r;return e.i=t,r},h=(e,t,o=0,r=e.l-1)=>{for(;o<=r;){const n=s((o+r)/2),i=p(e,n);if(i<=t){if(i+d(e,n)>t)return n;o=n+1}else r=n-1}return l(o,0,e.l-1)},g=(e,t,r)=>{const n=t-e.l;return e.i=r?-1:o(t-1,e.i),e.l=t,n>0?(f(e.u,n),f(e.t,n,r),e.o*n):(e.u.splice(n),(r?e.t.splice(0,-n):e.t.splice(n)).reduce(((t,o)=>t-(o===u?e.o:o)),0))},m="undefined"!=typeof window,v=()=>document.documentElement,b=e=>e.ownerDocument,y=e=>e.defaultView,S=/*#__PURE__*/a((()=>!!m&&"rtl"===getComputedStyle(v()).direction)),z=/*#__PURE__*/a((()=>/iP(hone|od|ad)/.test(navigator.userAgent))),x=/*#__PURE__*/a((()=>"scrollBehavior"in v().style)),w=(e,t,n,s,i)=>(1!==s&&(e-=r(0,n)),2!==s&&(t+=r(0,n)),[r(e,0),o(t,i-1)]),I=(e,s=40,i=0,l,c=!1)=>{let a=!!i,m=[],v=0,b=0,y=0,S=0,x=0,w=0,I=0,O=0,k=0,C=a?[0,r(i-1,0)]:t,j=[0,0],B=0;const R=((e,t)=>({o:t,t:f([],e),l:e,i:-1,u:f([],e)}))(e,s),q=new Set,N=()=>y-b,T=e=>((e,t,r,n)=>{if(n=o(n,e.l-1),p(e,n)<=t){const o=h(e,t+r,n);return[h(e,t,n,o),o]}{const o=h(e,t,void 0,n);return[o,h(e,t+r,o)]}})(R,e,v,j[0]),E=()=>(e=>e.l?p(e,e.l-1)+d(e,e.l-1):0)(R),H=e=>p(R,e)-w,M=e=>d(R,e),A=e=>{e&&(z()&&0!==O?w+=e:(x+=e,S++))};return{p:()=>m,h:()=>(e=>[e.t.slice(),e.o])(R),m:()=>I?j:(j=T(r(0,N()+w+x)),C?[o(j[0],C[0]),r(j[1],C[1])]:j),v:e=>R.t[e]===u,S:()=>!!C&&R.t.slice(r(0,C[0]-1),o(R.l-1,C[1]+1)+1).includes(u),I:H,O:M,k:()=>R.l,C:()=>y,j:()=>O,B:()=>v,R:()=>b,q:E,N:()=>S,T:()=>(I=x,x=0,[I,2===k||N()+v>=E()]),H(e,t){const o=[e,t];return q.add(o),()=>{q.delete(o)}},M(e,o){let s,i,l=0;switch(e){case 1:{const e=I;I=0;const r=o-y,s=n(r);e&&s<n(e)+1||0!==k||(O=r<0?2:1),a&&(C=t,a=!1),y=o,l=4;const c=N();c>=-v&&c<=E()&&(l+=1,i=s>v);break}case 2:l=8,0!==O&&(s=!0,l+=1),O=0,k=0,C=t;break;case 3:{const e=o.filter((([e,t])=>R.t[e]!==t));if(!e.length)break;A(e.reduce(((e,[t,o])=>((2===k||(C?t<C[0]:H(t)+(0===O&&0===k?M(t):0)<N()))&&(e+=o-M(t)),e)),0));for(const[t,o]of e){const e=M(t),r=_(R,t,o);c&&(B+=r?o:o-e)}c&&v&&B>v&&(A(((e,t)=>{let o=0;const n=e.t.filter(((e,r)=>{const n=e!==u;return n&&r<t&&o++,n})),s=e.o;return e.i=-1,((e.o=(e=>{const t=(e=>[...e].sort(((e,t)=>e-t)))(e),o=e.length/2|0;return t.length%2==0?(t[o-1]+t[o])/2:t[o]})(n))-s)*r(t-o,0)})(R,j[0])),c=!1),l=3,i=!0;break}case 4:v!==o&&(v=o,l=3);break;case 5:o[1]?(A(g(R,o[0],!0)),k=2,l=1):g(R,o[0]);break;case 6:b=o;break;case 7:k=1;break;case 8:C=T(o),l=1}l&&(m=[],s&&w&&(x+=w,w=0,S++),q.forEach((([e,t])=>{l&e&&t(i)})))}}},O=e=>{let t;return{A(o){(t||(t=new(y(b(o)).ResizeObserver)(e))).observe(o)},J(e){t.unobserve(e)},L(){t&&t.disconnect()}}},k=(e,t)=>t&&S()?-e:e,C=(e,o,r,n,s,l)=>{const c=Date.now;let a=0,u=!1,f=!1,d=!1,_=!1;const p=(()=>{let o;const r=()=>{o!=t&&clearTimeout(o)},n=()=>{r(),o=i((()=>{o=t,(()=>{if(u||f)return u=!1,void p();d=!1,e.M(2)})()}),150)};return n.P=r,n})(),h=()=>{a=c(),d&&(_=!0),l&&e.M(6,l()),e.M(1,n()),p()},g=t=>{if(u||0===e.j()||t.ctrlKey)return;const o=c()-a;150>o&&50<o&&(r?t.deltaX:t.deltaY)&&(u=!0)},m=()=>{f=!0,d=_=!1},v=()=>{f=!1,z()&&(d=!0)};return o.addEventListener("scroll",h),o.addEventListener("wheel",g,{passive:!0}),o.addEventListener("touchstart",m,{passive:!0}),o.addEventListener("touchend",v,{passive:!0}),{L:()=>{o.removeEventListener("scroll",h),o.removeEventListener("wheel",g),o.removeEventListener("touchstart",m),o.removeEventListener("touchend",v),p.P()},W:()=>{const[t,o]=e.T();t&&(s(k(t,r),o,_),_=!1,o&&e.B()>e.q()&&e.M(1,n()))}}},j=/*#__PURE__*/e.defineComponent({props:{X:{type:Object,required:!0},Y:{type:Function,required:!0},D:{type:Number,required:!0},F:{type:Number,required:!0},U:{type:Boolean},V:{type:Boolean},G:{type:Boolean},K:{type:String,required:!0}},setup(t){const o=e.ref();return e.watch((()=>o.value&&t.D),((e,r,n)=>{n(t.Y(o.value,t.D))}),{flush:"post"}),()=>{const{X:r,F:n,U:s,V:i,G:l,K:c}=t,a={position:s&&l?void 0:"absolute",[i?"height":"width"]:"100%",[i?"top":"left"]:"0px",[i?S()?"right":"left":"top"]:n+"px",visibility:!s||l?"visible":"hidden"};return i&&(a.display="flex"),e.createVNode(c,{ref:o,style:a},"function"==typeof(u=r)||"[object Object]"===Object.prototype.toString.call(u)&&!e.isVNode(u)?r:{default:()=>[r],_:2},8,["style"]);var u}}}),B=(e,o)=>{const r=e.key;return r!=t?r:"_"+o},R={data:{type:Array,required:!0},overscan:{type:Number,default:4},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"}},q=/*#__PURE__*/e.defineComponent({props:R,emits:["scroll","scrollEnd","rangeChange"],setup(o,{emit:n,expose:s,slots:a}){var u;let f=!!o.ssrCount;const d=o.horizontal,_=e.ref(),p=I(o.data.length,null!==(u=o.itemSize)&&void 0!==u?u:40,o.ssrCount,0,!o.itemSize),h=((e,o)=>{let r;const n=o?"width":"height",s=new WeakMap,i=O((o=>{const i=[];for(const{target:l,contentRect:c}of o)if(l.offsetParent)if(l===r)e.M(4,c[n]);else{const e=s.get(l);e!=t&&i.push([e,c[n]])}i.length&&e.M(3,i)}));return{Z(e){i.A(r=e)},$:(e,t)=>(s.set(e,t),i.A(e),()=>{s.delete(e),i.J(e)}),L:i.L}})(p,d),g=((e,t)=>{let o,r,n;const s=t?"scrollLeft":"scrollTop",a=t?"overflowX":"overflowY",u=async(r,l)=>{if(!o)return void c((()=>u(r,l)));n&&n();const a=()=>{let t;return[new Promise(((o,r)=>{t=o,n=r,(e=>!!e.B())(e)&&i(r,150)})),e.H(2,(()=>{t&&t()}))]};if(l&&x()){for(;e.M(8,r()),e.S();){const[e,t]=a();try{await e}catch(e){return}finally{t()}}o.scrollTo({[t?"left":"top"]:k(r(),t),behavior:"smooth"})}else for(;;){const[n,i]=a();try{o[s]=k(r(),t),e.M(7),await n}catch(e){return}finally{i()}}};return{A(l){o=l,r=C(e,l,t,(()=>k(l[s],t)),((t,o,r)=>{if(r){const e=l.style,t=e[a];e[a]="hidden",i((()=>{e[a]=t}))}o?(l[s]=e.C()+t,n&&n()):l[s]+=t}))},L(){r&&r.L()},ee(e){u((()=>e))},te(t){t+=e.C(),u((()=>t))},oe(t,{align:o,smooth:r,offset:n=0}={}){if(t=l(t,0,e.k()-1),"nearest"===o){const r=e.I(t),n=e.C();if(r<n)o="start";else{if(!(r+e.O(t)>n+e.B()))return;o="end"}}u((()=>n+e.R()+e.I(t)+("end"===o?e.O(t)-e.B():"center"===o?(e.O(t)-e.B())/2:0)),r)},W:()=>{r&&r.W()}}})(p,d),m=e.ref(p.p()),v=p.H(1,(()=>{m.value=p.p()})),b=p.H(4,(()=>{n("scroll",p.C())})),y=p.H(8,(()=>{n("scrollEnd")}));return e.onMounted((()=>{f=!1,c((()=>{const e=e=>{h.Z(e),g.A(e)};o.scrollRef?e(o.scrollRef):e(_.value.parentElement)}))})),e.onUnmounted((()=>{v(),b(),y(),h.L(),g.L()})),e.watch((()=>o.data.length),(e=>{p.M(5,[e,o.shift])})),e.watch((()=>o.startMargin),(e=>{p.M(6,e)}),{immediate:!0}),e.watch([m,p.N],(([,e],[,t])=>{e!==t&&g.W()}),{flush:"post"}),e.watch([m,p.m],(([,[e,t]],[,[o,r]])=>{o===e&&r===t||n("rangeChange",e,t)}),{flush:"post"}),s({get scrollOffset(){return p.C()},get scrollSize(){return(e=>r(e.q(),e.B()))(p)},get viewportSize(){return p.B()},getItemOffset:p.I,getItemSize:p.O,scrollToIndex:g.oe,scrollTo:g.ee,scrollBy:g.te}),()=>{m.value;const t=o.as,r=o.item,n=o.data.length,[s,i]=p.m(),l=p.j(),c=p.q(),u=[];for(let[t,c]=w(s,i,o.overscan,l,n);t<=c;t++){const n=a.default({item:o.data[t],index:t})[0];u.push(e.createVNode(j,{key:B(n,t),Y:h.$,D:t,F:p.I(t),U:p.v(t),X:n,V:d,G:f,K:r},null,8,["_resizer","_index","_offset","_hide","_children","_isHorizontal","_isSSR","_as"]))}return e.createVNode(t,{ref:_,style:{overflowAnchor:"none",flex:"none",position:"relative",visibility:"hidden",width:d?c+"px":"100%",height:d?"100%":c+"px",pointerEvents:0!==l?"none":void 0}},"function"==typeof(g=u)||"[object Object]"===Object.prototype.toString.call(g)&&!e.isVNode(g)?u:{default:()=>[u],_:2},8,["style"]);var g}}}),N={data:{type:Array,required:!0},overscan:{type:Number,default:4},itemSize:Number,shift:Boolean,horizontal:Boolean,ssrCount:Number},T=/*#__PURE__*/e.defineComponent({props:N,emits:["scroll","scrollEnd","rangeChange"],setup(t,{emit:o,expose:r,slots:n}){const s=t.horizontal,i=e=>{o("scroll",e)},l=()=>{o("scrollEnd")},c=(e,t)=>{o("rangeChange",e,t)},a=e.ref();return r({get scrollOffset(){return a.value.scrollOffset},get scrollSize(){return a.value.scrollSize},get viewportSize(){return a.value.viewportSize},getItemOffset:(...e)=>a.value.getItemOffset(...e),getItemSize:(...e)=>a.value.getItemSize(...e),scrollToIndex:(...e)=>a.value.scrollToIndex(...e),scrollTo:(...e)=>a.value.scrollTo(...e),scrollBy:(...e)=>a.value.scrollBy(...e)}),()=>{return e.createVNode("div",{style:{display:s?"inline-block":"block",[s?"overflowX":"overflowY"]:"auto",contain:"strict",width:"100%",height:"100%"}},[e.createVNode(q,{ref:a,data:t.data,overscan:t.overscan,itemSize:t.itemSize,shift:t.shift,ssrCount:t.ssrCount,horizontal:s,onScroll:i,onScrollEnd:l,onRangeChange:c},(o=n,"function"==typeof o||"[object Object]"===Object.prototype.toString.call(o)&&!e.isVNode(o)?n:{default:()=>[n],_:2}),8,["data","overscan","itemSize","shift","ssrCount","horizontal","onScroll","onScrollEnd","onRangeChange"])],4);var o}}}),E={data:{type:Array,required:!0},overscan:{type:Number,default:4},itemSize:Number,shift:Boolean,horizontal:Boolean,as:{type:String,default:"div"},item:{type:String,default:"div"}},H=/*#__PURE__*/e.defineComponent({props:E,emits:["scrollEnd","rangeChange"],setup(o,{emit:r,slots:n}){var s;const i=o.horizontal,l=e.ref(),c=I(o.data.length,null!==(s=o.itemSize)&&void 0!==s?s:40,void 0,0,!o.itemSize),a=((e,o)=>{const r=o?"width":"height",n=o?"innerWidth":"innerHeight",s=new WeakMap,i=O((o=>{const n=[];for(const{target:e,contentRect:i}of o){if(!e.offsetParent)continue;const o=s.get(e);o!=t&&n.push([o,i[r]])}n.length&&e.M(3,n)}));let l;return{Z(t){const o=y(b(t)),r=()=>{e.M(4,o[n])};o.addEventListener("resize",r),r(),l=()=>{o.removeEventListener("resize",r)}},$:(e,t)=>(s.set(e,t),i.A(e),()=>{s.delete(e),i.J(e)}),L(){l&&l(),i.L()}}})(c,i),u=((e,t)=>{let o;return{A(r){const n=t?"scrollX":"scrollY",s=b(r),i=y(s),l=s.body,c=(e,t,o,r=0)=>{const n=o?"offsetLeft":"offsetTop",s=r+(o&&S()?i.innerWidth-e[n]-e.offsetWidth:e[n]),l=e.offsetParent;return e!==t&&l?c(l,t,o,s):s};o=C(e,i,t,(()=>k(i[n],t)),((o,r)=>{r?i.scroll({[t?"left":"top"]:e.C()+o}):i.scrollBy(t?o:0,t?0:o)}),(()=>c(r,l,t)))},L(){o&&o.L()},W:()=>{o&&o.W()}}})(c,i),f=e.ref(c.p()),d=c.H(1,(()=>{f.value=c.p()})),_=c.H(8,(()=>{r("scrollEnd")}));return e.onMounted((()=>{const e=l.value;e&&(a.Z(e),u.A(e))})),e.onUnmounted((()=>{d(),_(),a.L(),u.L()})),e.watch((()=>o.data.length),(e=>{c.M(5,[e,o.shift])})),e.watch([f,c.N],(([,e],[,t])=>{e!==t&&u.W()}),{flush:"post"}),e.watch([f,c.m],(([,[e,t]],[,[o,n]])=>{o===e&&n===t||r("rangeChange",e,t)}),{flush:"post"}),()=>{f.value;const t=o.as,r=o.item,s=o.data.length,[u,d]=c.m(),_=c.j(),p=c.q(),h=[];for(let[t,l]=w(u,d,o.overscan,_,s);t<=l;t++){const s=n.default({item:o.data[t],index:t})[0];h.push(e.createVNode(j,{key:B(s,t),Y:a.$,D:t,F:c.I(t),U:c.v(t),X:s,V:i,K:r},null,8,["_resizer","_index","_offset","_hide","_children","_isHorizontal","_as"]))}return e.createVNode(t,{ref:l,style:{overflowAnchor:"none",flex:"none",position:"relative",visibility:"hidden",width:i?p+"px":"100%",height:i?"100%":p+"px",pointerEvents:0!==_?"none":void 0}},"function"==typeof(g=h)||"[object Object]"===Object.prototype.toString.call(g)&&!e.isVNode(g)?h:{default:()=>[h],_:2},8,["style"]);var g}}});exports.VList=T,exports.Virtualizer=q,exports.WindowVirtualizer=H;
2
2
  //# sourceMappingURL=index.js.map