@pyreon/virtual 0.6.0 → 0.7.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.
- package/lib/types/index.d.ts +49 -138
- package/lib/types/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/lib/types/index2.d.ts +0 -54
- package/lib/types/index2.d.ts.map +0 -1
package/lib/types/index.d.ts
CHANGED
|
@@ -1,143 +1,54 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import { batch, effect, signal } from "@pyreon/reactivity";
|
|
1
|
+
import { Range, Rect, ScrollToOptions, VirtualItem, VirtualItem as VirtualItem$1, Virtualizer, Virtualizer as Virtualizer$1, VirtualizerOptions, VirtualizerOptions as VirtualizerOptions$1, defaultKeyExtractor, defaultRangeExtractor, elementScroll, measureElement, observeElementOffset, observeElementRect, observeWindowOffset, observeWindowRect, windowScroll } from "@tanstack/virtual-core";
|
|
2
|
+
import { Signal } from "@pyreon/reactivity";
|
|
4
3
|
|
|
5
|
-
//#region src/use-virtualizer.ts
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
* getScrollElement: () => parentRef(),
|
|
17
|
-
* estimateSize: () => 35,
|
|
18
|
-
* }))
|
|
19
|
-
* // virtual.virtualItems() — array of visible VirtualItem
|
|
20
|
-
* // virtual.totalSize() — total height/width for the inner container
|
|
21
|
-
*/
|
|
22
|
-
function useVirtualizer(options) {
|
|
23
|
-
const resolvedOptions = {
|
|
24
|
-
observeElementRect: observeElementRect$1,
|
|
25
|
-
observeElementOffset: observeElementOffset$1,
|
|
26
|
-
scrollToFn: elementScroll$1,
|
|
27
|
-
...options()
|
|
28
|
-
};
|
|
29
|
-
const virtualItems = signal([]);
|
|
30
|
-
const totalSize = signal(0);
|
|
31
|
-
const isScrolling = signal(false);
|
|
32
|
-
let latestUserOpts = options();
|
|
33
|
-
const instance = new Virtualizer$1(resolvedOptions);
|
|
34
|
-
const effectCleanup = effect(() => {
|
|
35
|
-
latestUserOpts = options();
|
|
36
|
-
instance.setOptions({
|
|
37
|
-
...instance.options,
|
|
38
|
-
...latestUserOpts,
|
|
39
|
-
onChange: (inst, sync) => {
|
|
40
|
-
batch(() => {
|
|
41
|
-
virtualItems.set(inst.getVirtualItems());
|
|
42
|
-
totalSize.set(inst.getTotalSize());
|
|
43
|
-
isScrolling.set(inst.isScrolling);
|
|
44
|
-
});
|
|
45
|
-
latestUserOpts.onChange?.(inst, sync);
|
|
46
|
-
}
|
|
47
|
-
});
|
|
48
|
-
instance._willUpdate();
|
|
49
|
-
batch(() => {
|
|
50
|
-
virtualItems.set(instance.getVirtualItems());
|
|
51
|
-
totalSize.set(instance.getTotalSize());
|
|
52
|
-
});
|
|
53
|
-
});
|
|
54
|
-
let mountCleanup;
|
|
55
|
-
onMount(() => {
|
|
56
|
-
mountCleanup = instance._didMount();
|
|
57
|
-
instance._willUpdate();
|
|
58
|
-
batch(() => {
|
|
59
|
-
virtualItems.set(instance.getVirtualItems());
|
|
60
|
-
totalSize.set(instance.getTotalSize());
|
|
61
|
-
});
|
|
62
|
-
});
|
|
63
|
-
onUnmount(() => {
|
|
64
|
-
effectCleanup.dispose();
|
|
65
|
-
mountCleanup?.();
|
|
66
|
-
});
|
|
67
|
-
return {
|
|
68
|
-
instance,
|
|
69
|
-
virtualItems,
|
|
70
|
-
totalSize,
|
|
71
|
-
isScrolling
|
|
72
|
-
};
|
|
4
|
+
//#region src/use-virtualizer.d.ts
|
|
5
|
+
type UseVirtualizerOptions<TScrollElement extends Element, TItemElement extends Element> = () => Omit<VirtualizerOptions$1<TScrollElement, TItemElement>, 'observeElementRect' | 'observeElementOffset' | 'scrollToFn'> & Partial<Pick<VirtualizerOptions$1<TScrollElement, TItemElement>, 'observeElementRect' | 'observeElementOffset' | 'scrollToFn'>>;
|
|
6
|
+
interface UseVirtualizerResult<TScrollElement extends Element, TItemElement extends Element> {
|
|
7
|
+
/** The virtualizer instance — read to access all methods. */
|
|
8
|
+
instance: Virtualizer$1<TScrollElement, TItemElement>;
|
|
9
|
+
/** Reactive signal of currently visible virtual items. */
|
|
10
|
+
virtualItems: Signal<VirtualItem$1[]>;
|
|
11
|
+
/** Reactive signal of the total scrollable size in pixels. */
|
|
12
|
+
totalSize: Signal<number>;
|
|
13
|
+
/** Reactive signal indicating whether the user is scrolling. */
|
|
14
|
+
isScrolling: Signal<boolean>;
|
|
73
15
|
}
|
|
74
|
-
|
|
75
|
-
//#endregion
|
|
76
|
-
//#region src/use-window-virtualizer.ts
|
|
77
16
|
/**
|
|
78
|
-
* Create a reactive TanStack Virtual virtualizer for
|
|
79
|
-
*
|
|
80
|
-
*
|
|
81
|
-
*
|
|
82
|
-
*
|
|
83
|
-
*
|
|
84
|
-
*
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
instance.setOptions({
|
|
103
|
-
...instance.options,
|
|
104
|
-
...latestUserOpts,
|
|
105
|
-
onChange: (inst, sync) => {
|
|
106
|
-
batch(() => {
|
|
107
|
-
virtualItems.set(inst.getVirtualItems());
|
|
108
|
-
totalSize.set(inst.getTotalSize());
|
|
109
|
-
isScrolling.set(inst.isScrolling);
|
|
110
|
-
});
|
|
111
|
-
latestUserOpts.onChange?.(inst, sync);
|
|
112
|
-
}
|
|
113
|
-
});
|
|
114
|
-
instance._willUpdate();
|
|
115
|
-
batch(() => {
|
|
116
|
-
virtualItems.set(instance.getVirtualItems());
|
|
117
|
-
totalSize.set(instance.getTotalSize());
|
|
118
|
-
});
|
|
119
|
-
});
|
|
120
|
-
let mountCleanup;
|
|
121
|
-
onMount(() => {
|
|
122
|
-
mountCleanup = instance._didMount();
|
|
123
|
-
instance._willUpdate();
|
|
124
|
-
batch(() => {
|
|
125
|
-
virtualItems.set(instance.getVirtualItems());
|
|
126
|
-
totalSize.set(instance.getTotalSize());
|
|
127
|
-
});
|
|
128
|
-
});
|
|
129
|
-
onUnmount(() => {
|
|
130
|
-
effectCleanup.dispose();
|
|
131
|
-
mountCleanup?.();
|
|
132
|
-
});
|
|
133
|
-
return {
|
|
134
|
-
instance,
|
|
135
|
-
virtualItems,
|
|
136
|
-
totalSize,
|
|
137
|
-
isScrolling
|
|
138
|
-
};
|
|
17
|
+
* Create a reactive TanStack Virtual virtualizer for element-based scrolling.
|
|
18
|
+
*
|
|
19
|
+
* Options are passed as a function so reactive signals (e.g. count, estimateSize)
|
|
20
|
+
* can be read inside, and the virtualizer updates automatically when they change.
|
|
21
|
+
*
|
|
22
|
+
* @example
|
|
23
|
+
* const parentRef = signal<HTMLDivElement | null>(null)
|
|
24
|
+
* const virtual = useVirtualizer(() => ({
|
|
25
|
+
* count: 10000,
|
|
26
|
+
* getScrollElement: () => parentRef(),
|
|
27
|
+
* estimateSize: () => 35,
|
|
28
|
+
* }))
|
|
29
|
+
* // virtual.virtualItems() — array of visible VirtualItem
|
|
30
|
+
* // virtual.totalSize() — total height/width for the inner container
|
|
31
|
+
*/
|
|
32
|
+
declare function useVirtualizer<TScrollElement extends Element, TItemElement extends Element>(options: UseVirtualizerOptions<TScrollElement, TItemElement>): UseVirtualizerResult<TScrollElement, TItemElement>;
|
|
33
|
+
//#endregion
|
|
34
|
+
//#region src/use-window-virtualizer.d.ts
|
|
35
|
+
type UseWindowVirtualizerOptions<TItemElement extends Element> = () => Omit<VirtualizerOptions$1<Window, TItemElement>, 'observeElementRect' | 'observeElementOffset' | 'scrollToFn' | 'getScrollElement'> & Partial<Pick<VirtualizerOptions$1<Window, TItemElement>, 'observeElementRect' | 'observeElementOffset' | 'scrollToFn'>>;
|
|
36
|
+
interface UseWindowVirtualizerResult<TItemElement extends Element> {
|
|
37
|
+
instance: Virtualizer$1<Window, TItemElement>;
|
|
38
|
+
virtualItems: Signal<VirtualItem$1[]>;
|
|
39
|
+
totalSize: Signal<number>;
|
|
40
|
+
isScrolling: Signal<boolean>;
|
|
139
41
|
}
|
|
140
|
-
|
|
42
|
+
/**
|
|
43
|
+
* Create a reactive TanStack Virtual virtualizer for window-based scrolling.
|
|
44
|
+
*
|
|
45
|
+
* @example
|
|
46
|
+
* const virtual = useWindowVirtualizer(() => ({
|
|
47
|
+
* count: 10000,
|
|
48
|
+
* estimateSize: () => 35,
|
|
49
|
+
* }))
|
|
50
|
+
*/
|
|
51
|
+
declare function useWindowVirtualizer<TItemElement extends Element>(options: UseWindowVirtualizerOptions<TItemElement>): UseWindowVirtualizerResult<TItemElement>;
|
|
141
52
|
//#endregion
|
|
142
|
-
export { Virtualizer, defaultKeyExtractor, defaultRangeExtractor, elementScroll, measureElement, observeElementOffset, observeElementRect, observeWindowOffset, observeWindowRect, useVirtualizer, useWindowVirtualizer, windowScroll };
|
|
143
|
-
//# sourceMappingURL=
|
|
53
|
+
export { type Range, type Rect, type ScrollToOptions, type UseVirtualizerOptions, type UseVirtualizerResult, type UseWindowVirtualizerOptions, type UseWindowVirtualizerResult, type VirtualItem, Virtualizer, type VirtualizerOptions, defaultKeyExtractor, defaultRangeExtractor, elementScroll, measureElement, observeElementOffset, observeElementRect, observeWindowOffset, observeWindowRect, useVirtualizer, useWindowVirtualizer, windowScroll };
|
|
54
|
+
//# sourceMappingURL=index2.d.ts.map
|
package/lib/types/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"
|
|
1
|
+
{"version":3,"file":"index2.d.ts","names":[],"sources":["../../../src/use-virtualizer.ts","../../../src/use-window-virtualizer.ts"],"mappings":";;;;KAYY,qBAAA,wBACa,OAAA,uBACF,OAAA,UACb,IAAA,CACR,oBAAA,CAAmB,cAAA,EAAgB,YAAA,mEAGnC,OAAA,CACE,IAAA,CACE,oBAAA,CAAmB,cAAA,EAAgB,YAAA;AAAA,UAKxB,oBAAA,wBACQ,OAAA,uBACF,OAAA;EAhBX;EAmBV,QAAA,EAAU,aAAA,CAAY,cAAA,EAAgB,YAAA;EAnBP;EAqB/B,YAAA,EAAc,MAAA,CAAO,aAAA;EAnBA;EAqBrB,SAAA,EAAW,MAAA;EAnBwB;EAqBnC,WAAA,EAAa,MAAA;AAAA;;;;;;;;;;;;;;;;;iBAmBC,cAAA,wBACS,OAAA,uBACF,OAAA,CAAA,CAErB,OAAA,EAAS,qBAAA,CAAsB,cAAA,EAAgB,YAAA,IAC9C,oBAAA,CAAqB,cAAA,EAAgB,YAAA;;;KCjD5B,2BAAA,sBAAiD,OAAA,UACrD,IAAA,CACJ,oBAAA,CAAmB,MAAA,EAAQ,YAAA,wFAM3B,OAAA,CACE,IAAA,CACE,oBAAA,CAAmB,MAAA,EAAQ,YAAA;AAAA,UAKlB,0BAAA,sBAAgD,OAAA;EAC/D,QAAA,EAAU,aAAA,CAAY,MAAA,EAAQ,YAAA;EAC9B,YAAA,EAAc,MAAA,CAAO,aAAA;EACrB,SAAA,EAAW,MAAA;EACX,WAAA,EAAa,MAAA;AAAA;;;;;;;;;;iBAYC,oBAAA,sBAA0C,OAAA,CAAA,CACxD,OAAA,EAAS,2BAAA,CAA4B,YAAA,IACpC,0BAAA,CAA2B,YAAA"}
|
package/package.json
CHANGED
package/lib/types/index2.d.ts
DELETED
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
import { Range, Rect, ScrollToOptions, VirtualItem, VirtualItem as VirtualItem$1, Virtualizer, Virtualizer as Virtualizer$1, VirtualizerOptions, VirtualizerOptions as VirtualizerOptions$1, defaultKeyExtractor, defaultRangeExtractor, elementScroll, measureElement, observeElementOffset, observeElementRect, observeWindowOffset, observeWindowRect, windowScroll } from "@tanstack/virtual-core";
|
|
2
|
-
import { Signal } from "@pyreon/reactivity";
|
|
3
|
-
|
|
4
|
-
//#region src/use-virtualizer.d.ts
|
|
5
|
-
type UseVirtualizerOptions<TScrollElement extends Element, TItemElement extends Element> = () => Omit<VirtualizerOptions$1<TScrollElement, TItemElement>, 'observeElementRect' | 'observeElementOffset' | 'scrollToFn'> & Partial<Pick<VirtualizerOptions$1<TScrollElement, TItemElement>, 'observeElementRect' | 'observeElementOffset' | 'scrollToFn'>>;
|
|
6
|
-
interface UseVirtualizerResult<TScrollElement extends Element, TItemElement extends Element> {
|
|
7
|
-
/** The virtualizer instance — read to access all methods. */
|
|
8
|
-
instance: Virtualizer$1<TScrollElement, TItemElement>;
|
|
9
|
-
/** Reactive signal of currently visible virtual items. */
|
|
10
|
-
virtualItems: Signal<VirtualItem$1[]>;
|
|
11
|
-
/** Reactive signal of the total scrollable size in pixels. */
|
|
12
|
-
totalSize: Signal<number>;
|
|
13
|
-
/** Reactive signal indicating whether the user is scrolling. */
|
|
14
|
-
isScrolling: Signal<boolean>;
|
|
15
|
-
}
|
|
16
|
-
/**
|
|
17
|
-
* Create a reactive TanStack Virtual virtualizer for element-based scrolling.
|
|
18
|
-
*
|
|
19
|
-
* Options are passed as a function so reactive signals (e.g. count, estimateSize)
|
|
20
|
-
* can be read inside, and the virtualizer updates automatically when they change.
|
|
21
|
-
*
|
|
22
|
-
* @example
|
|
23
|
-
* const parentRef = signal<HTMLDivElement | null>(null)
|
|
24
|
-
* const virtual = useVirtualizer(() => ({
|
|
25
|
-
* count: 10000,
|
|
26
|
-
* getScrollElement: () => parentRef(),
|
|
27
|
-
* estimateSize: () => 35,
|
|
28
|
-
* }))
|
|
29
|
-
* // virtual.virtualItems() — array of visible VirtualItem
|
|
30
|
-
* // virtual.totalSize() — total height/width for the inner container
|
|
31
|
-
*/
|
|
32
|
-
declare function useVirtualizer<TScrollElement extends Element, TItemElement extends Element>(options: UseVirtualizerOptions<TScrollElement, TItemElement>): UseVirtualizerResult<TScrollElement, TItemElement>;
|
|
33
|
-
//#endregion
|
|
34
|
-
//#region src/use-window-virtualizer.d.ts
|
|
35
|
-
type UseWindowVirtualizerOptions<TItemElement extends Element> = () => Omit<VirtualizerOptions$1<Window, TItemElement>, 'observeElementRect' | 'observeElementOffset' | 'scrollToFn' | 'getScrollElement'> & Partial<Pick<VirtualizerOptions$1<Window, TItemElement>, 'observeElementRect' | 'observeElementOffset' | 'scrollToFn'>>;
|
|
36
|
-
interface UseWindowVirtualizerResult<TItemElement extends Element> {
|
|
37
|
-
instance: Virtualizer$1<Window, TItemElement>;
|
|
38
|
-
virtualItems: Signal<VirtualItem$1[]>;
|
|
39
|
-
totalSize: Signal<number>;
|
|
40
|
-
isScrolling: Signal<boolean>;
|
|
41
|
-
}
|
|
42
|
-
/**
|
|
43
|
-
* Create a reactive TanStack Virtual virtualizer for window-based scrolling.
|
|
44
|
-
*
|
|
45
|
-
* @example
|
|
46
|
-
* const virtual = useWindowVirtualizer(() => ({
|
|
47
|
-
* count: 10000,
|
|
48
|
-
* estimateSize: () => 35,
|
|
49
|
-
* }))
|
|
50
|
-
*/
|
|
51
|
-
declare function useWindowVirtualizer<TItemElement extends Element>(options: UseWindowVirtualizerOptions<TItemElement>): UseWindowVirtualizerResult<TItemElement>;
|
|
52
|
-
//#endregion
|
|
53
|
-
export { type Range, type Rect, type ScrollToOptions, type UseVirtualizerOptions, type UseVirtualizerResult, type UseWindowVirtualizerOptions, type UseWindowVirtualizerResult, type VirtualItem, Virtualizer, type VirtualizerOptions, defaultKeyExtractor, defaultRangeExtractor, elementScroll, measureElement, observeElementOffset, observeElementRect, observeWindowOffset, observeWindowRect, useVirtualizer, useWindowVirtualizer, windowScroll };
|
|
54
|
-
//# sourceMappingURL=index2.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index2.d.ts","names":[],"sources":["../../src/use-virtualizer.ts","../../src/use-window-virtualizer.ts"],"mappings":";;;;KAYY,qBAAA,wBACa,OAAA,uBACF,OAAA,UACb,IAAA,CACR,oBAAA,CAAmB,cAAA,EAAgB,YAAA,mEAGnC,OAAA,CACE,IAAA,CACE,oBAAA,CAAmB,cAAA,EAAgB,YAAA;AAAA,UAKxB,oBAAA,wBACQ,OAAA,uBACF,OAAA;EAhBX;EAmBV,QAAA,EAAU,aAAA,CAAY,cAAA,EAAgB,YAAA;EAnBP;EAqB/B,YAAA,EAAc,MAAA,CAAO,aAAA;EAnBA;EAqBrB,SAAA,EAAW,MAAA;EAnBwB;EAqBnC,WAAA,EAAa,MAAA;AAAA;;;;;;;;;;;;;;;;;iBAmBC,cAAA,wBACS,OAAA,uBACF,OAAA,CAAA,CAErB,OAAA,EAAS,qBAAA,CAAsB,cAAA,EAAgB,YAAA,IAC9C,oBAAA,CAAqB,cAAA,EAAgB,YAAA;;;KCjD5B,2BAAA,sBAAiD,OAAA,UACrD,IAAA,CACJ,oBAAA,CAAmB,MAAA,EAAQ,YAAA,wFAM3B,OAAA,CACE,IAAA,CACE,oBAAA,CAAmB,MAAA,EAAQ,YAAA;AAAA,UAKlB,0BAAA,sBAAgD,OAAA;EAC/D,QAAA,EAAU,aAAA,CAAY,MAAA,EAAQ,YAAA;EAC9B,YAAA,EAAc,MAAA,CAAO,aAAA;EACrB,SAAA,EAAW,MAAA;EACX,WAAA,EAAa,MAAA;AAAA;;;;;;;;;;iBAYC,oBAAA,sBAA0C,OAAA,CAAA,CACxD,OAAA,EAAS,2BAAA,CAA4B,YAAA,IACpC,0BAAA,CAA2B,YAAA"}
|