{"version":3,"file":"kendo.scheduler.agendaview.min.js","names":["factory","define","amd","$","kendo","window","ui","NS","ROLE","AgendaGroupedView","Class","extend","init","view","this","_view","_getColumns","groupHeaders","columns","concat","_getGroupsInDay","_getSumOfItemsForDate","_renderTaskGroupsCells","headerCells","groups","taskGroupIndex","taskIndex","length","_renderDateCell","tableRow","tasks","date","tasksGroups","isMobile","_isMobile","push","format","_dateTemplate","_renderDates","_getParents","parentGroups","splice","_getGroupsByDate","_renderTaskGroups","table","items","parents","append","AgendaGroupedByDateView","slice","columnsWithoutDate","_compareDateGroups","currentGroup","prevGroup","index","text","groupsInDay","tasksGroupIdx","itemsIdx","idx","lastItemValue","i","sumOfItemsForDate","groupsRowSpanIndex","_groupTemplate","value","className","sortedArray","_groupsByDate","sort","a","b","array","getTime","dateExists","rowSpan","result","resourceValue","resource","item","valuePrimitive","getter","dataValueField","flattenGroup","shift","apply","call","scheduler","AgendaView","SchedulerView","element","options","fn","_groupedView","_getGroupedView","editable","delete","create","update","messages","title","_eventTemplate","_eventTmpl","eventTemplate","template","eventDateTemplate","eventGroupTemplate","_timeTemplate","eventTimeTemplate","on","_renderLayout","refreshLayout","name","_aria","attr","children","find","clearSelection","_isVirtualized","_isGroupedByDate","_mouseenter","e","currentTarget","addClass","_mouseleave","removeClass","_remove","preventDefault","trigger","uid","closest","nextDate","nextDay","startDate","_startDate","endDate","_endDate","previousDate","previousDay","addDays","createLayout","_layout","_footer","time","event","resources","groupedResources","_tasks","events","start","end","isAllDay","getDate","eventStartDate","offsetCompensation","getTimezoneOffset","eventDurationInDays","Math","ceil","MS_PER_DAY","task","clone","head","day","Date","getFullYear","getMonth","getHours","getMinutes","getSeconds","getMilliseconds","tail","middle","data","Query","field","dir","groupBy","toArray","tableRows","showDelete","destroy","today","isToday","join","eventResources","_startTime","endTime","render","content","empty","_createGroupConfiguration","_renderGroups","_eventsList","flattenTaskGroups","_angularItems","angular","elements","map","dataItem","parent","configuration","dataSource","filter","itemParentValue","dataParentValueField","dataIndex","tmp","operator","groupEqFilter","indexOf","obj","dataTextField","span","_resourceBySlot","selectionByElement","cell","hasClass","is","select","selection","row","eq","current","move","key","handled","keys","UP","DOWN","moveToEvent","constrainSelection","isInRange","off","selectedDateFormat","selectedShortDateFormat","selectedMobileDateFormat","allDay","jQuery"],"sources":["kendo.scheduler.agendaview.js"],"mappings":"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","sourcesContent":["(function (factory) {\n typeof define === 'function' && define.amd ? define(['kendo.scheduler.view'], factory) :\n factory();\n})((function () {\n var __meta__ = {\n id: \"scheduler.agendaview\",\n name: \"Scheduler Agenda View\",\n category: \"web\",\n description: \"The Scheduler Agenda View\",\n depends: [\"scheduler.view\"],\n hidden: true\n };\n\n (function($) {\n var kendo = window.kendo,\n ui = kendo.ui,\n NS = \".kendoAgendaView\",\n ROLE = \"role\";\n\n var EVENT_WRAPPER_FORMAT = '
' +\n '# if (resources[0]) {#' +\n '' +\n \"# } #\" +\n \"# if (data.isException()) { #\" +\n '' +\n '# } else if (data.isRecurring()) {#' +\n '' +\n \"# } #\" +\n '{0}' +\n '#if (showDelete) {#' +\n '' +\n '#}#' +\n '
';\n\n var EVENT_DATE_TEMPLATE = \"# if (!isMobile) { #\" +\n '' +\n '#=kendo.toString(date, \"dd\")#' +\n '' +\n '' +\n '#=kendo.toString(date,\"dddd\")#' +\n '' +\n '' +\n '#=kendo.toString(date, \"y\")#' +\n '' +\n '# } else { #' +\n '
' +\n '' +\n '#=kendo.toString(date, \"dd\")#' +\n ' ' +\n '#=kendo.toString(date, \"MMMM\")#' +\n '' +\n '' +\n '#=kendo.toString(date, \"dddd\")#' +\n '' +\n '
' +\n '# } #';\n\n var EVENT_GROUP_TEMPLATE = \"# if (!isMobile) { #\" +\n '' +\n '#=value#' +\n '' +\n '# } else { #' +\n '' +\n '#=value#' +\n '' +\n '# } #';\n\n var AgendaGroupedView = kendo.Class.extend({\n init: function(view) {\n this._view = view;\n },\n\n _getColumns: function(groupHeaders, columns) {\n return groupHeaders.concat(columns);\n },\n _getGroupsInDay: function() {\n return [];\n },\n\n _getSumOfItemsForDate: function() {\n return 0;\n },\n\n _renderTaskGroupsCells: function(headerCells, groups, taskGroupIndex, taskIndex) {\n var view = this._view;\n\n if (taskGroupIndex === 0 && taskIndex === 0 && groups.length) {\n view._renderTaskGroupsCells(headerCells, groups);\n }\n },\n\n _renderDateCell: function(tableRow, groups, tasks, date, taskGroupIndex, tasksGroups) {\n var view = this._view;\n var isMobile = view._isMobile();\n\n tableRow.push(kendo.format(\n '{1}',\n tasks.length,\n view._dateTemplate({ date: date, isMobile: isMobile }),\n taskGroupIndex == tasksGroups.length - 1 && !groups.length ? \" k-last\" : \"\",\n !groups.length ? \" k-first\" : \"\"\n ));\n },\n\n _renderDates: function() {\n return undefined;\n },\n\n _getParents: function(parentGroups) {\n return parentGroups.splice(0);\n },\n\n _getGroupsByDate: function() {\n return undefined;\n },\n\n _renderTaskGroups: function(table, items, parents) {\n var view = this._view;\n\n table.append(view._renderTaskGroups(items, parents));\n }\n\n });\n\n var AgendaGroupedByDateView = kendo.Class.extend({\n init: function(view) {\n this._view = view;\n },\n\n _getColumns: function(groupHeaders, columns) {\n var view = this._view;\n\n if (view._isMobile()) {\n return groupHeaders.concat(columns);\n } else {\n var date = columns.slice(0, 1);\n var columnsWithoutDate = columns.slice(1);\n\n return date.concat(groupHeaders).concat(columnsWithoutDate);\n }\n },\n\n _compareDateGroups: function(currentGroup, prevGroup, index) {\n if (currentGroup[index].text == prevGroup[index].text) {\n if (index === 0) {\n return true;\n } else {\n return this._compareDateGroups(currentGroup, prevGroup, index - 1);\n }\n }\n\n return false;\n },\n\n _getGroupsInDay: function(tasksGroups, groups) {\n var groupsInDay = [];\n var prevGroup = null;\n\n for (var tasksGroupIdx = 0; tasksGroupIdx < tasksGroups.length; tasksGroupIdx++) {\n for (var itemsIdx = 0; itemsIdx < tasksGroups[tasksGroupIdx].items.length; itemsIdx++) {\n var idx = 0;\n\n if (groupsInDay.length === 0) {\n for (idx; idx < groups[tasksGroupIdx].length; idx++) {\n groupsInDay.push([1]);\n }\n } else {\n for (idx; idx < groups[tasksGroupIdx].length; idx++) {\n\n if (this._compareDateGroups(groups[tasksGroupIdx], prevGroup, idx)) {\n groupsInDay[idx][groupsInDay[idx].length - 1]++;\n } else {\n var lastItemValue = groupsInDay[idx][groupsInDay[idx].length - 1] - 1;\n for (var i = 0; i < lastItemValue; i++) {\n groupsInDay[idx].push(0);\n }\n groupsInDay[idx].push(1);\n }\n }\n }\n prevGroup = groups[tasksGroupIdx];\n }\n }\n\n return groupsInDay;\n },\n\n _getSumOfItemsForDate: function(tasksGroups) {\n var sumOfItemsForDate = 0;\n\n for (var i = 0; i < tasksGroups.length; i++) {\n\n sumOfItemsForDate += tasksGroups[i].items.length;\n }\n return sumOfItemsForDate;\n },\n\n _renderTaskGroupsCells: function(headerCells, groups, taskGroupIndex, taskIndex, groupsInDay, sumOfItemsForDate, date, groupsRowSpanIndex) {\n var view = this._view;\n var isMobile = view._isMobile();\n\n if (!isMobile) {\n if (taskGroupIndex === 0 && taskIndex === 0) {\n headerCells.push(kendo.format(\n '{1}',\n sumOfItemsForDate,\n view._dateTemplate({ date: date, isMobile: isMobile })\n ));\n }\n\n for (var idx = 0; idx < groups[taskGroupIndex].length; idx++) {\n if (groupsInDay[idx][groupsRowSpanIndex]) {\n headerCells.push(kendo.format(\n '{1}',\n groupsInDay[idx][groupsRowSpanIndex],\n view._groupTemplate({ value: groups[taskGroupIndex][idx].text, isMobile: isMobile }),\n groups[taskGroupIndex][idx].className\n ));\n }\n }\n } else {\n if (taskGroupIndex === 0 && taskIndex === 0 && groups.length) {\n view._renderTaskGroupsCells(headerCells, groups);\n }\n }\n },\n\n _renderDateCell: function() {\n return undefined;\n },\n\n _renderDates: function(table) {\n var view = this._view;\n var sortedArray = view._groupsByDate.sort(function(a, b) {\n return a.array[0].value.getTime() - b.array[0].value.getTime();\n });\n\n for (var i = 0; i < sortedArray.length; i++) {\n table.append(view._renderTaskGroups(sortedArray[i].array, sortedArray[i].groups));\n }\n },\n\n _getParents: function(parentGroups) {\n return parentGroups.slice(0);\n },\n\n _getGroupsByDate: function(groups, idx, parents) {\n var view = this._view;\n\n if (groups[idx].items) {\n for (var taskGroupIndex = 0; taskGroupIndex < groups[idx].items.length; taskGroupIndex++) {\n var date = groups[idx].items[taskGroupIndex].value;\n var dateExists = false;\n\n for (var i = 0; i < view._groupsByDate.length; i++) {\n if (view._groupsByDate[i].array[0].value.getTime() === date.getTime()) {\n dateExists = true;\n view._groupsByDate[i].array.push(groups[idx].items[taskGroupIndex]);\n view._groupsByDate[i].groups.push(parents);\n }\n }\n\n if (!dateExists) {\n view._groupsByDate.push({\n array: [groups[idx].items[taskGroupIndex]],\n groups: [parents]\n });\n }\n }\n }\n },\n\n _renderTaskGroups: function() {\n return undefined;\n }\n\n });\n\n kendo.ui.scheduler.AgendaGroupedView = AgendaGroupedView;\n kendo.ui.scheduler.AgendaGroupedByDateView = AgendaGroupedByDateView;\n\n\n ui.AgendaView = ui.SchedulerView.extend({\n init: function(element, options) {\n ui.SchedulerView.fn.init.call(this, element, options);\n\n this._groupedView = this._getGroupedView();\n\n options = this.options;\n\n if (options.editable) {\n options.editable = $.extend(\n { \"delete\": true },\n options.editable,\n { create: false, update: false },\n { messages: options.messages }\n );\n }\n\n this.title = options.title;\n\n this._eventTemplate = this._eventTmpl(options.eventTemplate, EVENT_WRAPPER_FORMAT);\n this._dateTemplate = kendo.template(options.eventDateTemplate);\n this._groupTemplate = kendo.template(options.eventGroupTemplate);\n this._timeTemplate = kendo.template(options.eventTimeTemplate);\n\n this.element.on(\"mouseenter\" + NS, \".k-scheduler-agenda .k-scheduler-content tr\", \"_mouseenter\")\n .on(\"mouseleave\" + NS, \".k-scheduler-agenda .k-scheduler-content tr\", \"_mouseleave\")\n .on(\"click\" + NS, \".k-scheduler-agenda .k-scheduler-content .k-link:has(.k-i-close)\", \"_remove\");\n\n this._renderLayout(options.date);\n this.refreshLayout();\n },\n\n name: \"agenda\",\n\n _aria: function() {\n var table = this.table;\n\n table.attr(ROLE, \"grid\");\n\n table.children(\"tbody\").attr(ROLE, \"none\");\n\n table.find(\"table\").attr(ROLE, \"none\");\n table.find(\"table > tbody\").attr(ROLE, \"rowgroup\");\n table.find(\"table tr\").attr(ROLE, \"row\");\n table.find(\"table td\").attr(ROLE, \"gridcell\");\n\n table.find(\".k-scheduler-header-wrap th\").attr(ROLE, \"columnheader\");\n table.find(\".k-scheduler-content .k-scheduler-datecolumn, .k-scheduler-content .k-scheduler-groupcolumn\").attr(ROLE, \"rowheader\");\n },\n\n clearSelection: function() {\n this.element.find(\".k-selected\").attr(\"aria-selected\", false);\n\n kendo.ui.SchedulerView.fn.clearSelection.call(this);\n },\n\n _isVirtualized: function() {\n return false;\n },\n _getGroupedView: function() {\n if (this._isGroupedByDate()) {\n return new kendo.ui.scheduler.AgendaGroupedByDateView(this);\n } else {\n return new kendo.ui.scheduler.AgendaGroupedView(this);\n }\n },\n\n _mouseenter: function(e) {\n $(e.currentTarget).addClass(\"k-hover\");\n },\n\n _mouseleave: function(e) {\n $(e.currentTarget).removeClass(\"k-hover\");\n },\n\n _remove: function(e) {\n e.preventDefault();\n\n this.trigger(\"remove\", {\n uid: $(e.currentTarget).closest(\".k-task\").attr(kendo.attr(\"uid\"))\n });\n },\n\n nextDate: function() {\n return kendo.date.nextDay(this.startDate());\n },\n\n startDate: function() {\n return this._startDate;\n },\n\n endDate: function() {\n return this._endDate;\n },\n\n previousDate: function() {\n return kendo.date.previousDay(this.startDate());\n },\n\n _renderLayout: function(date) {\n this._startDate = date;\n this._endDate = kendo.date.addDays(date, 7);\n this.createLayout(this._layout());\n this._footer();\n this.table.addClass(\"k-scheduler-agenda\");\n },\n\n _layout: function() {\n var columns = [\n { text: this.options.messages.time, className: \"k-scheduler-timecolumn\" },\n { text: this.options.messages.event }\n ];\n\n if (!this._isMobile()) {\n columns.splice(0, 0, { text: this.options.messages.date, className: \"k-scheduler-datecolumn\" });\n }\n\n var resources = this.groupedResources;\n if (resources.length) {\n var groupHeaders = [];\n for (var idx = 0; idx < resources.length; idx++) {\n groupHeaders.push({ text: \"\", className: \"k-scheduler-groupcolumn\" });\n }\n\n columns = this._groupedView._getColumns(groupHeaders, columns);\n }\n\n return {\n columns: columns\n };\n },\n\n _tasks: function(events) {\n var tasks = [];\n\n for (var idx = 0; idx < events.length; idx++) {\n var event = events[idx];\n var start = event.start;\n var end = event.isAllDay ? kendo.date.getDate(event.end) : event.end;\n var eventStartDate = kendo.date.getDate(start);\n var offsetCompensation = (eventStartDate.getTimezoneOffset() - end.getTimezoneOffset()) * 60000;\n\n var eventDurationInDays = Math.ceil((end - eventStartDate + offsetCompensation) / kendo.date.MS_PER_DAY);\n\n if (event.isAllDay) {\n eventDurationInDays += 1;\n }\n\n var task = event.clone();\n task.startDate = kendo.date.getDate(start);\n\n if (task.startDate >= this.startDate()) {\n tasks.push(task);\n }\n\n if (eventDurationInDays > 1) {\n task.end = kendo.date.nextDay(start);\n task.head = true;\n for (var day = 1; day < eventDurationInDays; day++) {\n start = task.end;\n task = event.clone();\n task.start = task.startDate = kendo.date.getDate(start);\n task.end = kendo.date.nextDay(start);\n if (day == eventDurationInDays - 1) {\n task.end = new Date(task.start.getFullYear(), task.start.getMonth(), task.start.getDate(), end.getHours(), end.getMinutes(), end.getSeconds(), end.getMilliseconds());\n task.tail = true;\n } else {\n task.isAllDay = true;\n task.middle = true;\n }\n\n if ((kendo.date.getDate(task.end) <= this.endDate() && task.start >= this.startDate()) || kendo.date.getDate(task.start).getTime() == this.endDate().getTime()) {\n tasks.push(task);\n }\n }\n }\n }\n\n return new kendo.data.Query(tasks).sort([{ field: \"start\", dir: \"asc\" }, { field: \"end\", dir: \"asc\" }]).groupBy({ field: \"startDate\" }).toArray();\n },\n\n _renderTaskGroups: function(tasksGroups, groups) {\n var tableRows = [];\n var editable = this.options.editable;\n var showDelete = editable && editable.destroy !== false && !this._isMobile();\n var isMobile = this._isMobile();\n var sumOfItemsForDate = this._groupedView._getSumOfItemsForDate(tasksGroups);\n var groupsInDay = this._groupedView._getGroupsInDay(tasksGroups, groups);\n var groupsRowSpanIndex = 0;\n\n for (var taskGroupIndex = 0; taskGroupIndex < tasksGroups.length; taskGroupIndex++) {\n var date = tasksGroups[taskGroupIndex].value;\n\n var tasks = tasksGroups[taskGroupIndex].items;\n\n var today = kendo.date.isToday(date);\n\n for (var taskIndex = 0; taskIndex < tasks.length; taskIndex++) {\n var task = tasks[taskIndex];\n\n var tableRow = [];\n\n var headerCells = !isMobile ? tableRow : [];\n\n this._groupedView._renderTaskGroupsCells(headerCells, groups, taskGroupIndex, taskIndex, groupsInDay, sumOfItemsForDate, date, groupsRowSpanIndex);\n\n groupsRowSpanIndex++;\n if (taskIndex === 0) {\n if (isMobile) {\n headerCells.push(kendo.format(\n '{0}',\n this._dateTemplate({ date: date, isMobile: isMobile }),\n !this.groupedResources.length ? \"k-first\" : \"\"\n ));\n\n tableRows.push('' : \">\") + headerCells.join(\"\") + \"\");\n } else {\n this._groupedView._renderDateCell(tableRow, groups, tasks, date, taskGroupIndex, tasksGroups);\n }\n }\n\n if (task.head) {\n task.format = \"{0:t}\";\n } else if (task.tail) {\n task.format = \"{1:t}\";\n } else {\n task.format = \"{0:t}-{1:t}\";\n }\n\n task.resources = this.eventResources(task);\n\n tableRow.push(kendo.format(\n '
{0}{1}{2}
{3}',\n task.tail || task.middle ? '' : \"\",\n this._timeTemplate(task.clone({ start: task._startTime || task.start, end: task.endTime || task.end })),\n task.head || task.middle ? '' : \"\",\n this._eventTemplate(task.clone({ showDelete: showDelete, messages: this.options.messages })),\n !this.groupedResources.length && isMobile ? \"k-first\" : \"\"\n ));\n\n tableRows.push('' : \">\") + tableRow.join(\"\") + \"\");\n }\n }\n\n return tableRows.join(\"\");\n },\n\n _renderTaskGroupsCells: function(headerCells, groups) {\n var isMobile = this._isMobile();\n\n for (var idx = 0; idx < groups.length; idx++) {\n headerCells.push(kendo.format(\n '{1}',\n groups[idx].rowSpan,\n this._groupTemplate({ value: groups[idx].text, isMobile: isMobile }),\n groups[idx].className\n ));\n }\n },\n\n render: function(events) {\n var table = this.content.find(\"table\").empty();\n var groups = [];\n\n if (events.length > 0) {\n var resources = this.groupedResources;\n\n table.append($(\"\"));\n\n if (resources.length) {\n groups = this._createGroupConfiguration(events, resources, null);\n this._groupsByDate = [];\n this._renderGroups(groups, table.find(\"tbody\"), []);\n this._groupedView._renderDates(table.find(\"tbody\"));\n } else {\n groups = this._tasks(events);\n table.find(\"tbody\").append(this._renderTaskGroups(groups, []));\n }\n }\n\n var items = this._eventsList = flattenTaskGroups(groups);\n this._angularItems(table, items);\n\n this._aria();\n this.refreshLayout();\n this.trigger(\"activate\");\n },\n\n _angularItems: function(table, items) {\n this.angular(\"compile\", function() {\n var data = [], elements = items.map(function(item) {\n data.push({ dataItem: item });\n return table.find(\".k-task[\" + kendo.attr(\"uid\") + \"=\" + item.uid + \"]\");\n });\n return { elements: elements, data: data };\n });\n },\n\n _renderGroups: function(groups, table, parentGroups) {\n for (var idx = 0, length = groups.length; idx < length; idx++) {\n var parents = this._groupedView._getParents(parentGroups);\n\n parents.push(groups[idx]);\n this._groupedView._getGroupsByDate(groups, idx, parents);\n\n if (groups[idx].groups) {\n this._renderGroups(groups[idx].groups, table, parents);\n } else {\n this._groupedView._renderTaskGroups(table, groups[idx].items, parents);\n }\n }\n },\n\n _createGroupConfiguration: function(events, resources, parent) {\n var resource = resources[0];\n var configuration = [];\n var data = resource.dataSource.view();\n var isMobile = this._isMobile();\n\n data = data.filter(function(item) {\n var itemParentValue = kendo.getter(resource.dataParentValueField)(item);\n\n return itemParentValue === null || itemParentValue === undefined || (parent && itemParentValue === parent.value);\n });\n\n for (var dataIndex = 0; dataIndex < data.length; dataIndex++) {\n var value = resourceValue(resource, data[dataIndex]);\n\n var tmp = new kendo.data.Query(events).filter({ field: resource.field, operator: ui.SchedulerView.groupEqFilter(value) }).toArray();\n\n if (tmp.length) {\n var tasks = this._tasks(tmp);\n var className = parent ? \"\" : \" k-first\";\n\n if (dataIndex === data.length - 1 && (!parent || parent.className.indexOf(\"k-last\") > -1)) {\n className += \" k-last\";\n }\n\n var obj = {\n text: kendo.getter(resource.dataTextField)(data[dataIndex]),\n value: value,\n rowSpan: 0,\n className: className\n };\n\n if (resources.length > 1) {\n obj.groups = this._createGroupConfiguration(tmp, resources.slice(1), obj);\n if (parent) {\n parent.rowSpan += obj.rowSpan;\n }\n } else {\n obj.items = tasks;\n var span = rowSpan(obj.items);\n\n if (isMobile) {\n span += obj.items.length;\n }\n\n obj.rowSpan = span;\n if (parent) {\n parent.rowSpan += span;\n }\n }\n configuration.push(obj);\n }\n }\n\n return configuration;\n },\n\n // TODO: this method for Agenda view has never worked properly\n // it used to return wrong resources\n // to be clearer the deficit, it now does not return any resources\n _resourceBySlot: function() {\n return {};\n },\n\n selectionByElement: function(cell) {\n var index, event;\n cell = $(cell);\n if (cell.hasClass(\"k-scheduler-datecolumn\") || !this._eventsList.length) {\n return;\n }\n\n if (cell.is(\".k-task\")) {\n cell = cell.closest(\"td\");\n }\n\n if (this._isMobile()) {\n var parent = cell.parent();\n index = parent.parent().children()\n .filter(function() {\n return $(this).children(\":not(.k-scheduler-datecolumn, .k-scheduler-groupcolumn)\").length;\n })\n .index(parent);\n } else {\n index = cell.parent().index();\n }\n\n event = this._eventsList[index];\n\n return {\n index: index,\n start: event.start,\n end: event.end,\n isAllDay: event.isAllDay,\n uid: event.uid\n };\n },\n\n select: function(selection) {\n this.clearSelection();\n\n var row = this.table\n .find(\".k-task\")\n .eq(selection.index)\n .closest(\"tr\")\n .addClass(\"k-selected\")\n .attr(\"aria-selected\", true)[0];\n\n this.current(row);\n },\n\n move: function(selection, key) {\n var handled = false;\n var index = selection.index;\n\n if (key == kendo.keys.UP) {\n index--;\n handled = true;\n } else if (key == kendo.keys.DOWN) {\n index++;\n handled = true;\n }\n\n if (handled) {\n var event = this._eventsList[index];\n if (event) {\n selection.start = event.start;\n selection.end = event.end;\n selection.isAllDay = event.isAllDay;\n selection.events = [event.uid];\n selection.index = index;\n }\n }\n\n return handled;\n },\n\n moveToEvent: function() {\n return false;\n },\n\n constrainSelection: function(selection) {\n var event = this._eventsList[0];\n if (event) {\n selection.start = event.start;\n selection.end = event.end;\n selection.isAllDay = event.isAllDay;\n selection.events = [event.uid];\n selection.index = 0;\n }\n },\n\n isInRange: function() {\n return true;\n },\n\n destroy: function() {\n if (this.element) {\n this.element.off(NS);\n }\n\n ui.SchedulerView.fn.destroy.call(this);\n },\n\n options: {\n title: \"Agenda\",\n name: \"agenda\",\n editable: true,\n selectedDateFormat: \"{0:D}-{1:D}\",\n selectedShortDateFormat: \"{0:d} - {1:d}\",\n selectedMobileDateFormat: \"{0: MMM} {0:dd} - {1:dd}\",\n eventTemplate: \"#:title#\",\n eventTimeTemplate: \"#if(data.isAllDay) {#\" +\n '#=this.options.messages.allDay#' +\n \"#} else { #\" +\n '#=kendo.format(format, start, end)#' +\n \"# } #\",\n eventDateTemplate: EVENT_DATE_TEMPLATE,\n eventGroupTemplate: EVENT_GROUP_TEMPLATE,\n messages: {\n event: \"Event\",\n date: \"Date\",\n time: \"Time\",\n allDay: \"all day\"\n }\n }\n });\n\n function rowSpan(tasks) {\n var result = 0;\n\n for (var idx = 0, length = tasks.length; idx < length; idx++) {\n result += tasks[idx].items.length;\n }\n\n return result;\n }\n\n function resourceValue(resource, item) {\n if (resource.valuePrimitive) {\n item = kendo.getter(resource.dataValueField)(item);\n }\n return item;\n }\n\n function flattenTaskGroups(groups) {\n var idx = 0,\n length = groups.length,\n item,\n result = [];\n\n for (; idx < length; idx++) {\n item = groups[idx];\n if (item.groups) {\n item = flattenGroup(item.groups);\n result = result.concat(item);\n } else {\n result = result.concat(flattenGroup(item.items));\n }\n }\n\n return result;\n }\n\n function flattenGroup(groups) {\n var items = [].concat(groups),\n item = items.shift(),\n result = [],\n push = [].push;\n while (item) {\n if (item.groups) {\n push.apply(items, item.groups);\n } else if (item.items) {\n push.apply(items, item.items);\n } else {\n push.call(result, item);\n }\n\n item = items.shift();\n }\n\n return result;\n }\n\n })(window.kendo.jQuery);\n\n}));\n"]}