react-virtual-renderer 1.0.5 → 1.0.6

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.
Files changed (41) hide show
  1. package/README.md +56 -122
  2. package/dist/components/VirtualGrid.d.ts +2 -6
  3. package/dist/components/VirtualGrid.d.ts.map +1 -1
  4. package/dist/components/VirtualGrid.js +112 -147
  5. package/dist/components/VirtualGrid.js.map +1 -1
  6. package/dist/components/VirtualList.d.ts.map +1 -1
  7. package/dist/components/VirtualList.js +51 -29
  8. package/dist/components/VirtualList.js.map +1 -1
  9. package/dist/core/MeasurementSystem.d.ts +18 -24
  10. package/dist/core/MeasurementSystem.d.ts.map +1 -1
  11. package/dist/core/MeasurementSystem.js +100 -71
  12. package/dist/core/MeasurementSystem.js.map +1 -1
  13. package/dist/core/VirtualizationEngine.d.ts +9 -54
  14. package/dist/core/VirtualizationEngine.d.ts.map +1 -1
  15. package/dist/core/VirtualizationEngine.js +70 -153
  16. package/dist/core/VirtualizationEngine.js.map +1 -1
  17. package/dist/hooks/useInfiniteScroll.d.ts +28 -10
  18. package/dist/hooks/useInfiniteScroll.d.ts.map +1 -1
  19. package/dist/hooks/useInfiniteScroll.js +31 -14
  20. package/dist/hooks/useInfiniteScroll.js.map +1 -1
  21. package/dist/hooks/useLazyLoad.d.ts +32 -11
  22. package/dist/hooks/useLazyLoad.d.ts.map +1 -1
  23. package/dist/hooks/useLazyLoad.js +44 -21
  24. package/dist/hooks/useLazyLoad.js.map +1 -1
  25. package/dist/hooks/useScrollRestoration.d.ts +46 -5
  26. package/dist/hooks/useScrollRestoration.d.ts.map +1 -1
  27. package/dist/hooks/useScrollRestoration.js +138 -41
  28. package/dist/hooks/useScrollRestoration.js.map +1 -1
  29. package/dist/hooks/useVirtualList.js +1 -1
  30. package/dist/hooks/useVirtualList.js.map +1 -1
  31. package/dist/hooks/useVirtualizedSearch.d.ts +29 -29
  32. package/dist/hooks/useVirtualizedSearch.d.ts.map +1 -1
  33. package/dist/hooks/useVirtualizedSearch.js +63 -149
  34. package/dist/hooks/useVirtualizedSearch.js.map +1 -1
  35. package/dist/index.cjs.js +1 -1
  36. package/dist/index.cjs.js.map +1 -1
  37. package/dist/index.esm.js +1 -1
  38. package/dist/index.esm.js.map +1 -1
  39. package/dist/types.d.ts +28 -11
  40. package/dist/types.d.ts.map +1 -1
  41. package/package.json +5 -2
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,"itemOffsets",{enumerable:!0,configurable:!0,writable:!0,value:[0]}),Object.defineProperty(this,"totalSize",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"estimatedItemSize",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.estimatedItemSize=e}recordItemSize(e,t){this.itemSizeMap[e]!==t&&(this.itemSizeMap[e]=t,this.recalculateOffsets())}recalculateOffsets(){let e=0;this.itemOffsets=[0];const t=Object.keys(this.itemSizeMap).map(Number).sort((e,t)=>e-t);for(const r of t){e+=this.itemSizeMap[r]??this.estimatedItemSize,this.itemOffsets[r+1]=e}this.totalSize=e}getItemSize(e){return this.itemSizeMap[e]??this.estimatedItemSize}getItemOffset(e){if(void 0!==this.itemOffsets[e])return this.itemOffsets[e];let t=0;for(let r=0;r<e;r++)t+=this.getItemSize(r);return t}getTotalSize(){return this.totalSize}getVisibleRange(e,t,r,s=5,n="forward"){if("reverse"===n)return this.getVisibleRangeReverse(e,t,r,s);let i=0,o=r-1;for(let t=0;t<r;t++){if(this.getItemOffset(t)+this.getItemSize(t)>=e){i=t;break}}for(let s=i;s<r;s++){if(this.getItemOffset(s)>=e+t){o=s;break}}return{startIndex:Math.max(0,i-s),endIndex:Math.min(r-1,o+s),overscanStartIndex:i,overscanEndIndex:o}}getVisibleRangeReverse(e,t,r,s){const n=this.getTotalSize(),i=Math.max(0,n-e-t);return this.getVisibleRange(i,t,r,s,"forward")}getVisibleItems(e,t,r,s,n="forward"){const i=this.getVisibleRange(e,t,r,s,n),o=[];for(let e=i.startIndex;e<=i.endIndex&&e<r;e++)o.push({index:e,size:this.getItemSize(e),offset:this.getItemOffset(e)});return o}getScrollOffsetForIndex(e,t,r="start"){const s=this.getItemOffset(e),n=this.getItemSize(e);switch(r){case"center":return Math.max(0,s-(t-n)/2);case"end":return Math.max(0,s-t+n);default:return Math.max(0,s)}}clearCache(){this.itemSizeMap={},this.itemOffsets=[0],this.totalSize=0}getCache(){return{...this.itemSizeMap}}getAdaptiveOverscan(e,t=5){const r=Math.min(3,Math.max(1,e/10));return Math.ceil(t*r)}}class s{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,"pendingMeasurements",{enumerable:!0,configurable:!0,writable:!0,value:new Set}),Object.defineProperty(this,"onMeasure",{enumerable:!0,configurable:!0,writable:!0,value:null}),"undefined"!=typeof window&&"ResizeObserver"in window&&(this.resizeObserver=new ResizeObserver(this.handleResize.bind(this)))}startMeasuring(e,t){if(this.onMeasure=t,this.resizeObserver){e.querySelectorAll("[data-virtualize-index]").forEach(e=>{this.resizeObserver?.observe(e)})}}stopMeasuring(){this.resizeObserver&&this.resizeObserver.disconnect(),this.measurements.clear(),this.pendingMeasurements.clear()}handleResize(e){e.forEach(e=>{const t=e.target,r=t.getAttribute("data-virtualize-index");if(r){const s=e.contentRect.height||t.offsetHeight,n=parseInt(r,10);this.measurements.get(n)!==s&&(this.measurements.set(n,s),this.pendingMeasurements.add(n),this.onMeasure&&this.onMeasure(n,s))}})}observeItem(e,t){t.setAttribute("data-virtualize-index",String(e)),this.resizeObserver&&this.resizeObserver.observe(t),this.syncMeasure(e,t)}syncMeasure(e,t){const r=t.offsetHeight;r>0&&this.measurements.get(e)!==r&&(this.measurements.set(e,r),this.onMeasure&&this.onMeasure(e,r))}unobserveItem(e){this.resizeObserver&&this.resizeObserver.unobserve(e)}getMeasurement(e){return this.measurements.get(e)}getAllMeasurements(){return new Map(this.measurements)}clearPending(){this.pendingMeasurements.clear()}destroy(){this.stopMeasuring(),this.measurements.clear(),this.pendingMeasurements.clear(),this.onMeasure=null}}function n(e){const{items:n,containerHeight:i,overscan:o=5,scrollDirection:l="forward",estimatedItemSize:a=35,onScroll:c,onScrollEnd:u,stickyIndices:f=[]}=e,h=t.useRef(new r(a)),d=t.useRef(new s),m=t.useRef(null),g=t.useRef(null),[b,p]=t.useState(0),[v,S]=t.useState(!1),y=t.useRef(null),z=t.useRef(0),x=t.useRef(l),[M,I]=t.useState([]);t.useEffect(()=>{const e=h.current.getVisibleItems(b,i,n.length,o,x.current).map(e=>({index:e.index,offset:e.offset,size:e.size,isSticky:f.includes(e.index)}));I(t=>{if(t.length===e.length){let r=!1;for(let s=0;s<t.length;s++){const n=t[s],i=e[s];if(n.index!==i.index||n.offset!==i.offset||n.size!==i.size||n.isSticky!==i.isSticky){r=!0;break}}if(!r)return t}return e})},[b,i,n.length,o,f]);const w=t.useCallback(e=>{const t=e.currentTarget.scrollTop;if(t===z.current)return;const r=t>z.current?"forward":"reverse";x.current=r,z.current=t,p(t),S(!0),c&&c(t,r),y.current&&clearTimeout(y.current),y.current=setTimeout(()=>{S(!1),u&&u()},150)},[c,u]);t.useEffect(()=>{const e=m.current;if(!e)return;const t=e=>{w(e)};return e.addEventListener("scroll",t),()=>{e.removeEventListener("scroll",t)}},[w]);const O=t.useCallback((e,t)=>{h.current.recordItemSize(e,t)},[]);t.useEffect(()=>{const e=m.current;return e&&d.current.startMeasuring(e,O),()=>{d.current.stopMeasuring()}},[O]);const R=t.useCallback((e,t="start")=>{const r=h.current.getScrollOffsetForIndex(e,i,t);m.current&&(m.current.scrollTop=r)},[i]),k=t.useCallback(e=>{m.current&&(m.current.scrollTop=e)},[]),E=t.useCallback((e,t)=>{const r=h.current.getItemOffset(e),s=f.includes(e);return{position:s?"sticky":"absolute",top:s?0:r,left:0,width:"100%",height:t,zIndex:s?10:0}},[f]);t.useEffect(()=>()=>{y.current&&clearTimeout(y.current),d.current.destroy()},[]);const C=h.current.getTotalSize();return{virtualItems:M,isScrolling:v,scrollOffset:b,totalSize:C,scrollToItem:R,scrollToOffset:k,setScrollOffset:p,containerRef:m,innerRef:g,getItemStyle:E}}const i=t.forwardRef(({items:r,renderItem:s,itemKey:i,height:o=400,width:l=500,itemSize:a,overscan:c=5,scrollDirection:u="forward",onScroll:f,className:h="",style:d={},estimatedItemSize:m=35,getItemSize:g,stickyIndices:b=[],onScrollEnd:p,innerRef:v,scrollOffsetRef:S},y)=>{const{virtualItems:z,isScrolling:x,scrollOffset:M,totalSize:I,containerRef:w,innerRef:O,getItemStyle:R}=n({items:r,containerHeight:o,overscan:c,scrollDirection:u,estimatedItemSize:m,onScroll:f,onScrollEnd:p,stickyIndices:b}),k=t.useRef(null),E=t.useRef(null);t.useImperativeHandle(y,()=>k.current),t.useImperativeHandle(v,()=>E.current),t.useEffect(()=>{S&&(S.current=M)},[M,S]);const C=t.useRef(new Map),T=t.useCallback((e,t)=>{e?C.current.set(t,e):C.current.delete(t)},[]),j={height:o,width:l,overflow:"auto",position:"relative",...d},V={position:"relative",height:I,width:"100%"};return e.jsx("div",{ref:e=>{k.current=e,w.current=e},className:`virtualize-container ${h}`,style:j,onScroll:e=>{const t=s?.__scrollHandler;t&&t(e),f&&f(e.target.scrollTop,"auto")},children:e.jsx("div",{ref:e=>{E.current=e,O.current=e},style:V,className:"virtualize-inner",children:z.map(t=>{const n=r[t.index],o=i?i(t.index,n):t.index,l={item:n,index:t.index,style:R(t.index,t.size),isScrolling:x};return e.jsx("div",{ref:e=>{T(e,t.index)},style:l.style,"data-virtualize-index":t.index,children:s(l)},o)})})})});i.displayName="VirtualList";const o=t.forwardRef(({items:r,renderItem:s,itemKey:n,height:i,width:o,columnCount:l=3,rowHeight:a=200,columnWidth:c,layout:u="grid",overscan:f=3,gap:h=16,onScroll:d,className:m="",style:g={}},b)=>{const[p,v]=t.useState(0),[S,y]=t.useState(!1),z=t.useRef(null),x=t.useRef(null),M=t.useRef([]);t.useImperativeHandle(b,()=>z.current);const I="number"==typeof l?l:Math.floor(o/("number"==typeof c?c:200)),w="number"==typeof c?c:o/I,O=t.useMemo(()=>{const e=[];if("masonry"===u){const t=Array(I).fill(0);r.forEach((r,s)=>{const n=t.indexOf(Math.min(...t)),i="function"==typeof a?a(s):a,o={row:0,col:n,x:n*(w+h),y:t[n],width:w,height:i};e.push(o),t[n]+=i+h}),M.current=t}else r.forEach((t,r)=>{const s=Math.floor(r/I),n=r%I,i="function"==typeof a?a(r):a;e.push({row:s,col:n,x:n*(w+h),y:s*(i+h),width:w,height:i})});return e},[r,I,w,h,u,a]),R=t.useMemo(()=>{const e=O.findIndex(e=>e.y+e.height>p),t=O.findIndex(e=>e.y>p+i);return{start:Math.max(0,(-1===e?0:e)-f),end:-1===t?r.length:Math.min(r.length,t+f)}},[O,p,i,f,r.length]),k=t.useMemo(()=>{if("masonry"===u)return Math.max(...M.current.length?M.current:[0]);return Math.ceil(r.length/I)*(Math.max(...Array.from({length:r.length||1},(e,t)=>"function"==typeof a?a(t):a))+h)},[r.length,I,h,u,a]),E={height:i,width:o,overflow:"auto",position:"relative",...g},C={position:"relative",height:k,width:"100%"};return e.jsx("div",{ref:z,className:`virtualize-grid ${m}`,style:E,onScroll:e=>{const t=e.currentTarget.scrollTop;v(t),y(!0),d&&d(t),x.current&&clearTimeout(x.current),x.current=setTimeout(()=>{y(!1)},150)},children:e.jsx("div",{style:C,className:"virtualize-grid-inner",children:r.map((t,r)=>{if(r<R.start||r>=R.end)return null;const i=O[r];if(!i)return null;const o={item:t,index:r,style:{position:"absolute",left:i.x,top:i.y,width:i.width,height:i.height},isScrolling:S},l=n?n(r,t):r;return e.jsx("div",{style:o.style,"data-virtualize-index":r,children:s(o)},l)})})})});o.displayName="VirtualGrid";const l="virtualize-scroll-positions";exports.MeasurementSystem=s,exports.VirtualGrid=o,exports.VirtualList=i,exports.VirtualizationEngine=r,exports.useInfiniteScroll=function({onLoadMore:e,threshold:r=500,isLoading:s=!1}){const n=t.useRef(null),[i,o]=t.useState(!1),l=t.useRef(!1),a=t.useCallback(()=>{if(!n.current||s)return;const{scrollTop:t,scrollHeight:i,clientHeight:a}=n.current,c=i-t-a<r;o(c),!c||l.current||s||(l.current=!0,e().finally(()=>{l.current=!1}))},[e,r,s]);return t.useEffect(()=>{const e=n.current;if(!e)return;const t=()=>{a()};return e.addEventListener("scroll",t),()=>e.removeEventListener("scroll",t)},[a]),{containerRef:n,isAtBottom:i,isLoading:s}},exports.useLazyLoad=function({threshold:e=.1,onVisible:r}){const[s,n]=t.useState(!1),i=t.useRef(null),o=t.useCallback(()=>{if(!i.current||!("IntersectionObserver"in window))return n(!0),void r?.();const t=new IntersectionObserver(([e])=>{e.isIntersecting&&(n(!0),r?.(),t.unobserve(e.target))},{threshold:e});return t.observe(i.current),()=>t.disconnect()},[e,r]);return{ref:i,isVisible:s,setupObserver:o}},exports.useScrollRestoration=function(e,r){const s=t.useRef(new Map),n=t.useCallback(()=>{if(!r.current)return;const t={key:e,offset:r.current.scrollTop,timestamp:Date.now()};s.current.set(e,t);try{const e=Array.from(s.current.values());localStorage.setItem(l,JSON.stringify(e))}catch(e){console.warn("Failed to save scroll position:",e)}},[e,r]),i=t.useCallback(()=>{if(r.current)try{const t=localStorage.getItem(l);if(!t)return;const s=JSON.parse(t).find(t=>t.key===e);s&&requestAnimationFrame(()=>{r.current&&(r.current.scrollTop=s.offset)})}catch(e){console.warn("Failed to restore scroll position:",e)}},[e,r]);return t.useEffect(()=>(i(),()=>{n()}),[i,n]),{savePosition:n,restorePosition:i}},exports.useVirtualList=n,exports.useVirtualizedSearch=function({items:r,searchValue:s,searchFields:n,caseSensitive:i=!1,highlightColor:o="#ffeb3b"}){const l=t.useMemo(()=>{const e=s.trim();return i?e:e.toLowerCase()},[s,i]),a=t.useMemo(()=>{if(!l)return null;try{const e=l.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");return new RegExp(`(${e})`,i?"g":"gi")}catch(e){return console.warn("Invalid search pattern:",e),null}},[l,i]),c=t.useDeferredValue(l),u=c!==l,f=t.useMemo(()=>c?r.filter(e=>n.some(t=>{try{const r=e[t];if(null==r)return!1;const s=String(r).trim();if(!s)return!1;return(i?s:s.toLowerCase()).includes(c)}catch(e){return console.warn(`Error accessing field ${String(t)}:`,e),!1}})):r,[r,c,n,i]),h=t.useCallback(e=>!c||n.some(t=>{try{const r=e[t];if(null==r)return!1;const s=String(r).trim();return(i?s:s.toLowerCase()).includes(c)}catch{return!1}}),[c,n,i]);return{filteredItems:f,highlightMatch:t.useCallback(r=>{if(!l||!a)return r;if(!r)return null;try{a.lastIndex=0;return String(r).split(a).map((r,s)=>s%2==0?r?e.jsx(t.Fragment,{children:r},s):null:e.jsx("mark",{style:{backgroundColor:o,padding:"0 2px",borderRadius:"2px"},"aria-label":`Highlighted search result: ${r}`,children:r},s))}catch(e){return console.warn("Error highlighting match:",e),r}},[l,a,o]),resultCount:f.length,hasMatch:h,isSearching:u}};
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}};
2
2
  //# sourceMappingURL=index.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs.js","sources":["../src/core/VirtualizationEngine.ts","../src/core/MeasurementSystem.ts","../src/hooks/useVirtualList.ts","../src/components/VirtualList.tsx","../src/components/VirtualGrid.tsx","../src/hooks/useScrollRestoration.ts","../src/hooks/useInfiniteScroll.ts","../src/hooks/useLazyLoad.ts","../src/hooks/useVirtualizedSearch.tsx"],"sourcesContent":[null,null,null,null,null,null,null,null,null],"names":["VirtualizationEngine","constructor","estimatedItemSize","Object","defineProperty","this","value","recordItemSize","index","size","itemSizeMap","recalculateOffsets","offset","itemOffsets","indexes","keys","map","Number","sort","a","b","totalSize","getItemSize","getItemOffset","undefined","i","getTotalSize","getVisibleRange","scrollOffset","containerSize","itemCount","overscan","scrollDirection","getVisibleRangeReverse","startIndex","endIndex","Math","max","min","overscanStartIndex","overscanEndIndex","reversedScrollOffset","getVisibleItems","range","visibleItems","push","getScrollOffsetForIndex","alignment","itemOffset","itemSize","clearCache","getCache","getAdaptiveOverscan","scrollVelocity","baseOverscan","velocityFactor","ceil","MeasurementSystem","Map","Set","window","resizeObserver","ResizeObserver","handleResize","bind","startMeasuring","container","onMeasure","querySelectorAll","forEach","item","observe","stopMeasuring","disconnect","measurements","clear","pendingMeasurements","entries","entry","element","target","getAttribute","contentRect","height","offsetHeight","indexNum","parseInt","get","set","add","observeItem","setAttribute","String","syncMeasure","unobserveItem","unobserve","getMeasurement","getAllMeasurements","clearPending","destroy","useVirtualList","params","items","containerHeight","onScroll","onScrollEnd","stickyIndices","engineRef","useRef","measurementRef","containerRef","innerRef","setScrollOffset","useState","isScrolling","setIsScrolling","scrollTimeoutRef","lastScrollOffsetRef","scrollDirectionRef","virtualItems","setVirtualItems","useEffect","nextVirtualItems","current","length","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","VirtualList","forwardRef","renderItem","itemKey","className","style","scrollOffsetRef","internalContainerRef","internalInnerRef","mergedContainerRef","mergedInnerRef","useImperativeHandle","handleItemRef","delete","containerStyle","overflow","innerStyle","_jsx","ref","el","handler","__scrollHandler","children","virtualItem","key","renderProps","displayName","VirtualGrid","columnCount","rowHeight","columnWidth","layout","gap","columnHeightsRef","cols","floor","colWidth","positions","useMemo","calculatedPositions","columnHeights","Array","fill","_","shortestColIndex","indexOf","itemHeight","row","col","x","y","visibleRange","startIdx","findIndex","p","endIdx","start","end","totalHeight","from","gridStyle","SCROLL_POSITION_STORAGE_KEY","onLoadMore","threshold","isLoading","isAtBottom","setIsAtBottom","hasCalledRef","checkIfAtBottom","scrollHeight","clientHeight","atBottom","finally","onVisible","isVisible","setIsVisible","elementRef","setupObserver","observer","IntersectionObserver","isIntersecting","positionMapRef","savePosition","timestamp","Date","now","values","localStorage","setItem","JSON","stringify","console","warn","restorePosition","stored","getItem","savedPosition","parse","find","requestAnimationFrame","searchValue","searchFields","caseSensitive","highlightColor","normalizedQuery","trimmed","trim","toLowerCase","queryPattern","escaped","replace","RegExp","error","deferredQuery","useDeferredValue","isSearching","filteredItems","filter","some","field","stringValue","hasMatch","highlightMatch","text","lastIndex","split","part","React","Fragment","backgroundColor","padding","borderRadius","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","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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"}
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,"itemOffsets",{enumerable:!0,configurable:!0,writable:!0,value:[0]}),Object.defineProperty(this,"totalSize",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"estimatedItemSize",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.estimatedItemSize=e}recordItemSize(e,t){this.itemSizeMap[e]!==t&&(this.itemSizeMap[e]=t,this.recalculateOffsets())}recalculateOffsets(){let e=0;this.itemOffsets=[0];const t=Object.keys(this.itemSizeMap).map(Number).sort((e,t)=>e-t);for(const r of t){e+=this.itemSizeMap[r]??this.estimatedItemSize,this.itemOffsets[r+1]=e}this.totalSize=e}getItemSize(e){return this.itemSizeMap[e]??this.estimatedItemSize}getItemOffset(e){if(void 0!==this.itemOffsets[e])return this.itemOffsets[e];let t=0;for(let r=0;r<e;r++)t+=this.getItemSize(r);return t}getTotalSize(){return this.totalSize}getVisibleRange(e,t,r,n=5,i="forward"){if("reverse"===i)return this.getVisibleRangeReverse(e,t,r,n);let s=0,o=r-1;for(let t=0;t<r;t++){if(this.getItemOffset(t)+this.getItemSize(t)>=e){s=t;break}}for(let n=s;n<r;n++){if(this.getItemOffset(n)>=e+t){o=n;break}}return{startIndex:Math.max(0,s-n),endIndex:Math.min(r-1,o+n),overscanStartIndex:s,overscanEndIndex:o}}getVisibleRangeReverse(e,t,r,n){const i=this.getTotalSize(),s=Math.max(0,i-e-t);return this.getVisibleRange(s,t,r,n,"forward")}getVisibleItems(e,t,r,n,i="forward"){const s=this.getVisibleRange(e,t,r,n,i),o=[];for(let e=s.startIndex;e<=s.endIndex&&e<r;e++)o.push({index:e,size:this.getItemSize(e),offset:this.getItemOffset(e)});return o}getScrollOffsetForIndex(e,t,r="start"){const n=this.getItemOffset(e),i=this.getItemSize(e);switch(r){case"center":return Math.max(0,n-(t-i)/2);case"end":return Math.max(0,n-t+i);default:return Math.max(0,n)}}clearCache(){this.itemSizeMap={},this.itemOffsets=[0],this.totalSize=0}getCache(){return{...this.itemSizeMap}}getAdaptiveOverscan(e,t=5){const r=Math.min(3,Math.max(1,e/10));return Math.ceil(t*r)}}class h{constructor(){Object.defineProperty(this,"resizeObserver",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"measurements",{enumerable:!0,configurable:!0,writable:!0,value:new Map}),Object.defineProperty(this,"pendingMeasurements",{enumerable:!0,configurable:!0,writable:!0,value:new Set}),Object.defineProperty(this,"onMeasure",{enumerable:!0,configurable:!0,writable:!0,value:null}),"undefined"!=typeof window&&"ResizeObserver"in window&&(this.resizeObserver=new ResizeObserver(this.handleResize.bind(this)))}startMeasuring(e,t){if(this.onMeasure=t,this.resizeObserver){e.querySelectorAll("[data-virtualize-index]").forEach(e=>{this.resizeObserver?.observe(e)})}}stopMeasuring(){this.resizeObserver&&this.resizeObserver.disconnect(),this.measurements.clear(),this.pendingMeasurements.clear()}handleResize(e){e.forEach(e=>{const t=e.target,r=t.getAttribute("data-virtualize-index");if(r){const n=e.contentRect.height||t.offsetHeight,i=parseInt(r,10);this.measurements.get(i)!==n&&(this.measurements.set(i,n),this.pendingMeasurements.add(i),this.onMeasure&&this.onMeasure(i,n))}})}observeItem(e,t){t.setAttribute("data-virtualize-index",String(e)),this.resizeObserver&&this.resizeObserver.observe(t),this.syncMeasure(e,t)}syncMeasure(e,t){const r=t.offsetHeight;r>0&&this.measurements.get(e)!==r&&(this.measurements.set(e,r),this.onMeasure&&this.onMeasure(e,r))}unobserveItem(e){this.resizeObserver&&this.resizeObserver.unobserve(e)}getMeasurement(e){return this.measurements.get(e)}getAllMeasurements(){return new Map(this.measurements)}clearPending(){this.pendingMeasurements.clear()}destroy(){this.stopMeasuring(),this.measurements.clear(),this.pendingMeasurements.clear(),this.onMeasure=null}}function f(e){const{items:t,containerHeight:o,overscan:l=5,scrollDirection:c="forward",estimatedItemSize:a=35,onScroll:f,onScrollEnd:d,stickyIndices:m=[]}=e,g=r(new u(a)),b=r(new h),p=r(null),v=r(null),[y,S]=n(0),[z,w]=n(!1),I=r(null),M=r(0),x=r(c),[O,R]=n([]);i(()=>{const e=g.current.getVisibleItems(y,o,t.length,l,x.current).map(e=>({index:e.index,offset:e.offset,size:e.size,isSticky:m.includes(e.index)}));R(t=>{if(t.length===e.length){let r=!1;for(let n=0;n<t.length;n++){const i=t[n],s=e[n];if(i.index!==s.index||i.offset!==s.offset||i.size!==s.size||i.isSticky!==s.isSticky){r=!0;break}}if(!r)return t}return e})},[y,o,t.length,l,m]);const T=s(e=>{const t=e.currentTarget.scrollTop;if(t===M.current)return;const r=t>M.current?"forward":"reverse";x.current=r,M.current=t,S(t),w(!0),f&&f(t,r),I.current&&clearTimeout(I.current),I.current=setTimeout(()=>{w(!1),d&&d()},150)},[f,d]);i(()=>{const e=p.current;if(!e)return;const t=e=>{T(e)};return e.addEventListener("scroll",t),()=>{e.removeEventListener("scroll",t)}},[T]);const k=s((e,t)=>{g.current.recordItemSize(e,t)},[]);i(()=>{const e=p.current;return e&&b.current.startMeasuring(e,k),()=>{b.current.stopMeasuring()}},[k]);const E=s((e,t="start")=>{const r=g.current.getScrollOffsetForIndex(e,o,t);p.current&&(p.current.scrollTop=r)},[o]),V=s(e=>{p.current&&(p.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(()=>()=>{I.current&&clearTimeout(I.current),b.current.destroy()},[]);const N=g.current.getTotalSize();return{virtualItems:O,isScrolling:z,scrollOffset:y,totalSize:N,scrollToItem:E,scrollToOffset:V,setScrollOffset:S,containerRef:p,innerRef:v,getItemStyle:L}}const d=o(({items:t,renderItem:n,itemKey:o,height:c=400,width:a=500,itemSize:u,overscan:h=5,scrollDirection:d="forward",onScroll:m,className:g="",style:b={},estimatedItemSize:p=35,getItemSize:v,stickyIndices:y=[],onScrollEnd:S,innerRef:z,scrollOffsetRef:w},I)=>{const{virtualItems:M,isScrolling:x,scrollOffset:O,totalSize:R,containerRef:T,innerRef:k,getItemStyle:E}=f({items:t,containerHeight:c,overscan:h,scrollDirection:d,estimatedItemSize:p,onScroll:m,onScrollEnd:S,stickyIndices:y}),V=r(null),L=r(null);l(I,()=>V.current),l(z,()=>L.current),i(()=>{w&&(w.current=O)},[O,w]);const N=r(new Map),P=s((e,t)=>{e?N.current.set(t,e):N.current.delete(t)},[]),j={height:c,width:a,overflow:"auto",position:"relative",...b};return e("div",{ref:e=>{V.current=e,T.current=e},className:`virtualize-container ${g}`,style:j,onScroll:e=>{const t=n?.__scrollHandler;t&&t(e),m&&m(e.target.scrollTop,"auto")},children:e("div",{ref:e=>{L.current=e,k.current=e},style:{position:"relative",height:R,width:"100%"},className:"virtualize-inner",children:M.map(r=>{const i=t[r.index],s=o?o(r.index,i):r.index,l={item:i,index:r.index,style:E(r.index,r.size),isScrolling:x};return e("div",{ref:e=>{P(e,r.index)},style:l.style,"data-virtualize-index":r.index,children:n(l)},s)})})})});d.displayName="VirtualList";const m=o(({items:t,renderItem:i,itemKey:s,height:o,width:a,columnCount:u=3,rowHeight:h=200,columnWidth:f,layout:d="grid",overscan:m=3,gap:g=16,onScroll:b,className:p="",style:v={}},y)=>{const[S,z]=n(0),[w,I]=n(!1),M=r(null),x=r(null),O=r([]);l(y,()=>M.current);const R="number"==typeof u?u:Math.floor(a/("number"==typeof f?f:200)),T="number"==typeof f?f:a/R,k=c(()=>{const e=[];if("masonry"===d){const r=Array(R).fill(0);t.forEach((t,n)=>{const i=r.indexOf(Math.min(...r)),s="function"==typeof h?h(n):h,o={row:0,col:i,x:i*(T+g),y:r[i],width:T,height:s};e.push(o),r[i]+=s+g}),O.current=r}else t.forEach((t,r)=>{const n=Math.floor(r/R),i=r%R,s="function"==typeof h?h(r):h;e.push({row:n,col:i,x:i*(T+g),y:n*(s+g),width:T,height:s})});return e},[t,R,T,g,d,h]),E=c(()=>{const e=k.findIndex(e=>e.y+e.height>S),r=k.findIndex(e=>e.y>S+o);return{start:Math.max(0,(-1===e?0:e)-m),end:-1===r?t.length:Math.min(t.length,r+m)}},[k,S,o,m,t.length]),V=c(()=>{if("masonry"===d)return Math.max(...O.current.length?O.current:[0]);return Math.ceil(t.length/R)*(Math.max(...Array.from({length:t.length||1},(e,t)=>"function"==typeof h?h(t):h))+g)},[t.length,R,g,d,h]),L={height:o,width:a,overflow:"auto",position:"relative",...v};return e("div",{ref:M,className:`virtualize-grid ${p}`,style:L,onScroll:e=>{const t=e.currentTarget.scrollTop;z(t),I(!0),b&&b(t),x.current&&clearTimeout(x.current),x.current=setTimeout(()=>{I(!1)},150)},children:e("div",{style:{position:"relative",height:V,width:"100%"},className:"virtualize-grid-inner",children:t.map((t,r)=>{if(r<E.start||r>=E.end)return null;const n=k[r];if(!n)return null;const o={item:t,index:r,style:{position:"absolute",left:n.x,top:n.y,width:n.width,height:n.height},isScrolling:w},l=s?s(r,t):r;return e("div",{style:o.style,"data-virtualize-index":r,children:i(o)},l)})})})});function g({items:r,searchValue:n,searchFields:i,caseSensitive:o=!1,highlightColor:l="#ffeb3b"}){const u=c(()=>{const e=n.trim();return o?e:e.toLowerCase()},[n,o]),h=c(()=>{if(!u)return null;try{const e=u.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");return new RegExp(`(${e})`,o?"g":"gi")}catch(e){return console.warn("Invalid search pattern:",e),null}},[u,o]),f=a(u),d=f!==u,m=c(()=>f?r.filter(e=>i.some(t=>{try{const r=e[t];if(null==r)return!1;const n=String(r).trim();if(!n)return!1;return(o?n:n.toLowerCase()).includes(f)}catch(e){return console.warn(`Error accessing field ${String(t)}:`,e),!1}})):r,[r,f,i,o]),g=s(e=>!f||i.some(t=>{try{const r=e[t];if(null==r)return!1;const n=String(r).trim();return(o?n:n.toLowerCase()).includes(f)}catch{return!1}}),[f,i,o]);return{filteredItems:m,highlightMatch:s(r=>{if(!u||!h)return r;if(!r)return null;try{h.lastIndex=0;return String(r).split(h).map((r,n)=>n%2==0?r?e(t.Fragment,{children:r},n):null:e("mark",{style:{backgroundColor:l,padding:"0 2px",borderRadius:"2px"},"aria-label":`Highlighted search result: ${r}`,children:r},n))}catch(e){return console.warn("Error highlighting match:",e),r}},[u,h,l]),resultCount:m.length,hasMatch:g,isSearching:d}}function b({threshold:e=.1,onVisible:t}){const[i,o]=n(!1),l=r(null),c=s(()=>{if(!l.current||!("IntersectionObserver"in window))return o(!0),void t?.();const r=new IntersectionObserver(([e])=>{e.isIntersecting&&(o(!0),t?.(),r.unobserve(e.target))},{threshold:e});return r.observe(l.current),()=>r.disconnect()},[e,t]);return{ref:l,isVisible:i,setupObserver:c}}function p({onLoadMore:e,threshold:t=500,isLoading:o=!1}){const l=r(null),[c,a]=n(!1),u=r(!1),h=s(()=>{if(!l.current||o)return;const{scrollTop:r,scrollHeight:n,clientHeight:i}=l.current,s=n-r-i<t;a(s),!s||u.current||o||(u.current=!0,e().finally(()=>{u.current=!1}))},[e,t,o]);return i(()=>{const e=l.current;if(!e)return;const t=()=>{h()};return e.addEventListener("scroll",t),()=>e.removeEventListener("scroll",t)},[h]),{containerRef:l,isAtBottom:c,isLoading:o}}m.displayName="VirtualGrid";const v="virtualize-scroll-positions";function y(e,t){const n=r(new Map),o=s(()=>{if(!t.current)return;const r={key:e,offset:t.current.scrollTop,timestamp:Date.now()};n.current.set(e,r);try{const e=Array.from(n.current.values());localStorage.setItem(v,JSON.stringify(e))}catch(e){console.warn("Failed to save scroll position:",e)}},[e,t]),l=s(()=>{if(t.current)try{const r=localStorage.getItem(v);if(!r)return;const n=JSON.parse(r).find(t=>t.key===e);n&&requestAnimationFrame(()=>{t.current&&(t.current.scrollTop=n.offset)})}catch(e){console.warn("Failed to restore scroll position:",e)}},[e,t]);return i(()=>(l(),()=>{o()}),[l,o]),{savePosition:o,restorePosition:l}}export{h as MeasurementSystem,m as VirtualGrid,d as VirtualList,u as VirtualizationEngine,p as useInfiniteScroll,b as useLazyLoad,y as useScrollRestoration,f as useVirtualList,g 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 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};
2
2
  //# sourceMappingURL=index.esm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.esm.js","sources":["../src/core/VirtualizationEngine.ts","../src/core/MeasurementSystem.ts","../src/hooks/useVirtualList.ts","../src/components/VirtualList.tsx","../src/components/VirtualGrid.tsx","../src/hooks/useVirtualizedSearch.tsx","../src/hooks/useLazyLoad.ts","../src/hooks/useInfiniteScroll.ts","../src/hooks/useScrollRestoration.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null],"names":["VirtualizationEngine","constructor","estimatedItemSize","Object","defineProperty","this","value","recordItemSize","index","size","itemSizeMap","recalculateOffsets","offset","itemOffsets","indexes","keys","map","Number","sort","a","b","totalSize","getItemSize","getItemOffset","undefined","i","getTotalSize","getVisibleRange","scrollOffset","containerSize","itemCount","overscan","scrollDirection","getVisibleRangeReverse","startIndex","endIndex","Math","max","min","overscanStartIndex","overscanEndIndex","reversedScrollOffset","getVisibleItems","range","visibleItems","push","getScrollOffsetForIndex","alignment","itemOffset","itemSize","clearCache","getCache","getAdaptiveOverscan","scrollVelocity","baseOverscan","velocityFactor","ceil","MeasurementSystem","Map","Set","window","resizeObserver","ResizeObserver","handleResize","bind","startMeasuring","container","onMeasure","querySelectorAll","forEach","item","observe","stopMeasuring","disconnect","measurements","clear","pendingMeasurements","entries","entry","element","target","getAttribute","contentRect","height","offsetHeight","indexNum","parseInt","get","set","add","observeItem","setAttribute","String","syncMeasure","unobserveItem","unobserve","getMeasurement","getAllMeasurements","clearPending","destroy","useVirtualList","params","items","containerHeight","onScroll","onScrollEnd","stickyIndices","engineRef","useRef","measurementRef","containerRef","innerRef","setScrollOffset","useState","isScrolling","setIsScrolling","scrollTimeoutRef","lastScrollOffsetRef","scrollDirectionRef","virtualItems","setVirtualItems","useEffect","nextVirtualItems","current","length","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","VirtualList","forwardRef","renderItem","itemKey","className","style","scrollOffsetRef","internalContainerRef","internalInnerRef","mergedContainerRef","mergedInnerRef","useImperativeHandle","handleItemRef","delete","containerStyle","overflow","_jsx","ref","el","handler","__scrollHandler","children","virtualItem","key","renderProps","displayName","VirtualGrid","columnCount","rowHeight","columnWidth","layout","gap","columnHeightsRef","cols","floor","colWidth","positions","useMemo","calculatedPositions","columnHeights","Array","fill","_","shortestColIndex","indexOf","itemHeight","row","col","x","y","visibleRange","startIdx","findIndex","p","endIdx","start","end","totalHeight","from","useVirtualizedSearch","searchValue","searchFields","caseSensitive","highlightColor","normalizedQuery","trimmed","trim","toLowerCase","queryPattern","escaped","replace","RegExp","error","console","warn","deferredQuery","useDeferredValue","isSearching","filteredItems","filter","some","field","stringValue","hasMatch","highlightMatch","text","lastIndex","split","part","React","Fragment","backgroundColor","padding","borderRadius","resultCount","useLazyLoad","threshold","onVisible","isVisible","setIsVisible","elementRef","setupObserver","observer","IntersectionObserver","isIntersecting","useInfiniteScroll","onLoadMore","isLoading","isAtBottom","setIsAtBottom","hasCalledRef","checkIfAtBottom","scrollHeight","clientHeight","atBottom","finally","SCROLL_POSITION_STORAGE_KEY","useScrollRestoration","positionMapRef","savePosition","timestamp","Date","now","values","localStorage","setItem","JSON","stringify","restorePosition","stored","getItem","savedPosition","parse","find","requestAnimationFrame"],"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","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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"}
package/dist/types.d.ts CHANGED
@@ -20,17 +20,25 @@ export interface ScrollState {
20
20
  export interface MeasurementCache {
21
21
  [key: number]: number;
22
22
  }
23
+ export interface ItemWrapperProps<T> {
24
+ item: T;
25
+ index: number;
26
+ style: React.CSSProperties;
27
+ children: React.ReactNode;
28
+ }
23
29
  export interface VirtualListProps<T> {
24
30
  items: T[];
25
31
  renderItem: (props: RenderItemProps<T>) => React.ReactNode;
32
+ itemWrapper?: (props: ItemWrapperProps<T>) => React.ReactNode;
26
33
  itemKey?: (index: number, item: T) => string | number;
27
- height?: number;
28
- width?: number;
34
+ height?: number | string;
35
+ width?: number | string;
29
36
  itemSize?: number | ((index: number) => number);
30
37
  overscan?: number;
31
38
  scrollDirection?: ScrollDirection;
32
39
  onScroll?: (offset: number, direction: ScrollDirection) => void;
33
40
  className?: string;
41
+ itemClassName?: string;
34
42
  style?: React.CSSProperties;
35
43
  estimatedItemSize?: number;
36
44
  getItemSize?: (index: number) => number;
@@ -44,25 +52,34 @@ export interface VirtualGridProps<T> {
44
52
  items: T[];
45
53
  renderItem: (props: RenderItemProps<T>) => React.ReactNode;
46
54
  itemKey?: (index: number, item: T) => string | number;
47
- height: number;
48
- width: number;
49
- columnCount: number | 'auto';
55
+ height?: number | string;
56
+ width?: number | string;
57
+ columnCount?: number | "auto";
50
58
  rowHeight?: number | ((index: number) => number);
51
59
  columnWidth?: number | ((index: number) => number);
52
- layout?: 'grid' | 'masonry';
60
+ layout?: "grid" | "masonry";
53
61
  overscan?: number;
54
62
  gap?: number;
55
- onScroll?: (offset: number) => void;
56
- className?: string;
57
- style?: React.CSSProperties;
63
+ autoSize?: boolean;
64
+ containerClassName?: string;
65
+ containerStyle?: React.CSSProperties;
66
+ innerClassName?: string;
67
+ innerStyle?: React.CSSProperties;
68
+ onScroll?: (scrollTop: number, scrollLeft: number) => void;
58
69
  estimatedItemHeight?: number;
70
+ outerElementType?: React.ElementType;
71
+ innerElementType?: React.ElementType;
59
72
  }
60
73
  export interface RenderItemProps<T> {
61
74
  item: T;
62
75
  index: number;
63
- style: React.CSSProperties;
76
+ /**
77
+ * @deprecated
78
+ * Virtual styles are handled internally.
79
+ * Use itemWrapper instead.
80
+ */
81
+ style?: React.CSSProperties;
64
82
  isScrolling: boolean;
65
- isMeasuring?: boolean;
66
83
  }
67
84
  export interface UseVirtualListOptions<T> {
68
85
  items: T[];
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-virtual-renderer",
3
- "version": "1.0.5",
3
+ "version": "1.0.6",
4
4
  "description": "High-performance React virtualization library with dynamic sizing, bidirectional scrolling, and accessibility",
5
5
  "author": "Rishabh Agarwal",
6
6
  "license": "MIT",
@@ -33,6 +33,7 @@
33
33
  "node": ">=18"
34
34
  },
35
35
  "scripts": {
36
+ "dev": "vite",
36
37
  "build": "tsc && rollup -c",
37
38
  "clean": "rm -rf dist",
38
39
  "lint": "eslint src --ext .ts,.tsx",
@@ -102,10 +103,12 @@
102
103
  "@types/node": "^25.9.1",
103
104
  "@types/react": "^18.3.0",
104
105
  "@types/react-dom": "^18.3.0",
106
+ "@vitejs/plugin-react": "^6.0.2",
105
107
  "jest": "^29.0.0",
106
108
  "react": "^18.3.1",
107
109
  "react-dom": "^18.3.1",
108
110
  "rollup": "^4.50.0",
109
- "typescript": "^5.9.2"
111
+ "typescript": "^5.9.2",
112
+ "vite": "^8.0.16"
110
113
  }
111
114
  }