UNPKG

@progress/kendo-ui

Version:

This package is part of the [Kendo UI for jQuery](http://www.telerik.com/kendo-ui) suite.

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