UNPKG

vexip-ui

Version:

A Vue 3 UI library, Highly customizability, full TypeScript, performance pretty good

3 lines (2 loc) 5.02 kB
"use strict";const e=require("vue");require("../column/index.cjs");require("../number-input/index.cjs");require("../renderer/index.cjs");require("../row/index.cjs");require("./calendar-panel.vue.cjs");const s=require("@vexip-ui/config"),M=require("./props.cjs"),Y=require("./calendar-panel.vue2.cjs"),h=require("../renderer/renderer.cjs"),K=require("../row/row.cjs"),g=require("../row/column.cjs"),V=require("../number-input/number-input.vue2.cjs"),I=["onClick","onKeydown"],B=["aria-label"],F=e.defineComponent({name:"Calendar",__name:"calendar",props:M.calendarProps,emits:["update:value","update:year","update:month"],setup(N,{expose:k,emit:q}){const D=N,a=s.useProps("calendar",D,{locale:null,value:{default:null,static:!0},year:()=>new Date().getFullYear(),month:{default:()=>new Date().getMonth()+1,validator:t=>t>0&&t<=12},weekDays:{default:null,validator:t=>!t||t.length===0||t.length===7},weekStart:{default:0,validator:t=>t>=0&&t<7},today:{default:()=>new Date,validator:t=>!Number.isNaN(+new Date(t))},disabledDate:{default:()=>!1,isFunc:!0},slots:()=>({})}),w=q,r=s.useNameHelper("calendar"),_=s.useLocale("calendar",e.toRef(a,"locale")),i=e.ref(a.value),u=e.ref(a.year),o=e.ref(a.month);e.watch(()=>a.value,t=>{i.value=t}),e.watch(()=>a.year,t=>{u.value=t}),e.watch(()=>a.month,t=>{o.value=t}),k({calendarValue:i,calendarYear:u,calendarMonth:o});function $(t){return`${t}${_.value.year}`}function z(t){return`${t}${_.value.month}`}function S(t){return typeof a.disabledDate!="function"?!0:a.disabledDate(t)}function C(t){S(t)||(i.value=t),s.emitEvent(a.onSelect,t),w("update:value",t)}function E(t){u.value=t,s.emitEvent(a.onYearChange,t,o.value),w("update:year",t)}function x(t){o.value=t,s.emitEvent(a.onMonthChange,u.value,t),w("update:month",t)}return(t,b)=>(e.openBlock(),e.createBlock(Y,{value:i.value,"onUpdate:value":b[0]||(b[0]=n=>i.value=n),inherit:e.unref(a).inherit,class:e.normalizeClass([e.unref(r).b()]),year:u.value,month:o.value,"week-start":e.unref(a).weekStart,today:e.unref(a).today,"disabled-date":e.unref(a).disabledDate},{header:e.withCtx(()=>[e.renderSlot(t.$slots,"header",{},()=>[e.createVNode(e.unref(h),{renderer:e.unref(a).slots.header},{default:e.withCtx(()=>[e.createVNode(e.unref(K),{inherit:"",class:e.normalizeClass(e.unref(r).be("header")),align:"middle"},{default:e.withCtx(()=>[e.createVNode(e.unref(g),{flex:"auto"},{default:e.withCtx(()=>[e.renderSlot(t.$slots,"title",{},()=>[e.createVNode(e.unref(h),{renderer:e.unref(a).slots.title},null,8,["renderer"])])]),_:3}),e.createVNode(e.unref(g),{class:e.normalizeClass(e.unref(r).be("actions")),flex:"0"},{default:e.withCtx(()=>[e.createVNode(e.unref(V),{value:u.value,inherit:"",class:e.normalizeClass(e.unref(r).be("year-input")),min:1970,max:2300,formatter:$,onChange:E},null,8,["value","class"]),e.createVNode(e.unref(V),{value:o.value,inherit:"",class:e.normalizeClass(e.unref(r).be("month-input")),min:1,max:12,formatter:z,onChange:x},null,8,["value","class"])]),_:1},8,["class"])]),_:3},8,["class"])]),_:3},8,["renderer"])])]),week:e.withCtx(({label:n,index:p,week:l})=>[e.createElementVNode("div",{class:e.normalizeClass(e.unref(r).be("week"))},[e.renderSlot(t.$slots,"week",{label:n,index:p,week:l},()=>[e.createVNode(e.unref(h),{renderer:e.unref(a).slots.week,data:{label:n,index:p,week:l}},{default:e.withCtx(()=>[e.createElementVNode("div",{class:e.normalizeClass(e.unref(r).be("week-value"))},e.toDisplayString(n),3)]),_:2},1032,["renderer","data"])])],2)]),item:e.withCtx(({date:n,label:p,selected:l,hovered:v,isPrev:d,isNext:c,isToday:f,disabled:m})=>[e.createElementVNode("div",{class:e.normalizeClass({[e.unref(r).be("date")]:!0,[e.unref(r).bem("date","selected")]:l,[e.unref(r).bem("date","prev")]:d,[e.unref(r).bem("date","next")]:c,[e.unref(r).bem("date","today")]:f,[e.unref(r).bem("date","disabled")]:m}),tabindex:"0",onClick:y=>C(n),onKeydown:[e.withKeys(e.withModifiers(y=>C(n),["prevent"]),["enter"]),e.withKeys(e.withModifiers(y=>C(n),["prevent"]),["space"])]},[e.createElementVNode("div",{class:e.normalizeClass(e.unref(r).be("date-header"))},[e.renderSlot(t.$slots,"date",{selected:l,hovered:v,date:n,isPrev:d,isNext:c,isToday:f,disabled:m},()=>[e.createVNode(e.unref(h),{renderer:e.unref(a).slots.date,data:{selected:l,hovered:v,date:n,isPrev:d,isNext:c,isToday:f,disabled:m}},{default:e.withCtx(()=>[e.createElementVNode("div",{class:e.normalizeClass(e.unref(r).be("date-value")),"aria-label":p},e.toDisplayString(n.getDate()),11,B)]),_:2},1032,["renderer","data"])])],2),e.createElementVNode("div",{class:e.normalizeClass(e.unref(r).be("date-content"))},[e.renderSlot(t.$slots,"content",{selected:l,hovered:v,date:n,isPrev:d,isNext:c,isToday:f,disabled:m},()=>[e.createVNode(e.unref(h),{renderer:e.unref(a).slots.content,data:{selected:l,hovered:v,date:n,isPrev:d,isNext:c,isToday:f,disabled:m}},null,8,["renderer","data"])])],2)],42,I)]),_:3},8,["value","inherit","class","year","month","week-start","today","disabled-date"]))}});module.exports=F; //# sourceMappingURL=calendar.vue2.cjs.map