UNPKG

@syncfusion/ej2-gantt

Version:
10 lines 1.26 MB
/*! * filename: ej2-gantt.umd.min.js * version : 31.2.15 * Copyright Syncfusion Inc. 2001 - 2025. All rights reserved. * Use of this code is subject to the terms of our license. * A copy of the current license can be obtained at any time by e-mailing * licensing@syncfusion.com. Any infringement will be prosecuted under * applicable laws. */ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@syncfusion/ej2-base"),require("@syncfusion/ej2-popups"),require("@syncfusion/ej2-data"),require("@syncfusion/ej2-grids"),require("@syncfusion/ej2-treegrid"),require("@syncfusion/ej2-dropdowns"),require("@syncfusion/ej2-svg-base"),require("@syncfusion/ej2-layouts"),require("@syncfusion/ej2-navigations"),require("@syncfusion/ej2-richtexteditor"),require("@syncfusion/ej2-inputs"),require("@syncfusion/ej2-buttons"),require("@syncfusion/ej2-calendars"),require("@syncfusion/ej2-pdf-export")):"function"==typeof define&&define.amd?define(["exports","@syncfusion/ej2-base","@syncfusion/ej2-popups","@syncfusion/ej2-data","@syncfusion/ej2-grids","@syncfusion/ej2-treegrid","@syncfusion/ej2-dropdowns","@syncfusion/ej2-svg-base","@syncfusion/ej2-layouts","@syncfusion/ej2-navigations","@syncfusion/ej2-richtexteditor","@syncfusion/ej2-inputs","@syncfusion/ej2-buttons","@syncfusion/ej2-calendars","@syncfusion/ej2-pdf-export"],t):t((e=e||self).ej={},e.ej2Base,e.ej2Popups,e.ej2Data,e.ej2Grids,e.ej2Treegrid,e.ej2Dropdowns,e.ej2SvgBase,e.ej2Layouts,e.ej2Navigations,e.ej2Richtexteditor,e.ej2Inputs,e.ej2Buttons,e.ej2Calendars,e.ej2PdfExport)}(this,function(k,ne,F,D,w,T,U,N,L,V,h,B,A,W,re){"use strict";function P(e,t,i){for(var a=e;a&&(i?a.id!==t:!a.classList.contains(t));)a=a.parentElement;return a}function j(e){return ne.isNullOrUndefined(e.startDate)&&ne.isNullOrUndefined(e.endDate)&&ne.isNullOrUndefined(e.duration)?null:!(ne.isNullOrUndefined(e.startDate)||ne.isNullOrUndefined(e.endDate)||ne.isNullOrUndefined(e.duration))}function H(e){return!(!e.dataSource||e.dataSource instanceof D.DataManager||!("result"in e.dataSource))}function z(e){for(var t={},i=0,a=Object.keys(e);i<a.length;i++){var n=a[i];t[e[n]]=n}return t}function G(e){return!ne.isNullOrUndefined(e)&&"object"==typeof e&&0===Object.keys(e).length}function q(e){var t=e.getFullYear(),i=e.getMonth(),a=e.getDate(),n=e.getHours(),r=e.getMinutes(),s=e.getSeconds(),e=e.getMilliseconds();return Date.UTC(t,i,a,n,r,s,e)}function _(e){return e instanceof D.DataManager&&((e=e.adaptor)instanceof D.ODataAdaptor||e instanceof D.ODataV4Adaptor||e instanceof D.WebApiAdaptor||e instanceof D.WebMethodAdaptor||e instanceof D.CacheAdaptor||e instanceof D.RemoteSaveAdaptor||e instanceof D.UrlAdaptor)}function Z(e,t,i,a){if(i)for(var n=void 0,r=0;r<e.length;r++)n=s=t?e[parseInt(r.toString(),10)].taskData:ne.extend({},e[parseInt(r.toString(),10)].taskData,{},!0);else for(n=[],r=0;r<e.length;r++){!ne.isNullOrUndefined(a)&&a.timezone&&X(e[r],a);var s=t?e[parseInt(r.toString(),10)].taskData:ne.extend({},e[parseInt(r.toString(),10)].taskData,{},!0);n.push(s)}return n}function X(e,t){var i,a;return e&&!ne.isNullOrUndefined(e.ganttProperties)&&(i=e.taskData,a=e.ganttProperties,i[t.taskFields.startDate]=t.dateValidationModule.remove(a.startDate,t.timezone),null!==t.taskFields.endDate&&(i[t.taskFields.endDate]=t.dateValidationModule.remove(a.endDate,t.timezone)),(t.taskFields.baselineStartDate||t.taskFields.baselineEndDate)&&(i[t.taskFields.baselineStartDate]=t.dateValidationModule.remove(a.baselineStartDate,t.timezone),i[t.taskFields.baselineEndDate]=t.dateValidationModule.remove(a.baselineEndDate,t.timezone)),t.editModule.processCustomDateColumns(e,i,t,"remove")),null}function Y(e,t){for(var i,a=0;a<t.length;a++)i=new RegExp("\\{"+a+"\\}","gm"),e=e.replace(i,t[a].toString());return e}function K(e,t,i,a){for(var n=-1,r=0;r<i.length;r++)if(ne.getValue(t,i[r])===ne.getValue(t,e)&&ne.isNullOrUndefined(a)||!ne.isNullOrUndefined(a)&&ne.getValue(t,i[r])===ne.getValue(t,e)&&ne.getValue(a,i[r])===ne.getValue(a,e)){n=r;break}return n}function se(e){return 76*e/92}function oe(e){return 92*e/76}var Q=0;function $(){return Q++}(r=k.ConstraintType||(k.ConstraintType={}))[r.AsSoonAsPossible=0]="AsSoonAsPossible",r[r.AsLateAsPossible=1]="AsLateAsPossible",r[r.MustStartOn=2]="MustStartOn",r[r.MustFinishOn=3]="MustFinishOn",r[r.StartNoEarlierThan=4]="StartNoEarlierThan",r[r.StartNoLaterThan=5]="StartNoLaterThan",r[r.FinishNoEarlierThan=6]="FinishNoEarlierThan",r[r.FinishNoLaterThan=7]="FinishNoLaterThan";e.prototype.isValidateNonWorkDays=function(e){return!ne.isNullOrUndefined(e)&&e.isAutoSchedule&&(!this.parent.includeWeekend||0<this.parent.totalHolidayDates.length)||ne.isNullOrUndefined(e)&&(!this.parent.includeWeekend||0<this.parent.totalHolidayDates.length)},e.prototype.checkStartDate=function(e,t,i,a,n){if(ne.isNullOrUndefined(e))return null;var r=new Date(e.getTime()),s=this.parent.getCurrentDayStartTime(r),o=this.parent.getCurrentDayEndTime(r),l=new Date(e.getTime()),d=this.getSecondsInDecimal(l);if(i=ne.isNullOrUndefined(i)?!ne.isNullOrUndefined(t)&&t.isMilestone:i,d<s&&(!i||a))this.setTime(s,l);else if(d<s&&i)this.setTime(s,l);else if(d===o&&(!t||!i)||o<d)l.setDate(l.getDate()+1),s=this.parent.getCurrentDayStartTime(l),this.setTime(s,l);else if(s<d&&d<o){var h=this.parent.workingTimeRanges;0<this.parent.weekWorkingTime.length&&(h=this.parent.getWorkingRange(l));for(var p=0;p<h.length;p++){var u=h[p];if(d>=u.to&&h[p+1]&&d<h[p+1].from){(d!==u.to||t&&i)&&d===u.to||this.setTime(h[p+1].from,l);break}}}if(this.parent.autoCalculateDateScheduling&&!(this.parent.isLoad&&this.parent.treeGrid.loadChildOnDemand&&this.parent.taskFields.hasChildMapping))do{var c=new Date(l.getTime()),g=this.parent.totalHolidayDates.length;if(this.isValidateNonWorkDays(t)){s=this.parent.getCurrentDayStartTime(c),t&&(o=n?this.parent.getCurrentDayEndTime(t.baselineEndDate||c):this.parent.getCurrentDayEndTime(t.endDate?t.isAutoSchedule?t.endDate:t.autoEndDate:c));var f,m=!i||a?s:o;if(this.parent.includeWeekend||n||(f=new Date(l.getTime()),l=this.getNextWorkingDay(l),m=this.parent.getCurrentDayStartTime(l),f.getTime()===l.getTime())||i||this.setTime(m,l),!n)for(var y=0;y<g;y++){var D=this.getDateFromFormat(new Date(this.parent.totalHolidayDates[y])),k=new Date(D.getTime());D.setHours(0,0,0,0),k.setHours(23,59,59,59),l.getTime()>=D.getTime()&&l.getTime()<k.getTime()&&(l.setDate(l.getDate()+1),m=this.parent.getCurrentDayStartTime(l),this.setTime(m,l))}}}while(c.getTime()!==l.getTime());return new Date(l.getTime())},e.prototype.getAdjustedStartDate=function(e,t){e=new Date(e),e.setDate(e.getDate()+1),e=this.parent.dateValidationModule.checkEndDate(e);return this.parent.dateValidationModule.getStartDate(e,t.duration,t.durationUnit,t)},e.prototype.getDateByConstraint=function(e,t,i){var a=e.ganttProperties||e,n=new Date(a.constraintDate),r=this.parent.isLoad;if(ne.isNullOrUndefined(i)&&(i=!0),(!n||!t)&&i)return null;var n=this.parent.editModule&&this.parent.editModule.dialogModule&&this.parent.editModule.dialogModule.dialogConstraintDate?new Date(this.parent.editModule.dialogModule.dialogConstraintDate):this.parent.assignTimeToDate(n,this.parent.getCurrentDayStartTime(n)),s=null,e=this.parent.getRecordByID(a.taskId);switch(e&&e.parentItem&&(s=e.parentItem),a.constraintType){case k.ConstraintType.AsSoonAsPossible:return r?t:(a.constraintDate=null,a.predecessor&&0<a.predecessor.length?this.parent.assignTimeToDate(t,this.parent.getCurrentDayStartTime(t)):s?this.parent.getRecordByID(s.taskId).ganttProperties.startDate:this.parent.dateValidationModule.checkStartDate(new Date(this.parent.projectStartDate)));case k.ConstraintType.AsLateAsPossible:return r?t:(l=s?this.parent.dateValidationModule.checkEndDate(this.parent.getRecordByID(s.taskId).ganttProperties.endDate):this.parent.dateValidationModule.checkEndDate(new Date(this.parent.projectEndDate)),this.parent.dateValidationModule.getStartDate(l,a.duration,a.durationUnit,a));case k.ConstraintType.MustStartOn:var o=n.getTime()!==a.startDate.getTime(),l=void 0,d=(this.parent.editModule&&this.parent.editModule.dialogModule&&(l=this.parent.editModule.dialogModule.dialogConstraintValue),ne.isNullOrUndefined(l)||2===l||3===l);return o&&!r&&d&&(this.parent.constraintViolationType="MustStartOn"),l=null,r?this.parent.dateValidationModule.checkStartDate(new Date(n)):this.parent.assignTimeToDate(t,this.parent.getCurrentDayStartTime(t));case k.ConstraintType.MustFinishOn:return(o=n.getTime()!==a.endDate.getTime())&&!r&&(this.parent.constraintViolationType="MustFinishOn"),this.getAdjustedStartDate(n,a);case k.ConstraintType.StartNoEarlierThan:return n.getTime()<t.getTime()||!r?this.parent.assignTimeToDate(t,this.parent.getCurrentDayStartTime(t)):this.parent.dateValidationModule.checkStartDate(new Date(n));case k.ConstraintType.StartNoLaterThan:return((o=n.getTime()<t.getTime())&&!r&&(this.parent.constraintViolationType="StartNoLaterThan"),r)?o&&r?this.parent.dateValidationModule.checkStartDate(new Date(n)):t:(d=this.parent.editModule&&this.parent.editModule.cellEditModule,l=this.parent.taskFields&&this.parent.taskFields.constraintDate,d&&d.isCellEdit&&d.editedColumn&&o&&d.editedColumn.field===l||this.parent.editModule&&this.parent.editModule.dialogModule&&o&&this.parent.editModule.dialogModule.dialogConstraintDate?n:this.parent.assignTimeToDate(t,this.parent.getCurrentDayStartTime(t)));case k.ConstraintType.FinishNoEarlierThan:return(h=this.getEndDate(t,a.duration,a.durationUnit,a,!1,!1)).getTime()<n.getTime()?this.getAdjustedStartDate(n,a):t;case k.ConstraintType.FinishNoLaterThan:var h=this.getEndDate(t,a.duration,a.durationUnit,a,!1,!1);return((o=n.getTime()<h.getTime())&&!r&&(this.parent.constraintViolationType="FinishNoLaterThan"),r)?o?this.getAdjustedStartDate(n,a):t:o?this.getAdjustedStartDate(n,a):this.parent.assignTimeToDate(t,this.parent.getCurrentDayEndTime(t));default:return t}},e.prototype.checkEndDate=function(e,t,i,a){if(ne.isNullOrUndefined(e))return null;h=0<this.parent.weekWorkingTime.length?(o=new Date(e.getTime()),(!this.parent.includeWeekend&&t&&t.isAutoSchedule||this.parent.editModule&&this.parent.editModule.taskbarEditModule&&this.parent.editModule.taskbarEditModule.taskBarEditRecord&&!this.parent.editModule.taskbarEditModule.taskBarEditRecord.ganttProperties.isAutoSchedule)&&(o=this.getNextWorkingDay(o)),n=this.parent.getStartTime(o),this.parent.getEndTime(o)):(n=this.parent.defaultStartTime,this.parent.defaultEndTime);var n,r=new Date(e.getTime()),s=this.getSecondsInDecimal(r);if(h<s)this.setTime(h,r);else if(s<=n&&86400!==h&&!i){var o=this.parent.taskFields;this.parent.editModule&&this.parent.editModule.editedRecord&&!this.parent.editModule.editedRecord[o.startDate]&&this.parent.editModule.editedRecord[o.endDate]?r.setDate(r.getDate()):r.setDate(r.getDate()-1),h=this.parent.getCurrentDayEndTime(r),this.setTime(h,r)}else if(n<s&&s<h)for(var l=0;l<this.parent.workingTimeRanges.length;l++)if(s>this.parent.workingTimeRanges[l].to&&this.parent.workingTimeRanges[l+1]&&s<=this.parent.workingTimeRanges[l+1].from){this.setTime(this.parent.workingTimeRanges[l].to,r);break}if(!this.parent.autoCalculateDateScheduling||this.parent.isLoad&&this.parent.treeGrid.loadChildOnDemand&&this.parent.taskFields.hasChildMapping)ne.isNullOrUndefined(r)||86400===this.parent.defaultEndTime||(h=this.parent.getCurrentDayEndTime(e),this.setTime(h,r));else do{var d,h,p=new Date(r.getTime()),u=this.parent.totalHolidayDates.length;if(this.isValidateNonWorkDays(t)&&!a){this.parent.includeWeekend||(d=new Date(r.getTime()),r=this.getPreviousWorkingDay(r),h=this.parent.getCurrentDayEndTime(r),d.getTime()!==r.getTime()&&this.setTime(h,r));for(var c=0;c<u;c++){var g=this.getDateFromFormat(new Date(this.parent.totalHolidayDates[c])),f=new Date(g.getTime()),m=new Date(r.getTime());m.setMinutes(r.getMilliseconds()-2),g.setHours(0,0,0,0),f.setHours(23,59,59,59),(r.getTime()>=g.getTime()&&r.getTime()<f.getTime()||m.getTime()>=g.getTime()&&m.getTime()<f.getTime())&&(r.setDate(r.getDate()-1),h=this.parent.getCurrentDayEndTime(r),r.getTime()===g.getTime()&&86400===h&&0===this.getSecondsInDecimal(r)||this.setTime(h,r))}}}while(p.getTime()!==r.getTime());return new Date(r.getTime())},e.prototype.checkBaselineStartDate=function(e,t){if(ne.isNullOrUndefined(e))return null;var i=this.parent.getCurrentDayStartTime(e),t=this.parent.getCurrentDayEndTime(t&&t.endDate?t.isAutoSchedule?t.endDate:t.autoEndDate:e),a=new Date(e.getTime()),n=this.getSecondsInDecimal(a);if(n<i)this.setTime(i,a);else if(t<n)a.setDate(a.getDate()+1),i=0<this.parent.weekWorkingTime.length?this.parent.getStartTime(a):this.parent.defaultStartTime,this.setTime(i,a);else if(i<n&&n<t)for(var r=0;r<this.parent.workingTimeRanges.length;r++)if(n>this.parent.workingTimeRanges[r].to&&this.parent.workingTimeRanges[r+1]&&n<this.parent.workingTimeRanges[r+1].from){this.setTime(this.parent.workingTimeRanges[r+1].from,a);break}return a},e.prototype.checkBaselineEndDate=function(e,t){if(ne.isNullOrUndefined(e))return null;var i=this.parent.getCurrentDayEndTime(e),a=this.parent.getCurrentDayStartTime(t&&t.startDate?t.isAutoSchedule?t.startDate:t.autoStartDate:e),n=new Date(e.getTime()),r=this.getSecondsInDecimal(n);if(i<r)this.setTime(i,n);else if(r<a&&!ne.isNullOrUndefined(t)&&!t.isMilestone)n.setDate(n.getDate()-1),i=this.parent.getCurrentDayEndTime(n),this.setTime(i,n);else if(a<r&&r<i)for(var s=0;s<this.parent.workingTimeRanges.length;s++)if(r>this.parent.workingTimeRanges[s].to&&this.parent.workingTimeRanges[s+1]&&r<=this.parent.workingTimeRanges[s+1].from){this.setTime(this.parent.workingTimeRanges[s].to,n);break}return t&&t.baselineStartDate&&n&&t.baselineStartDate.getTime()>n.getTime()&&n.setDate(n.getDate()+1),n},e.prototype.calculateStartDate=function(e,t){var i=e.ganttProperties,a=null;t?(ne.isNullOrUndefined(i.baselineEndDate)||ne.isNullOrUndefined(i.baselineDuration)||(a=this.getStartDate(i.baselineEndDate,i.baselineDuration,i.durationUnit,i,void 0,!0)),this.parent.setRecordValue("baselineStartDate",a,i,!0),this.parent.taskFields.baselineStartDate&&this.parent.dataOperation.updateMappingData(e,"baselineStartDate")):(ne.isNullOrUndefined(i.endDate)||ne.isNullOrUndefined(i.duration)||(a=this.getStartDate(i.endDate,i.duration,i.durationUnit,i)),this.parent.setRecordValue("startDate",a,i,!0),this.parent.taskFields.startDate&&this.parent.dataOperation.updateMappingData(e,"startDate"))},e.prototype.getFieldMappings=function(e){return{startdateField:e?"baselineStartDate":"startDate",enddateField:e?"baselineEndDate":"endDate",durationField:e?"baselineDuration":"duration"}},e.prototype.calculateEndDate=function(e,t){var i,a,n=e.ganttProperties,r=null,s=this.getFieldMappings(t),o=s.startdateField,l=s.enddateField,s=s.durationField;ne.isNullOrUndefined(n[o])?(r=e[this.parent.taskFields[l]],ne.isNullOrUndefined(r)||(a=this.parent.getCurrentDayEndTime(r),this.setTime(a,r))):(!ne.isNullOrUndefined(n[l])&&ne.isNullOrUndefined(n[s])&&(1===this.compareDates(n[o],n[l])&&(this.parent.setRecordValue(o,new Date(n[l].getTime()),n,!0),i=this.parent.getCurrentDayStartTime(n.isAutoSchedule&&!t?n.autoStartDate:n[o]),a=this.parent.getCurrentDayEndTime(n.isAutoSchedule&&!t?n.autoEndDate:n[l]),this.setTime(i,n[o])),this.calculateDuration(e,t)),ne.isNullOrUndefined(n[s])||(a=!t&&!ne.isNullOrUndefined(n.segments)&&1<n.segments.length?this.totalDuration(n.segments):n[s],r=this.getEndDate(n[o],a,n.durationUnit,n,!1,t))),this.parent.setRecordValue(l,r,n,!0),this.parent.taskFields[l]&&this.parent.dataOperation.updateMappingData(e,l)},e.prototype.totalDuration=function(e){for(var t=0,i=0;i<e.length;i++)t+=e[i].duration+e[i].offsetDuration;return t},e.prototype.calculateDuration=function(e,t){var i,a,n,r=e.ganttProperties,s=(i=!t&&!ne.isNullOrUndefined(r.segments)&&0<r.segments.length&&!ne.isNullOrUndefined(this.parent.editModule.taskbarEditModule)?this.parent.editModule.taskbarEditModule.sumOfDuration(r.segments):t||ne.isNullOrUndefined(this.parent.taskFields.milestone)||ne.isNullOrUndefined(r.startDate)||ne.isNullOrUndefined(r.endDate)||r.startDate.getTime()!==r.endDate.getTime()||!1!==e.taskData[this.parent.taskFields.milestone]?(i=t?r.baselineStartDate:r.startDate,s=t?r.baselineEndDate:r.endDate,o=r.durationUnit,a=!t&&r.isAutoSchedule,n=!t&&r.isMilestone,this.getDuration(i,s,o,a,n)):1,t?"baselineDuration":"duration"),o=(this.parent.setRecordValue(s,i,r,!0),t?this.parent.columnByField[this.parent.columnMapping.baselineDuration]:this.parent.columnByField[this.parent.columnMapping.duration]);ne.isNullOrUndefined(this.parent.editModule)||ne.isNullOrUndefined(this.parent.editModule.cellEditModule)||this.parent.editModule.cellEditModule.isCellEdit||ne.isNullOrUndefined(o)||(ne.isNullOrUndefined(o.edit)||ne.isNullOrUndefined(o.edit.read)||(a=this.parent.editModule.dialogModule.dialog,ne.isNullOrUndefined(a))||(n=t?a.querySelector("#"+this.parent.element.id+"BaselineDuration"):a.querySelector("#"+this.parent.element.id+"Duration"),ne.isNullOrUndefined(n))||(r=n.ej2_instances[0],ne.isNullOrUndefined(r))||r.value===i.toString()||(r.value=i.toString(),r.dataBind()),(this.parent.taskFields.duration||this.parent.taskFields.baselineDuration)&&(this.parent.dataOperation.updateMappingData(e,s),this.parent.taskFields.durationUnit)&&this.parent.dataOperation.updateMappingData(e,"durationUnit"))},e.prototype.getNonworkingTime=function(e,t,i,a,n){var r=this.parent;a=!!ne.isNullOrUndefined(a)||a;var s=!n&&!r.includeWeekend&&r.autoCalculateDateScheduling&&!(r.isLoad&&r.treeGrid.loadChildOnDemand&&r.taskFields.hasChildMapping)&&i?this.getWeekendCount(e,t):0,a=this.getNumberOfSeconds(e,t,a),o=i&&r.autoCalculateDateScheduling&&!(r.isLoad&&r.treeGrid.loadChildOnDemand&&r.taskFields.hasChildMapping)&&!n?this.getHolidaysCount(e,t):0,a=(a-86400*s-86400*o)/86400,n=this.getNonWorkingSecondsOnDate(e,t,i,n);return(0<r.weekWorkingTime.length?this.nonWorkingSeconds(e,t,i,a):a*(86400-r.secondsPerDay))+86400*s+86400*o+n},e.prototype.nonWorkingSeconds=function(e,t,i,a,n){var r=e.getTime()>t.getTime()?new Date(t.getTime()):new Date(e.getTime()),s=e.getTime()>t.getTime()?new Date(e.getTime()):new Date(t.getTime()),o=0,l=0;if(n?(e=this.parent.getCurrentDayStartTime(r),t=this.parent.getCurrentDayEndTime(r),r.getHours()<t/3600&&r.getHours()>=e/3600||r.setDate(r.getDate()+1)):(r.setDate(r.getDate()+1),r.setHours(0,0,0,0),s.setHours(0,0,0,0)),!(0<a||ne.isNullOrUndefined(a)))return 0;for(;n&&r.getTime()<=s.getTime()||!n&&r.getTime()<s.getTime();){if(i){if(this.isOnHolidayOrWeekEnd(r,!0))for(;r.setDate(r.getDate()+1),this.isOnHolidayOrWeekEnd(r,!0););this.parent.includeWeekend||this.getNextWorkingDay(r)}if(r.getTime()<=s.getTime()){l++;var d=this.parent.getSecondsPerDay(r);if(o+=n?d:86400-d,r.setDate(r.getDate()+1),i){if(this.isOnHolidayOrWeekEnd(r,!0))for(;r.setDate(r.getDate()+1),this.isOnHolidayOrWeekEnd(r,!0););this.parent.includeWeekend||this.getNextWorkingDay(r)}}}return n&&(0<o?o/=l:o=this.parent.secondsPerDay),o},e.prototype.getDuration=function(e,t,i,a,n,r){if(void 0===r&&(r=!0),!e||!t)return null;var s=0,o=this.parent.getFormatedDate(e)===this.parent.getFormatedDate(t);if(0<this.parent.weekWorkingTime.length){for(var l=new Date(e),d=this.nonWorkingSeconds(e,t,a,void 0,!0),h=0;l<=t;){var p=this.parent.getFormatedDate(l),u=this.parent.getSecondsPerDay(l),c=new Date(l),g=new Date(l),p=(c.setHours(0,0,0,0),g.setHours(0,0,0,0),c.setSeconds(this.parent.getCurrentDayStartTime(l)),g.setSeconds(this.parent.getCurrentDayEndTime(l)),p===this.parent.getFormatedDate(e)&&c.setTime(e.getTime()),p===this.parent.getFormatedDate(t)&&g.setTime(t.getTime()),this.getTimeDifference(c,g,r)/1e3),c=this.getNonworkingTime(c,g,a,r);h+=Math.max(0,p-c)/u,l.setDate(l.getDate()+1)}n&&o||(s=this.calculateDurationValue(i,h,d))}else{d=this.parent.secondsPerDay;var f=this.getTimeDifference(e,t,r)/1e3,m=this.getNonworkingTime(e,t,a,r);n&&o||(s=this.calculateDurationValue(i,(f-m)/d,d))}return parseFloat(s.toString())},e.prototype.calculateDurationValue=function(e,t,i){return e&&"day"!==e?"minute"===e?t*(i/60):t*(i/3600):t},e.prototype.getDurationAsSeconds=function(e,t,i){i=0<this.parent.weekWorkingTime.length?this.parent.getSecondsPerDay(i):this.parent.secondsPerDay;return t&&"day"!==t.toLocaleLowerCase()?"hour"===t.toLocaleLowerCase()?3600*e:60*e:i*e},e.prototype.getEndDate=function(e,t,i,a,n,r){for(var s=new Date(e.getTime()),o=new Date(e.getTime()),l=new Date(e.getTime()),d=0<this.parent.weekWorkingTime.length&&(!i||"day"===i.toLocaleLowerCase())?this.calculateSecondDuration(t,l,d,e,!0):this.getDurationAsSeconds(t,i,e);0<d;)o.setSeconds(o.getSeconds()+d),0<(d-=d-this.getNonworkingTime(s,o,a.isAutoSchedule,!0,r))&&(o=this.checkStartDate(o,a,n,void 0,r)),s=new Date(o.getTime());return o},e.prototype.getStartDate=function(e,t,i,a,n,r){for(var s=new Date(e.getTime()),o=new Date(e.getTime()),e=new Date(s.getTime()),l=0<this.parent.weekWorkingTime.length?this.calculateSecondDuration(t,e,l,s,!1):this.getDurationAsSeconds(t,i,s);0<l;)o.setSeconds(o.getSeconds()-l),0<(l-=l-this.getNonworkingTime(o,s,a.isAutoSchedule,!0,r))&&(s=this.checkEndDate(o,a,r)),s=new Date(o.getTime());return n&&a.isMilestone&&(o.setDate(o.getDate()-1),e=this.parent.getCurrentDayEndTime(a.endDate?a.isAutoSchedule?a.endDate:a.autoEndDate:o),this.parent.dateValidationModule.setTime(e,o),o=this.parent.dateValidationModule.checkStartDate(o,a,!0)),o},e.prototype.calculateSecondDuration=function(e,t,i,a,n){if(e<1)i=this.parent.getSecondsPerDay(t)*e;else{i=0;var r=e,s=this.parent.getCurrentDayStartTime(t),o=this.parent.getCurrentDayEndTime(t);for(t.getHours()<o/3600&&t.getHours()>s/3600||!this.fromSegments||(n?t.setDate(t.getDate()+1):t.setDate(t.getDate()-1));0<r;){if(this.isOnHolidayOrWeekEnd(t,!0))for(;n?t.setDate(t.getDate()+1):t.setDate(t.getDate()-1),this.isOnHolidayOrWeekEnd(t,!0););this.parent.includeWeekend||(t=n?this.getNextWorkingDay(t):this.getPreviousWorkingDay(t));var l,d=this.parent.getSecondsPerDay(t),h=0;this.getSecondsInDecimal(a)===this.parent.getStartTime(a)||Number.isInteger(r)||(l=e.toString().split("."),d*=h=parseFloat("."+l[1]),r-=h),r<1&&(d*=r),i+=d,n?t.setDate(t.getDate()+1):t.setDate(t.getDate()-1),h||r--}}return i},e.prototype.getProjectStartDate=function(e,t){if(!ne.isNullOrUndefined(this.parent.cloneProjectStartDate))return"string"==typeof this.parent.cloneProjectStartDate&&(this.parent.cloneProjectStartDate=this.getDateFromFormat(this.parent.cloneProjectStartDate)),s=this.checkStartDate(this.parent.cloneProjectStartDate),this.parent.cloneProjectStartDate=s,new Date(s.getTime());if(ne.isNullOrUndefined(this.parent.projectStartDate)){if(ne.isNullOrUndefined(t))return null;var i=this.parent.flatData,a=void 0;0<i.length?a=i[0].ganttProperties.startDate:(a=new Date).setHours(0,0,0,0);for(var n=1;n<i.length;n++){var r=i[n].ganttProperties.startDate;ne.isNullOrUndefined(r)||-1!==this.compareDates(r,a)||(a=r)}this.parent.cloneProjectStartDate=this.checkStartDate(a,e)}else{var s=this.getDateFromFormat(this.parent.projectStartDate);this.parent.cloneProjectStartDate=this.checkStartDate(s)}return new Date(this.parent.cloneProjectStartDate.getTime())},e.prototype.getValidStartDate=function(e,t,i){var a=null,n=i?e.baselineStartDate:t?e.autoStartDate:e.startDate,i=i?e.baselineEndDate:t?e.autoEndDate:e.endDate,t=!e.isAutoSchedule&&e.autoDuration?e.autoDuration:e.duration;if(ne.isNullOrUndefined(n))if(ne.isNullOrUndefined(i)){if(!ne.isNullOrUndefined(t)){t=this.parent.getTaskByUniqueID(e.uniqueID);if(this.parent.allowUnscheduledTasks&&t&&t.parentItem&&ne.isNullOrUndefined(n)&&ne.isNullOrUndefined(i)){for(var r=this.parent.getParentTask(t.parentItem);r&&!r.ganttProperties.startDate;)r=this.parent.getParentTask(r.parentItem);a=r&&r.ganttProperties.startDate?r.ganttProperties.startDate:this.parent.cloneProjectStartDate}else a=this.getProjectStartDate(e)}}else{a=new Date(i.getTime()),t=this.parent.getCurrentDayStartTime(a);this.setTime(t,a)}else a=new Date(n.getTime());return a},e.prototype.getValidEndDate=function(e,t,i){var a,n=null,r=i?e.baselineStartDate:t?e.autoStartDate:e.startDate,i=i?e.baselineEndDate:t?e.autoEndDate:e.endDate,t=t?e.autoDuration:e.duration;return ne.isNullOrUndefined(i)?ne.isNullOrUndefined(r)?ne.isNullOrUndefined(t)||(a=this.getValidStartDate(e))&&(n=this.getEndDate(a,t,e.durationUnit,e,!1)):e.isMilestone?n=this.checkStartDate(r):(n=new Date(r.getTime()),a=this.parent.getCurrentDayEndTime(i||n),this.setTime(a,n)):n=new Date(i.getTime()),n},e.prototype.getWorkingTime=function(e,t,i,a,n,r,s,o){var l;return ne.isNullOrUndefined(t.from)||ne.isNullOrUndefined(t.to)||(i.setHours(0,0,0,0),l=new Date(i.getTime()),i.setTime(i.getTime()+36e5*t.from),i=new Date(i.getTime()),24===t.to?l.setTime(l.getTime()+864e5):l.setTime(l.getTime()+36e5*t.to),l=(t=new Date(l.getTime())).getTime()-i.getTime(),i=this.getSecondsInDecimal(i),0===(t=this.getSecondsInDecimal(t))&&(t=86400),a+=l/1e3,0===n&&(this.parent.defaultStartTime=i,0<this.parent.weekWorkingTime.length)&&this.assignStartTime(e,i),n!==this[e.toLowerCase()+"TimeRangeLength"]-1&&""!==e||(this.parent.defaultEndTime=t,0<this.parent.weekWorkingTime.length&&this.assignEndTime(e,t)),0<n?""===e?(r.push(r[r.length-1]+i-s[n-1].to),s[n-1].to<i&&o.push({from:s[n-1].to,to:i,isWorking:!1,interval:i-s[n-1].to})):(this.parent[e.toLowerCase()+"NonWorkingHours"].push(this.parent[e.toLowerCase()+"NonWorkingHours"][this.parent[e.toLowerCase()+"NonWorkingHours"].length-1]+i-this.parent[e.toLowerCase()+"NonWorkingTimeRanges"][n-1].to),this.parent[e.toLowerCase()+"WorkingTimeRanges"][n-1].to<i&&this.parent[e.toLowerCase()+"NonWorkingTimeRanges"].push({from:this.parent[e.toLowerCase()+"WorkingTimeRanges"][n-1].to,to:i,isWorking:!1,interval:i-this.parent[e.toLowerCase()+"WorkingTimeRanges"][n-1].to})):(""===e?(r.push(0),o):(this.parent[e.toLowerCase()+"NonWorkingHours"].push(0),this.parent[e.toLowerCase()+"NonWorkingTimeRanges"])).push({from:0,to:i,isWorking:!1,interval:i}),(""===e?(s.push({from:i,to:t}),o):(this.parent[e.toLowerCase()+"WorkingTimeRanges"].push({from:i,to:t}),this.parent[e.toLowerCase()+"NonWorkingTimeRanges"])).push({from:i,to:t,isWorking:!0,interval:t-i})),a},e.prototype.assignStartTime=function(e,t){switch(e){case"Monday":this.parent.mondayDefaultStartTime=t;break;case"Tuesday":this.parent.tuesdayDefaultStartTime=t;break;case"Wednesday":this.parent.wednesdayDefaultStartTime=t;break;case"Thursday":this.parent.thursdayDefaultStartTime=t;break;case"Friday":this.parent.fridayDefaultStartTime=t;break;case"Saturday":this.parent.saturdayDefaultStartTime=t;break;case"Sunday":this.parent.sundayDefaultStartTime=t}},e.prototype.assignEndTime=function(e,t){switch(e){case"Monday":this.parent.mondayDefaultEndTime=t;break;case"Tuesday":this.parent.tuesdayDefaultEndTime=t;break;case"Wednesday":this.parent.wednesdayDefaultEndTime=t;break;case"Thursday":this.parent.thursdayDefaultEndTime=t;break;case"Friday":this.parent.fridayDefaultEndTime=t;break;case"Saturday":this.parent.saturdayDefaultEndTime=t;break;case"Sunday":this.parent.sundayDefaultEndTime=t}},e.prototype.calculateWeekWorkTime=function(e,t,i,a,n,r,s){for(var o=0,l=0;l<t.length;l++){var d=t[l];o+=this.getWorkingTime(e,d,i,a,l,n,r,s)}return this.parent[e.toLowerCase()+"DefaultStartTime"]/3600!=24&&this.parent[e.toLowerCase()+"NonWorkingTimeRanges"].push({from:this.parent[e.toLowerCase()+"DefaultEndTime"],to:86400,isWorking:!1,interval:86400-this.parent[e.toLowerCase()+"DefaultEndTime"]}),o},e.prototype.getSecondsPerDay=function(){for(var e=0,t=new Date("10/11/2018"),i=(this.parent.nonWorkingHours=[],this.parent.nonWorkingHours),a=(this.parent.workingTimeRanges=[],this.parent.workingTimeRanges),n=(this.parent.nonWorkingTimeRanges=[],this.parent.nonWorkingTimeRanges),r=0,s=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"];r<s.length;r++)this[(m=s[r]).toLowerCase()+"TimeRangeLength"]=this.parent.dayWorkingTime.length;if(0<this.parent.weekWorkingTime.length){for(var o=0;o<this.parent.weekWorkingTime.length;o++)this[this.parent.weekWorkingTime[o].dayOfWeek.toLowerCase()+"TimeRangeLength"]=this.parent.weekWorkingTime[o].timeRange.length;for(var l=this.parent.weekWorkingTime,d=this.parent.dayWorkingTime,h=0,p=l;h<p.length;h++){var u,c=p[h];c.timeRange&&0<c.timeRange.length&&(this.parent[c.dayOfWeek.toLowerCase()+"NonWorkingHours"]=[],this.parent[c.dayOfWeek.toLowerCase()+"NonWorkingTimeRanges"]=[],this.parent[c.dayOfWeek.toLowerCase()+"WorkingTimeRanges"]=[],u=this.calculateWeekWorkTime(c.dayOfWeek,c.timeRange,t,e,i,a,n),this.parent[c.dayOfWeek.toLowerCase()+"Seconds"]=u)}for(var g=0,f=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"];g<f.length;g++){var m=f[g],y=this.parent[m.toLowerCase()+"DefaultStartTime"];ne.isNullOrUndefined(y)&&(y=this.calculateWeekWorkTime(m,d,t,e,i,a,n),this.parent[m.toLowerCase()+"Seconds"]=y)}}for(var D=this.parent.dayWorkingTime,k=D.length,b=0,w=0;w<k;w++){var T=D[w];b+=this.getWorkingTime("",T,t,e,w,i,a,n)}return this.parent.defaultEndTime/3600!=24&&n.push({from:this.parent.defaultEndTime,to:86400,isWorking:!1,interval:86400-this.parent.defaultEndTime}),e=b},e.prototype.getDurationValue=function(e){var t,i=null,a=null;return"string"==typeof e?(t=e.match(/(\d*\.*\d+|.+$)/g))&&t.length<=2&&(a=parseFloat(t[0].toString().trim()),t=t[1]?t[1].toString().trim().toLowerCase():null,-1!==ne.getValue("minute",this.parent.durationUnitEditText).indexOf(t)?i="minute":-1!==ne.getValue("hour",this.parent.durationUnitEditText).indexOf(t)?i="hour":-1!==ne.getValue("day",this.parent.durationUnitEditText).indexOf(t)&&(i="day")):(a=e,i=null),{duration:a,durationUnit:i}},e.prototype.getNextWorkingDay=function(e){var t=e.getDay();return-1!==this.parent.nonWorkingDayIndex.indexOf(t)?(e.setDate(e.getDate()+1),this.getNextWorkingDay(e)):e},e.prototype.getWeekendCount=function(e,t){var i=0,a=new Date(e.getTime()),n=new Date(t.getTime());for(a.setHours(0,0,0,0),a.setDate(a.getDate()+1),n.setHours(0,0,0,0);a.getTime()<n.getTime();)-1!==this.parent.nonWorkingDayIndex.indexOf(a.getDay())&&(i+=1),a.setDate(a.getDate()+1);return i},e.prototype.getNumberOfSeconds=function(e,t,i){var e=new Date(e.getTime()),t=new Date(t.getTime()),a=0;return e.setDate(e.getDate()+1),e.setHours(0,0,0,0),t.setHours(0,0,0,0),a=(a=e.getTime()<t.getTime()?this.getTimeDifference(e,t,i)/1e3:a)%86400!=0?a-a%86400+86400:a},e.prototype.getHolidaysCount=function(e,t){var i=0,a=this.parent.totalHolidayDates,n=new Date(e.getTime()),r=new Date(t.getTime());if(n.setDate(n.getDate()+1),n.setHours(0,0,0,0),r.setHours(0,0,0,0),n.getTime()<r.getTime())for(var s=0;s<a.length;s++){var o=this.getDateFromFormat(new Date(a[s]));n.getTime()<=o.getTime()&&r.getTime()>o.getTime()&&(!this.parent.includeWeekend&&-1===this.parent.nonWorkingDayIndex.indexOf(o.getDay())||this.parent.includeWeekend)&&(i+=1)}return i},e.prototype.getHolidayDates=function(){for(var e=this.parent.holidays,t=[],i=0;i<e.length;i++){var a=this.getDateFromFormat(e[i].from),n=this.getDateFromFormat(e[i].to);if(!ne.isNullOrUndefined(a)||!ne.isNullOrUndefined(n))if(ne.isNullOrUndefined(a)||ne.isNullOrUndefined(n)){var r=a||n;r.setHours(0,0,0,0),-1===t.indexOf(r.getTime())&&t.push(r.getTime())}else for(;a<=n;)a.setHours(0,0,0,0),-1===t.indexOf(a.getTime())&&t.push(a.getTime()),a.setDate(a.getDate()+1)}return t},e.prototype.isOnHolidayOrWeekEnd=function(e,t){var i=this.parent;if(t=ne.isNullOrUndefined(t)?i.includeWeekend:t,!(t=i.autoCalculateDateScheduling||i.isLoad&&i.treeGrid.loadChildOnDemand&&i.taskFields.hasChildMapping?t:!0)&&-1!==this.parent.nonWorkingDayIndex.indexOf(e.getDay()))return!0;var a=i.totalHolidayDates;if(a&&0!==a.length)for(var n=e.getTime(),r=0;r<a.length;r++){var s=this.getDateFromFormat(new Date(a[r])),o=s.setHours(0,0,0,0),s=s.setHours(23,59,59,999);if(o<=n&&n<=s)return!0}return!1},e.prototype.getNonWorkingSecondsOnDate=function(e,t,i,a){var n=this.getSecondsInDecimal(e),r=this.getSecondsInDecimal(t),s=-1,o=-1,l=0,d=!(!i||!this.parent.autoCalculateDateScheduling||this.parent.isLoad&&this.parent.treeGrid.loadChildOnDemand&&this.parent.taskFields.hasChildMapping||a)&&this.isOnHolidayOrWeekEnd(e,null),i=!(!i||!this.parent.autoCalculateDateScheduling||this.parent.isLoad&&this.parent.treeGrid.loadChildOnDemand&&this.parent.taskFields.hasChildMapping||a)&&this.isOnHolidayOrWeekEnd(t,null);if(0<this.parent.weekWorkingTime.length){for(var h=this.parent.getNonWorkingRange(e),p=0;p<h.length;p++)n>=(c=h[p]).from&&n<=c.to&&(s=p);for(var u=this.parent.getNonWorkingRange(t),p=0;p<u.length;p++)r>=(c=u[p]).from&&r<=c.to&&(o=p)}else{h=this.parent.nonWorkingTimeRanges,u=this.parent.nonWorkingTimeRanges;for(var c,p=0;p<h.length;p++)n>=(c=h[p]).from&&n<=c.to&&(s=p),r>=c.from&&r<=c.to&&(o=p)}if(e.getDate()!==t.getDate()||e.getMonth()!==t.getMonth()||e.getFullYear()!==t.getFullYear()){if(d)l+=86400-n;else for(p=s;p<h.length;p++)ne.isNullOrUndefined(h[p])||h[p].isWorking||(l+=p===s?h[p].to-n:h[p].interval);if(i)l+=r;else for(p=0;p<=o;p++)u[p].isWorking||(l+=p===o?r-u[p].from:u[p].interval)}else if(s!==o)if(i)l+=r-n;else for(p=s;p<=o;p++)ne.isNullOrUndefined(h[p])||h[p].isWorking||(l+=p===s?h[p].to-n:p===o?r-h[p].from:h[p].interval);else i?l+=r-n:h[s].isWorking||(l=r-n);return l},e.prototype.getPreviousWorkingDay=function(e){var t=e.getDay(),i=0===t?6:t-1,a=this.parent.getCurrentDayEndTime(e);return(-1!==this.parent.nonWorkingDayIndex.indexOf(t)||-1!==this.parent.nonWorkingDayIndex.indexOf(i)&&86400!==a&&0===this.getSecondsInDecimal(e))&&(e.setDate(e.getDate()-1),-1!==this.parent.nonWorkingDayIndex.indexOf(e.getDay()))?this.getPreviousWorkingDay(e):e},e.prototype.getNonWorkingDayIndex=function(){for(var e=["sunday","monday","tuesday","wednesday","thursday","friday","saturday"],t=e.length,i=(0===this.parent.workWeek.length&&(this.parent.workWeek=["Monday","Tuesday","Wednesday","Thursday","Friday"]),this.parent.workWeek.slice()),a=i.length,n=0;n<a;n++)i[n]=i[n].toLowerCase();this.parent.nonWorkingDayIndex=[];for(n=0;n<t;n++)-1===i.indexOf(e[n])&&this.parent.nonWorkingDayIndex.push(n)},e.prototype.setTime=function(e,t){var i=e/3600,a=(e-3600*(i=parseInt(i,10)))/60,a=parseInt(a,10);t.setHours(i,a,e-3600*i-60*a)},e.prototype.getTimeDifference=function(e,t,i){e=new Date(e.getTime()),t=new Date(t.getTime());return i&&this.updateDateWithTimeZone(e,t),t.getTime()-e.getTime()},e.prototype.updateDateWithTimeZone=function(e,t){var i,a,n,r,s=e.getTimezoneOffset(),o=t.getTimezoneOffset();s!==o&&((n=new Date((new Date).getFullYear(),0,1).getTimezoneOffset())!==s?(a=e,i=s):n!==o&&(a=t,i=o),n<0?(r=n-i,a.setTime(a.getTime()+60*r*1e3)):0<=n&&(r=i-n,a.setTime(a.getTime()-60*r*1e3)))},e.prototype.getSecondsInDecimal=function(e){return 60*e.getHours()*60+60*e.getMinutes()+e.getSeconds()+e.getMilliseconds()/1e3},e.prototype.offset=function(e,t){var i=e.getTimezoneOffset();try{var a=new Date(e.toLocaleString("en-US",{timeZone:t}));return isNaN(a.getTime())?0:(e.getTime()-a.getTime())/6e4+i}catch(e){return 0}},e.prototype.remove=function(e,t){return e=ne.isNullOrUndefined(e)?e:this.reverse(e,t,e.getTimezoneOffset())},e.prototype.reverse=function(e,t,i){"string"==typeof t&&(t=this.offset(e,t)),"string"==typeof i&&(i=this.offset(e,i));var a=e.getTimezoneOffset(),t=(e=new Date(e.getTime()+6e4*(t-i))).getTimezoneOffset();return new Date(e.getTime()+6e4*(t-a))},e.prototype.convert=function(e,t){var i=e.getTimezoneOffset(),t=this.offset(e,t),a=("string"==typeof i&&(i=this.offset(e,i)),"string"==typeof t&&(t=this.offset(e,t)),e.getTimezoneOffset()),i=(e=new Date(e.getTime()+6e4*(i-t))).getTimezoneOffset();return new Date(e.getTime()+6e4*(i-a))},e.prototype.getDateFromFormat=function(e,t){if(ne.isNullOrUndefined(e))return null;e=e instanceof Date?new Date(e.getTime()):(i=this.parent.globalize.parseDate(e,{format:this.parent.getDateFormat(),type:"dateTime"}),ne.isNullOrUndefined(i)&&!isNaN(new Date(e).getTime())?new Date(e):i);var i=!this.parent.isOnAdded;return!ne.isNullOrUndefined(this.parent.timezone)&&t&&(i&&this.parent.timezone||this.parent.isLoad)?this.convert(e,this.parent.timezone):e},e.prototype.compareDates=function(e,t){return ne.isNullOrUndefined(e)||ne.isNullOrUndefined(t)?!ne.isNullOrUndefined(e)&&ne.isNullOrUndefined(t)?1:ne.isNullOrUndefined(e)&&!ne.isNullOrUndefined(t)?-1:null:e.getTime()>t.getTime()?1:e.getTime()<t.getTime()?-1:0},e.prototype.getDurationString=function(e,t){var i="";return ne.isNullOrUndefined(e)||(i+=parseFloat(e.toFixed(2))+" ",ne.isNullOrUndefined(t))||(e=1!==e,"day"===t?i+=e?this.parent.localeObj.getConstant("days"):this.parent.localeObj.getConstant("day"):"hour"===t?i+=e?this.parent.localeObj.getConstant("hours"):this.parent.localeObj.getConstant("hour"):"minute"===t&&(i+=e?this.parent.localeObj.getConstant("minutes"):this.parent.localeObj.getConstant("minute"))),i},e.prototype.getWorkString=function(e,t){var i="";return ne.isNullOrUndefined(e)||(i+=parseFloat(e).toFixed(2)+" ",ne.isNullOrUndefined(t))||(e=1!==e,"day"===t?i+=e?this.parent.localeObj.getConstant("days"):this.parent.localeObj.getConstant("day"):"hour"===t?i+=e?this.parent.localeObj.getConstant("hours"):this.parent.localeObj.getConstant("hour"):"minute"===t&&(i+=e?this.parent.localeObj.getConstant("minutes"):this.parent.localeObj.getConstant("minute"))),i},e.prototype.calculateProjectDatesForValidatedTasks=function(e){var t,i=this,a="string"==typeof this.parent.projectStartDate?new Date(this.parent.projectStartDate):this.parent.projectStartDate,n="string"==typeof this.parent.projectEndDate?new Date(this.parent.projectEndDate):this.parent.projectEndDate,r=null,s=null,o=ne.getValue("dataOperation.dataArray",this.parent);a&&n||!o||0!==o.length?0<o.length&&(t=o.slice().sort(function(e,t){return new Date(e[i.parent.taskFields.startDate]).getTime()-new Date(t[i.parent.taskFields.startDate]).getTime()}),o=o.slice().sort(function(e,t){return new Date(t[i.parent.taskFields.endDate]).getTime()-new Date(e[i.parent.taskFields.endDate]).getTime()}),r=t[0][this.parent.taskFields.startDate],s=o[o.length-1][this.parent.taskFields.endDate]):(r=this.getDateFromFormat(new Date),s=this.getDateFromFormat(new Date(r.getTime()))),this.parent.cloneProjectStartDate=a?new Date(a.getTime()):"string"==typeof r?new Date(r):r,this.parent.cloneProjectEndDate=n?new Date(n.getTime()):"string"==typeof s?new Date(s):s},e.prototype.calculateProjectDates=function(e){var t,i,a,n,r,s,o,l,d,h=this;this.parent.isLoad&&this.parent.enablePersistence&&this.parent.cloneProjectStartDate&&this.parent.cloneProjectEndDate?(this.parent.cloneProjectStartDate=this.getDateFromFormat(this.parent.cloneProjectStartDate),this.parent.cloneProjectEndDate=this.getDateFromFormat(this.parent.cloneProjectEndDate)):(t="string"==typeof this.parent.projectStartDate?new Date(this.parent.projectStartDate):this.parent.projectStartDate,i="string"==typeof this.parent.projectEndDate?new Date(this.parent.projectEndDate):this.parent.projectEndDate,t=this.parent.timelineModule.isZooming&&this.parent.cloneProjectStartDate?this.getDateFromFormat(this.parent.cloneProjectStartDate):this.getDateFromFormat(t),i=this.parent.timelineModule.isZooming&&this.parent.cloneProjectEndDate?this.getDateFromFormat(this.parent.cloneProjectEndDate):this.getDateFromFormat(i),n=a=null,r=this.parent.flatData,s=this.parent.currentViewData,o=[],l=function(e){ne.isNullOrUndefined(e)||o.push(e)},d=function(e){0<e.length&&(e.sort(function(e,t){return e.getTime()-t.getTime()}),a=new Date(e[0].getTime()),n=1<e.length?new Date(e[e.length-1].getTime()):null)},(!t||!i)&&0<r.length||e||this.parent.timelineModule.isZoomToFit?((0<s.length&&this.parent.timelineModule.isZoomToFit&&this.parent.treeGrid.filterModule&&0<this.parent.treeGrid.filterModule.filteredResult.length?s:r).forEach(function(e){o=[];var t,e=e.ganttProperties,i=ne.isNullOrUndefined(e.startDate)&&ne.isNullOrUndefined(e.endDate)?t=null:(t=h.getValidStartDate(e),h.getValidEndDate(e));l(a),l(n),l(t),l(i),h.parent.renderBaseline&&!h.parent.timelineModule.isZoomToFit&&(l(e.baselineStartDate),l(e.baselineEndDate)),e.indicators&&0<e.indicators.length&&!h.parent.timelineModule.isZoomToFit&&e.indicators.forEach(function(e){l(h.getDateFromFormat(e.date))}),d(o)}),o=[],l(a),l(n),0<this.parent.eventMarkers.length&&!this.parent.timelineModule.isZoomToFit&&this.parent.eventMarkers.forEach(function(e,t){l(h.getDateFromFormat(e.day))}),0<this.parent.totalHolidayDates.length&&!this.parent.timelineModule.isZoomToFit&&this.parent.totalHolidayDates.forEach(function(e,t){l(new Date(e))}),d(o),a&&n||(a?a=ne.isNullOrUndefined(a)?this.getDateFromFormat(new Date):a:(a=ne.isNullOrUndefined(a)?this.getDateFromFormat(new Date):a).setHours(0,0,0,0),(n=this.getDateFromFormat(new Date(a.getTime()))).setDate(n.getDate()+20))):t&&i||0!==r.length||(a=this.getDateFromFormat(new Date),n=this.getDateFromFormat(new Date(a.getTime()))),e?(ne.setValue("minStartDate",a,e),ne.setValue("maxEndDate",n,e)):(this.prevProjectStartDate=this.parent.cloneProjectStartDate,this.parent.cloneProjectStartDate=a&&(this.parent.timelineModule.isZoomToFit||ne.isNullOrUndefined(t))?a:new Date(t.getTime()),this.parent.cloneProjectEndDate=n&&(this.parent.timelineModule.isZoomToFit||ne.isNullOrUndefined(i))?n:new Date(i.getTime())),this.parent.isProjectDateUpdated=!0)},e.prototype.splitTasksDuration=function(e){var t=0,i=e[0].startDate,e=e[e.length-1].endDate;return"Hour"===this.parent.timelineModule.bottomTier?t+=Math.ceil(this.getTimeDifference(i,e)/36e5):"Minutes"===this.parent.timelineModule.bottomTier?t+=Math.ceil(this.getTimeDifference(i,e)/6e4):t+=Math.ceil(this.getTimeDifference(i,e)/864e5),t};var J=e;function e(e){this.fromSegments=!1,this.mondayTimeRangeLength=0,this.tuesdayTimeRangeLength=0,this.wednesdayTimeRangeLength=0,this.thursdayTimeRangeLength=0,this.fridayTimeRangeLength=0,this.saturdayTimeRangeLength=0,this.sundayTimeRangeLength=0,this.parent=e}ee=function(e,t){return(ee=Object.setPrototypeOf||({__proto__:[]}instanceof Array?function(e,t){e.__proto__=t}:function(e,t){for(var i in t)t.hasOwnProperty(i)&&(e[i]=t[i])}))(e,t)};(function(e,t){function i(){this.constructor=e}ee(e,t),e.prototype=null===t?Object.create(t):(i.prototype=t.prototype,new i)})(t,te=J),t.prototype.addEventListener=function(){this.parent.on("beforeDataManipulate",this.checkDataBinding.bind(this))},t.prototype.checkDataBinding=function(e){var t,i=this;e&&(this.parent.flatData=[],this.parent.currentViewData=[],this.parent.updatedRecords=[],this.dataArray=[],this.taskIds={},this.parent.ids=[],this.recordIndex=0,this.hierarchyData=[],this.parent.predecessorsCollection=[],this.parent.treeGrid.parentData=[],this.parent.taskIds=[]),ne.isNullOrUndefined(this.parent.dataSource)?(this.parent.dataSource=[],this.parent.processTimeline(),this.parent.renderGantt(e)):this.parent.dataSource instanceof D.DataManager?this.initDataSource(e):(this.parent.dataSource instanceof Object&&H(this.parent)?(t=ne.getValue("result",this.parent.dataSource),this.dataArray=t):this.dataArray=this.parent.dataSource,this.processTimeline(),this.cloneDataSource(),this.parent.renderGantt(e),this.parent.flatData.map(function(e){i.parent.chartRowsModule.updateSegment(e.ganttProperties.segments,e.ganttProperties.taskId)})),this.parent.flatData.map(function(e){i.parent.chartRowsModule.updateSegment(e.ganttProperties.segments,e.ganttProperties.taskId)})},t.prototype.processTimeline=function(){this.parent.processTimeline(),this.parent.enableValidation||(this.parent.dataOperation.calculateProjectDatesForValidatedTasks(),this.parent.timelineModule.validateTimelineProp())},t.prototype.initDataSource=function(t){var i=this,e=this.parent.query instanceof D.Query?this.parent.query:new D.Query,a=(e.requiresCount(),this.parent.dataSource);this.parent.loadChildOnDemand&&this.parent.taskFields.hasChildMapping?(this.processTimeline(),this.parent.renderGantt(t)):a.executeQuery(e).then(function(e){i.dataArray=e.result,i.processTimeline(),i.parent.loadChildOnDemand&&(!i.parent.loadChildOnDemand||i.parent.taskFields.hasChildMapping)||i.cloneDataSource(),i.parent.renderGantt(t)}).catch(function(e){i.parent.processTimeline(),i.parent.renderGantt(t),i.parent.trigger("actionFailure",{error:e})})},t.prototype.constructDataSource=function(e){for(var t=new D.DataManager(e).executeLocal((new D.Query).group(this.parent.taskFields.parentID)),i=[],a=0;a<t.length;a++){var n=t[a];if(!ne.isNullOrUndefined(n.key)){var r=n.key.toString(),r=void 0!==this.taskIds[r]?this.taskIds[r]:-1;if(-1<r&&!ne.isNullOrUndefined(n.key)){e[r][this.parent.taskFields.child]=n.items;continue}}(-1!==r||this.parent.loadChildOnDemand&&this.parent.taskFields.hasChildMapping)&&i.push.apply(i,n.items)}this.hierarchyData=this.dataReorder(e,i)},t.prototype.cloneDataSource=function(){var e,t,i,a=this.parent.taskFields.id,n=this.parent.taskFields.parentID,r=[];if(ne.isNullOrUndefined(a)||ne.isNullOrUndefined(n))r=this.dataArray;else{var s=[],n=void 0;this.parent.loadChildOnDemand&&this.parent.taskFields.hasChildMapping&&!this.parent.enableVirtualization&&(n=JSON.parse(JSON.stringify(this.dataArray)));for(var o=0;o<this.dataArray.length;o++){var l=this.dataArray[o];l.parentItem&&delete l.parentItem,s.push(ne.extend({},{},l,!0)),ne.isNullOrUndefined(l[a])||(l=l[a].toString(),this.taskIds[l]=o)}this.parent.taskFields.child||this.parent.setProperties({taskFields:{child:"Children"}},!0),ne.isNullOrUndefined(n)?this.constructDataSource(s):(this.constructDataSource(this.dataArray),this.dataArray=n),r=this.hierarchyData}this.parent.taskFields.segmentId&&(this.segmentCollection=new D.DataManager(this.parent.segmentData).executeLocal((new D.Query).group(this.parent.taskFields.segmentId)),this.parent.taskFields.segments||(this.parent.taskFields.segments="Segments")),"ProjectView"!==this.parent.viewType&&(n=ne.extend([],[],this.parent.resources,!0),this.constructResourceViewDataSource(n,r,e=[]),0<e.length&&(i=this.parent.resourceFields.name||"resourceName",(t={})[this.parent.resourceFields.id]=0,t[i]=this.parent.localeObj.getConstant("unassignedTask"),t[this.parent.taskFields.child]=e,n.push(t)),r=n),this.prepareDataSource(r)},t.prototype.constructResourceViewDataSource=function(s,o,l){for(var d=this,e=0;e<o.length;e++)!function(e){var a=o[e],n=null!==d.parent.taskFields.child?d.parent.taskFields.child:d.parent.taskFields.child="Children",e=a&&a[d.parent.taskFields.resourceInfo],r=d.parent.resourceFields.id;if(a[n]&&0!==a[n].length||!e||!e.length)(!a[n]||a[n]&&0===a[n].length)&&l.push(a);else if("string"==typeof e){d.isResourceString=!0;for(var t=e,i=0;i<s.length;i++)if(s[i][d.parent.resourceFields.name].toString()===t.toString()){s[i][n]?s[i][n].push(a):s[i][n]=[a];break}}else e.forEach(function(e){for(var t="object"==typeof e?e[r]:e,i=0;i<s.length;i++)if(s[i][r].toString()===t.toString()){s[i][n]?s[i][n].push(a):s[i][n]=[a];break}});a[d.parent.taskFields.child]&&a[d.parent.taskFields.child].length&&d.constructResourceViewDataSource(s,a[d.parent.taskFields.child],l)}(e)},t.prototype.prepareDataSource=function(e){this.prepareRecordCollection(e,0),this.parent.initialLoadData=ne.extend({},{},this.parent.flatData,!0),(!this.parent.autoCalculateDateScheduling||this.parent.isLoad&&this.parent.treeGrid.loadChildOnDemand&&this.parent.taskFields.hasChildMapping)&&(this.parent.dataMap=this.parent.flatData.reduce(function(e,t){return e.set(t.uniqueID,t),e},new Map)),"ResourceView"===this.parent.viewType&&this.calculateSharedTaskUniqueIds(),this.parent.taskFields.dependency&&this.parent.predecessorModule&&this.parent.predecessorModule.ensurePredecessorCollection()},t.prototype.calculateSharedTaskUniqueIds=function(){for(var r=this,e=0;e<this.parent.getTaskIds().length;e++)!function(e){var t=[];if(t[0]=r.parent.getTaskIds()[e][0],t[1]=r.parent.getTaskIds()[e].slice(1),"R"!==t[0]){var i=[],a=[];r.parent.flatData.filter(function(e){e.ganttProperties.taskId.toString()===t[1]&&0!==e.level&&(a.push(e.ganttProperties.rowUniqueID),i.push(e))});for(var n=0;n<i.length;n++)i[n].ganttProperties.sharedTaskUniqueIds=a}}(e)},t.prototype.appendGanttRecord=function(e){this.parent.flatData.push(e)},t.prototype.prepareRecordCollection=function(e,r,s){var o,l,d,h,p,u,c,g,f,m,y,D=this;Array.isArray(e)&&(o=this.parent.taskFields,l=o.hasChildMapping,d=o.segmentId,h=o.constraintDate,p=o.constraintType,u=this.parent.enableValidation,this.parent.autoCalculateDateScheduling,c=this.parent.isLoad,g=this.parent.treeGrid.loadChildOnDemand,f=this.parent.viewType,m=this.parent.allowParentDependency,y=this.parent.dataSource instanceof Object&&H(this.parent)&&!ne.isNullOrUndefined(o.child),e.forEach(function(t){d&&D.segmentCollection&&(a=D.segmentCollection.find(function(e){return e.key===t[o.id]}))&&a.items&&a.items.length&&(t[o.segments]=a.items),l&&t.parentUniqueID&&(s=D.parent.getTaskByUniqueID(t.parentUniqueID)),h&&p&&!t.constraintDate&&!t[p]&&(t[p]=0,t[h]=t[o.startDate]||t[o.endDate]);var e,i,a=D.createRecord(t,r,s,!0,y),n=((!u||c&&g&&l)&&D.updateTaskLeftWidth(a),a.index=D.recordIndex++,D.parent.ids[a.index]=a.ganttProperties.rowUniqueID,D.appendGanttRecord(a),D.parent.setTaskIds(a),t[o.child]||t.taskData&&t.taskData[o.child]);"ResourceView"!==f||n&&0!==n.length||a.parentItem||0!==a.level||(e=a.ganttProperties,i=a,D.parent.setRecordValue(e.isAutoSchedule?"startDate":"autoStartDate",null,e,!0),D.parent.setRecordValue(e.isAutoSchedule?"endDate":"autoEndDate",null,e,!0),D.parent.setRecordValue("isMilestone",!1,e,!0),e.isAutoSchedule&&D.calculateDuration(i),D.updateWorkWithDuration(i),D.parent.setRecordValue("work",e.work,e,!0),D.parent.setRecordValue("taskType","FixedDuration",e,!0),o.type&&D.updateMappingData(i,"type"),D.parent.setRecordValue("progress",0,e,!0),D.parent.setRecordValue("totalProgress",0,e,!0),D.parent.setRecordValue("totalDuration",0,e,!0),e.isAutoSchedule||(D.parent.setRecordValue("autoDuration",D.calculateAutoDuration(e),e,!0),D.updateAutoWidthLeft(i)),m||D.resetDependency(i),D.updateWidthLeft(i),D.updateTaskData(i)),l&&(s=null),n&&0<n.length&&D.prepareRecordCollection(n,a.level+1,a)}))},t.prototype.addCustomFieldValue=function(e