const VirtualScroll=(t={})=>{const e=new Map,l=new Map;let i=1;const n=globalThis.Util.newAvg();let o=0,a=0,r=0,s=null,c=null,h=!1;const g=t.itemHeight||null;return{reset:(t,u)=>{if(h=!1,e.clear(),l.clear(),n.clear(),r=0,s=null,c=null,!t?.length)return[];const f=t.length;i=Math.ceil(Math.sqrt(f))||10;const m=window.getComputedStyle(u);o=parseFloat(m.paddingTop)||0,a=parseFloat(m.rowGap)||0;const p=Math.max(10,Math.ceil((u.clientHeight||100)/(g||32)));return t.slice(0,Math.min(3*p,f))},init:(t,o)=>{if(h)return;const a=t.length;let r=g||n.get()||32;a>0&&"object"==typeof t[0]&&null!==t[0]&&t[0]._itemHeight&&(r=t[0]._itemHeight),n.add(r),null===s&&(s=0,c=0);for(let l=0;l{if(0===o.offsetHeight)return;if(null===s){const t=window.getComputedStyle(o);s=parseFloat(t.marginTop)||0,c=parseFloat(t.marginBottom)||0}0!==t||r||(r=s);const h=o.offsetHeight+s+c+a,g=e.get(t);if(h!==g){e.set(t,h),n.add(h);const o=h-(g||0),a=t-t%i;l.has(a)&&l.set(a,l.get(a)+o)}},calc:(t,s)=>{if(!h||!s)return null;const c=s.length,g=Math.max(16,n.get()||32);let u=Math.max(10,Math.ceil((t.clientHeight||100)/g)),f=o+r+a,m=0,p=0,M=0,d=0,H=[];const w=t.scrollTop;let x=0;for(let t=0;t2*c)throw new Error("VirtualScroll infinite loop");if(0===p){const n=l.get(t);if(n&&f+n<=w&&t+i0?a:0)),postHeight:m>0?Math.max(0,m-2*a):0,renderedList:H,listStartIndex:M}}}};globalThis.VirtualScroll=VirtualScroll;