1 |
- import{H as le,V as ue,v as de,I as ae,S as se,u as me,i as Z,R as G,g as oe,a as Se,b as re,c as ge,B as pe,F as ve,d as Q,A as ie,e as we,C as ne,E as xe,f as ye,h as Oe,__tla as Me}from"./el-virtual-list-8ffd452a.js";import{bn as be,bK as Te,bo as ze,d as Re,ah as Ie,aZ as Ee,r as L,bL as X,X as w,a as r,n as _e,bM as We,bN as $e,aJ as ce,b8 as B,bO as fe,ai as J,bP as De,__tla as Fe}from"./index-b9aa3289.js";let he,j,Le=Promise.all([(()=>{try{return Me}catch{}})(),(()=>{try{return Fe}catch{}})()]).then(async()=>{let N;N={[le]:"deltaX",[ue]:"deltaY"},j=({name:h,getOffset:m,getItemSize:S,getItemOffset:E,getEstimatedTotalSize:_,getStartIndexForOffset:T,getStopIndexForStartIndex:z,initCache:g,clearCache:d,validateProps:R})=>Re({name:h??"ElVirtualList",props:de,emits:[ae,se],setup(t,{emit:u,expose:x}){R(t);const K=Ie(),W=Ee("vl"),y=L(g(t,K)),$=me(),I=L(),k=L(),C=L(),i=L({isScrolling:!1,scrollDir:"forward",scrollOffset:X(t.initScrollOffset)?t.initScrollOffset:0,updateRequested:!1,isScrollbarDragging:!1,scrollbarAlwaysOn:t.scrollbarAlwaysOn}),q=w(()=>{const{total:e,cache:l}=t,{isScrolling:s,scrollDir:n,scrollOffset:a}=r(i);if(e===0)return[0,0,0,0];const o=T(t,a,r(y)),f=z(t,o,a,r(y)),c=s&&n!==pe?1:Math.max(1,l),v=s&&n!==ve?1:Math.max(1,l);return[Math.max(0,o-c),Math.max(0,Math.min(e-1,f+v)),o,f]}),p=w(()=>_(t,r(y))),O=w(()=>Z(t.layout)),U=w(()=>[{position:"relative",["overflow-"+(O.value?"x":"y")]:"scroll",WebkitOverflowScrolling:"touch",willChange:"transform"},{direction:t.direction,height:X(t.height)?`${t.height}px`:t.height,width:X(t.width)?`${t.width}px`:t.width},t.style]),V=w(()=>{const e=r(p),l=r(O);return{height:l?"100%":`${e}px`,pointerEvents:r(i).isScrolling?"none":void 0,width:l?`${e}px`:"100%"}}),M=w(()=>O.value?t.width:t.height),{onWheel:Y}=(({atEndEdge:e,atStartEdge:l,layout:s},n)=>{let a,o=0;const f=c=>c<0&&l.value||c>0&&e.value;return{hasReachedEdge:f,onWheel:c=>{be(a);const v=c[N[s.value]];f(o)&&f(o+v)||(o+=v,Te()||c.preventDefault(),a=ze(()=>{n(o),o=0}))}}})({atStartEdge:w(()=>i.value.scrollOffset<=0),atEndEdge:w(()=>i.value.scrollOffset>=p.value),layout:w(()=>t.layout)},e=>{var l,s;(s=(l=C.value).onMouseUp)==null||s.call(l),b(Math.min(i.value.scrollOffset+e,p.value-M.value))}),A=()=>{const{total:e}=t;if(e>0){const[a,o,f,c]=r(q);u(ae,a,o,f,c)}const{scrollDir:l,scrollOffset:s,updateRequested:n}=r(i);u(se,l,s,n)},b=e=>{(e=Math.max(e,0))!==r(i).scrollOffset&&(i.value={...r(i),scrollOffset:e,scrollDir:Q(r(i).scrollOffset,e),updateRequested:!0},J(D))},P=(e,l=ie)=>{const{scrollOffset:s}=r(i);e=Math.max(0,Math.min(e,t.total-1)),b(m(t,e,l,s,r(y)))},D=()=>{i.value.isScrolling=!1,J(()=>{$.value(-1,null,null)})},F=()=>{const e=I.value;e&&(e.scrollTop=0)};_e(()=>{if(!We)return;const{initScrollOffset:e}=t,l=r(I);X(e)&&l&&(r(O)?l.scrollLeft=e:l.scrollTop=e),A()}),$e(()=>{const{direction:e,layout:l}=t,{scrollOffset:s,updateRequested:n}=r(i),a=r(I);if(n&&a)if(l===le)if(e===G)switch(oe()){case re:a.scrollLeft=-s;break;case Se:a.scrollLeft=s;break;default:{const{clientWidth:o,scrollWidth:f}=a;a.scrollLeft=f-o-s;break}}else a.scrollLeft=s;else a.scrollTop=s});const H={ns:W,clientSize:M,estimatedTotalSize:p,windowStyle:U,windowRef:I,innerRef:k,innerStyle:V,itemsToRender:q,scrollbarRef:C,states:i,getItemStyle:e=>{const{direction:l,itemSize:s,layout:n}=t,a=$.value(d&&s,d&&n,d&&l);let o;if(De(a,String(e)))o=a[e];else{const f=E(t,e,r(y)),c=S(t,e,r(y)),v=r(O),ee=l===G,te=v?f:0;a[e]=o={position:"absolute",left:ee?void 0:`${te}px`,right:ee?`${te}px`:void 0,top:v?0:`${f}px`,height:v?"100%":`${c}px`,width:v?`${c}px`:"100%"}}return o},onScroll:e=>{r(O)?(l=>{const{clientWidth:s,scrollLeft:n,scrollWidth:a}=l.currentTarget,o=r(i);if(o.scrollOffset===n)return;const{direction:f}=t;let c=n;if(f===G)switch(oe()){case re:c=-n;break;case we:c=a-s-n}c=Math.max(0,Math.min(c,a-s)),i.value={...o,isScrolling:!0,scrollDir:Q(o.scrollOffset,c),scrollOffset:c,updateRequested:!1},J(D)})(e):(l=>{const{clientHeight:s,scrollHeight:n,scrollTop:a}=l.currentTarget,o=r(i);if(o.scrollOffset===a)return;const f=Math.max(0,Math.min(a,n-s));i.value={...o,isScrolling:!0,scrollDir:Q(o.scrollOffset,f),scrollOffset:f,updateRequested:!1},J(D)})(e),A()},onScrollbarScroll:(e,l)=>{const s=(p.value-M.value)/l*e;b(Math.min(p.value-M.value,s))},onWheel:Y,scrollTo:b,scrollToItem:P,resetScrollTop:F};return x({windowRef:I,innerRef:k,getItemStyleCache:$,scrollTo:b,scrollToItem:P,resetScrollTop:F,states:i}),H},render(t){var u;const{$slots:x,className:K,clientSize:W,containerElement:y,data:$,getItemStyle:I,innerElement:k,itemsToRender:C,innerStyle:i,layout:q,total:p,onScroll:O,onScrollbarScroll:U,onWheel:V,states:M,useIsScrolling:Y,windowStyle:A,ns:b}=t,[P,D]=C,F=ce(y),H=ce(k),e=[];if(p>0)for(let a=P;a<=D;a++)e.push((u=x.default)==null?void 0:u.call(x,{data:$,key:a,index:a,isScrolling:Y?M.isScrolling:void 0,style:I(a)}));const l=[B(H,{style:i,ref:"innerRef"},fe(H)?e:{default:()=>e})],s=B(ge,{ref:"scrollbarRef",clientSize:W,layout:q,onScroll:U,ratio:100*W/this.estimatedTotalSize,scrollFrom:M.scrollOffset/(this.estimatedTotalSize-W),total:p}),n=B(F,{class:[b.e("window"),K],style:A,onScroll:O,onWheel:V,ref:"windowRef",key:0},fe(F)?[l]:{default:()=>[l]});return B("div",{key:0,class:[b.e("wrapper"),M.scrollbarAlwaysOn?"always-on":""]},[n,s])}}),he=j({name:"ElFixedSizeList",getItemOffset:({itemSize:h},m)=>m*h,getItemSize:({itemSize:h})=>h,getEstimatedTotalSize:({total:h,itemSize:m})=>m*h,getOffset:({height:h,total:m,itemSize:S,layout:E,width:_},T,z,g)=>{const d=Z(E)?_:h,R=Math.max(0,m*S-d),t=Math.min(R,T*S),u=Math.max(0,(T+1)*S-d);switch(z===Oe&&(z=g>=u-d&&g<=t+d?ie:ne),z){case ye:return t;case xe:return u;case ne:{const x=Math.round(u+(t-u)/2);return x<Math.ceil(d/2)?0:x>R+Math.floor(d/2)?R:x}default:return g>=u&&g<=t?g:g<u?u:t}},getStartIndexForOffset:({total:h,itemSize:m},S)=>Math.max(0,Math.min(h-1,Math.floor(S/m))),getStopIndexForStartIndex:({height:h,total:m,itemSize:S,layout:E,width:_},T,z)=>{const g=T*S,d=Z(E)?_:h,R=Math.ceil((d+z-g)/S);return Math.max(0,Math.min(m-1,T+R-1))},initCache(){},clearCache:!0,validateProps(){}})});export{he as F,Le as __tla,j as c};
|