@syncfusion/ej2-gantt 21.2.10 → 22.1.34

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (99) hide show
  1. package/.eslintrc.json +1 -0
  2. package/CHANGELOG.md +12 -0
  3. package/dist/ej2-gantt.min.js +2 -2
  4. package/dist/ej2-gantt.umd.min.js +2 -2
  5. package/dist/ej2-gantt.umd.min.js.map +1 -1
  6. package/dist/es6/ej2-gantt.es2015.js +734 -711
  7. package/dist/es6/ej2-gantt.es2015.js.map +1 -1
  8. package/dist/es6/ej2-gantt.es5.js +773 -751
  9. package/dist/es6/ej2-gantt.es5.js.map +1 -1
  10. package/dist/global/ej2-gantt.min.js +2 -2
  11. package/dist/global/ej2-gantt.min.js.map +1 -1
  12. package/dist/global/index.d.ts +1 -1
  13. package/package.json +20 -19
  14. package/src/gantt/actions/connector-line-edit.js +21 -26
  15. package/src/gantt/actions/context-menu.js +2 -2
  16. package/src/gantt/actions/critical-path.js +4 -9
  17. package/src/gantt/actions/day-markers.js +4 -1
  18. package/src/gantt/actions/edit.js +8 -6
  19. package/src/gantt/actions/pdf-export.js +1 -1
  20. package/src/gantt/actions/taskbar-edit.d.ts +6 -0
  21. package/src/gantt/actions/taskbar-edit.js +120 -45
  22. package/src/gantt/base/css-constants.d.ts +5 -10
  23. package/src/gantt/base/css-constants.js +5 -10
  24. package/src/gantt/base/date-processor.js +1 -19
  25. package/src/gantt/base/enum.d.ts +215 -231
  26. package/src/gantt/base/gantt-chart.js +112 -5
  27. package/src/gantt/base/gantt-model.d.ts +6 -3
  28. package/src/gantt/base/gantt.d.ts +7 -3
  29. package/src/gantt/base/gantt.js +17 -13
  30. package/src/gantt/base/interface.d.ts +36 -1
  31. package/src/gantt/base/task-processor.js +14 -15
  32. package/src/gantt/base/tree-grid.js +1 -1
  33. package/src/gantt/export/export-helper.js +1 -0
  34. package/src/gantt/export/pdf-connector-line.d.ts +4 -4
  35. package/src/gantt/export/pdf-connector-line.js +11 -22
  36. package/src/gantt/export/pdf-gantt.d.ts +1 -2
  37. package/src/gantt/export/pdf-gantt.js +4 -4
  38. package/src/gantt/models/column.d.ts +8 -4
  39. package/src/gantt/models/edit-settings-model.d.ts +1 -0
  40. package/src/gantt/models/edit-settings.d.ts +1 -0
  41. package/src/gantt/models/filter-settings-model.d.ts +3 -0
  42. package/src/gantt/models/filter-settings.d.ts +3 -0
  43. package/src/gantt/models/search-settings-model.d.ts +1 -0
  44. package/src/gantt/models/search-settings.d.ts +1 -0
  45. package/src/gantt/models/sort-settings-model.d.ts +1 -0
  46. package/src/gantt/models/sort-settings.d.ts +1 -0
  47. package/src/gantt/models/tooltip-settings-model.d.ts +8 -4
  48. package/src/gantt/models/tooltip-settings.d.ts +8 -4
  49. package/src/gantt/renderer/chart-rows.d.ts +1 -1
  50. package/src/gantt/renderer/chart-rows.js +27 -65
  51. package/src/gantt/renderer/connector-line.d.ts +23 -0
  52. package/src/gantt/renderer/connector-line.js +287 -384
  53. package/src/gantt/renderer/edit-tooltip.js +4 -4
  54. package/src/gantt/renderer/nonworking-day.js +2 -2
  55. package/src/gantt/renderer/tooltip.d.ts +3 -3
  56. package/src/gantt/renderer/tooltip.js +103 -76
  57. package/styles/bootstrap-dark.css +27 -47
  58. package/styles/bootstrap.css +29 -49
  59. package/styles/bootstrap4.css +29 -49
  60. package/styles/bootstrap5-dark.css +27 -47
  61. package/styles/bootstrap5.css +27 -47
  62. package/styles/fabric-dark.css +27 -47
  63. package/styles/fabric.css +27 -47
  64. package/styles/fluent-dark.css +28 -47
  65. package/styles/fluent.css +28 -47
  66. package/styles/gantt/_layout.scss +53 -7
  67. package/styles/gantt/_material3-dark-definition.scss +1 -0
  68. package/styles/gantt/_material3-definition.scss +220 -0
  69. package/styles/gantt/_theme.scss +53 -53
  70. package/styles/gantt/bootstrap-dark.css +27 -47
  71. package/styles/gantt/bootstrap.css +29 -49
  72. package/styles/gantt/bootstrap4.css +29 -49
  73. package/styles/gantt/bootstrap5-dark.css +27 -47
  74. package/styles/gantt/bootstrap5.css +27 -47
  75. package/styles/gantt/fabric-dark.css +27 -47
  76. package/styles/gantt/fabric.css +27 -47
  77. package/styles/gantt/fluent-dark.css +28 -47
  78. package/styles/gantt/fluent.css +28 -47
  79. package/styles/gantt/highcontrast-light.css +27 -47
  80. package/styles/gantt/highcontrast.css +27 -47
  81. package/styles/gantt/icons/_material3-dark.scss +1 -0
  82. package/styles/gantt/material-dark.css +27 -47
  83. package/styles/gantt/material.css +27 -47
  84. package/styles/gantt/material3-dark.css +2184 -0
  85. package/styles/gantt/material3-dark.scss +23 -0
  86. package/styles/gantt/material3.css +2240 -0
  87. package/styles/gantt/material3.scss +23 -0
  88. package/styles/gantt/tailwind-dark.css +27 -47
  89. package/styles/gantt/tailwind.css +27 -47
  90. package/styles/highcontrast-light.css +27 -47
  91. package/styles/highcontrast.css +27 -47
  92. package/styles/material-dark.css +27 -47
  93. package/styles/material.css +27 -47
  94. package/styles/material3-dark.css +2184 -0
  95. package/styles/material3-dark.scss +3 -0
  96. package/styles/material3.css +2240 -0
  97. package/styles/material3.scss +3 -0
  98. package/styles/tailwind-dark.css +27 -47
  99. package/styles/tailwind.css +27 -47
