virtua 0.35.0 → 0.36.0

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.
@@ -0,0 +1,192 @@
1
+ <script lang="ts" generics="T">
2
+ import { onMount, onDestroy } from "svelte";
3
+ import {
4
+ SCROLL_IDLE,
5
+ type StateVersion,
6
+ getOverscanedRange,
7
+ CHANGE_ITEM_LENGTH,
8
+ createVirtualizer,
9
+ FIX_SCROLL_JUMP,
10
+ GET_ITEM_OFFSET,
11
+ GET_JUMP_COUNT,
12
+ GET_RANGE,
13
+ GET_SCROLL_DIRECTION,
14
+ GET_SCROLL_OFFSET,
15
+ GET_SCROLL_SIZE,
16
+ GET_TOTAL_SIZE,
17
+ GET_VIEWPORT_SIZE,
18
+ IS_ITEM_HIDDEN,
19
+ OBSERVE_ITEM_RESIZE,
20
+ ON_MOUNT,
21
+ ON_UN_MOUNT,
22
+ SCROLL_BY,
23
+ SCROLL_TO,
24
+ SCROLL_TO_INDEX,
25
+ CHANGE_START_MARGIN,
26
+ GET_START_SPACER_SIZE,
27
+ GET_ITEMS_LENGTH,
28
+ } from "./core";
29
+ import { defaultGetKey, styleToString } from "./utils";
30
+ import ListItem from "./ListItem.svelte";
31
+ import type { VirtualizerHandle, VirtualizerProps } from "./Virtualizer.type";
32
+
33
+ interface Props extends VirtualizerProps<T> {}
34
+
35
+ let {
36
+ data,
37
+ getKey = defaultGetKey,
38
+ as = "div",
39
+ item: itemAs,
40
+ scrollRef,
41
+ overscan = 4,
42
+ itemSize,
43
+ shift = false,
44
+ horizontal = false,
45
+ startMargin = 0,
46
+ children,
47
+ onscroll,
48
+ onscrollend,
49
+ onrangechange,
50
+ }: Props = $props();
51
+
52
+ const virtualizer = createVirtualizer(
53
+ data.length,
54
+ itemSize,
55
+ horizontal,
56
+ (v) => {
57
+ rerender = v;
58
+ },
59
+ (offset) => {
60
+ onscroll && onscroll(offset);
61
+ },
62
+ () => {
63
+ onscrollend && onscrollend();
64
+ }
65
+ );
66
+
67
+ let containerRef: HTMLDivElement | undefined = $state();
68
+
69
+ let rerender: StateVersion = $state([]);
70
+
71
+ let range = $derived(rerender && virtualizer[GET_RANGE]());
72
+ let scrollDirection = $derived(
73
+ rerender && virtualizer[GET_SCROLL_DIRECTION]()
74
+ );
75
+ let totalSize = $derived(rerender && virtualizer[GET_TOTAL_SIZE]());
76
+ let jumpCount = $derived(rerender && virtualizer[GET_JUMP_COUNT]());
77
+ let extendedRange = $derived(
78
+ getOverscanedRange(
79
+ range[0],
80
+ range[1],
81
+ overscan,
82
+ scrollDirection,
83
+ data.length
84
+ )
85
+ );
86
+
87
+ onMount(() => {
88
+ if (scrollRef) {
89
+ virtualizer[ON_MOUNT](scrollRef);
90
+ } else {
91
+ virtualizer[ON_MOUNT](containerRef!.parentElement!);
92
+ }
93
+ });
94
+ onDestroy(() => {
95
+ virtualizer[ON_UN_MOUNT]();
96
+ });
97
+
98
+ $effect.pre(() => {
99
+ if (data.length !== virtualizer[GET_ITEMS_LENGTH]()) {
100
+ virtualizer[CHANGE_ITEM_LENGTH](data.length, shift);
101
+ }
102
+ });
103
+
104
+ $effect.pre(() => {
105
+ if (startMargin !== virtualizer[GET_START_SPACER_SIZE]()) {
106
+ virtualizer[CHANGE_START_MARGIN](startMargin);
107
+ }
108
+ });
109
+
110
+ let prevJumpCount: number | undefined;
111
+ $effect(() => {
112
+ if (prevJumpCount === jumpCount) return;
113
+ prevJumpCount = jumpCount;
114
+ virtualizer[FIX_SCROLL_JUMP]();
115
+ });
116
+
117
+ let prevRange: typeof range | undefined;
118
+ $effect(() => {
119
+ if (prevRange && prevRange[0] === range[0] && prevRange[1] === range[1])
120
+ return;
121
+ prevRange = range;
122
+ onrangechange && onrangechange(range[0], range[1]);
123
+ });
124
+
125
+ export const getScrollOffset = virtualizer[
126
+ GET_SCROLL_OFFSET
127
+ ] satisfies VirtualizerHandle["getScrollOffset"] as VirtualizerHandle["getScrollOffset"];
128
+ export const getScrollSize = virtualizer[
129
+ GET_SCROLL_SIZE
130
+ ] satisfies VirtualizerHandle["getScrollSize"] as VirtualizerHandle["getScrollSize"];
131
+ export const getViewportSize = virtualizer[
132
+ GET_VIEWPORT_SIZE
133
+ ] satisfies VirtualizerHandle["getViewportSize"] as VirtualizerHandle["getViewportSize"];
134
+ export const scrollToIndex = virtualizer[
135
+ SCROLL_TO_INDEX
136
+ ] satisfies VirtualizerHandle["scrollToIndex"] as VirtualizerHandle["scrollToIndex"];
137
+ export const scrollTo = virtualizer[
138
+ SCROLL_TO
139
+ ] satisfies VirtualizerHandle["scrollTo"] as VirtualizerHandle["scrollTo"];
140
+ export const scrollBy = virtualizer[
141
+ SCROLL_BY
142
+ ] satisfies VirtualizerHandle["scrollBy"] as VirtualizerHandle["scrollBy"];
143
+
144
+ let items = $derived.by(() => {
145
+ const [startIndex, endIndex] = extendedRange;
146
+ const newItems: T[] = [];
147
+ for (let i = startIndex, j = endIndex; i <= j; i++) {
148
+ newItems.push(data[i]!);
149
+ }
150
+ return newItems;
151
+ });
152
+
153
+ const containerStyle = styleToString({
154
+ // contain: "content",
155
+ "overflow-anchor": "none", // opt out browser's scroll anchoring because it will conflict to scroll anchoring of virtualizer
156
+ flex: "none", // flex style can break layout
157
+ position: "relative",
158
+ visibility: "hidden", // TODO replace with other optimization methods
159
+ });
160
+
161
+ let dynamicContainerStyle = $derived(
162
+ styleToString({
163
+ width: horizontal ? totalSize + "px" : "100%",
164
+ height: horizontal ? "100%" : totalSize + "px",
165
+ "pointer-events": scrollDirection !== SCROLL_IDLE ? "none" : undefined,
166
+ })
167
+ );
168
+ </script>
169
+
170
+ <!--
171
+ @component
172
+ Customizable list virtualizer for advanced usage. See {@link VirtualizerProps} and {@link VirtualizerHandle}.
173
+ -->
174
+ <svelte:element
175
+ this={as}
176
+ bind:this={containerRef}
177
+ style={`${containerStyle} ${dynamicContainerStyle}`}
178
+ >
179
+ {#each items as item, i (getKey(item, i + extendedRange[0]))}
180
+ {@const index = i + extendedRange[0]}
181
+ <ListItem
182
+ {children}
183
+ {item}
184
+ {index}
185
+ as={itemAs}
186
+ offset={rerender && virtualizer[GET_ITEM_OFFSET](index)}
187
+ hide={rerender && virtualizer[IS_ITEM_HIDDEN](index)}
188
+ {horizontal}
189
+ resizer={virtualizer[OBSERVE_ITEM_RESIZE]}
190
+ />
191
+ {/each}
192
+ </svelte:element>
@@ -0,0 +1,26 @@
1
+ import type { VirtualizerProps } from "./Virtualizer.type";
2
+ declare class __sveltets_Render<T> {
3
+ props(): VirtualizerProps<T>;
4
+ events(): {};
5
+ slots(): {};
6
+ bindings(): "";
7
+ exports(): {
8
+ getScrollOffset: () => number;
9
+ getScrollSize: () => number;
10
+ getViewportSize: () => number;
11
+ scrollToIndex: (index: number, opts?: import("../core/types").ScrollToIndexOpts) => void;
12
+ scrollTo: (offset: number) => void;
13
+ scrollBy: (offset: number) => void;
14
+ };
15
+ }
16
+ interface $$IsomorphicComponent {
17
+ new <T>(options: import('svelte').ComponentConstructorOptions<ReturnType<__sveltets_Render<T>['props']>>): import('svelte').SvelteComponent<ReturnType<__sveltets_Render<T>['props']>, ReturnType<__sveltets_Render<T>['events']>, ReturnType<__sveltets_Render<T>['slots']>> & {
18
+ $$bindings?: ReturnType<__sveltets_Render<T>['bindings']>;
19
+ } & ReturnType<__sveltets_Render<T>['exports']>;
20
+ <T>(internal: unknown, props: ReturnType<__sveltets_Render<T>['props']> & {}): ReturnType<__sveltets_Render<T>['exports']>;
21
+ z_$$bindings?: ReturnType<__sveltets_Render<any>['bindings']>;
22
+ }
23
+ /** Customizable list virtualizer for advanced usage. See {@link VirtualizerProps} and {@link VirtualizerHandle}. */
24
+ declare const Virtualizer: $$IsomorphicComponent;
25
+ type Virtualizer<T> = InstanceType<typeof Virtualizer<T>>;
26
+ export default Virtualizer;
@@ -0,0 +1,114 @@
1
+ // @ts-nocheck
2
+ import { type Snippet } from "svelte";
3
+ import type { SvelteHTMLElements } from "svelte/elements";
4
+ import { type ScrollToIndexOpts } from "../core/types";
5
+ /**
6
+ * Props of {@link Virtualizer}.
7
+ */
8
+ export interface VirtualizerProps<T> {
9
+ /**
10
+ * The data items rendered by this component.
11
+ */
12
+ data: T[];
13
+ /**
14
+ * The elements renderer snippet.
15
+ */
16
+ children: Snippet<[item: T, index: number]>;
17
+ /**
18
+ * Function that returns the key of an item in the list. It's recommended to specify whenever possible for performance.
19
+ * @default defaultGetKey (returns index of item)
20
+ */
21
+ getKey?: (data: T, index: number) => string | number;
22
+ /**
23
+ * Component or element type for container element.
24
+ * @defaultValue "div"
25
+ */
26
+ as?: keyof SvelteHTMLElements;
27
+ /**
28
+ * Component or element type for item element.
29
+ * @defaultValue "div"
30
+ */
31
+ item?: keyof SvelteHTMLElements;
32
+ /**
33
+ * Number of items to render above/below the visible bounds of the list. You can increase to avoid showing blank items in fast scrolling.
34
+ * @defaultValue 4
35
+ */
36
+ overscan?: number;
37
+ /**
38
+ * Reference to the scrollable element. The default will get the parent element of virtualizer.
39
+ */
40
+ scrollRef?: HTMLElement;
41
+ /**
42
+ * Item size hint for unmeasured items. It will help to reduce scroll jump when items are measured if used properly.
43
+ *
44
+ * - If not set, initial item sizes will be automatically estimated from measured sizes. This is recommended for most cases.
45
+ * - If set, you can opt out estimation and use the value as initial item size.
46
+ */
47
+ itemSize?: number;
48
+ /**
49
+ * 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.
50
+ */
51
+ shift?: boolean;
52
+ /**
53
+ * If true, rendered as a horizontally scrollable list. Otherwise rendered as a vertically scrollable list.
54
+ */
55
+ horizontal?: boolean;
56
+ /**
57
+ * If you put an element before virtualizer, you have to define its height with this prop.
58
+ */
59
+ startMargin?: number;
60
+ /**
61
+ * Callback invoked whenever scroll offset changes.
62
+ * @param offset Current scrollTop or scrollLeft.
63
+ */
64
+ onscroll?: (offset: number) => void;
65
+ /**
66
+ * Callback invoked when scrolling stops.
67
+ */
68
+ onscrollend?: () => void;
69
+ /**
70
+ * Callback invoked when visible items range changes.
71
+ */
72
+ onrangechange?: (
73
+ /**
74
+ * The start index of viewable items.
75
+ */
76
+ startIndex: number,
77
+ /**
78
+ * The end index of viewable items.
79
+ */
80
+ endIndex: number) => void;
81
+ }
82
+ /**
83
+ * Methods of {@link Virtualizer}.
84
+ */
85
+ export interface VirtualizerHandle {
86
+ /**
87
+ * Get current scrollTop or scrollLeft.
88
+ */
89
+ getScrollOffset: () => number;
90
+ /**
91
+ * Get current scrollHeight or scrollWidth.
92
+ */
93
+ getScrollSize: () => number;
94
+ /**
95
+ * Get current offsetHeight or offsetWidth.
96
+ */
97
+ getViewportSize: () => number;
98
+ /**
99
+ * Scroll to the item specified by index.
100
+ * @param index index of item
101
+ * @param opts options
102
+ */
103
+ scrollToIndex(index: number, opts?: ScrollToIndexOpts): void;
104
+ /**
105
+ * Scroll to the given offset.
106
+ * @param offset offset from start
107
+ */
108
+ scrollTo(offset: number): void;
109
+ /**
110
+ * Scroll by the given offset.
111
+ * @param offset offset from current position
112
+ */
113
+ scrollBy(offset: number): void;
114
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -13,13 +13,16 @@ 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
15
  export declare const IS_ITEM_HIDDEN = 9;
16
- export declare const OBSERVE_ITEM_RESIZE = 10;
17
- export declare const FIX_SCROLL_JUMP = 11;
18
- export declare const CHANGE_ITEM_LENGTH = 12;
19
- export declare const GET_SCROLL_SIZE = 13;
20
- export declare const SCROLL_TO = 14;
21
- export declare const SCROLL_BY = 15;
22
- export declare const SCROLL_TO_INDEX = 16;
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;
23
26
  /**
24
27
  * This function is workaround for terser minification.
25
28
  * Svelte doesn't seem to have a good way to modify and print its AST.
@@ -35,11 +38,14 @@ export declare const createVirtualizer: (count: number, itemSize: number | undef
35
38
  7: () => number;
36
39
  8: (index: number) => number;
37
40
  9: (index: number) => boolean;
38
- 10: import("../core/resizer").ItemResizeObserver;
39
- 11: () => void;
40
- 12: (len: number, shift?: boolean) => void;
41
- 13: () => number;
42
- 14: (offset: number) => void;
43
- 15: (offset: number) => void;
44
- 16: (index: number, opts?: import("..").ScrollToIndexOpts) => void;
41
+ 10: () => number;
42
+ 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;
49
+ 18: (offset: number) => void;
50
+ 19: (index: number, opts?: import("..").ScrollToIndexOpts) => void;
45
51
  };
@@ -1 +1 @@
1
- const e=null,{min:t,max:r,abs:o}=Math,n=setTimeout,s=(e,o,n)=>t(n,r(o,e)),c="function"==typeof queueMicrotask?queueMicrotask:e=>{Promise.resolve().then(e)},i=e=>{let t,r;return(...o)=>(t||(t=!0,r=e(...o)),r)},a=-1,l=(e,t,r)=>{const o=r?"unshift":"push";for(let r=0;r<t;r++)e[o](a);return e},u=(e,t)=>{const r=e.t[t];return r===a?e.o:r},f=(e,r,o)=>{const n=e.t[r]===a;return e.t[r]=o,e.i=t(r,e.i),n},_=(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+=u(e,r),e.u[++r]=o;return e.i=t,o},d=(e,t,r)=>{for(;r>=0&&r<e.l;){const o=_(e,r);if(o<=t){if(o+u(e,r)>t)break;r++}else r--}return s(r,0,e.l-1)},h=(e,r,o)=>{const n=r-e.l;return e.i=o?-1:t(r-1,e.i),e.l=r,n>0?(l(e.u,n),l(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-(r===a?e.o:r)),0))},m="undefined"!=typeof window,p=()=>document.documentElement,g=/*#__PURE__*/i((()=>!!m&&"rtl"===getComputedStyle(p()).direction)),b=/*#__PURE__*/i((()=>/iP(hone|od|ad)/.test(navigator.userAgent))),v=/*#__PURE__*/i((()=>"scrollBehavior"in p().style)),w=0,S=(e,o,n,s,c)=>(1!==s&&(e-=r(0,n)),2!==s&&(o+=r(0,n)),[r(e,0),t(o,c-1)]),k=(e,t)=>t&&g()?-e:e,I=0,y=1,z=2,x=3,T=4,M=5,J=6,R=7,C=8,D=9,O=10,P=11,q=12,B=13,L=14,U=15,V=16,F=(i,m,p,g,w,S)=>{const F=((n,s=40,c=0,i,m=!1)=>{let p=!!c,g=[],v=0,w=0,S=0,k=0,I=0,y=0,z=0,x=0,T=0,M=p?[0,r(c-1,0)]:e,J=[0,0],R=0;const C=((e,t)=>({o:t,t:l([],e),l:e,i:-1,u:l([],e)}))(n,s),D=new Set,O=()=>S-w,P=e=>((e,r,o,n)=>{const s=d(e,r,t(o,e.l-1));return[s,d(e,r+n,s)]})(C,e,J[0],v),q=()=>(e=>e.l?_(e,e.l-1)+u(e,e.l-1):0)(C),B=e=>_(C,e)-y,L=e=>u(C,e),U=e=>{e&&(b()&&0!==x?y+=e:(I+=e,k++))};return{_:()=>g,h:()=>(e=>[[...e.t],e.o])(C),m:()=>z?J:(J=P(r(0,O()+y+I)),M?[t(J[0],M[0]),r(J[1],M[1])]:J),p:e=>C.t[e]===a,v:()=>!!v,S:()=>!!M&&C.t.slice(r(0,M[0]-1),t(C.l-1,M[1]+1)+1).includes(a),k:B,I:L,T:()=>C.l,M:()=>S,J:()=>x,R:()=>v,C:()=>w,D:q,O:()=>k,P:()=>(z=I,I=0,[z,2===T||O()+v>=q()]),q(e,t){const r=[e,t];return D.add(r),()=>{D.delete(r)}},B(t,n){let s,c,i=0;switch(t){case 1:{const t=z;z=0;const r=n-S,s=o(r);t&&s<o(t)+1||0!==T||(x=r<0?2:1),p&&(M=e,p=!1),S=n,i=4;const a=O();a>=-v&&a<=q()&&(i+=1,c=s>v);break}case 2:i=8,0!==x&&(s=!0,i+=1),x=0,T=0,M=e;break;case 3:{const e=n.filter((([e,t])=>C.t[e]!==t));if(!e.length)break;U(e.reduce(((e,[t,r])=>((2===T||(M?t<M[0]:B(t)+(0===x&&0===T?L(t):0)<O()))&&(e+=r-L(t)),e)),0));for(const[t,r]of e){const e=L(t),o=f(C,t,r);m&&(R+=o?r:r-e)}m&&v&&R>v&&(U(((e,t)=>{let o=0;const n=e.t.filter(((e,r)=>{const n=e!==a;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),r=e.length/2|0;return t.length%2==0?(t[r-1]+t[r])/2:t[r]})(n))-s)*r(t-o,0)})(C,J[0])),m=!1),i=3,c=!0;break}case 4:v!==n&&(v=n,i=3);break;case 5:n[1]?(U(h(C,n[0],!0)),T=2,i=1):h(C,n[0]);break;case 6:w=n;break;case 7:T=1;break;case 8:M=P(n),i=1}i&&(g=[],s&&y&&(I+=y,y=0,k++),D.forEach((([e,t])=>{i&e&&t(c)})))}}})(i,null!=m?m:40,void 0,0,!m),W=((t,r)=>{let o;const n=r?"width":"height",s=new WeakMap,c=(e=>{let t;return{L(r){var o,n;(t||(t=new(n=r,o=n.ownerDocument,o.defaultView).ResizeObserver(e))).observe(r)},U(e){t.unobserve(e)},V(){t&&t.disconnect()}}})((r=>{const c=[];for(const{target:i,contentRect:a}of r)if(i.offsetParent)if(i===o)t.B(4,a[n]);else{const t=s.get(i);t!=e&&c.push([t,a[n]])}c.length&&t.B(3,c)}));return{F(e){c.L(o=e)},W:(e,t)=>(s.set(e,t),c.L(e),()=>{s.delete(e),c.U(e)}),V:c.V}})(F,p),X=((t,r)=>{let o,i,a;const l=r?"scrollLeft":"scrollTop",u=r?"overflowX":"overflowY",f=async(e,s)=>{if(!o)return void c((()=>f(e,s)));a&&a();const i=()=>{let e;return[new Promise(((r,o)=>{e=r,a=o,t.v()&&n(o,150)})),t.q(2,(()=>{e&&e()}))]};if(s&&v()){for(;t.B(8,e()),t.S();){const[e,t]=i();try{await e}catch(e){return}finally{t()}}o.scrollTo({[r?"left":"top"]:k(e(),r),behavior:"smooth"})}else for(;;){const[n,s]=i();try{o[l]=k(e(),r),t.B(7),await n}catch(e){return}finally{s()}}};return{L(s){o=s,i=((t,r,o,s,c)=>{const i=Date.now;let a=0,l=!1,u=!1,f=!1,_=!1;const d=(()=>{let r;const o=()=>{r!=e&&clearTimeout(r)},s=()=>{o(),r=n((()=>{r=e,(()=>{if(l||u)return l=!1,void d();f=!1,t.B(2)})()}),150)};return s.X=o,s})(),h=()=>{a=i(),f&&(_=!0),t.B(1,s()),d()},m=e=>{if(l||0===t.J()||e.ctrlKey)return;const r=i()-a;150>r&&50<r&&(o?e.deltaX:e.deltaY)&&(l=!0)},p=()=>{u=!0,f=_=!1},g=()=>{u=!1,b()&&(f=!0)};return r.addEventListener("scroll",h),r.addEventListener("wheel",m,{passive:!0}),r.addEventListener("touchstart",p,{passive:!0}),r.addEventListener("touchend",g,{passive:!0}),{V:()=>{r.removeEventListener("scroll",h),r.removeEventListener("wheel",m),r.removeEventListener("touchstart",p),r.removeEventListener("touchend",g),d.X()},Y:()=>{const[e,r]=t.P();e&&(c(k(e,o),r,_),_=!1,r&&t.R()>t.D()&&t.B(1,s()))}}})(t,s,r,(()=>k(s[l],r)),((e,r,o)=>{if(o){const e=s.style,t=e[u];e[u]="hidden",n((()=>{e[u]=t}))}r?(s[l]=t.M()+e,a&&a()):s[l]+=e}))},V(){i&&i.V()},j(e){f((()=>e))},A(e){e+=t.M(),f((()=>e))},G(e,{align:r,smooth:o,offset:n=0}={}){if(e=s(e,0,t.T()-1),"nearest"===r){const o=t.k(e),n=t.M();if(o<n)r="start";else{if(!(o+t.I(e)>n+t.R()))return;r="end"}}f((()=>n+t.C()+t.k(e)+("end"===r?t.I(e)-t.R():"center"===r?(t.I(e)-t.R())/2:0)),o)},Y:()=>{i&&i.Y()}}})(F,p),Y=F.q(1,(()=>{g(F._())})),j=F.q(4,(()=>{w(F.M())})),A=F.q(8,(()=>{S()}));return{[I]:e=>{W.F(e),X.L(e)},[y]:()=>{Y(),j(),A(),W.V(),X.V()},[z]:F.m,[x]:F.D,[T]:F.R,[M]:F.M,[J]:F.J,[R]:F.O,[C]:F.k,[D]:F.p,[O]:W.W,[P]:X.Y,[q]:(e,t)=>{F.B(5,[e,t])},[B]:()=>(e=>r(e.D(),e.R()))(F),[L]:X.j,[U]:X.A,[V]:X.G}};export{q as CHANGE_ITEM_LENGTH,P as FIX_SCROLL_JUMP,C as GET_ITEM_OFFSET,R as GET_JUMP_COUNT,z as GET_RANGE,J as GET_SCROLL_DIRECTION,M as GET_SCROLL_OFFSET,B as GET_SCROLL_SIZE,x as GET_TOTAL_SIZE,T as GET_VIEWPORT_SIZE,D as IS_ITEM_HIDDEN,O as OBSERVE_ITEM_RESIZE,I as ON_MOUNT,y as ON_UN_MOUNT,U as SCROLL_BY,w as SCROLL_IDLE,L as SCROLL_TO,V as SCROLL_TO_INDEX,F as createVirtualizer,S as getOverscanedRange,g as isRTLDocument};
1
+ const e=null,{min:t,max:r,abs:o,floor:n}=Math,s=setTimeout,c=(e,o,n)=>t(n,r(o,e)),i="function"==typeof queueMicrotask?queueMicrotask:e=>{Promise.resolve().then(e)},a=e=>{let t,r;return(...o)=>(t||(t=!0,r=e(...o)),r)},l=-1,u=(e,t,r)=>{const o=r?"unshift":"push";for(let r=0;r<t;r++)e[o](l);return e},f=(e,t)=>{const r=e.t[t];return r===l?e.o:r},_=(e,r,o)=>{const n=e.t[r]===l;return e.t[r]=o,e.i=t(r,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 r=e.i,o=e.u[r];for(;r<t;)o+=f(e,r),e.u[++r]=o;return e.i=t,o},h=(e,t,r=0,o=e.l-1)=>{for(;r<=o;){const s=n((r+o)/2),c=d(e,s);if(c<=t){if(c+f(e,s)>t)return s;r=s+1}else o=s-1}return c(r,0,e.l-1)},m=(e,r,o)=>{const n=r-e.l;return e.i=o?-1:t(r-1,e.i),e.l=r,n>0?(u(e.u,n),u(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-(r===l?e.o:r)),0))},p="undefined"!=typeof window,g=()=>document.documentElement,v=/*#__PURE__*/a((()=>!!p&&"rtl"===getComputedStyle(g()).direction)),b=/*#__PURE__*/a((()=>/iP(hone|od|ad)/.test(navigator.userAgent))),w=/*#__PURE__*/a((()=>"scrollBehavior"in g().style)),S=0,k=(e,o,n,s,c)=>(1!==s&&(e-=r(0,n)),2!==s&&(o+=r(0,n)),[r(e,0),t(o,c-1)]),I=(e,t)=>t&&v()?-e:e,y=0,z=1,x=2,T=3,J=4,M=5,R=6,C=7,O=8,P=9,q=10,B=11,D=12,L=13,U=14,V=15,F=16,W=17,X=18,Y=19,j=(n,a,p,g,v,S)=>{const k=((n,s=40,c=0,i,a=!1)=>{let p=!!c,g=[],v=0,w=0,S=0,k=0,I=0,y=0,z=0,x=0,T=0,J=p?[0,r(c-1,0)]:e,M=[0,0],R=0;const C=((e,t)=>({o:t,t:u([],e),l:e,i:-1,u:u([],e)}))(n,s),O=new Set,P=()=>S-w,q=e=>((e,r,o,n)=>{if(n=t(n,e.l-1),d(e,n)<=r){const t=h(e,r+o,n);return[h(e,r,n,t),t]}{const t=h(e,r,void 0,n);return[t,h(e,r+o,t)]}})(C,e,v,M[0]),B=()=>(e=>e.l?d(e,e.l-1)+f(e,e.l-1):0)(C),D=e=>d(C,e)-y,L=e=>f(C,e),U=e=>{e&&(b()&&0!==x?y+=e:(I+=e,k++))};return{_:()=>g,h:()=>(e=>[e.t.slice(),e.o])(C),m:()=>z?M:(M=q(r(0,P()+y+I)),J?[t(M[0],J[0]),r(M[1],J[1])]:M),p:e=>C.t[e]===l,v:()=>!!J&&C.t.slice(r(0,J[0]-1),t(C.l-1,J[1]+1)+1).includes(l),S:D,k:L,I:()=>C.l,T:()=>S,J:()=>x,M:()=>v,R:()=>w,C:B,O:()=>k,P:()=>(z=I,I=0,[z,2===T||P()+v>=B()]),q(e,t){const r=[e,t];return O.add(r),()=>{O.delete(r)}},B(t,n){let s,c,i=0;switch(t){case 1:{const t=z;z=0;const r=n-S,s=o(r);t&&s<o(t)+1||0!==T||(x=r<0?2:1),p&&(J=e,p=!1),S=n,i=4;const a=P();a>=-v&&a<=B()&&(i+=1,c=s>v);break}case 2:i=8,0!==x&&(s=!0,i+=1),x=0,T=0,J=e;break;case 3:{const e=n.filter((([e,t])=>C.t[e]!==t));if(!e.length)break;U(e.reduce(((e,[t,r])=>((2===T||(J?t<J[0]:D(t)+(0===x&&0===T?L(t):0)<P()))&&(e+=r-L(t)),e)),0));for(const[t,r]of e){const e=L(t),o=_(C,t,r);a&&(R+=o?r:r-e)}a&&v&&R>v&&(U(((e,t)=>{let o=0;const n=e.t.filter(((e,r)=>{const n=e!==l;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),r=e.length/2|0;return t.length%2==0?(t[r-1]+t[r])/2:t[r]})(n))-s)*r(t-o,0)})(C,M[0])),a=!1),i=3,c=!0;break}case 4:v!==n&&(v=n,i=3);break;case 5:n[1]?(U(m(C,n[0],!0)),T=2,i=1):m(C,n[0]);break;case 6:w=n;break;case 7:T=1;break;case 8:J=q(n),i=1}i&&(g=[],s&&y&&(I+=y,y=0,k++),O.forEach((([e,t])=>{i&e&&t(c)})))}}})(n,null!=a?a:40,void 0,0,!a),j=((t,r)=>{let o;const n=r?"width":"height",s=new WeakMap,c=(e=>{let t;return{D(r){var o,n;(t||(t=new(n=r,o=n.ownerDocument,o.defaultView).ResizeObserver(e))).observe(r)},L(e){t.unobserve(e)},U(){t&&t.disconnect()}}})((r=>{const c=[];for(const{target:i,contentRect:a}of r)if(i.offsetParent)if(i===o)t.B(4,a[n]);else{const t=s.get(i);t!=e&&c.push([t,a[n]])}c.length&&t.B(3,c)}));return{V(e){c.D(o=e)},F:(e,t)=>(s.set(e,t),c.D(e),()=>{s.delete(e),c.L(e)}),U:c.U}})(k,p),A=((t,r)=>{let o,n,a;const l=r?"scrollLeft":"scrollTop",u=r?"overflowX":"overflowY",f=async(e,n)=>{if(!o)return void i((()=>f(e,n)));a&&a();const c=()=>{let e;return[new Promise(((r,o)=>{e=r,a=o,(e=>!!e.M())(t)&&s(o,150)})),t.q(2,(()=>{e&&e()}))]};if(n&&w()){for(;t.B(8,e()),t.v();){const[e,t]=c();try{await e}catch(e){return}finally{t()}}o.scrollTo({[r?"left":"top"]:I(e(),r),behavior:"smooth"})}else for(;;){const[n,s]=c();try{o[l]=I(e(),r),t.B(7),await n}catch(e){return}finally{s()}}};return{D(c){o=c,n=((t,r,o,n,c)=>{const i=Date.now;let a=0,l=!1,u=!1,f=!1,_=!1;const d=(()=>{let r;const o=()=>{r!=e&&clearTimeout(r)},n=()=>{o(),r=s((()=>{r=e,(()=>{if(l||u)return l=!1,void d();f=!1,t.B(2)})()}),150)};return n.W=o,n})(),h=()=>{a=i(),f&&(_=!0),t.B(1,n()),d()},m=e=>{if(l||0===t.J()||e.ctrlKey)return;const r=i()-a;150>r&&50<r&&(o?e.deltaX:e.deltaY)&&(l=!0)},p=()=>{u=!0,f=_=!1},g=()=>{u=!1,b()&&(f=!0)};return r.addEventListener("scroll",h),r.addEventListener("wheel",m,{passive:!0}),r.addEventListener("touchstart",p,{passive:!0}),r.addEventListener("touchend",g,{passive:!0}),{U:()=>{r.removeEventListener("scroll",h),r.removeEventListener("wheel",m),r.removeEventListener("touchstart",p),r.removeEventListener("touchend",g),d.W()},X:()=>{const[e,r]=t.P();e&&(c(I(e,o),r,_),_=!1,r&&t.M()>t.C()&&t.B(1,n()))}}})(t,c,r,(()=>I(c[l],r)),((e,r,o)=>{if(o){const e=c.style,t=e[u];e[u]="hidden",s((()=>{e[u]=t}))}r?(c[l]=t.T()+e,a&&a()):c[l]+=e}))},U(){n&&n.U()},Y(e){f((()=>e))},j(e){e+=t.T(),f((()=>e))},A(e,{align:r,smooth:o,offset:n=0}={}){if(e=c(e,0,t.I()-1),"nearest"===r){const o=t.S(e),n=t.T();if(o<n)r="start";else{if(!(o+t.k(e)>n+t.M()))return;r="end"}}f((()=>n+t.R()+t.S(e)+("end"===r?t.k(e)-t.M():"center"===r?(t.k(e)-t.M())/2:0)),o)},X:()=>{n&&n.X()}}})(k,p),E=k.q(1,(()=>{g(k._())})),G=k.q(4,(()=>{v(k.T())})),H=k.q(8,(()=>{S()}));return{[y]:e=>{j.V(e),A.D(e)},[z]:()=>{E(),G(),H(),j.U(),A.U()},[x]:k.m,[T]:k.C,[J]:k.M,[M]:k.T,[R]:k.J,[C]:k.O,[O]:k.S,[P]:k.p,[q]:k.I,[B]:k.R,[D]:j.F,[L]:A.X,[U]:(e,t)=>{k.B(5,[e,t])},[V]:e=>{k.B(6,e)},[F]:()=>(e=>r(e.C(),e.M()))(k),[W]:A.Y,[X]:A.j,[Y]:A.A}};export{U as CHANGE_ITEM_LENGTH,V as CHANGE_START_MARGIN,L as FIX_SCROLL_JUMP,q as GET_ITEMS_LENGTH,O as GET_ITEM_OFFSET,C as GET_JUMP_COUNT,x as GET_RANGE,R as GET_SCROLL_DIRECTION,M as GET_SCROLL_OFFSET,F as GET_SCROLL_SIZE,B as GET_START_SPACER_SIZE,T as GET_TOTAL_SIZE,J as GET_VIEWPORT_SIZE,P as IS_ITEM_HIDDEN,D as OBSERVE_ITEM_RESIZE,y as ON_MOUNT,z as ON_UN_MOUNT,X as SCROLL_BY,S as SCROLL_IDLE,W as SCROLL_TO,Y as SCROLL_TO_INDEX,j as createVirtualizer,k as getOverscanedRange,v as isRTLDocument};
@@ -2,3 +2,6 @@
2
2
  * @module svelte
