index-0e0ea3ba.js 1.7 KB

1
  1. import{ba as w,c2 as C,bh as E,bg as L,d as B,l as h,c3 as R,c4 as N,w as b,c5 as _,c as y,c6 as F,c7 as G,f as r,aG as H,c8 as m,c9 as I,ca as M,bl as U}from"./index-f29f663a.js";const[V,o,j]=w("list"),q={error:Boolean,offset:C(300),loading:Boolean,disabled:Boolean,finished:Boolean,errorText:String,direction:E("down"),loadingText:String,finishedText:String,immediateCheck:L};var z=B({name:V,props:q,emits:["load","update:error","update:loading"],setup(e,{emit:s,slots:a}){const d=h(e.loading),f=h(),g=h(),c=R(),v=N(f),n=()=>{H(()=>{if(d.value||e.finished||e.disabled||e.error||(c==null?void 0:c.value)===!1)return;const{direction:t}=e,l=+e.offset,i=m(v);if(!i.height||I(f))return;let u=!1;const x=m(g);t==="up"?u=i.top-x.top<=l:u=x.bottom-i.bottom<=l,u&&(d.value=!0,s("update:loading",!0),s("load"))})},T=()=>{if(e.finished){const t=a.finished?a.finished():e.finishedText;if(t)return r("div",{class:o("finished-text")},[t])}},k=()=>{s("update:error",!1),n()},P=()=>{if(e.error){const t=a.error?a.error():e.errorText;if(t)return r("div",{role:"button",class:o("error-text"),tabindex:0,onClick:k},[t])}},S=()=>{if(d.value&&!e.finished&&!e.disabled)return r("div",{class:o("loading")},[a.loading?a.loading():r(M,{class:o("loading-icon")},{default:()=>[e.loadingText||j("loading")]})])};return b(()=>[e.loading,e.finished,e.error],n),c&&b(c,t=>{t&&n()}),_(()=>{d.value=e.loading}),y(()=>{e.immediateCheck&&n()}),F({check:n}),G("scroll",n,{target:v,passive:!0}),()=>{var t;const l=(t=a.default)==null?void 0:t.call(a),i=r("div",{ref:g,class:o("placeholder")},null);return r("div",{ref:f,role:"feed",class:o(),"aria-busy":d.value},[e.direction==="down"?l:i,S(),T(),P(),e.direction==="up"?l:i])}}});const D=U(z);export{D as L};