{"version":3,"file":"kendo.multiviewcalendar.min.js","names":["global","factory","exports","module","require","define","amd","globalThis","self","kendomultiviewcalendar","js","this","$","undefined$1","kendo","window","calendar","support","isInRange","toDateObject","createDate","isEqualDate","getToday","keys","ui","Widget","Selectable","template","mobileOS","ns","CLICK","ID","MONTH","DOT","EMPTY","CENTURY","CHANGE","NAVIGATE","VALUE","FOCUSED","SELECTED","MID","SPLITEND","SPLITSTART","START","END","HOVER","DISABLED","TODAY","OUTOFRANGE","CALENDAR_VIEW","CELLSELECTOR","CELLSELECTORVALID","BLUR","FOCUS","MOUSEENTER","touch","MOUSELEAVE_NS","PREVARROW","NEXTARROW","RANGE","SINGLE","MULTIPLE","TABLE","TBODY","THEAD","TH","ROLE","NONE","ARIA_SELECTED","ARIA_DISABLED","ARIA_LABEL","ARIA_ACTIVEDESCENDANT","DATE","Date","views","month","year","decade","century","RangeSelectable","extend","init","element","options","that","fn","call","userEvents","UserEvents","allowSelection","filter","tap","_tap","bind","touchAction","events","name","inputSelectors","multiple","dragToSelect","relatedTarget","noop","destroy","_lastActive","_start","_end","_allowSelection","target","is","cancel","start","addClass","attr","end","mid","elements","tables","find","each","lastCell","last","firstCell","first","hasClass","clear","clearVariables","removeClass","removeAttr","selectFrom","items","startIdx","inArray","index","selectTo","endIdx","range","temp","length","_useEnd","change","trigger","_clearFlags","_useStart","e","selectRange","currentDate","_toggling","MultiViewCalendar","id","culture","wrapper","disableDates","disabled","getCulture","format","_extractFormat","calendars","standard","patterns","d","_templates","_header","_wrapper","getValidCssClass","size","weekNumber","on","_move","_focus","_blur","link","currentTarget","firstChild","href","indexOf","preventDefault","_click","_mouseEnter","guid","_cellID","_calendarWidth","width","_range","_initViews","viewName","value","_selectable","_footer","footer","_selectDates","_addSelectedCellsToArray","selectable","selectDates","_restoreSelection","notify","min","max","dates","showViewHeader","depth","messages","weekColumnHeader","orientation","setOptions","normalize","i","_views","off","remove","_cell","_currentView","_current","header","_title","rangeSelectable","_today","current","focus","tablesWrapper","_option","view","navigateToPast","_navigate","navigateToFuture","navigateUp","_index","navigate","navigateDown","_value","isNaN","viewsEnum","restrictValue","_aria","rowGroups","add","role","_ariaMonth","rows","noHeaderRows","not","noHeaderCells","columnHeaderCells","rowHeaderCells","outOfRange","row","prev","$row","numberOfEmpty","owned","children","eq","j","cell","$cell","push","join","_updateHeader","lastDate","prevDisabled","nextDisabled","title","_firstViewValue","visibleRange","_visibleRange","shiftDate","html","getFullYear","toggleClass","compare","_navContainer","icon","iconClass","appendTo","_dateInViews","prevent","lastActive","cellIndex","triggerChange","key","keyCode","focusedCell","table","closest","currentValue","isRtl","RIGHT","LEFT","UP","DOWN","SPACEBAR","HOME","_focusCell","next","_todayClick","ctrlKey","metaKey","_cellByDate","ENTER","_toggleSelection","shiftKey","setDate","_nextNavigatable","getMonth","getDate","_selectRange","event","PAGEUP","PAGEDOWN","_visualizeSelectedDatesInView","cells","selectedDates","toDateString","_selectElement","isDisabled","navigatableDate","getTime","_unselect","option","parseDate","_toggle","toLowerCase","_rangeSelection","aria","parseOptions","_selection","_onRelatedTarget","unselect","_unselecting","_getFirstViewDate","currentView","ranges","_canRenderNextView","viewDate","fullYear","date","maxYear","maxMonth","viewOptions","_table","content","url","showHeader","isWeekColumnVisible","otherMonth","contentClasses","sender","useEnd","useStart","initialRange","_preventChange","selectElements","domEvent","isCell","_validateValue","_deselect","item","currentDateIndex","map","Number","splice","firstDateInView","lastDateInView","_fillRange","daysDifference","startDate","endDate","fromDateUTC","UTC","endDateUTC","Math","ceil","MS_PER_DAY","daysBetweenTwoDates","array","numberOfDays","fromDate","nextDay","addDaysToArray","buttons","prependTo","mousetoggle","_calendarTitleClick","_prevViewClick","_nextViewClick","insertAfter","empty","data","useWithBlock","toString","today","hide","show","arrow","modifier","offset","originaValue","setFullYear","toggle","isTodayDisabled","adjustDST","contains","cellId","removeAttribute","_updateAria","ariaTemplate","text","valueType","clearSelection","validSelectedDates","datesUnique","position","time","grep","setHours","startInRange","endInRange","type","dimension","numberOfViews","abs","setMonth","plugin","jQuery"],"sources":["kendo.multiviewcalendar.js"],"mappings":"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","sourcesContent":["(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('kendo.core.js'), require('kendo.selectable.js'), require('kendo.calendar.js'), require('kendo.icons.js')) :\n typeof define === 'function' && define.amd ? define(['kendo.core', 'kendo.selectable', 'kendo.calendar', 'kendo.icons'], factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, (global.kendomultiviewcalendar = global.kendomultiviewcalendar || {}, global.kendomultiviewcalendar.js = factory()));\n})(this, (function () {\n var __meta__ = {\n id: \"multiviewcalendar\",\n name: \"MultiViewCalendar\",\n category: \"web\",\n description: \"Multi-view calendar.\",\n depends: [ \"core\", \"selectable\", \"calendar\" ]\n };\n\n (function($, undefined$1) {\n var kendo = window.kendo,\n calendar = kendo.calendar,\n support = kendo.support,\n isInRange = calendar.isInRange,\n toDateObject = calendar.toDateObject,\n createDate = calendar.createDate,\n isEqualDate = calendar.isEqualDate,\n getToday = calendar.getToday,\n keys = kendo.keys,\n ui = kendo.ui,\n Widget = ui.Widget,\n Selectable = ui.Selectable,\n template = kendo.template,\n mobileOS = support.mobileOS,\n ns = \".kendoMultiViewCalendar\",\n CLICK = \"click\",\n KEYDOWN = \"keydown\",\n ID = \"id\",\n MIN = \"min\",\n MONTH = \"month\",\n DOT = \".\",\n EMPTY = \" \",\n CENTURY = \"century\",\n DECADE = \"decade\",\n CHANGE = \"change\",\n NAVIGATE = \"navigate\",\n VALUE = \"value\",\n FOCUSED = \"k-focus\",\n SELECTED = \"k-selected\",\n MID = \"k-range-mid\",\n SPLITEND = \"k-range-split-end\",\n SPLITSTART = \"k-range-split-start\",\n START = \"k-range-start\",\n END = \"k-range-end\",\n HOVER = \"k-hover\",\n DISABLED = \"k-disabled\",\n TODAY = \"k-calendar-nav-today\",\n OTHERMONTH = \"k-other-month\",\n OUTOFRANGE = \"k-out-of-range\",\n CALENDAR_VIEW = \"k-calendar-view\",\n CELLSELECTOR = \"td:has(.k-link):not(.\" + OUTOFRANGE + \")\",\n CELLSELECTORVALID = \"td:has(.k-link):not(.\" + DISABLED + \"):not(.\" + OUTOFRANGE + \")\",\n BLUR = \"blur\",\n FOCUS = \"focus\",\n MOUSEENTER = support.touch ? \"touchstart\" : \"mouseenter\",\n MOUSELEAVE_NS = support.touch ? \"touchend\" + ns + \" touchmove\" + ns : \"mouseleave\" + ns,\n PREVARROW = \"_prevArrow\",\n NEXTARROW = \"_nextArrow\",\n RANGE = \"range\",\n SINGLE = \"single\",\n MULTIPLE = \"multiple\",\n TABINDEX = \"tabindex\",\n TABLE = \"table\",\n TBODY = \"tbody\",\n THEAD = \"thead\",\n TR = \"tr\",\n TD = \"td\",\n TH = \"th\",\n ROLE = \"role\",\n NONE = \"none\",\n ROWGROUP = \"rowgroup\",\n COLUMNHEADER = \"columnheader\",\n ROWHEADER = \"rowheader\",\n GRIDCELL = \"gridcell\",\n ARIA_SELECTED = \"aria-selected\",\n ARIA_DISABLED = \"aria-disabled\",\n ARIA_LABEL = \"aria-label\",\n ARIA_OWNS = \"aria-owns\",\n ARIA_ACTIVEDESCENDANT = \"aria-activedescendant\",\n INPUTSELECTOR = \"input,a,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\",\n DATE = Date,\n views = {\n month: 0,\n year: 1,\n decade: 2,\n century: 3\n };\n\n var RangeSelectable = Widget.extend({\n init: function(element, options) {\n var that = this;\n\n Widget.fn.init.call(that, element, options);\n\n that.calendar = options.calendar;\n\n that.userEvents = new kendo.UserEvents(that.element, {\n global: true,\n allowSelection: true,\n filter: that.options.filter,\n tap: that._tap.bind(that),\n touchAction: NONE\n });\n },\n\n events: [CHANGE],\n\n options: {\n name: \"RangeSelectable\",\n filter: \">*\",\n inputSelectors: INPUTSELECTOR,\n multiple: false,\n dragToSelect: true,\n relatedTarget: $.noop\n },\n\n destroy: function() {\n var that = this;\n\n Widget.fn.destroy.call(that);\n\n that.userEvents.destroy();\n that.calendar = null;\n\n that._lastActive = that.element = that.userEvents = that._start = that._end = null;\n },\n\n _allowSelection: function(target) {\n if ($(target).is(this.options.inputSelectors)) {\n this.userEvents.cancel();\n return false;\n }\n\n return true;\n },\n\n start: function(element) {\n if (element === undefined$1) {\n return this._start;\n }\n element.addClass(START + \" \" + SELECTED).attr(ARIA_SELECTED, true);\n this._start = element;\n },\n\n end: function(element) {\n if (element === undefined$1) {\n return this._start;\n }\n element.addClass(END + \" \" + SELECTED).attr(ARIA_SELECTED, true);\n this._end = element;\n },\n\n mid: function(elements) {\n var tables = this.element.find(\"table.k-month\");\n\n elements.addClass(MID).attr(ARIA_SELECTED, true);\n tables.each(function() {\n var that = $(this);\n var lastCell = that.find(CELLSELECTORVALID).last();\n var firstCell = that.find(CELLSELECTORVALID).first();\n\n if (lastCell.hasClass(MID)) {\n lastCell.addClass(SPLITEND);\n }\n\n if (firstCell.hasClass(MID)) {\n firstCell.addClass(SPLITSTART);\n }\n });\n },\n\n clear: function(clearVariables) {\n this.element.find(CELLSELECTOR)\n .removeClass(END + \" \" + SELECTED + \" \" + START + \" \" + MID + \" \" + SPLITEND + \" \" + SPLITSTART)\n .removeAttr(ARIA_SELECTED);\n\n if (clearVariables) {\n this._start = this._end = null;\n }\n },\n\n selectFrom: function(start) {\n var that = this;\n var items;\n var startIdx;\n\n items = that.element.find(CELLSELECTOR);\n\n startIdx = $.inArray($(start)[0], items);\n\n that.clear();\n that.start(start);\n\n items = items.filter(function(index) {\n return index > startIdx;\n });\n that.mid(items);\n },\n\n selectTo: function(end) {\n var that = this;\n var items;\n var endIdx;\n\n items = that.element.find(CELLSELECTOR);\n\n endIdx = $.inArray($(end)[0], items);\n\n that.clear();\n\n items = items.filter(function(index) {\n return index < endIdx;\n });\n that.mid(items);\n that.end($(end));\n },\n\n range: function(start, end) {\n var that = this;\n var items;\n var startIdx;\n var endIdx;\n var temp;\n\n if (start === undefined$1) {\n return { start: that._start, end: that._end };\n }\n\n items = that.element.find(CELLSELECTOR);\n\n startIdx = $.inArray($(start)[0], items);\n endIdx = $.inArray($(end)[0], items);\n\n if (endIdx == -1) {\n endIdx = items.length;\n }\n\n if (startIdx > endIdx) {\n temp = end;\n end = start;\n start = temp;\n temp = startIdx;\n startIdx = endIdx;\n endIdx = temp;\n }\n that.clear();\n start.addClass(START + \" \" + SELECTED).attr(ARIA_SELECTED, true);\n that._start = start;\n\n items = items.filter(function(index) {\n return index > startIdx && index < endIdx;\n });\n that.mid(items);\n\n if (end) {\n that.end($(end));\n } else {\n that._useEnd = true;\n }\n },\n\n change: function() {\n this.trigger(CHANGE);\n },\n\n _clearFlags: function() {\n this._useStart = this._useEnd = false;\n },\n\n _tap: function(e) {\n var target = $(e.target),\n range = this.calendar.selectRange() || {},\n start = range.start,\n end = range.end,\n that = this,\n currentDate = toDateObject($(target).find(\"a\")),\n items,\n startIdx,\n endIdx;\n\n\n that._lastActive = target;\n\n if (!start || +start > +currentDate) {\n that.clear(true);\n that.start(target);\n that._clearFlags();\n that.trigger(CHANGE);\n return;\n }\n\n if (start && !end) {\n items = that.element.find(CELLSELECTOR);\n\n startIdx = $.inArray($(that._start)[0], items);\n endIdx = $.inArray($(target)[0], items);\n\n if (start) {\n that._useStart = true;\n }\n\n items = items.filter(function(index) {\n return index > startIdx && index < endIdx;\n });\n that.mid(items);\n that.end($(target));\n that.trigger(CHANGE);\n that._clearFlags();\n return;\n }\n\n if (start && end) {\n if (target.hasClass(MID)) {\n if (!that._toggling) {\n that.range(target, that._end);\n } else {\n that.range(that._start, target);\n }\n that._toggling = !that._toggling;\n that.trigger(CHANGE);\n that._clearFlags();\n return;\n }\n that._toggling = false;\n that._end = null;\n that.clear();\n that.start(target);\n that.trigger(CHANGE);\n that._clearFlags();\n }\n }\n });\n\n\n var MultiViewCalendar = Widget.extend({\n init: function(element, options) {\n var that = this;\n var id;\n var culture;\n\n Widget.fn.init.call(that, element, options);\n\n element = that.wrapper = that.element;\n options = that.options;\n\n that.options.disableDates = calendar.disabled(that.options.disableDates);\n\n culture = kendo.getCulture(options.culture);\n options.format = kendo._extractFormat(options.format || culture.calendars.standard.patterns.d);\n\n that._templates();\n\n that._header();\n\n that._wrapper();\n\n id = element\n .addClass(\"k-widget k-calendar k-calendar-range \" + (kendo.getValidCssClass(\"k-calendar-\", \"size\", that.options.size || \"medium\")) + (options.weekNumber ? \" k-week-number\" : \"\"))\n .on(KEYDOWN + ns, DOT + CALENDAR_VIEW, that._move.bind(that))\n .on(FOCUS + ns, DOT + CALENDAR_VIEW, that._focus.bind(that))\n .on(BLUR + ns, DOT + CALENDAR_VIEW, that._blur.bind(that))\n .on(CLICK + ns, CELLSELECTORVALID, function(e) {\n var link = e.currentTarget.firstChild;\n\n if (link.href.indexOf(\"#\") != -1) {\n e.preventDefault();\n }\n\n that._click($(link));\n })\n .on(MOUSEENTER + ns, CELLSELECTORVALID, that._mouseEnter.bind(that))\n .on(MOUSELEAVE_NS, CELLSELECTORVALID, function() {\n $(this).removeClass(HOVER);\n })\n .attr(ID);\n\n if (!id) {\n id = kendo.guid();\n }\n\n that._cellID = id + \"_cell_selected\";\n\n that._calendarWidth = that.element.width();\n\n that._range = options.range;\n\n that._initViews({ viewName: options.start, value: options.value });\n that._selectable();\n\n that._footer(that.footer);\n that._selectDates = [];\n that.value(options.value);\n that._addSelectedCellsToArray();\n\n if (options.selectable == MULTIPLE) {\n that._selectDates = options.selectDates.length ? options.selectDates : that._selectDates;\n that._restoreSelection();\n }\n\n if (options.selectable == RANGE) {\n that.selectRange(that._range);\n }\n\n kendo.notify(that);\n },\n\n options: {\n name: \"MultiViewCalendar\",\n value: null,\n min: new DATE(1900, 0, 1),\n max: new DATE(2099, 11, 31),\n dates: [],\n disableDates: null,\n culture: \"\",\n footer: \"\",\n format: \"\",\n month: {},\n range: { start: null, end: null },\n weekNumber: false,\n views: 2,\n showViewHeader: false,\n selectable: SINGLE,\n selectDates: [],\n start: MONTH,\n depth: MONTH,\n messages: {\n weekColumnHeader: \"\"\n },\n size: \"medium\",\n orientation: \"horizontal\"\n },\n\n events: [\n CHANGE,\n NAVIGATE\n ],\n\n setOptions: function(options) {\n var that = this;\n\n calendar.normalize(options);\n\n options.disableDates = calendar.disabled(options.disableDates);\n\n Widget.fn.setOptions.call(that, options);\n\n that._selectable();\n\n that._templates();\n\n that._footer(that.footer);\n\n for (var i = 0; i < that._views.length; i++) {\n that._views[i].off(ns).remove();\n }\n\n that._initViews({ viewName: options.start, value: options.value });\n\n that._range = options.range || { start: null, end: null };\n\n that._restoreSelection();\n },\n\n destroy: function() {\n var that = this;\n\n that._cell = null;\n that._currentView = null;\n that._current = null;\n\n if (that._views) {\n for (var i = 0; i < that._views.length; i++) {\n that._views[i].off(ns).remove();\n }\n }\n\n that.element.off(ns);\n\n if (that.header) {\n that.header.off(ns);\n that._title = null;\n that.header = null;\n }\n\n if (that.selectable) {\n that.selectable.destroy();\n that.selectable = null;\n }\n\n if (that.rangeSelectable) {\n that.rangeSelectable.destroy();\n that.rangeSelectable = null;\n }\n\n if (that._today) {\n kendo.destroy(that._today.off(ns));\n }\n\n that._views = null;\n\n Widget.fn.destroy.call(that);\n },\n\n current: function() {\n return this._current;\n },\n\n focus: function() {\n this.tablesWrapper.trigger(\"focus\");\n },\n\n min: function(value) {\n return this._option(MIN, value);\n },\n\n max: function(value) {\n return this._option(\"max\", value);\n },\n\n view: function() {\n return this._currentView;\n },\n\n navigateToPast: function() {\n this._navigate(PREVARROW, -1);\n },\n\n navigateToFuture: function() {\n this._navigate(NEXTARROW, 1);\n },\n\n navigateUp: function() {\n var that = this,\n index = that._index;\n\n if (that._title.hasClass(DISABLED)) {\n return;\n }\n\n that.navigate(that._current, ++index);\n },\n\n navigateDown: function(value) {\n var that = this,\n index = that._index,\n depth = that.options.depth;\n\n if (!value) {\n return;\n }\n\n if (index === views[depth]) {\n if (!isEqualDate(that._value, that._current) || !isEqualDate(that._value, value)) {\n that.value(value);\n that.trigger(CHANGE);\n }\n return;\n }\n\n that.navigate(value, --index);\n },\n\n navigate: function(value, view) {\n view = isNaN(view) ? calendar.views[calendar.viewsEnum[view]] : calendar.views[view];\n\n var that = this;\n var options = that.options;\n var min = options.min;\n var max = options.max;\n\n if (!value) {\n that._current = value = new DATE(+calendar.restrictValue(value, min, max));\n } else {\n that._current = value;\n }\n\n if (view === undefined$1) {\n view = that._currentView;\n }\n\n that._currentView = view;\n\n for (var i = 0; i < that._views.length; i++) {\n that._views[i].off(ns).remove();\n }\n\n that._initViews({ viewName: view.name, value: value });\n\n that._restoreSelection();\n },\n\n _aria: function() {\n var tables = this.tablesWrapper.find(TABLE),\n rowGroups = tables.first().find(THEAD).add(tables.find(TBODY)),\n viewName = this._currentView.name;\n\n tables.removeAttr(TABINDEX);\n\n tables.attr({\n role: NONE\n });\n\n rowGroups.attr({\n role: ROWGROUP\n });\n\n if (viewName === MONTH) {\n this._ariaMonth();\n }\n },\n\n _ariaMonth: function() {\n var tables = this.tablesWrapper.find(TABLE),\n rowGroups = tables.first().find(THEAD).add(tables.find(TBODY)),\n rows = rowGroups.find(TR),\n noHeaderRows = tables.not(\":eq(0)\").find(THEAD + EMPTY + TR),\n noHeaderCells = noHeaderRows.find(TH),\n columnHeaderCells = tables.first().find(THEAD + EMPTY + TH),\n rowHeaderCells = tables.find(TBODY + EMPTY + TH),\n outOfRange = tables.find(DOT + OUTOFRANGE),\n ariaDataCells = function(i, row) {\n var $row = $(row),\n numberOfEmpty = $row.find(DOT + OUTOFRANGE).length,\n owned = [],\n prev, cells;\n\n if (i === 1) {\n $row.children()\n .filter(DOT + OUTOFRANGE)\n .attr({\n \"aria-hidden\": \"false\",\n role: GRIDCELL\n });\n } else if (numberOfEmpty === 7) {\n $row.removeAttr(ROLE);\n $row.find(TH).removeAttr(ROLE);\n } else if (numberOfEmpty > 0 && numberOfEmpty < 7 && $row.children().not(TH).first().hasClass(OUTOFRANGE)) {\n $row.find(TH).removeAttr(ROLE);\n prev = rows.eq(i - 1);\n\n if (!prev.attr(ROLE) || prev.attr(ROLE) === NONE) {\n prev = rows.eq(i - 2);\n }\n\n cells = $row.children().not(TH);\n\n cells.each(function(j, cell) {\n var $cell = $(cell),\n id;\n\n if (!$cell.hasClass(OUTOFRANGE)) {\n id = \"owned_\" + i + \"_\" + j;\n $cell.attr(ID, id);\n owned.push(id);\n }\n });\n\n $row.removeAttr(ROLE);\n prev.attr(ARIA_OWNS, owned.join(\" \"));\n }\n };\n\n columnHeaderCells.attr({\n role: COLUMNHEADER\n });\n\n rowHeaderCells.attr({\n role: ROWHEADER\n });\n\n outOfRange.removeAttr(ROLE);\n noHeaderRows.removeAttr(ROLE);\n noHeaderCells.removeAttr(ARIA_LABEL).removeAttr(ROLE);\n\n rows.each(ariaDataCells);\n },\n\n _updateHeader: function() {\n var that = this;\n var view = that._currentView;\n var title = that._title;\n var value = that._firstViewValue;\n var options = that.options;\n var visibleRange = that._visibleRange();\n var culture = options.culture;\n var min = options.min;\n var max = options.max;\n var lastDate;\n var disabled;\n var prevDisabled;\n var nextDisabled;\n\n if (view.name === DECADE || view.name === CENTURY) {\n lastDate = shiftDate(value, view.name, options.views - 1);\n if (!isInRange(lastDate, min, max)) {\n lastDate = max;\n }\n\n title.html('\" +\n \"\" + (kendo.ui.icon({ icon: \"chevron-left\", iconClass: \"k-button-icon\" })) + \"\" +\n \"\" + (kendo.ui.icon({ icon: \"chevron-right\", iconClass: \"k-button-icon\" })) + \"\" +\n '').appendTo(that.header);\n that[PREVARROW] = that._navContainer.find(\".k-calendar-prev-view\");\n that[NEXTARROW] = that._navContainer.find(\".k-calendar-next-view\");\n }\n\n that[PREVARROW].toggleClass(DISABLED, prevDisabled).attr(ARIA_DISABLED, prevDisabled);\n if (that[PREVARROW].hasClass(DISABLED)) {\n that[PREVARROW].removeClass(HOVER);\n }\n\n that[NEXTARROW].toggleClass(DISABLED, nextDisabled).attr(ARIA_DISABLED, nextDisabled);\n if (that[NEXTARROW].hasClass(DISABLED)) {\n that[NEXTARROW].removeClass(HOVER);\n }\n }\n },\n\n _mouseEnter: function(e) {\n var that = this;\n var cell = $(e.currentTarget);\n var range;\n var items;\n var startIdx;\n var endIdx;\n\n cell.addClass(HOVER);\n\n if (that.rangeSelectable && that._currentView.name === MONTH) {\n range = that.selectRange();\n if (range.start && !range.end) {\n if (that._dateInViews(that.selectRange().start)) {\n items = that.element.find(that.rangeSelectable.options.filter);\n startIdx = $.inArray($(that.rangeSelectable._start)[0], items);\n endIdx = $.inArray($(cell)[0], items);\n if (startIdx > endIdx) {\n return;\n }\n that.rangeSelectable.range(that.rangeSelectable._start, cell);\n } else if (+toDateObject(that.element.find(CELLSELECTOR).first().find(\"a\")) > +range.start) {\n that.rangeSelectable.selectTo(cell);\n }\n that.rangeSelectable._end = null;\n }\n }\n },\n\n _move: function(e) {\n var that = this;\n var options = that.options;\n var key = e.keyCode;\n var index = that._index;\n var min = options.min;\n var max = options.max;\n var focusedCell = that.element.find(DOT + FOCUSED);\n var table = focusedCell.closest(TABLE);\n var currentValue = new DATE(+(that._current || toDateObject(focusedCell.find(\"a\"))));\n var isRtl = kendo.support.isRtl(that.wrapper);\n var navigate = false;\n var value, prevent, method, cell, lastActive, cellIndex, triggerChange;\n\n if (key == keys.RIGHT && !isRtl || key == keys.LEFT && isRtl) {\n value = 1;\n prevent = true;\n } else if (key == keys.LEFT && !isRtl || key == keys.RIGHT && isRtl) {\n value = -1;\n prevent = true;\n } else if (key == keys.UP) {\n value = index === 0 ? -7 : -4;\n prevent = true;\n } else if (key == keys.DOWN) {\n value = index === 0 ? 7 : 4;\n prevent = true;\n } else if (key == keys.SPACEBAR) {\n value = 0;\n prevent = true;\n } else if (key == keys.HOME) {\n prevent = true;\n cell = table.find(CELLSELECTORVALID).eq(0);\n if (cell.hasClass(FOCUSED)) {\n table = table.prev();\n if (table.length) {\n that._focusCell(table.find(CELLSELECTORVALID).eq(0));\n } else {\n navigate = that[PREVARROW] && !that[PREVARROW].hasClass(DISABLED);\n that._navigate(PREVARROW, -1);\n that._focusCell(that.element.find(TABLE).first().find(CELLSELECTORVALID).first());\n }\n } else {\n that._focusCell(cell);\n }\n } else if (key == keys.END) {\n prevent = true;\n cell = table.find(CELLSELECTORVALID).last();\n if (cell.hasClass(FOCUSED)) {\n table = table.next();\n if (table.length) {\n that._focusCell(table.find(CELLSELECTORVALID).last());\n } else {\n navigate = that[NEXTARROW] && !that[NEXTARROW].hasClass(DISABLED);\n that._navigate(NEXTARROW, 1);\n that._focusCell(that.element.find(TABLE).last().find(CELLSELECTORVALID).last());\n }\n } else {\n that._focusCell(cell);\n }\n } else if (key === 84) {\n that._todayClick(e);\n prevent = true;\n }\n\n if (e.ctrlKey || e.metaKey) {\n if (key == keys.RIGHT && !isRtl || key == keys.LEFT && isRtl) {\n navigate = that[NEXTARROW] && !that[NEXTARROW].hasClass(DISABLED);\n that._navigate(NEXTARROW, 1);\n prevent = true;\n } else if (key == keys.LEFT && !isRtl || key == keys.RIGHT && isRtl) {\n navigate = that[PREVARROW] && !that[PREVARROW].hasClass(DISABLED);\n that._navigate(PREVARROW, -1);\n prevent = true;\n } else if (key == keys.UP) {\n navigate = !that._title.hasClass(DISABLED);\n that.navigateUp();\n that._focusCell(that._cellByDate(that._current));\n prevent = true;\n } else if (key == keys.DOWN) {\n if (that._currentView.name === MONTH) {\n that.value(currentValue);\n } else {\n that.navigateDown(currentValue);\n that._focusCell(that._cellByDate(that._current));\n navigate = true;\n }\n prevent = true;\n } else if ((key == keys.ENTER || key == keys.SPACEBAR)) {\n if (options.selectable === MULTIPLE) {\n that._toggleSelection(e);\n }\n }\n } else if (e.shiftKey && options.selectable !== SINGLE) {\n if (value !== undefined$1 || method) {\n if (!method) {\n that._currentView.setDate(currentValue, value);\n }\n\n if (that._currentView.name !== MONTH) {\n return;\n }\n\n if (options.disableDates(currentValue)) {\n currentValue = that._nextNavigatable(currentValue, value);\n }\n\n min = createDate(min.getFullYear(), min.getMonth(), min.getDate());\n\n if (isInRange(currentValue, min, max)) {\n if (!that._dateInViews(currentValue)) {\n if (value > 0) {\n navigate = that[NEXTARROW] && !that[NEXTARROW].hasClass(DISABLED);\n that._navigate(NEXTARROW, 1);\n } else {\n navigate = that[PREVARROW] && !that[PREVARROW].hasClass(DISABLED);\n that._navigate(PREVARROW, -1);\n }\n }\n cell = that._cellByDate(currentValue);\n that._current = currentValue;\n\n if (that.selectable) {\n that._selectRange(toDateObject((that.selectable._lastActive || focusedCell).find(\"a\")), currentValue);\n if (!that.selectable._lastActive) {\n that.selectable._lastActive = focusedCell;\n }\n that.trigger(CHANGE);\n that._focusCell(cell);\n }\n\n if (that.rangeSelectable) {\n lastActive = toDateObject((that.rangeSelectable._lastActive || focusedCell).find(\"a\"));\n if (!that._dateInViews(lastActive)) {\n if (+lastActive > +currentValue) {\n that.rangeSelectable._end = that.rangeSelectable._lastActive;\n that.rangeSelectable.selectFrom(cell);\n } else {\n that.rangeSelectable.selectTo(cell);\n }\n } else {\n if (that.rangeSelectable._end && that.rangeSelectable._end.is(DOT + FOCUSED)) {\n that.rangeSelectable._lastActive = that.rangeSelectable._start;\n } else {\n that.rangeSelectable._lastActive = that._cellByDate(lastActive);\n }\n that.rangeSelectable.range(that.rangeSelectable._lastActive, cell);\n }\n that.rangeSelectable.change();\n that._focusCell(cell);\n }\n }\n }\n } else {\n if (key == keys.ENTER || key == keys.SPACEBAR) {\n if (that._currentView.name === MONTH) {\n triggerChange = !focusedCell.hasClass(SELECTED) || that.element.find(DOT + SELECTED).length > 1;\n that.value(currentValue);\n if (that.selectable) {\n that.selectable._lastActive = that._cellByDate(currentValue);\n if (triggerChange) {\n that.selectable.trigger(CHANGE, { event: e });\n }\n }\n if (that.rangeSelectable) {\n that.rangeSelectable.change();\n }\n } else {\n that._click($(that._cell[0].firstChild));\n }\n prevent = true;\n } else if (key == keys.PAGEUP || key == keys.PAGEDOWN) {\n prevent = true;\n cellIndex = table.find(CELLSELECTORVALID).index(focusedCell);\n table = key == keys.PAGEUP ? table.prev() : table.next();\n if (!table.length) {\n if (key == keys.PAGEUP) {\n navigate = that[PREVARROW] && !that[PREVARROW].hasClass(DISABLED);\n that.navigateToPast();\n table = that.element.find(TABLE).first();\n } else {\n navigate = that[NEXTARROW] && !that[NEXTARROW].hasClass(DISABLED);\n that.navigateToFuture();\n table = that.element.find(TABLE).last();\n }\n }\n cell = table.find(CELLSELECTORVALID).eq(cellIndex);\n if (cell.length) {\n that._focusCell(cell);\n } else {\n that._focusCell(table.find(CELLSELECTORVALID).last());\n }\n }\n\n if (value || method) {\n if (!method) {\n that._currentView.setDate(currentValue, value);\n }\n\n min = createDate(min.getFullYear(), min.getMonth(), min.getDate());\n\n if (isInRange(currentValue, min, max)) {\n if (that.selectable && options.disableDates(currentValue)) {\n currentValue = that._nextNavigatable(currentValue, value);\n }\n if (!that._dateInViews(currentValue)) {\n if (value > 0) {\n navigate = that[NEXTARROW] && !that[NEXTARROW].hasClass(DISABLED);\n that._navigate(NEXTARROW, 1);\n } else {\n navigate = that[PREVARROW] && !that[PREVARROW].hasClass(DISABLED);\n that._navigate(NEXTARROW, -1);\n }\n }\n cell = that._cellByDate(currentValue);\n that._current = currentValue;\n that._focusCell(cell);\n }\n }\n }\n\n if (navigate) {\n that.trigger(NAVIGATE);\n }\n\n if (prevent) {\n e.preventDefault();\n }\n\n return that._current;\n\n },\n\n _visualizeSelectedDatesInView: function() {\n var that = this;\n var selectedDates = {};\n var cells;\n\n $.each(that._selectDates, function(index, value) {\n selectedDates[kendo.calendar.views[0].toDateString(value)] = value;\n });\n that.selectable.clear();\n cells = that.element.find(TABLE)\n .find(CELLSELECTOR)\n .filter(function(index, element) {\n return selectedDates[$(element.firstChild).attr(kendo.attr(VALUE))];\n });\n\n if (cells.length > 0) {\n that.selectable._selectElement(cells, true);\n }\n },\n\n _nextNavigatable: function(currentValue, value) {\n var that = this;\n var disabled = true;\n var view = that._currentView;\n var min = that.options.min;\n var max = that.options.max;\n var isDisabled = that.options.disableDates;\n var navigatableDate = new Date(currentValue.getTime());\n\n view.setDate(navigatableDate, -value);\n while (disabled) {\n view.setDate(currentValue, value);\n if (!isInRange(currentValue, min, max)) {\n currentValue = navigatableDate;\n break;\n }\n disabled = isDisabled(currentValue);\n }\n return currentValue;\n },\n\n _toggleSelection: function(event) {\n var that = this;\n\n that.selectable._lastActive = $(that._cell[0]);\n\n if ($(that._cell[0]).hasClass(SELECTED)) {\n that.selectable._unselect($(that._cell[0]));\n }\n else {\n that.selectable.value($(that._cell[0]));\n }\n that.selectable.trigger(CHANGE, { event: event });\n },\n\n _option: function(option, value) {\n var that = this;\n var options = that.options;\n var currentValue = that._value || that._current;\n var isBigger;\n\n if (value === undefined$1) {\n return options[option];\n }\n\n value = kendo.parseDate(value, options.format, options.culture);\n\n if (!value) {\n return;\n }\n\n options[option] = new DATE(+value);\n\n if (option === MIN) {\n isBigger = value > currentValue;\n } else {\n isBigger = currentValue > value;\n }\n\n if (isBigger) {\n that._value = null;\n }\n\n that.navigate(that._value);\n\n that._toggle();\n },\n\n _cellByDate: function(value) {\n if (value instanceof Date) {\n value = this._currentView.toDateString(value);\n }\n return this.element.find(TABLE).find(\"td:not(.\" + OTHERMONTH + \")\")\n .filter(function() {\n return $(this.firstChild).attr(kendo.attr(VALUE)) === value;\n });\n },\n\n _selectable: function() {\n var that = this;\n var selectable = that.options.selectable;\n\n if (that.selectable) {\n that.selectable.destroy();\n that.selectable = null;\n }\n\n if (that.rangeSelectable) {\n that.rangeSelectable.destroy();\n that.rangeSelectable = null;\n }\n\n if (selectable.toLowerCase() === RANGE) {\n that.rangeSelectable = new RangeSelectable(that.wrapper, {\n calendar: that,\n filter: \"table.k-month \" + CELLSELECTORVALID,\n change: that._rangeSelection.bind(that)\n });\n } else {\n that.selectable = new Selectable(that.wrapper, {\n aria: true,\n dragToSelect: false,\n 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\",\n multiple: Selectable.parseOptions(selectable).multiple,\n filter: \"table.k-content \" + CELLSELECTORVALID,\n change: that._selection.bind(that),\n relatedTarget: that._onRelatedTarget.bind(that),\n unselect: that._unselecting.bind(that)\n });\n }\n },\n\n _onRelatedTarget: function(target) {\n var that = this;\n\n if (that.selectable.options.multiple && target.is(CELLSELECTORVALID) && target.length > 1) {\n that._focusCell(target.first(), true);\n }\n },\n\n _getFirstViewDate: function(currentView) {\n var that = this;\n var options = that.options;\n var ranges = [];\n var start;\n var end;\n var current = new Date(+that._current);\n var i;\n\n for (i = 0; i < options.views; i++) {\n start = currentView.first(current);\n end = currentView.last(current);\n\n if (+end > +options.max) {\n if (+start <= +options.max) {\n ranges.push({ start: start, end: new Date(+options.max) });\n }\n break;\n }\n\n ranges.push({ start: start, end: end });\n\n current = new Date(+shiftDate(end, currentView.name, 1));\n }\n\n current = new Date(+that._current);\n\n for (i = 0; i < options.views; i++) {\n start = currentView.first(current);\n end = currentView.last(current);\n\n if (+start < +options.min) {\n if (+end >= +options.min) {\n ranges.push({ start: new Date(+options.min), end: end });\n }\n break;\n }\n\n ranges.push({ start: start, end: end });\n\n current = new Date(+shiftDate(start, currentView.name, -1));\n }\n\n start = ranges[0].start;\n\n for (i = 0; i < options.views + 1; i++) {\n if (!ranges[i]) {\n break;\n }\n\n if (+start > +ranges[i].start) {\n start = ranges[i].start;\n }\n }\n\n return new Date(+start);\n },\n\n _canRenderNextView: function(viewDate) {\n var fullYear = viewDate.getFullYear();\n var month = viewDate.getMonth();\n var date = viewDate.getDate();\n var max = this.options.max;\n var maxYear = max.getFullYear();\n var maxMonth = max.getMonth();\n\n\n if (fullYear < maxYear) {\n return true;\n }\n\n if (fullYear === maxYear && month < maxMonth) {\n return true;\n }\n\n if (fullYear === maxYear && month === maxMonth && date < max.getDate()) {\n return true;\n }\n\n if (fullYear === maxYear && month === maxMonth && date === max.getDate()) {\n return true;\n }\n\n return false;\n },\n\n _initViews: function(viewOptions) {\n var that = this;\n var options = that.options;\n var index = calendar.viewsEnum[viewOptions.viewName];\n var currentView = calendar.views[index];\n var viewDate;\n\n that._current = new DATE(+calendar.restrictValue(viewOptions.value, options.min, options.max));\n that._views = [];\n that._index = index;\n viewDate = that._getFirstViewDate(currentView);\n viewDate.setDate(1);\n\n that._firstViewValue = new Date(+viewDate);\n\n for (var i = 0; i < options.views; i++) {\n viewDate = i ? shiftDate(viewDate, currentView.name, 1) : viewDate;\n viewDate.setDate(1);\n\n if (!that._canRenderNextView(viewDate)) {\n break;\n }\n\n that._table = $(currentView.content($.extend({\n min: options.min,\n max: options.max,\n date: viewDate,\n url: options.url,\n dates: options.dates,\n format: options.format,\n culture: options.culture,\n disableDates: options.disableDates,\n showHeader: options.showViewHeader,\n isWeekColumnVisible: options.weekNumber,\n otherMonth: options.otherMonth,\n messages: options.messages,\n contentClasses: \"k-calendar-table k-content\"\n }, that[currentView.name])));\n\n that._table.appendTo(that.tablesWrapper).addClass(\"k-\" + currentView.name);\n that._views.push(that._table);\n }\n\n that._currentView = currentView;\n\n that.tablesWrapper.attr(\"class\", \"k-calendar-view k-calendar-\" + currentView.name + \"view \" + (that.options.orientation != \"vertical\" ? \"k-hstack\" : \"k-vstack\") + \" k-align-items-start k-justify-content-center\");\n\n that._updateHeader();\n\n that._aria();\n },\n\n _rangeSelection: function(e) {\n var that = this;\n var range = e.sender.range();\n var useEnd = e.sender._useEnd;\n var useStart = e.sender._useStart;\n var initialRange = that.selectRange() || {};\n var start;\n var end;\n\n if (range.start) {\n start = toDateObject(range.start.find(\"a\"));\n }\n\n if (range.end) {\n end = toDateObject(range.end.find(\"a\"));\n }\n\n that._range = { start: useStart ? initialRange.start : start, end: useEnd ? initialRange.end : end };\n\n if (!that._preventChange) {\n that.trigger(CHANGE);\n }\n },\n\n _selection: function(e) {\n var that = this;\n var selectElements = e.sender.value();\n var domEvent = e.event;\n var currentTarget = $(domEvent && domEvent.currentTarget);\n var isCell = currentTarget.is(TD);\n var currentValue;\n\n if (that.options.selectable === SINGLE) {\n that._validateValue(selectElements[0] ? toDateObject(selectElements.first().find(\"a\")) : e.sender._lastActive ? toDateObject(e.sender._lastActive.find(\"a\")) : that.value());\n }\n\n if (that.options.selectable == MULTIPLE) {\n\n if (isCell) {\n currentValue = toDateObject(currentTarget.find(\"a\"));\n }\n\n if (domEvent && domEvent.ctrlKey) {\n if (isCell) {\n if (currentTarget.hasClass(SELECTED)) {\n that._selectDates.push(currentValue);\n } else {\n that._deselect(currentValue);\n }\n } else {\n that.element.find(\"table \" + CELLSELECTORVALID).each(function(index, element) {\n var value = toDateObject($(element).find(\"a\"));\n that._deselect(value);\n });\n that._addSelectedCellsToArray();\n }\n } else if (domEvent && domEvent.shiftKey) {\n that._selectRange(toDateObject(e.sender._lastActive ? e.sender._lastActive.find(\"a\") : selectElements.first().find(\"a\")), currentValue);\n } else if (isCell) {\n that._selectDates = [];\n that._selectDates.push(currentValue);\n } else {\n that._selectDates = [];\n that._addSelectedCellsToArray();\n }\n }\n\n if (!that._preventChange) {\n that.trigger(CHANGE);\n }\n },\n\n _addSelectedCellsToArray: function() {\n var that = this;\n if (!that.selectable) {\n return;\n }\n that.selectable.value().each(function(index, item) {\n var date = toDateObject($(item.firstChild));\n if (!that.options.disableDates(date)) {\n that._selectDates.push(date);\n }\n });\n },\n\n _deselect: function(date) {\n var that = this;\n var currentDateIndex = that._selectDates.map(Number).indexOf(+date);\n if (currentDateIndex != -1) {\n that._selectDates.splice(currentDateIndex, 1);\n }\n },\n\n _unselecting: function(e) {\n var that = this;\n var element = e.element;\n\n if (that.options.selectable === SINGLE && !mobileOS && element.hasClass(FOCUSED)) {\n e.preventDefault();\n }\n },\n\n _visibleRange: function() {\n var tables = this.element.find(DOT + CALENDAR_VIEW + EMPTY + TABLE);\n var firstDateInView = toDateObject(tables.first().find(CELLSELECTOR).first().find(\"a\"));\n var lastDateInView = toDateObject(tables.last().find(CELLSELECTOR).last().find(\"a\"));\n return { start: firstDateInView, end: lastDateInView };\n },\n\n _dateInViews: function(date) {\n var that = this;\n var tables = that.element.find(DOT + CALENDAR_VIEW + EMPTY + TABLE);\n var firstDateInView = toDateObject(tables.first().find(CELLSELECTOR).first().find(\"a\"));\n var lastDateInView = toDateObject(tables.last().find(CELLSELECTOR).last().find(\"a\"));\n\n date = new Date(date.toDateString());\n\n return +date <= +lastDateInView && +date >= +firstDateInView;\n },\n\n _fillRange: function(start, end) {\n var that = this;\n var daysDifference;\n\n that._selectDates = [];\n daysDifference = daysBetweenTwoDates(start, end);\n addDaysToArray(that._selectDates, daysDifference, start, that.options.disableDates);\n },\n\n _selectRange: function(start, end) {\n var that = this;\n var current;\n\n if (+end < +start) {\n current = end;\n end = start;\n start = current;\n }\n\n that._fillRange(start, end);\n that._visualizeSelectedDatesInView();\n },\n\n _header: function() {\n var that = this;\n var element = that.element;\n var buttons;\n var header = element.find(\".k-calendar-header\");\n\n if (!header.length) {\n header = $(\"
\");\n } else {\n title.html(' \");\n }\n\n disabled = view.name === CENTURY;\n title.toggleClass(DISABLED, disabled).attr(ARIA_DISABLED, disabled);\n\n prevDisabled = view.compare(visibleRange.start, that.options.min) < 1;\n nextDisabled = view.compare(visibleRange.end, that.options.max) > -1;\n\n if (prevDisabled && nextDisabled) {\n if (that._navContainer) {\n that._navContainer.remove();\n that._navContainer = null;\n }\n } else {\n if (!that._navContainer) {\n that._navContainer = $(\"