@syncfusion/ej2-gantt 21.2.10 → 22.1.34

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 (99) hide show
  1. package/.eslintrc.json +1 -0
  2. package/CHANGELOG.md +12 -0
  3. package/dist/ej2-gantt.min.js +2 -2
  4. package/dist/ej2-gantt.umd.min.js +2 -2
  5. package/dist/ej2-gantt.umd.min.js.map +1 -1
  6. package/dist/es6/ej2-gantt.es2015.js +734 -711
  7. package/dist/es6/ej2-gantt.es2015.js.map +1 -1
  8. package/dist/es6/ej2-gantt.es5.js +773 -751
  9. package/dist/es6/ej2-gantt.es5.js.map +1 -1
  10. package/dist/global/ej2-gantt.min.js +2 -2
  11. package/dist/global/ej2-gantt.min.js.map +1 -1
  12. package/dist/global/index.d.ts +1 -1
  13. package/package.json +20 -19
  14. package/src/gantt/actions/connector-line-edit.js +21 -26
  15. package/src/gantt/actions/context-menu.js +2 -2
  16. package/src/gantt/actions/critical-path.js +4 -9
  17. package/src/gantt/actions/day-markers.js +4 -1
  18. package/src/gantt/actions/edit.js +8 -6
  19. package/src/gantt/actions/pdf-export.js +1 -1
  20. package/src/gantt/actions/taskbar-edit.d.ts +6 -0
  21. package/src/gantt/actions/taskbar-edit.js +120 -45
  22. package/src/gantt/base/css-constants.d.ts +5 -10
  23. package/src/gantt/base/css-constants.js +5 -10
  24. package/src/gantt/base/date-processor.js +1 -19
  25. package/src/gantt/base/enum.d.ts +215 -231
  26. package/src/gantt/base/gantt-chart.js +112 -5
  27. package/src/gantt/base/gantt-model.d.ts +6 -3
  28. package/src/gantt/base/gantt.d.ts +7 -3
  29. package/src/gantt/base/gantt.js +17 -13
  30. package/src/gantt/base/interface.d.ts +36 -1
  31. package/src/gantt/base/task-processor.js +14 -15
  32. package/src/gantt/base/tree-grid.js +1 -1
  33. package/src/gantt/export/export-helper.js +1 -0
  34. package/src/gantt/export/pdf-connector-line.d.ts +4 -4
  35. package/src/gantt/export/pdf-connector-line.js +11 -22
  36. package/src/gantt/export/pdf-gantt.d.ts +1 -2
  37. package/src/gantt/export/pdf-gantt.js +4 -4
  38. package/src/gantt/models/column.d.ts +8 -4
  39. package/src/gantt/models/edit-settings-model.d.ts +1 -0
  40. package/src/gantt/models/edit-settings.d.ts +1 -0
  41. package/src/gantt/models/filter-settings-model.d.ts +3 -0
  42. package/src/gantt/models/filter-settings.d.ts +3 -0
  43. package/src/gantt/models/search-settings-model.d.ts +1 -0
  44. package/src/gantt/models/search-settings.d.ts +1 -0
  45. package/src/gantt/models/sort-settings-model.d.ts +1 -0
  46. package/src/gantt/models/sort-settings.d.ts +1 -0
  47. package/src/gantt/models/tooltip-settings-model.d.ts +8 -4
  48. package/src/gantt/models/tooltip-settings.d.ts +8 -4
  49. package/src/gantt/renderer/chart-rows.d.ts +1 -1
  50. package/src/gantt/renderer/chart-rows.js +27 -65
  51. package/src/gantt/renderer/connector-line.d.ts +23 -0
  52. package/src/gantt/renderer/connector-line.js +287 -384
  53. package/src/gantt/renderer/edit-tooltip.js +4 -4
  54. package/src/gantt/renderer/nonworking-day.js +2 -2
  55. package/src/gantt/renderer/tooltip.d.ts +3 -3
  56. package/src/gantt/renderer/tooltip.js +103 -76
  57. package/styles/bootstrap-dark.css +27 -47
  58. package/styles/bootstrap.css +29 -49
  59. package/styles/bootstrap4.css +29 -49
  60. package/styles/bootstrap5-dark.css +27 -47
  61. package/styles/bootstrap5.css +27 -47
  62. package/styles/fabric-dark.css +27 -47
  63. package/styles/fabric.css +27 -47
  64. package/styles/fluent-dark.css +28 -47
  65. package/styles/fluent.css +28 -47
  66. package/styles/gantt/_layout.scss +53 -7
  67. package/styles/gantt/_material3-dark-definition.scss +1 -0
  68. package/styles/gantt/_material3-definition.scss +220 -0
  69. package/styles/gantt/_theme.scss +53 -53
  70. package/styles/gantt/bootstrap-dark.css +27 -47
  71. package/styles/gantt/bootstrap.css +29 -49
  72. package/styles/gantt/bootstrap4.css +29 -49
  73. package/styles/gantt/bootstrap5-dark.css +27 -47
  74. package/styles/gantt/bootstrap5.css +27 -47
  75. package/styles/gantt/fabric-dark.css +27 -47
  76. package/styles/gantt/fabric.css +27 -47
  77. package/styles/gantt/fluent-dark.css +28 -47
  78. package/styles/gantt/fluent.css +28 -47
  79. package/styles/gantt/highcontrast-light.css +27 -47
  80. package/styles/gantt/highcontrast.css +27 -47
  81. package/styles/gantt/icons/_material3-dark.scss +1 -0
  82. package/styles/gantt/material-dark.css +27 -47
  83. package/styles/gantt/material.css +27 -47
  84. package/styles/gantt/material3-dark.css +2184 -0
  85. package/styles/gantt/material3-dark.scss +23 -0
  86. package/styles/gantt/material3.css +2240 -0
  87. package/styles/gantt/material3.scss +23 -0
  88. package/styles/gantt/tailwind-dark.css +27 -47
  89. package/styles/gantt/tailwind.css +27 -47
  90. package/styles/highcontrast-light.css +27 -47
  91. package/styles/highcontrast.css +27 -47
  92. package/styles/material-dark.css +27 -47
  93. package/styles/material.css +27 -47
  94. package/styles/material3-dark.css +2184 -0
  95. package/styles/material3-dark.scss +3 -0
  96. package/styles/material3.css +2240 -0
  97. package/styles/material3.scss +3 -0
  98. package/styles/tailwind-dark.css +27 -47
  99. package/styles/tailwind.css +27 -47
@@ -1,16 +1,34 @@
1
1
  import { createElement, isNullOrUndefined, isObject, remove } from '@syncfusion/ej2-base';
2
2
  import * as cls from '../base/css-constants';
3
3
  import { isScheduledTask } from '../base/utils';
4
+ import { SvgRenderer } from '@syncfusion/ej2-svg-base';
4
5
  /**
5
6
  * To render the connector line in Gantt
6
7
  */
