import{d as E,f as $,r as A,e as u,u as i,w as B,k as o,o as I,n as k,ag as S,aB as M,ar as P,aD as f,at as _,G as W,au as C}from"./vue-vendor-Be68asQ6.js";import{a7 as L,z as q,a as D,w as z}from"./index-BFfnEkVs.js";import{V as G}from"./antd-vue-vendor-DcqS7Wvq.js";import{P as U}from"./index-X83NmVMq.js";import"./vxe-table-vendor-DHF2TRpV.js";import"./useContentHeight-DnE6GxS2.js";import"./useWindowSizeFn-BTSGGcie.js";import"./useContentViewHeight-BVCc9jQl.js";import"./usePageContext-WlOC5VNa.js";import"./injectionKey-DPVn4AgL.js";const j={height:[Number,String],maxHeight:[Number,String],maxWidth:[Number,String],minHeight:[Number,String],minWidth:[Number,String],width:[Number,String],bench:{type:[Number,String],default:0},itemHeight:{type:[Number,String],required:!0},items:{type:Array,default:()=>[]}},w="virtual-scroll";function a(t,n="px"){if(!(t==null||t===""))return isNaN(+t)?String(t):`${Number(t)}${n}`}const J=E({name:"VirtualScroll",props:j,setup(t,{slots:n}){const c=$(null),s=A({first:0,last:0,scrollTop:0}),p=u(()=>parseInt(t.bench,10)),m=u(()=>parseInt(t.itemHeight,10)),h=u(()=>Math.max(0,s.first-i(p))),g=u(()=>Math.min((t.items||[]).length,s.last+i(p))),v=u(()=>({height:a((t.items||[]).length*i(m))})),d=u(()=>{const e={},r=a(t.height),l=a(t.minHeight),b=a(t.minWidth),x=a(t.maxHeight),F=a(t.maxWidth),y=a(t.width);return r&&(e.height=r),l&&(e.minHeight=l),b&&(e.minWidth=b),x&&(e.maxHeight=x),F&&(e.maxWidth=F),y&&(e.width=y),e});B([()=>t.itemHeight,()=>t.height],()=>{N()});function H(e){const r=i(c);if(!r)return 0;const l=parseInt(t.height||0,10)||r.clientHeight;return e+Math.ceil(l/i(m))}function R(){return Math.floor(s.scrollTop/i(m))}function N(){const e=i(c);e&&(s.scrollTop=e.scrollTop,s.first=R(),s.last=H(s.first))}function T(){const{items:e=[]}=t;return e.slice(i(h),i(g)).map(V)}function V(e,r){r+=i(h);const l=a(r*i(m));return o("div",{class:`${w}__item`,style:{top:l},key:r},[L(n,"default",{index:r,item:e})])}return I(()=>{s.last=H(0),k(()=>{const e=i(c);e&&q({el:e,name:"scroll",listener:N,wait:0})})}),()=>o("div",{class:w,style:i(d),ref:c},[o("div",{class:`${w}__container`,style:i(v)},[T()])])}}),K=D(J,[["__scopeId","data-v-33845336"]]),O=z(K),Q=(()=>{const t=[];for(let n=1;n<2e4;n++)t.push({title:"列表项"+n});return t})(),X=E({components:{VScroll:O,Divider:G,PageWrapper:U},setup(){return{data:Q}}}),Y={class:"virtual-scroll-demo-wrap"},Z={class:"virtual-scroll-demo__item"},tt={class:"virtual-scroll-demo-wrap"},et={class:"virtual-scroll-demo__item"};function it(t,n,c,s,p,m){const h=S("Divider"),g=S("VScroll"),v=S("PageWrapper");return P(),M(v,{class:"virtual-scroll-demo"},{default:f(()=>[o(h,null,{default:f(()=>n[0]||(n[0]=[W("基础滚动示例")])),_:1}),_("div",Y,[o(g,{itemHeight:41,items:t.data,height:300,width:300},{default:f(({item:d})=>[_("div",Z,C(d.title),1)]),_:1},8,["items"])]),o(h,null,{default:f(()=>n[1]||(n[1]=[W("即使不可见,也预先加载50条数据,防止空白")])),_:1}),_("div",tt,[o(g,{itemHeight:41,items:t.data,height:300,width:300,bench:50},{default:f(({item:d})=>[_("div",et,C(d.title),1)]),_:1},8,["items"])])]),_:1})}const dt=D(X,[["render",it],["__scopeId","data-v-caa40fb6"]]);export{dt as default};