index-b0f521e6.js 2.5 KB

1
  1. import{b9 as S,c1 as L,bg as R,bf as T,d as C,l as h,c2 as N,c3 as _,w as m,c4 as F,c as U,c5 as W,c6 as H,f as i,aF as I,c7 as k,c8 as M,c9 as V,bk as w,e as j,be as P,bb as q}from"./index-d0421684.js";const[z,f,A]=S("list"),D={error:Boolean,offset:L(300),loading:Boolean,disabled:Boolean,finished:Boolean,errorText:String,direction:R("down"),loadingText:String,finishedText:String,immediateCheck:T};var G=C({name:z,props:D,emits:["load","update:error","update:loading"],setup(e,{emit:l,slots:n}){const a=h(e.loading),r=h(),d=h(),o=N(),c=_(r),s=()=>{I(()=>{if(a.value||e.finished||e.disabled||e.error||(o==null?void 0:o.value)===!1)return;const{direction:t}=e,g=+e.offset,u=k(c);if(!u.height||M(r))return;let v=!1;const x=k(d);t==="up"?v=u.top-x.top<=g:v=x.bottom-u.bottom<=g,v&&(a.value=!0,l("update:loading",!0),l("load"))})},y=()=>{if(e.finished){const t=n.finished?n.finished():e.finishedText;if(t)return i("div",{class:f("finished-text")},[t])}},$=()=>{l("update:error",!1),s()},B=()=>{if(e.error){const t=n.error?n.error():e.errorText;if(t)return i("div",{role:"button",class:f("error-text"),tabindex:0,onClick:$},[t])}},E=()=>{if(a.value&&!e.finished&&!e.disabled)return i("div",{class:f("loading")},[n.loading?n.loading():i(V,{class:f("loading-icon")},{default:()=>[e.loadingText||A("loading")]})])};return m(()=>[e.loading,e.finished,e.error],s),o&&m(o,t=>{t&&s()}),F(()=>{a.value=e.loading}),U(()=>{e.immediateCheck&&s()}),W({check:s}),H("scroll",s,{target:c,passive:!0}),()=>{var t;const g=(t=n.default)==null?void 0:t.call(n),u=i("div",{ref:d,class:f("placeholder")},null);return i("div",{ref:r,role:"feed",class:f(),"aria-busy":a.value},[e.direction==="down"?g:u,E(),y(),B(),e.direction==="up"?g:u])}}});const X=w(G),[J,b]=S("progress"),K={color:String,inactive:Boolean,pivotText:String,textColor:String,showPivot:T,pivotColor:String,trackColor:String,strokeWidth:P,percentage:{type:P,default:0,validator:e=>+e>=0&&+e<=100}};var O=C({name:J,props:K,setup(e){const l=j(()=>e.inactive?void 0:e.color),n=()=>{const{textColor:a,pivotText:r,pivotColor:d,percentage:o}=e,c=r!=null?r:`${o}%`;if(e.showPivot&&c){const s={color:a,left:`${+o}%`,transform:`translate(-${+o}%,-50%)`,background:d||l.value};return i("span",{style:s,class:b("pivot",{inactive:e.inactive})},[c])}};return()=>{const{trackColor:a,percentage:r,strokeWidth:d}=e,o={background:a,height:q(d)},c={width:`${r}%`,background:l.value};return i("div",{class:b(),style:o},[i("span",{class:b("portion",{inactive:e.inactive}),style:c},null),n()])}}});const Y=w(O);export{X as L,Y as P};