index.1ece3d35.js 1.6 KB

1
  1. import{d as L,R as w,n as c,b1 as C,w as E,b2 as P,o as R,b3 as y,c as i,U as B,b4 as N,ak as U,b5 as m,b6 as F,b7 as H,b8 as I,X as M}from"./use-app.5b55add6.js";var[V,t,X]=B("list"),_=L({name:V,props:{error:Boolean,loading:Boolean,finished:Boolean,errorText:String,loadingText:String,finishedText:String,immediateCheck:w,offset:{type:[Number,String],default:300},direction:{type:String,default:"down"}},emits:["load","update:error","update:loading"],setup(e,{emit:o,slots:r}){var n=c(!1),s=c(),v=c(),h=N(),g=C(s),d=()=>{U(()=>{if(!(n.value||e.finished||e.error||(h==null?void 0:h.value)===!1)){var{offset:a,direction:l}=e,u=m(g);if(!(!u.height||F(s))){var f=!1,b=m(v);l==="up"?f=u.top-b.top<=a:f=b.bottom-u.bottom<=a,f&&(n.value=!0,o("update:loading",!0),o("load"))}}})},x=()=>{if(e.finished){var a=r.finished?r.finished():e.finishedText;if(a)return i("div",{class:t("finished-text")},[a])}},T=()=>{o("update:error",!1),d()},S=()=>{if(e.error){var a=r.error?r.error():e.errorText;if(a)return i("div",{class:t("error-text"),onClick:T},[a])}},k=()=>{if(n.value&&!e.finished)return i("div",{class:t("loading")},[r.loading?r.loading():i(H,{class:t("loading-icon")},{default:()=>[e.loadingText||X("loading")]})])};return E([()=>e.loading,()=>e.finished,()=>e.error],d),P(()=>{n.value=e.loading}),R(()=>{e.immediateCheck&&d()}),I({check:d}),y("scroll",d,{target:g}),()=>{var a=r.default==null?void 0:r.default(),l=i("div",{ref:v,class:t("placeholder")},null);return i("div",{ref:s,role:"feed",class:t(),"aria-busy":n.value},[e.direction==="down"?a:l,k(),x(),S(),e.direction==="up"?a:l])}}}),q=M(_);export{q as L};