@glhrmoura/vue-virtualize 0.2.1 → 0.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +72 -63
- package/dist/index.mjs.map +1 -1
- package/dist/utils/layout.d.ts +3 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -54,7 +54,7 @@ const users = shallowRef(
|
|
|
54
54
|
</template>
|
|
55
55
|
```
|
|
56
56
|
|
|
57
|
-
`estimateSize` defaults to `48`.
|
|
57
|
+
`estimateSize` defaults to `48`. A number locks a fixed item size (`count × size`, best for huge lists). Pass a function when rows have variable height so the list can measure mounted elements without clipping. Container scroll needs a `height` (unless `window-scroll`).
|
|
58
58
|
|
|
59
59
|
#### Horizontal list
|
|
60
60
|
|
package/dist/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("vue");function ee(e){return!Number.isFinite(e)||e<0?0:e}class he{sizes=new Map;divergent=!1;get(t){return this.sizes.get(t)}set(t,i,r){this.sizes.set(t,i),r!==null&&Math.abs(i-r)>=.5&&(this.divergent=!0)}get hasDivergent(){return this.divergent}clear(){this.sizes.clear(),this.divergent=!1}trim(t,i){let r=!1;for(const o of this.sizes.keys())o>=t&&(this.sizes.delete(o),r=!0);if(r&&(this.divergent=!1,i!==null)){for(const o of this.sizes.values())if(Math.abs(o-i)>=.5){this.divergent=!0;return}}}shift(t){if(!t)return;const i=new Map;for(const[r,o]of this.sizes){const l=r+t;l>=0&&i.set(l,o)}this.sizes.clear();for(const[r,o]of i)this.sizes.set(r,o)}}function ge(e,t,i){return Math.min(i,Math.max(t,e))}const Fe=16777216;function N(e,t,i){const r=Math.max(0,t-Math.max(0,i));return ge(Number.isFinite(e)?e:0,0,r)}function D(e,t){const i=Math.max(0,Number.isFinite(e)?e:0),r=Math.min(i,Fe);return t===void 0||!Number.isFinite(t)||t<=0?r:Math.min(r,t)}function Se(e,t,i,r){const o=Math.max(0,t-Math.max(0,r)),l=Math.max(0,i-Math.max(0,r));return o<=0?0:l<=0||l>=o?N(e,t,r):Math.max(0,e)/l*o}function ve(e,t,i,r){const o=Math.max(0,t-Math.max(0,r)),l=Math.max(0,i-Math.max(0,r));return l<=0?0:o<=0||l>=o?N(e,t,r):N(e,t,r)/o*l}function Ae(e,t,i){if(e<=0)return 0;let r=0,o=e-1,l=e-1;for(;r<=o;){const d=r+o>>>1;i(d)>t?(l=d,o=d-1):r=d+1}return l}function Ke(e,t,i){if(e<=0)return 0;let r=0,o=e-1,l=0;for(;r<=o;){const d=r+o>>>1;i(d)<t?(l=d,r=d+1):o=d-1}return l}function we(e){const t=e.start+e.size;let i=e.align;if(i==="auto"){const r=e.current+e.viewport;if(e.start>=e.current&&t<=r)return e.current;i=e.start<e.current?"start":"end"}return i==="center"?e.start-(e.viewport-e.size)/2:i==="end"?t-e.viewport:e.start}class ye{count=0;estimateSize=()=>0;overscan=0;gap=0;paddingStart=0;paddingEnd=0;lanes=1;itemSize=null;viewportSize=0;scrollOffset=0;getItemKey=t=>t;measurements=new he;built=0;offsets=[];laneCursor=[];laneEnd=[];setOptions(t){const i=Math.max(1,Math.floor(t.lanes??1)),r=t.gap??0,o=t.paddingStart??0,l=t.paddingEnd??0,d=Math.max(0,Math.floor(t.count)),M=t.itemSize===void 0||t.itemSize===null?null:ee(t.itemSize),E=this.itemSize,x=i!==this.lanes||r!==this.gap||o!==this.paddingStart||l!==this.paddingEnd||t.estimateSize!==this.estimateSize||M!==this.itemSize;this.count=d,this.lanes=i,this.gap=r,this.paddingStart=o,this.paddingEnd=l,this.overscan=Math.max(0,Math.floor(t.overscan??0)),this.estimateSize=t.estimateSize,this.itemSize=M,this.getItemKey=t.getItemKey??(c=>c),t.viewportSize!==void 0&&(this.viewportSize=Math.max(0,t.viewportSize)),M!==E&&this.measurements.clear(),this.measurements.trim(this.count,this.itemSize),(x||this.built>this.count)&&this.resetGeometry()}setScrollOffset(t){this.scrollOffset=Number.isFinite(t)?t:0}getScrollOffset(){return this.scrollOffset}getViewportSize(){return this.viewportSize}measure(t,i){if(t<0||t>=this.count)return!1;const r=ee(i),o=this.measurements.get(t);if(o!==void 0&&Math.abs(o-r)<.5)return!1;const l=this.getItemSize(t);return this.measurements.set(t,r,this.itemSize),Math.abs(l-r)<.5?!1:(this.resetGeometry(),!0)}clearMeasurements(){this.measurements.clear(),this.resetGeometry()}shiftMeasurements(t){t&&(this.measurements.shift(t),this.resetGeometry())}getItemSize(t){const i=this.measurements.get(t);return i!==void 0?i:this.itemSize!==null?this.itemSize:ee(this.estimateSize(t))}getItemOffset(t){if(t<=0||this.count<=0)return this.paddingStart;const i=Math.min(t,this.count-1);if(this.usesFixedPath()){const r=Math.floor(i/this.lanes);return this.paddingStart+r*((this.itemSize??0)+this.gap)}return this.ensure(i),this.offsets[i]??this.paddingStart}getTotalSize(){if(this.count<=0)return this.paddingStart+this.paddingEnd;if(this.usesFixedPath()){let i=this.paddingStart;const r=this.itemSize??0;for(let o=0;o<this.lanes&&o<this.count;o+=1){const l=this.laneLength(o),d=this.paddingStart+l*r+Math.max(0,l-1)*this.gap;d>i&&(i=d)}return i+this.paddingEnd}this.ensure(this.count-1);let t=this.paddingStart;for(let i=0;i<this.lanes&&i<this.count;i+=1){const r=this.laneEnd[i]??this.paddingStart;r>t&&(t=r)}return t+this.paddingEnd}getVirtualItems(){if(this.count<=0||this.viewportSize<=0)return[];const t=N(this.scrollOffset,this.getTotalSize(),this.viewportSize),i=t+this.viewportSize,r=[];for(let o=0;o<this.lanes;o+=1){const l=this.laneLength(o);if(l<=0)continue;const d=Ae(l,t,c=>{const S=this.ordinalIndex(o,c);return this.getItemOffset(S)+this.getItemSize(S)}),M=Ke(l,i,c=>this.getItemOffset(this.ordinalIndex(o,c))),E=Math.max(0,Math.min(d,M)-this.overscan),x=Math.min(l-1,Math.max(d,M)+this.overscan);for(let c=E;c<=x;c+=1){const S=this.ordinalIndex(o,c),R=this.getItemOffset(S),T=this.getItemSize(S);r.push({index:S,key:this.getItemKey(S),start:R,size:T,end:R+T,lane:o})}}return r.sort((o,l)=>o.index-l.index),r}getOffsetForIndex(t,i="auto"){if(this.count<=0)return 0;const r=ge(t,0,this.count-1),o=this.getItemOffset(r),l=this.getItemSize(r),d=we({start:o,size:l,viewport:this.viewportSize,current:this.scrollOffset,align:i});return N(d,this.getTotalSize(),this.viewportSize)}usesFixedPath(){return this.itemSize!==null&&!this.measurements.hasDivergent}ordinalIndex(t,i){return t+i*this.lanes}laneLength(t){return t<0||t>=this.lanes||t>=this.count?0:Math.floor((this.count-t-1)/this.lanes)+1}ensure(t){if(t<this.built)return;const i=Math.min(t,this.count-1);for(;this.built<=i;){const r=this.built%this.lanes,o=this.laneCursor[r]??this.paddingStart;this.offsets[this.built]=o;const l=o+this.getItemSize(this.built);this.laneEnd[r]=l,this.laneCursor[r]=l+this.gap,this.built+=1}}resetGeometry(){this.built=0,this.offsets=[],this.laneCursor=Array.from({length:this.lanes},()=>this.paddingStart),this.laneEnd=Array.from({length:this.lanes},()=>this.paddingStart)}}function P(){return typeof window<"u"&&typeof document<"u"}function ze(e){return typeof Element>"u"?null:e instanceof Element?e:null}function je(e,t,i,r){if(r==="smooth"&&typeof e.scrollTo=="function"){e.scrollTo({top:i?e.scrollTop:t,left:i?t:e.scrollLeft,behavior:r});return}i?e.scrollLeft=t:e.scrollTop=t}function Ge(e,t,i){if(typeof window>"u"||typeof document>"u")return;const r=document.scrollingElement;if(i==="smooth"){if(r&&typeof r.scrollTo=="function"){r.scrollTo({top:t?r.scrollTop:e,left:t?e:r.scrollLeft,behavior:i});return}window.scrollTo({top:t?window.scrollY:e,left:t?e:window.scrollX,behavior:i});return}if(r){t?r.scrollLeft=e:r.scrollTop=e;return}t?window.scrollTo(e,window.scrollY):window.scrollTo(window.scrollX,e)}function fe(e,t){return t?e.scrollLeft:e.scrollTop}function De(e){if(typeof window>"u"||typeof document>"u")return 0;const t=document.scrollingElement;return t?e?t.scrollLeft:t.scrollTop:e?window.scrollX:window.scrollY}function Ne(e,t){return t?e.clientWidth:e.clientHeight}function We(e){return typeof window>"u"?0:e?window.innerWidth:window.innerHeight}function He(e,t){return t?e.scrollWidth:e.scrollHeight}function Pe(e){return typeof requestAnimationFrame=="function"?requestAnimationFrame(e):setTimeout(e,0)}function _e(e){e&&(typeof cancelAnimationFrame=="function"?cancelAnimationFrame(e):clearTimeout(e))}function Xe(e,t){if(e.length!==t.length)return!1;for(let i=0;i<e.length;i+=1){const r=e[i],o=t[i];if(!r||!o||r.index!==o.index||r.start!==o.start||r.size!==o.size||r.end!==o.end||r.lane!==o.lane||r.key!==o.key)return!1}return!0}function te(e){const t=new ye,i=n.shallowRef([]),r=n.ref(0),o=n.ref(0),l=n.ref(0),d=n.ref(!1),M=s=>e.estimateSize(s);let E=null,x=!1,c=null,S=null,R=0,T=0,m=0,b=n.toValue(e.revision),v=n.toValue(e.count),w=e.getItemKey?.(0)??0,y=!1,h="";const I=new Map,V=new Map,K=[];function _(){const s=n.toValue(e.container);return typeof HTMLElement>"u"?null:s instanceof HTMLElement?s:null}function C(){return n.toValue(e.horizontal)??!1}function u(){return n.toValue(e.windowScroll)??!1}function O(){return n.toValue(e.reverse)??!1}function p(){const s=n.toValue(e.initialRect);return s?C()?s.width:s.height:0}function F(s){const a=s.getBoundingClientRect(),f=n.toValue(e.scrollMargin)??0,g=C()?-a.left:-a.top;return Math.max(0,g-f)}function Y(s,a){return u()||!s?D(a):D(a,He(s,C()))}function be(s){return u()?!s||!P()?0:F(s):s?fe(s,C()):0}function se(s){return u()?We(C()):s?Ne(s,C()):0}function Ve(s,a,f){if(u()){if(!s||!P())return;const g=De(C()),z=F(s);Ge(g+(a-z),C(),f);return}s&&je(s,a,C(),f)}function q(s,a,f){return Se(be(s),a,Y(s,a),f)}function W(s,a,f,g,z){Ve(s,ve(a,f,Y(s,f),g),z)}function Ee(){const s=e.onVisibleRangeChange;if(!s)return;const a=i.value,f=n.toValue(e.count),g=a.length?{startIndex:a[0]?.index??0,endIndex:a[a.length-1]?.index??-1,count:f}:{startIndex:0,endIndex:-1,count:f},z=`${g.startIndex}:${g.endIndex}:${g.count}`;z!==h&&(h=z,s(g))}function L(){const s=n.toValue(e.revision);Object.is(s,b)||(b=s,t.clearMeasurements());const a=n.toValue(e.count),f=e.getItemKey?.(0)??0,g=O()&&v>0&&a>v&&f!==w,z=O()&&v>0&&a>v&&f===w,k=g||z?a-v:0,$=O()&&t.getViewportSize()>0&&t.getScrollOffset()+t.getViewportSize()>=t.getTotalSize()-64;g&&k>0&&t.shiftMeasurements(k);const j=_(),ce=se(j),Be=n.toValue(e.viewportInset)??0,G=Math.max(0,(ce>0?ce:p())-Be),Le=n.toValue(e.itemSize);if(t.setOptions({count:a,estimateSize:M,overscan:(n.toValue(e.overscan)??8)+m,gap:n.toValue(e.gap)??0,paddingStart:n.toValue(e.paddingStart)??0,paddingEnd:n.toValue(e.paddingEnd)??0,lanes:n.toValue(e.lanes)??1,itemSize:Le??null,getItemKey:e.getItemKey,viewportSize:G}),g&&k>0){let Z=0;const $e=n.toValue(e.gap)??0;for(let J=0;J<k;J+=1)Z+=t.getItemSize(J),J<k-1&&(Z+=$e);Z>0&&t.setScrollOffset(t.getScrollOffset()+Z)}const A=t.getTotalSize(),H=Math.max(0,A-G);let U=!1;O()&&!y&&A>0&&G>0?(y=!0,t.setScrollOffset(H),W(j,H,A,G,"auto"),U=!0):z&&$?(t.setScrollOffset(H),W(j,H,A,G,"auto"),U=!0):g&&k>0&&(W(j,t.getScrollOffset(),A,G,"auto"),U=!0),!U&&u()&&j?t.setScrollOffset(N(q(j,A,G),A,G)):t.getScrollOffset()>H&&(t.setScrollOffset(H),W(j,H,A,G,"auto")),v=a,w=f;const ue=t.getVirtualItems();Xe(i.value,ue)||(i.value=ue),r.value!==A&&(r.value=A);const re=t.getScrollOffset();o.value!==re&&(o.value=re);const de=j&&!u()?re-fe(j,C()):0;l.value!==de&&(l.value=de),Ee()}function Me(){d.value=!1,m=0;for(const[s,a]of I)K.push({element:s,index:a});le(),L(),e.onScrollEnd?.()}function Oe(){d.value=!0,!(typeof window>"u")&&(window.clearTimeout(T),T=window.setTimeout(Me,120))}function B(){const s=_();if(!u()&&!s)return;Oe();const a=t.getViewportSize(),f=t.getTotalSize(),g=q(s,f,a),z=t.getScrollOffset(),k=Math.max(1,n.toValue(e.itemSize)??48);m=Math.min(24,Math.ceil(Math.abs(g-z)/k)),t.setScrollOffset(g),L()}function ne(){E&&(E.removeEventListener("scroll",B),E=null),x&&typeof window<"u"&&(window.removeEventListener("scroll",B,!0),window.removeEventListener("scroll",B),document.removeEventListener("scroll",B,!0),document.documentElement.removeEventListener("scroll",B),document.body?.removeEventListener("scroll",B),document.scrollingElement?.removeEventListener("scroll",B),window.removeEventListener("resize",L),x=!1),c?.disconnect(),c=null}function ke(){const s=_();if(u()){if(x&&E===s||(ne(),E=s,!P()))return;x=!0;const z=t.getViewportSize(),k=t.getTotalSize();t.getScrollOffset()>0?W(s,t.getScrollOffset(),k,z,"auto"):s&&t.setScrollOffset(q(s,k,z)),window.addEventListener("scroll",B,{passive:!0,capture:!0}),document.addEventListener("scroll",B,{passive:!0,capture:!0}),document.documentElement.addEventListener("scroll",B,{passive:!0}),document.body?.addEventListener("scroll",B,{passive:!0});const $=document.scrollingElement;$&&$!==document.documentElement&&$!==document.body&&$.addEventListener("scroll",B,{passive:!0}),window.addEventListener("resize",L),s&&typeof ResizeObserver<"u"&&(c=new ResizeObserver(()=>L()),c.observe(s));return}if(s===E&&!x||(ne(),E=s,!s||!P()))return;const f=t.getViewportSize(),g=t.getTotalSize();t.getScrollOffset()>0?W(s,t.getScrollOffset(),g,f,"auto"):t.setScrollOffset(q(s,g,f)),s.addEventListener("scroll",B,{passive:!0}),typeof ResizeObserver<"u"&&(c=new ResizeObserver(()=>L()),c.observe(s))}function Ie(){return!P()||typeof ResizeObserver>"u"?null:(S||(S=new ResizeObserver(s=>{const a=C();let f=!1;if(!d.value){for(const g of s){const z=I.get(g.target);if(z===void 0)continue;const k=g.borderBoxSize?.[0],$=Math.round(a?k?.inlineSize??g.contentRect.width:k?.blockSize??g.contentRect.height);$>0&&t.measure(z,$)&&(f=!0)}f&&L()}})),S)}function le(){if(R=0,d.value)return;const s=K.splice(0,K.length),a=C();let f=!1;for(const g of s){if(!g.element.isConnected)continue;const z=g.element.getBoundingClientRect(),k=Math.round(a?z.width:z.height);k>0&&t.measure(g.index,k)&&(f=!0)}f&&L()}function Re(s,a){const f=ze(s),g=Ie(),z=V.get(a);z&&z!==f&&(g?.unobserve(z),I.delete(z),V.delete(a)),f&&(V.set(a,f),I.set(f,a),g?.observe(f),K.push({element:f,index:a}),!(d.value||R)&&(R=Pe(le)))}function ae(s,a="auto"){const f=_(),g=se(f),z=g>0?g:t.getViewportSize(),k=t.getTotalSize(),$=N(s,k,z);t.setScrollOffset($),W(f,$,k,z,a),L()}function Ce(s,a){const f=t.getOffsetForIndex(s,a?.align??"auto");ae(f,a?.behavior??"auto")}function Te(s,a){t.measure(s,a)&&L()}return L(),n.watch(()=>[n.toValue(e.count),n.toValue(e.overscan),n.toValue(e.gap),n.toValue(e.paddingStart),n.toValue(e.paddingEnd),n.toValue(e.lanes),n.toValue(e.horizontal),n.toValue(e.itemSize),n.toValue(e.viewportInset),n.toValue(e.revision),n.toValue(e.container),n.toValue(e.windowScroll),n.toValue(e.scrollMargin),n.toValue(e.reverse),n.toValue(e.initialRect)?.width,n.toValue(e.initialRect)?.height],()=>{ke(),L()},{flush:"post",immediate:!0}),n.onBeforeUnmount(()=>{ne(),S?.disconnect(),_e(R),typeof window<"u"&&window.clearTimeout(T),I.clear(),V.clear(),K.length=0}),{virtualItems:n.computed(()=>i.value),totalSize:n.computed(()=>r.value),scrollOffset:n.computed(()=>o.value),scrollAdjust:n.computed(()=>l.value),isScrolling:n.computed(()=>d.value),scrollToIndex:Ce,scrollToOffset:ae,measure:Te,measureElement:Re}}function Ye(e,t,i){return typeof e=="function"?e(t,i):typeof e=="number"?e:48}function ie(e){const t=te({count:()=>n.toValue(e.items).length,estimateSize:r=>{const o=n.toValue(e.items);return Ye(e.estimateSize,r,o[r])},getItemKey:r=>{const l=n.toValue(e.items)[r];return e.getItemKey?.(l,r)??r},itemSize:()=>e.itemSize!==void 0?n.toValue(e.itemSize):typeof e.estimateSize=="number"?e.estimateSize:void 0,container:e.container,horizontal:e.horizontal,overscan:e.overscan,gap:e.gap,paddingStart:e.paddingStart,paddingEnd:e.paddingEnd,initialRect:e.initialRect,viewportInset:e.viewportInset,revision:e.revision,windowScroll:e.windowScroll,scrollMargin:e.scrollMargin,reverse:e.reverse,onVisibleRangeChange:e.onVisibleRangeChange,onScrollEnd:e.onScrollEnd});return{virtualItems:n.computed(()=>{const r=n.toValue(e.items);return t.virtualItems.value.map(o=>{const l=r[o.index];return{...o,item:l,key:e.getItemKey?.(l,o.index)??o.key}})}),totalSize:t.totalSize,scrollOffset:t.scrollOffset,scrollAdjust:t.scrollAdjust,isScrolling:t.isScrolling,scrollToIndex:t.scrollToIndex,scrollToOffset:t.scrollToOffset,measure:t.measure,measureElement:t.measureElement}}function me(e,t,i){return typeof e=="function"?e(t):typeof e=="number"?e:i}function pe(e){const t=n.computed(()=>Math.max(1,Math.floor(n.toValue(e.columnCount)||1))),i=n.computed(()=>Math.ceil(n.toValue(e.items).length/t.value)),r=new Map,o=te({count:()=>i.value,estimateSize:m=>me(n.toValue(e.estimateRowSize),m,48),itemSize:()=>{const m=n.toValue(e.estimateRowSize);return typeof m=="number"?m:void 0},overscan:()=>n.toValue(e.overscanRows)??n.toValue(e.overscan)??2,gap:()=>n.toValue(e.rowGap)??0,horizontal:!1,container:e.container,initialRect:e.initialRect,revision:e.revision,windowScroll:e.windowScroll,scrollMargin:e.scrollMargin,onVisibleRangeChange:e.onVisibleRangeChange,onScrollEnd:e.onScrollEnd}),l=te({count:()=>t.value,estimateSize:m=>me(n.toValue(e.estimateColumnSize),m,160),itemSize:()=>{const m=n.toValue(e.estimateColumnSize);return typeof m=="number"?m:void 0},overscan:()=>n.toValue(e.overscanColumns)??n.toValue(e.overscan)??1,gap:()=>n.toValue(e.columnGap)??0,horizontal:!0,container:e.container,initialRect:e.initialRect,revision:e.revision,windowScroll:e.windowScroll,scrollMargin:e.scrollMargin}),d=n.computed(()=>{const m=n.toValue(e.items),b=t.value,v=[];for(const w of o.virtualItems.value)for(const y of l.virtualItems.value){const h=w.index*b+y.index;if(h>=m.length)continue;const I=m[h];v.push({index:h,key:e.getItemKey?.(I,h)??h,item:I,row:w,column:y})}return v});function M(m,b){const v=n.toValue(e.items);if(!v.length)return;const w=Math.min(Math.max(m,0),v.length-1),y=t.value;o.scrollToIndex(Math.floor(w/y),b),l.scrollToIndex(w%y,b)}function E(m,b="auto"){m.top!==void 0&&o.scrollToOffset(m.top,b),m.left!==void 0&&l.scrollToOffset(m.left,b)}function x(m,b){const v=Math.max(r.get(m)??0,b);v<=0||v===r.get(m)||(r.set(m,v),o.measure(m,v))}let c=null;const S=new Map;function R(){return!P()||typeof ResizeObserver>"u"?null:(c||(c=new ResizeObserver(m=>{for(const b of m){const v=S.get(b.target);if(v===void 0)continue;const y=b.borderBoxSize?.[0]?.blockSize??b.contentRect.height;y>0&&x(v,y)}})),c)}function T(m,b){const v=ze(m),w=R();if(!v)return;S.set(v,b),w?.observe(v);const y=v.getBoundingClientRect().height;y>0&&x(b,y)}return n.onBeforeUnmount(()=>{c?.disconnect(),S.clear()}),{virtualRows:o.virtualItems,virtualColumns:l.virtualItems,virtualCells:d,totalHeight:o.totalSize,totalWidth:l.totalSize,scrollAdjustX:l.scrollAdjust,scrollAdjustY:o.scrollAdjust,scrollToIndex:M,scrollToOffset:E,measureRow:x,measureRowElement:T,measureColumn:l.measure}}function xe(e){const t=ie({items:e.rows,estimateSize:e.estimateRowSize,container:e.container,overscan:e.overscan,getItemKey:e.getRowKey,initialRect:e.initialRect,viewportInset:e.viewportInset,revision:e.revision,itemSize:e.itemSize,windowScroll:e.windowScroll,scrollMargin:e.scrollMargin,reverse:e.reverse,onVisibleRangeChange:e.onVisibleRangeChange,onScrollEnd:e.onScrollEnd}),i=n.computed(()=>{const l=n.toValue(e.columns);let d=0;const M=l.map(c=>{const S=c.width??c.minWidth??160,R={...c,start:d,size:S,end:d+S,pinOffset:0,stickyStyle:{}};return d+=S,R});let E=0;for(const c of M)c.pin==="start"&&(c.pinOffset=E,c.stickyStyle={position:"sticky",left:`${E}px`,zIndex:2},E+=c.size);let x=0;for(let c=M.length-1;c>=0;c-=1){const S=M[c];!S||S.pin!=="end"||(S.pinOffset=x,S.stickyStyle={position:"sticky",right:`${x}px`,zIndex:2},x+=S.size)}return M}),r=n.computed(()=>{const l=i.value;return l.length?l[l.length-1]?.end??0:0});return{virtualRows:n.computed(()=>t.virtualItems.value),columns:i,totalHeight:t.totalSize,totalWidth:r,scrollOffset:t.scrollOffset,scrollAdjust:t.scrollAdjust,isScrolling:t.isScrolling,scrollToIndex:t.scrollToIndex,scrollToOffset:t.scrollToOffset,measure:t.measure,measureElement:t.measureElement}}function Q(e){if(typeof e=="number"&&Number.isFinite(e))return`${e}px`;if(typeof e=="string"&&e.trim())return e}function X(e){if(typeof e=="number"&&Number.isFinite(e))return e;if(typeof e!="string")return 0;const t=/^(-?\d+(?:\.\d+)?)px$/.exec(e.trim());if(!t?.[1])return 0;const i=Number(t[1]);return Number.isFinite(i)?i:0}function oe(e){return e.windowScroll?{position:"relative",width:Q(e.width)??"100%",height:Q(e.height),overflowAnchor:"none"}:{overflow:"auto",position:"relative",height:Q(e.height)??(e.horizontal?"100%":void 0),width:Q(e.width)??(e.horizontal?void 0:"100%"),overflowAnchor:"none"}}function qe(e,t){const i=D(e);return{position:"relative",width:t?`${i}px`:"100%",height:t?"100%":`${i}px`}}function Ue(e,t,i){return{position:"absolute",top:0,left:0,width:t?i===void 0?void 0:`${i}px`:"100%",height:t?"100%":i===void 0?void 0:`${i}px`,transform:t?`translateX(${e}px)`:`translateY(${e}px)`,contain:"layout style",boxSizing:"border-box",overflow:"hidden"}}const Ze=n.defineComponent({__name:"VirtualList",props:{items:{},estimateSize:{type:[Number,Function],default:48},height:{},width:{},horizontal:{type:Boolean,default:!1},overscan:{default:8},gap:{default:0},paddingStart:{default:0},paddingEnd:{default:0},getItemKey:{},tag:{default:"div"},itemTag:{default:"div"},itemAttrs:{},revision:{},windowScroll:{type:Boolean,default:!1},scrollMargin:{default:0},reverse:{type:Boolean,default:!1}},emits:["visibleRangeChange","scrollEnd"],setup(e,{expose:t,emit:i}){const r=e,o=i,l=n.ref(null),{virtualItems:d,totalSize:M,scrollAdjust:E,scrollToIndex:x,scrollToOffset:c,measure:S,measureElement:R}=ie({items:()=>r.items,estimateSize:(w,y)=>{const h=r.estimateSize;return typeof h=="number"?h:h(w,y)},itemSize:()=>typeof r.estimateSize=="number"?r.estimateSize:void 0,container:l,horizontal:()=>r.horizontal,overscan:()=>r.overscan,gap:()=>r.gap,paddingStart:()=>r.paddingStart,paddingEnd:()=>r.paddingEnd,getItemKey:(w,y)=>r.getItemKey?.(w,y)??y,initialRect:()=>({width:X(r.width),height:X(r.height)}),revision:()=>r.revision,windowScroll:()=>r.windowScroll,scrollMargin:()=>r.scrollMargin,reverse:()=>r.reverse,onVisibleRangeChange:w=>o("visibleRangeChange",w),onScrollEnd:()=>o("scrollEnd")}),T=n.computed(()=>oe({height:r.height,width:r.width,horizontal:r.horizontal,windowScroll:r.windowScroll})),m=n.computed(()=>qe(M.value,r.horizontal));function b(w,y){return Ue(w,r.horizontal,y)}function v(w){return y=>{R(y,w)}}return t({scrollToIndex:x,scrollToOffset:c,measure:S}),(w,y)=>(n.openBlock(),n.createBlock(n.resolveDynamicComponent(e.tag),{ref_key:"container",ref:l,"data-virtual-container":"",role:"list",style:n.normalizeStyle(T.value)},{default:n.withCtx(()=>[e.items.length?(n.openBlock(),n.createElementBlock("div",{key:1,"data-virtual-spacer":"",style:n.normalizeStyle(m.value)},[(n.openBlock(!0),n.createElementBlock(n.Fragment,null,n.renderList(n.unref(d),h=>(n.openBlock(),n.createBlock(n.resolveDynamicComponent(e.itemTag),n.mergeProps({key:h.key,ref_for:!0,ref:v(h.index),role:"listitem","data-index":h.index,"data-key":String(h.key),"aria-setsize":e.items.length,"aria-posinset":h.index+1,style:b(h.start-n.unref(E),h.size)},{ref_for:!0},e.itemAttrs),{default:n.withCtx(()=>[n.renderSlot(w.$slots,"default",{item:h.item,index:h.index,start:h.start,size:h.size,end:h.end})]),_:2},1040,["data-index","data-key","aria-setsize","aria-posinset","style"]))),128))],4)):n.renderSlot(w.$slots,"empty",{},void 0,void 0,0)]),_:3},8,["style"]))}}),Je=["data-index","data-key"],Qe=n.defineComponent({__name:"VirtualGrid",props:{items:{},columnCount:{default:1},estimateRowSize:{type:[Number,Function],default:48},estimateColumnSize:{type:[Number,Function],default:160},height:{},width:{},overscan:{default:2},overscanRows:{},overscanColumns:{},rowGap:{default:0},columnGap:{default:0},getItemKey:{},tag:{default:"div"},itemAttrs:{},revision:{},windowScroll:{type:Boolean,default:!1},scrollMargin:{default:0}},emits:["visibleRangeChange","scrollEnd"],setup(e,{expose:t,emit:i}){const r=e,o=i,l=n.ref(null),{virtualCells:d,totalWidth:M,totalHeight:E,scrollAdjustX:x,scrollAdjustY:c,scrollToIndex:S,scrollToOffset:R,measureRow:T,measureRowElement:m}=pe({items:()=>r.items,columnCount:()=>r.columnCount,estimateRowSize:()=>r.estimateRowSize,estimateColumnSize:()=>r.estimateColumnSize,container:l,overscan:()=>r.overscan,overscanRows:()=>r.overscanRows,overscanColumns:()=>r.overscanColumns,rowGap:()=>r.rowGap,columnGap:()=>r.columnGap,getItemKey:(h,I)=>r.getItemKey?.(h,I)??I,initialRect:()=>({width:X(r.width),height:X(r.height)}),revision:()=>r.revision,windowScroll:()=>r.windowScroll,scrollMargin:()=>r.scrollMargin,onVisibleRangeChange:h=>o("visibleRangeChange",h),onScrollEnd:()=>o("scrollEnd")}),b=n.computed(()=>oe({height:r.height,width:r.width,horizontal:!1,windowScroll:r.windowScroll})),v=n.computed(()=>({position:"relative",width:`${D(M.value)}px`,height:`${D(E.value)}px`}));function w(h){return I=>{m(I,h)}}function y(h,I,V,K){return{position:"absolute",top:0,left:0,width:`${I}px`,height:`${K}px`,transform:`translate(${h}px, ${V}px)`,contain:"layout style",boxSizing:"border-box",overflow:"hidden"}}return t({scrollToIndex:S,scrollToOffset:R,measureRow:T}),(h,I)=>(n.openBlock(),n.createBlock(n.resolveDynamicComponent(e.tag),{ref_key:"container",ref:l,"data-virtual-container":"",role:"grid",style:n.normalizeStyle(b.value)},{default:n.withCtx(()=>[e.items.length?(n.openBlock(),n.createElementBlock("div",{key:1,"data-virtual-spacer":"",style:n.normalizeStyle(v.value)},[(n.openBlock(!0),n.createElementBlock(n.Fragment,null,n.renderList(n.unref(d),V=>(n.openBlock(),n.createElementBlock("div",n.mergeProps({key:V.key,ref_for:!0,ref:w(V.row.index),role:"gridcell","data-index":V.index,"data-key":String(V.key),style:y(V.column.start-n.unref(x),V.column.size,V.row.start-n.unref(c),V.row.size)},{ref_for:!0},e.itemAttrs),[n.renderSlot(h.$slots,"default",{item:V.item,index:V.index,rowIndex:V.row.index,columnIndex:V.column.index,row:V.row,column:V.column})],16,Je))),128))],4)):n.renderSlot(h.$slots,"empty",{},void 0,void 0,0)]),_:3},8,["style"]))}}),et=["data-index","data-key","aria-rowindex"],tt=n.defineComponent({__name:"VirtualTable",props:{rows:{},columns:{},estimateRowSize:{type:[Number,Function],default:44},height:{},width:{},overscan:{default:8},getRowKey:{},stickyHeader:{type:Boolean,default:!0},tag:{default:"div"},rowAttrs:{},revision:{},windowScroll:{type:Boolean,default:!1},scrollMargin:{default:0},reverse:{type:Boolean,default:!1}},emits:["visibleRangeChange","scrollEnd"],setup(e,{expose:t,emit:i}){const r=e,o=i,l=n.ref(null),d=n.ref(null),M=n.ref(0),{virtualRows:E,columns:x,totalWidth:c,totalHeight:S,scrollAdjust:R,scrollToIndex:T,scrollToOffset:m,measure:b,measureElement:v}=xe({rows:()=>r.rows,columns:()=>r.columns,estimateRowSize:(u,O)=>{const p=r.estimateRowSize;return typeof p=="number"?p:p(u,O)},container:l,overscan:()=>r.overscan,getRowKey:(u,O)=>r.getRowKey?.(u,O)??O,initialRect:()=>({width:X(r.width),height:X(r.height)}),viewportInset:M,revision:()=>r.revision,itemSize:()=>typeof r.estimateRowSize=="number"?r.estimateRowSize:void 0,windowScroll:()=>r.windowScroll,scrollMargin:()=>r.scrollMargin,reverse:()=>r.reverse,onVisibleRangeChange:u=>o("visibleRangeChange",u),onScrollEnd:()=>o("scrollEnd")});n.watch(d,(u,O,p)=>{if(O===u&&!u||!u||!P()||typeof ResizeObserver>"u")return;const F=()=>{M.value=u.getBoundingClientRect().height},Y=new ResizeObserver(F);Y.observe(u),F(),p(()=>Y.disconnect())});const w=n.computed(()=>oe({height:r.height,width:r.width,horizontal:!1,windowScroll:r.windowScroll})),y=n.computed(()=>({minWidth:`${c.value}px`})),h=n.computed(()=>({position:r.stickyHeader?"sticky":"relative",top:r.stickyHeader?"0px":void 0,zIndex:3,display:"flex",width:`${c.value}px`})),I=n.computed(()=>({position:"relative",height:`${D(S.value)}px`,width:`${D(c.value)}px`}));function V(u){return{width:`${u.size}px`,minWidth:`${u.size}px`,flex:"0 0 auto",textAlign:u.align??"left",...u.stickyStyle,zIndex:u.pin?r.stickyHeader?4:2:u.stickyStyle.zIndex}}function K(u,O){return{position:"absolute",top:0,left:0,width:"100%",height:`${O}px`,display:"flex",transform:`translateY(${u}px)`,contain:"layout style",boxSizing:"border-box",overflow:"hidden"}}function _(u){return O=>{v(O,u)}}function C(u,O,p){return O.accessor?O.accessor(u,p):u&&typeof u=="object"&&O.id in u?u[O.id]:""}return t({scrollToIndex:T,scrollToOffset:m,measure:b}),(u,O)=>(n.openBlock(),n.createBlock(n.resolveDynamicComponent(e.tag),{ref_key:"container",ref:l,"data-virtual-container":"",role:"table",style:n.normalizeStyle(w.value)},{default:n.withCtx(()=>[n.createElementVNode("div",{style:n.normalizeStyle(y.value)},[n.createElementVNode("div",{ref_key:"header",ref:d,role:"row",style:n.normalizeStyle(h.value)},[n.renderSlot(u.$slots,"header",{columns:n.unref(x)},()=>[(n.openBlock(!0),n.createElementBlock(n.Fragment,null,n.renderList(n.unref(x),p=>(n.openBlock(),n.createElementBlock("div",{key:p.id,role:"columnheader",style:n.normalizeStyle(V(p))},n.toDisplayString(p.header),5))),128))])],4),e.rows.length?(n.openBlock(),n.createElementBlock("div",{key:1,"data-virtual-spacer":"",role:"rowgroup",style:n.normalizeStyle(I.value)},[(n.openBlock(!0),n.createElementBlock(n.Fragment,null,n.renderList(n.unref(E),p=>(n.openBlock(),n.createElementBlock("div",n.mergeProps({key:p.key,ref_for:!0,ref:_(p.index),role:"row","data-index":p.index,"data-key":String(p.key),"aria-rowindex":p.index+1,style:K(p.start-n.unref(R),p.size)},{ref_for:!0},e.rowAttrs),[(n.openBlock(!0),n.createElementBlock(n.Fragment,null,n.renderList(n.unref(x),F=>(n.openBlock(),n.createElementBlock("div",{key:F.id,role:"cell",style:n.normalizeStyle(V(F))},[n.renderSlot(u.$slots,"cell",{row:p.item,column:F,rowIndex:p.index,value:C(p.item,F,p.index)},()=>[n.createTextVNode(n.toDisplayString(C(p.item,F,p.index)),1)])],4))),128))],16,et))),128))],4)):n.renderSlot(u.$slots,"empty",{},void 0,void 0,0)],4)]),_:3},8,["style"]))}});exports.MeasurementCache=he;exports.VirtualGrid=Qe;exports.VirtualList=Ze;exports.VirtualTable=tt;exports.Virtualizer=ye;exports.clampScrollOffset=N;exports.mapDomOffsetToVirtual=Se;exports.mapVirtualOffsetToDom=ve;exports.normalizeSize=ee;exports.resolveScrollOffset=we;exports.scrollContentSize=D;exports.useVirtualGrid=pe;exports.useVirtualList=ie;exports.useVirtualTable=xe;exports.useVirtualizer=te;
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("vue");function ee(e){return!Number.isFinite(e)||e<0?0:e}class he{sizes=new Map;divergent=!1;get(t){return this.sizes.get(t)}set(t,i,r){this.sizes.set(t,i),r!==null&&Math.abs(i-r)>=.5&&(this.divergent=!0)}get hasDivergent(){return this.divergent}clear(){this.sizes.clear(),this.divergent=!1}trim(t,i){let r=!1;for(const o of this.sizes.keys())o>=t&&(this.sizes.delete(o),r=!0);if(r&&(this.divergent=!1,i!==null)){for(const o of this.sizes.values())if(Math.abs(o-i)>=.5){this.divergent=!0;return}}}shift(t){if(!t)return;const i=new Map;for(const[r,o]of this.sizes){const l=r+t;l>=0&&i.set(l,o)}this.sizes.clear();for(const[r,o]of i)this.sizes.set(r,o)}}function ge(e,t,i){return Math.min(i,Math.max(t,e))}const Fe=16777216;function N(e,t,i){const r=Math.max(0,t-Math.max(0,i));return ge(Number.isFinite(e)?e:0,0,r)}function D(e,t){const i=Math.max(0,Number.isFinite(e)?e:0),r=Math.min(i,Fe);return t===void 0||!Number.isFinite(t)||t<=0?r:Math.min(r,t)}function Se(e,t,i,r){const o=Math.max(0,t-Math.max(0,r)),l=Math.max(0,i-Math.max(0,r));return o<=0?0:l<=0||l>=o?N(e,t,r):Math.max(0,e)/l*o}function ve(e,t,i,r){const o=Math.max(0,t-Math.max(0,r)),l=Math.max(0,i-Math.max(0,r));return l<=0?0:o<=0||l>=o?N(e,t,r):N(e,t,r)/o*l}function Ae(e,t,i){if(e<=0)return 0;let r=0,o=e-1,l=e-1;for(;r<=o;){const d=r+o>>>1;i(d)>t?(l=d,o=d-1):r=d+1}return l}function Ke(e,t,i){if(e<=0)return 0;let r=0,o=e-1,l=0;for(;r<=o;){const d=r+o>>>1;i(d)<t?(l=d,r=d+1):o=d-1}return l}function we(e){const t=e.start+e.size;let i=e.align;if(i==="auto"){const r=e.current+e.viewport;if(e.start>=e.current&&t<=r)return e.current;i=e.start<e.current?"start":"end"}return i==="center"?e.start-(e.viewport-e.size)/2:i==="end"?t-e.viewport:e.start}class ye{count=0;estimateSize=()=>0;overscan=0;gap=0;paddingStart=0;paddingEnd=0;lanes=1;itemSize=null;viewportSize=0;scrollOffset=0;getItemKey=t=>t;measurements=new he;built=0;offsets=[];laneCursor=[];laneEnd=[];setOptions(t){const i=Math.max(1,Math.floor(t.lanes??1)),r=t.gap??0,o=t.paddingStart??0,l=t.paddingEnd??0,d=Math.max(0,Math.floor(t.count)),M=t.itemSize===void 0||t.itemSize===null?null:ee(t.itemSize),E=this.itemSize,x=i!==this.lanes||r!==this.gap||o!==this.paddingStart||l!==this.paddingEnd||t.estimateSize!==this.estimateSize||M!==this.itemSize;this.count=d,this.lanes=i,this.gap=r,this.paddingStart=o,this.paddingEnd=l,this.overscan=Math.max(0,Math.floor(t.overscan??0)),this.estimateSize=t.estimateSize,this.itemSize=M,this.getItemKey=t.getItemKey??(c=>c),t.viewportSize!==void 0&&(this.viewportSize=Math.max(0,t.viewportSize)),M!==E&&this.measurements.clear(),this.measurements.trim(this.count,this.itemSize),(x||this.built>this.count)&&this.resetGeometry()}setScrollOffset(t){this.scrollOffset=Number.isFinite(t)?t:0}getScrollOffset(){return this.scrollOffset}getViewportSize(){return this.viewportSize}measure(t,i){if(t<0||t>=this.count)return!1;const r=ee(i),o=this.measurements.get(t);if(o!==void 0&&Math.abs(o-r)<.5)return!1;const l=this.getItemSize(t);return this.measurements.set(t,r,this.itemSize),Math.abs(l-r)<.5?!1:(this.resetGeometry(),!0)}clearMeasurements(){this.measurements.clear(),this.resetGeometry()}shiftMeasurements(t){t&&(this.measurements.shift(t),this.resetGeometry())}getItemSize(t){const i=this.measurements.get(t);return i!==void 0?i:this.itemSize!==null?this.itemSize:ee(this.estimateSize(t))}getItemOffset(t){if(t<=0||this.count<=0)return this.paddingStart;const i=Math.min(t,this.count-1);if(this.usesFixedPath()){const r=Math.floor(i/this.lanes);return this.paddingStart+r*((this.itemSize??0)+this.gap)}return this.ensure(i),this.offsets[i]??this.paddingStart}getTotalSize(){if(this.count<=0)return this.paddingStart+this.paddingEnd;if(this.usesFixedPath()){let i=this.paddingStart;const r=this.itemSize??0;for(let o=0;o<this.lanes&&o<this.count;o+=1){const l=this.laneLength(o),d=this.paddingStart+l*r+Math.max(0,l-1)*this.gap;d>i&&(i=d)}return i+this.paddingEnd}this.ensure(this.count-1);let t=this.paddingStart;for(let i=0;i<this.lanes&&i<this.count;i+=1){const r=this.laneEnd[i]??this.paddingStart;r>t&&(t=r)}return t+this.paddingEnd}getVirtualItems(){if(this.count<=0||this.viewportSize<=0)return[];const t=N(this.scrollOffset,this.getTotalSize(),this.viewportSize),i=t+this.viewportSize,r=[];for(let o=0;o<this.lanes;o+=1){const l=this.laneLength(o);if(l<=0)continue;const d=Ae(l,t,c=>{const S=this.ordinalIndex(o,c);return this.getItemOffset(S)+this.getItemSize(S)}),M=Ke(l,i,c=>this.getItemOffset(this.ordinalIndex(o,c))),E=Math.max(0,Math.min(d,M)-this.overscan),x=Math.min(l-1,Math.max(d,M)+this.overscan);for(let c=E;c<=x;c+=1){const S=this.ordinalIndex(o,c),R=this.getItemOffset(S),T=this.getItemSize(S);r.push({index:S,key:this.getItemKey(S),start:R,size:T,end:R+T,lane:o})}}return r.sort((o,l)=>o.index-l.index),r}getOffsetForIndex(t,i="auto"){if(this.count<=0)return 0;const r=ge(t,0,this.count-1),o=this.getItemOffset(r),l=this.getItemSize(r),d=we({start:o,size:l,viewport:this.viewportSize,current:this.scrollOffset,align:i});return N(d,this.getTotalSize(),this.viewportSize)}usesFixedPath(){return this.itemSize!==null&&!this.measurements.hasDivergent}ordinalIndex(t,i){return t+i*this.lanes}laneLength(t){return t<0||t>=this.lanes||t>=this.count?0:Math.floor((this.count-t-1)/this.lanes)+1}ensure(t){if(t<this.built)return;const i=Math.min(t,this.count-1);for(;this.built<=i;){const r=this.built%this.lanes,o=this.laneCursor[r]??this.paddingStart;this.offsets[this.built]=o;const l=o+this.getItemSize(this.built);this.laneEnd[r]=l,this.laneCursor[r]=l+this.gap,this.built+=1}}resetGeometry(){this.built=0,this.offsets=[],this.laneCursor=Array.from({length:this.lanes},()=>this.paddingStart),this.laneEnd=Array.from({length:this.lanes},()=>this.paddingStart)}}function P(){return typeof window<"u"&&typeof document<"u"}function ze(e){return typeof Element>"u"?null:e instanceof Element?e:null}function je(e,t,i,r){if(r==="smooth"&&typeof e.scrollTo=="function"){e.scrollTo({top:i?e.scrollTop:t,left:i?t:e.scrollLeft,behavior:r});return}i?e.scrollLeft=t:e.scrollTop=t}function Ge(e,t,i){if(typeof window>"u"||typeof document>"u")return;const r=document.scrollingElement;if(i==="smooth"){if(r&&typeof r.scrollTo=="function"){r.scrollTo({top:t?r.scrollTop:e,left:t?e:r.scrollLeft,behavior:i});return}window.scrollTo({top:t?window.scrollY:e,left:t?e:window.scrollX,behavior:i});return}if(r){t?r.scrollLeft=e:r.scrollTop=e;return}t?window.scrollTo(e,window.scrollY):window.scrollTo(window.scrollX,e)}function fe(e,t){return t?e.scrollLeft:e.scrollTop}function De(e){if(typeof window>"u"||typeof document>"u")return 0;const t=document.scrollingElement;return t?e?t.scrollLeft:t.scrollTop:e?window.scrollX:window.scrollY}function Ne(e,t){return t?e.clientWidth:e.clientHeight}function We(e){return typeof window>"u"?0:e?window.innerWidth:window.innerHeight}function He(e,t){return t?e.scrollWidth:e.scrollHeight}function Pe(e){return typeof requestAnimationFrame=="function"?requestAnimationFrame(e):setTimeout(e,0)}function _e(e){e&&(typeof cancelAnimationFrame=="function"?cancelAnimationFrame(e):clearTimeout(e))}function Xe(e,t){if(e.length!==t.length)return!1;for(let i=0;i<e.length;i+=1){const r=e[i],o=t[i];if(!r||!o||r.index!==o.index||r.start!==o.start||r.size!==o.size||r.end!==o.end||r.lane!==o.lane||r.key!==o.key)return!1}return!0}function te(e){const t=new ye,i=n.shallowRef([]),r=n.ref(0),o=n.ref(0),l=n.ref(0),d=n.ref(!1),M=s=>e.estimateSize(s);let E=null,x=!1,c=null,S=null,R=0,T=0,m=0,b=n.toValue(e.revision),v=n.toValue(e.count),w=e.getItemKey?.(0)??0,y=!1,h="";const I=new Map,V=new Map,K=[];function _(){const s=n.toValue(e.container);return typeof HTMLElement>"u"?null:s instanceof HTMLElement?s:null}function C(){return n.toValue(e.horizontal)??!1}function u(){return n.toValue(e.windowScroll)??!1}function O(){return n.toValue(e.reverse)??!1}function p(){const s=n.toValue(e.initialRect);return s?C()?s.width:s.height:0}function F(s){const a=s.getBoundingClientRect(),f=n.toValue(e.scrollMargin)??0,g=C()?-a.left:-a.top;return Math.max(0,g-f)}function Y(s,a){return u()||!s?D(a):D(a,He(s,C()))}function be(s){return u()?!s||!P()?0:F(s):s?fe(s,C()):0}function se(s){return u()?We(C()):s?Ne(s,C()):0}function Ve(s,a,f){if(u()){if(!s||!P())return;const g=De(C()),z=F(s);Ge(g+(a-z),C(),f);return}s&&je(s,a,C(),f)}function q(s,a,f){return Se(be(s),a,Y(s,a),f)}function W(s,a,f,g,z){Ve(s,ve(a,f,Y(s,f),g),z)}function Ee(){const s=e.onVisibleRangeChange;if(!s)return;const a=i.value,f=n.toValue(e.count),g=a.length?{startIndex:a[0]?.index??0,endIndex:a[a.length-1]?.index??-1,count:f}:{startIndex:0,endIndex:-1,count:f},z=`${g.startIndex}:${g.endIndex}:${g.count}`;z!==h&&(h=z,s(g))}function L(){const s=n.toValue(e.revision);Object.is(s,b)||(b=s,t.clearMeasurements());const a=n.toValue(e.count),f=e.getItemKey?.(0)??0,g=O()&&v>0&&a>v&&f!==w,z=O()&&v>0&&a>v&&f===w,k=g||z?a-v:0,$=O()&&t.getViewportSize()>0&&t.getScrollOffset()+t.getViewportSize()>=t.getTotalSize()-64;g&&k>0&&t.shiftMeasurements(k);const j=_(),ce=se(j),Be=n.toValue(e.viewportInset)??0,G=Math.max(0,(ce>0?ce:p())-Be),Le=n.toValue(e.itemSize);if(t.setOptions({count:a,estimateSize:M,overscan:(n.toValue(e.overscan)??8)+m,gap:n.toValue(e.gap)??0,paddingStart:n.toValue(e.paddingStart)??0,paddingEnd:n.toValue(e.paddingEnd)??0,lanes:n.toValue(e.lanes)??1,itemSize:Le??null,getItemKey:e.getItemKey,viewportSize:G}),g&&k>0){let Z=0;const $e=n.toValue(e.gap)??0;for(let J=0;J<k;J+=1)Z+=t.getItemSize(J),J<k-1&&(Z+=$e);Z>0&&t.setScrollOffset(t.getScrollOffset()+Z)}const A=t.getTotalSize(),H=Math.max(0,A-G);let U=!1;O()&&!y&&A>0&&G>0?(y=!0,t.setScrollOffset(H),W(j,H,A,G,"auto"),U=!0):z&&$?(t.setScrollOffset(H),W(j,H,A,G,"auto"),U=!0):g&&k>0&&(W(j,t.getScrollOffset(),A,G,"auto"),U=!0),!U&&u()&&j?t.setScrollOffset(N(q(j,A,G),A,G)):t.getScrollOffset()>H&&(t.setScrollOffset(H),W(j,H,A,G,"auto")),v=a,w=f;const ue=t.getVirtualItems();Xe(i.value,ue)||(i.value=ue),r.value!==A&&(r.value=A);const re=t.getScrollOffset();o.value!==re&&(o.value=re);const de=j&&!u()?re-fe(j,C()):0;l.value!==de&&(l.value=de),Ee()}function Me(){d.value=!1,m=0;for(const[s,a]of I)K.push({element:s,index:a});le(),L(),e.onScrollEnd?.()}function Oe(){d.value=!0,!(typeof window>"u")&&(window.clearTimeout(T),T=window.setTimeout(Me,120))}function B(){const s=_();if(!u()&&!s)return;Oe();const a=t.getViewportSize(),f=t.getTotalSize(),g=q(s,f,a),z=t.getScrollOffset(),k=Math.max(1,n.toValue(e.itemSize)??48);m=Math.min(24,Math.ceil(Math.abs(g-z)/k)),t.setScrollOffset(g),L()}function ne(){E&&(E.removeEventListener("scroll",B),E=null),x&&typeof window<"u"&&(window.removeEventListener("scroll",B,!0),window.removeEventListener("scroll",B),document.removeEventListener("scroll",B,!0),document.documentElement.removeEventListener("scroll",B),document.body?.removeEventListener("scroll",B),document.scrollingElement?.removeEventListener("scroll",B),window.removeEventListener("resize",L),x=!1),c?.disconnect(),c=null}function ke(){const s=_();if(u()){if(x&&E===s||(ne(),E=s,!P()))return;x=!0;const z=t.getViewportSize(),k=t.getTotalSize();t.getScrollOffset()>0?W(s,t.getScrollOffset(),k,z,"auto"):s&&t.setScrollOffset(q(s,k,z)),window.addEventListener("scroll",B,{passive:!0,capture:!0}),document.addEventListener("scroll",B,{passive:!0,capture:!0}),document.documentElement.addEventListener("scroll",B,{passive:!0}),document.body?.addEventListener("scroll",B,{passive:!0});const $=document.scrollingElement;$&&$!==document.documentElement&&$!==document.body&&$.addEventListener("scroll",B,{passive:!0}),window.addEventListener("resize",L),s&&typeof ResizeObserver<"u"&&(c=new ResizeObserver(()=>L()),c.observe(s));return}if(s===E&&!x||(ne(),E=s,!s||!P()))return;const f=t.getViewportSize(),g=t.getTotalSize();t.getScrollOffset()>0?W(s,t.getScrollOffset(),g,f,"auto"):t.setScrollOffset(q(s,g,f)),s.addEventListener("scroll",B,{passive:!0}),typeof ResizeObserver<"u"&&(c=new ResizeObserver(()=>L()),c.observe(s))}function Ie(){return!P()||typeof ResizeObserver>"u"?null:(S||(S=new ResizeObserver(s=>{const a=C();let f=!1;if(!d.value){for(const g of s){const z=I.get(g.target);if(z===void 0)continue;const k=g.borderBoxSize?.[0],$=Math.round(a?k?.inlineSize??g.contentRect.width:k?.blockSize??g.contentRect.height);$>0&&t.measure(z,$)&&(f=!0)}f&&L()}})),S)}function le(){if(R=0,d.value)return;const s=K.splice(0,K.length),a=C();let f=!1;for(const g of s){if(!g.element.isConnected)continue;const z=g.element.getBoundingClientRect(),k=Math.round(a?z.width:z.height);k>0&&t.measure(g.index,k)&&(f=!0)}f&&L()}function Re(s,a){const f=ze(s),g=Ie(),z=V.get(a);z&&z!==f&&(g?.unobserve(z),I.delete(z),V.delete(a)),f&&(V.set(a,f),I.set(f,a),g?.observe(f),K.push({element:f,index:a}),!(d.value||R)&&(R=Pe(le)))}function ae(s,a="auto"){const f=_(),g=se(f),z=g>0?g:t.getViewportSize(),k=t.getTotalSize(),$=N(s,k,z);t.setScrollOffset($),W(f,$,k,z,a),L()}function Ce(s,a){const f=t.getOffsetForIndex(s,a?.align??"auto");ae(f,a?.behavior??"auto")}function Te(s,a){t.measure(s,a)&&L()}return L(),n.watch(()=>[n.toValue(e.count),n.toValue(e.overscan),n.toValue(e.gap),n.toValue(e.paddingStart),n.toValue(e.paddingEnd),n.toValue(e.lanes),n.toValue(e.horizontal),n.toValue(e.itemSize),n.toValue(e.viewportInset),n.toValue(e.revision),n.toValue(e.container),n.toValue(e.windowScroll),n.toValue(e.scrollMargin),n.toValue(e.reverse),n.toValue(e.initialRect)?.width,n.toValue(e.initialRect)?.height],()=>{ke(),L()},{flush:"post",immediate:!0}),n.onBeforeUnmount(()=>{ne(),S?.disconnect(),_e(R),typeof window<"u"&&window.clearTimeout(T),I.clear(),V.clear(),K.length=0}),{virtualItems:n.computed(()=>i.value),totalSize:n.computed(()=>r.value),scrollOffset:n.computed(()=>o.value),scrollAdjust:n.computed(()=>l.value),isScrolling:n.computed(()=>d.value),scrollToIndex:Ce,scrollToOffset:ae,measure:Te,measureElement:Re}}function Ye(e,t,i){return typeof e=="function"?e(t,i):typeof e=="number"?e:48}function ie(e){const t=te({count:()=>n.toValue(e.items).length,estimateSize:r=>{const o=n.toValue(e.items);return Ye(e.estimateSize,r,o[r])},getItemKey:r=>{const l=n.toValue(e.items)[r];return e.getItemKey?.(l,r)??r},itemSize:()=>e.itemSize!==void 0?n.toValue(e.itemSize):typeof e.estimateSize=="number"?e.estimateSize:void 0,container:e.container,horizontal:e.horizontal,overscan:e.overscan,gap:e.gap,paddingStart:e.paddingStart,paddingEnd:e.paddingEnd,initialRect:e.initialRect,viewportInset:e.viewportInset,revision:e.revision,windowScroll:e.windowScroll,scrollMargin:e.scrollMargin,reverse:e.reverse,onVisibleRangeChange:e.onVisibleRangeChange,onScrollEnd:e.onScrollEnd});return{virtualItems:n.computed(()=>{const r=n.toValue(e.items);return t.virtualItems.value.map(o=>{const l=r[o.index];return{...o,item:l,key:e.getItemKey?.(l,o.index)??o.key}})}),totalSize:t.totalSize,scrollOffset:t.scrollOffset,scrollAdjust:t.scrollAdjust,isScrolling:t.isScrolling,scrollToIndex:t.scrollToIndex,scrollToOffset:t.scrollToOffset,measure:t.measure,measureElement:t.measureElement}}function me(e,t,i){return typeof e=="function"?e(t):typeof e=="number"?e:i}function pe(e){const t=n.computed(()=>Math.max(1,Math.floor(n.toValue(e.columnCount)||1))),i=n.computed(()=>Math.ceil(n.toValue(e.items).length/t.value)),r=new Map,o=te({count:()=>i.value,estimateSize:m=>me(n.toValue(e.estimateRowSize),m,48),itemSize:()=>{const m=n.toValue(e.estimateRowSize);return typeof m=="number"?m:void 0},overscan:()=>n.toValue(e.overscanRows)??n.toValue(e.overscan)??2,gap:()=>n.toValue(e.rowGap)??0,horizontal:!1,container:e.container,initialRect:e.initialRect,revision:e.revision,windowScroll:e.windowScroll,scrollMargin:e.scrollMargin,onVisibleRangeChange:e.onVisibleRangeChange,onScrollEnd:e.onScrollEnd}),l=te({count:()=>t.value,estimateSize:m=>me(n.toValue(e.estimateColumnSize),m,160),itemSize:()=>{const m=n.toValue(e.estimateColumnSize);return typeof m=="number"?m:void 0},overscan:()=>n.toValue(e.overscanColumns)??n.toValue(e.overscan)??1,gap:()=>n.toValue(e.columnGap)??0,horizontal:!0,container:e.container,initialRect:e.initialRect,revision:e.revision,windowScroll:e.windowScroll,scrollMargin:e.scrollMargin}),d=n.computed(()=>{const m=n.toValue(e.items),b=t.value,v=[];for(const w of o.virtualItems.value)for(const y of l.virtualItems.value){const h=w.index*b+y.index;if(h>=m.length)continue;const I=m[h];v.push({index:h,key:e.getItemKey?.(I,h)??h,item:I,row:w,column:y})}return v});function M(m,b){const v=n.toValue(e.items);if(!v.length)return;const w=Math.min(Math.max(m,0),v.length-1),y=t.value;o.scrollToIndex(Math.floor(w/y),b),l.scrollToIndex(w%y,b)}function E(m,b="auto"){m.top!==void 0&&o.scrollToOffset(m.top,b),m.left!==void 0&&l.scrollToOffset(m.left,b)}function x(m,b){const v=Math.max(r.get(m)??0,b);v<=0||v===r.get(m)||(r.set(m,v),o.measure(m,v))}let c=null;const S=new Map;function R(){return!P()||typeof ResizeObserver>"u"?null:(c||(c=new ResizeObserver(m=>{for(const b of m){const v=S.get(b.target);if(v===void 0)continue;const y=b.borderBoxSize?.[0]?.blockSize??b.contentRect.height;y>0&&x(v,y)}})),c)}function T(m,b){const v=ze(m),w=R();if(!v)return;S.set(v,b),w?.observe(v);const y=v.getBoundingClientRect().height;y>0&&x(b,y)}return n.onBeforeUnmount(()=>{c?.disconnect(),S.clear()}),{virtualRows:o.virtualItems,virtualColumns:l.virtualItems,virtualCells:d,totalHeight:o.totalSize,totalWidth:l.totalSize,scrollAdjustX:l.scrollAdjust,scrollAdjustY:o.scrollAdjust,scrollToIndex:M,scrollToOffset:E,measureRow:x,measureRowElement:T,measureColumn:l.measure}}function xe(e){const t=ie({items:e.rows,estimateSize:e.estimateRowSize,container:e.container,overscan:e.overscan,getItemKey:e.getRowKey,initialRect:e.initialRect,viewportInset:e.viewportInset,revision:e.revision,itemSize:e.itemSize,windowScroll:e.windowScroll,scrollMargin:e.scrollMargin,reverse:e.reverse,onVisibleRangeChange:e.onVisibleRangeChange,onScrollEnd:e.onScrollEnd}),i=n.computed(()=>{const l=n.toValue(e.columns);let d=0;const M=l.map(c=>{const S=c.width??c.minWidth??160,R={...c,start:d,size:S,end:d+S,pinOffset:0,stickyStyle:{}};return d+=S,R});let E=0;for(const c of M)c.pin==="start"&&(c.pinOffset=E,c.stickyStyle={position:"sticky",left:`${E}px`,zIndex:2},E+=c.size);let x=0;for(let c=M.length-1;c>=0;c-=1){const S=M[c];!S||S.pin!=="end"||(S.pinOffset=x,S.stickyStyle={position:"sticky",right:`${x}px`,zIndex:2},x+=S.size)}return M}),r=n.computed(()=>{const l=i.value;return l.length?l[l.length-1]?.end??0:0});return{virtualRows:n.computed(()=>t.virtualItems.value),columns:i,totalHeight:t.totalSize,totalWidth:r,scrollOffset:t.scrollOffset,scrollAdjust:t.scrollAdjust,isScrolling:t.isScrolling,scrollToIndex:t.scrollToIndex,scrollToOffset:t.scrollToOffset,measure:t.measure,measureElement:t.measureElement}}function Q(e){if(typeof e=="number"&&Number.isFinite(e))return`${e}px`;if(typeof e=="string"&&e.trim())return e}function X(e){if(typeof e=="number"&&Number.isFinite(e))return e;if(typeof e!="string")return 0;const t=/^(-?\d+(?:\.\d+)?)px$/.exec(e.trim());if(!t?.[1])return 0;const i=Number(t[1]);return Number.isFinite(i)?i:0}function oe(e){return e.windowScroll?{position:"relative",width:Q(e.width)??"100%",height:Q(e.height),overflowAnchor:"none"}:{overflow:"auto",position:"relative",height:Q(e.height)??(e.horizontal?"100%":void 0),width:Q(e.width)??(e.horizontal?void 0:"100%"),overflowAnchor:"none"}}function qe(e,t){const i=D(e);return{position:"relative",width:t?`${i}px`:"100%",height:t?"100%":`${i}px`}}function Ue(e,t,i,r){const o=r?.fixed??!1;return t?{position:"absolute",top:0,left:0,height:"100%",transform:`translateX(${e}px)`,boxSizing:"border-box",...o&&i!==void 0?{width:`${i}px`,overflow:"hidden",contain:"layout style"}:{}}:{position:"absolute",top:0,left:0,width:"100%",transform:`translateY(${e}px)`,boxSizing:"border-box",...o&&i!==void 0?{height:`${i}px`,overflow:"hidden",contain:"layout style"}:{}}}const Ze=n.defineComponent({__name:"VirtualList",props:{items:{},estimateSize:{type:[Number,Function],default:48},height:{},width:{},horizontal:{type:Boolean,default:!1},overscan:{default:8},gap:{default:0},paddingStart:{default:0},paddingEnd:{default:0},getItemKey:{},tag:{default:"div"},itemTag:{default:"div"},itemAttrs:{},revision:{},windowScroll:{type:Boolean,default:!1},scrollMargin:{default:0},reverse:{type:Boolean,default:!1}},emits:["visibleRangeChange","scrollEnd"],setup(e,{expose:t,emit:i}){const r=e,o=i,l=n.ref(null),{virtualItems:d,totalSize:M,scrollAdjust:E,scrollToIndex:x,scrollToOffset:c,measure:S,measureElement:R}=ie({items:()=>r.items,estimateSize:(w,y)=>{const h=r.estimateSize;return typeof h=="number"?h:h(w,y)},itemSize:()=>typeof r.estimateSize=="number"?r.estimateSize:void 0,container:l,horizontal:()=>r.horizontal,overscan:()=>r.overscan,gap:()=>r.gap,paddingStart:()=>r.paddingStart,paddingEnd:()=>r.paddingEnd,getItemKey:(w,y)=>r.getItemKey?.(w,y)??y,initialRect:()=>({width:X(r.width),height:X(r.height)}),revision:()=>r.revision,windowScroll:()=>r.windowScroll,scrollMargin:()=>r.scrollMargin,reverse:()=>r.reverse,onVisibleRangeChange:w=>o("visibleRangeChange",w),onScrollEnd:()=>o("scrollEnd")}),T=n.computed(()=>oe({height:r.height,width:r.width,horizontal:r.horizontal,windowScroll:r.windowScroll})),m=n.computed(()=>qe(M.value,r.horizontal));function b(w,y){return Ue(w,r.horizontal,y,{fixed:typeof r.estimateSize=="number"})}function v(w){return y=>{R(y,w)}}return t({scrollToIndex:x,scrollToOffset:c,measure:S}),(w,y)=>(n.openBlock(),n.createBlock(n.resolveDynamicComponent(e.tag),{ref_key:"container",ref:l,"data-virtual-container":"",role:"list",style:n.normalizeStyle(T.value)},{default:n.withCtx(()=>[e.items.length?(n.openBlock(),n.createElementBlock("div",{key:1,"data-virtual-spacer":"",style:n.normalizeStyle(m.value)},[(n.openBlock(!0),n.createElementBlock(n.Fragment,null,n.renderList(n.unref(d),h=>(n.openBlock(),n.createBlock(n.resolveDynamicComponent(e.itemTag),n.mergeProps({key:h.key,ref_for:!0,ref:v(h.index),role:"listitem","data-index":h.index,"data-key":String(h.key),"aria-setsize":e.items.length,"aria-posinset":h.index+1,style:b(h.start-n.unref(E),h.size)},{ref_for:!0},e.itemAttrs),{default:n.withCtx(()=>[n.renderSlot(w.$slots,"default",{item:h.item,index:h.index,start:h.start,size:h.size,end:h.end})]),_:2},1040,["data-index","data-key","aria-setsize","aria-posinset","style"]))),128))],4)):n.renderSlot(w.$slots,"empty",{},void 0,void 0,0)]),_:3},8,["style"]))}}),Je=["data-index","data-key"],Qe=n.defineComponent({__name:"VirtualGrid",props:{items:{},columnCount:{default:1},estimateRowSize:{type:[Number,Function],default:48},estimateColumnSize:{type:[Number,Function],default:160},height:{},width:{},overscan:{default:2},overscanRows:{},overscanColumns:{},rowGap:{default:0},columnGap:{default:0},getItemKey:{},tag:{default:"div"},itemAttrs:{},revision:{},windowScroll:{type:Boolean,default:!1},scrollMargin:{default:0}},emits:["visibleRangeChange","scrollEnd"],setup(e,{expose:t,emit:i}){const r=e,o=i,l=n.ref(null),{virtualCells:d,totalWidth:M,totalHeight:E,scrollAdjustX:x,scrollAdjustY:c,scrollToIndex:S,scrollToOffset:R,measureRow:T,measureRowElement:m}=pe({items:()=>r.items,columnCount:()=>r.columnCount,estimateRowSize:()=>r.estimateRowSize,estimateColumnSize:()=>r.estimateColumnSize,container:l,overscan:()=>r.overscan,overscanRows:()=>r.overscanRows,overscanColumns:()=>r.overscanColumns,rowGap:()=>r.rowGap,columnGap:()=>r.columnGap,getItemKey:(h,I)=>r.getItemKey?.(h,I)??I,initialRect:()=>({width:X(r.width),height:X(r.height)}),revision:()=>r.revision,windowScroll:()=>r.windowScroll,scrollMargin:()=>r.scrollMargin,onVisibleRangeChange:h=>o("visibleRangeChange",h),onScrollEnd:()=>o("scrollEnd")}),b=n.computed(()=>oe({height:r.height,width:r.width,horizontal:!1,windowScroll:r.windowScroll})),v=n.computed(()=>({position:"relative",width:`${D(M.value)}px`,height:`${D(E.value)}px`}));function w(h){return I=>{m(I,h)}}function y(h,I,V,K){return{position:"absolute",top:0,left:0,width:`${I}px`,height:`${K}px`,transform:`translate(${h}px, ${V}px)`,contain:"layout style",boxSizing:"border-box",overflow:"hidden"}}return t({scrollToIndex:S,scrollToOffset:R,measureRow:T}),(h,I)=>(n.openBlock(),n.createBlock(n.resolveDynamicComponent(e.tag),{ref_key:"container",ref:l,"data-virtual-container":"",role:"grid",style:n.normalizeStyle(b.value)},{default:n.withCtx(()=>[e.items.length?(n.openBlock(),n.createElementBlock("div",{key:1,"data-virtual-spacer":"",style:n.normalizeStyle(v.value)},[(n.openBlock(!0),n.createElementBlock(n.Fragment,null,n.renderList(n.unref(d),V=>(n.openBlock(),n.createElementBlock("div",n.mergeProps({key:V.key,ref_for:!0,ref:w(V.row.index),role:"gridcell","data-index":V.index,"data-key":String(V.key),style:y(V.column.start-n.unref(x),V.column.size,V.row.start-n.unref(c),V.row.size)},{ref_for:!0},e.itemAttrs),[n.renderSlot(h.$slots,"default",{item:V.item,index:V.index,rowIndex:V.row.index,columnIndex:V.column.index,row:V.row,column:V.column})],16,Je))),128))],4)):n.renderSlot(h.$slots,"empty",{},void 0,void 0,0)]),_:3},8,["style"]))}}),et=["data-index","data-key","aria-rowindex"],tt=n.defineComponent({__name:"VirtualTable",props:{rows:{},columns:{},estimateRowSize:{type:[Number,Function],default:44},height:{},width:{},overscan:{default:8},getRowKey:{},stickyHeader:{type:Boolean,default:!0},tag:{default:"div"},rowAttrs:{},revision:{},windowScroll:{type:Boolean,default:!1},scrollMargin:{default:0},reverse:{type:Boolean,default:!1}},emits:["visibleRangeChange","scrollEnd"],setup(e,{expose:t,emit:i}){const r=e,o=i,l=n.ref(null),d=n.ref(null),M=n.ref(0),{virtualRows:E,columns:x,totalWidth:c,totalHeight:S,scrollAdjust:R,scrollToIndex:T,scrollToOffset:m,measure:b,measureElement:v}=xe({rows:()=>r.rows,columns:()=>r.columns,estimateRowSize:(u,O)=>{const p=r.estimateRowSize;return typeof p=="number"?p:p(u,O)},container:l,overscan:()=>r.overscan,getRowKey:(u,O)=>r.getRowKey?.(u,O)??O,initialRect:()=>({width:X(r.width),height:X(r.height)}),viewportInset:M,revision:()=>r.revision,itemSize:()=>typeof r.estimateRowSize=="number"?r.estimateRowSize:void 0,windowScroll:()=>r.windowScroll,scrollMargin:()=>r.scrollMargin,reverse:()=>r.reverse,onVisibleRangeChange:u=>o("visibleRangeChange",u),onScrollEnd:()=>o("scrollEnd")});n.watch(d,(u,O,p)=>{if(O===u&&!u||!u||!P()||typeof ResizeObserver>"u")return;const F=()=>{M.value=u.getBoundingClientRect().height},Y=new ResizeObserver(F);Y.observe(u),F(),p(()=>Y.disconnect())});const w=n.computed(()=>oe({height:r.height,width:r.width,horizontal:!1,windowScroll:r.windowScroll})),y=n.computed(()=>({minWidth:`${c.value}px`})),h=n.computed(()=>({position:r.stickyHeader?"sticky":"relative",top:r.stickyHeader?"0px":void 0,zIndex:3,display:"flex",width:`${c.value}px`})),I=n.computed(()=>({position:"relative",height:`${D(S.value)}px`,width:`${D(c.value)}px`}));function V(u){return{width:`${u.size}px`,minWidth:`${u.size}px`,flex:"0 0 auto",textAlign:u.align??"left",...u.stickyStyle,zIndex:u.pin?r.stickyHeader?4:2:u.stickyStyle.zIndex}}function K(u,O){return{position:"absolute",top:0,left:0,width:"100%",height:`${O}px`,display:"flex",transform:`translateY(${u}px)`,contain:"layout style",boxSizing:"border-box",overflow:"hidden"}}function _(u){return O=>{v(O,u)}}function C(u,O,p){return O.accessor?O.accessor(u,p):u&&typeof u=="object"&&O.id in u?u[O.id]:""}return t({scrollToIndex:T,scrollToOffset:m,measure:b}),(u,O)=>(n.openBlock(),n.createBlock(n.resolveDynamicComponent(e.tag),{ref_key:"container",ref:l,"data-virtual-container":"",role:"table",style:n.normalizeStyle(w.value)},{default:n.withCtx(()=>[n.createElementVNode("div",{style:n.normalizeStyle(y.value)},[n.createElementVNode("div",{ref_key:"header",ref:d,role:"row",style:n.normalizeStyle(h.value)},[n.renderSlot(u.$slots,"header",{columns:n.unref(x)},()=>[(n.openBlock(!0),n.createElementBlock(n.Fragment,null,n.renderList(n.unref(x),p=>(n.openBlock(),n.createElementBlock("div",{key:p.id,role:"columnheader",style:n.normalizeStyle(V(p))},n.toDisplayString(p.header),5))),128))])],4),e.rows.length?(n.openBlock(),n.createElementBlock("div",{key:1,"data-virtual-spacer":"",role:"rowgroup",style:n.normalizeStyle(I.value)},[(n.openBlock(!0),n.createElementBlock(n.Fragment,null,n.renderList(n.unref(E),p=>(n.openBlock(),n.createElementBlock("div",n.mergeProps({key:p.key,ref_for:!0,ref:_(p.index),role:"row","data-index":p.index,"data-key":String(p.key),"aria-rowindex":p.index+1,style:K(p.start-n.unref(R),p.size)},{ref_for:!0},e.rowAttrs),[(n.openBlock(!0),n.createElementBlock(n.Fragment,null,n.renderList(n.unref(x),F=>(n.openBlock(),n.createElementBlock("div",{key:F.id,role:"cell",style:n.normalizeStyle(V(F))},[n.renderSlot(u.$slots,"cell",{row:p.item,column:F,rowIndex:p.index,value:C(p.item,F,p.index)},()=>[n.createTextVNode(n.toDisplayString(C(p.item,F,p.index)),1)])],4))),128))],16,et))),128))],4)):n.renderSlot(u.$slots,"empty",{},void 0,void 0,0)],4)]),_:3},8,["style"]))}});exports.MeasurementCache=he;exports.VirtualGrid=Qe;exports.VirtualList=Ze;exports.VirtualTable=tt;exports.Virtualizer=ye;exports.clampScrollOffset=N;exports.mapDomOffsetToVirtual=Se;exports.mapVirtualOffsetToDom=ve;exports.normalizeSize=ee;exports.resolveScrollOffset=we;exports.scrollContentSize=D;exports.useVirtualGrid=pe;exports.useVirtualList=ie;exports.useVirtualTable=xe;exports.useVirtualizer=te;
|
|
2
2
|
//# sourceMappingURL=index.js.map
|