index-3554ae2c.js 5.0 KB

1
  1. import{a9 as E,ah as L,aO as N,c as A,aP as R,d as H,r as F,e as U,w as S,aQ as p,a as m,h as q,ae as B,k as C,b as Y,n as I,aR as W,x as O,u as j,Y as z,L as G,z as K,aS as Q,p as X,F as Z,A as J}from"./index-5a763f46.js";import{p as $,P as ee}from"./index-0dfeb1d3.js";const te=E({},$,{modelValue:L(),filter:Function,formatter:{type:Function,default:(e,o)=>o}}),ae=Object.keys($);function ne(e,o){if(e<0)return[];const l=Array(e);let n=-1;for(;++n<e;)l[n]=o(n);return l}const se=(e,o)=>32-new Date(e,o-1,32).getDate(),_=(e,o,l,n,u)=>{const i=ne(o-e+1,g=>{const s=N(e+g);return n(l,{text:s,value:s})});return u?u(l,i):i},oe=(e,o)=>e.map((l,n)=>{const u=o[n];if(u.length){const i=+u[u.length-1].value;if(+l>i)return String(i)}return l}),w=new Date().getFullYear(),[le]=A("date-picker"),ue=E({},te,{columnsType:{type:Array,default:()=>["year","month","day"]},minDate:{type:Date,default:()=>new Date(w-10,0,1),validator:R},maxDate:{type:Date,default:()=>new Date(w+10,11,31),validator:R}});var re=H({name:le,props:ue,emits:["confirm","cancel","change","update:modelValue"],setup(e,{emit:o,slots:l}){const n=F(e.modelValue),u=()=>{const t=e.minDate.getFullYear(),c=e.maxDate.getFullYear();return _(t,c,"year",e.formatter,e.filter)},i=t=>t===e.minDate.getFullYear(),g=t=>t===e.maxDate.getFullYear(),s=t=>t===e.minDate.getMonth()+1,f=t=>t===e.maxDate.getMonth()+1,x=t=>{const{minDate:c,columnsType:h}=e,D=h.indexOf(t),a=n.value[D];if(a)return+a;switch(t){case"year":return c.getFullYear();case"month":return c.getMonth()+1;case"day":return c.getDate()}},y=()=>{const t=x("year"),c=i(t)?e.minDate.getMonth()+1:1,h=g(t)?e.maxDate.getMonth()+1:12;return _(c,h,"month",e.formatter,e.filter)},k=()=>{const t=x("year"),c=x("month"),h=i(t)&&s(c)?e.minDate.getDate():1,D=g(t)&&f(c)?e.maxDate.getDate():se(t,c);return _(h,D,"day",e.formatter,e.filter)},d=U(()=>e.columnsType.map(t=>{switch(t){case"year":return u();case"month":return y();case"day":return k();default:throw new Error(`[Vant] DatePicker: unsupported columns type: ${t}`)}}));S(n,t=>{p(t,e.modelValue)||o("update:modelValue",t)}),S(()=>e.modelValue,t=>{t=oe(t,d.value),p(t,n.value)||(n.value=t)},{immediate:!0});const V=(...t)=>o("change",...t),M=(...t)=>o("cancel",...t),P=(...t)=>o("confirm",...t);return()=>m(ee,q({modelValue:n.value,"onUpdate:modelValue":t=>n.value=t,columns:d.value,onChange:V,onCancel:M,onConfirm:P},B(e,ae)),l)}});const Se=C(re),[ce,v,ie]=A("pull-refresh"),b=50,de=["pulling","loosing","success"],me={disabled:Boolean,modelValue:Boolean,headHeight:Y(b),successText:String,pullingText:String,loosingText:String,loadingText:String,pullDistance:I,successDuration:Y(500),animationDuration:Y(300)};var fe=H({name:ce,props:me,emits:["change","refresh","update:modelValue"],setup(e,{emit:o,slots:l}){let n;const u=F(),i=F(),g=W(u),s=O({status:"normal",distance:0,duration:0}),f=j(),x=()=>{if(e.headHeight!==b)return{height:`${e.headHeight}px`}},y=()=>s.status!=="loading"&&s.status!=="success"&&!e.disabled,k=a=>{const r=+(e.pullDistance||e.headHeight);return a>r&&(a<r*2?a=r+(a-r)/2:a=r*1.5+(a-r*2)/4),Math.round(a)},d=(a,r)=>{const T=+(e.pullDistance||e.headHeight);s.distance=a,r?s.status="loading":a===0?s.status="normal":a<T?s.status="pulling":s.status="loosing",o("change",{status:s.status,distance:a})},V=()=>{const{status:a}=s;return a==="normal"?"":e[`${a}Text`]||ie(a)},M=()=>{const{status:a,distance:r}=s;if(l[a])return l[a]({distance:r});const T=[];return de.includes(a)&&T.push(m("div",{class:v("text")},[V()])),a==="loading"&&T.push(m(G,{class:v("loading")},{default:V})),T},P=()=>{s.status="success",setTimeout(()=>{d(0)},+e.successDuration)},t=a=>{n=Q(g.value)===0,n&&(s.duration=0,f.start(a))},c=a=>{y()&&t(a)},h=a=>{if(y()){n||t(a);const{deltaY:r}=f;f.move(a),n&&r.value>=0&&f.isVertical()&&(X(a),d(k(r.value)))}},D=()=>{n&&f.deltaY.value&&y()&&(s.duration=+e.animationDuration,s.status==="loosing"?(d(+e.headHeight,!0),o("update:modelValue",!0),K(()=>o("refresh"))):d(0))};return S(()=>e.modelValue,a=>{s.duration=+e.animationDuration,a?d(+e.headHeight,!0):l.success||e.successText?P():d(0,!1)}),z("touchmove",h,{target:i}),()=>{var a;const r={transitionDuration:`${s.duration}ms`,transform:s.distance?`translate3d(0,${s.distance}px, 0)`:""};return m("div",{ref:u,class:v()},[m("div",{ref:i,class:v("track"),style:r,onTouchstartPassive:c,onTouchend:D,onTouchcancel:D},[m("div",{class:v("head"),style:x()},[M()]),(a=l.default)==null?void 0:a.call(l)])])}}});const he=C(fe),ge="_animateWrap_1kuq9_1",De="_loading_1kuq9_5",xe="_pullRefresh_1kuq9_13",ye={animateWrap:ge,loading:De,pullRefresh:xe};const Ve=H({name:"m-full-refresh",props:{title:String,modelValue:{type:Boolean,default:!1}},emits:["refresh","update:modelValue"],setup(e,{emit:o,slots:l}){const n=O({fullState:!1});return S(()=>e.modelValue,u=>{n.fullState=u}),S(()=>n.fullState,u=>{o("update:modelValue",u)}),()=>m(he,{modelValue:n.fullState,"onUpdate:modelValue":u=>n.fullState=u,onRefresh:()=>o("refresh"),loadingText:" ",class:ye.pullRefresh},{default:()=>m(Z,null,[J(" "),l.default&&l.default()])})}});export{Se as D,Ve as M};