react-virtuoso 0.0.0-development → 0.0.0-semantic-release
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/README.md +24 -19
- package/dist/index.cjs +1 -1
- package/dist/index.d.ts +167 -29
- package/dist/index.mjs +749 -233
- package/package.json +44 -44
- package/dist/react-urx/index.d.ts +0 -111
- package/dist/urx/index.d.ts +0 -7
package/README.md
CHANGED
|
@@ -2,21 +2,21 @@
|
|
|
2
2
|
|
|
3
3
|
[](//badge.fury.io/js/react-virtuoso)
|
|
4
4
|
|
|
5
|
-
**React Virtuoso**
|
|
5
|
+
**React Virtuoso** - the most complete React virtualization rendering list/table/grid family of components.
|
|
6
6
|
|
|
7
7
|
- Variable sized items out of the box; no manual measurements or hard-coding item heights is necessary;
|
|
8
|
-
-
|
|
9
|
-
- [Grouped mode with sticky headers](
|
|
10
|
-
- [Responsive grid layout](
|
|
11
|
-
- [Table Support](
|
|
12
|
-
- [Automatic handling of content resize](
|
|
13
|
-
- [Custom Header, Footer, and empty list components](
|
|
14
|
-
- [Pinned top items](
|
|
15
|
-
- [Endless scrolling](
|
|
16
|
-
- [Initial top most item index](
|
|
17
|
-
- [Scroll to index method](
|
|
18
|
-
|
|
19
|
-
For live examples and documentation, check the [documentation website](
|
|
8
|
+
- [Chat message list UI](https://virtuoso.dev/virtuoso-message-list/) **NEW**;
|
|
9
|
+
- [Grouped mode with sticky headers](https://virtuoso.dev/grouped-by-first-letter/);
|
|
10
|
+
- [Responsive grid layout](https://virtuoso.dev/grid-responsive-columns/);
|
|
11
|
+
- [Table Support](https://virtuoso.dev/hello-table/);
|
|
12
|
+
- [Automatic handling of content resize](https://virtuoso.dev/auto-resizing/);
|
|
13
|
+
- [Custom Header, Footer, and empty list components](https://virtuoso.dev/customize-structure/);
|
|
14
|
+
- [Pinned top items](https://virtuoso.dev/top-items/);
|
|
15
|
+
- [Endless scrolling](https://virtuoso.dev/endless-scrolling/), [press to load more](https://virtuoso.dev/press-to-load-more/);
|
|
16
|
+
- [Initial top most item index](https://virtuoso.dev/initial-index/);
|
|
17
|
+
- [Scroll to index method](https://virtuoso.dev/scroll-to-index/).
|
|
18
|
+
|
|
19
|
+
For live examples and documentation, check the [documentation website](https://virtuoso.dev).
|
|
20
20
|
|
|
21
21
|
## Sponsors
|
|
22
22
|
|
|
@@ -40,7 +40,12 @@ const App = () => {
|
|
|
40
40
|
ReactDOM.render(<App />, document.getElementById('root'))
|
|
41
41
|
```
|
|
42
42
|
|
|
43
|
-
## [
|
|
43
|
+
## [Message List](https://virtuoso.dev/virtuoso-message-list/)
|
|
44
|
+
|
|
45
|
+
The Virtuoso message list component is built specifically for human/chatbot conversations. In addition to the virtualized rendering, the component exposes an imperative data management
|
|
46
|
+
API that gives you the necessary control over the scroll position when older messages are loaded, new messages arrive, and when the user submits a message. The scroll position can update instantly or with a smooth scroll animation.
|
|
47
|
+
|
|
48
|
+
## [Grouped Mode](https://virtuoso.dev/grouped-by-first-letter/)
|
|
44
49
|
|
|
45
50
|
The `GroupedVirtuoso` component is a variant of the "flat" `Virtuoso`, with the following differences:
|
|
46
51
|
|
|
@@ -49,24 +54,24 @@ The `GroupedVirtuoso` component is a variant of the "flat" `Virtuoso`, with the
|
|
|
49
54
|
- In addition the `itemContent` property, the component requires an additional `groupContent` property,
|
|
50
55
|
which renders the **group header**. The `groupContent` callback receives the zero-based group index as a parameter.
|
|
51
56
|
|
|
52
|
-
## [Grid](
|
|
57
|
+
## [Grid](https://virtuoso.dev/grid-responsive-columns/)
|
|
53
58
|
|
|
54
59
|
The `VirtuosoGrid` component displays **same sized items** in multiple columns.
|
|
55
60
|
The layout and item sizing is controlled through CSS class properties, which allows you to use media queries, min-width, percentage, etc.
|
|
56
61
|
|
|
57
|
-
## [Table](
|
|
62
|
+
## [Table](https://virtuoso.dev/hello-table/)
|
|
58
63
|
|
|
59
64
|
The `TableVirtuoso` component works just like `Virtuoso`, but with HTML tables.
|
|
60
65
|
It supports window scrolling, sticky headers, sticky columns, and works with React Table and MUI Table.
|
|
61
66
|
|
|
62
67
|
## Works With Your UI Library of Choice
|
|
63
68
|
|
|
64
|
-
You can customize the markup up to your requirements - check [the Material UI list demo](
|
|
65
|
-
If you need to support reordering, [check the React Sortable HOC example](
|
|
69
|
+
You can customize the markup up to your requirements - check [the Material UI list demo](https://virtuoso.dev/material-ui-endless-scrolling/).
|
|
70
|
+
If you need to support reordering, [check the React Sortable HOC example](https://virtuoso.dev/react-sortable-hoc/).
|
|
66
71
|
|
|
67
72
|
## Documentation and Demos
|
|
68
73
|
|
|
69
|
-
For in-depth documentation and live examples of the supported features and live demos, check the [documentation website](
|
|
74
|
+
For in-depth documentation and live examples of the supported features and live demos, check the [documentation website](https://virtuoso.dev).
|
|
70
75
|
|
|
71
76
|
## Browser support
|
|
72
77
|
|
package/dist/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react"),t=require("react-dom");function o(e,t){return o=>e(t(o))}function n(e,t){return t(e)}function r(e,t){return o=>e(t,o)}function i(e,t){return()=>e(t)}function l(e,t){return t(e),e}function s(...e){return e}function c(e){e()}function a(e){return()=>e}function u(){}function d(e,t){return e(1,t)}function f(e,t){e(0,t)}function m(e){e(2)}function h(e){return e(4)}function g(e,t){return d(e,r(t,0))}function p(e,t){const o=e(1,(e=>{o(),t(e)}));return o}function v(){const e=[];return(t,o)=>{switch(t){case 2:return void e.splice(0,e.length);case 1:return e.push(o),()=>{const t=e.indexOf(o);t>-1&&e.splice(t,1)};case 0:return void e.slice().forEach((e=>{e(o)}));default:throw new Error(`unrecognized action ${t}`)}}}function x(e){let t=e;const o=v();return(e,n)=>{switch(e){case 1:n(t);break;case 0:t=n;break;case 4:return t}return o(e,n)}}function I(e){return l(v(),(t=>g(e,t)))}function T(e,t){return l(x(t),(t=>g(e,t)))}function w(e,...t){const o=function(...e){return t=>e.reduceRight(n,t)}(...t);return(t,n)=>{switch(t){case 1:return d(e,o(n));case 2:return void m(e)}}}function C(e,t){return e===t}function S(e=C){let t;return o=>n=>{e(t,n)||(t=n,o(n))}}function E(e){return t=>o=>{e(o)&&t(o)}}function H(e){return t=>o(t,e)}function y(e){return t=>()=>t(e)}function b(e,t){return o=>n=>o(t=e(t,n))}function R(e){return t=>o=>{e>0?e--:t(o)}}function z(e){let t,o;return n=>r=>{t=r,o||(o=setTimeout((()=>{o=void 0,n(t)}),e))}}function B(e){let t,o;return n=>r=>{t=r,o&&clearTimeout(o),o=setTimeout((()=>{n(t)}),e)}}function k(...e){const t=new Array(e.length);let o=0,n=null;const r=Math.pow(2,e.length)-1;return e.forEach(((e,i)=>{const l=Math.pow(2,i);d(e,(e=>{const s=o;o|=l,t[i]=e,s!==r&&o===r&&n&&(n(),n=null)}))})),e=>i=>{const l=()=>e([i].concat(t));o===r?l():n=l}}function P(...e){return function(t,o){switch(t){case 1:return function(...e){return()=>{e.map(c)}}(...e.map((e=>d(e,o))));case 2:return;default:throw new Error(`unrecognized action ${t}`)}}}function L(e,t=C){return w(e,S(t))}function O(...e){const t=v(),o=new Array(e.length);let n=0;const r=Math.pow(2,e.length)-1;return e.forEach(((e,i)=>{const l=Math.pow(2,i);d(e,(e=>{o[i]=e,n|=l,n===r&&f(t,o)}))})),function(e,i){switch(e){case 1:return n===r&&i(o),d(t,i);case 2:return m(t);default:throw new Error(`unrecognized action ${e}`)}}}function M(e,t=[],{singleton:o}={singleton:!0}){return{id:W(),constructor:e,dependencies:t,singleton:o}}const W=()=>Symbol();const V="undefined"!=typeof document?e.useLayoutEffect:e.useEffect;function F(t,o,n){const s=Object.keys(o.required||{}),c=Object.keys(o.optional||{}),g=Object.keys(o.methods||{}),p=Object.keys(o.events||{}),v=e.createContext({});function x(e,t){e.propsReady&&f(e.propsReady,!1);for(const n of s){f(e[o.required[n]],t[n])}for(const n of c)if(n in t){f(e[o.optional[n]],t[n])}e.propsReady&&f(e.propsReady,!0)}function I(e){return p.reduce(((t,n)=>(t[n]=function(e){let t,o;const n=()=>t&&t();return function(r,i){switch(r){case 1:if(i){if(o===i)return;return n(),o=i,t=d(e,i),t}return n(),u;case 2:return n(),void(o=null);default:throw new Error(`unrecognized action ${r}`)}}}(e[o.events[n]]),t)),{})}const T=e.forwardRef(((r,u)=>{const{children:h,...T}=r,[w]=e.useState((()=>l(function(e){const t=new Map,o=({id:e,constructor:n,dependencies:r,singleton:i})=>{if(i&&t.has(e))return t.get(e);const l=n(r.map((e=>o(e))));return i&&t.set(e,l),l};return o(e)}(t),(e=>x(e,T))))),[C]=e.useState(i(I,w));return V((()=>{for(const e of p)e in T&&d(C[e],T[e]);return()=>{Object.values(C).map(m)}}),[T,C,w]),V((()=>{x(w,T)})),e.useImperativeHandle(u,a(function(e){return g.reduce(((t,n)=>(t[n]=t=>{f(e[o.methods[n]],t)},t)),{})}(w))),e.createElement(v.Provider,{value:w},n?e.createElement(n,function(e,t){const o={},n={};let r=0;const i=e.length;for(;r<i;)n[e[r]]=1,r+=1;for(const l in t)n.hasOwnProperty(l)||(o[l]=t[l]);return o}([...s,...c,...p],T),h):h)}));return{Component:T,usePublisher:t=>e.useCallback(r(f,e.useContext(v)[t]),[t]),useEmitterValue:t=>{const o=e.useContext(v)[t],[n,r]=e.useState(i(h,o));return V((()=>d(o,(e=>{e!==n&&r(a(e))}))),[o,n]),n},useEmitter:(t,o)=>{const n=e.useContext(v)[t];V((()=>d(n,o)),[o,n])}}}const A="undefined"!=typeof document?e.useLayoutEffect:e.useEffect;var D=(e=>(e[e.DEBUG=0]="DEBUG",e[e.INFO=1]="INFO",e[e.WARN=2]="WARN",e[e.ERROR=3]="ERROR",e))(D||{});const G={0:"debug",1:"log",2:"warn",3:"error"},N=M((()=>{const e=x(3);return{log:x(((t,o,n=1)=>{n>=(("undefined"==typeof globalThis?window:globalThis).VIRTUOSO_LOG_LEVEL??h(e))&&console[G[n]]("%creact-virtuoso: %c%s %o","color: #0253b3; font-weight: bold","color: initial",t,o)})),logLevel:e}}),[],{singleton:!0});function _(t,o=!0){const n=e.useRef(null);let r=e=>{};if("undefined"!=typeof ResizeObserver){const e=new ResizeObserver((e=>{const o=e[0].target;null!==o.offsetParent&&t(o)}));r=t=>{t&&o?(e.observe(t),n.current=t):(n.current&&e.unobserve(n.current),n.current=null)}}return{ref:n,callbackRef:r}}function U(e,t=!0){return _(e,t).callbackRef}function $(e,t,o,n,r,i,l){return _((o=>{const s=function(e,t,o,n){const r=e.length;if(0===r)return null;const i=[];for(let l=0;l<r;l++){const r=e.item(l);if(!r||void 0===r.dataset.index)continue;const s=parseInt(r.dataset.index),c=parseFloat(r.dataset.knownSize),a=t(r,o);if(0===a&&n("Zero-sized element, this should not happen",{child:r},D.ERROR),a===c)continue;const u=i[i.length-1];0===i.length||u.size!==a||u.endIndex!==s-1?i.push({startIndex:s,endIndex:s,size:a}):i[i.length-1].endIndex++}return i}(o.children,t,"offsetHeight",r);let c=o.parentElement;for(;!c.dataset.virtuosoScroller;)c=c.parentElement;const a="window"===c.lastElementChild.dataset.viewportType,u=l?l.scrollTop:a?window.pageYOffset||document.documentElement.scrollTop:c.scrollTop,d=l?l.scrollHeight:a?document.documentElement.scrollHeight:c.scrollHeight,f=l?l.offsetHeight:a?window.innerHeight:c.offsetHeight;n({scrollTop:Math.max(u,0),scrollHeight:d,viewportHeight:f}),null==i||i(function(e,t,o){"normal"===t||(null==t?void 0:t.endsWith("px"))||o(`${e} was not resolved to pixel value correctly`,t,D.WARN);if("normal"===t)return 0;return parseInt(t??"0",10)}("row-gap",getComputedStyle(o).rowGap,r)),null!==s&&e(s)}),o)}function j(e,t){return Math.round(e.getBoundingClientRect()[t])}function K(e,t){return Math.abs(e-t)<1.01}function q(o,n,r,i=u,l){const s=e.useRef(null),c=e.useRef(null),a=e.useRef(null),d=e.useCallback((e=>{const r=e.target,i=r===window||r===document,l=i?window.pageYOffset||document.documentElement.scrollTop:r.scrollTop,s=i?document.documentElement.scrollHeight:r.scrollHeight,u=i?window.innerHeight:r.offsetHeight,d=()=>{o({scrollTop:Math.max(l,0),scrollHeight:s,viewportHeight:u})};e.suppressFlushSync?d():t.flushSync(d),null!==c.current&&(l===c.current||l<=0||l===s-u)&&(c.current=null,n(!0),a.current&&(clearTimeout(a.current),a.current=null))}),[o,n]);return e.useEffect((()=>{const e=l||s.current;return i(l||s.current),d({target:e,suppressFlushSync:!0}),e.addEventListener("scroll",d,{passive:!0}),()=>{i(null),e.removeEventListener("scroll",d)}}),[s,d,r,i,l]),{scrollerRef:s,scrollByCallback:function(e){s.current.scrollBy(e)},scrollToCallback:function(e){const t=s.current;if(!t||"offsetHeight"in t&&0===t.offsetHeight)return;const r="smooth"===e.behavior;let i,l,u;t===window?(l=Math.max(j(document.documentElement,"height"),document.documentElement.scrollHeight),i=window.innerHeight,u=document.documentElement.scrollTop):(l=t.scrollHeight,i=j(t,"height"),u=t.scrollTop);const d=l-i;if(e.top=Math.ceil(Math.max(Math.min(d,e.top),0)),K(i,l)||e.top===u)return o({scrollTop:u,scrollHeight:l,viewportHeight:i}),void(r&&n(!0));r?(c.current=e.top,a.current&&clearTimeout(a.current),a.current=setTimeout((()=>{a.current=null,c.current=null,n(!0)}),1e3)):c.current=null,t.scrollTo(e)}}}const Y=M((()=>{const e=v(),t=v(),o=x(0),n=v(),r=x(0),i=v(),l=v(),s=x(0),c=x(0),a=x(0),u=x(0),d=v(),f=v(),m=x(!1);return g(w(e,H((({scrollTop:e})=>e))),t),g(w(e,H((({scrollHeight:e})=>e))),l),g(t,r),{scrollContainerState:e,scrollTop:t,viewportHeight:i,headerHeight:s,fixedHeaderHeight:c,fixedFooterHeight:a,footerHeight:u,scrollHeight:l,smoothScrollTargetReached:n,scrollTo:d,scrollBy:f,statefulScrollTop:r,deviation:o,scrollingInProgress:m}}),[],{singleton:!0}),Z={lvl:0};function J(e,t,o,n=Z,r=Z){return{k:e,v:t,lvl:o,l:n,r:r}}function Q(e){return e===Z}function X(){return Z}function ee(e,t){if(Q(e))return Z;const{k:o,l:n,r:r}=e;if(t===o){if(Q(n))return r;if(Q(r))return n;{const[t,o]=ie(n);return ue(se(e,{k:t,v:o,l:le(n)}))}}return ue(se(e,t<o?{l:ee(n,t)}:{r:ee(r,t)}))}function te(e,t,o="k"){if(Q(e))return[-1/0,void 0];if(e[o]===t)return[e.k,e.v];if(e[o]<t){const n=te(e.r,t,o);return n[0]===-1/0?[e.k,e.v]:n}return te(e.l,t,o)}function oe(e,t,o){return Q(e)?J(t,o,1):t===e.k?se(e,{k:t,v:o}):t<e.k?ae(se(e,{l:oe(e.l,t,o)})):ae(se(e,{r:oe(e.r,t,o)}))}function ne(e,t,o){if(Q(e))return[];const{k:n,v:r,l:i,r:l}=e;let s=[];return n>t&&(s=s.concat(ne(i,t,o))),n>=t&&n<=o&&s.push({k:n,v:r}),n<=o&&(s=s.concat(ne(l,t,o))),s}function re(e){return Q(e)?[]:[...re(e.l),{k:e.k,v:e.v},...re(e.r)]}function ie(e){return Q(e.r)?[e.k,e.v]:ie(e.r)}function le(e){return Q(e.r)?e.l:ue(se(e,{r:le(e.r)}))}function se(e,t){return J(void 0!==t.k?t.k:e.k,void 0!==t.v?t.v:e.v,void 0!==t.lvl?t.lvl:e.lvl,void 0!==t.l?t.l:e.l,void 0!==t.r?t.r:e.r)}function ce(e){return Q(e)||e.lvl>e.r.lvl}function ae(e){return me(he(e))}function ue(e){const{l:t,r:o,lvl:n}=e;if(o.lvl>=n-1&&t.lvl>=n-1)return e;if(n>o.lvl+1){if(ce(t))return he(se(e,{lvl:n-1}));if(Q(t)||Q(t.r))throw new Error("Unexpected empty nodes");return se(t.r,{l:se(t,{r:t.r.l}),r:se(e,{l:t.r.r,lvl:n-1}),lvl:n})}if(ce(e))return me(se(e,{lvl:n-1}));if(Q(o)||Q(o.l))throw new Error("Unexpected empty nodes");{const t=o.l,r=ce(t)?o.lvl-1:o.lvl;return se(t,{l:se(e,{r:t.l,lvl:n-1}),r:me(se(o,{l:t.r,lvl:r})),lvl:t.lvl+1})}}function de(e,t,o){if(Q(e))return[];const n=te(e,t)[0];return fe(ne(e,n,o),(({k:e,v:t})=>({index:e,value:t})))}function fe(e,t){const o=e.length;if(0===o)return[];let{index:n,value:r}=t(e[0]);const i=[];for(let l=1;l<o;l++){const{index:o,value:s}=t(e[l]);i.push({start:n,end:o-1,value:r}),n=o,r=s}return i.push({start:n,end:1/0,value:r}),i}function me(e){const{r:t,lvl:o}=e;return Q(t)||Q(t.r)||t.lvl!==o||t.r.lvl!==o?e:se(t,{l:se(e,{r:t.l}),lvl:o+1})}function he(e){const{l:t}=e;return Q(t)||t.lvl!==e.lvl?e:se(t,{r:se(e,{l:t.r})})}function ge(e,t,o,n=0){let r=e.length-1;for(;n<=r;){const i=Math.floor((n+r)/2),l=o(e[i],t);if(0===l)return i;if(-1===l){if(r-n<2)return i-1;r=i-1}else{if(r===n)return i;n=i+1}}throw new Error(`Failed binary finding record in array - ${e.join(",")}, searched for ${t}`)}function pe(e,t,o){return e[ge(e,t,o)]}const ve=M((()=>({recalcInProgress:x(!1)})),[],{singleton:!0});function xe(e){const{size:t,startIndex:o,endIndex:n}=e;return e=>e.start===o&&(e.end===n||e.end===1/0)&&e.value===t}function Ie({index:e},t){return t===e?0:t<e?-1:1}function Te({offset:e},t){return t===e?0:t<e?-1:1}function we(e){return{index:e.index,value:e}}function Ce(e,t,o,n=0){return n>0&&(t=Math.max(t,pe(e,n,Ie).offset)),fe(function(e,t,o,n){const r=ge(e,t,n),i=ge(e,o,n,r);return e.slice(r,i+1)}(e,t,o,Te),we)}function Se(e,t,o,n){let r=e,i=0,l=0,s=0,c=0;if(0!==t){c=ge(r,t-1,Ie);s=r[c].offset;const e=te(o,t-1);i=e[0],l=e[1],r.length&&r[c].size===te(o,t)[1]&&(c-=1),r=r.slice(0,c+1)}else r=[];for(const{start:a,value:u}of de(o,t,1/0)){const e=a-i,t=e*l+s+e*n;r.push({offset:t,size:u,index:a}),i=a,s=t,l=u}return{offsetTree:r,lastIndex:i,lastOffset:s,lastSize:l}}function Ee(e,[t,o,n,r]){t.length>0&&n("received item sizes",t,D.DEBUG);const i=e.sizeTree;let l=i,s=0;if(o.length>0&&Q(i)&&2===t.length){const e=t[0].size,n=t[1].size;l=o.reduce(((t,o)=>oe(oe(t,o,e),o+1,n)),l)}else[l,s]=function(e,t){let o=Q(e)?0:1/0;for(const n of t){const{size:t,startIndex:r,endIndex:i}=n;if(o=Math.min(o,r),Q(e)){e=oe(e,0,t);continue}const l=de(e,r-1,i+1);if(l.some(xe(n)))continue;let s=!1,c=!1;for(const{start:o,end:n,value:a}of l)s?(i>=o||t===a)&&(e=ee(e,o)):(c=a!==t,s=!0),n>i&&i>=o&&a!==t&&(e=oe(e,i+1,a));c&&(e=oe(e,r,t))}return[e,o]}(l,t);if(l===i)return e;const{offsetTree:c,lastIndex:a,lastSize:u,lastOffset:d}=Se(e.offsetTree,s,l,r);return{sizeTree:l,offsetTree:c,lastIndex:a,lastOffset:d,lastSize:u,groupOffsetTree:o.reduce(((e,t)=>oe(e,t,He(t,c,r))),X()),groupIndices:o}}function He(e,t,o){if(0===t.length)return 0;const{offset:n,index:r,size:i}=pe(t,e,Ie),l=e-r,s=i*l+(l-1)*o+n;return s>0?s+o:s}function ye(e,t,o){if(function(e){return void 0!==e.groupIndex}(e))return t.groupIndices[e.groupIndex]+1;{let n=be("LAST"===e.index?o:e.index,t);return n=Math.max(0,n,Math.min(o,n)),n}}function be(e,t){if(!Re(t))return e;let o=0;for(;t.groupIndices[o]<=e+o;)o++;return e+o}function Re(e){return!Q(e.groupOffsetTree)}const ze={offsetHeight:"height",offsetWidth:"width"},Be=M((([{log:e},{recalcInProgress:t}])=>{const o=v(),n=v(),r=T(n,0),i=v(),l=v(),s=x(0),c=x([]),a=x(void 0),u=x(void 0),m=x(((e,t)=>j(e,ze[t]))),p=x(void 0),C=x(0),y={offsetTree:[],sizeTree:X(),groupOffsetTree:X(),lastIndex:0,lastOffset:0,lastSize:0,groupIndices:[]},R=T(w(o,k(c,e,C),b(Ee,y),S()),y);g(w(c,E((e=>e.length>0)),k(R,C),H((([e,t,o])=>{const n=e.reduce(((e,n,r)=>oe(e,n,He(n,t.offsetTree,o)||r)),X());return{...t,groupIndices:e,groupOffsetTree:n}}))),R),g(w(n,k(R),E((([e,{lastIndex:t}])=>e<t)),H((([e,{lastIndex:t,lastSize:o}])=>[{startIndex:e,endIndex:t,size:o}]))),o),g(a,u);const z=T(w(a,H((e=>void 0===e))),!0);g(w(u,E((e=>void 0!==e&&Q(h(R).sizeTree))),H((e=>[{startIndex:0,endIndex:0,size:e}]))),o);const B=I(w(o,k(R),b((({sizes:e},[t,o])=>({changed:o!==e,sizes:o})),{changed:!1,sizes:y}),H((e=>e.changed))));d(w(s,b(((e,t)=>({diff:e.prev-t,prev:t})),{diff:0,prev:0}),H((e=>e.diff))),(e=>{e>0?(f(t,!0),f(i,e)):e<0&&f(l,e)})),d(w(s,k(e)),(([e,t])=>{e<0&&t("`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:s},D.ERROR)}));const P=I(i);g(w(i,k(R),H((([e,t])=>{if(t.groupIndices.length>0)throw new Error("Virtuoso: prepending items does not work with groups");return re(t.sizeTree).reduce(((t,{k:o,v:n})=>({ranges:[...t.ranges,{startIndex:t.prevIndex,endIndex:o+e-1,size:t.prevSize}],prevIndex:o+e,prevSize:n})),{ranges:[],prevIndex:0,prevSize:t.lastSize}).ranges}))),o);const L=I(w(l,k(R,C),H((([e,{offsetTree:t},o])=>He(-e,t,o)))));return g(w(l,k(R,C),H((([e,t,o])=>{if(t.groupIndices.length>0)throw new Error("Virtuoso: shifting items does not work with groups");const n=re(t.sizeTree).reduce(((t,{k:o,v:n})=>oe(t,Math.max(0,o+e),n)),X());return{...t,sizeTree:n,...Se(t.offsetTree,0,n,o)}}))),R),{data:p,totalCount:n,sizeRanges:o,groupIndices:c,defaultItemSize:u,fixedItemSize:a,unshiftWith:i,shiftWith:l,shiftWithOffset:L,beforeUnshiftWith:P,firstItemIndex:s,gap:C,sizes:R,listRefresh:B,statefulTotalCount:r,trackItemSizes:z,itemSize:m}}),s(N,ve),{singleton:!0}),ke="undefined"!=typeof document&&"scrollBehavior"in document.documentElement.style;function Pe(e){const t="number"==typeof e?{index:e}:e;return t.align||(t.align="start"),t.behavior&&ke||(t.behavior="auto"),t.offset||(t.offset=0),t}const Le=M((([{sizes:e,totalCount:t,listRefresh:o,gap:n},{scrollingInProgress:r,viewportHeight:i,scrollTo:l,smoothScrollTargetReached:s,headerHeight:c,footerHeight:a,fixedHeaderHeight:u,fixedFooterHeight:m},{log:h}])=>{const I=v(),T=x(0);let C=null,S=null,E=null;function y(){C&&(C(),C=null),E&&(E(),E=null),S&&(clearTimeout(S),S=null),f(r,!1)}return g(w(I,k(e,i,t,T,c,a,h),k(n,u,m),H((([[e,t,n,i,l,c,a,u],m,h,g])=>{const v=Pe(e),{align:x,behavior:T,offset:H}=v,b=i-1,R=ye(v,t,b);let z=He(R,t.offsetTree,m)+c;"end"===x?(z+=h+te(t.sizeTree,R)[1]-n+g,R===b&&(z+=a)):"center"===x?z+=(h+te(t.sizeTree,R)[1]-n+g)/2:z-=l,H&&(z+=H);const B=t=>{y(),t?(u("retrying to scroll to",{location:e},D.DEBUG),f(I,e)):u("list did not change, scroll successful",{},D.DEBUG)};if(y(),"smooth"===T){let e=!1;E=d(o,(t=>{e=e||t})),C=p(s,(()=>{B(e)}))}else C=p(w(o,(k=150,e=>{const t=setTimeout((()=>{e(!1)}),k);return o=>{o&&(e(!0),clearTimeout(t))}})),B);var k;return S=setTimeout((()=>{y()}),1200),f(r,!0),u("scrolling from index to",{index:R,top:z,behavior:T},D.DEBUG),{top:z,behavior:T}}))),l),{scrollToIndex:I,topListHeight:T}}),s(Be,Y,N),{singleton:!0});const Oe="up",Me="down",We={atBottom:!1,notAtBottomBecause:"NOT_SHOWING_LAST_ITEM",state:{offsetBottom:0,scrollTop:0,viewportHeight:0,scrollHeight:0}},Ve=M((([{scrollContainerState:e,scrollTop:t,viewportHeight:o,headerHeight:n,footerHeight:r,scrollBy:i}])=>{const l=x(!1),s=x(!0),c=v(),a=v(),u=x(4),d=x(0),f=T(w(P(w(L(t),R(1),y(!0)),w(L(t),R(1),y(!1),B(100))),S()),!1),m=T(w(P(w(i,y(!0)),w(i,y(!1),B(200))),S()),!1);g(w(O(L(t),L(d)),H((([e,t])=>e<=t)),S()),s),g(w(s,z(50)),a);const p=I(w(O(e,L(o),L(n),L(r),L(u)),b(((e,[{scrollTop:t,scrollHeight:o},n,r,i,l])=>{const s={viewportHeight:n,scrollTop:t,scrollHeight:o};if(t+n-o>-l){let o,n;return t>e.state.scrollTop?(o="SCROLLED_DOWN",n=e.state.scrollTop-t):(o="SIZE_DECREASED",n=e.state.scrollTop-t||e.scrollTopDelta),{atBottom:!0,state:s,atBottomBecause:o,scrollTopDelta:n}}let c;return c=s.scrollHeight>e.state.scrollHeight?"SIZE_INCREASED":n<e.state.viewportHeight?"VIEWPORT_HEIGHT_DECREASING":t<e.state.scrollTop?"SCROLLING_UPWARDS":"NOT_FULLY_SCROLLED_TO_LAST_ITEM_BOTTOM",{atBottom:!1,notAtBottomBecause:c,state:s}}),We),S(((e,t)=>e&&e.atBottom===t.atBottom)))),C=T(w(e,b(((e,{scrollTop:t,scrollHeight:o,viewportHeight:n})=>{if(K(e.scrollHeight,o))return{scrollTop:t,scrollHeight:o,jump:0,changed:!1};{const r=o-(t+n)<1;return e.scrollTop!==t&&r?{scrollHeight:o,scrollTop:t,jump:e.scrollTop-t,changed:!0}:{scrollHeight:o,scrollTop:t,jump:0,changed:!0}}}),{scrollHeight:0,jump:0,scrollTop:0,changed:!1}),E((e=>e.changed)),H((e=>e.jump))),0);g(w(p,H((e=>e.atBottom))),l),g(w(l,z(50)),c);const M=x(Me);g(w(e,H((({scrollTop:e})=>e)),S(),b(((e,t)=>h(m)?{direction:e.direction,prevScrollTop:t}:{direction:t<e.prevScrollTop?Oe:Me,prevScrollTop:t}),{direction:Me,prevScrollTop:0}),H((e=>e.direction))),M),g(w(e,z(50),y("none")),M);const W=x(0);return g(w(f,E((e=>!e)),y(0)),W),g(w(t,z(100),k(f),E((([e,t])=>!!t)),b((([e,t],[o])=>[t,o]),[0,0]),H((([e,t])=>t-e))),W),{isScrolling:f,isAtTop:s,isAtBottom:l,atBottomState:p,atTopStateChange:a,atBottomStateChange:c,scrollDirection:M,atBottomThreshold:u,atTopThreshold:d,scrollVelocity:W,lastJumpDueToItemResize:C}}),s(Y)),Fe=M((([{log:e}])=>{const t=x(!1),o=I(w(t,E((e=>e)),S()));return d(t,(t=>{t&&h(e)("props updated",{},D.DEBUG)})),{propsReady:t,didMount:o}}),s(N),{singleton:!0});const Ae=M((([{sizes:e,listRefresh:t,defaultItemSize:o},{scrollTop:n},{scrollToIndex:r},{didMount:i}])=>{const l=x(!0),s=x(0);return g(w(i,k(s),E((([e,t])=>!!t)),y(!1)),l),d(w(O(t,i),k(l,e,o),E((([[,e],t,{sizeTree:o},n])=>e&&(!Q(o)||void 0!==n)&&!t)),k(s)),(([,e])=>{setTimeout((()=>{p(n,(()=>{f(l,!0)})),f(r,e)}))})),{scrolledToInitialItem:l,initialTopMostItemIndex:s}}),s(Be,Y,Le,Fe),{singleton:!0});function De(e){return!!e&&("smooth"===e?"smooth":"auto")}const Ge=M((([{totalCount:e,listRefresh:t},{isAtBottom:o,atBottomState:n},{scrollToIndex:r},{scrolledToInitialItem:i},{propsReady:l,didMount:s},{log:c},{scrollingInProgress:a}])=>{const u=x(!1),m=v();let g=null;function I(e){f(r,{index:"LAST",align:"end",behavior:e})}function T(e){const t=p(n,(t=>{!e||t.atBottom||"SIZE_INCREASED"!==t.notAtBottomBecause||g||(h(c)("scrolling to bottom due to increased size",{},D.DEBUG),I("auto"))}));setTimeout(t,100)}return d(w(O(w(L(e),R(1)),s),k(L(u),o,i,a),H((([[e,t],o,n,r,i])=>{let l=t&&r,s="auto";return l&&(s=((e,t)=>"function"==typeof e?De(e(t)):t&&De(e))(o,n||i),l=l&&!!s),{totalCount:e,shouldFollow:l,followOutputBehavior:s}})),E((({shouldFollow:e})=>e))),(({totalCount:e,followOutputBehavior:o})=>{g&&(g(),g=null),g=p(t,(()=>{h(c)("following output to ",{totalCount:e},D.DEBUG),I(o),g=null}))})),d(w(O(L(u),e,l),E((([e,,t])=>e&&t)),b((({value:e},[,t])=>({refreshed:e===t,value:t})),{refreshed:!1,value:0}),E((({refreshed:e})=>e)),k(u,e)),(([,e])=>{T(!1!==e)})),d(m,(()=>{T(!1!==h(u))})),d(O(L(u),n),(([e,t])=>{e&&!t.atBottom&&"VIEWPORT_HEIGHT_DECREASING"===t.notAtBottomBecause&&I("auto")})),{followOutput:u,autoscrollToBottom:m}}),s(Be,Ve,Le,Ae,Fe,N,Y));function Ne(e){return e.reduce(((e,t)=>(e.groupIndices.push(e.totalCount),e.totalCount+=t+1,e)),{totalCount:0,groupIndices:[]})}const _e=M((([{totalCount:e,groupIndices:t,sizes:o},{scrollTop:n,headerHeight:r}])=>{const i=v(),l=v(),s=I(w(i,H(Ne)));return g(w(s,H((e=>e.totalCount))),e),g(w(s,H((e=>e.groupIndices))),t),g(w(O(n,o,r),E((([e,t])=>Re(t))),H((([e,t,o])=>te(t.groupOffsetTree,Math.max(e-o,0),"v")[0])),S(),H((e=>[e]))),l),{groupCounts:i,topItemsIndexes:l}}),s(Be,Y));function Ue(e,t){return!(!e||e[0]!==t[0]||e[1]!==t[1])}function $e(e,t){return!(!e||e.startIndex!==t.startIndex||e.endIndex!==t.endIndex)}const je="top",Ke="bottom",qe="none";function Ye(e,t,o){return"number"==typeof e?o===Oe&&t===je||o===Me&&t===Ke?e:0:o===Oe?t===je?e.main:e.reverse:t===Ke?e.main:e.reverse}function Ze(e,t){return"number"==typeof e?e:e[t]||0}const Je=M((([{scrollTop:e,viewportHeight:t,deviation:o,headerHeight:n,fixedHeaderHeight:r}])=>{const i=v(),l=x(0),s=x(0),c=x(0);return{listBoundary:i,overscan:c,topListHeight:l,increaseViewportBy:s,visibleRange:T(w(O(L(e),L(t),L(n),L(i,Ue),L(c),L(l),L(r),L(o),L(s)),H((([e,t,o,[n,r],i,l,s,c,a])=>{const u=e-c,d=l+s,f=Math.max(o-u,0);let m=qe;const h=Ze(a,je),g=Ze(a,Ke);return n-=c,r+=o+s,(n+=o+s)>e+d-h&&(m=Oe),(r-=c)<e-f+t+g&&(m=Me),m!==qe?[Math.max(u-o-Ye(i,je,m)-h,0),u-f-s+t+Ye(i,Ke,m)+g]:null})),E((e=>null!=e)),S(Ue)),[0,0])}}),s(Y),{singleton:!0});const Qe={items:[],topItems:[],offsetTop:0,offsetBottom:0,top:0,bottom:0,topListHeight:0,totalCount:0,firstItemIndex:0};function Xe(e,t,o){if(0===e.length)return[];if(!Re(t))return e.map((e=>({...e,index:e.index+o,originalIndex:e.index})));const n=e[0].index,r=e[e.length-1].index,i=[],l=de(t.groupOffsetTree,n,r);let s,c=0;for(const a of e){let e;(!s||s.end<a.index)&&(s=l.shift(),c=t.groupIndices.indexOf(s.start)),e=a.index===s.start?{type:"group",index:c}:{index:a.index-(c+1)+o,groupIndex:c},i.push({...e,size:a.size,offset:a.offset,originalIndex:a.index,data:a.data})}return i}function et(e,t,o,n,r,i){const{lastSize:l,lastOffset:s,lastIndex:c}=r;let a=0,u=0;if(e.length>0){a=e[0].offset;const t=e[e.length-1];u=t.offset+t.size}const d=o-c,f=a,m=s+d*l+(d-1)*n-u;return{items:Xe(e,r,i),topItems:Xe(t,r,i),topListHeight:t.reduce(((e,t)=>t.size+e),0),offsetTop:a,offsetBottom:m,top:f,bottom:u,totalCount:o,firstItemIndex:i}}const tt=M((([{sizes:e,totalCount:t,data:o,firstItemIndex:n,gap:r},i,{visibleRange:s,listBoundary:c,topListHeight:a},{scrolledToInitialItem:u,initialTopMostItemIndex:d},{topListHeight:f},m,{didMount:h},{recalcInProgress:p}])=>{const C=x([]),y=v();g(i.topItemsIndexes,C);const b=T(w(O(h,p,L(s,Ue),L(t),L(e),L(d),u,L(C),L(n),L(r),o),E((([e,t])=>e&&!t)),H((([,,[e,t],o,n,r,i,s,c,a,u])=>{const d=n,{sizeTree:f,offsetTree:m}=d;if(0===o||0===e&&0===t)return{...Qe,totalCount:o};if(Q(f))return et(function(e,t,o){if(Re(t)){const n=be(e,t);return[{index:te(t.groupOffsetTree,n)[0],size:0,offset:0},{index:n,size:0,offset:0,data:o&&o[0]}]}return[{index:e,size:0,offset:0,data:o&&o[0]}]}(function(e,t){const o=t-1;return"number"==typeof e?e:"LAST"===e.index?o:e.index}(r,o),d,u),[],o,a,d,c);const h=[];if(s.length>0){const e=s[0],t=s[s.length-1];let o=0;for(const n of de(f,e,t)){const r=n.value,i=Math.max(n.start,e),l=Math.min(n.end,t);for(let e=i;e<=l;e++)h.push({index:e,size:r,offset:o,data:u&&u[e]}),o+=r}}if(!i)return et([],h,o,a,d,c);const g=s.length>0?s[s.length-1]+1:0,p=Ce(m,e,t,g);if(0===p.length)return null;const v=o-1;return et(l([],(o=>{for(const n of p){const r=n.value;let i=r.offset,l=n.start;const s=r.size;if(r.offset<e){l+=Math.floor((e-r.offset+a)/(s+a));const t=l-n.start;i+=t*s+t*a}l<g&&(i+=(g-l)*s,l=g);const c=Math.min(n.end,v);for(let e=l;e<=c&&!(i>=t);e++)o.push({index:e,size:s,offset:i,data:u&&u[e]}),i+=s+a}})),h,o,a,d,c)})),E((e=>null!==e)),S()),Qe);g(w(o,E((e=>void 0!==e)),H((e=>null==e?void 0:e.length))),t),g(w(b,H((e=>e.topListHeight))),f),g(f,a),g(w(b,H((e=>[e.top,e.bottom]))),c),g(w(b,H((e=>e.items))),y);return{listState:b,topItemsIndexes:C,endReached:I(w(b,E((({items:e})=>e.length>0)),k(t,o),E((([{items:e},t])=>e[e.length-1].originalIndex===t-1)),H((([,e,t])=>[e-1,t])),S(Ue),H((([e])=>e)))),startReached:I(w(b,z(200),E((({items:e,topItems:t})=>e.length>0&&e[0].originalIndex===t.length)),H((({items:e})=>e[0].index)),S())),rangeChanged:I(w(b,E((({items:e})=>e.length>0)),H((({items:e})=>{let t=0,o=e.length-1;for(;"group"===e[t].type&&t<o;)t++;for(;"group"===e[o].type&&o>t;)o--;return{startIndex:e[t].index,endIndex:e[o].index}})),S($e))),itemsRendered:y,...m}}),s(Be,_e,Je,Ae,Le,Ve,Fe,ve),{singleton:!0}),ot=M((([{sizes:e,firstItemIndex:t,data:o,gap:n},{listState:r},{didMount:i}])=>{const l=x(0);return g(w(i,k(l),E((([,e])=>0!==e)),k(e,t,n,o),H((([[,e],t,o,n,r=[]])=>{let i=0;if(t.groupIndices.length>0)for(const s of t.groupIndices){if(s-i>=e)break;i++}const l=e+i;return et(Array.from({length:l}).map(((e,t)=>({index:t,size:0,offset:0,data:r[t]}))),[],l,n,t,o)}))),r),{initialItemCount:l}}),s(Be,tt,Fe),{singleton:!0}),nt=M((([{scrollVelocity:e}])=>{const t=x(!1),o=v(),n=x(!1);return g(w(e,k(n,t,o),E((([e,t])=>!!t)),H((([e,t,o,n])=>{const{exit:r,enter:i}=t;if(o){if(r(e,n))return!1}else if(i(e,n))return!0;return o})),S()),t),d(w(O(t,e,o),k(n)),(([[e,t,o],n])=>e&&n&&n.change&&n.change(t,o))),{isSeeking:t,scrollSeekConfiguration:n,scrollVelocity:e,scrollSeekRangeChanged:o}}),s(Ve),{singleton:!0}),rt=M((([{topItemsIndexes:e}])=>{const t=x(0);return g(w(t,E((e=>e>0)),H((e=>Array.from({length:e}).map(((e,t)=>t))))),e),{topItemCount:t}}),s(tt)),it=M((([{footerHeight:e,headerHeight:t,fixedHeaderHeight:o,fixedFooterHeight:n},{listState:r}])=>{const i=v(),l=T(w(O(e,n,t,o,r),H((([e,t,o,n,r])=>e+t+o+n+r.offsetBottom+r.bottom))),0);return g(L(l),i),{totalListHeight:l,totalListHeightChanged:i}}),s(Y,tt),{singleton:!0});function lt(e){let t,o=!1;return()=>(o||(o=!0,t=e()),t)}const st=lt((()=>/iP(ad|od|hone)/i.test(navigator.userAgent)&&/WebKit/i.test(navigator.userAgent))),ct=M((([{scrollBy:e,scrollTop:t,deviation:o,scrollingInProgress:n},{isScrolling:r,isAtBottom:i,scrollDirection:l,lastJumpDueToItemResize:s},{listState:c},{beforeUnshiftWith:a,shiftWithOffset:u,sizes:m,gap:h},{log:p},{recalcInProgress:v}])=>{const x=I(w(c,k(s),b((([,e,t,o],[{items:n,totalCount:r,bottom:i,offsetBottom:l},s])=>{const c=i+l;let a=0;if(t===r&&e.length>0&&n.length>0){0===n[0].originalIndex&&0===e[0].originalIndex||(a=c-o,0!==a&&(a+=s))}return[a,n,r,c]}),[0,[],0,0]),E((([e])=>0!==e)),k(t,l,n,i,p),E((([,e,t,o])=>!o&&0!==e&&t===Oe)),H((([[e],,,,,t])=>(t("Upward scrolling compensation",{amount:e},D.DEBUG),e)))));function C(t){t>0?(f(e,{top:-t,behavior:"auto"}),f(o,0)):(f(o,0),f(e,{top:-t,behavior:"auto"}))}return d(w(x,k(o,r)),(([e,t,n])=>{n&&st()?f(o,t-e):C(-e)})),d(w(O(T(r,!1),o,v),E((([e,t,o])=>!e&&!o&&0!==t)),H((([e,t])=>t)),z(1)),C),g(w(u,H((e=>({top:-e})))),e),d(w(a,k(m,h),H((([e,{lastSize:t},o])=>e*t+e*o))),(t=>{f(o,t),requestAnimationFrame((()=>{f(e,{top:t}),requestAnimationFrame((()=>{f(o,0),f(v,!1)}))}))})),{deviation:o}}),s(Y,Ve,tt,Be,N,ve)),at=M((([{totalListHeight:e},{didMount:t},{scrollTo:o}])=>{const n=x(0);return d(w(t,k(n),E((([,e])=>0!==e)),H((([,e])=>({top:e})))),(t=>{p(w(e,E((e=>0!==e))),(()=>{setTimeout((()=>{f(o,t)}))}))})),{initialScrollTop:n}}),s(it,Fe,Y),{singleton:!0}),ut=M((([{viewportHeight:e},{totalListHeight:t}])=>{const o=x(!1);return{alignToBottom:o,paddingTopAddition:T(w(O(o,e,t),E((([e])=>e)),H((([,e,t])=>Math.max(0,e-t))),S()),0)}}),s(Y,it),{singleton:!0}),dt=M((([{scrollTo:e,scrollContainerState:t}])=>{const o=v(),n=v(),r=v(),i=x(!1),l=x(void 0);return g(w(O(o,n),H((([{viewportHeight:e,scrollTop:t,scrollHeight:o},{offsetTop:n}])=>({scrollTop:Math.max(0,t-n),scrollHeight:o,viewportHeight:e})))),t),g(w(e,k(n),H((([e,{offsetTop:t}])=>({...e,top:e.top+t})))),r),{useWindowScroll:i,customScrollParent:l,windowScrollContainerState:o,windowViewportRect:n,windowScrollTo:r}}),s(Y)),ft=M((([{sizes:e,totalCount:t,gap:o},{scrollTop:n,viewportHeight:r,headerHeight:i,fixedHeaderHeight:l,fixedFooterHeight:s,scrollingInProgress:c},{scrollToIndex:a}])=>{const u=v();return g(w(u,k(e,r,t,i,l,s,n),k(o),H((([[e,t,o,n,r,i,l,s],a])=>{const{done:u,behavior:d,align:f,...m}=e;let h=null;const g=ye(e,t,n-1),v=He(g,t.offsetTree,a)+r+i;if(v<s+i)h={...m,behavior:d,align:f??"start"};else{v+te(t.sizeTree,g)[1]>s+o-l&&(h={...m,behavior:d,align:f??"end"})}return h?u&&p(w(c,R(1),E((e=>!1===e))),u):u&&u(),h})),E((e=>null!==e))),a),{scrollIntoView:u}}),s(Be,Y,Le,tt,N),{singleton:!0}),mt=M((([e,t,o,n,r,i,l,s,c])=>({...e,...t,...o,...n,...r,...i,...l,...s,...c})),s(Je,ot,Fe,nt,it,at,ut,dt,ft)),ht=M((([{totalCount:e,sizeRanges:t,fixedItemSize:o,defaultItemSize:n,trackItemSizes:r,itemSize:i,data:l,firstItemIndex:s,groupIndices:c,statefulTotalCount:a,gap:u},{initialTopMostItemIndex:d,scrolledToInitialItem:f},m,h,{listState:p,topItemsIndexes:v,...x},{scrollToIndex:I},T,{topItemCount:C},{groupCounts:S},E,y])=>(g(x.rangeChanged,E.scrollSeekRangeChanged),g(w(E.windowViewportRect,H((e=>e.visibleHeight))),m.viewportHeight),{totalCount:e,data:l,firstItemIndex:s,sizeRanges:t,initialTopMostItemIndex:d,scrolledToInitialItem:f,topItemsIndexes:v,topItemCount:C,groupCounts:S,fixedItemHeight:o,defaultItemHeight:n,gap:u,...h,statefulTotalCount:a,listState:p,scrollToIndex:I,trackItemSizes:r,itemSize:i,groupIndices:c,...x,...E,...m,...y})),s(Be,Ae,Y,Ge,tt,Le,ct,rt,_e,mt,N)),gt="-webkit-sticky",pt="sticky",vt=lt((()=>{if("undefined"==typeof document)return pt;const e=document.createElement("div");return e.style.position=gt,e.style.position===gt?gt:pt}));function xt(t,o){const n=e.useRef(null),r=e.useCallback((e=>{if(null===e||!e.offsetParent)return;const r=e.getBoundingClientRect(),i=r.width;let l,s;if(o){const e=o.getBoundingClientRect(),t=r.top-e.top;l=e.height-Math.max(0,t),s=t+o.scrollTop}else l=window.innerHeight-Math.max(0,r.top),s=r.top+window.pageYOffset;n.current={offsetTop:s,visibleHeight:l,visibleWidth:i},t(n.current)}),[t,o]),{callbackRef:i,ref:l}=_(r),s=e.useCallback((()=>{r(l.current)}),[r,l]);return e.useEffect((()=>{if(o){o.addEventListener("scroll",s);const e=new ResizeObserver(s);return e.observe(o),()=>{o.removeEventListener("scroll",s),e.unobserve(o)}}return window.addEventListener("scroll",s),window.addEventListener("resize",s),()=>{window.removeEventListener("scroll",s),window.removeEventListener("resize",s)}}),[s,o]),i}const It=e.createContext(void 0),Tt=e.createContext(void 0);function wt(e){return e}const Ct=M((([e,t])=>({...e,...t})),s(ht,M((()=>{const e=x((e=>`Item ${e}`)),t=x(null),o=x((e=>`Group ${e}`)),n=x({}),r=x(wt),i=x("div"),l=x(u),s=(e,t=null)=>T(w(n,H((t=>t[e])),S()),t);return{context:t,itemContent:e,groupContent:o,components:n,computeItemKey:r,headerFooterTag:i,scrollerRef:l,FooterComponent:s("Footer"),HeaderComponent:s("Header"),TopItemListComponent:s("TopItemList"),ListComponent:s("List","div"),ItemComponent:s("Item","div"),GroupComponent:s("Group","div"),ScrollerComponent:s("Scroller","div"),EmptyPlaceholder:s("EmptyPlaceholder"),ScrollSeekPlaceholder:s("ScrollSeekPlaceholder")}})))),St=({height:t})=>e.createElement("div",{style:{height:t}}),Et={position:vt(),zIndex:1,overflowAnchor:"none"},Ht={overflowAnchor:"none"},yt=e.memo((function({showTopList:t=!1}){const o=Gt("listState"),n=Dt("sizeRanges"),r=Gt("useWindowScroll"),i=Gt("customScrollParent"),l=Dt("windowScrollContainerState"),s=Dt("scrollContainerState"),c=i||r?l:s,a=Gt("itemContent"),d=Gt("context"),f=Gt("groupContent"),m=Gt("trackItemSizes"),h=Gt("itemSize"),g=Gt("log"),p=Dt("gap"),{callbackRef:v}=$(n,h,m,t?u:c,g,p,i),[x,I]=e.useState(0);Nt("deviation",(e=>{x!==e&&I(e)}));const T=Gt("EmptyPlaceholder"),w=Gt("ScrollSeekPlaceholder")||St,C=Gt("ListComponent"),S=Gt("ItemComponent"),E=Gt("GroupComponent"),H=Gt("computeItemKey"),y=Gt("isSeeking"),b=Gt("groupIndices").length>0,R=Gt("paddingTopAddition"),z=t?{}:{boxSizing:"border-box",paddingTop:o.offsetTop+R,paddingBottom:o.offsetBottom,marginTop:x};return!t&&0===o.totalCount&&T?e.createElement(T,Bt(T,d)):e.createElement(C,{...Bt(C,d),ref:v,style:z,"data-test-id":t?"virtuoso-top-item-list":"virtuoso-item-list"},(t?o.topItems:o.items).map((t=>{const n=t.originalIndex,r=H(n+o.firstItemIndex,t.data,d);return y?e.createElement(w,{...Bt(w,d),key:r,index:t.index,height:t.size,type:t.type||"item",..."group"===t.type?{}:{groupIndex:t.groupIndex}}):"group"===t.type?e.createElement(E,{...Bt(E,d),key:r,"data-index":n,"data-known-size":t.size,"data-item-index":t.index,style:Et},f(t.index)):e.createElement(S,{...Bt(S,d),key:r,"data-index":n,"data-known-size":t.size,"data-item-index":t.index,"data-item-group-index":t.groupIndex,item:t.data,style:Ht},b?a(t.index,t.groupIndex,t.data,d):a(t.index,t.data,d))})))})),bt={height:"100%",outline:"none",overflowY:"auto",position:"relative",WebkitOverflowScrolling:"touch"},Rt={width:"100%",height:"100%",position:"absolute",top:0},zt={width:"100%",position:vt(),top:0,zIndex:1};function Bt(e,t){if("string"!=typeof e)return{context:t}}const kt=e.memo((function(){const t=Gt("HeaderComponent"),o=Dt("headerHeight"),n=Gt("headerFooterTag"),r=U((e=>o(j(e,"height")))),i=Gt("context");return t?e.createElement(n,{ref:r},e.createElement(t,Bt(t,i))):null})),Pt=e.memo((function(){const t=Gt("FooterComponent"),o=Dt("footerHeight"),n=Gt("headerFooterTag"),r=U((e=>o(j(e,"height")))),i=Gt("context");return t?e.createElement(n,{ref:r},e.createElement(t,Bt(t,i))):null}));function Lt({usePublisher:t,useEmitter:o,useEmitterValue:n}){return e.memo((function({style:r,children:i,...l}){const s=t("scrollContainerState"),c=n("ScrollerComponent"),a=t("smoothScrollTargetReached"),u=n("scrollerRef"),d=n("context"),{scrollerRef:f,scrollByCallback:m,scrollToCallback:h}=q(s,a,c,u);return o("scrollTo",h),o("scrollBy",m),e.createElement(c,{ref:f,style:{...bt,...r},"data-test-id":"virtuoso-scroller","data-virtuoso-scroller":!0,tabIndex:0,...l,...Bt(c,d)},i)}))}function Ot({usePublisher:t,useEmitter:o,useEmitterValue:n}){return e.memo((function({style:r,children:i,...l}){const s=t("windowScrollContainerState"),c=n("ScrollerComponent"),a=t("smoothScrollTargetReached"),d=n("totalListHeight"),f=n("deviation"),m=n("customScrollParent"),h=n("context"),{scrollerRef:g,scrollByCallback:p,scrollToCallback:v}=q(s,a,c,u,m);return A((()=>(g.current=m||window,()=>{g.current=null})),[g,m]),o("windowScrollTo",v),o("scrollBy",p),e.createElement(c,{style:{position:"relative",...r,...0!==d?{height:d+f}:{}},"data-virtuoso-scroller":!0,...l,...Bt(c,h)},i)}))}const Mt=({children:t})=>{const n=e.useContext(It),r=Dt("viewportHeight"),i=Dt("fixedItemHeight"),l=U(o(r,(e=>j(e,"height"))));return e.useEffect((()=>{n&&(r(n.viewportHeight),i(n.itemHeight))}),[n,r,i]),e.createElement("div",{style:Rt,ref:l,"data-viewport-type":"element"},t)},Wt=({children:t})=>{const o=e.useContext(It),n=Dt("windowViewportRect"),r=Dt("fixedItemHeight"),i=Gt("customScrollParent"),l=xt(n,i);return e.useEffect((()=>{o&&(r(o.itemHeight),n({offsetTop:0,visibleHeight:o.viewportHeight,visibleWidth:100}))}),[o,n,r]),e.createElement("div",{ref:l,style:Rt,"data-viewport-type":"window"},t)},Vt=({children:t})=>{const o=Gt("TopItemListComponent"),n=Gt("headerHeight"),r={...zt,marginTop:`${n}px`},i=Gt("context");return e.createElement(o||"div",{style:r,context:i},t)},Ft=e.memo((function(t){const o=Gt("useWindowScroll"),n=Gt("topItemsIndexes").length>0,r=Gt("customScrollParent"),i=r||o?Ut:_t,l=r||o?Wt:Mt;return e.createElement(i,{...t},n&&e.createElement(Vt,null,e.createElement(yt,{showTopList:!0})),e.createElement(l,null,e.createElement(kt,null),e.createElement(yt,null),e.createElement(Pt,null)))})),{Component:At,usePublisher:Dt,useEmitterValue:Gt,useEmitter:Nt}=F(Ct,{required:{},optional:{context:"context",followOutput:"followOutput",firstItemIndex:"firstItemIndex",itemContent:"itemContent",groupContent:"groupContent",overscan:"overscan",increaseViewportBy:"increaseViewportBy",totalCount:"totalCount",topItemCount:"topItemCount",initialTopMostItemIndex:"initialTopMostItemIndex",components:"components",groupCounts:"groupCounts",atBottomThreshold:"atBottomThreshold",atTopThreshold:"atTopThreshold",computeItemKey:"computeItemKey",defaultItemHeight:"defaultItemHeight",fixedItemHeight:"fixedItemHeight",itemSize:"itemSize",scrollSeekConfiguration:"scrollSeekConfiguration",headerFooterTag:"headerFooterTag",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",autoscrollToBottom:"autoscrollToBottom"},events:{isScrolling:"isScrolling",endReached:"endReached",startReached:"startReached",rangeChanged:"rangeChanged",atBottomStateChange:"atBottomStateChange",atTopStateChange:"atTopStateChange",totalListHeightChanged:"totalListHeightChanged",itemsRendered:"itemsRendered",groupIndices:"groupIndices"}},Ft),_t=Lt({usePublisher:Dt,useEmitterValue:Gt,useEmitter:Nt}),Ut=Ot({usePublisher:Dt,useEmitterValue:Gt,useEmitter:Nt}),$t=At,jt=At,Kt={items:[],offsetBottom:0,offsetTop:0,top:0,bottom:0,itemHeight:0,itemWidth:0},qt={items:[{index:0}],offsetBottom:0,offsetTop:0,top:0,bottom:0,itemHeight:0,itemWidth:0},{round:Yt,ceil:Zt,floor:Jt,min:Qt,max:Xt}=Math;function eo(e,t,o){return Array.from({length:t-e+1}).map(((t,n)=>({index:n+e,data:null==o?void 0:o[n+e]})))}function to(e,t){return e&&e.column===t.column&&e.row===t.row}const oo=M((([{overscan:e,visibleRange:t,listBoundary:o},{scrollTop:n,viewportHeight:r,scrollBy:i,scrollTo:l,smoothScrollTargetReached:s,scrollContainerState:c,footerHeight:a,headerHeight:u},d,f,{propsReady:m,didMount:h},{windowViewportRect:p,windowScrollTo:C,useWindowScroll:b,customScrollParent:R,windowScrollContainerState:z},B])=>{const P=x(0),M=x(0),W=x(Kt),V=x({height:0,width:0}),F=x({height:0,width:0}),A=v(),D=v(),G=x(0),N=x(void 0),_=x({row:0,column:0});g(w(O(h,M,N),E((([,e])=>0!==e)),H((([,e,t])=>({items:eo(0,e-1,t),top:0,bottom:0,offsetBottom:0,offsetTop:0,itemHeight:0,itemWidth:0})))),W),g(w(O(L(P),t,L(_,to),L(F,((e,t)=>e&&e.width===t.width&&e.height===t.height)),N),k(V),H((([[e,[t,o],n,r,i],l])=>{const{row:s,column:c}=n,{height:a,width:u}=r,{width:d}=l;if(0===e||0===d)return Kt;if(0===u)return function(e){return{...qt,items:e}}(eo(0,0,i));const f=io(d,u,c);let m=f*Jt((t+s)/(a+s)),h=f*Zt((o+s)/(a+s))-1;h=Qt(e-1,Xt(h,f-1)),m=Qt(h,Xt(0,m));const g=eo(m,h,i),{top:p,bottom:v}=no(l,n,r,g),x=Zt(e/f);return{items:g,offsetTop:p,offsetBottom:x*a+(x-1)*s-v,top:p,bottom:v,itemHeight:a,itemWidth:u}}))),W),g(w(N,E((e=>void 0!==e)),H((e=>e.length))),P),g(w(V,H((({height:e})=>e))),r),g(w(O(V,F,W,_),H((([e,t,{items:o},n])=>{const{top:r,bottom:i}=no(e,n,t,o);return[r,i]})),S(Ue)),o);const U=I(w(L(W),E((({items:e})=>e.length>0)),k(P),E((([{items:e},t])=>e[e.length-1].index===t-1)),H((([,e])=>e-1)),S())),$=I(w(L(W),E((({items:e})=>e.length>0&&0===e[0].index)),y(0),S())),j=I(w(L(W),E((({items:e})=>e.length>0)),H((({items:e})=>({startIndex:e[0].index,endIndex:e[e.length-1].index}))),S($e)));g(j,f.scrollSeekRangeChanged),g(w(A,k(V,F,P,_),H((([e,t,o,n,r])=>{const i=Pe(e),{align:l,behavior:s,offset:c}=i;let a=i.index;"LAST"===a&&(a=n-1),a=Xt(0,a,Qt(n-1,a));let u=ro(t,r,o,a);return"end"===l?u=Yt(u-t.height+o.height):"center"===l&&(u=Yt(u-t.height/2+o.height/2)),c&&(u+=c),{top:u,behavior:s}}))),l);const K=T(w(W,H((e=>e.offsetBottom+e.bottom))),0);return g(w(p,H((e=>({width:e.visibleWidth,height:e.visibleHeight})))),V),{data:N,totalCount:P,viewportDimensions:V,itemDimensions:F,scrollTop:n,scrollHeight:D,overscan:e,scrollBy:i,scrollTo:l,scrollToIndex:A,smoothScrollTargetReached:s,windowViewportRect:p,windowScrollTo:C,useWindowScroll:b,customScrollParent:R,windowScrollContainerState:z,deviation:G,scrollContainerState:c,footerHeight:a,headerHeight:u,initialItemCount:M,gap:_,...f,gridState:W,totalListHeight:K,...d,startReached:$,endReached:U,rangeChanged:j,propsReady:m,...B}}),s(Je,Y,Ve,nt,Fe,dt,N));function no(e,t,o,n){const{height:r}=o;if(void 0===r||0===n.length)return{top:0,bottom:0};return{top:ro(e,t,o,n[0].index),bottom:ro(e,t,o,n[n.length-1].index)+r}}function ro(e,t,o,n){const r=io(e.width,o.width,t.column),i=Jt(n/r),l=i*o.height+Xt(0,i-1)*t.row;return l>0?l+t.row:l}function io(e,t,o){return Xt(1,Jt((e+o)/(t+o)))}const lo=M((([e,t])=>({...e,...t})),s(oo,M((()=>{const e=x((e=>`Item ${e}`)),t=x({}),o=x(null),n=x("virtuoso-grid-item"),r=x("virtuoso-grid-list"),i=x(wt),l=x("div"),s=x(u),c=(e,o=null)=>T(w(t,H((t=>t[e])),S()),o);return{context:o,itemContent:e,components:t,computeItemKey:i,itemClassName:n,listClassName:r,headerFooterTag:l,scrollerRef:s,FooterComponent:c("Footer"),HeaderComponent:c("Header"),ListComponent:c("List","div"),ItemComponent:c("Item","div"),ScrollerComponent:c("Scroller","div"),ScrollSeekPlaceholder:c("ScrollSeekPlaceholder","div")}})))),so=e.memo((function(){const t=po("gridState"),o=po("listClassName"),n=po("itemClassName"),r=po("itemContent"),i=po("computeItemKey"),l=po("isSeeking"),s=go("scrollHeight"),c=po("ItemComponent"),a=po("ListComponent"),u=po("ScrollSeekPlaceholder"),d=po("context"),f=go("itemDimensions"),m=go("gap"),h=po("log"),g=U((e=>{const t=e.parentElement.parentElement.scrollHeight;s(t);const o=e.firstChild;o&&f(o.getBoundingClientRect()),m({row:To("row-gap",getComputedStyle(e).rowGap,h),column:To("column-gap",getComputedStyle(e).columnGap,h)})}));return e.createElement(a,{ref:g,className:o,...Bt(a,d),style:{paddingTop:t.offsetTop,paddingBottom:t.offsetBottom},"data-test-id":"virtuoso-item-list"},t.items.map((o=>{const s=i(o.index,o.data,d);return l?e.createElement(u,{key:s,...Bt(u,d),index:o.index,height:t.itemHeight,width:t.itemWidth}):e.createElement(c,{...Bt(c,d),className:n,"data-index":o.index,key:s},r(o.index,o.data,d))})))})),co=e.memo((function(){const t=po("HeaderComponent"),o=go("headerHeight"),n=po("headerFooterTag"),r=U((e=>o(j(e,"height")))),i=po("context");return t?e.createElement(n,{ref:r},e.createElement(t,Bt(t,i))):null})),ao=e.memo((function(){const t=po("FooterComponent"),o=go("footerHeight"),n=po("headerFooterTag"),r=U((e=>o(j(e,"height")))),i=po("context");return t?e.createElement(n,{ref:r},e.createElement(t,Bt(t,i))):null})),uo=({children:t})=>{const o=e.useContext(Tt),n=go("itemDimensions"),r=go("viewportDimensions"),i=U((e=>{r(e.getBoundingClientRect())}));return e.useEffect((()=>{o&&(r({height:o.viewportHeight,width:o.viewportWidth}),n({height:o.itemHeight,width:o.itemWidth}))}),[o,r,n]),e.createElement("div",{style:Rt,ref:i},t)},fo=({children:t})=>{const o=e.useContext(Tt),n=go("windowViewportRect"),r=go("itemDimensions"),i=po("customScrollParent"),l=xt(n,i);return e.useEffect((()=>{o&&(r({height:o.itemHeight,width:o.itemWidth}),n({offsetTop:0,visibleHeight:o.viewportHeight,visibleWidth:o.viewportWidth}))}),[o,n,r]),e.createElement("div",{ref:l,style:Rt},t)},mo=e.memo((function({...t}){const o=po("useWindowScroll"),n=po("customScrollParent"),r=n||o?Io:xo,i=n||o?fo:uo;return e.createElement(r,{...t},e.createElement(i,null,e.createElement(co,null),e.createElement(so,null),e.createElement(ao,null)))})),{Component:ho,usePublisher:go,useEmitterValue:po,useEmitter:vo}=F(lo,{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"},methods:{scrollTo:"scrollTo",scrollBy:"scrollBy",scrollToIndex:"scrollToIndex"},events:{isScrolling:"isScrolling",endReached:"endReached",startReached:"startReached",rangeChanged:"rangeChanged",atBottomStateChange:"atBottomStateChange",atTopStateChange:"atTopStateChange"}},mo),xo=Lt({usePublisher:go,useEmitterValue:po,useEmitter:vo}),Io=Ot({usePublisher:go,useEmitterValue:po,useEmitter:vo});function To(e,t,o){return"normal"===t||(null==t?void 0:t.endsWith("px"))||o(`${e} was not resolved to pixel value correctly`,t,D.WARN),"normal"===t?0:parseInt(t??"0",10)}const wo=ho,Co=M((([e,t])=>({...e,...t})),s(ht,M((()=>{const t=x((t=>e.createElement("td",null,"Item $",t))),o=x(null),n=x(null),r=x(null),i=x({}),l=x(wt),s=x(u),c=(e,t=null)=>T(w(i,H((t=>t[e])),S()),t);return{context:o,itemContent:t,fixedHeaderContent:n,fixedFooterContent:r,components:i,computeItemKey:l,scrollerRef:s,TableComponent:c("Table","table"),TableHeadComponent:c("TableHead","thead"),TableFooterComponent:c("TableFoot","tfoot"),TableBodyComponent:c("TableBody","tbody"),TableRowComponent:c("TableRow","tr"),ScrollerComponent:c("Scroller","div"),EmptyPlaceholder:c("EmptyPlaceholder"),ScrollSeekPlaceholder:c("ScrollSeekPlaceholder"),FillerRow:c("FillerRow")}})))),So=({height:t})=>e.createElement("tr",null,e.createElement("td",{style:{height:t}})),Eo=({height:t})=>e.createElement("tr",null,e.createElement("td",{style:{height:t,padding:0,border:0}})),Ho=e.memo((function(){const t=ko("listState"),o=Bo("sizeRanges"),n=ko("useWindowScroll"),r=ko("customScrollParent"),i=Bo("windowScrollContainerState"),l=Bo("scrollContainerState"),s=r||n?i:l,c=ko("itemContent"),a=ko("trackItemSizes"),u=ko("itemSize"),d=ko("log"),{callbackRef:f,ref:m}=$(o,u,a,s,d,void 0,r),[h,g]=e.useState(0);Po("deviation",(e=>{h!==e&&(m.current.style.marginTop=`${e}px`,g(e))}));const p=ko("EmptyPlaceholder"),v=ko("ScrollSeekPlaceholder")||So,x=ko("FillerRow")||Eo,I=ko("TableBodyComponent"),T=ko("TableRowComponent"),w=ko("computeItemKey"),C=ko("isSeeking"),S=ko("paddingTopAddition"),E=ko("firstItemIndex"),H=ko("statefulTotalCount"),y=ko("context");if(0===H&&p)return e.createElement(p,Bt(p,y));const b=t.offsetTop+S+h,R=t.offsetBottom,z=b>0?e.createElement(x,{height:b,key:"padding-top",context:y}):null,B=R>0?e.createElement(x,{height:R,key:"padding-bottom",context:y}):null,k=t.items.map((t=>{const o=t.originalIndex,n=w(o+E,t.data,y);return C?e.createElement(v,{...Bt(v,y),key:n,index:t.index,height:t.size,type:t.type||"item"}):e.createElement(T,{...Bt(T,y),key:n,"data-index":o,"data-known-size":t.size,"data-item-index":t.index,item:t.data,style:{overflowAnchor:"none"}},c(t.index,t.data,y))}));return e.createElement(I,{ref:f,"data-test-id":"virtuoso-item-list",...Bt(I,y)},[z,...k,B])})),yo=({children:t})=>{const n=e.useContext(It),r=Bo("viewportHeight"),i=Bo("fixedItemHeight"),l=U(o(r,(e=>j(e,"height"))));return e.useEffect((()=>{n&&(r(n.viewportHeight),i(n.itemHeight))}),[n,r,i]),e.createElement("div",{style:Rt,ref:l,"data-viewport-type":"element"},t)},bo=({children:t})=>{const o=e.useContext(It),n=Bo("windowViewportRect"),r=Bo("fixedItemHeight"),i=ko("customScrollParent"),l=xt(n,i);return e.useEffect((()=>{o&&(r(o.itemHeight),n({offsetTop:0,visibleHeight:o.viewportHeight,visibleWidth:100}))}),[o,n,r]),e.createElement("div",{ref:l,style:Rt,"data-viewport-type":"window"},t)},Ro=e.memo((function(t){const n=ko("useWindowScroll"),r=ko("customScrollParent"),i=Bo("fixedHeaderHeight"),l=Bo("fixedFooterHeight"),s=ko("fixedHeaderContent"),c=ko("fixedFooterContent"),a=ko("context"),u=U(o(i,(e=>j(e,"height")))),d=U(o(l,(e=>j(e,"height")))),f=r||n?Oo:Lo,m=r||n?bo:yo,h=ko("TableComponent"),g=ko("TableHeadComponent"),p=ko("TableFooterComponent"),v=s?e.createElement(g,{key:"TableHead",style:{zIndex:1,position:"sticky",top:0},ref:u,...Bt(g,a)},s()):null,x=c?e.createElement(p,{key:"TableFoot",style:{zIndex:1,position:"sticky",bottom:0},ref:d,...Bt(p,a)},c()):null;return e.createElement(f,{...t},e.createElement(m,null,e.createElement(h,{style:{borderSpacing:0},...Bt(h,a)},[v,e.createElement(Ho,{key:"TableBody"}),x])))})),{Component:zo,usePublisher:Bo,useEmitterValue:ko,useEmitter:Po}=F(Co,{required:{},optional:{context:"context",followOutput:"followOutput",firstItemIndex:"firstItemIndex",itemContent:"itemContent",fixedHeaderContent:"fixedHeaderContent",fixedFooterContent:"fixedFooterContent",overscan:"overscan",increaseViewportBy:"increaseViewportBy",totalCount:"totalCount",topItemCount:"topItemCount",initialTopMostItemIndex:"initialTopMostItemIndex",components:"components",groupCounts:"groupCounts",atBottomThreshold:"atBottomThreshold",atTopThreshold:"atTopThreshold",computeItemKey:"computeItemKey",defaultItemHeight:"defaultItemHeight",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"},events:{isScrolling:"isScrolling",endReached:"endReached",startReached:"startReached",rangeChanged:"rangeChanged",atBottomStateChange:"atBottomStateChange",atTopStateChange:"atTopStateChange",totalListHeightChanged:"totalListHeightChanged",itemsRendered:"itemsRendered",groupIndices:"groupIndices"}},Ro),Lo=Lt({usePublisher:Bo,useEmitterValue:ko,useEmitter:Po}),Oo=Ot({usePublisher:Bo,useEmitterValue:ko,useEmitter:Po}),Mo=zo;exports.GroupedVirtuoso=jt,exports.LogLevel=D,exports.TableVirtuoso=Mo,exports.Virtuoso=$t,exports.VirtuosoGrid=wo,exports.VirtuosoGridMockContext=Tt,exports.VirtuosoMockContext=It;
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react"),t=require("react-dom"),o=0,n=1,r=2,i=4;function l(e,t){return o=>e(t(o))}function s(e,t){return t(e)}function c(e,t){return o=>e(t,o)}function a(e,t){return()=>e(t)}function u(e,t){return t(e),e}function d(...e){return e}function m(e){e()}function f(e){return()=>e}function h(e){return void 0!==e}function g(){}function p(e,t){return e(n,t)}function v(e,t){e(o,t)}function I(e){e(r)}function x(e){return e(i)}function T(e,t){return p(e,c(t,o))}function w(e,t){const o=e(n,(e=>{o(),t(e)}));return o}function S(){const e=[];return(t,i)=>{switch(t){case r:return void e.splice(0,e.length);case n:return e.push(i),()=>{const t=e.indexOf(i);t>-1&&e.splice(t,1)};case o:return void e.slice().forEach((e=>{e(i)}));default:throw new Error(`unrecognized action ${t}`)}}}function C(e){let t=e;const r=S();return(e,l)=>{switch(e){case n:l(t);break;case o:t=l;break;case i:return t}return r(e,l)}}function E(e){return u(S(),(t=>T(e,t)))}function H(e,t){return u(C(t),(t=>T(e,t)))}function y(e,...t){const o=function(...e){return t=>e.reduceRight(s,t)}(...t);return(t,i)=>{switch(t){case n:return p(e,o(i));case r:return void I(e)}}}function b(e,t){return e===t}function z(e=b){let t;return o=>n=>{e(t,n)||(t=n,o(n))}}function R(e){return t=>o=>{e(o)&&t(o)}}function B(e){return t=>l(t,e)}function k(e){return t=>()=>t(e)}function L(e,t){return o=>n=>o(t=e(t,n))}function P(e){return t=>o=>{e>0?e--:t(o)}}function W(e){let t,o=null;return n=>r=>{o=r,t||(t=setTimeout((()=>{t=void 0,n(o)}),e))}}function M(e){let t,o;return n=>r=>{t=r,o&&clearTimeout(o),o=setTimeout((()=>{n(t)}),e)}}function O(...e){const t=new Array(e.length);let o=0,n=null;const r=Math.pow(2,e.length)-1;return e.forEach(((e,i)=>{const l=Math.pow(2,i);p(e,(e=>{const s=o;o|=l,t[i]=e,s!==r&&o===r&&n&&(n(),n=null)}))})),e=>i=>{const l=()=>e([i].concat(t));o===r?l():n=l}}function F(...e){return function(t,o){switch(t){case n:return function(...e){return()=>{e.map(m)}}(...e.map((e=>p(e,o))));case r:return;default:throw new Error(`unrecognized action ${t}`)}}}function V(e,t=b){return y(e,z(t))}function A(...e){const t=S(),o=new Array(e.length);let i=0;const l=Math.pow(2,e.length)-1;return e.forEach(((e,n)=>{const r=Math.pow(2,n);p(e,(e=>{o[n]=e,i|=r,i===l&&v(t,o)}))})),function(e,s){switch(e){case n:return i===l&&s(o),p(t,s);case r:return I(t);default:throw new Error(`unrecognized action ${e}`)}}}function D(e,t=[],{singleton:o}={singleton:!0}){return{id:G(),constructor:e,dependencies:t,singleton:o}}const G=()=>Symbol();const N="undefined"!=typeof document?e.useLayoutEffect:e.useEffect;function _(t,o,i){const l=Object.keys(o.required||{}),s=Object.keys(o.optional||{}),d=Object.keys(o.methods||{}),m=Object.keys(o.events||{}),h=e.createContext({});function T(e,t){e.propsReady&&v(e.propsReady,!1);for(const n of l){v(e[o.required[n]],t[n])}for(const n of s)if(n in t){v(e[o.optional[n]],t[n])}e.propsReady&&v(e.propsReady,!0)}function w(e){return m.reduce(((t,i)=>(t[i]=function(e){let t,o;const i=()=>t&&t();return function(l,s){switch(l){case n:if(s){if(o===s)return;return i(),o=s,t=p(e,s),t}return i(),g;case r:return i(),void(o=null);default:throw new Error(`unrecognized action ${l}`)}}}(e[o.events[i]]),t)),{})}const S=e.forwardRef(((n,r)=>{const{children:c,...g}=n,[x]=e.useState((()=>u(function(e){const t=new Map,o=({id:e,constructor:n,dependencies:r,singleton:i})=>{if(i&&t.has(e))return t.get(e);const l=n(r.map((e=>o(e))));return i&&t.set(e,l),l};return o(e)}(t),(e=>T(e,g))))),[S]=e.useState(a(w,x));return N((()=>{for(const e of m)e in g&&p(S[e],g[e]);return()=>{Object.values(S).map(I)}}),[g,S,x]),N((()=>{T(x,g)})),e.useImperativeHandle(r,f(function(e){return d.reduce(((t,n)=>(t[n]=t=>{v(e[o.methods[n]],t)},t)),{})}(x))),e.createElement(h.Provider,{value:x},i?e.createElement(i,function(e,t){const o={},n={};let r=0;const i=e.length;for(;r<i;)n[e[r]]=1,r+=1;for(const l in t)n.hasOwnProperty(l)||(o[l]=t[l]);return o}([...l,...s,...m],g),c):c)}));return{Component:S,usePublisher:t=>e.useCallback(c(v,e.useContext(h)[t]),[t]),useEmitterValue:e.version.startsWith("18")?t=>{const o=e.useContext(h)[t],n=e.useCallback((e=>p(o,e)),[o]);return e.useSyncExternalStore(n,(()=>x(o)),(()=>x(o)))}:t=>{const o=e.useContext(h)[t],[n,r]=e.useState(a(x,o));return N((()=>p(o,(e=>{e!==n&&r(f(e))}))),[o,n]),n},useEmitter:(t,o)=>{const n=e.useContext(h)[t];N((()=>p(n,o)),[o,n])}}}const U="undefined"!=typeof document?e.useLayoutEffect:e.useEffect;var $=(e=>(e[e.DEBUG=0]="DEBUG",e[e.INFO=1]="INFO",e[e.WARN=2]="WARN",e[e.ERROR=3]="ERROR",e))($||{});const j={0:"debug",1:"log",2:"warn",3:"error"},K=D((()=>{const e=C(3);return{log:C(((t,o,n=1)=>{var r;n>=(null!=(r=("undefined"==typeof globalThis?window:globalThis).VIRTUOSO_LOG_LEVEL)?r:x(e))&&console[j[n]]("%creact-virtuoso: %c%s %o","color: #0253b3; font-weight: bold","color: initial",t,o)})),logLevel:e}}),[],{singleton:!0});function q(t,o=!0){const n=e.useRef(null);let r=e=>{};if("undefined"!=typeof ResizeObserver){const i=e.useMemo((()=>new ResizeObserver((e=>{requestAnimationFrame((()=>{const o=e[0].target;null!==o.offsetParent&&t(o)}))}))),[t]);r=e=>{e&&o?(i.observe(e),n.current=e):(n.current&&i.unobserve(n.current),n.current=null)}}return{ref:n,callbackRef:r}}function Y(e,t=!0){return q(e,t).callbackRef}function Z(t,o,n,r,i,l,s,c){const a=e.useCallback((e=>{const n=function(e,t,o,n){const r=e.length;if(0===r)return null;const i=[];for(let l=0;l<r;l++){const r=e.item(l);if(!r||void 0===r.dataset.index)continue;const s=parseInt(r.dataset.index),c=parseFloat(r.dataset.knownSize),a=t(r,o);if(0===a&&n("Zero-sized element, this should not happen",{child:r},$.ERROR),a===c)continue;const u=i[i.length-1];0===i.length||u.size!==a||u.endIndex!==s-1?i.push({startIndex:s,endIndex:s,size:a}):i[i.length-1].endIndex++}return i}(e.children,o,c?"offsetWidth":"offsetHeight",i);let a=e.parentElement;for(;!a.dataset.virtuosoScroller;)a=a.parentElement;const u="window"===a.lastElementChild.dataset.viewportType,d=s?c?s.scrollLeft:s.scrollTop:u?c?window.pageXOffset||document.documentElement.scrollLeft:window.pageYOffset||document.documentElement.scrollTop:c?a.scrollLeft:a.scrollTop,m=s?c?s.scrollWidth:s.scrollHeight:u?c?document.documentElement.scrollWidth:document.documentElement.scrollHeight:c?a.scrollWidth:a.scrollHeight,f=s?c?s.offsetWidth:s.offsetHeight:u?c?window.innerWidth:window.innerHeight:c?a.offsetWidth:a.offsetHeight;r({scrollTop:Math.max(d,0),scrollHeight:m,viewportHeight:f}),null==l||l(c?X("column-gap",getComputedStyle(e).columnGap,i):X("row-gap",getComputedStyle(e).rowGap,i)),null!==n&&t(n)}),[t,o,i,l,s,r]);return q(a,n)}function X(e,t,o){return"normal"===t||(null==t?void 0:t.endsWith("px"))||o(`${e} was not resolved to pixel value correctly`,t,$.WARN),"normal"===t?0:parseInt(null!=t?t:"0",10)}function J(e,t){return Math.round(e.getBoundingClientRect()[t])}function Q(e,t){return Math.abs(e-t)<1.01}function ee(o,n,r,i=g,l,s){const c=e.useRef(null),a=e.useRef(null),u=e.useRef(null),d=e.useCallback((e=>{const r=e.target,i=r===window||r===document,l=s?i?window.pageXOffset||document.documentElement.scrollLeft:r.scrollLeft:i?window.pageYOffset||document.documentElement.scrollTop:r.scrollTop,c=s?i?document.documentElement.scrollWidth:r.scrollWidth:i?document.documentElement.scrollHeight:r.scrollHeight,d=s?i?window.innerWidth:r.offsetWidth:i?window.innerHeight:r.offsetHeight,m=()=>{o({scrollTop:Math.max(l,0),scrollHeight:c,viewportHeight:d})};e.suppressFlushSync?m():t.flushSync(m),null!==a.current&&(l===a.current||l<=0||l===c-d)&&(a.current=null,n(!0),u.current&&(clearTimeout(u.current),u.current=null))}),[o,n]);return e.useEffect((()=>{const e=l||c.current;return i(l||c.current),d({target:e,suppressFlushSync:!0}),e.addEventListener("scroll",d,{passive:!0}),()=>{i(null),e.removeEventListener("scroll",d)}}),[c,d,r,i,l]),{scrollerRef:c,scrollByCallback:function(e){s&&(e={left:e.top,behavior:e.behavior}),c.current.scrollBy(e)},scrollToCallback:function(e){const t=c.current;if(!t||(s?"offsetWidth"in t&&0===t.offsetWidth:"offsetHeight"in t&&0===t.offsetHeight))return;const r="smooth"===e.behavior;let i,l,d;t===window?(l=Math.max(J(document.documentElement,s?"width":"height"),s?document.documentElement.scrollWidth:document.documentElement.scrollHeight),i=s?window.innerWidth:window.innerHeight,d=s?document.documentElement.scrollLeft:document.documentElement.scrollTop):(l=t[s?"scrollWidth":"scrollHeight"],i=J(t,s?"width":"height"),d=t[s?"scrollLeft":"scrollTop"]);const m=l-i;if(e.top=Math.ceil(Math.max(Math.min(m,e.top),0)),Q(i,l)||e.top===d)return o({scrollTop:d,scrollHeight:l,viewportHeight:i}),void(r&&n(!0));r?(a.current=e.top,u.current&&clearTimeout(u.current),u.current=setTimeout((()=>{u.current=null,a.current=null,n(!0)}),1e3)):a.current=null,s&&(e={left:e.top,behavior:e.behavior}),t.scrollTo(e)}}}const te=D((()=>{const e=S(),t=S(),o=C(0),n=S(),r=C(0),i=S(),l=S(),s=C(0),c=C(0),a=C(0),u=C(0),d=S(),m=S(),f=C(!1),h=C(!1);return T(y(e,B((({scrollTop:e})=>e))),t),T(y(e,B((({scrollHeight:e})=>e))),l),T(t,r),{scrollContainerState:e,scrollTop:t,viewportHeight:i,headerHeight:s,fixedHeaderHeight:c,fixedFooterHeight:a,footerHeight:u,scrollHeight:l,smoothScrollTargetReached:n,horizontalDirection:h,scrollTo:d,scrollBy:m,statefulScrollTop:r,deviation:o,scrollingInProgress:f}}),[],{singleton:!0}),oe={lvl:0};function ne(e,t,o,n=oe,r=oe){return{k:e,v:t,lvl:o,l:n,r:r}}function re(e){return e===oe}function ie(){return oe}function le(e,t){if(re(e))return oe;const{k:o,l:n,r:r}=e;if(t===o){if(re(n))return r;if(re(r))return n;{const[t,o]=me(n);return ve(he(e,{k:t,v:o,l:fe(n)}))}}return ve(he(e,t<o?{l:le(n,t)}:{r:le(r,t)}))}function se(e,t){if(!re(e))return t===e.k?e.v:t<e.k?se(e.l,t):se(e.r,t)}function ce(e,t,o="k"){if(re(e))return[-1/0,void 0];if(Number(e[o])===t)return[e.k,e.v];if(Number(e[o])<t){const n=ce(e.r,t,o);return n[0]===-1/0?[e.k,e.v]:n}return ce(e.l,t,o)}function ae(e,t,o){return re(e)?ne(t,o,1):t===e.k?he(e,{k:t,v:o}):t<e.k?pe(he(e,{l:ae(e.l,t,o)})):pe(he(e,{r:ae(e.r,t,o)}))}function ue(e,t,o){if(re(e))return[];const{k:n,v:r,l:i,r:l}=e;let s=[];return n>t&&(s=s.concat(ue(i,t,o))),n>=t&&n<=o&&s.push({k:n,v:r}),n<=o&&(s=s.concat(ue(l,t,o))),s}function de(e){return re(e)?[]:[...de(e.l),{k:e.k,v:e.v},...de(e.r)]}function me(e){return re(e.r)?[e.k,e.v]:me(e.r)}function fe(e){return re(e.r)?e.l:ve(he(e,{r:fe(e.r)}))}function he(e,t){return ne(void 0!==t.k?t.k:e.k,void 0!==t.v?t.v:e.v,void 0!==t.lvl?t.lvl:e.lvl,void 0!==t.l?t.l:e.l,void 0!==t.r?t.r:e.r)}function ge(e){return re(e)||e.lvl>e.r.lvl}function pe(e){return Te(we(e))}function ve(e){const{l:t,r:o,lvl:n}=e;if(o.lvl>=n-1&&t.lvl>=n-1)return e;if(n>o.lvl+1){if(ge(t))return we(he(e,{lvl:n-1}));if(re(t)||re(t.r))throw new Error("Unexpected empty nodes");return he(t.r,{l:he(t,{r:t.r.l}),r:he(e,{l:t.r.r,lvl:n-1}),lvl:n})}if(ge(e))return Te(he(e,{lvl:n-1}));if(re(o)||re(o.l))throw new Error("Unexpected empty nodes");{const t=o.l,r=ge(t)?o.lvl-1:o.lvl;return he(t,{l:he(e,{r:t.l,lvl:n-1}),r:Te(he(o,{l:t.r,lvl:r})),lvl:t.lvl+1})}}function Ie(e,t,o){if(re(e))return[];const n=ce(e,t)[0];return xe(ue(e,n,o),(({k:e,v:t})=>({index:e,value:t})))}function xe(e,t){const o=e.length;if(0===o)return[];let{index:n,value:r}=t(e[0]);const i=[];for(let l=1;l<o;l++){const{index:o,value:s}=t(e[l]);i.push({start:n,end:o-1,value:r}),n=o,r=s}return i.push({start:n,end:1/0,value:r}),i}function Te(e){const{r:t,lvl:o}=e;return re(t)||re(t.r)||t.lvl!==o||t.r.lvl!==o?e:he(t,{l:he(e,{r:t.l}),lvl:o+1})}function we(e){const{l:t}=e;return re(t)||t.lvl!==e.lvl?e:he(t,{r:he(e,{l:t.r})})}function Se(e,t,o,n=0){let r=e.length-1;for(;n<=r;){const i=Math.floor((n+r)/2),l=o(e[i],t);if(0===l)return i;if(-1===l){if(r-n<2)return i-1;r=i-1}else{if(r===n)return i;n=i+1}}throw new Error(`Failed binary finding record in array - ${e.join(",")}, searched for ${t}`)}function Ce(e,t,o){return e[Se(e,t,o)]}const Ee=D((()=>({recalcInProgress:C(!1)})),[],{singleton:!0});function He(e){const{size:t,startIndex:o,endIndex:n}=e;return e=>e.start===o&&(e.end===n||e.end===1/0)&&e.value===t}function ye(e,t){let o=0,n=0;for(;o<e;)o+=t[n+1]-t[n]-1,n++;return n-(o===e?0:1)}function be({index:e},t){return t===e?0:t<e?-1:1}function ze({offset:e},t){return t===e?0:t<e?-1:1}function Re(e){return{index:e.index,value:e}}function Be(e,t,o,n=0){return n>0&&(t=Math.max(t,Ce(e,n,be).offset)),xe(function(e,t,o,n){const r=Se(e,t,n),i=Se(e,o,n,r);return e.slice(r,i+1)}(e,t,o,ze),Re)}function ke(e,t,o,n){let r=e,i=0,l=0,s=0,c=0;if(0!==t){c=Se(r,t-1,be);s=r[c].offset;const e=ce(o,t-1);i=e[0],l=e[1],r.length&&r[c].size===ce(o,t)[1]&&(c-=1),r=r.slice(0,c+1)}else r=[];for(const{start:a,value:u}of Ie(o,t,1/0)){const e=a-i,t=e*l+s+e*n;r.push({offset:t,size:u,index:a}),i=a,s=t,l=u}return{offsetTree:r,lastIndex:i,lastOffset:s,lastSize:l}}function Le(e,[t,o,n,r]){t.length>0&&n("received item sizes",t,$.DEBUG);const i=e.sizeTree;let l=i,s=0;if(o.length>0&&re(i)&&2===t.length){const e=t[0].size,n=t[1].size;l=o.reduce(((t,o)=>ae(ae(t,o,e),o+1,n)),l)}else[l,s]=function(e,t){let o=re(e)?0:1/0;for(const n of t){const{size:t,startIndex:r,endIndex:i}=n;if(o=Math.min(o,r),re(e)){e=ae(e,0,t);continue}const l=Ie(e,r-1,i+1);if(l.some(He(n)))continue;let s=!1,c=!1;for(const{start:o,end:n,value:a}of l)s?(i>=o||t===a)&&(e=le(e,o)):(c=a!==t,s=!0),n>i&&i>=o&&a!==t&&(e=ae(e,i+1,a));c&&(e=ae(e,r,t))}return[e,o]}(l,t);if(l===i)return e;const{offsetTree:c,lastIndex:a,lastSize:u,lastOffset:d}=ke(e.offsetTree,s,l,r);return{sizeTree:l,offsetTree:c,lastIndex:a,lastOffset:d,lastSize:u,groupOffsetTree:o.reduce(((e,t)=>ae(e,t,Pe(t,c,r))),ie()),groupIndices:o}}function Pe(e,t,o){if(0===t.length)return 0;const{offset:n,index:r,size:i}=Ce(t,e,be),l=e-r,s=i*l+(l-1)*o+n;return s>0?s+o:s}function We(e,t,o){if(function(e){return void 0!==e.groupIndex}(e))return t.groupIndices[e.groupIndex]+1;{let n=Me("LAST"===e.index?o:e.index,t);return n=Math.max(0,n,Math.min(o,n)),n}}function Me(e,t){if(!Oe(t))return e;let o=0;for(;t.groupIndices[o]<=e+o;)o++;return e+o}function Oe(e){return!re(e.groupOffsetTree)}const Fe={offsetHeight:"height",offsetWidth:"width"},Ve=D((([{log:e},{recalcInProgress:t}])=>{const o=S(),n=S(),r=H(n,0),i=S(),l=S(),s=C(0),c=C([]),a=C(void 0),u=C(void 0),d=C(((e,t)=>J(e,Fe[t]))),m=C(void 0),f=C(0),h={offsetTree:[],sizeTree:ie(),groupOffsetTree:ie(),lastIndex:0,lastOffset:0,lastSize:0,groupIndices:[]},g=H(y(o,O(c,e,f),L(Le,h),z()),h),I=H(y(c,z(),L(((e,t)=>({prev:e.current,current:t})),{prev:[],current:[]}),B((({prev:e})=>e))),[]);T(y(c,R((e=>e.length>0)),O(g,f),B((([e,t,o])=>{const n=e.reduce(((e,n,r)=>ae(e,n,Pe(n,t.offsetTree,o)||r)),ie());return{...t,groupIndices:e,groupOffsetTree:n}}))),g),T(y(n,O(g),R((([e,{lastIndex:t}])=>e<t)),B((([e,{lastIndex:t,lastSize:o}])=>[{startIndex:e,endIndex:t,size:o}]))),o),T(a,u);const w=H(y(a,B((e=>void 0===e))),!0);T(y(u,R((e=>void 0!==e&&re(x(g).sizeTree))),B((e=>[{startIndex:0,endIndex:0,size:e}]))),o);const b=E(y(o,O(g),L((({sizes:e},[t,o])=>({changed:o!==e,sizes:o})),{changed:!1,sizes:h}),B((e=>e.changed))));p(y(s,L(((e,t)=>({diff:e.prev-t,prev:t})),{diff:0,prev:0}),B((e=>e.diff))),(e=>{const{groupIndices:o}=x(g);if(e>0)v(t,!0),v(i,e+ye(e,o));else if(e<0){const t=x(I);t.length>0&&(e-=ye(-e,t)),v(l,e)}})),p(y(s,O(e)),(([e,t])=>{e<0&&t("`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:s},$.ERROR)}));const k=E(i);T(y(i,O(g),B((([e,t])=>{const o=t.groupIndices.length>0,n=[],r=t.lastSize;if(o){const o=se(t.sizeTree,0);let i=0,l=0;for(;i<e;){const e=t.groupIndices[l],s=t.groupIndices.length===l+1?1/0:t.groupIndices[l+1]-e-1;n.push({startIndex:e,endIndex:e,size:o}),n.push({startIndex:e+1,endIndex:e+1+s-1,size:r}),l++,i+=s+1}const s=de(t.sizeTree);return i!==e&&s.shift(),s.reduce(((t,{k:o,v:n})=>{let r=t.ranges;return 0!==t.prevSize&&(r=[...t.ranges,{startIndex:t.prevIndex,endIndex:o+e-1,size:t.prevSize}]),{ranges:r,prevIndex:o+e,prevSize:n}}),{ranges:n,prevIndex:e,prevSize:0}).ranges}return de(t.sizeTree).reduce(((t,{k:o,v:n})=>({ranges:[...t.ranges,{startIndex:t.prevIndex,endIndex:o+e-1,size:t.prevSize}],prevIndex:o+e,prevSize:n})),{ranges:[],prevIndex:0,prevSize:r}).ranges}))),o);const P=E(y(l,O(g,f),B((([e,{offsetTree:t},o])=>Pe(-e,t,o)))));return T(y(l,O(g,f),B((([e,t,o])=>{if(t.groupIndices.length>0){if(re(t.sizeTree))return t;let n=ie();const r=x(I);let i=0,l=0,s=0;for(;i<-e;){s=r[l];const e=r[l+1]-s-1;l++,i+=e+1}n=de(t.sizeTree).reduce(((t,{k:o,v:n})=>ae(t,Math.max(0,o+e),n)),n);if(i!==-e){n=ae(n,0,se(t.sizeTree,s));n=ae(n,1,ce(t.sizeTree,1-e)[1])}return{...t,sizeTree:n,...ke(t.offsetTree,0,n,o)}}{const n=de(t.sizeTree).reduce(((t,{k:o,v:n})=>ae(t,Math.max(0,o+e),n)),ie());return{...t,sizeTree:n,...ke(t.offsetTree,0,n,o)}}}))),g),{data:m,totalCount:n,sizeRanges:o,groupIndices:c,defaultItemSize:u,fixedItemSize:a,unshiftWith:i,shiftWith:l,shiftWithOffset:P,beforeUnshiftWith:k,firstItemIndex:s,gap:f,sizes:g,listRefresh:b,statefulTotalCount:r,trackItemSizes:w,itemSize:d}}),d(K,Ee),{singleton:!0}),Ae="undefined"!=typeof document&&"scrollBehavior"in document.documentElement.style;function De(e){const t="number"==typeof e?{index:e}:e;return t.align||(t.align="start"),t.behavior&&Ae||(t.behavior="auto"),t.offset||(t.offset=0),t}const Ge=D((([{sizes:e,totalCount:t,listRefresh:o,gap:n},{scrollingInProgress:r,viewportHeight:i,scrollTo:l,smoothScrollTargetReached:s,headerHeight:c,footerHeight:a,fixedHeaderHeight:u,fixedFooterHeight:d},{log:m}])=>{const f=S(),h=S(),g=C(0);let I=null,x=null,E=null;function H(){I&&(I(),I=null),E&&(E(),E=null),x&&(clearTimeout(x),x=null),v(r,!1)}return T(y(f,O(e,i,t,g,c,a,m),O(n,u,d),B((([[e,t,n,i,l,c,a,u],d,m,g])=>{const T=De(e),{align:S,behavior:C,offset:b}=T,z=i-1,R=We(T,t,z);let B=Pe(R,t.offsetTree,d)+c;"end"===S?(B+=m+ce(t.sizeTree,R)[1]-n+g,R===z&&(B+=a)):"center"===S?B+=(m+ce(t.sizeTree,R)[1]-n+g)/2:B-=l,b&&(B+=b);const k=t=>{H(),t?(u("retrying to scroll to",{location:e},$.DEBUG),v(f,e)):(v(h,!0),u("list did not change, scroll successful",{},$.DEBUG))};if(H(),"smooth"===C){let e=!1;E=p(o,(t=>{e=e||t})),I=w(s,(()=>{k(e)}))}else I=w(y(o,(L=150,e=>{const t=setTimeout((()=>{e(!1)}),L);return o=>{o&&(e(!0),clearTimeout(t))}})),k);var L;return x=setTimeout((()=>{H()}),1200),v(r,!0),u("scrolling from index to",{index:R,top:B,behavior:C},$.DEBUG),{top:B,behavior:C}}))),l),{scrollToIndex:f,scrollTargetReached:h,topListHeight:g}}),d(Ve,te,K),{singleton:!0});const Ne="up",_e="down",Ue={atBottom:!1,notAtBottomBecause:"NOT_SHOWING_LAST_ITEM",state:{offsetBottom:0,scrollTop:0,viewportHeight:0,scrollHeight:0}},$e=D((([{scrollContainerState:e,scrollTop:t,viewportHeight:o,headerHeight:n,footerHeight:r,scrollBy:i}])=>{const l=C(!1),s=C(!0),c=S(),a=S(),u=C(4),d=C(0),m=H(y(F(y(V(t),P(1),k(!0)),y(V(t),P(1),k(!1),M(100))),z()),!1),f=H(y(F(y(i,k(!0)),y(i,k(!1),M(200))),z()),!1);T(y(A(V(t),V(d)),B((([e,t])=>e<=t)),z()),s),T(y(s,W(50)),a);const h=E(y(A(e,V(o),V(n),V(r),V(u)),L(((e,[{scrollTop:t,scrollHeight:o},n,r,i,l])=>{const s={viewportHeight:n,scrollTop:t,scrollHeight:o};if(t+n-o>-l){let o,n;return t>e.state.scrollTop?(o="SCROLLED_DOWN",n=e.state.scrollTop-t):(o="SIZE_DECREASED",n=e.state.scrollTop-t||e.scrollTopDelta),{atBottom:!0,state:s,atBottomBecause:o,scrollTopDelta:n}}let c;return c=s.scrollHeight>e.state.scrollHeight?"SIZE_INCREASED":n<e.state.viewportHeight?"VIEWPORT_HEIGHT_DECREASING":t<e.state.scrollTop?"SCROLLING_UPWARDS":"NOT_FULLY_SCROLLED_TO_LAST_ITEM_BOTTOM",{atBottom:!1,notAtBottomBecause:c,state:s}}),Ue),z(((e,t)=>e&&e.atBottom===t.atBottom)))),g=H(y(e,L(((e,{scrollTop:t,scrollHeight:o,viewportHeight:n})=>{if(Q(e.scrollHeight,o))return{scrollTop:t,scrollHeight:o,jump:0,changed:!1};{const r=o-(t+n)<1;return e.scrollTop!==t&&r?{scrollHeight:o,scrollTop:t,jump:e.scrollTop-t,changed:!0}:{scrollHeight:o,scrollTop:t,jump:0,changed:!0}}}),{scrollHeight:0,jump:0,scrollTop:0,changed:!1}),R((e=>e.changed)),B((e=>e.jump))),0);T(y(h,B((e=>e.atBottom))),l),T(y(l,W(50)),c);const p=C(_e);T(y(e,B((({scrollTop:e})=>e)),z(),L(((e,t)=>x(f)?{direction:e.direction,prevScrollTop:t}:{direction:t<e.prevScrollTop?Ne:_e,prevScrollTop:t}),{direction:_e,prevScrollTop:0}),B((e=>e.direction))),p),T(y(e,W(50),k("none")),p);const v=C(0);return T(y(m,R((e=>!e)),k(0)),v),T(y(t,W(100),O(m),R((([e,t])=>!!t)),L((([e,t],[o])=>[t,o]),[0,0]),B((([e,t])=>t-e))),v),{isScrolling:m,isAtTop:s,isAtBottom:l,atBottomState:h,atTopStateChange:a,atBottomStateChange:c,scrollDirection:p,atBottomThreshold:u,atTopThreshold:d,scrollVelocity:v,lastJumpDueToItemResize:g}}),d(te)),je=D((([{log:e}])=>{const t=C(!1),o=E(y(t,R((e=>e)),z()));return p(t,(t=>{t&&x(e)("props updated",{},$.DEBUG)})),{propsReady:t,didMount:o}}),d(K),{singleton:!0});function Ke(e,t){0==e?t():requestAnimationFrame((()=>Ke(e-1,t)))}function qe(e,t){const o=t-1;return"number"==typeof e?e:"LAST"===e.index?o:e.index}const Ye=D((([{sizes:e,listRefresh:t,defaultItemSize:o},{scrollTop:n},{scrollToIndex:r,scrollTargetReached:i},{didMount:l}])=>{const s=C(!0),c=C(0),a=C(!0);return T(y(l,O(c),R((([e,t])=>!!t)),k(!1)),s),T(y(l,O(c),R((([e,t])=>!!t)),k(!1)),a),p(y(A(t,l),O(s,e,o,a),R((([[,e],t,{sizeTree:o},n,r])=>e&&(!re(o)||h(n))&&!t&&!r)),O(c)),(([,e])=>{w(i,(()=>{v(a,!0)})),Ke(3,(()=>{w(n,(()=>{v(s,!0)})),v(r,e)}))})),{scrolledToInitialItem:s,initialTopMostItemIndex:c,initialItemFinalLocationReached:a}}),d(Ve,te,Ge,je),{singleton:!0});function Ze(e){return!!e&&("smooth"===e?"smooth":"auto")}const Xe=D((([{totalCount:e,listRefresh:t},{isAtBottom:o,atBottomState:n},{scrollToIndex:r},{scrolledToInitialItem:i},{propsReady:l,didMount:s},{log:c},{scrollingInProgress:a}])=>{const u=C(!1),d=S();let m=null;function f(e){v(r,{index:"LAST",align:"end",behavior:e})}function h(e){const t=w(n,(t=>{!e||t.atBottom||"SIZE_INCREASED"!==t.notAtBottomBecause||m||(x(c)("scrolling to bottom due to increased size",{},$.DEBUG),f("auto"))}));setTimeout(t,100)}return p(y(A(y(V(e),P(1)),s),O(V(u),o,i,a),B((([[e,t],o,n,r,i])=>{let l=t&&r,s="auto";return l&&(s=((e,t)=>"function"==typeof e?Ze(e(t)):t&&Ze(e))(o,n||i),l=l&&!!s),{totalCount:e,shouldFollow:l,followOutputBehavior:s}})),R((({shouldFollow:e})=>e))),(({totalCount:e,followOutputBehavior:o})=>{m&&(m(),m=null),m=w(t,(()=>{x(c)("following output to ",{totalCount:e},$.DEBUG),f(o),m=null}))})),p(y(A(V(u),e,l),R((([e,,t])=>e&&t)),L((({value:e},[,t])=>({refreshed:e===t,value:t})),{refreshed:!1,value:0}),R((({refreshed:e})=>e)),O(u,e)),(([,e])=>{x(i)&&h(!1!==e)})),p(d,(()=>{h(!1!==x(u))})),p(A(V(u),n),(([e,t])=>{e&&!t.atBottom&&"VIEWPORT_HEIGHT_DECREASING"===t.notAtBottomBecause&&f("auto")})),{followOutput:u,autoscrollToBottom:d}}),d(Ve,$e,Ge,Ye,je,K,te));function Je(e){return e.reduce(((e,t)=>(e.groupIndices.push(e.totalCount),e.totalCount+=t+1,e)),{totalCount:0,groupIndices:[]})}const Qe=D((([{totalCount:e,groupIndices:t,sizes:o},{scrollTop:n,headerHeight:r}])=>{const i=S(),l=S(),s=E(y(i,B(Je)));return T(y(s,B((e=>e.totalCount))),e),T(y(s,B((e=>e.groupIndices))),t),T(y(A(n,o,r),R((([e,t])=>Oe(t))),B((([e,t,o])=>ce(t.groupOffsetTree,Math.max(e-o,0),"v")[0])),z(),B((e=>[e]))),l),{groupCounts:i,topItemsIndexes:l}}),d(Ve,te));function et(e,t){return!(!e||e[0]!==t[0]||e[1]!==t[1])}function tt(e,t){return!(!e||e.startIndex!==t.startIndex||e.endIndex!==t.endIndex)}const ot="top",nt="bottom",rt="none";function it(e,t,o){return"number"==typeof e?o===Ne&&t===ot||o===_e&&t===nt?e:0:o===Ne?t===ot?e.main:e.reverse:t===nt?e.main:e.reverse}function lt(e,t){return"number"==typeof e?e:e[t]||0}const st=D((([{scrollTop:e,viewportHeight:t,deviation:o,headerHeight:n,fixedHeaderHeight:r}])=>{const i=S(),l=C(0),s=C(0),c=C(0);return{listBoundary:i,overscan:c,topListHeight:l,increaseViewportBy:s,visibleRange:H(y(A(V(e),V(t),V(n),V(i,et),V(c),V(l),V(r),V(o),V(s)),B((([e,t,o,[n,r],i,l,s,c,a])=>{const u=e-c,d=l+s,m=Math.max(o-u,0);let f=rt;const h=lt(a,ot),g=lt(a,nt);return n-=c,r+=o+s,(n+=o+s)>e+d-h&&(f=Ne),(r-=c)<e-m+t+g&&(f=_e),f!==rt?[Math.max(u-o-it(i,ot,f)-h,0),u-m-s+t+it(i,nt,f)+g]:null})),R((e=>null!=e)),z(et)),[0,0])}}),d(te),{singleton:!0});const ct={items:[],topItems:[],offsetTop:0,offsetBottom:0,top:0,bottom:0,topListHeight:0,totalCount:0,firstItemIndex:0};function at(e,t,o){if(0===e.length)return[];if(!Oe(t))return e.map((e=>({...e,index:e.index+o,originalIndex:e.index})));const n=e[0].index,r=e[e.length-1].index,i=[],l=Ie(t.groupOffsetTree,n,r);let s,c=0;for(const a of e){let e;(!s||s.end<a.index)&&(s=l.shift(),c=t.groupIndices.indexOf(s.start)),e=a.index===s.start?{type:"group",index:c}:{index:a.index-(c+1)+o,groupIndex:c},i.push({...e,size:a.size,offset:a.offset,originalIndex:a.index,data:a.data})}return i}function ut(e,t,o,n,r,i){const{lastSize:l,lastOffset:s,lastIndex:c}=r;let a=0,u=0;if(e.length>0){a=e[0].offset;const t=e[e.length-1];u=t.offset+t.size}const d=o-c,m=a,f=s+d*l+(d-1)*n-u;return{items:at(e,r,i),topItems:at(t,r,i),topListHeight:t.reduce(((e,t)=>t.size+e),0),offsetTop:a,offsetBottom:f,top:m,bottom:u,totalCount:o,firstItemIndex:i}}function dt(e,t,o,n,r,i){let l=0;if(o.groupIndices.length>0)for(const a of o.groupIndices){if(a-l>=e)break;l++}const s=e+l,c=qe(t,s);return ut(Array.from({length:s}).map(((e,t)=>({index:t+c,size:0,offset:0,data:i[t+c]}))),[],s,r,o,n)}const mt=D((([{sizes:e,totalCount:t,data:o,firstItemIndex:n,gap:r},i,{visibleRange:l,listBoundary:s,topListHeight:c},{scrolledToInitialItem:a,initialTopMostItemIndex:d},{topListHeight:m},f,{didMount:g},{recalcInProgress:p}])=>{const v=C([]),I=C(0),w=S();T(i.topItemsIndexes,v);const b=H(y(A(g,p,V(l,et),V(t),V(e),V(d),a,V(v),V(n),V(r),o),R((([e,t,,o,,,,,,,n])=>{const r=n&&n.length!==o;return e&&!t&&!r})),B((([,,[e,t],o,n,r,i,l,s,c,a])=>{const d=n,{sizeTree:m,offsetTree:f}=d,h=x(I);if(0===o)return{...ct,totalCount:o};if(0===e&&0===t)return 0===h?{...ct,totalCount:o}:dt(h,r,n,s,c,a||[]);if(re(m)){if(h>0)return null;const e=ut(function(e,t,o){if(Oe(t)){const n=Me(e,t);return[{index:ce(t.groupOffsetTree,n)[0],size:0,offset:0},{index:n,size:0,offset:0,data:o&&o[0]}]}return[{index:e,size:0,offset:0,data:o&&o[0]}]}(qe(r,o),d,a),[],o,c,d,s);return e}const g=[];if(l.length>0){const e=l[0],t=l[l.length-1];let o=0;for(const n of Ie(m,e,t)){const r=n.value,i=Math.max(n.start,e),l=Math.min(n.end,t);for(let e=i;e<=l;e++)g.push({index:e,size:r,offset:o,data:a&&a[e]}),o+=r}}if(!i)return ut([],g,o,c,d,s);const p=l.length>0?l[l.length-1]+1:0,v=Be(f,e,t,p);if(0===v.length)return null;const T=o-1;return ut(u([],(o=>{for(const n of v){const r=n.value;let i=r.offset,l=n.start;const s=r.size;if(r.offset<e){l+=Math.floor((e-r.offset+c)/(s+c));const t=l-n.start;i+=t*s+t*c}l<p&&(i+=(p-l)*s,l=p);const u=Math.min(n.end,T);for(let e=l;e<=u&&!(i>=t);e++)o.push({index:e,size:s,offset:i,data:a&&a[e]}),i+=s+c}})),g,o,c,d,s)})),R((e=>null!==e)),z()),ct);T(y(o,R(h),B((e=>null==e?void 0:e.length))),t),T(y(b,B((e=>e.topListHeight))),m),T(m,c),T(y(b,B((e=>[e.top,e.bottom]))),s),T(y(b,B((e=>e.items))),w);return{listState:b,topItemsIndexes:v,endReached:E(y(b,R((({items:e})=>e.length>0)),O(t,o),R((([{items:e},t])=>e[e.length-1].originalIndex===t-1)),B((([,e,t])=>[e-1,t])),z(et),B((([e])=>e)))),startReached:E(y(b,W(200),R((({items:e,topItems:t})=>e.length>0&&e[0].originalIndex===t.length)),B((({items:e})=>e[0].index)),z())),rangeChanged:E(y(b,R((({items:e})=>e.length>0)),B((({items:e})=>{let t=0,o=e.length-1;for(;"group"===e[t].type&&t<o;)t++;for(;"group"===e[o].type&&o>t;)o--;return{startIndex:e[t].index,endIndex:e[o].index}})),z(tt))),itemsRendered:w,initialItemCount:I,...f}}),d(Ve,Qe,st,Ye,Ge,$e,je,Ee),{singleton:!0}),ft=D((([{sizes:e,firstItemIndex:t,data:o,gap:n},{initialTopMostItemIndex:r},{initialItemCount:i,listState:l},{didMount:s}])=>(T(y(s,O(i),R((([,e])=>0!==e)),O(r,e,t,n,o),B((([[,e],t,o,n,r,i=[]])=>dt(e,t,o,n,r,i)))),l),{})),d(Ve,Ye,mt,je),{singleton:!0}),ht=D((([{scrollVelocity:e}])=>{const t=C(!1),o=S(),n=C(!1);return T(y(e,O(n,t,o),R((([e,t])=>!!t)),B((([e,t,o,n])=>{const{exit:r,enter:i}=t;if(o){if(r(e,n))return!1}else if(i(e,n))return!0;return o})),z()),t),p(y(A(t,e,o),O(n)),(([[e,t,o],n])=>e&&n&&n.change&&n.change(t,o))),{isSeeking:t,scrollSeekConfiguration:n,scrollVelocity:e,scrollSeekRangeChanged:o}}),d($e),{singleton:!0}),gt=D((([{topItemsIndexes:e}])=>{const t=C(0);return T(y(t,R((e=>e>0)),B((e=>Array.from({length:e}).map(((e,t)=>t))))),e),{topItemCount:t}}),d(mt)),pt=D((([{footerHeight:e,headerHeight:t,fixedHeaderHeight:o,fixedFooterHeight:n},{listState:r}])=>{const i=S(),l=H(y(A(e,n,t,o,r),B((([e,t,o,n,r])=>e+t+o+n+r.offsetBottom+r.bottom))),0);return T(V(l),i),{totalListHeight:l,totalListHeightChanged:i}}),d(te,mt),{singleton:!0});function vt(e){let t,o=!1;return()=>(o||(o=!0,t=e()),t)}const It=vt((()=>/iP(ad|od|hone)/i.test(navigator.userAgent)&&/WebKit/i.test(navigator.userAgent))),xt=D((([{scrollBy:e,scrollTop:t,deviation:o,scrollingInProgress:n},{isScrolling:r,isAtBottom:i,scrollDirection:l,lastJumpDueToItemResize:s},{listState:c},{beforeUnshiftWith:a,shiftWithOffset:u,sizes:d,gap:m},{log:f},{recalcInProgress:h}])=>{const g=E(y(c,O(s),L((([,e,t,o],[{items:n,totalCount:r,bottom:i,offsetBottom:l},s])=>{const c=i+l;let a=0;if(t===r&&e.length>0&&n.length>0){0===n[0].originalIndex&&0===e[0].originalIndex||(a=c-o,0!==a&&(a+=s))}return[a,n,r,c]}),[0,[],0,0]),R((([e])=>0!==e)),O(t,l,n,i,f,h),R((([,e,t,o,,,n])=>!n&&!o&&0!==e&&t===Ne)),B((([[e],,,,,t])=>(t("Upward scrolling compensation",{amount:e},$.DEBUG),e)))));function I(t){t>0?(v(e,{top:-t,behavior:"auto"}),v(o,0)):(v(o,0),v(e,{top:-t,behavior:"auto"}))}return p(y(g,O(o,r)),(([e,t,n])=>{n&&It()?v(o,t-e):I(-e)})),p(y(A(H(r,!1),o,h),R((([e,t,o])=>!e&&!o&&0!==t)),B((([e,t])=>t)),W(1)),I),T(y(u,B((e=>({top:-e})))),e),p(y(a,O(d,m),B((([e,{lastSize:t,groupIndices:o,sizeTree:n},r])=>{function i(e){return e*(t+r)}if(0===o.length)return i(e);{let t=0;const r=se(n,0);let l=0,s=0;for(;l<e;){l++,t+=r;let n=o.length===s+1?1/0:o[s+1]-o[s]-1;l+n>e&&(t-=r,n=e-l+1),l+=n,t+=i(n),s++}return t}}))),(t=>{v(o,t),requestAnimationFrame((()=>{v(e,{top:t}),requestAnimationFrame((()=>{v(o,0),v(h,!1)}))}))})),{deviation:o}}),d(te,$e,mt,Ve,K,Ee)),Tt=D((([{didMount:e},{scrollTo:t},{listState:o}])=>{const n=C(0);return p(y(e,O(n),R((([,e])=>0!==e)),B((([,e])=>({top:e})))),(e=>{w(y(o,P(1),R((e=>e.items.length>1))),(()=>{requestAnimationFrame((()=>{v(t,e)}))}))})),{initialScrollTop:n}}),d(je,te,mt),{singleton:!0}),wt=D((([{viewportHeight:e},{totalListHeight:t}])=>{const o=C(!1);return{alignToBottom:o,paddingTopAddition:H(y(A(o,e,t),R((([e])=>e)),B((([,e,t])=>Math.max(0,e-t))),W(0),z()),0)}}),d(te,pt),{singleton:!0}),St=D((([{scrollTo:e,scrollContainerState:t}])=>{const o=S(),n=S(),r=S(),i=C(!1),l=C(void 0);return T(y(A(o,n),B((([{viewportHeight:e,scrollTop:t,scrollHeight:o},{offsetTop:n}])=>({scrollTop:Math.max(0,t-n),scrollHeight:o,viewportHeight:e})))),t),T(y(e,O(n),B((([e,{offsetTop:t}])=>({...e,top:e.top+t})))),r),{useWindowScroll:i,customScrollParent:l,windowScrollContainerState:o,windowViewportRect:n,windowScrollTo:r}}),d(te)),Ct=({itemTop:e,itemBottom:t,viewportTop:o,viewportBottom:n,locationParams:{behavior:r,align:i,...l}})=>e<o?{...l,behavior:r,align:null!=i?i:"start"}:t>n?{...l,behavior:r,align:null!=i?i:"end"}:null,Et=D((([{sizes:e,totalCount:t,gap:o},{scrollTop:n,viewportHeight:r,headerHeight:i,fixedHeaderHeight:l,fixedFooterHeight:s,scrollingInProgress:c},{scrollToIndex:a}])=>{const u=S();return T(y(u,O(e,r,t,i,l,s,n),O(o),B((([[e,t,o,n,r,i,l,s],a])=>{const{done:u,behavior:d,align:m,calculateViewLocation:f=Ct,...h}=e,g=We(e,t,n-1),p=Pe(g,t.offsetTree,a)+r+i,v=f({itemTop:p,itemBottom:p+ce(t.sizeTree,g)[1],viewportTop:s+i,viewportBottom:s+o-l,locationParams:{behavior:d,align:m,...h}});return v?u&&w(y(c,R((e=>!1===e)),P(x(c)?1:2)),u):u&&u(),v})),R((e=>null!==e))),a),{scrollIntoView:u}}),d(Ve,te,Ge,mt,K),{singleton:!0}),Ht=D((([{sizes:e,sizeRanges:t},{scrollTop:o},{initialTopMostItemIndex:n},{didMount:r},{useWindowScroll:i,windowScrollContainerState:l,windowViewportRect:s}])=>{const c=S(),a=C(void 0),u=C(null),d=C(null);return T(l,u),T(s,d),p(y(c,O(e,o,i,u,d)),(([e,t,o,n,r,i])=>{const l=de(t.sizeTree).map((({k:e,v:t},o,n)=>{const r=n[o+1];return{startIndex:e,endIndex:r?r.k-1:1/0,size:t}}));n&&null!==r&&null!==i&&(o=r.scrollTop-i.offsetTop),e({ranges:l,scrollTop:o})})),T(y(a,R(h),B(yt)),n),T(y(r,O(a),R((([,e])=>void 0!==e)),z(),B((([,e])=>e.ranges))),t),{getState:c,restoreStateFrom:a}}),d(Ve,te,Ye,je,St));function yt(e){return{offset:e.scrollTop,index:0,align:"start"}}const bt=D((([e,t,o,n,r,i,l,s,c,a])=>({...e,...t,...o,...n,...r,...i,...l,...s,...c,...a})),d(st,ft,je,ht,pt,Tt,wt,St,Et,K)),zt=D((([{totalCount:e,sizeRanges:t,fixedItemSize:o,defaultItemSize:n,trackItemSizes:r,itemSize:i,data:l,firstItemIndex:s,groupIndices:c,statefulTotalCount:a,gap:u,sizes:d},{initialTopMostItemIndex:m,scrolledToInitialItem:f,initialItemFinalLocationReached:h},g,p,v,{listState:I,topItemsIndexes:x,...w},{scrollToIndex:S},C,{topItemCount:E},{groupCounts:H},b])=>(T(w.rangeChanged,b.scrollSeekRangeChanged),T(y(b.windowViewportRect,B((e=>e.visibleHeight))),g.viewportHeight),{totalCount:e,data:l,firstItemIndex:s,sizeRanges:t,initialTopMostItemIndex:m,scrolledToInitialItem:f,initialItemFinalLocationReached:h,topItemsIndexes:x,topItemCount:E,groupCounts:H,fixedItemHeight:o,defaultItemHeight:n,gap:u,...v,statefulTotalCount:a,listState:I,scrollToIndex:S,trackItemSizes:r,itemSize:i,groupIndices:c,...w,...b,...g,sizes:d,...p})),d(Ve,Ye,te,Ht,Xe,mt,Ge,xt,gt,Qe,bt)),Rt="-webkit-sticky",Bt="sticky",kt=vt((()=>{if("undefined"==typeof document)return Bt;const e=document.createElement("div");return e.style.position=Rt,e.style.position===Rt?Rt:Bt}));function Lt(t,o){const n=e.useRef(null),r=e.useCallback((e=>{if(null===e||!e.offsetParent)return;const r=e.getBoundingClientRect(),i=r.width;let l,s;if(o){const e=o.getBoundingClientRect(),t=r.top-e.top;l=e.height-Math.max(0,t),s=t+o.scrollTop}else l=window.innerHeight-Math.max(0,r.top),s=r.top+window.pageYOffset;n.current={offsetTop:s,visibleHeight:l,visibleWidth:i},t(n.current)}),[t,o]),{callbackRef:i,ref:l}=q(r),s=e.useCallback((()=>{r(l.current)}),[r,l]);return e.useEffect((()=>{if(o){o.addEventListener("scroll",s);const e=new ResizeObserver((()=>{requestAnimationFrame(s)}));return e.observe(o),()=>{o.removeEventListener("scroll",s),e.unobserve(o)}}return window.addEventListener("scroll",s),window.addEventListener("resize",s),()=>{window.removeEventListener("scroll",s),window.removeEventListener("resize",s)}}),[s,o]),i}const Pt=e.createContext(void 0),Wt=e.createContext(void 0);function Mt(e){return e}const Ot=D((([e,t])=>({...e,...t})),d(zt,D((()=>{const e=C((e=>`Item ${e}`)),t=C(null),o=C((e=>`Group ${e}`)),n=C({}),r=C(Mt),i=C("div"),l=C(g),s=(e,t=null)=>H(y(n,B((t=>t[e])),z()),t);return{context:t,itemContent:e,groupContent:o,components:n,computeItemKey:r,headerFooterTag:i,scrollerRef:l,FooterComponent:s("Footer"),HeaderComponent:s("Header"),TopItemListComponent:s("TopItemList"),ListComponent:s("List","div"),ItemComponent:s("Item","div"),GroupComponent:s("Group","div"),ScrollerComponent:s("Scroller","div"),EmptyPlaceholder:s("EmptyPlaceholder"),ScrollSeekPlaceholder:s("ScrollSeekPlaceholder")}})))),Ft=({height:t})=>e.createElement("div",{style:{height:t}}),Vt={position:kt(),zIndex:1,overflowAnchor:"none"},At={overflowAnchor:"none"},Dt={...At,display:"inline-block",height:"100%"},Gt=e.memo((function({showTopList:t=!1}){const o=ro("listState"),n=no("sizeRanges"),r=ro("useWindowScroll"),i=ro("customScrollParent"),l=no("windowScrollContainerState"),s=no("scrollContainerState"),c=i||r?l:s,a=ro("itemContent"),u=ro("context"),d=ro("groupContent"),m=ro("trackItemSizes"),f=ro("itemSize"),h=ro("log"),p=no("gap"),v=ro("horizontalDirection"),{callbackRef:I}=Z(n,f,m,t?g:c,h,p,i,v),[x,T]=e.useState(0);io("deviation",(e=>{x!==e&&T(e)}));const w=ro("EmptyPlaceholder"),S=ro("ScrollSeekPlaceholder")||Ft,C=ro("ListComponent"),E=ro("ItemComponent"),H=ro("GroupComponent"),y=ro("computeItemKey"),b=ro("isSeeking"),z=ro("groupIndices").length>0,R=ro("alignToBottom"),B=ro("initialItemFinalLocationReached"),k=t?{}:{boxSizing:"border-box",...v?{whiteSpace:"nowrap",display:"inline-block",height:"100%",paddingLeft:o.offsetTop,paddingRight:o.offsetBottom,marginLeft:0!==x?x:R?"auto":0}:{marginTop:0!==x?x:R?"auto":0,paddingTop:o.offsetTop,paddingBottom:o.offsetBottom},...B?{}:{visibility:"hidden"}};return!t&&0===o.totalCount&&w?e.createElement(w,jt(w,u)):e.createElement(C,{...jt(C,u),ref:I,style:k,"data-testid":t?"virtuoso-top-item-list":"virtuoso-item-list"},(t?o.topItems:o.items).map((t=>{const n=t.originalIndex,r=y(n+o.firstItemIndex,t.data,u);return b?e.createElement(S,{...jt(S,u),key:r,index:t.index,height:t.size,type:t.type||"item",..."group"===t.type?{}:{groupIndex:t.groupIndex}}):"group"===t.type?e.createElement(H,{...jt(H,u),key:r,"data-index":n,"data-known-size":t.size,"data-item-index":t.index,style:Vt},d(t.index,u)):e.createElement(E,{...jt(E,u),...Kt(E,t.data),key:r,"data-index":n,"data-known-size":t.size,"data-item-index":t.index,"data-item-group-index":t.groupIndex,style:v?Dt:At},z?a(t.index,t.groupIndex,t.data,u):a(t.index,t.data,u))})))})),Nt={height:"100%",outline:"none",overflowY:"auto",position:"relative",WebkitOverflowScrolling:"touch"},_t={outline:"none",overflowX:"auto",position:"relative"},Ut=e=>({width:"100%",height:"100%",position:"absolute",top:0,...e?{display:"flex",flexDirection:"column"}:{}}),$t={width:"100%",position:kt(),top:0,zIndex:1};function jt(e,t){if("string"!=typeof e)return{context:t}}function Kt(e,t){return{item:"string"==typeof e?void 0:t}}const qt=e.memo((function(){const t=ro("HeaderComponent"),o=no("headerHeight"),n=ro("headerFooterTag"),r=Y((e=>o(J(e,"height")))),i=ro("context");return t?e.createElement(n,{ref:r},e.createElement(t,jt(t,i))):null})),Yt=e.memo((function(){const t=ro("FooterComponent"),o=no("footerHeight"),n=ro("headerFooterTag"),r=Y((e=>o(J(e,"height")))),i=ro("context");return t?e.createElement(n,{ref:r},e.createElement(t,jt(t,i))):null}));function Zt({usePublisher:t,useEmitter:o,useEmitterValue:n}){return e.memo((function({style:r,children:i,...l}){const s=t("scrollContainerState"),c=n("ScrollerComponent"),a=t("smoothScrollTargetReached"),u=n("scrollerRef"),d=n("context"),m=n("horizontalDirection")||!1,{scrollerRef:f,scrollByCallback:h,scrollToCallback:g}=ee(s,a,c,u,void 0,m);o("scrollTo",g),o("scrollBy",h);const p=m?_t:Nt;return e.createElement(c,{ref:f,style:{...p,...r},"data-testid":"virtuoso-scroller","data-virtuoso-scroller":!0,tabIndex:0,...l,...jt(c,d)},i)}))}function Xt({usePublisher:t,useEmitter:o,useEmitterValue:n}){return e.memo((function({style:r,children:i,...l}){const s=t("windowScrollContainerState"),c=n("ScrollerComponent"),a=t("smoothScrollTargetReached"),u=n("totalListHeight"),d=n("deviation"),m=n("customScrollParent"),f=n("context"),{scrollerRef:h,scrollByCallback:p,scrollToCallback:v}=ee(s,a,c,g,m);return U((()=>(h.current=m||window,()=>{h.current=null})),[h,m]),o("windowScrollTo",v),o("scrollBy",p),e.createElement(c,{style:{position:"relative",...r,...0!==u?{height:u+d}:{}},"data-virtuoso-scroller":!0,...l,...jt(c,f)},i)}))}const Jt=({children:t})=>{const o=e.useContext(Pt),n=no("viewportHeight"),r=no("fixedItemHeight"),i=ro("alignToBottom"),s=ro("horizontalDirection"),c=Y(l(n,(e=>J(e,s?"width":"height"))));return e.useEffect((()=>{o&&(n(o.viewportHeight),r(o.itemHeight))}),[o,n,r]),e.createElement("div",{style:Ut(i),ref:c,"data-viewport-type":"element"},t)},Qt=({children:t})=>{const o=e.useContext(Pt),n=no("windowViewportRect"),r=no("fixedItemHeight"),i=ro("customScrollParent"),l=Lt(n,i),s=ro("alignToBottom");return e.useEffect((()=>{o&&(r(o.itemHeight),n({offsetTop:0,visibleHeight:o.viewportHeight,visibleWidth:100}))}),[o,n,r]),e.createElement("div",{ref:l,style:Ut(s),"data-viewport-type":"window"},t)},eo=({children:t})=>{const o=ro("TopItemListComponent")||"div",n=ro("headerHeight"),r={...$t,marginTop:`${n}px`},i=ro("context");return e.createElement(o,{style:r,...jt(o,i)},t)},to=e.memo((function(t){const o=ro("useWindowScroll"),n=ro("topItemsIndexes").length>0,r=ro("customScrollParent"),i=r||o?so:lo,l=r||o?Qt:Jt;return e.createElement(i,{...t},n&&e.createElement(eo,null,e.createElement(Gt,{showTopList:!0})),e.createElement(l,null,e.createElement(qt,null),e.createElement(Gt,null),e.createElement(Yt,null)))})),{Component:oo,usePublisher:no,useEmitterValue:ro,useEmitter:io}=_(Ot,{required:{},optional:{restoreStateFrom:"restoreStateFrom",context:"context",followOutput:"followOutput",itemContent:"itemContent",groupContent:"groupContent",overscan:"overscan",increaseViewportBy:"increaseViewportBy",totalCount:"totalCount",groupCounts:"groupCounts",topItemCount:"topItemCount",firstItemIndex:"firstItemIndex",initialTopMostItemIndex:"initialTopMostItemIndex",components:"components",atBottomThreshold:"atBottomThreshold",atTopThreshold:"atTopThreshold",computeItemKey:"computeItemKey",defaultItemHeight:"defaultItemHeight",fixedItemHeight:"fixedItemHeight",itemSize:"itemSize",scrollSeekConfiguration:"scrollSeekConfiguration",headerFooterTag:"headerFooterTag",data:"data",initialItemCount:"initialItemCount",initialScrollTop:"initialScrollTop",alignToBottom:"alignToBottom",useWindowScroll:"useWindowScroll",customScrollParent:"customScrollParent",scrollerRef:"scrollerRef",logLevel:"logLevel",horizontalDirection:"horizontalDirection"},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"}},to),lo=Zt({usePublisher:no,useEmitterValue:ro,useEmitter:io}),so=Xt({usePublisher:no,useEmitterValue:ro,useEmitter:io}),co=oo,ao=oo,uo={items:[],offsetBottom:0,offsetTop:0,top:0,bottom:0,itemHeight:0,itemWidth:0},mo={items:[{index:0}],offsetBottom:0,offsetTop:0,top:0,bottom:0,itemHeight:0,itemWidth:0},{round:fo,ceil:ho,floor:go,min:po,max:vo}=Math;function Io(e,t,o){return Array.from({length:t-e+1}).map(((t,n)=>{const r=null===o?null:o[n+e];return{index:n+e,data:r}}))}function xo(e,t){return e&&e.column===t.column&&e.row===t.row}function To(e,t){return e&&e.width===t.width&&e.height===t.height}const wo=D((([{overscan:e,visibleRange:t,listBoundary:o},{scrollTop:n,viewportHeight:r,scrollBy:i,scrollTo:l,smoothScrollTargetReached:s,scrollContainerState:c,footerHeight:a,headerHeight:u},d,m,{propsReady:f,didMount:h},{windowViewportRect:g,useWindowScroll:I,customScrollParent:x,windowScrollContainerState:b,windowScrollTo:L},M])=>{const F=C(0),D=C(0),G=C(uo),N=C({height:0,width:0}),_=C({height:0,width:0}),U=S(),$=S(),j=C(0),K=C(null),q=C({row:0,column:0}),Y=S(),Z=S(),X=C(!1),J=C(0),Q=C(!0),ee=C(!1),te=C(!1);p(y(h,O(J),R((([e,t])=>!!t))),(()=>{v(Q,!1),v(D,0)})),p(y(A(h,Q,_,N,J,ee),R((([e,t,o,n,,r])=>e&&!t&&0!==o.height&&0!==n.height&&!r))),(([,,,,e])=>{v(ee,!0),Ke(1,(()=>{v(U,e)})),w(y(n),(()=>{v(o,[0,0]),v(Q,!0)}))})),T(y(Z,R((e=>null!=e&&e.scrollTop>0)),k(0)),D),p(y(h,O(Z),R((([,e])=>null!=e))),(([,e])=>{e&&(v(N,e.viewport),v(_,null==e?void 0:e.item),v(q,e.gap),e.scrollTop>0&&(v(X,!0),w(y(n,P(1)),(e=>{v(X,!1)})),v(l,{top:e.scrollTop})))})),T(y(N,B((({height:e})=>e))),r),T(y(A(V(N,To),V(_,To),V(q,((e,t)=>e&&e.column===t.column&&e.row===t.row)),V(n)),B((([e,t,o,n])=>({viewport:e,item:t,gap:o,scrollTop:n})))),Y),T(y(A(V(F),t,V(q,xo),V(_,To),V(N,To),V(K),V(D),V(X),V(Q),V(J)),R((([,,,,,,,e])=>!e)),B((([e,[t,o],n,r,i,l,s,,c,a])=>{const{row:u,column:d}=n,{height:m,width:f}=r,{width:h}=i;if(0===s&&(0===e||0===h))return uo;if(0===f){const t=qe(a,e);return function(e){return{...mo,items:e}}(Io(t,0===t?Math.max(s-1,0):t,l))}const g=Eo(h,f,d);let p,v;c?0===t&&0===o&&s>0?(p=0,v=s-1):(p=g*go((t+u)/(m+u)),v=g*ho((o+u)/(m+u))-1,v=po(e-1,vo(v,g-1)),p=po(v,vo(0,p))):(p=0,v=-1);const I=Io(p,v,l),{top:x,bottom:T}=So(i,n,r,I),w=ho(e/g);return{items:I,offsetTop:x,offsetBottom:w*m+(w-1)*u-T,top:x,bottom:T,itemHeight:m,itemWidth:f}}))),G),T(y(K,R((e=>null!==e)),B((e=>e.length))),F),T(y(A(N,_,G,q),R((([e,t,{items:o}])=>o.length>0&&0!==t.height&&0!==e.height)),B((([e,t,{items:o},n])=>{const{top:r,bottom:i}=So(e,n,t,o);return[r,i]})),z(et)),o);const oe=C(!1);T(y(n,O(oe),B((([e,t])=>t||0!==e))),oe);const ne=E(y(V(G),R((({items:e})=>e.length>0)),O(F,oe),R((([{items:e},t,o])=>o&&e[e.length-1].index===t-1)),B((([,e])=>e-1)),z())),re=E(y(V(G),R((({items:e})=>e.length>0&&0===e[0].index)),k(0),z())),ie=E(y(V(G),O(X),R((([{items:e},t])=>e.length>0&&!t)),B((([{items:e}])=>({startIndex:e[0].index,endIndex:e[e.length-1].index}))),z(tt),W(0)));T(ie,m.scrollSeekRangeChanged),T(y(U,O(N,_,F,q),B((([e,t,o,n,r])=>{const i=De(e),{align:l,behavior:s,offset:c}=i;let a=i.index;"LAST"===a&&(a=n-1),a=vo(0,a,po(n-1,a));let u=Co(t,r,o,a);return"end"===l?u=fo(u-t.height+o.height):"center"===l&&(u=fo(u-t.height/2+o.height/2)),c&&(u+=c),{top:u,behavior:s}}))),l);const le=H(y(G,B((e=>e.offsetBottom+e.bottom))),0);return T(y(g,B((e=>({width:e.visibleWidth,height:e.visibleHeight})))),N),{data:K,totalCount:F,viewportDimensions:N,itemDimensions:_,scrollTop:n,scrollHeight:$,overscan:e,scrollBy:i,scrollTo:l,scrollToIndex:U,smoothScrollTargetReached:s,windowViewportRect:g,windowScrollTo:L,useWindowScroll:I,customScrollParent:x,windowScrollContainerState:b,deviation:j,scrollContainerState:c,footerHeight:a,headerHeight:u,initialItemCount:D,gap:q,restoreStateFrom:Z,...m,initialTopMostItemIndex:J,horizontalDirection:te,gridState:G,totalListHeight:le,...d,startReached:re,endReached:ne,rangeChanged:ie,stateChanged:Y,propsReady:f,stateRestoreInProgress:X,...M}}),d(st,te,$e,ht,je,St,K));function So(e,t,o,n){const{height:r}=o;if(void 0===r||0===n.length)return{top:0,bottom:0};return{top:Co(e,t,o,n[0].index),bottom:Co(e,t,o,n[n.length-1].index)+r}}function Co(e,t,o,n){const r=Eo(e.width,o.width,t.column),i=go(n/r),l=i*o.height+vo(0,i-1)*t.row;return l>0?l+t.row:l}function Eo(e,t,o){return vo(1,go((e+o)/(go(t)+o)))}const Ho=D((([e,t])=>({...e,...t})),d(wo,D((()=>{const e=C((e=>`Item ${e}`)),t=C({}),o=C(null),n=C("virtuoso-grid-item"),r=C("virtuoso-grid-list"),i=C(Mt),l=C("div"),s=C(g),c=(e,o=null)=>H(y(t,B((t=>t[e])),z()),o);return{context:o,itemContent:e,components:t,computeItemKey:i,itemClassName:n,listClassName:r,headerFooterTag:l,scrollerRef:s,FooterComponent:c("Footer"),HeaderComponent:c("Header"),ListComponent:c("List","div"),ItemComponent:c("Item","div"),ScrollerComponent:c("Scroller","div"),ScrollSeekPlaceholder:c("ScrollSeekPlaceholder","div")}})))),yo=e.memo((function(){const t=Wo("gridState"),o=Wo("listClassName"),n=Wo("itemClassName"),r=Wo("itemContent"),i=Wo("computeItemKey"),l=Wo("isSeeking"),s=Po("scrollHeight"),c=Wo("ItemComponent"),a=Wo("ListComponent"),u=Wo("ScrollSeekPlaceholder"),d=Wo("context"),m=Po("itemDimensions"),f=Po("gap"),h=Wo("log"),g=Wo("stateRestoreInProgress"),p=Y((e=>{const t=e.parentElement.parentElement.scrollHeight;s(t);const o=e.firstChild;if(o){const{width:e,height:t}=o.getBoundingClientRect();m({width:e,height:t})}f({row:Vo("row-gap",getComputedStyle(e).rowGap,h),column:Vo("column-gap",getComputedStyle(e).columnGap,h)})}));return g?null:e.createElement(a,{ref:p,className:o,...jt(a,d),style:{paddingTop:t.offsetTop,paddingBottom:t.offsetBottom},"data-testid":"virtuoso-item-list"},t.items.map((o=>{const s=i(o.index,o.data,d);return l?e.createElement(u,{key:s,...jt(u,d),index:o.index,height:t.itemHeight,width:t.itemWidth}):e.createElement(c,{...jt(c,d),className:n,"data-index":o.index,key:s},r(o.index,o.data,d))})))})),bo=e.memo((function(){const t=Wo("HeaderComponent"),o=Po("headerHeight"),n=Wo("headerFooterTag"),r=Y((e=>o(J(e,"height")))),i=Wo("context");return t?e.createElement(n,{ref:r},e.createElement(t,jt(t,i))):null})),zo=e.memo((function(){const t=Wo("FooterComponent"),o=Po("footerHeight"),n=Wo("headerFooterTag"),r=Y((e=>o(J(e,"height")))),i=Wo("context");return t?e.createElement(n,{ref:r},e.createElement(t,jt(t,i))):null})),Ro=({children:t})=>{const o=e.useContext(Wt),n=Po("itemDimensions"),r=Po("viewportDimensions"),i=Y((e=>{r(e.getBoundingClientRect())}));return e.useEffect((()=>{o&&(r({height:o.viewportHeight,width:o.viewportWidth}),n({height:o.itemHeight,width:o.itemWidth}))}),[o,r,n]),e.createElement("div",{style:Ut(!1),ref:i},t)},Bo=({children:t})=>{const o=e.useContext(Wt),n=Po("windowViewportRect"),r=Po("itemDimensions"),i=Wo("customScrollParent"),l=Lt(n,i);return e.useEffect((()=>{o&&(r({height:o.itemHeight,width:o.itemWidth}),n({offsetTop:0,visibleHeight:o.viewportHeight,visibleWidth:o.viewportWidth}))}),[o,n,r]),e.createElement("div",{ref:l,style:Ut(!1)},t)},ko=e.memo((function({...t}){const o=Wo("useWindowScroll"),n=Wo("customScrollParent"),r=n||o?Fo:Oo,i=n||o?Bo:Ro;return e.createElement(r,{...t},e.createElement(i,null,e.createElement(bo,null),e.createElement(yo,null),e.createElement(zo,null)))})),{Component:Lo,usePublisher:Po,useEmitterValue:Wo,useEmitter:Mo}=_(Ho,{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"},methods:{scrollTo:"scrollTo",scrollBy:"scrollBy",scrollToIndex:"scrollToIndex"},events:{isScrolling:"isScrolling",endReached:"endReached",startReached:"startReached",rangeChanged:"rangeChanged",atBottomStateChange:"atBottomStateChange",atTopStateChange:"atTopStateChange",stateChanged:"stateChanged"}},ko),Oo=Zt({usePublisher:Po,useEmitterValue:Wo,useEmitter:Mo}),Fo=Xt({usePublisher:Po,useEmitterValue:Wo,useEmitter:Mo});function Vo(e,t,o){return"normal"===t||(null==t?void 0:t.endsWith("px"))||o(`${e} was not resolved to pixel value correctly`,t,$.WARN),"normal"===t?0:parseInt(null!=t?t:"0",10)}const Ao=Lo,Do=D((([e,t])=>({...e,...t})),d(zt,D((()=>{const t=C((t=>e.createElement("td",null,"Item $",t))),o=C(null),n=C(null),r=C(null),i=C({}),l=C(Mt),s=C(g),c=(e,t=null)=>H(y(i,B((t=>t[e])),z()),t);return{context:o,itemContent:t,fixedHeaderContent:n,fixedFooterContent:r,components:i,computeItemKey:l,scrollerRef:s,TableComponent:c("Table","table"),TableHeadComponent:c("TableHead","thead"),TableFooterComponent:c("TableFoot","tfoot"),TableBodyComponent:c("TableBody","tbody"),TableRowComponent:c("TableRow","tr"),ScrollerComponent:c("Scroller","div"),EmptyPlaceholder:c("EmptyPlaceholder"),ScrollSeekPlaceholder:c("ScrollSeekPlaceholder"),FillerRow:c("FillerRow")}})))),Go=({height:t})=>e.createElement("tr",null,e.createElement("td",{style:{height:t}})),No=({height:t})=>e.createElement("tr",null,e.createElement("td",{style:{height:t,padding:0,border:0}})),_o={overflowAnchor:"none"},Uo=e.memo((function(){const t=Zo("listState"),o=Yo("sizeRanges"),n=Zo("useWindowScroll"),r=Zo("customScrollParent"),i=Yo("windowScrollContainerState"),l=Yo("scrollContainerState"),s=r||n?i:l,c=Zo("itemContent"),a=Zo("trackItemSizes"),u=Zo("itemSize"),d=Zo("log"),{callbackRef:m,ref:f}=Z(o,u,a,s,d,void 0,r),[h,g]=e.useState(0);Xo("deviation",(e=>{h!==e&&(f.current.style.marginTop=`${e}px`,g(e))}));const p=Zo("EmptyPlaceholder"),v=Zo("ScrollSeekPlaceholder")||Go,I=Zo("FillerRow")||No,x=Zo("TableBodyComponent"),T=Zo("TableRowComponent"),w=Zo("computeItemKey"),S=Zo("isSeeking"),C=Zo("paddingTopAddition"),E=Zo("firstItemIndex"),H=Zo("statefulTotalCount"),y=Zo("context");if(0===H&&p)return e.createElement(p,jt(p,y));const b=t.offsetTop+C+h,z=t.offsetBottom,R=b>0?e.createElement(I,{height:b,key:"padding-top",context:y}):null,B=z>0?e.createElement(I,{height:z,key:"padding-bottom",context:y}):null,k=t.items.map((t=>{const o=t.originalIndex,n=w(o+E,t.data,y);return S?e.createElement(v,{...jt(v,y),key:n,index:t.index,height:t.size,type:t.type||"item"}):e.createElement(T,{...jt(T,y),...Kt(T,t.data),key:n,"data-index":o,"data-known-size":t.size,"data-item-index":t.index,style:_o},c(t.index,t.data,y))}));return e.createElement(x,{ref:m,"data-testid":"virtuoso-item-list",...jt(x,y)},[R,...k,B])})),$o=({children:t})=>{const o=e.useContext(Pt),n=Yo("viewportHeight"),r=Yo("fixedItemHeight"),i=Y(l(n,(e=>J(e,"height"))));return e.useEffect((()=>{o&&(n(o.viewportHeight),r(o.itemHeight))}),[o,n,r]),e.createElement("div",{style:Ut(!1),ref:i,"data-viewport-type":"element"},t)},jo=({children:t})=>{const o=e.useContext(Pt),n=Yo("windowViewportRect"),r=Yo("fixedItemHeight"),i=Zo("customScrollParent"),l=Lt(n,i);return e.useEffect((()=>{o&&(r(o.itemHeight),n({offsetTop:0,visibleHeight:o.viewportHeight,visibleWidth:100}))}),[o,n,r]),e.createElement("div",{ref:l,style:Ut(!1),"data-viewport-type":"window"},t)},Ko=e.memo((function(t){const o=Zo("useWindowScroll"),n=Zo("customScrollParent"),r=Yo("fixedHeaderHeight"),i=Yo("fixedFooterHeight"),s=Zo("fixedHeaderContent"),c=Zo("fixedFooterContent"),a=Zo("context"),u=Y(l(r,(e=>J(e,"height")))),d=Y(l(i,(e=>J(e,"height")))),m=n||o?Qo:Jo,f=n||o?jo:$o,h=Zo("TableComponent"),g=Zo("TableHeadComponent"),p=Zo("TableFooterComponent"),v=s?e.createElement(g,{key:"TableHead",style:{zIndex:2,position:"sticky",top:0},ref:u,...jt(g,a)},s()):null,I=c?e.createElement(p,{key:"TableFoot",style:{zIndex:1,position:"sticky",bottom:0},ref:d,...jt(p,a)},c()):null;return e.createElement(m,{...t},e.createElement(f,null,e.createElement(h,{style:{borderSpacing:0,overflowAnchor:"none"},...jt(h,a)},[v,e.createElement(Uo,{key:"TableBody"}),I])))})),{Component:qo,usePublisher:Yo,useEmitterValue:Zo,useEmitter:Xo}=_(Do,{required:{},optional:{restoreStateFrom:"restoreStateFrom",context:"context",followOutput:"followOutput",firstItemIndex:"firstItemIndex",itemContent:"itemContent",fixedHeaderContent:"fixedHeaderContent",fixedFooterContent:"fixedFooterContent",overscan:"overscan",increaseViewportBy:"increaseViewportBy",totalCount:"totalCount",topItemCount:"topItemCount",initialTopMostItemIndex:"initialTopMostItemIndex",components:"components",groupCounts:"groupCounts",atBottomThreshold:"atBottomThreshold",atTopThreshold:"atTopThreshold",computeItemKey:"computeItemKey",defaultItemHeight:"defaultItemHeight",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"}},Ko),Jo=Zt({usePublisher:Yo,useEmitterValue:Zo,useEmitter:Xo}),Qo=Xt({usePublisher:Yo,useEmitterValue:Zo,useEmitter:Xo}),en=qo;exports.GroupedVirtuoso=ao,exports.LogLevel=$,exports.TableVirtuoso=en,exports.Virtuoso=co,exports.VirtuosoGrid=Ao,exports.VirtuosoGridMockContext=Wt,exports.VirtuosoMockContext=Pt;
|