7
8
  var ConnectorLine = /** @class */ (function () {
8
9
  function ConnectorLine(ganttObj) {
10
+ this.transform = '';
11
+ this.connectorLinePath = '';
12
+ this.arrowPath = '';
9
13
  this.expandedRecords = [];
10
14
  this.parent = ganttObj;
11
15
  this.dependencyViewContainer =
12
- createElement('div', { className: cls.dependencyViewContainer });
16
+ createElement('div', { className: cls.dependencyViewContainer,
17
+ });
18
+ Object.assign(this.dependencyViewContainer.style, {
19
+ width: "100%",
20
+ height: "100%",
21
+ zIndex: 2,
22
+ position: "absolute",
23
+ pointerEvents: "none"
24
+ });
25
+ this.renderer = new SvgRenderer(this.parent.element.id);
13
26
  this.initPublicProp();
27
+ this.svgObject = this.renderer.createSvg({
28
+ id: this.parent.element.id + '_svg'
29
+ });
30
+ this.svgObject.setAttribute('height', '100%');
31
+ this.svgObject.setAttribute('width', '100%');
14
32
  }
15
33
  /**
16
34
  * To get connector line gap.
@@ -39,7 +57,7 @@ var ConnectorLine = /** @class */ (function () {
39
57
  };
40
58
  ConnectorLine.prototype.getTaskbarMidpoint = function (isMilestone) {
41
59
  return Math.floor(isMilestone ?
42
- (this.parent.chartRowsModule.milestoneMarginTop + (this.parent.chartRowsModule.milestoneHeight / 2)) :
60
+ (this.parent.chartRowsModule.milestoneMarginTop + (this.parent.chartRowsModule.milestoneHeight / 2)) + 1 :
43
61
  (this.parent.chartRowsModule.taskBarMarginTop + (this.parent.chartRowsModule.taskBarHeight / 2))) + 1;
44
62
  };
45
63
  /**
@@ -88,6 +106,10 @@ var ConnectorLine = /** @class */ (function () {
88
106
  connectorObj.connectorLineId = 'parent' + parentId + 'child' + childId;
89
107
  connectorObj.milestoneParent = parentGanttRecord.isMilestone ? true : false;
90
108
  connectorObj.milestoneChild = childGanttRecord.isMilestone ? true : false;
109
+ connectorObj.isManualParent = (!(this.parent.flatData[parentIndex].ganttProperties.isAutoSchedule) && this.parent.flatData[parentIndex].hasChildRecords);
110
+ connectorObj.isManualChild = (!(this.parent.flatData[childIndex].ganttProperties.isAutoSchedule) && this.parent.flatData[childIndex].hasChildRecords);
111
+ connectorObj.parentEndPoint = connectorObj.parentLeft + connectorObj.parentWidth;
112
+ connectorObj.childEndPoint = connectorObj.childLeft + connectorObj.childWidth;
91
113
  if (isNullOrUndefined(isScheduledTask(parentGanttRecord)) || isNullOrUndefined(isScheduledTask(childGanttRecord))) {
92
114
  return null;
93
115
  }
@@ -110,8 +132,8 @@ var ConnectorLine = /** @class */ (function () {
110
132
  connectorLine = connectorLine + this.getConnectorLineTemplate(connectorLinesCollection[index]);
111
133
  ariaConnector.push(connectorLinesCollection[index]);
112
134
  }
113
- this.dependencyViewContainer.innerHTML = connectorLine;
114
- var childNodes = this.parent.connectorLineModule.dependencyViewContainer.childNodes;
135
+ this.svgObject.innerHTML = connectorLine;
136
+ var childNodes = this.parent.connectorLineModule.svgObject.childNodes;
115
137
  for (var i = 0; i < childNodes.length; i++) {
116
138
  var innerChild = childNodes[i].childNodes;
117
139
  for (var j = 0; j < innerChild.length; j++) {
@@ -119,9 +141,10 @@ var ConnectorLine = /** @class */ (function () {
119
141
  innerChild[j].setAttribute('aria-label', ariaString);
120
142
  }
121
143
  }
122
- this.parent.ganttChartModule.chartBodyContent.appendChild(this.dependencyViewContainer);
123
- for (var i = 0; i < this.dependencyViewContainer.children.length; i++) {
124
- this.dependencyViewContainer.children[i].children[0].setAttribute('tabindex', '-1');
144
+ this.parent.ganttChartModule.chartBodyContent.insertBefore(this.dependencyViewContainer, this.parent.ganttChartModule.chartBodyContent.lastChild);
145
+ this.dependencyViewContainer.appendChild(this.svgObject);
146
+ for (var i = 0; i < this.svgObject.children.length; i++) {
147
+ this.svgObject.children[i].children[0].setAttribute('tabindex', '-1');
125
148
  }
126
149
  };
127
150
  /**
@@ -382,6 +405,8 @@ var ConnectorLine = /** @class */ (function () {
382
405
  var connectorContainer = '';
383
406
  var isVirtual = this.parent.virtualScrollModule && this.parent.enableVirtualization;
384
407
  var connectorLine = this.getPosition(data, this.getParentPosition(data), height);
408
+ var rowPosition = this.getPosition(data, this.getParentPosition(data), height);
409
+ var rowPositionHeight = rowPosition.top;
385
410
  var isMilestoneValue = 0;
386
411
  if (this.parent.renderBaseline) {
387
412
  isMilestoneValue = (data.milestoneParent && data.milestoneChild) ? 0 : data.milestoneParent ? -5 : data.milestoneChild ? 5 : 0;
@@ -468,411 +493,289 @@ var ConnectorLine = /** @class */ (function () {
468
493
  }
469
494
  }
470
495
  if (this.getParentPosition(data)) {
471
- connectorContainer = '<div id="ConnectorLine' + data.connectorLineId + '" style="background-color:black">';
472
- var div = '<div class="' + cls.connectorLineContainer +
473
- '" tabindex="-1" style="';
474
- var direction = this.parent.enableRtl ? 'right:' : 'left:';
475
- var eLine = '<div class="' + cls.connectorLine + '" style="' +
476
- (!isNullOrUndefined(this.lineColor) ? 'outline-color:' + this.lineColor + ';' : '');
477
- var rightArrow = void 0;
478
- var leftArrow = void 0;
479
- if (this.parent.enableRtl) {
480
- leftArrow = '<div class="' + cls.connectorLineRightArrow + '" style="' +
481
- (!isNullOrUndefined(this.lineColor) ? 'outline-color:' + this.lineColor + ';' : '');
482
- rightArrow = '<div class="' + cls.connectorLineLeftArrow + '" style="' +
483
- (!isNullOrUndefined(this.lineColor) ? 'outline-color:' + this.lineColor + ';' : '');
484
- }
485
- else {
486
- rightArrow = '<div class="' + cls.connectorLineRightArrow + '" style="' +
487
- (!isNullOrUndefined(this.lineColor) ? 'outline-color:' + this.lineColor + ';' : '');
488
- leftArrow = '<div class="' + cls.connectorLineLeftArrow + '" style="' +
489
- (!isNullOrUndefined(this.lineColor) ? 'outline-color:' + this.lineColor + ';' : '');
490
- }
491
- var duplicateStingOne = leftArrow + (isMilestone ? (this.parent.enableRtl ? 'right:0px;' : 'left:0px;') : '') +
492
- this.getBorderStyles((this.parent.enableRtl ? 'left' : 'right'), 10) +
493
- 'top:' + (-5 - this.lineStroke + (this.lineStroke - 1)) + 'px;border-bottom-width:' + (5 + this.lineStroke) + 'px;' +
494
- 'border-top-width:' + (5 + this.lineStroke) + 'px;width:0;height:0;position:relative;"></div>';
495
- var duplicateStingTwo = this.getBorderStyles((this.parent.enableRtl ? 'right' : 'left'), 10) +
496
- 'top:' + (-6) + 'px;border-bottom-width:' + (5 + this.lineStroke) + 'px;' +
497
- 'border-top-width:' + (5 + this.lineStroke) + 'px;width:0;height:0;position:relative;"></div>';
498
- var duplicateStingThree = this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>' + eLine +
499
- 'top:' + (-(13 + ((this.lineStroke - 1) * 2))) + 'px;width:0px;' + this.getBorderStyles('left', this.lineStroke) +
500
- this.getBorderStyles('top', (heightValue + borderTopWidth - (this.lineStroke - 1))) + 'position:relative;"></div>';
501
- var duplicateStingFour = leftArrow + (this.parent.enableRtl ? 'right:' : 'left:') +
502
- (((data.childLeft + data.childWidth) - (data.parentLeft)) + 10) + 'px;' +
503
- this.getBorderStyles((this.parent.enableRtl ? 'left' : 'right'), 10);
504
- var duplicateStingFive = 'top:' + (-(6 + (5 + this.lineStroke) + (this.lineStroke / 2))) + 'px;' +
505
- this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
496
+ // Create the group element
497
+ this.transform = this.parent.enableRtl ? "translate(" + this.parent.timelineModule.totalTimelineWidth + ", 0) scale(-1, 1)" : '';
498
+ this.connectorId = "ConnectorLine" + data.connectorLineId;
499
+ this.groupObject = this.renderer.createGroup({
500
+ id: this.connectorId,
501
+ transform: this.transform,
502
+ style: 'pointer-events: stroke',
503
+ class: cls.connectorLineContainer,
504
+ });
505
+ // Create the path element for the connector line
506
+ this.connectorPath = this.renderer.drawPath({
507
+ class: cls.connectorLineSVG,
508
+ d: this.connectorLinePath,
509
+ fill: 'transparent',
510
+ "stroke-width": 1,
511
+ });
512
+ // Create the path element for the arrow
513
+ this.arrowlinePath = this.renderer.drawPath({
514
+ d: this.arrowPath,
515
+ class: cls.connectorLineArrow
516
+ });
517
+ // Append the path element to the group element
518
+ this.groupObject.appendChild(this.connectorPath);
519
+ this.groupObject.appendChild(this.arrowlinePath);
506
520
  if (this.getParentPosition(data) === 'FSType1') {
507
- div = div + direction + (data.parentLeft + data.parentWidth) + 'px;top:' + (isVirtual ? connectorLine.top :
508
- ((!this.parent.allowTaskbarOverlap ? parentOverlapTopValue : (data.parentIndex * data.rowHeight)) + addTop + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
509
- 'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="FSType1">';
510
- div = div + eLine;
511
- div = div + direction + (isMilestoneParent ? -1 : 0) + 'px;width:' + (isMilestoneParent ?
512
- ((((data.childLeft - (data.parentLeft + data.parentWidth + 10)) + this.lineStroke) - 10) + 1) :
513
- (((data.childLeft - (data.parentLeft + data.parentWidth + 10)) + this.lineStroke) - 10)) + 'px;' +
514
- this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
515
- div = div + eLine;
516
- div = div + direction + ((data.childLeft - (data.parentLeft + data.parentWidth + 10)) - 10) + 'px;' +
517
- 'width:0px;' + this.getBorderStyles('right', this.lineStroke) +
518
- this.getBorderStyles('top', (heightValue + borderTopWidth - this.lineStroke)) + 'position:relative;"></div>';
519
- div = div + eLine;
520
- div = div + direction + ((data.childLeft - (data.parentLeft + data.parentWidth + 10)) - 10) + 'px;width:10px;' +
521
- this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
522
- div = div + rightArrow;
523
- div = div + direction + (data.childLeft - (data.parentLeft + data.parentWidth + 10)) + 'px;' +
524
- this.getBorderStyles((this.parent.enableRtl ? 'right' : 'left'), 10) + 'top:' + (-6 - this.lineStroke) + 'px;border-bottom-width:' + (5 + this.lineStroke) +
525
- 'px;border-top-width:' + (5 + this.lineStroke) + 'px;width:0;height:0;position:relative;"></div></div>';
521
+ this.taskLineValue = data.milestoneChild ? 1 : 0;
522
+ this.x1 = data.parentEndPoint + (data.milestoneParent ? -1 : (data.milestoneChild ? -1 : 0));
523
+ this.x2 = data.milestoneParent ? ((((data.childLeft - (data.parentEndPoint + 10)) + 1) - 10) + 1) : (((data.childLeft - (data.parentEndPoint + 10))) - 10);
524
+ this.y1 = this.parent.enableVirtualization ? rowPositionHeight : ((!this.parent.allowTaskbarOverlap ? parentOverlapTopValue : (data.parentIndex * data.rowHeight)) + this.getTaskbarMidpoint(data.milestoneParent)) + ((data.isManualParent && data.isManualChild) ? -10 : 0);
525
+ this.y2 = heightValue + this.taskLineValue;
526
+ this.manualParent = (data.isManualParent && !data.isManualChild ? -10 : 0);
527
+ this.manualChild = (data.isManualChild && !data.isManualParent ? -10 : 0);
528
+ 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) +
529
+ " L " + (this.x1 + this.x2 + 11) + " " + (this.y1 + this.y2);
530
+ this.arrowPath = "M " + (this.x1 + this.x2 + 18) + " " + (this.y1 + this.y2 + this.manualChild) +
531
+ " L " + (this.x1 + this.x2 + 11) + " " + (this.y1 + this.y2 - (4 + this.lineStroke) + this.manualChild) +
532
+ " L " + (this.x1 + this.x2 + 11) + " " + (this.y1 + this.y2 + 4 + this.lineStroke + this.manualChild) + " Z";
526
533
  }
527
534
  if (this.getParentPosition(data) === 'FSType2') {
528
- div = div + direction + data.parentLeft + 'px;top:' + (isVirtual ? connectorLine.top : ((!this.parent.allowTaskbarOverlap ? parentOverlapTopValue : (data.parentIndex * data.rowHeight)) + addTop +
529
- this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
530
- 'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="FSType2">';
531
- div = div + eLine;
532
- div = div + direction + (isMilestoneParent ? data.parentWidth - 1 : data.parentWidth) + 'px;width:' +
533
- (isMilestoneParent ? 11 : 10) + 'px;' +
534
- this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
535
- div = div + eLine;
536
- div = div + direction + (data.parentWidth + 10 - this.lineStroke) + 'px;' +
537
- this.getBorderStyles('left', this.lineStroke) + 'width:0px;' +
538
- this.getBorderStyles('top', (heightValue + borderTopWidth - this.getconnectorLineGap(data) - this.lineStroke)) + 'position:relative;"></div>';
539
- div = div + eLine;
540
- div = div + direction + (data.parentWidth - (((data.parentLeft + data.parentWidth) - data.childLeft) + 20)) + 'px;' +
541
- 'width:' + (((data.parentLeft + data.parentWidth) - data.childLeft) + 30) + 'px;' +
542
- this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
543
- div = div + eLine;
544
- div = div + direction + (data.parentWidth - (((data.parentLeft +
545
- data.parentWidth) - data.childLeft) + 20)) + 'px;width:0px;' +
546
- this.getBorderStyles('top', (this.getconnectorLineGap(data) - this.lineStroke)) +
547
- this.getBorderStyles('left', this.lineStroke) + 'position:relative;"></div>';
548
- div = div + eLine;
549
- div = div + direction + (data.parentWidth - (((data.parentLeft +
550
- data.parentWidth) - data.childLeft) + 20)) + 'px;width:10px;' +
551
- this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
552
- div = div + rightArrow;
553
- div = div + direction + (data.parentWidth - (((data.parentLeft + data.parentWidth) - data.childLeft) + 10)) + 'px;' +
554
- this.getBorderStyles((this.parent.enableRtl ? 'right' : 'left'), 10) + 'border-bottom-width:' + (5 + this.lineStroke) + 'px;' +
555
- 'border-top-width:' + (5 + this.lineStroke) + 'px;top:' + (-6 - this.lineStroke) +
556
- 'px;width:0;height:0;position:relative;"></div></div>';
535
+ this.taskLineValue = data.milestoneChild ? 1 : 0;
536
+ this.x1 = data.parentLeft + (data.milestoneChild ? -1 : 0);
537
+ this.x2 = data.parentWidth + (data.milestoneParent ? 1 : 0);
538
+ this.x3 = this.x2 + (data.milestoneParent ? 11 : 10);
539
+ this.x4 = data.parentWidth - ((data.parentEndPoint - data.childLeft) + 20);
540
+ this.y1 = this.parent.enableVirtualization ? rowPositionHeight : ((!this.parent.allowTaskbarOverlap ? parentOverlapTopValue : (data.parentIndex * data.rowHeight)) + this.getTaskbarMidpoint(data.milestoneParent)) + ((data.isManualParent && data.isManualChild) ? -10 : 0);
541
+ this.y2 = heightValue - this.getconnectorLineGap(data) + this.taskLineValue;
542
+ this.y3 = this.getconnectorLineGap(data);
543
+ this.y4 = this.y1 + this.y2 - ((this.y1 + this.y2) % data.rowHeight);
544
+ this.manualParent = (data.isManualParent && !data.isManualChild ? -10 : 0);
545
+ this.manualChild = (data.isManualChild && !data.isManualParent ? -10 : 0);
546
+ 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 +
547
+ " 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);
548
+ this.arrowPath = "M " + (this.x1 + this.x4 + 18) + " " + (this.y1 + this.y2 + this.y3 + this.manualChild) +
549
+ " L " + (this.x1 + this.x4 + 11) + " " + (this.y1 + this.y2 + this.y3 - (4 + this.lineStroke) + this.manualChild) +
550
+ " L " + (this.x1 + this.x4 + 11) + " " + (this.y1 + this.y2 + this.y3 + 4 + this.lineStroke + this.manualChild) + " Z";
557
551
  }
558
552
  if (this.getParentPosition(data) === 'FSType3') {
559
- div = div + direction + (data.childLeft - 20) + 'px;top:' + (isVirtual ? connectorLine.top :
560
- ((!this.parent.allowTaskbarOverlap ? childOverlapTopValue : (data.childIndex * data.rowHeight)) + addTop + this.getTaskbarMidpoint(isMilestoneParent) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
561
- 'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="FSType3">';
562
- div = div + rightArrow;
563
- div = div + direction + '10px;' + this.getBorderStyles((this.parent.enableRtl ? 'right' : 'left'), 10) +
564
- 'border-bottom-width:' + (5 + this.lineStroke) + 'px;border-top-width:' + (5 + this.lineStroke) + 'px;' +
565
- 'top:' + (-6) + 'px;width:0;height:0;position:relative;"></div>';
566
- div = div + eLine;
567
- div = div + 'width:10px;' + this.getBorderStyles('top', this.lineStroke) +
568
- 'position:relative;top:' + (-(6 + (5 + this.lineStroke) + Math.round(this.lineStroke / 2))) + 'px;"></div>';
569
- div = div + eLine;
570
- div = div + 'width:' + this.lineStroke + 'px;' + this.getBorderStyles('top', (heightValue + borderTopWidth - this.getconnectorLineGap(data) - this.lineStroke + 1)) +
571
- 'position:relative;top:' + (-(13 + ((this.lineStroke - 1) * 2))) + 'px;"></div>';
572
- div = div + eLine;
573
- div = div + 'width:' + (((data.parentLeft + data.parentWidth) - data.childLeft) + 30) + 'px;' +
574
- this.getBorderStyles('top', this.lineStroke) + 'position:relative;top:' +
575
- (-(13 + ((this.lineStroke - 1) * 2))) + 'px;"></div>';
576
- div = div + eLine;
577
- div = div + direction + (((data.parentLeft + data.parentWidth) - data.childLeft) + (30 - this.lineStroke)) +
578
- 'px;width:0px;' + 'height:' + (this.getconnectorLineGap(data) - this.lineStroke) + 'px;' +
579
- this.getBorderStyles('left', this.lineStroke) + 'position:relative;' +
580
- 'top:' + (-(13 + ((this.lineStroke - 1) * 2))) + 'px;"></div>';
581
- div = div + eLine;
582
- div = div + (isMilestoneParent ? direction + (((data.parentLeft +
583
- data.parentWidth) - data.childLeft) + (18 - this.lineStroke)) + 'px;width:' + (12 + this.lineStroke) + 'px;' : direction +
584
- (((data.parentLeft + data.parentWidth) - data.childLeft) + 20) + 'px;width:10px;') +
585
- this.getBorderStyles('top', this.lineStroke) + 'position:relative;top:' +
586
- (-(13 + ((this.lineStroke - 1) * 2))) + 'px;"></div></div>';
553
+ this.taskLineValue = data.milestoneChild ? 1 : 0;
554
+ this.point1 = this.parent.enableVirtualization ? rowPositionHeight : ((!this.parent.allowTaskbarOverlap ? parentOverlapTopValue : (data.childIndex * data.rowHeight)) + this.getTaskbarMidpoint(data.milestoneChild));
555
+ this.x1 = (data.childLeft + (data.milestoneChild ? -1 : 0) + (data.milestoneParent ? 1 : 0)) - 20;
556
+ this.x2 = (data.parentEndPoint - data.childLeft) + 30;
557
+ this.y1 = this.point1 + ((data.isManualParent && data.isManualChild) ? -10 : 0);
558
+ this.y2 = this.point1 + heightValue - this.getconnectorLineGap(data) + this.taskLineValue + (this.parent.renderBaseline ? (data.milestoneChild ? -10 : 0) : 0);
559
+ this.y3 = this.getconnectorLineGap(data) + (this.parent.renderBaseline ? (data.milestoneParent ? 10 : 0) : 0);
560
+ this.y4 = this.y2 - (this.y2 % data.rowHeight);
561
+ this.manualParent = (data.isManualParent && !data.isManualChild ? -10 : 0);
562
+ this.manualChild = (data.isManualChild && !data.isManualParent ? -10 : 0);
563
+ 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 +
564
+ " 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);
565
+ this.arrowPath = "M " + (this.x1 + 18) + " " + (this.y1 + this.manualChild) +
566
+ " L " + (this.x1 + 11) + " " + (this.y1 - (4 + this.lineStroke) + this.manualChild) +
567
+ " L " + (this.x1 + 11) + " " + (this.y1 + 4 + this.lineStroke + this.manualChild) + " Z";
587
568
  }
588
569
  if (this.getParentPosition(data) === 'FSType4') {
589
- div = div + direction + (data.parentLeft + data.parentWidth) + 'px;top:' + (isVirtual ? connectorLine.top :
590
- ((!this.parent.allowTaskbarOverlap ? childOverlapTopValue : (data.childIndex * data.rowHeight)) + addTop + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
591
- 'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="FSType4">';
592
- div = div + rightArrow;
593
- div = div + direction + (data.childLeft - (data.parentLeft + data.parentWidth + 10)) + 'px;' +
594
- this.getBorderStyles((this.parent.enableRtl ? 'right' : 'left'), 10) + 'top:' + (-6) + 'px;' +
595
- 'border-bottom-width:' + (5 + this.lineStroke) + 'px;border-top-width:' +
596
- (5 + this.lineStroke) + 'px;width:0;height:0;position:relative;"></div>';
597
- div = div + eLine;
598
- div = div + direction + (data.childLeft - (data.parentLeft + data.parentWidth) - 20) +
599
- 'px;top:' + (-(6 + (5 + this.lineStroke) + Math.round(this.lineStroke / 2))) + 'px;width:10px;' +
600
- this.getBorderStyles('top', this.lineStroke) +
601
- 'position:relative;"></div>';
602
- div = div + eLine;
603
- div = div + 'top:' + (-(13 + ((this.lineStroke - 1) * 2))) + 'px;' + direction +
604
- (data.childLeft - (data.parentLeft + data.parentWidth) - 20) + 'px;width:0px;' +
605
- this.getBorderStyles('left', this.lineStroke) +
606
- this.getBorderStyles('top', (heightValue + borderTopWidth - this.lineStroke + 1)) + 'position:relative;"></div>';
607
- div = div + eLine;
608
- div = div + (isMilestoneParent ? direction + '-1px;' : '') + 'top:' +
609
- (-(13 + ((this.lineStroke - 1) * 2))) + 'px;width:' +
610
- (isMilestoneParent ? ((data.childLeft - (data.parentLeft + data.parentWidth + 20) + 1) + this.lineStroke) :
611
- ((data.childLeft - (data.parentLeft + data.parentWidth + 20)) + this.lineStroke)) + 'px;' +
612
- this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div></div>';
570
+ this.point1 = this.parent.enableVirtualization ? rowPositionHeight : ((!this.parent.allowTaskbarOverlap ? parentOverlapTopValue : (data.childIndex * data.rowHeight)) + this.getTaskbarMidpoint(data.milestoneChild));
571
+ this.taskLineValue = this.parent.renderBaseline ? this.taskLineValue : 0;
572
+ this.x1 = data.parentEndPoint + (data.milestoneChild ? -1 : 0) + (data.milestoneParent ? 1 : 0);
573
+ this.x2 = data.childLeft - data.parentEndPoint - 20;
574
+ this.y1 = this.point1 + (data.milestoneChild ? 1 : 0) + ((data.isManualParent && data.isManualChild) ? -10 : 0);
575
+ this.y2 = this.point1 + heightValue + this.taskLineValue + (this.parent.renderBaseline ? (data.milestoneParent ? 10 : 0) : 0);
576
+ this.manualParent = (data.isManualParent && !data.isManualChild ? -10 : 0);
577
+ this.manualChild = (data.isManualChild && !data.isManualParent ? -10 : 0);
578
+ 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 +
579
+ " L " + this.x1 + " " + this.y2;
580
+ this.arrowPath = "M " + (this.x1 + this.x2 + 18) + " " + (this.y1 + this.manualChild) +
581
+ " L " + (this.x1 + this.x2 + 11) + " " + (this.y1 - (4 + this.lineStroke) + this.manualChild) +
582
+ " L " + (this.x1 + this.x2 + 11) + " " + (this.y1 + 4 + this.lineStroke + this.manualChild) + " Z";
613
583
  }
614
584
  if (this.getParentPosition(data) === 'SSType4') {
615
- div = div + direction + (data.parentLeft - 10) + 'px;top:' + (isVirtual ? connectorLine.top :
616
- ((!this.parent.allowTaskbarOverlap ? childOverlapTopValue : (data.childIndex * data.rowHeight)) + addTop + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
617
- 'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="SSType4">';
618
- div = div + rightArrow;
619
- div = div + direction + (data.childLeft - data.parentLeft) + 'px;' + duplicateStingTwo;
620
- div = div + eLine;
621
- div = div + 'top:' + (-(6 + (5 + this.lineStroke) + (this.lineStroke / 2))) + 'px;width:' +
622
- (data.childLeft - data.parentLeft) + 'px;' + duplicateStingThree;
623
- div = div + eLine;
624
- div = div + 'top:' + (-(13 + ((this.lineStroke - 1) * 2))) + 'px;width:10px;' +
625
- this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div></div>';
585
+ this.taskLineValue = this.parent.renderBaseline ? this.taskLineValue : 0;
586
+ this.point1 = heightValue + this.taskLineValue;
587
+ this.point2 = this.parent.enableVirtualization ? rowPositionHeight : ((!this.parent.allowTaskbarOverlap ? parentOverlapTopValue : (data.childIndex * data.rowHeight)) + this.getTaskbarMidpoint(data.milestoneChild));
588
+ this.x1 = data.parentLeft - 8;
589
+ this.x2 = data.childLeft - data.parentLeft;
590
+ this.y1 = this.point2 + (data.milestoneChild ? 1 : 0) + ((data.isManualParent && data.isManualChild) ? -10 : 0);
591
+ this.y2 = this.y1 + this.point1 + (this.parent.renderBaseline ? (data.milestoneParent ? 10 : 0) : 0);
592
+ this.manualParent = (data.isManualParent && !data.isManualChild ? -10 : 0);
593
+ this.manualChild = (data.isManualChild && !data.isManualParent ? -10 : 0);
594
+ this.connectorLinePath = "M " + (this.x1 + this.x2) + " " + (this.y1 + this.manualParent + this.manualChild) + " L " + this.x1 + " " + (this.y1 + this.manualParent + this.manualChild) +
595
+ " L " + this.x1 + " " + this.y2 + " L " + (this.x1 + 10) + " " + this.y2;
596
+ this.arrowPath = "M " + (this.x1 + this.x2 + 8) + " " + (this.y1 + this.manualChild) +
597
+ " L " + (this.x1 + this.x2) + " " + (this.y1 - (4 + this.lineStroke) + this.manualChild) +
598
+ " L " + (this.x1 + this.x2) + " " + (this.y1 + 4 + this.lineStroke + this.manualChild) + " Z";
626
599
  }
627
600
  if (this.getParentPosition(data) === 'SSType3') {
628
- div = div + direction + (data.childLeft - 20) + 'px;top:' + (isVirtual ? connectorLine.top :
629
- ((!this.parent.allowTaskbarOverlap ? childOverlapTopValue : (data.childIndex * data.rowHeight)) + addTop + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
630
- 'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="SSType3">';
631
- div = div + rightArrow;
632
- div = div + direction + '10px;' + duplicateStingTwo;
633
- div = div + eLine;
634
- div = div + 'top:' + (-(6 + (5 + this.lineStroke) + (this.lineStroke / 2))) + 'px;width:10px;' + duplicateStingThree;
635
- div = div + eLine;
636
- div = div + 'top:' + (-(13 + ((this.lineStroke - 1) * 2))) + 'px;width:' +
637
- (data.parentLeft - data.childLeft + 21) + 'px;' +
638
- this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div></div>';
601
+ this.taskLineValue = this.parent.renderBaseline ? this.taskLineValue : data.milestoneChild ? 1 : 0;
602
+ this.point1 = heightValue + this.taskLineValue;
603
+ this.x1 = data.childLeft - 20;
604
+ 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);
605
+ this.x2 = data.parentLeft - data.childLeft + 21;
606
+ this.y2 = this.y1 + this.point1 + (this.parent.renderBaseline ? (data.milestoneChild ? -11 : data.milestoneParent ? 10 : 0) : 0);
607
+ this.manualParent = (data.isManualParent && !data.isManualChild ? -10 : 0);
608
+ this.manualChild = (data.isManualChild && !data.isManualParent ? -10 : 0);
609
+ this.connectorLinePath = "M " + (this.x1 + 12) + " " + (this.y1 + this.manualParent + this.manualChild) + " L " + this.x1 + " " + (this.y1 + this.manualParent + this.manualChild) +
610
+ " L " + this.x1 + " " + this.y2 + " L " + (this.x1 + this.x2) + " " + this.y2;
611
+ this.arrowPath = "M " + (this.x1 + 20) + " " + (this.y1 + this.manualChild) +
612
+ " L " + (this.x1 + 12) + " " + (this.y1 - (4 + this.lineStroke) + this.manualChild) +
613
+ " L " + (this.x1 + 12) + " " + (this.y1 + 4 + this.lineStroke + this.manualChild) + " Z";
639
614
  }
640
615
  if (this.getParentPosition(data) === 'SSType2') {
641
- div = div + direction + setInnerElementLeftSSType2 + 'px;top:' + (isVirtual ? connectorLine.top :
642
- ((!this.parent.allowTaskbarOverlap ? parentOverlapTopValue : (data.parentIndex * data.rowHeight)) + addTop + this.getTaskbarMidpoint(isMilestoneParent) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
643
- 'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="SSType2">';
644
- div = div + eLine;
645
- div = div + 'width:' + (setInnerChildWidthSSType2 + 1) + 'px;' +
646
- this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
647
- div = div + eLine;
648
- div = div + 'width:0px;' + this.getBorderStyles('left', this.lineStroke) +
649
- this.getBorderStyles('top', (heightValue + borderTopWidth - this.lineStroke)) + 'position:relative;"></div>';
650
- div = div + eLine;
651
- div = div + 'width:' + setInnerElementWidthSSType2 + 'px;' +
652
- this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
653
- div = div + rightArrow;
654
- div = div + direction + setInnerElementWidthSSType2 + 'px;' +
655
- this.getBorderStyles((this.parent.enableRtl ? 'right' : 'left'), 10) + 'top:' + (-6 - this.lineStroke) + 'px;' +
656
- 'border-bottom-width:' + (5 + this.lineStroke) + 'px;border-top-width:' +
657
- (5 + this.lineStroke) + 'px;width:0;' +
658
- 'height:0;position:relative;"></div></div>';
616
+ this.taskLineValue = this.parent.renderBaseline ? this.taskLineValue : data.milestoneChild ? 1 : 0;
617
+ this.point1 = heightValue + this.taskLineValue;
618
+ this.x1 = setInnerElementLeftSSType2;
619
+ this.x2 = setInnerChildWidthSSType2 + 1;
620
+ this.y1 = this.parent.enableVirtualization ? rowPositionHeight : ((!this.parent.allowTaskbarOverlap ? parentOverlapTopValue : (data.parentIndex * data.rowHeight)) + this.getTaskbarMidpoint(data.milestoneParent)) + ((data.isManualParent && data.isManualChild) ? -10 : 0);
621
+ this.y2 = this.y1 + this.point1;
622
+ this.manualParent = (data.isManualParent && !data.isManualChild ? -10 : 0);
623
+ this.manualChild = (data.isManualChild && !data.isManualParent ? -10 : 0);
624
+ 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 +
625
+ " L " + (this.x1 + setInnerElementWidthSSType2) + " " + this.y2;
626
+ this.arrowPath = "M " + (this.x1 + setInnerElementWidthSSType2 + 8) + " " + (this.y2 + this.manualChild) +
627
+ " L " + (this.x1 + setInnerElementWidthSSType2) + " " + (this.y2 - (4 + this.lineStroke) + this.manualChild) +
628
+ " L " + (this.x1 + setInnerElementWidthSSType2) + " " + (this.y2 + 4 + this.lineStroke + this.manualChild) + " Z";
659
629
  }
660
630
  if (this.getParentPosition(data) === 'SSType1') {
661
- div = div + direction + (data.childLeft - 20) + 'px;top:' + (isVirtual ? connectorLine.top :
662
- ((!this.parent.allowTaskbarOverlap ? parentOverlapTopValue : (data.parentIndex * data.rowHeight)) + addTop +
663
- this.getTaskbarMidpoint(isMilestoneParent) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
664
- 'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="SSType1">';
665
- div = div + eLine;
666
- div = div + 'width:' + (data.parentLeft - data.childLeft + 21) + 'px;' +
667
- this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
668
- div = div + eLine;
669
- div = div + 'width:0px;' + this.getBorderStyles('left', this.lineStroke) +
670
- this.getBorderStyles('top', (heightValue + borderTopWidth - this.lineStroke)) + 'position:relative;"></div>';
671
- div = div + eLine;
672
- div = div + 'width:10px;' + this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
673
- div = div + rightArrow;
674
- div = div + direction + '10px;' + this.getBorderStyles((this.parent.enableRtl ? 'right' : 'left'), 10) +
675
- 'top:' + (-6 - this.lineStroke) + 'px;border-bottom-width:' + (5 + this.lineStroke) + 'px;' +
676
- 'border-top-width:' + (5 + this.lineStroke) + 'px;width:0;height:0;position:relative;"></div></div>';
631
+ this.taskLineValue = this.parent.renderBaseline ? this.taskLineValue : data.milestoneChild ? 1 : 0;
632
+ this.point1 = heightValue + this.taskLineValue;
633
+ this.x1 = data.childLeft - 20;
634
+ this.x2 = data.parentLeft - data.childLeft + 21;
635
+ this.y1 = this.parent.enableVirtualization ? rowPositionHeight : ((!this.parent.allowTaskbarOverlap ? parentOverlapTopValue : (data.parentIndex * data.rowHeight)) + this.getTaskbarMidpoint(data.milestoneParent)) + +((data.isManualParent && data.isManualChild) ? -10 : 0);
636
+ this.y2 = this.y1 + this.point1;
637
+ this.manualParent = (data.isManualParent && !data.isManualChild ? -10 : 0);
638
+ this.manualChild = (data.isManualChild && !data.isManualParent ? -10 : 0);
639
+ 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 +
640
+ " L " + (this.x1 + 12) + " " + this.y2;
641
+ this.arrowPath = "M " + (this.x1 + 20) + " " + (this.y2 + this.manualChild) +
642
+ " L " + (this.x1 + 12) + " " + (this.y2 - (4 + this.lineStroke) + this.manualChild) +
643
+ " L " + (this.x1 + 12) + " " + (this.y2 + 4 + this.lineStroke + this.manualChild) + " Z";
677
644
  }
678
645
  if (this.getParentPosition(data) === 'FFType1') {
679
- div = div + direction + (data.childLeft + data.childWidth) + 'px;top:' + (isVirtual ? connectorLine.top :
680
- ((!this.parent.allowTaskbarOverlap ? parentOverlapTopValue : (data.parentIndex * data.rowHeight)) + addTop + this.getTaskbarMidpoint(isMilestoneParent) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
681
- 'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="FFType1">';
682
- div = div + eLine;
683
- div = div + direction + (isMilestoneParent ? (((data.parentLeft + data.parentWidth) -
684
- (data.childLeft + data.childWidth)) - 1) : ((data.parentLeft + data.parentWidth) -
685
- (data.childLeft + data.childWidth))) + 'px;' +
686
- 'width:' + (isMilestoneParent ? (21 + this.lineStroke) : (20 + this.lineStroke)) + 'px;' +
687
- this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
688
- div = div + eLine;
689
- div = div + direction + (((data.parentLeft + data.parentWidth) -
690
- (data.childLeft + data.childWidth)) + 20) + 'px;width:0px;' + this.getBorderStyles('left', this.lineStroke) +
691
- this.getBorderStyles('top', (heightValue + borderTopWidth - this.lineStroke)) + 'position:relative;"></div>';
692
- div = div + eLine;
693
- div = div + direction + (isMilestone ? 4 : 10) + 'px;width:' + (isMilestone ?
694
- (((data.parentLeft + data.parentWidth) - (data.childLeft + data.childWidth)) + (16 + this.lineStroke)) :
695
- (((data.parentLeft + data.parentWidth) - (data.childLeft + data.childWidth)) + (10 + this.lineStroke))) + 'px;' +
696
- this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
697
- div = div + leftArrow;
698
- div = div + (isMilestone ? direction + '0px;' : '') + this.getBorderStyles((!this.parent.enableRtl ? 'right' : 'left'), 10) +
699
- 'top:' + (-6 - this.lineStroke) + 'px;border-bottom-width:' + (5 + this.lineStroke) + 'px;' +
700
- 'border-top-width:' + (5 + this.lineStroke) + 'px;width:0;height:0;position:relative;"></div></div>';
646
+ this.taskLineValue = this.parent.renderBaseline ? this.taskLineValue : (data.milestoneChild ? 1 : 0);
647
+ this.x1 = data.childEndPoint;
648
+ this.x2 = data.parentEndPoint + (data.milestoneParent ? -1 : 0);
649
+ this.x3 = data.milestoneParent ? 22 : 21;
650
+ this.x4 = data.milestoneChild ? 4 : 8;
651
+ this.y1 = this.parent.enableVirtualization ? rowPositionHeight : ((!this.parent.allowTaskbarOverlap ? parentOverlapTopValue : (data.parentIndex * data.rowHeight)) + this.getTaskbarMidpoint(data.milestoneParent)) + ((data.isManualParent && data.isManualChild) ? -10 : 0);
652
+ this.y2 = heightValue + this.taskLineValue;
653
+ this.manualParent = (data.isManualParent && !data.isManualChild ? -10 : 0);
654
+ this.manualChild = (data.isManualChild && !data.isManualParent ? -10 : 0);
655
+ 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) +
656
+ " L " + (this.x1 + this.x4) + " " + (this.y1 + this.y2);
657
+ this.arrowPath = "M " + this.x1 + " " + (this.y1 + this.y2 + this.manualChild) +
658
+ " L " + (this.x1 + 8) + " " + (this.y1 + this.y2 - (4 + this.lineStroke) + this.manualChild) +
659
+ " L " + (this.x1 + 8) + " " + (this.y1 + this.y2 + 4 + this.lineStroke + this.manualChild) + " Z";
701
660
  }
702
661
  if (this.getParentPosition(data) === 'FFType2') {
703
- div = div + direction + (data.parentLeft + data.parentWidth) + 'px;top:' + (isVirtual ? connectorLine.top :
704
- ((!this.parent.allowTaskbarOverlap ? parentOverlapTopValue : (data.parentIndex * data.rowHeight)) + addTop + this.getTaskbarMidpoint(isMilestoneParent) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
705
- 'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="FFType2">';
706
- div = div + eLine;
707
- div = div + (isMilestoneParent ? direction + '-1px;' : '') + 'width:' +
708
- (isMilestoneParent ? (((data.childLeft + data.childWidth) - (data.parentLeft + data.parentWidth)) +
709
- (21 + this.lineStroke)) : (((data.childLeft + data.childWidth) -
710
- (data.parentLeft + data.parentWidth)) + (20 + this.lineStroke))) + 'px;' +
711
- this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
712
- div = div + eLine;
713
- div = div + direction + (((data.childLeft + data.childWidth) - (data.parentLeft + data.parentWidth)) + 20) +
714
- 'px;width:0px;' + this.getBorderStyles('left', this.lineStroke) +
715
- this.getBorderStyles('top', (heightValue + borderTopWidth - this.lineStroke)) +
716
- 'position:relative;"></div>';
717
- div = div + eLine;
718
- div = div + direction + (isMilestone ? (((data.childLeft + data.childWidth) - (data.parentLeft + data.parentWidth)) + 4) :
719
- (((data.childLeft + data.childWidth) - (data.parentLeft + data.parentWidth)) + 10)) + 'px;' +
720
- 'width:' + (isMilestone ? (16 + this.lineStroke) : (10 + this.lineStroke)) + 'px;' +
721
- this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
722
- div = div + leftArrow;
723
- div = div + direction + ((data.childLeft + data.childWidth) - (data.parentLeft + data.parentWidth)) + 'px;' +
724
- this.getBorderStyles((!this.parent.enableRtl ? 'right' : 'left'), 10) + 'top:' + (-6 - this.lineStroke) + 'px;' +
725
- 'border-bottom-width:' + (5 + this.lineStroke) + 'px;border-top-width:' + (5 + this.lineStroke) +
726
- 'px;width:0;height:0;position:relative;"></div></div>';
662
+ this.taskLineValue = this.parent.renderBaseline ? this.taskLineValue : (data.milestoneChild ? 1 : 0);
663
+ this.x1 = data.parentEndPoint;
664
+ this.x2 = data.childEndPoint + (data.milestoneParent ? 22 : 21);
665
+ this.x3 = data.childEndPoint + (data.milestoneChild ? 9 : 8);
666
+ this.y1 = this.parent.enableVirtualization ? rowPositionHeight : ((!this.parent.allowTaskbarOverlap ? parentOverlapTopValue : (data.parentIndex * data.rowHeight)) + this.getTaskbarMidpoint(data.milestoneParent)) + ((data.isManualParent && data.isManualChild) ? -10 : 0);
667
+ this.y2 = heightValue + this.taskLineValue;
668
+ this.manualParent = (data.isManualParent && !data.isManualChild ? -10 : 0);
669
+ this.manualChild = (data.isManualChild && !data.isManualParent ? -10 : 0);
670
+ 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) +
671
+ " L " + this.x3 + " " + (this.y1 + this.y2);
672
+ this.arrowPath = "M " + (this.x3 - 8) + " " + (this.y1 + this.y2 + this.manualChild) +
673
+ " L " + this.x3 + " " + (this.y1 + this.y2 - (4 + this.lineStroke) + this.manualChild) +
674
+ " L " + this.x3 + " " + (this.y1 + this.y2 + 4 + this.lineStroke + this.manualChild) + " Z";
727
675
  }
728
676
  if (this.getParentPosition(data) === 'FFType3') {
729
- div = div + direction + (data.childLeft + data.childWidth) + 'px;top:' + (isVirtual ? connectorLine.top :
730
- ((!this.parent.allowTaskbarOverlap ? childOverlapTopValue : (data.childIndex * data.rowHeight)) + addTop + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
731
- 'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="FFType3">';
732
- div = div + duplicateStingOne;
733
- div = div + eLine;
734
- div = div + (isMilestone ? (direction + '4px;width:' +
735
- (((data.parentLeft + data.parentWidth) - (data.childLeft + data.childWidth)) + 16)) :
736
- (direction + '10px;width:' + (((data.parentLeft + data.parentWidth) -
737
- (data.childLeft + data.childWidth)) + 10))) + 'px;top:' + (-(6 + (5 + this.lineStroke) +
738
- (this.lineStroke / 2))) + 'px;' + this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
739
- div = div + eLine;
740
- div = div + direction + (((data.parentLeft + data.parentWidth) - (data.childLeft + data.childWidth)) + 20) +
741
- 'px;top:' + (-(13 + ((this.lineStroke - 1) * 2))) + 'px;' +
742
- 'width:0px;' + this.getBorderStyles('left', this.lineStroke) +
743
- this.getBorderStyles('top', (heightValue + borderTopWidth - this.lineStroke + 1)) + 'position:relative;"></div>';
744
- div = div + eLine;
745
- div = div + (isMilestoneParent ? (direction + (((data.parentLeft + data.parentWidth) -
746
- (data.childLeft + data.childWidth)) - 1) + 'px;width:21') : (direction + ((data.parentLeft + data.parentWidth) -
747
- (data.childLeft + data.childWidth)) + 'px;width:20')) +
748
- 'px;top:' + (-(13 + ((this.lineStroke - 1) * 2))) + 'px;' +
749
- this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div></div>';
677
+ this.taskLineValue = this.parent.renderBaseline ? this.taskLineValue : 0;
678
+ this.x1 = data.childEndPoint;
679
+ this.x2 = this.x1 + (data.milestoneChild ? 4 : 8);
680
+ this.x3 = data.parentEndPoint - data.childEndPoint + (data.milestoneChild ? 16 : 10);
681
+ this.x4 = data.parentEndPoint + (data.milestoneParent ? -1 : 0);
682
+ this.y1 = this.parent.enableVirtualization ? rowPositionHeight : ((!this.parent.allowTaskbarOverlap ? parentOverlapTopValue : (data.childIndex * data.rowHeight)) + this.getTaskbarMidpoint(data.milestoneChild)) + ((data.isManualParent && data.isManualChild) ? -10 : 0);
683
+ this.y2 = heightValue + this.taskLineValue + (this.parent.renderBaseline ? (data.milestoneParent ? 10 : 0) : 0);
684
+ this.manualParent = (data.isManualParent && !data.isManualChild ? -10 : 0);
685
+ this.manualChild = (data.isManualChild && !data.isManualParent ? -10 : 0);
686
+ 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) +
687
+ " L " + this.x4 + " " + (this.y1 + this.y2);
688
+ this.arrowPath = "M " + this.x1 + " " + (this.y1 + this.manualChild) +
689
+ " L " + (this.x1 + 8) + " " + (this.y1 - (4 + this.lineStroke) + this.manualChild) +
690
+ " L " + (this.x1 + 8) + " " + (this.y1 + 4 + this.lineStroke + this.manualChild) + " Z";
750
691
  }
751
692
  if (this.getParentPosition(data) === 'FFType4') {
752
- div = div + direction + (data.parentLeft + data.parentWidth) + 'px;top:' + (isVirtual ? connectorLine.top :
753
- ((!this.parent.allowTaskbarOverlap ? childOverlapTopValue : (data.childIndex * data.rowHeight)) + addTop + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
754
- 'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="FFType4">';
755
- div = div + leftArrow;
756
- div = div + (direction + ((data.childLeft + data.childWidth) -
757
- (data.parentLeft + data.parentWidth))) + 'px;' +
758
- this.getBorderStyles((!this.parent.enableRtl ? 'right' : 'left'), 10) + 'top:' + (-5 - this.lineStroke + (this.lineStroke - 1)) + 'px;' +
759
- 'border-bottom-width:' + (5 + this.lineStroke) +
760
- 'px;border-top-width:' + (5 + this.lineStroke) + 'px;width:0;height:0;' +
761
- 'position:relative;"></div>';
762
- div = div + eLine;
763
- div = div + (isMilestone ? (direction + (((data.childLeft + data.childWidth) -
764
- (data.parentLeft + data.parentWidth)) + 4) +
765
- 'px;width:' + (16 + this.lineStroke)) : (direction + (((data.childLeft + data.childWidth) -
766
- (data.parentLeft + data.parentWidth)) + 10) + 'px;width:' + (10 + this.lineStroke))) +
767
- 'px;' + duplicateStingFive;
768
- div = div + eLine;
769
- div = div + direction + (((data.childLeft + data.childWidth) -
770
- (data.parentLeft + data.parentWidth)) + 20) + 'px;top:' + (-(13 + ((this.lineStroke - 1) * 2))) +
771
- 'px;width:0px;' + this.getBorderStyles('left', this.lineStroke) +
772
- this.getBorderStyles('top', (heightValue + borderTopWidth - this.lineStroke + 1)) + 'position:relative;"></div>';
773
- div = div + eLine;
774
- div = div + (isMilestoneParent ? (direction + '-1px;width:' + (((data.childLeft + data.childWidth) -
775
- (data.parentLeft + data.parentWidth)) + (21 + this.lineStroke))) : ('width:' + (((data.childLeft + data.childWidth) -
776
- (data.parentLeft + data.parentWidth)) + (20 + this.lineStroke)))) + 'px;top:' +
777
- (-(13 + ((this.lineStroke - 1) * 2))) + 'px;' +
778
- this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div></div>';
693
+ this.taskLineValue = this.parent.renderBaseline ? this.taskLineValue : 0;
694
+ this.x1 = data.parentEndPoint;
695
+ this.x2 = data.childEndPoint + (data.milestoneChild ? 7 : 8);
696
+ this.x3 = this.x2 + (data.milestoneChild ? 12 : 11);
697
+ this.y1 = this.parent.enableVirtualization ? rowPositionHeight : ((!this.parent.allowTaskbarOverlap ? parentOverlapTopValue : (data.childIndex * data.rowHeight)) + this.getTaskbarMidpoint(data.milestoneChild)) + ((data.isManualParent && data.isManualChild) ? -10 : 0);
698
+ this.y2 = heightValue + this.taskLineValue + +(this.parent.renderBaseline ? (data.milestoneParent ? 10 : 0) : 0);
699
+ this.manualParent = (data.isManualParent && !data.isManualChild ? -10 : 0);
700
+ this.manualChild = (data.isManualChild && !data.isManualParent ? -10 : 0);
701
+ 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) +
702
+ " L " + this.x1 + " " + (this.y1 + this.y2);
703
+ this.arrowPath = "M " + (this.x2 - 8) + " " + (this.y1 + this.manualChild) +
704
+ " L " + this.x2 + " " + (this.y1 - (4 + this.lineStroke) + this.manualChild) +
705
+ " L " + this.x2 + " " + (this.y1 + 4 + this.lineStroke + this.manualChild) + " Z";
779
706
  }
780
707
  if (this.getParentPosition(data) === 'SFType4') {
781
- div = div + direction + (data.parentLeft - 10) + 'px;top:' + (isVirtual ? connectorLine.top :
782
- ((!this.parent.allowTaskbarOverlap ? childOverlapTopValue : (data.childIndex * data.rowHeight)) + addTop + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;width:1px;' +
783
- 'height:' + heightValue + 'px;position:absolute" data-connectortype="SFType4">';
784
- div = div + duplicateStingFour + 'top:' + (-5 - this.lineStroke + (this.lineStroke - 1)) + 'px;' +
785
- 'border-bottom-width:' + (5 + this.lineStroke) +
786
- 'px;border-top-width:' + (5 + this.lineStroke) + 'px;width:0;height:0;' +
787
- 'position:relative;"></div>';
788
- div = div + eLine;
789
- div = div + direction + (isMilestone ? ((((data.childLeft + data.childWidth) - (data.parentLeft)) + (14 + this.lineStroke)) +
790
- 'px;width:16') : ((((data.childLeft + data.childWidth) - (data.parentLeft)) + 20) + 'px;width:' +
791
- (10 + this.lineStroke))) + 'px;' + duplicateStingFive;
792
- div = div + eLine;
793
- div = div + direction + (((data.childLeft + data.childWidth) - (data.parentLeft)) + 30) + 'px;top:' +
794
- (-(13 + ((this.lineStroke - 1) * 2))) + 'px;width:0px;' + this.getBorderStyles('left', this.lineStroke) +
795
- this.getBorderStyles('top', (heightValue + borderTopWidth - this.getconnectorLineGap(data) - (this.lineStroke - 1))) + 'position:relative;"></div>';
796
- div = div + eLine;
797
- div = div + 'top:' + (-(13 + ((this.lineStroke - 1) * 2))) + 'px;width:' +
798
- (((data.childLeft + data.childWidth) - (data.parentLeft)) + (30 + this.lineStroke)) + 'px;' +
799
- this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
800
- div = div + eLine;
801
- div = div + 'top:' + (-(13 + ((this.lineStroke - 1) * 2))) + 'px;width:0px;' +
802
- this.getBorderStyles('left', this.lineStroke) +
803
- this.getBorderStyles('top', (this.getconnectorLineGap(data) - this.lineStroke)) + 'position:relative;"></div>';
804
- div = div + eLine;
805
- div = div + 'top:' + (-(13 + ((this.lineStroke - 1) * 2))) + 'px;width:11px;' +
806
- this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div></div>';
708
+ this.taskLineValue = this.parent.renderBaseline ? this.taskLineValue : (data.milestoneChild ? -1 : 0);
709
+ this.point1 = heightValue - this.getconnectorLineGap(data) + this.taskLineValue;
710
+ this.point2 = this.parent.enableVirtualization ? rowPositionHeight : ((!this.parent.allowTaskbarOverlap ? parentOverlapTopValue : (data.childIndex * data.rowHeight)) + this.getTaskbarMidpoint(data.milestoneChild));
711
+ this.x1 = data.parentLeft - 10;
712
+ this.x2 = this.x1 + ((data.childEndPoint - data.parentLeft) + 18);
713
+ this.x3 = this.x2 + (data.milestoneChild ? 16 : 11);
714
+ this.y1 = this.point2 + (data.milestoneChild ? 1 : 0) + ((data.isManualParent && data.isManualChild) ? -10 : 0);
715
+ this.y2 = this.y1 + this.point1 + (this.parent.renderBaseline ? (data.milestoneChild ? -11 : 0) : 0);
716
+ this.y3 = this.getconnectorLineGap(data) + (this.parent.renderBaseline ? (data.milestoneParent ? 10 : 0) : 0);
717
+ this.y4 = this.y2 - (this.y2 % data.rowHeight);
718
+ this.manualParent = (data.isManualParent && !data.isManualChild ? -10 : 0);
719
+ this.manualChild = (data.isManualChild && !data.isManualParent ? -10 : 0);
720
+ 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 +
721
+ " L " + this.x1 + " " + (this.y2 + this.y3) + " L " + (this.x1 + 11) + " " + (this.y2 + this.y3);
722
+ this.arrowPath = "M " + (this.x2 - 8) + " " + (this.y1 + this.manualChild) +
723
+ " L " + this.x2 + " " + (this.y1 - (4 + this.lineStroke) + this.manualChild) +
724
+ " L " + this.x2 + " " + (this.y1 + 4 + this.lineStroke + this.manualChild) + " Z";
807
725
  }
808
726
  if (this.getParentPosition(data) === 'SFType3') {
809
- div = div + direction + (data.childLeft + data.childWidth) + 'px;top:' + (isVirtual ? connectorLine.top :
810
- ((!this.parent.allowTaskbarOverlap ? childOverlapTopValue : (data.childIndex * data.rowHeight)) + addTop + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
811
- 'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="SFType3">';
812
- div = div + duplicateStingOne;
813
- div = div + eLine;
814
- div = div + (isMilestone ? direction + '4px;width:' + (16 + this.lineStroke) : direction + '10px;width:' +
815
- (10 + this.lineStroke)) + 'px;top:' + (-(13 + ((this.lineStroke - 1) * 2) - 1)) + 'px;' +
816
- this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
817
- div = div + eLine;
818
- div = div + direction + '20px;top:' + (-(13 + ((this.lineStroke - 1) * 2))) + 'px;width:0px;' +
819
- this.getBorderStyles('left', this.lineStroke) +
820
- this.getBorderStyles('top', (heightValue + borderTopWidth - (this.lineStroke - 1))) + 'position:relative;"></div>';
821
- div = div + eLine;
822
- div = div + direction + '20px;top:' + (-(13 + ((this.lineStroke - 1) * 2))) + 'px;width:' +
823
- ((data.parentLeft - (data.childLeft + data.childWidth + 20)) + this.lineStroke) + 'px;' +
824
- this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div></div>';
727
+ this.taskLineValue = this.parent.renderBaseline ? this.taskLineValue : 0;
728
+ this.point1 = (data.parentLeft - (data.childEndPoint + (data.milestoneParent ? 25 : 20))) + 1 + (this.parent.renderBaseline ? (data.milestoneParent ? 5 : 0) : 0);
729
+ this.point2 = this.parent.enableVirtualization ? rowPositionHeight : ((!this.parent.allowTaskbarOverlap ? parentOverlapTopValue : (data.childIndex * data.rowHeight)) + this.getTaskbarMidpoint(data.milestoneChild));
730
+ this.x1 = data.childEndPoint;
731
+ this.x2 = this.x1 + (data.milestoneChild ? 9 : 8);
732
+ this.x3 = this.x2 + (data.milestoneChild ? 17 : 11);
733
+ this.y1 = this.point2 + ((data.isManualParent && data.isManualChild) ? -10 : 0);
734
+ this.y2 = this.y1 + heightValue + this.taskLineValue + (this.parent.renderBaseline ? (data.milestoneParent ? 10 : 0) : 0);
735
+ this.manualParent = (data.isManualParent && !data.isManualChild ? -10 : 0);
736
+ this.manualChild = (data.isManualChild && !data.isManualParent ? -10 : 0);
737
+ this.connectorLinePath = "M " + this.x2 + " " + (this.y1 + this.manualParent + this.manualChild) + " L " + this.x3 + " " + (this.y1 + this.manualParent + this.manualChild) +
738
+ " L " + this.x3 + " " + this.y2 + " L " + (this.x3 + this.point1) + " " + this.y2;
739
+ this.arrowPath = "M " + (this.x2 - 8) + " " + (this.y1 + this.manualChild) +
740
+ " L " + this.x2 + " " + (this.y1 - (4 + this.lineStroke) + this.manualChild) +
741
+ " L " + this.x2 + " " + (this.y1 + 4 + this.lineStroke + this.manualChild) + " Z";
825
742
  }
826
743
  if (this.getParentPosition(data) === 'SFType1') {
827
- div = div + direction + (data.parentLeft - 10) + 'px;top:' + (isVirtual ? connectorLine.top :
828
- ((!this.parent.allowTaskbarOverlap ? parentOverlapTopValue : (data.parentIndex * data.rowHeight)) + addTop + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
829
- 'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="SFType1">';
830
- div = div + eLine;
831
- div = div + 'width:11px;' + this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
832
- div = div + eLine;
833
- div = div + 'width:0px;' + this.getBorderStyles('left', this.lineStroke) +
834
- this.getBorderStyles('top', (heightValue + borderTopWidth - this.getconnectorLineGap(data) - this.lineStroke)) + 'position:relative;"></div>';
835
- div = div + eLine;
836
- div = div + 'width:' + (((data.childLeft + data.childWidth) - (data.parentLeft)) + (30 + this.lineStroke)) + 'px;' +
837
- this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
838
- div = div + eLine;
839
- div = div + direction + (((data.childLeft + data.childWidth) - (data.parentLeft)) + 30) +
840
- 'px;width:0px;' + this.getBorderStyles('left', this.lineStroke) +
841
- this.getBorderStyles('top', (this.getconnectorLineGap(data) - this.lineStroke)) + 'position:relative;"></div>';
842
- div = div + eLine;
843
- div = div + (isMilestone ? (direction + (((data.childLeft + data.childWidth) -
844
- (data.parentLeft)) + 15) + 'px;width:' + (15 + this.lineStroke)) : (direction +
845
- (((data.childLeft + data.childWidth) - (data.parentLeft)) + 20) + 'px;width:' + (10 + this.lineStroke))) + 'px;' +
846
- this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
847
- div = div + duplicateStingFour + 'top:' + (-6 - this.lineStroke) + 'px;' +
848
- 'border-bottom-width:' + (5 + this.lineStroke) + 'px;border-top-width:' +
849
- (5 + this.lineStroke) + 'px;position:relative;"></div></div>';
744
+ this.taskLineValue = this.parent.renderBaseline ? this.taskLineValue : data.milestoneChild ? 1 : 0;
745
+ this.point1 = heightValue - this.getconnectorLineGap(data) + this.taskLineValue;
746
+ this.point2 = this.getconnectorLineGap(data);
747
+ this.x1 = data.parentLeft - 10;
748
+ this.y1 = this.parent.enableVirtualization ? rowPositionHeight : ((!this.parent.allowTaskbarOverlap ? parentOverlapTopValue : (data.parentIndex * data.rowHeight)) + this.getTaskbarMidpoint(data.milestoneParent)) + +((data.isManualParent && data.isManualChild) ? -10 : 0);
749
+ this.x2 = (data.childEndPoint - data.parentLeft) + 31;
750
+ this.y2 = this.y1 + this.point1;
751
+ this.x3 = (data.childEndPoint - data.parentLeft) + 18;
752
+ this.y3 = this.y2 - (this.y2 % data.rowHeight);
753
+ this.manualParent = (data.isManualParent && !data.isManualChild ? -10 : 0);
754
+ this.manualChild = (data.isManualChild && !data.isManualParent ? -10 : 0);
755
+ 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 +
756
+ " 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);
757
+ this.arrowPath = "M " + (this.x1 + this.x3 - 8) + " " + (this.y2 + this.point2 + this.manualChild) +
758
+ " L " + (this.x1 + this.x3) + " " + (this.y2 + this.point2 - (4 + this.lineStroke) + this.manualChild) +
759
+ " L " + (this.x1 + this.x3) + " " + (this.y2 + this.point2 + 4 + this.lineStroke + this.manualChild) + " Z";
850
760
  }
851
761
  if (this.getParentPosition(data) === 'SFType2') {
852
- div = div + direction + (data.childLeft + data.childWidth) + 'px;top:' + (isVirtual ? connectorLine.top :
853
- ((!this.parent.allowTaskbarOverlap ? parentOverlapTopValue : (data.parentIndex * data.rowHeight)) + addTop + this.getTaskbarMidpoint(isMilestoneParent) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
854
- 'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="SFType2">';
855
- div = div + eLine;
856
- div = div + direction + (((data.parentLeft) - (data.childLeft + data.childWidth)) - 10) +
857
- 'px;width:11px;' + this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
858
- div = div + eLine;
859
- div = div + direction + (((data.parentLeft) - (data.childLeft + data.childWidth)) - 10) +
860
- 'px;width:0px;' + this.getBorderStyles('left', this.lineStroke) +
861
- this.getBorderStyles('top', (heightValue + borderTopWidth - this.lineStroke)) + 'position:relative;"></div>';
862
- div = div + eLine;
863
- div = div + (isMilestone ? (direction + '4px;width:' + (((data.parentLeft) - (data.childLeft + data.childWidth))
864
- - (14 - this.lineStroke))) : (direction + '10px;width:' + (((data.parentLeft) -
865
- (data.childLeft + data.childWidth)) - (20 - this.lineStroke)))) +
866
- 'px;' + this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
867
- div = div + leftArrow;
868
- div = div + direction + '0px;' + this.getBorderStyles((this.parent.enableRtl ? 'right' : 'left'), 10) +
869
- 'top:' + (-6 - this.lineStroke) + 'px;border-bottom-width:' + (5 + this.lineStroke) +
870
- 'px;border-top-width:' + (5 + this.lineStroke) + 'px;width:0;height:0;position:relative;"></div></div>';
871
- }
872
- connectorContainer += div;
873
- connectorContainer += '</div>';
762
+ this.taskLineValue = this.parent.renderBaseline ? this.taskLineValue : 0;
763
+ this.x1 = data.childEndPoint;
764
+ this.y1 = this.parent.enableVirtualization ? rowPositionHeight : ((!this.parent.allowTaskbarOverlap ? parentOverlapTopValue : (data.parentIndex * data.rowHeight)) + this.getTaskbarMidpoint(data.milestoneParent)) + +((data.isManualParent && data.isManualChild) ? -10 : 0);
765
+ this.x2 = (data.parentLeft - data.childEndPoint);
766
+ this.y2 = this.y1 + heightValue + this.taskLineValue;
767
+ this.manualParent = (data.isManualParent && !data.isManualChild ? -10 : 0);
768
+ this.manualChild = (data.isManualChild && !data.isManualParent ? -10 : 0);
769
+ 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) +
770
+ " L " + (this.x1 + this.x2 - 10) + " " + this.y2 + " L " + (this.x1 + 8) + " " + this.y2;
771
+ this.arrowPath = "M " + this.x1 + " " + (this.y2 + this.manualChild) +
772
+ " L " + (this.x1 + 8) + " " + (this.y2 - (4 + this.lineStroke) + this.manualChild) +
773
+ " L " + (this.x1 + 8) + " " + (this.y2 + 4 + this.lineStroke + this.manualChild) + " Z";
774
+ }
775
+ this.connectorPath.setAttribute("d", this.connectorLinePath);
776
+ this.arrowlinePath.setAttribute("d", this.arrowPath);
874
777
  }
875
- return connectorContainer;
778
+ return this.groupObject.outerHTML;
876
779
  };
877
780
  /**
878
781
  * @param {IConnectorLineObject} data .
@@ -938,10 +841,10 @@ var ConnectorLine = /** @class */ (function () {
938
841
  * @private
939
842
  */
940
843
  ConnectorLine.prototype.getConnectorLineTooltipInnerTd = function (fromTaskName, fromPredecessorText, toTaskName, toPredecessorText) {
941
- var innerTd = '<tr id="fromPredecessor"><td >' + this.parent.localeObj.getConstant('from') + '</td><td> ';
942
- innerTd = innerTd + fromTaskName + ' </td><td> ' + this.parent.localeObj.getConstant(fromPredecessorText) + ' </td> </tr>';
943
- innerTd = innerTd + '<tr id="toPredecessor"><td>' + this.parent.localeObj.getConstant('to') + '</td><td> ' + toTaskName;
944
- innerTd = innerTd + ' </td><td> ' + this.parent.localeObj.getConstant(toPredecessorText) + ' </td></tr></tbody><table>';
844
+ var innerTd = '<tr id="fromPredecessor"><td style="padding: 4px;">' + this.parent.localeObj.getConstant('from') + '</td><td> ';
845
+ innerTd = innerTd + fromTaskName + ' </td><td style="padding: 2px;"> ' + this.parent.localeObj.getConstant(fromPredecessorText) + ' </td> </tr>';
846
+ innerTd = innerTd + '<tr id="toPredecessor"><td style="padding: 4px;">' + this.parent.localeObj.getConstant('to') + '</td><td> ' + toTaskName;
847
+ innerTd = innerTd + ' </td><td style="padding: 2px;"> ' + this.parent.localeObj.getConstant(toPredecessorText) + ' </td></tr></tbody><table>';
945
848
  return innerTd;
946
849
  };
947
850
  /**