1 |
- import{ab as v,aa as O,b3 as b,c as A,bH as g,d as S,r as T,e as E,w as y,aQ as x,a as I,h as N,ad as j,k as H}from"./index-d09fbffb.js";import{p as Y,P as K}from"./index-407b64e6.js";const Q=v({},Y,{modelValue:O(),filter:Function,formatter:{type:Function,default:(t,a)=>a}}),R=Object.keys(Y);function U(t,a){if(t<0)return[];const o=Array(t);let n=-1;for(;++n<t;)o[n]=a(n);return o}const Z=(t,a)=>32-new Date(t,a-1,32).getDate(),h=(t,a,o,n,c)=>{const s=U(a-t+1,u=>{const m=b(t+u);return n(o,{text:m,value:m})});return c?c(o,s):s},_=(t,a)=>t.map((o,n)=>{const c=a[n];if(c.length){const s=+c[c.length-1].value;if(+o>s)return String(s)}return o}),M=new Date().getFullYear(),[$]=A("date-picker"),q=v({},Q,{columnsType:{type:Array,default:()=>["year","month","day"]},minDate:{type:Date,default:()=>new Date(M-10,0,1),validator:g},maxDate:{type:Date,default:()=>new Date(M+10,11,31),validator:g}});var z=S({name:$,props:q,emits:["confirm","cancel","change","update:modelValue"],setup(t,{emit:a,slots:o}){const n=T(t.modelValue),c=()=>{const e=t.minDate.getFullYear(),r=t.maxDate.getFullYear();return h(e,r,"year",t.formatter,t.filter)},s=e=>e===t.minDate.getFullYear(),u=e=>e===t.maxDate.getFullYear(),m=e=>e===t.minDate.getMonth()+1,k=e=>e===t.maxDate.getMonth()+1,i=e=>{const{minDate:r,columnsType:l}=t,d=l.indexOf(e),f=n.value[d];if(f)return+f;switch(e){case"year":return r.getFullYear();case"month":return r.getMonth()+1;case"day":return r.getDate()}},V=()=>{const e=i("year"),r=s(e)?t.minDate.getMonth()+1:1,l=u(e)?t.maxDate.getMonth()+1:12;return h(r,l,"month",t.formatter,t.filter)},P=()=>{const e=i("year"),r=i("month"),l=s(e)&&m(r)?t.minDate.getDate():1,d=u(e)&&k(r)?t.maxDate.getDate():Z(e,r);return h(l,d,"day",t.formatter,t.filter)},D=E(()=>t.columnsType.map(e=>{switch(e){case"year":return c();case"month":return V();case"day":return P();default:throw new Error(`[Vant] DatePicker: unsupported columns type: ${e}`)}}));y(n,e=>{x(e,t.modelValue)||a("update:modelValue",e)}),y(()=>t.modelValue,e=>{e=_(e,D.value),x(e,n.value)||(n.value=e)},{immediate:!0});const w=(...e)=>a("change",...e),F=(...e)=>a("cancel",...e),C=(...e)=>a("confirm",...e);return()=>I(K,N({modelValue:n.value,"onUpdate:modelValue":e=>n.value=e,columns:D.value,onChange:w,onCancel:F,onConfirm:C},j(t,R)),o)}});const J=H(z);export{J as D};
|