react-virtual-renderer 1.0.9 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,60 +1,8 @@
1
- import React, { CSSProperties } from 'react';
1
+ import React from 'react';
2
+ import { VirtualListProps } from '../types';
2
3
  /**
3
- * Props passed to renderItem function
4
- * Fully generic with TypeScript
4
+ * VirtualList Component
5
+ * Drop-in replacement for long lists with virtualization support
5
6
  */
6
- export interface RenderItemProps<T> {
7
- item: T;
8
- index: number;
9
- isScrolling: boolean;
10
- }
11
- /**
12
- * Props for the item wrapper component
13
- */
14
- export interface ItemWrapperProps<T> {
15
- item: T;
16
- index: number;
17
- style: CSSProperties;
18
- children: React.ReactNode;
19
- }
20
- /**
21
- * Main VirtualList Props - Fully Generic
22
- */
23
- export interface VirtualListProps<T> {
24
- items: T[];
25
- renderItem: (props: RenderItemProps<T>) => React.ReactNode;
26
- height?: number | string;
27
- width?: number | string;
28
- itemSize?: number | ((index: number) => number);
29
- getItemSize?: (index: number) => number;
30
- estimatedItemSize?: number;
31
- overscan?: number;
32
- scrollDirection?: 'forward' | 'backward' | 'both';
33
- itemKey?: (index: number, item: T) => string | number;
34
- itemWrapper?: (props: ItemWrapperProps<T>) => React.ReactNode;
35
- className?: string;
36
- itemClassName?: string;
37
- style?: CSSProperties;
38
- onScroll?: (scrollTop: number, direction: string) => void;
39
- onScrollEnd?: (direction: 'forward' | 'backward') => void;
40
- stickyIndices?: number[];
41
- innerRef?: React.Ref<HTMLDivElement>;
42
- scrollOffsetRef?: React.MutableRefObject<number>;
43
- }
44
- /**
45
- * VirtualList Handle for imperative API
46
- */
47
- export interface VirtualListHandle {
48
- scrollToItem: (index: number, alignment?: 'auto' | 'start' | 'center' | 'end') => void;
49
- scrollToOffset: (offset: number) => void;
50
- resetAfterIndex: (index: number, shouldForceUpdate?: boolean) => void;
51
- getScrollOffset: () => number;
52
- }
53
- export declare const VirtualList: React.ForwardRefExoticComponent<VirtualListProps<any> & React.RefAttributes<HTMLDivElement & VirtualListHandle>>;
54
- export default VirtualList;
55
- /**
56
- * Type helper for extracting generic type
57
- * Usage: type MyItemType = ExtractVirtualListType<typeof myVirtualListRef>;
58
- */
59
- export type ExtractVirtualListType<T> = T extends React.Ref<HTMLDivElement & VirtualListHandle> ? any : never;
7
+ export declare const VirtualList: React.ForwardRefExoticComponent<VirtualListProps<any> & React.RefAttributes<HTMLDivElement>>;
60
8
  //# sourceMappingURL=VirtualList.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"VirtualList.d.ts","sourceRoot":"","sources":["../../src/components/VirtualList.tsx"],"names":[],"mappings":"AA4QA,OAAO,KAAK,EAAE,EAOV,aAAa,EAChB,MAAM,OAAO,CAAC;AAQf;;;GAGG;AACH,MAAM,WAAW,eAAe,CAAC,CAAC;IAC9B,IAAI,EAAE,CAAC,CAAC;IACR,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,OAAO,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB,CAAC,CAAC;IAC/B,IAAI,EAAE,CAAC,CAAC;IACR,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,aAAa,CAAC;IACrB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB,CAAC,CAAC;IAE/B,KAAK,EAAE,CAAC,EAAE,CAAC;IACX,UAAU,EAAE,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,SAAS,CAAC;IAG3D,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC,CAAC;IAChD,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IACxC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAG3B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,SAAS,GAAG,UAAU,GAAG,MAAM,CAAC;IAGlD,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,KAAK,MAAM,GAAG,MAAM,CAAC;IACtD,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,SAAS,CAAC;IAG9D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,aAAa,CAAC;IAGtB,QAAQ,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1D,WAAW,CAAC,EAAE,CAAC,SAAS,EAAE,SAAS,GAAG,UAAU,KAAK,IAAI,CAAC;IAG1D,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IAGzB,QAAQ,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IACrC,eAAe,CAAC,EAAE,KAAK,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;CACpD;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAC9B,YAAY,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,KAAK,KAAK,IAAI,CAAC;IACvF,cAAc,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,eAAe,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,iBAAiB,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IACtE,eAAe,EAAE,MAAM,MAAM,CAAC;CACjC;AAMD,eAAO,MAAM,WAAW,kHA6PvB,CAAC;AAIF,eAAe,WAAW,CAAC;AAM3B;;;GAGG;AACH,MAAM,MAAM,sBAAsB,CAAC,CAAC,IAChC,CAAC,SAAS,KAAK,CAAC,GAAG,CAAC,cAAc,GAAG,iBAAiB,CAAC,GAAG,GAAG,GAAG,KAAK,CAAC"}
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;;;GAGG;AACH,eAAO,MAAM,WAAW,8FAoPvB,CAAC"}
@@ -1,393 +1,124 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
- // import React, {
3
- // forwardRef,
4
- // useEffect,
5
- // useImperativeHandle,
6
- // useRef,
7
- // } from 'react';
8
- // import { useVirtualList } from '../hooks/useVirtualList';
9
- // import {
10
- // VirtualListProps,
11
- // RenderItemProps,
12
- // } from '../types';
13
- // /**
14
- // * VirtualList Component
15
- // * Drop-in replacement for long lists with virtualization support
16
- // */
17
- // export const VirtualList = forwardRef<
18
- // HTMLDivElement,
19
- // VirtualListProps<any>
20
- // >(
21
- // (
22
- // {
23
- // items,
24
- // renderItem,
25
- // itemWrapper,
26
- // itemKey,
27
- // height = 400,
28
- // width = 500,
29
- // itemSize,
30
- // overscan = 5,
31
- // scrollDirection = 'forward',
32
- // onScroll,
33
- // className = '',
34
- // itemClassName = '',
35
- // style = {},
36
- // estimatedItemSize = 35,
37
- // getItemSize,
38
- // stickyIndices = [],
39
- // onScrollEnd,
40
- // innerRef,
41
- // scrollOffsetRef,
42
- // },
43
- // containerRef
44
- // ) => {
45
- // const {
46
- // virtualItems,
47
- // isScrolling,
48
- // scrollOffset,
49
- // totalSize,
50
- // containerRef: internalContainerRef,
51
- // innerRef: internalInnerRef,
52
- // getItemStyle,
53
- // } = useVirtualList({
54
- // items,
55
- // getItemKey: itemKey,
56
- // containerHeight:
57
- // typeof height === 'number'
58
- // ? height
59
- // : 400,
60
- // containerWidth:
61
- // typeof width === 'number'
62
- // ? width
63
- // : 500,
64
- // itemSize: getItemSize || itemSize,
65
- // overscan,
66
- // scrollDirection,
67
- // estimatedItemSize,
68
- // onScroll,
69
- // onScrollEnd,
70
- // stickyIndices,
71
- // });
72
- // /**
73
- // * Local refs
74
- // */
75
- // const mergedContainerRef =
76
- // useRef<HTMLDivElement | null>(null);
77
- // const mergedInnerRef =
78
- // useRef<HTMLDivElement | null>(null);
79
- // /**
80
- // * Expose container ref
81
- // */
82
- // useImperativeHandle(
83
- // containerRef,
84
- // () => mergedContainerRef.current as HTMLDivElement
85
- // );
86
- // /**
87
- // * Expose inner ref
88
- // */
89
- // useImperativeHandle(
90
- // innerRef,
91
- // () => mergedInnerRef.current as HTMLDivElement
92
- // );
93
- // /**
94
- // * Expose current scroll offset
95
- // */
96
- // useEffect(() => {
97
- // if (scrollOffsetRef) {
98
- // scrollOffsetRef.current =
99
- // scrollOffset;
100
- // }
101
- // }, [scrollOffset, scrollOffsetRef]);
102
- // /**
103
- // * Container styles
104
- // */
105
- // const containerStyle: React.CSSProperties =
106
- // {
107
- // height,
108
- // width,
109
- // overflow: 'auto',
110
- // position: 'relative',
111
- // ...style,
112
- // };
113
- // /**
114
- // * Inner wrapper styles
115
- // */
116
- // const innerStyle: React.CSSProperties = {
117
- // position: 'relative',
118
- // height: totalSize,
119
- // width: '100%',
120
- // };
121
- // return (
122
- // <div
123
- // ref={(el) => {
124
- // mergedContainerRef.current =
125
- // el;
126
- // internalContainerRef.current =
127
- // el;
128
- // }}
129
- // className={`virtualize-container ${className}`}
130
- // style={containerStyle}
131
- // onScroll={(e) => {
132
- // const target =
133
- // e.target as HTMLElement;
134
- // const handler = (
135
- // renderItem as any
136
- // )?.__scrollHandler;
137
- // if (handler) {
138
- // handler(e);
139
- // }
140
- // if (onScroll) {
141
- // onScroll(
142
- // target.scrollTop,
143
- // 'auto'
144
- // );
145
- // }
146
- // }}
147
- // >
148
- // <div
149
- // ref={(el) => {
150
- // mergedInnerRef.current =
151
- // el;
152
- // internalInnerRef.current =
153
- // el;
154
- // }}
155
- // style={innerStyle}
156
- // className="virtualize-inner"
157
- // >
158
- // {virtualItems.map(
159
- // (virtualItem) => {
160
- // const item =
161
- // items[
162
- // virtualItem.index
163
- // ];
164
- // const key = itemKey
165
- // ? itemKey(
166
- // virtualItem.index,
167
- // item
168
- // )
169
- // : virtualItem.index;
170
- // const virtualStyle =
171
- // getItemStyle(
172
- // virtualItem.index,
173
- // virtualItem.size
174
- // );
175
- // const renderProps: RenderItemProps<any> =
176
- // {
177
- // item,
178
- // index:
179
- // virtualItem.index,
180
- // /**
181
- // * @deprecated
182
- // * Kept only for backwards compatibility.
183
- // * Avoid spreading this style in renderItem.
184
- // */
185
- // style:
186
- // virtualStyle,
187
- // isScrolling,
188
- // };
189
- // const content =
190
- // renderItem(
191
- // renderProps
192
- // );
193
- // /**
194
- // * Advanced wrapper API
195
- // */
196
- // if (itemWrapper) {
197
- // return (
198
- // <React.Fragment
199
- // key={key}
200
- // >
201
- // {itemWrapper({
202
- // item,
203
- // index:
204
- // virtualItem.index,
205
- // style:
206
- // virtualStyle,
207
- // children:
208
- // content,
209
- // })}
210
- // </React.Fragment>
211
- // );
212
- // }
213
- // /**
214
- // * Default wrapper
215
- // */
216
- // return (
217
- // <div
218
- // key={key}
219
- // data-virtualize-index={
220
- // virtualItem.index
221
- // }
222
- // className={
223
- // itemClassName
224
- // }
225
- // style={{
226
- // ...virtualStyle,
227
- // boxSizing:
228
- // 'border-box',
229
- // }}
230
- // >
231
- // {content}
232
- // </div>
233
- // );
234
- // }
235
- // )}
236
- // </div>
237
- // </div>
238
- // );
239
- // }
240
- // );
241
- // VirtualList.displayName = 'VirtualList';
242
- // src/components/VirtualList.generic.tsx
243
- // Fully Generic VirtualList - Production Ready with All Fixes
244
- import React, { forwardRef, useEffect, useImperativeHandle, useRef, useCallback, useMemo, } from 'react';
2
+ import React, { forwardRef, useEffect, useImperativeHandle, useRef, } from 'react';
245
3
  import { useVirtualList } from '../hooks/useVirtualList';
