@progress/kendo-ui
Version:
This package is part of the [Kendo UI for jQuery](http://www.telerik.com/kendo-ui) suite.
27 lines • 37.4 kB
JavaScript
/* @license */
(function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require("kendo.core.min.js"),require("kendo.selectable.min.js"),require("kendo.icons.min.js")):typeof define==`function`&&define.amd?define([`exports`,`kendo.core.min`,`kendo.selectable.min`,`kendo.icons.min`],t):(e=typeof globalThis<`u`?globalThis:e||self,t((e.kendo=e.kendo||{},e.kendo._globals=e.kendo._globals||{},e.kendo._globals.Calendar={}),e.kendo._globals.Core,e.kendo._globals.Selectable,e.kendo._globals.Icons))})(this,function(e,t,n,r){Object.defineProperties(e,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});let i={id:`calendar`,name:`Calendar`,category:`web`,description:`The Calendar widget renders a graphical calendar that supports navigation and selection.`,depends:[`core`,`selectable`]};(function(e,t){let n=window.kendo,r=n.support,i=n.ui,a=i.Widget,o=n.keys,s=n.parseDate,c=n.htmlEncode,l=n.date.adjustDST,u=n.date.weekInYear,d=n.ui.Selectable,f=n.ui.RangeSelectable,p=n._extractFormat,m=n.template,h=n.getCulture,g=m(e=>`<td class="${e.cssClass}" role="gridcell"${e.ariaDisabled?` aria-disabled="true"`:``}><span tabindex="-1" class="k-link" data-href="#" data-${e.ns}value="${e.dateString}">${e.value}</span></td>`),_=m(()=>`<td role="gridcell" class="k-calendar-td k-empty"></td>`),v=m(()=>`<td role="gridcell" class="k-calendar-td k-empty"> </td>`),y=m(e=>`<td class="k-calendar-td k-alt">${e.weekNumber}</td>`),b=n._outerWidth,x=`.kendoCalendar`,S=`click.kendoCalendar`,C=`slideIn`,w=`month`,T=`century`,E=`change`,D=`navigate`,O=`value`,k=`k-disabled`,A=`k-focus`,ee=`k-other-month`,j=`k-empty`,M=`td:has(.k-link)`,te=`start`,N=`td:has(.k-link):not(.k-disabled):not(.k-empty)`,P=`k-selected`,ne=r.touch?`touchstart`:`mouseenter`,re=r.touch?`touchstart.kendoCalendar`:`mouseenter.kendoCalendar`,ie=r.touch?`touchend.kendoCalendar touchmove.kendoCalendar`:`mouseleave.kendoCalendar`,ae=864e5,F=`_prevArrow`,I=`_nextArrow`,L=`aria-disabled`,oe=`aria-selected`,R=`aria-label`,se=e.extend,z=Date,B={month:0,year:1,decade:2,century:3},V=`.k-header, .k-calendar-header`;var ce=a.extend({init:function(t,r){var i=this,o;r||={},r.componentType=r.componentType||`classic`,a.fn.init.call(i,t,r),t=i.wrapper=i.element,r=i.options,r.url=n.unescape(r.url),i.options.disableDates=Z(i.options.disableDates),i._templates(),i._selectable(),i._header(),i._viewWrapper(),i.options.hasFooter?i._footer(i.footer):(i._today=i.element.find(`.k-calendar-nav-today`),i._toggle()),t.addClass(`k-calendar `+(r.weekNumber?` k-week-number`:``)).on(re+` `+ie,M,me).on(`keydown.kendoCalendar`,`table.k-calendar-table`,i,i._move.bind(i)).on(`click.kendoCalendar touchend`,N,function(t){var n=t.currentTarget.firstChild,r=Q(n);e(n).data(`href`).indexOf(`#`)!=-1&&t.preventDefault(),!(i._view.name==`month`&&i.options.disableDates(r))&&(i._view.name!=`month`||i._isSingleSelection())&&i._click(e(n))}).on(`mouseup.kendoCalendar`,`table.k-calendar-table, .k-calendar-footer`,function(){i._focusView(i.options.focusOnNav!==!1)}).attr(`id`),i.options.weekNumber&&t.on(S,`td:not(:has(.k-link))`,function(t){var n=e(t.currentTarget).closest(`tr`).find(N).first(),r=e(t.currentTarget).closest(`tr`).find(N).last();i._isMultipleSelection()&&(i.selectable._lastActive=r,i.selectable.selectRange(n,r),i.selectable.trigger(E,{event:t})),i._isRangeSelection()&&(i.rangeSelectable._lastActive=r,i.rangeSelectable.range(n,r),i.rangeSelectable.change()),i._current=i._value=Q(r.find(`span`)),i._setCurrent(i._current)}),X(r),o=s(r.value,r.format,r.culture),i._selectDates=[],i._index=B[r.start],i._current=new z(+K(o,r.min,r.max)),i._addClassProxy=function(){if(i._active=!0,i._cell.hasClass(k)){var e=i._view.toDateString(G());i._cell=i._cellByDate(e)}i._cell.addClass(A)},i._removeClassProxy=function(){i._active=!1,i._cell&&i._cell.removeClass(A)},i.value(o),i._isMultipleSelection()&&r.selectDates.length>0&&i.selectDates(r.selectDates),i._range=r.range,i._isRangeSelection()&&i.selectRange(i._range),n.notify(i),a.fn.endInit.call(this)},options:{name:`Calendar`,value:null,min:new z(1900,0,1),max:new z(2099,11,31),dates:[],disableDates:null,allowReverse:!1,centuryCellsFormat:`long`,url:``,culture:``,footer:``,format:``,month:{},weekNumber:!1,range:{start:null,end:null,target:te},selectable:`single`,selectDates:[],start:w,depth:w,size:t,showOtherMonthDays:!0,animation:{horizontal:{effects:C,reverse:!0,duration:500,divisor:2},vertical:{effects:`zoomIn`,duration:400}},messages:{weekColumnHeader:``,today:`Today`,navigateTo:`Navigate to `,navigateToPast:`Navigate to previous view`,navigateToFuture:`Navigate to next view`,navigateToParentView:`parent view`,parentViews:{month:`year view`,year:`decade view`,decade:`century view`}},componentType:`classic`},events:[E,D,`kendoKeydown`],componentTypes:{classic:{header:{template:({actionAttr:e,size:t,isRtl:r})=>`<div class="k-header k-hstack">
<span tabindex="-1" data-href="#" ${e}="prev" role="button" class="k-calendar-nav-prev k-button ${t} k-button-flat k-icon-button" ${R}="Previous">${n.ui.icon({icon:`chevron-${r?`right`:`left`}`,iconClass:`k-button-icon`})}</span></span>
<span tabindex="-1" data-href="#" ${e}="nav-up" id="`+n.guid()+`" role="button" class="k-calendar-nav-fast k-button ${t} k-button-flat k-flex"></span>
<span tabindex="-1" data-href="#" ${e}="next" role="button" class="k-calendar-nav-next k-button ${t} k-button-flat k-icon-button" ${R}="Next">${n.ui.icon({icon:`chevron-${r?`left`:`right`}`,iconClass:`k-button-icon`})}</span>
</div>`},hasFooter:!0,linksSelector:`.k-button`,contentClasses:`k-calendar-table`},modern:{header:{template:({actionAttr:e,size:t,messages:r,isRtl:i})=>`<div class="k-calendar-header">
<button ${e}="nav-up" id="`+n.guid()+`" class="k-calendar-title k-button ${t} k-button-flat k-button-primary">
<span class="k-button-text"></span>
</button>
<span class="k-spacer"></span>
<span class="k-calendar-nav">
<button tabindex="-1" ${e}=${i?`next`:`prev`} class="k-calendar-nav-prev k-button ${t} k-button-flat k-icon-button" aria-label="${r.navigateToPast}">
${n.ui.icon({icon:`chevron-${i?`right`:`left`}`,iconClass:`k-button-icon`})}
</button>
<button tabindex="-1" ${e}="today" class="k-calendar-nav-today k-button ${t} k-button-flat">
<span class="k-button-text">${n.htmlEncode(r.today)}</span>
</button>
<button tabindex="-1" ${e}=${i?`prev`:`next`} class="k-calendar-nav-next k-button ${t} k-button-flat k-icon-button" aria-label="${r.navigateToFuture}">
${n.ui.icon({icon:`chevron-${i?`left`:`right`}`,iconClass:`k-button-icon`})}
</button>
</span>
</div>`},hasFooter:!1,linksSelector:`.k-button`,contentClasses:`k-calendar-table`}},setOptions:function(t){let n=this,r=!1;if(t.componentType&&(r=t.componentType!==n.options.componentType),X(t),t.disableDates=Z(t.disableDates),n._destroySelectable(),t.messages&&=e.extend({},!0,n.options.messages,t.messages),a.fn.setOptions.call(n,t),n._templates(),n._selectable(),r){let e=ce.prototype.componentTypes;n.options.header=e[t.componentType].header,n.options.hasFooter=e[t.componentType].hasFooter;let r=n.element.find(V)[0];r&&r.remove(),n._header()}n._viewWrapper(),n.options.hasFooter?n._footer(n.footer):(n.element.find(`.k-calendar-footer`).hide(),n._toggle()),n._index=B[n.options.start],n.navigate();let i=s(t.value||n.options.value||n._value,t.format,t.culture);r&&(n._current=new z(+K(i,t.min,t.max)),n._cell=null,n._table=null),n.value(i),t.weekNumber&&n.element.addClass(`k-week-number`)},destroy:function(){var e=this,t=e._today;e.element.off(x),e._title.off(x),e[F].off(x),e[I].off(x),e._destroySelectable(),n.destroy(e._table),t&&n.destroy(t.off(x)),a.fn.destroy.call(e)},current:function(){return this._current},view:function(){return this._view},focus:function(e){e||=this._table,this._bindTable(e),e.trigger(`focus`)},min:function(e){return this._option(`min`,e)},max:function(e){return this._option(`max`,e)},navigateToPast:function(){this._navigate(F,-1)},navigateToFuture:function(){this._navigate(I,1)},navigateUp:function(){var e=this,t=e._index;e._title.hasClass(k)||e.navigate(e._current,++t)},navigateDown:function(e){var t=this,n=t._index,r=t.options.depth;if(e){if(n===B[r]){(!xe(t._value,t._current)||!xe(t._value,e))&&(t.value(e),t.trigger(E));return}t.navigate(e,--n)}},navigate:function(n,r){r=isNaN(r)?B[r]:r;var i=this,a=i.options,o=a.culture,s=a.min,l=a.max,u=i._title,d=i._table,f=i._oldTable,p=i._current,m=n&&+n>+p,h=r!==t&&r!==i._index,g,_,v,y,b=i.element.children(`.k-calendar-view`);if(n||=p,i._current=n=new z(+K(n,s,l)),r===t?r=i._index:i._index=r,i._view=_=H.views[r],v=_.compare,y=r===B[T],u.toggleClass(k,y),y?u.attr(L,!0):u.removeAttr(L),y=v(n,s)<1,i[F].toggleClass(k,y),y?i[F].attr(L,!0):i[F].removeAttr(L),y=v(n,l)>-1,i[I].toggleClass(k,y),y?i[I].attr(L,!0):i[I].removeAttr(L),d&&f&&f.data(`animating`)&&(f.kendoStop(!0,!0),d.kendoStop(!0,!0)),i._oldTable=d,!d||i._changeView){var x=i.options.messages,S=_.title(n,s,l,o);u.html(`<span class="k-button-text">`+S+`</span>`),u.attr(`aria-label`,x.navigateTo+x.navigateToParentView+`: `+S),x.parentViews&&i._view.name!==T?u.attr(`title`,c(x.navigateTo+x.parentViews[i._view.name])):u.removeAttr(`title`),i._table=g=e(_.content(se({min:s,max:l,date:n,url:a.url,dates:a.dates,format:a.format,showOtherMonthDays:a.showOtherMonthDays,centuryCellsFormat:a.centuryCellsFormat,culture:o,disableDates:a.disableDates,isWeekColumnVisible:a.weekNumber,messages:a.messages,contentClasses:i.options.contentClasses},i[_.name]))),i._aria();var C=d&&d.data(`start`)===g.data(`start`);i._animate({from:d,to:g,vertical:h,future:m,replace:C}),b.removeClass(`k-calendar-monthview k-calendar-yearview k-calendar-decadeview k-calendar-centuryview`),b.addClass(`k-calendar-`+_.name+`view`),i.trigger(D),i._focus(n)}r===B[a.depth]&&i._selectDates.length>0&&i._visualizeSelectedDatesInView(),i._isSingleSelection()&&r===B[a.depth]&&i._value&&!i.options.disableDates(i._value)&&i._selectCell(i._value),i._setCurrent(n),!d&&i._cell&&i._cell.removeClass(A),i._changeView=!0},selectDates:function(n){var r=this,i,a;if(n===t)return r._selectDates;a=n.map(function(e){return e.getTime()}).filter(function(e,t,n){return n.indexOf(e)===t}).map(function(e){return new Date(e)}),i=e.grep(a,function(e){if(e)return+r._validateValue(new Date(e.setHours(0,0,0,0)))==+e}),r._selectDates=i.length>0?i:a.length===0?a:r._selectDates,r._visualizeSelectedDatesInView()},value:function(e){var n=this,r=n._view,i=n._view;if(e===t)return n._value;if(e=n._validateValue(e),e&&n._isMultipleSelection()){var a=new Date(+e);a.setHours(0,0,0,0),n._selectDates=[a],n.selectable._lastActive=null}r&&e===null&&n._cell?n._cell.removeClass(P):(n._changeView=!e||i&&i.compare(e,n._current)!==0,n.navigate(e))},isRtl:function(){return n.support.isRtl(this.wrapper)},_aria:function(){var e=this._table;e.attr(`aria-labelledby`,this._title.attr(`id`)),this._view.name===`month`&&this._isMultipleSelection()&&e.attr(`aria-multiselectable`,`true`)},_validateValue:function(e){var n=this,r=n.options,i=r.min,a=r.max;return e===null&&(n._current=J(n._current.getFullYear(),n._current.getMonth(),n._current.getDate())),e=s(e,r.format,r.culture),e!==null&&(e=new z(+e),q(e,i,a)||(e=null)),e===null||!n.options.disableDates(new Date(+e))?n._value=e:n._value===t&&(n._value=null),n._value},_visualizeSelectedDatesInView:function(){var t=this,r={};e.each(t._selectDates,function(e,t){r[n.calendar.views[0].toDateString(t)]=t}),t.selectable.clear();var i=t._table.find(M).filter(function(t,i){return r[e(i.firstChild).attr(n.attr(O))]});i.length>0&&t.selectable._selectElement(i,!0)},_isSingleSelection:function(){let e=this.options.selectable;return d.parseOptions(e).single},_isMultipleSelection:function(){let e=this.options.selectable;return d.parseOptions(e).multiple},_isRangeSelection:function(){let e=this.options.selectable;return d.parseOptions(e).range},_selectable:function(){let e=this,t=e.options.selectable,n=d.parseOptions(t);!e._isMultipleSelection()&&!e._isRangeSelection()||(e.rangeSelectable&&=(e.rangeSelectable.destroy(),null),n.range?(e.rangeSelectable=new f(e.wrapper,{widget:e,filter:`.k-calendar-monthview table td:has(.k-link):not(.k-disabled):not(.k-empty)`,cellSelector:M,cellSelectorValid:N,change:e._onSelect.bind(e),reverse:e.options.allowReverse,resetOnStart:!0,ns:x}),e.element.addClass(`k-calendar-range`)):e.selectable=new d(e.wrapper,{aria:!0,inputSelectors:`input,textarea,.k-multiselect-wrap,select,button,.k-button>span,.k-button>img,.k-icon,.k-svg-icon,.k-svg-icon *`,multiple:n.multiple,filter:`table.k-calendar-table:eq(0) td:has(.k-link):not(.k-disabled):not(.k-empty)`,change:e._onSelect.bind(e),relatedTarget:e._onRelatedTarget.bind(e)}))},_restoreSelection:function(){let e=this,t;if(e._preventChange=!0,e._isRangeSelection()){if(t=e.selectRange(),!t||!t.start){e._preventChange=!1;return}e.selectRange(t)}e._preventChange=!1},selectRange:function(e){let n=this,r=n._view,i,a,o;if(e===t)return n._range;n._range=e,e.start&&(o=n._visibleRange(),i=n._dateInViews(e.start),a=e.end&&n._dateInViews(e.end),!i&&a&&n.rangeSelectable.selectTo(n._cellByDate(r.toDateString(e.end))),i&&a&&n.rangeSelectable.range(n._cellByDate(r.toDateString(e.start)),n._cellByDate(r.toDateString(e.end)),!1,n.options.allowReverse),e.end&&i&&!a&&n.rangeSelectable.selectFrom(n._cellByDate(r.toDateString(e.start))),!e.end&&i&&n.rangeSelectable.start(n._cellByDate(r.toDateString(e.start))),+o.start>+e.start&&+o.end<+e.end&&n.rangeSelectable.mid(n.element.find(N)))},_onRelatedTarget:function(e){var t=this;t.selectable.options.multiple&&e.is(N)&&(t._current=Q(e.find(`span`)),t._setCurrent(t._current))},_onSelect:function(t){let n=this,r=t,i,a=t.sender._useEnd,o=t.sender._useStart,s,c,l,u,f,p=d.parseOptions(n.options.selectable);if(n._isRangeSelection()){i=t.sender.range(),s=n.selectRange()||{},f=s.target,i.start&&i.start.length&&(c=Q(i.start.find(`span`))),i.end&&i.end.length&&(l=Q(i.end.find(`span`))),f=f===`end`?te:`end`,n._range={start:o?s.start:c,end:a?s.end:l,target:f},n._preventChange||n.trigger(E),u=l||c,l&&!n._dateInViews(l)&&(u=c),n.selectRange(n._range),n.value(u);return}if(!p.multiple){e(r.event.currentTarget).is(`td`)&&!e(r.event.currentTarget).hasClass(`k-selected`)?e(r.event.currentTarget).addClass(`k-selected`):n._click(e(r.event.currentTarget).find(`span`));return}r.event.ctrlKey||r.event.metaKey?e(r.event.currentTarget).is(N)?n._toggleSelection(e(r.event.currentTarget)):(n._cellsBySelector(N).each(function(t,r){var i=Q(e(r).find(`span`));n._deselect(i)}),n._addSelectedCellsToArray()):r.event.shiftKey?n._rangeSelection(n._cell):e(r.event.currentTarget).is(M)?n.value(Q(e(r.event.currentTarget).find(`span`))):(n._selectDates=[],n._addSelectedCellsToArray()),n.trigger(E)},_destroySelectable:function(){var e=this;e.selectable&&=(e.selectable.destroy(),null),e.rangeSelectable&&=(e.rangeSelectable.destroy(),null)},_toggleSelection:function(e){var t=this,n=Q(e.find(`span`));e.hasClass(`k-selected`)?t._selectDates.push(n):t._deselect(n)},_rangeSelection:function(e,t){var n=this,r=t||Q(n.selectable.value().first().find(`span`)),i=Q(e.find(`span`)),a;n.selectable._lastActive||n._value?r=n.selectable._lastActive?Q(n.selectable._lastActive.find(`span`)):new Date(+n._value):n.selectable._lastActive=t?n._cellByDate(n._view.toDateString(t),N):n.selectable.value().first(),n._selectDates=[],a=fe(r,i),pe(n._selectDates,a,r,n.options.disableDates),n._visualizeSelectedDatesInView()},_visibleRange:function(){let e=this.element.find(`.k-calendar-view table`);return{start:Q(e.first().find(M).first().find(`span`)),end:Q(e.last().find(M).last().find(`span`))}},_cellsBySelector:function(e){return this._table.find(e)},_addSelectedCellsToArray:function(){var t=this;t.selectable.value().each(function(n,r){var i=Q(e(r.firstChild));t.options.disableDates(i)||t._selectDates.push(i)})},_deselect:function(e){var t=this,n=t._selectDates.map(Number).indexOf(+e);n!=-1&&t._selectDates.splice(n,1)},_dateInView:function(e){var t=this,n=Q(t._cellsBySelector(N).first().find(`span`)),r=Q(t._cellsBySelector(N).last().find(`span`));return+e<=+r&&+e>=+n},_isNavigatable:function(e,t){var n=this,r=n.options.disableDates,i,a;return n._view.name==`month`?!r(e):(a=n.wrapper.find(`.k-focus`).index(),i=n.wrapper.find(`.k-calendar-table td`).eq(a+t),i.is(N)||!r(e))},_dateInViews:function(e){let t=this.element.find(`.k-calendar-view table`),n=Q(t.first().find(M).first().find(`span`)),r=Q(t.last().find(M).last().find(`span`));return e=new Date(e.toDateString()),+e<=+r&&+e>=+n},_move:function(r){var i=this;if(n.keyDownHandler(r,i)){var a=i.options,s=r.keyCode,c=i._view,l=i._index,u=i.options.min,d=i.options.max,f=new z(+i._current),p=i.isRtl(),m=i.options.disableDates,h,g,_,v,y,b;if(r.target===i._table[0]&&(i._active=!0),s==o.RIGHT&&!p||s==o.LEFT&&p?(h=1,g=!0):s==o.LEFT&&!p||s==o.RIGHT&&p?(h=-1,g=!0):s==o.UP?(h=l===0?-7:-4,g=!0):s==o.DOWN?(h=l===0?7:4,g=!0):s==o.SPACEBAR?(h=0,g=!0):s==o.HOME||s==o.END?(_=s==o.HOME?`first`:`last`,v=c[_](f),f=new z(v.getFullYear(),v.getMonth(),v.getDate(),f.getHours(),f.getMinutes(),f.getSeconds(),f.getMilliseconds()),f.setFullYear(v.getFullYear()),g=!0):s===84&&(i._todayClick(r),g=!0),r.ctrlKey||r.metaKey){if(s==o.RIGHT&&!p||s==o.LEFT&&p)i.navigateToFuture(),g=!0;else if(s==o.LEFT&&!p||s==o.RIGHT&&p)i.navigateToPast(),g=!0;else if(s==o.UP)i.navigateUp(),g=!0;else if(s==o.DOWN)i._click(e(i._cell[0].firstChild)),g=!0;else if((s==o.ENTER||s==o.SPACEBAR)&&i._isMultipleSelection()){i._keyboardToggleSelection(r);var x=Q(e(i._cell[0]).find(`span`));i._setCurrent(x)}}else r.shiftKey?((h!==t||_)&&(_||c.setDate(f,h),q(f,u,d)||(f=K(f,a.min,a.max)),m(f)&&(f=i._nextNavigatable(f,h)),u=J(u.getFullYear(),u.getMonth(),u.getDate()),i._isMultipleSelection()?i._keyboardRangeSelection(r,f):i._isRangeSelection()?i._dateInViews(f)||(h>0?i.navigateToFuture():i.navigateToPast()):i._focus(f)),i.rangeSelectable&&(y=i._cellByDate(c.toDateString(f)),b=Q(i.rangeSelectable._lastActive.find(`span`)),i._dateInViews(b)?(i.rangeSelectable._end&&i.rangeSelectable._end.is(`.k-focus`)?i.rangeSelectable._lastActive=i.rangeSelectable._start:i.rangeSelectable._lastActive=i._cellByDate(c.toDateString(b)),i.rangeSelectable.range(i.rangeSelectable._lastActive,y)):+b>+f?(i.rangeSelectable._end=i.rangeSelectable._lastActive,i.rangeSelectable.selectFrom(y)):i.rangeSelectable.selectTo(y),i.rangeSelectable.change(),i._setCurrent(f))):(s==o.ENTER||s==o.SPACEBAR?(c.name==`month`&&i._isMultipleSelection()?(i.value(Q(e(i._cell.find(`span`)))),i.selectable._lastActive=e(i._cell[0]),i.trigger(E)):i.rangeSelectable?i.rangeSelectable.change():i._click(e(i._cell[0].firstChild)),g=!0):s==o.PAGEUP?(g=!0,i.navigateToPast()):s==o.PAGEDOWN&&(g=!0,i.navigateToFuture()),(h||_)&&(_||c.setDate(f,h),u=J(u.getFullYear(),u.getMonth(),u.getDate()),q(f,u,d)||(f=K(f,a.min,a.max)),i._isNavigatable(f,h)||(f=i._nextNavigatable(f,h)),i._isMultipleSelection()?i._dateInView(f)?(i._current=f,i._setCurrent(f)):i.navigate(f):i._focus(f)));return g&&r.preventDefault(),i._current}},_keyboardRangeSelection:function(e,t){var n=this,r,i;if(!n._dateInView(t)){n._selectDates=[],r=n.selectable._lastActive?Q(n.selectable._lastActive.find(`span`)):t,i=fe(r,new Date(+t)),pe(n._selectDates,i,r,n.options.disableDates),n.navigate(t),n._current=t,n.selectable._lastActive=n.selectable._lastActive||n._cellByDate(n._view.toDateString(t),N),n.trigger(E);return}n.selectable.options.filter=n.wrapper.find(`table`).length>1&&+t>+n._current?`table.k-calendar-table:eq(1) td:has(.k-link):not(.k-disabled):not(.k-empty)`:`table.k-calendar-table:eq(0) td:has(.k-link):not(.k-disabled):not(.k-empty)`,n._setCurrent(t),n._current=t,n._rangeSelection(n._cellByDate(n._view.toDateString(t),N),t),n.trigger(E),n.selectable.options.filter=`table.k-calendar-table:eq(0) td:has(.k-link):not(.k-disabled):not(.k-empty)`},_keyboardToggleSelection:function(t){var n=this;t.currentTarget=n._cell[0],n.selectable._lastActive=e(n._cell[0]),e(n._cell[0]).hasClass(P)?n.selectable._unselect(e(n._cell[0])):n.selectable.value(e(n._cell[0])),n.selectable.trigger(E,{event:t})},_nextNavigatable:function(e,t){var n=this,r=!0,i=n._view,a=n.options.min,o=n.options.max,s=n.options.disableDates,c=new Date(e.getTime());for(i.setDate(c,-t);r;){if(i.setDate(e,t),!q(e,a,o)){e=c;break}r=s(e)}return e},_animate:function(e){var t=this,n=e.from,r=e.to,i=t._active,a=t.element.children(`.k-calendar-view`);n?n.parent().data(`animating`)?(n.off(x),n.parent().kendoStop(!0,!0).remove(),n.remove(),a.append(r),t._focusView(i)):!n.is(`:visible`)||t.options.animation===!1||e.replace?(r.insertAfter(n),n.off(x).remove(),t._focusView(i)):t[e.vertical?`_vertical`:`_horizontal`](n,r,e.future):(a.append(r),t._bindTable(r))},_horizontal:function(e,t,n){var r=this,i=r._active,a=r.options.animation.horizontal,o=a.effects,s=b(e),c=b(e,!0)-s;o&&o.indexOf(C)!=-1&&(e.add(t).css({width:s}),e.wrap(`<div/>`),r._focusView(i,e),e.parent().css({position:`relative`,width:s*2+2*c,display:`flex`,[n?`margin-right`:`margin-left`]:-s-c}),t[n?`insertAfter`:`insertBefore`](e),se(a,{effects:`slideIn:`+(n?`right`:`left`),complete:function(){e.off(x).remove(),r._oldTable=null,t.unwrap(),r._focusView(i)}}),e.parent().kendoStop(!0,!0).kendoAnimate(a))},_vertical:function(e,t){var n=this,r=n.options.animation.vertical,i=r.effects,a=n._active,o,s;i&&i.indexOf(`zoom`)!=-1&&(t.insertBefore(e),e.css({position:`absolute`,width:t.width()}),o=n._cellByDate(n._view.toDateString(n._current)),s=o.position(),s=s.left+parseInt(o.width()/2,10)+`px `+(s.top+parseInt(o.height()/2,10)+`px`),t.css(`transform-origin`,s),e.kendoStop(!0,!0).kendoAnimate({effects:`fadeOut`,duration:600,complete:function(){e.off(x).remove(),n._oldTable=null,n._focusView(a)}}),t.kendoStop(!0,!0).kendoAnimate(r))},_cellByDate:function(t,r){return this._table.find(r||`td:not(.k-other-month)`).filter(function(){return e(this.firstChild).attr(n.attr(O))===t})},_selectCell:function(e){var t=this,n=t._selectedCell,r=t._view.toDateString(e);n&&n[0]&&(n[0].removeAttribute(oe),n.removeClass(P)),n=t._cellByDate(r,M),t._selectedCell=n,n.addClass(P).attr(oe,!0)},_setCurrent:function(e){var t=this,r=n.guid(),i=t._cell,a=t._view.toDateString(e);i&&i[0]&&(i.removeClass(A),i[0].removeAttribute(R),i[0].removeAttribute(`id`)),i=t._cellByDate(a,t._isMultipleSelection()?M:`td:not(.k-other-month)`),t._cell=i,i.attr(`id`,r).addClass(A),t._table[0]&&(t._table[0].removeAttribute(`aria-activedescendant`),t._table.attr(`aria-activedescendant`,r))},_bindTable:function(e){e.on(`focus.kendoCalendar`,this._addClassProxy).on(`blur.kendoCalendar`,this._removeClassProxy)},_click:function(e){var t=this,n=t.options,r=new Date(+t._current),i=Q(e);l(i,0),t._view.name==`month`&&t.options.disableDates(i)&&(i=t._value),t._view.setDate(r,i),t.navigateDown(K(r,n.min,n.max))},_focus:function(e){var t=this;t._view.compare(e,t._current)===0?(t._current=e,t._setCurrent(e)):t.navigate(e)},_focusView:function(e,t){e&&this.focus(t)},_viewWrapper:function(){var t=this.element,n=t.children(`.k-calendar-view`);n[0]||(n=e(`<div class='k-calendar-view k-align-items-start k-justify-content-center k-hstack' />`).insertAfter(t.find(V)))},_footer:function(t){var r=this,i=G(),a=r.element,o=a.find(`.k-calendar-footer`);if(!t){r._toggle(!1),o.hide();return}o[0]||(o=e(`<div class="k-calendar-footer">
<button tabindex="-1" class="k-calendar-nav-today k-flex k-button k-button-flat k-button-primary">
<span class="k-button-text"></span>
</button>
</div>`).appendTo(a)),r._today=o.show().find(`.k-button-flat.k-button-primary`).attr(`title`,n.toString(i,`D`,r.options.culture)),o.find(`.k-button-text`).html(t(i)),r._toggle()},_header:function(){var t=this,r=t.element,i=t.options.linksSelector;r.find(V)[0]||r.html(n.template(t.options.header.template)(e.extend(!0,{},t.options,{actionAttr:n.attr(`action`),size:n.getValidCssClass(`k-button-`,`size`,t.options.size),isRtl:t.isRtl()}))),r.find(i).on(`click.kendoCalendar touchend.kendoCalendar`,function(){return!1}),t._title=r.find(`[`+n.attr(`action`)+`="nav-up"]`).on(`click.kendoCalendar touchend.kendoCalendar`,function(){t._active=t.options.focusOnNav!==!1,t.navigateUp()}),t[F]=r.find(`[`+n.attr(`action`)+`="prev"]`).on(`click.kendoCalendar touchend.kendoCalendar`,function(){t._active=t.options.focusOnNav!==!1,t.navigateToPast()}),t[I]=r.find(`[`+n.attr(`action`)+`="next"]`).on(`click.kendoCalendar touchend.kendoCalendar`,function(){t._active=t.options.focusOnNav!==!1,t.navigateToFuture()}),r.find(`[`+n.attr(`action`)+`="today"]`).on(`click.kendoCalendar touchend.kendoCalendar`,t._todayClick.bind(t))},_navigate:function(e,t){var n=this,r=n._index+1,i=new z(+n._current);n._isMultipleSelection()&&(i=Q(n._table.find(`td:not(.k-other-month):not(.k-empty)`).has(`.k-link`).first().find(`span`)),n._current=new Date(+i)),e=n[e],e.hasClass(k)||(r>3?i.setFullYear(i.getFullYear()+100*t):H.views[r].setDate(i,t),n.navigate(i),n._restoreSelection())},_option:function(e,n){var r=this,i=r.options,a=r._value||r._current,o;if(n===t)return i[e];n=s(n,i.format,i.culture),n&&(i[e]=new z(+n),o=e===`min`?n>a:a>n,(o||ve(a,n))&&(o&&(r._value=null),r._changeView=!0),r._changeView||=!!(i.month.content||i.month.empty),r.navigate(r._value),r._toggle())},_toggle:function(e){var n=this,r=n.options,i=n.options.disableDates(G()),a=n._today,o=n._todayClass();e===t&&(e=q(G(),r.min,r.max)),a&&(a.off(S),e&&!i?a.addClass(o).removeClass(k).on(S,n._todayClick.bind(n)):a.removeClass(o).addClass(k).on(S,he))},_todayClass:function(){return`k-calendar-nav-today`},_todayClick:function(e){var t=this,n=B[t.options.depth],r=t.options.disableDates,i=G();e.preventDefault(),!r(i)&&(t._view.compare(t._current,i)===0&&t._index==n&&(t._changeView=!1),t._isMultipleSelection()&&(t._selectDates=[i],t.selectable._lastActive=null),t._value=i,t.navigate(i,n),t.trigger(E))},_templates:function(){var e=this,t=e.options,r=t.footer,i=t.month,a=i.content,o=i.weekNumber,s=i.empty,c=e=>`${n.toString(e,`D`,t.culture)}`;e.month={content:e=>`<td class="${e.cssClass}" role="gridcell"${e.ariaDisabled?` aria-disabled="true"`:``}><span tabindex="-1" class="k-link ${e.linkClass}" data-href="${e.url}" ${n.attr(O)}="${e.dateString}" title="${e.title}">${$(a,e)||e.value}</span></td>`,empty:e=>`<td role="gridcell">${$(s,e)||` `}</td>`,weekNumber:e=>`<td class="k-calendar-td k-alt">${$(o,e)||e.weekNumber}</td>`},e.year={content:m(e=>`<td class="${e.cssClass}" role="gridcell"><span tabindex="-1" class="k-link" data-href="#" data-${e.ns}value="${e.dateString}" aria-label="${e.label}">${e.value}</span></td>`)},r&&r!==!0&&(c=r),e.footer=r===!1?null:m(c,{useWithBlock:!1})},_updateAria:function(e,t){var r=this,i=r._cell,a=r.view().valueType(),o=t||r.current(),s=a===`month`?n.toString(o,`MMMM`):a===`date`?n.toString(o,`D`):i.text();return i.attr(`aria-label`,e({current:o,valueType:a,text:s})),i.attr(`id`)}});i.plugin(ce);var H={firstDayOfMonth:function(e){return J(e.getFullYear(),e.getMonth(),1)},firstVisibleDay:function(e,t){t||=n.culture().calendar;var r=t.firstDay,i=new z(e.getFullYear(),e.getMonth(),1,e.getHours(),e.getMinutes(),e.getSeconds(),e.getMilliseconds());for(i.setFullYear(e.getFullYear());i.getDay()!=r;)H.setTime(i,-1*ae);return i},setTime:function(e,t){var n=e.getTimezoneOffset(),r=new z(e.getTime()+t),i=r.getTimezoneOffset()-n;e.setTime(r.getTime()+i*6e4)},views:[{name:w,title:function(e,t,n,r){return Y(r).months.names[e.getMonth()]+` `+e.getFullYear()},content:function(e){var r=this,i=0,a=e.min,o=e.max,s=e.date,d=e.dates,f=e.format,p=e.culture,m=e.url,h=e.showHeader,g=e.showOtherMonthDays,_=e.isWeekColumnVisible,v=m&&d[0],y=Y(p),b=y.firstDay,x=y.days,S=ue(x.names,b),C=ue(x.namesShort,b),w=H.firstVisibleDay(s,y),T=r.first(s),E=r.last(s),D=r.toDateString,O=G(),A=`<table tabindex="0" role="grid" class="`+e.contentClasses+`" cellspacing="0" data-start="`+D(w)+`">`;for(h&&(A+=`<caption class="k-calendar-caption k-month-header">`+this.title(s,a,o,p)+`</caption>`),A+=`<thead class="k-calendar-thead" role="rowgroup"><tr role="row" class="k-calendar-tr">`,_&&(A+=`<th scope="col" role="columnheader" class="k-calendar-th k-alt" aria-label="`+c(e.messages.weekColumnHeader||``)+`">`+c(e.messages.weekColumnHeader)+`</th>`);i<7;i++)A+=`<th scope="col" role="columnheader" class="k-calendar-th" aria-label="`+S[i]+`">`+C[i]+`</th>`;return l(O,0),O=+O,U({cells:42,perRow:7,html:A+=`</tr></thead><tbody class="k-calendar-tbody" role="rowgroup"><tr role="row" class="k-calendar-tr">`,start:J(w.getFullYear(),w.getMonth(),w.getDate()),isWeekColumnVisible:_,weekNumber:e.weekNumber,min:J(a.getFullYear(),a.getMonth(),a.getDate()),max:J(o.getFullYear(),o.getMonth(),o.getDate()),showOtherMonthDays:g,content:e.content,lastDayOfMonth:E,empty:e.empty,setter:r.setDate,disableDates:e.disableDates,build:function(e,r,i){var a=[`k-calendar-td`],o=e.getDay(),s=``,c=`#`;(e<T||e>E)&&a.push(ee);var l=i(e);return l&&a.push(k),+e===O&&a.push(`k-today`),(o===0||o===6)&&a.push(`k-weekend`),v&&ge(+e,d)&&(c=m.replace(`{0}`,n.toString(e,f,p)),s=` k-action-link`),{date:e,dates:d,ns:n.ns,title:n.toString(e,`D`,p),value:e.getDate(),dateString:D(e),cssClass:a.join(` `),linkClass:s,url:c,ariaDisabled:l||t}},weekNumberBuild:function(e){return{weekNumber:u(e,n.culture().calendar.firstDay),currentDate:e}}})},first:function(e){return H.firstDayOfMonth(e)},last:function(e){var t=J(e.getFullYear(),e.getMonth()+1,0),n=H.firstDayOfMonth(e),r=Math.abs(t.getTimezoneOffset()-n.getTimezoneOffset());return r&&t.setHours(n.getHours()+r/60),t},compare:function(e,t){var n,r=e.getMonth(),i=e.getFullYear(),a=t.getMonth(),o=t.getFullYear();return n=i>o?1:i<o?-1:r==a?0:r>a?1:-1,n},setDate:function(e,t){var n=e.getHours();t instanceof z?e.setFullYear(t.getFullYear(),t.getMonth(),t.getDate()):H.setTime(e,t*ae),l(e,n)},toDateString:function(e){return e.getFullYear()+`/`+e.getMonth()+`/`+e.getDate()},valueType:function(){return`date`}},{name:`year`,title:function(e){return e.getFullYear()},content:function(e){var t=Y(e.culture).months,r=t.namesAbbr,i=t.names,a=this.toDateString,o=e.min,s=e.max,c=``;return e.showHeader&&(c+=`<table tabindex="0" role="grid" class="k-calendar-table" cellspacing="0">`,c+=`<caption class="k-calendar-caption k-meta-header">`,c+=this.title(e.date),c+=`</caption>`,c+=`<tbody class="k-calendar-tbody" role="rowgroup">`,c+=`<tr role="row" class="k-calendar-tr">`),U({min:J(o.getFullYear(),o.getMonth(),1),max:J(s.getFullYear(),s.getMonth(),1),start:J(e.date.getFullYear(),0,1),html:c,setter:this.setDate,content:e.content,build:function(e){var t=[`k-calendar-td`],o=G();return e.getFullYear()===o.getFullYear()&&e.getMonth()===o.getMonth()&&t.push(`k-today`),{value:r[e.getMonth()],label:i[e.getMonth()],ns:n.ns,dateString:a(e),cssClass:t.join(` `)}}})},first:function(e){return J(e.getFullYear(),0,e.getDate())},last:function(e){return J(e.getFullYear(),11,e.getDate())},compare:function(e,t){return W(e,t)},setDate:function(e,t){var n,r=e.getHours();t instanceof z?(n=t.getMonth(),e.setFullYear(t.getFullYear(),n,e.getDate()),n!==e.getMonth()&&e.setDate(0)):(n=e.getMonth()+t,e.setMonth(n),n>11&&(n-=12),n>0&&e.getMonth()!=n&&e.setDate(0)),l(e,r)},toDateString:function(e){return e.getFullYear()+`/`+e.getMonth()+`/1`},valueType:function(){return`month`}},{name:`decade`,title:function(e,t,n){return le(e,t,n,10)},content:function(e){var t=e.date.getFullYear(),r=this.toDateString,i=``;return e.showHeader&&(i+=`<table tabindex="0" role="grid" class="k-calendar-table" cellspacing="0">`,i+=`<caption class="k-meta-header">`,i+=this.title(e.date,e.min,e.max),i+=`</caption>`,i+=`<tbody class="k-calendar-thead">`,i+=`<tr role="row" class="k-calendar-tr">`),U({start:J(t-t%10,0,1),min:J(e.min.getFullYear(),0,1),max:J(e.max.getFullYear(),0,1),showOtherMonthDays:e.showOtherMonthDays,html:i,setter:this.setDate,build:function(e,t){var i=[`k-calendar-td`],a=G().getFullYear();return t===10||t===11?i.push(j):e.getFullYear()===a&&i.push(`k-today`),{value:e.getFullYear(),ns:n.ns,dateString:r(e),cssClass:i.join(` `)}}})},first:function(e){var t=e.getFullYear();return J(t-t%10,e.getMonth(),e.getDate())},last:function(e){var t=e.getFullYear();return J(t-t%10+9,e.getMonth(),e.getDate())},compare:function(e,t){return W(e,t,10)},setDate:function(e,t){de(e,t,1)},toDateString:function(e){return e.getFullYear()+`/0/1`},valueType:function(){return`year`}},{name:T,title:function(e,t,n){return le(e,t,n,100)},content:function(e){var t=e.date.getFullYear(),r=e.min.getFullYear(),i=e.max.getFullYear(),a=this.toDateString,o=r,s=i,c=``;o-=o%10,s-=s%10,s-o<10&&(s=o+9),e.showHeader&&(c+=`<table tabindex="0" role="grid" class="k-calendar-table" cellspacing="0">`,c+=`<caption class="k-calendar-caption k-meta-header">`,c+=this.title(e.date,e.min,e.max),c+=`</caption>`,c+=`<tbody class="k-calendar-tbody">`,c+=`<tr role="row" class="k-calendar-tr">`);var l=G().getFullYear()-G().getFullYear()%10;return U({start:J(t-t%100,0,1),min:J(o,0,1),max:J(s,0,1),showOtherMonthDays:e.showOtherMonthDays,html:c,setter:this.setDate,build:function(t,o){var s=[`k-calendar-td`],c=t.getFullYear(),u=c+9;return o===10||o===11?s.push(j):c<=l&&u>=l&&s.push(`k-today`),c<r&&(c=r),u>i&&(u=i),{ns:n.ns,value:e.centuryCellsFormat===`long`?`${c} - ${u}`:c,dateString:a(t),cssClass:s.join(` `)}}})},first:function(e){var t=e.getFullYear();return J(t-t%100,e.getMonth(),e.getDate())},last:function(e){var t=e.getFullYear();return J(t-t%100+99,e.getMonth(),e.getDate())},compare:function(e,t){return W(e,t,100)},setDate:function(e,t){de(e,t,10)},toDateString:function(e){var t=e.getFullYear();return t-t%10+`/0/1`},valueType:function(){return`decade`}}]};function le(e,t,n,r){var i=e.getFullYear(),a=t.getFullYear(),o=n.getFullYear(),s;return i-=i%r,s=i+(r-1),i<a&&(i=a),s>o&&(s=o),i+`-`+s}function U(e){var t=0,n,r=e.min,i=e.max,a=e.start,o=e.setter,s=e.build,c=e.weekNumberBuild,u=e.cells||12,d=e.isWeekColumnVisible,f=e.perRow||4,p=e.showOtherMonthDays,m=e.lastDayOfMonth,h=e.weekNumber||y,b=e.content||g,x=e.empty||_,S=e.otherMonthCellTemplate||v,C=e.html||`<table tabindex="0" role="grid" class="k-calendar-table" cellspacing="0"><tbody class="k-calendar-tbody" role="rowgroup"><tr role="row" class="k-calendar-tr">`;for(d&&(C+=h(c(a)));t<u;t++)t>0&&t%f===0&&(C+=`</tr><tr role="row" class="k-calendar-tr">`,d&&(C+=p||+a<=+m?h(c(a)):h({weekNumber:` `}))),a=J(a.getFullYear(),a.getMonth(),a.getDate()),l(a,0),n=s(a,t,e.disableDates),n.cssClass.indexOf(ee)!==-1&&!p?C+=S(n):q(a,r,i)&&n.cssClass.indexOf(j)===-1?C+=b(n):C+=x(n),o(a,1);return C+`</tr></tbody></table>`}function W(e,t,n){var r=e.getFullYear(),i=t.getFullYear(),a=i,o=0;return n&&(i-=i%n,a=i-i%n+n-1),r>a?o=1:r<i&&(o=-1),o}function G(){var e=new z;return new z(e.getFullYear(),e.getMonth(),e.getDate())}function K(e,t,n){var r=G();return e&&(r=new z(+e)),t>r?r=new z(+t):n<r&&(r=new z(+n)),r}function q(e,t,n){return+e>=+t&&+e<=+n}function ue(e,t){return e.slice(t).concat(e.slice(0,t))}function de(e,t,n){t=t instanceof z?t.getFullYear():e.getFullYear()+n*t,e.setFullYear(t)}function fe(e,t){if(+t<+e){var r=+e;H.views[0].setDate(e,t),H.views[0].setDate(t,new Date(r))}var i=Date.UTC(e.getFullYear(),e.getMonth(),e.getDate()),a=Date.UTC(t.getFullYear(),t.getMonth(),t.getDate());return Math.ceil((a-+i)/n.date.MS_PER_DAY)}function pe(e,t,n,r){for(var i=0;i<=t;i++){var a=new Date(n.getTime());a=new Date(a.setDate(a.getDate()+i)),r(a)||e.push(a)}}function me(t){e(this).hasClass(`k-disabled`)||e(this).toggleClass(`k-hover`,ne.indexOf(t.type)>-1||t.type==`focus`)}function he(e){e.preventDefault()}function J(e,t,n){var r=new z(e,t,n);return r.setFullYear(e,t,n),r}function Y(e){return h(e).calendars.standard}function X(e){var n=B[e.start],r=B[e.depth],i=h(e.culture);e.format=p(e.format||i.calendars.standard.patterns.d),isNaN(n)&&(n=0,e.start=w),(r===t||r>n)&&(e.depth=w),e.dates===null&&(e.dates=[])}function ge(e,t){for(var n=0,r=t.length;n<r;n++)if(e===+t[n])return!0;return!1}function _e(e,t){return e?e.getFullYear()===t.getFullYear()&&e.getMonth()===t.getMonth()&&e.getDate()===t.getDate():!1}function ve(e,t){return e?e.getFullYear()===t.getFullYear()&&e.getMonth()===t.getMonth():!1}function Z(t){return n.isFunction(t)?t:Array.isArray(t)?be(t):e.noop}function ye(e){for(var t=[],n=0;n<e.length;n++)t.push(e[n].setHours(0,0,0,0));return t}function be(e){var t,n=[],r=[`su`,`mo`,`tu`,`we`,`th`,`fr`,`sa`];return e[0]instanceof z?(n=ye(e),t=e=>!!(e&&n.indexOf(new Date(e).setHours(0,0,0,0))>-1)):(n=e.map(e=>{e=e.slice(0,2).toLowerCase();let t=r.indexOf(e);if(t>-1)return t}),t=e=>!!(e&&n.indexOf(new Date(e).getDay())>-1)),t}function xe(e,t){return e instanceof Date&&t instanceof Date&&(e=e.getTime(),t=t.getTime()),e===t}function Q(t){var r=e(t).attr(n.attr(O)).split(`/`);return r=J(r[0],r[1],r[2]),r}function $(e,r){return e?n.isFunction(e)?e(r):m(e)(r):t}H.isEqualDatePart=_e,H.isEqualDate=xe,H.restrictValue=K,H.isInRange=q,H.normalize=X,H.viewsEnum=B,H.disabled=Z,H.toDateObject=Q,H.getToday=G,H.createDate=J,n.calendar=H})(window.kendo.jQuery);var a=kendo;e.__meta__=i,e.default=a});
//# sourceMappingURL=kendo.calendar.min.js.map