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) 48.4 kB
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("kendo.dom.js"),require("kendo.touch.js"),require("kendo.draganddrop.js"),require("kendo.icons.js")):"function"==typeof define&&define.amd?define(["exports","kendo.dom","kendo.touch","kendo.draganddrop","kendo.icons"],e):e(((t="undefined"!=typeof globalThis?globalThis:t||self).kendo=t.kendo||{},t.kendo._globals=t.kendo._globals||{},t.kendo._globals.GanttTimeline={}))}(this,(function(t){!function(t){var e=kendo.ui.Widget,s=kendo.dom.element,n=kendo.dom.text,a=kendo.dom.html,i=t.isPlainObject,r=kendo._outerWidth,o=kendo._outerHeight,d=t.extend,l=!1,h=kendo.keys,p=kendo.data.Query,c=".kendoGanttTimeline",u="click",k="mousemove",f="mouseenter",g="mouseleave",m=".",_=({start:t})=>kendo.toString(t,"ddd M/dd"),v=({start:t,end:e})=>`${kendo.toString(t,"ddd M/dd")} - ${kendo.toString(kendo.date.addDays(e,-1),"ddd M/dd")}`,y=({start:t})=>kendo.toString(t,"MMM"),w=({styles:t,messages:e,start:s,end:n,format:a})=>`<div class="${t.tooltipWrapper} k-gantt-resize-hint"><div class="${t.tooltipContent}"><div>${kendo.htmlEncode(e.start)}: ${kendo.toString(s,a)}</div><div>${kendo.htmlEncode(e.end)}: ${kendo.toString(n,a)}</div></div></div>`,T=({styles:t,task:e,messages:s})=>`<div class="${kendo.htmlEncode(t.taskDetails)}"><strong>${kendo.htmlEncode(e.title)}</strong><div class="${t.taskDetailsPercent}">${kendo.toString(e.percentComplete,"p0")}</div><ul class="${t.reset}"><li>${kendo.htmlEncode(s.start)}: ${kendo.toString(e.start,"h:mm tt ddd, MMM d")}</li><li>${kendo.htmlEncode(s.end)}: ${kendo.toString(e.end,"h:mm tt ddd, MMM d")}</li></ul></div>`,D=`<table ${kendo.attr("style-visibility")}="hidden"><tbody><tr ${kendo.attr("style-height")}="{0}"><td>&nbsp;</td></tr></tbody></table>`,b={day:{type:"kendo.ui.GanttDayView"},week:{type:"kendo.ui.GanttWeekView"},month:{type:"kendo.ui.GanttMonthView"},year:{type:"kendo.ui.GanttYearView"}};function H(){var e=kendo._activeElement();e&&"body"!==e.nodeName.toLowerCase()&&t(e).trigger("blur")}var W=kendo.ui.GanttView=e.extend({init:function(t,s){e.fn.init.call(this,t,s),this.title=this.options.title||this.options.name,this.header=this.element.find(m+W.styles.gridHeader),this.content=this.element.find(m+W.styles.gridContent),this.contentWidth=this.content.width(),this._workDays=function(t){var e=[],s=t.workWeekStart;for(e.push(s);t.workWeekEnd!=s;)s>6?s-=7:s++,e.push(s);return e}(this.options),this._headerTree=s.headerTree,this._taskTree=s.taskTree,this._taskTemplate=s.taskTemplate?kendo.template(s.taskTemplate,d({},kendo.Template,s.templateSettings)):null,this._dependencyTree=s.dependencyTree,this._taskCoordinates={},this._currentTime()},destroy:function(){e.fn.destroy.call(this),clearTimeout(this._tooltipTimeout),this.headerRow=null,this.header=null,this.content=null,this._dragHint=null,this._resizeHint=null,this._resizeTooltip=null,this._taskTooltip=null,this._percentCompleteResizeTooltip=null,this._headerTree=null,this._taskTree=null,this._dependencyTree=null},options:{showWorkHours:!1,showWorkDays:!1,workDayStart:new Date(1980,1,1,8,0,0),workDayEnd:new Date(1980,1,1,17,0,0),workWeekStart:1,workWeekEnd:5,hourSpan:1,slotSize:100,currentTimeMarker:{updateInterval:1e4}},renderLayout:function(){this._slots=this._createSlots(),this._tableWidth=this._calculateTableWidth(),this.createLayout(this._layout()),this._slotDimensions(),this._adjustHeight(),this.content.find(m+W.styles.dependenciesWrapper).width(this._tableWidth)},_adjustHeight:function(){this.content&&this.content.height(this.element.height()-o(this.header))},createLayout:function(t){var e=this._headers(t),n=this._colgroup(),a=this._headerTree,i=s("tbody",{className:W.styles.tbody},e),r=s("table",{className:W.styles.headerTable,style:{width:this._tableWidth+"px"},role:"presentation"},[n,i]);a.render([r]),this.headerRow=this.header.find("table").first().find("tr").last()},_slotDimensions:function(){for(var t,e,s=this.headerRow[0].children,n=this._timeSlots(),a=0,i=s.length;a<i;a++)e=s[a],(t=n[a]).offsetLeft=e.offsetLeft,t.offsetWidth=e.offsetWidth},render:function(t){var e,s,n=t.length,a=W.styles,i=this._rowsTable(n),r=this._columnsTable(n),o=this._tasksTable(t),d=this.options.currentTimeMarker,l=this.options.calculatedSize;this._taskTree.render([i,r,o]),e=this.content.find(m+a.rowsTable),l&&(s=l.row*t.length,this.content.find(m+a.tasksTable).height(s),e.height(s)),this._contentHeight=e.height(),this._rowHeight=l?l.row:this._contentHeight/e.find("tr").length,this.content.find(m+a.columnsTable).height(this._contentHeight),!1!==d&&void 0!==d.updateInterval&&this._renderCurrentTime()},_rowsTable:function(t){for(var e,a=[],i=W.styles,r=[{className:i.tableRow},{className:i.alt}],o=0;o<t;o++)e=s("tr",r[o%2],[s("td",{className:i.tableCell},[n(" ")])]),a.push(e);return this._createTable(1,a,{className:i.rowsTable+" k-grid-table "+i.table})},_columnsTable:function(){for(var t,e,a,i,r=[],o=W.styles,d=this._timeSlots(),l=d.length,h=0,p=0;p<l;p++)e=d[p],i={className:o.tableCell},h+=a=e.span,1!==a&&(i.colspan=a),e.isNonWorking&&(i.className+=" "+o.nonWorking),r.push(s("td",i,[n(" ")]));return t=s("tr",{className:o.tableRow},r),this._createTable(h,[t],{className:o.columnsTable+" "+o.table})},_tasksTable:function(t){for(var e,n,a,i,r,o,d,h,p,c,u,k=[],f=W.styles,g=this._taskCoordinates={},m=this._calculateMilestoneWidth(),_=Math.round(m.width),v=this.options.resourcesField,y=[f.resource,f.resourceAlt],w=this.options.calculatedSize,T=this._calculateResourcesMargin(),D=this._calculateTaskBorderWidth(),b=this.options.showPlannedTasks,H=[{className:f.tableRow},{className:f.alt}],M=0,x=t.length;M<x;M++)r=t[M],a=this._taskPosition(r),b&&((i=this._taskPositionPlanned(r)).borderWidth=D),a.borderWidth=D,e=s("tr",H[M%2]),n=s("td",{className:f.tableCell}),r.start<=this.end&&r.end>=this.start&&(h=this._renderTask(t[M],a,i),this.options.navigatable&&(h.children[0].attr.tabIndex=M?-1:0),n.children.push(h),r[v]&&r[v].length&&(o=l?this._tableWidth-a.left:Math.max(a.width||m.clientWidth,0)+a.left,(d={width:this._tableWidth-(o+T)+"px"})[l?"right":"left"]=o+"px",w&&(d.height=w.cell+"px"),n.children.push(s("div",{className:f.resourcesWrap,style:d},this._renderResources(r[v],y[M%2])))),p=M,c=void 0,u=void 0,u=(c=a.left)+a.width,r.isMilestone()&&(u=(c-=_/2)+_),g[r.id]={start:c,end:u,rowIndex:p}),e.children.push(n),k.push(e);return this._createTable(1,k,{className:W.styles.tasksTable+" "+f.table})},_createTable:function(t,e,n){for(var a,i,r=[],o=0;o<t;o++)r.push(s("col"));return a=s("colgroup",null,r),i=s("tbody",{className:W.styles.tbody},e),n.style||(n.style={}),n.style.width=this._tableWidth+"px",n.role="presentation",s("table",n,[a,i])},_calculateTableWidth:function(){for(var t,e=this._timeSlots(),s=0,n=0,a=0,i=e.length;a<i;a++)n+=t=e[a].span,t>s&&(s=t);return Math.round(n*this.options.slotSize/s)},_calculateMilestoneWidth:function(){var e,s,n=W.styles.task+" "+W.styles.taskMilestone,a=t(`<div class="${n}">`).css({visibility:"hidden",position:"absolute"});return this.content.append(a),e={width:(s=a[0].getBoundingClientRect()).right-s.left,clientWidth:a[0].clientWidth},a.remove(),e},_calculateResourcesMargin:function(){var e,s=t(`<div class="${W.styles.resourcesWrap}">`).css({visibility:"hidden",position:"absolute"});return this.content.append(s),e=parseInt(s.css(l?"margin-right":"margin-left"),10),s.remove(),e},_calculateTaskBorderWidth:function(){var e,s,n=W.styles.task+" "+W.styles.taskSingle,a=t(`<div class="${n}">`).css({visibility:"hidden",position:"absolute"});return this.content.append(a),s=kendo.getComputedStyles(a[0],["border-left-width"]),e=parseFloat(s["border-left-width"],10),a.remove(),e},_renderTask:function(e,n,a){var i,r,o,d,h,p,c,u,k=this.options.editable,f=n.left,g=W.styles,m=g.taskWrap,_=this.options.calculatedSize,v={},y={className:m,style:{left:f+"px"}},w=[],T=0,D=n.width;return _&&(y.style.height=_.cell+"px"),a&&(d=e.isMilestone()?this._renderPlannedMilestone(n,a):this._renderPlannedSingleTask(n,a,e),w.push(d),l&&a.left<=n.left&&(y.style.left=a.left+"px")),e.summary?(r=this._renderSummary(e,n,a),y.className+=" "+g.taskSummaryWrap):e.isMilestone()?(r=this._renderMilestone(e,n),y.className+=" "+g.taskMilestoneWrap):r=this._renderSingleTask(e,n,a),a&&!e.isMilestone()&&e.plannedStart<e.end&&e.plannedEnd>e.start&&e.plannedEnd<e.end?(D=l?n.left+n.width-a.left:a.left+a.width-n.left,u=l?a.left-n.left:n.left+n.width-(a.left+a.width),c=s("div",{className:g.taskOffset,style:{width:u-2*a.borderWidth+"px"}}),k&&!1!==k.resize&&!1!==k.update&&!e.summary&&(!1!==k.destroy&&c.children.push(s("span",{className:g.taskActions,"aria-hidden":"true"},[s("a",{className:g.link+" "+g.taskDelete,href:"#","aria-label":"Delete"},[s(t(kendo.ui.icon(g.iconDelete))[0])])])),l?c.children.push(s("span",{className:g.taskResizeHandle+" "+g.taskResizeHandleWest,style:{right:n.width-5+"px"}})):c.children.push(s("span",{className:g.taskResizeHandle+" "+g.taskResizeHandleEast}))),p=s("div",{className:g.taskOffsetWrap+" "+g.taskInnerWrap},[r,c]),w.push(p)):a?w.push(s("div",{className:g.taskInnerWrap},[r])):w.push(r),i=s("div",y,w),k&&!1!==k.dependencyCreate&&(a&&e.plannedEnd>e.end&&(T=a.left+a.width-n.left-n.width-3+"px"),i.children.push(s("div",{className:g.taskDot+" "+g.taskDotStart})),l&&(T="auto",a&&e.plannedEnd>e.end&&(h=n.left-a.left+"px")),i.children.push(s("div",{className:g.taskDot+" "+g.taskDotEnd,style:{right:T,left:h}}))),e.summary||e.isMilestone()||!k||!1===k.dragPercentComplete||!1===k.update||null!==this._taskTemplate||(o=Math.round(D*e.percentComplete),v[l?"right":"left"]=o+"px",i.children.push(s("div",{className:g.taskDragHandle,style:v}))),i},_renderSingleTask:function(e,i,r){var o,d,h=W.styles,p=[],c=this.options.editable,u=h.task+" "+h.taskSingle,k=i.width;r&&(e.plannedEnd&&e.plannedEnd<=e.start?u+=" "+h.taskDelayed:e.plannedEnd&&e.plannedEnd>e.end?u+=" "+h.taskAdvanced:e.plannedEnd&&e.plannedEnd<e.end&&(l?k=k+i.left-r.left:k-=i.left+i.width-r.left-r.width)),o=Math.round(k*e.percentComplete),null!==this._taskTemplate?d=a(this._taskTemplate(e)):(d=n(e.title),p.push(s("div",{className:h.taskComplete,style:{width:o+"px"},"aria-hidden":"true"})));var f=s("div",{className:h.taskContent},[s("div",{className:h.taskTemplate},[d])]);return p.push(f),c&&(!1!==c.destroy&&(!r||!e.plannedEnd||e.end<=e.plannedEnd||e.start>=e.plannedEnd)&&f.children.push(s("span",{className:h.taskActions,"aria-hidden":"true"},[s("a",{className:h.link+" "+h.taskDelete,href:"#","aria-label":"Delete"},[s(t(kendo.ui.icon(h.iconDelete))[0])])])),!1!==c.resize&&!1!==c.update&&(f.children.push(s("span",{className:h.taskResizeHandle+" "+h.taskResizeHandleWest})),f.children.push(s("span",{className:h.taskResizeHandle+" "+h.taskResizeHandleEast})))),s("div",{className:u,"data-uid":e.uid,role:"treeitem",style:{width:Math.max(k-2*i.borderWidth,0)+"px"}},p)},_renderMilestone:function(t){var e=W.styles,n=e.task+" "+e.taskMilestone;return this.options.showPlannedTasks&&t.plannedEnd&&t.plannedEnd<t.start?n+=" "+e.taskDelayed:t.plannedStart&&t.plannedStart>t.end&&(n+=" "+e.taskAdvanced),s("div",{className:n,"data-uid":t.uid,role:"treeitem","aria-label":t.title})},_renderSummary:function(t,e,n){var a,i=W.styles,r=e.width,o=i.task+" "+i.taskSummary;return n&&(t.plannedEnd&&t.plannedEnd<=t.start?o+=" "+i.taskDelayed:t.plannedEnd&&t.plannedEnd>t.end?o+=" "+i.taskAdvanced:t.plannedEnd&&t.plannedEnd<t.end&&(l?r=r+e.left-n.left:r-=e.left+e.width-n.left-n.width)),a=Math.round(r*t.percentComplete),s("div",{className:o,"data-uid":t.uid,role:"treeitem","aria-label":t.title,style:{width:r+"px"}},[s("div",{className:i.taskSummaryProgress,style:{width:a+"px"}},[s("div",{className:i.taskSummaryComplete,style:{width:e.width+"px"}})])])},_renderPlannedSingleTask:function(t,e,n){var a=W.styles,i=[],r={};return n.plannedStart&&n.plannedEnd?(i.push(s("div",{className:a.taskPlannedMoment+" "+a.taskPlannedMomentLeft})),i.push(s("div",{className:a.taskPlannedDuration,style:{width:Math.max(e.width-2*e.borderWidth-16,0)+"px"}})),i.push(s("div",{className:a.taskPlannedMoment}))):n.plannedStart?i.push(s("div",{className:a.taskPlannedMoment+" "+a.taskPlannedMomentLeft})):n.plannedEnd&&i.push(s("div",{className:a.taskPlannedMoment,style:{"margin-left":Math.max(e.width-5,0)+"px"}})),r=l?{"margin-right":t.left-e.left+t.width-e.width+"px"}:{"margin-left":e.left-t.left+"px"},s("div",{className:a.taskPlanned,style:r},i)},_renderPlannedMilestone:function(t,e){var n=W.styles,a={};return a=l?{"margin-right":t.left-e.left+"px"}:{"margin-left":e.left-t.left+"px"},s("div",{className:n.taskPlanned,style:a},[s("div",{className:n.taskPlannedMoment})])},_renderResources:function(t,e){for(var a,i=[],r=0,o=t.length;r<o;r++)a=t[r],i.push(s("span",{className:e,style:{color:a.get("color")}},[n(a.get("name"))]));return l&&i.reverse(),i},_taskPosition:function(t){var e=Math.round,s=e(this._offset(l?t.end:t.start));return{left:s,width:e(this._offset(l?t.start:t.end))-s}},_taskPositionPlanned:function(t){var e=Math.round,s=e(this._offset(l?t.plannedEnd:t.plannedStart));return{left:s,width:e(this._offset(l?t.plannedStart:t.plannedEnd))-s}},_offset:function(t){var e,s=this._timeSlots(),n=0;return s.length?((e=s[this._slotIndex("start",t)]).end<t?n=e.offsetWidth:e.start<=t&&(n=(t-e.start)/(e.end-e.start)*e.offsetWidth),l&&(n=e.offsetWidth+1-n),e.offsetLeft+n):0},_slotIndex:function(t,e,s){var n,a=this._timeSlots(),i=0,r=a.length-1;s&&(a=[].slice.call(a).reverse());do{a[n=Math.ceil((r+i)/2)][t]<e?i=n:(n===r&&n--,r=n)}while(i!==r);return s&&(i=a.length-1-i),i},_timeByPosition:function(t,e,s){var n=this._slotByPosition(t);if(e)return s?n.end:n.start;var a=t-this.element.find(m+W.styles.tasksTable).offset().left,i=n.end-n.start,r=a-n.offsetLeft;return l&&(r=n.offsetWidth-r),new Date(n.start.getTime()+i*(r/n.offsetWidth))},_slotByPosition:function(t){var e=t-this.element.find(m+W.styles.tasksTable).offset().left,s=this._slotIndex("offsetLeft",e,l);return this._timeSlots()[s]},_renderDependencies:function(t){for(var e=[],s=this._dependencyTree,n=0,a=t.length;n<a;n++)e.push.apply(e,this._renderDependency(t[n]));s.render(e)},_renderDependency:function(t){var e,s=this._taskCoordinates[t.predecessorId],n=this._taskCoordinates[t.successorId];if(!s||!n)return[];for(var a=0,i=(e=this["_render"+["FF","FS","SF","SS"][l?3-t.type:t.type]](s,n)).length;a<i;a++)e[a].attr["data-uid"]=t.uid;return e},_renderFF:function(t,e){var s=this._dependencyFF(t,e,!1);return s[s.length-1].children[0]=this._arrow(!0),s},_renderSS:function(t,e){var s=this._dependencyFF(e,t,!0);return s[0].children[0]=this._arrow(!1),s.reverse()},_renderFS:function(t,e){var s=this._dependencyFS(t,e,!1);return s[s.length-1].children[0]=this._arrow(!1),s},_renderSF:function(t,e){var s=this._dependencyFS(e,t,!0);return s[0].children[0]=this._arrow(!0),s.reverse()},_dependencyFF:function(t,e,s){var n,a=this,i=[],r=0,o=0,d=0,l=0,h=s?"start":"end",p=this._rowHeight,c=t.rowIndex*p+Math.floor(p/2)-1,u=e.rowIndex*p+Math.floor(p/2)-1,k=W.styles,f=function(){i.push(a._line(k.line+" "+k.lineHorizontal,{left:r+"px",top:o+"px",width:d+"px"}))},g=function(){i.push(a._line(k.line+" "+k.lineVertical,{left:r+"px",top:o+"px",height:l+"px"}))};return r=t[h],o=c,d=10,(n=e[h]-t[h])>0!==s&&(d=Math.abs(n)+10),s?(r-=d,d-=1,f()):(f(),r+=d-2),u<o?(l=o-u,l+=2,o=u,g()):(l=u-o,l+=2,g(),o+=l-2),d=Math.abs(r-e[h]),s||(r-=d-=1),f(),i},_dependencyFS:function(t,e,s){var n=this,a=[],i=0,r=0,o=0,d=0,l=this._rowHeight,h=Math.floor(l/2),p=e.start-t.end,c=t.rowIndex*l+Math.floor(l/2)-1,u=e.rowIndex*l+Math.floor(l/2)-1,k=W.styles,f=function(){a.push(n._line(k.line+" "+k.lineHorizontal,{left:i+"px",top:r+"px",width:o+"px"}))},g=function(){a.push(n._line(k.line+" "+k.lineVertical,{left:i+"px",top:r+"px",height:d+"px"}))};return i=t.end,r=c,o=10,s&&(i+=1,p>20&&(o=p-8),o-=1),f(),i+=o-2,p<=20&&(d=s?Math.abs(u-c)-h:h,u<c?(r-=d,d+=2,g()):(g(),r+=d),(o=t.end-e.start+20)<10&&(o=10),i-=o-2,f()),u<c?(d=r-u,r=u,d+=2,g()):(d=u-r,g(),r+=d),o=e.start-i,s||(o-=1),f(),a},_line:function(t,e){return s("div",{className:t,style:e})},_arrow:function(t){return s("span",{className:t?W.styles.arrowWest:W.styles.arrowEast})},_colgroup:function(){for(var t=this._timeSlots(),e=t.length,n=[],a=0;a<e;a++)for(var i=0,r=t[a].span;i<r;i++)n.push(s("col"));return s("colgroup",null,n)},_createDragHint:function(t){var e,s=W.styles;this._dragHint=t.clone().addClass(s.dragHint).css({cursor:"move"}),(e=this._dragHint.find(m+s.taskPlanned)).css({visibility:"hidden"}),l&&t.find(m+s.taskAdvanced).length>0&&(e.css({"margin-right":"auto",width:0}),this._dragHint.find(m+s.taskDotEnd).css({left:0})),t.closest("td").append(this._dragHint)},_updateDragHint:function(t){var e=this._offset(t);this._dragHint.css({left:e})},_removeDragHint:function(){this._dragHint.remove(),this._dragHint=null},_createResizeHint:function(e){var s,n=W.styles,a=this._taskCoordinates[e.id].rowIndex*this._rowHeight,i=this.options,d=i.messages;this._resizeHint=t((({styles:t})=>`<div class="${t.marquee}"><div class="${t.marqueeColor}"></div></div>`)({styles:n})).css({top:0,height:this._contentHeight}),this.content.append(this._resizeHint),this._resizeTooltip=t(w({styles:n,start:e.start,end:e.end,messages:d.views,format:i.resizeTooltipFormat})).css({"z-index":"100002",top:0,left:0}),this.content.append(this._resizeTooltip),this._resizeTooltipWidth=r(this._resizeTooltip),(s=a-o(this._resizeTooltip))<0&&(s=a+this._rowHeight),this._resizeTooltipTop=s},_updateResizeHint:function(e,s,n){var a=this._offset(l?s:e),i=this._offset(l?e:s),r=i-a,o=n!==l?a:i,d=this._tableWidth-kendo.support.scrollbar(),h=this._resizeTooltipWidth,p=this.options,c=p.messages,u=this.element.find(m+W.styles.tasksTable).offset().left-this.element.find(m+W.styles.tasksWrapper).offset().left;l&&(a+=u),this._resizeHint.css({left:a,width:r}),this._resizeTooltip&&this._resizeTooltip.remove(),(o-=Math.round(h/2))<0?o=0:o+h>d&&(o=d-h),l&&(o+=u),this._resizeTooltip=t(w({styles:W.styles,start:e,end:s,messages:c.views,format:p.resizeTooltipFormat})).css({"z-index":"100002",top:this._resizeTooltipTop,left:o,"min-width":h}).appendTo(this.content)},_removeResizeHint:function(){this._resizeHint.remove(),this._resizeHint=null,this._resizeTooltip.remove(),this._resizeTooltip=null},_updatePercentCompleteTooltip:function(e,s,n){this._removePercentCompleteTooltip();var a=this._percentCompleteResizeTooltip=t((({styles:t,text:e})=>`<div ${kendo.attr("style-z-index")}="100002" class="${t.tooltipWrapper}" ><div class="${t.tooltipContent}">${e}%</div><div class="${t.tooltipCallout}" ${kendo.attr("style-left")}="13px"></div></div>`)({styles:W.styles,text:n}));kendo.applyStylesFromKendoAttributes(a,["z-index","left"]),a.appendTo(this.element);var i=Math.round(r(a)/2),d=a.find(m+W.styles.callout),l=Math.round(r(d)/2);a.css({top:e-(o(a)+l),left:s-i}),d.css("left",i-l)},_removePercentCompleteTooltip:function(){this._percentCompleteResizeTooltip&&this._percentCompleteResizeTooltip.remove(),this._percentCompleteResizeTooltip=null},_updateDependencyDragHint:function(t,e){this._removeDependencyDragHint(),this._creteDependencyDragHint(t,e)},_creteDependencyDragHint:function(e,s){var n=W.styles,a=s.x-e.x,i=s.y-e.y,r=Math.sqrt(a*a+i*i),o=Math.atan(i/a);a<0&&(o+=Math.PI),t("<div class='"+n.line+" "+n.lineHorizontal+" "+n.dependencyHint+"'></div>").css({top:e.y,left:e.x,width:r,"transform-origin":"0% 0","-ms-transform-origin":"0% 0","-webkit-transform-origin":"0% 0",transform:"rotate("+o+"rad)","-ms-transform":"rotate("+o+"rad)","-webkit-transform":"rotate("+o+"rad)"}).appendTo(this.content)},_removeDependencyDragHint:function(){this.content.find(m+W.styles.dependencyHint).remove()},_createTaskTooltip:function(e,s,n){var a=W.styles,i=this.options,r=this.content,d=r.offset(),h=kendo.scrollLeft(r),p=t(s).parents("tr").first(),c=p.offset(),u=i.tooltip&&i.tooltip.template?kendo.template(i.tooltip.template):T,k=l?n-(d.left+h+kendo.support.scrollbar()):n-(d.left-h),f=c.top+o(p)-d.top+r.scrollTop(),g=this._taskTooltip=t('<div class="'+a.tooltipWrapper+'" ><div class="'+a.taskContent+'"></div></div>');g.css({"z-index":"100002",left:k,top:f}).appendTo(r).find(m+a.taskContent).append(u({styles:a,task:e,messages:i.messages.views})),this._adjustTooltipDimensions(g,c,d,k,h)},_removeTaskTooltip:function(){this._taskTooltip&&this._taskTooltip.remove(),this._taskTooltip=null},_createOffsetTooltip:function(e,s,n){var a,i=W.styles,r=this.content,d=r.offset(),h=kendo.scrollLeft(r),p=s.parents("tr").first(),c=p.offset(),u=l?n-(d.left+h+kendo.support.scrollbar()):n-(d.left-h),k=c.top+o(p)-d.top+r.scrollTop(),f=this._offsetTooltip=t('<div class="'+i.tooltipWrapper+'" ></div>'),g=Math.round((e.end.getTime()-e.plannedEnd.getTime())/6e4),m=this.options.messages.plannedTasks,_=g%60,v=_+" "+m.minutes;g>=60&&(v=(a=g=Math.floor(g/60))+" "+m.hours,0!==_&&(v+=" "+_+" "+m.minutes),g>=24&&(a=g%24,v=(g=Math.floor(g/24))+" "+m.days,0!==a&&(v+=" "+a+" "+m.hours))),f.css({"z-index":"100002",left:u,top:k}).addClass(i.offsetTooltipDelay).appendTo(r).append((({offsetPrefix:t,offsetText:e})=>`<span>${t}: ${e}</span>`)({offsetPrefix:m.offsetTooltipDelay,offsetText:v})),this._adjustTooltipDimensions(f,c,d,u,h)},_removeOffsetTooltip:function(){this._offsetTooltip&&this._offsetTooltip.remove(),this._offsetTooltip=null},_createPlannedTooltip:function(e,s,n){var a=W.styles,i=this.content,r=i.offset(),d=kendo.scrollLeft(i),h=s.parents("tr").first(),p=h.offset(),c=l?n-(r.left+d+kendo.support.scrollbar()):n-(r.left-d),u=p.top+o(h)-r.top+i.scrollTop(),k=this._plannedTooltip=t('<div class="'+a.tooltipWrapper+" "+a.plannedTooltip+'" ></div>'),f=this.options.messages.editor;k.css({"z-index":"100002",left:c,top:u}).appendTo(i).append((({plannedStart:t,plannedEnd:e,startDate:s,endDate:n})=>`<div class="k-task-content"><div>${t}: ${s}</div><div>${e}: ${n}</div></div>`)({plannedStart:f.plannedStart,startDate:kendo.toString(e.plannedStart,"H:mm tt ddd, MMM dd"),plannedEnd:f.plannedEnd,endDate:kendo.toString(e.plannedEnd,"H:mm tt ddd, MMM dd")})),this._adjustTooltipDimensions(k,p,r,c,d)},_removePlannedTooltip:function(){this._plannedTooltip&&this._plannedTooltip.remove(),this._plannedTooltip=null},_adjustTooltipDimensions:function(t,e,s,n,a){var i,d=this.content,l=d.width();o(t)<e.top-s.top&&t.css("top",e.top-s.top-o(t)+d.scrollTop()),(i=r(t))+n-a>l&&((n-=i)<a&&(n=a+l-(i+17)),t.css("left",n))},_scrollTo:function(t){var e=t.offset().left,s=t.width(),n=e+s,a=t.closest("tr"),i=a.offset().top,r=i+a.height(),o=this.content,d=o.offset(),l=d.top,h=l+o.height(),p=d.left,c=o.width(),u=p+c,k=kendo.support.scrollbar();i<l?o.scrollTop(o.scrollTop()+(i-l)):r>h&&o.scrollTop(o.scrollTop()+(r+k-h)),e<p&&s>c&&n<u||n>u&&s<c?kendo.scrollLeft(o,kendo.scrollLeft(o)+(n+k-u)):(n>u&&s>c&&e>p||e<p&&s<c)&&kendo.scrollLeft(o,kendo.scrollLeft(o)+(e-p))},_scrollToDate:function(t){var e,s=this.start,n=this.end;t>=s&&t<n&&(e=this._offset(t),kendo.support.isRtl(this.element)&&(e=this._tableWidth-e),kendo.scrollLeft(this.content,e))},_timeSlots:function(){return this._slots&&this._slots.length?this._slots[this._slots.length-1]:[]},_headers:function(t){for(var e,n,i,r,o=[],d=W.styles,l=0,h=t.length;l<h;l++){n=[];for(var p=0,c=(e=t[l]).length;p<c;p++)i=e[p],r=a(i.text),n.push(s("td",{colspan:i.span,className:d.header+(i.isNonWorking?" "+d.nonWorking:"")},[r]));o.push(s("tr",{className:d.tableRow},n))}return o},_hours:function(t,e){var s,n,a,i=[],r=this.options,o=r.workDayStart.getHours(),d=r.workDayEnd.getHours(),l=r.hourSpan;for(t=new Date(t),e=new Date(e),r.showWorkHours&&t.setHours(o);t<e;)n=(a=(s=new Date(t)).getHours())>=o&&a<d,s.setHours(s.getHours()+l),a==s.getHours()&&s.setHours(s.getHours()+2*l),r.showWorkHours&&!n||i.push({start:t,end:s,isNonWorking:!n,span:1}),t=s;return i},_days:function(t,e){var s,n,a=[];for(t=new Date(t),e=new Date(e);t<e;)s=e<kendo.date.nextDay(t)?e:kendo.date.nextDay(t),n=this._isWorkDay(t),this.options.showWorkDays&&!n||a.push({start:t,end:s,isNonWorking:!n,span:1}),t=s;return a},_weeks:function(t,e){var s,n,a,i=[],r=this.calendarInfo().firstDay;for(t=new Date(t),e=new Date(e);t<e;)(s=kendo.date.dayOfWeek(kendo.date.addDays(t,1),r,1))>e&&(s=e),(a=(n=this._days(t,s)).length)>0&&i.push({start:n[0].start,end:n[a-1].end,span:a}),t=s;return i},_months:function(t,e){var s,n,a,i,r=[];for(t=new Date(t),e=new Date(e);t<e;)s=new Date(t),n=kendo.date.firstDayOfMonth(new Date(s.setMonth(s.getMonth()+1))),s=e<n?e:n,(i=(a=this._days(t,s)).length)>0&&r.push({start:a[0].start,end:a[i-1].end,span:i}),t=s;return r},_years:function(t,e){var s,n,a=[];for(t=new Date(t),e=new Date(e);t<e;)s=new Date(t),(s=kendo.date.firstDayOfMonth(new Date(s.setMonth(12))))>=e&&(s=e),n=(s.getMonth()||12)-t.getMonth(),a.push({start:t,end:s,span:n}),t=s;return a},_slotHeaders:function(t,e){for(var s,n=[],a=0,i=t.length;a<i;a++)s=t[a],n.push({text:e(s),isNonWorking:!!s.isNonWorking,span:s.span});return n},_isWorkDay:function(t){for(var e=t.getDay(),s=this._workDays,n=0,a=s.length;n<a;n++)if(s[n]===e)return!0;return!1},calendarInfo:function(){return kendo.getCulture().calendars.standard},_renderCurrentTime:function(){var e,s=this._getCurrentTime(),n=this._offset(s),a=t("<div class='k-current-time'></div>"),i=W.styles,r=this.element.find(m+i.tasksWrapper),o=this.element.find(m+i.tasksTable);this.content&&this._timeSlots().length&&(this.content.find(".k-current-time").remove(),s<(e=this._timeSlots()[this._slotIndex("start",s)]).start||s>e.end||(r.length&&o.length&&(n+=o.offset().left-r.offset().left),a.css({left:n+"px",top:"0px",width:"1px",height:this._contentHeight+"px"}).appendTo(this.content)))},_getCurrentTime:function(){return new Date},_currentTime:function(){var t=this.options.currentTimeMarker;!1!==t&&void 0!==t.updateInterval&&(this._renderCurrentTime(),this._currentTimeUpdateTimer=setInterval(this._renderCurrentTime.bind(this),t.updateInterval))}});d(!0,W,{styles:{alt:"k-alt k-table-row k-table-alt-row",reset:"k-reset",nonWorking:"k-nonwork-hour",header:"k-header k-table-td",gridHeader:"k-grid-header",gridHeaderWrap:"k-grid-header-wrap",gridContent:"k-grid-content",tasksWrapper:"k-gantt-tables",rowsTable:"k-gantt-rows",columnsTable:"k-gantt-columns",tasksTable:"k-gantt-tasks",dependenciesWrapper:"k-gantt-dependencies",resource:"k-resource",resourceAlt:"k-resource k-alt",headerTable:"k-grid-header-table k-table k-table-md",table:"k-table k-table-md",tbody:"k-table-tbody",tableRow:"k-table-row",tableCell:"k-table-td",task:"k-task",taskSingle:"k-task-single",taskMilestone:"k-task-milestone",taskSummary:"k-task-summary",taskWrap:"k-task-wrap",taskMilestoneWrap:"k-milestone-wrap",taskSummaryWrap:"k-summary-wrap",taskPlanned:"k-task-planned",taskPlannedMoment:"k-task-moment",taskPlannedDuration:"k-task-duration",taskPlannedMomentLeft:"k-moment-left",taskAdvanced:"k-task-advanced",taskDelayed:"k-task-delayed",taskOffset:"k-task-offset",taskOffsetWrap:"k-task-offset-wrap",taskInnerWrap:"k-task-inner-wrap",resourcesWrap:"k-resources-wrap",taskDot:"k-task-dot",taskDotStart:"k-task-start",taskDotEnd:"k-task-end",taskDragHandle:"k-task-draghandle",taskContent:"k-task-content",taskTemplate:"k-task-template",taskActions:"k-task-actions",taskDelete:"k-task-delete",taskComplete:"k-task-complete",taskDetails:"k-task-details",taskDetailsPercent:"k-task-pct",link:"k-link",iconDelete:"x",taskResizeHandle:"k-resize-handle",taskResizeHandleWest:"k-resize-w",taskResizeHandleEast:"k-resize-e",taskSummaryProgress:"k-task-summary-progress",taskSummaryComplete:"k-task-summary-complete",line:"k-gantt-line",lineHorizontal:"k-gantt-line-h",lineVertical:"k-gantt-line-v",arrowWest:"k-arrow-w",arrowEast:"k-arrow-e",dragHint:"k-drag-hint",dependencyHint:"k-gantt-dependency-hint",tooltipWrapper:"k-tooltip",tooltipContent:"k-tooltip-content",tooltipCallout:"k-callout k-callout-s",callout:"k-callout",marquee:"k-marquee k-gantt-marquee",marqueeColor:"k-marquee-color",offsetTooltipAdvanced:"k-offset-tooltip-advanced",offsetTooltipDelay:"k-offset-tooltip-delayed",plannedTooltip:"k-planned-tooltip"}}),kendo.ui.GanttDayView=W.extend({name:"day",options:{timeHeaderTemplate:({start:t})=>kendo.toString(t,"t"),dayHeaderTemplate:_,resizeTooltipFormat:"h:mm tt ddd, MMM d"},range:function(t){var e=this.options.range;this.start=kendo.date.getDate(t.start),this.end=kendo.date.getDate(t.end),(kendo.date.getMilliseconds(t.end)>0||this.end.getTime()===this.start.getTime())&&(this.end=kendo.date.addDays(this.end,1)),e&&e.start&&(this.start=kendo.date.getDate(e.start),this.start.setHours(e.start.getHours())),e&&e.end&&(this.end=kendo.date.getDate(e.end),this.end.setHours(e.end.getHours()))},_createSlots:function(){var t,e,s,n,a=[];s=[];for(var i=0,r=(t=this._days(this.start,this.end)).length;i<r;i++)e=t[i],n=this._hours(e.start,e.end),e.span=n.length,s.push.apply(s,n);return a.push(t),a.push(s),a},_layout:function(){var t=[],e=this.options;return t.push(this._slotHeaders(this._slots[0],kendo.template(e.dayHeaderTemplate))),t.push(this._slotHeaders(this._slots[1],kendo.template(e.timeHeaderTemplate))),t}}),kendo.ui.GanttWeekView=W.extend({name:"week",options:{dayHeaderTemplate:_,weekHeaderTemplate:v,resizeTooltipFormat:"h:mm tt ddd, MMM d"},range:function(t){var e,s=this.options.range,n=this.calendarInfo().firstDay,a=t.end;n===a.getDay()&&a.setDate(a.getDate()+7),this.start=kendo.date.getDate(kendo.date.dayOfWeek(t.start,n,-1)),this.end=kendo.date.getDate(kendo.date.dayOfWeek(a,n,1)),s&&s.start&&(this.start=kendo.date.getDate(s.start)),s&&s.end&&(e=new Date(s.end),kendo.date.getDate(e)<s.end?this.end=kendo.date.getDate(new Date(e.setDate(e.getDate()+1))):this.end=kendo.date.getDate(e))},_createSlots:function(){var t=[];return t.push(this._weeks(this.start,this.end)),t.push(this._days(this.start,this.end)),t},_layout:function(){var t=[],e=this.options;return t.push(this._slotHeaders(this._slots[0],kendo.template(e.weekHeaderTemplate))),t.push(this._slotHeaders(this._slots[1],kendo.template(e.dayHeaderTemplate))),t}}),kendo.ui.GanttMonthView=W.extend({name:"month",options:{weekHeaderTemplate:v,monthHeaderTemplate:y,resizeTooltipFormat:"dddd, MMM d, yyyy"},range:function(t){var e,s=this.options.range;this.start=kendo.date.firstDayOfMonth(t.start),this.end=kendo.date.addDays(kendo.date.getDate(kendo.date.lastDayOfMonth(t.end)),1),s&&s.start&&(this.start=kendo.date.getDate(s.start)),s&&s.end&&(e=new Date(s.end),kendo.date.getDate(e)<s.end?this.end=kendo.date.getDate(new Date(e.setDate(e.getDate()+1))):this.end=kendo.date.getDate(e))},_createSlots:function(){var t=[];return t.push(this._months(this.start,this.end)),t.push(this._weeks(this.start,this.end)),t},_layout:function(){var t=[],e=this.options;return t.push(this._slotHeaders(this._slots[0],kendo.template(e.monthHeaderTemplate))),t.push(this._slotHeaders(this._slots[1],kendo.template(e.weekHeaderTemplate))),t}}),kendo.ui.GanttYearView=W.extend({name:"year",options:{yearHeaderTemplate:({start:t})=>kendo.toString(t,"yyyy"),monthHeaderTemplate:y,resizeTooltipFormat:"dddd, MMM d, yyyy"},range:function(t){var e,s=this.options.range;this.start=kendo.date.firstDayOfMonth(new Date(t.start.setMonth(0))),this.end=kendo.date.firstDayOfMonth(new Date(t.end.setMonth(12))),s&&s.start&&(this.start=kendo.date.firstDayOfMonth(s.start)),s&&s.end&&(e=kendo.date.firstDayOfMonth(s.end),this.end=kendo.date.getDate(new Date(e.setMonth(e.getMonth()+1))))},_createSlots:function(){var e=[],s=this._months(this.start,this.end);return t(s).each((function(t,e){e.span=1})),e.push(this._years(this.start,this.end)),e.push(s),e},_layout:function(){var t=[],e=this.options;return t.push(this._slotHeaders(this._slots[0],kendo.template(e.yearHeaderTemplate))),t.push(this._slotHeaders(this._slots[1],kendo.template(e.monthHeaderTemplate))),t}});var M=kendo.ui.GanttTimeline=e.extend({init:function(t,s){e.fn.init.call(this,t,s),this.options.views&&this.options.views.length||(this.options.views=["day","week","month"]),l=kendo.support.isRtl(t),this._wrapper(),this._domTrees(),this._views(),this._selectable(),this._draggable(),this._resizable(),this._percentResizeDraggable(),this._createDependencyDraggable(),this._attachEvents(),this._navigatable(),this._tooltip()},options:{name:"GanttTimeline",messages:{views:{day:"Day",week:"Week",month:"Month",year:"Year",start:"Start",end:"End"}},snap:!0,selectable:!0,editable:!0},destroy:function(){e.fn.destroy.call(this),clearTimeout(this._tooltipTimeout),this._currentTimeUpdateTimer&&clearInterval(this._currentTimeUpdateTimer),this._unbindView(this._selectedView),this._moveDraggable&&this._moveDraggable.destroy(),this._resizeDraggable&&this._resizeDraggable.destroy(),this._percentDraggable&&this._percentDraggable.destroy(),this._dependencyDraggable&&this._dependencyDraggable.destroy(),this.touch&&this.touch.destroy(),this._headerTree=null,this._taskTree=null,this._dependencyTree=null,this.wrapper.off(c),kendo.destroy(this.wrapper)},_findNext:function(t){return t.next().find(".k-task")},_findFirst:function(t){return t.closest(".k-table-tbody").find(".k-task").first()},_findLast:function(t){return t.closest(".k-table-tbody").find(".k-task").last()},_findPrev:function(t){return t.prev().find(".k-task")},_scrollTasks:function(t){var e=this.wrapper,s=kendo.scrollLeft(e.find(".k-grid-content"));kendo.scrollLeft(e.find(".k-grid-content"),s+20*t)},_navigatable:function(){var e=this;e.options.navigatable&&e.wrapper.on("keydown"+c,".k-gantt-tables .k-gantt-tasks .k-task",(function(s){var n,a=t(s.target),i=a.closest(".k-table-row"),r=!1;s.keyCode==h.HOME&&(n=e._findFirst(i)),s.keyCode==h.END&&(n=e._findLast(i)),s.keyCode==h.DOWN&&(n=e._findNext(i)),s.keyCode==h.UP&&(n=e._findPrev(i)),n&&(r=!0,n[0]!==a[0]&&(a.closest(".k-gantt-tasks").find(".k-task").attr("tabindex",-1),n.attr("tabindex",0),n.trigger("focus"))),s.keyCode==h.LEFT&&(s.altKey?a.hasClass("k-task-summary")&&(e.trigger("collapse",{uid:a.attr("data-uid")}),setTimeout((function(){e.select().trigger("focus")}),1)):e._scrollTasks(-1),r=!0),s.keyCode==h.RIGHT&&(s.altKey?a.hasClass("k-task-summary")&&(e.trigger("expand",{uid:a.attr("data-uid")}),setTimeout((function(){e.select().trigger("focus")}),1)):e._scrollTasks(1),r=!0),s.keyCode==h.ENTER&&(r=!0,!1!==e.options.editable.update&&(e.trigger("editTask",{uid:a.attr("data-uid")}),s.stopPropagation())),s.keyCode==h.DELETE&&(r=!0,!1!==e.options.editable.update&&(e.trigger("removeTask",{uid:a.attr("data-uid")}),s.stopPropagation())),r&&s.preventDefault()})).on(u+c,m+M.styles.task,(function(s){s.preventDefault();var n=t(this);e.wrapper.find(m+M.styles.task).attr("tabindex","-1"),n.attr("tabindex","0").trigger("focus")}))},_wrapper:function(){var e,s,n,a,i,r=M.styles,d=this,l=this.options;this.wrapper=this.element.addClass(r.wrapper).append("<div class='"+r.gridHeader+"'><div class='"+r.gridHeaderWrap+"'></div></div>").append("<div role='tree' class='"+r.gridContentWrap+"'><div class='"+r.tasksWrapper+"'></div><div class='"+r.dependenciesWrapper+"'></div></div>"),l.rowHeight&&(this._calculatedSize=(n="string"==typeof l.rowHeight?l.rowHeight:l.rowHeight+"px",a=t(kendo.format(D,n)),i=d.wrapper.find(m+r.tasksWrapper),kendo.applyStylesFromKendoAttributes(a,["height","visibility"]),i.append(a),e=o(a.find("tr")),s=a.find("td").height(),a.remove(),{row:e,cell:s}))},_domTrees:function(){var t=M.styles,e=kendo.dom.Tree,s=this.wrapper;this._headerTree=new e(s.find(m+t.gridHeaderWrap)[0]),this._taskTree=new e(s.find(m+t.tasksWrapper)[0]),this._dependencyTree=new e(s.find(m+t.dependenciesWrapper)[0])},_views:function(){var t,e,s,n,a,r=this.options.views;this.views={};for(var o=0,l=r.length;o<l;o++)t=r[o],(e=i(t))&&!1===t.selectable||(s=e?"string"!=typeof t.type?t.title:t.type:t,(n=b[s])&&(e&&(t.type=n.type),n.title=this.options.messages.views[s]),t=d({title:s},n,e?t:{}),s&&(this.views[s]=t,a&&!t.selected||(a=s)));a&&(this._selectedViewName=a)},view:function(t){return t&&(this._selectView(t),this.trigger("navigate",{view:t,action:"changeView"})),this._selectedView},_selectView:function(t){t&&this.views[t]&&(this._selectedView&&this._unbindView(this._selectedView),this._selectedView=this._initializeView(t),this._selectedViewName=t)},_viewByIndex:function(t){var e,s=this.views;for(e in s){if(!t)return e;t--}},_initializeView:function(t){var e,s=this.views[t];if(s){var n=s.type;if("string"==typeof n&&(n=kendo.getter(s.type)(window)),!n)throw new Error("There is no such view");var a={};d(a,this.options.range,s.range);var i=s.date||this.options.date;s=new n(this.wrapper,(delete(e=d(!0,{headerTree:this._headerTree,taskTree:this._taskTree,dependencyTree:this._dependencyTree,calculatedSize:this._calculatedSize},s,this.options,{date:i,range:a})).name,delete e.prefix,delete e.views,e))}return s},_unbindView:function(t){t&&t.destroy()},_range:function(t){if(!t||!t.length)return{start:new Date,end:new Date};var e=new p(t).sort({field:"start",dir:"asc"}).toArray()[0].start||new Date,s=new p(t).sort({field:"end",dir:"desc"}).toArray()[0].end||new Date;return{start:new Date(e),end:new Date(s)}},_render:function(t){var e=this.view(),s=this._range(t),n=e.options.date;this._tasks=t,e.range(s),e.renderLayout(),e.render(t),n&&e._scrollToDate(n)},_renderDependencies:function(t){this.view()._renderDependencies(t)},_taskByUid:function(t){for(var e,s=this._tasks,n=s.length,a=0;a<n;a++)if((e=s[a]).uid===t)return e},_draggable:function(){var t,e,s,n,a=this,i=this.options.snap,r=M.styles,o=this.options.editable,d=function(){a.view()._removeDragHint(),t&&t.css("opacity",1),t=null,e=null,a.dragInProgress=!1};o&&!1!==o.move&&!1!==o.update&&(this._moveDraggable=new kendo.ui.Draggable(this.wrapper,{distance:0,filter:m+r.task+","+m+r.taskOffset,holdToDrag:kendo.support.mobileOS,ignore:m+r.taskResizeHandle}),this._moveDraggable.bind("dragstart",(function(o){var d=a.view();t=o.currentTarget.closest(m+r.taskWrap),e=a._taskByUid(o.currentTarget.parent().find(m+r.task).attr("data-uid")),a.trigger("moveStart",{task:e})?o.preventDefault():(s=e.start,n=d._timeByPosition(o.x.location,i)-s,d._createDragHint(t),t.css("opacity",.5),clearTimeout(a._tooltipTimeout),a.dragInProgress=!0)})).bind("drag",kendo.throttle((function(t){if(a.dragInProgress){var r=a.view(),o=new Date(r._timeByPosition(t.x.location,i)-n),d=o;a.trigger("move",{task:e,start:o})||(s=o,l&&(d=new Date(s.getTime()+e.duration())),r._updateDragHint(d))}}),15)).bind("dragend",(function(){a.trigger("moveEnd",{task:e,start:s}),d()})).bind("dragcancel",(function(){d()})).userEvents.bind("select",(function(){H()})))},_resizable:function(){var t,e,s,n,a,i=this,r=this.options.snap,o=M.styles,d=this.options.editable,h=function(){i.view()._removeResizeHint(),t=null,e=null,i.dragInProgress=!1};d&&!1!==d.resize&&!1!==d.update&&(this._resizeDraggable=new kendo.ui.Draggable(this.wrapper,{distance:0,filter:m+o.taskResizeHandle,holdToDrag:!1}),this._resizeDraggable.bind("dragstart",(function(r){a=r.currentTarget.hasClass(o.taskResizeHandleWest),l&&(a=!a),t=r.currentTarget.closest(m+o.taskWrap).find(m+o.task),e=i._taskByUid(t.attr("data-uid")),i.trigger("resizeStart",{task:e})?r.preventDefault():(s=e.start,n=e.end,i.view()._createResizeHint(e),clearTimeout(i._tooltipTimeout),i.dragInProgress=!0)})).bind("drag",kendo.throttle((function(t){if(i.dragInProgress){var o=i.view(),d=o._timeByPosition(t.x.location,r,!a);a?s=d<n?d:n:n=d>s?d:s,i.trigger("resize",{task:e,start:s,end:n})||o._updateResizeHint(s,n,a)}}),15)).bind("dragend",(function(){i.trigger("resizeEnd",{task:e,resizeStart:a,start:s,end:n}),h()})).bind("dragcancel",(function(){h()})).userEvents.bind("select",(function(){H()})))},_percentResizeDraggable:function(){var t,e,s,n,a,i,o,d,h,p,c=this,u=M.styles,k=this.options.editable,f=function(){c.view()._removePercentCompleteTooltip(),e=null,t=null,c.dragInProgress=!1},g=function(t){var s=e.siblings(m+u.taskDragHandle);s.length||(s=e.closest(m+u.taskWrap).find(m+u.taskDragHandle)),s.css(l?"right":"left",t),e.find(m+u.taskComplete).width(t)};k&&!1!==k.dragPercentComplete&&!1!==k.update&&(this._percentDraggable=new kendo.ui.Draggable(this.wrapper,{distance:0,filter:m+u.taskDragHandle,holdToDrag:!1}),this._percentDraggable.bind("dragstart",(function(d){c.trigger("percentResizeStart")?d.preventDefault():((e=d.currentTarget.siblings(m+u.task)).length||(e=d.currentTarget.closest(m+u.taskWrap).find(m+u.task)),t=c._taskByUid(e.attr("data-uid")),o=t.percentComplete,s=e.offset(),n=this.element.offset(),a=e.find(m+u.taskComplete).width(),i=r(e),clearTimeout(c._tooltipTimeout),c.dragInProgress=!0)})).bind("drag",kendo.throttle((function(t){if(c.dragInProgress){p=l?-t.x.initialDelta:t.x.initialDelta;var e=Math.max(0,Math.min(i,a+p));o=Math.round(e/i*100),g(e),d=s.top-n.top,h=s.left+e-n.left,l&&(h+=i-2*e),c.view()._updatePercentCompleteTooltip(d,h,o)}}),15)).bind("dragend",(function(){c.trigger("percentResizeEnd",{task:t,percentComplete:o/100}),f()})).bind("dragcancel",(function(){g(a),f()})).userEvents.bind("select",(function(){H()})))},_createDependencyDraggable:function(){var e,s,n,a=this,i=t(),d=t(),l=M.styles,h=this.options.editable,p=function(){e.css("display","").removeClass(l.hovered),e.parent().removeClass(l.origin),e=null,c(!1),d=t(),i=t(),a.view()._removeDependencyDragHint(),a.dragInProgress=!1},c=function(t){d.hasClass(l.origin)||(d.find(m+l.taskDot).css("display",t?"block":""),i.toggleClass(l.hovered,t))};h&&!1!==h.dependencyCreate&&(this._dependencyDraggable=new kendo.ui.Draggable(this.wrapper,{distance:0,filter:m+l.taskDot,holdToDrag:!1}),this._dependencyDraggable.bind("dragstart",(function(t){if(a.trigger("dependencyDragStart"))t.preventDefault();else{(e=t.currentTarget.css("display","block").addClass(l.hovered)).parent().addClass(l.origin);var i=e.offset(),d=a.wrapper.find(m+l.tasksWrapper).offset();s=Math.round(i.left-d.left+o(e)/2),n=Math.round(i.top-d.top+r(e)/2),clearTimeout(a._tooltipTimeout),a.dragInProgress=!0}})).bind("drag",kendo.throttle((function(e){if(a.dragInProgress){a.view()._removeDependencyDragHint();var r=t(kendo.elementUnderCursor(e)),o=a.wrapper.find(m+l.tasksWrapper).offset(),h=e.x.location-o.left,p=e.y.location-o.top;a.view()._updateDependencyDragHint({x:s,y:n},{x:h,y:p}),c(!1),i=r.hasClass(l.taskDot)?r:t(),d=r.closest(m+l.taskWrap),c(!0)}}),15)).bind("dragend",(function(){if(i.length){var t=e.hasClass(l.taskDotStart),s=i.hasClass(l.taskDotStart),n=t?s?3:2:s?1:0,r=e.siblings(m+l.task);r.length||(r=e.closest(m+l.taskWrap).find(m+l.task));var o=a._taskByUid(r.attr("data-uid")),d=i.siblings(m+l.task);d.length||(d=i.closest(m+l.taskWrap).find(m+l.task));var h=a._taskByUid(d.attr("data-uid"));o!==h&&a.trigger("dependencyDragEnd",{type:n,predecessor:o,successor:h})}p()})).bind("dragcancel",(function(){p()})).userEvents.bind("select",(function(){H()})))},_selectable:function(){var e=this,s=M.styles;this.options.selectable&&this.wrapper.on(u+c,m+s.task+","+m+s.taskOffset,(function(n){n.stopPropagation();var a=t(this).attr("data-uid");a||(a=t(this).closest(m+s.taskWrap).find(m+s.task).data("uid")),n.ctrlKey?e.trigger("clear"):e.trigger("select",{uid:a})})).on(u+c,m+s.taskWrap,(function(e){e.stopPropagation(),t(this).css("z-index","0");var n=t(document.elementFromPoint(e.clientX,e.clientY));n.hasClass(s.line)&&n.click(),t(this).css("z-index","")})).on(u+c,m+s.tasksWrapper,(function(){e.selectDependency().length>0?e.clearSelection():e.trigger("clear")})).on(u+c,m+s.line,(function(t){t.stopPropagation(),e.selectDependency(this)}))},select:function(t){var e=this.wrapper.find(t),s=M.styles;return e.length?(this.clearSelection(),e.addClass(s.selected),void(kendo.support.mobileOS&&e.parent().addClass(s.taskWrapActive))):this.wrapper.find(m+s.task+m+s.selected)},selectDependency:function(e){var s,n=this.wrapper.find(e),a=M.styles;return n.length?(this.clearSelection(),this.trigger("clear"),s=t(n).attr("data-uid"),void this.wrapper.find(m+a.line+"[data-uid='"+s+"']").addClass(a.selected)):this.wrapper.find(m+a.line+m+a.selected)},clearSelection:function(){var t=M.styles;this.wrapper.find(m+t.selected).removeClass(t.selected),kendo.support.mobileOS&&this.wrapper.find(m+t.taskWrapActive).removeClass(t.taskWrapActive)},_attachEvents:function(){var e=this,s=M.styles;this.options.editable&&(this.wrapper.on(u+c,m+s.taskDelete,(function(n){e.trigger("removeTask",{uid:t(this).closest(m+s.taskWrap).find(m+s.task).attr("data-uid")}),n.stopPropagation(),n.preventDefault()})).on("keydown"+c,(function(t){var s,n=e.options.editable;t.keyCode===h.DELETE&&n&&!1!==n.dependencyDestroy&&(s=e.selectDependency()).length&&(e.trigger("removeDependency",{uid:s.attr("data-uid")}),e.clearSelection())})),kendo.support.mobileOS?this.touch=this.wrapper.kendoTouch({filter:m+s.task+","+m+s.taskOffset,doubletap:function(n){!1!==e.options.editable.update&&e.trigger("editTask",{uid:t(n.touch.currentTarget).closest(m+s.taskWrap).find(m+s.task).attr("data-uid")})}}).data("kendoTouch"):this.wrapper.on("dblclick"+c,m+s.task+","+m+s.taskOffset,(function(n){!1!==e.options.editable.update&&(e.trigger("editTask",{uid:t(this).closest(m+s.taskWrap).find(m+s.task).attr("data-uid")}),n.stopPropagation(),n.preventDefault())})))},_tooltip:function(){var e,s=this,n=this.options.tooltip,a=M.styles,i=function(t){e=t.clientX};n&&!1===n.visible||(kendo.support.mobileOS?(this.wrapper.on(u+c,m+a.taskDelete,(function(t){t.stopPropagation(),s.view()._removeTaskTooltip()})).on(g+c,m+a.task,(function(e){0===t(e.relatedTarget).parents(m+a.taskWrap,m+a.task).length&&s.view()._removeTaskTooltip()})).on(g+c,m+a.taskOffset,(function(e){0===t(e.relatedTarget).parents(m+a.taskWrap,m+a.task).length&&s.view()._removeOffsetTooltip()})).on(g+c,m+a.taskPlanned,(function(e){0===t(e.relatedTarget).parents(m+a.taskWrap,m+a.task).length&&s.view()._removePlannedTooltip()})),this.touch&&this.touch.bind("tap",(function(e){var n,i=t(e.touch.target),r=e.touch.x.client;i.hasClass(a.task)?(n=s._taskByUid(i.attr("data-uid")),s.view()._taskTooltip&&s.view()._removeTaskTooltip(),s.view()._createTaskTooltip(n,i,r)):(n=s._taskByUid(i.closest(m+a.taskWrap).find(m+a.task).attr("data-uid")),s.view()._offsetTooltip&&s.view()._removeOffsetTooltip(),s.view()._createOffsetTooltip(n,i,r))})).bind("doubletap",(function(){s.view()._removeTaskTooltip(),s.view()._removeOffsetTooltip()}))):this.wrapper.on(f+c,m+a.task,(function(){var n=this,a=s._taskByUid(t(this).attr("data-uid"));s.dragInProgress||(s._tooltipTimeout=setTimeout((function(){s.view()._createTaskTooltip(a,n,e)}),800),t(this).on(k,i))})).on(g+c,m+a.task,(function(){clearTimeout(s._tooltipTimeout),s.view()._removeTaskTooltip(),t(this).off(k,i)})).on(f+c,m+a.taskOffset,(function(){var n=t(this).closest(m+a.taskWrap).find(m+a.task),r=s._taskByUid(n.attr("data-uid"));s.dragInProgress||(s._offsetTooltipTimeout=setTimeout((function(){s.view()._createOffsetTooltip(r,n,e)}),800),t(this).on(k,i))})).on(g+c,m+a.taskOffset,(function(){clearTimeout(s._offsetTooltipTimeout),s.view()._removeOffsetTooltip(),t(this).off(k,i)})).on(f+c,m+a.taskPlanned,(function(){var n=t(this).closest(m+a.taskWrap).find(m+a.task),r=s._taskByUid(n.attr("data-uid"));s._plannedTooltipTimeout=setTimeout((function(){s.view()._createPlannedTooltip(r,n,e)}),800),t(this).on(k,i)})).on(g+c,m+a.taskPlanned,(function(){clearTimeout(s._plannedTooltipTimeout),s.view()._removePlannedTooltip(),t(this).off(k,i)})))},_setPlanned:function(t){this.options.showPlannedTasks=t,this.view().options.showPlannedTasks=t}});d(!0,M,{styles:{wrapper:"k-gantt-timeline k-grid",gridHeader:"k-grid-header",gridHeaderWrap:"k-grid-header-wrap",gridContent:"k-grid-content",gridContentWrap:"k-grid-content",tasksWrapper:"k-gantt-tables",dependenciesWrapper:"k-gantt-dependencies",task:"k-task",taskOffset:"k-task-offset",taskOffsetWrap:"k-task-offset-wrap",taskPlanned:"k-task-planned",line:"k-gantt-line",taskResizeHandle:"k-resize-handle",taskResizeHandleWest:"k-resize-w",taskDragHandle:"k-task-draghandle",taskComplete:"k-task-complete",taskDelete:"k-task-delete",taskWrapActive:"k-task-wrap-active",taskWrap:"k-task-wrap",taskDot:"k-task-dot",taskDotStart:"k-task-start",taskDotEnd:"k-task-end",hovered:"k-hover",selected:"k-selected",origin:"k-origin"}})}(window.kendo.jQuery);var e=kendo;t.__meta__={id:"gantt.timeline",name:"Gantt Timeline",category:"web",description:"The Gantt Timeline",depends:["dom","touch","draganddrop","icons"],hidden:!0},t.default=e,Object.defineProperty(t,"__esModule",{value:!0})})); //# sourceMappingURL=kendo.gantt.timeline.min.js.map