@syncfusion/ej2-gantt 21.2.9 → 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 +23 -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 +751 -715
  7. package/dist/es6/ej2-gantt.es2015.js.map +1 -1
  8. package/dist/es6/ej2-gantt.es5.js +790 -755
  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 +19 -18
  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 +9 -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 +10 -20
  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 +21 -18
  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,8 +1,9 @@
1
- import { Browser, ChildProperty, Collection, Complex, Component, Event, EventHandler, Internationalization, KeyboardEvents, L10n, NotifyPropertyChanges, Property, SanitizeHtmlHelper, addClass, append, classList, closest, compile, createElement, deleteObject, extend, formatUnit, getValue, isNullOrUndefined, isObject, isObjectArray, isUndefined, merge, remove, removeClass, setValue } from '@syncfusion/ej2-base';
1
+ import { Browser, ChildProperty, Collection, Complex, Component, Event, EventHandler, Internationalization, KeyboardEvents, L10n, NotifyPropertyChanges, Property, SanitizeHtmlHelper, addClass, append, classList, closest, compile, createElement, deleteObject, extend, formatUnit, getValue, initializeCSPTemplate, isNullOrUndefined, isObject, isObjectArray, isUndefined, merge, remove, removeClass, setValue } from '@syncfusion/ej2-base';
2
2
  import { Dialog, Tooltip, createSpinner, hideSpinner, showSpinner } from '@syncfusion/ej2-popups';
3
3
  import { Edit, ForeignKey, Grid, Page, Predicate, Toolbar, ValueFormatter, click, filterAfterOpen, getActualProperties, getCustomDateFormat, getFilterMenuPostion, getForeignData, getObject, getUid, parentsUntil, setCssInGridPopUp } from '@syncfusion/ej2-grids';
4
4
  import { CacheAdaptor, DataManager, DataUtil, Deferred, ODataAdaptor, ODataV4Adaptor, Query, RemoteSaveAdaptor, UrlAdaptor, WebApiAdaptor, WebMethodAdaptor } from '@syncfusion/ej2-data';
5
5
  import { ColumnMenu, ContextMenu, Edit as Edit$1, ExcelExport, Filter, Reorder, Resize, RowDD, Selection, Sort, TreeGrid, VirtualScroll } from '@syncfusion/ej2-treegrid';
6
+ import { SvgRenderer } from '@syncfusion/ej2-svg-base';
6
7
  import { Splitter } from '@syncfusion/ej2-layouts';
7
8
  import { ContextMenu as ContextMenu$1, Tab, Toolbar as Toolbar$1 } from '@syncfusion/ej2-navigations';
8
9
  import { Count, HtmlEditor, Link, QuickToolbar, RichTextEditor, Toolbar as Toolbar$2 } from '@syncfusion/ej2-richtexteditor';
