@syncfusion/ej2-gantt 19.4.55 → 20.1.47-1460716

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 (212) hide show
  1. package/CHANGELOG.md +1072 -1047
  2. package/README.md +75 -75
  3. package/dist/ej2-gantt.umd.min.js +1 -10
  4. package/dist/ej2-gantt.umd.min.js.map +1 -1
  5. package/dist/es6/ej2-gantt.es2015.js +341 -240
  6. package/dist/es6/ej2-gantt.es2015.js.map +1 -1
  7. package/dist/es6/ej2-gantt.es5.js +713 -598
  8. package/dist/es6/ej2-gantt.es5.js.map +1 -1
  9. package/dist/global/ej2-gantt.min.js +1 -10
  10. package/dist/global/ej2-gantt.min.js.map +1 -1
  11. package/dist/global/index.d.ts +0 -9
  12. package/dist/ts/components.ts +4 -0
  13. package/dist/ts/gantt/actions/actions.ts +18 -0
  14. package/dist/ts/gantt/actions/cell-edit.ts +606 -0
  15. package/dist/ts/gantt/actions/chart-scroll.ts +167 -0
  16. package/dist/ts/gantt/actions/column-menu.ts +35 -0
  17. package/dist/ts/gantt/actions/column-reorder.ts +52 -0
  18. package/dist/ts/gantt/actions/column-resize.ts +52 -0
  19. package/dist/ts/gantt/actions/connector-line-edit.ts +829 -0
  20. package/dist/ts/gantt/actions/context-menu.ts +754 -0
  21. package/dist/ts/gantt/actions/day-markers.ts +80 -0
  22. package/dist/ts/gantt/actions/dependency.ts +692 -0
  23. package/dist/ts/gantt/actions/dialog-edit.ts +2208 -0
  24. package/dist/ts/gantt/actions/edit.ts +3499 -0
  25. package/dist/ts/gantt/actions/excel-export.ts +61 -0
  26. package/dist/ts/gantt/actions/filter.ts +302 -0
  27. package/dist/ts/gantt/actions/keyboard.ts +306 -0
  28. package/dist/ts/gantt/actions/pdf-export.ts +214 -0
  29. package/dist/ts/gantt/actions/rowdragdrop.ts +839 -0
  30. package/dist/ts/gantt/actions/selection.ts +536 -0
  31. package/dist/ts/gantt/actions/sort.ts +98 -0
  32. package/dist/ts/gantt/actions/taskbar-edit.ts +1940 -0
  33. package/dist/ts/gantt/actions/toolbar.ts +489 -0
  34. package/dist/ts/gantt/actions/virtual-scroll.ts +60 -0
  35. package/dist/ts/gantt/base/common.ts +9 -0
  36. package/dist/ts/gantt/base/constant.ts +13 -0
  37. package/dist/ts/gantt/base/css-constants.ts +148 -0
  38. package/dist/ts/gantt/base/date-processor.ts +1257 -0
  39. package/dist/ts/gantt/base/enum.ts +372 -0
  40. package/dist/ts/gantt/base/gantt-chart.ts +1248 -0
  41. package/dist/ts/gantt/base/gantt.ts +4069 -0
  42. package/dist/ts/gantt/base/interface.ts +955 -0
  43. package/dist/ts/gantt/base/splitter.ts +174 -0
  44. package/dist/ts/gantt/base/task-processor.ts +2217 -0
  45. package/dist/ts/gantt/base/tree-grid.ts +694 -0
  46. package/dist/ts/gantt/base/utils.ts +208 -0
  47. package/dist/ts/gantt/export/export-helper.ts +552 -0
  48. package/dist/ts/gantt/export/pdf-base/dictionary.ts +152 -0
  49. package/dist/ts/gantt/export/pdf-base/pdf-borders.ts +277 -0
  50. package/dist/ts/gantt/export/pdf-base/pdf-grid-table.ts +901 -0
  51. package/dist/ts/gantt/export/pdf-base/pdf-style/gantt-theme.ts +131 -0
  52. package/dist/ts/gantt/export/pdf-base/pdf-style/style.ts +91 -0
  53. package/dist/ts/gantt/export/pdf-base/treegrid-layouter.ts +414 -0
  54. package/dist/ts/gantt/export/pdf-connector-line.ts +422 -0
  55. package/dist/ts/gantt/export/pdf-gantt.ts +282 -0
  56. package/dist/ts/gantt/export/pdf-taskbar.ts +395 -0
  57. package/dist/ts/gantt/export/pdf-timeline.ts +202 -0
  58. package/dist/ts/gantt/export/pdf-treegrid.ts +406 -0
  59. package/dist/ts/gantt/models/add-dialog-field-settings.ts +33 -0
  60. package/dist/ts/gantt/models/column.ts +464 -0
  61. package/dist/ts/gantt/models/day-working-time.ts +22 -0
  62. package/dist/ts/gantt/models/edit-dialog-field-settings.ts +33 -0
  63. package/dist/ts/gantt/models/edit-settings.ts +79 -0
  64. package/dist/ts/gantt/models/event-marker.ts +27 -0
  65. package/dist/ts/gantt/models/filter-settings.ts +53 -0
  66. package/dist/ts/gantt/models/holiday.ts +34 -0
  67. package/dist/ts/gantt/models/label-settings.ts +30 -0
  68. package/dist/ts/gantt/models/models.ts +36 -0
  69. package/dist/ts/gantt/models/resource-fields.ts +38 -0
  70. package/dist/ts/gantt/models/search-settings.ts +77 -0
  71. package/dist/ts/gantt/models/selection-settings.ts +56 -0
  72. package/dist/ts/gantt/models/sort-settings.ts +50 -0
  73. package/dist/ts/gantt/models/splitter-settings.ts +47 -0
  74. package/dist/ts/gantt/models/task-fields.ts +171 -0
  75. package/dist/ts/gantt/models/timeline-settings.ts +112 -0
  76. package/dist/ts/gantt/models/tooltip-settings.ts +46 -0
  77. package/dist/ts/gantt/renderer/chart-rows.ts +1838 -0
  78. package/dist/ts/gantt/renderer/connector-line.ts +1025 -0
  79. package/dist/ts/gantt/renderer/edit-tooltip.ts +228 -0
  80. package/dist/ts/gantt/renderer/event-marker.ts +96 -0
  81. package/dist/ts/gantt/renderer/nonworking-day.ts +205 -0
  82. package/dist/ts/gantt/renderer/render.ts +5 -0
  83. package/dist/ts/gantt/renderer/timeline.ts +1397 -0
  84. package/dist/ts/gantt/renderer/tooltip.ts +450 -0
  85. package/dist/ts/gantt/renderer/virtual-content-render.ts +50 -0
  86. package/license +9 -9
  87. package/package.json +80 -80
  88. package/src/gantt/actions/cell-edit.js +2 -1
  89. package/src/gantt/actions/dialog-edit.js +2 -1
  90. package/src/gantt/actions/edit.js +36 -9
  91. package/src/gantt/actions/rowdragdrop.js +37 -15
  92. package/src/gantt/actions/selection.js +3 -2
  93. package/src/gantt/actions/taskbar-edit.js +24 -24
  94. package/src/gantt/base/date-processor.js +0 -1
  95. package/src/gantt/base/gantt-chart.js +36 -5
  96. package/src/gantt/base/gantt-model.d.ts +779 -779
  97. package/src/gantt/base/gantt.d.ts +27 -27
  98. package/src/gantt/base/gantt.js +35 -76
  99. package/src/gantt/base/splitter.js +1 -0
  100. package/src/gantt/base/task-processor.js +13 -13
  101. package/src/gantt/base/tree-grid.js +3 -1
  102. package/src/gantt/export/pdf-base/treegrid-layouter.js +13 -13
  103. package/src/gantt/export/pdf-connector-line.js +11 -11
  104. package/src/gantt/export/pdf-gantt.js +24 -24
  105. package/src/gantt/export/pdf-taskbar.js +11 -11
  106. package/src/gantt/export/pdf-treegrid.js +13 -13
  107. package/src/gantt/models/add-dialog-field-settings-model.d.ts +21 -21
  108. package/src/gantt/models/add-dialog-field-settings.js +19 -19
  109. package/src/gantt/models/day-working-time-model.d.ts +11 -11
  110. package/src/gantt/models/day-working-time.js +19 -19
  111. package/src/gantt/models/edit-dialog-field-settings-model.d.ts +21 -21
  112. package/src/gantt/models/edit-dialog-field-settings.js +19 -19
  113. package/src/gantt/models/edit-settings-model.d.ts +50 -50
  114. package/src/gantt/models/edit-settings.js +19 -19
  115. package/src/gantt/models/event-marker-model.d.ts +16 -16
  116. package/src/gantt/models/event-marker.js +19 -19
  117. package/src/gantt/models/filter-settings-model.d.ts +34 -34
  118. package/src/gantt/models/filter-settings.js +19 -19
  119. package/src/gantt/models/holiday-model.d.ts +21 -21
  120. package/src/gantt/models/holiday.js +19 -19
  121. package/src/gantt/models/label-settings-model.d.ts +16 -16
  122. package/src/gantt/models/label-settings.js +19 -19
  123. package/src/gantt/models/resource-fields-model.d.ts +21 -21
  124. package/src/gantt/models/resource-fields.js +19 -19
  125. package/src/gantt/models/search-settings-model.d.ts +56 -56
  126. package/src/gantt/models/search-settings.js +19 -19
  127. package/src/gantt/models/selection-settings-model.d.ts +35 -35
  128. package/src/gantt/models/selection-settings.js +19 -19
  129. package/src/gantt/models/sort-settings-model.d.ts +24 -24
  130. package/src/gantt/models/sort-settings.js +19 -19
  131. package/src/gantt/models/splitter-settings-model.d.ts +30 -30
  132. package/src/gantt/models/splitter-settings.js +19 -19
  133. package/src/gantt/models/task-fields-model.d.ts +110 -110
  134. package/src/gantt/models/task-fields.js +19 -19
  135. package/src/gantt/models/timeline-settings-model.d.ts +71 -71
  136. package/src/gantt/models/timeline-settings.js +19 -19
  137. package/src/gantt/models/tooltip-settings-model.d.ts +26 -26
  138. package/src/gantt/models/tooltip-settings.js +19 -19
  139. package/src/gantt/renderer/chart-rows.js +49 -37
  140. package/src/gantt/renderer/connector-line.js +22 -18
  141. package/src/gantt/renderer/event-marker.js +1 -0
  142. package/src/gantt/renderer/nonworking-day.js +13 -6
  143. package/src/gantt/renderer/timeline.d.ts +1 -0
  144. package/src/gantt/renderer/timeline.js +51 -12
  145. package/src/gantt/renderer/tooltip.js +11 -3
  146. package/styles/bootstrap-dark.css +442 -427
  147. package/styles/bootstrap.css +442 -433
  148. package/styles/bootstrap4.css +454 -479
  149. package/styles/bootstrap5-dark.css +457 -433
  150. package/styles/bootstrap5.css +457 -433
  151. package/styles/fabric-dark.css +438 -421
  152. package/styles/fabric.css +445 -428
  153. package/styles/fluent-dark.css +1938 -0
  154. package/styles/fluent-dark.scss +1 -0
  155. package/styles/fluent.css +1938 -0
  156. package/styles/fluent.scss +1 -0
  157. package/styles/gantt/_all.scss +2 -2
  158. package/styles/gantt/_bootstrap-dark-definition.scss +210 -156
  159. package/styles/gantt/_bootstrap-definition.scss +211 -157
  160. package/styles/gantt/_bootstrap4-definition.scss +213 -158
  161. package/styles/gantt/_bootstrap5-definition.scss +215 -162
  162. package/styles/gantt/_fabric-dark-definition.scss +211 -157
  163. package/styles/gantt/_fabric-definition.scss +211 -157
  164. package/styles/gantt/_fluent-dark-definition.scss +1 -0
  165. package/styles/gantt/_fluent-definition.scss +215 -162
  166. package/styles/gantt/_fusionnew-definition.scss +214 -0
  167. package/styles/gantt/_highcontrast-definition.scss +211 -157
  168. package/styles/gantt/_highcontrast-light-definition.scss +211 -157
  169. package/styles/gantt/_layout.scss +1446 -1027
  170. package/styles/gantt/_material-dark-definition.scss +212 -157
  171. package/styles/gantt/_material-definition.scss +212 -157
  172. package/styles/gantt/_material3-definition.scss +215 -0
  173. package/styles/gantt/_tailwind-definition.scss +215 -161
  174. package/styles/gantt/_theme.scss +702 -668
  175. package/styles/gantt/bootstrap-dark.css +442 -427
  176. package/styles/gantt/bootstrap.css +442 -433
  177. package/styles/gantt/bootstrap4.css +454 -479
  178. package/styles/gantt/bootstrap5-dark.css +457 -433
  179. package/styles/gantt/bootstrap5.css +457 -433
  180. package/styles/gantt/fabric-dark.css +438 -421
  181. package/styles/gantt/fabric.css +445 -428
  182. package/styles/gantt/fluent-dark.css +1938 -0
  183. package/styles/gantt/fluent-dark.scss +22 -0
  184. package/styles/gantt/fluent.css +1938 -0
  185. package/styles/gantt/fluent.scss +22 -0
  186. package/styles/gantt/highcontrast-light.css +405 -405
  187. package/styles/gantt/highcontrast.css +444 -456
  188. package/styles/gantt/icons/_bootstrap-dark.scss +124 -113
  189. package/styles/gantt/icons/_bootstrap.scss +124 -113
  190. package/styles/gantt/icons/_bootstrap4.scss +124 -113
  191. package/styles/gantt/icons/_bootstrap5.scss +124 -112
  192. package/styles/gantt/icons/_fabric-dark.scss +124 -112
  193. package/styles/gantt/icons/_fabric.scss +124 -112
  194. package/styles/gantt/icons/_fluent-dark.scss +1 -0
  195. package/styles/gantt/icons/_fluent.scss +124 -112
  196. package/styles/gantt/icons/_fusionnew.scss +120 -0
  197. package/styles/gantt/icons/_highcontrast.scss +124 -112
  198. package/styles/gantt/icons/_material-dark.scss +124 -112
  199. package/styles/gantt/icons/_material.scss +124 -112
  200. package/styles/gantt/icons/_material3.scss +124 -0
  201. package/styles/gantt/icons/_tailwind-dark.scss +124 -113
  202. package/styles/gantt/icons/_tailwind.scss +124 -113
  203. package/styles/gantt/material-dark.css +446 -417
  204. package/styles/gantt/material.css +445 -419
  205. package/styles/gantt/tailwind-dark.css +452 -482
  206. package/styles/gantt/tailwind.css +449 -479
  207. package/styles/highcontrast-light.css +405 -405
  208. package/styles/highcontrast.css +444 -456
  209. package/styles/material-dark.css +446 -417
  210. package/styles/material.css +445 -419
  211. package/styles/tailwind-dark.css +452 -482
  212. package/styles/tailwind.css +449 -479
