virtua 0.36.2 → 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.
@@ -89,6 +89,16 @@ export interface VirtualizerHandle {
89
89
  * Get current offsetHeight, or offsetWidth if horizontal: true.
90
90
  */
91
91
  getViewportSize: () => number;
92
+ /**
93
+ * Get item offset from start.
94
+ * @param index index of item
95
+ */
96
+ getItemOffset(index: number): number;
97
+ /**
98
+ * Get item size.
99
+ * @param index index of item
100
+ */
101
+ getItemSize(index: number): number;
92
102
  /**
93
103
  * Scroll to the item specified by index.
94
104
  * @param index index of item
@@ -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,9 +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
- 12: import("./core").ItemResizeObserver;
69
- 13: () => void;
70
- 14: (len: number, shift?: boolean) => void;
68
+ 10: (index: number) => boolean;
69
+ 11: () => number;
70
+ 13: import("./core").ItemResizeObserver;
71
+ 14: () => void;
72
+ 15: (len: number, shift?: boolean) => void;
71
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,[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};
@@ -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
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