import{ad as N,r as R,ap as y,z as $,bK as D,o as E,bi as H,aY as W,ae as q,af as B,ag as O,b7 as U,aP as Y,cK as j,M as G,i as a,k as J,K as A,l as Q,as as C}from"./index-N7CMQwFv.js";const X=B({color:String,direction:{type:String,default:"vertical",validator:e=>["vertical","horizontal"].includes(e)},side:{type:String,default:"end",validator:e=>["start","end","both"].includes(e)},mode:{type:String,default:"intersect",validator:e=>["intersect","manual"].includes(e)},margin:[Number,String],loadMoreText:{type:String,default:"$vuetify.infiniteScroll.loadMore"},emptyText:{type:String,default:"$vuetify.infiniteScroll.empty"},...U(),...O()},"VInfiniteScroll"),P=Y({name:"VInfiniteScrollIntersect",props:{side:{type:String,required:!0},rootMargin:String},emits:{intersect:(e,u)=>!0},setup(e,u){let{emit:n}=u;const{intersectionRef:f,isIntersecting:r}=j();return G(r,async c=>{n("intersect",e.side,c)}),q(()=>a("div",{class:"v-infinite-scroll-intersect",style:{"--v-infinite-margin-size":e.rootMargin},ref:f},[J(" ")])),{}}}),p=N()({name:"VInfiniteScroll",props:X(),emits:{load:e=>!0},setup(e,u){let{slots:n,emit:f}=u;const r=R(),c=y("ok"),m=y("ok"),I=$(()=>D(e.margin)),v=y(!1);function g(t){if(!r.value)return;const i=e.direction==="vertical"?"scrollTop":"scrollLeft";r.value[i]=t}function F(){if(!r.value)return 0;const t=e.direction==="vertical"?"scrollTop":"scrollLeft";return r.value[t]}function d(){if(!r.value)return 0;const t=e.direction==="vertical"?"scrollHeight":"scrollWidth";return r.value[t]}function _(){if(!r.value)return 0;const t=e.direction==="vertical"?"clientHeight":"clientWidth";return r.value[t]}E(()=>{r.value&&(e.side==="start"?g(d()):e.side==="both"&&g(d()/2-_()/2))});function h(t,i){t==="start"?c.value=i:t==="end"&&(m.value=i)}function K(t){return t==="start"?c.value:m.value}let k=0;function T(t,i){v.value=i,v.value&&S(t)}function S(t){if(e.mode!=="manual"&&!v.value)return;const i=K(t);if(!r.value||["empty","loading"].includes(i))return;k=d(),h(t,"loading");function l(o){h(t,o),C(()=>{o==="empty"||o==="error"||(o==="ok"&&t==="start"&&g(d()-k+F()),e.mode!=="manual"&&C(()=>{window.requestAnimationFrame(()=>{window.requestAnimationFrame(()=>{window.requestAnimationFrame(()=>{S(t)})})})}))})}f("load",{side:t,done:l})}const{t:V}=H();function b(t,i){var s,M,w,x,z;if(e.side!==t&&e.side!=="both")return;const l=()=>S(t),o={side:t,props:{onClick:l,color:e.color}};return i==="error"?(s=n.error)==null?void 0:s.call(n,o):i==="empty"?((M=n.empty)==null?void 0:M.call(n,o))??a("div",null,[V(e.emptyText)]):e.mode==="manual"?i==="loading"?((w=n.loading)==null?void 0:w.call(n,o))??a(A,{indeterminate:!0,color:e.color},null):((x=n["load-more"])==null?void 0:x.call(n,o))??a(Q,{variant:"outlined",color:e.color,onClick:l},{default:()=>[V(e.loadMoreText)]}):((z=n.loading)==null?void 0:z.call(n,o))??a(A,{indeterminate:!0,color:e.color},null)}const{dimensionStyles:L}=W(e);q(()=>{const t=e.tag,i=e.side==="start"||e.side==="both",l=e.side==="end"||e.side==="both",o=e.mode==="intersect";return a(t,{ref:r,class:["v-infinite-scroll",`v-infinite-scroll--${e.direction}`,{"v-infinite-scroll--start":i,"v-infinite-scroll--end":l}],style:L.value},{default:()=>{var s;return[a("div",{class:"v-infinite-scroll__side"},[b("start",c.value)]),i&&o&&a(P,{key:"start",side:"start",onIntersect:T,rootMargin:I.value},null),(s=n.default)==null?void 0:s.call(n),l&&o&&a(P,{key:"end",side:"end",onIntersect:T,rootMargin:I.value},null),a("div",{class:"v-infinite-scroll__side"},[b("end",m.value)])]}})})}});export{p as V};