virtua 0.45.2 → 0.45.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.
- 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/react/Virtualizer.d.ts +2 -2
- package/lib/react/WindowVirtualizer.d.ts +1 -1
- package/lib/solid/Virtualizer.d.ts +2 -2
- package/lib/solid/WindowVirtualizer.d.ts +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 +8 -7
- package/lib/solid/index.jsx.map +1 -1
- package/lib/svelte/Virtualizer.type.d.ts +2 -2
- package/lib/svelte/WindowVirtualizer.type.d.ts +1 -1
- package/lib/vue/VList.d.ts +2 -2
- package/lib/vue/Virtualizer.d.ts +4 -4
- package/lib/vue/WindowVirtualizer.d.ts +2 -2
- 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 +1 -1
|
@@ -23,7 +23,7 @@ export interface WindowVirtualizerProps<T> {
|
|
|
23
23
|
*/
|
|
24
24
|
overscan?: number;
|
|
25
25
|
/**
|
|
26
|
-
* Item size hint for unmeasured items. It will help to reduce scroll jump when items are measured if used properly.
|
|
26
|
+
* Item size hint for unmeasured items in pixels. It will help to reduce scroll jump when items are measured if used properly.
|
|
27
27
|
*
|
|
28
28
|
* - If not set, initial item sizes will be automatically estimated from measured sizes. This is recommended for most cases.
|
|
29
29
|
* - If set, you can opt out estimation and use the value as initial item size.
|
package/lib/vue/VList.d.ts
CHANGED
|
@@ -18,7 +18,7 @@ export declare const VList: import("vue").DefineComponent<{
|
|
|
18
18
|
*/
|
|
19
19
|
overscan: NumberConstructor;
|
|
20
20
|
/**
|
|
21
|
-
* Item size hint for unmeasured items. It will help to reduce scroll jump when items are measured if used properly.
|
|
21
|
+
* Item size hint for unmeasured items in pixels. It will help to reduce scroll jump when items are measured if used properly.
|
|
22
22
|
*
|
|
23
23
|
* - If not set, initial item sizes will be automatically estimated from measured sizes. This is recommended for most cases.
|
|
24
24
|
* - If set, you can opt out estimation and use the value as initial item size.
|
|
@@ -70,7 +70,7 @@ export declare const VList: import("vue").DefineComponent<{
|
|
|
70
70
|
*/
|
|
71
71
|
overscan: NumberConstructor;
|
|
72
72
|
/**
|
|
73
|
-
* Item size hint for unmeasured items. It will help to reduce scroll jump when items are measured if used properly.
|
|
73
|
+
* Item size hint for unmeasured items in pixels. It will help to reduce scroll jump when items are measured if used properly.
|
|
74
74
|
*
|
|
75
75
|
* - If not set, initial item sizes will be automatically estimated from measured sizes. This is recommended for most cases.
|
|
76
76
|
* - If set, you can opt out estimation and use the value as initial item size.
|
package/lib/vue/Virtualizer.d.ts
CHANGED
|
@@ -64,7 +64,7 @@ export declare const Virtualizer: import("vue").DefineComponent<{
|
|
|
64
64
|
*/
|
|
65
65
|
overscan: NumberConstructor;
|
|
66
66
|
/**
|
|
67
|
-
* Item size hint for unmeasured items. It will help to reduce scroll jump when items are measured if used properly.
|
|
67
|
+
* Item size hint for unmeasured items in pixels. It will help to reduce scroll jump when items are measured if used properly.
|
|
68
68
|
*
|
|
69
69
|
* - If not set, initial item sizes will be automatically estimated from measured sizes. This is recommended for most cases.
|
|
70
70
|
* - If set, you can opt out estimation and use the value as initial item size.
|
|
@@ -79,7 +79,7 @@ export declare const Virtualizer: import("vue").DefineComponent<{
|
|
|
79
79
|
*/
|
|
80
80
|
horizontal: BooleanConstructor;
|
|
81
81
|
/**
|
|
82
|
-
* If you put an element before virtualizer, you have to
|
|
82
|
+
* The offset to the scrollable parent before virtualizer in pixels. If you put an element before virtualizer, you have to set its height to this prop.
|
|
83
83
|
*/
|
|
84
84
|
startMargin: {
|
|
85
85
|
type: NumberConstructor;
|
|
@@ -143,7 +143,7 @@ export declare const Virtualizer: import("vue").DefineComponent<{
|
|
|
143
143
|
*/
|
|
144
144
|
overscan: NumberConstructor;
|
|
145
145
|
/**
|
|
146
|
-
* Item size hint for unmeasured items. It will help to reduce scroll jump when items are measured if used properly.
|
|
146
|
+
* Item size hint for unmeasured items in pixels. It will help to reduce scroll jump when items are measured if used properly.
|
|
147
147
|
*
|
|
148
148
|
* - If not set, initial item sizes will be automatically estimated from measured sizes. This is recommended for most cases.
|
|
149
149
|
* - If set, you can opt out estimation and use the value as initial item size.
|
|
@@ -158,7 +158,7 @@ export declare const Virtualizer: import("vue").DefineComponent<{
|
|
|
158
158
|
*/
|
|
159
159
|
horizontal: BooleanConstructor;
|
|
160
160
|
/**
|
|
161
|
-
* If you put an element before virtualizer, you have to
|
|
161
|
+
* The offset to the scrollable parent before virtualizer in pixels. If you put an element before virtualizer, you have to set its height to this prop.
|
|
162
162
|
*/
|
|
163
163
|
startMargin: {
|
|
164
164
|
type: NumberConstructor;
|
|
@@ -31,7 +31,7 @@ export declare const WindowVirtualizer: import("vue").DefineComponent<{
|
|
|
31
31
|
*/
|
|
32
32
|
overscan: NumberConstructor;
|
|
33
33
|
/**
|
|
34
|
-
* Item size hint for unmeasured items. It will help to reduce scroll jump when items are measured if used properly.
|
|
34
|
+
* Item size hint for unmeasured items in pixels. It will help to reduce scroll jump when items are measured if used properly.
|
|
35
35
|
*
|
|
36
36
|
* - If not set, initial item sizes will be automatically estimated from measured sizes. This is recommended for most cases.
|
|
37
37
|
* - If set, you can opt out estimation and use the value as initial item size.
|
|
@@ -84,7 +84,7 @@ export declare const WindowVirtualizer: import("vue").DefineComponent<{
|
|
|
84
84
|
*/
|
|
85
85
|
overscan: NumberConstructor;
|
|
86
86
|
/**
|
|
87
|
-
* Item size hint for unmeasured items. It will help to reduce scroll jump when items are measured if used properly.
|
|
87
|
+
* Item size hint for unmeasured items in pixels. It will help to reduce scroll jump when items are measured if used properly.
|
|
88
88
|
*
|
|
89
89
|
* - If not set, initial item sizes will be automatically estimated from measured sizes. This is recommended for most cases.
|
|
90
90
|
* - If set, you can opt out estimation and use the value as initial item size.
|
package/lib/vue/index.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var e=require("vue");const t=null,{min:o,max:r,abs:n,floor:s}=Math,i=(e,t,n)=>o(n,r(t,e)),l=e=>[...e].sort(((e,t)=>e-t)),c="function"==typeof queueMicrotask?queueMicrotask:e=>{Promise.resolve().then(e)},a=()=>{let e;return[new Promise((t=>{e=t})),e]},u=e=>{let t;return()=>(e&&(t=e(),e=void 0),t)},f=-1,d=(e,t,o)=>{const r=o?"unshift":"push";for(let o=0;o<t;o++)e[r](f);return e},p=(e,t)=>{const o=e.t[t];return o===f?e.o:o},h=(e,t,r)=>{const n=e.t[t]===f;return e.t[t]=r,e.i=o(t,e.i),n},m=(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+=p(e,o),e.u[++o]=r;return e.i=t,r},v=(e,t,o=0,r=e.l-1)=>{for(;o<=r;){const n=s((o+r)/2),i=m(e,n);if(i<=t){if(i+p(e,n)>t)return n;o=n+1}else r=n-1}return i(o,0,e.l-1)},_=(e,t,r)=>{const n=t-e.l;return e.i=r?-1:o(t-1,e.i),e.l=t,n>0?(d(e.u,n),d(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===f?e.o:o)),0))},b="undefined"!=typeof window,y=()=>document.documentElement,S=e=>e.ownerDocument,g=e=>e.defaultView,x=/*#__PURE__*/u((()=>!!b&&"rtl"===getComputedStyle(y()).direction)),z=/*#__PURE__*/u((()=>!!/iP(hone|od|ad)/.test(navigator.userAgent)||"MacIntel"===navigator.platform&&navigator.maxTouchPoints>0)),$=/*#__PURE__*/u((()=>"scrollBehavior"in y().style)),w=(e,s=40,i=4,c=0,a,u=!1)=>{let b=!!c,y=1,S=0,g=0,x=0,$=0,w=0,I=0,k=0,O=0,j=b?[0,r(c-1,0)]:t,E=[0,0],T=0;const q=((e,t)=>({o:t,t:d([],e),l:e,i:-1,u:d([],e)}))(e,s),B=new Set,M=()=>x-g,N=()=>M()+w+$,P=e=>((e,t,r,n)=>{if(n=o(n,e.l-1),m(e,n)<=t){const o=v(e,t+r,n);return[v(e,t,n,o),o]}{const o=v(e,t,void 0,n);return[o,v(e,t+r,o)]}})(q,e,S,E[0]),R=()=>(e=>e.l?m(e,e.l-1)+p(e,e.l-1):0)(q),A=e=>m(q,e)-w,H=e=>p(q,e),V=e=>{e&&(z()&&0!==k||j&&1===O?w+=e:$+=e)};return{p:()=>y,h:()=>(e=>[e.t.slice(),e.o])(q),m:()=>{let e,t;return I?[e,t]=E:([e,t]=E=P(r(0,N())),j&&(e=o(e,j[0]),t=r(t,j[1]))),1!==k&&(e-=r(0,i)),2!==k&&(t+=r(0,i)),[r(e,0),o(t,q.l-1)]},v:()=>v(q,N()),S:()=>v(q,N()+S),I:e=>q.t[e]===f,k:A,O:H,j:()=>q.l,T:()=>x,q:()=>0!==k,B:()=>S,M:()=>g,N:R,P:()=>(I=$,$=0,[I,2===O]),R:(e,t)=>{const o=[e,t];return B.add(o),()=>{B.delete(o)}},A:(e,o)=>{let s,i,c=0;switch(e){case 1:{const e=I;I=0;const r=o-x,s=n(r);e&&s<n(e)+1||0!==O||(k=r<0?2:1),b&&(j=t,b=!1),x=o,c=4;const l=M();l>=-S&&l<=R()&&(c+=1,i=s>S);break}case 2:c=8,0!==k&&(s=!0,c+=1),k=0,O=0,j=t;break;case 3:{const e=o.filter((([e,t])=>q.t[e]!==t));if(!e.length)break;V(e.reduce(((e,[t,o])=>((2===O||(j&&1===O?t<j[0]:A(t)+(0===k&&0===O?H(t):0)<M()))&&(e+=o-H(t)),e)),0));for(const[t,o]of e){const e=H(t),r=h(q,t,o);u&&(T+=r?o:o-e)}u&&S&&T>S&&(V(((e,t)=>{let o=0;const n=[];e.t.forEach(((e,r)=>{e!==f&&(n.push(e),r<t&&o++)})),e.i=-1;const s=l(n),i=s.length,c=i/2|0,a=i%2==0?(s[c-1]+s[c])/2:s[c],u=e.o;return((e.o=a)-u)*r(t-o,0)})(q,v(q,N()))),u=!1),c=3,i=!0;break}case 4:S!==o&&(S=o,c=3);break;case 5:o[1]?(V(_(q,o[0],!0)),O=2,c=1):(_(q,o[0]),c=1);break;case 6:g=o;break;case 7:O=1;break;case 8:j=P(o),c=1}c&&(y=1+(2147483647&y),s&&w&&($+=w,w=0),B.forEach((([e,t])=>{c&e&&t(i)})))}}},I=setTimeout,k=(e,t)=>t&&x()?-e:e,O=(e,o,r,n,s,i)=>{const l=Date.now;let c=0,a=!1,u=!1,f=!1,d=!1;const p=(()=>{let o;const r=()=>{o!=t&&clearTimeout(o)},n=()=>{r(),o=I((()=>{o=t,(()=>{if(a||u)return a=!1,void p();f=!1,e.A(2)})()}),150)};return n.H=r,n})(),h=()=>{c=l(),f&&(d=!0),i&&e.A(6,i()),e.A(1,n()),p()},m=t=>{if(a||!e.q()||t.ctrlKey)return;const o=l()-c;150>o&&50<o&&(r?t.deltaX:t.deltaY)&&(a=!0)},v=()=>{u=!0,f=d=!1},_=()=>{u=!1,z()&&(f=!0)};return o.addEventListener("scroll",h),o.addEventListener("wheel",m,{passive:!0}),o.addEventListener("touchstart",v,{passive:!0}),o.addEventListener("touchend",_,{passive:!0}),{V:()=>{o.removeEventListener("scroll",h),o.removeEventListener("wheel",m),o.removeEventListener("touchstart",v),o.removeEventListener("touchend",_),p.H()},C:()=>{const[t,o]=e.P();t&&(s(k(t,r),o,d),d=!1,o&&e.B()>e.N()&&e.A(1,n()))}}},j=(e,t,o)=>{let r;return[async(n,s)=>{if(!await t())return;r&&r();const i=()=>{const[t,o]=a();return r=()=>{o(!1)},e.B()&&I(r,150),[t,e.R(2,(()=>{o(!0)}))]};if(s&&$())e.A(8,n()),c((async()=>{for(;;){let t=!0;for(let[o,r]=e.m();o<=r;o++)if(e.I(o)){t=!1;break}if(t)break;const[o,r]=i();try{if(!await o)return}finally{r()}}e.A(7),o(n(),s)}));else for(;;){const[t,r]=i();try{if(e.A(7),o(n()),!await t)return}finally{r()}}},()=>{r&&r()}]},E=e=>{let t;return{J(o){(t||(t=new(g(S(o)).ResizeObserver)(e))).observe(o)},F(e){t.unobserve(e)},V(){t&&t.disconnect()}}},T=/*#__PURE__*/e.defineComponent({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(t){const o=e.ref(),r=e.computed((()=>t.L.value&&t.W.k(t.D))),n=e.computed((()=>t.L.value&&t.W.I(t.D)));return e.watch((()=>o.value&&t.D),((e,r,n)=>{n(t.Y(o.value,t.D))}),{flush:"post"}),()=>{var s;const{X:i,U:l,G:c,K:a}=t,u=n.value,{style:f,...d}=null!==(s=t.Z)&&void 0!==s?s:{},p={contain:"layout style",position:u&&c?void 0:"absolute",[l?"height":"width"]:"100%",[l?"top":"left"]:"0px",[l?x()?"right":"left":"top"]:r.value+"px",visibility:!u||c?"visible":"hidden",...f};return l&&(p.display="inline-flex"),e.createVNode(a,e.mergeProps({ref:o,style:p},d),"function"==typeof(h=i)||"[object Object]"===Object.prototype.toString.call(h)&&!e.isVNode(h)?i:{default:()=>[i],_:2},16,["style"]);var h}}}),q=(e,t)=>{const o=e.key;return null!=o?o:"_"+t},B=(e,t)=>e[0]===t[0]&&e[1]===t[1],M={data:{type:Array,required:!0},overscan: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},N=/*#__PURE__*/e.defineComponent({props:M,emits:["scroll","scrollEnd"],setup(o,{emit:n,expose:s,slots:u}){let f=!!o.ssrCount;const d=o.horizontal,p=e.ref(),h=w(o.data.length,o.itemSize,o.overscan,o.ssrCount,0,!o.itemSize),m=((e,o)=>{let r;const n=o?"width":"height",s=new WeakMap,i=E((o=>{const i=[];for(const{target:l,contentRect:c}of o)if(l.offsetParent)if(l===r)e.A(4,c[n]);else{const e=s.get(l);e!=t&&i.push([e,c[n]])}i.length&&e.A(3,i)}));return{ee(e){i.J(r=e)},te:(e,t)=>(s.set(e,t),i.J(e),()=>{s.delete(e),i.F(e)}),oe:i.V}})(h,d),v=((e,t)=>{let o,r,n=a();const s=t?"scrollLeft":"scrollTop",l=t?"overflowX":"overflowY",[c,u]=j(e,(()=>n[0]),((e,r)=>{e=k(e,t),r?o.scrollTo({[t?"left":"top"]:e,behavior:"smooth"}):o[s]=e}));return{re(i){o=i,r=O(e,i,t,(()=>k(i[s],t)),((t,o,r)=>{if(r){const e=i.style,t=e[l];e[l]="hidden",I((()=>{e[l]=t}))}i[s]=e.T()+t,o&&u()})),n[1](!0)},oe(){r&&r.V(),n[1](!1),n=a()},ne(e){c((()=>e))},se(t){t+=e.T(),c((()=>t))},ie(t,{align:o,smooth:r,offset:n=0}={}){if(t=i(t,0,e.j()-1),"nearest"===o){const r=e.k(t),n=e.T();if(r<n)o="start";else{if(!(r+e.O(t)>n+e.B()))return;o="end"}}c((()=>n+e.M()+e.k(t)+("end"===o?e.O(t)-e.B():"center"===o?(e.O(t)-e.B())/2:0)),r)},le:()=>{r&&r.C()}}})(h,d),_=e.ref(h.p()),b=h.R(1,(()=>{_.value=h.p()})),y=h.R(4,(()=>{n("scroll",h.T())})),S=h.R(8,(()=>{n("scrollEnd")})),g=e.computed((e=>{_.value;const t=h.m();return e&&B(e,t)?e:t})),x=e.computed((()=>_.value&&h.q())),z=e.computed((()=>_.value&&h.N()));return e.onMounted((()=>{f=!1,c((()=>{const e=e=>{m.ee(e),v.re(e)};o.scrollRef?e(o.scrollRef):e(p.value.parentElement)}))})),e.onUnmounted((()=>{b(),y(),S(),m.oe(),v.oe()})),e.watch((()=>o.data.length),(e=>{h.A(5,[e,o.shift])})),e.watch((()=>o.startMargin),(e=>{h.A(6,e)}),{immediate:!0}),e.watch([_],(()=>{v.le()}),{flush:"post"}),s({get scrollOffset(){return h.T()},get scrollSize(){return(e=>r(e.N(),e.B()))(h)},get viewportSize(){return h.B()},findStartIndex:h.v,findEndIndex:h.S,getItemOffset:h.k,getItemSize:h.O,scrollToIndex:v.ie,scrollTo:v.ne,scrollBy:v.se}),()=>{const t=o.as,r=o.item,[n,s]=g.value,i=z.value,c=[],a=t=>{var n;const s=u.default({item:o.data[t],index:t})[0];return e.createVNode(T,{key:q(s,t),L:_,W:h,Y:m.te,D:t,X:s,U:d,G:f,K:r,Z:null===(n=o.itemProps)||void 0===n?void 0:n.call(o,{item:o.data[t],index:t})},null,8,["_stateVersion","_store","_resizer","_index","_children","_isHorizontal","_isSSR","_as","_itemProps"])};if(o.keepMounted){const e=new Set(o.keepMounted);for(let t=n,o=s;t<=o;t++)e.add(t);l([...e]).forEach((e=>{c.push(a(e))}))}else for(let e=n,t=s;e<=t;e++)c.push(a(e));return e.createVNode(t,{ref:p,style:{contain:"size paint style",overflowAnchor:"none",overflow:"clip",flex:"none",position:"relative",width:d?i+"px":"100%",height:d?"100%":i+"px",pointerEvents:x.value?"none":void 0}},"function"==typeof(v=c)||"[object Object]"===Object.prototype.toString.call(v)&&!e.isVNode(v)?c:{default:()=>[c],_:2},8,["style"]);var v}}}),P={data:{type:Array,required:!0},overscan:Number,itemSize:Number,shift:Boolean,horizontal:Boolean,ssrCount:Number,itemProps:Function,keepMounted:Array},R=/*#__PURE__*/e.defineComponent({props:P,emits:["scroll","scrollEnd"],setup(t,{emit:o,expose:r,slots:n}){const s=t.horizontal,i=e=>{o("scroll",e)},l=()=>{o("scrollEnd")},c=e.ref();return r({get scrollOffset(){return c.value.scrollOffset},get scrollSize(){return c.value.scrollSize},get viewportSize(){return c.value.viewportSize},findStartIndex:(...e)=>c.value.findStartIndex(...e),findEndIndex:(...e)=>c.value.findEndIndex(...e),getItemOffset:(...e)=>c.value.getItemOffset(...e),getItemSize:(...e)=>c.value.getItemSize(...e),scrollToIndex:(...e)=>c.value.scrollToIndex(...e),scrollTo:(...e)=>c.value.scrollTo(...e),scrollBy:(...e)=>c.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(N,{ref:c,data:t.data,overscan:t.overscan,itemSize:t.itemSize,itemProps:t.itemProps,shift:t.shift,ssrCount:t.ssrCount,horizontal:s,keepMounted:t.keepMounted,onScroll:i,onScrollEnd:l},(o=n,"function"==typeof o||"[object Object]"===Object.prototype.toString.call(o)&&!e.isVNode(o)?n:{default:()=>[n],_:2}),8,["data","overscan","itemSize","itemProps","shift","ssrCount","horizontal","keepMounted","onScroll","onScrollEnd"])],4);var o}}}),A={data:{type:Array,required:!0},overscan:Number,itemSize:Number,shift:Boolean,horizontal:Boolean,as:{type:String,default:"div"},item:{type:String,default:"div"}},H=/*#__PURE__*/e.defineComponent({props:A,emits:["scroll","scrollEnd"],setup(o,{emit:r,slots:n,expose:s}){const l=o.horizontal,c=e.ref(),u=w(o.data.length,o.itemSize,o.overscan,void 0,0,!o.itemSize),f=((e,o)=>{const r=o?"width":"height",n=o?"innerWidth":"innerHeight",s=new WeakMap,i=E((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.A(3,n)}));let l;return{ee(t){const o=g(S(t)),r=()=>{e.A(4,o[n])};o.addEventListener("resize",r),r(),l=()=>{o.removeEventListener("resize",r)}},te:(e,t)=>(s.set(e,t),i.J(e),()=>{s.delete(e),i.F(e)}),oe(){l&&l(),i.V()}}})(u,l),d=((e,t)=>{let o,r,n=a();const s=t?"left":"top",[l]=j(e,(()=>n[0]),((e,r)=>{e=k(e,t);const n=g(S(o));r?n.scroll({[s]:e,behavior:"smooth"}):n.scroll({[s]:e})})),c=(e,t,o,r,n=0)=>{const s=r?"offsetLeft":"offsetTop",i=n+(r&&x()?o.innerWidth-e[s]-e.offsetWidth:e[s]),l=e.offsetParent;return e!==t&&l?c(l,t,o,r,i):i};return{re(i){o=i;const l=t?"scrollX":"scrollY",a=S(i),u=g(a);r=O(e,u,t,(()=>k(u[l],t)),(t=>{u.scroll({[s]:e.T()+t})}),(()=>c(i,a.body,u,t))),n[1](!0)},oe(){r&&r.V(),o=void 0,n[1](!1),n=a()},le:()=>{r&&r.C()},ie(r,{align:n,smooth:s,offset:a=0}={}){if(!o)return;if(r=i(r,0,e.j()-1),"nearest"===n){const t=e.k(r),o=e.T();if(t<o)n="start";else{if(!(t+e.O(r)>o+e.B()))return;n="end"}}const u=S(o),f=g(u),d=u.documentElement,p=()=>e.B()-(t?d.clientWidth:d.clientHeight);l((()=>a+c(o,u.body,f,t)+e.k(r)+("end"===n?e.O(r)-(e.B()-p()):"center"===n?(e.O(r)-(e.B()-p()))/2:0)),s)}}})(u,l),p=e.ref(u.p()),h=u.R(1,(()=>{p.value=u.p()})),m=u.R(4,(()=>{r("scroll")})),v=u.R(8,(()=>{r("scrollEnd")})),_=e.computed((e=>{p.value;const t=u.m();return e&&B(e,t)?e:t})),b=e.computed((()=>p.value&&u.q())),y=e.computed((()=>p.value&&u.N()));return e.onMounted((()=>{const e=c.value;e&&(f.ee(e),d.re(e))})),e.onUnmounted((()=>{h(),m(),v(),f.oe(),d.oe()})),e.watch((()=>o.data.length),(e=>{u.A(5,[e,o.shift])})),e.watch([p],(()=>{d.le()}),{flush:"post"}),s({findStartIndex:u.v,findEndIndex:u.S,scrollToIndex:d.ie}),()=>{const t=o.as,r=o.item,[s,i]=_.value,a=y.value,d=[];for(let t=s,c=i;t<=c;t++){const s=n.default({item:o.data[t],index:t})[0];d.push(e.createVNode(T,{key:q(s,t),L:p,W:u,Y:f.te,D:t,X:s,U:l,K:r},null,8,["_stateVersion","_store","_resizer","_index","_children","_isHorizontal","_as"]))}return e.createVNode(t,{ref:c,style:{contain:"size paint style",overflowAnchor:"none",overflow:"clip",flex:"none",position:"relative",width:l?a+"px":"100%",height:l?"100%":a+"px",pointerEvents:b.value?"none":void 0}},"function"==typeof(h=d)||"[object Object]"===Object.prototype.toString.call(h)&&!e.isVNode(h)?d:{default:()=>[d],_:2},8,["style"]);var h}}});exports.VList=R,exports.Virtualizer=N,exports.WindowVirtualizer=H;
|
|
1
|
+
var e=require("vue");const t=null,{min:o,max:r,abs:n,floor:s}=Math,i=(e,t,n)=>o(n,r(t,e)),l=e=>[...e].sort(((e,t)=>e-t)),c="function"==typeof queueMicrotask?queueMicrotask:e=>{Promise.resolve().then(e)},a=()=>{let e;return[new Promise((t=>{e=t})),e]},u=e=>{let t;return()=>(e&&(t=e(),e=void 0),t)},f=(e,t,o)=>{const r=o?"unshift":"push";for(let o=0;o<t;o++)e[r](-1);return e},d=(e,t)=>{const o=e.t[t];return-1===o?e.o:o},p=(e,t,r)=>{const n=-1===e.t[t];return e.t[t]=r,e.i=o(t,e.i),n},m=(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=m(e,n);if(i<=t){if(i+d(e,n)>t)return n;o=n+1}else r=n-1}return i(o,0,e.l-1)},v=(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-(-1===o?e.o:o)),0))},_="undefined"!=typeof window,b=()=>document.documentElement,y=e=>e.ownerDocument,S=e=>e.defaultView,g=/*#__PURE__*/u((()=>!!_&&"rtl"===getComputedStyle(b()).direction)),x=/*#__PURE__*/u((()=>!!/iP(hone|od|ad)/.test(navigator.userAgent)||"MacIntel"===navigator.platform&&navigator.maxTouchPoints>0)),z=/*#__PURE__*/u((()=>"scrollBehavior"in b().style)),$=(e,s=40,i=4,c=0,a,u=!1)=>{let _=!!c,b=1,y=0,S=0,g=0,z=0,$=0,w=0,I=0,k=0,O=_?[0,r(c-1,0)]:t,j=[0,0],E=0;const q=((e,t)=>({o:t,t:f([],e),l:e,i:-1,u:f([],e)}))(e,s),T=new Set,B=()=>g-S,M=()=>B()+$+z,N=e=>((e,t,r,n)=>{if(n=o(n,e.l-1),m(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)]}})(q,e,y,j[0]),P=()=>(e=>e.l?m(e,e.l-1)+d(e,e.l-1):0)(q),R=e=>m(q,e)-$,A=e=>d(q,e),H=(e,t=-1)=>q.t[e]===t,V=e=>{e&&(x()&&0!==I||O&&1===k?$+=e:z+=e)};return{p:()=>b,m:()=>(e=>[e.t.slice(),e.o])(q),h:()=>{let e,t;return w?[e,t]=j:([e,t]=j=N(r(0,M())),O&&(e=o(e,O[0]),t=r(t,O[1]))),1!==I&&(e-=r(0,i)),2!==I&&(t+=r(0,i)),[r(e,0),o(t,q.l-1)]},v:()=>h(q,M()),S:()=>h(q,M()+y),I:H,k:R,O:A,j:()=>q.l,q:()=>g,T:()=>0!==I,B:()=>y,M:()=>S,N:P,P:()=>(w=z,z=0,[w,2===k]),R:(e,t)=>{const o=[e,t];return T.add(o),()=>{T.delete(o)}},A:(e,o)=>{let s,i,c=0;switch(e){case 1:{const e=w;w=0;const r=o-g,s=n(r);e&&s<n(e)+1||0!==k||(I=r<0?2:1),_&&(O=t,_=!1),g=o,c=4;const l=B();l>=-y&&l<=P()&&(c+=1,i=s>y);break}case 2:c=8,0!==I&&(s=!0,c+=1),I=0,k=0,O=t;break;case 3:{const e=o.filter((([e,t])=>!H(e,t)));if(!e.length)break;V(e.reduce(((e,[t,o])=>((2===k||(O&&1===k?t<O[0]:R(t)+(0===I&&0===k?A(t):0)<B()))&&(e+=o-A(t)),e)),0));for(const[t,o]of e){const e=A(t),r=p(q,t,o);u&&(E+=r?o:o-e)}u&&y&&E>y&&(V(((e,t)=>{let o=0;const n=[];e.t.forEach(((e,r)=>{-1!==e&&(n.push(e),r<t&&o++)})),e.i=-1;const s=l(n),i=s.length,c=i/2|0,a=i%2==0?(s[c-1]+s[c])/2:s[c],u=e.o;return((e.o=a)-u)*r(t-o,0)})(q,h(q,M()))),u=!1),c=3,i=!0;break}case 4:y!==o&&(y=o,c=3);break;case 5:o[1]?(V(v(q,o[0],!0)),k=2,c=1):(v(q,o[0]),c=1);break;case 6:S=o;break;case 7:k=1;break;case 8:O=N(o),c=1}c&&(b=1+(2147483647&b),s&&$&&(z+=$,$=0),T.forEach((([e,t])=>{c&e&&t(i)})))}}},w=setTimeout,I=(e,t)=>t&&g()?-e:e,k=(e,o,r,n,s,i)=>{const l=Date.now;let c=0,a=!1,u=!1,f=!1,d=!1;const p=(()=>{let o;const r=()=>{o!=t&&clearTimeout(o)},n=()=>{r(),o=w((()=>{o=t,(()=>{if(a||u)return a=!1,void p();f=!1,e.A(2)})()}),150)};return n.H=r,n})(),m=()=>{c=l(),f&&(d=!0),i&&e.A(6,i()),e.A(1,n()),p()},h=t=>{if(a||!e.T()||t.ctrlKey)return;const o=l()-c;150>o&&50<o&&(r?t.deltaX:t.deltaY)&&(a=!0)},v=()=>{u=!0,f=d=!1},_=()=>{u=!1,x()&&(f=!0)};return o.addEventListener("scroll",m),o.addEventListener("wheel",h,{passive:!0}),o.addEventListener("touchstart",v,{passive:!0}),o.addEventListener("touchend",_,{passive:!0}),{V:()=>{o.removeEventListener("scroll",m),o.removeEventListener("wheel",h),o.removeEventListener("touchstart",v),o.removeEventListener("touchend",_),p.H()},C:()=>{const[t,o]=e.P();t&&(s(I(t,r),o,d),d=!1,o&&e.B()>e.N()&&e.A(1,n()))}}},O=(e,t,o)=>{let r;return[async(n,s)=>{if(!await t())return;r&&r();const i=()=>{const[t,o]=a();return r=()=>{o(!1)},e.B()&&w(r,150),[t,e.R(2,(()=>{o(!0)}))]};if(s&&z())e.A(8,n()),c((async()=>{for(;;){let t=!0;for(let[o,r]=e.h();o<=r;o++)if(e.I(o)){t=!1;break}if(t)break;const[o,r]=i();try{if(!await o)return}finally{r()}}e.A(7),o(n(),s)}));else for(;;){const[t,r]=i();try{if(e.A(7),o(n()),!await t)return}finally{r()}}},()=>{r&&r()}]},j=e=>{let t;return{F(o){(t||(t=new(S(y(o)).ResizeObserver)(e))).observe(o)},J(e){t.unobserve(e)},V(){t&&t.disconnect()}}},E=/*#__PURE__*/e.defineComponent({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(t){const o=e.ref(),r=e.computed((()=>t.L.value&&t.W.k(t.D))),n=e.computed((()=>t.L.value&&t.W.I(t.D)));return e.watch((()=>o.value&&t.D),((e,r,n)=>{n(t.Y(o.value,t.D))}),{flush:"post"}),()=>{var s;const{X:i,U:l,G:c,K:a}=t,u=n.value,{style:f,...d}=null!==(s=t.Z)&&void 0!==s?s:{},p={contain:"layout style",position:u&&c?void 0:"absolute",[l?"height":"width"]:"100%",[l?"top":"left"]:"0px",[l?g()?"right":"left":"top"]:r.value+"px",visibility:!u||c?"visible":"hidden",...f};return l&&(p.display="inline-flex"),e.createVNode(a,e.mergeProps({ref:o,style:p},d),"function"==typeof(m=i)||"[object Object]"===Object.prototype.toString.call(m)&&!e.isVNode(m)?i:{default:()=>[i],_:2},16,["style"]);var m}}}),q=(e,t)=>{const o=e.key;return null!=o?o:"_"+t},T=(e,t)=>e[0]===t[0]&&e[1]===t[1],B={data:{type:Array,required:!0},overscan: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},M=/*#__PURE__*/e.defineComponent({props:B,emits:["scroll","scrollEnd"],setup(o,{emit:n,expose:s,slots:c}){let u=!!o.ssrCount;const f=o.horizontal,d=e.ref(),p=$(o.data.length,o.itemSize,o.overscan,o.ssrCount,0,!o.itemSize),m=((e,o)=>{let r;const n=o?"width":"height",s=new WeakMap,i=j((o=>{const i=[];for(const{target:l,contentRect:c}of o)if(l.offsetParent)if(l===r)e.A(4,c[n]);else{const e=s.get(l);e!=t&&i.push([e,c[n]])}i.length&&e.A(3,i)}));return{ee(e){i.F(r=e)},te:(e,t)=>(s.set(e,t),i.F(e),()=>{s.delete(e),i.J(e)}),oe:i.V}})(p,f),h=((e,t)=>{let o,r,n=a();const s=t?"scrollLeft":"scrollTop",l=t?"overflowX":"overflowY",[c,u]=O(e,(()=>n[0]),((e,r)=>{e=I(e,t),r?o.scrollTo({[t?"left":"top"]:e,behavior:"smooth"}):o[s]=e}));return{re(i){o=i,r=k(e,i,t,(()=>I(i[s],t)),((t,o,r)=>{if(r){const e=i.style,t=e[l];e[l]="hidden",w((()=>{e[l]=t}))}i[s]=e.q()+t,o&&u()})),n[1](!0)},oe(){r&&r.V(),n[1](!1),n=a()},ne(e){c((()=>e))},se(t){t+=e.q(),c((()=>t))},ie(t,{align:o,smooth:r,offset:n=0}={}){if(t=i(t,0,e.j()-1),"nearest"===o){const r=e.k(t),n=e.q();if(r<n)o="start";else{if(!(r+e.O(t)>n+e.B()))return;o="end"}}c((()=>n+e.M()+e.k(t)+("end"===o?e.O(t)-e.B():"center"===o?(e.O(t)-e.B())/2:0)),r)},le:()=>{r&&r.C()}}})(p,f),v=e.ref(p.p()),_=p.R(1,(()=>{v.value=p.p()})),b=p.R(4,(()=>{n("scroll",p.q())})),y=p.R(8,(()=>{n("scrollEnd")})),S=e.computed((e=>{v.value;const t=p.h();return e&&T(e,t)?e:t})),g=e.computed((()=>v.value&&p.T())),x=e.computed((()=>v.value&&p.N()));return e.onMounted((()=>{u=!1;const t=requestAnimationFrame((()=>{const e=e=>{m.ee(e),h.re(e)};o.scrollRef?e(o.scrollRef):e(d.value.parentElement)}));e.onUnmounted((()=>{cancelAnimationFrame(t)}))})),e.onUnmounted((()=>{_(),b(),y(),m.oe(),h.oe()})),e.watch((()=>o.data.length),(e=>{p.A(5,[e,o.shift])})),e.watch((()=>o.startMargin),(e=>{p.A(6,e)}),{immediate:!0}),e.watch([v],(()=>{h.le()}),{flush:"post"}),s({get scrollOffset(){return p.q()},get scrollSize(){return(e=>r(e.N(),e.B()))(p)},get viewportSize(){return p.B()},findStartIndex:p.v,findEndIndex:p.S,getItemOffset:p.k,getItemSize:p.O,scrollToIndex:h.ie,scrollTo:h.ne,scrollBy:h.se}),()=>{const t=o.as,r=o.item,n=x.value,s=[],i=t=>{var n;const s=c.default({item:o.data[t],index:t})[0];return e.createVNode(E,{key:q(s,t),L:v,W:p,Y:m.te,D:t,X:s,U:f,G:u,K:r,Z:null===(n=o.itemProps)||void 0===n?void 0:n.call(o,{item:o.data[t],index:t})},null,8,["_stateVersion","_store","_resizer","_index","_children","_isHorizontal","_isSSR","_as","_itemProps"])};if(o.keepMounted){const e=new Set(o.keepMounted);for(let[t,o]=S.value;t<=o;t++)e.add(t);l([...e]).forEach((e=>{s.push(i(e))}))}else for(let[e,t]=S.value;e<=t;e++)s.push(i(e));return e.createVNode(t,{ref:d,style:{contain:"size paint style",overflowAnchor:"none",overflow:"clip",flex:"none",position:"relative",width:f?n+"px":"100%",height:f?"100%":n+"px",pointerEvents:g.value?"none":void 0}},"function"==typeof(a=s)||"[object Object]"===Object.prototype.toString.call(a)&&!e.isVNode(a)?s:{default:()=>[s],_:2},8,["style"]);var a}}}),N={data:{type:Array,required:!0},overscan:Number,itemSize:Number,shift:Boolean,horizontal:Boolean,ssrCount:Number,itemProps:Function,keepMounted:Array},P=/*#__PURE__*/e.defineComponent({props:N,emits:["scroll","scrollEnd"],setup(t,{emit:o,expose:r,slots:n}){const s=t.horizontal,i=e=>{o("scroll",e)},l=()=>{o("scrollEnd")},c=e.ref();return r({get scrollOffset(){return c.value.scrollOffset},get scrollSize(){return c.value.scrollSize},get viewportSize(){return c.value.viewportSize},findStartIndex:(...e)=>c.value.findStartIndex(...e),findEndIndex:(...e)=>c.value.findEndIndex(...e),getItemOffset:(...e)=>c.value.getItemOffset(...e),getItemSize:(...e)=>c.value.getItemSize(...e),scrollToIndex:(...e)=>c.value.scrollToIndex(...e),scrollTo:(...e)=>c.value.scrollTo(...e),scrollBy:(...e)=>c.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(M,{ref:c,data:t.data,overscan:t.overscan,itemSize:t.itemSize,itemProps:t.itemProps,shift:t.shift,ssrCount:t.ssrCount,horizontal:s,keepMounted:t.keepMounted,onScroll:i,onScrollEnd:l},(o=n,"function"==typeof o||"[object Object]"===Object.prototype.toString.call(o)&&!e.isVNode(o)?n:{default:()=>[n],_:2}),8,["data","overscan","itemSize","itemProps","shift","ssrCount","horizontal","keepMounted","onScroll","onScrollEnd"])],4);var o}}}),R={data:{type:Array,required:!0},overscan:Number,itemSize:Number,shift:Boolean,horizontal:Boolean,as:{type:String,default:"div"},item:{type:String,default:"div"}},A=/*#__PURE__*/e.defineComponent({props:R,emits:["scroll","scrollEnd"],setup(o,{emit:r,slots:n,expose:s}){const l=o.horizontal,c=e.ref(),u=$(o.data.length,o.itemSize,o.overscan,void 0,0,!o.itemSize),f=((e,o)=>{const r=o?"width":"height",n=o?"innerWidth":"innerHeight",s=new WeakMap,i=j((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.A(3,n)}));let l;return{ee(t){const o=S(y(t)),r=()=>{e.A(4,o[n])};o.addEventListener("resize",r),r(),l=()=>{o.removeEventListener("resize",r)}},te:(e,t)=>(s.set(e,t),i.F(e),()=>{s.delete(e),i.J(e)}),oe(){l&&l(),i.V()}}})(u,l),d=((e,t)=>{let o,r,n=a();const s=t?"left":"top",[l]=O(e,(()=>n[0]),((e,r)=>{e=I(e,t);const n=S(y(o));r?n.scroll({[s]:e,behavior:"smooth"}):n.scroll({[s]:e})})),c=(e,t,o,r,n=0)=>{const s=r?"offsetLeft":"offsetTop",i=n+(r&&g()?o.innerWidth-e[s]-e.offsetWidth:e[s]),l=e.offsetParent;return e!==t&&l?c(l,t,o,r,i):i};return{re(i){o=i;const l=t?"scrollX":"scrollY",a=y(i),u=S(a);r=k(e,u,t,(()=>I(u[l],t)),(t=>{u.scroll({[s]:e.q()+t})}),(()=>c(i,a.body,u,t))),n[1](!0)},oe(){r&&r.V(),o=void 0,n[1](!1),n=a()},le:()=>{r&&r.C()},ie(r,{align:n,smooth:s,offset:a=0}={}){if(!o)return;if(r=i(r,0,e.j()-1),"nearest"===n){const t=e.k(r),o=e.q();if(t<o)n="start";else{if(!(t+e.O(r)>o+e.B()))return;n="end"}}const u=y(o),f=S(u),d=u.documentElement,p=()=>e.B()-(t?d.clientWidth:d.clientHeight);l((()=>a+c(o,u.body,f,t)+e.k(r)+("end"===n?e.O(r)-(e.B()-p()):"center"===n?(e.O(r)-(e.B()-p()))/2:0)),s)}}})(u,l),p=e.ref(u.p()),m=u.R(1,(()=>{p.value=u.p()})),h=u.R(4,(()=>{r("scroll")})),v=u.R(8,(()=>{r("scrollEnd")})),_=e.computed((e=>{p.value;const t=u.h();return e&&T(e,t)?e:t})),b=e.computed((()=>p.value&&u.T())),x=e.computed((()=>p.value&&u.N()));return e.onMounted((()=>{const e=c.value;e&&(f.ee(e),d.re(e))})),e.onUnmounted((()=>{m(),h(),v(),f.oe(),d.oe()})),e.watch((()=>o.data.length),(e=>{u.A(5,[e,o.shift])})),e.watch([p],(()=>{d.le()}),{flush:"post"}),s({findStartIndex:u.v,findEndIndex:u.S,scrollToIndex:d.ie}),()=>{const t=o.as,r=o.item,s=x.value,i=[];for(let[t,s]=_.value;t<=s;t++){const s=n.default({item:o.data[t],index:t})[0];i.push(e.createVNode(E,{key:q(s,t),L:p,W:u,Y:f.te,D:t,X:s,U:l,K:r},null,8,["_stateVersion","_store","_resizer","_index","_children","_isHorizontal","_as"]))}return e.createVNode(t,{ref:c,style:{contain:"size paint style",overflowAnchor:"none",overflow:"clip",flex:"none",position:"relative",width:l?s+"px":"100%",height:l?"100%":s+"px",pointerEvents:b.value?"none":void 0}},"function"==typeof(a=i)||"[object Object]"===Object.prototype.toString.call(a)&&!e.isVNode(a)?i:{default:()=>[i],_:2},8,["style"]);var a}}});exports.VList=P,exports.Virtualizer=M,exports.WindowVirtualizer=A;
|
|
2
2
|
//# sourceMappingURL=index.cjs.map
|