/** * Kendo UI v2018.1.117 (http://www.telerik.com/kendo-ui) * Copyright 2018 Telerik AD. All rights reserved. * * Kendo UI commercial licenses may be obtained at * http://www.telerik.com/purchase/license-agreement/kendo-ui-complete * If you do not own a commercial license, this file shall be governed by the trial license terms. */ !function(e,define){define("util/text-metrics.min",["kendo.core.min"],e)}(function(){!function(e){function t(e){return(e+"").replace(o,d)}function i(e){var t,i=[];for(t in e)i.push(t+e[t]);return i.sort().join("")}function n(e){var t,i=2166136261;for(t=0;t>>0}function s(){return{width:0,height:0,baseline:0}}function r(e,t,i){return u.current.measure(e,t,i)}var a,o,d,l,c,u;window.kendo.util=window.kendo.util||{},a=kendo.Class.extend({init:function(e){this._size=e,this._length=0,this._map={}},put:function(e,t){var i=this._map,n={key:e,value:t};i[e]=n,this._head?(this._tail.newer=n,n.older=this._tail,this._tail=n):this._head=this._tail=n,this._length>=this._size?(i[this._head.key]=null,this._head=this._head.newer,this._head.older=null):this._length++},get:function(e){var t=this._map[e];if(t)return t===this._head&&t!==this._tail&&(this._head=t.newer,this._head.older=null),t!==this._tail&&(t.older&&(t.older.newer=t.newer,t.newer.older=t.older),t.older=this._tail,t.newer=null,this._tail.newer=t,this._tail=t),t.value}}),o=/\r?\n|\r|\t/g,d=" ",l={baselineMarkerSize:1},"undefined"!=typeof document&&(c=document.createElement("div"),c.style.cssText="position: absolute !important; top: -4000px !important; width: auto !important; height: auto !important;padding: 0 !important; margin: 0 !important; border: 0 !important;line-height: normal !important; visibility: hidden !important; white-space: pre!important;"),u=kendo.Class.extend({init:function(t){this._cache=new a(1e3),this.options=e.extend({},l,t)},measure:function(e,r,a){var o,d,l,u,h,p,f,v,m;if(void 0===a&&(a={}),!e)return s();if(o=i(r),d=n(e+o),l=this._cache.get(d))return l;u=s(),h=a.box||c,p=this._baselineMarker().cloneNode(!1);for(f in r)v=r[f],void 0!==v&&(h.style[f]=v);return m=a.normalizeText!==!1?t(e):e+"",h.textContent=m,h.appendChild(p),document.body.appendChild(h),m.length&&(u.width=h.offsetWidth-this.options.baselineMarkerSize,u.height=h.offsetHeight,u.baseline=p.offsetTop+this.options.baselineMarkerSize),u.width>0&&u.height>0&&this._cache.put(d,u),h.parentNode.removeChild(h),u},_baselineMarker:function(){var e=document.createElement("div");return e.style.cssText="display: inline-block; vertical-align: baseline;width: "+this.options.baselineMarkerSize+"px; height: "+this.options.baselineMarkerSize+"px;overflow: hidden;",e}}),u.current=new u,kendo.deepExtend(kendo.util,{LRUCache:a,TextMetrics:u,measureText:r,objectKey:i,hashKey:n,normalizeText:t})}(window.kendo.jQuery)},"function"==typeof define&&define.amd?define:function(e,t,i){(i||t)()}),function(e,define){define("kendo.gantt.min",["kendo.data.min","kendo.popup.min","kendo.window.min","kendo.resizable.min","kendo.gantt.list.min","kendo.gantt.timeline.min","kendo.grid.min","kendo.pdf.min"],e)}(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.value()),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,_=v.support.mobileOS,k=v.Observable,w=v.ui.Widget,y=v.data.DataSource,D=v.data.ObservableObject,C=v.data.ObservableArray,S=v.data.Query,T=e.isArray,x=e.inArray,B=v.isFunction,R=e.proxy,E=e.extend,F=e.isPlainObject,H=e.map,I=v._outerWidth,z=v._outerHeight,W=3,A=".kendoGantt",P="p0",N="tabIndex",V="click",L="width",M="string",q={down:{origin:"bottom left",position:"top left"},up:{origin:"top left",position:"bottom left"}},U="aria-activedescendant",G="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(''),X='',Z='#=text#',$=v.template('
  • &nbps;
  • '),ee=v.template(''),te=v.template('
    '),ie=function(t,i){var n={name:i.field,title:i.title},s=i.model.fields[i.field].validation;s&&F(s)&&s.message&&(n[v.attr("dateCompare-msg")]=s.message),e('").attr(n).appendTo(t),e("').hide().appendTo(t)},ne=function(t,i){e(''+i.messages.assignButton+"").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=k.extend({init:function(e,t){k.fn.init.call(this),this.element=e,this.options=E(!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(U).attr(U,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,E({anchor:this.element.find(s),open:function(){t._adjustListWidth()},animation:this.options.animation},q[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(L)&&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(L,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 y)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=y.extend({init:function(e){y.fn.init.call(this,E(!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 S(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;ia&&(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 S(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;it,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"),E(!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=E(!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=E({},v.Template,this.options.templateSettings),c=l.paramName,u=f.styles.popup,h="";if(d)typeof d===M&&(d=window.unescape(d)),h+=v.template(d,l)(e);else for(n=0,s=t.length;n",r.field===o.field&&(h+=''),!e.editable||e.editable(r.field)?(i.push(r),h+="
    '):(a="#:",r.field?(r=v.expr(r.field,c),a+=r+"==null?'':"+r):a+="''",a+="#",a=v.template(a,l),h+='
    '+a(e)+"
    ");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('

    {3}

    ',o.form,o.formContainer,o.message,t.text,o.buttonsContainer);for(i=0,n=a.length;i
    ",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('
    ',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+='
    ',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+="
    ",i=this.container=e(l).appendTo(this.element).eq(0).kendoWindow(E({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
    "',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('
    ').appendTo(this.container);this.grid=new v.ui.Grid(n,{columns:[{field:"name",title:i.resourcesHeader,template:"