@@ -483,7 +483,6 @@ class DateProcessor {
483
483
  tDuration = this.parent.editModule.taskbarEditModule.sumOfDuration(ganttProperties.segments);
484
484
  }
485
485
  else {
486
- // eslint-disable-next-line
487
486
  if (!isNullOrUndefined(ganttProperties.startDate) && !isNullOrUndefined(ganttProperties.endDate) &&
488
487
  (ganttProperties.startDate).getTime() === (ganttProperties.endDate).getTime() && !isNullOrUndefined(ganttData.taskData[this.parent.taskFields.milestone])) {
489
488
  tDuration = 1;
@@ -4082,6 +4081,7 @@ class GanttChart {
4082
4081
  this.chartTimelineContainer = null;
4083
4082
  this.rangeViewContainer =
4084
4083
  createElement('div', { className: rangeContainer });
4084
+ this.rangeViewContainer.setAttribute("role", "RangeContainer");
4085
4085
  this.virtualRender = new VirtualContentRenderer(this.parent);
4086
4086
  this.addEventListener();
4087
4087
  }
@@ -4217,14 +4217,14 @@ class GanttChart {
4217
4217
  for (let i = 0; i < rangeCollection.length; i++) {
4218
4218
  const height = this.getRangeHeight(currentRecord);
4219
4219
  const leftDiv = createElement('div', {
4220
- className: rangeChildContainer + ' ' + 'e-leftarc', styles: `left:${rangeCollection[i].left}px;
4221
- top: ${Math.floor((this.parent.rowHeight - this.parent.chartRowsModule.taskBarHeight) / 2)}px;
4220
+ className: rangeChildContainer + ' ' + 'e-leftarc', styles: `left:${rangeCollection[i].left}px;
4221
+ top: ${Math.floor((this.parent.rowHeight - this.parent.chartRowsModule.taskBarHeight) / 2)}px;
4222
4222
  height: ${height + 1}px; border-right: 0px`
4223
4223
  });
4224
4224
  const rightDiv = createElement('div', {
4225
4225
  className: rangeChildContainer + ' ' + 'e-rightarc',
4226
- styles: `left:${rangeCollection[i].left + rangeCollection[i].width - 5}px;
4227
- top: ${Math.floor((this.parent.rowHeight - this.parent.chartRowsModule.taskBarHeight) / 2)}px; height: ${height + 1}px;
4226
+ styles: `left:${rangeCollection[i].left + rangeCollection[i].width - 5}px;
4227
+ top: ${Math.floor((this.parent.rowHeight - this.parent.chartRowsModule.taskBarHeight) / 2)}px; height: ${height + 1}px;
4228
4228
  border-left: 0px`
4229
4229
  });
4230
4230
  parentDiv.appendChild(leftDiv);
@@ -4240,6 +4240,7 @@ class GanttChart {
4240
4240
  renderTimelineContainer() {
4241
4241
  this.chartTimelineContainer =
4242
4242
  createElement('div', { className: timelineHeaderContainer });
4243
+ this.chartTimelineContainer.setAttribute("role", "TimelineHeader");
4243
4244
  this.chartElement.appendChild(this.chartTimelineContainer);
4244
4245
  }
4245
4246
  /**
@@ -4279,8 +4280,19 @@ class GanttChart {
4279
4280
  //empty row height
4280
4281
  const emptydivHeight = 36;
4281
4282
  const emptyHeight = this.parent.contentHeight === 0 ? this.parent.flatData.length > 1 ? emptydivHeight : 0 : this.parent.contentHeight;
4282
- this.chartBodyContent.style.height = formatUnit(emptyHeight);
4283
- //let element: HTMLElement = this.chartTimelineContainer.querySelector('.' + cls.timelineHeaderTableContainer);
4283
+ let contentElement = this.parent.element.getElementsByClassName('e-chart-scroll-container e-content')[0];
4284
+ if (emptyHeight >= contentElement['offsetHeight']) {
4285
+ this.chartBodyContent.style.height = formatUnit(emptyHeight);
4286
+ }
4287
+ else {
4288
+ let scrollHeight = this.parent.element.getElementsByClassName('e-chart-rows-container')[0]['offsetHeight'];
4289
+ if (contentElement['offsetHeight'] >= scrollHeight) {
4290
+ this.chartBodyContent.style.height = contentElement['offsetHeight'] - 17 + 'px';
4291
+ }
4292
+ else {
4293
+ this.chartBodyContent.style.height = contentElement['offsetHeight'] + 'px';
4294
+ }
4295
+ } //let element: HTMLElement = this.chartTimelineContainer.querySelector('.' + cls.timelineHeaderTableContainer);
4284
4296
  this.chartBodyContent.style.width = formatUnit(this.parent.timelineModule.totalTimelineWidth);
4285
4297
  this.setVirtualHeight();
4286
4298
  this.parent.notify('updateHeight', {});
@@ -4312,7 +4324,21 @@ class GanttChart {
4312
4324
  if (this.chartBodyContent.clientHeight < this.chartBodyContainer.clientHeight) {
4313
4325
  if (lastRow) {
4314
4326
  addClass(lastRow.querySelectorAll('td'), 'e-lastrow');
4315
- this.chartBodyContent.style.height = formatUnit(this.parent.contentHeight + 1);
4327
+ const emptydivHeight = 36;
4328
+ const emptyHeight = this.parent.contentHeight === 0 ? this.parent.flatData.length > 1 ? emptydivHeight : 0 : this.parent.contentHeight;
4329
+ let contentElement = this.parent.element.getElementsByClassName('e-chart-scroll-container e-content')[0];
4330
+ if (emptyHeight >= contentElement['offsetHeight']) {
4331
+ this.chartBodyContent.style.height = formatUnit(emptyHeight);
4332
+ }
4333
+ else {
4334
+ let scrollHeight = this.parent.element.getElementsByClassName('e-chart-rows-container')[0]['offsetHeight'];
4335
+ if (contentElement['offsetHeight'] >= scrollHeight) {
4336
+ this.chartBodyContent.style.height = contentElement['offsetHeight'] - 17 + 'px';
4337
+ }
4338
+ else {
4339
+ this.chartBodyContent.style.height = contentElement['offsetHeight'] + 'px';
4340
+ }
4341
+ }
4316
4342
  }
4317
4343
  }
4318
4344
  }
@@ -4444,7 +4470,7 @@ class GanttChart {
4444
4470
  const target = e.target;
4445
4471
  const isOnTaskbarElement = e.target.classList.contains(taskBarMainContainer)
4446
4472
  || closest(e.target, '.' + taskBarMainContainer);
4447
- if (closest(target, '.e-gantt-parent-taskbar')) {
4473
+ if (closest(target, '.e-gantt-parent-taskbar') && !this.parent.editSettings.allowEditing) {
4448
4474
  this.chartExpandCollapseRequest(e);
4449
4475
  }
4450
4476
  else if (!isOnTaskbarElement && this.parent.autoFocusTasks) {
@@ -4966,6 +4992,10 @@ class GanttChart {
4966
4992
  $target.classList.contains('e-headercell') || $target.closest('.e-segmented-taskbar')) {
4967
4993
  e.preventDefault();
4968
4994
  }
4995
+ if (isTab && $target.classList.contains('e-rowdragdrop')) {
4996
+ this.parent.treeGrid.grid.notify('key-pressed', e);
4997
+ return;
4998
+ }
4969
4999
  if ($target.classList.contains('e-rowcell') && (nextElement && nextElement.classList.contains('e-rowcell')) ||
4970
5000
  $target.classList.contains('e-headercell')) { // eslint-disable-line
4971
5001
  if (isTab) {
@@ -5008,7 +5038,7 @@ class GanttChart {
5008
5038
  else {
5009
5039
  this.manageFocus($target, 'remove', true);
5010
5040
  }
5011
- if (nextElement.classList.contains('e-rowcell')) {
5041
+ if (nextElement.classList.contains('e-rowcell') && $target.nextElementSibling) {
5012
5042
  if (!$target.classList.contains('e-rowcell')) {
5013
5043
  this.parent.treeGrid.grid.notify('key-pressed', e);
5014
5044
  const fmodule = getValue('focusModule', this.parent.treeGrid.grid);
@@ -5356,7 +5386,7 @@ class Timeline {
5356
5386
  const currentZoomingLevel = this.checkCurrentZoomingLevel();
5357
5387
  this.isZoomIn = isZoomIn;
5358
5388
  this.isZooming = true;
5359
- const currentLevel = isZoomIn ? currentZoomingLevel + 1 : currentZoomingLevel - 1;
5389
+ let currentLevel = isZoomIn ? currentZoomingLevel + 1 : currentZoomingLevel - 1;
5360
5390
  if (this.parent.toolbarModule) {
5361
5391
  if (isZoomIn) {
5362
5392
  if (currentLevel === this.parent.zoomingLevels[this.parent.zoomingLevels.length - 1].level) {
@@ -5375,6 +5405,9 @@ class Timeline {
5375
5405
  }
5376
5406
  }
5377
5407
  }
5408
+ currentLevel = this.parent.zoomingLevels.findIndex((tempLevel) => {
5409
+ return tempLevel.level === currentLevel;
5410
+ });
5378
5411
  let newTimeline = this.parent.zoomingLevels[currentLevel];
5379
5412
  const args = {
5380
5413
  requestType: isZoomIn ? 'beforeZoomIn' : 'beforeZoomOut',
@@ -6084,6 +6117,40 @@ class Timeline {
6084
6117
  } while ((startDate < endDate));
6085
6118
  return parentTh;
6086
6119
  }
6120
+ updateTimelineAfterZooming(endDate, resized) {
6121
+ let timeDiff;
6122
+ let perDayWidth;
6123
+ let totWidth;
6124
+ let contentElement = document.getElementsByClassName('e-chart-scroll-container e-content')[0];
6125
+ if (!isNullOrUndefined(contentElement)) {
6126
+ let contentWidth = contentElement['offsetWidth'];
6127
+ let contentHeight = contentElement['offsetHeight'];
6128
+ let scrollHeight = document.getElementsByClassName('e-chart-rows-container')[0]['offsetHeight'];
6129
+ timeDiff = Math.abs(this.timelineStartDate.getTime() - endDate.getTime());
6130
+ timeDiff = timeDiff / (1000 * 3600 * 24);
6131
+ if (this.bottomTier === 'None') {
6132
+ perDayWidth = this.getPerDayWidth(this.customTimelineSettings.timelineUnitSize, this.customTimelineSettings.topTier.count, this.topTier);
6133
+ }
6134
+ else {
6135
+ perDayWidth = this.getPerDayWidth(this.customTimelineSettings.timelineUnitSize, this.customTimelineSettings.bottomTier.count, this.bottomTier);
6136
+ }
6137
+ if (contentHeight < scrollHeight) {
6138
+ totWidth = (perDayWidth * timeDiff) + 17;
6139
+ }
6140
+ else {
6141
+ totWidth = (perDayWidth * timeDiff);
6142
+ }
6143
+ if (contentWidth >= totWidth) {
6144
+ let widthDiff = contentWidth - totWidth;
6145
+ widthDiff = Math.round(widthDiff / perDayWidth);
6146
+ endDate.setDate(endDate.getDate() + widthDiff);
6147
+ this.parent.timelineModule.timelineEndDate = endDate;
6148
+ if (resized) {
6149
+ this.parent.updateProjectDates(this.timelineStartDate, this.timelineEndDate, this.parent.isTimelineRoundOff);
6150
+ }
6151
+ }
6152
+ }
6153
+ }
6087
6154
  getTimelineRoundOffEndDate(date) {
6088
6155
  const tierMode = this.topTier === 'None' ? this.bottomTier : this.topTier;
6089
6156
  const endDate = new Date(date.toString());
@@ -6098,6 +6165,9 @@ class Timeline {
6098
6165
  endDate.setHours(24, 0, 0, 0);
6099
6166
  }
6100
6167
  }
6168
+ if (this.isZooming || this.parent.isLoad) {
6169
+ this.updateTimelineAfterZooming(endDate, false);
6170
+ }
6101
6171
  return endDate;
6102
6172
  }
6103
6173
  /**
@@ -6167,7 +6237,6 @@ class Timeline {
6167
6237
  }
6168
6238
  return increment;
6169
6239
  }
6170
- ;
6171
6240
  /**
6172
6241
  * Method to find header cell was weekend or not
6173
6242
  *
@@ -6746,6 +6815,8 @@ class GanttTreeGrid {
6746
6815
  renderTreeGrid() {
6747
6816
  this.composeProperties();
6748
6817
  this.bindEvents();
6818
+ const root = 'root';
6819
+ this.parent.treeGrid[root] = this.parent[root] ? this.parent[root] : this.parent;
6749
6820
  this.parent.treeGrid.appendTo(this.treeGridElement);
6750
6821
  this.wireEvents();
6751
6822
  }
@@ -6809,7 +6880,7 @@ class GanttTreeGrid {
6809
6880
  const scrollWidth = this.getScrollbarWidth();
6810
6881
  const isMobile = /Android|Mac|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);
6811
6882
  if (scrollWidth !== 0) {
6812
- content.style.cssText += 'width: calc(100% + ' + scrollWidth + 'px);';
6883
+ content.style.cssText += 'width: calc(100% + ' + (scrollWidth + 1) + 'px);';
6813
6884
  }
6814
6885
  else {
6815
6886
  content.classList.add('e-gantt-scroll-padding');
@@ -7337,12 +7408,12 @@ class GanttTreeGrid {
7337
7408
  }
7338
7409
  }
7339
7410
 
7340
- var __decorate$1 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
7341
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
7342
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
7343
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
7344
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7345
- };
7411
+ var __decorate$1 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
7412
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
7413
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
7414
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
7415
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7416
+ };
7346
7417
  /**
7347
7418
  * Defines working time of day in project.
7348
7419
  */
@@ -7355,12 +7426,12 @@ __decorate$1([
7355
7426
  Property(null)
7356
7427
  ], DayWorkingTime.prototype, "to", void 0);
7357
7428
 
7358
- var __decorate$2 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
7359
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
7360
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
7361
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
7362
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7363
- };
7429
+ var __decorate$2 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
7430
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
7431
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
7432
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
7433
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7434
+ };
7364
7435
  /**
7365
7436
  * Defines dialog fields of add dialog.
7366
7437
  */
@@ -7376,12 +7447,12 @@ __decorate$2([
7376
7447
  Property([])
7377
7448
  ], AddDialogFieldSettings.prototype, "fields", void 0);
7378
7449
 
7379
- var __decorate$3 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
7380
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
7381
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
7382
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
7383
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7384
- };
7450
+ var __decorate$3 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
7451
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
7452
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
7453
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
7454
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7455
+ };
7385
7456
  /**
7386
7457
  * Defines dialog fields of edit dialog.
7387
7458
  */
@@ -7397,12 +7468,12 @@ __decorate$3([
7397
7468
  Property([])
7398
7469
  ], EditDialogFieldSettings.prototype, "fields", void 0);
7399
7470
 
7400
- var __decorate$4 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
7401
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
7402
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
7403
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
7404
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7405
- };
7471
+ var __decorate$4 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
7472
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
7473
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
7474
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
7475
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7476
+ };
7406
7477
  /**
7407
7478
  * Configures edit settings of Gantt.
7408
7479
  */
