UNPKG

@progress/kendo-ui

Version:

This package is part of the [Kendo UI for jQuery](http://www.telerik.com/kendo-ui) suite.

3 lines (2 loc) 8.35 kB
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("kendo.scheduler.view.js"),require("kendo.multiviewcalendar.js"),require("kendo.tooltip.js")):"function"==typeof define&&define.amd?define(["exports","kendo.scheduler.view","kendo.multiviewcalendar","kendo.tooltip"],t):t(((e="undefined"!=typeof globalThis?globalThis:e||self).kendo=e.kendo||{},e.kendo._globals=e.kendo._globals||{},e.kendo._globals.SchedulerYearview={}))}(this,(function(e){!function(e){var t=window.kendo,n=t.ui,a=t.htmlEncode,i=n.SchedulerView,o=e.extend,l=t.template,r=t.date.firstDayOfYear,s=t.date.firstDayOfMonth,d=t.date.lastDayOfMonth,c="navigate",u="keydown",p="click",v="focus",f=".kendoYearView",h={layout:"k-scheduler-layout k-scheduler-layout-flex k-scheduler-yearview",body:"k-scheduler-body",tooltip:"k-scheduler-tooltip",indicator:"k-day-indicator",event:"k-tooltip-event",hidden:"k-hidden",calendarView:"k-calendar-view",scheduler:"k-scheduler"},y=l((({date:e,events:n,messages:i})=>`<div class='k-tooltip-title k-text-center'><div class='k-month'>${a(t.format("{0:MMM}",e))}</div><div tabindex='0' class='k-link k-day k-text-primary'>${a(t.format("{0:dd}",e))}</div></div>`+(n.length?"<div class='k-tooltip-events-container'><div class='k-tooltip-events'>"+n.map((e=>`<div class="k-tooltip-event k-event" title="${a(e.title)}" ${e.resources[0]?`${t.attr("style-background-color")}="${a(e.resources[0].color)}" ${t.attr("style-border-color")}="${a(e.resources[0].color)}"`:""}><div class='k-event-title k-text-ellipsis'>${a(e.title)}</div><span class='k-spacer'></span><span class='k-event-time'>${a(t.format("{0:t}",e.start))}</span></div>`)).join("")+"</div></div>":`<div class='k-no-data k-text-center'>${a(i.noData)}</div>`))),_=i.extend({init:function(e,t){var n=this;i.fn.init.call(n,e,t),n._yearRange(),n._templates(),n._layout(),n._initCalendar(),n._initTooltip()},options:{title:"Year",name:"year",months:12,startDate:null,messages:{noData:"No events on this date."},selectedDateFormat:"{0:yyyy}",selectedShortDateFormat:"{0:yyyy}",selectedMobileDateFormat:"{0:yyyy}",tooltipTemplate:y},name:"year",events:[c],_yearRange:function(){var e,t=this,n=t.options;t._startDate=n.startDate?s(n.startDate):r(n.date),t._startDate.setFullYear(n.date.getFullYear()),(e=new Date(t._startDate)).setMonth(e.getMonth()+n.months),t._endDate=e},_templates:function(){var e=this.options,n=o({},t.Template,e.templateSettings);this.tooltipTemplate=t.template(e.tooltipTemplate,n)},_layout:function(){var t=this,n=h;t.content=e("<div/>").addClass(n.layout),t.element.append(t.content),t.body=e("<div/>").addClass(n.body),t.content.append(t.body)},_initCalendar:function(){var t,a,i=this,o=i.options,l=e("<div/>");i.body.append(l),i.calendar=t=new n.MultiViewCalendar(l,{views:o.months,value:i.startDate(),showViewHeader:!0,footer:!1}),a=t.element,o.selectable||i._disableCalendarSelection(),t.value(null),t.header.toggleClass(h.hidden),a.on(p+f,"td[role='gridcell']",i._calendarCellClick.bind(i)),a.on(u+f,"."+h.calendarView,i._calendarKeydown.bind(i)),t.bind(c,i._calendarNavigate.bind(i))},_calendarCellClick:function(e){var t=this.calendar.selectable.value().first();e.preventDefault(),e.stopPropagation(),this._displayTooltip(t)},_calendarKeydown:function(e){var n=t.keys,a=e.keyCode;a!=n.ENTER&&a!=n.SPACEBAR||(e.preventDefault(),this._displayTooltip(this.calendar.selectable.value().first()))},_calendarNavigate:function(e){var t=this,n=e.sender._firstViewValue<t.startDate()?t.previousDate():t.nextDate();t.trigger(c,{view:"year",date:n}),t._focusCellOnNavigate()},_focusCellOnNavigate:function(){var e,t=this,n=t.calendar||t.element.find(".k-calendar").getKendoMultiViewCalendar();n&&(e=n._firstViewValue<t.startDate()?t.lastDateInRange():t.nextDate(),n._focusCell(n._cellByDate(e),!0))},_disableCalendarSelection:function(){var e=this;e.calendar&&(e.calendar.value(null),e.calendar.element.off(u,e.calendar._move))},_initTooltip:function(){var e=this,a=e.content,i=e._buildTooltipTemplate.bind(e);e.tooltip=new n.Tooltip(a,{filter:".k-calendar td[role='gridcell']",showOn:p,position:"right",content:i,width:220,show:()=>setTimeout((()=>t.applyStylesFromKendoAttributes(e.tooltip.popup.element,["background-color","border-color"])))}),e._initTooltipPopup(),e.tooltip.bind("show",e._tooltipShow.bind(e)),e.tooltip.bind("hide",e._tooltipHide.bind(e))},_initTooltipPopup:function(){var e=this,t=e.tooltip;e.tooltip&&(t._initPopup(),t.popup.element.addClass(h.tooltip),t.popup.element.on(p+f,".k-tooltip-title > .k-day",e._tooltipTitleClick.bind(e)),t.popup.element.on(u+f,e,e._tooltipKeydown.bind(e)))},_buildTooltipTemplate:function(){var e=this,n=t.parseDate(e.calendar.current()),a=e.eventsByDate||[];return(a=a.filter((function(e){return t.toString(new Date(e.value),"d")==t.toString(n,"d")})))&&a[0]&&a[0].items.map((function(t){t.resources=e.eventResources(t)||[]})),e.tooltipTemplate({date:n,events:a[0]?a[0].items:[],messages:e.options.messages})},_inverseTooltipEventsColor:function(){var t=this;e.each(t.tooltip.popup.element.find("."+h.event),(function(){t._inverseEventColor(e(this))}))},_tooltipShow:function(e){var t=e.sender;t.refresh(),this._inverseTooltipEventsColor(),t.popup.element.find(":kendoFocusable").first().trigger(v)},_tooltipHide:function(){var e=this.calendar;e&&e.focus()},_tooltipTitleClick:function(){this._navigateToDayView()},_tooltipKeydown:function(n){var a=this.tooltip.popup.element,i=e(n.target),o=t.keys,l=n.keyCode,r=n.shiftKey;if((i.is(".k-day")&&l==o.ENTER||l==o.SPACEBAR)&&(n.preventDefault(),this._navigateToDayView()),l==o.TAB){var s=a.find(":kendoFocusable").first(),d=a.find(":kendoFocusable").last();r&&i.is(s)?(d.trigger(v),n.preventDefault()):i.is(d)&&(s.trigger(v),n.preventDefault())}},_navigateToDayView:function(){e.grep(this.options.views,(function(t){return e.isPlainObject(t)&&"kendo.ui.DayView"==t.type||"day"===t})).length&&this.trigger(c,{view:"day",date:this.calendar.current()})},_displayTooltip:function(e){var t=this;e.length&&(t.options.selectable||e.removeClass("k-selected"),setTimeout((function(){t.tooltip.show(e)}),50))},_renderEventIndicators:function(){var t,n,a=this.calendar;a.element.find("."+h.indicator).remove(),this.eventsByDate.forEach((function(i){t=a._currentView.toDateString(new Date(i.value)),n=a.element[0].querySelector("[data-value='"+t+"']"),i.items.length&&e("<span/>").addClass(h.indicator).appendTo(n)}))},_groupEventsByDate:function(e){var n;return e.length?(n=e.map((function(e){return e.formattedDate=e.start.toDateString(),e})),new t.data.Query(n).sort([{field:"start",dir:"asc"},{field:"end",dir:"desc"}]).group({field:"formattedDate"}).toArray()):[]},_resourceBySlot:function(){return{}},lastDateInRange:function(){var e=new Date(this.previousDate());return e.setMonth(e.getMonth()-1+this.options.months),d(e)},nextDate:function(){return t.date.nextYear(this._startDate)},previousDate:function(){return t.date.previousYear(this._startDate)},startDate:function(){return this._startDate},endDate:function(){return this._endDate},moveToEvent:function(){return!1},constrainSelection:function(){return!1},inRange:function(){return!0},select:function(e){this.clearSelection(),e.start>=this.startDate()&&e.start<this.endDate()?this.calendar.value(e.start):(this.calendar.value(this.calendar._firstViewValue),e.start=e.end=this.calendar.value()),this.current(this.calendar.selectable.value()[0])},selectionByElement:function(n){if(n.length)return n=e(n),{index:this.calendar._index,start:t.calendar.toDateObject(n),end:t.calendar.toDateObject(n),isAllDay:!1,uid:0}},current:function(e){if(undefined===e)return this._current;this._current=e},render:function(e){var t=this;t._cachedEvents=e,t.eventsByDate=t._groupEventsByDate(e)||[],t._renderEventIndicators(),t.trigger("activate")},destroy:function(){var e=this;e.tooltip&&(e.tooltip.destroy(),e.tooltip=null),e.calendar&&(e.calendar.destroy(),e.calendar=null),e.element&&(e.content.remove(),e.element.off(f)),i.fn.destroy.call(this)}});o(!0,n,{YearView:_})}(window.kendo.jQuery);var t=kendo;e.__meta__={id:"scheduler.yearview",name:"Scheduler Year View",category:"web",description:"The Scheduler Year View",depends:["scheduler.view","multiviewcalendar","tooltip"],hidden:!0},e.default=t,Object.defineProperty(e,"__esModule",{value:!0})})); //# sourceMappingURL=kendo.scheduler.yearview.min.js.map