@syncfusion/ej2-gantt 22.2.5 → 22.2.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/dist/ej2-gantt.min.js +2 -2
  3. package/dist/ej2-gantt.umd.min.js +2 -2
  4. package/dist/ej2-gantt.umd.min.js.map +1 -1
  5. package/dist/es6/ej2-gantt.es2015.js +216 -174
  6. package/dist/es6/ej2-gantt.es2015.js.map +1 -1
  7. package/dist/es6/ej2-gantt.es5.js +216 -174
  8. package/dist/es6/ej2-gantt.es5.js.map +1 -1
  9. package/dist/global/ej2-gantt.min.js +2 -2
  10. package/dist/global/ej2-gantt.min.js.map +1 -1
  11. package/dist/global/index.d.ts +1 -1
  12. package/package.json +10 -10
  13. package/src/gantt/actions/critical-path.js +14 -3
  14. package/src/gantt/actions/edit.js +5 -2
  15. package/src/gantt/actions/taskbar-edit.js +10 -1
  16. package/src/gantt/base/gantt-chart.js +3 -0
  17. package/src/gantt/base/interface.d.ts +0 -2
  18. package/src/gantt/base/task-processor.js +1 -0
  19. package/src/gantt/base/tree-grid.js +20 -4
  20. package/src/gantt/renderer/chart-rows.js +13 -6
  21. package/src/gantt/renderer/connector-line.d.ts +0 -2
  22. package/src/gantt/renderer/connector-line.js +130 -153
  23. package/src/gantt/renderer/timeline.js +1 -2
  24. package/styles/bootstrap-dark.css +1 -1
  25. package/styles/bootstrap.css +1 -1
  26. package/styles/bootstrap4.css +1 -1
  27. package/styles/bootstrap5-dark.css +1 -1
  28. package/styles/bootstrap5.css +1 -1
  29. package/styles/fabric-dark.css +1 -1
  30. package/styles/fabric.css +1 -1
  31. package/styles/fluent-dark.css +1 -1
  32. package/styles/fluent.css +1 -1
  33. package/styles/gantt/_layout.scss +1 -1
  34. package/styles/gantt/bootstrap-dark.css +1 -1
  35. package/styles/gantt/bootstrap.css +1 -1
  36. package/styles/gantt/bootstrap4.css +1 -1
  37. package/styles/gantt/bootstrap5-dark.css +1 -1
  38. package/styles/gantt/bootstrap5.css +1 -1
  39. package/styles/gantt/fabric-dark.css +1 -1
  40. package/styles/gantt/fabric.css +1 -1
  41. package/styles/gantt/fluent-dark.css +1 -1
  42. package/styles/gantt/fluent.css +1 -1
  43. package/styles/gantt/highcontrast-light.css +1 -1
  44. package/styles/gantt/highcontrast.css +1 -1
  45. package/styles/gantt/material-dark.css +1 -1
  46. package/styles/gantt/material.css +1 -1
  47. package/styles/gantt/material3-dark.css +1 -1
  48. package/styles/gantt/material3.css +1 -1
  49. package/styles/gantt/tailwind-dark.css +1 -1
  50. package/styles/gantt/tailwind.css +1 -1
  51. package/styles/highcontrast-light.css +1 -1
  52. package/styles/highcontrast.css +1 -1
  53. package/styles/material-dark.css +1 -1
  54. package/styles/material.css +1 -1
  55. package/styles/material3-dark.css +1 -1
  56. package/styles/material3.css +1 -1
  57. package/styles/tailwind-dark.css +1 -1
  58. package/styles/tailwind.css +1 -1
