@tanstack/virtual-core 3.0.0-beta.23 → 3.0.0-beta.26

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,113 @@
1
+ export * from './utils';
2
+ type ScrollAlignment = 'start' | 'center' | 'end' | 'auto';
3
+ type ScrollBehavior = 'auto' | 'smooth';
4
+ export interface ScrollToOptions {
5
+ align?: ScrollAlignment;
6
+ behavior?: ScrollBehavior;
7
+ }
8
+ type ScrollToOffsetOptions = ScrollToOptions;
9
+ type ScrollToIndexOptions = ScrollToOptions;
10
+ export interface Range {
11
+ startIndex: number;
12
+ endIndex: number;
13
+ overscan: number;
14
+ count: number;
15
+ }
16
+ type Key = number | string;
17
+ export interface VirtualItem {
18
+ key: Key;
19
+ index: number;
20
+ start: number;
21
+ end: number;
22
+ size: number;
23
+ }
24
+ interface Rect {
25
+ width: number;
26
+ height: number;
27
+ }
28
+ export declare const defaultKeyExtractor: (index: number) => number;
29
+ export declare const defaultRangeExtractor: (range: Range) => number[];
30
+ export declare const observeElementRect: (instance: Virtualizer<any, any>, cb: (rect: Rect) => void) => (() => void) | undefined;
31
+ export declare const observeWindowRect: (instance: Virtualizer<any, any>, cb: (rect: Rect) => void) => (() => void) | undefined;
32
+ export declare const observeElementOffset: (instance: Virtualizer<any, any>, cb: (offset: number) => void) => (() => void) | undefined;
33
+ export declare const observeWindowOffset: (instance: Virtualizer<any, any>, cb: (offset: number) => void) => (() => void) | undefined;
34
+ export declare const measureElement: <TItemElement extends Element>(element: TItemElement, instance: Virtualizer<any, TItemElement>) => number;
35
+ export declare const windowScroll: <T extends Window>(offset: number, { adjustments, behavior, sync, }: {
36
+ adjustments?: number | undefined;
37
+ behavior?: ScrollBehavior | undefined;
38
+ sync: boolean;
39
+ }, instance: Virtualizer<T, any>) => void;
40
+ export declare const elementScroll: <T extends Element>(offset: number, { adjustments, behavior, sync, }: {
41
+ adjustments?: number | undefined;
42
+ behavior?: ScrollBehavior | undefined;
43
+ sync: boolean;
44
+ }, instance: Virtualizer<T, any>) => void;
45
+ export interface VirtualizerOptions<TScrollElement extends Element | Window, TItemElement extends Element> {
46
+ count: number;
47
+ getScrollElement: () => TScrollElement | null;
48
+ estimateSize: (index: number) => number;
49
+ scrollToFn: (offset: number, options: {
50
+ adjustments?: number;
51
+ behavior?: ScrollBehavior;
52
+ sync: boolean;
53
+ }, instance: Virtualizer<TScrollElement, TItemElement>) => void;
54
+ observeElementRect: (instance: Virtualizer<TScrollElement, TItemElement>, cb: (rect: Rect) => void) => void | (() => void);
55
+ observeElementOffset: (instance: Virtualizer<TScrollElement, TItemElement>, cb: (offset: number) => void) => void | (() => void);
56
+ debug?: any;
57
+ initialRect?: Rect;
58
+ onChange?: (instance: Virtualizer<TScrollElement, TItemElement>) => void;
59
+ measureElement?: (el: TItemElement, instance: Virtualizer<TScrollElement, TItemElement>) => number;
60
+ overscan?: number;
61
+ horizontal?: boolean;
62
+ paddingStart?: number;
63
+ paddingEnd?: number;
64
+ scrollPaddingStart?: number;
65
+ scrollPaddingEnd?: number;
66
+ initialOffset?: number;
67
+ getItemKey?: (index: number) => Key;
68
+ rangeExtractor?: (range: Range) => number[];
69
+ scrollMargin?: number;
70
+ scrollingDelay?: number;
71
+ indexAttribute?: string;
72
+ }
73
+ export declare class Virtualizer<TScrollElement extends Element | Window, TItemElement extends Element> {
74
+ private unsubs;
75
+ options: Required<VirtualizerOptions<TScrollElement, TItemElement>>;
76
+ scrollElement: TScrollElement | null;
77
+ isScrolling: boolean;
78
+ private isScrollingTimeoutId;
79
+ measurementsCache: VirtualItem[];
80
+ private itemMeasurementsCache;
81
+ private pendingMeasuredCacheIndexes;
82
+ private scrollRect;
83
+ private scrollOffset;
84
+ private scrollAdjustments;
85
+ private measureElementCache;
86
+ private getResizeObserver;
87
+ range: {
88
+ startIndex: number;
89
+ endIndex: number;
90
+ };
91
+ constructor(opts: VirtualizerOptions<TScrollElement, TItemElement>);
92
+ setOptions: (opts: VirtualizerOptions<TScrollElement, TItemElement>) => void;
93
+ private notify;
94
+ private cleanup;
95
+ _didMount: () => () => void;
96
+ _willUpdate: () => void;
97
+ private getSize;
98
+ private getMeasurements;
99
+ calculateRange: () => {
100
+ startIndex: number;
101
+ endIndex: number;
102
+ };
103
+ private getIndexes;
104
+ indexFromElement: (node: TItemElement) => number;
105
+ private _measureElement;
106
+ measureElement: (node: TItemElement | null) => void;
107
+ getVirtualItems: () => VirtualItem[];
108
+ scrollToOffset: (toOffset: number, { align, behavior }?: ScrollToOffsetOptions) => void;
109
+ scrollToIndex: (index: number, { align, ...rest }?: ScrollToIndexOptions) => void;
110
+ getTotalSize: () => number;
111
+ private _scrollToOffset;
112
+ measure: () => void;
113
+ }