UNPKG

vexip-ui

Version:

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

3 lines (2 loc) 2.37 kB
"use strict";const t=require("vue"),f=require("@vexip-ui/config"),o=require("@vexip-ui/utils"),v=["aria-selected","aria-disabled"],m=["aria-label","aria-disabled"],y=t.defineComponent({__name:"calendar-cell",props:{date:{type:Date,required:!0},locale:{type:Object,required:!0},selected:{type:Boolean,default:!1},hovered:{type:Boolean,default:!1},isPrev:{type:Boolean,default:!1},isNext:{type:Boolean,default:!1},isToday:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},inRange:{type:Boolean,default:!1}},emits:["select","hover"],setup(e,{emit:u}){const d=e,s=u,a=f.useNameHelper("calendar"),r=t.computed(()=>{const n=d.locale.ariaLabel,l=d.date.getFullYear(),i=d.date.getMonth()+1,c=d.date.getDate(),b=d.date.getDay()||7;return`${n[`week${b}`]}, ${n[`month${i}`]} ${c}, ${l}`});return(n,l)=>(t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(t.unref(a).be("cell")),role:"gridcell","aria-selected":t.unref(o.toAttrValue)(e.selected),"aria-disabled":t.unref(o.toAttrValue)(e.disabled),onMouseenter:l[3]||(l[3]=i=>s("hover",e.date))},[t.renderSlot(n.$slots,"item",{date:e.date,label:r.value,selected:e.selected,hovered:e.hovered,isPrev:e.isPrev,isNext:e.isNext,isToday:e.isToday,disabled:e.disabled,inRange:e.inRange},()=>[t.createElementVNode("div",{class:t.normalizeClass({[t.unref(a).be("index")]:!0,[t.unref(a).bem("index","selected")]:e.selected,[t.unref(a).bem("index","hovered")]:e.hovered,[t.unref(a).bem("index","prev")]:e.isPrev,[t.unref(a).bem("index","next")]:e.isNext,[t.unref(a).bem("index","today")]:e.isToday,[t.unref(a).bem("index","disabled")]:e.disabled,[t.unref(a).bem("index","in-range")]:e.inRange}),tabindex:"0",role:"button","aria-label":r.value,"aria-disabled":t.unref(o.toAttrValue)(e.disabled),onClick:l[0]||(l[0]=i=>s("select",e.date)),onKeydown:[l[1]||(l[1]=t.withKeys(t.withModifiers(i=>s("select",e.date),["prevent"]),["enter"])),l[2]||(l[2]=t.withKeys(t.withModifiers(i=>s("select",e.date),["prevent"]),["space"]))]},[t.renderSlot(n.$slots,"default",{date:e.date,label:r.value,selected:e.selected,hovered:e.hovered,isPrev:e.isPrev,isNext:e.isNext,isToday:e.isToday,disabled:e.disabled,inRange:e.inRange},()=>[t.createElementVNode("div",{class:t.normalizeClass(t.unref(a).be("index-inner"))},t.toDisplayString(e.date.getDate()),3)])],42,m)])],42,v))}});module.exports=y; //# sourceMappingURL=calendar-cell.vue2.cjs.map