virtua 0.48.2 → 0.48.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -26
- package/lib/core/index.cjs +1 -1
- package/lib/core/index.cjs.map +1 -1
- package/lib/core/index.js +1 -1
- package/lib/core/index.js.map +1 -1
- package/lib/index.cjs +1 -1
- package/lib/index.cjs.map +1 -1
- package/lib/index.js +1 -1
- package/lib/index.js.map +1 -1
- package/lib/solid/index.cjs +1 -1
- package/lib/solid/index.cjs.map +1 -1
- package/lib/solid/index.js +1 -1
- package/lib/solid/index.js.map +1 -1
- package/lib/solid/index.jsx +12 -13
- package/lib/solid/index.jsx.map +1 -1
- package/lib/svelte/VList.svelte +8 -6
- package/lib/svelte/VList.type.d.ts +1 -1
- package/lib/svelte/Virtualizer.svelte +10 -9
- package/lib/svelte/Virtualizer.type.d.ts +4 -0
- package/lib/svelte/WindowVirtualizer.svelte +3 -4
- package/lib/svelte/utils.js.map +1 -1
- 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 +23 -19
package/lib/svelte/VList.svelte
CHANGED
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
getKey,
|
|
11
11
|
bufferSize,
|
|
12
12
|
itemSize,
|
|
13
|
+
ssrCount,
|
|
13
14
|
shift,
|
|
14
15
|
horizontal,
|
|
15
16
|
keepMounted,
|
|
@@ -32,27 +33,27 @@
|
|
|
32
33
|
ref.getViewportSize()) satisfies VListHandle["getViewportSize"] as VListHandle["getViewportSize"];
|
|
33
34
|
export const findItemIndex = ((...args) =>
|
|
34
35
|
ref.findItemIndex(
|
|
35
|
-
...args
|
|
36
|
+
...args,
|
|
36
37
|
)) satisfies VListHandle["findItemIndex"] as VListHandle["findItemIndex"];
|
|
37
38
|
export const getItemOffset = ((...args) =>
|
|
38
39
|
ref.getItemOffset(
|
|
39
|
-
...args
|
|
40
|
+
...args,
|
|
40
41
|
)) satisfies VListHandle["getItemOffset"] as VListHandle["getItemOffset"];
|
|
41
42
|
export const getItemSize = ((...args) =>
|
|
42
43
|
ref.getItemSize(
|
|
43
|
-
...args
|
|
44
|
+
...args,
|
|
44
45
|
)) satisfies VListHandle["getItemSize"] as VListHandle["getItemSize"];
|
|
45
46
|
export const scrollToIndex = ((...args) =>
|
|
46
47
|
ref.scrollToIndex(
|
|
47
|
-
...args
|
|
48
|
+
...args,
|
|
48
49
|
)) satisfies VListHandle["scrollToIndex"] as VListHandle["scrollToIndex"];
|
|
49
50
|
export const scrollTo = ((...args) =>
|
|
50
51
|
ref.scrollTo(
|
|
51
|
-
...args
|
|
52
|
+
...args,
|
|
52
53
|
)) satisfies VListHandle["scrollTo"] as VListHandle["scrollTo"];
|
|
53
54
|
export const scrollBy = ((...args) =>
|
|
54
55
|
ref.scrollBy(
|
|
55
|
-
...args
|
|
56
|
+
...args,
|
|
56
57
|
)) satisfies VListHandle["scrollBy"] as VListHandle["scrollBy"];
|
|
57
58
|
|
|
58
59
|
const viewportStyle = styleToString({
|
|
@@ -76,6 +77,7 @@
|
|
|
76
77
|
{getKey}
|
|
77
78
|
{bufferSize}
|
|
78
79
|
{itemSize}
|
|
80
|
+
{ssrCount}
|
|
79
81
|
{shift}
|
|
80
82
|
{horizontal}
|
|
81
83
|
{keepMounted}
|
|
@@ -3,7 +3,7 @@ import type { VirtualizerHandle, VirtualizerProps } from "./Virtualizer.type.js"
|
|
|
3
3
|
/**
|
|
4
4
|
* Props of {@link VList}.
|
|
5
5
|
*/
|
|
6
|
-
export interface VListProps<T> extends Pick<VirtualizerProps<T>, "data" | "getKey" | "bufferSize" | "itemSize" | "shift" | "horizontal" | "children" | "onscroll" | "onscrollend" | "keepMounted" | "cache">, ViewportComponentAttributes {
|
|
6
|
+
export interface VListProps<T> extends Pick<VirtualizerProps<T>, "data" | "getKey" | "bufferSize" | "itemSize" | "ssrCount" | "shift" | "horizontal" | "children" | "onscroll" | "onscrollend" | "keepMounted" | "cache">, ViewportComponentAttributes {
|
|
7
7
|
}
|
|
8
8
|
/**
|
|
9
9
|
* Methods of {@link VList}.
|
|
@@ -30,6 +30,7 @@
|
|
|
30
30
|
scrollRef,
|
|
31
31
|
bufferSize,
|
|
32
32
|
itemSize,
|
|
33
|
+
ssrCount,
|
|
33
34
|
shift = false,
|
|
34
35
|
horizontal = false,
|
|
35
36
|
keepMounted,
|
|
@@ -43,9 +44,9 @@
|
|
|
43
44
|
const store = createVirtualStore(
|
|
44
45
|
data.length,
|
|
45
46
|
itemSize,
|
|
46
|
-
|
|
47
|
+
ssrCount,
|
|
47
48
|
cache,
|
|
48
|
-
!itemSize
|
|
49
|
+
!itemSize,
|
|
49
50
|
);
|
|
50
51
|
const resizer = createResizer(store, horizontal);
|
|
51
52
|
const scroller = createScroller(store, horizontal);
|
|
@@ -70,7 +71,6 @@
|
|
|
70
71
|
|
|
71
72
|
let indexes = $derived.by(() => {
|
|
72
73
|
const [start, end] = range;
|
|
73
|
-
const pushKey = !horizontal && negative ? "unshift" : "push";
|
|
74
74
|
const arr: number[] = [];
|
|
75
75
|
if (keepMounted) {
|
|
76
76
|
const mounted = new Set(keepMounted);
|
|
@@ -78,27 +78,28 @@
|
|
|
78
78
|
mounted.add(i);
|
|
79
79
|
}
|
|
80
80
|
for (const index of sort([...mounted])) {
|
|
81
|
-
arr
|
|
81
|
+
arr.push(index);
|
|
82
82
|
}
|
|
83
83
|
} else {
|
|
84
84
|
for (let i = start; i <= end; i++) {
|
|
85
|
-
arr
|
|
85
|
+
arr.push(i);
|
|
86
86
|
}
|
|
87
87
|
}
|
|
88
88
|
return arr;
|
|
89
89
|
});
|
|
90
90
|
|
|
91
91
|
onMount(() => {
|
|
92
|
+
const container = containerRef!;
|
|
92
93
|
const assignRef = (scrollable: HTMLElement) => {
|
|
93
94
|
resizer.$observeRoot(scrollable);
|
|
94
|
-
scroller.$observe(scrollable);
|
|
95
|
+
scroller.$observe(container, scrollable);
|
|
95
96
|
};
|
|
96
97
|
// parent's ref may not exist on mount https://github.com/inokawa/virtua/issues/603 https://github.com/inokawa/virtua/issues/690
|
|
97
98
|
tick().then(() => {
|
|
98
99
|
if (scrollRef) {
|
|
99
100
|
assignRef(scrollRef);
|
|
100
101
|
} else {
|
|
101
|
-
assignRef(
|
|
102
|
+
assignRef(container.parentElement!);
|
|
102
103
|
}
|
|
103
104
|
});
|
|
104
105
|
});
|
|
@@ -133,7 +134,7 @@
|
|
|
133
134
|
store.$getScrollOffset satisfies VirtualizerHandle["getScrollOffset"] as VirtualizerHandle["getScrollOffset"];
|
|
134
135
|
export const getScrollSize = (() =>
|
|
135
136
|
_getScrollSize(
|
|
136
|
-
store
|
|
137
|
+
store,
|
|
137
138
|
)) satisfies VirtualizerHandle["getScrollSize"] as VirtualizerHandle["getScrollSize"];
|
|
138
139
|
export const getViewportSize =
|
|
139
140
|
store.$getViewportSize satisfies VirtualizerHandle["getViewportSize"] as VirtualizerHandle["getViewportSize"];
|
|
@@ -159,7 +160,7 @@
|
|
|
159
160
|
width: horizontal ? totalSize + "px" : "100%",
|
|
160
161
|
height: horizontal ? "100%" : totalSize + "px",
|
|
161
162
|
"pointer-events": isScrolling ? "none" : undefined,
|
|
162
|
-
})
|
|
163
|
+
}),
|
|
163
164
|
);
|
|
164
165
|
</script>
|
|
165
166
|
|
|
@@ -44,6 +44,10 @@ export interface VirtualizerProps<T> {
|
|
|
44
44
|
* - If set, you can opt out estimation and use the value as initial item size.
|
|
45
45
|
*/
|
|
46
46
|
itemSize?: number;
|
|
47
|
+
/**
|
|
48
|
+
* A prop for SSR. If set, the specified amount of items will be mounted in the initial rendering regardless of the container size until hydrated. The minimum value is 0.
|
|
49
|
+
*/
|
|
50
|
+
ssrCount?: number;
|
|
47
51
|
/**
|
|
48
52
|
* While true is set, scroll position will be maintained from the end not usual start when items are added to/removed from start. It's recommended to set false if you add to/remove from mid/end of the list because it can cause unexpected behavior. This prop is useful for reverse infinite scrolling.
|
|
49
53
|
*/
|
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
itemSize,
|
|
39
39
|
undefined,
|
|
40
40
|
cache,
|
|
41
|
-
!itemSize
|
|
41
|
+
!itemSize,
|
|
42
42
|
);
|
|
43
43
|
const resizer = createWindowResizer(store, horizontal);
|
|
44
44
|
const scroller = createWindowScroller(store, horizontal);
|
|
@@ -64,10 +64,9 @@
|
|
|
64
64
|
|
|
65
65
|
let indexes = $derived.by(() => {
|
|
66
66
|
const [start, end] = range;
|
|
67
|
-
const pushKey = !horizontal && negative ? "unshift" : "push";
|
|
68
67
|
const arr: number[] = [];
|
|
69
68
|
for (let i = start; i <= end; i++) {
|
|
70
|
-
arr
|
|
69
|
+
arr.push(i);
|
|
71
70
|
}
|
|
72
71
|
return arr;
|
|
73
72
|
});
|
|
@@ -119,7 +118,7 @@
|
|
|
119
118
|
width: horizontal ? totalSize + "px" : "100%",
|
|
120
119
|
height: horizontal ? "100%" : totalSize + "px",
|
|
121
120
|
"pointer-events": isScrolling ? "none" : undefined,
|
|
122
|
-
})
|
|
121
|
+
}),
|
|
123
122
|
);
|
|
124
123
|
</script>
|
|
125
124
|
|
package/lib/svelte/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sources":["../../../src/svelte/utils.ts"],"sourcesContent":["export const styleToString = (\n obj: Record<string, string | undefined
|
|
1
|
+
{"version":3,"file":"utils.js","sources":["../../../src/svelte/utils.ts"],"sourcesContent":["export const styleToString = (\n obj: Record<string, string | undefined>,\n): string => {\n return Object.keys(obj).reduce((acc, k) => {\n const value = obj[k];\n if (value == null) {\n return acc;\n }\n return acc + `${k}:${value};`;\n }, \"\");\n};\n\nexport const defaultGetKey = (_data: unknown, i: number) => \"_\" + i;\n"],"names":[],"mappings":"AAAO,MAAM,aAAa,GAAG,CAC3B,GAAuC,KAC7B;AACV,IAAA,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,KAAI;AACxC,QAAA,MAAM,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC;AACpB,QAAA,IAAI,KAAK,IAAI,IAAI,EAAE;AACjB,YAAA,OAAO,GAAG;QACZ;AACA,QAAA,OAAO,GAAG,GAAG,CAAA,EAAG,CAAC,CAAA,CAAA,EAAI,KAAK,GAAG;IAC/B,CAAC,EAAE,EAAE,CAAC;AACR;AAEO,MAAM,aAAa,GAAG,CAAC,KAAc,EAAE,CAAS,KAAK,GAAG,GAAG;;;;"}
|
package/lib/vue/index.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var e=require("vue");const t=null,{min:r,max:o,abs:n,floor:s}=Math,i=(e,t,n)=>r(n,o(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,r)=>{const o=r?"unshift":"push";for(let r=0;r<t;r++)e[o](-1);return e},d=(e,t)=>{const r=e.t[t];return-1===r?e.o:r},p=(e,t,o)=>{const n=-1===e.t[t];return e.t[t]=o,e.i=r(t,e.i),n},h=(e,t)=>{if(!e.l)return 0;if(e.i>=t)return e.u[t];e.i<0&&(e.u[0]=0,e.i=0);let r=e.i,o=e.u[r];for(;r<t;)o+=d(e,r),e.u[++r]=o;return e.i=t,o},m=(e,t,r=0,o=e.l-1)=>{let n=r;for(;r<=o;){const i=s((r+o)/2);h(e,i)<=t?(n=i,r=i+1):o=i-1}return i(n,0,e.l-1)},_=(e,t,o)=>{const n=t-e.l;return e.i=o?-1:r(t-1,e.i),e.l=t,n>0?(f(e.u,n),f(e.t,n,o),e.o*n):(e.u.splice(n),(o?e.t.splice(0,-n):e.t.splice(n)).reduce(((t,r)=>t-(-1===r?e.o:r)),0))},b=e=>e.documentElement,v=e=>e.ownerDocument,g=e=>e.defaultView,y=/*#__PURE__*/u((()=>!!/iP(hone|od|ad)/.test(navigator.userAgent)||"MacIntel"===navigator.platform&&navigator.maxTouchPoints>0)),S=/*#__PURE__*/u((()=>"scrollBehavior"in b(document).style)),z=(e,s=40,i=0,c,a=!1)=>{let u=!!i,b=1,v=0,g=0,S=0,z=0,x=0,$=0,w=0,I=0,O=t,k=[0,u?o(i-1,0):-1],j=0,N=!1;const q=((e,t,n)=>({o:t,t:n?f(n.slice(0,r(e,n.length)),o(0,e-n.length)):f([],e),l:e,i:-1,u:f([],e+1)}))(e,c?c[1]:s,c&&c[0]),B=new Set,T=()=>S-g,M=()=>T()+x+z,E=(e,t)=>((e,t,o,n)=>{if(n=r(n,e.l-1),h(e,n)<=t){const r=m(e,o,n);return[m(e,t,n,r),r]}{const r=m(e,t,void 0,n);return[r,m(e,o,r)]}})(q,e,t,k[0]),P=()=>h(q,q.l),R=(e,t)=>{const r=h(q,e)-x;return t?P()-r-A(e):r},A=e=>d(q,e),C=(e,t=-1)=>q.t[e]===t,H=e=>{e&&(y()&&0!==w||O&&1===I?x+=e:z+=e)};return{p:()=>{B.clear()},h:()=>b,m:()=>(e=>[e.t.slice(),e.o])(q),v:(e=200)=>{if(!N||u)return k;let t,n;if($)[t,n]=k;else{let s=o(0,M()),i=s+v;a||(e=o(0,e),1!==w&&(s-=e),2!==w&&(i+=e)),[t,n]=k=E(o(0,s),o(0,i)),O&&(t=r(t,O[0]),n=o(n,O[1]))}return[o(t,0),r(n,q.l-1)]},S:e=>m(q,e-g),I:C,O:R,k:A,j:()=>q.l,N:()=>S,q:()=>0!==w,B:()=>v,T:()=>g,M:P,P:()=>($=z,z=0,[$,2===I]),R:(e,t)=>{const r=[e,t];return B.add(r),()=>{B.delete(r)}},A:(e,r)=>{let s,i,c=0;switch(e){case 1:{if(r===S&&0===I)break;const e=$;$=0;const t=r-S,o=n(t);e&&o<n(e)+1||0!==I||(w=t<0?2:1),u&&(u=!1),S=r,c=4;const s=T();s>=-v&&s<=P()&&(c+=1,i=o>v);break}case 2:c=8,0!==w&&(s=!0,c+=1),w=0,I=0,O=t;break;case 3:{const e=r.filter((([e,t])=>!C(e,t)));if(!e.length)break;H(e.reduce(((e,[t,r])=>((2===I||(O&&1===I?t<O[0]:R(t+(0===w&&0===I?1:0))<T()))&&(e+=r-A(t)),e)),0));for(const[t,r]of e){const e=A(t),o=p(q,t,r);a&&(j+=o?r:r-e)}a&&v&&j>v&&(H(((e,t)=>{let r=0;const n=[];e.t.forEach(((e,o)=>{-1!==e&&(n.push(e),o<t&&r++)})),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)*o(t-r,0)})(q,m(q,M()))),a=!1),c=3,i=!0;break}case 4:v!==r&&(v||(N=i=!0),v=r,c=3);break;case 5:r[1]?(H(_(q,r[0],!0)),I=2,c=1):(_(q,r[0]),c=1);break;case 6:g=r;break;case 7:I=1;break;case 8:O=E(r,r+v),c=1}c&&(b=1+(2147483647&b),s&&x&&(z+=x,x=0),B.forEach((([e,t])=>{c&e&&t(i)})))}}},x=setTimeout,$=(e,t)=>t?-e:e,w=(e,r,o,n,s,i)=>{const l=Date.now;let c=0,a=!1,u=!1,f=!1,d=!1;const p=(()=>{let r;const o=()=>{r!=t&&clearTimeout(r)},n=()=>{o(),r=x((()=>{r=t,(()=>{if(a||u)return a=!1,void p();f=!1,e.A(2)})()}),150)};return n.C=o,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 r=l()-c;150>r&&50<r&&(o?t.deltaX:t.deltaY)&&(a=!0)},_=()=>{u=!0,f=d=!1},b=()=>{u=!1,y()&&(f=!0)};return r.addEventListener("scroll",h),r.addEventListener("wheel",m,{passive:!0}),r.addEventListener("touchstart",_,{passive:!0}),r.addEventListener("touchend",b,{passive:!0}),{H:()=>{r.removeEventListener("scroll",h),r.removeEventListener("wheel",m),r.removeEventListener("touchstart",_),r.removeEventListener("touchend",b),p.C()},V:()=>{const[t,r]=e.P();t&&(s(t,r,d),d=!1,r&&e.B()>e.M()&&e.A(1,n()))}}},I=(e,t,r)=>{let o;return[async(n,s)=>{if(!await t())return;o&&o();const i=()=>{const[t,r]=a();return o=()=>{r(!1)},e.B()&&x(o,150),[t,e.R(2,(()=>{r(!0)}))]};if(s&&S())e.A(8,n()),c((async()=>{for(;;){let t=!0;for(let[r,o]=e.v();r<=o;r++)if(e.I(r)){t=!1;break}if(t)break;const[r,o]=i();try{if(!await r)return}finally{o()}}e.A(7),r(n(),s)}));else for(;;){const[t,o]=i();try{if(e.A(7),r(n()),!await t)return}finally{o()}}},()=>{o&&o()}]},O=e=>{let t;return{F(r){(t||(t=new(g(v(r)).ResizeObserver)(e))).observe(r)},J(e){t.unobserve(e)},H(){t&&t.disconnect()}}},k=/*#__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:Boolean},Z:{type:String,required:!0},ee:Object},setup(t){const r=e.ref(),o=e.computed((()=>t.L.value&&t.W.O(t.D,t.K))),n=e.computed((()=>t.L.value&&t.W.I(t.D)));return e.watch((()=>r.value&&t.D),((e,o,n)=>{n(t.Y(r.value,t.D))}),{flush:"post"}),()=>{var s;const{X:i,U:l,G:c,Z:a}=t,u=n.value,{style:f,...d}=null!==(s=t.ee)&&void 0!==s?s:{},p={contain:"layout style",position:u&&c?void 0:"absolute",[l?"height":"width"]:"100%",[l?"top":"left"]:"0px",[l?"left":"top"]:o.value+"px",visibility:!u||c?void 0:"hidden",...f};return l&&(p.display="inline-flex"),e.createVNode(a,e.mergeProps({ref:r,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}}}),j=(e,t)=>{const r=e.key;return null!=r?r:"_"+t},N=(e,t)=>e[0]===t[0]&&e[1]===t[1],q={data:{type:Array,required:!0},bufferSize:Number,itemSize:Number,shift:Boolean,horizontal:Boolean,startMargin:{type:Number,default:0},ssrCount:Number,scrollRef:Object,as:{type:String,default:"div"},item:{type:String,default:"div"},itemProps:Function,keepMounted:Array,cache:Object},B=/*#__PURE__*/e.defineComponent({props:q,emits:["scroll","scrollEnd"],setup(r,{emit:n,expose:s,slots:c}){let u=!!r.ssrCount;const f=r.horizontal,d=e.ref(),p=z(r.data.length,r.itemSize,r.ssrCount,r.cache,!r.itemSize),h=((e,r)=>{let o;const n=r?"width":"height",s=new WeakMap,i=O((r=>{const i=[];for(const{target:l,contentRect:c}of r)if(l.offsetParent)if(l===o)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{te(e){i.F(o=e)},re:(e,t)=>(s.set(e,t),i.F(e),()=>{s.delete(e),i.J(e)}),p:i.H}})(p,f),m=((e,t)=>{let r,o,n=a(),s=!1;const l=t?"scrollLeft":"scrollTop",c=t?"overflowX":"overflowY",[u,f]=I(e,(()=>n[0]),((e,o)=>{e=$(e,s),o?r.scrollTo({[t?"left":"top"]:e,behavior:"smooth"}):r[l]=e}));return{oe(i){r=i,t&&(s="rtl"===getComputedStyle(i).direction),o=w(e,i,t,(()=>$(i[l],s)),((t,r,o)=>{if(o){const e=i.style,t=e[c];e[c]="hidden",x((()=>{e[c]=t}))}i[l]=$(e.N()+t,s),r&&f()})),n[1](!0)},p(){o&&o.H(),n[1](!1),n=a()},ne:()=>s,se(e){u((()=>e))},ie(t){t+=e.N(),u((()=>t))},le(t,{align:r,smooth:o,offset:n=0}={}){if(t=i(t,0,e.j()-1),"nearest"===r){const o=e.O(t),n=e.N();if(o<n)r="start";else{if(!(o+e.k(t)>n+e.B()))return;r="end"}}u((()=>n+e.T()+e.O(t)+("end"===r?e.k(t)-e.B():"center"===r?(e.k(t)-e.B())/2:0)),o)},ce:()=>{o&&o.V()}}})(p,f),_=e.ref(p.h());p.R(1,(()=>{_.value=p.h()})),p.R(4,(()=>{n("scroll",p.N())})),p.R(8,(()=>{n("scrollEnd")}));const b=e.computed((e=>{_.value;const t=p.v(r.bufferSize);return e&&N(e,t)?e:t})),v=e.computed((()=>_.value&&p.q())),g=e.computed((()=>_.value&&p.M()));return e.onMounted((()=>{u=!1;const t=requestAnimationFrame((()=>{const e=e=>{h.te(e),m.oe(e)};r.scrollRef?e(r.scrollRef):e(d.value.parentElement)}));e.onUnmounted((()=>{cancelAnimationFrame(t)}))})),e.onUnmounted((()=>{p.p(),h.p(),m.p()})),e.watch((()=>r.data.length),(e=>{p.A(5,[e,r.shift])})),e.watch((()=>r.startMargin),(e=>{p.A(6,e)}),{immediate:!0}),e.watch([_],(()=>{m.ce()}),{flush:"post"}),s({get cache(){return p.m()},get scrollOffset(){return p.N()},get scrollSize(){return(e=>o(e.M(),e.B()))(p)},get viewportSize(){return p.B()},findItemIndex:p.S,getItemOffset:p.O,getItemSize:p.k,scrollToIndex:m.le,scrollTo:m.se,scrollBy:m.ie}),()=>{const t=r.as,o=r.item,n=g.value,s=m.ne(),i=!f&&s?"unshift":"push",a=[],y=t=>{var n;const i=c.default({item:r.data[t],index:t})[0];return e.createVNode(k,{key:j(i,t),L:_,W:p,Y:h.re,D:t,X:i,U:f,K:s,G:u,Z:o,ee:null===(n=r.itemProps)||void 0===n?void 0:n.call(r,{item:r.data[t],index:t})},null,8,["_stateVersion","_store","_resizer","_index","_children","_isHorizontal","_isNegative","_isSSR","_as","_itemProps"])};if(r.keepMounted){const e=new Set(r.keepMounted);for(let[t,r]=b.value;t<=r;t++)e.add(t);l([...e]).forEach((e=>{a[i](y(e))}))}else for(let[e,t]=b.value;e<=t;e++)a[i](y(e));return e.createVNode(t,{ref:d,style:{contain:"size style",overflowAnchor:"none",flex:"none",position:"relative",width:f?n+"px":"100%",height:f?"100%":n+"px",pointerEvents:v.value?"none":void 0}},"function"==typeof(S=a)||"[object Object]"===Object.prototype.toString.call(S)&&!e.isVNode(S)?a:{default:()=>[a],_:2},8,["style"]);var S}}}),T={data:{type:Array,required:!0},bufferSize:Number,itemSize:Number,shift:Boolean,horizontal:Boolean,ssrCount:Number,itemProps:Function,keepMounted:Array,cache:Object},M=/*#__PURE__*/e.defineComponent({props:T,emits:["scroll","scrollEnd"],setup(t,{emit:r,expose:o,slots:n}){const s=t.horizontal,i=e=>{r("scroll",e)},l=()=>{r("scrollEnd")},c=e.ref();return o({get cache(){return c.value.cache},get scrollOffset(){return c.value.scrollOffset},get scrollSize(){return c.value.scrollSize},get viewportSize(){return c.value.viewportSize},findItemIndex:(...e)=>c.value.findItemIndex(...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(B,{ref:c,data:t.data,bufferSize:t.bufferSize,itemSize:t.itemSize,itemProps:t.itemProps,shift:t.shift,ssrCount:t.ssrCount,horizontal:s,keepMounted:t.keepMounted,cache:t.cache,onScroll:i,onScrollEnd:l},(r=n,"function"==typeof r||"[object Object]"===Object.prototype.toString.call(r)&&!e.isVNode(r)?n:{default:()=>[n],_:2}),8,["data","bufferSize","itemSize","itemProps","shift","ssrCount","horizontal","keepMounted","cache","onScroll","onScrollEnd"])],4);var r}}}),E={data:{type:Array,required:!0},bufferSize:Number,itemSize:Number,shift:Boolean,horizontal:Boolean,as:{type:String,default:"div"},item:{type:String,default:"div"},cache:Object},P=/*#__PURE__*/e.defineComponent({props:E,emits:["scroll","scrollEnd"],setup(r,{emit:o,slots:n,expose:s}){const l=r.horizontal,u=e.ref(),f=z(r.data.length,r.itemSize,void 0,r.cache,!r.itemSize),d=((e,r)=>{const o=r?"width":"height",n=r?"innerWidth":"innerHeight",s=new WeakMap,i=O((r=>{const n=[];for(const{target:e,contentRect:i}of r){if(!e.offsetParent)continue;const r=s.get(e);r!=t&&n.push([r,i[o]])}n.length&&e.A(3,n)}));let l;return{te(t){const r=g(v(t)),o=()=>{e.A(4,r[n])};r.addEventListener("resize",o),c(o),l=()=>{r.removeEventListener("resize",o)}},re:(e,t)=>(s.set(e,t),i.F(e),()=>{s.delete(e),i.J(e)}),p(){l&&l(),i.H()}}})(f,l),p=((e,t)=>{let r,o,n=a(),s=!1;const l=t?"left":"top",[c]=I(e,(()=>n[0]),((e,t)=>{e=$(e,s);const o=g(v(r));t?o.scroll({[l]:e,behavior:"smooth"}):o.scroll({[l]:e})})),u=(e,t,r,o,n=0)=>{const i=o?"offsetLeft":"offsetTop",l=n+(o&&s?r.innerWidth-e[i]-e.offsetWidth:e[i]),c=e.offsetParent;return e!==t&&c?u(c,t,r,o,l):l};return{oe(i){r=i;const c=t?"scrollX":"scrollY",a=v(i),f=g(a);t&&(s="rtl"===getComputedStyle(b(a)).direction),o=w(e,f,t,(()=>$(f[c],s)),((t,r)=>{r?f.scroll({[l]:$(e.N()+t,s)}):f.scrollBy({[l]:$(t,s)})}),(()=>u(i,a.body,f,t))),n[1](!0)},p(){o&&o.H(),r=void 0,n[1](!1),n=a()},ne:()=>s,ce:()=>{o&&o.V()},le(o,{align:n,smooth:s,offset:l=0}={}){if(!r)return;if(o=i(o,0,e.j()-1),"nearest"===n){const t=e.O(o),r=e.N();if(t<r)n="start";else{if(!(t+e.k(o)>r+e.B()))return;n="end"}}const a=v(r),f=g(a),d=b(a),p=()=>e.B()-(t?d.clientWidth:d.clientHeight);c((()=>l+u(r,a.body,f,t)+e.O(o)+("end"===n?e.k(o)-(e.B()-p()):"center"===n?(e.k(o)-(e.B()-p()))/2:0)),s)}}})(f,l),h=e.ref(f.h());f.R(1,(()=>{h.value=f.h()})),f.R(4,(()=>{o("scroll")})),f.R(8,(()=>{o("scrollEnd")}));const m=e.computed((e=>{h.value;const t=f.v(r.bufferSize);return e&&N(e,t)?e:t})),_=e.computed((()=>h.value&&f.q())),y=e.computed((()=>h.value&&f.M()));return e.onMounted((()=>{const e=u.value;e&&(d.te(e),p.oe(e))})),e.onUnmounted((()=>{f.p(),d.p(),p.p()})),e.watch((()=>r.data.length),(e=>{f.A(5,[e,r.shift])})),e.watch([h],(()=>{p.ce()}),{flush:"post"}),s({get cache(){return f.m()},get scrollOffset(){return f.N()},get viewportSize(){return f.B()},findItemIndex:f.S,getItemOffset:f.O,getItemSize:f.k,scrollToIndex:p.le}),()=>{const t=r.as,o=r.item,s=y.value,i=p.ne(),c=!l&&i?"unshift":"push",a=[];for(let[t,s]=m.value;t<=s;t++){const s=n.default({item:r.data[t],index:t})[0];a[c](e.createVNode(k,{key:j(s,t),L:h,W:f,Y:d.re,D:t,X:s,U:l,K:i,Z:o},null,8,["_stateVersion","_store","_resizer","_index","_children","_isHorizontal","_isNegative","_as"]))}return e.createVNode(t,{ref:u,style:{contain:"size style",overflowAnchor:"none",flex:"none",position:"relative",width:l?s+"px":"100%",height:l?"100%":s+"px",pointerEvents:_.value?"none":void 0}},"function"==typeof(b=a)||"[object Object]"===Object.prototype.toString.call(b)&&!e.isVNode(b)?a:{default:()=>[a],_:2},8,["style"]);var b}}});exports.VList=M,exports.Virtualizer=B,exports.WindowVirtualizer=P;
|
|
1
|
+
var e=require("vue");const t=null,{min:r,max:o,abs:n,floor:s}=Math,i=(e,t,n)=>r(n,o(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,r)=>{const o=r?"unshift":"push";for(let r=0;r<t;r++)e[o](-1);return e},d=(e,t)=>{const r=e.t[t];return-1===r?e.o:r},p=(e,t,o)=>{const n=-1===e.t[t];return e.t[t]=o,e.i=r(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 r=e.i,o=e.u[r];for(;r<t;)o+=d(e,r),e.u[++r]=o;return e.i=t,o},h=(e,t,r=0,o=e.l-1)=>{let n=r;for(;r<=o;){const i=s((r+o)/2);m(e,i)<=t?(n=i,r=i+1):o=i-1}return i(n,0,e.l-1)},_=(e,t,o)=>{const n=t-e.l;return e.i=o?-1:r(t-1,e.i),e.l=t,n>0?(f(e.u,n),f(e.t,n,o),e.o*n):(e.u.splice(n),(o?e.t.splice(0,-n):e.t.splice(n)).reduce(((t,r)=>t-(-1===r?e.o:r)),0))},b=e=>e.documentElement,v=e=>e.ownerDocument,g=e=>e.defaultView,y=/*#__PURE__*/u((()=>!!/iP(hone|od|ad)/.test(navigator.userAgent)||"MacIntel"===navigator.platform&&navigator.maxTouchPoints>0)),S=/*#__PURE__*/u((()=>"scrollBehavior"in b(document).style)),z=(e,s=40,i=0,c,a=!1)=>{let u=!!i,b=1,v=0,g=0,S=0,z=0,x=0,$=0,w=0,I=0,O=t,k=[0,u?o(i-1,0):-1],j=0,N=!1;const q=((e,t,n)=>({o:t,t:n?f(n.slice(0,r(e,n.length)),o(0,e-n.length)):f([],e),l:e,i:-1,u:f([],e+1)}))(e,c?c[1]:s,c&&c[0]),B=new Set,T=()=>S-g,M=()=>T()+x+z,E=(e,t)=>((e,t,o,n)=>{if(n=r(n,e.l-1),m(e,n)<=t){const r=h(e,o,n);return[h(e,t,n,r),r]}{const r=h(e,t,void 0,n);return[r,h(e,o,r)]}})(q,e,t,k[0]),P=()=>m(q,q.l),R=(e,t)=>{const r=m(q,e)-x;return t?P()-r-A(e):r},A=e=>d(q,e),C=(e,t=-1)=>q.t[e]===t,H=e=>{e&&(y()&&0!==w||O&&1===I?x+=e:z+=e)};return{p:()=>{B.clear()},m:()=>b,h:()=>(e=>[e.t.slice(),e.o])(q),v:(e=200)=>{if(!N||u)return k;let t,n;if($)[t,n]=k;else{let s=o(0,M()),i=s+v;a||(e=o(0,e),1!==w&&(s-=e),2!==w&&(i+=e)),[t,n]=k=E(o(0,s),o(0,i)),O&&(t=r(t,O[0]),n=o(n,O[1]))}return[o(t,0),r(n,q.l-1)]},S:e=>h(q,e-g),I:C,O:R,k:A,j:()=>q.l,N:()=>S,q:()=>0!==w,B:()=>v,T:()=>g,M:P,P:()=>($=z,z=0,[$,2===I]),R:(e,t)=>{const r=[e,t];return B.add(r),()=>{B.delete(r)}},A:(e,r)=>{let s,i,c=0;switch(e){case 1:{if(r===S&&0===I)break;const e=$;$=0;const t=r-S,o=n(t);e&&o<n(e)+1||0!==I||(w=t<0?2:1),u&&(u=!1),S=r,c=4;const s=T();s>=-v&&s<=P()&&(c+=1,i=o>v);break}case 2:c=8,0!==w&&(s=!0,c+=1),w=0,I=0,O=t;break;case 3:{const e=r.filter((([e,t])=>!C(e,t)));if(!e.length)break;H(e.reduce(((e,[t,r])=>((2===I||(O&&1===I?t<O[0]:R(t+(0===w&&0===I?1:0))<T()))&&(e+=r-A(t)),e)),0));for(const[t,r]of e){const e=A(t),o=p(q,t,r);a&&(j+=o?r:r-e)}a&&v&&j>v&&(H(((e,t)=>{let r=0;const n=[];e.t.forEach(((e,o)=>{-1!==e&&(n.push(e),o<t&&r++)})),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)*o(t-r,0)})(q,h(q,M()))),a=!1),c=3,i=!0;break}case 4:v!==r&&(v||(N=i=!0),v=r,c=3);break;case 5:r[1]?(H(_(q,r[0],!0)),I=2,c=1):(_(q,r[0]),c=1);break;case 6:g=r;break;case 7:I=1;break;case 8:O=E(r,r+v),c=1}c&&(b=1+(2147483647&b),s&&x&&(z+=x,x=0),B.forEach((([e,t])=>{c&e&&t(i)})))}}},x=setTimeout,$=(e,t)=>t?-e:e,w=(e,r,o,n,s,i)=>{const l=Date.now;let c=0,a=!1,u=!1,f=!1,d=!1;const p=(()=>{let r;const o=()=>{r!=t&&clearTimeout(r)},n=()=>{o(),r=x((()=>{r=t,(()=>{if(a||u)return a=!1,void p();f=!1,e.A(2)})()}),150)};return n.C=o,n})(),m=()=>{c=l(),f&&(d=!0),i&&e.A(6,i()),e.A(1,n()),p()},h=t=>{if(a||!e.q()||t.ctrlKey)return;const r=l()-c;150>r&&50<r&&(o?t.deltaX:t.deltaY)&&(a=!0)},_=()=>{u=!0,f=d=!1},b=()=>{u=!1,y()&&(f=!0)};return r.addEventListener("scroll",m),r.addEventListener("wheel",h,{passive:!0}),r.addEventListener("touchstart",_,{passive:!0}),r.addEventListener("touchend",b,{passive:!0}),{H:()=>{r.removeEventListener("scroll",m),r.removeEventListener("wheel",h),r.removeEventListener("touchstart",_),r.removeEventListener("touchend",b),p.C()},V:()=>{const[t,r]=e.P();t&&(s(t,r,d),d=!1,r&&e.B()>e.M()&&e.A(1,n()))}}},I=(e,t,r)=>{let o;return[async(n,s)=>{if(!await t())return;o&&o();const i=()=>{const[t,r]=a();return o=()=>{r(!1)},e.B()&&x(o,150),[t,e.R(2,(()=>{r(!0)}))]};if(s&&S())e.A(8,n()),c((async()=>{for(;;){let t=!0;for(let[r,o]=e.v();r<=o;r++)if(e.I(r)){t=!1;break}if(t)break;const[r,o]=i();try{if(!await r)return}finally{o()}}e.A(7),r(n(),s)}));else for(;;){const[t,o]=i();try{if(e.A(7),r(n()),!await t)return}finally{o()}}},()=>{o&&o()}]},O=e=>{let t;return{F(r){(t||(t=new(g(v(r)).ResizeObserver)(e))).observe(r)},J(e){t.unobserve(e)},H(){t&&t.disconnect()}}},k=/*#__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:Boolean},Z:{type:String,required:!0},ee:Object},setup(t){const r=e.ref(),o=e.computed((()=>t.L.value&&t.W.O(t.D,t.K))),n=e.computed((()=>t.L.value&&t.W.I(t.D)));return e.watch((()=>r.value&&t.D),((e,o,n)=>{n(t.Y(r.value,t.D))}),{flush:"post"}),()=>{var s;const{X:i,U:l,G:c,Z:a}=t,u=n.value,{style:f,...d}=null!==(s=t.ee)&&void 0!==s?s:{},p={contain:"layout style",position:u&&c?void 0:"absolute",[l?"height":"width"]:"100%",[l?"top":"left"]:"0px",[l?"left":"top"]:o.value+"px",visibility:!u||c?void 0:"hidden",...f};return l&&(p.display="inline-flex"),e.createVNode(a,e.mergeProps({ref:r,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}}}),j=(e,t)=>{if(1===e.length){const t=e[0].key;if(null!=t)return t}return"_"+t},N=(e,t)=>e[0]===t[0]&&e[1]===t[1],q={data:{type:Array,required:!0},bufferSize:Number,itemSize:Number,shift:Boolean,horizontal:Boolean,startMargin:{type:Number,default:0},ssrCount:Number,scrollRef:Object,as:{type:String,default:"div"},item:{type:String,default:"div"},itemProps:Function,keepMounted:Array,cache:Object},B=/*#__PURE__*/e.defineComponent({props:q,emits:["scroll","scrollEnd"],setup(r,{emit:n,expose:s,slots:c}){let u=!!r.ssrCount;const f=r.horizontal,d=e.ref(),p=z(r.data.length,r.itemSize,r.ssrCount,r.cache,!r.itemSize),m=((e,r)=>{let o;const n=r?"width":"height",s=new WeakMap,i=O((r=>{const i=[];for(const{target:l,contentRect:c}of r)if(l.offsetParent)if(l===o)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{te(e){i.F(o=e)},re:(e,t)=>(s.set(e,t),i.F(e),()=>{s.delete(e),i.J(e)}),p:i.H}})(p,f),h=((e,t)=>{let r,o,n=a(),s=!1;const l=t?"scrollLeft":"scrollTop",c=t?"overflowX":"overflowY",[u,f]=I(e,(()=>n[0]),((e,o)=>{e=$(e,s),o?r.scrollTo({[t?"left":"top"]:e,behavior:"smooth"}):r[l]=e}));return{oe(i,a){r=a,t&&(s="rtl"===getComputedStyle(a).direction),o=w(e,a,t,(()=>$(a[l],s)),((t,r,o)=>{if(o){const e=a.style,t=e[c];e[c]="hidden",x((()=>{e[c]=t}))}a[l]=$(e.N()+t,s),r&&f()})),n[1](!0)},p(){o&&o.H(),n[1](!1),n=a()},ne:()=>s,se(e){u((()=>e))},ie(t){t+=e.N(),u((()=>t))},le(t,{align:r,smooth:o,offset:n=0}={}){if(t=i(t,0,e.j()-1),"nearest"===r){const o=e.O(t),n=e.N();if(o<n)r="start";else{if(!(o+e.k(t)>n+e.B()))return;r="end"}}u((()=>n+e.T()+e.O(t)+("end"===r?e.k(t)-e.B():"center"===r?(e.k(t)-e.B())/2:0)),o)},ce:()=>{o&&o.V()}}})(p,f),_=e.ref(p.m());p.R(1,(()=>{_.value=p.m()})),p.R(4,(()=>{n("scroll",p.N())})),p.R(8,(()=>{n("scrollEnd")}));const b=e.computed((e=>{_.value;const t=p.v(r.bufferSize);return e&&N(e,t)?e:t})),v=e.computed((()=>_.value&&p.q())),g=e.computed((()=>_.value&&p.M()));return e.onMounted((()=>{u=!1;const t=d.value,o=requestAnimationFrame((()=>{const e=e=>{m.te(e),h.oe(t,e)};r.scrollRef?e(r.scrollRef):e(t.parentElement)}));e.onUnmounted((()=>{cancelAnimationFrame(o)}))})),e.onUnmounted((()=>{p.p(),m.p(),h.p()})),e.watch((()=>r.data.length),(e=>{p.A(5,[e,r.shift])})),e.watch((()=>r.startMargin),(e=>{p.A(6,e)}),{immediate:!0}),e.watch([_],(()=>{h.ce()}),{flush:"post"}),s({get cache(){return p.h()},get scrollOffset(){return p.N()},get scrollSize(){return(e=>o(e.M(),e.B()))(p)},get viewportSize(){return p.B()},findItemIndex:p.S,getItemOffset:p.O,getItemSize:p.k,scrollToIndex:h.le,scrollTo:h.se,scrollBy:h.ie}),()=>{const t=r.as,o=r.item,n=g.value,s=h.ne(),i=[],a=t=>{var n;const i=c.default({item:r.data[t],index:t});return e.createVNode(k,{key:j(i,t),L:_,W:p,Y:m.re,D:t,X:i,U:f,K:s,G:u,Z:o,ee:null===(n=r.itemProps)||void 0===n?void 0:n.call(r,{item:r.data[t],index:t})},null,8,["_stateVersion","_store","_resizer","_index","_children","_isHorizontal","_isNegative","_isSSR","_as","_itemProps"])};if(r.keepMounted){const e=new Set(r.keepMounted);for(let[t,r]=b.value;t<=r;t++)e.add(t);l([...e]).forEach((e=>{i.push(a(e))}))}else for(let[e,t]=b.value;e<=t;e++)i.push(a(e));return e.createVNode(t,{ref:d,style:{contain:"size style",overflowAnchor:"none",flex:"none",position:"relative",width:f?n+"px":"100%",height:f?"100%":n+"px",pointerEvents:v.value?"none":void 0}},"function"==typeof(y=i)||"[object Object]"===Object.prototype.toString.call(y)&&!e.isVNode(y)?i:{default:()=>[i],_:2},8,["style"]);var y}}}),T={data:{type:Array,required:!0},bufferSize:Number,itemSize:Number,shift:Boolean,horizontal:Boolean,ssrCount:Number,itemProps:Function,keepMounted:Array,cache:Object},M=/*#__PURE__*/e.defineComponent({props:T,emits:["scroll","scrollEnd"],setup(t,{emit:r,expose:o,slots:n}){const s=t.horizontal,i=e=>{r("scroll",e)},l=()=>{r("scrollEnd")},c=e.ref();return o({get cache(){return c.value.cache},get scrollOffset(){return c.value.scrollOffset},get scrollSize(){return c.value.scrollSize},get viewportSize(){return c.value.viewportSize},findItemIndex:(...e)=>c.value.findItemIndex(...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(B,{ref:c,data:t.data,bufferSize:t.bufferSize,itemSize:t.itemSize,itemProps:t.itemProps,shift:t.shift,ssrCount:t.ssrCount,horizontal:s,keepMounted:t.keepMounted,cache:t.cache,onScroll:i,onScrollEnd:l},(r=n,"function"==typeof r||"[object Object]"===Object.prototype.toString.call(r)&&!e.isVNode(r)?n:{default:()=>[n],_:2}),8,["data","bufferSize","itemSize","itemProps","shift","ssrCount","horizontal","keepMounted","cache","onScroll","onScrollEnd"])],4);var r}}}),E={data:{type:Array,required:!0},bufferSize:Number,itemSize:Number,shift:Boolean,horizontal:Boolean,as:{type:String,default:"div"},item:{type:String,default:"div"},cache:Object},P=/*#__PURE__*/e.defineComponent({props:E,emits:["scroll","scrollEnd"],setup(r,{emit:o,slots:n,expose:s}){const l=r.horizontal,u=e.ref(),f=z(r.data.length,r.itemSize,void 0,r.cache,!r.itemSize),d=((e,r)=>{const o=r?"width":"height",n=r?"innerWidth":"innerHeight",s=new WeakMap,i=O((r=>{const n=[];for(const{target:e,contentRect:i}of r){if(!e.offsetParent)continue;const r=s.get(e);r!=t&&n.push([r,i[o]])}n.length&&e.A(3,n)}));let l;return{te(t){const r=g(v(t)),o=()=>{e.A(4,r[n])};r.addEventListener("resize",o),c(o),l=()=>{r.removeEventListener("resize",o)}},re:(e,t)=>(s.set(e,t),i.F(e),()=>{s.delete(e),i.J(e)}),p(){l&&l(),i.H()}}})(f,l),p=((e,t)=>{let r,o,n=a(),s=!1;const l=t?"left":"top",[c]=I(e,(()=>n[0]),((e,t)=>{e=$(e,s);const o=g(v(r));t?o.scroll({[l]:e,behavior:"smooth"}):o.scroll({[l]:e})})),u=(e,t,r,o,n=0)=>{const i=o?"offsetLeft":"offsetTop",l=n+(o&&s?r.innerWidth-e[i]-e.offsetWidth:e[i]),c=e.offsetParent;return e!==t&&c?u(c,t,r,o,l):l};return{oe(i){r=i;const c=t?"scrollX":"scrollY",a=v(i),f=g(a);t&&(s="rtl"===getComputedStyle(b(a)).direction),o=w(e,f,t,(()=>$(f[c],s)),((t,r)=>{r?f.scroll({[l]:$(e.N()+t,s)}):f.scrollBy({[l]:$(t,s)})}),(()=>u(i,a.body,f,t))),n[1](!0)},p(){o&&o.H(),r=void 0,n[1](!1),n=a()},ne:()=>s,ce:()=>{o&&o.V()},le(o,{align:n,smooth:s,offset:l=0}={}){if(!r)return;if(o=i(o,0,e.j()-1),"nearest"===n){const t=e.O(o),r=e.N();if(t<r)n="start";else{if(!(t+e.k(o)>r+e.B()))return;n="end"}}const a=v(r),f=g(a),d=b(a),p=()=>e.B()-(t?d.clientWidth:d.clientHeight);c((()=>l+u(r,a.body,f,t)+e.O(o)+("end"===n?e.k(o)-(e.B()-p()):"center"===n?(e.k(o)-(e.B()-p()))/2:0)),s)}}})(f,l),m=e.ref(f.m());f.R(1,(()=>{m.value=f.m()})),f.R(4,(()=>{o("scroll")})),f.R(8,(()=>{o("scrollEnd")}));const h=e.computed((e=>{m.value;const t=f.v(r.bufferSize);return e&&N(e,t)?e:t})),_=e.computed((()=>m.value&&f.q())),y=e.computed((()=>m.value&&f.M()));return e.onMounted((()=>{const e=u.value;e&&(d.te(e),p.oe(e))})),e.onUnmounted((()=>{f.p(),d.p(),p.p()})),e.watch((()=>r.data.length),(e=>{f.A(5,[e,r.shift])})),e.watch([m],(()=>{p.ce()}),{flush:"post"}),s({get cache(){return f.h()},get scrollOffset(){return f.N()},get viewportSize(){return f.B()},findItemIndex:f.S,getItemOffset:f.O,getItemSize:f.k,scrollToIndex:p.le}),()=>{const t=r.as,o=r.item,s=y.value,i=p.ne(),c=[];for(let[t,s]=h.value;t<=s;t++){const s=n.default({item:r.data[t],index:t});c.push(e.createVNode(k,{key:j(s,t),L:m,W:f,Y:d.re,D:t,X:s,U:l,K:i,Z:o},null,8,["_stateVersion","_store","_resizer","_index","_children","_isHorizontal","_isNegative","_as"]))}return e.createVNode(t,{ref:u,style:{contain:"size style",overflowAnchor:"none",flex:"none",position:"relative",width:l?s+"px":"100%",height:l?"100%":s+"px",pointerEvents:_.value?"none":void 0}},"function"==typeof(a=c)||"[object Object]"===Object.prototype.toString.call(a)&&!e.isVNode(a)?c:{default:()=>[c],_:2},8,["style"]);var a}}});exports.VList=M,exports.Virtualizer=B,exports.WindowVirtualizer=P;
|
|
2
2
|
//# sourceMappingURL=index.cjs.map
|