@@ -7433,12 +7504,12 @@ __decorate$4([
7433
7504
  Property(false)
7434
7505
  ], EditSettings.prototype, "allowNextRowEdit", void 0);
7435
7506
 
7436
- var __decorate$5 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
7437
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
7438
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
7439
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
7440
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7441
- };
7507
+ var __decorate$5 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
7508
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
7509
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
7510
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
7511
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7512
+ };
7442
7513
  /**
7443
7514
  * Defines event marker collection in Gantt.
7444
7515
  */
@@ -7454,12 +7525,12 @@ __decorate$5([
7454
7525
  Property(null)
7455
7526
  ], EventMarker.prototype, "cssClass", void 0);
7456
7527
 
7457
- var __decorate$6 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
7458
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
7459
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
7460
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
7461
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7462
- };
7528
+ var __decorate$6 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
7529
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
7530
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
7531
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
7532
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7533
+ };
7463
7534
  /**
7464
7535
  * Configures the filtering behavior of the Gantt.
7465
7536
  */
@@ -7481,12 +7552,12 @@ __decorate$6([
7481
7552
  Property('Parent')
7482
7553
  ], FilterSettings.prototype, "hierarchyMode", void 0);
7483
7554
 
7484
- var __decorate$7 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
7485
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
7486
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
7487
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
7488
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7489
- };
7555
+ var __decorate$7 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
7556
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
7557
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
7558
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
7559
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7560
+ };
7490
7561
  /**
7491
7562
  * Configures the searching behavior of the Gantt.
7492
7563
  */
@@ -7508,12 +7579,12 @@ __decorate$7([
7508
7579
  Property('Parent')
7509
7580
  ], SearchSettings.prototype, "hierarchyMode", void 0);
7510
7581
 
7511
- var __decorate$8 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
7512
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
7513
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
7514
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
7515
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7516
- };
7582
+ var __decorate$8 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
7583
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
7584
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
7585
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
7586
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7587
+ };
7517
7588
  /**
7518
7589
  * Defines holidays of project.
7519
7590
  */
@@ -7532,12 +7603,12 @@ __decorate$8([
7532
7603
  Property(null)
7533
7604
  ], Holiday.prototype, "cssClass", void 0);
7534
7605
 
7535
- var __decorate$9 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
7536
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
7537
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
7538
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
7539
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7540
- };
7606
+ var __decorate$9 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
7607
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
7608
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
7609
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
7610
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7611
+ };
7541
7612
  /**
7542
7613
  * Defines labels for task, this will be placed right, left and inner side of taskbar.
7543
7614
  */
@@ -7553,12 +7624,12 @@ __decorate$9([
7553
7624
  Property(null)
7554
7625
  ], LabelSettings.prototype, "taskLabel", void 0);
7555
7626
 
