@syncfusion/ej2-gantt 22.2.5 → 22.2.8

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 (64) hide show
  1. package/CHANGELOG.md +28 -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 +299 -214
  6. package/dist/es6/ej2-gantt.es2015.js.map +1 -1
  7. package/dist/es6/ej2-gantt.es5.js +299 -214
  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 +15 -15
  13. package/src/gantt/actions/context-menu.js +7 -1
  14. package/src/gantt/actions/critical-path.js +14 -3
  15. package/src/gantt/actions/edit.js +5 -2
  16. package/src/gantt/actions/taskbar-edit.js +29 -2
  17. package/src/gantt/base/css-constants.d.ts +1 -0
  18. package/src/gantt/base/css-constants.js +1 -0
  19. package/src/gantt/base/gantt-chart.js +3 -0
  20. package/src/gantt/base/gantt.js +7 -0
  21. package/src/gantt/base/interface.d.ts +0 -2
  22. package/src/gantt/base/task-processor.js +1 -0
  23. package/src/gantt/base/tree-grid.js +20 -4
  24. package/src/gantt/renderer/chart-rows.js +25 -6
  25. package/src/gantt/renderer/connector-line.d.ts +0 -2
  26. package/src/gantt/renderer/connector-line.js +130 -153
  27. package/src/gantt/renderer/edit-tooltip.js +7 -7
  28. package/src/gantt/renderer/timeline.js +1 -2
  29. package/src/gantt/renderer/tooltip.js +28 -29
  30. package/styles/bootstrap-dark.css +1 -1
  31. package/styles/bootstrap.css +1 -1
  32. package/styles/bootstrap4.css +1 -1
  33. package/styles/bootstrap5-dark.css +1 -1
  34. package/styles/bootstrap5.css +1 -1
  35. package/styles/fabric-dark.css +1 -1
  36. package/styles/fabric.css +1 -1
  37. package/styles/fluent-dark.css +1 -1
  38. package/styles/fluent.css +1 -1
  39. package/styles/gantt/_layout.scss +1 -1
  40. package/styles/gantt/bootstrap-dark.css +1 -1
  41. package/styles/gantt/bootstrap.css +1 -1
  42. package/styles/gantt/bootstrap4.css +1 -1
  43. package/styles/gantt/bootstrap5-dark.css +1 -1
  44. package/styles/gantt/bootstrap5.css +1 -1
  45. package/styles/gantt/fabric-dark.css +1 -1
  46. package/styles/gantt/fabric.css +1 -1
  47. package/styles/gantt/fluent-dark.css +1 -1
  48. package/styles/gantt/fluent.css +1 -1
  49. package/styles/gantt/highcontrast-light.css +1 -1
  50. package/styles/gantt/highcontrast.css +1 -1
  51. package/styles/gantt/material-dark.css +1 -1
  52. package/styles/gantt/material.css +1 -1
  53. package/styles/gantt/material3-dark.css +1 -1
  54. package/styles/gantt/material3.css +1 -1
  55. package/styles/gantt/tailwind-dark.css +1 -1
  56. package/styles/gantt/tailwind.css +1 -1
  57. package/styles/highcontrast-light.css +1 -1
  58. package/styles/highcontrast.css +1 -1
  59. package/styles/material-dark.css +1 -1
  60. package/styles/material.css +1 -1
  61. package/styles/material3-dark.css +1 -1
  62. package/styles/material3.css +1 -1
  63. package/styles/tailwind-dark.css +1 -1
  64. package/styles/tailwind.css +1 -1
