react-virtual-renderer 1.0.6 → 1.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/VirtualGrid.d.ts.map +1 -1
- package/dist/components/VirtualGrid.js +50 -27
- package/dist/components/VirtualGrid.js.map +1 -1
- package/dist/index.cjs.js +1 -1
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.esm.js +1 -1
- package/dist/index.esm.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VirtualGrid.d.ts","sourceRoot":"","sources":["../../src/components/VirtualGrid.tsx"],"names":[],"mappings":"AAAA,OAAO,KAON,MAAM,OAAO,CAAC;AAEf,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAS5C,eAAO,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"VirtualGrid.d.ts","sourceRoot":"","sources":["../../src/components/VirtualGrid.tsx"],"names":[],"mappings":"AAAA,OAAO,KAON,MAAM,OAAO,CAAC;AAEf,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAS5C,eAAO,MAAM,WAAW,8FAyQvB,CAAC"}
|
|
@@ -1,36 +1,59 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import { forwardRef, useMemo, useState, useRef, useEffect, useImperativeHandle, } from "react";
|
|
3
|
-
export const VirtualGrid = forwardRef(({ items, renderItem, itemKey, height = 600, width =
|
|
3
|
+
export const VirtualGrid = forwardRef(({ items, renderItem, itemKey, height = 600, width = "100%", columnCount = 3, rowHeight = 200, columnWidth, layout = "grid", overscan = 5, gap = 16, onScroll, innerClassName, innerStyle, }, ref) => {
|
|
4
4
|
const containerRef = useRef(null);
|
|
5
5
|
useImperativeHandle(ref, () => containerRef.current);
|
|
6
6
|
const [scrollTop, setScrollTop] = useState(0);
|
|
7
7
|
const [isScrolling, setIsScrolling] = useState(false);
|
|
8
8
|
const scrollTimeout = useRef(null);
|
|
9
|
-
const containerWidth = typeof width === "number" ? width : Number(width);
|
|
10
|
-
const viewportHeight = typeof height === "number" ? height : Number(height);
|
|
11
9
|
/**
|
|
12
|
-
*
|
|
10
|
+
* ✅ FIX 1: Safe container width (supports %, number, fallback)
|
|
11
|
+
*/
|
|
12
|
+
const containerWidth = useMemo(() => {
|
|
13
|
+
if (typeof width === "number")
|
|
14
|
+
return width;
|
|
15
|
+
if (typeof width === "string") {
|
|
16
|
+
if (width.endsWith("%")) {
|
|
17
|
+
const parentWidth = containerRef.current?.offsetWidth ||
|
|
18
|
+
window.innerWidth;
|
|
19
|
+
return (parseFloat(width) / 100) * parentWidth;
|
|
20
|
+
}
|
|
21
|
+
const parsed = Number(width);
|
|
22
|
+
return Number.isFinite(parsed) ? parsed : 800;
|
|
23
|
+
}
|
|
24
|
+
return 800;
|
|
25
|
+
}, [width]);
|
|
26
|
+
/**
|
|
27
|
+
* Columns
|
|
13
28
|
*/
|
|
14
29
|
const cols = useMemo(() => {
|
|
15
|
-
if (
|
|
16
|
-
|
|
30
|
+
if (columnCount === "auto") {
|
|
31
|
+
const containerWidth = typeof width === "number"
|
|
32
|
+
? width
|
|
33
|
+
: containerRef.current?.offsetWidth || 800;
|
|
34
|
+
const minColWidth = 250; // you can tune this
|
|
35
|
+
return Math.max(1, Math.floor(containerWidth / minColWidth));
|
|
17
36
|
}
|
|
18
|
-
return
|
|
19
|
-
}, [columnCount]);
|
|
37
|
+
return Math.max(1, columnCount);
|
|
38
|
+
}, [columnCount, width]);
|
|
20
39
|
/**
|
|
21
|
-
*
|
|
40
|
+
* ✅ FIX 2: Safe column width (NO NaN ever)
|
|
22
41
|
*/
|
|
23
42
|
const colWidth = useMemo(() => {
|
|
24
|
-
if (typeof columnWidth === "number")
|
|
43
|
+
if (typeof columnWidth === "number")
|
|
25
44
|
return columnWidth;
|
|
26
|
-
|
|
27
|
-
|
|
45
|
+
const safeWidth = Number.isFinite(containerWidth)
|
|
46
|
+
? containerWidth
|
|
47
|
+
: 800;
|
|
48
|
+
return (safeWidth - gap * (cols - 1)) / cols;
|
|
28
49
|
}, [columnWidth, containerWidth, cols, gap]);
|
|
29
50
|
/**
|
|
30
|
-
* Precompute
|
|
51
|
+
* Precompute positions
|
|
31
52
|
*/
|
|
32
53
|
const positions = useMemo(() => {
|
|
33
54
|
const pos = [];
|
|
55
|
+
if (!Number.isFinite(colWidth))
|
|
56
|
+
return pos;
|
|
34
57
|
if (layout === "masonry") {
|
|
35
58
|
const colHeights = Array(cols).fill(0);
|
|
36
59
|
for (let i = 0; i < items.length; i++) {
|
|
@@ -65,35 +88,32 @@ export const VirtualGrid = forwardRef(({ items, renderItem, itemKey, height = 60
|
|
|
65
88
|
return pos;
|
|
66
89
|
}, [items, cols, colWidth, gap, layout, rowHeight]);
|
|
67
90
|
/**
|
|
68
|
-
*
|
|
91
|
+
* Visible range (safe + stable)
|
|
69
92
|
*/
|
|
70
93
|
const visibleRange = useMemo(() => {
|
|
71
94
|
const startIndex = positions.findIndex((p) => p.y + p.height >= scrollTop);
|
|
72
|
-
const endIndex = positions.findIndex((p) => p.y > scrollTop +
|
|
95
|
+
const endIndex = positions.findIndex((p) => p.y > scrollTop + (typeof height === "number" ? height : 600));
|
|
73
96
|
const start = Math.max(0, startIndex - overscan);
|
|
74
97
|
const end = endIndex === -1
|
|
75
98
|
? items.length - 1
|
|
76
99
|
: Math.min(items.length - 1, endIndex + overscan);
|
|
77
100
|
return { start, end };
|
|
78
|
-
}, [positions, scrollTop,
|
|
101
|
+
}, [positions, scrollTop, height, overscan, items.length]);
|
|
79
102
|
/**
|
|
80
|
-
*
|
|
103
|
+
* Total height (safe)
|
|
81
104
|
*/
|
|
82
105
|
const totalHeight = useMemo(() => {
|
|
106
|
+
if (!positions.length)
|
|
107
|
+
return 0;
|
|
83
108
|
if (layout === "masonry") {
|
|
84
|
-
|
|
85
|
-
? positions.map((p) => p.y + p.height)
|
|
86
|
-
: [0]));
|
|
87
|
-
return maxColHeight;
|
|
109
|
+
return Math.max(...positions.map((p) => p.y + p.height));
|
|
88
110
|
}
|
|
89
111
|
const rows = Math.ceil(items.length / cols);
|
|
90
|
-
const avgHeight = typeof rowHeight === "function"
|
|
91
|
-
? 200
|
|
92
|
-
: rowHeight;
|
|
112
|
+
const avgHeight = typeof rowHeight === "function" ? 200 : rowHeight;
|
|
93
113
|
return rows * (avgHeight + gap);
|
|
94
|
-
}, [items.length, cols,
|
|
114
|
+
}, [positions, layout, items.length, cols, rowHeight, gap]);
|
|
95
115
|
/**
|
|
96
|
-
*
|
|
116
|
+
* Scroll handler
|
|
97
117
|
*/
|
|
98
118
|
const handleScroll = (e) => {
|
|
99
119
|
const top = e.currentTarget.scrollTop;
|
|
@@ -122,10 +142,11 @@ export const VirtualGrid = forwardRef(({ items, renderItem, itemKey, height = 60
|
|
|
122
142
|
position: "relative",
|
|
123
143
|
...innerStyle,
|
|
124
144
|
};
|
|
145
|
+
const safeColWidth = Number.isFinite(colWidth) ? colWidth : 200;
|
|
125
146
|
const innerStyleComputed = {
|
|
126
147
|
position: "relative",
|
|
127
148
|
height: totalHeight,
|
|
128
|
-
width: cols *
|
|
149
|
+
width: cols * safeColWidth + gap * (cols - 1),
|
|
129
150
|
};
|
|
130
151
|
return (_jsx("div", { ref: containerRef, className: innerClassName, style: containerStyle, onScroll: handleScroll, children: _jsx("div", { style: innerStyleComputed, children: Array.from({ length: visibleRange.end - visibleRange.start + 1 }, (_, i) => {
|
|
131
152
|
const index = visibleRange.start + i;
|
|
@@ -133,6 +154,8 @@ export const VirtualGrid = forwardRef(({ items, renderItem, itemKey, height = 60
|
|
|
133
154
|
const pos = positions[index];
|
|
134
155
|
if (!item || !pos)
|
|
135
156
|
return null;
|
|
157
|
+
if (!Number.isFinite(pos.width))
|
|
158
|
+
return null;
|
|
136
159
|
const style = {
|
|
137
160
|
position: "absolute",
|
|
138
161
|
top: pos.y,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VirtualGrid.js","sourceRoot":"","sources":["../../src/components/VirtualGrid.tsx"],"names":[],"mappings":";AAAA,OAAc,EACV,UAAU,EACV,OAAO,EACP,QAAQ,EACR,MAAM,EACN,SAAS,EACT,mBAAmB,GACtB,MAAM,OAAO,CAAC;AAWf,MAAM,CAAC,MAAM,WAAW,GAAG,UAAU,CACjC,CACI,EACI,KAAK,EACL,UAAU,EACV,OAAO,EACP,MAAM,GAAG,GAAG,EACZ,KAAK,GAAG,
|
|
1
|
+
{"version":3,"file":"VirtualGrid.js","sourceRoot":"","sources":["../../src/components/VirtualGrid.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:u=35,onScroll:a,onScrollEnd:c,stickyIndices:f=[]}=e,d=t.useRef(new r(u)),h=t.useRef(new n),m=t.useRef(null),g=t.useRef(null),[p,b]=t.useState(0),[v,y]=t.useState(!1),x=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),y(!0),a&&a(t,r),x.current&&clearTimeout(x.current),x.current=setTimeout(()=>{y(!1),c&&c()},150)},[a,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(()=>()=>{x.current&&clearTimeout(x.current),h.current.destroy()},[]);const C=d.current.getTotalSize();return{virtualItems:w,isScrolling:v,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:u=500,itemSize:a,overscan:c=5,scrollDirection:f="forward",onScroll:d,className:h="",itemClassName:m="",style:g={},estimatedItemSize:p=35,getItemSize:b,stickyIndices:v=[],onScrollEnd:y,innerRef:x,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:y,stickyIndices:v}),C=t.useRef(null),j=t.useRef(null);t.useImperativeHandle(I,()=>C.current),t.useImperativeHandle(x,()=>j.current),t.useEffect(()=>{S&&(S.current=z)},[z,S]);const P={height:l,width:u,overflow:"auto",position:"relative",...g},T={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:T,className:"virtualize-inner",children:w.map(s=>{const l=r[s.index],u=o?o(s.index,l):s.index,a=k(s.index,s.size),c={item:l,index:s.index,style:a,isScrolling:M},f=n(c);return i?e.jsx(t.Fragment,{children:i({item:l,index:s.index,style:a,children:f})},u):e.jsx("div",{"data-virtualize-index":s.index,className:m,style:{...a,boxSizing:"border-box"},children:f},u)})})})});i.displayName="VirtualList";const o=t.forwardRef(({items:r,renderItem:n,itemKey:s,height:i=600,width:o=800,columnCount:l=3,rowHeight:u=200,columnWidth:a,layout:c="grid",overscan:f=5,gap:d=16,onScroll:h,innerClassName:m,innerStyle:g},p)=>{const b=t.useRef(null);t.useImperativeHandle(p,()=>b.current);const[v,y]=t.useState(0),[x,S]=t.useState(!1),I=t.useRef(null),w="number"==typeof o?o:Number(o),M="number"==typeof i?i:Number(i),z=t.useMemo(()=>"number"==typeof l?Math.max(1,l):3,[l]),R=t.useMemo(()=>"number"==typeof a?a:(w-d*(z-1))/z,[a,w,z,d]),E=t.useMemo(()=>{const e=[];if("masonry"===c){const t=Array(z).fill(0);for(let n=0;n<r.length;n++){const r=t.indexOf(Math.min(...t)),s="function"==typeof u?u(n):u;e.push({x:r*(R+d),y:t[r],width:R,height:s}),t[r]+=s+d}}else for(let t=0;t<r.length;t++){const r=Math.floor(t/z),n=t%z,s="function"==typeof u?u(t):u;e.push({x:n*(R+d),y:r*(s+d),width:R,height:s})}return e},[r,z,R,d,c,u]),O=t.useMemo(()=>{const e=E.findIndex(e=>e.y+e.height>=v),t=E.findIndex(e=>e.y>v+M);return{start:Math.max(0,e-f),end:-1===t?r.length-1:Math.min(r.length-1,t+f)}},[E,v,M,f,r.length]),k=t.useMemo(()=>{if("masonry"===c){return Math.max(...E.length?E.map(e=>e.y+e.height):[0])}return Math.ceil(r.length/z)*(("function"==typeof u?200:u)+d)},[r.length,z,d,c,u,E]);t.useEffect(()=>()=>{I.current&&clearTimeout(I.current)},[]);const C={height:i,width:o,overflowY:"auto",overflowX:"hidden",position:"relative",...g},j={position:"relative",height:k,width:z*R+d*(z-1)};return e.jsx("div",{ref:b,className:m,style:C,onScroll:e=>{const t=e.currentTarget.scrollTop;y(t),S(!0),h?.(t,e.currentTarget.scrollLeft),I.current&&clearTimeout(I.current),I.current=setTimeout(()=>{S(!1)},120)},children:e.jsx("div",{style:j,children:Array.from({length:O.end-O.start+1},(t,i)=>{const o=O.start+i,l=r[o],u=E[o];if(!l||!u)return null;const a={position:"absolute",top:u.y,left:u.x,width:u.width,height:u.height};return e.jsx("div",{style:a,children:n({item:l,index:o,isScrolling:x,style:a})},s?.(o,l)??o)})})})});function l(e,t){return t?e:e.toLowerCase()}o.displayName="VirtualGrid";const u=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),u=t.useRef(!1),a=t.useRef(e);t.useEffect(()=>{a.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||u.current||n||(u.current=!0,Promise.resolve(a.current()).finally(()=>{u.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,u]=t.useState(!1),[a,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 u(!0),void d.current?.();const r=new IntersectionObserver(([e])=>{c(e),e.isIntersecting?(u(!0),d.current?.(),o&&r.unobserve(e.target)):o||u(!1)},{threshold:e,root:n,rootMargin:s});return r.observe(t),()=>{r.disconnect()}},[e,n,s,i,o]),{ref:f,isVisible:l,entry:a}},exports.useScrollRestoration=function(e,r,{persist:n=!0,storageKey:s="virtualize-scroll-positions",storage:i,autoSave:o=!1,maxEntries:l=100,useRAF:a=!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&&!(u.size>0))try{const e=d.current.getItem(s);if(!e)return;JSON.parse(e).forEach(e=>{u.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(u.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()};u.set(e,n),h()},[e,r,c,h]),g=t.useCallback(()=>{if(!c)return;if(!r.current)return;const t=u.get(e);if(!t)return;const n=()=>{r.current&&(r.current.scrollTop=t.top,r.current.scrollLeft=t.left)};a?requestAnimationFrame(n):n()},[e,r,c,a]);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:u}){const a=t.useMemo(()=>l(n.trim(),i),[n,i]),c=t.useDeferredValue(a),f=o?c:a,d=o&&c!==a,h=t.useCallback(e=>!f||(u?u(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,u,s,i]),m=t.useMemo(()=>f?r.filter(h):[...r],[r,f,h]),g=t.useCallback(e=>h(e),[h]),p=t.useMemo(()=>{if(!a)return null;const e=a.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");return new RegExp(`(${e})`,i?"g":"gi")},[a,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,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 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 i(e){const{items:i,containerHeight:s,overscan:o=5,scrollDirection:u="forward",estimatedItemSize:l=35,onScroll:a,onScrollEnd:c,stickyIndices:f=[]}=e,d=t.useRef(new r(l)),h=t.useRef(new n),m=t.useRef(null),g=t.useRef(null),[p,b]=t.useState(0),[y,v]=t.useState(!1),x=t.useRef(null),S=t.useRef(0),I=t.useRef(u),[w,M]=t.useState([]);t.useEffect(()=>{const e=d.current.getVisibleItems(p,s,i.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 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})},[p,s,i.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),a&&a(t,r),x.current&&clearTimeout(x.current),x.current=setTimeout(()=>{v(!1),c&&c()},150)},[a,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,s,t);m.current&&(m.current.scrollTop=r)},[s]),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(()=>()=>{x.current&&clearTimeout(x.current),h.current.destroy()},[]);const C=d.current.getTotalSize();return{virtualItems:w,isScrolling:y,scrollOffset:p,totalSize:C,scrollToItem:E,scrollToOffset:O,setScrollOffset:b,containerRef:m,innerRef:g,getItemStyle:k}}const s=t.forwardRef(({items:r,renderItem:n,itemWrapper:s,itemKey:o,height:u=400,width:l=500,itemSize:a,overscan:c=5,scrollDirection:f="forward",onScroll:d,className:h="",itemClassName:m="",style:g={},estimatedItemSize:p=35,getItemSize:b,stickyIndices:y=[],onScrollEnd:v,innerRef:x,scrollOffsetRef:S},I)=>{const{virtualItems:w,isScrolling:M,scrollOffset:z,totalSize:R,containerRef:E,innerRef:O,getItemStyle:k}=i({items:r,containerHeight:"number"==typeof u?u:400,overscan:c,scrollDirection:f,estimatedItemSize:p,onScroll:d,onScrollEnd:v,stickyIndices:y}),C=t.useRef(null),j=t.useRef(null);t.useImperativeHandle(I,()=>C.current),t.useImperativeHandle(x,()=>j.current),t.useEffect(()=>{S&&(S.current=z)},[z,S]);const P={height:u,width:l,overflow:"auto",position:"relative",...g},T={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:T,className:"virtualize-inner",children:w.map(i=>{const u=r[i.index],l=o?o(i.index,u):i.index,a=k(i.index,i.size),c={item:u,index:i.index,style:a,isScrolling:M},f=n(c);return s?e.jsx(t.Fragment,{children:s({item:u,index:i.index,style:a,children:f})},l):e.jsx("div",{"data-virtualize-index":i.index,className:m,style:{...a,boxSizing:"border-box"},children:f},l)})})})});s.displayName="VirtualList";const o=t.forwardRef(({items:r,renderItem:n,itemKey:i,height:s=600,width:o="100%",columnCount:u=3,rowHeight:l=200,columnWidth:a,layout:c="grid",overscan:f=5,gap:d=16,onScroll:h,innerClassName:m,innerStyle:g},p)=>{const b=t.useRef(null);t.useImperativeHandle(p,()=>b.current);const[y,v]=t.useState(0),[x,S]=t.useState(!1),I=t.useRef(null),w=t.useMemo(()=>{if("number"==typeof o)return o;if("string"==typeof o){if(o.endsWith("%")){const e=b.current?.offsetWidth||window.innerWidth;return parseFloat(o)/100*e}const e=Number(o);return Number.isFinite(e)?e:800}return 800},[o]),M=t.useMemo(()=>{if("auto"===u){const e="number"==typeof o?o:b.current?.offsetWidth||800,t=250;return Math.max(1,Math.floor(e/t))}return Math.max(1,u)},[u,o]),z=t.useMemo(()=>{if("number"==typeof a)return a;return((Number.isFinite(w)?w:800)-d*(M-1))/M},[a,w,M,d]),R=t.useMemo(()=>{const e=[];if(!Number.isFinite(z))return e;if("masonry"===c){const t=Array(M).fill(0);for(let n=0;n<r.length;n++){const r=t.indexOf(Math.min(...t)),i="function"==typeof l?l(n):l;e.push({x:r*(z+d),y:t[r],width:z,height:i}),t[r]+=i+d}}else for(let t=0;t<r.length;t++){const r=Math.floor(t/M),n=t%M,i="function"==typeof l?l(t):l;e.push({x:n*(z+d),y:r*(i+d),width:z,height:i})}return e},[r,M,z,d,c,l]),E=t.useMemo(()=>{const e=R.findIndex(e=>e.y+e.height>=y),t=R.findIndex(e=>e.y>y+("number"==typeof s?s:600));return{start:Math.max(0,e-f),end:-1===t?r.length-1:Math.min(r.length-1,t+f)}},[R,y,s,f,r.length]),O=t.useMemo(()=>{if(!R.length)return 0;if("masonry"===c)return Math.max(...R.map(e=>e.y+e.height));return Math.ceil(r.length/M)*(("function"==typeof l?200:l)+d)},[R,c,r.length,M,l,d]);t.useEffect(()=>()=>{I.current&&clearTimeout(I.current)},[]);const k={height:s,width:o,overflowY:"auto",overflowX:"hidden",position:"relative",...g},C=Number.isFinite(z)?z:200,j={position:"relative",height:O,width:M*C+d*(M-1)};return e.jsx("div",{ref:b,className:m,style:k,onScroll:e=>{const t=e.currentTarget.scrollTop;v(t),S(!0),h?.(t,e.currentTarget.scrollLeft),I.current&&clearTimeout(I.current),I.current=setTimeout(()=>{S(!1)},120)},children:e.jsx("div",{style:j,children:Array.from({length:E.end-E.start+1},(t,s)=>{const o=E.start+s,u=r[o],l=R[o];if(!u||!l)return null;if(!Number.isFinite(l.width))return null;const a={position:"absolute",top:l.y,left:l.x,width:l.width,height:l.height};return e.jsx("div",{style:a,children:n({item:u,index:o,isScrolling:x,style:a})},i?.(o,u)??o)})})})});function u(e,t){return t?e:e.toLowerCase()}o.displayName="VirtualGrid";const l=new Map;exports.MeasurementSystem=n,exports.VirtualGrid=o,exports.VirtualList=s,exports.VirtualizationEngine=r,exports.useInfiniteScroll=function({onLoadMore:e,threshold:r=500,isLoading:n=!1,enabled:i=!0}){const s=t.useRef(null),[o,u]=t.useState(!1),l=t.useRef(!1),a=t.useRef(e);t.useEffect(()=>{a.current=e},[e]);const c=t.useCallback(()=>{if(!i||n)return;const e=s.current;if(!e)return;const{scrollTop:t,scrollHeight:o,clientHeight:c}=e,f=o-t-c<=r;u(f),!f||l.current||n||(l.current=!0,Promise.resolve(a.current()).finally(()=>{l.current=!1}))},[r,n,i]);return t.useEffect(()=>{if(!i)return;const e=s.current;if(!e)return;const t=()=>{c()};return e.addEventListener("scroll",t,{passive:!0}),c(),()=>{e.removeEventListener("scroll",t)}},[c,i]),{containerRef:s,isAtBottom:o,isLoading:n,checkIfAtBottom:c}},exports.useLazyLoad=function({threshold:e=.1,onVisible:r,root:n=null,rootMargin:i="0px",enabled:s=!0,once:o=!0}={}){const[u,l]=t.useState(!1),[a,c]=t.useState(null),f=t.useRef(null),d=t.useRef(r);return t.useEffect(()=>{d.current=r},[r]),t.useEffect(()=>{if(!s)return;const t=f.current;if(!t)return;if("undefined"==typeof window||!("IntersectionObserver"in window))return l(!0),void d.current?.();const r=new IntersectionObserver(([e])=>{c(e),e.isIntersecting?(l(!0),d.current?.(),o&&r.unobserve(e.target)):o||l(!1)},{threshold:e,root:n,rootMargin:i});return r.observe(t),()=>{r.disconnect()}},[e,n,i,s,o]),{ref:f,isVisible:u,entry:a}},exports.useScrollRestoration=function(e,r,{persist:n=!0,storageKey:i="virtualize-scroll-positions",storage:s,autoSave:o=!1,maxEntries:u=100,useRAF:a=!0,enabled:c=!0,onError:f}={}){const d=t.useRef(s??("undefined"!=typeof window&&"undefined"!=typeof document?window.localStorage:null));t.useEffect(()=>{if(c&&n&&d.current&&!(l.size>0))try{const e=d.current.getItem(i);if(!e)return;JSON.parse(e).forEach(e=>{l.set(e.key,e)})}catch(e){f?.(e)}},[c,n,i,f]);const h=t.useCallback(()=>{if(n&&d.current)try{const e=Array.from(l.values()).sort((e,t)=>t.timestamp-e.timestamp).slice(0,u);d.current.setItem(i,JSON.stringify(e))}catch(e){f?.(e)}},[n,i,u,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()};l.set(e,n),h()},[e,r,c,h]),g=t.useCallback(()=>{if(!c)return;if(!r.current)return;const t=l.get(e);if(!t)return;const n=()=>{r.current&&(r.current.scrollTop=t.top,r.current.scrollLeft=t.left)};a?requestAnimationFrame(n):n()},[e,r,c,a]);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=i,exports.useVirtualizedSearch=function({items:r,searchValue:n,searchFields:i,caseSensitive:s=!1,deferSearch:o=!0,matcher:l}){const a=t.useMemo(()=>u(n.trim(),s),[n,s]),c=t.useDeferredValue(a),f=o?c:a,d=o&&c!==a,h=t.useCallback(e=>!f||(l?l(e,f):function(e,t,r,n){return r.some(r=>{const i=e[r];return null!=i&&u(String(i).trim(),n).includes(t)})}(e,f,i,s)),[f,l,i,s]),m=t.useMemo(()=>f?r.filter(h):[...r],[r,f,h]),g=t.useCallback(e=>h(e),[h]),p=t.useMemo(()=>{if(!a)return null;const e=a.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");return new RegExp(`(${e})`,s?"g":"gi")},[a,s]),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
|
package/dist/index.cjs.js.map
CHANGED
|
@@ -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","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","innerClassName","setScrollTop","scrollTimeout","containerWidth","viewportHeight","cols","useMemo","colWidth","positions","pos","colHeights","Array","fill","minCol","indexOf","h","x","y","row","floor","col","visibleRange","findIndex","p","totalHeight","ceil","overflowY","overflowX","innerStyleComputed","scrollLeft","from","_","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","observer","IntersectionObserver","observerEntry","isIntersecting","persist","storageKey","storage","autoSave","maxEntries","useRAF","onError","storageRef","document","localStorage","raw","getItem","JSON","parse","error","persistCache","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","innerClassName","setScrollTop","scrollTimeout","containerWidth","useMemo","endsWith","parentWidth","offsetWidth","innerWidth","parseFloat","parsed","isFinite","cols","minColWidth","floor","colWidth","positions","pos","colHeights","Array","fill","minCol","indexOf","h","x","y","row","col","visibleRange","findIndex","p","totalHeight","ceil","overflowY","overflowX","safeColWidth","innerStyleComputed","scrollLeft","from","_","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","observer","IntersectionObserver","observerEntry","isIntersecting","persist","storageKey","storage","autoSave","maxEntries","useRAF","onError","storageRef","document","localStorage","raw","getItem","JSON","parse","error","persistCache","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),[I,S]=n(!1),w=r(null),z=r(0),M=r(c),[O,P]=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)}));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})},[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),S(!0),h&&h(t,r),w.current&&clearTimeout(w.current),w.current=setTimeout(()=>{S(!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 T=s((e,t)=>{g.current.recordItemSize(e,t)},[]);i(()=>{const e=b.current;return e&&p.current.startMeasuring(e,T),()=>{p.current.stopMeasuring()}},[T]);const R=s((e,t="start")=>{const r=g.current.getScrollOffsetForIndex(e,o,t);b.current&&(b.current.scrollTop=r)},[o]),k=s(e=>{b.current&&(b.current.scrollTop=e)},[]),L=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 N=g.current.getTotalSize();return{virtualItems:O,isScrolling:I,scrollOffset:v,totalSize:N,scrollToItem:R,scrollToOffset:k,setScrollOffset:x,containerRef:b,innerRef:y,getItemStyle:L}}const f=o(({items:n,renderItem:s,itemWrapper:o,itemKey:c,height:a=400,width:u=500,itemSize:d,overscan:f=5,scrollDirection:m="forward",onScroll:g,className:p="",itemClassName:b="",style:y={},estimatedItemSize:v=35,getItemSize:x,stickyIndices:I=[],onScrollEnd:S,innerRef:w,scrollOffsetRef:z},M)=>{const{virtualItems:O,isScrolling:P,scrollOffset:E,totalSize:T,containerRef:R,innerRef:k,getItemStyle:L}=h({items:n,containerHeight:"number"==typeof a?a:400,overscan:f,scrollDirection:m,estimatedItemSize:v,onScroll:g,onScrollEnd:S,stickyIndices:I}),N=r(null),j=r(null);l(M,()=>N.current),l(w,()=>j.current),i(()=>{z&&(z.current=E)},[E,z]);const C={height:a,width:u,overflow:"auto",position:"relative",...y};return e("div",{ref:e=>{N.current=e,R.current=e},className:`virtualize-container ${p}`,style:C,onScroll:e=>{const t=e.target,r=s?.__scrollHandler;r&&r(e),g&&g(t.scrollTop,"auto")},children:e("div",{ref:e=>{j.current=e,k.current=e},style:{position:"relative",height:T,width:"100%"},className:"virtualize-inner",children:O.map(r=>{const i=n[r.index],l=c?c(r.index,i):r.index,a=L(r.index,r.size),u={item:i,index:r.index,style:a,isScrolling:P},d=s(u);return o?e(t.Fragment,{children:o({item:i,index:r.index,style:a,children:d})},l):e("div",{"data-virtualize-index":r.index,className:b,style:{...a,boxSizing:"border-box"},children:d},l)})})})});f.displayName="VirtualList";const m=o(({items:t,renderItem:s,itemKey:o,height:a=600,width:u=800,columnCount:d=3,rowHeight:h=200,columnWidth:f,layout:m="grid",overscan:g=5,gap:p=16,onScroll:b,innerClassName:y,innerStyle:v},x)=>{const I=r(null);l(x,()=>I.current);const[S,w]=n(0),[z,M]=n(!1),O=r(null),P="number"==typeof u?u:Number(u),E="number"==typeof a?a:Number(a),T=c(()=>"number"==typeof d?Math.max(1,d):3,[d]),R=c(()=>"number"==typeof f?f:(P-p*(T-1))/T,[f,P,T,p]),k=c(()=>{const e=[];if("masonry"===m){const r=Array(T).fill(0);for(let n=0;n<t.length;n++){const t=r.indexOf(Math.min(...r)),i="function"==typeof h?h(n):h;e.push({x:t*(R+p),y:r[t],width:R,height:i}),r[t]+=i+p}}else for(let r=0;r<t.length;r++){const t=Math.floor(r/T),n=r%T,i="function"==typeof h?h(r):h;e.push({x:n*(R+p),y:t*(i+p),width:R,height:i})}return e},[t,T,R,p,m,h]),L=c(()=>{const e=k.findIndex(e=>e.y+e.height>=S),r=k.findIndex(e=>e.y>S+E);return{start:Math.max(0,e-g),end:-1===r?t.length-1:Math.min(t.length-1,r+g)}},[k,S,E,g,t.length]),N=c(()=>{if("masonry"===m){return Math.max(...k.length?k.map(e=>e.y+e.height):[0])}return Math.ceil(t.length/T)*(("function"==typeof h?200:h)+p)},[t.length,T,p,m,h,k]);i(()=>()=>{O.current&&clearTimeout(O.current)},[]);const j={height:a,width:u,overflowY:"auto",overflowX:"hidden",position:"relative",...v};return e("div",{ref:I,className:y,style:j,onScroll:e=>{const t=e.currentTarget.scrollTop;w(t),M(!0),b?.(t,e.currentTarget.scrollLeft),O.current&&clearTimeout(O.current),O.current=setTimeout(()=>{M(!1)},120)},children:e("div",{style:{position:"relative",height:N,width:T*R+p*(T-1)},children:Array.from({length:L.end-L.start+1},(r,n)=>{const i=L.start+n,l=t[i],c=k[i];if(!l||!c)return null;const a={position:"absolute",top:c.y,left:c.x,width:c.width,height:c.height};return e("div",{style:a,children:s({item:l,index:i,isScrolling:z,style:a})},o?.(i,l)??i)})})})});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 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),[I,S]=n(!1),w=r(null),z=r(0),M=r(c),[O,P]=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)}));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})},[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),S(!0),h&&h(t,r),w.current&&clearTimeout(w.current),w.current=setTimeout(()=>{S(!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 T=s((e,t)=>{g.current.recordItemSize(e,t)},[]);i(()=>{const e=b.current;return e&&p.current.startMeasuring(e,T),()=>{p.current.stopMeasuring()}},[T]);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)},[]),F=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 k=g.current.getTotalSize();return{virtualItems:O,isScrolling:I,scrollOffset:v,totalSize:k,scrollToItem:N,scrollToOffset:R,setScrollOffset:x,containerRef:b,innerRef:y,getItemStyle:F}}const f=o(({items:n,renderItem:s,itemWrapper:o,itemKey:c,height:a=400,width:u=500,itemSize:d,overscan:f=5,scrollDirection:m="forward",onScroll:g,className:p="",itemClassName:b="",style:y={},estimatedItemSize:v=35,getItemSize:x,stickyIndices:I=[],onScrollEnd:S,innerRef:w,scrollOffsetRef:z},M)=>{const{virtualItems:O,isScrolling:P,scrollOffset:E,totalSize:T,containerRef:N,innerRef:R,getItemStyle:F}=h({items:n,containerHeight:"number"==typeof a?a:400,overscan:f,scrollDirection:m,estimatedItemSize:v,onScroll:g,onScrollEnd:S,stickyIndices:I}),k=r(null),L=r(null);l(M,()=>k.current),l(w,()=>L.current),i(()=>{z&&(z.current=E)},[E,z]);const j={height:a,width:u,overflow:"auto",position:"relative",...y};return e("div",{ref:e=>{k.current=e,N.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,R.current=e},style:{position:"relative",height:T,width:"100%"},className:"virtualize-inner",children:O.map(r=>{const i=n[r.index],l=c?c(r.index,i):r.index,a=F(r.index,r.size),u={item:i,index:r.index,style:a,isScrolling:P},d=s(u);return o?e(t.Fragment,{children:o({item:i,index:r.index,style:a,children:d})},l):e("div",{"data-virtualize-index":r.index,className:b,style:{...a,boxSizing:"border-box"},children:d},l)})})})});f.displayName="VirtualList";const m=o(({items:t,renderItem:s,itemKey:o,height:a=600,width:u="100%",columnCount:d=3,rowHeight:h=200,columnWidth:f,layout:m="grid",overscan:g=5,gap:p=16,onScroll:b,innerClassName:y,innerStyle:v},x)=>{const I=r(null);l(x,()=>I.current);const[S,w]=n(0),[z,M]=n(!1),O=r(null),P=c(()=>{if("number"==typeof u)return u;if("string"==typeof u){if(u.endsWith("%")){const e=I.current?.offsetWidth||window.innerWidth;return parseFloat(u)/100*e}const e=Number(u);return Number.isFinite(e)?e:800}return 800},[u]),E=c(()=>{if("auto"===d){const e="number"==typeof u?u:I.current?.offsetWidth||800,t=250;return Math.max(1,Math.floor(e/t))}return Math.max(1,d)},[d,u]),T=c(()=>{if("number"==typeof f)return f;return((Number.isFinite(P)?P:800)-p*(E-1))/E},[f,P,E,p]),N=c(()=>{const e=[];if(!Number.isFinite(T))return e;if("masonry"===m){const r=Array(E).fill(0);for(let n=0;n<t.length;n++){const t=r.indexOf(Math.min(...r)),i="function"==typeof h?h(n):h;e.push({x:t*(T+p),y:r[t],width:T,height:i}),r[t]+=i+p}}else for(let r=0;r<t.length;r++){const t=Math.floor(r/E),n=r%E,i="function"==typeof h?h(r):h;e.push({x:n*(T+p),y:t*(i+p),width:T,height:i})}return e},[t,E,T,p,m,h]),R=c(()=>{const e=N.findIndex(e=>e.y+e.height>=S),r=N.findIndex(e=>e.y>S+("number"==typeof a?a:600));return{start:Math.max(0,e-g),end:-1===r?t.length-1:Math.min(t.length-1,r+g)}},[N,S,a,g,t.length]),F=c(()=>{if(!N.length)return 0;if("masonry"===m)return Math.max(...N.map(e=>e.y+e.height));return Math.ceil(t.length/E)*(("function"==typeof h?200:h)+p)},[N,m,t.length,E,h,p]);i(()=>()=>{O.current&&clearTimeout(O.current)},[]);const k={height:a,width:u,overflowY:"auto",overflowX:"hidden",position:"relative",...v},L=Number.isFinite(T)?T:200;return e("div",{ref:I,className:y,style:k,onScroll:e=>{const t=e.currentTarget.scrollTop;w(t),M(!0),b?.(t,e.currentTarget.scrollLeft),O.current&&clearTimeout(O.current),O.current=setTimeout(()=>{M(!1)},120)},children:e("div",{style:{position:"relative",height:F,width:E*L+p*(E-1)},children:Array.from({length:R.end-R.start+1},(r,n)=>{const i=R.start+n,l=t[i],c=N[i];if(!l||!c)return null;if(!Number.isFinite(c.width))return null;const a={position:"absolute",top:c.y,left:c.x,width:c.width,height:c.height};return e("div",{style:a,children:s({item:l,index:i,isScrolling:z,style:a})},o?.(i,l)??i)})})})});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};
|
|
2
2
|
//# sourceMappingURL=index.esm.js.map
|
package/dist/index.esm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.esm.js","sources":["../src/core/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","innerClassName","innerStyle","setScrollTop","scrollTimeout","containerWidth","viewportHeight","cols","useMemo","colWidth","positions","pos","colHeights","Array","fill","minCol","indexOf","h","x","y","row","floor","col","visibleRange","findIndex","p","totalHeight","ceil","overflowY","overflowX","scrollLeft","from","_","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","observer","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","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","innerClassName","innerStyle","setScrollTop","scrollTimeout","containerWidth","useMemo","endsWith","parentWidth","offsetWidth","innerWidth","parseFloat","parsed","isFinite","cols","minColWidth","floor","colWidth","positions","pos","colHeights","Array","fill","minCol","indexOf","h","x","y","row","col","visibleRange","findIndex","p","totalHeight","ceil","overflowY","overflowX","safeColWidth","scrollLeft","from","_","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","observer","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","values","sort","a","b","timestamp","slice","setItem","stringify","savePosition","Date","now","restorePosition","restore"],"mappings":"0MAMaA,EAST,WAAAC,CAAYC,EAAoB,IARxBC,OAAAC,eAAAC,KAAA,cAAA,iDAAgC,CAAA,IAChCF,OAAAC,eAAAC,KAAA,oBAAA,0DACAF,OAAAC,eAAAC,KAAA,YAAA,iDAAY,IAGZF,OAAAC,eAAAC,KAAA,SAAA,2CAAmBC,MAAA,CAAC,KACpBH,OAAAC,eAAAC,KAAA,QAAA,kDAAQ,IAGZA,KAAKH,kBAAoBA,CAC7B,CAEA,YAAAK,CAAaC,GACTH,KAAKI,UAAYD,EACjBH,KAAKK,OAAQ,CACjB,CAEA,cAAAC,CAAeC,EAAeC,GACtBR,KAAKS,YAAYF,KAAWC,IAEhCR,KAAKS,YAAYF,GAASC,EAC1BR,KAAKK,OAAQ,EACjB,CAEQ,aAAAK,GACJ,IAAIC,EAAM,EACVX,KAAKY,OAAS,CAAC,GAEf,IAAK,IAAIC,EAAI,EAAGA,EAAIb,KAAKI,UAAWS,IAChCF,GAAOX,KAAKS,YAAYI,IAAMb,KAAKH,kBACnCG,KAAKY,OAAOC,EAAI,GAAKF,EAGzBX,KAAKK,OAAQ,CACjB,CAEA,WAAAS,CAAYP,GACR,OAAOP,KAAKS,YAAYF,IAAUP,KAAKH,iBAC3C,CAEA,aAAAkB,CAAcR,GAEV,OADIP,KAAKK,OAAOL,KAAKU,gBACdV,KAAKY,OAAOL,IAAU,CACjC,CAEA,YAAAS,GAEI,OADIhB,KAAKK,OAAOL,KAAKU,gBACdV,KAAKY,OAAOZ,KAAKI,YAAc,CAC1C,CAEQ,YAAAa,CAAaC,GACblB,KAAKK,OAAOL,KAAKU,gBAErB,IAAIS,EAAM,EACNC,EAAOpB,KAAKI,UAAY,EAE5B,KAAOe,GAAOC,GAAM,CAChB,MAAMC,EAAOF,EAAMC,GAAS,EACtBnB,EAAQD,KAAKY,OAAOS,GAE1B,GAAIpB,IAAUiB,EAAQ,OAAOG,EACzBpB,EAAQiB,EAAQC,EAAME,EAAM,EAC3BD,EAAOC,EAAM,CACtB,CAEA,OAAOC,KAAKC,IAAI,EAAGJ,EAAM,EAC7B,CAEA,eAAAK,CACIC,EACAC,EACAtB,EACAuB,EAAW,GAEX3B,KAAKE,aAAaE,GAElB,MAAMwB,EAAQ5B,KAAKiB,aAAaQ,GAC1BI,EAAM7B,KAAKiB,aAAaQ,EAAeC,GAE7C,MAAO,CACHI,WAAYR,KAAKC,IAAI,EAAGK,EAAQD,GAChCI,SAAUT,KAAKU,IAAI5B,EAAY,EAAGyB,EAAMF,GACxCM,mBAAoBL,EACpBM,iBAAkBL,EAE1B,CAEA,eAAAM,CACIV,EACAC,EACAtB,EACAuB,GAEA,MAAMS,EAAQpC,KAAKwB,gBACfC,EACAC,EACAtB,EACAuB,GAGEU,EAAoB,GAE1B,IAAK,IAAIxB,EAAIuB,EAAMN,WAAYjB,GAAKuB,EAAML,SAAUlB,IAChDwB,EAAMC,KAAK,CACP/B,MAAOM,EACPL,KAAMR,KAAKc,YAAYD,GACvBK,OAAQlB,KAAKe,cAAcF,KAInC,OAAOwB,CACX,CAEA,uBAAAE,CAAwBhC,EAAemB,EAAuBc,EAAwC,SAClG,MAAMtB,EAASlB,KAAKe,cAAcR,GAC5BC,EAAOR,KAAKc,YAAYP,GAE9B,MAAkB,WAAdiC,EACOlB,KAAKC,IAAI,EAAGL,GAAUQ,EAAgBlB,GAAQ,GAGvC,QAAdgC,EACOlB,KAAKC,IAAI,EAAGL,EAASQ,EAAgBlB,GAGzCc,KAAKC,IAAI,EAAGL,EACvB,QCrISuB,EAiBT,WAAA7C,GAhBQE,OAAAC,eAAAC,KAAA,iBAAA,iDAAwC,OAExCF,OAAAC,eAAAC,KAAA,eAAA,2CAAeC,MAAA,IAAIyC,MAEnB5C,OAAAC,eAAAC,KAAA,mBAAA,2CACJC,MAAA,IAAI0C,UAEA7C,OAAAC,eAAAC,KAAA,iBAAA,2CACJC,MAAA,IAAIyC,MAEA5C,OAAAC,eAAAC,KAAA,QAAA,iDAAuB,OAEvBF,OAAAC,eAAAC,KAAA,YAAA,iDAEK,OA8FLF,OAAAC,eAAAC,KAAA,eAAA,iDACJ4C,IAEA,IAAK,MAAMC,KAASD,EAAS,CACzB,MAAME,EACFD,EAAME,OAEJxC,EACFP,KAAKgD,iBAAiBC,IAClBH,GAGR,QAAcI,IAAV3C,EACA,SAGJ,MAAMC,EAAOc,KAAK6B,MACdN,EAAMO,YAAYC,QAIlBrD,KAAKsD,aAAaL,IACd1C,KACEC,IAKVR,KAAKsD,aAAaC,IACdhD,EACAC,GAGJR,KAAKwD,eAAeD,IAChBhD,EACAC,GAER,CAEAR,KAAKyD,yBAjIiB,oBAAXC,QACP,mBAAoBA,SAEpB1D,KAAK2D,eACD,IAAIC,eACA5D,KAAK6D,cAGrB,CAKA,cAAAC,CACIC,EACAC,GAKAhE,KAAKgE,UAAYA,EAGbD,EAAUE,iBACN,2BAGFC,QAASC,IACX,MAAMC,EACFD,EAAKE,QAAQC,gBAEjB,QACkBpB,IAAdkB,EAEA,OAGJ,MAAM7D,EACFgE,OAAOH,GAEXpE,KAAKwE,YACDjE,EACA4D,IAGZ,CAKA,WAAAK,CACIjE,EACAuC,GAEAA,EAAQuB,QAAQC,gBACZG,OAAOlE,GAEXP,KAAKgD,iBAAiBO,IAClBT,EACAvC,GAGJP,KAAK2D,gBAAgBe,QACjB5B,GAGJ9C,KAAK2E,YACDpE,EACAuC,EAER,CAKA,aAAA8B,CACI9B,GAEA9C,KAAK2D,gBAAgBkB,UACjB/B,GAGJ9C,KAAKgD,iBAAiB8B,OAClBhC,EAER,CAkDQ,mBAAAW,GACe,OAAfzD,KAAK+E,QAIT/E,KAAK+E,MACDC,sBAAsB,KAClBhF,KAAKwD,eAAeU,QAChB,CAAC1D,EAAMD,KACHP,KAAKgE,YACDzD,EACAC,KAKZR,KAAKwD,eAAeyB,QAEpBjF,KAAK+E,MAAQ,OAEzB,CAKA,WAAAJ,CACIpE,EACAuC,GAEA,MAAMtC,EACFsC,EAAQoC,wBACH7B,OAET,GAAI7C,GAAQ,EACR,OAGJ,MAAM2E,EACF7D,KAAK6B,MAAM3C,GAGXR,KAAKsD,aAAaL,IACd1C,KACE4E,IAKVnF,KAAKsD,aAAaC,IACdhD,EACA4E,GAGJnF,KAAKgE,YACDzD,EACA4E,GAER,CAKA,aAAAC,GACIpF,KAAK2D,gBAAgB0B,aAErBrF,KAAKwD,eAAeyB,QAED,OAAfjF,KAAK+E,OACLO,qBACItF,KAAK+E,MAGjB,CAEA,cAAAQ,CACIhF,GAEA,OAAOP,KAAKsD,aAAaL,IACrB1C,EAER,CAEA,kBAAAiF,GAII,OAAO,IAAI9C,IACP1C,KAAKsD,aAEb,CAEA,YAAAmC,GACIzF,KAAKwD,eAAeyB,OACxB,CAKA,iBAAAS,GACI1F,KAAKsD,aAAa2B,OACtB,CAEA,OAAAU,GACI3F,KAAKoF,gBAELpF,KAAKsD,aAAa2B,QAClBjF,KAAKwD,eAAeyB,QAEpBjF,KAAKgD,iBACD,IAAIL,QAER3C,KAAKgE,UAAY,IACrB,ECnLE,SAAU4B,EACZC,GAEA,MAAMxD,MACFA,EAAKyD,gBACLA,EAAenE,SACfA,EAAW,EAACoE,gBACZA,EAAkB,UAASlG,kBAC3BA,EAAoB,GAAEmG,SACtBA,EAAQC,YACRA,EAAWC,cACXA,EAAgB,IAChBL,EAKEM,EAAYC,EACd,IAAIzG,EACAE,IAIFwG,EAAiBD,EACnB,IAAI3D,GAMF6D,EACFF,EAAuB,MAErBG,EACFH,EAAuB,OAKpB3E,EAAc+E,GACjBC,EAAS,IAENC,EAAaC,GAChBF,GAAS,GAEPG,EAAmBR,EAEvB,MAEIS,EACFT,EAAO,GAELU,EACFV,EACIL,IAMDgB,EAAcC,GACjBP,EAAwB,IAK5BQ,EAAU,KACN,MAWMC,EAXSf,EAAUgB,QAGdhF,gBACHV,EACAqE,EACAzD,EAAM+E,OACNzF,GAKS0F,IAAKlD,IAAI,CAClB5D,MAAO4D,EAAK5D,MACZW,OAAQiD,EAAKjD,OACbV,KAAM2D,EAAK3D,KACX8G,SACIpB,EAAcqB,SACVpD,EAAK5D,UAOrByG,EAAiBQ,IACb,GACIA,EAAKJ,SACLF,EAAiBE,OACnB,CACE,IAAIK,GAAU,EAEd,IACI,IAAI5G,EAAI,EACRA,EAAI2G,EAAKJ,OACTvG,IACF,CACE,MAAM6G,EACFF,EAAK3G,GAEH8G,EACFT,EAAiBrG,GAErB,GACI6G,EAASnH,QACToH,EAASpH,OACTmH,EAASxG,SACTyG,EAASzG,QACTwG,EAASlH,OACTmH,EAASnH,MACTkH,EAASJ,WACTK,EAASL,SACX,CACEG,GAAU,EACV,KACJ,CACJ,CAEA,IAAKA,EACD,OAAOD,CAEf,CAEA,OAAON,KAEZ,CACCzF,EACAqE,EACAzD,EAAM+E,OACNzF,EACAuE,IAMJ,MAAM0B,EAAeC,EAEbC,IAEA,MAGMC,EAFFD,EAAEE,cAGKC,UAKX,GACIF,IACAlB,EAAoBM,QAEpB,OAMJ,MAAMe,EACFH,EACIlB,EAAoBM,QAClB,UACA,UAEVL,EAAmBK,QACfe,EAEJrB,EAAoBM,QAChBY,EAEJvB,EACIuB,GAGJpB,GAAe,GAKXX,GACAA,EACI+B,EACAG,GAQJtB,EAAiBO,SAEjBgB,aACIvB,EAAiBO,SAIzBP,EAAiBO,QACbiB,WAAW,KACPzB,GAAe,GAEXV,GACAA,KAEL,MAEX,CAACD,EAAUC,IAMfgB,EAAU,KACN,MAAMlD,EACFuC,EAAaa,QAEjB,IAAKpD,EACD,OAGJ,MAAMsE,EACFP,IAEAF,EACIE,IASR,OALA/D,EAAUuE,iBACN,SACAD,GAGG,KACHtE,EAAUwE,oBACN,SACAF,KAGT,CAACT,IAKJ,MAAMY,EACFX,EACI,CACItH,EACAC,KAEA2F,EAAUgB,QAAQ7G,eACdC,EACAC,IAGR,IAMRyG,EAAU,KACN,MAAMlD,EACFuC,EAAaa,QASjB,OAPIpD,GACAsC,EAAec,QAAQrD,eACnBC,EACAyE,GAID,KACHnC,EAAec,QAAQ/B,kBAE5B,CAACoD,IAKJ,MAAMC,EACFZ,EACI,CACItH,EACAiC,EAGc,WAEd,MAAMtB,EACFiF,EAAUgB,QAAQ5E,wBACdhC,EACAuF,EACAtD,GAIJ8D,EAAaa,UAEbb,EAAaa,QAAQc,UACjB/G,IAGZ,CAAC4E,IAMH4C,EACFb,EACK3G,IAEOoF,EAAaa,UAEbb,EAAaa,QAAQc,UACjB/G,IAGZ,IAMFyH,EACFd,EACI,CACItH,EACAC,KAEA,MAAMU,EACFiF,EAAUgB,QAAQpG,cACdR,GAGFqI,EACF1C,EAAcqB,SACVhH,GAGR,MAAO,CACHsI,SACID,EACM,SACA,WAEVE,IAAKF,EACC,EACA1H,EAEN6H,KAAM,EAENC,MAAO,OAEP3F,OAAQ7C,EAERyI,OACIL,EACM,GACA,IAGlB,CAAC1C,IAMTe,EAAU,IACC,KAECL,EAAiBO,SAEjBgB,aACIvB,EAAiBO,SAIzBd,EAAec,QAAQxB,WAE5B,IAKH,MAAMuD,EACF/C,EAAUgB,QAAQnG,eAEtB,MAAO,CACH+F,eACAL,cACAjF,eACAyH,YACAT,eACAC,iBACAlC,kBACAF,eACAC,WACAoC,eAER,CC/dO,MAAMQ,EAAcC,EAIvB,EAEQ/G,QACAgH,aACAC,cACAC,UACAlG,SAAS,IACT2F,QAAQ,IACRQ,WACA7H,WAAW,EACXoE,kBAAkB,UAClBC,WACAyD,YAAY,GACZC,gBAAgB,GAChBC,QAAQ,CAAA,EACR9J,oBAAoB,GACpBiB,cACAoF,gBAAgB,GAChBD,cACAM,WACAqD,mBAEJtD,KAEA,MAAMS,aACFA,EAAYL,YACZA,EAAWjF,aACXA,EAAYyH,UACZA,EACA5C,aAAcuD,EACdtD,SAAUuD,EAAgBnB,aAC1BA,GACA/C,EAAe,CACfvD,QAEAyD,gBACsB,iBAAXzC,EACDA,EACA,IAMV1B,WACAoE,kBACAlG,oBACAmG,WACAC,cACAC,kBAME6D,EACF3D,EAA8B,MAE5B4D,EACF5D,EAA8B,MAKlC6D,EACI3D,EACA,IAAMyD,EAAmB5C,SAM7B8C,EACI1D,EACA,IAAMyD,EAAe7C,SAMzBF,EAAU,KACF2C,IACAA,EAAgBzC,QACZ1F,IAET,CAACA,EAAcmI,IAKlB,MAAMM,EACN,CACI7G,SACA2F,QACAmB,SAAU,OACVtB,SAAU,cACPc,GAYP,OACIS,EAAA,MAAA,CACIC,IAAMC,IACFP,EAAmB5C,QACfmD,EAEJT,EAAqB1C,QACjBmD,GAERb,UAAW,wBAAwBA,IACnCE,MAAOO,EACPlE,SAAW8B,IACP,MAAM/E,EACF+E,EAAE/E,OAEAwH,EACFlB,GACDmB,gBAECD,GACAA,EAAQzC,GAGR9B,GACAA,EACIjD,EAAOkF,UACP,kBAKZmC,EAAA,MAAA,CACIC,IAAMC,IACFN,EAAe7C,QACXmD,EAEJR,EAAiB3C,QACbmD,GAERX,MA7C4B,CACpCd,SAAU,WACVxF,OAAQ6F,EACRF,MAAO,QA2CCS,UAAU,mBAAkBgB,SAE3B1D,EAAaM,IACTqD,IACG,MAAMvG,EACF9B,EACAqI,EAAYnK,OAGVoK,EAAMpB,EACNA,EACEmB,EAAYnK,MACZ4D,GAEFuG,EAAYnK,MAEZqK,EACFjC,EACI+B,EAAYnK,MACZmK,EAAYlK,MAGdqK,EACN,CACI1G,OACA5D,MACImK,EAAYnK,MAOhBoJ,MACIiB,EAEJlE,eAGEoE,EACFzB,EACIwB,GAMR,OAAIvB,EAEIc,EAACW,EAAMC,SAAQ,CAAAP,SAGVnB,EAAY,CACTnF,OACA5D,MACImK,EAAYnK,MAChBoJ,MACIiB,EACJH,SACIK,KATHH,GAmBbP,EAAA,MAAA,CAAA,wBAGQM,EAAYnK,MAEhBkJ,UACIC,EAEJC,MAAO,IACAiB,EACHK,UACI,cACPR,SAEAK,GAbIH,WAwBzCxB,EAAY+B,YAAc,cCrPnB,MAAMC,EAAc/B,EACvB,EAEQ/G,QACAgH,aACAE,UACAlG,SAAS,IACT2F,QAAQ,OACRoC,cAAc,EACdC,YAAY,IACZC,cACAC,SAAS,OACT5J,WAAW,EACX6J,MAAM,GACNxF,WACAyF,iBACAC,cAEJrB,KAEA,MAAM/D,EAAeF,EAAuB,MAC5C6D,EAAoBI,EAAK,IAAM/D,EAAaa,SAE5C,MAAOc,EAAW0D,GAAgBlF,EAAS,IACpCC,EAAaC,GAAkBF,GAAS,GAEzCmF,EAAgBxF,EAA8B,MAK9CyF,EAAiBC,EAAQ,KAC3B,GAAqB,iBAAV9C,EAAoB,OAAOA,EAEtC,GAAqB,iBAAVA,EAAoB,CAC3B,GAAIA,EAAM+C,SAAS,KAAM,CACrB,MAAMC,EACF1F,EAAaa,SAAS8E,aACtBvI,OAAOwI,WAEX,OAAQC,WAAWnD,GAAS,IAAOgD,CACvC,CAEA,MAAMI,EAAS7H,OAAOyE,GACtB,OAAOzE,OAAO8H,SAASD,GAAUA,EAAS,GAC9C,CAEA,OAAO,KACR,CAACpD,IAKEsD,EAAOR,EAAQ,KACjB,GAAoB,SAAhBV,EAAwB,CACxB,MAAMS,EACe,iBAAV7C,EACDA,EACA1C,EAAaa,SAAS8E,aAAe,IAEzCM,EAAc,IAEpB,OAAOjL,KAAKC,IAAI,EAAGD,KAAKkL,MAAMX,EAAiBU,GACnD,CAEA,OAAOjL,KAAKC,IAAI,EAAG6J,IACpB,CAACA,EAAapC,IAKXyD,EAAWX,EAAQ,KACrB,GAA2B,iBAAhBR,EAA0B,OAAOA,EAM5C,QAJkB/G,OAAO8H,SAASR,GAC5BA,EACA,KAEcL,GAAOc,EAAO,IAAMA,GACzC,CAAChB,EAAaO,EAAgBS,EAAMd,IAKjCkB,EAAYZ,EAAwB,KACtC,MAAMa,EAAsB,GAE5B,IAAKpI,OAAO8H,SAASI,GAAW,OAAOE,EAEvC,GAAe,YAAXpB,EAAsB,CACtB,MAAMqB,EAAaC,MAAMP,GAAMQ,KAAK,GAEpC,IAAK,IAAIjM,EAAI,EAAGA,EAAIwB,EAAM+E,OAAQvG,IAAK,CACnC,MAAMkM,EAASH,EAAWI,QACtB1L,KAAKU,OAAO4K,IAGVK,EACmB,mBAAd5B,EACDA,EAAUxK,GACVwK,EAEVsB,EAAIrK,KAAK,CACL4K,EAAGH,GAAUN,EAAWjB,GACxB2B,EAAGP,EAAWG,GACd/D,MAAOyD,EACPpJ,OAAQ4J,IAGZL,EAAWG,IAAWE,EAAIzB,CAC9B,CACJ,MACI,IAAK,IAAI3K,EAAI,EAAGA,EAAIwB,EAAM+E,OAAQvG,IAAK,CACnC,MAAMuM,EAAM9L,KAAKkL,MAAM3L,EAAIyL,GACrBe,EAAMxM,EAAIyL,EAEVW,EACmB,mBAAd5B,EACDA,EAAUxK,GACVwK,EAEVsB,EAAIrK,KAAK,CACL4K,EAAGG,GAAOZ,EAAWjB,GACrB2B,EAAGC,GAAOH,EAAIzB,GACdxC,MAAOyD,EACPpJ,OAAQ4J,GAEhB,CAGJ,OAAON,GACR,CAACtK,EAAOiK,EAAMG,EAAUjB,EAAKD,EAAQF,IAKlCiC,EAAexB,EAAQ,KACzB,MAAMhK,EAAa4K,EAAUa,UACxBC,GAAMA,EAAEL,EAAIK,EAAEnK,QAAU4E,GAGvBlG,EAAW2K,EAAUa,UACtBC,GAAMA,EAAEL,EAAIlF,GAA+B,iBAAX5E,EAAsBA,EAAS,MAUpE,MAAO,CAAEzB,MAPKN,KAAKC,IAAI,EAAGO,EAAaH,GAOvBE,KAJC,IAAbE,EACMM,EAAM+E,OAAS,EACf9F,KAAKU,IAAIK,EAAM+E,OAAS,EAAGrF,EAAWJ,KAGjD,CAAC+K,EAAWzE,EAAW5E,EAAQ1B,EAAUU,EAAM+E,SAK5CqG,EAAc3B,EAAQ,KACxB,IAAKY,EAAUtF,OAAQ,OAAO,EAE9B,GAAe,YAAXmE,EACA,OAAOjK,KAAKC,OAAOmL,EAAUrF,IAAKmG,GAAMA,EAAEL,EAAIK,EAAEnK,SAOpD,OAJa/B,KAAKoM,KAAKrL,EAAM+E,OAASkF,KAEb,mBAAdjB,EAA2B,IAAMA,GAEjBG,IAC5B,CAACkB,EAAWnB,EAAQlJ,EAAM+E,OAAQkF,EAAMjB,EAAWG,IAsBtDvE,EAAU,IACC,KACC2E,EAAczE,SACdgB,aAAayD,EAAczE,UAGpC,IAEH,MAAM+C,EAAsC,CACxC7G,SACA2F,QACA2E,UAAW,OACXC,UAAW,SACX/E,SAAU,cACP6C,GAGDmC,EAAetJ,OAAO8H,SAASI,GAAYA,EAAW,IAQ5D,OACIrC,SACIC,IAAK/D,EACLmD,UAAWgC,EACX9B,MAAOO,EACPlE,SA/Cc8B,IAClB,MAAMgB,EAAMhB,EAAEE,cAAcC,UAE5B0D,EAAa7C,GACbnC,GAAe,GAEfX,IAAW8C,EAAKhB,EAAEE,cAAc8F,YAE5BlC,EAAczE,SACdgB,aAAayD,EAAczE,SAG/ByE,EAAczE,QAAUiB,WAAW,KAC/BzB,GAAe,IAChB,MAiCuB8D,SAEtBL,EAAA,MAAA,CAAKT,MAbmC,CAC5Cd,SAAU,WACVxF,OAAQoK,EACRzE,MAAOsD,EAAOuB,EAAerC,GAAOc,EAAO,IAUT7B,SACzBoC,MAAMkB,KACH,CAAE3G,OAAQkG,EAAazL,IAAMyL,EAAa1L,MAAQ,GAClD,CAACoM,EAAGnN,KACA,MAAMN,EAAQ+M,EAAa1L,MAAQf,EAE7BsD,EAAO9B,EAAM9B,GACboM,EAAMD,EAAUnM,GAEtB,IAAK4D,IAASwI,EAAK,OAAO,KAC1B,IAAKpI,OAAO8H,SAASM,EAAI3D,OAAQ,OAAO,KAExC,MAAMW,EAA6B,CAC/Bd,SAAU,WACVC,IAAK6D,EAAIQ,EACTpE,KAAM4D,EAAIO,EACVlE,MAAO2D,EAAI3D,MACX3F,OAAQsJ,EAAItJ,QAGhB,OACI+G,EAAA,MAAA,CAIIT,MAAOA,EAAKc,SAEXpB,EAAW,CACRlF,OACA5D,QACAmG,cACAiD,WARAJ,IAAUhJ,EAAO4D,IAAS5D,WCnNlE,SAAS0N,EACLhO,EACAiO,GAEA,OAAOA,EACDjO,EACAA,EAAMkO,aAChB,UA2BgBC,GAAwB/L,MACpCA,EAAKgM,YACLA,EAAWC,aACXA,EAAYJ,cACZA,GAAgB,EAAKK,YACrBA,GAAc,EAAIC,QAClBA,IAEA,MAAMC,EAAkB3C,EAAQ,IACrBmC,EACHI,EAAYK,OACZR,GAEL,CAACG,EAAaH,IAEXS,EACFC,EAAiBH,GAEfI,EAAcN,EACdI,EACAF,EAEAK,EACFP,GACAI,IAAkBF,EAEhBM,EAAclH,EACf1D,IACQ0K,IAIDL,EACOA,EACHrK,EACA0K,GA5DpB,SACI1K,EACA6K,EACAV,EACAJ,GAEA,OAAOI,EAAaW,KAAMC,IACtB,MAAMjP,EAAQkE,EAAK+K,GAEnB,OACIjP,SAMoBgO,EACpBxJ,OAAOxE,GAAOyO,OACdR,GAGmB3G,SAASyH,IAExC,CAyCmBG,CACHhL,EACA0K,EACAP,EACAJ,IAGR,CACIW,EACAL,EACAF,EACAJ,IAIFkB,EAAgBtD,EAAQ,IACrB+C,EAIExM,EAAMgN,OAAON,GAHT,IAAI1M,GAIhB,CACCA,EACAwM,EACAE,IAGEO,EAAWzH,EACZ1D,GAAY4K,EAAY5K,GACzB,CAAC4K,IAGCQ,EAAiBzD,EAAQ,KAC3B,IAAK2C,EACD,OAAO,KAGX,MAAMe,EACFf,EAAgBgB,QACZ,sBACA,QAGR,OAAO,IAAIC,OACP,IAAIF,KACJtB,EAAgB,IAAM,OAE3B,CACCO,EACAP,IAGEyB,EAAiB9H,EAEf+H,IAEA,IACKA,IACAL,EAED,OAAOK,EAQX,OAJIA,EAAKC,MACDN,GAGKlI,IACT,CAACyI,EAAMvP,IAEC6J,EADJ7J,EAAQ,GAAM,EACV,OAICwK,EAAMC,SAJP,CAAAP,SACKqF,GADMvP,KAY3B,CAACgP,IAGL,MAAO,CACHH,gBACAW,YACIX,EAAchI,OAClB4H,MAAOH,EACPS,WACAR,cACAa,iBAER,CC7KM,SAAUK,GAEdC,UACEA,EAAY,GAAGC,UACfA,EAASC,KACTA,EAAO,KAAIC,WACXA,EAAa,MAAKC,QAClBA,GAAU,EAAIC,KACdA,GAAO,GACY,CAAA,GACnB,MAAOC,EAAWC,GAAgB/J,GAAS,IACpC5D,EAAO4N,GACVhK,EAA2C,MAEzCiK,EAAatK,EAAU,MAEvBuK,EAAcvK,EAAO8J,GA0D3B,OAxDAjJ,EAAU,KACN0J,EAAYxJ,QAAU+I,GACvB,CAACA,IAEJjJ,EAAU,KACN,IAAKoJ,EAAS,OAEd,MAAMvN,EAAU4N,EAAWvJ,QAE3B,IAAKrE,EAAS,OAGd,GACsB,oBAAXY,UACL,yBAA0BA,QAI5B,OAFA8M,GAAa,QACbG,EAAYxJ,YAIhB,MAAMyJ,EAAW,IAAIC,qBACjB,EAAEC,MACEL,EAASK,GAELA,EAAcC,gBACdP,GAAa,GACbG,EAAYxJ,YAERmJ,GACAM,EAAS/L,UAAUiM,EAAc/N,SAE7BuN,GACRE,GAAa,IAGrB,CACIP,YACAE,OACAC,eAMR,OAFAQ,EAASlM,QAAQ5B,GAEV,KACH8N,EAASvL,eAEd,CACC4K,EACAE,EACAC,EACAC,EACAC,IAGG,CACHjG,IAAKqG,EACLH,YACA1N,QAER,UClFgBmO,GAEdC,WACEA,EAAUhB,UACVA,EAAY,IAAGiB,UACfA,GAAY,EAAKb,QACjBA,GAAU,IAEV,MAAM/J,EAAeF,EAAiB,OAE/B+K,EAAYC,GAAiB3K,GAAS,GAEvC4K,EAAejL,GAAO,GACtBkL,EAAgBlL,EAAO6K,GAE7BhK,EAAU,KACNqK,EAAcnK,QAAU8J,GACzB,CAACA,IAEJ,MAAMM,EAAkB1J,EAAY,KAChC,IAAKwI,GAAWa,EAAW,OAE3B,MAAMnN,EAAYuC,EAAaa,QAE/B,IAAKpD,EAAW,OAEhB,MAAMkE,UACFA,EAASuJ,aACTA,EAAYC,aACZA,GACA1N,EAKE2N,EAFFF,EAAevJ,EAAYwJ,GAEQxB,EAEvCmB,EAAcM,IAGVA,GACCL,EAAalK,SACb+J,IAEDG,EAAalK,SAAU,EAEvBwK,QAAQC,QACJN,EAAcnK,WAChB0K,QAAQ,KACNR,EAAalK,SAAU,MAGhC,CAAC8I,EAAWiB,EAAWb,IA8B1B,OA5BApJ,EAAU,KACN,IAAKoJ,EAAS,OAEd,MAAMtM,EAAYuC,EAAaa,QAE/B,IAAKpD,EAAW,OAEhB,MAAM6D,EAAe,KACjB2J,KAYJ,OATAxN,EAAUuE,iBACN,SACAV,EACA,CAAEkK,SAAS,IAIfP,IAEO,KACHxN,EAAUwE,oBACN,SACAX,KAGT,CAAC2J,EAAiBlB,IAEd,CACH/J,eACA6K,aACAD,YACAK,kBAER,CHuJApG,EAAYD,YAAc,cIjO1B,MAMM6G,EAAgB,IAAIrP,aAYVsP,EAGZrH,EACArE,GACA2L,QACIA,GAAU,EAAIC,WACdA,EAxBJ,8BAwBoCC,QAChCA,EAAOC,SACPA,GAAW,EAAKC,WAChBA,EAAa,IAAGC,OAChBA,GAAS,EAAIjC,QACbA,GAAU,EAAIkC,QACdA,GAC6B,IAEjC,MAAMC,EAAapM,EACf+L,IAtBkB,oBAAXzO,QACa,oBAAb+O,SAuBD/O,OAAOgP,aACP,OAMVzL,EAAU,KACN,GACKoJ,GACA4B,GACAO,EAAWrL,WAKZ4K,EAAcvR,KAAO,GAEzB,IACI,MAAMmS,EACFH,EAAWrL,QAAQyL,QACfV,GAGR,IAAKS,EAAK,OAGNE,KAAKC,MAAMH,GAELzO,QAAS2E,IACfkJ,EAAcxO,IACVsF,EAAS8B,IACT9B,IAGZ,CAAE,MAAOkK,GACLR,IAAUQ,EACd,GACD,CACC1C,EACA4B,EACAC,EACAK,IAGJ,MAAMS,EAAenL,EAAY,KAC7B,GACKoK,GACAO,EAAWrL,QAKhB,IACI,MAAMuF,EAAYG,MAAMkB,KACpBgE,EAAckB,UAEbC,KACG,CAACC,EAAGC,IACAA,EAAEC,UAAYF,EAAEE,WAEvBC,MAAM,EAAGjB,GAEdG,EAAWrL,QAAQoM,QACfrB,EACAW,KAAKW,UAAU9G,GAEvB,CAAE,MAAOqG,GACLR,IAAUQ,EACd,GACD,CACCd,EACAC,EACAG,EACAE,IAGEkB,EAAe5L,EAAY,KAC7B,IAAKwI,EAAS,OAEd,MAAMvN,EACFwD,EAAaa,QAEjB,IAAKrE,EAAS,OAEd,MAAM+F,EAA2B,CAC7B8B,MACA7B,IAAKhG,EAAQmF,UACbc,KAAMjG,EAAQgL,WACduF,UAAWK,KAAKC,OAGpB5B,EAAcxO,IAAIoH,EAAK9B,GAEvBmK,KACD,CACCrI,EACArE,EACA+J,EACA2C,IAGEY,EAAkB/L,EAAY,KAChC,IAAKwI,EAAS,OAKd,IAFI/J,EAAaa,QAEH,OAEd,MAAM0B,EACFkJ,EAAc9O,IAAI0H,GAEtB,IAAK9B,EAAU,OAEf,MAAMgL,EAAU,KACPvN,EAAaa,UAElBb,EAAaa,QAAQc,UACjBY,EAASC,IAEbxC,EAAaa,QAAQ2G,WACjBjF,EAASE,OAGbuJ,EACAtN,sBAAsB6O,GAEtBA,KAEL,CACClJ,EACArE,EACA+J,EACAiC,IA6DJ,OAvDArL,EAAU,KACDoJ,GAELuD,KACD,CAACvD,EAASuD,IAKb3M,EAAU,KACN,GAAKoJ,EAEL,MAAO,KACHoD,MAEL,CAACpD,EAASoD,IAKbxM,EAAU,KACN,IACKoJ,IACA+B,IACA9L,EAAaa,QAEd,OAGJ,MAAMrE,EACFwD,EAAaa,QAEXS,EAAe,KACjB6L,KASJ,OANA3Q,EAAQwF,iBACJ,SACAV,EACA,CAAEkK,SAAS,IAGR,KACHhP,EAAQyF,oBACJ,SACAX,KAGT,CACCyI,EACA+B,EACAqB,EACAnN,IAGG,CACHmN,eACAG,kBAER"}
|
package/package.json
CHANGED