react-window 2.5.0 → 2.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,2 +1,2 @@
1
- "use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const le=require("react/jsx-runtime"),l=require("react"),B=typeof window<"u"?l.useLayoutEffect:l.useEffect;function Se(e){let t=e;for(;t;){if(t.dir)return t.dir==="rtl";t=t.parentElement}return!1}function Ie(e,t){const[r,o]=l.useState(t==="rtl");return B(()=>{t?o(t==="rtl"):e&&o(Se(e))},[t,e]),r}function Le(){return()=>{}}function Oe(){return l.useSyncExternalStore(Le,()=>!1,()=>!0)}function X(e){return e?.ownerDocument.defaultView??window}function ue(e){return X(e).ResizeObserver??(typeof ResizeObserver<"u"?ResizeObserver:void 0)}function ve(e){if(e!==void 0)switch(typeof e){case"number":return e;case"string":{if(e.endsWith("px"))return parseFloat(e);break}}}function Ae({box:e,defaultHeight:t,defaultWidth:r,disabled:o,element:s,mode:i,style:n}){const{styleHeight:v,styleWidth:h}=l.useMemo(()=>({styleHeight:ve(n?.height),styleWidth:ve(n?.width)}),[n?.height,n?.width]),[g,u]=l.useState({height:t,width:r}),d=o||i==="only-height"&&v!==void 0||i==="only-width"&&h!==void 0||v!==void 0&&h!==void 0;return B(()=>{if(s===null||d)return;const f=ue(s);if(!f)return;const c=new f(a=>{for(const b of a){const{contentRect:w,target:m}=b;s===m&&u(x=>x.height===w.height&&x.width===w.width?x:{height:w.height,width:w.width})}});return c.observe(s,{box:e}),()=>{c?.unobserve(s)}},[e,d,s,v,h]),l.useMemo(()=>({height:v??g.height,width:h??g.width}),[g,v,h])}function re(e){const t=l.useRef(()=>{throw new Error("Cannot call an event handler while rendering.")});return B(()=>{t.current=e},[e]),l.useCallback((...r)=>t.current?.(...r),[t])}const he=new WeakMap;function Ee(e=!1,t=document){let r=he.get(t);if(r===void 0||e){const o=t.createElement("div"),s=o.style;s.width="50px",s.height="50px",s.overflow="scroll",s.direction="rtl";const i=t.createElement("div"),n=i.style;n.width="100px",n.height="100px",o.appendChild(i),t.body.appendChild(o),o.scrollLeft>0?r="positive-descending":(o.scrollLeft=1,o.scrollLeft===0?r="negative":r="positive-ascending"),t.body.removeChild(o),he.set(t,r)}return r}function se({containerElement:e,direction:t,isRtl:r,scrollOffset:o}){if(t==="horizontal"&&r)switch(Ee(!1,e?.ownerDocument??document)){case"negative":return-o;case"positive-descending":{if(e){const{clientWidth:s,scrollWidth:i}=e;return i-s-o}break}}return o}function ke({container:e,element:t,onChange:r}){const o=X(t),s=ue(t),i=o.MutationObserver??(typeof MutationObserver<"u"?MutationObserver:void 0),n=s?new s(r):void 0,v=d=>!d.isConnected||(d.compareDocumentPosition(t)&Node.DOCUMENT_POSITION_FOLLOWING)!==0,h=i?new i(d=>{d.some(c=>Array.from(c.addedNodes).some(v)||c.removedNodes.length>0&&c.nextSibling!==null&&v(c.nextSibling))&&(u(),r())}):void 0,g=new Set,u=()=>{for(const f of g)n?.unobserve(f);g.clear(),h?.disconnect();let d=t;for(;d!==e;){const f=d.parentElement;if(f===null)break;if(n)for(let c=d.previousElementSibling;c!==null;c=c.previousElementSibling)g.add(c),n.observe(c);h?.observe(f,{childList:!0}),d=f}};return u(),()=>{n?.disconnect(),h?.disconnect()}}function oe(e){return e.window===e}function Ve(e,t){return t==="window"?e?X(e):null:t??null}function de(e,t){return oe(e)?t==="vertical"?e.scrollY:e.scrollX:t==="vertical"?e.scrollTop:e.scrollLeft}function We(e,t){const r=oe(e)?e.document.scrollingElement??e.document.documentElement:e;return t==="vertical"?r.scrollHeight-r.clientHeight:r.scrollWidth-r.clientWidth}function ne(e,t){e&&typeof e.scrollTo=="function"&&e.scrollTo(t)}function Fe(e,t){const{overflowX:r,overflowY:o}=X(e).getComputedStyle(e),s=t==="vertical"?o:r;return s==="visible"||s==="clip"?!1:t==="vertical"?e.scrollHeight-e.clientHeight>1:e.scrollWidth-e.clientWidth>1}function ge({containerElement:e,direction:t,isRtl:r,scrollTarget:o}){const s=t==="vertical";let i,n;if(oe(o)){const{documentElement:x}=o.document;i=0,n=s?x.clientHeight:x.clientWidth}else{const x=o.getBoundingClientRect();i=s?x.top+o.clientTop:x.left+o.clientLeft,n=s?o.clientHeight:o.clientWidth}const v=i+n,h=e.getBoundingClientRect(),g=s?h.top+e.clientTop:h.left+e.clientLeft,u=s?e.clientHeight:e.clientWidth,d=g+u,f=se({containerElement:e,direction:t,isRtl:r,scrollOffset:s?e.scrollTop:e.scrollLeft}),a=!s&&r?d-v:i-g,b=a+n,w=Math.max(0,a),m=Math.min(u,b);return{offset:f+w,size:Math.max(0,m-w),viewportOffset:f+a,viewportSize:n}}function be({direction:e,isRtl:t,scrollTarget:r,viewportSize:o}){const s=oe(r)?r.document.documentElement:r,i=X(s).getComputedStyle(s),n=g=>{const u=parseFloat(g??"");return!Number.isFinite(u)||u<0?0:g.endsWith("px")?u:g.endsWith("%")?u*o/100:0};if(e==="vertical")return{end:n(i.scrollPaddingBottom),start:n(i.scrollPaddingTop)};const v=n(i.scrollPaddingLeft),h=n(i.scrollPaddingRight);return t?{end:v,start:h}:{end:h,start:v}}function $(e,t="Assertion error"){if(!e)throw console.error(t),Error(t)}function K(e,t){if(e===t)return!0;if(!!e!=!!t||($(e!==void 0),$(t!==void 0),Object.keys(e).length!==Object.keys(t).length))return!1;for(const r in e)if(!Object.hasOwn(t,r)||!Object.is(t[r],e[r]))return!1;return!0}function ze({cachedBounds:e,itemCount:t,itemSize:r}){if(t===0)return 0;if(typeof r=="number")return t*r;{const o=e.get(e.size===0?0:e.size-1);$(o!==void 0,"Unexpected bounds cache miss");const s=(o.scrollOffset+o.size)/e.size;return t*s}}function pe({align:e,cachedBounds:t,clamp:r=!0,index:o,itemCount:s,itemSize:i,containerScrollOffset:n,containerSize:v}){if(o<0||o>=s)throw RangeError(`Invalid index specified: ${o}`,{cause:`Index ${o} is not within the range of 0 - ${s-1}`});const h=t.get(o),g=ze({cachedBounds:t,itemCount:s,itemSize:i}),u=a=>r?Math.max(0,Math.min(g-v,a)):a,d=u(h.scrollOffset),f=r?Math.max(0,h.scrollOffset-v+h.size):h.scrollOffset-v+h.size,c=h.size>v?n>=h.scrollOffset&&n<=f:n>=f&&n<=h.scrollOffset;switch(e==="smart"&&(e=c?"auto":"center"),e){case"start":return d;case"end":return f;case"center":return u(h.scrollOffset+h.size/2-v/2);case"auto":default:return c?n:n<f?f:d}}function ie({cachedBounds:e,containerScrollOffset:t,containerSize:r,itemCount:o,overscanCount:s}){const i=o-1;if(o===0)return{startIndexVisible:0,stopIndexVisible:-1,startIndexOverscan:0,stopIndexOverscan:-1};let n,v;const{itemSize:h}=e;if(h!==void 0)h>0?(n=Math.max(0,Math.min(i,Math.floor(t/h))),v=Math.max(n,Math.min(i,Math.ceil((t+r)/h)-1))):(n=0,v=0);else{let g=0,u=Math.min(i,Math.max(0,e.size-1));for(;g<u;){const d=Math.floor((g+u)/2),f=e.get(d);f.scrollOffset+f.size>t?u=d:g=d+1}for(;g<i;){const d=e.get(g);if(d.scrollOffset+d.size>t)break;g++}for(n=g,v=g;v<i;){const d=e.get(v);if(d.scrollOffset+d.size>=t+r)break;v++}}return{startIndexVisible:n,stopIndexVisible:v,startIndexOverscan:Math.max(0,n-s),stopIndexOverscan:Math.min(i,v+s)}}function He({itemCount:e,itemProps:t,itemSize:r}){const o=new Map;return{itemSize:typeof r=="number"?r:void 0,get(s){if($(s<e,`Invalid index ${s}`),typeof r=="number")return $(s>=0,`Invalid index ${s}`),{size:r,scrollOffset:s*r};for(;o.size-1<s;){const n=o.size,v=r(n,t);if(n===0)o.set(n,{size:v,scrollOffset:0});else{const h=o.get(n-1);$(h!==void 0,`Unexpected bounds cache miss for index ${s}`),o.set(n,{scrollOffset:h.scrollOffset+h.size,size:v})}}const i=o.get(s);return $(i!==void 0,`Unexpected bounds cache miss for index ${s}`),i},set(s,i){o.set(s,i)},get size(){return o.size}}}function Ce({itemCount:e,itemProps:t,itemSize:r}){return l.useMemo(()=>He({itemCount:e,itemProps:t,itemSize:r}),[e,t,r])}function Ne({containerSize:e,itemSize:t}){let r;switch(typeof t){case"string":{$(t.endsWith("%"),`Invalid item size: "${t}"; string values must be percentages (e.g. "100%")`),$(e!==void 0,"Container size must be defined if a percentage item size is specified"),r=e*parseFloat(t)/100;break}default:{r=t;break}}return typeof r=="number"&&!(Number.isFinite(r)&&r>0)&&(r=0),r}function ae({containerElement:e,containerStyle:t,defaultContainerSize:r=0,defaultScrollOffset:o=0,direction:s,isRtl:i=!1,itemCount:n,itemProps:v,itemSize:h,onResize:g,overscanCount:u,scrollElement:d}){const f=d!==void 0,c=f?Ve(e,d):e,{height:a=r,width:b=r}=Ae({defaultHeight:s==="vertical"?r:void 0,defaultWidth:s==="horizontal"?r:void 0,element:e,mode:s==="vertical"?"only-height":"only-width",style:t}),w=l.useRef({height:0,width:0}),[m,x]=l.useState(r),S=f?m:s==="vertical"?a:b,W=Ne({containerSize:S,itemSize:h});B(()=>{if(typeof g=="function"){const z=w.current;(z.height!==a||z.width!==b)&&(g({height:a,width:b},{...z}),z.height=a,z.width=b)}},[a,g,b]);const R=Ce({itemCount:n,itemProps:v,itemSize:W}),N=Oe(),[L]=l.useState(()=>N||f?0:o),j=l.useCallback(z=>R.get(z),[R]),[F,G]=l.useState(()=>ie({cachedBounds:R,containerScrollOffset:L,containerSize:S,itemCount:n,overscanCount:u})),{startIndexVisible:P,startIndexOverscan:Y,stopIndexVisible:Q,stopIndexOverscan:M}={startIndexVisible:Math.min(n-1,F.startIndexVisible),startIndexOverscan:Math.min(n-1,F.startIndexOverscan),stopIndexVisible:Math.min(n-1,F.stopIndexVisible),stopIndexOverscan:Math.min(n-1,F.stopIndexOverscan)},I=l.useCallback(()=>ze({cachedBounds:R,itemCount:n,itemSize:W}),[R,n,W]),H=l.useCallback(z=>{const p=se({containerElement:e,direction:s,isRtl:i,scrollOffset:z});return ie({cachedBounds:R,containerScrollOffset:p,containerSize:S,itemCount:n,overscanCount:u})},[R,e,S,s,i,n,u]),O=l.useRef(!1);B(()=>{if(!e||n===0||f||O.current||(O.current=!0,o<=0))return;const z=s==="horizontal"&&Se(e);if(se({containerElement:e,direction:s,isRtl:z,scrollOffset:s==="vertical"?e.scrollTop:e.scrollLeft})!==0)return;const A=se({containerElement:e,direction:s,isRtl:z,scrollOffset:o});typeof e.scrollTo=="function"?e.scrollTo({behavior:"instant",[s==="vertical"?"top":"left"]:A}):s==="vertical"?e.scrollTop=A:e.scrollLeft=A},[e,n]),B(()=>{if(f&&e&&c)return;const z=e&&!f?H(s==="vertical"?e.scrollTop:e.scrollLeft):ie({cachedBounds:R,containerScrollOffset:L,containerSize:S,itemCount:n,overscanCount:u});G(p=>K(z,p)?p:z)},[R,e,S,s,H,L,f,n,u,c]),B(()=>{if(!e||f)return;const z=()=>{G(p=>{const{scrollLeft:A,scrollTop:C}=e,E=se({containerElement:e,direction:s,isRtl:i,scrollOffset:s==="vertical"?C:A}),_=ie({cachedBounds:R,containerScrollOffset:E,containerSize:S,itemCount:n,overscanCount:u});return K(_,p)?p:_})};return e.addEventListener("scroll",z),()=>{e.removeEventListener("scroll",z)}},[R,e,S,s,i,f,n,u]);const Z=re(()=>{if(!e||!c)return;const{offset:z,size:p,viewportSize:A}=ge({containerElement:e,direction:s,isRtl:i,scrollTarget:c});x(A);const C=ie({cachedBounds:R,containerScrollOffset:z,containerSize:p,itemCount:n,overscanCount:u});G(E=>K(C,E)?E:C)});B(()=>{f&&Z()}),B(()=>{if(!f||!e||!c)return;const z=X(e),p=()=>Z();c.addEventListener("scroll",p,{passive:!0}),e.addEventListener("scroll",p,{passive:!0}),z.addEventListener("resize",p);let A;const C=ue(e);C&&!oe(c)&&(A=new C(p),A.observe(c));const E=ke({container:oe(c)?c.document.documentElement:c,element:e,onChange:p});return()=>{c.removeEventListener("scroll",p),e.removeEventListener("scroll",p),z.removeEventListener("resize",p),A?.disconnect(),E()}},[e,f,c,Z]);const ee=re(({align:z="auto",index:p})=>{const A=({clamp:k,containerScrollOffset:V,containerSize:T,padding:y})=>{if(y.start===0&&y.end===0)return pe({align:z,cachedBounds:R,clamp:k,containerScrollOffset:V,containerSize:T,index:p,itemCount:n,itemSize:W});const q=pe({align:z,cachedBounds:R,clamp:!1,containerScrollOffset:V+y.start,containerSize:Math.max(0,T-y.start-y.end),index:p,itemCount:n,itemSize:W})-y.start;return k?Math.max(0,Math.min(I()-T,q)):q};if(f&&e&&c&&!Fe(e,s)){const{viewportOffset:k,viewportSize:V}=ge({containerElement:e,direction:s,isRtl:i,scrollTarget:c}),y=A({clamp:!1,containerScrollOffset:k,containerSize:V,padding:be({direction:s,isRtl:i,scrollTarget:c,viewportSize:V})})-k,q=s==="horizontal"&&i?-y:y;return{scrollOffset:de(c,s)+q,scrollTarget:c}}const C=e?s==="vertical"?e.scrollTop:e.scrollLeft:0,E=f&&e?s==="vertical"?e.clientHeight:e.clientWidth:S;let _=A({clamp:!0,containerScrollOffset:se({containerElement:e,direction:s,isRtl:i,scrollOffset:C}),containerSize:E,padding:e?be({direction:s,isRtl:i,scrollTarget:e,viewportSize:E}):{end:0,start:0}});if(e&&(!f||c)){if(_=se({containerElement:e,direction:s,isRtl:i,scrollOffset:_}),!f&&typeof e.scrollTo!="function"){const k=H(_);K(F,k)||G(k)}return{scrollOffset:_,scrollTarget:e}}});return{getCellBounds:j,getEstimatedSize:I,getScrollPositionForIndex:ee,scrollTarget:c,startIndexOverscan:Y,startIndexVisible:P,stopIndexOverscan:M,stopIndexVisible:Q}}function Re(e){const[t,r]=l.useState(e);return K(t,e)?t:(r(e),e)}function ye(e,t){const{ariaAttributes:r,style:o,...s}=e,{ariaAttributes:i,style:n,...v}=t;return K(r,i)&&K(o,n)&&K(s,v)}function je({cellComponent:e,cellProps:t,children:r,className:o,columnCount:s,columnKey:i,columnWidth:n,defaultHeight:v=0,defaultScrollLeft:h=0,defaultScrollTop:g=0,defaultWidth:u=0,dir:d,gridRef:f,onCellsRendered:c,onResize:a,overscanCount:b=3,rowCount:w,rowHeight:m,rowKey:x,scrollElement:S,style:W,tagName:R="div",...N}){const L=Re(t),j=l.useMemo(()=>l.memo(e,ye),[e]),[F,G]=l.useState(null),P=Ie(F,d),{getCellBounds:Y,getEstimatedSize:Q,startIndexOverscan:M,startIndexVisible:I,getScrollPositionForIndex:H,stopIndexOverscan:O,stopIndexVisible:Z}=ae({containerElement:F,containerStyle:W,defaultContainerSize:u,defaultScrollOffset:h,direction:"horizontal",isRtl:P,itemCount:s,itemProps:L,itemSize:n,onResize:a,overscanCount:b,scrollElement:S}),{getCellBounds:ee,getEstimatedSize:z,startIndexOverscan:p,startIndexVisible:A,getScrollPositionForIndex:C,stopIndexOverscan:E,stopIndexVisible:_}=ae({containerElement:F,containerStyle:W,defaultContainerSize:v,defaultScrollOffset:g,direction:"vertical",itemCount:w,itemProps:L,itemSize:m,onResize:a,overscanCount:b,scrollElement:S});l.useImperativeHandle(f,()=>({get element(){return F},scrollToCell({behavior:T="auto",columnAlign:y="auto",columnIndex:q,rowAlign:D="auto",rowIndex:J}){const U=H({align:y,index:q}),te=C({align:D,index:J});U&&te&&U.scrollTarget===te.scrollTarget?ne(te.scrollTarget,{behavior:T,left:U.scrollOffset,top:te.scrollOffset}):(U&&ne(U.scrollTarget,{behavior:T,left:U.scrollOffset}),te&&ne(te.scrollTarget,{behavior:T,top:te.scrollOffset}))},scrollToColumn({align:T="auto",behavior:y="auto",index:q}){const D=H({align:T,index:q});D&&ne(D.scrollTarget,{behavior:y,left:D.scrollOffset})},scrollToRow({align:T="auto",behavior:y="auto",index:q}){const D=C({align:T,index:q});D&&ne(D.scrollTarget,{behavior:y,top:D.scrollOffset})}}),[F,H,C]),l.useEffect(()=>{M>=0&&O>=0&&p>=0&&E>=0&&c&&c({columnStartIndex:I,columnStopIndex:Z,rowStartIndex:A,rowStopIndex:_},{columnStartIndex:M,columnStopIndex:O,rowStartIndex:p,rowStopIndex:E})},[c,M,I,O,Z,p,A,E,_]);const k=l.useMemo(()=>{const T=[];if(s>0&&w>0)for(let y=p;y<=E;y++){const q=ee(y),D=[];for(let J=M;J<=O;J++){const U=Y(J);D.push(l.createElement(j,{...L,ariaAttributes:{"aria-colindex":J+1,role:"gridcell"},columnIndex:J,key:i?i({columnIndex:J,data:L,rowIndex:y}):J,rowIndex:y,style:{position:"absolute",left:P?void 0:0,right:P?0:void 0,transform:`translate(${P?-U.scrollOffset:U.scrollOffset}px, ${q.scrollOffset}px)`,height:q.size,width:U.size}}))}T.push(le.jsx("div",{role:"row","aria-rowindex":y+1,children:D},x?x({data:L,rowIndex:y}):y))}return T},[j,L,s,i,M,O,Y,ee,P,w,x,p,E]),V=le.jsx("div",{"aria-hidden":!0,style:{height:z(),width:Q(),zIndex:-1}});return l.createElement(R,{"aria-colcount":s,"aria-rowcount":w,role:"grid",...N,className:o,dir:d,ref:G,style:{position:"relative",...S===void 0&&{maxHeight:"100%",maxWidth:"100%"},flexGrow:1,overflow:"auto",...W}},k,r,V)}const Pe=l.useState,Be=l.useRef,Me="data-react-window-index",_e="data-index";function fe(e){const t=e.getAttribute(Me)??e.getAttribute(_e);return t!==null&&/^\d+$/.test(t)?Number(t):void 0}function Te({direction:e,element:t,getCellBounds:r,isDynamicSize:o,itemCount:s,itemElements:i,scrollTarget:n,getScrollPositionForIndex:v}){const h=e==="vertical",g=l.useRef(null),u=l.useRef(void 0),d=re(()=>{g.current=null,u.current!==void 0&&(u.current.view.cancelAnimationFrame(u.current.id),u.current=void 0)}),f=re(()=>{const a=X(t);u.current={id:a.requestAnimationFrame(c),view:a}}),c=re(()=>{u.current=void 0;const a=g.current;if(!a)return;if(!t||!o||a.index>=s||performance.now()>=a.deadline){d();return}const b=v({align:a.align,index:a.index});if(b!==void 0){const{scrollOffset:w,scrollTarget:m}=b,x=Math.max(0,Math.min(w,We(m,e)));if(Math.abs(x-de(m,e))>1)a.stableFrames=0,m.scrollTo({behavior:"instant",[h?"top":"left"]:x});else{const S=i.current;if(!(S.some(N=>fe(N)===a.index)&&S.every(N=>{const L=fe(N);if(L===void 0||L>=s)return!0;const j=h?N.offsetHeight:N.offsetWidth;return Math.abs(r(L).size-j)<=1})))a.stableFrames=0;else if(++a.stableFrames>=2){d();return}}}f()});return B(()=>{const a=n??t;if(!a)return;const b=w=>{switch(w.key){case"ArrowUp":case"ArrowDown":case"ArrowLeft":case"ArrowRight":case"PageUp":case"PageDown":case"Home":case"End":case" ":d()}};return a.addEventListener("wheel",d,{passive:!0}),a.addEventListener("touchstart",d,{passive:!0}),a.addEventListener("pointerdown",d),a.addEventListener("keydown",b),()=>{d(),a.removeEventListener("wheel",d),a.removeEventListener("touchstart",d),a.removeEventListener("pointerdown",d),a.removeEventListener("keydown",b)}},[d,t,n]),l.useCallback(({align:a="auto",behavior:b="auto",index:w})=>{if(o&&a==="smart"){const x=v({align:"auto",index:w});a=x===void 0||x.scrollOffset===de(x.scrollTarget,e)?"auto":"center"}const m=v({align:a,index:w});if(d(),m&&typeof m.scrollTarget.scrollTo=="function"){const{scrollOffset:x,scrollTarget:S}=m;o&&(g.current={align:a,index:w,deadline:performance.now()+1e3,stableFrames:0},f()),S.scrollTo({behavior:o?"instant":b,[h?"top":"left"]:x})}},[d,e,o,h,f,v])}function qe({callback:e,element:t,enabled:r=!0}){const o=re(e);l.useEffect(()=>{if(!r||!t)return;const s=X(t);let i=s.requestAnimationFrame(()=>{i=s.requestAnimationFrame(o)});return()=>{s.cancelAnimationFrame(i)}},[t,r,o])}function ce(e){return e!=null&&typeof e=="object"&&"getAverageRowHeight"in e&&typeof e.getAverageRowHeight=="function"}const we="data-react-window-sizer";function De({children:e,className:t,defaultHeight:r=0,defaultScrollOffset:o=0,listRef:s,onResize:i,onRowsRendered:n,overscanCount:v=3,rowComponent:h,rowCount:g,rowHeight:u,rowKey:d,rowProps:f,scrollElement:c,tagName:a="div",style:b,...w}){const m=Re(f),x=l.useMemo(()=>l.memo(h,ye),[h]),[S,W]=l.useState(null),R=ce(u),N=l.useMemo(()=>R?k=>u.getRowHeight(k)??u.getAverageRowHeight():u,[R,u]),L=Oe(),[j,F]=l.useState(()=>L&&R),G=l.useRef(u);B(()=>{j&&G.current!==u&&F(!1)},[j,u]),qe({callback:()=>F(!1),element:S,enabled:j});const{getCellBounds:P,getEstimatedSize:Y,scrollTarget:Q,getScrollPositionForIndex:M,startIndexOverscan:I,startIndexVisible:H,stopIndexOverscan:O,stopIndexVisible:Z}=ae({containerElement:S,containerStyle:b,defaultContainerSize:r,defaultScrollOffset:o,direction:"vertical",itemCount:g,itemProps:m,itemSize:N,onResize:i,overscanCount:v,scrollElement:c}),ee=l.useRef([]),z=Te({direction:"vertical",element:S,getCellBounds:P,isDynamicSize:R,itemCount:g,itemElements:ee,scrollTarget:Q,getScrollPositionForIndex:M});l.useImperativeHandle(s,()=>({get element(){return S},scrollToRow:z}),[S,z]),B(()=>{if(!S)return;const k=Array.from(S.children).slice(0,I<0?0:O-I+1).filter((V,T)=>{if(V.hasAttribute(we))return!1;const y=`${I+T}`;return V.setAttribute(Me,y),!0});if(ee.current=k,R)return u.observeRowElements(k)},[x,S,R,g,u,d,m,I,O]),l.useEffect(()=>{I>=0&&O>=0&&n&&n({startIndex:H,stopIndex:Z},{startIndex:I,stopIndex:O})},[n,I,H,O,Z]);const p=j&&R&&I===0,A=l.useMemo(()=>{const k=[];if(g>0)for(let V=I;V<=O;V++){const T=P(V);k.push(l.createElement(x,{...m,ariaAttributes:{"aria-posinset":V+1,"aria-setsize":g,role:"listitem"},key:d?d(V,m):V,index:V,style:p?{width:"100%"}:{position:"absolute",left:0,transform:`translateY(${T.scrollOffset}px)`,height:R?void 0:T.size,width:"100%"}}))}return k},[x,P,R,p,g,d,m,I,O]),C=le.jsx("div",{"aria-hidden":!0,[we]:"",style:{position:p?"absolute":void 0,top:p?0:void 0,height:Y(),width:"100%",zIndex:-1}},"sizer"),E=le.jsx(l.Fragment,{children:e},"children"),_=le.jsx(l.Fragment,{children:A},"rows");return l.createElement(a,{role:"list",...w,className:t,ref:W,style:{position:"relative",flexGrow:1,...c===void 0&&{maxHeight:"100%",overflowY:"auto"},...b}},...p?[E,_]:[_,E],C)}function me(e){const t=new Map;return e!==void 0&&e.forEach((r,o)=>{Number.isFinite(r)&&r>0&&t.set(o,r)}),t}function Ge({defaultRowHeight:e,initialRowHeights:t,key:r}){const[o,s]=l.useState(()=>({key:r,map:me(t)}));o.key!==r&&s({key:r,map:me(t)});const{map:i}=o,n=l.useCallback(()=>{let f=0;return i.forEach(c=>{f+=c}),f===0?e:f/i.size},[e,i]),v=l.useCallback(f=>{const c=i.get(f);return c!==void 0?c:e},[e,i]),h=l.useCallback((f,c)=>{s(a=>{if(a.map.get(f)===c)return a;const b=new Map(a.map);return b.set(f,c),{...a,map:b}})},[]),g=re(f=>{f.length!==0&&f.forEach(c=>{const{borderBoxSize:a,target:b}=c,w=fe(b);if(w===void 0)return;const{blockSize:m}=a[0];m&&h(w,m)})}),u=l.useRef(null);l.useEffect(()=>()=>{u.current?.resizeObserver.disconnect(),u.current=null},[]);const d=l.useCallback(f=>{const c=[];return f.forEach(a=>{const b=X(a);if(u.current?.view!==b){u.current?.resizeObserver.disconnect();const m=ue(a);u.current=m?{resizeObserver:new m(g),view:b}:null}const w=u.current?.resizeObserver;w&&(w.observe(a),c.push([a,w]))}),()=>{c.forEach(([a,b])=>b.unobserve(a))}},[g]);return l.useMemo(()=>({getAverageRowHeight:n,getRowHeight:v,setRowHeight:h,observeRowElements:d}),[n,v,h,d])}const Ue=l.useState,$e=l.useRef,Xe={};function Ye({count:e,defaultScrollOffset:t=0,defaultSize:r=0,dir:o,direction:s="vertical",element:i,itemSize:n,onItemsRendered:v,overscanCount:h=3,scrollElement:g}){const u=ce(n);$(!u||s==="vertical","Dynamic item sizes are only supported for vertical content");const d=l.useMemo(()=>ce(n)?M=>n.getRowHeight(M)??n.getAverageRowHeight():n,[n]),f=Ie(i,o),{getCellBounds:c,getEstimatedSize:a,scrollTarget:b,getScrollPositionForIndex:w,startIndexOverscan:m,startIndexVisible:x,stopIndexOverscan:S,stopIndexVisible:W}=ae({containerElement:i,defaultContainerSize:r,defaultScrollOffset:t,direction:s,isRtl:s==="horizontal"&&f,itemCount:e,itemProps:Xe,itemSize:d,onResize:void 0,overscanCount:h,scrollElement:g}),R=l.useRef(new Set),N=l.useRef(new WeakSet),L=l.useRef([]),j=l.useRef({dynamicRowHeight:null,unobserve:new Map}),F=l.useCallback(M=>{M!==null&&R.current.add(M)},[]),G=i;B(()=>{const M=R.current,I=j.current,H=ce(n)?n:null;I.dynamicRowHeight?.observeRowElements!==H?.observeRowElements&&(I.unobserve.forEach(O=>O()),I.unobserve.clear()),I.dynamicRowHeight=H,M.forEach(O=>{if(!O.isConnected)M.delete(O),I.unobserve.get(O)?.(),I.unobserve.delete(O);else if(H&&G!==null&&!I.unobserve.has(O)){if(fe(O)===void 0){N.current.has(O)||(N.current.add(O),console.warn("useVirtualizer: Items passed to measureElement must specify their index with a data-index attribute",O));return}I.unobserve.set(O,H.observeRowElements([O]))}}),L.current=Array.from(M)}),l.useEffect(()=>{const M=j.current;return()=>{M.unobserve.forEach(I=>I()),M.unobserve.clear(),M.dynamicRowHeight=null}},[]);const P=Te({direction:s,element:i,getCellBounds:c,isDynamicSize:u,itemCount:e,itemElements:L,scrollTarget:b,getScrollPositionForIndex:w});l.useEffect(()=>{m>=0&&S>=0&&v&&v({startIndex:x,stopIndex:W},{startIndex:m,stopIndex:S})},[v,m,x,S,W]);const Y=l.useMemo(()=>{const M=[];if(e>0)for(let I=m;I<=S;I++){const{scrollOffset:H,size:O}=c(I);M.push({index:I,offset:H,size:O})}return M},[e,c,m,S]),Q=a();return l.useMemo(()=>({items:Y,measureElement:F,scrollToIndex:P,totalSize:Q,visibleRange:{startIndex:x,stopIndex:W}}),[Y,F,P,x,W,Q])}function Ze(e,{delay:t=150}={}){const[r,o]=l.useState(!1);return B(()=>{if(!e)return;const s=e==="window"?window:X(e),i=e==="window"?s:e,n="onscrollend"in s;let v,h=0;const g=()=>{performance.now()-h>=t?(v=void 0,o(!1)):v=s.requestAnimationFrame(g)},u=()=>{o(!0),n||(h=performance.now(),v===void 0&&(v=s.requestAnimationFrame(g)))},d=()=>{o(!1)};return i.addEventListener("scroll",u,{passive:!0}),n&&i.addEventListener("scrollend",d),()=>{i.removeEventListener("scroll",u),i.removeEventListener("scrollend",d),v!==void 0&&s.cancelAnimationFrame(v),o(!1)}},[t,e]),r}const xe=new WeakMap;function Je(e=!1,t=typeof document<"u"?document:void 0){if(t===void 0)return 0;let r=xe.get(t);if(r===void 0||e){const o=t.createElement("div"),s=o.style;s.width="50px",s.height="50px",s.overflow="scroll",t.body.appendChild(o),r=o.offsetWidth-o.clientWidth,t.body.removeChild(o),xe.set(t,r)}return r}exports.Grid=je;exports.List=De;exports.getScrollbarSize=Je;exports.useDynamicRowHeight=Ge;exports.useGridCallbackRef=Pe;exports.useGridRef=Be;exports.useIsScrolling=Ze;exports.useListCallbackRef=Ue;exports.useListRef=$e;exports.useVirtualizer=Ye;
1
+ "use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const le=require("react/jsx-runtime"),c=require("react"),P=typeof window<"u"?c.useLayoutEffect:c.useEffect;function Oe(e){let t=e;for(;t;){if(t.dir)return t.dir==="rtl";t=t.parentElement}return!1}function Ie(e,t){const[r,o]=c.useState(t==="rtl");return P(()=>{t?o(t==="rtl"):e&&o(Oe(e))},[t,e]),r}function Ae(){return()=>{}}function ze(){return c.useSyncExternalStore(Ae,()=>!1,()=>!0)}function $(e){return e?.ownerDocument.defaultView??window}function de(e){return $(e).ResizeObserver??(typeof ResizeObserver<"u"?ResizeObserver:void 0)}function ve(e){if(e!==void 0)switch(typeof e){case"number":return e;case"string":{if(e.endsWith("px"))return parseFloat(e);break}}}function Ee({box:e,defaultHeight:t,defaultWidth:r,disabled:o,element:s,mode:i,style:n}){const{styleHeight:v,styleWidth:h}=c.useMemo(()=>({styleHeight:ve(n?.height),styleWidth:ve(n?.width)}),[n?.height,n?.width]),[g,u]=c.useState({height:t,width:r}),d=o||i==="only-height"&&v!==void 0||i==="only-width"&&h!==void 0||v!==void 0&&h!==void 0;return P(()=>{if(s===null||d)return;const f=de(s);if(!f)return;const a=new f(l=>{for(const b of l){const{contentRect:m,target:z}=b;s===z&&u(w=>w.height===m.height&&w.width===m.width?w:{height:m.height,width:m.width})}});return a.observe(s,{box:e}),()=>{a?.unobserve(s)}},[e,d,s,v,h]),c.useMemo(()=>({height:v??g.height,width:h??g.width}),[g,v,h])}function re(e){const t=c.useRef(()=>{throw new Error("Cannot call an event handler while rendering.")});return P(()=>{t.current=e},[e]),c.useCallback((...r)=>t.current?.(...r),[t])}const he=new WeakMap;function ke(e=!1,t=document){let r=he.get(t);if(r===void 0||e){const o=t.createElement("div"),s=o.style;s.width="50px",s.height="50px",s.overflow="scroll",s.direction="rtl";const i=t.createElement("div"),n=i.style;n.width="100px",n.height="100px",o.appendChild(i),t.body.appendChild(o),o.scrollLeft>0?r="positive-descending":(o.scrollLeft=1,o.scrollLeft===0?r="negative":r="positive-ascending"),t.body.removeChild(o),he.set(t,r)}return r}function se({containerElement:e,direction:t,isRtl:r,scrollOffset:o}){if(t==="horizontal"&&r)switch(ke(!1,e?.ownerDocument??document)){case"negative":return-o;case"positive-descending":{if(e){const{clientWidth:s,scrollWidth:i}=e;return i-s-o}break}}return o}function Ve({container:e,element:t,onChange:r}){const o=$(t),s=de(t),i=o.MutationObserver??(typeof MutationObserver<"u"?MutationObserver:void 0),n=s?new s(r):void 0,v=d=>!d.isConnected||(d.compareDocumentPosition(t)&Node.DOCUMENT_POSITION_FOLLOWING)!==0,h=i?new i(d=>{d.some(a=>Array.from(a.addedNodes).some(v)||a.removedNodes.length>0&&a.nextSibling!==null&&v(a.nextSibling))&&(u(),r())}):void 0,g=new Set,u=()=>{for(const f of g)n?.unobserve(f);g.clear(),h?.disconnect();let d=t;for(;d!==e;){const f=d.parentElement;if(f===null)break;if(n)for(let a=d.previousElementSibling;a!==null;a=a.previousElementSibling)g.add(a),n.observe(a);h?.observe(f,{childList:!0}),d=f}};return u(),()=>{n?.disconnect(),h?.disconnect()}}function oe(e){return e.window===e}function We(e,t){return t==="window"?e?$(e):null:t??null}function ce(e,t){return oe(e)?t==="vertical"?e.scrollY:e.scrollX:t==="vertical"?e.scrollTop:e.scrollLeft}function Fe(e,t){const r=oe(e)?e.document.scrollingElement??e.document.documentElement:e;return t==="vertical"?r.scrollHeight-r.clientHeight:r.scrollWidth-r.clientWidth}function ne(e,t){e&&typeof e.scrollTo=="function"&&e.scrollTo(t)}function He(e,t){const{overflowX:r,overflowY:o}=$(e).getComputedStyle(e),s=t==="vertical"?o:r;return s==="visible"||s==="clip"?!1:t==="vertical"?e.scrollHeight-e.clientHeight>1:e.scrollWidth-e.clientWidth>1}function ge({containerElement:e,direction:t,isRtl:r,scrollTarget:o}){const s=t==="vertical";let i,n;if(oe(o)){const{documentElement:w}=o.document;i=0,n=s?w.clientHeight:w.clientWidth}else{const w=o.getBoundingClientRect();i=s?w.top+o.clientTop:w.left+o.clientLeft,n=s?o.clientHeight:o.clientWidth}const v=i+n,h=e.getBoundingClientRect(),g=s?h.top+e.clientTop:h.left+e.clientLeft,u=s?e.clientHeight:e.clientWidth,d=g+u,f=se({containerElement:e,direction:t,isRtl:r,scrollOffset:s?e.scrollTop:e.scrollLeft}),l=!s&&r?d-v:i-g,b=l+n,m=Math.max(0,l),z=Math.min(u,b);return{offset:f+m,size:Math.max(0,z-m),viewportOffset:f+l,viewportSize:n}}function be({direction:e,isRtl:t,scrollTarget:r,viewportSize:o}){const s=oe(r)?r.document.documentElement:r,i=$(s).getComputedStyle(s),n=g=>{const u=parseFloat(g??"");return!Number.isFinite(u)||u<0?0:g.endsWith("px")?u:g.endsWith("%")?u*o/100:0};if(e==="vertical")return{end:n(i.scrollPaddingBottom),start:n(i.scrollPaddingTop)};const v=n(i.scrollPaddingLeft),h=n(i.scrollPaddingRight);return t?{end:v,start:h}:{end:h,start:v}}function G(e,t="Assertion error"){if(!e)throw console.error(t),Error(t)}function K(e,t){if(e===t)return!0;if(!!e!=!!t||(G(e!==void 0),G(t!==void 0),Object.keys(e).length!==Object.keys(t).length))return!1;for(const r in e)if(!Object.hasOwn(t,r)||!Object.is(t[r],e[r]))return!1;return!0}function Re({cachedBounds:e,itemCount:t,itemSize:r}){if(t===0)return 0;if(typeof r=="number")return t*r;{const o=e.get(e.size===0?0:e.size-1);G(o!==void 0,"Unexpected bounds cache miss");const s=(o.scrollOffset+o.size)/e.size;return t*s}}function pe({align:e,cachedBounds:t,clamp:r=!0,index:o,itemCount:s,itemSize:i,containerScrollOffset:n,containerSize:v}){if(o<0||o>=s)throw RangeError(`Invalid index specified: ${o}`,{cause:`Index ${o} is not within the range of 0 - ${s-1}`});const h=t.get(o),g=Re({cachedBounds:t,itemCount:s,itemSize:i}),u=l=>r?Math.max(0,Math.min(g-v,l)):l,d=u(h.scrollOffset),f=r?Math.max(0,h.scrollOffset-v+h.size):h.scrollOffset-v+h.size,a=h.size>v?n>=h.scrollOffset&&n<=f:n>=f&&n<=h.scrollOffset;switch(e==="smart"&&(e=a?"auto":"center"),e){case"start":return d;case"end":return f;case"center":return u(h.scrollOffset+h.size/2-v/2);case"auto":default:return a?n:n<f?f:d}}function ie({cachedBounds:e,containerScrollOffset:t,containerSize:r,itemCount:o,overscanCount:s}){const i=o-1;if(o===0)return{startIndexVisible:0,stopIndexVisible:-1,startIndexOverscan:0,stopIndexOverscan:-1};let n,v;const{itemSize:h}=e;if(h!==void 0)h>0?(n=Math.max(0,Math.min(i,Math.floor(t/h))),v=Math.max(n,Math.min(i,Math.ceil((t+r)/h)-1))):(n=0,v=0);else{let g=0,u=Math.min(i,Math.max(0,e.size-1));for(;g<u;){const d=Math.floor((g+u)/2),f=e.get(d);f.scrollOffset+f.size>t?u=d:g=d+1}for(;g<i;){const d=e.get(g);if(d.scrollOffset+d.size>t)break;g++}for(n=g,v=g;v<i;){const d=e.get(v);if(d.scrollOffset+d.size>=t+r)break;v++}}return{startIndexVisible:n,stopIndexVisible:v,startIndexOverscan:Math.max(0,n-s),stopIndexOverscan:Math.min(i,v+s)}}function Ce({itemCount:e,itemProps:t,itemSize:r}){const o=new Map;return{itemSize:typeof r=="number"?r:void 0,get(s){if(G(s<e,`Invalid index ${s}`),typeof r=="number")return G(s>=0,`Invalid index ${s}`),{size:r,scrollOffset:s*r};for(;o.size-1<s;){const n=o.size,v=r(n,t);if(n===0)o.set(n,{size:v,scrollOffset:0});else{const h=o.get(n-1);G(h!==void 0,`Unexpected bounds cache miss for index ${s}`),o.set(n,{scrollOffset:h.scrollOffset+h.size,size:v})}}const i=o.get(s);return G(i!==void 0,`Unexpected bounds cache miss for index ${s}`),i},set(s,i){o.set(s,i)},get size(){return o.size}}}function Ne({itemCount:e,itemProps:t,itemSize:r}){return c.useMemo(()=>Ce({itemCount:e,itemProps:t,itemSize:r}),[e,t,r])}function je({containerSize:e,itemSize:t}){let r;switch(typeof t){case"string":{G(t.endsWith("%"),`Invalid item size: "${t}"; string values must be percentages (e.g. "100%")`),G(e!==void 0,"Container size must be defined if a percentage item size is specified"),r=e*parseFloat(t)/100;break}default:{r=t;break}}return typeof r=="number"&&!(Number.isFinite(r)&&r>0)&&(r=0),r}function fe({containerElement:e,containerStyle:t,defaultContainerSize:r=0,defaultScrollOffset:o=0,direction:s,isRtl:i=!1,itemCount:n,itemProps:v,itemSize:h,onResize:g,overscanCount:u,scrollElement:d}){const f=d!==void 0,a=f?We(e,d):e,{height:l=r,width:b=r}=Ee({defaultHeight:s==="vertical"?r:void 0,defaultWidth:s==="horizontal"?r:void 0,element:e,mode:s==="vertical"?"only-height":"only-width",style:t}),m=c.useRef({height:0,width:0}),[z,w]=c.useState(r),x=f?z:s==="vertical"?l:b,M=je({containerSize:x,itemSize:h});P(()=>{if(typeof g=="function"){const R=m.current;(R.height!==l||R.width!==b)&&(g({height:l,width:b},{...R}),R.height=l,R.width=b)}},[l,g,b]);const p=Ne({itemCount:n,itemProps:v,itemSize:M}),X=ze(),[C]=c.useState(()=>X||f?0:o),k=c.useCallback(R=>p.get(R),[p]),[L,D]=c.useState(()=>ie({cachedBounds:p,containerScrollOffset:C,containerSize:x,itemCount:n,overscanCount:u})),{startIndexVisible:j,startIndexOverscan:Y,stopIndexVisible:Q,stopIndexOverscan:T}={startIndexVisible:Math.min(n-1,L.startIndexVisible),startIndexOverscan:Math.min(n-1,L.startIndexOverscan),stopIndexVisible:Math.min(n-1,L.stopIndexVisible),stopIndexOverscan:Math.min(n-1,L.stopIndexOverscan)},O=c.useCallback(()=>Re({cachedBounds:p,itemCount:n,itemSize:M}),[p,n,M]),H=c.useCallback(R=>{const S=se({containerElement:e,direction:s,isRtl:i,scrollOffset:R});return ie({cachedBounds:p,containerScrollOffset:S,containerSize:x,itemCount:n,overscanCount:u})},[p,e,x,s,i,n,u]),I=c.useRef(!1);P(()=>{if(!e||n===0||f||I.current||(I.current=!0,o<=0))return;const R=s==="horizontal"&&Oe(e);if(se({containerElement:e,direction:s,isRtl:R,scrollOffset:s==="vertical"?e.scrollTop:e.scrollLeft})!==0)return;const E=se({containerElement:e,direction:s,isRtl:R,scrollOffset:o});typeof e.scrollTo=="function"?e.scrollTo({behavior:"instant",[s==="vertical"?"top":"left"]:E}):s==="vertical"?e.scrollTop=E:e.scrollLeft=E},[e,n]),P(()=>{if(f&&e&&a)return;const R=e&&!f?H(s==="vertical"?e.scrollTop:e.scrollLeft):ie({cachedBounds:p,containerScrollOffset:C,containerSize:x,itemCount:n,overscanCount:u});D(S=>K(R,S)?S:R)},[p,e,x,s,H,C,f,n,u,a]),P(()=>{if(!e||f)return;const R=()=>{D(S=>{const{scrollLeft:E,scrollTop:N}=e,V=se({containerElement:e,direction:s,isRtl:i,scrollOffset:s==="vertical"?N:E}),_=ie({cachedBounds:p,containerScrollOffset:V,containerSize:x,itemCount:n,overscanCount:u});return K(_,S)?S:_})};return e.addEventListener("scroll",R),()=>{e.removeEventListener("scroll",R)}},[p,e,x,s,i,f,n,u]);const Z=re(()=>{if(!e||!a)return;const{offset:R,size:S,viewportSize:E}=ge({containerElement:e,direction:s,isRtl:i,scrollTarget:a});w(E);const N=ie({cachedBounds:p,containerScrollOffset:R,containerSize:S,itemCount:n,overscanCount:u});D(V=>K(N,V)?V:N)});P(()=>{f&&Z()}),P(()=>{if(!f||!e||!a)return;const R=$(e),S=()=>Z();a.addEventListener("scroll",S,{passive:!0}),e.addEventListener("scroll",S,{passive:!0}),R.addEventListener("resize",S);let E;const N=de(e);N&&!oe(a)&&(E=new N(S),E.observe(a));const V=Ve({container:oe(a)?a.document.documentElement:a,element:e,onChange:S});return()=>{a.removeEventListener("scroll",S),e.removeEventListener("scroll",S),R.removeEventListener("resize",S),E?.disconnect(),V()}},[e,f,a,Z]);const ee=re(({align:R="auto",index:S})=>{const E=({clamp:W,containerScrollOffset:F,containerSize:A,padding:y})=>{if(y.start===0&&y.end===0)return pe({align:R,cachedBounds:p,clamp:W,containerScrollOffset:F,containerSize:A,index:S,itemCount:n,itemSize:M});const B=pe({align:R,cachedBounds:p,clamp:!1,containerScrollOffset:F+y.start,containerSize:Math.max(0,A-y.start-y.end),index:S,itemCount:n,itemSize:M})-y.start;return W?Math.max(0,Math.min(O()-A,B)):B};if(f&&e&&a&&!He(e,s)){const{viewportOffset:W,viewportSize:F}=ge({containerElement:e,direction:s,isRtl:i,scrollTarget:a}),y=E({clamp:!1,containerScrollOffset:W,containerSize:F,padding:be({direction:s,isRtl:i,scrollTarget:a,viewportSize:F})})-W,B=s==="horizontal"&&i?-y:y;return{scrollOffset:ce(a,s)+B,scrollTarget:a}}const N=e?s==="vertical"?e.scrollTop:e.scrollLeft:0,V=f&&e?s==="vertical"?e.clientHeight:e.clientWidth:x;let _=E({clamp:!0,containerScrollOffset:se({containerElement:e,direction:s,isRtl:i,scrollOffset:N}),containerSize:V,padding:e?be({direction:s,isRtl:i,scrollTarget:e,viewportSize:V}):{end:0,start:0}});if(e&&(!f||a)){if(_=se({containerElement:e,direction:s,isRtl:i,scrollOffset:_}),!f&&typeof e.scrollTo!="function"){const W=H(_);K(L,W)||D(W)}return{scrollOffset:_,scrollTarget:e}}});return{getCellBounds:k,getEstimatedSize:O,getScrollPositionForIndex:ee,scrollTarget:a,startIndexOverscan:Y,startIndexVisible:j,stopIndexOverscan:T,stopIndexVisible:Q}}function ye(e){const[t,r]=c.useState(e);return K(t,e)?t:(r(e),e)}function Te(e,t){const{ariaAttributes:r,style:o,...s}=e,{ariaAttributes:i,style:n,...v}=t;return K(r,i)&&K(o,n)&&K(s,v)}function Pe({cellComponent:e,cellProps:t,children:r,className:o,columnCount:s,columnKey:i,columnWidth:n,defaultHeight:v=0,defaultScrollLeft:h=0,defaultScrollTop:g=0,defaultWidth:u=0,dir:d,gridRef:f,onCellsRendered:a,onResize:l,overscanCount:b=3,rowCount:m,rowHeight:z,rowKey:w,scrollElement:x,style:M,tagName:p="div",...X}){const C=ye(t),k=c.useMemo(()=>c.memo(e,Te),[e]),[L,D]=c.useState(null),j=Ie(L,d),{getCellBounds:Y,getEstimatedSize:Q,startIndexOverscan:T,startIndexVisible:O,getScrollPositionForIndex:H,stopIndexOverscan:I,stopIndexVisible:Z}=fe({containerElement:L,containerStyle:M,defaultContainerSize:u,defaultScrollOffset:h,direction:"horizontal",isRtl:j,itemCount:s,itemProps:C,itemSize:n,onResize:l,overscanCount:b,scrollElement:x}),{getCellBounds:ee,getEstimatedSize:R,startIndexOverscan:S,startIndexVisible:E,getScrollPositionForIndex:N,stopIndexOverscan:V,stopIndexVisible:_}=fe({containerElement:L,containerStyle:M,defaultContainerSize:v,defaultScrollOffset:g,direction:"vertical",itemCount:m,itemProps:C,itemSize:z,onResize:l,overscanCount:b,scrollElement:x});c.useImperativeHandle(f,()=>({get element(){return L},scrollToCell({behavior:A="auto",columnAlign:y="auto",columnIndex:B,rowAlign:U="auto",rowIndex:J}){const q=H({align:y,index:B}),te=N({align:U,index:J});q&&te&&q.scrollTarget===te.scrollTarget?ne(te.scrollTarget,{behavior:A,left:q.scrollOffset,top:te.scrollOffset}):(q&&ne(q.scrollTarget,{behavior:A,left:q.scrollOffset}),te&&ne(te.scrollTarget,{behavior:A,top:te.scrollOffset}))},scrollToColumn({align:A="auto",behavior:y="auto",index:B}){const U=H({align:A,index:B});U&&ne(U.scrollTarget,{behavior:y,left:U.scrollOffset})},scrollToRow({align:A="auto",behavior:y="auto",index:B}){const U=N({align:A,index:B});U&&ne(U.scrollTarget,{behavior:y,top:U.scrollOffset})}}),[L,H,N]),c.useEffect(()=>{T>=0&&I>=0&&S>=0&&V>=0&&a&&a({columnStartIndex:O,columnStopIndex:Z,rowStartIndex:E,rowStopIndex:_},{columnStartIndex:T,columnStopIndex:I,rowStartIndex:S,rowStopIndex:V})},[a,T,O,I,Z,S,E,V,_]);const W=c.useMemo(()=>{const A=[];if(s>0&&m>0)for(let y=S;y<=V;y++){const B=ee(y),U=[];for(let J=T;J<=I;J++){const q=Y(J);U.push(c.createElement(k,{...C,ariaAttributes:{"aria-colindex":J+1,role:"gridcell"},columnIndex:J,key:i?i({columnIndex:J,data:C,rowIndex:y}):J,rowIndex:y,style:{position:"absolute",left:j?void 0:0,right:j?0:void 0,transform:`translate(${j?-q.scrollOffset:q.scrollOffset}px, ${B.scrollOffset}px)`,height:B.size,width:q.size}}))}A.push(le.jsx("div",{role:"row","aria-rowindex":y+1,children:U},w?w({data:C,rowIndex:y}):y))}return A},[k,C,s,i,T,I,Y,ee,j,m,w,S,V]),F=le.jsx("div",{"aria-hidden":!0,style:{height:R(),width:Q(),zIndex:-1}});return c.createElement(p,{"aria-colcount":s,"aria-rowcount":m,role:"grid",...X,className:o,dir:d,ref:D,style:{position:"relative",...x===void 0&&{maxHeight:"100%",maxWidth:"100%"},flexGrow:1,overflow:"auto",...M}},W,r,F)}const _e=c.useState,Be=c.useRef,Me="data-react-window-index",De="data-index";function ue(e){const t=e.getAttribute(Me)??e.getAttribute(De);return t!==null&&/^\d+$/.test(t)?Number(t):void 0}const Ue=1e3,we=500;function qe(e){return 1-Math.pow(1-e,3)}function Le({direction:e,element:t,getCellBounds:r,isDynamicSize:o,itemCount:s,itemElements:i,scrollTarget:n,getScrollPositionForIndex:v}){const h=e==="vertical",g=c.useRef(null),u=c.useRef(void 0),d=re(()=>{g.current=null,u.current!==void 0&&(u.current.view.cancelAnimationFrame(u.current.id),u.current=void 0)}),f=re(()=>{const l=$(t);u.current={id:l.requestAnimationFrame(a),view:l}}),a=re(()=>{u.current=void 0;const l=g.current;if(!l)return;const b=performance.now();if(!t||!o||l.index>=s||l.animation!==void 0&&b>=l.animation.deadline){d();return}const m=v({align:l.align,index:l.index});if(m!==void 0){const{scrollOffset:z,scrollTarget:w}=m,x=Math.max(0,Math.min(z,Fe(w,e)));if(l.animation===void 0){const p=l.smooth?we:0;l.animation={deadline:b+p+Ue,startOffset:ce(w,e),startTime:b}}const M=l.smooth?(b-l.animation.startTime)/we:1;if(M<1){const{startOffset:p}=l.animation;l.stableFrames=0,w.scrollTo({behavior:"instant",[h?"top":"left"]:p+(x-p)*qe(M)})}else if(Math.abs(x-ce(w,e))>1)l.stableFrames=0,w.scrollTo({behavior:"instant",[h?"top":"left"]:x});else{const p=i.current;if(!(p.some(k=>ue(k)===l.index)&&p.every(k=>{const L=ue(k);if(L===void 0||L>=s)return!0;const D=h?k.offsetHeight:k.offsetWidth;return Math.abs(r(L).size-D)<=1})))l.stableFrames=0;else if(++l.stableFrames>=2){d();return}}}f()});return P(()=>{const l=n??t;if(!l)return;const b=m=>{switch(m.key){case"ArrowUp":case"ArrowDown":case"ArrowLeft":case"ArrowRight":case"PageUp":case"PageDown":case"Home":case"End":case" ":d()}};return l.addEventListener("wheel",d,{passive:!0}),l.addEventListener("touchstart",d,{passive:!0}),l.addEventListener("pointerdown",d),l.addEventListener("keydown",b),()=>{d(),l.removeEventListener("wheel",d),l.removeEventListener("touchstart",d),l.removeEventListener("pointerdown",d),l.removeEventListener("keydown",b)}},[d,t,n]),c.useCallback(({align:l="auto",behavior:b="auto",index:m})=>{if(o&&l==="smart"){const w=v({align:"auto",index:m});l=w===void 0||w.scrollOffset===ce(w.scrollTarget,e)?"auto":"center"}const z=v({align:l,index:m});if(d(),z&&typeof z.scrollTarget.scrollTo=="function"){const{scrollOffset:w,scrollTarget:x}=z;if(o){const M=b==="smooth"&&t?.ownerDocument.visibilityState!=="hidden";if(g.current={align:l,index:m,smooth:M,stableFrames:0},f(),M)return}x.scrollTo({behavior:o?"instant":b,[h?"top":"left"]:w})}},[d,e,t,o,h,f,v])}function Ge({callback:e,element:t,enabled:r=!0}){const o=re(e);c.useEffect(()=>{if(!r||!t)return;const s=$(t);let i=s.requestAnimationFrame(()=>{i=s.requestAnimationFrame(o)});return()=>{s.cancelAnimationFrame(i)}},[t,r,o])}function ae(e){return e!=null&&typeof e=="object"&&"getAverageRowHeight"in e&&typeof e.getAverageRowHeight=="function"}const me="data-react-window-sizer";function $e({children:e,className:t,defaultHeight:r=0,defaultScrollOffset:o=0,listRef:s,onResize:i,onRowsRendered:n,overscanCount:v=3,rowComponent:h,rowCount:g,rowHeight:u,rowKey:d,rowProps:f,scrollElement:a,tagName:l="div",style:b,...m}){const z=ye(f),w=c.useMemo(()=>c.memo(h,Te),[h]),[x,M]=c.useState(null),p=ae(u),X=c.useMemo(()=>p?W=>u.getRowHeight(W)??u.getAverageRowHeight():u,[p,u]),C=ze(),[k,L]=c.useState(()=>C&&p),D=c.useRef(u);P(()=>{k&&D.current!==u&&L(!1)},[k,u]),Ge({callback:()=>L(!1),element:x,enabled:k});const{getCellBounds:j,getEstimatedSize:Y,scrollTarget:Q,getScrollPositionForIndex:T,startIndexOverscan:O,startIndexVisible:H,stopIndexOverscan:I,stopIndexVisible:Z}=fe({containerElement:x,containerStyle:b,defaultContainerSize:r,defaultScrollOffset:o,direction:"vertical",itemCount:g,itemProps:z,itemSize:X,onResize:i,overscanCount:v,scrollElement:a}),ee=c.useRef([]),R=Le({direction:"vertical",element:x,getCellBounds:j,isDynamicSize:p,itemCount:g,itemElements:ee,scrollTarget:Q,getScrollPositionForIndex:T});c.useImperativeHandle(s,()=>({get element(){return x},scrollToRow:R}),[x,R]),P(()=>{if(!x)return;const W=Array.from(x.children).slice(0,O<0?0:I-O+1).filter((F,A)=>{if(F.hasAttribute(me))return!1;const y=`${O+A}`;return F.setAttribute(Me,y),!0});if(ee.current=W,p)return u.observeRowElements(W)},[w,x,p,g,u,d,z,O,I]),c.useEffect(()=>{O>=0&&I>=0&&n&&n({startIndex:H,stopIndex:Z},{startIndex:O,stopIndex:I})},[n,O,H,I,Z]);const S=k&&p&&O===0,E=c.useMemo(()=>{const W=[];if(g>0)for(let F=O;F<=I;F++){const A=j(F);W.push(c.createElement(w,{...z,ariaAttributes:{"aria-posinset":F+1,"aria-setsize":g,role:"listitem"},key:d?d(F,z):F,index:F,style:S?{width:"100%"}:{position:"absolute",left:0,transform:`translateY(${A.scrollOffset}px)`,height:p?void 0:A.size,width:"100%"}}))}return W},[w,j,p,S,g,d,z,O,I]),N=le.jsx("div",{"aria-hidden":!0,[me]:"",style:{position:S?"absolute":void 0,top:S?0:void 0,height:Y(),width:"100%",zIndex:-1}},"sizer"),V=le.jsx(c.Fragment,{children:e},"children"),_=le.jsx(c.Fragment,{children:E},"rows");return c.createElement(l,{role:"list",...m,className:t,ref:M,style:{position:"relative",flexGrow:1,...a===void 0&&{maxHeight:"100%",overflowY:"auto"},...b}},...S?[V,_]:[_,V],N)}function xe(e){const t=new Map;return e!==void 0&&e.forEach((r,o)=>{Number.isFinite(r)&&r>0&&t.set(o,r)}),t}function Xe({defaultRowHeight:e,initialRowHeights:t,key:r}){const[o,s]=c.useState(()=>({key:r,map:xe(t)}));o.key!==r&&s({key:r,map:xe(t)});const{map:i}=o,n=c.useCallback(()=>{let f=0;return i.forEach(a=>{f+=a}),f===0?e:f/i.size},[e,i]),v=c.useCallback(f=>{const a=i.get(f);return a!==void 0?a:e},[e,i]),h=c.useCallback((f,a)=>{s(l=>{if(l.map.get(f)===a)return l;const b=new Map(l.map);return b.set(f,a),{...l,map:b}})},[]),g=re(f=>{f.length!==0&&f.forEach(a=>{const{borderBoxSize:l,target:b}=a,m=ue(b);if(m===void 0)return;const{blockSize:z}=l[0];z&&h(m,z)})}),u=c.useRef(null);c.useEffect(()=>()=>{u.current?.resizeObserver.disconnect(),u.current=null},[]);const d=c.useCallback(f=>{const a=[];return f.forEach(l=>{const b=$(l);if(u.current?.view!==b){u.current?.resizeObserver.disconnect();const z=de(l);u.current=z?{resizeObserver:new z(g),view:b}:null}const m=u.current?.resizeObserver;m&&(m.observe(l),a.push([l,m]))}),()=>{a.forEach(([l,b])=>b.unobserve(l))}},[g]);return c.useMemo(()=>({getAverageRowHeight:n,getRowHeight:v,setRowHeight:h,observeRowElements:d}),[n,v,h,d])}const Ye=c.useState,Ze=c.useRef,Je={};function Qe({count:e,defaultScrollOffset:t=0,defaultSize:r=0,dir:o,direction:s="vertical",element:i,itemSize:n,onItemsRendered:v,overscanCount:h=3,scrollElement:g}){const u=ae(n);G(!u||s==="vertical","Dynamic item sizes are only supported for vertical content");const d=c.useMemo(()=>ae(n)?T=>n.getRowHeight(T)??n.getAverageRowHeight():n,[n]),f=Ie(i,o),{getCellBounds:a,getEstimatedSize:l,scrollTarget:b,getScrollPositionForIndex:m,startIndexOverscan:z,startIndexVisible:w,stopIndexOverscan:x,stopIndexVisible:M}=fe({containerElement:i,defaultContainerSize:r,defaultScrollOffset:t,direction:s,isRtl:s==="horizontal"&&f,itemCount:e,itemProps:Je,itemSize:d,onResize:void 0,overscanCount:h,scrollElement:g}),p=c.useRef(new Set),X=c.useRef(new WeakSet),C=c.useRef([]),k=c.useRef({dynamicRowHeight:null,unobserve:new Map}),L=c.useCallback(T=>{T!==null&&p.current.add(T)},[]),D=i;P(()=>{const T=p.current,O=k.current,H=ae(n)?n:null;O.dynamicRowHeight?.observeRowElements!==H?.observeRowElements&&(O.unobserve.forEach(I=>I()),O.unobserve.clear()),O.dynamicRowHeight=H,T.forEach(I=>{if(!I.isConnected)T.delete(I),O.unobserve.get(I)?.(),O.unobserve.delete(I);else if(H&&D!==null&&!O.unobserve.has(I)){if(ue(I)===void 0){X.current.has(I)||(X.current.add(I),console.warn("useVirtualizer: Items passed to measureElement must specify their index with a data-index attribute",I));return}O.unobserve.set(I,H.observeRowElements([I]))}}),C.current=Array.from(T)}),c.useEffect(()=>{const T=k.current;return()=>{T.unobserve.forEach(O=>O()),T.unobserve.clear(),T.dynamicRowHeight=null}},[]);const j=Le({direction:s,element:i,getCellBounds:a,isDynamicSize:u,itemCount:e,itemElements:C,scrollTarget:b,getScrollPositionForIndex:m});c.useEffect(()=>{z>=0&&x>=0&&v&&v({startIndex:w,stopIndex:M},{startIndex:z,stopIndex:x})},[v,z,w,x,M]);const Y=c.useMemo(()=>{const T=[];if(e>0)for(let O=z;O<=x;O++){const{scrollOffset:H,size:I}=a(O);T.push({index:O,offset:H,size:I})}return T},[e,a,z,x]),Q=l();return c.useMemo(()=>({items:Y,measureElement:L,scrollToIndex:j,totalSize:Q,visibleRange:{startIndex:w,stopIndex:M}}),[Y,L,j,w,M,Q])}function Ke(e,{delay:t=150}={}){const[r,o]=c.useState(!1);return P(()=>{if(!e)return;const s=e==="window"?window:$(e),i=e==="window"?s:e,n="onscrollend"in s;let v,h=0;const g=()=>{performance.now()-h>=t?(v=void 0,o(!1)):v=s.requestAnimationFrame(g)},u=()=>{o(!0),n||(h=performance.now(),v===void 0&&(v=s.requestAnimationFrame(g)))},d=()=>{o(!1)};return i.addEventListener("scroll",u,{passive:!0}),n&&i.addEventListener("scrollend",d),()=>{i.removeEventListener("scroll",u),i.removeEventListener("scrollend",d),v!==void 0&&s.cancelAnimationFrame(v),o(!1)}},[t,e]),r}const Se=new WeakMap;function et(e=!1,t=typeof document<"u"?document:void 0){if(t===void 0)return 0;let r=Se.get(t);if(r===void 0||e){const o=t.createElement("div"),s=o.style;s.width="50px",s.height="50px",s.overflow="scroll",t.body.appendChild(o),r=o.offsetWidth-o.clientWidth,t.body.removeChild(o),Se.set(t,r)}return r}exports.Grid=Pe;exports.List=$e;exports.getScrollbarSize=et;exports.useDynamicRowHeight=Xe;exports.useGridCallbackRef=_e;exports.useGridRef=Be;exports.useIsScrolling=Ke;exports.useListCallbackRef=Ye;exports.useListRef=Ze;exports.useVirtualizer=Qe;
2
2
  //# sourceMappingURL=react-window.cjs.map