@progress/kendo-ui
Version:
This package is part of the [Kendo UI for jQuery](http://www.telerik.com/kendo-ui) suite.
3 lines (2 loc) • 39.7 kB
JavaScript
!function(e){"function"==typeof define&&define.amd?define(["kendo.data.min","kendo.resizable.min","kendo.switch.min","kendo.gantt.data.min","kendo.gantt.editors.min","kendo.gantt.list.min","kendo.gantt.timeline.min","kendo.pdf.min","kendo.toolbar.min","kendo.html.button.min"],e):e()}((function(){!function(e,t){var n=window.kendo,i=n.keys,s="matchMedia"in window,r=n.support.mobileOS,a=n.ui.Widget,o=n.data.ObservableObject,d=n.data.ObservableArray,l=n.data.Query,c=Array.isArray,u=n.isFunction,h=e.extend,p=e.isPlainObject,f=n._outerWidth,g=n._outerHeight,v=".kendoGantt",m="tabIndex",k="string",_="aria-activedescendant",w="gantt_active_cell",b=".",y=function(e){var t=e.label,n=e.styles,i=e.views;return'<select aria-label="'+t+'" class="k-dropdown k-picker k-dropdown-list '+n.viewsDropdown+'">'+Object.keys(i).map((function(e){return'<option value="'+e+'">'+i[e].title+"</option>"})).join("")+"</select>"},T=[{data:"add",text:"addChild"},{data:"insert-before",text:"insertBefore"},{data:"insert-after",text:"insertAfter"}],D={wrapper:"k-gantt",plannedTasks:"k-gantt-planned",rowHeight:"k-gantt-rowheight",content:"k-gantt-content",listWrapper:"k-gantt-treelist",list:"k-gantt-treelist",timelineWrapper:"k-gantt-timeline",timeline:"k-gantt-timeline",splitBarWrapper:"k-splitbar k-splitbar-horizontal k-splitbar-draggable-horizontal",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-gantt-line",buttonDelete:"k-gantt-delete",buttonCancel:"k-gantt-cancel",buttonSave:"k-gantt-update",buttonToggle:"k-gantt-toggle",buttonDefaults:"k-button-md k-rounded-md k-button-solid",primary:"k-button-solid-primary",hovered:"k-hover",selected:"k-selected",focused:"k-focus",focusedCell:"k-focus",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",button:"k-button",editField:"k-edit-field",editLabel:"k-edit-label",resourcesField:"k-gantt-resources"},toolbar:{headerWrapper:"k-gantt-header k-gantt-toolbar",footerWrapper:"k-gantt-footer k-gantt-toolbar",toolbar:"k-gantt-toolbar",views:"k-gantt-views",viewsWrapper:"k-gantt-views-wrapper",viewsDropdown:"k-views-dropdown",button:"k-button",buttonToggle:"k-gantt-toggle",buttonDefaults:"k-button-md k-rounded-md k-button-solid",iconPlus:"plus",iconPdf:"file-pdf",iconToggle:"layout-1-by-4",viewButton:"k-view",link:"k-link",pdfButton:"k-gantt-pdf",appendButton:"k-gantt-create"}};function S(e){return"["+n.attr("uid")+(e?"='"+e+"']":"]")}function C(t,i){var s=t.parents("["+n.attr("role")+'="gantt"]'),r=[],a=e(s).parentsUntil("body").filter((function(e,t){return"visible"!=n.getComputedStyles(t,["overflow"]).overflow})).add(window);t.attr(m,0),i&&a.each((function(t,n){r[t]=e(n).scrollTop()}));try{t[0].setActive()}catch(e){t[0].focus()}i&&a.each((function(t,n){e(n).scrollTop(r[t])}))}var R=a.extend({init:function(e,t,i){c(t)&&(t={dataSource:t}),a.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._processDefaults(),this._toolbar(),this._footer(),this._adjustDimensions(),this._preventRefresh=!0,this.view(this.timeline._selectedViewName),this._preventRefresh=!1,this._dataSource(),this._assignments(),this._list(),this._dependencies(),this._resizable(),this._scrollable(),this._dataBind(),this._attachEvents(),this._createEditor(),n.notify(this)},events:["dataBinding","dataBound","add","edit","remove","cancel","save","change","navigate","moveStart","move","moveEnd","resizeStart","resize","resizeEnd","columnHide","columnReorder","columnResize","columnShow","togglePlannedTasks"],options:{name:"Gantt",autoBind:!0,navigatable:!1,selectable:!0,editable:!0,resizable:!1,columnResizeHandleWidth:3,columns:[],views:[],dataSource:{},dependencies:{},resources:{},assignments:{},taskTemplate:null,messages:{save:"Save",cancel:"Cancel",destroy:"Delete",deleteTaskConfirmation:"Are you sure you want to delete this task?",deleteDependencyConfirmation:"Are you sure you want to delete this dependency?",deleteTaskWindowTitle:"Delete task",deleteDependencyWindowTitle:"Delete dependency",selectView:"Select view",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",toggle:"Toggle pane"},editor:{editorTitle:"Task",resourcesEditorTitle:"Resources",title:"Title",start:"Start",end:"End",plannedStart:"Planned Start",plannedEnd:"Planned End",percentComplete:"Complete",resources:"Resources",assignButton:"Assign",resourcesHeader:"Resources",unitsHeader:"Units",parent:"Parent",addNew:"Add",name:"Name",percentCompleteHint:"value from 0 to 1",remove:"Remove",actualStart:"Actual Start",actualEnd:"Actual End",parentOptionLabel:"-None-",general:"General",predecessors:"Predecessors",successors:"Successors",other:"Other",dependencyType:"Type"},plannedTasks:{switchText:"Planned Tasks",offsetTooltipAdvanced:"Met deadline earlier",offsetTooltipDelay:"Delay",seconds:"seconds",minutes:"minutes",hours:"hours",days:"days"}},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,showPlannedTasks:!1},select:function(e){var t=this.list;if(!e)return t.select();typeof e===k&&(e=t.content.find(e)),t.select(e),this._selectionUpdate(),this.list.element.find("table[role=treegrid]").trigger("focus")},clearSelection:function(){this.list.clearSelection(),this._selectionUpdate()},destroy:function(){a.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.toolbar&&this.toolbar.getKendoToolBar()&&this.toolbar.getKendoToolBar().destroy(),this.footer&&this.footer.getKendoToolBar()&&this.footer.getKendoToolBar().destroy(),this._editor&&this._editor.destroy(),this._resourceEditorWindow&&this._resourceEditorWindow.destroy(),this._resizeDraggable&&this._resizeDraggable.destroy(),this.toolbar.off(v),s&&(this._mediaQuery.removeListener(this._mediaQueryHandler),this._mediaQuery=null),e(window).off("resize"+v,this._resizeHandler),e(this.wrapper).off(v),this.toolbar=null,this.footer=null,n.destroy(this.element)},setOptions:function(t){var i=n.deepExtend({},this.options,t),s=this._events;if(!t.views){var r=this.view().name;i.views=e.map(this.options.views,(function(e){var t=p(e),n=t?"string"!=typeof e.type?e.title:e.type:e;return r===n?t?e.selected=!0:e={type:n,selected:!0}:t&&(e.selected=!1),e}))}t.dataSource||(i.dataSource=this.dataSource),t.dependencies||(i.dependencies=this.dependencies),t.resources||(i.resources=this.resources),t.assignments||(i.assignments=this.assignments),this.destroy(),this.element.empty(),this.options=null,this.init(this.element,i,s),a.fn._setEvents.call(this,i)},_attachEvents:function(){this._resizeHandler=this.resize.bind(this,!1),e(window).on("resize"+v,this._resizeHandler),s&&this._mediaQueryHandler({matches:this._mediaQuery.matches})},_wrapper:function(){var t=R.styles,n=[t.icon,t.resizeHandle].join(" "),i=this.options,s=i.height,r=i.width;this.wrapper=this.element.addClass(t.wrapper).attr("role","application"),this.layout=e("<div class='"+t.content+"' />").appendTo(this.wrapper).append("<div class='"+t.listWrapper+"'><div></div></div>").append("<div class='"+t.splitBarWrapper+"'><div class='"+n+"'></div></div>").append("<div class='"+t.timelineWrapper+"'><div></div></div>"),i.showPlannedTasks&&this.wrapper.addClass(t.plannedTasks),s&&this.wrapper.css("height",s),r&&this.wrapper.css("width",r),i.rowHeight&&this.wrapper.addClass(t.rowHeight),this.treelistWrapper=this.wrapper.find(b+t.list),this.splitbar=this.wrapper.find(b+t.splitBar),this.timelineWrapper=this.wrapper.find(b+t.timeline),this.treelistWrapper.css("width",i.listWidth),this.timelineWrapper.css("width",this.wrapper.width()-this.treelistWrapper.outerWidth()-this.splitbar.outerWidth())},_viewClickHandler:function(e){var t=this.list,i=e.target.attr(n.attr("name"));t.editor&&!t.editor.end()||(this.trigger("navigate",{view:i})?e.preventDefault():this.view(i))},_togglePane:function(e){var t=this,n=t.treelistWrapper,i=t.timelineWrapper,s=b+D.gridContent;e.preventDefault(),n.is(":visible")?(n.addClass("k-hidden"),i.removeClass("k-hidden"),t.refresh(),i.find(s).scrollTop(t.scrollTop)):(n.removeClass("k-hidden"),i.addClass("k-hidden"),n.find(s).scrollTop(t.scrollTop)),t._resize()},_processDefaults:function(){var t=this,i=t.timeline.views,s=n.ns,r=[],a=R.styles.toolbar,o=this.options.messages.actions,d={append:{name:"append",type:"dropDownButton",menuButtons:T.map((function(e){return{text:o[e.text],attributes:{"data-type":e.data}}})),icon:a.iconPlus,attributes:{class:a.appendButton},click:t._addClickHandler.bind(t),open:t._openAddClickHandler.bind(t)},pdf:{name:"pdf",type:"button",attributes:{class:a.pdfButton},icon:a.iconPdf,click:t.saveAsPDF.bind(t)},toggle:{name:"toggle",type:"button",showText:"overflow",attributes:{class:"k-gantt-toggle"},icon:a.iconToggle,click:t._togglePane.bind(t)},switchLabel:{template:"<label for=planned-switch>"+t.options.messages.plannedTasks.switchText+"</label>"},plannedTasks:{type:"component",component:"Switch",element:"<input id='planned-switch' class='k-gantt-planned-switch'>",componentOptions:{checked:t.options.showPlannedTasks,change:t._togglePlannedTasks.bind(t),messages:{checked:"",unchecked:""}}},viewsDdl:{template:y({views:t.timeline.views,styles:a,label:t.options.messages.selectView})},view:{name:"view",type:"button",togglable:!0,group:"views"},viewsGroup:{type:"buttonGroup",attributes:{class:a.views}}};Object.keys(i).map((function(t){var n=e.extend(!0,{},d.view);n.text=i[t].title,n.attributes={class:"k-view-"+t.toLowerCase()},n.attributes["data"+s+"-name"]=t,d[t]=n,r.push(t)})),Object.values(d).map((function(e){"view"===e.name&&(e.click=t._viewClickHandler.bind(t))})),d.viewsGroup.buttons=r,t._viewsButtons=r,t.defaultCommands=d},_processTools:function(t){var n=this.options.editable,i=[],s=["toggle"],r=!1,a=this.defaultCommands;return Array.isArray(t)?i=t:n&&!1!==n.create&&s.push("append"),i.map((function(t){"plannedTasks"!==t&&"plannedTasks"!==t.name||(r=!0,s.push({type:"spacer"}),s.push("switchLabel")),a[t]||a[t.name]||t.template||(t=typeof t===k?{name:t,type:"button",text:t,attributes:{class:"k-gantt-"+t}}:e.extend({},{type:"button",text:t.name,attributes:{class:"k-gantt-"+t.name}},t)),s.push(t)})),r||s.push({type:"spacer"}),this._viewsButtons&&this._viewsButtons.length>0&&(this._viewsButtons.length>1&&s.push("viewsDdl"),s.push("viewsGroup")),s},_mediaQueryHandler:function(e){var t=this,n=t.splitbar,i=t.treelistWrapper,s=t.timelineWrapper,r=b+D.gridContent,a=t.toolbar,o=a.getKendoToolBar();e.matches?(i.addClass("k-hidden"),n.addClass("k-hidden"),o.hide(a.find(".k-gantt-views")),o.show(a.find(".k-views-dropdown")),i.width("100%")):(i.removeClass("k-hidden"),n.removeClass("k-hidden"),s.removeClass("k-hidden"),o.show(a.find(".k-gantt-views")),o.hide(a.find(".k-views-dropdown")),i.width(i.outerWidth()),s.find(r).scrollTop(t.scrollTop)),t._resize()},_toolbar:function(){var t,i,r=this,a=R.styles,o=b+a.toolbar.viewsDropdown,d=this.options.toolbar;typeof d===k&&(d=n.template(d).bind(this)),t=u(d)?this._processTools([{template:d({})}]):this._processTools(d),i=e("<div class='"+a.toolbar.headerWrapper+"'>"),this.wrapper.prepend(i),this.toolbar=i,i.kendoToolBar({resizable:!1,tools:t,size:"medium",defaultTools:this.defaultCommands,parentMessages:this.options.messages.actions}),s&&(this._mediaQuery=window.matchMedia("(max-width: 480px)"),this._mediaQuery.addListener(this._mediaQueryHandler.bind(this))),i.on("change"+v,o,(function(){var t=r.list,n=e(this).val();t.editable&&t.editable.trigger("validate")||r.trigger("navigate",{view:n})||r.view(n)})),this.toggleSwitch=i.find("input.k-gantt-planned-switch").data("kendoSwitch")},_footer:function(){var t=this.options.editable;if(t&&!1!==t.create){var n=R.styles.toolbar,i=this.options.messages.actions,s=e("<div class='"+n.footerWrapper+"'>");this.wrapper.append(s),this.footer=s,s.kendoToolBar({resizable:!1,size:"medium",tools:["append"],defaultTools:{append:h(!0,{},this.defaultCommands.append,{direction:"up",animation:{open:{effects:"slideIn:up"}}})},parentMessages:i})}},_adjustDimensions:function(){var e=this.element,t=g(this.toolbar),n=this.footer?g(this.footer):0,i=e.height(),s=e.width(),r=this.splitbar.is(":visible")?f(this.splitbar):0,a=this.treelistWrapper.is(":visible")?f(this.treelistWrapper):0,o=s-(a+r);this.layout.children().height(i-(t+n)),this.timelineWrapper.width(o),s<a+r&&this.treelistWrapper.width(s-r)},_scrollTo:function(e){var t,i,s=this.timeline.view(),r=this.list,a=n.attr("uid"),o="string"==typeof e?e:e.closest("tr"+S()).attr(a);s.content.is(":visible")?(i=s.content.find(S(o)),t=function(){s._scrollTo(i)}):(i=r.element.find(S(o)),t=function(){i.get(0).scrollIntoView()}),0!==i.length&&t()},_addTask:function(e,t,n){var i,s=this.dataSource._createNewModel({}),r=this.timeline.view()._timeSlots()[0],a=this.list.editor;a&&a.trigger("validate")||(s.set("title","New task"),t?(s.set("parentId",t.get("id")),s.set("start",t.get("start")),s.set("end",t.get("end")),s.set("plannedStart",t.get("plannedStart")),s.set("plannedEnd",t.get("plannedEnd"))):(s.set("start",r.start),s.set("end",r.end)),n&&"add"!==n&&(i=e.get("orderId"),i="insert-before"===n?i:i+1),this._createTask(s,i))},_addClickHandler:function(e){var t=e.target.data("type"),n=this.dataSource,i=this.dataItem(this.select()),s=n.taskParent(i),r="add"===t?i:s;this._addTask(i,r,t)},_openAddClickHandler:function(e){var t=this.select();t&&0!==t.length||(e.preventDefault(),this._addTask())},_getListEditable:function(){var e=!1,t=this.options;return!1!==t.editable&&(e="incell",t.editable&&!1===t.editable.update?e=!1:t.editable&&!1===t.editable.reorder||(e={mode:"incell",move:{reorderable:!0}})),e},_getListOptions:function(){var e=this.options,t=this._getListEditable(),n=this.wrapper.find(b+D.list);return{columns:e.columns||[],dataSource:this.dataSource,selectable:e.selectable,reorderable:e.reorderable,editable:t,resizable:e.resizable,filterable:e.filterable,columnMenu:e.columnMenu,columnResizeHandleWidth:this.options.columnResizeHandleWidth,listWidth:f(n),resourcesField:this.resources.field,rowHeight:this.options.rowHeight}},_attachResourceEditor:function(e){for(var t,n=0;n<e.length;n++)(t=e[n]).field===this.resources.field&&"function"!=typeof t.editor&&(t.editor=this._resourcePopupEditor.bind(this))},_attachListEvents:function(){var e=this,n=e.options.navigatable,i=function(){var t;n&&e._cachedCurrent&&(t=e.list.content.find("tr").eq(e._cachedCurrent.rowIndex).find("td").eq(e._cachedCurrent.columnIndex),e._current(t),C(e.list.content.find("table"),!0)),delete e._cachedCurrent};e.list.bind("columnShow",(function(t){e.trigger("columnShow",{column:t.column})})).bind("columnHide",(function(t){e.trigger("columnHide",{column:t.column})})).bind("columnReorder",(function(t){e.trigger("columnReorder",{column:t.column,oldIndex:t.oldIndex,newIndex:t.newIndex})})).bind("columnResize",(function(t){e.trigger("columnResize",{column:t.column,oldWidth:t.oldWidth,newWidth:t.newWidth})})).bind("render",(function(){e._navigatable()}),!0).bind("beforeEdit",(function(t){e._cachedCurrent={rowIndex:t.container.closest("tr").index(),columnIndex:t.container.index()},e.trigger("edit",{task:t.model,container:t.container})&&t.preventDefault()})).bind("cancel",(function(t){e.trigger("cancel",{task:t.model,container:t.cell})?t.preventDefault():(e._preventItemChange=!0,e.list.closeCell(!0),i())})).bind("save",(function(n){var i,s=n.values;for(i in e.previousTask={},e._preventRefresh=!0,null!==e.updateDuration&&e.updateDuration!==t||(e.updateDuration=n.model.duration()),null!==e.updatePlannedDuration&&e.updatePlannedDuration!==t||(e.updatePlannedDuration=n.model.plannedDuration()),s.hasOwnProperty("start")&&(s.end=new Date(s.start.getTime()+e.updateDuration)),s.hasOwnProperty("plannedStart")&&s.plannedStart&&(s.plannedEnd=new Date(s.plannedStart.getTime()+e.updatePlannedDuration)),s)s.hasOwnProperty(i)&&(e.previousTask[i]=n.model.get(i));e.updatedValues=s})).bind("itemChange",(function(t){var n,s=e.updatedValues,r=t.data,a=e.resources.field,o=e.previousTask;if(e._preventItemChange)e._preventItemChange=!1;else{for(n in o)o.hasOwnProperty(n)&&r.set(n,o[n]);e.previousTask={},e.trigger("save",{task:r,values:s})?e.dataSource.hasChanges()&&(e.dataSource.cancelChanges(r),e._preventRefresh=!1,e.refresh()):(s&&(e._preventRefresh=!0,e.dataSource.update(r,s),s[a]&&e._updateAssignments(r.get("id"),s[a])),e._preventRefresh=!1,e._requestStart(),e.dataSource.sync().then((function(){i()}))),e.updatedValues=null,e.updateDuration=null}})).bind("change",(function(){e.trigger("change"),e._selectionUpdate()})).bind("collapse",(function(t){t.preventDefault();var n=e.list.element.find("tr[data-uid='"+t.model.uid+"']");t.model.set("expanded",!1),e._cachedCurrent={rowIndex:n.index(),columnIndex:n.find(".k-focus").index()},i()})).bind("expand",(function(t){t.preventDefault();var n=e.list.element.find("tr[data-uid='"+t.model.uid+"']");t.model.set("expanded",!0),e._cachedCurrent={rowIndex:n.index(),columnIndex:n.find(".k-focus").index()},i()})).bind("dragend",(function(t){var n,i,s=e.dataSource;"over"===t.position&&(s.cancelChanges(),i={parentId:t.source.parentId},n=s.get(t.source.id),e.trigger("save",{task:n,values:i})||s.update(n,i),s.sync())})).bind("dataBound",(function(){0===e.dataSource.sort().length&&e.dataSource.sort([{field:"orderId",dir:"asc"}])})).bind("reorder",(function(t){e._updateTask(t.task,t.updateInfo),i()}))},_selectionUpdate:function(){var e=this,t=e.list.select();t.length?e.timeline.select("[data-uid='"+t.attr("data-uid")+"']"):e.timeline.clearSelection()},_list:function(){var e=R.styles,t=this.wrapper.find(b+e.list).find("> div"),i=this._getListOptions();this._attachResourceEditor(i.columns),this.list=new n.ui.GanttList(t,i),this._attachListEvents()},_timeline:function(){var e=this,t=R.styles,i=function(e){return delete e.name,delete e.prefix,delete e.remove,delete e.edit,delete e.add,delete e.navigate,e}(h(!0,{resourcesField:this.resources.field},this.options)),s=this.wrapper.find(b+t.timeline+" > div");this.timeline=new n.ui.GanttTimeline(s,i),this.timeline.bind("navigate",(function(n){var i=n.view.replace(/\./g,"\\.").toLowerCase(),s=e.toolbar.find(b+t.toolbar.views),r=s.getKendoButtonGroup();r&&r.select(s.find(b+t.toolbar.viewButton+"-"+i)),e.toolbar.find(b+t.toolbar.viewsDropdown).val(n.view),e.refresh()})).bind("moveStart",(function(t){var n=e.list.editor;!n||n.end()?e.trigger("moveStart",{task:t.task})&&t.preventDefault():t.preventDefault()})).bind("move",(function(t){var n=t.task,i=t.start,s=new Date(i.getTime()+n.duration());e.trigger("move",{task:n,start:i,end:s})&&t.preventDefault()})).bind("moveEnd",(function(t){var n=t.task,i=t.start,s=new Date(i.getTime()+n.duration());e.trigger("moveEnd",{task:n,start:i,end:s})||e._updateTask(e.dataSource.getByUid(n.uid),{start:i,end:s})})).bind("resizeStart",(function(t){var n=e.list.editor;!n||n.end()?e.trigger("resizeStart",{task:t.task})&&t.preventDefault():t.preventDefault()})).bind("resize",(function(t){e.trigger("resize",{task:t.task,start:t.start,end:t.end})&&t.preventDefault()})).bind("resizeEnd",(function(t){var n=t.task,i={};t.resizeStart?i.start=t.start:i.end=t.end,e.trigger("resizeEnd",{task:n,start:t.start,end:t.end})||e._updateTask(e.dataSource.getByUid(n.uid),i)})).bind("percentResizeStart",(function(t){var n=e.list.editor;n&&!n.end()&&t.preventDefault()})).bind("percentResizeEnd",(function(t){e._updateTask(e.dataSource.getByUid(t.task.uid),{percentComplete:t.percentComplete})})).bind("dependencyDragStart",(function(t){var n=e.list.editor;n&&!n.end()&&t.preventDefault()})).bind("dependencyDragEnd",(function(t){var n=e.dependencies._createNewModel({type:t.type,predecessorId:t.predecessor.id,successorId:t.successor.id});e._createDependency(n)})).bind("select",(function(t){var n,i=e.list.editor,s=e.select();i&&i.end(),s&&s.length&&(n=s.data("uid")),n!==t.uid&&(e.select("[data-uid='"+t.uid+"']"),e.trigger("change"))})).bind("editTask",(function(t){var n=e.list.editor;n&&!n.end()||e.editTask(t.uid)})).bind("clear",(function(){e.clearSelection(),e.trigger("change")})).bind("removeTask",(function(t){var n=e.list.editor;n&&!n.end()||e.removeTask(e.dataSource.getByUid(t.uid))})).bind("removeDependency",(function(t){var n=e.list.editor;n&&!n.end()||e.removeDependency(e.dependencies.getByUid(t.uid))}))},_dataSource:function(){var e=this.options.dataSource;e=c(e)?{data:e}:e,this.dataSource&&this._refreshHandler?this.dataSource.unbind("change",this._refreshHandler).unbind("progress",this._progressHandler).unbind("error",this._errorHandler):(this._refreshHandler=this.refresh.bind(this),this._progressHandler=this._requestStart.bind(this),this._errorHandler=this._error.bind(this)),this.dataSource=n.data.GanttDataSource.create(e).bind("change",this._refreshHandler).bind("progress",this._progressHandler).bind("error",this._errorHandler)},_dependencies:function(){var e=this.options.dependencies||{},t=c(e)?{data:e}:e;this.dependencies&&this._dependencyRefreshHandler?this.dependencies.unbind("change",this._dependencyRefreshHandler).unbind("error",this._dependencyErrorHandler):(this._dependencyRefreshHandler=this.refreshDependencies.bind(this),this._dependencyErrorHandler=this._error.bind(this)),this.dependencies=n.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"},h(this.resources,e),this.resources.dataSource=n.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=this.refresh.bind(this),this.assignments={dataTaskIdField:"taskId",dataResourceIdField:"resourceId",dataValueField:"value"},h(this.assignments,e),this.assignments.dataSource=n.data.DataSource.create(t),this.assignments.dataSource.bind("change",this._assignmentsRefreshHandler)},_createEditor:function(){var e=this;(this._editor=new n.gantt.PopupEditor(this.wrapper,h({},this.options,{target:this,resources:{field:this.resources.field,editor:this._createResourceEditor.bind(this)}}))).bind("cancel",(function(t){var n=e.dataSource.getByUid(t.model.uid);e.trigger("cancel",{container:t.container,task:n})?t.preventDefault():(e.dependencies&&e.dependencies.filter({}),e.cancelTask())})).bind("edit",(function(t){var n=e.dataSource.getByUid(t.model.uid);e.trigger("edit",{container:t.container,task:n})&&t.preventDefault()})).bind("save",(function(t){var n=e.dataSource.getByUid(t.model.uid);e.saveTask(n,t.updateInfo,t.updateDependencies)})).bind("remove",(function(t){e.removeTask(t.model.uid)})).bind("close",e._onDialogClose)},_onDialogClose:function(){},_resourcePopupEditor:function(t,i){var s,r,a=this,o=a._createResourceEditor(e("<div>"),i),d=D.popup,l=a.element,c=e(n.format('<div class="'+d.formContainer+'">')).appendTo(l),u=a.options.messages;return c.append(o.wrapper),s=e('<div class="'+d.buttonsContainer+'">'),c.append(s),s.append(e("<button class='"+D.buttonSave+"'>"+u.save+"</button>").kendoButton({name:"save",themeColor:"primary",icon:"save",click:function(){o.updateModel()&&(o.trigger("save",{model:o.model}),a._updateAssignments(o.model.get("id"),o.model.get(a.resources.field)),r.trigger("close"),r.close())}})),s.append(e("<button class='"+D.buttonCancel+"'>"+u.cancel+"</button>").kendoButton({name:"cancel",icon:"cancel",click:function(){r.trigger("close"),r.close()}})),this._resourceEditorWindow=r=c.kendoWindow({modal:!0,resizable:!1,draggable:!0,visible:!1,title:u.editor.resourcesEditorTitle,deactivate:function(){o.destroy(),r.destroy(),r.element.closest(".k-window").remove()}}).data("kendoWindow"),r.center().open(),o},_createResourceEditor:function(e,t){var i=t instanceof o?t:t.model,s=this.options.messages,r=this.resources.field,a={step:.01,min:.01,max:1},d=this.assignments.dataSource.options.schema.model,l=this.resources.dataTextField,c=this.resources.dataSource.view();return d&&d.fields.Units&&d.fields.Units.validation&&h(!0,a,d.fields.Units.validation),this._resourceEditor=new n.gantt.ResourceEditor(e,{resourcesField:r,unitsValidation:a,resources:c.map((function(e){return{value:e.id,text:e[l]}})),model:i,messages:h({},s.editor)})},view:function(e){return this.timeline.view(e)},range:function(e){var t=this.dataSource,n=this.view(),i=this.timeline;return e&&(n.options.range={start:e.start,end:e.end},i._render(t.taskTree()),i._renderDependencies(this.dependencies.view())),{start:n.start,end:n.end}},date:function(e){var t=this.view();return e&&(t.options.date=e,t._scrollToDate(e)),t.options.date},dataItem:function(e){if(!e)return null;var t=this.list,n=t.element.find(e);return t._modelFromElement(n)},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,n){for(var i,s,r,a=this.assignments.dataSource,o=this.assignments.dataTaskIdField,d=this.assignments.dataResourceIdField,c=!1,u=new l(a.view()).filter({field:o,operator:"eq",value:e}).toArray();u.length;){i=u[0];for(var h=0,p=n.length;h<p;h++)if(s=n[h],i.get(d)===s.get("id")){r=n[h].get("value"),this._updateAssignment(i,r),n.splice(h,1),c=!0;break}c||this._removeAssignment(i),c=!1,u.shift()}for(var f=0,g=n.length;f<g;f++)(s=n[f]).id!==t&&s.value&&this._createAssignment(s,e);a.sync()},cancelTask:function(){var e=this._editor;e.container&&e.close(),this.dependencies&&this.dependencies.cancelChanges()},editTask:function(e){var t="string"==typeof e?this.dataSource.getByUid(e):e;if(t){var n=this.dataSource._createNewModel(t.toJSON());n.uid=t.uid,this.cancelTask(),this._editTask(n)}},_editTask:function(e){this._editor.editTask(e,this.options.editable.plannedTasks)},saveTask:function(e,n,i){var s,r=this,a=this._editor,o=a.container,d=a.editable,l=!1,c=!1,u=(n=n||{},r.options.resources.field);Object.keys(n).map((function(i){var r=n[i],a=e.get(i);r instanceof Date&&(r=r.getTime(),a=a?a.getTime():t),r!==a&&(i===u?(s=r.filter((function(e){return!a.some((function(t){return t.id===e.id&&t.value===e.value}))})).concat(a.filter((function(e){return!r.some((function(t){return t.id===e.id&&e.value===t.value}))}))))&&s.length>0&&(c=!0):l=!0)})),o&&d&&d.end()&&(l||c||i)?r.trigger("save",{task:e,values:n,updateDependencies:i})?(e&&e.dirty&&(r.dataSource.cancelChanges(e),r._preventRefresh=!1,r.refresh()),r.dependencies&&r.dependencies.cancelChanges()):(l&&(r._preventRefresh=!0,r.dataSource.update(e,n)),c&&this._updateAssignments(e.get("id"),n[u]),r._syncDataSource(),this.dependencies&&this._updateDependency(i),this._editor.close()):d&&d.end()&&this._editor.close()},_updateDependency:function(e){var t=this;this.dependencies.filter({}),e&&(e.created.map((function(e){t._preventDependencyRefresh=!0,t.dependencies.add(e),t._preventDependencyRefresh=!1})),e.destroyed.map((function(e){t.dependencies.remove(e)}))),this.dependencies.sync()},_updateTask:function(e,t){var n=this,i=n.resources.field;n.trigger("save",{task:e,values:t})?(e&&e.dirty&&(n.dataSource.cancelChanges(e),n._preventRefresh=!1,n.refresh()),n.dependencies&&n.dependencies.cancelChanges()):(t&&(n._preventRefresh=!0,n.dataSource.update(e,t),t[i]&&n._updateAssignments(e.get("id"),t[i])),n._syncDataSource())},_updateAssignment:function(e,t){var n=this.assignments.dataValueField;e.set(n,t)},removeTask:function(e){var t=this,n="string"==typeof e?this.dataSource.getByUid(e):e;n&&this._taskConfirm((function(e){e||t._removeTask(n)}),n)},_createTask:function(e,n){if(!this.trigger("add",{task:e,dependency:null})){var i=this.dataSource;this._preventRefresh=!0,n===t?i.add(e):i.insert(n,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 n=this.assignments,i=n.dataSource,s=n.dataTaskIdField,r=n.dataResourceIdField,a=n.dataValueField,o=i._createNewModel();o[s]=t,o[r]=e.get("id"),o[a]=e.get("value"),i.add(o)},removeDependency:function(e){var t=this,n="string"==typeof e?this.dependencies.getByUid(e):e;n&&this._dependencyConfirm((function(e){e||t._removeDependency(n)}),n)},_removeTaskDependencies:function(e,t){this._preventDependencyRefresh=!0;for(var n=0,i=t.length;n<i;n++)this.dependencies.remove(t[n]);this._preventDependencyRefresh=!1,this.dependencies.sync()},_removeTaskAssignments:function(e){var t=this.assignments.dataSource,n=t.view(),i={field:this.assignments.dataTaskIdField,operator:"eq",value:e.get("id")};n=new l(n).filter(i).toArray(),this._preventRefresh=!0;for(var s=0,r=n.length;s<r;s++)t.remove(n[s]);this._preventRefresh=!1,t.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.dependencies&&this.dependencies.filter({}),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 n=this.options.messages;this._confirm(e,{model:t,text:n.deleteTaskConfirmation,title:n.deleteTaskWindowTitle})},_dependencyConfirm:function(e,t){var n=this.options.messages;this._confirm(e,{model:t,text:n.deleteDependencyConfirmation,title:n.deleteDependencyWindowTitle})},_confirm:function(e,t){var n=this.options.editable;!0===n||!1!==n.confirmation?this.showDialog(h(!0,{},t,{callback:e})):e()},showDialog:function(e){this._editor.showDialog(e)},refresh:function(){if(!this._preventRefresh&&this.list&&!this.list.editor){this._progress(!1);var e,t,i=this.dataSource.taskTree(),s=this._scrollToUid,r=-1,a=this.select()[0]?this.select().data("uid"):this._selected;this.current&&(t=this.current.closest("tr").attr(n.attr("uid")),r=this.current.index()),this.trigger("dataBinding")||(0!==this.resources.dataSource.data().length&&this._assignResources(i),this._editor&&this._editor.close(),this.clearSelection(),this.list._renderTree(i),this.timeline._render(i),this.timeline._renderDependencies(this.dependencies.view()),s&&(this._scrollTo(s),this.select(S(s))),(s||t)&&r>=0&&(e=this.list.element.find("tr"+S(s||t)+" > td").eq(r),this._current(e)),this._scrollToUid=null,a&&(this._selected=a,this.select("[data-uid="+a+"]")),this.trigger("dataBound"))}},refreshDependencies:function(){this._preventDependencyRefresh||this.trigger("dataBinding")||(this.timeline._renderDependencies(this.dependencies.view()),this.trigger("dataBound"))},_assignResources:function(e){for(var t,i,s=this.resources,r=this.assignments,a=(t=r.dataSource.view(),i={field:r.dataTaskIdField},t=new l(t).group(i).toArray()),c=function(e,t){var i=e.get("id");n.setter(s.field)(e,new d([]));for(var r=0,o=a.length;r<o;r++)a[r].value===i&&t(e,a[r].items)},u=function(e,t){for(var i=0,a=t.length;i<a;i++){var d=t[i],l=s.dataSource.get(d.get(r.dataResourceIdField)),c=d.get(r.dataValueField),u=d.get(r.dataResourceIdField),h=l.get(s.dataFormatField)||"p0",p=n.toString(c,h);e[s.field].push(new o({id:u,name:l.get(s.dataTextField),color:l.get(s.dataColorField),value:c,formatedValue:p,format:h}))}},h=0,p=e.length;h<p;h++)c(e[h],u)},_wrapResourceData:function(e){for(var t,n=this,i=[],s=this.resources.dataSource.view(),r=this.assignments.dataSource.view(),a=new l(r).filter({field:n.assignments.dataTaskIdField,operator:"eq",value:e}).toArray(),o=function(e){var t=null;return new l(a).filter({field:n.assignments.dataResourceIdField,operator:"eq",value:e}).select((function(e){t+=e.get(n.assignments.dataValueField)})),t},d=0,c=s.length;d<c;d++)t=s[d],i.push({id:t.get("id"),name:t.get(n.resources.dataTextField),format:t.get(n.resources.dataFormatField)||"p0",value:o(t.id)});return i},_syncDataSource:function(){this._preventRefresh=!1,this._requestStart(),this.dataSource.sync()},_requestStart:function(){this._progress(!0)},_error:function(){this._progress(!1)},_progress:function(e){n.ui.progress(this.element,e)},_resizable:function(){var t,i,s,r=this,a=this.wrapper,o=R.styles,d=b+o.gridContent,l=a.find(b+o.list),c=a.find(b+o.timeline);this._resizeDraggable=a.find(b+o.splitBar).height(l.height()).hover((function(){e(this).addClass(o.splitBarHover)}),(function(){e(this).removeClass(o.splitBarHover)})).end().kendoResizable({orientation:"horizontal",handle:b+o.splitBar,start:function(){t=l.width(),i=c.width(),s=n.scrollLeft(c.find(d))},resize:function(e){var o=e.x.initialDelta;n.support.isRtl(a)&&(o*=-1),t+o<0||i-o<0||(l.width(t+o),c.width(i-o),n.scrollLeft(c.find(d),s+o),r.timeline.view()._renderCurrentTime())}}).data("kendoResizable")},_scrollable:function(){var t=this,i=R.styles,s=b+i.gridContent,a=b+i.gridHeaderWrap,o=this.timeline.element.find(a),d=this.timeline.element.find(s),l=this.list.element.find(a),c=this.list.element.find(s);r&&c.css("overflow-y","auto"),d.on("scroll",(function(){t.scrollTop=this.scrollTop,n.scrollLeft(o,this.scrollLeft),c.scrollTop(this.scrollTop)})),c.on("scroll",(function(){n.scrollLeft(l,this.scrollLeft)})).on("DOMMouseScroll"+v+" mousewheel"+v,(function(t){var i=d.scrollTop(),s=n.wheelDeltaY(t);s&&(t.preventDefault(),e(t.currentTarget).one("wheel"+v,!1),d.scrollTop(i+-s))}))},_navigatable:function(){var t,s=this,r=this.options.navigatable,a=this.options.editable,o=R.styles,d=b+o.gridContent,l=b+o.gridHeaderWrap,c=this.list.element.find(l).find("table"),u=this.list.element.find(d).find("table"),h=n.support.isRtl(this.wrapper),p=this.timeline.element.find(b+o.gridContent),f=c.add(u),g=S(),k=!1,_=!0,w=function(e){var t=s.timeline.view()._timeSlots()[0].offsetWidth;n.scrollLeft(p,n.scrollLeft(p)+(e?-t:t))},y=function(e){var t=s.timeline.view()._rowHeight;p.scrollTop(p.scrollTop()+(e?-t:t))},T=function(e){var t=s.current.parent("tr"+S()),n=s.current.index(),i=t[e]("tr:visible").first();0!==i.length?(s._current(i.children("td").eq(n)),s._scrollTo(s.current)):s.current.is("td")&&"prevAll"==e?(C(c),s._current(c.find("tr").last().children("th").eq(n)),s._scrollTo(s.current)):s.current.is("th")&&"nextAll"==e&&(C(u),s._current(u.find("tr").first().children("td").eq(n)),s._scrollTo(s.current))},D=function(e){var n=s.current[e]();0!==n.length&&(s._current(n),t=s.current.index())},H=function(e){var t=s.dataItem(s.current);t.summary&&t.expanded!==e&&t.set("expanded",e)},x=function(){var e=s.options.editable;if(e&&!1!==e.destroy&&!s.list.editor){var t=s.select(),i=n.attr("uid");t.length&&s.removeTask(t.attr(i))}};e(this.wrapper).on("mousedown"+v,"tr"+g+", div"+g+":not("+b+o.line+")",(function(t){var i,o=e(t.currentTarget),d=e(t.target).is(":button,a,:input,a>.k-icon,.k-svg-icon,k-svg-icon,svg,path,textarea,span.k-icon:not(.k-i-none),span.k-svg-icon:not(.k-svg-i-none),span.k-link,.k-input,.k-multiselect-wrap,.k-input-value-text,.k-input-inner");t.ctrlKey||(r&&(i=o.is("tr")?e(t.target).closest("td"):s.list.content.find("tr"+S(o.attr(n.attr("uid")))+" > td").first(),s._current(i)),!r&&!a||d||(s._focusTimeout=setTimeout((function(){C(s.list.content.find("table"),!0)}),2)))})).on("keydown"+v,function(t){var n=t.keyCode;n===i.F10?(this.toolbar.find("[tabindex=0]:visible").first().addClass(o.focused).trigger("focus"),t.preventDefault()):n==i.TAB&&e(t.target).closest(b+o.toolbar.toolbar).length&&(this.list.element.is(":visible")?this.list.element.find("table[role=treegrid]").trigger("focus"):this.element.find(b+o.tasks)[0].focus(),t.preventDefault())}.bind(this)),!0===r?f.on("focus"+v,(function(){var n=this===u.get(0)?"td":"th",i=s.select(),r=s.current||e(i.length?i:this).find(n).eq(t||0);s._current(r),e(s.toolbar.find(b+o.focused)).removeClass(o.focused)})).on("blur"+v,(function(){s._current(),this==c&&e(this).attr(m,-1)})).on("keydown"+v,(function(t){var n,r=t.keyCode;if(s.current)switch(n=s.current.is("td"),r){case i.RIGHT:t.preventDefault(),t.altKey?w():t.ctrlKey?H(h?k:_):D(h?"prev":"next");break;case i.LEFT:t.preventDefault(),t.altKey?w(!0):t.ctrlKey?H(h?_:k):D(h?"next":"prev");break;case i.UP:t.preventDefault(),t.altKey?y(!0):T("prevAll");break;case i.DOWN:t.preventDefault(),t.altKey?y():T("nextAll");break;case i.SPACEBAR:t.preventDefault(),n&&(s.select()&&s.current.closest("tr")[0]===s.select()[0]||(s.select(s.current.closest("tr")),s.trigger("change")));break;case i.ENTER:t.preventDefault(),n?s.options.editable&&!1!==s.options.editable.update&&(s.list._startEditHandler(s.current),e(this).one("keyup",(function(e){e.stopPropagation()}))):s.current.children("a.k-link").click();break;case i.DELETE:n&&x();break;default:r>=49&&r<=57&&"input"!==t.target.tagName.toLowerCase()&&s.view(s.timeline._viewByIndex(r-49))}})):u.on("keydown"+v,(function(e){e.keyCode==i.DELETE&&x()}))},_current:function(t){var i,s=R.styles;this.current&&this.current.length&&this.current.removeClass(s.focusedCell).removeAttr("id"),t&&t.length?(this.current=t.addClass(s.focusedCell).attr("id",w),(i=e(n._activeElement())).is("table")&&this.wrapper.find(i).length>0&&i.removeAttr(_).attr(_,w)):this.current=null},_dataBind:function(){var t=this;if(t.options.autoBind){this._preventRefresh=!0,this._preventDependencyRefresh=!0;var n=e.map([this.dataSource,this.dependencies,this.resources.dataSource,this.assignments.dataSource],(function(e){return e.fetch()}));e.when.apply(null,n).done((function(){t._preventRefresh=!1,t._preventDependencyRefresh=!1,t.refresh()}))}},_resize:function(){this._adjustDimensions(),this.timeline.view()._adjustHeight(),this.timeline.view()._renderCurrentTime(),this.list._adjustHeight()},_togglePlannedTasks:function(e){var t=this.timeline;this.trigger("togglePlannedTasks",{showPlannedTasks:!t.options.showPlannedTasks})?e.preventDefault():(this.wrapper.toggleClass(D.plannedTasks),t._setPlanned(!t.options.showPlannedTasks),t._render(this.dataSource.taskTree()),t._renderDependencies(this.dependencies.view()))}});n.PDFMixin&&(n.PDFMixin.extend(R.fn),R.fn._drawPDF=function(){var e=R.styles,t=this.wrapper.find(b+e.list+" "+b+e.gridContent+">table").width(),n=this.wrapper.clone();return n.find(b+e.list).css("width",t),this._drawPDFShadow({content:n},{avoidLinks:this.options.pdf.avoidLinks})}),n.ui.plugin(R),h(!0,R,{styles:D})}(window.kendo.jQuery)}));
//# sourceMappingURL=kendo.gantt.min.js.map