@@ -1,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 {
@@ -1931,7 +1914,7 @@ var TaskProcessor = /** @__PURE__ @class */ (function (_super) {
1931
1914
  (this.parent.taskMode === 'Manual') ? false :
1932
1915
  data[taskSettings.manual] === true ? false : true;
1933
1916
  this.parent.setRecordValue('ganttProperties', ganttProperties, ganttData);
1934
- if (!isNullOrUndefined(data[taskSettings.id]) && (!((this.parent.viewType === "ResourceView" && level == 0))) || data[taskSettings.name] === "Unassigned Task") {
1917
+ if (!isNullOrUndefined(data[taskSettings.id])) {
1935
1918
  id = data[taskSettings.id];
1936
1919
  name = data[taskSettings.name];
1937
1920
  this.addTaskData(ganttData, data, isLoad);
@@ -2374,7 +2357,7 @@ var TaskProcessor = /** @__PURE__ @class */ (function (_super) {
2374
2357
  startDate = this.getDateFromFormat(data[taskSettings.startDate], true);
2375
2358
  endDate = this.getDateFromFormat(data[taskSettings.endDate], true);
2376
2359
  }
2377
- var segments = taskSettings.segments && (!isNullOrUndefined(data[taskSettings.segments]) || !isNullOrUndefined(ganttData.taskData)) ? (data[taskSettings.segments] ||
2360
+ var segments = taskSettings.segments ? (data[taskSettings.segments] ||
2378
2361
  ganttData.taskData[taskSettings.segments]) : null;
2379
2362
  var isMileStone = taskSettings.milestone ? data[taskSettings.milestone] ? true : false : false;
2380
2363
  var durationMapping = data[taskSettings.durationUnit] ? data[taskSettings.durationUnit] : '';
@@ -3083,15 +3066,17 @@ var TaskProcessor = /** @__PURE__ @class */ (function (_super) {
3083
3066
  else {
3084
3067
  hierarchicalData = this.parent.dataSource;
3085
3068
  }
3086
- hierarchicalData.map(function (record) {
3087
- if (task.ganttProperties.taskId === record[_this.parent.taskFields.id]) {
3088
- if (!isNullOrUndefined(_this.parent.taskFields.startDate)) {
3089
- task[_this.parent.taskFields.startDate] = record[_this.parent.taskFields.startDate];
3090
- }
3091
- if (!isNullOrUndefined(_this.parent.taskFields.endDate)) {
3092
- 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
+ }
3093
3078
  }
3094
- }
3079
+ });
3095
3080
  });
3096
3081
  };
3097
3082
  TaskProcessor.prototype.getWorkInHour = function (work, workUnit) {
@@ -3201,9 +3186,6 @@ var TaskProcessor = /** @__PURE__ @class */ (function (_super) {
3201
3186
  return resourceIdCollection;
3202
3187
  }
3203
3188
  resourceIdCollection = data[this.parent.taskFields.resourceInfo];
3204
- if (resourceIdCollection != "" && typeof resourceIdCollection == "string") {
3205
- resourceIdCollection = resourceIdCollection.split(',');
3206
- }
3207
3189
  var resourceData;
3208
3190
  if (!isNullOrUndefined(this.parent.editModule) && !isNullOrUndefined(this.parent.editModule.dialogModule)
3209
3191
  && this.parent.editModule.dialogModule.isAddNewResource) {
@@ -3213,7 +3195,6 @@ var TaskProcessor = /** @__PURE__ @class */ (function (_super) {
3213
3195
  resourceData = this.parent.resources;
3214
3196
  }
3215
3197
  var resourceIDMapping = this.parent.resourceFields.id;
3216
- var resourceNameMapping = this.parent.resourceFields.name;
3217
3198
  var resourceUnitMapping = this.parent.resourceFields.unit;
3218
3199
  var resourceGroup = this.parent.resourceFields.group;
3219
3200
  var resources = [];
@@ -3224,7 +3205,7 @@ var TaskProcessor = /** @__PURE__ @class */ (function (_super) {
3224
3205
  return true;
3225
3206
  }
3226
3207
  else {
3227
- return (resourceIdCollection[count] === resourceInfo[resourceIDMapping]) || (resourceIdCollection[count] === resourceInfo[resourceNameMapping]);
3208
+ return (resourceIdCollection[count] === resourceInfo[resourceIDMapping]);
3228
3209
  }
3229
3210
  });
3230
3211
  var ganttDataResource = extend({}, resource[0]);
@@ -3785,6 +3766,7 @@ var TaskProcessor = /** @__PURE__ @class */ (function (_super) {
3785
3766
  var segments = ganttRecord.segments;
3786
3767
  var fixedWidth = true;
3787
3768
  var totalTaskWidth = this.splitTasksDuration(segments) * ((this.parent.timelineModule.bottomTier === "Hour" || this.parent.timelineModule.bottomTier === "Minutes") ? this.parent.timelineSettings.timelineUnitSize : this.parent.perDayWidth);
3769
+
3788
3770
  var totalProgressWidth = this.parent.dataOperation.getProgressWidth(totalTaskWidth, ganttRecord.progress);
3789
3771
  for (var i = 0; i < segments.length; i++) {
3790
3772
  var segment = segments[i];
@@ -4059,15 +4041,10 @@ var childTaskBarInnerDiv = 'e-gantt-child-taskbar-inner-div';
4059
4041
  var childProgressBarInnerDiv = 'e-gantt-child-progressbar-inner-div';
4060
4042
  var criticalChildTaskBarInnerDiv = 'e-gantt-child-critical-taskbar-inner-div';
4061
4043
  var criticalChildProgressBarInnerDiv = 'e-gantt-child-critical-progressbar-inner-div';
4062
- var milestoneTop = 'e-milestone-top';
4063
- var milestoneBottom = 'e-milestone-bottom';
4064
- var criticalMilestoneTop = 'e-critical-milestone-top';
4065
- var criticalMilestoneBottom = 'e-critical-milestone-bottom';
4044
+ var criticalMilestone = 'e-critical-milestone';
4066
4045
  var baselineBar = 'e-baseline-bar';
4067
4046
  var baselineMilestoneContainer = 'e-baseline-gantt-milestone-container';
4068
- var baselineMilestoneDiv = 'e-baseline-gantt-milestone';
4069
- var baselineMilestoneTop = 'e-baseline-milestone-top';
4070
- var baselineMilestoneBottom = 'e-baseline-milestone-bottom';
4047
+
4071
4048
  var chartRowCell = 'e-chart-row-cell';
4072
4049
  var chartRow = 'e-chart-row';
4073
4050
  var rowExpand = 'e-row-expand';
@@ -4081,15 +4058,11 @@ var progressBarHandlerAfter = 'e-progressbar-handler-after';
4081
4058
  var icon = 'e-icon';
4082
4059
  var traceMilestone = 'e-gantt-milestone';
4083
4060
  var parentMilestone = 'e-gantt-parent-milestone';
4084
- var parentMilestoneTop = 'e-parent-milestone-top';
4085
- var parentMilestoneBottom = 'e-parent-milestone-bottom';
4086
4061
  var traceChildTaskBar = 'e-gantt-child-taskbar';
4087
4062
  var traceChildProgressBar = 'e-gantt-child-progressbar';
4088
4063
  var manualParentMainContainer = 'e-manualparent-main-container';
4089
4064
  var manualParentTaskBar = 'e-gantt-manualparenttaskbar';
4090
4065
  var manualParentMilestone = 'e-gantt-manualparent-milestone';
4091
- var manualParentMilestoneTop = 'e-manualparent-milestone-top';
4092
- var manualParentMilestoneBottom = 'e-manualparent-milestone-bottom';
4093
4066
  var manualChildTaskBar = 'e-gantt-child-manualtaskbar';
4094
4067
  var manualChildProgressBar = 'e-gantt-child-manualprogressbar';
4095
4068
  var manualParentRightResizer = 'e-gantt-manualparenttaskbar-right';
@@ -4120,25 +4093,29 @@ var weekend = 'e-weekend';
4120
4093
  var unscheduledTaskbarLeft = 'e-gantt-unscheduled-taskbar-left';
4121
4094
  var unscheduledTaskbarRight = 'e-gantt-unscheduled-taskbar-right';
4122
4095
  var unscheduledTaskbar = 'e-gantt-unscheduled-taskbar';
4123
- var unscheduledMilestoneTop = 'e-unscheduled-milestone-top';
4124
- var unscheduledMilestoneBottom = 'e-unscheduled-milestone-bottom';
4096
+
4097
+
4125
4098
  //Connector Line
4126
4099
  var dependencyViewContainer = 'e-gantt-dependency-view-container';
4127
4100
  var connectorLineContainer = 'e-connector-line-container';
4128
- var connectorLine = 'e-line';
4129
- var criticalConnectorLine = 'e-criticalconnector-line';
4130
- var criticalConnectorLineRightArrow = 'e-criticalconnector-line-right-arrow';
4131
- var criticalConnectorLineLeftArrow = 'e-criticalconnector-line-left-arrow';
4132
- var connectorLineRightArrow = 'e-connector-line-right-arrow';
4133
- 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
+
4134
4111
  var connectorLineZIndex = 'e-connector-line-z-index';
4135
- var connectorLineHover = 'e-connector-line-hover';
4136
- var criticalConnectorLineHover = 'e-critical-connector-line-hover';
4137
- var connectorLineHoverZIndex = 'e-connector-line-hover-z-index';
4138
- var connectorLineRightArrowHover = 'e-connector-line-right-arrow-hover';
4139
- var connectorLineLeftArrowHover = 'e-connector-line-left-arrow-hover';
4140
- var criticalConnectorLineRightArrowHover = 'e-critical-connector-line-right-arrow-hover';
4141
- var criticalConnectorLineLeftArrowHover = 'e-critical-connector-line-left-arrow-hover';
4112
+
4113
+
4114
+
4115
+
4116
+
4117
+
4118
+
4142
4119
 
4143
4120
  var connectorPointLeft = 'e-connectorpoint-left';
4144
4121
  var connectorPointRight = 'e-connectorpoint-right';
@@ -4864,6 +4841,16 @@ var GanttChart = /** @__PURE__ @class */ (function () {
4864
4841
  if (this.parent.isDestroyed || e.which === 3) {
4865
4842
  return;
4866
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
+ }
4867
4854
  var isTaskbarEdited = false;
4868
4855
  if (this.parent.editSettings.allowTaskbarEditing &&
4869
4856
  getValue('editModule.taskbarEditModule.isMouseDragged', this.parent) &&
@@ -5425,6 +5412,71 @@ var GanttChart = /** @__PURE__ @class */ (function () {
5425
5412
  $target.closest('.e-chart-row') ? $target.closest('.e-chart-row').rowIndex : -1;
5426
5413
  var isTab = (e.action === 'tab') ? true : false;
5427
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
+ }
5428
5480
  this.tempNextElement = nextElement;
5429
5481
  if (!isNullOrUndefined(nextElement) && !isNullOrUndefined(nextElement['cellIndex'])) {
5430
5482
  if (this.parent.allowRowDragAndDrop) {
@@ -5448,7 +5500,7 @@ var GanttChart = /** @__PURE__ @class */ (function () {
5448
5500
  }
5449
5501
  if (typeof nextElement !== 'string') {
5450
5502
  if ($target.classList.contains('e-rowcell') || $target.closest('.e-chart-row-cell') ||
5451
- $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')) {
5452
5504
  e.preventDefault();
5453
5505
  }
5454
5506
  if (isTab && $target.classList.contains('e-rowdragdrop')) {
@@ -5484,11 +5536,21 @@ var GanttChart = /** @__PURE__ @class */ (function () {
5484
5536
  }
5485
5537
  }
5486
5538
  else {
5487
- 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
+ }
5488
5547
  }
5489
5548
  }
5490
5549
  else {
5491
- 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
+ }
5492
5554
  }
5493
5555
  }
5494
5556
  if (!(this.parent.editModule && this.parent.editModule.cellEditModule
@@ -5500,7 +5562,8 @@ var GanttChart = /** @__PURE__ @class */ (function () {
5500
5562
  else {
5501
5563
  this.manageFocus($target, 'remove', true);
5502
5564
  }
5503
- 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')) {
5504
5567
  if (!$target.classList.contains('e-rowcell')) {
5505
5568
  this.parent.treeGrid.grid.notify('key-pressed', e);
5506
5569
  var fmodule = getValue('focusModule', this.parent.treeGrid.grid);
@@ -5512,7 +5575,17 @@ var GanttChart = /** @__PURE__ @class */ (function () {
5512
5575
  this.manageFocus(nextElement, 'add', false);
5513
5576
  }
5514
5577
  else {
5515
- 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
+ }
5516
5589
  }
5517
5590
  this.parent.focusModule.setActiveElement(nextElement);
5518
5591
  }
@@ -5599,6 +5672,17 @@ var GanttChart = /** @__PURE__ @class */ (function () {
5599
5672
  var childElement_1 = this.getChildElement(rowElement, isTab);
5600
5673
  return childElement_1;
5601
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
+ }
5602
5686
  }
5603
5687
  return null;
5604
5688
  };
@@ -8131,7 +8215,7 @@ var GanttTreeGrid = /** @__PURE__ @class */ (function () {
8131
8215
  }
8132
8216
  }; // eslint-disable-next-line
8133
8217
  GanttTreeGrid.prototype.durationValueAccessor = function (field, data, column) {
8134
- var ganttProp = (!isNullOrUndefined(data)) ? data.ganttProperties : null;
8218
+ var ganttProp = data.ganttProperties;
8135
8219
  if (!isNullOrUndefined(ganttProp)) {
8136
8220
  return this.parent.dataOperation.getDurationString(ganttProp.duration, ganttProp.durationUnit);
8137
8221
  }
@@ -9089,7 +9173,7 @@ var ChartRows = /** @__PURE__ @class */ (function (_super) {
9089
9173
  ChartRows.prototype.createChartTable = function () {
9090
9174
  this.taskTable = createElement('table', {
9091
9175
  className: taskTable + ' ' + zeroSpacing, id: 'GanttTaskTable' + this.parent.element.id,
9092
- styles: 'z-index: 2;position: absolute;width:' + this.parent.timelineModule.totalTimelineWidth + 'px;',
9176
+ styles: 'position: absolute;width:' + this.parent.timelineModule.totalTimelineWidth + 'px;',
9093
9177
  attrs: { cellspacing: '0.25px' }
9094
9178
  });
9095
9179
  var colgroup = createElement('colgroup');
@@ -9173,7 +9257,7 @@ var ChartRows = /** @__PURE__ @class */ (function (_super) {
9173
9257
  taskbarInnerDiv = this.createDivElement('<div class="' + childTaskBarInnerDiv + ' ' + traceChildTaskBar +
9174
9258
  ' ' + (data.ganttProperties.isAutoSchedule ? '' : manualChildTaskBar) + '"' +
9175
9259
  'style="width:' + data.ganttProperties.width + 'px;height:' +
9176
- (this.taskBarHeight) + 'px;"></div>');
9260
+ (this.taskBarHeight) + 'px; margin-top :-1px"></div>');
9177
9261
  progressDiv = this.createDivElement('<div class="' + childProgressBarInnerDiv + ' ' +
9178
9262
  traceChildProgressBar + ' ' + (data.ganttProperties.isAutoSchedule ?
9179
9263
  '' : manualChildProgressBar) + '"' +
@@ -9652,15 +9736,8 @@ var ChartRows = /** @__PURE__ @class */ (function (_super) {
9652
9736
  milestoneNode = this.milestoneTemplateFunction(extend({ index: i }, data), this.parent, 'MilestoneTemplate', this.getTemplateID('MilestoneTemplate'), false, undefined, rootElement[0], this.parent.treeGrid['root']);
9653
9737
  }
9654
9738
  else {
9655
- var template = '<div class="' + traceMilestone + '" style="position:absolute;">' +
9656
- '<div class="' + milestoneTop + ' ' + ((!data.ganttProperties.startDate && !data.ganttProperties.endDate) ?
9657
- unscheduledMilestoneTop : '') + '" style="border-right-width:' +
9658
- this.milesStoneRadius + 'px;border-left-width:' + this.milesStoneRadius + 'px;border-bottom-width:' +
9659
- this.milesStoneRadius + 'px;"></div>' +
9660
- '<div class="' + milestoneBottom + ' ' + ((!data.ganttProperties.startDate && !data.ganttProperties.endDate) ?
9661
- unscheduledMilestoneBottom : '') + '" style="top:' +
9662
- (this.milesStoneRadius) + 'px;border-right-width:' + this.milesStoneRadius + 'px; border-left-width:' +
9663
- 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>';
9664
9741
  milestoneNode = this.createDivElement(template);
9665
9742
  }
9666
9743
  return milestoneNode;
@@ -9688,25 +9765,9 @@ var ChartRows = /** @__PURE__ @class */ (function (_super) {
9688
9765
  ChartRows.prototype.getMilestoneBaselineNode = function () {
9689
9766
  var data = this.templateData;
9690
9767
  var baselineMilestoneHeight = this.parent.renderBaseline ? 5 : 2;
9691
- var template = '<div class="' + baselineMilestoneContainer + ' ' + '" style="' +
9692
- (this.parent.enableRtl ? 'right:' : 'left:') + (data.ganttProperties.baselineLeft - this.milesStoneRadius) + 'px;' +
9693
- 'margin-top:' + (-Math.floor(this.parent.rowHeight - this.milestoneMarginTop) + baselineMilestoneHeight) +
9694
- 'px">' + '<div class="' + baselineMilestoneDiv + '">' + '<div class="' + baselineMilestoneDiv +
9695
- ' ' + baselineMilestoneTop + '" ' +
9696
- 'style="top:' + (-this.milestoneHeight) + 'px;border-right:' + this.milesStoneRadius +
9697
- 'px solid transparent;border-left:' + this.milesStoneRadius +
9698
- 'px solid transparent;border-top:0px' +
9699
- 'solid transparent;border-bottom-width:' + this.milesStoneRadius + 'px;' +
9700
- 'border-bottom-style: solid;' + (this.baselineColor ? 'border-bottom-color: ' + this.baselineColor + ';' : '') +
9701
- '"></div>' +
9702
- '<div class="' + baselineMilestoneDiv + ' ' + baselineMilestoneBottom + '" ' +
9703
- 'style="top:' + (this.milesStoneRadius - this.milestoneHeight) + 'px;border-right:' + this.milesStoneRadius +
9704
- 'px solid transparent;border-left:' + this.milesStoneRadius +
9705
- 'px solid transparent;border-bottom:0px' +
9706
- 'solid transparent;border-top-width:' + this.milesStoneRadius + 'px;' +
9707
- 'border-top-style: solid;' +
9708
- (this.baselineColor ? 'border-top-color: ' + this.baselineColor + ';' : '') + '"></div>' +
9709
- '</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>';
9710
9771
  return this.createDivElement(template);
9711
9772
  };
9712
9773
  /**
@@ -9832,16 +9893,8 @@ var ChartRows = /** @__PURE__ @class */ (function (_super) {
9832
9893
  (this.parent.enableRtl ? 'right:' : 'left:') + (data.ganttProperties.width - Math.floor(((taskbarHeight / 5) + 8) / 5)) + 'px;height:' +
9833
9894
  ((taskbarHeight / 5) + 8) + 'px;border-right-width:' + taskbarHeight / 5 + 'px;border-bottom:' +
9834
9895
  taskbarHeight / 5 + 'px solid transparent;>' + '</div></div>' : '');
9835
- var milestoneTemplate = '<div class="' + manualParentMilestone + '" style="position:absolute;' +
9836
- (this.parent.enableRtl ? 'right:' : 'left:') +
9837
- (data.ganttProperties.left - data.ganttProperties.autoLeft - (this.milestoneHeight / 2)) +
9838
- 'px;width:' + (this.milesStoneRadius * 2) +
9839
- 'px;">' + '<div class="' + manualParentMilestoneTop + '" style="border-right-width:' +
9840
- this.milesStoneRadius + 'px;border-left-width:' + this.milesStoneRadius + 'px;border-bottom-width:' +
9841
- this.milesStoneRadius + 'px;"></div>' +
9842
- '<div class="' + manualParentMilestoneBottom + '" style="top:' +
9843
- (this.milesStoneRadius) + 'px;border-right-width:' + this.milesStoneRadius + 'px; border-left-width:' +
9844
- 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>';
9845
9898
  return this.createDivElement(data.ganttProperties.duration !== 0 ? template : milestoneTemplate);
9846
9899
  };
9847
9900
  /**
@@ -9866,8 +9919,8 @@ var ChartRows = /** @__PURE__ @class */ (function (_super) {
9866
9919
  this.getExpandClass(data) + ' ' + traceParentTaskBar + '"' +
9867
9920
  ' style="width:' + (data.ganttProperties.isAutoSchedule ? data.ganttProperties.width :
9868
9921
  data.ganttProperties.autoWidth) + 'px;height:' + (data.ganttProperties.isAutoSchedule ? this.taskBarHeight :
9869
- (tHeight * 3)) + 'px;margin-top:' + (data.ganttProperties.isAutoSchedule ? '' :
9870
- (tHeight * 2)) + 'px;">' +
9922
+ (tHeight * 3)) + 'px;margin-top:' + (data.ganttProperties.isAutoSchedule ? -1 :
9923
+ (tHeight * 2)) + 'px; ">' +
9871
9924
  '</div>');
9872
9925
  var progressBarInnerDiv = this.createDivElement('<div class="' + parentProgressBarInnerDiv + ' ' +
9873
9926
  this.getExpandClass(data) + ' ' + traceParentProgressBar + '"' +
@@ -9932,13 +9985,8 @@ var ChartRows = /** @__PURE__ @class */ (function (_super) {
9932
9985
  parentLabel && !parentLabel['elementRef'] && div.innerHTML !== '')
9933
9986
  progressBarInnerDiv[0].querySelectorAll('.e-task-label')[0].textContent = parentLabel;
9934
9987
  }
9935
- var milestoneTemplate = '<div class="' + parentMilestone + '" style="position:absolute;">' +
9936
- '<div class="' + parentMilestoneTop + '" style="border-right-width:' +
9937
- this.milesStoneRadius + 'px;border-left-width:' + this.milesStoneRadius + 'px;border-bottom-width:' +
9938
- this.milesStoneRadius + 'px;"></div>' +
9939
- '<div class="' + parentMilestoneBottom + '" style="top:' +
9940
- (this.milesStoneRadius) + 'px;border-right-width:' + this.milesStoneRadius + 'px; border-left-width:' +
9941
- 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>';
9942
9990
  template[0].appendChild([].slice.call(progressBarInnerDiv)[0]);
9943
9991
  parentTaskbarNode = data.ganttProperties.isMilestone ?
9944
9992
  this.createDivElement(data.ganttProperties.isAutoSchedule ? milestoneTemplate : '') : template;
@@ -10315,8 +10363,8 @@ var ChartRows = /** @__PURE__ @class */ (function (_super) {
10315
10363
  this.milestoneMarginTop = Math.floor((this.parent.rowHeight - this.milestoneHeight) / 2);
10316
10364
  this.milesStoneRadius = Math.floor((this.milestoneHeight) / 2);
10317
10365
  this.baselineTop = -(Math.floor((this.parent.rowHeight - (this.taskBarHeight + this.taskBarMarginTop))) - 4);
10318
- this.connectorPointWidth = this.parent.isAdaptive ? Math.round(this.taskBarHeight / 2) : 8;
10319
- 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;
10320
10368
  };
10321
10369
  /**
10322
10370
  * Function used to refresh Gantt rows.
@@ -10385,7 +10433,6 @@ var ChartRows = /** @__PURE__ @class */ (function (_super) {
10385
10433
  var tempTemplateData = this.parent.currentViewData[i];
10386
10434
  if (this.parent.viewType === 'ResourceView') {
10387
10435
  if (this.parent.editModule && this.parent.editModule.isResourceTaskDeleted || this.parent.isFromOnPropertyChange) {
10388
- this.parent.initialChartRowElements = this.parent.ganttChartModule.getChartRows();
10389
10436
  this.parent.editModule.isResourceTaskDeleted = false;
10390
10437
  }
10391
10438
  if (!tempTemplateData.expanded && this.parent.enableMultiTaskbar) {
@@ -10404,11 +10451,12 @@ var ChartRows = /** @__PURE__ @class */ (function (_super) {
10404
10451
  }
10405
10452
  }
10406
10453
  (_a = this.ganttChartTableBody).replaceChildren.apply(_a, dupChartBody.childNodes);
10454
+ this.parent.initialChartRowElements = this.parent.ganttChartModule.getChartRows();
10407
10455
  }
10408
10456
  this.parent.renderTemplates();
10409
10457
  this.triggerQueryTaskbarInfo();
10410
10458
  this.parent.modifiedRecords = [];
10411
- if (this.parent.viewType === 'ResourceView' && this.parent.showOverAllocation) {
10459
+ if (this.parent.viewType == 'ResourceView' && this.parent.showOverAllocation) {
10412
10460
  this.updateOverlapped();
10413
10461
  }
10414
10462
  if (collapsedResourceRecord.length) {
@@ -10481,7 +10529,7 @@ var ChartRows = /** @__PURE__ @class */ (function (_super) {
10481
10529
  else if (this.templateData.ganttProperties.isMilestone) {
10482
10530
  var milestoneTemplateNode = this.getMilestoneNode(i, taskbarContainerNode);
10483
10531
  if (milestoneTemplateNode && milestoneTemplateNode.length > 0) {
10484
- taskbarContainerNode[0].appendChild([].slice.call(milestoneTemplateNode)[0]);
10532
+ append(milestoneTemplateNode, taskbarContainerNode[0]);
10485
10533
  }
10486
10534
  if (this.parent.renderBaseline && this.templateData.ganttProperties.baselineStartDate &&
10487
10535
  this.templateData.ganttProperties.baselineEndDate) {
@@ -10658,9 +10706,9 @@ var ChartRows = /** @__PURE__ @class */ (function (_super) {
10658
10706
  var classCollections = this.getClassName(args);
10659
10707
  if (args.taskbarType === 'Milestone') {
10660
10708
  args.milestoneColor = taskbarElement.querySelector(classCollections[0]) ?
10661
- getComputedStyle(taskbarElement.querySelector(classCollections[0])).borderBottomColor : null;
10709
+ getComputedStyle(taskbarElement.querySelector(classCollections[0])).backgroundColor : null;
10662
10710
  args.baselineColor = trElement.querySelector(classCollections[1]) ?
10663
- getComputedStyle(trElement.querySelector(classCollections[1])).borderBottomColor :
10711
+ getComputedStyle(trElement.querySelector(classCollections[1])).backgroundColor :
10664
10712
  (trElement.querySelector('.' + baselineBar) ? getComputedStyle(trElement.querySelector('.' + baselineBar)).backgroundColor : null);
10665
10713
  }
10666
10714
  else if (taskbarElement) {
@@ -10728,14 +10776,12 @@ var ChartRows = /** @__PURE__ @class */ (function (_super) {
10728
10776
  }
10729
10777
  if (args.taskbarType === 'Milestone') {
10730
10778
  if (taskbarElement.querySelector(classCollections[0]) &&
10731
- getComputedStyle(taskbarElement.querySelector(classCollections[0])).borderBottomColor !== args.milestoneColor) {
10732
- taskbarElement.querySelector(classCollections[0]).style.borderBottomColor = args.milestoneColor;
10733
- 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;
10734
10781
  }
10735
10782
  if (trElement.querySelector(classCollections[1]) &&
10736
- getComputedStyle(trElement.querySelector(classCollections[1])).borderTopColor !== args.baselineColor) {
10737
- trElement.querySelector(classCollections[1]).style.borderBottomColor = args.baselineColor;
10738
- 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;
10739
10785
  }
10740
10786
  if (trElement.querySelector('.' + baselineBar) &&
10741
10787
  getComputedStyle(trElement.querySelector('.' + baselineBar)).borderTopColor !== args.baselineColor) {
@@ -10816,9 +10862,9 @@ var ChartRows = /** @__PURE__ @class */ (function (_super) {
10816
10862
  ChartRows.prototype.getClassName = function (args) {
10817
10863
  var classCollection = [];
10818
10864
  classCollection.push('.' + (args.taskbarType === 'ParentTask' ?
10819
- traceParentTaskBar : args.taskbarType === 'ChildTask' ? traceChildTaskBar : milestoneTop));
10865
+ traceParentTaskBar : args.taskbarType === 'ChildTask' ? traceChildTaskBar : traceMilestone));
10820
10866
  classCollection.push('.' + (args.taskbarType === 'ParentTask' ?
10821
- traceParentProgressBar : args.taskbarType === 'ChildTask' ? traceChildProgressBar : baselineMilestoneTop));
10867
+ traceParentProgressBar : args.taskbarType === 'ChildTask' ? traceChildProgressBar : baselineMilestoneContainer));
10822
10868
  return classCollection;
10823
10869
  };
10824
10870
  /**
@@ -10831,7 +10877,7 @@ var ChartRows = /** @__PURE__ @class */ (function (_super) {
10831
10877
  ChartRows.prototype.templateCompiler = function (template) {
10832
10878
  if (!isNullOrUndefined(template) && template !== '') {
10833
10879
  try {
10834
- if (document.querySelectorAll(template).length) {
10880
+ if (typeof template !== 'function' && document.querySelectorAll(template).length) {
10835
10881
  return compile(document.querySelector(template).innerHTML.trim(), this.parent);
10836
10882
  }
10837
10883
  else {
@@ -11986,11 +12032,28 @@ var Dependency = /** @__PURE__ @class */ (function () {
11986
12032
  */
11987
12033
  var ConnectorLine = /** @__PURE__ @class */ (function () {
11988
12034
  function ConnectorLine(ganttObj) {
12035
+ this.transform = '';
12036
+ this.connectorLinePath = '';
12037
+ this.arrowPath = '';
11989
12038
  this.expandedRecords = [];
11990
12039
  this.parent = ganttObj;
11991
12040
  this.dependencyViewContainer =
11992
- 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);
11993
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%');
11994
12057
  }
11995
12058
  /**
11996
12059
  * To get connector line gap.
@@ -12019,7 +12082,7 @@ var ConnectorLine = /** @__PURE__ @class */ (function () {
12019
12082
  };
12020
12083
  ConnectorLine.prototype.getTaskbarMidpoint = function (isMilestone) {
12021
12084
  return Math.floor(isMilestone ?
12022
- (this.parent.chartRowsModule.milestoneMarginTop + (this.parent.chartRowsModule.milestoneHeight / 2)) :
12085
+ (this.parent.chartRowsModule.milestoneMarginTop + (this.parent.chartRowsModule.milestoneHeight / 2)) + 1 :
12023
12086
  (this.parent.chartRowsModule.taskBarMarginTop + (this.parent.chartRowsModule.taskBarHeight / 2))) + 1;
12024
12087
  };
12025
12088
  /**
@@ -12068,6 +12131,10 @@ var ConnectorLine = /** @__PURE__ @class */ (function () {
12068
12131
  connectorObj.connectorLineId = 'parent' + parentId + 'child' + childId;
12069
12132
  connectorObj.milestoneParent = parentGanttRecord.isMilestone ? true : false;
12070
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;
12071
12138
  if (isNullOrUndefined(isScheduledTask(parentGanttRecord)) || isNullOrUndefined(isScheduledTask(childGanttRecord))) {
12072
12139
  return null;
12073
12140
  }
@@ -12090,8 +12157,8 @@ var ConnectorLine = /** @__PURE__ @class */ (function () {
12090
12157
  connectorLine$$1 = connectorLine$$1 + this.getConnectorLineTemplate(connectorLinesCollection[index]);
12091
12158
  ariaConnector.push(connectorLinesCollection[index]);
12092
12159
  }
12093
- this.dependencyViewContainer.innerHTML = connectorLine$$1;
12094
- var childNodes = this.parent.connectorLineModule.dependencyViewContainer.childNodes;
12160
+ this.svgObject.innerHTML = connectorLine$$1;
12161
+ var childNodes = this.parent.connectorLineModule.svgObject.childNodes;
12095
12162
  for (var i = 0; i < childNodes.length; i++) {
12096
12163
  var innerChild = childNodes[i].childNodes;
12097
12164
  for (var j = 0; j < innerChild.length; j++) {
@@ -12099,9 +12166,10 @@ var ConnectorLine = /** @__PURE__ @class */ (function () {
12099
12166
  innerChild[j].setAttribute('aria-label', ariaString);
12100
12167
  }
12101
12168
  }
12102
- this.parent.ganttChartModule.chartBodyContent.appendChild(this.dependencyViewContainer);
12103
- for (var i = 0; i < this.dependencyViewContainer.children.length; i++) {
12104
- 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');
12105
12173
  }
12106
12174
  };
12107
12175
  /**
@@ -12359,16 +12427,15 @@ var ConnectorLine = /** @__PURE__ @class */ (function () {
12359
12427
  var height = this.getHeightValue(data);
12360
12428
  var isMilestoneParent = data.milestoneParent ? true : false;
12361
12429
  var isMilestone = data.milestoneChild ? true : false;
12362
- var connectorContainer = '';
12363
12430
  var isVirtual = this.parent.virtualScrollModule && this.parent.enableVirtualization;
12364
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;
12365
12434
  var isMilestoneValue = 0;
12366
12435
  if (this.parent.renderBaseline) {
12367
12436
  isMilestoneValue = (data.milestoneParent && data.milestoneChild) ? 0 : data.milestoneParent ? -5 : data.milestoneChild ? 5 : 0;
12368
12437
  }
12369
12438
  var heightValue = isVirtual ? connectorLine$$1.height : (height + isMilestoneValue);
12370
- var borderTopWidth = 0;
12371
- var addTop = 0;
12372
12439
  var parentOverlapTopValue = 0;
12373
12440
  var childOverlapTopValue = 0;
12374
12441
  var count = 0;
@@ -12405,454 +12472,318 @@ var ConnectorLine = /** @__PURE__ @class */ (function () {
12405
12472
  }
12406
12473
  if (isValid) {
12407
12474
  if (((fromRecordIsParent && !fromRecordIsManual) && (toRecordIsParent && !toRecordIsManual))) {
12408
- addTop = -11;
12475
+
12409
12476
  }
12410
12477
  else if (!((fromRecordIsParent && !fromRecordIsManual) && (toRecordIsParent && !toRecordIsManual))) {
12411
12478
  if (data.childIndex > data.parentIndex) {
12412
- if (!fromRecordIsParent && toRecordIsParent) {
12413
- borderTopWidth = -11;
12414
- }
12415
- else {
12416
- borderTopWidth = 11;
12417
- addTop = -11;
12418
- }
12479
+
12419
12480
  }
12420
12481
  else {
12421
- if ((fromRecordIsParent && !toRecordIsParent)) {
12422
- borderTopWidth = -11;
12423
- }
12424
- else {
12425
- borderTopWidth = 11;
12426
- addTop = -11;
12427
- }
12482
+
12428
12483
  }
12429
12484
  }
12430
12485
  if (this.parent.currentViewData[data.parentIndex].ganttProperties.isMilestone) {
12431
12486
  if (data.parentIndex > data.childIndex) {
12432
- addTop = -5;
12433
- borderTopWidth = 10;
12487
+
12434
12488
  }
12435
12489
  else if (data.type === 'SS' || data.type === 'FF') {
12436
- addTop = -5;
12490
+
12437
12491
  }
12438
12492
  }
12439
12493
  else if (this.parent.currentViewData[data.childIndex].ganttProperties.isMilestone) {
12440
12494
  if (data.parentIndex > data.childIndex) {
12441
- addTop = 5;
12442
- borderTopWidth = -10;
12495
+
12443
12496
  }
12444
12497
  else if (data.type === 'SS' || data.type === 'FF') {
12445
- addTop = 5;
12498
+
12446
12499
  }
12447
12500
  }
12448
12501
  }
12449
12502
  }
12450
12503
  if (this.getParentPosition(data)) {
12451
- connectorContainer = '<div id="ConnectorLine' + data.connectorLineId + '" style="background-color:black">';
12452
- var div = '<div class="' + connectorLineContainer +
12453
- '" tabindex="-1" style="';
12454
- var direction = this.parent.enableRtl ? 'right:' : 'left:';
12455
- var eLine = '<div class="' + connectorLine + '" style="' +
12456
- (!isNullOrUndefined(this.lineColor) ? 'outline-color:' + this.lineColor + ';' : '');
12457
- var rightArrow = void 0;
12458
- var leftArrow = void 0;
12459
- if (this.parent.enableRtl) {
12460
- leftArrow = '<div class="' + connectorLineRightArrow + '" style="' +
12461
- (!isNullOrUndefined(this.lineColor) ? 'outline-color:' + this.lineColor + ';' : '');
12462
- rightArrow = '<div class="' + connectorLineLeftArrow + '" style="' +
12463
- (!isNullOrUndefined(this.lineColor) ? 'outline-color:' + this.lineColor + ';' : '');
12464
- }
12465
- else {
12466
- rightArrow = '<div class="' + connectorLineRightArrow + '" style="' +
12467
- (!isNullOrUndefined(this.lineColor) ? 'outline-color:' + this.lineColor + ';' : '');
12468
- leftArrow = '<div class="' + connectorLineLeftArrow + '" style="' +
12469
- (!isNullOrUndefined(this.lineColor) ? 'outline-color:' + this.lineColor + ';' : '');
12470
- }
12471
- var duplicateStingOne = leftArrow + (isMilestone ? (this.parent.enableRtl ? 'right:0px;' : 'left:0px;') : '') +
12472
- this.getBorderStyles((this.parent.enableRtl ? 'left' : 'right'), 10) +
12473
- 'top:' + (-5 - this.lineStroke + (this.lineStroke - 1)) + 'px;border-bottom-width:' + (5 + this.lineStroke) + 'px;' +
12474
- 'border-top-width:' + (5 + this.lineStroke) + 'px;width:0;height:0;position:relative;"></div>';
12475
- var duplicateStingTwo = this.getBorderStyles((this.parent.enableRtl ? 'right' : 'left'), 10) +
12476
- 'top:' + (-6) + 'px;border-bottom-width:' + (5 + this.lineStroke) + 'px;' +
12477
- 'border-top-width:' + (5 + this.lineStroke) + 'px;width:0;height:0;position:relative;"></div>';
12478
- var duplicateStingThree = this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>' + eLine +
12479
- 'top:' + (-(13 + ((this.lineStroke - 1) * 2))) + 'px;width:0px;' + this.getBorderStyles('left', this.lineStroke) +
12480
- this.getBorderStyles('top', (heightValue + borderTopWidth - (this.lineStroke - 1))) + 'position:relative;"></div>';
12481
- var duplicateStingFour = leftArrow + (this.parent.enableRtl ? 'right:' : 'left:') +
12482
- (((data.childLeft + data.childWidth) - (data.parentLeft)) + 10) + 'px;' +
12483
- this.getBorderStyles((this.parent.enableRtl ? 'left' : 'right'), 10);
12484
- var duplicateStingFive = 'top:' + (-(6 + (5 + this.lineStroke) + (this.lineStroke / 2))) + 'px;' +
12485
- 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);
12486
12528
  if (this.getParentPosition(data) === 'FSType1') {
12487
- div = div + direction + (data.parentLeft + data.parentWidth) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
12488
- ((!this.parent.allowTaskbarOverlap ? parentOverlapTopValue : (data.parentIndex * data.rowHeight)) + addTop + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
12489
- 'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="FSType1">';
12490
- div = div + eLine;
12491
- div = div + direction + (isMilestoneParent ? -1 : 0) + 'px;width:' + (isMilestoneParent ?
12492
- ((((data.childLeft - (data.parentLeft + data.parentWidth + 10)) + this.lineStroke) - 10) + 1) :
12493
- (((data.childLeft - (data.parentLeft + data.parentWidth + 10)) + this.lineStroke) - 10)) + 'px;' +
12494
- this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
12495
- div = div + eLine;
12496
- div = div + direction + ((data.childLeft - (data.parentLeft + data.parentWidth + 10)) - 10) + 'px;' +
12497
- 'width:0px;' + this.getBorderStyles('right', this.lineStroke) +
12498
- this.getBorderStyles('top', (heightValue + borderTopWidth - this.lineStroke)) + 'position:relative;"></div>';
12499
- div = div + eLine;
12500
- div = div + direction + ((data.childLeft - (data.parentLeft + data.parentWidth + 10)) - 10) + 'px;width:10px;' +
12501
- this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
12502
- div = div + rightArrow;
12503
- div = div + direction + (data.childLeft - (data.parentLeft + data.parentWidth + 10)) + 'px;' +
12504
- this.getBorderStyles((this.parent.enableRtl ? 'right' : 'left'), 10) + 'top:' + (-6 - this.lineStroke) + 'px;border-bottom-width:' + (5 + this.lineStroke) +
12505
- '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";
12506
12541
  }
12507
12542
  if (this.getParentPosition(data) === 'FSType2') {
12508
- div = div + direction + data.parentLeft + 'px;top:' + (isVirtual ? connectorLine$$1.top : ((!this.parent.allowTaskbarOverlap ? parentOverlapTopValue : (data.parentIndex * data.rowHeight)) + addTop +
12509
- this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
12510
- 'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="FSType2">';
12511
- div = div + eLine;
12512
- div = div + direction + (isMilestoneParent ? data.parentWidth - 1 : data.parentWidth) + 'px;width:' +
12513
- (isMilestoneParent ? 11 : 10) + 'px;' +
12514
- this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
12515
- div = div + eLine;
12516
- div = div + direction + (data.parentWidth + 10 - this.lineStroke) + 'px;' +
12517
- this.getBorderStyles('left', this.lineStroke) + 'width:0px;' +
12518
- this.getBorderStyles('top', (heightValue + borderTopWidth - this.getconnectorLineGap(data) - this.lineStroke)) + 'position:relative;"></div>';
12519
- div = div + eLine;
12520
- div = div + direction + (data.parentWidth - (((data.parentLeft + data.parentWidth) - data.childLeft) + 20)) + 'px;' +
12521
- 'width:' + (((data.parentLeft + data.parentWidth) - data.childLeft) + 30) + 'px;' +
12522
- this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
12523
- div = div + eLine;
12524
- div = div + direction + (data.parentWidth - (((data.parentLeft +
12525
- data.parentWidth) - data.childLeft) + 20)) + 'px;width:0px;' +
12526
- this.getBorderStyles('top', (this.getconnectorLineGap(data) - this.lineStroke)) +
12527
- this.getBorderStyles('left', this.lineStroke) + 'position:relative;"></div>';
12528
- div = div + eLine;
12529
- div = div + direction + (data.parentWidth - (((data.parentLeft +
12530
- data.parentWidth) - data.childLeft) + 20)) + 'px;width:10px;' +
12531
- this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
12532
- div = div + rightArrow;
12533
- div = div + direction + (data.parentWidth - (((data.parentLeft + data.parentWidth) - data.childLeft) + 10)) + 'px;' +
12534
- this.getBorderStyles((this.parent.enableRtl ? 'right' : 'left'), 10) + 'border-bottom-width:' + (5 + this.lineStroke) + 'px;' +
12535
- 'border-top-width:' + (5 + this.lineStroke) + 'px;top:' + (-6 - this.lineStroke) +
12536
- '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";
12537
12559
  }
12538
12560
  if (this.getParentPosition(data) === 'FSType3') {
12539
- div = div + direction + (data.childLeft - 20) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
12540
- ((!this.parent.allowTaskbarOverlap ? childOverlapTopValue : (data.childIndex * data.rowHeight)) + addTop + this.getTaskbarMidpoint(isMilestoneParent) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
12541
- 'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="FSType3">';
12542
- div = div + rightArrow;
12543
- div = div + direction + '10px;' + this.getBorderStyles((this.parent.enableRtl ? 'right' : 'left'), 10) +
12544
- 'border-bottom-width:' + (5 + this.lineStroke) + 'px;border-top-width:' + (5 + this.lineStroke) + 'px;' +
12545
- 'top:' + (-6) + 'px;width:0;height:0;position:relative;"></div>';
12546
- div = div + eLine;
12547
- div = div + 'width:10px;' + this.getBorderStyles('top', this.lineStroke) +
12548
- 'position:relative;top:' + (-(6 + (5 + this.lineStroke) + Math.round(this.lineStroke / 2))) + 'px;"></div>';
12549
- div = div + eLine;
12550
- div = div + 'width:' + this.lineStroke + 'px;' + this.getBorderStyles('top', (heightValue + borderTopWidth - this.getconnectorLineGap(data) - this.lineStroke + 1)) +
12551
- 'position:relative;top:' + (-(13 + ((this.lineStroke - 1) * 2))) + 'px;"></div>';
12552
- div = div + eLine;
12553
- div = div + 'width:' + (((data.parentLeft + data.parentWidth) - data.childLeft) + 30) + 'px;' +
12554
- this.getBorderStyles('top', this.lineStroke) + 'position:relative;top:' +
12555
- (-(13 + ((this.lineStroke - 1) * 2))) + 'px;"></div>';
12556
- div = div + eLine;
12557
- div = div + direction + (((data.parentLeft + data.parentWidth) - data.childLeft) + (30 - this.lineStroke)) +
12558
- 'px;width:0px;' + 'height:' + (this.getconnectorLineGap(data) - this.lineStroke) + 'px;' +
12559
- this.getBorderStyles('left', this.lineStroke) + 'position:relative;' +
12560
- 'top:' + (-(13 + ((this.lineStroke - 1) * 2))) + 'px;"></div>';
12561
- div = div + eLine;
12562
- div = div + (isMilestoneParent ? direction + (((data.parentLeft +
12563
- data.parentWidth) - data.childLeft) + (18 - this.lineStroke)) + 'px;width:' + (12 + this.lineStroke) + 'px;' : direction +
12564
- (((data.parentLeft + data.parentWidth) - data.childLeft) + 20) + 'px;width:10px;') +
12565
- this.getBorderStyles('top', this.lineStroke) + 'position:relative;top:' +
12566
- (-(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";
12567
12576
  }
12568
12577
  if (this.getParentPosition(data) === 'FSType4') {
12569
- div = div + direction + (data.parentLeft + data.parentWidth) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
12570
- ((!this.parent.allowTaskbarOverlap ? childOverlapTopValue : (data.childIndex * data.rowHeight)) + addTop + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
12571
- 'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="FSType4">';
12572
- div = div + rightArrow;
12573
- div = div + direction + (data.childLeft - (data.parentLeft + data.parentWidth + 10)) + 'px;' +
12574
- this.getBorderStyles((this.parent.enableRtl ? 'right' : 'left'), 10) + 'top:' + (-6) + 'px;' +
12575
- 'border-bottom-width:' + (5 + this.lineStroke) + 'px;border-top-width:' +
12576
- (5 + this.lineStroke) + 'px;width:0;height:0;position:relative;"></div>';
12577
- div = div + eLine;
12578
- div = div + direction + (data.childLeft - (data.parentLeft + data.parentWidth) - 20) +
12579
- 'px;top:' + (-(6 + (5 + this.lineStroke) + Math.round(this.lineStroke / 2))) + 'px;width:10px;' +
12580
- this.getBorderStyles('top', this.lineStroke) +
12581
- 'position:relative;"></div>';
12582
- div = div + eLine;
12583
- div = div + 'top:' + (-(13 + ((this.lineStroke - 1) * 2))) + 'px;' + direction +
12584
- (data.childLeft - (data.parentLeft + data.parentWidth) - 20) + 'px;width:0px;' +
12585
- this.getBorderStyles('left', this.lineStroke) +
12586
- this.getBorderStyles('top', (heightValue + borderTopWidth - this.lineStroke + 1)) + 'position:relative;"></div>';
12587
- div = div + eLine;
12588
- div = div + (isMilestoneParent ? direction + '-1px;' : '') + 'top:' +
12589
- (-(13 + ((this.lineStroke - 1) * 2))) + 'px;width:' +
12590
- (isMilestoneParent ? ((data.childLeft - (data.parentLeft + data.parentWidth + 20) + 1) + this.lineStroke) :
12591
- ((data.childLeft - (data.parentLeft + data.parentWidth + 20)) + this.lineStroke)) + 'px;' +
12592
- 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";
12593
12591
  }
12594
12592
  if (this.getParentPosition(data) === 'SSType4') {
12595
- div = div + direction + (data.parentLeft - 10) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
12596
- ((!this.parent.allowTaskbarOverlap ? childOverlapTopValue : (data.childIndex * data.rowHeight)) + addTop + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
12597
- 'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="SSType4">';
12598
- div = div + rightArrow;
12599
- div = div + direction + (data.childLeft - data.parentLeft) + 'px;' + duplicateStingTwo;
12600
- div = div + eLine;
12601
- div = div + 'top:' + (-(6 + (5 + this.lineStroke) + (this.lineStroke / 2))) + 'px;width:' +
12602
- (data.childLeft - data.parentLeft) + 'px;' + duplicateStingThree;
12603
- div = div + eLine;
12604
- div = div + 'top:' + (-(13 + ((this.lineStroke - 1) * 2))) + 'px;width:10px;' +
12605
- 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";
12606
12607
  }
12607
12608
  if (this.getParentPosition(data) === 'SSType3') {
12608
- div = div + direction + (data.childLeft - 20) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
12609
- ((!this.parent.allowTaskbarOverlap ? childOverlapTopValue : (data.childIndex * data.rowHeight)) + addTop + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
12610
- 'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="SSType3">';
12611
- div = div + rightArrow;
12612
- div = div + direction + '10px;' + duplicateStingTwo;
12613
- div = div + eLine;
12614
- div = div + 'top:' + (-(6 + (5 + this.lineStroke) + (this.lineStroke / 2))) + 'px;width:10px;' + duplicateStingThree;
12615
- div = div + eLine;
12616
- div = div + 'top:' + (-(13 + ((this.lineStroke - 1) * 2))) + 'px;width:' +
12617
- (data.parentLeft - data.childLeft + 21) + 'px;' +
12618
- 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";
12619
12622
  }
12620
12623
  if (this.getParentPosition(data) === 'SSType2') {
12621
- div = div + direction + setInnerElementLeftSSType2 + 'px;top:' + (isVirtual ? connectorLine$$1.top :
12622
- ((!this.parent.allowTaskbarOverlap ? parentOverlapTopValue : (data.parentIndex * data.rowHeight)) + addTop + this.getTaskbarMidpoint(isMilestoneParent) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
12623
- 'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="SSType2">';
12624
- div = div + eLine;
12625
- div = div + 'width:' + (setInnerChildWidthSSType2 + 1) + 'px;' +
12626
- this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
12627
- div = div + eLine;
12628
- div = div + 'width:0px;' + this.getBorderStyles('left', this.lineStroke) +
12629
- this.getBorderStyles('top', (heightValue + borderTopWidth - this.lineStroke)) + 'position:relative;"></div>';
12630
- div = div + eLine;
12631
- div = div + 'width:' + setInnerElementWidthSSType2 + 'px;' +
12632
- this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
12633
- div = div + rightArrow;
12634
- div = div + direction + setInnerElementWidthSSType2 + 'px;' +
12635
- this.getBorderStyles((this.parent.enableRtl ? 'right' : 'left'), 10) + 'top:' + (-6 - this.lineStroke) + 'px;' +
12636
- 'border-bottom-width:' + (5 + this.lineStroke) + 'px;border-top-width:' +
12637
- (5 + this.lineStroke) + 'px;width:0;' +
12638
- '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";
12639
12637
  }
12640
12638
  if (this.getParentPosition(data) === 'SSType1') {
12641
- div = div + direction + (data.childLeft - 20) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
12642
- ((!this.parent.allowTaskbarOverlap ? parentOverlapTopValue : (data.parentIndex * data.rowHeight)) + addTop +
12643
- this.getTaskbarMidpoint(isMilestoneParent) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
12644
- 'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="SSType1">';
12645
- div = div + eLine;
12646
- div = div + 'width:' + (data.parentLeft - data.childLeft + 21) + 'px;' +
12647
- this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
12648
- div = div + eLine;
12649
- div = div + 'width:0px;' + this.getBorderStyles('left', this.lineStroke) +
12650
- this.getBorderStyles('top', (heightValue + borderTopWidth - this.lineStroke)) + 'position:relative;"></div>';
12651
- div = div + eLine;
12652
- div = div + 'width:10px;' + this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
12653
- div = div + rightArrow;
12654
- div = div + direction + '10px;' + this.getBorderStyles((this.parent.enableRtl ? 'right' : 'left'), 10) +
12655
- 'top:' + (-6 - this.lineStroke) + 'px;border-bottom-width:' + (5 + this.lineStroke) + 'px;' +
12656
- '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";
12657
12652
  }
12658
12653
  if (this.getParentPosition(data) === 'FFType1') {
12659
- div = div + direction + (data.childLeft + data.childWidth) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
12660
- ((!this.parent.allowTaskbarOverlap ? parentOverlapTopValue : (data.parentIndex * data.rowHeight)) + addTop + this.getTaskbarMidpoint(isMilestoneParent) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
12661
- 'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="FFType1">';
12662
- div = div + eLine;
12663
- div = div + direction + (isMilestoneParent ? (((data.parentLeft + data.parentWidth) -
12664
- (data.childLeft + data.childWidth)) - 1) : ((data.parentLeft + data.parentWidth) -
12665
- (data.childLeft + data.childWidth))) + 'px;' +
12666
- 'width:' + (isMilestoneParent ? (21 + this.lineStroke) : (20 + this.lineStroke)) + 'px;' +
12667
- this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
12668
- div = div + eLine;
12669
- div = div + direction + (((data.parentLeft + data.parentWidth) -
12670
- (data.childLeft + data.childWidth)) + 20) + 'px;width:0px;' + this.getBorderStyles('left', this.lineStroke) +
12671
- this.getBorderStyles('top', (heightValue + borderTopWidth - this.lineStroke)) + 'position:relative;"></div>';
12672
- div = div + eLine;
12673
- div = div + direction + (isMilestone ? 4 : 10) + 'px;width:' + (isMilestone ?
12674
- (((data.parentLeft + data.parentWidth) - (data.childLeft + data.childWidth)) + (16 + this.lineStroke)) :
12675
- (((data.parentLeft + data.parentWidth) - (data.childLeft + data.childWidth)) + (10 + this.lineStroke))) + 'px;' +
12676
- this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
12677
- div = div + leftArrow;
12678
- div = div + (isMilestone ? direction + '0px;' : '') + this.getBorderStyles((!this.parent.enableRtl ? 'right' : 'left'), 10) +
12679
- 'top:' + (-6 - this.lineStroke) + 'px;border-bottom-width:' + (5 + this.lineStroke) + 'px;' +
12680
- '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";
12681
12668
  }
12682
12669
  if (this.getParentPosition(data) === 'FFType2') {
12683
- div = div + direction + (data.parentLeft + data.parentWidth) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
12684
- ((!this.parent.allowTaskbarOverlap ? parentOverlapTopValue : (data.parentIndex * data.rowHeight)) + addTop + this.getTaskbarMidpoint(isMilestoneParent) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
12685
- 'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="FFType2">';
12686
- div = div + eLine;
12687
- div = div + (isMilestoneParent ? direction + '-1px;' : '') + 'width:' +
12688
- (isMilestoneParent ? (((data.childLeft + data.childWidth) - (data.parentLeft + data.parentWidth)) +
12689
- (21 + this.lineStroke)) : (((data.childLeft + data.childWidth) -
12690
- (data.parentLeft + data.parentWidth)) + (20 + this.lineStroke))) + 'px;' +
12691
- this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
12692
- div = div + eLine;
12693
- div = div + direction + (((data.childLeft + data.childWidth) - (data.parentLeft + data.parentWidth)) + 20) +
12694
- 'px;width:0px;' + this.getBorderStyles('left', this.lineStroke) +
12695
- this.getBorderStyles('top', (heightValue + borderTopWidth - this.lineStroke)) +
12696
- 'position:relative;"></div>';
12697
- div = div + eLine;
12698
- div = div + direction + (isMilestone ? (((data.childLeft + data.childWidth) - (data.parentLeft + data.parentWidth)) + 4) :
12699
- (((data.childLeft + data.childWidth) - (data.parentLeft + data.parentWidth)) + 10)) + 'px;' +
12700
- 'width:' + (isMilestone ? (16 + this.lineStroke) : (10 + this.lineStroke)) + 'px;' +
12701
- this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
12702
- div = div + leftArrow;
12703
- div = div + direction + ((data.childLeft + data.childWidth) - (data.parentLeft + data.parentWidth)) + 'px;' +
12704
- this.getBorderStyles((!this.parent.enableRtl ? 'right' : 'left'), 10) + 'top:' + (-6 - this.lineStroke) + 'px;' +
12705
- 'border-bottom-width:' + (5 + this.lineStroke) + 'px;border-top-width:' + (5 + this.lineStroke) +
12706
- '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";
12707
12683
  }
12708
12684
  if (this.getParentPosition(data) === 'FFType3') {
12709
- div = div + direction + (data.childLeft + data.childWidth) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
12710
- ((!this.parent.allowTaskbarOverlap ? childOverlapTopValue : (data.childIndex * data.rowHeight)) + addTop + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
12711
- 'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="FFType3">';
12712
- div = div + duplicateStingOne;
12713
- div = div + eLine;
12714
- div = div + (isMilestone ? (direction + '4px;width:' +
12715
- (((data.parentLeft + data.parentWidth) - (data.childLeft + data.childWidth)) + 16)) :
12716
- (direction + '10px;width:' + (((data.parentLeft + data.parentWidth) -
12717
- (data.childLeft + data.childWidth)) + 10))) + 'px;top:' + (-(6 + (5 + this.lineStroke) +
12718
- (this.lineStroke / 2))) + 'px;' + this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
12719
- div = div + eLine;
12720
- div = div + direction + (((data.parentLeft + data.parentWidth) - (data.childLeft + data.childWidth)) + 20) +
12721
- 'px;top:' + (-(13 + ((this.lineStroke - 1) * 2))) + 'px;' +
12722
- 'width:0px;' + this.getBorderStyles('left', this.lineStroke) +
12723
- this.getBorderStyles('top', (heightValue + borderTopWidth - this.lineStroke + 1)) + 'position:relative;"></div>';
12724
- div = div + eLine;
12725
- div = div + (isMilestoneParent ? (direction + (((data.parentLeft + data.parentWidth) -
12726
- (data.childLeft + data.childWidth)) - 1) + 'px;width:21') : (direction + ((data.parentLeft + data.parentWidth) -
12727
- (data.childLeft + data.childWidth)) + 'px;width:20')) +
12728
- 'px;top:' + (-(13 + ((this.lineStroke - 1) * 2))) + 'px;' +
12729
- 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";
12730
12699
  }
12731
12700
  if (this.getParentPosition(data) === 'FFType4') {
12732
- div = div + direction + (data.parentLeft + data.parentWidth) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
12733
- ((!this.parent.allowTaskbarOverlap ? childOverlapTopValue : (data.childIndex * data.rowHeight)) + addTop + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
12734
- 'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="FFType4">';
12735
- div = div + leftArrow;
12736
- div = div + (direction + ((data.childLeft + data.childWidth) -
12737
- (data.parentLeft + data.parentWidth))) + 'px;' +
12738
- this.getBorderStyles((!this.parent.enableRtl ? 'right' : 'left'), 10) + 'top:' + (-5 - this.lineStroke + (this.lineStroke - 1)) + 'px;' +
12739
- 'border-bottom-width:' + (5 + this.lineStroke) +
12740
- 'px;border-top-width:' + (5 + this.lineStroke) + 'px;width:0;height:0;' +
12741
- 'position:relative;"></div>';
12742
- div = div + eLine;
12743
- div = div + (isMilestone ? (direction + (((data.childLeft + data.childWidth) -
12744
- (data.parentLeft + data.parentWidth)) + 4) +
12745
- 'px;width:' + (16 + this.lineStroke)) : (direction + (((data.childLeft + data.childWidth) -
12746
- (data.parentLeft + data.parentWidth)) + 10) + 'px;width:' + (10 + this.lineStroke))) +
12747
- 'px;' + duplicateStingFive;
12748
- div = div + eLine;
12749
- div = div + direction + (((data.childLeft + data.childWidth) -
12750
- (data.parentLeft + data.parentWidth)) + 20) + 'px;top:' + (-(13 + ((this.lineStroke - 1) * 2))) +
12751
- 'px;width:0px;' + this.getBorderStyles('left', this.lineStroke) +
12752
- this.getBorderStyles('top', (heightValue + borderTopWidth - this.lineStroke + 1)) + 'position:relative;"></div>';
12753
- div = div + eLine;
12754
- div = div + (isMilestoneParent ? (direction + '-1px;width:' + (((data.childLeft + data.childWidth) -
12755
- (data.parentLeft + data.parentWidth)) + (21 + this.lineStroke))) : ('width:' + (((data.childLeft + data.childWidth) -
12756
- (data.parentLeft + data.parentWidth)) + (20 + this.lineStroke)))) + 'px;top:' +
12757
- (-(13 + ((this.lineStroke - 1) * 2))) + 'px;' +
12758
- 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";
12759
12714
  }
12760
12715
  if (this.getParentPosition(data) === 'SFType4') {
12761
- div = div + direction + (data.parentLeft - 10) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
12762
- ((!this.parent.allowTaskbarOverlap ? childOverlapTopValue : (data.childIndex * data.rowHeight)) + addTop + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;width:1px;' +
12763
- 'height:' + heightValue + 'px;position:absolute" data-connectortype="SFType4">';
12764
- div = div + duplicateStingFour + 'top:' + (-5 - this.lineStroke + (this.lineStroke - 1)) + 'px;' +
12765
- 'border-bottom-width:' + (5 + this.lineStroke) +
12766
- 'px;border-top-width:' + (5 + this.lineStroke) + 'px;width:0;height:0;' +
12767
- 'position:relative;"></div>';
12768
- div = div + eLine;
12769
- div = div + direction + (isMilestone ? ((((data.childLeft + data.childWidth) - (data.parentLeft)) + (14 + this.lineStroke)) +
12770
- 'px;width:16') : ((((data.childLeft + data.childWidth) - (data.parentLeft)) + 20) + 'px;width:' +
12771
- (10 + this.lineStroke))) + 'px;' + duplicateStingFive;
12772
- div = div + eLine;
12773
- div = div + direction + (((data.childLeft + data.childWidth) - (data.parentLeft)) + 30) + 'px;top:' +
12774
- (-(13 + ((this.lineStroke - 1) * 2))) + 'px;width:0px;' + this.getBorderStyles('left', this.lineStroke) +
12775
- this.getBorderStyles('top', (heightValue + borderTopWidth - this.getconnectorLineGap(data) - (this.lineStroke - 1))) + 'position:relative;"></div>';
12776
- div = div + eLine;
12777
- div = div + 'top:' + (-(13 + ((this.lineStroke - 1) * 2))) + 'px;width:' +
12778
- (((data.childLeft + data.childWidth) - (data.parentLeft)) + (30 + this.lineStroke)) + 'px;' +
12779
- this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
12780
- div = div + eLine;
12781
- div = div + 'top:' + (-(13 + ((this.lineStroke - 1) * 2))) + 'px;width:0px;' +
12782
- this.getBorderStyles('left', this.lineStroke) +
12783
- this.getBorderStyles('top', (this.getconnectorLineGap(data) - this.lineStroke)) + 'position:relative;"></div>';
12784
- div = div + eLine;
12785
- div = div + 'top:' + (-(13 + ((this.lineStroke - 1) * 2))) + 'px;width:11px;' +
12786
- 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";
12787
12733
  }
12788
12734
  if (this.getParentPosition(data) === 'SFType3') {
12789
- div = div + direction + (data.childLeft + data.childWidth) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
12790
- ((!this.parent.allowTaskbarOverlap ? childOverlapTopValue : (data.childIndex * data.rowHeight)) + addTop + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
12791
- 'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="SFType3">';
12792
- div = div + duplicateStingOne;
12793
- div = div + eLine;
12794
- div = div + (isMilestone ? direction + '4px;width:' + (16 + this.lineStroke) : direction + '10px;width:' +
12795
- (10 + this.lineStroke)) + 'px;top:' + (-(13 + ((this.lineStroke - 1) * 2) - 1)) + 'px;' +
12796
- this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
12797
- div = div + eLine;
12798
- div = div + direction + '20px;top:' + (-(13 + ((this.lineStroke - 1) * 2))) + 'px;width:0px;' +
12799
- this.getBorderStyles('left', this.lineStroke) +
12800
- this.getBorderStyles('top', (heightValue + borderTopWidth - (this.lineStroke - 1))) + 'position:relative;"></div>';
12801
- div = div + eLine;
12802
- div = div + direction + '20px;top:' + (-(13 + ((this.lineStroke - 1) * 2))) + 'px;width:' +
12803
- ((data.parentLeft - (data.childLeft + data.childWidth + 20)) + this.lineStroke) + 'px;' +
12804
- 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";
12805
12750
  }
12806
12751
  if (this.getParentPosition(data) === 'SFType1') {
12807
- div = div + direction + (data.parentLeft - 10) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
12808
- ((!this.parent.allowTaskbarOverlap ? parentOverlapTopValue : (data.parentIndex * data.rowHeight)) + addTop + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
12809
- 'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="SFType1">';
12810
- div = div + eLine;
12811
- div = div + 'width:11px;' + this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
12812
- div = div + eLine;
12813
- div = div + 'width:0px;' + this.getBorderStyles('left', this.lineStroke) +
12814
- this.getBorderStyles('top', (heightValue + borderTopWidth - this.getconnectorLineGap(data) - this.lineStroke)) + 'position:relative;"></div>';
12815
- div = div + eLine;
12816
- div = div + 'width:' + (((data.childLeft + data.childWidth) - (data.parentLeft)) + (30 + this.lineStroke)) + 'px;' +
12817
- this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
12818
- div = div + eLine;
12819
- div = div + direction + (((data.childLeft + data.childWidth) - (data.parentLeft)) + 30) +
12820
- 'px;width:0px;' + this.getBorderStyles('left', this.lineStroke) +
12821
- this.getBorderStyles('top', (this.getconnectorLineGap(data) - this.lineStroke)) + 'position:relative;"></div>';
12822
- div = div + eLine;
12823
- div = div + (isMilestone ? (direction + (((data.childLeft + data.childWidth) -
12824
- (data.parentLeft)) + 15) + 'px;width:' + (15 + this.lineStroke)) : (direction +
12825
- (((data.childLeft + data.childWidth) - (data.parentLeft)) + 20) + 'px;width:' + (10 + this.lineStroke))) + 'px;' +
12826
- this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
12827
- div = div + duplicateStingFour + 'top:' + (-6 - this.lineStroke) + 'px;' +
12828
- 'border-bottom-width:' + (5 + this.lineStroke) + 'px;border-top-width:' +
12829
- (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";
12830
12768
  }
12831
12769
  if (this.getParentPosition(data) === 'SFType2') {
12832
- div = div + direction + (data.childLeft + data.childWidth) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
12833
- ((!this.parent.allowTaskbarOverlap ? parentOverlapTopValue : (data.parentIndex * data.rowHeight)) + addTop + this.getTaskbarMidpoint(isMilestoneParent) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
12834
- 'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="SFType2">';
12835
- div = div + eLine;
12836
- div = div + direction + (((data.parentLeft) - (data.childLeft + data.childWidth)) - 10) +
12837
- 'px;width:11px;' + this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
12838
- div = div + eLine;
12839
- div = div + direction + (((data.parentLeft) - (data.childLeft + data.childWidth)) - 10) +
12840
- 'px;width:0px;' + this.getBorderStyles('left', this.lineStroke) +
12841
- this.getBorderStyles('top', (heightValue + borderTopWidth - this.lineStroke)) + 'position:relative;"></div>';
12842
- div = div + eLine;
12843
- div = div + (isMilestone ? (direction + '4px;width:' + (((data.parentLeft) - (data.childLeft + data.childWidth))
12844
- - (14 - this.lineStroke))) : (direction + '10px;width:' + (((data.parentLeft) -
12845
- (data.childLeft + data.childWidth)) - (20 - this.lineStroke)))) +
12846
- 'px;' + this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
12847
- div = div + leftArrow;
12848
- div = div + direction + '0px;' + this.getBorderStyles((this.parent.enableRtl ? 'right' : 'left'), 10) +
12849
- 'top:' + (-6 - this.lineStroke) + 'px;border-bottom-width:' + (5 + this.lineStroke) +
12850
- 'px;border-top-width:' + (5 + this.lineStroke) + 'px;width:0;height:0;position:relative;"></div></div>';
12851
- }
12852
- connectorContainer += div;
12853
- connectorContainer += '</div>';
12854
- }
12855
- 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;
12856
12787
  };
12857
12788
  /**
12858
12789
  * @param {IConnectorLineObject} data .
@@ -12918,10 +12849,10 @@ var ConnectorLine = /** @__PURE__ @class */ (function () {
12918
12849
  * @private
12919
12850
  */
12920
12851
  ConnectorLine.prototype.getConnectorLineTooltipInnerTd = function (fromTaskName, fromPredecessorText, toTaskName, toPredecessorText) {
12921
- var innerTd = '<tr id="fromPredecessor"><td >' + this.parent.localeObj.getConstant('from') + '</td><td> ';
12922
- innerTd = innerTd + fromTaskName + ' </td><td> ' + this.parent.localeObj.getConstant(fromPredecessorText) + ' </td> </tr>';
12923
- innerTd = innerTd + '<tr id="toPredecessor"><td>' + this.parent.localeObj.getConstant('to') + '</td><td> ' + toTaskName;
12924
- 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>';
12925
12856
  return innerTd;
12926
12857
  };
12927
12858
  /**
@@ -13434,7 +13365,7 @@ var Tooltip$1 = /** @__PURE__ @class */ (function () {
13434
13365
  * @param {IGanttData} ganttData .
13435
13366
  * @param {Gantt} parent .
13436
13367
  * @param {TooltipEventArgs} args .
13437
- * @returns {string} .
13368
+ * @returns {string | Function} .
13438
13369
  */
13439
13370
  Tooltip$$1.prototype.getTooltipContent = function (elementType, ganttData, parent, args) {
13440
13371
  var content$$1;
@@ -13463,11 +13394,14 @@ var Tooltip$1 = /** @__PURE__ @class */ (function () {
13463
13394
  if (this.parent.enableHtmlSanitizer && typeof (sDateValue) === 'string') {
13464
13395
  sDateValue = SanitizeHtmlHelper.sanitize(sDateValue);
13465
13396
  }
13466
- 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>' +
13467
13398
  '<td class = "e-gantt-tooltip-value">' +
13468
13399
  sDateValue + '</td></tr>' : '';
13469
- content$$1 = '<table class = "e-gantt-tooltiptable"><tbody>' +
13470
- 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);
13471
13405
  break;
13472
13406
  }
13473
13407
  case 'taskbar':
@@ -13483,96 +13417,114 @@ var Tooltip$1 = /** @__PURE__ @class */ (function () {
13483
13417
  durationValue = typeof (durationValue) === 'string' ? SanitizeHtmlHelper.sanitize(durationValue) : durationValue;
13484
13418
  progressValue = typeof (progressValue) === 'string' ? SanitizeHtmlHelper.sanitize(progressValue) : progressValue;
13485
13419
  }
13486
- var startDate = data.startDate ? '<tr><td class = "e-gantt-tooltip-label">' +
13420
+ var startDate_1 = data.startDate ? '<tr><td class = "e-gantt-tooltip-label">' +
13487
13421
  this.parent.localeObj.getConstant(scheduledTask ? 'startDate' : 'subTasksStartDate') +
13488
- '</td><td>:</td>' + '<td class = "e-gantt-tooltip-value"> ' + startDateValue + '</td></tr>' : '';
13489
- 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">' +
13490
13424
  this.parent.localeObj.getConstant(scheduledTask ? 'endDate' : 'subTasksEndDate') +
13491
- '</td><td>:</td>' + '<td class = "e-gantt-tooltip-value">' + endDateValue + '</td></tr>' : '';
13492
- var duration = !isNullOrUndefined(data.duration) ? '<tr><td class = "e-gantt-tooltip-label">' +
13493
- 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>' +
13494
13428
  '<td class = "e-gantt-tooltip-value"> ' + durationValue +
13495
13429
  '</td></tr>' : '';
13496
- var progress = !isNullOrUndefined(data.progress) ? '<tr><td class = "e-gantt-tooltip-label">' +
13497
- 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 +
13498
13432
  '</td></tr>' : '';
13499
- content$$1 = '<table class = "e-gantt-tooltiptable"><tbody>' +
13500
- 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);
13501
13438
  break;
13502
13439
  }
13503
13440
  case 'baseline':
13504
13441
  {
13505
- var baselineStartDateValue = this.parent.getFormatedDate(data.baselineStartDate, this.parent.getDateFormat());
13506
- 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());
13507
13444
  if (this.parent.enableHtmlSanitizer) {
13508
- baselineStartDateValue = typeof (baselineStartDateValue) === 'string' ? SanitizeHtmlHelper.sanitize(baselineStartDateValue) : baselineStartDateValue;
13509
- baselineEndDateValue = typeof (baselineEndDateValue) === 'string' ? SanitizeHtmlHelper.sanitize(baselineEndDateValue) : baselineEndDateValue;
13510
- }
13511
- content$$1 = '<table class = "e-gantt-tooltiptable"><tbody>' +
13512
- taskName + '<tr><td class = "e-gantt-tooltip-label">' +
13513
- this.parent.localeObj.getConstant('baselineStartDate') + '</td><td>:</td>' + '<td class = "e-gantt-tooltip-value">' +
13514
- baselineStartDateValue + '</td></tr><tr>' +
13515
- '<td class = "e-gantt-tooltip-label">' + this.parent.localeObj.getConstant('baselineEndDate') +
13516
- '</td><td>:</td><td class = "e-gantt-tooltip-value">' +
13517
- 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);
13518
13458
  break;
13519
13459
  }
13520
13460
  case 'marker':
13521
13461
  {
13522
13462
  var markerTooltipElement = parent.tooltipModule.getMarkerTooltipData(args);
13523
- var markerTooltipElementValue = this.parent.getFormatedDate(this.parent.dateValidationModule.getDateFromFormat(markerTooltipElement.day), this.parent.getDateFormat());
13524
- 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 : '';
13525
13465
  if (this.parent.enableHtmlSanitizer) {
13526
- markerLabel = typeof (markerLabel) === 'string' ? SanitizeHtmlHelper.sanitize(markerLabel) : markerLabel;
13527
- 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;
13528
13468
  }
13529
- content$$1 = '<table class = "e-gantt-tooltiptable"><tbody><tr><td>' +
13530
- 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);
13531
13474
  break;
13532
13475
  }
13533
13476
  case 'connectorLine':
13534
13477
  {
13535
- var fromNameValue = parent.tooltipModule.predecessorTooltipData.fromName;
13536
- var fromIdValue = parent.tooltipModule.predecessorTooltipData.fromId;
13537
- var toNameValue = parent.tooltipModule.predecessorTooltipData.toName;
13538
- var toIdValue = parent.tooltipModule.predecessorTooltipData.toId;
13539
- var linkTextValue = parent.tooltipModule.predecessorTooltipData.linkText;
13540
- 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;
13541
13484
  if (this.parent.enableHtmlSanitizer) {
13542
- fromNameValue = typeof (fromNameValue) === 'string' ? SanitizeHtmlHelper.sanitize(fromNameValue) : fromNameValue;
13543
- fromIdValue = typeof (fromIdValue) === 'string' ? SanitizeHtmlHelper.sanitize(fromIdValue) : fromIdValue;
13544
- toNameValue = typeof (toNameValue) === 'string' ? SanitizeHtmlHelper.sanitize(toNameValue) : toNameValue;
13545
- toIdValue = typeof (toIdValue) === 'string' ? SanitizeHtmlHelper.sanitize(toIdValue) : toIdValue;
13546
- linkTextValue = typeof (linkTextValue) === 'string' ? SanitizeHtmlHelper.sanitize(linkTextValue) : linkTextValue;
13547
- offsetStringValue = typeof (offsetStringValue) === 'string' ? SanitizeHtmlHelper.sanitize(offsetStringValue) : offsetStringValue;
13548
- }
13549
- content$$1 = '<table class = "e-gantt-tooltiptable"><tbody><tr><td class = "e-gantt-tooltip-label">' +
13550
- this.parent.localeObj.getConstant('from') + '</td><td>:</td>' +
13551
- '<td class = "e-gantt-tooltip-value">' + (this.parent.disableHtmlEncode ? fromNameValue.replace(/</g, "&lt;").replace(/>/g, "&gt;") : fromNameValue) + ' (' +
13552
- (this.parent.disableHtmlEncode ? (typeof (fromIdValue) === 'string' ? fromIdValue.replace(/</g, "&lt;").replace(/>/g, "&gt;") : fromIdValue) : fromIdValue) + ')' + '</td></tr><tr><td class = "e-gantt-tooltip-label">' +
13553
- this.parent.localeObj.getConstant('to') + '</td><td>:</td>' + '<td class = "e-gantt-tooltip-value">' +
13554
- (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') +
13555
- '</td><td>:</td><td class = "e-gantt-tooltip-value"> ' + linkTextValue +
13556
- '</td></tr><tr><td class = "e-gantt-tooltip-label">' + this.parent.localeObj.getConstant('lag') +
13557
- '</td><td>:</td><td class = "e-gantt-tooltip-value">' +
13558
- 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);
13559
13505
  break;
13560
13506
  }
13561
13507
  case 'indicator':
13562
13508
  if (args.target.title.length) {
13563
- var titleValue = args.target.title;
13564
- if (this.parent.enableHtmlSanitizer && typeof (titleValue) === 'string') {
13565
- 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);
13566
13512
  }
13567
- 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);
13568
13517
  }
13569
13518
  break;
13570
13519
  case 'timeline':
13571
- var timlineTitleValue = args.target.title;
13572
- if (this.parent.enableHtmlSanitizer && typeof (timlineTitleValue) === 'string') {
13573
- 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);
13574
13523
  }
13575
- 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);
13576
13528
  break;
13577
13529
  case 'manualtaskbar':
13578
13530
  {
@@ -13588,24 +13540,27 @@ var Tooltip$1 = /** @__PURE__ @class */ (function () {
13588
13540
  manualStartDateValue = typeof (manualStartDateValue) === 'string' ? SanitizeHtmlHelper.sanitize(manualStartDateValue) : manualStartDateValue;
13589
13541
  manualEndDateValue = typeof (manualEndDateValue) === 'string' ? SanitizeHtmlHelper.sanitize(manualEndDateValue) : manualEndDateValue;
13590
13542
  }
13591
- var autoStartDate = data.autoStartDate ? '<tr><td class = "e-gantt-tooltip-label">' +
13543
+ var autoStartDate_1 = data.autoStartDate ? '<tr><td class = "e-gantt-tooltip-label">' +
13592
13544
  this.parent.localeObj.getConstant('subTasksStartDate') + '</td><td>:</td>' + '<td class = "e-gantt-tooltip-value"> ' +
13593
13545
  autoStartDateValue + '</td></tr>' : '';
13594
- var autoEndDate = data.autoEndDate ? '<tr><td class = "e-gantt-tooltip-label">' +
13546
+ var autoEndDate_1 = data.autoEndDate ? '<tr><td class = "e-gantt-tooltip-label">' +
13595
13547
  this.parent.localeObj.getConstant('subTasksEndDate') + '</td><td>:</td>' + '<td class = "e-gantt-tooltip-value">' +
13596
13548
  autoEndDateValue + '</td></tr>' : '';
13597
- 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">' +
13598
13550
  this.parent.localeObj.getConstant('duration') + '</td><td>:</td>' +
13599
13551
  '<td class = "e-gantt-tooltip-value"> ' + durationUnitValue +
13600
13552
  '</td></tr>' : '';
13601
- var manualStartDate = data.startDate ? '<tr><td class = "e-gantt-tooltip-label">' +
13553
+ var manualStartDate_1 = data.startDate ? '<tr><td class = "e-gantt-tooltip-label">' +
13602
13554
  this.parent.localeObj.getConstant('startDate') + '</td><td>:</td>' + '<td class = "e-gantt-tooltip-value"> ' +
13603
13555
  manualStartDateValue + '</td></tr>' : '';
13604
- var manualEndDate = data.endDate ? '<tr><td class = "e-gantt-tooltip-label">' +
13556
+ var manualEndDate_1 = data.endDate ? '<tr><td class = "e-gantt-tooltip-label">' +
13605
13557
  this.parent.localeObj.getConstant('endDate') + '</td><td>:</td>' + '<td class = "e-gantt-tooltip-value">' +
13606
13558
  manualEndDateValue + '</td></tr>' : '';
13607
- content$$1 = '<table class = "e-gantt-tooltiptable"><tbody>' +
13608
- 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);
13609
13564
  break;
13610
13565
  }
13611
13566
  case 'manualmilestone':
@@ -13618,17 +13573,20 @@ var Tooltip$1 = /** @__PURE__ @class */ (function () {
13618
13573
  autoEndValue = typeof (autoEndValue) === 'string' ? SanitizeHtmlHelper.sanitize(autoEndValue) : autoEndValue;
13619
13574
  dateValue = typeof (dateValue) === 'string' ? SanitizeHtmlHelper.sanitize(dateValue) : dateValue;
13620
13575
  }
13621
- var autoStart = data.autoStartDate ? '<tr><td class = "e-gantt-tooltip-label">' +
13576
+ var autoStart_1 = data.autoStartDate ? '<tr><td class = "e-gantt-tooltip-label">' +
13622
13577
  this.parent.localeObj.getConstant('subTasksStartDate') + '</td><td>:</td>' + '<td class = "e-gantt-tooltip-value"> ' +
13623
13578
  autoStartValue + '</td></tr>' : '';
13624
- var autoEnd = data.autoEndDate ? '<tr><td class = "e-gantt-tooltip-label">' +
13579
+ var autoEnd_1 = data.autoEndDate ? '<tr><td class = "e-gantt-tooltip-label">' +
13625
13580
  this.parent.localeObj.getConstant('subTasksEndDate') + '</td><td>:</td>' + '<td class = "e-gantt-tooltip-value">' +
13626
13581
  autoEndValue + '</td></tr>' : '';
13627
- 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>' +
13628
13583
  '<td class = "e-gantt-tooltip-value">' +
13629
13584
  dateValue + '</tr>';
13630
- content$$1 = '<table class = "e-gantt-tooltiptable"><tbody>' +
13631
- 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);
13632
13590
  break;
13633
13591
  }
13634
13592
  }
@@ -13654,7 +13612,7 @@ var Tooltip$1 = /** @__PURE__ @class */ (function () {
13654
13612
  * @private
13655
13613
  */
13656
13614
  Tooltip$$1.prototype.getPredecessorTooltipData = function (args) {
13657
- var predeceesorParent = args.target.parentElement.id;
13615
+ var predeceesorParent = args.target.id;
13658
13616
  if (this.parent.enableHtmlSanitizer && typeof (predeceesorParent) === 'string') {
13659
13617
  predeceesorParent = SanitizeHtmlHelper.sanitize(predeceesorParent);
13660
13618
  }
@@ -13687,7 +13645,7 @@ var Tooltip$1 = /** @__PURE__ @class */ (function () {
13687
13645
  /**
13688
13646
  * To compile template string.
13689
13647
  *
13690
- * @param {string} template .
13648
+ * @param {string | Function} template .
13691
13649
  * @param {Gantt} parent .
13692
13650
  * @param {IGanttData|PredecessorTooltip} data .
13693
13651
  * @param {string} propName .
@@ -14766,19 +14724,17 @@ var Gantt = /** @__PURE__ @class */ (function (_super) {
14766
14724
  this.notify('initPredessorDialog', {});
14767
14725
  }
14768
14726
  this.splitterModule.updateSplitterPosition();
14769
- if (this.gridLines === 'Vertical' || this.gridLines === 'Both') {
14770
- this.renderChartVerticalLines();
14771
- }
14727
+ // if (this.gridLines === 'Vertical' || this.gridLines === 'Both') {
14728
+ // this.renderChartVerticalLines();
14729
+ // }
14772
14730
  };
14773
14731
  Gantt.prototype.removeCriticalPathStyles = function () {
14774
14732
  var ganttChartElement = this.ganttChartModule.chartElement;
14775
14733
  removeClass(ganttChartElement.querySelectorAll('.e-gantt-child-taskbar-inner-div'), criticalChildTaskBarInnerDiv);
14776
14734
  removeClass(ganttChartElement.querySelectorAll('.e-gantt-child-progressbar-inner-div'), criticalChildProgressBarInnerDiv);
14777
- removeClass(ganttChartElement.querySelectorAll('.e-milestone-top'), criticalMilestoneTop);
14778
- removeClass(ganttChartElement.querySelectorAll('.e-milestone-bottom'), criticalMilestoneBottom);
14779
- removeClass(this.element.querySelectorAll('.e-line'), criticalConnectorLine);
14780
- removeClass(this.element.querySelectorAll('.e-connector-line-right-arrow'), criticalConnectorLineRightArrow);
14781
- 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);
14782
14738
  };
14783
14739
  Gantt.prototype.wireEvents = function () {
14784
14740
  if (this.allowKeyboard) {
@@ -14790,6 +14746,15 @@ var Gantt = /** @__PURE__ @class */ (function (_super) {
14790
14746
  }
14791
14747
  /* eslint-disable-next-line @typescript-eslint/no-explicit-any */
14792
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
+ }
14793
14758
  };
14794
14759
  /**
14795
14760
  * Method trigger while user perform window resize.
@@ -15893,9 +15858,9 @@ var Gantt = /** @__PURE__ @class */ (function (_super) {
15893
15858
  if (!this.element.contains(this.chartVerticalLineContainer)) {
15894
15859
  this.chartVerticalLineContainer = createElement('div', {
15895
15860
  id: this.element.id + 'line-container',
15896
- styles: 'position:absolute;height:100%;z-index:1'
15861
+ styles: 'position:absolute;height:100%;'
15897
15862
  });
15898
- this.ganttChartModule.chartBodyContent.appendChild(this.chartVerticalLineContainer);
15863
+ this.ganttChartModule.chartBodyContent.insertBefore(this.chartVerticalLineContainer, this.ganttChartModule.chartBodyContent.lastChild);
15899
15864
  }
15900
15865
  this.chartVerticalLineContainer.innerHTML = '';
15901
15866
  var headerTable = this.element.getElementsByClassName('e-timeline-header-table-container')[1];
@@ -16284,9 +16249,6 @@ var Gantt = /** @__PURE__ @class */ (function (_super) {
16284
16249
  this.timelineModule.updateChartByNewTimeline();
16285
16250
  this.ganttChartModule.chartBodyContent.style.width = formatUnit(this.timelineModule.totalTimelineWidth);
16286
16251
  this.ganttChartModule.updateLastRowBottomWidth();
16287
- if (this.gridLines === 'Vertical' || this.gridLines === 'Both') {
16288
- this.renderChartVerticalLines();
16289
- }
16290
16252
  if (this.taskFields.dependency) {
16291
16253
  this.ganttChartModule.reRenderConnectorLines();
16292
16254
  }
@@ -18524,23 +18486,23 @@ var EditTooltip = /** @__PURE__ @class */ (function () {
18524
18486
  var duration = void 0;
18525
18487
  if (!isNullOrUndefined(editRecord.startDate)) {
18526
18488
  startDate = '<tr><td class = "e-gantt-tooltip-label">' + this.parent.localeObj.getConstant('startDate') +
18527
- '</td><td>:</td><td class = "e-gantt-tooltip-value">' +
18489
+ '</td><td style="padding: 2px;">:</td><td class = "e-gantt-tooltip-value">' +
18528
18490
  instance.formatDate(editRecord.startDate, { format: this.parent.getDateFormat() }) + '</td></tr>';
18529
18491
  }
18530
18492
  if (!isNullOrUndefined(editRecord.endDate)) {
18531
18493
  endDate = '<tr><td class = "e-gantt-tooltip-label">' + this.parent.localeObj.getConstant('endDate') +
18532
- '</td><td>:</td><td class = "e-gantt-tooltip-value">' +
18494
+ '</td><td style="padding: 2px;">:</td><td class = "e-gantt-tooltip-value">' +
18533
18495
  instance.formatDate(editRecord.endDate, { format: this.parent.getDateFormat() }) + '</td></tr>';
18534
18496
  }
18535
18497
  if (!isNullOrUndefined(editRecord.duration)) {
18536
18498
  duration = '<tr><td class = "e-gantt-tooltip-label">' + this.parent.localeObj.getConstant('duration') +
18537
- '</td><td>:</td><td class = "e-gantt-tooltip-value">' +
18499
+ '</td><td style="padding: 2px;">:</td><td class = "e-gantt-tooltip-value">' +
18538
18500
  this.parent.getDurationString(editRecord.duration, editRecord.durationUnit) + '</td></tr>';
18539
18501
  }
18540
18502
  switch (this.taskbarEdit.taskBarEditAction) {
18541
18503
  case 'ProgressResizing':
18542
18504
  var progress = '<tr><td class = "e-gantt-tooltip-label">' + this.parent.localeObj.getConstant('progress') +
18543
- '</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>';
18544
18506
  tooltipString = '<table class = "e-gantt-tooltiptable"><tbody>' +
18545
18507
  progress + '</tbody></table>';
18546
18508
  break;
@@ -18824,8 +18786,7 @@ var TaskbarEdit = /** @__PURE__ @class */ (function (_super) {
18824
18786
  || target.classList.contains(manualParentTaskBar)) {
18825
18787
  element = parentsUntil$1(target, manualParentMainContainer);
18826
18788
  }
18827
- else if (target.classList.contains(manualParentMilestoneTop) || target.classList.contains(manualParentMilestoneBottom)
18828
- || target.classList.contains(manualParentMilestone)) {
18789
+ else if (target.classList.contains(manualParentMilestone)) {
18829
18790
  element = parentsUntil$1(target, manualParentMilestone);
18830
18791
  }
18831
18792
  else {
@@ -18841,18 +18802,60 @@ var TaskbarEdit = /** @__PURE__ @class */ (function (_super) {
18841
18802
  if (this.parent.editSettings.allowTaskbarEditing && element) {
18842
18803
  this.showHideTaskBarEditingElements(element, this.taskBarEditElement);
18843
18804
  this.editElement = element;
18844
- this.taskBarEditElement = element;
18845
- var index = this.taskBarEditElement.getAttribute('data-segment-index');
18805
+ this.realTaskbarElement = this.editElement;
18806
+ var index = this.editElement.getAttribute('data-segment-index');
18846
18807
  if (!isNullOrUndefined(index)) {
18847
18808
  this.segmentIndex = Number(index);
18848
18809
  }
18849
18810
  else {
18850
18811
  this.segmentIndex = -1;
18851
18812
  }
18852
- this.taskBarEditRecord = this.parent.ganttChartModule.getRecordByTaskBar(this.taskBarEditElement);
18813
+ this.taskBarEditRecord = this.parent.ganttChartModule.getRecordByTaskBar(this.editElement);
18853
18814
  if (e.type === 'mousedown' || e.type === 'touchstart' || e.type === 'click') {
18854
- this.roundOffDuration = true;
18855
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;
18856
18859
  if ((this.taskBarEditAction === 'ConnectorPointLeftDrag' || this.taskBarEditAction === 'ConnectorPointRightDrag') &&
18857
18860
  isNullOrUndefined(this.parent.taskFields.dependency)) {
18858
18861
  this.taskBarEditAction = null;
@@ -18883,7 +18886,7 @@ var TaskbarEdit = /** @__PURE__ @class */ (function (_super) {
18883
18886
  this.initPublicProp();
18884
18887
  }
18885
18888
  else {
18886
- this.showHideTaskBarEditingElements(element, this.taskBarEditElement);
18889
+ this.showHideTaskBarEditingElements(element, this.editElement);
18887
18890
  }
18888
18891
  }
18889
18892
  };
@@ -18918,9 +18921,10 @@ var TaskbarEdit = /** @__PURE__ @class */ (function (_super) {
18918
18921
  addClass([element.querySelector('.' + taskBarLeftResizer)], [leftResizeGripper]);
18919
18922
  addClass([element.querySelector('.' + taskBarRightResizer)], [rightResizeGripper]);
18920
18923
  if (isShowProgressResizer) {
18921
- var progresElement = !isNullOrUndefined(element.querySelector('.' + childProgressResizer)) ? true : false;
18922
- if (progresElement) {
18923
- addClass([element.querySelector('.' + childProgressResizer)], [progressResizeGripper]);
18924
+ var progressElement = element.querySelector('.' + childProgressResizer);
18925
+ if (!isNullOrUndefined(progressElement)) {
18926
+ addClass([progressElement], [progressResizeGripper]);
18927
+ progressElement.style.top = '3px';
18924
18928
  }
18925
18929
  }
18926
18930
  }
@@ -19001,9 +19005,6 @@ var TaskbarEdit = /** @__PURE__ @class */ (function (_super) {
19001
19005
  }
19002
19006
  else if (mouseDownElement.classList.contains(manualParentTaskBar) ||
19003
19007
  mouseDownElement.classList.contains(manualParentMainContainer) ||
19004
- mouseDownElement.classList.contains(manualParentMilestone) ||
19005
- mouseDownElement.classList.contains(manualParentMilestoneTop) ||
19006
- mouseDownElement.classList.contains(manualParentMilestoneBottom) ||
19007
19008
  mouseDownElement.classList.contains(manualParentMilestone)) {
19008
19009
  action = 'ManualParentDrag';
19009
19010
  }
@@ -19100,6 +19101,21 @@ var TaskbarEdit = /** @__PURE__ @class */ (function (_super) {
19100
19101
  this.dragMouseLeave = false;
19101
19102
  this.isMouseDragCheck();
19102
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
+ }
19103
19119
  var args_1 = {
19104
19120
  cancel: false,
19105
19121
  requestType: 'taskbarediting',
@@ -19206,16 +19222,6 @@ var TaskbarEdit = /** @__PURE__ @class */ (function (_super) {
19206
19222
  merge(_this.taskBarEditRecord.ganttProperties, arg.previousData);
19207
19223
  }
19208
19224
  });
19209
- this.parent.flatData.map(function (data) {
19210
- if ((!isNullOrUndefined(_this.taskBarEditRecord.parentItem)) && data.ganttProperties.taskId === _this.taskBarEditRecord.parentItem.taskId) {
19211
- data.childRecords.map(function (s) {
19212
- if (isNullOrUndefined(s.ganttProperties.startDate) || isNullOrUndefined(s.ganttProperties.endDate) ||
19213
- isNullOrUndefined(s.ganttProperties.duration)) {
19214
- _this.parent.dataOperation.updateGanttData();
19215
- }
19216
- });
19217
- }
19218
- });
19219
19225
  }
19220
19226
  };
19221
19227
  /**
@@ -20021,6 +20027,15 @@ var TaskbarEdit = /** @__PURE__ @class */ (function (_super) {
20021
20027
  * @private
20022
20028
  */
20023
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
+ }
20024
20039
  var item = this.taskBarEditRecord.ganttProperties;
20025
20040
  var position = this.parent.enableRtl ? "right" : "left";
20026
20041
  var segment = !isNullOrUndefined(item.segments) ? item.segments[this.segmentIndex] : null;
@@ -20030,13 +20045,10 @@ var TaskbarEdit = /** @__PURE__ @class */ (function (_super) {
20030
20045
  if (!isNullOrUndefined(segment)) {
20031
20046
  rightResizer = this.parent.isAdaptive ? (segment.width - 2) : (segment.width - 10);
20032
20047
  }
20033
- 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)
20034
20050
  .querySelector('.' + taskBarMainContainer) : this.taskBarEditElement;
20035
20051
  var segmentedTaskBarContainer = this.taskBarEditElement.classList.contains('e-segmented-taskbar');
20036
- var leftLabelContainer$$1 = closest(this.taskBarEditElement, 'tr.' + chartRow)
20037
- .querySelector('.' + leftLabelContainer);
20038
- var rightLabelContainer$$1 = closest(this.taskBarEditElement, 'tr.' + chartRow)
20039
- .querySelector('.' + rightLabelContainer);
20040
20052
  var traceChildProgressBar$$1 = this.taskBarEditElement.querySelector('.' + traceChildProgressBar);
20041
20053
  var traceChildTaskBar$$1 = this.taskBarEditElement.querySelector('.' + traceChildTaskBar);
20042
20054
  var childProgressResizer$$1 = this.taskBarEditElement.querySelector('.' + childProgressResizer);
@@ -20048,34 +20060,45 @@ var TaskbarEdit = /** @__PURE__ @class */ (function (_super) {
20048
20060
  var manualTaskbar = this.taskBarEditElement.querySelector('.' + manualParentTaskBar);
20049
20061
  var manualParentRight = this.taskBarEditElement.querySelector('.' + manualParentRightResizer);
20050
20062
  var manualParentLeft = this.taskBarEditElement.querySelector('.' + manualParentLeftResizer);
20063
+ var resizeLine = this.parent.ganttChartModule.chartBodyContainer.querySelector('.e-taskbar-resize-div');
20051
20064
  if (this.taskBarEditAction !== 'ConnectorPointRightDrag' &&
20052
20065
  this.taskBarEditAction !== 'ConnectorPointLeftDrag') {
20053
20066
  if (this.taskBarEditAction !== 'ParentResizing' && this.taskBarEditAction !== 'ManualParentDrag') {
20054
20067
  if (segmentedTaskBarContainer && !isNullOrUndefined(item.segments)
20055
20068
  && (this.taskBarEditAction === 'RightResizing' || this.segmentIndex !== 0)) {
20069
+ if (!isNullOrUndefined(resizeLine)) {
20070
+ resizeLine.style.width = (segment.width) + "px";
20071
+ }
20056
20072
  this.taskBarEditElement.style.width = (segment.width) + 'px';
20057
20073
  if (this.parent.enableRtl) {
20058
20074
  this.taskBarEditElement.style.right = (segment.left) + 'px';
20059
20075
  }
20060
20076
  else {
20061
20077
  this.taskBarEditElement.style.left = (segment.left) + 'px';
20078
+ if (!isNullOrUndefined(resizeLine)) {
20079
+ resizeLine.style.left = (segment.left + this.editElement.parentElement.offsetLeft) + "px";
20080
+ }
20062
20081
  }
20063
20082
  }
20064
- taskBarMainContainer$$1.style.width = (width) + 'px';
20065
- leftLabelContainer$$1.style.width = (item.left) + 'px';
20066
20083
  taskBarMainContainer$$1.style.setProperty(position, (item.left) + 'px');
20084
+ taskBarMainContainer$$1.style.width = (width) + 'px';
20067
20085
  if (this.parent.viewType === 'ResourceView' && this.parent.allowTaskbarDragAndDrop && this.parent.rowDragAndDropModule &&
20068
20086
  (this.taskBarEditAction === 'ChildDrag' || this.taskBarEditAction === 'MilestoneDrag')) {
20069
20087
  taskBarMainContainer$$1.style.setProperty('top', (this.topValue) + 'px');
20070
20088
  taskBarMainContainer$$1.style.zIndex = '4';
20071
20089
  }
20072
20090
  if (this.taskBarEditAction === 'LeftResizing' && this.segmentIndex === 0) {
20091
+ this.taskBarEditElement.style.setProperty("opacity", '.75');
20073
20092
  var parent_1 = this.taskBarEditElement.parentElement;
20074
20093
  var segmentedTasks = parent_1.getElementsByClassName('e-segmented-taskbar');
20075
20094
  for (var i = 0; i < item.segments.length; i++) {
20076
20095
  var segment_4 = item.segments[i];
20077
20096
  var segmentElement = segmentedTasks[i];
20078
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
+ }
20079
20102
  if (this.parent.enableRtl) {
20080
20103
  segmentElement.style.right = (segment_4.left) + 'px';
20081
20104
  }
@@ -20084,8 +20107,10 @@ var TaskbarEdit = /** @__PURE__ @class */ (function (_super) {
20084
20107
  }
20085
20108
  }
20086
20109
  }
20087
- if (!isNullOrUndefined(rightLabelContainer$$1)) {
20088
- 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');
20089
20114
  }
20090
20115
  }
20091
20116
  if (traceConnectorPointRight) {
@@ -20098,10 +20123,8 @@ var TaskbarEdit = /** @__PURE__ @class */ (function (_super) {
20098
20123
  }
20099
20124
  if (this.taskBarEditAction === 'MilestoneDrag' || item.isMilestone) {
20100
20125
  taskBarMainContainer$$1.style.setProperty(position, (item.left - (width / 2)) + 'px');
20101
- leftLabelContainer$$1.style.width = (item.left - (width / 2)) + 'px';
20102
- if (!isNullOrUndefined(rightLabelContainer$$1)) {
20103
- rightLabelContainer$$1.style.setProperty(position, (item.left + (width / 2)) + 'px');
20104
- }
20126
+ resizeLine.style.left = (item.left - (width / 2)) + 'px';
20127
+ resizeLine.style.width = (width) + "px";
20105
20128
  }
20106
20129
  else if (this.taskBarEditAction === 'ProgressResizing') {
20107
20130
  if (this.segmentIndex === -1) {
@@ -20124,6 +20147,7 @@ var TaskbarEdit = /** @__PURE__ @class */ (function (_super) {
20124
20147
  }
20125
20148
  }
20126
20149
  else if (this.taskBarEditAction === 'RightResizing' && !isNullOrUndefined(traceChildTaskBar$$1)) {
20150
+ resizeLine.style.width = (width) + 'px';
20127
20151
  traceChildTaskBar$$1.style.width = (width) + 'px';
20128
20152
  if (!isNullOrUndefined(traceChildProgressBar$$1)) {
20129
20153
  traceChildProgressBar$$1.style.width = (item.progressWidth) + 'px';
@@ -20134,23 +20158,36 @@ var TaskbarEdit = /** @__PURE__ @class */ (function (_super) {
20134
20158
  }
20135
20159
  }
20136
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';
20137
20164
  if (!isNullOrUndefined(traceParentTaskBar$$1)) {
20138
20165
  traceParentTaskBar$$1.style.width = (width) + 'px';
20166
+ resizeLine.style.width = (item.width) + 'px';
20139
20167
  }
20140
20168
  if (!isNullOrUndefined(traceChildProgressBar$$1)) {
20141
20169
  traceParentProgressBar$$1.style.width = (item.progressWidth) + 'px';
20142
20170
  }
20143
20171
  }
20144
20172
  else if (this.taskBarEditAction === 'ParentResizing') {
20173
+ resizeLine.style.width = (item.width) + 'px';
20174
+ resizeLine.style.left = item.left + 'px';
20145
20175
  manualParentTaskbar.style.width = manualTaskbar.style.width = (item.width) + 'px';
20146
20176
  manualParentRight.style.setProperty(position, item.width - manualParentLeft.offsetLeft + 'px');
20147
20177
  }
20148
20178
  else if (this.taskBarEditAction === 'ManualParentDrag') {
20179
+ resizeLine.style.width = (item.width) + 'px';
20180
+ resizeLine.style.left = item.left + 'px';
20149
20181
  manualParentTaskbar.style.setProperty(position, item.left - item.autoLeft + 'px');
20150
20182
  }
20151
20183
  else {
20152
20184
  if (!isNullOrUndefined(traceChildTaskBar$$1) && !segmentedTaskBarContainer) {
20153
- 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";
20154
20191
  }
20155
20192
  if (!isNullOrUndefined(traceChildProgressBar$$1)) {
20156
20193
  taskBarRightResizer$$1.style.setProperty(position, rightResizer + 'px');
@@ -20546,21 +20583,21 @@ var TaskbarEdit = /** @__PURE__ @class */ (function (_super) {
20546
20583
  if ((this.parent.virtualScrollModule && this.parent.enableVirtualization &&
20547
20584
  !this.elementOffsetLeft) || !this.parent.enableVirtualization) {
20548
20585
  if (!this.parent.allowParentDependency) {
20549
- this.elementOffsetLeft = this.taskBarEditElement.offsetLeft;
20550
- this.elementOffsetTop = this.taskBarEditElement.offsetTop + scrollTop;
20586
+ this.elementOffsetLeft = this.realTaskbarElement.offsetLeft;
20587
+ this.elementOffsetTop = this.realTaskbarElement.parentElement.offsetTop + this.realTaskbarElement.offsetHeight / 3 + scrollTop;
20551
20588
  }
20552
20589
  else {
20553
20590
  if (this.taskBarEditElement.children[0].classList.contains('e-manualparent-main-container')) {
20554
- this.elementOffsetLeft = this.taskBarEditElement.children[0]['offsetLeft'] + this.taskBarEditElement.offsetLeft;
20555
- 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;
20556
20593
  }
20557
20594
  else {
20558
- this.elementOffsetLeft = this.taskBarEditElement.offsetLeft;
20559
- this.elementOffsetTop = this.taskBarEditElement.offsetTop + scrollTop;
20595
+ this.elementOffsetLeft = this.realTaskbarElement.offsetLeft;
20596
+ this.elementOffsetTop = this.realTaskbarElement.parentElement.offsetTop + this.realTaskbarElement.offsetHeight / 3 + scrollTop;
20560
20597
  }
20561
20598
  }
20562
- this.elementOffsetWidth = this.taskBarEditElement.offsetWidth;
20563
- this.elementOffsetHeight = this.taskBarEditElement.offsetHeight;
20599
+ this.elementOffsetWidth = this.realTaskbarElement.offsetWidth;
20600
+ this.elementOffsetHeight = this.realTaskbarElement.offsetHeight;
20564
20601
  }
20565
20602
  this.showHideTaskBarEditingElements(element, this.highlightedSecondElement, true);
20566
20603
  }
@@ -23115,10 +23152,11 @@ var ConnectorLineEdit = /** @__PURE__ @class */ (function () {
23115
23152
  * @private
23116
23153
  */
23117
23154
  ConnectorLineEdit.prototype.getConnectorLineHoverElement = function (target) {
23118
- var isOnLine = parentsUntil$1(target, connectorLine);
23119
- var isOnRightArrow = parentsUntil$1(target, connectorLineRightArrow);
23120
- var isOnLeftArrow = parentsUntil$1(target, connectorLineLeftArrow);
23121
- 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) {
23122
23160
  return parentsUntil$1(target, connectorLineContainer);
23123
23161
  }
23124
23162
  else {
@@ -23152,16 +23190,13 @@ var ConnectorLineEdit = /** @__PURE__ @class */ (function () {
23152
23190
  */
23153
23191
  ConnectorLineEdit.prototype.addHighlight = function (element) {
23154
23192
  this.connectorLineElement = element;
23155
- addClass([element], [connectorLineHoverZIndex]);
23156
- if (element.querySelectorAll('.' + connectorLine)[0].classList.contains('e-criticalconnector-line')) {
23157
- addClass(element.querySelectorAll('.' + connectorLine), [criticalConnectorLineHover]);
23158
- addClass(element.querySelectorAll('.' + connectorLineRightArrow), [criticalConnectorLineRightArrowHover]);
23159
- 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');
23160
23197
  }
23161
23198
  else {
23162
- addClass(element.querySelectorAll('.' + connectorLine), [connectorLineHover]);
23163
- addClass(element.querySelectorAll('.' + connectorLineRightArrow), [connectorLineRightArrowHover]);
23164
- addClass(element.querySelectorAll('.' + connectorLineLeftArrow), [connectorLineLeftArrowHover]);
23199
+ criticalElement.setAttribute('stroke-width', '2');
23165
23200
  }
23166
23201
  };
23167
23202
  /**
@@ -23171,17 +23206,14 @@ var ConnectorLineEdit = /** @__PURE__ @class */ (function () {
23171
23206
  * @private
23172
23207
  */
23173
23208
  ConnectorLineEdit.prototype.removeHighlight = function () {
23174
- if (!isNullOrUndefined(this.connectorLineElement)) {
23175
- removeClass([this.connectorLineElement], [connectorLineHoverZIndex]);
23176
- if (this.connectorLineElement.querySelectorAll('.' + connectorLine)[0].classList.contains(criticalConnectorLineHover)) {
23177
- removeClass(this.connectorLineElement.querySelectorAll('.' + connectorLine), [criticalConnectorLineHover]);
23178
- removeClass(this.connectorLineElement.querySelectorAll('.' + connectorLineRightArrow), [criticalConnectorLineRightArrowHover]);
23179
- 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');
23180
23214
  }
23181
23215
  else {
23182
- removeClass(this.connectorLineElement.querySelectorAll('.' + connectorLine), [connectorLineHover]);
23183
- removeClass(this.connectorLineElement.querySelectorAll('.' + connectorLineRightArrow), [connectorLineRightArrowHover]);
23184
- removeClass(this.connectorLineElement.querySelectorAll('.' + connectorLineLeftArrow), [connectorLineLeftArrowHover]);
23216
+ criticalElement.setAttribute('stroke-width', '1');
23185
23217
  }
23186
23218
  this.connectorLineElement = null;
23187
23219
  }
@@ -23248,8 +23280,8 @@ var ConnectorLineEdit = /** @__PURE__ @class */ (function () {
23248
23280
  this.parent.connectorLineModule.expandedRecords = this.parent.virtualScrollModule && this.parent.enableVirtualization ?
23249
23281
  this.parent.updatedRecords : this.parent.getExpandedRecords(this.parent.updatedRecords);
23250
23282
  var editedConnectorLineString = this.getEditedConnectorLineString(editedRecord);
23251
- this.parent.connectorLineModule.dependencyViewContainer.innerHTML =
23252
- this.parent.connectorLineModule.dependencyViewContainer.innerHTML + editedConnectorLineString;
23283
+ this.parent.connectorLineModule.svgObject.innerHTML =
23284
+ this.parent.connectorLineModule.svgObject.innerHTML + editedConnectorLineString;
23253
23285
  };
23254
23286
  ConnectorLineEdit.prototype.idFromPredecessor = function (pre) {
23255
23287
  var preArray = pre.split(',');
@@ -23895,9 +23927,9 @@ var ConnectorLineEdit = /** @__PURE__ @class */ (function () {
23895
23927
  ConnectorLineEdit.prototype.validateTypes = function (ganttRecord, data) {
23896
23928
  var predecessor = this.parent.predecessorModule.getValidPredecessor(ganttRecord);
23897
23929
  var parentGanttRecord;
23898
- var ganttTaskData;
23899
23930
  this.validationPredecessor = [];
23900
23931
  var violatedParent;
23932
+ var ganttTaskData;
23901
23933
  var violateType;
23902
23934
  var startDate = this.parent.predecessorModule.getPredecessorDate(ganttRecord, predecessor);
23903
23935
  if (data) {
@@ -24973,6 +25005,10 @@ var Edit$2 = /** @__PURE__ @class */ (function () {
24973
25005
  if (data.hasChildRecords && ganttProp.isAutoSchedule) {
24974
25006
  this.parent.setRecordValue('startDate', ganttProp.autoStartDate, ganttProp, true);
24975
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);
24976
25012
  this.parent.setRecordValue('width', this.parent.dataOperation.calculateWidth(data, true), ganttProp, true);
24977
25013
  this.parent.setRecordValue('left', this.parent.dataOperation.calculateLeft(ganttProp, true), ganttProp, true);
24978
25014
  this.parent.setRecordValue('progressWidth', this.parent.dataOperation.getProgressWidth(ganttProp.width, ganttProp.progress), ganttProp, true);
@@ -24981,8 +25017,8 @@ var Edit$2 = /** @__PURE__ @class */ (function () {
24981
25017
  else if (data.hasChildRecords && !ganttProp.isAutoSchedule) {
24982
25018
  this.parent.dataOperation.updateWidthLeft(data);
24983
25019
  this.parent.dataOperation.calculateDuration(data);
24984
- this.parent.setRecordValue('autoStartDate', ganttProp.startDate, ganttProp, true);
24985
- 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);
24986
25022
  this.parent.setRecordValue('autoDuration', this.parent.dataOperation.calculateAutoDuration(data), ganttProp, true);
24987
25023
  this.parent.dataOperation.updateAutoWidthLeft(data);
24988
25024
  }
@@ -25207,7 +25243,6 @@ var Edit$2 = /** @__PURE__ @class */ (function () {
25207
25243
  }
25208
25244
  if (childRecords.length) {
25209
25245
  this.parent.dataOperation.updateParentItems(ganttRecord, true);
25210
- this.parent.dataOperation.updateGanttData();
25211
25246
  }
25212
25247
  };
25213
25248
  /**
@@ -25420,8 +25455,8 @@ var Edit$2 = /** @__PURE__ @class */ (function () {
25420
25455
  }
25421
25456
  }
25422
25457
  if (this.parent.isConnectorLineUpdate && !isNullOrUndefined(this.parent.connectorLineEditModule)) {
25423
- this.parent.updatedConnectorLineCollection = [];
25424
- this.parent.connectorLineIds = [];
25458
+ // this.parent.updatedConnectorLineCollection = [];
25459
+ // this.parent.connectorLineIds = [];
25425
25460
  this.parent.connectorLineEditModule.refreshEditedRecordConnectorLine(this.parent.editedRecords);
25426
25461
  this.updateScheduleDatesOnEditing(args);
25427
25462
  }
@@ -26950,7 +26985,6 @@ var Edit$2 = /** @__PURE__ @class */ (function () {
26950
26985
  var args = {};
26951
26986
  args = this.constructTaskAddedEventArgs(cAddedRecord_1, this.parent.editedRecords, 'beforeAdd');
26952
26987
  this.parent.trigger('actionBegin', args, function (args) {
26953
- _this.parent.previousRecords = {};
26954
26988
  if (!isNullOrUndefined(_this.parent.loadingIndicator) && _this.parent.loadingIndicator.indicatorType === "Shimmer") {
26955
26989
  _this.parent.showMaskRow();
26956
26990
  }
@@ -29516,7 +29550,7 @@ var NonWorkingDay = /** @__PURE__ @class */ (function () {
29516
29550
  this.nonworkingContainer = createElement('div', {
29517
29551
  className: nonworkingContainer
29518
29552
  });
29519
- this.parent.ganttChartModule.chartBodyContent.appendChild(this.nonworkingContainer);
29553
+ this.parent.ganttChartModule.chartBodyContent.insertBefore(this.nonworkingContainer, this.parent.ganttChartModule.chartBodyContent.lastChild);
29520
29554
  }
29521
29555
  };
29522
29556
  /**
@@ -29665,7 +29699,7 @@ var NonWorkingDay = /** @__PURE__ @class */ (function () {
29665
29699
  };
29666
29700
  NonWorkingDay.prototype.updateHolidayLabelHeight = function () {
29667
29701
  var height = this.parent.getContentHeight();
29668
- var gantttable = this.parent.element;
29702
+ var gantttable = document.getElementById("ganttContainer");
29669
29703
  // eslint-disable-next-line
29670
29704
  var toolbarHeight = 0;
29671
29705
  if (!isNullOrUndefined(this.parent.toolbarModule) && !isNullOrUndefined(this.parent.toolbarModule.element)) {
@@ -29855,9 +29889,12 @@ var DayMarkers = /** @__PURE__ @class */ (function () {
29855
29889
  }
29856
29890
  };
29857
29891
  DayMarkers.prototype.refreshMarkers = function () {
29858
- this.eventMarkerRender.renderEventMarkers();
29859
29892
  this.nonworkingDayRender.renderWeekends();
29860
29893
  this.nonworkingDayRender.renderHolidays();
29894
+ if (this.parent.gridLines === 'Vertical' || this.parent.gridLines === 'Both') {
29895
+ this.parent['renderChartVerticalLines']();
29896
+ }
29897
+ this.eventMarkerRender.renderEventMarkers();
29861
29898
  };
29862
29899
  DayMarkers.prototype.updateHeight = function () {
29863
29900
  this.nonworkingDayRender.updateContainerHeight();
@@ -30624,11 +30661,8 @@ var CriticalPath = /** @__PURE__ @class */ (function () {
30624
30661
  }
30625
30662
  if (element && (this_2.parent.viewType === 'ProjectView' || (this_2.parent.viewType === 'ResourceView' &&
30626
30663
  !criticalData.hasChildRecords))) {
30627
- if (element.getElementsByClassName('e-milestone-top')[0]) {
30628
- addClass(element.querySelectorAll('.e-milestone-top'), criticalMilestoneTop);
30629
- }
30630
- if (element.getElementsByClassName('e-milestone-bottom')[0]) {
30631
- addClass(element.querySelectorAll('.e-milestone-bottom'), criticalMilestoneBottom);
30664
+ if (element.getElementsByClassName('e-gantt-milestone')[0]) {
30665
+ addClass(element.querySelectorAll('.e-gantt-milestone'), criticalMilestone);
30632
30666
  }
30633
30667
  if (element.getElementsByClassName('e-gantt-child-taskbar-inner-div').length > 0) {
30634
30668
  addClass(element.querySelectorAll('.e-gantt-child-taskbar-inner-div'), criticalChildTaskBarInnerDiv);
@@ -30668,11 +30702,9 @@ var CriticalPath = /** @__PURE__ @class */ (function () {
30668
30702
  currentdata['taskid'] + 'child' + checkint);
30669
30703
  if (lineElement.length > 0) {
30670
30704
  addClass(this.parent.element.querySelectorAll('#ConnectorLineparent' + currentdata['taskid'] + 'child' +
30671
- checkint)[0].querySelectorAll('.e-line'), criticalConnectorLine);
30672
- addClass(this.parent.element.querySelectorAll('#ConnectorLineparent' + currentdata['taskid'] + 'child' +
30673
- checkint)[0].querySelectorAll('.e-connector-line-right-arrow'), criticalConnectorLineRightArrow);
30705
+ checkint)[0].querySelectorAll('.e-connector-line'), criticalConnectorLineSVG);
30674
30706
  addClass(this.parent.element.querySelectorAll('#ConnectorLineparent' + currentdata['taskid'] + 'child' +
30675
- checkint)[0].querySelectorAll('.e-connector-line-left-arrow'), criticalConnectorLineLeftArrow);
30707
+ checkint)[0].querySelectorAll('.e-connector-line-arrow'), criticalConnectorArrowSVG);
30676
30708
  }
30677
30709
  }
30678
30710
  }
@@ -30975,7 +31007,7 @@ var ContextMenu$2 = /** @__PURE__ @class */ (function () {
30975
31007
  splitTaskDuration = Math.ceil(currentTaskDifference / this.parent.timelineSettings.timelineUnitSize);
30976
31008
  splitTaskDuration -= 1;
30977
31009
  }
30978
- 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);
30979
31011
  return contextMenuClickDate;
30980
31012
  };
30981
31013
  ContextMenu$$1.prototype.contextMenuBeforeOpen = function (args) {
@@ -30985,7 +31017,7 @@ var ContextMenu$2 = /** @__PURE__ @class */ (function () {
30985
31017
  this.parent.ganttChartModule.targetElement;
30986
31018
  // Closed edited cell before opening context menu
30987
31019
  // eslint-disable-next-line
30988
- 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')) {
30989
31021
  this.parent.treeGrid.closeEdit();
30990
31022
  }
30991
31023
  if (!isNullOrUndefined(args.element) && args.element.id === this.parent.element.id + '_contextmenu') {
@@ -34927,6 +34959,7 @@ var ExportHelper = /** @__PURE__ @class */ (function () {
34927
34959
  predecessor.type = data.type;
34928
34960
  predecessor.milestoneParent = data.milestoneParent;
34929
34961
  predecessor.milestoneChild = data.milestoneChild;
34962
+ predecessor.parentEndPoint = data.parentEndPoint;
34930
34963
  predecessor.lineWidth = _this.parent.connectorLineWidth > 5 ? pixelToPoint(5) : pixelToPoint(_this.parent.connectorLineWidth);
34931
34964
  if (data.isCritical) {
34932
34965
  predecessor.connectorLineColor = _this.ganttStyle.criticalConnectorLineColor;
@@ -35940,22 +35973,11 @@ var PdfGanttPredecessor = /** @__PURE__ @class */ (function () {
35940
35973
  PdfGanttPredecessor.prototype.add = function () {
35941
35974
  return new PdfGanttPredecessor(this.parent);
35942
35975
  };
35943
- PdfGanttPredecessor.prototype.findindex = function (num, pdfExportProperties) {
35976
+ PdfGanttPredecessor.prototype.findindex = function (num) {
35944
35977
  var dataindex;
35945
- if (pdfExportProperties.exportType === 'CurrentViewData') {
35946
- this.parent.currentViewData.map(function (data, index) {
35947
- if (data.index == num) {
35948
- dataindex = index;
35949
- }
35950
- });
35951
- }
35952
- else {
35953
- this.parent.flatData.map(function (data, index) {
35954
- if (data.index == num) {
35955
- dataindex = index;
35956
- }
35957
- });
35958
- }
35978
+ this.parent.currentViewData.map(function (data, index) { if (data.index == num) {
35979
+ dataindex = index;
35980
+ } });
35959
35981
  return dataindex;
35960
35982
  };
35961
35983
  /**
@@ -35965,11 +35987,11 @@ var PdfGanttPredecessor = /** @__PURE__ @class */ (function () {
35965
35987
  * @returns {void}
35966
35988
  * @private
35967
35989
  */
35968
- PdfGanttPredecessor.prototype.drawPredecessor = function (pdfGantt, pdfExportProperties) {
35990
+ PdfGanttPredecessor.prototype.drawPredecessor = function (pdfGantt) {
35969
35991
  this.pdfGantt = pdfGantt;
35970
35992
  var pages = pdfGantt.result.page.section.getPages();
35971
- var parentTask = pdfGantt.taskbarCollection[this.findindex(this.parentIndex, pdfExportProperties)];
35972
- 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)];
35973
35995
  var startPage = new PdfPage();
35974
35996
  var endPage = new PdfPage();
35975
35997
  var predecessorType = '';
@@ -35979,7 +36001,7 @@ var PdfGanttPredecessor = /** @__PURE__ @class */ (function () {
35979
36001
  var childY = 0;
35980
36002
  switch (this.type) {
35981
36003
  case 'FS':
35982
- if ((!isNullOrUndefined(childTask) && childTask.startPage > -1) && (!isNullOrUndefined(parentTask) && parentTask.endPage > -1)) {
36004
+ if (childTask.startPage > -1 && parentTask.endPage > -1) {
35983
36005
  startPage = pages[parentTask.endPage];
35984
36006
  endPage = pages[childTask.startPage];
35985
36007
  parentPageData = pdfGantt.pdfPageDetail[parentTask.endPage - pdfGantt.chartPageIndex];
@@ -36006,7 +36028,7 @@ var PdfGanttPredecessor = /** @__PURE__ @class */ (function () {
36006
36028
  }
36007
36029
  break;
36008
36030
  case 'SF':
36009
- if ((!isNullOrUndefined(childTask) && childTask.endPage > -1) && (!isNullOrUndefined(parentTask) && parentTask.startPage > -1)) {
36031
+ if (childTask.endPage > -1 && parentTask.startPage > -1) {
36010
36032
  startPage = pages[parentTask.startPage];
36011
36033
  endPage = pages[childTask.endPage];
36012
36034
  parentPageData = pdfGantt.pdfPageDetail[parentTask.endPage - pdfGantt.chartPageIndex];
@@ -36033,7 +36055,7 @@ var PdfGanttPredecessor = /** @__PURE__ @class */ (function () {
36033
36055
  }
36034
36056
  break;
36035
36057
  case 'FF':
36036
- if ((!isNullOrUndefined(childTask) && childTask.endPage > -1) && (!isNullOrUndefined(parentTask) && parentTask.endPage > -1)) {
36058
+ if (childTask.endPage > -1 && parentTask.endPage > -1) {
36037
36059
  startPage = pages[parentTask.endPage];
36038
36060
  endPage = pages[childTask.endPage];
36039
36061
  parentPageData = pdfGantt.pdfPageDetail[parentTask.endPage - pdfGantt.chartPageIndex];
@@ -36060,7 +36082,7 @@ var PdfGanttPredecessor = /** @__PURE__ @class */ (function () {
36060
36082
  }
36061
36083
  break;
36062
36084
  case 'SS':
36063
- if ((!isNullOrUndefined(childTask) && childTask.startPage > -1) && (!isNullOrUndefined(parentTask) && parentTask.startPage > -1)) {
36085
+ if (childTask.startPage > -1 && parentTask.startPage > -1) {
36064
36086
  startPage = pages[parentTask.startPage];
36065
36087
  endPage = pages[childTask.startPage];
36066
36088
  parentPageData = pdfGantt.pdfPageDetail[parentTask.startPage - pdfGantt.chartPageIndex];
@@ -36418,12 +36440,12 @@ var PdfGantt = /** @__PURE__ @class */ (function (_super) {
36418
36440
  enumerable: true,
36419
36441
  configurable: true
36420
36442
  });
36421
- PdfGantt.prototype.drawChart = function (result, pdfExportProperties) {
36443
+ PdfGantt.prototype.drawChart = function (result) {
36422
36444
  this.result = result;
36423
36445
  this.totalPages = this.result.page.section.count;
36424
36446
  this.perColumnPages = this.totalPages / this.layouter.columnRanges.length;
36425
36447
  this.calculateRange();
36426
- this.drawGantttChart(pdfExportProperties);
36448
+ this.drawGantttChart();
36427
36449
  this.drawPageBorder();
36428
36450
  };
36429
36451
  //Calcualte the header range for each pdf page based on schedule start and end date.
@@ -36572,7 +36594,7 @@ var PdfGantt = /** @__PURE__ @class */ (function (_super) {
36572
36594
  }
36573
36595
  };
36574
36596
  //Draw the gantt chart side
36575
- PdfGantt.prototype.drawGantttChart = function (pdfExportProperties) {
36597
+ PdfGantt.prototype.drawGantttChart = function () {
36576
36598
  var _this = this;
36577
36599
  var taskbarPoint = this.startPoint;
36578
36600
  var pagePoint = new PointF();
@@ -36647,7 +36669,7 @@ var PdfGantt = /** @__PURE__ @class */ (function (_super) {
36647
36669
  // Draw predecessor line.
36648
36670
  for (var i = 0; i < this.predecessorCollection.length; i++) {
36649
36671
  var predecessor = this.predecessorCollection[i];
36650
- predecessor.drawPredecessor(this, pdfExportProperties);
36672
+ predecessor.drawPredecessor(this);
36651
36673
  }
36652
36674
  };
36653
36675
  return PdfGantt;
@@ -36764,7 +36786,7 @@ var PdfExport = /** @__PURE__ @class */ (function () {
36764
36786
  var format = new PdfTreeGridLayoutFormat();
36765
36787
  format.break = PdfLayoutBreakType.FitElement;
36766
36788
  var layouter = _this.gantt.drawGrid(pdfPage, 0, 0, format);
36767
- _this.gantt.drawChart(layouter, pdfExportProperties);
36789
+ _this.gantt.drawChart(layouter);
36768
36790
  if (!isMultipleExport) {
36769
36791
  if (!_this.isBlob) {
36770
36792
  // save the PDF