@@ -3952,6 +3952,7 @@ class TaskProcessor extends DateProcessor {
3952
3952
  this.parent.setRecordValue('progress', Math.floor(parentProgress), parentProp, true);
3953
3953
  this.parent.setRecordValue('totalProgress', totalProgress, parentProp, true);
3954
3954
  this.parent.setRecordValue('totalDuration', totalDuration, parentProp, true);
3955
+ this.parent.setRecordValue('autoDuration', parentProp.duration, parentProp, true);
3955
3956
  if (!parentProp.isAutoSchedule) {
3956
3957
  this.parent.setRecordValue('autoDuration', this.calculateAutoDuration(parentProp), parentProp, true);
3957
3958
  this.updateAutoWidthLeft(parentData);
@@ -4032,6 +4033,7 @@ const chartRowCell = 'e-chart-row-cell';
4032
4033
  const chartRow = 'e-chart-row';
4033
4034
  const rowExpand = 'e-row-expand';
4034
4035
  const rowCollapse = 'e-row-collapse';
4036
+ const collapseParent = 'e-collapse-parent';
4035
4037
  const taskBarLeftResizer = 'e-taskbar-left-resizer';
4036
4038
  const taskBarRightResizer = 'e-taskbar-right-resizer';
4037
4039
  const childProgressResizer = 'e-child-progress-resizer';
@@ -4505,6 +4507,9 @@ class GanttChart {
4505
4507
  }
4506
4508
  this.updateWidthAndHeight();
4507
4509
  this.parent.notify('selectRowByIndex', {});
4510
+ if (this.parent.timelineModule.isZoomToFit) {
4511
+ this.parent.timelineModule.processZoomToFit();
4512
+ }
4508
4513
  }
4509
4514
  /**
4510
4515
  * @param {IGanttData[]} records .
@@ -6110,8 +6115,7 @@ class Timeline {
6110
6115
  this.parent.showSpinner();
6111
6116
  }
6112
6117
  this.changeTimelineSettings(newTimeline);
6113
- this.isZoomToFit = false;
6114
- this.parent.isTimelineRoundOff = this.isZoomToFit ? false : isNullOrUndefined(this.parent.projectStartDate) ? true : false;
6118
+ this.parent.isTimelineRoundOff = isNullOrUndefined(this.parent.projectStartDate) ? true : false;
6115
6119
  }
6116
6120
  bottomTierCellWidthCalc(mode, zoomLevel, date) {
6117
6121
  let convertedMilliSeconds;
@@ -8003,8 +8007,16 @@ class GanttTreeGrid {
8003
8007
  this.parent.getDateFormat().toLowerCase().indexOf('hh') !== -1 ? 'datetimepickeredit' : 'datepickeredit';
8004
8008
  column.format = column.format ? column.format : { type: 'date', format: this.parent.getDateFormat() };
8005
8009
  column.width = column.width ? column.width : 150;
8006
- if (!column.edit || (column.edit && !column.edit.create)) {
8007
- column.edit = { params: { renderDayCell: this.parent.renderWorkingDayCell.bind(this.parent) } };
8010
+ if (column.edit && column.edit.params) {
8011
+ column.edit.params['renderDayCell'] = this.parent.renderWorkingDayCell.bind(this.parent);
8012
+ }
8013
+ else {
8014
+ if (column.edit) {
8015
+ column.edit.params = { renderDayCell: this.parent.renderWorkingDayCell.bind(this.parent) };
8016
+ }
8017
+ else {
8018
+ column.edit = { params: { renderDayCell: this.parent.renderWorkingDayCell.bind(this.parent) } };
8019
+ }
8008
8020
  }
8009
8021
  }
8010
8022
  else if (taskSettings.endDate === column.field) {
@@ -8018,8 +8030,16 @@ class GanttTreeGrid {
8018
8030
  column.editType = column.editType ? column.editType :
8019
8031
  this.parent.getDateFormat().toLowerCase().indexOf('hh') !== -1 ? 'datetimepickeredit' : 'datepickeredit';
8020
8032
  column.width = column.width ? column.width : 150;
8021
- if (!column.edit || (column.edit && !column.edit.create)) {
8022
- column.edit = { params: { renderDayCell: this.parent.renderWorkingDayCell.bind(this.parent) } };
8033
+ if (column.edit && column.edit.params) {
8034
+ column.edit.params['renderDayCell'] = this.parent.renderWorkingDayCell.bind(this.parent);
8035
+ }
8036
+ else {
8037
+ if (column.edit) {
8038
+ column.edit.params = { renderDayCell: this.parent.renderWorkingDayCell.bind(this.parent) };
8039
+ }
8040
+ else {
8041
+ column.edit = { params: { renderDayCell: this.parent.renderWorkingDayCell.bind(this.parent) } };
8042
+ }
8023
8043
  }
8024
8044
  }
8025
8045
  else if (taskSettings.duration === column.field) {
@@ -9064,7 +9084,7 @@ class ChartRows extends DateProcessor {
9064
9084
  childTaskbarNode = this.createDivElement(template);
9065
9085
  }
9066
9086
  }
9067
- if (this.parent.enableRtl && childTaskbarNode[0] && childTaskbarNode[0].querySelector('.e-task-label')) {
9087
+ if (this.parent.enableRtl && !isNullOrUndefined(childTaskbarNode) && childTaskbarNode[0] && childTaskbarNode[0].querySelector('.e-task-label')) {
9068
9088
  childTaskbarNode[0].querySelector('.e-task-label').style.marginLeft = '15px';
9069
9089
  childTaskbarNode[0].querySelector('.e-task-label').style.marginRight = '8px';
9070
9090
  if (childTaskbarNode[0].querySelector('.e-gantt-child-progressbar')) {
@@ -9446,8 +9466,8 @@ class ChartRows extends DateProcessor {
9446
9466
  milestoneNode = this.milestoneTemplateFunction(extend({ index: i }, data), this.parent, 'MilestoneTemplate', this.getTemplateID('MilestoneTemplate'), false, undefined, rootElement[0], this.parent.treeGrid['root']);
9447
9467
  }
9448
9468
  else {
9449
- const template = '<div class="' + traceMilestone + '" style="width:' + ((this.parent.renderBaseline ? this.taskBarHeight - 3 : this.taskBarHeight - 7)) + 'px;height:' +
9450
- ((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>';
9469
+ const template = '<div class="' + traceMilestone + '" style="width:' + ((this.parent.renderBaseline ? this.taskBarHeight : this.taskBarHeight - 6)) + 'px;height:' +
9470
+ ((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>';
9451
9471
  milestoneNode = this.createDivElement(template);
9452
9472
  }
9453
9473
  return milestoneNode;
@@ -9475,9 +9495,9 @@ class ChartRows extends DateProcessor {
9475
9495
  getMilestoneBaselineNode() {
9476
9496
  const data = this.templateData;
9477
9497
  let baselineMilestoneHeight = this.parent.renderBaseline ? 5 : 2;
9478
- const template = '<div class="' + baselineMilestoneContainer + '" style="width:' + ((this.parent.renderBaseline ? this.taskBarHeight - 5 : this.taskBarHeight - 10) + 2) + 'px;height:' +
9479
- ((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 -
9480
- (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>';
9498
+ const template = '<div class="' + baselineMilestoneContainer + '" style="width:' + ((this.parent.renderBaseline ? this.taskBarHeight : this.taskBarHeight - 10)) + 'px;height:' +
9499
+ ((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 -
9500
+ (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>';
9481
9501
  return this.createDivElement(template);
9482
9502
  }
9483
9503
  /**
@@ -10162,6 +10182,12 @@ class ChartRows extends DateProcessor {
10162
10182
  this.ganttChartTableBody.replaceChildren(...dupChartBody.childNodes);
10163
10183
  this.parent.initialChartRowElements = this.parent.ganttChartModule.getChartRows();
10164
10184
  }
10185
+ if (this.parent.enableCriticalPath && this.parent.criticalPathModule) {
10186
+ var criticalModule = this.parent.criticalPathModule;
10187
+ if (criticalModule.criticalPathCollection) {
10188
+ this.parent.criticalPathModule.criticalConnectorLine(criticalModule.criticalPathCollection, criticalModule.detailPredecessorCollection, true, criticalModule.predecessorCollectionTaskIds);
10189
+ }
10190
+ }
10165
10191
  this.parent.renderTemplates();
10166
10192
  this.triggerQueryTaskbarInfo();
10167
10193
  this.parent.modifiedRecords = [];
@@ -10176,6 +10202,7 @@ class ChartRows extends DateProcessor {
10176
10202
  }
10177
10203
  }
10178
10204
  }
10205
+ this.parent.isGanttChartRendered = true;
10179
10206
  this.parent.renderTemplates();
10180
10207
  }
10181
10208
  /**
@@ -10497,6 +10524,18 @@ class ChartRows extends DateProcessor {
10497
10524
  }
10498
10525
  }
10499
10526
  else if (taskbarElement) {
10527
+ if (taskbarElement && this.parent.enableVirtualization && !args.data.expanded) {
10528
+ const childElement = trElement.querySelector('.' + collapseParent);
10529
+ if (childElement) {
10530
+ for (let i = 0; i < childElement.childNodes.length; i++) {
10531
+ const taskbar = childElement.childNodes[i];
10532
+ const mainTaskbar = taskbar.querySelector('.' + traceChildTaskBar);
10533
+ if (mainTaskbar) {
10534
+ mainTaskbar.style.backgroundColor = args.taskbarBgColor;
10535
+ }
10536
+ }
10537
+ }
10538
+ }
10500
10539
  if (taskbarElement.querySelector(classCollections[0]) &&
10501
10540
  getComputedStyle(taskbarElement.querySelector(classCollections[0])).backgroundColor !== args.taskbarBgColor) {
10502
10541
  taskbarElement.querySelector(classCollections[0]).style.backgroundColor = args.taskbarBgColor;
@@ -10768,10 +10807,10 @@ class ChartRows extends DateProcessor {
10768
10807
  this.templateData = record;
10769
10808
  const parentTrNode = this.getTableTrNode();
10770
10809
  const leftLabelNode = this.leftLabelContainer();
10771
- const collapseParent = createElement('div', {
10810
+ const collapseParent$$1 = createElement('div', {
10772
10811
  className: 'e-collapse-parent'
10773
10812
  });
10774
- parentTrNode[0].childNodes[0].childNodes[0].appendChild(collapseParent);
10813
+ parentTrNode[0].childNodes[0].childNodes[0].appendChild(collapseParent$$1);
10775
10814
  const tasks = this.parent.dataOperation.setSortedChildTasks(record);
10776
10815
  this.parent.dataOperation.updateOverlappingIndex(tasks);
10777
10816
  let tRow;
@@ -11840,8 +11879,6 @@ class ConnectorLine {
11840
11879
  connectorObj.connectorLineId = 'parent' + parentId + 'child' + childId;
11841
11880
  connectorObj.milestoneParent = parentGanttRecord.isMilestone ? true : false;
11842
11881
  connectorObj.milestoneChild = childGanttRecord.isMilestone ? true : false;
11843
- connectorObj.isManualParent = (!(this.parent.flatData[parentIndex].ganttProperties.isAutoSchedule) && this.parent.flatData[parentIndex].hasChildRecords);
11844
- connectorObj.isManualChild = (!(this.parent.flatData[childIndex].ganttProperties.isAutoSchedule) && this.parent.flatData[childIndex].hasChildRecords);
11845
11882
  connectorObj.parentEndPoint = connectorObj.parentLeft + connectorObj.parentWidth;
11846
11883
  connectorObj.childEndPoint = connectorObj.childLeft + connectorObj.childWidth;
11847
11884
  if (isNullOrUndefined(isScheduledTask(parentGanttRecord)) || isNullOrUndefined(isScheduledTask(childGanttRecord))) {
@@ -12145,6 +12182,8 @@ class ConnectorLine {
12145
12182
  isMilestoneValue = (data.milestoneParent && data.milestoneChild) ? 0 : data.milestoneParent ? -5 : data.milestoneChild ? 5 : 0;
12146
12183
  }
12147
12184
  let heightValue = isVirtual ? connectorLine$$1.height : (height + isMilestoneValue);
12185
+ let borderTopWidth = 0;
12186
+ let addTop = 0;
12148
12187
  let parentOverlapTopValue = 0;
12149
12188
  let childOverlapTopValue = 0;
12150
12189
  let count = 0;
@@ -12181,30 +12220,56 @@ class ConnectorLine {
12181
12220
  }
12182
12221
  if (isValid) {
12183
12222
  if (((fromRecordIsParent && !fromRecordIsManual) && (toRecordIsParent && !toRecordIsManual))) {
12184
-
12223
+ addTop = -11;
12185
12224
  }
12186
12225
  else if (!((fromRecordIsParent && !fromRecordIsManual) && (toRecordIsParent && !toRecordIsManual))) {
12187
12226
  if (data.childIndex > data.parentIndex) {
12188
-
12227
+ if (!fromRecordIsParent && toRecordIsParent) {
12228
+ borderTopWidth = -11;
12229
+ }
12230
+ else {
12231
+ borderTopWidth = 11;
12232
+ addTop = -11;
12233
+ }
12189
12234
  }
12190
12235
  else {
12191
-
12236
+ if ((fromRecordIsParent && !toRecordIsParent)) {
12237
+ borderTopWidth = -11;
12238
+ }
12239
+ else {
12240
+ borderTopWidth = 11;
12241
+ addTop = -11;
12242
+ }
12192
12243
  }
12193
12244
  }
12194
12245
  if (this.parent.currentViewData[data.parentIndex].ganttProperties.isMilestone) {
12195
12246
  if (data.parentIndex > data.childIndex) {
12196
-
12247
+ addTop = -11;
12248
+ borderTopWidth = 12;
12197
12249
  }
12198
12250
  else if (data.type === 'SS' || data.type === 'FF') {
12199
-
12251
+ addTop = -5;
12200
12252
  }
12201
12253
  }
12202
12254
  else if (this.parent.currentViewData[data.childIndex].ganttProperties.isMilestone) {
12203
12255
  if (data.parentIndex > data.childIndex) {
12204
-
12256
+ addTop = 5;
12257
+ borderTopWidth = -10;
12205
12258
  }
12206
- else if (data.type === 'SS' || data.type === 'FF') {
12207
-
12259
+ else if (data.parentIndex < data.childIndex) {
12260
+ if (data.type === 'SS' || data.type === 'FF') {
12261
+ addTop = -10;
12262
+ }
12263
+ }
12264
+ }
12265
+ else {
12266
+ if (data.parentIndex < data.childIndex && fromRecordIsManual && !toRecordIsManual) {
12267
+ addTop = 0;
12268
+ borderTopWidth = -11;
12269
+ }
12270
+ else if (data.childIndex < data.parentIndex && !fromRecordIsManual && toRecordIsManual) {
12271
+ addTop = 0;
12272
+ borderTopWidth = -11;
12208
12273
  }
12209
12274
  }
12210
12275
  }
@@ -12237,127 +12302,110 @@ class ConnectorLine {
12237
12302
  if (this.getParentPosition(data) === 'FSType1') {
12238
12303
  this.taskLineValue = data.milestoneChild ? 1 : 0;
12239
12304
  this.x1 = data.parentEndPoint + (data.milestoneParent ? -1 : (data.milestoneChild ? -1 : 0));
12240
- this.x2 = data.milestoneParent ? ((((data.childLeft - (data.parentEndPoint + 10)) + 1) - 10) + 1) : (((data.childLeft - (data.parentEndPoint + 10))) - 10);
12241
- this.y1 = this.parent.enableVirtualization ? rowPositionHeight : ((!this.parent.allowTaskbarOverlap ? parentOverlapTopValue : (data.parentIndex * data.rowHeight)) + this.getTaskbarMidpoint(data.milestoneParent)) + ((data.isManualParent && data.isManualChild) ? -10 : 0);
12242
- this.y2 = heightValue + this.taskLineValue;
12243
- this.manualParent = (data.isManualParent && !data.isManualChild ? -10 : 0);
12244
- this.manualChild = (data.isManualChild && !data.isManualParent ? -10 : 0);
12245
- 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) +
12246
- " L " + (this.x1 + this.x2 + 11) + " " + (this.y1 + this.y2);
12247
- this.arrowPath = "M " + (this.x1 + this.x2 + 18) + " " + (this.y1 + this.y2 + this.manualChild) +
12248
- " L " + (this.x1 + this.x2 + 11) + " " + (this.y1 + this.y2 - (4 + this.lineStroke) + this.manualChild) +
12249
- " L " + (this.x1 + this.x2 + 11) + " " + (this.y1 + this.y2 + 4 + this.lineStroke + this.manualChild) + " Z";
12305
+ 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);
12306
+ this.y1 = (this.parent.enableVirtualization ? rowPositionHeight : ((!this.parent.allowTaskbarOverlap ? parentOverlapTopValue : (data.parentIndex * data.rowHeight)) + addTop + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1) - isMilestoneValue));
12307
+ this.y2 = heightValue + this.taskLineValue + borderTopWidth - this.lineStroke;
12308
+ this.connectorLinePath = "M " + this.x1 + " " + (this.y1) + " L " + (this.x1 + this.x2) + " " + (this.y1) + " L " + (this.x1 + this.x2) + " " + (this.y1 + this.y2) +
12309
+ " L " + (this.x1 + this.x2 + 12) + " " + (this.y1 + this.y2);
12310
+ this.arrowPath = "M " + (this.x1 + this.x2 + 20) + " " + (this.y1 + this.y2) +
12311
+ " L " + (this.x1 + this.x2 + 12) + " " + (this.y1 + this.y2 - (4 + this.lineStroke)) +
12312
+ " L " + (this.x1 + this.x2 + 12) + " " + (this.y1 + this.y2 + 4) + " Z";
12250
12313
  }
12251
12314
  if (this.getParentPosition(data) === 'FSType2') {
12252
- this.taskLineValue = data.milestoneChild ? 1 : 0;
12253
- this.x1 = data.parentLeft + (data.milestoneChild ? -1 : 0);
12254
- this.x2 = data.parentWidth + (data.milestoneParent ? 1 : 0);
12315
+ this.x1 = data.parentLeft;
12316
+ this.x2 = data.parentWidth + (data.milestoneParent ? -1 : 0);
12255
12317
  this.x3 = this.x2 + (data.milestoneParent ? 11 : 10);
12256
12318
  this.x4 = data.parentWidth - ((data.parentEndPoint - data.childLeft) + 20);
12257
- this.y1 = this.parent.enableVirtualization ? rowPositionHeight : ((!this.parent.allowTaskbarOverlap ? parentOverlapTopValue : (data.parentIndex * data.rowHeight)) + this.getTaskbarMidpoint(data.milestoneParent)) + ((data.isManualParent && data.isManualChild) ? -10 : 0);
12258
- this.y2 = heightValue - this.getconnectorLineGap(data) + this.taskLineValue;
12319
+ this.y1 = (this.parent.enableVirtualization ? rowPositionHeight : ((!this.parent.allowTaskbarOverlap ? parentOverlapTopValue : (data.parentIndex * data.rowHeight)) + addTop + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1) - isMilestoneValue));
12320
+ this.y2 = heightValue + borderTopWidth - this.getconnectorLineGap(data) - this.lineStroke;
12259
12321
  this.y3 = this.getconnectorLineGap(data);
12260
- this.y4 = this.y1 + this.y2 - ((this.y1 + this.y2) % data.rowHeight);
12261
- this.manualParent = (data.isManualParent && !data.isManualChild ? -10 : 0);
12262
- this.manualChild = (data.isManualChild && !data.isManualParent ? -10 : 0);
12263
- 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 +
12264
- " 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);
12265
- this.arrowPath = "M " + (this.x1 + this.x4 + 18) + " " + (this.y1 + this.y2 + this.y3 + this.manualChild) +
12266
- " L " + (this.x1 + this.x4 + 11) + " " + (this.y1 + this.y2 + this.y3 - (4 + this.lineStroke) + this.manualChild) +
12267
- " L " + (this.x1 + this.x4 + 11) + " " + (this.y1 + this.y2 + this.y3 + 4 + this.lineStroke + this.manualChild) + " Z";
12322
+ this.y4 = (!this.parent.allowTaskbarOverlap ? childOverlapTopValue : (this.y1 + this.y2 - ((this.y1 + this.y2) % data.rowHeight)));
12323
+ this.connectorLinePath = "M " + (this.x1 + this.x2) + " " + (this.y1) + " " + " L " + (this.x1 + this.x3) + " " + (this.y1) + " L " + (this.x1 + this.x3) + " " + this.y4 +
12324
+ " 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);
12325
+ this.arrowPath = "M " + (this.x1 + this.x4 + 20) + " " + (this.y1 + this.y2 + this.y3) +
12326
+ " L " + (this.x1 + this.x4 + 12) + " " + (this.y1 + this.y2 + this.y3 - (4 + this.lineStroke)) +
12327
+ " L " + (this.x1 + this.x4 + 12) + " " + (this.y1 + this.y2 + this.y3 + 4 + this.lineStroke) + " Z";
12268
12328
  }
12269
12329
  if (this.getParentPosition(data) === 'FSType3') {
12270
12330
  this.taskLineValue = data.milestoneChild ? 1 : 0;
12271
- this.point1 = this.parent.enableVirtualization ? rowPositionHeight : ((!this.parent.allowTaskbarOverlap ? parentOverlapTopValue : (data.childIndex * data.rowHeight)) + this.getTaskbarMidpoint(data.milestoneChild));
12331
+ this.point1 = (this.parent.enableVirtualization ? rowPositionHeight : ((!this.parent.allowTaskbarOverlap ? childOverlapTopValue : (data.childIndex * data.rowHeight)) + addTop + this.getTaskbarMidpoint(isMilestoneParent) - (this.lineStroke - 1) - isMilestoneValue));
12272
12332
  this.x1 = (data.childLeft + (data.milestoneChild ? -1 : 0) + (data.milestoneParent ? 1 : 0)) - 20;
12273
12333
  this.x2 = (data.parentEndPoint - data.childLeft) + 30;
12274
- this.y1 = this.point1 + ((data.isManualParent && data.isManualChild) ? -10 : 0);
12275
- this.y2 = this.point1 + heightValue - this.getconnectorLineGap(data) + this.taskLineValue + (this.parent.renderBaseline ? (data.milestoneChild ? -10 : 0) : 0);
12276
- this.y3 = this.getconnectorLineGap(data) + (this.parent.renderBaseline ? (data.milestoneParent ? 10 : 0) : 0);
12334
+ this.y1 = this.point1 + (this.parent.renderBaseline ? (data.milestoneChild && !(data.milestoneParent) ? 11 : data.milestoneParent && !(data.milestoneChild) ? -12 : 0) : 0);
12335
+ this.y2 = this.point1 + heightValue + borderTopWidth - this.getconnectorLineGap(data) - this.lineStroke + this.taskLineValue;
12336
+ this.y3 = this.getconnectorLineGap(data);
12277
12337
  this.y4 = this.y2 - (this.y2 % data.rowHeight);
12278
- this.manualParent = (data.isManualParent && !data.isManualChild ? -10 : 0);
12279
- this.manualChild = (data.isManualChild && !data.isManualParent ? -10 : 0);
12280
- 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 +
12338
+ this.connectorLinePath = "M " + (this.x1 + 12) + " " + (this.y1) + " L " + this.x1 + " " + (this.y1) + " L " + this.x1 + " " + this.y4 +
12281
12339
  " 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);
12282
- this.arrowPath = "M " + (this.x1 + 18) + " " + (this.y1 + this.manualChild) +
12283
- " L " + (this.x1 + 11) + " " + (this.y1 - (4 + this.lineStroke) + this.manualChild) +
12284
- " L " + (this.x1 + 11) + " " + (this.y1 + 4 + this.lineStroke + this.manualChild) + " Z";
12340
+ this.arrowPath = "M " + (this.x1 + 20) + " " + (this.y1) +
12341
+ " L " + (this.x1 + 12) + " " + (this.y1 - (4 + this.lineStroke)) +
12342
+ " L " + (this.x1 + 12) + " " + (this.y1 + 4 + this.lineStroke) + " Z";
12285
12343
  }
12286
12344
  if (this.getParentPosition(data) === 'FSType4') {
12287
- this.point1 = this.parent.enableVirtualization ? rowPositionHeight : ((!this.parent.allowTaskbarOverlap ? parentOverlapTopValue : (data.childIndex * data.rowHeight)) + this.getTaskbarMidpoint(data.milestoneChild));
12345
+ this.point1 = (this.parent.enableVirtualization ? rowPositionHeight : ((!this.parent.allowTaskbarOverlap ? childOverlapTopValue : (data.childIndex * data.rowHeight)) + addTop + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1)));
12288
12346
  this.taskLineValue = this.parent.renderBaseline ? this.taskLineValue : 0;
12289
12347
  this.x1 = data.parentEndPoint + (data.milestoneChild ? -1 : 0) + (data.milestoneParent ? 1 : 0);
12290
12348
  this.x2 = data.childLeft - data.parentEndPoint - 20;
12291
- this.y1 = this.point1 + (data.milestoneChild ? 1 : 0) + ((data.isManualParent && data.isManualChild) ? -10 : 0);
12292
- this.y2 = this.point1 + heightValue + this.taskLineValue + (this.parent.renderBaseline ? (data.milestoneParent ? 10 : 0) : 0);
12293
- this.manualParent = (data.isManualParent && !data.isManualChild ? -10 : 0);
12294
- this.manualChild = (data.isManualChild && !data.isManualParent ? -10 : 0);
12295
- 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 +
12349
+ this.y1 = this.point1 + (data.milestoneChild ? -1 : 0);
12350
+ 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);
12351
+ this.connectorLinePath = "M " + (this.x1 + this.x2 + 12) + " " + (this.y1) + " L " + (this.x1 + this.x2) + " " + (this.y1) + " L " + (this.x1 + this.x2) + " " + this.y2 +
12296
12352
  " L " + this.x1 + " " + this.y2;
12297
- this.arrowPath = "M " + (this.x1 + this.x2 + 18) + " " + (this.y1 + this.manualChild) +
12298
- " L " + (this.x1 + this.x2 + 11) + " " + (this.y1 - (4 + this.lineStroke) + this.manualChild) +
12299
- " L " + (this.x1 + this.x2 + 11) + " " + (this.y1 + 4 + this.lineStroke + this.manualChild) + " Z";
12353
+ this.arrowPath = "M " + (this.x1 + this.x2 + 20) + " " + (this.y1) +
12354
+ " L " + (this.x1 + this.x2 + 12) + " " + (this.y1 - (4 + this.lineStroke)) +
12355
+ " L " + (this.x1 + this.x2 + 12) + " " + (this.y1 + 4 + this.lineStroke) + " Z";
12300
12356
  }
12301
12357
  if (this.getParentPosition(data) === 'SSType4') {
12302
12358
  this.taskLineValue = this.parent.renderBaseline ? this.taskLineValue : 0;
12303
- this.point1 = heightValue + this.taskLineValue;
12304
- this.point2 = this.parent.enableVirtualization ? rowPositionHeight : ((!this.parent.allowTaskbarOverlap ? parentOverlapTopValue : (data.childIndex * data.rowHeight)) + this.getTaskbarMidpoint(data.milestoneChild));
12305
- this.x1 = data.parentLeft - 8;
12359
+ this.point1 = heightValue + this.taskLineValue + borderTopWidth;
12360
+ this.point2 = (this.parent.enableVirtualization ? rowPositionHeight : ((!this.parent.allowTaskbarOverlap ? childOverlapTopValue : (data.childIndex * data.rowHeight)) + addTop + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1)));
12361
+ this.x1 = data.parentLeft - 10;
12306
12362
  this.x2 = data.childLeft - data.parentLeft;
12307
- this.y1 = this.point2 + (data.milestoneChild ? 1 : 0) + ((data.isManualParent && data.isManualChild) ? -10 : 0);
12308
- this.y2 = this.y1 + this.point1 + (this.parent.renderBaseline ? (data.milestoneParent ? 10 : 0) : 0);
12309
- this.manualParent = (data.isManualParent && !data.isManualChild ? -10 : 0);
12310
- this.manualChild = (data.isManualChild && !data.isManualParent ? -10 : 0);
12311
- this.connectorLinePath = "M " + (this.x1 + this.x2) + " " + (this.y1 + this.manualParent + this.manualChild) + " L " + this.x1 + " " + (this.y1 + this.manualParent + this.manualChild) +
12363
+ this.y1 = this.point2 + (data.milestoneChild ? 1 : 0);
12364
+ this.y2 = this.y1 + this.point1 + (this.parent.renderBaseline ? (data.milestoneParent && !(data.milestoneChild) ? 10 : data.milestoneChild && !(data.milestoneParent) ? -13 : 0) : 0);
12365
+ this.connectorLinePath = "M " + (this.x1 + this.x2) + " " + (this.y1) + " L " + this.x1 + " " + (this.y1) +
12312
12366
  " L " + this.x1 + " " + this.y2 + " L " + (this.x1 + 10) + " " + this.y2;
12313
- this.arrowPath = "M " + (this.x1 + this.x2 + 8) + " " + (this.y1 + this.manualChild) +
12314
- " L " + (this.x1 + this.x2) + " " + (this.y1 - (4 + this.lineStroke) + this.manualChild) +
12315
- " L " + (this.x1 + this.x2) + " " + (this.y1 + 4 + this.lineStroke + this.manualChild) + " Z";
12367
+ this.arrowPath = "M " + (this.x1 + this.x2 + 8) + " " + (this.y1) +
12368
+ " L " + (this.x1 + this.x2) + " " + (this.y1 - (4 + this.lineStroke)) +
12369
+ " L " + (this.x1 + this.x2) + " " + (this.y1 + 4 + this.lineStroke) + " Z";
12316
12370
  }
12317
12371
  if (this.getParentPosition(data) === 'SSType3') {
12318
12372
  this.taskLineValue = this.parent.renderBaseline ? this.taskLineValue : data.milestoneChild ? 1 : 0;
12319
- this.point1 = heightValue + this.taskLineValue;
12373
+ this.point1 = heightValue + this.taskLineValue + borderTopWidth - (this.lineStroke - 1);
12320
12374
  this.x1 = data.childLeft - 20;
12321
- 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);
12375
+ 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)));
12322
12376
  this.x2 = data.parentLeft - data.childLeft + 21;
12323
- this.y2 = this.y1 + this.point1 + (this.parent.renderBaseline ? (data.milestoneChild ? -11 : data.milestoneParent ? 10 : 0) : 0);
12324
- this.manualParent = (data.isManualParent && !data.isManualChild ? -10 : 0);
12325
- this.manualChild = (data.isManualChild && !data.isManualParent ? -10 : 0);
12326
- this.connectorLinePath = "M " + (this.x1 + 12) + " " + (this.y1 + this.manualParent + this.manualChild) + " L " + this.x1 + " " + (this.y1 + this.manualParent + this.manualChild) +
12377
+ this.y2 = this.y1 + this.point1 + (this.parent.renderBaseline ? (data.milestoneChild && !(data.milestoneParent) ? -11 : data.milestoneParent && !(data.milestoneChild) ? 10 : 0) : 0);
12378
+ this.connectorLinePath = "M " + (this.x1 + 12) + " " + (this.y1) + " L " + this.x1 + " " + (this.y1) +
12327
12379
  " L " + this.x1 + " " + this.y2 + " L " + (this.x1 + this.x2) + " " + this.y2;
12328
- this.arrowPath = "M " + (this.x1 + 20) + " " + (this.y1 + this.manualChild) +
12329
- " L " + (this.x1 + 12) + " " + (this.y1 - (4 + this.lineStroke) + this.manualChild) +
12330
- " L " + (this.x1 + 12) + " " + (this.y1 + 4 + this.lineStroke + this.manualChild) + " Z";
12380
+ this.arrowPath = "M " + (this.x1 + 20) + " " + (this.y1) +
12381
+ " L " + (this.x1 + 12) + " " + (this.y1 - (4 + this.lineStroke)) +
12382
+ " L " + (this.x1 + 12) + " " + (this.y1 + 4 + this.lineStroke) + " Z";
12331
12383
  }
12332
12384
  if (this.getParentPosition(data) === 'SSType2') {
12333
12385
  this.taskLineValue = this.parent.renderBaseline ? this.taskLineValue : data.milestoneChild ? 1 : 0;
12334
- this.point1 = heightValue + this.taskLineValue;
12386
+ this.point1 = heightValue + this.taskLineValue + borderTopWidth - this.lineStroke;
12335
12387
  this.x1 = setInnerElementLeftSSType2;
12336
12388
  this.x2 = setInnerChildWidthSSType2 + 1;
12337
- this.y1 = this.parent.enableVirtualization ? rowPositionHeight : ((!this.parent.allowTaskbarOverlap ? parentOverlapTopValue : (data.parentIndex * data.rowHeight)) + this.getTaskbarMidpoint(data.milestoneParent)) + ((data.isManualParent && data.isManualChild) ? -10 : 0);
12389
+ this.y1 = (this.parent.enableVirtualization ? rowPositionHeight : ((!this.parent.allowTaskbarOverlap ? parentOverlapTopValue : (data.parentIndex * data.rowHeight)) + addTop + this.getTaskbarMidpoint(isMilestoneParent) - (this.lineStroke - 1)));
12338
12390
  this.y2 = this.y1 + this.point1;
12339
- this.manualParent = (data.isManualParent && !data.isManualChild ? -10 : 0);
12340
- this.manualChild = (data.isManualChild && !data.isManualParent ? -10 : 0);
12341
- 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 +
12391
+ this.connectorLinePath = "M " + (this.x1 + this.x2) + " " + (this.y1) + " L " + this.x1 + " " + (this.y1) + " L " + this.x1 + " " + this.y2 +
12342
12392
  " L " + (this.x1 + setInnerElementWidthSSType2) + " " + this.y2;
12343
- this.arrowPath = "M " + (this.x1 + setInnerElementWidthSSType2 + 8) + " " + (this.y2 + this.manualChild) +
12344
- " L " + (this.x1 + setInnerElementWidthSSType2) + " " + (this.y2 - (4 + this.lineStroke) + this.manualChild) +
12345
- " L " + (this.x1 + setInnerElementWidthSSType2) + " " + (this.y2 + 4 + this.lineStroke + this.manualChild) + " Z";
12393
+ this.arrowPath = "M " + (this.x1 + setInnerElementWidthSSType2 + 8) + " " + (this.y2) +
12394
+ " L " + (this.x1 + setInnerElementWidthSSType2) + " " + (this.y2 - (4 + this.lineStroke)) +
12395
+ " L " + (this.x1 + setInnerElementWidthSSType2) + " " + (this.y2 + 4 + this.lineStroke) + " Z";
12346
12396
  }
12347
12397
  if (this.getParentPosition(data) === 'SSType1') {
12348
12398
  this.taskLineValue = this.parent.renderBaseline ? this.taskLineValue : data.milestoneChild ? 1 : 0;
12349
- this.point1 = heightValue + this.taskLineValue;
12399
+ this.point1 = heightValue + this.taskLineValue + borderTopWidth - this.lineStroke;
12350
12400
  this.x1 = data.childLeft - 20;
12351
12401
  this.x2 = data.parentLeft - data.childLeft + 21;
12352
- this.y1 = this.parent.enableVirtualization ? rowPositionHeight : ((!this.parent.allowTaskbarOverlap ? parentOverlapTopValue : (data.parentIndex * data.rowHeight)) + this.getTaskbarMidpoint(data.milestoneParent)) + +((data.isManualParent && data.isManualChild) ? -10 : 0);
12402
+ this.y1 = (this.parent.enableVirtualization ? rowPositionHeight : ((!this.parent.allowTaskbarOverlap ? parentOverlapTopValue : (data.parentIndex * data.rowHeight)) + addTop + this.getTaskbarMidpoint(isMilestoneParent) - (this.lineStroke - 1)));
12353
12403
  this.y2 = this.y1 + this.point1;
12354
- this.manualParent = (data.isManualParent && !data.isManualChild ? -10 : 0);
12355
- this.manualChild = (data.isManualChild && !data.isManualParent ? -10 : 0);
12356
- 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 +
12404
+ this.connectorLinePath = "M " + (this.x1 + this.x2) + " " + (this.y1) + " L " + this.x1 + " " + (this.y1) + " L " + this.x1 + " " + this.y2 +
12357
12405
  " L " + (this.x1 + 12) + " " + this.y2;
12358
- this.arrowPath = "M " + (this.x1 + 20) + " " + (this.y2 + this.manualChild) +
12359
- " L " + (this.x1 + 12) + " " + (this.y2 - (4 + this.lineStroke) + this.manualChild) +
12360
- " L " + (this.x1 + 12) + " " + (this.y2 + 4 + this.lineStroke + this.manualChild) + " Z";
12406
+ this.arrowPath = "M " + (this.x1 + 20) + " " + (this.y2) +
12407
+ " L " + (this.x1 + 12) + " " + (this.y2 - (4 + this.lineStroke)) +
12408
+ " L " + (this.x1 + 12) + " " + (this.y2 + 4 + this.lineStroke) + " Z";
12361
12409
  }
12362
12410
  if (this.getParentPosition(data) === 'FFType1') {
12363
12411
  this.taskLineValue = this.parent.renderBaseline ? this.taskLineValue : (data.milestoneChild ? 1 : 0);
@@ -12365,30 +12413,26 @@ class ConnectorLine {
12365
12413
  this.x2 = data.parentEndPoint + (data.milestoneParent ? -1 : 0);
12366
12414
  this.x3 = data.milestoneParent ? 22 : 21;
12367
12415
  this.x4 = data.milestoneChild ? 4 : 8;
12368
- this.y1 = this.parent.enableVirtualization ? rowPositionHeight : ((!this.parent.allowTaskbarOverlap ? parentOverlapTopValue : (data.parentIndex * data.rowHeight)) + this.getTaskbarMidpoint(data.milestoneParent)) + ((data.isManualParent && data.isManualChild) ? -10 : 0);
12369
- this.y2 = heightValue + this.taskLineValue;
12370
- this.manualParent = (data.isManualParent && !data.isManualChild ? -10 : 0);
12371
- this.manualChild = (data.isManualChild && !data.isManualParent ? -10 : 0);
12372
- 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) +
12416
+ this.y1 = (this.parent.enableVirtualization ? rowPositionHeight : ((!this.parent.allowTaskbarOverlap ? parentOverlapTopValue : (data.parentIndex * data.rowHeight)) + addTop + this.getTaskbarMidpoint(isMilestoneParent) - (this.lineStroke - 1)));
12417
+ this.y2 = heightValue + this.taskLineValue + borderTopWidth - this.lineStroke;
12418
+ this.connectorLinePath = "M " + this.x2 + " " + (this.y1) + " L " + (this.x2 + this.x3) + " " + (this.y1) + " L " + (this.x2 + this.x3) + " " + (this.y1 + this.y2) +
12373
12419
  " L " + (this.x1 + this.x4) + " " + (this.y1 + this.y2);
12374
- this.arrowPath = "M " + this.x1 + " " + (this.y1 + this.y2 + this.manualChild) +
12375
- " L " + (this.x1 + 8) + " " + (this.y1 + this.y2 - (4 + this.lineStroke) + this.manualChild) +
12376
- " L " + (this.x1 + 8) + " " + (this.y1 + this.y2 + 4 + this.lineStroke + this.manualChild) + " Z";
12420
+ this.arrowPath = "M " + this.x1 + " " + (this.y1 + this.y2) +
12421
+ " L " + (this.x1 + 8) + " " + (this.y1 + this.y2 - (4 + this.lineStroke)) +
12422
+ " L " + (this.x1 + 8) + " " + (this.y1 + this.y2 + 4 + this.lineStroke) + " Z";
12377
12423
  }
12378
12424
  if (this.getParentPosition(data) === 'FFType2') {
12379
12425
  this.taskLineValue = this.parent.renderBaseline ? this.taskLineValue : (data.milestoneChild ? 1 : 0);
12380
12426
  this.x1 = data.parentEndPoint;
12381
12427
  this.x2 = data.childEndPoint + (data.milestoneParent ? 22 : 21);
12382
12428
  this.x3 = data.childEndPoint + (data.milestoneChild ? 9 : 8);
12383
- this.y1 = this.parent.enableVirtualization ? rowPositionHeight : ((!this.parent.allowTaskbarOverlap ? parentOverlapTopValue : (data.parentIndex * data.rowHeight)) + this.getTaskbarMidpoint(data.milestoneParent)) + ((data.isManualParent && data.isManualChild) ? -10 : 0);
12384
- this.y2 = heightValue + this.taskLineValue;
12385
- this.manualParent = (data.isManualParent && !data.isManualChild ? -10 : 0);
12386
- this.manualChild = (data.isManualChild && !data.isManualParent ? -10 : 0);
12387
- 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) +
12429
+ this.y1 = (this.parent.enableVirtualization ? rowPositionHeight : ((!this.parent.allowTaskbarOverlap ? parentOverlapTopValue : (data.parentIndex * data.rowHeight)) + addTop + this.getTaskbarMidpoint(data.milestoneParent) - (this.lineStroke - 1)));
12430
+ this.y2 = heightValue + this.taskLineValue + borderTopWidth - this.lineStroke;
12431
+ this.connectorLinePath = "M " + this.x1 + " " + (this.y1) + " L " + this.x2 + " " + (this.y1) + " L " + this.x2 + " " + (this.y1 + this.y2) +
12388
12432
  " L " + this.x3 + " " + (this.y1 + this.y2);
12389
- this.arrowPath = "M " + (this.x3 - 8) + " " + (this.y1 + this.y2 + this.manualChild) +
12390
- " L " + this.x3 + " " + (this.y1 + this.y2 - (4 + this.lineStroke) + this.manualChild) +
12391
- " L " + this.x3 + " " + (this.y1 + this.y2 + 4 + this.lineStroke + this.manualChild) + " Z";
12433
+ this.arrowPath = "M " + (this.x3 - 8) + " " + (this.y1 + this.y2) +
12434
+ " L " + this.x3 + " " + (this.y1 + this.y2 - (4 + this.lineStroke)) +
12435
+ " L " + this.x3 + " " + (this.y1 + this.y2 + 4 + this.lineStroke) + " Z";
12392
12436
  }
12393
12437
  if (this.getParentPosition(data) === 'FFType3') {
12394
12438
  this.taskLineValue = this.parent.renderBaseline ? this.taskLineValue : 0;
@@ -12396,98 +12440,86 @@ class ConnectorLine {
12396
12440
  this.x2 = this.x1 + (data.milestoneChild ? 4 : 8);
12397
12441
  this.x3 = data.parentEndPoint - data.childEndPoint + (data.milestoneChild ? 16 : 10);
12398
12442
  this.x4 = data.parentEndPoint + (data.milestoneParent ? -1 : 0);
12399
- this.y1 = this.parent.enableVirtualization ? rowPositionHeight : ((!this.parent.allowTaskbarOverlap ? parentOverlapTopValue : (data.childIndex * data.rowHeight)) + this.getTaskbarMidpoint(data.milestoneChild)) + ((data.isManualParent && data.isManualChild) ? -10 : 0);
12400
- this.y2 = heightValue + this.taskLineValue + (this.parent.renderBaseline ? (data.milestoneParent ? 10 : 0) : 0);
12401
- this.manualParent = (data.isManualParent && !data.isManualChild ? -10 : 0);
12402
- this.manualChild = (data.isManualChild && !data.isManualParent ? -10 : 0);
12403
- 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) +
12443
+ this.y1 = (this.parent.enableVirtualization ? rowPositionHeight : ((!this.parent.allowTaskbarOverlap ? childOverlapTopValue : (data.childIndex * data.rowHeight)) + addTop + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1)));
12444
+ this.y2 = heightValue + this.taskLineValue + borderTopWidth - this.lineStroke + (this.parent.renderBaseline ? (data.milestoneParent && !(data.milestoneChild) ? 10 : data.milestoneChild && !(data.milestoneParent) ? -11 : 0) : 0);
12445
+ this.connectorLinePath = "M " + this.x2 + " " + (this.y1) + " L " + (this.x2 + this.x3) + " " + (this.y1) + " L " + (this.x2 + this.x3) + " " + (this.y1 + this.y2) +
12404
12446
  " L " + this.x4 + " " + (this.y1 + this.y2);
12405
- this.arrowPath = "M " + this.x1 + " " + (this.y1 + this.manualChild) +
12406
- " L " + (this.x1 + 8) + " " + (this.y1 - (4 + this.lineStroke) + this.manualChild) +
12407
- " L " + (this.x1 + 8) + " " + (this.y1 + 4 + this.lineStroke + this.manualChild) + " Z";
12447
+ this.arrowPath = "M " + this.x1 + " " + (this.y1) +
12448
+ " L " + (this.x1 + 8) + " " + (this.y1 - (4 + this.lineStroke)) +
12449
+ " L " + (this.x1 + 8) + " " + (this.y1 + 4 + this.lineStroke) + " Z";
12408
12450
  }
12409
12451
  if (this.getParentPosition(data) === 'FFType4') {
12410
12452
  this.taskLineValue = this.parent.renderBaseline ? this.taskLineValue : 0;
12411
12453
  this.x1 = data.parentEndPoint;
12412
12454
  this.x2 = data.childEndPoint + (data.milestoneChild ? 7 : 8);
12413
12455
  this.x3 = this.x2 + (data.milestoneChild ? 12 : 11);
12414
- this.y1 = this.parent.enableVirtualization ? rowPositionHeight : ((!this.parent.allowTaskbarOverlap ? parentOverlapTopValue : (data.childIndex * data.rowHeight)) + this.getTaskbarMidpoint(data.milestoneChild)) + ((data.isManualParent && data.isManualChild) ? -10 : 0);
12415
- this.y2 = heightValue + this.taskLineValue + +(this.parent.renderBaseline ? (data.milestoneParent ? 10 : 0) : 0);
12416
- this.manualParent = (data.isManualParent && !data.isManualChild ? -10 : 0);
12417
- this.manualChild = (data.isManualChild && !data.isManualParent ? -10 : 0);
12418
- 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) +
12456
+ this.y1 = (this.parent.enableVirtualization ? rowPositionHeight : ((!this.parent.allowTaskbarOverlap ? childOverlapTopValue : (data.childIndex * data.rowHeight)) + addTop + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1)));
12457
+ this.y2 = heightValue + this.taskLineValue + borderTopWidth + (this.parent.renderBaseline ? (data.milestoneParent && !(data.milestoneChild) ? 10 : data.milestoneChild && !(data.milestoneParent) ? -12 : 0) : 0) - this.lineStroke + 1;
12458
+ this.connectorLinePath = "M " + this.x2 + " " + (this.y1) + " L " + this.x3 + " " + (this.y1) + " L " + this.x3 + " " + (this.y1 + this.y2) +
12419
12459
  " L " + this.x1 + " " + (this.y1 + this.y2);
12420
- this.arrowPath = "M " + (this.x2 - 8) + " " + (this.y1 + this.manualChild) +
12421
- " L " + this.x2 + " " + (this.y1 - (4 + this.lineStroke) + this.manualChild) +
12422
- " L " + this.x2 + " " + (this.y1 + 4 + this.lineStroke + this.manualChild) + " Z";
12460
+ this.arrowPath = "M " + (this.x2 - 8) + " " + (this.y1) +
12461
+ " L " + this.x2 + " " + (this.y1 - (4 + this.lineStroke)) +
12462
+ " L " + this.x2 + " " + (this.y1 + 4 + this.lineStroke) + " Z";
12423
12463
  }
12424
12464
  if (this.getParentPosition(data) === 'SFType4') {
12425
12465
  this.taskLineValue = this.parent.renderBaseline ? this.taskLineValue : (data.milestoneChild ? -1 : 0);
12426
- this.point1 = heightValue - this.getconnectorLineGap(data) + this.taskLineValue;
12427
- this.point2 = this.parent.enableVirtualization ? rowPositionHeight : ((!this.parent.allowTaskbarOverlap ? parentOverlapTopValue : (data.childIndex * data.rowHeight)) + this.getTaskbarMidpoint(data.milestoneChild));
12466
+ this.point1 = (this.taskLineValue + heightValue + borderTopWidth - this.getconnectorLineGap(data) - (this.lineStroke - 1));
12467
+ this.point2 = (this.parent.enableVirtualization ? rowPositionHeight : ((!this.parent.allowTaskbarOverlap ? childOverlapTopValue : (data.childIndex * data.rowHeight)) + addTop + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1) - isMilestoneValue));
12428
12468
  this.x1 = data.parentLeft - 10;
12429
12469
  this.x2 = this.x1 + ((data.childEndPoint - data.parentLeft) + 18);
12430
12470
  this.x3 = this.x2 + (data.milestoneChild ? 16 : 11);
12431
- this.y1 = this.point2 + (data.milestoneChild ? 1 : 0) + ((data.isManualParent && data.isManualChild) ? -10 : 0);
12432
- this.y2 = this.y1 + this.point1 + (this.parent.renderBaseline ? (data.milestoneChild ? -11 : 0) : 0);
12433
- this.y3 = this.getconnectorLineGap(data) + (this.parent.renderBaseline ? (data.milestoneParent ? 10 : 0) : 0);
12471
+ this.y1 = this.point2 + (data.milestoneChild ? 2 : 0) + (this.parent.renderBaseline ? (data.milestoneParent ? -5 : 0) : 0);
12472
+ this.y2 = this.y1 + this.point1 + (this.parent.renderBaseline ? (data.milestoneChild && !(data.milestoneParent) ? -9 : data.milestoneParent && !(data.milestoneChild) ? 9 : 0) : 0);
12473
+ this.y3 = this.getconnectorLineGap(data);
12434
12474
  this.y4 = this.y2 - (this.y2 % data.rowHeight);
12435
- this.manualParent = (data.isManualParent && !data.isManualChild ? -10 : 0);
12436
- this.manualChild = (data.isManualChild && !data.isManualParent ? -10 : 0);
12437
- 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 +
12475
+ this.connectorLinePath = "M " + this.x2 + " " + (this.y1) + " L " + this.x3 + " " + (this.y1) + " L " + this.x3 + " " + this.y4 + " L " + this.x1 + " " + this.y4 +
12438
12476
  " L " + this.x1 + " " + (this.y2 + this.y3) + " L " + (this.x1 + 11) + " " + (this.y2 + this.y3);
12439
- this.arrowPath = "M " + (this.x2 - 8) + " " + (this.y1 + this.manualChild) +
12440
- " L " + this.x2 + " " + (this.y1 - (4 + this.lineStroke) + this.manualChild) +
12441
- " L " + this.x2 + " " + (this.y1 + 4 + this.lineStroke + this.manualChild) + " Z";
12477
+ this.arrowPath = "M " + (this.x2 - 8) + " " + (this.y1) +
12478
+ " L " + this.x2 + " " + (this.y1 - (4 + this.lineStroke)) +
12479
+ " L " + this.x2 + " " + (this.y1 + 4 + this.lineStroke) + " Z";
12442
12480
  }
12443
12481
  if (this.getParentPosition(data) === 'SFType3') {
12444
12482
  this.taskLineValue = this.parent.renderBaseline ? this.taskLineValue : 0;
12445
- this.point1 = (data.parentLeft - (data.childEndPoint + (data.milestoneParent ? 25 : 20))) + 1 + (this.parent.renderBaseline ? (data.milestoneParent ? 5 : 0) : 0);
12446
- this.point2 = this.parent.enableVirtualization ? rowPositionHeight : ((!this.parent.allowTaskbarOverlap ? parentOverlapTopValue : (data.childIndex * data.rowHeight)) + this.getTaskbarMidpoint(data.milestoneChild));
12483
+ this.point1 = (data.parentLeft - (data.childEndPoint + (data.milestoneParent ? 23 : 20))) + 1;
12484
+ this.point2 = (this.parent.enableVirtualization ? rowPositionHeight : ((!this.parent.allowTaskbarOverlap ? childOverlapTopValue : (data.childIndex * data.rowHeight)) + addTop + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1)));
12447
12485
  this.x1 = data.childEndPoint;
12448
12486
  this.x2 = this.x1 + (data.milestoneChild ? 9 : 8);
12449
12487
  this.x3 = this.x2 + (data.milestoneChild ? 17 : 11);
12450
- this.y1 = this.point2 + ((data.isManualParent && data.isManualChild) ? -10 : 0);
12451
- this.y2 = this.y1 + heightValue + this.taskLineValue + (this.parent.renderBaseline ? (data.milestoneParent ? 10 : 0) : 0);
12452
- this.manualParent = (data.isManualParent && !data.isManualChild ? -10 : 0);
12453
- this.manualChild = (data.isManualChild && !data.isManualParent ? -10 : 0);
12454
- this.connectorLinePath = "M " + this.x2 + " " + (this.y1 + this.manualParent + this.manualChild) + " L " + this.x3 + " " + (this.y1 + this.manualParent + this.manualChild) +
12488
+ this.y1 = this.point2;
12489
+ 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);
12490
+ this.connectorLinePath = "M " + this.x2 + " " + (this.y1) + " L " + this.x3 + " " + (this.y1) +
12455
12491
  " L " + this.x3 + " " + this.y2 + " L " + (this.x3 + this.point1) + " " + this.y2;
12456
- this.arrowPath = "M " + (this.x2 - 8) + " " + (this.y1 + this.manualChild) +
12457
- " L " + this.x2 + " " + (this.y1 - (4 + this.lineStroke) + this.manualChild) +
12458
- " L " + this.x2 + " " + (this.y1 + 4 + this.lineStroke + this.manualChild) + " Z";
12492
+ this.arrowPath = "M " + (this.x2 - 8) + " " + (this.y1) +
12493
+ " L " + this.x2 + " " + (this.y1 - (4 + this.lineStroke)) +
12494
+ " L " + this.x2 + " " + (this.y1 + 4 + this.lineStroke) + " Z";
12459
12495
  }
12460
12496
  if (this.getParentPosition(data) === 'SFType1') {
12461
12497
  this.taskLineValue = this.parent.renderBaseline ? this.taskLineValue : data.milestoneChild ? 1 : 0;
12462
- this.point1 = heightValue - this.getconnectorLineGap(data) + this.taskLineValue;
12498
+ this.point1 = heightValue + borderTopWidth - this.getconnectorLineGap(data) + this.taskLineValue - this.lineStroke;
12463
12499
  this.point2 = this.getconnectorLineGap(data);
12464
12500
  this.x1 = data.parentLeft - 10;
12465
- this.y1 = this.parent.enableVirtualization ? rowPositionHeight : ((!this.parent.allowTaskbarOverlap ? parentOverlapTopValue : (data.parentIndex * data.rowHeight)) + this.getTaskbarMidpoint(data.milestoneParent)) + +((data.isManualParent && data.isManualChild) ? -10 : 0);
12501
+ this.y1 = (this.parent.enableVirtualization ? rowPositionHeight : ((!this.parent.allowTaskbarOverlap ? parentOverlapTopValue : (data.parentIndex * data.rowHeight)) + addTop + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1) - isMilestoneValue));
12466
12502
  this.x2 = (data.childEndPoint - data.parentLeft) + 31;
12467
12503
  this.y2 = this.y1 + this.point1;
12468
12504
  this.x3 = (data.childEndPoint - data.parentLeft) + 18;
12469
12505
  this.y3 = this.y2 - (this.y2 % data.rowHeight);
12470
- this.manualParent = (data.isManualParent && !data.isManualChild ? -10 : 0);
12471
- this.manualChild = (data.isManualChild && !data.isManualParent ? -10 : 0);
12472
- 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 +
12506
+ this.connectorLinePath = "M " + (this.x1 + 11) + " " + (this.y1) + " L " + this.x1 + " " + (this.y1) + " L " + this.x1 + " " + this.y3 +
12473
12507
  " 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);
12474
- this.arrowPath = "M " + (this.x1 + this.x3 - 8) + " " + (this.y2 + this.point2 + this.manualChild) +
12475
- " L " + (this.x1 + this.x3) + " " + (this.y2 + this.point2 - (4 + this.lineStroke) + this.manualChild) +
12476
- " L " + (this.x1 + this.x3) + " " + (this.y2 + this.point2 + 4 + this.lineStroke + this.manualChild) + " Z";
12508
+ this.arrowPath = "M " + (this.x1 + this.x3 - 8) + " " + (this.y2 + this.point2) +
12509
+ " L " + (this.x1 + this.x3) + " " + (this.y2 + this.point2 - (4 + this.lineStroke)) +
12510
+ " L " + (this.x1 + this.x3) + " " + (this.y2 + this.point2 + 4 + this.lineStroke) + " Z";
12477
12511
  }
12478
12512
  if (this.getParentPosition(data) === 'SFType2') {
12479
12513
  this.taskLineValue = this.parent.renderBaseline ? this.taskLineValue : 0;
12480
12514
  this.x1 = data.childEndPoint;
12481
- this.y1 = this.parent.enableVirtualization ? rowPositionHeight : ((!this.parent.allowTaskbarOverlap ? parentOverlapTopValue : (data.parentIndex * data.rowHeight)) + this.getTaskbarMidpoint(data.milestoneParent)) + +((data.isManualParent && data.isManualChild) ? -10 : 0);
12515
+ this.y1 = (this.parent.enableVirtualization ? rowPositionHeight : ((!this.parent.allowTaskbarOverlap ? parentOverlapTopValue : (data.parentIndex * data.rowHeight)) + addTop + this.getTaskbarMidpoint(isMilestoneParent) - (this.lineStroke - 1)));
12482
12516
  this.x2 = (data.parentLeft - data.childEndPoint);
12483
- this.y2 = this.y1 + heightValue + this.taskLineValue;
12484
- this.manualParent = (data.isManualParent && !data.isManualChild ? -10 : 0);
12485
- this.manualChild = (data.isManualChild && !data.isManualParent ? -10 : 0);
12486
- 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) +
12517
+ this.y2 = this.y1 + heightValue + this.taskLineValue + borderTopWidth - this.lineStroke;
12518
+ this.connectorLinePath = "M " + (this.x1 + this.x2 + 1) + " " + (this.y1) + " L " + (this.x1 + this.x2 - 10) + " " + (this.y1) +
12487
12519
  " L " + (this.x1 + this.x2 - 10) + " " + this.y2 + " L " + (this.x1 + 8) + " " + this.y2;
12488
- this.arrowPath = "M " + this.x1 + " " + (this.y2 + this.manualChild) +
12489
- " L " + (this.x1 + 8) + " " + (this.y2 - (4 + this.lineStroke) + this.manualChild) +
12490
- " L " + (this.x1 + 8) + " " + (this.y2 + 4 + this.lineStroke + this.manualChild) + " Z";
12520
+ this.arrowPath = "M " + this.x1 + " " + (this.y2) +
12521
+ " L " + (this.x1 + 8) + " " + (this.y2 - (4 + this.lineStroke)) +
12522
+ " L " + (this.x1 + 8) + " " + (this.y2 + 4 + this.lineStroke) + " Z";
12491
12523
  }
12492
12524
  this.connectorPath.setAttribute("d", this.connectorLinePath);
12493
12525
  this.arrowlinePath.setAttribute("d", this.arrowPath);
@@ -13024,35 +13056,34 @@ class Tooltip$1 {
13024
13056
  */
13025
13057
  updateTooltipPosition(args) {
13026
13058
  args.element.style.visibility = 'visible';
13027
- if (isNullOrUndefined(this.tooltipMouseEvent) || args.target.classList.contains('e-notes-info')) {
13028
- return;
13029
- }
13030
- const postion = this.getPointorPosition(this.tooltipMouseEvent);
13031
- const containerPosition = this.parent.getOffsetRect(this.parent.chartPane);
13032
- const topEnd = containerPosition.top + this.parent.chartPane.offsetHeight;
13033
- const leftEnd = containerPosition.left + this.parent.chartPane.offsetWidth;
13034
- let tooltipPositionX = postion.x;
13035
- let tooltipPositionY = postion.y;
13036
- if (leftEnd < (tooltipPositionX + args.element.offsetWidth + 10)) {
13037
- while (leftEnd < (tooltipPositionX + args.element.offsetWidth + 10)) {
13038
- tooltipPositionX = leftEnd - args.element.offsetWidth - 10;
13039
- args.element.style.left = tooltipPositionX + 'px';
13040
- }
13041
- }
13042
- else {
13043
- tooltipPositionX = tooltipPositionX + 10;
13044
- args.element.style.left = tooltipPositionX + 'px';
13045
- }
13046
- if (window.innerHeight < args.element.offsetHeight + tooltipPositionY) {
13047
- tooltipPositionY = tooltipPositionY - args.element.offsetHeight - 10;
13048
- }
13049
- if ((topEnd < (tooltipPositionY + args.element.offsetHeight + 20))) {
13050
- tooltipPositionY = tooltipPositionY - args.element.offsetHeight - 10;
13051
- }
13052
- else {
13053
- tooltipPositionY = tooltipPositionY + 10;
13054
- }
13055
- args.element.style.top = tooltipPositionY + 'px';
13059
+ // if (isNullOrUndefined(this.tooltipMouseEvent) || args.target.classList.contains('e-notes-info')) {
13060
+ // return;
13061
+ // }
13062
+ // const postion: { x: number, y: number } = this.getPointorPosition(this.tooltipMouseEvent);
13063
+ // const containerPosition: { top: number, left: number, width?: number, height?: number } =
13064
+ // this.parent.getOffsetRect(this.parent.chartPane);
13065
+ // const topEnd: number = containerPosition.top + this.parent.chartPane.offsetHeight;
13066
+ // const leftEnd: number = containerPosition.left + this.parent.chartPane.offsetWidth;
13067
+ // let tooltipPositionX: number = postion.x;
13068
+ // let tooltipPositionY: number = postion.y;
13069
+ // if (leftEnd < (tooltipPositionX + args.element.offsetWidth + 10)) {
13070
+ // while (leftEnd < (tooltipPositionX + args.element.offsetWidth + 10)) {
13071
+ // tooltipPositionX = leftEnd - args.element.offsetWidth - 10;
13072
+ // args.element.style.left = tooltipPositionX + 'px';
13073
+ // }
13074
+ // } else {
13075
+ // tooltipPositionX = tooltipPositionX + 10;
13076
+ // args.element.style.left = tooltipPositionX + 'px';
13077
+ // }
13078
+ // if (window.innerHeight < args.element.offsetHeight + tooltipPositionY) {
13079
+ // tooltipPositionY = tooltipPositionY - args.element.offsetHeight - 10;
13080
+ // }
13081
+ // if ((topEnd < (tooltipPositionY + args.element.offsetHeight + 20))) {
13082
+ // tooltipPositionY = tooltipPositionY - args.element.offsetHeight - 10;
13083
+ // } else {
13084
+ // tooltipPositionY = tooltipPositionY + 10;
13085
+ // }
13086
+ // args.element.style.top = tooltipPositionY + 'px';
13056
13087
  }
13057
13088
  /**
13058
13089
  * Method to get mouse pointor position
@@ -14472,6 +14503,13 @@ let Gantt = class Gantt extends Component {
14472
14503
  if (this.enableCriticalPath && criticalModule && criticalModule.criticalPathCollection) {
14473
14504
  this.criticalPathModule.criticalConnectorLine(criticalModule.criticalPathCollection, criticalModule.detailPredecessorCollection, true, criticalModule.predecessorCollectionTaskIds);
14474
14505
  }
14506
+ this.calculateDimensions();
14507
+ const pane1 = this.splitterModule.splitterObject.element.querySelectorAll('.e-pane')[0];
14508
+ const pane2 = this.splitterModule.splitterObject.element.querySelectorAll('.e-pane')[1];
14509
+ this.splitterModule.splitterPreviousPositionGrid = pane1.scrollWidth + 1 + 'px';
14510
+ this.splitterModule.splitterPreviousPositionChart = pane2.scrollWidth + 1 + 'px';
14511
+ this.splitterModule.splitterObject.paneSettings[0].size = this.splitterModule['getSpliterPositionInPercentage'](this.splitterModule.splitterPreviousPositionGrid);
14512
+ this.splitterModule.splitterObject.paneSettings[1].size = this.splitterModule.splitterPreviousPositionChart;
14475
14513
  }
14476
14514
  }
14477
14515
  keyActionHandler(e) {
@@ -18055,13 +18093,13 @@ class EditTooltip {
18055
18093
  * @returns {void} .
18056
18094
  */
18057
18095
  updateTooltipPosition(args) {
18058
- const containerPosition = this.parent.getOffsetRect(this.parent.chartPane);
18059
- const leftEnd = containerPosition.left + this.parent.chartPane.offsetWidth;
18060
- let tooltipPositionX = args.element.offsetLeft;
18061
- if (leftEnd < (tooltipPositionX + args.element.offsetWidth)) {
18062
- tooltipPositionX += leftEnd - (tooltipPositionX + args.element.offsetWidth);
18063
- }
18064
- args.element.style.left = tooltipPositionX + 'px';
18096
+ // const containerPosition: { top: number, left: number } = this.parent.getOffsetRect(this.parent.chartPane);
18097
+ // const leftEnd: number = containerPosition.left + this.parent.chartPane.offsetWidth;
18098
+ // let tooltipPositionX: number = args.element.offsetLeft;
18099
+ // if (leftEnd < (tooltipPositionX + args.element.offsetWidth)) {
18100
+ // tooltipPositionX += leftEnd - (tooltipPositionX + args.element.offsetWidth);
18101
+ // }
18102
+ // args.element.style.left = tooltipPositionX + 'px';
18065
18103
  args.element.style.visibility = 'visible';
18066
18104
  }
18067
18105
  /**
@@ -18687,6 +18725,12 @@ class TaskbarEdit extends DateProcessor {
18687
18725
  */
18688
18726
  updateMouseDownProperties(event) {
18689
18727
  const e = this.getCoordinate(event);
18728
+ const parentWithZoomStyle = this.parent.element.closest('[style*="zoom"]');
18729
+ if (parentWithZoomStyle) {
18730
+ const zoom1 = parseFloat(getComputedStyle(parentWithZoomStyle).zoom);
18731
+ e.pageX = e.pageX / zoom1;
18732
+ e.pageY = e.pageY / zoom1;
18733
+ }
18690
18734
  if (e.pageX || e.pageY) {
18691
18735
  const containerPosition = this.parent.getOffsetRect(this.parent.ganttChartModule.chartBodyContainer);
18692
18736
  if (this.parent.enableRtl) {
@@ -18896,6 +18940,12 @@ class TaskbarEdit extends DateProcessor {
18896
18940
  updateMouseMoveProperties(event) {
18897
18941
  const containerPosition = this.parent.getOffsetRect(this.parent.ganttChartModule.chartBodyContainer);
18898
18942
  const e = this.getCoordinate(event);
18943
+ const parentWithZoomStyle = this.parent.element.closest('[style*="zoom"]');
18944
+ if (parentWithZoomStyle) {
18945
+ const zoom1 = parseFloat(getComputedStyle(parentWithZoomStyle).zoom);
18946
+ e.pageX = e.pageX / zoom1;
18947
+ e.pageY = e.pageY / zoom1;
18948
+ }
18899
18949
  if (e.pageX || e.pageY) {
18900
18950
  if (this.parent.enableRtl) {
18901
18951
  this.mouseMoveX = Math.abs(e.pageX - (containerPosition.left +
@@ -19312,7 +19362,16 @@ class TaskbarEdit extends DateProcessor {
19312
19362
  }
19313
19363
  else {
19314
19364
  if (this.mouseMoveX < (item.left + segment.left)) {
19315
- segment.width = this.parent.perDayWidth;
19365
+ var segmentWidth = (this.parent.timelineModule.isSingleTier &&
19366
+ (this.parent.timelineModule.customTimelineSettings.bottomTier.unit === "Hour" ||
19367
+ this.parent.timelineModule.customTimelineSettings.topTier.unit === "Hour" ||
19368
+ this.parent.timelineModule.customTimelineSettings.bottomTier.unit === "Minutes" ||
19369
+ this.parent.timelineModule.customTimelineSettings.topTier.unit === "Minutes")) ||
19370
+ (this.parent.timelineModule.customTimelineSettings.bottomTier.unit === "Hour" ||
19371
+ this.parent.timelineModule.customTimelineSettings.bottomTier.unit === "Minutes") ?
19372
+ this.parent.timelineModule.customTimelineSettings.timelineUnitSize :
19373
+ this.parent.perDayWidth;
19374
+ segment.width = segmentWidth;
19316
19375
  }
19317
19376
  }
19318
19377
  }
@@ -20277,6 +20336,12 @@ class TaskbarEdit extends DateProcessor {
20277
20336
  }
20278
20337
  // eslint-disable-next-line
20279
20338
  triggerDependencyEvent(e, mouseUp) {
20339
+ const parentWithZoomStyle = this.parent.element.closest('[style*="zoom"]');
20340
+ let zoomedPageY;
20341
+ if (parentWithZoomStyle) {
20342
+ const zoom1 = parseFloat(getComputedStyle(parentWithZoomStyle).zoom);
20343
+ zoomedPageY = e.pageY / zoom1;
20344
+ }
20280
20345
  const fromItem = this.taskBarEditRecord.ganttProperties;
20281
20346
  const toItem = this.connectorSecondRecord ? this.connectorSecondRecord.ganttProperties : null;
20282
20347
  let predecessor;
@@ -20338,7 +20403,7 @@ class TaskbarEdit extends DateProcessor {
20338
20403
  table[1].innerText = toItem.taskName;
20339
20404
  table[2].innerText = this.parent.localeObj.getConstant(currentTarget);
20340
20405
  const tooltipElement = this.parent.connectorLineModule.tooltipTable.parentElement.parentElement;
20341
- if (tooltipElement.offsetTop + tooltipElement.offsetHeight > e.pageY) {
20406
+ if (tooltipElement.offsetTop + tooltipElement.offsetHeight > zoomedPageY) {
20342
20407
  tooltipElement.style.top = (e.pageY - tooltipElement.offsetHeight - 20) + 'px';
20343
20408
  }
20344
20409
  }
@@ -26611,7 +26676,7 @@ class Edit$2 {
26611
26676
  /* tslint:disable-next-line */
26612
26677
  const query = this.parent.query instanceof Query ? this.parent.query : new Query();
26613
26678
  const adaptor = data.adaptor;
26614
- if (!(adaptor instanceof WebApiAdaptor && adaptor instanceof ODataAdaptor) || data.dataSource.batchUrl) {
26679
+ if (!(adaptor instanceof WebApiAdaptor && adaptor instanceof ODataAdaptor && adaptor instanceof ODataV4Adaptor) || data.dataSource.batchUrl) {
26615
26680
  /* tslint:disable-next-line */
26616
26681
  const crud = data.saveChanges(updatedData, this.parent.taskFields.id, null, query);
26617
26682
  crud.then((e) => {
@@ -26746,6 +26811,9 @@ class Edit$2 {
26746
26811
  else if (ganttColumns[i].field === 'taskType') {
26747
26812
  tempRecord[fieldName] = this.parent.taskType;
26748
26813
  }
26814
+ else if (ganttColumns[i].field === taskSettingsFields.milestone) {
26815
+ tempRecord[fieldName] = null;
26816
+ }
26749
26817
  else {
26750
26818
  tempRecord[this.parent.ganttColumns[i].field] = '';
26751
26819
  }
@@ -30124,7 +30192,7 @@ class CriticalPath {
30124
30192
  }
30125
30193
  const predecessorLength = flatRecords[index].ganttProperties.predecessor;
30126
30194
  const noSlackValue = 0 + ' ' + flatRecords[index].ganttProperties.durationUnit;
30127
- for (let i = 0; i < predecessorLength.length; i++) {
30195
+ for (let i = predecessorLength.length - 1; i >= 0; i--) {
30128
30196
  let toID;
30129
30197
  if (this.parent.viewType === 'ProjectView') {
30130
30198
  toID = this.parent.ids.indexOf(predecessorLength[i].to);
@@ -30135,8 +30203,19 @@ class CriticalPath {
30135
30203
  let dateDifference;
30136
30204
  const currentData = flatRecords[index].ganttProperties;
30137
30205
  if (predecessorLength[i].type === 'FS') {
30138
- /* eslint-disable-next-line */
30139
- dateDifference = this.parent.dataOperation.getDuration(currentData.endDate, flatRecords[toID].ganttProperties.startDate, currentData.durationUnit, currentData.isAutoSchedule, currentData.isMilestone);
30206
+ if (predecessorLength[i].to != currentData.taskId.toString() || this.parent.viewType === 'ResourceView') {
30207
+ /* eslint-disable-next-line */
30208
+ dateDifference = this.parent.dataOperation.getDuration(currentData.endDate, flatRecords[toID].ganttProperties.startDate, currentData.durationUnit, currentData.isAutoSchedule, currentData.isMilestone);
30209
+ }
30210
+ else {
30211
+ toID = this.parent.ids.indexOf(predecessorLength[i].from);
30212
+ /* eslint-disable-next-line */
30213
+ dateDifference = this.parent.dataOperation.getDuration(flatRecords[toID].ganttProperties.endDate, currentData.startDate, currentData.durationUnit, currentData.isAutoSchedule, currentData.isMilestone);
30214
+ if (dateDifference === 0 && index !== toID && flatRecords[index].slack == noSlackValue) {
30215
+ flatRecords[toID].slack = flatRecords[index].slack;
30216
+ flatRecords[toID].ganttProperties.slack = flatRecords[index].slack;
30217
+ }
30218
+ }
30140
30219
  if (dateDifference === 0 && index !== toID && flatRecords[index].slack !== noSlackValue) {
30141
30220
  flatRecords[index].slack = flatRecords[toID].slack;
30142
30221
  flatRecords[index].ganttProperties.slack = flatRecords[toID].slack;
@@ -30452,7 +30531,13 @@ class ContextMenu$2 {
30452
30531
  }
30453
30532
  break;
30454
30533
  case 'DeleteTask':
30455
- this.parent.editModule.deleteRecord(this.rowData);
30534
+ if ((this.parent.selectionSettings.mode !== 'Cell' && this.parent.selectionModule.selectedRowIndexes.length > 1)
30535
+ || (this.parent.selectionSettings.mode === 'Cell' && this.parent.selectionModule.getSelectedRowCellIndexes().length)) {
30536
+ this.parent.editModule.startDeleteAction();
30537
+ }
30538
+ else {
30539
+ this.parent.editModule.deleteRecord(this.rowData);
30540
+ }
30456
30541
  break;
30457
30542
  case 'ToTask':
30458
30543
  if (!isNullOrUndefined(this.rowData)) {