{"version":3,"sources":["kendo.scheduler.dayview.js"],"names":["f","define","$","undefined","toInvariantTime","date","staticDate","Date","setTime","getMilliseconds","isInDateRange","value","min","max","isInTimeRange","overlaps","addContinuousEvent","group","range","element","isAllDay","idx","events","_continuousEvents","lastEvent","length","startDate","getDate","start","getTime","splice","uid","attr","kendo","end","push","getWorkDays","options","workDays","dayIndex","workWeekStart","workWeekEnd","window","ui","SchedulerView","extend","proxy","MS_PER_MINUTE","MS_PER_DAY","CURRENT_TIME_MARKER_CLASS","CURRENT_TIME_MARKER_ARROW_CLASS","BORDER_SIZE_COEFF","NS","DAY_VIEW_EVENT_TEMPLATE","template","DAY_VIEW_ALL_DAY_EVENT_TEMPLATE","DATA_HEADER_TEMPLATE","ALLDAY_EVENT_WRAPPER_STRING","EVENT_WRAPPER_STRING","MultiDayView","init","that","this","fn","call","title","name","_workDays","_templates","_editable","calculateDateRange","_groups","_currentTime","_currentTimeMarkerUpdater","timezone","timezoneOffset","groupsCount","firstTimesCell","lastTimesCell","groupIndex","currentGroup","utcCurrentTime","ranges","collection","slotElement","elementHtml","timesTableMarker","markerTopPosition","timesTableMarkerCss","currentTime","currentTimeMarker","useLocalTimezone","dataSource","schema","offset","convert","getTimezoneOffset","times","find","remove","content","orientation","groups","toUtcTime","timeSlotRanges","slotByStartDate","prependTo","Math","round","innerRect","top","_isRtl","right","position","left","outerHeight","addClass","outerWidth","css","height","updateInterval","markerOptions","_currentTimeUpdateTimer","setInterval","_updateResizeHint","event","startTime","endTime","rangeIndex","width","rect","hint","format","container","multiday","isMultiDay","_removeResizeHint","startSlot","offsetWidth","clientHeight","offsetTop","innerWidth","outerRect","snap","bottom","_createResizeHint","offsetLeft","_resizeHint","add","appendTo","text","first","toString","toLocalDate","last","_updateMoveHint","distance","duration","_removeMoveHint","pop","_createEventElement","clone","clientWidth","_moveHint","_slotByPosition","x","y","slot","_isVerticallyGrouped","scrollTop","scrollLeft","ceil","daySlotByPosition","timeSlotByPosition","_groupCount","resources","groupedResources","_groupOrientation","_rowCountForLevel","_columnCountForLevel","_columnOffsetForResource","_columnCountInResourceView","_timeSlotGroups","groupCount","columnCount","rowCount","rowMultiplier","rowIndex","time","cellMultiplier","cells","cellIndex","cell","collectionIndex","currentDate","interval","_timeSlotInterval","tableRows","floor","children","getTimeSlotCollection","_dates","UTC","getFullYear","getMonth","setAttribute","addTimeSlot","_daySlotGroups","cellCount","getDaySlotCollection","addDaySlot","view","columnIndex","_addResourceView","addTimeSlotCollection","addDays","allDaySlot","addDaySlotCollection","selectedDateFormat","selectedShortDateFormat","showWorkHours","today","minorTickCount","majorTick","majorTimeHeaderTemplate","minorTimeHeaderTemplate","groupHeaderTemplate","slotTemplate","allDaySlotTemplate","eventTemplate","allDayEventTemplate","dateHeaderTemplate","editable","workDayStart","workDayEnd","footer","command","messages","allDay","showFullDay","showWorkDay","settings","Template","templateSettings","_eventTmpl","_isMobile","_touchEditable","_mouseEditable","on","e","trigger","closest","preventDefault","create","resourceInfo","parent","hasClass","pageX","pageY","_resourceBySlot","eventInfo","endDate","update","threshold","support","mobileOS","android","_addUserEvents","UserEvents","filter","tap","target","location","_allDayUserEvents","_editUserEvents","eventElement","_layout","dates","column","columns","rows","isToday","className","cellContent","_forTimeRange","middleRow","lastSlotRow","row","_createRowsLayout","_createColumnsLayout","_footer","html","isWorkDay","action","after","msMin","msMax","msMajorInterval","msInterval","startDay","msStart","majorTickDivider","isMajorTickRow","isMiddleRow","isLastSlotRow","_content","allDayVerticalGroupRow","appendRow","rowIdx","isVerticalGroupped","rowLevels","result","columnLevels","tmplDate","classes","groupIdx","_isWorkDay","append","i","day","getDay","_render","allDayHeader","_startDate","_endDate","createLayout","refreshLayout","_allDayHeaderHeight","datesHeader","th","currentTarget","_end","nextDate","nextDay","previousDate","previousDay","destroy","clearInterval","off","inRange","selectionByElement","_timeSlotIndex","eventStartTime","timeSlotInterval","_slotIndex","_dateSlotIndex","slotStart","slotEnd","slots","_positionAllDayEvent","slotRange","rowEvents","j","eventLength","slotWidth","startIndex","index","endIndex","allDayEvents","collidingEvents","currentColumnCount","_headerColumnCount","leftOffset","rightOffset","eventHeight","addEvent","slotIndex","createRows","_arrangeColumns","eventRightOffset","columnEvents","eventElements","slotEvents","columnWidth","createColumns","style","_positionEvent","_startTime","_endTime","isOneDayEvent","head","tail","middle","eventStartDate","eventEndDate","data","isMobile","showDelete","resizable","resize","_time","eventEndTime","eventResources","apply","ns","singleDay","inverseColor","_shouldInverseResourceColor","angular","elements","dataItem","_isInTimeSlot","slotStartTime","slotEndTime","_date","_isInDateSlot","firstSlot","lastSlot","_updateAllDayHeaderHeight","allDaySlots","_height","refresh","_renderEvents","isMultiDayEvent","rangeCount","occurrence","allDayEventContainer","slotRanges","render","eventsByResource","eventsPerDate","Query","sort","field","dir","toArray","_eventsByResource","map","grep","itemIdx","eventsFilteredByResource","resource","_resourceValue","operator","groupEqFilter","slice","level","columnLevel","rowLevel","clearSelection","removeAttr","removeClass","_updateDirection","selection","multiple","reverse","vertical","isDaySlot","endSlot","backward","_changeViewPeriod","endMilliseconds","DayView","WeekView","selectedDate","dayOfWeek","calendarInfo","firstDay","WorkWeekView","weekStart","jQuery","amd","a1","a2","a3"],"mappings":"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","file":"kendo.scheduler.dayview.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.dayview', ['kendo.scheduler.view'], f);\n}(function () {\n var __meta__ = {\n id: 'scheduler.dayview',\n name: 'Scheduler Day View',\n category: 'web',\n description: 'The Scheduler Day View',\n depends: ['scheduler.view'],\n hidden: true\n };\n (function ($, undefined) {\n var kendo = window.kendo, ui = kendo.ui, setTime = kendo.date.setTime, SchedulerView = ui.SchedulerView, extend = $.extend, proxy = $.proxy, getDate = kendo.date.getDate, MS_PER_MINUTE = kendo.date.MS_PER_MINUTE, MS_PER_DAY = kendo.date.MS_PER_DAY, CURRENT_TIME_MARKER_CLASS = 'k-current-time', CURRENT_TIME_MARKER_ARROW_CLASS = 'k-current-time-arrow', BORDER_SIZE_COEFF = 0.8666, getMilliseconds = kendo.date.getMilliseconds, NS = '.kendoMultiDayView';\n var DAY_VIEW_EVENT_TEMPLATE = kendo.template('
' + '
#:kendo.format(\"{0:t} - {1:t}\", start, end)#
' + '
${title}
' + '
'), DAY_VIEW_ALL_DAY_EVENT_TEMPLATE = kendo.template('
' + '
${title}
' + '
'), DATA_HEADER_TEMPLATE = kendo.template('#=kendo.toString(date, \\'ddd M/dd\\')#'), ALLDAY_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 && !singleDay && !data.tail && !data.middle){#' + '' + '#}#' + '#if(resizable && !singleDay && !data.head && !data.middle){#' + '' + '#}#' + '
', EVENT_WRAPPER_STRING = '
' + '' + '# if(data.isException()) {#' + '' + '# } else if(data.isRecurring()) {#' + '' + '# } #' + '' + '{0}' + '' + '#if (showDelete) {#' + '' + '#}#' + '' + '' + '# if(data.tail || data.middle) {#' + '' + '# } #' + '' + '' + '# if(data.head || data.middle) {#' + '' + '# } #' + '' + '# if(resizable && !data.tail && !data.middle) {#' + '' + '# } #' + '# if(resizable && !data.head && !data.middle) {#' + '' + '# } #' + '
';\n function toInvariantTime(date) {\n var staticDate = new Date(1980, 1, 1, 0, 0, 0);\n setTime(staticDate, getMilliseconds(date));\n return staticDate;\n }\n function isInDateRange(value, min, max) {\n return value >= min && value <= max;\n }\n function isInTimeRange(value, min, max, overlaps) {\n overlaps = overlaps ? value <= max : value < max;\n return value > min && overlaps;\n }\n function addContinuousEvent(group, range, element, isAllDay) {\n var events = group._continuousEvents;\n var lastEvent = events[events.length - 1];\n var startDate = getDate(range.start.startDate()).getTime();\n if (isAllDay && lastEvent && getDate(lastEvent.start.startDate()).getTime() == startDate) {\n var idx = events.length - 1;\n for (; idx > -1; idx--) {\n if (events[idx].isAllDay || getDate(events[idx].start.startDate()).getTime() < startDate) {\n break;\n }\n }\n events.splice(idx + 1, 0, {\n element: element,\n isAllDay: true,\n uid: element.attr(kendo.attr('uid')),\n start: range.start,\n end: range.end\n });\n } else {\n events.push({\n element: element,\n isAllDay: isAllDay,\n uid: element.attr(kendo.attr('uid')),\n start: range.start,\n end: range.end\n });\n }\n }\n function getWorkDays(options) {\n var workDays = [];\n var dayIndex = options.workWeekStart;\n workDays.push(dayIndex);\n while (options.workWeekEnd != dayIndex) {\n if (dayIndex > 6) {\n dayIndex -= 7;\n } else {\n dayIndex++;\n }\n workDays.push(dayIndex);\n }\n return workDays;\n }\n var MultiDayView = 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 || that.options.name;\n that._workDays = getWorkDays(that.options);\n that._templates();\n that._editable();\n that.calculateDateRange();\n that._groups();\n that._currentTime();\n },\n _currentTimeMarkerUpdater: function () {\n var currentTime = new Date();\n var options = this.options;\n if (options.currentTimeMarker.useLocalTimezone === false) {\n var timezone = options.dataSource.options.schema.timezone;\n if (options.dataSource && timezone) {\n var timezoneOffset = kendo.timezone.offset(currentTime, timezone);\n currentTime = kendo.timezone.convert(currentTime, currentTime.getTimezoneOffset(), timezoneOffset);\n }\n }\n this.times.find('.' + CURRENT_TIME_MARKER_CLASS).remove();\n this.content.find('.' + CURRENT_TIME_MARKER_CLASS).remove();\n var groupsCount = !options.group || options.group.orientation == 'horizontal' ? 1 : this.groups.length;\n var firstTimesCell = this.times.find('tr:first th:first');\n var lastTimesCell = this.times.find('tr:first th:last');\n for (var groupIndex = 0; groupIndex < groupsCount; groupIndex++) {\n var currentGroup = this.groups[groupIndex];\n var utcCurrentTime = kendo.date.toUtcTime(currentTime);\n var ranges = currentGroup.timeSlotRanges(utcCurrentTime, utcCurrentTime + 1);\n if (ranges.length === 0) {\n return;\n }\n var collection = ranges[0].collection;\n var slotElement = collection.slotByStartDate(currentTime);\n if (slotElement) {\n var elementHtml = '
';\n var timesTableMarker = $(elementHtml).prependTo(this.times);\n var markerTopPosition = Math.round(ranges[0].innerRect(currentTime, new Date(currentTime.getTime() + 1), false).top);\n var timesTableMarkerCss = {};\n if (this._isRtl) {\n timesTableMarkerCss.right = firstTimesCell.position().left + firstTimesCell.outerHeight() - lastTimesCell.outerHeight();\n timesTableMarker.addClass(CURRENT_TIME_MARKER_ARROW_CLASS + '-left');\n } else {\n timesTableMarkerCss.left = lastTimesCell.position().left;\n timesTableMarker.addClass(CURRENT_TIME_MARKER_ARROW_CLASS + '-right');\n }\n timesTableMarkerCss.top = markerTopPosition - timesTableMarker.outerWidth() * BORDER_SIZE_COEFF / 2;\n timesTableMarker.css(timesTableMarkerCss);\n $(elementHtml).prependTo(this.content).css({\n top: markerTopPosition,\n height: '1px',\n right: '1px',\n left: 0\n });\n }\n }\n },\n _currentTime: function () {\n var that = this;\n var markerOptions = that.options.currentTimeMarker;\n if (markerOptions !== false && markerOptions.updateInterval !== undefined) {\n var updateInterval = markerOptions.updateInterval;\n that._currentTimeMarkerUpdater();\n that._currentTimeUpdateTimer = setInterval(proxy(this._currentTimeMarkerUpdater, that), updateInterval);\n }\n },\n _updateResizeHint: function (event, groupIndex, startTime, endTime) {\n var multiday = event.isMultiDay();\n var group = this.groups[groupIndex];\n var ranges = group.ranges(startTime, endTime, multiday, event.isAllDay);\n this._removeResizeHint();\n for (var rangeIndex = 0; rangeIndex < ranges.length; rangeIndex++) {\n var range = ranges[rangeIndex];\n var start = range.startSlot();\n var width = start.offsetWidth;\n var height = start.clientHeight;\n var top = start.offsetTop;\n if (multiday) {\n width = range.innerWidth();\n } else {\n var rect = range.outerRect(startTime, endTime, this.options.snap);\n top = rect.top;\n height = rect.bottom - rect.top;\n }\n var hint = SchedulerView.fn._createResizeHint.call(this, start.offsetLeft, top, width, height);\n this._resizeHint = this._resizeHint.add(hint);\n }\n var format = 't';\n var container = this.content;\n if (multiday) {\n format = 'M/dd';\n container = this.element.find('.k-scheduler-header-wrap:has(.k-scheduler-header-all-day) > div');\n if (!container.length) {\n container = this.content;\n }\n }\n this._resizeHint.appendTo(container);\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), format));\n this._resizeHint.last().addClass('k-last').find('.k-label-bottom').text(kendo.toString(kendo.timezone.toLocalDate(endTime), format));\n },\n _updateMoveHint: function (event, groupIndex, distance) {\n var multiday = event.isMultiDay();\n var group = this.groups[groupIndex];\n var start = kendo.date.toUtcTime(event.start) + distance;\n var end = start + event.duration();\n var ranges = group.ranges(start, end, multiday, event.isAllDay);\n start = kendo.timezone.toLocalDate(start);\n end = kendo.timezone.toLocalDate(end);\n this._removeMoveHint();\n if (!multiday && (getMilliseconds(end) === 0 || getMilliseconds(end) < getMilliseconds(this.startTime()))) {\n if (ranges.length > 1) {\n ranges.pop();\n }\n }\n for (var rangeIndex = 0; rangeIndex < ranges.length; rangeIndex++) {\n var range = ranges[rangeIndex];\n var startSlot = range.start;\n var hint = this._createEventElement(event.clone({\n start: start,\n end: end\n }), !multiday);\n hint.addClass('k-event-drag-hint');\n var css = {\n left: startSlot.offsetLeft + 2,\n top: startSlot.offsetTop\n };\n if (this._isRtl) {\n css.left = startSlot.clientWidth * 0.1 + startSlot.offsetLeft + 2;\n }\n if (multiday) {\n css.width = range.innerWidth() - 4;\n } else {\n var rect = range.outerRect(start, end, this.options.snap);\n css.top = rect.top;\n css.height = rect.bottom - rect.top;\n css.width = startSlot.clientWidth * 0.9 - 4;\n }\n hint.css(css);\n this._moveHint = this._moveHint.add(hint);\n }\n var content = this.content;\n if (multiday) {\n content = this.element.find('.k-scheduler-header-wrap:has(.k-scheduler-header-all-day) > div');\n if (!content.length) {\n content = this.content;\n }\n }\n this._moveHint.appendTo(content);\n },\n _slotByPosition: function (x, y) {\n var slot;\n var offset;\n if (this._isVerticallyGrouped()) {\n offset = this.content.offset();\n y += this.content[0].scrollTop;\n x += this.content[0].scrollLeft;\n } else {\n offset = this.element.find('.k-scheduler-header-wrap:has(.k-scheduler-header-all-day)').find('>div').offset();\n }\n if (offset) {\n x -= offset.left;\n y -= offset.top;\n }\n x = Math.ceil(x);\n y = Math.ceil(y);\n var group;\n var groupIndex;\n for (groupIndex = 0; groupIndex < this.groups.length; groupIndex++) {\n group = this.groups[groupIndex];\n slot = group.daySlotByPosition(x, y);\n if (slot) {\n return slot;\n }\n }\n if (offset) {\n x += offset.left;\n y += offset.top;\n }\n offset = this.content.offset();\n x -= offset.left;\n y -= offset.top;\n if (!this._isVerticallyGrouped()) {\n y += this.content[0].scrollTop;\n x += this.content[0].scrollLeft;\n }\n x = Math.ceil(x);\n y = Math.ceil(y);\n for (groupIndex = 0; groupIndex < this.groups.length; groupIndex++) {\n group = this.groups[groupIndex];\n slot = group.timeSlotByPosition(x, y);\n if (slot) {\n return slot;\n }\n }\n return null;\n },\n _groupCount: function () {\n var resources = this.groupedResources;\n if (resources.length) {\n if (this._groupOrientation() === 'vertical') {\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 _columnCountInResourceView: function () {\n var resources = this.groupedResources;\n if (!resources.length || this._isVerticallyGrouped()) {\n return this._columnCountForLevel(0);\n }\n return this._columnOffsetForResource(resources.length);\n },\n _timeSlotGroups: function (groupCount, columnCount) {\n var interval = this._timeSlotInterval();\n var tableRows = this.content.find('tr:not(.k-scheduler-header-all-day)');\n tableRows.attr('role', 'row');\n var rowCount = tableRows.length;\n if (this._isVerticallyGrouped()) {\n rowCount = Math.floor(rowCount / groupCount);\n }\n for (var groupIndex = 0; groupIndex < groupCount; groupIndex++) {\n var rowMultiplier = 0;\n if (this._isVerticallyGrouped()) {\n rowMultiplier = groupIndex;\n }\n var rowIndex = rowMultiplier * rowCount;\n var time;\n var cellMultiplier = 0;\n if (!this._isVerticallyGrouped()) {\n cellMultiplier = groupIndex;\n }\n while (rowIndex < (rowMultiplier + 1) * rowCount) {\n var cells = tableRows[rowIndex].children;\n var group = this.groups[groupIndex];\n if (rowIndex % rowCount === 0) {\n time = getMilliseconds(new Date(+this.startTime()));\n }\n for (var cellIndex = cellMultiplier * columnCount; cellIndex < (cellMultiplier + 1) * columnCount; cellIndex++) {\n var cell = cells[cellIndex];\n var collectionIndex = cellIndex % columnCount;\n var collection = group.getTimeSlotCollection(collectionIndex);\n var currentDate = this._dates[collectionIndex];\n var currentTime = Date.UTC(currentDate.getFullYear(), currentDate.getMonth(), currentDate.getDate());\n var start = currentTime + time;\n var end = start + interval;\n cell.setAttribute('role', 'gridcell');\n cell.setAttribute('aria-selected', false);\n collection.addTimeSlot(cell, start, end);\n }\n time += interval;\n rowIndex++;\n }\n }\n },\n _daySlotGroups: function (groupCount, columnCount) {\n var tableRows;\n if (this._isVerticallyGrouped()) {\n tableRows = this.element.find('.k-scheduler-header-all-day');\n } else {\n tableRows = this.element.find('.k-scheduler-header-all-day tr');\n }\n tableRows.attr('role', 'row');\n for (var groupIndex = 0; groupIndex < groupCount; groupIndex++) {\n var rowMultiplier = 0;\n if (this._isVerticallyGrouped()) {\n rowMultiplier = groupIndex;\n }\n var group = this.groups[groupIndex];\n var collection = group.getDaySlotCollection(0);\n var cells = tableRows[rowMultiplier].children;\n var cellMultiplier = 0;\n if (!this._isVerticallyGrouped()) {\n cellMultiplier = groupIndex;\n }\n var cellCount = 0;\n for (var cellIndex = cellMultiplier * columnCount; cellIndex < (cellMultiplier + 1) * columnCount; cellIndex++) {\n var cell = cells[cellIndex];\n if (cellIndex % columnCount === 0) {\n cellCount = 0;\n }\n var start = this._dates[cellCount];\n var currentTime = Date.UTC(start.getFullYear(), start.getMonth(), start.getDate());\n cellCount++;\n cell.setAttribute('role', 'gridcell');\n cell.setAttribute('aria-selected', false);\n collection.addDaySlot(cell, currentTime, currentTime + kendo.date.MS_PER_DAY);\n }\n }\n },\n _groups: function () {\n var groupCount = this._groupCount();\n var columnCount = this._columnCountInResourceView();\n this.groups = [];\n for (var idx = 0; idx < groupCount; idx++) {\n var view = this._addResourceView(idx);\n for (var columnIndex = 0; columnIndex < columnCount; columnIndex++) {\n view.addTimeSlotCollection(this._dates[columnIndex], kendo.date.addDays(this._dates[columnIndex], 1));\n }\n if (this.options.allDaySlot) {\n view.addDaySlotCollection(this._dates[0], kendo.date.addDays(this._dates[this._dates.length - 1], 1));\n }\n }\n this._timeSlotGroups(groupCount, columnCount);\n if (this.options.allDaySlot) {\n this._daySlotGroups(groupCount, columnCount);\n }\n },\n options: {\n name: 'MultiDayView',\n selectedDateFormat: '{0:D}',\n selectedShortDateFormat: '{0:d}',\n allDaySlot: true,\n showWorkHours: false,\n title: '',\n startTime: kendo.date.today(),\n endTime: kendo.date.today(),\n minorTickCount: 2,\n majorTick: 60,\n majorTimeHeaderTemplate: '#=kendo.toString(date, \\'t\\')#',\n minorTimeHeaderTemplate: ' ',\n groupHeaderTemplate: '#=text#',\n slotTemplate: ' ',\n allDaySlotTemplate: ' ',\n eventTemplate: DAY_VIEW_EVENT_TEMPLATE,\n allDayEventTemplate: DAY_VIEW_ALL_DAY_EVENT_TEMPLATE,\n dateHeaderTemplate: DATA_HEADER_TEMPLATE,\n editable: true,\n workDayStart: new Date(1980, 1, 1, 8, 0, 0),\n workDayEnd: new Date(1980, 1, 1, 17, 0, 0),\n workWeekStart: 1,\n workWeekEnd: 5,\n footer: { command: 'workDay' },\n messages: {\n allDay: 'all day',\n showFullDay: 'Show full day',\n showWorkDay: 'Show business hours'\n },\n currentTimeMarker: {\n updateInterval: 10000,\n useLocalTimezone: true\n }\n },\n events: [\n 'remove',\n 'add',\n 'edit'\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.allDayEventTemplate = this._eventTmpl(options.allDayEventTemplate, ALLDAY_EVENT_WRAPPER_STRING);\n this.majorTimeHeaderTemplate = kendo.template(options.majorTimeHeaderTemplate, settings);\n this.minorTimeHeaderTemplate = kendo.template(options.minorTimeHeaderTemplate, settings);\n this.dateHeaderTemplate = kendo.template(options.dateHeaderTemplate, settings);\n this.slotTemplate = kendo.template(options.slotTemplate, settings);\n this.allDaySlotTemplate = kendo.template(options.allDaySlotTemplate, settings);\n this.groupHeaderTemplate = kendo.template(options.groupHeaderTemplate, settings);\n },\n _editable: function () {\n if (this.options.editable) {\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-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-content td', function (e) {\n if (!$(this).parent().hasClass('k-scheduler-header-all-day')) {\n var slot = that._slotByPosition(e.pageX, e.pageY);\n if (slot) {\n var resourceInfo = that._resourceBySlot(slot);\n that.trigger('add', {\n eventInfo: extend({\n start: slot.startDate(),\n end: slot.endDate()\n }, resourceInfo)\n });\n }\n e.preventDefault();\n }\n }).on('dblclick' + NS, '.k-scheduler-header-all-day td', function (e) {\n var slot = that._slotByPosition(e.pageX, e.pageY);\n if (slot) {\n var resourceInfo = that._resourceBySlot(slot);\n that.trigger('add', {\n eventInfo: extend({}, {\n isAllDay: true,\n start: kendo.date.getDate(slot.startDate()),\n end: kendo.date.getDate(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-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-content td',\n tap: function (e) {\n if (!$(e.target).parent().hasClass('k-scheduler-header-all-day')) {\n var x = e.x.location !== undefined ? e.x.location : e.x;\n var y = e.y.location !== undefined ? e.y.location : e.y;\n var slot = that._slotByPosition(x, y);\n if (slot) {\n var resourceInfo = that._resourceBySlot(slot);\n that.trigger('add', {\n eventInfo: extend({\n start: slot.startDate(),\n end: slot.endDate()\n }, resourceInfo)\n });\n }\n e.preventDefault();\n }\n }\n });\n that._allDayUserEvents = new kendo.UserEvents(that.element, {\n threshold: threshold,\n filter: '.k-scheduler-header-all-day td',\n tap: function (e) {\n var x = e.x.location !== undefined ? e.x.location : e.x;\n var y = e.y.location !== undefined ? e.y.location : e.y;\n var slot = that._slotByPosition(x, y);\n if (slot) {\n var resourceInfo = that._resourceBySlot(slot);\n that.trigger('add', {\n eventInfo: extend({}, {\n isAllDay: true,\n start: kendo.date.getDate(slot.startDate()),\n end: kendo.date.getDate(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-event',\n tap: function (e) {\n var eventElement = $(e.target).closest('.k-event');\n if (!eventElement.hasClass('k-event-active')) {\n that.trigger('edit', { uid: eventElement.attr(kendo.attr('uid')) });\n }\n e.preventDefault();\n }\n });\n }\n },\n _layout: function (dates) {\n var columns = [];\n var rows = [];\n var options = this.options;\n var that = this;\n for (var idx = 0; idx < dates.length; idx++) {\n var column = {};\n column.text = that.dateHeaderTemplate({ date: dates[idx] });\n if (kendo.date.isToday(dates[idx])) {\n column.className = 'k-today';\n }\n columns.push(column);\n }\n var resources = this.groupedResources;\n if (options.allDaySlot) {\n rows.push({\n text: options.messages.allDay,\n allDay: true,\n cellContent: function (idx) {\n var groupIndex = idx;\n idx = resources.length && that._groupOrientation() !== 'vertical' ? idx % dates.length : idx;\n return that.allDaySlotTemplate({\n date: dates[idx],\n resources: function () {\n return that._resourceBySlot({ groupIndex: groupIndex });\n }\n });\n }\n });\n }\n this._forTimeRange(this.startTime(), this.endTime(), function (date, majorTick, middleRow, lastSlotRow) {\n var template = majorTick ? that.majorTimeHeaderTemplate : that.minorTimeHeaderTemplate;\n var row = {\n text: template({ date: date }),\n className: lastSlotRow ? 'k-slot-cell' : ''\n };\n rows.push(row);\n });\n if (resources.length) {\n if (this._groupOrientation() === 'vertical') {\n rows = this._createRowsLayout(resources, rows, 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 _footer: function () {\n var options = this.options;\n if (options.footer !== false) {\n var html = '
';\n var command = options.footer.command;\n if (command && command === 'workDay') {\n html += '';\n } else {\n html += ' ';\n }\n html += '
';\n this.footer = $(html).appendTo(this.element);\n var that = this;\n this.footer.on('click' + NS, '.k-scheduler-fullday', function (e) {\n e.preventDefault();\n that.trigger('navigate', {\n view: that.name || options.name,\n date: that.startDate(),\n isWorkDay: !options.showWorkHours\n });\n });\n }\n },\n _forTimeRange: function (min, max, action, after) {\n min = toInvariantTime(min);\n max = toInvariantTime(max);\n var that = this, msMin = getMilliseconds(min), msMax = getMilliseconds(max), minorTickCount = that.options.minorTickCount, msMajorInterval = that.options.majorTick * MS_PER_MINUTE, msInterval = msMajorInterval / minorTickCount || 1, start = new Date(+min), startDay = start.getDate(), msStart, idx = 0, length, html = '';\n length = MS_PER_DAY / msInterval;\n if (msMin != msMax) {\n if (msMin > msMax) {\n msMax += MS_PER_DAY;\n }\n length = (msMax - msMin) / msInterval;\n }\n length = Math.round(length);\n for (; idx < length; idx++) {\n var majorTickDivider = idx % (msMajorInterval / msInterval), isMajorTickRow = majorTickDivider === 0, isMiddleRow = majorTickDivider < minorTickCount - 1, isLastSlotRow = majorTickDivider === minorTickCount - 1;\n html += action(start, isMajorTickRow, isMiddleRow, isLastSlotRow);\n setTime(start, msInterval, false);\n }\n if (msMax) {\n msStart = getMilliseconds(start);\n if (startDay < start.getDate()) {\n msStart += MS_PER_DAY;\n }\n if (msStart > msMax) {\n start = new Date(+max);\n }\n }\n if (after) {\n html += after(start);\n }\n return html;\n },\n _content: function (dates) {\n var that = this;\n var options = that.options;\n var start = that.startTime();\n var end = this.endTime();\n var groupsCount = 1;\n var rowCount = 1;\n var columnCount = dates.length;\n var html = '';\n var resources = this.groupedResources;\n var slotTemplate = this.slotTemplate;\n var allDaySlotTemplate = this.allDaySlotTemplate;\n var isVerticalGroupped = false;\n var allDayVerticalGroupRow;\n if (resources.length) {\n isVerticalGroupped = that._groupOrientation() === 'vertical';\n if (isVerticalGroupped) {\n rowCount = this._rowCountForLevel(this.rowLevels.length - 2);\n if (options.allDaySlot) {\n allDayVerticalGroupRow = function (groupIndex) {\n var result = '';\n var resources = function () {\n return that._resourceBySlot({ groupIndex: groupIndex });\n };\n for (var idx = 0, length = dates.length; idx < length; idx++) {\n result += '' + allDaySlotTemplate({\n date: dates[idx],\n resources: resources\n }) + '';\n }\n return result + '';\n };\n }\n } else {\n groupsCount = this._columnCountForLevel(this.columnLevels.length - 2);\n }\n }\n html += '';\n var appendRow = function (date, majorTick) {\n var content = '';\n var idx;\n var length;\n var classes = '';\n var tmplDate;\n var groupIdx = 0;\n content = '';\n var resources = function (groupIndex) {\n return function () {\n return that._resourceBySlot({ groupIndex: groupIndex });\n };\n };\n for (; groupIdx < groupsCount; groupIdx++) {\n for (idx = 0, length = columnCount; idx < length; idx++) {\n classes = '';\n if (kendo.date.isToday(dates[idx])) {\n classes += 'k-today';\n }\n if (kendo.date.getMilliseconds(date) < kendo.date.getMilliseconds(that.options.workDayStart) || kendo.date.getMilliseconds(date) >= kendo.date.getMilliseconds(that.options.workDayEnd) || !that._isWorkDay(dates[idx])) {\n classes += ' k-nonwork-hour';\n }\n content += '';\n tmplDate = kendo.date.getDate(dates[idx]);\n kendo.date.setTime(tmplDate, kendo.date.getMilliseconds(date));\n content += slotTemplate({\n date: tmplDate,\n resources: resources(isVerticalGroupped ? rowIdx : groupIdx)\n });\n content += '';\n }\n }\n content += '';\n return content;\n };\n for (var rowIdx = 0; rowIdx < rowCount; rowIdx++) {\n html += allDayVerticalGroupRow ? allDayVerticalGroupRow(rowIdx) : '';\n html += this._forTimeRange(start, end, appendRow);\n }\n html += '';\n this.content.find('table').append(html);\n },\n _isWorkDay: function (date) {\n var day = date.getDay();\n var workDays = this._workDays;\n for (var i = 0; i < workDays.length; i++) {\n if (workDays[i] === day) {\n return true;\n }\n }\n return false;\n },\n _render: function (dates) {\n var that = this;\n dates = dates || [];\n this._dates = dates;\n this._startDate = dates[0];\n this._endDate = dates[dates.length - 1 || 0];\n this.createLayout(this._layout(dates));\n this._content(dates);\n this._footer();\n this.refreshLayout();\n var allDayHeader = this.element.find('.k-scheduler-header-all-day td');\n if (allDayHeader.length) {\n this._allDayHeaderHeight = allDayHeader.first()[0].clientHeight;\n }\n that.datesHeader.on('click' + NS, '.k-nav-day', function (e) {\n var th = $(e.currentTarget).closest('th');\n var offset = th.offset();\n var slot = that._slotByPosition(offset.left, offset.top + th.outerHeight());\n that.trigger('navigate', {\n view: 'day',\n date: slot.startDate()\n });\n });\n },\n startTime: function () {\n var options = this.options;\n return options.showWorkHours ? options.workDayStart : options.startTime;\n },\n endTime: function () {\n var options = this.options;\n return options.showWorkHours ? options.workDayEnd : options.endTime;\n },\n startDate: function () {\n return this._startDate;\n },\n endDate: function () {\n return this._endDate;\n },\n _end: function (isAllDay) {\n var time = getMilliseconds(this.endTime()) || MS_PER_DAY;\n if (isAllDay) {\n time = 0;\n }\n return new Date(this._endDate.getTime() + time);\n },\n nextDate: function () {\n return kendo.date.nextDay(this.endDate());\n },\n previousDate: function () {\n return kendo.date.previousDay(this.startDate());\n },\n calculateDateRange: function () {\n this._render([this.options.date]);\n },\n destroy: function () {\n var that = this;\n if (that._currentTimeUpdateTimer) {\n clearInterval(that._currentTimeUpdateTimer);\n }\n if (that.datesHeader) {\n that.datesHeader.off(NS);\n }\n if (that.element) {\n that.element.off(NS);\n }\n if (that.footer) {\n that.footer.remove();\n }\n SchedulerView.fn.destroy.call(this);\n if (this._isMobile() && that.options.editable) {\n if (that.options.editable.create !== false) {\n that._addUserEvents.destroy();\n that._allDayUserEvents.destroy();\n }\n if (that.options.editable.update !== false) {\n that._editUserEvents.destroy();\n }\n }\n },\n inRange: function (options) {\n var inRange = SchedulerView.fn.inRange.call(this, options);\n var startTime = getMilliseconds(this.startTime());\n var endTime = getMilliseconds(this.endTime()) || kendo.date.MS_PER_DAY;\n var start = getMilliseconds(options.start);\n var end = getMilliseconds(options.end) || kendo.date.MS_PER_DAY;\n return inRange && startTime <= start && end <= endTime;\n },\n selectionByElement: function (cell) {\n var offset = cell.offset();\n return this._slotByPosition(offset.left, offset.top);\n },\n _timeSlotInterval: function () {\n var options = this.options;\n return options.majorTick / options.minorTickCount * MS_PER_MINUTE;\n },\n _timeSlotIndex: function (date) {\n var options = this.options;\n var eventStartTime = getMilliseconds(date);\n var startTime = getMilliseconds(this.startTime());\n var timeSlotInterval = options.majorTick / options.minorTickCount * MS_PER_MINUTE;\n return (eventStartTime - startTime) / timeSlotInterval;\n },\n _slotIndex: function (date, multiday) {\n if (multiday) {\n return this._dateSlotIndex(date);\n }\n return this._timeSlotIndex(date);\n },\n _dateSlotIndex: function (date, overlaps) {\n var idx;\n var length;\n var slots = this._dates || [];\n var slotStart;\n var slotEnd;\n var offset = 1;\n for (idx = 0, length = slots.length; idx < length; idx++) {\n slotStart = kendo.date.getDate(slots[idx]);\n slotEnd = new Date(kendo.date.getDate(slots[idx]).getTime() + MS_PER_DAY - (overlaps ? 0 : 1));\n if (isInDateRange(date, slotStart, slotEnd)) {\n return idx * offset;\n }\n }\n return -1;\n },\n _positionAllDayEvent: function (element, slotRange) {\n var slotWidth = slotRange.innerWidth();\n var startIndex = slotRange.start.index;\n var endIndex = slotRange.end.index;\n var allDayEvents = SchedulerView.collidingEvents(slotRange.events(), startIndex, endIndex);\n var currentColumnCount = this._headerColumnCount || 0;\n var leftOffset = 2;\n var rightOffset = startIndex !== endIndex ? 5 : 4;\n var eventHeight = this._allDayHeaderHeight;\n var start = slotRange.startSlot();\n element.css({\n left: start.offsetLeft + leftOffset,\n width: slotWidth - rightOffset\n });\n slotRange.addEvent({\n slotIndex: startIndex,\n start: startIndex,\n end: endIndex,\n element: element\n });\n allDayEvents.push({\n slotIndex: startIndex,\n start: startIndex,\n end: endIndex,\n element: element\n });\n var rows = SchedulerView.createRows(allDayEvents);\n if (rows.length && rows.length > currentColumnCount) {\n this._headerColumnCount = rows.length;\n }\n var top = slotRange.start.offsetTop;\n for (var idx = 0, length = rows.length; idx < length; idx++) {\n var rowEvents = rows[idx].events;\n for (var j = 0, eventLength = rowEvents.length; j < eventLength; j++) {\n $(rowEvents[j].element).css({ top: top + idx * eventHeight });\n }\n }\n },\n _arrangeColumns: function (element, top, height, slotRange) {\n var startSlot = slotRange.start;\n element = {\n element: element,\n slotIndex: startSlot.index,\n start: top,\n end: top + height\n };\n var columns, slotWidth = startSlot.clientWidth, eventRightOffset = slotWidth * 0.1, columnEvents, eventElements = slotRange.events(), slotEvents = SchedulerView.collidingEvents(eventElements, element.start, element.end);\n slotRange.addEvent(element);\n slotEvents.push(element);\n columns = SchedulerView.createColumns(slotEvents);\n var columnWidth = (slotWidth - eventRightOffset) / columns.length;\n for (var idx = 0, length = columns.length; idx < length; idx++) {\n columnEvents = columns[idx].events;\n for (var j = 0, eventLength = columnEvents.length; j < eventLength; j++) {\n columnEvents[j].element[0].style.width = columnWidth - 4 + 'px';\n columnEvents[j].element[0].style.left = (this._isRtl ? eventRightOffset : 0) + startSlot.offsetLeft + idx * columnWidth + 2 + 'px';\n }\n }\n },\n _positionEvent: function (event, element, slotRange) {\n var start = event._startTime || event.start;\n var end = event._endTime || event.end;\n var rect = slotRange.innerRect(start, end, false);\n var height = rect.bottom - rect.top - 2;\n if (height < 0) {\n height = 0;\n }\n element.css({\n top: rect.top,\n height: height\n });\n this._arrangeColumns(element, rect.top, element[0].clientHeight, slotRange);\n },\n _createEventElement: function (event, isOneDayEvent, head, tail) {\n var template = isOneDayEvent ? this.eventTemplate : this.allDayEventTemplate;\n var options = this.options;\n var editable = options.editable;\n var isMobile = this._isMobile();\n var showDelete = editable && editable.destroy !== false && !isMobile;\n var resizable = editable && editable.resize !== false;\n var startDate = getDate(this.startDate());\n var endDate = getDate(this.endDate());\n var startTime = getMilliseconds(this.startTime());\n var endTime = getMilliseconds(this.endTime());\n var eventStartTime = event._time('start');\n var eventEndTime = event._time('end');\n var middle;\n if (startTime >= endTime) {\n endTime = getMilliseconds(new Date(this.endTime().getTime() + MS_PER_DAY - 1));\n }\n if (!isOneDayEvent && !event.isAllDay) {\n endDate = new Date(endDate.getTime() + MS_PER_DAY);\n }\n var eventStartDate = event.start;\n var eventEndDate = event.end;\n if (event.isAllDay) {\n eventEndDate = getDate(event.end);\n }\n if (!isInDateRange(getDate(eventStartDate), startDate, endDate) && !isInDateRange(eventEndDate, startDate, endDate) || isOneDayEvent && eventStartTime < startTime && eventEndTime > endTime) {\n middle = true;\n } else if (getDate(eventStartDate) < startDate || isOneDayEvent && eventStartTime < startTime) {\n tail = true;\n } else if (eventEndDate > endDate && !isOneDayEvent || isOneDayEvent && eventEndTime > endTime) {\n head = true;\n }\n var resources = this.eventResources(event);\n if (event._startTime && eventStartTime !== kendo.date.getMilliseconds(event.start)) {\n eventStartDate = new Date(eventStartTime);\n eventStartDate = kendo.timezone.apply(eventStartDate, 'Etc/UTC');\n }\n if (event._endTime && eventEndTime !== kendo.date.getMilliseconds(event.end)) {\n eventEndDate = new Date(eventEndTime);\n eventEndDate = kendo.timezone.apply(eventEndDate, 'Etc/UTC');\n }\n var data = extend({}, {\n ns: kendo.ns,\n resizable: resizable,\n showDelete: showDelete,\n middle: middle,\n head: head,\n tail: tail,\n singleDay: this._dates.length == 1,\n resources: resources,\n inverseColor: resources && resources[0] ? this._shouldInverseResourceColor(resources[0]) : false\n }, event, {\n start: eventStartDate,\n end: eventEndDate\n });\n var element = $(template(data));\n this.angular('compile', function () {\n return {\n elements: element,\n data: [{ dataItem: data }]\n };\n });\n return element;\n },\n _isInTimeSlot: function (event) {\n var slotStartTime = this.startTime(), slotEndTime = this.endTime(), startTime = event._startTime || event.start, endTime = event._endTime || event.end;\n if (getMilliseconds(slotEndTime) === getMilliseconds(kendo.date.getDate(slotEndTime))) {\n slotEndTime = kendo.date.getDate(slotEndTime);\n setTime(slotEndTime, MS_PER_DAY - 1);\n }\n if (event._date('end') > event._date('start')) {\n endTime = +event._date('end') + (MS_PER_DAY - 1);\n }\n endTime = endTime - event._date('end');\n startTime = startTime - event._date('start');\n slotEndTime = getMilliseconds(slotEndTime);\n slotStartTime = getMilliseconds(slotStartTime);\n if (slotStartTime === startTime && startTime === endTime) {\n return true;\n }\n var overlaps = startTime !== slotEndTime;\n return isInTimeRange(startTime, slotStartTime, slotEndTime, overlaps) || isInTimeRange(endTime, slotStartTime, slotEndTime, overlaps) || isInTimeRange(slotStartTime, startTime, endTime) || isInTimeRange(slotEndTime, startTime, endTime);\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 _updateAllDayHeaderHeight: function (height) {\n if (this._height !== height) {\n this._height = height;\n var allDaySlots = this.element.find('.k-scheduler-header-all-day td');\n if (allDaySlots.length) {\n allDaySlots.parent().add(this.element.find('.k-scheduler-times-all-day').parent()).height(height);\n for (var groupIndex = 0; groupIndex < this.groups.length; groupIndex++) {\n this.groups[groupIndex].refresh();\n }\n }\n }\n },\n _renderEvents: function (events, groupIndex) {\n var allDayEventContainer = this.datesHeader.find('.k-scheduler-header-wrap > div');\n var event;\n var idx;\n var length;\n for (idx = 0, length = events.length; idx < length; idx++) {\n event = events[idx];\n if (this._isInDateSlot(event)) {\n var isMultiDayEvent = event.isAllDay || event.end.getTime() - event.start.getTime() >= MS_PER_DAY;\n var container = isMultiDayEvent && !this._isVerticallyGrouped() ? allDayEventContainer : this.content;\n var element;\n var ranges;\n var group;\n if (!isMultiDayEvent) {\n if (this._isInTimeSlot(event)) {\n group = this.groups[groupIndex];\n if (!group._continuousEvents) {\n group._continuousEvents = [];\n }\n ranges = group.slotRanges(event);\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 _startTime: event._startTime,\n _endTime: event.endTime\n });\n if (this._isInTimeSlot(occurrence)) {\n var head = range.head;\n element = this._createEventElement(event, !isMultiDayEvent, head, range.tail);\n element.appendTo(container);\n this._positionEvent(occurrence, element, range);\n addContinuousEvent(group, range, element, false);\n }\n }\n }\n } else if (this.options.allDaySlot) {\n group = this.groups[groupIndex];\n if (!group._continuousEvents) {\n group._continuousEvents = [];\n }\n ranges = group.slotRanges(event);\n if (ranges.length) {\n element = this._createEventElement(event, !isMultiDayEvent);\n this._positionAllDayEvent(element, ranges[0]);\n addContinuousEvent(group, ranges[0], element, true);\n element.appendTo(container);\n }\n }\n }\n }\n },\n render: function (events) {\n this._headerColumnCount = 0;\n this._groups();\n this.element.find('.k-event').remove();\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 eventsByResource = [];\n this._eventsByResource(events, this.groupedResources, eventsByResource);\n var eventsPerDate = $.map(this._dates, function (date) {\n return Math.max.apply(null, $.map(eventsByResource, function (events) {\n return $.grep(events, function (event) {\n return event.isMultiDay() && isInDateRange(date, getDate(event.start), getDate(event.end));\n }).length;\n }));\n });\n var height = Math.max.apply(null, eventsPerDate);\n this._updateAllDayHeaderHeight((height + 1) * this._allDayHeaderHeight);\n for (var groupIndex = 0; groupIndex < eventsByResource.length; groupIndex++) {\n this._renderEvents(eventsByResource[groupIndex], groupIndex);\n }\n this.refreshLayout();\n this.trigger('activate');\n },\n _eventsByResource: function (events, resources, result) {\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 eventsFilteredByResource = new kendo.data.Query(events).filter({\n field: resource.field,\n operator: SchedulerView.groupEqFilter(value)\n }).toArray();\n if (resources.length > 1) {\n this._eventsByResource(eventsFilteredByResource, resources.slice(1), result);\n } else {\n result.push(eventsFilteredByResource);\n }\n }\n } else {\n result.push(events);\n }\n },\n _columnOffsetForResource: function (index) {\n return this._columnCountForLevel(index) / this._columnCountForLevel(index - 1);\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 clearSelection: function () {\n this.content.add(this.datesHeader).find('.k-state-selected').removeAttr('id').attr('aria-selected', false).removeClass('k-state-selected');\n },\n _updateDirection: function (selection, ranges, multiple, reverse, vertical) {\n var isDaySlot = selection.isAllDay;\n var startSlot = ranges[0].start;\n var endSlot = ranges[ranges.length - 1].end;\n if (multiple) {\n if (vertical) {\n if (!isDaySlot && startSlot.index === endSlot.index && startSlot.collectionIndex === endSlot.collectionIndex) {\n selection.backward = reverse;\n }\n } else {\n if (isDaySlot && startSlot.index === endSlot.index || !isDaySlot && startSlot.collectionIndex === endSlot.collectionIndex) {\n selection.backward = reverse;\n }\n }\n }\n },\n _changeViewPeriod: function (selection, reverse, vertical) {\n if (!vertical) {\n var date = reverse ? this.previousDate() : this.nextDate();\n var start = selection.start;\n var end = selection.end;\n selection.start = new Date(date);\n selection.end = new Date(date);\n var endMilliseconds = selection.isAllDay ? MS_PER_DAY : getMilliseconds(end);\n setTime(selection.start, getMilliseconds(start));\n setTime(selection.end, endMilliseconds);\n if (!this._isVerticallyGrouped()) {\n selection.groupIndex = reverse ? this.groups.length - 1 : 0;\n }\n selection.events = [];\n return true;\n }\n }\n });\n extend(true, ui, {\n MultiDayView: MultiDayView,\n DayView: MultiDayView.extend({\n options: {\n name: 'DayView',\n title: 'Day'\n },\n name: 'day'\n }),\n WeekView: MultiDayView.extend({\n options: {\n name: 'WeekView',\n title: 'Week',\n selectedDateFormat: '{0:D} - {1:D}',\n selectedShortDateFormat: '{0:d} - {1:d}'\n },\n name: 'week',\n calculateDateRange: function () {\n var selectedDate = this.options.date, start = kendo.date.dayOfWeek(selectedDate, this.calendarInfo().firstDay, -1), idx, length, dates = [];\n for (idx = 0, length = 7; idx < length; idx++) {\n dates.push(start);\n start = kendo.date.nextDay(start);\n }\n this._render(dates);\n }\n }),\n WorkWeekView: MultiDayView.extend({\n options: {\n name: 'WorkWeekView',\n title: 'Work Week',\n selectedDateFormat: '{0:D} - {1:D}',\n selectedShortDateFormat: '{0:d} - {1:d}'\n },\n name: 'workWeek',\n nextDate: function () {\n return kendo.date.dayOfWeek(kendo.date.nextDay(this.startDate()), this.calendarInfo().firstDay, 1);\n },\n previousDate: function () {\n var weekStart = kendo.date.dayOfWeek(this.startDate(), this.calendarInfo().firstDay, -1);\n return kendo.date.previousDay(weekStart);\n },\n calculateDateRange: function () {\n var selectedDate = this.options.date, dayOfWeek = kendo.date.dayOfWeek, weekStart = dayOfWeek(selectedDate, this.calendarInfo().firstDay, -1), start = dayOfWeek(weekStart, this.options.workWeekStart, 1), end = dayOfWeek(start, this.options.workWeekEnd, 1), dates = [];\n while (start <= end) {\n dates.push(start);\n start = kendo.date.nextDay(start);\n }\n this._render(dates);\n }\n })\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/"}