{"version":3,"file":"kendo.scheduler.yearview.min.js","names":["global","factory","exports","module","require","define","amd","globalThis","self","kendoscheduler","yearview","js","this","$","undefined$1","kendo","window","ui","encode","htmlEncode","SchedulerView","extend","template","firstDayOfYear","date","firstDayOfMonth","lastDayOfMonth","NAVIGATE","KEYDOWN","CLICK","FOCUS","NS","YearViewStyles","layout","body","tooltip","indicator","event","hidden","calendarView","scheduler","TOOLTIP_TEMPLATE","ref","events","messages","format","length","map","title","resources","attr","color","start","join","noData","YearView","init","element","options","that","fn","call","_yearRange","_templates","_layout","_initCalendar","_initTooltip","name","months","startDate","selectedDateFormat","selectedShortDateFormat","selectedMobileDateFormat","tooltipTemplate","tempEnd","_startDate","setFullYear","getFullYear","Date","setMonth","getMonth","_endDate","settings","Template","templateSettings","styles","content","addClass","append","calendar","calEl","calendarElement","MultiViewCalendar","views","value","showViewHeader","footer","selectable","_disableCalendarSelection","header","toggleClass","on","_calendarCellClick","bind","_calendarKeydown","_calendarNavigate","ev","target","first","preventDefault","stopPropagation","_displayTooltip","keys","keyCode","ENTER","SPACEBAR","navigationDate","sender","_firstViewValue","previousDate","nextDate","trigger","view","_focusCellOnNavigate","focusDate","find","getKendoMultiViewCalendar","lastDateInRange","_focusCell","_cellByDate","off","_move","tooltipElement","_buildTooltipTemplate","Tooltip","filter","showOn","position","width","show","setTimeout","applyStylesFromKendoAttributes","popup","_initTooltipPopup","_tooltipShow","_tooltipHide","_initPopup","_tooltipTitleClick","_tooltipKeydown","parseDate","current","data","eventsByDate","dateData","toString","items","eventResources","_inverseTooltipEventsColor","each","_inverseEventColor","refresh","focus","_navigateToDayView","shiftKey","is","TAB","firstFocusable","lastFocusable","last","grep","isPlainObject","type","removeClass","_renderEventIndicators","cell","remove","forEach","_currentView","toDateString","querySelector","appendTo","_groupEventsByDate","eventsFormatted","formattedDate","Query","sort","field","dir","group","toArray","_resourceBySlot","end","nextYear","previousYear","endDate","moveToEvent","constrainSelection","inRange","select","selection","clearSelection","selectionByElement","index","_index","toDateObject","isAllDay","uid","candidate","_current","render","_cachedEvents","destroy","jQuery"],"sources":["kendo.scheduler.yearview.js"],"mappings":"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","sourcesContent":["(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('kendo.scheduler.view.js'), require('kendo.multiviewcalendar.js'), require('kendo.tooltip.js')) :\n typeof define === 'function' && define.amd ? define(['kendo.scheduler.view', 'kendo.multiviewcalendar', 'kendo.tooltip'], factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, (global.kendoscheduler = global.kendoscheduler || {}, global.kendoscheduler.yearview = global.kendoscheduler.yearview || {}, global.kendoscheduler.yearview.js = factory()));\n})(this, (function () {\n var __meta__ = {\n id: \"scheduler.yearview\",\n name: \"Scheduler Year View\",\n category: \"web\",\n description: \"The Scheduler Year View\",\n depends: [ \"scheduler.view\", \"multiviewcalendar\", \"tooltip\" ],\n hidden: true\n };\n\n (function($, undefined$1) {\n var kendo = window.kendo,\n ui = kendo.ui,\n encode = kendo.htmlEncode,\n SchedulerView = ui.SchedulerView,\n extend = $.extend,\n template = kendo.template,\n firstDayOfYear = kendo.date.firstDayOfYear,\n firstDayOfMonth = kendo.date.firstDayOfMonth,\n lastDayOfMonth = kendo.date.lastDayOfMonth,\n DAY = \"day\",\n NAVIGATE = \"navigate\",\n KEYDOWN = \"keydown\",\n ACTIVATE = \"activate\",\n SHOW = \"show\",\n HIDE = \"hide\",\n CLICK = \"click\",\n FOCUS = \"focus\",\n DOT = \".\",\n NS = \".kendoYearView\";\n\n var YearViewStyles = {\n layout: \"k-scheduler-layout k-scheduler-layout-flex k-scheduler-yearview\",\n body: \"k-scheduler-body\",\n tooltip: \"k-scheduler-tooltip\",\n indicator: \"k-day-indicator\",\n event: \"k-tooltip-event\",\n hidden: \"k-hidden\",\n calendarView: \"k-calendar-view\",\n scheduler: \"k-scheduler\"\n };\n\n var TOOLTIP_TEMPLATE = template(function (ref) {\n var date = ref.date;\n var events = ref.events;\n var messages = ref.messages;\n\n return \"
\" +\n \"
\" + (encode(kendo.format('{0:MMM}', date))) + \"
\" +\n \"\" +\n \"
\" +\n (events.length ?\n \"
\" +\n \"
\" +\n events.map(function (event) { return \"
\" +\n \"
\" + (encode(event.title)) + \"
\" +\n \"\" +\n \"\" + (encode(kendo.format('{0:t}', event.start))) + \"\" +\n \"
\"; }\n ).join('') +\n \"
\" +\n \"
\" :\n (\"
\" + (encode(messages.noData)) + \"
\"));\n }\n );\n\n var YearView = SchedulerView.extend({\n init: function(element, options) {\n var that = this;\n\n SchedulerView.fn.init.call(that, element, options);\n\n that._yearRange();\n\n that._templates();\n\n that._layout();\n\n that._initCalendar();\n\n that._initTooltip();\n },\n\n options: {\n title: \"Year\",\n name: \"year\",\n months: 12,\n startDate: null,\n messages: {\n noData: \"No events on this date.\"\n },\n selectedDateFormat: \"{0:yyyy}\",\n selectedShortDateFormat: \"{0:yyyy}\",\n selectedMobileDateFormat: \"{0:yyyy}\",\n tooltipTemplate: TOOLTIP_TEMPLATE\n },\n\n name: \"year\",\n\n events: [ NAVIGATE ],\n\n _yearRange: function() {\n var that = this,\n options = that.options,\n tempEnd;\n\n that._startDate = options.startDate ? firstDayOfMonth(options.startDate) : firstDayOfYear(options.date);\n that._startDate.setFullYear(options.date.getFullYear());\n\n tempEnd = new Date(that._startDate);\n tempEnd.setMonth(tempEnd.getMonth() + options.months);\n that._endDate = tempEnd;\n },\n\n _templates: function() {\n var options = this.options,\n settings = extend({}, kendo.Template, options.templateSettings);\n\n this.tooltipTemplate = kendo.template(options.tooltipTemplate, settings);\n },\n\n _layout: function() {\n var that = this,\n styles = YearViewStyles;\n\n that.content = $(\"
\").addClass(styles.layout);\n that.element.append(that.content);\n\n that.body = $(\"
\").addClass(styles.body);\n that.content.append(that.body);\n },\n\n _initCalendar: function() {\n var that = this,\n options = that.options,\n calendarElement = $(\"
\"),\n calendar, calEl;\n\n that.body.append(calendarElement);\n\n that.calendar = calendar = new ui.MultiViewCalendar(calendarElement, {\n views: options.months,\n value: that.startDate(),\n showViewHeader: true,\n footer: false\n });\n\n calEl = calendar.element;\n\n if (!options.selectable) {\n that._disableCalendarSelection();\n }\n\n calendar.value(null);\n\n calendar.header.toggleClass(YearViewStyles.hidden);\n\n calEl.on(CLICK + NS, \"td[role='gridcell']\", that._calendarCellClick.bind(that));\n calEl.on(KEYDOWN + NS, DOT + YearViewStyles.calendarView, that._calendarKeydown.bind(that));\n calendar.bind(NAVIGATE, that._calendarNavigate.bind(that));\n },\n\n _calendarCellClick: function(ev) {\n var that = this,\n target = that.calendar.selectable.value().first();\n\n ev.preventDefault();\n ev.stopPropagation();\n\n that._displayTooltip(target);\n },\n\n _calendarKeydown: function(ev) {\n var that = this,\n keys = kendo.keys,\n keyCode = ev.keyCode;\n\n if (keyCode == keys.ENTER || keyCode == keys.SPACEBAR) {\n ev.preventDefault();\n\n that._displayTooltip(that.calendar.selectable.value().first());\n }\n },\n\n _calendarNavigate: function(ev) {\n var that = this,\n calendar = ev.sender,\n isPrevious = calendar._firstViewValue < that.startDate(),\n navigationDate = isPrevious ? that.previousDate() : that.nextDate();\n\n that.trigger(NAVIGATE, { view: \"year\", date: navigationDate });\n\n that._focusCellOnNavigate();\n },\n\n _focusCellOnNavigate: function() {\n var that = this,\n calendar = that.calendar || that.element.find(\".k-calendar\").getKendoMultiViewCalendar(),\n isPrevious,\n focusDate;\n\n if (!calendar) {\n return;\n }\n\n isPrevious = calendar._firstViewValue < that.startDate();\n focusDate = isPrevious ? that.lastDateInRange() : that.nextDate();\n calendar._focusCell(calendar._cellByDate(focusDate), true);\n },\n\n _disableCalendarSelection: function() {\n var that = this;\n\n if (!that.calendar) {\n return;\n }\n\n that.calendar.value(null);\n that.calendar.element.off(KEYDOWN, that.calendar._move);\n },\n\n _initTooltip: function() {\n var that = this,\n tooltipElement = that.content,\n tooltipTemplate = that._buildTooltipTemplate.bind(that);\n\n that.tooltip = new ui.Tooltip(tooltipElement, {\n filter: \".k-calendar td[role='gridcell']\",\n showOn: CLICK,\n position: \"right\",\n content: tooltipTemplate,\n width: 220,\n show: function () { return setTimeout(function () { return kendo.applyStylesFromKendoAttributes(that.tooltip.popup.element, [\"background-color\", \"border-color\"]); }); }\n });\n\n that._initTooltipPopup();\n\n that.tooltip.bind(SHOW, that._tooltipShow.bind(that));\n\n that.tooltip.bind(HIDE, that._tooltipHide.bind(that));\n },\n\n _initTooltipPopup: function() {\n var that = this,\n tooltip = that.tooltip;\n\n if (!that.tooltip) {\n return;\n }\n\n tooltip._initPopup();\n\n tooltip.popup.element.addClass(YearViewStyles.tooltip);\n\n tooltip.popup.element.on(CLICK + NS, \".k-tooltip-title > .k-day\", that._tooltipTitleClick.bind(that));\n\n tooltip.popup.element.on(KEYDOWN + NS, that, that._tooltipKeydown.bind(that));\n },\n\n _buildTooltipTemplate: function() {\n var that = this,\n date = kendo.parseDate(that.calendar.current()),\n data = that.eventsByDate || [];\n\n data = data.filter(function(dateData) {\n return kendo.toString(new Date(dateData.value), \"d\") == kendo.toString(date, \"d\");\n });\n\n if (data && data[0]) {\n data[0].items.map(function(event) {\n event.resources = that.eventResources(event) || [];\n });\n }\n\n return that.tooltipTemplate({\n date: date,\n events: data[0] ? data[0].items : [],\n messages: that.options.messages\n });\n },\n\n _inverseTooltipEventsColor: function() {\n var that = this;\n\n $.each(that.tooltip.popup.element.find(DOT + YearViewStyles.event), function() {\n that._inverseEventColor($(this));\n });\n },\n\n _tooltipShow: function(ev) {\n var that = this,\n tooltip = ev.sender;\n\n tooltip.refresh();\n\n that._inverseTooltipEventsColor();\n\n tooltip.popup.element.find(\":kendoFocusable\").first().trigger(FOCUS);\n },\n\n _tooltipHide: function() {\n var calendar = this.calendar;\n\n if (!calendar) {\n return;\n }\n\n calendar.focus();\n },\n\n _tooltipTitleClick: function() {\n this._navigateToDayView();\n },\n\n _tooltipKeydown: function(ev) {\n var that = this,\n element = that.tooltip.popup.element,\n target = $(ev.target),\n keys = kendo.keys,\n keyCode = ev.keyCode,\n shiftKey = ev.shiftKey;\n\n if (target.is(\".k-day\") && keyCode == keys.ENTER || keyCode == keys.SPACEBAR) {\n ev.preventDefault();\n\n that._navigateToDayView();\n }\n\n if (keyCode == keys.TAB) {\n var firstFocusable = element.find(\":kendoFocusable\").first();\n var lastFocusable = element.find(\":kendoFocusable\").last();\n\n if (shiftKey && target.is(firstFocusable)) {\n lastFocusable.trigger(FOCUS);\n ev.preventDefault();\n } else if (target.is(lastFocusable)) {\n firstFocusable.trigger(FOCUS);\n ev.preventDefault();\n }\n }\n },\n\n _navigateToDayView: function() {\n var dayViewEnabled = $.grep(this.options.views, function(view) {\n return ($.isPlainObject(view) && view.type == \"kendo.ui.DayView\") || view === DAY;\n }).length;\n\n if (dayViewEnabled) {\n this.trigger(NAVIGATE, { view: DAY, date: this.calendar.current() });\n }\n },\n\n _displayTooltip: function(target) {\n var that = this;\n\n if (!target.length) {\n return;\n }\n\n if (!that.options.selectable) {\n target.removeClass(\"k-selected\");\n }\n\n setTimeout(function() {\n that.tooltip.show(target);\n }, 50);\n },\n\n _renderEventIndicators: function() {\n var that = this,\n calendar = that.calendar,\n current,\n cell;\n\n calendar.element.find(\".\" + YearViewStyles.indicator).remove();\n\n that.eventsByDate.forEach(function(date) {\n current = calendar._currentView.toDateString(new Date(date.value));\n cell = calendar.element[0].querySelector(\"[data-value='\" + current + \"']\");\n\n if (date.items.length) {\n $(\"\").addClass(YearViewStyles.indicator).appendTo(cell);\n }\n });\n },\n\n _groupEventsByDate: function(events) {\n var eventsByDate = [],\n eventsFormatted;\n\n if (!events.length) {\n return [];\n }\n\n eventsFormatted = events.map(function(event) {\n event.formattedDate = event.start.toDateString();\n return event;\n });\n\n eventsByDate = new kendo.data.Query(eventsFormatted)\n .sort([\n { field: \"start\", dir: \"asc\" },\n { field: \"end\", dir: \"desc\" }\n ])\n .group({\n field: \"formattedDate\"\n })\n .toArray();\n\n return eventsByDate;\n },\n\n _resourceBySlot: function() {\n return {};\n },\n\n lastDateInRange: function() {\n var end = new Date(this.previousDate());\n\n end.setMonth((end.getMonth() - 1) + this.options.months);\n\n return lastDayOfMonth(end);\n },\n\n nextDate: function() {\n return kendo.date.nextYear(this._startDate);\n },\n\n previousDate: function() {\n return kendo.date.previousYear(this._startDate);\n },\n\n startDate: function() {\n return this._startDate;\n },\n\n endDate: function() {\n return this._endDate;\n },\n\n moveToEvent: function() {\n return false;\n },\n\n constrainSelection: function() {\n return false;\n },\n\n inRange: function() {\n return true;\n },\n\n select: function(selection) {\n this.clearSelection();\n\n if (selection.start >= this.startDate() && selection.start < this.endDate()) {\n this.calendar.value(selection.start);\n } else {\n this.calendar.value(this.calendar._firstViewValue);\n selection.start = selection.end = this.calendar.value();\n }\n\n this.current(this.calendar.selectable.value()[0]);\n },\n\n selectionByElement: function(cell) {\n if (!cell.length) {\n return;\n }\n\n cell = $(cell);\n\n return {\n index: this.calendar._index,\n start: kendo.calendar.toDateObject(cell),\n end: kendo.calendar.toDateObject(cell),\n isAllDay: false,\n uid: 0\n };\n },\n\n current: function(candidate) {\n if (candidate !== undefined$1) {\n this._current = candidate;\n } else {\n return this._current;\n }\n },\n\n render: function(events) {\n var that = this;\n\n that._cachedEvents = events;\n\n that.eventsByDate = that._groupEventsByDate(events) || [];\n\n that._renderEventIndicators();\n\n that.trigger(ACTIVATE);\n },\n\n destroy: function() {\n var that = this;\n\n if (that.tooltip) {\n that.tooltip.destroy();\n that.tooltip = null;\n }\n\n if (that.calendar) {\n that.calendar.destroy();\n that.calendar = null;\n }\n\n if (that.element) {\n that.content.remove();\n that.element.off(NS);\n }\n\n SchedulerView.fn.destroy.call(this);\n }\n });\n\n extend(true, ui, {\n YearView: YearView\n });\n\n })(window.kendo.jQuery);\n var kendo$1 = kendo;\n\n return kendo$1;\n\n}));\n"]}