You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

2 lines
3.9 KiB

import{j as E,k as L,a as b,aL as M,v as B,ao as R,o as U,s as W,E as Y,b as l,I as H,V as X,G as Z,K as j,aa as G,J as aa,a4 as I,O as J,l as sa,m as ta,H as ea,aH as na,M as oa,__tla as ia}from"./index.3b792103.js";import{u as ra,__tla as la}from"./use-tab-status.02ad5a89.js";let K,O,ua=Promise.all([(()=>{try{return ia}catch{}})(),(()=>{try{return la}catch{}})()]).then(async()=>{const[q,h,z]=E("list"),A={error:Boolean,offset:H(300),loading:Boolean,disabled:Boolean,finished:Boolean,errorText:String,direction:X("down"),loadingText:String,finishedText:String,immediateCheck:Z};var F=L({name:q,props:A,emits:["load","update:error","update:loading"],setup(a,{emit:c,slots:o}){const r=b(a.loading),m=b(),x=b(),g=ra(),t=M(m),i=()=>{j(()=>{if(r.value||a.finished||a.disabled||a.error||(g==null?void 0:g.value)===!1)return;const{offset:e,direction:p}=a,d=G(t);if(!d.height||aa(m))return;let v=!1;const D=G(x);p==="up"?v=d.top-D.top<=e:v=D.bottom-d.bottom<=e,v&&(r.value=!0,c("update:loading",!0),c("load"))})},k=()=>{if(a.finished){const e=o.finished?o.finished():a.finishedText;if(e)return l("div",{class:h("finished-text")},[e])}},T=()=>{c("update:error",!1),i()},y=()=>{if(a.error){const e=o.error?o.error():a.errorText;if(e)return l("div",{role:"button",class:h("error-text"),tabindex:0,onClick:T},[e])}},u=()=>{if(r.value&&!a.finished&&!a.disabled)return l("div",{class:h("loading")},[o.loading?o.loading():l(I,{class:h("loading-icon")},{default:()=>[a.loadingText||z("loading")]})])};return B(()=>[a.loading,a.finished,a.error],i),g&&B(g,e=>{e&&i()}),R(()=>{r.value=a.loading}),U(()=>{a.immediateCheck&&i()}),W({check:i}),Y("scroll",i,{target:t,passive:!0}),()=>{var e;const p=(e=o.default)==null?void 0:e.call(o),d=l("div",{ref:x,class:h("placeholder")},null);return l("div",{ref:m,role:"feed",class:h(),"aria-busy":r.value},[a.direction==="down"?p:d,u(),k(),y(),a.direction==="up"?p:d])}}});let V,f,$,S,C,P;K=J(F),[V,f,$]=E("pull-refresh"),S=50,C=["pulling","loosing","success"],P={disabled:Boolean,modelValue:Boolean,headHeight:H(S),successText:String,pullingText:String,loosingText:String,loadingText:String,pullDistance:ea,successDuration:H(500),animationDuration:H(300)};var N=L({name:V,props:P,emits:["change","refresh","update:modelValue"],setup(a,{emit:c,slots:o}){let r;const m=b(),x=b(),g=M(m),t=sa({status:"normal",distance:0,duration:0}),i=ta(),k=()=>{if(a.headHeight!==S)return{height:`${a.headHeight}px`}},T=()=>t.status!=="loading"&&t.status!=="success"&&!a.disabled,y=s=>{const n=+(a.pullDistance||a.headHeight);return s>n&&(s<n*2?s=n+(s-n)/2:s=n*1.5+(s-n*2)/4),Math.round(s)},u=(s,n)=>{const _=+(a.pullDistance||a.headHeight);t.distance=s,n?t.status="loading":s===0?t.status="normal":s<_?t.status="pulling":t.status="loosing",c("change",{status:t.status,distance:s})},e=()=>{const{status:s}=t;return s==="normal"?"":a[`${s}Text`]||$(s)},p=()=>{const{status:s,distance:n}=t;if(o[s])return o[s]({distance:n});const _=[];return C.includes(s)&&_.push(l("div",{class:f("text")},[e()])),s==="loading"&&_.push(l(I,{class:f("loading")},{default:e})),_},d=()=>{t.status="success",setTimeout(()=>{u(0)},+a.successDuration)},v=s=>{r=na(g.value)===0,r&&(t.duration=0,i.start(s))},D=s=>{T()&&v(s)},Q=s=>{if(T()){r||v(s);const{deltaY:n}=i;i.move(s),r&&n.value>=0&&i.isVertical()&&(oa(s),u(y(n.value)))}},w=()=>{r&&i.deltaY.value&&T()&&(t.duration=+a.animationDuration,t.status==="loosing"?(u(+a.headHeight,!0),c("update:modelValue",!0),j(()=>c("refresh"))):u(0))};return B(()=>a.modelValue,s=>{t.duration=+a.animationDuration,s?u(+a.headHeight,!0):o.success||a.successText?d():u(0,!1)}),Y("touchmove",Q,{target:x}),()=>{var s;const n={transitionDuration:`${t.duration}ms`,transform:t.distance?`translate3d(0,${t.distance}px, 0)`:""};return l("div",{ref:m,class:f()},[l("div",{ref:x,class:f("track"),style:n,onTouchstartPassive:D,onTouchend:w,onTouchcancel:w},[l("div",{class:f("head"),style:k()},[p()]),(s=o.default)==null?void 0:s.call(o)])])}}});O=J(N)});export{K as L,O as P,ua as __tla};