{"version":3,"sources":["kendo.scheduler.agendaview.js"],"names":["f","define","$","rowSpan","tasks","idx","length","result","items","resourceValue","resource","item","valuePrimitive","kendo","getter","dataValueField","flattenTaskGroups","groups","flattenGroup","concat","shift","push","apply","call","window","ui","NS","EVENT_WRAPPER_FORMAT","AgendaView","SchedulerView","extend","init","element","options","fn","this","editable","delete","create","update","title","_eventTemplate","_eventTmpl","eventTemplate","_dateTemplate","template","eventDateTemplate","_groupTemplate","eventGroupTemplate","_timeTemplate","eventTimeTemplate","on","_renderLayout","date","name","_mouseenter","e","currentTarget","addClass","_mouseleave","removeClass","_remove","preventDefault","trigger","uid","closest","attr","nextDate","nextDay","startDate","_startDate","endDate","_endDate","previousDate","previousDay","addDays","createLayout","_layout","table","resources","groupHeaders","columns","text","messages","time","className","event","_isMobilePhoneView","splice","groupedResources","_tasks","events","start","end","eventDurationInDays","task","day","Math","ceil","getDate","MS_PER_DAY","clone","head","Date","getFullYear","getMonth","getHours","getMinutes","getSeconds","getMilliseconds","tail","isAllDay","middle","getTime","data","Query","sort","field","dir","groupBy","toArray","_renderTaskGroups","tasksGroups","taskGroupIndex","today","taskIndex","tableRow","headerCells","tableRows","showDelete","destroy","_isMobile","isPhoneView","value","isToday","format","join","eventResources","_startTime","endTime","render","content","find","empty","_createGroupConfiguration","_renderGroups","append","_eventsList","_angularItems","refreshLayout","angular","elements","map","dataItem","parentGroups","parents","parent","dataIndex","tmp","obj","span","configuration","dataSource","view","filter","operator","groupEqFilter","indexOf","dataTextField","slice","selectionByElement","cell","index","hasClass","is","children","select","selection","clearSelection","row","eq","current","move","key","handled","keys","UP","DOWN","moveToEvent","constrainSelection","isInRange","off","selectedDateFormat","selectedShortDateFormat","allDay","jQuery","amd","a1","a2","a3"],"mappings":"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","file":"kendo.scheduler.agendaview.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.agendaview', ['kendo.scheduler.view'], f);\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 (function ($) {\n var kendo = window.kendo, ui = kendo.ui, NS = '.kendoAgendaView';\n var EVENT_WRAPPER_FORMAT = '
' + '# if (resources[0]) {#' + '' + '# } #' + '# if (data.isException()) { #' + '' + '# } else if (data.isRecurring()) {#' + '' + '# } #' + '{0}' + '#if (showDelete) {#' + '' + '#}#' + '
';\n ui.AgendaView = ui.SchedulerView.extend({\n init: function (element, options) {\n ui.SchedulerView.fn.init.call(this, element, options);\n options = this.options;\n if (options.editable) {\n options.editable = $.extend({ 'delete': true }, options.editable, {\n create: false,\n update: false\n });\n }\n this.title = options.title;\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 this.element.on('mouseenter' + NS, '.k-scheduler-agenda .k-scheduler-content tr', '_mouseenter').on('mouseleave' + NS, '.k-scheduler-agenda .k-scheduler-content tr', '_mouseleave').on('click' + NS, '.k-scheduler-agenda .k-scheduler-content .k-link:has(.k-si-close)', '_remove');\n this._renderLayout(options.date);\n },\n name: 'agenda',\n _mouseenter: function (e) {\n $(e.currentTarget).addClass('k-state-hover');\n },\n _mouseleave: function (e) {\n $(e.currentTarget).removeClass('k-state-hover');\n },\n _remove: function (e) {\n e.preventDefault();\n this.trigger('remove', { uid: $(e.currentTarget).closest('.k-task').attr(kendo.attr('uid')) });\n },\n nextDate: function () {\n return kendo.date.nextDay(this.startDate());\n },\n startDate: function () {\n return this._startDate;\n },\n endDate: function () {\n return this._endDate;\n },\n previousDate: function () {\n return kendo.date.previousDay(this.startDate());\n },\n _renderLayout: function (date) {\n this._startDate = date;\n this._endDate = kendo.date.addDays(date, 7);\n this.createLayout(this._layout());\n this.table.addClass('k-scheduler-agenda');\n },\n _layout: function () {\n var columns = [\n {\n text: this.options.messages.time,\n className: 'k-scheduler-timecolumn'\n },\n { text: this.options.messages.event }\n ];\n if (!this._isMobilePhoneView()) {\n columns.splice(0, 0, {\n text: this.options.messages.date,\n 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({\n text: '',\n className: 'k-scheduler-groupcolumn'\n });\n }\n columns = groupHeaders.concat(columns);\n }\n return { columns: columns };\n },\n _tasks: function (events) {\n var tasks = [];\n for (var idx = 0; idx < events.length; idx++) {\n var event = events[idx];\n var start = event.start;\n var end = event.end;\n var eventDurationInDays = Math.ceil((end - kendo.date.getDate(start)) / kendo.date.MS_PER_DAY);\n var task = event.clone();\n task.startDate = kendo.date.getDate(start);\n if (task.startDate >= this.startDate()) {\n tasks.push(task);\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 = start;\n 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 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 return new kendo.data.Query(tasks).sort([\n {\n field: 'start',\n dir: 'asc'\n },\n {\n field: 'end',\n dir: 'asc'\n }\n ]).groupBy({ field: 'startDate' }).toArray();\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 isPhoneView = this._isMobilePhoneView();\n for (var taskGroupIndex = 0; taskGroupIndex < tasksGroups.length; taskGroupIndex++) {\n var date = tasksGroups[taskGroupIndex].value;\n var tasks = tasksGroups[taskGroupIndex].items;\n var today = kendo.date.isToday(date);\n for (var taskIndex = 0; taskIndex < tasks.length; taskIndex++) {\n var task = tasks[taskIndex];\n var tableRow = [];\n var headerCells = !isPhoneView ? tableRow : [];\n if (taskGroupIndex === 0 && taskIndex === 0 && groups.length) {\n for (var idx = 0; idx < groups.length; idx++) {\n headerCells.push(kendo.format('{1}', groups[idx].rowSpan, this._groupTemplate({ value: groups[idx].text }), groups[idx].className));\n }\n }\n if (taskIndex === 0) {\n if (isPhoneView) {\n headerCells.push(kendo.format('{0}', this._dateTemplate({ date: date })));\n tableRows.push('' : '>') + headerCells.join('') + '');\n } else {\n tableRow.push(kendo.format('{1}', tasks.length, this._dateTemplate({ date: date }), taskGroupIndex == tasksGroups.length - 1 && !groups.length ? ' k-last' : '', !groups.length ? ' k-first' : ''));\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 task.resources = this.eventResources(task);\n tableRow.push(kendo.format('
{0}{1}{2}
{3}', task.tail || task.middle ? '' : '', this._timeTemplate(task.clone({\n start: task._startTime || task.start,\n end: task.endTime || task.end\n })), task.head || task.middle ? '' : '', this._eventTemplate(task.clone({ showDelete: showDelete }))));\n tableRows.push('' : '>') + tableRow.join('') + '');\n }\n }\n return tableRows.join('');\n },\n render: function (events) {\n var table = this.content.find('table').empty();\n var groups = [];\n if (events.length > 0) {\n var resources = this.groupedResources;\n if (resources.length) {\n groups = this._createGroupConfiguration(events, resources, null);\n this._renderGroups(groups, table, []);\n } else {\n groups = this._tasks(events);\n table.append(this._renderTaskGroups(groups, []));\n }\n }\n var items = this._eventsList = flattenTaskGroups(groups);\n this._angularItems(table, items);\n this.refreshLayout();\n this.trigger('activate');\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 {\n elements: elements,\n 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 = parentGroups.splice(0);\n parents.push(groups[idx]);\n if (groups[idx].groups) {\n this._renderGroups(groups[idx].groups, table, parents);\n } else {\n table.append(this._renderTaskGroups(groups[idx].items, parents));\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 isPhoneView = this._isMobilePhoneView();\n for (var dataIndex = 0; dataIndex < data.length; dataIndex++) {\n var value = resourceValue(resource, data[dataIndex]);\n var tmp = new kendo.data.Query(events).filter({\n field: resource.field,\n operator: ui.SchedulerView.groupEqFilter(value)\n }).toArray();\n if (tmp.length) {\n var tasks = this._tasks(tmp);\n var className = parent ? '' : ' k-first';\n if (dataIndex === data.length - 1 && (!parent || parent.className.indexOf('k-last') > -1)) {\n className += ' k-last';\n }\n var obj = {\n text: kendo.getter(resource.dataTextField)(data[dataIndex]),\n value: value,\n rowSpan: 0,\n className: className\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 if (isPhoneView) {\n span += obj.items.length;\n }\n obj.rowSpan = span;\n if (parent) {\n parent.rowSpan += span;\n }\n }\n configuration.push(obj);\n }\n }\n return configuration;\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 if (cell.is('.k-task')) {\n cell = cell.closest('td');\n }\n if (this._isMobile()) {\n var parent = cell.parent();\n index = parent.parent().children().filter(function () {\n return $(this).children(':not(.k-scheduler-datecolumn)').length;\n }).index(parent);\n } else {\n index = cell.parent().index();\n }\n event = this._eventsList[index];\n return {\n index: index,\n start: event.start,\n end: event.end,\n isAllDay: event.isAllDay,\n uid: event.uid\n };\n },\n select: function (selection) {\n this.clearSelection();\n var row = this.table.find('.k-task').eq(selection.index).closest('tr').addClass('k-state-selected').attr('aria-selected', true)[0];\n this.current(row);\n },\n move: function (selection, key) {\n var handled = false;\n var index = selection.index;\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 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 return handled;\n },\n moveToEvent: function () {\n return false;\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 isInRange: function () {\n return true;\n },\n destroy: function () {\n if (this.element) {\n this.element.off(NS);\n }\n ui.SchedulerView.fn.destroy.call(this);\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 eventTemplate: '#:title#',\n eventTimeTemplate: '#if(data.isAllDay) {#' + '#=this.options.messages.allDay#' + '#} else { #' + '#=kendo.format(format, start, end)#' + '# } #',\n eventDateTemplate: '' + '#=kendo.toString(date, \"dd\")#' + '' + '' + '#=kendo.toString(date,\"dddd\")#' + '' + '' + '#=kendo.toString(date, \"y\")#' + '',\n eventGroupTemplate: '' + '#=value#' + '',\n messages: {\n event: 'Event',\n date: 'Date',\n time: 'Time',\n allDay: 'all day'\n }\n }\n });\n function rowSpan(tasks) {\n var result = 0;\n for (var idx = 0, length = tasks.length; idx < length; idx++) {\n result += tasks[idx].items.length;\n }\n return result;\n }\n function resourceValue(resource, item) {\n if (resource.valuePrimitive) {\n item = kendo.getter(resource.dataValueField)(item);\n }\n return item;\n }\n function flattenTaskGroups(groups) {\n var idx = 0, length = groups.length, item, result = [];\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 return result;\n }\n function flattenGroup(groups) {\n var items = [].concat(groups), item = items.shift(), result = [], 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 item = items.shift();\n }\n return result;\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/"}