index.29df141b.js 1.7 KB

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