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