1 |
- import{v as $,D as g,H as b,d as _,U as H,aq as F,r as P,ar as U,$ as S,a2 as w,c as l,L as B,a6 as O,a0 as I,as as M,z as Y,V as T,A as v,F as q,t as z}from"./ResizeObserver.es.7b3c8c20.js";const[C,f,G]=$("pull-refresh"),R=50,J=["pulling","loosing","success"],X={disabled:Boolean,modelValue:Boolean,headHeight:g(R),successText:String,pullingText:String,loosingText:String,loadingText:String,pullDistance:b,successDuration:g(500),animationDuration:g(300)};var j=_({name:C,props:X,emits:["change","refresh","update:modelValue"],setup(a,{emit:i,slots:u}){let n;const o=H(),p=H(),k=F(o),t=P({status:"normal",distance:0,duration:0}),c=U(),y=()=>{if(a.headHeight!==R)return{height:`${a.headHeight}px`}},m=()=>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)},r=(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})},D=()=>{const{status:e}=t;return e==="normal"?"":a[`${e}Text`]||G(e)},W=()=>{const{status:e,distance:s}=t;if(u[e])return u[e]({distance:s});const d=[];return J.includes(e)&&d.push(l("div",{class:f("text")},[D()])),e==="loading"&&d.push(l(B,{class:f("loading")},{default:D})),d},A=()=>{t.status="success",setTimeout(()=>{r(0)},+a.successDuration)},V=e=>{n=M(k.value)===0,n&&(t.duration=0,c.start(e))},L=e=>{m()&&V(e)},N=e=>{if(m()){n||V(e);const{deltaY:s}=c;c.move(e),n&&s.value>=0&&c.isVertical()&&(O(e),r(E(s.value)))}},x=()=>{n&&c.deltaY.value&&m()&&(t.duration=+a.animationDuration,t.status==="loosing"?(r(+a.headHeight,!0),i("update:modelValue",!0),I(()=>i("refresh"))):r(0))};return S(()=>a.modelValue,e=>{t.duration=+a.animationDuration,e?r(+a.headHeight,!0):u.success||a.successText?A():r(0,!1)}),w("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:L,onTouchend:x,onTouchcancel:x},[l("div",{class:f("head"),style:y()},[W()]),(e=u.default)==null?void 0:e.call(u)])])}}});const K=Y(j),Q="_animateWrap_127dt_1",Z="_pullRefresh_127dt_5";var h={animateWrap:Q,pullRefresh:Z},te=_({name:"o-full-refresh",props:{title:String,modelValue:{type:Boolean,default:!1}},emits:["refresh","update:modelValue"],setup(a,{emit:i,slots:u}){const n=P({fullState:!1});return S(()=>a.modelValue,o=>{n.fullState=o}),S(()=>n.fullState,o=>{i("update:modelValue",o)}),()=>l(K,{modelValue:n.fullState,"onUpdate:modelValue":o=>n.fullState=o,onRefresh:()=>i("refresh"),loadingText:" ",class:h.pullRefresh},{loading:()=>l("div",null,[l(T,{class:h.animateWrap,animationData:v},null)]),pulling:()=>l("div",null,[l(T,{class:h.animateWrap,animationData:v},null)]),loosing:()=>l("div",null,[l(T,{class:h.animateWrap,animationData:v},null)]),default:()=>l(q,null,[z(" "),u.default&&u.default()])})}});export{te as O};
|