UNPKG

vexip-ui

Version:

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

3 lines (2 loc) 8.67 kB
"use strict";const e=require("vue"),D=require("@vexip-ui/config"),S=require("@vexip-ui/utils"),w=require("./helper.cjs"),$=["aria-label","aria-valuenow","aria-valuetext","aria-labelledby"],O=["aria-label","aria-valuenow","aria-valuetext","aria-labelledby"],F=["aria-label","aria-valuenow","aria-valuetext","aria-valuemax","aria-labelledby"],j=["aria-label","aria-valuenow","aria-valuetext","aria-labelledby"],U=["aria-label","aria-valuenow","aria-valuetext","aria-labelledby"],q=["aria-label","aria-valuenow","aria-valuetext","aria-labelledby"],A=e.defineComponent({name:"DateControl",__name:"date-control",props:{unitType:{type:String,default:""},enabled:{type:Object,default:()=>({})},activated:{type:Object,default:()=>({})},dateValue:{type:Object,default:()=>({})},dateSeparator:{type:String,default:"/"},timeSeparator:{type:String,default:":"},visible:{type:Boolean,default:!1},focused:{type:Boolean,default:!1},filler:{type:String,default:"-",validator:a=>a.length===1},steps:{type:Array,default:()=>[1,1,1]},ctrlSteps:{type:Array,default:()=>[5,5,5]},labels:{type:Object,default:()=>({})},hasError:{type:Boolean,default:!1},placeholder:{type:String,default:""},readonly:{type:Boolean,default:!1},labeledBy:{type:String,default:void 0},locale:{type:Object,default:()=>({})},dateUnitOrder:{type:Array,default:()=>["year","month","date"]}},emits:["input","plus","minus","enter","cancel","unit-focus","prev-unit","next-unit","blur"],setup(a,{expose:h,emit:g}){const l=a,u=g,r=D.useNameHelper("date-picker"),b=e.ref(),d=e.computed(()=>l.locale.ariaLabel??{}),y=e.computed(()=>Object.keys(l.enabled).every(n=>!l.enabled[n]||l.activated[n])),V=e.computed(()=>({[r.be("input")]:!0,[r.bem("input","activated")]:y.value,[r.bem("input","error")]:l.hasError})),E=e.computed(()=>l.enabled.hour||l.enabled.minute||l.enabled.second),v=e.computed(()=>c("year")),k=e.computed(()=>c("month")),f=e.computed(()=>c("date")),B=e.computed(()=>c("hour")),C=e.computed(()=>c("minute")),p=e.computed(()=>c("second")),x=e.computed(()=>S.getLastDayOfMonth(l.dateValue.year,l.dateValue.month)),s=e.computed(()=>{const[n,t,o]=l.dateUnitOrder;return{[n]:-4,[t]:-2,[o]:0}});h({isActivated:y,wrapper:b,focus:()=>{var n;(n=b.value)==null||n.focus()},blur:()=>{var n;(n=b.value)==null||n.blur()}});function c(n){const t=n==="year",o=l.filler;return l.activated[n]?t?l.dateValue.year.toString().padStart(4,"0"):S.doubleDigits(l.dateValue[n]):`${t?`${o}${o}`:""}${o}${o}`}function m(n){return l.visible&&l.unitType===n?r.bem("unit","focused"):null}function i(n){l.readonly||u("unit-focus",n)}function z(n){if(!l.visible)return;const t=w.handleKeyEnter(n);if(l.readonly){switch(t){case"ok":{u("enter");break}case"esc":{u("cancel");break}}return}switch(t){case"next":{u("next-unit");break}case"prev":{u("prev-unit");break}case"up":{u("minus",n.ctrlKey);break}case"down":{u("plus",n.ctrlKey);break}case"ok":{u("enter");break}case"esc":{u("cancel");break}default:typeof t=="number"&&u("input",t)}}function N(){u("blur")}return(n,t)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"wrapper",ref:b,class:e.normalizeClass(V.value),role:"none",tabindex:"-1",onKeydown:z,onBlur:N},[!a.focused&&!y.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(e.unref(r).be("placeholder"))},e.toDisplayString(a.placeholder),3)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[a.enabled.year?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass([e.unref(r).be("unit"),m("year")]),role:"spinbutton","aria-label":d.value.year,"aria-valuenow":l.dateValue.year,"aria-valuetext":v.value,"aria-valuemin":1,"aria-valuemax":9999,"aria-labelledby":a.labeledBy,style:e.normalizeStyle({order:s.value.year}),onClick:t[0]||(t[0]=o=>i("year"))},e.toDisplayString(v.value),15,$)):e.createCommentVNode("",!0),a.labels.year?(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(e.unref(r).be("label")),"aria-hidden":"",style:e.normalizeStyle({order:s.value.year}),onClick:t[1]||(t[1]=o=>i("year"))},e.toDisplayString(a.labels.year),7)):e.createCommentVNode("",!0),a.enabled.month?(e.openBlock(),e.createElementBlock(e.Fragment,{key:2},[a.enabled.year?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(e.unref(r).be("separator")),"aria-hidden":"",style:{order:"-3"}},e.toDisplayString(a.dateSeparator),3)):e.createCommentVNode("",!0),e.createElementVNode("div",{class:e.normalizeClass([e.unref(r).be("unit"),m("month")]),role:"spinbutton","aria-label":d.value.month,"aria-valuenow":l.dateValue.month,"aria-valuetext":k.value,"aria-valuemin":1,"aria-valuemax":12,"aria-labelledby":a.labeledBy,style:e.normalizeStyle({order:s.value.month}),onClick:t[2]||(t[2]=o=>i("month"))},e.toDisplayString(k.value),15,O),a.labels.month?(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(e.unref(r).be("label")),"aria-hidden":"",style:e.normalizeStyle({order:s.value.month}),onClick:t[3]||(t[3]=o=>i("month"))},e.toDisplayString(a.labels.month),7)):e.createCommentVNode("",!0)],64)):e.createCommentVNode("",!0),a.enabled.date?(e.openBlock(),e.createElementBlock(e.Fragment,{key:3},[a.enabled.month||a.enabled.year?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(e.unref(r).be("separator")),"aria-hidden":"",style:{order:"-1"}},e.toDisplayString(a.dateSeparator),3)):e.createCommentVNode("",!0),e.createElementVNode("div",{class:e.normalizeClass([e.unref(r).be("unit"),m("date")]),role:"spinbutton","aria-label":d.value.date,"aria-valuenow":l.dateValue.date,"aria-valuetext":f.value,"aria-valuemin":1,"aria-valuemax":x.value||31,"aria-labelledby":a.labeledBy,style:e.normalizeStyle({order:s.value.date}),onClick:t[4]||(t[4]=o=>i("date"))},e.toDisplayString(f.value),15,F),a.labels.date?(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(e.unref(r).be("label")),"aria-hidden":"",style:e.normalizeStyle({order:s.value.date}),onClick:t[5]||(t[5]=o=>i("date"))},e.toDisplayString(a.labels.date),7)):e.createCommentVNode("",!0)],64)):e.createCommentVNode("",!0),E.value?(e.openBlock(),e.createElementBlock(e.Fragment,{key:4},[e.createElementVNode("div",{class:e.normalizeClass(e.unref(r).be("pad"))},null,2),a.enabled.hour?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass([e.unref(r).be("unit"),m("hour")]),role:"spinbutton","aria-label":d.value.hour,"aria-valuenow":l.dateValue.hour,"aria-valuetext":B.value,"aria-valuemin":0,"aria-valuemax":23,"aria-labelledby":a.labeledBy,onClick:t[6]||(t[6]=o=>i("hour"))},e.toDisplayString(B.value),11,j)):e.createCommentVNode("",!0),a.labels.hour?(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(e.unref(r).be("label")),"aria-hidden":"",onClick:t[7]||(t[7]=o=>i("hour"))},e.toDisplayString(a.labels.hour),3)):e.createCommentVNode("",!0),a.enabled.minute?(e.openBlock(),e.createElementBlock(e.Fragment,{key:2},[a.enabled.hour?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(e.unref(r).be("separator")),"aria-hidden":""},e.toDisplayString(a.timeSeparator),3)):e.createCommentVNode("",!0),e.createElementVNode("div",{class:e.normalizeClass([e.unref(r).be("unit"),m("minute")]),role:"spinbutton","aria-label":d.value.minute,"aria-valuenow":l.dateValue.minute,"aria-valuetext":C.value,"aria-valuemin":0,"aria-valuemax":59,"aria-labelledby":a.labeledBy,onClick:t[8]||(t[8]=o=>i("minute"))},e.toDisplayString(C.value),11,U),a.labels.minute?(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(e.unref(r).be("label")),"aria-hidden":"",onClick:t[9]||(t[9]=o=>i("minute"))},e.toDisplayString(a.labels.minute),3)):e.createCommentVNode("",!0)],64)):e.createCommentVNode("",!0),a.enabled.second?(e.openBlock(),e.createElementBlock(e.Fragment,{key:3},[a.enabled.minute||a.enabled.hour?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(e.unref(r).be("separator")),"aria-hidden":""},e.toDisplayString(a.timeSeparator),3)):e.createCommentVNode("",!0),e.createElementVNode("div",{class:e.normalizeClass([e.unref(r).be("unit"),m("second")]),role:"spinbutton","aria-label":d.value.second,"aria-valuenow":l.dateValue.second,"aria-valuetext":p.value,"aria-valuemin":0,"aria-valuemax":59,"aria-labelledby":a.labeledBy,onClick:t[10]||(t[10]=o=>i("second"))},e.toDisplayString(p.value),11,q),a.labels.second?(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(e.unref(r).be("label")),"aria-hidden":"",onClick:t[11]||(t[11]=o=>i("second"))},e.toDisplayString(a.labels.second),3)):e.createCommentVNode("",!0)],64)):e.createCommentVNode("",!0)],64)):e.createCommentVNode("",!0)],64))],34))}});module.exports=A; //# sourceMappingURL=date-control.vue2.cjs.map