@progress/kendo-vue-dateinputs
Version:
9 lines (8 loc) • 5.27 kB
JavaScript
/**
* @license
*-------------------------------------------------------------------------------------------
* Copyright © 2025 Progress Software Corporation. All rights reserved.
* Licensed under commercial license. See LICENSE.md in the package root for more information
*-------------------------------------------------------------------------------------------
*/
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("vue"),o=require("@progress/kendo-date-math"),f=require("@progress/kendo-vue-intl"),c=require("@progress/kendo-vue-common"),w=require("./CalendarCell.js"),D=require("./CalendarWeekCell.js"),h=require("../models/CalendarViewEnum.js"),d=require("../../utils.js"),S=require("../services/WeekNamesService.js");function y(t){return typeof t=="function"||Object.prototype.toString.call(t)==="[object Object]"&&!s.isVNode(t)}const R=s.defineComponent({name:"KendoView",inject:{kendoIntlService:{default:null}},props:{activeRangeEnd:{type:String},activeView:{type:Number,required:!0},cell:[String,Function,Object],cellUID:{type:String,required:!0},direction:{type:String,default:"vertical"},isActive:{type:Boolean,default:void 0},focusedDate:{type:Date,required:!0},max:{type:Date,required:!0},min:{type:Date,required:!0},selectedDate:{type:[Date,Array,Object],default:function(){return d.getToday()}},selectionRange:Object,showWeekNumbers:{type:Boolean,default:!1},viewDate:{type:Date,required:!0},weekCell:[String,Function,Object],bus:Object,service:Object,onChange:Function,onWeekcellclick:Function,onCellenter:Function,onViewmousedown:Function},computed:{isHorizontal(){return this.$props.direction==="horizontal"},isMonthView(){return this.$props.activeView===h.CalendarViewEnum.month},weekNumber(){return!!(this.$props.showWeekNumbers&&this.$props.activeView===h.CalendarViewEnum.month)}},methods:{getWeekNumber(t){return this.weekNumber?o.weekInYear(t,this._intl.firstDay()):null},firstDate(t){const i=this.firstWeekDateContext(t);return i?i.value:null},firstWeekDateContext(t){if(!this.weekNumber)return null;let i=0,n=t[i];for(;!n&&i<t.length;)n=t[++i];return n},handleClick(t,i){const n={value:o.cloneDate(t),target:this,event:i};this.$emit("change",n)},handleWeekCellClick(t,i){const n={value:t,event:i};this.$emit("weekcellclick",n)},handleMouseDown(t,i){const n={value:o.cloneDate(t),target:this,event:i};this.$emit("viewmousedown",n)},handleMouseEnter(t){this.$emit("cellenter",o.cloneDate(t))},handleMouseLeave(t){this.$emit("cellleave",o.cloneDate(t))}},setup(){return{kendoIntlService:s.inject("kendoIntlService",{})}},render(){this._intl=f.provideIntlService(this),this._weekService=new S.WeekNamesService(this._intl);const t=r=>s.createVNode("td",{key:r,class:"k-calendar-td k-empty"},[s.createTextVNode(" ")]),i=d.getToday(),n=this.$props.isActive?this.$props.focusedDate:null,p=d.setTime(this.$props.viewDate,i),k=this.$props.service.data({cellUID:this.$props.cellUID,min:this.$props.min,max:this.$props.max,focusedDate:n,isActiveView:!this.$props.bus.canMoveDown(this.$props.activeView),selectedDate:this.$props.selectedDate,selectionRange:this.$props.selectionRange,viewDate:p}),g=function(r,e){if(!this.firstDate(r))return t(`week-cell-${e}`);const a=this.getWeekNumber(this.firstDate(r)),l=`kendo-vue-calendar-week-cell-${a}`,v=s.createVNode(D.CalendarWeekCell,{class:"k-calendar-td k-alt",value:a,onClick:this.handleWeekCellClick,key:l},y(a)?a:{default:()=>[a]});return c.getTemplate.call(this,{h:s.h,template:this.$props.weekCell,defaultRendering:v,defaultSlots:a,additionalListeners:{click:this.handleWeekCellClick},additionalProps:{value:a,key:l}})},m=function(r){return r.map(function(e,u){if(!e)return t(u);const a=`kendo-vue-calendar-cell-${e.value.getTime()}`,l=s.createVNode(w.CalendarCell,{"aria-selected":e.isSelected,formattedValue:e.formattedValue,id:e.id,isFocused:e.isFocused,isSelected:e.isSelected,isInRange:e.isInRange,isWeekend:e.isWeekend,isRangeStart:e.isRangeStart,isRangeMid:e.isRangeMid,isRangeEnd:e.isRangeEnd,isRangeSplitStart:e.isRangeSplitStart,isRangeSplitEnd:e.isRangeSplitEnd,isToday:e.isToday,title:e.title,value:e.value,isDisabled:!e.isInRange,view:this.$props.activeView,onClick:this.handleClick,onMousedown:this.handleMouseDown,onMouseenter:this.handleMouseEnter,onMouseleave:this.handleMouseLeave,key:a},{default:()=>[e.formattedValue]});return c.getTemplate.call(this,{h:s.h,template:this.$props.cell,defaultRendering:l,defaultSlots:e.formattedValue,additionalListeners:{click:this.handleClick,mousedown:this.handleMouseDown,mouseenter:this.handleMouseEnter,mouseleave:this.handleMouseLeave},additionalProps:{formattedValue:e.formattedValue,id:e.id,isFocused:e.isFocused,isSelected:e.isSelected,isInRange:e.isInRange,isWeekend:e.isWeekend,isRangeStart:e.isRangeStart,isRangeMid:e.isRangeMid,isRangeEnd:e.isRangeEnd,isRangeSplitStart:e.isRangeSplitStart,isRangeSplitEnd:e.isRangeSplitEnd,isToday:e.isToday,title:e.title,value:e.value,isDisabled:!e.isInRange,view:this.$props.activeView,key:a}})},this)};return s.createVNode("tbody",{class:"k-calendar-tbody",role:"rowgroup"},[k.map(function(r,e){return s.createVNode("tr",{class:"k-calendar-tr",role:"row",key:e},[this.weekNumber&&g.call(this,r,e),m.call(this,r)])},this)])}});exports.View=R;