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