7556
- var __decorate$10 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
7557
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
7558
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
7559
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
7560
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7561
- };
7627
+ var __decorate$10 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
7628
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
7629
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
7630
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
7631
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7632
+ };
7562
7633
  /**
7563
7634
  * Configures the selection behavior of the Gantt.
7564
7635
  */
@@ -7580,12 +7651,12 @@ __decorate$10([
7580
7651
  Property(false)
7581
7652
  ], SelectionSettings.prototype, "enableToggle", void 0);
7582
7653
 
7583
- var __decorate$11 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
7584
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
7585
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
7586
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
7587
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7588
- };
7654
+ var __decorate$11 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
7655
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
7656
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
7657
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
7658
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7659
+ };
7589
7660
  /**
7590
7661
  * Configures splitter position and splitter bar.
7591
7662
  */
@@ -7607,12 +7678,12 @@ __decorate$11([
7607
7678
  Property('Default')
7608
7679
  ], SplitterSettings.prototype, "view", void 0);
7609
7680
 
7610
- var __decorate$12 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
7611
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
7612
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
7613
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
7614
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7615
- };
7681
+ var __decorate$12 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
7682
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
7683
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
7684
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
7685
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7686
+ };
7616
7687
  /**
7617
7688
  * Defines mapping property to get task details from data source.
7618
7689
  */
@@ -7688,12 +7759,12 @@ __decorate$12([
7688
7759
  Property(null)
7689
7760
  ], TaskFields.prototype, "segmentId", void 0);
7690
7761
 
7691
- var __decorate$13 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
7692
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
7693
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
7694
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
7695
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7696
- };
7762
+ var __decorate$13 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
7763
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
7764
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
7765
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
7766
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7767
+ };
7697
7768
  /**
7698
7769
  * Configures timeline settings of Gantt.
7699
7770
  */
@@ -7741,12 +7812,12 @@ __decorate$13([
7741
7812
  Property(true)
7742
7813
  ], TimelineSettings.prototype, "updateTimescaleView", void 0);
7743
7814
 
7744
- var __decorate$14 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
7745
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
7746
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
7747
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
7748
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7749
- };
7815
+ var __decorate$14 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
7816
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
7817
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
7818
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
7819
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7820
+ };
7750
7821
  /**
7751
7822
  * Configures tooltip settings for Gantt.
7752
7823
  */
@@ -7768,12 +7839,12 @@ __decorate$14([
7768
7839
  Property()
7769
7840
  ], TooltipSettings.prototype, "editing", void 0);
7770
7841
 
7771
- var __decorate$15 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
7772
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
7773
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
7774
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
7775
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7776
- };
7842
+ var __decorate$15 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
7843
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
7844
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
7845
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
7846
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7847
+ };
7777
7848
  /**
7778
7849
  * Represents the field name and direction of sort column.
7779
7850
  */
@@ -7797,12 +7868,12 @@ __decorate$15([
7797
7868
  Property(true)
7798
7869
  ], SortSettings.prototype, "allowUnsort", void 0);
7799
7870
 
7800
- var __decorate$16 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
7801
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
7802
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
7803
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
7804
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7805
- };
7871
+ var __decorate$16 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
7872
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
7873
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
7874
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
7875
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7876
+ };
7806
7877
  /**
7807
7878
  * Defines mapping property to get resource details from resource collection.
7808
7879
  */
