index-e853a34b.js 2.3 KB

1
  1. import{ac as v,ab as O,b4 as b,c as A,bI as g,d as I,r as S,e as T,w as y,aR as x,a as E,h as N,ae as R,k as j}from"./index-9d2c003a.js";import{p as Y,P as K}from"./index-e3a74622.js";const U=v({},Y,{modelValue:O(),filter:Function,formatter:{type:Function,default:(t,a)=>a}}),Z=Object.keys(Y);function _(t,a){if(t<0)return[];const o=Array(t);let n=-1;for(;++n<t;)o[n]=a(n);return o}const $=(t,a)=>32-new Date(t,a-1,32).getDate(),h=(t,a,o,n,c)=>{const s=_(a-t+1,u=>{const m=b(t+u);return n(o,{text:m,value:m})});return c?c(o,s):s},q=(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(),[z]=A("date-picker"),B=v({},U,{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 G=I({name:z,props:B,emits:["confirm","cancel","change","update:modelValue"],setup(t,{emit:a,slots:o}){const n=S(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():$(e,r);return h(l,d,"day",t.formatter,t.filter)},D=T(()=>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=q(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()=>E(K,N({modelValue:n.value,"onUpdate:modelValue":e=>n.value=e,columns:D.value,onChange:w,onCancel:F,onConfirm:C},R(t,Z)),o)}});const L=j(G);export{L as D};