1 |
- import{q as $,x as m,v as b,d as H,j as V,_ as L,i as k,aq as M,w as v,a0 as U,g as l,T as A,a1 as B,aI as F,ar as W,C,N as Y,h as j}from"./index-7ceda0c5.js";import{I as T}from"./index-1da83643.js";const[G,f,X]=$("pull-refresh"),R=50,z=["pulling","loosing","success"],J={disabled:Boolean,modelValue:Boolean,headHeight:m(R),successText:String,pullingText:String,loosingText:String,loadingText:String,pullDistance:b,successDuration:m(500),animationDuration:m(300)};var K=H({name:G,props:J,emits:["change","refresh","update:modelValue"],setup(a,{emit:i,slots:u}){let n;const o=V(),p=V(),P=L(o),t=k({status:"normal",distance:0,duration:0}),r=M(),y=()=>{if(a.headHeight!==R)return{height:`${a.headHeight}px`}},g=()=>t.status!=="loading"&&t.status!=="success"&&!a.disabled,E=e=>{const s=+(a.pullDistance||a.headHeight);return e>s&&(e<s*2?e=s+(e-s)/2:e=s*1.5+(e-s*2)/4),Math.round(e)},c=(e,s)=>{const d=+(a.pullDistance||a.headHeight);t.distance=e,s?t.status="loading":e===0?t.status="normal":e<d?t.status="pulling":t.status="loosing",i("change",{status:t.status,distance:e})},x=()=>{const{status:e}=t;return e==="normal"?"":a[`${e}Text`]||X(e)},q=()=>{const{status:e,distance:s}=t;if(u[e])return u[e]({distance:s});const d=[];return z.includes(e)&&d.push(l("div",{class:f("text")},[x()])),e==="loading"&&d.push(l(A,{class:f("loading")},{default:x})),d},w=()=>{t.status="success",setTimeout(()=>{c(0)},+a.successDuration)},_=e=>{n=F(P.value)===0,n&&(t.duration=0,r.start(e))},I=e=>{g()&&_(e)},N=e=>{if(g()){n||_(e);const{deltaY:s}=r;r.move(e),n&&s.value>=0&&r.isVertical()&&(W(e),c(E(s.value)))}},D=()=>{n&&r.deltaY.value&&g()&&(t.duration=+a.animationDuration,t.status==="loosing"?(c(+a.headHeight,!0),i("update:modelValue",!0),B(()=>i("refresh"))):c(0))};return v(()=>a.modelValue,e=>{t.duration=+a.animationDuration,e?c(+a.headHeight,!0):u.success||a.successText?w():c(0,!1)}),U("touchmove",N,{target:p}),()=>{var e;const s={transitionDuration:`${t.duration}ms`,transform:t.distance?`translate3d(0,${t.distance}px, 0)`:""};return l("div",{ref:o,class:f()},[l("div",{ref:p,class:f("track"),style:s,onTouchstartPassive:I,onTouchend:D,onTouchcancel:D},[l("div",{class:f("head"),style:y()},[q()]),(e=u.default)==null?void 0:e.call(u)])])}}});const O=C(K),Q="_animateWrap_1kuq9_1",Z="_loading_1kuq9_5",ee="_pullRefresh_1kuq9_13",h={animateWrap:Q,loading:Z,pullRefresh:ee};const S=""+new URL("loading-9729222e.gif",import.meta.url).href,se=H({name:"s-full-refresh",props:{title:String,modelValue:{type:Boolean,default:!1}},emits:["refresh","update:modelValue"],setup(a,{emit:i,slots:u}){const n=k({fullState:!1});return v(()=>a.modelValue,o=>{n.fullState=o}),v(()=>n.fullState,o=>{i("update:modelValue",o)}),()=>l(O,{modelValue:n.fullState,"onUpdate:modelValue":o=>n.fullState=o,onRefresh:()=>i("refresh"),loadingText:" ",class:h.pullRefresh},{loading:()=>l("div",null,[l(T,{src:S,class:h.loading},null)]),pulling:()=>l("div",null,[l(T,{src:S,class:h.loading},null)]),loosing:()=>l("div",null,[l(T,{src:S,class:h.loading},null)]),default:()=>l(Y,null,[j(" "),u.default&&u.default()])})}});export{se as M};
|