1 |
- import{j as w,ai as C,n as E,v as L,d as B,i as g,ay as R,w as m,az as y,o as N,ae as j,g as r,y as U,U as b,aA as _,Z as z,aj as A,D}from"./index-e1fe404f.js";import{u as F}from"./use-tab-status-b7c8606b.js";const[H,o,I]=w("list"),M={error:Boolean,offset:C(300),loading:Boolean,disabled:Boolean,finished:Boolean,errorText:String,direction:E("down"),loadingText:String,finishedText:String,immediateCheck:L};var V=B({name:H,props:M,emits:["load","update:error","update:loading"],setup(e,{emit:c,slots:a}){const d=g(e.loading),u=g(),h=g(),s=F(),v=R(u),i=()=>{U(()=>{if(d.value||e.finished||e.disabled||e.error||(s==null?void 0:s.value)===!1)return;const{direction:t}=e,l=+e.offset,n=b(v);if(!n.height||_(u))return;let f=!1;const x=b(h);t==="up"?f=n.top-x.top<=l:f=x.bottom-n.bottom<=l,f&&(d.value=!0,c("update:loading",!0),c("load"))})},T=()=>{if(e.finished){const t=a.finished?a.finished():e.finishedText;if(t)return r("div",{class:o("finished-text")},[t])}},k=()=>{c("update:error",!1),i()},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(z,{class:o("loading-icon")},{default:()=>[e.loadingText||I("loading")]})])};return m(()=>[e.loading,e.finished,e.error],i),s&&m(s,t=>{t&&i()}),y(()=>{d.value=e.loading}),N(()=>{e.immediateCheck&&i()}),A({check:i}),j("scroll",i,{target:v,passive:!0}),()=>{var t;const l=(t=a.default)==null?void 0:t.call(a),n=r("div",{ref:h,class:o("placeholder")},null);return r("div",{ref:u,role:"feed",class:o(),"aria-busy":d.value},[e.direction==="down"?l:n,S(),T(),P(),e.direction==="up"?l:n])}}});const G=D(V);export{G as L};
|