vlist 1.7.5 → 1.7.7
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.github.md +12 -12
- package/README.md +11 -11
- package/dist/builder/materialize.d.ts +1 -1
- package/dist/builder/types.d.ts +9 -0
- package/dist/features/grid/renderer.d.ts +1 -1
- package/dist/features/groups/sticky.d.ts +6 -1
- package/dist/features/masonry/renderer.d.ts +1 -1
- package/dist/features/scrollbar/scrollbar.d.ts +3 -2
- package/dist/index.js +1 -1
- package/dist/internals.js +1 -1
- package/dist/rendering/aria.d.ts +13 -0
- package/dist/rendering/renderer.d.ts +1 -1
- package/dist/size.json +1 -1
- package/dist/vlist.css +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var U4=2,Z4=(J=0)=>({velocity:0,sampleCount:0}),K4=(J,q)=>{let j=performance.now(),Q=J._lt??j,X=J._lp??q,Y=j-Q;if(J._lp=q,J._lt=j,Y===0)return J.sampleCount=Math.min(J.sampleCount+1,5),J;if(Y>100)return J.velocity=0,J.sampleCount=1,J;return J.velocity=Math.abs(q-X)/Y,J.sampleCount=Math.min(J.sampleCount+1,5),J};var K6=(J,q)=>{let j=q;return{getOffset:(Q)=>Q*J,getSize:(Q)=>J,indexAtOffset:(Q)=>{if(j===0||J===0)return 0;return Math.max(0,Math.min(Math.floor(Q/J),j-1))},getTotalSize:()=>j*J,getTotal:()=>j,rebuild:(Q)=>{j=Q},isVariable:()=>!1}},N6=(J,q)=>{let j=q,Q=new Float64Array(0),X=(B)=>{j=B,Q=new Float64Array(B+1),Q[0]=0;for(let Z=0;Z<B;Z++)Q[Z+1]=Q[Z]+J(Z)};X(q);let Y=(B)=>{if(j===0)return 0;if(B<=0)return 0;if(B>=Q[j])return j-1;let Z=0,V=j-1;while(Z<V){let K=Z+V+1>>>1;if(Q[K]<=B)Z=K;else V=K-1}return Z};return{getOffset:(B)=>{if(B<=0)return 0;if(B>=j)return Q[j];return Q[B]},getSize:(B)=>J(B),indexAtOffset:(B)=>Y(B),getTotalSize:()=>Q[j]??0,getTotal:()=>j,rebuild:(B)=>X(B),isVariable:()=>!0}},c0=(J,q)=>{if(typeof J==="number")return K6(J,q);return N6(J,q)},N4=(J,q,j,Q)=>{if(Q===0)return 0;if(!J.isVariable())return Math.ceil(j/J.getSize(0));let X=0,Y=0,B=q;while(B<Q&&Y<j)Y+=J.getSize(B),X++,B++;return Math.max(1,X)};var W4=()=>{let J={},q=(Y,B)=>{if(!J[Y])J[Y]=new Set;return J[Y].add(B),()=>j(Y,B)},j=(Y,B)=>{J[Y]?.delete(B)};return{on:q,off:j,emit:(Y,B)=>{J[Y]?.forEach((Z)=>{try{Z(B)}catch(V){console.error(`[vlist] Error in event handler for "${String(Y)}":`,V)}})},clear:(Y)=>{if(Y)delete J[Y];else for(let B in J)delete J[B]}}};var B4=(J)=>{if(typeof J==="string"){let q=document.querySelector(J);if(!q)throw Error(`[vlist] Container not found: ${J}`);return q}return J},jJ=(J,q)=>{let j=document.createElement("div");if(j.className=J,q)j.style.cssText=q;return j},V4=(J,q,j,Q,X)=>{let Y=Q,B=jJ(q);if(Y)B.classList.add(`${q}--horizontal`);if(X!==!1)B.setAttribute("tabindex","0");let Z=jJ(`${q}-viewport`,Y?"overflow-x:auto;overflow-y:hidden;height:100%;width:100%":"overflow:auto;height:100%;width:100%");Z.setAttribute("tabindex","-1");let V=jJ(`${q}-content`,Y?"position:relative;height:100%":"position:relative;width:100%"),K=jJ(`${q}-items`,Y?"position:relative;height:100%":"position:relative;width:100%");if(K.setAttribute("role","listbox"),j)K.setAttribute("aria-label",j);if(Y)K.setAttribute("aria-orientation","horizontal");let U=jJ(`${q}-live`,"position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0");return U.setAttribute("aria-live","polite"),U.setAttribute("aria-atomic","true"),U.setAttribute("role","status"),V.appendChild(K),Z.appendChild(V),B.appendChild(U),B.appendChild(Z),J.appendChild(B),{root:B,viewport:Z,content:V,items:K,liveRegion:U}};var _4=(J=100)=>{let q=[];return{acquire:()=>{let j=q.pop();if(j)return j;let Q=document.createElement("div");return Q.setAttribute("role","option"),Q},release:(j)=>{if(q.length<J)j.className="",j.textContent="",j.removeAttribute("style"),j.removeAttribute("data-index"),j.removeAttribute("data-id"),q.push(j)},clear:()=>{q.length=0}}};var G4=(J,q,j,Q,X)=>{if(Q===0||q===0){X.start=0,X.end=-1;return}let Y=j.indexAtOffset(J),B=j.indexAtOffset(J+q);if(B<Q-1)B++;X.start=Math.max(0,Y),X.end=Math.min(Q-1,Math.max(0,B))},D4=(J,q,j,Q)=>{Q.start=Math.max(0,J.start-q),Q.end=Math.min(j-1,J.end+q)},M4=(J,q,j,Q,X,Y=0)=>{if(Q===0)return 0;let B=Math.max(0,Math.min(J,Q-1)),Z=q.getOffset(B),V=q.getSize(B),K=q.getTotalSize(),U=Math.max(0,K+Y-j),y;switch(X){case"center":y=Z-(j-V)/2;break;case"end":y=Y>0&&Z+V>=K?U:Z-j+V;break;default:y=Z}return Math.max(0,Math.min(y,U))};var VJ={top:0,right:0,bottom:0,left:0},f0=(J)=>{if(J==null)return VJ;if(typeof J==="number")return J===0?VJ:{top:J,right:J,bottom:J,left:J};if(J.length===2){let[Y,B]=J;return Y===0&&B===0?VJ:{top:Y,right:B,bottom:Y,left:B}}let[q,j,Q,X]=J;return q===0&&j===0&&Q===0&&X===0?VJ:{top:q,right:j,bottom:Q,left:X}},s0=(J,q)=>q?J.left+J.right:J.top+J.bottom,_J=(J,q)=>q?J.top+J.bottom:J.left+J.right;var a0=(J,q,j)=>{let Q=Array.from(q).sort((B,Z)=>B-Z);if(Q.length<=1)return;let X=[];for(let B=0;B<Q.length;B++){let Z=j(Q[B]);if(Z)X.push(Z)}if(X.length<=1)return;let Y=J.firstChild;for(let B=0;B<X.length;B++){let Z=X[B];if(Z===Y)Y=Y.nextSibling;else J.insertBefore(Z,Y)}};var O4=(J,q)=>{let{dom:j,emitter:Q,resolvedConfig:X,rawConfig:Y,rendered:B,pool:Z,sharedState:V,isHorizontal:K,classPrefix:U,contentSizeHandlers:y,idleHandlers:G,afterScroll:M,clickHandlers:v,contextMenuHandlers:I,keydownHandlers:E,resizeHandlers:k,destroyHandlers:A,methods:T,onScrollFrame:z,resizeObserver:H,renderRange:P,afterRenderBatch:x}=q;return{get dom(){return j},get sizeCache(){return J.hc},get emitter(){return Q},get config(){return X},get rawConfig(){return Y},adjustScrollPosition(R){if(J.mp===0)return R;let c=K?J.cw:J.ch,s=J.hc.getTotalSize(),p=Math.max(0,s-c),w=Math.max(0,s+J.mp-c);if(R>=p)return w;return Math.min(R,w)},get renderer(){return{render:(R,c,s,p,w)=>{J.ss=s,J.fi=p,J.ffn()},updateItemClasses:(R,c,s)=>{J.uic(R,c,s)},updatePositions:()=>{},updateItem:()=>{},getElement:(R)=>B.get(R)??null,clear:()=>{},destroy:()=>{}}},set renderer(R){},get dataManager(){return J.dm},set dataManager(R){J.dm=R},get scrollController(){return J.sc},set scrollController(R){J.sc=R},state:V,getContainerWidth(){return J.cw},afterScroll:M,idleHandlers:G,afterRenderBatch:x,clickHandlers:v,contextMenuHandlers:I,keydownHandlers:E,resizeHandlers:k,contentSizeHandlers:y,destroyHandlers:A,methods:T,replaceTemplate(R){J.at=R},replaceRenderer(R){},replaceDataManager(R){J.dm=R},replaceScrollController(R){J.sc=R},getItemsForRange(R){let{dm:c,it:s}=J,p=[];for(let w=R.start;w<=R.end;w++){let f=c?c.getItem(w):s[w];if(f)p.push(f)}return p},getAllLoadedItems(){let R=J.dm;if(R){let c=R.getTotal(),s=[];for(let p=0;p<c;p++){let w=R.getItem(p);if(w)s.push(w)}return s}return[...J.it]},getVirtualTotal(){return J.vtf()},getCachedCompression(){let R=J.hc;return{isCompressed:!1,actualSize:R.getTotalSize(),virtualSize:R.getTotalSize(),ratio:1}},getCompressionContext(){return{scrollPosition:J.ls,totalItems:J.vtf(),containerSize:J.ch,rangeStart:P.start,compression:V.cachedCompression?.state}},renderIfNeeded(){J.rfn()},forceRender(){J.ffn()},invalidateRendered(){for(let[,R]of B)R.remove(),Z.release(R);B.clear()},getRenderFns(){return{renderIfNeeded:J.rfn,forceRender:J.ffn}},setRenderFns(R,c){J.rfn=R,J.ffn=c},setVirtualTotalFn(R){J.vtf=R},rebuildSizeCache(R){J.hc.rebuild(R??J.vtf())},setSizeConfig(R){if(J.hc=c0(R,J.vtf()),J.gp>0){let c=J.hc.getTotalSize,s=J.gp;J.hc.getTotalSize=()=>{let p=c();return p>0?p-s:0}}},updateContentSize(R){let c=`${R+J.mp}px`;if(K)j.content.style.width=c;else j.content.style.height=c},updateCompressionMode(){for(let R=0;R<y.length;R++)y[R]()},setVisibleRangeFn(R){J.gvr=R},getVisibleRange(R,c,s,p){J.gvr(R,c,J.hc,s,p)},setScrollToPosFn(R){J.gsp=R},getScrollToPos(R,c,s,p){return J.gsp(R,J.hc,c,s,p)},setPositionElementFn(R){J.pef=R},setScrollFns(R,c){J.sgt=R,J.sst=(s)=>{c(s),z()}},setScrollTarget(R){J.st.removeEventListener("scroll",z),J.st=R,J.st.addEventListener("scroll",z,{passive:!0})},getScrollTarget(){return J.st},setContainerDimensions(R){J.gcw=R.width,J.gch=R.height,J.cw=R.width(),J.ch=R.height(),V.viewportState.containerSize=K?J.cw:J.ch},disableViewportResize(){if(J.vre)J.vre=!1,H.unobserve(j.viewport)},disableWheelHandler(){if(J.wh)j.viewport.removeEventListener("wheel",J.wh),J.wh=null},getStripeIndexFn(){return J.sif},setStripeIndexFn(R){J.sif=R},getItemToScrollIndexFn(){return J.i2s},setItemToScrollIndexFn(R){J.i2s=R},setUpdateItemClassesFn(R){J.uic=R}}},A4=(J,q,j)=>{let{rendered:Q,itemState:X,applyTemplate:Y,updateContentSize:B}=q,Z=()=>{J.hc.rebuild(J.vtf()),B(),j.updateCompressionMode(),J.ffn()},V=()=>J.it.length;return{getState:()=>({total:V(),cached:V(),isLoading:!1,pendingRanges:[],error:void 0,hasMore:!1,cursor:void 0}),getTotal:V,getCached:V,getIsLoading:()=>!1,getHasMore:()=>!1,getStorage:()=>null,getPlaceholders:()=>null,getItem:(K)=>J.it[K],isItemLoaded:(K)=>K>=0&&K<V()&&J.it[K]!==void 0,getItemsInRange:(K,U)=>{let y=[];for(let G=Math.max(0,K),M=Math.min(U,V()-1);G<=M;G++)y.push(J.it[G]);return y},setTotal:()=>{},setItems:(K,U=0,y)=>{if(U===0&&(y!==void 0||V()===0))J.it=K;else{let G=U+K.length;if(V()<G)J.it.length=G;for(let M=0;M<K.length;M++)J.it[U+M]=K[M]}if(J.ii)Z()},updateItem:(K,U)=>{let y=J.it;if(K<0||K>=y.length)return!1;let G=y[K];if(!G)return!1;y[K]={...G,...U};let M=Q.get(K);if(M)Y(M,J.at(y[K],K,X)),M.dataset.id=String(y[K].id);return!0},removeItem:(K)=>{let U=typeof K==="number"?K:J.it.findIndex((y)=>y.id===K);if(U<0||U>=J.it.length)return!1;if(J.it.splice(U,1),J.ii)Z();return!0},loadRange:async()=>{},ensureRange:async()=>{},loadInitial:async()=>{},loadMore:async()=>!1,reload:async()=>{},evictDistant:()=>{},clear:()=>{J.it=[]},reset:()=>{if(J.it=[],J.ii)J.hc.rebuild(0),B(),J.ffn()}}},E4=(J,q)=>{let{dom:j,classPrefix:Q}=q;return{getScrollTop:()=>J.sgt(),scrollTo:(X)=>{J.sst(X),J.ls=X,J.rfn()},scrollBy:(X)=>{let Y=J.sgt()+X;J.sst(Y),J.ls=Y,J.rfn()},isAtTop:()=>J.ls<=2,isAtBottom:(X=2)=>J.sab(X),getScrollPercentage:()=>{let X=J.hc.getTotalSize(),Y=Math.max(0,X-J.ch);return Y>0?J.ls/Y:0},getVelocity:()=>J.vt.velocity,isTracking:()=>J.vt.sampleCount>=2,isScrolling:()=>j.root.classList.contains(`${Q}--scrolling`),updateConfig:()=>{},enableCompression:()=>{J.sic=!0},disableCompression:()=>{J.sic=!1},isCompressed:()=>J.sic,isWindowMode:()=>!1,updateContainerHeight:(X)=>{J.ch=X},destroy:()=>{}}};var YJ=(J,q,j,Q,X=0,Y=0)=>{let B=q.getOffset(J),Z=q.getSize(J),V=B+X,K=V+Z,U=j+Q;if(V<j)return Math.max(0,B);if(K>U)return K+Y-Q;return j},GJ=(J,q,j,Q,X=0,Y=0,B,Z,V)=>{if(!(B!=null&&B.isCompressed&&B.ratio!==1))return YJ(J,q,j,Q,X,Y);let U=Z,{virtualSize:y}=B,G=q.getSize(Math.max(0,J)),M=Q-X-Y,v=Math.max(1,Math.floor(M/G)),I=y/U;if(V){if(J>=V.start+v){let A=M/G,T=J+1-A;return Math.max(0,T*I)}if(J<=V.start)return Math.max(0,J*I);return j}let E=j/y*U,k=E+v;if(J>=k){let A=M/G,T=J+1-A;return Math.max(0,T*I)}if(J<E)return Math.max(0,J*I);return j};var L4=(J,q,j,Q,X,Y,B,Z,V,K,U,y,G,M)=>{let v=`${j}-item--focused`,I=!1,E=null,k=null,A=null,T=null,z=!1,H=()=>{if(z)return;z=!0,E=V.get("_getNavTotal")??null,k=V.get("_getNavDelta")??null,A=V.get("_navigate")??null,T=V.get("_scrollItemIntoView")??null},P=()=>{return H(),E?E():J.vtf()},x=()=>{return H(),k?k():{ud:1,lr:0,cols:0}};V.set("_getFocusedIndex",()=>I?J.fi:-1);let R=(g,$=!0)=>{if(q.root.setAttribute("aria-activedescendant",`${Q}-item-${g}`),H(),$)if(T)T(g);else{let L=X?J.cw:J.ch,D=J.i2s(g),u=YJ(D,J.hc,J.ls,L,Y,B);if(u!==J.ls)J.sst(u),J.ls=J.sgt()}J.ffn()},c=(g)=>{J.fi=g,I=!0,R(g)},s=(g,$)=>{if(J.fi=g,$||M)I=!0;let L=J.dm?J.dm.getItem(g):J.it[g];if(L&&J.ss.has(L.id))J.ss.clear();else if(J.ss.clear(),L)J.ss.add(L.id);R(g,$)},p=(g,$,L)=>{let D=g;while(D>=0&&D<L){let u=J.dm?J.dm.getItem(D):J.it[D];if(!u||!u.__groupHeader)return D;D+=$}D=g-$;while(D>=0&&D<L){let u=J.dm?J.dm.getItem(D):J.it[D];if(!u||!u.__groupHeader)return D;D-=$}return g},w=()=>{if(J.id)return;if(!q.root.matches(":focus-visible"))return;let g=P();if(g===0)return;let $=J.fi>=0?Math.min(J.fi,g-1):0;$=p($,1,g),c($)};q.root.addEventListener("focusin",w);let f=(g)=>{if(J.id)return;let $=g.relatedTarget;if($&&q.root.contains($))return;if(I=!1,J.fi>=0)K.get(J.fi)?.classList.remove(v);q.root.removeAttribute("aria-activedescendant")};q.root.addEventListener("focusout",f),U.push((g)=>{if(J.id)return;let $=P();if($===0)return;let L=J.fi,D=L;if(g.key===" "||g.key==="Enter"){if(L>=0){let u=J.dm?J.dm.getItem(L):J.it[L];if(u&&!u.__groupHeader)s(L,!0)}g.preventDefault();return}if(H(),A)switch(g.key){case"ArrowUp":case"ArrowDown":case"ArrowLeft":case"ArrowRight":case"PageUp":case"PageDown":case"Home":case"End":D=A(L,g.key,$);break;default:return}else{let{ud:u,lr:o}=x();switch(g.key){case"ArrowUp":D=L-u;break;case"ArrowDown":D=L+u;break;case"ArrowLeft":if(!o)return;D=L-o;break;case"ArrowRight":if(!o)return;D=L+o;break;case"PageUp":case"PageDown":{let e=J.hc.getSize(J.i2s(Math.max(0,L))),d=Math.max(u,Math.floor((X?J.cw:J.ch)/e)*u);D=g.key==="PageUp"?L-d:L+d;break}case"Home":D=0;break;case"End":D=$-1;break;default:return}if(D<0)D=Z?$-1:0;else if(D>=$)D=Z?0:$-1}if(g.preventDefault(),D=p(D,D>=L?1:-1,$),D!==L)c(D)}),y.push((g)=>{if(J.id)return;let $=g.target.closest("[data-index]");if(!$)return;let L=parseInt($.dataset.index??"-1",10);if(L<0)return;let D=J.dm?.getItem(L)??J.it[L];if(!D||D.__groupHeader)return;I=!1,q.root.focus({preventScroll:!0}),s(L,!1)}),G.push(()=>{q.root.removeEventListener("focusin",w),q.root.removeEventListener("focusout",f)})};var PJ=200,o0=50;var F4=50,T4=12,H4=2,n0=16000000;var k4="x",$4=20,wJ="_isPlaceholder",u0="__placeholder_";var g0=(J,q,j)=>{if(String(j).startsWith(u0))return!1;let Q=u0+q;if(J.has(Q))return J.delete(Q),J.add(j),!0;return!1},b4=(J)=>({selected:new Set(J??[]),focusedIndex:-1,focusVisible:!1}),i0=(J,q,j)=>{if(j==="none")return J;let Q=new Set(J.selected);if(j==="single"){if(Q.clear(),q.length>0)Q.add(q[0])}else for(let X of q)Q.add(X);return{...J,selected:Q}},yJ=(J,q)=>{let j=new Set(J.selected);for(let Q of q)j.delete(Q);return{...J,selected:j}},t0=(J,q,j)=>{if(j==="none")return J;if(J.selected.has(q))return yJ(J,[q]);else return i0(J,[q],j)},zJ=(J,q,j)=>{if(j!=="multiple")return J;return{...J,selected:new Set(q.map((Q)=>Q.id))}},CJ=(J)=>({...J,selected:new Set}),l0=(J,q)=>{return J.focusedIndex=q,J},DJ=(J,q,j=!1,Q=1)=>{if(q===0)return J;let X=J.focusedIndex-Q;if(X<0)X=j?q-1:0;return J.focusedIndex=X,J},MJ=(J,q,j=!1,Q=1)=>{if(q===0)return J;let X=J.focusedIndex+Q;if(X>=q)X=j?0:q-1;return J.focusedIndex=X,J},R4=(J,q)=>{if(q===0)return J;return J.focusedIndex=0,J},P4=(J,q)=>{if(q===0)return J;return J.focusedIndex=q-1,J},vJ=(J,q,j,Q)=>{if(q===0)return J;let X=Q==="up"?J.focusedIndex-j:J.focusedIndex+j;return X=Math.max(0,Math.min(q-1,X)),J.focusedIndex=X,J};var OJ=(J)=>{return Array.from(J.selected)},AJ=(J,q)=>{let j=[];for(let Q of J.selected){let X=q(Q);if(X)j.push(X)}return j};var EJ=(J,q,j,Q,X)=>{if(X!=="multiple")return J;let Y=Math.min(j,Q),B=Math.max(j,Q),Z=[];for(let V=Y;V<=B;V++){let K=q[V];if(K)Z.push(K.id)}return i0(J,Z,X)};var SJ=(J)=>J<0.5?2*J*J:-1+(4-2*J)*J,m0=(J)=>{let q=typeof J==="object"&&J?J:null;return{align:typeof J==="string"?J:q?.align??"start",behavior:q?.behavior??"auto",duration:q?.duration??300}},e0=(J,q)=>{let j=null,Q=()=>{if(j!==null)cancelAnimationFrame(j),j=null};return{animateScroll:(Y,B,Z)=>{if(Q(),Math.abs(B-Y)<1){J.scrollTo(B);return}let V=performance.now(),K=(U)=>{let y=U-V,G=Math.min(y/Z,1),M=Y+(B-Y)*SJ(G);if(J.scrollTo(M),q(),G<1)j=requestAnimationFrame(K);else j=null};j=requestAnimationFrame(K)},cancelScroll:Q}};var w4=(J,q,j,Q,X,Y,B,Z,V,K,U,y,G,M,v,I,E,k,A)=>{let T=(W)=>{{if(!Array.isArray(W)){console.warn("[vlist] setItems() expects an array, got:",typeof W);return}if(W.length>0&&W[0]&&!("id"in W[0]))console.warn('[vlist] Items must have an "id" property. First item:',W[0]);let _=Math.min(W.length,1e4),b=new Set;for(let F=0;F<_;F++){let O=W[F];if(O&&"id"in O){if(b.has(O.id)){console.warn(`[vlist] Duplicate item ID "${O.id}" at index ${F}. updateItem() and removeItem() will only match the first occurrence.`);break}b.add(O.id)}}}u(),V.dataManager.setItems(W,0,W.length)},z=(W)=>{let _=K&&J.sab(2);if(V.dataManager.setItems(W,J.it.length),_&&J.it.length>0){let b=J.gsp(J.it.length-1,J.hc,J.ch,J.it.length,"end");J.sst(b),J.ls=b,J.rfn()}},H=(W)=>{let _=K?J.sgt():0,b=K?J.hc.getTotalSize():0,F=[...J.it];if(V.dataManager.clear(),V.dataManager.setItems([...W,...F],0),K){let O=J.hc.getTotalSize()-b;if(O>0)J.sst(_+O),J.ls=_+O}},P=null,x=null,R=null,c=!1,s=()=>{if(c)return;c=!0,P=Y.get("_updateRenderedItem")??null,x=Y.get("_getSelectedIds")??null,R=Y.get("_getFocusedIndex")??null},p=(W,_)=>{{let F=J.vtf();if(W<0||W>=F)console.warn(`[vlist] updateItem() index ${W} is out of range (0–${F-1}).`)}if(V.dataManager.updateItem(W,_),s(),!P)return;let b=V.dataManager.getItem(W);if(b){let O=(x?x():J.ss).has(b.id),S=(R?R():J.fi)===W;P(W,b,O,S)}},w=!1,f=(W)=>{let _=typeof document<"u"?document.activeElement:null,b=_&&q.items.contains(_)?parseInt(_.dataset?.index??"-1",10):-1;if(!V.dataManager.removeItem(W))return console.warn(`[vlist] removeItem() could not find item with id "${W}".`),!1;if(j.emit("data:change",{type:"remove",id:W}),V.forceRender(),!w){let O=V.dataManager;if(typeof O.ensureRange==="function")w=!0,queueMicrotask(()=>{w=!1;let S=V.dataManager.getTotal(),{start:i,end:r}=V.state.viewportState.renderRange;if(S>0&&r>=i)O.ensureRange(i,r).catch(()=>{})})}if(b>=0){let O=J.vtf();if(O>0)Q.get(Math.min(b,O-1))?.focus()}return!0},g=(W)=>{return V.dataManager.getItem(W)},$=(W)=>{return V.dataManager.getIndexById?.(W)??-1},L=async(W)=>{if(V.dataManager.reload)await V.dataManager.reload()},D=null,u=()=>{if(D!==null)cancelAnimationFrame(D),D=null},o=(W,_,b,F)=>{if(u(),Math.abs(_-W)<1){J.sst(_),J.ls=_,J.rfn();return}let O=performance.now(),S=(i)=>{let r=i-O,J0=Math.min(r/b,1),Z0=F?F():_,t=W+(Z0-W)*SJ(J0);if(J.sst(t),J.ls=t,J.rfn(),J0<1)D=requestAnimationFrame(S);else D=null};D=requestAnimationFrame(S)},e=(W,_)=>{{let J0=J.vtf();if(J0>0&&(W<0||W>=J0))console.warn(`[vlist] scrollToIndex(${W}) is out of range (0–${J0-1}).`)}let{align:b,behavior:F,duration:O}=m0(_),S=J.vtf(),i=W;if(U&&S>0)i=(i%S+S)%S;let r=J.gsp(i,J.hc,J.ch,S,b);if(F==="smooth"){let J0=i,Z0=b;o(J.sgt(),r,O,()=>J.gsp(J0,J.hc,J.ch,J.vtf(),Z0))}else u(),J.sst(r)},d=()=>J.sgt(),n=(W,_)=>{return j.on(W,_)},C=(W,_)=>{j.off(W,_)},N=()=>{if(J.id)return;if(J.id=!0,V.state.isDestroyed=!0,q.items.removeEventListener("click",y),q.items.removeEventListener("dblclick",G),q.items.removeEventListener("contextmenu",M),q.root.removeEventListener("keydown",v),J.st.removeEventListener("scroll",I),E.disconnect(),k(),J.wh)q.viewport.removeEventListener("wheel",J.wh);A();let W=[];for(let _=0;_<Z.length;_++)try{Z[_]()}catch(b){W.push(b instanceof Error?b:Error(String(b)))}for(let _ of B)if(_.destroy)try{_.destroy()}catch(b){W.push(b instanceof Error?b:Error(String(b)))}u();for(let[,_]of Q)_.remove(),X.release(_);Q.clear(),X.clear(),j.emit("destroy",void 0);for(let _ of W)j.emit("error",{error:_,context:"destroy"});j.clear(),q.root.remove()},m=(W,_)=>Y.has(W)?Y.get(W):_,h={get element(){return q.root},get items(){let W=Y.get("_getItems");return W?W():J.it},get total(){let W=Y.get("_getTotal");return W?W():J.vtf()},setItems:m("setItems",T),appendItems:m("appendItems",z),prependItems:m("prependItems",H),updateItem:m("updateItem",p),removeItem(W){let _=Y.get("removeItem");return _?_(W):f(W)},reload:m("reload",L),getItemAt:g,getIndexById:$,scrollToIndex:m("scrollToIndex",e),cancelScroll:m("cancelScroll",u),getScrollPosition:m("getScrollPosition",d),on:n,off:C,destroy:N};for(let[W,_]of Y){if(W.charCodeAt(0)===95||W==="setItems"||W==="appendItems"||W==="prependItems"||W==="updateItem"||W==="removeItem"||W==="reload"||W==="scrollToIndex"||W==="scrollToItem"||W==="cancelScroll"||W==="getScrollPosition")continue;h[W]=_}return h};var W6=3,B6="vlist",V6=150,_6=16000000,G6=0,fJ=(J)=>{if(!J.container)throw Error("[vlist] Container is required");if(!J.item)throw Error("[vlist] item configuration is required");let q=J.orientation==="horizontal",j=q?"width":"height",Q=q?"estimatedWidth":"estimatedHeight",X=q?J.item.width:J.item.height,Y=q?J.item.estimatedWidth:J.item.estimatedHeight;if(X==null&&Y==null)throw Error(`[vlist] item.${j} or item.${Q} is required${q?" when orientation is 'horizontal'":""}`);if(X!=null){if(typeof X==="number"&&X<=0)throw Error(`[vlist] item.${j} must be a positive number`);if(typeof X!=="number"&&typeof X!=="function")throw Error(`[vlist] item.${j} must be a number or a function (index) => number`)}else if(Y!=null){if(typeof Y!=="number"||Y<=0)throw Error(`[vlist] item.${Q} must be a positive number`)}if(!J.item.template)throw Error("[vlist] item.template is required");if(q&&J.reverse)throw Error("[vlist] horizontal direction cannot be combined with reverse mode");let B=new Map,Z=!1,V={use(K){if(Z)throw Error("[vlist] Cannot call .use() after .build()");return B.set(K.name,K),V},build(){if(Z)throw Error("[vlist] .build() can only be called once");return Z=!0,D6(J,B,q,X,Y??null)}};return V};function D6(J,q,j,Q,X){let{item:Y,items:B,overscan:Z=W6,classPrefix:V=B6,ariaLabel:K,padding:U,reverse:y=!1,scroll:G,accessible:M,interactive:v}=J,I=v??M??!0,E=G,k=E?.wheel??!0,A=E?.wrap??!1,T=y,z=`${V}-${G6++}`,H=q.has("withGrid")||q.has("withMasonry")?0:Y.gap??0,P=Q??X,x=Q==null&&X!=null,R=j?typeof Y.height==="number"?Y.height:void 0:typeof Y.width==="number"?Y.width:void 0,c={overscan:Z,classPrefix:V,reverse:T,wrap:A,horizontal:j,ariaIdPrefix:z,interactive:I},s=Array.from(q.values()).sort((l,Q0)=>(l.priority??50)-(Q0.priority??50)),p=new Set(s.map((l)=>l.name));for(let l of s)if(l.conflicts){for(let Q0 of l.conflicts)if(p.has(Q0))throw Error(`[vlist] ${l.name} and ${Q0} cannot be combined`)}if(T){if(p.has("withGrid"))throw Error("[vlist] withGrid cannot be used with reverse: true")}let w=B4(J.container),f=V4(w,V,K,j,I);if(E?.wheel===!1)if(j)f.viewport.style.overflowX="hidden";else f.viewport.style.overflow="hidden";if(E?.scrollbar==="none")f.viewport.classList.add(`${V}-viewport--no-scrollbar`);if(E?.gutter==="stable")f.viewport.classList.add(`${V}-viewport--gutter-stable`);let g=p.has("withGrid")||p.has("withMasonry");if(j&&R!=null&&E?.scrollbar!=="none"&&!g){f.root.style.height=`${R}px`;let l=f.viewport.style.overflowX;f.viewport.style.overflowX="scroll";let Q0=f.viewport.offsetHeight-f.viewport.clientHeight;if(f.viewport.style.overflowX=l,Q0>0)f.root.style.height=`${R+Q0}px`}let $=f0(U),L=s0($,j);if($.top||$.right||$.bottom||$.left)f.content.style.boxSizing="border-box",f.content.style.padding=`${$.top}px ${$.right}px ${$.bottom}px ${$.left}px`;let D=W4(),u=B||[],o=typeof P==="function"&&(q.has("withGrid")||q.has("withMasonry")),e=H>0?typeof P==="function"?(l)=>P(l)+H:P+H:P,d=x?X+H:e,n=c0(d,o?0:u.length);if(H>0){let l=n.getTotalSize;n.getTotalSize=()=>{let Q0=l();return Q0>0?Q0-H:0}}let C=_4(),N={it:u,hc:n,ch:f.viewport.clientHeight,cw:f.viewport.clientWidth,id:!1,ii:!1,ls:0,vt:Z4(0),ss:new Set,fi:-1,la:"",dm:null,sc:null,vtf:null,sgt:j?()=>f.viewport.scrollLeft:()=>f.viewport.scrollTop,sst:j?(l)=>{f.viewport.scrollLeft=l}:(l)=>{f.viewport.scrollTop=l},sab:(l=2)=>{let Q0=N.hc.getTotalSize();return N.ls+N.ch>=Q0-l},sic:!1,rfn:null,ffn:null,gvr:(l,Q0,Y0,F0,y0)=>{G4(l,Q0,Y0,F0,y0)},gsp:(l,Q0,Y0,F0,y0)=>{return M4(l,Q0,Y0,F0,y0,N.mp)},pef:null,at:Y.template,vre:!0,st:f.viewport,wh:null,gcw:()=>N.cw,gch:()=>N.ch,gp:H,mp:L,sif:(l)=>l,i2s:(l)=>l,uic:(l,Q0,Y0)=>{let F0=S.get(l);if(!F0)return;j0(F0,Q0,Y0)},csi:null};N.vtf=()=>N.dm?N.dm.getTotal():N.it.length;let m=null,h=!1,W={start:0,end:0},_={start:0,end:0},b={start:-1,end:-1},F={viewportState:{scrollPosition:0,containerSize:j?N.cw:N.ch,totalSize:N.hc.getTotalSize(),actualSize:N.hc.getTotalSize(),isCompressed:!1,compressionRatio:1,visibleRange:{start:0,end:0},renderRange:{start:0,end:0}},lastRenderRange:{start:-1,end:-1},isInitialized:!1,isDestroyed:!1,cachedCompression:null},O=()=>({...F.viewportState,totalItems:N.vtf()}),S=new Map,i=()=>{a0(f.items,S.keys(),(l)=>S.get(l))},r=()=>{let l=N.hc.getTotalSize(),Y0=`${(N.sic?l:Math.min(l,_6))+L}px`;if(j)f.content.style.width=Y0;else f.content.style.height=Y0},J0={selected:!1,focused:!1},Z0=`${V}-item`,t=`${V}-item--selected`,q0=`${V}-item--focused`,j0=(l,Q0,Y0)=>{l.classList.toggle(t,Q0),l.classList.toggle(q0,Y0),l.ariaSelected=Q0?"true":"false"},W0=Y.striped,D0=!!W0,M0=W0==="data"||W0==="even"||W0==="odd",A0=`${V}-item--odd`,k0=`${V}-item--placeholder`,K0=`${V}-item--replaced`,O0=`${V}--scrolling`,R0=[],B0=[],G0=[],_0=[],T0=[],H0=[],w0=[],P0=[],a=[],X0=new Map,U0="__placeholder_",N0={scrollPosition:0,direction:"down"},V0={velocity:0,reliable:!1},E0={range:{start:0,end:0}},b0=null,L0=null,I0=!1,p0=()=>{if(I0)return;I0=!0,b0=X0.get("_getSelectedIds")??null,L0=X0.get("_getFocusedIndex")??null},KJ=(l,Q0,Y0)=>{if(!Q0)console.warn(`[vlist] Template returned falsy value${Y0!==void 0?` for item at index ${Y0}`:""}. The element will render as blank.`);else if(typeof Q0==="string"&&Q0==="")console.warn(`[vlist] Template returned empty string${Y0!==void 0?` for item at index ${Y0}`:""}. The element will render as blank.`);if(typeof Q0==="string")l.innerHTML=Q0;else l.replaceChildren(Q0)},J6=(l,Q0)=>{let Y0=Math.round(N.hc.getOffset(Q0));if(j)l.style.transform=`translateX(${Y0}px)`;else l.style.transform=`translateY(${Y0}px)`};N.pef=J6;let Q6=(l,Q0)=>{let Y0=C.acquire();Y0.className=Z0;let F0=!N.csi||N.csi(l);if(j){if(F0)Y0.style.width=`${N.hc.getSize(l)-H}px`;else Y0.style.width="";if(R!=null)Y0.style.height=`${R}px`}else if(F0)Y0.style.height=`${N.hc.getSize(l)-H}px`;else Y0.style.height="";if(Y0.dataset.index=String(l),Y0.dataset.id=String(Q0.id),Y0.ariaSelected="false",Y0.id=`${z}-item-${l}`,N.la=String(N.vtf()),Y0.setAttribute("aria-setsize",N.la),Y0.setAttribute("aria-posinset",String(l+1)),String(Q0.id).startsWith(U0))Y0.classList.add(k0);if(D0)if(M0){let C0=N.sif(l);if(C0<0)Y0.classList.remove(A0);else Y0.classList.toggle(A0,(C0&1)===1)}else Y0.classList.toggle(A0,(l&1)===1);try{KJ(Y0,N.at(Q0,l,J0),l)}catch(C0){let z0=C0 instanceof Error?C0:Error(String(C0));D.emit("error",{error:z0,context:`tpl(${l},${Q0.id})`,viewport:O()}),Y0.textContent=""}return N.pef(Y0,l),Y0},q6=()=>{if(N.id)return;let l=j?N.cw:N.ch;if(l<=0)return;p0();let Q0=b0?b0():N.ss,Y0=L0?L0():N.fi,F0=N.vtf();if(N.gvr(N.ls,l,N.hc,F0,W),D4(W,Z,F0,_),_.start===b.start&&_.end===b.end){if(N.sic)for(let[$0,v0]of S)N.pef(v0,$0);F.viewportState.scrollPosition=N.ls,F.viewportState.containerSize=l,F.viewportState.visibleRange.start=W.start,F.viewportState.visibleRange.end=W.end,F.viewportState.renderRange.start=_.start,F.viewportState.renderRange.end=_.end;return}let y0=String(F0),C0=y0!==N.la;N.la=y0;for(let[$0,v0]of S)if($0<_.start||$0>_.end)v0.remove(),C.release(v0),S.delete($0);let z0=document.createDocumentFragment(),x0=!1,qJ=P0.length>0?[]:null;for(let $0=_.start;$0<=_.end;$0++){let v0=N.dm?N.dm.getItem($0):N.it[$0];if(v0===void 0)continue;let S0=S.get($0);if(S0){let d0=S0.dataset.id,r0=String(v0.id);if(d0!==r0){let U6=d0?.startsWith(U0),bJ=r0.startsWith(U0);try{KJ(S0,N.at(v0,$0,J0),$0)}catch(RJ){let Z6=RJ instanceof Error?RJ:Error(String(RJ));D.emit("error",{error:Z6,context:`tpl(${$0},${v0.id})`,viewport:O()}),S0.textContent=""}S0.dataset.id=r0;let X4=!N.csi||N.csi($0);if(j)S0.style.width=X4?`${N.hc.getSize($0)-H}px`:"";else S0.style.height=X4?`${N.hc.getSize($0)-H}px`:"";if(bJ)S0.classList.add(k0);else S0.classList.remove(k0);if(U6&&!bJ)S0.classList.add(K0),setTimeout(()=>{S0.classList.remove(K0)},300);if(N.dm&&!bJ)g0(Q0,$0,v0.id)}N.pef(S0,$0);let BJ=Q0.has(v0.id);if(j0(S0,BJ,$0===Y0),C0)S0.setAttribute("aria-setsize",N.la)}else{let d0=Q6($0,v0);if(qJ)qJ.push({index:$0,element:d0});if(N.dm)g0(Q0,$0,v0.id);let r0=Q0.has(v0.id),BJ=$0===Y0;if(r0||BJ)j0(d0,r0,BJ);z0.appendChild(d0),S.set($0,d0),x0=!0}}if(x0)f.items.appendChild(z0);if(qJ&&qJ.length>0)for(let $0=0;$0<P0.length;$0++)P0[$0](qJ);b.start=_.start,b.end=_.end,F.lastRenderRange.start=_.start,F.lastRenderRange.end=_.end,F.viewportState.scrollPosition=N.ls,F.viewportState.visibleRange.start=W.start,F.viewportState.visibleRange.end=W.end,F.viewportState.renderRange.start=_.start,F.viewportState.renderRange.end=_.end,E0.range.start=_.start,E0.range.end=_.end,D.emit("range:change",E0)},j6=()=>{b.start=-1,b.end=-1,N.rfn()};N.rfn=q6,N.ffn=j6;let Y6=()=>{f.root.classList.remove(O0),h=!1,N.vt.velocity=0,N.vt.sampleCount=0,V0.velocity=0,V0.reliable=!1,D.emit("velocity:change",V0),i();for(let l=0;l<B0.length;l++)B0[l]();D.emit("scroll:idle",{scrollPosition:N.ls})},X6=()=>{if(m)clearTimeout(m);m=setTimeout(Y6,E?.idleTimeout??V6)},QJ=()=>{if(N.id)return;let l=N.sgt();if(l===N.ls&&h)return;let Q0=l>=N.ls?"down":"up";if(N.vt=K4(N.vt,l),!f.root.classList.contains(O0))f.root.classList.add(O0);h=!0,N.ls=l,N.rfn(),N0.scrollPosition=l,N0.direction=Q0,D.emit("scroll",N0),V0.velocity=N.vt.velocity,V0.reliable=N.vt.sampleCount>=U4,D.emit("velocity:change",V0);for(let Y0=0;Y0<R0.length;Y0++)R0[Y0](l,Q0);X6()},NJ=null;if(N.st.addEventListener("scroll",QJ,{passive:!0}),k){let l=f.viewport;if(j)NJ=(Q0)=>{if(F.viewportState.isCompressed)return;if(Math.abs(Q0.deltaX)>Math.abs(Q0.deltaY))return;let Y0=N.sgt(),F0=l.scrollWidth-l.clientWidth,y0=Math.max(0,Math.min(Y0+Q0.deltaY,F0));if(Math.abs(y0-Y0)<1)return;Q0.preventDefault(),N.sst(y0),QJ()};else NJ=(Q0)=>{if(F.viewportState.isCompressed)return;let Y0=l.scrollWidth>l.clientWidth;if(Y0&&Math.abs(Q0.deltaX)>Math.abs(Q0.deltaY))return;if(Y0&&Q0.deltaX!==0)Q0.preventDefault(),l.scrollLeft+=Q0.deltaX;let F0=N.sgt(),y0=l.scrollHeight-l.clientHeight,C0=Math.max(0,Math.min(F0+Q0.deltaY,y0));if(Math.abs(C0-F0)<1)return;Q0.preventDefault(),N.sst(C0),QJ()};N.wh=NJ,l.addEventListener("wheel",NJ,{passive:!1})}let HJ=(l)=>{let Q0=l.target.closest("[data-index]");if(!Q0)return null;let Y0=parseInt(Q0.dataset.index??"-1",10);if(Y0<0)return null;let F0=N.dm?.getItem(Y0)??N.it[Y0];if(!F0||F0.__groupHeader)return null;return{item:F0,index:Y0}},eJ=(l)=>{for(let Y0=0;Y0<G0.length;Y0++)G0[Y0](l);let Q0=HJ(l);if(Q0)D.emit("item:click",{item:Q0.item,index:Q0.index,event:l})},J4=(l)=>{let Q0=HJ(l);if(Q0)D.emit("item:dblclick",{item:Q0.item,index:Q0.index,event:l})},Q4=(l)=>{for(let Y0=0;Y0<_0.length;Y0++)_0[Y0](l);let Q0=HJ(l);if(Q0)D.emit("item:contextmenu",{item:Q0.item,index:Q0.index,event:l})},q4=(l)=>{for(let Q0=0;Q0<T0.length;Q0++)T0[Q0](l)};if(f.items.addEventListener("click",eJ),f.items.addEventListener("dblclick",J4),f.items.addEventListener("contextmenu",Q4),f.root.addEventListener("keydown",q4),I){let l=null,Q0=(Y0)=>{if(l)clearTimeout(l);l=setTimeout(()=>{if(l=null,N.id)return;let F0=N.vtf();f.liveRegion.textContent=`Showing items ${Y0.range.start+1} to ${Math.min(Y0.range.end+1,F0)} of ${F0}`},300)};D.on("range:change",Q0),a.push(()=>{if(l)clearTimeout(l);D.off("range:change",Q0)})}let kJ=new ResizeObserver((l)=>{if(N.id)return;for(let Q0 of l){let Y0=Q0.contentRect.height,F0=Q0.contentRect.width,y0=j?F0:Y0,C0=j?N.cw:N.ch;if(N.cw=F0,N.ch=Y0,Math.abs(y0-C0)>1){if(F.viewportState.containerSize=y0,N.ii){let z0=F.cachedCompression;if(z0&&z0.state.isCompressed){let x0=`${z0.state.virtualSize+L}px`;if(j)f.content.style.width=x0;else f.content.style.height=x0}else r();N.rfn(),D.emit("resize",{height:Y0,width:F0})}}if(N.ii)for(let z0=0;z0<H0.length;z0++)H0[z0](F0,Y0)}});if(N.vre)kJ.observe(f.viewport);let $J={dom:f,emitter:D,resolvedConfig:c,rawConfig:J,rendered:S,pool:C,itemState:J0,sharedState:F,renderRange:_,isHorizontal:j,classPrefix:V,contentSizeHandlers:w0,idleHandlers:B0,afterScroll:R0,clickHandlers:G0,contextMenuHandlers:_0,keydownHandlers:T0,resizeHandlers:H0,destroyHandlers:a,methods:X0,onScrollFrame:QJ,resizeObserver:kJ,afterRenderBatch:P0,applyTemplate:KJ,updateContentSize:r},WJ=O4(N,$J);N.dm=A4(N,$J,WJ),N.sc=E4(N,$J),X0.set("_updateRenderedItem",(l,Q0,Y0,F0)=>{let y0=S.get(l);if(!y0)return;let C0={selected:Y0,focused:F0};try{let z0=N.at(Q0,l,C0);KJ(y0,z0,l)}catch(z0){let x0=z0 instanceof Error?z0:Error(String(z0));D.emit("error",{error:x0,context:`tpl(${l},${Q0.id})`,viewport:O()})}y0.dataset.id=String(Q0.id),j0(y0,Y0,F0)});let j4=new WeakSet;X0.set("_setSizeCache",(l)=>{if(N.hc=l,N.gp>0&&!j4.has(l)){j4.add(l);let Q0=N.hc.getTotalSize,Y0=N.gp;N.hc.getTotalSize=()=>{let F0=Q0();return F0>0?F0-Y0:0}}}),X0.set("_setConstrainSize",(l)=>{N.csi=l});let Y4=new Map;for(let l of s)if(l.methods)for(let Q0 of l.methods){let Y0=Y4.get(Q0);if(Y0)throw Error(`[vlist] Method "${Q0}" is registered by both "${Y0}" and "${l.name}"`);Y4.set(Q0,l.name)}for(let l of s)try{l.setup(WJ)}catch(Q0){let Y0=Q0 instanceof Error?Q0:Error(String(Q0));console.error(`[vlist] Feature "${l.name}" setup failed:`,Y0),D.emit("error",{error:Y0,context:l.name,viewport:O()})}if(x&&!q.has("withAutoSize"))console.warn("[vlist] estimatedHeight/estimatedWidth requires .use(withAutoSize()). Items will use the estimated size as a fixed size.");if(I&&!X0.has("_getFocusedIndex")){let l=j?$.left:$.top,Q0=j?$.right:$.bottom;L4(N,f,V,z,j,l,Q0,A,X0,S,T0,G0,a,!!J.focusOnClick)}if(N.ii=!0,WJ.state.isInitialized=!0,r(),N.rfn(),T&&N.it.length>0){let l=N.gsp(N.it.length-1,N.hc,N.ch,N.it.length,"end");N.sst(l),N.ls=l,N.rfn()}return w4(N,f,D,S,C,X0,s,a,WJ,T,A,eJ,J4,Q4,q4,QJ,kJ,()=>{},()=>{if(m)clearTimeout(m)})}var XJ=(J,q,j)=>{let Q=q.getTotalSize(),X=j===!0||Q>n0,Y=Q>n0?n0:Q,B=Q>0?Y/Q:1;return{isCompressed:X,actualSize:Q,virtualSize:Y,ratio:B}},y4=(J,q,j,Q,X,Y)=>{if(Q===0||q===0)return Y.start=0,Y.end=-1,Y;if(!X.isCompressed||X.ratio===1){let G=j.indexAtOffset(J),M=j.indexAtOffset(J+q);if(M<Q-1)M++;return Y.start=Math.max(0,G),Y.end=Math.min(Q-1,Math.max(0,M)),Y}let{virtualSize:B}=X,V=J/B*Q,K=Math.floor(V),U=N4(j,Math.max(0,K),q,Q),y=Math.ceil(V)+U;return Y.start=Math.max(0,K),Y.end=Math.min(Q-1,Math.max(0,y)),Y};var JJ=(J,q,j,Q,X,Y,B)=>{if(!Y.isCompressed||Q===0)return j.getOffset(J);if(Y.ratio===1)return j.getOffset(J)-q;let{virtualSize:Z}=Y,V=q/Z,K=j.getTotalSize(),U=V*K;return j.getOffset(J)-U},z4=(J,q,j,Q,X,Y="start")=>{if(Q===0)return 0;let B;if(X.isCompressed&&X.ratio!==1){B=J/Q*X.virtualSize;let U=q.getSize(J);switch(Y){case"center":B-=(j-U)/2*X.ratio;break;case"end":B-=(j-U)*X.ratio;break}return Math.max(0,B)}B=q.getOffset(J);let Z=q.getSize(J);switch(Y){case"center":B-=(j-Z)/2;break;case"end":B-=j-Z;break}let V=X.virtualSize-j;return Math.max(0,Math.min(B,V))};var M6=(J)=>{if(typeof J!=="object"){let q=J??2;return{top:q,right:q,bottom:q,left:q}}return{top:J.top??2,right:J.right??2,bottom:J.bottom??2,left:J.left??2}},UJ=(J,q,j={},Q="vlist",X=!1)=>{let{autoHide:Y=!0,autoHideDelay:B=1000,minThumbSize:Z=15,showOnHover:V=!0,showOnViewportEnter:K=!0,clickBehavior:U="scroll"}=j,y=U==="page"?"scroll":U,G=M6(j.padding),M=X?G.left:G.top,v=X?G.right:G.bottom,I=X?G.bottom:G.right,E=j.hoverZoneWidth??I+16,k=0,A=0,T=0,z=0,H=!1,P=!1,x=0,R=0,c=0,s=null,p=!1,w=null,f=null,g=0,$=0,L=null,D=null,u=null,o=X?"width":"height",e=X?"translateX":"translateY",d=X?(B0)=>B0.clientX:(B0)=>B0.clientY,n=X?"left":"top",C=document.createElement("div"),N=document.createElement("div"),m=document.createElement("div"),h=()=>{if(C.className=`${Q}-scrollbar`,N.className=`${Q}-scrollbar-thumb`,X)C.classList.add(`${Q}-scrollbar--horizontal`);if(j.padding!==void 0)J.style.setProperty("--vlist-custom-scrollbar-padding-top",`${G.top}px`),J.style.setProperty("--vlist-custom-scrollbar-padding-right",`${G.right}px`),J.style.setProperty("--vlist-custom-scrollbar-padding-bottom",`${G.bottom}px`),J.style.setProperty("--vlist-custom-scrollbar-padding-left",`${G.left}px`);if(j.minThumbSize!==void 0)C.style.setProperty("--vlist-custom-scrollbar-min-thumb-size",`${Z}px`);if(C.appendChild(N),J.appendChild(C),m.className=`${Q}-scrollbar-hover`,X)m.classList.add(`${Q}-scrollbar-hover--horizontal`),m.style.height=`${E}px`;else m.style.width=`${E}px`;J.appendChild(m)},W=()=>{if(s)clearTimeout(s),s=null},_=()=>{if(!Y)return;W(),s=setTimeout(F,B)},b=()=>{if(k<=A)return;if(W(),!p)C.classList.add(`${Q}-scrollbar--visible`),p=!0;if(Y&&!H&&!P)_()},F=()=>{if(H||P)return;C.classList.remove(`${Q}-scrollbar--visible`),p=!1},O=(B0,G0)=>{k=B0,A=G0;let _0=k>A;if(C.style.display=_0?"":"none",!_0){F();return}let T0=Math.max(0,A-M-v),H0=A/k;if(T=Math.max(Z,H0*T0),N.style[o]=`${T}px`,z=T0-T,S(c),!Y)b()},S=(B0)=>{if(c=B0,k<=A||z<=0)return;let G0=k-A,T0=Math.min(1,Math.max(0,B0/G0))*z;N.style.transform=`${e}(${T0}px)`},i=(B0)=>{if(B0.target===N||y!=="jump"||z<=0)return;let G0=k-A,_0=C.getBoundingClientRect(),T0=d(B0)-_0[n],H0=Math.max(0,Math.min(T0-T/2,z));q(H0/z*G0),b()},r=()=>{if(L!==null)clearTimeout(L),L=null;if(D!==null)cancelAnimationFrame(D),D=null;u=null},J0=(B0)=>{let G0=z>0?$/B0*z:0;if(g<G0)return-1;if(g>=G0+T)return 1;return 0},Z0=()=>{let B0=k-A,G0=J0(B0);if(G0===0){r();return}if(G0===-1){if($<=0){r();return}let _0=Math.max(0,$-A);$=_0,q(_0)}else{if($>=B0){r();return}let _0=Math.min(B0,$+A);$=_0,q(_0)}b()},t=(B0)=>{if(u===null){u=B0,D=requestAnimationFrame(t);return}let G0=k-A,_0=B0-u;u=B0;let T0=J0(G0);if(T0===0){r();return}let H0=12*A/1000,w0=Math.min(H0*_0,A);if(T0===-1){if($<=0){r();return}let P0=Math.max(0,$-w0);$=P0,q(P0)}else{if($>=G0){r();return}let P0=Math.min(G0,$+w0);$=P0,q(P0)}W(),D=requestAnimationFrame(t)},q0=()=>{r(),_(),document.removeEventListener("mouseup",q0)},j0=(B0)=>{if(B0.target===N||y!=="scroll")return;B0.preventDefault();let G0=C.getBoundingClientRect();g=d(B0)-G0[n],$=c,Z0(),L=setTimeout(()=>{D=requestAnimationFrame(t)},350),document.addEventListener("mouseup",q0)},W0=(B0)=>{B0.preventDefault(),B0.stopPropagation(),H=!0,x=d(B0),R=c,W(),C.classList.add(`${Q}-scrollbar--dragging`),document.addEventListener("mousemove",D0),document.addEventListener("mouseup",M0)},D0=(B0)=>{if(!H)return;let G0=d(B0)-x,_0=z>0?G0/z:0,T0=k-A,H0=_0*T0,w0=Math.max(0,Math.min(R+H0,T0)),a=w0/T0*z;if(N.style.transform=`${e}(${a}px)`,f=w0,w===null)w=requestAnimationFrame(()=>{if(f!==null)q(f);w=null})},M0=()=>{if(H=!1,w!==null)cancelAnimationFrame(w),w=null;if(f!==null)q(f),f=null;if(C.classList.remove(`${Q}-scrollbar--dragging`),Y&&!P)_();document.removeEventListener("mousemove",D0),document.removeEventListener("mouseup",M0)},A0=()=>{if(K)b()},k0=()=>{if(!H){if(P=!1,Y)_()}},K0=()=>{P=!0,W(),b()},O0=()=>{if(P=!1,!H&&Y)_()},R0=()=>{if(W(),r(),w!==null)cancelAnimationFrame(w),w=null;if(C.removeEventListener("click",i),C.removeEventListener("mousedown",j0),C.removeEventListener("mouseenter",K0),document.removeEventListener("mouseup",q0),C.removeEventListener("mouseleave",O0),N.removeEventListener("mousedown",W0),J.removeEventListener("mouseenter",A0),J.removeEventListener("mouseleave",k0),document.removeEventListener("mousemove",D0),document.removeEventListener("mouseup",M0),m.removeEventListener("click",i),m.removeEventListener("mousedown",j0),V)m.removeEventListener("mouseenter",K0),m.removeEventListener("mouseleave",O0);if(m.parentNode)m.parentNode.removeChild(m);if(J.style.removeProperty("--vlist-custom-scrollbar-padding-top"),J.style.removeProperty("--vlist-custom-scrollbar-padding-right"),J.style.removeProperty("--vlist-custom-scrollbar-padding-bottom"),J.style.removeProperty("--vlist-custom-scrollbar-padding-left"),C.parentNode)C.parentNode.removeChild(C)};if(h(),C.addEventListener("click",i),C.addEventListener("mousedown",j0),C.addEventListener("mouseenter",K0),C.addEventListener("mouseleave",O0),N.addEventListener("mousedown",W0),J.addEventListener("mouseenter",A0),J.addEventListener("mouseleave",k0),m.addEventListener("click",i),m.addEventListener("mousedown",j0),V)m.addEventListener("mouseenter",K0),m.addEventListener("mouseleave",O0);return{show:b,hide:F,updateBounds:O,updatePosition:S,isVisible:()=>p,destroy:R0}};var hJ=(J)=>{let q=null;return{name:"withScrollbar",priority:30,setup(j){let{dom:Q,config:X}=j,{classPrefix:Y,horizontal:B}=X;if(q=UJ(Q.viewport,(V)=>j.scrollController.scrollTo(V),J??{},Y,B),!Q.viewport.classList.contains(`${Y}-viewport--custom-scrollbar`))Q.viewport.classList.add(`${Y}-viewport--custom-scrollbar`);if(J?.gutter)Q.viewport.classList.add(`${Y}-viewport--gutter`);q.updateBounds(j.state.viewportState.totalSize||j.getCachedCompression().virtualSize,j.state.viewportState.containerSize);let Z=q;j.afterScroll.push((V,K)=>{Z.updatePosition(V),Z.show()}),j.resizeHandlers.push((V,K)=>{if(Z)Z.updateBounds(j.state.viewportState.totalSize||j.getCachedCompression().virtualSize,j.state.viewportState.containerSize)}),j.contentSizeHandlers.push(()=>{if(Z)Z.updateBounds(j.state.viewportState.totalSize||j.getCachedCompression().virtualSize,j.state.viewportState.containerSize)}),j.destroyHandlers.push(()=>{if(Z)Z.destroy()})},destroy(){if(q)q.destroy(),q=null}}};var O6=0.65,A6=0.5,C4=1.7,E6=0.95,L6=0.1,F6=5,T6=100,v4=(J,q,j,Q=0)=>{if(J<=0)return 0;let X=q-Q;return Math.max(0,X*(1-j)+Q)},IJ=(J)=>{let q=J?.force??!1,j=null,Q=0,X=!1,Y=0,B=0,Z=null,V=0,K=0,U=null,y=[];return{name:"withScale",priority:20,setup(G){let{dom:M,config:v}=G,{classPrefix:I,horizontal:E}=v,k=f0(G.rawConfig.padding),A=E?k.left+k.right:k.top+k.bottom,T=()=>{let s=G.getVirtualTotal(),p=XJ(s,G.sizeCache,q);if(p.isCompressed&&!X){X=!0,G.scrollController.enableCompression(p);let f=E?M.viewport.scrollLeft:M.viewport.scrollTop;if(E)M.viewport.style.overflowX="hidden";else M.viewport.style.overflow="hidden";if(E)M.viewport.scrollLeft=0;else M.viewport.scrollTop=0;if(f>0)Q=f,B=f;Y=v4(p.virtualSize,G.state.viewportState.containerSize,p.ratio,A),G.updateContentSize(p.virtualSize+Y),G.setScrollFns(()=>Q,(C)=>{if(Q=C,B=C,Z!==null)cancelAnimationFrame(Z),Z=null});let g=()=>{let C=B-Q;if(G.getVirtualTotal()===0){Q=0,B=0,Z=null,G.scrollController.scrollTo(0);return}if(Math.abs(C)<A6){let N=G.getCachedCompression(),m=Math.max(0,N.virtualSize+Y-G.state.viewportState.containerSize);Q=Math.max(0,Math.min(B,m)),B=Q,Z=null}else{Q+=C*O6;let m=G.getCachedCompression().virtualSize+Y-G.state.viewportState.containerSize;Q=Math.max(0,Math.min(Q,m)),Z=requestAnimationFrame(g)}G.scrollController.scrollTo(Q)},$=M.viewport,L=(C)=>{C.preventDefault();let N=G.getCachedCompression(),m=N.virtualSize+Y-G.state.viewportState.containerSize;if(B=Math.max(0,Math.min(B+C.deltaY*N.ratio*C4,m)),Z===null)Z=requestAnimationFrame(g)};$.addEventListener("wheel",L,{passive:!1});let D=()=>{if(U!==null)cancelAnimationFrame(U),U=null},u=(C)=>{if(D(),Z!==null)cancelAnimationFrame(Z),Z=null;let N=C.touches[0];if(!N)return;let m=E?N.clientX:N.clientY;V=m,K=Q,y=[{time:performance.now(),y:m}]},o=(C)=>{C.preventDefault();let N=C.touches[0];if(!N)return;let m=E?N.clientX:N.clientY,h=performance.now();if(y.push({time:h,y:m}),y.length>F6)y.shift();let W=V-m,_=G.getCachedCompression(),b=_.virtualSize+Y-G.state.viewportState.containerSize,F=Math.max(0,Math.min(K+W*_.ratio*C4,b));Q=F,B=F,G.scrollController.scrollTo(F)},e=(C)=>{let N=performance.now(),m=y.filter((b)=>N-b.time<T6),h=0;if(m.length>=2){let b=m[0],F=m[m.length-1],O=F.time-b.time;if(O>0)h=(b.y-F.y)/O}if(y=[],Math.abs(h)<L6)return;let W=h*16,_=()=>{if(W*=E6,Math.abs(W)<0.5){U=null;return}let F=G.getCachedCompression().virtualSize+Y-G.state.viewportState.containerSize,O=Q+W;if(O=Math.max(0,Math.min(O,F)),O<=0&&W<0||O>=F&&W>0){Q=O,B=O,G.scrollController.scrollTo(O),U=null;return}Q=O,B=O,G.scrollController.scrollTo(O),U=requestAnimationFrame(_)};U=requestAnimationFrame(_)};$.addEventListener("touchstart",u,{passive:!0}),$.addEventListener("touchmove",o,{passive:!1}),$.addEventListener("touchend",e,{passive:!0}),$.addEventListener("touchcancel",e,{passive:!0}),G.destroyHandlers.push(()=>{$.removeEventListener("wheel",L),$.removeEventListener("touchstart",u),$.removeEventListener("touchmove",o),$.removeEventListener("touchend",e),$.removeEventListener("touchcancel",e)});let d=M.viewport.querySelector(`.${I}-scrollbar`),n=()=>{if((E?M.viewport.scrollLeft:M.viewport.scrollTop)!==0)if(E)M.viewport.scrollLeft=0;else M.viewport.scrollTop=0};if($.addEventListener("scroll",n,{passive:!0}),G.destroyHandlers.push(()=>{$.removeEventListener("scroll",n)}),!d){if(j=UJ(M.viewport,(N)=>G.scrollController.scrollTo(N),{},I,E),!M.viewport.classList.contains(`${I}-viewport--custom-scrollbar`))M.viewport.classList.add(`${I}-viewport--custom-scrollbar`);j.updateBounds(p.virtualSize,G.state.viewportState.containerSize);let C=j;G.afterScroll.push((N,m)=>{if(C)C.updatePosition(N),C.show()}),G.resizeHandlers.push((N,m)=>{if(C){let h=G.getCachedCompression();C.updateBounds(h.virtualSize,G.state.viewportState.containerSize)}})}}else if(!p.isCompressed&&X){if(X=!1,Z!==null)cancelAnimationFrame(Z),Z=null;if(U!==null)cancelAnimationFrame(U),U=null;if(Q=0,B=0,y=[],G.setScrollFns(E?()=>M.viewport.scrollLeft:()=>M.viewport.scrollTop,E?(f)=>{M.viewport.scrollLeft=f}:(f)=>{M.viewport.scrollTop=f}),E)M.viewport.scrollLeft=0;else M.viewport.scrollTop=0;if(G.scrollController.disableCompression(),E)M.viewport.style.overflowX="auto";else M.viewport.style.overflow="auto";if(j)j.destroy(),j=null;Y=0,G.updateContentSize(p.actualSize)}else if(p.isCompressed)G.scrollController.updateConfig({compression:p}),Y=v4(p.virtualSize,G.state.viewportState.containerSize,p.ratio,A),G.updateContentSize(p.virtualSize+Y);if(j)j.updateBounds(p.virtualSize+Y,G.state.viewportState.containerSize);let w=G.state.viewportState;if(w.isCompressed=p.isCompressed,w.compressionRatio=p.ratio,w.totalSize=p.virtualSize+Y,w.actualSize=p.actualSize,G.state.cachedCompression={state:p,totalItems:s},X){let f=Math.max(0,p.virtualSize+Y-G.state.viewportState.containerSize),g=Q;if(g>f)g=f;else if(g<0)g=0;if(g!==Q){if(Z!==null)cancelAnimationFrame(Z),Z=null;if(U!==null)cancelAnimationFrame(U),U=null;G.scrollController.scrollTo(g)}}for(let f=0;f<G.contentSizeHandlers.length;f++)G.contentSizeHandlers[f]()};G.updateCompressionMode=T;let z=G.getCachedCompression.bind(G);G.getCachedCompression=()=>{if(G.state.cachedCompression)return G.state.cachedCompression.state;return z()},G.setVisibleRangeFn((s,p,w,f,g)=>{H=null,P=null;let $=XJ(f,w,q);y4(s,p,w,f,$,g)}),G.setScrollToPosFn((s,p,w,f,g)=>{let $=XJ(f,p,q);return z4(s,p,w,f,$,g)});let H=null,P=null;G.setPositionElementFn((s,p)=>{let w=G.getVirtualTotal(),f=XJ(w,G.sizeCache,q);if(f.isCompressed){let g=G.scrollController.getScrollTop();if(H===null||p<P)P=p,H=Math.round(JJ(p,g,G.sizeCache,w,G.state.viewportState.containerSize,f));let $=H+G.sizeCache.getOffset(p)-G.sizeCache.getOffset(P),L=G.config.horizontal;s.style.transform=L?`translateX(${$}px)`:`translateY(${$}px)`}else{let g=Math.round(G.sizeCache.getOffset(p)),$=G.config.horizontal;s.style.transform=$?`translateX(${g}px)`:`translateY(${g}px)`}});let x=E?k.left:k.top,R=E?k.right:k.bottom,c=G.getItemToScrollIndexFn();G.methods.set("_scrollItemIntoView",(s)=>{let p=G.getCachedCompression(),w=G.state.viewportState.containerSize,f=G.state.viewportState.scrollPosition,g=G.getVirtualTotal(),{visibleRange:$}=G.state.viewportState,L=c(s),D=GJ(L,G.sizeCache,f,w,x,R,p,g,$);if(D!==f)G.scrollController.scrollTo(D)}),T(),G.destroyHandlers.push(()=>{if(j)j.destroy(),j=null;if(Z!==null)cancelAnimationFrame(Z),Z=null;if(U!==null)cancelAnimationFrame(U),U=null})}}};var S4=(J={})=>{let{chunkSize:q=100,maxCachedItems:j=5000,evictionBuffer:Q=200,onEvict:X}=J,Y=new Map,B=0,Z=0,V=($)=>{let L=Y.get($);if(!L)L={items:Array(q),count:0,lastAccess:Date.now()},Y.set($,L);else L.lastAccess=Date.now();return L},K=($)=>{return Math.floor($/q)},U=($)=>{return $%q},y=()=>B,G=($)=>{B=$},M=($)=>{if($<0||$>=B)return;let L=K($),D=Y.get(L);if(!D)return;return D.items[U($)]},v=($)=>{if($<0||$>=B)return!1;let L=K($),D=Y.get(L);if(!D)return!1;return D.items[U($)]!==void 0},I=($,L)=>{let D=K($),u=V(D),o=U($),e=u.items[o]===void 0;if(u.items[o]=L,e)u.count++,Z++;if($>=B)B=$+1},E=($,L)=>{for(let D=0;D<L.length;D++){let u=L[D];if(u!==void 0)I($+D,u)}},k=($)=>{if($<0||$>=B)return!1;let L=K($),D=Y.get(L),u=U($);if(!(D!==void 0&&D.items[u]!==void 0))return!1;let e=L,d=Array.from(Y.keys()).filter((C)=>C>=e).sort((C,N)=>C-N),n=[];for(let C of d){let N=Y.get(C),m=C*q;for(let h=0;h<q;h++){if(N.items[h]===void 0)continue;let W=m+h;if(W<=$)continue;n.push({oldIndex:W,item:N.items[h]})}}if(D.items[u]=void 0,D.count--,Z--,D.count===0)Y.delete(L);for(let{oldIndex:C}of n){let N=K(C),m=Y.get(N);if(!m)continue;let h=U(C);if(m.items[h]!==void 0){if(m.items[h]=void 0,m.count--,Z--,m.count===0)Y.delete(N)}}for(let{oldIndex:C,item:N}of n){let m=C-1,h=K(m),W=V(h),_=U(m);W.items[_]=N,W.count++,Z++}return B--,!0},A=($,L)=>{let D=[];for(let u=$;u<=L&&u<B;u++)D.push(M(u));return D},T=($,L)=>{for(let D=$;D<=L&&D<B;D++)if(!v(D))return!1;return!0},z=()=>{let $=[],L=null,D=Array.from(Y.keys()).sort((u,o)=>u-o);for(let u of D){let o=Y.get(u);if(!o)continue;let e=u*q;for(let d=0;d<q;d++){let n=e+d;if(n>=B)break;if(o.items[d]!==void 0)if(L===null)L={start:n,end:n};else if(n===L.end+1)L.end=n;else $.push(L),L={start:n,end:n};else if(L!==null)$.push(L),L=null}}if(L!==null)$.push(L);return $},H=($,L)=>{let D=[],u=null;for(let o=$;o<=L&&o<B;o++)if(!v(o))if(u===null)u={start:o,end:o};else u.end=o;else if(u!==null)D.push(u),u=null;if(u!==null)D.push(u);return D},P=($)=>{return Y.has($)},x=($)=>{let L=Y.get($);if(L)L.lastAccess=Date.now()},R=($,L)=>{if($>L||Y.size===0)return;let D=Date.now(),u=K(Math.max(0,$)),o=K(Math.min(B-1,L));for(let e=u;e<=o;e++){let d=Y.get(e);if(d)d.lastAccess=D}},c=($,L)=>{if(Z<=j)return 0;let D=Math.max(0,$-Q),u=Math.min(B-1,L+Q),o=K(D),e=K(u),d=0,n=[];for(let[C,N]of Y)if(C<o||C>e)d+=N.count,n.push(C),Z-=N.count,Y.delete(C);if(d>0&&X)X(d,n);return d},s=()=>{if(Z<=j)return 0;let $=Array.from(Y.entries()).sort(([,u],[,o])=>u.lastAccess-o.lastAccess),L=0,D=[];for(let[u,o]of $){if(Z<=j)break;L+=o.count,Z-=o.count,D.push(u),Y.delete(u)}if(L>0&&X)X(L,D);return L},p=()=>{return{totalItems:B,cachedItems:Z,cachedChunks:Y.size,chunkSize:q,maxCachedItems:j,memoryEfficiency:B>0?1-Z/B:1}},w=()=>Z,f=()=>{Y.clear(),Z=0};return{chunkSize:q,maxCachedItems:j,getTotal:y,setTotal:G,get:M,has:v,set:I,setRange:E,delete:k,getRange:A,isRangeLoaded:T,getLoadedRanges:z,findUnloadedRanges:H,getChunkIndex:K,isChunkLoaded:P,touchChunk:x,touchChunksForRange:R,evictDistant:c,evictToLimit:s,getStats:p,getCachedCount:w,clear:f,reset:()=>{f(),B=0}}},H6=(J)=>{if(J.length===0)return[];let q=[...J].sort((Q,X)=>Q.start-X.start),j=[{...q[0]}];for(let Q=1;Q<q.length;Q++){let X=q[Q],Y=j[j.length-1];if(X.start<=Y.end+1)Y.end=Math.max(Y.end,X.end);else j.push({...X})}return j},f4=(J,q,j)=>{let Q=Math.floor(J.start/j)*j,X=Math.ceil((J.end+1)/j)*j-1,Y={start:Q,end:X};if(q.length===0)return[Y];let B=[],Z=H6(q),V=Y.start;for(let K of Z){if(K.end<V)continue;if(K.start>Y.end)break;if(K.start>V)B.push({start:V,end:Math.min(K.start-1,Y.end)});if(V=K.end+1,V>Y.end)break}if(V<=Y.end)B.push({start:V,end:Y.end});return B};var h4=(J={})=>{let{maskCharacter:q=k4,maxSampleSize:j=$4}=J,Q=[],X=!1,Y=(U)=>{if(X||U.length===0)return;let y=Math.min(U.length,j);for(let G=0;G<y;G++){let M=U[G];if(!M||typeof M!=="object")continue;let v={};for(let[I,E]of Object.entries(M)){if(I.startsWith("_")||I==="id")continue;v[I]=String(E??"").length}if(Object.keys(v).length>0)Q.push(v)}X=!0},B=()=>X,Z=(U)=>{let y={id:`${u0}${U}`,[wJ]:!0,_index:U};if(Q.length===0)return y.label=q.repeat(12),y;let G=Q[U%Q.length];for(let[M,v]of Object.entries(G))y[M]=q.repeat(Math.max(1,v));return y};return{analyzeStructure:Y,hasAnalyzedStructure:B,generate:Z,generateRange:(U,y)=>{let G=[];for(let M=U;M<=y;M++)G.push(Z(M));return G},clear:()=>{Q=[],X=!1}}},LJ=(J)=>{if(!J||typeof J!=="object")return!1;return J[wJ]===!0};var k6=50,I4=(J={})=>{let{adapter:q,initialItems:j,initialTotal:Q,storage:X,placeholder:Y,pageSize:B=k6,onStateChange:Z,onItemsLoaded:V,onItemsEvicted:K}=J,U=S4({...X,onEvict:(t,q0)=>{K?.(t),R()}}),y=null,G=()=>{if(!y)y=h4(Y);return y},M=new Map,v=!1,I,E=!0,k,A,T=[],z=0,H=new Map,P=new Map,x=()=>{for(let t of P.values())t.abort();P.clear(),H.clear()},R=()=>{Z?.(D())},c=()=>{M.clear();let t=U.getLoadedRanges();for(let q0 of t)for(let j0=q0.start;j0<=q0.end;j0++){let W0=U.get(j0);if(W0&&!LJ(W0))M.set(W0.id,j0)}},s=(t,q0)=>{if(!LJ(q0))M.set(q0.id,t)},p=(t)=>{M.delete(t)},w=(t,q0)=>{return`${t}-${q0}`},f=()=>U.getTotal(),g=()=>U.getCachedCount(),$=()=>v,L=()=>E,D=()=>({total:U.getTotal(),cached:U.getCachedCount(),isLoading:v,pendingRanges:T,error:I,hasMore:E,cursor:k}),u=()=>U,o=()=>G(),e=(t)=>{let q0=U.get(t);if(q0!==void 0)return q0;if(t>=0&&t<U.getTotal())return G().generate(t);return},d=(t)=>{let q0=M.get(t);if(q0===void 0)return;return U.get(q0)},n=(t)=>{return M.get(t)??-1},C=(t)=>{let q0=U.get(t);return q0!==void 0&&!LJ(q0)},N=(t,q0)=>{let j0=[],W0=U.getTotal(),D0=0,M0=0;U.touchChunksForRange(t,Math.min(q0,W0-1));for(let A0=t;A0<=q0&&A0<W0;A0++){let k0=U.get(A0);if(k0!==void 0)j0.push(k0),D0++;else j0.push(G().generate(A0)),M0++}return j0},m=(t)=>{U.setTotal(t),E=U.getCachedCount()<t,R()},h=(t,q0=0,j0)=>{if(q&&t.length>0){let W0=G();if(!W0.hasAnalyzedStructure())W0.analyzeStructure(t)}for(let W0=0;W0<t.length;W0++){let D0=t[W0];if(D0!==void 0){let M0=q0+W0;U.set(M0,D0),s(M0,D0)}}if(j0!==void 0)U.setTotal(j0);else if(q0+t.length>U.getTotal())U.setTotal(q0+t.length);if(U.getCachedCount()>=U.getTotal()&&U.getTotal()>0)E=!1;R(),V?.(t,q0,U.getTotal())},W=(t,q0)=>{let j0=U.get(t);if(!j0)return!1;let W0=j0.id,D0={...j0,...q0};if(U.set(t,D0),q0.id!==void 0&&q0.id!==W0)p(W0);return s(t,D0),R(),!0},_=(t)=>{let q0=M.get(t);if(q0===void 0)return!1;if(!U.delete(q0))return!1;return c(),x(),R(),!0},b=async(t,q0)=>{if(!q)return;let j0=w(t,q0);if(H.has(j0))return;let W0=U.getLoadedRanges(),D0=f4({start:t,end:q0},W0,U.chunkSize);if(D0.length===0)return;let M0=U.chunkSize,A0=M0*2;for(let[O0,R0]of P){let B0=O0.indexOf("-"),G0=parseInt(O0.slice(0,B0),10);if(Math.abs(G0-t)>A0)R0.abort(),P.delete(O0),H.delete(O0)}let k0=[];for(let O0 of D0){let R0=Math.floor(O0.start/M0),B0=Math.floor(O0.end/M0);for(let G0=R0;G0<=B0;G0++){let _0=G0*M0,T0=_0+M0-1,H0=w(_0,T0);if(!k0.some((w0)=>w0.start===_0)&&!H.has(H0))k0.push({start:_0,end:T0})}}let K0=[];for(let O0 of D0){let R0=Math.floor(O0.start/M0),B0=Math.floor(O0.end/M0);for(let G0=R0;G0<=B0;G0++){let _0=G0*M0,T0=_0+M0-1,H0=w(_0,T0);if(H.has(H0)){let w0=H.get(H0);if(!K0.includes(w0))K0.push(w0)}}}for(let O0 of k0){let R0=w(O0.start,O0.end),B0=new AbortController;P.set(R0,B0);let G0=(async()=>{T.push(O0),v=!0,I=void 0,R();try{let _0=O0.end-O0.start+1,T0={offset:O0.start,limit:_0,cursor:O0.start===A?k:void 0,signal:B0.signal},H0=await q.read(T0);if(h(H0.items,O0.start,H0.total),H0.cursor)k=H0.cursor,A=O0.start+H0.items.length;let w0=O0.start+H0.items.length;if(w0>=z){if(z=w0,H0.hasMore!==void 0)E=H0.hasMore;else if(H0.total!==void 0)E=w0<H0.total}}catch(_0){if(_0?.name==="AbortError")return;I=_0 instanceof Error?_0:Error(String(_0))}finally{H.delete(R0),P.delete(R0),T=T.filter((_0)=>_0.start!==O0.start||_0.end!==O0.end),v=H.size>0,R()}})();H.set(R0,G0),K0.push(G0)}await Promise.all(K0)},F=async(t,q0)=>{if(U.isRangeLoaded(t,q0))return;await b(t,q0)},O=async()=>{if(!q)return;await b(0,B-1)},S=async()=>{if(!q||v||!E)return!1;let t=U.getCachedCount(),q0=U.getTotal(),j0=t,W0=Math.min(j0+B-1,q0>0?q0-1:j0+B-1);if(j0>=q0&&q0>0)return E=!1,!1;return await b(j0,W0),U.getCachedCount()>t},i=async()=>{if(U.clear(),U.setTotal(0),M.clear(),y)y.clear();x(),T=[],v=!1,k=void 0,A=void 0,E=!0,z=0,I=void 0,R()},r=(t,q0)=>{if(U.evictDistant(t,q0)>0)c()},J0=()=>{U.clear(),M.clear(),k=void 0,A=void 0,I=void 0,T=[],v=!1,R()},Z0=()=>{if(U.reset(),M.clear(),y)y.clear();k=void 0,A=void 0,E=!0,z=0,I=void 0,T=[],v=!1,R()};if(j&&j.length>0)h(j,0,Q??j.length);else if(Q!==void 0)U.setTotal(Q),R();return{getState:D,getTotal:f,getCached:g,getIsLoading:$,getHasMore:L,getStorage:u,getPlaceholders:o,getItem:e,getItemById:d,getIndexById:n,isItemLoaded:C,getItemsInRange:N,setTotal:m,setItems:h,updateItem:W,removeItem:_,loadRange:b,ensureRange:F,loadInitial:O,loadMore:S,reload:i,evictDistant:r,clear:J0,reset:Z0}};var pJ=(J)=>{let{adapter:q,loading:j,storage:Q,total:X,autoLoad:Y=!0}=J,B=j?.cancelThreshold??T4,Z=j?.preloadThreshold??H4,V=j?.preloadAhead??F4;return{name:"withAsync",priority:20,methods:["reload","loadVisibleRange"],setup(K){let{emitter:U}=K,y=K.config.reverse,G=K.methods.get("_getGridLayout"),M=(w)=>{let f=K.methods.get("_getGroupBridge");if(f){let g=f();if(g&&g.groupCount>0){let $=g.layoutToDataIndex(w.start),L=g.layoutToDataIndex(w.end);if($<0){for(let D=w.start+1;D<=w.end;D++)if($=g.layoutToDataIndex(D),$>=0)break}if(L<0){for(let D=w.end-1;D>=w.start;D--)if(L=g.layoutToDataIndex(D),L>=0)break}if($>=0&&L>=0)return{start:$,end:L}}}if(G){let g=G();if(g){let $=K.dataManager.getTotal();return g.getItemRange(w.start,w.end,$)}}return w};K.methods.set("_isAsync",()=>!0);let v=[];K.methods.set("_onItemsLoaded",(w)=>{v.push(w)});let I=I4({adapter:q,...X!==void 0&&{initialTotal:X},pageSize:Q?.chunkSize??o0,...Q&&{storage:{...Q.chunkSize!==void 0&&{chunkSize:Q.chunkSize},...Q.maxCachedItems!==void 0&&{maxCachedItems:Q.maxCachedItems}}},onStateChange:()=>{if(K.state.isInitialized){let w=K.getVirtualTotal();K.sizeCache.rebuild(w),K.updateCompressionMode();let f=K.getCachedCompression();K.state.viewportState.totalSize=f.virtualSize,K.state.viewportState.actualSize=f.actualSize,K.state.viewportState.isCompressed=f.isCompressed,K.state.viewportState.compressionRatio=f.ratio,K.updateContentSize(f.virtualSize),K.renderIfNeeded()}},onItemsLoaded:(w,f,g)=>{if(K.state.isInitialized){for(let $ of v)$(w,f,g);K.forceRender(),U.emit("load:end",{items:w,total:g,offset:f})}}});K.replaceDataManager(I);let E=null,k=null,A=0,T=!1,z=null,H=120,P=(w=!1)=>{if(T=!1,k=null,w)E=null;if(z!==null)clearTimeout(z),z=null},x=()=>{if(!k)return;k=null;let{renderRange:w}=K.state.viewportState;if(w.end<w.start)return;E=null;let f=M(w);K.dataManager.ensureRange(f.start,f.end).catch((g)=>{U.emit("error",{error:g,context:"ensureRange"})})};K.afterScroll.push((w,f)=>{if(K.state.isDestroyed)return;let g=K.scrollController.getVelocity(),L=K.scrollController.isTracking()&&g<=B;if(A>B&&g<=B)T=!0;else if(T&&g>B)P();if(T&&g<0.5)P(!0);if(A=g,(K.scrollController.isAtTop()||K.scrollController.isAtBottom())&&(T||k))P(!0),L=!0;let u=T&&g>0.5;if(L&&!K.dataManager.getIsLoading()&&K.dataManager.getHasMore()){if(y){if(w<PJ)U.emit("load:start",{offset:K.dataManager.getCached(),limit:o0}),K.dataManager.loadMore().catch((d)=>{U.emit("error",{error:d,context:"loadMore"})})}else if(K.state.viewportState.totalSize-w-K.state.viewportState.containerSize<PJ)U.emit("load:start",{offset:K.dataManager.getCached(),limit:o0}),K.dataManager.loadMore().catch((n)=>{U.emit("error",{error:n,context:"loadMore"})})}let{renderRange:o}=K.state.viewportState;if(!E||o.start!==E.start||o.end!==E.end){if(E={start:o.start,end:o.end},L&&!u){if(k=null,z!==null)clearTimeout(z),z=null;let d=M(o),n=d.start,C=d.end,N=G?K.dataManager.getTotal():K.getVirtualTotal();if(g>Z)if(f==="down")C=Math.min(d.end+V,N-1);else n=Math.max(d.start-V,0);K.dataManager.ensureRange(n,C).catch((m)=>{U.emit("error",{error:m,context:"ensureRange"})})}else if(k={start:o.start,end:o.end},u){if(z!==null)clearTimeout(z);z=setTimeout(()=>{z=null,x(),P()},H)}}});let R=200,c=null;K.afterScroll.push((w,f)=>{if(c!==null)clearTimeout(c);c=setTimeout(()=>{c=null,x(),P()},R)}),K.destroyHandlers.push(()=>{if(c!==null)clearTimeout(c),c=null;P()});let s=()=>{if(K.state.isDestroyed)return;E=null;let{renderRange:w}=K.state.viewportState;if(w.end>0){let f=M(w);K.dataManager.ensureRange(f.start,f.end).catch((g)=>{U.emit("error",{error:g,context:"ensureRange"})})}x()};window.addEventListener("online",s),K.destroyHandlers.push(()=>{window.removeEventListener("online",s)}),U.on("load:start",()=>{K.dom.root.setAttribute("aria-busy","true")}),U.on("load:end",()=>{K.dom.root.removeAttribute("aria-busy")}),K.methods.set("loadVisibleRange",async()=>{E=null,k=null,K.forceRender();let{renderRange:w}=K.state.viewportState;if(w.end>0){let f=M(w);U.emit("load:start",{offset:f.start,limit:f.end-f.start+1}),await K.dataManager.ensureRange(f.start,f.end)}}),K.methods.set("reload",async(w)=>{E=null,k=null;let f=w?.snapshot,g=f!=null&&(f.total??0)>0&&f.index>0,$=g||w?.skipInitialLoad===!0;if(K.invalidateRendered(),await K.dataManager.reload(),!g)K.scrollController.scrollTo(0);if(!$){U.emit("load:start",{offset:0,limit:o0}),await K.dataManager.loadInitial(),K.forceRender();let{renderRange:L}=K.state.viewportState;if(L.end>0){let D=M(L);await K.dataManager.ensureRange(D.start,D.end)}}if(g){let L=K.methods.get("restoreScroll");if(L)L(f)}});let p=!1;if(K.methods.set("_cancelAutoLoad",()=>{p=!0}),Y)queueMicrotask(()=>{if(p)return;U.emit("load:start",{offset:0,limit:o0}),K.dataManager.loadInitial().catch((w)=>{U.emit("error",{error:w,context:"loadInitial"})})});else if(X!==void 0)K.dataManager.setTotal(X)}}};var FJ=(J)=>J==null?0:typeof J==="function"?J():J,uJ=(J)=>{let q=null,j=J?.scrollPadding;return{name:"withPage",priority:5,setup(Q){let{dom:X,state:Y,config:B,emitter:Z}=Q;if(X.root.style.overflow="visible",X.root.style.height="auto",B.horizontal)X.viewport.style.overflowX="visible",X.viewport.style.overflowY="visible";else X.viewport.style.overflow="visible";if(X.viewport.classList.remove(`${B.classPrefix}-viewport--custom-scrollbar`),Q.disableViewportResize(),Q.disableWheelHandler(),Q.setScrollTarget(window),Q.setScrollFns(()=>{let y=X.viewport.getBoundingClientRect();return Math.max(0,B.horizontal?-y.left:-y.top)},(y)=>{let G=X.viewport.getBoundingClientRect();if(B.horizontal){let M=G.left+window.scrollX;window.scrollTo({left:M+y,top:window.scrollY,behavior:"instant"})}else{let M=G.top+window.scrollY;window.scrollTo({left:window.scrollX,top:M+y,behavior:"instant"})}}),Q.setContainerDimensions({width:()=>window.innerWidth,height:()=>window.innerHeight}),Y.viewportState.containerSize=window.innerHeight,j){let y=B.horizontal,G=Q.getItemToScrollIndexFn();Q.setScrollToPosFn((M,v,I,E,k)=>{let A=FJ(y?j.left:j.top),T=FJ(y?j.right:j.bottom);if(E===0)return 0;let z=Math.max(0,Math.min(M,E-1)),H=v.getOffset(z),P=v.getSize(z),x=v.getTotalSize(),R=Math.max(0,x-I+T),c;switch(k){case"start":c=H-A;break;case"center":{let s=I-A-T;c=H-A-(s-P)/2;break}case"end":c=H-I+P+T;break}return Math.max(-A,Math.min(c,R))}),Q.methods.set("_scrollItemIntoView",(M)=>{let v=G(M),I=y?window.innerWidth:window.innerHeight,E=FJ(y?j.left:j.top),k=FJ(y?j.right:j.bottom),A=X.viewport.getBoundingClientRect(),T=y?window.scrollX:window.scrollY,z=(y?A.left:A.top)+T,H=z-T,P=Q.sizeCache.getOffset(v),x=Q.sizeCache.getSize(v),R=H+P,c=R+x,s=E,p=I-k,w=T;if(R<s)w=z+P-s;else if(c>p)w=z+P+x-p;if(w!==T)if(y)window.scrollTo({left:w,top:window.scrollY,behavior:"instant"});else window.scrollTo({left:window.scrollX,top:w,behavior:"instant"})})}let{innerHeight:V,innerWidth:K}=window,U=()=>{let{innerWidth:y,innerHeight:G}=window,M=B.horizontal?y:G,v=B.horizontal?K:V;if(Math.abs(M-v)<=1)return;V=G,K=y,Y.viewportState.containerSize=G,Z.emit("resize",{width:y,height:G});for(let I=0;I<Q.resizeHandlers.length;I++)Q.resizeHandlers[I](y,G);Q.renderIfNeeded()};window.addEventListener("resize",U,{passive:!0}),q=()=>{window.removeEventListener("resize",U)},Q.destroyHandlers.push(q)},destroy(){if(q)q(),q=null}}};var gJ=(J,q)=>{let j=0,Q=J.length-1;while(j<Q){let X=j+Q+1>>>1;if(J[X].headerLayoutIndex<=q)j=X;else Q=X-1}return j},p4=(J,q)=>{let j=0,Q=J.length-1;while(j<Q){let X=j+Q+1>>>1;if(J[X].firstDataIndex<=q)j=X;else Q=X-1}return j},u4=(J,q,j)=>{if(J===0)return[];let Q=[],X=q(0,j?.(0)),Y=0,B=0;for(let Z=1;Z<J;Z++){let V=q(Z,j?.(Z));if(V!==X){let K=Z-Y;Q.push({key:X,groupIndex:Q.length,headerLayoutIndex:B,firstDataIndex:Y,count:K}),B=B+1+K,X=V,Y=Z}}return Q.push({key:X,groupIndex:Q.length,headerLayoutIndex:B,firstDataIndex:Y,count:J-Y}),Q},mJ=(J,q)=>{if(J.length===0||q.length===0)return[];let j=J.length+q.length,Q=Array(j),X=0;for(let Y of q){Q[X]={id:`__group_header_${Y.groupIndex}`,__groupHeader:!0,groupKey:Y.key,groupIndex:Y.groupIndex},X++;for(let B=0;B<Y.count;B++)Q[X]=J[Y.firstDataIndex+B],X++}return Q},g4=(J,q,j=!1)=>{let Q=typeof q==="number"?(X)=>q:q;return(X)=>{let Y=J.getEntry(X);if(Y.type==="header"){if(j&&Y.group.groupIndex===0)return 0;return J.getHeaderHeight(Y.group.groupIndex)}return Q(Y.dataIndex)}},m4=(J,q,j)=>{let Q=u4(J,q.getGroupForIndex,j),X=J+Q.length,Y=q.header?.height??q.header?.width??q.headerHeight;return{get totalEntries(){return X},get groupCount(){return Q.length},get groups(){return Q},getEntry:(M)=>{if(Q.length===0)return{type:"item",dataIndex:M,group:{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0}};let v=gJ(Q,M),I=Q[v];if(M===I.headerLayoutIndex)return{type:"header",group:I};let E=M-I.headerLayoutIndex-1;return{type:"item",dataIndex:I.firstDataIndex+E,group:I}},layoutToDataIndex:(M)=>{if(Q.length===0)return M;let v=gJ(Q,M),I=Q[v];if(M===I.headerLayoutIndex)return-1;let E=M-I.headerLayoutIndex-1;return I.firstDataIndex+E},dataToLayoutIndex:(M)=>{if(Q.length===0)return M;let v=p4(Q,M),I=Q[v],E=M-I.firstDataIndex;return I.headerLayoutIndex+1+E},getGroupAtLayoutIndex:(M)=>{if(Q.length===0)return{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0};let v=gJ(Q,M);return Q[v]},getGroupAtDataIndex:(M)=>{if(Q.length===0)return{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0};let v=p4(Q,M);return Q[v]},getHeaderHeight:typeof Y==="number"?(M)=>Y:(M)=>{let v=Q[M];if(!v)return 0;return Y(v.key,M)},rebuild:(M,v)=>{Q=u4(M,q.getGroupForIndex,v??j),X=M+Q.length}}};var xJ=(J,q,j,Q,X,Y=!1,B=0)=>{let Z=Y?"width":"height",V=Y?"height":"width",K=Y?"X":"Y",U=(N,m)=>{N.style[Z]=`${m}px`},y=document.createElement("div");y.className=`${X}-sticky-header`,y.setAttribute("role","presentation"),y.setAttribute("aria-hidden","true"),y.style.cssText="position:relative;z-index:5;pointer-events:none;overflow:hidden;"+(Y?`top:0;bottom:0;left:${B||0}px`:`top:${B||0}px`);let G=()=>{let N=document.createElement("div");return N.className="sticky-group",N.style.position="absolute",N.style.willChange="transform",N.style[V]="100%",N},M=G(),v=G();y.append(M,v),J.insertBefore(y,J.firstChild);let I=M,E=v,k=q.groups,A=[],T=[],z=0,H=()=>{k=q.groups,z=k.length,A=Array(z),T=Array(z);for(let N=0;N<z;N++)A[N]=j.getOffset(k[N].headerLayoutIndex),T[N]=q.getHeaderHeight(N)};H();let P=-1,x=0,R=-1,c=!1,s=0,p=!1,w=(N,m)=>{Q(N,m);let h=T[m];return U(N,h),h},f=(N)=>{N.replaceChildren(),N.style.transform=""},g=(N)=>{if(N===P)return;if(P=N,x=0,N<0||N>=z){f(I);return}x=w(I,N),U(y,x),I.style.transform=""},$=(N)=>{if(N===s)return;s=N;let m=Math.round(N);I.style.transform=`translate${K}(${m}px)`,E.style.transform=`translate${K}(${m+x}px)`},L=()=>{s=0,I.style.transform="",E.style.transform=""},D=()=>{if(!p)return;let N=I;I=E,E=N,P=R,x=P>=0?T[P]:0,U(y,x),f(E),R=-1,p=!1,L()},u=()=>{if(!p)return;f(E),R=-1,p=!1,L()},o=()=>{if(c)return;c=!0,y.style.display=""},e=()=>{if(!c)return;c=!1,y.style.display="none",f(I),P=-1,x=0,u()},d=(N)=>{if(z===0){e();return}if(N<A[0]){e();return}let m=0,h=z-1;while(m<h){let _=m+h+1>>>1;if(A[_]+T[_]<=N)m=_;else h=_-1}if(!c)o();g(m);let W=m+1;if(W<z){let _=A[W]-N;if(_<=0&&_>-x){if(R!==W||!p)R=W,w(E,W),p=!0;$(_)}else if(_<=-x){if(p)D()}else if(p)u()}else if(p)u()},n=()=>{H();let N=P;if(P=-1,x=0,N>=0)g(N)},C=()=>{y.remove(),P=-1,x=0,R=-1,c=!1,p=!1};return y.style.display="none",{update:d,refresh:n,show:o,hide:e,destroy:C}};var h0=(J)=>{return J!==null&&typeof J==="object"&&J.__groupHeader===!0};var TJ=(J,q)=>{let j=0,Q=J.length-1;while(j<Q){let X=j+Q+1>>>1;if(J[X].headerLayoutIndex<=q)j=X;else Q=X-1}return j},x4=(J,q)=>{let j=0,Q=J.length-1;while(j<Q){let X=j+Q+1>>>1;if(J[X].firstDataIndex<=q)j=X;else Q=X-1}return j},d4={key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0},c4=(J,q,j)=>{let Q=[],X=0,Y=0,B=new Map,Z=()=>{if(Q=[],X===0||B.size===0){Y=X;return}let A=null,T=-1,z=0;for(let H=0;H<X;H++){let P=B.get(H);if(P===void 0){if(A!==null&&T>=0){let x=H-T;Q.push({key:A,groupIndex:Q.length,headerLayoutIndex:T+z,firstDataIndex:T,count:x}),z++,A=null,T=-1}continue}if(P!==A){if(A!==null&&T>=0){let x=H-T;Q.push({key:A,groupIndex:Q.length,headerLayoutIndex:T+z,firstDataIndex:T,count:x}),z++}A=P,T=H}}if(A!==null&&T>=0){let H=X-T;Q.push({key:A,groupIndex:Q.length,headerLayoutIndex:T+z,firstDataIndex:T,count:H}),z++}Y=X+z};return{onItemsLoaded:(A,T,z)=>{X=z;for(let H=0;H<A.length;H++){let P=T+H,x=A[H];if(x!==void 0){let R=J.getGroupForIndex(P,x);B.set(P,R)}}Z()},get totalEntries(){return Y},get groupCount(){return Q.length},get groups(){return Q},isHeader:(A)=>{if(Q.length===0)return!1;let T=TJ(Q,A),z=Q[T];return A===z.headerLayoutIndex},getHeaderItem:(A)=>{if(Q.length===0)return;let T=TJ(Q,A),z=Q[T];if(A!==z.headerLayoutIndex)return;return{id:`__group_header_${z.groupIndex}`,__groupHeader:!0,groupKey:z.key,groupIndex:z.groupIndex}},layoutToDataIndex:(A)=>{if(Q.length===0)return A;let T=TJ(Q,A),z=Q[T];if(A===z.headerLayoutIndex)return-1;let H=A-z.headerLayoutIndex-1;return z.firstDataIndex+H},dataToLayoutIndex:(A)=>{if(Q.length===0)return A;let T=x4(Q,A),z=Q[T],H=A-z.firstDataIndex;return z.headerLayoutIndex+1+H},getHeaderHeight:(A)=>J.headerHeight,getGroupAtLayoutIndex:(A)=>{if(Q.length===0)return d4;let T=TJ(Q,A);return Q[T]},getGroupAtDataIndex:(A)=>{if(Q.length===0)return d4;let T=x4(Q,A);return Q[T]},removeAt:(A)=>{let T=new Map;for(let[z,H]of B)if(z<A)T.set(z,H);else if(z>A)T.set(z-1,H);B.clear();for(let[z,H]of T)B.set(z,H);X--,Z()},reset:()=>{Q=[],X=0,Y=0,B.clear()}}};var l4=(J,q,j,Q,X,Y)=>{if(Q===0)return 0;let B=Math.max(0,Math.min(J,Q-1)),Z=q.getOffset(B),V=q.getSize(B),K=q.getTotalSize(),U=Math.max(0,K-j),y;switch(Y){case"center":y=Z-j/2+V/2;break;case"end":y=Z-j+V;break;case"start":default:y=Z;break}return Math.max(0,Math.min(y,U))};var ZJ=(J,q,j,Q,X="start",Y,B=l4)=>{return B(J,q,j,Q,Y,X)};var $6=(J,q)=>{if(J.header){let j=q?J.header.width??J.header.height:J.header.height??J.header.width;return{...J,header:{...J.header,height:j}}}if(J.headerHeight!=null&&J.headerTemplate)return{...J,header:{height:J.headerHeight,template:J.headerTemplate}};return J},dJ=(J)=>{let q=J.header,j=q?q.height??q.width:J.headerHeight,Q=q?.template??J.headerTemplate;if(!J.getGroupForIndex)throw Error("[vlist/builder] withGroups: getGroupForIndex is required");if(j==null||j<=0)throw Error("[vlist/builder] withGroups: header.height must be a positive number");if(!Q)throw Error("[vlist/builder] withGroups: header.template is required");let X=null,Y=null;return{name:"withGroups",priority:10,setup(B){let{dom:Z,config:V,rawConfig:K}=B,{classPrefix:U}=V,y=$6(J,V.horizontal),M=K.item.height,v=y.sticky!==!1,{template:I}=y.header;if(Z.root.classList.add(`${U}--grouped`),v)if(B.methods.set("_getStickyHeaderHeight",()=>y.header.height),!V.horizontal)Z.viewport.style.height=`calc(100% - ${y.header.height}px)`;else Z.viewport.style.width=`calc(100% - ${y.header.height}px)`;let{animateScroll:E,cancelScroll:k}=e0(B.scrollController,B.renderIfNeeded),A=null;B.methods.set("scrollToIndex",(z,H)=>{let P=A??X;if(!P)return;let x=P.dataToLayoutIndex(z),{align:R,behavior:c,duration:s}=m0(H),p=B.dataManager.getTotal(),w=B.adjustScrollPosition(ZJ(x,B.sizeCache,B.state.viewportState.containerSize,p,R,B.getCachedCompression()));if(c==="smooth")E(B.scrollController.getScrollTop(),w,s);else k(),B.scrollController.scrollTo(w)}),B.destroyHandlers.push(()=>{if(k(),Y)Y.destroy(),Y=null;Z.root.classList.remove(`${U}--grouped`)});let T=null;B.methods.set("_getGroupBridge",()=>T),queueMicrotask(()=>{let z=B.methods.get("_onItemsLoaded");if(z)R6(B,y,V,K,M,v,I,U,z,(H)=>{T=H,A=H},(H)=>{Y=H})}),b6(B,y,V,K,M,v,I,U,()=>{},()=>{},(z)=>{X=z,A=z},(z)=>{Y=z})},destroy(){if(Y)Y.destroy(),Y=null}}};function b6(J,q,j,Q,X,Y,B,Z,V,K,U,y){let{dom:G}=J,M=null,v=Q.items?[...Q.items]:[];V(v);let I=v.length,E={getGroupForIndex:q.getGroupForIndex,header:{height:q.header.height,template:q.header.template},sticky:q.sticky??!1},k=(D)=>v[D],A=m4(I,E,k);U(A);let T=mJ(v,A.groups);K(T);let z=g4(A,X,Y);J.setSizeConfig(z),J.rebuildSizeCache(T.length),J.dataManager.setItems(T,0,T.length);let H=Q.item.template,P=(D,u,o)=>{if(h0(D))return B(D.groupKey,D.groupIndex);return H(D,u,o)},x=J.methods.get("_getGridLayout"),R=J.methods.get("_replaceGridRenderer"),c=J.methods.get("_updateGridLayoutForGroups"),s=J.methods.get("_createGridRenderer"),p=J.methods.get("_getTableLayout"),w=J.methods.get("_updateTableForGroups");if(x&&R&&s){if(c)c((o)=>{let e=T[o];return!!(e&&h0(e))});let D=x(),u=s(G.items,P,J.sizeCache,D,Z,J.getContainerWidth(),()=>J.dataManager.getTotal(),j.ariaIdPrefix);R(u)}else if(p&&w)w((D)=>h0(D),q.header.template);else J.replaceTemplate(P);let f=()=>{if(!Y||M)return;if(A.groupCount===0)return;let D=q.header.template,u=(e,d)=>{let n=A.groups[d];if(!n)return;let C=D(n.key,n.groupIndex);if(typeof C==="string")e.innerHTML=C;else e.replaceChildren(C)},o=xJ(G.root,A,J.sizeCache,u,Z,j.horizontal);M=o,y(o),J.afterScroll.push((e,d)=>{o.update(e)}),o.update(J.scrollController.getScrollTop())};f();let g=Q.item?.striped,$=()=>{if(g!=="data"&&g!=="even"&&g!=="odd")return;let D=new Int32Array(T.length),u=g==="odd"?1:0,o=0;for(let e=0;e<T.length;e++)if(h0(T[e])){if(D[e]=-1,g==="even"||g==="odd")o=0}else D[e]=o+++u;J.setStripeIndexFn((e)=>{if(e<0||e>=D.length)return e;return D[e]})};$();let L=()=>{if(A.rebuild(v.length,k),T=mJ(v,A.groups),K(T),J.rebuildSizeCache(T.length),J.dataManager.setItems(T,0,T.length),$(),f(),M)M.refresh()};J.methods.set("setItems",(D)=>{v=D.slice(),V(v),L()}),J.methods.set("appendItems",(D)=>{v.push(...D),V(v),L()}),J.methods.set("prependItems",(D)=>{v.unshift(...D),V(v),L()}),J.methods.set("removeItem",(D)=>{v=v.filter((u)=>u.id!==D),V(v),L()}),J.methods.set("_getItems",()=>v),J.methods.set("_getTotal",()=>v.length),J.methods.set("_isGroupHeader",(D)=>{let u=T[D];return!!(u&&h0(u))}),J.methods.set("_layoutToDataIndex",(D)=>A.layoutToDataIndex(D)),J.methods.set("_dataToLayoutIndex",(D)=>A.dataToLayoutIndex(D))}function R6(J,q,j,Q,X,Y,B,Z,V,K,U){let{dom:y}=J,G=J.dataManager,M=c4({getGroupForIndex:q.getGroupForIndex,headerHeight:q.header.height},(H)=>G.getItem(H),(H)=>G.isItemLoaded(H));K(M);let v=typeof X==="number"?(H)=>X:X,I=(H)=>{if(M.isHeader(H)){if(Y&&M.getGroupAtLayoutIndex(H).groupIndex===0)return 0;return q.header.height}let P=M.layoutToDataIndex(H);return P>=0?v(P):v(H)};J.setSizeConfig(I),J.setVirtualTotalFn(()=>M.totalEntries||G.getTotal());let E={...G,getTotal:()=>M.totalEntries,getIndexById:(H)=>{let P=G.getIndexById(H);if(P<0)return-1;return M.dataToLayoutIndex(P)},getItem:(H)=>{let P=M.getHeaderItem(H);if(P)return P;let x=M.layoutToDataIndex(H);if(x>=0)return G.getItem(x);return G.getItem(H)},getItemsInRange:(H,P)=>{let x=[];for(let R=H;R<=P;R++){let c=E.getItem(R);if(c!==void 0)x.push(c)}return x},isItemLoaded:(H)=>{if(M.isHeader(H))return!0;let P=M.layoutToDataIndex(H);if(P>=0)return G.isItemLoaded(P);return G.isItemLoaded(H)},ensureRange:(H,P)=>G.ensureRange(H,P),loadRange:(H,P)=>G.loadRange(H,P),loadInitial:()=>G.loadInitial(),loadMore:()=>G.loadMore(),reload:()=>{return M.reset(),G.reload()},setTotal:(H)=>G.setTotal(H),setItems:(H,P,x)=>G.setItems(H,P,x),removeItem:(H)=>{let P=G.getIndexById(H);if(P>=0)M.removeAt(P);return G.removeItem(H)},clear:()=>{M.reset(),G.clear()},reset:()=>{M.reset(),G.reset()}};J.replaceDataManager(E);let k=Q.item.template,A=J.methods.get("_updateTableForGroups");if(A)A((H)=>h0(H),q.header.template);J.replaceTemplate((H,P,x)=>{if(h0(H))return B(H.groupKey,H.groupIndex);return k(H,P,x)});let T=null;if(Y){let H=q.header.template,P=(c,s)=>{let p=M.groups[s];if(!p)return;let w=H(p.key,p.groupIndex);if(typeof w==="string")c.innerHTML=w;else c.replaceChildren(w)},x={get totalEntries(){return M.totalEntries},get groupCount(){return M.groupCount},get groups(){return M.groups},getEntry:(c)=>{if(M.isHeader(c))return{type:"header",group:M.getGroupAtLayoutIndex(c)};return{type:"item",dataIndex:M.layoutToDataIndex(c),group:M.getGroupAtLayoutIndex(c)}},layoutToDataIndex:(c)=>M.layoutToDataIndex(c),dataToLayoutIndex:(c)=>M.dataToLayoutIndex(c),getGroupAtLayoutIndex:(c)=>M.getGroupAtLayoutIndex(c),getGroupAtDataIndex:(c)=>M.getGroupAtDataIndex(c),getHeaderHeight:(c)=>M.getHeaderHeight(c),rebuild:()=>{}};T=xJ(y.root,x,J.sizeCache,P,Z,j.horizontal,0),U(T);let R=T;J.afterScroll.push((c,s)=>{R.update(c)})}V((H,P,x)=>{let R=J.scrollController.getScrollTop(),c=M.groupCount,s=0,p=0;if(R>0){let g=J.sizeCache.indexAtOffset(R),$=J.sizeCache.getOffset(g),L=J.sizeCache.getSize(g);p=L>0?(R-$)/L:0,s=M.layoutToDataIndex(g)}M.onItemsLoaded(H,P,x),J.rebuildSizeCache(M.totalEntries);let w=J.getCachedCompression();if(J.updateContentSize(w.virtualSize),M.groupCount-c>0&&R>0){let g=M.dataToLayoutIndex(s),$=J.sizeCache.getOffset(g),L=J.sizeCache.getSize(g),D=$+p*L;if(Math.abs(D-R)>1)J.scrollController.scrollTo(D)}if(T)T.refresh(),T.update(J.scrollController.getScrollTop())}),J.methods.set("_isGroupHeader",(H)=>M.isHeader(H)),J.methods.set("_layoutToDataIndex",(H)=>M.layoutToDataIndex(H)),J.methods.set("_dataToLayoutIndex",(H)=>M.dataToLayoutIndex(H)),J.methods.set("_getTotal",()=>G.getTotal()),J.methods.delete("removeItem");let z=Q.item?.striped;if(z==="data"||z==="even"||z==="odd"){let H=z==="odd"?1:0;J.setStripeIndexFn((P)=>{if(M.isHeader(P))return-1;let x=M.layoutToDataIndex(P);return x>=0?x+H:P})}}var r4=(J)=>{let q=Math.max(1,Math.floor(J.columns)),j=J.gap??0,Q=J.isHeaderFn,X={row:0,col:0},Y=(v)=>{if(v<=0)return 0;if(!Q)return Math.ceil(v/q);let I=0,E=0,k=0;for(let A=0;A<v;A++)if(Q(A)){if(k++,E>0)I++,E=0;I++,E=0}else if(E++,E>=q)I++,E=0;if(E>0)I++;return I},B=(v)=>{return X.row=Z(v),X.col=V(v),X},Z=(v)=>{if(!Q)return Math.floor(v/q);let I=0,E=0;for(let k=0;k<=v;k++)if(Q(k)){if(E>0)I++,E=0;if(k===v)return I;I++,E=0}else{if(k===v)return I;if(E++,E>=q)I++,E=0}return console.warn(`⚠️ getRow(${v}) fell through - returning ${I}`),I},V=(v)=>{if(!Q)return v%q;if(Q(v))return 0;let I=0;for(let E=0;E<=v;E++)if(Q(E))I=0;else{if(E===v)return I;if(I++,I>=q)I=0}return I},K=(v,I,E)=>{if(E<=0)return{start:0,end:-1};if(!Q){let H=Math.max(0,v*q),P=Math.min(E-1,(I+1)*q-1);return{start:H,end:P}}let k=-1,A=-1,T=0,z=0;for(let H=0;H<E;H++){if(Q(H)){if(z>0)T++,z=0;if(T>=v&&T<=I){if(k===-1)k=H;A=H}T++,z=0}else{if(T>=v&&T<=I){if(k===-1)k=H;A=H}if(z++,z>=q)T++,z=0}if(T>I&&z===0)break}if(k===-1)return{start:0,end:-1};return{start:k,end:A}},U=(v,I,E)=>{if(I<0||I>=q)return-1;let k=v*q+I;if(k<0||k>=E)return-1;return k},y=(v)=>{let I=(q-1)*j;return Math.max(0,(v-I)/q)};return{get columns(){return q},get gap(){return j},update:(v)=>{if(v.columns!==void 0)q=Math.max(1,Math.floor(v.columns));if(v.gap!==void 0)j=v.gap;if(v.isHeaderFn!==void 0)Q=v.isHeaderFn},getTotalRows:Y,getPosition:B,getRow:Z,getCol:V,getItemRange:K,getItemIndex:U,getColumnWidth:y,getColumnOffset:(v,I)=>{let E=y(I);return v*(E+j)}}};var P6=(J=200)=>{let q=[];return{acquire:()=>{let Y=q.pop();if(Y)return Y;let B=document.createElement("div");return B.setAttribute("role","option"),B},release:(Y)=>{if(Y.remove(),q.length<J)Y.className="",Y.textContent="",Y.removeAttribute("style"),Y.removeAttribute("data-index"),Y.removeAttribute("data-id"),Y.removeAttribute("data-row"),Y.removeAttribute("data-col"),q.push(Y)},clear:()=>{q.length=0}}},w6=1,cJ=(J,q,j,Q,X,Y,B,Z,V=!1)=>{let K=P6(),U=new Map,y=Y,G=!1,M=0,v="",I=-1,E={selected:!1,focused:!1},k=(C,N)=>{return E.selected=C,E.focused=N,E},A=`${X}-item ${X}-grid-item`,T=`${X}-item--selected`,z=`${X}-item--focused`,H=`${X}-item--placeholder`,P=`${X}-item--replaced`,x=(C,N)=>{if(typeof N==="string")C.innerHTML=N;else C.replaceChildren(N)},R=(C,N,m)=>{C.classList.toggle(T,N),C.classList.toggle(z,m)},c=(C,N)=>{let m=Q.getRow(C);if(N?.compression?.isCompressed)return JJ(m,N.scrollPosition,j,N.totalItems,N.containerSize,N.compression,N.rangeStart);return j.getOffset(m)},s=(C,N)=>{let m=G&&Q.getCol(C)===0,h=m?0:Q.getCol(C),W=m?0:Q.getColumnOffset(h,y),_;if(G){let b=Q.getRow(C),F=0,O=new Set;for(let S=0;S<C;S++){let i=Q.getRow(S);if(i<b&&!O.has(i)){let r=j.getSize(S);F+=r,O.add(i)}}_=F}else _=c(C,N);if(V)return`translate(${Math.round(_)}px, ${Math.round(W)}px)`;return`translate(${Math.round(W)}px, ${Math.round(_)}px)`},p=(C,N)=>{C.style.transform=N},w=(C,N)=>{let m=C.dataset.id?.startsWith("__group_header"),h=m?y:Q.getColumnWidth(y),W;if(G||m)W=j.getSize(N)-Q.gap;else{let _=Q.getRow(N);W=j.getSize(_)-Q.gap}if(V)C.style.width=`${W}px`,C.style.height=`${h}px`;else C.style.width=`${h}px`,C.style.height=`${W}px`},f=(C,N,m,h,W)=>{let _=K.acquire(),b=k(m,h);if(_.className=A,_.dataset.index=String(C),_.dataset.id=String(N.id),_.dataset.row=String(Q.getRow(C)),_.dataset.col=String(Q.getCol(C)),_.ariaSelected=String(m),Z)_.id=`${Z}-item-${C}`;if(B){let S=B();if(S!==I)I=S,v=String(S);_.setAttribute("aria-setsize",v),_.setAttribute("aria-posinset",String(C+1))}w(_,C);let F=q(N,C,b);if(x(_,F),String(N.id).startsWith(u0))_.classList.add(H);return R(_,m,h),p(_,W),{element:_,lastItemId:N.id,lastSelected:m,lastFocused:h,lastTransform:W,lastSeenFrame:M}},g=(C,N,m,h,W)=>{if(M++,N.start===0&&C.length>0)G=h0(C[0]);for(let[F,O]of U)if(F>=N.start&&F<=N.end)O.lastSeenFrame=M;else if(M-O.lastSeenFrame>w6)K.release(O.element),U.delete(F);let _=!1;if(B){let F=B();if(F!==I)I=F,v=String(F),_=!0}let b=null;for(let F=N.start;F<=N.end;F++){let O=F-N.start,S=C[O];if(!S){console.warn(`⚠️ RENDER: Missing item at index ${F} (range: ${N.start}-${N.end}, items.length: ${C.length})`);continue}let i=m.has(S.id),r=F===h,J0=U.get(F);if(J0){let Z0=J0.lastItemId!==S.id,t=J0.lastSelected!==i,q0=J0.lastFocused!==r;if(Z0){let W0=String(J0.lastItemId),D0=String(S.id),M0=W0.startsWith(u0),A0=D0.startsWith(u0);if(!A0&&g0(m,F,S.id))i=!0;let k0=k(i,r),K0=q(S,F,k0);if(x(J0.element,K0),J0.element.dataset.id=D0,J0.element.dataset.row=String(Q.getRow(F)),J0.element.dataset.col=String(Q.getCol(F)),w(J0.element,F),J0.element.classList.toggle(H,A0),M0&&!A0)J0.element.classList.add(P),setTimeout(()=>J0.element.classList.remove(P),300);J0.lastItemId=S.id}if(Z0||t||q0)R(J0.element,i,r),J0.element.ariaSelected=String(i),J0.lastSelected=i,J0.lastFocused=r;let j0=s(F,W);if(J0.lastTransform!==j0)p(J0.element,j0),J0.lastTransform=j0;if(_)J0.element.setAttribute("aria-setsize",v)}else{if(g0(m,F,S.id))i=!0;let Z0=s(F,W),t=f(F,S,i,r,Z0);if(!b)b=document.createDocumentFragment();b.appendChild(t.element),U.set(F,t)}}if(b)J.appendChild(b)},$=(C)=>{for(let[N,m]of U){let h=s(N,C);if(m.lastTransform!==h)p(m.element,h),m.lastTransform=h}},L=(C,N,m,h)=>{let W=U.get(C);if(!W)return;let _=k(m,h),b=q(N,C,_);x(W.element,b),R(W.element,m,h),W.element.dataset.id=String(N.id),W.element.ariaSelected=String(m),w(W.element,C),W.lastItemId=N.id,W.lastSelected=m,W.lastFocused=h},D=(C,N,m)=>{let h=U.get(C);if(!h)return;let W=h.lastSelected!==N,_=h.lastFocused!==m;if(W||_)R(h.element,N,m),h.lastSelected=N,h.lastFocused=m},u=(C)=>{return U.get(C)?.element},o=(C)=>{if(Math.abs(C-y)<1)return;y=C;for(let[N,m]of U){w(m.element,N);let h=s(N);p(m.element,h),m.lastTransform=h}},e=()=>{a0(J,U.keys(),(C)=>U.get(C)?.element)},d=()=>{for(let[,C]of U)K.release(C.element);U.clear()};return{render:g,updatePositions:$,updateItem:L,updateItemClasses:D,getElement:u,sortDOM:e,updateContainerWidth:o,clear:d,destroy:()=>{d(),K.clear()}}};var y6=new Set,lJ=(J)=>{if(!J.columns||J.columns<1)throw Error("[vlist/builder] withGrid: columns must be a positive integer >= 1");let q=null,j=null;return{name:"withGrid",priority:10,conflicts:["withTable","withMasonry"],setup(Q){let{dom:X,emitter:Y,config:B,rawConfig:Z}=Q,{classPrefix:V}=B;if(B.reverse)throw Error("[vlist/builder] withGrid cannot be used with reverse: true");let K=B.horizontal,U=_J(f0(Z.padding),K),y=()=>{return(K?X.viewport.clientHeight:Q.getContainerWidth())-U},G=Z.items?.some((d)=>d.__groupHeader===!0),M={columns:J.columns,gap:J.gap??0};if(G)M.isHeaderFn=(d)=>{let n=Q.dataManager.getItem(d);return!!(n&&n.__groupHeader===!0)};q=r4(M);let v=q.gap;Q.setVirtualTotalFn(()=>{let d=Q.dataManager.getTotal();return q.getTotalRows(d)}),Q.setItemToScrollIndexFn((d)=>Math.floor(d/M.columns)),Q.methods.set("_getNavTotal",()=>Q.dataManager.getTotal()),Q.methods.set("_getNavDelta",()=>K?{ud:1,lr:M.columns,cols:M.columns}:{ud:M.columns,lr:1,cols:M.columns});let I=Z.item,E=B.horizontal?I.width:I.height,k={containerWidth:y(),columns:q.columns,gap:q.gap},A={containerWidth:0,columns:0,gap:0,columnWidth:0,row:0,column:0,totalRows:0,totalColumns:0};if(typeof E==="function")Q.setSizeConfig((d)=>{let n=k.containerWidth-2,C=(k.columns-1)*k.gap;return A.containerWidth=k.containerWidth,A.columns=k.columns,A.gap=k.gap,A.columnWidth=(n-C)/k.columns,A.row=q.getRow(d),A.column=q.getCol(d),A.totalRows=q.getTotalRows(Q.dataManager.getTotal()),A.totalColumns=k.columns,E(d,A)+k.gap});else if(v>0)Q.setSizeConfig(E+v);if(Q.rebuildSizeCache(),v>0){let d=Q.sizeCache.getTotalSize;Q.sizeCache.getTotalSize=()=>{let n=d();return n>0?n-k.gap:0}}X.root.classList.add(`${V}--grid`);let T=y(),z=Z.item.template,H=()=>{j=cJ(X.items,z,Q.sizeCache,q,V,T,()=>Q.dataManager.getTotal(),B.ariaIdPrefix,B.horizontal),Q.replaceRenderer(j)};H(),Q.setUpdateItemClassesFn((d,n,C)=>{j?.updateItemClasses(d,n,C)}),Q.methods.set("_updateRenderedItem",(d,n,C,N)=>{j?.updateItem(d,n,C,N)}),Q.methods.set("_getGridLayout",()=>q),Q.methods.set("_getGridConfig",()=>M),Q.methods.set("_replaceGridRenderer",(d)=>{j=d}),Q.methods.set("_createGridRenderer",cJ),Q.methods.set("_updateGridLayoutForGroups",(d)=>{q.update({isHeaderFn:d});let n=Q.dataManager.getTotal(),C=0;for(let N=0;N<n;N++)if(q.getCol(N)===0){let m=Q.sizeCache.getSize(N);C+=m}Q.sizeCache.getTotalSize=()=>C,Q.updateContentSize(C),H()}),Q.methods.set("updateGrid",(d)=>{if(d.columns!==void 0){if(!Number.isInteger(d.columns)||d.columns<1)throw Error("[vlist/builder] updateGrid: columns must be a positive integer >= 1");M.columns=d.columns}if(d.gap!==void 0){if(d.gap<0)throw Error("[vlist/builder] updateGrid: gap must be non-negative");M.gap=d.gap}if(q)q.update(M);let n=y();if(k.containerWidth=n,k.columns=M.columns,k.gap=M.gap??0,j)j.updateContainerWidth(n);Q.rebuildSizeCache(),Q.updateContentSize(Q.sizeCache.getTotalSize()),Q.updateCompressionMode();for(let C=0;C<Q.contentSizeHandlers.length;C++)Q.contentSizeHandlers[C]();if(j)j.clear();Q.forceRender()});let P=null,x=null,R=!1,c=()=>{if(R)return;R=!0,P=Q.methods.get("_getSelectedIds")??null,x=Q.methods.get("_getFocusedIndex")??null},s=-1,p=-1,w=!0,f=B.overscan,g={start:0,end:0},$={start:0,end:0},L=()=>{if(Q.state.isDestroyed)return;let d=Q.scrollController.getScrollTop(),n=Q.state.viewportState.containerSize;if(!w&&d===s&&n===p)return;s=d,p=n,w=!1;let C=Q.getVirtualTotal();Q.getVisibleRange(d,n,C,g),$.start=Math.max(0,g.start-f),$.end=Math.min(C-1,g.end+f);let N=Q.state.viewportState;N.scrollPosition=d,N.visibleRange.start=g.start,N.visibleRange.end=g.end,N.renderRange.start=$.start,N.renderRange.end=$.end;let m=Q.state.lastRenderRange,h=N.isCompressed,W=m.start!==$.start||m.end!==$.end;if(!W&&h){j.updatePositions(Q.getCompressionContext());return}let _=Q.dataManager.getTotal(),b=q.getItemRange($.start,$.end,_),F=Q.dataManager.getItemsInRange(b.start,b.end),O=h?Q.getCompressionContext():void 0;c();let S=P?P():y6,i=x?x():-1;if(j.render(F,b,S,i,O),W)m.start=$.start,m.end=$.end,Y.emit("range:change",{range:{start:$.start,end:$.end}})},D=()=>{if(Q.state.isDestroyed)return;Q.state.lastRenderRange.start=-1,Q.state.lastRenderRange.end=-1,w=!0,L()};Q.setRenderFns(L,D);let u=typeof E==="function";Q.resizeHandlers.push((d,n)=>{let C=(K?n:d)-U;if(Math.abs(C-k.containerWidth)<1)return;if(k.containerWidth=C,j)j.updateContainerWidth(C);if(u){Q.rebuildSizeCache(),Q.updateContentSize(Q.sizeCache.getTotalSize()),Q.updateCompressionMode();for(let N=0;N<Q.contentSizeHandlers.length;N++)Q.contentSizeHandlers[N]();if(j)j.clear();Q.forceRender()}});let{animateScroll:o,cancelScroll:e}=e0(Q.scrollController,Q.renderIfNeeded);if(Q.methods.set("cancelScroll",e),Q.methods.set("scrollToIndex",(d,n)=>{let C=Math.floor(d/J.columns),{align:N,behavior:m,duration:h}=m0(n),W=Q.dataManager.getState(),_=q.getTotalRows(W.total),b=Math.max(0,Math.min(C,_-1)),F=Q.adjustScrollPosition(ZJ(b,Q.sizeCache,Q.state.viewportState.containerSize,_,N,Q.getCachedCompression()));if(m==="smooth")o(Q.scrollController.getScrollTop(),F,h);else e(),Q.scrollController.scrollTo(F)}),!Q.methods.has("_getTotal"))Q.methods.set("_getTotal",()=>Q.dataManager.getTotal());Q.methods.set("_layoutToDataIndex",(d)=>d*J.columns),Q.methods.set("_dataToLayoutIndex",(d)=>Math.floor(d/J.columns)),Q.idleHandlers.push(()=>{if(j)j.sortDOM()}),Q.destroyHandlers.push(()=>{if(e(),j)j.destroy(),j=null;X.root.classList.remove(`${V}--grid`)})},destroy(){if(j)j.destroy(),j=null}}};var s4=(J)=>{let q=Math.max(1,Math.floor(J.columns)),j=J.gap??0,Q=J.containerSize,X=0,Y=[],B=()=>{let E=(q-1)*j;X=Math.max(0,(Q-E)/q),Y=Array(q);let k=X+j;for(let A=0;A<q;A++)Y[A]=A*k};B();let Z=[],V=0,K=[],U=(E)=>{let k=0,A=E[0];for(let T=1;T<E.length;T++){let z=E[T];if(z<A)A=z,k=T}return k},y=(E,k)=>{if(E<=0)return V=0,Z=[],[];let A=Array(q).fill(0),T=Array(q);for(let P=0;P<q;P++)T[P]=[];let z=Array(E);for(let P=0;P<E;P++){let x=U(A),R=k(P),c=A[x];z[P]={index:P,x:Y[x],y:c,lane:x,size:R,crossSize:X},T[x].push(P),A[x]=c+R+j}Z=T;let H=0;for(let P=0;P<q;P++){let x=A[P],R=x>0?x-j:0;if(R>H)H=R}return V=H,z},G=(E)=>{if(E.length===0)return V>0?V:0;if(V>0)return V;let k=Array(q).fill(0);for(let T of E){let z=T.y+T.size,H=k[T.lane];if(z>H)k[T.lane]=z}let A=0;for(let T=0;T<q;T++)if(k[T]>A)A=k[T];return A},M=(E,k,A)=>{if(E.length===0||A<=k)return K.length=0,K;if(Z.length===0||Z.length!==q)return v(E,k,A);K.length=0;for(let T=0;T<q;T++){let z=Z[T],H=z.length;if(H===0)continue;let P=0,x=H;while(P<x){let R=P+x>>>1,c=E[z[R]];if(c.y+c.size<=k)P=R+1;else x=R}for(let R=P;R<H;R++){let c=E[z[R]];if(c.y>=A)break;K.push(c)}}return K},v=(E,k,A)=>{let T=[];for(let z of E)if(z.y+z.size>k&&z.y<A)T.push(z);return T};return{get columns(){return q},get gap(){return j},get containerSize(){return Q},update:(E)=>{let k=!1;if(E.columns!==void 0){let A=Math.max(1,Math.floor(E.columns));if(A!==q)q=A,k=!0}if(E.gap!==void 0&&E.gap!==j)j=E.gap,k=!0;if(E.containerSize!==void 0&&E.containerSize!==Q)Q=E.containerSize,k=!0;if(k)B()},calculateLayout:y,getTotalSize:G,getVisibleItems:M}};var z6=(J=200)=>{let q=[];return{acquire:()=>{let Y=q.pop();if(Y)return Y;let B=document.createElement("div");return B.setAttribute("role","option"),B},release:(Y)=>{if(Y.remove(),q.length<J)Y.className="",Y.textContent="",Y.removeAttribute("style"),Y.removeAttribute("data-index"),Y.removeAttribute("data-id"),Y.removeAttribute("data-lane"),q.push(Y)},clear:()=>{q.length=0}}},C6=1,a4=(J,q,j,Q=!1,X,Y)=>{let B=z6(),Z=new Map,V=new Set,K=0,U="",y=-1,G={selected:!1,focused:!1},M=(p,w)=>{return G.selected=p,G.focused=w,G},v=`${j}-item ${j}-masonry-item`,I=`${j}-item--selected`,E=`${j}-item--focused`,k=(p,w)=>{if(typeof w==="string")p.innerHTML=w;else p.replaceChildren(w)},A=(p,w,f)=>{p.classList.toggle(I,w),p.classList.toggle(E,f)},T=(p,w)=>{if(Q)p.style.transform=`translate(${Math.round(w.y)}px, ${Math.round(w.x)}px)`;else p.style.transform=`translate(${Math.round(w.x)}px, ${Math.round(w.y)}px)`},z=(p,w)=>{if(Q)p.style.width=`${w.size}px`,p.style.height=`${w.crossSize}px`;else p.style.width=`${w.crossSize}px`,p.style.height=`${w.size}px`},H=(p,w,f,g,$)=>{let L=B.acquire(),D=M(g,$);if(L.className=v,L.dataset.index=String(p),L.dataset.id=String(w.id),L.dataset.lane=String(f.lane),L.ariaSelected=String(g),Y)L.id=`${Y}-item-${p}`;if(X){let o=X();if(o!==y)y=o,U=String(o);L.setAttribute("aria-setsize",U),L.setAttribute("aria-posinset",String(p+1))}z(L,f);let u=q(w,p,D);return k(L,u),A(L,g,$),T(L,f),{element:L,lastItemId:w.id,lastSelected:g,lastFocused:$,lastY:f.y,lastX:f.x,lastSize:f.size,lastCrossSize:f.crossSize,lastSeenFrame:K}},P=(p,w,f,g)=>{K++,V.clear();for(let L=0;L<w.length;L++)V.add(w[L].index);for(let[L,D]of Z)if(V.has(L))D.lastSeenFrame=K;else if(K-D.lastSeenFrame>C6)B.release(D.element),Z.delete(L);let $=null;for(let L=0;L<w.length;L++){let D=w[L],u=D.index,o=p(u);if(!o)continue;let e=f.has(o.id),d=u===g,n=Z.get(u);if(n){let C=n.lastItemId!==o.id,N=n.lastSelected!==e,m=n.lastFocused!==d,h=n.lastY!==D.y||n.lastX!==D.x,W=n.lastSize!==D.size||n.lastCrossSize!==D.crossSize;if(C){let _=M(e,d),b=q(o,u,_);k(n.element,b),n.element.dataset.id=String(o.id),n.lastItemId=o.id}if(C||N||m)A(n.element,e,d),n.element.ariaSelected=String(e),n.lastSelected=e,n.lastFocused=d;if(W)z(n.element,D),n.lastSize=D.size,n.lastCrossSize=D.crossSize;if(h)T(n.element,D),n.lastY=D.y,n.lastX=D.x}else{let C=H(u,o,D,e,d);if(!$)$=document.createDocumentFragment();$.appendChild(C.element),Z.set(u,C)}}if($)J.appendChild($)},x=()=>{for(let{element:p}of Z.values())B.release(p);Z.clear(),J.innerHTML=""};return{render:P,getElement:(p)=>Z.get(p)?.element,updateItemClasses:(p,w,f)=>{let g=Z.get(p);if(!g)return;let $=g.lastSelected!==w,L=g.lastFocused!==f;if($||L)A(g.element,w,f),g.lastSelected=w,g.lastFocused=f},sortDOM:()=>{a0(J,Z.keys(),(p)=>Z.get(p)?.element)},clear:x,destroy:()=>{x(),B.clear()}}};var v6=new Set,S6=100,rJ=(J)=>{if(!J.columns||J.columns<1)throw Error("[vlist/builder] withMasonry: columns must be a positive integer >= 1");let q=null,j=null,Q=[];return{name:"withMasonry",priority:10,conflicts:["withGrid","withTable"],setup(X){let{dom:Y,emitter:B,config:Z,rawConfig:V}=X,K=Z.classPrefix,U=Z.horizontal;if(Z.reverse)throw Error("[vlist/builder] withMasonry: cannot be combined with reverse mode");Y.root.classList.add(`${K}--masonry`);let y=f0(V.padding),G=_J(y,U),M=s0(y,U),v=()=>{return(U?Y.viewport.clientHeight:Y.viewport.clientWidth)-G},I={columns:J.columns,gap:J.gap??0,containerSize:v()};q=s4(I);let E=V.item,k=U&&V.item.width?V.item.width:E.height,A={containerWidth:0,columns:0,gap:0,columnWidth:0},T=typeof k==="function"?(_)=>k(_,A):()=>k,z=()=>{let _=X.dataManager.getTotal(),b=q;A.containerWidth=b.containerSize,A.columns=b.columns,A.gap=b.gap;let F=(b.columns-1)*b.gap;A.columnWidth=Math.max(0,(A.containerWidth-F)/b.columns),Q=b.calculateLayout(_,T),c();let O=q.getTotalSize(Q);X.sizeCache.getTotalSize=()=>O,X.updateContentSize(O)},H=V.item.template;j=a4(Y.items,H,K,U,()=>X.dataManager.getTotal(),Z.ariaIdPrefix),X.setUpdateItemClassesFn((_,b,F)=>{j?.updateItemClasses(_,b,F)});let P=[],x=new Int32Array(0),R=[],c=()=>{let _=I.columns,b=Q.length;if(P=Array.from({length:_},()=>[]),x.length<b)x=new Int32Array(b);for(let F=0;F<b;F++){let O=Q[F],S=P[O.lane].length;P[O.lane].push(F),x[F]=S}R=Array(_);for(let F=0;F<_;F++){let O=P[F],S=new Float64Array(O.length);for(let i=0;i<O.length;i++){let r=Q[O[i]];S[i]=r.y+r.size*0.5}R[F]=S}};X.methods.set("_getNavTotal",()=>X.dataManager.getTotal());let s=(_,b)=>{let F=_.length;if(F===0)return-1;if(F===1)return 0;let O=0,S=F-1;while(O<S){let i=O+S>>1;if(_[i]<b)O=i+1;else S=i}if(O>0&&Math.abs(_[O-1]-b)<=Math.abs(_[O]-b))return O-1;return O};X.methods.set("_navigate",(_,b,F)=>{let O=Q[_];if(!O)return _;let S=O.lane,i=I.columns,r=x[_],J0=P[S];switch(U?b==="ArrowDown"?"ArrowRight":b==="ArrowUp"?"ArrowLeft":b==="ArrowRight"?"ArrowDown":b==="ArrowLeft"?"ArrowUp":b:b){case"ArrowDown":{if(r+1<J0.length)return J0[r+1];return _}case"ArrowUp":{if(r>0)return J0[r-1];return _}case"ArrowRight":{if(S>=i-1)return _;let t=S+1,q0=O.y+O.size*0.5,j0=P[t];if(j0.length===0)return _;let W0=s(R[t],q0);return W0>=0?j0[W0]:_}case"ArrowLeft":{if(S<=0)return _;let t=S-1,q0=O.y+O.size*0.5,j0=P[t];if(j0.length===0)return _;let W0=s(R[t],q0);return W0>=0?j0[W0]:_}case"Home":return 0;case"End":return F-1;case"PageDown":{let t=X.state.viewportState.containerSize,q0=O.size>0?O.size:150,j0=Math.max(1,Math.floor(t/q0)),W0=Math.min(r+j0,J0.length-1);return J0[W0]}case"PageUp":{let t=X.state.viewportState.containerSize,q0=O.size>0?O.size:150,j0=Math.max(1,Math.floor(t/q0)),W0=Math.max(0,r-j0);return J0[W0]}}return _}),X.methods.set("_scrollItemIntoView",(_)=>{let b=Q[_];if(!b)return;let F=X.scrollController.getScrollTop(),O=X.state.viewportState.containerSize,S=b.y,i=S+b.size,r=F+O;if(S<F)X.scrollController.scrollTo(X.adjustScrollPosition(Math.max(0,S)));else if(i>r)X.scrollController.scrollTo(X.adjustScrollPosition(i-O))});let p=null,w=null,f=!1,g=()=>{if(f)return;f=!0,p=X.methods.get("_getSelectedIds")??null,w=X.methods.get("_getFocusedIndex")??null},$=(_)=>X.dataManager.getItem(_),L=-1,D=-1,u=!0,o=Z.overscan*S6,e=()=>{if(X.state.isDestroyed)return;g();let _=X.scrollController.getScrollTop(),b=X.state.viewportState.containerSize;if(!u&&_===L&&b===D)return;L=_,D=b,u=!1;let F=Math.max(0,_-o),O=_+b+o,S=q.getVisibleItems(Q,F,O),i=p?p():v6,r=w?w():-1;if(j&&S.length>0)j.render($,S,i,r);let J0=X.state.viewportState;J0.scrollPosition=_;let Z0=S.length,t=Z0>0?S[0].index:0,q0=Z0>0?S[Z0-1].index:0;J0.visibleRange.start=t,J0.visibleRange.end=q0,J0.renderRange.start=t,J0.renderRange.end=q0;let j0=X.state.lastRenderRange;if(j0.start!==t||j0.end!==q0)j0.start=t,j0.end=q0,B.emit("range:change",{range:{start:t,end:q0}})},d=()=>{X.state.lastRenderRange.start=-1,X.state.lastRenderRange.end=-1,u=!0,e()};X.setRenderFns(e,d);let n=(_,b)=>{let F=(U?b:_)-G;if(q&&q.containerSize!==F){if(q.update({containerSize:F}),z(),j)j.clear();d()}};X.resizeHandlers.push(n);let C=()=>{z(),d()},N=X.dataManager,m=(_)=>{if(typeof N[_]!=="function")return;let b=N[_].bind(N);N[_]=(...F)=>{b(...F),C()}};m("setItems"),m("appendItems"),m("prependItems"),m("updateItem"),m("removeItem");let{animateScroll:h,cancelScroll:W}=e0(X.scrollController,X.renderIfNeeded);X.methods.set("cancelScroll",W),X.methods.set("scrollToIndex",(_,b)=>{let F=Q[_];if(!F)return;let{align:O,behavior:S,duration:i}=m0(b),r=F.y,J0=X.state.viewportState.containerSize,Z0=r;if(O==="center")Z0=r-J0/2+F.size/2;else if(O==="end"){Z0=r-J0+F.size;let t=q.getTotalSize(Q);if(_===Q.length-1)Z0=Math.max(0,t+M-J0)}if(Z0=Math.max(0,Z0),Z0=X.adjustScrollPosition(Z0),S==="smooth")h(X.scrollController.getScrollTop(),Z0,i);else W(),X.scrollController.scrollTo(Z0)}),z(),X.idleHandlers.push(()=>{if(j)j.sortDOM()}),X.destroyHandlers.push(()=>{if(W(),j)j.destroy();Y.root.classList.remove(`${K}--masonry`)})}}};var sJ=(J)=>{let q=J?.mode??"single",j=J?.followFocus??!1,Q=J?.initial,X=J?.shiftArrowToggle??"origin",Y=J?.focusOnClick??!1,B=J?.contextMenu??"select",Z=b4(Q),V=null,K=-1;return{name:"withSelection",priority:50,methods:["select","deselect","toggleSelect","selectAll","clearSelection","getSelected","getSelectedItems","selectNext","selectPrevious"],setup(U){let{dom:y,emitter:G,config:M}=U,{classPrefix:v,ariaIdPrefix:I}=M;if(q==="none"){U.methods.set("select",()=>{}),U.methods.set("deselect",()=>{}),U.methods.set("toggleSelect",()=>{}),U.methods.set("selectAll",()=>{}),U.methods.set("clearSelection",()=>{}),U.methods.set("getSelected",()=>[]),U.methods.set("getSelectedItems",()=>[]),U.methods.set("setSelectionMode",()=>{}),U.methods.set("selectNext",()=>{}),U.methods.set("selectPrevious",()=>{}),U.methods.set("_focusById",()=>{}),U.methods.set("_getFocusedId",()=>{return});return}y.root.classList.add(`${v}--selectable`);let E=()=>U.methods.get("_isGroupHeader"),k=(h)=>{let W=E();return W?W(h):!1},A=(h,W,_)=>{if(!E())return h;let b=h;while(b>=0&&b<_){if(!k(b))return b;b+=W}b=h-W;while(b>=0&&b<_){if(!k(b))return b;b-=W}return h},T=new Map,z=()=>{T.clear();let h=U.dataManager.getTotal(),W=U.dataManager.getCached();if(W===0)return;if(W>=h){for(let b=0;b<h;b++){let F=U.dataManager.getItem(b);if(F)T.set(F.id,b)}return}let _=U.dataManager.getStorage();if(_&&typeof _.getLoadedRanges==="function"){let b=_.getLoadedRanges();for(let F of b)for(let O=F.start;O<=F.end;O++){let S=U.dataManager.getItem(O);if(S&&!S._isPlaceholder)T.set(S.id,O)}}};G.on("data:change",({type:h,id:W})=>{if(h==="remove")Z.selected.delete(W),z()}),G.on("load:end",({items:h,offset:W})=>{if(!h||h.length===0)return;if(W!==void 0)for(let _=0;_<h.length;_++){let b=h[_];if(b&&b.id!==void 0)T.set(b.id,W+_)}else z()}),z(),U.methods.set("_getSelectedIds",()=>{return Z.selected}),U.methods.set("_getFocusedIndex",()=>{return Z.focusVisible?Z.focusedIndex:-1}),U.methods.set("_seedSelection",(h)=>{for(let W of h)Z.selected.add(W)});let{forceRender:H}=U.getRenderFns(),P=()=>{H();let h=(W)=>{let _=T.get(W);if(_===void 0)return;return U.dataManager.getItem(_)};G.emit("selection:change",{selected:OJ(Z),items:AJ(Z,h)})},x=f0(U.rawConfig.padding),R=M.horizontal?x.left:x.top,c=M.horizontal?x.right:x.bottom,s=U.getItemToScrollIndexFn(),p=null,w=null,f=null,g=!1,$=()=>{if(g)return;g=!0,p=U.methods.get("_getNavDelta")??null,w=U.methods.get("_navigate")??null,f=U.methods.get("_scrollItemIntoView")??null},L=()=>{return $(),p?p():{ud:1,lr:0,cols:0}},D=(h)=>{if(h<0)return;if($(),f)f(h);else{let W=U.state.viewportState.containerSize,_=U.state.viewportState.scrollPosition,b=U.dataManager.getTotal(),F=U.getCachedCompression(),{visibleRange:O}=U.state.viewportState,S=s(h),i=GJ(S,U.sizeCache,_,W,R,c,F,b,O);if(i!==_)U.scrollController.scrollTo(U.adjustScrollPosition(i))}},u=()=>{let h=s(Math.max(0,Z.focusedIndex)),W=U.sizeCache.getSize(h),{ud:_}=L();return Math.max(_,Math.floor(U.state.viewportState.containerSize/W)*_)};V=document.createElement("div"),V.setAttribute("aria-live","polite"),V.setAttribute("aria-atomic","true"),V.className=`${v}-live-region`,V.style.cssText="position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0",(y.root.getAttribute("role")==="grid"?y.root.parentElement??y.root:y.root).appendChild(V);let e=V;G.on("selection:change",({selected:h})=>{let W=h.length;if(W===0)e.textContent="";else if(W===1)e.textContent="1 item selected";else e.textContent=`${W} items selected`});let d=()=>{if(U.state.isDestroyed)return;if(!y.root.matches(":focus-visible"))return;let h=U.dataManager.getTotal();if(h===0)return;let W=Z.focusedIndex>=0?Math.min(Z.focusedIndex,h-1):0;W=A(W,1,h),Z=l0(Z,W),Z.focusVisible=!0,y.root.setAttribute("aria-activedescendant",`${I}-item-${W}`),D(W);let _=U.dataManager.getItem(W);if(_)U.renderer.updateItemClasses(W,Z.selected.has(_.id),!0)};if(M.interactive)y.root.addEventListener("focusin",d);let n=(h)=>{if(U.state.isDestroyed)return;let W=h.relatedTarget;if(W&&y.root.contains(W))return;let _=Z.focusedIndex;if(Z.focusVisible=!1,y.root.removeAttribute("aria-activedescendant"),_>=0){let b=U.dataManager.getItem(_);if(b)U.renderer.updateItemClasses(_,Z.selected.has(b.id),!1)}};if(M.interactive)y.root.addEventListener("focusout",n);let C=(h)=>{let W=h.target.closest("[data-index]");if(!W)return null;let _=parseInt(W.dataset.index??"-1",10);if(_<0)return null;let b=U.dataManager.getItem(_);if(!b||k(_))return null;return{item:b,index:_}},N=(h)=>{Z=l0(Z,h),Z.focusVisible=Y,K=h,y.root.setAttribute("aria-activedescendant",`${I}-item-${h}`)};if(U.clickHandlers.push((h)=>{if(U.state.isDestroyed)return;let W=C(h);if(!W)return;let{item:_,index:b}=W;if(G.emit("item:click",{item:_,index:b,event:h}),q==="multiple"&&h.shiftKey&&Z.focusedIndex>=0){let F=K>=0?K:Z.focusedIndex;Z=EJ(Z,U.getAllLoadedItems(),F,b,q),N(b),P();return}N(b),Z=t0(Z,_.id,q),P()}),B==="select")U.contextMenuHandlers.push((h)=>{if(U.state.isDestroyed)return;let W=C(h);if(!W)return;if(!Z.selected.has(W.item.id))Z={...Z,selected:new Set([W.item.id])},N(W.index),P()});if(M.interactive)U.keydownHandlers.push((h)=>{if(U.state.isDestroyed)return;let W=U.dataManager.getTotal(),_=Z.focusedIndex,b=!1,F=!1,O=Z;if($(),w)switch(h.key){case"ArrowUp":case"ArrowDown":case"ArrowLeft":case"ArrowRight":case"PageUp":case"PageDown":case"Home":case"End":{let S=w(Z.focusedIndex,h.key,W);if(S!==Z.focusedIndex)O=l0(Z,S),O.focusVisible=!0,b=!0,F=!0;else{h.preventDefault();return}break}}if(!b)switch(h.key){case"ArrowUp":O=DJ(Z,W,M.wrap,L().ud),O.focusVisible=!0,b=!0,F=!0;break;case"ArrowDown":O=MJ(Z,W,M.wrap,L().ud),O.focusVisible=!0,b=!0,F=!0;break;case"ArrowLeft":{let{lr:S}=L();if(S)O=DJ(Z,W,M.wrap,S),O.focusVisible=!0,b=!0,F=!0;break}case"ArrowRight":{let{lr:S}=L();if(S)O=MJ(Z,W,M.wrap,S),O.focusVisible=!0,b=!0,F=!0;break}case"PageUp":O=vJ(Z,W,u(),"up"),O.focusVisible=!0,b=!0,F=!0;break;case"PageDown":O=vJ(Z,W,u(),"down"),O.focusVisible=!0,b=!0,F=!0;break;case"Home":{O=R4(Z,W),O.focusVisible=!0,b=!0,F=!0;break}case"End":{O=P4(Z,W),O.focusVisible=!0,b=!0,F=!0;break}}switch(h.key){case" ":case"Enter":if(h.key===" "&&h.shiftKey&&q==="multiple"&&Z.focusedIndex>=0){if(K>=0){let S=U.getAllLoadedItems();O=EJ(O,S,K,Z.focusedIndex,q)}O.focusVisible=!0,b=!0;break}if(Z.focusedIndex>=0&&!k(Z.focusedIndex)){let S=U.dataManager.getItem(Z.focusedIndex);if(S)O=t0(Z,S.id,q),O.focusVisible=!0;K=Z.focusedIndex,b=!0}break;case"a":if((h.ctrlKey||h.metaKey)&&q==="multiple"){let S=U.getAllLoadedItems();if(Z.selected.size===S.length)O=CJ(O);else O=zJ(O,S,q);O.focusVisible=!0,b=!0,F=!1}break;case"Delete":case"Backspace":if(Z.selected.size>0){let S=(i)=>{let r=T.get(i);return r===void 0?void 0:U.dataManager.getItem(r)};G.emit("delete",{selected:OJ(Z),items:AJ(Z,S)}),b=!0}break}if(F&&E()){let S=O.focusedIndex>_?1:-1;O.focusedIndex=A(O.focusedIndex,S,W)}if(h.shiftKey&&q==="multiple"&&F&&O.focusedIndex>=0){let S=h.key==="ArrowUp"||h.key==="ArrowDown"||h.key==="ArrowLeft"||h.key==="ArrowRight",i=(h.ctrlKey||h.metaKey)&&(h.key==="Home"||h.key==="End");if(S){if(X==="origin"){if(_>=0){let r=U.dataManager.getItem(_);if(r)O=t0(O,r.id,q)}}else{let r=U.dataManager.getItem(O.focusedIndex);if(r)O=t0(O,r.id,q)}K=O.focusedIndex,F=!1}else if(i){let r=U.getAllLoadedItems(),J0=_>=0?_:O.focusedIndex;O=EJ(O,r,J0,O.focusedIndex,q),K=O.focusedIndex,F=!1}}if(j&&q==="single"&&F&&O.focusedIndex>=0){let S=U.dataManager.getItem(O.focusedIndex);if(S)O=i0(O,[S.id],q);F=!1}if(b){h.preventDefault(),Z=O;let S=Z.focusedIndex;if(S>=0)D(S),y.root.setAttribute("aria-activedescendant",`${I}-item-${S}`);else y.root.removeAttribute("aria-activedescendant");if(F){let{selected:i}=Z;if(_>=0&&_!==S){let r=U.dataManager.getItem(_);if(r)U.renderer.updateItemClasses(_,i.has(r.id),!1)}if(S>=0){let r=U.dataManager.getItem(S);if(r)U.renderer.updateItemClasses(S,i.has(r.id),!0)}}else P();if(S>=0&&S!==_){let i=U.dataManager.getItem(S);if(i)G.emit("focus:change",{id:i.id,index:S})}}});U.methods.set("select",(...h)=>{if(Z=i0(Z,h,q),h.length>0){let W=T.get(h[0]);if(W===void 0)z(),W=T.get(h[0]);if(W!==void 0)Z=l0(Z,W)}P()}),U.methods.set("deselect",(...h)=>{Z=yJ(Z,h),P()}),U.methods.set("toggleSelect",(h)=>{Z=t0(Z,h,q),P()}),U.methods.set("selectAll",()=>{if(q!=="multiple")return;let h=U.getAllLoadedItems();Z=zJ(Z,h,q),z(),P()}),U.methods.set("clearSelection",()=>{Z=CJ(Z),P()}),U.methods.set("getSelected",()=>{return OJ(Z)}),U.methods.set("getSelectedItems",()=>{return AJ(Z,(W)=>{let _=T.get(W);return _===void 0?void 0:U.dataManager.getItem(_)})});let m=(h)=>{let W=U.dataManager.getTotal();if(W===0)return;if($(),w){let O=h==="next"?"ArrowDown":"ArrowUp",S=w(Z.focusedIndex,O,W);Z=l0(Z,S)}else{let{ud:O}=L();Z=h==="next"?MJ(Z,W,M.wrap,O):DJ(Z,W,M.wrap,O)}let _=h==="next"?1:-1;Z.focusedIndex=A(Z.focusedIndex,_,W);let b=Z.focusedIndex,F=U.dataManager.getItem(b);if(!F)return;Z=i0(Z,[F.id],q),D(b),P()};U.methods.set("selectNext",()=>{m("next")}),U.methods.set("selectPrevious",()=>{m("previous")}),U.methods.set("_focusById",(h)=>{let W=T.get(h);if(W!==void 0){let b=U.dataManager.getItem(W);if(!b||b.id!==h)W=void 0}if(W===void 0){if(z(),W=T.get(h),W===void 0)return}Z=l0(Z,W);let _=U.dataManager.getItem(W);if(_)G.emit("focus:change",{id:_.id,index:W})}),U.methods.set("_getFocusedId",()=>{let h=Z.focusedIndex;if(h<0)return;return U.dataManager.getItem(h)?.id}),U.destroyHandlers.push(()=>{if(e&&e.parentNode)e.remove();y.root.removeEventListener("focusin",d),y.root.removeEventListener("focusout",n)})},destroy(){if(V&&V.parentNode)V.remove();V=null}}};var f6=(J)=>{try{let q=sessionStorage.getItem(J);if(!q)return;return JSON.parse(q)}catch{return}},aJ=(J)=>{let q=J?.autoSave,j=q?f6(q):J?.restore;return{name:"withSnapshots",priority:50,methods:["getScrollSnapshot","restoreScroll"],setup(Q){Q.methods.set("getScrollSnapshot",()=>{let Z=Q.scrollController.getScrollTop(),V=Q.getCachedCompression(),K=Q.getVirtualTotal(),U=Q.methods.get("getSelected"),y=U&&U().length>0?U():void 0;if(K===0){let T={index:0,offsetInItem:0,total:0};if(y)T.selectedIds=y;return T}let G,M;if(V.isCompressed&&V.ratio!==1){let z=Z/V.virtualSize*K;G=Math.max(0,Math.min(Math.floor(z),K-1)),M=(z-G)*Q.sizeCache.getSize(G)}else G=Q.sizeCache.indexAtOffset(Z),M=Z-Q.sizeCache.getOffset(G);M=Math.max(0,M);let v={index:G,offsetInItem:M,total:K,scrollTop:Z},I=Q.sizeCache.getSize(G);if(I>0)v.offsetRatio=M/I;let E=Q.methods.get("_layoutToDataIndex");if(E){let T=E(G);if(T>=0)v.dataIndex=T}let k=Q.methods.get("_getTotal");if(k)v.dataTotal=k();if(y)v.selectedIds=y;let A=Q.methods.get("_getFocusedId");if(A){let T=A();if(T!==void 0)v.focusedId=T}return v});let X=(Z)=>{let{index:V,offsetInItem:K,selectedIds:U,focusedId:y}=Z,G=Q.getVirtualTotal(),M=Z.dataTotal??Z.total;if(G===0&&M&&M>0){Q.dataManager.setTotal(M);let w=Q.getVirtualTotal();Q.sizeCache.rebuild(w),Q.updateCompressionMode();let f=Q.getCachedCompression();if(!f.isCompressed)Q.updateContentSize(f.virtualSize)}else if(G===0)return;if(!Number.isFinite(V)||!Number.isFinite(K))return;let v=Q.getVirtualTotal();if(Q.sizeCache.getTotal()!==v){Q.sizeCache.rebuild(v),Q.updateCompressionMode();let w=Q.getCachedCompression();if(!w.isCompressed)Q.updateContentSize(w.virtualSize)}let E=Q.getCachedCompression(),k=Q.methods.get("_dataToLayoutIndex"),A=V;if(Z.dataIndex!==void 0&&Z.dataIndex>=0)A=k?k(Z.dataIndex):Z.dataIndex;else if(k)A=k(V);let T=Math.max(0,Math.min(A,v-1)),z=Q.sizeCache.getSize(T),H=Z.offsetRatio!==void 0?Z.offsetRatio*z:Math.min(K,z),P;if(E.isCompressed&&E.ratio!==1){let w=z>0?H/z:0;P=(T+w)/v*E.virtualSize}else P=Q.sizeCache.getOffset(T)+H;let x=Q.state.viewportState.containerSize,R=E.isCompressed?Q.state.viewportState.totalSize:E.virtualSize,c=Math.max(0,R-x);if(P=Math.max(0,Math.min(P,c)),Q.scrollController.scrollTo(P),U&&U.length>0){let w=Q.methods.get("select");if(w)w(...U)}let s=Q.methods.get("loadVisibleRange"),p=()=>{if(y===void 0)return;let w=Q.methods.get("_focusById");if(w)w(y)};if(s){let f=0,g=P,$=()=>{f++;let L=Q.state.viewportState.containerSize,D=Q.scrollController.getScrollTop();if(L>0){if(Math.abs(D-g)>1)Q.scrollController.scrollTo(g);s().then(p)}else if(f<10)requestAnimationFrame($)};requestAnimationFrame($)}else{let w=Q.methods.get("reload");if(w)requestAnimationFrame(()=>{w().then(p)});else requestAnimationFrame(p)}};Q.methods.set("restoreScroll",X);let Y=!!j&&!!q,B=null;if(q){B=()=>{if(Y)return;let K=Q.methods.get("getScrollSnapshot");if(!K)return;let U=K();try{sessionStorage.setItem(q,JSON.stringify(U))}catch{}};let Z=0,V=()=>{if(Z)return;Z=requestAnimationFrame(()=>{Z=0,B()})};if(Q.idleHandlers.push(V),Q.emitter.on("selection:change",V),Q.emitter.on("focus:change",V),j&&j.total&&j.total>0){let K=Q.methods.get("_cancelAutoLoad");if(K)K();Q.dataManager.setTotal(j.total)}}if(j){let Z=!1;if(j.selectedIds&&j.selectedIds.length>0){let K=Q.methods.get("_seedSelection");if(K)K(j.selectedIds),Z=!0}let V=Z?(({selectedIds:K,...U})=>U)(j):j;queueMicrotask(()=>{if(X(V),Y=!1,B)B()})}}}};var o4=(J,q=50,j=1/0,Q=!0)=>{let X=J,Y=[],B=0,Z=()=>{Y=X.map((E,k)=>({def:E,index:k,width:0,minWidth:h6(E.minWidth??q,1),maxWidth:E.maxWidth??j,resizable:E.resizable??Q,offset:0}))},V=(E)=>{if(Y.length===0){B=0;return}let k=0,A=0;for(let T=0;T<Y.length;T++){let z=Y[T],H=z.def;if(H.width!==void 0)z.width=oJ(H.width,z.minWidth,z.maxWidth),k+=z.width;else A++}if(A>0){let z=Math.max(0,E-k)/A;for(let H=0;H<Y.length;H++){let P=Y[H];if(P.def.width===void 0)P.width=oJ(z,P.minWidth,P.maxWidth)}}K()},K=()=>{let E=0;for(let k=0;k<Y.length;k++){let A=Y[k];A.offset=E,E+=A.width}B=E},U=(E,k)=>{if(E<0||E>=Y.length)return 0;let A=Y[E];if(!A.resizable)return A.width;let T=oJ(k,A.minWidth,A.maxWidth);return A.width=T,K(),T},y=(E)=>{return Y[E]},G=(E)=>{if(Y.length===0)return;if(E<0)return Y[0];if(E>=B)return Y[Y.length-1];let k=0,A=Y.length-1;while(k<A){let T=k+A>>>1,z=Y[T];if(E<z.offset)A=T-1;else if(E>=z.offset+z.width)k=T+1;else return z}return Y[k]},M=(E)=>{if(E<0||E>=Y.length)return 0;return Y[E].offset},v=(E)=>{if(E<0||E>=Y.length)return 0;return Y[E].width},I=(E)=>{X=E,Z()};return Z(),{get columns(){return Y},get totalWidth(){return B},resolve:V,updateColumns:I,resizeColumn:U,getColumn:y,getColumnAtX:G,getColumnOffset:M,getColumnWidth:v}},oJ=(J,q,j)=>Math.min(j,Math.max(q,J)),h6=(J,q)=>Math.max(q,J);var n4=(J,q,j,Q,X,Y)=>{let B=document.createElement("div");B.setAttribute("role","rowgroup");let Z=document.createElement("div");Z.className=`${j}-table-header`,Z.setAttribute("role","row"),Z.setAttribute("aria-rowindex","1"),Z.style.height=`${q}px`;let V=document.createElement("div");V.className=`${j}-table-header-scroll`,V.setAttribute("role","presentation"),Z.appendChild(V),B.appendChild(Z),J.insertBefore(B,J.firstChild),J.style.setProperty("--vlist-table-header-height",`${q}px`);let K=[],U=[],y=[],G=!0,M=null,v="asc",I=null,E=!1,k=-1,A=0,T=0,z=(L,D)=>{let u=document.createElement("div");u.className=`${j}-table-header-cell`,u.setAttribute("role","columnheader"),u.setAttribute("aria-colindex",String(D+1)),u.dataset.columnKey=L.def.key;let o=L.def.align;if(o==="center")u.classList.add(`${j}-table-header-cell--center`);else if(o==="right")u.classList.add(`${j}-table-header-cell--right`);let e=document.createElement("div");e.className=`${j}-table-header-content`;let d=L.def.header?L.def.header(L.def):L.def.label;if(typeof d==="string")e.textContent=d;else e.appendChild(d);if(u.appendChild(e),L.def.sortable){let n=document.createElement("span");n.className=`${j}-table-header-sort`,n.setAttribute("aria-hidden","true"),u.appendChild(n),y.push(n),u.classList.add(`${j}-table-header-cell--sortable`)}else y.push(null);if(L.resizable){let n=document.createElement("div");n.className=`${j}-table-header-resize`,n.dataset.resizeIndex=String(D),u.appendChild(n),U.push(n)}return u},H=(L)=>{I=L,V.textContent="",K=[],U=[],y=[];let D=L.columns;for(let u=0;u<D.length;u++){let o=D[u],e=z(o,u);K.push(e),V.appendChild(e)}if(P(L),M)x(M,v)},P=(L)=>{I=L;let D=L.columns;V.style.width=`${L.totalWidth}px`;for(let u=0;u<K.length&&u<D.length;u++){let o=K[u],e=D[u];o.style.width=`${e.width}px`}},x=(L,D)=>{if(M=L,v=D,!I)return;let u=I.columns;for(let o=0;o<y.length&&o<u.length;o++){let e=y[o];if(!e)continue;if(u[o].def.key===L&&L!==null)e.textContent=D==="asc"?"▲":"▼",e.style.opacity="0.7",K[o].setAttribute("aria-sort",D==="asc"?"ascending":"descending");else e.textContent="",e.style.opacity="0",K[o].removeAttribute("aria-sort")}},R=(L)=>{V.style.transform=`translateX(${-L}px)`},c=(L)=>{let D=L.target;if(!D.dataset.resizeIndex)return;if(L.preventDefault(),L.stopPropagation(),k=parseInt(D.dataset.resizeIndex,10),!I)return;let u=I.getColumn(k);if(!u||!u.resizable)return;E=!0,A=L.clientX,T=u.width,J.classList.add(`${j}--col-resizing`),J.style.cursor="col-resize",D.classList.add(`${j}-table-header-resize--active`),D.setPointerCapture(L.pointerId),D.addEventListener("pointermove",s),D.addEventListener("pointerup",p),D.addEventListener("pointercancel",p)},s=(L)=>{if(!E||!I)return;let D=L.clientX-A;if(Math.abs(D)<1)return;let u=Math.max(0,T+D);Q(k,u)},p=(L)=>{if(!E)return;let D=L.target;D.removeEventListener("pointermove",s),D.removeEventListener("pointerup",p),D.removeEventListener("pointercancel",p);try{D.releasePointerCapture(L.pointerId)}catch{}D.classList.remove(`${j}-table-header-resize--active`),J.classList.remove(`${j}--col-resizing`),J.style.cursor="",E=!1,k=-1},w=(L)=>{let D=L.target;if(D.dataset.resizeIndex!==void 0)return;if(E)return;let u=D;while(u&&!u.dataset.columnKey)if(u=u.parentElement,u===Z||u===null)return;if(!u||!u.dataset.columnKey)return;let o=u.dataset.columnKey;if(!I)return;let e=I.columns,d=-1;for(let C=0;C<e.length;C++)if(e[C].def.key===o){d=C;break}if(d===-1)return;let n=e[d];if(Y)Y({key:o,index:d,event:L});if(n.def.sortable&&X){let C;if(M===o)if(v==="asc")C="desc";else C=null;else C="asc";X({key:o,index:d,direction:C})}};return Z.addEventListener("pointerdown",c),Z.addEventListener("click",w),{element:Z,update:P,updateSort:x,rebuild:H,show:()=>{if(G)return;G=!0,Z.style.display=""},hide:()=>{if(!G)return;G=!1,Z.style.display="none"},destroy:()=>{Z.removeEventListener("pointerdown",c),Z.removeEventListener("click",w),J.style.removeProperty("--vlist-table-header-height"),B.remove(),K=[],U=[],y=[],I=null,G=!1},syncScroll:R}};var I6=()=>{let J=[];return{acquire:()=>J.pop()||document.createElement("div"),release:(q)=>{if(q.parentNode?.removeChild(q),J.length<200)q.className="",q.removeAttribute("data-id"),q.removeAttribute("data-index"),q.removeAttribute("aria-selected"),q.removeAttribute("aria-rowindex"),q.removeAttribute("role"),q.style.cssText="",q.textContent="",J.push(q)},clear:()=>{J.length=0}}},i4=(J,q,j,Q,X,Y,B,Z,V)=>{let K=I6(),U=new Map,y=-1,G=j,M=null,v=null,I=null,E=(F,O)=>{v=F,I=O},k=(F,O)=>{if(O)F.setAttribute("aria-selected","true");else F.removeAttribute("aria-selected")},A=(F,O,S,i)=>{F.setAttribute("role",O),F.setAttribute("data-id",String(S)),F.setAttribute("data-index",String(i))},T=(F)=>String(F).startsWith("__placeholder_"),z=`${X}-item ${X}-table-row`,H=`${X}-item--selected`,P=`${X}-item--focused`,x=`${X}-table-cell`,R=`${X}-table-cell--center`,c=`${X}-table-cell--right`,s=`${X}-item--odd`,p=`${X}-item--placeholder`,w=`${X}-item--replaced`,f=`${X}-item ${X}-table-row ${X}-table-group-header`,g=`${X}-table-group-header-content`,$=(F,O,S,i,r=!1)=>{if(S.def.cell){let J0=S.def.cell(O,S.def,i);if(typeof J0==="string")F.innerHTML=J0;else F.replaceChildren(J0)}else{let J0=O[S.def.key],Z0=J0!=null?String(J0):"";if(r&&Z0)F.innerHTML=`<span>${Z0}</span>`;else F.textContent=Z0}},L=(F,O,S,i,r=!1)=>{let J0=z;if(Z){if(M){let Z0=M(O);if(Z0>=0&&(Z0&1)===1)J0+=` ${s}`}else if((O&1)===1)J0+=` ${s}`}if(r)J0+=` ${p}`;if(S)J0+=` ${H}`;if(i)J0+=` ${P}`;F.className=J0},D=(F,O,S)=>{if(S?.compression?.isCompressed)return Math.round(JJ(F,S.scrollPosition,O,S.totalItems,S.containerSize,S.compression,S.rangeStart));return O.getOffset(F)},u=(F,O)=>{let S=O.def.align;if(S==="center")F.classList.add(R),F.classList.remove(c);else if(S==="right")F.classList.add(c),F.classList.remove(R);else F.classList.remove(R,c)},o=(F,O)=>{let i=G.columns.length;if(O.length===i)return O;let r=[];for(let J0=0;J0<i;J0++){let Z0;if(J0<O.length)Z0=O[J0];else Z0=document.createElement("div"),Z0.className=x,F.appendChild(Z0);r.push(Z0)}for(let J0=i;J0<O.length;J0++)O[J0].remove();return r},e=(F,O,S,i)=>{let r=K.acquire(),J0=F,Z0=S.getSize(O),t=D(O,S,i);r.style.cssText=`width:${G.totalWidth}px;height:${Z0}px;transform:translateY(${t}px)`,r.className=f,A(r,"presentation",F.id,O),r.removeAttribute("aria-selected"),r.removeAttribute("aria-rowindex"),r.replaceChildren();let q0=document.createElement("div");if(q0.className=g,I){let j0=I(J0.groupKey,J0.groupIndex);if(typeof j0==="string")q0.innerHTML=j0;else q0.appendChild(j0)}return r.appendChild(q0),{element:r,cells:[],index:O,isGroupHeader:!0,lastItemId:F.id,lastSelected:!1,lastFocused:!1,lastOffset:t,lastHeight:Z0}},d=(F,O,S,i,r,J0)=>{let Z0=K.acquire(),t=r.getSize(O),q0=D(O,r,J0),j0=T(F.id);Z0.style.cssText=`width:${G.totalWidth}px;height:${t}px;transform:translateY(${q0}px)`,L(Z0,O,S,i,j0),A(Z0,"row",F.id,O),Z0.id=`${Y}-${O}`,Z0.setAttribute("aria-rowindex",String(O+2)),k(Z0,S);let W0=o(Z0,[]),D0=G.columns;for(let M0=0;M0<W0.length&&M0<D0.length;M0++){let A0=W0[M0],k0=D0[M0];A0.style.cssText=`left:${k0.offset}px;width:${k0.width}px`,A0.setAttribute("role","gridcell"),A0.setAttribute("aria-colindex",String(M0+1)),u(A0,k0),$(A0,F,k0,O,j0)}return{element:Z0,cells:W0,index:O,isGroupHeader:!1,lastItemId:F.id,lastSelected:S,lastFocused:i,lastOffset:q0,lastHeight:t}},n=(F,O,S,i,r)=>{for(let[j0,W0]of U)if(j0<O.start||j0>O.end)K.release(W0.element),U.delete(j0);let J0=!1,Z0=B();if(Z0!==y)y=Z0,J0=!0;let t=null,q0=q();M=typeof Z==="string"&&V?V():null;for(let j0=O.start;j0<=O.end;j0++){let W0=j0-O.start,D0=F[W0];if(!D0)continue;let M0=S.has(D0.id),A0=j0===i,k0=v?v(D0):!1,K0=U.get(j0);if(K0){if(K0.isGroupHeader!==k0){K.release(K0.element),U.delete(j0);let O0=k0?e(D0,j0,q0,r):d(D0,j0,M0,A0,q0,r);if(U.set(j0,O0),!t)t=document.createDocumentFragment();t.appendChild(O0.element);continue}if(k0){if(K0.lastItemId!==D0.id){let G0=D0,_0=K0.element.firstElementChild;if(_0&&I){let T0=I(G0.groupKey,G0.groupIndex);if(typeof T0==="string")_0.innerHTML=T0;else _0.replaceChildren(T0)}K0.element.setAttribute("data-id",String(D0.id)),K0.lastItemId=D0.id}let R0=D(j0,q0,r);if(K0.lastOffset!==R0)K0.lastOffset=R0,K0.element.style.transform=`translateY(${R0}px)`;let B0=q0.getSize(j0);if(K0.lastHeight!==B0)K0.lastHeight=B0,K0.element.style.height=`${B0}px`}else{let O0=K0.lastItemId!==D0.id,R0=K0.lastSelected!==M0,B0=K0.lastFocused!==A0;if(O0){let T0=K0.lastItemId!=null&&T(K0.lastItemId),H0=T(D0.id);if(!H0&&g0(S,j0,D0.id))M0=!0;let w0=G.columns;for(let P0=0;P0<K0.cells.length&&P0<w0.length;P0++)$(K0.cells[P0],D0,w0[P0],j0,H0);if(L(K0.element,j0,M0,A0,H0),K0.element.setAttribute("data-id",String(D0.id)),k(K0.element,M0),T0&&!H0)K0.element.classList.add(w),setTimeout(()=>{K0.element.classList.remove(w)},300);K0.lastItemId=D0.id,K0.lastSelected=M0,K0.lastFocused=A0}else if(R0||B0)L(K0.element,j0,M0,A0,T(D0.id)),k(K0.element,M0),K0.lastSelected=M0,K0.lastFocused=A0;let G0=D(j0,q0,r);if(K0.lastOffset!==G0)K0.lastOffset=G0,K0.element.style.transform=`translateY(${G0}px)`;let _0=q0.getSize(j0);if(K0.lastHeight!==_0)K0.lastHeight=_0,K0.element.style.height=`${_0}px`;if(J0)K0.element.setAttribute("aria-rowindex",String(j0+2))}}else{if(g0(S,j0,D0.id))M0=!0;let O0=k0?e(D0,j0,q0,r):d(D0,j0,M0,A0,q0,r);if(U.set(j0,O0),!t)t=document.createDocumentFragment();t.appendChild(O0.element)}}if(t)J.appendChild(t)},C=(F)=>{let O=q();for(let[S,i]of U){let r=D(S,O,F);if(i.lastOffset!==r)i.lastOffset=r,i.element.style.transform=`translateY(${r}px)`}},N=(F,O,S,i)=>{let r=U.get(F);if(!r)return;if(r.isGroupHeader)return;let J0=G.columns;for(let Z0=0;Z0<r.cells.length&&Z0<J0.length;Z0++)$(r.cells[Z0],O,J0[Z0],F);r.element.setAttribute("data-id",String(O.id)),r.lastItemId=O.id,L(r.element,F,S,i),k(r.element,S),r.lastSelected=S,r.lastFocused=i},m=(F,O,S)=>{let i=U.get(F);if(!i)return;if(i.isGroupHeader)return;let r=i.lastSelected!==O,J0=i.lastFocused!==S;if(r||J0)L(i.element,F,O,S),k(i.element,O),i.lastSelected=O,i.lastFocused=S},h=(F)=>{G=F;let O=F.columns;for(let[,S]of U)if(S.element.style.width=`${F.totalWidth}px`,S.cells.length>0)for(let i=0;i<S.cells.length&&i<O.length;i++){let r=S.cells[i],J0=O[i];r.style.left=`${J0.offset}px`,r.style.width=`${J0.width}px`}},W=(F)=>{return U.get(F)?.element},_=()=>{for(let[,F]of U)K.release(F.element);U.clear(),y=-1};return{render:n,updatePositions:C,updateItem:N,updateItemClasses:m,getElement:W,updateColumnLayout:h,setGroupHeaderFn:E,clear:_,destroy:()=>{_(),K.clear()}}};var p6=new Set,nJ=(J)=>{if(!J.columns||J.columns.length===0)throw Error("[vlist] withTable: columns must be a non-empty array");if(J.rowHeight===void 0&&J.estimatedRowHeight===void 0)throw Error("[vlist] withTable: either rowHeight or estimatedRowHeight is required");let q=null,j=null,Q=null;return{name:"withTable",priority:10,conflicts:["withGrid","withMasonry"],setup(X){let{dom:Y,emitter:B,config:Z}=X,{classPrefix:V}=Z;if(Z.horizontal)throw Error("[vlist] withTable cannot be used with orientation: 'horizontal'");if(Z.reverse)throw Error("[vlist] withTable cannot be used with reverse: true");let K=J.resizable??!0,U=J.minColumnWidth??50,y=J.maxColumnWidth??1/0,G=J.columnBorders??!1,M=J.rowBorders??!0,v=J.rowHeight,I=X.rawConfig.padding,E=!I?0:typeof I==="number"?I*2:I.length===2?I[1]*2:I[1]+I[3],k=J.headerHeight??(typeof v==="number"?v:40),A=J.sort?.key??null,T=J.sort?.direction??"asc";if(q=o4(J.columns,U,y,K),typeof v==="function")X.setSizeConfig(v);else if(typeof v==="number")X.setSizeConfig(v);if(X.rebuildSizeCache(),Y.root.classList.add(`${V}--table`),M)Y.root.classList.add(`${V}--table-row-borders`);if(G)Y.root.classList.add(`${V}--table-col-borders`);Y.root.setAttribute("role","grid"),Y.root.setAttribute("aria-colcount",String(J.columns.length));let z=-1,H=Y.items.getAttribute("aria-label");if(H)Y.root.setAttribute("aria-label",H),Y.items.removeAttribute("aria-label");Y.items.setAttribute("role","rowgroup"),Y.viewport.setAttribute("role","none"),Y.content.setAttribute("role","none"),Y.viewport.removeAttribute("tabindex");let P=X.getContainerWidth()-E;q.resolve(P);let x=(W,_)=>{if(!q)return;let b=q.getColumn(W);if(!b)return;let F=b.width,O=q.resizeColumn(W,_);if(j)j.update(q);if(Q)Q.updateColumnLayout(q);s(),B.emit("column:resize",{key:b.def.key,index:W,previousWidth:F,width:O})},R=(W)=>{if(W.direction===null)A=null,T="asc";else A=W.key,T=W.direction;if(j)j.updateSort(A,T);B.emit("column:sort",W)},c=(W)=>{B.emit("column:click",W)};if(j=n4(Y.root,k,V,x,R,c),j.rebuild(q),A)j.updateSort(A,T);let s=()=>{if(!q)return;let W=q.totalWidth;Y.content.style.minWidth=`${W}px`,Y.items.style.minWidth=`${W}px`};s(),Q=i4(Y.items,()=>X.sizeCache,q,J.columns,V,Z.ariaIdPrefix,()=>X.dataManager.getTotal(),X.rawConfig.item?.striped,()=>X.getStripeIndexFn());let p=null,w=null,f=!1,g=()=>{if(f)return;f=!0,p=X.methods.get("_getSelectedIds")??null,w=X.methods.get("_getFocusedIndex")??null},$=-1,L=-1,D=-1,u=!0,o=Z.overscan,e={start:0,end:0},d={start:0,end:0},n=()=>{if(X.state.isDestroyed)return;let W=X.scrollController.getScrollTop(),_=X.state.viewportState.containerSize,b=X.getVirtualTotal(),F=X.state.viewportState.isCompressed;if(!u&&W===$&&_===L&&b===D)return;$=W,L=_,D=b,u=!1;let O=b+1;if(O!==z)z=O,Y.root.setAttribute("aria-rowcount",String(O));X.getVisibleRange(W,_,b,e),d.start=Math.max(0,e.start-o),d.end=Math.min(b-1,e.end+o);let S=X.state.viewportState;S.scrollPosition=W,S.visibleRange.start=e.start,S.visibleRange.end=e.end,S.renderRange.start=d.start,S.renderRange.end=d.end;let i=X.state.lastRenderRange,r=i.start!==d.start||i.end!==d.end;if(!r&&F){Q.updatePositions(X.getCompressionContext());return}if(!r)return;let J0=F?X.getCompressionContext():void 0,Z0=X.dataManager.getItemsInRange(d.start,d.end);g();let t=p?p():p6,q0=w?w():-1;Q.render(Z0,d,t,q0,J0),i.start=d.start,i.end=d.end,B.emit("range:change",{range:{start:d.start,end:d.end}})},C=()=>{if(X.state.isDestroyed)return;X.state.lastRenderRange.start=-1,X.state.lastRenderRange.end=-1,u=!0,n()};X.setRenderFns(n,C),X.setUpdateItemClassesFn((W,_,b)=>{Q?.updateItemClasses(W,_,b)});let N=j,m=-1,h=()=>{let W=Y.viewport.scrollLeft;if(W!==m){if(m=W,N.syncScroll)N.syncScroll(W)}};X.afterScroll.push(h),Y.viewport.addEventListener("scroll",h,{passive:!0}),X.resizeHandlers.push((W,_)=>{if(!q)return;if(q.resolve(W-E),j)j.update(q);if(Q)Q.updateColumnLayout(q);s()}),X.methods.set("updateColumns",(W)=>{if(!q||!j)return;if(q.updateColumns(W),q.resolve(X.getContainerWidth()-E),j.rebuild(q),A)j.updateSort(A,T);if(s(),Q)Q.updateColumnLayout(q),Q.clear();X.forceRender()}),X.methods.set("resizeColumn",(W,_)=>{if(!q)return;let b;if(typeof W==="string"){let F=q.columns;b=-1;for(let O=0;O<F.length;O++)if(F[O].def.key===W){b=O;break}if(b===-1)return}else b=W;x(b,_)}),X.methods.set("getColumnWidths",()=>{if(!q)return{};let W={},_=q.columns;for(let b=0;b<_.length;b++)W[_[b].def.key]=_[b].width;return W}),X.methods.set("setSort",(W,_)=>{if(A=W,T=_??"asc",j)j.updateSort(A,T)}),X.methods.set("getSort",()=>{return{key:A,direction:T}}),X.methods.set("_getTableLayout",()=>q),X.methods.set("_updateRenderedItem",(W,_,b,F)=>{Q?.updateItem(W,_,b,F)}),X.methods.set("_replaceTableRenderer",(W)=>{Q=W}),X.methods.set("_updateTableForGroups",(W,_)=>{if(Q)Q.setGroupHeaderFn(W,_)}),X.methods.set("_getTableHeaderHeight",()=>k),X.keydownHandlers.push((W)=>{if(W.key!=="ArrowLeft"&&W.key!=="ArrowRight")return;if(!q)return;let _=q.columns;if(_.length===0)return;let b=Y.viewport.clientWidth;if(q.totalWidth<=b)return;let F=Y.viewport.scrollLeft;if(W.key==="ArrowRight"){for(let O=0;O<_.length;O++)if(_[O].offset>F+1){Y.viewport.scrollLeft=_[O].offset,W.preventDefault();return}}else{for(let O=_.length-1;O>=0;O--)if(_[O].offset<F-1){Y.viewport.scrollLeft=_[O].offset,W.preventDefault();return}if(F>0)Y.viewport.scrollLeft=0,W.preventDefault()}}),X.contentSizeHandlers.push(()=>{s()}),X.destroyHandlers.push(()=>{if(Y.viewport.removeEventListener("scroll",h),j)j.destroy(),j=null;if(Q)Q.destroy(),Q=null;Y.content.style.minWidth="",Y.items.style.minWidth="",Y.root.classList.remove(`${V}--table`),Y.root.removeAttribute("role"),Y.root.removeAttribute("aria-colcount"),Y.viewport.removeAttribute("role"),Y.viewport.setAttribute("tabindex","-1"),Y.content.removeAttribute("role");let W=Y.root.getAttribute("aria-label");if(W)Y.items.setAttribute("aria-label",W),Y.root.removeAttribute("aria-label");Y.root.removeAttribute("aria-rowcount"),Y.items.setAttribute("role","listbox")})},destroy(){if(j)j.destroy(),j=null;if(Q)Q.destroy(),Q=null}}};var iJ=(J)=>{let q=J?.handle??null,j=J?.ghostClass??"vlist-sort-ghost",Q=J?.shiftDuration??150,X=J?.edgeScrollZone??40,Y=J?.edgeScrollSpeed??20,B=J?.dragThreshold??5,Z=J?.ghostContainer??null;return{name:"withSortable",priority:55,methods:["isSorting"],conflicts:["withGrid","withMasonry","withTable","withScale"],setup(V){let{dom:K,emitter:U,config:y}=V,{classPrefix:G}=y,M=y.horizontal,v=M?"translateX":"translateY",I=Q>0?`transform ${Q}ms ease`:"none",E=!1,k=-1,A=-1,T=0,z=0,H=0,P=0,x=!1,R=null,c=0,s=null,p=0,w=0,f=0,g=null;V.methods.set("isSorting",()=>E||r);let $=(a)=>{return a.closest("[data-index]")},L=(a)=>{let X0=a.dataset.index;return X0===void 0?-1:+X0},D=(a)=>{let X0=a.getBoundingClientRect(),U0=a.cloneNode(!0);return U0.className=`${G}-item ${j}`,U0.removeAttribute("data-index"),U0.style.cssText=["position:fixed","pointer-events:none","z-index:10000",`width:${X0.width}px`,`height:${X0.height}px`,`left:${X0.left}px`,`top:${X0.top}px`,"transition:none","will-change:transform"].join(";"),(Z||document.body).appendChild(U0),U0},u=()=>{if(!R)return;let a=H-w,X0=P-f;R.style.left=`${a}px`,R.style.top=`${X0}px`},o=()=>{let a=V.dataManager.getTotal();if(a===0)return 0;let X0=K.viewport.getBoundingClientRect(),U0=V.scrollController.getScrollTop(),N0=M?H-w-X0.left+K.viewport.scrollLeft+U0:P-f-X0.top+U0,V0=N0+p,E0=V.sizeCache.getOffset(k)+V.sizeCache.getSize(k);if(V0>E0){let L0=V.sizeCache.indexAtOffset(V0),I0=V.sizeCache.getOffset(L0)+V.sizeCache.getSize(L0)/2,p0=V0>I0?L0:L0-1;return Math.min(Math.max(p0,k),a-1)}let b0=V.sizeCache.getOffset(k);if(N0<b0){let L0=V.sizeCache.indexAtOffset(N0),I0=V.sizeCache.getOffset(L0)+V.sizeCache.getSize(L0)/2,p0=N0<I0?L0:L0+1;return Math.max(Math.min(p0,k),0)}return k},e=()=>{let a=K.items.children,X0=p;for(let U0=0;U0<a.length;U0++){let N0=a[U0],V0=L(N0);if(V0<0||V0===k)continue;let E0=0;if(A>k){if(V0>k&&V0<=A)E0=-X0}else if(A<k){if(V0>=A&&V0<k)E0=X0}let b0=V.sizeCache.getOffset(V0),L0=Math.round(b0+E0);N0.style.transition=I,N0.style.transform=`${v}(${L0}px)`}},d=()=>{let a=K.items.children;for(let X0=0;X0<a.length;X0++){let U0=a[X0],N0=L(U0);if(N0>=0)U0.style.transform=`${v}(${Math.round(V.sizeCache.getOffset(N0))}px)`;U0.style.transition=""}},n=()=>{let a=o();if(a===A)return;A=a,e(),U.emit("sort:move",{fromIndex:k,currentIndex:A})},C=!1,N=()=>{let a=K.viewport.getBoundingClientRect();if(M)return H<a.left||H>a.right;return P<a.top||P>a.bottom},m=()=>{let a=()=>{if(!E)return;let X0=K.viewport.getBoundingClientRect(),U0=0,N0=3;if(M){let E0=H-X0.left,b0=X0.right-H;if(E0<X){let L0=Math.min(N0,1-E0/X);U0=-Y*L0*L0}else if(b0<X){let L0=Math.min(N0,1-b0/X);U0=Y*L0*L0}}else{let E0=P-X0.top,b0=X0.bottom-P;if(E0<X){let L0=Math.min(N0,1-E0/X);U0=-Y*L0*L0}else if(b0<X){let L0=Math.min(N0,1-b0/X);U0=Y*L0*L0}}let V0=N();if(U0!==0){let E0=V.scrollController.getScrollTop(),b0=V.sizeCache.getTotalSize()-(M?K.viewport.clientWidth:K.viewport.clientHeight);if(U0<0&&E0<=0||U0>0&&E0>=b0)C=V0;else C=!0,V.scrollController.scrollTo(E0+U0)}else C=V0;c=requestAnimationFrame(a)};c=requestAnimationFrame(a)},h=()=>{if(c)cancelAnimationFrame(c),c=0},W=(a=!1)=>{if(E=!1,x=!1,R&&R.parentNode)R.remove();R=null,s=null;let X0=`${G}-item--drag-source`,U0=K.items.children;for(let V0=0;V0<U0.length;V0++){let E0=U0[V0];E0.classList.remove(X0);let b0=L(E0);if(b0>=0)E0.style.transform=`${v}(${Math.round(V.sizeCache.getOffset(b0))}px)`;E0.style.transition=""}h(),K.root.classList.remove(`${G}--sorting`),document.body.style.cursor="";let N0=window.getSelection();if(N0)N0.removeAllRanges();if(document.removeEventListener("pointermove",b),document.removeEventListener("pointerup",O),document.removeEventListener("pointercancel",i),!a)V.forceRender()},_=(a)=>{if(V.state.isDestroyed)return;if(E)return;if(r)R0();if(a.button!==0)return;let X0=a.target;if(q){if(!X0.closest(q))return}let U0=$(X0);if(!U0)return;let N0=L(U0);if(N0<0)return;T=a.clientX,z=a.clientY,H=a.clientX,P=a.clientY,k=N0,x=!1,s=U0;let V0=U0.getBoundingClientRect();w=a.clientX-V0.left,f=a.clientY-V0.top,document.addEventListener("pointermove",b),document.addEventListener("pointerup",O),document.addEventListener("pointercancel",i)},b=(a)=>{if(H=a.clientX,P=a.clientY,!x){let X0=H-T,U0=P-z;if(Math.sqrt(X0*X0+U0*U0)<B)return;if(x=!0,E=!0,A=k,K.root.classList.add(`${G}--sorting`),document.body.style.cursor="grabbing",p=V.sizeCache.getSize(k),s)R=D(s),s.classList.add(`${G}-item--drag-source`);let V0=j0();if(V0>=0){let E0=V.dataManager.getItem(V0);g=E0?E0.id:null}else g=null;U.emit("sort:start",{index:k}),m()}if(E){if(a.preventDefault(),u(),!C)n();else if(N()){if(A!==k)A=k,d()}}},F=(a,X0)=>{let U0=a!==X0&&a>=0&&X0>=0,N0=()=>{if(E=!1,U0){if(K.root.classList.add(`${G}--settling`),U.emit("sort:end",{fromIndex:a,toIndex:X0}),g!==null)W0(g);W(!0),requestAnimationFrame(()=>{K.root.classList.remove(`${G}--settling`)})}else K.root.classList.add(`${G}--settling`),U.emit("sort:cancel",{originalItems:V.getAllLoadedItems()}),W(!1),requestAnimationFrame(()=>{K.root.classList.remove(`${G}--settling`)})};if(!R){N0();return}let V0=K.viewport.getBoundingClientRect(),E0=V.scrollController.getScrollTop(),b0=V.sizeCache.getOffset(X0),L0=Q>0?Q:150;if(R.style.transition=`left ${L0}ms ease, top ${L0}ms ease`,M)R.style.left=`${V0.left-K.viewport.scrollLeft+b0-E0}px`,R.style.top=`${V0.top}px`;else R.style.left=`${V0.left}px`,R.style.top=`${V0.top+b0-E0}px`;let I0=!1,p0=()=>{if(I0)return;I0=!0,R?.removeEventListener("transitionend",p0),N0()};R.addEventListener("transitionend",p0),setTimeout(p0,L0+50)},O=(a)=>{if(!x){document.removeEventListener("pointermove",b),document.removeEventListener("pointerup",O),document.removeEventListener("pointercancel",i),s=null;return}a.preventDefault(),document.removeEventListener("pointermove",b),document.removeEventListener("pointerup",O),document.removeEventListener("pointercancel",i),h(),F(k,A)},S=()=>{if(!x)return;document.removeEventListener("pointermove",b),document.removeEventListener("pointerup",O),document.removeEventListener("pointercancel",i),h(),d(),F(k,k)},i=()=>{S()};K.items.addEventListener("pointerdown",_);let r=!1,J0="",Z0=-1,t=-1,q0=[],j0=()=>{let a=V.methods.get("_getFocusedIndex");return a?a():-1},W0=(a)=>{let X0=V.methods.get("_focusById");if(X0)X0(a)},D0=(a)=>{let X0=M?K.viewport.clientWidth:K.viewport.clientHeight,U0=V.scrollController.getScrollTop(),N0=YJ(a,V.sizeCache,U0,X0);if(N0!==U0)V.scrollController.scrollTo(V.adjustScrollPosition(N0))},M0=(a)=>{K.liveRegion.textContent="",K.liveRegion.offsetHeight,K.liveRegion.textContent=a},A0=(a)=>{let X0=V.dataManager.getItem(a);if(!X0)return"";return K.items.querySelector(`[data-index="${a}"]`)?.textContent?.trim()||String(X0.id)},k0=()=>String(V.dataManager.getTotal()),K0=(a)=>{let X0=V.dataManager.getItem(a);if(!X0)return;r=!0,J0=X0.id,Z0=a,t=a;let U0=V.dataManager.getTotal();q0=[];for(let N0=0;N0<U0;N0++)q0.push(V.dataManager.getItem(N0));K.root.classList.add(`${G}--sorting`),U.emit("sort:start",{index:a}),T0(),M0(`Grabbed ${A0(a)}. Current position ${a+1} of ${k0()}. Use Up and Down arrow keys to move, Space to drop, Escape to cancel.`)},O0=()=>{if(!r)return;r=!1;let a=t,X0=A0(a),U0=K.items.children;for(let N0=0;N0<U0.length;N0++)U0[N0].style.transition="none";K.root.classList.remove(`${G}--sorting`),_0(),W0(J0),V.forceRender(),M0(`${X0} dropped. Final position ${a+1} of ${k0()}.`),q0=[],requestAnimationFrame(()=>{let N0=K.items.children;for(let V0=0;V0<N0.length;V0++)N0[V0].style.transition=""})},R0=()=>{if(!r)return;r=!1;let a=Z0,X0=K.items.children;for(let U0=0;U0<X0.length;U0++)X0[U0].style.transition="none";if(K.root.classList.remove(`${G}--sorting`),_0(),t!==a)U.emit("sort:cancel",{originalItems:q0});W0(J0),V.forceRender(),D0(a),M0(`Reorder cancelled. Returned to position ${a+1} of ${k0()}.`),q0=[],requestAnimationFrame(()=>{let U0=K.items.children;for(let N0=0;N0<U0.length;N0++)U0[N0].style.transition=""})},B0=(a)=>{if(!r)return;let X0=V.dataManager.getTotal(),U0=t+a;if(U0<0||U0>=X0)return;let N0=t,V0=U0,E0=K.items.children;for(let b0=0;b0<E0.length;b0++)E0[b0].style.transition="none";U.emit("sort:end",{fromIndex:N0,toIndex:V0}),t=V0,W0(J0),V.forceRender(),D0(V0),T0(),M0(`${A0(V0)} moved. New position ${V0+1} of ${k0()}.`),requestAnimationFrame(()=>{let b0=K.items.children;for(let L0=0;L0<b0.length;L0++)b0[L0].style.transition=""})},G0=`${G}-item--kb-sorting`,_0=()=>{let a=K.items.querySelectorAll(`.${G0}`);for(let X0=0;X0<a.length;X0++)a[X0].classList.remove(G0)},T0=()=>{_0();let a=K.items.querySelector(`[data-id="${J0}"]`);if(a)a.classList.add(G0)};V.afterRenderBatch.push(()=>{if(r)T0()});let H0=(a)=>{if(V.state.isDestroyed)return;if(E){if(a.key==="Escape")a.preventDefault(),a.stopImmediatePropagation(),S();return}if(r)switch(a.key){case" ":case"Enter":a.preventDefault(),a.stopImmediatePropagation(),O0();return;case"Escape":a.preventDefault(),a.stopImmediatePropagation(),R0();return;case"ArrowUp":case"ArrowLeft":a.preventDefault(),a.stopImmediatePropagation(),B0(-1);return;case"ArrowDown":case"ArrowRight":a.preventDefault(),a.stopImmediatePropagation(),B0(1);return;default:if(!a.key.startsWith("F")&&a.key!=="Tab")a.preventDefault(),a.stopImmediatePropagation();return}if(a.key===" "&&!a.shiftKey&&!a.ctrlKey&&!a.metaKey){let X0=j0();if(X0>=0)a.preventDefault(),a.stopImmediatePropagation(),K0(X0)}};K.root.addEventListener("keydown",H0);let w0=`${G}-sort-instructions`,P0=document.createElement("div");P0.id=w0,P0.style.cssText="position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0",P0.textContent="Press Space to reorder. Use arrow keys to move, Space to drop, Escape to cancel.",K.root.appendChild(P0),V.afterRenderBatch.push((a)=>{for(let X0=0;X0<a.length;X0++){let U0=a[X0].element;U0.setAttribute("aria-roledescription","sortable item"),U0.setAttribute("aria-describedby",w0)}}),V.afterRenderBatch.push((a)=>{if(!E)return;for(let X0=0;X0<a.length;X0++){let{index:U0,element:N0}=a[X0];if(U0===k)N0.classList.add(`${G}-item--drag-source`),s=N0;else{N0.classList.remove(`${G}-item--drag-source`);let V0=0;if(A>k){if(U0>k&&U0<=A)V0=-p}else if(A<k){if(U0>=A&&U0<k)V0=p}let E0=Math.round(V.sizeCache.getOffset(U0)+V0);N0.style.transform=`${v}(${E0}px)`}}}),V.destroyHandlers.push(()=>{if(r)R0();W(),K.items.removeEventListener("pointerdown",_),K.root.removeEventListener("keydown",H0),P0.remove()})}}};var t4=(J,q)=>{let j=new Map,Q=(Y)=>{let B=j.get(Y);return B!==void 0?B:J},X=c0(Q,q);return{getOffset(Y){return X.getOffset(Y)},getSize(Y){return Q(Y)},indexAtOffset(Y){return X.indexAtOffset(Y)},getTotalSize(){return X.getTotalSize()},getTotal(){return X.getTotal()},rebuild(Y){if(Y<X.getTotal()){for(let B of j.keys())if(B>=Y)j.delete(B)}X=c0(Q,Y)},isVariable(){return!0},setMeasuredSize(Y,B){j.set(Y,B)},isMeasured(Y){return j.has(Y)},getEstimatedSize(){return J},measuredCount(){return j.size}}};var tJ=()=>{let J=null;return{name:"withAutoSize",priority:5,setup(q){let j=q.config.horizontal,X=q.rawConfig.item,Y=j?X.estimatedWidth:X.estimatedHeight;if(Y==null||Y<=0)throw Error("[vlist/withAutoSize] Requires item.estimatedHeight (or item.estimatedWidth for horizontal)");let B=X.gap??0,Z=q.getVirtualTotal(),V=f0(q.rawConfig.padding),K=s0(V,j),U=t4(Y+B,Z),y=q.methods.get("_setSizeCache"),G=q.methods.get("_setConstrainSize");if(!y||!G)throw Error("[vlist/withAutoSize] Incompatible builder version");y(U),G((H)=>U.isMeasured(H));let M=new WeakMap,v=0,I=!1,E=2,k=(H)=>{let P=q.scrollController.getScrollTop(),x=q.state.viewportState.containerSize;if(x<=0)return!1;let R=Math.max(0,H+K-x);return P>=R-E},A=()=>{let H=U.getTotalSize(),P=q.state.viewportState.containerSize;if(P<=0)return;let x=Math.max(0,H+K-P),R=q.scrollController.getScrollTop();if(x>R)q.scrollController.scrollTo(x)},T=()=>{let H=U.getTotalSize();q.updateContentSize(H)},z=()=>{if(I){let H=q.dom.viewport,P=H.scrollHeight,x=P-H.clientHeight,R=q.scrollController.getScrollTop(),c=x>0&&R>=x-E,s=q.getVirtualTotal(),p=q.state.viewportState.renderRange.end,w=s>0&&p>=s-1,f=U.getTotalSize()+K,g=Math.abs(f-P),$=w&&x>0&&R>=x-g-E,L=c||$;if(T(),I=!1,L)H.scrollHeight,A(),q.forceRender()}};J=new ResizeObserver((H)=>{if(q.state.isDestroyed)return;let P=!1,x=q.state.viewportState.visibleRange.start;for(let D of H){let u=M.get(D.target);if(u===void 0)continue;let o=j?D.borderBoxSize[0].inlineSize:D.borderBoxSize[0].blockSize;if(!U.isMeasured(u)){let e=o+B,d=U.getSize(u);if(U.setMeasuredSize(u,e),P=!0,u<x&&e!==d)v+=e-d;J.unobserve(D.target);let n=D.target;if(j)n.style.width=`${o}px`;else n.style.height=`${o}px`}}if(!P)return;let R=U.getTotalSize();if(U.rebuild(q.getVirtualTotal()),v!==0){let D=q.scrollController.getScrollTop();q.scrollController.scrollTo(D+v),v=0}let c=k(R),s=q.getVirtualTotal(),p=q.state.viewportState.renderRange.end,w=s>0&&p>=s-1,f=q.dom.viewport,g=f.scrollHeight-f.clientHeight,$=q.scrollController.getScrollTop(),L=g>0&&$>=g-E;if(c||w||!q.scrollController.isScrolling()){if(T(),I=!1,c||w&&L)f.scrollHeight,A()}else I=!0;q.forceRender()}),q.afterRenderBatch.push((H)=>{for(let{index:P,element:x}of H)if(!U.isMeasured(P))M.set(x,P),J.observe(x)}),q.idleHandlers.push(z),q.destroyHandlers.push(()=>{if(J)J.disconnect(),J=null})},destroy(){if(J)J.disconnect(),J=null}}};var u6=50,g6=0.1;function e4(J){let q=0,j=0,Q=0;function X(){return Q>0?j/Q:0}function Y(V){if(q=V,V>g6&&V<u6)j+=V,Q++}function B(){let V=J.getTotal();if(V===0)return 0;let K=J.getItemSize();if(K<=0)return 0;let U=J.getContainerSize();if(U<=0)return 0;let y=J.getScrollPosition(),G=typeof J.getColumns==="function"?J.getColumns():1,v=Math.ceil(V/G)*K,E=Math.min(v,n0)-U,k=v-U,A=E>0?k/E:1,T=y*A,z=Math.ceil((T+U)/K);return Math.min(z*G,V)}function Z(){let V=J.getTotal(),K=B();return{progress:V>0?Math.min(100,Math.max(0,K/V*100)):0,velocity:q,velocityAvg:X(),itemCount:K,total:V}}return{getState:Z,onVelocity:Y}}export{nJ as withTable,iJ as withSortable,aJ as withSnapshots,sJ as withSelection,hJ as withScrollbar,IJ as withScale,uJ as withPage,rJ as withMasonry,dJ as withGroups,lJ as withGrid,tJ as withAutoSize,pJ as withAsync,fJ as vlist,e4 as createStats};
|
|
1
|
+
var _2=2,V2=(J=0)=>({velocity:0,sampleCount:0}),D2=(J,q)=>{let j=performance.now(),Q=J._lt??j,Y=J._lp??q,X=j-Q;if(J._lp=q,J._lt=j,X===0)return J.sampleCount=Math.min(J.sampleCount+1,5),J;if(X>100)return J.velocity=0,J.sampleCount=1,J;return J.velocity=Math.abs(q-Y)/X,J.sampleCount=Math.min(J.sampleCount+1,5),J};var AJ=(J,q)=>{let j=q;return{getOffset:(Q)=>Q*J,getSize:(Q)=>J,indexAtOffset:(Q)=>{if(j===0||J===0)return 0;return Math.max(0,Math.min(Math.floor(Q/J),j-1))},getTotalSize:()=>j*J,getTotal:()=>j,rebuild:(Q)=>{j=Q},isVariable:()=>!1}},EJ=(J,q)=>{let j=q,Q=new Float64Array(0),Y=(W)=>{j=W,Q=new Float64Array(W+1),Q[0]=0;for(let Z=0;Z<W;Z++)Q[Z+1]=Q[Z]+J(Z)};Y(q);let X=(W)=>{if(j===0)return 0;if(W<=0)return 0;if(W>=Q[j])return j-1;let Z=0,_=j-1;while(Z<_){let K=Z+_+1>>>1;if(Q[K]<=W)Z=K;else _=K-1}return Z};return{getOffset:(W)=>{if(W<=0)return 0;if(W>=j)return Q[j];return Q[W]},getSize:(W)=>J(W),indexAtOffset:(W)=>X(W),getTotalSize:()=>Q[j]??0,getTotal:()=>j,rebuild:(W)=>Y(W),isVariable:()=>!0}},c0=(J,q)=>{if(typeof J==="number")return AJ(J,q);return EJ(J,q)},G2=(J,q,j,Q)=>{if(Q===0)return 0;if(!J.isVariable())return Math.ceil(j/J.getSize(0));let Y=0,X=0,W=q;while(W<Q&&X<j)X+=J.getSize(W),Y++,W++;return Math.max(1,Y)};var M2=()=>{let J={},q=(X,W)=>{if(!J[X])J[X]=new Set;return J[X].add(W),()=>j(X,W)},j=(X,W)=>{J[X]?.delete(W)};return{on:q,off:j,emit:(X,W)=>{J[X]?.forEach((Z)=>{try{Z(W)}catch(_){console.error(`[vlist] Error in event handler for "${String(X)}":`,_)}})},clear:(X)=>{if(X)delete J[X];else for(let W in J)delete J[W]}}};var O2=(J)=>{if(typeof J==="string"){let q=document.querySelector(J);if(!q)throw Error(`[vlist] Container not found: ${J}`);return q}return J},Y1=(J,q)=>{let j=document.createElement("div");if(j.className=J,q)j.style.cssText=q;return j},A2=(J,q,j,Q,Y)=>{let X=Q,W=Y1(q);if(X)W.classList.add(`${q}--horizontal`);if(Y!==!1)W.setAttribute("tabindex","0");let Z=Y1(`${q}-viewport`,X?"overflow-x:auto;overflow-y:hidden;height:100%;width:100%":"overflow:auto;height:100%;width:100%");Z.setAttribute("tabindex","-1");let _=Y1(`${q}-content`,X?"position:relative;height:100%":"position:relative;width:100%"),K=Y1(`${q}-items`,X?"position:relative;height:100%":"position:relative;width:100%");if(K.setAttribute("role","listbox"),j)K.setAttribute("aria-label",j);if(X)K.setAttribute("aria-orientation","horizontal");let U=Y1(`${q}-live`,"position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0");return U.setAttribute("aria-live","polite"),U.setAttribute("aria-atomic","true"),U.setAttribute("role","status"),_.appendChild(K),Z.appendChild(_),W.appendChild(U),W.appendChild(Z),J.appendChild(W),{root:W,viewport:Z,content:_,items:K,liveRegion:U}};var E2=(J=100)=>{let q=[];return{acquire:()=>{let j=q.pop();if(j)return j;let Q=document.createElement("div");return Q.setAttribute("role","option"),Q},release:(j)=>{if(q.length<J)j.className="",j.textContent="",j.removeAttribute("style"),j.removeAttribute("data-index"),j.removeAttribute("data-id"),q.push(j)},clear:()=>{q.length=0}}};var L2=(J,q,j,Q,Y)=>{if(Q===0||q===0){Y.start=0,Y.end=-1;return}let X=j.indexAtOffset(J),W=j.indexAtOffset(J+q);if(W<Q-1)W++;Y.start=Math.max(0,X),Y.end=Math.min(Q-1,Math.max(0,W))},F2=(J,q,j,Q)=>{Q.start=Math.max(0,J.start-q),Q.end=Math.min(j-1,J.end+q)},T2=(J,q,j,Q,Y,X=0)=>{if(Q===0)return 0;let W=Math.max(0,Math.min(J,Q-1)),Z=q.getOffset(W),_=q.getSize(W),K=q.getTotalSize(),U=Math.max(0,K+X-j),S;switch(Y){case"center":S=Z-(j-_)/2;break;case"end":S=X>0&&Z+_>=K?U:Z-j+_;break;default:S=Z}return Math.max(0,Math.min(S,U))};var G1={top:0,right:0,bottom:0,left:0},S0=(J)=>{if(J==null)return G1;if(typeof J==="number")return J===0?G1:{top:J,right:J,bottom:J,left:J};if(J.length===2){let[X,W]=J;return X===0&&W===0?G1:{top:X,right:W,bottom:X,left:W}}let[q,j,Q,Y]=J;return q===0&&j===0&&Q===0&&Y===0?G1:{top:q,right:j,bottom:Q,left:Y}},s0=(J,q)=>q?J.left+J.right:J.top+J.bottom,M1=(J,q)=>q?J.top+J.bottom:J.left+J.right;var a0=(J,q,j)=>{let Q=Array.from(q).sort((W,Z)=>W-Z);if(Q.length<=1)return;let Y=[];for(let W=0;W<Q.length;W++){let Z=j(Q[W]);if(Z)Y.push(Z)}if(Y.length<=1)return;let X=J.firstChild;for(let W=0;W<Y.length;W++){let Z=Y[W];if(Z===X)X=X.nextSibling;else J.insertBefore(Z,X)}};var H2=(J,q)=>{let{dom:j,emitter:Q,resolvedConfig:Y,rawConfig:X,rendered:W,pool:Z,sharedState:_,isHorizontal:K,classPrefix:U,contentSizeHandlers:S,idleHandlers:T,afterScroll:O,clickHandlers:F,contextMenuHandlers:f,keydownHandlers:L,resizeHandlers:w,destroyHandlers:b,methods:R,onScrollFrame:y,resizeObserver:h,renderRange:p,afterRenderBatch:I}=q;return{get dom(){return j},get sizeCache(){return J.hc},get emitter(){return Q},get config(){return Y},get rawConfig(){return X},adjustScrollPosition(A){if(J.mp===0)return A;let d=K?J.cw:J.ch,i=J.hc.getTotalSize(),o=Math.max(0,i-d),g=Math.max(0,i+J.mp-d);if(A>=o)return g;return Math.min(A,g)},get renderer(){return{render:(A,d,i,o,g)=>{J.ss=i,J.fi=o,J.ffn()},updateItemClasses:(A,d,i)=>{J.uic(A,d,i)},updatePositions:()=>{},updateItem:()=>{},getElement:(A)=>W.get(A)??null,clear:()=>{},destroy:()=>{}}},set renderer(A){},get dataManager(){return J.dm},set dataManager(A){J.dm=A},get scrollController(){return J.sc},set scrollController(A){J.sc=A},state:_,getContainerWidth(){return J.cw},afterScroll:O,idleHandlers:T,afterRenderBatch:I,clickHandlers:F,contextMenuHandlers:f,keydownHandlers:L,resizeHandlers:w,contentSizeHandlers:S,destroyHandlers:b,methods:R,replaceTemplate(A){J.at=A},replaceRenderer(A){},replaceDataManager(A){J.dm=A},replaceScrollController(A){J.sc=A},getItemsForRange(A){let{dm:d,it:i}=J,o=[];for(let g=A.start;g<=A.end;g++){let C=d?d.getItem(g):i[g];if(C)o.push(C)}return o},getAllLoadedItems(){let A=J.dm;if(A){let d=A.getTotal(),i=[];for(let o=0;o<d;o++){let g=A.getItem(o);if(g)i.push(g)}return i}return[...J.it]},getVirtualTotal(){return J.vtf()},getCachedCompression(){let A=J.hc;return{isCompressed:!1,actualSize:A.getTotalSize(),virtualSize:A.getTotalSize(),ratio:1}},getCompressionContext(){return{scrollPosition:J.ls,totalItems:J.vtf(),containerSize:J.ch,rangeStart:p.start,compression:_.cachedCompression?.state}},renderIfNeeded(){J.rfn()},forceRender(){J.ffn()},invalidateRendered(){for(let[,A]of W)A.remove(),Z.release(A);W.clear()},getRenderFns(){return{renderIfNeeded:J.rfn,forceRender:J.ffn}},setRenderFns(A,d){J.rfn=A,J.ffn=d},setVirtualTotalFn(A){J.vtf=A},rebuildSizeCache(A){J.hc.rebuild(A??J.vtf())},setSizeConfig(A){if(J.hc=c0(A,J.vtf()),J.gp>0){let d=J.hc.getTotalSize,i=J.gp;J.hc.getTotalSize=()=>{let o=d();return o>0?o-i:0}}},updateContentSize(A){let d=`${A+J.mp}px`;if(K)j.content.style.width=d;else j.content.style.height=d},updateCompressionMode(){for(let A=0;A<S.length;A++)S[A]()},setVisibleRangeFn(A){J.gvr=A},getVisibleRange(A,d,i,o){J.gvr(A,d,J.hc,i,o)},setScrollToPosFn(A){J.gsp=A},getScrollToPos(A,d,i,o){return J.gsp(A,J.hc,d,i,o)},setPositionElementFn(A){J.pef=A},setScrollFns(A,d){J.sgt=A,J.sst=(i)=>{d(i),y()}},triggerScrollFrame(){y()},setScrollTarget(A){J.st.removeEventListener("scroll",y),J.st=A,J.st.addEventListener("scroll",y,{passive:!0})},getScrollTarget(){return J.st},setContainerDimensions(A){J.gcw=A.width,J.gch=A.height,J.cw=A.width(),J.ch=A.height(),_.viewportState.containerSize=K?J.cw:J.ch},disableViewportResize(){if(J.vre)J.vre=!1,h.unobserve(j.viewport)},disableWheelHandler(){if(J.wh)j.viewport.removeEventListener("wheel",J.wh),J.wh=null},getStripeIndexFn(){return J.sif},setStripeIndexFn(A){J.sif=A},getItemToScrollIndexFn(){return J.i2s},setItemToScrollIndexFn(A){J.i2s=A},setUpdateItemClassesFn(A){J.uic=A}}},$2=(J,q,j)=>{let{rendered:Q,itemState:Y,applyTemplate:X,updateContentSize:W}=q,Z=()=>{J.hc.rebuild(J.vtf()),W(),j.updateCompressionMode(),J.ffn()},_=()=>J.it.length;return{getState:()=>({total:_(),cached:_(),isLoading:!1,pendingRanges:[],error:void 0,hasMore:!1,cursor:void 0}),getTotal:_,getCached:_,getIsLoading:()=>!1,getHasMore:()=>!1,getStorage:()=>null,getPlaceholders:()=>null,getItem:(K)=>J.it[K],isItemLoaded:(K)=>K>=0&&K<_()&&J.it[K]!==void 0,getItemsInRange:(K,U)=>{let S=[];for(let T=Math.max(0,K),O=Math.min(U,_()-1);T<=O;T++)S.push(J.it[T]);return S},setTotal:()=>{},setItems:(K,U=0,S)=>{if(U===0&&(S!==void 0||_()===0))J.it=K;else{let T=U+K.length;if(_()<T)J.it.length=T;for(let O=0;O<K.length;O++)J.it[U+O]=K[O]}if(J.ii)Z()},updateItem:(K,U)=>{let S=J.it;if(K<0||K>=S.length)return!1;let T=S[K];if(!T)return!1;S[K]={...T,...U};let O=Q.get(K);if(O)X(O,J.at(S[K],K,Y)),O.dataset.id=String(S[K].id);return!0},removeItem:(K)=>{let U=typeof K==="number"?K:J.it.findIndex((S)=>S.id===K);if(U<0||U>=J.it.length)return!1;if(J.it.splice(U,1),J.ii)Z();return!0},loadRange:async()=>{},ensureRange:async()=>{},loadInitial:async()=>{},loadMore:async()=>!1,reload:async()=>{},evictDistant:()=>{},clear:()=>{J.it=[]},reset:()=>{if(J.it=[],J.ii)J.hc.rebuild(0),W(),J.ffn()}}},k2=(J,q)=>{let{dom:j,classPrefix:Q,onScrollFrame:Y}=q;return{getScrollTop:()=>J.sgt(),scrollTo:(X)=>{J.sst(X),Y()},scrollBy:(X)=>{let W=J.sgt()+X;J.sst(W),Y()},isAtTop:()=>J.ls<=2,isAtBottom:(X=2)=>J.sab(X),getScrollPercentage:()=>{let X=J.hc.getTotalSize(),W=Math.max(0,X-J.ch);return W>0?J.ls/W:0},getVelocity:()=>J.vt.velocity,isTracking:()=>J.vt.sampleCount>=2,isScrolling:()=>j.root.classList.contains(`${Q}--scrolling`),updateConfig:()=>{},enableCompression:()=>{J.sic=!0},disableCompression:()=>{J.sic=!1},isCompressed:()=>J.sic,isWindowMode:()=>!1,updateContainerHeight:(X)=>{J.ch=X},destroy:()=>{}}};var X1=(J,q,j,Q,Y=0,X=0)=>{let W=q.getOffset(J),Z=q.getSize(J),_=W+Y,K=_+Z,U=j+Q;if(_<j)return Math.max(0,W);if(K>U)return K+X-Q;return j},O1=(J,q,j,Q,Y=0,X=0,W,Z,_)=>{if(!(W!=null&&W.isCompressed&&W.ratio!==1))return X1(J,q,j,Q,Y,X);let{virtualSize:U}=W,S=q.getSize(Math.max(0,J)),T=Q-Y-X,O=Math.max(1,Math.floor(T/S)),F=q.getTotalSize();if(_){if(J>=_.start+O){let b=q.getOffset(J)+S+X-Q;return Math.max(0,b/F*U)}if(J<=_.start){let w=q.getOffset(J)-Y;return Math.max(0,w/F*U)}return j}let f=j/U*Z,L=f+O;if(J>=L){let b=q.getOffset(J)+S+X-Q;return Math.max(0,b/F*U)}if(J<f){let w=q.getOffset(J)-Y;return Math.max(0,w/F*U)}return j};var b2=(J,q,j,Q,Y,X,W,Z,_,K,U,S,T,O)=>{let F=`${j}-item--focused`,f=!1,L=null,w=null,b=null,R=null,y=!1,h=()=>{if(y)return;y=!0,L=_.get("_getNavTotal")??null,w=_.get("_getNavDelta")??null,b=_.get("_navigate")??null,R=_.get("_scrollItemIntoView")??null},p=()=>{return h(),L?L():J.vtf()},I=()=>{return h(),w?w():{ud:1,lr:0,cols:0}};_.set("_getFocusedIndex",()=>f?J.fi:-1);let A=(k,P=!0)=>{if(q.root.setAttribute("aria-activedescendant",`${Q}-item-${k}`),h(),P)if(R)R(k);else{let M=Y?J.cw:J.ch,H=J.i2s(k),G=X1(H,J.hc,J.ls,M,X,W);if(G!==J.ls)J.sst(G),J.ls=J.sgt()}J.ffn()},d=(k)=>{J.fi=k,f=!0,A(k)},i=(k,P)=>{if(J.fi=k,P||O)f=!0;let M=J.dm?J.dm.getItem(k):J.it[k];if(M&&J.ss.has(M.id))J.ss.clear();else if(J.ss.clear(),M)J.ss.add(M.id);A(k,P)},o=(k,P,M)=>{let H=k;while(H>=0&&H<M){let G=J.dm?J.dm.getItem(H):J.it[H];if(!G||!G.__groupHeader)return H;H+=P}H=k-P;while(H>=0&&H<M){let G=J.dm?J.dm.getItem(H):J.it[H];if(!G||!G.__groupHeader)return H;H-=P}return k},g=()=>{if(J.id)return;if(!q.root.matches(":focus-visible"))return;let k=p();if(k===0)return;let P=J.fi>=0?Math.min(J.fi,k-1):0;P=o(P,1,k),d(P)};q.root.addEventListener("focusin",g);let C=(k)=>{if(J.id)return;let P=k.relatedTarget;if(P&&q.root.contains(P))return;if(f=!1,J.fi>=0)K.get(J.fi)?.classList.remove(F);q.root.removeAttribute("aria-activedescendant")};q.root.addEventListener("focusout",C),U.push((k)=>{if(J.id)return;let P=p();if(P===0)return;let M=J.fi,H=M;if(k.key===" "||k.key==="Enter"){if(M>=0){let G=J.dm?J.dm.getItem(M):J.it[M];if(G&&!G.__groupHeader)i(M,!0)}k.preventDefault();return}if(h(),b)switch(k.key){case"ArrowUp":case"ArrowDown":case"ArrowLeft":case"ArrowRight":case"PageUp":case"PageDown":case"Home":case"End":H=b(M,k.key,P);break;default:return}else{let{ud:G,lr:m}=I();switch(k.key){case"ArrowUp":H=M-G;break;case"ArrowDown":H=M+G;break;case"ArrowLeft":if(!m)return;H=M-m;break;case"ArrowRight":if(!m)return;H=M+m;break;case"PageUp":case"PageDown":{let e=J.hc.getSize(J.i2s(Math.max(0,M))),s=Math.max(G,Math.floor((Y?J.cw:J.ch)/e)*G),x=_.get("_layoutToDataIndex"),J0=_.get("_dataToLayoutIndex");if(x&&J0){let n=x(M),B=k.key==="PageUp"?-s:s,l=x(P-1);H=J0(Math.max(0,Math.min(l,n+B)))}else H=k.key==="PageUp"?M-s:M+s;break}case"Home":H=0;break;case"End":H=P-1;break;default:return}if(H<0)H=Z?P-1:0;else if(H>=P)H=Z?0:P-1}if(k.preventDefault(),H=o(H,H>=M?1:-1,P),H!==M)d(H)}),S.push((k)=>{if(J.id)return;let P=k.target.closest("[data-index]");if(!P)return;let M=parseInt(P.dataset.index??"-1",10);if(M<0)return;let H=J.dm?.getItem(M)??J.it[M];if(!H||H.__groupHeader)return;f=!1,q.root.focus({preventScroll:!0}),i(M,!1)}),T.push(()=>{q.root.removeEventListener("focusin",g),q.root.removeEventListener("focusout",C)})};var o0=(J,q)=>{let j,Q;return{getSetSize:()=>{if(j===void 0)j=J.get("_getTotal")??null;return j?j():q()},getPosInSet:(Y)=>{if(Q===void 0)Q=J.get("_layoutToDataIndex")??null;return Q?Q(Y)+1:Y+1}}};var z1=200,n0=50;var R2=50,P2=12,w2=2,i0=16000000;var y2="x",z2=20,C1="_isPlaceholder",g0="__placeholder_";var m0=(J,q,j)=>{if(String(j).startsWith(g0))return!1;let Q=g0+q;if(J.has(Q))return J.delete(Q),J.add(j),!0;return!1},C2=(J)=>({selected:new Set(J??[]),focusedIndex:-1,focusVisible:!1}),t0=(J,q,j)=>{if(j==="none")return J;let Q=new Set(J.selected);if(j==="single"){if(Q.clear(),q.length>0)Q.add(q[0])}else for(let Y of q)Q.add(Y);return{...J,selected:Q}},v1=(J,q)=>{let j=new Set(J.selected);for(let Q of q)j.delete(Q);return{...J,selected:j}},e0=(J,q,j)=>{if(j==="none")return J;if(J.selected.has(q))return v1(J,[q]);else return t0(J,[q],j)},S1=(J,q,j)=>{if(j!=="multiple")return J;return{...J,selected:new Set(q.map((Q)=>Q.id))}},f1=(J)=>({...J,selected:new Set}),x0=(J,q)=>{return J.focusedIndex=q,J},A1=(J,q,j=!1,Q=1)=>{if(q===0)return J;let Y=J.focusedIndex-Q;if(Y<0)Y=j?q-1:0;return J.focusedIndex=Y,J},E1=(J,q,j=!1,Q=1)=>{if(q===0)return J;let Y=J.focusedIndex+Q;if(Y>=q)Y=j?0:q-1;return J.focusedIndex=Y,J},v2=(J,q)=>{if(q===0)return J;return J.focusedIndex=0,J},S2=(J,q)=>{if(q===0)return J;return J.focusedIndex=q-1,J},f2=(J,q,j,Q)=>{if(q===0)return J;let Y=Q==="up"?J.focusedIndex-j:J.focusedIndex+j;return Y=Math.max(0,Math.min(q-1,Y)),J.focusedIndex=Y,J};var L1=(J)=>{return Array.from(J.selected)},F1=(J,q)=>{let j=[];for(let Q of J.selected){let Y=q(Q);if(Y)j.push(Y)}return j};var T1=(J,q,j,Q,Y)=>{if(Y!=="multiple")return J;let X=Math.min(j,Q),W=Math.max(j,Q),Z=[];for(let _=X;_<=W;_++){let K=q[_];if(K)Z.push(K.id)}return t0(J,Z,Y)};var h1=(J)=>J<0.5?2*J*J:-1+(4-2*J)*J,d0=(J)=>{let q=typeof J==="object"&&J?J:null;return{align:typeof J==="string"?J:q?.align??"start",behavior:q?.behavior??"auto",duration:q?.duration??300}},J1=(J,q)=>{let j=null,Q=()=>{if(j!==null)cancelAnimationFrame(j),j=null};return{animateScroll:(X,W,Z)=>{if(Q(),Math.abs(W-X)<1){J.scrollTo(W);return}let _=performance.now(),K=(U)=>{let S=U-_,T=Math.min(S/Z,1),O=X+(W-X)*h1(T);if(J.scrollTo(O),q(),T<1)j=requestAnimationFrame(K);else j=null};j=requestAnimationFrame(K)},cancelScroll:Q}};var h2=(J,q,j,Q,Y,X,W,Z,_,K,U,S,T,O,F,f,L,w,b)=>{let R=($)=>{{if(!Array.isArray($)){console.warn("[vlist] setItems() expects an array, got:",typeof $);return}if($.length>0&&$[0]&&!("id"in $[0]))console.warn('[vlist] Items must have an "id" property. First item:',$[0]);let E=Math.min($.length,1e4),N=new Set;for(let V=0;V<E;V++){let D=$[V];if(D&&"id"in D){if(N.has(D.id)){console.warn(`[vlist] Duplicate item ID "${D.id}" at index ${V}. updateItem() and removeItem() will only match the first occurrence.`);break}N.add(D.id)}}}G(),_.dataManager.setItems($,0,$.length)},y=($)=>{let E=K&&J.sab(2);if(_.dataManager.setItems($,J.it.length),E&&J.it.length>0){let N=J.gsp(J.it.length-1,J.hc,J.ch,J.it.length,"end");J.sst(N),J.ls=N,J.rfn()}},h=($)=>{let E=K?J.sgt():0,N=K?J.hc.getTotalSize():0,V=[...J.it];if(_.dataManager.clear(),_.dataManager.setItems([...$,...V],0),K){let D=J.hc.getTotalSize()-N;if(D>0)J.sst(E+D),J.ls=E+D}},p=null,I=null,A=null,d=!1,i=()=>{if(d)return;d=!0,p=X.get("_updateRenderedItem")??null,I=X.get("_getSelectedIds")??null,A=X.get("_getFocusedIndex")??null},o=($,E)=>{{let V=J.vtf();if($<0||$>=V)console.warn(`[vlist] updateItem() index ${$} is out of range (0–${V-1}).`)}if(_.dataManager.updateItem($,E),i(),!p)return;let N=_.dataManager.getItem($);if(N){let D=(I?I():J.ss).has(N.id),z=(A?A():J.fi)===$;p($,N,D,z)}},g=!1,C=($)=>{let E=typeof document<"u"?document.activeElement:null,N=E&&q.items.contains(E)?parseInt(E.dataset?.index??"-1",10):-1;if(!_.dataManager.removeItem($))return console.warn(`[vlist] removeItem() could not find item with id "${$}".`),!1;if(j.emit("data:change",{type:"remove",id:$}),_.forceRender(),!g){let D=_.dataManager;if(typeof D.ensureRange==="function")g=!0,queueMicrotask(()=>{g=!1;let z=_.dataManager.getTotal(),{start:v,end:u}=_.state.viewportState.renderRange;if(z>0&&u>=v)D.ensureRange(v,u).catch(()=>{})})}if(N>=0){let D=J.vtf();if(D>0)Q.get(Math.min(N,D-1))?.focus()}return!0},k=($)=>{return _.dataManager.getItem($)},P=($)=>{return _.dataManager.getIndexById?.($)??-1},M=async($)=>{if(_.dataManager.reload)await _.dataManager.reload()},H=null,G=()=>{if(H!==null)cancelAnimationFrame(H),H=null},m=($,E,N,V)=>{if(G(),Math.abs(E-$)<1){J.sst(E),J.ls=E,J.rfn();return}let D=performance.now(),z=(v)=>{let u=v-D,t=Math.min(u/N,1),q0=V?V():E,c=$+(q0-$)*h1(t);if(J.sst(c),J.ls=c,J.rfn(),t<1)H=requestAnimationFrame(z);else H=null};H=requestAnimationFrame(z)},e=($,E)=>{{let t=J.vtf();if(t>0&&($<0||$>=t))console.warn(`[vlist] scrollToIndex(${$}) is out of range (0–${t-1}).`)}let{align:N,behavior:V,duration:D}=d0(E),z=J.vtf(),v=$;if(U&&z>0)v=(v%z+z)%z;let u=J.gsp(v,J.hc,J.ch,z,N);if(V==="smooth"){let t=v,q0=N;m(J.sgt(),u,D,()=>J.gsp(t,J.hc,J.ch,J.vtf(),q0))}else G(),J.sst(u)},s=()=>J.sgt(),x=($,E)=>{return j.on($,E)},J0=($,E)=>{j.off($,E)},n=()=>{if(J.id)return;if(J.id=!0,_.state.isDestroyed=!0,q.items.removeEventListener("click",S),q.items.removeEventListener("dblclick",T),q.items.removeEventListener("contextmenu",O),q.root.removeEventListener("keydown",F),J.st.removeEventListener("scroll",f),L.disconnect(),w(),J.wh)q.viewport.removeEventListener("wheel",J.wh);b();let $=[];for(let E=0;E<Z.length;E++)try{Z[E]()}catch(N){$.push(N instanceof Error?N:Error(String(N)))}for(let E of W)if(E.destroy)try{E.destroy()}catch(N){$.push(N instanceof Error?N:Error(String(N)))}G();for(let[,E]of Q)E.remove(),Y.release(E);Q.clear(),Y.clear(),j.emit("destroy",void 0);for(let E of $)j.emit("error",{error:E,context:"destroy"});j.clear(),q.root.remove()},B=($,E)=>X.has($)?X.get($):E,l={get element(){return q.root},get items(){let $=X.get("_getItems");return $?$():J.it},get total(){let $=X.get("_getTotal");return $?$():J.vtf()},setItems:B("setItems",R),appendItems:B("appendItems",y),prependItems:B("prependItems",h),updateItem:B("updateItem",o),removeItem($){let E=X.get("removeItem");return E?E($):C($)},reload:B("reload",M),getItemAt:k,getIndexById:P,scrollToIndex:B("scrollToIndex",e),cancelScroll:B("cancelScroll",G),getScrollPosition:B("getScrollPosition",s),on:x,off:J0,destroy:n};for(let[$,E]of X){if($.charCodeAt(0)===95||$==="setItems"||$==="appendItems"||$==="prependItems"||$==="updateItem"||$==="removeItem"||$==="reload"||$==="scrollToIndex"||$==="scrollToItem"||$==="cancelScroll"||$==="getScrollPosition")continue;l[$]=E}return l};var LJ=3,FJ="vlist",TJ=150,HJ=16000000,$J=4096,kJ=(J)=>(typeof screen<"u"?J?screen.width:screen.height:0)||$J,bJ=0,I1=(J)=>{if(!J.container)throw Error("[vlist] Container is required");if(!J.item)throw Error("[vlist] item configuration is required");let q=J.orientation==="horizontal",j=q?"width":"height",Q=q?"estimatedWidth":"estimatedHeight",Y=q?J.item.width:J.item.height,X=q?J.item.estimatedWidth:J.item.estimatedHeight;if(Y==null&&X==null)throw Error(`[vlist] item.${j} or item.${Q} is required${q?" when orientation is 'horizontal'":""}`);if(Y!=null){if(typeof Y==="number"&&Y<=0)throw Error(`[vlist] item.${j} must be a positive number`);if(typeof Y!=="number"&&typeof Y!=="function")throw Error(`[vlist] item.${j} must be a number or a function (index) => number`)}else if(X!=null){if(typeof X!=="number"||X<=0)throw Error(`[vlist] item.${Q} must be a positive number`)}if(!J.item.template)throw Error("[vlist] item.template is required");if(q&&J.reverse)throw Error("[vlist] horizontal direction cannot be combined with reverse mode");let W=new Map,Z=!1,_={use(K){if(Z)throw Error("[vlist] Cannot call .use() after .build()");return W.set(K.name,K),_},build(){if(Z)throw Error("[vlist] .build() can only be called once");return Z=!0,RJ(J,W,q,Y,X??null)}};return _};function RJ(J,q,j,Q,Y){let{item:X,items:W,overscan:Z=LJ,classPrefix:_=FJ,ariaLabel:K,padding:U,reverse:S=!1,scroll:T,accessible:O,interactive:F}=J,f=F??O??!0,L=T,w=L?.wheel??!0,b=L?.wrap??!1,R=S,y=`${_}-${bJ++}`,h=q.has("withGrid")||q.has("withMasonry")?0:X.gap??0,p=Q??Y,I=Q==null&&Y!=null,A=j?typeof X.height==="number"?X.height:void 0:typeof X.width==="number"?X.width:void 0,d={overscan:Z,classPrefix:_,reverse:R,wrap:b,horizontal:j,ariaIdPrefix:y,interactive:f},i=kJ(j),o=Array.from(q.values()).sort((r,j0)=>(r.priority??50)-(j0.priority??50)),g=new Set(o.map((r)=>r.name));for(let r of o)if(r.conflicts){for(let j0 of r.conflicts)if(g.has(j0))throw Error(`[vlist] ${r.name} and ${j0} cannot be combined`)}if(R){if(g.has("withGrid"))throw Error("[vlist] withGrid cannot be used with reverse: true")}let C=O2(J.container),k=A2(C,_,K,j,f);if(L?.wheel===!1)if(j)k.viewport.style.overflowX="hidden";else k.viewport.style.overflow="hidden";if(L?.scrollbar==="none")k.viewport.classList.add(`${_}-viewport--no-scrollbar`);if(L?.gutter==="stable")k.viewport.classList.add(`${_}-viewport--gutter-stable`);let P=g.has("withGrid")||g.has("withMasonry");if(j&&A!=null&&L?.scrollbar!=="none"&&!P){k.root.style.height=`${A}px`;let r=k.viewport.style.overflowX;k.viewport.style.overflowX="scroll";let j0=k.viewport.offsetHeight-k.viewport.clientHeight;if(k.viewport.style.overflowX=r,j0>0)k.root.style.height=`${A+j0}px`}let M=S0(U),H=s0(M,j);if(M.top||M.right||M.bottom||M.left)k.content.style.boxSizing="border-box",k.content.style.padding=`${M.top}px ${M.right}px ${M.bottom}px ${M.left}px`;let G=M2(),m=W||[],e=typeof p==="function"&&(q.has("withGrid")||q.has("withMasonry")),s=h>0?typeof p==="function"?(r)=>p(r)+h:p+h:p,x=I?Y+h:s,J0=c0(x,e?0:m.length);if(h>0){let r=J0.getTotalSize;J0.getTotalSize=()=>{let j0=r();return j0>0?j0-h:0}}let n=E2(),B={it:m,hc:J0,ch:Math.min(k.viewport.clientHeight,i),cw:Math.min(k.viewport.clientWidth,i),id:!1,ii:!1,ls:0,vt:V2(0),ss:new Set,fi:-1,la:"",dm:null,sc:null,vtf:null,sgt:j?()=>k.viewport.scrollLeft:()=>k.viewport.scrollTop,sst:j?(r)=>{k.viewport.scrollLeft=r}:(r)=>{k.viewport.scrollTop=r},sab:(r=2)=>{let j0=B.hc.getTotalSize();return B.ls+B.ch>=j0-r},sic:!1,rfn:null,ffn:null,gvr:(r,j0,Y0,E0,z0)=>{L2(r,j0,Y0,E0,z0)},gsp:(r,j0,Y0,E0,z0)=>{return T2(r,j0,Y0,E0,z0,B.mp)},pef:null,at:X.template,vre:!0,st:k.viewport,wh:null,gcw:()=>B.cw,gch:()=>B.ch,gp:h,mp:H,sif:(r)=>r,i2s:(r)=>r,uic:(r,j0,Y0)=>{let E0=v.get(r);if(!E0)return;W0(E0,j0,Y0)},csi:null};B.vtf=()=>B.dm?B.dm.getTotal():B.it.length;let l=null,$=!1,E={start:0,end:0},N={start:0,end:0},V={start:-1,end:-1},D={viewportState:{scrollPosition:0,containerSize:j?B.cw:B.ch,totalSize:B.hc.getTotalSize(),actualSize:B.hc.getTotalSize(),isCompressed:!1,compressionRatio:1,visibleRange:{start:0,end:0},renderRange:{start:0,end:0}},lastRenderRange:{start:-1,end:-1},isInitialized:!1,isDestroyed:!1,cachedCompression:null},z=()=>({...D.viewportState,totalItems:B.vtf()}),v=new Map,u=()=>{a0(k.items,v.keys(),(r)=>v.get(r))},t=()=>{let r=B.hc.getTotalSize(),Y0=`${(B.sic?r:Math.min(r,HJ))+H}px`;if(j)k.content.style.width=Y0;else k.content.style.height=Y0},q0={selected:!1,focused:!1},c=`${_}-item`,Q0=`${_}-group-header`,X0=`${_}-item--selected`,K0=`${_}-item--focused`,W0=(r,j0,Y0)=>{r.classList.toggle(X0,j0),r.classList.toggle(K0,Y0),r.ariaSelected=j0?"true":"false"},M0=X.striped,L0=!!M0,R0=M0==="data"||M0==="even"||M0==="odd",B0=`${_}-item--odd`,D0=`${_}-item--placeholder`,F0=`${_}-item--replaced`,w0=`${_}--scrolling`,T0=[],k0=[],_0=[],G0=[],b0=[],P0=[],a=[],U0=[],Z0=[],N0=new Map,V0="__placeholder_",O0={scrollPosition:0,direction:"down"},H0={velocity:0,reliable:!1},A0={range:{start:0,end:0}},h0=null,f0=null,Q2=!1,K1=!1,KJ=()=>{if(Q2)return;Q2=!0,h0=N0.get("_getSelectedIds")??null,f0=N0.get("_getFocusedIndex")??null},N1=o0(N0,B.vtf),W1=(r,j0,Y0)=>{if(!j0)console.warn(`[vlist] Template returned falsy value${Y0!==void 0?` for item at index ${Y0}`:""}. The element will render as blank.`);else if(typeof j0==="string"&&j0==="")console.warn(`[vlist] Template returned empty string${Y0!==void 0?` for item at index ${Y0}`:""}. The element will render as blank.`);if(typeof j0==="string")r.innerHTML=j0;else r.replaceChildren(j0)},NJ=(r,j0)=>{let Y0=Math.round(B.hc.getOffset(j0));if(j)r.style.transform=`translateX(${Y0}px)`;else r.style.transform=`translateY(${Y0}px)`};B.pef=NJ;let WJ=(r,j0)=>{let Y0=n.acquire(),E0=!!j0.__groupHeader;Y0.className=E0?Q0:c;let z0=!B.csi||B.csi(r);if(j){if(z0)Y0.style.width=`${B.hc.getSize(r)-h}px`;else Y0.style.width="";if(A!=null)Y0.style.height=`${A}px`}else if(z0)Y0.style.height=`${B.hc.getSize(r)-h}px`;else Y0.style.height="";if(Y0.dataset.index=String(r),Y0.dataset.id=String(j0.id),E0)Y0.setAttribute("role","presentation"),Y0.removeAttribute("aria-selected"),Y0.removeAttribute("aria-setsize"),Y0.removeAttribute("aria-posinset"),Y0.removeAttribute("id");else Y0.setAttribute("role","option"),Y0.ariaSelected="false",Y0.id=`${y}-item-${r}`,B.la=String(N1.getSetSize()),Y0.setAttribute("aria-setsize",B.la),Y0.setAttribute("aria-posinset",String(N1.getPosInSet(r)));if(String(j0.id).startsWith(V0))Y0.classList.add(D0);if(L0)if(R0){let y0=B.sif(r);if(y0<0)Y0.classList.remove(B0);else Y0.classList.toggle(B0,(y0&1)===1)}else Y0.classList.toggle(B0,(r&1)===1);try{W1(Y0,B.at(j0,r,q0),r)}catch(y0){let u0=y0 instanceof Error?y0:Error(String(y0));G.emit("error",{error:u0,context:`tpl(${r},${j0.id})`,viewport:z()}),Y0.textContent=""}return B.pef(Y0,r),Y0},B1=NaN,BJ=()=>{if(B.id)return;let r=j?B.cw:B.ch;if(r<=0)return;KJ();let j0=h0?h0():B.ss,Y0=f0?f0():B.fi,E0=B.vtf();B.gvr(B.ls,r,B.hc,E0,E),F2(E,Z,E0,N);let z0=N.end-N.start+1,I0=B.hc.getSize(0)||1,y0=Math.ceil(i/I0)+Z*2;if(z0>y0){if(!K1)K1=!0,console.warn(`[vlist] Render range capped: ${z0} items → ${y0}. Container is ${r}px tall (item: ${I0}px). This usually means the container has no CSS height constraint.`);N.end=N.start+y0-1}if(N.start===V.start&&N.end===V.end){if(B.sic&&B.ls!==B1){B1=B.ls;for(let[$0,v0]of v)B.pef(v0,$0)}D.viewportState.scrollPosition=B.ls,D.viewportState.containerSize=r,D.viewportState.visibleRange.start=E.start,D.viewportState.visibleRange.end=E.end,D.viewportState.renderRange.start=N.start,D.viewportState.renderRange.end=N.end;return}let u0=String(N1.getSetSize()),GJ=u0!==B.la;B.la=u0;for(let[$0,v0]of v)if($0<N.start||$0>N.end)v0.remove(),n.release(v0),v.delete($0);let K2=document.createDocumentFragment(),N2=!1,j1=U0.length>0?[]:null;for(let $0=N.start;$0<=N.end;$0++){let v0=B.dm?B.dm.getItem($0):B.it[$0];if(v0===void 0)continue;let C0=v.get($0);if(C0){let l0=C0.dataset.id,r0=String(v0.id);if(l0!==r0){let MJ=l0?.startsWith(V0),w1=r0.startsWith(V0),W2=!!v0.__groupHeader;if(C0.className=W2?Q0:c,W2)C0.setAttribute("role","presentation"),C0.removeAttribute("aria-selected"),C0.removeAttribute("aria-setsize"),C0.removeAttribute("aria-posinset"),C0.removeAttribute("id");else C0.setAttribute("role","option"),C0.id=`${y}-item-${$0}`,C0.setAttribute("aria-posinset",String(N1.getPosInSet($0)));try{W1(C0,B.at(v0,$0,q0),$0)}catch(y1){let OJ=y1 instanceof Error?y1:Error(String(y1));G.emit("error",{error:OJ,context:`tpl(${$0},${v0.id})`,viewport:z()}),C0.textContent=""}C0.dataset.id=r0;let B2=!B.csi||B.csi($0);if(j)C0.style.width=B2?`${B.hc.getSize($0)-h}px`:"";else C0.style.height=B2?`${B.hc.getSize($0)-h}px`:"";if(w1)C0.classList.add(D0);else C0.classList.remove(D0);if(MJ&&!w1)C0.classList.add(F0),setTimeout(()=>{C0.classList.remove(F0)},300);if(B.dm&&!w1)m0(j0,$0,v0.id)}B.pef(C0,$0);let D1=j0.has(v0.id);if(W0(C0,D1,$0===Y0),GJ&&!v0.__groupHeader)C0.setAttribute("aria-setsize",B.la)}else{let l0=WJ($0,v0);if(j1)j1.push({index:$0,element:l0});if(B.dm)m0(j0,$0,v0.id);let r0=j0.has(v0.id),D1=$0===Y0;if(r0||D1)W0(l0,r0,D1);K2.appendChild(l0),v.set($0,l0),N2=!0}}if(N2)k.items.appendChild(K2);if(j1&&j1.length>0)for(let $0=0;$0<U0.length;$0++)U0[$0](j1);V.start=N.start,V.end=N.end,B1=B.ls,D.lastRenderRange.start=N.start,D.lastRenderRange.end=N.end,D.viewportState.scrollPosition=B.ls,D.viewportState.visibleRange.start=E.start,D.viewportState.visibleRange.end=E.end,D.viewportState.renderRange.start=N.start,D.viewportState.renderRange.end=N.end,A0.range.start=N.start,A0.range.end=N.end,G.emit("range:change",A0)},_J=()=>{V.start=-1,V.end=-1,B1=NaN,B.rfn()};B.rfn=BJ,B.ffn=_J;let VJ=()=>{k.root.classList.remove(w0),$=!1,B.vt.velocity=0,B.vt.sampleCount=0,H0.velocity=0,H0.reliable=!1,G.emit("velocity:change",H0),u();for(let r=0;r<k0.length;r++)k0[r]();G.emit("scroll:idle",{scrollPosition:B.ls})},DJ=()=>{if(l)clearTimeout(l);l=setTimeout(VJ,L?.idleTimeout??TJ)},q1=()=>{if(B.id)return;let r=B.sgt();if(r===B.ls&&$)return;let j0=r>=B.ls?"down":"up";if(B.vt=D2(B.vt,r),!k.root.classList.contains(w0))k.root.classList.add(w0);$=!0,B.ls=r,B.rfn(),O0.scrollPosition=r,O0.direction=j0,G.emit("scroll",O0),H0.velocity=B.vt.velocity,H0.reliable=B.vt.sampleCount>=_2,G.emit("velocity:change",H0);for(let Y0=0;Y0<T0.length;Y0++)T0[Y0](r,j0);DJ()},_1=null;if(B.st.addEventListener("scroll",q1,{passive:!0}),w){let r=k.viewport;if(j)_1=(j0)=>{if(D.viewportState.isCompressed)return;if(Math.abs(j0.deltaX)>Math.abs(j0.deltaY))return;let Y0=B.sgt(),E0=r.scrollWidth-r.clientWidth,z0=Math.max(0,Math.min(Y0+j0.deltaY,E0));if(Math.abs(z0-Y0)<1)return;j0.preventDefault(),B.sst(z0),q1()};else _1=(j0)=>{if(D.viewportState.isCompressed)return;let Y0=r.scrollWidth>r.clientWidth;if(Y0&&Math.abs(j0.deltaX)>Math.abs(j0.deltaY))return;if(Y0&&j0.deltaX!==0)j0.preventDefault(),r.scrollLeft+=j0.deltaX;let E0=B.sgt(),z0=r.scrollHeight-r.clientHeight,I0=Math.max(0,Math.min(E0+j0.deltaY,z0));if(Math.abs(I0-E0)<1)return;j0.preventDefault(),B.sst(I0),q1()};B.wh=_1,r.addEventListener("wheel",_1,{passive:!1})}let b1=(r)=>{let j0=r.target.closest("[data-index]");if(!j0)return null;let Y0=parseInt(j0.dataset.index??"-1",10);if(Y0<0)return null;let E0=B.dm?.getItem(Y0)??B.it[Y0];if(!E0||E0.__groupHeader)return null;return{item:E0,index:Y0}},q2=(r)=>{for(let Y0=0;Y0<_0.length;Y0++)_0[Y0](r);let j0=b1(r);if(j0)G.emit("item:click",{item:j0.item,index:j0.index,event:r})},j2=(r)=>{let j0=b1(r);if(j0)G.emit("item:dblclick",{item:j0.item,index:j0.index,event:r})},Y2=(r)=>{for(let Y0=0;Y0<G0.length;Y0++)G0[Y0](r);let j0=b1(r);if(j0)G.emit("item:contextmenu",{item:j0.item,index:j0.index,event:r})},X2=(r)=>{for(let j0=0;j0<b0.length;j0++)b0[j0](r)};if(k.items.addEventListener("click",q2),k.items.addEventListener("dblclick",j2),k.items.addEventListener("contextmenu",Y2),k.root.addEventListener("keydown",X2),f){let r=null,j0=(Y0)=>{if(r)clearTimeout(r);r=setTimeout(()=>{if(r=null,B.id)return;let E0=B.vtf();k.liveRegion.textContent=`Showing items ${Y0.range.start+1} to ${Math.min(Y0.range.end+1,E0)} of ${E0}`},300)};G.on("range:change",j0),Z0.push(()=>{if(r)clearTimeout(r);G.off("range:change",j0)})}let R1=new ResizeObserver((r)=>{if(B.id)return;for(let j0 of r){let Y0=j0.contentRect.height,E0=j0.contentRect.width,z0=j?E0:Y0,I0=j?B.cw:B.ch;if(z0>i){if(!K1)K1=!0,console.warn(`[vlist] Viewport grew to ${Math.round(z0)}px (screen: ${i}px). Re-applying size constraint. Check that the vlist container has a CSS height/width constraint.`);let y0=j?"width":"height";k.root.style[y0]="100%",k.viewport.style[y0]="100%";return}if(B.cw=E0,B.ch=Y0,Math.abs(z0-I0)>1){if(D.viewportState.containerSize=z0,B.ii){let y0=D.cachedCompression;if(y0&&y0.state.isCompressed){let u0=`${y0.state.virtualSize+H}px`;if(j)k.content.style.width=u0;else k.content.style.height=u0}else t();B.rfn(),G.emit("resize",{height:Y0,width:E0})}}if(B.ii)for(let y0=0;y0<P0.length;y0++)P0[y0](E0,Y0)}});if(B.vre)R1.observe(k.viewport);let P1={dom:k,emitter:G,resolvedConfig:d,rawConfig:J,rendered:v,pool:n,itemState:q0,sharedState:D,renderRange:N,isHorizontal:j,classPrefix:_,contentSizeHandlers:a,idleHandlers:k0,afterScroll:T0,clickHandlers:_0,contextMenuHandlers:G0,keydownHandlers:b0,resizeHandlers:P0,destroyHandlers:Z0,methods:N0,onScrollFrame:q1,resizeObserver:R1,afterRenderBatch:U0,applyTemplate:W1,updateContentSize:t},V1=H2(B,P1);B.dm=$2(B,P1,V1),B.sc=k2(B,P1),N0.set("_updateRenderedItem",(r,j0,Y0,E0)=>{let z0=v.get(r);if(!z0)return;let I0={selected:Y0,focused:E0};try{let y0=B.at(j0,r,I0);W1(z0,y0,r)}catch(y0){let u0=y0 instanceof Error?y0:Error(String(y0));G.emit("error",{error:u0,context:`tpl(${r},${j0.id})`,viewport:z()})}z0.dataset.id=String(j0.id),W0(z0,Y0,E0)});let U2=new WeakSet;N0.set("_setSizeCache",(r)=>{if(B.hc=r,B.gp>0&&!U2.has(r)){U2.add(r);let j0=B.hc.getTotalSize,Y0=B.gp;B.hc.getTotalSize=()=>{let E0=j0();return E0>0?E0-Y0:0}}}),N0.set("_setConstrainSize",(r)=>{B.csi=r});let Z2=new Map;for(let r of o)if(r.methods)for(let j0 of r.methods){let Y0=Z2.get(j0);if(Y0)throw Error(`[vlist] Method "${j0}" is registered by both "${Y0}" and "${r.name}"`);Z2.set(j0,r.name)}for(let r of o)try{r.setup(V1)}catch(j0){let Y0=j0 instanceof Error?j0:Error(String(j0));console.error(`[vlist] Feature "${r.name}" setup failed:`,Y0),G.emit("error",{error:Y0,context:r.name,viewport:z()})}if(I&&!q.has("withAutoSize"))console.warn("[vlist] estimatedHeight/estimatedWidth requires .use(withAutoSize()). Items will use the estimated size as a fixed size.");if(f&&!N0.has("_getFocusedIndex")){let r=j?M.left:M.top,j0=j?M.right:M.bottom;b2(B,k,_,y,j,r,j0,b,N0,v,b0,_0,Z0,!!J.focusOnClick)}if(B.ii=!0,V1.state.isInitialized=!0,t(),B.rfn(),R&&B.it.length>0){let r=B.gsp(B.it.length-1,B.hc,B.ch,B.it.length,"end");B.sst(r),B.ls=r,B.rfn()}return h2(B,k,G,v,n,N0,o,Z0,V1,R,b,q2,j2,Y2,X2,q1,R1,()=>{},()=>{if(l)clearTimeout(l)})}var I2=(J,q,j)=>{let Q=q.getTotalSize(),Y=j===!0||Q>i0,X=Q>i0?i0:Q,W=Q>0?X/Q:1;return{isCompressed:Y,actualSize:Q,virtualSize:X,ratio:W}},p2=(J,q,j,Q,Y,X)=>{if(Q===0||q===0)return X.start=0,X.end=-1,X;if(!Y.isCompressed||Y.ratio===1){let O=j.indexAtOffset(J),F=j.indexAtOffset(J+q);if(F<Q-1)F++;return X.start=Math.max(0,O),X.end=Math.min(Q-1,Math.max(0,F)),X}let{virtualSize:W}=Y,Z=J/W,_=j.getTotalSize(),K=Z*_,U=j.indexAtOffset(K),S=G2(j,Math.max(0,U),q,Q),T=U+S;return X.start=Math.max(0,U),X.end=Math.min(Q-1,Math.max(0,T)),X};var Q1=(J,q,j,Q,Y,X,W)=>{if(!X.isCompressed||Q===0)return j.getOffset(J);if(X.ratio===1)return j.getOffset(J)-q;let{virtualSize:Z}=X,_=q/Z,K=j.getTotalSize(),U=_*K;return j.getOffset(J)-U},u2=(J,q,j,Q,Y,X="start")=>{if(Q===0)return 0;let W;if(Y.isCompressed&&Y.ratio!==1){W=J/Q*Y.virtualSize;let U=q.getSize(J);switch(X){case"center":W-=(j-U)/2*Y.ratio;break;case"end":W-=(j-U)*Y.ratio;break}return Math.max(0,W)}W=q.getOffset(J);let Z=q.getSize(J);switch(X){case"center":W-=(j-Z)/2;break;case"end":W-=j-Z;break}let _=Y.virtualSize-j;return Math.max(0,Math.min(W,_))};var PJ=(J)=>{if(typeof J!=="object"){let q=J??2;return{top:q,right:q,bottom:q,left:q}}return{top:J.top??2,right:J.right??2,bottom:J.bottom??2,left:J.left??2}},U1=(J,q,j={},Q="vlist",Y=!1,X)=>{let{autoHide:W=!0,autoHideDelay:Z=1000,minThumbSize:_=15,showOnHover:K=!0,showOnViewportEnter:U=!0,clickBehavior:S="scroll"}=j,T=S==="page"?"scroll":S,O=X??J,F=PJ(j.padding),f=Y?F.left:F.top,L=Y?F.right:F.bottom,w=Y?F.bottom:F.right,b=j.hoverZoneWidth??w+16,R=0,y=0,h=0,p=0,I=!1,A=!1,d=0,i=0,o=0,g=null,C=!1,k=null,P=null,M=0,H=0,G=null,m=null,e=null,s=Y?"width":"height",x=Y?"translateX":"translateY",J0=Y?(_0)=>_0.clientX:(_0)=>_0.clientY,n=Y?"left":"top",B=document.createElement("div"),l=document.createElement("div"),$=document.createElement("div"),E=()=>{if(O===J)return;let _0=J.offsetTop,G0=Y?F.left:F.top;B.style[Y?"left":"top"]=`${_0+G0}px`,$.style[Y?"left":"top"]=`${_0}px`},N=()=>{if(B.className=`${Q}-scrollbar`,l.className=`${Q}-scrollbar-thumb`,Y)B.classList.add(`${Q}-scrollbar--horizontal`);if(j.padding!==void 0)J.style.setProperty("--vlist-custom-scrollbar-padding-top",`${F.top}px`),J.style.setProperty("--vlist-custom-scrollbar-padding-right",`${F.right}px`),J.style.setProperty("--vlist-custom-scrollbar-padding-bottom",`${F.bottom}px`),J.style.setProperty("--vlist-custom-scrollbar-padding-left",`${F.left}px`);if(j.minThumbSize!==void 0)B.style.setProperty("--vlist-custom-scrollbar-min-thumb-size",`${_}px`);if(B.appendChild(l),O.appendChild(B),$.className=`${Q}-scrollbar-hover`,Y)$.classList.add(`${Q}-scrollbar-hover--horizontal`),$.style.height=`${b}px`;else $.style.width=`${b}px`;if(O.appendChild($),O!==J)E()},V=()=>{if(g)clearTimeout(g),g=null},D=()=>{if(!W)return;V(),g=setTimeout(v,Z)},z=()=>{if(R<=y)return;if(V(),!C)B.classList.add(`${Q}-scrollbar--visible`),C=!0;if(W&&!I&&!A)D()},v=()=>{if(I||A)return;B.classList.remove(`${Q}-scrollbar--visible`),C=!1},u=(_0,G0)=>{R=_0,y=G0,E();let b0=R>y;if(B.style.display=b0?"":"none",!b0){v();return}let P0=Math.max(0,y-f-L),a=y/R;if(h=Math.max(_,a*P0),l.style[s]=`${h}px`,p=P0-h,t(o),!W)z()},t=(_0)=>{if(o=_0,R<=y||p<=0)return;let G0=R-y,P0=Math.min(1,Math.max(0,_0/G0))*p;l.style.transform=`${x}(${P0}px)`},q0=(_0)=>{if(_0.target===l||T!=="jump"||p<=0)return;let G0=R-y,b0=B.getBoundingClientRect(),P0=J0(_0)-b0[n],a=Math.max(0,Math.min(P0-h/2,p));q(a/p*G0),z()},c=()=>{if(G!==null)clearTimeout(G),G=null;if(m!==null)cancelAnimationFrame(m),m=null;e=null},Q0=(_0)=>{let G0=p>0?H/_0*p:0;if(M<G0)return-1;if(M>=G0+h)return 1;return 0},X0=()=>{let _0=R-y,G0=Q0(_0);if(G0===0){c();return}if(G0===-1){if(H<=0){c();return}let b0=Math.max(0,H-y);H=b0,q(b0)}else{if(H>=_0){c();return}let b0=Math.min(_0,H+y);H=b0,q(b0)}z()},K0=(_0)=>{if(e===null){e=_0,m=requestAnimationFrame(K0);return}let G0=R-y,b0=_0-e;e=_0;let P0=Q0(G0);if(P0===0){c();return}let a=12*y/1000,U0=Math.min(a*b0,y);if(P0===-1){if(H<=0){c();return}let Z0=Math.max(0,H-U0);H=Z0,q(Z0)}else{if(H>=G0){c();return}let Z0=Math.min(G0,H+U0);H=Z0,q(Z0)}V(),m=requestAnimationFrame(K0)},W0=()=>{c(),D(),document.removeEventListener("mouseup",W0)},M0=(_0)=>{if(_0.target===l||T!=="scroll")return;_0.preventDefault();let G0=B.getBoundingClientRect();M=J0(_0)-G0[n],H=o,X0(),G=setTimeout(()=>{m=requestAnimationFrame(K0)},350),document.addEventListener("mouseup",W0)},L0=(_0)=>{_0.preventDefault(),_0.stopPropagation(),I=!0,d=J0(_0),i=o,V(),B.classList.add(`${Q}-scrollbar--dragging`),document.addEventListener("mousemove",R0),document.addEventListener("mouseup",B0)},R0=(_0)=>{if(!I)return;let G0=J0(_0)-d,b0=p>0?G0/p:0,P0=R-y,a=b0*P0,U0=Math.max(0,Math.min(i+a,P0)),N0=U0/P0*p;if(l.style.transform=`${x}(${N0}px)`,P=U0,k===null)k=requestAnimationFrame(()=>{if(P!==null)q(P);k=null})},B0=()=>{if(I=!1,k!==null)cancelAnimationFrame(k),k=null;if(P!==null)q(P),P=null;if(B.classList.remove(`${Q}-scrollbar--dragging`),W&&!A)D();document.removeEventListener("mousemove",R0),document.removeEventListener("mouseup",B0)},D0=()=>{if(U)z()},F0=()=>{if(!I){if(A=!1,W)D()}},w0=()=>{A=!0,V(),z()},T0=()=>{if(A=!1,!I&&W)D()},k0=()=>{if(V(),c(),k!==null)cancelAnimationFrame(k),k=null;if(B.removeEventListener("click",q0),B.removeEventListener("mousedown",M0),B.removeEventListener("mouseenter",w0),document.removeEventListener("mouseup",W0),B.removeEventListener("mouseleave",T0),l.removeEventListener("mousedown",L0),J.removeEventListener("mouseenter",D0),J.removeEventListener("mouseleave",F0),document.removeEventListener("mousemove",R0),document.removeEventListener("mouseup",B0),$.removeEventListener("click",q0),$.removeEventListener("mousedown",M0),K)$.removeEventListener("mouseenter",w0),$.removeEventListener("mouseleave",T0);if($.parentNode)$.parentNode.removeChild($);if(J.style.removeProperty("--vlist-custom-scrollbar-padding-top"),J.style.removeProperty("--vlist-custom-scrollbar-padding-right"),J.style.removeProperty("--vlist-custom-scrollbar-padding-bottom"),J.style.removeProperty("--vlist-custom-scrollbar-padding-left"),B.parentNode)B.parentNode.removeChild(B)};if(N(),B.addEventListener("click",q0),B.addEventListener("mousedown",M0),B.addEventListener("mouseenter",w0),B.addEventListener("mouseleave",T0),l.addEventListener("mousedown",L0),J.addEventListener("mouseenter",D0),J.addEventListener("mouseleave",F0),$.addEventListener("click",q0),$.addEventListener("mousedown",M0),K)$.addEventListener("mouseenter",w0),$.addEventListener("mouseleave",T0);return{show:z,hide:v,updateBounds:u,updatePosition:t,isVisible:()=>C,destroy:k0}};var p1=(J)=>{let q=null;return{name:"withScrollbar",priority:15,setup(j){let{dom:Q,config:Y}=j,{classPrefix:X,horizontal:W}=Y;if(j.methods.has("_hasScrollbar")){let _=Q.root.querySelector(`.${X}-scrollbar`);if(_)_.remove();let K=Q.root.querySelector(`.${X}-scrollbar-hover`);if(K)K.remove()}if(j.methods.set("_hasScrollbar",()=>!0),q=U1(Q.viewport,(_)=>j.scrollController.scrollTo(_),J??{},X,W,Q.root),!Q.viewport.classList.contains(`${X}-viewport--custom-scrollbar`))Q.viewport.classList.add(`${X}-viewport--custom-scrollbar`);if(J?.gutter)Q.viewport.classList.add(`${X}-viewport--gutter`);q.updateBounds(j.state.viewportState.totalSize||j.getCachedCompression().virtualSize,j.state.viewportState.containerSize);let Z=q;j.afterScroll.push((_,K)=>{Z.updatePosition(_),Z.show()}),j.resizeHandlers.push((_,K)=>{if(Z)Z.updateBounds(j.state.viewportState.totalSize||j.getCachedCompression().virtualSize,j.state.viewportState.containerSize)}),j.contentSizeHandlers.push(()=>{if(Z)Z.updateBounds(j.state.viewportState.totalSize||j.getCachedCompression().virtualSize,j.state.viewportState.containerSize)}),j.destroyHandlers.push(()=>{if(Z)Z.destroy()})},destroy(){if(q)q.destroy(),q=null}}};var wJ=0.65,yJ=0.5,g2=1.7,zJ=0.95,CJ=0.1,vJ=5,SJ=100,m2=(J,q,j,Q=0)=>{if(J<=0)return 0;let Y=q-Q;return Math.max(0,Y*(1-j)+Q)},u1=(J)=>{let q=J?.force??!1,j=null,Q=0,Y=!1,X=0,W=0,Z=null,_=0,K=0,U=null,S=[];return{name:"withScale",priority:20,setup(T){let{dom:O,config:F}=T,{classPrefix:f,horizontal:L}=F,w=S0(T.rawConfig.padding),b=L?w.left+w.right:w.top+w.bottom,R=()=>{let g=T.getVirtualTotal(),C=I2(g,T.sizeCache,q);if(C.isCompressed&&!Y){Y=!0,T.scrollController.enableCompression(C);let P=L?O.viewport.scrollLeft:O.viewport.scrollTop;if(L)O.viewport.style.overflowX="hidden";else O.viewport.style.overflow="hidden";if(L)O.viewport.scrollLeft=0;else O.viewport.scrollTop=0;if(P>0)Q=P,W=P;X=m2(C.virtualSize,T.state.viewportState.containerSize,C.ratio,b),T.updateContentSize(C.virtualSize+X),T.setScrollFns(()=>Q,(n)=>{if(Q=n,W=n,Z!==null)cancelAnimationFrame(Z),Z=null});let M=()=>{let n=W-Q;if(T.getVirtualTotal()===0){Q=0,W=0,Z=null,T.triggerScrollFrame();return}if(Math.abs(n)<yJ){let B=T.getCachedCompression(),l=Math.max(0,B.virtualSize+X-T.state.viewportState.containerSize);Q=Math.max(0,Math.min(W,l)),W=Q,Z=null}else{Q+=n*wJ;let l=T.getCachedCompression().virtualSize+X-T.state.viewportState.containerSize;Q=Math.max(0,Math.min(Q,l)),Z=requestAnimationFrame(M)}T.triggerScrollFrame()},H=O.viewport,G=(n)=>{n.preventDefault();let B=T.getCachedCompression(),l=B.virtualSize+X-T.state.viewportState.containerSize;if(W=Math.max(0,Math.min(W+n.deltaY*B.ratio*g2,l)),Z===null)Z=requestAnimationFrame(M)};H.addEventListener("wheel",G,{passive:!1});let m=()=>{if(U!==null)cancelAnimationFrame(U),U=null},e=(n)=>{if(m(),Z!==null)cancelAnimationFrame(Z),Z=null;let B=n.touches[0];if(!B)return;let l=L?B.clientX:B.clientY;_=l,K=Q,S=[{time:performance.now(),y:l}]},s=(n)=>{n.preventDefault();let B=n.touches[0];if(!B)return;let l=L?B.clientX:B.clientY,$=performance.now();if(S.push({time:$,y:l}),S.length>vJ)S.shift();let E=_-l,N=T.getCachedCompression(),V=N.virtualSize+X-T.state.viewportState.containerSize,D=Math.max(0,Math.min(K+E*N.ratio*g2,V));Q=D,W=D,T.triggerScrollFrame()},x=(n)=>{let B=performance.now(),l=S.filter((V)=>B-V.time<SJ),$=0;if(l.length>=2){let V=l[0],D=l[l.length-1],z=D.time-V.time;if(z>0)$=(V.y-D.y)/z}if(S=[],Math.abs($)<CJ)return;let E=$*16,N=()=>{if(E*=zJ,Math.abs(E)<0.5){U=null;return}let D=T.getCachedCompression().virtualSize+X-T.state.viewportState.containerSize,z=Q+E;if(z=Math.max(0,Math.min(z,D)),z<=0&&E<0||z>=D&&E>0){Q=z,W=z,T.triggerScrollFrame(),U=null;return}Q=z,W=z,T.triggerScrollFrame(),U=requestAnimationFrame(N)};U=requestAnimationFrame(N)};H.addEventListener("touchstart",e,{passive:!0}),H.addEventListener("touchmove",s,{passive:!1}),H.addEventListener("touchend",x,{passive:!0}),H.addEventListener("touchcancel",x,{passive:!0}),T.destroyHandlers.push(()=>{H.removeEventListener("wheel",G),H.removeEventListener("touchstart",e),H.removeEventListener("touchmove",s),H.removeEventListener("touchend",x),H.removeEventListener("touchcancel",x)});let J0=()=>{if((L?O.viewport.scrollLeft:O.viewport.scrollTop)!==0)if(L)O.viewport.scrollLeft=0;else O.viewport.scrollTop=0};if(H.addEventListener("scroll",J0,{passive:!0}),T.destroyHandlers.push(()=>{H.removeEventListener("scroll",J0)}),!T.methods.has("_hasScrollbar")){if(T.methods.set("_hasScrollbar",()=>!0),j=U1(O.viewport,(B)=>T.scrollController.scrollTo(B),{},f,L,O.root),!O.viewport.classList.contains(`${f}-viewport--custom-scrollbar`))O.viewport.classList.add(`${f}-viewport--custom-scrollbar`);j.updateBounds(C.virtualSize,T.state.viewportState.containerSize);let n=j;T.afterScroll.push((B,l)=>{if(n)n.updatePosition(B),n.show()}),T.resizeHandlers.push((B,l)=>{if(n){let $=T.getCachedCompression();n.updateBounds($.virtualSize,T.state.viewportState.containerSize)}})}}else if(!C.isCompressed&&Y){if(Y=!1,Z!==null)cancelAnimationFrame(Z),Z=null;if(U!==null)cancelAnimationFrame(U),U=null;if(Q=0,W=0,S=[],T.setScrollFns(L?()=>O.viewport.scrollLeft:()=>O.viewport.scrollTop,L?(P)=>{O.viewport.scrollLeft=P}:(P)=>{O.viewport.scrollTop=P}),L)O.viewport.scrollLeft=0;else O.viewport.scrollTop=0;if(T.scrollController.disableCompression(),L)O.viewport.style.overflowX="auto";else O.viewport.style.overflow="auto";if(j)j.destroy(),j=null;X=0,T.updateContentSize(C.actualSize)}else if(C.isCompressed)T.scrollController.updateConfig({compression:C}),X=m2(C.virtualSize,T.state.viewportState.containerSize,C.ratio,b),T.updateContentSize(C.virtualSize+X);if(j)j.updateBounds(C.virtualSize+X,T.state.viewportState.containerSize);let k=T.state.viewportState;if(k.isCompressed=C.isCompressed,k.compressionRatio=C.ratio,k.totalSize=C.virtualSize+X,k.actualSize=C.actualSize,T.state.cachedCompression={state:C,totalItems:g},Y){let P=Math.max(0,C.virtualSize+X-T.state.viewportState.containerSize),M=Q;if(M>P)M=P;else if(M<0)M=0;if(M!==Q){if(Z!==null)cancelAnimationFrame(Z),Z=null;if(U!==null)cancelAnimationFrame(U),U=null;T.scrollController.scrollTo(M)}}for(let P=0;P<T.contentSizeHandlers.length;P++)T.contentSizeHandlers[P]()};T.updateCompressionMode=R;let y=T.getCachedCompression.bind(T);T.getCachedCompression=()=>{if(T.state.cachedCompression)return T.state.cachedCompression.state;return y()},T.setVisibleRangeFn((g,C,k,P,M)=>{p=null,I=null,p2(g,C,k,P,T.getCachedCompression(),M)}),T.setScrollToPosFn((g,C,k,P,M)=>{return u2(g,C,k,P,T.getCachedCompression(),M)});let h=NaN,p=null,I=null,A=L;T.setPositionElementFn((g,C)=>{let k=T.scrollController.getScrollTop(),P=T.getCachedCompression();if(k!==h)h=k,p=null,I=null;if(P.isCompressed){if(p===null||C<I)I=C,p=Math.round(Q1(C,k,T.sizeCache,T.getVirtualTotal(),T.state.viewportState.containerSize,P));let M=p+T.sizeCache.getOffset(C)-T.sizeCache.getOffset(I);g.style.transform=A?`translateX(${M}px)`:`translateY(${M}px)`}else{let M=Math.round(T.sizeCache.getOffset(C));g.style.transform=A?`translateX(${M}px)`:`translateY(${M}px)`}});let d=L?w.left:w.top,i=L?w.right:w.bottom,o=T.getItemToScrollIndexFn();T.methods.set("_scrollItemIntoView",(g)=>{let C=T.getCachedCompression(),k=T.state.viewportState.containerSize,P=T.state.viewportState.scrollPosition,M=T.getVirtualTotal(),{visibleRange:H}=T.state.viewportState,G=o(g),m=O1(G,T.sizeCache,P,k,d,i,C,M,H);if(m!==P)T.scrollController.scrollTo(m)}),R(),T.destroyHandlers.push(()=>{if(j)j.destroy(),j=null;if(Z!==null)cancelAnimationFrame(Z),Z=null;if(U!==null)cancelAnimationFrame(U),U=null})}}};var x2=(J={})=>{let{chunkSize:q=100,maxCachedItems:j=5000,evictionBuffer:Q=200,onEvict:Y}=J,X=new Map,W=0,Z=0,_=(P)=>{let M=X.get(P);if(!M)M={items:Array(q),count:0,lastAccess:Date.now()},X.set(P,M);else M.lastAccess=Date.now();return M},K=(P)=>{return Math.floor(P/q)},U=(P)=>{return P%q},S=()=>W,T=(P)=>{W=P},O=(P)=>{if(P<0||P>=W)return;let M=K(P),H=X.get(M);if(!H)return;return H.items[U(P)]},F=(P)=>{if(P<0||P>=W)return!1;let M=K(P),H=X.get(M);if(!H)return!1;return H.items[U(P)]!==void 0},f=(P,M)=>{let H=K(P),G=_(H),m=U(P),e=G.items[m]===void 0;if(G.items[m]=M,e)G.count++,Z++;if(P>=W)W=P+1},L=(P,M)=>{for(let H=0;H<M.length;H++){let G=M[H];if(G!==void 0)f(P+H,G)}},w=(P)=>{if(P<0||P>=W)return!1;let M=K(P),H=X.get(M),G=U(P);if(!(H!==void 0&&H.items[G]!==void 0))return!1;let e=M,s=Array.from(X.keys()).filter((J0)=>J0>=e).sort((J0,n)=>J0-n),x=[];for(let J0 of s){let n=X.get(J0),B=J0*q;for(let l=0;l<q;l++){if(n.items[l]===void 0)continue;let $=B+l;if($<=P)continue;x.push({oldIndex:$,item:n.items[l]})}}if(H.items[G]=void 0,H.count--,Z--,H.count===0)X.delete(M);for(let{oldIndex:J0}of x){let n=K(J0),B=X.get(n);if(!B)continue;let l=U(J0);if(B.items[l]!==void 0){if(B.items[l]=void 0,B.count--,Z--,B.count===0)X.delete(n)}}for(let{oldIndex:J0,item:n}of x){let B=J0-1,l=K(B),$=_(l),E=U(B);$.items[E]=n,$.count++,Z++}return W--,!0},b=(P,M)=>{let H=[];for(let G=P;G<=M&&G<W;G++)H.push(O(G));return H},R=(P,M)=>{for(let H=P;H<=M&&H<W;H++)if(!F(H))return!1;return!0},y=()=>{let P=[],M=null,H=Array.from(X.keys()).sort((G,m)=>G-m);for(let G of H){let m=X.get(G);if(!m)continue;let e=G*q;for(let s=0;s<q;s++){let x=e+s;if(x>=W)break;if(m.items[s]!==void 0)if(M===null)M={start:x,end:x};else if(x===M.end+1)M.end=x;else P.push(M),M={start:x,end:x};else if(M!==null)P.push(M),M=null}}if(M!==null)P.push(M);return P},h=(P,M)=>{let H=[],G=null;for(let m=P;m<=M&&m<W;m++)if(!F(m))if(G===null)G={start:m,end:m};else G.end=m;else if(G!==null)H.push(G),G=null;if(G!==null)H.push(G);return H},p=(P)=>{return X.has(P)},I=(P)=>{let M=X.get(P);if(M)M.lastAccess=Date.now()},A=(P,M)=>{if(P>M||X.size===0)return;let H=Date.now(),G=K(Math.max(0,P)),m=K(Math.min(W-1,M));for(let e=G;e<=m;e++){let s=X.get(e);if(s)s.lastAccess=H}},d=(P,M)=>{if(Z<=j)return 0;let H=Math.max(0,P-Q),G=Math.min(W-1,M+Q),m=K(H),e=K(G),s=0,x=[];for(let[J0,n]of X)if(J0<m||J0>e)s+=n.count,x.push(J0),Z-=n.count,X.delete(J0);if(s>0&&Y)Y(s,x);return s},i=()=>{if(Z<=j)return 0;let P=Array.from(X.entries()).sort(([,G],[,m])=>G.lastAccess-m.lastAccess),M=0,H=[];for(let[G,m]of P){if(Z<=j)break;M+=m.count,Z-=m.count,H.push(G),X.delete(G)}if(M>0&&Y)Y(M,H);return M},o=()=>{return{totalItems:W,cachedItems:Z,cachedChunks:X.size,chunkSize:q,maxCachedItems:j,memoryEfficiency:W>0?1-Z/W:1}},g=()=>Z,C=()=>{X.clear(),Z=0};return{chunkSize:q,maxCachedItems:j,getTotal:S,setTotal:T,get:O,has:F,set:f,setRange:L,delete:w,getRange:b,isRangeLoaded:R,getLoadedRanges:y,findUnloadedRanges:h,getChunkIndex:K,isChunkLoaded:p,touchChunk:I,touchChunksForRange:A,evictDistant:d,evictToLimit:i,getStats:o,getCachedCount:g,clear:C,reset:()=>{C(),W=0}}};var d2=(J={})=>{let{maskCharacter:q=y2,maxSampleSize:j=z2}=J,Q=[],Y=!1,X=(U)=>{if(Y||U.length===0)return;let S=Math.min(U.length,j);for(let T=0;T<S;T++){let O=U[T];if(!O||typeof O!=="object")continue;let F={};for(let[f,L]of Object.entries(O)){if(f.startsWith("_")||f==="id")continue;F[f]=String(L??"").length}if(Object.keys(F).length>0)Q.push(F)}Y=!0},W=()=>Y,Z=(U)=>{let S={id:`${g0}${U}`,[C1]:!0,_index:U};if(Q.length===0)return S.label=q.repeat(12),S;let T=Q[U%Q.length];for(let[O,F]of Object.entries(T))S[O]=q.repeat(Math.max(1,F));return S};return{analyzeStructure:X,hasAnalyzedStructure:W,generate:Z,generateRange:(U,S)=>{let T=[];for(let O=U;O<=S;O++)T.push(Z(O));return T},clear:()=>{Q=[],Y=!1}}},H1=(J)=>{if(!J||typeof J!=="object")return!1;return J[C1]===!0};var fJ=50,l2=(J={})=>{let{adapter:q,initialItems:j,initialTotal:Q,storage:Y,placeholder:X,pageSize:W=fJ,onStateChange:Z,onItemsLoaded:_,onItemsEvicted:K}=J,U=x2({...Y,onEvict:(c,Q0)=>{K?.(c),A()}}),S=null,T=()=>{if(!S)S=d2(X);return S},O=new Map,F=!1,f,L=!0,w,b,R=[],y=0,h=new Map,p=new Map,I=()=>{for(let c of p.values())c.abort();p.clear(),h.clear()},A=()=>{Z?.(H())},d=()=>{O.clear();let c=U.getLoadedRanges();for(let Q0 of c)for(let X0=Q0.start;X0<=Q0.end;X0++){let K0=U.get(X0);if(K0&&!H1(K0))O.set(K0.id,X0)}},i=(c,Q0)=>{if(!H1(Q0))O.set(Q0.id,c)},o=(c)=>{O.delete(c)},g=(c,Q0)=>{return`${c}-${Q0}`},C=()=>U.getTotal(),k=()=>U.getCachedCount(),P=()=>F,M=()=>L,H=()=>({total:U.getTotal(),cached:U.getCachedCount(),isLoading:F,pendingRanges:R,error:f,hasMore:L,cursor:w}),G=()=>U,m=()=>T(),e=(c)=>{let Q0=U.get(c);if(Q0!==void 0)return Q0;if(c>=0&&c<U.getTotal())return T().generate(c);return},s=(c)=>{let Q0=O.get(c);if(Q0===void 0)return;return U.get(Q0)},x=(c)=>{return O.get(c)??-1},J0=(c)=>{let Q0=U.get(c);return Q0!==void 0&&!H1(Q0)},n=(c,Q0)=>{let X0=[],K0=U.getTotal(),W0=0,M0=0;U.touchChunksForRange(c,Math.min(Q0,K0-1));for(let L0=c;L0<=Q0&&L0<K0;L0++){let R0=U.get(L0);if(R0!==void 0)X0.push(R0),W0++;else X0.push(T().generate(L0)),M0++}return X0},B=(c)=>{U.setTotal(c),L=U.getCachedCount()<c,A()},l=(c,Q0=0,X0)=>{if(q&&c.length>0){let K0=T();if(!K0.hasAnalyzedStructure())K0.analyzeStructure(c)}for(let K0=0;K0<c.length;K0++){let W0=c[K0];if(W0!==void 0){let M0=Q0+K0;U.set(M0,W0),i(M0,W0)}}if(X0!==void 0)U.setTotal(X0);else if(Q0+c.length>U.getTotal())U.setTotal(Q0+c.length);if(U.getCachedCount()>=U.getTotal()&&U.getTotal()>0)L=!1;A(),_?.(c,Q0,U.getTotal())},$=(c,Q0)=>{let X0=U.get(c);if(!X0)return!1;let K0=X0.id,W0={...X0,...Q0};if(U.set(c,W0),Q0.id!==void 0&&Q0.id!==K0)o(K0);return i(c,W0),A(),!0},E=(c)=>{let Q0=O.get(c);if(Q0===void 0)return!1;if(!U.delete(Q0))return!1;return d(),I(),A(),!0},N=async(c,Q0)=>{if(!q)return;let X0=g(c,Q0);if(h.has(X0))return;let K0=U.chunkSize,W0=Math.floor(c/K0),M0=Math.floor(Q0/K0),L0=K0*2;for(let[D0,F0]of p){let w0=D0.indexOf("-"),T0=parseInt(D0.slice(0,w0),10);if(Math.abs(T0-c)>L0)F0.abort(),p.delete(D0),h.delete(D0)}let R0=[];for(let D0=W0;D0<=M0;D0++){let F0=D0*K0,w0=F0+K0-1,T0=g(F0,w0);if(!U.isChunkLoaded(D0)&&!h.has(T0))R0.push({start:F0,end:w0})}if(R0.length===0)return;let B0=[];for(let D0=W0;D0<=M0;D0++){let F0=D0*K0,w0=F0+K0-1,T0=g(F0,w0);if(h.has(T0)){let k0=h.get(T0);if(!B0.includes(k0))B0.push(k0)}}for(let D0 of R0){let F0=g(D0.start,D0.end),w0=new AbortController;p.set(F0,w0);let T0=(async()=>{R.push(D0),F=!0,f=void 0,A();try{let k0=D0.end-D0.start+1,_0={offset:D0.start,limit:k0,cursor:D0.start===b?w:void 0,signal:w0.signal},G0=await q.read(_0);if(l(G0.items,D0.start,G0.total),G0.cursor)w=G0.cursor,b=D0.start+G0.items.length;let b0=D0.start+G0.items.length;if(b0>=y){if(y=b0,G0.hasMore!==void 0)L=G0.hasMore;else if(G0.total!==void 0)L=b0<G0.total}}catch(k0){if(k0?.name==="AbortError")return;f=k0 instanceof Error?k0:Error(String(k0))}finally{h.delete(F0),p.delete(F0),R=R.filter((k0)=>k0.start!==D0.start||k0.end!==D0.end),F=h.size>0,A()}})();h.set(F0,T0),B0.push(T0)}await Promise.all(B0)},V=async(c,Q0)=>{if(U.isRangeLoaded(c,Q0))return;await N(c,Q0)},D=async()=>{if(!q)return;await N(0,W-1)},z=async()=>{if(!q||F||!L)return!1;let c=U.getCachedCount(),Q0=U.getTotal(),X0=c,K0=Math.min(X0+W-1,Q0>0?Q0-1:X0+W-1);if(X0>=Q0&&Q0>0)return L=!1,!1;return await N(X0,K0),U.getCachedCount()>c},v=async()=>{if(U.clear(),U.setTotal(0),O.clear(),S)S.clear();I(),R=[],F=!1,w=void 0,b=void 0,L=!0,y=0,f=void 0,A()},u=(c,Q0)=>{if(U.evictDistant(c,Q0)>0)d()},t=()=>{U.clear(),O.clear(),w=void 0,b=void 0,f=void 0,R=[],F=!1,A()},q0=()=>{if(U.reset(),O.clear(),S)S.clear();w=void 0,b=void 0,L=!0,y=0,f=void 0,R=[],F=!1,A()};if(j&&j.length>0)l(j,0,Q??j.length);else if(Q!==void 0)U.setTotal(Q),A();return{getState:H,getTotal:C,getCached:k,getIsLoading:P,getHasMore:M,getStorage:G,getPlaceholders:m,getItem:e,getItemById:s,getIndexById:x,isItemLoaded:J0,getItemsInRange:n,setTotal:B,setItems:l,updateItem:$,removeItem:E,loadRange:N,ensureRange:V,loadInitial:D,loadMore:z,reload:v,evictDistant:u,clear:t,reset:q0}};var g1=(J)=>{let{adapter:q,loading:j,storage:Q,total:Y,autoLoad:X=!0}=J,W=j?.cancelThreshold??P2,Z=j?.preloadThreshold??w2,_=j?.preloadAhead??R2;return{name:"withAsync",priority:20,methods:["reload","loadVisibleRange"],setup(K){let{emitter:U}=K,S=K.config.reverse,T=K.methods.get("_getGridLayout"),O=(g)=>{let C=K.methods.get("_getGroupBridge");if(C){let k=C();if(k&&k.groupCount>0){let P=k.layoutToDataIndex(g.start),M=k.layoutToDataIndex(g.end);if(P<0){for(let H=g.start+1;H<=g.end;H++)if(P=k.layoutToDataIndex(H),P>=0)break}if(M<0){for(let H=g.end-1;H>=g.start;H--)if(M=k.layoutToDataIndex(H),M>=0)break}if(P>=0&&M>=0)return{start:P,end:M}}}if(T){let k=T();if(k){let P=K.dataManager.getTotal();return k.getItemRange(g.start,g.end,P)}}return g};K.methods.set("_isAsync",()=>!0);let F=[];K.methods.set("_onItemsLoaded",(g)=>{F.push(g)});let f=l2({adapter:q,...Y!==void 0&&{initialTotal:Y},pageSize:Q?.chunkSize??n0,...Q&&{storage:{...Q.chunkSize!==void 0&&{chunkSize:Q.chunkSize},...Q.maxCachedItems!==void 0&&{maxCachedItems:Q.maxCachedItems}}},onStateChange:()=>{if(K.state.isInitialized){let g=K.getVirtualTotal();if(g!==K.sizeCache.getTotal())K.sizeCache.rebuild(g);K.updateCompressionMode();let C=K.getCachedCompression();K.state.viewportState.totalSize=C.virtualSize,K.state.viewportState.actualSize=C.actualSize,K.state.viewportState.isCompressed=C.isCompressed,K.state.viewportState.compressionRatio=C.ratio,K.updateContentSize(C.virtualSize),K.renderIfNeeded()}},onItemsLoaded:(g,C,k)=>{if(K.state.isInitialized){for(let P of F)P(g,C,k);K.forceRender(),U.emit("load:end",{items:g,total:k,offset:C})}}});K.replaceDataManager(f);let L=null,w=null,b=0,R=!1,y=null,h=120,p=(g=!1)=>{if(R=!1,w=null,g)L=null;if(y!==null)clearTimeout(y),y=null},I=()=>{if(!w)return;w=null;let{renderRange:g}=K.state.viewportState;if(g.end<g.start)return;L=null;let C=O(g);K.dataManager.ensureRange(C.start,C.end).catch((k)=>{U.emit("error",{error:k,context:"ensureRange"})})};K.afterScroll.push((g,C)=>{if(K.state.isDestroyed)return;let k=K.scrollController.getVelocity(),M=K.scrollController.isTracking()&&k<=W;if(b>W&&k<=W)R=!0;else if(R&&k>W)p();if(R&&k<0.5)p(!0);if(b=k,(K.scrollController.isAtTop()||K.scrollController.isAtBottom())&&(R||w))p(!0),M=!0;let G=R&&k>0.5;if(M&&!K.dataManager.getIsLoading()&&K.dataManager.getHasMore()){if(S){if(g<z1)U.emit("load:start",{offset:K.dataManager.getCached(),limit:n0}),K.dataManager.loadMore().catch((s)=>{U.emit("error",{error:s,context:"loadMore"})})}else if(K.state.viewportState.totalSize-g-K.state.viewportState.containerSize<z1)U.emit("load:start",{offset:K.dataManager.getCached(),limit:n0}),K.dataManager.loadMore().catch((x)=>{U.emit("error",{error:x,context:"loadMore"})})}let{renderRange:m}=K.state.viewportState;if(!L||m.start!==L.start||m.end!==L.end){if(L={start:m.start,end:m.end},M&&!G){if(w=null,y!==null)clearTimeout(y),y=null;let s=O(m),x=s.start,J0=s.end,n=T?K.dataManager.getTotal():K.getVirtualTotal();if(k>Z)if(C==="down")J0=Math.min(s.end+_,n-1);else x=Math.max(s.start-_,0);K.dataManager.ensureRange(x,J0).catch((B)=>{U.emit("error",{error:B,context:"ensureRange"})})}else if(w={start:m.start,end:m.end},G){if(y!==null)clearTimeout(y);y=setTimeout(()=>{y=null,I(),p()},h)}}});let A=200,d=null;K.afterScroll.push((g,C)=>{if(d!==null)clearTimeout(d);d=setTimeout(()=>{d=null,I(),p()},A)}),K.destroyHandlers.push(()=>{if(d!==null)clearTimeout(d),d=null;p()});let i=()=>{if(K.state.isDestroyed)return;L=null;let{renderRange:g}=K.state.viewportState;if(g.end>0){let C=O(g);K.dataManager.ensureRange(C.start,C.end).catch((k)=>{U.emit("error",{error:k,context:"ensureRange"})})}I()};window.addEventListener("online",i),K.destroyHandlers.push(()=>{window.removeEventListener("online",i)}),U.on("load:start",()=>{K.dom.root.setAttribute("aria-busy","true")}),U.on("load:end",()=>{K.dom.root.removeAttribute("aria-busy")}),K.methods.set("loadVisibleRange",async()=>{L=null,w=null,K.forceRender();let{renderRange:g}=K.state.viewportState;if(g.end>0){let C=O(g);U.emit("load:start",{offset:C.start,limit:C.end-C.start+1}),await K.dataManager.ensureRange(C.start,C.end)}}),K.methods.set("reload",async(g)=>{L=null,w=null;let C=g?.snapshot,k=C!=null&&(C.total??0)>0&&C.index>0,P=k||g?.skipInitialLoad===!0;if(K.invalidateRendered(),await K.dataManager.reload(),!k)K.scrollController.scrollTo(0);if(!P){U.emit("load:start",{offset:0,limit:n0}),await K.dataManager.loadInitial(),K.forceRender();let{renderRange:M}=K.state.viewportState;if(M.end>0){let H=O(M);await K.dataManager.ensureRange(H.start,H.end)}}if(k){let M=K.methods.get("restoreScroll");if(M)M(C)}});let o=!1;if(K.methods.set("_cancelAutoLoad",()=>{o=!0}),X)queueMicrotask(()=>{if(o)return;U.emit("load:start",{offset:0,limit:n0}),K.dataManager.loadInitial().catch((g)=>{U.emit("error",{error:g,context:"loadInitial"})})});else if(Y!==void 0)K.dataManager.setTotal(Y)}}};var $1=(J)=>J==null?0:typeof J==="function"?J():J,m1=(J)=>{let q=null,j=J?.scrollPadding;return{name:"withPage",priority:5,setup(Q){let{dom:Y,state:X,config:W,emitter:Z}=Q;if(Y.root.style.overflow="visible",Y.root.style.height="auto",W.horizontal)Y.viewport.style.overflowX="visible",Y.viewport.style.overflowY="visible";else Y.viewport.style.overflow="visible";if(Y.viewport.classList.remove(`${W.classPrefix}-viewport--custom-scrollbar`),Q.disableViewportResize(),Q.disableWheelHandler(),Q.setScrollTarget(window),Q.setScrollFns(()=>{let S=Y.viewport.getBoundingClientRect();return Math.max(0,W.horizontal?-S.left:-S.top)},(S)=>{let T=Y.viewport.getBoundingClientRect();if(W.horizontal){let O=T.left+window.scrollX;window.scrollTo({left:O+S,top:window.scrollY,behavior:"instant"})}else{let O=T.top+window.scrollY;window.scrollTo({left:window.scrollX,top:O+S,behavior:"instant"})}}),Q.setContainerDimensions({width:()=>window.innerWidth,height:()=>window.innerHeight}),X.viewportState.containerSize=window.innerHeight,j){let S=W.horizontal,T=Q.getItemToScrollIndexFn();Q.setScrollToPosFn((O,F,f,L,w)=>{let b=$1(S?j.left:j.top),R=$1(S?j.right:j.bottom);if(L===0)return 0;let y=Math.max(0,Math.min(O,L-1)),h=F.getOffset(y),p=F.getSize(y),I=F.getTotalSize(),A=Math.max(0,I-f+R),d;switch(w){case"start":d=h-b;break;case"center":{let i=f-b-R;d=h-b-(i-p)/2;break}case"end":d=h-f+p+R;break}return Math.max(-b,Math.min(d,A))}),Q.methods.set("_scrollItemIntoView",(O)=>{let F=T(O),f=S?window.innerWidth:window.innerHeight,L=$1(S?j.left:j.top),w=$1(S?j.right:j.bottom),b=Y.viewport.getBoundingClientRect(),R=S?window.scrollX:window.scrollY,y=(S?b.left:b.top)+R,h=y-R,p=Q.sizeCache.getOffset(F),I=Q.sizeCache.getSize(F),A=h+p,d=A+I,i=L,o=f-w,g=R;if(A<i)g=y+p-i;else if(d>o)g=y+p+I-o;if(g!==R)if(S)window.scrollTo({left:g,top:window.scrollY,behavior:"instant"});else window.scrollTo({left:window.scrollX,top:g,behavior:"instant"})})}let{innerHeight:_,innerWidth:K}=window,U=()=>{let{innerWidth:S,innerHeight:T}=window,O=W.horizontal?S:T,F=W.horizontal?K:_;if(Math.abs(O-F)<=1)return;_=T,K=S,X.viewportState.containerSize=T,Z.emit("resize",{width:S,height:T});for(let f=0;f<Q.resizeHandlers.length;f++)Q.resizeHandlers[f](S,T);Q.renderIfNeeded()};window.addEventListener("resize",U,{passive:!0}),q=()=>{window.removeEventListener("resize",U)},Q.destroyHandlers.push(q)},destroy(){if(q)q(),q=null}}};var x1=(J,q)=>{let j=0,Q=J.length-1;while(j<Q){let Y=j+Q+1>>>1;if(J[Y].headerLayoutIndex<=q)j=Y;else Q=Y-1}return j},c2=(J,q)=>{let j=0,Q=J.length-1;while(j<Q){let Y=j+Q+1>>>1;if(J[Y].firstDataIndex<=q)j=Y;else Q=Y-1}return j},r2=(J,q,j)=>{if(J===0)return[];let Q=[],Y=q(0,j?.(0)),X=0,W=0;for(let Z=1;Z<J;Z++){let _=q(Z,j?.(Z));if(_!==Y){let K=Z-X;Q.push({key:Y,groupIndex:Q.length,headerLayoutIndex:W,firstDataIndex:X,count:K}),W=W+1+K,Y=_,X=Z}}return Q.push({key:Y,groupIndex:Q.length,headerLayoutIndex:W,firstDataIndex:X,count:J-X}),Q},d1=(J,q)=>{if(J.length===0||q.length===0)return[];let j=J.length+q.length,Q=Array(j),Y=0;for(let X of q){Q[Y]={id:`__group_header_${X.groupIndex}`,__groupHeader:!0,groupKey:X.key,groupIndex:X.groupIndex},Y++;for(let W=0;W<X.count;W++)Q[Y]=J[X.firstDataIndex+W],Y++}return Q},s2=(J,q,j=!1)=>{let Q=typeof q==="number"?(Y)=>q:q;return(Y)=>{let X=J.getEntry(Y);if(X.type==="header"){if(j&&X.group.groupIndex===0)return 0;return J.getHeaderHeight(X.group.groupIndex)}return Q(X.dataIndex)}},a2=(J,q,j)=>{let Q=r2(J,q.getGroupForIndex,j),Y=J+Q.length,X=q.header?.height??q.header?.width??q.headerHeight;return{get totalEntries(){return Y},get groupCount(){return Q.length},get groups(){return Q},getEntry:(O)=>{if(Q.length===0)return{type:"item",dataIndex:O,group:{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0}};let F=x1(Q,O),f=Q[F];if(O===f.headerLayoutIndex)return{type:"header",group:f};let L=O-f.headerLayoutIndex-1;return{type:"item",dataIndex:f.firstDataIndex+L,group:f}},layoutToDataIndex:(O)=>{if(Q.length===0)return O;let F=x1(Q,O),f=Q[F];if(O===f.headerLayoutIndex)return-1;let L=O-f.headerLayoutIndex-1;return f.firstDataIndex+L},dataToLayoutIndex:(O)=>{if(Q.length===0)return O;let F=c2(Q,O),f=Q[F],L=O-f.firstDataIndex;return f.headerLayoutIndex+1+L},getGroupAtLayoutIndex:(O)=>{if(Q.length===0)return{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0};let F=x1(Q,O);return Q[F]},getGroupAtDataIndex:(O)=>{if(Q.length===0)return{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0};let F=c2(Q,O);return Q[F]},getHeaderHeight:typeof X==="number"?(O)=>X:(O)=>{let F=Q[O];if(!F)return 0;return X(F.key,O)},rebuild:(O,F)=>{Q=r2(O,q.getGroupForIndex,F??j),Y=O+Q.length}}};var o2=(J,q,j,Q,Y=0)=>{let X=j?"width":"height",W=document.createElement("div");return W.className=`${q}-sticky-header`,W.setAttribute("role","presentation"),W.setAttribute("aria-hidden","true"),W.style.cssText="position:relative;z-index:5;pointer-events:none;overflow:hidden;"+(j?`top:0;bottom:0;left:${Y||0}px`:`top:${Y||0}px`),W.style[X]=`${Q}px`,J.insertBefore(W,J.firstChild),W},l1=(J,q,j,Q,Y,X=!1,W=0,Z,_)=>{let K=X?"width":"height",U=X?"height":"width",S=X?"X":"Y",T=(N,V)=>{N.style[K]=`${V}px`},O=_??(()=>{let N=document.createElement("div");return N.className=`${Y}-sticky-header`,N.setAttribute("role","presentation"),N.setAttribute("aria-hidden","true"),N.style.cssText="position:relative;z-index:5;pointer-events:none;overflow:hidden;"+(X?`top:0;bottom:0;left:${W||0}px`:`top:${W||0}px`),J.insertBefore(N,J.firstChild),N})(),F=()=>{let N=document.createElement("div");return N.className="sticky-group",N.style.position="absolute",N.style.willChange="transform",N.style[U]="100%",N},f=F(),L=F();if(O.append(f,L),!_)J.insertBefore(O,J.firstChild);let w=f,b=L,R=q.groups,y=[],h=[],p=[],I=0,A=()=>{R=q.groups,I=R.length,y=Array(I),h=Array(I),p=Array(I);let N=Z?Z():1;for(let V=0;V<I;V++)y[V]=j.getOffset(R[V].headerLayoutIndex)*N,h[V]=q.getHeaderHeight(V),p[V]=h[V]*N};A();let d=-1,i=0,o=0,g=-1,C=!1,k=0,P=!1,M=(N,V)=>{Q(N,V);let D=h[V];return T(N,D),D},H=(N)=>{N.replaceChildren(),N.style.transform=""},G=(N)=>{if(N===d)return;if(d=N,i=0,o=0,N<0||N>=I){H(w);return}i=M(w,N),o=p[N],T(O,i),w.style.transform=""},m=(N)=>{if(N===k)return;k=N;let V=Math.round(N);w.style.transform=`translate${S}(${V}px)`,b.style.transform=`translate${S}(${V+i}px)`},e=()=>{k=0,w.style.transform="",b.style.transform=""},s=()=>{if(!P)return;let N=w;w=b,b=N,d=g,i=d>=0?h[d]:0,o=d>=0?p[d]:0,T(O,i),H(b),g=-1,P=!1,e()},x=()=>{if(!P)return;H(b),g=-1,P=!1,e()},J0=!!_,n=()=>{if(C)return;if(C=!0,J0)O.style.visibility="";else O.style.display=""},B=()=>{if(!C)return;if(C=!1,J0)O.style.visibility="hidden";else O.style.display="none";H(w),d=-1,i=0,o=0,x()},l=(N)=>{if(I===0){B();return}if(N<y[0]){B();return}let V=0,D=I-1;while(V<D){let v=V+D+1>>>1;if(y[v]+p[v]<=N)V=v;else D=v-1}if(!C)n();G(V);let z=V+1;if(z<I){let v=y[z]-N;if(v<=0&&v>-o){if(g!==z||!P)g=z,M(b,z),P=!0;let u=o>0?v/o*i:v;m(u)}else if(v<=-o){if(P)s()}else if(P)x()}else if(P)x()},$=()=>{A();let N=d;if(d=-1,i=0,o=0,N>=0)G(N)},E=()=>{O.remove(),d=-1,i=0,o=0,g=-1,C=!1,P=!1};if(!_)O.style.display="none";return{update:l,refresh:$,show:n,hide:B,destroy:E}};var p0=(J)=>{return J!==null&&typeof J==="object"&&J.__groupHeader===!0};var k1=(J,q)=>{let j=0,Q=J.length-1;while(j<Q){let Y=j+Q+1>>>1;if(J[Y].headerLayoutIndex<=q)j=Y;else Q=Y-1}return j},n2=(J,q)=>{let j=0,Q=J.length-1;while(j<Q){let Y=j+Q+1>>>1;if(J[Y].firstDataIndex<=q)j=Y;else Q=Y-1}return j},i2={key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0},t2=(J,q,j)=>{let Q=[],Y=0,X=0,W=new Map,Z=()=>{if(Q=[],Y===0||W.size===0){X=Y;return}let b=null,R=-1,y=0;for(let h=0;h<Y;h++){let p=W.get(h);if(p===void 0){if(b!==null&&R>=0){let I=h-R;Q.push({key:b,groupIndex:Q.length,headerLayoutIndex:R+y,firstDataIndex:R,count:I}),y++,b=null,R=-1}continue}if(p!==b){if(b!==null&&R>=0){let I=h-R;Q.push({key:b,groupIndex:Q.length,headerLayoutIndex:R+y,firstDataIndex:R,count:I}),y++}b=p,R=h}}if(b!==null&&R>=0){let h=Y-R;Q.push({key:b,groupIndex:Q.length,headerLayoutIndex:R+y,firstDataIndex:R,count:h}),y++}X=Y+y};return{onItemsLoaded:(b,R,y)=>{Y=y;for(let h=0;h<b.length;h++){let p=R+h,I=b[h];if(I!==void 0){let A=J.getGroupForIndex(p,I);W.set(p,A)}}Z()},get totalEntries(){return X},get groupCount(){return Q.length},get groups(){return Q},isHeader:(b)=>{if(Q.length===0)return!1;let R=k1(Q,b),y=Q[R];return b===y.headerLayoutIndex},getHeaderItem:(b)=>{if(Q.length===0)return;let R=k1(Q,b),y=Q[R];if(b!==y.headerLayoutIndex)return;return{id:`__group_header_${y.groupIndex}`,__groupHeader:!0,groupKey:y.key,groupIndex:y.groupIndex}},layoutToDataIndex:(b)=>{if(Q.length===0)return b;let R=k1(Q,b),y=Q[R];if(b===y.headerLayoutIndex)return-1;let h=b-y.headerLayoutIndex-1;return y.firstDataIndex+h},dataToLayoutIndex:(b)=>{if(Q.length===0)return b;let R=n2(Q,b),y=Q[R],h=b-y.firstDataIndex;return y.headerLayoutIndex+1+h},getHeaderHeight:(b)=>J.headerHeight,getGroupAtLayoutIndex:(b)=>{if(Q.length===0)return i2;let R=k1(Q,b);return Q[R]},getGroupAtDataIndex:(b)=>{if(Q.length===0)return i2;let R=n2(Q,b);return Q[R]},removeAt:(b)=>{let R=new Map;for(let[y,h]of W)if(y<b)R.set(y,h);else if(y>b)R.set(y-1,h);W.clear();for(let[y,h]of R)W.set(y,h);Y--,Z()},reset:()=>{Q=[],Y=0,X=0,W.clear()}}};var e2=(J,q,j,Q,Y,X)=>{if(Q===0)return 0;let W=Math.max(0,Math.min(J,Q-1)),Z=q.getOffset(W),_=q.getSize(W),K=q.getTotalSize(),U=Math.max(0,K-j),S;switch(X){case"center":S=Z-j/2+_/2;break;case"end":S=Z-j+_;break;case"start":default:S=Z;break}return Math.max(0,Math.min(S,U))};var Z1=(J,q,j,Q,Y="start",X,W=e2)=>{return W(J,q,j,Q,X,Y)};var hJ=(J,q)=>{if(J.header){let j=q?J.header.width??J.header.height:J.header.height??J.header.width;return{...J,header:{...J.header,height:j}}}if(J.headerHeight!=null&&J.headerTemplate)return{...J,header:{height:J.headerHeight,template:J.headerTemplate}};return J},c1=(J)=>{let q=J.header,j=q?q.height??q.width:J.headerHeight,Q=q?.template??J.headerTemplate;if(!J.getGroupForIndex)throw Error("[vlist/builder] withGroups: getGroupForIndex is required");if(j==null||j<=0)throw Error("[vlist/builder] withGroups: header.height must be a positive number");if(!Q)throw Error("[vlist/builder] withGroups: header.template is required");let Y=null,X=null;return{name:"withGroups",priority:10,setup(W){let{dom:Z,config:_,rawConfig:K}=W,{classPrefix:U}=_,S=hJ(J,_.horizontal),O=K.item.height,F=S.sticky!==!1,{template:f}=S.header;Z.root.classList.add(`${U}--grouped`);let L=null;if(F)if(W.methods.set("_getStickyHeaderHeight",()=>S.header.height),L=o2(Z.root,U,_.horizontal,S.header.height),!_.horizontal)Z.viewport.style.height=`calc(100% - ${S.header.height}px)`;else Z.viewport.style.width=`calc(100% - ${S.header.height}px)`;let{animateScroll:w,cancelScroll:b}=J1(W.scrollController,W.renderIfNeeded),R=null;W.methods.set("scrollToIndex",(h,p)=>{let I=R??Y;if(!I)return;let A=I.dataToLayoutIndex(h),{align:d,behavior:i,duration:o}=d0(p),g=W.dataManager.getTotal(),C=W.adjustScrollPosition(Z1(A,W.sizeCache,W.state.viewportState.containerSize,g,d,W.getCachedCompression()));if(i==="smooth")w(W.scrollController.getScrollTop(),C,o);else b(),W.scrollController.scrollTo(C)}),W.destroyHandlers.push(()=>{if(b(),X)X.destroy(),X=null;else if(L)L.remove();Z.root.classList.remove(`${U}--grouped`)});let y=null;W.methods.set("_getGroupBridge",()=>y),queueMicrotask(()=>{let h=W.methods.get("_onItemsLoaded");if(h)pJ(W,S,_,K,O,F,f,U,h,(p)=>{y=p,R=p},(p)=>{X=p},L)}),IJ(W,S,_,K,O,F,f,U,()=>{},()=>{},(h)=>{Y=h,R=h},(h)=>{X=h},L)},destroy(){if(X)X.destroy(),X=null}}};function IJ(J,q,j,Q,Y,X,W,Z,_,K,U,S,T){let{dom:O}=J,F=null,f=Q.items?[...Q.items]:[];_(f);let L=f.length,w={getGroupForIndex:q.getGroupForIndex,header:{height:q.header.height,template:q.header.template},sticky:q.sticky??!1},b=(G)=>f[G],R=a2(L,w,b);U(R);let y=d1(f,R.groups);K(y);let h=s2(R,Y,X);J.setSizeConfig(h),J.rebuildSizeCache(y.length),J.dataManager.setItems(y,0,y.length);let p=Q.item.template,I=(G,m,e)=>{if(p0(G))return W(G.groupKey,G.groupIndex);return p(G,m,e)},A=J.methods.get("_getGridLayout"),d=J.methods.get("_replaceGridRenderer"),i=J.methods.get("_updateGridLayoutForGroups"),o=J.methods.get("_createGridRenderer"),g=J.methods.get("_getTableLayout"),C=J.methods.get("_updateTableForGroups");if(A&&d&&o){if(i)i((e)=>{let s=y[e];return!!(s&&p0(s))});let G=A(),m=o(O.items,I,J.sizeCache,G,Z,J.getContainerWidth(),()=>f.length,j.ariaIdPrefix,j.horizontal,(e)=>R.layoutToDataIndex(e)+1);d(m)}else if(g&&C)C((G)=>p0(G),q.header.template);else J.replaceTemplate(I);let k=()=>{if(!X||F)return;if(R.groupCount===0)return;let G=q.header.template,m=(s,x)=>{let J0=R.groups[x];if(!J0)return;let n=G(J0.key,J0.groupIndex);if(typeof n==="string")s.innerHTML=n;else s.replaceChildren(n)},e=l1(O.root,R,J.sizeCache,m,Z,j.horizontal,0,()=>J.getCachedCompression().ratio,T??void 0);F=e,S(e),J.afterScroll.push((s,x)=>{e.update(s)}),e.update(J.scrollController.getScrollTop())};k();let P=Q.item?.striped,M=()=>{if(P!=="data"&&P!=="even"&&P!=="odd")return;let G=new Int32Array(y.length),m=P==="odd"?1:0,e=0;for(let s=0;s<y.length;s++)if(p0(y[s])){if(G[s]=-1,P==="even"||P==="odd")e=0}else G[s]=e+++m;J.setStripeIndexFn((s)=>{if(s<0||s>=G.length)return s;return G[s]})};M();let H=()=>{if(R.rebuild(f.length,b),y=d1(f,R.groups),K(y),J.rebuildSizeCache(y.length),J.dataManager.setItems(y,0,y.length),M(),k(),F)F.refresh()};J.methods.set("setItems",(G)=>{f=G.slice(),_(f),H()}),J.methods.set("appendItems",(G)=>{f.push(...G),_(f),H()}),J.methods.set("prependItems",(G)=>{f.unshift(...G),_(f),H()}),J.methods.set("removeItem",(G)=>{f=f.filter((m)=>m.id!==G),_(f),H()}),J.methods.set("_getItems",()=>f),J.methods.set("_getTotal",()=>f.length),J.methods.set("_isGroupHeader",(G)=>{let m=y[G];return!!(m&&p0(m))}),J.methods.set("_layoutToDataIndex",(G)=>R.layoutToDataIndex(G)),J.methods.set("_dataToLayoutIndex",(G)=>R.dataToLayoutIndex(G))}function pJ(J,q,j,Q,Y,X,W,Z,_,K,U,S){let{dom:T}=J,O=J.dataManager,F=t2({getGroupForIndex:q.getGroupForIndex,headerHeight:q.header.height},(I)=>O.getItem(I),(I)=>O.isItemLoaded(I));K(F);let f=typeof Y==="number"?(I)=>Y:Y,L=(I)=>{if(F.isHeader(I)){if(X&&F.getGroupAtLayoutIndex(I).groupIndex===0)return 0;return q.header.height}let A=F.layoutToDataIndex(I);return A>=0?f(A):f(I)};J.setSizeConfig(L),J.setVirtualTotalFn(()=>F.totalEntries||O.getTotal());let w={...O,getTotal:()=>F.totalEntries,getIndexById:(I)=>{let A=O.getIndexById(I);if(A<0)return-1;return F.dataToLayoutIndex(A)},getItem:(I)=>{let A=F.getHeaderItem(I);if(A)return A;let d=F.layoutToDataIndex(I);if(d>=0)return O.getItem(d);return O.getItem(I)},getItemsInRange:(I,A)=>{let d=[];for(let i=I;i<=A;i++){let o=w.getItem(i);if(o!==void 0)d.push(o)}return d},isItemLoaded:(I)=>{if(F.isHeader(I))return!0;let A=F.layoutToDataIndex(I);if(A>=0)return O.isItemLoaded(A);return O.isItemLoaded(I)},ensureRange:(I,A)=>O.ensureRange(I,A),loadRange:(I,A)=>O.loadRange(I,A),loadInitial:()=>O.loadInitial(),loadMore:()=>O.loadMore(),reload:()=>{return F.reset(),O.reload()},setTotal:(I)=>O.setTotal(I),setItems:(I,A,d)=>O.setItems(I,A,d),removeItem:(I)=>{let A=O.getIndexById(I);if(A>=0)F.removeAt(A);return O.removeItem(I)},clear:()=>{F.reset(),O.clear()},reset:()=>{F.reset(),O.reset()}};J.replaceDataManager(w);let b=Q.item.template,R=J.methods.get("_updateTableForGroups");if(R)R((I)=>p0(I),q.header.template);J.replaceTemplate((I,A,d)=>{if(p0(I))return W(I.groupKey,I.groupIndex);return b(I,A,d)});let y=null;if(X){let I=q.header.template,A=(o,g)=>{let C=F.groups[g];if(!C)return;let k=I(C.key,C.groupIndex);if(typeof k==="string")o.innerHTML=k;else o.replaceChildren(k)},d={get totalEntries(){return F.totalEntries},get groupCount(){return F.groupCount},get groups(){return F.groups},getEntry:(o)=>{if(F.isHeader(o))return{type:"header",group:F.getGroupAtLayoutIndex(o)};return{type:"item",dataIndex:F.layoutToDataIndex(o),group:F.getGroupAtLayoutIndex(o)}},layoutToDataIndex:(o)=>F.layoutToDataIndex(o),dataToLayoutIndex:(o)=>F.dataToLayoutIndex(o),getGroupAtLayoutIndex:(o)=>F.getGroupAtLayoutIndex(o),getGroupAtDataIndex:(o)=>F.getGroupAtDataIndex(o),getHeaderHeight:(o)=>F.getHeaderHeight(o),rebuild:()=>{}};y=l1(T.root,d,J.sizeCache,A,Z,j.horizontal,0,()=>J.getCachedCompression().ratio,S??void 0),U(y);let i=y;J.afterScroll.push((o,g)=>{i.update(o)})}let h=-1;J.methods.set("_ensureTailLoaded",()=>{let I=O.getTotal();if(I<=0)return;let A=I-1;if(O.isItemLoaded(A))return;h=A,O.ensureRange(A,A)}),_((I,A,d)=>{let i=J.scrollController.getScrollTop(),o=F.groupCount,g=F.totalEntries||d,C=0,k=0,P=J.methods.get("_restoreAnchor");if(P)C=P.dataIndex,k=P.fraction;else if(i>0){let G=J.getCachedCompression(),m=G.ratio!==1?i/G.ratio:i,e=J.sizeCache.indexAtOffset(m);if(C=F.layoutToDataIndex(e),C<0&&e+1<F.totalEntries)e=e+1,C=F.layoutToDataIndex(e);let s=J.sizeCache.getOffset(e),x=J.sizeCache.getSize(e);k=x>0?(m-s)/x:0}F.onItemsLoaded(I,A,d),J.rebuildSizeCache(F.totalEntries);let M=J.getCachedCompression();if(J.updateContentSize(M.virtualSize),F.groupCount-o>0&&(i>0||P)){if(P?.skipAdjust);else if(C>=0){let G=F.dataToLayoutIndex(C),m=J.sizeCache.getOffset(G),e=J.sizeCache.getSize(G),s=m+k*e,x=M.ratio!==1?s*M.ratio:s;if(Math.abs(x-i)>1)J.scrollController.scrollTo(x);if(P){J.methods.delete("_restoreAnchor"),J.methods.delete("_suppressSave");let J0=J.methods.get("_saveSnapshot");if(J0)J0()}}}else if(P){let G=P.skipAdjust;if(J.methods.delete("_restoreAnchor"),J.methods.delete("_suppressSave"),!G){let m=J.methods.get("_saveSnapshot");if(m)m()}}if(y)y.refresh(),y.update(J.scrollController.getScrollTop());if(h>=0&&O.isItemLoaded(h)){let G=F.dataToLayoutIndex(h);h=-1;let m=J.methods.get("_getFocusedIndex"),e=m?m():-1;if(e>=0&&e>=g-1&&G!==e){let s=G;while(s>0&&F.isHeader(s))s--;let x=J.methods.get("_setFocusedIndex");if(x)x(s)}}}),J.methods.set("_isGroupHeader",(I)=>F.isHeader(I)),J.methods.set("_layoutToDataIndex",(I)=>F.layoutToDataIndex(I)),J.methods.set("_dataToLayoutIndex",(I)=>F.dataToLayoutIndex(I)),J.methods.set("_getTotal",()=>O.getTotal()),J.methods.delete("removeItem");let p=Q.item?.striped;if(p==="data"||p==="even"||p==="odd"){let I=p==="odd"?1:0;J.setStripeIndexFn((A)=>{if(F.isHeader(A))return-1;let d=F.layoutToDataIndex(A);return d>=0?d+I:A})}}var JJ=(J)=>{let q=Math.max(1,Math.floor(J.columns)),j=J.gap??0,Q=J.isHeaderFn,Y={row:0,col:0},X=(F)=>{if(F<=0)return 0;if(!Q)return Math.ceil(F/q);let f=0,L=0,w=0;for(let b=0;b<F;b++)if(Q(b)){if(w++,L>0)f++,L=0;f++,L=0}else if(L++,L>=q)f++,L=0;if(L>0)f++;return f},W=(F)=>{return Y.row=Z(F),Y.col=_(F),Y},Z=(F)=>{if(!Q)return Math.floor(F/q);let f=0,L=0;for(let w=0;w<=F;w++)if(Q(w)){if(L>0)f++,L=0;if(w===F)return f;f++,L=0}else{if(w===F)return f;if(L++,L>=q)f++,L=0}return console.warn(`⚠️ getRow(${F}) fell through - returning ${f}`),f},_=(F)=>{if(!Q)return F%q;if(Q(F))return 0;let f=0;for(let L=0;L<=F;L++)if(Q(L))f=0;else{if(L===F)return f;if(f++,f>=q)f=0}return f},K=(F,f,L)=>{if(L<=0)return{start:0,end:-1};if(!Q){let h=Math.max(0,F*q),p=Math.min(L-1,(f+1)*q-1);return{start:h,end:p}}let w=-1,b=-1,R=0,y=0;for(let h=0;h<L;h++){if(Q(h)){if(y>0)R++,y=0;if(R>=F&&R<=f){if(w===-1)w=h;b=h}R++,y=0}else{if(R>=F&&R<=f){if(w===-1)w=h;b=h}if(y++,y>=q)R++,y=0}if(R>f&&y===0)break}if(w===-1)return{start:0,end:-1};return{start:w,end:b}},U=(F,f,L)=>{if(f<0||f>=q)return-1;let w=F*q+f;if(w<0||w>=L)return-1;return w},S=(F)=>{let f=(q-1)*j;return Math.max(0,(F-f)/q)};return{get columns(){return q},get gap(){return j},update:(F)=>{if(F.columns!==void 0)q=Math.max(1,Math.floor(F.columns));if(F.gap!==void 0)j=F.gap;if(F.isHeaderFn!==void 0)Q=F.isHeaderFn},getTotalRows:X,getPosition:W,getRow:Z,getCol:_,getItemRange:K,getItemIndex:U,getColumnWidth:S,getColumnOffset:(F,f)=>{let L=S(f);return F*(L+j)}}};var uJ=(J=200)=>{let q=[];return{acquire:()=>{let X=q.pop();if(X)return X;let W=document.createElement("div");return W.setAttribute("role","option"),W},release:(X)=>{if(X.remove(),q.length<J)X.className="",X.textContent="",X.removeAttribute("style"),X.removeAttribute("data-index"),X.removeAttribute("data-id"),X.removeAttribute("data-row"),X.removeAttribute("data-col"),q.push(X)},clear:()=>{q.length=0}}},gJ=1,r1=(J,q,j,Q,Y,X,W,Z,_=!1,K)=>{let U=uJ(),S=new Map,T=X,O=!1,F=0,f="",L=-1,w={selected:!1,focused:!1},b=(B,l)=>{return w.selected=B,w.focused=l,w},R=`${Y}-item ${Y}-grid-item`,y=`${Y}-group-header`,h=`${Y}-item--selected`,p=`${Y}-item--focused`,I=`${Y}-item--placeholder`,A=`${Y}-item--replaced`,d=(B,l)=>{if(typeof l==="string")B.innerHTML=l;else B.replaceChildren(l)},i=(B,l,$)=>{B.classList.toggle(h,l),B.classList.toggle(p,$)},o=(B,l)=>{let $=Q.getRow(B);if(l?.compression?.isCompressed)return Q1($,l.scrollPosition,j,l.totalItems,l.containerSize,l.compression,l.rangeStart);return j.getOffset($)},g=(B,l)=>{let $=O&&Q.getCol(B)===0,E=$?0:Q.getCol(B),N=$?0:Q.getColumnOffset(E,T),V;if(O){let D=Q.getRow(B),z=0,v=new Set;for(let u=0;u<B;u++){let t=Q.getRow(u);if(t<D&&!v.has(t)){let q0=j.getSize(u);z+=q0,v.add(t)}}V=z}else V=o(B,l);if(_)return`translate(${Math.round(V)}px, ${Math.round(N)}px)`;return`translate(${Math.round(N)}px, ${Math.round(V)}px)`},C=(B,l)=>{B.style.transform=l},k=(B,l)=>{let $=B.classList.contains(y),E=$?T:Q.getColumnWidth(T),N;if(O||$)N=j.getSize(l)-Q.gap;else{let V=Q.getRow(l);N=j.getSize(V)-Q.gap}if(_)B.style.width=`${N}px`,B.style.height=`${E}px`;else B.style.width=`${E}px`,B.style.height=`${N}px`},P=(B,l,$,E,N)=>{let V=U.acquire(),D=!!l.__groupHeader,z=b($,E);if(V.className=D?y:R,V.dataset.index=String(B),V.dataset.id=String(l.id),V.dataset.row=String(Q.getRow(B)),V.dataset.col=String(Q.getCol(B)),D)V.setAttribute("role","presentation"),V.removeAttribute("aria-selected"),V.removeAttribute("aria-setsize"),V.removeAttribute("aria-posinset"),V.removeAttribute("id");else{if(V.setAttribute("role","option"),V.ariaSelected=String($),Z)V.id=`${Z}-item-${B}`;if(W){let t=W();if(t!==L)L=t,f=String(t);V.setAttribute("aria-setsize",f);let q0=K?K(B):B+1;V.setAttribute("aria-posinset",String(q0))}}k(V,B);let v=q(l,B,z);if(d(V,v),String(l.id).startsWith(g0))V.classList.add(I);return i(V,$,E),C(V,N),{element:V,lastItemId:l.id,lastSelected:$,lastFocused:E,lastTransform:N,lastSeenFrame:F}},M=(B,l,$,E,N)=>{if(F++,l.start===0&&B.length>0)O=p0(B[0]);for(let[z,v]of S)if(z>=l.start&&z<=l.end)v.lastSeenFrame=F;else if(F-v.lastSeenFrame>gJ)U.release(v.element),S.delete(z);let V=!1;if(W){let z=W();if(z!==L)L=z,f=String(z),V=!0}let D=null;for(let z=l.start;z<=l.end;z++){let v=z-l.start,u=B[v];if(!u){console.warn(`⚠️ RENDER: Missing item at index ${z} (range: ${l.start}-${l.end}, items.length: ${B.length})`);continue}let t=$.has(u.id),q0=z===E,c=S.get(z);if(c){let Q0=c.lastItemId!==u.id,X0=c.lastSelected!==t,K0=c.lastFocused!==q0;if(Q0){let M0=String(c.lastItemId),L0=String(u.id),R0=M0.startsWith(g0),B0=L0.startsWith(g0);if(!B0&&m0($,z,u.id))t=!0;let D0=b(t,q0),F0=q(u,z,D0);if(d(c.element,F0),c.element.dataset.id=L0,c.element.dataset.row=String(Q.getRow(z)),c.element.dataset.col=String(Q.getCol(z)),k(c.element,z),c.element.classList.toggle(I,B0),R0&&!B0)c.element.classList.add(A),setTimeout(()=>c.element.classList.remove(A),300);if(c.lastItemId=u.id,!u.__groupHeader){let T0=K?K(z):z+1;c.element.setAttribute("aria-posinset",String(T0))}}if(Q0||X0||K0)i(c.element,t,q0),c.element.ariaSelected=String(t),c.lastSelected=t,c.lastFocused=q0;let W0=g(z,N);if(c.lastTransform!==W0)C(c.element,W0),c.lastTransform=W0;if(V&&!u.__groupHeader)c.element.setAttribute("aria-setsize",f)}else{if(m0($,z,u.id))t=!0;let Q0=g(z,N),X0=P(z,u,t,q0,Q0);if(!D)D=document.createDocumentFragment();D.appendChild(X0.element),S.set(z,X0)}}if(D)J.appendChild(D)},H=(B)=>{for(let[l,$]of S){let E=g(l,B);if($.lastTransform!==E)C($.element,E),$.lastTransform=E}},G=(B,l,$,E)=>{let N=S.get(B);if(!N)return;let V=b($,E),D=q(l,B,V);d(N.element,D),i(N.element,$,E),N.element.dataset.id=String(l.id),N.element.ariaSelected=String($),k(N.element,B),N.lastItemId=l.id,N.lastSelected=$,N.lastFocused=E},m=(B,l,$)=>{let E=S.get(B);if(!E)return;let N=E.lastSelected!==l,V=E.lastFocused!==$;if(N||V)i(E.element,l,$),E.lastSelected=l,E.lastFocused=$},e=(B)=>{return S.get(B)?.element},s=(B)=>{if(Math.abs(B-T)<1)return;T=B;for(let[l,$]of S){k($.element,l);let E=g(l);C($.element,E),$.lastTransform=E}},x=()=>{a0(J,S.keys(),(B)=>S.get(B)?.element)},J0=()=>{for(let[,B]of S)U.release(B.element);S.clear()};return{render:M,updatePositions:H,updateItem:G,updateItemClasses:m,getElement:e,sortDOM:x,updateContainerWidth:s,clear:J0,destroy:()=>{J0(),U.clear()}}};var mJ=new Set,s1=(J)=>{if(!J.columns||J.columns<1)throw Error("[vlist/builder] withGrid: columns must be a positive integer >= 1");let q=null,j=null;return{name:"withGrid",priority:10,conflicts:["withTable","withMasonry"],setup(Q){let{dom:Y,emitter:X,config:W,rawConfig:Z}=Q,{classPrefix:_}=W;if(W.reverse)throw Error("[vlist/builder] withGrid cannot be used with reverse: true");let K=W.horizontal,U=M1(S0(Z.padding),K),S=()=>{return(K?Y.viewport.clientHeight:Q.getContainerWidth())-U},T=Z.items?.some((x)=>x.__groupHeader===!0),O={columns:J.columns,gap:J.gap??0};if(T)O.isHeaderFn=(x)=>{let J0=Q.dataManager.getItem(x);return!!(J0&&J0.__groupHeader===!0)};q=JJ(O);let F=q.gap;Q.setVirtualTotalFn(()=>{let x=Q.dataManager.getTotal();return q.getTotalRows(x)}),Q.setItemToScrollIndexFn((x)=>Math.floor(x/O.columns)),Q.methods.set("_getNavTotal",()=>Q.dataManager.getTotal()),Q.methods.set("_getNavDelta",()=>K?{ud:1,lr:O.columns,cols:O.columns}:{ud:O.columns,lr:1,cols:O.columns});let f=Z.item,L=W.horizontal?f.width:f.height,w={containerWidth:S(),columns:q.columns,gap:q.gap},b={containerWidth:0,columns:0,gap:0,columnWidth:0,row:0,column:0,totalRows:0,totalColumns:0};if(typeof L==="function")Q.setSizeConfig((x)=>{let J0=w.containerWidth-2,n=(w.columns-1)*w.gap;return b.containerWidth=w.containerWidth,b.columns=w.columns,b.gap=w.gap,b.columnWidth=(J0-n)/w.columns,b.row=q.getRow(x),b.column=q.getCol(x),b.totalRows=q.getTotalRows(Q.dataManager.getTotal()),b.totalColumns=w.columns,L(x,b)+w.gap});else if(F>0)Q.setSizeConfig(L+F);if(Q.rebuildSizeCache(),F>0){let x=Q.sizeCache.getTotalSize;Q.sizeCache.getTotalSize=()=>{let J0=x();return J0>0?J0-w.gap:0}}Y.root.classList.add(`${_}--grid`);let R=S(),y=Z.item.template,h=o0(Q.methods,()=>Q.dataManager.getTotal()),p=()=>{j=r1(Y.items,y,Q.sizeCache,q,_,R,h.getSetSize,W.ariaIdPrefix,W.horizontal,h.getPosInSet),Q.replaceRenderer(j)};p(),Q.setUpdateItemClassesFn((x,J0,n)=>{j?.updateItemClasses(x,J0,n)}),Q.methods.set("_updateRenderedItem",(x,J0,n,B)=>{j?.updateItem(x,J0,n,B)}),Q.methods.set("_getGridLayout",()=>q),Q.methods.set("_getGridConfig",()=>O),Q.methods.set("_replaceGridRenderer",(x)=>{j=x}),Q.methods.set("_createGridRenderer",r1),Q.methods.set("_updateGridLayoutForGroups",(x)=>{q.update({isHeaderFn:x});let J0=Q.dataManager.getTotal(),n=0;for(let B=0;B<J0;B++)if(q.getCol(B)===0){let l=Q.sizeCache.getSize(B);n+=l}Q.sizeCache.getTotalSize=()=>n,Q.updateContentSize(n),p()}),Q.methods.set("updateGrid",(x)=>{if(x.columns!==void 0){if(!Number.isInteger(x.columns)||x.columns<1)throw Error("[vlist/builder] updateGrid: columns must be a positive integer >= 1");O.columns=x.columns}if(x.gap!==void 0){if(x.gap<0)throw Error("[vlist/builder] updateGrid: gap must be non-negative");O.gap=x.gap}if(q)q.update(O);let J0=S();if(w.containerWidth=J0,w.columns=O.columns,w.gap=O.gap??0,j)j.updateContainerWidth(J0);Q.rebuildSizeCache(),Q.updateContentSize(Q.sizeCache.getTotalSize()),Q.updateCompressionMode();for(let n=0;n<Q.contentSizeHandlers.length;n++)Q.contentSizeHandlers[n]();if(j)j.clear();Q.forceRender()});let I=null,A=null,d=!1,i=()=>{if(d)return;d=!0,I=Q.methods.get("_getSelectedIds")??null,A=Q.methods.get("_getFocusedIndex")??null},o=-1,g=-1,C=!0,k=W.overscan,P={start:0,end:0},M={start:0,end:0},H=()=>{if(Q.state.isDestroyed)return;let x=Q.scrollController.getScrollTop(),J0=Q.state.viewportState.containerSize;if(!C&&x===o&&J0===g)return;o=x,g=J0,C=!1;let n=Q.getVirtualTotal();Q.getVisibleRange(x,J0,n,P),M.start=Math.max(0,P.start-k),M.end=Math.min(n-1,P.end+k);let B=Q.state.viewportState;B.scrollPosition=x,B.visibleRange.start=P.start,B.visibleRange.end=P.end,B.renderRange.start=M.start,B.renderRange.end=M.end;let l=Q.state.lastRenderRange,$=B.isCompressed,E=l.start!==M.start||l.end!==M.end;if(!E&&$){j.updatePositions(Q.getCompressionContext());return}let N=Q.dataManager.getTotal(),V=q.getItemRange(M.start,M.end,N),D=Q.dataManager.getItemsInRange(V.start,V.end),z=$?Q.getCompressionContext():void 0;i();let v=I?I():mJ,u=A?A():-1;if(j.render(D,V,v,u,z),E)l.start=M.start,l.end=M.end,X.emit("range:change",{range:{start:M.start,end:M.end}})},G=()=>{if(Q.state.isDestroyed)return;Q.state.lastRenderRange.start=-1,Q.state.lastRenderRange.end=-1,C=!0,H()};Q.setRenderFns(H,G);let m=typeof L==="function";Q.resizeHandlers.push((x,J0)=>{let n=(K?J0:x)-U;if(Math.abs(n-w.containerWidth)<1)return;if(w.containerWidth=n,j)j.updateContainerWidth(n);if(m){Q.rebuildSizeCache(),Q.updateContentSize(Q.sizeCache.getTotalSize()),Q.updateCompressionMode();for(let B=0;B<Q.contentSizeHandlers.length;B++)Q.contentSizeHandlers[B]();if(j)j.clear();Q.forceRender()}});let{animateScroll:e,cancelScroll:s}=J1(Q.scrollController,Q.renderIfNeeded);if(Q.methods.set("cancelScroll",s),Q.methods.set("scrollToIndex",(x,J0)=>{let n=Math.floor(x/J.columns),{align:B,behavior:l,duration:$}=d0(J0),E=Q.dataManager.getState(),N=q.getTotalRows(E.total),V=Math.max(0,Math.min(n,N-1)),D=Q.adjustScrollPosition(Z1(V,Q.sizeCache,Q.state.viewportState.containerSize,N,B,Q.getCachedCompression()));if(l==="smooth")e(Q.scrollController.getScrollTop(),D,$);else s(),Q.scrollController.scrollTo(D)}),!Q.methods.has("_getTotal"))Q.methods.set("_getTotal",()=>Q.dataManager.getTotal());Q.methods.set("_layoutToDataIndex",(x)=>x*J.columns),Q.methods.set("_dataToLayoutIndex",(x)=>Math.floor(x/J.columns)),Q.idleHandlers.push(()=>{if(j)j.sortDOM()}),Q.destroyHandlers.push(()=>{if(s(),j)j.destroy(),j=null;Y.root.classList.remove(`${_}--grid`)})},destroy(){if(j)j.destroy(),j=null}}};var QJ=(J)=>{let q=Math.max(1,Math.floor(J.columns)),j=J.gap??0,Q=J.containerSize,Y=0,X=[],W=()=>{let L=(q-1)*j;Y=Math.max(0,(Q-L)/q),X=Array(q);let w=Y+j;for(let b=0;b<q;b++)X[b]=b*w};W();let Z=[],_=0,K=[],U=(L)=>{let w=0,b=L[0];for(let R=1;R<L.length;R++){let y=L[R];if(y<b)b=y,w=R}return w},S=(L,w)=>{if(L<=0)return _=0,Z=[],[];let b=Array(q).fill(0),R=Array(q);for(let p=0;p<q;p++)R[p]=[];let y=Array(L);for(let p=0;p<L;p++){let I=U(b),A=w(p),d=b[I];y[p]={index:p,x:X[I],y:d,lane:I,size:A,crossSize:Y},R[I].push(p),b[I]=d+A+j}Z=R;let h=0;for(let p=0;p<q;p++){let I=b[p],A=I>0?I-j:0;if(A>h)h=A}return _=h,y},T=(L)=>{if(L.length===0)return _>0?_:0;if(_>0)return _;let w=Array(q).fill(0);for(let R of L){let y=R.y+R.size,h=w[R.lane];if(y>h)w[R.lane]=y}let b=0;for(let R=0;R<q;R++)if(w[R]>b)b=w[R];return b},O=(L,w,b)=>{if(L.length===0||b<=w)return K.length=0,K;if(Z.length===0||Z.length!==q)return F(L,w,b);K.length=0;for(let R=0;R<q;R++){let y=Z[R],h=y.length;if(h===0)continue;let p=0,I=h;while(p<I){let A=p+I>>>1,d=L[y[A]];if(d.y+d.size<=w)p=A+1;else I=A}for(let A=p;A<h;A++){let d=L[y[A]];if(d.y>=b)break;K.push(d)}}return K},F=(L,w,b)=>{let R=[];for(let y of L)if(y.y+y.size>w&&y.y<b)R.push(y);return R};return{get columns(){return q},get gap(){return j},get containerSize(){return Q},update:(L)=>{let w=!1;if(L.columns!==void 0){let b=Math.max(1,Math.floor(L.columns));if(b!==q)q=b,w=!0}if(L.gap!==void 0&&L.gap!==j)j=L.gap,w=!0;if(L.containerSize!==void 0&&L.containerSize!==Q)Q=L.containerSize,w=!0;if(w)W()},calculateLayout:S,getTotalSize:T,getVisibleItems:O}};var xJ=(J=200)=>{let q=[];return{acquire:()=>{let X=q.pop();if(X)return X;let W=document.createElement("div");return W.setAttribute("role","option"),W},release:(X)=>{if(X.remove(),q.length<J)X.className="",X.textContent="",X.removeAttribute("style"),X.removeAttribute("data-index"),X.removeAttribute("data-id"),X.removeAttribute("data-lane"),q.push(X)},clear:()=>{q.length=0}}},dJ=1,qJ=(J,q,j,Q=!1,Y,X,W)=>{let Z=xJ(),_=new Map,K=new Set,U=0,S="",T=-1,O={selected:!1,focused:!1},F=(C,k)=>{return O.selected=C,O.focused=k,O},f=`${j}-item ${j}-masonry-item`,L=`${j}-group-header`,w=`${j}-item--selected`,b=`${j}-item--focused`,R=(C,k)=>{if(typeof k==="string")C.innerHTML=k;else C.replaceChildren(k)},y=(C,k,P)=>{C.classList.toggle(w,k),C.classList.toggle(b,P)},h=(C,k)=>{if(Q)C.style.transform=`translate(${Math.round(k.y)}px, ${Math.round(k.x)}px)`;else C.style.transform=`translate(${Math.round(k.x)}px, ${Math.round(k.y)}px)`},p=(C,k)=>{if(Q)C.style.width=`${k.size}px`,C.style.height=`${k.crossSize}px`;else C.style.width=`${k.crossSize}px`,C.style.height=`${k.size}px`},I=(C,k,P,M,H)=>{let G=Z.acquire(),m=!!k.__groupHeader,e=F(M,H);if(G.className=m?L:f,G.dataset.index=String(C),G.dataset.id=String(k.id),G.dataset.lane=String(P.lane),m)G.setAttribute("role","presentation"),G.removeAttribute("aria-selected"),G.removeAttribute("aria-setsize"),G.removeAttribute("aria-posinset"),G.removeAttribute("id");else{if(G.setAttribute("role","option"),G.ariaSelected=String(M),X)G.id=`${X}-item-${C}`;if(Y){let x=Y();if(x!==T)T=x,S=String(x);G.setAttribute("aria-setsize",S);let J0=W?W(C):C+1;G.setAttribute("aria-posinset",String(J0))}}p(G,P);let s=q(k,C,e);return R(G,s),y(G,M,H),h(G,P),{element:G,lastItemId:k.id,lastSelected:M,lastFocused:H,lastY:P.y,lastX:P.x,lastSize:P.size,lastCrossSize:P.crossSize,lastSeenFrame:U}},A=(C,k,P,M)=>{U++,K.clear();for(let G=0;G<k.length;G++)K.add(k[G].index);for(let[G,m]of _)if(K.has(G))m.lastSeenFrame=U;else if(U-m.lastSeenFrame>dJ)Z.release(m.element),_.delete(G);let H=null;for(let G=0;G<k.length;G++){let m=k[G],e=m.index,s=C(e);if(!s)continue;let x=P.has(s.id),J0=e===M,n=_.get(e);if(n){let B=n.lastItemId!==s.id,l=n.lastSelected!==x,$=n.lastFocused!==J0,E=n.lastY!==m.y||n.lastX!==m.x,N=n.lastSize!==m.size||n.lastCrossSize!==m.crossSize;if(B){let V=F(x,J0),D=q(s,e,V);if(R(n.element,D),n.element.dataset.id=String(s.id),n.lastItemId=s.id,!s.__groupHeader){let v=W?W(e):e+1;n.element.setAttribute("aria-posinset",String(v))}}if(B||l||$)y(n.element,x,J0),n.element.ariaSelected=String(x),n.lastSelected=x,n.lastFocused=J0;if(N)p(n.element,m),n.lastSize=m.size,n.lastCrossSize=m.crossSize;if(E)h(n.element,m),n.lastY=m.y,n.lastX=m.x}else{let B=I(e,s,m,x,J0);if(!H)H=document.createDocumentFragment();H.appendChild(B.element),_.set(e,B)}}if(H)J.appendChild(H)},d=()=>{for(let{element:C}of _.values())Z.release(C);_.clear(),J.innerHTML=""};return{render:A,getElement:(C)=>_.get(C)?.element,updateItemClasses:(C,k,P)=>{let M=_.get(C);if(!M)return;let H=M.lastSelected!==k,G=M.lastFocused!==P;if(H||G)y(M.element,k,P),M.lastSelected=k,M.lastFocused=P},sortDOM:()=>{a0(J,_.keys(),(C)=>_.get(C)?.element)},clear:d,destroy:()=>{d(),Z.clear()}}};var lJ=new Set,cJ=100,a1=(J)=>{if(!J.columns||J.columns<1)throw Error("[vlist/builder] withMasonry: columns must be a positive integer >= 1");let q=null,j=null,Q=[];return{name:"withMasonry",priority:10,conflicts:["withGrid","withTable"],setup(Y){let{dom:X,emitter:W,config:Z,rawConfig:_}=Y,K=Z.classPrefix,U=Z.horizontal;if(Z.reverse)throw Error("[vlist/builder] withMasonry: cannot be combined with reverse mode");X.root.classList.add(`${K}--masonry`);let S=S0(_.padding),T=M1(S,U),O=s0(S,U),F=()=>{return(U?X.viewport.clientHeight:X.viewport.clientWidth)-T},f={columns:J.columns,gap:J.gap??0,containerSize:F()};q=QJ(f);let L=_.item,w=U&&_.item.width?_.item.width:L.height,b={containerWidth:0,columns:0,gap:0,columnWidth:0},R=typeof w==="function"?(N)=>w(N,b):()=>w,y=()=>{let N=Y.dataManager.getTotal(),V=q;b.containerWidth=V.containerSize,b.columns=V.columns,b.gap=V.gap;let D=(V.columns-1)*V.gap;b.columnWidth=Math.max(0,(b.containerWidth-D)/V.columns),Q=V.calculateLayout(N,R),i();let z=q.getTotalSize(Q);Y.sizeCache.getTotalSize=()=>z,Y.updateContentSize(z)},h=_.item.template,p=o0(Y.methods,()=>Y.dataManager.getTotal());j=qJ(X.items,h,K,U,p.getSetSize,Z.ariaIdPrefix,p.getPosInSet),Y.setUpdateItemClassesFn((N,V,D)=>{j?.updateItemClasses(N,V,D)});let I=[],A=new Int32Array(0),d=[],i=()=>{let N=f.columns,V=Q.length;if(I=Array.from({length:N},()=>[]),A.length<V)A=new Int32Array(V);for(let D=0;D<V;D++){let z=Q[D],v=I[z.lane].length;I[z.lane].push(D),A[D]=v}d=Array(N);for(let D=0;D<N;D++){let z=I[D],v=new Float64Array(z.length);for(let u=0;u<z.length;u++){let t=Q[z[u]];v[u]=t.y+t.size*0.5}d[D]=v}};Y.methods.set("_getNavTotal",()=>Y.dataManager.getTotal());let o=(N,V)=>{let D=N.length;if(D===0)return-1;if(D===1)return 0;let z=0,v=D-1;while(z<v){let u=z+v>>1;if(N[u]<V)z=u+1;else v=u}if(z>0&&Math.abs(N[z-1]-V)<=Math.abs(N[z]-V))return z-1;return z};Y.methods.set("_navigate",(N,V,D)=>{let z=Q[N];if(!z)return N;let v=z.lane,u=f.columns,t=A[N],q0=I[v];switch(U?V==="ArrowDown"?"ArrowRight":V==="ArrowUp"?"ArrowLeft":V==="ArrowRight"?"ArrowDown":V==="ArrowLeft"?"ArrowUp":V:V){case"ArrowDown":{if(t+1<q0.length)return q0[t+1];return N}case"ArrowUp":{if(t>0)return q0[t-1];return N}case"ArrowRight":{if(v>=u-1)return N;let Q0=v+1,X0=z.y+z.size*0.5,K0=I[Q0];if(K0.length===0)return N;let W0=o(d[Q0],X0);return W0>=0?K0[W0]:N}case"ArrowLeft":{if(v<=0)return N;let Q0=v-1,X0=z.y+z.size*0.5,K0=I[Q0];if(K0.length===0)return N;let W0=o(d[Q0],X0);return W0>=0?K0[W0]:N}case"Home":return 0;case"End":return D-1;case"PageDown":{let Q0=Y.state.viewportState.containerSize,X0=z.size>0?z.size:150,K0=Math.max(1,Math.floor(Q0/X0)),W0=Math.min(t+K0,q0.length-1);return q0[W0]}case"PageUp":{let Q0=Y.state.viewportState.containerSize,X0=z.size>0?z.size:150,K0=Math.max(1,Math.floor(Q0/X0)),W0=Math.max(0,t-K0);return q0[W0]}}return N}),Y.methods.set("_scrollItemIntoView",(N)=>{let V=Q[N];if(!V)return;let D=Y.scrollController.getScrollTop(),z=Y.state.viewportState.containerSize,v=V.y,u=v+V.size,t=D+z;if(v<D)Y.scrollController.scrollTo(Y.adjustScrollPosition(Math.max(0,v)));else if(u>t)Y.scrollController.scrollTo(Y.adjustScrollPosition(u-z))});let g=null,C=null,k=!1,P=()=>{if(k)return;k=!0,g=Y.methods.get("_getSelectedIds")??null,C=Y.methods.get("_getFocusedIndex")??null},M=(N)=>Y.dataManager.getItem(N),H=-1,G=-1,m=!0,e=Z.overscan*cJ,s=()=>{if(Y.state.isDestroyed)return;P();let N=Y.scrollController.getScrollTop(),V=Y.state.viewportState.containerSize;if(!m&&N===H&&V===G)return;H=N,G=V,m=!1;let D=Math.max(0,N-e),z=N+V+e,v=q.getVisibleItems(Q,D,z),u=g?g():lJ,t=C?C():-1;if(j&&v.length>0)j.render(M,v,u,t);let q0=Y.state.viewportState;q0.scrollPosition=N;let c=v.length,Q0=c>0?v[0].index:0,X0=c>0?v[c-1].index:0;q0.visibleRange.start=Q0,q0.visibleRange.end=X0,q0.renderRange.start=Q0,q0.renderRange.end=X0;let K0=Y.state.lastRenderRange;if(K0.start!==Q0||K0.end!==X0)K0.start=Q0,K0.end=X0,W.emit("range:change",{range:{start:Q0,end:X0}})},x=()=>{Y.state.lastRenderRange.start=-1,Y.state.lastRenderRange.end=-1,m=!0,s()};Y.setRenderFns(s,x);let J0=(N,V)=>{let D=(U?V:N)-T;if(q&&q.containerSize!==D){if(q.update({containerSize:D}),y(),j)j.clear();x()}};Y.resizeHandlers.push(J0);let n=()=>{y(),x()},B=Y.dataManager,l=(N)=>{if(typeof B[N]!=="function")return;let V=B[N].bind(B);B[N]=(...D)=>{V(...D),n()}};l("setItems"),l("appendItems"),l("prependItems"),l("updateItem"),l("removeItem");let{animateScroll:$,cancelScroll:E}=J1(Y.scrollController,Y.renderIfNeeded);Y.methods.set("cancelScroll",E),Y.methods.set("scrollToIndex",(N,V)=>{let D=Q[N];if(!D)return;let{align:z,behavior:v,duration:u}=d0(V),t=D.y,q0=Y.state.viewportState.containerSize,c=t;if(z==="center")c=t-q0/2+D.size/2;else if(z==="end"){c=t-q0+D.size;let Q0=q.getTotalSize(Q);if(N===Q.length-1)c=Math.max(0,Q0+O-q0)}if(c=Math.max(0,c),c=Y.adjustScrollPosition(c),v==="smooth")$(Y.scrollController.getScrollTop(),c,u);else E(),Y.scrollController.scrollTo(c)}),y(),Y.idleHandlers.push(()=>{if(j)j.sortDOM()}),Y.destroyHandlers.push(()=>{if(E(),j)j.destroy();X.root.classList.remove(`${K}--masonry`)})}}};var o1=(J)=>{let q=J?.mode??"single",j=J?.followFocus??!1,Q=J?.initial,Y=J?.shiftArrowToggle??"origin",X=J?.focusOnClick??!1,W=J?.contextMenu??"select",Z=C2(Q),_=null,K=-1;return{name:"withSelection",priority:50,methods:["select","deselect","toggleSelect","selectAll","clearSelection","getSelected","getSelectedItems","selectNext","selectPrevious"],setup(U){let{dom:S,emitter:T,config:O}=U,{classPrefix:F,ariaIdPrefix:f}=O;if(q==="none"){U.methods.set("select",()=>{}),U.methods.set("deselect",()=>{}),U.methods.set("toggleSelect",()=>{}),U.methods.set("selectAll",()=>{}),U.methods.set("clearSelection",()=>{}),U.methods.set("getSelected",()=>[]),U.methods.set("getSelectedItems",()=>[]),U.methods.set("setSelectionMode",()=>{}),U.methods.set("selectNext",()=>{}),U.methods.set("selectPrevious",()=>{}),U.methods.set("_focusById",()=>{}),U.methods.set("_getFocusedId",()=>{return});return}S.root.classList.add(`${F}--selectable`);let L=()=>U.methods.get("_isGroupHeader"),w=()=>U.methods.get("_layoutToDataIndex"),b=()=>U.methods.get("_dataToLayoutIndex"),R=(E)=>{let N=L();return N?N(E):!1},y=(E,N,V)=>{if(!L())return E;let D=E;while(D>=0&&D<V){if(!R(D))return D;D+=N}D=E-N;while(D>=0&&D<V){if(!R(D))return D;D-=N}return E},h=new Map,p=()=>{h.clear();let E=U.dataManager.getTotal(),N=U.dataManager.getCached();if(N===0)return;if(N>=E){for(let D=0;D<E;D++){let z=U.dataManager.getItem(D);if(z)h.set(z.id,D)}return}let V=U.dataManager.getStorage();if(V&&typeof V.getLoadedRanges==="function"){let D=V.getLoadedRanges();for(let z of D)for(let v=z.start;v<=z.end;v++){let u=U.dataManager.getItem(v);if(u&&!u._isPlaceholder)h.set(u.id,v)}}};T.on("data:change",({type:E,id:N})=>{if(E==="remove"){Z.selected.delete(N),p();let V=U.dataManager.getTotal();if(V>0&&Z.focusedIndex>=0){let D=Math.min(Z.focusedIndex,V-1);Z.focusedIndex=y(D,1,V)}}}),T.on("load:end",({items:E,offset:N})=>{if(!E||E.length===0)return;if(N!==void 0)for(let V=0;V<E.length;V++){let D=E[V];if(D&&D.id!==void 0)h.set(D.id,N+V)}else p()}),p(),U.methods.set("_getSelectedIds",()=>{return Z.selected}),U.methods.set("_getFocusedIndex",()=>{return Z.focusVisible?Z.focusedIndex:-1}),U.methods.set("_seedSelection",(E)=>{for(let N of E)Z.selected.add(N)});let{forceRender:I}=U.getRenderFns(),A=()=>{I();let E=(N)=>{let V=h.get(N);if(V===void 0)return;return U.dataManager.getItem(V)};T.emit("selection:change",{selected:L1(Z),items:F1(Z,E)})},d=S0(U.rawConfig.padding),i=O.horizontal?d.left:d.top,o=O.horizontal?d.right:d.bottom,g=U.getItemToScrollIndexFn(),C=null,k=null,P=null,M=!1,H=()=>{if(M)return;M=!0,C=U.methods.get("_getNavDelta")??null,k=U.methods.get("_navigate")??null,P=U.methods.get("_scrollItemIntoView")??null},G=()=>{return H(),C?C():{ud:1,lr:0,cols:0}},m=(E)=>{if(E<0)return;if(H(),P)P(E);else{let N=U.state.viewportState.containerSize,V=U.state.viewportState.scrollPosition,D=U.dataManager.getTotal(),z=U.getCachedCompression(),{visibleRange:v}=U.state.viewportState,u=g(E),t=O1(u,U.sizeCache,V,N,i,o,z,D,v);if(t!==V)U.scrollController.scrollTo(U.adjustScrollPosition(t))}},e=()=>{let E=g(Math.max(0,Z.focusedIndex)),N=U.sizeCache.getSize(E),{ud:V}=G();return Math.max(V,Math.floor(U.state.viewportState.containerSize/N)*V)};_=document.createElement("div"),_.setAttribute("aria-live","polite"),_.setAttribute("aria-atomic","true"),_.className=`${F}-live-region`,_.style.cssText="position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0",(S.root.getAttribute("role")==="grid"?S.root.parentElement??S.root:S.root).appendChild(_);let x=_;T.on("selection:change",({selected:E})=>{let N=E.length;if(N===0)x.textContent="";else if(N===1)x.textContent="1 item selected";else x.textContent=`${N} items selected`});let J0=()=>{if(U.state.isDestroyed)return;if(!S.root.matches(":focus-visible"))return;let E=U.dataManager.getTotal();if(E===0)return;let N=Z.focusedIndex>=0?Math.min(Z.focusedIndex,E-1):0;N=y(N,1,E),Z=x0(Z,N),Z.focusVisible=!0,S.root.setAttribute("aria-activedescendant",`${f}-item-${N}`),m(N);let V=U.dataManager.getItem(N);if(V)U.renderer.updateItemClasses(N,Z.selected.has(V.id),!0)};if(O.interactive)S.root.addEventListener("focusin",J0);let n=(E)=>{if(U.state.isDestroyed)return;let N=E.relatedTarget;if(N&&S.root.contains(N))return;let V=Z.focusedIndex;if(Z.focusVisible=!1,S.root.removeAttribute("aria-activedescendant"),V>=0){let D=U.dataManager.getItem(V);if(D)U.renderer.updateItemClasses(V,Z.selected.has(D.id),!1)}};if(O.interactive)S.root.addEventListener("focusout",n);let B=(E)=>{let N=E.target.closest("[data-index]");if(!N)return null;let V=parseInt(N.dataset.index??"-1",10);if(V<0)return null;let D=U.dataManager.getItem(V);if(!D||R(V))return null;return{item:D,index:V}},l=(E)=>{Z=x0(Z,E),Z.focusVisible=X,K=E,S.root.setAttribute("aria-activedescendant",`${f}-item-${E}`)};if(U.clickHandlers.push((E)=>{if(U.state.isDestroyed)return;let N=B(E);if(!N)return;let{item:V,index:D}=N;if(T.emit("item:click",{item:V,index:D,event:E}),q==="multiple"&&E.shiftKey&&Z.focusedIndex>=0){let z=K>=0?K:Z.focusedIndex;Z=T1(Z,U.getAllLoadedItems(),z,D,q),l(D),A();return}l(D),Z=e0(Z,V.id,q),A()}),W==="select")U.contextMenuHandlers.push((E)=>{if(U.state.isDestroyed)return;let N=B(E);if(!N)return;if(!Z.selected.has(N.item.id))Z={...Z,selected:new Set([N.item.id])},l(N.index),A()});if(O.interactive)U.keydownHandlers.push((E)=>{if(U.state.isDestroyed)return;let N=U.dataManager.getTotal(),V=Z.focusedIndex,D=!1,z=!1,v=Z;if(H(),k)switch(E.key){case"ArrowUp":case"ArrowDown":case"ArrowLeft":case"ArrowRight":case"PageUp":case"PageDown":case"Home":case"End":{let u=k(Z.focusedIndex,E.key,N);if(u!==Z.focusedIndex)v=x0(Z,u),v.focusVisible=!0,D=!0,z=!0;else{E.preventDefault();return}break}}if(!D)switch(E.key){case"ArrowUp":v=A1(Z,N,O.wrap,G().ud),v.focusVisible=!0,D=!0,z=!0;break;case"ArrowDown":v=E1(Z,N,O.wrap,G().ud),v.focusVisible=!0,D=!0,z=!0;break;case"ArrowLeft":{let{lr:u}=G();if(u)v=A1(Z,N,O.wrap,u),v.focusVisible=!0,D=!0,z=!0;break}case"ArrowRight":{let{lr:u}=G();if(u)v=E1(Z,N,O.wrap,u),v.focusVisible=!0,D=!0,z=!0;break}case"PageUp":case"PageDown":{let u=e(),t=w(),q0=b();if(t&&q0){let c=t(Z.focusedIndex),Q0=E.key==="PageUp"?-u:u,X0=t(N-1),K0=Math.max(0,Math.min(X0,c+Q0));v=x0(Z,q0(K0))}else v=f2(Z,N,u,E.key==="PageUp"?"up":"down");v.focusVisible=!0,D=!0,z=!0;break}case"Home":{v=v2(Z,N),v.focusVisible=!0,D=!0,z=!0;break}case"End":{v=S2(Z,N);let u=U.methods.get("_ensureTailLoaded");if(u)u();v.focusVisible=!0,D=!0,z=!0;break}}switch(E.key){case" ":case"Enter":if(E.key===" "&&E.shiftKey&&q==="multiple"&&Z.focusedIndex>=0){if(K>=0){let u=U.getAllLoadedItems();v=T1(v,u,K,Z.focusedIndex,q)}v.focusVisible=!0,D=!0;break}if(Z.focusedIndex>=0&&!R(Z.focusedIndex)){let u=U.dataManager.getItem(Z.focusedIndex);if(u)v=e0(Z,u.id,q),v.focusVisible=!0;K=Z.focusedIndex,D=!0}break;case"a":if((E.ctrlKey||E.metaKey)&&q==="multiple"){let u=U.getAllLoadedItems();if(Z.selected.size===u.length)v=f1(v);else v=S1(v,u,q);v.focusVisible=!0,D=!0,z=!1}break;case"Delete":case"Backspace":if(Z.selected.size>0){let u=(t)=>{let q0=h.get(t);return q0===void 0?void 0:U.dataManager.getItem(q0)};T.emit("delete",{selected:L1(Z),items:F1(Z,u)}),D=!0}break}if(z&&L()){let u=v.focusedIndex>V?1:-1;v.focusedIndex=y(v.focusedIndex,u,N)}if(E.shiftKey&&q==="multiple"&&z&&v.focusedIndex>=0){let u=E.key==="ArrowUp"||E.key==="ArrowDown"||E.key==="ArrowLeft"||E.key==="ArrowRight",t=(E.ctrlKey||E.metaKey)&&(E.key==="Home"||E.key==="End");if(u){if(Y==="origin"){if(V>=0){let q0=U.dataManager.getItem(V);if(q0)v=e0(v,q0.id,q)}}else{let q0=U.dataManager.getItem(v.focusedIndex);if(q0)v=e0(v,q0.id,q)}K=v.focusedIndex,z=!1}else if(t){let q0=U.getAllLoadedItems(),c=V>=0?V:v.focusedIndex;v=T1(v,q0,c,v.focusedIndex,q),K=v.focusedIndex,z=!1}}if(j&&q==="single"&&z&&v.focusedIndex>=0){let u=U.dataManager.getItem(v.focusedIndex);if(u)v=t0(v,[u.id],q);z=!1}if(D){E.preventDefault(),Z=v;let u=Z.focusedIndex;if(u>=0)m(u),S.root.setAttribute("aria-activedescendant",`${f}-item-${u}`);else S.root.removeAttribute("aria-activedescendant");if(z){let{selected:t}=Z;if(V>=0&&V!==u){let q0=U.dataManager.getItem(V);if(q0)U.renderer.updateItemClasses(V,t.has(q0.id),!1)}if(u>=0){let q0=U.dataManager.getItem(u);if(q0)U.renderer.updateItemClasses(u,t.has(q0.id),!0)}}else A();if(u>=0&&u!==V){let t=U.dataManager.getItem(u);if(t)T.emit("focus:change",{id:t.id,index:u})}}});U.methods.set("select",(...E)=>{if(Z=t0(Z,E,q),E.length>0){let N=h.get(E[0]);if(N===void 0)p(),N=h.get(E[0]);if(N!==void 0)Z=x0(Z,N)}A()}),U.methods.set("deselect",(...E)=>{Z=v1(Z,E),A()}),U.methods.set("toggleSelect",(E)=>{Z=e0(Z,E,q),A()}),U.methods.set("selectAll",()=>{if(q!=="multiple")return;let E=U.getAllLoadedItems();Z=S1(Z,E,q),p(),A()}),U.methods.set("clearSelection",()=>{Z=f1(Z),A()}),U.methods.set("getSelected",()=>{return L1(Z)}),U.methods.set("getSelectedItems",()=>{return F1(Z,(N)=>{let V=h.get(N);return V===void 0?void 0:U.dataManager.getItem(V)})});let $=(E)=>{let N=U.dataManager.getTotal();if(N===0)return;if(H(),k){let v=E==="next"?"ArrowDown":"ArrowUp",u=k(Z.focusedIndex,v,N);Z=x0(Z,u)}else{let{ud:v}=G();Z=E==="next"?E1(Z,N,O.wrap,v):A1(Z,N,O.wrap,v)}let V=E==="next"?1:-1;Z.focusedIndex=y(Z.focusedIndex,V,N);let D=Z.focusedIndex,z=U.dataManager.getItem(D);if(!z)return;Z=t0(Z,[z.id],q),m(D),A()};U.methods.set("selectNext",()=>{$("next")}),U.methods.set("selectPrevious",()=>{$("previous")}),U.methods.set("_focusById",(E)=>{let N=h.get(E);if(N!==void 0){let D=U.dataManager.getItem(N);if(!D||D.id!==E)N=void 0}if(N===void 0){if(p(),N=h.get(E),N===void 0)return}Z=x0(Z,N);let V=U.dataManager.getItem(N);if(V)T.emit("focus:change",{id:V.id,index:N})}),U.methods.set("_getFocusedId",()=>{let E=Z.focusedIndex;if(E<0)return;return U.dataManager.getItem(E)?.id}),U.methods.set("_setFocusedIndex",(E)=>{Z=x0(Z,E),Z.focusVisible=!0,m(E),S.root.setAttribute("aria-activedescendant",`${f}-item-${E}`),U.renderIfNeeded()}),U.destroyHandlers.push(()=>{if(x&&x.parentNode)x.remove();S.root.removeEventListener("focusin",J0),S.root.removeEventListener("focusout",n)})},destroy(){if(_&&_.parentNode)_.remove();_=null}}};var rJ=(J)=>{try{let q=sessionStorage.getItem(J);if(!q)return;return JSON.parse(q)}catch{return}},n1=(J)=>{let q=J?.autoSave,j=q?rJ(q):J?.restore;return{name:"withSnapshots",priority:50,methods:["getScrollSnapshot","restoreScroll"],setup(Q){Q.methods.set("getScrollSnapshot",()=>{let Z=Q.scrollController.getScrollTop(),_=Q.getCachedCompression(),K=Q.getVirtualTotal(),U=Q.methods.get("getSelected"),S=U&&U().length>0?U():void 0;if(K===0){let R={index:0,offsetInItem:0,total:0};if(S)R.selectedIds=S;return R}let T,O;if(_.isCompressed&&_.ratio!==1){let y=Z/_.virtualSize*K;T=Math.max(0,Math.min(Math.floor(y),K-1)),O=(y-T)*Q.sizeCache.getSize(T)}else T=Q.sizeCache.indexAtOffset(Z),O=Z-Q.sizeCache.getOffset(T);O=Math.max(0,O);let F={index:T,offsetInItem:O,total:K,scrollTop:Z},f=Q.sizeCache.getSize(T);if(f>0)F.offsetRatio=O/f;let L=Q.methods.get("_layoutToDataIndex");if(L){let R=L(T);if(R<0){for(let y=T+1;y<K;y++)if(R=L(y),R>=0)break}if(R>=0)F.dataIndex=R}let w=Q.methods.get("_getTotal");if(w)F.dataTotal=w();if(S)F.selectedIds=S;let b=Q.methods.get("_getFocusedId");if(b){let R=b();if(R!==void 0)F.focusedId=R}return F});let Y=(Z)=>{let{index:_,offsetInItem:K,selectedIds:U,focusedId:S}=Z,T=Q.getVirtualTotal(),O=Z.dataTotal??Z.total;if(T===0&&O&&O>0){Q.dataManager.setTotal(O);let C=Q.getVirtualTotal();Q.sizeCache.rebuild(C),Q.updateCompressionMode();let k=Q.getCachedCompression();if(!k.isCompressed)Q.updateContentSize(k.virtualSize)}else if(T===0)return;if(!Number.isFinite(_)||!Number.isFinite(K))return;let F=Q.getVirtualTotal();if(Q.sizeCache.getTotal()!==F){Q.sizeCache.rebuild(F),Q.updateCompressionMode();let C=Q.getCachedCompression();if(!C.isCompressed)Q.updateContentSize(C.virtualSize)}let L=Q.getCachedCompression(),w=Q.methods.get("_dataToLayoutIndex"),b=_;if(Z.dataIndex!==void 0&&Z.dataIndex>=0)b=w?w(Z.dataIndex):Z.dataIndex;else if(w)b=w(_);let R=Math.max(0,Math.min(b,F-1)),y=Q.sizeCache.getSize(R),h=Z.offsetRatio!==void 0?Z.offsetRatio*y:Math.min(K,y),p;if(L.isCompressed&&L.ratio!==1){let C=Q.methods.get("_getTotal")?.(),k=Z.dataTotal!==void 0&&C!==void 0&&Z.dataTotal===C;if(Z.scrollTop!==void 0&&(Z.total===F||k))p=Z.scrollTop;else{let P=y>0?h/y:0;p=(R+P)/F*L.virtualSize}}else p=Q.sizeCache.getOffset(R)+h;let I=Q.state.viewportState.containerSize,A=L.isCompressed?Q.state.viewportState.totalSize:L.virtualSize,d=Math.max(0,A-I);p=Math.max(0,Math.min(p,d));let i=p===Z.scrollTop;if(Z.dataIndex!==void 0&&Z.dataIndex>=0){let C=y>0?h/y:0;Q.methods.set("_restoreAnchor",{dataIndex:Z.dataIndex,fraction:C,skipAdjust:i}),Q.methods.set("_suppressSave",!0)}if(Q.scrollController.scrollTo(p),U&&U.length>0){let C=Q.methods.get("select");if(C)C(...U)}let o=Q.methods.get("loadVisibleRange"),g=()=>{if(S===void 0)return;let C=Q.methods.get("_focusById");if(C)C(S)};if(o){let k=0,P=p,M=()=>{k++;let H=Q.state.viewportState.containerSize,G=Q.scrollController.getScrollTop();if(H>0){if(Math.abs(G-P)>1)Q.scrollController.scrollTo(P);o().then(g)}else if(k<10)requestAnimationFrame(M)};requestAnimationFrame(M)}else{let C=Q.methods.get("reload");if(C)requestAnimationFrame(()=>{C().then(g)});else requestAnimationFrame(g)}};Q.methods.set("restoreScroll",Y);let X=!!j&&!!q,W=null;if(q){W=()=>{if(X)return;if(Q.methods.has("_suppressSave"))return;let K=Q.methods.get("getScrollSnapshot");if(!K)return;let U=K();try{sessionStorage.setItem(q,JSON.stringify(U))}catch{}},Q.methods.set("_saveSnapshot",W);let Z=0,_=()=>{if(Z)return;Z=requestAnimationFrame(()=>{Z=0,W()})};if(Q.idleHandlers.push(_),Q.emitter.on("selection:change",_),Q.emitter.on("focus:change",_),j&&j.total&&j.total>0){let K=Q.methods.get("_cancelAutoLoad");if(K)K();Q.dataManager.setTotal(j.total)}}if(j){let Z=!1;if(j.selectedIds&&j.selectedIds.length>0){let K=Q.methods.get("_seedSelection");if(K)K(j.selectedIds),Z=!0}let _=Z?(({selectedIds:K,...U})=>U)(j):j;queueMicrotask(()=>{if(Y(_),X=!1,W)W()})}}}};var jJ=(J,q=50,j=1/0,Q=!0)=>{let Y=J,X=[],W=0,Z=()=>{X=Y.map((L,w)=>({def:L,index:w,width:0,minWidth:sJ(L.minWidth??q,1),maxWidth:L.maxWidth??j,resizable:L.resizable??Q,offset:0}))},_=(L)=>{if(X.length===0){W=0;return}let w=0,b=0;for(let R=0;R<X.length;R++){let y=X[R],h=y.def;if(h.width!==void 0)y.width=i1(h.width,y.minWidth,y.maxWidth),w+=y.width;else b++}if(b>0){let y=Math.max(0,L-w)/b;for(let h=0;h<X.length;h++){let p=X[h];if(p.def.width===void 0)p.width=i1(y,p.minWidth,p.maxWidth)}}K()},K=()=>{let L=0;for(let w=0;w<X.length;w++){let b=X[w];b.offset=L,L+=b.width}W=L},U=(L,w)=>{if(L<0||L>=X.length)return 0;let b=X[L];if(!b.resizable)return b.width;let R=i1(w,b.minWidth,b.maxWidth);return b.width=R,K(),R},S=(L)=>{return X[L]},T=(L)=>{if(X.length===0)return;if(L<0)return X[0];if(L>=W)return X[X.length-1];let w=0,b=X.length-1;while(w<b){let R=w+b>>>1,y=X[R];if(L<y.offset)b=R-1;else if(L>=y.offset+y.width)w=R+1;else return y}return X[w]},O=(L)=>{if(L<0||L>=X.length)return 0;return X[L].offset},F=(L)=>{if(L<0||L>=X.length)return 0;return X[L].width},f=(L)=>{Y=L,Z()};return Z(),{get columns(){return X},get totalWidth(){return W},resolve:_,updateColumns:f,resizeColumn:U,getColumn:S,getColumnAtX:T,getColumnOffset:O,getColumnWidth:F}},i1=(J,q,j)=>Math.min(j,Math.max(q,J)),sJ=(J,q)=>Math.max(q,J);var YJ=(J,q,j,Q,Y,X)=>{let W=document.createElement("div");W.setAttribute("role","rowgroup");let Z=document.createElement("div");Z.className=`${j}-table-header`,Z.setAttribute("role","row"),Z.setAttribute("aria-rowindex","1"),Z.style.height=`${q}px`;let _=document.createElement("div");_.className=`${j}-table-header-scroll`,_.setAttribute("role","presentation"),Z.appendChild(_),W.appendChild(Z),J.insertBefore(W,J.firstChild),J.style.setProperty("--vlist-table-header-height",`${q}px`);let K=[],U=[],S=[],T=!0,O=null,F="asc",f=null,L=!1,w=-1,b=0,R=0,y=(M,H)=>{let G=document.createElement("div");G.className=`${j}-table-header-cell`,G.setAttribute("role","columnheader"),G.setAttribute("aria-colindex",String(H+1)),G.dataset.columnKey=M.def.key;let m=M.def.align;if(m==="center")G.classList.add(`${j}-table-header-cell--center`);else if(m==="right")G.classList.add(`${j}-table-header-cell--right`);let e=document.createElement("div");e.className=`${j}-table-header-content`;let s=M.def.header?M.def.header(M.def):M.def.label;if(typeof s==="string")e.textContent=s;else e.appendChild(s);if(G.appendChild(e),M.def.sortable){let x=document.createElement("span");x.className=`${j}-table-header-sort`,x.setAttribute("aria-hidden","true"),G.appendChild(x),S.push(x),G.classList.add(`${j}-table-header-cell--sortable`)}else S.push(null);if(M.resizable){let x=document.createElement("div");x.className=`${j}-table-header-resize`,x.dataset.resizeIndex=String(H),G.appendChild(x),U.push(x)}return G},h=(M)=>{f=M,_.textContent="",K=[],U=[],S=[];let H=M.columns;for(let G=0;G<H.length;G++){let m=H[G],e=y(m,G);K.push(e),_.appendChild(e)}if(p(M),O)I(O,F)},p=(M)=>{f=M;let H=M.columns;_.style.width=`${M.totalWidth}px`;for(let G=0;G<K.length&&G<H.length;G++){let m=K[G],e=H[G];m.style.width=`${e.width}px`}},I=(M,H)=>{if(O=M,F=H,!f)return;let G=f.columns;for(let m=0;m<S.length&&m<G.length;m++){let e=S[m];if(!e)continue;if(G[m].def.key===M&&M!==null)e.textContent=H==="asc"?"▲":"▼",e.style.opacity="0.7",K[m].setAttribute("aria-sort",H==="asc"?"ascending":"descending");else e.textContent="",e.style.opacity="0",K[m].removeAttribute("aria-sort")}},A=(M)=>{_.style.transform=`translateX(${-M}px)`},d=(M)=>{let H=M.target;if(!H.dataset.resizeIndex)return;if(M.preventDefault(),M.stopPropagation(),w=parseInt(H.dataset.resizeIndex,10),!f)return;let G=f.getColumn(w);if(!G||!G.resizable)return;L=!0,b=M.clientX,R=G.width,J.classList.add(`${j}--col-resizing`),J.style.cursor="col-resize",H.classList.add(`${j}-table-header-resize--active`),H.setPointerCapture(M.pointerId),H.addEventListener("pointermove",i),H.addEventListener("pointerup",o),H.addEventListener("pointercancel",o)},i=(M)=>{if(!L||!f)return;let H=M.clientX-b;if(Math.abs(H)<1)return;let G=Math.max(0,R+H);Q(w,G)},o=(M)=>{if(!L)return;let H=M.target;H.removeEventListener("pointermove",i),H.removeEventListener("pointerup",o),H.removeEventListener("pointercancel",o);try{H.releasePointerCapture(M.pointerId)}catch{}H.classList.remove(`${j}-table-header-resize--active`),J.classList.remove(`${j}--col-resizing`),J.style.cursor="",L=!1,w=-1},g=(M)=>{let H=M.target;if(H.dataset.resizeIndex!==void 0)return;if(L)return;let G=H;while(G&&!G.dataset.columnKey)if(G=G.parentElement,G===Z||G===null)return;if(!G||!G.dataset.columnKey)return;let m=G.dataset.columnKey;if(!f)return;let e=f.columns,s=-1;for(let J0=0;J0<e.length;J0++)if(e[J0].def.key===m){s=J0;break}if(s===-1)return;let x=e[s];if(X)X({key:m,index:s,event:M});if(x.def.sortable&&Y){let J0;if(O===m)if(F==="asc")J0="desc";else J0=null;else J0="asc";Y({key:m,index:s,direction:J0})}};return Z.addEventListener("pointerdown",d),Z.addEventListener("click",g),{element:Z,update:p,updateSort:I,rebuild:h,show:()=>{if(T)return;T=!0,Z.style.display=""},hide:()=>{if(!T)return;T=!1,Z.style.display="none"},destroy:()=>{Z.removeEventListener("pointerdown",d),Z.removeEventListener("click",g),J.style.removeProperty("--vlist-table-header-height"),W.remove(),K=[],U=[],S=[],f=null,T=!1},syncScroll:A}};var aJ=()=>{let J=[];return{acquire:()=>J.pop()||document.createElement("div"),release:(q)=>{if(q.parentNode?.removeChild(q),J.length<200)q.className="",q.removeAttribute("data-id"),q.removeAttribute("data-index"),q.removeAttribute("aria-selected"),q.removeAttribute("aria-rowindex"),q.removeAttribute("role"),q.style.cssText="",q.textContent="",J.push(q)},clear:()=>{J.length=0}}},XJ=(J,q,j,Q,Y,X,W,Z,_)=>{let K=aJ(),U=new Map,S=-1,T=j,O=null,F=null,f=null,L=(V,D)=>{F=V,f=D},w=(V,D)=>{if(D)V.setAttribute("aria-selected","true");else V.removeAttribute("aria-selected")},b=(V,D,z,v)=>{V.setAttribute("role",D),V.setAttribute("data-id",String(z)),V.setAttribute("data-index",String(v))},R=(V)=>String(V).startsWith("__placeholder_"),y=`${Y}-item ${Y}-table-row`,h=`${Y}-item--selected`,p=`${Y}-item--focused`,I=`${Y}-table-cell`,A=`${Y}-table-cell--center`,d=`${Y}-table-cell--right`,i=`${Y}-item--odd`,o=`${Y}-item--placeholder`,g=`${Y}-item--replaced`,C=`${Y}-item ${Y}-table-row ${Y}-table-group-header`,k=`${Y}-table-group-header-content`,P=(V,D,z,v,u=!1)=>{if(z.def.cell){let t=z.def.cell(D,z.def,v);if(typeof t==="string")V.innerHTML=t;else V.replaceChildren(t)}else{let t=D[z.def.key],q0=t!=null?String(t):"";if(u&&q0)V.innerHTML=`<span>${q0}</span>`;else V.textContent=q0}},M=(V,D,z,v,u=!1)=>{let t=y;if(Z){if(O){let q0=O(D);if(q0>=0&&(q0&1)===1)t+=` ${i}`}else if((D&1)===1)t+=` ${i}`}if(u)t+=` ${o}`;if(z)t+=` ${h}`;if(v)t+=` ${p}`;V.className=t},H=(V,D,z)=>{if(z?.compression?.isCompressed)return Math.round(Q1(V,z.scrollPosition,D,z.totalItems,z.containerSize,z.compression,z.rangeStart));return D.getOffset(V)},G=(V,D)=>{let z=D.def.align;if(z==="center")V.classList.add(A),V.classList.remove(d);else if(z==="right")V.classList.add(d),V.classList.remove(A);else V.classList.remove(A,d)},m=(V,D)=>{let v=T.columns.length;if(D.length===v)return D;let u=[];for(let t=0;t<v;t++){let q0;if(t<D.length)q0=D[t];else q0=document.createElement("div"),q0.className=I,V.appendChild(q0);u.push(q0)}for(let t=v;t<D.length;t++)D[t].remove();return u},e=(V,D,z,v)=>{let u=K.acquire(),t=V,q0=z.getSize(D),c=H(D,z,v);u.style.cssText=`width:${T.totalWidth}px;height:${q0}px;transform:translateY(${c}px)`,u.className=C,b(u,"presentation",V.id,D),u.removeAttribute("aria-selected"),u.removeAttribute("aria-rowindex"),u.replaceChildren();let Q0=document.createElement("div");if(Q0.className=k,f){let X0=f(t.groupKey,t.groupIndex);if(typeof X0==="string")Q0.innerHTML=X0;else Q0.appendChild(X0)}return u.appendChild(Q0),{element:u,cells:[],index:D,isGroupHeader:!0,lastItemId:V.id,lastSelected:!1,lastFocused:!1,lastOffset:c,lastHeight:q0}},s=(V,D,z,v,u,t)=>{let q0=K.acquire(),c=u.getSize(D),Q0=H(D,u,t),X0=R(V.id);q0.style.cssText=`width:${T.totalWidth}px;height:${c}px;transform:translateY(${Q0}px)`,M(q0,D,z,v,X0),b(q0,"row",V.id,D),q0.id=`${X}-${D}`,q0.setAttribute("aria-rowindex",String(D+2)),w(q0,z);let K0=m(q0,[]),W0=T.columns;for(let M0=0;M0<K0.length&&M0<W0.length;M0++){let L0=K0[M0],R0=W0[M0];L0.style.cssText=`left:${R0.offset}px;width:${R0.width}px`,L0.setAttribute("role","gridcell"),L0.setAttribute("aria-colindex",String(M0+1)),G(L0,R0),P(L0,V,R0,D,X0)}return{element:q0,cells:K0,index:D,isGroupHeader:!1,lastItemId:V.id,lastSelected:z,lastFocused:v,lastOffset:Q0,lastHeight:c}},x=(V,D,z,v,u)=>{for(let[X0,K0]of U)if(X0<D.start||X0>D.end)K.release(K0.element),U.delete(X0);let t=!1,q0=W();if(q0!==S)S=q0,t=!0;let c=null,Q0=q();O=typeof Z==="string"&&_?_():null;for(let X0=D.start;X0<=D.end;X0++){let K0=X0-D.start,W0=V[K0];if(!W0)continue;let M0=z.has(W0.id),L0=X0===v,R0=F?F(W0):!1,B0=U.get(X0);if(B0){if(B0.isGroupHeader!==R0){K.release(B0.element),U.delete(X0);let D0=R0?e(W0,X0,Q0,u):s(W0,X0,M0,L0,Q0,u);if(U.set(X0,D0),!c)c=document.createDocumentFragment();c.appendChild(D0.element);continue}if(R0){if(B0.lastItemId!==W0.id){let T0=W0,k0=B0.element.firstElementChild;if(k0&&f){let _0=f(T0.groupKey,T0.groupIndex);if(typeof _0==="string")k0.innerHTML=_0;else k0.replaceChildren(_0)}B0.element.setAttribute("data-id",String(W0.id)),B0.lastItemId=W0.id}let F0=H(X0,Q0,u);if(B0.lastOffset!==F0)B0.lastOffset=F0,B0.element.style.transform=`translateY(${F0}px)`;let w0=Q0.getSize(X0);if(B0.lastHeight!==w0)B0.lastHeight=w0,B0.element.style.height=`${w0}px`}else{let D0=B0.lastItemId!==W0.id,F0=B0.lastSelected!==M0,w0=B0.lastFocused!==L0;if(D0){let _0=B0.lastItemId!=null&&R(B0.lastItemId),G0=R(W0.id);if(!G0&&m0(z,X0,W0.id))M0=!0;let b0=T.columns;for(let P0=0;P0<B0.cells.length&&P0<b0.length;P0++)P(B0.cells[P0],W0,b0[P0],X0,G0);if(M(B0.element,X0,M0,L0,G0),B0.element.setAttribute("data-id",String(W0.id)),w(B0.element,M0),_0&&!G0)B0.element.classList.add(g),setTimeout(()=>{B0.element.classList.remove(g)},300);B0.lastItemId=W0.id,B0.lastSelected=M0,B0.lastFocused=L0}else if(F0||w0)M(B0.element,X0,M0,L0,R(W0.id)),w(B0.element,M0),B0.lastSelected=M0,B0.lastFocused=L0;let T0=H(X0,Q0,u);if(B0.lastOffset!==T0)B0.lastOffset=T0,B0.element.style.transform=`translateY(${T0}px)`;let k0=Q0.getSize(X0);if(B0.lastHeight!==k0)B0.lastHeight=k0,B0.element.style.height=`${k0}px`;if(t)B0.element.setAttribute("aria-rowindex",String(X0+2))}}else{if(m0(z,X0,W0.id))M0=!0;let D0=R0?e(W0,X0,Q0,u):s(W0,X0,M0,L0,Q0,u);if(U.set(X0,D0),!c)c=document.createDocumentFragment();c.appendChild(D0.element)}}if(c)J.appendChild(c)},J0=(V)=>{let D=q();for(let[z,v]of U){let u=H(z,D,V);if(v.lastOffset!==u)v.lastOffset=u,v.element.style.transform=`translateY(${u}px)`}},n=(V,D,z,v)=>{let u=U.get(V);if(!u)return;if(u.isGroupHeader)return;let t=T.columns;for(let q0=0;q0<u.cells.length&&q0<t.length;q0++)P(u.cells[q0],D,t[q0],V);u.element.setAttribute("data-id",String(D.id)),u.lastItemId=D.id,M(u.element,V,z,v),w(u.element,z),u.lastSelected=z,u.lastFocused=v},B=(V,D,z)=>{let v=U.get(V);if(!v)return;if(v.isGroupHeader)return;let u=v.lastSelected!==D,t=v.lastFocused!==z;if(u||t)M(v.element,V,D,z),w(v.element,D),v.lastSelected=D,v.lastFocused=z},l=(V)=>{T=V;let D=V.columns;for(let[,z]of U)if(z.element.style.width=`${V.totalWidth}px`,z.cells.length>0)for(let v=0;v<z.cells.length&&v<D.length;v++){let u=z.cells[v],t=D[v];u.style.left=`${t.offset}px`,u.style.width=`${t.width}px`}},$=(V)=>{return U.get(V)?.element},E=()=>{for(let[,V]of U)K.release(V.element);U.clear(),S=-1};return{render:x,updatePositions:J0,updateItem:n,updateItemClasses:B,getElement:$,updateColumnLayout:l,setGroupHeaderFn:L,clear:E,destroy:()=>{E(),K.clear()}}};var oJ=new Set,t1=(J)=>{if(!J.columns||J.columns.length===0)throw Error("[vlist] withTable: columns must be a non-empty array");if(J.rowHeight===void 0&&J.estimatedRowHeight===void 0)throw Error("[vlist] withTable: either rowHeight or estimatedRowHeight is required");let q=null,j=null,Q=null;return{name:"withTable",priority:10,conflicts:["withGrid","withMasonry"],setup(Y){let{dom:X,emitter:W,config:Z}=Y,{classPrefix:_}=Z;if(Z.horizontal)throw Error("[vlist] withTable cannot be used with orientation: 'horizontal'");if(Z.reverse)throw Error("[vlist] withTable cannot be used with reverse: true");let K=J.resizable??!0,U=J.minColumnWidth??50,S=J.maxColumnWidth??1/0,T=J.columnBorders??!1,O=J.rowBorders??!0,F=J.rowHeight,f=Y.rawConfig.padding,L=!f?0:typeof f==="number"?f*2:f.length===2?f[1]*2:f[1]+f[3],w=J.headerHeight??(typeof F==="number"?F:40),b=J.sort?.key??null,R=J.sort?.direction??"asc";if(q=jJ(J.columns,U,S,K),typeof F==="function")Y.setSizeConfig(F);else if(typeof F==="number")Y.setSizeConfig(F);if(Y.rebuildSizeCache(),X.root.classList.add(`${_}--table`),O)X.root.classList.add(`${_}--table-row-borders`);if(T)X.root.classList.add(`${_}--table-col-borders`);X.root.setAttribute("role","grid"),X.root.setAttribute("aria-colcount",String(J.columns.length));let y=-1,h=X.items.getAttribute("aria-label");if(h)X.root.setAttribute("aria-label",h),X.items.removeAttribute("aria-label");X.items.setAttribute("role","rowgroup"),X.viewport.setAttribute("role","none"),X.content.setAttribute("role","none"),X.viewport.removeAttribute("tabindex");let p=Y.getContainerWidth()-L;q.resolve(p);let I=($,E)=>{if(!q)return;let N=q.getColumn($);if(!N)return;let V=N.width,D=q.resizeColumn($,E);if(j)j.update(q);if(Q)Q.updateColumnLayout(q);i(),W.emit("column:resize",{key:N.def.key,index:$,previousWidth:V,width:D})},A=($)=>{if($.direction===null)b=null,R="asc";else b=$.key,R=$.direction;if(j)j.updateSort(b,R);W.emit("column:sort",$)},d=($)=>{W.emit("column:click",$)};if(j=YJ(X.root,w,_,I,A,d),j.rebuild(q),b)j.updateSort(b,R);let i=()=>{if(!q)return;let $=q.totalWidth;X.content.style.minWidth=`${$}px`,X.items.style.minWidth=`${$}px`};i(),Q=XJ(X.items,()=>Y.sizeCache,q,J.columns,_,Z.ariaIdPrefix,()=>Y.dataManager.getTotal(),Y.rawConfig.item?.striped,()=>Y.getStripeIndexFn());let o=null,g=null,C=!1,k=()=>{if(C)return;C=!0,o=Y.methods.get("_getSelectedIds")??null,g=Y.methods.get("_getFocusedIndex")??null},P=-1,M=-1,H=-1,G=!0,m=Z.overscan,e={start:0,end:0},s={start:0,end:0},x=()=>{if(Y.state.isDestroyed)return;let $=Y.scrollController.getScrollTop(),E=Y.state.viewportState.containerSize,N=Y.getVirtualTotal(),V=Y.state.viewportState.isCompressed;if(!G&&$===P&&E===M&&N===H)return;P=$,M=E,H=N,G=!1;let D=N+1;if(D!==y)y=D,X.root.setAttribute("aria-rowcount",String(D));Y.getVisibleRange($,E,N,e),s.start=Math.max(0,e.start-m),s.end=Math.min(N-1,e.end+m);let z=Y.state.viewportState;z.scrollPosition=$,z.visibleRange.start=e.start,z.visibleRange.end=e.end,z.renderRange.start=s.start,z.renderRange.end=s.end;let v=Y.state.lastRenderRange,u=v.start!==s.start||v.end!==s.end;if(!u&&V){Q.updatePositions(Y.getCompressionContext());return}if(!u)return;let t=V?Y.getCompressionContext():void 0,q0=Y.dataManager.getItemsInRange(s.start,s.end);k();let c=o?o():oJ,Q0=g?g():-1;Q.render(q0,s,c,Q0,t),v.start=s.start,v.end=s.end,W.emit("range:change",{range:{start:s.start,end:s.end}})},J0=()=>{if(Y.state.isDestroyed)return;Y.state.lastRenderRange.start=-1,Y.state.lastRenderRange.end=-1,G=!0,x()};Y.setRenderFns(x,J0),Y.setUpdateItemClassesFn(($,E,N)=>{Q?.updateItemClasses($,E,N)});let n=j,B=-1,l=()=>{let $=X.viewport.scrollLeft;if($!==B){if(B=$,n.syncScroll)n.syncScroll($)}};Y.afterScroll.push(l),X.viewport.addEventListener("scroll",l,{passive:!0}),Y.resizeHandlers.push(($,E)=>{if(!q)return;if(q.resolve($-L),j)j.update(q);if(Q)Q.updateColumnLayout(q);i()}),Y.methods.set("updateColumns",($)=>{if(!q||!j)return;if(q.updateColumns($),q.resolve(Y.getContainerWidth()-L),j.rebuild(q),b)j.updateSort(b,R);if(i(),Q)Q.updateColumnLayout(q),Q.clear();Y.forceRender()}),Y.methods.set("resizeColumn",($,E)=>{if(!q)return;let N;if(typeof $==="string"){let V=q.columns;N=-1;for(let D=0;D<V.length;D++)if(V[D].def.key===$){N=D;break}if(N===-1)return}else N=$;I(N,E)}),Y.methods.set("getColumnWidths",()=>{if(!q)return{};let $={},E=q.columns;for(let N=0;N<E.length;N++)$[E[N].def.key]=E[N].width;return $}),Y.methods.set("setSort",($,E)=>{if(b=$,R=E??"asc",j)j.updateSort(b,R)}),Y.methods.set("getSort",()=>{return{key:b,direction:R}}),Y.methods.set("_getTableLayout",()=>q),Y.methods.set("_updateRenderedItem",($,E,N,V)=>{Q?.updateItem($,E,N,V)}),Y.methods.set("_replaceTableRenderer",($)=>{Q=$}),Y.methods.set("_updateTableForGroups",($,E)=>{if(Q)Q.setGroupHeaderFn($,E)}),Y.methods.set("_getTableHeaderHeight",()=>w),Y.keydownHandlers.push(($)=>{if($.key!=="ArrowLeft"&&$.key!=="ArrowRight")return;if(!q)return;let E=q.columns;if(E.length===0)return;let N=X.viewport.clientWidth;if(q.totalWidth<=N)return;let V=X.viewport.scrollLeft;if($.key==="ArrowRight"){for(let D=0;D<E.length;D++)if(E[D].offset>V+1){X.viewport.scrollLeft=E[D].offset,$.preventDefault();return}}else{for(let D=E.length-1;D>=0;D--)if(E[D].offset<V-1){X.viewport.scrollLeft=E[D].offset,$.preventDefault();return}if(V>0)X.viewport.scrollLeft=0,$.preventDefault()}}),Y.contentSizeHandlers.push(()=>{i()}),Y.destroyHandlers.push(()=>{if(X.viewport.removeEventListener("scroll",l),j)j.destroy(),j=null;if(Q)Q.destroy(),Q=null;X.content.style.minWidth="",X.items.style.minWidth="",X.root.classList.remove(`${_}--table`),X.root.removeAttribute("role"),X.root.removeAttribute("aria-colcount"),X.viewport.removeAttribute("role"),X.viewport.setAttribute("tabindex","-1"),X.content.removeAttribute("role");let $=X.root.getAttribute("aria-label");if($)X.items.setAttribute("aria-label",$),X.root.removeAttribute("aria-label");X.root.removeAttribute("aria-rowcount"),X.items.setAttribute("role","listbox")})},destroy(){if(j)j.destroy(),j=null;if(Q)Q.destroy(),Q=null}}};var e1=(J)=>{let q=J?.handle??null,j=J?.ghostClass??"vlist-sort-ghost",Q=J?.shiftDuration??150,Y=J?.edgeScrollZone??40,X=J?.edgeScrollSpeed??20,W=J?.dragThreshold??5,Z=J?.ghostContainer??null;return{name:"withSortable",priority:55,methods:["isSorting"],conflicts:["withGrid","withMasonry","withTable","withScale"],setup(_){let{dom:K,emitter:U,config:S}=_,{classPrefix:T}=S,O=S.horizontal,F=O?"translateX":"translateY",f=Q>0?`transform ${Q}ms ease`:"none",L=!1,w=-1,b=-1,R=0,y=0,h=0,p=0,I=!1,A=null,d=0,i=null,o=0,g=0,C=0,k=null;_.methods.set("isSorting",()=>L||u);let P=(a)=>{return a.closest("[data-index]")},M=(a)=>{let U0=a.dataset.index;return U0===void 0?-1:+U0},H=(a)=>{let U0=a.getBoundingClientRect(),Z0=a.cloneNode(!0);return Z0.className=`${T}-item ${j}`,Z0.removeAttribute("data-index"),Z0.style.cssText=["position:fixed","pointer-events:none","z-index:10000",`width:${U0.width}px`,`height:${U0.height}px`,`left:${U0.left}px`,`top:${U0.top}px`,"transition:none","will-change:transform"].join(";"),(Z||document.body).appendChild(Z0),Z0},G=()=>{if(!A)return;let a=h-g,U0=p-C;A.style.left=`${a}px`,A.style.top=`${U0}px`},m=()=>{let a=_.dataManager.getTotal();if(a===0)return 0;let U0=K.viewport.getBoundingClientRect(),Z0=_.scrollController.getScrollTop(),N0=O?h-g-U0.left+K.viewport.scrollLeft+Z0:p-C-U0.top+Z0,V0=N0+o,O0=_.sizeCache.getOffset(w)+_.sizeCache.getSize(w);if(V0>O0){let A0=_.sizeCache.indexAtOffset(V0),h0=_.sizeCache.getOffset(A0)+_.sizeCache.getSize(A0)/2,f0=V0>h0?A0:A0-1;return Math.min(Math.max(f0,w),a-1)}let H0=_.sizeCache.getOffset(w);if(N0<H0){let A0=_.sizeCache.indexAtOffset(N0),h0=_.sizeCache.getOffset(A0)+_.sizeCache.getSize(A0)/2,f0=N0<h0?A0:A0+1;return Math.max(Math.min(f0,w),0)}return w},e=()=>{let a=K.items.children,U0=o;for(let Z0=0;Z0<a.length;Z0++){let N0=a[Z0],V0=M(N0);if(V0<0||V0===w)continue;let O0=0;if(b>w){if(V0>w&&V0<=b)O0=-U0}else if(b<w){if(V0>=b&&V0<w)O0=U0}let H0=_.sizeCache.getOffset(V0),A0=Math.round(H0+O0);N0.style.transition=f,N0.style.transform=`${F}(${A0}px)`}},s=()=>{let a=K.items.children;for(let U0=0;U0<a.length;U0++){let Z0=a[U0],N0=M(Z0);if(N0>=0)Z0.style.transform=`${F}(${Math.round(_.sizeCache.getOffset(N0))}px)`;Z0.style.transition=""}},x=()=>{let a=m();if(a===b)return;b=a,e(),U.emit("sort:move",{fromIndex:w,currentIndex:b})},J0=!1,n=()=>{let a=K.viewport.getBoundingClientRect();if(O)return h<a.left||h>a.right;return p<a.top||p>a.bottom},B=()=>{let a=()=>{if(!L)return;let U0=K.viewport.getBoundingClientRect(),Z0=0,N0=3;if(O){let O0=h-U0.left,H0=U0.right-h;if(O0<Y){let A0=Math.min(N0,1-O0/Y);Z0=-X*A0*A0}else if(H0<Y){let A0=Math.min(N0,1-H0/Y);Z0=X*A0*A0}}else{let O0=p-U0.top,H0=U0.bottom-p;if(O0<Y){let A0=Math.min(N0,1-O0/Y);Z0=-X*A0*A0}else if(H0<Y){let A0=Math.min(N0,1-H0/Y);Z0=X*A0*A0}}let V0=n();if(Z0!==0){let O0=_.scrollController.getScrollTop(),H0=_.sizeCache.getTotalSize()-(O?K.viewport.clientWidth:K.viewport.clientHeight);if(Z0<0&&O0<=0||Z0>0&&O0>=H0)J0=V0;else J0=!0,_.scrollController.scrollTo(O0+Z0)}else J0=V0;d=requestAnimationFrame(a)};d=requestAnimationFrame(a)},l=()=>{if(d)cancelAnimationFrame(d),d=0},$=(a=!1)=>{if(L=!1,I=!1,A&&A.parentNode)A.remove();A=null,i=null;let U0=`${T}-item--drag-source`,Z0=K.items.children;for(let V0=0;V0<Z0.length;V0++){let O0=Z0[V0];O0.classList.remove(U0);let H0=M(O0);if(H0>=0)O0.style.transform=`${F}(${Math.round(_.sizeCache.getOffset(H0))}px)`;O0.style.transition=""}l(),K.root.classList.remove(`${T}--sorting`),document.body.style.cursor="";let N0=window.getSelection();if(N0)N0.removeAllRanges();if(document.removeEventListener("pointermove",N),document.removeEventListener("pointerup",D),document.removeEventListener("pointercancel",v),!a)_.forceRender()},E=(a)=>{if(_.state.isDestroyed)return;if(L)return;if(u)F0();if(a.button!==0)return;let U0=a.target;if(q){if(!U0.closest(q))return}let Z0=P(U0);if(!Z0)return;let N0=M(Z0);if(N0<0)return;R=a.clientX,y=a.clientY,h=a.clientX,p=a.clientY,w=N0,I=!1,i=Z0;let V0=Z0.getBoundingClientRect();g=a.clientX-V0.left,C=a.clientY-V0.top,document.addEventListener("pointermove",N),document.addEventListener("pointerup",D),document.addEventListener("pointercancel",v)},N=(a)=>{if(h=a.clientX,p=a.clientY,!I){let U0=h-R,Z0=p-y;if(Math.sqrt(U0*U0+Z0*Z0)<W)return;if(I=!0,L=!0,b=w,K.root.classList.add(`${T}--sorting`),document.body.style.cursor="grabbing",o=_.sizeCache.getSize(w),i)A=H(i),i.classList.add(`${T}-item--drag-source`);let V0=X0();if(V0>=0){let O0=_.dataManager.getItem(V0);k=O0?O0.id:null}else k=null;U.emit("sort:start",{index:w}),B()}if(L){if(a.preventDefault(),G(),!J0)x();else if(n()){if(b!==w)b=w,s()}}},V=(a,U0)=>{let Z0=a!==U0&&a>=0&&U0>=0,N0=()=>{if(L=!1,Z0){if(K.root.classList.add(`${T}--settling`),U.emit("sort:end",{fromIndex:a,toIndex:U0}),k!==null)K0(k);$(!0),requestAnimationFrame(()=>{K.root.classList.remove(`${T}--settling`)})}else K.root.classList.add(`${T}--settling`),U.emit("sort:cancel",{originalItems:_.getAllLoadedItems()}),$(!1),requestAnimationFrame(()=>{K.root.classList.remove(`${T}--settling`)})};if(!A){N0();return}let V0=K.viewport.getBoundingClientRect(),O0=_.scrollController.getScrollTop(),H0=_.sizeCache.getOffset(U0),A0=Q>0?Q:150;if(A.style.transition=`left ${A0}ms ease, top ${A0}ms ease`,O)A.style.left=`${V0.left-K.viewport.scrollLeft+H0-O0}px`,A.style.top=`${V0.top}px`;else A.style.left=`${V0.left}px`,A.style.top=`${V0.top+H0-O0}px`;let h0=!1,f0=()=>{if(h0)return;h0=!0,A?.removeEventListener("transitionend",f0),N0()};A.addEventListener("transitionend",f0),setTimeout(f0,A0+50)},D=(a)=>{if(!I){document.removeEventListener("pointermove",N),document.removeEventListener("pointerup",D),document.removeEventListener("pointercancel",v),i=null;return}a.preventDefault(),document.removeEventListener("pointermove",N),document.removeEventListener("pointerup",D),document.removeEventListener("pointercancel",v),l(),V(w,b)},z=()=>{if(!I)return;document.removeEventListener("pointermove",N),document.removeEventListener("pointerup",D),document.removeEventListener("pointercancel",v),l(),s(),V(w,w)},v=()=>{z()};K.items.addEventListener("pointerdown",E);let u=!1,t="",q0=-1,c=-1,Q0=[],X0=()=>{let a=_.methods.get("_getFocusedIndex");return a?a():-1},K0=(a)=>{let U0=_.methods.get("_focusById");if(U0)U0(a)},W0=(a)=>{let U0=O?K.viewport.clientWidth:K.viewport.clientHeight,Z0=_.scrollController.getScrollTop(),N0=X1(a,_.sizeCache,Z0,U0);if(N0!==Z0)_.scrollController.scrollTo(_.adjustScrollPosition(N0))},M0=(a)=>{K.liveRegion.textContent="",K.liveRegion.offsetHeight,K.liveRegion.textContent=a},L0=(a)=>{let U0=_.dataManager.getItem(a);if(!U0)return"";return K.items.querySelector(`[data-index="${a}"]`)?.textContent?.trim()||String(U0.id)},R0=()=>String(_.dataManager.getTotal()),B0=(a)=>{let U0=_.dataManager.getItem(a);if(!U0)return;u=!0,t=U0.id,q0=a,c=a;let Z0=_.dataManager.getTotal();Q0=[];for(let N0=0;N0<Z0;N0++)Q0.push(_.dataManager.getItem(N0));K.root.classList.add(`${T}--sorting`),U.emit("sort:start",{index:a}),_0(),M0(`Grabbed ${L0(a)}. Current position ${a+1} of ${R0()}. Use Up and Down arrow keys to move, Space to drop, Escape to cancel.`)},D0=()=>{if(!u)return;u=!1;let a=c,U0=L0(a),Z0=K.items.children;for(let N0=0;N0<Z0.length;N0++)Z0[N0].style.transition="none";K.root.classList.remove(`${T}--sorting`),k0(),K0(t),_.forceRender(),M0(`${U0} dropped. Final position ${a+1} of ${R0()}.`),Q0=[],requestAnimationFrame(()=>{let N0=K.items.children;for(let V0=0;V0<N0.length;V0++)N0[V0].style.transition=""})},F0=()=>{if(!u)return;u=!1;let a=q0,U0=K.items.children;for(let Z0=0;Z0<U0.length;Z0++)U0[Z0].style.transition="none";if(K.root.classList.remove(`${T}--sorting`),k0(),c!==a)U.emit("sort:cancel",{originalItems:Q0});K0(t),_.forceRender(),W0(a),M0(`Reorder cancelled. Returned to position ${a+1} of ${R0()}.`),Q0=[],requestAnimationFrame(()=>{let Z0=K.items.children;for(let N0=0;N0<Z0.length;N0++)Z0[N0].style.transition=""})},w0=(a)=>{if(!u)return;let U0=_.dataManager.getTotal(),Z0=c+a;if(Z0<0||Z0>=U0)return;let N0=c,V0=Z0,O0=K.items.children;for(let H0=0;H0<O0.length;H0++)O0[H0].style.transition="none";U.emit("sort:end",{fromIndex:N0,toIndex:V0}),c=V0,K0(t),_.forceRender(),W0(V0),_0(),M0(`${L0(V0)} moved. New position ${V0+1} of ${R0()}.`),requestAnimationFrame(()=>{let H0=K.items.children;for(let A0=0;A0<H0.length;A0++)H0[A0].style.transition=""})},T0=`${T}-item--kb-sorting`,k0=()=>{let a=K.items.querySelectorAll(`.${T0}`);for(let U0=0;U0<a.length;U0++)a[U0].classList.remove(T0)},_0=()=>{k0();let a=K.items.querySelector(`[data-id="${t}"]`);if(a)a.classList.add(T0)};_.afterRenderBatch.push(()=>{if(u)_0()});let G0=(a)=>{if(_.state.isDestroyed)return;if(L){if(a.key==="Escape")a.preventDefault(),a.stopImmediatePropagation(),z();return}if(u)switch(a.key){case" ":case"Enter":a.preventDefault(),a.stopImmediatePropagation(),D0();return;case"Escape":a.preventDefault(),a.stopImmediatePropagation(),F0();return;case"ArrowUp":case"ArrowLeft":a.preventDefault(),a.stopImmediatePropagation(),w0(-1);return;case"ArrowDown":case"ArrowRight":a.preventDefault(),a.stopImmediatePropagation(),w0(1);return;default:if(!a.key.startsWith("F")&&a.key!=="Tab")a.preventDefault(),a.stopImmediatePropagation();return}if(a.key===" "&&!a.shiftKey&&!a.ctrlKey&&!a.metaKey){let U0=X0();if(U0>=0)a.preventDefault(),a.stopImmediatePropagation(),B0(U0)}};K.root.addEventListener("keydown",G0);let b0=`${T}-sort-instructions`,P0=document.createElement("div");P0.id=b0,P0.style.cssText="position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0",P0.textContent="Press Space to reorder. Use arrow keys to move, Space to drop, Escape to cancel.",K.root.appendChild(P0),_.afterRenderBatch.push((a)=>{for(let U0=0;U0<a.length;U0++){let Z0=a[U0].element;Z0.setAttribute("aria-roledescription","sortable item"),Z0.setAttribute("aria-describedby",b0)}}),_.afterRenderBatch.push((a)=>{if(!L)return;for(let U0=0;U0<a.length;U0++){let{index:Z0,element:N0}=a[U0];if(Z0===w)N0.classList.add(`${T}-item--drag-source`),i=N0;else{N0.classList.remove(`${T}-item--drag-source`);let V0=0;if(b>w){if(Z0>w&&Z0<=b)V0=-o}else if(b<w){if(Z0>=b&&Z0<w)V0=o}let O0=Math.round(_.sizeCache.getOffset(Z0)+V0);N0.style.transform=`${F}(${O0}px)`}}}),_.destroyHandlers.push(()=>{if(u)F0();$(),K.items.removeEventListener("pointerdown",E),K.root.removeEventListener("keydown",G0),P0.remove()})}}};var UJ=(J,q)=>{let j=new Map,Q=(X)=>{let W=j.get(X);return W!==void 0?W:J},Y=c0(Q,q);return{getOffset(X){return Y.getOffset(X)},getSize(X){return Q(X)},indexAtOffset(X){return Y.indexAtOffset(X)},getTotalSize(){return Y.getTotalSize()},getTotal(){return Y.getTotal()},rebuild(X){if(X<Y.getTotal()){for(let W of j.keys())if(W>=X)j.delete(W)}Y=c0(Q,X)},isVariable(){return!0},setMeasuredSize(X,W){j.set(X,W)},isMeasured(X){return j.has(X)},getEstimatedSize(){return J},measuredCount(){return j.size}}};var J2=()=>{let J=null;return{name:"withAutoSize",priority:5,setup(q){let j=q.config.horizontal,Y=q.rawConfig.item,X=j?Y.estimatedWidth:Y.estimatedHeight;if(X==null||X<=0)throw Error("[vlist/withAutoSize] Requires item.estimatedHeight (or item.estimatedWidth for horizontal)");let W=Y.gap??0,Z=q.getVirtualTotal(),_=S0(q.rawConfig.padding),K=s0(_,j),U=UJ(X+W,Z),S=q.methods.get("_setSizeCache"),T=q.methods.get("_setConstrainSize");if(!S||!T)throw Error("[vlist/withAutoSize] Incompatible builder version");S(U),T((h)=>U.isMeasured(h));let O=new WeakMap,F=0,f=!1,L=2,w=(h)=>{let p=q.scrollController.getScrollTop(),I=q.state.viewportState.containerSize;if(I<=0)return!1;let A=Math.max(0,h+K-I);return p>=A-L},b=()=>{let h=U.getTotalSize(),p=q.state.viewportState.containerSize;if(p<=0)return;let I=Math.max(0,h+K-p),A=q.scrollController.getScrollTop();if(I>A)q.scrollController.scrollTo(I)},R=()=>{let h=U.getTotalSize();q.updateContentSize(h)},y=()=>{if(f){let h=q.dom.viewport,p=h.scrollHeight,I=p-h.clientHeight,A=q.scrollController.getScrollTop(),d=I>0&&A>=I-L,i=q.getVirtualTotal(),o=q.state.viewportState.renderRange.end,g=i>0&&o>=i-1,C=U.getTotalSize()+K,k=Math.abs(C-p),P=g&&I>0&&A>=I-k-L,M=d||P;if(R(),f=!1,M)h.scrollHeight,b(),q.forceRender()}};J=new ResizeObserver((h)=>{if(q.state.isDestroyed)return;let p=!1,I=q.state.viewportState.visibleRange.start;for(let H of h){let G=O.get(H.target);if(G===void 0)continue;let m=j?H.borderBoxSize[0].inlineSize:H.borderBoxSize[0].blockSize;if(!U.isMeasured(G)){let e=m+W,s=U.getSize(G);if(U.setMeasuredSize(G,e),p=!0,G<I&&e!==s)F+=e-s;J.unobserve(H.target);let x=H.target;if(j)x.style.width=`${m}px`;else x.style.height=`${m}px`}}if(!p)return;let A=U.getTotalSize();if(U.rebuild(q.getVirtualTotal()),F!==0){let H=q.scrollController.getScrollTop();q.scrollController.scrollTo(H+F),F=0}let d=w(A),i=q.getVirtualTotal(),o=q.state.viewportState.renderRange.end,g=i>0&&o>=i-1,C=q.dom.viewport,k=C.scrollHeight-C.clientHeight,P=q.scrollController.getScrollTop(),M=k>0&&P>=k-L;if(d||g||!q.scrollController.isScrolling()){if(R(),f=!1,d||g&&M)C.scrollHeight,b()}else f=!0;q.forceRender()}),q.afterRenderBatch.push((h)=>{for(let{index:p,element:I}of h)if(!U.isMeasured(p))O.set(I,p),J.observe(I)}),q.idleHandlers.push(y),q.destroyHandlers.push(()=>{if(J)J.disconnect(),J=null})},destroy(){if(J)J.disconnect(),J=null}}};var nJ=50,iJ=0.1;function ZJ(J){let q=0,j=0,Q=0;function Y(){return Q>0?j/Q:0}function X(_){if(q=_,_>iJ&&_<nJ)j+=_,Q++}function W(){let _=J.getTotal();if(_===0)return 0;let K=J.getItemSize();if(K<=0)return 0;let U=J.getContainerSize();if(U<=0)return 0;let S=J.getScrollPosition(),T=typeof J.getColumns==="function"?J.getColumns():1,F=Math.ceil(_/T)*K,L=Math.min(F,i0)-U,w=F-U,b=L>0?w/L:1,R=S*b,y=Math.ceil((R+U)/K);return Math.min(y*T,_)}function Z(){let _=J.getTotal(),K=W();return{progress:_>0?Math.min(100,Math.max(0,K/_*100)):0,velocity:q,velocityAvg:Y(),itemCount:K,total:_}}return{getState:Z,onVelocity:X}}export{t1 as withTable,e1 as withSortable,n1 as withSnapshots,o1 as withSelection,p1 as withScrollbar,u1 as withScale,m1 as withPage,a1 as withMasonry,c1 as withGroups,s1 as withGrid,J2 as withAutoSize,g1 as withAsync,I1 as vlist,ZJ as createStats};
|