@@ -3998,6 +3998,7 @@ var TaskProcessor = /** @__PURE__ @class */ (function (_super) {
3998
3998
  this.parent.setRecordValue('progress', Math.floor(parentProgress), parentProp, true);
3999
3999
  this.parent.setRecordValue('totalProgress', totalProgress, parentProp, true);
4000
4000
  this.parent.setRecordValue('totalDuration', totalDuration, parentProp, true);
4001
+ this.parent.setRecordValue('autoDuration', parentProp.duration, parentProp, true);
4001
4002
  if (!parentProp.isAutoSchedule) {
4002
4003
  this.parent.setRecordValue('autoDuration', this.calculateAutoDuration(parentProp), parentProp, true);
4003
4004
  this.updateAutoWidthLeft(parentData);
@@ -4554,6 +4555,9 @@ var GanttChart = /** @__PURE__ @class */ (function () {
4554
4555
  }
4555
4556
  this.updateWidthAndHeight();
4556
4557
  this.parent.notify('selectRowByIndex', {});
4558
+ if (this.parent.timelineModule.isZoomToFit) {
4559
+ this.parent.timelineModule.processZoomToFit();
4560
+ }
4557
4561
  };
4558
4562
  /**
4559
4563
  * @param {IGanttData[]} records .
@@ -6172,8 +6176,7 @@ var Timeline = /** @__PURE__ @class */ (function () {
6172
6176
  this.parent.showSpinner();
6173
6177
  }
6174
6178
  this.changeTimelineSettings(newTimeline);
6175
- this.isZoomToFit = false;
6176
- this.parent.isTimelineRoundOff = this.isZoomToFit ? false : isNullOrUndefined(this.parent.projectStartDate) ? true : false;
6179
+ this.parent.isTimelineRoundOff = isNullOrUndefined(this.parent.projectStartDate) ? true : false;
6177
6180
  };
6178
6181
  Timeline.prototype.bottomTierCellWidthCalc = function (mode, zoomLevel, date) {
6179
6182
  var convertedMilliSeconds;
@@ -8076,8 +8079,16 @@ var GanttTreeGrid = /** @__PURE__ @class */ (function () {
8076
8079
  this.parent.getDateFormat().toLowerCase().indexOf('hh') !== -1 ? 'datetimepickeredit' : 'datepickeredit';
8077
8080
  column.format = column.format ? column.format : { type: 'date', format: this.parent.getDateFormat() };
8078
8081
  column.width = column.width ? column.width : 150;
8079
- if (!column.edit || (column.edit && !column.edit.create)) {
8080
- column.edit = { params: { renderDayCell: this.parent.renderWorkingDayCell.bind(this.parent) } };
8082
+ if (column.edit && column.edit.params) {
8083
+ column.edit.params['renderDayCell'] = this.parent.renderWorkingDayCell.bind(this.parent);
8084
+ }
8085
+ else {
8086
+ if (column.edit) {
8087
+ column.edit.params = { renderDayCell: this.parent.renderWorkingDayCell.bind(this.parent) };
8088
+ }
8089
+ else {
8090
+ column.edit = { params: { renderDayCell: this.parent.renderWorkingDayCell.bind(this.parent) } };
8091
+ }
8081
8092
  }
8082
8093
  }
8083
8094
  else if (taskSettings.endDate === column.field) {
@@ -8091,8 +8102,16 @@ var GanttTreeGrid = /** @__PURE__ @class */ (function () {
8091
8102
  column.editType = column.editType ? column.editType :
8092
8103
  this.parent.getDateFormat().toLowerCase().indexOf('hh') !== -1 ? 'datetimepickeredit' : 'datepickeredit';
8093
8104
  column.width = column.width ? column.width : 150;
8094
- if (!column.edit || (column.edit && !column.edit.create)) {
8095
- column.edit = { params: { renderDayCell: this.parent.renderWorkingDayCell.bind(this.parent) } };
8105
+ if (column.edit && column.edit.params) {
8106
+ column.edit.params['renderDayCell'] = this.parent.renderWorkingDayCell.bind(this.parent);
8107
+ }
8108
+ else {
8109
+ if (column.edit) {
8110
+ column.edit.params = { renderDayCell: this.parent.renderWorkingDayCell.bind(this.parent) };
8111
+ }
8112
+ else {
8113
+ column.edit = { params: { renderDayCell: this.parent.renderWorkingDayCell.bind(this.parent) } };
8114
+ }
8096
8115
  }
8097
8116
  }
8098
8117
  else if (taskSettings.duration === column.field) {
@@ -9470,7 +9489,7 @@ var ChartRows = /** @__PURE__ @class */ (function (_super) {
9470
9489
  childTaskbarNode = this.createDivElement(template);
9471
9490
  }
9472
9491
  }
9473
- if (this.parent.enableRtl && childTaskbarNode[0] && childTaskbarNode[0].querySelector('.e-task-label')) {
9492
+ if (this.parent.enableRtl && !isNullOrUndefined(childTaskbarNode) && childTaskbarNode[0] && childTaskbarNode[0].querySelector('.e-task-label')) {
9474
9493
  childTaskbarNode[0].querySelector('.e-task-label').style.marginLeft = '15px';
9475
9494
  childTaskbarNode[0].querySelector('.e-task-label').style.marginRight = '8px';
9476
9495
  if (childTaskbarNode[0].querySelector('.e-gantt-child-progressbar')) {
@@ -9852,8 +9871,8 @@ var ChartRows = /** @__PURE__ @class */ (function (_super) {
9852
9871
  milestoneNode = this.milestoneTemplateFunction(extend({ index: i }, data), this.parent, 'MilestoneTemplate', this.getTemplateID('MilestoneTemplate'), false, undefined, rootElement[0], this.parent.treeGrid['root']);
9853
9872
  }
9854
9873
  else {
9855
- var template = '<div class="' + traceMilestone + '" style="width:' + ((this.parent.renderBaseline ? this.taskBarHeight - 3 : this.taskBarHeight - 7)) + 'px;height:' +
9856
- ((this.parent.renderBaseline ? this.taskBarHeight - 3 : this.taskBarHeight - 7)) + 'px;position:absolute;transform: rotate(45deg);top:' + (this.parent.rowHeight > 40 ? 0 : 2) + 'px;left:' + (this.parent.renderBaseline ? 2 : 1) + 'px;"> </div>';
9874
+ var template = '<div class="' + traceMilestone + '" style="width:' + ((this.parent.renderBaseline ? this.taskBarHeight : this.taskBarHeight - 6)) + 'px;height:' +
9875
+ ((this.parent.renderBaseline ? this.taskBarHeight : this.taskBarHeight - 6)) + 'px;position:absolute;transform: rotate(45deg);top:' + (this.parent.rowHeight > 40 ? 0 : 1) + 'px;left:' + 1 + 'px;"> </div>';
9857
9876
  milestoneNode = this.createDivElement(template);
9858
9877
  }
9859
9878
  return milestoneNode;
@@ -9881,9 +9900,9 @@ var ChartRows = /** @__PURE__ @class */ (function (_super) {
9881
9900
  ChartRows.prototype.getMilestoneBaselineNode = function () {
9882
9901
  var data = this.templateData;
9883
9902
  var baselineMilestoneHeight = this.parent.renderBaseline ? 5 : 2;
9884
- var template = '<div class="' + baselineMilestoneContainer + '" style="width:' + ((this.parent.renderBaseline ? this.taskBarHeight - 5 : this.taskBarHeight - 10) + 2) + 'px;height:' +
9885
- ((this.parent.renderBaseline ? this.taskBarHeight - 5 : this.taskBarHeight - 10) + 2) + 'px;position:absolute;transform:rotate(45deg);' + (this.parent.enableRtl ? 'right:' : 'left:') + (this.parent.enableRtl ? (data.ganttProperties.left -
9886
- (this.milestoneHeight / 2) + 3) : (data.ganttProperties.baselineLeft - (this.milestoneHeight / 2) + 2)) + 'px;' + (this.baselineColor ? 'background-color: ' + this.baselineColor + ';' : '') + 'margin-top:' + ((-Math.floor(this.parent.rowHeight - this.milestoneMarginTop) + baselineMilestoneHeight) + 3) + 'px"> </div>';
9903
+ var template = '<div class="' + baselineMilestoneContainer + '" style="width:' + ((this.parent.renderBaseline ? this.taskBarHeight : this.taskBarHeight - 10)) + 'px;height:' +
9904
+ ((this.parent.renderBaseline ? this.taskBarHeight : this.taskBarHeight - 10)) + 'px;position:absolute;transform:rotate(45deg);' + (this.parent.enableRtl ? 'right:' : 'left:') + (this.parent.enableRtl ? (data.ganttProperties.left -
9905
+ (this.milestoneHeight / 2) + 3) : (data.ganttProperties.left - (this.milestoneHeight / 2) + 1)) + 'px;' + (this.baselineColor ? 'background-color: ' + this.baselineColor + ';' : '') + 'margin-top:' + ((-Math.floor(this.parent.rowHeight - this.milestoneMarginTop) + baselineMilestoneHeight) + 2) + 'px"> </div>';
9887
9906
  return this.createDivElement(template);
9888
9907
  };
9889
9908
  /**
@@ -10569,6 +10588,12 @@ var ChartRows = /** @__PURE__ @class */ (function (_super) {
10569
10588
  (_a = this.ganttChartTableBody).replaceChildren.apply(_a, dupChartBody.childNodes);
10570
10589
  this.parent.initialChartRowElements = this.parent.ganttChartModule.getChartRows();
10571
10590
  }
10591
+ if (this.parent.enableCriticalPath && this.parent.criticalPathModule) {
10592
+ var criticalModule = this.parent.criticalPathModule;
10593
+ if (criticalModule.criticalPathCollection) {
10594
+ this.parent.criticalPathModule.criticalConnectorLine(criticalModule.criticalPathCollection, criticalModule.detailPredecessorCollection, true, criticalModule.predecessorCollectionTaskIds);
10595
+ }
10596
+ }
10572
10597
  this.parent.renderTemplates();
10573
10598
  this.triggerQueryTaskbarInfo();
10574
10599
  this.parent.modifiedRecords = [];
@@ -10583,6 +10608,7 @@ var ChartRows = /** @__PURE__ @class */ (function (_super) {
10583
10608
  }
10584
10609
  }
10585
10610
  }
10611
+ this.parent.isGanttChartRendered = true;
10586
10612
  this.parent.renderTemplates();
10587
10613
  };
10588
10614
  /**
@@ -12253,8 +12279,6 @@ var ConnectorLine = /** @__PURE__ @class */ (function () {
12253
12279
  connectorObj.connectorLineId = 'parent' + parentId + 'child' + childId;
12254
12280
  connectorObj.milestoneParent = parentGanttRecord.isMilestone ? true : false;
12255
12281
  connectorObj.milestoneChild = childGanttRecord.isMilestone ? true : false;
12256
- connectorObj.isManualParent = (!(this.parent.flatData[parentIndex].ganttProperties.isAutoSchedule) && this.parent.flatData[parentIndex].hasChildRecords);
12257
- connectorObj.isManualChild = (!(this.parent.flatData[childIndex].ganttProperties.isAutoSchedule) && this.parent.flatData[childIndex].hasChildRecords);
12258
12282
  connectorObj.parentEndPoint = connectorObj.parentLeft + connectorObj.parentWidth;
12259
12283
  connectorObj.childEndPoint = connectorObj.childLeft + connectorObj.childWidth;
12260
12284
  if (isNullOrUndefined(isScheduledTask(parentGanttRecord)) || isNullOrUndefined(isScheduledTask(childGanttRecord))) {
@@ -12558,6 +12582,8 @@ var ConnectorLine = /** @__PURE__ @class */ (function () {
12558
12582
  isMilestoneValue = (data.milestoneParent && data.milestoneChild) ? 0 : data.milestoneParent ? -5 : data.milestoneChild ? 5 : 0;
12559
12583
  }
12560
12584
  var heightValue = isVirtual ? connectorLine$$1.height : (height + isMilestoneValue);
12585
+ var borderTopWidth = 0;
12586
+ var addTop = 0;
12561
12587
  var parentOverlapTopValue = 0;
12562
12588
  var childOverlapTopValue = 0;
12563
12589
  var count = 0;
@@ -12594,30 +12620,56 @@ var ConnectorLine = /** @__PURE__ @class */ (function () {
12594
12620
  }
12595
12621
  if (isValid) {
12596
12622
  if (((fromRecordIsParent && !fromRecordIsManual) && (toRecordIsParent && !toRecordIsManual))) {
12597
-
12623
+ addTop = -11;
12598
12624
  }
12599
12625
  else if (!((fromRecordIsParent && !fromRecordIsManual) && (toRecordIsParent && !toRecordIsManual))) {
12600
12626
  if (data.childIndex > data.parentIndex) {
12601
-
12627
+ if (!fromRecordIsParent && toRecordIsParent) {
12628
+ borderTopWidth = -11;
12629
+ }
12630
+ else {
12631
+ borderTopWidth = 11;
12632
+ addTop = -11;
12633
+ }
12602
12634
  }
12603
12635
  else {
12604
-
12636
+ if ((fromRecordIsParent && !toRecordIsParent)) {
12637
+ borderTopWidth = -11;
12638
+ }
12639
+ else {
12640
+ borderTopWidth = 11;
12641
+ addTop = -11;
12642
+ }
12605
12643
  }
12606
12644
  }
12607
12645
  if (this.parent.currentViewData[data.parentIndex].ganttProperties.isMilestone) {
12608
12646
  if (data.parentIndex > data.childIndex) {
12609
-
12647
+ addTop = -11;
12648
+ borderTopWidth = 12;
12610
12649
  }
12611
12650
  else if (data.type === 'SS' || data.type === 'FF') {
12612
-
12651
+ addTop = -5;
12613
12652
  }
12614
12653
  }
12615
12654
  else if (this.parent.currentViewData[data.childIndex].ganttProperties.isMilestone) {
12616
12655
  if (data.parentIndex > data.childIndex) {
12617
-
12656
+ addTop = 5;
12657
+ borderTopWidth = -10;
12618
12658
  }
12619
- else if (data.type === 'SS' || data.type === 'FF') {
12620
-
12659
+ else if (data.parentIndex < data.childIndex) {
12660
+ if (data.type === 'SS' || data.type === 'FF') {
12661
+ addTop = -10;
12662
+ }
12663
+ }
12664
+ }
12665
+ else {
12666
+ if (data.parentIndex < data.childIndex && fromRecordIsManual && !toRecordIsManual) {
12667
+ addTop = 0;
12668
+ borderTopWidth = -11;
12669
+ }
12670
+ else if (data.childIndex < data.parentIndex && !fromRecordIsManual && toRecordIsManual) {
12671
+ addTop = 0;
12672
+ borderTopWidth = -11;
12621
12673
  }
12622
12674
  }
12623
12675
  }
@@ -12650,127 +12702,110 @@ var ConnectorLine = /** @__PURE__ @class */ (function () {
12650
12702
  if (this.getParentPosition(data) === 'FSType1') {
12651
12703
  this.taskLineValue = data.milestoneChild ? 1 : 0;
12652
12704
  this.x1 = data.parentEndPoint + (data.milestoneParent ? -1 : (data.milestoneChild ? -1 : 0));
12653
- this.x2 = data.milestoneParent ? ((((data.childLeft - (data.parentEndPoint + 10)) + 1) - 10) + 1) : (((data.childLeft - (data.parentEndPoint + 10))) - 10);
12654
- this.y1 = this.parent.enableVirtualization ? rowPositionHeight : ((!this.parent.allowTaskbarOverlap ? parentOverlapTopValue : (data.parentIndex * data.rowHeight)) + this.getTaskbarMidpoint(data.milestoneParent)) + ((data.isManualParent && data.isManualChild) ? -10 : 0);
12655
- this.y2 = heightValue + this.taskLineValue;
12656
- this.manualParent = (data.isManualParent && !data.isManualChild ? -10 : 0);
12657
- this.manualChild = (data.isManualChild && !data.isManualParent ? -10 : 0);
12658
- this.connectorLinePath = "M " + this.x1 + " " + (this.y1 + this.manualParent + this.manualChild) + " L " + (this.x1 + this.x2) + " " + (this.y1 + this.manualParent + this.manualChild) + " L " + (this.x1 + this.x2) + " " + (this.y1 + this.y2) +
12659
- " L " + (this.x1 + this.x2 + 11) + " " + (this.y1 + this.y2);
12660
- this.arrowPath = "M " + (this.x1 + this.x2 + 18) + " " + (this.y1 + this.y2 + this.manualChild) +
12661
- " L " + (this.x1 + this.x2 + 11) + " " + (this.y1 + this.y2 - (4 + this.lineStroke) + this.manualChild) +
12662
- " L " + (this.x1 + this.x2 + 11) + " " + (this.y1 + this.y2 + 4 + this.lineStroke + this.manualChild) + " Z";
12705
+ this.x2 = data.milestoneParent ? ((((data.childLeft - (data.parentLeft + data.parentWidth + 10)) + this.lineStroke) - 10) + 1) : (((data.childLeft - (data.parentLeft + data.parentWidth + 10)) + this.lineStroke) - 10);
12706
+ this.y1 = (this.parent.enableVirtualization ? rowPositionHeight : ((!this.parent.allowTaskbarOverlap ? parentOverlapTopValue : (data.parentIndex * data.rowHeight)) + addTop + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1) - isMilestoneValue));
12707
+ this.y2 = heightValue + this.taskLineValue + borderTopWidth - this.lineStroke;
12708
+ this.connectorLinePath = "M " + this.x1 + " " + (this.y1) + " L " + (this.x1 + this.x2) + " " + (this.y1) + " L " + (this.x1 + this.x2) + " " + (this.y1 + this.y2) +
12709
+ " L " + (this.x1 + this.x2 + 12) + " " + (this.y1 + this.y2);
12710
+ this.arrowPath = "M " + (this.x1 + this.x2 + 20) + " " + (this.y1 + this.y2) +
12711
+ " L " + (this.x1 + this.x2 + 12) + " " + (this.y1 + this.y2 - (4 + this.lineStroke)) +
12712
+ " L " + (this.x1 + this.x2 + 12) + " " + (this.y1 + this.y2 + 4) + " Z";
12663
12713
  }
12664
12714
  if (this.getParentPosition(data) === 'FSType2') {
12665
- this.taskLineValue = data.milestoneChild ? 1 : 0;
12666
- this.x1 = data.parentLeft + (data.milestoneChild ? -1 : 0);
12667
- this.x2 = data.parentWidth + (data.milestoneParent ? 1 : 0);
12715
+ this.x1 = data.parentLeft;
12716
+ this.x2 = data.parentWidth + (data.milestoneParent ? -1 : 0);
12668
12717
  this.x3 = this.x2 + (data.milestoneParent ? 11 : 10);
12669
12718
  this.x4 = data.parentWidth - ((data.parentEndPoint - data.childLeft) + 20);
12670
- this.y1 = this.parent.enableVirtualization ? rowPositionHeight : ((!this.parent.allowTaskbarOverlap ? parentOverlapTopValue : (data.parentIndex * data.rowHeight)) + this.getTaskbarMidpoint(data.milestoneParent)) + ((data.isManualParent && data.isManualChild) ? -10 : 0);
12671
- this.y2 = heightValue - this.getconnectorLineGap(data) + this.taskLineValue;
12719
+ this.y1 = (this.parent.enableVirtualization ? rowPositionHeight : ((!this.parent.allowTaskbarOverlap ? parentOverlapTopValue : (data.parentIndex * data.rowHeight)) + addTop + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1) - isMilestoneValue));
12720
+ this.y2 = heightValue + borderTopWidth - this.getconnectorLineGap(data) - this.lineStroke;
12672
12721
  this.y3 = this.getconnectorLineGap(data);
12673
- this.y4 = this.y1 + this.y2 - ((this.y1 + this.y2) % data.rowHeight);
12674
- this.manualParent = (data.isManualParent && !data.isManualChild ? -10 : 0);
12675
- this.manualChild = (data.isManualChild && !data.isManualParent ? -10 : 0);
12676
- this.connectorLinePath = "M " + (this.x1 + this.x2) + " " + (this.y1 + this.manualParent + this.manualChild) + " " + " L " + (this.x1 + this.x3) + " " + (this.y1 + this.manualParent + this.manualChild) + " L " + (this.x1 + this.x3) + " " + this.y4 +
12677
- " L " + (this.x1 + this.x4) + " " + this.y4 + " L " + (this.x1 + this.x4) + " " + (this.y1 + this.y2 + this.y3) + " L " + (this.x1 + this.x4 + 11) + " " + (this.y1 + this.y2 + this.y3);
12678
- this.arrowPath = "M " + (this.x1 + this.x4 + 18) + " " + (this.y1 + this.y2 + this.y3 + this.manualChild) +
12679
- " L " + (this.x1 + this.x4 + 11) + " " + (this.y1 + this.y2 + this.y3 - (4 + this.lineStroke) + this.manualChild) +
12680
- " L " + (this.x1 + this.x4 + 11) + " " + (this.y1 + this.y2 + this.y3 + 4 + this.lineStroke + this.manualChild) + " Z";
12722
+ this.y4 = (!this.parent.allowTaskbarOverlap ? childOverlapTopValue : (this.y1 + this.y2 - ((this.y1 + this.y2) % data.rowHeight)));
12723
+ this.connectorLinePath = "M " + (this.x1 + this.x2) + " " + (this.y1) + " " + " L " + (this.x1 + this.x3) + " " + (this.y1) + " L " + (this.x1 + this.x3) + " " + this.y4 +
12724
+ " L " + (this.x1 + this.x4) + " " + this.y4 + " L " + (this.x1 + this.x4) + " " + (this.y1 + this.y2 + this.y3) + " L " + (this.x1 + this.x4 + 12) + " " + (this.y1 + this.y2 + this.y3);
12725
+ this.arrowPath = "M " + (this.x1 + this.x4 + 20) + " " + (this.y1 + this.y2 + this.y3) +
12726
+ " L " + (this.x1 + this.x4 + 12) + " " + (this.y1 + this.y2 + this.y3 - (4 + this.lineStroke)) +
12727
+ " L " + (this.x1 + this.x4 + 12) + " " + (this.y1 + this.y2 + this.y3 + 4 + this.lineStroke) + " Z";
12681
12728
  }
12682
12729
  if (this.getParentPosition(data) === 'FSType3') {
12683
12730
  this.taskLineValue = data.milestoneChild ? 1 : 0;
12684
- this.point1 = this.parent.enableVirtualization ? rowPositionHeight : ((!this.parent.allowTaskbarOverlap ? parentOverlapTopValue : (data.childIndex * data.rowHeight)) + this.getTaskbarMidpoint(data.milestoneChild));
12731
+ this.point1 = (this.parent.enableVirtualization ? rowPositionHeight : ((!this.parent.allowTaskbarOverlap ? childOverlapTopValue : (data.childIndex * data.rowHeight)) + addTop + this.getTaskbarMidpoint(isMilestoneParent) - (this.lineStroke - 1) - isMilestoneValue));
12685
12732
  this.x1 = (data.childLeft + (data.milestoneChild ? -1 : 0) + (data.milestoneParent ? 1 : 0)) - 20;
12686
12733
  this.x2 = (data.parentEndPoint - data.childLeft) + 30;
12687
- this.y1 = this.point1 + ((data.isManualParent && data.isManualChild) ? -10 : 0);
12688
- this.y2 = this.point1 + heightValue - this.getconnectorLineGap(data) + this.taskLineValue + (this.parent.renderBaseline ? (data.milestoneChild ? -10 : 0) : 0);
12689
- this.y3 = this.getconnectorLineGap(data) + (this.parent.renderBaseline ? (data.milestoneParent ? 10 : 0) : 0);
12734
+ this.y1 = this.point1 + (this.parent.renderBaseline ? (data.milestoneChild && !(data.milestoneParent) ? 11 : data.milestoneParent && !(data.milestoneChild) ? -12 : 0) : 0);
12735
+ this.y2 = this.point1 + heightValue + borderTopWidth - this.getconnectorLineGap(data) - this.lineStroke + this.taskLineValue;
12736
+ this.y3 = this.getconnectorLineGap(data);
12690
12737
  this.y4 = this.y2 - (this.y2 % data.rowHeight);
12691
- this.manualParent = (data.isManualParent && !data.isManualChild ? -10 : 0);
12692
- this.manualChild = (data.isManualChild && !data.isManualParent ? -10 : 0);
12693
- this.connectorLinePath = "M " + (this.x1 + 12) + " " + (this.y1 + this.manualParent + this.manualChild) + " L " + this.x1 + " " + (this.y1 + this.manualParent + this.manualChild) + " L " + this.x1 + " " + this.y4 +
12738
+ this.connectorLinePath = "M " + (this.x1 + 12) + " " + (this.y1) + " L " + this.x1 + " " + (this.y1) + " L " + this.x1 + " " + this.y4 +
12694
12739
  " L " + (this.x1 + this.x2) + " " + this.y4 + " L " + (this.x1 + this.x2) + " " + (this.y2 + this.y3) + " L " + (this.x1 + this.x2 - 12) + " " + (this.y2 + this.y3);
12695
- this.arrowPath = "M " + (this.x1 + 18) + " " + (this.y1 + this.manualChild) +
12696
- " L " + (this.x1 + 11) + " " + (this.y1 - (4 + this.lineStroke) + this.manualChild) +
12697
- " L " + (this.x1 + 11) + " " + (this.y1 + 4 + this.lineStroke + this.manualChild) + " Z";
12740
+ this.arrowPath = "M " + (this.x1 + 20) + " " + (this.y1) +
12741
+ " L " + (this.x1 + 12) + " " + (this.y1 - (4 + this.lineStroke)) +
12742
+ " L " + (this.x1 + 12) + " " + (this.y1 + 4 + this.lineStroke) + " Z";
12698
12743
  }
12699
12744
  if (this.getParentPosition(data) === 'FSType4') {
12700
- this.point1 = this.parent.enableVirtualization ? rowPositionHeight : ((!this.parent.allowTaskbarOverlap ? parentOverlapTopValue : (data.childIndex * data.rowHeight)) + this.getTaskbarMidpoint(data.milestoneChild));
12745
+ this.point1 = (this.parent.enableVirtualization ? rowPositionHeight : ((!this.parent.allowTaskbarOverlap ? childOverlapTopValue : (data.childIndex * data.rowHeight)) + addTop + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1)));
12701
12746
  this.taskLineValue = this.parent.renderBaseline ? this.taskLineValue : 0;
12702
12747
  this.x1 = data.parentEndPoint + (data.milestoneChild ? -1 : 0) + (data.milestoneParent ? 1 : 0);
12703
12748
  this.x2 = data.childLeft - data.parentEndPoint - 20;
12704
- this.y1 = this.point1 + (data.milestoneChild ? 1 : 0) + ((data.isManualParent && data.isManualChild) ? -10 : 0);
12705
- this.y2 = this.point1 + heightValue + this.taskLineValue + (this.parent.renderBaseline ? (data.milestoneParent ? 10 : 0) : 0);
12706
- this.manualParent = (data.isManualParent && !data.isManualChild ? -10 : 0);
12707
- this.manualChild = (data.isManualChild && !data.isManualParent ? -10 : 0);
12708
- this.connectorLinePath = "M " + (this.x1 + this.x2 + 11) + " " + (this.y1 + this.manualParent + this.manualChild) + " L " + (this.x1 + this.x2) + " " + (this.y1 + this.manualParent + this.manualChild) + " L " + (this.x1 + this.x2) + " " + this.y2 +
12749
+ this.y1 = this.point1 + (data.milestoneChild ? -1 : 0);
12750
+ this.y2 = this.point1 + heightValue + borderTopWidth - this.lineStroke + 1 + this.taskLineValue + (this.parent.renderBaseline ? (data.milestoneChild && !(data.milestoneParent) ? -12 : data.milestoneParent && !(data.milestoneChild) ? 11 : 0) : 0);
12751
+ this.connectorLinePath = "M " + (this.x1 + this.x2 + 12) + " " + (this.y1) + " L " + (this.x1 + this.x2) + " " + (this.y1) + " L " + (this.x1 + this.x2) + " " + this.y2 +
12709
12752
  " L " + this.x1 + " " + this.y2;
12710
- this.arrowPath = "M " + (this.x1 + this.x2 + 18) + " " + (this.y1 + this.manualChild) +
12711
- " L " + (this.x1 + this.x2 + 11) + " " + (this.y1 - (4 + this.lineStroke) + this.manualChild) +
12712
- " L " + (this.x1 + this.x2 + 11) + " " + (this.y1 + 4 + this.lineStroke + this.manualChild) + " Z";
12753
+ this.arrowPath = "M " + (this.x1 + this.x2 + 20) + " " + (this.y1) +
12754
+ " L " + (this.x1 + this.x2 + 12) + " " + (this.y1 - (4 + this.lineStroke)) +
12755
+ " L " + (this.x1 + this.x2 + 12) + " " + (this.y1 + 4 + this.lineStroke) + " Z";
12713
12756
  }
12714
12757
  if (this.getParentPosition(data) === 'SSType4') {
12715
12758
  this.taskLineValue = this.parent.renderBaseline ? this.taskLineValue : 0;
12716
- this.point1 = heightValue + this.taskLineValue;
12717
- this.point2 = this.parent.enableVirtualization ? rowPositionHeight : ((!this.parent.allowTaskbarOverlap ? parentOverlapTopValue : (data.childIndex * data.rowHeight)) + this.getTaskbarMidpoint(data.milestoneChild));
12718
- this.x1 = data.parentLeft - 8;
12759
+ this.point1 = heightValue + this.taskLineValue + borderTopWidth;
12760
+ this.point2 = (this.parent.enableVirtualization ? rowPositionHeight : ((!this.parent.allowTaskbarOverlap ? childOverlapTopValue : (data.childIndex * data.rowHeight)) + addTop + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1)));
12761
+ this.x1 = data.parentLeft - 10;
12719
12762
  this.x2 = data.childLeft - data.parentLeft;
12720
- this.y1 = this.point2 + (data.milestoneChild ? 1 : 0) + ((data.isManualParent && data.isManualChild) ? -10 : 0);
12721
- this.y2 = this.y1 + this.point1 + (this.parent.renderBaseline ? (data.milestoneParent ? 10 : 0) : 0);
12722
- this.manualParent = (data.isManualParent && !data.isManualChild ? -10 : 0);
12723
- this.manualChild = (data.isManualChild && !data.isManualParent ? -10 : 0);
12724
- this.connectorLinePath = "M " + (this.x1 + this.x2) + " " + (this.y1 + this.manualParent + this.manualChild) + " L " + this.x1 + " " + (this.y1 + this.manualParent + this.manualChild) +
12763
+ this.y1 = this.point2 + (data.milestoneChild ? 1 : 0);
12764
+ this.y2 = this.y1 + this.point1 + (this.parent.renderBaseline ? (data.milestoneParent && !(data.milestoneChild) ? 10 : data.milestoneChild && !(data.milestoneParent) ? -13 : 0) : 0);
12765
+ this.connectorLinePath = "M " + (this.x1 + this.x2) + " " + (this.y1) + " L " + this.x1 + " " + (this.y1) +
12725
12766
  " L " + this.x1 + " " + this.y2 + " L " + (this.x1 + 10) + " " + this.y2;
12726
- this.arrowPath = "M " + (this.x1 + this.x2 + 8) + " " + (this.y1 + this.manualChild) +
12727
- " L " + (this.x1 + this.x2) + " " + (this.y1 - (4 + this.lineStroke) + this.manualChild) +
12728
- " L " + (this.x1 + this.x2) + " " + (this.y1 + 4 + this.lineStroke + this.manualChild) + " Z";
12767
+ this.arrowPath = "M " + (this.x1 + this.x2 + 8) + " " + (this.y1) +
12768
+ " L " + (this.x1 + this.x2) + " " + (this.y1 - (4 + this.lineStroke)) +
12769
+ " L " + (this.x1 + this.x2) + " " + (this.y1 + 4 + this.lineStroke) + " Z";
12729
12770
  }
12730
12771
  if (this.getParentPosition(data) === 'SSType3') {
12731
12772
  this.taskLineValue = this.parent.renderBaseline ? this.taskLineValue : data.milestoneChild ? 1 : 0;
12732
- this.point1 = heightValue + this.taskLineValue;
12773
+ this.point1 = heightValue + this.taskLineValue + borderTopWidth - (this.lineStroke - 1);
12733
12774
  this.x1 = data.childLeft - 20;
12734
- this.y1 = (data.milestoneChild ? 1 : 0) + ((this.parent.enableVirtualization ? rowPositionHeight : (!this.parent.allowTaskbarOverlap ? parentOverlapTopValue : (data.childIndex * data.rowHeight)) + this.getTaskbarMidpoint(data.milestoneChild))) + ((data.isManualParent && data.isManualChild) ? -10 : 0);
12775
+ this.y1 = (data.milestoneChild ? 1 : 0) + (this.parent.enableVirtualization ? rowPositionHeight : ((!this.parent.allowTaskbarOverlap ? childOverlapTopValue : (data.childIndex * data.rowHeight)) + addTop + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1)));
12735
12776
  this.x2 = data.parentLeft - data.childLeft + 21;
12736
- this.y2 = this.y1 + this.point1 + (this.parent.renderBaseline ? (data.milestoneChild ? -11 : data.milestoneParent ? 10 : 0) : 0);
12737
- this.manualParent = (data.isManualParent && !data.isManualChild ? -10 : 0);
12738
- this.manualChild = (data.isManualChild && !data.isManualParent ? -10 : 0);
12739
- this.connectorLinePath = "M " + (this.x1 + 12) + " " + (this.y1 + this.manualParent + this.manualChild) + " L " + this.x1 + " " + (this.y1 + this.manualParent + this.manualChild) +
12777
+ this.y2 = this.y1 + this.point1 + (this.parent.renderBaseline ? (data.milestoneChild && !(data.milestoneParent) ? -11 : data.milestoneParent && !(data.milestoneChild) ? 10 : 0) : 0);
12778
+ this.connectorLinePath = "M " + (this.x1 + 12) + " " + (this.y1) + " L " + this.x1 + " " + (this.y1) +
12740
12779
  " L " + this.x1 + " " + this.y2 + " L " + (this.x1 + this.x2) + " " + this.y2;
12741
- this.arrowPath = "M " + (this.x1 + 20) + " " + (this.y1 + this.manualChild) +
12742
- " L " + (this.x1 + 12) + " " + (this.y1 - (4 + this.lineStroke) + this.manualChild) +
12743
- " L " + (this.x1 + 12) + " " + (this.y1 + 4 + this.lineStroke + this.manualChild) + " Z";
12780
+ this.arrowPath = "M " + (this.x1 + 20) + " " + (this.y1) +
12781
+ " L " + (this.x1 + 12) + " " + (this.y1 - (4 + this.lineStroke)) +
12782
+ " L " + (this.x1 + 12) + " " + (this.y1 + 4 + this.lineStroke) + " Z";
12744
12783
  }
12745
12784
  if (this.getParentPosition(data) === 'SSType2') {
12746
12785
  this.taskLineValue = this.parent.renderBaseline ? this.taskLineValue : data.milestoneChild ? 1 : 0;
12747
- this.point1 = heightValue + this.taskLineValue;
12786
+ this.point1 = heightValue + this.taskLineValue + borderTopWidth - this.lineStroke;
12748
12787
  this.x1 = setInnerElementLeftSSType2;
12749
12788
  this.x2 = setInnerChildWidthSSType2 + 1;
12750
- this.y1 = this.parent.enableVirtualization ? rowPositionHeight : ((!this.parent.allowTaskbarOverlap ? parentOverlapTopValue : (data.parentIndex * data.rowHeight)) + this.getTaskbarMidpoint(data.milestoneParent)) + ((data.isManualParent && data.isManualChild) ? -10 : 0);
12789
+ this.y1 = (this.parent.enableVirtualization ? rowPositionHeight : ((!this.parent.allowTaskbarOverlap ? parentOverlapTopValue : (data.parentIndex * data.rowHeight)) + addTop + this.getTaskbarMidpoint(isMilestoneParent) - (this.lineStroke - 1)));
12751
12790
  this.y2 = this.y1 + this.point1;
12752
- this.manualParent = (data.isManualParent && !data.isManualChild ? -10 : 0);
12753
- this.manualChild = (data.isManualChild && !data.isManualParent ? -10 : 0);
12754
- this.connectorLinePath = "M " + (this.x1 + this.x2) + " " + (this.y1 + this.manualParent + this.manualChild) + " L " + this.x1 + " " + (this.y1 + this.manualParent + this.manualChild) + " L " + this.x1 + " " + this.y2 +
12791
+ this.connectorLinePath = "M " + (this.x1 + this.x2) + " " + (this.y1) + " L " + this.x1 + " " + (this.y1) + " L " + this.x1 + " " + this.y2 +
12755
12792
  " L " + (this.x1 + setInnerElementWidthSSType2) + " " + this.y2;
12756
- this.arrowPath = "M " + (this.x1 + setInnerElementWidthSSType2 + 8) + " " + (this.y2 + this.manualChild) +
12757
- " L " + (this.x1 + setInnerElementWidthSSType2) + " " + (this.y2 - (4 + this.lineStroke) + this.manualChild) +
12758
- " L " + (this.x1 + setInnerElementWidthSSType2) + " " + (this.y2 + 4 + this.lineStroke + this.manualChild) + " Z";
12793
+ this.arrowPath = "M " + (this.x1 + setInnerElementWidthSSType2 + 8) + " " + (this.y2) +
12794
+ " L " + (this.x1 + setInnerElementWidthSSType2) + " " + (this.y2 - (4 + this.lineStroke)) +
12795
+ " L " + (this.x1 + setInnerElementWidthSSType2) + " " + (this.y2 + 4 + this.lineStroke) + " Z";
12759
12796
  }
12760
12797
  if (this.getParentPosition(data) === 'SSType1') {
12761
12798
  this.taskLineValue = this.parent.renderBaseline ? this.taskLineValue : data.milestoneChild ? 1 : 0;
12762
- this.point1 = heightValue + this.taskLineValue;
12799
+ this.point1 = heightValue + this.taskLineValue + borderTopWidth - this.lineStroke;
12763
12800
  this.x1 = data.childLeft - 20;
12764
12801
  this.x2 = data.parentLeft - data.childLeft + 21;
12765
- this.y1 = this.parent.enableVirtualization ? rowPositionHeight : ((!this.parent.allowTaskbarOverlap ? parentOverlapTopValue : (data.parentIndex * data.rowHeight)) + this.getTaskbarMidpoint(data.milestoneParent)) + +((data.isManualParent && data.isManualChild) ? -10 : 0);
12802
+ this.y1 = (this.parent.enableVirtualization ? rowPositionHeight : ((!this.parent.allowTaskbarOverlap ? parentOverlapTopValue : (data.parentIndex * data.rowHeight)) + addTop + this.getTaskbarMidpoint(isMilestoneParent) - (this.lineStroke - 1)));
12766
12803
  this.y2 = this.y1 + this.point1;
12767
- this.manualParent = (data.isManualParent && !data.isManualChild ? -10 : 0);
12768
- this.manualChild = (data.isManualChild && !data.isManualParent ? -10 : 0);
12769
- this.connectorLinePath = "M " + (this.x1 + this.x2) + " " + (this.y1 + this.manualParent + this.manualChild) + " L " + this.x1 + " " + (this.y1 + this.manualParent + this.manualChild) + " L " + this.x1 + " " + this.y2 +
12804
+ this.connectorLinePath = "M " + (this.x1 + this.x2) + " " + (this.y1) + " L " + this.x1 + " " + (this.y1) + " L " + this.x1 + " " + this.y2 +
12770
12805
  " L " + (this.x1 + 12) + " " + this.y2;
12771
- this.arrowPath = "M " + (this.x1 + 20) + " " + (this.y2 + this.manualChild) +
12772
- " L " + (this.x1 + 12) + " " + (this.y2 - (4 + this.lineStroke) + this.manualChild) +
12773
- " L " + (this.x1 + 12) + " " + (this.y2 + 4 + this.lineStroke + this.manualChild) + " Z";
12806
+ this.arrowPath = "M " + (this.x1 + 20) + " " + (this.y2) +
12807
+ " L " + (this.x1 + 12) + " " + (this.y2 - (4 + this.lineStroke)) +
12808
+ " L " + (this.x1 + 12) + " " + (this.y2 + 4 + this.lineStroke) + " Z";
12774
12809
  }
12775
12810
  if (this.getParentPosition(data) === 'FFType1') {
12776
12811
  this.taskLineValue = this.parent.renderBaseline ? this.taskLineValue : (data.milestoneChild ? 1 : 0);
@@ -12778,30 +12813,26 @@ var ConnectorLine = /** @__PURE__ @class */ (function () {
12778
12813
  this.x2 = data.parentEndPoint + (data.milestoneParent ? -1 : 0);
12779
12814
  this.x3 = data.milestoneParent ? 22 : 21;
12780
12815
  this.x4 = data.milestoneChild ? 4 : 8;
12781
- this.y1 = this.parent.enableVirtualization ? rowPositionHeight : ((!this.parent.allowTaskbarOverlap ? parentOverlapTopValue : (data.parentIndex * data.rowHeight)) + this.getTaskbarMidpoint(data.milestoneParent)) + ((data.isManualParent && data.isManualChild) ? -10 : 0);
12782
- this.y2 = heightValue + this.taskLineValue;
12783
- this.manualParent = (data.isManualParent && !data.isManualChild ? -10 : 0);
12784
- this.manualChild = (data.isManualChild && !data.isManualParent ? -10 : 0);
12785
- this.connectorLinePath = "M " + this.x2 + " " + (this.y1 + this.manualParent + this.manualChild) + " L " + (this.x2 + this.x3) + " " + (this.y1 + this.manualParent + this.manualChild) + " L " + (this.x2 + this.x3) + " " + (this.y1 + this.y2) +
12816
+ this.y1 = (this.parent.enableVirtualization ? rowPositionHeight : ((!this.parent.allowTaskbarOverlap ? parentOverlapTopValue : (data.parentIndex * data.rowHeight)) + addTop + this.getTaskbarMidpoint(isMilestoneParent) - (this.lineStroke - 1)));
12817
+ this.y2 = heightValue + this.taskLineValue + borderTopWidth - this.lineStroke;
12818
+ this.connectorLinePath = "M " + this.x2 + " " + (this.y1) + " L " + (this.x2 + this.x3) + " " + (this.y1) + " L " + (this.x2 + this.x3) + " " + (this.y1 + this.y2) +
12786
12819
  " L " + (this.x1 + this.x4) + " " + (this.y1 + this.y2);
12787
- this.arrowPath = "M " + this.x1 + " " + (this.y1 + this.y2 + this.manualChild) +
12788
- " L " + (this.x1 + 8) + " " + (this.y1 + this.y2 - (4 + this.lineStroke) + this.manualChild) +
12789
- " L " + (this.x1 + 8) + " " + (this.y1 + this.y2 + 4 + this.lineStroke + this.manualChild) + " Z";
12820
+ this.arrowPath = "M " + this.x1 + " " + (this.y1 + this.y2) +
12821
+ " L " + (this.x1 + 8) + " " + (this.y1 + this.y2 - (4 + this.lineStroke)) +
12822
+ " L " + (this.x1 + 8) + " " + (this.y1 + this.y2 + 4 + this.lineStroke) + " Z";
12790
12823
  }
12791
12824
  if (this.getParentPosition(data) === 'FFType2') {
12792
12825
  this.taskLineValue = this.parent.renderBaseline ? this.taskLineValue : (data.milestoneChild ? 1 : 0);
12793
12826
  this.x1 = data.parentEndPoint;
12794
12827
  this.x2 = data.childEndPoint + (data.milestoneParent ? 22 : 21);
12795
12828
  this.x3 = data.childEndPoint + (data.milestoneChild ? 9 : 8);
12796
- this.y1 = this.parent.enableVirtualization ? rowPositionHeight : ((!this.parent.allowTaskbarOverlap ? parentOverlapTopValue : (data.parentIndex * data.rowHeight)) + this.getTaskbarMidpoint(data.milestoneParent)) + ((data.isManualParent && data.isManualChild) ? -10 : 0);
12797
- this.y2 = heightValue + this.taskLineValue;
12798
- this.manualParent = (data.isManualParent && !data.isManualChild ? -10 : 0);
12799
- this.manualChild = (data.isManualChild && !data.isManualParent ? -10 : 0);
12800
- this.connectorLinePath = "M " + this.x1 + " " + (this.y1 + this.manualParent + this.manualChild) + " L " + this.x2 + " " + (this.y1 + this.manualParent + this.manualChild) + " L " + this.x2 + " " + (this.y1 + this.y2) +
12829
+ this.y1 = (this.parent.enableVirtualization ? rowPositionHeight : ((!this.parent.allowTaskbarOverlap ? parentOverlapTopValue : (data.parentIndex * data.rowHeight)) + addTop + this.getTaskbarMidpoint(data.milestoneParent) - (this.lineStroke - 1)));
12830
+ this.y2 = heightValue + this.taskLineValue + borderTopWidth - this.lineStroke;
12831
+ this.connectorLinePath = "M " + this.x1 + " " + (this.y1) + " L " + this.x2 + " " + (this.y1) + " L " + this.x2 + " " + (this.y1 + this.y2) +
12801
12832
  " L " + this.x3 + " " + (this.y1 + this.y2);
12802
- this.arrowPath = "M " + (this.x3 - 8) + " " + (this.y1 + this.y2 + this.manualChild) +
12803
- " L " + this.x3 + " " + (this.y1 + this.y2 - (4 + this.lineStroke) + this.manualChild) +
12804
- " L " + this.x3 + " " + (this.y1 + this.y2 + 4 + this.lineStroke + this.manualChild) + " Z";
12833
+ this.arrowPath = "M " + (this.x3 - 8) + " " + (this.y1 + this.y2) +
12834
+ " L " + this.x3 + " " + (this.y1 + this.y2 - (4 + this.lineStroke)) +
12835
+ " L " + this.x3 + " " + (this.y1 + this.y2 + 4 + this.lineStroke) + " Z";
12805
12836
  }
12806
12837
  if (this.getParentPosition(data) === 'FFType3') {
12807
12838
  this.taskLineValue = this.parent.renderBaseline ? this.taskLineValue : 0;
@@ -12809,98 +12840,86 @@ var ConnectorLine = /** @__PURE__ @class */ (function () {
12809
12840
  this.x2 = this.x1 + (data.milestoneChild ? 4 : 8);
12810
12841
  this.x3 = data.parentEndPoint - data.childEndPoint + (data.milestoneChild ? 16 : 10);
12811
12842
  this.x4 = data.parentEndPoint + (data.milestoneParent ? -1 : 0);
12812
- this.y1 = this.parent.enableVirtualization ? rowPositionHeight : ((!this.parent.allowTaskbarOverlap ? parentOverlapTopValue : (data.childIndex * data.rowHeight)) + this.getTaskbarMidpoint(data.milestoneChild)) + ((data.isManualParent && data.isManualChild) ? -10 : 0);
12813
- this.y2 = heightValue + this.taskLineValue + (this.parent.renderBaseline ? (data.milestoneParent ? 10 : 0) : 0);
12814
- this.manualParent = (data.isManualParent && !data.isManualChild ? -10 : 0);
12815
- this.manualChild = (data.isManualChild && !data.isManualParent ? -10 : 0);
12816
- this.connectorLinePath = "M " + this.x2 + " " + (this.y1 + this.manualParent + this.manualChild) + " L " + (this.x2 + this.x3) + " " + (this.y1 + this.manualParent + this.manualChild) + " L " + (this.x2 + this.x3) + " " + (this.y1 + this.y2) +
12843
+ this.y1 = (this.parent.enableVirtualization ? rowPositionHeight : ((!this.parent.allowTaskbarOverlap ? childOverlapTopValue : (data.childIndex * data.rowHeight)) + addTop + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1)));
12844
+ this.y2 = heightValue + this.taskLineValue + borderTopWidth - this.lineStroke + (this.parent.renderBaseline ? (data.milestoneParent && !(data.milestoneChild) ? 10 : data.milestoneChild && !(data.milestoneParent) ? -11 : 0) : 0);
12845
+ this.connectorLinePath = "M " + this.x2 + " " + (this.y1) + " L " + (this.x2 + this.x3) + " " + (this.y1) + " L " + (this.x2 + this.x3) + " " + (this.y1 + this.y2) +
12817
12846
  " L " + this.x4 + " " + (this.y1 + this.y2);
12818
- this.arrowPath = "M " + this.x1 + " " + (this.y1 + this.manualChild) +
12819
- " L " + (this.x1 + 8) + " " + (this.y1 - (4 + this.lineStroke) + this.manualChild) +
12820
- " L " + (this.x1 + 8) + " " + (this.y1 + 4 + this.lineStroke + this.manualChild) + " Z";
12847
+ this.arrowPath = "M " + this.x1 + " " + (this.y1) +
12848
+ " L " + (this.x1 + 8) + " " + (this.y1 - (4 + this.lineStroke)) +
12849
+ " L " + (this.x1 + 8) + " " + (this.y1 + 4 + this.lineStroke) + " Z";
12821
12850
  }
12822
12851
  if (this.getParentPosition(data) === 'FFType4') {
12823
12852
  this.taskLineValue = this.parent.renderBaseline ? this.taskLineValue : 0;
12824
12853
  this.x1 = data.parentEndPoint;
12825
12854
  this.x2 = data.childEndPoint + (data.milestoneChild ? 7 : 8);
12826
12855
  this.x3 = this.x2 + (data.milestoneChild ? 12 : 11);
12827
- this.y1 = this.parent.enableVirtualization ? rowPositionHeight : ((!this.parent.allowTaskbarOverlap ? parentOverlapTopValue : (data.childIndex * data.rowHeight)) + this.getTaskbarMidpoint(data.milestoneChild)) + ((data.isManualParent && data.isManualChild) ? -10 : 0);
12828
- this.y2 = heightValue + this.taskLineValue + +(this.parent.renderBaseline ? (data.milestoneParent ? 10 : 0) : 0);
12829
- this.manualParent = (data.isManualParent && !data.isManualChild ? -10 : 0);
12830
- this.manualChild = (data.isManualChild && !data.isManualParent ? -10 : 0);
12831
- this.connectorLinePath = "M " + this.x2 + " " + (this.y1 + this.manualParent + this.manualChild) + " L " + this.x3 + " " + (this.y1 + this.manualParent + this.manualChild) + " L " + this.x3 + " " + (this.y1 + this.y2) +
12856
+ this.y1 = (this.parent.enableVirtualization ? rowPositionHeight : ((!this.parent.allowTaskbarOverlap ? childOverlapTopValue : (data.childIndex * data.rowHeight)) + addTop + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1)));
12857
+ this.y2 = heightValue + this.taskLineValue + borderTopWidth + (this.parent.renderBaseline ? (data.milestoneParent && !(data.milestoneChild) ? 10 : data.milestoneChild && !(data.milestoneParent) ? -12 : 0) : 0) - this.lineStroke + 1;
12858
+ this.connectorLinePath = "M " + this.x2 + " " + (this.y1) + " L " + this.x3 + " " + (this.y1) + " L " + this.x3 + " " + (this.y1 + this.y2) +
12832
12859
  " L " + this.x1 + " " + (this.y1 + this.y2);
12833
- this.arrowPath = "M " + (this.x2 - 8) + " " + (this.y1 + this.manualChild) +
12834
- " L " + this.x2 + " " + (this.y1 - (4 + this.lineStroke) + this.manualChild) +
12835
- " L " + this.x2 + " " + (this.y1 + 4 + this.lineStroke + this.manualChild) + " Z";
12860
+ this.arrowPath = "M " + (this.x2 - 8) + " " + (this.y1) +
12861
+ " L " + this.x2 + " " + (this.y1 - (4 + this.lineStroke)) +
12862
+ " L " + this.x2 + " " + (this.y1 + 4 + this.lineStroke) + " Z";
12836
12863
  }
12837
12864
  if (this.getParentPosition(data) === 'SFType4') {
12838
12865
  this.taskLineValue = this.parent.renderBaseline ? this.taskLineValue : (data.milestoneChild ? -1 : 0);
12839
- this.point1 = heightValue - this.getconnectorLineGap(data) + this.taskLineValue;
12840
- this.point2 = this.parent.enableVirtualization ? rowPositionHeight : ((!this.parent.allowTaskbarOverlap ? parentOverlapTopValue : (data.childIndex * data.rowHeight)) + this.getTaskbarMidpoint(data.milestoneChild));
12866
+ this.point1 = (this.taskLineValue + heightValue + borderTopWidth - this.getconnectorLineGap(data) - (this.lineStroke - 1));
12867
+ this.point2 = (this.parent.enableVirtualization ? rowPositionHeight : ((!this.parent.allowTaskbarOverlap ? childOverlapTopValue : (data.childIndex * data.rowHeight)) + addTop + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1) - isMilestoneValue));
12841
12868
  this.x1 = data.parentLeft - 10;
12842
12869
  this.x2 = this.x1 + ((data.childEndPoint - data.parentLeft) + 18);
12843
12870
  this.x3 = this.x2 + (data.milestoneChild ? 16 : 11);
12844
- this.y1 = this.point2 + (data.milestoneChild ? 1 : 0) + ((data.isManualParent && data.isManualChild) ? -10 : 0);
12845
- this.y2 = this.y1 + this.point1 + (this.parent.renderBaseline ? (data.milestoneChild ? -11 : 0) : 0);
12846
- this.y3 = this.getconnectorLineGap(data) + (this.parent.renderBaseline ? (data.milestoneParent ? 10 : 0) : 0);
12871
+ this.y1 = this.point2 + (data.milestoneChild ? 2 : 0) + (this.parent.renderBaseline ? (data.milestoneParent ? -5 : 0) : 0);
12872
+ this.y2 = this.y1 + this.point1 + (this.parent.renderBaseline ? (data.milestoneChild && !(data.milestoneParent) ? -9 : data.milestoneParent && !(data.milestoneChild) ? 9 : 0) : 0);
12873
+ this.y3 = this.getconnectorLineGap(data);
12847
12874
  this.y4 = this.y2 - (this.y2 % data.rowHeight);
12848
- this.manualParent = (data.isManualParent && !data.isManualChild ? -10 : 0);
12849
- this.manualChild = (data.isManualChild && !data.isManualParent ? -10 : 0);
12850
- this.connectorLinePath = "M " + this.x2 + " " + (this.y1 + this.manualParent + this.manualChild) + " L " + this.x3 + " " + (this.y1 + this.manualParent + this.manualChild) + " L " + this.x3 + " " + this.y4 + " L " + this.x1 + " " + this.y4 +
12875
+ this.connectorLinePath = "M " + this.x2 + " " + (this.y1) + " L " + this.x3 + " " + (this.y1) + " L " + this.x3 + " " + this.y4 + " L " + this.x1 + " " + this.y4 +
12851
12876
  " L " + this.x1 + " " + (this.y2 + this.y3) + " L " + (this.x1 + 11) + " " + (this.y2 + this.y3);
12852
- this.arrowPath = "M " + (this.x2 - 8) + " " + (this.y1 + this.manualChild) +
12853
- " L " + this.x2 + " " + (this.y1 - (4 + this.lineStroke) + this.manualChild) +
12854
- " L " + this.x2 + " " + (this.y1 + 4 + this.lineStroke + this.manualChild) + " Z";
12877
+ this.arrowPath = "M " + (this.x2 - 8) + " " + (this.y1) +
12878
+ " L " + this.x2 + " " + (this.y1 - (4 + this.lineStroke)) +
12879
+ " L " + this.x2 + " " + (this.y1 + 4 + this.lineStroke) + " Z";
12855
12880
  }
12856
12881
  if (this.getParentPosition(data) === 'SFType3') {
12857
12882
  this.taskLineValue = this.parent.renderBaseline ? this.taskLineValue : 0;
12858
- this.point1 = (data.parentLeft - (data.childEndPoint + (data.milestoneParent ? 25 : 20))) + 1 + (this.parent.renderBaseline ? (data.milestoneParent ? 5 : 0) : 0);
12859
- this.point2 = this.parent.enableVirtualization ? rowPositionHeight : ((!this.parent.allowTaskbarOverlap ? parentOverlapTopValue : (data.childIndex * data.rowHeight)) + this.getTaskbarMidpoint(data.milestoneChild));
12883
+ this.point1 = (data.parentLeft - (data.childEndPoint + (data.milestoneParent ? 23 : 20))) + 1;
12884
+ this.point2 = (this.parent.enableVirtualization ? rowPositionHeight : ((!this.parent.allowTaskbarOverlap ? childOverlapTopValue : (data.childIndex * data.rowHeight)) + addTop + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1)));
12860
12885
  this.x1 = data.childEndPoint;
12861
12886
  this.x2 = this.x1 + (data.milestoneChild ? 9 : 8);
12862
12887
  this.x3 = this.x2 + (data.milestoneChild ? 17 : 11);
12863
- this.y1 = this.point2 + ((data.isManualParent && data.isManualChild) ? -10 : 0);
12864
- this.y2 = this.y1 + heightValue + this.taskLineValue + (this.parent.renderBaseline ? (data.milestoneParent ? 10 : 0) : 0);
12865
- this.manualParent = (data.isManualParent && !data.isManualChild ? -10 : 0);
12866
- this.manualChild = (data.isManualChild && !data.isManualParent ? -10 : 0);
12867
- this.connectorLinePath = "M " + this.x2 + " " + (this.y1 + this.manualParent + this.manualChild) + " L " + this.x3 + " " + (this.y1 + this.manualParent + this.manualChild) +
12888
+ this.y1 = this.point2;
12889
+ this.y2 = this.y1 + heightValue + borderTopWidth - (this.lineStroke - 1) + this.taskLineValue + (this.parent.renderBaseline ? (data.milestoneChild && !(data.milestoneParent) ? -12 : data.milestoneParent && !(data.milestoneChild) ? 10 : 0) : 0);
12890
+ this.connectorLinePath = "M " + this.x2 + " " + (this.y1) + " L " + this.x3 + " " + (this.y1) +
12868
12891
  " L " + this.x3 + " " + this.y2 + " L " + (this.x3 + this.point1) + " " + this.y2;
12869
- this.arrowPath = "M " + (this.x2 - 8) + " " + (this.y1 + this.manualChild) +
12870
- " L " + this.x2 + " " + (this.y1 - (4 + this.lineStroke) + this.manualChild) +
12871
- " L " + this.x2 + " " + (this.y1 + 4 + this.lineStroke + this.manualChild) + " Z";
12892
+ this.arrowPath = "M " + (this.x2 - 8) + " " + (this.y1) +
12893
+ " L " + this.x2 + " " + (this.y1 - (4 + this.lineStroke)) +
12894
+ " L " + this.x2 + " " + (this.y1 + 4 + this.lineStroke) + " Z";
12872
12895
  }
12873
12896
  if (this.getParentPosition(data) === 'SFType1') {
12874
12897
  this.taskLineValue = this.parent.renderBaseline ? this.taskLineValue : data.milestoneChild ? 1 : 0;
12875
- this.point1 = heightValue - this.getconnectorLineGap(data) + this.taskLineValue;
12898
+ this.point1 = heightValue + borderTopWidth - this.getconnectorLineGap(data) + this.taskLineValue - this.lineStroke;
12876
12899
  this.point2 = this.getconnectorLineGap(data);
12877
12900
  this.x1 = data.parentLeft - 10;
12878
- this.y1 = this.parent.enableVirtualization ? rowPositionHeight : ((!this.parent.allowTaskbarOverlap ? parentOverlapTopValue : (data.parentIndex * data.rowHeight)) + this.getTaskbarMidpoint(data.milestoneParent)) + +((data.isManualParent && data.isManualChild) ? -10 : 0);
12901
+ this.y1 = (this.parent.enableVirtualization ? rowPositionHeight : ((!this.parent.allowTaskbarOverlap ? parentOverlapTopValue : (data.parentIndex * data.rowHeight)) + addTop + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1) - isMilestoneValue));
12879
12902
  this.x2 = (data.childEndPoint - data.parentLeft) + 31;
12880
12903
  this.y2 = this.y1 + this.point1;
12881
12904
  this.x3 = (data.childEndPoint - data.parentLeft) + 18;
12882
12905
  this.y3 = this.y2 - (this.y2 % data.rowHeight);
12883
- this.manualParent = (data.isManualParent && !data.isManualChild ? -10 : 0);
12884
- this.manualChild = (data.isManualChild && !data.isManualParent ? -10 : 0);
12885
- this.connectorLinePath = "M " + (this.x1 + 11) + " " + (this.y1 + this.manualParent + this.manualChild) + " L " + this.x1 + " " + (this.y1 + this.manualParent + this.manualChild) + " L " + this.x1 + " " + this.y3 +
12906
+ this.connectorLinePath = "M " + (this.x1 + 11) + " " + (this.y1) + " L " + this.x1 + " " + (this.y1) + " L " + this.x1 + " " + this.y3 +
12886
12907
  " L " + (this.x1 + this.x2) + " " + this.y3 + " L " + (this.x1 + this.x2) + " " + (this.y2 + this.point2) + " L " + (this.x1 + this.x3) + " " + (this.y2 + this.point2);
12887
- this.arrowPath = "M " + (this.x1 + this.x3 - 8) + " " + (this.y2 + this.point2 + this.manualChild) +
12888
- " L " + (this.x1 + this.x3) + " " + (this.y2 + this.point2 - (4 + this.lineStroke) + this.manualChild) +
12889
- " L " + (this.x1 + this.x3) + " " + (this.y2 + this.point2 + 4 + this.lineStroke + this.manualChild) + " Z";
12908
+ this.arrowPath = "M " + (this.x1 + this.x3 - 8) + " " + (this.y2 + this.point2) +
12909
+ " L " + (this.x1 + this.x3) + " " + (this.y2 + this.point2 - (4 + this.lineStroke)) +
12910
+ " L " + (this.x1 + this.x3) + " " + (this.y2 + this.point2 + 4 + this.lineStroke) + " Z";
12890
12911
  }
12891
12912
  if (this.getParentPosition(data) === 'SFType2') {
12892
12913
  this.taskLineValue = this.parent.renderBaseline ? this.taskLineValue : 0;
12893
12914
  this.x1 = data.childEndPoint;
12894
- this.y1 = this.parent.enableVirtualization ? rowPositionHeight : ((!this.parent.allowTaskbarOverlap ? parentOverlapTopValue : (data.parentIndex * data.rowHeight)) + this.getTaskbarMidpoint(data.milestoneParent)) + +((data.isManualParent && data.isManualChild) ? -10 : 0);
12915
+ this.y1 = (this.parent.enableVirtualization ? rowPositionHeight : ((!this.parent.allowTaskbarOverlap ? parentOverlapTopValue : (data.parentIndex * data.rowHeight)) + addTop + this.getTaskbarMidpoint(isMilestoneParent) - (this.lineStroke - 1)));
12895
12916
  this.x2 = (data.parentLeft - data.childEndPoint);
12896
- this.y2 = this.y1 + heightValue + this.taskLineValue;
12897
- this.manualParent = (data.isManualParent && !data.isManualChild ? -10 : 0);
12898
- this.manualChild = (data.isManualChild && !data.isManualParent ? -10 : 0);
12899
- this.connectorLinePath = "M " + (this.x1 + this.x2 + 1) + " " + (this.y1 + this.manualParent + this.manualChild) + " L " + (this.x1 + this.x2 - 10) + " " + (this.y1 + this.manualParent + this.manualChild) +
12917
+ this.y2 = this.y1 + heightValue + this.taskLineValue + borderTopWidth - this.lineStroke;
12918
+ this.connectorLinePath = "M " + (this.x1 + this.x2 + 1) + " " + (this.y1) + " L " + (this.x1 + this.x2 - 10) + " " + (this.y1) +
12900
12919
  " L " + (this.x1 + this.x2 - 10) + " " + this.y2 + " L " + (this.x1 + 8) + " " + this.y2;
12901
- this.arrowPath = "M " + this.x1 + " " + (this.y2 + this.manualChild) +
12902
- " L " + (this.x1 + 8) + " " + (this.y2 - (4 + this.lineStroke) + this.manualChild) +
12903
- " L " + (this.x1 + 8) + " " + (this.y2 + 4 + this.lineStroke + this.manualChild) + " Z";
12920
+ this.arrowPath = "M " + this.x1 + " " + (this.y2) +
12921
+ " L " + (this.x1 + 8) + " " + (this.y2 - (4 + this.lineStroke)) +
12922
+ " L " + (this.x1 + 8) + " " + (this.y2 + 4 + this.lineStroke) + " Z";
12904
12923
  }
12905
12924
  this.connectorPath.setAttribute("d", this.connectorLinePath);
12906
12925
  this.arrowlinePath.setAttribute("d", this.arrowPath);
@@ -19786,7 +19805,16 @@ var TaskbarEdit = /** @__PURE__ @class */ (function (_super) {
19786
19805
  }
19787
19806
  else {
19788
19807
  if (this.mouseMoveX < (item.left + segment.left)) {
19789
- segment.width = this.parent.perDayWidth;
19808
+ var segmentWidth = (this.parent.timelineModule.isSingleTier &&
19809
+ (this.parent.timelineModule.customTimelineSettings.bottomTier.unit === "Hour" ||
19810
+ this.parent.timelineModule.customTimelineSettings.topTier.unit === "Hour" ||
19811
+ this.parent.timelineModule.customTimelineSettings.bottomTier.unit === "Minutes" ||
19812
+ this.parent.timelineModule.customTimelineSettings.topTier.unit === "Minutes")) ||
19813
+ (this.parent.timelineModule.customTimelineSettings.bottomTier.unit === "Hour" ||
19814
+ this.parent.timelineModule.customTimelineSettings.bottomTier.unit === "Minutes") ?
19815
+ this.parent.timelineModule.customTimelineSettings.timelineUnitSize :
19816
+ this.parent.perDayWidth;
19817
+ segment.width = segmentWidth;
19790
19818
  }
19791
19819
  }
19792
19820
  }
@@ -27150,7 +27178,7 @@ var Edit$2 = /** @__PURE__ @class */ (function () {
27150
27178
  /* tslint:disable-next-line */
27151
27179
  var query = _this.parent.query instanceof Query ? _this.parent.query : new Query();
27152
27180
  var adaptor = data_2.adaptor;
27153
- if (!(adaptor instanceof WebApiAdaptor && adaptor instanceof ODataAdaptor) || data_2.dataSource.batchUrl) {
27181
+ if (!(adaptor instanceof WebApiAdaptor && adaptor instanceof ODataAdaptor && adaptor instanceof ODataV4Adaptor) || data_2.dataSource.batchUrl) {
27154
27182
  /* tslint:disable-next-line */
27155
27183
  var crud = data_2.saveChanges(updatedData_2, _this.parent.taskFields.id, null, query);
27156
27184
  crud.then(function (e) {
@@ -27285,6 +27313,9 @@ var Edit$2 = /** @__PURE__ @class */ (function () {
27285
27313
  else if (ganttColumns[i].field === 'taskType') {
27286
27314
  tempRecord[fieldName] = this.parent.taskType;
27287
27315
  }
27316
+ else if (ganttColumns[i].field === taskSettingsFields.milestone) {
27317
+ tempRecord[fieldName] = null;
27318
+ }
27288
27319
  else {
27289
27320
  tempRecord[this.parent.ganttColumns[i].field] = '';
27290
27321
  }
@@ -30694,7 +30725,7 @@ var CriticalPath = /** @__PURE__ @class */ (function () {
30694
30725
  }
30695
30726
  var predecessorLength = flatRecords[index].ganttProperties.predecessor;
30696
30727
  var noSlackValue = 0 + ' ' + flatRecords[index].ganttProperties.durationUnit;
30697
- for (var i = 0; i < predecessorLength.length; i++) {
30728
+ for (var i = predecessorLength.length - 1; i >= 0; i--) {
30698
30729
  var toID = void 0;
30699
30730
  if (this.parent.viewType === 'ProjectView') {
30700
30731
  toID = this.parent.ids.indexOf(predecessorLength[i].to);
@@ -30705,8 +30736,19 @@ var CriticalPath = /** @__PURE__ @class */ (function () {
30705
30736
  var dateDifference = void 0;
30706
30737
  var currentData = flatRecords[index].ganttProperties;
30707
30738
  if (predecessorLength[i].type === 'FS') {
30708
- /* eslint-disable-next-line */
30709
- dateDifference = this.parent.dataOperation.getDuration(currentData.endDate, flatRecords[toID].ganttProperties.startDate, currentData.durationUnit, currentData.isAutoSchedule, currentData.isMilestone);
30739
+ if (predecessorLength[i].to != currentData.taskId.toString() || this.parent.viewType === 'ResourceView') {
30740
+ /* eslint-disable-next-line */
30741
+ dateDifference = this.parent.dataOperation.getDuration(currentData.endDate, flatRecords[toID].ganttProperties.startDate, currentData.durationUnit, currentData.isAutoSchedule, currentData.isMilestone);
30742
+ }
30743
+ else {
30744
+ toID = this.parent.ids.indexOf(predecessorLength[i].from);
30745
+ /* eslint-disable-next-line */
30746
+ dateDifference = this.parent.dataOperation.getDuration(flatRecords[toID].ganttProperties.endDate, currentData.startDate, currentData.durationUnit, currentData.isAutoSchedule, currentData.isMilestone);
30747
+ if (dateDifference === 0 && index !== toID && flatRecords[index].slack == noSlackValue) {
30748
+ flatRecords[toID].slack = flatRecords[index].slack;
30749
+ flatRecords[toID].ganttProperties.slack = flatRecords[index].slack;
30750
+ }
30751
+ }
30710
30752
  if (dateDifference === 0 && index !== toID && flatRecords[index].slack !== noSlackValue) {
30711
30753
  flatRecords[index].slack = flatRecords[toID].slack;
30712
30754
  flatRecords[index].ganttProperties.slack = flatRecords[toID].slack;