@pdanpdan/virtual-scroll 0.10.0 → 0.10.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +23 -4
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +337 -311
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
- package/src/composables/useVirtualScroll.ts +47 -27
- package/src/extensions/index.ts +2 -2
- package/src/extensions/snapping.ts +15 -2
- package/src/types.ts +20 -1
- package/src/utils/scroll.ts +1 -1
- package/src/utils/virtual-scroll-logic.ts +22 -13
package/dist/index.d.ts
CHANGED
|
@@ -471,7 +471,7 @@ declare interface ExtensionContext<T = unknown> {
|
|
|
471
471
|
/** Direct access to core component methods. */
|
|
472
472
|
methods: {
|
|
473
473
|
/** Scroll to a specific row and/or column. */
|
|
474
|
-
scrollToIndex: (rowIndex?: number | null, colIndex?: number | null, options?: ScrollAlignment | ScrollAlignmentOptions | ScrollToIndexOptions) =>
|
|
474
|
+
scrollToIndex: (rowIndex?: number | null, colIndex?: number | null, options?: ScrollAlignment | ScrollAlignmentOptions | ScrollToIndexOptions) => ScrollToIndexResult;
|
|
475
475
|
/** Scroll to a specific virtual pixel offset. */
|
|
476
476
|
scrollToOffset: (x?: number | null, y?: number | null, options?: {
|
|
477
477
|
behavior?: 'auto' | 'smooth';
|
|
@@ -1067,6 +1067,24 @@ export declare interface ScrollToIndexOptions {
|
|
|
1067
1067
|
*/
|
|
1068
1068
|
behavior?: 'auto' | 'smooth';
|
|
1069
1069
|
/* Excluded from this release type: isCorrection */
|
|
1070
|
+
/**
|
|
1071
|
+
* If true, only calculates the target position without performing the actual scroll.
|
|
1072
|
+
* Useful for extensions that need to validate if a snap is necessary.
|
|
1073
|
+
* @default false
|
|
1074
|
+
*/
|
|
1075
|
+
dryRun?: boolean;
|
|
1076
|
+
}
|
|
1077
|
+
|
|
1078
|
+
/** Result of the `scrollToIndex` method. */
|
|
1079
|
+
export declare interface ScrollToIndexResult {
|
|
1080
|
+
/** Target relative horizontal position in virtual units (VU). */
|
|
1081
|
+
targetX: number;
|
|
1082
|
+
/** Target relative vertical position in virtual units (VU). */
|
|
1083
|
+
targetY: number;
|
|
1084
|
+
/** Target display horizontal position (DU). */
|
|
1085
|
+
displayTargetX: number;
|
|
1086
|
+
/** Target display vertical position (DU). */
|
|
1087
|
+
displayTargetY: number;
|
|
1070
1088
|
}
|
|
1071
1089
|
|
|
1072
1090
|
/** Represents dimensions in 2D space. */
|
|
@@ -1210,7 +1228,7 @@ export declare function useVirtualScroll<T = unknown>(propsInput: Ref<VirtualScr
|
|
|
1210
1228
|
/** Helper to get the size of a specific item along the scroll axis. */
|
|
1211
1229
|
getItemSize: (index: number) => number;
|
|
1212
1230
|
/** Programmatically scroll to a specific row and/or column. */
|
|
1213
|
-
scrollToIndex: (rowIndex?: number | null, colIndex?: number | null, options?: ScrollAlignment | ScrollAlignmentOptions | ScrollToIndexOptions) =>
|
|
1231
|
+
scrollToIndex: (rowIndex?: number | null, colIndex?: number | null, options?: ScrollAlignment | ScrollAlignmentOptions | ScrollToIndexOptions) => ScrollToIndexResult;
|
|
1214
1232
|
/** Programmatically scroll to a specific virtual pixel offset. */
|
|
1215
1233
|
scrollToOffset: (x?: number | null, y?: number | null, options?: {
|
|
1216
1234
|
behavior?: "auto" | "smooth";
|
|
@@ -1264,6 +1282,7 @@ export declare function useVirtualScroll<T = unknown>(propsInput: Ref<VirtualScr
|
|
|
1264
1282
|
getRowIndexAt: (offset: number) => number;
|
|
1265
1283
|
/** Helper to get the column index at a specific virtual offset (VU). */
|
|
1266
1284
|
getColIndexAt: (offset: number) => number;
|
|
1285
|
+
/* Excluded from this release type: __internalState */
|
|
1267
1286
|
};
|
|
1268
1287
|
|
|
1269
1288
|
/**
|
|
@@ -1530,7 +1549,7 @@ export declare const VirtualScroll: <T>(__VLS_props: NonNullable<Awaited<typeof
|
|
|
1530
1549
|
* @see ScrollToIndexOptions
|
|
1531
1550
|
* @see useVirtualScroll
|
|
1532
1551
|
*/
|
|
1533
|
-
scrollToIndex: (rowIndex?: number | null, colIndex?: number | null, options?: ScrollAlignment | ScrollAlignmentOptions | ScrollToIndexOptions) =>
|
|
1552
|
+
scrollToIndex: (rowIndex?: number | null, colIndex?: number | null, options?: ScrollAlignment | ScrollAlignmentOptions | ScrollToIndexOptions) => ScrollToIndexResult;
|
|
1534
1553
|
/**
|
|
1535
1554
|
* Programmatically scroll to a specific pixel offset.
|
|
1536
1555
|
*
|
|
@@ -1947,7 +1966,7 @@ export declare interface VirtualScrollInstance<T = unknown> extends VirtualScrol
|
|
|
1947
1966
|
/** The tag used for rendering items. */
|
|
1948
1967
|
itemTag: string;
|
|
1949
1968
|
/** Programmatically scroll to a specific row and/or column. */
|
|
1950
|
-
scrollToIndex: (rowIndex?: number | null, colIndex?: number | null, options?: ScrollAlignment | ScrollAlignmentOptions | ScrollToIndexOptions) =>
|
|
1969
|
+
scrollToIndex: (rowIndex?: number | null, colIndex?: number | null, options?: ScrollAlignment | ScrollAlignmentOptions | ScrollToIndexOptions) => ScrollToIndexResult;
|
|
1951
1970
|
/** Programmatically scroll to a specific pixel offset. */
|
|
1952
1971
|
scrollToOffset: (x?: number | null, y?: number | null, options?: {
|
|
1953
1972
|
behavior?: 'auto' | 'smooth';
|
package/dist/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
(function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require(`vue`)):typeof define==`function`&&define.amd?define([`exports`,`vue`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.VirtualScroll={},e.Vue))})(this,function(e,t){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});let n={items:[],currentIndex:0,currentColIndex:0,currentEndIndex:0,currentEndColIndex:0,scrollOffset:{x:0,y:0},displayScrollOffset:{x:0,y:0},viewportSize:{width:0,height:0},displayViewportSize:{width:0,height:0},totalSize:{width:0,height:0},isScrolling:!1,isProgrammaticScroll:!1,range:{start:0,end:0},columnRange:{start:0,end:0,padStart:0,padEnd:0}},r=1e7;function i(e){return e===null||typeof document<`u`&&e===document.documentElement||typeof window<`u`&&e===window}function a(e){return typeof e==`object`&&!!e&&`tagName`in e&&e.tagName===`BODY`}function o(e){return i(e)||a(e)}function s(e){return e!=null&&`getBoundingClientRect`in e}function c(e){return e!=null&&`scrollLeft`in e}function l(e,t){i(e)?window.scrollTo(t):e!=null&&c(e)&&(typeof e.scrollTo==`function`?e.scrollTo(t):(t.left!==void 0&&(e.scrollLeft=t.left),t.top!==void 0&&(e.scrollTop=t.top)))}function u(e){return typeof e==`object`&&!!e&&(`align`in e||`behavior`in e||`isCorrection`in e)}function d(e,t){return typeof e==`object`&&e?e.x||0:(t===`horizontal`||t===`both`)&&e||0}function f(e,t){return typeof e==`object`&&e?e.y||0:(t===`vertical`||t===`both`)&&e||0}function p({scrollPos:e,containerSize:t,count:n,bufferBefore:r,bufferAfter:i,gap:a,fixedSize:o,findLowerBound:s,query:c}){let l=0,u=n,d=e+t;if(o!==null){let t=o+a;l=Math.floor(e/t),u=Math.ceil(d/t)}else l=s(e),u=s(d),u<n&&c(u)<d&&u++;return{start:Math.max(0,l-r),end:Math.min(n,u+i)}}function m(e,t){let n=0,r=e.length-1,i;for(;n<=r;){let a=n+r>>>1;e[a]>t?(i=e[a],r=a-1):n=a+1}return i}function h(e,t){let n=0,r=e.length-1,i;for(;n<=r;){let a=n+r>>>1;e[a]<t?(i=e[a],n=a+1):r=a-1}return i}function g({align:e,targetPos:t,itemSize:n,scrollPos:r,viewSize:i,stickyOffsetStart:a,stickyOffsetEnd:o}){let s=t-a,c=t-(i-o-n);return e===`start`?{target:s,effectiveAlign:`start`}:e===`center`?{target:t-a-(i-a-o-n)/2,effectiveAlign:`center`}:e===`end`?{target:c,effectiveAlign:`end`}:S(t,n,r,i,a,o)?{target:r,effectiveAlign:`auto`}:n<=i-a-o?t<r+a?{target:s,effectiveAlign:`start`}:{target:c,effectiveAlign:`end`}:Math.abs(s-r)<Math.abs(c-r)?{target:s,effectiveAlign:`start`}:{target:c,effectiveAlign:`end`}}function _(e,t,n,r){return e<=0?0:t===null?Math.max(0,r(e)-n):Math.max(0,e*(t+n)-n)}function v(e,t,n,r,i){let a=t-e;return a<=0?0:n===null?Math.max(0,i(t)-i(e)-r):Math.max(0,a*(n+r)-r)}function y(e,t,n,r){return t===null?r(e):e*(t+n)}function b({index:e,align:t,viewSize:n,scrollPos:r,fixedSize:i,gap:a,query:o,getSize:s,stickyIndices:c,stickyStart:l,stickyEnd:u=0}){let d=l;if(c&&c.length>0){let t=h(c,e);t!==void 0&&(d+=_(1,i,0,()=>s(t)))}let f=i===null?o(e):e*(i+a),p=i===null?s(e)-a:i,{target:m,effectiveAlign:v}=g({align:t,targetPos:f,itemSize:p,scrollPos:r,viewSize:n,stickyOffsetStart:d,stickyOffsetEnd:u});return{target:m,itemSize:p,effectiveAlign:v}}function x(e,t,n,r,i,a,o){if(e<=t)return{isActive:!1,offset:0};let s=o===void 0?m(i,r):o;if(s===void 0)return{isActive:!0,offset:0};let c=a(s);return e>=c?{isActive:!1,offset:0}:{isActive:!0,offset:Math.max(0,Math.min(n,c-e))-n}}function S(e,t,n,r,i=0,a=0){let o=n+i,s=n+r-a;return t<=r-i-a?e>=o-.5&&e+t<=s+.5:e<=o+.5&&e+t>=s-.5}function C(e,t,n){if(e||t<=1e7)return 1;let i=Math.min(t,r),a=t-n,o=i-n;return o>0?a/o:1}function w(e,t){return e?t:Math.min(t,r)}function T(e,t,n){return(e-t)*n}function E(e,t,n){return e/n+t}function D({rowIndex:e,colIndex:t,options:n,direction:i,viewportWidth:a,viewportHeight:o,totalWidth:s,totalHeight:c,gap:l,columnGap:d,fixedSize:f,fixedWidth:p,relativeScrollX:m,relativeScrollY:h,getItemSizeY:g,getItemSizeX:_,getItemQueryY:v,getItemQueryX:y,getColumnSize:x,getColumnQuery:S,scaleX:C,scaleY:w,hostOffsetX:T,hostOffsetY:E,stickyIndices:D,stickyStartX:O=0,stickyStartY:k=0,stickyEndX:ee=0,stickyEndY:te=0,flowPaddingStartX:A=0,flowPaddingStartY:ne=0,paddingStartX:j=0,paddingStartY:M=0,paddingEndX:N=0,paddingEndY:re=0}){let P;P=u(n)?n.align:n;let ie=(P&&typeof P==`object`?P.x:P)||`auto`,F=(P&&typeof P==`object`?P.y:P)||`auto`,ae=m,oe=h,se=0,I=0,L=`auto`,R=`auto`,ce=C===1?s:r,le=w===1?c:r,ue=Math.max(0,T+ce-a),z=Math.max(0,E+le-o),de=(ue-T)*C,fe=(z-E)*w,B=A+O+j,V=ne+k+M;if(e!=null){let t=b({index:e,align:F,viewSize:o,scrollPos:h,fixedSize:f,gap:l,query:v,getSize:g,stickyIndices:D,stickyStart:k+M,stickyEnd:te+re});oe=t.target+V,I=t.itemSize,R=t.effectiveAlign}if(t!=null){let e=i===`both`,n=b({index:t,align:ie,viewSize:a,scrollPos:m,fixedSize:e?p:f,gap:e||i===`horizontal`?d:l,query:e?S:y,getSize:e?x:_,stickyIndices:D,stickyStart:O+j,stickyEnd:ee+N});ae=n.target+B,se=n.itemSize,L=n.effectiveAlign}return ae=Math.max(0,Math.min(ae,de)),oe=Math.max(0,Math.min(oe,fe)),{targetX:ae,targetY:oe,itemWidth:se,itemHeight:I,effectiveAlignX:L,effectiveAlignY:R}}function O({direction:e,relativeScrollX:t,relativeScrollY:n,usableWidth:r,usableHeight:i,itemsLength:a,bufferBefore:o,bufferAfter:s,gap:c,columnGap:l,fixedSize:u,findLowerBoundY:d,findLowerBoundX:f,queryY:m,queryX:h}){let g=e===`vertical`||e===`both`;return p({scrollPos:g?n:t,containerSize:g?i:r,count:a,bufferBefore:o,bufferAfter:s,gap:g?c:l,fixedSize:u,findLowerBound:g?d:f,query:g?m:h})}function k({columnCount:e,relativeScrollX:t,usableWidth:n,colBuffer:r,fixedWidth:i,columnGap:a,findLowerBound:o,query:s,totalColsQuery:c}){if(!e)return{start:0,end:0,padStart:0,padEnd:0};let{start:l,end:u}=p({scrollPos:t,containerSize:n,count:e,bufferBefore:r,bufferAfter:r,gap:a,fixedSize:i,findLowerBound:o,query:s}),d=l,f=u,m=i===null?s(d):d*(i+a),h=i===null?Math.max(0,c()-a):e*(i+a)-a,g=i===null?s(f)-(f>0?a:0):f*(i+a)-(f>0?a:0);return{start:d,end:f,padStart:m,padEnd:Math.max(0,h-g)}}function ee({index:e,isSticky:t,direction:n,relativeScrollX:r,relativeScrollY:i,originalX:a,originalY:o,width:s,height:c,stickyIndices:l,fixedSize:u,gap:d,columnGap:f,getItemQueryY:p,getItemQueryX:m,nextStickyIndex:h}){let g=!1,_=!1,v={x:0,y:0};if(!t)return{isStickyActiveX:g,isStickyActiveY:_,isStickyActive:!1,stickyOffset:v};if(n===`vertical`||n===`both`){let t=x(i,o,c,e,l,e=>u===null?p(e):e*(u+d),h);_=t.isActive,v.y=t.offset}if(n===`horizontal`){let t=x(r,a,s,e,l,e=>u===null?m(e):e*(u+f),h);t.isActive&&(g=!0,v.x=t.offset)}return{isStickyActiveX:g,isStickyActiveY:_,isStickyActive:g||_,stickyOffset:v}}function te({index:e,direction:t,fixedSize:n,gap:r,columnGap:i,usableWidth:a,usableHeight:o,totalWidth:s,queryY:c,queryX:l,getSizeY:u,getSizeX:d,columnRange:f}){let p=0,m=0,h=0,g=0;return t===`horizontal`?(p=n===null?l(e):e*(n+i),h=n===null?d(e)-i:n,g=o):t===`both`&&f?(m=n===null?c(e):e*(n+r),g=n===null?u(e)-r:n,p=f.padStart,h=Math.max(0,s-f.padStart-f.padEnd)):(m=n===null?c(e):e*(n+r),g=n===null?u(e)-r:n,h=t===`both`?s:a),{height:g,width:h,x:p,y:m}}function A({item:e,direction:t,itemSize:n,containerTag:r,paddingStartX:i,paddingStartY:a,isHydrated:o,isRtl:s}){let c=t===`vertical`,l=t===`horizontal`,u=t===`both`,d=n==null||n===0,f={blockSize:l?`100%`:d?`auto`:`${e.size.height}px`};if(c&&r===`table`?f.minInlineSize=`100%`:f.inlineSize=c?`100%`:d?`auto`:`${e.size.width}px`,d&&(c||(f.minInlineSize=`1px`),l||(f.minBlockSize=`1px`)),o){let t=e.isStickyActiveY??(e.isStickyActive&&(c||u)),n=e.isStickyActiveX??(e.isStickyActive&&l),r=s?-(n?e.stickyOffset.x:e.offset.x):n?e.stickyOffset.x:e.offset.x,o=t?e.stickyOffset.y:e.offset.y;e.isStickyActive||e.isStickyActiveX||e.isStickyActiveY?(f.insetBlockStart=t?`${a}px`:`auto`,f.insetInlineStart=n?`${i}px`:`auto`,f.transform=`translate(${r}px, ${o}px)`):f.transform=`translate(${r}px, ${e.offset.y}px)`}return f}function ne(e,t,n,r,i,a,o,s,c){let l=t.start||0,u=t.colStart||0,d=0,f=e===`horizontal`?0:y(l,n,i,o);return e===`horizontal`?d=y(u,n,a,s):e===`both`&&(d=y(u,r,a,c)),{x:d,y:f}}function j(e,t){if(e.length===0||t.length<=e.length)return 0;let n=e[0];if(n===void 0)return 0;let r=t.length-e.length;for(let e=1;e<=r;e++)if(t[e]===n)return e;return 0}function M({direction:e,itemsLength:t,columnCount:n,fixedSize:r,fixedWidth:i,gap:a,columnGap:o,usableWidth:s,usableHeight:c,queryY:l,queryX:u,queryColumn:d}){let f=e===`both`,p=e===`horizontal`,m=0,h=0;return f?(m=_(n,i,o,d),h=_(t,r,a,l)):p?(m=_(t,r,o,u),h=c):(m=s,h=_(t,r,a,l)),{width:f?Math.max(m,s):m,height:f?Math.max(h,c):h}}function N(e,t,n=16){let r={x:e.x*t,y:e.y*t};return{nextVelocity:r,delta:{x:r.x*n,y:r.y*n}}}function re(e,t,n){return n<=0?{x:0,y:0}:{x:(e.x-t.x)/n,y:(e.y-t.y)/n}}function P(e,t,n,r,i,a,o,s,c,l){let u=e;if(e===`auto`)if(t===`start`)u=`end`;else if(t===`end`)u=`start`;else return null;if(e===`next`){if(t===`start`)u=`end`;else if(t===`end`)u=`start`;else return null;if(u===`start`)return s(n)>a?null:{index:Math.min(o-1,n+1),align:`start`};if(u===`end`)return s(r)>a?null:{index:Math.max(0,r-1),align:`end`}}if(u===`start`){let e=s(n);if(e>a)return null;let t=c(n)+e-i;return{index:Math.min(o-1,t/e>=.5?n:n+1),align:`start`}}if(u===`end`){let e=s(r);if(e>a)return null;let t=i+a-c(r);return{index:Math.max(0,t/e>=.5?r:r-1),align:`end`}}if(u===`center`){let e=i+a/2,t=Math.max(0,Math.min(o-1,l(e)));return s(t)>a?null:{index:t,align:`center`}}return null}function ie(e,t,n,r){let i=(t||0)+n;return t!==null&&i>0?Math.floor(e/i):r(e)}var F=class{tree;values;constructor(e){this.tree=new Float64Array(e+1),this.values=new Float64Array(e)}update(e,t){if(!(e<0||e>=this.values.length))for(this.values[e]=this.values[e]+t,e++;e<this.tree.length;)this.tree[e]=this.tree[e]+t,e+=e&-e}query(e){let t=0;for(;e>0;)t+=this.tree[e]||0,e-=e&-e;return t}set(e,t){e<0||e>=this.values.length||(this.values[e]=t)}get length(){return this.values.length}get(e){return this.values[e]||0}getValues(){return this.values}findLowerBound(e){let t=0,n=this.tree.length,r=1<<Math.floor(Math.log2(n-1));for(;r>0;){let i=t+r;if(i<n){let n=this.tree[i]||0;n<=e&&(t=i,e-=n)}r>>=1}return t}rebuild(){this.tree.fill(0);for(let e=0;e<this.values.length;e++)this.tree[e+1]=this.values[e]||0;for(let e=1;e<this.tree.length;e++){let t=e+(e&-e);t<this.tree.length&&(this.tree[t]=this.tree[t]+this.tree[e])}}resize(e){if(e===this.values.length)return;let t=new Float64Array(e);t.set(this.values.subarray(0,Math.min(e,this.values.length))),this.values=t,this.tree=new Float64Array(e+1),this.rebuild()}shift(e){if(e===0)return;let t=this.values.length,n=new Float64Array(t);e>0?n.set(this.values.subarray(0,Math.min(t-e,this.values.length)),e):n.set(this.values.subarray(-e)),this.values=n,this.rebuild()}};function ae(e){let n=(0,t.computed)(()=>(0,t.toValue)(e)),r=new F(n.value.props.items?.length||0),i=new F(n.value.props.items?.length||0),a=new F(n.value.props.columnCount||0),o=(0,t.shallowRef)(new Uint8Array),s=(0,t.shallowRef)(new Uint8Array),c=(0,t.shallowRef)(new Uint8Array),l=(0,t.ref)(0),u=(0,t.ref)(!1),d=[],f=(e,t)=>typeof n.value.props.itemSize==`function`?n.value.props.itemSize(e,t):n.value.defaultSize,p=(e,t,r,i,a,o)=>{if(l.value,typeof t==`number`&&t>0)return t;if(Array.isArray(t)&&t.length>0){let n=t[e%t.length];return n!=null&&n>0?n:r}if(typeof t==`function`){let i=n.value.props.items[e];return o&&n.value.direction!==`both`||!o?i===void 0?r:t(i,e):t(e)}let s=a.get(e);return s>0?s-i:r},m=(e,t)=>{if(r.resize(e),i.resize(e),a.resize(t),s.value.length!==e){let t=new Uint8Array(e);t.set(s.value.subarray(0,Math.min(e,s.value.length))),s.value=t}if(c.value.length!==e){let t=new Uint8Array(e);t.set(c.value.subarray(0,Math.min(e,c.value.length))),c.value=t}if(o.value.length!==t){let e=new Uint8Array(t);e.set(o.value.subarray(0,Math.min(t,o.value.length))),o.value=e}},h=(e,t,n,r,i,a,o,s,c)=>{let l=!1;if(c){for(let r=0;r<e;r++)t.get(r)!==0&&(t.set(r,0),n[r]=0,l=!0);return l}for(let c=0;c<e;c++){let e=t.get(c),u=n[c]===1;if(!o||!u&&e===0){let u=p(c,r,i,a,t,s)+a;Math.abs(e-u)>.5?(t.set(c,u),n[c]=o?0:1,l=!0):o||(n[c]=1)}}return l},g=()=>{let e=n.value.props,t=e.items.length,l=e.columnCount||0,u=e.gap||0,d=e.columnGap||0,f=e.columnWidth,p=e.itemSize,m=e.defaultColumnWidth||100,g=e.defaultItemSize||n.value.defaultSize,_=h(l,a,o.value,f,m,d,n.value.isDynamicColumnWidth,!0,!1),v=h(t,r,s.value,p,g,d,n.value.isDynamicItemSize,!0,n.value.direction!==`horizontal`),y=h(t,i,c.value,p,g,u,n.value.isDynamicItemSize,!1,n.value.direction===`horizontal`);_&&a.rebuild(),v&&r.rebuild(),y&&i.rebuild()},_=(e,t,n,r,i,a,o)=>{let s=n.get(e),c=t+i,l=!1;if(!r[e]||Math.abs(c-s)>.1){let t=c-s;n.update(e,t),r[e]=1,l=!0,e<a&&s>0&&(o.val+=t)}return l},v=()=>{let e=n.value.props,t=e.items,a=t.length;m(a,e.columnCount||0);let o=e.restoreScrollOnPrepend?j(d,t):0;if(o>0){r.shift(o),i.shift(o);let e=new Uint8Array(a),t=new Uint8Array(a);e.set(s.value.subarray(0,Math.min(a-o,s.value.length)),o),t.set(c.value.subarray(0,Math.min(a-o,c.value.length)),o),s.value=e,c.value=t}g(),d=[...t],u.value=!0,l.value++};return{itemSizesX:r,itemSizesY:i,columnSizes:a,measuredItemsX:s,measuredItemsY:c,measuredColumns:o,treeUpdateFlag:l,sizesInitialized:u,getItemBaseSize:f,getSizeAt:p,initializeSizes:v,updateItemSizes:(e,t,u,d,f,p)=>{let m=!1,h={val:0},g={val:0},v=n.value.props,y=v.gap||0,b=v.columnGap||0,x=t(n.value.direction===`horizontal`?d:f),S=u(d),C=n.value.direction===`horizontal`,w=n.value.direction===`both`,T=new Set,E=new Set,D=(e,t)=>{e>=0&&e<(v.columnCount||0)&&!E.has(e)&&(E.add(e),_(e,t,a,o.value,b,S,h)&&(m=!0))};for(let{index:t,inlineSize:a,blockSize:o,element:l}of e){if(a<=0&&o<=0)continue;let e=n.value.isDynamicItemSize||typeof v.itemSize==`function`;t>=0&&!T.has(t)&&e&&o>0&&(T.add(t),C&&a>0&&_(t,a,r,s.value,b,x,h)&&(m=!0),C||_(t,o,i,c.value,y,x,g)&&(m=!0));let u=n.value.isDynamicColumnWidth||typeof v.columnWidth==`function`;if(w&&l&&v.columnCount&&u&&(a>0||l.dataset.colIndex===void 0)){let e=l.dataset.colIndex;if(e!=null)D(Number.parseInt(e,10),a);else{let e=Array.from(l.querySelectorAll(`[data-col-index]`));for(let t of e)D(Number.parseInt(t.dataset.colIndex,10),t.getBoundingClientRect().width)}}}m&&(l.value++,(h.val!==0||g.val!==0)&&p(h.val,g.val))},refresh:()=>{r.resize(0),i.resize(0),a.resize(0),o.value.fill(0),s.value.fill(0),c.value.fill(0),v()}}}function oe(e,n=[]){let r=(0,t.computed)(()=>(0,t.toValue)(e)),i=(0,t.ref)(0),a=(0,t.ref)(0),p=(0,t.ref)(0),m=(0,t.ref)(0),g=(0,t.ref)(!1),_=(0,t.ref)(!1),b=(0,t.ref)(!1),x=(0,t.ref)(!1),S=(0,t.ref)(!1),C=(0,t.ref)(0),A=(0,t.ref)(0),j=(0,t.reactive)({x:0,y:0}),N=(0,t.reactive)({x:0,y:0}),re,P=(0,t.ref)(1),F=(0,t.ref)(1),oe=(0,t.ref)(null),se=(0,t.ref)(null),I=(0,t.ref)(null),L=(0,t.ref)(!1),R,ce=()=>{L.value=!1,clearTimeout(R),I.value=null},le=0,ue=0,z=(0,t.computed)(()=>[`vertical`,`horizontal`,`both`].includes(r.value.direction)?r.value.direction:`vertical`),de=(0,t.computed)(()=>r.value.itemSize===void 0||r.value.itemSize===null||r.value.itemSize===0),fe=(0,t.computed)(()=>r.value.columnWidth===void 0||r.value.columnWidth===null||r.value.columnWidth===0),B=(0,t.computed)(()=>typeof r.value.itemSize==`number`&&r.value.itemSize>0?r.value.itemSize:null),V=(0,t.computed)(()=>typeof r.value.columnWidth==`number`&&r.value.columnWidth>0?r.value.columnWidth:null),pe=(0,t.computed)(()=>r.value.defaultItemSize||B.value||40),{itemSizesX:H,itemSizesY:U,columnSizes:W,measuredColumns:G,measuredItemsY:me,treeUpdateFlag:K,getSizeAt:he,getItemBaseSize:ge,initializeSizes:_e,updateItemSizes:ve,refresh:ye}=ae((0,t.computed)(()=>({props:r.value,isDynamicItemSize:de.value,isDynamicColumnWidth:fe.value,defaultSize:pe.value,fixedItemSize:B.value,direction:z.value}))),be=(0,t.computed)(()=>d(r.value.scrollPaddingStart,r.value.direction)),xe=(0,t.computed)(()=>d(r.value.scrollPaddingEnd,r.value.direction)),Se=(0,t.computed)(()=>f(r.value.scrollPaddingStart,r.value.direction)),Ce=(0,t.computed)(()=>f(r.value.scrollPaddingEnd,r.value.direction)),q=(0,t.computed)(()=>d(r.value.stickyStart,r.value.direction)),we=(0,t.computed)(()=>d(r.value.stickyEnd,r.value.direction)),J=(0,t.computed)(()=>f(r.value.stickyStart,r.value.direction)),Te=(0,t.computed)(()=>f(r.value.stickyEnd,r.value.direction)),Ee=(0,t.computed)(()=>d(r.value.flowPaddingStart,r.value.direction)),De=(0,t.computed)(()=>d(r.value.flowPaddingEnd,r.value.direction)),Y=(0,t.computed)(()=>f(r.value.flowPaddingStart,r.value.direction)),Oe=(0,t.computed)(()=>f(r.value.flowPaddingEnd,r.value.direction)),ke=(0,t.computed)(()=>C.value-(z.value===`vertical`?0:q.value+we.value)),Ae=(0,t.computed)(()=>A.value-(z.value===`horizontal`?0:J.value+Te.value)),je=(0,t.computed)(()=>(K.value,M({direction:z.value,itemsLength:r.value.items.length,columnCount:r.value.columnCount||0,fixedSize:B.value,fixedWidth:V.value,gap:r.value.gap||0,columnGap:r.value.columnGap||0,usableWidth:ke.value,usableHeight:Ae.value,queryY:e=>U.query(e),queryX:e=>H.query(e),queryColumn:e=>W.query(e)}))),Me=(0,t.computed)(()=>o(r.value.container)),Ne=(0,t.computed)(()=>je.value.width+be.value+xe.value),Pe=(0,t.computed)(()=>je.value.height+Se.value+Ce.value),Fe=(0,t.computed)(()=>Ee.value+q.value+we.value+De.value+Ne.value),Ie=(0,t.computed)(()=>Y.value+J.value+Te.value+Oe.value+Pe.value),X=(0,t.reactive)({x:(0,t.computed)(()=>Math.max(0,j.x-(Ee.value+q.value))),y:(0,t.computed)(()=>Math.max(0,j.y-(Y.value+J.value)))}),Le=(0,t.computed)(()=>w(Me.value,Fe.value)),Re=(0,t.computed)(()=>w(Me.value,Ie.value)),ze=(0,t.computed)(()=>w(Me.value,Ne.value)),Be=(0,t.computed)(()=>w(Me.value,Pe.value)),Z=(0,t.computed)(()=>{if(z.value===`vertical`)return 0;let e=Ee.value+q.value+be.value;return p.value-e}),Q=(0,t.computed)(()=>{if(z.value===`horizontal`)return 0;let e=Y.value+J.value+Se.value;return m.value-e}),Ve=e=>{let t=z.value===`horizontal`;return ie(e,B.value,t?r.value.columnGap||0:r.value.gap||0,e=>t?H.findLowerBound(e):U.findLowerBound(e))},He=e=>z.value===`both`?ie(e,V.value,r.value.columnGap||0,e=>W.findLowerBound(e)):z.value===`horizontal`?Ve(e):0,Ue=e=>z.value===`both`?he(e,r.value.columnWidth,r.value.defaultColumnWidth||100,r.value.columnGap||0,W,!0):he(e,r.value.itemSize,r.value.defaultItemSize||40,r.value.columnGap||0,H,!0),We=e=>z.value===`horizontal`?Ae.value:he(e,r.value.itemSize,r.value.defaultItemSize||40,r.value.gap||0,U,!1),Ge=e=>z.value===`horizontal`?Ee.value+q.value+be.value+y(e,B.value,r.value.columnGap||0,e=>H.query(e)):Y.value+J.value+Se.value+y(e,B.value,r.value.gap||0,e=>U.query(e)),Ke=e=>z.value===`horizontal`?Ue(e):We(e),qe=()=>{if(typeof window>`u`)return;let e=r.value.container||r.value.hostRef||window,t=s(e)?e:document.documentElement,n=window.getComputedStyle(t).direction===`rtl`;S.value!==n&&(S.value=n)},Je=(e,n)=>{(0,t.nextTick)(()=>{Xe(e>0?Z.value+e:null,n>0?Q.value+n:null,{behavior:`auto`})})};function Ye(e,t,n){let o=typeof n==`object`&&n&&`isCorrection`in n?n.isCorrection:!1,s=r.value.container||window,{targetX:c,targetY:d,effectiveAlignX:f,effectiveAlignY:h}=D({rowIndex:e,colIndex:t,options:n,direction:z.value,viewportWidth:C.value,viewportHeight:A.value,totalWidth:Fe.value,totalHeight:Ie.value,gap:r.value.gap||0,columnGap:r.value.columnGap||0,fixedSize:B.value,fixedWidth:V.value,relativeScrollX:Z.value,relativeScrollY:Q.value,getItemSizeY:e=>U.get(e),getItemSizeX:e=>H.get(e),getItemQueryY:e=>U.query(e),getItemQueryX:e=>H.query(e),getColumnSize:e=>W.get(e),getColumnQuery:e=>W.query(e),scaleX:P.value,scaleY:F.value,hostOffsetX:X.x,hostOffsetY:X.y,stickyIndices:r.value.stickyIndices||[],stickyStartX:q.value,stickyStartY:J.value,stickyEndX:we.value,stickyEndY:Te.value,flowPaddingStartX:Ee.value,flowPaddingStartY:Y.value,paddingStartX:be.value,paddingStartY:Se.value,paddingEndX:xe.value,paddingEndY:Ce.value});if(!o){let r=u(n)?n.behavior:void 0;I.value={rowIndex:e,colIndex:t,options:{align:{x:f,y:h},...r==null?{}:{behavior:r}}}}let g=E(c,X.x,P.value),_=E(d,X.y,F.value),v=S.value?-g:g,y=_,b;u(n)&&(b=n.behavior);let x=o?`auto`:b||`smooth`;L.value=!0,clearTimeout(R),x===`smooth`&&(R=setTimeout(()=>{L.value=!1,R=void 0,ot()},500));let w={behavior:x};t!=null&&(w.left=S.value?v:Math.max(0,v)),e!=null&&(w.top=Math.max(0,y)),l(s,w),(x===`auto`||x===void 0)&&(t!=null&&(i.value=S.value?v:Math.max(0,v),p.value=c),e!=null&&(a.value=Math.max(0,y),m.value=d))}function Xe(e,t,n){let o=r.value.container||window;L.value=!0,clearTimeout(R),n?.behavior===`smooth`&&(R=setTimeout(()=>{L.value=!1,R=void 0,ot()},500)),I.value=null;let s=e==null?null:Math.max(0,Math.min(e,Fe.value-C.value)),c=t==null?null:Math.max(0,Math.min(t,Ie.value-A.value));s!==null&&(p.value=s),c!==null&&(m.value=c);let u=typeof window<`u`&&o===window?window.scrollX:o.scrollLeft,d=typeof window<`u`&&o===window?window.scrollY:o.scrollTop,f=s===null?null:E(s,X.x,P.value),h=c===null?null:E(c,X.y,F.value),g=f===null?u:S.value?-f:f,_=h===null?d:h,v={behavior:n?.behavior||`auto`};e!=null&&(v.left=g),t!=null&&(v.top=_),l(o,v),(n?.behavior===`auto`||n?.behavior===void 0)&&(e!=null&&(i.value=g),t!=null&&(a.value=_))}let Ze=(0,t.computed)(()=>{if(K.value,(!_.value||b.value)&&r.value.ssrRange)return{start:r.value.ssrRange.start,end:r.value.ssrRange.end};let e=r.value.ssrRange&&!g.value?0:r.value.bufferBefore??5,t=r.value.bufferAfter??5;return O({direction:z.value,relativeScrollX:Z.value,relativeScrollY:Q.value,usableWidth:ke.value,usableHeight:Ae.value,itemsLength:r.value.items.length,bufferBefore:e,bufferAfter:t,gap:r.value.gap||0,columnGap:r.value.columnGap||0,fixedSize:B.value,findLowerBoundY:e=>U.findLowerBound(e),findLowerBoundX:e=>H.findLowerBound(e),queryY:e=>U.query(e),queryX:e=>H.query(e)})}),$=(0,t.computed)(()=>{K.value;let e=Z.value+q.value,t=Q.value+J.value;return Ve(z.value===`horizontal`?e:t)}),Qe=(0,t.computed)(()=>{K.value;let e=r.value.columnCount||0;if(!e)return{start:0,end:0,padStart:0,padEnd:0};if((!_.value||b.value)&&r.value.ssrRange){let{colStart:t=0,colEnd:n=0}=r.value.ssrRange,i=Math.max(0,t),a=Math.min(e,n||e);return k({columnCount:e,relativeScrollX:y(i,V.value,r.value.columnGap||0,e=>W.query(e)),usableWidth:v(i,a,V.value,r.value.columnGap||0,e=>W.query(e)),colBuffer:0,fixedWidth:V.value,columnGap:r.value.columnGap||0,findLowerBound:e=>W.findLowerBound(e),query:e=>W.query(e),totalColsQuery:()=>W.query(e)})}let t=r.value.ssrRange&&!g.value?0:2;return k({columnCount:e,relativeScrollX:Z.value,usableWidth:ke.value,colBuffer:t,fixedWidth:V.value,columnGap:r.value.columnGap||0,findLowerBound:e=>W.findLowerBound(e),query:e=>W.query(e),totalColsQuery:()=>W.query(e)})}),$e={props:r,scrollDetails:null,totalSize:(0,t.computed)(()=>({width:Fe.value,height:Ie.value})),range:Ze,currentIndex:$,internalState:{scrollX:i,scrollY:a,internalScrollX:p,internalScrollY:m,isRtl:S,isScrolling:g,isProgrammaticScroll:L,viewportWidth:C,viewportHeight:A,scaleX:P,scaleY:F,scrollDirectionX:oe,scrollDirectionY:se,relativeScrollX:Z,relativeScrollY:Q},methods:{scrollToIndex:Ye,scrollToOffset:Xe,updateDirection:qe,getRowIndexAt:Ve,getColIndexAt:He,getItemSize:Ke,getItemBaseSize:ge,getItemOffset:Ge,handleScrollCorrection:Je}},et=[],tt=(0,t.computed)(()=>{K.value;let{start:e,end:t}=Ze.value,i=[],a=[...r.value.stickyIndices||[]].sort((e,t)=>e-t),o=new Set(a),s=[];if(_.value||!r.value.ssrRange){let t=$.value,n=h(a,t);n!==void 0&&n<e&&s.push(n)}for(let n=e;n<t;n++)s.push(n);let{x:c,y:l}=!_.value&&r.value.ssrRange?ne(z.value,r.value.ssrRange,B.value,V.value,r.value.gap||0,r.value.columnGap||0,e=>U.query(e),e=>H.query(e),e=>W.query(e)):{x:0,y:0},u=new Map;for(let e of et)u.set(e.index,e);let d=-1,f=0,g=-1,v=0,y=e=>e===d+1?(f+=H.get(d),d=e,f):(f=H.query(e),d=e,f),b=e=>e===g+1?(v+=U.get(g),g=e,v):(v=U.query(e),g=e,v),x=Ee.value+q.value+be.value,S=Y.value+J.value+Se.value,C=Ee.value+q.value,w=Y.value+J.value,T=Qe.value,E=0;for(let e of s){let t=r.value.items[e];if(t===void 0)continue;let{x:n,y:s,width:d,height:f}=te({index:e,direction:z.value,fixedSize:B.value,gap:r.value.gap||0,columnGap:r.value.columnGap||0,usableWidth:ke.value,usableHeight:Ae.value,totalWidth:je.value.width,queryY:b,queryX:y,getSizeY:e=>U.get(e),getSizeX:e=>H.get(e),columnRange:T}),h=o.has(e),g=n,v=s;for(;E<a.length&&a[E]<=e;)E++;let D=E<a.length?a[E]:void 0,{isStickyActive:O,isStickyActiveX:k,isStickyActiveY:A,stickyOffset:ne}=ee({index:e,isSticky:h,direction:z.value,relativeScrollX:Z.value,relativeScrollY:Q.value,originalX:g,originalY:v,width:d,height:f,stickyIndices:a,fixedSize:B.value,fixedWidth:V.value,gap:r.value.gap||0,columnGap:r.value.columnGap||0,getItemQueryY:e=>U.query(e),getItemQueryX:e=>H.query(e),nextStickyIndex:D}),j=_.value?p.value/P.value+(n+x-p.value)-C:n-c,M=_.value?m.value/F.value+(s+S-m.value)-w:s-l,N=u.get(e);N&&N.item===t&&N.offset.x===j&&N.offset.y===M&&N.size.width===d&&N.size.height===f&&N.isSticky===h&&N.isStickyActive===O&&N.isStickyActiveX===k&&N.isStickyActiveY===A&&N.stickyOffset.x===ne.x&&N.stickyOffset.y===ne.y?i.push(N):i.push({item:t,index:e,offset:{x:j,y:M},size:{width:d,height:f},originalX:g,originalY:v,isSticky:h,isStickyActive:O,isStickyActiveX:k,isStickyActiveY:A,stickyOffset:ne})}let D=i;return n.forEach(e=>{e.transformRenderedItems&&(D=e.transformRenderedItems(D,$e))}),et=D,D}),nt=(0,t.computed)(()=>{K.value;let e=Z.value+q.value,t=Q.value+J.value,n=Z.value+(C.value-we.value)-1,r=Q.value+(A.value-Te.value)-1,o=He(e),s=Ve(t),c=Ve(z.value===`horizontal`?n:r),l=He(n);return{items:tt.value,currentIndex:s,currentColIndex:o,currentEndIndex:c,currentEndColIndex:l,scrollOffset:{x:p.value,y:m.value},displayScrollOffset:{x:S.value?Math.abs(i.value+N.x):Math.max(0,i.value-N.x),y:Math.max(0,a.value-N.y)},viewportSize:{width:C.value,height:A.value},displayViewportSize:{width:C.value,height:A.value},totalSize:{width:Fe.value,height:Ie.value},isScrolling:g.value,isProgrammaticScroll:L.value,range:Ze.value,columnRange:Qe.value}});$e.scrollDetails=nt,n.forEach(e=>e.onInit?.($e));let rt=e=>{let t=e.target;if(typeof window>`u`)return;qe(),t===window||t===document?(i.value=window.scrollX,a.value=window.scrollY,C.value=document.documentElement.clientWidth,A.value=document.documentElement.clientHeight):c(t)&&(i.value=t.scrollLeft,a.value=t.scrollTop,C.value=t.clientWidth,A.value=t.clientHeight);let r=T(S.value?Math.abs(i.value):i.value,X.x,P.value),o=T(a.value,X.y,F.value);Math.abs(r-le)>.5&&(oe.value=r>le?`end`:`start`,le=r),Math.abs(o-ue)>.5&&(se.value=o>ue?`end`:`start`,ue=o),p.value=r,m.value=o,L.value||(I.value=null),g.value||=!0,n.forEach(t=>t.onScroll?.($e,e)),clearTimeout(re),re=setTimeout(()=>{g.value=!1,n.forEach(e=>e.onScrollEnd?.($e)),R===void 0&&(L.value=!1)},150)},it=e=>{ve(e,Ve,He,Z.value,Q.value,(e,t)=>{!I.value&&!L.value&&Je(e,t)})},at=(e,t,n,r)=>{it([{index:e,inlineSize:t,blockSize:n,element:r}])};function ot(){if(I.value&&!b.value){let{rowIndex:e,colIndex:t,options:n}=I.value;if(u(n)&&n.behavior===`smooth`&&(g.value||L.value))return;let i=r.value.container||window,a=typeof window<`u`&&i===window?window.scrollX:i.scrollLeft,o=typeof window<`u`&&i===window?window.scrollY:i.scrollTop,s=S.value?Math.abs(a):a,c=o,l=T(s,0,P.value),d=T(c,0,F.value),{targetX:f,targetY:p}=D({rowIndex:e,colIndex:t,options:n,direction:z.value,viewportWidth:C.value,viewportHeight:A.value,totalWidth:Ne.value,totalHeight:Pe.value,gap:r.value.gap||0,columnGap:r.value.columnGap||0,fixedSize:B.value,fixedWidth:V.value,relativeScrollX:l,relativeScrollY:d,getItemSizeY:e=>U.get(e),getItemSizeX:e=>H.get(e),getItemQueryY:e=>U.query(e),getItemQueryX:e=>H.query(e),getColumnSize:e=>W.get(e),getColumnQuery:e=>W.query(e),scaleX:P.value,scaleY:F.value,hostOffsetX:X.x,hostOffsetY:X.y,stickyIndices:r.value.stickyIndices||[],stickyStartX:q.value,stickyStartY:J.value,stickyEndX:we.value,stickyEndY:Te.value,flowPaddingStartX:Ee.value,flowPaddingStartY:Y.value,paddingStartX:be.value,paddingStartY:Se.value,paddingEndX:xe.value,paddingEndY:Ce.value}),m=2*P.value,h=2*F.value,_=t==null||Math.abs(l-f)<m,v=e==null||Math.abs(d-p)<h;if(_&&v){let n=t==null||t===void 0||G.value[t]===1,r=e==null||e===void 0||me.value[e]===1;n&&r&&!g.value&&!L.value&&(I.value=null)}else Ye(e,t,u(n)?{...n,isCorrection:!0}:{align:n,isCorrection:!0})}}(0,t.watch)([K,C,A],ot),(0,t.watch)(g,e=>{e||ot()});let st=()=>{if(typeof window>`u`)return;let e=r.value.container||window,t=t=>{let n=t.getBoundingClientRect();if(e===window)return{x:S.value?document.documentElement.clientWidth-n.right-window.scrollX:n.left+window.scrollX,y:n.top+window.scrollY};if(e===t)return{x:0,y:0};if(s(e)){let t=e.getBoundingClientRect();return{x:S.value?t.right-n.right-e.scrollLeft:n.left-t.left+e.scrollLeft,y:n.top-t.top+e.scrollTop}}return{x:0,y:0}};if(r.value.hostElement){let e=t(r.value.hostElement);(Math.abs(j.x-e.x)>.1||Math.abs(j.y-e.y)>.1)&&(j.x=e.x,j.y=e.y)}if(r.value.hostRef){let e=t(r.value.hostRef);(Math.abs(N.x-e.x)>.1||Math.abs(N.y-e.y)>.1)&&(N.x=e.x,N.y=e.y)}},ct=e=>{if(typeof window>`u`)return;let t=e||window,n=t===window||s(t)&&t===document.documentElement?document:t;n.addEventListener(`scroll`,rt,{passive:!0}),qe();let r=null;s(t)&&(r=new MutationObserver(()=>qe()),r.observe(t,{attributes:!0,attributeFilter:[`dir`,`style`]}));let o=setInterval(qe,1e3);if(t===window){C.value=document.documentElement.clientWidth,A.value=document.documentElement.clientHeight,i.value=window.scrollX,a.value=window.scrollY;let e=()=>{qe(),C.value=document.documentElement.clientWidth,A.value=document.documentElement.clientHeight,st()};return window.addEventListener(`resize`,e),()=>{n.removeEventListener(`scroll`,rt),window.removeEventListener(`resize`,e),r?.disconnect(),clearInterval(o)}}else{C.value=t.clientWidth,A.value=t.clientHeight,i.value=t.scrollLeft,a.value=t.scrollTop;let e=new ResizeObserver(()=>{qe(),C.value=t.clientWidth,A.value=t.clientHeight,st()});return e.observe(t),()=>{n.removeEventListener(`scroll`,rt),e.disconnect(),r?.disconnect(),clearInterval(o)}}},lt;return(0,t.getCurrentInstance)()&&((0,t.onMounted)(()=>{x.value=!0,qe(),(0,t.watch)(()=>r.value.container,e=>{lt?.(),lt=ct(e||null)},{immediate:!0}),st(),(0,t.nextTick)(()=>{if(st(),r.value.ssrRange||r.value.initialScrollIndex!==void 0){let e=r.value.initialScrollIndex===void 0?r.value.ssrRange?.start:r.value.initialScrollIndex,n=r.value.initialScrollAlign||`start`;e!=null&&Ye(e,r.value.ssrRange?.colStart,{align:n,behavior:`auto`}),_.value=!0,b.value=!0,(0,t.nextTick)(()=>{b.value=!1})}else _.value=!0})}),(0,t.onUnmounted)(()=>{lt?.()})),(0,t.watch)([()=>r.value.items,()=>r.value.items.length,()=>r.value.direction,()=>r.value.columnCount,()=>r.value.columnWidth,()=>r.value.itemSize,()=>r.value.gap,()=>r.value.columnGap,()=>r.value.defaultItemSize,()=>r.value.defaultColumnWidth],()=>_e(),{immediate:!0}),(0,t.watch)(()=>[r.value.container,r.value.hostElement],()=>{st()}),(0,t.watch)(S,(e,t)=>{if(t===void 0||e===t||!x.value)return;if(z.value===`vertical`){st();return}let n=T(t?Math.abs(i.value):i.value,j.x,P.value);st(),Xe(n,null,{behavior:`auto`})},{flush:`sync`}),(0,t.watch)([P,F],()=>{!x.value||g.value||L.value||Xe(p.value,m.value,{behavior:`auto`})}),(0,t.watch)([()=>r.value.items.length,()=>r.value.columnCount],([e,n],[r,i])=>{(0,t.nextTick)(()=>{let t=Math.max(0,Fe.value-C.value),a=Math.max(0,Ie.value-A.value);p.value>t||m.value>a?Xe(Math.min(p.value,t),Math.min(m.value,a),{behavior:`auto`}):(e!==r&&F.value!==1||n!==i&&P.value!==1)&&Xe(p.value,m.value,{behavior:`auto`}),st()})}),{renderedItems:tt,totalWidth:Fe,totalHeight:Ie,renderedWidth:Le,renderedHeight:Re,scrollDetails:nt,getRowHeight:We,getColumnWidth:Ue,getRowOffset:e=>Y.value+J.value+Se.value+y(e,B.value,r.value.gap||0,e=>U.query(e)),getColumnOffset:e=>{let t=Ee.value+q.value+be.value;return z.value===`both`?t+y(e,V.value,r.value.columnGap||0,e=>W.query(e)):t+y(e,B.value,r.value.columnGap||0,e=>H.query(e))},getItemOffset:Ge,getItemSize:Ke,scrollToIndex:Ye,scrollToOffset:Xe,stopProgrammaticScroll:ce,handleScrollCorrection:Je,updateItemSize:at,updateItemSizes:it,updateHostOffset:st,updateDirection:qe,columnRange:Qe,refresh:()=>ye(),isHydrated:_,isWindowContainer:Me,isRtl:S,scaleX:P,scaleY:F,componentOffset:X,renderedVirtualWidth:ze,renderedVirtualHeight:Be,getRowIndexAt:Ve,getColIndexAt:He}}function se(e){let n=(0,t.computed)(()=>(0,t.toValue)(e)),r=(0,t.computed)(()=>n.value.axis===`horizontal`),i=(0,t.computed)(()=>n.value.totalSize<=0?0:Math.min(1,n.value.viewportSize/n.value.totalSize)),a=(0,t.computed)(()=>{let e=n.value.totalSize-n.value.viewportSize;return e<=0?0:Math.max(0,Math.min(1,n.value.position/e))}),o=(0,t.computed)(()=>{let e=n.value.viewportSize>0?32/n.value.viewportSize:.1;return Math.max(Math.min(e,.1),i.value)*100}),s=(0,t.computed)(()=>a.value*(100-o.value)),c=(0,t.computed)(()=>r.value?{inlineSize:`${o.value}%`,insetInlineStart:`${s.value}%`}:{blockSize:`${o.value}%`,insetBlockStart:`${s.value}%`}),l=(0,t.computed)(()=>{let e=n.value.viewportSize,t=`var(--vs-scrollbar-has-cross-gap, var(--vsi-scrollbar-has-cross-gap, 0)) * var(--vs-scrollbar-cross-gap, var(--vsi-scrollbar-size, 8px))`;return r.value?{inlineSize:`calc(${Math.max(0,e-4)}px - ${t})`}:{blockSize:`calc(${Math.max(0,e-4)}px - ${t})`}}),u=(0,t.ref)(!1),d=0,f=0;function p(e){let t=e.currentTarget;if(e.target!==t)return;let i=t.getBoundingClientRect(),a=r.value?i.width:i.height,s=0;s=r.value?n.value.isRtl?i.right-e.clientX:e.clientX-i.left:e.clientY-i.top;let c=o.value/100*a,l=(s-c/2)/(a-c),u=n.value.totalSize-n.value.viewportSize,d=l*u;d>u-1&&(d=u),n.value.scrollToOffset(Math.max(0,Math.min(u,d)))}function m(e){u.value=!0,d=r.value?n.value.isRtl?-e.clientX:e.clientX:e.clientY,f=n.value.position,e.currentTarget.setPointerCapture(e.pointerId),e.preventDefault(),e.stopPropagation()}function h(e){if(!u.value)return;let t=e.currentTarget.parentElement;if(!t)return;let i=(r.value?n.value.isRtl?-e.clientX:e.clientX:e.clientY)-d,a=t.getBoundingClientRect(),s=r.value?a.width:a.height,c=s-o.value/100*s;if(c<=0)return;let l=n.value.totalSize-n.value.viewportSize,p=f+i/c*l;p>l-1&&(p=l),n.value.scrollToOffset(Math.max(0,Math.min(l,p)))}function g(e){u.value&&(u.value=!1,e.currentTarget.releasePointerCapture(e.pointerId))}return(0,t.getCurrentInstance)()&&(0,t.onUnmounted)(()=>{u.value=!1}),{viewportPercent:i,positionPercent:a,thumbSizePercent:o,thumbPositionPercent:s,trackStyle:l,thumbStyle:c,trackProps:(0,t.computed)(()=>({class:[`virtual-scrollbar-track`,`virtual-scrollbar-track--${r.value?`horizontal`:`vertical`}`],style:l.value,role:`scrollbar`,"aria-label":n.value.ariaLabel,"aria-orientation":n.value.axis,"aria-valuenow":Math.round(n.value.position),"aria-valuemin":0,"aria-valuemax":Math.round(n.value.totalSize-n.value.viewportSize),"aria-controls":n.value.containerId,tabindex:-1,onMousedown:p})),thumbProps:(0,t.computed)(()=>({class:[`virtual-scrollbar-thumb`,`virtual-scrollbar-thumb--${r.value?`horizontal`:`vertical`}`,{"virtual-scrollbar-thumb--active":u.value}],style:c.value,onPointerdown:m,onPointermove:h,onPointerup:g,onPointercancel:g})),isDragging:u}}function I(){let e=(0,t.ref)(!1);return{name:`rtl`,onInit(t){let n=()=>{if(typeof window>`u`)return;let n=t.props.value.container||t.props.value.hostRef||window,r=s(n)?n:document.documentElement,i=window.getComputedStyle(r).direction===`rtl`;e.value!==i&&(e.value=i,t.internalState.isRtl.value=i)},r=t.methods.updateDirection;t.methods.updateDirection=()=>{n(),r()},n()}}}function L(){return{name:`snapping`,onScrollEnd(e){if(!e.props.value.snap||e.internalState.isProgrammaticScroll.value)return;let t=e.props.value.snap,n=t===!0?`auto`:t,r=e.scrollDetails.value,i=e.props.value.items.length,a=e.props.value.direction||`vertical`,o=r.currentIndex,s=r.currentColIndex,c=`start`,l=`start`,u=!1;if(a!==`horizontal`){let t=P(n,e.internalState.scrollDirectionY.value,r.currentIndex,r.currentEndIndex,e.internalState.relativeScrollY.value,e.internalState.viewportHeight.value,i,t=>e.methods.getItemSize(t),t=>e.methods.getItemOffset(t),e.methods.getRowIndexAt);t&&(o=t.index,c=t.align,u=!0)}if(a!==`vertical`){let t=a===`both`?e.props.value.columnCount||0:i,o=P(n,e.internalState.scrollDirectionX.value,r.currentColIndex,r.currentEndColIndex,e.internalState.relativeScrollX.value,e.internalState.viewportWidth.value,t,t=>e.methods.getItemSize(t),t=>e.methods.getItemOffset(t),e.methods.getColIndexAt);o&&(s=o.index,l=o.align,u=!0)}u&&e.methods.scrollToIndex(o,s,{align:{x:l,y:c},behavior:`smooth`})}}}function R(){let e=e=>(0,t.computed)(()=>[...e.props.value.stickyIndices||[]].sort((e,t)=>e-t));return{name:`sticky`,transformRenderedItems(t,n){let r=e(n).value;if(r.length===0)return t;let{start:i}=n.range.value,a=n.currentIndex.value,o=h(r,a),s=[...t];return o!==void 0&&o<i&&t.some(e=>e.index===o),s}}}function ce(e){return{name:`infinite-loading`,onInit(n){(0,t.watch)(n.scrollDetails,t=>{if(n.props.value.loading||!t||!t.totalSize||t.totalSize.width===0&&t.totalSize.height===0)return;let r=n.props.value.direction||`vertical`,i=n.props.value.loadDistance??200;r!==`horizontal`&&t.totalSize.height-(t.scrollOffset.y+t.viewportSize.height)<=i&&e.onLoad(`vertical`),r!==`vertical`&&t.totalSize.width-(t.scrollOffset.x+t.viewportSize.width)<=i&&e.onLoad(`horizontal`)})}}}function le(){let e=[];return{name:`prepend-restoration`,onInit(n){e=[...n.props.value.items],(0,t.watch)(()=>n.props.value.items,t=>{if(!n.props.value.restoreScrollOnPrepend){e=[...t];return}let r=j(e,t);if(r>0){let e=n.props.value.direction||`vertical`,i=(e===`horizontal`?n.props.value.columnGap:n.props.value.gap)||0,a=0;for(let e=0;e<r;e++)a+=n.methods.getItemBaseSize(t[e],e)+i;a>0&&n.methods.handleScrollCorrection(e===`horizontal`?a:0,e===`horizontal`?0:a)}e=[...t]},{deep:!1})}}}function ue(){return{name:`coordinate-scaling`,onInit(e){(0,t.watchEffect)(()=>{let t=e.props.value.container,n=e.totalSize.value,r=e.internalState.viewportWidth.value,i=e.internalState.viewportHeight.value,a=typeof window<`u`&&t===window||t===void 0;n&&r&&i&&(e.internalState.scaleX.value=C(a,n.width,r),e.internalState.scaleY.value=C(a,n.height,i))})}}}var z=(0,t.defineComponent)({__name:`VirtualScrollbar`,props:{axis:{default:`vertical`},totalSize:{},position:{},viewportSize:{},scrollToOffset:{},containerId:{},isRtl:{type:Boolean,default:!1},ariaLabel:{}},emits:[`scrollToOffset`],setup(e,{emit:n}){let r=e,i=n,{trackProps:a,thumbProps:o}=se(()=>({axis:r.axis,totalSize:r.totalSize,position:r.position,viewportSize:r.viewportSize,containerId:r.containerId,isRtl:r.isRtl,scrollToOffset:e=>{r.scrollToOffset?.(e),i(`scrollToOffset`,e)}}));return(e,n)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,(0,t.normalizeProps)((0,t.guardReactiveProps)((0,t.unref)(a))),[(0,t.createElementVNode)(`div`,(0,t.normalizeProps)((0,t.guardReactiveProps)((0,t.unref)(o))),null,16)],16))}}),de={key:0,class:`virtual-scroll-scrollbar-container`,"aria-hidden":`true`},fe={key:0,class:`virtual-scroll-debug-info`},B=.95,V=.1,pe=((e,t)=>{let n=e.__vccOpts||e;for(let[e,r]of t)n[e]=r;return n})((0,t.defineComponent)({__name:`VirtualScroll`,props:{containerTag:{default:`div`},wrapperTag:{default:`div`},itemTag:{default:`div`},stickyHeader:{type:Boolean,default:!1},stickyFooter:{type:Boolean,default:!1},virtualScrollbar:{type:Boolean,default:!1},items:{},itemSize:{},direction:{default:`vertical`},bufferBefore:{default:5},bufferAfter:{default:5},container:{},ssrRange:{},columnCount:{default:0},columnWidth:{},scrollPaddingStart:{default:0},scrollPaddingEnd:{default:0},gap:{default:0},columnGap:{default:0},stickyIndices:{default:()=>[]},loadDistance:{default:200},loading:{type:Boolean,default:!1},restoreScrollOnPrepend:{type:Boolean,default:!1},initialScrollIndex:{},initialScrollAlign:{},defaultItemSize:{},defaultColumnWidth:{},debug:{type:Boolean,default:!1},role:{},ariaLabel:{},ariaLabelledby:{},itemRole:{default:void 0},snap:{type:[Boolean,String]}},emits:[`scroll`,`load`,`visibleRangeChange`],setup(e,{expose:n,emit:r}){let i=e,a=r,s=(0,t.useSlots)(),c=(0,t.ref)(null),l=(0,t.ref)(null),u=(0,t.ref)(null),p=(0,t.ref)(null),m=new Map,h=(0,t.useId)(),g=(0,t.computed)(()=>`vs-container-${h}`),_=[I(),L(),R(),ce({onLoad:e=>a(`load`,e)}),le(),ue()],v=(0,t.ref)(0),y=(0,t.ref)(0),b=(0,t.computed)(()=>i.container===void 0?c.value:i.container),x=(0,t.computed)(()=>{let e=b.value;return e===c.value||o(e)}),S=(0,t.computed)(()=>(i.items.length,{items:i.items,itemSize:i.itemSize,direction:i.direction,bufferBefore:i.bufferBefore,bufferAfter:i.bufferAfter,container:b.value,hostElement:l.value,hostRef:c.value,ssrRange:i.ssrRange,columnCount:i.columnCount,columnWidth:i.columnWidth,scrollPaddingStart:{x:d(i.scrollPaddingStart,i.direction),y:f(i.scrollPaddingStart,i.direction)},scrollPaddingEnd:{x:d(i.scrollPaddingEnd,i.direction),y:f(i.scrollPaddingEnd,i.direction)},flowPaddingStart:{x:0,y:i.stickyHeader?0:v.value},flowPaddingEnd:{x:0,y:i.stickyFooter?0:y.value},stickyStart:{x:0,y:i.stickyHeader&&x.value?v.value:0},stickyEnd:{x:0,y:i.stickyFooter&&x.value?y.value:0},gap:i.gap,columnGap:i.columnGap,stickyIndices:i.stickyIndices,loadDistance:i.loadDistance,loading:i.loading,restoreScrollOnPrepend:i.restoreScrollOnPrepend,initialScrollIndex:i.initialScrollIndex,initialScrollAlign:i.initialScrollAlign,defaultItemSize:i.defaultItemSize,defaultColumnWidth:i.defaultColumnWidth,debug:i.debug,snap:i.snap})),{isHydrated:C,isRtl:w,columnRange:E,renderedItems:D,scrollDetails:O,renderedHeight:k,renderedWidth:ee,getColumnWidth:te,getRowHeight:ne,scrollToIndex:j,scrollToOffset:M,updateHostOffset:P,updateItemSizes:ie,updateDirection:F,getItemOffset:ae,getRowOffset:pe,getColumnOffset:H,getItemSize:U,refresh:W,stopProgrammaticScroll:G,scaleX:me,scaleY:K,isWindowContainer:he,componentOffset:ge,renderedVirtualWidth:_e,renderedVirtualHeight:ve,getRowIndexAt:ye,getColIndexAt:be}=oe(S,_),xe=(0,t.computed)(()=>me.value!==1||K.value!==1),Se=(0,t.computed)(()=>he.value?!1:i.virtualScrollbar===!0||me.value!==1||K.value!==1);function Ce(e){let{displayViewportSize:t}=O.value;e>=k.value-t.height-.5?M(null,1/0):M(null,T(e,ge.y,K.value))}function q(e){let{displayViewportSize:t}=O.value;e>=ee.value-t.width-.5?M(1/0,null):M(T(e,ge.x,me.value),null)}let we=se((0,t.computed)(()=>({axis:`vertical`,totalSize:k.value,position:O.value.displayScrollOffset.y,viewportSize:O.value.displayViewportSize.height,scrollToOffset:Ce,containerId:g.value,isRtl:w.value}))),J=se((0,t.computed)(()=>({axis:`horizontal`,totalSize:ee.value,position:O.value.displayScrollOffset.x,viewportSize:O.value.displayViewportSize.width,scrollToOffset:q,containerId:g.value,isRtl:w.value}))),Te=(0,t.computed)(()=>i.direction===`both`?{...E.value,padStart:0,padEnd:0}:E.value);function Ee(){W(),F(),(0,t.nextTick)(()=>{let e=[];for(let[t,n]of m.entries())n&&e.push({index:t,inlineSize:n.offsetWidth,blockSize:n.offsetHeight,element:n});e.length>0&&ie(e)})}(0,t.watch)(O,(e,t)=>{!C.value||!e||(a(`scroll`,e),(!t||!t.range||!t.columnRange||e.range.start!==t.range.start||e.range.end!==t.range.end||e.columnRange.start!==t.columnRange.start||e.columnRange.end!==t.columnRange.end)&&a(`visibleRangeChange`,{start:e.range.start,end:e.range.end,colStart:e.columnRange.start,colEnd:e.columnRange.end}))}),(0,t.watch)(C,e=>{e&&O.value?.range&&O.value?.columnRange&&a(`visibleRangeChange`,{start:O.value.range.start,end:O.value.range.end,colStart:O.value.columnRange.start,colEnd:O.value.columnRange.end})},{once:!0});let De=typeof window>`u`?null:new ResizeObserver(P),Y=typeof window>`u`?null:new ResizeObserver(e=>{let t=[];for(let n of e){let e=n.target,r=Number(e.dataset.index),i=e.dataset.colIndex,a=n.contentRect.width,o=n.contentRect.height;n.borderBoxSize&&n.borderBoxSize.length>0?(a=n.borderBoxSize[0].inlineSize,o=n.borderBoxSize[0].blockSize):(a=e.offsetWidth,o=e.offsetHeight),i===void 0?Number.isNaN(r)||t.push({index:r,inlineSize:a,blockSize:o,element:e}):t.push({index:-1,inlineSize:a,blockSize:o,element:e})}t.length>0&&ie(t)}),Oe=typeof window>`u`?null:new ResizeObserver(()=>{v.value=u.value?.offsetHeight||0,y.value=p.value?.offsetHeight||0,P()});function ke(e,n){(0,t.watch)(e,(e,t)=>{t&&Oe?.unobserve(t),e?Oe?.observe(e):n.value=0},{immediate:!0})}ke(u,v),ke(p,y),(0,t.onMounted)(()=>{c.value&&De?.observe(c.value);for(let e of m.values())Ae(e,!0)}),(0,t.watch)([c,l],([e],[t])=>{t&&De?.unobserve(t),e&&De?.observe(e)}),(0,t.watch)([c,xe],([e,t],[n,r])=>{let i=e!==n||t!==r;n&&i&&n.removeEventListener(`wheel`,Ve),e&&i&&e.addEventListener(`wheel`,Ve,{passive:!t})},{immediate:!0});function Ae(e,t){let n=t?`observe`:`unobserve`;Y?.[n](e),i.direction===`both`&&e.children.length>0&&e.querySelectorAll(`[data-col-index]`).forEach(e=>Y?.[n](e))}function je(e,t){if(e){let n=e;m.set(t,n),Ae(n,!0)}else{let e=m.get(t);e&&(Ae(e,!1),m.delete(t))}}let Me=(0,t.ref)(!1),Ne={x:0,y:0},Pe={x:0,y:0},Fe={x:0,y:0},Ie=0,X={x:0,y:0},Le=null;function Re(){let e=()=>{let{nextVelocity:t,delta:n}=N(X,B);X.x=t.x,X.y=t.y;let{x:r,y:i}=O.value.scrollOffset;M(r+n.x,i+n.y,{behavior:`auto`}),Math.abs(X.x)>V||Math.abs(X.y)>V?Le=requestAnimationFrame(e):ze()};Le=requestAnimationFrame(e)}function ze(){Le!==null&&(cancelAnimationFrame(Le),Le=null),X={x:0,y:0}}function Be(e){G(),ze(),xe.value&&(e.pointerType===`mouse`&&e.button!==0||(Me.value=!0,Ne={x:e.clientX,y:e.clientY},Fe={x:e.clientX,y:e.clientY},Ie=performance.now(),Pe={x:O.value.scrollOffset.x,y:O.value.scrollOffset.y},e.currentTarget.setPointerCapture(e.pointerId)))}function Z(e){if(!Me.value)return;let t=performance.now(),n=t-Ie;if(n>0){let t=re(Fe,{x:e.clientX,y:e.clientY},n);X.x=X.x*.2+t.x*.8,X.y=X.y*.2+t.y*.8}Fe={x:e.clientX,y:e.clientY},Ie=t;let r=Ne.x-e.clientX,i=Ne.y-e.clientY;requestAnimationFrame(()=>{M(Pe.x+r,Pe.y+i,{behavior:`auto`})})}function Q(e){Me.value&&(Me.value=!1,e.currentTarget.releasePointerCapture(e.pointerId),(Math.abs(X.x)>V||Math.abs(X.y)>V)&&(Math.abs(X.x)>4*Math.abs(X.y)?X.y=0:Math.abs(X.y)>4*Math.abs(X.x)&&(X.x=0),Re()))}function Ve(e){let{scrollOffset:t}=O.value;if(G(),xe.value){e.preventDefault();let{deltaX:n,deltaY:r}=e;e.shiftKey&&n===0&&(n=r,r=0),M(t.x+n,t.y+r,{behavior:`auto`})}}function He(e){let{viewportSize:t,scrollOffset:n}=O.value,r=i.direction!==`vertical`,a=i.direction!==`horizontal`,o=S.value,s=o.stickyStart,c=o.stickyEnd,l=o.scrollPaddingStart,u=o.scrollPaddingEnd,d=i.snap===!0?`auto`:i.snap,f=d&&d!==`auto`?d:null,p=e=>{let r=(e?n.x:n.y)+(e?t.width:t.height)/2;return e?be(r):ye(r)},{currentIndex:m,currentEndIndex:h,currentColIndex:g,currentEndColIndex:_}=O.value,v=(e,t)=>{let n=!e,r=e?m:g,a=e?h:_,o=Math.max(1,a-r),s=e?i.items.length-1:i.columnCount?i.columnCount-1:i.items.length-1;return t?f===`center`?Math.min(s,p(n)+o):f===`end`?Math.min(s,a+o):a:f===`center`?Math.max(0,p(n)-o):f===`start`?Math.max(0,r-o):r},y=(e,r)=>{let a=!e;if(f===`center`){let t=p(a),n=a&&i.columnCount?i.columnCount-1:i.items.length-1,o=r?Math.min(n,t+1):Math.max(0,t-1);j(e?o:null,a?o:null,{align:`center`});return}if(e)if(r)if(f===`start`)j(Math.min(i.items.length-1,m+1),null,{align:`start`});else{let e=f||`end`,r=n.y+t.height-(c.y+u.y);pe(h)+ne(h)>r+1?j(h,null,{align:e}):h<i.items.length-1&&j(h+1,null,{align:e})}else if(f===`end`)j(Math.max(0,h-1),null,{align:`end`});else{let e=f||`start`,t=n.y+s.y+l.y;pe(m)<t-1?j(m,null,{align:e}):m>0&&j(m-1,null,{align:e})}else{let e=i.columnCount?i.columnCount-1:i.items.length-1;if(w.value?!r:r)if(f===`start`)j(null,Math.min(e,g+1),{align:`start`});else{let r=f||`end`,a=n.x+t.width-(c.x+u.x);(i.columnCount?H(_)+te(_):ae(_)+U(_))>a+1?j(null,_,{align:r}):_<e&&j(null,_+1,{align:r})}else if(f===`end`)j(null,Math.max(0,_-1),{align:`end`});else{let e=f||`start`,t=n.x+s.x+l.x;(i.columnCount?H(g):ae(g))<t-1?j(null,g,{align:e}):g>0&&j(null,g-1,{align:e})}}};switch(e.key){case`Home`:e.preventDefault(),G(),j(0,0,{behavior:Math.max(n.x,n.y)>10*(i.direction===`horizontal`?t.width:t.height)?`auto`:`smooth`,align:`start`});break;case`End`:{e.preventDefault(),G();let r=i.items.length-1,a=(i.columnCount||0)>0?i.columnCount-1:0,{totalSize:o}=O.value,s=Math.max(o.width-n.x-t.width,o.height-n.y-t.height)>10*(i.direction===`horizontal`?t.width:t.height)?`auto`:`smooth`;i.direction===`both`?j(r,a,{behavior:s,align:`end`}):j(i.direction===`vertical`?r:0,i.direction===`horizontal`?r:0,{behavior:s,align:`end`});break}case`ArrowUp`:e.preventDefault(),G(),a&&y(!0,!1);break;case`ArrowDown`:e.preventDefault(),G(),a&&y(!0,!0);break;case`ArrowLeft`:e.preventDefault(),G(),r&&y(!1,!1);break;case`ArrowRight`:e.preventDefault(),G(),r&&y(!1,!0);break;case`PageUp`:e.preventDefault(),G(),i.direction===`horizontal`?j(null,v(!1,!1),{align:f||`end`}):j(v(!0,!1),null,{align:f||`end`});break;case`PageDown`:e.preventDefault(),G(),i.direction===`horizontal`?j(null,v(!1,!0),{align:f||`start`}):j(v(!0,!0),null,{align:f||`start`});break}}(0,t.onUnmounted)(()=>{De?.disconnect(),Y?.disconnect(),Oe?.disconnect()});let Ue=(0,t.computed)(()=>{let e={...i.direction===`vertical`?{}:{whiteSpace:`nowrap`}};return(Se.value||!he.value)&&(e.overflow=`auto`),xe.value&&(e.touchAction=`none`),he.value?e:i.containerTag===`table`?{...e,display:`block`,minInlineSize:i.direction===`vertical`?`100%`:`auto`}:e});function We(e,t,n,r,i,a){return t<=r?null:{axis:e,positionPercent:a.positionPercent.value,viewportPercent:a.viewportPercent.value,thumbSizePercent:a.thumbSizePercent.value,thumbPositionPercent:a.thumbPositionPercent.value,trackProps:a.trackProps.value,thumbProps:a.thumbProps.value,scrollbarProps:{axis:e,totalSize:t,position:n,viewportSize:r,scrollToOffset:i,containerId:g.value,isRtl:w.value,ariaLabel:`${e===`vertical`?`Vertical`:`Horizontal`} scroll`},isDragging:a.isDragging.value}}let Ge=(0,t.computed)(()=>{if(i.direction===`horizontal`)return null;let{displayViewportSize:e,displayScrollOffset:t}=O.value;return We(`vertical`,k.value,t.y,e.height,Ce,we)}),Ke=(0,t.computed)(()=>{if(i.direction===`vertical`)return null;let{displayViewportSize:e,displayScrollOffset:t}=O.value;return We(`horizontal`,ee.value,t.x,e.width,q,J)}),qe=(0,t.computed)(()=>{let e=i.direction===`horizontal`,t=i.direction===`vertical`,n=i.direction===`both`,r={inlineSize:t?`100%`:`${_e.value}px`,blockSize:e?`100%`:`${ve.value}px`};return C.value||(r.display=`flex`,r.flexDirection=e?`row`:`column`,(e||n)&&i.columnGap&&(r.columnGap=`${i.columnGap}px`),(t||n)&&i.gap&&(r.rowGap=`${i.gap}px`)),r}),Je=(0,t.computed)(()=>{let e=i.direction===`horizontal`;return{display:e?`inline-block`:`block`,...e?{blockSize:`100%`,verticalAlign:`top`}:{inlineSize:`100%`}}}),Ye=(0,t.computed)(()=>({inlineSize:i.direction===`vertical`?`1px`:`${_e.value}px`,blockSize:i.direction===`horizontal`?`1px`:`${ve.value}px`}));function Xe(e){let t=A({containerTag:i.containerTag||`div`,direction:i.direction,isHydrated:C.value,item:e,itemSize:i.itemSize,paddingStartX:S.value.scrollPaddingStart.x,paddingStartY:S.value.scrollPaddingStart.y,isRtl:w.value});return!C.value&&i.direction===`both`&&(t.display=`flex`,i.columnGap&&(t.columnGap=`${i.columnGap}px`)),t}let Ze=(0,t.computed)(()=>i.debug),$=(0,t.computed)(()=>i.containerTag===`table`),Qe=(0,t.computed)(()=>$.value?`thead`:`div`),$e=(0,t.computed)(()=>$.value?`tfoot`:`div`),et=(0,t.computed)(()=>i.role?i.role:$.value?null:i.direction===`both`?`grid`:`list`),tt=(0,t.computed)(()=>et.value===`grid`||$.value),nt=(0,t.computed)(()=>$.value?null:i.ariaLabel||i.ariaLabelledby?`region`:`none`),rt=(0,t.computed)(()=>$.value?null:et.value),it=(0,t.computed)(()=>{if(tt.value)return`row`;let e=et.value;return e===`tree`?`treeitem`:e===`listbox`?`option`:e===`menu`?`menuitem`:`listitem`}),at=(0,t.computed)(()=>i.itemRole==null?it.value:i.itemRole),ot=(0,t.computed)(()=>i.role===`grid`||!i.role&&i.direction===`both`?`gridcell`:$.value?`cell`:null),st=(0,t.computed)(()=>{let e=at.value;return e==null||e!==`none`&&e!==`presentation`}),ct=(0,t.computed)(()=>({"aria-label":i.ariaLabel,"aria-labelledby":i.ariaLabelledby,"aria-busy":i.loading?`true`:void 0})),lt=(0,t.computed)(()=>{let e={},t=et.value;return t&&[`grid`,`tree`,`listbox`,`menu`,`tablist`].includes(t)&&(e[`aria-orientation`]=i.direction===`both`?void 0:i.direction),tt.value&&(e[`aria-rowcount`]=i.items.length,i.columnCount>0&&(e[`aria-colcount`]=i.columnCount)),e});function ut(e){let t={};tt.value?t[`aria-rowindex`]=e+1:(t[`aria-setsize`]=i.items.length,t[`aria-posinset`]=e+1);let n=at.value;return n!==null&&(t.role=n===`none`||n===`presentation`?it.value:n),t}function dt(e){let t=ot.value;if(!t)return{};let n={role:t};return tt.value&&(n[`aria-colindex`]=e+1),n}return n({...(0,t.toRefs)(i),scrollDetails:O,columnRange:E,getColumnWidth:te,getRowHeight:ne,getCellAriaProps:dt,getItemAriaProps:ut,getRowOffset:pe,getColumnOffset:H,getItemOffset:ae,getItemSize:U,isTable:$,itemTag:(0,t.computed)(()=>i.itemTag||`div`),getRowIndexAt:ye,getColIndexAt:be,scrollToIndex:j,scrollToOffset:M,refresh:Ee,stopProgrammaticScroll:()=>{G(),ze()},updateDirection:F,isRtl:w,isHydrated:C,scaleX:me,scaleY:K,renderedWidth:ee,renderedHeight:k,componentOffset:ge,scrollbarPropsVertical:Ge,scrollbarPropsHorizontal:Ke}),(n,r)=>((0,t.openBlock)(),(0,t.createBlock)((0,t.resolveDynamicComponent)(e.containerTag),(0,t.mergeProps)({id:g.value,ref_key:`hostRef`,ref:c,class:[`virtual-scroll-container`,[`virtual-scroll--${e.direction}`,{"virtual-scroll--hydrated":(0,t.unref)(C),"virtual-scroll--window":(0,t.unref)(he),"virtual-scroll--table":$.value,"virtual-scroll--hide-scrollbar":Se.value}]],style:Ue.value,tabindex:`0`,role:$.value?void 0:nt.value},$.value?{...ct.value,...lt.value}:ct.value,{onKeydown:He,onPointerdown:Be,onPointermove:Z,onPointerup:Q,onPointercancel:Q}),{default:(0,t.withCtx)(()=>[Se.value?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,de,[(0,t.createElementVNode)(`div`,{class:`virtual-scroll-scrollbar-viewport`,style:(0,t.normalizeStyle)({inlineSize:`${(0,t.unref)(O).displayViewportSize.width}px`,blockSize:`${(0,t.unref)(O).displayViewportSize.height}px`,"--vsi-scrollbar-has-cross-gap":e.direction===`both`?1:0})},[s.scrollbar&&Ge.value?(0,t.renderSlot)(n.$slots,`scrollbar`,(0,t.normalizeProps)((0,t.mergeProps)({key:0},Ge.value)),void 0,!0):Ge.value?((0,t.openBlock)(),(0,t.createBlock)(z,(0,t.normalizeProps)((0,t.mergeProps)({key:1},Ge.value.scrollbarProps)),null,16)):(0,t.createCommentVNode)(``,!0),s.scrollbar&&Ke.value?(0,t.renderSlot)(n.$slots,`scrollbar`,(0,t.normalizeProps)((0,t.mergeProps)({key:2},Ke.value)),void 0,!0):Ke.value?((0,t.openBlock)(),(0,t.createBlock)(z,(0,t.normalizeProps)((0,t.mergeProps)({key:3},Ke.value.scrollbarProps)),null,16)):(0,t.createCommentVNode)(``,!0)],4)])):(0,t.createCommentVNode)(``,!0),s.header?((0,t.openBlock)(),(0,t.createBlock)((0,t.resolveDynamicComponent)(Qe.value),{key:1,ref_key:`headerRef`,ref:u,class:(0,t.normalizeClass)([`virtual-scroll-header`,{"virtual-scroll--sticky":e.stickyHeader}]),role:$.value?void 0:`none`},{default:(0,t.withCtx)(()=>[(0,t.renderSlot)(n.$slots,`header`,{},void 0,!0)]),_:3},8,[`class`,`role`])):(0,t.createCommentVNode)(``,!0),((0,t.openBlock)(),(0,t.createBlock)((0,t.resolveDynamicComponent)(e.wrapperTag),(0,t.mergeProps)({ref_key:`wrapperRef`,ref:l,class:`virtual-scroll-wrapper`,style:qe.value,role:$.value?void 0:rt.value},$.value?{}:lt.value),{default:(0,t.withCtx)(()=>[$.value?((0,t.openBlock)(),(0,t.createBlock)((0,t.resolveDynamicComponent)(e.itemTag),{key:0,class:`virtual-scroll-spacer`,style:(0,t.normalizeStyle)(Ye.value)},{default:(0,t.withCtx)(()=>[...r[0]||=[(0,t.createElementVNode)(`td`,{style:{padding:`0`,border:`none`,"block-size":`inherit`}},null,-1)]]),_:1},8,[`style`])):(0,t.createCommentVNode)(``,!0),((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)((0,t.unref)(D),r=>((0,t.openBlock)(),(0,t.createBlock)((0,t.resolveDynamicComponent)(e.itemTag),(0,t.mergeProps)({key:r.index,ref_for:!0,ref:e=>je(e,r.index),"data-index":r.index,class:[`virtual-scroll-item`,{"virtual-scroll--sticky":r.isStickyActive,"virtual-scroll--debug":Ze.value}],style:Xe(r)},{ref_for:!0},st.value?ut(r.index):{role:`none`}),{default:(0,t.withCtx)(()=>[(0,t.renderSlot)(n.$slots,`item`,{item:r.item,index:r.index,getItemAriaProps:ut,columnRange:Te.value,getColumnWidth:(0,t.unref)(te),getCellAriaProps:dt,gap:i.gap,columnGap:i.columnGap,isSticky:r.isSticky,isStickyActive:r.isStickyActive,isStickyActiveX:r.isStickyActiveX,isStickyActiveY:r.isStickyActiveY,offset:r.offset},void 0,!0),Ze.value?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,fe,` #`+(0,t.toDisplayString)(r.index)+` (`+(0,t.toDisplayString)(Math.round(r.offset.x))+`, `+(0,t.toDisplayString)(Math.round(r.offset.y))+`) `,1)):(0,t.createCommentVNode)(``,!0)]),_:2},1040,[`data-index`,`class`,`style`]))),128))]),_:3},16,[`style`,`role`])),e.loading&&s.loading?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:2,class:`virtual-scroll-loading`,style:(0,t.normalizeStyle)(Je.value),"aria-live":`polite`,"aria-atomic":`true`},[(0,t.renderSlot)(n.$slots,`loading`,{},void 0,!0)],4)):(0,t.createCommentVNode)(``,!0),s.footer?((0,t.openBlock)(),(0,t.createBlock)((0,t.resolveDynamicComponent)($e.value),{key:3,ref_key:`footerRef`,ref:p,class:(0,t.normalizeClass)([`virtual-scroll-footer`,{"virtual-scroll--sticky":e.stickyFooter}]),role:$.value?void 0:`none`},{default:(0,t.withCtx)(()=>[(0,t.renderSlot)(n.$slots,`footer`,{},void 0,!0)]),_:3},8,[`class`,`role`])):(0,t.createCommentVNode)(``,!0)]),_:3},16,[`id`,`class`,`style`,`role`]))}}),[[`__scopeId`,`data-v-a75851a5`]]);e.BROWSER_MAX_SIZE=r,e.DEFAULT_BUFFER=5,e.DEFAULT_COLUMN_WIDTH=100,e.DEFAULT_ITEM_SIZE=40,e.EMPTY_SCROLL_DETAILS=n,e.FenwickTree=F,e.VirtualScroll=pe,e.VirtualScrollbar=z,e.calculateAxisSize=_,e.calculateColumnRange=k,e.calculateIndexAt=ie,e.calculateInertiaStep=N,e.calculateInstantaneousVelocity=re,e.calculateItemPosition=te,e.calculateItemStyle=A,e.calculateOffsetAt=y,e.calculatePrependCount=j,e.calculateRange=O,e.calculateRangeSize=v,e.calculateRenderedSize=w,e.calculateSSROffsets=ne,e.calculateScale=C,e.calculateScrollTarget=D,e.calculateStickyItem=ee,e.calculateTotalSize=M,e.displayToVirtual=T,e.findPrevStickyIndex=h,e.getPaddingX=d,e.getPaddingY=f,e.isBody=a,e.isElement=s,e.isItemVisible=S,e.isScrollToIndexOptions=u,e.isScrollableElement=c,e.isWindow=i,e.isWindowLike=o,e.resolveSnap=P,e.scrollTo=l,e.useVirtualScroll=oe,e.useVirtualScrollSizes=ae,e.useVirtualScrollbar=se,e.virtualToDisplay=E});
|
|
1
|
+
(function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require(`vue`)):typeof define==`function`&&define.amd?define([`exports`,`vue`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.VirtualScroll={},e.Vue))})(this,function(e,t){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});let n={items:[],currentIndex:0,currentColIndex:0,currentEndIndex:0,currentEndColIndex:0,scrollOffset:{x:0,y:0},displayScrollOffset:{x:0,y:0},viewportSize:{width:0,height:0},displayViewportSize:{width:0,height:0},totalSize:{width:0,height:0},isScrolling:!1,isProgrammaticScroll:!1,range:{start:0,end:0},columnRange:{start:0,end:0,padStart:0,padEnd:0}},r=1e7;function i(e){return e===null||typeof document<`u`&&e===document.documentElement||typeof window<`u`&&e===window}function a(e){return typeof e==`object`&&!!e&&`tagName`in e&&e.tagName===`BODY`}function o(e){return i(e)||a(e)}function s(e){return e!=null&&`getBoundingClientRect`in e}function c(e){return e!=null&&`scrollLeft`in e}function l(e,t){i(e)?window.scrollTo(t):e!=null&&c(e)&&(typeof e.scrollTo==`function`?e.scrollTo(t):(t.left!==void 0&&(e.scrollLeft=t.left),t.top!==void 0&&(e.scrollTop=t.top)))}function u(e){return typeof e==`object`&&!!e&&(`align`in e||`behavior`in e||`isCorrection`in e||`dryRun`in e)}function d(e,t){return typeof e==`object`&&e?e.x||0:(t===`horizontal`||t===`both`)&&e||0}function f(e,t){return typeof e==`object`&&e?e.y||0:(t===`vertical`||t===`both`)&&e||0}function p({scrollPos:e,containerSize:t,count:n,bufferBefore:r,bufferAfter:i,gap:a,fixedSize:o,findLowerBound:s,query:c}){let l=0,u=n,d=e+t;if(o!==null){let t=o+a;l=Math.floor(e/t),u=Math.ceil(d/t)}else l=s(e),u=s(d),u<n&&c(u)<d&&u++;return{start:Math.max(0,l-r),end:Math.min(n,u+i)}}function m(e,t){let n=0,r=e.length-1,i;for(;n<=r;){let a=n+r>>>1;e[a]>t?(i=e[a],r=a-1):n=a+1}return i}function h(e,t){let n=0,r=e.length-1,i;for(;n<=r;){let a=n+r>>>1;e[a]<t?(i=e[a],n=a+1):r=a-1}return i}function g({align:e,targetPos:t,itemSize:n,scrollPos:r,viewSize:i,stickyOffsetStart:a,stickyOffsetEnd:o}){let s=t-a,c=t-(i-o-n);return e===`start`?{target:s,effectiveAlign:`start`}:e===`center`?{target:t-a-(i-a-o-n)/2,effectiveAlign:`center`}:e===`end`?{target:c,effectiveAlign:`end`}:S(t,n,r,i,a,o)?{target:r,effectiveAlign:`auto`}:n<=i-a-o?t<r+a?{target:s,effectiveAlign:`start`}:{target:c,effectiveAlign:`end`}:Math.abs(s-r)<Math.abs(c-r)?{target:s,effectiveAlign:`start`}:{target:c,effectiveAlign:`end`}}function _(e,t,n,r){return e<=0?0:t===null?Math.max(0,r(e)-n):Math.max(0,e*(t+n)-n)}function v(e,t,n,r,i){let a=t-e;return a<=0?0:n===null?Math.max(0,i(t)-i(e)-r):Math.max(0,a*(n+r)-r)}function y(e,t,n,r){return t===null?r(e):e*(t+n)}function b({index:e,align:t,viewSize:n,scrollPos:r,fixedSize:i,gap:a,query:o,getSize:s,stickyIndices:c,stickyStart:l,stickyEnd:u=0}){let d=l;if(c&&c.length>0){let t=h(c,e);t!==void 0&&(d+=_(1,i,0,()=>s(t)))}let f=i===null?o(e):e*(i+a),p=i===null?s(e)-a:i,{target:m,effectiveAlign:v}=g({align:t,targetPos:f,itemSize:p,scrollPos:r,viewSize:n,stickyOffsetStart:d,stickyOffsetEnd:u});return{target:m,itemSize:p,effectiveAlign:v}}function x(e,t,n,r,i,a,o){if(e<=t)return{isActive:!1,offset:0};let s=o===void 0?m(i,r):o;if(s===void 0)return{isActive:!0,offset:0};let c=a(s);return e>=c?{isActive:!1,offset:0}:{isActive:!0,offset:Math.max(0,Math.min(n,c-e))-n}}function S(e,t,n,r,i=0,a=0){let o=n+i,s=n+r-a;return t<=r-i-a?e>=o-.5&&e+t<=s+.5:e<=o+.5&&e+t>=s-.5}function C(e,t,n){if(e||t<=1e7)return 1;let i=Math.min(t,r),a=t-n,o=i-n;return o>0?a/o:1}function w(e,t){return e?t:Math.min(t,r)}function T(e,t,n){return(e-t)*n}function E(e,t,n){return e/n+t}function D({rowIndex:e,colIndex:t,options:n,direction:i,viewportWidth:a,viewportHeight:o,totalWidth:s,totalHeight:c,gap:l,columnGap:d,fixedSize:f,fixedWidth:p,relativeScrollX:m,relativeScrollY:h,getItemSizeY:g,getItemSizeX:_,getItemQueryY:v,getItemQueryX:y,getColumnSize:x,getColumnQuery:S,scaleX:C,scaleY:w,hostOffsetX:T,hostOffsetY:E,stickyIndices:D,stickyStartX:O=0,stickyStartY:k=0,stickyEndX:ee=0,stickyEndY:te=0,flowPaddingStartX:A=0,flowPaddingStartY:ne=0,paddingStartX:j=0,paddingStartY:M=0,paddingEndX:N=0,paddingEndY:re=0}){let P;P=u(n)?n.align:n;let ie=(P&&typeof P==`object`?P.x:P)||`auto`,F=(P&&typeof P==`object`?P.y:P)||`auto`,ae=m,oe=h,se=0,I=0,L=`auto`,R=`auto`,ce=C===1?s:r,le=w===1?c:r,ue=Math.max(0,T+ce-a),z=Math.max(0,E+le-o),de=(ue-T)*C,fe=(z-E)*w,B=A+O+j,V=ne+k+M;if(e!=null){let t=b({index:e,align:F,viewSize:o,scrollPos:h,fixedSize:f,gap:l,query:v,getSize:g,stickyIndices:D,stickyStart:k+M,stickyEnd:te+re});oe=t.target+V,I=t.itemSize,R=t.effectiveAlign}if(t!=null){let e=i===`both`,n=b({index:t,align:ie,viewSize:a,scrollPos:m,fixedSize:e?p:f,gap:e||i===`horizontal`?d:l,query:e?S:y,getSize:e?x:_,stickyIndices:D,stickyStart:O+j,stickyEnd:ee+N});ae=n.target+B,se=n.itemSize,L=n.effectiveAlign}return ae=Math.max(0,Math.min(ae,de)),oe=Math.max(0,Math.min(oe,fe)),{targetX:ae,targetY:oe,itemWidth:se,itemHeight:I,effectiveAlignX:L,effectiveAlignY:R}}function O({direction:e,relativeScrollX:t,relativeScrollY:n,usableWidth:r,usableHeight:i,itemsLength:a,bufferBefore:o,bufferAfter:s,gap:c,columnGap:l,fixedSize:u,findLowerBoundY:d,findLowerBoundX:f,queryY:m,queryX:h}){let g=e===`vertical`||e===`both`;return p({scrollPos:g?n:t,containerSize:g?i:r,count:a,bufferBefore:o,bufferAfter:s,gap:g?c:l,fixedSize:u,findLowerBound:g?d:f,query:g?m:h})}function k({columnCount:e,relativeScrollX:t,usableWidth:n,colBuffer:r,fixedWidth:i,columnGap:a,findLowerBound:o,query:s,totalColsQuery:c}){if(!e)return{start:0,end:0,padStart:0,padEnd:0};let{start:l,end:u}=p({scrollPos:t,containerSize:n,count:e,bufferBefore:r,bufferAfter:r,gap:a,fixedSize:i,findLowerBound:o,query:s}),d=l,f=u,m=i===null?s(d):d*(i+a),h=i===null?Math.max(0,c()-a):e*(i+a)-a,g=i===null?s(f)-(f>0?a:0):f*(i+a)-(f>0?a:0);return{start:d,end:f,padStart:m,padEnd:Math.max(0,h-g)}}function ee({index:e,isSticky:t,direction:n,relativeScrollX:r,relativeScrollY:i,originalX:a,originalY:o,width:s,height:c,stickyIndices:l,fixedSize:u,gap:d,columnGap:f,getItemQueryY:p,getItemQueryX:m,nextStickyIndex:h}){let g=!1,_=!1,v={x:0,y:0};if(!t)return{isStickyActiveX:g,isStickyActiveY:_,isStickyActive:!1,stickyOffset:v};if(n===`vertical`||n===`both`){let t=x(i,o,c,e,l,e=>u===null?p(e):e*(u+d),h);_=t.isActive,v.y=t.offset}if(n===`horizontal`){let t=x(r,a,s,e,l,e=>u===null?m(e):e*(u+f),h);t.isActive&&(g=!0,v.x=t.offset)}return{isStickyActiveX:g,isStickyActiveY:_,isStickyActive:g||_,stickyOffset:v}}function te({index:e,direction:t,fixedSize:n,gap:r,columnGap:i,usableWidth:a,usableHeight:o,totalWidth:s,queryY:c,queryX:l,getSizeY:u,getSizeX:d,columnRange:f}){let p=0,m=0,h=0,g=0;return t===`horizontal`?(p=n===null?l(e):e*(n+i),h=n===null?d(e)-i:n,g=o):t===`both`&&f?(m=n===null?c(e):e*(n+r),g=n===null?u(e)-r:n,p=f.padStart,h=Math.max(0,s-f.padStart-f.padEnd)):(m=n===null?c(e):e*(n+r),g=n===null?u(e)-r:n,h=t===`both`?s:a),{height:g,width:h,x:p,y:m}}function A({item:e,direction:t,itemSize:n,containerTag:r,paddingStartX:i,paddingStartY:a,isHydrated:o,isRtl:s}){let c=t===`vertical`,l=t===`horizontal`,u=t===`both`,d=n==null||n===0,f={blockSize:l?`100%`:d?`auto`:`${e.size.height}px`};if(c&&r===`table`?f.minInlineSize=`100%`:f.inlineSize=c?`100%`:d?`auto`:`${e.size.width}px`,d&&(c||(f.minInlineSize=`1px`),l||(f.minBlockSize=`1px`)),o){let t=e.isStickyActiveY??(e.isStickyActive&&(c||u)),n=e.isStickyActiveX??(e.isStickyActive&&l),r=s?-(n?e.stickyOffset.x:e.offset.x):n?e.stickyOffset.x:e.offset.x,o=t?e.stickyOffset.y:e.offset.y;e.isStickyActive||e.isStickyActiveX||e.isStickyActiveY?(f.insetBlockStart=t?`${a}px`:`auto`,f.insetInlineStart=n?`${i}px`:`auto`,f.transform=`translate(${r}px, ${o}px)`):f.transform=`translate(${r}px, ${e.offset.y}px)`}return f}function ne(e,t,n,r,i,a,o,s,c){let l=t.start||0,u=t.colStart||0,d=0,f=e===`horizontal`?0:y(l,n,i,o);return e===`horizontal`?d=y(u,n,a,s):e===`both`&&(d=y(u,r,a,c)),{x:d,y:f}}function j(e,t){if(e.length===0||t.length<=e.length)return 0;let n=e[0];if(n===void 0)return 0;let r=t.length-e.length;for(let e=1;e<=r;e++)if(t[e]===n)return e;return 0}function M({direction:e,itemsLength:t,columnCount:n,fixedSize:r,fixedWidth:i,gap:a,columnGap:o,usableWidth:s,usableHeight:c,queryY:l,queryX:u,queryColumn:d}){let f=e===`both`,p=e===`horizontal`,m=0,h=0;return f?(m=_(n,i,o,d),h=_(t,r,a,l)):p?(m=_(t,r,o,u),h=c):(m=s,h=_(t,r,a,l)),{width:f?Math.max(m,s):m,height:f?Math.max(h,c):h}}function N(e,t,n=16){let r={x:e.x*t,y:e.y*t};return{nextVelocity:r,delta:{x:r.x*n,y:r.y*n}}}function re(e,t,n){return n<=0?{x:0,y:0}:{x:(e.x-t.x)/n,y:(e.y-t.y)/n}}function P(e,t,n,r,i,a,o,s,c,l){let u=e;if(e===`auto`)if(t===`start`)u=`end`;else if(t===`end`)u=`start`;else return null;if(e===`next`)if(t===`end`){let e=s(n);return e>a?null:i-c(n)<=Math.min(5,e*.1)?{index:n,align:`start`}:{index:Math.min(o-1,n+1),align:`start`}}else if(t===`start`){let e=s(r);return e>a?null:c(r)+e-(i+a)<=Math.min(5,e*.1)?{index:r,align:`end`}:{index:Math.max(0,r-1),align:`end`}}else return null;if(u===`start`){let e=s(n);if(e>a)return null;let t=c(n)+e-i;return{index:Math.min(o-1,t/e>=.5?n:n+1),align:`start`}}if(u===`end`){let e=s(r);if(e>a)return null;let t=i+a-c(r);return{index:Math.max(0,t/e>=.5?r:r-1),align:`end`}}if(u===`center`){let e=i+a/2,t=Math.max(0,Math.min(o-1,l(e)));return s(t)>a?null:{index:t,align:`center`}}return null}function ie(e,t,n,r){let i=(t||0)+n;return t!==null&&i>0?Math.floor(e/i):r(e)}var F=class{tree;values;constructor(e){this.tree=new Float64Array(e+1),this.values=new Float64Array(e)}update(e,t){if(!(e<0||e>=this.values.length))for(this.values[e]=this.values[e]+t,e++;e<this.tree.length;)this.tree[e]=this.tree[e]+t,e+=e&-e}query(e){let t=0;for(;e>0;)t+=this.tree[e]||0,e-=e&-e;return t}set(e,t){e<0||e>=this.values.length||(this.values[e]=t)}get length(){return this.values.length}get(e){return this.values[e]||0}getValues(){return this.values}findLowerBound(e){let t=0,n=this.tree.length,r=1<<Math.floor(Math.log2(n-1));for(;r>0;){let i=t+r;if(i<n){let n=this.tree[i]||0;n<=e&&(t=i,e-=n)}r>>=1}return t}rebuild(){this.tree.fill(0);for(let e=0;e<this.values.length;e++)this.tree[e+1]=this.values[e]||0;for(let e=1;e<this.tree.length;e++){let t=e+(e&-e);t<this.tree.length&&(this.tree[t]=this.tree[t]+this.tree[e])}}resize(e){if(e===this.values.length)return;let t=new Float64Array(e);t.set(this.values.subarray(0,Math.min(e,this.values.length))),this.values=t,this.tree=new Float64Array(e+1),this.rebuild()}shift(e){if(e===0)return;let t=this.values.length,n=new Float64Array(t);e>0?n.set(this.values.subarray(0,Math.min(t-e,this.values.length)),e):n.set(this.values.subarray(-e)),this.values=n,this.rebuild()}};function ae(e){let n=(0,t.computed)(()=>(0,t.toValue)(e)),r=new F(n.value.props.items?.length||0),i=new F(n.value.props.items?.length||0),a=new F(n.value.props.columnCount||0),o=(0,t.shallowRef)(new Uint8Array),s=(0,t.shallowRef)(new Uint8Array),c=(0,t.shallowRef)(new Uint8Array),l=(0,t.ref)(0),u=(0,t.ref)(!1),d=[],f=(e,t)=>typeof n.value.props.itemSize==`function`?n.value.props.itemSize(e,t):n.value.defaultSize,p=(e,t,r,i,a,o)=>{if(l.value,typeof t==`number`&&t>0)return t;if(Array.isArray(t)&&t.length>0){let n=t[e%t.length];return n!=null&&n>0?n:r}if(typeof t==`function`){let i=n.value.props.items[e];return o&&n.value.direction!==`both`||!o?i===void 0?r:t(i,e):t(e)}let s=a.get(e);return s>0?s-i:r},m=(e,t)=>{if(r.resize(e),i.resize(e),a.resize(t),s.value.length!==e){let t=new Uint8Array(e);t.set(s.value.subarray(0,Math.min(e,s.value.length))),s.value=t}if(c.value.length!==e){let t=new Uint8Array(e);t.set(c.value.subarray(0,Math.min(e,c.value.length))),c.value=t}if(o.value.length!==t){let e=new Uint8Array(t);e.set(o.value.subarray(0,Math.min(t,o.value.length))),o.value=e}},h=(e,t,n,r,i,a,o,s,c)=>{let l=!1;if(c){for(let r=0;r<e;r++)t.get(r)!==0&&(t.set(r,0),n[r]=0,l=!0);return l}for(let c=0;c<e;c++){let e=t.get(c),u=n[c]===1;if(!o||!u&&e===0){let u=p(c,r,i,a,t,s)+a;Math.abs(e-u)>.5?(t.set(c,u),n[c]=o?0:1,l=!0):o||(n[c]=1)}}return l},g=()=>{let e=n.value.props,t=e.items.length,l=e.columnCount||0,u=e.gap||0,d=e.columnGap||0,f=e.columnWidth,p=e.itemSize,m=e.defaultColumnWidth||100,g=e.defaultItemSize||n.value.defaultSize,_=h(l,a,o.value,f,m,d,n.value.isDynamicColumnWidth,!0,!1),v=h(t,r,s.value,p,g,d,n.value.isDynamicItemSize,!0,n.value.direction!==`horizontal`),y=h(t,i,c.value,p,g,u,n.value.isDynamicItemSize,!1,n.value.direction===`horizontal`);_&&a.rebuild(),v&&r.rebuild(),y&&i.rebuild()},_=(e,t,n,r,i,a,o)=>{let s=n.get(e),c=t+i,l=!1;if(!r[e]||Math.abs(c-s)>.1){let t=c-s;n.update(e,t),r[e]=1,l=!0,e<a&&s>0&&(o.val+=t)}return l},v=()=>{let e=n.value.props,t=e.items,a=t.length;m(a,e.columnCount||0);let o=e.restoreScrollOnPrepend?j(d,t):0;if(o>0){r.shift(o),i.shift(o);let e=new Uint8Array(a),t=new Uint8Array(a);e.set(s.value.subarray(0,Math.min(a-o,s.value.length)),o),t.set(c.value.subarray(0,Math.min(a-o,c.value.length)),o),s.value=e,c.value=t}g(),d=[...t],u.value=!0,l.value++};return{itemSizesX:r,itemSizesY:i,columnSizes:a,measuredItemsX:s,measuredItemsY:c,measuredColumns:o,treeUpdateFlag:l,sizesInitialized:u,getItemBaseSize:f,getSizeAt:p,initializeSizes:v,updateItemSizes:(e,t,u,d,f,p)=>{let m=!1,h={val:0},g={val:0},v=n.value.props,y=v.gap||0,b=v.columnGap||0,x=t(n.value.direction===`horizontal`?d:f),S=u(d),C=n.value.direction===`horizontal`,w=n.value.direction===`both`,T=new Set,E=new Set,D=(e,t)=>{e>=0&&e<(v.columnCount||0)&&!E.has(e)&&(E.add(e),_(e,t,a,o.value,b,S,h)&&(m=!0))};for(let{index:t,inlineSize:a,blockSize:o,element:l}of e){if(a<=0&&o<=0)continue;let e=n.value.isDynamicItemSize||typeof v.itemSize==`function`;t>=0&&!T.has(t)&&e&&o>0&&(T.add(t),C&&a>0&&_(t,a,r,s.value,b,x,h)&&(m=!0),C||_(t,o,i,c.value,y,x,g)&&(m=!0));let u=n.value.isDynamicColumnWidth||typeof v.columnWidth==`function`;if(w&&l&&v.columnCount&&u&&(a>0||l.dataset.colIndex===void 0)){let e=l.dataset.colIndex;if(e!=null)D(Number.parseInt(e,10),a);else{let e=Array.from(l.querySelectorAll(`[data-col-index]`));for(let t of e)D(Number.parseInt(t.dataset.colIndex,10),t.getBoundingClientRect().width)}}}m&&(l.value++,(h.val!==0||g.val!==0)&&p(h.val,g.val))},refresh:()=>{r.resize(0),i.resize(0),a.resize(0),o.value.fill(0),s.value.fill(0),c.value.fill(0),v()}}}function oe(e,n=[]){let r=(0,t.computed)(()=>(0,t.toValue)(e)),i=(0,t.ref)(0),a=(0,t.ref)(0),p=(0,t.ref)(0),m=(0,t.ref)(0),g=(0,t.ref)(!1),_=(0,t.ref)(!1),b=(0,t.ref)(!1),x=(0,t.ref)(!1),S=(0,t.ref)(!1),C=(0,t.ref)(0),A=(0,t.ref)(0),j=(0,t.reactive)({x:0,y:0}),N=(0,t.reactive)({x:0,y:0}),re,P=(0,t.ref)(1),F=(0,t.ref)(1),oe=(0,t.ref)(null),se=(0,t.ref)(null),I=(0,t.ref)(null),L=(0,t.ref)(!1),R,ce=()=>{L.value=!1,clearTimeout(R),I.value=null},le=0,ue=0,z=(0,t.computed)(()=>[`vertical`,`horizontal`,`both`].includes(r.value.direction)?r.value.direction:`vertical`),de=(0,t.computed)(()=>r.value.itemSize===void 0||r.value.itemSize===null||r.value.itemSize===0),fe=(0,t.computed)(()=>r.value.columnWidth===void 0||r.value.columnWidth===null||r.value.columnWidth===0),B=(0,t.computed)(()=>typeof r.value.itemSize==`number`&&r.value.itemSize>0?r.value.itemSize:null),V=(0,t.computed)(()=>typeof r.value.columnWidth==`number`&&r.value.columnWidth>0?r.value.columnWidth:null),pe=(0,t.computed)(()=>r.value.defaultItemSize||B.value||40),{itemSizesX:H,itemSizesY:U,columnSizes:W,measuredColumns:G,measuredItemsY:me,treeUpdateFlag:K,getSizeAt:he,getItemBaseSize:ge,initializeSizes:_e,updateItemSizes:ve,refresh:ye}=ae((0,t.computed)(()=>({props:r.value,isDynamicItemSize:de.value,isDynamicColumnWidth:fe.value,defaultSize:pe.value,fixedItemSize:B.value,direction:z.value}))),be=(0,t.computed)(()=>d(r.value.scrollPaddingStart,r.value.direction)),xe=(0,t.computed)(()=>d(r.value.scrollPaddingEnd,r.value.direction)),Se=(0,t.computed)(()=>f(r.value.scrollPaddingStart,r.value.direction)),Ce=(0,t.computed)(()=>f(r.value.scrollPaddingEnd,r.value.direction)),q=(0,t.computed)(()=>d(r.value.stickyStart,r.value.direction)),we=(0,t.computed)(()=>d(r.value.stickyEnd,r.value.direction)),J=(0,t.computed)(()=>f(r.value.stickyStart,r.value.direction)),Te=(0,t.computed)(()=>f(r.value.stickyEnd,r.value.direction)),Ee=(0,t.computed)(()=>d(r.value.flowPaddingStart,r.value.direction)),De=(0,t.computed)(()=>d(r.value.flowPaddingEnd,r.value.direction)),Y=(0,t.computed)(()=>f(r.value.flowPaddingStart,r.value.direction)),Oe=(0,t.computed)(()=>f(r.value.flowPaddingEnd,r.value.direction)),ke=(0,t.computed)(()=>C.value-(z.value===`vertical`?0:q.value+we.value)),Ae=(0,t.computed)(()=>A.value-(z.value===`horizontal`?0:J.value+Te.value)),je=(0,t.computed)(()=>(K.value,M({direction:z.value,itemsLength:r.value.items.length,columnCount:r.value.columnCount||0,fixedSize:B.value,fixedWidth:V.value,gap:r.value.gap||0,columnGap:r.value.columnGap||0,usableWidth:ke.value,usableHeight:Ae.value,queryY:e=>U.query(e),queryX:e=>H.query(e),queryColumn:e=>W.query(e)}))),Me=(0,t.computed)(()=>o(r.value.container)),Ne=(0,t.computed)(()=>je.value.width+be.value+xe.value),Pe=(0,t.computed)(()=>je.value.height+Se.value+Ce.value),Fe=(0,t.computed)(()=>Ee.value+q.value+we.value+De.value+Ne.value),Ie=(0,t.computed)(()=>Y.value+J.value+Te.value+Oe.value+Pe.value),X=(0,t.reactive)({x:(0,t.computed)(()=>Math.max(0,j.x-(Ee.value+q.value))),y:(0,t.computed)(()=>Math.max(0,j.y-(Y.value+J.value)))}),Le=(0,t.computed)(()=>w(Me.value,Fe.value)),Re=(0,t.computed)(()=>w(Me.value,Ie.value)),ze=(0,t.computed)(()=>w(Me.value,Ne.value)),Be=(0,t.computed)(()=>w(Me.value,Pe.value)),Z=(0,t.computed)(()=>{if(z.value===`vertical`)return 0;let e=Ee.value+q.value+be.value;return p.value-e}),Q=(0,t.computed)(()=>{if(z.value===`horizontal`)return 0;let e=Y.value+J.value+Se.value;return m.value-e}),Ve=e=>{let t=z.value===`horizontal`;return ie(e,B.value,t?r.value.columnGap||0:r.value.gap||0,e=>t?H.findLowerBound(e):U.findLowerBound(e))},He=e=>z.value===`both`?ie(e,V.value,r.value.columnGap||0,e=>W.findLowerBound(e)):z.value===`horizontal`?Ve(e):0,Ue=e=>z.value===`both`?he(e,r.value.columnWidth,r.value.defaultColumnWidth||100,r.value.columnGap||0,W,!0):he(e,r.value.itemSize,r.value.defaultItemSize||40,r.value.columnGap||0,H,!0),We=e=>z.value===`horizontal`?Ae.value:he(e,r.value.itemSize,r.value.defaultItemSize||40,r.value.gap||0,U,!1),Ge=e=>z.value===`horizontal`?Ee.value+q.value+be.value+y(e,B.value,r.value.columnGap||0,e=>H.query(e)):Y.value+J.value+Se.value+y(e,B.value,r.value.gap||0,e=>U.query(e)),Ke=e=>z.value===`horizontal`?Ue(e):We(e),qe=()=>{if(typeof window>`u`)return;let e=r.value.container||r.value.hostRef||window,t=s(e)?e:document.documentElement,n=window.getComputedStyle(t).direction===`rtl`;S.value!==n&&(S.value=n)},Je=(e,n)=>{(0,t.nextTick)(()=>{Xe(e>0?Z.value+e:null,n>0?Q.value+n:null,{behavior:`auto`})})};function Ye(e,t,n){let o=u(n)?n.isCorrection:!1,s=u(n)?n.dryRun:!1,c=r.value.container||window,{targetX:d,targetY:f,effectiveAlignX:h,effectiveAlignY:g}=D({rowIndex:e,colIndex:t,options:n,direction:z.value,viewportWidth:C.value,viewportHeight:A.value,totalWidth:Fe.value,totalHeight:Ie.value,gap:r.value.gap||0,columnGap:r.value.columnGap||0,fixedSize:B.value,fixedWidth:V.value,relativeScrollX:Z.value,relativeScrollY:Q.value,getItemSizeY:e=>U.get(e),getItemSizeX:e=>H.get(e),getItemQueryY:e=>U.query(e),getItemQueryX:e=>H.query(e),getColumnSize:e=>W.get(e),getColumnQuery:e=>W.query(e),scaleX:P.value,scaleY:F.value,hostOffsetX:X.x,hostOffsetY:X.y,stickyIndices:r.value.stickyIndices||[],stickyStartX:q.value,stickyStartY:J.value,stickyEndX:we.value,stickyEndY:Te.value,flowPaddingStartX:Ee.value,flowPaddingStartY:Y.value,paddingStartX:be.value,paddingStartY:Se.value,paddingEndX:xe.value,paddingEndY:Ce.value});if(!o&&!s){let r=u(n)?n.behavior:void 0;I.value={rowIndex:e,colIndex:t,options:{align:{x:h,y:g},...r==null?{}:{behavior:r}}}}let _=E(d,X.x,P.value),v=E(f,X.y,F.value),y=S.value?-_:_,b=v,x;u(n)&&(x=n.behavior);let w=o?`auto`:x||`smooth`;s||(w===`smooth`||!o)&&(L.value=!0,clearTimeout(R),w===`smooth`&&(R=setTimeout(()=>{L.value=!1,R=void 0,ot()},1e3)));let T={behavior:w};return t!=null&&(T.left=S.value?y:Math.max(0,y)),e!=null&&(T.top=Math.max(0,b)),!o&&!s&&l(c,T),!s&&(w===`auto`||w===void 0)&&(t!=null&&(i.value=S.value?y:Math.max(0,y),p.value=d),e!=null&&(a.value=Math.max(0,b),m.value=f)),{targetX:d,targetY:f,displayTargetX:_,displayTargetY:v}}function Xe(e,t,n){let o=r.value.container||window;L.value=!0,clearTimeout(R),n?.behavior===`smooth`&&(R=setTimeout(()=>{L.value=!1,R=void 0,ot()},1e3)),I.value=null;let s=e==null?null:Math.max(0,Math.min(e,Fe.value-C.value)),c=t==null?null:Math.max(0,Math.min(t,Ie.value-A.value));s!==null&&(p.value=s),c!==null&&(m.value=c);let u=typeof window<`u`&&o===window?window.scrollX:o.scrollLeft,d=typeof window<`u`&&o===window?window.scrollY:o.scrollTop,f=s===null?null:E(s,X.x,P.value),h=c===null?null:E(c,X.y,F.value),g=f===null?u:S.value?-f:f,_=h===null?d:h,v={behavior:n?.behavior||`auto`};e!=null&&(v.left=g),t!=null&&(v.top=_),l(o,v),(n?.behavior===`auto`||n?.behavior===void 0)&&(e!=null&&(i.value=g),t!=null&&(a.value=_))}let Ze=(0,t.computed)(()=>{if(K.value,(!_.value||b.value)&&r.value.ssrRange)return{start:r.value.ssrRange.start,end:r.value.ssrRange.end};let e=r.value.ssrRange&&!g.value?0:r.value.bufferBefore??5,t=r.value.bufferAfter??5;return O({direction:z.value,relativeScrollX:Z.value,relativeScrollY:Q.value,usableWidth:ke.value,usableHeight:Ae.value,itemsLength:r.value.items.length,bufferBefore:e,bufferAfter:t,gap:r.value.gap||0,columnGap:r.value.columnGap||0,fixedSize:B.value,findLowerBoundY:e=>U.findLowerBound(e),findLowerBoundX:e=>H.findLowerBound(e),queryY:e=>U.query(e),queryX:e=>H.query(e)})}),$=(0,t.computed)(()=>{K.value;let e=Z.value+q.value,t=Q.value+J.value;return Ve(z.value===`horizontal`?e:t)}),Qe=(0,t.computed)(()=>{K.value;let e=r.value.columnCount||0;if(!e)return{start:0,end:0,padStart:0,padEnd:0};if((!_.value||b.value)&&r.value.ssrRange){let{colStart:t=0,colEnd:n=0}=r.value.ssrRange,i=Math.max(0,t),a=Math.min(e,n||e);return k({columnCount:e,relativeScrollX:y(i,V.value,r.value.columnGap||0,e=>W.query(e)),usableWidth:v(i,a,V.value,r.value.columnGap||0,e=>W.query(e)),colBuffer:0,fixedWidth:V.value,columnGap:r.value.columnGap||0,findLowerBound:e=>W.findLowerBound(e),query:e=>W.query(e),totalColsQuery:()=>W.query(e)})}let t=r.value.ssrRange&&!g.value?0:2;return k({columnCount:e,relativeScrollX:Z.value,usableWidth:ke.value,colBuffer:t,fixedWidth:V.value,columnGap:r.value.columnGap||0,findLowerBound:e=>W.findLowerBound(e),query:e=>W.query(e),totalColsQuery:()=>W.query(e)})}),$e={props:r,scrollDetails:null,totalSize:(0,t.computed)(()=>({width:Fe.value,height:Ie.value})),range:Ze,currentIndex:$,internalState:{scrollX:i,scrollY:a,internalScrollX:p,internalScrollY:m,isRtl:S,isScrolling:g,isProgrammaticScroll:L,viewportWidth:C,viewportHeight:A,scaleX:P,scaleY:F,scrollDirectionX:oe,scrollDirectionY:se,relativeScrollX:Z,relativeScrollY:Q},methods:{scrollToIndex:Ye,scrollToOffset:Xe,updateDirection:qe,getRowIndexAt:Ve,getColIndexAt:He,getItemSize:Ke,getItemBaseSize:ge,getItemOffset:Ge,handleScrollCorrection:Je}},et=[],tt=(0,t.computed)(()=>{K.value;let{start:e,end:t}=Ze.value,i=[],a=[...r.value.stickyIndices||[]].sort((e,t)=>e-t),o=new Set(a),s=[];if(_.value||!r.value.ssrRange){let t=$.value,n=h(a,t);n!==void 0&&n<e&&s.push(n)}for(let n=e;n<t;n++)s.push(n);let{x:c,y:l}=!_.value&&r.value.ssrRange?ne(z.value,r.value.ssrRange,B.value,V.value,r.value.gap||0,r.value.columnGap||0,e=>U.query(e),e=>H.query(e),e=>W.query(e)):{x:0,y:0},u=new Map;for(let e of et)u.set(e.index,e);let d=-1,f=0,g=-1,v=0,y=e=>e===d+1?(f+=H.get(d),d=e,f):(f=H.query(e),d=e,f),b=e=>e===g+1?(v+=U.get(g),g=e,v):(v=U.query(e),g=e,v),x=Ee.value+q.value+be.value,S=Y.value+J.value+Se.value,C=Ee.value+q.value,w=Y.value+J.value,T=Qe.value,E=0;for(let e of s){let t=r.value.items[e];if(t===void 0)continue;let{x:n,y:s,width:d,height:f}=te({index:e,direction:z.value,fixedSize:B.value,gap:r.value.gap||0,columnGap:r.value.columnGap||0,usableWidth:ke.value,usableHeight:Ae.value,totalWidth:je.value.width,queryY:b,queryX:y,getSizeY:e=>U.get(e),getSizeX:e=>H.get(e),columnRange:T}),h=o.has(e),g=n,v=s;for(;E<a.length&&a[E]<=e;)E++;let D=E<a.length?a[E]:void 0,{isStickyActive:O,isStickyActiveX:k,isStickyActiveY:A,stickyOffset:ne}=ee({index:e,isSticky:h,direction:z.value,relativeScrollX:Z.value,relativeScrollY:Q.value,originalX:g,originalY:v,width:d,height:f,stickyIndices:a,fixedSize:B.value,fixedWidth:V.value,gap:r.value.gap||0,columnGap:r.value.columnGap||0,getItemQueryY:e=>U.query(e),getItemQueryX:e=>H.query(e),nextStickyIndex:D}),j=_.value?p.value/P.value+(n+x-p.value)-C:n-c,M=_.value?m.value/F.value+(s+S-m.value)-w:s-l,N=u.get(e);N&&N.item===t&&N.offset.x===j&&N.offset.y===M&&N.size.width===d&&N.size.height===f&&N.isSticky===h&&N.isStickyActive===O&&N.isStickyActiveX===k&&N.isStickyActiveY===A&&N.stickyOffset.x===ne.x&&N.stickyOffset.y===ne.y?i.push(N):i.push({item:t,index:e,offset:{x:j,y:M},size:{width:d,height:f},originalX:g,originalY:v,isSticky:h,isStickyActive:O,isStickyActiveX:k,isStickyActiveY:A,stickyOffset:ne})}let D=i;return n.forEach(e=>{e.transformRenderedItems&&(D=e.transformRenderedItems(D,$e))}),et=D,D}),nt=(0,t.computed)(()=>{K.value;let e=Z.value+q.value,t=Q.value+J.value,n=Z.value+(C.value-we.value)-1,r=Q.value+(A.value-Te.value)-1,o=He(e),s=Ve(t),c=Ve(z.value===`horizontal`?n:r),l=He(n);return{items:tt.value,currentIndex:s,currentColIndex:o,currentEndIndex:c,currentEndColIndex:l,scrollOffset:{x:p.value,y:m.value},displayScrollOffset:{x:S.value?Math.abs(i.value+N.x):Math.max(0,i.value-N.x),y:Math.max(0,a.value-N.y)},viewportSize:{width:C.value,height:A.value},displayViewportSize:{width:C.value,height:A.value},totalSize:{width:Fe.value,height:Ie.value},isScrolling:g.value,isProgrammaticScroll:L.value,range:Ze.value,columnRange:Qe.value}});$e.scrollDetails=nt,n.forEach(e=>e.onInit?.($e));let rt=e=>{let t=e.target;if(typeof window>`u`)return;qe(),t===window||t===document?(i.value=window.scrollX,a.value=window.scrollY,C.value=document.documentElement.clientWidth,A.value=document.documentElement.clientHeight):c(t)&&(i.value=t.scrollLeft,a.value=t.scrollTop,C.value=t.clientWidth,A.value=t.clientHeight);let r=T(S.value?Math.abs(i.value):i.value,X.x,P.value),o=T(a.value,X.y,F.value);if(!L.value){g.value||(le=p.value,ue=m.value);let e=r-le,t=o-ue;Math.abs(e)>.5&&(oe.value=e>0?`end`:`start`),Math.abs(t)>.5&&(se.value=t>0?`end`:`start`)}p.value=r,m.value=o,L.value||(I.value=null),g.value||=!0,n.forEach(t=>t.onScroll?.($e,e)),clearTimeout(re),re=setTimeout(()=>{g.value=!1,n.forEach(e=>e.onScrollEnd?.($e)),R===void 0&&(L.value=!1)},150)},it=e=>{ve(e,Ve,He,Z.value,Q.value,(e,t)=>{!I.value&&!L.value&&Je(e,t)})},at=(e,t,n,r)=>{it([{index:e,inlineSize:t,blockSize:n,element:r}])};function ot(){if(I.value&&!b.value){let{rowIndex:e,colIndex:t,options:n}=I.value;if(u(n)&&n.behavior===`smooth`&&(g.value||L.value))return;let i=r.value.container||window,a=typeof window<`u`&&i===window?window.scrollX:i.scrollLeft,o=typeof window<`u`&&i===window?window.scrollY:i.scrollTop,s=S.value?Math.abs(a):a,c=o,l=T(s,0,P.value),d=T(c,0,F.value),{targetX:f,targetY:p}=D({rowIndex:e,colIndex:t,options:n,direction:z.value,viewportWidth:C.value,viewportHeight:A.value,totalWidth:Ne.value,totalHeight:Pe.value,gap:r.value.gap||0,columnGap:r.value.columnGap||0,fixedSize:B.value,fixedWidth:V.value,relativeScrollX:l,relativeScrollY:d,getItemSizeY:e=>U.get(e),getItemSizeX:e=>H.get(e),getItemQueryY:e=>U.query(e),getItemQueryX:e=>H.query(e),getColumnSize:e=>W.get(e),getColumnQuery:e=>W.query(e),scaleX:P.value,scaleY:F.value,hostOffsetX:X.x,hostOffsetY:X.y,stickyIndices:r.value.stickyIndices||[],stickyStartX:q.value,stickyStartY:J.value,stickyEndX:we.value,stickyEndY:Te.value,flowPaddingStartX:Ee.value,flowPaddingStartY:Y.value,paddingStartX:be.value,paddingStartY:Se.value,paddingEndX:xe.value,paddingEndY:Ce.value}),m=2*P.value,h=2*F.value,_=t==null||Math.abs(l-f)<m,v=e==null||Math.abs(d-p)<h;if(_&&v){let n=t==null||t===void 0||G.value[t]===1,r=e==null||e===void 0||me.value[e]===1;n&&r&&!g.value&&!L.value&&(I.value=null)}else Ye(e,t,u(n)?{...n,isCorrection:!0}:{align:n,isCorrection:!0})}}(0,t.watch)([K,C,A],ot),(0,t.watch)(g,e=>{e||ot()});let st=()=>{if(typeof window>`u`)return;let e=r.value.container||window,t=t=>{let n=t.getBoundingClientRect();if(e===window)return{x:S.value?document.documentElement.clientWidth-n.right-window.scrollX:n.left+window.scrollX,y:n.top+window.scrollY};if(e===t)return{x:0,y:0};if(s(e)){let t=e.getBoundingClientRect();return{x:S.value?t.right-n.right-e.scrollLeft:n.left-t.left+e.scrollLeft,y:n.top-t.top+e.scrollTop}}return{x:0,y:0}};if(r.value.hostElement){let e=t(r.value.hostElement);(Math.abs(j.x-e.x)>.1||Math.abs(j.y-e.y)>.1)&&(j.x=e.x,j.y=e.y)}if(r.value.hostRef){let e=t(r.value.hostRef);(Math.abs(N.x-e.x)>.1||Math.abs(N.y-e.y)>.1)&&(N.x=e.x,N.y=e.y)}},ct=e=>{if(typeof window>`u`)return;let t=e||window,n=t===window||s(t)&&t===document.documentElement?document:t;n.addEventListener(`scroll`,rt,{passive:!0}),qe();let r=null;s(t)&&(r=new MutationObserver(()=>qe()),r.observe(t,{attributes:!0,attributeFilter:[`dir`,`style`]}));let o=setInterval(qe,1e3);if(t===window){C.value=document.documentElement.clientWidth,A.value=document.documentElement.clientHeight,i.value=window.scrollX,a.value=window.scrollY;let e=()=>{qe(),C.value=document.documentElement.clientWidth,A.value=document.documentElement.clientHeight,st()};return window.addEventListener(`resize`,e),()=>{n.removeEventListener(`scroll`,rt),window.removeEventListener(`resize`,e),r?.disconnect(),clearInterval(o)}}else{C.value=t.clientWidth,A.value=t.clientHeight,i.value=t.scrollLeft,a.value=t.scrollTop;let e=new ResizeObserver(()=>{qe(),C.value=t.clientWidth,A.value=t.clientHeight,st()});return e.observe(t),()=>{n.removeEventListener(`scroll`,rt),e.disconnect(),r?.disconnect(),clearInterval(o)}}},lt;return(0,t.getCurrentInstance)()&&((0,t.onMounted)(()=>{x.value=!0,qe(),(0,t.watch)(()=>r.value.container,e=>{lt?.(),lt=ct(e||null)},{immediate:!0}),st(),(0,t.nextTick)(()=>{if(st(),r.value.ssrRange||r.value.initialScrollIndex!==void 0){let e=r.value.initialScrollIndex===void 0?r.value.ssrRange?.start:r.value.initialScrollIndex,n=r.value.initialScrollAlign||`start`;e!=null&&Ye(e,r.value.ssrRange?.colStart,{align:n,behavior:`auto`}),_.value=!0,b.value=!0,(0,t.nextTick)(()=>{b.value=!1})}else _.value=!0})}),(0,t.onUnmounted)(()=>{lt?.()})),(0,t.watch)([()=>r.value.items,()=>r.value.items.length,()=>r.value.direction,()=>r.value.columnCount,()=>r.value.columnWidth,()=>r.value.itemSize,()=>r.value.gap,()=>r.value.columnGap,()=>r.value.defaultItemSize,()=>r.value.defaultColumnWidth],()=>_e(),{immediate:!0}),(0,t.watch)(()=>[r.value.container,r.value.hostElement],()=>{st()}),(0,t.watch)(S,(e,t)=>{if(t===void 0||e===t||!x.value)return;if(z.value===`vertical`){st();return}let n=T(t?Math.abs(i.value):i.value,j.x,P.value);st(),Xe(n,null,{behavior:`auto`})},{flush:`sync`}),(0,t.watch)([P,F],()=>{!x.value||g.value||L.value||Xe(p.value,m.value,{behavior:`auto`})}),(0,t.watch)([()=>r.value.items.length,()=>r.value.columnCount],([e,n],[r,i])=>{(0,t.nextTick)(()=>{let t=Math.max(0,Fe.value-C.value),a=Math.max(0,Ie.value-A.value);p.value>t||m.value>a?Xe(Math.min(p.value,t),Math.min(m.value,a),{behavior:`auto`}):(e!==r&&F.value!==1||n!==i&&P.value!==1)&&Xe(p.value,m.value,{behavior:`auto`}),st()})}),{renderedItems:tt,totalWidth:Fe,totalHeight:Ie,renderedWidth:Le,renderedHeight:Re,scrollDetails:nt,getRowHeight:We,getColumnWidth:Ue,getRowOffset:e=>Y.value+J.value+Se.value+y(e,B.value,r.value.gap||0,e=>U.query(e)),getColumnOffset:e=>{let t=Ee.value+q.value+be.value;return z.value===`both`?t+y(e,V.value,r.value.columnGap||0,e=>W.query(e)):t+y(e,B.value,r.value.columnGap||0,e=>H.query(e))},getItemOffset:Ge,getItemSize:Ke,scrollToIndex:Ye,scrollToOffset:Xe,stopProgrammaticScroll:ce,handleScrollCorrection:Je,updateItemSize:at,updateItemSizes:it,updateHostOffset:st,updateDirection:qe,columnRange:Qe,refresh:()=>ye(),isHydrated:_,isWindowContainer:Me,isRtl:S,scaleX:P,scaleY:F,componentOffset:X,renderedVirtualWidth:ze,renderedVirtualHeight:Be,getRowIndexAt:Ve,getColIndexAt:He,__internalState:$e.internalState}}function se(e){let n=(0,t.computed)(()=>(0,t.toValue)(e)),r=(0,t.computed)(()=>n.value.axis===`horizontal`),i=(0,t.computed)(()=>n.value.totalSize<=0?0:Math.min(1,n.value.viewportSize/n.value.totalSize)),a=(0,t.computed)(()=>{let e=n.value.totalSize-n.value.viewportSize;return e<=0?0:Math.max(0,Math.min(1,n.value.position/e))}),o=(0,t.computed)(()=>{let e=n.value.viewportSize>0?32/n.value.viewportSize:.1;return Math.max(Math.min(e,.1),i.value)*100}),s=(0,t.computed)(()=>a.value*(100-o.value)),c=(0,t.computed)(()=>r.value?{inlineSize:`${o.value}%`,insetInlineStart:`${s.value}%`}:{blockSize:`${o.value}%`,insetBlockStart:`${s.value}%`}),l=(0,t.computed)(()=>{let e=n.value.viewportSize,t=`var(--vs-scrollbar-has-cross-gap, var(--vsi-scrollbar-has-cross-gap, 0)) * var(--vs-scrollbar-cross-gap, var(--vsi-scrollbar-size, 8px))`;return r.value?{inlineSize:`calc(${Math.max(0,e-4)}px - ${t})`}:{blockSize:`calc(${Math.max(0,e-4)}px - ${t})`}}),u=(0,t.ref)(!1),d=0,f=0;function p(e){let t=e.currentTarget;if(e.target!==t)return;let i=t.getBoundingClientRect(),a=r.value?i.width:i.height,s=0;s=r.value?n.value.isRtl?i.right-e.clientX:e.clientX-i.left:e.clientY-i.top;let c=o.value/100*a,l=(s-c/2)/(a-c),u=n.value.totalSize-n.value.viewportSize,d=l*u;d>u-1&&(d=u),n.value.scrollToOffset(Math.max(0,Math.min(u,d)))}function m(e){u.value=!0,d=r.value?n.value.isRtl?-e.clientX:e.clientX:e.clientY,f=n.value.position,e.currentTarget.setPointerCapture(e.pointerId),e.preventDefault(),e.stopPropagation()}function h(e){if(!u.value)return;let t=e.currentTarget.parentElement;if(!t)return;let i=(r.value?n.value.isRtl?-e.clientX:e.clientX:e.clientY)-d,a=t.getBoundingClientRect(),s=r.value?a.width:a.height,c=s-o.value/100*s;if(c<=0)return;let l=n.value.totalSize-n.value.viewportSize,p=f+i/c*l;p>l-1&&(p=l),n.value.scrollToOffset(Math.max(0,Math.min(l,p)))}function g(e){u.value&&(u.value=!1,e.currentTarget.releasePointerCapture(e.pointerId))}return(0,t.getCurrentInstance)()&&(0,t.onUnmounted)(()=>{u.value=!1}),{viewportPercent:i,positionPercent:a,thumbSizePercent:o,thumbPositionPercent:s,trackStyle:l,thumbStyle:c,trackProps:(0,t.computed)(()=>({class:[`virtual-scrollbar-track`,`virtual-scrollbar-track--${r.value?`horizontal`:`vertical`}`],style:l.value,role:`scrollbar`,"aria-label":n.value.ariaLabel,"aria-orientation":n.value.axis,"aria-valuenow":Math.round(n.value.position),"aria-valuemin":0,"aria-valuemax":Math.round(n.value.totalSize-n.value.viewportSize),"aria-controls":n.value.containerId,tabindex:-1,onMousedown:p})),thumbProps:(0,t.computed)(()=>({class:[`virtual-scrollbar-thumb`,`virtual-scrollbar-thumb--${r.value?`horizontal`:`vertical`}`,{"virtual-scrollbar-thumb--active":u.value}],style:c.value,onPointerdown:m,onPointermove:h,onPointerup:g,onPointercancel:g})),isDragging:u}}function I(){let e=(0,t.ref)(!1);return{name:`rtl`,onInit(t){let n=()=>{if(typeof window>`u`)return;let n=t.props.value.container||t.props.value.hostRef||window,r=s(n)?n:document.documentElement,i=window.getComputedStyle(r).direction===`rtl`;e.value!==i&&(e.value=i,t.internalState.isRtl.value=i)},r=t.methods.updateDirection;t.methods.updateDirection=()=>{n(),r()},n()}}}function L(){return{name:`snapping`,onScrollEnd(e){if(!e.props.value.snap||e.internalState.isProgrammaticScroll.value)return;let t=e.props.value.snap,n=t===!0?`auto`:t,r=e.scrollDetails.value,i=e.props.value.items.length,a=e.props.value.direction||`vertical`,o=r.currentIndex,s=r.currentColIndex,c=`start`,l=`start`,u=!1;if(a!==`horizontal`){let t=P(n,e.internalState.scrollDirectionY.value,r.currentIndex,r.currentEndIndex,e.internalState.relativeScrollY.value,e.internalState.viewportHeight.value,i,t=>e.methods.getItemSize(t),t=>e.methods.getItemOffset(t),e.methods.getRowIndexAt);t&&(o=t.index,c=t.align,u=!0)}if(a!==`vertical`){let t=a===`both`?e.props.value.columnCount||0:i,o=P(n,e.internalState.scrollDirectionX.value,r.currentColIndex,r.currentEndColIndex,e.internalState.relativeScrollX.value,e.internalState.viewportWidth.value,t,t=>e.methods.getItemSize(t),t=>e.methods.getItemOffset(t),e.methods.getColIndexAt);o&&(s=o.index,l=o.align,u=!0)}if(u){let{targetX:t,targetY:n}=e.methods.scrollToIndex(o,s,{align:{x:l,y:c},dryRun:!0}),r=e.internalState.internalScrollX.value,i=e.internalState.internalScrollY.value,a=s===null?0:Math.abs(t-r),u=o===null?0:Math.abs(n-i);(a>.5||u>.5)&&e.methods.scrollToIndex(o,s,{align:{x:l,y:c},behavior:`smooth`})}}}}function R(){let e=e=>(0,t.computed)(()=>[...e.props.value.stickyIndices||[]].sort((e,t)=>e-t));return{name:`sticky`,transformRenderedItems(t,n){let r=e(n).value;if(r.length===0)return t;let{start:i}=n.range.value,a=n.currentIndex.value,o=h(r,a),s=[...t];return o!==void 0&&o<i&&t.some(e=>e.index===o),s}}}function ce(e){return{name:`infinite-loading`,onInit(n){(0,t.watch)(n.scrollDetails,t=>{if(n.props.value.loading||!t||!t.totalSize||t.totalSize.width===0&&t.totalSize.height===0)return;let r=n.props.value.direction||`vertical`,i=n.props.value.loadDistance??200;r!==`horizontal`&&t.totalSize.height-(t.scrollOffset.y+t.viewportSize.height)<=i&&e.onLoad(`vertical`),r!==`vertical`&&t.totalSize.width-(t.scrollOffset.x+t.viewportSize.width)<=i&&e.onLoad(`horizontal`)})}}}function le(){let e=[];return{name:`prepend-restoration`,onInit(n){e=[...n.props.value.items],(0,t.watch)(()=>n.props.value.items,t=>{if(!n.props.value.restoreScrollOnPrepend){e=[...t];return}let r=j(e,t);if(r>0){let e=n.props.value.direction||`vertical`,i=(e===`horizontal`?n.props.value.columnGap:n.props.value.gap)||0,a=0;for(let e=0;e<r;e++)a+=n.methods.getItemBaseSize(t[e],e)+i;a>0&&n.methods.handleScrollCorrection(e===`horizontal`?a:0,e===`horizontal`?0:a)}e=[...t]},{deep:!1})}}}function ue(){return{name:`coordinate-scaling`,onInit(e){(0,t.watchEffect)(()=>{let t=e.props.value.container,n=e.totalSize.value,r=e.internalState.viewportWidth.value,i=e.internalState.viewportHeight.value,a=typeof window<`u`&&t===window||t===void 0;n&&r&&i&&(e.internalState.scaleX.value=C(a,n.width,r),e.internalState.scaleY.value=C(a,n.height,i))})}}}var z=(0,t.defineComponent)({__name:`VirtualScrollbar`,props:{axis:{default:`vertical`},totalSize:{},position:{},viewportSize:{},scrollToOffset:{},containerId:{},isRtl:{type:Boolean,default:!1},ariaLabel:{}},emits:[`scrollToOffset`],setup(e,{emit:n}){let r=e,i=n,{trackProps:a,thumbProps:o}=se(()=>({axis:r.axis,totalSize:r.totalSize,position:r.position,viewportSize:r.viewportSize,containerId:r.containerId,isRtl:r.isRtl,scrollToOffset:e=>{r.scrollToOffset?.(e),i(`scrollToOffset`,e)}}));return(e,n)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,(0,t.normalizeProps)((0,t.guardReactiveProps)((0,t.unref)(a))),[(0,t.createElementVNode)(`div`,(0,t.normalizeProps)((0,t.guardReactiveProps)((0,t.unref)(o))),null,16)],16))}}),de={key:0,class:`virtual-scroll-scrollbar-container`,"aria-hidden":`true`},fe={key:0,class:`virtual-scroll-debug-info`},B=.95,V=.1,pe=((e,t)=>{let n=e.__vccOpts||e;for(let[e,r]of t)n[e]=r;return n})((0,t.defineComponent)({__name:`VirtualScroll`,props:{containerTag:{default:`div`},wrapperTag:{default:`div`},itemTag:{default:`div`},stickyHeader:{type:Boolean,default:!1},stickyFooter:{type:Boolean,default:!1},virtualScrollbar:{type:Boolean,default:!1},items:{},itemSize:{},direction:{default:`vertical`},bufferBefore:{default:5},bufferAfter:{default:5},container:{},ssrRange:{},columnCount:{default:0},columnWidth:{},scrollPaddingStart:{default:0},scrollPaddingEnd:{default:0},gap:{default:0},columnGap:{default:0},stickyIndices:{default:()=>[]},loadDistance:{default:200},loading:{type:Boolean,default:!1},restoreScrollOnPrepend:{type:Boolean,default:!1},initialScrollIndex:{},initialScrollAlign:{},defaultItemSize:{},defaultColumnWidth:{},debug:{type:Boolean,default:!1},role:{},ariaLabel:{},ariaLabelledby:{},itemRole:{default:void 0},snap:{type:[Boolean,String]}},emits:[`scroll`,`load`,`visibleRangeChange`],setup(e,{expose:n,emit:r}){let i=e,a=r,s=(0,t.useSlots)(),c=(0,t.ref)(null),l=(0,t.ref)(null),u=(0,t.ref)(null),p=(0,t.ref)(null),m=new Map,h=(0,t.useId)(),g=(0,t.computed)(()=>`vs-container-${h}`),_=[I(),L(),R(),ce({onLoad:e=>a(`load`,e)}),le(),ue()],v=(0,t.ref)(0),y=(0,t.ref)(0),b=(0,t.computed)(()=>i.container===void 0?c.value:i.container),x=(0,t.computed)(()=>{let e=b.value;return e===c.value||o(e)}),S=(0,t.computed)(()=>(i.items.length,{items:i.items,itemSize:i.itemSize,direction:i.direction,bufferBefore:i.bufferBefore,bufferAfter:i.bufferAfter,container:b.value,hostElement:l.value,hostRef:c.value,ssrRange:i.ssrRange,columnCount:i.columnCount,columnWidth:i.columnWidth,scrollPaddingStart:{x:d(i.scrollPaddingStart,i.direction),y:f(i.scrollPaddingStart,i.direction)},scrollPaddingEnd:{x:d(i.scrollPaddingEnd,i.direction),y:f(i.scrollPaddingEnd,i.direction)},flowPaddingStart:{x:0,y:i.stickyHeader?0:v.value},flowPaddingEnd:{x:0,y:i.stickyFooter?0:y.value},stickyStart:{x:0,y:i.stickyHeader&&x.value?v.value:0},stickyEnd:{x:0,y:i.stickyFooter&&x.value?y.value:0},gap:i.gap,columnGap:i.columnGap,stickyIndices:i.stickyIndices,loadDistance:i.loadDistance,loading:i.loading,restoreScrollOnPrepend:i.restoreScrollOnPrepend,initialScrollIndex:i.initialScrollIndex,initialScrollAlign:i.initialScrollAlign,defaultItemSize:i.defaultItemSize,defaultColumnWidth:i.defaultColumnWidth,debug:i.debug,snap:i.snap})),{isHydrated:C,isRtl:w,columnRange:E,renderedItems:D,scrollDetails:O,renderedHeight:k,renderedWidth:ee,getColumnWidth:te,getRowHeight:ne,scrollToIndex:j,scrollToOffset:M,updateHostOffset:P,updateItemSizes:ie,updateDirection:F,getItemOffset:ae,getRowOffset:pe,getColumnOffset:H,getItemSize:U,refresh:W,stopProgrammaticScroll:G,scaleX:me,scaleY:K,isWindowContainer:he,componentOffset:ge,renderedVirtualWidth:_e,renderedVirtualHeight:ve,getRowIndexAt:ye,getColIndexAt:be}=oe(S,_),xe=(0,t.computed)(()=>me.value!==1||K.value!==1),Se=(0,t.computed)(()=>he.value?!1:i.virtualScrollbar===!0||me.value!==1||K.value!==1);function Ce(e){let{displayViewportSize:t}=O.value;e>=k.value-t.height-.5?M(null,1/0):M(null,T(e,ge.y,K.value))}function q(e){let{displayViewportSize:t}=O.value;e>=ee.value-t.width-.5?M(1/0,null):M(T(e,ge.x,me.value),null)}let we=se((0,t.computed)(()=>({axis:`vertical`,totalSize:k.value,position:O.value.displayScrollOffset.y,viewportSize:O.value.displayViewportSize.height,scrollToOffset:Ce,containerId:g.value,isRtl:w.value}))),J=se((0,t.computed)(()=>({axis:`horizontal`,totalSize:ee.value,position:O.value.displayScrollOffset.x,viewportSize:O.value.displayViewportSize.width,scrollToOffset:q,containerId:g.value,isRtl:w.value}))),Te=(0,t.computed)(()=>i.direction===`both`?{...E.value,padStart:0,padEnd:0}:E.value);function Ee(){W(),F(),(0,t.nextTick)(()=>{let e=[];for(let[t,n]of m.entries())n&&e.push({index:t,inlineSize:n.offsetWidth,blockSize:n.offsetHeight,element:n});e.length>0&&ie(e)})}(0,t.watch)(O,(e,t)=>{!C.value||!e||(a(`scroll`,e),(!t||!t.range||!t.columnRange||e.range.start!==t.range.start||e.range.end!==t.range.end||e.columnRange.start!==t.columnRange.start||e.columnRange.end!==t.columnRange.end)&&a(`visibleRangeChange`,{start:e.range.start,end:e.range.end,colStart:e.columnRange.start,colEnd:e.columnRange.end}))}),(0,t.watch)(C,e=>{e&&O.value?.range&&O.value?.columnRange&&a(`visibleRangeChange`,{start:O.value.range.start,end:O.value.range.end,colStart:O.value.columnRange.start,colEnd:O.value.columnRange.end})},{once:!0});let De=typeof window>`u`?null:new ResizeObserver(P),Y=typeof window>`u`?null:new ResizeObserver(e=>{let t=[];for(let n of e){let e=n.target,r=Number(e.dataset.index),i=e.dataset.colIndex,a=n.contentRect.width,o=n.contentRect.height;n.borderBoxSize&&n.borderBoxSize.length>0?(a=n.borderBoxSize[0].inlineSize,o=n.borderBoxSize[0].blockSize):(a=e.offsetWidth,o=e.offsetHeight),i===void 0?Number.isNaN(r)||t.push({index:r,inlineSize:a,blockSize:o,element:e}):t.push({index:-1,inlineSize:a,blockSize:o,element:e})}t.length>0&&ie(t)}),Oe=typeof window>`u`?null:new ResizeObserver(()=>{v.value=u.value?.offsetHeight||0,y.value=p.value?.offsetHeight||0,P()});function ke(e,n){(0,t.watch)(e,(e,t)=>{t&&Oe?.unobserve(t),e?Oe?.observe(e):n.value=0},{immediate:!0})}ke(u,v),ke(p,y),(0,t.onMounted)(()=>{c.value&&De?.observe(c.value);for(let e of m.values())Ae(e,!0)}),(0,t.watch)([c,l],([e],[t])=>{t&&De?.unobserve(t),e&&De?.observe(e)}),(0,t.watch)([c,xe],([e,t],[n,r])=>{let i=e!==n||t!==r;n&&i&&n.removeEventListener(`wheel`,Ve),e&&i&&e.addEventListener(`wheel`,Ve,{passive:!t})},{immediate:!0});function Ae(e,t){let n=t?`observe`:`unobserve`;Y?.[n](e),i.direction===`both`&&e.children.length>0&&e.querySelectorAll(`[data-col-index]`).forEach(e=>Y?.[n](e))}function je(e,t){if(e){let n=e;m.set(t,n),Ae(n,!0)}else{let e=m.get(t);e&&(Ae(e,!1),m.delete(t))}}let Me=(0,t.ref)(!1),Ne={x:0,y:0},Pe={x:0,y:0},Fe={x:0,y:0},Ie=0,X={x:0,y:0},Le=null;function Re(){let e=()=>{let{nextVelocity:t,delta:n}=N(X,B);X.x=t.x,X.y=t.y;let{x:r,y:i}=O.value.scrollOffset;M(r+n.x,i+n.y,{behavior:`auto`}),Math.abs(X.x)>V||Math.abs(X.y)>V?Le=requestAnimationFrame(e):ze()};Le=requestAnimationFrame(e)}function ze(){Le!==null&&(cancelAnimationFrame(Le),Le=null),X={x:0,y:0}}function Be(e){G(),ze(),xe.value&&(e.pointerType===`mouse`&&e.button!==0||(Me.value=!0,Ne={x:e.clientX,y:e.clientY},Fe={x:e.clientX,y:e.clientY},Ie=performance.now(),Pe={x:O.value.scrollOffset.x,y:O.value.scrollOffset.y},e.currentTarget.setPointerCapture(e.pointerId)))}function Z(e){if(!Me.value)return;let t=performance.now(),n=t-Ie;if(n>0){let t=re(Fe,{x:e.clientX,y:e.clientY},n);X.x=X.x*.2+t.x*.8,X.y=X.y*.2+t.y*.8}Fe={x:e.clientX,y:e.clientY},Ie=t;let r=Ne.x-e.clientX,i=Ne.y-e.clientY;requestAnimationFrame(()=>{M(Pe.x+r,Pe.y+i,{behavior:`auto`})})}function Q(e){Me.value&&(Me.value=!1,e.currentTarget.releasePointerCapture(e.pointerId),(Math.abs(X.x)>V||Math.abs(X.y)>V)&&(Math.abs(X.x)>4*Math.abs(X.y)?X.y=0:Math.abs(X.y)>4*Math.abs(X.x)&&(X.x=0),Re()))}function Ve(e){let{scrollOffset:t}=O.value;if(G(),xe.value){e.preventDefault();let{deltaX:n,deltaY:r}=e;e.shiftKey&&n===0&&(n=r,r=0),M(t.x+n,t.y+r,{behavior:`auto`})}}function He(e){let{viewportSize:t,scrollOffset:n}=O.value,r=i.direction!==`vertical`,a=i.direction!==`horizontal`,o=S.value,s=o.stickyStart,c=o.stickyEnd,l=o.scrollPaddingStart,u=o.scrollPaddingEnd,d=i.snap===!0?`auto`:i.snap,f=d&&d!==`auto`?d:null,p=e=>{let r=(e?n.x:n.y)+(e?t.width:t.height)/2;return e?be(r):ye(r)},{currentIndex:m,currentEndIndex:h,currentColIndex:g,currentEndColIndex:_}=O.value,v=(e,t)=>{let n=!e,r=e?m:g,a=e?h:_,o=Math.max(1,a-r),s=e?i.items.length-1:i.columnCount?i.columnCount-1:i.items.length-1;return t?f===`center`?Math.min(s,p(n)+o):f===`end`?Math.min(s,a+o):a:f===`center`?Math.max(0,p(n)-o):f===`start`?Math.max(0,r-o):r},y=(e,r)=>{let a=!e;if(f===`center`){let t=p(a),n=a&&i.columnCount?i.columnCount-1:i.items.length-1,o=r?Math.min(n,t+1):Math.max(0,t-1);j(e?o:null,a?o:null,{align:`center`});return}if(e)if(r)if(f===`start`)j(Math.min(i.items.length-1,m+1),null,{align:`start`});else{let e=f||`end`,r=n.y+t.height-(c.y+u.y);pe(h)+ne(h)>r+1?j(h,null,{align:e}):h<i.items.length-1&&j(h+1,null,{align:e})}else if(f===`end`)j(Math.max(0,h-1),null,{align:`end`});else{let e=f||`start`,t=n.y+s.y+l.y;pe(m)<t-1?j(m,null,{align:e}):m>0&&j(m-1,null,{align:e})}else{let e=i.columnCount?i.columnCount-1:i.items.length-1;if(w.value?!r:r)if(f===`start`)j(null,Math.min(e,g+1),{align:`start`});else{let r=f||`end`,a=n.x+t.width-(c.x+u.x);(i.columnCount?H(_)+te(_):ae(_)+U(_))>a+1?j(null,_,{align:r}):_<e&&j(null,_+1,{align:r})}else if(f===`end`)j(null,Math.max(0,_-1),{align:`end`});else{let e=f||`start`,t=n.x+s.x+l.x;(i.columnCount?H(g):ae(g))<t-1?j(null,g,{align:e}):g>0&&j(null,g-1,{align:e})}}};switch(e.key){case`Home`:e.preventDefault(),G(),j(0,0,{behavior:Math.max(n.x,n.y)>10*(i.direction===`horizontal`?t.width:t.height)?`auto`:`smooth`,align:`start`});break;case`End`:{e.preventDefault(),G();let r=i.items.length-1,a=(i.columnCount||0)>0?i.columnCount-1:0,{totalSize:o}=O.value,s=Math.max(o.width-n.x-t.width,o.height-n.y-t.height)>10*(i.direction===`horizontal`?t.width:t.height)?`auto`:`smooth`;i.direction===`both`?j(r,a,{behavior:s,align:`end`}):j(i.direction===`vertical`?r:0,i.direction===`horizontal`?r:0,{behavior:s,align:`end`});break}case`ArrowUp`:e.preventDefault(),G(),a&&y(!0,!1);break;case`ArrowDown`:e.preventDefault(),G(),a&&y(!0,!0);break;case`ArrowLeft`:e.preventDefault(),G(),r&&y(!1,!1);break;case`ArrowRight`:e.preventDefault(),G(),r&&y(!1,!0);break;case`PageUp`:e.preventDefault(),G(),i.direction===`horizontal`?j(null,v(!1,!1),{align:f||`end`}):j(v(!0,!1),null,{align:f||`end`});break;case`PageDown`:e.preventDefault(),G(),i.direction===`horizontal`?j(null,v(!1,!0),{align:f||`start`}):j(v(!0,!0),null,{align:f||`start`});break}}(0,t.onUnmounted)(()=>{De?.disconnect(),Y?.disconnect(),Oe?.disconnect()});let Ue=(0,t.computed)(()=>{let e={...i.direction===`vertical`?{}:{whiteSpace:`nowrap`}};return(Se.value||!he.value)&&(e.overflow=`auto`),xe.value&&(e.touchAction=`none`),he.value?e:i.containerTag===`table`?{...e,display:`block`,minInlineSize:i.direction===`vertical`?`100%`:`auto`}:e});function We(e,t,n,r,i,a){return t<=r?null:{axis:e,positionPercent:a.positionPercent.value,viewportPercent:a.viewportPercent.value,thumbSizePercent:a.thumbSizePercent.value,thumbPositionPercent:a.thumbPositionPercent.value,trackProps:a.trackProps.value,thumbProps:a.thumbProps.value,scrollbarProps:{axis:e,totalSize:t,position:n,viewportSize:r,scrollToOffset:i,containerId:g.value,isRtl:w.value,ariaLabel:`${e===`vertical`?`Vertical`:`Horizontal`} scroll`},isDragging:a.isDragging.value}}let Ge=(0,t.computed)(()=>{if(i.direction===`horizontal`)return null;let{displayViewportSize:e,displayScrollOffset:t}=O.value;return We(`vertical`,k.value,t.y,e.height,Ce,we)}),Ke=(0,t.computed)(()=>{if(i.direction===`vertical`)return null;let{displayViewportSize:e,displayScrollOffset:t}=O.value;return We(`horizontal`,ee.value,t.x,e.width,q,J)}),qe=(0,t.computed)(()=>{let e=i.direction===`horizontal`,t=i.direction===`vertical`,n=i.direction===`both`,r={inlineSize:t?`100%`:`${_e.value}px`,blockSize:e?`100%`:`${ve.value}px`};return C.value||(r.display=`flex`,r.flexDirection=e?`row`:`column`,(e||n)&&i.columnGap&&(r.columnGap=`${i.columnGap}px`),(t||n)&&i.gap&&(r.rowGap=`${i.gap}px`)),r}),Je=(0,t.computed)(()=>{let e=i.direction===`horizontal`;return{display:e?`inline-block`:`block`,...e?{blockSize:`100%`,verticalAlign:`top`}:{inlineSize:`100%`}}}),Ye=(0,t.computed)(()=>({inlineSize:i.direction===`vertical`?`1px`:`${_e.value}px`,blockSize:i.direction===`horizontal`?`1px`:`${ve.value}px`}));function Xe(e){let t=A({containerTag:i.containerTag||`div`,direction:i.direction,isHydrated:C.value,item:e,itemSize:i.itemSize,paddingStartX:S.value.scrollPaddingStart.x,paddingStartY:S.value.scrollPaddingStart.y,isRtl:w.value});return!C.value&&i.direction===`both`&&(t.display=`flex`,i.columnGap&&(t.columnGap=`${i.columnGap}px`)),t}let Ze=(0,t.computed)(()=>i.debug),$=(0,t.computed)(()=>i.containerTag===`table`),Qe=(0,t.computed)(()=>$.value?`thead`:`div`),$e=(0,t.computed)(()=>$.value?`tfoot`:`div`),et=(0,t.computed)(()=>i.role?i.role:$.value?null:i.direction===`both`?`grid`:`list`),tt=(0,t.computed)(()=>et.value===`grid`||$.value),nt=(0,t.computed)(()=>$.value?null:i.ariaLabel||i.ariaLabelledby?`region`:`none`),rt=(0,t.computed)(()=>$.value?null:et.value),it=(0,t.computed)(()=>{if(tt.value)return`row`;let e=et.value;return e===`tree`?`treeitem`:e===`listbox`?`option`:e===`menu`?`menuitem`:`listitem`}),at=(0,t.computed)(()=>i.itemRole==null?it.value:i.itemRole),ot=(0,t.computed)(()=>i.role===`grid`||!i.role&&i.direction===`both`?`gridcell`:$.value?`cell`:null),st=(0,t.computed)(()=>{let e=at.value;return e==null||e!==`none`&&e!==`presentation`}),ct=(0,t.computed)(()=>({"aria-label":i.ariaLabel,"aria-labelledby":i.ariaLabelledby,"aria-busy":i.loading?`true`:void 0})),lt=(0,t.computed)(()=>{let e={},t=et.value;return t&&[`grid`,`tree`,`listbox`,`menu`,`tablist`].includes(t)&&(e[`aria-orientation`]=i.direction===`both`?void 0:i.direction),tt.value&&(e[`aria-rowcount`]=i.items.length,i.columnCount>0&&(e[`aria-colcount`]=i.columnCount)),e});function ut(e){let t={};tt.value?t[`aria-rowindex`]=e+1:(t[`aria-setsize`]=i.items.length,t[`aria-posinset`]=e+1);let n=at.value;return n!==null&&(t.role=n===`none`||n===`presentation`?it.value:n),t}function dt(e){let t=ot.value;if(!t)return{};let n={role:t};return tt.value&&(n[`aria-colindex`]=e+1),n}return n({...(0,t.toRefs)(i),scrollDetails:O,columnRange:E,getColumnWidth:te,getRowHeight:ne,getCellAriaProps:dt,getItemAriaProps:ut,getRowOffset:pe,getColumnOffset:H,getItemOffset:ae,getItemSize:U,isTable:$,itemTag:(0,t.computed)(()=>i.itemTag||`div`),getRowIndexAt:ye,getColIndexAt:be,scrollToIndex:j,scrollToOffset:M,refresh:Ee,stopProgrammaticScroll:()=>{G(),ze()},updateDirection:F,isRtl:w,isHydrated:C,scaleX:me,scaleY:K,renderedWidth:ee,renderedHeight:k,componentOffset:ge,scrollbarPropsVertical:Ge,scrollbarPropsHorizontal:Ke}),(n,r)=>((0,t.openBlock)(),(0,t.createBlock)((0,t.resolveDynamicComponent)(e.containerTag),(0,t.mergeProps)({id:g.value,ref_key:`hostRef`,ref:c,class:[`virtual-scroll-container`,[`virtual-scroll--${e.direction}`,{"virtual-scroll--hydrated":(0,t.unref)(C),"virtual-scroll--window":(0,t.unref)(he),"virtual-scroll--table":$.value,"virtual-scroll--hide-scrollbar":Se.value}]],style:Ue.value,tabindex:`0`,role:$.value?void 0:nt.value},$.value?{...ct.value,...lt.value}:ct.value,{onKeydown:He,onPointerdown:Be,onPointermove:Z,onPointerup:Q,onPointercancel:Q}),{default:(0,t.withCtx)(()=>[Se.value?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,de,[(0,t.createElementVNode)(`div`,{class:`virtual-scroll-scrollbar-viewport`,style:(0,t.normalizeStyle)({inlineSize:`${(0,t.unref)(O).displayViewportSize.width}px`,blockSize:`${(0,t.unref)(O).displayViewportSize.height}px`,"--vsi-scrollbar-has-cross-gap":e.direction===`both`?1:0})},[s.scrollbar&&Ge.value?(0,t.renderSlot)(n.$slots,`scrollbar`,(0,t.normalizeProps)((0,t.mergeProps)({key:0},Ge.value)),void 0,!0):Ge.value?((0,t.openBlock)(),(0,t.createBlock)(z,(0,t.normalizeProps)((0,t.mergeProps)({key:1},Ge.value.scrollbarProps)),null,16)):(0,t.createCommentVNode)(``,!0),s.scrollbar&&Ke.value?(0,t.renderSlot)(n.$slots,`scrollbar`,(0,t.normalizeProps)((0,t.mergeProps)({key:2},Ke.value)),void 0,!0):Ke.value?((0,t.openBlock)(),(0,t.createBlock)(z,(0,t.normalizeProps)((0,t.mergeProps)({key:3},Ke.value.scrollbarProps)),null,16)):(0,t.createCommentVNode)(``,!0)],4)])):(0,t.createCommentVNode)(``,!0),s.header?((0,t.openBlock)(),(0,t.createBlock)((0,t.resolveDynamicComponent)(Qe.value),{key:1,ref_key:`headerRef`,ref:u,class:(0,t.normalizeClass)([`virtual-scroll-header`,{"virtual-scroll--sticky":e.stickyHeader}]),role:$.value?void 0:`none`},{default:(0,t.withCtx)(()=>[(0,t.renderSlot)(n.$slots,`header`,{},void 0,!0)]),_:3},8,[`class`,`role`])):(0,t.createCommentVNode)(``,!0),((0,t.openBlock)(),(0,t.createBlock)((0,t.resolveDynamicComponent)(e.wrapperTag),(0,t.mergeProps)({ref_key:`wrapperRef`,ref:l,class:`virtual-scroll-wrapper`,style:qe.value,role:$.value?void 0:rt.value},$.value?{}:lt.value),{default:(0,t.withCtx)(()=>[$.value?((0,t.openBlock)(),(0,t.createBlock)((0,t.resolveDynamicComponent)(e.itemTag),{key:0,class:`virtual-scroll-spacer`,style:(0,t.normalizeStyle)(Ye.value)},{default:(0,t.withCtx)(()=>[...r[0]||=[(0,t.createElementVNode)(`td`,{style:{padding:`0`,border:`none`,"block-size":`inherit`}},null,-1)]]),_:1},8,[`style`])):(0,t.createCommentVNode)(``,!0),((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)((0,t.unref)(D),r=>((0,t.openBlock)(),(0,t.createBlock)((0,t.resolveDynamicComponent)(e.itemTag),(0,t.mergeProps)({key:r.index,ref_for:!0,ref:e=>je(e,r.index),"data-index":r.index,class:[`virtual-scroll-item`,{"virtual-scroll--sticky":r.isStickyActive,"virtual-scroll--debug":Ze.value}],style:Xe(r)},{ref_for:!0},st.value?ut(r.index):{role:`none`}),{default:(0,t.withCtx)(()=>[(0,t.renderSlot)(n.$slots,`item`,{item:r.item,index:r.index,getItemAriaProps:ut,columnRange:Te.value,getColumnWidth:(0,t.unref)(te),getCellAriaProps:dt,gap:i.gap,columnGap:i.columnGap,isSticky:r.isSticky,isStickyActive:r.isStickyActive,isStickyActiveX:r.isStickyActiveX,isStickyActiveY:r.isStickyActiveY,offset:r.offset},void 0,!0),Ze.value?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,fe,` #`+(0,t.toDisplayString)(r.index)+` (`+(0,t.toDisplayString)(Math.round(r.offset.x))+`, `+(0,t.toDisplayString)(Math.round(r.offset.y))+`) `,1)):(0,t.createCommentVNode)(``,!0)]),_:2},1040,[`data-index`,`class`,`style`]))),128))]),_:3},16,[`style`,`role`])),e.loading&&s.loading?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:2,class:`virtual-scroll-loading`,style:(0,t.normalizeStyle)(Je.value),"aria-live":`polite`,"aria-atomic":`true`},[(0,t.renderSlot)(n.$slots,`loading`,{},void 0,!0)],4)):(0,t.createCommentVNode)(``,!0),s.footer?((0,t.openBlock)(),(0,t.createBlock)((0,t.resolveDynamicComponent)($e.value),{key:3,ref_key:`footerRef`,ref:p,class:(0,t.normalizeClass)([`virtual-scroll-footer`,{"virtual-scroll--sticky":e.stickyFooter}]),role:$.value?void 0:`none`},{default:(0,t.withCtx)(()=>[(0,t.renderSlot)(n.$slots,`footer`,{},void 0,!0)]),_:3},8,[`class`,`role`])):(0,t.createCommentVNode)(``,!0)]),_:3},16,[`id`,`class`,`style`,`role`]))}}),[[`__scopeId`,`data-v-a75851a5`]]);e.BROWSER_MAX_SIZE=r,e.DEFAULT_BUFFER=5,e.DEFAULT_COLUMN_WIDTH=100,e.DEFAULT_ITEM_SIZE=40,e.EMPTY_SCROLL_DETAILS=n,e.FenwickTree=F,e.VirtualScroll=pe,e.VirtualScrollbar=z,e.calculateAxisSize=_,e.calculateColumnRange=k,e.calculateIndexAt=ie,e.calculateInertiaStep=N,e.calculateInstantaneousVelocity=re,e.calculateItemPosition=te,e.calculateItemStyle=A,e.calculateOffsetAt=y,e.calculatePrependCount=j,e.calculateRange=O,e.calculateRangeSize=v,e.calculateRenderedSize=w,e.calculateSSROffsets=ne,e.calculateScale=C,e.calculateScrollTarget=D,e.calculateStickyItem=ee,e.calculateTotalSize=M,e.displayToVirtual=T,e.findPrevStickyIndex=h,e.getPaddingX=d,e.getPaddingY=f,e.isBody=a,e.isElement=s,e.isItemVisible=S,e.isScrollToIndexOptions=u,e.isScrollableElement=c,e.isWindow=i,e.isWindowLike=o,e.resolveSnap=P,e.scrollTo=l,e.useVirtualScroll=oe,e.useVirtualScrollSizes=ae,e.useVirtualScrollbar=se,e.virtualToDisplay=E});
|
|
2
2
|
//# sourceMappingURL=index.js.map
|