@@ -725,7 +726,6 @@ var DateProcessor = /** @__PURE__ @class */ (function () {
725
726
  * @private
726
727
  */
727
728
  DateProcessor.prototype.getValidStartDate = function (ganttProp, isAuto) {
728
- var _this = this;
729
729
  var sDate = null;
730
730
  var startDate = isAuto ? ganttProp.autoStartDate : ganttProp.startDate;
731
731
  var endDate = isAuto ? ganttProp.autoEndDate : ganttProp.endDate;
@@ -736,24 +736,7 @@ var DateProcessor = /** @__PURE__ @class */ (function () {
736
736
  this.setTime(this.parent.defaultStartTime, sDate);
737
737
  }
738
738
  else if (!isNullOrUndefined(duration)) {
739
- this.parent.flatData.map(function (record) {
740
- if (record.ganttProperties.taskId == ganttProp.taskId) {
741
- if ((!isNullOrUndefined(record.parentItem)) && (record.parentItem.taskId)) {
742
- _this.parent.flatData.map(function (data) {
743
- if (data.ganttProperties.taskId === record.parentItem.taskId) {
744
- if (!isNullOrUndefined(data.ganttProperties.startDate))
745
- sDate = data.ganttProperties.startDate;
746
- }
747
- else {
748
- sDate = _this.getProjectStartDate(ganttProp);
749
- }
750
- });
751
- }
752
- else {
753
- sDate = _this.getProjectStartDate(ganttProp);
754
- }
755
- }
756
- });
739
+ sDate = this.getProjectStartDate(ganttProp);
757
740
  }
758
741
  }
759
742
  else {
@@ -1565,7 +1548,15 @@ var DateProcessor = /** @__PURE__ @class */ (function () {
1565
1548
  var segment = segments[i];
1566
1549
  var sDate = segment.startDate;
1567
1550
  var eDate = segment.endDate;
1568
- duration += Math.ceil(this.getTimeDifference(sDate, eDate) / (1000 * 60 * 60 * 24));
1551
+ if (this.parent.timelineModule.bottomTier === "Hour") {
1552
+ duration += Math.ceil(this.getTimeDifference(sDate, eDate) / (1000 * 60 * 60));
1553
+ }
1554
+ else if (this.parent.timelineModule.bottomTier === "Minutes") {
1555
+ duration += Math.ceil(this.getTimeDifference(sDate, eDate) / (1000 * 60));
1556
+ }
1557
+ else {
1558
+ duration += Math.ceil(this.getTimeDifference(sDate, eDate) / (1000 * 60 * 60 * 24));
1559
+ }
1569
1560
  }
1570
1561
  return duration;
1571
1562
  };
@@ -1923,7 +1914,7 @@ var TaskProcessor = /** @__PURE__ @class */ (function (_super) {
1923
1914
  (this.parent.taskMode === 'Manual') ? false :
1924
1915
  data[taskSettings.manual] === true ? false : true;
1925
1916
  this.parent.setRecordValue('ganttProperties', ganttProperties, ganttData);
1926
- if (!isNullOrUndefined(data[taskSettings.id]) && (!((this.parent.viewType === "ResourceView" && level == 0))) || data[taskSettings.name] === "Unassigned Task") {
1917
+ if (!isNullOrUndefined(data[taskSettings.id])) {
1927
1918
  id = data[taskSettings.id];
1928
1919
  name = data[taskSettings.name];
1929
1920
  this.addTaskData(ganttData, data, isLoad);
@@ -2366,7 +2357,7 @@ var TaskProcessor = /** @__PURE__ @class */ (function (_super) {
2366
2357
  startDate = this.getDateFromFormat(data[taskSettings.startDate], true);
2367
2358
  endDate = this.getDateFromFormat(data[taskSettings.endDate], true);
2368
2359
  }
2369
- var segments = taskSettings.segments && (!isNullOrUndefined(data[taskSettings.segments]) || !isNullOrUndefined(ganttData.taskData)) ? (data[taskSettings.segments] ||
2360
+ var segments = taskSettings.segments ? (data[taskSettings.segments] ||
2370
2361
  ganttData.taskData[taskSettings.segments]) : null;
2371
2362
  var isMileStone = taskSettings.milestone ? data[taskSettings.milestone] ? true : false : false;
2372
2363
  var durationMapping = data[taskSettings.durationUnit] ? data[taskSettings.durationUnit] : '';
@@ -2988,7 +2979,7 @@ var TaskProcessor = /** @__PURE__ @class */ (function (_super) {
2988
2979
  var data_1 = [];
2989
2980
  var _loop_4 = function (k) {
2990
2981
  resourceData.filter(function (resourceInfo) {
2991
- if (resourceInfo[resourceSettings.id] === preTaskResources[k][resourceSettings.id]) {
2982
+ if (resourceInfo[resourceSettings.id] === preTaskResources[k][resourceSettings.id] && data_1.indexOf(preTaskResources[k]) === -1) {
2992
2983
  data_1.push(preTaskResources[k]);
2993
2984
  }
2994
2985
  });
@@ -3075,15 +3066,17 @@ var TaskProcessor = /** @__PURE__ @class */ (function (_super) {
3075
3066
  else {
3076
3067
  hierarchicalData = this.parent.dataSource;
3077
3068
  }
3078
- hierarchicalData.map(function (record) {
3079
- if (task.ganttProperties.taskId === record[_this.parent.taskFields.id]) {
3080
- if (!isNullOrUndefined(_this.parent.taskFields.startDate)) {
3081
- task[_this.parent.taskFields.startDate] = record[_this.parent.taskFields.startDate];
3082
- }
3083
- if (!isNullOrUndefined(_this.parent.taskFields.endDate)) {
3084
- task[_this.parent.taskFields.endDate] = record[_this.parent.taskFields.endDate];
3069
+ this.parent.flatData.map(function (data) {
3070
+ hierarchicalData.map(function (record) {
3071
+ if (data.ganttProperties.taskId === record[_this.parent.taskFields.id]) {
3072
+ if (!isNullOrUndefined(_this.parent.taskFields.startDate)) {
3073
+ task[_this.parent.taskFields.endDate] = record[_this.parent.taskFields.endDate];
3074
+ }
3075
+ if (!isNullOrUndefined(_this.parent.taskFields.endDate)) {
3076
+ task[_this.parent.taskFields.endDate] = record[_this.parent.taskFields.endDate];
3077
+ }
3085
3078
  }
3086
- }
3079
+ });
3087
3080
  });
3088
3081
  };
3089
3082
  TaskProcessor.prototype.getWorkInHour = function (work, workUnit) {
@@ -3193,9 +3186,6 @@ var TaskProcessor = /** @__PURE__ @class */ (function (_super) {
3193
3186
  return resourceIdCollection;
3194
3187
  }
3195
3188
  resourceIdCollection = data[this.parent.taskFields.resourceInfo];
3196
- if (resourceIdCollection != "" && typeof resourceIdCollection == "string") {
3197
- resourceIdCollection = resourceIdCollection.split(',');
3198
- }
3199
3189
  var resourceData;
3200
3190
  if (!isNullOrUndefined(this.parent.editModule) && !isNullOrUndefined(this.parent.editModule.dialogModule)
3201
3191
  && this.parent.editModule.dialogModule.isAddNewResource) {
@@ -3205,7 +3195,6 @@ var TaskProcessor = /** @__PURE__ @class */ (function (_super) {
3205
3195
  resourceData = this.parent.resources;
3206
3196
  }
3207
3197
  var resourceIDMapping = this.parent.resourceFields.id;
3208
- var resourceNameMapping = this.parent.resourceFields.name;
3209
3198
  var resourceUnitMapping = this.parent.resourceFields.unit;
3210
3199
  var resourceGroup = this.parent.resourceFields.group;
3211
3200
  var resources = [];
@@ -3216,7 +3205,7 @@ var TaskProcessor = /** @__PURE__ @class */ (function (_super) {
3216
3205
  return true;
3217
3206
  }
3218
3207
  else {
3219
- return (resourceIdCollection[count] === resourceInfo[resourceIDMapping]) || (resourceIdCollection[count] === resourceInfo[resourceNameMapping]);
3208
+ return (resourceIdCollection[count] === resourceInfo[resourceIDMapping]);
3220
3209
  }
3221
3210
  });
3222
3211
  var ganttDataResource = extend({}, resource[0]);
@@ -3273,7 +3262,9 @@ var TaskProcessor = /** @__PURE__ @class */ (function (_super) {
3273
3262
  if (resourceUnit !== 100) {
3274
3263
  resName += '[' + resourceUnit + '%' + ']';
3275
3264
  }
3276
- resourceName.push(resName);
3265
+ if (!isNullOrUndefined(resName)) {
3266
+ resourceName.push(resName);
3267
+ }
3277
3268
  if (data.taskData) {
3278
3269
  var mapping = taskMapping.resourceInfo;
3279
3270
  // eslint-disable-next-line
@@ -3774,7 +3765,8 @@ var TaskProcessor = /** @__PURE__ @class */ (function (_super) {
3774
3765
  if (!isNullOrUndefined(ganttRecord.segments) && ganttRecord.segments.length > 0) {
3775
3766
  var segments = ganttRecord.segments;
3776
3767
  var fixedWidth = true;
3777
- var totalTaskWidth = this.splitTasksDuration(segments) * this.parent.perDayWidth;
3768
+ var totalTaskWidth = this.splitTasksDuration(segments) * ((this.parent.timelineModule.bottomTier === "Hour" || this.parent.timelineModule.bottomTier === "Minutes") ? this.parent.timelineSettings.timelineUnitSize : this.parent.perDayWidth);
3769
+
3778
3770
  var totalProgressWidth = this.parent.dataOperation.getProgressWidth(totalTaskWidth, ganttRecord.progress);
3779
3771
  for (var i = 0; i < segments.length; i++) {
3780
3772
  var segment = segments[i];
@@ -3822,6 +3814,8 @@ var TaskProcessor = /** @__PURE__ @class */ (function (_super) {
3822
3814
  var ganttRecord = data.ganttProperties;
3823
3815
  this.parent.setRecordValue('autoWidth', this.calculateWidth(data, true), ganttRecord, true);
3824
3816
  this.parent.setRecordValue('autoLeft', this.calculateLeft(ganttRecord, true), ganttRecord, true);
3817
+ this.parent.setRecordValue('progressWidth', this.parent.dataOperation.getProgressWidth((ganttRecord.isAutoSchedule ||
3818
+ !data.hasChildRecords ? ganttRecord.width : ganttRecord.autoWidth), ganttRecord.progress), ganttRecord, true);
3825
3819
  };
3826
3820
  /**
3827
3821
  * To calculate parent progress value
@@ -4047,15 +4041,10 @@ var childTaskBarInnerDiv = 'e-gantt-child-taskbar-inner-div';
4047
4041
  var childProgressBarInnerDiv = 'e-gantt-child-progressbar-inner-div';
4048
4042
  var criticalChildTaskBarInnerDiv = 'e-gantt-child-critical-taskbar-inner-div';
4049
4043
  var criticalChildProgressBarInnerDiv = 'e-gantt-child-critical-progressbar-inner-div';
4050
- var milestoneTop = 'e-milestone-top';
4051
- var milestoneBottom = 'e-milestone-bottom';
4052
- var criticalMilestoneTop = 'e-critical-milestone-top';
4053
- var criticalMilestoneBottom = 'e-critical-milestone-bottom';
4044
+ var criticalMilestone = 'e-critical-milestone';
4054
4045
  var baselineBar = 'e-baseline-bar';
4055
4046
  var baselineMilestoneContainer = 'e-baseline-gantt-milestone-container';
4056
- var baselineMilestoneDiv = 'e-baseline-gantt-milestone';
4057
- var baselineMilestoneTop = 'e-baseline-milestone-top';
4058
- var baselineMilestoneBottom = 'e-baseline-milestone-bottom';
4047
+
4059
4048
  var chartRowCell = 'e-chart-row-cell';
4060
4049
  var chartRow = 'e-chart-row';
4061
4050
  var rowExpand = 'e-row-expand';
@@ -4069,15 +4058,11 @@ var progressBarHandlerAfter = 'e-progressbar-handler-after';
4069
4058
  var icon = 'e-icon';
4070
4059
  var traceMilestone = 'e-gantt-milestone';
4071
4060
  var parentMilestone = 'e-gantt-parent-milestone';
4072
- var parentMilestoneTop = 'e-parent-milestone-top';
4073
- var parentMilestoneBottom = 'e-parent-milestone-bottom';
4074
4061
  var traceChildTaskBar = 'e-gantt-child-taskbar';
4075
4062
  var traceChildProgressBar = 'e-gantt-child-progressbar';
4076
4063
  var manualParentMainContainer = 'e-manualparent-main-container';
4077
4064
  var manualParentTaskBar = 'e-gantt-manualparenttaskbar';
4078
4065
  var manualParentMilestone = 'e-gantt-manualparent-milestone';
4079
- var manualParentMilestoneTop = 'e-manualparent-milestone-top';
4080
- var manualParentMilestoneBottom = 'e-manualparent-milestone-bottom';
4081
4066
  var manualChildTaskBar = 'e-gantt-child-manualtaskbar';
4082
4067
  var manualChildProgressBar = 'e-gantt-child-manualprogressbar';
4083
4068
  var manualParentRightResizer = 'e-gantt-manualparenttaskbar-right';
@@ -4108,25 +4093,29 @@ var weekend = 'e-weekend';
4108
4093
  var unscheduledTaskbarLeft = 'e-gantt-unscheduled-taskbar-left';
4109
4094
  var unscheduledTaskbarRight = 'e-gantt-unscheduled-taskbar-right';
4110
4095
  var unscheduledTaskbar = 'e-gantt-unscheduled-taskbar';
4111
- var unscheduledMilestoneTop = 'e-unscheduled-milestone-top';
4112
- var unscheduledMilestoneBottom = 'e-unscheduled-milestone-bottom';
4096
+
4097
+
4113
4098
  //Connector Line
4114
4099
  var dependencyViewContainer = 'e-gantt-dependency-view-container';
4115
4100
  var connectorLineContainer = 'e-connector-line-container';
4116
- var connectorLine = 'e-line';
4117
- var criticalConnectorLine = 'e-criticalconnector-line';
4118
- var criticalConnectorLineRightArrow = 'e-criticalconnector-line-right-arrow';
4119
- var criticalConnectorLineLeftArrow = 'e-criticalconnector-line-left-arrow';
4120
- var connectorLineRightArrow = 'e-connector-line-right-arrow';
4121
- var connectorLineLeftArrow = 'e-connector-line-left-arrow';
4101
+
4102
+ var connectorLineSVG = 'e-connector-line';
4103
+ var criticalConnectorLineSVG = 'e-critical-line';
4104
+ var criticalConnectorArrowSVG = 'e-critical-line-arrow';
4105
+ var connectorLineArrow = 'e-connector-line-arrow';
4106
+
4107
+
4108
+
4109
+
4110
+
4122
4111
  var connectorLineZIndex = 'e-connector-line-z-index';
4123
- var connectorLineHover = 'e-connector-line-hover';
4124
- var criticalConnectorLineHover = 'e-critical-connector-line-hover';
4125
- var connectorLineHoverZIndex = 'e-connector-line-hover-z-index';
4126
- var connectorLineRightArrowHover = 'e-connector-line-right-arrow-hover';
4127
- var connectorLineLeftArrowHover = 'e-connector-line-left-arrow-hover';
4128
- var criticalConnectorLineRightArrowHover = 'e-critical-connector-line-right-arrow-hover';
4129
- var criticalConnectorLineLeftArrowHover = 'e-critical-connector-line-left-arrow-hover';
4112
+
4113
+
4114
+
4115
+
4116
+
4117
+
4118
+
4130
4119
 
4131
4120
  var connectorPointLeft = 'e-connectorpoint-left';
4132
4121
  var connectorPointRight = 'e-connectorpoint-right';
@@ -4852,6 +4841,16 @@ var GanttChart = /** @__PURE__ @class */ (function () {
4852
4841
  if (this.parent.isDestroyed || e.which === 3) {
4853
4842
  return;
4854
4843
  }
4844
+ var resizeCheck = this.parent.ganttChartModule.chartBodyContainer.querySelector('.e-taskbar-resize-div');
4845
+ if (!isNullOrUndefined(resizeCheck)) {
4846
+ resizeCheck.remove();
4847
+ }
4848
+ var Check = this.parent.ganttChartModule.chartBodyContainer.querySelector('.e-clone-taskbar');
4849
+ if (!isNullOrUndefined(Check)) {
4850
+ var clonetbody = Check.parentElement;
4851
+ var cloneTable = clonetbody.parentElement;
4852
+ cloneTable.remove();
4853
+ }
4855
4854
  var isTaskbarEdited = false;
4856
4855
  if (this.parent.editSettings.allowTaskbarEditing &&
4857
4856
  getValue('editModule.taskbarEditModule.isMouseDragged', this.parent) &&
@@ -5413,6 +5412,71 @@ var GanttChart = /** @__PURE__ @class */ (function () {
5413
5412
  $target.closest('.e-chart-row') ? $target.closest('.e-chart-row').rowIndex : -1;
5414
5413
  var isTab = (e.action === 'tab') ? true : false;
5415
5414
  var nextElement = this.getNextElement($target, isTab, isInEditedState);
5415
+ if (nextElement && $target.classList.contains('e-headercell')) {
5416
+ var colIndex = parseInt(nextElement.getAttribute('data-colindex'));
5417
+ if (e.action === 'shiftTab') {
5418
+ while (colIndex != -1 && !this.parent.treeGrid.columns[colIndex]['visible']) {
5419
+ colIndex = colIndex - 1;
5420
+ }
5421
+ if (colIndex != -1) {
5422
+ nextElement = document.getElementsByClassName('e-columnheader')[0].childNodes[colIndex];
5423
+ }
5424
+ else {
5425
+ var toolbarItems = document.getElementsByClassName('e-toolbar-item');
5426
+ for (var i = toolbarItems.length - 1; i > 0; i--) {
5427
+ if (!document.getElementsByClassName('e-toolbar-item')[i].classList.contains('e-hidden')) {
5428
+ nextElement = document.getElementsByClassName('e-toolbar-item')[i];
5429
+ break;
5430
+ }
5431
+ }
5432
+ }
5433
+ }
5434
+ else {
5435
+ while (!this.parent.treeGrid.columns[colIndex]['visible']) {
5436
+ colIndex = colIndex + 1;
5437
+ }
5438
+ nextElement = document.getElementsByClassName('e-columnheader')[0].childNodes[colIndex];
5439
+ }
5440
+ }
5441
+ if (!nextElement && e.action === 'shiftTab' && $target.classList.contains('e-headercell')) {
5442
+ var toolbarItems = document.getElementsByClassName('e-toolbar-item');
5443
+ for (var i = toolbarItems.length - 1; i > 0; i--) {
5444
+ if (!document.getElementsByClassName('e-toolbar-item')[i].classList.contains('e-hidden')) {
5445
+ nextElement = document.getElementsByClassName('e-toolbar-item')[i];
5446
+ break;
5447
+ }
5448
+ }
5449
+ }
5450
+ if ($target.classList.contains('e-treegrid') && !nextElement) {
5451
+ for (var i = 0; i < this.parent.treeGrid.columns.length; i++) {
5452
+ if (this.parent.treeGrid.columns[i]['visible']) {
5453
+ nextElement = document.getElementsByClassName('e-columnheader')[0].childNodes[i];
5454
+ break;
5455
+ }
5456
+ }
5457
+ }
5458
+ if (!nextElement && $target.classList.contains('e-headercell')) {
5459
+ nextElement = document.getElementsByClassName('e-timeline-header-container')[0];
5460
+ }
5461
+ if (e.action !== 'shiftTab' && $target.classList.contains('e-timeline-header-container')) {
5462
+ for (var i = 0; i < this.parent.treeGrid.columns.length; i++) {
5463
+ if (this.parent.treeGrid.columns[i]['visible']) {
5464
+ nextElement = document.getElementsByClassName('e-row')[0].childNodes[i];
5465
+ break;
5466
+ }
5467
+ }
5468
+ }
5469
+ if (e.action === 'shiftTab' && !nextElement) {
5470
+ nextElement = document.getElementsByClassName('e-timeline-header-container')[0];
5471
+ }
5472
+ if (e.action === 'shiftTab' && $target.classList.contains('e-timeline-header-container')) {
5473
+ for (var i = this.parent.treeGrid.columns.length - 1; i > 0; i--) {
5474
+ if (this.parent.treeGrid.columns[i]['visible']) {
5475
+ nextElement = document.getElementsByClassName('e-columnheader')[0].childNodes[i];
5476
+ break;
5477
+ }
5478
+ }
5479
+ }
5416
5480
  this.tempNextElement = nextElement;
5417
5481
  if (!isNullOrUndefined(nextElement) && !isNullOrUndefined(nextElement['cellIndex'])) {
5418
5482
  if (this.parent.allowRowDragAndDrop) {
@@ -5436,7 +5500,7 @@ var GanttChart = /** @__PURE__ @class */ (function () {
5436
5500
  }
5437
5501
  if (typeof nextElement !== 'string') {
5438
5502
  if ($target.classList.contains('e-rowcell') || $target.closest('.e-chart-row-cell') ||
5439
- $target.classList.contains('e-headercell') || $target.closest('.e-segmented-taskbar')) {
5503
+ $target.classList.contains('e-headercell') || $target.closest('.e-segmented-taskbar') || $target.classList.contains('e-timeline-header-container')) {
5440
5504
  e.preventDefault();
5441
5505
  }
5442
5506
  if (isTab && $target.classList.contains('e-rowdragdrop')) {
@@ -5472,11 +5536,21 @@ var GanttChart = /** @__PURE__ @class */ (function () {
5472
5536
  }
5473
5537
  }
5474
5538
  else {
5475
- this.parent.treeGrid.grid.notify('key-pressed', e);
5539
+ if (!nextElement || nextElement && !nextElement.classList.contains('e-headercell')) {
5540
+ if ($target.classList.contains('e-headercell')) {
5541
+ this.manageFocus($target, 'remove', false);
5542
+ }
5543
+ if (!nextElement || $target.classList.contains('e-editedbatchcell')) {
5544
+ this.parent.treeGrid.grid.notify('key-pressed', e);
5545
+ }
5546
+ }
5476
5547
  }
5477
5548
  }
5478
5549
  else {
5479
- this.parent.treeGrid.grid.notify('key-pressed', e);
5550
+ if (!nextElement.classList.contains('e-headercell') && !nextElement.classList.contains('e-rowcell')
5551
+ && !nextElement.classList.contains('e-toolbar-item')) {
5552
+ this.parent.treeGrid.grid.notify('key-pressed', e);
5553
+ }
5480
5554
  }
5481
5555
  }
5482
5556
  if (!(this.parent.editModule && this.parent.editModule.cellEditModule
@@ -5488,7 +5562,8 @@ var GanttChart = /** @__PURE__ @class */ (function () {
5488
5562
  else {
5489
5563
  this.manageFocus($target, 'remove', true);
5490
5564
  }
5491
- if ((nextElement.classList.contains('e-rowcell') && $target.nextElementSibling) || $target.classList.contains('e-right-label-container')) {
5565
+ if ((nextElement.classList.contains('e-rowcell') && $target.nextElementSibling && !$target.classList.contains('e-timeline-header-container'))
5566
+ || $target.classList.contains('e-right-label-container')) {
5492
5567
  if (!$target.classList.contains('e-rowcell')) {
5493
5568
  this.parent.treeGrid.grid.notify('key-pressed', e);
5494
5569
  var fmodule = getValue('focusModule', this.parent.treeGrid.grid);
@@ -5500,7 +5575,17 @@ var GanttChart = /** @__PURE__ @class */ (function () {
5500
5575
  this.manageFocus(nextElement, 'add', false);
5501
5576
  }
5502
5577
  else {
5503
- this.manageFocus(nextElement, 'add', true);
5578
+ if (nextElement && (nextElement.classList.contains('e-toolbar-item') || nextElement.classList.contains('e-headercell')
5579
+ || nextElement.classList.contains("e-rowcell"))) {
5580
+ this.manageFocus($target, 'remove', false);
5581
+ this.manageFocus(nextElement, 'add', false);
5582
+ if ($target.classList.contains('e-treegrid')) {
5583
+ e.preventDefault();
5584
+ }
5585
+ }
5586
+ else {
5587
+ this.manageFocus(nextElement, 'add', true);
5588
+ }
5504
5589
  }
5505
5590
  this.parent.focusModule.setActiveElement(nextElement);
5506
5591
  }
@@ -5587,6 +5672,17 @@ var GanttChart = /** @__PURE__ @class */ (function () {
5587
5672
  var childElement_1 = this.getChildElement(rowElement, isTab);
5588
5673
  return childElement_1;
5589
5674
  }
5675
+ nextElement = $target;
5676
+ if (nextElement && nextElement.parentElement.classList.contains('e-toolbar-item') && this.parent.toolbarModule) {
5677
+ while (nextElement && nextElement.parentElement.classList.contains('e-toolbar-item') && nextElement.parentElement.nextElementSibling.classList.contains('e-toolbar-item')) {
5678
+ if (nextElement.parentElement.nextElementSibling.classList.contains('e-hidden')) {
5679
+ nextElement = nextElement.parentElement.nextElementSibling.childNodes[0];
5680
+ }
5681
+ else {
5682
+ return nextElement.parentElement.nextElementSibling;
5683
+ }
5684
+ }
5685
+ }
5590
5686
  }
5591
5687
  return null;
5592
5688
  };
@@ -8119,7 +8215,7 @@ var GanttTreeGrid = /** @__PURE__ @class */ (function () {
8119
8215
  }
8120
8216
  }; // eslint-disable-next-line
8121
8217
  GanttTreeGrid.prototype.durationValueAccessor = function (field, data, column) {
8122
- var ganttProp = (!isNullOrUndefined(data)) ? data.ganttProperties : null;
8218
+ var ganttProp = data.ganttProperties;
8123
8219
  if (!isNullOrUndefined(ganttProp)) {
8124
8220
  return this.parent.dataOperation.getDurationString(ganttProp.duration, ganttProp.durationUnit);
8125
8221
  }
@@ -9077,7 +9173,7 @@ var ChartRows = /** @__PURE__ @class */ (function (_super) {
9077
9173
  ChartRows.prototype.createChartTable = function () {
9078
9174
  this.taskTable = createElement('table', {
9079
9175
  className: taskTable + ' ' + zeroSpacing, id: 'GanttTaskTable' + this.parent.element.id,
9080
- styles: 'z-index: 2;position: absolute;width:' + this.parent.timelineModule.totalTimelineWidth + 'px;',
9176
+ styles: 'position: absolute;width:' + this.parent.timelineModule.totalTimelineWidth + 'px;',
9081
9177
  attrs: { cellspacing: '0.25px' }
9082
9178
  });
9083
9179
  var colgroup = createElement('colgroup');
@@ -9161,7 +9257,7 @@ var ChartRows = /** @__PURE__ @class */ (function (_super) {
9161
9257
  taskbarInnerDiv = this.createDivElement('<div class="' + childTaskBarInnerDiv + ' ' + traceChildTaskBar +
9162
9258
  ' ' + (data.ganttProperties.isAutoSchedule ? '' : manualChildTaskBar) + '"' +
9163
9259
  'style="width:' + data.ganttProperties.width + 'px;height:' +
9164
- (this.taskBarHeight) + 'px;"></div>');
9260
+ (this.taskBarHeight) + 'px; margin-top :-1px"></div>');
9165
9261
  progressDiv = this.createDivElement('<div class="' + childProgressBarInnerDiv + ' ' +
9166
9262
  traceChildProgressBar + ' ' + (data.ganttProperties.isAutoSchedule ?
9167
9263
  '' : manualChildProgressBar) + '"' +
@@ -9640,15 +9736,8 @@ var ChartRows = /** @__PURE__ @class */ (function (_super) {
9640
9736
  milestoneNode = this.milestoneTemplateFunction(extend({ index: i }, data), this.parent, 'MilestoneTemplate', this.getTemplateID('MilestoneTemplate'), false, undefined, rootElement[0], this.parent.treeGrid['root']);
9641
9737
  }
9642
9738
  else {
9643
- var template = '<div class="' + traceMilestone + '" style="position:absolute;">' +
9644
- '<div class="' + milestoneTop + ' ' + ((!data.ganttProperties.startDate && !data.ganttProperties.endDate) ?
9645
- unscheduledMilestoneTop : '') + '" style="border-right-width:' +
9646
- this.milesStoneRadius + 'px;border-left-width:' + this.milesStoneRadius + 'px;border-bottom-width:' +
9647
- this.milesStoneRadius + 'px;"></div>' +
9648
- '<div class="' + milestoneBottom + ' ' + ((!data.ganttProperties.startDate && !data.ganttProperties.endDate) ?
9649
- unscheduledMilestoneBottom : '') + '" style="top:' +
9650
- (this.milesStoneRadius) + 'px;border-right-width:' + this.milesStoneRadius + 'px; border-left-width:' +
9651
- this.milesStoneRadius + 'px; border-top-width:' + this.milesStoneRadius + 'px;"></div></div>';
9739
+ var template = '<div class="' + traceMilestone + '" style="width:' + ((this.parent.renderBaseline ? this.taskBarHeight - 3 : this.taskBarHeight - 7)) + 'px;height:' +
9740
+ ((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>';
9652
9741
  milestoneNode = this.createDivElement(template);
9653
9742
  }
9654
9743
  return milestoneNode;
@@ -9676,25 +9765,9 @@ var ChartRows = /** @__PURE__ @class */ (function (_super) {
9676
9765
  ChartRows.prototype.getMilestoneBaselineNode = function () {
9677
9766
  var data = this.templateData;
9678
9767
  var baselineMilestoneHeight = this.parent.renderBaseline ? 5 : 2;
9679
- var template = '<div class="' + baselineMilestoneContainer + ' ' + '" style="' +
9680
- (this.parent.enableRtl ? 'right:' : 'left:') + (data.ganttProperties.baselineLeft - this.milesStoneRadius) + 'px;' +
9681
- 'margin-top:' + (-Math.floor(this.parent.rowHeight - this.milestoneMarginTop) + baselineMilestoneHeight) +
9682
- 'px">' + '<div class="' + baselineMilestoneDiv + '">' + '<div class="' + baselineMilestoneDiv +
9683
- ' ' + baselineMilestoneTop + '" ' +
9684
- 'style="top:' + (-this.milestoneHeight) + 'px;border-right:' + this.milesStoneRadius +
9685
- 'px solid transparent;border-left:' + this.milesStoneRadius +
9686
- 'px solid transparent;border-top:0px' +
9687
- 'solid transparent;border-bottom-width:' + this.milesStoneRadius + 'px;' +
9688
- 'border-bottom-style: solid;' + (this.baselineColor ? 'border-bottom-color: ' + this.baselineColor + ';' : '') +
9689
- '"></div>' +
9690
- '<div class="' + baselineMilestoneDiv + ' ' + baselineMilestoneBottom + '" ' +
9691
- 'style="top:' + (this.milesStoneRadius - this.milestoneHeight) + 'px;border-right:' + this.milesStoneRadius +
9692
- 'px solid transparent;border-left:' + this.milesStoneRadius +
9693
- 'px solid transparent;border-bottom:0px' +
9694
- 'solid transparent;border-top-width:' + this.milesStoneRadius + 'px;' +
9695
- 'border-top-style: solid;' +
9696
- (this.baselineColor ? 'border-top-color: ' + this.baselineColor + ';' : '') + '"></div>' +
9697
- '</div></div>';
9768
+ var template = '<div class="' + baselineMilestoneContainer + '" style="width:' + ((this.parent.renderBaseline ? this.taskBarHeight - 5 : this.taskBarHeight - 10) + 2) + 'px;height:' +
9769
+ ((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 -
9770
+ (this.milestoneHeight / 2) + 3) : (data.ganttProperties.left - (this.milestoneHeight / 2) + 2)) + 'px;' + (this.baselineColor ? 'background-color: ' + this.baselineColor + ';' : '') + 'margin-top:' + ((-Math.floor(this.parent.rowHeight - this.milestoneMarginTop) + baselineMilestoneHeight) + 3) + 'px"> </div>';
9698
9771
  return this.createDivElement(template);
9699
9772
  };
9700
9773
  /**
@@ -9820,16 +9893,8 @@ var ChartRows = /** @__PURE__ @class */ (function (_super) {
9820
9893
  (this.parent.enableRtl ? 'right:' : 'left:') + (data.ganttProperties.width - Math.floor(((taskbarHeight / 5) + 8) / 5)) + 'px;height:' +
9821
9894
  ((taskbarHeight / 5) + 8) + 'px;border-right-width:' + taskbarHeight / 5 + 'px;border-bottom:' +
9822
9895
  taskbarHeight / 5 + 'px solid transparent;>' + '</div></div>' : '');
9823
- var milestoneTemplate = '<div class="' + manualParentMilestone + '" style="position:absolute;' +
9824
- (this.parent.enableRtl ? 'right:' : 'left:') +
9825
- (data.ganttProperties.left - data.ganttProperties.autoLeft - (this.milestoneHeight / 2)) +
9826
- 'px;width:' + (this.milesStoneRadius * 2) +
9827
- 'px;">' + '<div class="' + manualParentMilestoneTop + '" style="border-right-width:' +
9828
- this.milesStoneRadius + 'px;border-left-width:' + this.milesStoneRadius + 'px;border-bottom-width:' +
9829
- this.milesStoneRadius + 'px;"></div>' +
9830
- '<div class="' + manualParentMilestoneBottom + '" style="top:' +
9831
- (this.milesStoneRadius) + 'px;border-right-width:' + this.milesStoneRadius + 'px; border-left-width:' +
9832
- this.milesStoneRadius + 'px; border-top-width:' + this.milesStoneRadius + 'px;"></div></div>';
9896
+ var milestoneTemplate = '<div class="' + manualParentMilestone + '" style="width:' + ((this.parent.renderBaseline ? this.taskBarHeight - 3 : this.taskBarHeight - 7)) + 'px;height:' +
9897
+ ((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>';
9833
9898
  return this.createDivElement(data.ganttProperties.duration !== 0 ? template : milestoneTemplate);
9834
9899
  };
9835
9900
  /**
@@ -9854,8 +9919,8 @@ var ChartRows = /** @__PURE__ @class */ (function (_super) {
9854
9919
  this.getExpandClass(data) + ' ' + traceParentTaskBar + '"' +
9855
9920
  ' style="width:' + (data.ganttProperties.isAutoSchedule ? data.ganttProperties.width :
9856
9921
  data.ganttProperties.autoWidth) + 'px;height:' + (data.ganttProperties.isAutoSchedule ? this.taskBarHeight :
9857
- (tHeight * 3)) + 'px;margin-top:' + (data.ganttProperties.isAutoSchedule ? '' :
9858
- (tHeight * 2)) + 'px;">' +
9922
+ (tHeight * 3)) + 'px;margin-top:' + (data.ganttProperties.isAutoSchedule ? -1 :
9923
+ (tHeight * 2)) + 'px; ">' +
9859
9924
  '</div>');
9860
9925
  var progressBarInnerDiv = this.createDivElement('<div class="' + parentProgressBarInnerDiv + ' ' +
9861
9926
  this.getExpandClass(data) + ' ' + traceParentProgressBar + '"' +
@@ -9920,13 +9985,8 @@ var ChartRows = /** @__PURE__ @class */ (function (_super) {
9920
9985
  parentLabel && !parentLabel['elementRef'] && div.innerHTML !== '')
9921
9986
  progressBarInnerDiv[0].querySelectorAll('.e-task-label')[0].textContent = parentLabel;
9922
9987
  }
9923
- var milestoneTemplate = '<div class="' + parentMilestone + '" style="position:absolute;">' +
9924
- '<div class="' + parentMilestoneTop + '" style="border-right-width:' +
9925
- this.milesStoneRadius + 'px;border-left-width:' + this.milesStoneRadius + 'px;border-bottom-width:' +
9926
- this.milesStoneRadius + 'px;"></div>' +
9927
- '<div class="' + parentMilestoneBottom + '" style="top:' +
9928
- (this.milesStoneRadius) + 'px;border-right-width:' + this.milesStoneRadius + 'px; border-left-width:' +
9929
- this.milesStoneRadius + 'px; border-top-width:' + this.milesStoneRadius + 'px;"></div></div>';
9988
+ var milestoneTemplate = '<div class="' + parentMilestone + '" style="width:' + ((this.parent.renderBaseline ? this.taskBarHeight - 3 : this.taskBarHeight - 7)) + 'px;height:' +
9989
+ ((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>';
9930
9990
  template[0].appendChild([].slice.call(progressBarInnerDiv)[0]);
9931
9991
  parentTaskbarNode = data.ganttProperties.isMilestone ?
9932
9992
  this.createDivElement(data.ganttProperties.isAutoSchedule ? milestoneTemplate : '') : template;
@@ -10303,8 +10363,8 @@ var ChartRows = /** @__PURE__ @class */ (function (_super) {
10303
10363
  this.milestoneMarginTop = Math.floor((this.parent.rowHeight - this.milestoneHeight) / 2);
10304
10364
  this.milesStoneRadius = Math.floor((this.milestoneHeight) / 2);
10305
10365
  this.baselineTop = -(Math.floor((this.parent.rowHeight - (this.taskBarHeight + this.taskBarMarginTop))) - 4);
10306
- this.connectorPointWidth = this.parent.isAdaptive ? Math.round(this.taskBarHeight / 2) : 8;
10307
- this.connectorPointMargin = Math.floor((this.taskBarHeight / 2) - (this.connectorPointWidth / 2));
10366
+ this.connectorPointWidth = this.parent.isAdaptive ? Math.round(this.taskBarHeight / 2) : 10;
10367
+ this.connectorPointMargin = Math.floor((this.taskBarHeight / 2) - (this.connectorPointWidth / 2)) - 1;
10308
10368
  };
10309
10369
  /**
10310
10370
  * Function used to refresh Gantt rows.
@@ -10373,7 +10433,6 @@ var ChartRows = /** @__PURE__ @class */ (function (_super) {
10373
10433
  var tempTemplateData = this.parent.currentViewData[i];
10374
10434
  if (this.parent.viewType === 'ResourceView') {
10375
10435
  if (this.parent.editModule && this.parent.editModule.isResourceTaskDeleted || this.parent.isFromOnPropertyChange) {
10376
- this.parent.initialChartRowElements = this.parent.ganttChartModule.getChartRows();
10377
10436
  this.parent.editModule.isResourceTaskDeleted = false;
10378
10437
  }
10379
10438
  if (!tempTemplateData.expanded && this.parent.enableMultiTaskbar) {
@@ -10392,11 +10451,12 @@ var ChartRows = /** @__PURE__ @class */ (function (_super) {
10392
10451
  }
10393
10452
  }
10394
10453
  (_a = this.ganttChartTableBody).replaceChildren.apply(_a, dupChartBody.childNodes);
10454
+ this.parent.initialChartRowElements = this.parent.ganttChartModule.getChartRows();
10395
10455
  }
10396
10456
  this.parent.renderTemplates();
10397
10457
  this.triggerQueryTaskbarInfo();
10398
10458
  this.parent.modifiedRecords = [];
10399
- if (this.parent.viewType === 'ResourceView' && this.parent.showOverAllocation) {
10459
+ if (this.parent.viewType == 'ResourceView' && this.parent.showOverAllocation) {
10400
10460
  this.updateOverlapped();
10401
10461
  }
10402
10462
  if (collapsedResourceRecord.length) {
@@ -10469,7 +10529,7 @@ var ChartRows = /** @__PURE__ @class */ (function (_super) {
10469
10529
  else if (this.templateData.ganttProperties.isMilestone) {
10470
10530
  var milestoneTemplateNode = this.getMilestoneNode(i, taskbarContainerNode);
10471
10531
  if (milestoneTemplateNode && milestoneTemplateNode.length > 0) {
10472
- taskbarContainerNode[0].appendChild([].slice.call(milestoneTemplateNode)[0]);
10532
+ append(milestoneTemplateNode, taskbarContainerNode[0]);
10473
10533
  }
10474
10534
  if (this.parent.renderBaseline && this.templateData.ganttProperties.baselineStartDate &&
10475
10535
  this.templateData.ganttProperties.baselineEndDate) {
@@ -10646,9 +10706,9 @@ var ChartRows = /** @__PURE__ @class */ (function (_super) {
10646
10706
  var classCollections = this.getClassName(args);
10647
10707
  if (args.taskbarType === 'Milestone') {
10648
10708
  args.milestoneColor = taskbarElement.querySelector(classCollections[0]) ?
10649
- getComputedStyle(taskbarElement.querySelector(classCollections[0])).borderBottomColor : null;
10709
+ getComputedStyle(taskbarElement.querySelector(classCollections[0])).backgroundColor : null;
10650
10710
  args.baselineColor = trElement.querySelector(classCollections[1]) ?
10651
- getComputedStyle(trElement.querySelector(classCollections[1])).borderBottomColor :
10711
+ getComputedStyle(trElement.querySelector(classCollections[1])).backgroundColor :
10652
10712
  (trElement.querySelector('.' + baselineBar) ? getComputedStyle(trElement.querySelector('.' + baselineBar)).backgroundColor : null);
10653
10713
  }
10654
10714
  else if (taskbarElement) {
@@ -10716,14 +10776,12 @@ var ChartRows = /** @__PURE__ @class */ (function (_super) {
10716
10776
  }
10717
10777
  if (args.taskbarType === 'Milestone') {
10718
10778
  if (taskbarElement.querySelector(classCollections[0]) &&
10719
- getComputedStyle(taskbarElement.querySelector(classCollections[0])).borderBottomColor !== args.milestoneColor) {
10720
- taskbarElement.querySelector(classCollections[0]).style.borderBottomColor = args.milestoneColor;
10721
- taskbarElement.querySelector('.' + milestoneBottom).style.borderTopColor = args.milestoneColor;
10779
+ getComputedStyle(taskbarElement.querySelector(classCollections[0])).backgroundColor !== args.milestoneColor) {
10780
+ taskbarElement.querySelector(classCollections[0]).style.backgroundColor = args.milestoneColor;
10722
10781
  }
10723
10782
  if (trElement.querySelector(classCollections[1]) &&
10724
- getComputedStyle(trElement.querySelector(classCollections[1])).borderTopColor !== args.baselineColor) {
10725
- trElement.querySelector(classCollections[1]).style.borderBottomColor = args.baselineColor;
10726
- trElement.querySelector('.' + baselineMilestoneBottom).style.borderTopColor = args.baselineColor;
10783
+ getComputedStyle(trElement.querySelector(classCollections[1])).backgroundColor !== args.baselineColor) {
10784
+ trElement.querySelector(classCollections[1]).style.backgroundColor = args.baselineColor;
10727
10785
  }
10728
10786
  if (trElement.querySelector('.' + baselineBar) &&
10729
10787
  getComputedStyle(trElement.querySelector('.' + baselineBar)).borderTopColor !== args.baselineColor) {
@@ -10804,9 +10862,9 @@ var ChartRows = /** @__PURE__ @class */ (function (_super) {
10804
10862
  ChartRows.prototype.getClassName = function (args) {
10805
10863
  var classCollection = [];
10806
10864
  classCollection.push('.' + (args.taskbarType === 'ParentTask' ?
10807
- traceParentTaskBar : args.taskbarType === 'ChildTask' ? traceChildTaskBar : milestoneTop));
10865
+ traceParentTaskBar : args.taskbarType === 'ChildTask' ? traceChildTaskBar : traceMilestone));
10808
10866
  classCollection.push('.' + (args.taskbarType === 'ParentTask' ?
10809
- traceParentProgressBar : args.taskbarType === 'ChildTask' ? traceChildProgressBar : baselineMilestoneTop));
10867
+ traceParentProgressBar : args.taskbarType === 'ChildTask' ? traceChildProgressBar : baselineMilestoneContainer));
10810
10868
  return classCollection;
10811
10869
  };
10812
10870
  /**
@@ -10819,7 +10877,7 @@ var ChartRows = /** @__PURE__ @class */ (function (_super) {
10819
10877
  ChartRows.prototype.templateCompiler = function (template) {
10820
10878
  if (!isNullOrUndefined(template) && template !== '') {
10821
10879
  try {
10822
- if (document.querySelectorAll(template).length) {
10880
+ if (typeof template !== 'function' && document.querySelectorAll(template).length) {
10823
10881
  return compile(document.querySelector(template).innerHTML.trim(), this.parent);
10824
10882
  }
10825
10883
  else {
@@ -11974,11 +12032,28 @@ var Dependency = /** @__PURE__ @class */ (function () {
11974
12032
  */
11975
12033
  var ConnectorLine = /** @__PURE__ @class */ (function () {
11976
12034
  function ConnectorLine(ganttObj) {
12035
+ this.transform = '';
12036
+ this.connectorLinePath = '';
12037
+ this.arrowPath = '';
11977
12038
  this.expandedRecords = [];
11978
12039
  this.parent = ganttObj;
11979
12040
  this.dependencyViewContainer =
11980
- createElement('div', { className: dependencyViewContainer });
12041
+ createElement('div', { className: dependencyViewContainer,
12042
+ });
12043
+ Object.assign(this.dependencyViewContainer.style, {
12044
+ width: "100%",
12045
+ height: "100%",
12046
+ zIndex: 2,
12047
+ position: "absolute",
12048
+ pointerEvents: "none"
12049
+ });
12050
+ this.renderer = new SvgRenderer(this.parent.element.id);
11981
12051
  this.initPublicProp();
12052
+ this.svgObject = this.renderer.createSvg({
12053
+ id: this.parent.element.id + '_svg'
12054
+ });
12055
+ this.svgObject.setAttribute('height', '100%');
12056
+ this.svgObject.setAttribute('width', '100%');
11982
12057
  }
11983
12058
  /**
11984
12059
  * To get connector line gap.
@@ -12007,7 +12082,7 @@ var ConnectorLine = /** @__PURE__ @class */ (function () {
12007
12082
  };
12008
12083
  ConnectorLine.prototype.getTaskbarMidpoint = function (isMilestone) {
12009
12084
  return Math.floor(isMilestone ?
12010
- (this.parent.chartRowsModule.milestoneMarginTop + (this.parent.chartRowsModule.milestoneHeight / 2)) :
12085
+ (this.parent.chartRowsModule.milestoneMarginTop + (this.parent.chartRowsModule.milestoneHeight / 2)) + 1 :
12011
12086
  (this.parent.chartRowsModule.taskBarMarginTop + (this.parent.chartRowsModule.taskBarHeight / 2))) + 1;
12012
12087
  };
12013
12088
  /**
@@ -12056,6 +12131,10 @@ var ConnectorLine = /** @__PURE__ @class */ (function () {
12056
12131
  connectorObj.connectorLineId = 'parent' + parentId + 'child' + childId;
12057
12132
  connectorObj.milestoneParent = parentGanttRecord.isMilestone ? true : false;
12058
12133
  connectorObj.milestoneChild = childGanttRecord.isMilestone ? true : false;
12134
+ connectorObj.isManualParent = (!(this.parent.flatData[parentIndex].ganttProperties.isAutoSchedule) && this.parent.flatData[parentIndex].hasChildRecords);
12135
+ connectorObj.isManualChild = (!(this.parent.flatData[childIndex].ganttProperties.isAutoSchedule) && this.parent.flatData[childIndex].hasChildRecords);
12136
+ connectorObj.parentEndPoint = connectorObj.parentLeft + connectorObj.parentWidth;
12137
+ connectorObj.childEndPoint = connectorObj.childLeft + connectorObj.childWidth;
12059
12138
  if (isNullOrUndefined(isScheduledTask(parentGanttRecord)) || isNullOrUndefined(isScheduledTask(childGanttRecord))) {
12060
12139
  return null;
12061
12140
  }
@@ -12078,8 +12157,8 @@ var ConnectorLine = /** @__PURE__ @class */ (function () {
12078
12157
  connectorLine$$1 = connectorLine$$1 + this.getConnectorLineTemplate(connectorLinesCollection[index]);
12079
12158
  ariaConnector.push(connectorLinesCollection[index]);
12080
12159
  }
12081
- this.dependencyViewContainer.innerHTML = connectorLine$$1;
12082
- var childNodes = this.parent.connectorLineModule.dependencyViewContainer.childNodes;
12160
+ this.svgObject.innerHTML = connectorLine$$1;
12161
+ var childNodes = this.parent.connectorLineModule.svgObject.childNodes;
12083
12162
  for (var i = 0; i < childNodes.length; i++) {
12084
12163
  var innerChild = childNodes[i].childNodes;
12085
12164
  for (var j = 0; j < innerChild.length; j++) {
@@ -12087,9 +12166,10 @@ var ConnectorLine = /** @__PURE__ @class */ (function () {
12087
12166
  innerChild[j].setAttribute('aria-label', ariaString);
12088
12167
  }
12089
12168
  }
12090
- this.parent.ganttChartModule.chartBodyContent.appendChild(this.dependencyViewContainer);
12091
- for (var i = 0; i < this.dependencyViewContainer.children.length; i++) {
12092
- this.dependencyViewContainer.children[i].children[0].setAttribute('tabindex', '-1');
12169
+ this.parent.ganttChartModule.chartBodyContent.insertBefore(this.dependencyViewContainer, this.parent.ganttChartModule.chartBodyContent.lastChild);
12170
+ this.dependencyViewContainer.appendChild(this.svgObject);
12171
+ for (var i = 0; i < this.svgObject.children.length; i++) {
12172
+ this.svgObject.children[i].children[0].setAttribute('tabindex', '-1');
12093
12173
  }
12094
12174
  };
12095
12175
  /**
@@ -12347,16 +12427,15 @@ var ConnectorLine = /** @__PURE__ @class */ (function () {
12347
12427
  var height = this.getHeightValue(data);
12348
12428
  var isMilestoneParent = data.milestoneParent ? true : false;
12349
12429
  var isMilestone = data.milestoneChild ? true : false;
12350
- var connectorContainer = '';
12351
12430
  var isVirtual = this.parent.virtualScrollModule && this.parent.enableVirtualization;
12352
12431
  var connectorLine$$1 = this.getPosition(data, this.getParentPosition(data), height);
12432
+ var rowPosition = this.getPosition(data, this.getParentPosition(data), height);
12433
+ var rowPositionHeight = rowPosition.top;
12353
12434
  var isMilestoneValue = 0;
12354
12435
  if (this.parent.renderBaseline) {
12355
12436
  isMilestoneValue = (data.milestoneParent && data.milestoneChild) ? 0 : data.milestoneParent ? -5 : data.milestoneChild ? 5 : 0;
12356
12437
  }
12357
12438
  var heightValue = isVirtual ? connectorLine$$1.height : (height + isMilestoneValue);
12358
- var borderTopWidth = 0;
12359
- var addTop = 0;
12360
12439
  var parentOverlapTopValue = 0;
12361
12440
  var childOverlapTopValue = 0;
12362
12441
  var count = 0;
@@ -12393,454 +12472,318 @@ var ConnectorLine = /** @__PURE__ @class */ (function () {
12393
12472
  }
12394
12473
  if (isValid) {
12395
12474
  if (((fromRecordIsParent && !fromRecordIsManual) && (toRecordIsParent && !toRecordIsManual))) {
12396
- addTop = -11;
12475
+
12397
12476
  }
12398
12477
  else if (!((fromRecordIsParent && !fromRecordIsManual) && (toRecordIsParent && !toRecordIsManual))) {
12399
12478
  if (data.childIndex > data.parentIndex) {
12400
- if (!fromRecordIsParent && toRecordIsParent) {
12401
- borderTopWidth = -11;
12402
- }
12403
- else {
12404
- borderTopWidth = 11;
12405
- addTop = -11;
12406
- }
12479
+
12407
12480
  }
12408
12481
  else {
12409
- if ((fromRecordIsParent && !toRecordIsParent)) {
12410
- borderTopWidth = -11;
12411
- }
12412
- else {
12413
- borderTopWidth = 11;
12414
- addTop = -11;
12415
- }
12482
+
12416
12483
  }
12417
12484
  }
12418
12485
  if (this.parent.currentViewData[data.parentIndex].ganttProperties.isMilestone) {
12419
12486
  if (data.parentIndex > data.childIndex) {
12420
- addTop = -5;
12421
- borderTopWidth = 10;
12487
+
12422
12488
  }
12423
12489
  else if (data.type === 'SS' || data.type === 'FF') {
12424
- addTop = -5;
12490
+
12425
12491
  }
12426
12492
  }
12427
12493
  else if (this.parent.currentViewData[data.childIndex].ganttProperties.isMilestone) {
12428
12494
  if (data.parentIndex > data.childIndex) {
12429
- addTop = 5;
12430
- borderTopWidth = -10;
12495
+
12431
12496
  }
12432
12497
  else if (data.type === 'SS' || data.type === 'FF') {
12433
- addTop = 5;
12498
+
12434
12499
  }
12435
12500
  }
12436
12501
  }
12437
12502
  }
12438
12503
  if (this.getParentPosition(data)) {
12439
- connectorContainer = '<div id="ConnectorLine' + data.connectorLineId + '" style="background-color:black">';
12440
- var div = '<div class="' + connectorLineContainer +
12441
- '" tabindex="-1" style="';
12442
- var direction = this.parent.enableRtl ? 'right:' : 'left:';
12443
- var eLine = '<div class="' + connectorLine + '" style="' +
12444
- (!isNullOrUndefined(this.lineColor) ? 'outline-color:' + this.lineColor + ';' : '');
12445
- var rightArrow = void 0;
12446
- var leftArrow = void 0;
12447
- if (this.parent.enableRtl) {
12448
- leftArrow = '<div class="' + connectorLineRightArrow + '" style="' +
12449
- (!isNullOrUndefined(this.lineColor) ? 'outline-color:' + this.lineColor + ';' : '');
12450
- rightArrow = '<div class="' + connectorLineLeftArrow + '" style="' +
12451
- (!isNullOrUndefined(this.lineColor) ? 'outline-color:' + this.lineColor + ';' : '');
12452
- }
12453
- else {
12454
- rightArrow = '<div class="' + connectorLineRightArrow + '" style="' +
12455
- (!isNullOrUndefined(this.lineColor) ? 'outline-color:' + this.lineColor + ';' : '');
12456
- leftArrow = '<div class="' + connectorLineLeftArrow + '" style="' +
12457
- (!isNullOrUndefined(this.lineColor) ? 'outline-color:' + this.lineColor + ';' : '');
12458
- }
12459
- var duplicateStingOne = leftArrow + (isMilestone ? (this.parent.enableRtl ? 'right:0px;' : 'left:0px;') : '') +
12460
- this.getBorderStyles((this.parent.enableRtl ? 'left' : 'right'), 10) +
12461
- 'top:' + (-5 - this.lineStroke + (this.lineStroke - 1)) + 'px;border-bottom-width:' + (5 + this.lineStroke) + 'px;' +
12462
- 'border-top-width:' + (5 + this.lineStroke) + 'px;width:0;height:0;position:relative;"></div>';
12463
- var duplicateStingTwo = this.getBorderStyles((this.parent.enableRtl ? 'right' : 'left'), 10) +
12464
- 'top:' + (-6) + 'px;border-bottom-width:' + (5 + this.lineStroke) + 'px;' +
12465
- 'border-top-width:' + (5 + this.lineStroke) + 'px;width:0;height:0;position:relative;"></div>';
12466
- var duplicateStingThree = this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>' + eLine +
12467
- 'top:' + (-(13 + ((this.lineStroke - 1) * 2))) + 'px;width:0px;' + this.getBorderStyles('left', this.lineStroke) +
12468
- this.getBorderStyles('top', (heightValue + borderTopWidth - (this.lineStroke - 1))) + 'position:relative;"></div>';
12469
- var duplicateStingFour = leftArrow + (this.parent.enableRtl ? 'right:' : 'left:') +
12470
- (((data.childLeft + data.childWidth) - (data.parentLeft)) + 10) + 'px;' +
12471
- this.getBorderStyles((this.parent.enableRtl ? 'left' : 'right'), 10);
12472
- var duplicateStingFive = 'top:' + (-(6 + (5 + this.lineStroke) + (this.lineStroke / 2))) + 'px;' +
12473
- this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
12504
+ // Create the group element
12505
+ this.transform = this.parent.enableRtl ? "translate(" + this.parent.timelineModule.totalTimelineWidth + ", 0) scale(-1, 1)" : '';
12506
+ this.connectorId = "ConnectorLine" + data.connectorLineId;
12507
+ this.groupObject = this.renderer.createGroup({
12508
+ id: this.connectorId,
12509
+ transform: this.transform,
12510
+ style: 'pointer-events: stroke',
12511
+ class: connectorLineContainer,
12512
+ });
12513
+ // Create the path element for the connector line
12514
+ this.connectorPath = this.renderer.drawPath({
12515
+ class: connectorLineSVG,
12516
+ d: this.connectorLinePath,
12517
+ fill: 'transparent',
12518
+ "stroke-width": 1,
12519
+ });
12520
+ // Create the path element for the arrow
12521
+ this.arrowlinePath = this.renderer.drawPath({
12522
+ d: this.arrowPath,
12523
+ class: connectorLineArrow
12524
+ });
12525
+ // Append the path element to the group element
12526
+ this.groupObject.appendChild(this.connectorPath);
12527
+ this.groupObject.appendChild(this.arrowlinePath);
12474
12528
  if (this.getParentPosition(data) === 'FSType1') {
12475
- div = div + direction + (data.parentLeft + data.parentWidth) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
12476
- ((!this.parent.allowTaskbarOverlap ? parentOverlapTopValue : (data.parentIndex * data.rowHeight)) + addTop + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
12477
- 'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="FSType1">';
12478
- div = div + eLine;
12479
- div = div + direction + (isMilestoneParent ? -1 : 0) + 'px;width:' + (isMilestoneParent ?
12480
- ((((data.childLeft - (data.parentLeft + data.parentWidth + 10)) + this.lineStroke) - 10) + 1) :
12481
- (((data.childLeft - (data.parentLeft + data.parentWidth + 10)) + this.lineStroke) - 10)) + 'px;' +
12482
- this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
12483
- div = div + eLine;
12484
- div = div + direction + ((data.childLeft - (data.parentLeft + data.parentWidth + 10)) - 10) + 'px;' +
12485
- 'width:0px;' + this.getBorderStyles('right', this.lineStroke) +
12486
- this.getBorderStyles('top', (heightValue + borderTopWidth - this.lineStroke)) + 'position:relative;"></div>';
12487
- div = div + eLine;
12488
- div = div + direction + ((data.childLeft - (data.parentLeft + data.parentWidth + 10)) - 10) + 'px;width:10px;' +
12489
- this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
12490
- div = div + rightArrow;
12491
- div = div + direction + (data.childLeft - (data.parentLeft + data.parentWidth + 10)) + 'px;' +
12492
- this.getBorderStyles((this.parent.enableRtl ? 'right' : 'left'), 10) + 'top:' + (-6 - this.lineStroke) + 'px;border-bottom-width:' + (5 + this.lineStroke) +
12493
- 'px;border-top-width:' + (5 + this.lineStroke) + 'px;width:0;height:0;position:relative;"></div></div>';
12529
+ this.taskLineValue = data.milestoneChild ? 1 : 0;
12530
+ this.x1 = data.parentEndPoint + (data.milestoneParent ? -1 : (data.milestoneChild ? -1 : 0));
12531
+ this.x2 = data.milestoneParent ? ((((data.childLeft - (data.parentEndPoint + 10)) + 1) - 10) + 1) : (((data.childLeft - (data.parentEndPoint + 10))) - 10);
12532
+ this.y1 = this.parent.enableVirtualization ? rowPositionHeight : ((!this.parent.allowTaskbarOverlap ? parentOverlapTopValue : (data.parentIndex * data.rowHeight)) + this.getTaskbarMidpoint(data.milestoneParent)) + ((data.isManualParent && data.isManualChild) ? -10 : 0);
12533
+ this.y2 = heightValue + this.taskLineValue;
12534
+ this.manualParent = (data.isManualParent && !data.isManualChild ? -10 : 0);
12535
+ this.manualChild = (data.isManualChild && !data.isManualParent ? -10 : 0);
12536
+ 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) +
12537
+ " L " + (this.x1 + this.x2 + 11) + " " + (this.y1 + this.y2);
12538
+ this.arrowPath = "M " + (this.x1 + this.x2 + 18) + " " + (this.y1 + this.y2 + this.manualChild) +
12539
+ " L " + (this.x1 + this.x2 + 11) + " " + (this.y1 + this.y2 - (4 + this.lineStroke) + this.manualChild) +
12540
+ " L " + (this.x1 + this.x2 + 11) + " " + (this.y1 + this.y2 + 4 + this.lineStroke + this.manualChild) + " Z";
12494
12541
  }
12495
12542
  if (this.getParentPosition(data) === 'FSType2') {
12496
- div = div + direction + data.parentLeft + 'px;top:' + (isVirtual ? connectorLine$$1.top : ((!this.parent.allowTaskbarOverlap ? parentOverlapTopValue : (data.parentIndex * data.rowHeight)) + addTop +
12497
- this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
12498
- 'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="FSType2">';
12499
- div = div + eLine;
12500
- div = div + direction + (isMilestoneParent ? data.parentWidth - 1 : data.parentWidth) + 'px;width:' +
12501
- (isMilestoneParent ? 11 : 10) + 'px;' +
12502
- this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
12503
- div = div + eLine;
12504
- div = div + direction + (data.parentWidth + 10 - this.lineStroke) + 'px;' +
12505
- this.getBorderStyles('left', this.lineStroke) + 'width:0px;' +
12506
- this.getBorderStyles('top', (heightValue + borderTopWidth - this.getconnectorLineGap(data) - this.lineStroke)) + 'position:relative;"></div>';
12507
- div = div + eLine;
12508
- div = div + direction + (data.parentWidth - (((data.parentLeft + data.parentWidth) - data.childLeft) + 20)) + 'px;' +
12509
- 'width:' + (((data.parentLeft + data.parentWidth) - data.childLeft) + 30) + 'px;' +
12510
- this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
12511
- div = div + eLine;
12512
- div = div + direction + (data.parentWidth - (((data.parentLeft +
12513
- data.parentWidth) - data.childLeft) + 20)) + 'px;width:0px;' +
12514
- this.getBorderStyles('top', (this.getconnectorLineGap(data) - this.lineStroke)) +
12515
- this.getBorderStyles('left', this.lineStroke) + 'position:relative;"></div>';
12516
- div = div + eLine;
12517
- div = div + direction + (data.parentWidth - (((data.parentLeft +
12518
- data.parentWidth) - data.childLeft) + 20)) + 'px;width:10px;' +
12519
- this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
12520
- div = div + rightArrow;
12521
- div = div + direction + (data.parentWidth - (((data.parentLeft + data.parentWidth) - data.childLeft) + 10)) + 'px;' +
12522
- this.getBorderStyles((this.parent.enableRtl ? 'right' : 'left'), 10) + 'border-bottom-width:' + (5 + this.lineStroke) + 'px;' +
12523
- 'border-top-width:' + (5 + this.lineStroke) + 'px;top:' + (-6 - this.lineStroke) +
12524
- 'px;width:0;height:0;position:relative;"></div></div>';
12543
+ this.taskLineValue = data.milestoneChild ? 1 : 0;
12544
+ this.x1 = data.parentLeft + (data.milestoneChild ? -1 : 0);
12545
+ this.x2 = data.parentWidth + (data.milestoneParent ? 1 : 0);
12546
+ this.x3 = this.x2 + (data.milestoneParent ? 11 : 10);
12547
+ this.x4 = data.parentWidth - ((data.parentEndPoint - data.childLeft) + 20);
12548
+ this.y1 = this.parent.enableVirtualization ? rowPositionHeight : ((!this.parent.allowTaskbarOverlap ? parentOverlapTopValue : (data.parentIndex * data.rowHeight)) + this.getTaskbarMidpoint(data.milestoneParent)) + ((data.isManualParent && data.isManualChild) ? -10 : 0);
12549
+ this.y2 = heightValue - this.getconnectorLineGap(data) + this.taskLineValue;
12550
+ this.y3 = this.getconnectorLineGap(data);
12551
+ this.y4 = this.y1 + this.y2 - ((this.y1 + this.y2) % data.rowHeight);
12552
+ this.manualParent = (data.isManualParent && !data.isManualChild ? -10 : 0);
12553
+ this.manualChild = (data.isManualChild && !data.isManualParent ? -10 : 0);
12554
+ 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 +
12555
+ " 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);
12556
+ this.arrowPath = "M " + (this.x1 + this.x4 + 18) + " " + (this.y1 + this.y2 + this.y3 + this.manualChild) +
12557
+ " L " + (this.x1 + this.x4 + 11) + " " + (this.y1 + this.y2 + this.y3 - (4 + this.lineStroke) + this.manualChild) +
12558
+ " L " + (this.x1 + this.x4 + 11) + " " + (this.y1 + this.y2 + this.y3 + 4 + this.lineStroke + this.manualChild) + " Z";
12525
12559
  }
12526
12560
  if (this.getParentPosition(data) === 'FSType3') {
12527
- div = div + direction + (data.childLeft - 20) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
12528
- ((!this.parent.allowTaskbarOverlap ? childOverlapTopValue : (data.childIndex * data.rowHeight)) + addTop + this.getTaskbarMidpoint(isMilestoneParent) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
12529
- 'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="FSType3">';
12530
- div = div + rightArrow;
12531
- div = div + direction + '10px;' + this.getBorderStyles((this.parent.enableRtl ? 'right' : 'left'), 10) +
12532
- 'border-bottom-width:' + (5 + this.lineStroke) + 'px;border-top-width:' + (5 + this.lineStroke) + 'px;' +
12533
- 'top:' + (-6) + 'px;width:0;height:0;position:relative;"></div>';
12534
- div = div + eLine;
12535
- div = div + 'width:10px;' + this.getBorderStyles('top', this.lineStroke) +
12536
- 'position:relative;top:' + (-(6 + (5 + this.lineStroke) + Math.round(this.lineStroke / 2))) + 'px;"></div>';
12537
- div = div + eLine;
12538
- div = div + 'width:' + this.lineStroke + 'px;' + this.getBorderStyles('top', (heightValue + borderTopWidth - this.getconnectorLineGap(data) - this.lineStroke + 1)) +
12539
- 'position:relative;top:' + (-(13 + ((this.lineStroke - 1) * 2))) + 'px;"></div>';
12540
- div = div + eLine;
12541
- div = div + 'width:' + (((data.parentLeft + data.parentWidth) - data.childLeft) + 30) + 'px;' +
12542
- this.getBorderStyles('top', this.lineStroke) + 'position:relative;top:' +
12543
- (-(13 + ((this.lineStroke - 1) * 2))) + 'px;"></div>';
12544
- div = div + eLine;
12545
- div = div + direction + (((data.parentLeft + data.parentWidth) - data.childLeft) + (30 - this.lineStroke)) +
12546
- 'px;width:0px;' + 'height:' + (this.getconnectorLineGap(data) - this.lineStroke) + 'px;' +
12547
- this.getBorderStyles('left', this.lineStroke) + 'position:relative;' +
12548
- 'top:' + (-(13 + ((this.lineStroke - 1) * 2))) + 'px;"></div>';
12549
- div = div + eLine;
12550
- div = div + (isMilestoneParent ? direction + (((data.parentLeft +
12551
- data.parentWidth) - data.childLeft) + (18 - this.lineStroke)) + 'px;width:' + (12 + this.lineStroke) + 'px;' : direction +
12552
- (((data.parentLeft + data.parentWidth) - data.childLeft) + 20) + 'px;width:10px;') +
12553
- this.getBorderStyles('top', this.lineStroke) + 'position:relative;top:' +
12554
- (-(13 + ((this.lineStroke - 1) * 2))) + 'px;"></div></div>';
12561
+ this.taskLineValue = data.milestoneChild ? 1 : 0;
12562
+ this.point1 = this.parent.enableVirtualization ? rowPositionHeight : ((!this.parent.allowTaskbarOverlap ? parentOverlapTopValue : (data.childIndex * data.rowHeight)) + this.getTaskbarMidpoint(data.milestoneChild));
12563
+ this.x1 = (data.childLeft + (data.milestoneChild ? -1 : 0) + (data.milestoneParent ? 1 : 0)) - 20;
12564
+ this.x2 = (data.parentEndPoint - data.childLeft) + 30;
12565
+ this.y1 = this.point1 + ((data.isManualParent && data.isManualChild) ? -10 : 0);
12566
+ this.y2 = this.point1 + heightValue - this.getconnectorLineGap(data) + this.taskLineValue + (this.parent.renderBaseline ? (data.milestoneChild ? -10 : 0) : 0);
12567
+ this.y3 = this.getconnectorLineGap(data) + (this.parent.renderBaseline ? (data.milestoneParent ? 10 : 0) : 0);
12568
+ this.y4 = this.y2 - (this.y2 % data.rowHeight);
12569
+ this.manualParent = (data.isManualParent && !data.isManualChild ? -10 : 0);
12570
+ this.manualChild = (data.isManualChild && !data.isManualParent ? -10 : 0);
12571
+ 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 +
12572
+ " 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);
12573
+ this.arrowPath = "M " + (this.x1 + 18) + " " + (this.y1 + this.manualChild) +
12574
+ " L " + (this.x1 + 11) + " " + (this.y1 - (4 + this.lineStroke) + this.manualChild) +
12575
+ " L " + (this.x1 + 11) + " " + (this.y1 + 4 + this.lineStroke + this.manualChild) + " Z";
12555
12576
  }
12556
12577
  if (this.getParentPosition(data) === 'FSType4') {
12557
- div = div + direction + (data.parentLeft + data.parentWidth) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
12558
- ((!this.parent.allowTaskbarOverlap ? childOverlapTopValue : (data.childIndex * data.rowHeight)) + addTop + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
12559
- 'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="FSType4">';
12560
- div = div + rightArrow;
12561
- div = div + direction + (data.childLeft - (data.parentLeft + data.parentWidth + 10)) + 'px;' +
12562
- this.getBorderStyles((this.parent.enableRtl ? 'right' : 'left'), 10) + 'top:' + (-6) + 'px;' +
12563
- 'border-bottom-width:' + (5 + this.lineStroke) + 'px;border-top-width:' +
12564
- (5 + this.lineStroke) + 'px;width:0;height:0;position:relative;"></div>';
12565
- div = div + eLine;
12566
- div = div + direction + (data.childLeft - (data.parentLeft + data.parentWidth) - 20) +
12567
- 'px;top:' + (-(6 + (5 + this.lineStroke) + Math.round(this.lineStroke / 2))) + 'px;width:10px;' +
12568
- this.getBorderStyles('top', this.lineStroke) +
12569
- 'position:relative;"></div>';
12570
- div = div + eLine;
12571
- div = div + 'top:' + (-(13 + ((this.lineStroke - 1) * 2))) + 'px;' + direction +
12572
- (data.childLeft - (data.parentLeft + data.parentWidth) - 20) + 'px;width:0px;' +
12573
- this.getBorderStyles('left', this.lineStroke) +
12574
- this.getBorderStyles('top', (heightValue + borderTopWidth - this.lineStroke + 1)) + 'position:relative;"></div>';
12575
- div = div + eLine;
12576
- div = div + (isMilestoneParent ? direction + '-1px;' : '') + 'top:' +
12577
- (-(13 + ((this.lineStroke - 1) * 2))) + 'px;width:' +
12578
- (isMilestoneParent ? ((data.childLeft - (data.parentLeft + data.parentWidth + 20) + 1) + this.lineStroke) :
12579
- ((data.childLeft - (data.parentLeft + data.parentWidth + 20)) + this.lineStroke)) + 'px;' +
12580
- this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div></div>';
12578
+ this.point1 = this.parent.enableVirtualization ? rowPositionHeight : ((!this.parent.allowTaskbarOverlap ? parentOverlapTopValue : (data.childIndex * data.rowHeight)) + this.getTaskbarMidpoint(data.milestoneChild));
12579
+ this.taskLineValue = this.parent.renderBaseline ? this.taskLineValue : 0;
12580
+ this.x1 = data.parentEndPoint + (data.milestoneChild ? -1 : 0) + (data.milestoneParent ? 1 : 0);
12581
+ this.x2 = data.childLeft - data.parentEndPoint - 20;
12582
+ this.y1 = this.point1 + (data.milestoneChild ? 1 : 0) + ((data.isManualParent && data.isManualChild) ? -10 : 0);
12583
+ this.y2 = this.point1 + heightValue + this.taskLineValue + (this.parent.renderBaseline ? (data.milestoneParent ? 10 : 0) : 0);
12584
+ this.manualParent = (data.isManualParent && !data.isManualChild ? -10 : 0);
12585
+ this.manualChild = (data.isManualChild && !data.isManualParent ? -10 : 0);
12586
+ 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 +
12587
+ " L " + this.x1 + " " + this.y2;
12588
+ this.arrowPath = "M " + (this.x1 + this.x2 + 18) + " " + (this.y1 + this.manualChild) +
12589
+ " L " + (this.x1 + this.x2 + 11) + " " + (this.y1 - (4 + this.lineStroke) + this.manualChild) +
12590
+ " L " + (this.x1 + this.x2 + 11) + " " + (this.y1 + 4 + this.lineStroke + this.manualChild) + " Z";
12581
12591
  }
12582
12592
  if (this.getParentPosition(data) === 'SSType4') {
12583
- div = div + direction + (data.parentLeft - 10) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
12584
- ((!this.parent.allowTaskbarOverlap ? childOverlapTopValue : (data.childIndex * data.rowHeight)) + addTop + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
12585
- 'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="SSType4">';
12586
- div = div + rightArrow;
12587
- div = div + direction + (data.childLeft - data.parentLeft) + 'px;' + duplicateStingTwo;
12588
- div = div + eLine;
12589
- div = div + 'top:' + (-(6 + (5 + this.lineStroke) + (this.lineStroke / 2))) + 'px;width:' +
12590
- (data.childLeft - data.parentLeft) + 'px;' + duplicateStingThree;
12591
- div = div + eLine;
12592
- div = div + 'top:' + (-(13 + ((this.lineStroke - 1) * 2))) + 'px;width:10px;' +
12593
- this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div></div>';
12593
+ this.taskLineValue = this.parent.renderBaseline ? this.taskLineValue : 0;
12594
+ this.point1 = heightValue + this.taskLineValue;
12595
+ this.point2 = this.parent.enableVirtualization ? rowPositionHeight : ((!this.parent.allowTaskbarOverlap ? parentOverlapTopValue : (data.childIndex * data.rowHeight)) + this.getTaskbarMidpoint(data.milestoneChild));
12596
+ this.x1 = data.parentLeft - 8;
12597
+ this.x2 = data.childLeft - data.parentLeft;
12598
+ this.y1 = this.point2 + (data.milestoneChild ? 1 : 0) + ((data.isManualParent && data.isManualChild) ? -10 : 0);
12599
+ this.y2 = this.y1 + this.point1 + (this.parent.renderBaseline ? (data.milestoneParent ? 10 : 0) : 0);
12600
+ this.manualParent = (data.isManualParent && !data.isManualChild ? -10 : 0);
12601
+ this.manualChild = (data.isManualChild && !data.isManualParent ? -10 : 0);
12602
+ this.connectorLinePath = "M " + (this.x1 + this.x2) + " " + (this.y1 + this.manualParent + this.manualChild) + " L " + this.x1 + " " + (this.y1 + this.manualParent + this.manualChild) +
12603
+ " L " + this.x1 + " " + this.y2 + " L " + (this.x1 + 10) + " " + this.y2;
12604
+ this.arrowPath = "M " + (this.x1 + this.x2 + 8) + " " + (this.y1 + this.manualChild) +
12605
+ " L " + (this.x1 + this.x2) + " " + (this.y1 - (4 + this.lineStroke) + this.manualChild) +
12606
+ " L " + (this.x1 + this.x2) + " " + (this.y1 + 4 + this.lineStroke + this.manualChild) + " Z";
12594
12607
  }
12595
12608
  if (this.getParentPosition(data) === 'SSType3') {
12596
- div = div + direction + (data.childLeft - 20) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
12597
- ((!this.parent.allowTaskbarOverlap ? childOverlapTopValue : (data.childIndex * data.rowHeight)) + addTop + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
12598
- 'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="SSType3">';
12599
- div = div + rightArrow;
12600
- div = div + direction + '10px;' + duplicateStingTwo;
12601
- div = div + eLine;
12602
- div = div + 'top:' + (-(6 + (5 + this.lineStroke) + (this.lineStroke / 2))) + 'px;width:10px;' + duplicateStingThree;
12603
- div = div + eLine;
12604
- div = div + 'top:' + (-(13 + ((this.lineStroke - 1) * 2))) + 'px;width:' +
12605
- (data.parentLeft - data.childLeft + 21) + 'px;' +
12606
- this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div></div>';
12609
+ this.taskLineValue = this.parent.renderBaseline ? this.taskLineValue : data.milestoneChild ? 1 : 0;
12610
+ this.point1 = heightValue + this.taskLineValue;
12611
+ this.x1 = data.childLeft - 20;
12612
+ 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);
12613
+ this.x2 = data.parentLeft - data.childLeft + 21;
12614
+ this.y2 = this.y1 + this.point1 + (this.parent.renderBaseline ? (data.milestoneChild ? -11 : data.milestoneParent ? 10 : 0) : 0);
12615
+ this.manualParent = (data.isManualParent && !data.isManualChild ? -10 : 0);
12616
+ this.manualChild = (data.isManualChild && !data.isManualParent ? -10 : 0);
12617
+ this.connectorLinePath = "M " + (this.x1 + 12) + " " + (this.y1 + this.manualParent + this.manualChild) + " L " + this.x1 + " " + (this.y1 + this.manualParent + this.manualChild) +
12618
+ " L " + this.x1 + " " + this.y2 + " L " + (this.x1 + this.x2) + " " + this.y2;
12619
+ this.arrowPath = "M " + (this.x1 + 20) + " " + (this.y1 + this.manualChild) +
12620
+ " L " + (this.x1 + 12) + " " + (this.y1 - (4 + this.lineStroke) + this.manualChild) +
12621
+ " L " + (this.x1 + 12) + " " + (this.y1 + 4 + this.lineStroke + this.manualChild) + " Z";
12607
12622
  }
12608
12623
  if (this.getParentPosition(data) === 'SSType2') {
12609
- div = div + direction + setInnerElementLeftSSType2 + 'px;top:' + (isVirtual ? connectorLine$$1.top :
12610
- ((!this.parent.allowTaskbarOverlap ? parentOverlapTopValue : (data.parentIndex * data.rowHeight)) + addTop + this.getTaskbarMidpoint(isMilestoneParent) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
12611
- 'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="SSType2">';
12612
- div = div + eLine;
12613
- div = div + 'width:' + (setInnerChildWidthSSType2 + 1) + 'px;' +
12614
- this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
12615
- div = div + eLine;
12616
- div = div + 'width:0px;' + this.getBorderStyles('left', this.lineStroke) +
12617
- this.getBorderStyles('top', (heightValue + borderTopWidth - this.lineStroke)) + 'position:relative;"></div>';
12618
- div = div + eLine;
12619
- div = div + 'width:' + setInnerElementWidthSSType2 + 'px;' +
12620
- this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
12621
- div = div + rightArrow;
12622
- div = div + direction + setInnerElementWidthSSType2 + 'px;' +
12623
- this.getBorderStyles((this.parent.enableRtl ? 'right' : 'left'), 10) + 'top:' + (-6 - this.lineStroke) + 'px;' +
12624
- 'border-bottom-width:' + (5 + this.lineStroke) + 'px;border-top-width:' +
12625
- (5 + this.lineStroke) + 'px;width:0;' +
12626
- 'height:0;position:relative;"></div></div>';
12624
+ this.taskLineValue = this.parent.renderBaseline ? this.taskLineValue : data.milestoneChild ? 1 : 0;
12625
+ this.point1 = heightValue + this.taskLineValue;
12626
+ this.x1 = setInnerElementLeftSSType2;
12627
+ this.x2 = setInnerChildWidthSSType2 + 1;
12628
+ this.y1 = this.parent.enableVirtualization ? rowPositionHeight : ((!this.parent.allowTaskbarOverlap ? parentOverlapTopValue : (data.parentIndex * data.rowHeight)) + this.getTaskbarMidpoint(data.milestoneParent)) + ((data.isManualParent && data.isManualChild) ? -10 : 0);
12629
+ this.y2 = this.y1 + this.point1;
12630
+ this.manualParent = (data.isManualParent && !data.isManualChild ? -10 : 0);
12631
+ this.manualChild = (data.isManualChild && !data.isManualParent ? -10 : 0);
12632
+ 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 +
12633
+ " L " + (this.x1 + setInnerElementWidthSSType2) + " " + this.y2;
12634
+ this.arrowPath = "M " + (this.x1 + setInnerElementWidthSSType2 + 8) + " " + (this.y2 + this.manualChild) +
12635
+ " L " + (this.x1 + setInnerElementWidthSSType2) + " " + (this.y2 - (4 + this.lineStroke) + this.manualChild) +
12636
+ " L " + (this.x1 + setInnerElementWidthSSType2) + " " + (this.y2 + 4 + this.lineStroke + this.manualChild) + " Z";
12627
12637
  }
12628
12638
  if (this.getParentPosition(data) === 'SSType1') {
12629
- div = div + direction + (data.childLeft - 20) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
12630
- ((!this.parent.allowTaskbarOverlap ? parentOverlapTopValue : (data.parentIndex * data.rowHeight)) + addTop +
12631
- this.getTaskbarMidpoint(isMilestoneParent) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
12632
- 'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="SSType1">';
12633
- div = div + eLine;
12634
- div = div + 'width:' + (data.parentLeft - data.childLeft + 21) + 'px;' +
12635
- this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
12636
- div = div + eLine;
12637
- div = div + 'width:0px;' + this.getBorderStyles('left', this.lineStroke) +
12638
- this.getBorderStyles('top', (heightValue + borderTopWidth - this.lineStroke)) + 'position:relative;"></div>';
12639
- div = div + eLine;
12640
- div = div + 'width:10px;' + this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
12641
- div = div + rightArrow;
12642
- div = div + direction + '10px;' + this.getBorderStyles((this.parent.enableRtl ? 'right' : 'left'), 10) +
12643
- 'top:' + (-6 - this.lineStroke) + 'px;border-bottom-width:' + (5 + this.lineStroke) + 'px;' +
12644
- 'border-top-width:' + (5 + this.lineStroke) + 'px;width:0;height:0;position:relative;"></div></div>';
12639
+ this.taskLineValue = this.parent.renderBaseline ? this.taskLineValue : data.milestoneChild ? 1 : 0;
12640
+ this.point1 = heightValue + this.taskLineValue;
12641
+ this.x1 = data.childLeft - 20;
12642
+ this.x2 = data.parentLeft - data.childLeft + 21;
12643
+ this.y1 = this.parent.enableVirtualization ? rowPositionHeight : ((!this.parent.allowTaskbarOverlap ? parentOverlapTopValue : (data.parentIndex * data.rowHeight)) + this.getTaskbarMidpoint(data.milestoneParent)) + +((data.isManualParent && data.isManualChild) ? -10 : 0);
12644
+ this.y2 = this.y1 + this.point1;
12645
+ this.manualParent = (data.isManualParent && !data.isManualChild ? -10 : 0);
12646
+ this.manualChild = (data.isManualChild && !data.isManualParent ? -10 : 0);
12647
+ 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 +
12648
+ " L " + (this.x1 + 12) + " " + this.y2;
12649
+ this.arrowPath = "M " + (this.x1 + 20) + " " + (this.y2 + this.manualChild) +
12650
+ " L " + (this.x1 + 12) + " " + (this.y2 - (4 + this.lineStroke) + this.manualChild) +
12651
+ " L " + (this.x1 + 12) + " " + (this.y2 + 4 + this.lineStroke + this.manualChild) + " Z";
12645
12652
  }
12646
12653
  if (this.getParentPosition(data) === 'FFType1') {
12647
- div = div + direction + (data.childLeft + data.childWidth) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
12648
- ((!this.parent.allowTaskbarOverlap ? parentOverlapTopValue : (data.parentIndex * data.rowHeight)) + addTop + this.getTaskbarMidpoint(isMilestoneParent) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
12649
- 'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="FFType1">';
12650
- div = div + eLine;
12651
- div = div + direction + (isMilestoneParent ? (((data.parentLeft + data.parentWidth) -
12652
- (data.childLeft + data.childWidth)) - 1) : ((data.parentLeft + data.parentWidth) -
12653
- (data.childLeft + data.childWidth))) + 'px;' +
12654
- 'width:' + (isMilestoneParent ? (21 + this.lineStroke) : (20 + this.lineStroke)) + 'px;' +
12655
- this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
12656
- div = div + eLine;
12657
- div = div + direction + (((data.parentLeft + data.parentWidth) -
12658
- (data.childLeft + data.childWidth)) + 20) + 'px;width:0px;' + this.getBorderStyles('left', this.lineStroke) +
12659
- this.getBorderStyles('top', (heightValue + borderTopWidth - this.lineStroke)) + 'position:relative;"></div>';
12660
- div = div + eLine;
12661
- div = div + direction + (isMilestone ? 4 : 10) + 'px;width:' + (isMilestone ?
12662
- (((data.parentLeft + data.parentWidth) - (data.childLeft + data.childWidth)) + (16 + this.lineStroke)) :
12663
- (((data.parentLeft + data.parentWidth) - (data.childLeft + data.childWidth)) + (10 + this.lineStroke))) + 'px;' +
12664
- this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
12665
- div = div + leftArrow;
12666
- div = div + (isMilestone ? direction + '0px;' : '') + this.getBorderStyles((!this.parent.enableRtl ? 'right' : 'left'), 10) +
12667
- 'top:' + (-6 - this.lineStroke) + 'px;border-bottom-width:' + (5 + this.lineStroke) + 'px;' +
12668
- 'border-top-width:' + (5 + this.lineStroke) + 'px;width:0;height:0;position:relative;"></div></div>';
12654
+ this.taskLineValue = this.parent.renderBaseline ? this.taskLineValue : (data.milestoneChild ? 1 : 0);
12655
+ this.x1 = data.childEndPoint;
12656
+ this.x2 = data.parentEndPoint + (data.milestoneParent ? -1 : 0);
12657
+ this.x3 = data.milestoneParent ? 22 : 21;
12658
+ this.x4 = data.milestoneChild ? 4 : 8;
12659
+ this.y1 = this.parent.enableVirtualization ? rowPositionHeight : ((!this.parent.allowTaskbarOverlap ? parentOverlapTopValue : (data.parentIndex * data.rowHeight)) + this.getTaskbarMidpoint(data.milestoneParent)) + ((data.isManualParent && data.isManualChild) ? -10 : 0);
12660
+ this.y2 = heightValue + this.taskLineValue;
12661
+ this.manualParent = (data.isManualParent && !data.isManualChild ? -10 : 0);
12662
+ this.manualChild = (data.isManualChild && !data.isManualParent ? -10 : 0);
12663
+ 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) +
12664
+ " L " + (this.x1 + this.x4) + " " + (this.y1 + this.y2);
12665
+ this.arrowPath = "M " + this.x1 + " " + (this.y1 + this.y2 + this.manualChild) +
12666
+ " L " + (this.x1 + 8) + " " + (this.y1 + this.y2 - (4 + this.lineStroke) + this.manualChild) +
12667
+ " L " + (this.x1 + 8) + " " + (this.y1 + this.y2 + 4 + this.lineStroke + this.manualChild) + " Z";
12669
12668
  }
12670
12669
  if (this.getParentPosition(data) === 'FFType2') {
12671
- div = div + direction + (data.parentLeft + data.parentWidth) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
12672
- ((!this.parent.allowTaskbarOverlap ? parentOverlapTopValue : (data.parentIndex * data.rowHeight)) + addTop + this.getTaskbarMidpoint(isMilestoneParent) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
12673
- 'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="FFType2">';
12674
- div = div + eLine;
12675
- div = div + (isMilestoneParent ? direction + '-1px;' : '') + 'width:' +
12676
- (isMilestoneParent ? (((data.childLeft + data.childWidth) - (data.parentLeft + data.parentWidth)) +
12677
- (21 + this.lineStroke)) : (((data.childLeft + data.childWidth) -
12678
- (data.parentLeft + data.parentWidth)) + (20 + this.lineStroke))) + 'px;' +
12679
- this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
12680
- div = div + eLine;
12681
- div = div + direction + (((data.childLeft + data.childWidth) - (data.parentLeft + data.parentWidth)) + 20) +
12682
- 'px;width:0px;' + this.getBorderStyles('left', this.lineStroke) +
12683
- this.getBorderStyles('top', (heightValue + borderTopWidth - this.lineStroke)) +
12684
- 'position:relative;"></div>';
12685
- div = div + eLine;
12686
- div = div + direction + (isMilestone ? (((data.childLeft + data.childWidth) - (data.parentLeft + data.parentWidth)) + 4) :
12687
- (((data.childLeft + data.childWidth) - (data.parentLeft + data.parentWidth)) + 10)) + 'px;' +
12688
- 'width:' + (isMilestone ? (16 + this.lineStroke) : (10 + this.lineStroke)) + 'px;' +
12689
- this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
12690
- div = div + leftArrow;
12691
- div = div + direction + ((data.childLeft + data.childWidth) - (data.parentLeft + data.parentWidth)) + 'px;' +
12692
- this.getBorderStyles((!this.parent.enableRtl ? 'right' : 'left'), 10) + 'top:' + (-6 - this.lineStroke) + 'px;' +
12693
- 'border-bottom-width:' + (5 + this.lineStroke) + 'px;border-top-width:' + (5 + this.lineStroke) +
12694
- 'px;width:0;height:0;position:relative;"></div></div>';
12670
+ this.taskLineValue = this.parent.renderBaseline ? this.taskLineValue : (data.milestoneChild ? 1 : 0);
12671
+ this.x1 = data.parentEndPoint;
12672
+ this.x2 = data.childEndPoint + (data.milestoneParent ? 22 : 21);
12673
+ this.x3 = data.childEndPoint + (data.milestoneChild ? 9 : 8);
12674
+ this.y1 = this.parent.enableVirtualization ? rowPositionHeight : ((!this.parent.allowTaskbarOverlap ? parentOverlapTopValue : (data.parentIndex * data.rowHeight)) + this.getTaskbarMidpoint(data.milestoneParent)) + ((data.isManualParent && data.isManualChild) ? -10 : 0);
12675
+ this.y2 = heightValue + this.taskLineValue;
12676
+ this.manualParent = (data.isManualParent && !data.isManualChild ? -10 : 0);
12677
+ this.manualChild = (data.isManualChild && !data.isManualParent ? -10 : 0);
12678
+ 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) +
12679
+ " L " + this.x3 + " " + (this.y1 + this.y2);
12680
+ this.arrowPath = "M " + (this.x3 - 8) + " " + (this.y1 + this.y2 + this.manualChild) +
12681
+ " L " + this.x3 + " " + (this.y1 + this.y2 - (4 + this.lineStroke) + this.manualChild) +
12682
+ " L " + this.x3 + " " + (this.y1 + this.y2 + 4 + this.lineStroke + this.manualChild) + " Z";
12695
12683
  }
12696
12684
  if (this.getParentPosition(data) === 'FFType3') {
12697
- div = div + direction + (data.childLeft + data.childWidth) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
12698
- ((!this.parent.allowTaskbarOverlap ? childOverlapTopValue : (data.childIndex * data.rowHeight)) + addTop + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
12699
- 'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="FFType3">';
12700
- div = div + duplicateStingOne;
12701
- div = div + eLine;
12702
- div = div + (isMilestone ? (direction + '4px;width:' +
12703
- (((data.parentLeft + data.parentWidth) - (data.childLeft + data.childWidth)) + 16)) :
12704
- (direction + '10px;width:' + (((data.parentLeft + data.parentWidth) -
12705
- (data.childLeft + data.childWidth)) + 10))) + 'px;top:' + (-(6 + (5 + this.lineStroke) +
12706
- (this.lineStroke / 2))) + 'px;' + this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
12707
- div = div + eLine;
12708
- div = div + direction + (((data.parentLeft + data.parentWidth) - (data.childLeft + data.childWidth)) + 20) +
12709
- 'px;top:' + (-(13 + ((this.lineStroke - 1) * 2))) + 'px;' +
12710
- 'width:0px;' + this.getBorderStyles('left', this.lineStroke) +
12711
- this.getBorderStyles('top', (heightValue + borderTopWidth - this.lineStroke + 1)) + 'position:relative;"></div>';
12712
- div = div + eLine;
12713
- div = div + (isMilestoneParent ? (direction + (((data.parentLeft + data.parentWidth) -
12714
- (data.childLeft + data.childWidth)) - 1) + 'px;width:21') : (direction + ((data.parentLeft + data.parentWidth) -
12715
- (data.childLeft + data.childWidth)) + 'px;width:20')) +
12716
- 'px;top:' + (-(13 + ((this.lineStroke - 1) * 2))) + 'px;' +
12717
- this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div></div>';
12685
+ this.taskLineValue = this.parent.renderBaseline ? this.taskLineValue : 0;
12686
+ this.x1 = data.childEndPoint;
12687
+ this.x2 = this.x1 + (data.milestoneChild ? 4 : 8);
12688
+ this.x3 = data.parentEndPoint - data.childEndPoint + (data.milestoneChild ? 16 : 10);
12689
+ this.x4 = data.parentEndPoint + (data.milestoneParent ? -1 : 0);
12690
+ this.y1 = this.parent.enableVirtualization ? rowPositionHeight : ((!this.parent.allowTaskbarOverlap ? parentOverlapTopValue : (data.childIndex * data.rowHeight)) + this.getTaskbarMidpoint(data.milestoneChild)) + ((data.isManualParent && data.isManualChild) ? -10 : 0);
12691
+ this.y2 = heightValue + this.taskLineValue + (this.parent.renderBaseline ? (data.milestoneParent ? 10 : 0) : 0);
12692
+ this.manualParent = (data.isManualParent && !data.isManualChild ? -10 : 0);
12693
+ this.manualChild = (data.isManualChild && !data.isManualParent ? -10 : 0);
12694
+ 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) +
12695
+ " L " + this.x4 + " " + (this.y1 + this.y2);
12696
+ this.arrowPath = "M " + this.x1 + " " + (this.y1 + this.manualChild) +
12697
+ " L " + (this.x1 + 8) + " " + (this.y1 - (4 + this.lineStroke) + this.manualChild) +
12698
+ " L " + (this.x1 + 8) + " " + (this.y1 + 4 + this.lineStroke + this.manualChild) + " Z";
12718
12699
  }
12719
12700
  if (this.getParentPosition(data) === 'FFType4') {
12720
- div = div + direction + (data.parentLeft + data.parentWidth) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
12721
- ((!this.parent.allowTaskbarOverlap ? childOverlapTopValue : (data.childIndex * data.rowHeight)) + addTop + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
12722
- 'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="FFType4">';
12723
- div = div + leftArrow;
12724
- div = div + (direction + ((data.childLeft + data.childWidth) -
12725
- (data.parentLeft + data.parentWidth))) + 'px;' +
12726
- this.getBorderStyles((!this.parent.enableRtl ? 'right' : 'left'), 10) + 'top:' + (-5 - this.lineStroke + (this.lineStroke - 1)) + 'px;' +
12727
- 'border-bottom-width:' + (5 + this.lineStroke) +
12728
- 'px;border-top-width:' + (5 + this.lineStroke) + 'px;width:0;height:0;' +
12729
- 'position:relative;"></div>';
12730
- div = div + eLine;
12731
- div = div + (isMilestone ? (direction + (((data.childLeft + data.childWidth) -
12732
- (data.parentLeft + data.parentWidth)) + 4) +
12733
- 'px;width:' + (16 + this.lineStroke)) : (direction + (((data.childLeft + data.childWidth) -
12734
- (data.parentLeft + data.parentWidth)) + 10) + 'px;width:' + (10 + this.lineStroke))) +
12735
- 'px;' + duplicateStingFive;
12736
- div = div + eLine;
12737
- div = div + direction + (((data.childLeft + data.childWidth) -
12738
- (data.parentLeft + data.parentWidth)) + 20) + 'px;top:' + (-(13 + ((this.lineStroke - 1) * 2))) +
12739
- 'px;width:0px;' + this.getBorderStyles('left', this.lineStroke) +
12740
- this.getBorderStyles('top', (heightValue + borderTopWidth - this.lineStroke + 1)) + 'position:relative;"></div>';
12741
- div = div + eLine;
12742
- div = div + (isMilestoneParent ? (direction + '-1px;width:' + (((data.childLeft + data.childWidth) -
12743
- (data.parentLeft + data.parentWidth)) + (21 + this.lineStroke))) : ('width:' + (((data.childLeft + data.childWidth) -
12744
- (data.parentLeft + data.parentWidth)) + (20 + this.lineStroke)))) + 'px;top:' +
12745
- (-(13 + ((this.lineStroke - 1) * 2))) + 'px;' +
12746
- this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div></div>';
12701
+ this.taskLineValue = this.parent.renderBaseline ? this.taskLineValue : 0;
12702
+ this.x1 = data.parentEndPoint;
12703
+ this.x2 = data.childEndPoint + (data.milestoneChild ? 7 : 8);
12704
+ this.x3 = this.x2 + (data.milestoneChild ? 12 : 11);
12705
+ this.y1 = this.parent.enableVirtualization ? rowPositionHeight : ((!this.parent.allowTaskbarOverlap ? parentOverlapTopValue : (data.childIndex * data.rowHeight)) + this.getTaskbarMidpoint(data.milestoneChild)) + ((data.isManualParent && data.isManualChild) ? -10 : 0);
12706
+ this.y2 = heightValue + this.taskLineValue + +(this.parent.renderBaseline ? (data.milestoneParent ? 10 : 0) : 0);
12707
+ this.manualParent = (data.isManualParent && !data.isManualChild ? -10 : 0);
12708
+ this.manualChild = (data.isManualChild && !data.isManualParent ? -10 : 0);
12709
+ 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) +
12710
+ " L " + this.x1 + " " + (this.y1 + this.y2);
12711
+ this.arrowPath = "M " + (this.x2 - 8) + " " + (this.y1 + this.manualChild) +
12712
+ " L " + this.x2 + " " + (this.y1 - (4 + this.lineStroke) + this.manualChild) +
12713
+ " L " + this.x2 + " " + (this.y1 + 4 + this.lineStroke + this.manualChild) + " Z";
12747
12714
  }
12748
12715
  if (this.getParentPosition(data) === 'SFType4') {
12749
- div = div + direction + (data.parentLeft - 10) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
12750
- ((!this.parent.allowTaskbarOverlap ? childOverlapTopValue : (data.childIndex * data.rowHeight)) + addTop + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;width:1px;' +
12751
- 'height:' + heightValue + 'px;position:absolute" data-connectortype="SFType4">';
12752
- div = div + duplicateStingFour + 'top:' + (-5 - this.lineStroke + (this.lineStroke - 1)) + 'px;' +
12753
- 'border-bottom-width:' + (5 + this.lineStroke) +
12754
- 'px;border-top-width:' + (5 + this.lineStroke) + 'px;width:0;height:0;' +
12755
- 'position:relative;"></div>';
12756
- div = div + eLine;
12757
- div = div + direction + (isMilestone ? ((((data.childLeft + data.childWidth) - (data.parentLeft)) + (14 + this.lineStroke)) +
12758
- 'px;width:16') : ((((data.childLeft + data.childWidth) - (data.parentLeft)) + 20) + 'px;width:' +
12759
- (10 + this.lineStroke))) + 'px;' + duplicateStingFive;
12760
- div = div + eLine;
12761
- div = div + direction + (((data.childLeft + data.childWidth) - (data.parentLeft)) + 30) + 'px;top:' +
12762
- (-(13 + ((this.lineStroke - 1) * 2))) + 'px;width:0px;' + this.getBorderStyles('left', this.lineStroke) +
12763
- this.getBorderStyles('top', (heightValue + borderTopWidth - this.getconnectorLineGap(data) - (this.lineStroke - 1))) + 'position:relative;"></div>';
12764
- div = div + eLine;
12765
- div = div + 'top:' + (-(13 + ((this.lineStroke - 1) * 2))) + 'px;width:' +
12766
- (((data.childLeft + data.childWidth) - (data.parentLeft)) + (30 + this.lineStroke)) + 'px;' +
12767
- this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
12768
- div = div + eLine;
12769
- div = div + 'top:' + (-(13 + ((this.lineStroke - 1) * 2))) + 'px;width:0px;' +
12770
- this.getBorderStyles('left', this.lineStroke) +
12771
- this.getBorderStyles('top', (this.getconnectorLineGap(data) - this.lineStroke)) + 'position:relative;"></div>';
12772
- div = div + eLine;
12773
- div = div + 'top:' + (-(13 + ((this.lineStroke - 1) * 2))) + 'px;width:11px;' +
12774
- this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div></div>';
12716
+ this.taskLineValue = this.parent.renderBaseline ? this.taskLineValue : (data.milestoneChild ? -1 : 0);
12717
+ this.point1 = heightValue - this.getconnectorLineGap(data) + this.taskLineValue;
12718
+ this.point2 = this.parent.enableVirtualization ? rowPositionHeight : ((!this.parent.allowTaskbarOverlap ? parentOverlapTopValue : (data.childIndex * data.rowHeight)) + this.getTaskbarMidpoint(data.milestoneChild));
12719
+ this.x1 = data.parentLeft - 10;
12720
+ this.x2 = this.x1 + ((data.childEndPoint - data.parentLeft) + 18);
12721
+ this.x3 = this.x2 + (data.milestoneChild ? 16 : 11);
12722
+ this.y1 = this.point2 + (data.milestoneChild ? 1 : 0) + ((data.isManualParent && data.isManualChild) ? -10 : 0);
12723
+ this.y2 = this.y1 + this.point1 + (this.parent.renderBaseline ? (data.milestoneChild ? -11 : 0) : 0);
12724
+ this.y3 = this.getconnectorLineGap(data) + (this.parent.renderBaseline ? (data.milestoneParent ? 10 : 0) : 0);
12725
+ this.y4 = this.y2 - (this.y2 % data.rowHeight);
12726
+ this.manualParent = (data.isManualParent && !data.isManualChild ? -10 : 0);
12727
+ this.manualChild = (data.isManualChild && !data.isManualParent ? -10 : 0);
12728
+ 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 +
12729
+ " L " + this.x1 + " " + (this.y2 + this.y3) + " L " + (this.x1 + 11) + " " + (this.y2 + this.y3);
12730
+ this.arrowPath = "M " + (this.x2 - 8) + " " + (this.y1 + this.manualChild) +
12731
+ " L " + this.x2 + " " + (this.y1 - (4 + this.lineStroke) + this.manualChild) +
12732
+ " L " + this.x2 + " " + (this.y1 + 4 + this.lineStroke + this.manualChild) + " Z";
12775
12733
  }
12776
12734
  if (this.getParentPosition(data) === 'SFType3') {
12777
- div = div + direction + (data.childLeft + data.childWidth) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
12778
- ((!this.parent.allowTaskbarOverlap ? childOverlapTopValue : (data.childIndex * data.rowHeight)) + addTop + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
12779
- 'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="SFType3">';
12780
- div = div + duplicateStingOne;
12781
- div = div + eLine;
12782
- div = div + (isMilestone ? direction + '4px;width:' + (16 + this.lineStroke) : direction + '10px;width:' +
12783
- (10 + this.lineStroke)) + 'px;top:' + (-(13 + ((this.lineStroke - 1) * 2) - 1)) + 'px;' +
12784
- this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
12785
- div = div + eLine;
12786
- div = div + direction + '20px;top:' + (-(13 + ((this.lineStroke - 1) * 2))) + 'px;width:0px;' +
12787
- this.getBorderStyles('left', this.lineStroke) +
12788
- this.getBorderStyles('top', (heightValue + borderTopWidth - (this.lineStroke - 1))) + 'position:relative;"></div>';
12789
- div = div + eLine;
12790
- div = div + direction + '20px;top:' + (-(13 + ((this.lineStroke - 1) * 2))) + 'px;width:' +
12791
- ((data.parentLeft - (data.childLeft + data.childWidth + 20)) + this.lineStroke) + 'px;' +
12792
- this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div></div>';
12735
+ this.taskLineValue = this.parent.renderBaseline ? this.taskLineValue : 0;
12736
+ this.point1 = (data.parentLeft - (data.childEndPoint + (data.milestoneParent ? 25 : 20))) + 1 + (this.parent.renderBaseline ? (data.milestoneParent ? 5 : 0) : 0);
12737
+ this.point2 = this.parent.enableVirtualization ? rowPositionHeight : ((!this.parent.allowTaskbarOverlap ? parentOverlapTopValue : (data.childIndex * data.rowHeight)) + this.getTaskbarMidpoint(data.milestoneChild));
12738
+ this.x1 = data.childEndPoint;
12739
+ this.x2 = this.x1 + (data.milestoneChild ? 9 : 8);
12740
+ this.x3 = this.x2 + (data.milestoneChild ? 17 : 11);
12741
+ this.y1 = this.point2 + ((data.isManualParent && data.isManualChild) ? -10 : 0);
12742
+ this.y2 = this.y1 + heightValue + this.taskLineValue + (this.parent.renderBaseline ? (data.milestoneParent ? 10 : 0) : 0);
12743
+ this.manualParent = (data.isManualParent && !data.isManualChild ? -10 : 0);
12744
+ this.manualChild = (data.isManualChild && !data.isManualParent ? -10 : 0);
12745
+ this.connectorLinePath = "M " + this.x2 + " " + (this.y1 + this.manualParent + this.manualChild) + " L " + this.x3 + " " + (this.y1 + this.manualParent + this.manualChild) +
12746
+ " L " + this.x3 + " " + this.y2 + " L " + (this.x3 + this.point1) + " " + this.y2;
12747
+ this.arrowPath = "M " + (this.x2 - 8) + " " + (this.y1 + this.manualChild) +
12748
+ " L " + this.x2 + " " + (this.y1 - (4 + this.lineStroke) + this.manualChild) +
12749
+ " L " + this.x2 + " " + (this.y1 + 4 + this.lineStroke + this.manualChild) + " Z";
12793
12750
  }
12794
12751
  if (this.getParentPosition(data) === 'SFType1') {
12795
- div = div + direction + (data.parentLeft - 10) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
12796
- ((!this.parent.allowTaskbarOverlap ? parentOverlapTopValue : (data.parentIndex * data.rowHeight)) + addTop + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
12797
- 'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="SFType1">';
12798
- div = div + eLine;
12799
- div = div + 'width:11px;' + this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
12800
- div = div + eLine;
12801
- div = div + 'width:0px;' + this.getBorderStyles('left', this.lineStroke) +
12802
- this.getBorderStyles('top', (heightValue + borderTopWidth - this.getconnectorLineGap(data) - this.lineStroke)) + 'position:relative;"></div>';
12803
- div = div + eLine;
12804
- div = div + 'width:' + (((data.childLeft + data.childWidth) - (data.parentLeft)) + (30 + this.lineStroke)) + 'px;' +
12805
- this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
12806
- div = div + eLine;
12807
- div = div + direction + (((data.childLeft + data.childWidth) - (data.parentLeft)) + 30) +
12808
- 'px;width:0px;' + this.getBorderStyles('left', this.lineStroke) +
12809
- this.getBorderStyles('top', (this.getconnectorLineGap(data) - this.lineStroke)) + 'position:relative;"></div>';
12810
- div = div + eLine;
12811
- div = div + (isMilestone ? (direction + (((data.childLeft + data.childWidth) -
12812
- (data.parentLeft)) + 15) + 'px;width:' + (15 + this.lineStroke)) : (direction +
12813
- (((data.childLeft + data.childWidth) - (data.parentLeft)) + 20) + 'px;width:' + (10 + this.lineStroke))) + 'px;' +
12814
- this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
12815
- div = div + duplicateStingFour + 'top:' + (-6 - this.lineStroke) + 'px;' +
12816
- 'border-bottom-width:' + (5 + this.lineStroke) + 'px;border-top-width:' +
12817
- (5 + this.lineStroke) + 'px;position:relative;"></div></div>';
12752
+ this.taskLineValue = this.parent.renderBaseline ? this.taskLineValue : data.milestoneChild ? 1 : 0;
12753
+ this.point1 = heightValue - this.getconnectorLineGap(data) + this.taskLineValue;
12754
+ this.point2 = this.getconnectorLineGap(data);
12755
+ this.x1 = data.parentLeft - 10;
12756
+ this.y1 = this.parent.enableVirtualization ? rowPositionHeight : ((!this.parent.allowTaskbarOverlap ? parentOverlapTopValue : (data.parentIndex * data.rowHeight)) + this.getTaskbarMidpoint(data.milestoneParent)) + +((data.isManualParent && data.isManualChild) ? -10 : 0);
12757
+ this.x2 = (data.childEndPoint - data.parentLeft) + 31;
12758
+ this.y2 = this.y1 + this.point1;
12759
+ this.x3 = (data.childEndPoint - data.parentLeft) + 18;
12760
+ this.y3 = this.y2 - (this.y2 % data.rowHeight);
12761
+ this.manualParent = (data.isManualParent && !data.isManualChild ? -10 : 0);
12762
+ this.manualChild = (data.isManualChild && !data.isManualParent ? -10 : 0);
12763
+ 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 +
12764
+ " 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);
12765
+ this.arrowPath = "M " + (this.x1 + this.x3 - 8) + " " + (this.y2 + this.point2 + this.manualChild) +
12766
+ " L " + (this.x1 + this.x3) + " " + (this.y2 + this.point2 - (4 + this.lineStroke) + this.manualChild) +
12767
+ " L " + (this.x1 + this.x3) + " " + (this.y2 + this.point2 + 4 + this.lineStroke + this.manualChild) + " Z";
12818
12768
  }
12819
12769
  if (this.getParentPosition(data) === 'SFType2') {
12820
- div = div + direction + (data.childLeft + data.childWidth) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
12821
- ((!this.parent.allowTaskbarOverlap ? parentOverlapTopValue : (data.parentIndex * data.rowHeight)) + addTop + this.getTaskbarMidpoint(isMilestoneParent) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
12822
- 'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="SFType2">';
12823
- div = div + eLine;
12824
- div = div + direction + (((data.parentLeft) - (data.childLeft + data.childWidth)) - 10) +
12825
- 'px;width:11px;' + this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
12826
- div = div + eLine;
12827
- div = div + direction + (((data.parentLeft) - (data.childLeft + data.childWidth)) - 10) +
12828
- 'px;width:0px;' + this.getBorderStyles('left', this.lineStroke) +
12829
- this.getBorderStyles('top', (heightValue + borderTopWidth - this.lineStroke)) + 'position:relative;"></div>';
12830
- div = div + eLine;
12831
- div = div + (isMilestone ? (direction + '4px;width:' + (((data.parentLeft) - (data.childLeft + data.childWidth))
12832
- - (14 - this.lineStroke))) : (direction + '10px;width:' + (((data.parentLeft) -
12833
- (data.childLeft + data.childWidth)) - (20 - this.lineStroke)))) +
12834
- 'px;' + this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
12835
- div = div + leftArrow;
12836
- div = div + direction + '0px;' + this.getBorderStyles((this.parent.enableRtl ? 'right' : 'left'), 10) +
12837
- 'top:' + (-6 - this.lineStroke) + 'px;border-bottom-width:' + (5 + this.lineStroke) +
12838
- 'px;border-top-width:' + (5 + this.lineStroke) + 'px;width:0;height:0;position:relative;"></div></div>';
12839
- }
12840
- connectorContainer += div;
12841
- connectorContainer += '</div>';
12842
- }
12843
- return connectorContainer;
12770
+ this.taskLineValue = this.parent.renderBaseline ? this.taskLineValue : 0;
12771
+ this.x1 = data.childEndPoint;
12772
+ this.y1 = this.parent.enableVirtualization ? rowPositionHeight : ((!this.parent.allowTaskbarOverlap ? parentOverlapTopValue : (data.parentIndex * data.rowHeight)) + this.getTaskbarMidpoint(data.milestoneParent)) + +((data.isManualParent && data.isManualChild) ? -10 : 0);
12773
+ this.x2 = (data.parentLeft - data.childEndPoint);
12774
+ this.y2 = this.y1 + heightValue + this.taskLineValue;
12775
+ this.manualParent = (data.isManualParent && !data.isManualChild ? -10 : 0);
12776
+ this.manualChild = (data.isManualChild && !data.isManualParent ? -10 : 0);
12777
+ 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) +
12778
+ " L " + (this.x1 + this.x2 - 10) + " " + this.y2 + " L " + (this.x1 + 8) + " " + this.y2;
12779
+ this.arrowPath = "M " + this.x1 + " " + (this.y2 + this.manualChild) +
12780
+ " L " + (this.x1 + 8) + " " + (this.y2 - (4 + this.lineStroke) + this.manualChild) +
12781
+ " L " + (this.x1 + 8) + " " + (this.y2 + 4 + this.lineStroke + this.manualChild) + " Z";
12782
+ }
12783
+ this.connectorPath.setAttribute("d", this.connectorLinePath);
12784
+ this.arrowlinePath.setAttribute("d", this.arrowPath);
12785
+ }
12786
+ return this.groupObject.outerHTML;
12844
12787
  };
12845
12788
  /**
12846
12789
  * @param {IConnectorLineObject} data .
@@ -12906,10 +12849,10 @@ var ConnectorLine = /** @__PURE__ @class */ (function () {
12906
12849
  * @private
12907
12850
  */
12908
12851
  ConnectorLine.prototype.getConnectorLineTooltipInnerTd = function (fromTaskName, fromPredecessorText, toTaskName, toPredecessorText) {
12909
- var innerTd = '<tr id="fromPredecessor"><td >' + this.parent.localeObj.getConstant('from') + '</td><td> ';
12910
- innerTd = innerTd + fromTaskName + ' </td><td> ' + this.parent.localeObj.getConstant(fromPredecessorText) + ' </td> </tr>';
12911
- innerTd = innerTd + '<tr id="toPredecessor"><td>' + this.parent.localeObj.getConstant('to') + '</td><td> ' + toTaskName;
12912
- innerTd = innerTd + ' </td><td> ' + this.parent.localeObj.getConstant(toPredecessorText) + ' </td></tr></tbody><table>';
12852
+ var innerTd = '<tr id="fromPredecessor"><td style="padding: 4px;">' + this.parent.localeObj.getConstant('from') + '</td><td> ';
12853
+ innerTd = innerTd + fromTaskName + ' </td><td style="padding: 2px;"> ' + this.parent.localeObj.getConstant(fromPredecessorText) + ' </td> </tr>';
12854
+ innerTd = innerTd + '<tr id="toPredecessor"><td style="padding: 4px;">' + this.parent.localeObj.getConstant('to') + '</td><td> ' + toTaskName;
12855
+ innerTd = innerTd + ' </td><td style="padding: 2px;"> ' + this.parent.localeObj.getConstant(toPredecessorText) + ' </td></tr></tbody><table>';
12913
12856
  return innerTd;
12914
12857
  };
12915
12858
  /**
@@ -13422,7 +13365,7 @@ var Tooltip$1 = /** @__PURE__ @class */ (function () {
13422
13365
  * @param {IGanttData} ganttData .
13423
13366
  * @param {Gantt} parent .
13424
13367
  * @param {TooltipEventArgs} args .
13425
- * @returns {string} .
13368
+ * @returns {string | Function} .
13426
13369
  */
13427
13370
  Tooltip$$1.prototype.getTooltipContent = function (elementType, ganttData, parent, args) {
13428
13371
  var content$$1;
@@ -13451,11 +13394,14 @@ var Tooltip$1 = /** @__PURE__ @class */ (function () {
13451
13394
  if (this.parent.enableHtmlSanitizer && typeof (sDateValue) === 'string') {
13452
13395
  sDateValue = SanitizeHtmlHelper.sanitize(sDateValue);
13453
13396
  }
13454
- var sDate = !isNullOrUndefined(milestoneStartDate) ? '<tr><td class = "e-gantt-tooltip-label"> Date</td><td>:</td>' +
13397
+ var sDate_1 = !isNullOrUndefined(milestoneStartDate) ? '<tr><td class = "e-gantt-tooltip-label"> Date</td><td>:</td>' +
13455
13398
  '<td class = "e-gantt-tooltip-value">' +
13456
13399
  sDateValue + '</td></tr>' : '';
13457
- content$$1 = '<table class = "e-gantt-tooltiptable"><tbody>' +
13458
- taskName + sDate + '</tbody></table>';
13400
+ var contentTemp_1 = function () {
13401
+ return '<table class = "e-gantt-tooltiptable"><tbody>' +
13402
+ taskName + sDate_1 + '</tbody></table>';
13403
+ };
13404
+ content$$1 = initializeCSPTemplate(contentTemp_1);
13459
13405
  break;
13460
13406
  }
13461
13407
  case 'taskbar':
@@ -13471,96 +13417,114 @@ var Tooltip$1 = /** @__PURE__ @class */ (function () {
13471
13417
  durationValue = typeof (durationValue) === 'string' ? SanitizeHtmlHelper.sanitize(durationValue) : durationValue;
13472
13418
  progressValue = typeof (progressValue) === 'string' ? SanitizeHtmlHelper.sanitize(progressValue) : progressValue;
13473
13419
  }
13474
- var startDate = data.startDate ? '<tr><td class = "e-gantt-tooltip-label">' +
13420
+ var startDate_1 = data.startDate ? '<tr><td class = "e-gantt-tooltip-label">' +
13475
13421
  this.parent.localeObj.getConstant(scheduledTask ? 'startDate' : 'subTasksStartDate') +
13476
- '</td><td>:</td>' + '<td class = "e-gantt-tooltip-value"> ' + startDateValue + '</td></tr>' : '';
13477
- var endDate = data.endDate ? '<tr><td class = "e-gantt-tooltip-label">' +
13422
+ '</td><td style="padding: 2px;">:</td>' + '<td class = "e-gantt-tooltip-value"> ' + startDateValue + '</td></tr>' : '';
13423
+ var endDate_1 = data.endDate ? '<tr><td class = "e-gantt-tooltip-label">' +
13478
13424
  this.parent.localeObj.getConstant(scheduledTask ? 'endDate' : 'subTasksEndDate') +
13479
- '</td><td>:</td>' + '<td class = "e-gantt-tooltip-value">' + endDateValue + '</td></tr>' : '';
13480
- var duration = !isNullOrUndefined(data.duration) ? '<tr><td class = "e-gantt-tooltip-label">' +
13481
- this.parent.localeObj.getConstant('duration') + '</td><td>:</td>' +
13425
+ '</td><td style="padding: 2px;">:</td>' + '<td class = "e-gantt-tooltip-value">' + endDateValue + '</td></tr>' : '';
13426
+ var duration_1 = !isNullOrUndefined(data.duration) ? '<tr><td class = "e-gantt-tooltip-label">' +
13427
+ this.parent.localeObj.getConstant('duration') + '</td><td style="padding: 2px;">:</td>' +
13482
13428
  '<td class = "e-gantt-tooltip-value"> ' + durationValue +
13483
13429
  '</td></tr>' : '';
13484
- var progress = !isNullOrUndefined(data.progress) ? '<tr><td class = "e-gantt-tooltip-label">' +
13485
- this.parent.localeObj.getConstant('progress') + '</td><td>:</td><td>' + progressValue +
13430
+ var progress_1 = !isNullOrUndefined(data.progress) ? '<tr><td class = "e-gantt-tooltip-label">' +
13431
+ this.parent.localeObj.getConstant('progress') + '</td><td style="padding: 2px;">:</td><td>' + progressValue +
13486
13432
  '</td></tr>' : '';
13487
- content$$1 = '<table class = "e-gantt-tooltiptable"><tbody>' +
13488
- taskName + startDate + endDate + duration + progress + '</tbody></table>';
13433
+ var contentTemp_2 = function () {
13434
+ return '<table class = "e-gantt-tooltiptable"><tbody>' +
13435
+ taskName + startDate_1 + endDate_1 + duration_1 + progress_1 + '</tbody></table>';
13436
+ };
13437
+ content$$1 = initializeCSPTemplate(contentTemp_2);
13489
13438
  break;
13490
13439
  }
13491
13440
  case 'baseline':
13492
13441
  {
13493
- var baselineStartDateValue = this.parent.getFormatedDate(data.baselineStartDate, this.parent.getDateFormat());
13494
- var baselineEndDateValue = this.parent.getFormatedDate(data.baselineEndDate, this.parent.getDateFormat());
13442
+ var baselineStartDateValue_1 = this.parent.getFormatedDate(data.baselineStartDate, this.parent.getDateFormat());
13443
+ var baselineEndDateValue_1 = this.parent.getFormatedDate(data.baselineEndDate, this.parent.getDateFormat());
13495
13444
  if (this.parent.enableHtmlSanitizer) {
13496
- baselineStartDateValue = typeof (baselineStartDateValue) === 'string' ? SanitizeHtmlHelper.sanitize(baselineStartDateValue) : baselineStartDateValue;
13497
- baselineEndDateValue = typeof (baselineEndDateValue) === 'string' ? SanitizeHtmlHelper.sanitize(baselineEndDateValue) : baselineEndDateValue;
13498
- }
13499
- content$$1 = '<table class = "e-gantt-tooltiptable"><tbody>' +
13500
- taskName + '<tr><td class = "e-gantt-tooltip-label">' +
13501
- this.parent.localeObj.getConstant('baselineStartDate') + '</td><td>:</td>' + '<td class = "e-gantt-tooltip-value">' +
13502
- baselineStartDateValue + '</td></tr><tr>' +
13503
- '<td class = "e-gantt-tooltip-label">' + this.parent.localeObj.getConstant('baselineEndDate') +
13504
- '</td><td>:</td><td class = "e-gantt-tooltip-value">' +
13505
- baselineEndDateValue + '</td></tr></tbody></table>';
13445
+ baselineStartDateValue_1 = typeof (baselineStartDateValue_1) === 'string' ? SanitizeHtmlHelper.sanitize(baselineStartDateValue_1) : baselineStartDateValue_1;
13446
+ baselineEndDateValue_1 = typeof (baselineEndDateValue_1) === 'string' ? SanitizeHtmlHelper.sanitize(baselineEndDateValue_1) : baselineEndDateValue_1;
13447
+ }
13448
+ var contentTemp_3 = function () {
13449
+ return '<table class = "e-gantt-tooltiptable"><tbody>' +
13450
+ taskName + '<tr><td class = "e-gantt-tooltip-label">' +
13451
+ this.parent.localeObj.getConstant('baselineStartDate') + '</td><td>:</td>' + '<td class = "e-gantt-tooltip-value">' +
13452
+ baselineStartDateValue_1 + '</td></tr><tr>' +
13453
+ '<td class = "e-gantt-tooltip-label">' + this.parent.localeObj.getConstant('baselineEndDate') +
13454
+ '</td><td>:</td><td class = "e-gantt-tooltip-value">' +
13455
+ baselineEndDateValue_1 + '</td></tr></tbody></table>';
13456
+ };
13457
+ content$$1 = initializeCSPTemplate(contentTemp_3, this);
13506
13458
  break;
13507
13459
  }
13508
13460
  case 'marker':
13509
13461
  {
13510
13462
  var markerTooltipElement = parent.tooltipModule.getMarkerTooltipData(args);
13511
- var markerTooltipElementValue = this.parent.getFormatedDate(this.parent.dateValidationModule.getDateFromFormat(markerTooltipElement.day), this.parent.getDateFormat());
13512
- var markerLabel = markerTooltipElement.label ? markerTooltipElement.label : '';
13463
+ var markerTooltipElementValue_1 = this.parent.getFormatedDate(this.parent.dateValidationModule.getDateFromFormat(markerTooltipElement.day), this.parent.getDateFormat());
13464
+ var markerLabel_1 = markerTooltipElement.label ? markerTooltipElement.label : '';
13513
13465
  if (this.parent.enableHtmlSanitizer) {
13514
- markerLabel = typeof (markerLabel) === 'string' ? SanitizeHtmlHelper.sanitize(markerLabel) : markerLabel;
13515
- markerTooltipElementValue = typeof (markerTooltipElementValue) === 'string' ? SanitizeHtmlHelper.sanitize(markerTooltipElementValue) : markerTooltipElementValue;
13466
+ markerLabel_1 = typeof (markerLabel_1) === 'string' ? SanitizeHtmlHelper.sanitize(markerLabel_1) : markerLabel_1;
13467
+ markerTooltipElementValue_1 = typeof (markerTooltipElementValue_1) === 'string' ? SanitizeHtmlHelper.sanitize(markerTooltipElementValue_1) : markerTooltipElementValue_1;
13516
13468
  }
13517
- content$$1 = '<table class = "e-gantt-tooltiptable"><tbody><tr><td>' +
13518
- markerTooltipElementValue + '</td></tr><tr><td>' + (this.parent.disableHtmlEncode ? markerLabel.replace(/</g, "&lt;").replace(/>/g, "&gt;") : markerLabel) + '</td></tr></tbody></table>';
13469
+ var contentTemp_4 = function () {
13470
+ return '<table class = "e-gantt-tooltiptable"><tbody><tr><td>' +
13471
+ markerTooltipElementValue_1 + '</td></tr><tr><td>' + (this.parent.disableHtmlEncode ? markerLabel_1.replace(/</g, "&lt;").replace(/>/g, "&gt;") : markerLabel_1) + '</td></tr></tbody></table>';
13472
+ };
13473
+ content$$1 = initializeCSPTemplate(contentTemp_4, this);
13519
13474
  break;
13520
13475
  }
13521
13476
  case 'connectorLine':
13522
13477
  {
13523
- var fromNameValue = parent.tooltipModule.predecessorTooltipData.fromName;
13524
- var fromIdValue = parent.tooltipModule.predecessorTooltipData.fromId;
13525
- var toNameValue = parent.tooltipModule.predecessorTooltipData.toName;
13526
- var toIdValue = parent.tooltipModule.predecessorTooltipData.toId;
13527
- var linkTextValue = parent.tooltipModule.predecessorTooltipData.linkText;
13528
- var offsetStringValue = parent.tooltipModule.predecessorTooltipData.offsetString;
13478
+ var fromNameValue_1 = parent.tooltipModule.predecessorTooltipData.fromName;
13479
+ var fromIdValue_1 = parent.tooltipModule.predecessorTooltipData.fromId;
13480
+ var toNameValue_1 = parent.tooltipModule.predecessorTooltipData.toName;
13481
+ var toIdValue_1 = parent.tooltipModule.predecessorTooltipData.toId;
13482
+ var linkTextValue_1 = parent.tooltipModule.predecessorTooltipData.linkText;
13483
+ var offsetStringValue_1 = parent.tooltipModule.predecessorTooltipData.offsetString;
13529
13484
  if (this.parent.enableHtmlSanitizer) {
13530
- fromNameValue = typeof (fromNameValue) === 'string' ? SanitizeHtmlHelper.sanitize(fromNameValue) : fromNameValue;
13531
- fromIdValue = typeof (fromIdValue) === 'string' ? SanitizeHtmlHelper.sanitize(fromIdValue) : fromIdValue;
13532
- toNameValue = typeof (toNameValue) === 'string' ? SanitizeHtmlHelper.sanitize(toNameValue) : toNameValue;
13533
- toIdValue = typeof (toIdValue) === 'string' ? SanitizeHtmlHelper.sanitize(toIdValue) : toIdValue;
13534
- linkTextValue = typeof (linkTextValue) === 'string' ? SanitizeHtmlHelper.sanitize(linkTextValue) : linkTextValue;
13535
- offsetStringValue = typeof (offsetStringValue) === 'string' ? SanitizeHtmlHelper.sanitize(offsetStringValue) : offsetStringValue;
13536
- }
13537
- content$$1 = '<table class = "e-gantt-tooltiptable"><tbody><tr><td class = "e-gantt-tooltip-label">' +
13538
- this.parent.localeObj.getConstant('from') + '</td><td>:</td>' +
13539
- '<td class = "e-gantt-tooltip-value">' + (this.parent.disableHtmlEncode ? fromNameValue.replace(/</g, "&lt;").replace(/>/g, "&gt;") : fromNameValue) + ' (' +
13540
- (this.parent.disableHtmlEncode ? (typeof (fromIdValue) === 'string' ? fromIdValue.replace(/</g, "&lt;").replace(/>/g, "&gt;") : fromIdValue) : fromIdValue) + ')' + '</td></tr><tr><td class = "e-gantt-tooltip-label">' +
13541
- this.parent.localeObj.getConstant('to') + '</td><td>:</td>' + '<td class = "e-gantt-tooltip-value">' +
13542
- (this.parent.disableHtmlEncode ? toNameValue.replace(/</g, "&lt;").replace(/>/g, "&gt;") : toNameValue) + ' (' + toIdValue + ')' + '</td></tr><tr><td class = "e-gantt-tooltip-label">' + this.parent.localeObj.getConstant('taskLink') +
13543
- '</td><td>:</td><td class = "e-gantt-tooltip-value"> ' + linkTextValue +
13544
- '</td></tr><tr><td class = "e-gantt-tooltip-label">' + this.parent.localeObj.getConstant('lag') +
13545
- '</td><td>:</td><td class = "e-gantt-tooltip-value">' +
13546
- offsetStringValue + '</td></tr></tbody></table>';
13485
+ fromNameValue_1 = typeof (fromNameValue_1) === 'string' ? SanitizeHtmlHelper.sanitize(fromNameValue_1) : fromNameValue_1;
13486
+ fromIdValue_1 = typeof (fromIdValue_1) === 'string' ? SanitizeHtmlHelper.sanitize(fromIdValue_1) : fromIdValue_1;
13487
+ toNameValue_1 = typeof (toNameValue_1) === 'string' ? SanitizeHtmlHelper.sanitize(toNameValue_1) : toNameValue_1;
13488
+ toIdValue_1 = typeof (toIdValue_1) === 'string' ? SanitizeHtmlHelper.sanitize(toIdValue_1) : toIdValue_1;
13489
+ linkTextValue_1 = typeof (linkTextValue_1) === 'string' ? SanitizeHtmlHelper.sanitize(linkTextValue_1) : linkTextValue_1;
13490
+ offsetStringValue_1 = typeof (offsetStringValue_1) === 'string' ? SanitizeHtmlHelper.sanitize(offsetStringValue_1) : offsetStringValue_1;
13491
+ }
13492
+ var contentTemp_5 = function () {
13493
+ return '<table class = "e-gantt-tooltiptable"><tbody><tr><td class = "e-gantt-tooltip-label">' +
13494
+ this.parent.localeObj.getConstant('from') + '</td><td>:</td>' +
13495
+ '<td class = "e-gantt-tooltip-value">' + (this.parent.disableHtmlEncode ? fromNameValue_1.replace(/</g, "&lt;").replace(/>/g, "&gt;") : fromNameValue_1) + ' (' +
13496
+ (this.parent.disableHtmlEncode ? (typeof (fromIdValue_1) === 'string' ? fromIdValue_1.replace(/</g, "&lt;").replace(/>/g, "&gt;") : fromIdValue_1) : fromIdValue_1) + ')' + '</td></tr><tr><td class = "e-gantt-tooltip-label">' +
13497
+ this.parent.localeObj.getConstant('to') + '</td><td>:</td>' + '<td class = "e-gantt-tooltip-value">' +
13498
+ (this.parent.disableHtmlEncode ? toNameValue_1.replace(/</g, "&lt;").replace(/>/g, "&gt;") : toNameValue_1) + ' (' + toIdValue_1 + ')' + '</td></tr><tr><td class = "e-gantt-tooltip-label">' + this.parent.localeObj.getConstant('taskLink') +
13499
+ '</td><td>:</td><td class = "e-gantt-tooltip-value"> ' + linkTextValue_1 +
13500
+ '</td></tr><tr><td class = "e-gantt-tooltip-label">' + this.parent.localeObj.getConstant('lag') +
13501
+ '</td><td>:</td><td class = "e-gantt-tooltip-value">' +
13502
+ offsetStringValue_1 + '</td></tr></tbody></table>';
13503
+ };
13504
+ content$$1 = initializeCSPTemplate(contentTemp_5, this);
13547
13505
  break;
13548
13506
  }
13549
13507
  case 'indicator':
13550
13508
  if (args.target.title.length) {
13551
- var titleValue = args.target.title;
13552
- if (this.parent.enableHtmlSanitizer && typeof (titleValue) === 'string') {
13553
- titleValue = SanitizeHtmlHelper.sanitize(titleValue);
13509
+ var titleValue_1 = args.target.title;
13510
+ if (this.parent.enableHtmlSanitizer && typeof (titleValue_1) === 'string') {
13511
+ titleValue_1 = SanitizeHtmlHelper.sanitize(titleValue_1);
13554
13512
  }
13555
- content$$1 = '<table class = "e-gantt-tooltiptable"><tbody><tr>' + titleValue + '</tr></tbody></table>';
13513
+ var contentTemp_6 = function () {
13514
+ return '<table class = "e-gantt-tooltiptable"><tbody><tr>' + titleValue_1 + '</tr></tbody></table>';
13515
+ };
13516
+ content$$1 = initializeCSPTemplate(contentTemp_6);
13556
13517
  }
13557
13518
  break;
13558
13519
  case 'timeline':
13559
- var timlineTitleValue = args.target.title;
13560
- if (this.parent.enableHtmlSanitizer && typeof (timlineTitleValue) === 'string') {
13561
- timlineTitleValue = SanitizeHtmlHelper.sanitize(timlineTitleValue);
13520
+ var timlineTitleValue_1 = args.target.title;
13521
+ if (this.parent.enableHtmlSanitizer && typeof (timlineTitleValue_1) === 'string') {
13522
+ timlineTitleValue_1 = SanitizeHtmlHelper.sanitize(timlineTitleValue_1);
13562
13523
  }
13563
- content$$1 = '<table class = "e-gantt-tooltiptable"><tbody><tr>' + timlineTitleValue + '</tr></tbody></table>';
13524
+ var contentTemp = function () {
13525
+ return '<table class = "e-gantt-tooltiptable"><tbody><tr>' + timlineTitleValue_1 + '</tr></tbody></table>';
13526
+ };
13527
+ content$$1 = initializeCSPTemplate(contentTemp);
13564
13528
  break;
13565
13529
  case 'manualtaskbar':
13566
13530
  {
@@ -13576,24 +13540,27 @@ var Tooltip$1 = /** @__PURE__ @class */ (function () {
13576
13540
  manualStartDateValue = typeof (manualStartDateValue) === 'string' ? SanitizeHtmlHelper.sanitize(manualStartDateValue) : manualStartDateValue;
13577
13541
  manualEndDateValue = typeof (manualEndDateValue) === 'string' ? SanitizeHtmlHelper.sanitize(manualEndDateValue) : manualEndDateValue;
13578
13542
  }
13579
- var autoStartDate = data.autoStartDate ? '<tr><td class = "e-gantt-tooltip-label">' +
13543
+ var autoStartDate_1 = data.autoStartDate ? '<tr><td class = "e-gantt-tooltip-label">' +
13580
13544
  this.parent.localeObj.getConstant('subTasksStartDate') + '</td><td>:</td>' + '<td class = "e-gantt-tooltip-value"> ' +
13581
13545
  autoStartDateValue + '</td></tr>' : '';
13582
- var autoEndDate = data.autoEndDate ? '<tr><td class = "e-gantt-tooltip-label">' +
13546
+ var autoEndDate_1 = data.autoEndDate ? '<tr><td class = "e-gantt-tooltip-label">' +
13583
13547
  this.parent.localeObj.getConstant('subTasksEndDate') + '</td><td>:</td>' + '<td class = "e-gantt-tooltip-value">' +
13584
13548
  autoEndDateValue + '</td></tr>' : '';
13585
- var durationValue = !isNullOrUndefined(data.duration) ? '<tr><td class = "e-gantt-tooltip-label">' +
13549
+ var durationValue_1 = !isNullOrUndefined(data.duration) ? '<tr><td class = "e-gantt-tooltip-label">' +
13586
13550
  this.parent.localeObj.getConstant('duration') + '</td><td>:</td>' +
13587
13551
  '<td class = "e-gantt-tooltip-value"> ' + durationUnitValue +
13588
13552
  '</td></tr>' : '';
13589
- var manualStartDate = data.startDate ? '<tr><td class = "e-gantt-tooltip-label">' +
13553
+ var manualStartDate_1 = data.startDate ? '<tr><td class = "e-gantt-tooltip-label">' +
13590
13554
  this.parent.localeObj.getConstant('startDate') + '</td><td>:</td>' + '<td class = "e-gantt-tooltip-value"> ' +
13591
13555
  manualStartDateValue + '</td></tr>' : '';
13592
- var manualEndDate = data.endDate ? '<tr><td class = "e-gantt-tooltip-label">' +
13556
+ var manualEndDate_1 = data.endDate ? '<tr><td class = "e-gantt-tooltip-label">' +
13593
13557
  this.parent.localeObj.getConstant('endDate') + '</td><td>:</td>' + '<td class = "e-gantt-tooltip-value">' +
13594
13558
  manualEndDateValue + '</td></tr>' : '';
13595
- content$$1 = '<table class = "e-gantt-tooltiptable"><tbody>' +
13596
- taskName + manualStartDate + autoStartDate + manualEndDate + autoEndDate + durationValue + '</tbody></table>';
13559
+ var contentTemp_7 = function () {
13560
+ return '<table class = "e-gantt-tooltiptable"><tbody>' +
13561
+ taskName + manualStartDate_1 + autoStartDate_1 + manualEndDate_1 + autoEndDate_1 + durationValue_1 + '</tbody></table>';
13562
+ };
13563
+ content$$1 = initializeCSPTemplate(contentTemp_7);
13597
13564
  break;
13598
13565
  }
13599
13566
  case 'manualmilestone':
@@ -13606,17 +13573,20 @@ var Tooltip$1 = /** @__PURE__ @class */ (function () {
13606
13573
  autoEndValue = typeof (autoEndValue) === 'string' ? SanitizeHtmlHelper.sanitize(autoEndValue) : autoEndValue;
13607
13574
  dateValue = typeof (dateValue) === 'string' ? SanitizeHtmlHelper.sanitize(dateValue) : dateValue;
13608
13575
  }
13609
- var autoStart = data.autoStartDate ? '<tr><td class = "e-gantt-tooltip-label">' +
13576
+ var autoStart_1 = data.autoStartDate ? '<tr><td class = "e-gantt-tooltip-label">' +
13610
13577
  this.parent.localeObj.getConstant('subTasksStartDate') + '</td><td>:</td>' + '<td class = "e-gantt-tooltip-value"> ' +
13611
13578
  autoStartValue + '</td></tr>' : '';
13612
- var autoEnd = data.autoEndDate ? '<tr><td class = "e-gantt-tooltip-label">' +
13579
+ var autoEnd_1 = data.autoEndDate ? '<tr><td class = "e-gantt-tooltip-label">' +
13613
13580
  this.parent.localeObj.getConstant('subTasksEndDate') + '</td><td>:</td>' + '<td class = "e-gantt-tooltip-value">' +
13614
13581
  autoEndValue + '</td></tr>' : '';
13615
- var date = '<tr><td class = "e-gantt-tooltip-label"> Date</td><td>:</td>' +
13582
+ var date_1 = '<tr><td class = "e-gantt-tooltip-label"> Date</td><td>:</td>' +
13616
13583
  '<td class = "e-gantt-tooltip-value">' +
13617
13584
  dateValue + '</tr>';
13618
- content$$1 = '<table class = "e-gantt-tooltiptable"><tbody>' +
13619
- taskName + date + autoStart + autoEnd + '</tbody></table>';
13585
+ var contentTemp_8 = function () {
13586
+ return '<table class = "e-gantt-tooltiptable"><tbody>' +
13587
+ taskName + date_1 + autoStart_1 + autoEnd_1 + '</tbody></table>';
13588
+ };
13589
+ content$$1 = initializeCSPTemplate(contentTemp_8);
13620
13590
  break;
13621
13591
  }
13622
13592
  }
@@ -13642,7 +13612,7 @@ var Tooltip$1 = /** @__PURE__ @class */ (function () {
13642
13612
  * @private
13643
13613
  */
13644
13614
  Tooltip$$1.prototype.getPredecessorTooltipData = function (args) {
13645
- var predeceesorParent = args.target.parentElement.id;
13615
+ var predeceesorParent = args.target.id;
13646
13616
  if (this.parent.enableHtmlSanitizer && typeof (predeceesorParent) === 'string') {
13647
13617
  predeceesorParent = SanitizeHtmlHelper.sanitize(predeceesorParent);
13648
13618
  }
@@ -13675,7 +13645,7 @@ var Tooltip$1 = /** @__PURE__ @class */ (function () {
13675
13645
  /**
13676
13646
  * To compile template string.
13677
13647
  *
13678
- * @param {string} template .
13648
+ * @param {string | Function} template .
13679
13649
  * @param {Gantt} parent .
13680
13650
  * @param {IGanttData|PredecessorTooltip} data .
13681
13651
  * @param {string} propName .
@@ -14754,19 +14724,17 @@ var Gantt = /** @__PURE__ @class */ (function (_super) {
14754
14724
  this.notify('initPredessorDialog', {});
14755
14725
  }
14756
14726
  this.splitterModule.updateSplitterPosition();
14757
- if (this.gridLines === 'Vertical' || this.gridLines === 'Both') {
14758
- this.renderChartVerticalLines();
14759
- }
14727
+ // if (this.gridLines === 'Vertical' || this.gridLines === 'Both') {
14728
+ // this.renderChartVerticalLines();
14729
+ // }
14760
14730
  };
14761
14731
  Gantt.prototype.removeCriticalPathStyles = function () {
14762
14732
  var ganttChartElement = this.ganttChartModule.chartElement;
14763
14733
  removeClass(ganttChartElement.querySelectorAll('.e-gantt-child-taskbar-inner-div'), criticalChildTaskBarInnerDiv);
14764
14734
  removeClass(ganttChartElement.querySelectorAll('.e-gantt-child-progressbar-inner-div'), criticalChildProgressBarInnerDiv);
14765
- removeClass(ganttChartElement.querySelectorAll('.e-milestone-top'), criticalMilestoneTop);
14766
- removeClass(ganttChartElement.querySelectorAll('.e-milestone-bottom'), criticalMilestoneBottom);
14767
- removeClass(this.element.querySelectorAll('.e-line'), criticalConnectorLine);
14768
- removeClass(this.element.querySelectorAll('.e-connector-line-right-arrow'), criticalConnectorLineRightArrow);
14769
- removeClass(this.element.querySelectorAll('.e-connector-line-left-arrow'), criticalConnectorLineLeftArrow);
14735
+ removeClass(ganttChartElement.querySelectorAll('.e-critical-milestone'), criticalMilestone);
14736
+ removeClass(this.element.querySelectorAll('.e-connector-line'), criticalConnectorLineSVG);
14737
+ removeClass(this.element.querySelectorAll('.e-connector-line-arrow'), criticalConnectorArrowSVG);
14770
14738
  };
14771
14739
  Gantt.prototype.wireEvents = function () {
14772
14740
  if (this.allowKeyboard) {
@@ -14778,6 +14746,15 @@ var Gantt = /** @__PURE__ @class */ (function (_super) {
14778
14746
  }
14779
14747
  /* eslint-disable-next-line @typescript-eslint/no-explicit-any */
14780
14748
  EventHandler.add(window, 'resize', this.windowResize, this);
14749
+ EventHandler.add(document.body, 'keydown', this.keyDownHandler, this);
14750
+ };
14751
+ Gantt.prototype.keyDownHandler = function (e) {
14752
+ if (e.altKey) {
14753
+ if (e.keyCode === 74) { //alt j
14754
+ this.ganttChartModule.manageFocus(this.treeGrid.element.childNodes[1], 'remove', false);
14755
+ this.ganttChartModule.manageFocus(this.element, 'add', false);
14756
+ }
14757
+ }
14781
14758
  };
14782
14759
  /**
14783
14760
  * Method trigger while user perform window resize.
@@ -15881,9 +15858,9 @@ var Gantt = /** @__PURE__ @class */ (function (_super) {
15881
15858
  if (!this.element.contains(this.chartVerticalLineContainer)) {
15882
15859
  this.chartVerticalLineContainer = createElement('div', {
15883
15860
  id: this.element.id + 'line-container',
15884
- styles: 'position:absolute;height:100%;z-index:1'
15861
+ styles: 'position:absolute;height:100%;'
15885
15862
  });
15886
- this.ganttChartModule.chartBodyContent.appendChild(this.chartVerticalLineContainer);
15863
+ this.ganttChartModule.chartBodyContent.insertBefore(this.chartVerticalLineContainer, this.ganttChartModule.chartBodyContent.lastChild);
15887
15864
  }
15888
15865
  this.chartVerticalLineContainer.innerHTML = '';
15889
15866
  var headerTable = this.element.getElementsByClassName('e-timeline-header-table-container')[1];
@@ -16272,9 +16249,6 @@ var Gantt = /** @__PURE__ @class */ (function (_super) {
16272
16249
  this.timelineModule.updateChartByNewTimeline();
16273
16250
  this.ganttChartModule.chartBodyContent.style.width = formatUnit(this.timelineModule.totalTimelineWidth);
16274
16251
  this.ganttChartModule.updateLastRowBottomWidth();
16275
- if (this.gridLines === 'Vertical' || this.gridLines === 'Both') {
16276
- this.renderChartVerticalLines();
16277
- }
16278
16252
  if (this.taskFields.dependency) {
16279
16253
  this.ganttChartModule.reRenderConnectorLines();
16280
16254
  }
@@ -18512,23 +18486,23 @@ var EditTooltip = /** @__PURE__ @class */ (function () {
18512
18486
  var duration = void 0;
18513
18487
  if (!isNullOrUndefined(editRecord.startDate)) {
18514
18488
  startDate = '<tr><td class = "e-gantt-tooltip-label">' + this.parent.localeObj.getConstant('startDate') +
18515
- '</td><td>:</td><td class = "e-gantt-tooltip-value">' +
18489
+ '</td><td style="padding: 2px;">:</td><td class = "e-gantt-tooltip-value">' +
18516
18490
  instance.formatDate(editRecord.startDate, { format: this.parent.getDateFormat() }) + '</td></tr>';
18517
18491
  }
18518
18492
  if (!isNullOrUndefined(editRecord.endDate)) {
18519
18493
  endDate = '<tr><td class = "e-gantt-tooltip-label">' + this.parent.localeObj.getConstant('endDate') +
18520
- '</td><td>:</td><td class = "e-gantt-tooltip-value">' +
18494
+ '</td><td style="padding: 2px;">:</td><td class = "e-gantt-tooltip-value">' +
18521
18495
  instance.formatDate(editRecord.endDate, { format: this.parent.getDateFormat() }) + '</td></tr>';
18522
18496
  }
18523
18497
  if (!isNullOrUndefined(editRecord.duration)) {
18524
18498
  duration = '<tr><td class = "e-gantt-tooltip-label">' + this.parent.localeObj.getConstant('duration') +
18525
- '</td><td>:</td><td class = "e-gantt-tooltip-value">' +
18499
+ '</td><td style="padding: 2px;">:</td><td class = "e-gantt-tooltip-value">' +
18526
18500
  this.parent.getDurationString(editRecord.duration, editRecord.durationUnit) + '</td></tr>';
18527
18501
  }
18528
18502
  switch (this.taskbarEdit.taskBarEditAction) {
18529
18503
  case 'ProgressResizing':
18530
18504
  var progress = '<tr><td class = "e-gantt-tooltip-label">' + this.parent.localeObj.getConstant('progress') +
18531
- '</td><td>:</td><td class = "e-gantt-tooltip-value">' + editRecord.progress + '</td></tr>';
18505
+ '</td><td style="padding: 2px;">:</td><td class = "e-gantt-tooltip-value">' + editRecord.progress + '</td></tr>';
18532
18506
  tooltipString = '<table class = "e-gantt-tooltiptable"><tbody>' +
18533
18507
  progress + '</tbody></table>';
18534
18508
  break;
@@ -18812,8 +18786,7 @@ var TaskbarEdit = /** @__PURE__ @class */ (function (_super) {
18812
18786
  || target.classList.contains(manualParentTaskBar)) {
18813
18787
  element = parentsUntil$1(target, manualParentMainContainer);
18814
18788
  }
18815
- else if (target.classList.contains(manualParentMilestoneTop) || target.classList.contains(manualParentMilestoneBottom)
18816
- || target.classList.contains(manualParentMilestone)) {
18789
+ else if (target.classList.contains(manualParentMilestone)) {
18817
18790
  element = parentsUntil$1(target, manualParentMilestone);
18818
18791
  }
18819
18792
  else {
@@ -18829,18 +18802,60 @@ var TaskbarEdit = /** @__PURE__ @class */ (function (_super) {
18829
18802
  if (this.parent.editSettings.allowTaskbarEditing && element) {
18830
18803
  this.showHideTaskBarEditingElements(element, this.taskBarEditElement);
18831
18804
  this.editElement = element;
18832
- this.taskBarEditElement = element;
18833
- var index = this.taskBarEditElement.getAttribute('data-segment-index');
18805
+ this.realTaskbarElement = this.editElement;
18806
+ var index = this.editElement.getAttribute('data-segment-index');
18834
18807
  if (!isNullOrUndefined(index)) {
18835
18808
  this.segmentIndex = Number(index);
18836
18809
  }
18837
18810
  else {
18838
18811
  this.segmentIndex = -1;
18839
18812
  }
18840
- this.taskBarEditRecord = this.parent.ganttChartModule.getRecordByTaskBar(this.taskBarEditElement);
18813
+ this.taskBarEditRecord = this.parent.ganttChartModule.getRecordByTaskBar(this.editElement);
18841
18814
  if (e.type === 'mousedown' || e.type === 'touchstart' || e.type === 'click') {
18842
- this.roundOffDuration = true;
18843
18815
  this.taskBarEditAction = this.getTaskBarAction(e);
18816
+ var index_1 = this.editElement.getAttribute('data-segment-index');
18817
+ var currentRecord = this.parent.ganttChartModule.getRecordByTaskBar(element);
18818
+ var ganttprop = currentRecord.ganttProperties;
18819
+ var parentleft = this.editElement.parentElement.offsetLeft;
18820
+ this.currentData = currentRecord;
18821
+ var resizeElement = createElement('div', { styles: 'height:100%;border-style:dashed;border-bottom:none;border-top:none;border-width:1px;position:absolute;z-index:10000' });
18822
+ addClass([resizeElement], 'e-taskbar-resize-div');
18823
+ resizeElement.style.setProperty("width", ganttprop.width + "px");
18824
+ var currentindex = this.editElement.getAttribute('data-segment-index');
18825
+ resizeElement.style.setProperty("left", ((!isNullOrUndefined(ganttprop.segments) ? parentleft + ganttprop.segments[Number(currentindex)].left + "px" : (ganttprop.left) + "px")));
18826
+ var resizeTable = this.parent.createElement('table');
18827
+ var resizetableBody = this.parent.createElement("tbody");
18828
+ resizetableBody.appendChild(resizeElement);
18829
+ resizeTable.appendChild(resizetableBody);
18830
+ var Check = this.parent.ganttChartModule.chartBodyContainer.querySelector('.e-clone-taskbar');
18831
+ var createTable = null;
18832
+ if ((this.taskBarEditAction === 'ChildDrag' || this.taskBarEditAction === 'LeftResizing') && !isNullOrUndefined(index_1) && !isNullOrUndefined(index_1) ? Number(index_1) === 0 : false) {
18833
+ var cloneTaskBar = this.editElement.parentElement.cloneNode(true);
18834
+ }
18835
+ else {
18836
+ var cloneTaskBar = this.editElement.cloneNode(true);
18837
+ }
18838
+ if (!Check) {
18839
+ addClass([cloneTaskBar], 'e-clone-taskbar');
18840
+ cloneTaskBar.style.setProperty("position", "absolute");
18841
+ cloneTaskBar.style.setProperty("top", 0 + "px");
18842
+ createTable = this.parent.createElement('table');
18843
+ var tableBody = this.parent.createElement("tbody");
18844
+ tableBody.appendChild(cloneTaskBar);
18845
+ createTable.appendChild(tableBody);
18846
+ }
18847
+ if ((this.taskBarEditAction === 'ChildDrag' || this.taskBarEditAction === 'LeftResizing') && !isNullOrUndefined(index_1) && !isNullOrUndefined(index_1) ? Number(index_1) === 0 : false) {
18848
+ var segmentedTasks = cloneTaskBar.getElementsByClassName('e-segmented-taskbar');
18849
+ this.cloneTaskbarElement = segmentedTasks[Number(index_1)];
18850
+ }
18851
+ else {
18852
+ this.cloneTaskbarElement = cloneTaskBar;
18853
+ }
18854
+ this.taskBarEditElement = this.cloneTaskbarElement;
18855
+ this.taskbarElement = createTable;
18856
+ this.taskbarResizer = resizeTable;
18857
+ this.currentIndex = index_1;
18858
+ this.roundOffDuration = true;
18844
18859
  if ((this.taskBarEditAction === 'ConnectorPointLeftDrag' || this.taskBarEditAction === 'ConnectorPointRightDrag') &&
18845
18860
  isNullOrUndefined(this.parent.taskFields.dependency)) {
18846
18861
  this.taskBarEditAction = null;
@@ -18871,7 +18886,7 @@ var TaskbarEdit = /** @__PURE__ @class */ (function (_super) {
18871
18886
  this.initPublicProp();
18872
18887
  }
18873
18888
  else {
18874
- this.showHideTaskBarEditingElements(element, this.taskBarEditElement);
18889
+ this.showHideTaskBarEditingElements(element, this.editElement);
18875
18890
  }
18876
18891
  }
18877
18892
  };
@@ -18906,9 +18921,10 @@ var TaskbarEdit = /** @__PURE__ @class */ (function (_super) {
18906
18921
  addClass([element.querySelector('.' + taskBarLeftResizer)], [leftResizeGripper]);
18907
18922
  addClass([element.querySelector('.' + taskBarRightResizer)], [rightResizeGripper]);
18908
18923
  if (isShowProgressResizer) {
18909
- var progresElement = !isNullOrUndefined(element.querySelector('.' + childProgressResizer)) ? true : false;
18910
- if (progresElement) {
18911
- addClass([element.querySelector('.' + childProgressResizer)], [progressResizeGripper]);
18924
+ var progressElement = element.querySelector('.' + childProgressResizer);
18925
+ if (!isNullOrUndefined(progressElement)) {
18926
+ addClass([progressElement], [progressResizeGripper]);
18927
+ progressElement.style.top = '3px';
18912
18928
  }
18913
18929
  }
18914
18930
  }
@@ -18989,9 +19005,6 @@ var TaskbarEdit = /** @__PURE__ @class */ (function (_super) {
18989
19005
  }
18990
19006
  else if (mouseDownElement.classList.contains(manualParentTaskBar) ||
18991
19007
  mouseDownElement.classList.contains(manualParentMainContainer) ||
18992
- mouseDownElement.classList.contains(manualParentMilestone) ||
18993
- mouseDownElement.classList.contains(manualParentMilestoneTop) ||
18994
- mouseDownElement.classList.contains(manualParentMilestoneBottom) ||
18995
19008
  mouseDownElement.classList.contains(manualParentMilestone)) {
18996
19009
  action = 'ManualParentDrag';
18997
19010
  }
@@ -19088,6 +19101,21 @@ var TaskbarEdit = /** @__PURE__ @class */ (function (_super) {
19088
19101
  this.dragMouseLeave = false;
19089
19102
  this.isMouseDragCheck();
19090
19103
  if (this.isMouseDragged && this.taskBarEditAction) {
19104
+ if (!isNullOrUndefined(this.taskbarElement) && !isNullOrUndefined(this.editElement) && (this.taskBarEditAction !== "ConnectorPointRightDrag" && this.taskBarEditAction !== "ConnectorPointLeftDrag") && !(this.parent.viewType === 'ResourceView' && this.currentData.hasChildRecords)) {
19105
+ var currentElement = this.editElement.parentElement;
19106
+ currentElement.style.setProperty("position", "absolute");
19107
+ if ((this.taskBarEditAction === 'ChildDrag' || this.taskBarEditAction === 'LeftResizing') && !isNullOrUndefined(this.currentIndex) && !isNullOrUndefined(this.currentIndex) ? Number(this.currentIndex) === 0 : false) {
19108
+ this.taskbarElement.childNodes[0].childNodes[0].style.setProperty("top", currentElement.parentElement.offsetTop + "px");
19109
+ currentElement.parentElement.appendChild(this.taskbarElement);
19110
+ }
19111
+ else {
19112
+ currentElement.appendChild(this.taskbarElement);
19113
+ }
19114
+ if (this.taskBarEditAction !== 'ProgressResizing') {
19115
+ var rootElement = this.parent.ganttChartModule.chartBodyContainer.querySelectorAll(".e-chart-rows-container");
19116
+ rootElement[0].appendChild(this.taskbarResizer);
19117
+ }
19118
+ }
19091
19119
  var args_1 = {
19092
19120
  cancel: false,
19093
19121
  requestType: 'taskbarediting',
@@ -19194,16 +19222,6 @@ var TaskbarEdit = /** @__PURE__ @class */ (function (_super) {
19194
19222
  merge(_this.taskBarEditRecord.ganttProperties, arg.previousData);
19195
19223
  }
19196
19224
  });
19197
- this.parent.flatData.map(function (data) {
19198
- if ((!isNullOrUndefined(_this.taskBarEditRecord.parentItem)) && data.ganttProperties.taskId === _this.taskBarEditRecord.parentItem.taskId) {
19199
- data.childRecords.map(function (s) {
19200
- if (isNullOrUndefined(s.ganttProperties.startDate) || isNullOrUndefined(s.ganttProperties.endDate) ||
19201
- isNullOrUndefined(s.ganttProperties.duration)) {
19202
- _this.parent.dataOperation.updateGanttData();
19203
- }
19204
- });
19205
- }
19206
- });
19207
19225
  }
19208
19226
  };
19209
19227
  /**
@@ -20009,6 +20027,15 @@ var TaskbarEdit = /** @__PURE__ @class */ (function (_super) {
20009
20027
  * @private
20010
20028
  */
20011
20029
  TaskbarEdit.prototype.setItemPosition = function () {
20030
+ if (!isNullOrUndefined(this.editElement)) {
20031
+ var currentElement = this.editElement.parentElement;
20032
+ if (this.parent.viewType == 'ResourceView' && this.parent.allowTaskbarDragAndDrop && this.taskBarEditAction === 'ChildDrag') {
20033
+ currentElement.style.position = null;
20034
+ }
20035
+ else {
20036
+ currentElement.style.setProperty("position", "absolute");
20037
+ }
20038
+ }
20012
20039
  var item = this.taskBarEditRecord.ganttProperties;
20013
20040
  var position = this.parent.enableRtl ? "right" : "left";
20014
20041
  var segment = !isNullOrUndefined(item.segments) ? item.segments[this.segmentIndex] : null;
@@ -20018,13 +20045,10 @@ var TaskbarEdit = /** @__PURE__ @class */ (function (_super) {
20018
20045
  if (!isNullOrUndefined(segment)) {
20019
20046
  rightResizer = this.parent.isAdaptive ? (segment.width - 2) : (segment.width - 10);
20020
20047
  }
20021
- var taskBarMainContainer$$1 = (!this.taskBarEditElement.classList.contains(taskBarMainContainer)) ? closest(this.taskBarEditElement, 'tr.' + chartRow)
20048
+ this.taskBarEditElement.style.setProperty("opacity", '.75');
20049
+ var taskBarMainContainer$$1 = (!this.taskBarEditElement.classList.contains(taskBarMainContainer)) ? ((this.taskBarEditAction === 'ChildDrag' || this.taskBarEditAction === 'LeftResizing') && this.segmentIndex === 0) ? this.taskBarEditElement.parentElement : closest(this.taskBarEditElement, 'tr.' + chartRow)
20022
20050
  .querySelector('.' + taskBarMainContainer) : this.taskBarEditElement;
20023
20051
  var segmentedTaskBarContainer = this.taskBarEditElement.classList.contains('e-segmented-taskbar');
20024
- var leftLabelContainer$$1 = closest(this.taskBarEditElement, 'tr.' + chartRow)
20025
- .querySelector('.' + leftLabelContainer);
20026
- var rightLabelContainer$$1 = closest(this.taskBarEditElement, 'tr.' + chartRow)
20027
- .querySelector('.' + rightLabelContainer);
20028
20052
  var traceChildProgressBar$$1 = this.taskBarEditElement.querySelector('.' + traceChildProgressBar);
20029
20053
  var traceChildTaskBar$$1 = this.taskBarEditElement.querySelector('.' + traceChildTaskBar);
20030
20054
  var childProgressResizer$$1 = this.taskBarEditElement.querySelector('.' + childProgressResizer);
@@ -20036,34 +20060,45 @@ var TaskbarEdit = /** @__PURE__ @class */ (function (_super) {
20036
20060
  var manualTaskbar = this.taskBarEditElement.querySelector('.' + manualParentTaskBar);
20037
20061
  var manualParentRight = this.taskBarEditElement.querySelector('.' + manualParentRightResizer);
20038
20062
  var manualParentLeft = this.taskBarEditElement.querySelector('.' + manualParentLeftResizer);
20063
+ var resizeLine = this.parent.ganttChartModule.chartBodyContainer.querySelector('.e-taskbar-resize-div');
20039
20064
  if (this.taskBarEditAction !== 'ConnectorPointRightDrag' &&
20040
20065
  this.taskBarEditAction !== 'ConnectorPointLeftDrag') {
20041
20066
  if (this.taskBarEditAction !== 'ParentResizing' && this.taskBarEditAction !== 'ManualParentDrag') {
20042
20067
  if (segmentedTaskBarContainer && !isNullOrUndefined(item.segments)
20043
20068
  && (this.taskBarEditAction === 'RightResizing' || this.segmentIndex !== 0)) {
20069
+ if (!isNullOrUndefined(resizeLine)) {
20070
+ resizeLine.style.width = (segment.width) + "px";
20071
+ }
20044
20072
  this.taskBarEditElement.style.width = (segment.width) + 'px';
20045
20073
  if (this.parent.enableRtl) {
20046
20074
  this.taskBarEditElement.style.right = (segment.left) + 'px';
20047
20075
  }
20048
20076
  else {
20049
20077
  this.taskBarEditElement.style.left = (segment.left) + 'px';
20078
+ if (!isNullOrUndefined(resizeLine)) {
20079
+ resizeLine.style.left = (segment.left + this.editElement.parentElement.offsetLeft) + "px";
20080
+ }
20050
20081
  }
20051
20082
  }
20052
- taskBarMainContainer$$1.style.width = (width) + 'px';
20053
- leftLabelContainer$$1.style.width = (item.left) + 'px';
20054
20083
  taskBarMainContainer$$1.style.setProperty(position, (item.left) + 'px');
20084
+ taskBarMainContainer$$1.style.width = (width) + 'px';
20055
20085
  if (this.parent.viewType === 'ResourceView' && this.parent.allowTaskbarDragAndDrop && this.parent.rowDragAndDropModule &&
20056
20086
  (this.taskBarEditAction === 'ChildDrag' || this.taskBarEditAction === 'MilestoneDrag')) {
20057
20087
  taskBarMainContainer$$1.style.setProperty('top', (this.topValue) + 'px');
20058
20088
  taskBarMainContainer$$1.style.zIndex = '4';
20059
20089
  }
20060
20090
  if (this.taskBarEditAction === 'LeftResizing' && this.segmentIndex === 0) {
20091
+ this.taskBarEditElement.style.setProperty("opacity", '.75');
20061
20092
  var parent_1 = this.taskBarEditElement.parentElement;
20062
20093
  var segmentedTasks = parent_1.getElementsByClassName('e-segmented-taskbar');
20063
20094
  for (var i = 0; i < item.segments.length; i++) {
20064
20095
  var segment_4 = item.segments[i];
20065
20096
  var segmentElement = segmentedTasks[i];
20066
20097
  segmentElement.style.width = (segment_4.width) + 'px';
20098
+ if (i === 0) {
20099
+ resizeLine.style.width = (segment_4.width) + "px";
20100
+ resizeLine.style.left = (segment_4.left + item.left) + "px";
20101
+ }
20067
20102
  if (this.parent.enableRtl) {
20068
20103
  segmentElement.style.right = (segment_4.left) + 'px';
20069
20104
  }
@@ -20072,8 +20107,10 @@ var TaskbarEdit = /** @__PURE__ @class */ (function (_super) {
20072
20107
  }
20073
20108
  }
20074
20109
  }
20075
- if (!isNullOrUndefined(rightLabelContainer$$1)) {
20076
- rightLabelContainer$$1.style.setProperty(position, (item.left + width) + 'px');
20110
+ if (this.taskBarEditAction === 'ChildDrag' && this.segmentIndex === 0) {
20111
+ resizeLine.style.width = (width) + "px";
20112
+ resizeLine.style.left = (item.left) + "px";
20113
+ taskBarMainContainer$$1.style.setProperty("opacity", '.75');
20077
20114
  }
20078
20115
  }
20079
20116
  if (traceConnectorPointRight) {
@@ -20086,10 +20123,8 @@ var TaskbarEdit = /** @__PURE__ @class */ (function (_super) {
20086
20123
  }
20087
20124
  if (this.taskBarEditAction === 'MilestoneDrag' || item.isMilestone) {
20088
20125
  taskBarMainContainer$$1.style.setProperty(position, (item.left - (width / 2)) + 'px');
20089
- leftLabelContainer$$1.style.width = (item.left - (width / 2)) + 'px';
20090
- if (!isNullOrUndefined(rightLabelContainer$$1)) {
20091
- rightLabelContainer$$1.style.setProperty(position, (item.left + (width / 2)) + 'px');
20092
- }
20126
+ resizeLine.style.left = (item.left - (width / 2)) + 'px';
20127
+ resizeLine.style.width = (width) + "px";
20093
20128
  }
20094
20129
  else if (this.taskBarEditAction === 'ProgressResizing') {
20095
20130
  if (this.segmentIndex === -1) {
@@ -20112,6 +20147,7 @@ var TaskbarEdit = /** @__PURE__ @class */ (function (_super) {
20112
20147
  }
20113
20148
  }
20114
20149
  else if (this.taskBarEditAction === 'RightResizing' && !isNullOrUndefined(traceChildTaskBar$$1)) {
20150
+ resizeLine.style.width = (width) + 'px';
20115
20151
  traceChildTaskBar$$1.style.width = (width) + 'px';
20116
20152
  if (!isNullOrUndefined(traceChildProgressBar$$1)) {
20117
20153
  traceChildProgressBar$$1.style.width = (item.progressWidth) + 'px';
@@ -20122,23 +20158,36 @@ var TaskbarEdit = /** @__PURE__ @class */ (function (_super) {
20122
20158
  }
20123
20159
  }
20124
20160
  else if (this.taskBarEditAction === 'ParentDrag') {
20161
+ resizeLine.style.left = (item.left) + 'px';
20162
+ resizeLine.style.width = (width) + "px";
20163
+ resizeLine.style.width = (item.width) + 'px';
20125
20164
  if (!isNullOrUndefined(traceParentTaskBar$$1)) {
20126
20165
  traceParentTaskBar$$1.style.width = (width) + 'px';
20166
+ resizeLine.style.width = (item.width) + 'px';
20127
20167
  }
20128
20168
  if (!isNullOrUndefined(traceChildProgressBar$$1)) {
20129
20169
  traceParentProgressBar$$1.style.width = (item.progressWidth) + 'px';
20130
20170
  }
20131
20171
  }
20132
20172
  else if (this.taskBarEditAction === 'ParentResizing') {
20173
+ resizeLine.style.width = (item.width) + 'px';
20174
+ resizeLine.style.left = item.left + 'px';
20133
20175
  manualParentTaskbar.style.width = manualTaskbar.style.width = (item.width) + 'px';
20134
20176
  manualParentRight.style.setProperty(position, item.width - manualParentLeft.offsetLeft + 'px');
20135
20177
  }
20136
20178
  else if (this.taskBarEditAction === 'ManualParentDrag') {
20179
+ resizeLine.style.width = (item.width) + 'px';
20180
+ resizeLine.style.left = item.left + 'px';
20137
20181
  manualParentTaskbar.style.setProperty(position, item.left - item.autoLeft + 'px');
20138
20182
  }
20139
20183
  else {
20140
20184
  if (!isNullOrUndefined(traceChildTaskBar$$1) && !segmentedTaskBarContainer) {
20141
- traceChildTaskBar$$1.style.width = (width) + 'px';
20185
+ traceChildTaskBar$$1.style.width = (item.width) + 'px';
20186
+ traceChildTaskBar$$1.style.left = (item.left) + 'px';
20187
+ this.taskBarEditElement.style.width = (item.width) + 'px';
20188
+ this.taskBarEditElement.style.left = (item.left) + "px";
20189
+ resizeLine.style.left = (item.left) + 'px';
20190
+ resizeLine.style.width = (item.width) + "px";
20142
20191
  }
20143
20192
  if (!isNullOrUndefined(traceChildProgressBar$$1)) {
20144
20193
  taskBarRightResizer$$1.style.setProperty(position, rightResizer + 'px');
@@ -20534,21 +20583,21 @@ var TaskbarEdit = /** @__PURE__ @class */ (function (_super) {
20534
20583
  if ((this.parent.virtualScrollModule && this.parent.enableVirtualization &&
20535
20584
  !this.elementOffsetLeft) || !this.parent.enableVirtualization) {
20536
20585
  if (!this.parent.allowParentDependency) {
20537
- this.elementOffsetLeft = this.taskBarEditElement.offsetLeft;
20538
- this.elementOffsetTop = this.taskBarEditElement.offsetTop + scrollTop;
20586
+ this.elementOffsetLeft = this.realTaskbarElement.offsetLeft;
20587
+ this.elementOffsetTop = this.realTaskbarElement.parentElement.offsetTop + this.realTaskbarElement.offsetHeight / 3 + scrollTop;
20539
20588
  }
20540
20589
  else {
20541
20590
  if (this.taskBarEditElement.children[0].classList.contains('e-manualparent-main-container')) {
20542
- this.elementOffsetLeft = this.taskBarEditElement.children[0]['offsetLeft'] + this.taskBarEditElement.offsetLeft;
20543
- this.elementOffsetTop = ((this.taskBarEditElement.offsetTop - 5) + this.taskBarEditElement.children[0]['offsetTop']) + scrollTop;
20591
+ this.elementOffsetLeft = this.realTaskbarElement.children[0]['offsetLeft'] + this.realTaskbarElement.offsetLeft;
20592
+ this.elementOffsetTop = ((this.realTaskbarElement.parentElement.offsetTop + this.realTaskbarElement.offsetHeight / 3 - 5) + this.taskBarEditElement.children[0]['offsetTop']) + scrollTop;
20544
20593
  }
20545
20594
  else {
20546
- this.elementOffsetLeft = this.taskBarEditElement.offsetLeft;
20547
- this.elementOffsetTop = this.taskBarEditElement.offsetTop + scrollTop;
20595
+ this.elementOffsetLeft = this.realTaskbarElement.offsetLeft;
20596
+ this.elementOffsetTop = this.realTaskbarElement.parentElement.offsetTop + this.realTaskbarElement.offsetHeight / 3 + scrollTop;
20548
20597
  }
20549
20598
  }
20550
- this.elementOffsetWidth = this.taskBarEditElement.offsetWidth;
20551
- this.elementOffsetHeight = this.taskBarEditElement.offsetHeight;
20599
+ this.elementOffsetWidth = this.realTaskbarElement.offsetWidth;
20600
+ this.elementOffsetHeight = this.realTaskbarElement.offsetHeight;
20552
20601
  }
20553
20602
  this.showHideTaskBarEditingElements(element, this.highlightedSecondElement, true);
20554
20603
  }
@@ -23103,10 +23152,11 @@ var ConnectorLineEdit = /** @__PURE__ @class */ (function () {
23103
23152
  * @private
23104
23153
  */
23105
23154
  ConnectorLineEdit.prototype.getConnectorLineHoverElement = function (target) {
23106
- var isOnLine = parentsUntil$1(target, connectorLine);
23107
- var isOnRightArrow = parentsUntil$1(target, connectorLineRightArrow);
23108
- var isOnLeftArrow = parentsUntil$1(target, connectorLineLeftArrow);
23109
- if (isOnLine || isOnRightArrow || isOnLeftArrow) {
23155
+ var isOnLine = parentsUntil$1(target, connectorLineSVG);
23156
+ var isArrow = parentsUntil$1(target, connectorLineArrow);
23157
+ var isCriticalLine = parentsUntil$1(target, criticalConnectorLineSVG);
23158
+ var isCriticalArrow = parentsUntil$1(target, criticalConnectorArrowSVG);
23159
+ if (isOnLine || isArrow || isCriticalLine || isCriticalArrow) {
23110
23160
  return parentsUntil$1(target, connectorLineContainer);
23111
23161
  }
23112
23162
  else {
@@ -23140,16 +23190,13 @@ var ConnectorLineEdit = /** @__PURE__ @class */ (function () {
23140
23190
  */
23141
23191
  ConnectorLineEdit.prototype.addHighlight = function (element) {
23142
23192
  this.connectorLineElement = element;
23143
- addClass([element], [connectorLineHoverZIndex]);
23144
- if (element.querySelectorAll('.' + connectorLine)[0].classList.contains('e-criticalconnector-line')) {
23145
- addClass(element.querySelectorAll('.' + connectorLine), [criticalConnectorLineHover]);
23146
- addClass(element.querySelectorAll('.' + connectorLineRightArrow), [criticalConnectorLineRightArrowHover]);
23147
- addClass(element.querySelectorAll('.' + connectorLineLeftArrow), [criticalConnectorLineLeftArrowHover]);
23193
+ var pathElement = element.querySelector('.' + connectorLineSVG);
23194
+ var criticalElement = element.querySelector('.' + criticalConnectorLineSVG);
23195
+ if (pathElement) {
23196
+ pathElement.setAttribute('stroke-width', '2');
23148
23197
  }
23149
23198
  else {
23150
- addClass(element.querySelectorAll('.' + connectorLine), [connectorLineHover]);
23151
- addClass(element.querySelectorAll('.' + connectorLineRightArrow), [connectorLineRightArrowHover]);
23152
- addClass(element.querySelectorAll('.' + connectorLineLeftArrow), [connectorLineLeftArrowHover]);
23199
+ criticalElement.setAttribute('stroke-width', '2');
23153
23200
  }
23154
23201
  };
23155
23202
  /**
@@ -23159,17 +23206,14 @@ var ConnectorLineEdit = /** @__PURE__ @class */ (function () {
23159
23206
  * @private
23160
23207
  */
23161
23208
  ConnectorLineEdit.prototype.removeHighlight = function () {
23162
- if (!isNullOrUndefined(this.connectorLineElement)) {
23163
- removeClass([this.connectorLineElement], [connectorLineHoverZIndex]);
23164
- if (this.connectorLineElement.querySelectorAll('.' + connectorLine)[0].classList.contains(criticalConnectorLineHover)) {
23165
- removeClass(this.connectorLineElement.querySelectorAll('.' + connectorLine), [criticalConnectorLineHover]);
23166
- removeClass(this.connectorLineElement.querySelectorAll('.' + connectorLineRightArrow), [criticalConnectorLineRightArrowHover]);
23167
- removeClass(this.connectorLineElement.querySelectorAll('.' + connectorLineLeftArrow), [criticalConnectorLineLeftArrowHover]);
23209
+ if (this.connectorLineElement) {
23210
+ var pathElement = this.connectorLineElement.querySelector('.' + connectorLineSVG);
23211
+ var criticalElement = this.connectorLineElement.querySelector('.' + criticalConnectorLineSVG);
23212
+ if (pathElement) {
23213
+ pathElement.setAttribute('stroke-width', '1');
23168
23214
  }
23169
23215
  else {
23170
- removeClass(this.connectorLineElement.querySelectorAll('.' + connectorLine), [connectorLineHover]);
23171
- removeClass(this.connectorLineElement.querySelectorAll('.' + connectorLineRightArrow), [connectorLineRightArrowHover]);
23172
- removeClass(this.connectorLineElement.querySelectorAll('.' + connectorLineLeftArrow), [connectorLineLeftArrowHover]);
23216
+ criticalElement.setAttribute('stroke-width', '1');
23173
23217
  }
23174
23218
  this.connectorLineElement = null;
23175
23219
  }
@@ -23236,8 +23280,8 @@ var ConnectorLineEdit = /** @__PURE__ @class */ (function () {
23236
23280
  this.parent.connectorLineModule.expandedRecords = this.parent.virtualScrollModule && this.parent.enableVirtualization ?
23237
23281
  this.parent.updatedRecords : this.parent.getExpandedRecords(this.parent.updatedRecords);
23238
23282
  var editedConnectorLineString = this.getEditedConnectorLineString(editedRecord);
23239
- this.parent.connectorLineModule.dependencyViewContainer.innerHTML =
23240
- this.parent.connectorLineModule.dependencyViewContainer.innerHTML + editedConnectorLineString;
23283
+ this.parent.connectorLineModule.svgObject.innerHTML =
23284
+ this.parent.connectorLineModule.svgObject.innerHTML + editedConnectorLineString;
23241
23285
  };
23242
23286
  ConnectorLineEdit.prototype.idFromPredecessor = function (pre) {
23243
23287
  var preArray = pre.split(',');
@@ -23883,9 +23927,9 @@ var ConnectorLineEdit = /** @__PURE__ @class */ (function () {
23883
23927
  ConnectorLineEdit.prototype.validateTypes = function (ganttRecord, data) {
23884
23928
  var predecessor = this.parent.predecessorModule.getValidPredecessor(ganttRecord);
23885
23929
  var parentGanttRecord;
23886
- var ganttTaskData;
23887
23930
  this.validationPredecessor = [];
23888
23931
  var violatedParent;
23932
+ var ganttTaskData;
23889
23933
  var violateType;
23890
23934
  var startDate = this.parent.predecessorModule.getPredecessorDate(ganttRecord, predecessor);
23891
23935
  if (data) {
@@ -24961,6 +25005,10 @@ var Edit$2 = /** @__PURE__ @class */ (function () {
24961
25005
  if (data.hasChildRecords && ganttProp.isAutoSchedule) {
24962
25006
  this.parent.setRecordValue('startDate', ganttProp.autoStartDate, ganttProp, true);
24963
25007
  this.parent.setRecordValue('endDate', ganttProp.autoEndDate, ganttProp, true);
25008
+ this.parent.setRecordValue('StartDate', ganttProp.autoStartDate, data, true);
25009
+ this.parent.setRecordValue('EndDate', ganttProp.autoEndDate, data, true);
25010
+ this.parent.setRecordValue('taskData.StartDate', ganttProp.autoStartDate, data, true);
25011
+ this.parent.setRecordValue('taskData.EndDate', ganttProp.autoEndDate, data, true);
24964
25012
  this.parent.setRecordValue('width', this.parent.dataOperation.calculateWidth(data, true), ganttProp, true);
24965
25013
  this.parent.setRecordValue('left', this.parent.dataOperation.calculateLeft(ganttProp, true), ganttProp, true);
24966
25014
  this.parent.setRecordValue('progressWidth', this.parent.dataOperation.getProgressWidth(ganttProp.width, ganttProp.progress), ganttProp, true);
@@ -24969,8 +25017,8 @@ var Edit$2 = /** @__PURE__ @class */ (function () {
24969
25017
  else if (data.hasChildRecords && !ganttProp.isAutoSchedule) {
24970
25018
  this.parent.dataOperation.updateWidthLeft(data);
24971
25019
  this.parent.dataOperation.calculateDuration(data);
24972
- this.parent.setRecordValue('autoStartDate', ganttProp.startDate, ganttProp, true);
24973
- this.parent.setRecordValue('autoEndDate', ganttProp.endDate, ganttProp, true);
25020
+ this.parent.setRecordValue('autoStartDate', ganttProp.autoStartDate, ganttProp, true);
25021
+ this.parent.setRecordValue('autoEndDate', ganttProp.autoEndDate, ganttProp, true);
24974
25022
  this.parent.setRecordValue('autoDuration', this.parent.dataOperation.calculateAutoDuration(data), ganttProp, true);
24975
25023
  this.parent.dataOperation.updateAutoWidthLeft(data);
24976
25024
  }
@@ -25195,7 +25243,6 @@ var Edit$2 = /** @__PURE__ @class */ (function () {
25195
25243
  }
25196
25244
  if (childRecords.length) {
25197
25245
  this.parent.dataOperation.updateParentItems(ganttRecord, true);
25198
- this.parent.dataOperation.updateGanttData();
25199
25246
  }
25200
25247
  };
25201
25248
  /**
@@ -25408,8 +25455,8 @@ var Edit$2 = /** @__PURE__ @class */ (function () {
25408
25455
  }
25409
25456
  }
25410
25457
  if (this.parent.isConnectorLineUpdate && !isNullOrUndefined(this.parent.connectorLineEditModule)) {
25411
- this.parent.updatedConnectorLineCollection = [];
25412
- this.parent.connectorLineIds = [];
25458
+ // this.parent.updatedConnectorLineCollection = [];
25459
+ // this.parent.connectorLineIds = [];
25413
25460
  this.parent.connectorLineEditModule.refreshEditedRecordConnectorLine(this.parent.editedRecords);
25414
25461
  this.updateScheduleDatesOnEditing(args);
25415
25462
  }
@@ -26788,6 +26835,7 @@ var Edit$2 = /** @__PURE__ @class */ (function () {
26788
26835
  this.parent.treeGrid.parentData = [];
26789
26836
  this.parent.addDeleteRecord = true;
26790
26837
  this.parent.selectedRowIndex = 0;
26838
+ this.parent.treeGrid['isAddedFromGantt'] = true;
26791
26839
  this.parent.treeGrid.refresh();
26792
26840
  if (this.parent.enableImmutableMode) {
26793
26841
  this.parent.modifiedRecords = args.modifiedRecords;
@@ -26937,7 +26985,6 @@ var Edit$2 = /** @__PURE__ @class */ (function () {
26937
26985
  var args = {};
26938
26986
  args = this.constructTaskAddedEventArgs(cAddedRecord_1, this.parent.editedRecords, 'beforeAdd');
26939
26987
  this.parent.trigger('actionBegin', args, function (args) {
26940
- _this.parent.previousRecords = {};
26941
26988
  if (!isNullOrUndefined(_this.parent.loadingIndicator) && _this.parent.loadingIndicator.indicatorType === "Shimmer") {
26942
26989
  _this.parent.showMaskRow();
26943
26990
  }
@@ -29503,7 +29550,7 @@ var NonWorkingDay = /** @__PURE__ @class */ (function () {
29503
29550
  this.nonworkingContainer = createElement('div', {
29504
29551
  className: nonworkingContainer
29505
29552
  });
29506
- this.parent.ganttChartModule.chartBodyContent.appendChild(this.nonworkingContainer);
29553
+ this.parent.ganttChartModule.chartBodyContent.insertBefore(this.nonworkingContainer, this.parent.ganttChartModule.chartBodyContent.lastChild);
29507
29554
  }
29508
29555
  };
29509
29556
  /**
@@ -29652,7 +29699,7 @@ var NonWorkingDay = /** @__PURE__ @class */ (function () {
29652
29699
  };
29653
29700
  NonWorkingDay.prototype.updateHolidayLabelHeight = function () {
29654
29701
  var height = this.parent.getContentHeight();
29655
- var gantttable = this.parent.element;
29702
+ var gantttable = document.getElementById("ganttContainer");
29656
29703
  // eslint-disable-next-line
29657
29704
  var toolbarHeight = 0;
29658
29705
  if (!isNullOrUndefined(this.parent.toolbarModule) && !isNullOrUndefined(this.parent.toolbarModule.element)) {
@@ -29842,9 +29889,12 @@ var DayMarkers = /** @__PURE__ @class */ (function () {
29842
29889
  }
29843
29890
  };
29844
29891
  DayMarkers.prototype.refreshMarkers = function () {
29845
- this.eventMarkerRender.renderEventMarkers();
29846
29892
  this.nonworkingDayRender.renderWeekends();
29847
29893
  this.nonworkingDayRender.renderHolidays();
29894
+ if (this.parent.gridLines === 'Vertical' || this.parent.gridLines === 'Both') {
29895
+ this.parent['renderChartVerticalLines']();
29896
+ }
29897
+ this.eventMarkerRender.renderEventMarkers();
29848
29898
  };
29849
29899
  DayMarkers.prototype.updateHeight = function () {
29850
29900
  this.nonworkingDayRender.updateContainerHeight();
@@ -30611,11 +30661,8 @@ var CriticalPath = /** @__PURE__ @class */ (function () {
30611
30661
  }
30612
30662
  if (element && (this_2.parent.viewType === 'ProjectView' || (this_2.parent.viewType === 'ResourceView' &&
30613
30663
  !criticalData.hasChildRecords))) {
30614
- if (element.getElementsByClassName('e-milestone-top')[0]) {
30615
- addClass(element.querySelectorAll('.e-milestone-top'), criticalMilestoneTop);
30616
- }
30617
- if (element.getElementsByClassName('e-milestone-bottom')[0]) {
30618
- addClass(element.querySelectorAll('.e-milestone-bottom'), criticalMilestoneBottom);
30664
+ if (element.getElementsByClassName('e-gantt-milestone')[0]) {
30665
+ addClass(element.querySelectorAll('.e-gantt-milestone'), criticalMilestone);
30619
30666
  }
30620
30667
  if (element.getElementsByClassName('e-gantt-child-taskbar-inner-div').length > 0) {
30621
30668
  addClass(element.querySelectorAll('.e-gantt-child-taskbar-inner-div'), criticalChildTaskBarInnerDiv);
@@ -30655,11 +30702,9 @@ var CriticalPath = /** @__PURE__ @class */ (function () {
30655
30702
  currentdata['taskid'] + 'child' + checkint);
30656
30703
  if (lineElement.length > 0) {
30657
30704
  addClass(this.parent.element.querySelectorAll('#ConnectorLineparent' + currentdata['taskid'] + 'child' +
30658
- checkint)[0].querySelectorAll('.e-line'), criticalConnectorLine);
30659
- addClass(this.parent.element.querySelectorAll('#ConnectorLineparent' + currentdata['taskid'] + 'child' +
30660
- checkint)[0].querySelectorAll('.e-connector-line-right-arrow'), criticalConnectorLineRightArrow);
30705
+ checkint)[0].querySelectorAll('.e-connector-line'), criticalConnectorLineSVG);
30661
30706
  addClass(this.parent.element.querySelectorAll('#ConnectorLineparent' + currentdata['taskid'] + 'child' +
30662
- checkint)[0].querySelectorAll('.e-connector-line-left-arrow'), criticalConnectorLineLeftArrow);
30707
+ checkint)[0].querySelectorAll('.e-connector-line-arrow'), criticalConnectorArrowSVG);
30663
30708
  }
30664
30709
  }
30665
30710
  }
@@ -30962,7 +31007,7 @@ var ContextMenu$2 = /** @__PURE__ @class */ (function () {
30962
31007
  splitTaskDuration = Math.ceil(currentTaskDifference / this.parent.timelineSettings.timelineUnitSize);
30963
31008
  splitTaskDuration -= 1;
30964
31009
  }
30965
- var contextMenuClickDate = this.parent.dataOperation.getEndDate(startDate, splitTaskDuration, (this.parent.timelineSettings.bottomTier.unit !== "None") ? this.parent.timelineSettings.bottomTier.unit.toLocaleLowerCase() : this.parent.timelineSettings.topTier.unit.toLocaleLowerCase(), this.rowData, false);
31010
+ var contextMenuClickDate = this.parent.dataOperation.getEndDate(startDate, splitTaskDuration, (this.parent.timelineModule.customTimelineSettings.bottomTier.unit !== "None") ? this.parent.timelineModule.customTimelineSettings.bottomTier.unit.toLocaleLowerCase() : this.parent.timelineModule.customTimelineSettings.topTier.unit.toLocaleLowerCase(), this.rowData, false);
30966
31011
  return contextMenuClickDate;
30967
31012
  };
30968
31013
  ContextMenu$$1.prototype.contextMenuBeforeOpen = function (args) {
@@ -30972,7 +31017,7 @@ var ContextMenu$2 = /** @__PURE__ @class */ (function () {
30972
31017
  this.parent.ganttChartModule.targetElement;
30973
31018
  // Closed edited cell before opening context menu
30974
31019
  // eslint-disable-next-line
30975
- if (!isNullOrUndefined(this.parent.editModule) && this.parent.editModule.cellEditModule && this.parent.editModule.cellEditModule.isCellEdit && target.parentElement.classList.contains('e-row') || target.parentElement.classList.contains('e-treecolumn-container')) {
31020
+ if (!isNullOrUndefined(this.parent.editModule) && this.parent.editModule.cellEditModule && this.parent.editModule.cellEditModule.isCellEdit && target.parentElement.classList.contains('e-row')) {
30976
31021
  this.parent.treeGrid.closeEdit();
30977
31022
  }
30978
31023
  if (!isNullOrUndefined(args.element) && args.element.id === this.parent.element.id + '_contextmenu') {
@@ -34914,6 +34959,7 @@ var ExportHelper = /** @__PURE__ @class */ (function () {
34914
34959
  predecessor.type = data.type;
34915
34960
  predecessor.milestoneParent = data.milestoneParent;
34916
34961
  predecessor.milestoneChild = data.milestoneChild;
34962
+ predecessor.parentEndPoint = data.parentEndPoint;
34917
34963
  predecessor.lineWidth = _this.parent.connectorLineWidth > 5 ? pixelToPoint(5) : pixelToPoint(_this.parent.connectorLineWidth);
34918
34964
  if (data.isCritical) {
34919
34965
  predecessor.connectorLineColor = _this.ganttStyle.criticalConnectorLineColor;
@@ -35927,22 +35973,11 @@ var PdfGanttPredecessor = /** @__PURE__ @class */ (function () {
35927
35973
  PdfGanttPredecessor.prototype.add = function () {
35928
35974
  return new PdfGanttPredecessor(this.parent);
35929
35975
  };
35930
- PdfGanttPredecessor.prototype.findindex = function (num, pdfExportProperties) {
35976
+ PdfGanttPredecessor.prototype.findindex = function (num) {
35931
35977
  var dataindex;
35932
- if (pdfExportProperties.exportType === 'CurrentViewData') {
35933
- this.parent.currentViewData.map(function (data, index) {
35934
- if (data.index == num) {
35935
- dataindex = index;
35936
- }
35937
- });
35938
- }
35939
- else {
35940
- this.parent.flatData.map(function (data, index) {
35941
- if (data.index == num) {
35942
- dataindex = index;
35943
- }
35944
- });
35945
- }
35978
+ this.parent.currentViewData.map(function (data, index) { if (data.index == num) {
35979
+ dataindex = index;
35980
+ } });
35946
35981
  return dataindex;
35947
35982
  };
35948
35983
  /**
@@ -35952,11 +35987,11 @@ var PdfGanttPredecessor = /** @__PURE__ @class */ (function () {
35952
35987
  * @returns {void}
35953
35988
  * @private
35954
35989
  */
35955
- PdfGanttPredecessor.prototype.drawPredecessor = function (pdfGantt, pdfExportProperties) {
35990
+ PdfGanttPredecessor.prototype.drawPredecessor = function (pdfGantt) {
35956
35991
  this.pdfGantt = pdfGantt;
35957
35992
  var pages = pdfGantt.result.page.section.getPages();
35958
- var parentTask = pdfGantt.taskbarCollection[this.findindex(this.parentIndex, pdfExportProperties)];
35959
- var childTask = pdfGantt.taskbarCollection[this.findindex(this.childIndex, pdfExportProperties)];
35993
+ var parentTask = pdfGantt.taskbarCollection[this.findindex(this.parentIndex)];
35994
+ var childTask = pdfGantt.taskbarCollection[this.findindex(this.childIndex)];
35960
35995
  var startPage = new PdfPage();
35961
35996
  var endPage = new PdfPage();
35962
35997
  var predecessorType = '';
@@ -35966,7 +36001,7 @@ var PdfGanttPredecessor = /** @__PURE__ @class */ (function () {
35966
36001
  var childY = 0;
35967
36002
  switch (this.type) {
35968
36003
  case 'FS':
35969
- if ((!isNullOrUndefined(childTask) && childTask.startPage > -1) && (!isNullOrUndefined(parentTask) && parentTask.endPage > -1)) {
36004
+ if (childTask.startPage > -1 && parentTask.endPage > -1) {
35970
36005
  startPage = pages[parentTask.endPage];
35971
36006
  endPage = pages[childTask.startPage];
35972
36007
  parentPageData = pdfGantt.pdfPageDetail[parentTask.endPage - pdfGantt.chartPageIndex];
@@ -35993,7 +36028,7 @@ var PdfGanttPredecessor = /** @__PURE__ @class */ (function () {
35993
36028
  }
35994
36029
  break;
35995
36030
  case 'SF':
35996
- if ((!isNullOrUndefined(childTask) && childTask.endPage > -1) && (!isNullOrUndefined(parentTask) && parentTask.startPage > -1)) {
36031
+ if (childTask.endPage > -1 && parentTask.startPage > -1) {
35997
36032
  startPage = pages[parentTask.startPage];
35998
36033
  endPage = pages[childTask.endPage];
35999
36034
  parentPageData = pdfGantt.pdfPageDetail[parentTask.endPage - pdfGantt.chartPageIndex];
@@ -36020,7 +36055,7 @@ var PdfGanttPredecessor = /** @__PURE__ @class */ (function () {
36020
36055
  }
36021
36056
  break;
36022
36057
  case 'FF':
36023
- if ((!isNullOrUndefined(childTask) && childTask.endPage > -1) && (!isNullOrUndefined(parentTask) && parentTask.endPage > -1)) {
36058
+ if (childTask.endPage > -1 && parentTask.endPage > -1) {
36024
36059
  startPage = pages[parentTask.endPage];
36025
36060
  endPage = pages[childTask.endPage];
36026
36061
  parentPageData = pdfGantt.pdfPageDetail[parentTask.endPage - pdfGantt.chartPageIndex];
@@ -36047,7 +36082,7 @@ var PdfGanttPredecessor = /** @__PURE__ @class */ (function () {
36047
36082
  }
36048
36083
  break;
36049
36084
  case 'SS':
36050
- if ((!isNullOrUndefined(childTask) && childTask.startPage > -1) && (!isNullOrUndefined(parentTask) && parentTask.startPage > -1)) {
36085
+ if (childTask.startPage > -1 && parentTask.startPage > -1) {
36051
36086
  startPage = pages[parentTask.startPage];
36052
36087
  endPage = pages[childTask.startPage];
36053
36088
  parentPageData = pdfGantt.pdfPageDetail[parentTask.startPage - pdfGantt.chartPageIndex];
@@ -36405,12 +36440,12 @@ var PdfGantt = /** @__PURE__ @class */ (function (_super) {
36405
36440
  enumerable: true,
36406
36441
  configurable: true
36407
36442
  });
36408
- PdfGantt.prototype.drawChart = function (result, pdfExportProperties) {
36443
+ PdfGantt.prototype.drawChart = function (result) {
36409
36444
  this.result = result;
36410
36445
  this.totalPages = this.result.page.section.count;
36411
36446
  this.perColumnPages = this.totalPages / this.layouter.columnRanges.length;
36412
36447
  this.calculateRange();
36413
- this.drawGantttChart(pdfExportProperties);
36448
+ this.drawGantttChart();
36414
36449
  this.drawPageBorder();
36415
36450
  };
36416
36451
  //Calcualte the header range for each pdf page based on schedule start and end date.
@@ -36559,7 +36594,7 @@ var PdfGantt = /** @__PURE__ @class */ (function (_super) {
36559
36594
  }
36560
36595
  };
36561
36596
  //Draw the gantt chart side
36562
- PdfGantt.prototype.drawGantttChart = function (pdfExportProperties) {
36597
+ PdfGantt.prototype.drawGantttChart = function () {
36563
36598
  var _this = this;
36564
36599
  var taskbarPoint = this.startPoint;
36565
36600
  var pagePoint = new PointF();
@@ -36634,7 +36669,7 @@ var PdfGantt = /** @__PURE__ @class */ (function (_super) {
36634
36669
  // Draw predecessor line.
36635
36670
  for (var i = 0; i < this.predecessorCollection.length; i++) {
36636
36671
  var predecessor = this.predecessorCollection[i];
36637
- predecessor.drawPredecessor(this, pdfExportProperties);
36672
+ predecessor.drawPredecessor(this);
36638
36673
  }
36639
36674
  };
36640
36675
  return PdfGantt;
@@ -36751,7 +36786,7 @@ var PdfExport = /** @__PURE__ @class */ (function () {
36751
36786
  var format = new PdfTreeGridLayoutFormat();
36752
36787
  format.break = PdfLayoutBreakType.FitElement;
36753
36788
  var layouter = _this.gantt.drawGrid(pdfPage, 0, 0, format);
36754
- _this.gantt.drawChart(layouter, pdfExportProperties);
36789
+ _this.gantt.drawChart(layouter);
36755
36790
  if (!isMultipleExport) {
36756
36791
  if (!_this.isBlob) {
36757
36792
  // save the PDF