{"version":3,"sources":["kendo.scheduler.monthview.js"],"names":["f","define","$","shiftArray","array","idx","slice","concat","firstVisibleMonthDay","date","calendarInfo","firstDay","firstVisibleDay","Date","getFullYear","getMonth","getHours","getMinutes","getSeconds","getMilliseconds","getDay","kendo","setTime","MS_PER_DAY","isInDateRange","value","min","max","msValue","msMin","msMax","window","ui","SchedulerView","NS","extend","getDate","NUMBER_OF_ROWS","NUMBER_OF_COLUMNS","DAY_TEMPLATE","template","EVENT_WRAPPER_STRING","EVENT_TEMPLATE","MORE_BUTTON_TEMPLATE","MonthView","init","element","options","that","this","fn","call","title","_templates","_editable","_renderLayout","_groups","name","_updateDirection","selection","ranges","multiple","reverse","vertical","startSlot","endSlot","isSameSlot","isSameCollection","updateDirection","start","length","end","index","collectionIndex","backward","_changeViewPeriod","pad","addDays","_isVerticallyGrouped","groupIndex","groups","events","_continuousSlot","group","continuousSlot","_changeGroupContinuously","lastGroupIndex","_normalizeHorizontalSelection","slot","_normalizeVerticalSelection","settings","Template","templateSettings","eventTemplate","_eventTmpl","dayTemplate","groupHeaderTemplate","dateForTitle","format","selectedDateFormat","_firstDayOfMonth","_lastDayOfMonth","shortDateForTitle","selectedShortDateFormat","nextDate","nextDay","previousDate","previousDay","startDate","_startDate","endDate","_endDate","firstDayOfMonth","lastDayOfMonth","createLayout","_layout","_content","refreshLayout","content","on","e","offset","currentTarget","_slotByPosition","left","top","preventDefault","trigger","view","editable","_isMobilePhoneView","_isMobile","_touchEditable","_mouseEditable","uid","closest","attr","create","resourceInfo","_resourceBySlot","eventInfo","isAllDay","update","threshold","support","mobileOS","android","_addUserEvents","UserEvents","filter","tap","target","_editUserEvents","event","selectionByElement","cell","_columnCountForLevel","level","columnLevel","columnLevels","_rowCountForLevel","rowLevel","rowLevels","verticalGroupIdx","html","verticalGroupCount","resources","groupedResources","_createCalendar","find","verticalGroupIndex","rowIdx","startIdx","groupIdx","cellCount","cellsPerRow","weekStartDates","horizontalGroupCount","isVerticallyGrouped","_slotIndices","push","_createRow","_weekStartDates","cellIdx","classes","isToday","getTime","rows","inner","weekDayNames","days","namesShort","names","columns","map","text","className","_createRowsLayout","_createColumnsLayout","_createEventElement","isMobile","showDelete","destroy","resizable","resize","ns","eventResources","inverseColor","_shouldInverseResourceColor","angular","elements","data","dataItem","_isInDateSlot","slotStart","firstSlot","slotEnd","lastSlot","startTime","toUtcTime","endTime","_slotIndex","_positionMobileEvent","slotRange","startIndex","endIndex","eventCount","container","offsetLeft","collidingEvents","createRows","collection","at","offsetTop","firstChildTop","firstChildHeight","offsetWidth","appendChild","addEvent","_continuousEvents","_positionEvent","rightOffset","rowEvents","eventTop","j","eventLength","slotIndex","eventHeight","Math","style","more","width","clientWidth","innerWidth","height","appendTo","x","y","scrollTop","scrollLeft","ceil","daySlotByPosition","_createResizeHint","range","clientHeight","hint","_resizeHint","add","_updateResizeHint","rangeIndex","_removeResizeHint","first","addClass","toString","timezone","toLocalDate","last","_updateMoveHint","distance","duration","_removeMoveHint","clone","head","tail","css","_moveHint","tableRows","rowMultiplier","rowIndex","tableRow","cells","cellMultiplier","cellIndex","groupCount","_groupCount","columnCount","rowCount","_addResourceView","getElementsByTagName","addDaySlotCollection","children","setAttribute","offsetHeight","MS_PER_HOUR","floor","moreButtonHeight","addDaySlot","render","remove","Query","sort","field","dir","toArray","_renderGroups","_renderEvents","rangeCount","occurrence","isMobilePhoneView","slotRanges","itemIdx","tmp","resource","dataSource","_resourceValue","operator","groupEqFilter","_columnOffsetForResource","table","removeClass","off","jQuery","amd","a1","a2","a3"],"mappings":"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","file":"kendo.scheduler.monthview.min.js","sourcesContent":["/*!\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n*/\n(function (f, define) {\n define('kendo.scheduler.monthview', ['kendo.scheduler.view'], f);\n}(function () {\n var __meta__ = {\n id: 'scheduler.monthview',\n name: 'Scheduler Month View',\n category: 'web',\n description: 'The Scheduler Month View',\n depends: ['scheduler.view'],\n hidden: true\n };\n (function ($) {\n var kendo = window.kendo, ui = kendo.ui, SchedulerView = ui.SchedulerView, NS = '.kendoMonthView', extend = $.extend, getDate = kendo.date.getDate, MS_PER_DAY = kendo.date.MS_PER_DAY, NUMBER_OF_ROWS = 6, NUMBER_OF_COLUMNS = 7, DAY_TEMPLATE = kendo.template('#:kendo.toString(date, \"dd\")#'), EVENT_WRAPPER_STRING = '
' + '' + '# if(data.tail || data.middle) {#' + '' + '#}#' + '# if(data.isException()) {#' + '' + '# } else if(data.isRecurring()) {#' + '' + '#}#' + '' + '{0}' + '' + '#if (showDelete) {#' + '' + '#}#' + '# if(data.head || data.middle) {#' + '' + '#}#' + '' + '# if(resizable && !data.tail && !data.middle) {#' + '' + '#}#' + '# if(resizable && !data.head && !data.middle) {#' + '' + '#}#' + '
', EVENT_TEMPLATE = kendo.template('
' + '
#:title#
' + '
');\n var MORE_BUTTON_TEMPLATE = kendo.template('
...
');\n ui.MonthView = SchedulerView.extend({\n init: function (element, options) {\n var that = this;\n SchedulerView.fn.init.call(that, element, options);\n that.title = that.options.title;\n that._templates();\n that._editable();\n that._renderLayout(that.options.date);\n that._groups();\n },\n name: 'month',\n _updateDirection: function (selection, ranges, multiple, reverse, vertical) {\n if (multiple) {\n var startSlot = ranges[0].start;\n var endSlot = ranges[ranges.length - 1].end;\n var isSameSlot = startSlot.index === endSlot.index;\n var isSameCollection = startSlot.collectionIndex === endSlot.collectionIndex;\n var updateDirection;\n if (vertical) {\n updateDirection = isSameSlot && isSameCollection || isSameCollection;\n } else {\n updateDirection = isSameSlot && isSameCollection;\n }\n if (updateDirection) {\n selection.backward = reverse;\n }\n }\n },\n _changeViewPeriod: function (selection, reverse, vertical) {\n var pad = vertical ? 7 : 1;\n if (reverse) {\n pad *= -1;\n }\n selection.start = kendo.date.addDays(selection.start, pad);\n selection.end = kendo.date.addDays(selection.end, pad);\n if (!vertical || vertical && this._isVerticallyGrouped()) {\n selection.groupIndex = reverse ? this.groups.length - 1 : 0;\n }\n selection.events = [];\n return true;\n },\n _continuousSlot: function (selection, ranges, reverse) {\n var index = selection.backward ? 0 : ranges.length - 1;\n var group = this.groups[selection.groupIndex];\n return group.continuousSlot(ranges[index].start, reverse);\n },\n _changeGroupContinuously: function (selection, continuousSlot, multiple, reverse) {\n if (!multiple) {\n var groupIndex = selection.groupIndex;\n var lastGroupIndex = this.groups.length - 1;\n var vertical = this._isVerticallyGrouped();\n var group = this.groups[groupIndex];\n if (!continuousSlot && vertical) {\n continuousSlot = group[reverse ? 'lastSlot' : 'firstSlot']();\n groupIndex += reverse ? -1 : 1;\n } else if (continuousSlot && !vertical) {\n groupIndex = reverse ? lastGroupIndex : 0;\n }\n if (groupIndex < 0 || groupIndex > lastGroupIndex) {\n groupIndex = reverse ? lastGroupIndex : 0;\n continuousSlot = null;\n }\n selection.groupIndex = groupIndex;\n }\n return continuousSlot;\n },\n _normalizeHorizontalSelection: function (selection, ranges, reverse) {\n var slot;\n if (reverse) {\n slot = ranges[0].start;\n } else {\n slot = ranges[ranges.length - 1].end;\n }\n return slot;\n },\n _normalizeVerticalSelection: function (selection, ranges) {\n var slot;\n if (selection.backward) {\n slot = ranges[0].start;\n } else {\n slot = ranges[ranges.length - 1].end;\n }\n return slot;\n },\n _templates: function () {\n var options = this.options, settings = extend({}, kendo.Template, options.templateSettings);\n this.eventTemplate = this._eventTmpl(options.eventTemplate, EVENT_WRAPPER_STRING);\n this.dayTemplate = kendo.template(options.dayTemplate, settings);\n this.groupHeaderTemplate = kendo.template(options.groupHeaderTemplate, settings);\n },\n dateForTitle: function () {\n return kendo.format(this.options.selectedDateFormat, this._firstDayOfMonth, this._lastDayOfMonth);\n },\n shortDateForTitle: function () {\n return kendo.format(this.options.selectedShortDateFormat, this._firstDayOfMonth, this._lastDayOfMonth);\n },\n nextDate: function () {\n return kendo.date.nextDay(this._lastDayOfMonth);\n },\n previousDate: function () {\n return kendo.date.previousDay(this._firstDayOfMonth);\n },\n startDate: function () {\n return this._startDate;\n },\n endDate: function () {\n return this._endDate;\n },\n _renderLayout: function (date) {\n var that = this;\n this._firstDayOfMonth = kendo.date.firstDayOfMonth(date);\n this._lastDayOfMonth = kendo.date.lastDayOfMonth(date);\n this._startDate = firstVisibleMonthDay(date, this.calendarInfo());\n this.createLayout(this._layout());\n this._content();\n this.refreshLayout();\n this.content.on('click' + NS, '.k-nav-day,.k-more-events', function (e) {\n var offset = $(e.currentTarget).offset();\n var slot = that._slotByPosition(offset.left, offset.top);\n e.preventDefault();\n that.trigger('navigate', {\n view: 'day',\n date: slot.startDate()\n });\n });\n },\n _editable: function () {\n if (this.options.editable && !this._isMobilePhoneView()) {\n if (this._isMobile()) {\n this._touchEditable();\n } else {\n this._mouseEditable();\n }\n }\n },\n _mouseEditable: function () {\n var that = this;\n that.element.on('click' + NS, '.k-scheduler-monthview .k-event a:has(.k-si-close)', function (e) {\n that.trigger('remove', { uid: $(this).closest('.k-event').attr(kendo.attr('uid')) });\n e.preventDefault();\n });\n if (that.options.editable.create !== false) {\n that.element.on('dblclick' + NS, '.k-scheduler-monthview .k-scheduler-content td', function (e) {\n var offset = $(e.currentTarget).offset();\n var slot = that._slotByPosition(offset.left, offset.top);\n if (slot) {\n var resourceInfo = that._resourceBySlot(slot);\n that.trigger('add', {\n eventInfo: extend({\n isAllDay: true,\n start: slot.startDate(),\n end: slot.startDate()\n }, resourceInfo)\n });\n }\n e.preventDefault();\n });\n }\n if (that.options.editable.update !== false) {\n that.element.on('dblclick' + NS, '.k-scheduler-monthview .k-event', function (e) {\n that.trigger('edit', { uid: $(this).closest('.k-event').attr(kendo.attr('uid')) });\n e.preventDefault();\n });\n }\n },\n _touchEditable: function () {\n var that = this;\n var threshold = 0;\n if (kendo.support.mobileOS.android) {\n threshold = 5;\n }\n if (that.options.editable.create !== false) {\n that._addUserEvents = new kendo.UserEvents(that.element, {\n threshold: threshold,\n filter: '.k-scheduler-monthview .k-scheduler-content td',\n tap: function (e) {\n var offset = $(e.target).offset();\n var slot = that._slotByPosition(offset.left, offset.top);\n if (slot) {\n var resourceInfo = that._resourceBySlot(slot);\n that.trigger('add', {\n eventInfo: extend({\n isAllDay: true,\n start: slot.startDate(),\n end: slot.startDate()\n }, resourceInfo)\n });\n }\n e.preventDefault();\n }\n });\n }\n if (that.options.editable.update !== false) {\n that._editUserEvents = new kendo.UserEvents(that.element, {\n threshold: threshold,\n filter: '.k-scheduler-monthview .k-event',\n tap: function (e) {\n if ($(e.event.target).closest('a:has(.k-si-close)').length === 0) {\n that.trigger('edit', { uid: $(e.target).closest('.k-event').attr(kendo.attr('uid')) });\n e.preventDefault();\n }\n }\n });\n }\n },\n selectionByElement: function (cell) {\n var offset = $(cell).offset();\n return this._slotByPosition(offset.left, offset.top);\n },\n _columnCountForLevel: function (level) {\n var columnLevel = this.columnLevels[level];\n return columnLevel ? columnLevel.length : 0;\n },\n _rowCountForLevel: function (level) {\n var rowLevel = this.rowLevels[level];\n return rowLevel ? rowLevel.length : 0;\n },\n _content: function () {\n var html = '';\n var verticalGroupCount = 1;\n var resources = this.groupedResources;\n if (resources.length) {\n if (this._isVerticallyGrouped()) {\n verticalGroupCount = this._rowCountForLevel(resources.length - 1);\n }\n }\n for (var verticalGroupIdx = 0; verticalGroupIdx < verticalGroupCount; verticalGroupIdx++) {\n html += this._createCalendar(verticalGroupIdx);\n }\n html += '';\n this.content.find('table').html(html);\n },\n _createCalendar: function (verticalGroupIndex) {\n var start = this.startDate();\n var cellCount = NUMBER_OF_COLUMNS * NUMBER_OF_ROWS;\n var cellsPerRow = NUMBER_OF_COLUMNS;\n var weekStartDates = [start];\n var html = '';\n var horizontalGroupCount = 1;\n var isVerticallyGrouped = this._isVerticallyGrouped();\n var resources = this.groupedResources;\n if (resources.length) {\n if (!isVerticallyGrouped) {\n horizontalGroupCount = this._columnCountForLevel(resources.length - 1);\n }\n }\n this._slotIndices = {};\n for (var rowIdx = 0, length = cellCount / cellsPerRow; rowIdx < length; rowIdx++) {\n html += '';\n weekStartDates.push(start);\n var startIdx = rowIdx * cellsPerRow;\n for (var groupIdx = 0; groupIdx < horizontalGroupCount; groupIdx++) {\n html += this._createRow(start, startIdx, cellsPerRow, isVerticallyGrouped ? verticalGroupIndex : groupIdx);\n }\n start = kendo.date.addDays(start, cellsPerRow);\n html += '';\n }\n this._weekStartDates = weekStartDates;\n this._endDate = kendo.date.previousDay(start);\n return html;\n },\n _createRow: function (startDate, startIdx, cellsPerRow, groupIndex) {\n var that = this;\n var min = that._firstDayOfMonth;\n var max = that._lastDayOfMonth;\n var content = that.dayTemplate;\n var classes = '';\n var html = '';\n var resources = function () {\n return that._resourceBySlot({ groupIndex: groupIndex });\n };\n for (var cellIdx = 0; cellIdx < cellsPerRow; cellIdx++) {\n classes = '';\n if (kendo.date.isToday(startDate)) {\n classes += 'k-today';\n }\n if (!kendo.date.isInDateRange(startDate, min, max)) {\n classes += ' k-other-month';\n }\n html += ' ',\n className: 'k-hidden k-slot-cell'\n });\n }\n rows = this._createRowsLayout(resources, inner, this.groupHeaderTemplate);\n } else {\n columns = this._createColumnsLayout(resources, columns, this.groupHeaderTemplate);\n }\n }\n return {\n columns: columns,\n rows: rows\n };\n },\n _createEventElement: function (event) {\n var options = this.options;\n var editable = options.editable;\n var isMobile = this._isMobile();\n event.showDelete = editable && editable.destroy !== false && !isMobile;\n event.resizable = editable && editable.resize !== false && !isMobile;\n event.ns = kendo.ns;\n event.resources = this.eventResources(event);\n event.inverseColor = event.resources && event.resources[0] ? this._shouldInverseResourceColor(event.resources[0]) : false;\n var element = $(this.eventTemplate(event));\n this.angular('compile', function () {\n return {\n elements: element,\n data: [{ dataItem: event }]\n };\n });\n return element;\n },\n _isInDateSlot: function (event) {\n var groups = this.groups[0];\n var slotStart = groups.firstSlot().start;\n var slotEnd = groups.lastSlot().end - 1;\n var startTime = kendo.date.toUtcTime(event.start);\n var endTime = kendo.date.toUtcTime(event.end);\n return (isInDateRange(startTime, slotStart, slotEnd) || isInDateRange(endTime, slotStart, slotEnd) || isInDateRange(slotStart, startTime, endTime) || isInDateRange(slotEnd, startTime, endTime)) && (!isInDateRange(endTime, slotStart, slotStart) || isInDateRange(endTime, startTime, startTime) || event.isAllDay);\n },\n _slotIndex: function (date) {\n return this._slotIndices[getDate(date).getTime()];\n },\n _positionMobileEvent: function (slotRange, element, group) {\n var startSlot = slotRange.start;\n if (slotRange.start.offsetLeft > slotRange.end.offsetLeft) {\n startSlot = slotRange.end;\n }\n var startIndex = slotRange.start.index;\n var endIndex = startIndex;\n var eventCount = 3;\n var events = SchedulerView.collidingEvents(slotRange.events(), startIndex, endIndex);\n events.push({\n element: element,\n start: startIndex,\n end: endIndex\n });\n var rows = SchedulerView.createRows(events);\n var slot = slotRange.collection.at(startIndex);\n var container = slot.container;\n if (!container) {\n container = $(kendo.format('
', startSlot.offsetTop + startSlot.firstChildTop + startSlot.firstChildHeight - 3 + 'px', startSlot.offsetLeft + 'px', startSlot.offsetWidth + 'px'));\n slot.container = container;\n this.content[0].appendChild(container[0]);\n }\n if (rows.length <= eventCount) {\n slotRange.addEvent({\n element: element,\n start: startIndex,\n end: endIndex,\n groupIndex: startSlot.groupIndex\n });\n group._continuousEvents.push({\n element: element,\n uid: element.attr(kendo.attr('uid')),\n start: slotRange.start,\n end: slotRange.end\n });\n container[0].appendChild(element[0]);\n }\n },\n _positionEvent: function (slotRange, element, group) {\n var eventHeight = this.options.eventHeight;\n var startSlot = slotRange.start;\n if (slotRange.start.offsetLeft > slotRange.end.offsetLeft) {\n startSlot = slotRange.end;\n }\n var startIndex = slotRange.start.index;\n var endIndex = slotRange.end.index;\n var eventCount = startSlot.eventCount;\n var events = SchedulerView.collidingEvents(slotRange.events(), startIndex, endIndex);\n var rightOffset = startIndex !== endIndex ? 5 : 4;\n events.push({\n element: element,\n start: startIndex,\n end: endIndex\n });\n var rows = SchedulerView.createRows(events);\n for (var idx = 0, length = Math.min(rows.length, eventCount); idx < length; idx++) {\n var rowEvents = rows[idx].events;\n var eventTop = startSlot.offsetTop + startSlot.firstChildHeight + idx * eventHeight + 3 * idx + 'px';\n for (var j = 0, eventLength = rowEvents.length; j < eventLength; j++) {\n rowEvents[j].element[0].style.top = eventTop;\n }\n }\n if (rows.length > eventCount) {\n for (var slotIndex = startIndex; slotIndex <= endIndex; slotIndex++) {\n var collection = slotRange.collection;\n var slot = collection.at(slotIndex);\n if (slot.more) {\n return;\n }\n slot.more = $(MORE_BUTTON_TEMPLATE({\n ns: kendo.ns,\n start: slotIndex,\n end: slotIndex,\n width: slot.clientWidth - 2,\n left: slot.offsetLeft + 2,\n top: slot.offsetTop + slot.firstChildHeight + eventCount * eventHeight + 3 * eventCount\n }));\n this.content[0].appendChild(slot.more[0]);\n }\n } else {\n slotRange.addEvent({\n element: element,\n start: startIndex,\n end: endIndex,\n groupIndex: startSlot.groupIndex\n });\n element[0].style.width = slotRange.innerWidth() - rightOffset + 'px';\n element[0].style.left = startSlot.offsetLeft + 2 + 'px';\n element[0].style.height = eventHeight + 'px';\n group._continuousEvents.push({\n element: element,\n uid: element.attr(kendo.attr('uid')),\n start: slotRange.start,\n end: slotRange.end\n });\n element.appendTo(this.content);\n }\n },\n _slotByPosition: function (x, y) {\n var offset = this.content.offset();\n x -= offset.left;\n y -= offset.top;\n y += this.content[0].scrollTop;\n x += this.content[0].scrollLeft;\n x = Math.ceil(x);\n y = Math.ceil(y);\n for (var groupIndex = 0; groupIndex < this.groups.length; groupIndex++) {\n var slot = this.groups[groupIndex].daySlotByPosition(x, y);\n if (slot) {\n return slot;\n }\n }\n return null;\n },\n _createResizeHint: function (range) {\n var left = range.startSlot().offsetLeft;\n var top = range.start.offsetTop;\n var width = range.innerWidth();\n var height = range.start.clientHeight - 2;\n var hint = SchedulerView.fn._createResizeHint.call(this, left, top, width, height);\n hint.appendTo(this.content);\n this._resizeHint = this._resizeHint.add(hint);\n },\n _updateResizeHint: function (event, groupIndex, startTime, endTime) {\n this._removeResizeHint();\n var group = this.groups[groupIndex];\n var ranges = group.ranges(startTime, endTime, true, event.isAllDay);\n for (var rangeIndex = 0; rangeIndex < ranges.length; rangeIndex++) {\n this._createResizeHint(ranges[rangeIndex]);\n }\n this._resizeHint.find('.k-label-top,.k-label-bottom').text('');\n this._resizeHint.first().addClass('k-first').find('.k-label-top').text(kendo.toString(kendo.timezone.toLocalDate(startTime), 'M/dd'));\n this._resizeHint.last().addClass('k-last').find('.k-label-bottom').text(kendo.toString(kendo.timezone.toLocalDate(endTime), 'M/dd'));\n },\n _updateMoveHint: function (event, groupIndex, distance) {\n var start = kendo.date.toUtcTime(event.start) + distance;\n var end = start + event.duration();\n var group = this.groups[groupIndex];\n var ranges = group.ranges(start, end, true, event.isAllDay);\n this._removeMoveHint();\n for (var rangeIndex = 0; rangeIndex < ranges.length; rangeIndex++) {\n var range = ranges[rangeIndex];\n var startSlot = range.startSlot();\n var endSlot = range.endSlot();\n var hint = this._createEventElement(event.clone({\n head: range.head,\n tail: range.tail\n }));\n hint.css({\n left: startSlot.offsetLeft + 2,\n top: startSlot.offsetTop + startSlot.firstChildHeight,\n height: this.options.eventHeight,\n width: range.innerWidth() - (startSlot.index !== endSlot.index ? 5 : 4)\n });\n hint.addClass('k-event-drag-hint');\n hint.appendTo(this.content);\n this._moveHint = this._moveHint.add(hint);\n }\n },\n _groups: function () {\n var groupCount = this._groupCount();\n var columnCount = NUMBER_OF_COLUMNS;\n var rowCount = NUMBER_OF_ROWS;\n this.groups = [];\n for (var idx = 0; idx < groupCount; idx++) {\n this._addResourceView(idx);\n }\n var tableRows = this.content[0].getElementsByTagName('tr');\n var startDate = this.startDate();\n for (var groupIndex = 0; groupIndex < groupCount; groupIndex++) {\n var cellCount = 0;\n var rowMultiplier = 0;\n if (this._isVerticallyGrouped()) {\n rowMultiplier = groupIndex;\n }\n for (var rowIndex = rowMultiplier * rowCount; rowIndex < (rowMultiplier + 1) * rowCount; rowIndex++) {\n var group = this.groups[groupIndex];\n var collection = group.addDaySlotCollection(kendo.date.addDays(startDate, cellCount), kendo.date.addDays(this.startDate(), cellCount + columnCount));\n var tableRow = tableRows[rowIndex];\n var cells = tableRow.children;\n var cellMultiplier = 0;\n tableRow.setAttribute('role', 'row');\n if (!this._isVerticallyGrouped()) {\n cellMultiplier = groupIndex;\n }\n for (var cellIndex = cellMultiplier * columnCount; cellIndex < (cellMultiplier + 1) * columnCount; cellIndex++) {\n var cell = cells[cellIndex];\n var clientHeight = cell.clientHeight;\n var firstChildHeight = cell.children.length ? cell.children[0].offsetHeight + 3 : 0;\n var start = kendo.date.addDays(startDate, cellCount);\n var end = kendo.date.MS_PER_DAY;\n if (startDate.getHours() !== start.getHours()) {\n end += (startDate.getHours() - start.getHours()) * kendo.date.MS_PER_HOUR;\n }\n start = kendo.date.toUtcTime(start);\n end += start;\n cellCount++;\n var eventCount = Math.floor((clientHeight - firstChildHeight - this.options.moreButtonHeight) / (this.options.eventHeight + 3));\n cell.setAttribute('role', 'gridcell');\n cell.setAttribute('aria-selected', false);\n collection.addDaySlot(cell, start, end, eventCount);\n }\n }\n }\n },\n render: function (events) {\n this.content.children('.k-event,.k-more-events,.k-events-container').remove();\n this._groups();\n events = new kendo.data.Query(events).sort([\n {\n field: 'start',\n dir: 'asc'\n },\n {\n field: 'end',\n dir: 'desc'\n }\n ]).toArray();\n var resources = this.groupedResources;\n if (resources.length) {\n this._renderGroups(events, resources, 0, 1);\n } else {\n this._renderEvents(events, 0);\n }\n this.refreshLayout();\n this.trigger('activate');\n },\n _renderEvents: function (events, groupIndex) {\n var event;\n var idx;\n var length;\n var isMobilePhoneView = this._isMobilePhoneView();\n for (idx = 0, length = events.length; idx < length; idx++) {\n event = events[idx];\n if (this._isInDateSlot(event)) {\n var group = this.groups[groupIndex];\n if (!group._continuousEvents) {\n group._continuousEvents = [];\n }\n var ranges = group.slotRanges(event, true);\n var rangeCount = ranges.length;\n for (var rangeIndex = 0; rangeIndex < rangeCount; rangeIndex++) {\n var range = ranges[rangeIndex];\n var start = event.start;\n var end = event.end;\n if (rangeCount > 1) {\n if (rangeIndex === 0) {\n end = range.end.endDate();\n } else if (rangeIndex == rangeCount - 1) {\n start = range.start.startDate();\n } else {\n start = range.start.startDate();\n end = range.end.endDate();\n }\n }\n var occurrence = event.clone({\n start: start,\n end: end,\n head: range.head,\n tail: range.tail\n });\n if (isMobilePhoneView) {\n this._positionMobileEvent(range, this._createEventElement(occurrence), group);\n } else {\n this._positionEvent(range, this._createEventElement(occurrence), group);\n }\n }\n }\n }\n },\n _renderGroups: function (events, resources, offset, columnLevel) {\n var resource = resources[0];\n if (resource) {\n var view = resource.dataSource.view();\n for (var itemIdx = 0; itemIdx < view.length; itemIdx++) {\n var value = this._resourceValue(resource, view[itemIdx]);\n var tmp = new kendo.data.Query(events).filter({\n field: resource.field,\n operator: SchedulerView.groupEqFilter(value)\n }).toArray();\n if (resources.length > 1) {\n offset = this._renderGroups(tmp, resources.slice(1), offset++, columnLevel + 1);\n } else {\n this._renderEvents(tmp, offset++);\n }\n }\n }\n return offset;\n },\n _groupCount: function () {\n var resources = this.groupedResources;\n if (resources.length) {\n if (this._isVerticallyGrouped()) {\n return this._rowCountForLevel(resources.length - 1);\n } else {\n return this._columnCountForLevel(resources.length) / this._columnOffsetForResource(resources.length);\n }\n }\n return 1;\n },\n _columnOffsetForResource: function (index) {\n return this._columnCountForLevel(index) / this._columnCountForLevel(index - 1);\n },\n destroy: function () {\n if (this.table) {\n this.table.removeClass('k-scheduler-monthview');\n }\n if (this.content) {\n this.content.off(NS);\n }\n if (this.element) {\n this.element.off(NS);\n }\n SchedulerView.fn.destroy.call(this);\n if (this._isMobile() && !this._isMobilePhoneView() && this.options.editable) {\n if (this.options.editable.create !== false) {\n this._addUserEvents.destroy();\n }\n if (this.options.editable.update !== false) {\n this._editUserEvents.destroy();\n }\n }\n },\n events: [\n 'remove',\n 'add',\n 'edit',\n 'navigate'\n ],\n options: {\n title: 'Month',\n name: 'month',\n eventHeight: 25,\n moreButtonHeight: 13,\n editable: true,\n selectedDateFormat: '{0:y}',\n selectedShortDateFormat: '{0:y}',\n groupHeaderTemplate: '#=text#',\n dayTemplate: DAY_TEMPLATE,\n eventTemplate: EVENT_TEMPLATE\n }\n });\n function shiftArray(array, idx) {\n return array.slice(idx).concat(array.slice(0, idx));\n }\n function firstVisibleMonthDay(date, calendarInfo) {\n var firstDay = calendarInfo.firstDay, firstVisibleDay = new Date(date.getFullYear(), date.getMonth(), 0, date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds());\n while (firstVisibleDay.getDay() != firstDay) {\n kendo.date.setTime(firstVisibleDay, -1 * MS_PER_DAY);\n }\n return firstVisibleDay;\n }\n function isInDateRange(value, min, max) {\n var msMin = min, msMax = max, msValue;\n msValue = value;\n return msValue >= msMin && msValue <= msMax;\n }\n }(window.kendo.jQuery));\n return window.kendo;\n}, typeof define == 'function' && define.amd ? define : function (a1, a2, a3) {\n (a3 || a2)();\n}));"],"sourceRoot":"/source/"}