{"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","RangeSelectable","template","mobileOS","ns","CLICK","ID","MONTH","DOT","EMPTY","CENTURY","CHANGE","NAVIGATE","VALUE","FOCUSED","SELECTED","HOVER","DISABLED","TODAY","EMPTYCELL","CALENDAR_VIEW","CELLSELECTOR","CELLSELECTORVALID","BLUR","FOCUS","MOUSEENTER","touch","MOUSELEAVE_NS","PREVARROW","NEXTARROW","START","END","TABLE","TBODY","THEAD","TD_NOT_WEEK_CELL","TD","TH","ROLE","NONE","ARIA_DISABLED","ARIA_LABEL","ARIA_ACTIVEDESCENDANT","DATE","Date","views","month","year","decade","century","MultiViewCalendar","extend","init","element","options","id","culture","that","fn","call","wrapper","disableDates","disabled","getCulture","format","_extractFormat","calendars","standard","patterns","d","_templates","_header","_wrapper","addClass","getValidCssClass","size","weekNumber","on","_move","bind","_focus","_blur","e","link","currentTarget","firstChild","data","indexOf","preventDefault","_click","attr","guid","_cellID","_calendarWidth","width","_range","range","start","end","target","_initViews","viewName","value","_selectable","_footer","footer","_selectDates","_addSelectedCellsToArray","_isMultipleSelection","selectDates","length","_restoreSelection","_isRangeSelection","selectRange","notify","name","min","max","dates","allowReverse","showOtherMonthDays","centuryCellsFormat","showViewHeader","selectable","depth","messages","weekColumnHeader","orientation","events","setOptions","normalize","i","_views","off","remove","destroy","_cell","_currentView","_current","header","_title","rangeSelectable","_today","current","focus","tablesWrapper","trigger","_option","view","navigateToPast","_navigate","navigateToFuture","navigateUp","index","_index","hasClass","navigate","navigateDown","_value","isNaN","viewsEnum","restrictValue","_aria","tables","find","rowGroups","first","add","removeAttr","role","_ariaMonth","rows","noHeaderRows","not","noHeaderCells","columnHeaderCells","rowHeaderCells","outOfRange","each","row","prev","$row","numberOfEmpty","owned","children","filter","eq","j","cell","$cell","push","join","_updateHeader","lastDate","prevDisabled","nextDisabled","title","_firstViewValue","visibleRange","_visibleRange","shiftDate","html","getFullYear","last","toggleClass","compare","_navContainer","icon","iconClass","appendTo","removeClass","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","_isSingleSelection","setDate","_nextNavigatable","getMonth","getDate","_dateInViews","_selectRange","_lastActive","_end","is","_start","selectFrom","selectTo","change","event","PAGEUP","PAGEDOWN","_visualizeSelectedDatesInView","cells","selectedDates","toDateString","clear","_selectElement","isDisabled","navigatableDate","getTime","_unselect","option","parseDate","_toggle","mode","parseOptions","widget","cellSelector","cellSelectorValid","_rangeSelection","reverse","resetOnStart","inputSelectors","aria","dragToSelect","multiple","selectableClass","_selection","relatedTarget","_onRelatedTarget","unselect","_unselecting","_getFirstViewDate","currentView","ranges","_canRenderNextView","viewDate","fullYear","date","maxYear","maxMonth","viewOptions","_table","content","url","showHeader","isWeekColumnVisible","contentClasses","sender","useEnd","_useEnd","useStart","_useStart","initialRange","_preventChange","selectElements","domEvent","isCell","_validateValue","_deselect","item","currentDateIndex","map","Number","splice","firstDateInView","lastDateInView","_fillRange","daysDifference","startDate","endDate","temp","fromDateUTC","UTC","endDateUTC","Math","ceil","MS_PER_DAY","daysBetweenTwoDates","array","numberOfDays","fromDate","nextDay","addDaysToArray","buttons","prependTo","mousetoggle","_calendarTitleClick","_prevViewClick","_nextViewClick","insertAfter","empty","cssClass","linkClass","dateString","useWithBlock","toString","today","hide","show","arrow","modifier","offset","originaValue","setFullYear","toggle","isTodayDisabled","adjustDST","contains","cellId","removeAttribute","_updateAria","ariaTemplate","text","valueType","clearSelection","single","validSelectedDates","datesUnique","position","time","grep","setHours","startInRange","endInRange","mid","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 let __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 let 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 RangeSelectable = ui.RangeSelectable,\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 HOVER = \"k-hover\",\n DISABLED = \"k-disabled\",\n TODAY = \"k-calendar-nav-today\",\n OTHERMONTH = \"k-other-month\",\n EMPTYCELL = \"k-empty\",\n CALENDAR_VIEW = \"k-calendar-view\",\n CELLSELECTOR = \"td:has(.k-link):not(.\" + EMPTYCELL + \"):not(.k-alt)\",\n CELLSELECTORVALID = \"td:has(.k-link):not(.\" + DISABLED + \"):not(.\" + EMPTYCELL + \"):not(.k-alt)\",\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 START = \"start\",\n END = \"end\",\n TABINDEX = \"tabindex\",\n TABLE = \"table\",\n TBODY = \"tbody\",\n THEAD = \"thead\",\n TR = \"tr\",\n TD = \"td\",\n TD_NOT_WEEK_CELL = TD + \":not(.k-alt)\",\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,span,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 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-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).data(\"href\").indexOf(\"#\") != -1) {\n e.preventDefault();\n }\n\n that._click($(link));\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 if (that._range && that._range.start && !that._range.end) {\n that._range.target = END;\n }\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 (that._isMultipleSelection()) {\n that._selectDates = options.selectDates.length ? options.selectDates : that._selectDates;\n that._restoreSelection();\n }\n\n if (that._isRangeSelection()) {\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 allowReverse: false,\n disableDates: null,\n showOtherMonthDays: false,\n centuryCellsFormat: \"long\",\n culture: \"\",\n footer: \"\",\n format: \"\",\n month: {},\n range: { start: null, end: null, target: START },\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 if (that._isRangeSelection()) {\n that.selectRange(that._range);\n }\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 + TD + \".k-alt\"),\n outOfRange = tables.find(DOT + EMPTYCELL),\n ariaDataCells = function(i, row) {\n var $row = $(row),\n numberOfEmpty = $row.find(DOT + EMPTYCELL).length,\n owned = [],\n prev, cells;\n\n if (i === 1) {\n $row.children()\n .filter(DOT + EMPTYCELL)\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(EMPTYCELL)) {\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(EMPTYCELL)) {\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 let that = this,\n view = that._currentView,\n title = that._title,\n value = that._firstViewValue,\n options = that.options,\n visibleRange = that._visibleRange(),\n culture = options.culture,\n min = options.min,\n max = options.max,\n lastDate,\n disabled,\n prevDisabled,\n 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 `').appendTo(that.header);\n that[PREVARROW] = that._navContainer.find(\".k-calendar-nav-prev\");\n that[NEXTARROW] = that._navContainer.find(\".k-calendar-nav-next\");\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 _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(\"span\"))));\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 (that._isMultipleSelection()) {\n that._toggleSelection(e);\n }\n }\n } else if (e.shiftKey && !that._isSingleSelection()) {\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(\"span\")), 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(\"span\"));\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 let that = this,\n selectable = that.options.selectable,\n mode = Selectable.parseOptions(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 (mode.range) {\n that.rangeSelectable = new RangeSelectable(that.wrapper, {\n widget: that,\n filter: \".k-calendar-monthview table \" + CELLSELECTORVALID,\n cellSelector: CELLSELECTOR,\n cellSelectorValid: CELLSELECTORVALID,\n change: that._rangeSelection.bind(that),\n reverse: that.options.allowReverse,\n resetOnStart: selectable.resetOnStart !== undefined$1 ? selectable.resetOnStart : true,\n ns: ns,\n inputSelectors: INPUTSELECTOR\n });\n } else {\n that.selectable = new Selectable(that.wrapper, {\n aria: true,\n dragToSelect: false,\n multiple: mode.multiple,\n filter: \"table.k-calendar-table \" + CELLSELECTORVALID,\n selectableClass: \"k-calendar\",\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 showOtherMonthDays: options.showOtherMonthDays,\n centuryCellsFormat: options.centuryCellsFormat,\n messages: options.messages,\n contentClasses: \"k-calendar-table\"\n }, that[currentView.name])));\n\n that._table.appendTo(that.tablesWrapper);\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 let that = this,\n range = e.sender.range(),\n useEnd = e.sender._useEnd,\n useStart = e.sender._useStart,\n initialRange = that.selectRange() || {},\n start,\n end,\n target = initialRange.target;\n\n if (range.start && range.start.length) {\n start = toDateObject(range.start.find(\"span\"));\n }\n\n if (range.end && range.end.length) {\n end = toDateObject(range.end.find(\"span\"));\n }\n\n if (target === END) {\n target = START;\n } else {\n target = END;\n }\n\n that._range = { start: useStart ? initialRange.start : start, end: useEnd ? initialRange.end : end, target: target };\n\n if (!that._preventChange) {\n that.trigger(CHANGE);\n }\n },\n\n _selection: function(e) {\n let that = this,\n selectElements = e.sender.value(),\n domEvent = e.event,\n currentTarget = $(domEvent && domEvent.currentTarget),\n isCell = currentTarget.is(TD_NOT_WEEK_CELL),\n currentValue;\n\n if (that._isSingleSelection()) {\n that._validateValue(selectElements[0] ? toDateObject(selectElements.first().find(\"span\")) : e.sender._lastActive ? toDateObject(e.sender._lastActive.find(\"span\")) : that.value());\n }\n\n if (that._isMultipleSelection()) {\n\n if (isCell) {\n currentValue = toDateObject(currentTarget.find(\"span\"));\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(\"span\"));\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(\"span\") : selectElements.first().find(\"span\")), 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._isSingleSelection() && !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(\"span\"));\n var lastDateInView = toDateObject(tables.last().find(CELLSELECTOR).last().find(\"span\"));\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(\"span\"));\n var lastDateInView = toDateObject(tables.last().find(CELLSELECTOR).last().find(\"span\"));\n\n if (!date) {\n return;\n }\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 ` ` +\n '
\");\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 = $(`