@progress/kendo-ui
Version:
This package is part of the [Kendo UI for jQuery](http://www.telerik.com/kendo-ui) suite.
3 lines • 13.4 kB
JavaScript
/* @license */
(function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require(`kendo.scheduler.view.min.js`),require(`kendo.icons.min.js`)):typeof define==`function`&&define.amd?define([`exports`,`kendo.scheduler.view.min`,`kendo.icons.min`],t):(e=typeof globalThis<`u`?globalThis:e||self,t((e.kendo=e.kendo||{},e.kendo._globals=e.kendo._globals||{},e.kendo._globals.SchedulerAgendaview={}),e.kendo._globals.SchedulerView,e.kendo._globals.Icons))})(this,function(e,t,n){Object.defineProperties(e,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});let r={id:`scheduler.agendaview`,name:`Scheduler Agenda View`,category:`web`,description:`The Scheduler Agenda View`,depends:[`scheduler.view`,`icons`],hidden:!0};(function(e){var t=window.kendo,n=t.ui,r=t.htmlEncode,i=`.kendoAgendaView`,a=`role`,o=e=>`<div class="k-task" title="${r((e.title||``).replace(/"/g,`'`))}" ${t.attr(`uid`)}="${e.uid}">${e.resources[0]?`<span class="k-scheduler-mark" ${t.attr(`style-background-color`)}="${e.resources[0].color}"></span>`:``}${e.isException()?t.ui.icon(`arrows-no-repeat`):e.isRecurring()?t.ui.icon(`arrow-rotate-cw`):``}<span class="k-scheduler-task-text">${t.template(e.template)(e)}</span>${e.showDelete?`<a href="#" class="k-link k-event-delete" title="${e.messages.destroy}" aria-label="${e.messages.destroy}">${t.ui.icon(`x`)}</a>`:``}</div>`,s=({date:e})=>`<strong class="k-scheduler-agendaday">`+t.toString(e,`dd`)+`</strong><em class="k-scheduler-agendaweek">`+t.toString(e,`dddd`)+`</em><span class="k-scheduler-agendadate">`+t.toString(e,`y`)+`</span>`,c=({date:e})=>`<div class="k-scheduler-datecolumn-wrap"><span class="k-mobile-scheduler-agendadate"><span class="k-mobile-scheduler-agendaday">${t.toString(e,`dd`)}</span> <span class="k-mobile-scheduler-agendamonth">${t.toString(e,`MMMM`)}</span></span><span class="k-mobile-scheduler-agendaweekday">`+t.toString(e,`dddd`)+`</span></div>`,l=e=>e.isMobile?c(e):s(e),u=({isMobile:e,value:t})=>e?`<span class="k-scheduler-group-text">`+t+`</span>`:`<strong class="k-scheduler-adgendagroup">`+t+`</strong>`,d=t.Class.extend({init:function(e){this._view=e},_getColumns:function(e,t){return e.concat(t)},_getGroupsInDay:function(){return[]},_getSumOfItemsForDate:function(){return 0},_renderTaskGroupsCells:function(e,t,n,r){var i=this._view;n===0&&r===0&&t.length&&i._renderTaskGroupsCells(e,t)},_renderDateCell:function(e,n,r,i,a,o){var s=this._view,c=s._isMobile();e.push(t.format(`<td class="k-scheduler-datecolumn{3}{2}" rowspan="{0}">{1}</td>`,r.length,s._dateTemplate({date:i,isMobile:c}),n.length?``:` k-first`))},_renderDates:function(){},_getParents:function(e){return e.splice(0)},_getGroupsByDate:function(){},_renderTaskGroups:function(e,t,n){var r=this._view;e.append(r._renderTaskGroups(t,n))}}),f=t.Class.extend({init:function(e){this._view=e},_getColumns:function(e,t){if(this._view._isMobile())return e.concat(t);var n=t.slice(0,1),r=t.slice(1);return n.concat(e).concat(r)},_compareDateGroups:function(e,t,n){return e[n].text==t[n].text?n===0?!0:this._compareDateGroups(e,t,n-1):!1},_getGroupsInDay:function(e,t){for(var n=[],r=null,i=0;i<e.length;i++)for(var a=0;a<e[i].items.length;a++){var o=0;if(n.length===0)for(;o<t[i].length;o++)n.push([1]);else for(;o<t[i].length;o++)if(this._compareDateGroups(t[i],r,o))n[o][n[o].length-1]++;else{for(var s=n[o][n[o].length-1]-1,c=0;c<s;c++)n[o].push(0);n[o].push(1)}r=t[i]}return n},_getSumOfItemsForDate:function(e){for(var t=0,n=0;n<e.length;n++)t+=e[n].items.length;return t},_renderTaskGroupsCells:function(e,n,r,i,a,o,s,c){var l=this._view,u=l._isMobile();if(u)r===0&&i===0&&n.length&&l._renderTaskGroupsCells(e,n);else{r===0&&i===0&&e.push(t.format(`<td class="k-scheduler-datecolumn k-first" rowspan="{0}">{1}</td>`,o,l._dateTemplate({date:s,isMobile:u})));for(var d=0;d<n[r].length;d++)a[d][c]&&e.push(t.format(`<td class="k-scheduler-groupcolumn" rowspan="{0}">{1}</td>`,a[d][c],l._groupTemplate({value:n[r][d].text,isMobile:u}),n[r][d].className))}},_renderDateCell:function(){},_renderDates:function(e){for(var t=this._view,n=t._groupsByDate.sort(function(e,t){return e.array[0].value.getTime()-t.array[0].value.getTime()}),r=0;r<n.length;r++)e.append(t._renderTaskGroups(n[r].array,n[r].groups))},_getParents:function(e){return e.slice(0)},_getGroupsByDate:function(e,t,n){var r=this._view;if(e[t].items)for(var i=0;i<e[t].items.length;i++){for(var a=e[t].items[i].value,o=!1,s=0;s<r._groupsByDate.length;s++)r._groupsByDate[s].array[0].value.getTime()===a.getTime()&&(o=!0,r._groupsByDate[s].array.push(e[t].items[i]),r._groupsByDate[s].groups.push(n));o||r._groupsByDate.push({array:[e[t].items[i]],groups:[n]})}},_renderTaskGroups:function(){}});t.ui.scheduler.AgendaGroupedView=d,t.ui.scheduler.AgendaGroupedByDateView=f,n.AgendaView=n.SchedulerView.extend({init:function(r,a){n.SchedulerView.fn.init.call(this,r,a),this._groupedView=this._getGroupedView(),a=this.options,a.editable&&=e.extend({delete:!0},a.editable,{create:!1,update:!1},{messages:a.messages}),this.title=a.title,this._eventTemplate=t.template(o),this._dateTemplate=t.template(a.eventDateTemplate),this._groupTemplate=t.template(a.eventGroupTemplate),this._timeTemplate=t.template(a.eventTimeTemplate),this.element.on(`mouseenter`+i,`.k-scheduler-content tr`,`_mouseenter`).on(`mouseleave`+i,`.k-scheduler-content tr`,`_mouseleave`).on(`click`+i,`.k-scheduler-content .k-link:has(.k-i-x),.k-scheduler-content .k-link:has(.k-svg-i-x)`,`_remove`),this._renderLayout(a.date),this.refreshLayout()},name:`agenda`,_aria:function(){var e=this.table;e.attr(a,`grid`),e.children(`tbody`).attr(a,`none`),e.find(`table`).attr(a,`none`),e.find(`table > tbody`).attr(a,`rowgroup`),e.find(`table tr`).attr(a,`row`),e.find(`table td`).attr(a,`gridcell`),e.find(`.k-scheduler-header-wrap th`).attr(a,`columnheader`),e.find(`.k-scheduler-content .k-scheduler-datecolumn, .k-scheduler-content .k-scheduler-groupcolumn`).attr(a,`rowheader`)},clearSelection:function(){this.element.find(`.k-selected`).attr(`aria-selected`,!1),t.ui.SchedulerView.fn.clearSelection.call(this)},_isVirtualized:function(){return!1},_getGroupedView:function(){return this._isGroupedByDate()?new t.ui.scheduler.AgendaGroupedByDateView(this):new t.ui.scheduler.AgendaGroupedView(this)},_mouseenter:function(t){e(t.currentTarget).addClass(`k-hover`)},_mouseleave:function(t){e(t.currentTarget).removeClass(`k-hover`)},_remove:function(n){n.preventDefault(),this.trigger(`remove`,{uid:e(n.currentTarget).closest(`.k-task`).attr(t.attr(`uid`))})},nextDate:function(){return t.date.nextDay(this.startDate())},startDate:function(){return this._startDate},endDate:function(){return this._endDate},previousDate:function(){return t.date.previousDay(this.startDate())},_renderLayout:function(e){this._startDate=e,this._endDate=t.date.addDays(e,7),this.createLayout(this._layout()),this._footer()},_layout:function(){var e=[{text:this.options.messages.time,className:`k-scheduler-timecolumn`},{text:this.options.messages.event}];this._isMobile()||e.splice(0,0,{text:this.options.messages.date,className:`k-scheduler-datecolumn`});var t=this.groupedResources;if(t.length){for(var n=[],r=0;r<t.length;r++)n.push({text:``,className:`k-scheduler-groupcolumn`});e=this._groupedView._getColumns(n,e)}return{columns:e}},_tasks:function(e){for(var n=[],r=0;r<e.length;r++){var i=e[r],a=i.start,o=i.isAllDay?t.date.getDate(i.end):i.end,s=t.date.getDate(a),c=(s.getTimezoneOffset()-o.getTimezoneOffset())*6e4,l=Math.ceil((o-s+c)/t.date.MS_PER_DAY);i.isAllDay&&(l+=1);var u=i.clone();if(u.startDate=t.date.getDate(a),u.startDate>=this.startDate()&&n.push(u),l>1){u.end=t.date.nextDay(a),u.head=!0;for(var d=1;d<l;d++)a=u.end,u=i.clone(),u.start=u.startDate=t.date.getDate(a),u.end=t.date.nextDay(a),d==l-1?(u.end=new Date(u.start.getFullYear(),u.start.getMonth(),u.start.getDate(),o.getHours(),o.getMinutes(),o.getSeconds(),o.getMilliseconds()),u.tail=!0):(u.isAllDay=!0,u.middle=!0),(t.date.getDate(u.end)<=this.endDate()&&u.start>=this.startDate()||t.date.getDate(u.start).getTime()==this.endDate().getTime())&&n.push(u)}}return new t.data.Query(n).sort([{field:`start`,dir:`asc`},{field:`end`,dir:`asc`}]).groupBy({field:`startDate`}).toArray()},_renderTaskGroups:function(e,n){for(var r=[],i=this.options.editable,a=i&&i.destroy!==!1&&!this._isMobile(),o=this._isMobile(),s=this._groupedView._getSumOfItemsForDate(e),c=this._groupedView._getGroupsInDay(e,n),l=0,u=0;u<e.length;u++)for(var d=e[u].value,f=e[u].items,p=t.date.isToday(d),m=0;m<f.length;m++){var h=f[m],g=[],_=o?[]:g;this._groupedView._renderTaskGroupsCells(_,n,u,m,c,s,d,l),l++,m===0&&(o?(_.push(t.format(`<td class="k-scheduler-datecolumn {1}" colspan="2">{0}</td>`,this._dateTemplate({date:d,isMobile:o}),this.groupedResources.length?``:`k-first`)),r.push(`<tr role="row" aria-selected="false"`+(p?` class="k-today">`:`>`)+_.join(``)+`</tr>`)):this._groupedView._renderDateCell(g,n,f,d,u,e)),h.head?h.format=`{0:t}`:h.tail?h.format=`{1:t}`:h.format=`{0:t}-{1:t}`,h.resources=this.eventResources(h),g.push(t.format(`<td class="k-scheduler-timecolumn {4}"><div>{0}{1}{2}</div></td><td>{3}</td>`,h.tail||h.middle?t.ui.icon(`chevron-left`):``,this._timeTemplate(h.clone({start:h._startTime||h.start,end:h.endTime||h.end,messages:this.options.messages})),h.head||h.middle?t.ui.icon(`chevron-right`):``,this._eventTemplate(h.clone({showDelete:a,messages:this.options.messages,template:this.options.eventTemplate})),!this.groupedResources.length&&o?`k-first`:``)),r.push(`<tr role="row" aria-selected="false"`+(p?` class="k-today">`:`>`)+g.join(``)+`</tr>`)}return r.join(``)},_renderTaskGroupsCells:function(e,n){for(var r=this._isMobile(),i=0;i<n.length;i++)e.push(t.format(`<td class="k-scheduler-groupcolumn{2}" rowspan="{0}">{1}</td>`,n[i].rowSpan,this._groupTemplate({value:n[i].text,isMobile:r}),n[i].className))},render:function(n){var r=this.content.find(`table`).empty(),i=[];if(n.length>0){var a=this.groupedResources;if(r.append(e(`<tbody>`)),a.length)i=this._createGroupConfiguration(n,a,null),this._groupsByDate=[],this._renderGroups(i,r.find(`tbody`),[]),this._groupedView._renderDates(r.find(`tbody`));else{i=this._tasks(n);var o=e(this._renderTaskGroups(i,[]));t.applyStylesFromKendoAttributes(o,[`background-color`]),r.find(`tbody`).append(o)}}this._eventsList=h(i),this._aria(),this.refreshLayout(),this.trigger(`activate`)},_renderGroups:function(e,t,n){for(var r=0,i=e.length;r<i;r++){var a=this._groupedView._getParents(n);a.push(e[r]),this._groupedView._getGroupsByDate(e,r,a),e[r].groups?this._renderGroups(e[r].groups,t,a):this._groupedView._renderTaskGroups(t,e[r].items,a)}},_createGroupConfiguration:function(e,r,i){var a=r[0],o=[],s=a.dataSource.view(),c=this._isMobile();s=s.filter(function(e){var n=t.getter(a.dataParentValueField)(e);return n==null||i&&n===i.value});for(var l=0;l<s.length;l++){var u=m(a,s[l]),d=new t.data.Query(e).filter({field:a.field,operator:n.SchedulerView.groupEqFilter(u)}).toArray();if(d.length){var f=this._tasks(d),h=i?``:` k-first`,g={text:t.getter(a.dataTextField)(s[l]),value:u,rowSpan:0,className:h};if(r.length>1)g.groups=this._createGroupConfiguration(d,r.slice(1),g),i&&(i.rowSpan+=g.rowSpan);else{g.items=f;var _=p(g.items);c&&(_+=g.items.length),g.rowSpan=_,i&&(i.rowSpan+=_)}o.push(g)}}return o},_resourceBySlot:function(){return{}},selectionByElement:function(t){var n,r;if(t=e(t),!(t.hasClass(`k-scheduler-datecolumn`)||!this._eventsList.length)){if(t.is(`.k-task`)&&(t=t.closest(`td`)),this._isMobile()){var i=t.parent();n=i.parent().children().filter(function(){return e(this).children(`:not(.k-scheduler-datecolumn, .k-scheduler-groupcolumn)`).length}).index(i)}else n=t.parent().index();return r=this._eventsList[n],{index:n,start:r.start,end:r.end,isAllDay:r.isAllDay,uid:r.uid}}},select:function(e){this.clearSelection();var t=this.table.find(`.k-task`).eq(e.index).closest(`tr`).addClass(`k-selected`).attr(`aria-selected`,!0)[0];this.current(t)},move:function(e,n){var r=!1,i=e.index;if(n==t.keys.UP?(i--,r=!0):n==t.keys.DOWN&&(i++,r=!0),r){var a=this._eventsList[i];a&&(e.start=a.start,e.end=a.end,e.isAllDay=a.isAllDay,e.events=[a.uid],e.index=i)}return r},moveToEvent:function(){return!1},constrainSelection:function(e){var t=this._eventsList[0];t&&(e.start=t.start,e.end=t.end,e.isAllDay=t.isAllDay,e.events=[t.uid],e.index=0)},isInRange:function(){return!0},destroy:function(){this.element&&this.element.off(i),n.SchedulerView.fn.destroy.call(this)},options:{title:`Agenda`,name:`agenda`,editable:!0,selectedDateFormat:`{0:D}-{1:D}`,selectedShortDateFormat:`{0:d} - {1:d}`,selectedMobileDateFormat:`{0: MMM} {0:dd} - {1:dd}`,eventTemplate:({title:e})=>r(e),eventTimeTemplate:({isAllDay:e,messages:n,format:r,start:i,end:a})=>e?n.allDay:t.format(r,i,a),eventDateTemplate:l,eventGroupTemplate:u,messages:{event:`Event`,date:`Date`,time:`Time`,allDay:`all day`}}});function p(e){for(var t=0,n=0,r=e.length;n<r;n++)t+=e[n].items.length;return t}function m(e,n){return e.valuePrimitive&&(n=t.getter(e.dataValueField)(n)),n}function h(e){for(var t=0,n=e.length,r,i=[];t<n;t++)r=e[t],r.groups?(r=g(r.groups),i=i.concat(r)):i=i.concat(g(r.items));return i}function g(e){for(var t=[].concat(e),n=t.shift(),r=[],i=[].push;n;)n.groups?i.apply(t,n.groups):n.items?i.apply(t,n.items):i.call(r,n),n=t.shift();return r}})(window.kendo.jQuery);var i=kendo;e.__meta__=r,e.default=i});
//# sourceMappingURL=kendo.scheduler.agendaview.min.js.map