246
- // ============================================
247
- // VIRTUALGRID COMPONENT - FULLY GENERIC
248
- // ============================================
249
- export const VirtualList = forwardRef(({ items, renderItem, itemWrapper, itemKey, height = 400, width = 500, itemSize, overscan = 5, scrollDirection = 'forward', onScroll, className = '', itemClassName = '', style = {}, estimatedItemSize = 35, getItemSize, stickyIndices = [], innerRef, scrollOffsetRef, }, containerRef) => {
250
- // FIX 1: Proper ref initialization
251
- const mergedContainerRef = useRef(null);
252
- const mergedInnerRef = useRef(null);
253
- // ✅ FIX 2: Use virtual list hook with proper typing
4
+ /**
5
+ * VirtualList Component
6
+ * Drop-in replacement for long lists with virtualization support
7
+ */
8
+ export const VirtualList = forwardRef(({ items, renderItem, itemWrapper, itemKey, height = 400, width = 500, itemSize, overscan = 5, scrollDirection = 'forward', onScroll, className = '', itemClassName = '', style = {}, estimatedItemSize = 35, getItemSize, stickyIndices = [], onScrollEnd, innerRef, scrollOffsetRef, }, containerRef) => {
254
9
  const { virtualItems, isScrolling, scrollOffset, totalSize, containerRef: internalContainerRef, innerRef: internalInnerRef, getItemStyle, } = useVirtualList({
255
10
  items,
256
11
  getItemKey: itemKey,
257
- containerHeight: typeof height === 'number' ? height : 400,
258
- containerWidth: typeof width === 'number' ? width : 500,
12
+ containerHeight: typeof height === 'number'
13
+ ? height
14
+ : 400,
15
+ containerWidth: typeof width === 'number'
16
+ ? width
17
+ : 500,
259
18
  itemSize: getItemSize || itemSize,
260
19
  overscan,
261
- scrollDirection: 'forward',
20
+ scrollDirection,
262
21
  estimatedItemSize,
263
22
  onScroll,
264
- onScrollEnd: () => { },
23
+ onScrollEnd,
265
24
  stickyIndices,
266
25
  });
267
- // ✅ FIX 3: Proper container ref forwarding
268
- useImperativeHandle(containerRef, () => {
269
- const handle = mergedContainerRef.current;
270
- if (!handle)
271
- return {};
272
- // Add imperative methods
273
- return {
274
- ...handle,
275
- scrollToItem: (index) => {
276
- if (mergedContainerRef.current) {
277
- const item = virtualItems.find(v => v.index === index);
278
- if (item) {
279
- const offset = getItemStyle(index, item.size).top;
280
- if (typeof offset === 'number') {
281
- mergedContainerRef.current.scrollTop = offset;
282
- }
283
- }
284
- }
285
- },
286
- scrollToOffset: (offset) => {
287
- if (mergedContainerRef.current) {
288
- mergedContainerRef.current.scrollTop = offset;
289
- }
290
- },
291
- resetAfterIndex: () => {
292
- // Reset logic here if needed
293
- },
294
- getScrollOffset: () => scrollOffset,
295
- };
296
- }, [virtualItems, getItemStyle, scrollOffset]);
297
- // ✅ FIX 4: Expose inner ref
26
+ /**
27
+ * Local refs
28
+ */
29
+ const mergedContainerRef = useRef(null);
30
+ const mergedInnerRef = useRef(null);
31
+ /**
32
+ * Expose container ref
33
+ */
34
+ useImperativeHandle(containerRef, () => mergedContainerRef.current);
35
+ /**
36
+ * Expose inner ref
37
+ */
298
38
  useImperativeHandle(innerRef, () => mergedInnerRef.current);
299
- // ✅ FIX 5: Update scroll offset ref
39
+ /**
40
+ * Expose current scroll offset
41
+ */
300
42
  useEffect(() => {
301
43
  if (scrollOffsetRef) {
302
- scrollOffsetRef.current = scrollOffset;
44
+ scrollOffsetRef.current =
45
+ scrollOffset;
303
46
  }
304
47
  }, [scrollOffset, scrollOffsetRef]);
305
- // ✅ FIX 6: Proper height/width conversion
306
- const heightCss = useMemo(() => {
307
- return typeof height === 'string' ? height : `${height}px`;
308
- }, [height]);
309
- const widthCss = useMemo(() => {
310
- return typeof width === 'string' ? width : `${width}px`;
311
- }, [width]);
312
- // ✅ FIX 7: Memoized container style
313
- const containerStyle = useMemo(() => ({
314
- height: heightCss,
315
- width: widthCss,
48
+ /**
49
+ * Container styles
50
+ */
51
+ const containerStyle = {
52
+ height,
53
+ width,
316
54
  overflow: 'auto',
317
55
  position: 'relative',
318
56
  ...style,
319
- }), [heightCss, widthCss, style]);
320
- // ✅ FIX 8: Memoized inner style
321
- const innerStyle = useMemo(() => ({
57
+ };
58
+ /**
59
+ * Inner wrapper styles
60
+ */
61
+ const innerStyle = {
322
62
  position: 'relative',
323
- height: Math.max(totalSize, 1), // Ensure at least 1px
63
+ height: totalSize,
324
64
  width: '100%',
325
- }), [totalSize]);
326
- // FIX 9: Proper scroll handler with error handling
327
- const handleScroll = useCallback((e) => {
328
- try {
329
- const target = e.currentTarget;
65
+ };
66
+ return (_jsx("div", { ref: (el) => {
67
+ mergedContainerRef.current =
68
+ el;
69
+ internalContainerRef.current =
70
+ el;
71
+ }, className: `virtualize-container ${className}`, style: containerStyle, onScroll: (e) => {
72
+ const target = e.target;
73
+ const handler = renderItem?.__scrollHandler;
74
+ if (handler) {
75
+ handler(e);
76
+ }
330
77
  if (onScroll) {
331
- onScroll(target.scrollTop, scrollDirection);
78
+ onScroll(target.scrollTop, 'auto');
332
79
  }
333
- }
334
- catch (error) {
335
- console.error('Error in VirtualList scroll handler:', error);
336
- }
337
- }, [onScroll, scrollDirection]);
338
- // FIX 10: Refs assignment with null safety
339
- const assignContainerRef = useCallback((el) => {
340
- mergedContainerRef.current = el;
341
- if (internalContainerRef) {
342
- internalContainerRef.current = el;
343
- }
344
- }, [internalContainerRef]);
345
- const assignInnerRef = useCallback((el) => {
346
- mergedInnerRef.current = el;
347
- if (internalInnerRef) {
348
- internalInnerRef.current = el;
349
- }
350
- }, [internalInnerRef]);
351
- // ✅ FIX 11: Render with proper error handling and null checks
352
- return (_jsx("div", { ref: assignContainerRef, className: `virtualize-container ${className}`, style: containerStyle, onScroll: handleScroll, role: "presentation", children: _jsx("div", { ref: assignInnerRef, style: innerStyle, className: "virtualize-inner", role: "presentation", children: virtualItems.length === 0 && items.length === 0 ? (
353
- // ✅ FIX 12: Empty state handling
354
- _jsx("div", { style: { padding: '20px', textAlign: 'center', color: '#999' }, children: "No items to display" })) : (virtualItems.map((virtualItem) => {
355
- try {
356
- const item = items[virtualItem.index];
357
- // FIX 13: Null item handling
358
- if (!item) {
359
- return null;
360
- }
361
- const key = itemKey?.(virtualItem.index, item) ??
362
- virtualItem.index;
363
- const virtualStyle = getItemStyle(virtualItem.index, virtualItem.size);
364
- const renderProps = {
365
- item,
366
- index: virtualItem.index,
367
- isScrolling,
368
- };
369
- const content = renderItem(renderProps);
370
- // ✅ FIX 14: Support custom wrapper
371
- if (itemWrapper) {
372
- return (_jsx(React.Fragment, { children: itemWrapper({
373
- item,
374
- index: virtualItem.index,
375
- style: virtualStyle,
376
- children: content,
377
- }) }, key));
378
- }
379
- // ✅ FIX 15: Default wrapper with proper styling
380
- return (_jsx("div", { "data-virtualize-index": virtualItem.index, className: itemClassName, style: {
381
- ...virtualStyle,
382
- boxSizing: 'border-box',
383
- }, role: "presentation", children: content }, key));
384
- }
385
- catch (error) {
386
- console.error(`Error rendering item at index ${virtualItem.index}:`, error);
387
- return null;
80
+ }, children: _jsx("div", { ref: (el) => {
81
+ mergedInnerRef.current =
82
+ el;
83
+ internalInnerRef.current =
84
+ el;
85
+ }, style: innerStyle, className: "virtualize-inner", children: virtualItems.map((virtualItem) => {
86
+ const item = items[virtualItem.index];
87
+ const key = itemKey
88
+ ? itemKey(virtualItem.index, item)
89
+ : virtualItem.index;
90
+ const virtualStyle = getItemStyle(virtualItem.index, virtualItem.size);
91
+ const renderProps = {
92
+ item,
93
+ index: virtualItem.index,
94
+ /**
95
+ * @deprecated
96
+ * Kept only for backwards compatibility.
97
+ * Avoid spreading this style in renderItem.
98
+ */
99
+ style: virtualStyle,
100
+ isScrolling,
101
+ };
102
+ const content = renderItem(renderProps);
103
+ /**
104
+ * Advanced wrapper API
105
+ */
106
+ if (itemWrapper) {
107
+ return (_jsx(React.Fragment, { children: itemWrapper({
108
+ item,
109
+ index: virtualItem.index,
110
+ style: virtualStyle,
111
+ children: content,
112
+ }) }, key));
388
113
  }
389
- })) }) }));
114
+ /**
115
+ * Default wrapper
116
+ */
117
+ return (_jsx("div", { "data-virtualize-index": virtualItem.index, className: itemClassName, style: {
118
+ ...virtualStyle,
119
+ boxSizing: 'border-box',
120
+ }, children: content }, key));
121
+ }) }) }));
390
122
  });
391
123
  VirtualList.displayName = 'VirtualList';
392
- export default VirtualList;
393
124
  //# sourceMappingURL=VirtualList.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"VirtualList.js","sourceRoot":"","sources":["../../src/components/VirtualList.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"VirtualList.js","sourceRoot":"","sources":["../../src/components/VirtualList.tsx"],"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");class r{constructor(e=35){Object.defineProperty(this,"itemSizeMap",{enumerable:!0,configurable:!0,writable:!0,value:{}}),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}),Object.defineProperty(this,"prefix",{enumerable:!0,configurable:!0,writable:!0,value:[0]}),Object.defineProperty(this,"dirty",{enumerable:!0,configurable:!0,writable:!0,value:!0}),this.estimatedItemSize=e}setItemCount(e){this.itemCount=e,this.dirty=!0}recordItemSize(e,t){this.itemSizeMap[e]!==t&&(this.itemSizeMap[e]=t,this.dirty=!0)}rebuildPrefix(){let e=0;this.prefix=[0];for(let t=0;t<this.itemCount;t++)e+=this.itemSizeMap[t]??this.estimatedItemSize,this.prefix[t+1]=e;this.dirty=!1}getItemSize(e){return this.itemSizeMap[e]??this.estimatedItemSize}getItemOffset(e){return this.dirty&&this.rebuildPrefix(),this.prefix[e]??0}getTotalSize(){return this.dirty&&this.rebuildPrefix(),this.prefix[this.itemCount]||0}binarySearch(e){this.dirty&&this.rebuildPrefix();let t=0,r=this.itemCount-1;for(;t<=r;){const n=t+r>>1,s=this.prefix[n];if(s===e)return n;s<e?t=n+1:r=n-1}return Math.max(0,t-1)}getVisibleRange(e,t,r,n=5){this.setItemCount(r);const s=this.binarySearch(e),i=this.binarySearch(e+t);return{startIndex:Math.max(0,s-n),endIndex:Math.min(r-1,i+n),overscanStartIndex:s,overscanEndIndex:i}}getVisibleItems(e,t,r,n){const s=this.getVisibleRange(e,t,r,n),i=[];for(let e=s.startIndex;e<=s.endIndex;e++)i.push({index:e,size:this.getItemSize(e),offset:this.getItemOffset(e)});return i}getScrollOffsetForIndex(e,t,r="start"){const n=this.getItemOffset(e),s=this.getItemSize(e);return"center"===r?Math.max(0,n-(t-s)/2):"end"===r?Math.max(0,n-t+s):Math.max(0,n)}}class n{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,"observedElements",{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,"rafId",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"onMeasure",{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;const n=Math.round(t.contentRect.height);this.measurements.get(r)!==n&&(this.measurements.set(r,n),this.pendingUpdates.set(r,n))}this.flushPendingUpdates()}}),"undefined"!=typeof window&&"ResizeObserver"in window&&(this.resizeObserver=new ResizeObserver(this.handleResize))}startMeasuring(e,t){this.onMeasure=t;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){t.dataset.virtualizeIndex=String(e),this.observedElements.set(t,e),this.resizeObserver?.observe(t),this.syncMeasure(e,t)}unobserveItem(e){this.resizeObserver?.unobserve(e),this.observedElements.delete(e)}flushPendingUpdates(){null===this.rafId&&(this.rafId=requestAnimationFrame(()=>{this.pendingUpdates.forEach((e,t)=>{this.onMeasure?.(t,e)}),this.pendingUpdates.clear(),this.rafId=null}))}syncMeasure(e,t){const r=t.getBoundingClientRect().height;if(r<=0)return;const n=Math.round(r);this.measurements.get(e)!==n&&(this.measurements.set(e,n),this.onMeasure?.(e,n))}stopMeasuring(){this.resizeObserver?.disconnect(),this.pendingUpdates.clear(),null!==this.rafId&&cancelAnimationFrame(this.rafId)}getMeasurement(e){return this.measurements.get(e)}getAllMeasurements(){return new Map(this.measurements)}clearPending(){this.pendingUpdates.clear()}clearMeasurements(){this.measurements.clear()}destroy(){this.stopMeasuring(),this.measurements.clear(),this.pendingUpdates.clear(),this.observedElements=new WeakMap,this.onMeasure=null}}function s(e){const{items:s,containerHeight:i,overscan:o=5,scrollDirection:l="forward",estimatedItemSize:a=35,onScroll:u,onScrollEnd:c,stickyIndices:f=[]}=e,d=t.useRef(new r(a)),h=t.useRef(new n),m=t.useRef(null),g=t.useRef(null),[p,b]=t.useState(0),[x,y]=t.useState(!1),v=t.useRef(null),S=t.useRef(0),I=t.useRef(l),[M,w]=t.useState([]);t.useEffect(()=>{const e=d.current.getVisibleItems(p,i,s.length,o).map(e=>({index:e.index,offset:e.offset,size:e.size,isSticky:f.includes(e.index)}));w(t=>{if(t.length===e.length){let r=!1;for(let n=0;n<t.length;n++){const s=t[n],i=e[n];if(s.index!==i.index||s.offset!==i.offset||s.size!==i.size||s.isSticky!==i.isSticky){r=!0;break}}if(!r)return t}return e})},[p,i,s.length,o,f]);const z=t.useCallback(e=>{const t=e.currentTarget.scrollTop;if(t===S.current)return;const r=t>S.current?"forward":"reverse";I.current=r,S.current=t,b(t),y(!0),u&&u(t,r),v.current&&clearTimeout(v.current),v.current=setTimeout(()=>{y(!1),c&&c()},150)},[u,c]);t.useEffect(()=>{const e=m.current;if(!e)return;const t=e=>{z(e)};return e.addEventListener("scroll",t),()=>{e.removeEventListener("scroll",t)}},[z]);const R=t.useCallback((e,t)=>{d.current.recordItemSize(e,t)},[]);t.useEffect(()=>{const e=m.current;return e&&h.current.startMeasuring(e,R),()=>{h.current.stopMeasuring()}},[R]);const E=t.useCallback((e,t="start")=>{const r=d.current.getScrollOffsetForIndex(e,i,t);m.current&&(m.current.scrollTop=r)},[i]),O=t.useCallback(e=>{m.current&&(m.current.scrollTop=e)},[]),k=t.useCallback((e,t)=>{const r=d.current.getItemOffset(e),n=f.includes(e);return{position:n?"sticky":"absolute",top:n?0:r,left:0,width:"100%",height:t,zIndex:n?10:0}},[f]);t.useEffect(()=>()=>{v.current&&clearTimeout(v.current),h.current.destroy()},[]);const C=d.current.getTotalSize();return{virtualItems:M,isScrolling:x,scrollOffset:p,totalSize:C,scrollToItem:E,scrollToOffset:O,setScrollOffset:b,containerRef:m,innerRef:g,getItemStyle:k}}const i=t.forwardRef(({items:r,renderItem:n,itemWrapper:i,itemKey:o,height:l=400,width:a=500,itemSize:u,overscan:c=5,scrollDirection:f="forward",onScroll:d,className:h="",itemClassName:m="",style:g={},estimatedItemSize:p=35,getItemSize:b,stickyIndices:x=[],innerRef:y,scrollOffsetRef:v},S)=>{const I=t.useRef(null),M=t.useRef(null),{virtualItems:w,isScrolling:z,scrollOffset:R,totalSize:E,containerRef:O,innerRef:k,getItemStyle:C}=s({items:r,containerHeight:"number"==typeof l?l:400,overscan:c,scrollDirection:"forward",estimatedItemSize:p,onScroll:d,onScrollEnd:()=>{},stickyIndices:x});t.useImperativeHandle(S,()=>{const e=I.current;return e?{...e,scrollToItem:e=>{if(I.current){const t=w.find(t=>t.index===e);if(t){const r=C(e,t.size).top;"number"==typeof r&&(I.current.scrollTop=r)}}},scrollToOffset:e=>{I.current&&(I.current.scrollTop=e)},resetAfterIndex:()=>{},getScrollOffset:()=>R}:{}},[w,C,R]),t.useImperativeHandle(y,()=>M.current),t.useEffect(()=>{v&&(v.current=R)},[R,v]);const j=t.useMemo(()=>"string"==typeof l?l:`${l}px`,[l]),T=t.useMemo(()=>"string"==typeof a?a:`${a}px`,[a]),P=t.useMemo(()=>({height:j,width:T,overflow:"auto",position:"relative",...g}),[j,T,g]),N=t.useMemo(()=>({position:"relative",height:Math.max(E,1),width:"100%"}),[E]),L=t.useCallback(e=>{try{const t=e.currentTarget;d&&d(t.scrollTop,f)}catch(e){console.error("Error in VirtualList scroll handler:",e)}},[d,f]),V=t.useCallback(e=>{I.current=e,O&&(O.current=e)},[O]),$=t.useCallback(e=>{M.current=e,k&&(k.current=e)},[k]);return e.jsx("div",{ref:V,className:`virtualize-container ${h}`,style:P,onScroll:L,role:"presentation",children:e.jsx("div",{ref:$,style:N,className:"virtualize-inner",role:"presentation",children:0===w.length&&0===r.length?e.jsx("div",{style:{padding:"20px",textAlign:"center",color:"#999"},children:"No items to display"}):w.map(s=>{try{const l=r[s.index];if(!l)return null;const a=o?.(s.index,l)??s.index,u=C(s.index,s.size),c={item:l,index:s.index,isScrolling:z},f=n(c);return i?e.jsx(t.Fragment,{children:i({item:l,index:s.index,style:u,children:f})},a):e.jsx("div",{"data-virtualize-index":s.index,className:m,style:{...u,boxSizing:"border-box"},role:"presentation",children:f},a)}catch(e){return console.error(`Error rendering item at index ${s.index}:`,e),null}})})})});i.displayName="VirtualList";const o=t.forwardRef(({items:r,renderItem:n,itemKey:s,height:i=600,width:o="100%",columnCount:l=3,rowHeight:a=200,columnWidth:u,layout:c="grid",overscan:f=5,gap:d=16,onScroll:h,onVisibleRangeChange:m,innerClassName:g,innerStyle:p,containerClassName:b,containerStyle:x},y)=>{const v=t.useRef(null);t.useImperativeHandle(y,()=>v.current);const[S,I]=t.useState(0),[M,w]=t.useState(!1),[z,R]=t.useState(0),E=t.useRef(null);t.useEffect(()=>{if(!v.current)return;const e=v.current,t=new ResizeObserver(e=>{for(const t of e){const e=t.contentRect.width;e>0&&R(e)}});return t.observe(e),()=>t.disconnect()},[]),t.useEffect(()=>()=>{E.current&&clearTimeout(E.current)},[]);const O=z>0&&r.length>0,k=t.useMemo(()=>{if("auto"===l){const e=200;return Math.max(1,Math.floor(z/(e+d)))}return Math.max(1,Number(l))},[l,z,d]),C=t.useMemo(()=>{if("number"==typeof u)return u;if(u&&"function"==typeof u)return u(0);const e=d*Math.max(0,k-1);return Math.max(50,(z-e)/k)},[u,z,k,d]),j=t.useMemo(()=>{if(!O)return[];const e=[];if("masonry"===c){const t=Array(k).fill(0);for(let n=0;n<r.length;n++){const r="function"==typeof a?a(n):Number(a),s=t.indexOf(Math.min(...t)),i=s*(C+d),o=t[s];e.push({x:i,y:o,width:C,height:r}),t[s]+=r+d}}else for(let t=0;t<r.length;t++){const r=Math.floor(t/k),n=t%k,s="function"==typeof a?a(t):Number(a);e.push({x:n*(C+d),y:r*(s+d),width:C,height:s})}return e},[r,k,C,d,c,a,O]),T=t.useMemo(()=>{if(!j.length||!O)return{start:0,end:0};const e="string"==typeof i?parseInt(i):Number(i);let t=0;for(let e=0;e<j.length;e++)if(j[e].y+j[e].height>=S){t=e;break}let n=j.length-1;for(let t=j.length-1;t>=0;t--)if(j[t].y<=S+e){n=t;break}return{start:Math.max(0,t-f),end:Math.min(r.length-1,n+f)}},[j,S,i,f,r.length,O]),P=t.useMemo(()=>{if(!j.length)return 0;return Math.max(...j.map(e=>e.y+e.height))||0},[j]),N=t.useCallback(e=>{const t=e.currentTarget,r=t.scrollTop,n=t.scrollLeft;I(r),w(!0),h?.(r,n),E.current&&clearTimeout(E.current),E.current=setTimeout(()=>{w(!1)},120)},[h]);t.useEffect(()=>{m?.(T.start,T.end)},[T,m]);const L={height:"string"==typeof i?i:`${i}px`,width:"string"==typeof o?o:`${o}px`,overflowY:"auto",overflowX:"hidden",position:"relative",...x},V={position:"relative",height:P||1,width:Math.max(0,k*C+(k-1)*d),...p};if(!O)return e.jsx("div",{ref:v,className:b,style:L,onScroll:N,children:e.jsx("div",{className:g,style:V})});const $=[];for(let e=T.start;e<=T.end;e++)e>=0&&e<r.length&&$.push({index:e,key:s?.(e,r[e])??e});return e.jsx("div",{ref:v,className:b,style:L,onScroll:N,children:e.jsx("div",{className:g,style:V,children:$.map(t=>{const s=r[t.index],i=j[t.index];if(!s||!i)return null;const o={position:"absolute",top:`${i.y}px`,left:`${i.x}px`,width:`${i.width}px`,height:`${i.height}px`,boxSizing:"border-box"};return e.jsx("div",{style:o,children:n({item:s,index:t.index,isScrolling:M})},t.key)})})})});function l(e,t){return t?e:e.toLowerCase()}o.displayName="VirtualGrid";const a=new Map;exports.MeasurementSystem=n,exports.VirtualGrid=o,exports.VirtualList=i,exports.VirtualizationEngine=r,exports.useInfiniteScroll=function({onLoadMore:e,threshold:r=500,isLoading:n=!1,enabled:s=!0}){const i=t.useRef(null),[o,l]=t.useState(!1),a=t.useRef(!1),u=t.useRef(e);t.useEffect(()=>{u.current=e},[e]);const c=t.useCallback(()=>{if(!s||n)return;const e=i.current;if(!e)return;const{scrollTop:t,scrollHeight:o,clientHeight:c}=e,f=o-t-c<=r;l(f),!f||a.current||n||(a.current=!0,Promise.resolve(u.current()).finally(()=>{a.current=!1}))},[r,n,s]);return t.useEffect(()=>{if(!s)return;const e=i.current;if(!e)return;const t=()=>{c()};return e.addEventListener("scroll",t,{passive:!0}),c(),()=>{e.removeEventListener("scroll",t)}},[c,s]),{containerRef:i,isAtBottom:o,isLoading:n,checkIfAtBottom:c}},exports.useLazyLoad=function({threshold:e=.1,onVisible:r,root:n=null,rootMargin:s="0px",enabled:i=!0,once:o=!0}={}){const[l,a]=t.useState(!1),[u,c]=t.useState(null),f=t.useRef(null),d=t.useRef(r);return t.useEffect(()=>{d.current=r},[r]),t.useEffect(()=>{if(!i)return;const t=f.current;if(!t)return;if("undefined"==typeof window||!("IntersectionObserver"in window))return a(!0),void d.current?.();const r=new IntersectionObserver(([e])=>{c(e),e.isIntersecting?(a(!0),d.current?.(),o&&r.unobserve(e.target)):o||a(!1)},{threshold:e,root:n,rootMargin:s});return r.observe(t),()=>{r.disconnect()}},[e,n,s,i,o]),{ref:f,isVisible:l,entry:u}},exports.useScrollRestoration=function(e,r,{persist:n=!0,storageKey:s="virtualize-scroll-positions",storage:i,autoSave:o=!1,maxEntries:l=100,useRAF:u=!0,enabled:c=!0,onError:f}={}){const d=t.useRef(i??("undefined"!=typeof window&&"undefined"!=typeof document?window.localStorage:null));t.useEffect(()=>{if(c&&n&&d.current&&!(a.size>0))try{const e=d.current.getItem(s);if(!e)return;JSON.parse(e).forEach(e=>{a.set(e.key,e)})}catch(e){f?.(e)}},[c,n,s,f]);const h=t.useCallback(()=>{if(n&&d.current)try{const e=Array.from(a.values()).sort((e,t)=>t.timestamp-e.timestamp).slice(0,l);d.current.setItem(s,JSON.stringify(e))}catch(e){f?.(e)}},[n,s,l,f]),m=t.useCallback(()=>{if(!c)return;const t=r.current;if(!t)return;const n={key:e,top:t.scrollTop,left:t.scrollLeft,timestamp:Date.now()};a.set(e,n),h()},[e,r,c,h]),g=t.useCallback(()=>{if(!c)return;if(!r.current)return;const t=a.get(e);if(!t)return;const n=()=>{r.current&&(r.current.scrollTop=t.top,r.current.scrollLeft=t.left)};u?requestAnimationFrame(n):n()},[e,r,c,u]);return t.useEffect(()=>{c&&g()},[c,g]),t.useEffect(()=>{if(c)return()=>{m()}},[c,m]),t.useEffect(()=>{if(!c||!o||!r.current)return;const e=r.current,t=()=>{m()};return e.addEventListener("scroll",t,{passive:!0}),()=>{e.removeEventListener("scroll",t)}},[c,o,m,r]),{savePosition:m,restorePosition:g}},exports.useVirtualList=s,exports.useVirtualizedSearch=function({items:r,searchValue:n,searchFields:s,caseSensitive:i=!1,deferSearch:o=!0,matcher:a}){const u=t.useMemo(()=>l(n.trim(),i),[n,i]),c=t.useDeferredValue(u),f=o?c:u,d=o&&c!==u,h=t.useCallback(e=>!f||(a?a(e,f):function(e,t,r,n){return r.some(r=>{const s=e[r];return null!=s&&l(String(s).trim(),n).includes(t)})}(e,f,s,i)),[f,a,s,i]),m=t.useMemo(()=>f?r.filter(h):[...r],[r,f,h]),g=t.useCallback(e=>h(e),[h]),p=t.useMemo(()=>{if(!u)return null;const e=u.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");return new RegExp(`(${e})`,i?"g":"gi")},[u,i]),b=t.useCallback(r=>{if(!r||!p)return r;return r.split(p).map((r,n)=>n%2==1?e.jsx("mark",{children:r},n):e.jsx(t.Fragment,{children:r},n))},[p]);return{filteredItems:m,resultCount:m.length,query:f,hasMatch:g,isSearching:d,highlightMatch:b}};
1
+ "use strict";var e=require("react/jsx-runtime"),t=require("react");class r{constructor(e=35){Object.defineProperty(this,"itemSizeMap",{enumerable:!0,configurable:!0,writable:!0,value:{}}),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}),Object.defineProperty(this,"prefix",{enumerable:!0,configurable:!0,writable:!0,value:[0]}),Object.defineProperty(this,"dirty",{enumerable:!0,configurable:!0,writable:!0,value:!0}),this.estimatedItemSize=e}setItemCount(e){this.itemCount=e,this.dirty=!0}recordItemSize(e,t){this.itemSizeMap[e]!==t&&(this.itemSizeMap[e]=t,this.dirty=!0)}rebuildPrefix(){let e=0;this.prefix=[0];for(let t=0;t<this.itemCount;t++)e+=this.itemSizeMap[t]??this.estimatedItemSize,this.prefix[t+1]=e;this.dirty=!1}getItemSize(e){return this.itemSizeMap[e]??this.estimatedItemSize}getItemOffset(e){return this.dirty&&this.rebuildPrefix(),this.prefix[e]??0}getTotalSize(){return this.dirty&&this.rebuildPrefix(),this.prefix[this.itemCount]||0}binarySearch(e){this.dirty&&this.rebuildPrefix();let t=0,r=this.itemCount-1;for(;t<=r;){const n=t+r>>1,s=this.prefix[n];if(s===e)return n;s<e?t=n+1:r=n-1}return Math.max(0,t-1)}getVisibleRange(e,t,r,n=5){this.setItemCount(r);const s=this.binarySearch(e),i=this.binarySearch(e+t);return{startIndex:Math.max(0,s-n),endIndex:Math.min(r-1,i+n),overscanStartIndex:s,overscanEndIndex:i}}getVisibleItems(e,t,r,n){const s=this.getVisibleRange(e,t,r,n),i=[];for(let e=s.startIndex;e<=s.endIndex;e++)i.push({index:e,size:this.getItemSize(e),offset:this.getItemOffset(e)});return i}getScrollOffsetForIndex(e,t,r="start"){const n=this.getItemOffset(e),s=this.getItemSize(e);return"center"===r?Math.max(0,n-(t-s)/2):"end"===r?Math.max(0,n-t+s):Math.max(0,n)}}class n{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,"observedElements",{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,"rafId",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"onMeasure",{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;const n=Math.round(t.contentRect.height);this.measurements.get(r)!==n&&(this.measurements.set(r,n),this.pendingUpdates.set(r,n))}this.flushPendingUpdates()}}),"undefined"!=typeof window&&"ResizeObserver"in window&&(this.resizeObserver=new ResizeObserver(this.handleResize))}startMeasuring(e,t){this.onMeasure=t;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){t.dataset.virtualizeIndex=String(e),this.observedElements.set(t,e),this.resizeObserver?.observe(t),this.syncMeasure(e,t)}unobserveItem(e){this.resizeObserver?.unobserve(e),this.observedElements.delete(e)}flushPendingUpdates(){null===this.rafId&&(this.rafId=requestAnimationFrame(()=>{this.pendingUpdates.forEach((e,t)=>{this.onMeasure?.(t,e)}),this.pendingUpdates.clear(),this.rafId=null}))}syncMeasure(e,t){const r=t.getBoundingClientRect().height;if(r<=0)return;const n=Math.round(r);this.measurements.get(e)!==n&&(this.measurements.set(e,n),this.onMeasure?.(e,n))}stopMeasuring(){this.resizeObserver?.disconnect(),this.pendingUpdates.clear(),null!==this.rafId&&cancelAnimationFrame(this.rafId)}getMeasurement(e){return this.measurements.get(e)}getAllMeasurements(){return new Map(this.measurements)}clearPending(){this.pendingUpdates.clear()}clearMeasurements(){this.measurements.clear()}destroy(){this.stopMeasuring(),this.measurements.clear(),this.pendingUpdates.clear(),this.observedElements=new WeakMap,this.onMeasure=null}}function s(e){const{items:s,containerHeight:i,overscan:o=5,scrollDirection:l="forward",estimatedItemSize:a=35,onScroll:u,onScrollEnd:c,stickyIndices:f=[]}=e,d=t.useRef(new r(a)),h=t.useRef(new n),m=t.useRef(null),g=t.useRef(null),[p,b]=t.useState(0),[x,v]=t.useState(!1),y=t.useRef(null),S=t.useRef(0),I=t.useRef(l),[w,M]=t.useState([]);t.useEffect(()=>{const e=d.current.getVisibleItems(p,i,s.length,o).map(e=>({index:e.index,offset:e.offset,size:e.size,isSticky:f.includes(e.index)}));M(t=>{if(t.length===e.length){let r=!1;for(let n=0;n<t.length;n++){const s=t[n],i=e[n];if(s.index!==i.index||s.offset!==i.offset||s.size!==i.size||s.isSticky!==i.isSticky){r=!0;break}}if(!r)return t}return e})},[p,i,s.length,o,f]);const z=t.useCallback(e=>{const t=e.currentTarget.scrollTop;if(t===S.current)return;const r=t>S.current?"forward":"reverse";I.current=r,S.current=t,b(t),v(!0),u&&u(t,r),y.current&&clearTimeout(y.current),y.current=setTimeout(()=>{v(!1),c&&c()},150)},[u,c]);t.useEffect(()=>{const e=m.current;if(!e)return;const t=e=>{z(e)};return e.addEventListener("scroll",t),()=>{e.removeEventListener("scroll",t)}},[z]);const R=t.useCallback((e,t)=>{d.current.recordItemSize(e,t)},[]);t.useEffect(()=>{const e=m.current;return e&&h.current.startMeasuring(e,R),()=>{h.current.stopMeasuring()}},[R]);const E=t.useCallback((e,t="start")=>{const r=d.current.getScrollOffsetForIndex(e,i,t);m.current&&(m.current.scrollTop=r)},[i]),O=t.useCallback(e=>{m.current&&(m.current.scrollTop=e)},[]),k=t.useCallback((e,t)=>{const r=d.current.getItemOffset(e),n=f.includes(e);return{position:n?"sticky":"absolute",top:n?0:r,left:0,width:"100%",height:t,zIndex:n?10:0}},[f]);t.useEffect(()=>()=>{y.current&&clearTimeout(y.current),h.current.destroy()},[]);const C=d.current.getTotalSize();return{virtualItems:w,isScrolling:x,scrollOffset:p,totalSize:C,scrollToItem:E,scrollToOffset:O,setScrollOffset:b,containerRef:m,innerRef:g,getItemStyle:k}}const i=t.forwardRef(({items:r,renderItem:n,itemWrapper:i,itemKey:o,height:l=400,width:a=500,itemSize:u,overscan:c=5,scrollDirection:f="forward",onScroll:d,className:h="",itemClassName:m="",style:g={},estimatedItemSize:p=35,getItemSize:b,stickyIndices:x=[],onScrollEnd:v,innerRef:y,scrollOffsetRef:S},I)=>{const{virtualItems:w,isScrolling:M,scrollOffset:z,totalSize:R,containerRef:E,innerRef:O,getItemStyle:k}=s({items:r,containerHeight:"number"==typeof l?l:400,overscan:c,scrollDirection:f,estimatedItemSize:p,onScroll:d,onScrollEnd:v,stickyIndices:x}),C=t.useRef(null),j=t.useRef(null);t.useImperativeHandle(I,()=>C.current),t.useImperativeHandle(y,()=>j.current),t.useEffect(()=>{S&&(S.current=z)},[z,S]);const P={height:l,width:a,overflow:"auto",position:"relative",...g},N={position:"relative",height:R,width:"100%"};return e.jsx("div",{ref:e=>{C.current=e,E.current=e},className:`virtualize-container ${h}`,style:P,onScroll:e=>{const t=e.target,r=n?.__scrollHandler;r&&r(e),d&&d(t.scrollTop,"auto")},children:e.jsx("div",{ref:e=>{j.current=e,O.current=e},style:N,className:"virtualize-inner",children:w.map(s=>{const l=r[s.index],a=o?o(s.index,l):s.index,u=k(s.index,s.size),c={item:l,index:s.index,style:u,isScrolling:M},f=n(c);return i?e.jsx(t.Fragment,{children:i({item:l,index:s.index,style:u,children:f})},a):e.jsx("div",{"data-virtualize-index":s.index,className:m,style:{...u,boxSizing:"border-box"},children:f},a)})})})});i.displayName="VirtualList";const o=t.forwardRef(({items:r,renderItem:n,itemKey:s,height:i=600,width:o="100%",columnCount:l=3,rowHeight:a=200,columnWidth:u,layout:c="grid",overscan:f=5,gap:d=16,onScroll:h,onVisibleRangeChange:m,innerClassName:g,innerStyle:p,containerClassName:b,containerStyle:x},v)=>{const y=t.useRef(null);t.useImperativeHandle(v,()=>y.current);const[S,I]=t.useState(0),[w,M]=t.useState(!1),[z,R]=t.useState(0),E=t.useRef(null);t.useEffect(()=>{if(!y.current)return;const e=y.current,t=new ResizeObserver(e=>{for(const t of e){const e=t.contentRect.width;e>0&&R(e)}});return t.observe(e),()=>t.disconnect()},[]),t.useEffect(()=>()=>{E.current&&clearTimeout(E.current)},[]);const O=z>0&&r.length>0,k=t.useMemo(()=>{if("auto"===l){const e=200;return Math.max(1,Math.floor(z/(e+d)))}return Math.max(1,Number(l))},[l,z,d]),C=t.useMemo(()=>{if("number"==typeof u)return u;if(u&&"function"==typeof u)return u(0);const e=d*Math.max(0,k-1);return Math.max(50,(z-e)/k)},[u,z,k,d]),j=t.useMemo(()=>{if(!O)return[];const e=[];if("masonry"===c){const t=Array(k).fill(0);for(let n=0;n<r.length;n++){const r="function"==typeof a?a(n):Number(a),s=t.indexOf(Math.min(...t)),i=s*(C+d),o=t[s];e.push({x:i,y:o,width:C,height:r}),t[s]+=r+d}}else for(let t=0;t<r.length;t++){const r=Math.floor(t/k),n=t%k,s="function"==typeof a?a(t):Number(a);e.push({x:n*(C+d),y:r*(s+d),width:C,height:s})}return e},[r,k,C,d,c,a,O]),P=t.useMemo(()=>{if(!j.length||!O)return{start:0,end:0};const e="string"==typeof i?parseInt(i):Number(i);let t=0;for(let e=0;e<j.length;e++)if(j[e].y+j[e].height>=S){t=e;break}let n=j.length-1;for(let t=j.length-1;t>=0;t--)if(j[t].y<=S+e){n=t;break}return{start:Math.max(0,t-f),end:Math.min(r.length-1,n+f)}},[j,S,i,f,r.length,O]),N=t.useMemo(()=>{if(!j.length)return 0;return Math.max(...j.map(e=>e.y+e.height))||0},[j]),T=t.useCallback(e=>{const t=e.currentTarget,r=t.scrollTop,n=t.scrollLeft;I(r),M(!0),h?.(r,n),E.current&&clearTimeout(E.current),E.current=setTimeout(()=>{M(!1)},120)},[h]);t.useEffect(()=>{m?.(P.start,P.end)},[P,m]);const L={height:"string"==typeof i?i:`${i}px`,width:"string"==typeof o?o:`${o}px`,overflowY:"auto",overflowX:"hidden",position:"relative",...x},V={position:"relative",height:N||1,width:Math.max(0,k*C+(k-1)*d),...p};if(!O)return e.jsx("div",{ref:y,className:b,style:L,onScroll:T,children:e.jsx("div",{className:g,style:V})});const A=[];for(let e=P.start;e<=P.end;e++)e>=0&&e<r.length&&A.push({index:e,key:s?.(e,r[e])??e});return e.jsx("div",{ref:y,className:b,style:L,onScroll:T,children:e.jsx("div",{className:g,style:V,children:A.map(t=>{const s=r[t.index],i=j[t.index];if(!s||!i)return null;const o={position:"absolute",top:`${i.y}px`,left:`${i.x}px`,width:`${i.width}px`,height:`${i.height}px`,boxSizing:"border-box"};return e.jsx("div",{style:o,children:n({item:s,index:t.index,isScrolling:w})},t.key)})})})});function l(e,t){return t?e:e.toLowerCase()}o.displayName="VirtualGrid";const a=new Map;exports.MeasurementSystem=n,exports.VirtualGrid=o,exports.VirtualList=i,exports.VirtualizationEngine=r,exports.useInfiniteScroll=function({onLoadMore:e,threshold:r=500,isLoading:n=!1,enabled:s=!0}){const i=t.useRef(null),[o,l]=t.useState(!1),a=t.useRef(!1),u=t.useRef(e);t.useEffect(()=>{u.current=e},[e]);const c=t.useCallback(()=>{if(!s||n)return;const e=i.current;if(!e)return;const{scrollTop:t,scrollHeight:o,clientHeight:c}=e,f=o-t-c<=r;l(f),!f||a.current||n||(a.current=!0,Promise.resolve(u.current()).finally(()=>{a.current=!1}))},[r,n,s]);return t.useEffect(()=>{if(!s)return;const e=i.current;if(!e)return;const t=()=>{c()};return e.addEventListener("scroll",t,{passive:!0}),c(),()=>{e.removeEventListener("scroll",t)}},[c,s]),{containerRef:i,isAtBottom:o,isLoading:n,checkIfAtBottom:c}},exports.useLazyLoad=function({threshold:e=.1,onVisible:r,root:n=null,rootMargin:s="0px",enabled:i=!0,once:o=!0}={}){const[l,a]=t.useState(!1),[u,c]=t.useState(null),f=t.useRef(null),d=t.useRef(r);return t.useEffect(()=>{d.current=r},[r]),t.useEffect(()=>{if(!i)return;const t=f.current;if(!t)return;if("undefined"==typeof window||!("IntersectionObserver"in window))return a(!0),void d.current?.();const r=new IntersectionObserver(([e])=>{c(e),e.isIntersecting?(a(!0),d.current?.(),o&&r.unobserve(e.target)):o||a(!1)},{threshold:e,root:n,rootMargin:s});return r.observe(t),()=>{r.disconnect()}},[e,n,s,i,o]),{ref:f,isVisible:l,entry:u}},exports.useScrollRestoration=function(e,r,{persist:n=!0,storageKey:s="virtualize-scroll-positions",storage:i,autoSave:o=!1,maxEntries:l=100,useRAF:u=!0,enabled:c=!0,onError:f}={}){const d=t.useRef(i??("undefined"!=typeof window&&"undefined"!=typeof document?window.localStorage:null));t.useEffect(()=>{if(c&&n&&d.current&&!(a.size>0))try{const e=d.current.getItem(s);if(!e)return;JSON.parse(e).forEach(e=>{a.set(e.key,e)})}catch(e){f?.(e)}},[c,n,s,f]);const h=t.useCallback(()=>{if(n&&d.current)try{const e=Array.from(a.values()).sort((e,t)=>t.timestamp-e.timestamp).slice(0,l);d.current.setItem(s,JSON.stringify(e))}catch(e){f?.(e)}},[n,s,l,f]),m=t.useCallback(()=>{if(!c)return;const t=r.current;if(!t)return;const n={key:e,top:t.scrollTop,left:t.scrollLeft,timestamp:Date.now()};a.set(e,n),h()},[e,r,c,h]),g=t.useCallback(()=>{if(!c)return;if(!r.current)return;const t=a.get(e);if(!t)return;const n=()=>{r.current&&(r.current.scrollTop=t.top,r.current.scrollLeft=t.left)};u?requestAnimationFrame(n):n()},[e,r,c,u]);return t.useEffect(()=>{c&&g()},[c,g]),t.useEffect(()=>{if(c)return()=>{m()}},[c,m]),t.useEffect(()=>{if(!c||!o||!r.current)return;const e=r.current,t=()=>{m()};return e.addEventListener("scroll",t,{passive:!0}),()=>{e.removeEventListener("scroll",t)}},[c,o,m,r]),{savePosition:m,restorePosition:g}},exports.useVirtualList=s,exports.useVirtualizedSearch=function({items:r,searchValue:n,searchFields:s,caseSensitive:i=!1,deferSearch:o=!0,matcher:a}){const u=t.useMemo(()=>l(n.trim(),i),[n,i]),c=t.useDeferredValue(u),f=o?c:u,d=o&&c!==u,h=t.useCallback(e=>!f||(a?a(e,f):function(e,t,r,n){return r.some(r=>{const s=e[r];return null!=s&&l(String(s).trim(),n).includes(t)})}(e,f,s,i)),[f,a,s,i]),m=t.useMemo(()=>f?r.filter(h):[...r],[r,f,h]),g=t.useCallback(e=>h(e),[h]),p=t.useMemo(()=>{if(!u)return null;const e=u.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");return new RegExp(`(${e})`,i?"g":"gi")},[u,i]),b=t.useCallback(r=>{if(!r||!p)return r;return r.split(p).map((r,n)=>n%2==1?e.jsx("mark",{children:r},n):e.jsx(t.Fragment,{children:r},n))},[p]);return{filteredItems:m,resultCount:m.length,query:f,hasMatch:g,isSearching:d,highlightMatch:b}};
2
2
  //# sourceMappingURL=index.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs.js","sources":["../src/core/VirtualizationEngine.ts","../src/core/MeasurementSystem.ts","../src/hooks/useVirtualList.ts","../src/components/VirtualList.tsx","../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],"names":["VirtualizationEngine","constructor","estimatedItemSize","Object","defineProperty","this","value","setItemCount","count","itemCount","dirty","recordItemSize","index","size","itemSizeMap","rebuildPrefix","sum","prefix","i","getItemSize","getItemOffset","getTotalSize","binarySearch","offset","low","high","mid","Math","max","getVisibleRange","scrollOffset","containerSize","overscan","start","end","startIndex","endIndex","min","overscanStartIndex","overscanEndIndex","getVisibleItems","range","items","push","getScrollOffsetForIndex","alignment","MeasurementSystem","Map","WeakMap","entries","entry","element","target","observedElements","get","undefined","round","contentRect","height","measurements","set","pendingUpdates","flushPendingUpdates","window","resizeObserver","ResizeObserver","handleResize","startMeasuring","container","onMeasure","querySelectorAll","forEach","item","indexAttr","dataset","virtualizeIndex","Number","observeItem","String","observe","syncMeasure","unobserveItem","unobserve","delete","rafId","requestAnimationFrame","clear","getBoundingClientRect","rounded","stopMeasuring","disconnect","cancelAnimationFrame","getMeasurement","getAllMeasurements","clearPending","clearMeasurements","destroy","useVirtualList","params","containerHeight","scrollDirection","onScroll","onScrollEnd","stickyIndices","engineRef","useRef","measurementRef","containerRef","innerRef","setScrollOffset","useState","isScrolling","setIsScrolling","scrollTimeoutRef","lastScrollOffsetRef","scrollDirectionRef","virtualItems","setVirtualItems","useEffect","nextVirtualItems","current","length","map","isSticky","includes","prev","changed","prevItem","nextItem","handleScroll","useCallback","e","newScrollOffset","currentTarget","scrollTop","direction","clearTimeout","setTimeout","listener","addEventListener","removeEventListener","handleItemMeasure","scrollToItem","scrollToOffset","getItemStyle","isStickyItem","position","top","left","width","zIndex","totalSize","VirtualList","forwardRef","renderItem","itemWrapper","itemKey","itemSize","className","itemClassName","style","scrollOffsetRef","mergedContainerRef","mergedInnerRef","internalContainerRef","internalInnerRef","useImperativeHandle","handle","find","v","resetAfterIndex","getScrollOffset","heightCss","useMemo","widthCss","containerStyle","overflow","innerStyle","error","console","assignContainerRef","el","assignInnerRef","_jsx","ref","role","children","padding","textAlign","color","virtualItem","key","virtualStyle","renderProps","content","React","Fragment","boxSizing","displayName","VirtualGrid","columnCount","rowHeight","columnWidth","layout","gap","onVisibleRangeChange","innerClassName","containerClassName","setScrollTop","containerWidth","setContainerWidth","scrollTimeout","observer","isReady","cols","minColWidth","floor","colWidth","totalGapWidth","positions","pos","colHeights","Array","fill","itemHeight","minColIndex","indexOf","xPos","yPos","x","y","row","col","visibleRange","heightNum","parseInt","totalHeight","p","scrollLeft","containerStyleComputed","overflowY","overflowX","innerStyleComputed","visibleItems","vItem","itemStyle","normalize","caseSensitive","toLowerCase","positionCache","onLoadMore","threshold","isLoading","enabled","isAtBottom","setIsAtBottom","hasCalledRef","onLoadMoreRef","checkIfAtBottom","scrollHeight","clientHeight","atBottom","Promise","resolve","finally","passive","onVisible","root","rootMargin","once","isVisible","setIsVisible","setEntry","elementRef","callbackRef","IntersectionObserver","observerEntry","isIntersecting","persist","storageKey","storage","autoSave","maxEntries","useRAF","onError","storageRef","document","localStorage","raw","getItem","JSON","parse","persistCache","from","values","sort","a","b","timestamp","slice","setItem","stringify","savePosition","Date","now","restorePosition","restore","searchValue","searchFields","deferSearch","matcher","normalizedQuery","trim","deferredQuery","useDeferredValue","activeQuery","isSearching","itemMatcher","query","some","field","defaultMatcher","filteredItems","filter","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/VirtualizationEngine.ts","../src/core/MeasurementSystem.ts","../src/hooks/useVirtualList.ts","../src/components/VirtualList.tsx","../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],"names":["VirtualizationEngine","constructor","estimatedItemSize","Object","defineProperty","this","value","setItemCount","count","itemCount","dirty","recordItemSize","index","size","itemSizeMap","rebuildPrefix","sum","prefix","i","getItemSize","getItemOffset","getTotalSize","binarySearch","offset","low","high","mid","Math","max","getVisibleRange","scrollOffset","containerSize","overscan","start","end","startIndex","endIndex","min","overscanStartIndex","overscanEndIndex","getVisibleItems","range","items","push","getScrollOffsetForIndex","alignment","MeasurementSystem","Map","WeakMap","entries","entry","element","target","observedElements","get","undefined","round","contentRect","height","measurements","set","pendingUpdates","flushPendingUpdates","window","resizeObserver","ResizeObserver","handleResize","startMeasuring","container","onMeasure","querySelectorAll","forEach","item","indexAttr","dataset","virtualizeIndex","Number","observeItem","String","observe","syncMeasure","unobserveItem","unobserve","delete","rafId","requestAnimationFrame","clear","getBoundingClientRect","rounded","stopMeasuring","disconnect","cancelAnimationFrame","getMeasurement","getAllMeasurements","clearPending","clearMeasurements","destroy","useVirtualList","params","containerHeight","scrollDirection","onScroll","onScrollEnd","stickyIndices","engineRef","useRef","measurementRef","containerRef","innerRef","setScrollOffset","useState","isScrolling","setIsScrolling","scrollTimeoutRef","lastScrollOffsetRef","scrollDirectionRef","virtualItems","setVirtualItems","useEffect","nextVirtualItems","current","length","map","isSticky","includes","prev","changed","prevItem","nextItem","handleScroll","useCallback","e","newScrollOffset","currentTarget","scrollTop","direction","clearTimeout","setTimeout","listener","addEventListener","removeEventListener","handleItemMeasure","scrollToItem","scrollToOffset","getItemStyle","isStickyItem","position","top","left","width","zIndex","totalSize","VirtualList","forwardRef","renderItem","itemWrapper","itemKey","itemSize","className","itemClassName","style","scrollOffsetRef","internalContainerRef","internalInnerRef","mergedContainerRef","mergedInnerRef","useImperativeHandle","containerStyle","overflow","innerStyle","_jsx","ref","el","handler","__scrollHandler","children","virtualItem","key","virtualStyle","renderProps","content","React","Fragment","boxSizing","displayName","VirtualGrid","columnCount","rowHeight","columnWidth","layout","gap","onVisibleRangeChange","innerClassName","containerClassName","setScrollTop","containerWidth","setContainerWidth","scrollTimeout","observer","isReady","cols","useMemo","minColWidth","floor","colWidth","totalGapWidth","positions","pos","colHeights","Array","fill","itemHeight","minColIndex","indexOf","xPos","yPos","x","y","row","col","visibleRange","heightNum","parseInt","totalHeight","p","scrollLeft","containerStyleComputed","overflowY","overflowX","innerStyleComputed","visibleItems","vItem","itemStyle","normalize","caseSensitive","toLowerCase","positionCache","onLoadMore","threshold","isLoading","enabled","isAtBottom","setIsAtBottom","hasCalledRef","onLoadMoreRef","checkIfAtBottom","scrollHeight","clientHeight","atBottom","Promise","resolve","finally","passive","onVisible","root","rootMargin","once","isVisible","setIsVisible","setEntry","elementRef","callbackRef","IntersectionObserver","observerEntry","isIntersecting","persist","storageKey","storage","autoSave","maxEntries","useRAF","onError","storageRef","document","localStorage","raw","getItem","JSON","parse","error","persistCache","from","values","sort","a","b","timestamp","slice","setItem","stringify","savePosition","Date","now","restorePosition","restore","searchValue","searchFields","deferSearch","matcher","normalizedQuery","trim","deferredQuery","useDeferredValue","activeQuery","isSearching","itemMatcher","query","some","field","defaultMatcher","filteredItems","filter","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}from"react/jsx-runtime";import t,{useRef as r,useState as n,useEffect as i,useCallback as s,forwardRef as o,useImperativeHandle as l,useMemo as c,useDeferredValue as a}from"react";class u{constructor(e=35){Object.defineProperty(this,"itemSizeMap",{enumerable:!0,configurable:!0,writable:!0,value:{}}),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}),Object.defineProperty(this,"prefix",{enumerable:!0,configurable:!0,writable:!0,value:[0]}),Object.defineProperty(this,"dirty",{enumerable:!0,configurable:!0,writable:!0,value:!0}),this.estimatedItemSize=e}setItemCount(e){this.itemCount=e,this.dirty=!0}recordItemSize(e,t){this.itemSizeMap[e]!==t&&(this.itemSizeMap[e]=t,this.dirty=!0)}rebuildPrefix(){let e=0;this.prefix=[0];for(let t=0;t<this.itemCount;t++)e+=this.itemSizeMap[t]??this.estimatedItemSize,this.prefix[t+1]=e;this.dirty=!1}getItemSize(e){return this.itemSizeMap[e]??this.estimatedItemSize}getItemOffset(e){return this.dirty&&this.rebuildPrefix(),this.prefix[e]??0}getTotalSize(){return this.dirty&&this.rebuildPrefix(),this.prefix[this.itemCount]||0}binarySearch(e){this.dirty&&this.rebuildPrefix();let t=0,r=this.itemCount-1;for(;t<=r;){const n=t+r>>1,i=this.prefix[n];if(i===e)return n;i<e?t=n+1:r=n-1}return Math.max(0,t-1)}getVisibleRange(e,t,r,n=5){this.setItemCount(r);const i=this.binarySearch(e),s=this.binarySearch(e+t);return{startIndex:Math.max(0,i-n),endIndex:Math.min(r-1,s+n),overscanStartIndex:i,overscanEndIndex:s}}getVisibleItems(e,t,r,n){const i=this.getVisibleRange(e,t,r,n),s=[];for(let e=i.startIndex;e<=i.endIndex;e++)s.push({index:e,size:this.getItemSize(e),offset:this.getItemOffset(e)});return s}getScrollOffsetForIndex(e,t,r="start"){const n=this.getItemOffset(e),i=this.getItemSize(e);return"center"===r?Math.max(0,n-(t-i)/2):"end"===r?Math.max(0,n-t+i):Math.max(0,n)}}class d{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,"observedElements",{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,"rafId",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"onMeasure",{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;const n=Math.round(t.contentRect.height);this.measurements.get(r)!==n&&(this.measurements.set(r,n),this.pendingUpdates.set(r,n))}this.flushPendingUpdates()}}),"undefined"!=typeof window&&"ResizeObserver"in window&&(this.resizeObserver=new ResizeObserver(this.handleResize))}startMeasuring(e,t){this.onMeasure=t;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){t.dataset.virtualizeIndex=String(e),this.observedElements.set(t,e),this.resizeObserver?.observe(t),this.syncMeasure(e,t)}unobserveItem(e){this.resizeObserver?.unobserve(e),this.observedElements.delete(e)}flushPendingUpdates(){null===this.rafId&&(this.rafId=requestAnimationFrame(()=>{this.pendingUpdates.forEach((e,t)=>{this.onMeasure?.(t,e)}),this.pendingUpdates.clear(),this.rafId=null}))}syncMeasure(e,t){const r=t.getBoundingClientRect().height;if(r<=0)return;const n=Math.round(r);this.measurements.get(e)!==n&&(this.measurements.set(e,n),this.onMeasure?.(e,n))}stopMeasuring(){this.resizeObserver?.disconnect(),this.pendingUpdates.clear(),null!==this.rafId&&cancelAnimationFrame(this.rafId)}getMeasurement(e){return this.measurements.get(e)}getAllMeasurements(){return new Map(this.measurements)}clearPending(){this.pendingUpdates.clear()}clearMeasurements(){this.measurements.clear()}destroy(){this.stopMeasuring(),this.measurements.clear(),this.pendingUpdates.clear(),this.observedElements=new WeakMap,this.onMeasure=null}}function h(e){const{items:t,containerHeight:o,overscan:l=5,scrollDirection:c="forward",estimatedItemSize:a=35,onScroll:h,onScrollEnd:f,stickyIndices:m=[]}=e,g=r(new u(a)),p=r(new d),b=r(null),y=r(null),[v,x]=n(0),[S,I]=n(!1),w=r(null),z=r(0),M=r(c),[O,T]=n([]);i(()=>{const e=g.current.getVisibleItems(v,o,t.length,l).map(e=>({index:e.index,offset:e.offset,size:e.size,isSticky:m.includes(e.index)}));T(t=>{if(t.length===e.length){let r=!1;for(let n=0;n<t.length;n++){const i=t[n],s=e[n];if(i.index!==s.index||i.offset!==s.offset||i.size!==s.size||i.isSticky!==s.isSticky){r=!0;break}}if(!r)return t}return e})},[v,o,t.length,l,m]);const E=s(e=>{const t=e.currentTarget.scrollTop;if(t===z.current)return;const r=t>z.current?"forward":"reverse";M.current=r,z.current=t,x(t),I(!0),h&&h(t,r),w.current&&clearTimeout(w.current),w.current=setTimeout(()=>{I(!1),f&&f()},150)},[h,f]);i(()=>{const e=b.current;if(!e)return;const t=e=>{E(e)};return e.addEventListener("scroll",t),()=>{e.removeEventListener("scroll",t)}},[E]);const P=s((e,t)=>{g.current.recordItemSize(e,t)},[]);i(()=>{const e=b.current;return e&&p.current.startMeasuring(e,P),()=>{p.current.stopMeasuring()}},[P]);const N=s((e,t="start")=>{const r=g.current.getScrollOffsetForIndex(e,o,t);b.current&&(b.current.scrollTop=r)},[o]),R=s(e=>{b.current&&(b.current.scrollTop=e)},[]),k=s((e,t)=>{const r=g.current.getItemOffset(e),n=m.includes(e);return{position:n?"sticky":"absolute",top:n?0:r,left:0,width:"100%",height:t,zIndex:n?10:0}},[m]);i(()=>()=>{w.current&&clearTimeout(w.current),p.current.destroy()},[]);const C=g.current.getTotalSize();return{virtualItems:O,isScrolling:S,scrollOffset:v,totalSize:C,scrollToItem:N,scrollToOffset:R,setScrollOffset:x,containerRef:b,innerRef:y,getItemStyle:k}}const f=o(({items:n,renderItem:o,itemWrapper:a,itemKey:u,height:d=400,width:f=500,itemSize:m,overscan:g=5,scrollDirection:p="forward",onScroll:b,className:y="",itemClassName:v="",style:x={},estimatedItemSize:S=35,getItemSize:I,stickyIndices:w=[],innerRef:z,scrollOffsetRef:M},O)=>{const T=r(null),E=r(null),{virtualItems:P,isScrolling:N,scrollOffset:R,totalSize:k,containerRef:C,innerRef:L,getItemStyle:j}=h({items:n,containerHeight:"number"==typeof d?d:400,overscan:g,scrollDirection:"forward",estimatedItemSize:S,onScroll:b,onScrollEnd:()=>{},stickyIndices:w});l(O,()=>{const e=T.current;return e?{...e,scrollToItem:e=>{if(T.current){const t=P.find(t=>t.index===e);if(t){const r=j(e,t.size).top;"number"==typeof r&&(T.current.scrollTop=r)}}},scrollToOffset:e=>{T.current&&(T.current.scrollTop=e)},resetAfterIndex:()=>{},getScrollOffset:()=>R}:{}},[P,j,R]),l(z,()=>E.current),i(()=>{M&&(M.current=R)},[R,M]);const $=c(()=>"string"==typeof d?d:`${d}px`,[d]),A=c(()=>"string"==typeof f?f:`${f}px`,[f]),V=c(()=>({height:$,width:A,overflow:"auto",position:"relative",...x}),[$,A,x]),F=c(()=>({position:"relative",height:Math.max(k,1),width:"100%"}),[k]),U=s(e=>{try{const t=e.currentTarget;b&&b(t.scrollTop,p)}catch(e){console.error("Error in VirtualList scroll handler:",e)}},[b,p]),H=s(e=>{T.current=e,C&&(C.current=e)},[C]),q=s(e=>{E.current=e,L&&(L.current=e)},[L]);return e("div",{ref:H,className:`virtualize-container ${y}`,style:V,onScroll:U,role:"presentation",children:e("div",{ref:q,style:F,className:"virtualize-inner",role:"presentation",children:0===P.length&&0===n.length?e("div",{style:{padding:"20px",textAlign:"center",color:"#999"},children:"No items to display"}):P.map(r=>{try{const i=n[r.index];if(!i)return null;const s=u?.(r.index,i)??r.index,l=j(r.index,r.size),c={item:i,index:r.index,isScrolling:N},d=o(c);return a?e(t.Fragment,{children:a({item:i,index:r.index,style:l,children:d})},s):e("div",{"data-virtualize-index":r.index,className:v,style:{...l,boxSizing:"border-box"},role:"presentation",children:d},s)}catch(e){return console.error(`Error rendering item at index ${r.index}:`,e),null}})})})});f.displayName="VirtualList";const m=o(({items:t,renderItem:o,itemKey:a,height:u=600,width:d="100%",columnCount:h=3,rowHeight:f=200,columnWidth:m,layout:g="grid",overscan:p=5,gap:b=16,onScroll:y,onVisibleRangeChange:v,innerClassName:x,innerStyle:S,containerClassName:I,containerStyle:w},z)=>{const M=r(null);l(z,()=>M.current);const[O,T]=n(0),[E,P]=n(!1),[N,R]=n(0),k=r(null);i(()=>{if(!M.current)return;const e=M.current,t=new ResizeObserver(e=>{for(const t of e){const e=t.contentRect.width;e>0&&R(e)}});return t.observe(e),()=>t.disconnect()},[]),i(()=>()=>{k.current&&clearTimeout(k.current)},[]);const C=N>0&&t.length>0,L=c(()=>{if("auto"===h){const e=200;return Math.max(1,Math.floor(N/(e+b)))}return Math.max(1,Number(h))},[h,N,b]),j=c(()=>{if("number"==typeof m)return m;if(m&&"function"==typeof m)return m(0);const e=b*Math.max(0,L-1);return Math.max(50,(N-e)/L)},[m,N,L,b]),$=c(()=>{if(!C)return[];const e=[];if("masonry"===g){const r=Array(L).fill(0);for(let n=0;n<t.length;n++){const t="function"==typeof f?f(n):Number(f),i=r.indexOf(Math.min(...r)),s=i*(j+b),o=r[i];e.push({x:s,y:o,width:j,height:t}),r[i]+=t+b}}else for(let r=0;r<t.length;r++){const t=Math.floor(r/L),n=r%L,i="function"==typeof f?f(r):Number(f);e.push({x:n*(j+b),y:t*(i+b),width:j,height:i})}return e},[t,L,j,b,g,f,C]),A=c(()=>{if(!$.length||!C)return{start:0,end:0};const e="string"==typeof u?parseInt(u):Number(u);let r=0;for(let e=0;e<$.length;e++)if($[e].y+$[e].height>=O){r=e;break}let n=$.length-1;for(let t=$.length-1;t>=0;t--)if($[t].y<=O+e){n=t;break}return{start:Math.max(0,r-p),end:Math.min(t.length-1,n+p)}},[$,O,u,p,t.length,C]),V=c(()=>{if(!$.length)return 0;return Math.max(...$.map(e=>e.y+e.height))||0},[$]),F=s(e=>{const t=e.currentTarget,r=t.scrollTop,n=t.scrollLeft;T(r),P(!0),y?.(r,n),k.current&&clearTimeout(k.current),k.current=setTimeout(()=>{P(!1)},120)},[y]);i(()=>{v?.(A.start,A.end)},[A,v]);const U={height:"string"==typeof u?u:`${u}px`,width:"string"==typeof d?d:`${d}px`,overflowY:"auto",overflowX:"hidden",position:"relative",...w},H={position:"relative",height:V||1,width:Math.max(0,L*j+(L-1)*b),...S};if(!C)return e("div",{ref:M,className:I,style:U,onScroll:F,children:e("div",{className:x,style:H})});const q=[];for(let e=A.start;e<=A.end;e++)e>=0&&e<t.length&&q.push({index:e,key:a?.(e,t[e])??e});return e("div",{ref:M,className:I,style:U,onScroll:F,children:e("div",{className:x,style:H,children:q.map(r=>{const n=t[r.index],i=$[r.index];if(!n||!i)return null;const s={position:"absolute",top:`${i.y}px`,left:`${i.x}px`,width:`${i.width}px`,height:`${i.height}px`,boxSizing:"border-box"};return e("div",{style:s,children:o({item:n,index:r.index,isScrolling:E})},r.key)})})})});function g(e,t){return t?e:e.toLowerCase()}function p({items:r,searchValue:n,searchFields:i,caseSensitive:o=!1,deferSearch:l=!0,matcher:u}){const d=c(()=>g(n.trim(),o),[n,o]),h=a(d),f=l?h:d,m=l&&h!==d,p=s(e=>!f||(u?u(e,f):function(e,t,r,n){return r.some(r=>{const i=e[r];return null!=i&&g(String(i).trim(),n).includes(t)})}(e,f,i,o)),[f,u,i,o]),b=c(()=>f?r.filter(p):[...r],[r,f,p]),y=s(e=>p(e),[p]),v=c(()=>{if(!d)return null;const e=d.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");return new RegExp(`(${e})`,o?"g":"gi")},[d,o]),x=s(r=>{if(!r||!v)return r;return r.split(v).map((r,n)=>e(n%2==1?"mark":t.Fragment,{children:r},n))},[v]);return{filteredItems:b,resultCount:b.length,query:f,hasMatch:y,isSearching:m,highlightMatch:x}}function b({threshold:e=.1,onVisible:t,root:s=null,rootMargin:o="0px",enabled:l=!0,once:c=!0}={}){const[a,u]=n(!1),[d,h]=n(null),f=r(null),m=r(t);return i(()=>{m.current=t},[t]),i(()=>{if(!l)return;const t=f.current;if(!t)return;if("undefined"==typeof window||!("IntersectionObserver"in window))return u(!0),void m.current?.();const r=new IntersectionObserver(([e])=>{h(e),e.isIntersecting?(u(!0),m.current?.(),c&&r.unobserve(e.target)):c||u(!1)},{threshold:e,root:s,rootMargin:o});return r.observe(t),()=>{r.disconnect()}},[e,s,o,l,c]),{ref:f,isVisible:a,entry:d}}function y({onLoadMore:e,threshold:t=500,isLoading:o=!1,enabled:l=!0}){const c=r(null),[a,u]=n(!1),d=r(!1),h=r(e);i(()=>{h.current=e},[e]);const f=s(()=>{if(!l||o)return;const e=c.current;if(!e)return;const{scrollTop:r,scrollHeight:n,clientHeight:i}=e,s=n-r-i<=t;u(s),!s||d.current||o||(d.current=!0,Promise.resolve(h.current()).finally(()=>{d.current=!1}))},[t,o,l]);return i(()=>{if(!l)return;const e=c.current;if(!e)return;const t=()=>{f()};return e.addEventListener("scroll",t,{passive:!0}),f(),()=>{e.removeEventListener("scroll",t)}},[f,l]),{containerRef:c,isAtBottom:a,isLoading:o,checkIfAtBottom:f}}m.displayName="VirtualGrid";const v=new Map;function x(e,t,{persist:n=!0,storageKey:o="virtualize-scroll-positions",storage:l,autoSave:c=!1,maxEntries:a=100,useRAF:u=!0,enabled:d=!0,onError:h}={}){const f=r(l??("undefined"!=typeof window&&"undefined"!=typeof document?window.localStorage:null));i(()=>{if(d&&n&&f.current&&!(v.size>0))try{const e=f.current.getItem(o);if(!e)return;JSON.parse(e).forEach(e=>{v.set(e.key,e)})}catch(e){h?.(e)}},[d,n,o,h]);const m=s(()=>{if(n&&f.current)try{const e=Array.from(v.values()).sort((e,t)=>t.timestamp-e.timestamp).slice(0,a);f.current.setItem(o,JSON.stringify(e))}catch(e){h?.(e)}},[n,o,a,h]),g=s(()=>{if(!d)return;const r=t.current;if(!r)return;const n={key:e,top:r.scrollTop,left:r.scrollLeft,timestamp:Date.now()};v.set(e,n),m()},[e,t,d,m]),p=s(()=>{if(!d)return;if(!t.current)return;const r=v.get(e);if(!r)return;const n=()=>{t.current&&(t.current.scrollTop=r.top,t.current.scrollLeft=r.left)};u?requestAnimationFrame(n):n()},[e,t,d,u]);return i(()=>{d&&p()},[d,p]),i(()=>{if(d)return()=>{g()}},[d,g]),i(()=>{if(!d||!c||!t.current)return;const e=t.current,r=()=>{g()};return e.addEventListener("scroll",r,{passive:!0}),()=>{e.removeEventListener("scroll",r)}},[d,c,g,t]),{savePosition:g,restorePosition:p}}export{d as MeasurementSystem,m as VirtualGrid,f as VirtualList,u as VirtualizationEngine,y as useInfiniteScroll,b as useLazyLoad,x as useScrollRestoration,h as useVirtualList,p as useVirtualizedSearch};
1
+ import{jsx as e}from"react/jsx-runtime";import t,{useRef as r,useState as n,useEffect as i,useCallback as s,forwardRef as o,useImperativeHandle as l,useMemo as c,useDeferredValue as a}from"react";class u{constructor(e=35){Object.defineProperty(this,"itemSizeMap",{enumerable:!0,configurable:!0,writable:!0,value:{}}),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}),Object.defineProperty(this,"prefix",{enumerable:!0,configurable:!0,writable:!0,value:[0]}),Object.defineProperty(this,"dirty",{enumerable:!0,configurable:!0,writable:!0,value:!0}),this.estimatedItemSize=e}setItemCount(e){this.itemCount=e,this.dirty=!0}recordItemSize(e,t){this.itemSizeMap[e]!==t&&(this.itemSizeMap[e]=t,this.dirty=!0)}rebuildPrefix(){let e=0;this.prefix=[0];for(let t=0;t<this.itemCount;t++)e+=this.itemSizeMap[t]??this.estimatedItemSize,this.prefix[t+1]=e;this.dirty=!1}getItemSize(e){return this.itemSizeMap[e]??this.estimatedItemSize}getItemOffset(e){return this.dirty&&this.rebuildPrefix(),this.prefix[e]??0}getTotalSize(){return this.dirty&&this.rebuildPrefix(),this.prefix[this.itemCount]||0}binarySearch(e){this.dirty&&this.rebuildPrefix();let t=0,r=this.itemCount-1;for(;t<=r;){const n=t+r>>1,i=this.prefix[n];if(i===e)return n;i<e?t=n+1:r=n-1}return Math.max(0,t-1)}getVisibleRange(e,t,r,n=5){this.setItemCount(r);const i=this.binarySearch(e),s=this.binarySearch(e+t);return{startIndex:Math.max(0,i-n),endIndex:Math.min(r-1,s+n),overscanStartIndex:i,overscanEndIndex:s}}getVisibleItems(e,t,r,n){const i=this.getVisibleRange(e,t,r,n),s=[];for(let e=i.startIndex;e<=i.endIndex;e++)s.push({index:e,size:this.getItemSize(e),offset:this.getItemOffset(e)});return s}getScrollOffsetForIndex(e,t,r="start"){const n=this.getItemOffset(e),i=this.getItemSize(e);return"center"===r?Math.max(0,n-(t-i)/2):"end"===r?Math.max(0,n-t+i):Math.max(0,n)}}class h{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,"observedElements",{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,"rafId",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"onMeasure",{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;const n=Math.round(t.contentRect.height);this.measurements.get(r)!==n&&(this.measurements.set(r,n),this.pendingUpdates.set(r,n))}this.flushPendingUpdates()}}),"undefined"!=typeof window&&"ResizeObserver"in window&&(this.resizeObserver=new ResizeObserver(this.handleResize))}startMeasuring(e,t){this.onMeasure=t;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){t.dataset.virtualizeIndex=String(e),this.observedElements.set(t,e),this.resizeObserver?.observe(t),this.syncMeasure(e,t)}unobserveItem(e){this.resizeObserver?.unobserve(e),this.observedElements.delete(e)}flushPendingUpdates(){null===this.rafId&&(this.rafId=requestAnimationFrame(()=>{this.pendingUpdates.forEach((e,t)=>{this.onMeasure?.(t,e)}),this.pendingUpdates.clear(),this.rafId=null}))}syncMeasure(e,t){const r=t.getBoundingClientRect().height;if(r<=0)return;const n=Math.round(r);this.measurements.get(e)!==n&&(this.measurements.set(e,n),this.onMeasure?.(e,n))}stopMeasuring(){this.resizeObserver?.disconnect(),this.pendingUpdates.clear(),null!==this.rafId&&cancelAnimationFrame(this.rafId)}getMeasurement(e){return this.measurements.get(e)}getAllMeasurements(){return new Map(this.measurements)}clearPending(){this.pendingUpdates.clear()}clearMeasurements(){this.measurements.clear()}destroy(){this.stopMeasuring(),this.measurements.clear(),this.pendingUpdates.clear(),this.observedElements=new WeakMap,this.onMeasure=null}}function d(e){const{items:t,containerHeight:o,overscan:l=5,scrollDirection:c="forward",estimatedItemSize:a=35,onScroll:d,onScrollEnd:f,stickyIndices:m=[]}=e,g=r(new u(a)),p=r(new h),b=r(null),v=r(null),[y,x]=n(0),[S,I]=n(!1),w=r(null),z=r(0),M=r(c),[O,P]=n([]);i(()=>{const e=g.current.getVisibleItems(y,o,t.length,l).map(e=>({index:e.index,offset:e.offset,size:e.size,isSticky:m.includes(e.index)}));P(t=>{if(t.length===e.length){let r=!1;for(let n=0;n<t.length;n++){const i=t[n],s=e[n];if(i.index!==s.index||i.offset!==s.offset||i.size!==s.size||i.isSticky!==s.isSticky){r=!0;break}}if(!r)return t}return e})},[y,o,t.length,l,m]);const E=s(e=>{const t=e.currentTarget.scrollTop;if(t===z.current)return;const r=t>z.current?"forward":"reverse";M.current=r,z.current=t,x(t),I(!0),d&&d(t,r),w.current&&clearTimeout(w.current),w.current=setTimeout(()=>{I(!1),f&&f()},150)},[d,f]);i(()=>{const e=b.current;if(!e)return;const t=e=>{E(e)};return e.addEventListener("scroll",t),()=>{e.removeEventListener("scroll",t)}},[E]);const N=s((e,t)=>{g.current.recordItemSize(e,t)},[]);i(()=>{const e=b.current;return e&&p.current.startMeasuring(e,N),()=>{p.current.stopMeasuring()}},[N]);const R=s((e,t="start")=>{const r=g.current.getScrollOffsetForIndex(e,o,t);b.current&&(b.current.scrollTop=r)},[o]),T=s(e=>{b.current&&(b.current.scrollTop=e)},[]),k=s((e,t)=>{const r=g.current.getItemOffset(e),n=m.includes(e);return{position:n?"sticky":"absolute",top:n?0:r,left:0,width:"100%",height:t,zIndex:n?10:0}},[m]);i(()=>()=>{w.current&&clearTimeout(w.current),p.current.destroy()},[]);const C=g.current.getTotalSize();return{virtualItems:O,isScrolling:S,scrollOffset:y,totalSize:C,scrollToItem:R,scrollToOffset:T,setScrollOffset:x,containerRef:b,innerRef:v,getItemStyle:k}}const f=o(({items:n,renderItem:s,itemWrapper:o,itemKey:c,height:a=400,width:u=500,itemSize:h,overscan:f=5,scrollDirection:m="forward",onScroll:g,className:p="",itemClassName:b="",style:v={},estimatedItemSize:y=35,getItemSize:x,stickyIndices:S=[],onScrollEnd:I,innerRef:w,scrollOffsetRef:z},M)=>{const{virtualItems:O,isScrolling:P,scrollOffset:E,totalSize:N,containerRef:R,innerRef:T,getItemStyle:k}=d({items:n,containerHeight:"number"==typeof a?a:400,overscan:f,scrollDirection:m,estimatedItemSize:y,onScroll:g,onScrollEnd:I,stickyIndices:S}),C=r(null),L=r(null);l(M,()=>C.current),l(w,()=>L.current),i(()=>{z&&(z.current=E)},[E,z]);const j={height:a,width:u,overflow:"auto",position:"relative",...v};return e("div",{ref:e=>{C.current=e,R.current=e},className:`virtualize-container ${p}`,style:j,onScroll:e=>{const t=e.target,r=s?.__scrollHandler;r&&r(e),g&&g(t.scrollTop,"auto")},children:e("div",{ref:e=>{L.current=e,T.current=e},style:{position:"relative",height:N,width:"100%"},className:"virtualize-inner",children:O.map(r=>{const i=n[r.index],l=c?c(r.index,i):r.index,a=k(r.index,r.size),u={item:i,index:r.index,style:a,isScrolling:P},h=s(u);return o?e(t.Fragment,{children:o({item:i,index:r.index,style:a,children:h})},l):e("div",{"data-virtualize-index":r.index,className:b,style:{...a,boxSizing:"border-box"},children:h},l)})})})});f.displayName="VirtualList";const m=o(({items:t,renderItem:o,itemKey:a,height:u=600,width:h="100%",columnCount:d=3,rowHeight:f=200,columnWidth:m,layout:g="grid",overscan:p=5,gap:b=16,onScroll:v,onVisibleRangeChange:y,innerClassName:x,innerStyle:S,containerClassName:I,containerStyle:w},z)=>{const M=r(null);l(z,()=>M.current);const[O,P]=n(0),[E,N]=n(!1),[R,T]=n(0),k=r(null);i(()=>{if(!M.current)return;const e=M.current,t=new ResizeObserver(e=>{for(const t of e){const e=t.contentRect.width;e>0&&T(e)}});return t.observe(e),()=>t.disconnect()},[]),i(()=>()=>{k.current&&clearTimeout(k.current)},[]);const C=R>0&&t.length>0,L=c(()=>{if("auto"===d){const e=200;return Math.max(1,Math.floor(R/(e+b)))}return Math.max(1,Number(d))},[d,R,b]),j=c(()=>{if("number"==typeof m)return m;if(m&&"function"==typeof m)return m(0);const e=b*Math.max(0,L-1);return Math.max(50,(R-e)/L)},[m,R,L,b]),A=c(()=>{if(!C)return[];const e=[];if("masonry"===g){const r=Array(L).fill(0);for(let n=0;n<t.length;n++){const t="function"==typeof f?f(n):Number(f),i=r.indexOf(Math.min(...r)),s=i*(j+b),o=r[i];e.push({x:s,y:o,width:j,height:t}),r[i]+=t+b}}else for(let r=0;r<t.length;r++){const t=Math.floor(r/L),n=r%L,i="function"==typeof f?f(r):Number(f);e.push({x:n*(j+b),y:t*(i+b),width:j,height:i})}return e},[t,L,j,b,g,f,C]),V=c(()=>{if(!A.length||!C)return{start:0,end:0};const e="string"==typeof u?parseInt(u):Number(u);let r=0;for(let e=0;e<A.length;e++)if(A[e].y+A[e].height>=O){r=e;break}let n=A.length-1;for(let t=A.length-1;t>=0;t--)if(A[t].y<=O+e){n=t;break}return{start:Math.max(0,r-p),end:Math.min(t.length-1,n+p)}},[A,O,u,p,t.length,C]),$=c(()=>{if(!A.length)return 0;return Math.max(...A.map(e=>e.y+e.height))||0},[A]),F=s(e=>{const t=e.currentTarget,r=t.scrollTop,n=t.scrollLeft;P(r),N(!0),v?.(r,n),k.current&&clearTimeout(k.current),k.current=setTimeout(()=>{N(!1)},120)},[v]);i(()=>{y?.(V.start,V.end)},[V,y]);const U={height:"string"==typeof u?u:`${u}px`,width:"string"==typeof h?h:`${h}px`,overflowY:"auto",overflowX:"hidden",position:"relative",...w},H={position:"relative",height:$||1,width:Math.max(0,L*j+(L-1)*b),...S};if(!C)return e("div",{ref:M,className:I,style:U,onScroll:F,children:e("div",{className:x,style:H})});const q=[];for(let e=V.start;e<=V.end;e++)e>=0&&e<t.length&&q.push({index:e,key:a?.(e,t[e])??e});return e("div",{ref:M,className:I,style:U,onScroll:F,children:e("div",{className:x,style:H,children:q.map(r=>{const n=t[r.index],i=A[r.index];if(!n||!i)return null;const s={position:"absolute",top:`${i.y}px`,left:`${i.x}px`,width:`${i.width}px`,height:`${i.height}px`,boxSizing:"border-box"};return e("div",{style:s,children:o({item:n,index:r.index,isScrolling:E})},r.key)})})})});function g(e,t){return t?e:e.toLowerCase()}function p({items:r,searchValue:n,searchFields:i,caseSensitive:o=!1,deferSearch:l=!0,matcher:u}){const h=c(()=>g(n.trim(),o),[n,o]),d=a(h),f=l?d:h,m=l&&d!==h,p=s(e=>!f||(u?u(e,f):function(e,t,r,n){return r.some(r=>{const i=e[r];return null!=i&&g(String(i).trim(),n).includes(t)})}(e,f,i,o)),[f,u,i,o]),b=c(()=>f?r.filter(p):[...r],[r,f,p]),v=s(e=>p(e),[p]),y=c(()=>{if(!h)return null;const e=h.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");return new RegExp(`(${e})`,o?"g":"gi")},[h,o]),x=s(r=>{if(!r||!y)return r;return r.split(y).map((r,n)=>e(n%2==1?"mark":t.Fragment,{children:r},n))},[y]);return{filteredItems:b,resultCount:b.length,query:f,hasMatch:v,isSearching:m,highlightMatch:x}}function b({threshold:e=.1,onVisible:t,root:s=null,rootMargin:o="0px",enabled:l=!0,once:c=!0}={}){const[a,u]=n(!1),[h,d]=n(null),f=r(null),m=r(t);return i(()=>{m.current=t},[t]),i(()=>{if(!l)return;const t=f.current;if(!t)return;if("undefined"==typeof window||!("IntersectionObserver"in window))return u(!0),void m.current?.();const r=new IntersectionObserver(([e])=>{d(e),e.isIntersecting?(u(!0),m.current?.(),c&&r.unobserve(e.target)):c||u(!1)},{threshold:e,root:s,rootMargin:o});return r.observe(t),()=>{r.disconnect()}},[e,s,o,l,c]),{ref:f,isVisible:a,entry:h}}function v({onLoadMore:e,threshold:t=500,isLoading:o=!1,enabled:l=!0}){const c=r(null),[a,u]=n(!1),h=r(!1),d=r(e);i(()=>{d.current=e},[e]);const f=s(()=>{if(!l||o)return;const e=c.current;if(!e)return;const{scrollTop:r,scrollHeight:n,clientHeight:i}=e,s=n-r-i<=t;u(s),!s||h.current||o||(h.current=!0,Promise.resolve(d.current()).finally(()=>{h.current=!1}))},[t,o,l]);return i(()=>{if(!l)return;const e=c.current;if(!e)return;const t=()=>{f()};return e.addEventListener("scroll",t,{passive:!0}),f(),()=>{e.removeEventListener("scroll",t)}},[f,l]),{containerRef:c,isAtBottom:a,isLoading:o,checkIfAtBottom:f}}m.displayName="VirtualGrid";const y=new Map;function x(e,t,{persist:n=!0,storageKey:o="virtualize-scroll-positions",storage:l,autoSave:c=!1,maxEntries:a=100,useRAF:u=!0,enabled:h=!0,onError:d}={}){const f=r(l??("undefined"!=typeof window&&"undefined"!=typeof document?window.localStorage:null));i(()=>{if(h&&n&&f.current&&!(y.size>0))try{const e=f.current.getItem(o);if(!e)return;JSON.parse(e).forEach(e=>{y.set(e.key,e)})}catch(e){d?.(e)}},[h,n,o,d]);const m=s(()=>{if(n&&f.current)try{const e=Array.from(y.values()).sort((e,t)=>t.timestamp-e.timestamp).slice(0,a);f.current.setItem(o,JSON.stringify(e))}catch(e){d?.(e)}},[n,o,a,d]),g=s(()=>{if(!h)return;const r=t.current;if(!r)return;const n={key:e,top:r.scrollTop,left:r.scrollLeft,timestamp:Date.now()};y.set(e,n),m()},[e,t,h,m]),p=s(()=>{if(!h)return;if(!t.current)return;const r=y.get(e);if(!r)return;const n=()=>{t.current&&(t.current.scrollTop=r.top,t.current.scrollLeft=r.left)};u?requestAnimationFrame(n):n()},[e,t,h,u]);return i(()=>{h&&p()},[h,p]),i(()=>{if(h)return()=>{g()}},[h,g]),i(()=>{if(!h||!c||!t.current)return;const e=t.current,r=()=>{g()};return e.addEventListener("scroll",r,{passive:!0}),()=>{e.removeEventListener("scroll",r)}},[h,c,g,t]),{savePosition:g,restorePosition:p}}export{h as MeasurementSystem,m as VirtualGrid,f as VirtualList,u as VirtualizationEngine,v as useInfiniteScroll,b as useLazyLoad,x as useScrollRestoration,d as useVirtualList,p as useVirtualizedSearch};
2
2
  //# sourceMappingURL=index.esm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.esm.js","sources":["../src/core/VirtualizationEngine.ts","../src/core/MeasurementSystem.ts","../src/hooks/useVirtualList.ts","../src/components/VirtualList.tsx","../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],"names":["VirtualizationEngine","constructor","estimatedItemSize","Object","defineProperty","this","value","setItemCount","count","itemCount","dirty","recordItemSize","index","size","itemSizeMap","rebuildPrefix","sum","prefix","i","getItemSize","getItemOffset","getTotalSize","binarySearch","offset","low","high","mid","Math","max","getVisibleRange","scrollOffset","containerSize","overscan","start","end","startIndex","endIndex","min","overscanStartIndex","overscanEndIndex","getVisibleItems","range","items","push","getScrollOffsetForIndex","alignment","MeasurementSystem","Map","WeakMap","entries","entry","element","target","observedElements","get","undefined","round","contentRect","height","measurements","set","pendingUpdates","flushPendingUpdates","window","resizeObserver","ResizeObserver","handleResize","startMeasuring","container","onMeasure","querySelectorAll","forEach","item","indexAttr","dataset","virtualizeIndex","Number","observeItem","String","observe","syncMeasure","unobserveItem","unobserve","delete","rafId","requestAnimationFrame","clear","getBoundingClientRect","rounded","stopMeasuring","disconnect","cancelAnimationFrame","getMeasurement","getAllMeasurements","clearPending","clearMeasurements","destroy","useVirtualList","params","containerHeight","scrollDirection","onScroll","onScrollEnd","stickyIndices","engineRef","useRef","measurementRef","containerRef","innerRef","setScrollOffset","useState","isScrolling","setIsScrolling","scrollTimeoutRef","lastScrollOffsetRef","scrollDirectionRef","virtualItems","setVirtualItems","useEffect","nextVirtualItems","current","length","map","isSticky","includes","prev","changed","prevItem","nextItem","handleScroll","useCallback","e","newScrollOffset","currentTarget","scrollTop","direction","clearTimeout","setTimeout","listener","addEventListener","removeEventListener","handleItemMeasure","scrollToItem","scrollToOffset","getItemStyle","isStickyItem","position","top","left","width","zIndex","totalSize","VirtualList","forwardRef","renderItem","itemWrapper","itemKey","itemSize","className","itemClassName","style","scrollOffsetRef","mergedContainerRef","mergedInnerRef","internalContainerRef","internalInnerRef","useImperativeHandle","handle","find","v","resetAfterIndex","getScrollOffset","heightCss","useMemo","widthCss","containerStyle","overflow","innerStyle","error","console","assignContainerRef","el","assignInnerRef","_jsx","ref","role","children","padding","textAlign","color","virtualItem","key","virtualStyle","renderProps","content","React","Fragment","boxSizing","displayName","VirtualGrid","columnCount","rowHeight","columnWidth","layout","gap","onVisibleRangeChange","innerClassName","containerClassName","setScrollTop","containerWidth","setContainerWidth","scrollTimeout","observer","isReady","cols","minColWidth","floor","colWidth","totalGapWidth","positions","pos","colHeights","Array","fill","itemHeight","minColIndex","indexOf","xPos","yPos","x","y","row","col","visibleRange","heightNum","parseInt","totalHeight","p","scrollLeft","containerStyleComputed","overflowY","overflowX","innerStyleComputed","visibleItems","vItem","itemStyle","normalize","caseSensitive","toLowerCase","useVirtualizedSearch","searchValue","searchFields","deferSearch","matcher","normalizedQuery","trim","deferredQuery","useDeferredValue","activeQuery","isSearching","itemMatcher","query","some","field","defaultMatcher","filteredItems","filter","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","isAtBottom","setIsAtBottom","hasCalledRef","onLoadMoreRef","checkIfAtBottom","scrollHeight","clientHeight","atBottom","Promise","resolve","finally","passive","positionCache","useScrollRestoration","persist","storageKey","storage","autoSave","maxEntries","useRAF","onError","storageRef","document","localStorage","raw","getItem","JSON","parse","persistCache","from","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/VirtualizationEngine.ts","../src/core/MeasurementSystem.ts","../src/hooks/useVirtualList.ts","../src/components/VirtualList.tsx","../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],"names":["VirtualizationEngine","constructor","estimatedItemSize","Object","defineProperty","this","value","setItemCount","count","itemCount","dirty","recordItemSize","index","size","itemSizeMap","rebuildPrefix","sum","prefix","i","getItemSize","getItemOffset","getTotalSize","binarySearch","offset","low","high","mid","Math","max","getVisibleRange","scrollOffset","containerSize","overscan","start","end","startIndex","endIndex","min","overscanStartIndex","overscanEndIndex","getVisibleItems","range","items","push","getScrollOffsetForIndex","alignment","MeasurementSystem","Map","WeakMap","entries","entry","element","target","observedElements","get","undefined","round","contentRect","height","measurements","set","pendingUpdates","flushPendingUpdates","window","resizeObserver","ResizeObserver","handleResize","startMeasuring","container","onMeasure","querySelectorAll","forEach","item","indexAttr","dataset","virtualizeIndex","Number","observeItem","String","observe","syncMeasure","unobserveItem","unobserve","delete","rafId","requestAnimationFrame","clear","getBoundingClientRect","rounded","stopMeasuring","disconnect","cancelAnimationFrame","getMeasurement","getAllMeasurements","clearPending","clearMeasurements","destroy","useVirtualList","params","containerHeight","scrollDirection","onScroll","onScrollEnd","stickyIndices","engineRef","useRef","measurementRef","containerRef","innerRef","setScrollOffset","useState","isScrolling","setIsScrolling","scrollTimeoutRef","lastScrollOffsetRef","scrollDirectionRef","virtualItems","setVirtualItems","useEffect","nextVirtualItems","current","length","map","isSticky","includes","prev","changed","prevItem","nextItem","handleScroll","useCallback","e","newScrollOffset","currentTarget","scrollTop","direction","clearTimeout","setTimeout","listener","addEventListener","removeEventListener","handleItemMeasure","scrollToItem","scrollToOffset","getItemStyle","isStickyItem","position","top","left","width","zIndex","totalSize","VirtualList","forwardRef","renderItem","itemWrapper","itemKey","itemSize","className","itemClassName","style","scrollOffsetRef","internalContainerRef","internalInnerRef","mergedContainerRef","mergedInnerRef","useImperativeHandle","containerStyle","overflow","_jsx","ref","el","handler","__scrollHandler","children","virtualItem","key","virtualStyle","renderProps","content","React","Fragment","boxSizing","displayName","VirtualGrid","columnCount","rowHeight","columnWidth","layout","gap","onVisibleRangeChange","innerClassName","innerStyle","containerClassName","setScrollTop","containerWidth","setContainerWidth","scrollTimeout","observer","isReady","cols","useMemo","minColWidth","floor","colWidth","totalGapWidth","positions","pos","colHeights","Array","fill","itemHeight","minColIndex","indexOf","xPos","yPos","x","y","row","col","visibleRange","heightNum","parseInt","totalHeight","p","scrollLeft","containerStyleComputed","overflowY","overflowX","innerStyleComputed","visibleItems","vItem","itemStyle","normalize","caseSensitive","toLowerCase","useVirtualizedSearch","searchValue","searchFields","deferSearch","matcher","normalizedQuery","trim","deferredQuery","useDeferredValue","activeQuery","isSearching","itemMatcher","query","some","field","defaultMatcher","filteredItems","filter","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","isAtBottom","setIsAtBottom","hasCalledRef","onLoadMoreRef","checkIfAtBottom","scrollHeight","clientHeight","atBottom","Promise","resolve","finally","passive","positionCache","useScrollRestoration","persist","storageKey","storage","autoSave","maxEntries","useRAF","onError","storageRef","document","localStorage","raw","getItem","JSON","parse","error","persistCache","from","values","sort","a","b","timestamp","slice","setItem","stringify","savePosition","Date","now","restorePosition","restore"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-virtual-renderer",
3
- "version": "1.0.9",
3
+ "version": "1.1.0",
4
4
  "description": "High-performance React virtualization library with dynamic sizing, bidirectional scrolling, and accessibility",
5
5
  "author": "Rishabh Agarwal",
6
6
  "license": "MIT",