react-virtuoso 4.18.3 → 4.18.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.mjs +164 -163
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const V=require("react/jsx-runtime"),b=require("react"),co=require("react-dom"),Ce=0,Pt=1,qt=2,On=4;function cn(t){return()=>t}function uo(t){t()}function ne(t,e){return n=>t(e(n))}function un(t,e){return()=>t(e)}function ao(t,e){return n=>t(e,n)}function Pe(t){return t!==void 0}function fo(...t){return()=>{t.map(uo)}}function Yt(){}function we(t,e){return e(t),t}function mo(t,e){return e(t)}function ot(...t){return t}function Y(t,e){return t(Pt,e)}function j(t,e){t(Ce,e)}function We(t){t(qt)}function it(t){return t(On)}function L(t,e){return Y(t,ao(e,Ce))}function yt(t,e){const n=t(Pt,o=>{n(),e(o)});return n}function an(t){let e,n;return o=>r=>{e=r,n&&clearTimeout(n),n=setTimeout(()=>{o(e)},t)}}function kn(t,e){return t===e}function et(t=kn){let e;return n=>o=>{t(e,o)||(e=o,n(o))}}function W(t){return e=>n=>{t(n)&&e(n)}}function B(t){return e=>ne(e,t)}function Bt(t){return e=>()=>{e(t)}}function x(t,...e){const n=po(...e);return((o,r)=>{switch(o){case qt:We(t);return;case Pt:return Y(t,n(r))}})}function Ot(t,e){return n=>o=>{n(e=t(e,o))}}function _t(t){return e=>n=>{t>0?t--:e(n)}}function zt(t){let e=null,n;return o=>r=>{e=r,!n&&(n=setTimeout(()=>{n=void 0,o(e)},t))}}function D(...t){const e=new Array(t.length);let n=0,o=null;const r=2**t.length-1;return t.forEach((s,i)=>{const l=2**i;Y(s,c=>{const d=n;n|=l,e[i]=c,d!==r&&n===r&&o&&(o(),o=null)})}),s=>i=>{const l=()=>{s([i].concat(e))};n===r?l():o=l}}function po(...t){return e=>t.reduceRight(mo,e)}function ho(t){let e,n;const o=()=>e?.();return function(r,s){switch(r){case Pt:return s?n===s?void 0:(o(),n=s,e=Y(t,s),e):(o(),Yt);case qt:o(),n=null;return}}}function v(t){let e=t;const n=$();return((o,r)=>{switch(o){case Ce:e=r;break;case Pt:{r(e);break}case On:return e}return n(o,r)})}function ht(t,e){return we(v(e),n=>L(t,n))}function $(){const t=[];return((e,n)=>{switch(e){case Ce:t.slice().forEach(o=>{o(n)});return;case qt:t.splice(0,t.length);return;case Pt:return t.push(n),()=>{const o=t.indexOf(n);o>-1&&t.splice(o,1)}}})}function vt(t){return we($(),e=>L(t,e))}function K(t,e=[],{singleton:n}={singleton:!0}){return{constructor:t,dependencies:e,id:go(),singleton:n}}const go=()=>Symbol();function xo(t){const e=new Map,n=({constructor:o,dependencies:r,id:s,singleton:i})=>{if(i&&e.has(s))return e.get(s);const l=o(r.map(c=>n(c)));return i&&e.set(s,l),l};return n(t)}function at(...t){const e=$(),n=new Array(t.length);let o=0;const r=2**t.length-1;return t.forEach((s,i)=>{const l=2**i;Y(s,c=>{n[i]=c,o|=l,o===r&&j(e,n)})}),function(s,i){switch(s){case qt:{We(e);return}case Pt:return o===r&&i(n),Y(e,i)}}}function P(t,e=kn){return x(t,et(e))}function ke(...t){return function(e,n){switch(e){case qt:return;case Pt:return fo(...t.map(o=>Y(o,n)))}}}const dt={DEBUG:0,INFO:1,WARN:2,ERROR:3},Io={[dt.DEBUG]:"debug",[dt.ERROR]:"error",[dt.INFO]:"log",[dt.WARN]:"warn"},So=()=>typeof globalThis>"u"?window:globalThis,Wt=K(()=>{const t=v(dt.ERROR);return{log:v((n,o,r=dt.INFO)=>{const s=So().VIRTUOSO_LOG_LEVEL??it(t);r>=s&&console[Io[r]]("%creact-virtuoso: %c%s %o","color: #0253b3; font-weight: bold","color: initial",n,o)}),logLevel:t}},[],{singleton:!0});function kt(t,e,n){return Ae(t,e,n).callbackRef}function Ae(t,e,n){const o=b.useRef(null);let r=i=>{};const s=b.useMemo(()=>typeof ResizeObserver<"u"?new ResizeObserver(i=>{const l=()=>{const c=i[0].target;c.offsetParent!==null&&t(c)};n?l():requestAnimationFrame(l)}):null,[t,n]);return r=i=>{i&&e?(s?.observe(i),o.current=i):(o.current&&s?.unobserve(o.current),o.current=null)},{callbackRef:r,ref:o}}function Ln(t,e,n,o,r,s,i,l,c){const d=b.useCallback(m=>{const I=To(m.children,e,l?"offsetWidth":"offsetHeight",r);let p=m.parentElement;for(;p.dataset.virtuosoScroller===void 0;)p=p.parentElement;const T=p.lastElementChild.dataset.viewportType==="window";let w;T&&(w=p.ownerDocument.defaultView);const E=i?l?i.scrollLeft:i.scrollTop:T?l?w.scrollX||w.document.documentElement.scrollLeft:w.scrollY||w.document.documentElement.scrollTop:l?p.scrollLeft:p.scrollTop,h=i?l?i.scrollWidth:i.scrollHeight:T?l?w.document.documentElement.scrollWidth:w.document.documentElement.scrollHeight:l?p.scrollWidth:p.scrollHeight,f=i?l?i.offsetWidth:i.offsetHeight:T?l?w.innerWidth:w.innerHeight:l?p.offsetWidth:p.offsetHeight;o({scrollHeight:h,scrollTop:Math.max(E,0),viewportHeight:f}),s?.(l?dn("column-gap",getComputedStyle(m).columnGap,r):dn("row-gap",getComputedStyle(m).rowGap,r)),I!==null&&t(I)},[t,e,r,s,i,o,l]);return Ae(d,n,c)}function To(t,e,n,o){const r=t.length;if(r===0)return null;const s=[];for(let i=0;i<r;i++){const l=t.item(i);if(l.dataset.index===void 0)continue;const c=parseInt(l.dataset.index),d=parseFloat(l.dataset.knownSize),m=e(l,n);if(m===0&&o("Zero-sized element, this should not happen",{child:l},dt.ERROR),m===d)continue;const I=s[s.length-1];s.length===0||I.size!==m||I.endIndex!==c-1?s.push({endIndex:c,size:m,startIndex:c}):s[s.length-1].endIndex++}return s}function dn(t,e,n){return e!=="normal"&&e?.endsWith("px")!==!0&&n(`${t} was not resolved to pixel value correctly`,e,dt.WARN),e==="normal"?0:parseInt(e??"0",10)}function Me(t,e,n){const o=b.useRef(null),r=b.useCallback(c=>{if(!c?.offsetParent)return;const d=c.getBoundingClientRect(),m=d.width;let I,p;if(e){const T=e.getBoundingClientRect(),w=d.top-T.top;p=T.height-Math.max(0,w),I=w+e.scrollTop}else{const T=i.current.ownerDocument.defaultView;p=T.innerHeight-Math.max(0,d.top),I=d.top+T.scrollY}o.current={offsetTop:I,visibleHeight:p,visibleWidth:m},t(o.current)},[t,e]),{callbackRef:s,ref:i}=Ae(r,!0,n),l=b.useCallback(()=>{r(i.current)},[r,i]);return b.useEffect(()=>{if(e){e.addEventListener("scroll",l);const d=new ResizeObserver(()=>{requestAnimationFrame(l)});return d.observe(e),()=>{e.removeEventListener("scroll",l),d.unobserve(e)}}const c=i.current?.ownerDocument.defaultView;return c?.addEventListener("scroll",l),c?.addEventListener("resize",l),()=>{c?.removeEventListener("scroll",l),c?.removeEventListener("resize",l)}},[l,e,i]),s}const xt=K(()=>{const t=$(),e=$(),n=v(0),o=$(),r=v(0),s=$(),i=$(),l=v(0),c=v(0),d=v(0),m=v(0),I=$(),p=$(),T=v(!1),w=v(!1),E=v(!1);return L(x(t,B(({scrollTop:h})=>h)),e),L(x(t,B(({scrollHeight:h})=>h)),i),L(e,r),{deviation:n,fixedFooterHeight:d,fixedHeaderHeight:c,footerHeight:m,headerHeight:l,horizontalDirection:w,scrollBy:p,scrollContainerState:t,scrollHeight:i,scrollingInProgress:T,scrollTo:I,scrollTop:e,skipAnimationFrameInResizeObserver:E,smoothScrollTargetReached:o,statefulScrollTop:r,viewportHeight:s}},[],{singleton:!0}),oe={lvl:0};function zn(t,e){const n=t.length;if(n===0)return[];let{index:o,value:r}=e(t[0]);const s=[];for(let i=1;i<n;i++){const{index:l,value:c}=e(t[i]);s.push({end:l-1,start:o,value:r}),o=l,r=c}return s.push({end:1/0,start:o,value:r}),s}function J(t){return t===oe}function re(t,e){if(!J(t))return e===t.k?t.v:e<t.k?re(t.l,e):re(t.r,e)}function Rt(t,e,n="k"){if(J(t))return[-1/0,void 0];if(Number(t[n])===e)return[t.k,t.v];if(Number(t[n])<e){const o=Rt(t.r,e,n);return o[0]===-1/0?[t.k,t.v]:o}return Rt(t.l,e,n)}function Tt(t,e,n){return J(t)?Gn(e,n,1):e===t.k?ft(t,{k:e,v:n}):e<t.k?fn(ft(t,{l:Tt(t.l,e,n)})):fn(ft(t,{r:Tt(t.r,e,n)}))}function Ut(){return oe}function Kt(t,e,n){if(J(t))return[];const o=Rt(t,e)[0];return vo(ze(t,o,n))}function Le(t,e){if(J(t))return oe;const{k:n,l:o,r}=t;if(e===n){if(J(o))return r;if(J(r))return o;const[s,i]=Vn(o);return Ie(ft(t,{k:s,l:Fn(o),v:i}))}return e<n?Ie(ft(t,{l:Le(o,e)})):Ie(ft(t,{r:Le(r,e)}))}function jt(t){return J(t)?[]:[...jt(t.l),{k:t.k,v:t.v},...jt(t.r)]}function ze(t,e,n){if(J(t))return[];const{k:o,l:r,r:s,v:i}=t;let l=[];return o>e&&(l=l.concat(ze(r,e,n))),o>=e&&o<=n&&l.push({k:o,v:i}),o<=n&&(l=l.concat(ze(s,e,n))),l}function Ie(t){const{l:e,lvl:n,r:o}=t;if(o.lvl>=n-1&&e.lvl>=n-1)return t;if(n>o.lvl+1){if(Re(e))return Pn(ft(t,{lvl:n-1}));if(!J(e)&&!J(e.r))return ft(e.r,{l:ft(e,{r:e.r.l}),lvl:n,r:ft(t,{l:e.r.r,lvl:n-1})});throw new Error("Unexpected empty nodes")}if(Re(t))return Fe(ft(t,{lvl:n-1}));if(!J(o)&&!J(o.l)){const r=o.l,s=Re(r)?o.lvl-1:o.lvl;return ft(r,{l:ft(t,{lvl:n-1,r:r.l}),lvl:r.lvl+1,r:Fe(ft(o,{l:r.r,lvl:s}))})}throw new Error("Unexpected empty nodes")}function ft(t,e){return Gn(e.k!==void 0?e.k:t.k,e.v!==void 0?e.v:t.v,e.lvl!==void 0?e.lvl:t.lvl,e.l!==void 0?e.l:t.l,e.r!==void 0?e.r:t.r)}function Fn(t){return J(t.r)?t.l:Ie(ft(t,{r:Fn(t.r)}))}function Re(t){return J(t)||t.lvl>t.r.lvl}function Vn(t){return J(t.r)?[t.k,t.v]:Vn(t.r)}function Gn(t,e,n,o=oe,r=oe){return{k:t,l:o,lvl:n,r,v:e}}function fn(t){return Fe(Pn(t))}function Pn(t){const{l:e}=t;return!J(e)&&e.lvl===t.lvl?ft(e,{r:ft(t,{l:e.r})}):t}function Fe(t){const{lvl:e,r:n}=t;return!J(n)&&!J(n.r)&&n.lvl===e&&n.r.lvl===e?ft(n,{l:ft(t,{r:n.l}),lvl:e+1}):t}function vo(t){return zn(t,({k:e,v:n})=>({index:e,value:n}))}function Wn(t,e){return!!(t&&t.startIndex===e.startIndex&&t.endIndex===e.endIndex)}function se(t,e){return!!(t&&t[0]===e[0]&&t[1]===e[1])}const je=K(()=>({recalcInProgress:v(!1)}),[],{singleton:!0});function An(t,e,n){return t[Te(t,e,n)]}function Te(t,e,n,o=0){let r=t.length-1;for(;o<=r;){const s=Math.floor((o+r)/2),i=t[s],l=n(i,e);if(l===0)return s;if(l===-1){if(r-o<2)return s-1;r=s-1}else{if(r===o)return s;o=s+1}}throw new Error(`Failed binary finding record in array - ${t.join(",")}, searched for ${e}`)}function Co(t,e,n,o){const r=Te(t,e,o),s=Te(t,n,o,r);return t.slice(r,s+1)}function Et(t,e){return Math.round(t.getBoundingClientRect()[e])}function ye(t){return!J(t.groupOffsetTree)}function _e({index:t},e){return e===t?0:e<t?-1:1}function wo(){return{groupIndices:[],groupOffsetTree:Ut(),lastIndex:0,lastOffset:0,lastSize:0,offsetTree:[],sizeTree:Ut()}}function yo(t,e){let n=J(t)?0:1/0;for(const o of e){const{endIndex:r,size:s,startIndex:i}=o;if(n=Math.min(n,i),J(t)){t=Tt(t,0,s);continue}const l=Kt(t,i-1,r+1);if(l.some(ko(o)))continue;let c=!1,d=!1;for(const{end:m,start:I,value:p}of l)c?(r>=I||s===p)&&(t=Le(t,I)):(d=p!==s,c=!0),m>r&&r>=I&&p!==s&&(t=Tt(t,r+1,p));d&&(t=Tt(t,i,s))}return[t,n]}function bo(t){return typeof t.groupIndex<"u"}function Ro({offset:t},e){return e===t?0:e<t?-1:1}function ie(t,e,n){if(e.length===0)return 0;const{index:o,offset:r,size:s}=An(e,t,_e),i=t-o,l=s*i+(i-1)*n+r;return l>0?l+n:l}function Mn(t,e){if(!ye(e))return t;let n=0;for(;e.groupIndices[n]<=t+n;)n++;return t+n}function jn(t,e,n){if(bo(t))return e.groupIndices[t.groupIndex]+1;const o=t.index==="LAST"?n:t.index;let r=Mn(o,e);return r=Math.max(0,r,Math.min(n,r)),r}function Eo(t,e,n,o=0){return o>0&&(e=Math.max(e,An(t,o,_e).offset)),zn(Co(t,e,n,Ro),Oo)}function Ho(t,[e,n,o,r]){e.length>0&&o("received item sizes",e,dt.DEBUG);const s=t.sizeTree;let i=s,l=0;if(n.length>0&&J(s)&&e.length===2){const p=e[0].size,T=e[1].size;i=n.reduce((w,E)=>Tt(Tt(w,E,p),E+1,T),i)}else[i,l]=yo(i,e);if(i===s)return t;const{lastIndex:c,lastOffset:d,lastSize:m,offsetTree:I}=Ve(t.offsetTree,l,i,r);return{groupIndices:n,groupOffsetTree:n.reduce((p,T)=>Tt(p,T,ie(T,I,r)),Ut()),lastIndex:c,lastOffset:d,lastSize:m,offsetTree:I,sizeTree:i}}function Bo(t){return jt(t).map(({k:e,v:n},o,r)=>{const s=r[o+1];return{endIndex:s!==void 0?s.k-1:1/0,size:n,startIndex:e}})}function mn(t,e){let n=0,o=0;for(;n<t;)n+=e[o+1]-e[o]-1,o++;return o-(n===t?0:1)}function Ve(t,e,n,o){let r=t,s=0,i=0,l=0,c=0;if(e!==0){c=Te(r,e-1,_e),l=r[c].offset;const m=Rt(n,e-1);s=m[0],i=m[1],r.length&&r[c].size===Rt(n,e)[1]&&(c-=1),r=r.slice(0,c+1)}else r=[];for(const{start:d,value:m}of Kt(n,e,1/0)){const I=d-s,p=I*i+l+I*o;r.push({index:d,offset:p,size:m}),s=d,l=p,i=m}return{lastIndex:s,lastOffset:l,lastSize:i,offsetTree:r}}function Oo(t){return{index:t.index,value:t}}function ko(t){const{endIndex:e,size:n,startIndex:o}=t;return r=>r.start===o&&(r.end===e||r.end===1/0)&&r.value===n}const Lo={offsetHeight:"height",offsetWidth:"width"},Lt=K(([{log:t},{recalcInProgress:e}])=>{const n=$(),o=$(),r=ht(o,0),s=$(),i=$(),l=v(0),c=v([]),d=v(void 0),m=v(void 0),I=v(void 0),p=v(void 0),T=v((u,g)=>Et(u,Lo[g])),w=v(void 0),E=v(0),h=wo(),f=ht(x(n,D(c,t,E),Ot(Ho,h),et()),h),a=ht(x(c,et(),Ot((u,g)=>({current:g,prev:u.current}),{current:[],prev:[]}),B(({prev:u})=>u)),[]);L(x(c,W(u=>u.length>0),D(f,E),B(([u,g,C])=>{const z=u.reduce((O,G,_)=>Tt(O,G,ie(G,g.offsetTree,C)||_),Ut());return{...g,groupIndices:u,groupOffsetTree:z}})),f),L(x(o,D(f),W(([u,{lastIndex:g}])=>u<g),B(([u,{lastIndex:g,lastSize:C}])=>[{endIndex:g,size:C,startIndex:u}])),n),L(d,m);const S=ht(x(d,B(u=>u===void 0)),!0);L(x(m,W(u=>u!==void 0&&J(it(f).sizeTree)),B(u=>{const g=it(I),C=it(c).length>0;return g!==void 0&&g!==0?C?[{endIndex:0,size:g,startIndex:0},{endIndex:1,size:u,startIndex:1}]:[]:[{endIndex:0,size:u,startIndex:0}]})),n),L(x(p,W(u=>u!==void 0&&u.length>0&&J(it(f).sizeTree)),B(u=>{const g=[];let C=u[0],z=0;for(let O=1;O<u.length;O++){const G=u[O];G!==C&&(g.push({endIndex:O-1,size:C,startIndex:z}),C=G,z=O)}return g.push({endIndex:u.length-1,size:C,startIndex:z}),g})),n),L(x(c,D(I,m),W(([,u,g])=>u!==void 0&&g!==void 0),B(([u,g,C])=>{const z=[];for(let O=0;O<u.length;O++){const G=u[O],_=u[O+1];z.push({startIndex:G,endIndex:G,size:g}),_!==void 0&&z.push({startIndex:G+1,endIndex:_-1,size:C})}return z})),n);const H=vt(x(n,D(f),Ot(({sizes:u},[g,C])=>({changed:C!==u,sizes:C}),{changed:!1,sizes:h}),B(u=>u.changed)));Y(x(l,Ot((u,g)=>({diff:u.prev-g,prev:g}),{diff:0,prev:0}),B(u=>u.diff)),u=>{const{groupIndices:g}=it(f);if(u>0)j(e,!0),j(s,u+mn(u,g));else if(u<0){const C=it(a);C.length>0&&(u-=mn(-u,C)),j(i,u)}}),Y(x(l,D(t)),([u,g])=>{u<0&&g("`firstItemIndex` prop should not be set to less than zero. If you don't know the total count, just use a very high value",{firstItemIndex:l},dt.ERROR)});const y=vt(s);L(x(s,D(f),B(([u,g])=>{const C=g.groupIndices.length>0,z=[],O=g.lastSize;if(C){const G=re(g.sizeTree,0);let _=0,Z=0;for(;_<u;){const q=g.groupIndices[Z],Q=g.groupIndices.length===Z+1?1/0:g.groupIndices[Z+1]-q-1;z.push({endIndex:q,size:G,startIndex:q}),z.push({endIndex:q+1+Q-1,size:O,startIndex:q+1}),Z++,_+=Q+1}const F=jt(g.sizeTree);return _!==u&&F.shift(),F.reduce((q,{k:Q,v:gt})=>{let ut=q.ranges;return q.prevSize!==0&&(ut=[...q.ranges,{endIndex:Q+u-1,size:q.prevSize,startIndex:q.prevIndex}]),{prevIndex:Q+u,prevSize:gt,ranges:ut}},{prevIndex:u,prevSize:0,ranges:z}).ranges}return jt(g.sizeTree).reduce((G,{k:_,v:Z})=>({prevIndex:_+u,prevSize:Z,ranges:[...G.ranges,{endIndex:_+u-1,size:G.prevSize,startIndex:G.prevIndex}]}),{prevIndex:0,prevSize:O,ranges:[]}).ranges})),n);const k=vt(x(i,D(f,E),B(([u,{offsetTree:g},C])=>{const z=-u;return ie(z,g,C)})));return L(x(i,D(f,E),B(([u,g,C])=>{if(g.groupIndices.length>0){if(J(g.sizeTree))return g;let G=Ut();const _=it(a);let Z=0,F=0,mt=0;for(;Z<-u;){mt=_[F];const Q=_[F+1]-mt-1;F++,Z+=Q+1}if(G=jt(g.sizeTree).reduce((Q,{k:gt,v:ut})=>Tt(Q,Math.max(0,gt+u),ut),G),Z!==-u){const Q=re(g.sizeTree,mt);G=Tt(G,0,Q);const gt=Rt(g.sizeTree,-u+1)[1];G=Tt(G,1,gt)}return{...g,sizeTree:G,...Ve(g.offsetTree,0,G,C)}}const O=jt(g.sizeTree).reduce((G,{k:_,v:Z})=>Tt(G,Math.max(0,_+u),Z),Ut());return{...g,sizeTree:O,...Ve(g.offsetTree,0,O,C)}})),f),{beforeUnshiftWith:y,data:w,defaultItemSize:m,firstItemIndex:l,fixedItemSize:d,fixedGroupSize:I,gap:E,groupIndices:c,heightEstimates:p,itemSize:T,listRefresh:H,shiftWith:i,shiftWithOffset:k,sizeRanges:n,sizes:f,statefulTotalCount:r,totalCount:o,trackItemSizes:S,unshiftWith:s}},ot(Wt,je),{singleton:!0});function zo(t){return t.reduce((e,n)=>(e.groupIndices.push(e.totalCount),e.totalCount+=n+1,e),{groupIndices:[],totalCount:0})}const _n=K(([{groupIndices:t,sizes:e,totalCount:n},{headerHeight:o,scrollTop:r}])=>{const s=$(),i=$(),l=vt(x(s,B(zo)));return L(x(l,B(c=>c.totalCount)),n),L(x(l,B(c=>c.groupIndices)),t),L(x(at(r,e,o),W(([c,d])=>ye(d)),B(([c,d,m])=>Rt(d.groupOffsetTree,Math.max(c-m,0),"v")[0]),et(),B(c=>[c])),i),{groupCounts:s,topItemsIndexes:i}},ot(Lt,xt)),At=K(([{log:t}])=>{const e=v(!1),n=vt(x(e,W(o=>o),et()));return Y(e,o=>{o&&it(t)("props updated",{},dt.DEBUG)}),{didMount:n,propsReady:e}},ot(Wt),{singleton:!0}),Fo=typeof document<"u"&&"scrollBehavior"in document.documentElement.style;function Nn(t){const e=typeof t=="number"?{index:t}:t;return e.align||(e.align="start"),(!e.behavior||!Fo)&&(e.behavior="auto"),e.offset===void 0&&(e.offset=0),e}const ae=K(([{gap:t,listRefresh:e,sizes:n,totalCount:o},{fixedFooterHeight:r,fixedHeaderHeight:s,footerHeight:i,headerHeight:l,scrollingInProgress:c,scrollTo:d,smoothScrollTargetReached:m,viewportHeight:I},{log:p}])=>{const T=$(),w=$(),E=v(0);let h=null,f=null,a=null;function S(){h!==null&&(h(),h=null),a!==null&&(a(),a=null),f&&(clearTimeout(f),f=null),j(c,!1)}return L(x(T,D(n,I,o,E,l,i,p),D(t,s,r),B(([[H,y,k,u,g,C,z,O],G,_,Z])=>{const F=Nn(H),{align:mt,behavior:q,offset:Q}=F,gt=u-1,ut=jn(F,y,gt);let It=ie(ut,y.offsetTree,G)+C;mt==="end"?(It+=_+Rt(y.sizeTree,ut)[1]-k+Z,ut===gt&&(It+=z)):mt==="center"?It+=(_+Rt(y.sizeTree,ut)[1]-k+Z)/2:It-=g,Q!==void 0&&Q!==0&&(It+=Q);const Ft=pt=>{S(),pt?(O("retrying to scroll to",{location:H},dt.DEBUG),j(T,H)):(j(w,!0),O("list did not change, scroll successful",{},dt.DEBUG))};if(S(),q==="smooth"){let pt=!1;a=Y(e,Dt=>{pt=pt||Dt}),h=yt(m,()=>{Ft(pt)})}else h=yt(x(e,Vo(150)),Ft);return f=setTimeout(()=>{S()},1200),j(c,!0),O("scrolling from index to",{behavior:q,index:ut,top:It},dt.DEBUG),{behavior:q,top:It}})),d),{scrollTargetReached:w,scrollToIndex:T,topListHeight:E}},ot(Lt,xt,Wt),{singleton:!0});function Vo(t){return e=>{const n=setTimeout(()=>{e(!1)},t);return o=>{o&&(e(!0),clearTimeout(n))}}}function Ne(t,e){t===0?e():requestAnimationFrame(()=>{Ne(t-1,e)})}function De(t,e){const n=e-1;return typeof t=="number"?t:t.index==="LAST"?n:t.index}const de=K(([{defaultItemSize:t,listRefresh:e,sizes:n},{scrollTop:o},{scrollTargetReached:r,scrollToIndex:s},{didMount:i}])=>{const l=v(!0),c=v(0),d=v(!0);return L(x(i,D(c),W(([m,I])=>I!==0),Bt(!1)),l),L(x(i,D(c),W(([m,I])=>I!==0),Bt(!1)),d),Y(x(at(e,i),D(l,n,t,d),W(([[,m],I,{sizeTree:p},T,w])=>m&&(!J(p)||Pe(T))&&!I&&!w),D(c)),([,m])=>{yt(r,()=>{j(d,!0)}),Ne(4,()=>{yt(o,()=>{j(l,!0)}),j(s,m)})}),{initialItemFinalLocationReached:d,initialTopMostItemIndex:c,scrolledToInitialItem:l}},ot(Lt,xt,ae,At),{singleton:!0});function Dn(t,e){return Math.abs(t-e)<1.01}const le="up",te="down",Go="none",Po={atBottom:!1,notAtBottomBecause:"NOT_SHOWING_LAST_ITEM",state:{offsetBottom:0,scrollHeight:0,scrollTop:0,viewportHeight:0}},Wo=0,fe=K(([{footerHeight:t,headerHeight:e,scrollBy:n,scrollContainerState:o,scrollTop:r,viewportHeight:s}])=>{const i=v(!1),l=v(!0),c=$(),d=$(),m=v(4),I=v(Wo),p=ht(x(ke(x(P(r),_t(1),Bt(!0)),x(P(r),_t(1),Bt(!1),an(100))),et()),!1),T=ht(x(ke(x(n,Bt(!0)),x(n,Bt(!1),an(200))),et()),!1);L(x(at(P(r),P(I)),B(([a,S])=>a<=S),et()),l),L(x(l,zt(50)),d);const w=vt(x(at(o,P(s),P(e),P(t),P(m)),Ot((a,[{scrollHeight:S,scrollTop:H},y,k,u,g])=>{const C=H+y-S>-g,z={scrollHeight:S,scrollTop:H,viewportHeight:y};if(C){let G,_;return H>a.state.scrollTop?(G="SCROLLED_DOWN",_=a.state.scrollTop-H):(G="SIZE_DECREASED",_=a.state.scrollTop-H||a.scrollTopDelta),{atBottom:!0,atBottomBecause:G,scrollTopDelta:_,state:z}}let O;return z.scrollHeight>a.state.scrollHeight?O="SIZE_INCREASED":y<a.state.viewportHeight?O="VIEWPORT_HEIGHT_DECREASING":H<a.state.scrollTop?O="SCROLLING_UPWARDS":O="NOT_FULLY_SCROLLED_TO_LAST_ITEM_BOTTOM",{atBottom:!1,notAtBottomBecause:O,state:z}},Po),et((a,S)=>a!==void 0&&a.atBottom===S.atBottom))),E=ht(x(o,Ot((a,{scrollHeight:S,scrollTop:H,viewportHeight:y})=>{if(!Dn(a.scrollHeight,S)){const k=S-(H+y)<1;return a.scrollTop!==H&&k?{changed:!0,jump:a.scrollTop-H,scrollHeight:S,scrollTop:H}:{changed:!0,jump:0,scrollHeight:S,scrollTop:H}}return{changed:!1,jump:0,scrollHeight:S,scrollTop:H}},{changed:!1,jump:0,scrollHeight:0,scrollTop:0}),W(a=>a.changed),B(a=>a.jump)),0);L(x(w,B(a=>a.atBottom)),i),L(x(i,zt(50)),c);const h=v(te);L(x(o,B(({scrollTop:a})=>a),et(),Ot((a,S)=>it(T)?{direction:a.direction,prevScrollTop:S}:{direction:S<a.prevScrollTop?le:te,prevScrollTop:S},{direction:te,prevScrollTop:0}),B(a=>a.direction)),h),L(x(o,zt(50),Bt(Go)),h);const f=v(0);return L(x(p,W(a=>!a),Bt(0)),f),L(x(r,zt(100),D(p),W(([a,S])=>S),Ot(([a,S],[H])=>[S,H],[0,0]),B(([a,S])=>S-a)),f),{atBottomState:w,atBottomStateChange:c,atBottomThreshold:m,atTopStateChange:d,atTopThreshold:I,isAtBottom:i,isAtTop:l,isScrolling:p,lastJumpDueToItemResize:E,scrollDirection:h,scrollVelocity:f}},ot(xt)),ce="top",ue="bottom",pn="none";function hn(t,e,n){return typeof t=="number"?n===le&&e===ce||n===te&&e===ue?t:0:n===le?e===ce?t.main:t.reverse:e===ue?t.main:t.reverse}function gn(t,e){return typeof t=="number"?t:t[e]??0}const $e=K(([{deviation:t,fixedHeaderHeight:e,headerHeight:n,scrollTop:o,viewportHeight:r}])=>{const s=$(),i=v(0),l=v(0),c=v(0),d=ht(x(at(P(o),P(r),P(n),P(s,se),P(c),P(i),P(e),P(t),P(l)),B(([m,I,p,[T,w],E,h,f,a,S])=>{const H=m-a,y=h+f,k=Math.max(p-H,0);let u=pn;const g=gn(S,ce),C=gn(S,ue);return T-=a,T+=p+f,w+=p+f,w-=a,T>m+y-g&&(u=le),w<m-k+I+C&&(u=te),u!==pn?[Math.max(H-p-hn(E,ce,u)-g,0),H-k-f+I+hn(E,ue,u)+C]:null}),W(m=>m!==null),et(se)),[0,0]);return{increaseViewportBy:l,listBoundary:s,overscan:c,topListHeight:i,visibleRange:d}},ot(xt),{singleton:!0});function Ao(t,e,n){if(ye(e)){const o=Mn(t,e);return[{index:Rt(e.groupOffsetTree,o)[0],offset:0,size:0},{data:n?.[0],index:o,offset:0,size:0}]}return[{data:n?.[0],index:t,offset:0,size:0}]}const Ee={bottom:0,firstItemIndex:0,items:[],offsetBottom:0,offsetTop:0,top:0,topItems:[],topListHeight:0,totalCount:0};function Se(t,e,n,o,r,s){const{lastIndex:i,lastOffset:l,lastSize:c}=r;let d=0,m=0;if(t.length>0){d=t[0].offset;const E=t[t.length-1];m=E.offset+E.size}const I=n-i,p=l+I*c+(I-1)*o,T=d,w=p-m;return{bottom:m,firstItemIndex:s,items:xn(t,r,s),offsetBottom:w,offsetTop:d,top:T,topItems:xn(e,r,s),topListHeight:e.reduce((E,h)=>h.size+E,0),totalCount:n}}function $n(t,e,n,o,r,s){let i=0;if(n.groupIndices.length>0)for(const m of n.groupIndices){if(m-i>=t)break;i++}const l=t+i,c=De(e,l),d=Array.from({length:l}).map((m,I)=>({data:s[I+c],index:I+c,offset:0,size:0}));return Se(d,[],l,r,n,o)}function xn(t,e,n){if(t.length===0)return[];if(!ye(e))return t.map(d=>({...d,index:d.index+n,originalIndex:d.index}));const o=t[0].index,r=t[t.length-1].index,s=[],i=Kt(e.groupOffsetTree,o,r);let l,c=0;for(const d of t){(!l||l.end<d.index)&&(l=i.shift(),c=e.groupIndices.indexOf(l.start));let m;d.index===l.start?m={index:c,type:"group"}:m={groupIndex:c,index:d.index-(c+1)+n},s.push({...m,data:d.data,offset:d.offset,originalIndex:d.index,size:d.size})}return s}function In(t,e){return t===void 0?0:typeof t=="number"?t:t[e]??0}const Nt=K(([{data:t,firstItemIndex:e,gap:n,sizes:o,totalCount:r},s,{listBoundary:i,topListHeight:l,visibleRange:c},{initialTopMostItemIndex:d,scrolledToInitialItem:m},{topListHeight:I},p,{didMount:T},{recalcInProgress:w}])=>{const E=v([]),h=v(0),f=$(),a=v(0);L(s.topItemsIndexes,E);const S=ht(x(at(T,w,P(c,se),P(r),P(o),P(d),m,P(E),P(e),P(n),P(a),t),W(([u,g,,C,,,,,,,,z])=>{const O=z!==void 0&&z.length!==C;return u&&!g&&!O}),B(([,,[u,g],C,z,O,G,_,Z,F,mt,q])=>{const Q=z,{offsetTree:gt,sizeTree:ut}=Q,It=it(h);if(C===0)return{...Ee,totalCount:C};if(u===0&&g===0)return It===0?{...Ee,totalCount:C}:$n(It,O,z,Z,F,q||[]);if(J(ut))return It>0?null:Se(Ao(De(O,C),Q,q),[],C,F,Q,Z);const Ft=[];if(_.length>0){const N=_[0],U=_[_.length-1];let rt=0;for(const tt of Kt(ut,N,U)){const X=tt.value,lt=Math.max(tt.start,N),St=Math.min(tt.end,U);for(let ct=lt;ct<=St;ct++)Ft.push({data:q?.[ct],index:ct,offset:rt,size:X}),rt+=X}}if(!G)return Se([],Ft,C,F,Q,Z);const pt=_.length>0?_[_.length-1]+1:0,Dt=Eo(gt,u,g,pt);if(Dt.length===0)return null;const Xt=C-1,Ht=we([],N=>{for(const U of Dt){const rt=U.value;let tt=rt.offset,X=U.start;const lt=rt.size;if(rt.offset<u){X+=Math.floor((u-rt.offset+F)/(lt+F));const ct=X-U.start;tt+=ct*lt+ct*F}X<pt&&(tt+=(pt-X)*lt,X=pt);const St=Math.min(U.end,Xt);for(let ct=X;ct<=St&&!(tt>=g);ct++)N.push({data:q?.[ct],index:ct,offset:tt,size:lt}),tt+=lt+F}}),Jt=In(mt,ce),R=In(mt,ue);if(Ht.length>0&&(Jt>0||R>0)){const N=Ht[0],U=Ht[Ht.length-1];if(Jt>0&&N.index>pt){const rt=Math.min(Jt,N.index-pt),tt=[];let X=N.offset;for(let lt=N.index-1;lt>=N.index-rt;lt--){const ct=Kt(ut,lt,lt)[0]?.value??N.size;X-=ct+F,tt.unshift({data:q?.[lt],index:lt,offset:X,size:ct})}Ht.unshift(...tt)}if(R>0&&U.index<Xt){const rt=Math.min(R,Xt-U.index);let tt=U.offset+U.size+F;for(let X=U.index+1;X<=U.index+rt;X++){const St=Kt(ut,X,X)[0]?.value??U.size;Ht.push({data:q?.[X],index:X,offset:tt,size:St}),tt+=St+F}}}return Se(Ht,Ft,C,F,Q,Z)}),W(u=>u!==null),et()),Ee);L(x(t,W(Pe),B(u=>u?.length)),r),L(x(S,B(u=>u.topListHeight)),I),L(I,l),L(x(S,B(u=>[u.top,u.bottom])),i),L(x(S,B(u=>u.items)),f);const H=vt(x(S,W(({items:u})=>u.length>0),D(r,t),W(([{items:u},g])=>u[u.length-1].originalIndex===g-1),B(([,u,g])=>[u-1,g]),et(se),B(([u])=>u))),y=vt(x(S,zt(200),W(({items:u,topItems:g})=>u.length>0&&u[0].originalIndex===g.length),B(({items:u})=>u[0].index),et())),k=vt(x(S,W(({items:u})=>u.length>0),B(({items:u})=>{let g=0,C=u.length-1;for(;u[g].type==="group"&&g<C;)g++;for(;u[C].type==="group"&&C>g;)C--;return{endIndex:u[C].index,startIndex:u[g].index}}),et(Wn)));return{endReached:H,initialItemCount:h,itemsRendered:f,listState:S,minOverscanItemCount:a,rangeChanged:k,startReached:y,topItemsIndexes:E,...p}},ot(Lt,_n,$e,de,ae,fe,At,je),{singleton:!0}),Un=K(([{fixedFooterHeight:t,fixedHeaderHeight:e,footerHeight:n,headerHeight:o},{listState:r}])=>{const s=$(),i=ht(x(at(n,t,o,e,r),B(([l,c,d,m,I])=>l+c+d+m+I.offsetBottom+I.bottom)),0);return L(P(i),s),{totalListHeight:i,totalListHeightChanged:s}},ot(xt,Nt),{singleton:!0}),Mo=K(([{viewportHeight:t},{totalListHeight:e}])=>{const n=v(!1),o=ht(x(at(n,t,e),W(([r])=>r),B(([,r,s])=>Math.max(0,r-s)),zt(0),et()),0);return{alignToBottom:n,paddingTopAddition:o}},ot(xt,Un),{singleton:!0}),Kn=K(()=>({context:v(null)})),jo=({itemBottom:t,itemTop:e,locationParams:{align:n,behavior:o,...r},viewportBottom:s,viewportTop:i})=>e<i?{...r,align:n??"start",...o!==void 0?{behavior:o}:{}}:t>s?{...r,align:n??"end",...o!==void 0?{behavior:o}:{}}:null,qn=K(([{gap:t,sizes:e,totalCount:n},{fixedFooterHeight:o,fixedHeaderHeight:r,headerHeight:s,scrollingInProgress:i,scrollTop:l,viewportHeight:c},{scrollToIndex:d}])=>{const m=$();return L(x(m,D(e,c,n,s,r,o,l),D(t),B(([[I,p,T,w,E,h,f,a],S])=>{const{calculateViewLocation:H=jo,done:y,...k}=I,u=jn(I,p,w-1),g=ie(u,p.offsetTree,S)+E+h,C=g+Rt(p.sizeTree,u)[1],z=a+h,O=a+T-f,G=H({itemBottom:C,itemTop:g,locationParams:k,viewportBottom:O,viewportTop:z});return G!==null?y&&yt(x(i,W(_=>!_),_t(it(i)?1:2)),y):y?.(),G}),W(I=>I!==null)),d),{scrollIntoView:m}},ot(Lt,xt,ae,Nt,Wt),{singleton:!0});function Sn(t){return t===!1?!1:t==="smooth"?"smooth":"auto"}const _o=(t,e)=>typeof t=="function"?Sn(t(e)):e&&Sn(t),No=K(([{listRefresh:t,totalCount:e,fixedItemSize:n,data:o},{atBottomState:r,isAtBottom:s},{scrollToIndex:i},{scrolledToInitialItem:l},{didMount:c,propsReady:d},{log:m},{scrollingInProgress:I},{context:p},{scrollIntoView:T}])=>{const w=v(!1),E=$();let h=null;function f(y){j(i,{align:"end",behavior:y,index:"LAST"})}Y(x(at(x(P(e),_t(1)),c),D(P(w),s,l,I),B(([[y,k],u,g,C,z])=>{let O=k&&C,G="auto";return O&&(G=_o(u,g||z),O=O&&G!==!1),{followOutputBehavior:G,shouldFollow:O,totalCount:y}}),W(({shouldFollow:y})=>y)),({followOutputBehavior:y,totalCount:k})=>{h!==null&&(h(),h=null),it(n)!==void 0?requestAnimationFrame(()=>{it(m)("following output to ",{totalCount:k},dt.DEBUG),f(y)}):h=yt(t,()=>{it(m)("following output to ",{totalCount:k},dt.DEBUG),f(y),h=null})});function a(y){const k=yt(r,u=>{y&&!u.atBottom&&u.notAtBottomBecause==="SIZE_INCREASED"&&h===null&&(it(m)("scrolling to bottom due to increased size",{},dt.DEBUG),f("auto"))});setTimeout(k,100)}Y(x(at(P(w),e,d),W(([y,,k])=>y!==!1&&k),Ot(({value:y},[,k])=>({refreshed:y===k,value:k}),{refreshed:!1,value:0}),W(({refreshed:y})=>y),D(w,e)),([,y])=>{it(l)&&a(y!==!1)}),Y(E,()=>{a(it(w)!==!1)}),Y(at(P(w),r),([y,k])=>{y!==!1&&!k.atBottom&&k.notAtBottomBecause==="VIEWPORT_HEIGHT_DECREASING"&&f("auto")});const S=v(null),H=$();return L(ke(x(P(o),B(y=>y?.length??0)),x(P(e))),H),Y(x(at(x(H,_t(1)),c),D(P(S),l,I,p),B(([[y,k],u,g,C,z])=>k&&g&&u?.({context:z,totalCount:y,scrollingInProgress:C})),W(y=>!!y),zt(0)),y=>{h!==null&&(h(),h=null),it(n)!==void 0?requestAnimationFrame(()=>{it(m)("scrolling into view",{}),j(T,y)}):h=yt(t,()=>{it(m)("scrolling into view",{}),j(T,y),h=null})}),{autoscrollToBottom:E,followOutput:w,scrollIntoViewOnChange:S}},ot(Lt,fe,ae,de,At,Wt,xt,Kn,qn)),Do=K(([{data:t,firstItemIndex:e,gap:n,sizes:o},{initialTopMostItemIndex:r},{initialItemCount:s,listState:i},{didMount:l}])=>(L(x(l,D(s),W(([,c])=>c!==0),D(r,o,e,n,t),B(([[,c],d,m,I,p,T=[]])=>$n(c,d,m,I,p,T))),i),{}),ot(Lt,de,Nt,At),{singleton:!0}),$o=K(([{didMount:t},{scrollTo:e},{listState:n}])=>{const o=v(0);return Y(x(t,D(o),W(([,r])=>r!==0),B(([,r])=>({top:r}))),r=>{yt(x(n,_t(1),W(s=>s.items.length>1)),()=>{requestAnimationFrame(()=>{j(e,r)})})}),{initialScrollTop:o}},ot(At,xt,Nt),{singleton:!0}),Yn=K(([{scrollVelocity:t}])=>{const e=v(!1),n=$(),o=v(!1);return L(x(t,D(o,e,n),W(([r,s])=>s!==!1&&s!==void 0),B(([r,s,i,l])=>{const{enter:c,exit:d}=s;if(i){if(d(r,l))return!1}else if(c(r,l))return!0;return i}),et()),e),Y(x(at(e,t,n),D(o)),([[r,s,i],l])=>{r&&l!==!1&&l!==void 0&&l.change&&l.change(s,i)}),{isSeeking:e,scrollSeekConfiguration:o,scrollSeekRangeChanged:n,scrollVelocity:t}},ot(fe),{singleton:!0}),Ue=K(([{scrollContainerState:t,scrollTo:e}])=>{const n=$(),o=$(),r=$(),s=v(!1),i=v(void 0);return L(x(at(n,o),B(([{scrollHeight:l,scrollTop:c,viewportHeight:d},{offsetTop:m}])=>({scrollHeight:l,scrollTop:Math.max(0,c-m),viewportHeight:d}))),t),L(x(e,D(o),B(([l,{offsetTop:c}])=>({...l,top:l.top+c}))),r),{customScrollParent:i,useWindowScroll:s,windowScrollContainerState:n,windowScrollTo:r,windowViewportRect:o}},ot(xt)),Uo=K(([{sizeRanges:t,sizes:e},{headerHeight:n,scrollTop:o},{initialTopMostItemIndex:r},{didMount:s},{useWindowScroll:i,windowScrollContainerState:l,windowViewportRect:c}])=>{const d=$(),m=v(void 0),I=v(null),p=v(null);return L(l,I),L(c,p),Y(x(d,D(e,o,i,I,p,n)),([T,w,E,h,f,a,S])=>{const H=Bo(w.sizeTree);h&&f!==null&&a!==null&&(E=f.scrollTop-a.offsetTop),E-=S,T({ranges:H,scrollTop:E})}),L(x(m,W(Pe),B(Ko)),r),L(x(s,D(m),W(([,T])=>T!==void 0),et(),B(([,T])=>T.ranges)),t),{getState:d,restoreStateFrom:m}},ot(Lt,xt,de,At,Ue));function Ko(t){return{align:"start",index:0,offset:t.scrollTop}}const qo=K(([{topItemsIndexes:t}])=>{const e=v(0);return L(x(e,W(n=>n>=0),B(n=>Array.from({length:n}).map((o,r)=>r))),t),{topItemCount:e}},ot(Nt));function Zn(t){let e=!1,n;return(()=>(e||(e=!0,n=t()),n))}const Yo=Zn(()=>/iP(ad|od|hone)/i.test(navigator.userAgent)&&/WebKit/i.test(navigator.userAgent)),Zo=K(([{deviation:t,scrollBy:e,scrollingInProgress:n,scrollTop:o},{isAtBottom:r,isScrolling:s,lastJumpDueToItemResize:i,scrollDirection:l},{listState:c},{beforeUnshiftWith:d,gap:m,shiftWithOffset:I,sizes:p},{log:T},{recalcInProgress:w}])=>{const E=vt(x(c,D(i),Ot(([,f,a,S],[{bottom:H,items:y,offsetBottom:k,totalCount:u},g])=>{const C=H+k;let z=0;return a===u&&f.length>0&&y.length>0&&(y[0].originalIndex===0&&f[0].originalIndex===0||(z=C-S,z!==0&&(z+=g))),[z,y,u,C]},[0,[],0,0]),W(([f])=>f!==0),D(o,l,n,r,T,w),W(([,f,a,S,,,H])=>!H&&!S&&f!==0&&a===le),B(([[f],,,,,a])=>(a("Upward scrolling compensation",{amount:f},dt.DEBUG),f))));function h(f){f>0?(j(e,{behavior:"auto",top:-f}),j(t,0)):(j(t,0),j(e,{behavior:"auto",top:-f}))}return Y(x(E,D(t,s)),([f,a,S])=>{S&&Yo()?j(t,a-f):h(-f)}),Y(x(at(ht(s,!1),t,w),W(([f,a,S])=>!f&&!S&&a!==0),B(([f,a])=>a),zt(1)),h),L(x(I,B(f=>({top:-f}))),e),Y(x(d,D(p,m),B(([f,{groupIndices:a,lastSize:S,sizeTree:H},y])=>{function k(O){return O*(S+y)}if(a.length===0)return k(f);let u=0;const g=re(H,0);let C=0,z=0;for(;C<f;){C++,u+=g;let O=a.length===z+1?1/0:a[z+1]-a[z]-1;C+O>f&&(u-=g,O=f-C+1),C+=O,u+=k(O),z++}return u})),f=>{j(t,f),requestAnimationFrame(()=>{j(e,{top:f}),requestAnimationFrame(()=>{j(t,0),j(w,!1)})})}),{deviation:t}},ot(xt,fe,Nt,Lt,Wt,je)),Xo=K(([t,e,n,o,r,s,i,l,c,d,m])=>({...t,...e,...n,...o,...r,...s,...i,...l,...c,...d,...m}),ot($e,Do,At,Yn,Un,$o,Mo,Ue,qn,Wt,Kn)),Xn=K(([{data:t,defaultItemSize:e,firstItemIndex:n,fixedItemSize:o,fixedGroupSize:r,gap:s,groupIndices:i,heightEstimates:l,itemSize:c,sizeRanges:d,sizes:m,statefulTotalCount:I,totalCount:p,trackItemSizes:T},{initialItemFinalLocationReached:w,initialTopMostItemIndex:E,scrolledToInitialItem:h},f,a,S,H,{scrollToIndex:y},k,{topItemCount:u},{groupCounts:g},C])=>{const{listState:z,minOverscanItemCount:O,topItemsIndexes:G,rangeChanged:_,...Z}=H;return L(_,C.scrollSeekRangeChanged),L(x(C.windowViewportRect,B(F=>F.visibleHeight)),f.viewportHeight),{data:t,defaultItemHeight:e,firstItemIndex:n,fixedItemHeight:o,fixedGroupHeight:r,gap:s,groupCounts:g,heightEstimates:l,initialItemFinalLocationReached:w,initialTopMostItemIndex:E,scrolledToInitialItem:h,sizeRanges:d,topItemCount:u,topItemsIndexes:G,totalCount:p,...S,groupIndices:i,itemSize:c,listState:z,minOverscanItemCount:O,scrollToIndex:y,statefulTotalCount:I,trackItemSizes:T,rangeChanged:_,...Z,...C,...f,sizes:m,...a}},ot(Lt,de,xt,Uo,No,Nt,ae,Zo,qo,_n,Xo));function Jo(t,e){const n={},o={};let r=0;const s=t.length;for(;r<s;)o[t[r]]=1,r+=1;for(const i in e)Object.hasOwn(o,i)||(n[i]=e[i]);return n}const ge=typeof document<"u"?b.useLayoutEffect:b.useEffect;function Ke(t,e,n){const o=Object.keys(e.required||{}),r=Object.keys(e.optional||{}),s=Object.keys(e.methods||{}),i=Object.keys(e.events||{}),l=b.createContext({});function c(f,a){f.propsReady!==void 0&&j(f.propsReady,!1);for(const S of o){const H=f[e.required[S]];j(H,a[S])}for(const S of r)if(S in a){const H=f[e.optional[S]];j(H,a[S])}f.propsReady!==void 0&&j(f.propsReady,!0)}function d(f){return s.reduce((a,S)=>(a[S]=H=>{const y=f[e.methods[S]];j(y,H)},a),{})}function m(f){return i.reduce((a,S)=>(a[S]=ho(f[e.events[S]]),a),{})}const I=b.forwardRef(function(a,S){const{children:H,...y}=a,[k]=b.useState(()=>we(xo(t),C=>{c(C,y)})),[u]=b.useState(un(m,k));ge(()=>{for(const C of i)C in y&&Y(u[C],y[C]);return()=>{Object.values(u).map(We)}},[y,u,k]),ge(()=>{c(k,y)}),b.useImperativeHandle(S,cn(d(k)));const g=n;return V.jsx(l.Provider,{value:k,children:n!==void 0?V.jsx(g,{...Jo([...o,...r,...i],y),children:H}):H})}),p=f=>{const a=b.useContext(l);return b.useCallback(S=>{j(a[f],S)},[a,f])},T=f=>{const S=b.useContext(l)[f],H=b.useCallback(y=>Y(S,y),[S]);return b.useSyncExternalStore(H,()=>it(S),()=>it(S))},w=f=>{const S=b.useContext(l)[f],[H,y]=b.useState(un(it,S));return ge(()=>Y(S,k=>{k!==H&&y(cn(k))}),[S,H]),H},E=b.version.startsWith("18")?T:w;return{Component:I,useEmitter:(f,a)=>{const H=b.useContext(l)[f];ge(()=>Y(H,a),[a,H])},useEmitterValue:E,usePublisher:p}}const me=b.createContext(void 0),qe=b.createContext(void 0),He="-webkit-sticky",Tn="sticky",Ye=Zn(()=>{if(typeof document>"u")return Tn;const t=document.createElement("div");return t.style.position=He,t.style.position===He?He:Tn}),Jn=typeof document<"u"?b.useLayoutEffect:b.useEffect;function Be(t){return"self"in t}function Qo(t){return"body"in t}function Qn(t,e,n,o=Yt,r,s){const i=b.useRef(null),l=b.useRef(null),c=b.useRef(null),d=b.useCallback(p=>{let T,w,E;const h=p.target;if(Qo(h)||Be(h)){const a=Be(h)?h:h.defaultView;E=s===!0?a.scrollX:a.scrollY,T=s===!0?a.document.documentElement.scrollWidth:a.document.documentElement.scrollHeight,w=s===!0?a.innerWidth:a.innerHeight}else E=s===!0?h.scrollLeft:h.scrollTop,T=s===!0?h.scrollWidth:h.scrollHeight,w=s===!0?h.offsetWidth:h.offsetHeight;const f=()=>{t({scrollHeight:T,scrollTop:Math.max(E,0),viewportHeight:w})};p.suppressFlushSync===!0?f():co.flushSync(f),l.current!==null&&(E===l.current||E<=0||E===T-w)&&(l.current=null,e(!0),c.current&&(clearTimeout(c.current),c.current=null))},[t,e,s]);b.useEffect(()=>{const p=r||i.current;return o(r||i.current),d({suppressFlushSync:!0,target:p}),p.addEventListener("scroll",d,{passive:!0}),()=>{o(null),p.removeEventListener("scroll",d)}},[i,d,n,o,r]);function m(p){const T=i.current;if(!T||(s===!0?"offsetWidth"in T&&T.offsetWidth===0:"offsetHeight"in T&&T.offsetHeight===0))return;const w=p.behavior==="smooth";let E,h,f;Be(T)?(h=Math.max(Et(T.document.documentElement,s===!0?"width":"height"),s===!0?T.document.documentElement.scrollWidth:T.document.documentElement.scrollHeight),E=s===!0?T.innerWidth:T.innerHeight,f=s===!0?window.scrollX:window.scrollY):(h=T[s===!0?"scrollWidth":"scrollHeight"],E=Et(T,s===!0?"width":"height"),f=T[s===!0?"scrollLeft":"scrollTop"]);const a=h-E;if(p.top=Math.ceil(Math.max(Math.min(a,p.top),0)),Dn(E,h)||p.top===f){t({scrollHeight:h,scrollTop:f,viewportHeight:E}),w&&e(!0);return}w?(l.current=p.top,c.current&&clearTimeout(c.current),c.current=setTimeout(()=>{c.current=null,l.current=null,e(!0)},1e3)):l.current=null,s===!0&&(p={...p.behavior!==void 0?{behavior:p.behavior}:{},left:p.top}),T.scrollTo(p)}function I(p){s===!0&&(p={...p.behavior!==void 0?{behavior:p.behavior}:{},...p.top!==void 0?{left:p.top}:{}}),i.current.scrollBy(p)}return{scrollByCallback:I,scrollerRef:i,scrollToCallback:m}}function Ze(t){return t}const tr=K(()=>{const t=v(l=>`Item ${l}`),e=v(l=>`Group ${l}`),n=v({}),o=v(Ze),r=v("div"),s=v(Yt),i=(l,c=null)=>ht(x(n,B(d=>d[l]),et()),c);return{components:n,computeItemKey:o,EmptyPlaceholder:i("EmptyPlaceholder"),FooterComponent:i("Footer"),GroupComponent:i("Group","div"),groupContent:e,HeaderComponent:i("Header"),HeaderFooterTag:r,ItemComponent:i("Item","div"),itemContent:t,ListComponent:i("List","div"),ScrollerComponent:i("Scroller","div"),scrollerRef:s,ScrollSeekPlaceholder:i("ScrollSeekPlaceholder"),TopItemListComponent:i("TopItemList")}}),er=K(([t,e])=>({...t,...e}),ot(Xn,tr)),nr=({height:t})=>V.jsx("div",{style:{height:t}}),or={overflowAnchor:"none",position:Ye(),zIndex:1},to={overflowAnchor:"none"},rr={...to,display:"inline-block",height:"100%"},vn=b.memo(function({showTopList:e=!1}){const n=A("listState"),o=Ct("sizeRanges"),r=A("useWindowScroll"),s=A("customScrollParent"),i=Ct("windowScrollContainerState"),l=Ct("scrollContainerState"),c=s||r?i:l,d=A("itemContent"),m=A("context"),I=A("groupContent"),p=A("trackItemSizes"),T=A("itemSize"),w=A("log"),E=Ct("gap"),h=A("horizontalDirection"),{callbackRef:f}=Ln(o,T,p,e?Yt:c,w,E,s,h,A("skipAnimationFrameInResizeObserver")),[a,S]=b.useState(0);Qe("deviation",F=>{a!==F&&S(F)});const H=A("EmptyPlaceholder"),y=A("ScrollSeekPlaceholder")??nr,k=A("ListComponent"),u=A("ItemComponent"),g=A("GroupComponent"),C=A("computeItemKey"),z=A("isSeeking"),O=A("groupIndices").length>0,G=A("alignToBottom"),_=A("initialItemFinalLocationReached"),Z=e?{}:{boxSizing:"border-box",...h?{display:"inline-block",height:"100%",marginLeft:a!==0?a:G?"auto":0,paddingLeft:n.offsetTop,paddingRight:n.offsetBottom,whiteSpace:"nowrap"}:{marginTop:a!==0?a:G?"auto":0,paddingBottom:n.offsetBottom,paddingTop:n.offsetTop},..._?{}:{visibility:"hidden"}};return!e&&n.totalCount===0&&H!==null&&H!==void 0?V.jsx(H,{...nt(H,m)}):V.jsx(k,{...nt(k,m),"data-testid":e?"virtuoso-top-item-list":"virtuoso-item-list",ref:f,style:Z,children:(e?n.topItems:n.items).map(F=>{const mt=F.originalIndex,q=C(mt+n.firstItemIndex,F.data,m);return z?b.createElement(y,{...nt(y,m),height:F.size,index:F.index,key:q,type:F.type||"item",...F.type==="group"?{}:{groupIndex:F.groupIndex}}):F.type==="group"?b.createElement(g,{...nt(g,m),"data-index":mt,"data-item-index":F.index,"data-known-size":F.size,key:q,style:or},I(F.index,m)):b.createElement(u,{...nt(u,m),...eo(u,F.data),"data-index":mt,"data-item-group-index":F.groupIndex,"data-item-index":F.index,"data-known-size":F.size,key:q,style:h?rr:to},O?d(F.index,F.groupIndex,F.data,m):d(F.index,F.data,m))})})}),sr={height:"100%",outline:"none",overflowY:"auto",position:"relative",WebkitOverflowScrolling:"touch"},ir={outline:"none",overflowX:"auto",position:"relative"},Zt=t=>({height:"100%",position:"absolute",top:0,width:"100%",...t?{display:"flex",flexDirection:"column"}:void 0}),lr={position:Ye(),top:0,width:"100%",zIndex:1};function nt(t,e){if(typeof t!="string")return{context:e}}function eo(t,e){return{item:typeof t=="string"?void 0:e}}const cr=b.memo(function(){const e=A("HeaderComponent"),n=Ct("headerHeight"),o=A("HeaderFooterTag"),r=kt(b.useMemo(()=>i=>{n(Et(i,"height"))},[n]),!0,A("skipAnimationFrameInResizeObserver")),s=A("context");return e!=null?V.jsx(o,{ref:r,children:V.jsx(e,{...nt(e,s)})}):null}),ur=b.memo(function(){const e=A("FooterComponent"),n=Ct("footerHeight"),o=A("HeaderFooterTag"),r=kt(b.useMemo(()=>i=>{n(Et(i,"height"))},[n]),!0,A("skipAnimationFrameInResizeObserver")),s=A("context");return e!=null?V.jsx(o,{ref:r,children:V.jsx(e,{...nt(e,s)})}):null});function Xe({useEmitter:t,useEmitterValue:e,usePublisher:n}){return b.memo(function({children:s,style:i,context:l,...c}){const d=n("scrollContainerState"),m=e("ScrollerComponent"),I=n("smoothScrollTargetReached"),p=e("scrollerRef"),T=e("horizontalDirection")||!1,{scrollByCallback:w,scrollerRef:E,scrollToCallback:h}=Qn(d,I,m,p,void 0,T);t("scrollTo",h),t("scrollBy",w);const f=T?ir:sr;return V.jsx(m,{"data-testid":"virtuoso-scroller","data-virtuoso-scroller":!0,ref:E,style:{...f,...i},tabIndex:0,...c,...nt(m,l),children:s})})}function Je({useEmitter:t,useEmitterValue:e,usePublisher:n}){return b.memo(function({children:s,style:i,context:l,...c}){const d=n("windowScrollContainerState"),m=e("ScrollerComponent"),I=n("smoothScrollTargetReached"),p=e("totalListHeight"),T=e("deviation"),w=e("customScrollParent"),E=b.useRef(null),h=e("scrollerRef"),{scrollByCallback:f,scrollerRef:a,scrollToCallback:S}=Qn(d,I,m,h,w);return Jn(()=>(a.current=w||E.current?.ownerDocument.defaultView,()=>{a.current=null}),[a,w]),t("windowScrollTo",S),t("scrollBy",f),V.jsx(m,{ref:E,"data-virtuoso-scroller":!0,style:{position:"relative",...i,...p!==0?{height:p+T}:void 0},...c,...nt(m,l),children:s})})}const ar=({children:t})=>{const e=b.useContext(me),n=Ct("viewportHeight"),o=Ct("fixedItemHeight"),r=A("alignToBottom"),s=A("horizontalDirection"),i=b.useMemo(()=>ne(n,c=>Et(c,s?"width":"height")),[n,s]),l=kt(i,!0,A("skipAnimationFrameInResizeObserver"));return b.useEffect(()=>{e&&(n(e.viewportHeight),o(e.itemHeight))},[e,n,o]),V.jsx("div",{"data-viewport-type":"element",ref:l,style:Zt(r),children:t})},dr=({children:t})=>{const e=b.useContext(me),n=Ct("windowViewportRect"),o=Ct("fixedItemHeight"),r=A("customScrollParent"),s=Me(n,r,A("skipAnimationFrameInResizeObserver")),i=A("alignToBottom");return b.useEffect(()=>{e&&(o(e.itemHeight),n({offsetTop:0,visibleHeight:e.viewportHeight,visibleWidth:100}))},[e,n,o]),V.jsx("div",{"data-viewport-type":"window",ref:s,style:Zt(i),children:t})},fr=({children:t})=>{const e=A("TopItemListComponent")??"div",n=A("headerHeight"),o={...lr,marginTop:`${n}px`},r=A("context");return V.jsx(e,{style:o,...nt(e,r),children:t})},mr=b.memo(function(e){const n=A("useWindowScroll"),o=A("topItemsIndexes").length>0,r=A("customScrollParent"),s=A("context"),i=r||n?hr:pr,l=r||n?dr:ar;return V.jsxs(i,{...e,context:s,children:[o&&V.jsx(fr,{children:V.jsx(vn,{showTopList:!0})}),V.jsxs(l,{children:[V.jsx(cr,{}),V.jsx(vn,{}),V.jsx(ur,{})]})]})}),{Component:no,useEmitter:Qe,useEmitterValue:A,usePublisher:Ct}=Ke(er,{optional:{restoreStateFrom:"restoreStateFrom",context:"context",followOutput:"followOutput",scrollIntoViewOnChange:"scrollIntoViewOnChange",itemContent:"itemContent",groupContent:"groupContent",overscan:"overscan",increaseViewportBy:"increaseViewportBy",minOverscanItemCount:"minOverscanItemCount",totalCount:"totalCount",groupCounts:"groupCounts",topItemCount:"topItemCount",firstItemIndex:"firstItemIndex",initialTopMostItemIndex:"initialTopMostItemIndex",components:"components",atBottomThreshold:"atBottomThreshold",atTopThreshold:"atTopThreshold",computeItemKey:"computeItemKey",defaultItemHeight:"defaultItemHeight",fixedGroupHeight:"fixedGroupHeight",fixedItemHeight:"fixedItemHeight",heightEstimates:"heightEstimates",itemSize:"itemSize",scrollSeekConfiguration:"scrollSeekConfiguration",headerFooterTag:"HeaderFooterTag",data:"data",initialItemCount:"initialItemCount",initialScrollTop:"initialScrollTop",alignToBottom:"alignToBottom",useWindowScroll:"useWindowScroll",customScrollParent:"customScrollParent",scrollerRef:"scrollerRef",logLevel:"logLevel",horizontalDirection:"horizontalDirection",skipAnimationFrameInResizeObserver:"skipAnimationFrameInResizeObserver"},methods:{scrollToIndex:"scrollToIndex",scrollIntoView:"scrollIntoView",scrollTo:"scrollTo",scrollBy:"scrollBy",autoscrollToBottom:"autoscrollToBottom",getState:"getState"},events:{isScrolling:"isScrolling",endReached:"endReached",startReached:"startReached",rangeChanged:"rangeChanged",atBottomStateChange:"atBottomStateChange",atTopStateChange:"atTopStateChange",totalListHeightChanged:"totalListHeightChanged",itemsRendered:"itemsRendered",groupIndices:"groupIndices"}},mr),pr=Xe({useEmitter:Qe,useEmitterValue:A,usePublisher:Ct}),hr=Je({useEmitter:Qe,useEmitterValue:A,usePublisher:Ct}),gr=no,xr=no,Ir=K(()=>{const t=v(d=>V.jsxs("td",{children:["Item $",d]})),e=v(null),n=v(d=>V.jsxs("td",{colSpan:1e3,children:["Group ",d]})),o=v(null),r=v(null),s=v({}),i=v(Ze),l=v(Yt),c=(d,m=null)=>ht(x(s,B(I=>I[d]),et()),m);return{components:s,computeItemKey:i,context:e,EmptyPlaceholder:c("EmptyPlaceholder"),FillerRow:c("FillerRow"),fixedFooterContent:r,fixedHeaderContent:o,itemContent:t,groupContent:n,ScrollerComponent:c("Scroller","div"),scrollerRef:l,ScrollSeekPlaceholder:c("ScrollSeekPlaceholder"),TableBodyComponent:c("TableBody","tbody"),TableComponent:c("Table","table"),TableFooterComponent:c("TableFoot","tfoot"),TableHeadComponent:c("TableHead","thead"),TableRowComponent:c("TableRow","tr"),GroupComponent:c("Group","tr")}}),Sr=K(([t,e])=>({...t,...e}),ot(Xn,Ir)),Tr=({height:t})=>V.jsx("tr",{children:V.jsx("td",{style:{height:t}})}),vr=({height:t})=>V.jsx("tr",{children:V.jsx("td",{style:{border:0,height:t,padding:0}})}),Cr={overflowAnchor:"none"},Cn={position:Ye(),zIndex:2,overflowAnchor:"none"},wn=b.memo(function({showTopList:e=!1}){const n=M("listState"),o=M("computeItemKey"),r=M("firstItemIndex"),s=M("context"),i=M("isSeeking"),l=M("fixedHeaderHeight"),c=M("groupIndices").length>0,d=M("itemContent"),m=M("groupContent"),I=M("ScrollSeekPlaceholder")??Tr,p=M("GroupComponent"),T=M("TableRowComponent"),w=(e?n.topItems:[]).reduce((h,f,a)=>(a===0?h.push(f.size):h.push(h[a-1]+f.size),h),[]);return(e?n.topItems:n.items).map(h=>{const f=h.originalIndex,a=o(f+r,h.data,s),S=e?f===0?0:w[f-1]:0;return i?b.createElement(I,{...nt(I,s),height:h.size,index:h.index,key:a,type:h.type||"item"}):h.type==="group"?b.createElement(p,{...nt(p,s),"data-index":f,"data-item-index":h.index,"data-known-size":h.size,key:a,style:{...Cn,top:l}},m(h.index,s)):b.createElement(T,{...nt(T,s),...eo(T,h.data),"data-index":f,"data-item-index":h.index,"data-known-size":h.size,"data-item-group-index":h.groupIndex,key:a,style:e?{...Cn,top:l+S}:Cr},c?d(h.index,h.groupIndex,h.data,s):d(h.index,h.data,s))})}),wr=b.memo(function(){const e=M("listState"),n=M("topItemsIndexes").length>0,o=bt("sizeRanges"),r=M("useWindowScroll"),s=M("customScrollParent"),i=bt("windowScrollContainerState"),l=bt("scrollContainerState"),c=s||r?i:l,d=M("trackItemSizes"),m=M("itemSize"),I=M("log"),{callbackRef:p,ref:T}=Ln(o,m,d,c,I,void 0,s,!1,M("skipAnimationFrameInResizeObserver")),[w,E]=b.useState(0);tn("deviation",O=>{w!==O&&(T.current.style.marginTop=`${O}px`,E(O))});const h=M("EmptyPlaceholder"),f=M("FillerRow")??vr,a=M("TableBodyComponent"),S=M("paddingTopAddition"),H=M("statefulTotalCount"),y=M("context");if(H===0&&h!==null&&h!==void 0)return V.jsx(h,{...nt(h,y)});const k=(n?e.topItems:[]).reduce((O,G)=>O+G.size,0),u=e.offsetTop+S+w-k,g=e.offsetBottom,C=u>0?V.jsx(f,{context:y,height:u},"padding-top"):null,z=g>0?V.jsx(f,{context:y,height:g},"padding-bottom"):null;return V.jsxs(a,{"data-testid":"virtuoso-item-list",ref:p,...nt(a,y),children:[C,n&&V.jsx(wn,{showTopList:!0}),V.jsx(wn,{}),z]})}),yr=({children:t})=>{const e=b.useContext(me),n=bt("viewportHeight"),o=bt("fixedItemHeight"),r=kt(b.useMemo(()=>ne(n,s=>Et(s,"height")),[n]),!0,M("skipAnimationFrameInResizeObserver"));return b.useEffect(()=>{e&&(n(e.viewportHeight),o(e.itemHeight))},[e,n,o]),V.jsx("div",{"data-viewport-type":"element",ref:r,style:Zt(!1),children:t})},br=({children:t})=>{const e=b.useContext(me),n=bt("windowViewportRect"),o=bt("fixedItemHeight"),r=M("customScrollParent"),s=Me(n,r,M("skipAnimationFrameInResizeObserver"));return b.useEffect(()=>{e&&(o(e.itemHeight),n({offsetTop:0,visibleHeight:e.viewportHeight,visibleWidth:100}))},[e,n,o]),V.jsx("div",{"data-viewport-type":"window",ref:s,style:Zt(!1),children:t})},Rr=b.memo(function(e){const n=M("useWindowScroll"),o=M("customScrollParent"),r=bt("fixedHeaderHeight"),s=bt("fixedFooterHeight"),i=M("fixedHeaderContent"),l=M("fixedFooterContent"),c=M("context"),d=kt(b.useMemo(()=>ne(r,a=>Et(a,"height")),[r]),!0,M("skipAnimationFrameInResizeObserver")),m=kt(b.useMemo(()=>ne(s,a=>Et(a,"height")),[s]),!0,M("skipAnimationFrameInResizeObserver")),I=o||n?Hr:Er,p=o||n?br:yr,T=M("TableComponent"),w=M("TableHeadComponent"),E=M("TableFooterComponent"),h=i?V.jsx(w,{ref:d,style:{position:"sticky",top:0,zIndex:2},...nt(w,c),children:i()},"TableHead"):null,f=l?V.jsx(E,{ref:m,style:{bottom:0,position:"sticky",zIndex:1},...nt(E,c),children:l()},"TableFoot"):null;return V.jsx(I,{...e,...nt(I,c),children:V.jsx(p,{children:V.jsxs(T,{style:{borderSpacing:0,overflowAnchor:"none"},...nt(T,c),children:[h,V.jsx(wr,{},"TableBody"),f]})})})}),{Component:oo,useEmitter:tn,useEmitterValue:M,usePublisher:bt}=Ke(Sr,{optional:{restoreStateFrom:"restoreStateFrom",context:"context",followOutput:"followOutput",firstItemIndex:"firstItemIndex",itemContent:"itemContent",groupContent:"groupContent",fixedHeaderContent:"fixedHeaderContent",fixedFooterContent:"fixedFooterContent",overscan:"overscan",increaseViewportBy:"increaseViewportBy",minOverscanItemCount:"minOverscanItemCount",totalCount:"totalCount",topItemCount:"topItemCount",initialTopMostItemIndex:"initialTopMostItemIndex",components:"components",groupCounts:"groupCounts",atBottomThreshold:"atBottomThreshold",atTopThreshold:"atTopThreshold",computeItemKey:"computeItemKey",defaultItemHeight:"defaultItemHeight",fixedGroupHeight:"fixedGroupHeight",fixedItemHeight:"fixedItemHeight",itemSize:"itemSize",scrollSeekConfiguration:"scrollSeekConfiguration",data:"data",initialItemCount:"initialItemCount",initialScrollTop:"initialScrollTop",alignToBottom:"alignToBottom",useWindowScroll:"useWindowScroll",customScrollParent:"customScrollParent",scrollerRef:"scrollerRef",logLevel:"logLevel"},methods:{scrollToIndex:"scrollToIndex",scrollIntoView:"scrollIntoView",scrollTo:"scrollTo",scrollBy:"scrollBy",getState:"getState"},events:{isScrolling:"isScrolling",endReached:"endReached",startReached:"startReached",rangeChanged:"rangeChanged",atBottomStateChange:"atBottomStateChange",atTopStateChange:"atTopStateChange",totalListHeightChanged:"totalListHeightChanged",itemsRendered:"itemsRendered",groupIndices:"groupIndices"}},Rr),Er=Xe({useEmitter:tn,useEmitterValue:M,usePublisher:bt}),Hr=Je({useEmitter:tn,useEmitterValue:M,usePublisher:bt}),Br=oo,Or=oo,yn={bottom:0,itemHeight:0,items:[],itemWidth:0,offsetBottom:0,offsetTop:0,top:0},kr={bottom:0,itemHeight:0,items:[{index:0}],itemWidth:0,offsetBottom:0,offsetTop:0,top:0},{ceil:bn,floor:ve,max:ee,min:Oe,round:Rn}=Math;function En(t,e,n){return Array.from({length:e-t+1}).map((o,r)=>({data:n===null?null:n[r+t],index:r+t}))}function Lr(t){return{...kr,items:t}}function xe(t,e){return t!==void 0&&t.width===e.width&&t.height===e.height}function zr(t,e){return t!==void 0&&t.column===e.column&&t.row===e.row}const Fr=K(([{increaseViewportBy:t,listBoundary:e,overscan:n,visibleRange:o},{footerHeight:r,headerHeight:s,scrollBy:i,scrollContainerState:l,scrollTo:c,scrollTop:d,smoothScrollTargetReached:m,viewportHeight:I},p,T,{didMount:w,propsReady:E},{customScrollParent:h,useWindowScroll:f,windowScrollContainerState:a,windowScrollTo:S,windowViewportRect:H},y])=>{const k=v(0),u=v(0),g=v(yn),C=v({height:0,width:0}),z=v({height:0,width:0}),O=$(),G=$(),_=v(0),Z=v(null),F=v({column:0,row:0}),mt=$(),q=$(),Q=v(!1),gt=v(0),ut=v(!0),It=v(!1),Ft=v(!1);Y(x(w,D(gt),W(([R,N])=>N!==0)),()=>{j(ut,!1)}),Y(x(at(w,ut,z,C,gt,It),W(([R,N,U,rt,,tt])=>R&&!N&&U.height!==0&&rt.height!==0&&!tt)),([,,,,R])=>{j(It,!0),Ne(1,()=>{j(O,R)}),yt(x(d),()=>{j(e,[0,0]),j(ut,!0)})}),L(x(q,W(R=>R!=null&&R.scrollTop>0),Bt(0)),u),Y(x(w,D(q),W(([,R])=>R!=null)),([,R])=>{R&&(j(C,R.viewport),j(z,R.item),j(F,R.gap),R.scrollTop>0&&(j(Q,!0),yt(x(d,_t(1)),N=>{j(Q,!1)}),j(c,{top:R.scrollTop})))}),L(x(C,B(({height:R})=>R)),I),L(x(at(P(C,xe),P(z,xe),P(F,(R,N)=>R!==void 0&&R.column===N.column&&R.row===N.row),P(d)),B(([R,N,U,rt])=>({gap:U,item:N,scrollTop:rt,viewport:R}))),mt),L(x(at(P(k),o,P(F,zr),P(z,xe),P(C,xe),P(Z),P(u),P(Q),P(ut),P(gt)),W(([,,,,,,,R])=>!R),B(([R,[N,U],rt,tt,X,lt,St,,ct,Vt])=>{const{column:Gt,row:Qt}=rt,{height:pe,width:be}=tt,{width:en}=X;if(St===0&&(R===0||en===0))return yn;if(be===0){const ln=De(Vt,R),lo=ln+Math.max(St-1,0);return Lr(En(ln,lo,lt))}const he=ro(en,be,Gt);let $t,Mt;ct?N===0&&U===0&&St>0?($t=0,Mt=St-1):($t=he*ve((N+Qt)/(pe+Qt)),Mt=he*bn((U+Qt)/(pe+Qt))-1,Mt=Oe(R-1,ee(Mt,he-1)),$t=Oe(Mt,ee(0,$t))):($t=0,Mt=-1);const nn=En($t,Mt,lt),{bottom:on,top:rn}=Hn(X,rt,tt,nn),sn=bn(R/he),io=sn*pe+(sn-1)*Qt-on;return{bottom:on,itemHeight:pe,items:nn,itemWidth:be,offsetBottom:io,offsetTop:rn,top:rn}})),g),L(x(Z,W(R=>R!==null),B(R=>R.length)),k),L(x(at(C,z,g,F),W(([R,N,{items:U}])=>U.length>0&&N.height!==0&&R.height!==0),B(([R,N,{items:U},rt])=>{const{bottom:tt,top:X}=Hn(R,rt,N,U);return[X,tt]}),et(se)),e);const pt=v(!1);L(x(d,D(pt),B(([R,N])=>N||R!==0)),pt);const Dt=vt(x(at(g,k),W(([{items:R}])=>R.length>0),D(pt),W(([[R,N],U])=>{const tt=R.items[R.items.length-1].index===N-1;return(U||R.bottom>0&&R.itemHeight>0&&R.offsetBottom===0&&R.items.length===N)&&tt}),B(([[,R]])=>R-1),et())),Xt=vt(x(P(g),W(({items:R})=>R.length>0&&R[0].index===0),Bt(0),et())),Ht=vt(x(P(g),D(Q),W(([{items:R},N])=>R.length>0&&!N),B(([{items:R}])=>({endIndex:R[R.length-1].index,startIndex:R[0].index})),et(Wn),zt(0)));L(Ht,T.scrollSeekRangeChanged),L(x(O,D(C,z,k,F),B(([R,N,U,rt,tt])=>{const X=Nn(R),{align:lt,behavior:St,offset:ct}=X;let Vt=X.index;Vt==="LAST"&&(Vt=rt-1),Vt=ee(0,Vt,Oe(rt-1,Vt));let Gt=Ge(N,tt,U,Vt);return lt==="end"?Gt=Rn(Gt-N.height+U.height):lt==="center"&&(Gt=Rn(Gt-N.height/2+U.height/2)),ct!==void 0&&ct!==0&&(Gt+=ct),{behavior:St,top:Gt}})),c);const Jt=ht(x(g,B(R=>R.offsetBottom+R.bottom)),0);return L(x(H,B(R=>({height:R.visibleHeight,width:R.visibleWidth}))),C),{customScrollParent:h,data:Z,deviation:_,footerHeight:r,gap:F,headerHeight:s,increaseViewportBy:t,initialItemCount:u,itemDimensions:z,overscan:n,restoreStateFrom:q,scrollBy:i,scrollContainerState:l,scrollHeight:G,scrollTo:c,scrollToIndex:O,scrollTop:d,smoothScrollTargetReached:m,totalCount:k,useWindowScroll:f,viewportDimensions:C,windowScrollContainerState:a,windowScrollTo:S,windowViewportRect:H,...T,gridState:g,horizontalDirection:Ft,initialTopMostItemIndex:gt,totalListHeight:Jt,...p,endReached:Dt,propsReady:E,rangeChanged:Ht,startReached:Xt,stateChanged:mt,stateRestoreInProgress:Q,...y}},ot($e,xt,fe,Yn,At,Ue,Wt));function ro(t,e,n){return ee(1,ve((t+n)/(ve(e)+n)))}function Hn(t,e,n,o){const{height:r}=n;if(r===void 0||o.length===0)return{bottom:0,top:0};const s=Ge(t,e,n,o[0].index);return{bottom:Ge(t,e,n,o[o.length-1].index)+r,top:s}}function Ge(t,e,n,o){const r=ro(t.width,n.width,e.column),s=ve(o/r),i=s*n.height+ee(0,s-1)*e.row;return i>0?i+e.row:i}const Vr=K(()=>{const t=v(I=>`Item ${I}`),e=v({}),n=v(null),o=v("virtuoso-grid-item"),r=v("virtuoso-grid-list"),s=v(Ze),i=v("div"),l=v(Yt),c=(I,p=null)=>ht(x(e,B(T=>T[I]),et()),p),d=v(!1),m=v(!1);return L(P(m),d),{components:e,computeItemKey:s,context:n,FooterComponent:c("Footer"),HeaderComponent:c("Header"),headerFooterTag:i,itemClassName:o,ItemComponent:c("Item","div"),itemContent:t,listClassName:r,ListComponent:c("List","div"),readyStateChanged:d,reportReadyState:m,ScrollerComponent:c("Scroller","div"),scrollerRef:l,ScrollSeekPlaceholder:c("ScrollSeekPlaceholder","div")}}),Gr=K(([t,e])=>({...t,...e}),ot(Fr,Vr)),Pr=b.memo(function(){const e=st("gridState"),n=st("listClassName"),o=st("itemClassName"),r=st("itemContent"),s=st("computeItemKey"),i=st("isSeeking"),l=wt("scrollHeight"),c=st("ItemComponent"),d=st("ListComponent"),m=st("ScrollSeekPlaceholder"),I=st("context"),p=wt("itemDimensions"),T=wt("gap"),w=st("log"),E=st("stateRestoreInProgress"),h=wt("reportReadyState"),f=kt(b.useMemo(()=>a=>{const S=a.parentElement.parentElement.scrollHeight;l(S);const H=a.firstChild;if(H!==null){const{height:y,width:k}=H.getBoundingClientRect();p({height:y,width:k})}T({column:Bn("column-gap",getComputedStyle(a).columnGap,w),row:Bn("row-gap",getComputedStyle(a).rowGap,w)})},[l,p,T,w]),!0,!1);return Jn(()=>{e.itemHeight>0&&e.itemWidth>0&&h(!0)},[e]),E?null:V.jsx(d,{className:n,ref:f,...nt(d,I),"data-testid":"virtuoso-item-list",style:{paddingBottom:e.offsetBottom,paddingTop:e.offsetTop},children:e.items.map(a=>{const S=s(a.index,a.data,I);return i?V.jsx(m,{...nt(m,I),height:e.itemHeight,index:a.index,width:e.itemWidth},S):b.createElement(c,{...nt(c,I),className:o,"data-index":a.index,key:S},r(a.index,a.data,I))})})}),Wr=b.memo(function(){const e=st("HeaderComponent"),n=wt("headerHeight"),o=st("headerFooterTag"),r=kt(b.useMemo(()=>i=>{n(Et(i,"height"))},[n]),!0,!1),s=st("context");return e!=null?V.jsx(o,{ref:r,children:V.jsx(e,{...nt(e,s)})}):null}),Ar=b.memo(function(){const e=st("FooterComponent"),n=wt("footerHeight"),o=st("headerFooterTag"),r=kt(b.useMemo(()=>i=>{n(Et(i,"height"))},[n]),!0,!1),s=st("context");return e!=null?V.jsx(o,{ref:r,children:V.jsx(e,{...nt(e,s)})}):null}),Mr=({children:t})=>{const e=b.useContext(qe),n=wt("itemDimensions"),o=wt("viewportDimensions"),r=kt(b.useMemo(()=>s=>{o(s.getBoundingClientRect())},[o]),!0,!1);return b.useEffect(()=>{e&&(o({height:e.viewportHeight,width:e.viewportWidth}),n({height:e.itemHeight,width:e.itemWidth}))},[e,o,n]),V.jsx("div",{ref:r,style:Zt(!1),children:t})},jr=({children:t})=>{const e=b.useContext(qe),n=wt("windowViewportRect"),o=wt("itemDimensions"),r=st("customScrollParent"),s=Me(n,r,!1);return b.useEffect(()=>{e&&(o({height:e.itemHeight,width:e.itemWidth}),n({offsetTop:0,visibleHeight:e.viewportHeight,visibleWidth:e.viewportWidth}))},[e,n,o]),V.jsx("div",{ref:s,style:Zt(!1),children:t})},_r=b.memo(function({...e}){const n=st("useWindowScroll"),o=st("customScrollParent"),r=o||n?$r:Dr,s=o||n?jr:Mr,i=st("context");return V.jsx(r,{...e,...nt(r,i),children:V.jsxs(s,{children:[V.jsx(Wr,{}),V.jsx(Pr,{}),V.jsx(Ar,{})]})})}),{Component:Nr,useEmitter:so,useEmitterValue:st,usePublisher:wt}=Ke(Gr,{optional:{context:"context",totalCount:"totalCount",overscan:"overscan",itemContent:"itemContent",components:"components",computeItemKey:"computeItemKey",data:"data",initialItemCount:"initialItemCount",scrollSeekConfiguration:"scrollSeekConfiguration",headerFooterTag:"headerFooterTag",listClassName:"listClassName",itemClassName:"itemClassName",useWindowScroll:"useWindowScroll",customScrollParent:"customScrollParent",scrollerRef:"scrollerRef",logLevel:"logLevel",restoreStateFrom:"restoreStateFrom",initialTopMostItemIndex:"initialTopMostItemIndex",increaseViewportBy:"increaseViewportBy"},methods:{scrollTo:"scrollTo",scrollBy:"scrollBy",scrollToIndex:"scrollToIndex"},events:{isScrolling:"isScrolling",endReached:"endReached",startReached:"startReached",rangeChanged:"rangeChanged",atBottomStateChange:"atBottomStateChange",atTopStateChange:"atTopStateChange",stateChanged:"stateChanged",readyStateChanged:"readyStateChanged"}},_r),Dr=Xe({useEmitter:so,useEmitterValue:st,usePublisher:wt}),$r=Je({useEmitter:so,useEmitterValue:st,usePublisher:wt});function Bn(t,e,n){return e!=="normal"&&e?.endsWith("px")!==!0&&n(`${t} was not resolved to pixel value correctly`,e,dt.WARN),e==="normal"?0:parseInt(e??"0",10)}const Ur=Nr;exports.GroupedTableVirtuoso=Or;exports.GroupedVirtuoso=xr;exports.LogLevel=dt;exports.TableVirtuoso=Br;exports.Virtuoso=gr;exports.VirtuosoGrid=Ur;exports.VirtuosoGridMockContext=qe;exports.VirtuosoMockContext=me;
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const V=require("react/jsx-runtime"),b=require("react"),co=require("react-dom"),Ce=0,Pt=1,qt=2,On=4;function cn(t){return()=>t}function uo(t){t()}function ne(t,e){return n=>t(e(n))}function un(t,e){return()=>t(e)}function ao(t,e){return n=>t(e,n)}function Pe(t){return t!==void 0}function fo(...t){return()=>{t.map(uo)}}function Yt(){}function we(t,e){return e(t),t}function mo(t,e){return e(t)}function ot(...t){return t}function Y(t,e){return t(Pt,e)}function j(t,e){t(Ce,e)}function We(t){t(qt)}function it(t){return t(On)}function L(t,e){return Y(t,ao(e,Ce))}function yt(t,e){const n=t(Pt,o=>{n(),e(o)});return n}function an(t){let e,n;return o=>r=>{e=r,n&&clearTimeout(n),n=setTimeout(()=>{o(e)},t)}}function kn(t,e){return t===e}function et(t=kn){let e;return n=>o=>{t(e,o)||(e=o,n(o))}}function W(t){return e=>n=>{t(n)&&e(n)}}function B(t){return e=>ne(e,t)}function Bt(t){return e=>()=>{e(t)}}function x(t,...e){const n=po(...e);return((o,r)=>{switch(o){case qt:We(t);return;case Pt:return Y(t,n(r))}})}function Ot(t,e){return n=>o=>{n(e=t(e,o))}}function _t(t){return e=>n=>{t>0?t--:e(n)}}function zt(t){let e=null,n;return o=>r=>{e=r,!n&&(n=setTimeout(()=>{n=void 0,o(e)},t))}}function D(...t){const e=new Array(t.length);let n=0,o=null;const r=2**t.length-1;return t.forEach((s,i)=>{const l=2**i;Y(s,c=>{const d=n;n|=l,e[i]=c,d!==r&&n===r&&o&&(o(),o=null)})}),s=>i=>{const l=()=>{s([i].concat(e))};n===r?l():o=l}}function po(...t){return e=>t.reduceRight(mo,e)}function ho(t){let e,n;const o=()=>e?.();return function(r,s){switch(r){case Pt:return s?n===s?void 0:(o(),n=s,e=Y(t,s),e):(o(),Yt);case qt:o(),n=null;return}}}function v(t){let e=t;const n=$();return((o,r)=>{switch(o){case Ce:e=r;break;case Pt:{r(e);break}case On:return e}return n(o,r)})}function ht(t,e){return we(v(e),n=>L(t,n))}function $(){const t=[];return((e,n)=>{switch(e){case Ce:t.slice().forEach(o=>{o(n)});return;case qt:t.splice(0,t.length);return;case Pt:return t.push(n),()=>{const o=t.indexOf(n);o>-1&&t.splice(o,1)}}})}function vt(t){return we($(),e=>L(t,e))}function K(t,e=[],{singleton:n}={singleton:!0}){return{constructor:t,dependencies:e,id:go(),singleton:n}}const go=()=>Symbol();function xo(t){const e=new Map,n=({constructor:o,dependencies:r,id:s,singleton:i})=>{if(i&&e.has(s))return e.get(s);const l=o(r.map(c=>n(c)));return i&&e.set(s,l),l};return n(t)}function at(...t){const e=$(),n=new Array(t.length);let o=0;const r=2**t.length-1;return t.forEach((s,i)=>{const l=2**i;Y(s,c=>{n[i]=c,o|=l,o===r&&j(e,n)})}),function(s,i){switch(s){case qt:{We(e);return}case Pt:return o===r&&i(n),Y(e,i)}}}function P(t,e=kn){return x(t,et(e))}function ke(...t){return function(e,n){switch(e){case qt:return;case Pt:return fo(...t.map(o=>Y(o,n)))}}}const dt={DEBUG:0,INFO:1,WARN:2,ERROR:3},Io={[dt.DEBUG]:"debug",[dt.ERROR]:"error",[dt.INFO]:"log",[dt.WARN]:"warn"},So=()=>typeof globalThis>"u"?window:globalThis,Wt=K(()=>{const t=v(dt.ERROR);return{log:v((n,o,r=dt.INFO)=>{const s=So().VIRTUOSO_LOG_LEVEL??it(t);r>=s&&console[Io[r]]("%creact-virtuoso: %c%s %o","color: #0253b3; font-weight: bold","color: initial",n,o)}),logLevel:t}},[],{singleton:!0});function kt(t,e,n){return Ae(t,e,n).callbackRef}function Ae(t,e,n){const o=b.useRef(null);let r=i=>{};const s=b.useMemo(()=>typeof ResizeObserver<"u"?new ResizeObserver(i=>{const l=()=>{const c=i[0].target;c.offsetParent!==null&&t(c)};n?l():requestAnimationFrame(l)}):null,[t,n]);return r=i=>{i&&e?(s?.observe(i),o.current=i):(o.current&&s?.unobserve(o.current),o.current=null)},{callbackRef:r,ref:o}}function Ln(t,e,n,o,r,s,i,l,c){const d=b.useCallback(m=>{const I=To(m.children,e,l?"offsetWidth":"offsetHeight",r);let p=m.parentElement;for(;p.dataset.virtuosoScroller===void 0;)p=p.parentElement;const T=p.lastElementChild.dataset.viewportType==="window";let w;T&&(w=p.ownerDocument.defaultView);const E=i?l?i.scrollLeft:i.scrollTop:T?l?w.scrollX||w.document.documentElement.scrollLeft:w.scrollY||w.document.documentElement.scrollTop:l?p.scrollLeft:p.scrollTop,h=i?l?i.scrollWidth:i.scrollHeight:T?l?w.document.documentElement.scrollWidth:w.document.documentElement.scrollHeight:l?p.scrollWidth:p.scrollHeight,f=i?l?i.offsetWidth:i.offsetHeight:T?l?w.innerWidth:w.innerHeight:l?p.offsetWidth:p.offsetHeight;o({scrollHeight:h,scrollTop:Math.max(E,0),viewportHeight:f}),s?.(l?dn("column-gap",getComputedStyle(m).columnGap,r):dn("row-gap",getComputedStyle(m).rowGap,r)),I!==null&&t(I)},[t,e,r,s,i,o,l]);return Ae(d,n,c)}function To(t,e,n,o){const r=t.length;if(r===0)return null;const s=[];for(let i=0;i<r;i++){const l=t.item(i);if(l.dataset.index===void 0)continue;const c=parseInt(l.dataset.index),d=parseFloat(l.dataset.knownSize),m=e(l,n);if(m===0&&o("Zero-sized element, this should not happen",{child:l},dt.ERROR),m===d)continue;const I=s[s.length-1];s.length===0||I.size!==m||I.endIndex!==c-1?s.push({endIndex:c,size:m,startIndex:c}):s[s.length-1].endIndex++}return s}function dn(t,e,n){return e!=="normal"&&e?.endsWith("px")!==!0&&n(`${t} was not resolved to pixel value correctly`,e,dt.WARN),e==="normal"?0:parseInt(e??"0",10)}function Me(t,e,n){const o=b.useRef(null),r=b.useCallback(c=>{if(!c?.offsetParent)return;const d=c.getBoundingClientRect(),m=d.width;let I,p;if(e){const T=e.getBoundingClientRect(),w=d.top-T.top;p=T.height-Math.max(0,w),I=w+e.scrollTop}else{const T=i.current.ownerDocument.defaultView;p=T.innerHeight-Math.max(0,d.top),I=d.top+T.scrollY}o.current={listHeight:d.height,offsetTop:I,visibleHeight:p,visibleWidth:m},t(o.current)},[t,e]),{callbackRef:s,ref:i}=Ae(r,!0,n),l=b.useCallback(()=>{r(i.current)},[r,i]);return b.useEffect(()=>{if(e){e.addEventListener("scroll",l);const d=new ResizeObserver(()=>{requestAnimationFrame(l)});return d.observe(e),()=>{e.removeEventListener("scroll",l),d.unobserve(e)}}const c=i.current?.ownerDocument.defaultView;return c?.addEventListener("scroll",l),c?.addEventListener("resize",l),()=>{c?.removeEventListener("scroll",l),c?.removeEventListener("resize",l)}},[l,e,i]),s}const xt=K(()=>{const t=$(),e=$(),n=v(0),o=$(),r=v(0),s=$(),i=$(),l=v(0),c=v(0),d=v(0),m=v(0),I=$(),p=$(),T=v(!1),w=v(!1),E=v(!1);return L(x(t,B(({scrollTop:h})=>h)),e),L(x(t,B(({scrollHeight:h})=>h)),i),L(e,r),{deviation:n,fixedFooterHeight:d,fixedHeaderHeight:c,footerHeight:m,headerHeight:l,horizontalDirection:w,scrollBy:p,scrollContainerState:t,scrollHeight:i,scrollingInProgress:T,scrollTo:I,scrollTop:e,skipAnimationFrameInResizeObserver:E,smoothScrollTargetReached:o,statefulScrollTop:r,viewportHeight:s}},[],{singleton:!0}),oe={lvl:0};function zn(t,e){const n=t.length;if(n===0)return[];let{index:o,value:r}=e(t[0]);const s=[];for(let i=1;i<n;i++){const{index:l,value:c}=e(t[i]);s.push({end:l-1,start:o,value:r}),o=l,r=c}return s.push({end:1/0,start:o,value:r}),s}function J(t){return t===oe}function re(t,e){if(!J(t))return e===t.k?t.v:e<t.k?re(t.l,e):re(t.r,e)}function Rt(t,e,n="k"){if(J(t))return[-1/0,void 0];if(Number(t[n])===e)return[t.k,t.v];if(Number(t[n])<e){const o=Rt(t.r,e,n);return o[0]===-1/0?[t.k,t.v]:o}return Rt(t.l,e,n)}function Tt(t,e,n){return J(t)?Gn(e,n,1):e===t.k?ft(t,{k:e,v:n}):e<t.k?fn(ft(t,{l:Tt(t.l,e,n)})):fn(ft(t,{r:Tt(t.r,e,n)}))}function Ut(){return oe}function Kt(t,e,n){if(J(t))return[];const o=Rt(t,e)[0];return vo(ze(t,o,n))}function Le(t,e){if(J(t))return oe;const{k:n,l:o,r}=t;if(e===n){if(J(o))return r;if(J(r))return o;const[s,i]=Vn(o);return Ie(ft(t,{k:s,l:Fn(o),v:i}))}return e<n?Ie(ft(t,{l:Le(o,e)})):Ie(ft(t,{r:Le(r,e)}))}function jt(t){return J(t)?[]:[...jt(t.l),{k:t.k,v:t.v},...jt(t.r)]}function ze(t,e,n){if(J(t))return[];const{k:o,l:r,r:s,v:i}=t;let l=[];return o>e&&(l=l.concat(ze(r,e,n))),o>=e&&o<=n&&l.push({k:o,v:i}),o<=n&&(l=l.concat(ze(s,e,n))),l}function Ie(t){const{l:e,lvl:n,r:o}=t;if(o.lvl>=n-1&&e.lvl>=n-1)return t;if(n>o.lvl+1){if(Re(e))return Pn(ft(t,{lvl:n-1}));if(!J(e)&&!J(e.r))return ft(e.r,{l:ft(e,{r:e.r.l}),lvl:n,r:ft(t,{l:e.r.r,lvl:n-1})});throw new Error("Unexpected empty nodes")}if(Re(t))return Fe(ft(t,{lvl:n-1}));if(!J(o)&&!J(o.l)){const r=o.l,s=Re(r)?o.lvl-1:o.lvl;return ft(r,{l:ft(t,{lvl:n-1,r:r.l}),lvl:r.lvl+1,r:Fe(ft(o,{l:r.r,lvl:s}))})}throw new Error("Unexpected empty nodes")}function ft(t,e){return Gn(e.k!==void 0?e.k:t.k,e.v!==void 0?e.v:t.v,e.lvl!==void 0?e.lvl:t.lvl,e.l!==void 0?e.l:t.l,e.r!==void 0?e.r:t.r)}function Fn(t){return J(t.r)?t.l:Ie(ft(t,{r:Fn(t.r)}))}function Re(t){return J(t)||t.lvl>t.r.lvl}function Vn(t){return J(t.r)?[t.k,t.v]:Vn(t.r)}function Gn(t,e,n,o=oe,r=oe){return{k:t,l:o,lvl:n,r,v:e}}function fn(t){return Fe(Pn(t))}function Pn(t){const{l:e}=t;return!J(e)&&e.lvl===t.lvl?ft(e,{r:ft(t,{l:e.r})}):t}function Fe(t){const{lvl:e,r:n}=t;return!J(n)&&!J(n.r)&&n.lvl===e&&n.r.lvl===e?ft(n,{l:ft(t,{r:n.l}),lvl:e+1}):t}function vo(t){return zn(t,({k:e,v:n})=>({index:e,value:n}))}function Wn(t,e){return!!(t&&t.startIndex===e.startIndex&&t.endIndex===e.endIndex)}function se(t,e){return!!(t&&t[0]===e[0]&&t[1]===e[1])}const je=K(()=>({recalcInProgress:v(!1)}),[],{singleton:!0});function An(t,e,n){return t[Te(t,e,n)]}function Te(t,e,n,o=0){let r=t.length-1;for(;o<=r;){const s=Math.floor((o+r)/2),i=t[s],l=n(i,e);if(l===0)return s;if(l===-1){if(r-o<2)return s-1;r=s-1}else{if(r===o)return s;o=s+1}}throw new Error(`Failed binary finding record in array - ${t.join(",")}, searched for ${e}`)}function Co(t,e,n,o){const r=Te(t,e,o),s=Te(t,n,o,r);return t.slice(r,s+1)}function Et(t,e){return Math.round(t.getBoundingClientRect()[e])}function ye(t){return!J(t.groupOffsetTree)}function _e({index:t},e){return e===t?0:e<t?-1:1}function wo(){return{groupIndices:[],groupOffsetTree:Ut(),lastIndex:0,lastOffset:0,lastSize:0,offsetTree:[],sizeTree:Ut()}}function yo(t,e){let n=J(t)?0:1/0;for(const o of e){const{endIndex:r,size:s,startIndex:i}=o;if(n=Math.min(n,i),J(t)){t=Tt(t,0,s);continue}const l=Kt(t,i-1,r+1);if(l.some(ko(o)))continue;let c=!1,d=!1;for(const{end:m,start:I,value:p}of l)c?(r>=I||s===p)&&(t=Le(t,I)):(d=p!==s,c=!0),m>r&&r>=I&&p!==s&&(t=Tt(t,r+1,p));d&&(t=Tt(t,i,s))}return[t,n]}function bo(t){return typeof t.groupIndex<"u"}function Ro({offset:t},e){return e===t?0:e<t?-1:1}function ie(t,e,n){if(e.length===0)return 0;const{index:o,offset:r,size:s}=An(e,t,_e),i=t-o,l=s*i+(i-1)*n+r;return l>0?l+n:l}function Mn(t,e){if(!ye(e))return t;let n=0;for(;e.groupIndices[n]<=t+n;)n++;return t+n}function jn(t,e,n){if(bo(t))return e.groupIndices[t.groupIndex]+1;const o=t.index==="LAST"?n:t.index;let r=Mn(o,e);return r=Math.max(0,r,Math.min(n,r)),r}function Eo(t,e,n,o=0){return o>0&&(e=Math.max(e,An(t,o,_e).offset)),zn(Co(t,e,n,Ro),Oo)}function Ho(t,[e,n,o,r]){e.length>0&&o("received item sizes",e,dt.DEBUG);const s=t.sizeTree;let i=s,l=0;if(n.length>0&&J(s)&&e.length===2){const p=e[0].size,T=e[1].size;i=n.reduce((w,E)=>Tt(Tt(w,E,p),E+1,T),i)}else[i,l]=yo(i,e);if(i===s)return t;const{lastIndex:c,lastOffset:d,lastSize:m,offsetTree:I}=Ve(t.offsetTree,l,i,r);return{groupIndices:n,groupOffsetTree:n.reduce((p,T)=>Tt(p,T,ie(T,I,r)),Ut()),lastIndex:c,lastOffset:d,lastSize:m,offsetTree:I,sizeTree:i}}function Bo(t){return jt(t).map(({k:e,v:n},o,r)=>{const s=r[o+1];return{endIndex:s!==void 0?s.k-1:1/0,size:n,startIndex:e}})}function mn(t,e){let n=0,o=0;for(;n<t;)n+=e[o+1]-e[o]-1,o++;return o-(n===t?0:1)}function Ve(t,e,n,o){let r=t,s=0,i=0,l=0,c=0;if(e!==0){c=Te(r,e-1,_e),l=r[c].offset;const m=Rt(n,e-1);s=m[0],i=m[1],r.length&&r[c].size===Rt(n,e)[1]&&(c-=1),r=r.slice(0,c+1)}else r=[];for(const{start:d,value:m}of Kt(n,e,1/0)){const I=d-s,p=I*i+l+I*o;r.push({index:d,offset:p,size:m}),s=d,l=p,i=m}return{lastIndex:s,lastOffset:l,lastSize:i,offsetTree:r}}function Oo(t){return{index:t.index,value:t}}function ko(t){const{endIndex:e,size:n,startIndex:o}=t;return r=>r.start===o&&(r.end===e||r.end===1/0)&&r.value===n}const Lo={offsetHeight:"height",offsetWidth:"width"},Lt=K(([{log:t},{recalcInProgress:e}])=>{const n=$(),o=$(),r=ht(o,0),s=$(),i=$(),l=v(0),c=v([]),d=v(void 0),m=v(void 0),I=v(void 0),p=v(void 0),T=v((u,g)=>Et(u,Lo[g])),w=v(void 0),E=v(0),h=wo(),f=ht(x(n,D(c,t,E),Ot(Ho,h),et()),h),a=ht(x(c,et(),Ot((u,g)=>({current:g,prev:u.current}),{current:[],prev:[]}),B(({prev:u})=>u)),[]);L(x(c,W(u=>u.length>0),D(f,E),B(([u,g,C])=>{const z=u.reduce((O,G,_)=>Tt(O,G,ie(G,g.offsetTree,C)||_),Ut());return{...g,groupIndices:u,groupOffsetTree:z}})),f),L(x(o,D(f),W(([u,{lastIndex:g}])=>u<g),B(([u,{lastIndex:g,lastSize:C}])=>[{endIndex:g,size:C,startIndex:u}])),n),L(d,m);const S=ht(x(d,B(u=>u===void 0)),!0);L(x(m,W(u=>u!==void 0&&J(it(f).sizeTree)),B(u=>{const g=it(I),C=it(c).length>0;return g!==void 0&&g!==0?C?[{endIndex:0,size:g,startIndex:0},{endIndex:1,size:u,startIndex:1}]:[]:[{endIndex:0,size:u,startIndex:0}]})),n),L(x(p,W(u=>u!==void 0&&u.length>0&&J(it(f).sizeTree)),B(u=>{const g=[];let C=u[0],z=0;for(let O=1;O<u.length;O++){const G=u[O];G!==C&&(g.push({endIndex:O-1,size:C,startIndex:z}),C=G,z=O)}return g.push({endIndex:u.length-1,size:C,startIndex:z}),g})),n),L(x(c,D(I,m),W(([,u,g])=>u!==void 0&&g!==void 0),B(([u,g,C])=>{const z=[];for(let O=0;O<u.length;O++){const G=u[O],_=u[O+1];z.push({startIndex:G,endIndex:G,size:g}),_!==void 0&&z.push({startIndex:G+1,endIndex:_-1,size:C})}return z})),n);const H=vt(x(n,D(f),Ot(({sizes:u},[g,C])=>({changed:C!==u,sizes:C}),{changed:!1,sizes:h}),B(u=>u.changed)));Y(x(l,Ot((u,g)=>({diff:u.prev-g,prev:g}),{diff:0,prev:0}),B(u=>u.diff)),u=>{const{groupIndices:g}=it(f);if(u>0)j(e,!0),j(s,u+mn(u,g));else if(u<0){const C=it(a);C.length>0&&(u-=mn(-u,C)),j(i,u)}}),Y(x(l,D(t)),([u,g])=>{u<0&&g("`firstItemIndex` prop should not be set to less than zero. If you don't know the total count, just use a very high value",{firstItemIndex:l},dt.ERROR)});const y=vt(s);L(x(s,D(f),B(([u,g])=>{const C=g.groupIndices.length>0,z=[],O=g.lastSize;if(C){const G=re(g.sizeTree,0);let _=0,Z=0;for(;_<u;){const q=g.groupIndices[Z],Q=g.groupIndices.length===Z+1?1/0:g.groupIndices[Z+1]-q-1;z.push({endIndex:q,size:G,startIndex:q}),z.push({endIndex:q+1+Q-1,size:O,startIndex:q+1}),Z++,_+=Q+1}const F=jt(g.sizeTree);return _!==u&&F.shift(),F.reduce((q,{k:Q,v:gt})=>{let ut=q.ranges;return q.prevSize!==0&&(ut=[...q.ranges,{endIndex:Q+u-1,size:q.prevSize,startIndex:q.prevIndex}]),{prevIndex:Q+u,prevSize:gt,ranges:ut}},{prevIndex:u,prevSize:0,ranges:z}).ranges}return jt(g.sizeTree).reduce((G,{k:_,v:Z})=>({prevIndex:_+u,prevSize:Z,ranges:[...G.ranges,{endIndex:_+u-1,size:G.prevSize,startIndex:G.prevIndex}]}),{prevIndex:0,prevSize:O,ranges:[]}).ranges})),n);const k=vt(x(i,D(f,E),B(([u,{offsetTree:g},C])=>{const z=-u;return ie(z,g,C)})));return L(x(i,D(f,E),B(([u,g,C])=>{if(g.groupIndices.length>0){if(J(g.sizeTree))return g;let G=Ut();const _=it(a);let Z=0,F=0,mt=0;for(;Z<-u;){mt=_[F];const Q=_[F+1]-mt-1;F++,Z+=Q+1}if(G=jt(g.sizeTree).reduce((Q,{k:gt,v:ut})=>Tt(Q,Math.max(0,gt+u),ut),G),Z!==-u){const Q=re(g.sizeTree,mt);G=Tt(G,0,Q);const gt=Rt(g.sizeTree,-u+1)[1];G=Tt(G,1,gt)}return{...g,sizeTree:G,...Ve(g.offsetTree,0,G,C)}}const O=jt(g.sizeTree).reduce((G,{k:_,v:Z})=>Tt(G,Math.max(0,_+u),Z),Ut());return{...g,sizeTree:O,...Ve(g.offsetTree,0,O,C)}})),f),{beforeUnshiftWith:y,data:w,defaultItemSize:m,firstItemIndex:l,fixedItemSize:d,fixedGroupSize:I,gap:E,groupIndices:c,heightEstimates:p,itemSize:T,listRefresh:H,shiftWith:i,shiftWithOffset:k,sizeRanges:n,sizes:f,statefulTotalCount:r,totalCount:o,trackItemSizes:S,unshiftWith:s}},ot(Wt,je),{singleton:!0});function zo(t){return t.reduce((e,n)=>(e.groupIndices.push(e.totalCount),e.totalCount+=n+1,e),{groupIndices:[],totalCount:0})}const _n=K(([{groupIndices:t,sizes:e,totalCount:n},{headerHeight:o,scrollTop:r}])=>{const s=$(),i=$(),l=vt(x(s,B(zo)));return L(x(l,B(c=>c.totalCount)),n),L(x(l,B(c=>c.groupIndices)),t),L(x(at(r,e,o),W(([c,d])=>ye(d)),B(([c,d,m])=>Rt(d.groupOffsetTree,Math.max(c-m,0),"v")[0]),et(),B(c=>[c])),i),{groupCounts:s,topItemsIndexes:i}},ot(Lt,xt)),At=K(([{log:t}])=>{const e=v(!1),n=vt(x(e,W(o=>o),et()));return Y(e,o=>{o&&it(t)("props updated",{},dt.DEBUG)}),{didMount:n,propsReady:e}},ot(Wt),{singleton:!0}),Fo=typeof document<"u"&&"scrollBehavior"in document.documentElement.style;function Nn(t){const e=typeof t=="number"?{index:t}:t;return e.align||(e.align="start"),(!e.behavior||!Fo)&&(e.behavior="auto"),e.offset===void 0&&(e.offset=0),e}const ae=K(([{gap:t,listRefresh:e,sizes:n,totalCount:o},{fixedFooterHeight:r,fixedHeaderHeight:s,footerHeight:i,headerHeight:l,scrollingInProgress:c,scrollTo:d,smoothScrollTargetReached:m,viewportHeight:I},{log:p}])=>{const T=$(),w=$(),E=v(0);let h=null,f=null,a=null;function S(){h!==null&&(h(),h=null),a!==null&&(a(),a=null),f&&(clearTimeout(f),f=null),j(c,!1)}return L(x(T,D(n,I,o,E,l,i,p),D(t,s,r),B(([[H,y,k,u,g,C,z,O],G,_,Z])=>{const F=Nn(H),{align:mt,behavior:q,offset:Q}=F,gt=u-1,ut=jn(F,y,gt);let It=ie(ut,y.offsetTree,G)+C;mt==="end"?(It+=_+Rt(y.sizeTree,ut)[1]-k+Z,ut===gt&&(It+=z)):mt==="center"?It+=(_+Rt(y.sizeTree,ut)[1]-k+Z)/2:It-=g,Q!==void 0&&Q!==0&&(It+=Q);const Ft=pt=>{S(),pt?(O("retrying to scroll to",{location:H},dt.DEBUG),j(T,H)):(j(w,!0),O("list did not change, scroll successful",{},dt.DEBUG))};if(S(),q==="smooth"){let pt=!1;a=Y(e,Dt=>{pt=pt||Dt}),h=yt(m,()=>{Ft(pt)})}else h=yt(x(e,Vo(150)),Ft);return f=setTimeout(()=>{S()},1200),j(c,!0),O("scrolling from index to",{behavior:q,index:ut,top:It},dt.DEBUG),{behavior:q,top:It}})),d),{scrollTargetReached:w,scrollToIndex:T,topListHeight:E}},ot(Lt,xt,Wt),{singleton:!0});function Vo(t){return e=>{const n=setTimeout(()=>{e(!1)},t);return o=>{o&&(e(!0),clearTimeout(n))}}}function Ne(t,e){t===0?e():requestAnimationFrame(()=>{Ne(t-1,e)})}function De(t,e){const n=e-1;return typeof t=="number"?t:t.index==="LAST"?n:t.index}const de=K(([{defaultItemSize:t,listRefresh:e,sizes:n},{scrollTop:o},{scrollTargetReached:r,scrollToIndex:s},{didMount:i}])=>{const l=v(!0),c=v(0),d=v(!0);return L(x(i,D(c),W(([m,I])=>I!==0),Bt(!1)),l),L(x(i,D(c),W(([m,I])=>I!==0),Bt(!1)),d),Y(x(at(e,i),D(l,n,t,d),W(([[,m],I,{sizeTree:p},T,w])=>m&&(!J(p)||Pe(T))&&!I&&!w),D(c)),([,m])=>{yt(r,()=>{j(d,!0)}),Ne(4,()=>{yt(o,()=>{j(l,!0)}),j(s,m)})}),{initialItemFinalLocationReached:d,initialTopMostItemIndex:c,scrolledToInitialItem:l}},ot(Lt,xt,ae,At),{singleton:!0});function Dn(t,e){return Math.abs(t-e)<1.01}const le="up",te="down",Go="none",Po={atBottom:!1,notAtBottomBecause:"NOT_SHOWING_LAST_ITEM",state:{offsetBottom:0,scrollHeight:0,scrollTop:0,viewportHeight:0}},Wo=0,fe=K(([{footerHeight:t,headerHeight:e,scrollBy:n,scrollContainerState:o,scrollTop:r,viewportHeight:s}])=>{const i=v(!1),l=v(!0),c=$(),d=$(),m=v(4),I=v(Wo),p=ht(x(ke(x(P(r),_t(1),Bt(!0)),x(P(r),_t(1),Bt(!1),an(100))),et()),!1),T=ht(x(ke(x(n,Bt(!0)),x(n,Bt(!1),an(200))),et()),!1);L(x(at(P(r),P(I)),B(([a,S])=>a<=S),et()),l),L(x(l,zt(50)),d);const w=vt(x(at(o,P(s),P(e),P(t),P(m)),Ot((a,[{scrollHeight:S,scrollTop:H},y,k,u,g])=>{const C=H+y-S>-g,z={scrollHeight:S,scrollTop:H,viewportHeight:y};if(C){let G,_;return H>a.state.scrollTop?(G="SCROLLED_DOWN",_=a.state.scrollTop-H):(G="SIZE_DECREASED",_=a.state.scrollTop-H||a.scrollTopDelta),{atBottom:!0,atBottomBecause:G,scrollTopDelta:_,state:z}}let O;return z.scrollHeight>a.state.scrollHeight?O="SIZE_INCREASED":y<a.state.viewportHeight?O="VIEWPORT_HEIGHT_DECREASING":H<a.state.scrollTop?O="SCROLLING_UPWARDS":O="NOT_FULLY_SCROLLED_TO_LAST_ITEM_BOTTOM",{atBottom:!1,notAtBottomBecause:O,state:z}},Po),et((a,S)=>a!==void 0&&a.atBottom===S.atBottom))),E=ht(x(o,Ot((a,{scrollHeight:S,scrollTop:H,viewportHeight:y})=>{if(!Dn(a.scrollHeight,S)){const k=S-(H+y)<1;return a.scrollTop!==H&&k?{changed:!0,jump:a.scrollTop-H,scrollHeight:S,scrollTop:H}:{changed:!0,jump:0,scrollHeight:S,scrollTop:H}}return{changed:!1,jump:0,scrollHeight:S,scrollTop:H}},{changed:!1,jump:0,scrollHeight:0,scrollTop:0}),W(a=>a.changed),B(a=>a.jump)),0);L(x(w,B(a=>a.atBottom)),i),L(x(i,zt(50)),c);const h=v(te);L(x(o,B(({scrollTop:a})=>a),et(),Ot((a,S)=>it(T)?{direction:a.direction,prevScrollTop:S}:{direction:S<a.prevScrollTop?le:te,prevScrollTop:S},{direction:te,prevScrollTop:0}),B(a=>a.direction)),h),L(x(o,zt(50),Bt(Go)),h);const f=v(0);return L(x(p,W(a=>!a),Bt(0)),f),L(x(r,zt(100),D(p),W(([a,S])=>S),Ot(([a,S],[H])=>[S,H],[0,0]),B(([a,S])=>S-a)),f),{atBottomState:w,atBottomStateChange:c,atBottomThreshold:m,atTopStateChange:d,atTopThreshold:I,isAtBottom:i,isAtTop:l,isScrolling:p,lastJumpDueToItemResize:E,scrollDirection:h,scrollVelocity:f}},ot(xt)),ce="top",ue="bottom",pn="none";function hn(t,e,n){return typeof t=="number"?n===le&&e===ce||n===te&&e===ue?t:0:n===le?e===ce?t.main:t.reverse:e===ue?t.main:t.reverse}function gn(t,e){return typeof t=="number"?t:t[e]??0}const $e=K(([{deviation:t,fixedHeaderHeight:e,headerHeight:n,scrollTop:o,viewportHeight:r}])=>{const s=$(),i=v(0),l=v(0),c=v(0),d=ht(x(at(P(o),P(r),P(n),P(s,se),P(c),P(i),P(e),P(t),P(l)),B(([m,I,p,[T,w],E,h,f,a,S])=>{const H=m-a,y=h+f,k=Math.max(p-H,0);let u=pn;const g=gn(S,ce),C=gn(S,ue);return T-=a,T+=p+f,w+=p+f,w-=a,T>m+y-g&&(u=le),w<m-k+I+C&&(u=te),u!==pn?[Math.max(H-p-hn(E,ce,u)-g,0),H-k-f+I+hn(E,ue,u)+C]:null}),W(m=>m!==null),et(se)),[0,0]);return{increaseViewportBy:l,listBoundary:s,overscan:c,topListHeight:i,visibleRange:d}},ot(xt),{singleton:!0});function Ao(t,e,n){if(ye(e)){const o=Mn(t,e);return[{index:Rt(e.groupOffsetTree,o)[0],offset:0,size:0},{data:n?.[0],index:o,offset:0,size:0}]}return[{data:n?.[0],index:t,offset:0,size:0}]}const Ee={bottom:0,firstItemIndex:0,items:[],offsetBottom:0,offsetTop:0,top:0,topItems:[],topListHeight:0,totalCount:0};function Se(t,e,n,o,r,s){const{lastIndex:i,lastOffset:l,lastSize:c}=r;let d=0,m=0;if(t.length>0){d=t[0].offset;const E=t[t.length-1];m=E.offset+E.size}const I=n-i,p=l+I*c+(I-1)*o,T=d,w=p-m;return{bottom:m,firstItemIndex:s,items:xn(t,r,s),offsetBottom:w,offsetTop:d,top:T,topItems:xn(e,r,s),topListHeight:e.reduce((E,h)=>h.size+E,0),totalCount:n}}function $n(t,e,n,o,r,s){let i=0;if(n.groupIndices.length>0)for(const m of n.groupIndices){if(m-i>=t)break;i++}const l=t+i,c=De(e,l),d=Array.from({length:l}).map((m,I)=>({data:s[I+c],index:I+c,offset:0,size:0}));return Se(d,[],l,r,n,o)}function xn(t,e,n){if(t.length===0)return[];if(!ye(e))return t.map(d=>({...d,index:d.index+n,originalIndex:d.index}));const o=t[0].index,r=t[t.length-1].index,s=[],i=Kt(e.groupOffsetTree,o,r);let l,c=0;for(const d of t){(!l||l.end<d.index)&&(l=i.shift(),c=e.groupIndices.indexOf(l.start));let m;d.index===l.start?m={index:c,type:"group"}:m={groupIndex:c,index:d.index-(c+1)+n},s.push({...m,data:d.data,offset:d.offset,originalIndex:d.index,size:d.size})}return s}function In(t,e){return t===void 0?0:typeof t=="number"?t:t[e]??0}const Nt=K(([{data:t,firstItemIndex:e,gap:n,sizes:o,totalCount:r},s,{listBoundary:i,topListHeight:l,visibleRange:c},{initialTopMostItemIndex:d,scrolledToInitialItem:m},{topListHeight:I},p,{didMount:T},{recalcInProgress:w}])=>{const E=v([]),h=v(0),f=$(),a=v(0);L(s.topItemsIndexes,E);const S=ht(x(at(T,w,P(c,se),P(r),P(o),P(d),m,P(E),P(e),P(n),P(a),t),W(([u,g,,C,,,,,,,,z])=>{const O=z!==void 0&&z.length!==C;return u&&!g&&!O}),B(([,,[u,g],C,z,O,G,_,Z,F,mt,q])=>{const Q=z,{offsetTree:gt,sizeTree:ut}=Q,It=it(h);if(C===0)return{...Ee,totalCount:C};if(u===0&&g===0)return It===0?{...Ee,totalCount:C}:$n(It,O,z,Z,F,q||[]);if(J(ut))return It>0?null:Se(Ao(De(O,C),Q,q),[],C,F,Q,Z);const Ft=[];if(_.length>0){const N=_[0],U=_[_.length-1];let rt=0;for(const tt of Kt(ut,N,U)){const X=tt.value,lt=Math.max(tt.start,N),St=Math.min(tt.end,U);for(let ct=lt;ct<=St;ct++)Ft.push({data:q?.[ct],index:ct,offset:rt,size:X}),rt+=X}}if(!G)return Se([],Ft,C,F,Q,Z);const pt=_.length>0?_[_.length-1]+1:0,Dt=Eo(gt,u,g,pt);if(Dt.length===0)return null;const Xt=C-1,Ht=we([],N=>{for(const U of Dt){const rt=U.value;let tt=rt.offset,X=U.start;const lt=rt.size;if(rt.offset<u){X+=Math.floor((u-rt.offset+F)/(lt+F));const ct=X-U.start;tt+=ct*lt+ct*F}X<pt&&(tt+=(pt-X)*lt,X=pt);const St=Math.min(U.end,Xt);for(let ct=X;ct<=St&&!(tt>=g);ct++)N.push({data:q?.[ct],index:ct,offset:tt,size:lt}),tt+=lt+F}}),Jt=In(mt,ce),R=In(mt,ue);if(Ht.length>0&&(Jt>0||R>0)){const N=Ht[0],U=Ht[Ht.length-1];if(Jt>0&&N.index>pt){const rt=Math.min(Jt,N.index-pt),tt=[];let X=N.offset;for(let lt=N.index-1;lt>=N.index-rt;lt--){const ct=Kt(ut,lt,lt)[0]?.value??N.size;X-=ct+F,tt.unshift({data:q?.[lt],index:lt,offset:X,size:ct})}Ht.unshift(...tt)}if(R>0&&U.index<Xt){const rt=Math.min(R,Xt-U.index);let tt=U.offset+U.size+F;for(let X=U.index+1;X<=U.index+rt;X++){const St=Kt(ut,X,X)[0]?.value??U.size;Ht.push({data:q?.[X],index:X,offset:tt,size:St}),tt+=St+F}}}return Se(Ht,Ft,C,F,Q,Z)}),W(u=>u!==null),et()),Ee);L(x(t,W(Pe),B(u=>u?.length)),r),L(x(S,B(u=>u.topListHeight)),I),L(I,l),L(x(S,B(u=>[u.top,u.bottom])),i),L(x(S,B(u=>u.items)),f);const H=vt(x(S,W(({items:u})=>u.length>0),D(r,t),W(([{items:u},g])=>u[u.length-1].originalIndex===g-1),B(([,u,g])=>[u-1,g]),et(se),B(([u])=>u))),y=vt(x(S,zt(200),W(({items:u,topItems:g})=>u.length>0&&u[0].originalIndex===g.length),B(({items:u})=>u[0].index),et())),k=vt(x(S,W(({items:u})=>u.length>0),B(({items:u})=>{let g=0,C=u.length-1;for(;u[g].type==="group"&&g<C;)g++;for(;u[C].type==="group"&&C>g;)C--;return{endIndex:u[C].index,startIndex:u[g].index}}),et(Wn)));return{endReached:H,initialItemCount:h,itemsRendered:f,listState:S,minOverscanItemCount:a,rangeChanged:k,startReached:y,topItemsIndexes:E,...p}},ot(Lt,_n,$e,de,ae,fe,At,je),{singleton:!0}),Un=K(([{fixedFooterHeight:t,fixedHeaderHeight:e,footerHeight:n,headerHeight:o},{listState:r}])=>{const s=$(),i=ht(x(at(n,t,o,e,r),B(([l,c,d,m,I])=>l+c+d+m+I.offsetBottom+I.bottom)),0);return L(P(i),s),{totalListHeight:i,totalListHeightChanged:s}},ot(xt,Nt),{singleton:!0}),Mo=K(([{viewportHeight:t},{totalListHeight:e}])=>{const n=v(!1),o=ht(x(at(n,t,e),W(([r])=>r),B(([,r,s])=>Math.max(0,r-s)),zt(0),et()),0);return{alignToBottom:n,paddingTopAddition:o}},ot(xt,Un),{singleton:!0}),Kn=K(()=>({context:v(null)})),jo=({itemBottom:t,itemTop:e,locationParams:{align:n,behavior:o,...r},viewportBottom:s,viewportTop:i})=>e<i?{...r,align:n??"start",...o!==void 0?{behavior:o}:{}}:t>s?{...r,align:n??"end",...o!==void 0?{behavior:o}:{}}:null,qn=K(([{gap:t,sizes:e,totalCount:n},{fixedFooterHeight:o,fixedHeaderHeight:r,headerHeight:s,scrollingInProgress:i,scrollTop:l,viewportHeight:c},{scrollToIndex:d}])=>{const m=$();return L(x(m,D(e,c,n,s,r,o,l),D(t),B(([[I,p,T,w,E,h,f,a],S])=>{const{calculateViewLocation:H=jo,done:y,...k}=I,u=jn(I,p,w-1),g=ie(u,p.offsetTree,S)+E+h,C=g+Rt(p.sizeTree,u)[1],z=a+h,O=a+T-f,G=H({itemBottom:C,itemTop:g,locationParams:k,viewportBottom:O,viewportTop:z});return G!==null?y&&yt(x(i,W(_=>!_),_t(it(i)?1:2)),y):y?.(),G}),W(I=>I!==null)),d),{scrollIntoView:m}},ot(Lt,xt,ae,Nt,Wt),{singleton:!0});function Sn(t){return t===!1?!1:t==="smooth"?"smooth":"auto"}const _o=(t,e)=>typeof t=="function"?Sn(t(e)):e&&Sn(t),No=K(([{listRefresh:t,totalCount:e,fixedItemSize:n,data:o},{atBottomState:r,isAtBottom:s},{scrollToIndex:i},{scrolledToInitialItem:l},{didMount:c,propsReady:d},{log:m},{scrollingInProgress:I},{context:p},{scrollIntoView:T}])=>{const w=v(!1),E=$();let h=null;function f(y){j(i,{align:"end",behavior:y,index:"LAST"})}Y(x(at(x(P(e),_t(1)),c),D(P(w),s,l,I),B(([[y,k],u,g,C,z])=>{let O=k&&C,G="auto";return O&&(G=_o(u,g||z),O=O&&G!==!1),{followOutputBehavior:G,shouldFollow:O,totalCount:y}}),W(({shouldFollow:y})=>y)),({followOutputBehavior:y,totalCount:k})=>{h!==null&&(h(),h=null),it(n)!==void 0?requestAnimationFrame(()=>{it(m)("following output to ",{totalCount:k},dt.DEBUG),f(y)}):h=yt(t,()=>{it(m)("following output to ",{totalCount:k},dt.DEBUG),f(y),h=null})});function a(y){const k=yt(r,u=>{y&&!u.atBottom&&u.notAtBottomBecause==="SIZE_INCREASED"&&h===null&&(it(m)("scrolling to bottom due to increased size",{},dt.DEBUG),f("auto"))});setTimeout(k,100)}Y(x(at(P(w),e,d),W(([y,,k])=>y!==!1&&k),Ot(({value:y},[,k])=>({refreshed:y===k,value:k}),{refreshed:!1,value:0}),W(({refreshed:y})=>y),D(w,e)),([,y])=>{it(l)&&a(y!==!1)}),Y(E,()=>{a(it(w)!==!1)}),Y(at(P(w),r),([y,k])=>{y!==!1&&!k.atBottom&&k.notAtBottomBecause==="VIEWPORT_HEIGHT_DECREASING"&&f("auto")});const S=v(null),H=$();return L(ke(x(P(o),B(y=>y?.length??0)),x(P(e))),H),Y(x(at(x(H,_t(1)),c),D(P(S),l,I,p),B(([[y,k],u,g,C,z])=>k&&g&&u?.({context:z,totalCount:y,scrollingInProgress:C})),W(y=>!!y),zt(0)),y=>{h!==null&&(h(),h=null),it(n)!==void 0?requestAnimationFrame(()=>{it(m)("scrolling into view",{}),j(T,y)}):h=yt(t,()=>{it(m)("scrolling into view",{}),j(T,y),h=null})}),{autoscrollToBottom:E,followOutput:w,scrollIntoViewOnChange:S}},ot(Lt,fe,ae,de,At,Wt,xt,Kn,qn)),Do=K(([{data:t,firstItemIndex:e,gap:n,sizes:o},{initialTopMostItemIndex:r},{initialItemCount:s,listState:i},{didMount:l}])=>(L(x(l,D(s),W(([,c])=>c!==0),D(r,o,e,n,t),B(([[,c],d,m,I,p,T=[]])=>$n(c,d,m,I,p,T))),i),{}),ot(Lt,de,Nt,At),{singleton:!0}),$o=K(([{didMount:t},{scrollTo:e},{listState:n}])=>{const o=v(0);return Y(x(t,D(o),W(([,r])=>r!==0),B(([,r])=>({top:r}))),r=>{yt(x(n,_t(1),W(s=>s.items.length>1)),()=>{requestAnimationFrame(()=>{j(e,r)})})}),{initialScrollTop:o}},ot(At,xt,Nt),{singleton:!0}),Yn=K(([{scrollVelocity:t}])=>{const e=v(!1),n=$(),o=v(!1);return L(x(t,D(o,e,n),W(([r,s])=>s!==!1&&s!==void 0),B(([r,s,i,l])=>{const{enter:c,exit:d}=s;if(i){if(d(r,l))return!1}else if(c(r,l))return!0;return i}),et()),e),Y(x(at(e,t,n),D(o)),([[r,s,i],l])=>{r&&l!==!1&&l!==void 0&&l.change&&l.change(s,i)}),{isSeeking:e,scrollSeekConfiguration:o,scrollSeekRangeChanged:n,scrollVelocity:t}},ot(fe),{singleton:!0}),Ue=K(([{scrollContainerState:t,scrollTo:e}])=>{const n=$(),o=$(),r=$(),s=v(!1),i=v(void 0);return L(x(at(n,o),B(([{scrollTop:l,viewportHeight:c},{offsetTop:d,listHeight:m}])=>({scrollHeight:m,scrollTop:Math.max(0,l-d),viewportHeight:c}))),t),L(x(e,D(o),B(([l,{offsetTop:c}])=>({...l,top:l.top+c}))),r),{customScrollParent:i,useWindowScroll:s,windowScrollContainerState:n,windowScrollTo:r,windowViewportRect:o}},ot(xt)),Uo=K(([{sizeRanges:t,sizes:e},{headerHeight:n,scrollTop:o},{initialTopMostItemIndex:r},{didMount:s},{useWindowScroll:i,windowScrollContainerState:l,windowViewportRect:c}])=>{const d=$(),m=v(void 0),I=v(null),p=v(null);return L(l,I),L(c,p),Y(x(d,D(e,o,i,I,p,n)),([T,w,E,h,f,a,S])=>{const H=Bo(w.sizeTree);h&&f!==null&&a!==null&&(E=f.scrollTop-a.offsetTop),E-=S,T({ranges:H,scrollTop:E})}),L(x(m,W(Pe),B(Ko)),r),L(x(s,D(m),W(([,T])=>T!==void 0),et(),B(([,T])=>T.ranges)),t),{getState:d,restoreStateFrom:m}},ot(Lt,xt,de,At,Ue));function Ko(t){return{align:"start",index:0,offset:t.scrollTop}}const qo=K(([{topItemsIndexes:t}])=>{const e=v(0);return L(x(e,W(n=>n>=0),B(n=>Array.from({length:n}).map((o,r)=>r))),t),{topItemCount:e}},ot(Nt));function Zn(t){let e=!1,n;return(()=>(e||(e=!0,n=t()),n))}const Yo=Zn(()=>/iP(ad|od|hone)/i.test(navigator.userAgent)&&/WebKit/i.test(navigator.userAgent)),Zo=K(([{deviation:t,scrollBy:e,scrollingInProgress:n,scrollTop:o},{isAtBottom:r,isScrolling:s,lastJumpDueToItemResize:i,scrollDirection:l},{listState:c},{beforeUnshiftWith:d,gap:m,shiftWithOffset:I,sizes:p},{log:T},{recalcInProgress:w}])=>{const E=vt(x(c,D(i),Ot(([,f,a,S],[{bottom:H,items:y,offsetBottom:k,totalCount:u},g])=>{const C=H+k;let z=0;return a===u&&f.length>0&&y.length>0&&(y[0].originalIndex===0&&f[0].originalIndex===0||(z=C-S,z!==0&&(z+=g))),[z,y,u,C]},[0,[],0,0]),W(([f])=>f!==0),D(o,l,n,r,T,w),W(([,f,a,S,,,H])=>!H&&!S&&f!==0&&a===le),B(([[f],,,,,a])=>(a("Upward scrolling compensation",{amount:f},dt.DEBUG),f))));function h(f){f>0?(j(e,{behavior:"auto",top:-f}),j(t,0)):(j(t,0),j(e,{behavior:"auto",top:-f}))}return Y(x(E,D(t,s)),([f,a,S])=>{S&&Yo()?j(t,a-f):h(-f)}),Y(x(at(ht(s,!1),t,w),W(([f,a,S])=>!f&&!S&&a!==0),B(([f,a])=>a),zt(1)),h),L(x(I,B(f=>({top:-f}))),e),Y(x(d,D(p,m),B(([f,{groupIndices:a,lastSize:S,sizeTree:H},y])=>{function k(O){return O*(S+y)}if(a.length===0)return k(f);let u=0;const g=re(H,0);let C=0,z=0;for(;C<f;){C++,u+=g;let O=a.length===z+1?1/0:a[z+1]-a[z]-1;C+O>f&&(u-=g,O=f-C+1),C+=O,u+=k(O),z++}return u})),f=>{j(t,f),requestAnimationFrame(()=>{j(e,{top:f}),requestAnimationFrame(()=>{j(t,0),j(w,!1)})})}),{deviation:t}},ot(xt,fe,Nt,Lt,Wt,je)),Xo=K(([t,e,n,o,r,s,i,l,c,d,m])=>({...t,...e,...n,...o,...r,...s,...i,...l,...c,...d,...m}),ot($e,Do,At,Yn,Un,$o,Mo,Ue,qn,Wt,Kn)),Xn=K(([{data:t,defaultItemSize:e,firstItemIndex:n,fixedItemSize:o,fixedGroupSize:r,gap:s,groupIndices:i,heightEstimates:l,itemSize:c,sizeRanges:d,sizes:m,statefulTotalCount:I,totalCount:p,trackItemSizes:T},{initialItemFinalLocationReached:w,initialTopMostItemIndex:E,scrolledToInitialItem:h},f,a,S,H,{scrollToIndex:y},k,{topItemCount:u},{groupCounts:g},C])=>{const{listState:z,minOverscanItemCount:O,topItemsIndexes:G,rangeChanged:_,...Z}=H;return L(_,C.scrollSeekRangeChanged),L(x(C.windowViewportRect,B(F=>F.visibleHeight)),f.viewportHeight),{data:t,defaultItemHeight:e,firstItemIndex:n,fixedItemHeight:o,fixedGroupHeight:r,gap:s,groupCounts:g,heightEstimates:l,initialItemFinalLocationReached:w,initialTopMostItemIndex:E,scrolledToInitialItem:h,sizeRanges:d,topItemCount:u,topItemsIndexes:G,totalCount:p,...S,groupIndices:i,itemSize:c,listState:z,minOverscanItemCount:O,scrollToIndex:y,statefulTotalCount:I,trackItemSizes:T,rangeChanged:_,...Z,...C,...f,sizes:m,...a}},ot(Lt,de,xt,Uo,No,Nt,ae,Zo,qo,_n,Xo));function Jo(t,e){const n={},o={};let r=0;const s=t.length;for(;r<s;)o[t[r]]=1,r+=1;for(const i in e)Object.hasOwn(o,i)||(n[i]=e[i]);return n}const ge=typeof document<"u"?b.useLayoutEffect:b.useEffect;function Ke(t,e,n){const o=Object.keys(e.required||{}),r=Object.keys(e.optional||{}),s=Object.keys(e.methods||{}),i=Object.keys(e.events||{}),l=b.createContext({});function c(f,a){f.propsReady!==void 0&&j(f.propsReady,!1);for(const S of o){const H=f[e.required[S]];j(H,a[S])}for(const S of r)if(S in a){const H=f[e.optional[S]];j(H,a[S])}f.propsReady!==void 0&&j(f.propsReady,!0)}function d(f){return s.reduce((a,S)=>(a[S]=H=>{const y=f[e.methods[S]];j(y,H)},a),{})}function m(f){return i.reduce((a,S)=>(a[S]=ho(f[e.events[S]]),a),{})}const I=b.forwardRef(function(a,S){const{children:H,...y}=a,[k]=b.useState(()=>we(xo(t),C=>{c(C,y)})),[u]=b.useState(un(m,k));ge(()=>{for(const C of i)C in y&&Y(u[C],y[C]);return()=>{Object.values(u).map(We)}},[y,u,k]),ge(()=>{c(k,y)}),b.useImperativeHandle(S,cn(d(k)));const g=n;return V.jsx(l.Provider,{value:k,children:n!==void 0?V.jsx(g,{...Jo([...o,...r,...i],y),children:H}):H})}),p=f=>{const a=b.useContext(l);return b.useCallback(S=>{j(a[f],S)},[a,f])},T=f=>{const S=b.useContext(l)[f],H=b.useCallback(y=>Y(S,y),[S]);return b.useSyncExternalStore(H,()=>it(S),()=>it(S))},w=f=>{const S=b.useContext(l)[f],[H,y]=b.useState(un(it,S));return ge(()=>Y(S,k=>{k!==H&&y(cn(k))}),[S,H]),H},E=b.version.startsWith("18")?T:w;return{Component:I,useEmitter:(f,a)=>{const H=b.useContext(l)[f];ge(()=>Y(H,a),[a,H])},useEmitterValue:E,usePublisher:p}}const me=b.createContext(void 0),qe=b.createContext(void 0),He="-webkit-sticky",Tn="sticky",Ye=Zn(()=>{if(typeof document>"u")return Tn;const t=document.createElement("div");return t.style.position=He,t.style.position===He?He:Tn}),Jn=typeof document<"u"?b.useLayoutEffect:b.useEffect;function Be(t){return"self"in t}function Qo(t){return"body"in t}function Qn(t,e,n,o=Yt,r,s){const i=b.useRef(null),l=b.useRef(null),c=b.useRef(null),d=b.useCallback(p=>{let T,w,E;const h=p.target;if(Qo(h)||Be(h)){const a=Be(h)?h:h.defaultView;E=s===!0?a.scrollX:a.scrollY,T=s===!0?a.document.documentElement.scrollWidth:a.document.documentElement.scrollHeight,w=s===!0?a.innerWidth:a.innerHeight}else E=s===!0?h.scrollLeft:h.scrollTop,T=s===!0?h.scrollWidth:h.scrollHeight,w=s===!0?h.offsetWidth:h.offsetHeight;const f=()=>{t({scrollHeight:T,scrollTop:Math.max(E,0),viewportHeight:w})};p.suppressFlushSync===!0?f():co.flushSync(f),l.current!==null&&(E===l.current||E<=0||E===T-w)&&(l.current=null,e(!0),c.current&&(clearTimeout(c.current),c.current=null))},[t,e,s]);b.useEffect(()=>{const p=r||i.current;return o(r||i.current),d({suppressFlushSync:!0,target:p}),p.addEventListener("scroll",d,{passive:!0}),()=>{o(null),p.removeEventListener("scroll",d)}},[i,d,n,o,r]);function m(p){const T=i.current;if(!T||(s===!0?"offsetWidth"in T&&T.offsetWidth===0:"offsetHeight"in T&&T.offsetHeight===0))return;const w=p.behavior==="smooth";let E,h,f;Be(T)?(h=Math.max(Et(T.document.documentElement,s===!0?"width":"height"),s===!0?T.document.documentElement.scrollWidth:T.document.documentElement.scrollHeight),E=s===!0?T.innerWidth:T.innerHeight,f=s===!0?window.scrollX:window.scrollY):(h=T[s===!0?"scrollWidth":"scrollHeight"],E=Et(T,s===!0?"width":"height"),f=T[s===!0?"scrollLeft":"scrollTop"]);const a=h-E;if(p.top=Math.ceil(Math.max(Math.min(a,p.top),0)),Dn(E,h)||p.top===f){t({scrollHeight:h,scrollTop:f,viewportHeight:E}),w&&e(!0);return}w?(l.current=p.top,c.current&&clearTimeout(c.current),c.current=setTimeout(()=>{c.current=null,l.current=null,e(!0)},1e3)):l.current=null,s===!0&&(p={...p.behavior!==void 0?{behavior:p.behavior}:{},left:p.top}),T.scrollTo(p)}function I(p){s===!0&&(p={...p.behavior!==void 0?{behavior:p.behavior}:{},...p.top!==void 0?{left:p.top}:{}}),i.current.scrollBy(p)}return{scrollByCallback:I,scrollerRef:i,scrollToCallback:m}}function Ze(t){return t}const tr=K(()=>{const t=v(l=>`Item ${l}`),e=v(l=>`Group ${l}`),n=v({}),o=v(Ze),r=v("div"),s=v(Yt),i=(l,c=null)=>ht(x(n,B(d=>d[l]),et()),c);return{components:n,computeItemKey:o,EmptyPlaceholder:i("EmptyPlaceholder"),FooterComponent:i("Footer"),GroupComponent:i("Group","div"),groupContent:e,HeaderComponent:i("Header"),HeaderFooterTag:r,ItemComponent:i("Item","div"),itemContent:t,ListComponent:i("List","div"),ScrollerComponent:i("Scroller","div"),scrollerRef:s,ScrollSeekPlaceholder:i("ScrollSeekPlaceholder"),TopItemListComponent:i("TopItemList")}}),er=K(([t,e])=>({...t,...e}),ot(Xn,tr)),nr=({height:t})=>V.jsx("div",{style:{height:t}}),or={overflowAnchor:"none",position:Ye(),zIndex:1},to={overflowAnchor:"none"},rr={...to,display:"inline-block",height:"100%"},vn=b.memo(function({showTopList:e=!1}){const n=A("listState"),o=Ct("sizeRanges"),r=A("useWindowScroll"),s=A("customScrollParent"),i=Ct("windowScrollContainerState"),l=Ct("scrollContainerState"),c=s||r?i:l,d=A("itemContent"),m=A("context"),I=A("groupContent"),p=A("trackItemSizes"),T=A("itemSize"),w=A("log"),E=Ct("gap"),h=A("horizontalDirection"),{callbackRef:f}=Ln(o,T,p,e?Yt:c,w,E,s,h,A("skipAnimationFrameInResizeObserver")),[a,S]=b.useState(0);Qe("deviation",F=>{a!==F&&S(F)});const H=A("EmptyPlaceholder"),y=A("ScrollSeekPlaceholder")??nr,k=A("ListComponent"),u=A("ItemComponent"),g=A("GroupComponent"),C=A("computeItemKey"),z=A("isSeeking"),O=A("groupIndices").length>0,G=A("alignToBottom"),_=A("initialItemFinalLocationReached"),Z=e?{}:{boxSizing:"border-box",...h?{display:"inline-block",height:"100%",marginLeft:a!==0?a:G?"auto":0,paddingLeft:n.offsetTop,paddingRight:n.offsetBottom,whiteSpace:"nowrap"}:{marginTop:a!==0?a:G?"auto":0,paddingBottom:n.offsetBottom,paddingTop:n.offsetTop},..._?{}:{visibility:"hidden"}};return!e&&n.totalCount===0&&H!==null&&H!==void 0?V.jsx(H,{...nt(H,m)}):V.jsx(k,{...nt(k,m),"data-testid":e?"virtuoso-top-item-list":"virtuoso-item-list",ref:f,style:Z,children:(e?n.topItems:n.items).map(F=>{const mt=F.originalIndex,q=C(mt+n.firstItemIndex,F.data,m);return z?b.createElement(y,{...nt(y,m),height:F.size,index:F.index,key:q,type:F.type||"item",...F.type==="group"?{}:{groupIndex:F.groupIndex}}):F.type==="group"?b.createElement(g,{...nt(g,m),"data-index":mt,"data-item-index":F.index,"data-known-size":F.size,key:q,style:or},I(F.index,m)):b.createElement(u,{...nt(u,m),...eo(u,F.data),"data-index":mt,"data-item-group-index":F.groupIndex,"data-item-index":F.index,"data-known-size":F.size,key:q,style:h?rr:to},O?d(F.index,F.groupIndex,F.data,m):d(F.index,F.data,m))})})}),sr={height:"100%",outline:"none",overflowY:"auto",position:"relative",WebkitOverflowScrolling:"touch"},ir={outline:"none",overflowX:"auto",position:"relative"},Zt=t=>({height:"100%",position:"absolute",top:0,width:"100%",...t?{display:"flex",flexDirection:"column"}:void 0}),lr={position:Ye(),top:0,width:"100%",zIndex:1};function nt(t,e){if(typeof t!="string")return{context:e}}function eo(t,e){return{item:typeof t=="string"?void 0:e}}const cr=b.memo(function(){const e=A("HeaderComponent"),n=Ct("headerHeight"),o=A("HeaderFooterTag"),r=kt(b.useMemo(()=>i=>{n(Et(i,"height"))},[n]),!0,A("skipAnimationFrameInResizeObserver")),s=A("context");return e!=null?V.jsx(o,{ref:r,children:V.jsx(e,{...nt(e,s)})}):null}),ur=b.memo(function(){const e=A("FooterComponent"),n=Ct("footerHeight"),o=A("HeaderFooterTag"),r=kt(b.useMemo(()=>i=>{n(Et(i,"height"))},[n]),!0,A("skipAnimationFrameInResizeObserver")),s=A("context");return e!=null?V.jsx(o,{ref:r,children:V.jsx(e,{...nt(e,s)})}):null});function Xe({useEmitter:t,useEmitterValue:e,usePublisher:n}){return b.memo(function({children:s,style:i,context:l,...c}){const d=n("scrollContainerState"),m=e("ScrollerComponent"),I=n("smoothScrollTargetReached"),p=e("scrollerRef"),T=e("horizontalDirection")||!1,{scrollByCallback:w,scrollerRef:E,scrollToCallback:h}=Qn(d,I,m,p,void 0,T);t("scrollTo",h),t("scrollBy",w);const f=T?ir:sr;return V.jsx(m,{"data-testid":"virtuoso-scroller","data-virtuoso-scroller":!0,ref:E,style:{...f,...i},tabIndex:0,...c,...nt(m,l),children:s})})}function Je({useEmitter:t,useEmitterValue:e,usePublisher:n}){return b.memo(function({children:s,style:i,context:l,...c}){const d=n("windowScrollContainerState"),m=e("ScrollerComponent"),I=n("smoothScrollTargetReached"),p=e("totalListHeight"),T=e("deviation"),w=e("customScrollParent"),E=b.useRef(null),h=e("scrollerRef"),{scrollByCallback:f,scrollerRef:a,scrollToCallback:S}=Qn(d,I,m,h,w);return Jn(()=>(a.current=w||E.current?.ownerDocument.defaultView,()=>{a.current=null}),[a,w]),t("windowScrollTo",S),t("scrollBy",f),V.jsx(m,{ref:E,"data-virtuoso-scroller":!0,style:{position:"relative",...i,...p!==0?{height:p+T}:void 0},...c,...nt(m,l),children:s})})}const ar=({children:t})=>{const e=b.useContext(me),n=Ct("viewportHeight"),o=Ct("fixedItemHeight"),r=A("alignToBottom"),s=A("horizontalDirection"),i=b.useMemo(()=>ne(n,c=>Et(c,s?"width":"height")),[n,s]),l=kt(i,!0,A("skipAnimationFrameInResizeObserver"));return b.useEffect(()=>{e&&(n(e.viewportHeight),o(e.itemHeight))},[e,n,o]),V.jsx("div",{"data-viewport-type":"element",ref:l,style:Zt(r),children:t})},dr=({children:t})=>{const e=b.useContext(me),n=Ct("windowViewportRect"),o=Ct("fixedItemHeight"),r=A("customScrollParent"),s=Me(n,r,A("skipAnimationFrameInResizeObserver")),i=A("alignToBottom");return b.useEffect(()=>{e&&(o(e.itemHeight),n({listHeight:0,offsetTop:0,visibleHeight:e.viewportHeight,visibleWidth:100}))},[e,n,o]),V.jsx("div",{"data-viewport-type":"window",ref:s,style:Zt(i),children:t})},fr=({children:t})=>{const e=A("TopItemListComponent")??"div",n=A("headerHeight"),o={...lr,marginTop:`${n}px`},r=A("context");return V.jsx(e,{style:o,...nt(e,r),children:t})},mr=b.memo(function(e){const n=A("useWindowScroll"),o=A("topItemsIndexes").length>0,r=A("customScrollParent"),s=A("context"),i=r||n?hr:pr,l=r||n?dr:ar;return V.jsxs(i,{...e,context:s,children:[o&&V.jsx(fr,{children:V.jsx(vn,{showTopList:!0})}),V.jsxs(l,{children:[V.jsx(cr,{}),V.jsx(vn,{}),V.jsx(ur,{})]})]})}),{Component:no,useEmitter:Qe,useEmitterValue:A,usePublisher:Ct}=Ke(er,{optional:{restoreStateFrom:"restoreStateFrom",context:"context",followOutput:"followOutput",scrollIntoViewOnChange:"scrollIntoViewOnChange",itemContent:"itemContent",groupContent:"groupContent",overscan:"overscan",increaseViewportBy:"increaseViewportBy",minOverscanItemCount:"minOverscanItemCount",totalCount:"totalCount",groupCounts:"groupCounts",topItemCount:"topItemCount",firstItemIndex:"firstItemIndex",initialTopMostItemIndex:"initialTopMostItemIndex",components:"components",atBottomThreshold:"atBottomThreshold",atTopThreshold:"atTopThreshold",computeItemKey:"computeItemKey",defaultItemHeight:"defaultItemHeight",fixedGroupHeight:"fixedGroupHeight",fixedItemHeight:"fixedItemHeight",heightEstimates:"heightEstimates",itemSize:"itemSize",scrollSeekConfiguration:"scrollSeekConfiguration",headerFooterTag:"HeaderFooterTag",data:"data",initialItemCount:"initialItemCount",initialScrollTop:"initialScrollTop",alignToBottom:"alignToBottom",useWindowScroll:"useWindowScroll",customScrollParent:"customScrollParent",scrollerRef:"scrollerRef",logLevel:"logLevel",horizontalDirection:"horizontalDirection",skipAnimationFrameInResizeObserver:"skipAnimationFrameInResizeObserver"},methods:{scrollToIndex:"scrollToIndex",scrollIntoView:"scrollIntoView",scrollTo:"scrollTo",scrollBy:"scrollBy",autoscrollToBottom:"autoscrollToBottom",getState:"getState"},events:{isScrolling:"isScrolling",endReached:"endReached",startReached:"startReached",rangeChanged:"rangeChanged",atBottomStateChange:"atBottomStateChange",atTopStateChange:"atTopStateChange",totalListHeightChanged:"totalListHeightChanged",itemsRendered:"itemsRendered",groupIndices:"groupIndices"}},mr),pr=Xe({useEmitter:Qe,useEmitterValue:A,usePublisher:Ct}),hr=Je({useEmitter:Qe,useEmitterValue:A,usePublisher:Ct}),gr=no,xr=no,Ir=K(()=>{const t=v(d=>V.jsxs("td",{children:["Item $",d]})),e=v(null),n=v(d=>V.jsxs("td",{colSpan:1e3,children:["Group ",d]})),o=v(null),r=v(null),s=v({}),i=v(Ze),l=v(Yt),c=(d,m=null)=>ht(x(s,B(I=>I[d]),et()),m);return{components:s,computeItemKey:i,context:e,EmptyPlaceholder:c("EmptyPlaceholder"),FillerRow:c("FillerRow"),fixedFooterContent:r,fixedHeaderContent:o,itemContent:t,groupContent:n,ScrollerComponent:c("Scroller","div"),scrollerRef:l,ScrollSeekPlaceholder:c("ScrollSeekPlaceholder"),TableBodyComponent:c("TableBody","tbody"),TableComponent:c("Table","table"),TableFooterComponent:c("TableFoot","tfoot"),TableHeadComponent:c("TableHead","thead"),TableRowComponent:c("TableRow","tr"),GroupComponent:c("Group","tr")}}),Sr=K(([t,e])=>({...t,...e}),ot(Xn,Ir)),Tr=({height:t})=>V.jsx("tr",{children:V.jsx("td",{style:{height:t}})}),vr=({height:t})=>V.jsx("tr",{children:V.jsx("td",{style:{border:0,height:t,padding:0}})}),Cr={overflowAnchor:"none"},Cn={position:Ye(),zIndex:2,overflowAnchor:"none"},wn=b.memo(function({showTopList:e=!1}){const n=M("listState"),o=M("computeItemKey"),r=M("firstItemIndex"),s=M("context"),i=M("isSeeking"),l=M("fixedHeaderHeight"),c=M("groupIndices").length>0,d=M("itemContent"),m=M("groupContent"),I=M("ScrollSeekPlaceholder")??Tr,p=M("GroupComponent"),T=M("TableRowComponent"),w=(e?n.topItems:[]).reduce((h,f,a)=>(a===0?h.push(f.size):h.push(h[a-1]+f.size),h),[]);return(e?n.topItems:n.items).map(h=>{const f=h.originalIndex,a=o(f+r,h.data,s),S=e?f===0?0:w[f-1]:0;return i?b.createElement(I,{...nt(I,s),height:h.size,index:h.index,key:a,type:h.type||"item"}):h.type==="group"?b.createElement(p,{...nt(p,s),"data-index":f,"data-item-index":h.index,"data-known-size":h.size,key:a,style:{...Cn,top:l}},m(h.index,s)):b.createElement(T,{...nt(T,s),...eo(T,h.data),"data-index":f,"data-item-index":h.index,"data-known-size":h.size,"data-item-group-index":h.groupIndex,key:a,style:e?{...Cn,top:l+S}:Cr},c?d(h.index,h.groupIndex,h.data,s):d(h.index,h.data,s))})}),wr=b.memo(function(){const e=M("listState"),n=M("topItemsIndexes").length>0,o=bt("sizeRanges"),r=M("useWindowScroll"),s=M("customScrollParent"),i=bt("windowScrollContainerState"),l=bt("scrollContainerState"),c=s||r?i:l,d=M("trackItemSizes"),m=M("itemSize"),I=M("log"),{callbackRef:p,ref:T}=Ln(o,m,d,c,I,void 0,s,!1,M("skipAnimationFrameInResizeObserver")),[w,E]=b.useState(0);tn("deviation",O=>{w!==O&&(T.current.style.marginTop=`${O}px`,E(O))});const h=M("EmptyPlaceholder"),f=M("FillerRow")??vr,a=M("TableBodyComponent"),S=M("paddingTopAddition"),H=M("statefulTotalCount"),y=M("context");if(H===0&&h!==null&&h!==void 0)return V.jsx(h,{...nt(h,y)});const k=(n?e.topItems:[]).reduce((O,G)=>O+G.size,0),u=e.offsetTop+S+w-k,g=e.offsetBottom,C=u>0?V.jsx(f,{context:y,height:u},"padding-top"):null,z=g>0?V.jsx(f,{context:y,height:g},"padding-bottom"):null;return V.jsxs(a,{"data-testid":"virtuoso-item-list",ref:p,...nt(a,y),children:[C,n&&V.jsx(wn,{showTopList:!0}),V.jsx(wn,{}),z]})}),yr=({children:t})=>{const e=b.useContext(me),n=bt("viewportHeight"),o=bt("fixedItemHeight"),r=kt(b.useMemo(()=>ne(n,s=>Et(s,"height")),[n]),!0,M("skipAnimationFrameInResizeObserver"));return b.useEffect(()=>{e&&(n(e.viewportHeight),o(e.itemHeight))},[e,n,o]),V.jsx("div",{"data-viewport-type":"element",ref:r,style:Zt(!1),children:t})},br=({children:t})=>{const e=b.useContext(me),n=bt("windowViewportRect"),o=bt("fixedItemHeight"),r=M("customScrollParent"),s=Me(n,r,M("skipAnimationFrameInResizeObserver"));return b.useEffect(()=>{e&&(o(e.itemHeight),n({listHeight:0,offsetTop:0,visibleHeight:e.viewportHeight,visibleWidth:100}))},[e,n,o]),V.jsx("div",{"data-viewport-type":"window",ref:s,style:Zt(!1),children:t})},Rr=b.memo(function(e){const n=M("useWindowScroll"),o=M("customScrollParent"),r=bt("fixedHeaderHeight"),s=bt("fixedFooterHeight"),i=M("fixedHeaderContent"),l=M("fixedFooterContent"),c=M("context"),d=kt(b.useMemo(()=>ne(r,a=>Et(a,"height")),[r]),!0,M("skipAnimationFrameInResizeObserver")),m=kt(b.useMemo(()=>ne(s,a=>Et(a,"height")),[s]),!0,M("skipAnimationFrameInResizeObserver")),I=o||n?Hr:Er,p=o||n?br:yr,T=M("TableComponent"),w=M("TableHeadComponent"),E=M("TableFooterComponent"),h=i?V.jsx(w,{ref:d,style:{position:"sticky",top:0,zIndex:2},...nt(w,c),children:i()},"TableHead"):null,f=l?V.jsx(E,{ref:m,style:{bottom:0,position:"sticky",zIndex:1},...nt(E,c),children:l()},"TableFoot"):null;return V.jsx(I,{...e,...nt(I,c),children:V.jsx(p,{children:V.jsxs(T,{style:{borderSpacing:0,overflowAnchor:"none"},...nt(T,c),children:[h,V.jsx(wr,{},"TableBody"),f]})})})}),{Component:oo,useEmitter:tn,useEmitterValue:M,usePublisher:bt}=Ke(Sr,{optional:{restoreStateFrom:"restoreStateFrom",context:"context",followOutput:"followOutput",firstItemIndex:"firstItemIndex",itemContent:"itemContent",groupContent:"groupContent",fixedHeaderContent:"fixedHeaderContent",fixedFooterContent:"fixedFooterContent",overscan:"overscan",increaseViewportBy:"increaseViewportBy",minOverscanItemCount:"minOverscanItemCount",totalCount:"totalCount",topItemCount:"topItemCount",initialTopMostItemIndex:"initialTopMostItemIndex",components:"components",groupCounts:"groupCounts",atBottomThreshold:"atBottomThreshold",atTopThreshold:"atTopThreshold",computeItemKey:"computeItemKey",defaultItemHeight:"defaultItemHeight",fixedGroupHeight:"fixedGroupHeight",fixedItemHeight:"fixedItemHeight",itemSize:"itemSize",scrollSeekConfiguration:"scrollSeekConfiguration",data:"data",initialItemCount:"initialItemCount",initialScrollTop:"initialScrollTop",alignToBottom:"alignToBottom",useWindowScroll:"useWindowScroll",customScrollParent:"customScrollParent",scrollerRef:"scrollerRef",logLevel:"logLevel"},methods:{scrollToIndex:"scrollToIndex",scrollIntoView:"scrollIntoView",scrollTo:"scrollTo",scrollBy:"scrollBy",getState:"getState"},events:{isScrolling:"isScrolling",endReached:"endReached",startReached:"startReached",rangeChanged:"rangeChanged",atBottomStateChange:"atBottomStateChange",atTopStateChange:"atTopStateChange",totalListHeightChanged:"totalListHeightChanged",itemsRendered:"itemsRendered",groupIndices:"groupIndices"}},Rr),Er=Xe({useEmitter:tn,useEmitterValue:M,usePublisher:bt}),Hr=Je({useEmitter:tn,useEmitterValue:M,usePublisher:bt}),Br=oo,Or=oo,yn={bottom:0,itemHeight:0,items:[],itemWidth:0,offsetBottom:0,offsetTop:0,top:0},kr={bottom:0,itemHeight:0,items:[{index:0}],itemWidth:0,offsetBottom:0,offsetTop:0,top:0},{ceil:bn,floor:ve,max:ee,min:Oe,round:Rn}=Math;function En(t,e,n){return Array.from({length:e-t+1}).map((o,r)=>({data:n===null?null:n[r+t],index:r+t}))}function Lr(t){return{...kr,items:t}}function xe(t,e){return t!==void 0&&t.width===e.width&&t.height===e.height}function zr(t,e){return t!==void 0&&t.column===e.column&&t.row===e.row}const Fr=K(([{increaseViewportBy:t,listBoundary:e,overscan:n,visibleRange:o},{footerHeight:r,headerHeight:s,scrollBy:i,scrollContainerState:l,scrollTo:c,scrollTop:d,smoothScrollTargetReached:m,viewportHeight:I},p,T,{didMount:w,propsReady:E},{customScrollParent:h,useWindowScroll:f,windowScrollContainerState:a,windowScrollTo:S,windowViewportRect:H},y])=>{const k=v(0),u=v(0),g=v(yn),C=v({height:0,width:0}),z=v({height:0,width:0}),O=$(),G=$(),_=v(0),Z=v(null),F=v({column:0,row:0}),mt=$(),q=$(),Q=v(!1),gt=v(0),ut=v(!0),It=v(!1),Ft=v(!1);Y(x(w,D(gt),W(([R,N])=>N!==0)),()=>{j(ut,!1)}),Y(x(at(w,ut,z,C,gt,It),W(([R,N,U,rt,,tt])=>R&&!N&&U.height!==0&&rt.height!==0&&!tt)),([,,,,R])=>{j(It,!0),Ne(1,()=>{j(O,R)}),yt(x(d),()=>{j(e,[0,0]),j(ut,!0)})}),L(x(q,W(R=>R!=null&&R.scrollTop>0),Bt(0)),u),Y(x(w,D(q),W(([,R])=>R!=null)),([,R])=>{R&&(j(C,R.viewport),j(z,R.item),j(F,R.gap),R.scrollTop>0&&(j(Q,!0),yt(x(d,_t(1)),N=>{j(Q,!1)}),j(c,{top:R.scrollTop})))}),L(x(C,B(({height:R})=>R)),I),L(x(at(P(C,xe),P(z,xe),P(F,(R,N)=>R!==void 0&&R.column===N.column&&R.row===N.row),P(d)),B(([R,N,U,rt])=>({gap:U,item:N,scrollTop:rt,viewport:R}))),mt),L(x(at(P(k),o,P(F,zr),P(z,xe),P(C,xe),P(Z),P(u),P(Q),P(ut),P(gt)),W(([,,,,,,,R])=>!R),B(([R,[N,U],rt,tt,X,lt,St,,ct,Vt])=>{const{column:Gt,row:Qt}=rt,{height:pe,width:be}=tt,{width:en}=X;if(St===0&&(R===0||en===0))return yn;if(be===0){const ln=De(Vt,R),lo=ln+Math.max(St-1,0);return Lr(En(ln,lo,lt))}const he=ro(en,be,Gt);let $t,Mt;ct?N===0&&U===0&&St>0?($t=0,Mt=St-1):($t=he*ve((N+Qt)/(pe+Qt)),Mt=he*bn((U+Qt)/(pe+Qt))-1,Mt=Oe(R-1,ee(Mt,he-1)),$t=Oe(Mt,ee(0,$t))):($t=0,Mt=-1);const nn=En($t,Mt,lt),{bottom:on,top:rn}=Hn(X,rt,tt,nn),sn=bn(R/he),io=sn*pe+(sn-1)*Qt-on;return{bottom:on,itemHeight:pe,items:nn,itemWidth:be,offsetBottom:io,offsetTop:rn,top:rn}})),g),L(x(Z,W(R=>R!==null),B(R=>R.length)),k),L(x(at(C,z,g,F),W(([R,N,{items:U}])=>U.length>0&&N.height!==0&&R.height!==0),B(([R,N,{items:U},rt])=>{const{bottom:tt,top:X}=Hn(R,rt,N,U);return[X,tt]}),et(se)),e);const pt=v(!1);L(x(d,D(pt),B(([R,N])=>N||R!==0)),pt);const Dt=vt(x(at(g,k),W(([{items:R}])=>R.length>0),D(pt),W(([[R,N],U])=>{const tt=R.items[R.items.length-1].index===N-1;return(U||R.bottom>0&&R.itemHeight>0&&R.offsetBottom===0&&R.items.length===N)&&tt}),B(([[,R]])=>R-1),et())),Xt=vt(x(P(g),W(({items:R})=>R.length>0&&R[0].index===0),Bt(0),et())),Ht=vt(x(P(g),D(Q),W(([{items:R},N])=>R.length>0&&!N),B(([{items:R}])=>({endIndex:R[R.length-1].index,startIndex:R[0].index})),et(Wn),zt(0)));L(Ht,T.scrollSeekRangeChanged),L(x(O,D(C,z,k,F),B(([R,N,U,rt,tt])=>{const X=Nn(R),{align:lt,behavior:St,offset:ct}=X;let Vt=X.index;Vt==="LAST"&&(Vt=rt-1),Vt=ee(0,Vt,Oe(rt-1,Vt));let Gt=Ge(N,tt,U,Vt);return lt==="end"?Gt=Rn(Gt-N.height+U.height):lt==="center"&&(Gt=Rn(Gt-N.height/2+U.height/2)),ct!==void 0&&ct!==0&&(Gt+=ct),{behavior:St,top:Gt}})),c);const Jt=ht(x(g,B(R=>R.offsetBottom+R.bottom)),0);return L(x(H,B(R=>({height:R.visibleHeight,width:R.visibleWidth}))),C),{customScrollParent:h,data:Z,deviation:_,footerHeight:r,gap:F,headerHeight:s,increaseViewportBy:t,initialItemCount:u,itemDimensions:z,overscan:n,restoreStateFrom:q,scrollBy:i,scrollContainerState:l,scrollHeight:G,scrollTo:c,scrollToIndex:O,scrollTop:d,smoothScrollTargetReached:m,totalCount:k,useWindowScroll:f,viewportDimensions:C,windowScrollContainerState:a,windowScrollTo:S,windowViewportRect:H,...T,gridState:g,horizontalDirection:Ft,initialTopMostItemIndex:gt,totalListHeight:Jt,...p,endReached:Dt,propsReady:E,rangeChanged:Ht,startReached:Xt,stateChanged:mt,stateRestoreInProgress:Q,...y}},ot($e,xt,fe,Yn,At,Ue,Wt));function ro(t,e,n){return ee(1,ve((t+n)/(ve(e)+n)))}function Hn(t,e,n,o){const{height:r}=n;if(r===void 0||o.length===0)return{bottom:0,top:0};const s=Ge(t,e,n,o[0].index);return{bottom:Ge(t,e,n,o[o.length-1].index)+r,top:s}}function Ge(t,e,n,o){const r=ro(t.width,n.width,e.column),s=ve(o/r),i=s*n.height+ee(0,s-1)*e.row;return i>0?i+e.row:i}const Vr=K(()=>{const t=v(I=>`Item ${I}`),e=v({}),n=v(null),o=v("virtuoso-grid-item"),r=v("virtuoso-grid-list"),s=v(Ze),i=v("div"),l=v(Yt),c=(I,p=null)=>ht(x(e,B(T=>T[I]),et()),p),d=v(!1),m=v(!1);return L(P(m),d),{components:e,computeItemKey:s,context:n,FooterComponent:c("Footer"),HeaderComponent:c("Header"),headerFooterTag:i,itemClassName:o,ItemComponent:c("Item","div"),itemContent:t,listClassName:r,ListComponent:c("List","div"),readyStateChanged:d,reportReadyState:m,ScrollerComponent:c("Scroller","div"),scrollerRef:l,ScrollSeekPlaceholder:c("ScrollSeekPlaceholder","div")}}),Gr=K(([t,e])=>({...t,...e}),ot(Fr,Vr)),Pr=b.memo(function(){const e=st("gridState"),n=st("listClassName"),o=st("itemClassName"),r=st("itemContent"),s=st("computeItemKey"),i=st("isSeeking"),l=wt("scrollHeight"),c=st("ItemComponent"),d=st("ListComponent"),m=st("ScrollSeekPlaceholder"),I=st("context"),p=wt("itemDimensions"),T=wt("gap"),w=st("log"),E=st("stateRestoreInProgress"),h=wt("reportReadyState"),f=kt(b.useMemo(()=>a=>{const S=a.parentElement.parentElement.scrollHeight;l(S);const H=a.firstChild;if(H!==null){const{height:y,width:k}=H.getBoundingClientRect();p({height:y,width:k})}T({column:Bn("column-gap",getComputedStyle(a).columnGap,w),row:Bn("row-gap",getComputedStyle(a).rowGap,w)})},[l,p,T,w]),!0,!1);return Jn(()=>{e.itemHeight>0&&e.itemWidth>0&&h(!0)},[e]),E?null:V.jsx(d,{className:n,ref:f,...nt(d,I),"data-testid":"virtuoso-item-list",style:{paddingBottom:e.offsetBottom,paddingTop:e.offsetTop},children:e.items.map(a=>{const S=s(a.index,a.data,I);return i?V.jsx(m,{...nt(m,I),height:e.itemHeight,index:a.index,width:e.itemWidth},S):b.createElement(c,{...nt(c,I),className:o,"data-index":a.index,key:S},r(a.index,a.data,I))})})}),Wr=b.memo(function(){const e=st("HeaderComponent"),n=wt("headerHeight"),o=st("headerFooterTag"),r=kt(b.useMemo(()=>i=>{n(Et(i,"height"))},[n]),!0,!1),s=st("context");return e!=null?V.jsx(o,{ref:r,children:V.jsx(e,{...nt(e,s)})}):null}),Ar=b.memo(function(){const e=st("FooterComponent"),n=wt("footerHeight"),o=st("headerFooterTag"),r=kt(b.useMemo(()=>i=>{n(Et(i,"height"))},[n]),!0,!1),s=st("context");return e!=null?V.jsx(o,{ref:r,children:V.jsx(e,{...nt(e,s)})}):null}),Mr=({children:t})=>{const e=b.useContext(qe),n=wt("itemDimensions"),o=wt("viewportDimensions"),r=kt(b.useMemo(()=>s=>{o(s.getBoundingClientRect())},[o]),!0,!1);return b.useEffect(()=>{e&&(o({height:e.viewportHeight,width:e.viewportWidth}),n({height:e.itemHeight,width:e.itemWidth}))},[e,o,n]),V.jsx("div",{ref:r,style:Zt(!1),children:t})},jr=({children:t})=>{const e=b.useContext(qe),n=wt("windowViewportRect"),o=wt("itemDimensions"),r=st("customScrollParent"),s=Me(n,r,!1);return b.useEffect(()=>{e&&(o({height:e.itemHeight,width:e.itemWidth}),n({listHeight:0,offsetTop:0,visibleHeight:e.viewportHeight,visibleWidth:e.viewportWidth}))},[e,n,o]),V.jsx("div",{ref:s,style:Zt(!1),children:t})},_r=b.memo(function({...e}){const n=st("useWindowScroll"),o=st("customScrollParent"),r=o||n?$r:Dr,s=o||n?jr:Mr,i=st("context");return V.jsx(r,{...e,...nt(r,i),children:V.jsxs(s,{children:[V.jsx(Wr,{}),V.jsx(Pr,{}),V.jsx(Ar,{})]})})}),{Component:Nr,useEmitter:so,useEmitterValue:st,usePublisher:wt}=Ke(Gr,{optional:{context:"context",totalCount:"totalCount",overscan:"overscan",itemContent:"itemContent",components:"components",computeItemKey:"computeItemKey",data:"data",initialItemCount:"initialItemCount",scrollSeekConfiguration:"scrollSeekConfiguration",headerFooterTag:"headerFooterTag",listClassName:"listClassName",itemClassName:"itemClassName",useWindowScroll:"useWindowScroll",customScrollParent:"customScrollParent",scrollerRef:"scrollerRef",logLevel:"logLevel",restoreStateFrom:"restoreStateFrom",initialTopMostItemIndex:"initialTopMostItemIndex",increaseViewportBy:"increaseViewportBy"},methods:{scrollTo:"scrollTo",scrollBy:"scrollBy",scrollToIndex:"scrollToIndex"},events:{isScrolling:"isScrolling",endReached:"endReached",startReached:"startReached",rangeChanged:"rangeChanged",atBottomStateChange:"atBottomStateChange",atTopStateChange:"atTopStateChange",stateChanged:"stateChanged",readyStateChanged:"readyStateChanged"}},_r),Dr=Xe({useEmitter:so,useEmitterValue:st,usePublisher:wt}),$r=Je({useEmitter:so,useEmitterValue:st,usePublisher:wt});function Bn(t,e,n){return e!=="normal"&&e?.endsWith("px")!==!0&&n(`${t} was not resolved to pixel value correctly`,e,dt.WARN),e==="normal"?0:parseInt(e??"0",10)}const Ur=Nr;exports.GroupedTableVirtuoso=Or;exports.GroupedVirtuoso=xr;exports.LogLevel=dt;exports.TableVirtuoso=Br;exports.Virtuoso=gr;exports.VirtuosoGrid=Ur;exports.VirtuosoGridMockContext=qe;exports.VirtuosoMockContext=me;
|
package/dist/index.d.ts
CHANGED
|
@@ -1937,6 +1937,8 @@ export declare interface VirtuosoProps<Data, Context> extends ListRootProps {
|
|
|
1937
1937
|
* @group Common
|
|
1938
1938
|
*/
|
|
1939
1939
|
export declare interface WindowViewportInfo {
|
|
1940
|
+
/** The rendered height of the list container element in pixels */
|
|
1941
|
+
listHeight: number;
|
|
1940
1942
|
/** The offset from the top of the document to the list container in pixels */
|
|
1941
1943
|
offsetTop: number;
|
|
1942
1944
|
/** The visible height of the window viewport in pixels */
|
package/dist/index.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jsx as G, jsxs as Dt } from "react/jsx-runtime";
|
|
2
|
-
import
|
|
2
|
+
import E, { createElement as Nt } from "react";
|
|
3
3
|
import ao from "react-dom";
|
|
4
4
|
const we = 0, Wt = 1, Zt = 2, kn = 4;
|
|
5
5
|
function un(t) {
|
|
@@ -283,10 +283,10 @@ function kt(t, e, n) {
|
|
|
283
283
|
return _e(t, e, n).callbackRef;
|
|
284
284
|
}
|
|
285
285
|
function _e(t, e, n) {
|
|
286
|
-
const o =
|
|
286
|
+
const o = E.useRef(null);
|
|
287
287
|
let r = (i) => {
|
|
288
288
|
};
|
|
289
|
-
const s =
|
|
289
|
+
const s = E.useMemo(() => typeof ResizeObserver < "u" ? new ResizeObserver((i) => {
|
|
290
290
|
const l = () => {
|
|
291
291
|
const c = i[0].target;
|
|
292
292
|
c.offsetParent !== null && t(c);
|
|
@@ -298,7 +298,7 @@ function _e(t, e, n) {
|
|
|
298
298
|
}, { callbackRef: r, ref: o };
|
|
299
299
|
}
|
|
300
300
|
function zn(t, e, n, o, r, s, i, l, c) {
|
|
301
|
-
const d =
|
|
301
|
+
const d = E.useCallback(
|
|
302
302
|
(m) => {
|
|
303
303
|
const x = Co(m.children, e, l ? "offsetWidth" : "offsetHeight", r);
|
|
304
304
|
let p = m.parentElement;
|
|
@@ -341,7 +341,7 @@ function fn(t, e, n) {
|
|
|
341
341
|
return e !== "normal" && e?.endsWith("px") !== !0 && n(`${t} was not resolved to pixel value correctly`, e, ft.WARN), e === "normal" ? 0 : parseInt(e ?? "0", 10);
|
|
342
342
|
}
|
|
343
343
|
function Ne(t, e, n) {
|
|
344
|
-
const o =
|
|
344
|
+
const o = E.useRef(null), r = E.useCallback(
|
|
345
345
|
(c) => {
|
|
346
346
|
if (!c?.offsetParent)
|
|
347
347
|
return;
|
|
@@ -355,6 +355,7 @@ function Ne(t, e, n) {
|
|
|
355
355
|
p = T.innerHeight - Math.max(0, d.top), x = d.top + T.scrollY;
|
|
356
356
|
}
|
|
357
357
|
o.current = {
|
|
358
|
+
listHeight: d.height,
|
|
358
359
|
offsetTop: x,
|
|
359
360
|
visibleHeight: p,
|
|
360
361
|
visibleWidth: m
|
|
@@ -362,10 +363,10 @@ function Ne(t, e, n) {
|
|
|
362
363
|
},
|
|
363
364
|
// oxlint-disable-next-line exhaustive-deps
|
|
364
365
|
[t, e]
|
|
365
|
-
), { callbackRef: s, ref: i } = _e(r, !0, n), l =
|
|
366
|
+
), { callbackRef: s, ref: i } = _e(r, !0, n), l = E.useCallback(() => {
|
|
366
367
|
r(i.current);
|
|
367
368
|
}, [r, i]);
|
|
368
|
-
return
|
|
369
|
+
return E.useEffect(() => {
|
|
369
370
|
if (e) {
|
|
370
371
|
e.addEventListener("scroll", l);
|
|
371
372
|
const d = new ResizeObserver(() => {
|
|
@@ -492,7 +493,7 @@ function Se(t) {
|
|
|
492
493
|
if (o.lvl >= n - 1 && e.lvl >= n - 1)
|
|
493
494
|
return t;
|
|
494
495
|
if (n > o.lvl + 1) {
|
|
495
|
-
if (
|
|
496
|
+
if (Ee(e))
|
|
496
497
|
return Gn(dt(t, { lvl: n - 1 }));
|
|
497
498
|
if (!J(e) && !J(e.r))
|
|
498
499
|
return dt(e.r, {
|
|
@@ -505,10 +506,10 @@ function Se(t) {
|
|
|
505
506
|
});
|
|
506
507
|
throw new Error("Unexpected empty nodes");
|
|
507
508
|
}
|
|
508
|
-
if (
|
|
509
|
+
if (Ee(t))
|
|
509
510
|
return Pe(dt(t, { lvl: n - 1 }));
|
|
510
511
|
if (!J(o) && !J(o.l)) {
|
|
511
|
-
const r = o.l, s =
|
|
512
|
+
const r = o.l, s = Ee(r) ? o.lvl - 1 : o.lvl;
|
|
512
513
|
return dt(r, {
|
|
513
514
|
l: dt(t, {
|
|
514
515
|
lvl: n - 1,
|
|
@@ -532,7 +533,7 @@ function dt(t, e) {
|
|
|
532
533
|
function Vn(t) {
|
|
533
534
|
return J(t.r) ? t.l : Se(dt(t, { r: Vn(t.r) }));
|
|
534
535
|
}
|
|
535
|
-
function
|
|
536
|
+
function Ee(t) {
|
|
536
537
|
return J(t) || t.lvl > t.r.lvl;
|
|
537
538
|
}
|
|
538
539
|
function Pn(t) {
|
|
@@ -591,7 +592,7 @@ function yo(t, e, n, o) {
|
|
|
591
592
|
const r = ve(t, e, o), s = ve(t, n, o, r);
|
|
592
593
|
return t.slice(r, s + 1);
|
|
593
594
|
}
|
|
594
|
-
function
|
|
595
|
+
function Ht(t, e) {
|
|
595
596
|
return Math.round(t.getBoundingClientRect()[e]);
|
|
596
597
|
}
|
|
597
598
|
function be(t) {
|
|
@@ -629,10 +630,10 @@ function Ro(t, e) {
|
|
|
629
630
|
}
|
|
630
631
|
return [t, n];
|
|
631
632
|
}
|
|
632
|
-
function
|
|
633
|
+
function Ho(t) {
|
|
633
634
|
return typeof t.groupIndex < "u";
|
|
634
635
|
}
|
|
635
|
-
function
|
|
636
|
+
function Eo({ offset: t }, e) {
|
|
636
637
|
return e === t ? 0 : e < t ? -1 : 1;
|
|
637
638
|
}
|
|
638
639
|
function ce(t, e, n) {
|
|
@@ -650,14 +651,14 @@ function _n(t, e) {
|
|
|
650
651
|
return t + n;
|
|
651
652
|
}
|
|
652
653
|
function Nn(t, e, n) {
|
|
653
|
-
if (
|
|
654
|
+
if (Ho(t))
|
|
654
655
|
return e.groupIndices[t.groupIndex] + 1;
|
|
655
656
|
const o = t.index === "LAST" ? n : t.index;
|
|
656
657
|
let r = _n(o, e);
|
|
657
658
|
return r = Math.max(0, r, Math.min(n, r)), r;
|
|
658
659
|
}
|
|
659
660
|
function Bo(t, e, n, o = 0) {
|
|
660
|
-
return o > 0 && (e = Math.max(e, Mn(t, o, $e).offset)), Fn(yo(t, e, n,
|
|
661
|
+
return o > 0 && (e = Math.max(e, Mn(t, o, $e).offset)), Fn(yo(t, e, n, Eo), Lo);
|
|
661
662
|
}
|
|
662
663
|
function Oo(t, [e, n, o, r]) {
|
|
663
664
|
e.length > 0 && o("received item sizes", e, ft.DEBUG);
|
|
@@ -728,7 +729,7 @@ const Fo = {
|
|
|
728
729
|
offsetWidth: "width"
|
|
729
730
|
}, Lt = j(
|
|
730
731
|
([{ log: t }, { recalcInProgress: e }]) => {
|
|
731
|
-
const n = U(), o = U(), r = ht(o, 0), s = U(), i = U(), l = v(0), c = v([]), d = v(void 0), m = v(void 0), x = v(void 0), p = v(void 0), T = v((u, g) =>
|
|
732
|
+
const n = U(), o = U(), r = ht(o, 0), s = U(), i = U(), l = v(0), c = v([]), d = v(void 0), m = v(void 0), x = v(void 0), p = v(void 0), T = v((u, g) => Ht(u, Fo[g])), w = v(void 0), R = v(0), h = bo(), f = ht(
|
|
732
733
|
I(n, $(c, t, R), Ot(Oo, h), et()),
|
|
733
734
|
h
|
|
734
735
|
), a = ht(
|
|
@@ -840,7 +841,7 @@ const Fo = {
|
|
|
840
841
|
),
|
|
841
842
|
n
|
|
842
843
|
);
|
|
843
|
-
const
|
|
844
|
+
const H = vt(
|
|
844
845
|
I(
|
|
845
846
|
n,
|
|
846
847
|
$(f),
|
|
@@ -1000,7 +1001,7 @@ const Fo = {
|
|
|
1000
1001
|
groupIndices: c,
|
|
1001
1002
|
heightEstimates: p,
|
|
1002
1003
|
itemSize: T,
|
|
1003
|
-
listRefresh:
|
|
1004
|
+
listRefresh: H,
|
|
1004
1005
|
shiftWith: i,
|
|
1005
1006
|
shiftWithOffset: k,
|
|
1006
1007
|
sizeRanges: n,
|
|
@@ -1098,16 +1099,16 @@ const fe = j(
|
|
|
1098
1099
|
$(t, s, r),
|
|
1099
1100
|
B(
|
|
1100
1101
|
([
|
|
1101
|
-
[
|
|
1102
|
+
[H, y, k, u, g, C, z, O],
|
|
1102
1103
|
V,
|
|
1103
1104
|
N,
|
|
1104
1105
|
Z
|
|
1105
1106
|
]) => {
|
|
1106
|
-
const F = $n(
|
|
1107
|
+
const F = $n(H), { align: mt, behavior: q, offset: Q } = F, gt = u - 1, ut = Nn(F, y, gt);
|
|
1107
1108
|
let xt = ce(ut, y.offsetTree, V) + C;
|
|
1108
1109
|
mt === "end" ? (xt += N + Rt(y.sizeTree, ut)[1] - k + Z, ut === gt && (xt += z)) : mt === "center" ? xt += (N + Rt(y.sizeTree, ut)[1] - k + Z) / 2 : xt -= g, Q !== void 0 && Q !== 0 && (xt += Q);
|
|
1109
1110
|
const Ft = (pt) => {
|
|
1110
|
-
S(), pt ? (O("retrying to scroll to", { location:
|
|
1111
|
+
S(), pt ? (O("retrying to scroll to", { location: H }, ft.DEBUG), _(T, H)) : (_(w, !0), O("list did not change, scroll successful", {}, ft.DEBUG));
|
|
1111
1112
|
};
|
|
1112
1113
|
if (S(), q === "smooth") {
|
|
1113
1114
|
let pt = !1;
|
|
@@ -1231,15 +1232,15 @@ const ue = "up", ne = "down", Go = "none", Ao = {
|
|
|
1231
1232
|
const w = vt(
|
|
1232
1233
|
I(
|
|
1233
1234
|
at(o, P(s), P(e), P(t), P(m)),
|
|
1234
|
-
Ot((a, [{ scrollHeight: S, scrollTop:
|
|
1235
|
-
const C =
|
|
1235
|
+
Ot((a, [{ scrollHeight: S, scrollTop: H }, y, k, u, g]) => {
|
|
1236
|
+
const C = H + y - S > -g, z = {
|
|
1236
1237
|
scrollHeight: S,
|
|
1237
|
-
scrollTop:
|
|
1238
|
+
scrollTop: H,
|
|
1238
1239
|
viewportHeight: y
|
|
1239
1240
|
};
|
|
1240
1241
|
if (C) {
|
|
1241
1242
|
let V, N;
|
|
1242
|
-
return
|
|
1243
|
+
return H > a.state.scrollTop ? (V = "SCROLLED_DOWN", N = a.state.scrollTop - H) : (V = "SIZE_DECREASED", N = a.state.scrollTop - H || a.scrollTopDelta), {
|
|
1243
1244
|
atBottom: !0,
|
|
1244
1245
|
atBottomBecause: V,
|
|
1245
1246
|
scrollTopDelta: N,
|
|
@@ -1247,7 +1248,7 @@ const ue = "up", ne = "down", Go = "none", Ao = {
|
|
|
1247
1248
|
};
|
|
1248
1249
|
}
|
|
1249
1250
|
let O;
|
|
1250
|
-
return z.scrollHeight > a.state.scrollHeight ? O = "SIZE_INCREASED" : y < a.state.viewportHeight ? O = "VIEWPORT_HEIGHT_DECREASING" :
|
|
1251
|
+
return z.scrollHeight > a.state.scrollHeight ? O = "SIZE_INCREASED" : y < a.state.viewportHeight ? O = "VIEWPORT_HEIGHT_DECREASING" : H < a.state.scrollTop ? O = "SCROLLING_UPWARDS" : O = "NOT_FULLY_SCROLLED_TO_LAST_ITEM_BOTTOM", {
|
|
1251
1252
|
atBottom: !1,
|
|
1252
1253
|
notAtBottomBecause: O,
|
|
1253
1254
|
state: z
|
|
@@ -1259,26 +1260,26 @@ const ue = "up", ne = "down", Go = "none", Ao = {
|
|
|
1259
1260
|
I(
|
|
1260
1261
|
o,
|
|
1261
1262
|
Ot(
|
|
1262
|
-
(a, { scrollHeight: S, scrollTop:
|
|
1263
|
+
(a, { scrollHeight: S, scrollTop: H, viewportHeight: y }) => {
|
|
1263
1264
|
if (!Un(a.scrollHeight, S)) {
|
|
1264
|
-
const k = S - (
|
|
1265
|
-
return a.scrollTop !==
|
|
1265
|
+
const k = S - (H + y) < 1;
|
|
1266
|
+
return a.scrollTop !== H && k ? {
|
|
1266
1267
|
changed: !0,
|
|
1267
|
-
jump: a.scrollTop -
|
|
1268
|
+
jump: a.scrollTop - H,
|
|
1268
1269
|
scrollHeight: S,
|
|
1269
|
-
scrollTop:
|
|
1270
|
+
scrollTop: H
|
|
1270
1271
|
} : {
|
|
1271
1272
|
changed: !0,
|
|
1272
1273
|
jump: 0,
|
|
1273
1274
|
scrollHeight: S,
|
|
1274
|
-
scrollTop:
|
|
1275
|
+
scrollTop: H
|
|
1275
1276
|
};
|
|
1276
1277
|
}
|
|
1277
1278
|
return {
|
|
1278
1279
|
changed: !1,
|
|
1279
1280
|
jump: 0,
|
|
1280
1281
|
scrollHeight: S,
|
|
1281
|
-
scrollTop:
|
|
1282
|
+
scrollTop: H
|
|
1282
1283
|
};
|
|
1283
1284
|
},
|
|
1284
1285
|
{ changed: !1, jump: 0, scrollHeight: 0, scrollTop: 0 }
|
|
@@ -1323,7 +1324,7 @@ const ue = "up", ne = "down", Go = "none", Ao = {
|
|
|
1323
1324
|
zt(100),
|
|
1324
1325
|
$(p),
|
|
1325
1326
|
W(([a, S]) => S),
|
|
1326
|
-
Ot(([a, S], [
|
|
1327
|
+
Ot(([a, S], [H]) => [S, H], [0, 0]),
|
|
1327
1328
|
B(([a, S]) => S - a)
|
|
1328
1329
|
),
|
|
1329
1330
|
f
|
|
@@ -1374,12 +1375,12 @@ const je = j(
|
|
|
1374
1375
|
a,
|
|
1375
1376
|
S
|
|
1376
1377
|
]) => {
|
|
1377
|
-
const
|
|
1378
|
+
const H = m - a, y = h + f, k = Math.max(p - H, 0);
|
|
1378
1379
|
let u = hn;
|
|
1379
1380
|
const g = In(S, ae), C = In(S, de);
|
|
1380
1381
|
return T -= a, T += p + f, w += p + f, w -= a, T > m + y - g && (u = ue), w < m - k + x + C && (u = ne), u !== hn ? [
|
|
1381
|
-
Math.max(
|
|
1382
|
-
|
|
1382
|
+
Math.max(H - p - gn(R, ae, u) - g, 0),
|
|
1383
|
+
H - k - f + x + gn(R, de, u) + C
|
|
1383
1384
|
] : null;
|
|
1384
1385
|
}
|
|
1385
1386
|
),
|
|
@@ -1565,7 +1566,7 @@ const Ut = j(
|
|
|
1565
1566
|
const pt = N.length > 0 ? N[N.length - 1] + 1 : 0, Kt = Bo(gt, u, g, pt);
|
|
1566
1567
|
if (Kt.length === 0)
|
|
1567
1568
|
return null;
|
|
1568
|
-
const Qt = C - 1,
|
|
1569
|
+
const Qt = C - 1, Et = ye([], (D) => {
|
|
1569
1570
|
for (const K of Kt) {
|
|
1570
1571
|
const rt = K.value;
|
|
1571
1572
|
let tt = rt.offset, X = K.start;
|
|
@@ -1581,8 +1582,8 @@ const Ut = j(
|
|
|
1581
1582
|
D.push({ data: q?.[ct], index: ct, offset: tt, size: lt }), tt += lt + F;
|
|
1582
1583
|
}
|
|
1583
1584
|
}), te = Sn(mt, ae), b = Sn(mt, de);
|
|
1584
|
-
if (
|
|
1585
|
-
const D =
|
|
1585
|
+
if (Et.length > 0 && (te > 0 || b > 0)) {
|
|
1586
|
+
const D = Et[0], K = Et[Et.length - 1];
|
|
1586
1587
|
if (te > 0 && D.index > pt) {
|
|
1587
1588
|
const rt = Math.min(te, D.index - pt), tt = [];
|
|
1588
1589
|
let X = D.offset;
|
|
@@ -1590,18 +1591,18 @@ const Ut = j(
|
|
|
1590
1591
|
const ct = Yt(ut, lt, lt)[0]?.value ?? D.size;
|
|
1591
1592
|
X -= ct + F, tt.unshift({ data: q?.[lt], index: lt, offset: X, size: ct });
|
|
1592
1593
|
}
|
|
1593
|
-
|
|
1594
|
+
Et.unshift(...tt);
|
|
1594
1595
|
}
|
|
1595
1596
|
if (b > 0 && K.index < Qt) {
|
|
1596
1597
|
const rt = Math.min(b, Qt - K.index);
|
|
1597
1598
|
let tt = K.offset + K.size + F;
|
|
1598
1599
|
for (let X = K.index + 1; X <= K.index + rt; X++) {
|
|
1599
1600
|
const St = Yt(ut, X, X)[0]?.value ?? K.size;
|
|
1600
|
-
|
|
1601
|
+
Et.push({ data: q?.[X], index: X, offset: tt, size: St }), tt += St + F;
|
|
1601
1602
|
}
|
|
1602
1603
|
}
|
|
1603
1604
|
}
|
|
1604
|
-
return Te(
|
|
1605
|
+
return Te(Et, Ft, C, F, Q, Z);
|
|
1605
1606
|
}
|
|
1606
1607
|
),
|
|
1607
1608
|
//@ts-expect-error filter needs to be fixed
|
|
@@ -1636,7 +1637,7 @@ const Ut = j(
|
|
|
1636
1637
|
),
|
|
1637
1638
|
f
|
|
1638
1639
|
);
|
|
1639
|
-
const
|
|
1640
|
+
const H = vt(
|
|
1640
1641
|
I(
|
|
1641
1642
|
S,
|
|
1642
1643
|
W(({ items: u }) => u.length > 0),
|
|
@@ -1673,7 +1674,7 @@ const Ut = j(
|
|
|
1673
1674
|
)
|
|
1674
1675
|
);
|
|
1675
1676
|
return {
|
|
1676
|
-
endReached:
|
|
1677
|
+
endReached: H,
|
|
1677
1678
|
initialItemCount: h,
|
|
1678
1679
|
itemsRendered: f,
|
|
1679
1680
|
listState: S,
|
|
@@ -1745,7 +1746,7 @@ const Ut = j(
|
|
|
1745
1746
|
$(e, c, n, s, r, o, l),
|
|
1746
1747
|
$(t),
|
|
1747
1748
|
B(([[x, p, T, w, R, h, f, a], S]) => {
|
|
1748
|
-
const { calculateViewLocation:
|
|
1749
|
+
const { calculateViewLocation: H = Do, done: y, ...k } = x, u = Nn(x, p, w - 1), g = ce(u, p.offsetTree, S) + R + h, C = g + Rt(p.sizeTree, u)[1], z = a + h, O = a + T - f, V = H({
|
|
1749
1750
|
itemBottom: C,
|
|
1750
1751
|
itemTop: g,
|
|
1751
1752
|
locationParams: k,
|
|
@@ -1840,7 +1841,7 @@ const $o = (t, e) => typeof t == "function" ? Tn(t(e)) : e && Tn(t), Uo = j(
|
|
|
1840
1841
|
}), Y(at(P(w), r), ([y, k]) => {
|
|
1841
1842
|
y !== !1 && !k.atBottom && k.notAtBottomBecause === "VIEWPORT_HEIGHT_DECREASING" && f("auto");
|
|
1842
1843
|
});
|
|
1843
|
-
const S = v(null),
|
|
1844
|
+
const S = v(null), H = U();
|
|
1844
1845
|
return L(
|
|
1845
1846
|
ze(
|
|
1846
1847
|
I(
|
|
@@ -1849,10 +1850,10 @@ const $o = (t, e) => typeof t == "function" ? Tn(t(e)) : e && Tn(t), Uo = j(
|
|
|
1849
1850
|
),
|
|
1850
1851
|
I(P(e))
|
|
1851
1852
|
),
|
|
1852
|
-
|
|
1853
|
+
H
|
|
1853
1854
|
), Y(
|
|
1854
1855
|
I(
|
|
1855
|
-
at(I(
|
|
1856
|
+
at(I(H, $t(1)), c),
|
|
1856
1857
|
$(P(S), l, x, p),
|
|
1857
1858
|
B(([[y, k], u, g, C, z]) => k && g && u?.({ context: z, totalCount: y, scrollingInProgress: C })),
|
|
1858
1859
|
W((y) => !!y),
|
|
@@ -1955,10 +1956,10 @@ const $o = (t, e) => typeof t == "function" ? Tn(t(e)) : e && Tn(t), Uo = j(
|
|
|
1955
1956
|
return L(
|
|
1956
1957
|
I(
|
|
1957
1958
|
at(n, o),
|
|
1958
|
-
B(([{
|
|
1959
|
-
scrollHeight:
|
|
1960
|
-
scrollTop: Math.max(0,
|
|
1961
|
-
viewportHeight:
|
|
1959
|
+
B(([{ scrollTop: l, viewportHeight: c }, { offsetTop: d, listHeight: m }]) => ({
|
|
1960
|
+
scrollHeight: m,
|
|
1961
|
+
scrollTop: Math.max(0, l - d),
|
|
1962
|
+
viewportHeight: c
|
|
1962
1963
|
}))
|
|
1963
1964
|
),
|
|
1964
1965
|
t
|
|
@@ -1997,8 +1998,8 @@ const $o = (t, e) => typeof t == "function" ? Tn(t(e)) : e && Tn(t), Uo = j(
|
|
|
1997
1998
|
$(e, o, i, x, p, n)
|
|
1998
1999
|
),
|
|
1999
2000
|
([T, w, R, h, f, a, S]) => {
|
|
2000
|
-
const
|
|
2001
|
-
h && f !== null && a !== null && (R = f.scrollTop - a.offsetTop), R -= S, T({ ranges:
|
|
2001
|
+
const H = ko(w.sizeTree);
|
|
2002
|
+
h && f !== null && a !== null && (R = f.scrollTop - a.offsetTop), R -= S, T({ ranges: H, scrollTop: R });
|
|
2002
2003
|
}
|
|
2003
2004
|
), L(I(m, W(Ae), B(Yo)), r), L(
|
|
2004
2005
|
I(
|
|
@@ -2048,8 +2049,8 @@ const Xo = Xn(() => /iP(ad|od|hone)/i.test(navigator.userAgent) && /WebKit/i.tes
|
|
|
2048
2049
|
c,
|
|
2049
2050
|
$(i),
|
|
2050
2051
|
Ot(
|
|
2051
|
-
([, f, a, S], [{ bottom:
|
|
2052
|
-
const C =
|
|
2052
|
+
([, f, a, S], [{ bottom: H, items: y, offsetBottom: k, totalCount: u }, g]) => {
|
|
2053
|
+
const C = H + k;
|
|
2053
2054
|
let z = 0;
|
|
2054
2055
|
return a === u && f.length > 0 && y.length > 0 && (y[0].originalIndex === 0 && f[0].originalIndex === 0 || (z = C - S, z !== 0 && (z += g))), [z, y, u, C];
|
|
2055
2056
|
},
|
|
@@ -2057,7 +2058,7 @@ const Xo = Xn(() => /iP(ad|od|hone)/i.test(navigator.userAgent) && /WebKit/i.tes
|
|
|
2057
2058
|
),
|
|
2058
2059
|
W(([f]) => f !== 0),
|
|
2059
2060
|
$(o, l, n, r, T, w),
|
|
2060
|
-
W(([, f, a, S, , ,
|
|
2061
|
+
W(([, f, a, S, , , H]) => !H && !S && f !== 0 && a === ue),
|
|
2061
2062
|
B(([[f], , , , , a]) => (a("Upward scrolling compensation", { amount: f }, ft.DEBUG), f))
|
|
2062
2063
|
)
|
|
2063
2064
|
);
|
|
@@ -2084,14 +2085,14 @@ const Xo = Xn(() => /iP(ad|od|hone)/i.test(navigator.userAgent) && /WebKit/i.tes
|
|
|
2084
2085
|
I(
|
|
2085
2086
|
d,
|
|
2086
2087
|
$(p, m),
|
|
2087
|
-
B(([f, { groupIndices: a, lastSize: S, sizeTree:
|
|
2088
|
+
B(([f, { groupIndices: a, lastSize: S, sizeTree: H }, y]) => {
|
|
2088
2089
|
function k(O) {
|
|
2089
2090
|
return O * (S + y);
|
|
2090
2091
|
}
|
|
2091
2092
|
if (a.length === 0)
|
|
2092
2093
|
return k(f);
|
|
2093
2094
|
let u = 0;
|
|
2094
|
-
const g = ie(
|
|
2095
|
+
const g = ie(H, 0);
|
|
2095
2096
|
let C = 0, z = 0;
|
|
2096
2097
|
for (; C < f; ) {
|
|
2097
2098
|
C++, u += g;
|
|
@@ -2172,14 +2173,14 @@ const Xo = Xn(() => /iP(ad|od|hone)/i.test(navigator.userAgent) && /WebKit/i.tes
|
|
|
2172
2173
|
f,
|
|
2173
2174
|
a,
|
|
2174
2175
|
S,
|
|
2175
|
-
|
|
2176
|
+
H,
|
|
2176
2177
|
{ scrollToIndex: y },
|
|
2177
2178
|
k,
|
|
2178
2179
|
{ topItemCount: u },
|
|
2179
2180
|
{ groupCounts: g },
|
|
2180
2181
|
C
|
|
2181
2182
|
]) => {
|
|
2182
|
-
const { listState: z, minOverscanItemCount: O, topItemsIndexes: V, rangeChanged: N, ...Z } =
|
|
2183
|
+
const { listState: z, minOverscanItemCount: O, topItemsIndexes: V, rangeChanged: N, ...Z } = H;
|
|
2183
2184
|
return L(N, C.scrollSeekRangeChanged), L(
|
|
2184
2185
|
I(
|
|
2185
2186
|
C.windowViewportRect,
|
|
@@ -2246,35 +2247,35 @@ function tr(t, e) {
|
|
|
2246
2247
|
Object.hasOwn(o, i) || (n[i] = e[i]);
|
|
2247
2248
|
return n;
|
|
2248
2249
|
}
|
|
2249
|
-
const Ie = typeof document < "u" ?
|
|
2250
|
+
const Ie = typeof document < "u" ? E.useLayoutEffect : E.useEffect;
|
|
2250
2251
|
function Ye(t, e, n) {
|
|
2251
|
-
const o = Object.keys(e.required || {}), r = Object.keys(e.optional || {}), s = Object.keys(e.methods || {}), i = Object.keys(e.events || {}), l =
|
|
2252
|
+
const o = Object.keys(e.required || {}), r = Object.keys(e.optional || {}), s = Object.keys(e.methods || {}), i = Object.keys(e.events || {}), l = E.createContext({});
|
|
2252
2253
|
function c(f, a) {
|
|
2253
2254
|
f.propsReady !== void 0 && _(f.propsReady, !1);
|
|
2254
2255
|
for (const S of o) {
|
|
2255
|
-
const
|
|
2256
|
-
_(
|
|
2256
|
+
const H = f[e.required[S]];
|
|
2257
|
+
_(H, a[S]);
|
|
2257
2258
|
}
|
|
2258
2259
|
for (const S of r)
|
|
2259
2260
|
if (S in a) {
|
|
2260
|
-
const
|
|
2261
|
-
_(
|
|
2261
|
+
const H = f[e.optional[S]];
|
|
2262
|
+
_(H, a[S]);
|
|
2262
2263
|
}
|
|
2263
2264
|
f.propsReady !== void 0 && _(f.propsReady, !0);
|
|
2264
2265
|
}
|
|
2265
2266
|
function d(f) {
|
|
2266
|
-
return s.reduce((a, S) => (a[S] = (
|
|
2267
|
+
return s.reduce((a, S) => (a[S] = (H) => {
|
|
2267
2268
|
const y = f[e.methods[S]];
|
|
2268
|
-
_(y,
|
|
2269
|
+
_(y, H);
|
|
2269
2270
|
}, a), {});
|
|
2270
2271
|
}
|
|
2271
2272
|
function m(f) {
|
|
2272
2273
|
return i.reduce((a, S) => (a[S] = Io(f[e.events[S]]), a), {});
|
|
2273
2274
|
}
|
|
2274
|
-
const x =
|
|
2275
|
-
const { children:
|
|
2275
|
+
const x = E.forwardRef(function(a, S) {
|
|
2276
|
+
const { children: H, ...y } = a, [k] = E.useState(() => ye(So(t), (C) => {
|
|
2276
2277
|
c(C, y);
|
|
2277
|
-
})), [u] =
|
|
2278
|
+
})), [u] = E.useState(an(m, k));
|
|
2278
2279
|
Ie(() => {
|
|
2279
2280
|
for (const C of i)
|
|
2280
2281
|
C in y && Y(u[C], y[C]);
|
|
@@ -2283,52 +2284,52 @@ function Ye(t, e, n) {
|
|
|
2283
2284
|
};
|
|
2284
2285
|
}, [y, u, k]), Ie(() => {
|
|
2285
2286
|
c(k, y);
|
|
2286
|
-
}),
|
|
2287
|
+
}), E.useImperativeHandle(S, un(d(k)));
|
|
2287
2288
|
const g = n;
|
|
2288
|
-
return /* @__PURE__ */ G(l.Provider, { value: k, children: n !== void 0 ? /* @__PURE__ */ G(g, { ...tr([...o, ...r, ...i], y), children:
|
|
2289
|
+
return /* @__PURE__ */ G(l.Provider, { value: k, children: n !== void 0 ? /* @__PURE__ */ G(g, { ...tr([...o, ...r, ...i], y), children: H }) : H });
|
|
2289
2290
|
}), p = (f) => {
|
|
2290
|
-
const a =
|
|
2291
|
-
return
|
|
2291
|
+
const a = E.useContext(l);
|
|
2292
|
+
return E.useCallback(
|
|
2292
2293
|
(S) => {
|
|
2293
2294
|
_(a[f], S);
|
|
2294
2295
|
},
|
|
2295
2296
|
[a, f]
|
|
2296
2297
|
);
|
|
2297
2298
|
}, T = (f) => {
|
|
2298
|
-
const S =
|
|
2299
|
+
const S = E.useContext(l)[f], H = E.useCallback(
|
|
2299
2300
|
(y) => Y(S, y),
|
|
2300
2301
|
[S]
|
|
2301
2302
|
);
|
|
2302
|
-
return
|
|
2303
|
-
|
|
2303
|
+
return E.useSyncExternalStore(
|
|
2304
|
+
H,
|
|
2304
2305
|
() => it(S),
|
|
2305
2306
|
() => it(S)
|
|
2306
2307
|
);
|
|
2307
2308
|
}, w = (f) => {
|
|
2308
|
-
const S =
|
|
2309
|
+
const S = E.useContext(l)[f], [H, y] = E.useState(an(it, S));
|
|
2309
2310
|
return Ie(
|
|
2310
2311
|
() => Y(S, (k) => {
|
|
2311
|
-
k !==
|
|
2312
|
+
k !== H && y(un(k));
|
|
2312
2313
|
}),
|
|
2313
|
-
[S,
|
|
2314
|
-
),
|
|
2315
|
-
}, R =
|
|
2314
|
+
[S, H]
|
|
2315
|
+
), H;
|
|
2316
|
+
}, R = E.version.startsWith("18") ? T : w;
|
|
2316
2317
|
return {
|
|
2317
2318
|
Component: x,
|
|
2318
2319
|
useEmitter: (f, a) => {
|
|
2319
|
-
const
|
|
2320
|
-
Ie(() => Y(
|
|
2320
|
+
const H = E.useContext(l)[f];
|
|
2321
|
+
Ie(() => Y(H, a), [a, H]);
|
|
2321
2322
|
},
|
|
2322
2323
|
useEmitterValue: R,
|
|
2323
2324
|
usePublisher: p
|
|
2324
2325
|
};
|
|
2325
2326
|
}
|
|
2326
|
-
const Re =
|
|
2327
|
+
const Re = E.createContext(void 0), Qn = E.createContext(void 0), Oe = "-webkit-sticky", vn = "sticky", Ze = Xn(() => {
|
|
2327
2328
|
if (typeof document > "u")
|
|
2328
2329
|
return vn;
|
|
2329
2330
|
const t = document.createElement("div");
|
|
2330
2331
|
return t.style.position = Oe, t.style.position === Oe ? Oe : vn;
|
|
2331
|
-
}), to = typeof document < "u" ?
|
|
2332
|
+
}), to = typeof document < "u" ? E.useLayoutEffect : E.useEffect;
|
|
2332
2333
|
function ke(t) {
|
|
2333
2334
|
return "self" in t;
|
|
2334
2335
|
}
|
|
@@ -2336,7 +2337,7 @@ function er(t) {
|
|
|
2336
2337
|
return "body" in t;
|
|
2337
2338
|
}
|
|
2338
2339
|
function eo(t, e, n, o = Xt, r, s) {
|
|
2339
|
-
const i =
|
|
2340
|
+
const i = E.useRef(null), l = E.useRef(null), c = E.useRef(null), d = E.useCallback(
|
|
2340
2341
|
(p) => {
|
|
2341
2342
|
let T, w, R;
|
|
2342
2343
|
const h = p.target;
|
|
@@ -2356,7 +2357,7 @@ function eo(t, e, n, o = Xt, r, s) {
|
|
|
2356
2357
|
},
|
|
2357
2358
|
[t, e, s]
|
|
2358
2359
|
);
|
|
2359
|
-
|
|
2360
|
+
E.useEffect(() => {
|
|
2360
2361
|
const p = r || i.current;
|
|
2361
2362
|
return o(r || i.current), d({ suppressFlushSync: !0, target: p }), p.addEventListener("scroll", d, { passive: !0 }), () => {
|
|
2362
2363
|
o(null), p.removeEventListener("scroll", d);
|
|
@@ -2369,9 +2370,9 @@ function eo(t, e, n, o = Xt, r, s) {
|
|
|
2369
2370
|
const w = p.behavior === "smooth";
|
|
2370
2371
|
let R, h, f;
|
|
2371
2372
|
ke(T) ? (h = Math.max(
|
|
2372
|
-
|
|
2373
|
+
Ht(T.document.documentElement, s === !0 ? "width" : "height"),
|
|
2373
2374
|
s === !0 ? T.document.documentElement.scrollWidth : T.document.documentElement.scrollHeight
|
|
2374
|
-
), R = s === !0 ? T.innerWidth : T.innerHeight, f = s === !0 ? window.scrollX : window.scrollY) : (h = T[s === !0 ? "scrollWidth" : "scrollHeight"], R =
|
|
2375
|
+
), R = s === !0 ? T.innerWidth : T.innerHeight, f = s === !0 ? window.scrollX : window.scrollY) : (h = T[s === !0 ? "scrollWidth" : "scrollHeight"], R = Ht(T, s === !0 ? "width" : "height"), f = T[s === !0 ? "scrollLeft" : "scrollTop"]);
|
|
2375
2376
|
const a = h - R;
|
|
2376
2377
|
if (p.top = Math.ceil(Math.max(Math.min(a, p.top), 0)), Un(R, h) || p.top === f) {
|
|
2377
2378
|
t({ scrollHeight: h, scrollTop: f, viewportHeight: R }), w && e(!0);
|
|
@@ -2421,7 +2422,7 @@ const nr = /* @__PURE__ */ j(() => {
|
|
|
2421
2422
|
}), or = /* @__PURE__ */ j(
|
|
2422
2423
|
([t, e]) => ({ ...t, ...e }),
|
|
2423
2424
|
ot(Jn, nr)
|
|
2424
|
-
), rr = ({ height: t }) => /* @__PURE__ */ G("div", { style: { height: t } }), sr = { overflowAnchor: "none", position: Ze(), zIndex: 1 }, no = { overflowAnchor: "none" }, ir = { ...no, display: "inline-block", height: "100%" }, Cn = /* @__PURE__ */
|
|
2425
|
+
), rr = ({ height: t }) => /* @__PURE__ */ G("div", { style: { height: t } }), sr = { overflowAnchor: "none", position: Ze(), zIndex: 1 }, no = { overflowAnchor: "none" }, ir = { ...no, display: "inline-block", height: "100%" }, Cn = /* @__PURE__ */ E.memo(function({ showTopList: e = !1 }) {
|
|
2425
2426
|
const n = A("listState"), o = Ct("sizeRanges"), r = A("useWindowScroll"), s = A("customScrollParent"), i = Ct("windowScrollContainerState"), l = Ct("scrollContainerState"), c = s || r ? i : l, d = A("itemContent"), m = A("context"), x = A("groupContent"), p = A("trackItemSizes"), T = A("itemSize"), w = A("log"), R = Ct("gap"), h = A("horizontalDirection"), { callbackRef: f } = zn(
|
|
2426
2427
|
o,
|
|
2427
2428
|
T,
|
|
@@ -2432,11 +2433,11 @@ const nr = /* @__PURE__ */ j(() => {
|
|
|
2432
2433
|
s,
|
|
2433
2434
|
h,
|
|
2434
2435
|
A("skipAnimationFrameInResizeObserver")
|
|
2435
|
-
), [a, S] =
|
|
2436
|
+
), [a, S] = E.useState(0);
|
|
2436
2437
|
tn("deviation", (F) => {
|
|
2437
2438
|
a !== F && S(F);
|
|
2438
2439
|
});
|
|
2439
|
-
const
|
|
2440
|
+
const H = A("EmptyPlaceholder"), y = A("ScrollSeekPlaceholder") ?? rr, k = A("ListComponent"), u = A("ItemComponent"), g = A("GroupComponent"), C = A("computeItemKey"), z = A("isSeeking"), O = A("groupIndices").length > 0, V = A("alignToBottom"), N = A("initialItemFinalLocationReached"), Z = e ? {} : {
|
|
2440
2441
|
boxSizing: "border-box",
|
|
2441
2442
|
...h ? {
|
|
2442
2443
|
display: "inline-block",
|
|
@@ -2452,7 +2453,7 @@ const nr = /* @__PURE__ */ j(() => {
|
|
|
2452
2453
|
},
|
|
2453
2454
|
...N ? {} : { visibility: "hidden" }
|
|
2454
2455
|
};
|
|
2455
|
-
return !e && n.totalCount === 0 &&
|
|
2456
|
+
return !e && n.totalCount === 0 && H !== null && H !== void 0 ? /* @__PURE__ */ G(H, { ...nt(H, m) }) : /* @__PURE__ */ G(
|
|
2456
2457
|
k,
|
|
2457
2458
|
{
|
|
2458
2459
|
...nt(k, m),
|
|
@@ -2528,11 +2529,11 @@ function nt(t, e) {
|
|
|
2528
2529
|
function oo(t, e) {
|
|
2529
2530
|
return { item: typeof t == "string" ? void 0 : e };
|
|
2530
2531
|
}
|
|
2531
|
-
const ar = /* @__PURE__ */
|
|
2532
|
+
const ar = /* @__PURE__ */ E.memo(function() {
|
|
2532
2533
|
const e = A("HeaderComponent"), n = Ct("headerHeight"), o = A("HeaderFooterTag"), r = kt(
|
|
2533
|
-
|
|
2534
|
+
E.useMemo(
|
|
2534
2535
|
() => (i) => {
|
|
2535
|
-
n(
|
|
2536
|
+
n(Ht(i, "height"));
|
|
2536
2537
|
},
|
|
2537
2538
|
[n]
|
|
2538
2539
|
),
|
|
@@ -2540,11 +2541,11 @@ const ar = /* @__PURE__ */ H.memo(function() {
|
|
|
2540
2541
|
A("skipAnimationFrameInResizeObserver")
|
|
2541
2542
|
), s = A("context");
|
|
2542
2543
|
return e != null ? /* @__PURE__ */ G(o, { ref: r, children: /* @__PURE__ */ G(e, { ...nt(e, s) }) }) : null;
|
|
2543
|
-
}), dr = /* @__PURE__ */
|
|
2544
|
+
}), dr = /* @__PURE__ */ E.memo(function() {
|
|
2544
2545
|
const e = A("FooterComponent"), n = Ct("footerHeight"), o = A("HeaderFooterTag"), r = kt(
|
|
2545
|
-
|
|
2546
|
+
E.useMemo(
|
|
2546
2547
|
() => (i) => {
|
|
2547
|
-
n(
|
|
2548
|
+
n(Ht(i, "height"));
|
|
2548
2549
|
},
|
|
2549
2550
|
[n]
|
|
2550
2551
|
),
|
|
@@ -2554,7 +2555,7 @@ const ar = /* @__PURE__ */ H.memo(function() {
|
|
|
2554
2555
|
return e != null ? /* @__PURE__ */ G(o, { ref: r, children: /* @__PURE__ */ G(e, { ...nt(e, s) }) }) : null;
|
|
2555
2556
|
});
|
|
2556
2557
|
function Je({ useEmitter: t, useEmitterValue: e, usePublisher: n }) {
|
|
2557
|
-
return
|
|
2558
|
+
return E.memo(function({ children: s, style: i, context: l, ...c }) {
|
|
2558
2559
|
const d = n("scrollContainerState"), m = e("ScrollerComponent"), x = n("smoothScrollTargetReached"), p = e("scrollerRef"), T = e("horizontalDirection") || !1, { scrollByCallback: w, scrollerRef: R, scrollToCallback: h } = eo(
|
|
2559
2560
|
d,
|
|
2560
2561
|
x,
|
|
@@ -2579,8 +2580,8 @@ function Je({ useEmitter: t, useEmitterValue: e, usePublisher: n }) {
|
|
|
2579
2580
|
});
|
|
2580
2581
|
}
|
|
2581
2582
|
function Qe({ useEmitter: t, useEmitterValue: e, usePublisher: n }) {
|
|
2582
|
-
return
|
|
2583
|
-
const d = n("windowScrollContainerState"), m = e("ScrollerComponent"), x = n("smoothScrollTargetReached"), p = e("totalListHeight"), T = e("deviation"), w = e("customScrollParent"), R =
|
|
2583
|
+
return E.memo(function({ children: s, style: i, context: l, ...c }) {
|
|
2584
|
+
const d = n("windowScrollContainerState"), m = e("ScrollerComponent"), x = n("smoothScrollTargetReached"), p = e("totalListHeight"), T = e("deviation"), w = e("customScrollParent"), R = E.useRef(null), h = e("scrollerRef"), { scrollByCallback: f, scrollerRef: a, scrollToCallback: S } = eo(
|
|
2584
2585
|
d,
|
|
2585
2586
|
x,
|
|
2586
2587
|
m,
|
|
@@ -2603,26 +2604,26 @@ function Qe({ useEmitter: t, useEmitterValue: e, usePublisher: n }) {
|
|
|
2603
2604
|
});
|
|
2604
2605
|
}
|
|
2605
2606
|
const fr = ({ children: t }) => {
|
|
2606
|
-
const e =
|
|
2607
|
-
() => re(n, (c) =>
|
|
2607
|
+
const e = E.useContext(Re), n = Ct("viewportHeight"), o = Ct("fixedItemHeight"), r = A("alignToBottom"), s = A("horizontalDirection"), i = E.useMemo(
|
|
2608
|
+
() => re(n, (c) => Ht(c, s ? "width" : "height")),
|
|
2608
2609
|
[n, s]
|
|
2609
2610
|
), l = kt(i, !0, A("skipAnimationFrameInResizeObserver"));
|
|
2610
|
-
return
|
|
2611
|
+
return E.useEffect(() => {
|
|
2611
2612
|
e && (n(e.viewportHeight), o(e.itemHeight));
|
|
2612
2613
|
}, [e, n, o]), /* @__PURE__ */ G("div", { "data-viewport-type": "element", ref: l, style: Jt(r), children: t });
|
|
2613
2614
|
}, mr = ({ children: t }) => {
|
|
2614
|
-
const e =
|
|
2615
|
+
const e = E.useContext(Re), n = Ct("windowViewportRect"), o = Ct("fixedItemHeight"), r = A("customScrollParent"), s = Ne(
|
|
2615
2616
|
n,
|
|
2616
2617
|
r,
|
|
2617
2618
|
A("skipAnimationFrameInResizeObserver")
|
|
2618
2619
|
), i = A("alignToBottom");
|
|
2619
|
-
return
|
|
2620
|
-
e && (o(e.itemHeight), n({ offsetTop: 0, visibleHeight: e.viewportHeight, visibleWidth: 100 }));
|
|
2620
|
+
return E.useEffect(() => {
|
|
2621
|
+
e && (o(e.itemHeight), n({ listHeight: 0, offsetTop: 0, visibleHeight: e.viewportHeight, visibleWidth: 100 }));
|
|
2621
2622
|
}, [e, n, o]), /* @__PURE__ */ G("div", { "data-viewport-type": "window", ref: s, style: Jt(i), children: t });
|
|
2622
2623
|
}, pr = ({ children: t }) => {
|
|
2623
2624
|
const e = A("TopItemListComponent") ?? "div", n = A("headerHeight"), o = { ...ur, marginTop: `${n}px` }, r = A("context");
|
|
2624
2625
|
return /* @__PURE__ */ G(e, { style: o, ...nt(e, r), children: t });
|
|
2625
|
-
}, hr = /* @__PURE__ */
|
|
2626
|
+
}, hr = /* @__PURE__ */ E.memo(function(e) {
|
|
2626
2627
|
const n = A("useWindowScroll"), o = A("topItemsIndexes").length > 0, r = A("customScrollParent"), s = A("context");
|
|
2627
2628
|
return /* @__PURE__ */ Dt(r || n ? Ir : gr, { ...e, context: s, children: [
|
|
2628
2629
|
o && /* @__PURE__ */ G(pr, { children: /* @__PURE__ */ G(Cn, { showTopList: !0 }) }),
|
|
@@ -2737,7 +2738,7 @@ const fr = ({ children: t }) => {
|
|
|
2737
2738
|
}), Sr = /* @__PURE__ */ j(
|
|
2738
2739
|
([t, e]) => ({ ...t, ...e }),
|
|
2739
2740
|
ot(Jn, xr)
|
|
2740
|
-
), Tr = ({ height: t }) => /* @__PURE__ */ G("tr", { children: /* @__PURE__ */ G("td", { style: { height: t } }) }), vr = ({ height: t }) => /* @__PURE__ */ G("tr", { children: /* @__PURE__ */ G("td", { style: { border: 0, height: t, padding: 0 } }) }), Cr = { overflowAnchor: "none" }, wn = { position: Ze(), zIndex: 2, overflowAnchor: "none" }, yn = /* @__PURE__ */
|
|
2741
|
+
), Tr = ({ height: t }) => /* @__PURE__ */ G("tr", { children: /* @__PURE__ */ G("td", { style: { height: t } }) }), vr = ({ height: t }) => /* @__PURE__ */ G("tr", { children: /* @__PURE__ */ G("td", { style: { border: 0, height: t, padding: 0 } }) }), Cr = { overflowAnchor: "none" }, wn = { position: Ze(), zIndex: 2, overflowAnchor: "none" }, yn = /* @__PURE__ */ E.memo(function({ showTopList: e = !1 }) {
|
|
2741
2742
|
const n = M("listState"), o = M("computeItemKey"), r = M("firstItemIndex"), s = M("context"), i = M("isSeeking"), l = M("fixedHeaderHeight"), c = M("groupIndices").length > 0, d = M("itemContent"), m = M("groupContent"), x = M("ScrollSeekPlaceholder") ?? Tr, p = M("GroupComponent"), T = M("TableRowComponent"), w = (e ? n.topItems : []).reduce((h, f, a) => (a === 0 ? h.push(f.size) : h.push(h[a - 1] + f.size), h), []);
|
|
2742
2743
|
return (e ? n.topItems : n.items).map((h) => {
|
|
2743
2744
|
const f = h.originalIndex, a = o(f + r, h.data, s), S = e ? f === 0 ? 0 : w[f - 1] : 0;
|
|
@@ -2779,7 +2780,7 @@ const fr = ({ children: t }) => {
|
|
|
2779
2780
|
c ? d(h.index, h.groupIndex, h.data, s) : d(h.index, h.data, s)
|
|
2780
2781
|
);
|
|
2781
2782
|
});
|
|
2782
|
-
}), wr = /* @__PURE__ */
|
|
2783
|
+
}), wr = /* @__PURE__ */ E.memo(function() {
|
|
2783
2784
|
const e = M("listState"), n = M("topItemsIndexes").length > 0, o = bt("sizeRanges"), r = M("useWindowScroll"), s = M("customScrollParent"), i = bt("windowScrollContainerState"), l = bt("scrollContainerState"), c = s || r ? i : l, d = M("trackItemSizes"), m = M("itemSize"), x = M("log"), { callbackRef: p, ref: T } = zn(
|
|
2784
2785
|
o,
|
|
2785
2786
|
m,
|
|
@@ -2790,12 +2791,12 @@ const fr = ({ children: t }) => {
|
|
|
2790
2791
|
s,
|
|
2791
2792
|
!1,
|
|
2792
2793
|
M("skipAnimationFrameInResizeObserver")
|
|
2793
|
-
), [w, R] =
|
|
2794
|
+
), [w, R] = E.useState(0);
|
|
2794
2795
|
en("deviation", (O) => {
|
|
2795
2796
|
w !== O && (T.current.style.marginTop = `${O}px`, R(O));
|
|
2796
2797
|
});
|
|
2797
|
-
const h = M("EmptyPlaceholder"), f = M("FillerRow") ?? vr, a = M("TableBodyComponent"), S = M("paddingTopAddition"),
|
|
2798
|
-
if (
|
|
2798
|
+
const h = M("EmptyPlaceholder"), f = M("FillerRow") ?? vr, a = M("TableBodyComponent"), S = M("paddingTopAddition"), H = M("statefulTotalCount"), y = M("context");
|
|
2799
|
+
if (H === 0 && h !== null && h !== void 0)
|
|
2799
2800
|
return /* @__PURE__ */ G(h, { ...nt(h, y) });
|
|
2800
2801
|
const k = (n ? e.topItems : []).reduce((O, V) => O + V.size, 0), u = e.offsetTop + S + w - k, g = e.offsetBottom, C = u > 0 ? /* @__PURE__ */ G(f, { context: y, height: u }, "padding-top") : null, z = g > 0 ? /* @__PURE__ */ G(f, { context: y, height: g }, "padding-bottom") : null;
|
|
2801
2802
|
return /* @__PURE__ */ Dt(a, { "data-testid": "virtuoso-item-list", ref: p, ...nt(a, y), children: [
|
|
@@ -2805,33 +2806,33 @@ const fr = ({ children: t }) => {
|
|
|
2805
2806
|
z
|
|
2806
2807
|
] });
|
|
2807
2808
|
}), yr = ({ children: t }) => {
|
|
2808
|
-
const e =
|
|
2809
|
-
|
|
2809
|
+
const e = E.useContext(Re), n = bt("viewportHeight"), o = bt("fixedItemHeight"), r = kt(
|
|
2810
|
+
E.useMemo(() => re(n, (s) => Ht(s, "height")), [n]),
|
|
2810
2811
|
!0,
|
|
2811
2812
|
M("skipAnimationFrameInResizeObserver")
|
|
2812
2813
|
);
|
|
2813
|
-
return
|
|
2814
|
+
return E.useEffect(() => {
|
|
2814
2815
|
e && (n(e.viewportHeight), o(e.itemHeight));
|
|
2815
2816
|
}, [e, n, o]), /* @__PURE__ */ G("div", { "data-viewport-type": "element", ref: r, style: Jt(!1), children: t });
|
|
2816
2817
|
}, br = ({ children: t }) => {
|
|
2817
|
-
const e =
|
|
2818
|
+
const e = E.useContext(Re), n = bt("windowViewportRect"), o = bt("fixedItemHeight"), r = M("customScrollParent"), s = Ne(
|
|
2818
2819
|
n,
|
|
2819
2820
|
r,
|
|
2820
2821
|
M("skipAnimationFrameInResizeObserver")
|
|
2821
2822
|
);
|
|
2822
|
-
return
|
|
2823
|
-
e && (o(e.itemHeight), n({ offsetTop: 0, visibleHeight: e.viewportHeight, visibleWidth: 100 }));
|
|
2823
|
+
return E.useEffect(() => {
|
|
2824
|
+
e && (o(e.itemHeight), n({ listHeight: 0, offsetTop: 0, visibleHeight: e.viewportHeight, visibleWidth: 100 }));
|
|
2824
2825
|
}, [e, n, o]), /* @__PURE__ */ G("div", { "data-viewport-type": "window", ref: s, style: Jt(!1), children: t });
|
|
2825
|
-
}, Rr = /* @__PURE__ */
|
|
2826
|
+
}, Rr = /* @__PURE__ */ E.memo(function(e) {
|
|
2826
2827
|
const n = M("useWindowScroll"), o = M("customScrollParent"), r = bt("fixedHeaderHeight"), s = bt("fixedFooterHeight"), i = M("fixedHeaderContent"), l = M("fixedFooterContent"), c = M("context"), d = kt(
|
|
2827
|
-
|
|
2828
|
+
E.useMemo(() => re(r, (a) => Ht(a, "height")), [r]),
|
|
2828
2829
|
!0,
|
|
2829
2830
|
M("skipAnimationFrameInResizeObserver")
|
|
2830
2831
|
), m = kt(
|
|
2831
|
-
|
|
2832
|
+
E.useMemo(() => re(s, (a) => Ht(a, "height")), [s]),
|
|
2832
2833
|
!0,
|
|
2833
2834
|
M("skipAnimationFrameInResizeObserver")
|
|
2834
|
-
), x = o || n ?
|
|
2835
|
+
), x = o || n ? Er : Hr, p = o || n ? br : yr, T = M("TableComponent"), w = M("TableHeadComponent"), R = M("TableFooterComponent"), h = i ? /* @__PURE__ */ G(
|
|
2835
2836
|
w,
|
|
2836
2837
|
{
|
|
2837
2838
|
ref: d,
|
|
@@ -2918,7 +2919,7 @@ const fr = ({ children: t }) => {
|
|
|
2918
2919
|
}
|
|
2919
2920
|
},
|
|
2920
2921
|
Rr
|
|
2921
|
-
),
|
|
2922
|
+
), Hr = /* @__PURE__ */ Je({ useEmitter: en, useEmitterValue: M, usePublisher: bt }), Er = /* @__PURE__ */ Qe({ useEmitter: en, useEmitterValue: M, usePublisher: bt }), Zr = so, Xr = so, bn = {
|
|
2922
2923
|
bottom: 0,
|
|
2923
2924
|
itemHeight: 0,
|
|
2924
2925
|
items: [],
|
|
@@ -2934,8 +2935,8 @@ const fr = ({ children: t }) => {
|
|
|
2934
2935
|
offsetBottom: 0,
|
|
2935
2936
|
offsetTop: 0,
|
|
2936
2937
|
top: 0
|
|
2937
|
-
}, { ceil: Rn, floor: Ce, max: oe, min: Le, round:
|
|
2938
|
-
function
|
|
2938
|
+
}, { ceil: Rn, floor: Ce, max: oe, min: Le, round: Hn } = Math;
|
|
2939
|
+
function En(t, e, n) {
|
|
2939
2940
|
return Array.from({ length: e - t + 1 }).map((o, r) => ({ data: n === null ? null : n[r + t], index: r + t }));
|
|
2940
2941
|
}
|
|
2941
2942
|
function Or(t) {
|
|
@@ -2957,7 +2958,7 @@ const Lr = /* @__PURE__ */ j(
|
|
|
2957
2958
|
p,
|
|
2958
2959
|
T,
|
|
2959
2960
|
{ didMount: w, propsReady: R },
|
|
2960
|
-
{ customScrollParent: h, useWindowScroll: f, windowScrollContainerState: a, windowScrollTo: S, windowViewportRect:
|
|
2961
|
+
{ customScrollParent: h, useWindowScroll: f, windowScrollContainerState: a, windowScrollTo: S, windowViewportRect: H },
|
|
2961
2962
|
y
|
|
2962
2963
|
]) => {
|
|
2963
2964
|
const k = v(0), u = v(0), g = v(bn), C = v({ height: 0, width: 0 }), z = v({ height: 0, width: 0 }), O = U(), V = U(), N = v(0), Z = v(null), F = v({ column: 0, row: 0 }), mt = U(), q = U(), Q = v(!1), gt = v(0), ut = v(!0), xt = v(!1), Ft = v(!1);
|
|
@@ -3050,18 +3051,18 @@ const Lr = /* @__PURE__ */ j(
|
|
|
3050
3051
|
ct,
|
|
3051
3052
|
Vt
|
|
3052
3053
|
]) => {
|
|
3053
|
-
const { column: Pt, row: ee } = rt, { height: he, width:
|
|
3054
|
+
const { column: Pt, row: ee } = rt, { height: he, width: He } = tt, { width: nn } = X;
|
|
3054
3055
|
if (St === 0 && (b === 0 || nn === 0))
|
|
3055
3056
|
return bn;
|
|
3056
|
-
if (
|
|
3057
|
+
if (He === 0) {
|
|
3057
3058
|
const cn = Ke(Vt, b), uo = cn + Math.max(St - 1, 0);
|
|
3058
|
-
return Or(
|
|
3059
|
+
return Or(En(cn, uo, lt));
|
|
3059
3060
|
}
|
|
3060
|
-
const ge = io(nn,
|
|
3061
|
+
const ge = io(nn, He, Pt);
|
|
3061
3062
|
let jt, Mt;
|
|
3062
3063
|
ct ? D === 0 && K === 0 && St > 0 ? (jt = 0, Mt = St - 1) : (jt = ge * Ce((D + ee) / (he + ee)), Mt = ge * Rn((K + ee) / (he + ee)) - 1, Mt = Le(b - 1, oe(Mt, ge - 1)), jt = Le(Mt, oe(0, jt))) : (jt = 0, Mt = -1);
|
|
3063
|
-
const on =
|
|
3064
|
-
return { bottom: rn, itemHeight: he, items: on, itemWidth:
|
|
3064
|
+
const on = En(jt, Mt, lt), { bottom: rn, top: sn } = Bn(X, rt, tt, on), ln = Rn(b / ge), co = ln * he + (ln - 1) * ee - rn;
|
|
3065
|
+
return { bottom: rn, itemHeight: he, items: on, itemWidth: He, offsetBottom: co, offsetTop: sn, top: sn };
|
|
3065
3066
|
}
|
|
3066
3067
|
)
|
|
3067
3068
|
),
|
|
@@ -3113,7 +3114,7 @@ const Lr = /* @__PURE__ */ j(
|
|
|
3113
3114
|
Bt(0),
|
|
3114
3115
|
et()
|
|
3115
3116
|
)
|
|
3116
|
-
),
|
|
3117
|
+
), Et = vt(
|
|
3117
3118
|
I(
|
|
3118
3119
|
P(g),
|
|
3119
3120
|
$(Q),
|
|
@@ -3126,7 +3127,7 @@ const Lr = /* @__PURE__ */ j(
|
|
|
3126
3127
|
zt(0)
|
|
3127
3128
|
)
|
|
3128
3129
|
);
|
|
3129
|
-
L(
|
|
3130
|
+
L(Et, T.scrollSeekRangeChanged), L(
|
|
3130
3131
|
I(
|
|
3131
3132
|
O,
|
|
3132
3133
|
$(C, z, k, F),
|
|
@@ -3135,7 +3136,7 @@ const Lr = /* @__PURE__ */ j(
|
|
|
3135
3136
|
let Vt = X.index;
|
|
3136
3137
|
Vt === "LAST" && (Vt = rt - 1), Vt = oe(0, Vt, Le(rt - 1, Vt));
|
|
3137
3138
|
let Pt = Ge(D, tt, K, Vt);
|
|
3138
|
-
return lt === "end" ? Pt =
|
|
3139
|
+
return lt === "end" ? Pt = Hn(Pt - D.height + K.height) : lt === "center" && (Pt = Hn(Pt - D.height / 2 + K.height / 2)), ct !== void 0 && ct !== 0 && (Pt += ct), { behavior: St, top: Pt };
|
|
3139
3140
|
})
|
|
3140
3141
|
),
|
|
3141
3142
|
c
|
|
@@ -3149,7 +3150,7 @@ const Lr = /* @__PURE__ */ j(
|
|
|
3149
3150
|
);
|
|
3150
3151
|
return L(
|
|
3151
3152
|
I(
|
|
3152
|
-
|
|
3153
|
+
H,
|
|
3153
3154
|
B((b) => ({ height: b.visibleHeight, width: b.visibleWidth }))
|
|
3154
3155
|
),
|
|
3155
3156
|
C
|
|
@@ -3178,7 +3179,7 @@ const Lr = /* @__PURE__ */ j(
|
|
|
3178
3179
|
viewportDimensions: C,
|
|
3179
3180
|
windowScrollContainerState: a,
|
|
3180
3181
|
windowScrollTo: S,
|
|
3181
|
-
windowViewportRect:
|
|
3182
|
+
windowViewportRect: H,
|
|
3182
3183
|
...T,
|
|
3183
3184
|
// output
|
|
3184
3185
|
gridState: g,
|
|
@@ -3188,7 +3189,7 @@ const Lr = /* @__PURE__ */ j(
|
|
|
3188
3189
|
...p,
|
|
3189
3190
|
endReached: Kt,
|
|
3190
3191
|
propsReady: R,
|
|
3191
|
-
rangeChanged:
|
|
3192
|
+
rangeChanged: Et,
|
|
3192
3193
|
startReached: Qt,
|
|
3193
3194
|
stateChanged: mt,
|
|
3194
3195
|
stateRestoreInProgress: Q,
|
|
@@ -3241,15 +3242,15 @@ const zr = /* @__PURE__ */ j(() => {
|
|
|
3241
3242
|
}), Fr = /* @__PURE__ */ j(
|
|
3242
3243
|
([t, e]) => ({ ...t, ...e }),
|
|
3243
3244
|
ot(Lr, zr)
|
|
3244
|
-
), Vr = /* @__PURE__ */
|
|
3245
|
+
), Vr = /* @__PURE__ */ E.memo(function() {
|
|
3245
3246
|
const e = st("gridState"), n = st("listClassName"), o = st("itemClassName"), r = st("itemContent"), s = st("computeItemKey"), i = st("isSeeking"), l = wt("scrollHeight"), c = st("ItemComponent"), d = st("ListComponent"), m = st("ScrollSeekPlaceholder"), x = st("context"), p = wt("itemDimensions"), T = wt("gap"), w = st("log"), R = st("stateRestoreInProgress"), h = wt("reportReadyState"), f = kt(
|
|
3246
|
-
|
|
3247
|
+
E.useMemo(
|
|
3247
3248
|
() => (a) => {
|
|
3248
3249
|
const S = a.parentElement.parentElement.scrollHeight;
|
|
3249
3250
|
l(S);
|
|
3250
|
-
const
|
|
3251
|
-
if (
|
|
3252
|
-
const { height: y, width: k } =
|
|
3251
|
+
const H = a.firstChild;
|
|
3252
|
+
if (H !== null) {
|
|
3253
|
+
const { height: y, width: k } = H.getBoundingClientRect();
|
|
3253
3254
|
p({ height: y, width: k });
|
|
3254
3255
|
}
|
|
3255
3256
|
T({
|
|
@@ -3296,11 +3297,11 @@ const zr = /* @__PURE__ */ j(() => {
|
|
|
3296
3297
|
})
|
|
3297
3298
|
}
|
|
3298
3299
|
);
|
|
3299
|
-
}), Pr =
|
|
3300
|
+
}), Pr = E.memo(function() {
|
|
3300
3301
|
const e = st("HeaderComponent"), n = wt("headerHeight"), o = st("headerFooterTag"), r = kt(
|
|
3301
|
-
|
|
3302
|
+
E.useMemo(
|
|
3302
3303
|
() => (i) => {
|
|
3303
|
-
n(
|
|
3304
|
+
n(Ht(i, "height"));
|
|
3304
3305
|
},
|
|
3305
3306
|
[n]
|
|
3306
3307
|
),
|
|
@@ -3308,11 +3309,11 @@ const zr = /* @__PURE__ */ j(() => {
|
|
|
3308
3309
|
!1
|
|
3309
3310
|
), s = st("context");
|
|
3310
3311
|
return e != null ? /* @__PURE__ */ G(o, { ref: r, children: /* @__PURE__ */ G(e, { ...nt(e, s) }) }) : null;
|
|
3311
|
-
}), Wr =
|
|
3312
|
+
}), Wr = E.memo(function() {
|
|
3312
3313
|
const e = st("FooterComponent"), n = wt("footerHeight"), o = st("headerFooterTag"), r = kt(
|
|
3313
|
-
|
|
3314
|
+
E.useMemo(
|
|
3314
3315
|
() => (i) => {
|
|
3315
|
-
n(
|
|
3316
|
+
n(Ht(i, "height"));
|
|
3316
3317
|
},
|
|
3317
3318
|
[n]
|
|
3318
3319
|
),
|
|
@@ -3321,8 +3322,8 @@ const zr = /* @__PURE__ */ j(() => {
|
|
|
3321
3322
|
), s = st("context");
|
|
3322
3323
|
return e != null ? /* @__PURE__ */ G(o, { ref: r, children: /* @__PURE__ */ G(e, { ...nt(e, s) }) }) : null;
|
|
3323
3324
|
}), Gr = ({ children: t }) => {
|
|
3324
|
-
const e =
|
|
3325
|
-
|
|
3325
|
+
const e = E.useContext(Qn), n = wt("itemDimensions"), o = wt("viewportDimensions"), r = kt(
|
|
3326
|
+
E.useMemo(
|
|
3326
3327
|
() => (s) => {
|
|
3327
3328
|
o(s.getBoundingClientRect());
|
|
3328
3329
|
},
|
|
@@ -3331,15 +3332,15 @@ const zr = /* @__PURE__ */ j(() => {
|
|
|
3331
3332
|
!0,
|
|
3332
3333
|
!1
|
|
3333
3334
|
);
|
|
3334
|
-
return
|
|
3335
|
+
return E.useEffect(() => {
|
|
3335
3336
|
e && (o({ height: e.viewportHeight, width: e.viewportWidth }), n({ height: e.itemHeight, width: e.itemWidth }));
|
|
3336
3337
|
}, [e, o, n]), /* @__PURE__ */ G("div", { ref: r, style: Jt(!1), children: t });
|
|
3337
3338
|
}, Ar = ({ children: t }) => {
|
|
3338
|
-
const e =
|
|
3339
|
-
return
|
|
3340
|
-
e && (o({ height: e.itemHeight, width: e.itemWidth }), n({ offsetTop: 0, visibleHeight: e.viewportHeight, visibleWidth: e.viewportWidth }));
|
|
3339
|
+
const e = E.useContext(Qn), n = wt("windowViewportRect"), o = wt("itemDimensions"), r = st("customScrollParent"), s = Ne(n, r, !1);
|
|
3340
|
+
return E.useEffect(() => {
|
|
3341
|
+
e && (o({ height: e.itemHeight, width: e.itemWidth }), n({ listHeight: 0, offsetTop: 0, visibleHeight: e.viewportHeight, visibleWidth: e.viewportWidth }));
|
|
3341
3342
|
}, [e, n, o]), /* @__PURE__ */ G("div", { ref: s, style: Jt(!1), children: t });
|
|
3342
|
-
}, Mr = /* @__PURE__ */
|
|
3343
|
+
}, Mr = /* @__PURE__ */ E.memo(function({ ...e }) {
|
|
3343
3344
|
const n = st("useWindowScroll"), o = st("customScrollParent"), r = o || n ? Dr : Nr, s = o || n ? Ar : Gr, i = st("context");
|
|
3344
3345
|
return /* @__PURE__ */ G(r, { ...e, ...nt(r, i), children: /* @__PURE__ */ Dt(s, { children: [
|
|
3345
3346
|
/* @__PURE__ */ G(Pr, {}),
|