UNPKG

@progress/kendo-ui

Version:

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

2 lines 52.6 kB
module.exports=function(e){function t(n){if(i[n])return i[n].exports;var s=i[n]={exports:{},id:n,loaded:!1};return e[n].call(s.exports,s,s.exports,t),s.loaded=!0,s.exports}var i={};return t.m=e,t.c=i,t.p="",t(0)}({0:function(e,t,i){e.exports=i(1189)},3:function(e,t){e.exports=function(){throw Error("define cannot be used indirect")}},1015:function(e,t){e.exports=require("./kendo.data")},1038:function(e,t){e.exports=require("./kendo.popup")},1142:function(e,t){e.exports=require("./kendo.resizable")},1143:function(e,t){e.exports=require("./kendo.window")},1189:function(e,t,i){var n,s,r;!function(a,define){s=[i(1015),i(1038),i(1143),i(1142),i(1190),i(1191),i(1192),i(1193)],n=a,r="function"==typeof n?n.apply(t,s):n,!(void 0!==r&&(e.exports=r))}(function(){return function(e,t){function i(e){return"["+v.attr("uid")+(e?"='"+e+"']":"]")}function n(e){return delete e.name,delete e.prefix,delete e.remove,delete e.edit,delete e.add,delete e.navigate,e}function s(e){var t,i,n,s,r,a;if(e.filter("[name=end], [name=start]").length){for(t=e.attr("name"),i=v.widgetInstance(e,v.ui),n={},s=e;s!==window&&!r;)s=s.parent(),r=s.data("kendoEditable");return!(a=r?r.options.model:null)||(n.start=a.start,n.end=a.end,n[t]=i?i.value():v.parseDate(e.val()),n.start<=n.end)}return!0}function r(t,i){var n=t.parents("["+v.attr("role")+'="gantt"]'),s=[],r=a(n);t.attr(N,0),i&&r.each(function(t,i){s[t]=e(i).scrollTop()});try{t[0].setActive()}catch(o){t[0].focus()}i&&r.each(function(t,i){e(i).scrollTop(s[t])})}function a(t){return e(t).parentsUntil("body").filter(function(e,t){var i=v.getComputedStyles(t,["overflow"]);return"visible"!=i.overflow}).add(window)}var o,d,l,c,u,h,p,f,v=window.kendo,m=e.extend({F10:121},v.keys),g="matchMedia"in window,b=v.support.browser,k=v.support.mobileOS,y=v.Observable,_=v.ui.Widget,w=v.data.DataSource,D=v.data.ObservableObject,S=v.data.ObservableArray,C=v.data.Query,T=e.isArray,x=e.inArray,B=v.isFunction,R=e.proxy,F=e.extend,E=e.isPlainObject,H=e.map,I=v._outerWidth,W=v._outerHeight,z=3,A=".kendoGantt",P="p0",N="tabIndex",V="click",q="width",L="string",U={down:{origin:"bottom left",position:"top left"},up:{origin:"top left",position:"bottom left"}},G="aria-activedescendant",M="aria-label",O="gantt_active_cell",j="action-option-focused",K=".",Q="Are you sure you want to delete this task?",Y="Are you sure you want to delete this dependency?",J=v.template('<button class="#=styles.buttonToggle#" type="button" '+M+'="Toggle"><span class="#=styles.iconToggle#"></span></button>'),X='<button class="#=styles.button# #=className#" type="button" #if (action) {#data-action="#=action#"#}#><span class="#=iconClass#"></span><span>#=text#</span></button>',Z='<a class="#=className#" #=attr# href="\\#">#=text#</a>',$=v.template('<li class="#=styles.currentView# #=styles.viewButtonDefault#"><a href="\\#" class="#=styles.link#">&nbps;</a></li>'),ee=v.template('<ul class="#=styles.viewsWrapper#">#for(var view in views){#<li class="#=styles.viewButtonDefault# #=styles.viewButton#-#= view.toLowerCase() #" data-#=ns#name="#=view#"><a href="\\#" class="#=styles.link#">#=views[view].title#</a></li>#}#</ul>'),te=v.template('<div class="#=styles.popupWrapper#"><ul class="#=styles.popupList#" role="listbox">#for(var i = 0, l = actions.length; i < l; i++){#<li class="#=styles.item#" data-action="#=actions[i].data#" role="option">#=actions[i].text#</span>#}#</ul></div>'),ie=function(t,i){var n={name:i.field,title:i.title},s=i.model.fields[i.field].validation;s&&E(s)&&s.message&&(n[v.attr("dateCompare-msg")]=s.message),e('<input type="text" required '+v.attr("type")+'="date" '+v.attr("role")+'="datetimepicker" '+v.attr("bind")+'="value:'+i.field+'" '+v.attr("validate")+"='true' />").attr(n).appendTo(t),e("<span "+v.attr("for")+'="'+i.field+'" class="k-invalid-msg"/>').hide().appendTo(t)},ne=function(t,i){e('<a href="#" class="'+i.styles.button+'">'+i.messages.assignButton+"</a>").click(i.click).appendTo(t)},se={wrapper:"k-widget k-gantt",rowHeight:"k-gantt-rowheight",listWrapper:"k-gantt-layout k-gantt-treelist",list:"k-gantt-treelist",timelineWrapper:"k-gantt-layout k-gantt-timeline",timeline:"k-gantt-timeline",splitBarWrapper:"k-splitbar k-state-default k-splitbar-horizontal k-splitbar-draggable-horizontal k-gantt-layout",splitBar:"k-splitbar",splitBarHover:"k-splitbar-horizontal-hover",popupWrapper:"k-list-container",popupList:"k-list k-reset",resizeHandle:"k-resize-handle",icon:"k-icon",item:"k-item",line:"k-line",buttonDelete:"k-gantt-delete",buttonCancel:"k-gantt-cancel",buttonSave:"k-gantt-update",buttonToggle:"k-gantt-toggle",primary:"k-primary",hovered:"k-state-hover",selected:"k-state-selected",focused:"k-state-focused",gridHeader:"k-grid-header",gridHeaderWrap:"k-grid-header-wrap",gridContent:"k-grid-content",tasks:"k-gantt-tasks",popup:{form:"k-popup-edit-form",editForm:"k-gantt-edit-form",formContainer:"k-edit-form-container",resourcesFormContainer:"k-resources-form-container",message:"k-popup-message",buttonsContainer:"k-edit-buttons k-state-default",button:"k-button",editField:"k-edit-field",editLabel:"k-edit-label",resourcesField:"k-gantt-resources"},toolbar:{headerWrapper:"k-floatwrap k-header k-gantt-toolbar",footerWrapper:"k-floatwrap k-header k-gantt-toolbar",toolbar:"k-gantt-toolbar",expanded:"k-state-expanded",views:"k-gantt-views",viewsWrapper:"k-reset k-header k-gantt-views",actions:"k-gantt-actions",button:"k-button k-button-icontext",buttonToggle:"k-button k-button-icon k-gantt-toggle",iconPlus:"k-icon k-i-plus",iconPdf:"k-icon k-i-file-pdf",iconToggle:"k-icon k-i-layout-1-by-4",viewButtonDefault:"k-state-default",viewButton:"k-view",currentView:"k-current-view",link:"k-link",pdfButton:"k-gantt-pdf",appendButton:"k-gantt-create"}},re=y.extend({init:function(e,t){y.fn.init.call(this),this.element=e,this.options=F(!0,{},this.options,t),this._popup()},options:{direction:"down",navigatable:!1},_current:function(e){var t=f.styles,i=this.list.find(K+t.focused),n=i[e]();n.length&&(i.removeClass(t.focused).removeAttr("id"),n.addClass(t.focused).attr("id",j),this.list.find("ul").removeAttr(G).attr(G,j))},_popup:function(){var t=this,i=f.styles,n="li"+K+i.item,s=K+i.toolbar.appendButton,r=this.options.messages.actions,a=this.options.navigatable;this.list=e(te({styles:i,actions:[{data:"add",text:r.addChild},{data:"insert-before",text:r.insertBefore},{data:"insert-after",text:r.insertAfter}]})),this.element.append(this.list),this.popup=new v.ui.Popup(this.list,F({anchor:this.element.find(s),open:function(){t._adjustListWidth()},animation:this.options.animation},U[this.options.direction])),this.element.on(V+A,s,function(n){var s=e(this),r=s.attr(v.attr("action"));n.preventDefault(),r?t.trigger("command",{type:r}):(t.popup.open(),a&&t.list.find("li:first").addClass(i.focused).attr("id",j).end().find("ul").attr({TABINDEX:0,"aria-activedescendant":j}).focus())}),this.list.find(n).hover(function(){e(this).addClass(i.hovered)},function(){e(this).removeClass(i.hovered)}).end().on(V+A,n,function(){t.trigger("command",{type:e(this).attr(v.attr("action"))}),t.popup.close()}),a&&(this.popup.bind("close",function(){t.list.find(n).removeClass(i.focused).end().find("ul").attr(N,0),t.element.parents("["+v.attr("role")+'="gantt"]').find(K+i.gridContent+" > table:first").focus()}),this.list.find("ul").on("keydown"+A,function(e){var n=e.keyCode;switch(n){case m.UP:e.preventDefault(),t._current("prev");break;case m.DOWN:e.preventDefault(),t._current("next");break;case m.ENTER:t.list.find(K+i.focused).click();break;case m.ESC:e.preventDefault(),t.popup.close()}}))},_adjustListWidth:function(){var e,t,i=this.list,n=f.styles,s=i[0].style.width,r=this.element.find(K+n.toolbar.appendButton),a=I(i);!i.data(q)&&s||(e=window.getComputedStyle?window.getComputedStyle(r[0],null):0,t=e?parseFloat(e.width):I(r),e&&(b.mozilla||b.msie)&&(t+=parseFloat(e.paddingLeft)+parseFloat(e.paddingRight)+parseFloat(e.borderLeftWidth)+parseFloat(e.borderRightWidth)),s="border-box"!==i.css("box-sizing")?t-(I(i)-i.width()):t,a>s&&(s=a),i.css({fontFamily:r.css("font-family"),width:s}).data(q,s))},destroy:function(){clearTimeout(this._focusTimeout),this.popup.destroy(),this.element.off(A),this.list.off(A),this.unbind()}}),ae=function(e,t){return function(i){var n,s;if(i=T(i)?{data:i}:i,n=i||{},s=n.data,n.data=s,!(n instanceof e)&&n instanceof w)throw Error("Incorrect DataSource type. Only "+t+" instances are supported");return n instanceof e?n:new e(n)}},oe=v.data.Model.define({id:"id",fields:{id:{type:"number"},predecessorId:{type:"number"},successorId:{type:"number"},type:{type:"number"}}}),de=w.extend({init:function(e){w.fn.init.call(this,F(!0,{},{schema:{modelBase:oe,model:oe}},e))},successors:function(e){return this._dependencies("predecessorId",e)},predecessors:function(e){return this._dependencies("successorId",e)},dependencies:function(e){var t=this.predecessors(e),i=this.successors(e);return t.push.apply(t,i),t},_dependencies:function(e,t){var i=this.view(),n={field:e,operator:"eq",value:t};return i=new C(i).filter(n).toArray()}});de.create=ae(de,"GanttDependencyDataSource"),d=v.data.Model.define({duration:function(){var e=this.end,t=this.start;return e-t},isMilestone:function(){return 0===this.duration()},_offset:function(e){var t,i,n=["start","end"];for(i=0;i<n.length;i++)t=new Date(this.get(n[i]).getTime()+e),this.set(n[i],t)},id:"id",fields:{id:{type:"number"},parentId:{type:"number",defaultValue:null,validation:{required:!0}},orderId:{type:"number",validation:{required:!0}},title:{type:"string",defaultValue:"New task"},start:{type:"date",validation:{required:!0}},end:{type:"date",validation:{required:!0,dateCompare:s,message:"End date should be after or equal to the start date"}},percentComplete:{type:"number",validation:{required:!0,min:0,max:1,step:.01}},summary:{type:"boolean"},expanded:{type:"boolean",defaultValue:!0}}}),l=w.extend({init:function(e){w.fn.init.call(this,F(!0,{},{schema:{modelBase:d,model:d}},e))},remove:function(e){var t=e.get("parentId"),i=this.taskAllChildren(e);return this._removeItems(i),e=w.fn.remove.call(this,e),this._childRemoved(t,e.get("orderId")),e},add:function(e){if(e)return e=this._toGanttTask(e),this.insert(this.taskSiblings(e).length,e)},insert:function(e,t){if(t)return t=this._toGanttTask(t),t.set("orderId",e),t=w.fn.insert.call(this,e,t),this._reorderSiblings(t,this.taskSiblings(t).length-1),this._resolveSummaryFields(this.taskParent(t)),t},taskChildren:function(e){var i,n=this.view(),s={field:"parentId",operator:"eq",value:null},r=this._sort&&this._sort.length?this._sort:{field:"orderId",dir:"asc"};if(e){if(i=e.get("id"),i===t||null===i||""===i)return[];s.value=i}return n=new C(n).filter(s).sort(r).toArray()},taskAllChildren:function(e){var t=[],i=this,n=function(e){var s=i.taskChildren(e);t.push.apply(t,s),H(s,n)};return e?n(e):t=this.view(),t},taskSiblings:function(e){if(!e)return null;var t=this.taskParent(e);return this.taskChildren(t)},taskParent:function(e){return e&&null!==e.get("parentId")?this.get(e.parentId):null},taskLevel:function(e){for(var t=0,i=this.taskParent(e);null!==i;)t+=1,i=this.taskParent(i);return t},taskTree:function(e){var t,i,n,s,r=[],a=this.taskChildren(e);for(i=0,n=a.length;i<n;i++)t=a[i],r.push(t),t.get("expanded")&&(s=this.taskTree(t),r.push.apply(r,s));return r},update:function(e,i){var n,s,r=this,a=function(e,t){var i,n,s=r.taskAllChildren(e);for(i=0,n=s.length;i<n;i++)s[i]._offset(t)},o=function(e){var t=e.field,i=e.sender;switch(t){case"start":r._resolveSummaryStart(r.taskParent(i)),a(i,i.get(t).getTime()-n.getTime());break;case"end":r._resolveSummaryEnd(r.taskParent(i));break;case"percentComplete":r._resolveSummaryPercentComplete(r.taskParent(i));break;case"orderId":r._reorderSiblings(i,n)}};i.parentId!==t&&(n=e.get("parentId"),n!==i.parentId&&(e.set("parentId",i.parentId),r._childRemoved(n,e.get("orderId")),e.set("orderId",r.taskSiblings(e).length-1),r._resolveSummaryFields(r.taskParent(e))),delete i.parentId),e.bind("change",o);for(s in i)n=e.get(s),e.set(s,i[s]);e.unbind("change",o)},_resolveSummaryFields:function(e){e&&(this._updateSummary(e),this.taskChildren(e).length&&(this._resolveSummaryStart(e),this._resolveSummaryEnd(e),this._resolveSummaryPercentComplete(e)))},_resolveSummaryStart:function(e){var t=this,i=function(e){var i,n,s,r=t.taskChildren(e),a=r[0].start.getTime();for(n=1,s=r.length;n<s;n++)i=r[n].start.getTime(),i<a&&(a=i);return new Date(a)};this._updateSummaryRecursive(e,"start",i)},_resolveSummaryEnd:function(e){var t=this,i=function(e){var i,n,s,r=t.taskChildren(e),a=r[0].end.getTime();for(n=1,s=r.length;n<s;n++)i=r[n].end.getTime(),i>a&&(a=i);return new Date(a)};this._updateSummaryRecursive(e,"end",i)},_resolveSummaryPercentComplete:function(e){var t=this,i=function(e){var i=t.taskChildren(e),n=new C(i).aggregate([{field:"percentComplete",aggregate:"average"}]);return n.percentComplete.average};this._updateSummaryRecursive(e,"percentComplete",i)},_updateSummaryRecursive:function(e,t,i){var n,s;e&&(n=i(e),e.set(t,n),s=this.taskParent(e),s&&this._updateSummaryRecursive(s,t,i))},_childRemoved:function(e,t){var i,n,s=null===e?null:this.get(e),r=this.taskChildren(s);for(i=t,n=r.length;i<n;i++)r[i].set("orderId",i);this._resolveSummaryFields(s)},_reorderSiblings:function(e,t){var i,n=e.get("orderId"),s=n>t,r=s?t:n,a=s?n:t,o=s?r:r+1,d=this.taskSiblings(e);for(a=Math.min(a,d.length-1),i=r;i<=a;i++)d[i]!==e&&(d[i].set("orderId",o),o+=1)},_updateSummary:function(e){if(null!==e){var t=this.taskChildren(e).length;e.set("summary",t>0)}},_toGanttTask:function(e){if(!(e instanceof d)){var t=e;e=this._createNewModel(),e.accept(t)}return e}}),l.create=ae(l,"GanttDataSource"),F(!0,v.data,{GanttDataSource:l,GanttTask:d,GanttDependencyDataSource:de,GanttDependency:oe}),c={desktop:{dateRange:ie,resources:ne}},u=v.Observable.extend({init:function(e,t){v.Observable.fn.init.call(this),this.element=e,this.options=F(!0,{},this.options,t),this.createButton=this.options.createButton},fields:function(t,i){var n,s=this,r=this.options,a=r.messages.editor,o=r.resources,d=function(e){e.preventDefault(),o.editor(s.container.find(K+f.styles.popup.resourcesField),i)};return r.editable.template?n=e.map(i.fields,function(e,t){return{field:t}}):(n=[{field:"title",title:a.title},{field:"start",title:a.start,editor:t.dateRange},{field:"end",title:a.end,editor:t.dateRange},{field:"percentComplete",title:a.percentComplete,format:P}],i.get(o.field)&&n.push({field:o.field,title:a.resources,messages:a,editor:t.resources,click:d,styles:f.styles.popup})),n},_buildEditTemplate:function(e,t,i){var n,s,r,a,o=this.options.resources,d=this.options.editable.template,l=F({},v.Template,this.options.templateSettings),c=l.paramName,u=f.styles.popup,h="";if(d)typeof d===L&&(d=window.unescape(d)),h+=v.template(d,l)(e);else for(n=0,s=t.length;n<s;n++)r=t[n],h+='<div class="'+u.editLabel+'"><label for="'+r.field+'">'+(r.title||r.field||"")+"</label></div>",r.field===o.field&&(h+='<div class="'+u.resourcesField+'" style="display:none"></div>'),!e.editable||e.editable(r.field)?(i.push(r),h+="<div "+v.attr("container-for")+'="'+r.field+'" class="'+u.editField+'"></div>'):(a="#:",r.field?(r=v.expr(r.field,c),a+=r+"==null?'':"+r):a+="''",a+="#",a=v.template(a,l),h+='<div class="'+u.editField+'">'+a(e)+"</div>");return h}}),h=u.extend({destroy:function(){this.close(),this.unbind()},editTask:function(e){this.editable=this._createPopupEditor(e)},close:function(){var e=this,t=function(){e.editable&&(e.editable.destroy(),e.editable=null,e.container=null),e.popup&&(e.popup.destroy(),e.popup=null)};this.editable&&this.container.is(":visible")?(e.trigger("close",{window:e.container}),this.container.data("kendoWindow").bind("deactivate",t).close()):t()},showDialog:function(t){var i,n,s,r,a=t.buttons,o=f.styles.popup,d=v.format('<div class="{0}"><div class="{1}"><p class="{2}">{3}</p><div class="{4}">',o.form,o.formContainer,o.message,t.text,o.buttonsContainer);for(i=0,n=a.length;i<n;i++)d+=this.createButton(a[i]);d+="</div></div></div>",s=this.element,this.popup&&this.popup.destroy(),r=this.popup=e(d).appendTo(s).eq(0).on("click",K+o.button,function(t){t.preventDefault(),r.close();var i=e(t.currentTarget).index();a[i].click()}).kendoWindow({modal:!0,autoFocus:!1,resizable:!1,draggable:!1,title:t.title,visible:!1,deactivate:function(){this.destroy(),s.focus()}}).getKendoWindow(),r.center().open(),r.element.find(".k-primary").focus()},_createPopupEditor:function(t){var i,n,s=this,r={},a=this.options.messages,o=f.styles,d=o.popup,l=v.format('<div {0}="{1}" class="{2} {3}"><div class="{4}">',v.attr("uid"),t.uid,d.form,d.editForm,d.formContainer),u=this.fields(c.desktop,t),h=[];return l+=this._buildEditTemplate(t,u,h),l+='<div class="'+d.buttonsContainer+'">',l+=this.createButton({name:"update",text:a.save,className:f.styles.primary}),l+=this.createButton({name:"cancel",text:a.cancel}),s.options.editable.destroy!==!1&&(l+=this.createButton({name:"delete",text:a.destroy})),l+="</div></div></div>",i=this.container=e(l).appendTo(this.element).eq(0).kendoWindow(F({modal:!0,resizable:!1,draggable:!0,title:a.editor.editorTitle,visible:!1,close:function(e){e.userTriggered&&s.trigger("cancel",{container:i,model:t})&&e.preventDefault()}},r)),n=i.kendoEditable({fields:h,model:t,clearContainer:!1,validateOnBlur:!0,target:s.options.target}).data("kendoEditable"),v.cycleForm(i),this.trigger("edit",{container:i,model:t})?s.trigger("cancel",{container:i,model:t}):(i.data("kendoWindow").center().open(),i.on(V+A,K+o.buttonCancel,function(e){e.preventDefault(),e.stopPropagation(),s.trigger("cancel",{container:i,model:t})}),i.on(V+A,K+o.buttonSave,function(e){var n,r,a,o,d;for(e.preventDefault(),e.stopPropagation(),n=s.fields(c.desktop,t),r={},o=0,d=n.length;o<d;o++)a=n[o].field,r[a]=t.get(a);s.trigger("save",{container:i,model:t,updateInfo:r})}),i.on(V+A,K+o.buttonDelete,function(e){e.preventDefault(),e.stopPropagation(),s.trigger("remove",{container:i,model:t})})),n}}),p=_.extend({init:function(e,t){_.fn.init.call(this,e,t),this.wrapper=this.element,this.model=this.options.model,this.resourcesField=this.options.resourcesField,this.createButton=this.options.createButton,this._initContainer(),this._attachHandlers()},events:["save"],open:function(){this.window.center().open()},close:function(){this.window.bind("deactivate",R(this.destroy,this)).close()},destroy:function(){this._dettachHandlers(),this.grid.destroy(),this.grid=null,this.window.destroy(),this.window=null,_.fn.destroy.call(this),v.destroy(this.wrapper),this.element=this.wrapper=null},_attachHandlers:function(){var t=f.styles,i=this.grid,n=this._cancelProxy=R(this._cancel,this);this.container.on(V+A,K+t.buttonCancel,this._cancelProxy),this._saveProxy=R(this._save,this),this.container.on(V+A,K+t.buttonSave,this._saveProxy),this.window.bind("close",function(e){e.userTriggered&&n(e)}),i.wrapper.on(V+A,"input[type='checkbox']",function(){var t=e(this),n=e(t).closest("tr"),s=i.dataSource.getByUid(n.attr(v.attr("uid"))),r=e(t).is(":checked")?1:"";s.set("value",r)})},_dettachHandlers:function(){this._cancelProxy=null,this._saveProxy=null,this.container.off(A),this.grid.wrapper.off()},_cancel:function(e){e.preventDefault(),this.close()},_save:function(e){e.preventDefault(),this._updateModel(),this.wrapper.is(K+f.styles.popup.resourcesField)||this.trigger("save",{container:this.wrapper,model:this.model}),this.close()},_initContainer:function(){var t=this,i=f.styles.popup,n=v.format('<div class="{0} {1}"><div class="{2} {3}"/></div>"',i.form,i.editForm,i.formContainer,i.resourcesFormContainer);n=e(n),this.container=n.find(K+i.resourcesFormContainer),this.window=n.kendoWindow({modal:!0,resizable:!1,draggable:!0,visible:!1,title:this.options.messages.resourcesEditorTitle,open:function(){t.grid.resize(!0)}}).data("kendoWindow"),this._resourceGrid(),this._createButtons()},_resourceGrid:function(){var t=this,i=this.options.messages,n=e('<div id="resources-grid"/>').appendTo(this.container);this.grid=new v.ui.Grid(n,{columns:[{field:"name",title:i.resourcesHeader,template:"<label><input type='checkbox' value='#=name#'# if (value > 0 && value !== null) {#checked='checked'# } #/>#=name#</labe>"},{field:"value",title:i.unitsHeader,template:function(e){var t=e.format,i=null!==e.value?e.value:"";return t?v.toString(i,t):i}}],height:280,sortable:!0,editable:!0,filterable:!0,dataSource:{data:t.options.data,schema:{model:{id:"id",fields:{id:{from:"id"},name:{from:"name",type:"string",editable:!1},value:{from:"value",type:"number",validation:this.options.unitsValidation},format:{from:"format",type:"string"}}}}},save:function(e){var t=!!e.values.value;e.container.parent().find("input[type='checkbox']").prop("checked",t)}})},_createButtons:function(){var e,t,i=this.options.buttons,n='<div class="'+f.styles.popup.buttonsContainer+'">';for(e=0,t=i.length;e<t;e++)n+=this.createButton(i[e]);n+="</div>",this.container.append(n)},_updateModel:function(){var e,t,i,n=[],s=this.grid.dataSource.data();for(t=0,i=s.length;t<i;t++)e=s[t].get("value"),null!==e&&e>0&&n.push(s[t]);this.model[this.resourcesField]=n}}),f=_.extend({init:function(e,t,i){T(t)&&(t={dataSource:t}),o={append:{text:"Add Task",action:"add",className:f.styles.toolbar.appendButton,iconClass:f.styles.toolbar.iconPlus},pdf:{text:"Export to PDF",className:f.styles.toolbar.pdfButton,iconClass:f.styles.toolbar.iconPdf}},_.fn.init.call(this,e,t),i&&(this._events=i),this._wrapper(),this._resources(),this.options.views&&this.options.views.length||(this.options.views=["day","week","month"]),this._timeline(),this._toolbar(),this._footer(),this._adjustDimensions(),this._preventRefresh=!0,this.view(this.timeline._selectedViewName),this._preventRefresh=!1,this._dataSource(),this._assignments(),this._dropDowns(),this._list(),this._dependencies(),this._resizable(),this._scrollable(),this._dataBind(),this._attachEvents(),this._createEditor(),v.notify(this)},events:["dataBinding","dataBound","add","edit","remove","cancel","save","change","navigate","moveStart","move","moveEnd","resizeStart","resize","resizeEnd","columnResize"],options:{name:"Gantt",autoBind:!0,navigatable:!1,selectable:!0,editable:!0,resizable:!1,columnResizeHandleWidth:z,columns:[],views:[],dataSource:{},dependencies:{},resources:{},assignments:{},taskTemplate:null,messages:{save:"Save",cancel:"Cancel",destroy:"Delete",deleteTaskConfirmation:Q,deleteDependencyConfirmation:Y,deleteTaskWindowTitle:"Delete task",deleteDependencyWindowTitle:"Delete dependency",views:{day:"Day",week:"Week",month:"Month",year:"Year",start:"Start",end:"End"},actions:{append:"Add Task",addChild:"Add Child",insertBefore:"Add Above",insertAfter:"Add Below",pdf:"Export to PDF"},editor:{editorTitle:"Task",resourcesEditorTitle:"Resources",title:"Title",start:"Start",end:"End",percentComplete:"Complete",resources:"Resources",assignButton:"Assign",resourcesHeader:"Resources",unitsHeader:"Units"}},showWorkHours:!0,showWorkDays:!0,toolbar:null,workDayStart:new Date(1980,1,1,8,0,0),workDayEnd:new Date(1980,1,1,17,0,0),workWeekStart:1,workWeekEnd:5,hourSpan:1,snap:!0,height:600,listWidth:"30%",rowHeight:null},select:function(e){var i=this.list;return e?(i.select(e),this.list.element.find("table[role=treegrid]").focus(),t):i.select()},clearSelection:function(){this.list.clearSelection()},destroy:function(){_.fn.destroy.call(this),this.dataSource&&(this.dataSource.unbind("change",this._refreshHandler),this.dataSource.unbind("progress",this._progressHandler),this.dataSource.unbind("error",this._errorHandler)),this.dependencies&&(this.dependencies.unbind("change",this._dependencyRefreshHandler),this.dependencies.unbind("error",this._dependencyErrorHandler)),this.timeline&&(this.timeline.unbind(),this.timeline.destroy()),this.list&&(this.list.unbind(),this.list.destroy()),this.footerDropDown&&this.footerDropDown.destroy(),this.headerDropDown&&this.headerDropDown.destroy(),this._editor&&this._editor.destroy(),this._resizeDraggable&&this._resizeDraggable.destroy(),this.toolbar.off(A),g&&(this._mediaQuery.removeListener(this._mediaQueryHandler),this._mediaQuery=null),e(window).off("resize"+A,this._resizeHandler),e(this.wrapper).off(A),this.toolbar=null,this.footer=null},setOptions:function(t){var i,n=v.deepExtend({},this.options,t),s=this._events;t.views||(i=this.view().name,n.views=e.map(this.options.views,function(e){var t=E(e),n=t?"string"!=typeof e.type?e.title:e.type:e;return i===n?t?e.selected=!0:e={type:n,selected:!0}:t&&(e.selected=!1),e})),t.dataSource||(n.dataSource=this.dataSource),t.dependencies||(n.dependencies=this.dependencies),t.resources||(n.resources=this.resources),t.assignments||(n.assignments=this.assignments),this.destroy(),this.element.empty(),this.options=null,this.init(this.element,n,s),_.fn._setEvents.call(this,n)},_attachEvents:function(){this._resizeHandler=R(this.resize,this,!1),e(window).on("resize"+A,this._resizeHandler)},_wrapper:function(){var e=f.styles,t=[e.icon,e.resizeHandle].join(" "),i=this.options,n=i.height,s=i.width;this.wrapper=this.element.addClass(e.wrapper).append("<div class='"+e.listWrapper+"'><div></div></div>").append("<div class='"+e.splitBarWrapper+"'><div class='"+t+"'></div></div>").append("<div class='"+e.timelineWrapper+"'><div></div></div>"),this.wrapper.find(K+e.list).width(i.listWidth),n&&this.wrapper.height(n),s&&this.wrapper.width(s),i.rowHeight&&this.wrapper.addClass(e.rowHeight)},_toolbar:function(){var t,i,n,s=this,r=f.styles,a=K+r.toolbar.views+" > li",o=K+r.toolbar.pdfButton,d=K+r.buttonToggle,l=K+r.gridContent,c=e(K+r.list),u=e(K+r.timeline),h=r.hovered,p=this.options.toolbar,b=e("<div class='"+r.toolbar.actions+"'>"),k=function(e){e.matches?c.css({display:"none","max-width":0}):(c.css({display:"inline-block",width:"30%","max-width":"none"}),u.css("display","inline-block"),s.refresh(),u.find(l).scrollTop(s.scrollTop)),s._resize()};B(p)||(p=typeof p===L?p:this._actions(p),p=R(v.template(p),this)),n=e(J({styles:r.toolbar})),i=e(ee({ns:v.ns,views:this.timeline.views,styles:r.toolbar})),b.append(p({})),t=e("<div class='"+r.toolbar.headerWrapper+"'>").append(n).append(i).append(b),i.find("li").length>1&&i.prepend($({styles:r.toolbar})),this.wrapper.prepend(t),this.toolbar=t,g&&(this._mediaQueryHandler=R(k,this),this._mediaQuery=window.matchMedia("(max-width: 480px)"),this._mediaQuery.addListener(this._mediaQueryHandler)),t.on(V+A,a,function(t){var n,a,o;t.preventDefault(),n=s.list,a=e(this).attr(v.attr("name")),o=i.find(K+r.toolbar.currentView),o.is(":visible")&&o.parent().toggleClass(r.toolbar.expanded),n.editable&&n.editable.trigger("validate")||(s.trigger("navigate",{view:a})||s.view(a),s.toolbar.find(K+r.focused).removeClass(r.focused))}).on("keydown"+A,a,function(t){var i=e(K+r.toolbar.views).children(":not(.k-current-view)"),n=i.index(s._focusedView&&s._focusedView[0]||i.closest(K+r.selected)[0]);t.keyCode===m.RIGHT?(e(s.toolbar.find(K+r.focused)).removeClass(r.focused),s._focusedView=e(n+1===i.length?i[0]:i[n+1]),s._focusedView.focus().addClass(r.focused),t.preventDefault()):t.keyCode===m.LEFT?(e(s.toolbar.find(K+r.focused)).removeClass(r.focused),s._focusedView=e(0===n?i[i.length-1]:i[n-1]),s._focusedView.focus().addClass(r.focused),t.preventDefault()):t.keyCode===m.DOWN&&s.toolbar.find(K+r.toolbar.currentView).parent().hasClass(r.toolbar.expanded)?(e(s.toolbar.find(K+r.focused)).removeClass(r.focused),s._focusedView=e(n+1===i.length?i[0]:i[n+1]),s._focusedView.focus().addClass(r.focused),t.preventDefault()):t.keyCode===m.UP&&s.toolbar.find(K+r.toolbar.currentView).parent().hasClass(r.toolbar.expanded)?(e(s.toolbar.find(K+r.focused)).removeClass(r.focused),s._focusedView=e(0===n?i[i.length-1]:i[n-1]),s._focusedView.focus().addClass(r.focused),t.preventDefault()):t.keyCode!==m.ENTER&&t.keyCode!==m.SPACEBAR||!s._focusedView?(t.keyCode===m.SPACEBAR||t.keyCode===m.ENTER||t.keyCode===m.DOWN&&t.altKey)&&s.toolbar.find(K+r.toolbar.currentView+" > a").hasClass(r.focused)?(s.toolbar.find(K+r.toolbar.currentView).parent().toggleClass(r.toolbar.expanded),t.preventDefault()):t.keyCode===m.ESC&&s.toolbar.find(K+r.toolbar.currentView).parent().hasClass(r.toolbar.expanded)?(s.toolbar.find(K+r.toolbar.currentView).parent().toggleClass(r.toolbar.expanded).blur(),s._focusedView=null,s.toolbar.find(K+r.toolbar.currentView+" > a").addClass(r.focused).focus(),t.preventDefault()):t.keyCode>=49&&t.keyCode<=57&&s.view(s.timeline._viewByIndex(t.keyCode-49)):(s.view(s._focusedView.text().toLowerCase()),t.preventDefault())}).on(V+A,o,function(e){e.preventDefault(),s.saveAsPDF()}).on(V+A,d,function(e){e.preventDefault(),c.is(":visible")?(c.css({display:"none",width:"0"}),u.css({display:"inline-block",width:"100%"}),s.refresh(),u.find(l).scrollTop(s.scrollTop)):(u.css({display:"none",width:0}),c.css({display:"inline-block",width:"100%","max-width":"none"}).find(l).scrollTop(s.scrollTop)),s._resize()}),this.wrapper.on("focusout"+A,function(t){e(t.relatedTarget).closest(K+r.toolbar.toolbar).length||s.toolbar.find(K+r.focused).removeClass(r.focused),e(t.relatedTarget).closest(K+r.toolbar.views).length||s.toolbar.find(K+r.toolbar.views).removeClass(r.toolbar.expanded)}).find(K+r.toolbar.toolbar+" li").hover(function(){e(this).addClass(h)},function(){e(this).removeClass(h)})},_actions:function(){var e,t,i=this.options,n=i.editable,s=i.toolbar,r="";if(!T(s)){if(!n||n.create===!1)return r;s=["append"]}for(e=0,t=s.length;e<t;e++)r+=this._createButton(s[e]);return r},_footer:function(){var t,i,n,s,r,a=this.options.editable;a&&a.create!==!1&&(t=f.styles.toolbar,i=this.options.messages.actions,n=e(v.template(X)(F(!0,{styles:t},o.append,{text:i.append}))),s=e("<div class='"+t.actions+"'>").append(n),r=e("<div class='"+t.footerWrapper+"'>").append(s),this.wrapper.append(r),this.footer=r)},_createButton:function(e){var t=e.template||X,i=this.options.messages.actions,n=typeof e===L?e:e.name||e.text,s=o[n]?o[n].className:"k-gantt-"+(n||"").replace(/\s/g,""),r={iconClass:"",action:"",text:n,className:s,styles:f.styles.toolbar};if(!(n||E(e)&&e.template))throw Error("Custom commands should have name specified");return r=F(!0,r,o[n],{text:i[n]}),E(e)&&(e.className&&x(r.className,e.className.split(" "))<0&&(e.className+=" "+r.className),r=F(!0,r,e)),v.template(t)(r)},_adjustDimensions:function(){var e=this.element,t=f.styles,i=K+t.list,n=K+t.timeline,s=K+t.splitBar,r=W(this.toolbar),a=this.footer?W(this.footer):0,o=e.height(),d=e.width(),l=I(e.find(s)),c=I(e.find(i));e.children([i,n,s].join(",")).height(o-(r+a)).end().children(n).width(d-(l+c)),d<c+l&&e.find(i).width(d-l)},_scrollTo:function(e){var t,n,s=this.timeline.view(),r=this.list,a=v.attr("uid"),o="string"==typeof e?e:e.closest("tr"+i()).attr(a),d=function(){0!==n.length&&t()};s.content.is(":visible")?(n=s.content.find(i(o)),t=function(){s._scrollTo(n)}):(n=r.content.find(i(o)),t=function(){n.get(0).scrollIntoView()}),d()},_dropDowns:function(){var e=this,t=K+f.styles.toolbar.actions,i=this.options.messages.actions,n=this.timeline,s=this.options.editable,r=function(t){var i,s=t.type,r=e.dataSource,a=r._createNewModel(),o=e.dataItem(e.select()),d=r.taskParent(o),l=n.view()._timeSlots()[0],c="add"===s?o:d,u=e.list.editable;u&&u.trigger("validate")||(a.set("title","New task"),c?(a.set("parentId",c.get("id")),a.set("start",c.get("start")),a.set("end",c.get("end"))):(a.set("start",l.start),a.set("end",l.end)),"add"!==s&&(i=o.get("orderId"),i="insert-before"===s?i:i+1),e._createTask(a,i))};s&&s.create!==!1&&(this.footerDropDown=new re(this.footer.children(t).eq(0),{messages:{actions:i},direction:"up",animation:{open:{effects:"slideIn:up"}},navigatable:e.options.navigatable}),this.headerDropDown=new re(this.toolbar.children(t).eq(0),{messages:{actions:i},navigatable:e.options.navigatable}),this.footerDropDown.bind("command",r),this.headerDropDown.bind("command",r))},_list:function(){var e,t,i=this,n=i.options.navigatable,s=f.styles,a=this.wrapper.find(K+s.list),o=a.find("> div"),d=this.wrapper.find(K+s.toolbar.actions+" > button"),l={columns:this.options.columns||[],dataSource:this.dataSource, selectable:this.options.selectable,editable:this.options.editable,resizable:this.options.resizable,columnResizeHandleWidth:this.options.columnResizeHandleWidth,listWidth:I(a),resourcesField:this.resources.field,rowHeight:this.options.rowHeight},c=l.columns,u=function(){n&&(i._current(i._cachedCurrent),r(i.list.content.find("table"),!0)),delete i._cachedCurrent};for(t=0;t<c.length;t++)e=c[t],e.field===this.resources.field&&"function"!=typeof e.editor&&(e.editor=R(this._createResourceEditor,this));this.list=new v.ui.GanttList(o,l),this.list.bind("render",function(){i._navigatable()},!0).bind("edit",function(e){i._cachedCurrent=e.cell,i.trigger("edit",{task:e.model,container:e.cell})&&e.preventDefault()}).bind("cancel",function(e){i.trigger("cancel",{task:e.model,container:e.cell})&&e.preventDefault(),u()}).bind("update",function(e){i._updateTask(e.task,e.updateInfo),u()}).bind("change",function(){i.trigger("change");var e=i.list.select();e.length?(d.removeAttr("data-action","add"),i.timeline.select("[data-uid='"+e.attr("data-uid")+"']")):(d.attr("data-action","add"),i.timeline.clearSelection())}).bind("columnResize",function(e){i.trigger("columnResize",{column:e.column,oldWidth:e.oldWidth,newWidth:e.newWidth})})},_timeline:function(){var e=this,i=f.styles,s=n(F(!0,{resourcesField:this.resources.field},this.options)),r=this.wrapper.find(K+i.timeline+" > div"),a=K+i.toolbar.currentView+" > "+K+i.toolbar.link;this.timeline=new v.ui.GanttTimeline(r,s),this.timeline.bind("navigate",function(t){var n=t.view.replace(/\./g,"\\.").toLowerCase(),s=e.toolbar.find(K+i.toolbar.views+" > li").removeClass(i.selected).end().find(K+i.toolbar.viewButton+"-"+n).addClass(i.selected).find(K+i.toolbar.link).text();e.toolbar.find(a).text(s),e.refresh()}).bind("moveStart",function(i){var n=e.list.editable;return n&&n.trigger("validate")?(i.preventDefault(),t):(e.trigger("moveStart",{task:i.task})&&i.preventDefault(),t)}).bind("move",function(t){var i=t.task,n=t.start,s=new Date(n.getTime()+i.duration());e.trigger("move",{task:i,start:n,end:s})&&t.preventDefault()}).bind("moveEnd",function(t){var i=t.task,n=t.start,s=new Date(n.getTime()+i.duration());e.trigger("moveEnd",{task:i,start:n,end:s})||e._updateTask(e.dataSource.getByUid(i.uid),{start:n,end:s})}).bind("resizeStart",function(i){var n=e.list.editable;return n&&n.trigger("validate")?(i.preventDefault(),t):(e.trigger("resizeStart",{task:i.task})&&i.preventDefault(),t)}).bind("resize",function(t){e.trigger("resize",{task:t.task,start:t.start,end:t.end})&&t.preventDefault()}).bind("resizeEnd",function(t){var i=t.task,n={};t.resizeStart?n.start=t.start:n.end=t.end,e.trigger("resizeEnd",{task:i,start:t.start,end:t.end})||e._updateTask(e.dataSource.getByUid(i.uid),n)}).bind("percentResizeStart",function(t){var i=e.list.editable;i&&i.trigger("validate")&&t.preventDefault()}).bind("percentResizeEnd",function(t){e._updateTask(e.dataSource.getByUid(t.task.uid),{percentComplete:t.percentComplete})}).bind("dependencyDragStart",function(t){var i=e.list.editable;i&&i.trigger("validate")&&t.preventDefault()}).bind("dependencyDragEnd",function(t){var i=e.dependencies._createNewModel({type:t.type,predecessorId:t.predecessor.id,successorId:t.successor.id});e._createDependency(i)}).bind("select",function(t){var i=e.list.editable;i&&i.trigger("validate"),e.select("[data-uid='"+t.uid+"']")}).bind("editTask",function(t){var i=e.list.editable;i&&i.trigger("validate")||e.editTask(t.uid)}).bind("clear",function(){e.clearSelection()}).bind("removeTask",function(t){var i=e.list.editable;i&&i.trigger("validate")||e.removeTask(e.dataSource.getByUid(t.uid))}).bind("removeDependency",function(t){var i=e.list.editable;i&&i.trigger("validate")||e.removeDependency(e.dependencies.getByUid(t.uid))})},_dataSource:function(){var e=this.options,t=e.dataSource;t=T(t)?{data:t}:t,this.dataSource&&this._refreshHandler?this.dataSource.unbind("change",this._refreshHandler).unbind("progress",this._progressHandler).unbind("error",this._errorHandler):(this._refreshHandler=R(this.refresh,this),this._progressHandler=R(this._requestStart,this),this._errorHandler=R(this._error,this)),this.dataSource=v.data.GanttDataSource.create(t).bind("change",this._refreshHandler).bind("progress",this._progressHandler).bind("error",this._errorHandler)},_dependencies:function(){var e=this.options.dependencies||{},t=T(e)?{data:e}:e;this.dependencies&&this._dependencyRefreshHandler?this.dependencies.unbind("change",this._dependencyRefreshHandler).unbind("error",this._dependencyErrorHandler):(this._dependencyRefreshHandler=R(this.refreshDependencies,this),this._dependencyErrorHandler=R(this._error,this)),this.dependencies=v.data.GanttDependencyDataSource.create(t).bind("change",this._dependencyRefreshHandler).bind("error",this._dependencyErrorHandler)},_resources:function(){var e=this.options.resources,t=e.dataSource||{};this.resources={field:"resources",dataTextField:"name",dataColorField:"color",dataFormatField:"format"},F(this.resources,e),this.resources.dataSource=v.data.DataSource.create(t)},_assignments:function(){var e=this.options.assignments,t=e.dataSource||{};this.assignments?this.assignments.dataSource.unbind("change",this._assignmentsRefreshHandler):this._assignmentsRefreshHandler=R(this.refresh,this),this.assignments={dataTaskIdField:"taskId",dataResourceIdField:"resourceId",dataValueField:"value"},F(this.assignments,e),this.assignments.dataSource=v.data.DataSource.create(t),this.assignments.dataSource.bind("change",this._assignmentsRefreshHandler)},_createEditor:function(){var e=this,i=this._editor=new h(this.wrapper,F({},this.options,{target:this,resources:{field:this.resources.field,editor:R(this._createResourceEditor,this)},createButton:R(this._createPopupButton,this)}));i.bind("cancel",function(i){var n=e.dataSource.getByUid(i.model.uid);return e.trigger("cancel",{container:i.container,task:n})?(i.preventDefault(),t):(e.cancelTask(),t)}).bind("edit",function(t){var i=e.dataSource.getByUid(t.model.uid);e.trigger("edit",{container:t.container,task:i})&&t.preventDefault()}).bind("save",function(t){var i=e.dataSource.getByUid(t.model.uid);e.saveTask(i,t.updateInfo)}).bind("remove",function(t){e.removeTask(t.model.uid)}).bind("close",e._onDialogClose)},_onDialogClose:function(){},_createResourceEditor:function(e,t){var i,n=this,s=t instanceof D?t:t.model,r=s.get("id"),a=this.options.messages,o=this.resources.field,d={step:.01},l=this.assignments.dataSource.options.schema.model;l&&l.fields.Units&&l.fields.Units.validation&&F(!0,d,l.fields.Units.validation),i=this._resourceEditor=new p(e,{resourcesField:o,unitsValidation:d,data:this._wrapResourceData(r),model:s,messages:F({},a.editor),buttons:[{name:"update",text:a.save,className:f.styles.primary},{name:"cancel",text:a.cancel}],createButton:R(this._createPopupButton,this),save:function(e){n._updateAssignments(e.model.get("id"),e.model.get(o))}}),i.open()},_createPopupButton:function(e){var t=e.name||e.text,i={className:f.styles.popup.button+" k-gantt-"+(t||"").replace(/\s/g,""),text:t,attr:""};if(!(t||E(e)&&e.template))throw Error("Custom commands should have name specified");return E(e)&&(e.className&&(e.className+=" "+i.className),i=F(!0,i,e)),v.template(Z)(i)},view:function(e){return this.timeline.view(e)},range:function(e){var t=this.dataSource,i=this.view(),n=this.timeline;return e&&(i.options.range={start:e.start,end:e.end},n._render(t.taskTree()),n._renderDependencies(this.dependencies.view())),{start:i.start,end:i.end}},date:function(e){var t=this.view();return e&&(t.options.date=e,t._scrollToDate(e)),t.options.date},dataItem:function(e){var t,i;return e?(t=this.list,i=t.content.find(e),t._modelFromElement(i)):null},setDataSource:function(e){this.options.dataSource=e,this._dataSource(),this.list._setDataSource(this.dataSource),this.options.autoBind&&e.fetch()},setDependenciesDataSource:function(e){this.options.dependencies=e,this._dependencies(),this.options.autoBind&&e.fetch()},items:function(){return this.wrapper.children(".k-task")},_updateAssignments:function(e,t){for(var i,n,s,r,a,o,d,l=this.assignments.dataSource,c=this.assignments.dataTaskIdField,u=this.assignments.dataResourceIdField,h=!1,p=new C(l.view()).filter({field:c,operator:"eq",value:e}).toArray();p.length;){for(i=p[0],r=0,a=t.length;r<a;r++)if(n=t[r],i.get(u)===n.get("id")){s=t[r].get("value"),this._updateAssignment(i,s),t.splice(r,1),h=!0;break}h||this._removeAssignment(i),h=!1,p.shift()}for(o=0,d=t.length;o<d;o++)n=t[o],this._createAssignment(n,e);l.sync()},cancelTask:function(){var e=this._editor,t=e.container;t&&e.close()},editTask:function(e){var t,i="string"==typeof e?this.dataSource.getByUid(e):e;i&&(t=this.dataSource._createNewModel(i.toJSON()),t.uid=i.uid,this.cancelTask(),this._editTask(t))},_editTask:function(e){this._editor.editTask(e)},saveTask:function(e,t){var i=this._editor,n=i.container,s=i.editable;n&&s&&s.end()&&this._updateTask(e,t)},_updateTask:function(e,t){var i=this.resources.field;this.trigger("save",{task:e,values:t})||(this._preventRefresh=!0,this.dataSource.update(e,t),t[i]&&this._updateAssignments(e.get("id"),t[i]),this._syncDataSource())},_updateAssignment:function(e,t){var i=this.assignments.dataValueField;e.set(i,t)},removeTask:function(e){var t=this,i="string"==typeof e?this.dataSource.getByUid(e):e;i&&this._taskConfirm(function(e){e||t._removeTask(i)},i)},_createTask:function(e,i){if(!this.trigger("add",{task:e,dependency:null})){var n=this.dataSource;this._preventRefresh=!0,i===t?n.add(e):n.insert(i,e),this._scrollToUid=e.uid,this._syncDataSource()}},_createDependency:function(e){this.trigger("add",{task:null,dependency:e})||(this._preventDependencyRefresh=!0,this.dependencies.add(e),this._preventDependencyRefresh=!1,this.dependencies.sync())},_createAssignment:function(e,t){var i=this.assignments,n=i.dataSource,s=i.dataTaskIdField,r=i.dataResourceIdField,a=i.dataValueField,o=n._createNewModel();o[s]=t,o[r]=e.get("id"),o[a]=e.get("value"),n.add(o)},removeDependency:function(e){var t=this,i="string"==typeof e?this.dependencies.getByUid(e):e;i&&this._dependencyConfirm(function(e){e||t._removeDependency(i)},i)},_removeTaskDependencies:function(e,t){this._preventDependencyRefresh=!0;for(var i=0,n=t.length;i<n;i++)this.dependencies.remove(t[i]);this._preventDependencyRefresh=!1,this.dependencies.sync()},_removeTaskAssignments:function(e){var t,i,n=this.assignments.dataSource,s=n.view(),r={field:this.assignments.dataTaskIdField,operator:"eq",value:e.get("id")};for(s=new C(s).filter(r).toArray(),this._preventRefresh=!0,t=0,i=s.length;t<i;t++)n.remove(s[t]);this._preventRefresh=!1,n.sync()},_removeTask:function(e){var t=this.dependencies.dependencies(e.id);this.trigger("remove",{task:e,dependencies:t})||(this._removeTaskDependencies(e,t),this._removeTaskAssignments(e),this._preventRefresh=!0,this.dataSource.remove(e)&&this._syncDataSource(),this._preventRefresh=!1)},_removeDependency:function(e){this.trigger("remove",{task:null,dependencies:[e]})||this.dependencies.remove(e)&&this.dependencies.sync()},_removeAssignment:function(e){this.assignments.dataSource.remove(e)},_taskConfirm:function(e,t){var i=this.options.messages;this._confirm(e,{model:t,text:i.deleteTaskConfirmation,title:i.deleteTaskWindowTitle})},_dependencyConfirm:function(e,t){var i=this.options.messages;this._confirm(e,{model:t,text:i.deleteDependencyConfirmation,title:i.deleteDependencyWindowTitle})},_confirm:function(e,t){var i,n,s=this.options.editable;s===!0||s.confirmation!==!1?(i=this.options.messages,n=[{name:"delete",text:i.destroy,className:f.styles.primary,click:function(){e()}},{name:"cancel",text:i.cancel,click:function(){e(!0)}}],this.showDialog(F(!0,{},t,{buttons:n}))):e()},showDialog:function(e){this._editor.showDialog(e)},refresh:function(){var e,t,n,s,r,a;this._preventRefresh||this.list.editable||(this._progress(!1),e=this.dataSource,t=e.taskTree(),n=this._scrollToUid,a=-1,this.current&&(r=this.current.closest("tr").attr(v.attr("uid")),a=this.current.index()),this.trigger("dataBinding")||(0!==this.resources.dataSource.data().length&&this._assignResources(t),this._editor&&this._editor.close(),this.clearSelection(),this.list._render(t),this.timeline._render(t),this.timeline._renderDependencies(this.dependencies.view()),n&&(this._scrollTo(n),this.select(i(n))),(n||r)&&a>=0&&(s=this.list.content.find("tr"+i(n||r)+" > td:eq("+a+")"),this._current(s)),this._scrollToUid=null,this.trigger("dataBound")))},refreshDependencies:function(){this._preventDependencyRefresh||this.trigger("dataBinding")||(this.timeline._renderDependencies(this.dependencies.view()),this.trigger("dataBound"))},_assignResources:function(e){var t,i,n=this.resources,s=this.assignments,r=function(){var e=s.dataSource.view(),t={field:s.dataTaskIdField};return e=new C(e).group(t).toArray()},a=r(),o=function(e,t){var i,s,r=e.get("id");for(v.setter(n.field)(e,new S([])),i=0,s=a.length;i<s;i++)a[i].value===r&&t(e,a[i].items)},d=function(e,t){var i,r,a,o,d,l,c,u;for(i=0,r=t.length;i<r;i++)a=t[i],o=n.dataSource.get(a.get(s.dataResourceIdField)),d=a.get(s.dataValueField),l=a.get(s.dataResourceIdField),c=o.get(n.dataFormatField)||P,u=v.toString(d,c),e[n.field].push(new D({id:l,name:o.get(n.dataTextField),color:o.get(n.dataColorField),value:d,formatedValue:u}))};for(t=0,i=e.length;t<i;t++)o(e[t],d)},_wrapResourceData:function(e){var t,i,n,s=this,r=[],a=this.resources.dataSource.view(),o=this.assignments.dataSource.view(),d=new C(o).filter({field:s.assignments.dataTaskIdField,operator:"eq",value:e}).toArray(),l=function(e){var t=null;return new C(d).filter({field:s.assignments.dataResourceIdField,operator:"eq",value:e}).select(function(e){t+=e.get(s.assignments.dataValueField)}),t};for(i=0,n=a.length;i<n;i++)t=a[i],r.push({id:t.get("id"),name:t.get(s.resources.dataTextField),format:t.get(s.resources.dataFormatField)||P,value:l(t.id)});return r},_syncDataSource:function(){this._preventRefresh=!1,this._requestStart(),this.dataSource.sync()},_requestStart:function(){this._progress(!0)},_error:function(){this._progress(!1)},_progress:function(e){v.ui.progress(this.element,e)},_resizable:function(){var t,i,n,s=this,r=this.wrapper,a=f.styles,o=K+a.gridContent,d=r.find(K+a.list),l=r.find(K+a.timeline);this._resizeDraggable=r.find(K+a.splitBar).height(d.height()).hover(function(){e(this).addClass(a.splitBarHover)},function(){e(this).removeClass(a.splitBarHover)}).end().kendoResizable({orientation:"horizontal",handle:K+a.splitBar,start:function(){t=d.width(),i=l.width(),n=l.find(o).scrollLeft()},resize:function(e){var a=e.x.initialDelta;v.support.isRtl(r)&&(a*=-1),t+a<0||i-a<0||(d.width(t+a),l.width(i-a),l.find(o).scrollLeft(n+a),s.timeline.view()._renderCurrentTime())}}).data("kendoResizable")},_scrollable:function(){var t=this,i=f.styles,n=K+i.gridContent,s=K+i.gridHeaderWrap,r=this.timeline.element.find(s),a=this.timeline.element.find(n),o=this.list.element.find(s),d=this.list.element.find(n);k&&d.css("overflow-y","auto"),a.on("scroll",function(){t.scrollTop=this.scrollTop,r.scrollLeft(this.scrollLeft),d.scrollTop(this.scrollTop)}),d.on("scroll",function(){o.scrollLeft(this.scrollLeft)}).on("DOMMouseScroll"+A+" mousewheel"+A,function(t){var i=a.scrollTop(),n=v.wheelDeltaY(t);n&&(t.preventDefault(),e(t.currentTarget).one("wheel"+A,!1),a.scrollTop(i+-n))})},_navigatable:function(){var n,s=this,a=this.options.navigatable,o=this.options.editable,d=this.list.header.find("table"),l=this.list.content.find("table"),c=f.styles,u=v.support.isRtl(this.wrapper),h=this.timeline.element.find(K+c.gridContent),p=d.add(l),g=i(),b={collapse:!1,expand:!0},k=function(e){var t=s.timeline.view()._timeSlots()[0].offsetWidth;h.scrollLeft(h.scrollLeft()+(e?-t:t))},y=function(e){var t=s.timeline.view()._rowHeight;h.scrollTop(h.scrollTop()+(e?-t:t))},_=function(e){var t=s.current.parent("tr"+i()),n=s.current.index(),a=t[e]();0!==s.select().length&&s.clearSelection(),0!==a.length?(s._current(a.children("td:eq("+n+")")),s._scrollTo(s.current)):s.current.is("td")&&"prev"==e?r(d):s.current.is("th")&&"next"==e&&r(l)},w=function(e){var t=s.current[e]();0!==t.length&&(s._current(t),n=s.current.index())},D=function(e){var t=s.dataItem(s.current);t.summary&&t.expanded!==e&&t.set("expanded",e)},S=function(){var e,t,i=s.options.editable;i&&i.destroy!==!1&&!s.list.editable&&(e=s.select(),t=v.attr("uid"),e.length&&s.removeTask(e.attr(t)))};return e(this.wrapper).on("mousedown"+A,"tr"+g+", div"+g+":not("+K+c.line+")",function(t){var n,d=e(t.currentTarget),l=e(t.target).is(":button,a,:input,a>.k-icon,textarea,span.k-icon,span.k-link,.k-input,.k-multiselect-wrap");t.ctrlKey||(a&&(n=d.is("tr")?e(t.target).closest("td"):s.list.content.find("tr"+i(d.attr(v.attr("uid")))+" > td:first"),s._current(n)),!a&&!o||l||(s._focusTimeout=setTimeout(function(){r(s.list.content.find("table"),!0)},2)))}).on("keydown"+A,function(i){var n,s=i.keyCode,r=this,a=e(r._getToolbarItems()),o=a.index(r.toolbar.find(K+c.focused)[0]);if(o===-1&&e(i.target).closest(K+c.toolbar.views).length&&(o=a.index(r.toolbar.find(".k-gantt-views > .k-state-selected:visible > a, .k-current-view:visible > a")[0])),n=i.shiftKey?a[o-1]:a[o+1],s===m.F10)r.toolbar.find(".k-button:visible:first").addClass(c.focused).focus(),i.preventDefault();else if(s==m.TAB&&e(i.target).closest(K+c.toolbar.toolbar).length){if(r.toolbar.find(K+c.focused).removeClass(c.focused).blur(),n)return e(n).addClass(c.focused).focus(),i.preventDefault(),t;this.list.element.is(":visible")?this.list.element.find("table[role=treegrid]").focus():this.element.find(K+c.tasks)[0].focus(),i.preventDefault()}}.bind(this)),a!==!0?(l.on("keydown"+A,function(e){e.keyCode==m.DELETE&&S()}),t):(p.on("focus"+A,function(){var t=this===l.get(0)?"td":"th",i=s.select(),r=s.current||e(i.length?i:this).find(t+":eq("+(n||0)+")");s._current(r),e(s.toolbar.find(K+c.focused)).removeClass(c.focused),e(s.toolbar.find(K+c.toolbar.currentView)).parent().removeClass(c.toolbar.expanded)}).on("blur"+A,function(){s._current(),this=