3
3
  */
4
4
  export { default as VList } from "./VList.svelte";
5
+ export type { VListProps, VListHandle } from "./VList.type";
6
+ export { default as Virtualizer } from "./Virtualizer.svelte";
7
+ export type { VirtualizerProps, VirtualizerHandle } from "./Virtualizer.type";
@@ -2,3 +2,4 @@
2
2
  * @module svelte
3
3
  */
4
4
  export { default as VList } from "./VList.svelte";
5
+ export { default as Virtualizer } from "./Virtualizer.svelte";
@@ -0,0 +1,3 @@
1
+ // @ts-nocheck
2
+ import type { HTMLAttributes, AriaAttributes } from "svelte/elements";
3
+ export type ViewportComponentAttributes = Pick<HTMLAttributes<HTMLElement>, "class" | "style" | "id" | "role" | "tabindex"> & AriaAttributes;
@@ -1,10 +1,3 @@
1
1
  // @ts-nocheck
2
- export declare const onUpdate: (cb: () => void, before?: boolean) => void;
3
2
  export declare const styleToString: (obj: Record<string, string | undefined>) => string;
4
3
  export declare const defaultGetKey: (_data: unknown, i: number) => string;
5
- /**
6
- * https://github.com/kitschpatrol/svelte-tweakpane-ui/blob/248fd7c24926af1e485a0676b6a8c053177e92db/src/lib/utils.ts#L57-L59
7
- */
8
- export type UnwrapCustomEvents<T> = {
9
- [P in keyof T]: T[P] extends CustomEvent<infer detail> ? detail : never;
10
- };
@@ -1,9 +1,3 @@
1
- import { afterUpdate, beforeUpdate } from "svelte";
2
- export const onUpdate = (cb, before) => {
3
- (before ? beforeUpdate : afterUpdate)(() => {
4
- cb();
5
- });
6
- };
7
1
  export const styleToString = (obj) => {
8
2
  return Object.keys(obj).reduce((acc, k) => {
9
3
  const value = obj[k];
package/lib/vue/index.js CHANGED
@@ -1,2 +1,2 @@
1
- var e=require("vue");const t=null,{min:o,max:r,abs:n}=Math,s=setTimeout,i=(e,t,n)=>o(n,r(t,e)),l="function"==typeof queueMicrotask?queueMicrotask:e=>{Promise.resolve().then(e)},c=e=>{let t,o;return(...r)=>(t||(t=!0,o=e(...r)),o)},a=-1,u=(e,t,o)=>{const r=o?"unshift":"push";for(let o=0;o<t;o++)e[r](a);return e},f=(e,t)=>{const o=e.t[t];return o===a?e.o:o},d=(e,t,r)=>{const n=e.t[t]===a;return e.t[t]=r,e.i=o(t,e.i),n},_=(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},p=(e,t,o)=>{for(;o>=0&&o<e.l;){const r=_(e,o);if(r<=t){if(r+f(e,o)>t)break;o++}else o--}return i(o,0,e.l-1)},h=(e,t,r)=>{const n=t-e.l;return e.i=r?-1:o(t-1,e.i),e.l=t,n>0?(u(e.u,n),u(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===a?e.o:o)),0))},g="undefined"!=typeof window,m=()=>document.documentElement,v=e=>e.ownerDocument,b=e=>e.defaultView,y=/*#__PURE__*/c((()=>!!g&&"rtl"===getComputedStyle(m()).direction)),S=/*#__PURE__*/c((()=>/iP(hone|od|ad)/.test(navigator.userAgent))),z=/*#__PURE__*/c((()=>"scrollBehavior"in m().style)),x=(e,t,n,s,i)=>(1!==s&&(e-=r(0,n)),2!==s&&(t+=r(0,n)),[r(e,0),o(t,i-1)]),w=(e,s=40,i=0,l,c=!1)=>{let g=!!i,m=[],v=0,b=0,y=0,z=0,x=0,w=0,k=0,O=0,I=0,C=g?[0,r(i-1,0)]:t,j=[0,0],B=0;const R=((e,t)=>({o:t,t:u([],e),l:e,i:-1,u:u([],e)}))(e,s),q=new Set,N=()=>y-b,T=e=>((e,t,r,n)=>{const s=p(e,t,o(r,e.l-1));return[s,p(e,t+n,s)]})(R,e,j[0],v),E=()=>(e=>e.l?_(e,e.l-1)+f(e,e.l-1):0)(R),H=e=>_(R,e)-w,M=e=>f(R,e),A=e=>{e&&(S()&&0!==O?w+=e:(x+=e,z++))};return{p:()=>m,h:()=>(e=>[[...e.t],e.o])(R),m:()=>k?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]===a,S:()=>!!v,k:()=>!!C&&R.t.slice(r(0,C[0]-1),o(R.l-1,C[1]+1)+1).includes(a),O:H,I:M,C:()=>R.l,j:()=>y,B:()=>O,R:()=>v,q:()=>b,N:E,T:()=>z,H:()=>(k=x,x=0,[k,2===I||N()+v>=E()]),M(e,t){const o=[e,t];return q.add(o),()=>{q.delete(o)}},A(e,o){let s,i,l=0;switch(e){case 1:{const e=k;k=0;const r=o-y,s=n(r);e&&s<n(e)+1||0!==I||(O=r<0?2:1),g&&(C=t,g=!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,I=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===I||(C?t<C[0]:H(t)+(0===O&&0===I?M(t):0)<N()))&&(e+=o-M(t)),e)),0));for(const[t,o]of e){const e=M(t),r=d(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!==a;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(h(R,o[0],!0)),I=2,l=1):h(R,o[0]);break;case 6:b=o;break;case 7:I=1;break;case 8:C=T(o),l=1}l&&(m=[],s&&w&&(x+=w,w=0,z++),q.forEach((([e,t])=>{l&e&&t(i)})))}}},k=e=>{let t;return{J(o){(t||(t=new(b(v(o)).ResizeObserver)(e))).observe(o)},D(e){t.unobserve(e)},L(){t&&t.disconnect()}}},O=(e,t)=>t&&y()?-e:e,I=(e,o,r,n,i,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=s((()=>{o=t,(()=>{if(u||f)return u=!1,void p();d=!1,e.A(2)})()}),150)};return n.P=r,n})(),h=()=>{a=c(),d&&(_=!0),l&&e.A(6,l()),e.A(1,n()),p()},g=t=>{if(u||0===e.B()||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,S()&&(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.H();t&&(i(O(t,r),o,_),_=!1,o&&e.R()>e.N()&&e.A(1,n()))}}},C=/*#__PURE__*/e.defineComponent({props:{X:{type:Object,required:!0},Y:{type:Function,required:!0},F:{type:Number,required:!0},U:{type:Number,required:!0},V:{type:Boolean},G:{type:Boolean},K:{type:Boolean},Z:{type:String,required:!0}},setup(t){const o=e.ref();return e.watch((()=>o.value&&t.F),((e,r,n)=>{n(t.Y(o.value,t.F))}),{flush:"post"}),()=>{const{X:r,U:n,V:s,G:i,K:l,Z:c}=t,a={position:s&&l?void 0:"absolute",[i?"height":"width"]:"100%",[i?"top":"left"]:"0px",[i?y()?"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}}}),j=(e,o)=>{const r=e.key;return r!=t?r:"_"+o},B={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"}},R=/*#__PURE__*/e.defineComponent({props:B,emits:["scroll","scrollEnd","rangeChange"],setup(o,{emit:n,expose:c,slots:a}){var u;let f=!!o.ssrCount;const d=o.horizontal,_=e.ref(),p=w(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.A(4,c[n]);else{const e=s.get(l);e!=t&&i.push([e,c[n]])}i.length&&e.A(3,i)}));return{$(e){i.J(r=e)},ee:(e,t)=>(s.set(e,t),i.J(e),()=>{s.delete(e),i.D(e)}),L:i.L}})(p,d),g=((e,t)=>{let o,r,n;const c=t?"scrollLeft":"scrollTop",a=t?"overflowX":"overflowY",u=async(r,i)=>{if(!o)return void l((()=>u(r,i)));n&&n();const a=()=>{let t;return[new Promise(((o,r)=>{t=o,n=r,e.S()&&s(r,150)})),e.M(2,(()=>{t&&t()}))]};if(i&&z()){for(;e.A(8,r()),e.k();){const[e,t]=a();try{await e}catch(e){return}finally{t()}}o.scrollTo({[t?"left":"top"]:O(r(),t),behavior:"smooth"})}else for(;;){const[n,s]=a();try{o[c]=O(r(),t),e.A(7),await n}catch(e){return}finally{s()}}};return{J(i){o=i,r=I(e,i,t,(()=>O(i[c],t)),((t,o,r)=>{if(r){const e=i.style,t=e[a];e[a]="hidden",s((()=>{e[a]=t}))}o?(i[c]=e.j()+t,n&&n()):i[c]+=t}))},L(){r&&r.L()},te(e){u((()=>e))},oe(t){t+=e.j(),u((()=>t))},re(t,{align:o,smooth:r,offset:n=0}={}){if(t=i(t,0,e.C()-1),"nearest"===o){const r=e.O(t),n=e.j();if(r<n)o="start";else{if(!(r+e.I(t)>n+e.R()))return;o="end"}}u((()=>n+e.q()+e.O(t)+("end"===o?e.I(t)-e.R():"center"===o?(e.I(t)-e.R())/2:0)),r)},W:()=>{r&&r.W()}}})(p,d),m=e.ref(p.p()),v=p.M(1,(()=>{m.value=p.p()})),b=p.M(4,(()=>{n("scroll",p.j())})),y=p.M(8,(()=>{n("scrollEnd")}));return e.onMounted((()=>{f=!1,l((()=>{const e=e=>{h.$(e),g.J(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.A(5,[e,o.shift])})),e.watch((()=>o.startMargin),(e=>{p.A(6,e)}),{immediate:!0}),e.watch([m,p.T],(([,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"}),c({get scrollOffset(){return p.j()},get scrollSize(){return(e=>r(e.N(),e.R()))(p)},get viewportSize(){return p.R()},getItemOffset:p.O,scrollToIndex:g.re,scrollTo:g.te,scrollBy:g.oe}),()=>{m.value;const t=o.as,r=o.item,n=o.data.length,[s,i]=p.m(),l=p.B(),c=p.N(),u=[];for(let[t,c]=x(s,i,o.overscan,l,n);t<=c;t++){const n=a.default({item:o.data[t],index:t})[0];u.push(e.createVNode(C,{key:j(n,t),Y:h.ee,F:t,U:p.O(t),V:p.v(t),X:n,G:d,K:f,Z: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}}}),q={data:{type:Array,required:!0},overscan:{type:Number,default:4},itemSize:Number,shift:Boolean,horizontal:Boolean,ssrCount:Number},N=/*#__PURE__*/e.defineComponent({props:q,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(R,{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}}}),T={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"}},E=/*#__PURE__*/e.defineComponent({props:T,emits:["scrollEnd","rangeChange"],setup(o,{emit:r,slots:n}){var s;const i=o.horizontal,l=e.ref(),c=w(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.A(3,n)}));let l;return{$(t){const o=b(v(t)),r=()=>{e.A(4,o[n])};o.addEventListener("resize",r),r(),l=()=>{o.removeEventListener("resize",r)}},ee:(e,t)=>(s.set(e,t),i.J(e),()=>{s.delete(e),i.D(e)}),L(){l&&l(),i.L()}}})(c,i),u=((e,t)=>{let o;return{J(r){const n=t?"scrollX":"scrollY",s=v(r),i=b(s),l=s.body,c=(e,t,o,r=0)=>{const n=o?"offsetLeft":"offsetTop",s=r+(o&&y()?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,(()=>O(i[n],t)),((o,r)=>{r?i.scroll({[t?"left":"top"]:e.j()+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.M(1,(()=>{f.value=c.p()})),_=c.M(8,(()=>{r("scrollEnd")}));return e.onMounted((()=>{const e=l.value;e&&(a.$(e),u.J(e))})),e.onUnmounted((()=>{d(),_(),a.L(),u.L()})),e.watch((()=>o.data.length),(e=>{c.A(5,[e,o.shift])})),e.watch([f,c.T],(([,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.B(),p=c.N(),h=[];for(let[t,l]=x(u,d,o.overscan,_,s);t<=l;t++){const s=n.default({item:o.data[t],index:t})[0];h.push(e.createVNode(C,{key:j(s,t),Y:a.ee,F:t,U:c.O(t),V:c.v(t),X:s,G:i,Z: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=N,exports.Virtualizer=R,exports.WindowVirtualizer=E;
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;
2
2
  //# sourceMappingURL=index.js.map