react-virtual-renderer 1.1.4 → 1.1.5
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/dist/components/VirtualList.d.ts.map +1 -1
- package/dist/components/VirtualList.js +45 -74
- package/dist/components/VirtualList.js.map +1 -1
- package/dist/core/MeasurementSystem.d.ts +1 -1
- package/dist/core/MeasurementSystem.d.ts.map +1 -1
- package/dist/core/MeasurementSystem.js +22 -10
- package/dist/core/MeasurementSystem.js.map +1 -1
- package/dist/hooks/useVirtualList.d.ts +2 -0
- package/dist/hooks/useVirtualList.d.ts.map +1 -1
- package/dist/hooks/useVirtualList.js +12 -4
- package/dist/hooks/useVirtualList.js.map +1 -1
- package/dist/index.cjs.js +1 -1
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.esm.js +1 -1
- package/dist/index.esm.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VirtualList.d.ts","sourceRoot":"","sources":["../../src/components/VirtualList.tsx"],"names":[],"mappings":"AAAA,OAAO,KAKN,MAAM,OAAO,CAAC;AAGf,OAAO,EACH,gBAAgB,EAEnB,MAAM,UAAU,CAAC;AAElB,eAAO,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"VirtualList.d.ts","sourceRoot":"","sources":["../../src/components/VirtualList.tsx"],"names":[],"mappings":"AAAA,OAAO,KAKN,MAAM,OAAO,CAAC;AAGf,OAAO,EACH,gBAAgB,EAEnB,MAAM,UAAU,CAAC;AAElB,eAAO,MAAM,WAAW,8FAwMvB,CAAC"}
|
|
@@ -1,20 +1,12 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import React, { forwardRef, useEffect, useImperativeHandle, useRef, } from 'react';
|
|
3
3
|
import { useVirtualList } from '../hooks/useVirtualList';
|
|
4
|
-
export const VirtualList = forwardRef(({ items, renderItem, itemWrapper, itemKey, height = 400, width = 500, itemSize, overscan = 5, scrollDirection = 'forward', onScroll, className = '', itemClassName = '', style = {},
|
|
5
|
-
|
|
6
|
-
innerClassName = '', innerStyle = {},
|
|
7
|
-
// ✅ NEW (generic styling) - per-item style hook
|
|
8
|
-
itemStyle = {}, estimatedItemSize = 35, getItemSize, stickyIndices = [], onScrollEnd, innerRef, scrollOffsetRef, footer }, containerRef) => {
|
|
9
|
-
const { virtualItems, isScrolling, scrollOffset, totalSize, containerRef: internalContainerRef, innerRef: internalInnerRef, getItemStyle, } = useVirtualList({
|
|
4
|
+
export const VirtualList = forwardRef(({ items, renderItem, itemWrapper, itemKey, height = 400, width = 500, itemSize, overscan = 5, scrollDirection = 'forward', onScroll, className = '', itemClassName = '', style = {}, innerClassName = '', innerStyle = {}, itemStyle = {}, estimatedItemSize = 35, getItemSize, stickyIndices = [], onScrollEnd, innerRef, scrollOffsetRef, footer, }, containerRef) => {
|
|
5
|
+
const { virtualItems, isScrolling, scrollOffset, totalSize, containerRef: internalContainerRef, innerRef: internalInnerRef, getItemStyle, observeItem, unobserveItem, } = useVirtualList({
|
|
10
6
|
items,
|
|
11
7
|
getItemKey: itemKey,
|
|
12
|
-
containerHeight: typeof height === 'number'
|
|
13
|
-
|
|
14
|
-
: 400,
|
|
15
|
-
containerWidth: typeof width === 'number'
|
|
16
|
-
? width
|
|
17
|
-
: 500,
|
|
8
|
+
containerHeight: typeof height === 'number' ? height : 400,
|
|
9
|
+
containerWidth: typeof width === 'number' ? width : 500,
|
|
18
10
|
itemSize: getItemSize || itemSize,
|
|
19
11
|
overscan,
|
|
20
12
|
scrollDirection,
|
|
@@ -23,33 +15,15 @@ itemStyle = {}, estimatedItemSize = 35, getItemSize, stickyIndices = [], onScrol
|
|
|
23
15
|
onScrollEnd,
|
|
24
16
|
stickyIndices,
|
|
25
17
|
});
|
|
26
|
-
/**
|
|
27
|
-
* Local refs
|
|
28
|
-
*/
|
|
29
18
|
const mergedContainerRef = useRef(null);
|
|
30
19
|
const mergedInnerRef = useRef(null);
|
|
31
|
-
/**
|
|
32
|
-
* Expose container ref
|
|
33
|
-
*/
|
|
34
20
|
useImperativeHandle(containerRef, () => mergedContainerRef.current);
|
|
35
|
-
/**
|
|
36
|
-
* Expose inner ref
|
|
37
|
-
*/
|
|
38
21
|
useImperativeHandle(innerRef, () => mergedInnerRef.current);
|
|
39
|
-
/**
|
|
40
|
-
* Expose current scroll offset
|
|
41
|
-
*/
|
|
42
22
|
useEffect(() => {
|
|
43
23
|
if (scrollOffsetRef) {
|
|
44
|
-
scrollOffsetRef.current =
|
|
45
|
-
scrollOffset;
|
|
24
|
+
scrollOffsetRef.current = scrollOffset;
|
|
46
25
|
}
|
|
47
26
|
}, [scrollOffset, scrollOffsetRef]);
|
|
48
|
-
/**
|
|
49
|
-
* Container styles.
|
|
50
|
-
* User `style` is spread LAST so it can override anything
|
|
51
|
-
* here (matches the existing, already-correct pattern).
|
|
52
|
-
*/
|
|
53
27
|
const containerStyle = {
|
|
54
28
|
height,
|
|
55
29
|
width,
|
|
@@ -57,67 +31,71 @@ itemStyle = {}, estimatedItemSize = 35, getItemSize, stickyIndices = [], onScrol
|
|
|
57
31
|
position: 'relative',
|
|
58
32
|
...style,
|
|
59
33
|
};
|
|
60
|
-
/**
|
|
61
|
-
* Inner wrapper styles.
|
|
62
|
-
* Same "user wins" pattern - innerStyle spreads last, EXCEPT
|
|
63
|
-
* `height`/`width`/`position` are recomputed after so the
|
|
64
|
-
* virtualization math (totalSize) can never be silently broken.
|
|
65
|
-
*/
|
|
66
34
|
const innerStyleComputed = {
|
|
67
35
|
width: '100%',
|
|
68
36
|
...innerStyle,
|
|
69
|
-
// Re-asserted AFTER the spread on purpose: these two are
|
|
70
|
-
// load-bearing for virtualization math (totalSize) and must
|
|
71
|
-
// never be silently overridden by a consumer's innerStyle.
|
|
72
37
|
position: 'relative',
|
|
73
38
|
height: totalSize,
|
|
74
39
|
};
|
|
40
|
+
const cx = (...parts) => parts.filter(Boolean).join(' ').trim();
|
|
75
41
|
/**
|
|
76
|
-
*
|
|
77
|
-
*
|
|
42
|
+
* FIX: tracks the currently-mounted element per index, so the ref
|
|
43
|
+
* callback below can unobserve the OLD element when it unmounts
|
|
44
|
+
* (React gives you `null` on unmount, not the removed element, so
|
|
45
|
+
* you need to have kept a reference yourself to unobserve it -
|
|
46
|
+
* without this, ResizeObserver keeps a permanent reference to
|
|
47
|
+
* every item that's ever scrolled past = memory leak).
|
|
78
48
|
*/
|
|
79
|
-
const
|
|
49
|
+
const observedElementsRef = useRef(new Map());
|
|
50
|
+
const measureRef = (index) => (el) => {
|
|
51
|
+
const prev = observedElementsRef.current.get(index);
|
|
52
|
+
if (prev && prev !== el) {
|
|
53
|
+
unobserveItem(prev);
|
|
54
|
+
observedElementsRef.current.delete(index);
|
|
55
|
+
}
|
|
56
|
+
if (el) {
|
|
57
|
+
observedElementsRef.current.set(index, el);
|
|
58
|
+
observeItem(index, el);
|
|
59
|
+
}
|
|
60
|
+
};
|
|
61
|
+
// stop observing everything on full unmount
|
|
62
|
+
useEffect(() => {
|
|
63
|
+
return () => {
|
|
64
|
+
observedElementsRef.current.forEach((el) => unobserveItem(el));
|
|
65
|
+
observedElementsRef.current.clear();
|
|
66
|
+
};
|
|
67
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
68
|
+
}, []);
|
|
80
69
|
return (_jsx("div", { ref: (el) => {
|
|
81
|
-
mergedContainerRef.current =
|
|
82
|
-
|
|
83
|
-
internalContainerRef.current =
|
|
84
|
-
el;
|
|
70
|
+
mergedContainerRef.current = el;
|
|
71
|
+
internalContainerRef.current = el;
|
|
85
72
|
}, className: cx('virtualize-container', className), style: containerStyle, onScroll: (e) => {
|
|
86
73
|
const target = e.target;
|
|
87
74
|
const handler = renderItem?.__scrollHandler;
|
|
88
|
-
if (handler)
|
|
75
|
+
if (handler)
|
|
89
76
|
handler(e);
|
|
90
|
-
|
|
91
|
-
if (onScroll) {
|
|
77
|
+
if (onScroll)
|
|
92
78
|
onScroll(target.scrollTop, 'auto');
|
|
93
|
-
}
|
|
94
79
|
}, children: _jsxs("div", { ref: (el) => {
|
|
95
|
-
mergedInnerRef.current =
|
|
96
|
-
|
|
97
|
-
internalInnerRef.current =
|
|
98
|
-
el;
|
|
80
|
+
mergedInnerRef.current = el;
|
|
81
|
+
internalInnerRef.current = el;
|
|
99
82
|
}, style: innerStyleComputed, className: cx('virtualize-inner', innerClassName), children: [virtualItems.map((virtualItem) => {
|
|
100
83
|
const item = items[virtualItem.index];
|
|
101
|
-
const key = itemKey
|
|
102
|
-
? itemKey(virtualItem.index, item)
|
|
103
|
-
: virtualItem.index;
|
|
84
|
+
const key = itemKey ? itemKey(virtualItem.index, item) : virtualItem.index;
|
|
104
85
|
const virtualStyle = getItemStyle(virtualItem.index, virtualItem.size);
|
|
105
86
|
const renderProps = {
|
|
106
87
|
item,
|
|
107
88
|
index: virtualItem.index,
|
|
108
|
-
/**
|
|
109
|
-
* @deprecated
|
|
110
|
-
* Kept only for backwards compatibility.
|
|
111
|
-
* Avoid spreading this style in renderItem.
|
|
112
|
-
*/
|
|
113
89
|
style: virtualStyle,
|
|
114
90
|
isScrolling,
|
|
115
91
|
};
|
|
116
92
|
const content = renderItem(renderProps);
|
|
117
|
-
/**
|
|
118
|
-
* Advanced wrapper API
|
|
119
|
-
*/
|
|
120
93
|
if (itemWrapper) {
|
|
94
|
+
// Advanced API: consumer owns the wrapper DOM node, so
|
|
95
|
+
// THEY need to attach measureRef(index) to their root
|
|
96
|
+
// element for dynamic-height measurement to work here -
|
|
97
|
+
// we can't reach into arbitrary returned JSX to do it
|
|
98
|
+
// for them. Documented in types-patch.md.
|
|
121
99
|
return (_jsx(React.Fragment, { children: itemWrapper({
|
|
122
100
|
item,
|
|
123
101
|
index: virtualItem.index,
|
|
@@ -125,14 +103,7 @@ itemStyle = {}, estimatedItemSize = 35, getItemSize, stickyIndices = [], onScrol
|
|
|
125
103
|
children: content,
|
|
126
104
|
}) }, key));
|
|
127
105
|
}
|
|
128
|
-
|
|
129
|
-
* Default wrapper.
|
|
130
|
-
* itemStyle is merged BEFORE the geometry
|
|
131
|
-
* fields so a consumer can add background,
|
|
132
|
-
* transitions, padding, etc. without ever
|
|
133
|
-
* being able to break positioning/sizing.
|
|
134
|
-
*/
|
|
135
|
-
return (_jsx("div", { "data-virtualize-index": virtualItem.index, className: cx('virtualize-item', itemClassName), style: {
|
|
106
|
+
return (_jsx("div", { ref: measureRef(virtualItem.index), "data-virtualize-index": virtualItem.index, className: cx('virtualize-item', itemClassName), style: {
|
|
136
107
|
...itemStyle,
|
|
137
108
|
...virtualStyle,
|
|
138
109
|
boxSizing: 'border-box',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VirtualList.js","sourceRoot":"","sources":["../../src/components/VirtualList.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,EACV,UAAU,EACV,SAAS,EACT,mBAAmB,EACnB,MAAM,GACT,MAAM,OAAO,CAAC;AAEf,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAMzD,MAAM,CAAC,MAAM,WAAW,GAAG,UAAU,CAIjC,CACI,EACI,KAAK,EACL,UAAU,EACV,WAAW,EACX,OAAO,EACP,MAAM,GAAG,GAAG,EACZ,KAAK,GAAG,GAAG,EACX,QAAQ,EACR,QAAQ,GAAG,CAAC,EACZ,eAAe,GAAG,SAAS,EAC3B,QAAQ,EACR,SAAS,GAAG,EAAE,EACd,aAAa,GAAG,EAAE,EAClB,KAAK,GAAG,EAAE
|
|
1
|
+
{"version":3,"file":"VirtualList.js","sourceRoot":"","sources":["../../src/components/VirtualList.tsx"],"names":[],"mappings":"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"}
|
|
@@ -38,7 +38,7 @@ export declare class MeasurementSystem {
|
|
|
38
38
|
* (height-only). Pass `onMeasureWidth` to also receive width
|
|
39
39
|
* updates for elements observed in 'width' axis mode.
|
|
40
40
|
*/
|
|
41
|
-
startMeasuring(
|
|
41
|
+
startMeasuring(onMeasure: (index: number, size: number) => void, onMeasureWidth?: (index: number, size: number) => void): void;
|
|
42
42
|
/**
|
|
43
43
|
* Observe item.
|
|
44
44
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MeasurementSystem.d.ts","sourceRoot":"","sources":["../../src/core/MeasurementSystem.ts"],"names":[],"mappings":"AAAA,qBAAa,iBAAiB;IAC1B,OAAO,CAAC,cAAc,CAA+B;IAErD,OAAO,CAAC,YAAY,CAA6B;IAEjD;;;;OAIG;IACH,OAAO,CAAC,iBAAiB,CAA6B;IAEtD,OAAO,CAAC,gBAAgB,CACe;IAEvC;;;;OAIG;IACH,OAAO,CAAC,YAAY,CAC+B;IAEnD,OAAO,CAAC,cAAc,CACQ;IAE9B;;;OAGG;IACH,OAAO,CAAC,mBAAmB,CACG;IAE9B,OAAO,CAAC,KAAK,CAAuB;IAEpC,OAAO,CAAC,SAAS,CAEC;IAElB;;;;;OAKG;IACH,OAAO,CAAC,cAAc,CAEJ;;IAclB;;;;;;;OAOG;IACH,cAAc,
|
|
1
|
+
{"version":3,"file":"MeasurementSystem.d.ts","sourceRoot":"","sources":["../../src/core/MeasurementSystem.ts"],"names":[],"mappings":"AAAA,qBAAa,iBAAiB;IAC1B,OAAO,CAAC,cAAc,CAA+B;IAErD,OAAO,CAAC,YAAY,CAA6B;IAEjD;;;;OAIG;IACH,OAAO,CAAC,iBAAiB,CAA6B;IAEtD,OAAO,CAAC,gBAAgB,CACe;IAEvC;;;;OAIG;IACH,OAAO,CAAC,YAAY,CAC+B;IAEnD,OAAO,CAAC,cAAc,CACQ;IAE9B;;;OAGG;IACH,OAAO,CAAC,mBAAmB,CACG;IAE9B,OAAO,CAAC,KAAK,CAAuB;IAEpC,OAAO,CAAC,SAAS,CAEC;IAElB;;;;;OAKG;IACH,OAAO,CAAC,cAAc,CAEJ;;IAclB;;;;;;;OAOG;IACH,cAAc,CAEV,SAAS,EAAE,CACP,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,KACX,IAAI,EACT,cAAc,CAAC,EAAE,CACb,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,KACX,IAAI,GACV,IAAI;IA6BP;;;;;;;;OAQG;IACH,WAAW,CACP,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,WAAW,EACpB,IAAI,GAAE,QAAQ,GAAG,OAAkB,GACpC,IAAI;IAsBP;;OAEG;IACH,aAAa,CACT,OAAO,EAAE,WAAW,GACrB,IAAI;IAYP;;OAEG;IACH,OAAO,CAAC,YAAY,CAkElB;IAEF;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAiC3B;;;;;OAKG;IACH,WAAW,CACP,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,WAAW,EACpB,IAAI,GAAE,QAAQ,GAAG,OAAkB,GACpC,IAAI;IAwCP;;OAEG;IACH,aAAa,IAAI,IAAI;IAarB,cAAc,CACV,KAAK,EAAE,MAAM,GACd,MAAM,GAAG,SAAS;IAMrB;;;;OAIG;IACH,mBAAmB,CACf,KAAK,EAAE,MAAM,GACd,MAAM,GAAG,SAAS;IAIrB,kBAAkB,IAAI,GAAG,CACrB,MAAM,EACN,MAAM,CACT;IAMD;;OAEG;IACH,uBAAuB,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC;IAI9C,YAAY,IAAI,IAAI;IAKpB;;OAEG;IACH,iBAAiB,IAAI,IAAI;IAKzB,OAAO,IAAI,IAAI;CAgBlB"}
|
|
@@ -128,18 +128,30 @@ export class MeasurementSystem {
|
|
|
128
128
|
* (height-only). Pass `onMeasureWidth` to also receive width
|
|
129
129
|
* updates for elements observed in 'width' axis mode.
|
|
130
130
|
*/
|
|
131
|
-
startMeasuring(
|
|
131
|
+
startMeasuring(
|
|
132
|
+
// container: HTMLElement,
|
|
133
|
+
onMeasure, onMeasureWidth) {
|
|
132
134
|
this.onMeasure = onMeasure;
|
|
133
135
|
this.onMeasureWidth = onMeasureWidth ?? null;
|
|
134
|
-
const items =
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
136
|
+
// const items =
|
|
137
|
+
// container.querySelectorAll<HTMLElement>(
|
|
138
|
+
// '[data-virtualize-index]'
|
|
139
|
+
// );
|
|
140
|
+
// items.forEach((item) => {
|
|
141
|
+
// const indexAttr =
|
|
142
|
+
// item.dataset.virtualizeIndex;
|
|
143
|
+
// if (
|
|
144
|
+
// indexAttr === undefined
|
|
145
|
+
// ) {
|
|
146
|
+
// return;
|
|
147
|
+
// }
|
|
148
|
+
// const index =
|
|
149
|
+
// Number(indexAttr);
|
|
150
|
+
// this.observeItem(
|
|
151
|
+
// index,
|
|
152
|
+
// item
|
|
153
|
+
// );
|
|
154
|
+
// });
|
|
143
155
|
}
|
|
144
156
|
/**
|
|
145
157
|
* Observe item.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MeasurementSystem.js","sourceRoot":"","sources":["../../src/core/MeasurementSystem.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,iBAAiB;IAiD1B;QAhDQ;;;;mBAAwC,IAAI;WAAC;QAE7C;;;;mBAAe,IAAI,GAAG,EAAkB;WAAC;QAEjD;;;;WAIG;QACK;;;;mBAAoB,IAAI,GAAG,EAAkB;WAAC;QAE9C;;;;mBACJ,IAAI,OAAO,EAAuB;WAAC;QAEvC;;;;WAIG;QACK;;;;mBACJ,IAAI,OAAO,EAAmC;WAAC;QAE3C;;;;mBACJ,IAAI,GAAG,EAAkB;WAAC;QAE9B;;;WAGG;QACK;;;;mBACJ,IAAI,GAAG,EAAkB;WAAC;QAEtB;;;;mBAAuB,IAAI;WAAC;QAE5B;;;;mBAEK,IAAI;WAAC;QAElB;;;;;WAKG;QACK;;;;mBAEK,IAAI;WAAC;QAiHlB;;WAEG;QACK;;;;mBAAe,CACnB,OAA8B,EAC1B,EAAE;gBACN,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;oBAC1B,MAAM,OAAO,GACT,KAAK,CAAC,MAAqB,CAAC;oBAEhC,MAAM,KAAK,GACP,IAAI,CAAC,gBAAgB,CAAC,GAAG,CACrB,OAAO,CACV,CAAC;oBAEN,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;wBACtB,SAAS;oBACb,CAAC;oBAED,MAAM,IAAI,GACN,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,QAAQ,CAAC;oBAE/C,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;wBACnB,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CACxB,KAAK,CAAC,WAAW,CAAC,KAAK,CAC1B,CAAC;wBAEF,IACI,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC;4BACjC,SAAS,EACX,CAAC;4BACC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CACtB,KAAK,EACL,SAAS,CACZ,CAAC;4BAEF,IAAI,CAAC,mBAAmB,CAAC,GAAG,CACxB,KAAK,EACL,SAAS,CACZ,CAAC;wBACN,CAAC;wBAED,SAAS;oBACb,CAAC;oBAED,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CACnB,KAAK,CAAC,WAAW,CAAC,MAAM,CAC3B,CAAC;oBAEF,IACI,IAAI,CAAC,YAAY,CAAC,GAAG,CACjB,KAAK,CACR,KAAK,IAAI,EACZ,CAAC;wBACC,SAAS;oBACb,CAAC;oBAED,IAAI,CAAC,YAAY,CAAC,GAAG,CACjB,KAAK,EACL,IAAI,CACP,CAAC;oBAEF,IAAI,CAAC,cAAc,CAAC,GAAG,CACnB,KAAK,EACL,IAAI,CACP,CAAC;gBACN,CAAC;gBAED,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC/B,CAAC;WAAC;QAnLE,IACI,OAAO,MAAM,KAAK,WAAW;YAC7B,gBAAgB,IAAI,MAAM,EAC5B,CAAC;YACC,IAAI,CAAC,cAAc;gBACf,IAAI,cAAc,CACd,IAAI,CAAC,YAAY,CACpB,CAAC;QACV,CAAC;IACL,CAAC;IAED;;;;;;;OAOG;IACH,cAAc,
|
|
1
|
+
{"version":3,"file":"MeasurementSystem.js","sourceRoot":"","sources":["../../src/core/MeasurementSystem.ts"],"names":[],"mappings":"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"}
|
|
@@ -97,6 +97,8 @@ export interface UseVirtualListReturn {
|
|
|
97
97
|
* `getItemKey` when provided and falling back to index.
|
|
98
98
|
*/
|
|
99
99
|
getItemKeyForIndex: (index: number) => string | number;
|
|
100
|
+
observeItem: (index: number, element: HTMLElement) => void;
|
|
101
|
+
unobserveItem: (element: HTMLElement) => void;
|
|
100
102
|
}
|
|
101
103
|
/**
|
|
102
104
|
* Virtualized list hook. Supports vertical or horizontal axes,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useVirtualList.d.ts","sourceRoot":"","sources":["../../src/hooks/useVirtualList.ts"],"names":[],"mappings":"AAAA,OAAO,EAMH,aAAa,EACb,gBAAgB,EACnB,MAAM,OAAO,CAAC;AAKf,OAAO,EACH,WAAW,EACX,eAAe,EAClB,MAAM,UAAU,CAAC;AAElB;;;;GAIG;AACH,MAAM,MAAM,UAAU,GAAG,UAAU,GAAG,YAAY,CAAC;AAEnD,MAAM,WAAW,oBAAoB,CAAC,CAAC;IACnC,KAAK,EAAE,CAAC,EAAE,CAAC;IAEX;;;;OAIG;IACH,UAAU,CAAC,EAAE,CACT,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,CAAC,KACN,MAAM,GAAG,MAAM,CAAC;IAErB;;;OAGG;IACH,eAAe,EAAE,MAAM,CAAC;IAExB;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB;;;;;;;;;;;OAWG;IACH,QAAQ,CAAC,EACP,MAAM,GACN,CAAC,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC,CAAC;IAE9B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,IAAI,CAAC,EAAE,UAAU,CAAC;IAElB;;;;;OAKG;IACH,eAAe,CAAC,EAAE,eAAe,CAAC;IAElC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B,QAAQ,CAAC,EAAE,CACP,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,eAAe,KACzB,IAAI,CAAC;IAEV,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IAEzB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IAEzB;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB;;;;;OAKG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAClC;AAED,MAAM,WAAW,oBAAoB;IACjC,YAAY,EAAE,WAAW,EAAE,CAAC;IAE5B,WAAW,EAAE,OAAO,CAAC;IAErB,YAAY,EAAE,MAAM,CAAC;IAErB;;;OAGG;IACH,eAAe,EAAE,eAAe,CAAC;IAEjC,SAAS,EAAE,MAAM,CAAC;IAElB,YAAY,EAAE,CACV,KAAK,EAAE,MAAM,EACb,SAAS,CAAC,EACJ,OAAO,GACP,QAAQ,GACR,KAAK,KACV,IAAI,CAAC;IAEV,cAAc,EAAE,CACZ,MAAM,EAAE,MAAM,KACb,IAAI,CAAC;IAEV,eAAe,EAAE,CACb,MAAM,EAAE,MAAM,KACb,IAAI,CAAC;IAEV,YAAY,EAAE,gBAAgB,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IAEtD,QAAQ,EAAE,gBAAgB,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IAElD,YAAY,EAAE,CACV,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,KACX,aAAa,CAAC;IAEnB;;;;;;;;OAQG;IACH,WAAW,EAAE,CAAC,SAAS,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAE1C;;;OAGG;IACH,kBAAkB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,GAAG,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"useVirtualList.d.ts","sourceRoot":"","sources":["../../src/hooks/useVirtualList.ts"],"names":[],"mappings":"AAAA,OAAO,EAMH,aAAa,EACb,gBAAgB,EACnB,MAAM,OAAO,CAAC;AAKf,OAAO,EACH,WAAW,EACX,eAAe,EAClB,MAAM,UAAU,CAAC;AAElB;;;;GAIG;AACH,MAAM,MAAM,UAAU,GAAG,UAAU,GAAG,YAAY,CAAC;AAEnD,MAAM,WAAW,oBAAoB,CAAC,CAAC;IACnC,KAAK,EAAE,CAAC,EAAE,CAAC;IAEX;;;;OAIG;IACH,UAAU,CAAC,EAAE,CACT,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,CAAC,KACN,MAAM,GAAG,MAAM,CAAC;IAErB;;;OAGG;IACH,eAAe,EAAE,MAAM,CAAC;IAExB;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB;;;;;;;;;;;OAWG;IACH,QAAQ,CAAC,EACP,MAAM,GACN,CAAC,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC,CAAC;IAE9B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,IAAI,CAAC,EAAE,UAAU,CAAC;IAElB;;;;;OAKG;IACH,eAAe,CAAC,EAAE,eAAe,CAAC;IAElC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B,QAAQ,CAAC,EAAE,CACP,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,eAAe,KACzB,IAAI,CAAC;IAEV,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IAEzB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IAEzB;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB;;;;;OAKG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAClC;AAED,MAAM,WAAW,oBAAoB;IACjC,YAAY,EAAE,WAAW,EAAE,CAAC;IAE5B,WAAW,EAAE,OAAO,CAAC;IAErB,YAAY,EAAE,MAAM,CAAC;IAErB;;;OAGG;IACH,eAAe,EAAE,eAAe,CAAC;IAEjC,SAAS,EAAE,MAAM,CAAC;IAElB,YAAY,EAAE,CACV,KAAK,EAAE,MAAM,EACb,SAAS,CAAC,EACJ,OAAO,GACP,QAAQ,GACR,KAAK,KACV,IAAI,CAAC;IAEV,cAAc,EAAE,CACZ,MAAM,EAAE,MAAM,KACb,IAAI,CAAC;IAEV,eAAe,EAAE,CACb,MAAM,EAAE,MAAM,KACb,IAAI,CAAC;IAEV,YAAY,EAAE,gBAAgB,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IAEtD,QAAQ,EAAE,gBAAgB,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IAElD,YAAY,EAAE,CACV,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,KACX,aAAa,CAAC;IAEnB;;;;;;;;OAQG;IACH,WAAW,EAAE,CAAC,SAAS,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAE1C;;;OAGG;IACH,kBAAkB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,GAAG,MAAM,CAAC;IACvD,WAAW,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,KAAK,IAAI,CAAC;IAC3D,aAAa,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,IAAI,CAAC;CACjD;AAID;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,CAAC,GAAG,GAAG,EAClC,MAAM,EAAE,oBAAoB,CAAC,CAAC,CAAC,GAChC,oBAAoB,CAketB"}
|
|
@@ -212,11 +212,11 @@ export function useVirtualList(params) {
|
|
|
212
212
|
* preserving original vertical-only behavior exactly.
|
|
213
213
|
*/
|
|
214
214
|
useEffect(() => {
|
|
215
|
-
const container = containerRef.current;
|
|
215
|
+
// const container = containerRef.current;
|
|
216
216
|
const measurement = measurementRef.current;
|
|
217
|
-
if (container) {
|
|
218
|
-
|
|
219
|
-
}
|
|
217
|
+
// if (container) {
|
|
218
|
+
// measurement.startMeasuring(container, handleItemMeasure);
|
|
219
|
+
// }
|
|
220
220
|
return () => {
|
|
221
221
|
measurement.stopMeasuring();
|
|
222
222
|
};
|
|
@@ -335,6 +335,12 @@ export function useVirtualList(params) {
|
|
|
335
335
|
const totalSize = useMemo(() => engineRef.current.getTotalSize(),
|
|
336
336
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
337
337
|
[items.length, measurementVersion, resolvedViewportSize]);
|
|
338
|
+
const observeItem = useCallback((index, element) => {
|
|
339
|
+
measurementRef.current.observeItem(index, element);
|
|
340
|
+
}, []);
|
|
341
|
+
const unobserveItem = useCallback((element) => {
|
|
342
|
+
measurementRef.current.unobserveItem(element);
|
|
343
|
+
}, []);
|
|
338
344
|
return {
|
|
339
345
|
virtualItems,
|
|
340
346
|
isScrolling,
|
|
@@ -349,6 +355,8 @@ export function useVirtualList(params) {
|
|
|
349
355
|
getItemStyle,
|
|
350
356
|
recalculate,
|
|
351
357
|
getItemKeyForIndex,
|
|
358
|
+
observeItem,
|
|
359
|
+
unobserveItem,
|
|
352
360
|
};
|
|
353
361
|
}
|
|
354
362
|
//# sourceMappingURL=useVirtualList.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useVirtualList.js","sourceRoot":"","sources":["../../src/hooks/useVirtualList.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,QAAQ,EACR,WAAW,EACX,MAAM,EACN,SAAS,EACT,OAAO,GAGV,MAAM,OAAO,CAAC;AAEf,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"useVirtualList.js","sourceRoot":"","sources":["../../src/hooks/useVirtualList.ts"],"names":[],"mappings":"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"}
|
package/dist/index.cjs.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var e=require("react/jsx-runtime"),t=require("react");function r(e){return e&-e}function i(e){let t=1;for(;t<e;)t<<=1;return t}class s{constructor(e=0){Object.defineProperty(this,"capacity",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"tree",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"raw",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"n",{enumerable:!0,configurable:!0,writable:!0,value:0}),this.capacity=i(Math.max(1,e)),this.tree=new Array(this.capacity+1).fill(0),this.raw=new Array(this.capacity).fill(0),e>0&&this.resize(e,0)}size(){return this.n}rebuild(){this.tree=new Array(this.capacity+1).fill(0);for(let e=1;e<=this.capacity;e++){this.tree[e]+=this.raw[e-1]??0;const t=e+r(e);t<=this.capacity&&(this.tree[t]+=this.tree[e])}}resize(e,t){if(e>this.capacity){const r=i(e),s=this.raw;this.raw=new Array(r).fill(0);for(let e=0;e<s.length;e++)this.raw[e]=s[e];for(let r=this.n;r<e;r++)this.raw[r]=t;return this.capacity=r,this.rebuild(),void(this.n=e)}if(e>this.n){for(let r=this.n;r<e;r++)this.update(r,t);this.n=e}else if(e<this.n){for(let t=e;t<this.n;t++)this.update(t,0);this.n=e}}update(e,t){if(e<0||e>=this.capacity)return;const i=t-(this.raw[e]??0);if(0!==i){this.raw[e]=t;for(let t=e+1;t<=this.capacity;t+=r(t))this.tree[t]+=i}}getValue(e){return this.raw[e]??0}prefixSum(e){let t=0;for(let i=Math.min(e,this.n);i>0;i-=r(i))t+=this.tree[i];return t}total(){return this.prefixSum(this.n)}findIndexAtOffset(e){if(0===this.n)return 0;let t=0,r=e;for(let e=this.capacity;e>0;e>>=1){const i=t+e;i<=this.capacity&&this.tree[i]<=r&&(t=i,r-=this.tree[i])}return Math.min(t,this.n-1)}resetAll(e){for(let e=0;e<this.n;e++)this.raw[e]=0;this.rebuild();for(let t=0;t<this.n;t++)this.update(t,e)}}class n{constructor(e=35){Object.defineProperty(this,"tree",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"estimatedItemSize",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"itemCount",{enumerable:!0,configurable:!0,writable:!0,value:0}),this.estimatedItemSize=e,this.tree=new s(0)}setItemCount(e){this.itemCount!==e&&(this.tree.resize(e,this.estimatedItemSize),this.itemCount=e)}recordItemSize(e,t){e<0||e>=this.itemCount||this.tree.update(e,t)}invalidateFrom(e){if(void 0===e)return void this.tree.resetAll(this.estimatedItemSize);for(let t=Math.max(0,e);t<this.itemCount;t++)this.tree.update(t,this.estimatedItemSize)}getItemSize(e){return e<0||e>=this.itemCount?this.estimatedItemSize:this.tree.getValue(e)}getItemOffset(e){return this.tree.prefixSum(Math.max(0,e))}getTotalSize(){return this.tree.total()}getVisibleRange(e,t,r,i=5){if(this.setItemCount(r),0===r)return{startIndex:0,endIndex:-1,overscanStartIndex:0,overscanEndIndex:-1};const s=this.tree.findIndexAtOffset(e),n=this.tree.findIndexAtOffset(e+t);return{startIndex:Math.max(0,s-i),endIndex:Math.min(r-1,n+i),overscanStartIndex:s,overscanEndIndex:n}}getVisibleItems(e,t,r,i){const s=this.getVisibleRange(e,t,r,i),n=[];for(let e=s.startIndex;e<=s.endIndex;e++)n.push({index:e,size:this.getItemSize(e),offset:this.getItemOffset(e)});return n}getScrollOffsetForIndex(e,t,r="start"){const i=this.getItemOffset(e),s=this.getItemSize(e);return"center"===r?Math.max(0,i-(t-s)/2):"end"===r?Math.max(0,i-t+s):Math.max(0,i)}}class a{constructor(){Object.defineProperty(this,"resizeObserver",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"measurements",{enumerable:!0,configurable:!0,writable:!0,value:new Map}),Object.defineProperty(this,"widthMeasurements",{enumerable:!0,configurable:!0,writable:!0,value:new Map}),Object.defineProperty(this,"observedElements",{enumerable:!0,configurable:!0,writable:!0,value:new WeakMap}),Object.defineProperty(this,"observedAxis",{enumerable:!0,configurable:!0,writable:!0,value:new WeakMap}),Object.defineProperty(this,"pendingUpdates",{enumerable:!0,configurable:!0,writable:!0,value:new Map}),Object.defineProperty(this,"pendingWidthUpdates",{enumerable:!0,configurable:!0,writable:!0,value:new Map}),Object.defineProperty(this,"rafId",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"onMeasure",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"onMeasureWidth",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"handleResize",{enumerable:!0,configurable:!0,writable:!0,value:e=>{for(const t of e){const e=t.target,r=this.observedElements.get(e);if(void 0===r)continue;if("width"===(this.observedAxis.get(e)??"height")){const e=Math.round(t.contentRect.width);this.widthMeasurements.get(r)!==e&&(this.widthMeasurements.set(r,e),this.pendingWidthUpdates.set(r,e));continue}const i=Math.round(t.contentRect.height);this.measurements.get(r)!==i&&(this.measurements.set(r,i),this.pendingUpdates.set(r,i))}this.flushPendingUpdates()}}),"undefined"!=typeof window&&"ResizeObserver"in window&&(this.resizeObserver=new ResizeObserver(this.handleResize))}startMeasuring(e,t,r){this.onMeasure=t,this.onMeasureWidth=r??null;e.querySelectorAll("[data-virtualize-index]").forEach(e=>{const t=e.dataset.virtualizeIndex;if(void 0===t)return;const r=Number(t);this.observeItem(r,e)})}observeItem(e,t,r="height"){t.dataset.virtualizeIndex=String(e),this.observedElements.set(t,e),this.observedAxis.set(t,r),this.resizeObserver?.observe(t),this.syncMeasure(e,t,r)}unobserveItem(e){this.resizeObserver?.unobserve(e),this.observedElements.delete(e),this.observedAxis.delete(e)}flushPendingUpdates(){null===this.rafId&&(this.rafId=requestAnimationFrame(()=>{this.pendingUpdates.forEach((e,t)=>{this.onMeasure?.(t,e)}),this.pendingUpdates.clear(),this.pendingWidthUpdates.forEach((e,t)=>{this.onMeasureWidth?.(t,e)}),this.pendingWidthUpdates.clear(),this.rafId=null}))}syncMeasure(e,t,r="height"){const i=t.getBoundingClientRect(),s="width"===r?i.width:i.height;if(s<=0)return;const n=Math.round(s);if("width"===r){if(this.widthMeasurements.get(e)===n)return;return this.widthMeasurements.set(e,n),void this.onMeasureWidth?.(e,n)}this.measurements.get(e)!==n&&(this.measurements.set(e,n),this.onMeasure?.(e,n))}stopMeasuring(){this.resizeObserver?.disconnect(),this.pendingUpdates.clear(),this.pendingWidthUpdates.clear(),null!==this.rafId&&cancelAnimationFrame(this.rafId)}getMeasurement(e){return this.measurements.get(e)}getWidthMeasurement(e){return this.widthMeasurements.get(e)}getAllMeasurements(){return new Map(this.measurements)}getAllWidthMeasurements(){return new Map(this.widthMeasurements)}clearPending(){this.pendingUpdates.clear(),this.pendingWidthUpdates.clear()}clearMeasurements(){this.measurements.clear(),this.widthMeasurements.clear()}destroy(){this.stopMeasuring(),this.measurements.clear(),this.pendingUpdates.clear(),this.widthMeasurements.clear(),this.pendingWidthUpdates.clear(),this.observedElements=new WeakMap,this.observedAxis=new WeakMap,this.onMeasure=null,this.onMeasureWidth=null}}const o=()=>{};function l(e){const{items:r,getItemKey:i,containerHeight:s,containerWidth:l,overscan:u=5,estimatedItemSize:c=35,axis:h="vertical",onScroll:d=o,onScrollEnd:f=o,stickyIndices:m,scrollEndDelay:g=150,autoMeasureContainer:p=!0}=e,b="horizontal"===h,w=t.useRef(m??[]),v=m?m.join(","):"";t.useEffect(()=>{w.current=m??[]},[v]);const y=t.useRef(null);null===y.current&&(y.current=new n(c));const x=t.useRef(null);null===x.current&&(x.current=new a);const M=t.useRef(null),S=t.useRef(null),[I,z]=t.useState({height:0,width:0});t.useEffect(()=>{if(!p)return;const e=M.current;if(!e||"undefined"==typeof ResizeObserver)return;const t=new ResizeObserver(e=>{const t=e[0];if(!t)return;const{height:r,width:i}=t.contentRect;z(e=>e.height===r&&e.width===i?e:{height:r,width:i})});return t.observe(e),()=>{t.disconnect()}},[p]);const O=s>0?s:I.height,R=l&&l>0?l:I.width,[E,j]=t.useState(0),[C,k]=t.useState(!1),[P,W]=t.useState("forward"),A=t.useRef(null),T=t.useRef(0),[N,H]=t.useState(0),[L,V]=t.useState([]);t.useEffect(()=>{const e=y.current;if(!O||0===r.length)return void V(e=>0===e.length?e:[]);const t=e.getVisibleItems(E,O,r.length,u),i=w.current,s=t.map(e=>({index:e.index,offset:e.offset,size:e.size,isSticky:i.includes(e.index)}));V(e=>{if(e.length===s.length){let t=!1;for(let r=0;r<e.length;r++){const i=e[r],n=s[r];if(i.index!==n.index||i.offset!==n.offset||i.size!==n.size||i.isSticky!==n.isSticky){t=!0;break}}if(!t)return e}return s})},[E,O,r.length,u,v,N]);const U=t.useCallback(e=>{const t=e.currentTarget,r=b?t.scrollLeft:t.scrollTop;if(r===T.current)return;const i=r>T.current?"forward":"reverse";T.current=r,W(i),j(r),k(!0),d(r,i),A.current&&clearTimeout(A.current),A.current=setTimeout(()=>{k(!1),f()},g)},[b,d,f,g]);t.useEffect(()=>{const e=M.current;if(e)return e.addEventListener("scroll",U,{passive:!0}),()=>{e.removeEventListener("scroll",U)}},[U]);const F=t.useCallback((e,t)=>{y.current.recordItemSize(e,t),H(e=>e+1)},[]);t.useEffect(()=>{const e=M.current,t=x.current;return e&&t.startMeasuring(e,F),()=>{t.stopMeasuring()}},[F]);const B=t.useCallback((e,t="start")=>{if(!O)return;const r=y.current.getScrollOffsetForIndex(e,O,t),i=M.current;i&&(b?i.scrollLeft=r:i.scrollTop=r)},[O,b]),$=t.useCallback(e=>{const t=M.current;t&&(b?t.scrollLeft=e:t.scrollTop=e),T.current=e,j(e)},[b]),q=t.useCallback(e=>{T.current=e,j(e)},[]),K=t.useCallback((e,t)=>{const r=y.current.getItemOffset(e),i=w.current.includes(e),s={position:i?"sticky":"absolute",zIndex:i?10:0};return b?{...s,top:0,left:i?0:r,height:R||"100%",width:t}:{...s,top:i?0:r,left:0,width:"100%",height:t}},[b,R]),D=t.useCallback(e=>{if(i){const t=r[e];if(void 0!==t)return i(e,t)}return e},[i,r]),G=t.useCallback(e=>{y.current.invalidateFrom(e),H(e=>e+1)},[]);t.useEffect(()=>()=>{A.current&&clearTimeout(A.current),x.current?.destroy()},[]);const J=t.useMemo(()=>y.current.getTotalSize(),[r.length,N,O]);return{virtualItems:L,isScrolling:C,scrollOffset:E,scrollDirection:P,totalSize:J,scrollToItem:B,scrollToOffset:$,setScrollOffset:q,containerRef:M,innerRef:S,getItemStyle:K,recalculate:G,getItemKeyForIndex:D}}const u=t.forwardRef(({items:r,renderItem:i,itemWrapper:s,itemKey:n,height:a=400,width:o=500,itemSize:u,overscan:c=5,scrollDirection:h="forward",onScroll:d,className:f="",itemClassName:m="",style:g={},innerClassName:p="",innerStyle:b={},itemStyle:w={},estimatedItemSize:v=35,getItemSize:y,stickyIndices:x=[],onScrollEnd:M,innerRef:S,scrollOffsetRef:I,footer:z},O)=>{const{virtualItems:R,isScrolling:E,scrollOffset:j,totalSize:C,containerRef:k,innerRef:P,getItemStyle:W}=l({items:r,getItemKey:n,containerHeight:"number"==typeof a?a:400,containerWidth:"number"==typeof o?o:500,overscan:c,estimatedItemSize:v,onScroll:d,onScrollEnd:M,stickyIndices:x}),A=t.useRef(null),T=t.useRef(null);t.useImperativeHandle(O,()=>A.current),t.useImperativeHandle(S,()=>T.current),t.useEffect(()=>{I&&(I.current=j)},[j,I]);const N={height:a,width:o,overflow:"auto",position:"relative",...g},H={width:"100%",...b,position:"relative",height:C},L=(...e)=>e.filter(Boolean).join(" ").trim();return e.jsx("div",{ref:e=>{A.current=e,k.current=e},className:L("virtualize-container",f),style:N,onScroll:e=>{const t=e.target,r=i?.__scrollHandler;r&&r(e),d&&d(t.scrollTop,"auto")},children:e.jsxs("div",{ref:e=>{T.current=e,P.current=e},style:H,className:L("virtualize-inner",p),children:[R.map(a=>{const o=r[a.index],l=n?n(a.index,o):a.index,u=W(a.index,a.size),c={item:o,index:a.index,style:u,isScrolling:E},h=i(c);return s?e.jsx(t.Fragment,{children:s({item:o,index:a.index,style:u,children:h})},l):e.jsx("div",{"data-virtualize-index":a.index,className:L("virtualize-item",m),style:{...w,...u,boxSizing:"border-box"},children:h},l)}),z&&e.jsx("div",{style:{position:"absolute",top:C,left:0,width:"100%"},children:z})]})})});u.displayName="VirtualList";class c{constructor(){Object.defineProperty(this,"positions",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"colHeights",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"rowOffsets",{enumerable:!0,configurable:!0,writable:!0,value:[0]}),Object.defineProperty(this,"currentRowMax",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"maxBottom",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"params",{enumerable:!0,configurable:!0,writable:!0,value:null})}sameParams(e){return!!this.params&&(this.params.cols===e.cols&&this.params.colWidth===e.colWidth&&this.params.gap===e.gap&&this.params.layout===e.layout&&this.params.rowHeight===e.rowHeight)}reset(e){this.positions=[],this.colHeights=new Array(e.cols).fill(0),this.rowOffsets=[0],this.currentRowMax=0,this.maxBottom=0,this.params=e}sizeOf(e,t){return"function"==typeof e?e(t):e}appendMasonry(e,t,r){for(let i=e;i<t;i++){const e=this.sizeOf(r.rowHeight,i);let t=0;for(let e=1;e<r.cols;e++)this.colHeights[e]<this.colHeights[t]&&(t=e);const s=t*(r.colWidth+r.gap),n=this.colHeights[t];this.positions.push({x:s,y:n,width:r.colWidth,height:e}),this.colHeights[t]+=e+r.gap,n+e>this.maxBottom&&(this.maxBottom=n+e)}}appendGrid(e,t,r){for(let i=e;i<t;i++){const e=Math.floor(i/r.cols),t=i%r.cols,s=this.sizeOf(r.rowHeight,i);for(;this.rowOffsets.length<=e;){const e=this.rowOffsets.length-1,t=e>=0?r.gap:0;this.rowOffsets.push(this.rowOffsets[e]+this.currentRowMax+t),this.currentRowMax=0}const n=this.rowOffsets[e],a=t*(r.colWidth+r.gap);this.positions.push({x:a,y:n,width:r.colWidth,height:s}),this.currentRowMax=Math.max(this.currentRowMax,s),n+s>this.maxBottom&&(this.maxBottom=n+s)}}sync(e,t){(!this.sameParams(t)||e<this.positions.length)&&this.reset(t);const r=this.positions.length;return r<e&&("masonry"===t.layout?this.appendMasonry(r,e,t):this.appendGrid(r,e,t)),this.positions}getTotalHeight(){return this.maxBottom}}const h=t.forwardRef(({items:r,renderItem:i,itemKey:s,height:n=600,width:a="100%",columnCount:o=3,rowHeight:l=200,columnWidth:u,layout:h="grid",overscan:d=5,gap:f=16,onScroll:m,onVisibleRangeChange:g,innerClassName:p,innerStyle:b,containerClassName:w,containerStyle:v,itemClassName:y,itemStyle:x},M)=>{const S=t.useRef(null);t.useImperativeHandle(M,()=>S.current);const[I,z]=t.useState(0),[O,R]=t.useState(!1),[E,j]=t.useState(0),C=t.useRef(null);t.useEffect(()=>{if(!S.current)return;const e=S.current,t=new ResizeObserver(e=>{for(const t of e){const e=t.contentRect.width;e>0&&j(e)}});return t.observe(e),()=>t.disconnect()},[]),t.useEffect(()=>()=>{C.current&&clearTimeout(C.current)},[]);const k=E>0&&r.length>0,P=t.useMemo(()=>{if("auto"===o){const e=200;return Math.max(1,Math.floor(E/(e+f)))}return Math.max(1,Number(o))},[o,E,f]),W=t.useMemo(()=>{if("number"==typeof u)return u;const e=f*Math.max(0,P-1);return Math.max(0,(E-e)/P)},[E,P,f,u]),A="grid"===h&&"number"==typeof l,T="string"==typeof n?parseInt(n):Number(n),N=l+f,H=t.useMemo(()=>{if(!A||!k)return 0;const e=Math.ceil(r.length/P);return e>0?e*N-f:0},[A,k,r.length,P,N,f]),L=t.useMemo(()=>{if(!A||!k)return{start:0,end:-1};const e=Math.max(0,Math.floor(I/N)),t=Math.max(0,Math.floor((I+T)/N)),i=Math.ceil(d/P);return{start:Math.max(0,(e-i)*P),end:Math.min(r.length-1,(t+i+1)*P-1)}},[A,k,I,T,N,d,P,r.length]),V=t.useCallback(e=>{const t=Math.floor(e/P);return{x:e%P*(W+f),y:t*N,width:W,height:l}},[P,W,f,N,l]),U=t.useRef(null);null===U.current&&(U.current=new c);const F=t.useMemo(()=>A||!k?[]:U.current.sync(r.length,{cols:P,colWidth:W,gap:f,layout:h,rowHeight:l}),[A,k,r.length,P,W,f,h,l]),B=t.useMemo(()=>A||!k?0:U.current.getTotalHeight(),[A,k,F]),$=t.useMemo(()=>{if(A||!F.length)return{start:0,end:-1};const e=I+T,t=F.length,r="masonry"===h?d+P:d;let i=0,s=t-1,n=0;for(;i<=s;){const e=i+s>>1;F[e].y+F[e].height>=I?(n=e,s=e-1):i=e+1}i=0,s=t-1;let a=t-1;for(;i<=s;){const t=i+s>>1;F[t].y<=e?(a=t,i=t+1):s=t-1}return{start:Math.max(0,n-r),end:Math.min(t-1,a+r)}},[A,F,I,T,d,h,P]),q=A?H:B,K=A?L:$,D=t.useCallback(e=>{const t=e.currentTarget;z(t.scrollTop),R(!0),m?.(t.scrollTop,t.scrollLeft),C.current&&clearTimeout(C.current),C.current=setTimeout(()=>R(!1),120)},[m]);t.useEffect(()=>{g?.(K.start,K.end)},[K,g]);const G=(...e)=>e.filter(Boolean).join(" ").trim(),J={height:"string"==typeof n?n:`${n}px`,width:"string"==typeof a?a:`${a}px`,overflowY:"auto",overflowX:"hidden",position:"relative",...v},_={position:"relative",height:q||1,width:"100%",...b};if(!k)return e.jsx("div",{ref:S,className:G("virtualize-grid-container",w),style:J,onScroll:D,children:e.jsx("div",{className:G("virtualize-grid-inner",p),style:_})});const X=[];for(let e=K.start;e<=K.end;e++)e>=0&&e<r.length&&X.push({index:e,key:s?.(e,r[e])??e});return e.jsx("div",{ref:S,className:G("virtualize-grid-container",w),style:J,onScroll:D,children:e.jsx("div",{className:G("virtualize-grid-inner",p),style:_,children:X.map(t=>{const s=r[t.index],n=A?V(t.index):F[t.index];if(!s||!n)return null;const a={...x,position:"absolute",top:`${n.y}px`,left:`${n.x}px`,width:`${n.width}px`,height:`${n.height}px`,boxSizing:"border-box"};return e.jsx("div",{"data-virtualize-index":t.index,className:G("virtualize-grid-item",y),style:a,children:i({item:s,index:t.index,isScrolling:O})},t.key)})})})});function d(e,t){return t?e:e.toLowerCase()}h.displayName="VirtualGrid";const f=new Map;exports.MeasurementSystem=a,exports.VirtualGrid=h,exports.VirtualList=u,exports.VirtualizationEngine=n,exports.useInfiniteScroll=function({onLoadMore:e,rootMargin:r="500px",isLoading:i=!1,enabled:s=!0,root:n}){const a=t.useRef(null),[o,l]=t.useState(!1),u=t.useRef(!1),c=t.useRef(e);return t.useEffect(()=>{c.current=e},[e]),t.useEffect(()=>{if(!s)return;const e=a.current;if(!e)return;if("undefined"==typeof window||!("IntersectionObserver"in window))return;const t=new IntersectionObserver(e=>{const t=e[0];t&&(l(t.isIntersecting),!t.isIntersecting||u.current||i||(u.current=!0,Promise.resolve(c.current()).finally(()=>{u.current=!1})))},{root:n?.current??null,rootMargin:r,threshold:0});return t.observe(e),()=>{t.disconnect()}},[s,r,i,n?.current]),{sentinelRef:a,isAtBottom:o,isLoading:i}},exports.useLazyLoad=function({threshold:e=.1,onVisible:r,root:i=null,rootMargin:s="0px",enabled:n=!0,once:a=!0}={}){const[o,l]=t.useState(!1),[u,c]=t.useState(null),h=t.useRef(null),d=t.useRef(r);return t.useEffect(()=>{d.current=r},[r]),t.useEffect(()=>{if(!n)return;const t=h.current;if(!t)return;if("undefined"==typeof window||!("IntersectionObserver"in window))return l(!0),void d.current?.();const r=new IntersectionObserver(([e])=>{c(e),e.isIntersecting?(l(!0),d.current?.(),a&&r.unobserve(e.target)):a||l(!1)},{threshold:e,root:i,rootMargin:s});return r.observe(t),()=>{r.disconnect()}},[e,i,s,n,a]),{ref:h,isVisible:o,entry:u}},exports.useScrollRestoration=function(e,r,{persist:i=!0,storageKey:s="virtualize-scroll-positions",storage:n,autoSave:a=!1,maxEntries:o=100,useRAF:l=!0,enabled:u=!0,onError:c}={}){const h=t.useRef(n??("undefined"!=typeof window&&"undefined"!=typeof document?window.localStorage:null));t.useEffect(()=>{if(u&&i&&h.current&&!(f.size>0))try{const e=h.current.getItem(s);if(!e)return;JSON.parse(e).forEach(e=>{f.set(e.key,e)})}catch(e){c?.(e)}},[u,i,s,c]);const d=t.useCallback(()=>{if(i&&h.current)try{const e=Array.from(f.values()).sort((e,t)=>t.timestamp-e.timestamp).slice(0,o);h.current.setItem(s,JSON.stringify(e))}catch(e){c?.(e)}},[i,s,o,c]),m=t.useCallback(()=>{if(!u)return;const t=r.current;if(!t)return;const i={key:e,top:t.scrollTop,left:t.scrollLeft,timestamp:Date.now()};f.set(e,i),d()},[e,r,u,d]),g=t.useCallback(()=>{if(!u)return;if(!r.current)return;const t=f.get(e);if(!t)return;const i=()=>{r.current&&(r.current.scrollTop=t.top,r.current.scrollLeft=t.left)};l?requestAnimationFrame(i):i()},[e,r,u,l]);return t.useEffect(()=>{u&&g()},[u,g]),t.useEffect(()=>{if(u)return()=>{m()}},[u,m]),t.useEffect(()=>{if(!u||!a||!r.current)return;const e=r.current,t=()=>{m()};return e.addEventListener("scroll",t,{passive:!0}),()=>{e.removeEventListener("scroll",t)}},[u,a,m,r]),{savePosition:m,restorePosition:g}},exports.useVirtualList=l,exports.useVirtualizedSearch=function({items:r,searchValue:i,searchFields:s,caseSensitive:n=!1,deferSearch:a=!0,matcher:o}){const l=t.useMemo(()=>d(i.trim(),n),[i,n]),u=t.useDeferredValue(l),c=a?u:l,h=a&&u!==l,f=t.useCallback(e=>!c||(o?o(e,c):function(e,t,r,i){return r.some(r=>{const s=e[r];return null!=s&&d(String(s).trim(),i).includes(t)})}(e,c,s,n)),[c,o,s,n]),m=t.useMemo(()=>c?r.filter(f):[...r],[r,c,f]),g=t.useCallback(e=>f(e),[f]),p=t.useMemo(()=>{if(!l)return null;const e=l.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");return new RegExp(`(${e})`,n?"g":"gi")},[l,n]),b=t.useCallback(r=>{if(!r||!p)return r;return r.split(p).map((r,i)=>i%2==1?e.jsx("mark",{children:r},i):e.jsx(t.Fragment,{children:r},i))},[p]);return{filteredItems:m,resultCount:m.length,query:c,hasMatch:g,isSearching:h,highlightMatch:b}};
|
|
1
|
+
"use strict";var e=require("react/jsx-runtime"),t=require("react");function r(e){return e&-e}function i(e){let t=1;for(;t<e;)t<<=1;return t}class s{constructor(e=0){Object.defineProperty(this,"capacity",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"tree",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"raw",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"n",{enumerable:!0,configurable:!0,writable:!0,value:0}),this.capacity=i(Math.max(1,e)),this.tree=new Array(this.capacity+1).fill(0),this.raw=new Array(this.capacity).fill(0),e>0&&this.resize(e,0)}size(){return this.n}rebuild(){this.tree=new Array(this.capacity+1).fill(0);for(let e=1;e<=this.capacity;e++){this.tree[e]+=this.raw[e-1]??0;const t=e+r(e);t<=this.capacity&&(this.tree[t]+=this.tree[e])}}resize(e,t){if(e>this.capacity){const r=i(e),s=this.raw;this.raw=new Array(r).fill(0);for(let e=0;e<s.length;e++)this.raw[e]=s[e];for(let r=this.n;r<e;r++)this.raw[r]=t;return this.capacity=r,this.rebuild(),void(this.n=e)}if(e>this.n){for(let r=this.n;r<e;r++)this.update(r,t);this.n=e}else if(e<this.n){for(let t=e;t<this.n;t++)this.update(t,0);this.n=e}}update(e,t){if(e<0||e>=this.capacity)return;const i=t-(this.raw[e]??0);if(0!==i){this.raw[e]=t;for(let t=e+1;t<=this.capacity;t+=r(t))this.tree[t]+=i}}getValue(e){return this.raw[e]??0}prefixSum(e){let t=0;for(let i=Math.min(e,this.n);i>0;i-=r(i))t+=this.tree[i];return t}total(){return this.prefixSum(this.n)}findIndexAtOffset(e){if(0===this.n)return 0;let t=0,r=e;for(let e=this.capacity;e>0;e>>=1){const i=t+e;i<=this.capacity&&this.tree[i]<=r&&(t=i,r-=this.tree[i])}return Math.min(t,this.n-1)}resetAll(e){for(let e=0;e<this.n;e++)this.raw[e]=0;this.rebuild();for(let t=0;t<this.n;t++)this.update(t,e)}}class n{constructor(e=35){Object.defineProperty(this,"tree",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"estimatedItemSize",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"itemCount",{enumerable:!0,configurable:!0,writable:!0,value:0}),this.estimatedItemSize=e,this.tree=new s(0)}setItemCount(e){this.itemCount!==e&&(this.tree.resize(e,this.estimatedItemSize),this.itemCount=e)}recordItemSize(e,t){e<0||e>=this.itemCount||this.tree.update(e,t)}invalidateFrom(e){if(void 0===e)return void this.tree.resetAll(this.estimatedItemSize);for(let t=Math.max(0,e);t<this.itemCount;t++)this.tree.update(t,this.estimatedItemSize)}getItemSize(e){return e<0||e>=this.itemCount?this.estimatedItemSize:this.tree.getValue(e)}getItemOffset(e){return this.tree.prefixSum(Math.max(0,e))}getTotalSize(){return this.tree.total()}getVisibleRange(e,t,r,i=5){if(this.setItemCount(r),0===r)return{startIndex:0,endIndex:-1,overscanStartIndex:0,overscanEndIndex:-1};const s=this.tree.findIndexAtOffset(e),n=this.tree.findIndexAtOffset(e+t);return{startIndex:Math.max(0,s-i),endIndex:Math.min(r-1,n+i),overscanStartIndex:s,overscanEndIndex:n}}getVisibleItems(e,t,r,i){const s=this.getVisibleRange(e,t,r,i),n=[];for(let e=s.startIndex;e<=s.endIndex;e++)n.push({index:e,size:this.getItemSize(e),offset:this.getItemOffset(e)});return n}getScrollOffsetForIndex(e,t,r="start"){const i=this.getItemOffset(e),s=this.getItemSize(e);return"center"===r?Math.max(0,i-(t-s)/2):"end"===r?Math.max(0,i-t+s):Math.max(0,i)}}class a{constructor(){Object.defineProperty(this,"resizeObserver",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"measurements",{enumerable:!0,configurable:!0,writable:!0,value:new Map}),Object.defineProperty(this,"widthMeasurements",{enumerable:!0,configurable:!0,writable:!0,value:new Map}),Object.defineProperty(this,"observedElements",{enumerable:!0,configurable:!0,writable:!0,value:new WeakMap}),Object.defineProperty(this,"observedAxis",{enumerable:!0,configurable:!0,writable:!0,value:new WeakMap}),Object.defineProperty(this,"pendingUpdates",{enumerable:!0,configurable:!0,writable:!0,value:new Map}),Object.defineProperty(this,"pendingWidthUpdates",{enumerable:!0,configurable:!0,writable:!0,value:new Map}),Object.defineProperty(this,"rafId",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"onMeasure",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"onMeasureWidth",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"handleResize",{enumerable:!0,configurable:!0,writable:!0,value:e=>{for(const t of e){const e=t.target,r=this.observedElements.get(e);if(void 0===r)continue;if("width"===(this.observedAxis.get(e)??"height")){const e=Math.round(t.contentRect.width);this.widthMeasurements.get(r)!==e&&(this.widthMeasurements.set(r,e),this.pendingWidthUpdates.set(r,e));continue}const i=Math.round(t.contentRect.height);this.measurements.get(r)!==i&&(this.measurements.set(r,i),this.pendingUpdates.set(r,i))}this.flushPendingUpdates()}}),"undefined"!=typeof window&&"ResizeObserver"in window&&(this.resizeObserver=new ResizeObserver(this.handleResize))}startMeasuring(e,t){this.onMeasure=e,this.onMeasureWidth=t??null}observeItem(e,t,r="height"){t.dataset.virtualizeIndex=String(e),this.observedElements.set(t,e),this.observedAxis.set(t,r),this.resizeObserver?.observe(t),this.syncMeasure(e,t,r)}unobserveItem(e){this.resizeObserver?.unobserve(e),this.observedElements.delete(e),this.observedAxis.delete(e)}flushPendingUpdates(){null===this.rafId&&(this.rafId=requestAnimationFrame(()=>{this.pendingUpdates.forEach((e,t)=>{this.onMeasure?.(t,e)}),this.pendingUpdates.clear(),this.pendingWidthUpdates.forEach((e,t)=>{this.onMeasureWidth?.(t,e)}),this.pendingWidthUpdates.clear(),this.rafId=null}))}syncMeasure(e,t,r="height"){const i=t.getBoundingClientRect(),s="width"===r?i.width:i.height;if(s<=0)return;const n=Math.round(s);if("width"===r){if(this.widthMeasurements.get(e)===n)return;return this.widthMeasurements.set(e,n),void this.onMeasureWidth?.(e,n)}this.measurements.get(e)!==n&&(this.measurements.set(e,n),this.onMeasure?.(e,n))}stopMeasuring(){this.resizeObserver?.disconnect(),this.pendingUpdates.clear(),this.pendingWidthUpdates.clear(),null!==this.rafId&&cancelAnimationFrame(this.rafId)}getMeasurement(e){return this.measurements.get(e)}getWidthMeasurement(e){return this.widthMeasurements.get(e)}getAllMeasurements(){return new Map(this.measurements)}getAllWidthMeasurements(){return new Map(this.widthMeasurements)}clearPending(){this.pendingUpdates.clear(),this.pendingWidthUpdates.clear()}clearMeasurements(){this.measurements.clear(),this.widthMeasurements.clear()}destroy(){this.stopMeasuring(),this.measurements.clear(),this.pendingUpdates.clear(),this.widthMeasurements.clear(),this.pendingWidthUpdates.clear(),this.observedElements=new WeakMap,this.observedAxis=new WeakMap,this.onMeasure=null,this.onMeasureWidth=null}}const o=()=>{};function l(e){const{items:r,getItemKey:i,containerHeight:s,containerWidth:l,overscan:u=5,estimatedItemSize:c=35,axis:h="vertical",onScroll:d=o,onScrollEnd:f=o,stickyIndices:m,scrollEndDelay:g=150,autoMeasureContainer:p=!0}=e,b="horizontal"===h,w=t.useRef(m??[]),v=m?m.join(","):"";t.useEffect(()=>{w.current=m??[]},[v]);const y=t.useRef(null);null===y.current&&(y.current=new n(c));const x=t.useRef(null);null===x.current&&(x.current=new a);const M=t.useRef(null),I=t.useRef(null),[S,z]=t.useState({height:0,width:0});t.useEffect(()=>{if(!p)return;const e=M.current;if(!e||"undefined"==typeof ResizeObserver)return;const t=new ResizeObserver(e=>{const t=e[0];if(!t)return;const{height:r,width:i}=t.contentRect;z(e=>e.height===r&&e.width===i?e:{height:r,width:i})});return t.observe(e),()=>{t.disconnect()}},[p]);const O=s>0?s:S.height,R=l&&l>0?l:S.width,[E,j]=t.useState(0),[C,k]=t.useState(!1),[P,W]=t.useState("forward"),A=t.useRef(null),T=t.useRef(0),[H,N]=t.useState(0),[L,V]=t.useState([]);t.useEffect(()=>{const e=y.current;if(!O||0===r.length)return void V(e=>0===e.length?e:[]);const t=e.getVisibleItems(E,O,r.length,u),i=w.current,s=t.map(e=>({index:e.index,offset:e.offset,size:e.size,isSticky:i.includes(e.index)}));V(e=>{if(e.length===s.length){let t=!1;for(let r=0;r<e.length;r++){const i=e[r],n=s[r];if(i.index!==n.index||i.offset!==n.offset||i.size!==n.size||i.isSticky!==n.isSticky){t=!0;break}}if(!t)return e}return s})},[E,O,r.length,u,v,H]);const U=t.useCallback(e=>{const t=e.currentTarget,r=b?t.scrollLeft:t.scrollTop;if(r===T.current)return;const i=r>T.current?"forward":"reverse";T.current=r,W(i),j(r),k(!0),d(r,i),A.current&&clearTimeout(A.current),A.current=setTimeout(()=>{k(!1),f()},g)},[b,d,f,g]);t.useEffect(()=>{const e=M.current;if(e)return e.addEventListener("scroll",U,{passive:!0}),()=>{e.removeEventListener("scroll",U)}},[U]);const F=t.useCallback((e,t)=>{y.current.recordItemSize(e,t),N(e=>e+1)},[]);t.useEffect(()=>{const e=x.current;return()=>{e.stopMeasuring()}},[F]);const B=t.useCallback((e,t="start")=>{if(!O)return;const r=y.current.getScrollOffsetForIndex(e,O,t),i=M.current;i&&(b?i.scrollLeft=r:i.scrollTop=r)},[O,b]),$=t.useCallback(e=>{const t=M.current;t&&(b?t.scrollLeft=e:t.scrollTop=e),T.current=e,j(e)},[b]),K=t.useCallback(e=>{T.current=e,j(e)},[]),q=t.useCallback((e,t)=>{const r=y.current.getItemOffset(e),i=w.current.includes(e),s={position:i?"sticky":"absolute",zIndex:i?10:0};return b?{...s,top:0,left:i?0:r,height:R||"100%",width:t}:{...s,top:i?0:r,left:0,width:"100%",height:t}},[b,R]),D=t.useCallback(e=>{if(i){const t=r[e];if(void 0!==t)return i(e,t)}return e},[i,r]),G=t.useCallback(e=>{y.current.invalidateFrom(e),N(e=>e+1)},[]);t.useEffect(()=>()=>{A.current&&clearTimeout(A.current),x.current?.destroy()},[]);const J=t.useMemo(()=>y.current.getTotalSize(),[r.length,H,O]),_=t.useCallback((e,t)=>{x.current.observeItem(e,t)},[]),X=t.useCallback(e=>{x.current.unobserveItem(e)},[]);return{virtualItems:L,isScrolling:C,scrollOffset:E,scrollDirection:P,totalSize:J,scrollToItem:B,scrollToOffset:$,setScrollOffset:K,containerRef:M,innerRef:I,getItemStyle:q,recalculate:G,getItemKeyForIndex:D,observeItem:_,unobserveItem:X}}const u=t.forwardRef(({items:r,renderItem:i,itemWrapper:s,itemKey:n,height:a=400,width:o=500,itemSize:u,overscan:c=5,scrollDirection:h="forward",onScroll:d,className:f="",itemClassName:m="",style:g={},innerClassName:p="",innerStyle:b={},itemStyle:w={},estimatedItemSize:v=35,getItemSize:y,stickyIndices:x=[],onScrollEnd:M,innerRef:I,scrollOffsetRef:S,footer:z},O)=>{const{virtualItems:R,isScrolling:E,scrollOffset:j,totalSize:C,containerRef:k,innerRef:P,getItemStyle:W,observeItem:A,unobserveItem:T}=l({items:r,getItemKey:n,containerHeight:"number"==typeof a?a:400,containerWidth:"number"==typeof o?o:500,overscan:c,estimatedItemSize:v,onScroll:d,onScrollEnd:M,stickyIndices:x}),H=t.useRef(null),N=t.useRef(null);t.useImperativeHandle(O,()=>H.current),t.useImperativeHandle(I,()=>N.current),t.useEffect(()=>{S&&(S.current=j)},[j,S]);const L={height:a,width:o,overflow:"auto",position:"relative",...g},V={width:"100%",...b,position:"relative",height:C},U=(...e)=>e.filter(Boolean).join(" ").trim(),F=t.useRef(new Map);return t.useEffect(()=>()=>{F.current.forEach(e=>T(e)),F.current.clear()},[]),e.jsx("div",{ref:e=>{H.current=e,k.current=e},className:U("virtualize-container",f),style:L,onScroll:e=>{const t=e.target,r=i?.__scrollHandler;r&&r(e),d&&d(t.scrollTop,"auto")},children:e.jsxs("div",{ref:e=>{N.current=e,P.current=e},style:V,className:U("virtualize-inner",p),children:[R.map(a=>{const o=r[a.index],l=n?n(a.index,o):a.index,u=W(a.index,a.size),c={item:o,index:a.index,style:u,isScrolling:E},h=i(c);return s?e.jsx(t.Fragment,{children:s({item:o,index:a.index,style:u,children:h})},l):e.jsx("div",{ref:(d=a.index,e=>{const t=F.current.get(d);t&&t!==e&&(T(t),F.current.delete(d)),e&&(F.current.set(d,e),A(d,e))}),"data-virtualize-index":a.index,className:U("virtualize-item",m),style:{...w,...u,boxSizing:"border-box"},children:h},l);var d}),z&&e.jsx("div",{style:{position:"absolute",top:C,left:0,width:"100%"},children:z})]})})});u.displayName="VirtualList";class c{constructor(){Object.defineProperty(this,"positions",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"colHeights",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"rowOffsets",{enumerable:!0,configurable:!0,writable:!0,value:[0]}),Object.defineProperty(this,"currentRowMax",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"maxBottom",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"params",{enumerable:!0,configurable:!0,writable:!0,value:null})}sameParams(e){return!!this.params&&(this.params.cols===e.cols&&this.params.colWidth===e.colWidth&&this.params.gap===e.gap&&this.params.layout===e.layout&&this.params.rowHeight===e.rowHeight)}reset(e){this.positions=[],this.colHeights=new Array(e.cols).fill(0),this.rowOffsets=[0],this.currentRowMax=0,this.maxBottom=0,this.params=e}sizeOf(e,t){return"function"==typeof e?e(t):e}appendMasonry(e,t,r){for(let i=e;i<t;i++){const e=this.sizeOf(r.rowHeight,i);let t=0;for(let e=1;e<r.cols;e++)this.colHeights[e]<this.colHeights[t]&&(t=e);const s=t*(r.colWidth+r.gap),n=this.colHeights[t];this.positions.push({x:s,y:n,width:r.colWidth,height:e}),this.colHeights[t]+=e+r.gap,n+e>this.maxBottom&&(this.maxBottom=n+e)}}appendGrid(e,t,r){for(let i=e;i<t;i++){const e=Math.floor(i/r.cols),t=i%r.cols,s=this.sizeOf(r.rowHeight,i);for(;this.rowOffsets.length<=e;){const e=this.rowOffsets.length-1,t=e>=0?r.gap:0;this.rowOffsets.push(this.rowOffsets[e]+this.currentRowMax+t),this.currentRowMax=0}const n=this.rowOffsets[e],a=t*(r.colWidth+r.gap);this.positions.push({x:a,y:n,width:r.colWidth,height:s}),this.currentRowMax=Math.max(this.currentRowMax,s),n+s>this.maxBottom&&(this.maxBottom=n+s)}}sync(e,t){(!this.sameParams(t)||e<this.positions.length)&&this.reset(t);const r=this.positions.length;return r<e&&("masonry"===t.layout?this.appendMasonry(r,e,t):this.appendGrid(r,e,t)),this.positions}getTotalHeight(){return this.maxBottom}}const h=t.forwardRef(({items:r,renderItem:i,itemKey:s,height:n=600,width:a="100%",columnCount:o=3,rowHeight:l=200,columnWidth:u,layout:h="grid",overscan:d=5,gap:f=16,onScroll:m,onVisibleRangeChange:g,innerClassName:p,innerStyle:b,containerClassName:w,containerStyle:v,itemClassName:y,itemStyle:x},M)=>{const I=t.useRef(null);t.useImperativeHandle(M,()=>I.current);const[S,z]=t.useState(0),[O,R]=t.useState(!1),[E,j]=t.useState(0),C=t.useRef(null);t.useEffect(()=>{if(!I.current)return;const e=I.current,t=new ResizeObserver(e=>{for(const t of e){const e=t.contentRect.width;e>0&&j(e)}});return t.observe(e),()=>t.disconnect()},[]),t.useEffect(()=>()=>{C.current&&clearTimeout(C.current)},[]);const k=E>0&&r.length>0,P=t.useMemo(()=>{if("auto"===o){const e=200;return Math.max(1,Math.floor(E/(e+f)))}return Math.max(1,Number(o))},[o,E,f]),W=t.useMemo(()=>{if("number"==typeof u)return u;const e=f*Math.max(0,P-1);return Math.max(0,(E-e)/P)},[E,P,f,u]),A="grid"===h&&"number"==typeof l,T="string"==typeof n?parseInt(n):Number(n),H=l+f,N=t.useMemo(()=>{if(!A||!k)return 0;const e=Math.ceil(r.length/P);return e>0?e*H-f:0},[A,k,r.length,P,H,f]),L=t.useMemo(()=>{if(!A||!k)return{start:0,end:-1};const e=Math.max(0,Math.floor(S/H)),t=Math.max(0,Math.floor((S+T)/H)),i=Math.ceil(d/P);return{start:Math.max(0,(e-i)*P),end:Math.min(r.length-1,(t+i+1)*P-1)}},[A,k,S,T,H,d,P,r.length]),V=t.useCallback(e=>{const t=Math.floor(e/P);return{x:e%P*(W+f),y:t*H,width:W,height:l}},[P,W,f,H,l]),U=t.useRef(null);null===U.current&&(U.current=new c);const F=t.useMemo(()=>A||!k?[]:U.current.sync(r.length,{cols:P,colWidth:W,gap:f,layout:h,rowHeight:l}),[A,k,r.length,P,W,f,h,l]),B=t.useMemo(()=>A||!k?0:U.current.getTotalHeight(),[A,k,F]),$=t.useMemo(()=>{if(A||!F.length)return{start:0,end:-1};const e=S+T,t=F.length,r="masonry"===h?d+P:d;let i=0,s=t-1,n=0;for(;i<=s;){const e=i+s>>1;F[e].y+F[e].height>=S?(n=e,s=e-1):i=e+1}i=0,s=t-1;let a=t-1;for(;i<=s;){const t=i+s>>1;F[t].y<=e?(a=t,i=t+1):s=t-1}return{start:Math.max(0,n-r),end:Math.min(t-1,a+r)}},[A,F,S,T,d,h,P]),K=A?N:B,q=A?L:$,D=t.useCallback(e=>{const t=e.currentTarget;z(t.scrollTop),R(!0),m?.(t.scrollTop,t.scrollLeft),C.current&&clearTimeout(C.current),C.current=setTimeout(()=>R(!1),120)},[m]);t.useEffect(()=>{g?.(q.start,q.end)},[q,g]);const G=(...e)=>e.filter(Boolean).join(" ").trim(),J={height:"string"==typeof n?n:`${n}px`,width:"string"==typeof a?a:`${a}px`,overflowY:"auto",overflowX:"hidden",position:"relative",...v},_={position:"relative",height:K||1,width:"100%",...b};if(!k)return e.jsx("div",{ref:I,className:G("virtualize-grid-container",w),style:J,onScroll:D,children:e.jsx("div",{className:G("virtualize-grid-inner",p),style:_})});const X=[];for(let e=q.start;e<=q.end;e++)e>=0&&e<r.length&&X.push({index:e,key:s?.(e,r[e])??e});return e.jsx("div",{ref:I,className:G("virtualize-grid-container",w),style:J,onScroll:D,children:e.jsx("div",{className:G("virtualize-grid-inner",p),style:_,children:X.map(t=>{const s=r[t.index],n=A?V(t.index):F[t.index];if(!s||!n)return null;const a={...x,position:"absolute",top:`${n.y}px`,left:`${n.x}px`,width:`${n.width}px`,height:`${n.height}px`,boxSizing:"border-box"};return e.jsx("div",{"data-virtualize-index":t.index,className:G("virtualize-grid-item",y),style:a,children:i({item:s,index:t.index,isScrolling:O})},t.key)})})})});function d(e,t){return t?e:e.toLowerCase()}h.displayName="VirtualGrid";const f=new Map;exports.MeasurementSystem=a,exports.VirtualGrid=h,exports.VirtualList=u,exports.VirtualizationEngine=n,exports.useInfiniteScroll=function({onLoadMore:e,rootMargin:r="500px",isLoading:i=!1,enabled:s=!0,root:n}){const a=t.useRef(null),[o,l]=t.useState(!1),u=t.useRef(!1),c=t.useRef(e);return t.useEffect(()=>{c.current=e},[e]),t.useEffect(()=>{if(!s)return;const e=a.current;if(!e)return;if("undefined"==typeof window||!("IntersectionObserver"in window))return;const t=new IntersectionObserver(e=>{const t=e[0];t&&(l(t.isIntersecting),!t.isIntersecting||u.current||i||(u.current=!0,Promise.resolve(c.current()).finally(()=>{u.current=!1})))},{root:n?.current??null,rootMargin:r,threshold:0});return t.observe(e),()=>{t.disconnect()}},[s,r,i,n?.current]),{sentinelRef:a,isAtBottom:o,isLoading:i}},exports.useLazyLoad=function({threshold:e=.1,onVisible:r,root:i=null,rootMargin:s="0px",enabled:n=!0,once:a=!0}={}){const[o,l]=t.useState(!1),[u,c]=t.useState(null),h=t.useRef(null),d=t.useRef(r);return t.useEffect(()=>{d.current=r},[r]),t.useEffect(()=>{if(!n)return;const t=h.current;if(!t)return;if("undefined"==typeof window||!("IntersectionObserver"in window))return l(!0),void d.current?.();const r=new IntersectionObserver(([e])=>{c(e),e.isIntersecting?(l(!0),d.current?.(),a&&r.unobserve(e.target)):a||l(!1)},{threshold:e,root:i,rootMargin:s});return r.observe(t),()=>{r.disconnect()}},[e,i,s,n,a]),{ref:h,isVisible:o,entry:u}},exports.useScrollRestoration=function(e,r,{persist:i=!0,storageKey:s="virtualize-scroll-positions",storage:n,autoSave:a=!1,maxEntries:o=100,useRAF:l=!0,enabled:u=!0,onError:c}={}){const h=t.useRef(n??("undefined"!=typeof window&&"undefined"!=typeof document?window.localStorage:null));t.useEffect(()=>{if(u&&i&&h.current&&!(f.size>0))try{const e=h.current.getItem(s);if(!e)return;JSON.parse(e).forEach(e=>{f.set(e.key,e)})}catch(e){c?.(e)}},[u,i,s,c]);const d=t.useCallback(()=>{if(i&&h.current)try{const e=Array.from(f.values()).sort((e,t)=>t.timestamp-e.timestamp).slice(0,o);h.current.setItem(s,JSON.stringify(e))}catch(e){c?.(e)}},[i,s,o,c]),m=t.useCallback(()=>{if(!u)return;const t=r.current;if(!t)return;const i={key:e,top:t.scrollTop,left:t.scrollLeft,timestamp:Date.now()};f.set(e,i),d()},[e,r,u,d]),g=t.useCallback(()=>{if(!u)return;if(!r.current)return;const t=f.get(e);if(!t)return;const i=()=>{r.current&&(r.current.scrollTop=t.top,r.current.scrollLeft=t.left)};l?requestAnimationFrame(i):i()},[e,r,u,l]);return t.useEffect(()=>{u&&g()},[u,g]),t.useEffect(()=>{if(u)return()=>{m()}},[u,m]),t.useEffect(()=>{if(!u||!a||!r.current)return;const e=r.current,t=()=>{m()};return e.addEventListener("scroll",t,{passive:!0}),()=>{e.removeEventListener("scroll",t)}},[u,a,m,r]),{savePosition:m,restorePosition:g}},exports.useVirtualList=l,exports.useVirtualizedSearch=function({items:r,searchValue:i,searchFields:s,caseSensitive:n=!1,deferSearch:a=!0,matcher:o}){const l=t.useMemo(()=>d(i.trim(),n),[i,n]),u=t.useDeferredValue(l),c=a?u:l,h=a&&u!==l,f=t.useCallback(e=>!c||(o?o(e,c):function(e,t,r,i){return r.some(r=>{const s=e[r];return null!=s&&d(String(s).trim(),i).includes(t)})}(e,c,s,n)),[c,o,s,n]),m=t.useMemo(()=>c?r.filter(f):[...r],[r,c,f]),g=t.useCallback(e=>f(e),[f]),p=t.useMemo(()=>{if(!l)return null;const e=l.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");return new RegExp(`(${e})`,n?"g":"gi")},[l,n]),b=t.useCallback(r=>{if(!r||!p)return r;return r.split(p).map((r,i)=>i%2==1?e.jsx("mark",{children:r},i):e.jsx(t.Fragment,{children:r},i))},[p]);return{filteredItems:m,resultCount:m.length,query:c,hasMatch:g,isSearching:h,highlightMatch:b}};
|
|
2
2
|
//# sourceMappingURL=index.cjs.js.map
|
package/dist/index.cjs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs.js","sources":["../src/core/FenwickTree.ts","../src/core/VirtualizationEngine.ts","../src/core/MeasurementSystem.ts","../src/hooks/useVirtualList.ts","../src/components/VirtualList.tsx","../src/core/GridLayoutEngine.ts","../src/components/VirtualGrid.tsx","../src/hooks/useVirtualizedSearch.tsx","../src/hooks/useScrollRestoration.ts","../src/hooks/useInfiniteScroll.ts","../src/hooks/useLazyLoad.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null],"names":["lowbit","i","nextPow2","x","p","FenwickTree","constructor","initialCount","Object","defineProperty","this","capacity","Math","max","tree","Array","fill","raw","resize","size","n","rebuild","parent","count","defaultValue","newCapacity","oldRaw","length","update","index","value","delta","getValue","prefixSum","sum","min","total","findIndexAtOffset","target","pos","remaining","pw","next","resetAll","VirtualizationEngine","estimatedItemSize","setItemCount","itemCount","recordItemSize","invalidateFrom","fromIndex","undefined","getItemSize","getItemOffset","getTotalSize","getVisibleRange","scrollOffset","containerSize","overscan","startIndex","endIndex","overscanStartIndex","overscanEndIndex","start","end","getVisibleItems","range","items","push","offset","getScrollOffsetForIndex","alignment","MeasurementSystem","Map","WeakMap","entries","entry","element","observedElements","get","observedAxis","widthSize","round","contentRect","width","widthMeasurements","set","pendingWidthUpdates","height","measurements","pendingUpdates","flushPendingUpdates","window","resizeObserver","ResizeObserver","handleResize","startMeasuring","container","onMeasure","onMeasureWidth","querySelectorAll","forEach","item","indexAttr","dataset","virtualizeIndex","Number","observeItem","axis","String","observe","syncMeasure","unobserveItem","unobserve","delete","rafId","requestAnimationFrame","clear","rect","getBoundingClientRect","rounded","stopMeasuring","disconnect","cancelAnimationFrame","getMeasurement","getWidthMeasurement","getAllMeasurements","getAllWidthMeasurements","clearPending","clearMeasurements","destroy","noop","useVirtualList","params","getItemKey","containerHeight","containerWidth","onScroll","onScrollEnd","stickyIndices","scrollEndDelay","autoMeasureContainer","isHorizontal","stickyIndicesRef","useRef","stickyKey","join","useEffect","current","engineRef","measurementRef","containerRef","innerRef","measuredViewport","setMeasuredViewport","useState","node","observer","prev","resolvedViewportSize","resolvedCrossAxisSize","setScrollOffsetState","isScrolling","setIsScrolling","scrollDirection","setScrollDirection","scrollTimeoutRef","lastScrollOffsetRef","measurementVersion","setMeasurementVersion","virtualItems","setVirtualItems","engine","visibleItems","sticky","nextVirtualItems","map","isSticky","includes","changed","prevItem","nextItem","handleScrollEvent","useCallback","e","currentTarget","newScrollOffset","scrollLeft","scrollTop","direction","clearTimeout","setTimeout","addEventListener","passive","removeEventListener","handleItemMeasure","v","measurement","scrollToItem","scrollToOffset","setScrollOffset","getItemStyle","isStickyItem","base","position","zIndex","top","left","getItemKeyForIndex","recalculate","totalSize","useMemo","VirtualList","forwardRef","renderItem","itemWrapper","itemKey","itemSize","className","itemClassName","style","innerClassName","innerStyle","itemStyle","scrollOffsetRef","footer","internalContainerRef","internalInnerRef","mergedContainerRef","mergedInnerRef","useImperativeHandle","containerStyle","overflow","innerStyleComputed","cx","parts","filter","Boolean","trim","_jsx","ref","el","handler","__scrollHandler","_jsxs","virtualItem","key","virtualStyle","renderProps","content","React","Fragment","children","boxSizing","displayName","GridLayoutEngine","sameParams","cols","colWidth","gap","layout","rowHeight","reset","positions","colHeights","rowOffsets","currentRowMax","maxBottom","sizeOf","appendMasonry","h","minCol","c","y","appendGrid","row","floor","col","prevRow","gapBefore","sync","from","getTotalHeight","VirtualGrid","columnCount","columnWidth","onVisibleRangeChange","containerClassName","setScrollTop","setContainerWidth","scrollTimeout","w","isReady","minColWidth","totalGapWidth","isFastPath","heightNumForRange","parseInt","fastRowStep","fastTotalHeight","numRows","ceil","fastVisibleRange","startRow","endRow","overscanRows","fastPositionOf","gridEngineRef","generalPositions","generalTotalHeight","generalVisibleRange","scrollBottom","effectiveOverscan","lo","hi","startIdx","mid","endIdx","totalHeight","visibleRange","handleScroll","containerStyleComputed","overflowY","overflowX","vItem","computedItemStyle","normalize","caseSensitive","toLowerCase","positionCache","onLoadMore","rootMargin","isLoading","enabled","root","sentinelRef","isAtBottom","setIsAtBottom","loadingRef","onLoadMoreRef","sentinel","IntersectionObserver","isIntersecting","Promise","resolve","finally","threshold","onVisible","once","isVisible","setIsVisible","setEntry","elementRef","callbackRef","observerEntry","persist","storageKey","storage","autoSave","maxEntries","useRAF","onError","storageRef","document","localStorage","getItem","JSON","parse","error","persistCache","values","sort","a","b","timestamp","slice","setItem","stringify","savePosition","Date","now","restorePosition","restore","searchValue","searchFields","deferSearch","matcher","normalizedQuery","deferredQuery","useDeferredValue","activeQuery","isSearching","itemMatcher","query","some","field","defaultMatcher","filteredItems","hasMatch","highlightRegex","escaped","replace","RegExp","highlightMatch","text","split","part","resultCount"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.cjs.js","sources":["../src/core/FenwickTree.ts","../src/core/VirtualizationEngine.ts","../src/core/MeasurementSystem.ts","../src/hooks/useVirtualList.ts","../src/components/VirtualList.tsx","../src/core/GridLayoutEngine.ts","../src/components/VirtualGrid.tsx","../src/hooks/useVirtualizedSearch.tsx","../src/hooks/useScrollRestoration.ts","../src/hooks/useInfiniteScroll.ts","../src/hooks/useLazyLoad.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null],"names":["lowbit","i","nextPow2","x","p","FenwickTree","constructor","initialCount","Object","defineProperty","this","capacity","Math","max","tree","Array","fill","raw","resize","size","n","rebuild","parent","count","defaultValue","newCapacity","oldRaw","length","update","index","value","delta","getValue","prefixSum","sum","min","total","findIndexAtOffset","target","pos","remaining","pw","next","resetAll","VirtualizationEngine","estimatedItemSize","setItemCount","itemCount","recordItemSize","invalidateFrom","fromIndex","undefined","getItemSize","getItemOffset","getTotalSize","getVisibleRange","scrollOffset","containerSize","overscan","startIndex","endIndex","overscanStartIndex","overscanEndIndex","start","end","getVisibleItems","range","items","push","offset","getScrollOffsetForIndex","alignment","MeasurementSystem","Map","WeakMap","entries","entry","element","observedElements","get","observedAxis","widthSize","round","contentRect","width","widthMeasurements","set","pendingWidthUpdates","height","measurements","pendingUpdates","flushPendingUpdates","window","resizeObserver","ResizeObserver","handleResize","startMeasuring","onMeasure","onMeasureWidth","observeItem","axis","dataset","virtualizeIndex","String","observe","syncMeasure","unobserveItem","unobserve","delete","rafId","requestAnimationFrame","forEach","clear","rect","getBoundingClientRect","rounded","stopMeasuring","disconnect","cancelAnimationFrame","getMeasurement","getWidthMeasurement","getAllMeasurements","getAllWidthMeasurements","clearPending","clearMeasurements","destroy","noop","useVirtualList","params","getItemKey","containerHeight","containerWidth","onScroll","onScrollEnd","stickyIndices","scrollEndDelay","autoMeasureContainer","isHorizontal","stickyIndicesRef","useRef","stickyKey","join","useEffect","current","engineRef","measurementRef","containerRef","innerRef","measuredViewport","setMeasuredViewport","useState","node","observer","prev","resolvedViewportSize","resolvedCrossAxisSize","setScrollOffsetState","isScrolling","setIsScrolling","scrollDirection","setScrollDirection","scrollTimeoutRef","lastScrollOffsetRef","measurementVersion","setMeasurementVersion","virtualItems","setVirtualItems","engine","visibleItems","sticky","nextVirtualItems","map","item","isSticky","includes","changed","prevItem","nextItem","handleScrollEvent","useCallback","e","currentTarget","newScrollOffset","scrollLeft","scrollTop","direction","clearTimeout","setTimeout","container","addEventListener","passive","removeEventListener","handleItemMeasure","v","measurement","scrollToItem","scrollToOffset","setScrollOffset","getItemStyle","isStickyItem","base","position","zIndex","top","left","getItemKeyForIndex","recalculate","totalSize","useMemo","VirtualList","forwardRef","renderItem","itemWrapper","itemKey","itemSize","className","itemClassName","style","innerClassName","innerStyle","itemStyle","scrollOffsetRef","footer","internalContainerRef","internalInnerRef","mergedContainerRef","mergedInnerRef","useImperativeHandle","containerStyle","overflow","innerStyleComputed","cx","parts","filter","Boolean","trim","observedElementsRef","el","_jsx","ref","handler","__scrollHandler","_jsxs","virtualItem","key","virtualStyle","renderProps","content","React","Fragment","children","boxSizing","displayName","GridLayoutEngine","sameParams","cols","colWidth","gap","layout","rowHeight","reset","positions","colHeights","rowOffsets","currentRowMax","maxBottom","sizeOf","appendMasonry","h","minCol","c","y","appendGrid","row","floor","col","prevRow","gapBefore","sync","from","getTotalHeight","VirtualGrid","columnCount","columnWidth","onVisibleRangeChange","containerClassName","setScrollTop","setContainerWidth","scrollTimeout","w","isReady","minColWidth","Number","totalGapWidth","isFastPath","heightNumForRange","parseInt","fastRowStep","fastTotalHeight","numRows","ceil","fastVisibleRange","startRow","endRow","overscanRows","fastPositionOf","gridEngineRef","generalPositions","generalTotalHeight","generalVisibleRange","scrollBottom","effectiveOverscan","lo","hi","startIdx","mid","endIdx","totalHeight","visibleRange","handleScroll","containerStyleComputed","overflowY","overflowX","vItem","computedItemStyle","normalize","caseSensitive","toLowerCase","positionCache","onLoadMore","rootMargin","isLoading","enabled","root","sentinelRef","isAtBottom","setIsAtBottom","loadingRef","onLoadMoreRef","sentinel","IntersectionObserver","isIntersecting","Promise","resolve","finally","threshold","onVisible","once","isVisible","setIsVisible","setEntry","elementRef","callbackRef","observerEntry","persist","storageKey","storage","autoSave","maxEntries","useRAF","onError","storageRef","document","localStorage","getItem","JSON","parse","error","persistCache","values","sort","a","b","timestamp","slice","setItem","stringify","savePosition","Date","now","restorePosition","restore","searchValue","searchFields","deferSearch","matcher","normalizedQuery","deferredQuery","useDeferredValue","activeQuery","isSearching","itemMatcher","query","some","field","defaultMatcher","filteredItems","hasMatch","highlightRegex","escaped","replace","RegExp","highlightMatch","text","split","part","resultCount"],"mappings":"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"}
|
package/dist/index.esm.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsx as e,jsxs as t}from"react/jsx-runtime";import r,{useRef as i,useEffect as n,useState as s,useCallback as o,useMemo as a,forwardRef as l,useImperativeHandle as c,useDeferredValue as u}from"react";function h(e){return e&-e}function d(e){let t=1;for(;t<e;)t<<=1;return t}class f{constructor(e=0){Object.defineProperty(this,"capacity",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"tree",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"raw",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"n",{enumerable:!0,configurable:!0,writable:!0,value:0}),this.capacity=d(Math.max(1,e)),this.tree=new Array(this.capacity+1).fill(0),this.raw=new Array(this.capacity).fill(0),e>0&&this.resize(e,0)}size(){return this.n}rebuild(){this.tree=new Array(this.capacity+1).fill(0);for(let e=1;e<=this.capacity;e++){this.tree[e]+=this.raw[e-1]??0;const t=e+h(e);t<=this.capacity&&(this.tree[t]+=this.tree[e])}}resize(e,t){if(e>this.capacity){const r=d(e),i=this.raw;this.raw=new Array(r).fill(0);for(let e=0;e<i.length;e++)this.raw[e]=i[e];for(let r=this.n;r<e;r++)this.raw[r]=t;return this.capacity=r,this.rebuild(),void(this.n=e)}if(e>this.n){for(let r=this.n;r<e;r++)this.update(r,t);this.n=e}else if(e<this.n){for(let t=e;t<this.n;t++)this.update(t,0);this.n=e}}update(e,t){if(e<0||e>=this.capacity)return;const r=t-(this.raw[e]??0);if(0!==r){this.raw[e]=t;for(let t=e+1;t<=this.capacity;t+=h(t))this.tree[t]+=r}}getValue(e){return this.raw[e]??0}prefixSum(e){let t=0;for(let r=Math.min(e,this.n);r>0;r-=h(r))t+=this.tree[r];return t}total(){return this.prefixSum(this.n)}findIndexAtOffset(e){if(0===this.n)return 0;let t=0,r=e;for(let e=this.capacity;e>0;e>>=1){const i=t+e;i<=this.capacity&&this.tree[i]<=r&&(t=i,r-=this.tree[i])}return Math.min(t,this.n-1)}resetAll(e){for(let e=0;e<this.n;e++)this.raw[e]=0;this.rebuild();for(let t=0;t<this.n;t++)this.update(t,e)}}class m{constructor(e=35){Object.defineProperty(this,"tree",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"estimatedItemSize",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"itemCount",{enumerable:!0,configurable:!0,writable:!0,value:0}),this.estimatedItemSize=e,this.tree=new f(0)}setItemCount(e){this.itemCount!==e&&(this.tree.resize(e,this.estimatedItemSize),this.itemCount=e)}recordItemSize(e,t){e<0||e>=this.itemCount||this.tree.update(e,t)}invalidateFrom(e){if(void 0===e)return void this.tree.resetAll(this.estimatedItemSize);for(let t=Math.max(0,e);t<this.itemCount;t++)this.tree.update(t,this.estimatedItemSize)}getItemSize(e){return e<0||e>=this.itemCount?this.estimatedItemSize:this.tree.getValue(e)}getItemOffset(e){return this.tree.prefixSum(Math.max(0,e))}getTotalSize(){return this.tree.total()}getVisibleRange(e,t,r,i=5){if(this.setItemCount(r),0===r)return{startIndex:0,endIndex:-1,overscanStartIndex:0,overscanEndIndex:-1};const n=this.tree.findIndexAtOffset(e),s=this.tree.findIndexAtOffset(e+t);return{startIndex:Math.max(0,n-i),endIndex:Math.min(r-1,s+i),overscanStartIndex:n,overscanEndIndex:s}}getVisibleItems(e,t,r,i){const n=this.getVisibleRange(e,t,r,i),s=[];for(let e=n.startIndex;e<=n.endIndex;e++)s.push({index:e,size:this.getItemSize(e),offset:this.getItemOffset(e)});return s}getScrollOffsetForIndex(e,t,r="start"){const i=this.getItemOffset(e),n=this.getItemSize(e);return"center"===r?Math.max(0,i-(t-n)/2):"end"===r?Math.max(0,i-t+n):Math.max(0,i)}}class g{constructor(){Object.defineProperty(this,"resizeObserver",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"measurements",{enumerable:!0,configurable:!0,writable:!0,value:new Map}),Object.defineProperty(this,"widthMeasurements",{enumerable:!0,configurable:!0,writable:!0,value:new Map}),Object.defineProperty(this,"observedElements",{enumerable:!0,configurable:!0,writable:!0,value:new WeakMap}),Object.defineProperty(this,"observedAxis",{enumerable:!0,configurable:!0,writable:!0,value:new WeakMap}),Object.defineProperty(this,"pendingUpdates",{enumerable:!0,configurable:!0,writable:!0,value:new Map}),Object.defineProperty(this,"pendingWidthUpdates",{enumerable:!0,configurable:!0,writable:!0,value:new Map}),Object.defineProperty(this,"rafId",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"onMeasure",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"onMeasureWidth",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"handleResize",{enumerable:!0,configurable:!0,writable:!0,value:e=>{for(const t of e){const e=t.target,r=this.observedElements.get(e);if(void 0===r)continue;if("width"===(this.observedAxis.get(e)??"height")){const e=Math.round(t.contentRect.width);this.widthMeasurements.get(r)!==e&&(this.widthMeasurements.set(r,e),this.pendingWidthUpdates.set(r,e));continue}const i=Math.round(t.contentRect.height);this.measurements.get(r)!==i&&(this.measurements.set(r,i),this.pendingUpdates.set(r,i))}this.flushPendingUpdates()}}),"undefined"!=typeof window&&"ResizeObserver"in window&&(this.resizeObserver=new ResizeObserver(this.handleResize))}startMeasuring(e,t,r){this.onMeasure=t,this.onMeasureWidth=r??null;e.querySelectorAll("[data-virtualize-index]").forEach(e=>{const t=e.dataset.virtualizeIndex;if(void 0===t)return;const r=Number(t);this.observeItem(r,e)})}observeItem(e,t,r="height"){t.dataset.virtualizeIndex=String(e),this.observedElements.set(t,e),this.observedAxis.set(t,r),this.resizeObserver?.observe(t),this.syncMeasure(e,t,r)}unobserveItem(e){this.resizeObserver?.unobserve(e),this.observedElements.delete(e),this.observedAxis.delete(e)}flushPendingUpdates(){null===this.rafId&&(this.rafId=requestAnimationFrame(()=>{this.pendingUpdates.forEach((e,t)=>{this.onMeasure?.(t,e)}),this.pendingUpdates.clear(),this.pendingWidthUpdates.forEach((e,t)=>{this.onMeasureWidth?.(t,e)}),this.pendingWidthUpdates.clear(),this.rafId=null}))}syncMeasure(e,t,r="height"){const i=t.getBoundingClientRect(),n="width"===r?i.width:i.height;if(n<=0)return;const s=Math.round(n);if("width"===r){if(this.widthMeasurements.get(e)===s)return;return this.widthMeasurements.set(e,s),void this.onMeasureWidth?.(e,s)}this.measurements.get(e)!==s&&(this.measurements.set(e,s),this.onMeasure?.(e,s))}stopMeasuring(){this.resizeObserver?.disconnect(),this.pendingUpdates.clear(),this.pendingWidthUpdates.clear(),null!==this.rafId&&cancelAnimationFrame(this.rafId)}getMeasurement(e){return this.measurements.get(e)}getWidthMeasurement(e){return this.widthMeasurements.get(e)}getAllMeasurements(){return new Map(this.measurements)}getAllWidthMeasurements(){return new Map(this.widthMeasurements)}clearPending(){this.pendingUpdates.clear(),this.pendingWidthUpdates.clear()}clearMeasurements(){this.measurements.clear(),this.widthMeasurements.clear()}destroy(){this.stopMeasuring(),this.measurements.clear(),this.pendingUpdates.clear(),this.widthMeasurements.clear(),this.pendingWidthUpdates.clear(),this.observedElements=new WeakMap,this.observedAxis=new WeakMap,this.onMeasure=null,this.onMeasureWidth=null}}const p=()=>{};function b(e){const{items:t,getItemKey:r,containerHeight:l,containerWidth:c,overscan:u=5,estimatedItemSize:h=35,axis:d="vertical",onScroll:f=p,onScrollEnd:b=p,stickyIndices:w,scrollEndDelay:v=150,autoMeasureContainer:y=!0}=e,x="horizontal"===d,M=i(w??[]),I=w?w.join(","):"";n(()=>{M.current=w??[]},[I]);const z=i(null);null===z.current&&(z.current=new m(h));const O=i(null);null===O.current&&(O.current=new g);const S=i(null),P=i(null),[R,W]=s({height:0,width:0});n(()=>{if(!y)return;const e=S.current;if(!e||"undefined"==typeof ResizeObserver)return;const t=new ResizeObserver(e=>{const t=e[0];if(!t)return;const{height:r,width:i}=t.contentRect;W(e=>e.height===r&&e.width===i?e:{height:r,width:i})});return t.observe(e),()=>{t.disconnect()}},[y]);const j=l>0?l:R.height,A=c&&c>0?c:R.width,[E,T]=s(0),[N,C]=s(!1),[k,H]=s("forward"),U=i(null),L=i(0),[F,V]=s(0),[B,$]=s([]);n(()=>{const e=z.current;if(!j||0===t.length)return void $(e=>0===e.length?e:[]);const r=e.getVisibleItems(E,j,t.length,u),i=M.current,n=r.map(e=>({index:e.index,offset:e.offset,size:e.size,isSticky:i.includes(e.index)}));$(e=>{if(e.length===n.length){let t=!1;for(let r=0;r<e.length;r++){const i=e[r],s=n[r];if(i.index!==s.index||i.offset!==s.offset||i.size!==s.size||i.isSticky!==s.isSticky){t=!0;break}}if(!t)return e}return n})},[E,j,t.length,u,I,F]);const K=o(e=>{const t=e.currentTarget,r=x?t.scrollLeft:t.scrollTop;if(r===L.current)return;const i=r>L.current?"forward":"reverse";L.current=r,H(i),T(r),C(!0),f(r,i),U.current&&clearTimeout(U.current),U.current=setTimeout(()=>{C(!1),b()},v)},[x,f,b,v]);n(()=>{const e=S.current;if(e)return e.addEventListener("scroll",K,{passive:!0}),()=>{e.removeEventListener("scroll",K)}},[K]);const q=o((e,t)=>{z.current.recordItemSize(e,t),V(e=>e+1)},[]);n(()=>{const e=S.current,t=O.current;return e&&t.startMeasuring(e,q),()=>{t.stopMeasuring()}},[q]);const D=o((e,t="start")=>{if(!j)return;const r=z.current.getScrollOffsetForIndex(e,j,t),i=S.current;i&&(x?i.scrollLeft=r:i.scrollTop=r)},[j,x]),G=o(e=>{const t=S.current;t&&(x?t.scrollLeft=e:t.scrollTop=e),L.current=e,T(e)},[x]),J=o(e=>{L.current=e,T(e)},[]),_=o((e,t)=>{const r=z.current.getItemOffset(e),i=M.current.includes(e),n={position:i?"sticky":"absolute",zIndex:i?10:0};return x?{...n,top:0,left:i?0:r,height:A||"100%",width:t}:{...n,top:i?0:r,left:0,width:"100%",height:t}},[x,A]),X=o(e=>{if(r){const i=t[e];if(void 0!==i)return r(e,i)}return e},[r,t]),Y=o(e=>{z.current.invalidateFrom(e),V(e=>e+1)},[]);n(()=>()=>{U.current&&clearTimeout(U.current),O.current?.destroy()},[]);const Q=a(()=>z.current.getTotalSize(),[t.length,F,j]);return{virtualItems:B,isScrolling:N,scrollOffset:E,scrollDirection:k,totalSize:Q,scrollToItem:D,scrollToOffset:G,setScrollOffset:J,containerRef:S,innerRef:P,getItemStyle:_,recalculate:Y,getItemKeyForIndex:X}}const w=l(({items:s,renderItem:o,itemWrapper:a,itemKey:l,height:u=400,width:h=500,itemSize:d,overscan:f=5,scrollDirection:m="forward",onScroll:g,className:p="",itemClassName:w="",style:v={},innerClassName:y="",innerStyle:x={},itemStyle:M={},estimatedItemSize:I=35,getItemSize:z,stickyIndices:O=[],onScrollEnd:S,innerRef:P,scrollOffsetRef:R,footer:W},j)=>{const{virtualItems:A,isScrolling:E,scrollOffset:T,totalSize:N,containerRef:C,innerRef:k,getItemStyle:H}=b({items:s,getItemKey:l,containerHeight:"number"==typeof u?u:400,containerWidth:"number"==typeof h?h:500,overscan:f,estimatedItemSize:I,onScroll:g,onScrollEnd:S,stickyIndices:O}),U=i(null),L=i(null);c(j,()=>U.current),c(P,()=>L.current),n(()=>{R&&(R.current=T)},[T,R]);const F={height:u,width:h,overflow:"auto",position:"relative",...v},V={width:"100%",...x,position:"relative",height:N},B=(...e)=>e.filter(Boolean).join(" ").trim();return e("div",{ref:e=>{U.current=e,C.current=e},className:B("virtualize-container",p),style:F,onScroll:e=>{const t=e.target,r=o?.__scrollHandler;r&&r(e),g&&g(t.scrollTop,"auto")},children:t("div",{ref:e=>{L.current=e,k.current=e},style:V,className:B("virtualize-inner",y),children:[A.map(t=>{const i=s[t.index],n=l?l(t.index,i):t.index,c=H(t.index,t.size),u={item:i,index:t.index,style:c,isScrolling:E},h=o(u);return a?e(r.Fragment,{children:a({item:i,index:t.index,style:c,children:h})},n):e("div",{"data-virtualize-index":t.index,className:B("virtualize-item",w),style:{...M,...c,boxSizing:"border-box"},children:h},n)}),W&&e("div",{style:{position:"absolute",top:N,left:0,width:"100%"},children:W})]})})});w.displayName="VirtualList";class v{constructor(){Object.defineProperty(this,"positions",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"colHeights",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"rowOffsets",{enumerable:!0,configurable:!0,writable:!0,value:[0]}),Object.defineProperty(this,"currentRowMax",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"maxBottom",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"params",{enumerable:!0,configurable:!0,writable:!0,value:null})}sameParams(e){return!!this.params&&(this.params.cols===e.cols&&this.params.colWidth===e.colWidth&&this.params.gap===e.gap&&this.params.layout===e.layout&&this.params.rowHeight===e.rowHeight)}reset(e){this.positions=[],this.colHeights=new Array(e.cols).fill(0),this.rowOffsets=[0],this.currentRowMax=0,this.maxBottom=0,this.params=e}sizeOf(e,t){return"function"==typeof e?e(t):e}appendMasonry(e,t,r){for(let i=e;i<t;i++){const e=this.sizeOf(r.rowHeight,i);let t=0;for(let e=1;e<r.cols;e++)this.colHeights[e]<this.colHeights[t]&&(t=e);const n=t*(r.colWidth+r.gap),s=this.colHeights[t];this.positions.push({x:n,y:s,width:r.colWidth,height:e}),this.colHeights[t]+=e+r.gap,s+e>this.maxBottom&&(this.maxBottom=s+e)}}appendGrid(e,t,r){for(let i=e;i<t;i++){const e=Math.floor(i/r.cols),t=i%r.cols,n=this.sizeOf(r.rowHeight,i);for(;this.rowOffsets.length<=e;){const e=this.rowOffsets.length-1,t=e>=0?r.gap:0;this.rowOffsets.push(this.rowOffsets[e]+this.currentRowMax+t),this.currentRowMax=0}const s=this.rowOffsets[e],o=t*(r.colWidth+r.gap);this.positions.push({x:o,y:s,width:r.colWidth,height:n}),this.currentRowMax=Math.max(this.currentRowMax,n),s+n>this.maxBottom&&(this.maxBottom=s+n)}}sync(e,t){(!this.sameParams(t)||e<this.positions.length)&&this.reset(t);const r=this.positions.length;return r<e&&("masonry"===t.layout?this.appendMasonry(r,e,t):this.appendGrid(r,e,t)),this.positions}getTotalHeight(){return this.maxBottom}}const y=l(({items:t,renderItem:r,itemKey:l,height:u=600,width:h="100%",columnCount:d=3,rowHeight:f=200,columnWidth:m,layout:g="grid",overscan:p=5,gap:b=16,onScroll:w,onVisibleRangeChange:y,innerClassName:x,innerStyle:M,containerClassName:I,containerStyle:z,itemClassName:O,itemStyle:S},P)=>{const R=i(null);c(P,()=>R.current);const[W,j]=s(0),[A,E]=s(!1),[T,N]=s(0),C=i(null);n(()=>{if(!R.current)return;const e=R.current,t=new ResizeObserver(e=>{for(const t of e){const e=t.contentRect.width;e>0&&N(e)}});return t.observe(e),()=>t.disconnect()},[]),n(()=>()=>{C.current&&clearTimeout(C.current)},[]);const k=T>0&&t.length>0,H=a(()=>{if("auto"===d){const e=200;return Math.max(1,Math.floor(T/(e+b)))}return Math.max(1,Number(d))},[d,T,b]),U=a(()=>{if("number"==typeof m)return m;const e=b*Math.max(0,H-1);return Math.max(0,(T-e)/H)},[T,H,b,m]),L="grid"===g&&"number"==typeof f,F="string"==typeof u?parseInt(u):Number(u),V=f+b,B=a(()=>{if(!L||!k)return 0;const e=Math.ceil(t.length/H);return e>0?e*V-b:0},[L,k,t.length,H,V,b]),$=a(()=>{if(!L||!k)return{start:0,end:-1};const e=Math.max(0,Math.floor(W/V)),r=Math.max(0,Math.floor((W+F)/V)),i=Math.ceil(p/H);return{start:Math.max(0,(e-i)*H),end:Math.min(t.length-1,(r+i+1)*H-1)}},[L,k,W,F,V,p,H,t.length]),K=o(e=>{const t=Math.floor(e/H);return{x:e%H*(U+b),y:t*V,width:U,height:f}},[H,U,b,V,f]),q=i(null);null===q.current&&(q.current=new v);const D=a(()=>L||!k?[]:q.current.sync(t.length,{cols:H,colWidth:U,gap:b,layout:g,rowHeight:f}),[L,k,t.length,H,U,b,g,f]),G=a(()=>L||!k?0:q.current.getTotalHeight(),[L,k,D]),J=a(()=>{if(L||!D.length)return{start:0,end:-1};const e=W+F,t=D.length,r="masonry"===g?p+H:p;let i=0,n=t-1,s=0;for(;i<=n;){const e=i+n>>1;D[e].y+D[e].height>=W?(s=e,n=e-1):i=e+1}i=0,n=t-1;let o=t-1;for(;i<=n;){const t=i+n>>1;D[t].y<=e?(o=t,i=t+1):n=t-1}return{start:Math.max(0,s-r),end:Math.min(t-1,o+r)}},[L,D,W,F,p,g,H]),_=L?B:G,X=L?$:J,Y=o(e=>{const t=e.currentTarget;j(t.scrollTop),E(!0),w?.(t.scrollTop,t.scrollLeft),C.current&&clearTimeout(C.current),C.current=setTimeout(()=>E(!1),120)},[w]);n(()=>{y?.(X.start,X.end)},[X,y]);const Q=(...e)=>e.filter(Boolean).join(" ").trim(),Z={height:"string"==typeof u?u:`${u}px`,width:"string"==typeof h?h:`${h}px`,overflowY:"auto",overflowX:"hidden",position:"relative",...z},ee={position:"relative",height:_||1,width:"100%",...M};if(!k)return e("div",{ref:R,className:Q("virtualize-grid-container",I),style:Z,onScroll:Y,children:e("div",{className:Q("virtualize-grid-inner",x),style:ee})});const te=[];for(let e=X.start;e<=X.end;e++)e>=0&&e<t.length&&te.push({index:e,key:l?.(e,t[e])??e});return e("div",{ref:R,className:Q("virtualize-grid-container",I),style:Z,onScroll:Y,children:e("div",{className:Q("virtualize-grid-inner",x),style:ee,children:te.map(i=>{const n=t[i.index],s=L?K(i.index):D[i.index];if(!n||!s)return null;const o={...S,position:"absolute",top:`${s.y}px`,left:`${s.x}px`,width:`${s.width}px`,height:`${s.height}px`,boxSizing:"border-box"};return e("div",{"data-virtualize-index":i.index,className:Q("virtualize-grid-item",O),style:o,children:r({item:n,index:i.index,isScrolling:A})},i.key)})})})});function x(e,t){return t?e:e.toLowerCase()}function M({items:t,searchValue:i,searchFields:n,caseSensitive:s=!1,deferSearch:l=!0,matcher:c}){const h=a(()=>x(i.trim(),s),[i,s]),d=u(h),f=l?d:h,m=l&&d!==h,g=o(e=>!f||(c?c(e,f):function(e,t,r,i){return r.some(r=>{const n=e[r];return null!=n&&x(String(n).trim(),i).includes(t)})}(e,f,n,s)),[f,c,n,s]),p=a(()=>f?t.filter(g):[...t],[t,f,g]),b=o(e=>g(e),[g]),w=a(()=>{if(!h)return null;const e=h.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");return new RegExp(`(${e})`,s?"g":"gi")},[h,s]),v=o(t=>{if(!t||!w)return t;return t.split(w).map((t,i)=>e(i%2==1?"mark":r.Fragment,{children:t},i))},[w]);return{filteredItems:p,resultCount:p.length,query:f,hasMatch:b,isSearching:m,highlightMatch:v}}function I({threshold:e=.1,onVisible:t,root:r=null,rootMargin:o="0px",enabled:a=!0,once:l=!0}={}){const[c,u]=s(!1),[h,d]=s(null),f=i(null),m=i(t);return n(()=>{m.current=t},[t]),n(()=>{if(!a)return;const t=f.current;if(!t)return;if("undefined"==typeof window||!("IntersectionObserver"in window))return u(!0),void m.current?.();const i=new IntersectionObserver(([e])=>{d(e),e.isIntersecting?(u(!0),m.current?.(),l&&i.unobserve(e.target)):l||u(!1)},{threshold:e,root:r,rootMargin:o});return i.observe(t),()=>{i.disconnect()}},[e,r,o,a,l]),{ref:f,isVisible:c,entry:h}}function z({onLoadMore:e,rootMargin:t="500px",isLoading:r=!1,enabled:o=!0,root:a}){const l=i(null),[c,u]=s(!1),h=i(!1),d=i(e);return n(()=>{d.current=e},[e]),n(()=>{if(!o)return;const e=l.current;if(!e)return;if("undefined"==typeof window||!("IntersectionObserver"in window))return;const i=new IntersectionObserver(e=>{const t=e[0];t&&(u(t.isIntersecting),!t.isIntersecting||h.current||r||(h.current=!0,Promise.resolve(d.current()).finally(()=>{h.current=!1})))},{root:a?.current??null,rootMargin:t,threshold:0});return i.observe(e),()=>{i.disconnect()}},[o,t,r,a?.current]),{sentinelRef:l,isAtBottom:c,isLoading:r}}y.displayName="VirtualGrid";const O=new Map;function S(e,t,{persist:r=!0,storageKey:s="virtualize-scroll-positions",storage:a,autoSave:l=!1,maxEntries:c=100,useRAF:u=!0,enabled:h=!0,onError:d}={}){const f=i(a??("undefined"!=typeof window&&"undefined"!=typeof document?window.localStorage:null));n(()=>{if(h&&r&&f.current&&!(O.size>0))try{const e=f.current.getItem(s);if(!e)return;JSON.parse(e).forEach(e=>{O.set(e.key,e)})}catch(e){d?.(e)}},[h,r,s,d]);const m=o(()=>{if(r&&f.current)try{const e=Array.from(O.values()).sort((e,t)=>t.timestamp-e.timestamp).slice(0,c);f.current.setItem(s,JSON.stringify(e))}catch(e){d?.(e)}},[r,s,c,d]),g=o(()=>{if(!h)return;const r=t.current;if(!r)return;const i={key:e,top:r.scrollTop,left:r.scrollLeft,timestamp:Date.now()};O.set(e,i),m()},[e,t,h,m]),p=o(()=>{if(!h)return;if(!t.current)return;const r=O.get(e);if(!r)return;const i=()=>{t.current&&(t.current.scrollTop=r.top,t.current.scrollLeft=r.left)};u?requestAnimationFrame(i):i()},[e,t,h,u]);return n(()=>{h&&p()},[h,p]),n(()=>{if(h)return()=>{g()}},[h,g]),n(()=>{if(!h||!l||!t.current)return;const e=t.current,r=()=>{g()};return e.addEventListener("scroll",r,{passive:!0}),()=>{e.removeEventListener("scroll",r)}},[h,l,g,t]),{savePosition:g,restorePosition:p}}export{g as MeasurementSystem,y as VirtualGrid,w as VirtualList,m as VirtualizationEngine,z as useInfiniteScroll,I as useLazyLoad,S as useScrollRestoration,b as useVirtualList,M as useVirtualizedSearch};
|
|
1
|
+
import{jsx as e,jsxs as t}from"react/jsx-runtime";import r,{useRef as i,useEffect as n,useState as s,useCallback as o,useMemo as a,forwardRef as l,useImperativeHandle as c,useDeferredValue as u}from"react";function h(e){return e&-e}function d(e){let t=1;for(;t<e;)t<<=1;return t}class f{constructor(e=0){Object.defineProperty(this,"capacity",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"tree",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"raw",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"n",{enumerable:!0,configurable:!0,writable:!0,value:0}),this.capacity=d(Math.max(1,e)),this.tree=new Array(this.capacity+1).fill(0),this.raw=new Array(this.capacity).fill(0),e>0&&this.resize(e,0)}size(){return this.n}rebuild(){this.tree=new Array(this.capacity+1).fill(0);for(let e=1;e<=this.capacity;e++){this.tree[e]+=this.raw[e-1]??0;const t=e+h(e);t<=this.capacity&&(this.tree[t]+=this.tree[e])}}resize(e,t){if(e>this.capacity){const r=d(e),i=this.raw;this.raw=new Array(r).fill(0);for(let e=0;e<i.length;e++)this.raw[e]=i[e];for(let r=this.n;r<e;r++)this.raw[r]=t;return this.capacity=r,this.rebuild(),void(this.n=e)}if(e>this.n){for(let r=this.n;r<e;r++)this.update(r,t);this.n=e}else if(e<this.n){for(let t=e;t<this.n;t++)this.update(t,0);this.n=e}}update(e,t){if(e<0||e>=this.capacity)return;const r=t-(this.raw[e]??0);if(0!==r){this.raw[e]=t;for(let t=e+1;t<=this.capacity;t+=h(t))this.tree[t]+=r}}getValue(e){return this.raw[e]??0}prefixSum(e){let t=0;for(let r=Math.min(e,this.n);r>0;r-=h(r))t+=this.tree[r];return t}total(){return this.prefixSum(this.n)}findIndexAtOffset(e){if(0===this.n)return 0;let t=0,r=e;for(let e=this.capacity;e>0;e>>=1){const i=t+e;i<=this.capacity&&this.tree[i]<=r&&(t=i,r-=this.tree[i])}return Math.min(t,this.n-1)}resetAll(e){for(let e=0;e<this.n;e++)this.raw[e]=0;this.rebuild();for(let t=0;t<this.n;t++)this.update(t,e)}}class m{constructor(e=35){Object.defineProperty(this,"tree",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"estimatedItemSize",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"itemCount",{enumerable:!0,configurable:!0,writable:!0,value:0}),this.estimatedItemSize=e,this.tree=new f(0)}setItemCount(e){this.itemCount!==e&&(this.tree.resize(e,this.estimatedItemSize),this.itemCount=e)}recordItemSize(e,t){e<0||e>=this.itemCount||this.tree.update(e,t)}invalidateFrom(e){if(void 0===e)return void this.tree.resetAll(this.estimatedItemSize);for(let t=Math.max(0,e);t<this.itemCount;t++)this.tree.update(t,this.estimatedItemSize)}getItemSize(e){return e<0||e>=this.itemCount?this.estimatedItemSize:this.tree.getValue(e)}getItemOffset(e){return this.tree.prefixSum(Math.max(0,e))}getTotalSize(){return this.tree.total()}getVisibleRange(e,t,r,i=5){if(this.setItemCount(r),0===r)return{startIndex:0,endIndex:-1,overscanStartIndex:0,overscanEndIndex:-1};const n=this.tree.findIndexAtOffset(e),s=this.tree.findIndexAtOffset(e+t);return{startIndex:Math.max(0,n-i),endIndex:Math.min(r-1,s+i),overscanStartIndex:n,overscanEndIndex:s}}getVisibleItems(e,t,r,i){const n=this.getVisibleRange(e,t,r,i),s=[];for(let e=n.startIndex;e<=n.endIndex;e++)s.push({index:e,size:this.getItemSize(e),offset:this.getItemOffset(e)});return s}getScrollOffsetForIndex(e,t,r="start"){const i=this.getItemOffset(e),n=this.getItemSize(e);return"center"===r?Math.max(0,i-(t-n)/2):"end"===r?Math.max(0,i-t+n):Math.max(0,i)}}class g{constructor(){Object.defineProperty(this,"resizeObserver",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"measurements",{enumerable:!0,configurable:!0,writable:!0,value:new Map}),Object.defineProperty(this,"widthMeasurements",{enumerable:!0,configurable:!0,writable:!0,value:new Map}),Object.defineProperty(this,"observedElements",{enumerable:!0,configurable:!0,writable:!0,value:new WeakMap}),Object.defineProperty(this,"observedAxis",{enumerable:!0,configurable:!0,writable:!0,value:new WeakMap}),Object.defineProperty(this,"pendingUpdates",{enumerable:!0,configurable:!0,writable:!0,value:new Map}),Object.defineProperty(this,"pendingWidthUpdates",{enumerable:!0,configurable:!0,writable:!0,value:new Map}),Object.defineProperty(this,"rafId",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"onMeasure",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"onMeasureWidth",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"handleResize",{enumerable:!0,configurable:!0,writable:!0,value:e=>{for(const t of e){const e=t.target,r=this.observedElements.get(e);if(void 0===r)continue;if("width"===(this.observedAxis.get(e)??"height")){const e=Math.round(t.contentRect.width);this.widthMeasurements.get(r)!==e&&(this.widthMeasurements.set(r,e),this.pendingWidthUpdates.set(r,e));continue}const i=Math.round(t.contentRect.height);this.measurements.get(r)!==i&&(this.measurements.set(r,i),this.pendingUpdates.set(r,i))}this.flushPendingUpdates()}}),"undefined"!=typeof window&&"ResizeObserver"in window&&(this.resizeObserver=new ResizeObserver(this.handleResize))}startMeasuring(e,t){this.onMeasure=e,this.onMeasureWidth=t??null}observeItem(e,t,r="height"){t.dataset.virtualizeIndex=String(e),this.observedElements.set(t,e),this.observedAxis.set(t,r),this.resizeObserver?.observe(t),this.syncMeasure(e,t,r)}unobserveItem(e){this.resizeObserver?.unobserve(e),this.observedElements.delete(e),this.observedAxis.delete(e)}flushPendingUpdates(){null===this.rafId&&(this.rafId=requestAnimationFrame(()=>{this.pendingUpdates.forEach((e,t)=>{this.onMeasure?.(t,e)}),this.pendingUpdates.clear(),this.pendingWidthUpdates.forEach((e,t)=>{this.onMeasureWidth?.(t,e)}),this.pendingWidthUpdates.clear(),this.rafId=null}))}syncMeasure(e,t,r="height"){const i=t.getBoundingClientRect(),n="width"===r?i.width:i.height;if(n<=0)return;const s=Math.round(n);if("width"===r){if(this.widthMeasurements.get(e)===s)return;return this.widthMeasurements.set(e,s),void this.onMeasureWidth?.(e,s)}this.measurements.get(e)!==s&&(this.measurements.set(e,s),this.onMeasure?.(e,s))}stopMeasuring(){this.resizeObserver?.disconnect(),this.pendingUpdates.clear(),this.pendingWidthUpdates.clear(),null!==this.rafId&&cancelAnimationFrame(this.rafId)}getMeasurement(e){return this.measurements.get(e)}getWidthMeasurement(e){return this.widthMeasurements.get(e)}getAllMeasurements(){return new Map(this.measurements)}getAllWidthMeasurements(){return new Map(this.widthMeasurements)}clearPending(){this.pendingUpdates.clear(),this.pendingWidthUpdates.clear()}clearMeasurements(){this.measurements.clear(),this.widthMeasurements.clear()}destroy(){this.stopMeasuring(),this.measurements.clear(),this.pendingUpdates.clear(),this.widthMeasurements.clear(),this.pendingWidthUpdates.clear(),this.observedElements=new WeakMap,this.observedAxis=new WeakMap,this.onMeasure=null,this.onMeasureWidth=null}}const p=()=>{};function b(e){const{items:t,getItemKey:r,containerHeight:l,containerWidth:c,overscan:u=5,estimatedItemSize:h=35,axis:d="vertical",onScroll:f=p,onScrollEnd:b=p,stickyIndices:w,scrollEndDelay:v=150,autoMeasureContainer:y=!0}=e,x="horizontal"===d,M=i(w??[]),I=w?w.join(","):"";n(()=>{M.current=w??[]},[I]);const O=i(null);null===O.current&&(O.current=new m(h));const S=i(null);null===S.current&&(S.current=new g);const z=i(null),P=i(null),[R,W]=s({height:0,width:0});n(()=>{if(!y)return;const e=z.current;if(!e||"undefined"==typeof ResizeObserver)return;const t=new ResizeObserver(e=>{const t=e[0];if(!t)return;const{height:r,width:i}=t.contentRect;W(e=>e.height===r&&e.width===i?e:{height:r,width:i})});return t.observe(e),()=>{t.disconnect()}},[y]);const j=l>0?l:R.height,A=c&&c>0?c:R.width,[E,T]=s(0),[N,C]=s(!1),[k,H]=s("forward"),U=i(null),L=i(0),[F,V]=s(0),[B,$]=s([]);n(()=>{const e=O.current;if(!j||0===t.length)return void $(e=>0===e.length?e:[]);const r=e.getVisibleItems(E,j,t.length,u),i=M.current,n=r.map(e=>({index:e.index,offset:e.offset,size:e.size,isSticky:i.includes(e.index)}));$(e=>{if(e.length===n.length){let t=!1;for(let r=0;r<e.length;r++){const i=e[r],s=n[r];if(i.index!==s.index||i.offset!==s.offset||i.size!==s.size||i.isSticky!==s.isSticky){t=!0;break}}if(!t)return e}return n})},[E,j,t.length,u,I,F]);const K=o(e=>{const t=e.currentTarget,r=x?t.scrollLeft:t.scrollTop;if(r===L.current)return;const i=r>L.current?"forward":"reverse";L.current=r,H(i),T(r),C(!0),f(r,i),U.current&&clearTimeout(U.current),U.current=setTimeout(()=>{C(!1),b()},v)},[x,f,b,v]);n(()=>{const e=z.current;if(e)return e.addEventListener("scroll",K,{passive:!0}),()=>{e.removeEventListener("scroll",K)}},[K]);const D=o((e,t)=>{O.current.recordItemSize(e,t),V(e=>e+1)},[]);n(()=>{const e=S.current;return()=>{e.stopMeasuring()}},[D]);const q=o((e,t="start")=>{if(!j)return;const r=O.current.getScrollOffsetForIndex(e,j,t),i=z.current;i&&(x?i.scrollLeft=r:i.scrollTop=r)},[j,x]),G=o(e=>{const t=z.current;t&&(x?t.scrollLeft=e:t.scrollTop=e),L.current=e,T(e)},[x]),J=o(e=>{L.current=e,T(e)},[]),_=o((e,t)=>{const r=O.current.getItemOffset(e),i=M.current.includes(e),n={position:i?"sticky":"absolute",zIndex:i?10:0};return x?{...n,top:0,left:i?0:r,height:A||"100%",width:t}:{...n,top:i?0:r,left:0,width:"100%",height:t}},[x,A]),X=o(e=>{if(r){const i=t[e];if(void 0!==i)return r(e,i)}return e},[r,t]),Y=o(e=>{O.current.invalidateFrom(e),V(e=>e+1)},[]);n(()=>()=>{U.current&&clearTimeout(U.current),S.current?.destroy()},[]);const Q=a(()=>O.current.getTotalSize(),[t.length,F,j]),Z=o((e,t)=>{S.current.observeItem(e,t)},[]),ee=o(e=>{S.current.unobserveItem(e)},[]);return{virtualItems:B,isScrolling:N,scrollOffset:E,scrollDirection:k,totalSize:Q,scrollToItem:q,scrollToOffset:G,setScrollOffset:J,containerRef:z,innerRef:P,getItemStyle:_,recalculate:Y,getItemKeyForIndex:X,observeItem:Z,unobserveItem:ee}}const w=l(({items:s,renderItem:o,itemWrapper:a,itemKey:l,height:u=400,width:h=500,itemSize:d,overscan:f=5,scrollDirection:m="forward",onScroll:g,className:p="",itemClassName:w="",style:v={},innerClassName:y="",innerStyle:x={},itemStyle:M={},estimatedItemSize:I=35,getItemSize:O,stickyIndices:S=[],onScrollEnd:z,innerRef:P,scrollOffsetRef:R,footer:W},j)=>{const{virtualItems:A,isScrolling:E,scrollOffset:T,totalSize:N,containerRef:C,innerRef:k,getItemStyle:H,observeItem:U,unobserveItem:L}=b({items:s,getItemKey:l,containerHeight:"number"==typeof u?u:400,containerWidth:"number"==typeof h?h:500,overscan:f,estimatedItemSize:I,onScroll:g,onScrollEnd:z,stickyIndices:S}),F=i(null),V=i(null);c(j,()=>F.current),c(P,()=>V.current),n(()=>{R&&(R.current=T)},[T,R]);const B={height:u,width:h,overflow:"auto",position:"relative",...v},$={width:"100%",...x,position:"relative",height:N},K=(...e)=>e.filter(Boolean).join(" ").trim(),D=i(new Map);return n(()=>()=>{D.current.forEach(e=>L(e)),D.current.clear()},[]),e("div",{ref:e=>{F.current=e,C.current=e},className:K("virtualize-container",p),style:B,onScroll:e=>{const t=e.target,r=o?.__scrollHandler;r&&r(e),g&&g(t.scrollTop,"auto")},children:t("div",{ref:e=>{V.current=e,k.current=e},style:$,className:K("virtualize-inner",y),children:[A.map(t=>{const i=s[t.index],n=l?l(t.index,i):t.index,c=H(t.index,t.size),u={item:i,index:t.index,style:c,isScrolling:E},h=o(u);return a?e(r.Fragment,{children:a({item:i,index:t.index,style:c,children:h})},n):e("div",{ref:(d=t.index,e=>{const t=D.current.get(d);t&&t!==e&&(L(t),D.current.delete(d)),e&&(D.current.set(d,e),U(d,e))}),"data-virtualize-index":t.index,className:K("virtualize-item",w),style:{...M,...c,boxSizing:"border-box"},children:h},n);var d}),W&&e("div",{style:{position:"absolute",top:N,left:0,width:"100%"},children:W})]})})});w.displayName="VirtualList";class v{constructor(){Object.defineProperty(this,"positions",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"colHeights",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"rowOffsets",{enumerable:!0,configurable:!0,writable:!0,value:[0]}),Object.defineProperty(this,"currentRowMax",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"maxBottom",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"params",{enumerable:!0,configurable:!0,writable:!0,value:null})}sameParams(e){return!!this.params&&(this.params.cols===e.cols&&this.params.colWidth===e.colWidth&&this.params.gap===e.gap&&this.params.layout===e.layout&&this.params.rowHeight===e.rowHeight)}reset(e){this.positions=[],this.colHeights=new Array(e.cols).fill(0),this.rowOffsets=[0],this.currentRowMax=0,this.maxBottom=0,this.params=e}sizeOf(e,t){return"function"==typeof e?e(t):e}appendMasonry(e,t,r){for(let i=e;i<t;i++){const e=this.sizeOf(r.rowHeight,i);let t=0;for(let e=1;e<r.cols;e++)this.colHeights[e]<this.colHeights[t]&&(t=e);const n=t*(r.colWidth+r.gap),s=this.colHeights[t];this.positions.push({x:n,y:s,width:r.colWidth,height:e}),this.colHeights[t]+=e+r.gap,s+e>this.maxBottom&&(this.maxBottom=s+e)}}appendGrid(e,t,r){for(let i=e;i<t;i++){const e=Math.floor(i/r.cols),t=i%r.cols,n=this.sizeOf(r.rowHeight,i);for(;this.rowOffsets.length<=e;){const e=this.rowOffsets.length-1,t=e>=0?r.gap:0;this.rowOffsets.push(this.rowOffsets[e]+this.currentRowMax+t),this.currentRowMax=0}const s=this.rowOffsets[e],o=t*(r.colWidth+r.gap);this.positions.push({x:o,y:s,width:r.colWidth,height:n}),this.currentRowMax=Math.max(this.currentRowMax,n),s+n>this.maxBottom&&(this.maxBottom=s+n)}}sync(e,t){(!this.sameParams(t)||e<this.positions.length)&&this.reset(t);const r=this.positions.length;return r<e&&("masonry"===t.layout?this.appendMasonry(r,e,t):this.appendGrid(r,e,t)),this.positions}getTotalHeight(){return this.maxBottom}}const y=l(({items:t,renderItem:r,itemKey:l,height:u=600,width:h="100%",columnCount:d=3,rowHeight:f=200,columnWidth:m,layout:g="grid",overscan:p=5,gap:b=16,onScroll:w,onVisibleRangeChange:y,innerClassName:x,innerStyle:M,containerClassName:I,containerStyle:O,itemClassName:S,itemStyle:z},P)=>{const R=i(null);c(P,()=>R.current);const[W,j]=s(0),[A,E]=s(!1),[T,N]=s(0),C=i(null);n(()=>{if(!R.current)return;const e=R.current,t=new ResizeObserver(e=>{for(const t of e){const e=t.contentRect.width;e>0&&N(e)}});return t.observe(e),()=>t.disconnect()},[]),n(()=>()=>{C.current&&clearTimeout(C.current)},[]);const k=T>0&&t.length>0,H=a(()=>{if("auto"===d){const e=200;return Math.max(1,Math.floor(T/(e+b)))}return Math.max(1,Number(d))},[d,T,b]),U=a(()=>{if("number"==typeof m)return m;const e=b*Math.max(0,H-1);return Math.max(0,(T-e)/H)},[T,H,b,m]),L="grid"===g&&"number"==typeof f,F="string"==typeof u?parseInt(u):Number(u),V=f+b,B=a(()=>{if(!L||!k)return 0;const e=Math.ceil(t.length/H);return e>0?e*V-b:0},[L,k,t.length,H,V,b]),$=a(()=>{if(!L||!k)return{start:0,end:-1};const e=Math.max(0,Math.floor(W/V)),r=Math.max(0,Math.floor((W+F)/V)),i=Math.ceil(p/H);return{start:Math.max(0,(e-i)*H),end:Math.min(t.length-1,(r+i+1)*H-1)}},[L,k,W,F,V,p,H,t.length]),K=o(e=>{const t=Math.floor(e/H);return{x:e%H*(U+b),y:t*V,width:U,height:f}},[H,U,b,V,f]),D=i(null);null===D.current&&(D.current=new v);const q=a(()=>L||!k?[]:D.current.sync(t.length,{cols:H,colWidth:U,gap:b,layout:g,rowHeight:f}),[L,k,t.length,H,U,b,g,f]),G=a(()=>L||!k?0:D.current.getTotalHeight(),[L,k,q]),J=a(()=>{if(L||!q.length)return{start:0,end:-1};const e=W+F,t=q.length,r="masonry"===g?p+H:p;let i=0,n=t-1,s=0;for(;i<=n;){const e=i+n>>1;q[e].y+q[e].height>=W?(s=e,n=e-1):i=e+1}i=0,n=t-1;let o=t-1;for(;i<=n;){const t=i+n>>1;q[t].y<=e?(o=t,i=t+1):n=t-1}return{start:Math.max(0,s-r),end:Math.min(t-1,o+r)}},[L,q,W,F,p,g,H]),_=L?B:G,X=L?$:J,Y=o(e=>{const t=e.currentTarget;j(t.scrollTop),E(!0),w?.(t.scrollTop,t.scrollLeft),C.current&&clearTimeout(C.current),C.current=setTimeout(()=>E(!1),120)},[w]);n(()=>{y?.(X.start,X.end)},[X,y]);const Q=(...e)=>e.filter(Boolean).join(" ").trim(),Z={height:"string"==typeof u?u:`${u}px`,width:"string"==typeof h?h:`${h}px`,overflowY:"auto",overflowX:"hidden",position:"relative",...O},ee={position:"relative",height:_||1,width:"100%",...M};if(!k)return e("div",{ref:R,className:Q("virtualize-grid-container",I),style:Z,onScroll:Y,children:e("div",{className:Q("virtualize-grid-inner",x),style:ee})});const te=[];for(let e=X.start;e<=X.end;e++)e>=0&&e<t.length&&te.push({index:e,key:l?.(e,t[e])??e});return e("div",{ref:R,className:Q("virtualize-grid-container",I),style:Z,onScroll:Y,children:e("div",{className:Q("virtualize-grid-inner",x),style:ee,children:te.map(i=>{const n=t[i.index],s=L?K(i.index):q[i.index];if(!n||!s)return null;const o={...z,position:"absolute",top:`${s.y}px`,left:`${s.x}px`,width:`${s.width}px`,height:`${s.height}px`,boxSizing:"border-box"};return e("div",{"data-virtualize-index":i.index,className:Q("virtualize-grid-item",S),style:o,children:r({item:n,index:i.index,isScrolling:A})},i.key)})})})});function x(e,t){return t?e:e.toLowerCase()}function M({items:t,searchValue:i,searchFields:n,caseSensitive:s=!1,deferSearch:l=!0,matcher:c}){const h=a(()=>x(i.trim(),s),[i,s]),d=u(h),f=l?d:h,m=l&&d!==h,g=o(e=>!f||(c?c(e,f):function(e,t,r,i){return r.some(r=>{const n=e[r];return null!=n&&x(String(n).trim(),i).includes(t)})}(e,f,n,s)),[f,c,n,s]),p=a(()=>f?t.filter(g):[...t],[t,f,g]),b=o(e=>g(e),[g]),w=a(()=>{if(!h)return null;const e=h.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");return new RegExp(`(${e})`,s?"g":"gi")},[h,s]),v=o(t=>{if(!t||!w)return t;return t.split(w).map((t,i)=>e(i%2==1?"mark":r.Fragment,{children:t},i))},[w]);return{filteredItems:p,resultCount:p.length,query:f,hasMatch:b,isSearching:m,highlightMatch:v}}function I({threshold:e=.1,onVisible:t,root:r=null,rootMargin:o="0px",enabled:a=!0,once:l=!0}={}){const[c,u]=s(!1),[h,d]=s(null),f=i(null),m=i(t);return n(()=>{m.current=t},[t]),n(()=>{if(!a)return;const t=f.current;if(!t)return;if("undefined"==typeof window||!("IntersectionObserver"in window))return u(!0),void m.current?.();const i=new IntersectionObserver(([e])=>{d(e),e.isIntersecting?(u(!0),m.current?.(),l&&i.unobserve(e.target)):l||u(!1)},{threshold:e,root:r,rootMargin:o});return i.observe(t),()=>{i.disconnect()}},[e,r,o,a,l]),{ref:f,isVisible:c,entry:h}}function O({onLoadMore:e,rootMargin:t="500px",isLoading:r=!1,enabled:o=!0,root:a}){const l=i(null),[c,u]=s(!1),h=i(!1),d=i(e);return n(()=>{d.current=e},[e]),n(()=>{if(!o)return;const e=l.current;if(!e)return;if("undefined"==typeof window||!("IntersectionObserver"in window))return;const i=new IntersectionObserver(e=>{const t=e[0];t&&(u(t.isIntersecting),!t.isIntersecting||h.current||r||(h.current=!0,Promise.resolve(d.current()).finally(()=>{h.current=!1})))},{root:a?.current??null,rootMargin:t,threshold:0});return i.observe(e),()=>{i.disconnect()}},[o,t,r,a?.current]),{sentinelRef:l,isAtBottom:c,isLoading:r}}y.displayName="VirtualGrid";const S=new Map;function z(e,t,{persist:r=!0,storageKey:s="virtualize-scroll-positions",storage:a,autoSave:l=!1,maxEntries:c=100,useRAF:u=!0,enabled:h=!0,onError:d}={}){const f=i(a??("undefined"!=typeof window&&"undefined"!=typeof document?window.localStorage:null));n(()=>{if(h&&r&&f.current&&!(S.size>0))try{const e=f.current.getItem(s);if(!e)return;JSON.parse(e).forEach(e=>{S.set(e.key,e)})}catch(e){d?.(e)}},[h,r,s,d]);const m=o(()=>{if(r&&f.current)try{const e=Array.from(S.values()).sort((e,t)=>t.timestamp-e.timestamp).slice(0,c);f.current.setItem(s,JSON.stringify(e))}catch(e){d?.(e)}},[r,s,c,d]),g=o(()=>{if(!h)return;const r=t.current;if(!r)return;const i={key:e,top:r.scrollTop,left:r.scrollLeft,timestamp:Date.now()};S.set(e,i),m()},[e,t,h,m]),p=o(()=>{if(!h)return;if(!t.current)return;const r=S.get(e);if(!r)return;const i=()=>{t.current&&(t.current.scrollTop=r.top,t.current.scrollLeft=r.left)};u?requestAnimationFrame(i):i()},[e,t,h,u]);return n(()=>{h&&p()},[h,p]),n(()=>{if(h)return()=>{g()}},[h,g]),n(()=>{if(!h||!l||!t.current)return;const e=t.current,r=()=>{g()};return e.addEventListener("scroll",r,{passive:!0}),()=>{e.removeEventListener("scroll",r)}},[h,l,g,t]),{savePosition:g,restorePosition:p}}export{g as MeasurementSystem,y as VirtualGrid,w as VirtualList,m as VirtualizationEngine,O as useInfiniteScroll,I as useLazyLoad,z as useScrollRestoration,b as useVirtualList,M as useVirtualizedSearch};
|
|
2
2
|
//# sourceMappingURL=index.esm.js.map
|
package/dist/index.esm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.esm.js","sources":["../src/core/FenwickTree.ts","../src/core/VirtualizationEngine.ts","../src/core/MeasurementSystem.ts","../src/hooks/useVirtualList.ts","../src/components/VirtualList.tsx","../src/core/GridLayoutEngine.ts","../src/components/VirtualGrid.tsx","../src/hooks/useVirtualizedSearch.tsx","../src/hooks/useLazyLoad.ts","../src/hooks/useInfiniteScroll.ts","../src/hooks/useScrollRestoration.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null],"names":["lowbit","i","nextPow2","x","p","FenwickTree","constructor","initialCount","Object","defineProperty","this","capacity","Math","max","tree","Array","fill","raw","resize","size","n","rebuild","parent","count","defaultValue","newCapacity","oldRaw","length","update","index","value","delta","getValue","prefixSum","sum","min","total","findIndexAtOffset","target","pos","remaining","pw","next","resetAll","VirtualizationEngine","estimatedItemSize","setItemCount","itemCount","recordItemSize","invalidateFrom","fromIndex","undefined","getItemSize","getItemOffset","getTotalSize","getVisibleRange","scrollOffset","containerSize","overscan","startIndex","endIndex","overscanStartIndex","overscanEndIndex","start","end","getVisibleItems","range","items","push","offset","getScrollOffsetForIndex","alignment","MeasurementSystem","Map","WeakMap","entries","entry","element","observedElements","get","observedAxis","widthSize","round","contentRect","width","widthMeasurements","set","pendingWidthUpdates","height","measurements","pendingUpdates","flushPendingUpdates","window","resizeObserver","ResizeObserver","handleResize","startMeasuring","container","onMeasure","onMeasureWidth","querySelectorAll","forEach","item","indexAttr","dataset","virtualizeIndex","Number","observeItem","axis","String","observe","syncMeasure","unobserveItem","unobserve","delete","rafId","requestAnimationFrame","clear","rect","getBoundingClientRect","rounded","stopMeasuring","disconnect","cancelAnimationFrame","getMeasurement","getWidthMeasurement","getAllMeasurements","getAllWidthMeasurements","clearPending","clearMeasurements","destroy","noop","useVirtualList","params","getItemKey","containerHeight","containerWidth","onScroll","onScrollEnd","stickyIndices","scrollEndDelay","autoMeasureContainer","isHorizontal","stickyIndicesRef","useRef","stickyKey","join","useEffect","current","engineRef","measurementRef","containerRef","innerRef","measuredViewport","setMeasuredViewport","useState","node","observer","prev","resolvedViewportSize","resolvedCrossAxisSize","setScrollOffsetState","isScrolling","setIsScrolling","scrollDirection","setScrollDirection","scrollTimeoutRef","lastScrollOffsetRef","measurementVersion","setMeasurementVersion","virtualItems","setVirtualItems","engine","visibleItems","sticky","nextVirtualItems","map","isSticky","includes","changed","prevItem","nextItem","handleScrollEvent","useCallback","e","currentTarget","newScrollOffset","scrollLeft","scrollTop","direction","clearTimeout","setTimeout","addEventListener","passive","removeEventListener","handleItemMeasure","v","measurement","scrollToItem","scrollToOffset","setScrollOffset","getItemStyle","isStickyItem","base","position","zIndex","top","left","getItemKeyForIndex","recalculate","totalSize","useMemo","VirtualList","forwardRef","renderItem","itemWrapper","itemKey","itemSize","className","itemClassName","style","innerClassName","innerStyle","itemStyle","scrollOffsetRef","footer","internalContainerRef","internalInnerRef","mergedContainerRef","mergedInnerRef","useImperativeHandle","containerStyle","overflow","innerStyleComputed","cx","parts","filter","Boolean","trim","_jsx","ref","el","handler","__scrollHandler","_jsxs","virtualItem","key","virtualStyle","renderProps","content","React","Fragment","children","boxSizing","displayName","GridLayoutEngine","sameParams","cols","colWidth","gap","layout","rowHeight","reset","positions","colHeights","rowOffsets","currentRowMax","maxBottom","sizeOf","appendMasonry","h","minCol","c","y","appendGrid","row","floor","col","prevRow","gapBefore","sync","from","getTotalHeight","VirtualGrid","columnCount","columnWidth","onVisibleRangeChange","containerClassName","setScrollTop","setContainerWidth","scrollTimeout","w","isReady","minColWidth","totalGapWidth","isFastPath","heightNumForRange","parseInt","fastRowStep","fastTotalHeight","numRows","ceil","fastVisibleRange","startRow","endRow","overscanRows","fastPositionOf","gridEngineRef","generalPositions","generalTotalHeight","generalVisibleRange","scrollBottom","effectiveOverscan","lo","hi","startIdx","mid","endIdx","totalHeight","visibleRange","handleScroll","containerStyleComputed","overflowY","overflowX","vItem","computedItemStyle","normalize","caseSensitive","toLowerCase","useVirtualizedSearch","searchValue","searchFields","deferSearch","matcher","normalizedQuery","deferredQuery","useDeferredValue","activeQuery","isSearching","itemMatcher","query","some","field","defaultMatcher","filteredItems","hasMatch","highlightRegex","escaped","replace","RegExp","highlightMatch","text","split","part","resultCount","useLazyLoad","threshold","onVisible","root","rootMargin","enabled","once","isVisible","setIsVisible","setEntry","elementRef","callbackRef","IntersectionObserver","observerEntry","isIntersecting","useInfiniteScroll","onLoadMore","isLoading","sentinelRef","isAtBottom","setIsAtBottom","loadingRef","onLoadMoreRef","sentinel","Promise","resolve","finally","positionCache","useScrollRestoration","persist","storageKey","storage","autoSave","maxEntries","useRAF","onError","storageRef","document","localStorage","getItem","JSON","parse","error","persistCache","values","sort","a","b","timestamp","slice","setItem","stringify","savePosition","Date","now","restorePosition","restore"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.esm.js","sources":["../src/core/FenwickTree.ts","../src/core/VirtualizationEngine.ts","../src/core/MeasurementSystem.ts","../src/hooks/useVirtualList.ts","../src/components/VirtualList.tsx","../src/core/GridLayoutEngine.ts","../src/components/VirtualGrid.tsx","../src/hooks/useVirtualizedSearch.tsx","../src/hooks/useLazyLoad.ts","../src/hooks/useInfiniteScroll.ts","../src/hooks/useScrollRestoration.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null],"names":["lowbit","i","nextPow2","x","p","FenwickTree","constructor","initialCount","Object","defineProperty","this","capacity","Math","max","tree","Array","fill","raw","resize","size","n","rebuild","parent","count","defaultValue","newCapacity","oldRaw","length","update","index","value","delta","getValue","prefixSum","sum","min","total","findIndexAtOffset","target","pos","remaining","pw","next","resetAll","VirtualizationEngine","estimatedItemSize","setItemCount","itemCount","recordItemSize","invalidateFrom","fromIndex","undefined","getItemSize","getItemOffset","getTotalSize","getVisibleRange","scrollOffset","containerSize","overscan","startIndex","endIndex","overscanStartIndex","overscanEndIndex","start","end","getVisibleItems","range","items","push","offset","getScrollOffsetForIndex","alignment","MeasurementSystem","Map","WeakMap","entries","entry","element","observedElements","get","observedAxis","widthSize","round","contentRect","width","widthMeasurements","set","pendingWidthUpdates","height","measurements","pendingUpdates","flushPendingUpdates","window","resizeObserver","ResizeObserver","handleResize","startMeasuring","onMeasure","onMeasureWidth","observeItem","axis","dataset","virtualizeIndex","String","observe","syncMeasure","unobserveItem","unobserve","delete","rafId","requestAnimationFrame","forEach","clear","rect","getBoundingClientRect","rounded","stopMeasuring","disconnect","cancelAnimationFrame","getMeasurement","getWidthMeasurement","getAllMeasurements","getAllWidthMeasurements","clearPending","clearMeasurements","destroy","noop","useVirtualList","params","getItemKey","containerHeight","containerWidth","onScroll","onScrollEnd","stickyIndices","scrollEndDelay","autoMeasureContainer","isHorizontal","stickyIndicesRef","useRef","stickyKey","join","useEffect","current","engineRef","measurementRef","containerRef","innerRef","measuredViewport","setMeasuredViewport","useState","node","observer","prev","resolvedViewportSize","resolvedCrossAxisSize","setScrollOffsetState","isScrolling","setIsScrolling","scrollDirection","setScrollDirection","scrollTimeoutRef","lastScrollOffsetRef","measurementVersion","setMeasurementVersion","virtualItems","setVirtualItems","engine","visibleItems","sticky","nextVirtualItems","map","item","isSticky","includes","changed","prevItem","nextItem","handleScrollEvent","useCallback","e","currentTarget","newScrollOffset","scrollLeft","scrollTop","direction","clearTimeout","setTimeout","container","addEventListener","passive","removeEventListener","handleItemMeasure","v","measurement","scrollToItem","scrollToOffset","setScrollOffset","getItemStyle","isStickyItem","base","position","zIndex","top","left","getItemKeyForIndex","recalculate","totalSize","useMemo","VirtualList","forwardRef","renderItem","itemWrapper","itemKey","itemSize","className","itemClassName","style","innerClassName","innerStyle","itemStyle","scrollOffsetRef","footer","internalContainerRef","internalInnerRef","mergedContainerRef","mergedInnerRef","useImperativeHandle","containerStyle","overflow","innerStyleComputed","cx","parts","filter","Boolean","trim","observedElementsRef","el","_jsx","ref","handler","__scrollHandler","_jsxs","virtualItem","key","virtualStyle","renderProps","content","React","Fragment","children","boxSizing","displayName","GridLayoutEngine","sameParams","cols","colWidth","gap","layout","rowHeight","reset","positions","colHeights","rowOffsets","currentRowMax","maxBottom","sizeOf","appendMasonry","h","minCol","c","y","appendGrid","row","floor","col","prevRow","gapBefore","sync","from","getTotalHeight","VirtualGrid","columnCount","columnWidth","onVisibleRangeChange","containerClassName","setScrollTop","setContainerWidth","scrollTimeout","w","isReady","minColWidth","Number","totalGapWidth","isFastPath","heightNumForRange","parseInt","fastRowStep","fastTotalHeight","numRows","ceil","fastVisibleRange","startRow","endRow","overscanRows","fastPositionOf","gridEngineRef","generalPositions","generalTotalHeight","generalVisibleRange","scrollBottom","effectiveOverscan","lo","hi","startIdx","mid","endIdx","totalHeight","visibleRange","handleScroll","containerStyleComputed","overflowY","overflowX","vItem","computedItemStyle","normalize","caseSensitive","toLowerCase","useVirtualizedSearch","searchValue","searchFields","deferSearch","matcher","normalizedQuery","deferredQuery","useDeferredValue","activeQuery","isSearching","itemMatcher","query","some","field","defaultMatcher","filteredItems","hasMatch","highlightRegex","escaped","replace","RegExp","highlightMatch","text","split","part","resultCount","useLazyLoad","threshold","onVisible","root","rootMargin","enabled","once","isVisible","setIsVisible","setEntry","elementRef","callbackRef","IntersectionObserver","observerEntry","isIntersecting","useInfiniteScroll","onLoadMore","isLoading","sentinelRef","isAtBottom","setIsAtBottom","loadingRef","onLoadMoreRef","sentinel","Promise","resolve","finally","positionCache","useScrollRestoration","persist","storageKey","storage","autoSave","maxEntries","useRAF","onError","storageRef","document","localStorage","getItem","JSON","parse","error","persistCache","values","sort","a","b","timestamp","slice","setItem","stringify","savePosition","Date","now","restorePosition","restore"],"mappings":"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"}
|
package/package.json
CHANGED