@@ -7835,7 +7906,7 @@ class ChartRows extends DateProcessor {
7835
7906
  this.milestoneHeight = 0;
7836
7907
  this.milesStoneRadius = 0;
7837
7908
  this.baselineTop = 0;
7838
- this.baselineHeight = 3;
7909
+ this.baselineHeight = 8;
7839
7910
  this.touchLeftConnectorpoint = '';
7840
7911
  this.touchRightConnectorpoint = '';
7841
7912
  this.dropSplit = false;
@@ -7917,7 +7988,7 @@ class ChartRows extends DateProcessor {
7917
7988
  * @private
7918
7989
  */
7919
7990
  getIndicatorNode(indicator) {
7920
- const templateString = '<label class="' + label + ' ' + taskIndicatorDiv + '" style="line-height:'
7991
+ const templateString = '<label class="' + label + ' ' + taskIndicatorDiv + '" role="LabelIndicator" style="line-height:'
7921
7992
  + (this.parent.rowHeight) + 'px;' +
7922
7993
  'left:' + this.getIndicatorleft(indicator.date) + 'px;"><i class="' + indicator.iconClass + '"></i> </label>';
7923
7994
  return this.createDivElement(templateString);
@@ -7990,9 +8061,9 @@ class ChartRows extends DateProcessor {
7990
8061
  }
7991
8062
  else {
7992
8063
  taskLabel$$1 = '<span class="' + taskLabel + '" style="line-height:' +
7993
- (this.taskBarHeight - 1) + 'px; text-align:' + (this.parent.viewType === 'ResourceView' ? 'left;' : ';') +
7994
- 'display:' + (this.parent.viewType === 'ResourceView' ? 'inline-flex;' : ';') +
7995
- 'width:' + (this.parent.viewType === 'ResourceView' ? (data.ganttProperties.width - 10) : '') + 'px; height:' +
8064
+ (this.taskBarHeight - 1) + 'px;' + (this.parent.viewType === 'ResourceView' ? 'text-align: left;' : '') +
8065
+ +(this.parent.viewType === 'ResourceView' ? 'display:inline-flex;' : '') +
8066
+ +(this.parent.viewType === 'ResourceView' ? (data.ganttProperties.width - 10) : '') + 'px; height:' +
7996
8067
  this.taskBarHeight + 'px;">' + labelString + '</span>';
7997
8068
  }
7998
8069
  }
@@ -8409,7 +8480,7 @@ class ChartRows extends DateProcessor {
8409
8480
  */
8410
8481
  getTaskBaselineNode() {
8411
8482
  const data = this.templateData;
8412
- const template = '<div class="' + baselineBar + ' ' + '" style="margin-top:' + this.baselineTop +
8483
+ const template = '<div class="' + baselineBar + ' ' + '" role="BaselineBar" style="margin-top:' + this.baselineTop +
8413
8484
  'px;left:' + data.ganttProperties.baselineLeft + 'px;' +
8414
8485
  'width:' + data.ganttProperties.baselineWidth + 'px;height:' +
8415
8486
  this.baselineHeight + 'px;' + (this.baselineColor ? 'background-color: ' + this.baselineColor + ';' : '') + '"></div>';
@@ -8423,9 +8494,10 @@ class ChartRows extends DateProcessor {
8423
8494
  */
8424
8495
  getMilestoneBaselineNode() {
8425
8496
  const data = this.templateData;
8497
+ let baselineMilestoneHeight = this.parent.renderBaseline ? 5 : 2;
8426
8498
  const template = '<div class="' + baselineMilestoneContainer + ' ' + '" style="' +
8427
8499
  'left:' + (data.ganttProperties.baselineLeft - this.milesStoneRadius) + 'px;' +
8428
- 'margin-top:' + (-Math.floor(this.parent.rowHeight - this.milestoneMarginTop) + 2) +
8500
+ 'margin-top:' + (-Math.floor(this.parent.rowHeight - this.milestoneMarginTop) + baselineMilestoneHeight) +
8429
8501
  'px">' + '<div class="' + baselineMilestoneDiv + '">' + '<div class="' + baselineMilestoneDiv +
8430
8502
  ' ' + baselineMilestoneTop + '" ' +
8431
8503
  'style="top:' + (-this.milestoneHeight) + 'px;border-right:' + this.milesStoneRadius +
@@ -8453,7 +8525,9 @@ class ChartRows extends DateProcessor {
8453
8525
  */
8454
8526
  getLeftLabelNode(i) {
8455
8527
  const leftLabelNode = this.leftLabelContainer();
8456
- leftLabelNode[0].setAttribute('aria-label', this.generateTaskLabelAriaLabel('left'));
8528
+ if (this.generateTaskLabelAriaLabel('left') !== "") {
8529
+ leftLabelNode[0].setAttribute('aria-label', this.generateTaskLabelAriaLabel('left'));
8530
+ }
8457
8531
  let leftLabelTemplateNode = null;
8458
8532
  if (this.leftTaskLabelTemplateFunction) {
8459
8533
  leftLabelTemplateNode = this.leftTaskLabelTemplateFunction(extend({ index: i }, this.templateData), this.parent, 'LeftLabelTemplate', this.getTemplateID('LeftLabelTemplate'), false, undefined, leftLabelNode[0], this.parent.treeGrid['root']);
@@ -8475,9 +8549,10 @@ class ChartRows extends DateProcessor {
8475
8549
  return leftLabelNode;
8476
8550
  }
8477
8551
  getLableText(labelString, labelDiv) {
8552
+ let leftLabelHeight = this.parent.renderBaseline ? ((this.parent.rowHeight - this.taskBarHeight) / 2) : this.taskBarMarginTop;
8478
8553
  const templateString = createElement('div', {
8479
8554
  className: labelDiv, styles: 'height:' + (this.taskBarHeight) + 'px;' +
8480
- 'margin-top:' + this.taskBarMarginTop + 'px;'
8555
+ 'margin-top:' + leftLabelHeight + 'px;'
8481
8556
  });
8482
8557
  const spanElem = createElement('span', { className: label });
8483
8558
  const property = this.parent.disableHtmlEncode ? 'textContent' : 'innerHTML';
@@ -8496,7 +8571,9 @@ class ChartRows extends DateProcessor {
8496
8571
  */
8497
8572
  getRightLabelNode(i) {
8498
8573
  const rightLabelNode = this.rightLabelContainer();
8499
- rightLabelNode[0].setAttribute('aria-label', this.generateTaskLabelAriaLabel('right'));
8574
+ if (this.generateTaskLabelAriaLabel('right') !== "") {
8575
+ rightLabelNode[0].setAttribute('aria-label', this.generateTaskLabelAriaLabel('right'));
8576
+ }
8500
8577
  let rightLabelTemplateNode = null;
8501
8578
  if (this.rightTaskLabelTemplateFunction) {
8502
8579
  rightLabelTemplateNode = this.rightTaskLabelTemplateFunction(extend({ index: i }, this.templateData), this.parent, 'RightLabelTemplate', this.getTemplateID('RightLabelTemplate'), false, undefined, rightLabelNode[0], this.parent.treeGrid['root']);
@@ -8609,8 +8686,10 @@ class ChartRows extends DateProcessor {
8609
8686
  else {
8610
8687
  labelDiv = this.createDivElement('<span class="' +
8611
8688
  taskLabel + '" style="line-height:' +
8612
- (this.taskBarHeight - 1) + 'px; display:' + (this.parent.viewType === 'ResourceView' ? 'inline-flex;' : ';') + 'width:' +
8613
- (this.parent.viewType === 'ResourceView' ? (data.ganttProperties.width - 10) : ';') + 'px; height:' +
8689
+ (this.taskBarHeight - 1) + 'px;' + (this.parent.viewType === 'ResourceView' ? 'display:inline-flex;' : '') +
8690
+ (this.parent.viewType === 'ResourceView' ? 'width:' + (data.ganttProperties.width - 10) : '') + 'px; height:' +
8691
+ (this.taskBarHeight - 1) + 'px;' + (this.parent.viewType === 'ResourceView' ? 'display: inline-flex;' : '') +
8692
+ (this.parent.viewType === 'ResourceView' ? 'width:' + (data.ganttProperties.width - 10) : '') + 'px; height:' +
8614
8693
  this.taskBarHeight + 'px;">' + labelString + '</span>');
8615
8694
  }
8616
8695
  progressBarInnerDiv[0].appendChild([].slice.call(labelDiv)[0]);
@@ -8639,10 +8718,10 @@ class ChartRows extends DateProcessor {
8639
8718
  const className = (this.parent.gridLines === 'Horizontal' || this.parent.gridLines === 'Both') ?
8640
8719
  'e-chart-row-border' : '';
8641
8720
  table.innerHTML = '<tr class="' + this.getRowClassName(this.templateData) + ' ' + chartRow + '"' +
8642
- 'style="display:' + this.getExpandDisplayProp(this.templateData) + ';height:' +
8721
+ 'role="ChartRow" style="display:' + this.getExpandDisplayProp(this.templateData) + ';height:' +
8643
8722
  this.parent.rowHeight + 'px;">' +
8644
8723
  '<td class="' + chartRowCell + ' ' + className
8645
- + '" style="width:' + this.parent.timelineModule.totalTimelineWidth + 'px;"></td></tr>';
8724
+ + '" role="ChartCell" style="width:' + this.parent.timelineModule.totalTimelineWidth + 'px;"></td></tr>';
8646
8725
  return table.childNodes;
8647
8726
  }
8648
8727
  /**
@@ -8707,7 +8786,7 @@ class ChartRows extends DateProcessor {
8707
8786
  }
8708
8787
  leftLabelContainer() {
8709
8788
  const template = '<div class="' + ((this.leftTaskLabelTemplateFunction) ? leftLabelTempContainer :
8710
- leftLabelContainer) + ' ' + '" tabindex="-1" style="height:' +
8789
+ leftLabelContainer) + ' ' + '" tabindex="-1" role="LeftLabel" style="height:' +
8711
8790
  (this.parent.rowHeight - 2) + 'px;width:' + this.taskNameWidth(this.templateData) + '"></div>';
8712
8791
  return this.createDivElement(template);
8713
8792
  }
@@ -8719,7 +8798,7 @@ class ChartRows extends DateProcessor {
8719
8798
  const template = '<div class="' + taskBarMainContainer + ' ' +
8720
8799
  this.parent.getUnscheduledTaskClass(data.ganttProperties) + ' ' +
8721
8800
  ((data.ganttProperties.cssClass) ? data.ganttProperties.cssClass : '') + '" ' +
8722
- ' tabindex="-1" style="' + ((data.ganttProperties.isMilestone && !manualParent) ?
8801
+ ' tabindex="-1" role="TaskBar" style="' + ((data.ganttProperties.isMilestone && !manualParent) ?
8723
8802
  ('width:' + this.milestoneHeight + 'px;height:' +
8724
8803
  this.milestoneHeight + 'px;margin-top:' + this.milestoneMarginTop + 'px;left:' + (data.ganttProperties.left -
8725
8804
  (this.milestoneHeight / 2)) + 'px;') : ('width:' + data.ganttProperties.width +
@@ -8730,26 +8809,26 @@ class ChartRows extends DateProcessor {
8730
8809
  }
8731
8810
  rightLabelContainer() {
8732
8811
  const template = '<div class="' + ((this.rightTaskLabelTemplateFunction) ? rightLabelTempContainer :
8733
- rightLabelContainer) + '" ' + ' tabindex="-1" style="left:' + this.getRightLabelLeft(this.templateData) + 'px;height:'
8812
+ rightLabelContainer) + '" ' + ' tabindex="-1" role="RightLabel" style="left:' + this.getRightLabelLeft(this.templateData) + 'px; height:'
8734
8813
  + (this.parent.rowHeight - 2) + 'px;"></div>';
8735
8814
  return this.createDivElement(template);
8736
8815
  }
8737
8816
  childTaskbarLeftResizer() {
8738
8817
  const lResizerLeft = -(this.parent.isAdaptive ? 12 : 2);
8739
8818
  const template = '<div class="' + taskBarLeftResizer + ' ' + icon + '"' +
8740
- ' style="left:' + lResizerLeft + 'px;height:' + (this.taskBarHeight) + 'px;"></div>';
8819
+ ' role="LeftResizer" style="left:' + lResizerLeft + 'px;height:' + (this.taskBarHeight) + 'px;"></div>';
8741
8820
  return this.createDivElement(template);
8742
8821
  }
8743
8822
  childTaskbarRightResizer() {
8744
8823
  const rResizerLeft = this.parent.isAdaptive ? -2 : -10;
8745
8824
  const template = '<div class="' + taskBarRightResizer + ' ' + icon + '"' +
8746
- ' style="left:' + (this.templateData.ganttProperties.width + rResizerLeft) + 'px;' +
8825
+ ' role="RightResizer" style="left:' + (this.templateData.ganttProperties.width + rResizerLeft) + 'px;' +
8747
8826
  'height:' + (this.taskBarHeight) + 'px;"></div>';
8748
8827
  return this.createDivElement(template);
8749
8828
  }
8750
8829
  childTaskbarProgressResizer() {
8751
8830
  const template = '<div class="' + childProgressResizer + '"' +
8752
- ' style="left:' + (this.templateData.ganttProperties.progressWidth - 6) + 'px;margin-top:' +
8831
+ ' role="ProgressResizer" style="left:' + (this.templateData.ganttProperties.progressWidth - 6) + 'px;margin-top:' +
8753
8832
  (this.taskBarHeight - 4) + 'px;"><div class="' + progressBarHandler + '"' +
8754
8833
  '><div class="' + progressHandlerElement + '"></div>' +
8755
8834
  '<div class="' + progressBarHandlerAfter + '"></div></div>';
@@ -8947,10 +9026,13 @@ class ChartRows extends DateProcessor {
8947
9026
  * @private
8948
9027
  */
8949
9028
  initChartHelperPrivateVariable() {
9029
+ let taskbarHeightValue = this.parent.renderBaseline ? 0.45 : 0.62;
9030
+ let taskBarMarginTopValue = this.parent.renderBaseline ? 4 : 2;
9031
+ let milestoneHeightValue = this.parent.renderBaseline ? 1.13 : 0.82;
8950
9032
  this.baselineColor = !isNullOrUndefined(this.parent.baselineColor) &&
8951
9033
  this.parent.baselineColor !== '' ? this.parent.baselineColor : null;
8952
9034
  this.taskBarHeight = isNullOrUndefined(this.parent.taskbarHeight) || this.parent.taskbarHeight >= this.parent.rowHeight ?
8953
- Math.floor(this.parent.rowHeight * 0.62) : this.parent.taskbarHeight; // 0.62 -- Standard Ratio.
9035
+ Math.floor(this.parent.rowHeight * taskbarHeightValue) : this.parent.taskbarHeight; // 0.62 -- Standard Ratio.
8954
9036
  if (this.parent.renderBaseline) {
8955
9037
  let height;
8956
9038
  if ((this.taskBarHeight + this.baselineHeight) <= this.parent.rowHeight) {
@@ -8961,11 +9043,11 @@ class ChartRows extends DateProcessor {
8961
9043
  }
8962
9044
  this.taskBarHeight = height;
8963
9045
  }
8964
- this.milestoneHeight = Math.floor(this.taskBarHeight * 0.82); // 0.82 -- Standard Ratio.
8965
- this.taskBarMarginTop = Math.floor((this.parent.rowHeight - this.taskBarHeight) / 2);
9046
+ this.milestoneHeight = Math.floor(this.taskBarHeight * milestoneHeightValue); // 0.82 -- Standard Ratio.
9047
+ this.taskBarMarginTop = Math.floor((this.parent.rowHeight - this.taskBarHeight) / taskBarMarginTopValue);
8966
9048
  this.milestoneMarginTop = Math.floor((this.parent.rowHeight - this.milestoneHeight) / 2);
8967
9049
  this.milesStoneRadius = Math.floor((this.milestoneHeight) / 2);
8968
- this.baselineTop = -(Math.floor((this.parent.rowHeight - (this.taskBarHeight + this.taskBarMarginTop))) - 1);
9050
+ this.baselineTop = -(Math.floor((this.parent.rowHeight - (this.taskBarHeight + this.taskBarMarginTop))) - 4);
8969
9051
  this.connectorPointWidth = this.parent.isAdaptive ? Math.round(this.taskBarHeight / 2) : 8;
8970
9052
  this.connectorPointMargin = Math.floor((this.taskBarHeight / 2) - (this.connectorPointWidth / 2));
8971
9053
  }
@@ -9159,6 +9241,7 @@ class ChartRows extends DateProcessor {
9159
9241
  const indicators = this.templateData.ganttProperties.indicators;
9160
9242
  for (let indicatorIndex = 0; indicatorIndex < indicators.length; indicatorIndex++) {
9161
9243
  taskIndicatorNode = this.getIndicatorNode(indicators[indicatorIndex]);
9244
+ taskIndicatorNode[0].setAttribute('aria-label', indicators[indicatorIndex].name);
9162
9245
  if (indicators[indicatorIndex].name.indexOf('$') > -1 || indicators[indicatorIndex].name.indexOf('#') > -1) {
9163
9246
  taskIndicatorTextFunction = this.templateCompiler(indicators[indicatorIndex].name);
9164
9247
  taskIndicatorTextNode = taskIndicatorTextFunction(extend({ index: i }, this.templateData), this.parent, 'indicatorLabelText');
@@ -10377,7 +10460,7 @@ class ConnectorLine {
10377
10460
  for (let i = 0; i < childNodes.length; i++) {
10378
10461
  const innerChild = childNodes[i].childNodes;
10379
10462
  for (let j = 0; j < innerChild.length; j++) {
10380
- const ariaString = this.parent.connectorLineModule.generateAriaLabel(ariaConnector[i]);
10463
+ const ariaString = 'Connector Line ' + this.parent.connectorLineModule.generateAriaLabel(ariaConnector[i]);
10381
10464
  innerChild[j].setAttribute('aria-label', ariaString);
10382
10465
  }
10383
10466
  }
@@ -10634,7 +10717,11 @@ class ConnectorLine {
10634
10717
  let connectorContainer = '';
10635
10718
  const isVirtual = this.parent.virtualScrollModule && this.parent.enableVirtualization;
10636
10719
  const connectorLine$$1 = this.getPosition(data, this.getParentPosition(data), height);
10637
- const heightValue = isVirtual ? connectorLine$$1.height : height;
10720
+ let isMilestoneValue = 0;
10721
+ if (this.parent.renderBaseline) {
10722
+ isMilestoneValue = (data.milestoneParent && data.milestoneChild) ? 0 : data.milestoneParent ? -5 : data.milestoneChild ? 5 : 0;
10723
+ }
10724
+ const heightValue = isVirtual ? connectorLine$$1.height : (height + isMilestoneValue);
10638
10725
  if (this.getParentPosition(data)) {
10639
10726
  connectorContainer = '<div id="ConnectorLine' + data.connectorLineId + '" style="background-color:black">';
10640
10727
  let div = '<div class="' + connectorLineContainer +
@@ -10662,7 +10749,7 @@ class ConnectorLine {
10662
10749
  this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
10663
10750
  if (this.getParentPosition(data) === 'FSType1') {
10664
10751
  div = div + 'left:' + (data.parentLeft + data.parentWidth) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
10665
- ((data.parentIndex * data.rowHeight) + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1))) + 'px;' +
10752
+ ((data.parentIndex * data.rowHeight) + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
10666
10753
  'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="FSType1">';
10667
10754
  div = div + eLine;
10668
10755
  div = div + 'left:' + (isMilestoneParent ? -1 : 0) + 'px;width:' + (isMilestoneParent ?
@@ -10683,7 +10770,7 @@ class ConnectorLine {
10683
10770
  }
10684
10771
  if (this.getParentPosition(data) === 'FSType2') {
10685
10772
  div = div + 'left:' + data.parentLeft + 'px;top:' + (isVirtual ? connectorLine$$1.top : ((data.parentIndex * data.rowHeight) +
10686
- this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1))) + 'px;' +
10773
+ this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
10687
10774
  'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="FSType2">';
10688
10775
  div = div + eLine;
10689
10776
  div = div + 'left:' + (isMilestoneParent ? data.parentWidth - 1 : data.parentWidth) + 'px;width:' +
@@ -10714,7 +10801,7 @@ class ConnectorLine {
10714
10801
  }
10715
10802
  if (this.getParentPosition(data) === 'FSType3') {
10716
10803
  div = div + 'left:' + (data.childLeft - 20) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
10717
- ((data.childIndex * data.rowHeight) + this.getTaskbarMidpoint(isMilestoneParent) - (this.lineStroke - 1))) + 'px;' +
10804
+ ((data.childIndex * data.rowHeight) + this.getTaskbarMidpoint(isMilestoneParent) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
10718
10805
  'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="FSType3">';
10719
10806
  div = div + rightArrow;
10720
10807
  div = div + 'left:10px;' + this.getBorderStyles('left', 10) +
@@ -10744,7 +10831,7 @@ class ConnectorLine {
10744
10831
  }
10745
10832
  if (this.getParentPosition(data) === 'FSType4') {
10746
10833
  div = div + 'left:' + (data.parentLeft + data.parentWidth) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
10747
- ((data.childIndex * data.rowHeight) + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1))) + 'px;' +
10834
+ ((data.childIndex * data.rowHeight) + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
10748
10835
  'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="FSType4">';
10749
10836
  div = div + rightArrow;
10750
10837
  div = div + 'left:' + (data.childLeft - (data.parentLeft + data.parentWidth + 10)) + 'px;' +
@@ -10770,7 +10857,7 @@ class ConnectorLine {
10770
10857
  }
10771
10858
  if (this.getParentPosition(data) === 'SSType4') {
10772
10859
  div = div + 'left:' + (data.parentLeft - 10) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
10773
- ((data.childIndex * data.rowHeight) + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1))) + 'px;' +
10860
+ ((data.childIndex * data.rowHeight) + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
10774
10861
  'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="SSType4">';
10775
10862
  div = div + rightArrow;
10776
10863
  div = div + 'left:' + (data.childLeft - data.parentLeft) + 'px;' + duplicateStingTwo;
@@ -10783,7 +10870,7 @@ class ConnectorLine {
10783
10870
  }
10784
10871
  if (this.getParentPosition(data) === 'SSType3') {
10785
10872
  div = div + 'left:' + (data.childLeft - 20) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
10786
- ((data.childIndex * data.rowHeight) + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1))) + 'px;' +
10873
+ ((data.childIndex * data.rowHeight) + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
10787
10874
  'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="SSType3">';
10788
10875
  div = div + rightArrow;
10789
10876
  div = div + 'left:10px;' + duplicateStingTwo;
@@ -10796,7 +10883,7 @@ class ConnectorLine {
10796
10883
  }
10797
10884
  if (this.getParentPosition(data) === 'SSType2') {
10798
10885
  div = div + 'left:' + setInnerElementLeftSSType2 + 'px;top:' + (isVirtual ? connectorLine$$1.top :
10799
- ((data.parentIndex * data.rowHeight) + this.getTaskbarMidpoint(isMilestoneParent) - (this.lineStroke - 1))) + 'px;' +
10886
+ ((data.parentIndex * data.rowHeight) + this.getTaskbarMidpoint(isMilestoneParent) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
10800
10887
  'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="SSType2">';
10801
10888
  div = div + eLine;
10802
10889
  div = div + 'width:' + (setInnerChildWidthSSType2 + 1) + 'px;' +
@@ -10817,7 +10904,7 @@ class ConnectorLine {
10817
10904
  if (this.getParentPosition(data) === 'SSType1') {
10818
10905
  div = div + 'left:' + (data.childLeft - 20) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
10819
10906
  ((data.parentIndex * data.rowHeight) +
10820
- this.getTaskbarMidpoint(isMilestoneParent) - (this.lineStroke - 1))) + 'px;' +
10907
+ this.getTaskbarMidpoint(isMilestoneParent) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
10821
10908
  'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="SSType1">';
10822
10909
  div = div + eLine;
10823
10910
  div = div + 'width:' + (data.parentLeft - data.childLeft + 21) + 'px;' +
@@ -10834,7 +10921,7 @@ class ConnectorLine {
10834
10921
  }
10835
10922
  if (this.getParentPosition(data) === 'FFType1') {
10836
10923
  div = div + 'left:' + (data.childLeft + data.childWidth) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
10837
- ((data.parentIndex * data.rowHeight) + this.getTaskbarMidpoint(isMilestoneParent) - (this.lineStroke - 1))) + 'px;' +
10924
+ ((data.parentIndex * data.rowHeight) + this.getTaskbarMidpoint(isMilestoneParent) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
10838
10925
  'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="FFType1">';
10839
10926
  div = div + eLine;
10840
10927
  div = div + 'left:' + (isMilestoneParent ? (((data.parentLeft + data.parentWidth) -
@@ -10858,7 +10945,7 @@ class ConnectorLine {
10858
10945
  }
10859
10946
  if (this.getParentPosition(data) === 'FFType2') {
10860
10947
  div = div + 'left:' + (data.parentLeft + data.parentWidth) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
10861
- ((data.parentIndex * data.rowHeight) + this.getTaskbarMidpoint(isMilestoneParent) - (this.lineStroke - 1))) + 'px;' +
10948
+ ((data.parentIndex * data.rowHeight) + this.getTaskbarMidpoint(isMilestoneParent) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
10862
10949
  'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="FFType2">';
10863
10950
  div = div + eLine;
10864
10951
  div = div + (isMilestoneParent ? 'left:-1px;' : '') + 'width:' +
@@ -10884,7 +10971,7 @@ class ConnectorLine {
10884
10971
  }
10885
10972
  if (this.getParentPosition(data) === 'FFType3') {
10886
10973
  div = div + 'left:' + (data.childLeft + data.childWidth) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
10887
- ((data.childIndex * data.rowHeight) + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1))) + 'px;' +
10974
+ ((data.childIndex * data.rowHeight) + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
10888
10975
  'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="FFType3">';
10889
10976
  div = div + duplicateStingOne;
10890
10977
  div = div + eLine;
@@ -10907,7 +10994,7 @@ class ConnectorLine {
10907
10994
  }
10908
10995
  if (this.getParentPosition(data) === 'FFType4') {
10909
10996
  div = div + 'left:' + (data.parentLeft + data.parentWidth) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
10910
- ((data.childIndex * data.rowHeight) + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1))) + 'px;' +
10997
+ ((data.childIndex * data.rowHeight) + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
10911
10998
  'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="FFType4">';
10912
10999
  div = div + leftArrow;
10913
11000
  div = div + ('left:' + ((data.childLeft + data.childWidth) -
@@ -10936,7 +11023,7 @@ class ConnectorLine {
10936
11023
  }
10937
11024
  if (this.getParentPosition(data) === 'SFType4') {
10938
11025
  div = div + 'left:' + (data.parentLeft - 10) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
10939
- ((data.childIndex * data.rowHeight) + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1))) + 'px;width:1px;' +
11026
+ ((data.childIndex * data.rowHeight) + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;width:1px;' +
10940
11027
  'height:' + heightValue + 'px;position:absolute" data-connectortype="SFType4">';
10941
11028
  div = div + duplicateStingFour + 'top:' + (-5 - this.lineStroke + (this.lineStroke - 1)) + 'px;' +
10942
11029
  'border-bottom-width:' + (5 + this.lineStroke) +
@@ -10964,7 +11051,7 @@ class ConnectorLine {
10964
11051
  }
10965
11052
  if (this.getParentPosition(data) === 'SFType3') {
10966
11053
  div = div + 'left:' + (data.childLeft + data.childWidth) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
10967
- ((data.childIndex * data.rowHeight) + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1))) + 'px;' +
11054
+ ((data.childIndex * data.rowHeight) + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
10968
11055
  'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="SFType3">';
10969
11056
  div = div + duplicateStingOne;
10970
11057
  div = div + eLine;
@@ -10982,7 +11069,7 @@ class ConnectorLine {
10982
11069
  }
10983
11070
  if (this.getParentPosition(data) === 'SFType1') {
10984
11071
  div = div + 'left:' + (data.parentLeft - 10) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
10985
- ((data.parentIndex * data.rowHeight) + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1))) + 'px;' +
11072
+ ((data.parentIndex * data.rowHeight) + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
10986
11073
  'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="SFType1">';
10987
11074
  div = div + eLine;
10988
11075
  div = div + 'width:11px;' + this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
@@ -11007,7 +11094,7 @@ class ConnectorLine {
11007
11094
  }
11008
11095
  if (this.getParentPosition(data) === 'SFType2') {
11009
11096
  div = div + 'left:' + (data.childLeft + data.childWidth) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
11010
- ((data.parentIndex * data.rowHeight) + this.getTaskbarMidpoint(isMilestoneParent) - (this.lineStroke - 1))) + 'px;' +
11097
+ ((data.parentIndex * data.rowHeight) + this.getTaskbarMidpoint(isMilestoneParent) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
11011
11098
  'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="SFType2">';
11012
11099
  div = div + eLine;
11013
11100
  div = div + 'left:' + (((data.parentLeft) - (data.childLeft + data.childWidth)) - 10) +
@@ -11249,6 +11336,7 @@ class Splitter$1 {
11249
11336
  this.splitterObject.paneSettings[1].size = null;
11250
11337
  this.splitterObject.paneSettings[1].size = this.getSpliterPositionInPercentage(this.splitterPreviousPositionChart);
11251
11338
  }
11339
+ this.parent.timelineModule.updateTimelineAfterZooming(this.parent.timelineModule.timelineEndDate, true);
11252
11340
  callBackPromise.resolve(splitterResizedArgs);
11253
11341
  });
11254
11342
  return callBackPromise;
@@ -11504,6 +11592,7 @@ class Tooltip$1 {
11504
11592
  args.cancel = true;
11505
11593
  }
11506
11594
  });
11595
+ this.toolTipObj.content = argsData.content;
11507
11596
  if (!this.parent.isAdaptive && args.event.type === 'mouseover') {
11508
11597
  this.currentTarget = args.target;
11509
11598
  EventHandler.add(this.currentTarget, 'mousemove', this.mouseMoveHandler.bind(this));
@@ -11530,6 +11619,7 @@ class Tooltip$1 {
11530
11619
  * @returns {void} .
11531
11620
  */
11532
11621
  updateTooltipPosition(args) {
11622
+ args.element.style.visibility = 'visible';
11533
11623
  if (isNullOrUndefined(this.tooltipMouseEvent) || args.target.classList.contains('e-notes-info')) {
11534
11624
  return;
11535
11625
  }
@@ -11559,7 +11649,6 @@ class Tooltip$1 {
11559
11649
  tooltipPositionY = tooltipPositionY + 10;
11560
11650
  }
11561
11651
  args.element.style.top = tooltipPositionY + 'px';
11562
- args.element.style.visibility = 'visible';
11563
11652
  }
11564
11653
  /**
11565
11654
  * Method to get mouse pointor position
@@ -11601,9 +11690,16 @@ class Tooltip$1 {
11601
11690
  switch (elementType) {
11602
11691
  case 'milestone':
11603
11692
  {
11604
- const sDate = !isNullOrUndefined(data.startDate) ? '<tr><td class = "e-gantt-tooltip-label"> Date</td><td>:</td>' +
11693
+ let milestoneStartDate;
11694
+ if (args.target.className.includes('e-baseline-gantt-milestone') && !isNullOrUndefined(data.baselineStartDate)) {
11695
+ milestoneStartDate = data.baselineStartDate;
11696
+ }
11697
+ else if (!isNullOrUndefined(data.startDate)) {
11698
+ milestoneStartDate = data.startDate;
11699
+ }
11700
+ const sDate = !isNullOrUndefined(milestoneStartDate) ? '<tr><td class = "e-gantt-tooltip-label"> Date</td><td>:</td>' +
11605
11701
  '<td class = "e-gantt-tooltip-value">' +
11606
- this.parent.getFormatedDate(data.startDate, this.parent.getDateFormat()) + '</td></tr>' : '';
11702
+ this.parent.getFormatedDate(milestoneStartDate, this.parent.getDateFormat()) + '</td></tr>' : '';
11607
11703
  content$$1 = '<table class = "e-gantt-tooltiptable"><tbody>' +
11608
11704
  taskName + sDate + '</tbody></table>';
11609
11705
  break;
@@ -12074,12 +12170,12 @@ class FocusModule {
12074
12170
  }
12075
12171
  }
12076
12172
 
12077
- var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
12078
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
12079
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
12080
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
12081
- return c > 3 && r && Object.defineProperty(target, key, r), r;
12082
- };
12173
+ var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
12174
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
12175
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
12176
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
12177
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
12178
+ };
12083
12179
  /**
12084
12180
  *
12085
12181
  * Represents the Gantt chart component.
@@ -12328,25 +12424,7 @@ let Gantt = class Gantt extends Component {
12328
12424
  * @returns {void} .
12329
12425
  */
12330
12426
  calculateDimensions() {
12331
- let settingsHeight;
12332
- if (typeof (this.height) !== 'number' && this.height.indexOf('%') !== -1 && (this.element.parentElement &&
12333
- !this.element.parentElement.style.height || this.element.parentElement.style.height.indexOf('%') !== -1)) {
12334
- let ganttHeight;
12335
- if (this.element.parentElement.style.height.indexOf('%') == -1) {
12336
- ganttHeight = Number(this.height.split("%")[0]);
12337
- }
12338
- else {
12339
- ganttHeight = Number(this.element.parentElement.style.height.split("%")[0]);
12340
- }
12341
- ganttHeight = (ganttHeight * window.innerHeight) / 100;
12342
- if (this.height === '100%') {
12343
- ganttHeight = ganttHeight - 16;
12344
- }
12345
- settingsHeight = this.validateDimentionValue(ganttHeight);
12346
- }
12347
- else {
12348
- settingsHeight = this.validateDimentionValue(this.height);
12349
- }
12427
+ let settingsHeight = this.validateDimentionValue(this.height);
12350
12428
  let settingsWidth = this.validateDimentionValue(this.width);
12351
12429
  if (!isNullOrUndefined(this.width) && typeof (this.width) === 'string' && this.width.indexOf('%') !== -1) {
12352
12430
  settingsWidth = this.width;
@@ -12489,40 +12567,6 @@ let Gantt = class Gantt extends Component {
12489
12567
  */
12490
12568
  windowResize() {
12491
12569
  if (!isNullOrUndefined(this.element)) {
12492
- let settingsHeight;
12493
- if (this.height.indexOf('%') !== -1) {
12494
- let ganttHeight = Number(this.height.split("%")[0]);
12495
- if (this.element.parentElement && (this.element.parentElement.style.height)) {
12496
- let containerHeight;
12497
- if (this.element.parentElement.style.height.indexOf('%') == -1) {
12498
- containerHeight = Number(this.element.parentElement.style.height.split("px")[0]);
12499
- ganttHeight = (ganttHeight * containerHeight) / 100;
12500
- }
12501
- else {
12502
- containerHeight = Number(this.element.parentElement.style.height.split("%")[0]);
12503
- ganttHeight = (window.innerHeight * containerHeight) / 100;
12504
- }
12505
- }
12506
- else {
12507
- ganttHeight = Number(this.height.split("%")[0]);
12508
- ganttHeight = (ganttHeight * window.innerHeight) / 100;
12509
- }
12510
- if (this.height === '100%') {
12511
- ganttHeight = ganttHeight - 16;
12512
- }
12513
- let toolbarHeight = 0;
12514
- if (!isNullOrUndefined(this.toolbarModule) && !isNullOrUndefined(this.toolbarModule.element)) {
12515
- toolbarHeight = this.toolbarModule.element.offsetHeight;
12516
- }
12517
- let contentHeight = ganttHeight - this.ganttChartModule.chartTimelineContainer.offsetHeight - toolbarHeight;
12518
- settingsHeight = this.validateDimentionValue(ganttHeight);
12519
- this.element.style.height = settingsHeight;
12520
- this.element.querySelectorAll('.e-content')[0]['style'].height = contentHeight + 'px';
12521
- this.element.querySelectorAll('.e-content')[2]['style'].height = contentHeight + 'px';
12522
- }
12523
- else {
12524
- settingsHeight = this.validateDimentionValue(this.height);
12525
- }
12526
12570
  this.updateContentHeight();
12527
12571
  this.ganttChartModule.updateWidthAndHeight(); // Updating chart scroll conatiner height for row mismatch
12528
12572
  this.treeGridModule.ensureScrollBar();
@@ -12867,6 +12911,18 @@ let Gantt = class Gantt extends Component {
12867
12911
  * @private
12868
12912
  */
12869
12913
  treeDataBound(args) {
12914
+ this.element.getElementsByClassName('e-chart-root-container')[0]['style'].height = '100%';
12915
+ let gridHeight = this.element.getElementsByClassName('e-gridcontent')[0]['style'].height;
12916
+ let timelineContainer = this.element.getElementsByClassName('e-timeline-header-container')[0]['offsetHeight'];
12917
+ gridHeight = 'calc(100% - ' + timelineContainer + 'px)';
12918
+ // eslint-disable-next-line
12919
+ this.element.getElementsByClassName('e-chart-scroll-container e-content')[0]['style'].height = 'calc(100% - ' + timelineContainer + 'px)';
12920
+ if (!isNullOrUndefined(this.toolbarModule) && !isNullOrUndefined(this.toolbarModule.element)) {
12921
+ this.splitterElement.style.height = 'calc(100% - ' + this.toolbarModule.element.offsetHeight + 'px)';
12922
+ }
12923
+ else {
12924
+ this.splitterElement.style.height = '100%';
12925
+ }
12870
12926
  if (this.isLoad) {
12871
12927
  this.updateCurrentViewData();
12872
12928
  if (!this.enableVirtualization) {
@@ -12886,8 +12942,7 @@ let Gantt = class Gantt extends Component {
12886
12942
  removeClass(this.treeGrid.element.querySelectorAll('.e-headercell'), timelineSingleHeaderOuterDiv);
12887
12943
  removeClass(this.treeGrid.element.querySelectorAll('.e-columnheader'), timelineSingleHeaderOuterDiv);
12888
12944
  }
12889
- this.treeGrid.height = this.ganttHeight - toolbarHeight -
12890
- this.treeGrid.grid.getHeaderContent().offsetHeight;
12945
+ this.treeGrid.height = '100%';
12891
12946
  this.notify('tree-grid-created', {});
12892
12947
  this.createGanttPopUpElement();
12893
12948
  this.hideSpinner();
@@ -13397,7 +13452,7 @@ let Gantt = class Gantt extends Component {
13397
13452
  */
13398
13453
  updateGridLineContainerHeight() {
13399
13454
  if (this.chartVerticalLineContainer) {
13400
- this.chartVerticalLineContainer.style.height = formatUnit(this.getContentHeight());
13455
+ this.chartVerticalLineContainer.style.height = formatUnit(this.contentHeight);
13401
13456
  }
13402
13457
  }
13403
13458
  /**
@@ -15305,7 +15360,8 @@ class CellEdit {
15305
15360
  args.cancel = true;
15306
15361
  return;
15307
15362
  }
15308
- if (data.hasChildRecords && (field === taskSettings.endDate || field === taskSettings.duration
15363
+ if (data.hasChildRecords && ((field === taskSettings.endDate && ((!isNullOrUndefined(data['isManual']) &&
15364
+ data['isManual'] == false) || this.parent.taskMode == 'Auto')) || field === taskSettings.duration
15309
15365
  || field === taskSettings.dependency || field === taskSettings.progress
15310
15366
  || field === taskSettings.work || field === 'taskType')) {
15311
15367
  args.cancel = true;
@@ -19401,7 +19457,8 @@ class DialogEdit {
19401
19457
  disabled = true;
19402
19458
  }
19403
19459
  if (this.editedRecord.hasChildRecords) {
19404
- if (column.field === this.parent.taskFields.endDate || column.field === this.parent.taskFields.duration ||
19460
+ if ((column.field === this.parent.taskFields.endDate && ((!isNullOrUndefined(this.editedRecord['isManual']) &&
19461
+ this.editedRecord['isManual'] == false) || this.parent.taskMode == 'Auto')) || column.field === this.parent.taskFields.duration ||
19405
19462
  column.field === this.parent.taskFields.progress || column.field === this.parent.taskFields.work ||
19406
19463
  column.field === 'taskType') {
19407
19464
  disabled = true;
@@ -23195,7 +23252,15 @@ class Edit$2 {
23195
23252
  }
23196
23253
  /* data Source update */
23197
23254
  if (!isNullOrUndefined(parentItem)) {
23198
- childIndex = parentItem.childRecords.indexOf(this.addRowSelectedItem);
23255
+ if (rowPosition == 'Above') {
23256
+ childIndex = parentItem.childRecords.indexOf(this.addRowSelectedItem);
23257
+ }
23258
+ else if (rowPosition == 'Below') {
23259
+ childIndex = parentItem.childRecords.indexOf(this.addRowSelectedItem) + 1;
23260
+ }
23261
+ else {
23262
+ childIndex = parentItem.childRecords.length;
23263
+ }
23199
23264
  /*Child collection update*/
23200
23265
  parentItem.childRecords.splice(childIndex, 0, record);
23201
23266
  if ((this.parent.dataSource instanceof DataManager &&
@@ -23203,12 +23268,9 @@ class Edit$2 {
23203
23268
  !isNullOrUndefined(this.parent.dataSource)) {
23204
23269
  const child = this.parent.taskFields.child;
23205
23270
  if (parentItem.taskData[child] && parentItem.taskData[child].length > 0) {
23206
- if (rowPosition === 'Above') {
23271
+ if (rowPosition === 'Above' || rowPosition === 'Below') {
23207
23272
  parentItem.taskData[child].splice(childIndex, 0, record.taskData);
23208
23273
  }
23209
- else if (rowPosition === 'Below') {
23210
- parentItem.taskData[child].splice(childIndex + 1, 0, record.taskData);
23211
- }
23212
23274
  else {
23213
23275
  parentItem.taskData[child].push(record.taskData);
23214
23276
  }
@@ -23276,9 +23338,21 @@ class Edit$2 {
23276
23338
  refreshRecordInImmutableMode() {
23277
23339
  for (let i = 0; i < this.parent.modifiedRecords.length; i++) {
23278
23340
  const originalData = this.parent.modifiedRecords[i];
23279
- const dataId = this.parent.viewType === 'ProjectView' ?
23280
- originalData.ganttProperties.taskId : originalData.ganttProperties.rowUniqueID;
23281
- this.parent.treeGrid.grid.setRowData(dataId, originalData);
23341
+ let treeIndex = this.parent.allowRowDragAndDrop ? 1 : 0;
23342
+ let uniqueTaskID = this.parent.taskFields.id;
23343
+ var originalIndex = this.parent.currentViewData.findIndex((data) => {
23344
+ return (data[uniqueTaskID] == originalData[uniqueTaskID]);
23345
+ });
23346
+ if (this.parent.treeGrid.getRows()[originalIndex]) {
23347
+ this.parent.treeGrid.renderModule.cellRender({
23348
+ data: originalData, cell: this.parent.treeGrid.getRows()[originalIndex].cells[this.parent.treeColumnIndex + treeIndex],
23349
+ column: this.parent.treeGrid.grid.getColumns()[this.parent.treeColumnIndex],
23350
+ requestType: 'rowDragAndDrop'
23351
+ });
23352
+ this.parent.treeGrid.renderModule.RowModifier({
23353
+ data: originalData, row: this.parent.treeGrid.getRows()[originalIndex], rowHeight: this.parent.rowHeight
23354
+ });
23355
+ }
23282
23356
  }
23283
23357
  }
23284
23358
  /**
@@ -23655,6 +23729,9 @@ class Edit$2 {
23655
23729
  }
23656
23730
  this.addSuccess(args);
23657
23731
  args = this.constructTaskAddedEventArgs(cAddedRecord, args.modifiedRecords, 'add');
23732
+ if (this.dialogModule.isAddNewResource && !this.parent.isEdit && this.parent.taskFields.work) {
23733
+ this.parent.dataOperation.updateWorkWithDuration(cAddedRecord[0]);
23734
+ }
23658
23735
  this.parent.trigger('actionComplete', args);
23659
23736
  if (this.dialogModule.dialog && !this.dialogModule.dialogObj.isDestroyed) {
23660
23737
  this.dialogModule.dialogObj.hide();
@@ -24029,15 +24106,18 @@ class Edit$2 {
24029
24106
  if (this.dropPosition === 'topSegment' || this.dropPosition === 'bottomSegment') {
24030
24107
  draggedRec[this.parent.taskFields.parentID] = droppedRec[this.parent.taskFields.parentID];
24031
24108
  draggedRec.taskData[this.parent.taskFields.parentID] = droppedRec[this.parent.taskFields.parentID];
24109
+ draggedRec.ganttProperties['parentId'] = droppedRec[this.parent.taskFields.parentID];
24032
24110
  }
24033
24111
  else {
24034
24112
  draggedRec[this.parent.taskFields.parentID] = droppedRec[this.parent.taskFields.id];
24035
24113
  draggedRec.taskData[this.parent.taskFields.parentID] = droppedRec[this.parent.taskFields.id];
24114
+ draggedRec.ganttProperties['parentId'] = droppedRec[this.parent.taskFields.id];
24036
24115
  }
24037
24116
  }
24038
24117
  else {
24039
24118
  draggedRec[this.parent.taskFields.parentID] = null;
24040
24119
  draggedRec.taskData[this.parent.taskFields.parentID] = null;
24120
+ draggedRec.ganttProperties['parentId'] = null;
24041
24121
  }
24042
24122
  }
24043
24123
  }
@@ -24889,8 +24969,9 @@ class Selection$1 {
24889
24969
  }
24890
24970
  this.addRemoveClass(index);
24891
24971
  this.selectedRowIndexes = extend([], this.getSelectedRowIndexes(), [], true);
24892
- if (this.selectedRowIndexes.length == 0) {
24893
- this.parent.setProperties({ selectedRowIndex: -1 }, true);
24972
+ this.parent.setProperties({ selectedRowIndex: -1 }, true);
24973
+ if (this.selectedRowIndexes.length === 1) {
24974
+ this.parent.setProperties({ selectedRowIndex: this.selectedRowIndexes[0] }, true);
24894
24975
  }
24895
24976
  if (!isNullOrUndefined(this.parent.toolbarModule)) {
24896
24977
  this.parent.toolbarModule.refreshToolbarItems();
@@ -25760,6 +25841,7 @@ class NonWorkingDay {
25760
25841
  this.nonworkingContainer = createElement('div', {
25761
25842
  className: nonworkingContainer
25762
25843
  });
25844
+ this.nonworkingContainer.setAttribute("role", "NonWorkingDays");
25763
25845
  this.parent.ganttChartModule.chartBodyContent.appendChild(this.nonworkingContainer);
25764
25846
  }
25765
25847
  }
@@ -25797,8 +25879,11 @@ class NonWorkingDay {
25797
25879
  let toDate;
25798
25880
  const container = createElement('div');
25799
25881
  const height = this.parent.contentHeight;
25800
- const scrollElement = this.parent.ganttChartModule.scrollElement;
25801
- const viewportHeight = parseInt(scrollElement.style.height, 10);
25882
+ let toolbarHeight = 0;
25883
+ if (!isNullOrUndefined(this.parent.toolbarModule)) {
25884
+ toolbarHeight = this.parent.toolbarModule.element.offsetHeight;
25885
+ }
25886
+ const viewportHeight = this.parent.ganttHeight - toolbarHeight - this.parent.ganttChartModule.chartTimelineContainer.offsetHeight;
25802
25887
  for (let i = 0; i < this.parent.holidays.length; i++) {
25803
25888
  if (this.parent.holidays[i].from && this.parent.holidays[i].to) {
25804
25889
  fromDate = this.parent.dateValidationModule.getDateFromFormat(this.parent.holidays[i].from);
@@ -25891,9 +25976,12 @@ class NonWorkingDay {
25891
25976
  return container;
25892
25977
  }
25893
25978
  updateHolidayLabelHeight() {
25894
- const height = this.parent.contentHeight;
25895
- const scrollElement = this.parent.ganttChartModule.scrollElement;
25896
- const viewportHeight = parseInt(scrollElement.style.height, 10);
25979
+ const height = this.parent.getContentHeight();
25980
+ let toolbarHeight = 0;
25981
+ if (!isNullOrUndefined(this.parent.toolbarModule) && !isNullOrUndefined(this.parent.toolbarModule.element)) {
25982
+ toolbarHeight = this.parent.toolbarModule.element.offsetHeight;
25983
+ }
25984
+ const viewportHeight = this.parent.ganttHeight - toolbarHeight - this.parent.ganttChartModule.chartTimelineContainer.offsetHeight;
25897
25985
  const top = (viewportHeight < height) ? viewportHeight / 2 : height / 2;
25898
25986
  const labels = this.holidayContainer.querySelectorAll('.' + holidayLabel);
25899
25987
  for (let i = 0; i < labels.length; i++) {
@@ -25949,6 +26037,7 @@ class EventMarker$1 {
25949
26037
  this.eventMarkersContainer = createElement('div', {
25950
26038
  className: eventMarkersContainer
25951
26039
  });
26040
+ this.eventMarkersContainer.setAttribute("role", "EventMarker");
25952
26041
  this.parent.ganttChartModule.chartBodyContent.appendChild(this.eventMarkersContainer);
25953
26042
  }
25954
26043
  this.eventMarkersContainer.innerHTML = '';
@@ -27119,19 +27208,31 @@ class RowDD$1 {
27119
27208
  let data = gObj.flatData;
27120
27209
  let startIndex;
27121
27210
  let endIndex;
27211
+ let ganttData = this.parent.dataSource;
27212
+ let uniqueTaskID = this.parent.taskFields.id;
27122
27213
  if (draggedRecord.index < droppedRecord.index) {
27123
27214
  startIndex = draggedRecord.index;
27124
- endIndex = droppedRecord.index;
27215
+ for (let i = 0; i < ganttData.length; i++) {
27216
+ let currentData = this.parent.currentViewData.filter(function (e) {
27217
+ return e[uniqueTaskID] === ganttData[i][uniqueTaskID];
27218
+ })[0];
27219
+ if (currentData.index > droppedRecord.index) {
27220
+ endIndex = currentData.index;
27221
+ break;
27222
+ }
27223
+ }
27125
27224
  }
27126
27225
  else {
27127
27226
  startIndex = droppedRecord.index;
27128
- let rootChildRecord = draggedRecord;
27129
- if (rootChildRecord.childRecords.length > 0) {
27130
- do {
27131
- rootChildRecord = rootChildRecord.childRecords[rootChildRecord.childRecords.length - 1];
27132
- } while (rootChildRecord.childRecords.length > 0);
27227
+ for (let i = 0; i < ganttData.length; i++) {
27228
+ let currentData = this.parent.currentViewData.filter(function (e) {
27229
+ return e[uniqueTaskID] === ganttData[i][uniqueTaskID];
27230
+ })[0];
27231
+ if (currentData.index > draggedRecord.index) {
27232
+ endIndex = currentData.index;
27233
+ break;
27234
+ }
27133
27235
  }
27134
- endIndex = rootChildRecord.index;
27135
27236
  }
27136
27237
  for (let i = startIndex; i <= endIndex; i++) {
27137
27238
  if (!isNullOrUndefined(data[i])) {