@syncfusion/ej2-gantt 20.3.61 → 20.4.40

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 (107) hide show
  1. package/.eslintrc.json +16 -1
  2. package/CHANGELOG.md +19 -0
  3. package/README.md +64 -52
  4. package/dist/ej2-gantt.min.js +2 -2
  5. package/dist/ej2-gantt.umd.min.js +2 -2
  6. package/dist/ej2-gantt.umd.min.js.map +1 -1
  7. package/dist/es6/ej2-gantt.es2015.js +1522 -511
  8. package/dist/es6/ej2-gantt.es2015.js.map +1 -1
  9. package/dist/es6/ej2-gantt.es5.js +1548 -519
  10. package/dist/es6/ej2-gantt.es5.js.map +1 -1
  11. package/dist/global/ej2-gantt.min.js +2 -2
  12. package/dist/global/ej2-gantt.min.js.map +1 -1
  13. package/dist/global/index.d.ts +1 -1
  14. package/package.json +21 -23
  15. package/src/gantt/actions/chart-scroll.d.ts +5 -1
  16. package/src/gantt/actions/chart-scroll.js +39 -1
  17. package/src/gantt/actions/connector-line-edit.js +2 -0
  18. package/src/gantt/actions/context-menu.js +36 -5
  19. package/src/gantt/actions/critical-path.d.ts +2 -2
  20. package/src/gantt/actions/critical-path.js +23 -16
  21. package/src/gantt/actions/dependency.js +5 -2
  22. package/src/gantt/actions/dialog-edit.js +37 -14
  23. package/src/gantt/actions/edit.d.ts +1 -0
  24. package/src/gantt/actions/edit.js +156 -34
  25. package/src/gantt/actions/excel-export.js +13 -0
  26. package/src/gantt/actions/filter.js +3 -0
  27. package/src/gantt/actions/keyboard.js +1 -0
  28. package/src/gantt/actions/pdf-export.js +12 -0
  29. package/src/gantt/actions/rowdragdrop.js +8 -2
  30. package/src/gantt/actions/taskbar-edit.js +140 -43
  31. package/src/gantt/actions/toolbar.js +21 -1
  32. package/src/gantt/base/date-processor.js +1 -1
  33. package/src/gantt/base/gantt-chart.js +31 -3
  34. package/src/gantt/base/gantt-model.d.ts +25 -2
  35. package/src/gantt/base/gantt.d.ts +64 -21
  36. package/src/gantt/base/gantt.js +405 -29
  37. package/src/gantt/base/interface.d.ts +0 -4
  38. package/src/gantt/base/splitter.js +12 -2
  39. package/src/gantt/base/task-processor.js +21 -6
  40. package/src/gantt/base/tree-grid.js +37 -0
  41. package/src/gantt/base/utils.js +1 -0
  42. package/src/gantt/export/pdf-connector-line.js +185 -187
  43. package/src/gantt/models/loading-indicator-model.d.ts +20 -0
  44. package/src/gantt/models/loading-indicator.d.ts +18 -0
  45. package/src/gantt/models/loading-indicator.js +34 -0
  46. package/src/gantt/models/models.d.ts +2 -0
  47. package/src/gantt/models/models.js +1 -0
  48. package/src/gantt/renderer/chart-rows.js +153 -56
  49. package/src/gantt/renderer/connector-line.js +100 -97
  50. package/src/gantt/renderer/edit-tooltip.js +22 -3
  51. package/src/gantt/renderer/event-marker.js +15 -2
  52. package/src/gantt/renderer/nonworking-day.js +4 -2
  53. package/src/gantt/renderer/timeline.js +22 -2
  54. package/src/gantt/renderer/tooltip.js +1 -0
  55. package/styles/bootstrap-dark.css +179 -12
  56. package/styles/bootstrap.css +179 -12
  57. package/styles/bootstrap4.css +179 -11
  58. package/styles/bootstrap5-dark.css +178 -10
  59. package/styles/bootstrap5.css +178 -10
  60. package/styles/fabric-dark.css +179 -12
  61. package/styles/fabric.css +179 -12
  62. package/styles/fluent-dark.css +180 -10
  63. package/styles/fluent.css +180 -10
  64. package/styles/gantt/_bootstrap-dark-definition.scss +6 -2
  65. package/styles/gantt/_bootstrap-definition.scss +6 -3
  66. package/styles/gantt/_bootstrap4-definition.scss +6 -3
  67. package/styles/gantt/_bootstrap5-definition.scss +6 -3
  68. package/styles/gantt/_fabric-dark-definition.scss +6 -3
  69. package/styles/gantt/_fabric-definition.scss +6 -3
  70. package/styles/gantt/_fluent-definition.scss +6 -3
  71. package/styles/gantt/_fusionnew-definition.scss +6 -3
  72. package/styles/gantt/_highcontrast-definition.scss +7 -4
  73. package/styles/gantt/_highcontrast-light-definition.scss +6 -3
  74. package/styles/gantt/_layout.scss +234 -21
  75. package/styles/gantt/_material-dark-definition.scss +6 -3
  76. package/styles/gantt/_material-definition.scss +6 -3
  77. package/styles/gantt/_material3-definition.scss +6 -3
  78. package/styles/gantt/_tailwind-definition.scss +6 -3
  79. package/styles/gantt/_theme.scss +17 -8
  80. package/styles/gantt/bootstrap-dark.css +179 -12
  81. package/styles/gantt/bootstrap.css +179 -12
  82. package/styles/gantt/bootstrap4.css +179 -11
  83. package/styles/gantt/bootstrap5-dark.css +178 -10
  84. package/styles/gantt/bootstrap5.css +178 -10
  85. package/styles/gantt/fabric-dark.css +179 -12
  86. package/styles/gantt/fabric.css +179 -12
  87. package/styles/gantt/fluent-dark.css +180 -10
  88. package/styles/gantt/fluent.css +180 -10
  89. package/styles/gantt/highcontrast-light.css +178 -10
  90. package/styles/gantt/highcontrast.css +179 -12
  91. package/styles/gantt/icons/_bootstrap-dark.scss +1 -1
  92. package/styles/gantt/icons/_bootstrap.scss +1 -1
  93. package/styles/gantt/icons/_fabric-dark.scss +1 -1
  94. package/styles/gantt/icons/_fabric.scss +1 -1
  95. package/styles/gantt/icons/_highcontrast.scss +1 -1
  96. package/styles/gantt/icons/_material-dark.scss +1 -1
  97. package/styles/gantt/icons/_material.scss +1 -1
  98. package/styles/gantt/material-dark.css +177 -12
  99. package/styles/gantt/material.css +179 -12
  100. package/styles/gantt/tailwind-dark.css +178 -10
  101. package/styles/gantt/tailwind.css +178 -10
  102. package/styles/highcontrast-light.css +178 -10
  103. package/styles/highcontrast.css +179 -12
  104. package/styles/material-dark.css +177 -12
  105. package/styles/material.css +179 -12
  106. package/styles/tailwind-dark.css +178 -10
  107. package/styles/tailwind.css +178 -10
@@ -150,6 +150,7 @@ function updateDates(record, parent) {
150
150
  function formatString(str, args) {
151
151
  var regx;
152
152
  for (var i = 0; i < args.length; i++) {
153
+ // eslint-disable-next-line detect-non-literal-regexp
153
154
  regx = new RegExp('\\{' + (i) + '\\}', 'gm');
154
155
  str = str.replace(regx, args[i].toString());
155
156
  }
@@ -488,7 +489,7 @@ var DateProcessor = /** @__PURE__ @class */ (function () {
488
489
  tDuration = this.parent.editModule.taskbarEditModule.sumOfDuration(ganttProperties.segments);
489
490
  }
490
491
  else {
491
- if (!isNullOrUndefined(ganttProperties.startDate) && !isNullOrUndefined(ganttProperties.endDate) &&
492
+ if ((!isNullOrUndefined(this.parent.taskFields.milestone)) && (!isNullOrUndefined(ganttProperties.startDate)) && !isNullOrUndefined(ganttProperties.endDate) &&
492
493
  (ganttProperties.startDate).getTime() === (ganttProperties.endDate).getTime() && !isNullOrUndefined(ganttData.taskData[this.parent.taskFields.milestone])) {
493
494
  tDuration = 1;
494
495
  }
@@ -1887,7 +1888,6 @@ var TaskProcessor = /** @__PURE__ @class */ (function (_super) {
1887
1888
  this.parent.setRecordValue('parentId', data[taskSettings.parentID], ganttProperties, true);
1888
1889
  }
1889
1890
  this.addCustomFieldValue(data, ganttData);
1890
- ganttData.checkboxState = 'uncheck';
1891
1891
  this.parent.setRecordValue('isAutoSchedule', autoSchedule, ganttProperties, true);
1892
1892
  this.parent.setRecordValue('resourceInfo', this.setResourceInfo(data), ganttProperties, true);
1893
1893
  this.parent.setRecordValue('isMilestone', false, ganttProperties, true);
@@ -2079,8 +2079,10 @@ var TaskProcessor = /** @__PURE__ @class */ (function (_super) {
2079
2079
  taskData.push(this.setSegmentTaskData(segment, segments[i]));
2080
2080
  }
2081
2081
  this.parent.setRecordValue('duration', sumOfDuration, data.ganttProperties, true);
2082
- this.parent.setRecordValue('endDate', ganttSegments[ganttSegments.length - 1].endDate, data.ganttProperties, true);
2083
- if (!isNullOrUndefined(taskSettings.endDate)) {
2082
+ if (!isNullOrUndefined(ganttSegments[ganttSegments.length - 1])) {
2083
+ this.parent.setRecordValue('endDate', ganttSegments[ganttSegments.length - 1].endDate, data.ganttProperties, true);
2084
+ }
2085
+ if (!isNullOrUndefined(taskSettings.endDate) && !isNullOrUndefined(ganttSegments[ganttSegments.length - 1])) {
2084
2086
  this.parent.setRecordValue(this.parent.taskFields.endDate, ganttSegments[ganttSegments.length - 1].endDate, data, true);
2085
2087
  }
2086
2088
  this.parent.setRecordValue('taskData.' + this.parent.taskFields.segments, taskData, data);
@@ -2578,7 +2580,7 @@ var TaskProcessor = /** @__PURE__ @class */ (function (_super) {
2578
2580
  }
2579
2581
  else if (endDate) {
2580
2582
  sDate = new Date(endDate.getTime());
2581
- milestone = true;
2583
+ milestone = isNullOrUndefined(startDate) && this.parent.allowUnscheduledTasks ? false : true;
2582
2584
  }
2583
2585
  else {
2584
2586
  sDate = this.getValidStartDate(ganttProp);
@@ -2701,6 +2703,9 @@ var TaskProcessor = /** @__PURE__ @class */ (function (_super) {
2701
2703
  else if (isMilestone && this.getSecondsInDecimal(date) === this.parent.defaultEndTime) {
2702
2704
  date.setHours(24);
2703
2705
  }
2706
+ else if (this.getSecondsInDecimal(date) === this.parent.defaultEndTime && this.parent.allowUnscheduledTasks) {
2707
+ date.setHours(22);
2708
+ }
2704
2709
  }
2705
2710
  var timelineStartDate = this.parent.timelineModule.timelineStartDate;
2706
2711
  if (timelineStartDate) {
@@ -3680,7 +3685,12 @@ var TaskProcessor = /** @__PURE__ @class */ (function (_super) {
3680
3685
  durationInDay = (childGanttRecord.ganttProperties.duration / (this.parent.secondsPerDay / 60));
3681
3686
  break;
3682
3687
  default:
3683
- durationInDay = childGanttRecord.ganttProperties.duration;
3688
+ if (childGanttRecord.ganttProperties.duration < 1) {
3689
+ durationInDay = (childGanttRecord.ganttProperties.duration / (this.parent.secondsPerDay / 3600));
3690
+ }
3691
+ else {
3692
+ durationInDay = childGanttRecord.ganttProperties.duration;
3693
+ }
3684
3694
  }
3685
3695
  if (childGanttRecord.hasChildRecords) {
3686
3696
  setValue('totalProgress', childGanttRecord.ganttProperties.totalProgress, progressValues);
@@ -3757,7 +3767,13 @@ var TaskProcessor = /** @__PURE__ @class */ (function (_super) {
3757
3767
  if (!childData.ganttProperties.isMilestone && isScheduledTask(childData.ganttProperties)) {
3758
3768
  progressValues = this.getParentProgress(childData);
3759
3769
  totalProgress += getValue('totalProgress', progressValues);
3760
- totalDuration += getValue('totalDuration', progressValues);
3770
+ if (childData[this.parent.taskFields.duration] < 1) {
3771
+ totalDuration += getValue('totalDuration', progressValues);
3772
+ totalDuration = Number(totalDuration.toFixed(4));
3773
+ }
3774
+ else {
3775
+ totalDuration += getValue('totalDuration', progressValues);
3776
+ }
3761
3777
  }
3762
3778
  else {
3763
3779
  milestoneCount++;
@@ -4005,6 +4021,8 @@ var ChartScroll = /** @__PURE__ @class */ (function () {
4005
4021
  ChartScroll.prototype.addEventListeners = function () {
4006
4022
  this.parent.on('grid-scroll', this.gridScrollHandler, this);
4007
4023
  EventHandler.add(this.element, 'scroll', this.onScroll, this);
4024
+ this.parent.treeGrid.grid.on('showGanttShimmer', this.updateShimmer, this);
4025
+ this.parent.treeGrid.grid.on('removeGanttShimmer', this.removeShimmer, this);
4008
4026
  };
4009
4027
  /**
4010
4028
  * Unbind events
@@ -4014,6 +4032,8 @@ var ChartScroll = /** @__PURE__ @class */ (function () {
4014
4032
  ChartScroll.prototype.removeEventListeners = function () {
4015
4033
  EventHandler.remove(this.element, 'scroll', this.onScroll);
4016
4034
  this.parent.off('grid-scroll', this.gridScrollHandler);
4035
+ this.parent.treeGrid.grid.off('showGanttShimmer', this.updateShimmer);
4036
+ this.parent.treeGrid.grid.off('removeGanttShimmer', this.removeShimmer);
4017
4037
  };
4018
4038
  /**
4019
4039
  *
@@ -4059,6 +4079,27 @@ var ChartScroll = /** @__PURE__ @class */ (function () {
4059
4079
  this.parent.chartVerticalLineContainer.style.top = formatUnit(scrollTop);
4060
4080
  }
4061
4081
  };
4082
+ ChartScroll.prototype.removeShimmer = function () {
4083
+ var parent = this.parent;
4084
+ setTimeout(function () {
4085
+ parent.hideMaskRow();
4086
+ }, 0);
4087
+ };
4088
+
4089
+ ChartScroll.prototype.updateShimmer = function () {
4090
+ var parent = this.parent;
4091
+ setTimeout(function () {
4092
+ parent.showMaskRow();
4093
+ }, 0);
4094
+ };
4095
+ ChartScroll.prototype.updateSpinner = function () {
4096
+ var parent = this.parent;
4097
+ this.parent.showSpinner();
4098
+ window.clearTimeout(this.isScrolling);
4099
+ this.isScrolling = setTimeout(function () {
4100
+ parent.hideSpinner();
4101
+ }, 200);
4102
+ };
4062
4103
  /**
4063
4104
  * Scroll event handler
4064
4105
  *
@@ -4084,6 +4125,16 @@ var ChartScroll = /** @__PURE__ @class */ (function () {
4084
4125
  scrollArgs.scrollDirection = 'Horizontal';
4085
4126
  scrollArgs.action = 'HorizontalScroll';
4086
4127
  }
4128
+ if ((scrollArgs.scrollDirection != 'Horizontal' && !isNullOrUndefined(scrollArgs.scrollDirection)) && this.parent.enableVirtualization === true && (this.parent.isToolBarClick
4129
+ || isNullOrUndefined(this.parent.isToolBarClick))) {
4130
+ this.parent.isVirtualScroll = true;
4131
+ if (this.parent.showIndicator || isNullOrUndefined(this.parent.showIndicator)) {
4132
+ if (!this.parent.enableVirtualMaskRow && this.parent.enableVirtualization && this.parent.loadingIndicator.indicatorType === "Spinner") {
4133
+ this.updateSpinner();
4134
+ }
4135
+ }
4136
+ }
4137
+ this.parent.isToolBarClick = true;
4087
4138
  scrollArgs.requestType = 'scroll';
4088
4139
  this.parent.trigger('actionComplete', scrollArgs);
4089
4140
  };
@@ -4124,7 +4175,10 @@ var ChartScroll = /** @__PURE__ @class */ (function () {
4124
4175
  * @param {number} scrollLeft - To set scroll left for scroll container
4125
4176
  * @returns {void} .
4126
4177
  */
4127
- ChartScroll.prototype.setScrollLeft = function (scrollLeft) {
4178
+ ChartScroll.prototype.setScrollLeft = function (scrollLeft, leftSign) {
4179
+ if (leftSign) {
4180
+ scrollLeft = leftSign == -1 && this.parent.enableRtl ? -scrollLeft : scrollLeft;
4181
+ }
4128
4182
  this.element.scrollLeft = scrollLeft;
4129
4183
  this.parent.ganttChartModule.chartTimelineContainer.scrollLeft = this.element.scrollLeft;
4130
4184
  this.previousScroll.left = this.element.scrollLeft;
@@ -4273,6 +4327,21 @@ var GanttChart = /** @__PURE__ @class */ (function () {
4273
4327
  this.parent.predecessorModule.createConnectorLinesCollection();
4274
4328
  }
4275
4329
  this.parent.connectorLineModule.renderConnectorLines(this.parent.updatedConnectorLineCollection);
4330
+ for (var i = 0; i < this.parent.chartRowsModule.ganttChartTableBody.children.length; i++) {
4331
+ if (this.parent.chartRowsModule.ganttChartTableBody.children[i].children[0].children[1].children[4]) {
4332
+ this.parent.chartRowsModule.ganttChartTableBody.children[i].children[0].children[1].children[1].setAttribute('tabindex', '-1');
4333
+ this.parent.chartRowsModule.ganttChartTableBody.children[i].children[0].children[1].children[2].setAttribute('tabindex', '-1');
4334
+ this.parent.chartRowsModule.ganttChartTableBody.children[i].children[0].children[1].children[4].setAttribute('tabindex', '-1');
4335
+ }
4336
+ else {
4337
+ if (this.parent.viewType === 'ProjectView') {
4338
+ this.parent.chartRowsModule.ganttChartTableBody.children[i].children[0].children[1].children[1].setAttribute('tabindex', '-1');
4339
+ }
4340
+ else if (this.parent.chartRowsModule.ganttChartTableBody.children[i].children[0].children[1].children[0]) {
4341
+ this.parent.chartRowsModule.ganttChartTableBody.children[i].children[0].children[1].children[0].setAttribute('tabindex', '-1');
4342
+ }
4343
+ }
4344
+ }
4276
4345
  if (this.parent.enableCriticalPath) {
4277
4346
  var crtiticalModule = this.parent.criticalPathModule;
4278
4347
  this.parent.criticalPathModule.criticalConnectorLine(crtiticalModule.criticalPathCollection, crtiticalModule.detailPredecessorCollection, this.parent.enableCriticalPath, crtiticalModule.predecessorCollectionTaskIds);
@@ -4336,11 +4405,13 @@ var GanttChart = /** @__PURE__ @class */ (function () {
4336
4405
  for (var i = 0; i < rangeCollection.length; i++) {
4337
4406
  var height = this.getRangeHeight(currentRecord);
4338
4407
  var leftDiv = createElement('div', {
4339
- className: rangeChildContainer + ' ' + 'e-leftarc', styles: "left:" + rangeCollection[i].left + "px;\n top: " + Math.floor((this.parent.rowHeight - this.parent.chartRowsModule.taskBarHeight) / 2) + "px;\n height: " + (height + 1) + "px; border-right: 0px"
4408
+ className: rangeChildContainer + ' ' + 'e-leftarc', styles: (this.parent.enableRtl ? 'right:' : 'left:') +
4409
+ ((this.parent.enableRtl ? rangeCollection[i].left + rangeCollection[i].width - 5 : rangeCollection[i].left) + "px;\n top: " + Math.floor((this.parent.rowHeight - this.parent.chartRowsModule.taskBarHeight) / 2) + "px;\n height: " + (height + 1) + "px; border-right: 0px")
4340
4410
  });
4341
4411
  var rightDiv = createElement('div', {
4342
4412
  className: rangeChildContainer + ' ' + 'e-rightarc',
4343
- styles: "left:" + (rangeCollection[i].left + rangeCollection[i].width - 5) + "px;\n top: " + Math.floor((this.parent.rowHeight - this.parent.chartRowsModule.taskBarHeight) / 2) + "px; height: " + (height + 1) + "px;\n border-left: 0px"
4413
+ styles: (this.parent.enableRtl ? 'right:' : 'left:') + ((this.parent.enableRtl ? rangeCollection[i].left :
4414
+ rangeCollection[i].left + rangeCollection[i].width - 5) + "px;\n top: " + Math.floor((this.parent.rowHeight - this.parent.chartRowsModule.taskBarHeight) / 2) + "px; height: " + (height + 1) + "px;\n border-left: 0px")
4344
4415
  });
4345
4416
  parentDiv.appendChild(leftDiv);
4346
4417
  parentDiv.appendChild(rightDiv);
@@ -4355,6 +4426,10 @@ var GanttChart = /** @__PURE__ @class */ (function () {
4355
4426
  GanttChart.prototype.renderTimelineContainer = function () {
4356
4427
  this.chartTimelineContainer =
4357
4428
  createElement('div', { className: timelineHeaderContainer });
4429
+ if (this.parent.enableRtl) {
4430
+ this.chartTimelineContainer.style.borderLeftWidth = '1px';
4431
+ this.chartTimelineContainer.style.borderRightWidth = '0px';
4432
+ }
4358
4433
  this.chartTimelineContainer.setAttribute("role", "presentation");
4359
4434
  this.chartElement.appendChild(this.chartTimelineContainer);
4360
4435
  };
@@ -4527,7 +4602,7 @@ var GanttChart = /** @__PURE__ @class */ (function () {
4527
4602
  scrollLeft = this.scrollElement.scrollWidth <= scrollLeft ? this.scrollElement.scrollWidth : scrollLeft;
4528
4603
  if ((this.scrollElement.offsetWidth + this.parent.ganttChartModule.scrollElement.scrollLeft) < scrollLeft
4529
4604
  || (this.scrollElement.scrollLeft > scrollLeft)) {
4530
- this.scrollObject.setScrollLeft(scrollLeft - 50);
4605
+ this.scrollObject.setScrollLeft(scrollLeft - 50, this.parent.enableRtl ? -1 : 0);
4531
4606
  }
4532
4607
  // this.parent.ganttChartModule.scrollObject.updateLeftPosition();
4533
4608
  };
@@ -4585,6 +4660,13 @@ var GanttChart = /** @__PURE__ @class */ (function () {
4585
4660
  }
4586
4661
  this.parent.notify('chartMouseUp', e);
4587
4662
  if (this.parent.showActiveElement) {
4663
+ this.parent.showIndicator = true;
4664
+ if (!isNullOrUndefined(this.parent.loadingIndicator) && this.parent.loadingIndicator.indicatorType === "Shimmer") {
4665
+ this.parent.hideMaskRow();
4666
+ }
4667
+ else {
4668
+ this.parent.hideSpinner();
4669
+ }
4588
4670
  if (this.focusedElement && !e.target.classList.contains('e-split-bar')) {
4589
4671
  this.focusedElement.tabIndex = this.focusedElement.tabIndex === 0 ? -1 : this.focusedElement.tabIndex;
4590
4672
  removeClass([this.focusedElement], 'e-active-container');
@@ -5505,7 +5587,7 @@ var Timeline = /** @__PURE__ @class */ (function () {
5505
5587
  this.totalTimelineWidth = 0;
5506
5588
  this.customTimelineSettings = null;
5507
5589
  this.parent.isTimelineRoundOff = this.isZoomToFit ? false : isNullOrUndefined(this.parent.projectStartDate) ? true : false;
5508
- if (this.parent.enablePersistence) {
5590
+ if (this.parent.enablePersistence && this.parent.isLoad) {
5509
5591
  this.parent.timelineSettings = this.parent.currentZoomingLevel;
5510
5592
  }
5511
5593
  };
@@ -5604,6 +5686,12 @@ var Timeline = /** @__PURE__ @class */ (function () {
5604
5686
  cancel: false
5605
5687
  };
5606
5688
  this.parent.trigger('actionBegin', args);
5689
+ if (!isNullOrUndefined(this.parent.loadingIndicator) && this.parent.loadingIndicator.indicatorType === "Shimmer") {
5690
+ this.parent.showMaskRow();
5691
+ }
5692
+ else {
5693
+ this.parent.showSpinner();
5694
+ }
5607
5695
  if (!args.cancel) {
5608
5696
  newTimeline = args.timeline;
5609
5697
  this.changeTimelineSettings(newTimeline);
@@ -5645,6 +5733,12 @@ var Timeline = /** @__PURE__ @class */ (function () {
5645
5733
  timeline: this.parent.currentZoomingLevel
5646
5734
  };
5647
5735
  this.parent.trigger('actionComplete', args);
5736
+ if (!isNullOrUndefined(this.parent.loadingIndicator) && this.parent.loadingIndicator.indicatorType === "Shimmer") {
5737
+ this.parent.hideMaskRow();
5738
+ }
5739
+ else {
5740
+ this.parent.hideSpinner();
5741
+ }
5648
5742
  }
5649
5743
  };
5650
5744
  /**
@@ -5712,6 +5806,12 @@ var Timeline = /** @__PURE__ @class */ (function () {
5712
5806
  this.parent.toolbarModule.enableItems([this.parent.controlId + '_zoomin', this.parent.controlId + '_zoomout'], true);
5713
5807
  }
5714
5808
  this.parent.trigger('actionBegin', args);
5809
+ if (!isNullOrUndefined(this.parent.loadingIndicator) && this.parent.loadingIndicator.indicatorType === "Shimmer") {
5810
+ this.parent.showMaskRow();
5811
+ }
5812
+ else {
5813
+ this.parent.showSpinner();
5814
+ }
5715
5815
  this.changeTimelineSettings(newTimeline);
5716
5816
  };
5717
5817
  Timeline.prototype.bottomTierCellWidthCalc = function (mode, zoomLevel, date) {
@@ -6823,7 +6923,9 @@ var Timeline = /** @__PURE__ @class */ (function () {
6823
6923
  var validStartLeft = this.parent.dataOperation.getTaskLeft(validStartDate, false);
6824
6924
  var validEndLeft = this.parent.dataOperation.getTaskLeft(validEndDate, false);
6825
6925
  var isChanged = void 0;
6826
- if (!isNullOrUndefined(maxStartLeft) && ((minStartDate < this.timelineStartDate) || (!isNullOrUndefined(this.parent.editModule.taskbarEditModule)) && (!isNullOrUndefined(this.parent.editModule.taskbarEditModule.taskBarEditAction))) && (maxStartLeft < this.bottomTierCellWidth || maxStartLeft <= validStartLeft)) {
6926
+ if (!isNullOrUndefined(maxStartLeft) && ((minStartDate < this.timelineStartDate) ||
6927
+ (!isNullOrUndefined(this.parent.editModule.taskbarEditModule)) &&
6928
+ (!isNullOrUndefined(this.parent.editModule.taskbarEditModule.taskBarEditAction))) && (maxStartLeft < this.bottomTierCellWidth || maxStartLeft <= validStartLeft)) {
6827
6929
  isChanged = 'prevTimeSpan';
6828
6930
  minStartDate = minStartDate > this.timelineStartDate ? this.timelineStartDate : minStartDate;
6829
6931
  }
@@ -7065,9 +7167,12 @@ var GanttTreeGrid = /** @__PURE__ @class */ (function () {
7065
7167
  this.parent.treeGrid.showColumnMenu = this.parent.showColumnMenu;
7066
7168
  this.parent.treeGrid.enableCollapseAll = this.parent.collapseAllParentTasks;
7067
7169
  this.parent.treeGrid.columnMenuItems = this.parent.columnMenuItems;
7170
+ this.parent.treeGrid.enableRtl = this.parent.enableRtl;
7068
7171
  this.parent.treeGrid.childMapping = isNullOrUndefined(this.parent.taskFields.child) ? '' : this.parent.taskFields.child;
7069
7172
  this.parent.treeGrid.treeColumnIndex = this.parent.treeColumnIndex;
7070
7173
  this.parent.treeGrid.columns = this.treeGridColumns;
7174
+ this.parent.treeGrid.loadingIndicator = this.parent.loadingIndicator;
7175
+ this.parent.treeGrid.enableVirtualMaskRow = this.parent.enableVirtualMaskRow;
7071
7176
  if (this.parent.dataSource instanceof Object && isCountRequired(this.parent)) {
7072
7177
  // In order to bind the observable data at load time, hasChildMapping is necessary to be mapped.
7073
7178
  this.parent.treeGrid.hasChildMapping = 'isParent';
@@ -7161,6 +7266,14 @@ var GanttTreeGrid = /** @__PURE__ @class */ (function () {
7161
7266
  GanttTreeGrid.prototype.dataBound = function (args) {
7162
7267
  this.ensureScrollBar();
7163
7268
  this.parent.treeDataBound(args);
7269
+ if (this.parent.isVirtualScroll) {
7270
+ if ((this.parent.enableVirtualMaskRow && this.parent.enableVirtualization) ||
7271
+ (this.parent.enableVirtualization && !this.parent.enableVirtualMaskRow && this.parent.loadingIndicator.indicatorType === "Shimmer") ||
7272
+ (this.parent.loadingIndicator.indicatorType === "Shimmer")) {
7273
+ this.parent.hideMaskRow();
7274
+ }
7275
+ this.parent.isVirtualScroll = false;
7276
+ }
7164
7277
  this.prevCurrentView = extend([], [], this.parent.currentViewData, true);
7165
7278
  };
7166
7279
  GanttTreeGrid.prototype.dataStateChange = function (args) {
@@ -7195,6 +7308,12 @@ var GanttTreeGrid = /** @__PURE__ @class */ (function () {
7195
7308
  var collapsedArgs = this.createExpandCollapseArgs(args);
7196
7309
  this.parent.ganttChartModule.collapsedGanttRow(collapsedArgs);
7197
7310
  }
7311
+ if (!isNullOrUndefined(this.parent.loadingIndicator) && this.parent.loadingIndicator.indicatorType === "Shimmer") {
7312
+ this.parent.hideMaskRow();
7313
+ }
7314
+ else {
7315
+ this.parent.hideSpinner();
7316
+ }
7198
7317
  };
7199
7318
  GanttTreeGrid.prototype.expanded = function (args) {
7200
7319
  if (!this.parent.ganttChartModule.isExpandCollapseFromChart && !this.parent.isExpandCollapseLevelMethod) {
@@ -7203,6 +7322,12 @@ var GanttTreeGrid = /** @__PURE__ @class */ (function () {
7203
7322
  this.parent.ganttChartModule.expandedGanttRow(expandedArgs);
7204
7323
  }
7205
7324
  }
7325
+ if (!isNullOrUndefined(this.parent.loadingIndicator) && this.parent.loadingIndicator.indicatorType === "Shimmer") {
7326
+ this.parent.hideMaskRow();
7327
+ }
7328
+ else {
7329
+ this.parent.hideSpinner();
7330
+ }
7206
7331
  };
7207
7332
  GanttTreeGrid.prototype.actionBegin = function (args) {
7208
7333
  this.parent.notify('actionBegin', args);
@@ -7211,6 +7336,14 @@ var GanttTreeGrid = /** @__PURE__ @class */ (function () {
7211
7336
  setValue('doubleClickTarget', null, this.parent.treeGrid.editModule);
7212
7337
  }
7213
7338
  this.parent.trigger('actionBegin', args);
7339
+ if (args.requestType != "virtualscroll" && args.type != "edit" && args.requestType != "beginEdit") {
7340
+ if (!isNullOrUndefined(this.parent.loadingIndicator) && this.parent.loadingIndicator.indicatorType === "Shimmer") {
7341
+ this.parent.showMaskRow();
7342
+ }
7343
+ else {
7344
+ this.parent.showSpinner();
7345
+ }
7346
+ }
7214
7347
  }; // eslint-disable-next-line
7215
7348
  GanttTreeGrid.prototype.created = function (args) {
7216
7349
  this.updateKeyConfigSettings();
@@ -7279,6 +7412,12 @@ var GanttTreeGrid = /** @__PURE__ @class */ (function () {
7279
7412
  this.parent.addDeleteRecord = false;
7280
7413
  }
7281
7414
  this.parent.trigger('actionComplete', updatedArgs);
7415
+ if (!isNullOrUndefined(this.parent.loadingIndicator) && this.parent.loadingIndicator.indicatorType === "Shimmer") {
7416
+ this.parent.hideMaskRow();
7417
+ }
7418
+ else {
7419
+ this.parent.hideSpinner();
7420
+ }
7282
7421
  };
7283
7422
  GanttTreeGrid.prototype.updateKeyConfigSettings = function () {
7284
7423
  delete this.parent.treeGrid.grid.keyboardModule.keyConfigs.delete;
@@ -8465,11 +8604,44 @@ var ResourceFields = /** @__PURE__ @class */ (function (_super) {
8465
8604
  return ResourceFields;
8466
8605
  }(ChildProperty));
8467
8606
 
8607
+ var __extends$18 = (undefined && undefined.__extends) || (function () {
8608
+ var extendStatics = function (d, b) {
8609
+ extendStatics = Object.setPrototypeOf ||
8610
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
8611
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
8612
+ return extendStatics(d, b);
8613
+ };
8614
+ return function (d, b) {
8615
+ extendStatics(d, b);
8616
+ function __() { this.constructor = d; }
8617
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
8618
+ };
8619
+ })();
8620
+ var __decorate$17 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
8621
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
8622
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
8623
+ 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;
8624
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
8625
+ };
8626
+ /**
8627
+ * Configures the Loading Indicator of the Gantt.
8628
+ */
8629
+ var LoadingIndicator = /** @__PURE__ @class */ (function (_super) {
8630
+ __extends$18(LoadingIndicator, _super);
8631
+ function LoadingIndicator() {
8632
+ return _super !== null && _super.apply(this, arguments) || this;
8633
+ }
8634
+ __decorate$17([
8635
+ Property('Spinner')
8636
+ ], LoadingIndicator.prototype, "indicatorType", void 0);
8637
+ return LoadingIndicator;
8638
+ }(ChildProperty));
8639
+
8468
8640
  /**
8469
8641
  * Export all generated models for complex settings
8470
8642
  */
8471
8643
 
8472
- var __extends$18 = (undefined && undefined.__extends) || (function () {
8644
+ var __extends$19 = (undefined && undefined.__extends) || (function () {
8473
8645
  var extendStatics = function (d, b) {
8474
8646
  extendStatics = Object.setPrototypeOf ||
8475
8647
  ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
@@ -8486,7 +8658,7 @@ var __extends$18 = (undefined && undefined.__extends) || (function () {
8486
8658
  * To render the chart rows in Gantt
8487
8659
  */
8488
8660
  var ChartRows = /** @__PURE__ @class */ (function (_super) {
8489
- __extends$18(ChartRows, _super);
8661
+ __extends$19(ChartRows, _super);
8490
8662
  function ChartRows(ganttObj) {
8491
8663
  var _this = _super.call(this, ganttObj) || this;
8492
8664
  _this.taskBarHeight = 0;
@@ -8578,7 +8750,7 @@ var ChartRows = /** @__PURE__ @class */ (function (_super) {
8578
8750
  ChartRows.prototype.getIndicatorNode = function (indicator) {
8579
8751
  var templateString = '<label class="' + label + ' ' + taskIndicatorDiv + '"style="line-height:'
8580
8752
  + (this.parent.rowHeight) + 'px;' +
8581
- 'left:' + this.getIndicatorleft(indicator.date) + 'px;"><i class="' + indicator.iconClass + '"></i> </label>';
8753
+ (this.parent.enableRtl ? 'right:' : 'left:') + this.getIndicatorleft(indicator.date) + 'px;"><i class="' + indicator.iconClass + '"></i> </label>';
8582
8754
  return this.createDivElement(templateString);
8583
8755
  };
8584
8756
  /**
@@ -8604,6 +8776,13 @@ var ChartRows = /** @__PURE__ @class */ (function (_super) {
8604
8776
  ChartRows.prototype.getChildTaskbarNode = function (i, rootElement) {
8605
8777
  var childTaskbarNode = null;
8606
8778
  var data = this.templateData;
8779
+ var direction;
8780
+ if (this.parent.enableRtl) {
8781
+ direction = 'right:';
8782
+ }
8783
+ else {
8784
+ direction = 'left:';
8785
+ }
8607
8786
  if (this.childTaskbarTemplateFunction) {
8608
8787
  childTaskbarNode = this.childTaskbarTemplateFunction(extend({ index: i }, data), this.parent, 'TaskbarTemplate', this.getTemplateID('TaskbarTemplate'), false, undefined, rootElement[0], this.parent.treeGrid['root']);
8609
8788
  }
@@ -8646,14 +8825,15 @@ var ChartRows = /** @__PURE__ @class */ (function (_super) {
8646
8825
  }
8647
8826
  if (isNaN(parseInt(labelString))) {
8648
8827
  taskLabel$$1 = '<span class="' + taskLabel + '" style="line-height:' +
8649
- (this.taskBarHeight - 1) + 'px; text-align: left;' +
8828
+ (this.taskBarHeight - 1) + 'px; text-align:' + (this.parent.enableRtl ? 'right;' : 'left;') +
8650
8829
  'display:' + 'inline-block;' +
8651
8830
  'width:' + (data.ganttProperties.width - 10) + 'px; height:' +
8652
8831
  this.taskBarHeight + 'px;">' + labelString + '</span>';
8653
8832
  }
8654
8833
  else {
8655
8834
  taskLabel$$1 = '<span class="' + taskLabel + '" style="line-height:' +
8656
- (this.taskBarHeight - 1) + 'px;' + (this.parent.viewType === 'ResourceView' ? 'text-align: left;' : '') +
8835
+ (this.taskBarHeight - 1) + 'px;' + (this.parent.viewType === 'ResourceView' ? ('text-align:' +
8836
+ (this.parent.enableRtl ? 'right;' : 'left;')) : '') +
8657
8837
  +(this.parent.viewType === 'ResourceView' ? 'display:inline-flex;' : '') +
8658
8838
  +(this.parent.viewType === 'ResourceView' ? (data.ganttProperties.width - 10) : '') + 'px; height:' +
8659
8839
  this.taskBarHeight + 'px;">' + labelString + '</span>';
@@ -8665,17 +8845,17 @@ var ChartRows = /** @__PURE__ @class */ (function (_super) {
8665
8845
  (data.ganttProperties.startDate && !data.ganttProperties.endDate && !data.ganttProperties.duration) ? ('<div class="' + childProgressBarInnerDiv + ' ' + traceChildTaskBar + ' ' +
8666
8846
  unscheduledTaskbarLeft + ' ' + (data.ganttProperties.isAutoSchedule ?
8667
8847
  '' : manualChildTaskBar) + '"' +
8668
- 'style="left:' + data.ganttProperties.left + 'px; height:' + this.taskBarHeight + 'px;"></div>') :
8848
+ 'style="' + direction + data.ganttProperties.left + 'px; height:' + this.taskBarHeight + 'px;"></div>') :
8669
8849
  (data.ganttProperties.endDate && !data.ganttProperties.startDate && !data.ganttProperties.duration) ?
8670
8850
  ('<div class="' + childProgressBarInnerDiv + ' ' + traceChildTaskBar + ' ' +
8671
8851
  unscheduledTaskbarRight + ' ' + (data.ganttProperties.isAutoSchedule ?
8672
8852
  '' : manualChildTaskBar) + '"' +
8673
- 'style="left:' + data.ganttProperties.left + 'px; height:' + this.taskBarHeight + 'px;"></div>') :
8853
+ 'style="' + direction + data.ganttProperties.left + 'px; height:' + this.taskBarHeight + 'px;"></div>') :
8674
8854
  (data.ganttProperties.duration && !data.ganttProperties.startDate && !data.ganttProperties.endDate) ?
8675
8855
  ('<div class="' + childProgressBarInnerDiv + ' ' + traceChildTaskBar + ' ' +
8676
8856
  unscheduledTaskbar + ' ' + (data.ganttProperties.isAutoSchedule ?
8677
8857
  '' : manualChildTaskBar) + '"' +
8678
- 'style="left:' + data.ganttProperties.left + 'px; width:' + data.ganttProperties.width + 'px;' +
8858
+ 'style="' + direction + data.ganttProperties.left + 'px; width:' + data.ganttProperties.width + 'px;' +
8679
8859
  ' height:' + this.taskBarHeight + 'px;"></div>') : '';
8680
8860
  if (data.ganttProperties.startDate && data.ganttProperties.endDate && data.ganttProperties.duration &&
8681
8861
  (isNullOrUndefined(data.ganttProperties.segments) || (!isNullOrUndefined(data.ganttProperties.segments) &&
@@ -8703,6 +8883,13 @@ var ChartRows = /** @__PURE__ @class */ (function (_super) {
8703
8883
  childTaskbarNode = this.createDivElement(template);
8704
8884
  }
8705
8885
  }
8886
+ if (this.parent.enableRtl && childTaskbarNode[0] && childTaskbarNode[0].querySelector('.e-task-label')) {
8887
+ childTaskbarNode[0].querySelector('.e-task-label').style.marginLeft = '15px';
8888
+ childTaskbarNode[0].querySelector('.e-task-label').style.marginRight = '8px';
8889
+ if (childTaskbarNode[0].querySelector('.e-gantt-child-progressbar')) {
8890
+ childTaskbarNode[0].querySelector('.e-gantt-child-progressbar').style.textAlign = 'left';
8891
+ }
8892
+ }
8706
8893
  return childTaskbarNode;
8707
8894
  };
8708
8895
  ChartRows.prototype.splitTaskbar = function (data, labelString) {
@@ -8722,7 +8909,7 @@ var ChartRows = /** @__PURE__ @class */ (function (_super) {
8722
8909
  //split taskbar
8723
8910
  '<div class="' + childTaskBarInnerDiv + ' ' + segmentPosition + ' ' + traceChildTaskBar + ' ' +
8724
8911
  ' e-segmented-taskbar' +
8725
- '"style="width:' + segment.width + 'px;position: absolute; left:' + segment.left + 'px;height:' +
8912
+ '"style="width:' + segment.width + 'px;position: absolute;' + (this.parent.enableRtl ? 'right:' : 'left:') + segment.left + 'px;height:' +
8726
8913
  (this.taskBarHeight) + 'px; overflow:' + progressBarVisible + ';" data-segment-index = "' + i + '" aria-label = "' +
8727
8914
  this.generateSpiltTaskAriaLabel(segment, data.ganttProperties) + '"> ' +
8728
8915
  this.getSplitTaskbarLeftResizerNode() +
@@ -8730,7 +8917,7 @@ var ChartRows = /** @__PURE__ @class */ (function (_super) {
8730
8917
  '<div class="' + childProgressBarInnerDiv + ' ' + traceChildProgressBar + ' ' +
8731
8918
  '" style="border-style:' + (segment.progressWidth ? 'solid;' : 'none;') +
8732
8919
  'display:' + (segment.progressWidth >= 0 ? 'block;' : 'none;') +
8733
- 'width:' + segment.progressWidth + 'px;height:100%;' +
8920
+ 'width:' + segment.progressWidth + 'px;height:100%;' + 'text-align:' + (this.parent.enableRtl ? 'left;' : 'right;') +
8734
8921
  'border-top-right-radius:' + this.getSplitTaskBorderRadius(segment) + 'px;' +
8735
8922
  'border-bottom-right-radius:' + this.getSplitTaskBorderRadius(segment) + 'px;">' +
8736
8923
  // progress label
@@ -8747,19 +8934,20 @@ var ChartRows = /** @__PURE__ @class */ (function (_super) {
8747
8934
  ChartRows.prototype.getSplitTaskbarLeftResizerNode = function () {
8748
8935
  var lResizerLeft = -(this.parent.isAdaptive ? 12 : 2);
8749
8936
  var template = '<div class="' + taskBarLeftResizer + ' ' + icon + '"' +
8750
- ' style="left:' + lResizerLeft + 'px;height:' + (this.taskBarHeight) + 'px;"></div>';
8937
+ ' style="' + (this.parent.enableRtl ? 'right:' : 'left:') + lResizerLeft + 'px;height:' + (this.taskBarHeight) + 'px;"></div>';
8751
8938
  return template;
8752
8939
  };
8753
8940
  ChartRows.prototype.getSplitTaskbarRightResizerNode = function (segment) {
8754
8941
  var rResizerLeft = this.parent.isAdaptive ? -2 : -10;
8755
8942
  var template = '<div class="' + taskBarRightResizer + ' ' + icon + '"' +
8756
- ' style="left:' + (segment.width + rResizerLeft) + 'px;' +
8943
+ ' style="' + (this.parent.enableRtl ? 'right:' : 'left:') + (segment.width + rResizerLeft) + 'px;' +
8757
8944
  'height:' + (this.taskBarHeight) + 'px;"></div>';
8758
8945
  return template;
8759
8946
  };
8760
8947
  ChartRows.prototype.getSplitProgressResizerNode = function (segment) {
8948
+ var width = this.parent.enableRtl ? (segment.progressWidth + 8) : (segment.progressWidth - 6);
8761
8949
  var template = '<div class="' + childProgressResizer + '"' +
8762
- ' style="left:' + (segment.progressWidth - 6) + 'px;margin-top:' +
8950
+ ' style="' + (this.parent.enableRtl ? 'right:' : 'left:') + width + 'px;margin-top:' +
8763
8951
  (this.taskBarHeight - 4) + 'px;"><div class="' + progressBarHandler + '"' +
8764
8952
  '><div class="' + progressHandlerElement + '"></div>' +
8765
8953
  '<div class="' + progressBarHandlerAfter + '"></div></div>';
@@ -8889,6 +9077,12 @@ var ChartRows = /** @__PURE__ @class */ (function (_super) {
8889
9077
  }
8890
9078
  }
8891
9079
  this.parent.trigger('actionComplete', args);
9080
+ if (!isNullOrUndefined(this.parent.loadingIndicator) && this.parent.loadingIndicator.indicatorType === "Shimmer") {
9081
+ this.parent.hideMaskRow();
9082
+ }
9083
+ else {
9084
+ this.parent.hideSpinner();
9085
+ }
8892
9086
  setValue('isEdit', false, this.parent.contextMenuModule);
8893
9087
  setValue('isEdit', false, this.parent);
8894
9088
  };
@@ -9093,7 +9287,7 @@ var ChartRows = /** @__PURE__ @class */ (function (_super) {
9093
9287
  ChartRows.prototype.getTaskBaselineNode = function () {
9094
9288
  var data = this.templateData;
9095
9289
  var template = '<div class="' + baselineBar + ' ' + '" role="term" style="margin-top:' + this.baselineTop +
9096
- 'px;left:' + data.ganttProperties.baselineLeft + 'px;' +
9290
+ 'px;' + (this.parent.enableRtl ? 'right:' : 'left:') + data.ganttProperties.baselineLeft + 'px;' +
9097
9291
  'width:' + data.ganttProperties.baselineWidth + 'px;height:' +
9098
9292
  this.baselineHeight + 'px;' + (this.baselineColor ? 'background-color: ' + this.baselineColor + ';' : '') + '"></div>';
9099
9293
  return this.createDivElement(template);
@@ -9108,7 +9302,7 @@ var ChartRows = /** @__PURE__ @class */ (function (_super) {
9108
9302
  var data = this.templateData;
9109
9303
  var baselineMilestoneHeight = this.parent.renderBaseline ? 5 : 2;
9110
9304
  var template = '<div class="' + baselineMilestoneContainer + ' ' + '" style="' +
9111
- 'left:' + (data.ganttProperties.baselineLeft - this.milesStoneRadius) + 'px;' +
9305
+ (this.parent.enableRtl ? 'right:' : 'left:') + (data.ganttProperties.baselineLeft - this.milesStoneRadius) + 'px;' +
9112
9306
  'margin-top:' + (-Math.floor(this.parent.rowHeight - this.milestoneMarginTop) + baselineMilestoneHeight) +
9113
9307
  'px">' + '<div class="' + baselineMilestoneDiv + '">' + '<div class="' + baselineMilestoneDiv +
9114
9308
  ' ' + baselineMilestoneTop + '" ' +
@@ -9158,6 +9352,10 @@ var ChartRows = /** @__PURE__ @class */ (function (_super) {
9158
9352
  }
9159
9353
  leftLabelNode[0].appendChild([].slice.call(leftLabelTemplateNode)[0]);
9160
9354
  }
9355
+ if (this.parent.enableRtl) {
9356
+ leftLabelNode[0].style.paddingLeft = '25px';
9357
+ leftLabelNode[0].style.paddingRight = '0px';
9358
+ }
9161
9359
  return leftLabelNode;
9162
9360
  };
9163
9361
  ChartRows.prototype.getLableText = function (labelString, labelDiv) {
@@ -9204,6 +9402,10 @@ var ChartRows = /** @__PURE__ @class */ (function (_super) {
9204
9402
  }
9205
9403
  rightLabelNode[0].appendChild([].slice.call(rightLabelTemplateNode)[0]);
9206
9404
  }
9405
+ if (this.parent.enableRtl) {
9406
+ rightLabelNode[0].style.marginLeft = '0px';
9407
+ rightLabelNode[0].style.paddingRight = '25px';
9408
+ }
9207
9409
  return rightLabelNode;
9208
9410
  };
9209
9411
  ChartRows.prototype.getManualTaskbar = function () {
@@ -9223,17 +9425,18 @@ var ChartRows = /** @__PURE__ @class */ (function (_super) {
9223
9425
  taskbarHeight * 2 + 'px;border-left-width:' + taskbarHeight / 5 +
9224
9426
  'px; border-bottom:' + taskbarHeight / 5 + 'px solid transparent;"></div>');
9225
9427
  var template = '<div class="' + manualParentMainContainer + '"' +
9226
- 'style=left:' + (data.ganttProperties.left - data.ganttProperties.autoLeft) + 'px;' +
9428
+ 'style=' + (this.parent.enableRtl ? 'right:' : 'left:') + (data.ganttProperties.left - data.ganttProperties.autoLeft) + 'px;' +
9227
9429
  'width:' + data.ganttProperties.width + 'px;' +
9228
9430
  'height:' + taskbarHeight + 'px;>' + innerDiv + ((data.ganttProperties.startDate && data.ganttProperties.endDate &&
9229
9431
  data.ganttProperties.duration) || data.ganttProperties.duration ? '<div class="e-gantt-manualparenttaskbar-left" style=' +
9230
- '"height:' + taskbarHeight + 'px;border-left-width:' + taskbarHeight / 5 +
9432
+ (this.parent.enableRtl ? 'margin-right:0px;' : '') + '"height:' + taskbarHeight + 'px;border-left-width:' + taskbarHeight / 5 +
9231
9433
  'px; border-bottom:' + taskbarHeight / 5 + 'px solid transparent;"></div>' +
9232
- '<div class="e-gantt-manualparenttaskbar-right" style=' +
9233
- 'left:' + (data.ganttProperties.width - taskbarHeight / 5) + 'px;height:' +
9434
+ '<div class="e-gantt-manualparenttaskbar-right" style=' + (this.parent.enableRtl ? 'margin-right:-8px;' : '') +
9435
+ (this.parent.enableRtl ? 'right:' : 'left:') + (data.ganttProperties.width - taskbarHeight / 5) + 'px;height:' +
9234
9436
  (taskbarHeight) + 'px;border-right-width:' + taskbarHeight / 5 + 'px;border-bottom:' +
9235
9437
  taskbarHeight / 5 + 'px solid transparent;>' + '</div></div>' : '');
9236
- var milestoneTemplate = '<div class="' + manualParentMilestone + '" style="position:absolute;left:' +
9438
+ var milestoneTemplate = '<div class="' + manualParentMilestone + '" style="position:absolute;' +
9439
+ (this.parent.enableRtl ? 'right:' : 'left:') +
9237
9440
  (data.ganttProperties.left - data.ganttProperties.autoLeft - (this.milestoneHeight / 2)) +
9238
9441
  'px;width:' + (this.milesStoneRadius * 2) +
9239
9442
  'px;">' + '<div class="' + manualParentMilestoneTop + '" style="border-right-width:' +
@@ -9294,7 +9497,7 @@ var ChartRows = /** @__PURE__ @class */ (function (_super) {
9294
9497
  }
9295
9498
  if (isNaN(parseInt(labelString))) {
9296
9499
  labelDiv = '<span class="' + taskLabel + '" style="line-height:' +
9297
- (this.taskBarHeight - 1) + 'px; text-align: left;' +
9500
+ (this.taskBarHeight - 1) + 'px; text-align:' + (this.parent.enableRtl ? 'right;' : 'left;') +
9298
9501
  'display:' + 'inline-block;' +
9299
9502
  'width:' + (data.ganttProperties.width - 10) + 'px; height:' +
9300
9503
  this.taskBarHeight + 'px;">' + labelString + '</span>';
@@ -9332,6 +9535,13 @@ var ChartRows = /** @__PURE__ @class */ (function (_super) {
9332
9535
  parentTaskbarNode = data.ganttProperties.isMilestone ?
9333
9536
  this.createDivElement(data.ganttProperties.isAutoSchedule ? milestoneTemplate : '') : template;
9334
9537
  }
9538
+ if (this.parent.enableRtl && parentTaskbarNode[0] && parentTaskbarNode[0].querySelector('.e-task-label')) {
9539
+ parentTaskbarNode[0].querySelector('.e-task-label').style.marginLeft = '15px';
9540
+ parentTaskbarNode[0].querySelector('.e-task-label').style.marginRight = '8px';
9541
+ if (parentTaskbarNode[0].querySelector('.e-gantt-parent-progressbar')) {
9542
+ parentTaskbarNode[0].querySelector('.e-gantt-parent-progressbar').style.textAlign = 'left';
9543
+ }
9544
+ }
9335
9545
  return parentTaskbarNode;
9336
9546
  };
9337
9547
  /**
@@ -9427,35 +9637,36 @@ var ChartRows = /** @__PURE__ @class */ (function (_super) {
9427
9637
  ((data.ganttProperties.cssClass) ? data.ganttProperties.cssClass : '') + '" ' +
9428
9638
  ' tabindex="-1" role="term" style="' + ((data.ganttProperties.isMilestone && !manualParent) ?
9429
9639
  ('width:' + this.milestoneHeight + 'px;height:' +
9430
- this.milestoneHeight + 'px;margin-top:' + this.milestoneMarginTop + 'px;left:' + (data.ganttProperties.left -
9640
+ this.milestoneHeight + 'px;margin-top:' + this.milestoneMarginTop + 'px;' + (this.parent.enableRtl ? 'right:' : 'left:') + (data.ganttProperties.left -
9431
9641
  (this.milestoneHeight / 2)) + 'px;') : ('width:' + data.ganttProperties.width +
9432
- 'px;margin-top:' + this.taskBarMarginTop + 'px;left:' + (!data.hasChildRecords || data.ganttProperties.isAutoSchedule ?
9642
+ 'px;margin-top:' + this.taskBarMarginTop + 'px;' + (this.parent.enableRtl ? 'right:' : 'left:') + (!data.hasChildRecords || data.ganttProperties.isAutoSchedule ?
9433
9643
  data.ganttProperties.left : data.ganttProperties.autoLeft) + 'px;height:' +
9434
9644
  this.taskBarHeight + 'px;cursor:' + (data.ganttProperties.isAutoSchedule ? 'move;' : 'auto;'))) + '"></div>';
9435
9645
  return this.createDivElement(template);
9436
9646
  };
9437
9647
  ChartRows.prototype.rightLabelContainer = function () {
9438
9648
  var template = '<div class="' + ((this.rightTaskLabelTemplateFunction) ? rightLabelTempContainer :
9439
- rightLabelContainer) + '" ' + ' tabindex="-1" role="term" style="left:' + this.getRightLabelLeft(this.templateData) + 'px; height:'
9649
+ rightLabelContainer) + '" ' + ' tabindex="-1" role="term" style="' + (this.parent.enableRtl ? 'right:' : 'left:') + this.getRightLabelLeft(this.templateData) + 'px; height:'
9440
9650
  + (this.parent.rowHeight - 2) + 'px;"></div>';
9441
9651
  return this.createDivElement(template);
9442
9652
  };
9443
9653
  ChartRows.prototype.childTaskbarLeftResizer = function () {
9444
9654
  var lResizerLeft = -(this.parent.isAdaptive ? 12 : 2);
9445
9655
  var template = '<div class="' + taskBarLeftResizer + ' ' + icon + '"' +
9446
- 'style="left:' + lResizerLeft + 'px;height:' + (this.taskBarHeight) + 'px;"></div>';
9656
+ 'style="' + (this.parent.enableRtl ? 'right:' : 'left:') + lResizerLeft + 'px;height:' + (this.taskBarHeight) + 'px;"></div>';
9447
9657
  return this.createDivElement(template);
9448
9658
  };
9449
9659
  ChartRows.prototype.childTaskbarRightResizer = function () {
9450
9660
  var rResizerLeft = this.parent.isAdaptive ? -2 : -10;
9451
9661
  var template = '<div class="' + taskBarRightResizer + ' ' + icon + '"' +
9452
- 'style="left:' + (this.templateData.ganttProperties.width + rResizerLeft) + 'px;' +
9662
+ 'style="' + (this.parent.enableRtl ? 'right:' : 'left:') + (this.templateData.ganttProperties.width + rResizerLeft) + 'px;' +
9453
9663
  'height:' + (this.taskBarHeight) + 'px;"></div>';
9454
9664
  return this.createDivElement(template);
9455
9665
  };
9456
9666
  ChartRows.prototype.childTaskbarProgressResizer = function () {
9667
+ var width = this.parent.enableRtl ? (this.templateData.ganttProperties.progressWidth + 8) : (this.templateData.ganttProperties.progressWidth - 6);
9457
9668
  var template = '<div class="' + childProgressResizer + '"' +
9458
- 'style="left:' + (this.templateData.ganttProperties.progressWidth - 6) + 'px;margin-top:' +
9669
+ 'style="' + (this.parent.enableRtl ? 'right:' : 'left:') + width + 'px;margin-top:' +
9459
9670
  (this.taskBarHeight - 4) + 'px;"><div class="' + progressBarHandler + '"' +
9460
9671
  '><div class="' + progressHandlerElement + '"></div>' +
9461
9672
  '<div class="' + progressBarHandlerAfter + '"></div></div>';
@@ -9477,7 +9688,7 @@ var ChartRows = /** @__PURE__ @class */ (function (_super) {
9477
9688
  ((data.ganttProperties.isMilestone) ? ('margin-top:' + pointerTop + 'px;left:' + mileStoneLeft +
9478
9689
  'px;') : (marginTop + ';left:' + pointerLeft + 'px;')) + '">' +
9479
9690
  '<div class="' + connectorPointLeft + ' ' + this.parent.getUnscheduledTaskClass(data.ganttProperties) +
9480
- '" style="width: ' + this.connectorPointWidth + 'px;' +
9691
+ '" style="width: ' + this.connectorPointWidth + 'px;' + (this.parent.enableRtl ? 'margin-right:2px;' : '') +
9481
9692
  'height: ' + this.connectorPointWidth + 'px;">' + this.touchLeftConnectorpoint + '</div></div>';
9482
9693
  return this.createDivElement(template);
9483
9694
  };
@@ -9710,6 +9921,7 @@ var ChartRows = /** @__PURE__ @class */ (function (_super) {
9710
9921
  }
9711
9922
  this.parent.ganttChartModule.renderRangeContainer(this.parent.currentViewData);
9712
9923
  }
9924
+ this.parent.ganttChartModule.updateLastRowBottomWidth();
9713
9925
  };
9714
9926
  /**
9715
9927
  * To render taskbars.
@@ -9750,8 +9962,14 @@ var ChartRows = /** @__PURE__ @class */ (function (_super) {
9750
9962
  else {
9751
9963
  for (var i = 0; i < this.parent.currentViewData.length; i++) {
9752
9964
  var tempTemplateData = this.parent.currentViewData[i];
9753
- if (this.parent.viewType === 'ResourceView' && !tempTemplateData.expanded && this.parent.enableMultiTaskbar) {
9754
- collapsedResourceRecord.push(tempTemplateData);
9965
+ if (this.parent.viewType === 'ResourceView') {
9966
+ if (this.parent.editModule && this.parent.editModule.isResourceTaskDeleted) {
9967
+ this.parent.initialChartRowElements = this.parent.ganttChartModule.getChartRows();
9968
+ this.parent.editModule.isResourceTaskDeleted = false;
9969
+ }
9970
+ if (!tempTemplateData.expanded && this.parent.enableMultiTaskbar) {
9971
+ collapsedResourceRecord.push(tempTemplateData);
9972
+ }
9755
9973
  }
9756
9974
  var tRow = this.getGanttChartRow(i, tempTemplateData);
9757
9975
  this.ganttChartTableBody.appendChild(tRow);
@@ -9795,7 +10013,7 @@ var ChartRows = /** @__PURE__ @class */ (function (_super) {
9795
10013
  taskbarContainerNode[0].setAttribute('aria-label', this.generateAriaLabel(this.templateData));
9796
10014
  taskbarContainerNode[0].setAttribute('rowUniqueId', this.templateData.ganttProperties.rowUniqueID);
9797
10015
  var connectorLineLeftNode = this.getLeftPointNode();
9798
- if ((this.templateData.ganttProperties.isAutoSchedule && this.parent.viewType == 'ProjectView') || !this.templateData.hasChildRecords) {
10016
+ if ((this.templateData.ganttProperties.isAutoSchedule && this.parent.viewType === 'ProjectView') || !this.templateData.hasChildRecords) {
9799
10017
  taskbarContainerNode[0].appendChild([].slice.call(connectorLineLeftNode)[0]);
9800
10018
  }
9801
10019
  if (this.templateData.hasChildRecords) {
@@ -9812,9 +10030,9 @@ var ChartRows = /** @__PURE__ @class */ (function (_super) {
9812
10030
  }
9813
10031
  if (this.parent.renderBaseline && this.templateData.ganttProperties.baselineStartDate &&
9814
10032
  this.templateData.ganttProperties.baselineEndDate) {
9815
- taskBaselineTemplateNode = ((!isNullOrUndefined(this.templateData.ganttProperties.baselineStartDate) && !isNullOrUndefined(this.templateData.ganttProperties.startDate) && (this.templateData.ganttProperties.baselineStartDate.getTime() === this.templateData.ganttProperties.startDate.getTime()))
10033
+ taskBaselineTemplateNode = ((this.templateData.ganttProperties.baselineStartDate.getTime() === this.templateData.ganttProperties.baselineEndDate.getTime()) || ((!isNullOrUndefined(this.templateData.ganttProperties.baselineStartDate) && !isNullOrUndefined(this.templateData.ganttProperties.startDate) && (this.templateData.ganttProperties.baselineStartDate.getTime() === this.templateData.ganttProperties.startDate.getTime()))
9816
10034
  && (!isNullOrUndefined(this.templateData.ganttProperties.baselineEndDate) && !isNullOrUndefined(this.templateData.ganttProperties.endDate) && (this.templateData.ganttProperties.baselineEndDate.toLocaleDateString() === this.templateData.ganttProperties.endDate.toLocaleDateString())) &&
9817
- this.templateData.ganttProperties.isMilestone)
10035
+ this.templateData.ganttProperties.isMilestone))
9818
10036
  ? this.getMilestoneBaselineNode() : this.getTaskBaselineNode();
9819
10037
  }
9820
10038
  }
@@ -9825,9 +10043,9 @@ var ChartRows = /** @__PURE__ @class */ (function (_super) {
9825
10043
  }
9826
10044
  if (this.parent.renderBaseline && this.templateData.ganttProperties.baselineStartDate &&
9827
10045
  this.templateData.ganttProperties.baselineEndDate) {
9828
- taskBaselineTemplateNode = ((!isNullOrUndefined(this.templateData.ganttProperties.baselineStartDate) && !isNullOrUndefined(this.templateData.ganttProperties.startDate) && (this.templateData.ganttProperties.baselineStartDate.getTime() === this.templateData.ganttProperties.startDate.getTime()))
10046
+ taskBaselineTemplateNode = ((this.templateData.ganttProperties.baselineStartDate.getTime() === this.templateData.ganttProperties.baselineEndDate.getTime()) || ((!isNullOrUndefined(this.templateData.ganttProperties.baselineStartDate) && !isNullOrUndefined(this.templateData.ganttProperties.startDate) && (this.templateData.ganttProperties.baselineStartDate.getTime() === this.templateData.ganttProperties.startDate.getTime()))
9829
10047
  && (!isNullOrUndefined(this.templateData.ganttProperties.baselineEndDate) && !isNullOrUndefined(this.templateData.ganttProperties.endDate) && (this.templateData.ganttProperties.baselineEndDate.toLocaleDateString() === this.templateData.ganttProperties.endDate.toLocaleDateString())) &&
9830
- this.templateData.ganttProperties.isMilestone)
10048
+ this.templateData.ganttProperties.isMilestone))
9831
10049
  ? this.getMilestoneBaselineNode() : this.getTaskBaselineNode();
9832
10050
  }
9833
10051
  }
@@ -9873,13 +10091,13 @@ var ChartRows = /** @__PURE__ @class */ (function (_super) {
9873
10091
  }
9874
10092
  if (this.parent.renderBaseline && this.templateData.ganttProperties.baselineStartDate &&
9875
10093
  this.templateData.ganttProperties.baselineEndDate) {
9876
- taskBaselineTemplateNode = ((!isNullOrUndefined(this.templateData.ganttProperties.baselineStartDate) && !isNullOrUndefined(this.templateData.ganttProperties.startDate) && (this.templateData.ganttProperties.baselineStartDate.getTime() === this.templateData.ganttProperties.startDate.getTime()))
10094
+ taskBaselineTemplateNode = ((this.templateData.ganttProperties.baselineStartDate.getTime() === this.templateData.ganttProperties.baselineEndDate.getTime()) || ((!isNullOrUndefined(this.templateData.ganttProperties.baselineStartDate) && !isNullOrUndefined(this.templateData.ganttProperties.startDate) && (this.templateData.ganttProperties.baselineStartDate.getTime() === this.templateData.ganttProperties.startDate.getTime()))
9877
10095
  && (!isNullOrUndefined(this.templateData.ganttProperties.baselineEndDate) && !isNullOrUndefined(this.templateData.ganttProperties.endDate) && (this.templateData.ganttProperties.baselineEndDate.toLocaleDateString() === this.templateData.ganttProperties.endDate.toLocaleDateString())) &&
9878
- this.templateData.ganttProperties.isMilestone)
10096
+ this.templateData.ganttProperties.isMilestone))
9879
10097
  ? this.getMilestoneBaselineNode() : this.getTaskBaselineNode();
9880
10098
  }
9881
10099
  }
9882
- if ((this.templateData.ganttProperties.isAutoSchedule && this.parent.viewType == 'ProjectView') || !this.templateData.hasChildRecords) {
10100
+ if ((this.templateData.ganttProperties.isAutoSchedule && this.parent.viewType === 'ProjectView') || !this.templateData.hasChildRecords) {
9883
10101
  var connectorLineRightNode = this.getRightPointNode();
9884
10102
  taskbarContainerNode[0].appendChild([].slice.call(connectorLineRightNode)[0]);
9885
10103
  }
@@ -9975,6 +10193,10 @@ var ChartRows = /** @__PURE__ @class */ (function (_super) {
9975
10193
  var taskbarElement = !isNullOrUndefined(data.ganttProperties.segments) && data.ganttProperties.segments.length > 0 ? trElement :
9976
10194
  trElement.querySelector('.' + taskBarMainContainer);
9977
10195
  var rowElement;
10196
+ var segmentRowElement;
10197
+ if (data.ganttProperties.segments && data.ganttProperties.segments.length > 0) {
10198
+ segmentRowElement = trElement.parentElement.parentElement.parentElement;
10199
+ }
9978
10200
  var triggerTaskbarElement;
9979
10201
  var args = {
9980
10202
  data: data,
@@ -9987,7 +10209,8 @@ var ChartRows = /** @__PURE__ @class */ (function (_super) {
9987
10209
  args.milestoneColor = taskbarElement.querySelector(classCollections[0]) ?
9988
10210
  getComputedStyle(taskbarElement.querySelector(classCollections[0])).borderBottomColor : null;
9989
10211
  args.baselineColor = trElement.querySelector(classCollections[1]) ?
9990
- getComputedStyle(trElement.querySelector(classCollections[1])).borderBottomColor : null;
10212
+ getComputedStyle(trElement.querySelector(classCollections[1])).borderBottomColor :
10213
+ (trElement.querySelector('.' + baselineBar) ? getComputedStyle(trElement.querySelector('.' + baselineBar)).backgroundColor : null);
9991
10214
  }
9992
10215
  else {
9993
10216
  var childTask = taskbarElement.querySelector(classCollections[0]);
@@ -10004,17 +10227,33 @@ var ChartRows = /** @__PURE__ @class */ (function (_super) {
10004
10227
  getComputedStyle(taskbarElement.querySelector(classCollections[1])).backgroundColor;
10005
10228
  // args.progressBarBorderColor = taskbarElement.querySelector(progressBarClass) ?
10006
10229
  // getComputedStyle(taskbarElement.querySelector(progressBarClass)).borderColor : null;
10007
- args.baselineColor = trElement.querySelector('.' + baselineBar) ?
10008
- getComputedStyle(trElement.querySelector('.' + baselineBar)).backgroundColor : null;
10230
+ if (segmentRowElement) {
10231
+ args.baselineColor = segmentRowElement.querySelector('.' + baselineBar) ?
10232
+ getComputedStyle(segmentRowElement.querySelector('.' + baselineBar)).backgroundColor : null;
10233
+ }
10234
+ else {
10235
+ args.baselineColor = trElement.querySelector('.' + baselineBar) ?
10236
+ getComputedStyle(trElement.querySelector('.' + baselineBar)).backgroundColor : null;
10237
+ }
10009
10238
  args.taskLabelColor = taskbarElement.querySelector('.' + taskLabel) ?
10010
10239
  getComputedStyle(taskbarElement.querySelector('.' + taskLabel)).color : null;
10011
10240
  }
10012
- args.rightLabelColor = trElement.querySelector('.' + rightLabelContainer) &&
10013
- (trElement.querySelector('.' + rightLabelContainer)).querySelector('.' + label) ?
10014
- getComputedStyle((trElement.querySelector('.' + rightLabelContainer)).querySelector('.' + label)).color : null;
10015
- args.leftLabelColor = trElement.querySelector('.' + leftLabelContainer) &&
10016
- (trElement.querySelector('.' + leftLabelContainer)).querySelector('.' + label) ?
10017
- getComputedStyle((trElement.querySelector('.' + leftLabelContainer)).querySelector('.' + label)).color : null;
10241
+ if (segmentRowElement) {
10242
+ args.rightLabelColor = segmentRowElement.querySelector('.' + rightLabelContainer) &&
10243
+ (segmentRowElement.querySelector('.' + rightLabelContainer)).querySelector('.' + label) ?
10244
+ getComputedStyle((segmentRowElement.querySelector('.' + rightLabelContainer)).querySelector('.' + label)).color : null;
10245
+ args.leftLabelColor = segmentRowElement.querySelector('.' + leftLabelContainer) &&
10246
+ (segmentRowElement.querySelector('.' + leftLabelContainer)).querySelector('.' + label) ?
10247
+ getComputedStyle((segmentRowElement.querySelector('.' + leftLabelContainer)).querySelector('.' + label)).color : null;
10248
+ }
10249
+ else {
10250
+ args.rightLabelColor = trElement.querySelector('.' + rightLabelContainer) &&
10251
+ (trElement.querySelector('.' + rightLabelContainer)).querySelector('.' + label) ?
10252
+ getComputedStyle((trElement.querySelector('.' + rightLabelContainer)).querySelector('.' + label)).color : null;
10253
+ args.leftLabelColor = trElement.querySelector('.' + leftLabelContainer) &&
10254
+ (trElement.querySelector('.' + leftLabelContainer)).querySelector('.' + label) ?
10255
+ getComputedStyle((trElement.querySelector('.' + leftLabelContainer)).querySelector('.' + label)).color : null;
10256
+ }
10018
10257
  this.parent.trigger('queryTaskbarInfo', args, function (taskbarArgs) {
10019
10258
  _this.updateQueryTaskbarInfoArgs(taskbarArgs, rowElement, triggerTaskbarElement);
10020
10259
  });
@@ -10032,6 +10271,10 @@ var ChartRows = /** @__PURE__ @class */ (function (_super) {
10032
10271
  var trElement = args.rowElement;
10033
10272
  var taskbarElement = args.taskbarElement;
10034
10273
  var classCollections = this.getClassName(args);
10274
+ var segmentRowElement;
10275
+ if (args.data.ganttProperties.segments && args.data.ganttProperties.segments.length > 0) {
10276
+ segmentRowElement = trElement.parentElement.parentElement.parentElement;
10277
+ }
10035
10278
  if (args.taskbarType === 'Milestone') {
10036
10279
  if (taskbarElement.querySelector(classCollections[0]) &&
10037
10280
  getComputedStyle(taskbarElement.querySelector(classCollections[0])).borderBottomColor !== args.milestoneColor) {
@@ -10043,6 +10286,10 @@ var ChartRows = /** @__PURE__ @class */ (function (_super) {
10043
10286
  trElement.querySelector(classCollections[1]).style.borderBottomColor = args.baselineColor;
10044
10287
  trElement.querySelector('.' + baselineMilestoneBottom).style.borderTopColor = args.baselineColor;
10045
10288
  }
10289
+ if (trElement.querySelector('.' + baselineBar) &&
10290
+ getComputedStyle(trElement.querySelector('.' + baselineBar)).borderTopColor !== args.baselineColor) {
10291
+ trElement.querySelector('.' + baselineBar).style.backgroundColor = args.baselineColor;
10292
+ }
10046
10293
  }
10047
10294
  else {
10048
10295
  if (taskbarElement.querySelector(classCollections[0]) &&
@@ -10077,20 +10324,42 @@ var ChartRows = /** @__PURE__ @class */ (function (_super) {
10077
10324
  getComputedStyle(taskbarElement.querySelector('.' + taskLabel)).color !== args.taskLabelColor) {
10078
10325
  taskbarElement.querySelector('.' + taskLabel).style.color = args.taskLabelColor;
10079
10326
  }
10080
- if (trElement.querySelector('.' + baselineBar) &&
10081
- getComputedStyle(trElement.querySelector('.' + baselineBar)).backgroundColor !== args.baselineColor) {
10082
- trElement.querySelector('.' + baselineBar).style.backgroundColor = args.baselineColor;
10327
+ if (segmentRowElement) {
10328
+ if (segmentRowElement.querySelector('.' + baselineBar) &&
10329
+ getComputedStyle(segmentRowElement.querySelector('.' + baselineBar)).backgroundColor !== args.baselineColor) {
10330
+ segmentRowElement.querySelector('.' + baselineBar).style.backgroundColor = args.baselineColor;
10331
+ }
10332
+ }
10333
+ else {
10334
+ if (trElement.querySelector('.' + baselineBar) &&
10335
+ getComputedStyle(trElement.querySelector('.' + baselineBar)).backgroundColor !== args.baselineColor) {
10336
+ trElement.querySelector('.' + baselineBar).style.backgroundColor = args.baselineColor;
10337
+ }
10083
10338
  }
10084
10339
  }
10085
- if (trElement.querySelector('.' + leftLabelContainer) &&
10086
- (trElement.querySelector('.' + leftLabelContainer)).querySelector('.' + label) &&
10087
- getComputedStyle((trElement.querySelector('.' + leftLabelContainer)).querySelector('.' + label)).color !== args.leftLabelColor) {
10088
- (trElement.querySelector('.' + leftLabelContainer)).querySelector('.' + label).style.color = args.leftLabelColor;
10340
+ if (segmentRowElement) {
10341
+ if (segmentRowElement.querySelector('.' + leftLabelContainer) &&
10342
+ (segmentRowElement.querySelector('.' + leftLabelContainer)).querySelector('.' + label) &&
10343
+ getComputedStyle((segmentRowElement.querySelector('.' + leftLabelContainer)).querySelector('.' + label)).color !== args.leftLabelColor) {
10344
+ (segmentRowElement.querySelector('.' + leftLabelContainer)).querySelector('.' + label).style.color = args.leftLabelColor;
10345
+ }
10346
+ if (segmentRowElement.querySelector('.' + rightLabelContainer) &&
10347
+ (segmentRowElement.querySelector('.' + rightLabelContainer)).querySelector('.' + label) &&
10348
+ getComputedStyle((segmentRowElement.querySelector('.' + rightLabelContainer)).querySelector('.' + label)).color !== args.rightLabelColor) {
10349
+ (segmentRowElement.querySelector('.' + rightLabelContainer)).querySelector('.' + label).style.color = args.rightLabelColor;
10350
+ }
10089
10351
  }
10090
- if (trElement.querySelector('.' + rightLabelContainer) &&
10091
- (trElement.querySelector('.' + rightLabelContainer)).querySelector('.' + label) &&
10092
- getComputedStyle((trElement.querySelector('.' + rightLabelContainer)).querySelector('.' + label)).color !== args.rightLabelColor) {
10093
- (trElement.querySelector('.' + rightLabelContainer)).querySelector('.' + label).style.color = args.rightLabelColor;
10352
+ else {
10353
+ if (trElement.querySelector('.' + leftLabelContainer) &&
10354
+ (trElement.querySelector('.' + leftLabelContainer)).querySelector('.' + label) &&
10355
+ getComputedStyle((trElement.querySelector('.' + leftLabelContainer)).querySelector('.' + label)).color !== args.leftLabelColor) {
10356
+ (trElement.querySelector('.' + leftLabelContainer)).querySelector('.' + label).style.color = args.leftLabelColor;
10357
+ }
10358
+ if (trElement.querySelector('.' + rightLabelContainer) &&
10359
+ (trElement.querySelector('.' + rightLabelContainer)).querySelector('.' + label) &&
10360
+ getComputedStyle((trElement.querySelector('.' + rightLabelContainer)).querySelector('.' + label)).color !== args.rightLabelColor) {
10361
+ (trElement.querySelector('.' + rightLabelContainer)).querySelector('.' + label).style.color = args.rightLabelColor;
10362
+ }
10094
10363
  }
10095
10364
  };
10096
10365
  ChartRows.prototype.getClassName = function (args) {
@@ -10701,9 +10970,9 @@ var Dependency = /** @__PURE__ @class */ (function () {
10701
10970
  var flatData = this.parent.flatData;
10702
10971
  var totLength = this.parent.flatData.length;
10703
10972
  for (var count = 0; count < totLength; count++) {
10704
- if (flatData[count].ganttProperties.predecessor) {
10973
+ if (flatData[count].ganttProperties.predecessorsName) {
10705
10974
  this.validatePredecessorDates(flatData[count]);
10706
- if (flatData[count].hasChildRecords && this.parent.editModule) {
10975
+ if (flatData[count].hasChildRecords && this.parent.editModule && !this.parent.allowUnscheduledTasks) {
10707
10976
  this.parent.editModule['updateChildItems'](flatData[count]);
10708
10977
  }
10709
10978
  }
@@ -10715,6 +10984,9 @@ var Dependency = /** @__PURE__ @class */ (function () {
10715
10984
  for (var i = parentPredecessorLength - 1; i >= 0; i--) {
10716
10985
  var item = this.parentPredecessors[i];
10717
10986
  this.validatePredecessorDates(item);
10987
+ if (item.ganttProperties.startDate) {
10988
+ this.parent.editModule['updateChildItems'](item);
10989
+ }
10718
10990
  }
10719
10991
  }
10720
10992
  };
@@ -11171,19 +11443,8 @@ var ConnectorLine = /** @__PURE__ @class */ (function () {
11171
11443
  */
11172
11444
  ConnectorLine.prototype.createConnectorLineObject = function (parentGanttData, childGanttData, predecessor) {
11173
11445
  var connectorObj = {};
11174
- var updatedRecords;
11175
- if (this.parent.pdfExportModule && this.parent.pdfExportModule.isPdfExport) {
11176
- if (this.parent.pdfExportModule['helper']['exportProps'].exportType &&
11177
- this.parent.pdfExportModule['helper']['exportProps'].exportType === 'CurrentViewData') {
11178
- updatedRecords = this.expandedRecords;
11179
- }
11180
- else {
11181
- updatedRecords = this.parent.flatData;
11182
- }
11183
- }
11184
- else {
11185
- updatedRecords = this.expandedRecords;
11186
- }
11446
+ var updatedRecords = this.parent.pdfExportModule && this.parent.pdfExportModule.isPdfExport ?
11447
+ this.parent.flatData : this.expandedRecords;
11187
11448
  var parentIndex = updatedRecords.indexOf(parentGanttData);
11188
11449
  var childIndex = updatedRecords.indexOf(childGanttData);
11189
11450
  var parentGanttRecord = parentGanttData.ganttProperties;
@@ -11249,6 +11510,9 @@ var ConnectorLine = /** @__PURE__ @class */ (function () {
11249
11510
  }
11250
11511
  }
11251
11512
  this.parent.ganttChartModule.chartBodyContent.appendChild(this.dependencyViewContainer);
11513
+ for (var i = 0; i < this.dependencyViewContainer.children.length; i++) {
11514
+ this.dependencyViewContainer.children[i].children[0].setAttribute('tabindex', '-1');
11515
+ }
11252
11516
  };
11253
11517
  /**
11254
11518
  * To get parent position.
@@ -11567,85 +11831,96 @@ var ConnectorLine = /** @__PURE__ @class */ (function () {
11567
11831
  connectorContainer = '<div id="ConnectorLine' + data.connectorLineId + '" style="background-color:black">';
11568
11832
  var div = '<div class="' + connectorLineContainer +
11569
11833
  '" tabindex="-1" style="';
11834
+ var direction = this.parent.enableRtl ? 'right:' : 'left:';
11570
11835
  var eLine = '<div class="' + connectorLine + '" style="' +
11571
11836
  (!isNullOrUndefined(this.lineColor) ? 'outline-color:' + this.lineColor + ';' : '');
11572
- var rightArrow = '<div class="' + connectorLineRightArrow + '" style="' +
11573
- (!isNullOrUndefined(this.lineColor) ? 'outline-color:' + this.lineColor + ';' : '');
11574
- var leftArrow = '<div class="' + connectorLineLeftArrow + '" style="' +
11575
- (!isNullOrUndefined(this.lineColor) ? 'outline-color:' + this.lineColor + ';' : '');
11576
- var duplicateStingOne = leftArrow + (isMilestone ? 'left:0px;' : '') +
11577
- this.getBorderStyles('right', 10) +
11837
+ var rightArrow = void 0;
11838
+ var leftArrow = void 0;
11839
+ if (this.parent.enableRtl) {
11840
+ leftArrow = '<div class="' + connectorLineRightArrow + '" style="' +
11841
+ (!isNullOrUndefined(this.lineColor) ? 'outline-color:' + this.lineColor + ';' : '');
11842
+ rightArrow = '<div class="' + connectorLineLeftArrow + '" style="' +
11843
+ (!isNullOrUndefined(this.lineColor) ? 'outline-color:' + this.lineColor + ';' : '');
11844
+ }
11845
+ else {
11846
+ rightArrow = '<div class="' + connectorLineRightArrow + '" style="' +
11847
+ (!isNullOrUndefined(this.lineColor) ? 'outline-color:' + this.lineColor + ';' : '');
11848
+ leftArrow = '<div class="' + connectorLineLeftArrow + '" style="' +
11849
+ (!isNullOrUndefined(this.lineColor) ? 'outline-color:' + this.lineColor + ';' : '');
11850
+ }
11851
+ var duplicateStingOne = leftArrow + (isMilestone ? (this.parent.enableRtl ? 'right:0px;' : 'left:0px;') : '') +
11852
+ this.getBorderStyles((this.parent.enableRtl ? 'left' : 'right'), 10) +
11578
11853
  'top:' + (-5 - this.lineStroke + (this.lineStroke - 1)) + 'px;border-bottom-width:' + (5 + this.lineStroke) + 'px;' +
11579
11854
  'border-top-width:' + (5 + this.lineStroke) + 'px;width:0;height:0;position:relative;"></div>';
11580
- var duplicateStingTwo = this.getBorderStyles('left', 10) +
11855
+ var duplicateStingTwo = this.getBorderStyles((this.parent.enableRtl ? 'right' : 'left'), 10) +
11581
11856
  'top:' + (-6) + 'px;border-bottom-width:' + (5 + this.lineStroke) + 'px;' +
11582
11857
  'border-top-width:' + (5 + this.lineStroke) + 'px;width:0;height:0;position:relative;"></div>';
11583
11858
  var duplicateStingThree = this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>' + eLine +
11584
11859
  'top:' + (-(13 + ((this.lineStroke - 1) * 2))) + 'px;width:0px;' + this.getBorderStyles('left', this.lineStroke) +
11585
11860
  this.getBorderStyles('top', (heightValue + borderTopWidth - (this.lineStroke - 1))) + 'position:relative;"></div>';
11586
- var duplicateStingFour = leftArrow + 'left:' +
11861
+ var duplicateStingFour = leftArrow + (this.parent.enableRtl ? 'right:' : 'left:') +
11587
11862
  (((data.childLeft + data.childWidth) - (data.parentLeft)) + 10) + 'px;' +
11588
- this.getBorderStyles('right', 10);
11863
+ this.getBorderStyles((this.parent.enableRtl ? 'left' : 'right'), 10);
11589
11864
  var duplicateStingFive = 'top:' + (-(6 + (5 + this.lineStroke) + (this.lineStroke / 2))) + 'px;' +
11590
11865
  this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
11591
11866
  if (this.getParentPosition(data) === 'FSType1') {
11592
- div = div + 'left:' + (data.parentLeft + data.parentWidth) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
11867
+ div = div + direction + (data.parentLeft + data.parentWidth) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
11593
11868
  ((data.parentIndex * data.rowHeight) + addTop + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
11594
11869
  'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="FSType1">';
11595
11870
  div = div + eLine;
11596
- div = div + 'left:' + (isMilestoneParent ? -1 : 0) + 'px;width:' + (isMilestoneParent ?
11871
+ div = div + direction + (isMilestoneParent ? -1 : 0) + 'px;width:' + (isMilestoneParent ?
11597
11872
  ((((data.childLeft - (data.parentLeft + data.parentWidth + 10)) + this.lineStroke) - 10) + 1) :
11598
11873
  (((data.childLeft - (data.parentLeft + data.parentWidth + 10)) + this.lineStroke) - 10)) + 'px;' +
11599
11874
  this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
11600
11875
  div = div + eLine;
11601
- div = div + 'left:' + ((data.childLeft - (data.parentLeft + data.parentWidth + 10)) - 10) + 'px;' +
11876
+ div = div + direction + ((data.childLeft - (data.parentLeft + data.parentWidth + 10)) - 10) + 'px;' +
11602
11877
  'width:0px;' + this.getBorderStyles('right', this.lineStroke) +
11603
11878
  this.getBorderStyles('top', (heightValue + borderTopWidth - this.lineStroke)) + 'position:relative;"></div>';
11604
11879
  div = div + eLine;
11605
- div = div + 'left:' + ((data.childLeft - (data.parentLeft + data.parentWidth + 10)) - 10) + 'px;width:10px;' +
11880
+ div = div + direction + ((data.childLeft - (data.parentLeft + data.parentWidth + 10)) - 10) + 'px;width:10px;' +
11606
11881
  this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
11607
11882
  div = div + rightArrow;
11608
- div = div + 'left:' + (data.childLeft - (data.parentLeft + data.parentWidth + 10)) + 'px;' +
11609
- this.getBorderStyles('left', 10) + 'top:' + (-6 - this.lineStroke) + 'px;border-bottom-width:' + (5 + this.lineStroke) +
11883
+ div = div + direction + (data.childLeft - (data.parentLeft + data.parentWidth + 10)) + 'px;' +
11884
+ this.getBorderStyles((this.parent.enableRtl ? 'right' : 'left'), 10) + 'top:' + (-6 - this.lineStroke) + 'px;border-bottom-width:' + (5 + this.lineStroke) +
11610
11885
  'px;border-top-width:' + (5 + this.lineStroke) + 'px;width:0;height:0;position:relative;"></div></div>';
11611
11886
  }
11612
11887
  if (this.getParentPosition(data) === 'FSType2') {
11613
- div = div + 'left:' + data.parentLeft + 'px;top:' + (isVirtual ? connectorLine$$1.top : ((data.parentIndex * data.rowHeight) + addTop +
11888
+ div = div + direction + data.parentLeft + 'px;top:' + (isVirtual ? connectorLine$$1.top : ((data.parentIndex * data.rowHeight) + addTop +
11614
11889
  this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
11615
11890
  'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="FSType2">';
11616
11891
  div = div + eLine;
11617
- div = div + 'left:' + (isMilestoneParent ? data.parentWidth - 1 : data.parentWidth) + 'px;width:' +
11892
+ div = div + direction + (isMilestoneParent ? data.parentWidth - 1 : data.parentWidth) + 'px;width:' +
11618
11893
  (isMilestoneParent ? 11 : 10) + 'px;' +
11619
11894
  this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
11620
11895
  div = div + eLine;
11621
- div = div + 'left:' + (data.parentWidth + 10 - this.lineStroke) + 'px;' +
11896
+ div = div + direction + (data.parentWidth + 10 - this.lineStroke) + 'px;' +
11622
11897
  this.getBorderStyles('left', this.lineStroke) + 'width:0px;' +
11623
11898
  this.getBorderStyles('top', (heightValue + borderTopWidth - this.getconnectorLineGap(data) - this.lineStroke)) + 'position:relative;"></div>';
11624
11899
  div = div + eLine;
11625
- div = div + 'left:' + (data.parentWidth - (((data.parentLeft + data.parentWidth) - data.childLeft) + 20)) + 'px;' +
11900
+ div = div + direction + (data.parentWidth - (((data.parentLeft + data.parentWidth) - data.childLeft) + 20)) + 'px;' +
11626
11901
  'width:' + (((data.parentLeft + data.parentWidth) - data.childLeft) + 30) + 'px;' +
11627
11902
  this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
11628
11903
  div = div + eLine;
11629
- div = div + 'left:' + (data.parentWidth - (((data.parentLeft +
11904
+ div = div + direction + (data.parentWidth - (((data.parentLeft +
11630
11905
  data.parentWidth) - data.childLeft) + 20)) + 'px;width:0px;' +
11631
11906
  this.getBorderStyles('top', (this.getconnectorLineGap(data) - this.lineStroke)) +
11632
11907
  this.getBorderStyles('left', this.lineStroke) + 'position:relative;"></div>';
11633
11908
  div = div + eLine;
11634
- div = div + 'left:' + (data.parentWidth - (((data.parentLeft +
11909
+ div = div + direction + (data.parentWidth - (((data.parentLeft +
11635
11910
  data.parentWidth) - data.childLeft) + 20)) + 'px;width:10px;' +
11636
11911
  this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
11637
11912
  div = div + rightArrow;
11638
- div = div + 'left:' + (data.parentWidth - (((data.parentLeft + data.parentWidth) - data.childLeft) + 10)) + 'px;' +
11639
- this.getBorderStyles('left', 10) + 'border-bottom-width:' + (5 + this.lineStroke) + 'px;' +
11913
+ div = div + direction + (data.parentWidth - (((data.parentLeft + data.parentWidth) - data.childLeft) + 10)) + 'px;' +
11914
+ this.getBorderStyles((this.parent.enableRtl ? 'right' : 'left'), 10) + 'border-bottom-width:' + (5 + this.lineStroke) + 'px;' +
11640
11915
  'border-top-width:' + (5 + this.lineStroke) + 'px;top:' + (-6 - this.lineStroke) +
11641
11916
  'px;width:0;height:0;position:relative;"></div></div>';
11642
11917
  }
11643
11918
  if (this.getParentPosition(data) === 'FSType3') {
11644
- div = div + 'left:' + (data.childLeft - 20) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
11919
+ div = div + direction + (data.childLeft - 20) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
11645
11920
  ((data.childIndex * data.rowHeight) + addTop + this.getTaskbarMidpoint(isMilestoneParent) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
11646
11921
  'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="FSType3">';
11647
11922
  div = div + rightArrow;
11648
- div = div + 'left:10px;' + this.getBorderStyles('left', 10) +
11923
+ div = div + direction + '10px;' + this.getBorderStyles((this.parent.enableRtl ? 'right' : 'left'), 10) +
11649
11924
  'border-bottom-width:' + (5 + this.lineStroke) + 'px;border-top-width:' + (5 + this.lineStroke) + 'px;' +
11650
11925
  'top:' + (-6) + 'px;width:0;height:0;position:relative;"></div>';
11651
11926
  div = div + eLine;
@@ -11659,49 +11934,49 @@ var ConnectorLine = /** @__PURE__ @class */ (function () {
11659
11934
  this.getBorderStyles('top', this.lineStroke) + 'position:relative;top:' +
11660
11935
  (-(13 + ((this.lineStroke - 1) * 2))) + 'px;"></div>';
11661
11936
  div = div + eLine;
11662
- div = div + 'left:' + (((data.parentLeft + data.parentWidth) - data.childLeft) + (30 - this.lineStroke)) +
11937
+ div = div + direction + (((data.parentLeft + data.parentWidth) - data.childLeft) + (30 - this.lineStroke)) +
11663
11938
  'px;width:0px;' + 'height:' + (this.getconnectorLineGap(data) - this.lineStroke) + 'px;' +
11664
11939
  this.getBorderStyles('left', this.lineStroke) + 'position:relative;' +
11665
11940
  'top:' + (-(13 + ((this.lineStroke - 1) * 2))) + 'px;"></div>';
11666
11941
  div = div + eLine;
11667
- div = div + (isMilestoneParent ? 'left:' + (((data.parentLeft +
11668
- data.parentWidth) - data.childLeft) + (18 - this.lineStroke)) + 'px;width:' + (12 + this.lineStroke) + 'px;' : 'left:' +
11942
+ div = div + (isMilestoneParent ? direction + (((data.parentLeft +
11943
+ data.parentWidth) - data.childLeft) + (18 - this.lineStroke)) + 'px;width:' + (12 + this.lineStroke) + 'px;' : direction +
11669
11944
  (((data.parentLeft + data.parentWidth) - data.childLeft) + 20) + 'px;width:10px;') +
11670
11945
  this.getBorderStyles('top', this.lineStroke) + 'position:relative;top:' +
11671
11946
  (-(13 + ((this.lineStroke - 1) * 2))) + 'px;"></div></div>';
11672
11947
  }
11673
11948
  if (this.getParentPosition(data) === 'FSType4') {
11674
- div = div + 'left:' + (data.parentLeft + data.parentWidth) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
11949
+ div = div + direction + (data.parentLeft + data.parentWidth) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
11675
11950
  ((data.childIndex * data.rowHeight) + addTop + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
11676
11951
  'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="FSType4">';
11677
11952
  div = div + rightArrow;
11678
- div = div + 'left:' + (data.childLeft - (data.parentLeft + data.parentWidth + 10)) + 'px;' +
11679
- this.getBorderStyles('left', 10) + 'top:' + (-6) + 'px;' +
11953
+ div = div + direction + (data.childLeft - (data.parentLeft + data.parentWidth + 10)) + 'px;' +
11954
+ this.getBorderStyles((this.parent.enableRtl ? 'right' : 'left'), 10) + 'top:' + (-6) + 'px;' +
11680
11955
  'border-bottom-width:' + (5 + this.lineStroke) + 'px;border-top-width:' +
11681
11956
  (5 + this.lineStroke) + 'px;width:0;height:0;position:relative;"></div>';
11682
11957
  div = div + eLine;
11683
- div = div + 'left:' + (data.childLeft - (data.parentLeft + data.parentWidth) - 20) +
11958
+ div = div + direction + (data.childLeft - (data.parentLeft + data.parentWidth) - 20) +
11684
11959
  'px;top:' + (-(6 + (5 + this.lineStroke) + Math.round(this.lineStroke / 2))) + 'px;width:10px;' +
11685
11960
  this.getBorderStyles('top', this.lineStroke) +
11686
11961
  'position:relative;"></div>';
11687
11962
  div = div + eLine;
11688
- div = div + 'top:' + (-(13 + ((this.lineStroke - 1) * 2))) + 'px;left:' +
11963
+ div = div + 'top:' + (-(13 + ((this.lineStroke - 1) * 2))) + 'px;' + direction +
11689
11964
  (data.childLeft - (data.parentLeft + data.parentWidth) - 20) + 'px;width:0px;' +
11690
11965
  this.getBorderStyles('left', this.lineStroke) +
11691
11966
  this.getBorderStyles('top', (heightValue + borderTopWidth - this.lineStroke + 1)) + 'position:relative;"></div>';
11692
11967
  div = div + eLine;
11693
- div = div + (isMilestoneParent ? 'left:-1px;' : '') + 'top:' +
11968
+ div = div + (isMilestoneParent ? direction + '-1px;' : '') + 'top:' +
11694
11969
  (-(13 + ((this.lineStroke - 1) * 2))) + 'px;width:' +
11695
11970
  (isMilestoneParent ? ((data.childLeft - (data.parentLeft + data.parentWidth + 20) + 1) + this.lineStroke) :
11696
11971
  ((data.childLeft - (data.parentLeft + data.parentWidth + 20)) + this.lineStroke)) + 'px;' +
11697
11972
  this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div></div>';
11698
11973
  }
11699
11974
  if (this.getParentPosition(data) === 'SSType4') {
11700
- div = div + 'left:' + (data.parentLeft - 10) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
11975
+ div = div + direction + (data.parentLeft - 10) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
11701
11976
  ((data.childIndex * data.rowHeight) + addTop + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
11702
11977
  'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="SSType4">';
11703
11978
  div = div + rightArrow;
11704
- div = div + 'left:' + (data.childLeft - data.parentLeft) + 'px;' + duplicateStingTwo;
11979
+ div = div + direction + (data.childLeft - data.parentLeft) + 'px;' + duplicateStingTwo;
11705
11980
  div = div + eLine;
11706
11981
  div = div + 'top:' + (-(6 + (5 + this.lineStroke) + (this.lineStroke / 2))) + 'px;width:' +
11707
11982
  (data.childLeft - data.parentLeft) + 'px;' + duplicateStingThree;
@@ -11710,11 +11985,11 @@ var ConnectorLine = /** @__PURE__ @class */ (function () {
11710
11985
  this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div></div>';
11711
11986
  }
11712
11987
  if (this.getParentPosition(data) === 'SSType3') {
11713
- div = div + 'left:' + (data.childLeft - 20) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
11988
+ div = div + direction + (data.childLeft - 20) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
11714
11989
  ((data.childIndex * data.rowHeight) + addTop + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
11715
11990
  'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="SSType3">';
11716
11991
  div = div + rightArrow;
11717
- div = div + 'left:10px;' + duplicateStingTwo;
11992
+ div = div + direction + '10px;' + duplicateStingTwo;
11718
11993
  div = div + eLine;
11719
11994
  div = div + 'top:' + (-(6 + (5 + this.lineStroke) + (this.lineStroke / 2))) + 'px;width:10px;' + duplicateStingThree;
11720
11995
  div = div + eLine;
@@ -11723,7 +11998,7 @@ var ConnectorLine = /** @__PURE__ @class */ (function () {
11723
11998
  this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div></div>';
11724
11999
  }
11725
12000
  if (this.getParentPosition(data) === 'SSType2') {
11726
- div = div + 'left:' + setInnerElementLeftSSType2 + 'px;top:' + (isVirtual ? connectorLine$$1.top :
12001
+ div = div + direction + setInnerElementLeftSSType2 + 'px;top:' + (isVirtual ? connectorLine$$1.top :
11727
12002
  ((data.parentIndex * data.rowHeight) + addTop + this.getTaskbarMidpoint(isMilestoneParent) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
11728
12003
  'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="SSType2">';
11729
12004
  div = div + eLine;
@@ -11736,14 +12011,14 @@ var ConnectorLine = /** @__PURE__ @class */ (function () {
11736
12011
  div = div + 'width:' + setInnerElementWidthSSType2 + 'px;' +
11737
12012
  this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
11738
12013
  div = div + rightArrow;
11739
- div = div + 'left:' + setInnerElementWidthSSType2 + 'px;' +
11740
- this.getBorderStyles('left', 10) + 'top:' + (-6 - this.lineStroke) + 'px;' +
12014
+ div = div + direction + setInnerElementWidthSSType2 + 'px;' +
12015
+ this.getBorderStyles((this.parent.enableRtl ? 'right' : 'left'), 10) + 'top:' + (-6 - this.lineStroke) + 'px;' +
11741
12016
  'border-bottom-width:' + (5 + this.lineStroke) + 'px;border-top-width:' +
11742
12017
  (5 + this.lineStroke) + 'px;width:0;' +
11743
12018
  'height:0;position:relative;"></div></div>';
11744
12019
  }
11745
12020
  if (this.getParentPosition(data) === 'SSType1') {
11746
- div = div + 'left:' + (data.childLeft - 20) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
12021
+ div = div + direction + (data.childLeft - 20) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
11747
12022
  ((data.parentIndex * data.rowHeight) + addTop +
11748
12023
  this.getTaskbarMidpoint(isMilestoneParent) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
11749
12024
  'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="SSType1">';
@@ -11756,114 +12031,114 @@ var ConnectorLine = /** @__PURE__ @class */ (function () {
11756
12031
  div = div + eLine;
11757
12032
  div = div + 'width:10px;' + this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
11758
12033
  div = div + rightArrow;
11759
- div = div + 'left:10px;' + this.getBorderStyles('left', 10) +
12034
+ div = div + direction + '10px;' + this.getBorderStyles((this.parent.enableRtl ? 'right' : 'left'), 10) +
11760
12035
  'top:' + (-6 - this.lineStroke) + 'px;border-bottom-width:' + (5 + this.lineStroke) + 'px;' +
11761
12036
  'border-top-width:' + (5 + this.lineStroke) + 'px;width:0;height:0;position:relative;"></div></div>';
11762
12037
  }
11763
12038
  if (this.getParentPosition(data) === 'FFType1') {
11764
- div = div + 'left:' + (data.childLeft + data.childWidth) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
12039
+ div = div + direction + (data.childLeft + data.childWidth) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
11765
12040
  ((data.parentIndex * data.rowHeight) + addTop + this.getTaskbarMidpoint(isMilestoneParent) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
11766
12041
  'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="FFType1">';
11767
12042
  div = div + eLine;
11768
- div = div + 'left:' + (isMilestoneParent ? (((data.parentLeft + data.parentWidth) -
12043
+ div = div + direction + (isMilestoneParent ? (((data.parentLeft + data.parentWidth) -
11769
12044
  (data.childLeft + data.childWidth)) - 1) : ((data.parentLeft + data.parentWidth) -
11770
12045
  (data.childLeft + data.childWidth))) + 'px;' +
11771
12046
  'width:' + (isMilestoneParent ? (21 + this.lineStroke) : (20 + this.lineStroke)) + 'px;' +
11772
12047
  this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
11773
12048
  div = div + eLine;
11774
- div = div + 'left:' + (((data.parentLeft + data.parentWidth) -
12049
+ div = div + direction + (((data.parentLeft + data.parentWidth) -
11775
12050
  (data.childLeft + data.childWidth)) + 20) + 'px;width:0px;' + this.getBorderStyles('left', this.lineStroke) +
11776
12051
  this.getBorderStyles('top', (heightValue + borderTopWidth - this.lineStroke)) + 'position:relative;"></div>';
11777
12052
  div = div + eLine;
11778
- div = div + 'left:' + (isMilestone ? 4 : 10) + 'px;width:' + (isMilestone ?
12053
+ div = div + direction + (isMilestone ? 4 : 10) + 'px;width:' + (isMilestone ?
11779
12054
  (((data.parentLeft + data.parentWidth) - (data.childLeft + data.childWidth)) + (16 + this.lineStroke)) :
11780
12055
  (((data.parentLeft + data.parentWidth) - (data.childLeft + data.childWidth)) + (10 + this.lineStroke))) + 'px;' +
11781
12056
  this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
11782
12057
  div = div + leftArrow;
11783
- div = div + (isMilestone ? 'left:0px;' : '') + this.getBorderStyles('right', 10) +
12058
+ div = div + (isMilestone ? direction + '0px;' : '') + this.getBorderStyles((!this.parent.enableRtl ? 'right' : 'left'), 10) +
11784
12059
  'top:' + (-6 - this.lineStroke) + 'px;border-bottom-width:' + (5 + this.lineStroke) + 'px;' +
11785
12060
  'border-top-width:' + (5 + this.lineStroke) + 'px;width:0;height:0;position:relative;"></div></div>';
11786
12061
  }
11787
12062
  if (this.getParentPosition(data) === 'FFType2') {
11788
- div = div + 'left:' + (data.parentLeft + data.parentWidth) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
12063
+ div = div + direction + (data.parentLeft + data.parentWidth) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
11789
12064
  ((data.parentIndex * data.rowHeight) + addTop + this.getTaskbarMidpoint(isMilestoneParent) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
11790
12065
  'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="FFType2">';
11791
12066
  div = div + eLine;
11792
- div = div + (isMilestoneParent ? 'left:-1px;' : '') + 'width:' +
12067
+ div = div + (isMilestoneParent ? direction + '-1px;' : '') + 'width:' +
11793
12068
  (isMilestoneParent ? (((data.childLeft + data.childWidth) - (data.parentLeft + data.parentWidth)) +
11794
12069
  (21 + this.lineStroke)) : (((data.childLeft + data.childWidth) -
11795
12070
  (data.parentLeft + data.parentWidth)) + (20 + this.lineStroke))) + 'px;' +
11796
12071
  this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
11797
12072
  div = div + eLine;
11798
- div = div + 'left:' + (((data.childLeft + data.childWidth) - (data.parentLeft + data.parentWidth)) + 20) +
12073
+ div = div + direction + (((data.childLeft + data.childWidth) - (data.parentLeft + data.parentWidth)) + 20) +
11799
12074
  'px;width:0px;' + this.getBorderStyles('left', this.lineStroke) +
11800
12075
  this.getBorderStyles('top', (heightValue + borderTopWidth - this.lineStroke)) +
11801
12076
  'position:relative;"></div>';
11802
12077
  div = div + eLine;
11803
- div = div + 'left:' + (isMilestone ? (((data.childLeft + data.childWidth) - (data.parentLeft + data.parentWidth)) + 4) :
12078
+ div = div + direction + (isMilestone ? (((data.childLeft + data.childWidth) - (data.parentLeft + data.parentWidth)) + 4) :
11804
12079
  (((data.childLeft + data.childWidth) - (data.parentLeft + data.parentWidth)) + 10)) + 'px;' +
11805
12080
  'width:' + (isMilestone ? (16 + this.lineStroke) : (10 + this.lineStroke)) + 'px;' +
11806
12081
  this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
11807
12082
  div = div + leftArrow;
11808
- div = div + 'left:' + ((data.childLeft + data.childWidth) - (data.parentLeft + data.parentWidth)) + 'px;' +
11809
- this.getBorderStyles('right', 10) + 'top:' + (-6 - this.lineStroke) + 'px;' +
12083
+ div = div + direction + ((data.childLeft + data.childWidth) - (data.parentLeft + data.parentWidth)) + 'px;' +
12084
+ this.getBorderStyles((!this.parent.enableRtl ? 'right' : 'left'), 10) + 'top:' + (-6 - this.lineStroke) + 'px;' +
11810
12085
  'border-bottom-width:' + (5 + this.lineStroke) + 'px;border-top-width:' + (5 + this.lineStroke) +
11811
12086
  'px;width:0;height:0;position:relative;"></div></div>';
11812
12087
  }
11813
12088
  if (this.getParentPosition(data) === 'FFType3') {
11814
- div = div + 'left:' + (data.childLeft + data.childWidth) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
12089
+ div = div + direction + (data.childLeft + data.childWidth) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
11815
12090
  ((data.childIndex * data.rowHeight) + addTop + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
11816
12091
  'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="FFType3">';
11817
12092
  div = div + duplicateStingOne;
11818
12093
  div = div + eLine;
11819
- div = div + (isMilestone ? ('left:4px;width:' +
12094
+ div = div + (isMilestone ? (direction + '4px;width:' +
11820
12095
  (((data.parentLeft + data.parentWidth) - (data.childLeft + data.childWidth)) + 16)) :
11821
- ('left:10px;width:' + (((data.parentLeft + data.parentWidth) -
12096
+ (direction + '10px;width:' + (((data.parentLeft + data.parentWidth) -
11822
12097
  (data.childLeft + data.childWidth)) + 10))) + 'px;top:' + (-(6 + (5 + this.lineStroke) +
11823
12098
  (this.lineStroke / 2))) + 'px;' + this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
11824
12099
  div = div + eLine;
11825
- div = div + 'left:' + (((data.parentLeft + data.parentWidth) - (data.childLeft + data.childWidth)) + 20) +
12100
+ div = div + direction + (((data.parentLeft + data.parentWidth) - (data.childLeft + data.childWidth)) + 20) +
11826
12101
  'px;top:' + (-(13 + ((this.lineStroke - 1) * 2))) + 'px;' +
11827
12102
  'width:0px;' + this.getBorderStyles('left', this.lineStroke) +
11828
12103
  this.getBorderStyles('top', (heightValue + borderTopWidth - this.lineStroke + 1)) + 'position:relative;"></div>';
11829
12104
  div = div + eLine;
11830
- div = div + (isMilestoneParent ? ('left:' + (((data.parentLeft + data.parentWidth) -
11831
- (data.childLeft + data.childWidth)) - 1) + 'px;width:21') : ('left:' + ((data.parentLeft + data.parentWidth) -
12105
+ div = div + (isMilestoneParent ? (direction + (((data.parentLeft + data.parentWidth) -
12106
+ (data.childLeft + data.childWidth)) - 1) + 'px;width:21') : (direction + ((data.parentLeft + data.parentWidth) -
11832
12107
  (data.childLeft + data.childWidth)) + 'px;width:20')) +
11833
12108
  'px;top:' + (-(13 + ((this.lineStroke - 1) * 2))) + 'px;' +
11834
12109
  this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div></div>';
11835
12110
  }
11836
12111
  if (this.getParentPosition(data) === 'FFType4') {
11837
- div = div + 'left:' + (data.parentLeft + data.parentWidth) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
12112
+ div = div + direction + (data.parentLeft + data.parentWidth) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
11838
12113
  ((data.childIndex * data.rowHeight) + addTop + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
11839
12114
  'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="FFType4">';
11840
12115
  div = div + leftArrow;
11841
- div = div + ('left:' + ((data.childLeft + data.childWidth) -
12116
+ div = div + (direction + ((data.childLeft + data.childWidth) -
11842
12117
  (data.parentLeft + data.parentWidth))) + 'px;' +
11843
- this.getBorderStyles('right', 10) + 'top:' + (-5 - this.lineStroke + (this.lineStroke - 1)) + 'px;' +
12118
+ this.getBorderStyles((!this.parent.enableRtl ? 'right' : 'left'), 10) + 'top:' + (-5 - this.lineStroke + (this.lineStroke - 1)) + 'px;' +
11844
12119
  'border-bottom-width:' + (5 + this.lineStroke) +
11845
12120
  'px;border-top-width:' + (5 + this.lineStroke) + 'px;width:0;height:0;' +
11846
12121
  'position:relative;"></div>';
11847
12122
  div = div + eLine;
11848
- div = div + (isMilestone ? ('left:' + (((data.childLeft + data.childWidth) -
12123
+ div = div + (isMilestone ? (direction + (((data.childLeft + data.childWidth) -
11849
12124
  (data.parentLeft + data.parentWidth)) + 4) +
11850
- 'px;width:' + (16 + this.lineStroke)) : ('left:' + (((data.childLeft + data.childWidth) -
12125
+ 'px;width:' + (16 + this.lineStroke)) : (direction + (((data.childLeft + data.childWidth) -
11851
12126
  (data.parentLeft + data.parentWidth)) + 10) + 'px;width:' + (10 + this.lineStroke))) +
11852
12127
  'px;' + duplicateStingFive;
11853
12128
  div = div + eLine;
11854
- div = div + 'left:' + (((data.childLeft + data.childWidth) -
12129
+ div = div + direction + (((data.childLeft + data.childWidth) -
11855
12130
  (data.parentLeft + data.parentWidth)) + 20) + 'px;top:' + (-(13 + ((this.lineStroke - 1) * 2))) +
11856
12131
  'px;width:0px;' + this.getBorderStyles('left', this.lineStroke) +
11857
12132
  this.getBorderStyles('top', (heightValue + borderTopWidth - this.lineStroke + 1)) + 'position:relative;"></div>';
11858
12133
  div = div + eLine;
11859
- div = div + (isMilestoneParent ? ('left:-1px;width:' + (((data.childLeft + data.childWidth) -
12134
+ div = div + (isMilestoneParent ? (direction + '-1px;width:' + (((data.childLeft + data.childWidth) -
11860
12135
  (data.parentLeft + data.parentWidth)) + (21 + this.lineStroke))) : ('width:' + (((data.childLeft + data.childWidth) -
11861
12136
  (data.parentLeft + data.parentWidth)) + (20 + this.lineStroke)))) + 'px;top:' +
11862
12137
  (-(13 + ((this.lineStroke - 1) * 2))) + 'px;' +
11863
12138
  this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div></div>';
11864
12139
  }
11865
12140
  if (this.getParentPosition(data) === 'SFType4') {
11866
- div = div + 'left:' + (data.parentLeft - 10) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
12141
+ div = div + direction + (data.parentLeft - 10) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
11867
12142
  ((data.childIndex * data.rowHeight) + addTop + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;width:1px;' +
11868
12143
  'height:' + heightValue + 'px;position:absolute" data-connectortype="SFType4">';
11869
12144
  div = div + duplicateStingFour + 'top:' + (-5 - this.lineStroke + (this.lineStroke - 1)) + 'px;' +
@@ -11871,11 +12146,11 @@ var ConnectorLine = /** @__PURE__ @class */ (function () {
11871
12146
  'px;border-top-width:' + (5 + this.lineStroke) + 'px;width:0;height:0;' +
11872
12147
  'position:relative;"></div>';
11873
12148
  div = div + eLine;
11874
- div = div + 'left:' + (isMilestone ? ((((data.childLeft + data.childWidth) - (data.parentLeft)) + (14 + this.lineStroke)) +
12149
+ div = div + direction + (isMilestone ? ((((data.childLeft + data.childWidth) - (data.parentLeft)) + (14 + this.lineStroke)) +
11875
12150
  'px;width:16') : ((((data.childLeft + data.childWidth) - (data.parentLeft)) + 20) + 'px;width:' +
11876
12151
  (10 + this.lineStroke))) + 'px;' + duplicateStingFive;
11877
12152
  div = div + eLine;
11878
- div = div + 'left:' + (((data.childLeft + data.childWidth) - (data.parentLeft)) + 30) + 'px;top:' +
12153
+ div = div + direction + (((data.childLeft + data.childWidth) - (data.parentLeft)) + 30) + 'px;top:' +
11879
12154
  (-(13 + ((this.lineStroke - 1) * 2))) + 'px;width:0px;' + this.getBorderStyles('left', this.lineStroke) +
11880
12155
  this.getBorderStyles('top', (heightValue + borderTopWidth - this.getconnectorLineGap(data) - (this.lineStroke - 1))) + 'position:relative;"></div>';
11881
12156
  div = div + eLine;
@@ -11891,25 +12166,25 @@ var ConnectorLine = /** @__PURE__ @class */ (function () {
11891
12166
  this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div></div>';
11892
12167
  }
11893
12168
  if (this.getParentPosition(data) === 'SFType3') {
11894
- div = div + 'left:' + (data.childLeft + data.childWidth) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
12169
+ div = div + direction + (data.childLeft + data.childWidth) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
11895
12170
  ((data.childIndex * data.rowHeight) + addTop + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
11896
12171
  'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="SFType3">';
11897
12172
  div = div + duplicateStingOne;
11898
12173
  div = div + eLine;
11899
- div = div + (isMilestone ? 'left:4px;width:' + (16 + this.lineStroke) : 'left:10px;width:' +
12174
+ div = div + (isMilestone ? direction + '4px;width:' + (16 + this.lineStroke) : direction + '10px;width:' +
11900
12175
  (10 + this.lineStroke)) + 'px;top:' + (-(13 + ((this.lineStroke - 1) * 2) - 1)) + 'px;' +
11901
12176
  this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
11902
12177
  div = div + eLine;
11903
- div = div + 'left:20px;top:' + (-(13 + ((this.lineStroke - 1) * 2))) + 'px;width:0px;' +
12178
+ div = div + direction + '20px;top:' + (-(13 + ((this.lineStroke - 1) * 2))) + 'px;width:0px;' +
11904
12179
  this.getBorderStyles('left', this.lineStroke) +
11905
12180
  this.getBorderStyles('top', (heightValue + borderTopWidth - (this.lineStroke - 1))) + 'position:relative;"></div>';
11906
12181
  div = div + eLine;
11907
- div = div + 'left:20px;top:' + (-(13 + ((this.lineStroke - 1) * 2))) + 'px;width:' +
12182
+ div = div + direction + '20px;top:' + (-(13 + ((this.lineStroke - 1) * 2))) + 'px;width:' +
11908
12183
  ((data.parentLeft - (data.childLeft + data.childWidth + 20)) + this.lineStroke) + 'px;' +
11909
12184
  this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div></div>';
11910
12185
  }
11911
12186
  if (this.getParentPosition(data) === 'SFType1') {
11912
- div = div + 'left:' + (data.parentLeft - 10) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
12187
+ div = div + direction + (data.parentLeft - 10) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
11913
12188
  ((data.parentIndex * data.rowHeight) + addTop + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
11914
12189
  'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="SFType1">';
11915
12190
  div = div + eLine;
@@ -11921,12 +12196,12 @@ var ConnectorLine = /** @__PURE__ @class */ (function () {
11921
12196
  div = div + 'width:' + (((data.childLeft + data.childWidth) - (data.parentLeft)) + (30 + this.lineStroke)) + 'px;' +
11922
12197
  this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
11923
12198
  div = div + eLine;
11924
- div = div + 'left:' + (((data.childLeft + data.childWidth) - (data.parentLeft)) + 30) +
12199
+ div = div + direction + (((data.childLeft + data.childWidth) - (data.parentLeft)) + 30) +
11925
12200
  'px;width:0px;' + this.getBorderStyles('left', this.lineStroke) +
11926
12201
  this.getBorderStyles('top', (this.getconnectorLineGap(data) - this.lineStroke)) + 'position:relative;"></div>';
11927
12202
  div = div + eLine;
11928
- div = div + (isMilestone ? ('left:' + (((data.childLeft + data.childWidth) -
11929
- (data.parentLeft)) + 15) + 'px;width:' + (15 + this.lineStroke)) : ('left:' +
12203
+ div = div + (isMilestone ? (direction + (((data.childLeft + data.childWidth) -
12204
+ (data.parentLeft)) + 15) + 'px;width:' + (15 + this.lineStroke)) : (direction +
11930
12205
  (((data.childLeft + data.childWidth) - (data.parentLeft)) + 20) + 'px;width:' + (10 + this.lineStroke))) + 'px;' +
11931
12206
  this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
11932
12207
  div = div + duplicateStingFour + 'top:' + (-6 - this.lineStroke) + 'px;' +
@@ -11934,23 +12209,23 @@ var ConnectorLine = /** @__PURE__ @class */ (function () {
11934
12209
  (5 + this.lineStroke) + 'px;position:relative;"></div></div>';
11935
12210
  }
11936
12211
  if (this.getParentPosition(data) === 'SFType2') {
11937
- div = div + 'left:' + (data.childLeft + data.childWidth) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
12212
+ div = div + direction + (data.childLeft + data.childWidth) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
11938
12213
  ((data.parentIndex * data.rowHeight) + addTop + this.getTaskbarMidpoint(isMilestoneParent) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
11939
12214
  'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="SFType2">';
11940
12215
  div = div + eLine;
11941
- div = div + 'left:' + (((data.parentLeft) - (data.childLeft + data.childWidth)) - 10) +
12216
+ div = div + direction + (((data.parentLeft) - (data.childLeft + data.childWidth)) - 10) +
11942
12217
  'px;width:11px;' + this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
11943
12218
  div = div + eLine;
11944
- div = div + 'left:' + (((data.parentLeft) - (data.childLeft + data.childWidth)) - 10) +
12219
+ div = div + direction + (((data.parentLeft) - (data.childLeft + data.childWidth)) - 10) +
11945
12220
  'px;width:0px;' + this.getBorderStyles('left', this.lineStroke) +
11946
12221
  this.getBorderStyles('top', (heightValue + borderTopWidth - this.lineStroke)) + 'position:relative;"></div>';
11947
12222
  div = div + eLine;
11948
- div = div + (isMilestone ? ('left:4px;width:' + (((data.parentLeft) - (data.childLeft + data.childWidth))
11949
- - (14 - this.lineStroke))) : ('left:10px;width:' + (((data.parentLeft) -
12223
+ div = div + (isMilestone ? (direction + '4px;width:' + (((data.parentLeft) - (data.childLeft + data.childWidth))
12224
+ - (14 - this.lineStroke))) : (direction + '10px;width:' + (((data.parentLeft) -
11950
12225
  (data.childLeft + data.childWidth)) - (20 - this.lineStroke)))) +
11951
12226
  'px;' + this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
11952
12227
  div = div + leftArrow;
11953
- div = div + 'left:0px;' + this.getBorderStyles('right', 10) +
12228
+ div = div + direction + '0px;' + this.getBorderStyles((this.parent.enableRtl ? 'right' : 'left'), 10) +
11954
12229
  'top:' + (-6 - this.lineStroke) + 'px;border-bottom-width:' + (5 + this.lineStroke) +
11955
12230
  'px;border-top-width:' + (5 + this.lineStroke) + 'px;width:0;height:0;position:relative;"></div></div>';
11956
12231
  }
@@ -12139,12 +12414,19 @@ var Splitter$1 = /** @__PURE__ @class */ (function () {
12139
12414
  this.parent.splitterElement = createElement('div', { className: splitter });
12140
12415
  this.parent.treeGridPane = createElement('div', { className: treeGridPane });
12141
12416
  this.parent.chartPane = createElement('div', { className: ganttChartPane });
12142
- this.parent.splitterElement.appendChild(this.parent.treeGridPane);
12143
- this.parent.splitterElement.appendChild(this.parent.chartPane);
12417
+ if (this.parent.enableRtl) {
12418
+ this.parent.splitterElement.appendChild(this.parent.chartPane);
12419
+ this.parent.splitterElement.appendChild(this.parent.treeGridPane);
12420
+ }
12421
+ else {
12422
+ this.parent.splitterElement.appendChild(this.parent.treeGridPane);
12423
+ this.parent.splitterElement.appendChild(this.parent.chartPane);
12424
+ }
12144
12425
  this.splitterObject = new Splitter({
12145
12426
  height: null,
12146
12427
  width: this.parent.ganttWidth.toString(),
12147
12428
  enablePersistence: this.parent.enablePersistence,
12429
+ enableRtl: this.parent.enableRtl,
12148
12430
  separatorSize: this.parent.splitterSettings.separatorSize,
12149
12431
  paneSettings: [
12150
12432
  {
@@ -12158,6 +12440,9 @@ var Splitter$1 = /** @__PURE__ @class */ (function () {
12158
12440
  ],
12159
12441
  orientation: 'Horizontal',
12160
12442
  resizeStart: function (args) {
12443
+ if (_this.parent.contextMenuModule && _this.parent.contextMenuModule.isOpen) {
12444
+ _this.parent.contextMenuModule.contextMenu.close();
12445
+ }
12161
12446
  var leftPane = args.pane[0];
12162
12447
  var rightPane = args.pane[1];
12163
12448
  _this.splitterPreviousPositionGrid = leftPane.scrollWidth + 1 + 'px';
@@ -12320,6 +12605,7 @@ var Tooltip$1 = /** @__PURE__ @class */ (function () {
12320
12605
  '.e-taskbar-left-resizer, .e-taskbar-right-resizer, .e-baseline-gantt-milestone, .e-gantt-manualparenttaskbar';
12321
12606
  this.toolTipObj.position = 'BottomCenter';
12322
12607
  this.toolTipObj.openDelay = 700;
12608
+ this.toolTipObj.enableRtl = this.parent.enableRtl;
12323
12609
  this.toolTipObj.enableHtmlSanitizer = false;
12324
12610
  this.toolTipObj.cssClass = ganttTooltip;
12325
12611
  this.toolTipObj.animation = { open: { effect: 'None', delay: 0 }, close: { effect: 'None', delay: 0 } };
@@ -12960,6 +13246,7 @@ var FocusModule = /** @__PURE__ @class */ (function () {
12960
13246
  var top_1 = containerPosition.top + (containerPosition.height / 2);
12961
13247
  var left = containerPosition.left + (containerPosition.width / 2);
12962
13248
  this.setActiveElement(e.target);
13249
+ // eslint-disable-next-line security/detect-non-literal-fs-filename
12963
13250
  contextMenu.open(top_1, left);
12964
13251
  e.preventDefault();
12965
13252
  break;
@@ -13064,6 +13351,8 @@ var Gantt = /** @__PURE__ @class */ (function (_super) {
13064
13351
  __extends(Gantt, _super);
13065
13352
  function Gantt(options, element) {
13066
13353
  var _this = _super.call(this, options, element) || this;
13354
+ _this.showIndicator = true;
13355
+ _this.singleTier = 0;
13067
13356
  /** @hidden */
13068
13357
  _this.isCancelled = false;
13069
13358
  /** @hidden */
@@ -13259,7 +13548,7 @@ var Gantt = /** @__PURE__ @class */ (function (_super) {
13259
13548
  /**
13260
13549
  * To check whether the date is in DST.
13261
13550
  *
13262
- * @param {Date} date .
13551
+ * @param {Date} date - Defines the date to check whether it is DST.
13263
13552
  * @returns {boolean} .
13264
13553
  * @private
13265
13554
  */
@@ -13350,9 +13639,348 @@ var Gantt = /** @__PURE__ @class */ (function (_super) {
13350
13639
  }
13351
13640
  this.splitterModule.renderSplitter();
13352
13641
  this.notify('renderPanels', null);
13353
- this.showSpinner();
13642
+ if (!isNullOrUndefined(this.loadingIndicator) && this.loadingIndicator.indicatorType === "Shimmer") {
13643
+ this.showMaskRow();
13644
+ }
13645
+ else {
13646
+ this.showSpinner();
13647
+ }
13354
13648
  this.dataOperation.checkDataBinding();
13355
13649
  };
13650
+ Gantt.prototype.hideMaskRow = function () {
13651
+ var isTablePresent = this.element.querySelectorAll('.e-masked-table').length;
13652
+ if (!isNullOrUndefined(this.contentMaskTable) && isTablePresent != 0) {
13653
+ var maskTable = this.contentMaskTable;
13654
+ remove(maskTable);
13655
+ this.contentMaskTable = null;
13656
+ }
13657
+ isTablePresent = this.element.querySelectorAll('.e-masked-table').length;
13658
+ if (!isNullOrUndefined(this.headerMaskTable) && isTablePresent != 0) {
13659
+ var maskTable = this.headerMaskTable;
13660
+ remove(maskTable);
13661
+ this.headerMaskTable = null;
13662
+ }
13663
+ while ((this.element.querySelectorAll('.e-table-background')).length != 0) {
13664
+ this.element.querySelectorAll('.e-table-background')[0].remove();
13665
+ }
13666
+ while ((this.element.querySelectorAll('.e-temp-timeline')).length != 0) {
13667
+ this.element.querySelectorAll('.e-temp-timeline')[0].remove();
13668
+ }
13669
+ if (this.element.querySelectorAll('.' + timelineHeaderTableContainer).length != 0) {
13670
+ for (var i = 0; i < this.singleTier; i++) {
13671
+ if (!isNullOrUndefined(this.element.querySelectorAll('.' + timelineHeaderTableContainer)[i])) {
13672
+ this.element.querySelectorAll('.' + timelineHeaderTableContainer)[i]['style'].visibility = "visible";
13673
+ }
13674
+ }
13675
+ }
13676
+ if (!isNullOrUndefined(this.element.querySelector('.' + timelineHeaderContainer))) {
13677
+ this.element.querySelector('.' + timelineHeaderContainer)['style'].position = "relative";
13678
+ }
13679
+ if (!isNullOrUndefined(this.element.getElementsByClassName(chartBodyContent)[0])) {
13680
+ this.element.getElementsByClassName(chartBodyContent)[0]['style'].visibility = "visible";
13681
+ }
13682
+ };
13683
+ Gantt.prototype.showMaskRow = function () {
13684
+ var ganttHeader = this.chartPane.childNodes[0].childNodes[0];
13685
+ this.scrollLeftValue = this.chartPane.childNodes[0].childNodes[0]['scrollLeft'];
13686
+ var ganttContent = this.chartPane.childNodes[0].childNodes[1];
13687
+ if (!this.contentMaskTable) {
13688
+ if (ganttContent) {
13689
+ var content$$1 = ganttContent;
13690
+ this.renderBackGround(content$$1);
13691
+ if (this.element.querySelectorAll('.' + timelineHeaderTableContainer).length != 0) {
13692
+ this.singleTier = this.timelineModule.isSingleTier ? 1 : 2;
13693
+ for (var i = 0; i < this.singleTier; i++) {
13694
+ this.element.querySelectorAll('.' + timelineHeaderTableContainer)[i]['style'].visibility = "hidden";
13695
+ }
13696
+ }
13697
+ if (this.singleTier === 0) {
13698
+ this.singleTier = 2;
13699
+ }
13700
+ this.element.getElementsByClassName(chartBodyContent)[0]['style'].visibility = "hidden";
13701
+ this.contentMaskTable = this.contentMaskTable = this.createMaskTable(content$$1);
13702
+ }
13703
+ if (ganttHeader) {
13704
+ this.element.querySelector('.' + timelineHeaderContainer)['style'].position = "static";
13705
+ var content$$1 = ganttHeader;
13706
+ this.renderHeaderBackground(content$$1);
13707
+ this.headerMaskTable = this.headerMaskTable = this.createMaskTable(content$$1);
13708
+ }
13709
+ }
13710
+ };
13711
+ Gantt.prototype.renderHeaderBackground = function (element) {
13712
+ var parentElement = element;
13713
+ var timelineHeight = element.getBoundingClientRect().height;
13714
+ var header = closest(parentElement, '.' + timelineHeaderContainer) ? true : false;
13715
+ if (header) {
13716
+ var div = this.createElement('div', { className: 'e-table-background' });
13717
+ var tempRow = this.createElement('tr', { className: 'e-masked-row e-row', attrs: {
13718
+ style: 'height: ' + timelineHeight + 'px;'
13719
+ } });
13720
+ var backgroundLines = 0;
13721
+ var containerWidth = Math.round(element.getBoundingClientRect().width);
13722
+ for (var i = 0; i < 3; i++) {
13723
+ if (this.enableRtl) {
13724
+ div.appendChild(this.createElement('div', { className: 'e-div-background', attrs: {
13725
+ style: 'left: ' + (containerWidth -= ((160))) + 'px; top:0px;'
13726
+ } }));
13727
+ }
13728
+ else {
13729
+ div.appendChild(this.createElement('div', { className: 'e-div-background', attrs: {
13730
+ style: 'left: ' + (backgroundLines += ((160))) + 'px; top:0px;'
13731
+ } }));
13732
+ }
13733
+ }
13734
+ parentElement.insertBefore(div, parentElement.firstChild);
13735
+ }
13736
+ };
13737
+ Gantt.prototype.renderBackGround = function (element) {
13738
+ var parentElement = element;
13739
+ var timelineHeight = element.getBoundingClientRect().height;
13740
+ var content$$1 = closest(parentElement, '.' + chartBodyContainer) ? true : false;
13741
+ if (content$$1) {
13742
+ var div = this.createElement('div', { className: 'e-table-background' });
13743
+ var tempRow = this.createElement('tr', { className: 'e-masked-row e-row', attrs: {
13744
+ style: 'height: ' + timelineHeight + 'px;'
13745
+ } });
13746
+ var backgroundLines = 0;
13747
+ var containerWidth = Math.round(element.getBoundingClientRect().width);
13748
+ for (var i = 0; i < 3; i++) {
13749
+ if (this.enableRtl) {
13750
+ div.appendChild(this.createElement('div', { className: 'e-div-background', attrs: {
13751
+ style: 'left: ' + (containerWidth -= (160)) + 'px;z-index:1;'
13752
+ } }));
13753
+ }
13754
+ else {
13755
+ div.appendChild(this.createElement('div', { className: 'e-div-background', attrs: {
13756
+ style: 'left: ' + (backgroundLines += (160)) + 'px;z-index:1;'
13757
+ } }));
13758
+ }
13759
+ }
13760
+ parentElement.insertBefore(div, parentElement.firstChild);
13761
+ }
13762
+ };
13763
+ Gantt.prototype.createMaskTable = function (element) {
13764
+ var parentElement = element;
13765
+ var shimmerContainerHeight = element.getBoundingClientRect().height;
13766
+ var header = closest(parentElement, '.' + timelineHeaderContainer) ? true : false;
13767
+ var maskTable;
13768
+ if (header) {
13769
+ maskTable = this.createEmptyTimeLineTable(shimmerContainerHeight);
13770
+ maskTable.style.position = 'sticky';
13771
+ maskTable.style.left = 0 + 'px';
13772
+ if (this.enableRtl) {
13773
+ maskTable.style.removeProperty('left');
13774
+ }
13775
+ }
13776
+ else {
13777
+ maskTable = this.createEmptyMaskTable(shimmerContainerHeight);
13778
+ maskTable.style.position = 'absolute';
13779
+ maskTable.style.zIndex = 1;
13780
+ }
13781
+ if (!header) {
13782
+ maskTable.style.height = element.getBoundingClientRect().height + 'px';
13783
+ parentElement.insertBefore(maskTable, parentElement.firstChild);
13784
+ }
13785
+ else {
13786
+ maskTable.style.height = element.getBoundingClientRect().height + 'px';
13787
+ var div = this.createElement('div', { className: 'e-temp-timeline' });
13788
+ div.style.width = 614 + 'px';
13789
+ div.style.position = 'sticky';
13790
+ if (this.enableRtl) {
13791
+ div.style['margin-right'] = Math.abs(this.scrollLeftValue) + 'px';
13792
+ }
13793
+ else {
13794
+ div.style['margin-left'] = this.scrollLeftValue + 'px';
13795
+ }
13796
+ div.appendChild(maskTable);
13797
+ parentElement.insertBefore(div, parentElement.firstChild);
13798
+ }
13799
+ return maskTable;
13800
+ };
13801
+ Gantt.prototype.createEmptyTimeLineTable = function (timelineHeight) {
13802
+ var table = this.createElement('table', { className: 'e-table e-masked-table' });
13803
+ var tbody = this.createElement('tbody', { className: 'e-masked-tbody' });
13804
+ var row = [];
13805
+ var duplicateRow = this.createElement('tr', { className: 'e-masked-row e-row', attrs: {
13806
+ style: 'height: ' + timelineHeight / 2 + 'px;'
13807
+ } });
13808
+ for (var i = 0; i < this.singleTier; i++) {
13809
+ row.push(duplicateRow.cloneNode(true));
13810
+ }
13811
+ this.topBottomHeader = 0;
13812
+ for (var i = 0; i < row.length; i++) {
13813
+ tbody.appendChild(this.applyTimelineMaskRow(row[i]));
13814
+ this.topBottomHeader = this.topBottomHeader + 1;
13815
+ }
13816
+ table.appendChild(tbody);
13817
+ table.style.width = 100 + '%';
13818
+ return table;
13819
+ };
13820
+ Gantt.prototype.applyTimelineMaskRow = function (row) {
13821
+ var maskRow = row;
13822
+ maskRow.appendChild(this.createElement('td', { className: 'e-timeline-masked-top-header-cell' }));
13823
+ maskRow.appendChild(this.createElement('td', { className: 'e-timeline-masked-top-header-cell' }));
13824
+ maskRow.appendChild(this.createElement('td', { className: 'e-timeline-masked-top-header-cell' }));
13825
+ maskRow.appendChild(this.createElement('td', { className: 'e-timeline-masked-top-header-cell' }));
13826
+ for (var i = 0; i < maskRow.childNodes.length - 1; i++) {
13827
+ maskRow.childNodes[i]['style']['width'] = 166 + 'px';
13828
+ }
13829
+ var maskCells = [].slice.call(maskRow.childNodes);
13830
+ for (var i = 0; i < maskCells.length; i++) {
13831
+ var maskCell = maskCells[i];
13832
+ switch (this.topBottomHeader) {
13833
+ case 0:
13834
+ if (this.enableRtl) {
13835
+ maskCell.innerHTML = '<span class="e-mask e-skeleton e-skeleton-text e-shimmer-wave e-timelineHeader"></span>';
13836
+ maskCell.children[0]['style'].left = -20 + 'px';
13837
+ }
13838
+ else {
13839
+ maskCell.innerHTML = '<span class="e-mask e-skeleton e-skeleton-text e-shimmer-wave e-timelineHeader"></span>';
13840
+ }
13841
+ break;
13842
+ case 1:
13843
+ maskCell.appendChild(this.createElement('td', { className: 'e-timeline-masked-top-header-cell' }));
13844
+ maskCell.appendChild(this.createElement('td', { className: 'e-timeline-masked-top-header-cell' }));
13845
+ maskCell.appendChild(this.createElement('td', { className: 'e-timeline-masked-top-header-cell' }));
13846
+ var innerMaskCells = [].slice.call(maskCell.childNodes);
13847
+ for (var i_1 = 0; i_1 < innerMaskCells.length; i_1++) {
13848
+ var htmlInner = innerMaskCells[i_1];
13849
+ if (i_1 === 0) {
13850
+ if (this.enableRtl) {
13851
+ htmlInner.innerHTML = '<span class="e-mask e-skeleton e-skeleton-text e-shimmer-wave e-innerHTML"></span>';
13852
+ htmlInner.children[0]['style'].left = -14 + 'px';
13853
+ }
13854
+ else {
13855
+ htmlInner.innerHTML = '<span class="e-mask e-skeleton e-skeleton-text e-shimmer-wave e-innerHTML"></span>';
13856
+ }
13857
+ }
13858
+ else if (i_1 === 1) {
13859
+ if (this.enableRtl) {
13860
+ htmlInner.innerHTML = '<span class="e-mask e-skeleton e-skeleton-text e-shimmer-wave e-innerHTML1"></span>';
13861
+ htmlInner.children[0]['style'].left = -30 + 'px';
13862
+ }
13863
+ else {
13864
+ htmlInner.innerHTML = '<span class="e-mask e-skeleton e-skeleton-text e-shimmer-wave e-innerHTML1"></span>';
13865
+ }
13866
+ }
13867
+ else {
13868
+ if (this.enableRtl) {
13869
+ htmlInner.innerHTML = '<span class="e-mask e-skeleton e-skeleton-text e-shimmer-wave e-innerHTML2"></span>';
13870
+ htmlInner.children[0]['style'].left = -60 + 'px';
13871
+ }
13872
+ else {
13873
+ htmlInner.innerHTML = '<span class="e-mask e-skeleton e-skeleton-text e-shimmer-wave e-innerHTML2"></span>';
13874
+ }
13875
+ }
13876
+ }
13877
+ break;
13878
+ }
13879
+ }
13880
+ return maskRow;
13881
+ };
13882
+ Gantt.prototype.createEmptyMaskTable = function (timelineHeight) {
13883
+ var table = this.createElement('table', { className: 'e-table e-masked-table' });
13884
+ var tbody = this.createElement('tbody', { className: 'e-masked-tbody' });
13885
+ var row = [];
13886
+ var duplicateRow = this.createElement('tr', { className: 'e-masked-row e-row', attrs: {
13887
+ style: 'height: ' + timelineHeight / 7 + 'px;'
13888
+ } });
13889
+ this.columnLoop = 0;
13890
+ for (var i = 0; i < 6; i++) {
13891
+ row.push(duplicateRow.cloneNode(true));
13892
+ }
13893
+ for (var j = 0; j < row.length; j++) {
13894
+ if (this.columnLoop < 4) {
13895
+ this.columnLoop = this.columnLoop + 1;
13896
+ }
13897
+ else if (this.columnLoop === 4) {
13898
+ this.columnLoop = 1;
13899
+ }
13900
+ tbody.appendChild(this.applyMaskRow(row[j]));
13901
+ }
13902
+ table.appendChild(tbody);
13903
+ table.style.width = 100 + '%';
13904
+ var div = this.createElement('div', { className: 'e-temp-container' });
13905
+ div.style.width = 'calc(100% - ' + 17 + 'px)';
13906
+ div.style.overflow = 'hidden';
13907
+ div.appendChild(table);
13908
+ return div;
13909
+ };
13910
+ Gantt.prototype.applyMaskRow = function (row) {
13911
+ var maskRow = row;
13912
+ if (this.columnLoop < 4) {
13913
+ maskRow.appendChild(this.createElement('td', { className: 'e-masked-cell e-rowcell' }));
13914
+ maskRow.appendChild(this.createElement('td', { className: 'e-masked-cell e-rowcell' }));
13915
+ }
13916
+ else {
13917
+ maskRow.appendChild(this.createElement('td', { className: 'e-masked-cell e-rowcell' }));
13918
+ }
13919
+ var maskCells = [].slice.call(maskRow.childNodes);
13920
+ for (var i = 0; i < maskCells.length; i++) {
13921
+ var maskCell = maskCells[i];
13922
+ switch (this.columnLoop) {
13923
+ case 1:
13924
+ if (i === 0) {
13925
+ if (this.enableRtl) {
13926
+ maskCell.innerHTML = '<span class="e-mask e-skeleton e-skeleton-text e-shimmer-wave e-maskcell01"></span>';
13927
+ maskCell.children[0]['style'].left = -14 + 'px';
13928
+ }
13929
+ else {
13930
+ maskCell.innerHTML = '<span class="e-mask e-skeleton e-skeleton-text e-shimmer-wave e-maskcell01"></span>';
13931
+ }
13932
+ }
13933
+ else {
13934
+ maskCell.innerHTML = '<span class="e-mask e-skeleton e-skeleton-text e-shimmer-wave e-maskcell02"></span>';
13935
+ }
13936
+ break;
13937
+ case 2:
13938
+ if (i === 0) {
13939
+ if (this.enableRtl) {
13940
+ maskCell.innerHTML = '<span class="e-mask e-skeleton e-skeleton-text e-shimmer-wave e-maskcell03"></span>';
13941
+ maskCell.children[0]['style'].left = -14 + 'px';
13942
+ }
13943
+ else {
13944
+ maskCell.innerHTML = '<span class="e-mask e-skeleton e-skeleton-text e-shimmer-wave e-maskcell03"></span>';
13945
+ }
13946
+ }
13947
+ else {
13948
+ maskCell.innerHTML = '<span class="e-mask e-skeleton e-skeleton-text e-shimmer-wave e-maskcell04"></span>';
13949
+ }
13950
+ break;
13951
+ case 3:
13952
+ if (i === 0) {
13953
+ if (this.enableRtl) {
13954
+ maskCell.innerHTML = '<span class="e-mask e-skeleton e-skeleton-text e-shimmer-wave e-maskcell05"></span>';
13955
+ maskCell.children[0]['style'].left = -64 + 'px';
13956
+ }
13957
+ else {
13958
+ maskCell.innerHTML = '<span class="e-mask e-skeleton e-skeleton-text e-shimmer-wave e-maskcell05"></span>';
13959
+ }
13960
+ }
13961
+ else {
13962
+ if (this.enableRtl) {
13963
+ maskCell.innerHTML = '<span class="e-mask e-skeleton e-skeleton-text e-shimmer-wave e-maskcell06"></span>';
13964
+ maskCell.children[0]['style'].left = -192 + 'px';
13965
+ }
13966
+ else {
13967
+ maskCell.innerHTML = '<span class="e-mask e-skeleton e-skeleton-text e-shimmer-wave e-maskcell06"></span>';
13968
+ }
13969
+ }
13970
+ break;
13971
+ case 4:
13972
+ if (this.enableRtl) {
13973
+ maskCell.innerHTML = '<span class="e-mask e-skeleton e-skeleton-text e-shimmer-wave e-maskcell07"></span>';
13974
+ maskCell.children[0]['style'].left = -388 + 'px';
13975
+ }
13976
+ else {
13977
+ maskCell.innerHTML = '<span class="e-mask e-skeleton e-skeleton-text e-shimmer-wave e-maskcell07"></span>';
13978
+ }
13979
+ break;
13980
+ }
13981
+ }
13982
+ return maskRow;
13983
+ };
13356
13984
  /**
13357
13985
  * Method used to show spinner.
13358
13986
  *
@@ -13378,7 +14006,7 @@ var Gantt = /** @__PURE__ @class */ (function (_super) {
13378
14006
  this.timelineModule.calculateZoomingLevelsPerDayWidth(); // To calculate the perDaywidth
13379
14007
  };
13380
14008
  /**
13381
- * @param {boolean} isChange .
14009
+ * @param {boolean} isChange -Defines whether task data is changed.
13382
14010
  * @returns {void} .
13383
14011
  * @private
13384
14012
  */
@@ -13478,7 +14106,7 @@ var Gantt = /** @__PURE__ @class */ (function (_super) {
13478
14106
  /**
13479
14107
  * Method for updating row height value in connector line collections
13480
14108
  *
13481
- * @param {IConnectorLineObject[]} collection .
14109
+ * @param {IConnectorLineObject[]} collection -Defines the CollectorLine collection.
13482
14110
  * @returns {void} .
13483
14111
  * @private
13484
14112
  */
@@ -13514,7 +14142,7 @@ var Gantt = /** @__PURE__ @class */ (function (_super) {
13514
14142
  this.currentViewData = this.treeGrid.getCurrentViewRecords().slice();
13515
14143
  };
13516
14144
  /**
13517
- * @param {IGanttData} records .
14145
+ * @param {IGanttData} records -Defines the delete record collections.
13518
14146
  * @returns {IGanttData} .
13519
14147
  * @private
13520
14148
  */
@@ -13526,7 +14154,7 @@ var Gantt = /** @__PURE__ @class */ (function (_super) {
13526
14154
  return updatedRecord;
13527
14155
  };
13528
14156
  /**
13529
- * @param {object} args .
14157
+ * @param {object} args -Update the gantt element content height.
13530
14158
  * @returns {void} .
13531
14159
  * @private
13532
14160
  */
@@ -13879,7 +14507,12 @@ var Gantt = /** @__PURE__ @class */ (function (_super) {
13879
14507
  this.treeGrid.height = '100%';
13880
14508
  this.notify('tree-grid-created', {});
13881
14509
  this.createGanttPopUpElement();
13882
- this.hideSpinner();
14510
+ if (!isNullOrUndefined(this.loadingIndicator) && this.loadingIndicator.indicatorType === "Shimmer") {
14511
+ this.hideMaskRow();
14512
+ }
14513
+ else {
14514
+ this.hideSpinner();
14515
+ }
13883
14516
  setValue('isGanttCreated', true, args);
13884
14517
  this.renderComplete();
13885
14518
  }
@@ -13891,6 +14524,11 @@ var Gantt = /** @__PURE__ @class */ (function (_super) {
13891
14524
  this.criticalPathModule.showCriticalPath(this.enableCriticalPath);
13892
14525
  }
13893
14526
  this.notify('recordsUpdated', {});
14527
+ for (var i = 0; i < document.getElementsByClassName('e-timeline-header-table-container').length; i++) {
14528
+ for (var j = 0; j < document.getElementsByClassName('e-timeline-header-table-container')[i].children[0].children[0].children.length; j++) {
14529
+ document.getElementsByClassName('e-timeline-header-table-container')[i].children[0].children[0].children[j].children[0].setAttribute('tabindex', '-1');
14530
+ }
14531
+ }
13894
14532
  if (this.enableCriticalPath && this.criticalPathModule) {
13895
14533
  var criticalModule = this.criticalPathModule;
13896
14534
  this.criticalPathModule.criticalConnectorLine(criticalModule.criticalPathCollection, criticalModule.detailPredecessorCollection, true, criticalModule.predecessorCollectionTaskIds);
@@ -13922,8 +14560,8 @@ var Gantt = /** @__PURE__ @class */ (function (_super) {
13922
14560
  /**
13923
14561
  * Called internally, if any of the property value changed.
13924
14562
  *
13925
- * @param {GanttModel} newProp .
13926
- * @param {GanttModel} oldProp .
14563
+ * @param {GanttModel} newProp - Defines the New GanttModel.
14564
+ * @param {GanttModel} oldProp - Defines the old GanttModel.
13927
14565
  * @returns {void} .
13928
14566
  * @private
13929
14567
  */
@@ -13986,6 +14624,12 @@ var Gantt = /** @__PURE__ @class */ (function (_super) {
13986
14624
  this.dataOperation.checkDataBinding(true);
13987
14625
  break;
13988
14626
  case 'enableCriticalPath':
14627
+ if (!isNullOrUndefined(this.loadingIndicator) && this.loadingIndicator.indicatorType === "Shimmer") {
14628
+ this.hideMaskRow();
14629
+ }
14630
+ else {
14631
+ this.hideSpinner();
14632
+ }
13989
14633
  if (this.enableCriticalPath && this.criticalPathModule) {
13990
14634
  this.criticalPathModule.showCriticalPath(this.enableCriticalPath);
13991
14635
  var criticalModule = this.criticalPathModule;
@@ -14532,7 +15176,7 @@ var Gantt = /** @__PURE__ @class */ (function (_super) {
14532
15176
  thWidth = thElements[n].style.width;
14533
15177
  var divElement = createElement('div', {
14534
15178
  className: 'e-line-container-cell',
14535
- styles: 'left:' + leftPos + 'px'
15179
+ styles: (this.enableRtl ? 'right:' + (leftPos + 1) : 'left:' + leftPos) + 'px'
14536
15180
  });
14537
15181
  containerDiv.appendChild(divElement);
14538
15182
  }
@@ -14667,12 +15311,18 @@ var Gantt = /** @__PURE__ @class */ (function (_super) {
14667
15311
  };
14668
15312
  /**
14669
15313
  *
14670
- * @param {object} args .
15314
+ * @param {object} args -Defines the edited event args.
14671
15315
  * @returns {void} .
14672
15316
  * @private
14673
15317
  */
14674
15318
  Gantt.prototype.actionBeginTask = function (args) {
14675
15319
  this.trigger('actionBegin', args);
15320
+ if (!isNullOrUndefined(this.loadingIndicator) && this.loadingIndicator.indicatorType === "Shimmer") {
15321
+ this.showMaskRow();
15322
+ }
15323
+ else {
15324
+ this.showSpinner();
15325
+ }
14676
15326
  };
14677
15327
  /**
14678
15328
  * To move horizontal scroll bar of Gantt to specific date.
@@ -14708,7 +15358,7 @@ var Gantt = /** @__PURE__ @class */ (function (_super) {
14708
15358
  if (!isNullOrUndefined(left)) {
14709
15359
  left = this.ganttChartModule.scrollElement.scrollWidth <= left ?
14710
15360
  this.ganttChartModule.scrollElement.scrollWidth : left;
14711
- this.ganttChartModule.scrollObject.setScrollLeft(left);
15361
+ this.ganttChartModule.scrollObject.setScrollLeft(left, this.enableRtl ? -1 : 0);
14712
15362
  }
14713
15363
  if (!isNullOrUndefined(top)) {
14714
15364
  top = this.ganttChartModule.scrollElement.scrollHeight <= top ? this.ganttChartModule.scrollElement.scrollHeight : top;
@@ -14741,8 +15391,8 @@ var Gantt = /** @__PURE__ @class */ (function (_super) {
14741
15391
  /**
14742
15392
  * Get parent task by clone parent item.
14743
15393
  *
14744
- * @param {IGanttData} ganttRecord .
14745
- * @param {number} level .
15394
+ * @param {IGanttData} ganttRecord -Defines the Gantt record.
15395
+ * @param {number} level -Defines the selected record level.
14746
15396
  * @returns {IGanttData} .
14747
15397
  * @hidden
14748
15398
  */
@@ -14855,7 +15505,7 @@ var Gantt = /** @__PURE__ @class */ (function (_super) {
14855
15505
  /**
14856
15506
  * To update timeline at start point with one unit.
14857
15507
  *
14858
- * @param {string} mode .
15508
+ * @param {string} mode - Render previous span of Timeline.
14859
15509
  * @returns {void} .
14860
15510
  * @public
14861
15511
  */
@@ -14865,7 +15515,7 @@ var Gantt = /** @__PURE__ @class */ (function (_super) {
14865
15515
  /**
14866
15516
  * To update timeline at end point with one unit.
14867
15517
  *
14868
- * @param {string} mode .
15518
+ * @param {string} mode - Render next span of Timeline.
14869
15519
  * @returns {void} .
14870
15520
  * @public
14871
15521
  */
@@ -14939,7 +15589,7 @@ var Gantt = /** @__PURE__ @class */ (function (_super) {
14939
15589
  /**
14940
15590
  * Method to clear edited collections in gantt set edit flag value
14941
15591
  *
14942
- * @param {boolean} isStart .
15592
+ * @param {boolean} isStart -Defines whether to initiate edit action.
14943
15593
  * @returns {void} .
14944
15594
  * @private
14945
15595
  */
@@ -14958,18 +15608,24 @@ var Gantt = /** @__PURE__ @class */ (function (_super) {
14958
15608
  */
14959
15609
  /* eslint-disable-next-line */
14960
15610
  Gantt.prototype.setRecordValue = function (field, value, record, isTaskData) {
15611
+ value = isUndefined(value) ? null : value;
14961
15612
  if (this.isOnEdit || this.isOnDelete) {
14962
15613
  this.makeCloneData(field, record, isTaskData);
14963
- var id = isTaskData ? record.rowUniqueID : record.ganttProperties.rowUniqueID;
15614
+ var ganttData = isTaskData ? record : record.ganttProperties;
15615
+ var id = ganttData.rowUniqueID;
14964
15616
  var task = this.getRecordByID(id);
14965
- if (task && this.editedRecords.indexOf(task) === -1) {
15617
+ var isValid = false;
15618
+ if (isNullOrUndefined(value) || (!isNullOrUndefined(value) && !isNullOrUndefined(ganttData[field]) && (value instanceof Date ? value.getTime() !==
15619
+ ganttData[field].getTime() : ganttData[field] !== value))) {
15620
+ isValid = true;
15621
+ }
15622
+ if (task && ((this.editedRecords.indexOf(task) === -1 && isValid) || this.editedRecords.length === 0)) {
14966
15623
  this.editedRecords.push(task);
14967
15624
  if (this.enableImmutableMode) {
14968
15625
  this.modifiedRecords.push(task);
14969
15626
  }
14970
15627
  }
14971
15628
  }
14972
- value = isUndefined(value) ? null : value;
14973
15629
  setValue(field, value, record);
14974
15630
  };
14975
15631
  Gantt.prototype.makeCloneData = function (field, record, isTaskData) {
@@ -15212,8 +15868,8 @@ var Gantt = /** @__PURE__ @class */ (function (_super) {
15212
15868
  /**
15213
15869
  * To update existing taskId with new unique Id.
15214
15870
  *
15215
- * @param {number | string} currentId .
15216
- * @param {number | string} newId .
15871
+ * @param {number | string} currentId - Defines the current Id of the record.
15872
+ * @param {number | string} newId - Defines the new Id of the record.
15217
15873
  * @returns {void} .
15218
15874
  */
15219
15875
  Gantt.prototype.updateTaskId = function (currentId, newId) {
@@ -15315,9 +15971,9 @@ var Gantt = /** @__PURE__ @class */ (function (_super) {
15315
15971
  /**
15316
15972
  * Reorder the rows based on given indexes and position
15317
15973
  *
15318
- * @param {number[]} fromIndexes .
15319
- * @param {number} toIndex .
15320
- * @param {string} position .
15974
+ * @param {number[]} fromIndexes - Defines the Dragged record index.
15975
+ * @param {number} toIndex - Defines the Dropped record index.
15976
+ * @param {string} position -Defines the position of the dropped row.
15321
15977
  * @returns {void} .
15322
15978
  */
15323
15979
  Gantt.prototype.reorderRows = function (fromIndexes, toIndex, position) {
@@ -15492,7 +16148,7 @@ var Gantt = /** @__PURE__ @class */ (function (_super) {
15492
16148
  /**
15493
16149
  * Method to get class name for unscheduled tasks
15494
16150
  *
15495
- * @param {ITaskData} ganttProp .
16151
+ * @param {ITaskData} ganttProp -Defines the Gantt propertie.
15496
16152
  * @returns {boolean} .
15497
16153
  * @private
15498
16154
  */
@@ -15566,7 +16222,7 @@ var Gantt = /** @__PURE__ @class */ (function (_super) {
15566
16222
  var clientTop = document.documentElement.clientTop || document.body.clientTop || 0;
15567
16223
  var clientLeft = document.documentElement.clientLeft || document.body.clientLeft || 0;
15568
16224
  var top = box.top + scrollTop - clientTop;
15569
- var left = box.left + scrollLeft - clientLeft;
16225
+ var left = this.enableRtl ? box.right + scrollLeft - clientLeft : box.left + scrollLeft - clientLeft;
15570
16226
  return { top: Math.round(top), left: Math.round(left), width: box.width, height: box.height };
15571
16227
  };
15572
16228
  /**
@@ -15839,7 +16495,7 @@ var Gantt = /** @__PURE__ @class */ (function (_super) {
15839
16495
  /**
15840
16496
  * To change the mode of a record.
15841
16497
  *
15842
- * @param {object} data .
16498
+ * @param {object} data - Use to change the TaskMode either manual, auto or custom.
15843
16499
  * @returns {void} .
15844
16500
  */
15845
16501
  Gantt.prototype.changeTaskMode = function (data) {
@@ -15910,6 +16566,12 @@ var Gantt = /** @__PURE__ @class */ (function (_super) {
15910
16566
  __decorate([
15911
16567
  Property(true)
15912
16568
  ], Gantt.prototype, "disableHtmlEncode", void 0);
16569
+ __decorate([
16570
+ Complex({}, LoadingIndicator)
16571
+ ], Gantt.prototype, "loadingIndicator", void 0);
16572
+ __decorate([
16573
+ Property(true)
16574
+ ], Gantt.prototype, "enableVirtualMaskRow", void 0);
15913
16575
  __decorate([
15914
16576
  Property(true)
15915
16577
  ], Gantt.prototype, "autoFocusTasks", void 0);
@@ -16943,6 +17605,7 @@ var EditTooltip = /** @__PURE__ @class */ (function () {
16943
17605
  this.toolTipObj = new Tooltip({
16944
17606
  opensOn: opensOn,
16945
17607
  position: 'TopRight',
17608
+ enableRtl: this.parent.enableRtl,
16946
17609
  mouseTrail: mouseTrail,
16947
17610
  cssClass: ganttTooltip,
16948
17611
  target: target ? target : null,
@@ -16992,12 +17655,15 @@ var EditTooltip = /** @__PURE__ @class */ (function () {
16992
17655
  this.parent.tooltipModule.toolTipObj.close();
16993
17656
  this.updateTooltip(segmentIndex);
16994
17657
  if (this.taskbarEdit.connectorSecondAction === 'ConnectorPointLeftDrag') {
17658
+ // eslint-disable-next-line security/detect-non-literal-fs-filename
16995
17659
  this.toolTipObj.open(this.taskbarEdit.connectorSecondElement.querySelector('.' + connectorPointLeft));
16996
17660
  }
16997
17661
  else if (this.taskbarEdit.connectorSecondAction === 'ConnectorPointRightDrag') {
17662
+ // eslint-disable-next-line security/detect-non-literal-fs-filename
16998
17663
  this.toolTipObj.open(this.taskbarEdit.connectorSecondElement.querySelector('.' + connectorPointRight));
16999
17664
  }
17000
17665
  else {
17666
+ // eslint-disable-next-line security/detect-non-literal-fs-filename
17001
17667
  this.toolTipObj.open(this.taskbarEdit.taskBarEditElement);
17002
17668
  }
17003
17669
  }
@@ -17030,14 +17696,29 @@ var EditTooltip = /** @__PURE__ @class */ (function () {
17030
17696
  this.toolTipObj.content = this.getTooltipText(segmentIndex);
17031
17697
  this.toolTipObj.refresh(this.taskbarEdit.taskBarEditElement);
17032
17698
  if (this.taskbarEdit.taskBarEditAction === 'LeftResizing') {
17033
- this.toolTipObj.offsetX = -taskWidth;
17699
+ if (this.parent.enableRtl) {
17700
+ this.toolTipObj.offsetX = 0;
17701
+ }
17702
+ else {
17703
+ this.toolTipObj.offsetX = -taskWidth;
17704
+ }
17034
17705
  }
17035
17706
  else if (this.taskbarEdit.taskBarEditAction === 'RightResizing' ||
17036
17707
  this.taskbarEdit.taskBarEditAction === 'ParentResizing') {
17037
- this.toolTipObj.offsetX = 0;
17708
+ if (this.parent.enableRtl) {
17709
+ this.toolTipObj.offsetX = -taskWidth;
17710
+ }
17711
+ else {
17712
+ this.toolTipObj.offsetX = 0;
17713
+ }
17038
17714
  }
17039
17715
  else if (this.taskbarEdit.taskBarEditAction === 'ProgressResizing') {
17040
- this.toolTipObj.offsetX = -(taskWidth - progressWidth);
17716
+ if (this.parent.enableRtl) {
17717
+ this.toolTipObj.offsetX = -(progressWidth);
17718
+ }
17719
+ else {
17720
+ this.toolTipObj.offsetX = -(taskWidth - progressWidth);
17721
+ }
17041
17722
  }
17042
17723
  else if (this.taskbarEdit.taskBarEditAction === 'MilestoneDrag') {
17043
17724
  this.toolTipObj.offsetX = -(this.parent.chartRowsModule.milestoneHeight / 2);
@@ -17134,7 +17815,7 @@ var EditTooltip = /** @__PURE__ @class */ (function () {
17134
17815
  return EditTooltip;
17135
17816
  }());
17136
17817
 
17137
- var __extends$19 = (undefined && undefined.__extends) || (function () {
17818
+ var __extends$20 = (undefined && undefined.__extends) || (function () {
17138
17819
  var extendStatics = function (d, b) {
17139
17820
  extendStatics = Object.setPrototypeOf ||
17140
17821
  ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
@@ -17162,7 +17843,7 @@ var __assign$1 = (undefined && undefined.__assign) || function () {
17162
17843
  * File for handling taskbar editing operation in Gantt.
17163
17844
  */
17164
17845
  var TaskbarEdit = /** @__PURE__ @class */ (function (_super) {
17165
- __extends$19(TaskbarEdit, _super);
17846
+ __extends$20(TaskbarEdit, _super);
17166
17847
  function TaskbarEdit(ganttObj) {
17167
17848
  var _this = _super.call(this, ganttObj) || this;
17168
17849
  _this.isMouseDragged = false;
@@ -17570,8 +18251,14 @@ var TaskbarEdit = /** @__PURE__ @class */ (function (_super) {
17570
18251
  var e = this.getCoordinate(event);
17571
18252
  if (e.pageX || e.pageY) {
17572
18253
  var containerPosition = this.parent.getOffsetRect(this.parent.ganttChartModule.chartBodyContainer);
17573
- this.mouseDownX = (e.pageX - containerPosition.left) +
17574
- this.parent.ganttChartModule.scrollObject.previousScroll.left;
18254
+ if (this.parent.enableRtl) {
18255
+ this.mouseDownX = Math.abs(e.pageX - (containerPosition.left +
18256
+ Math.abs(this.parent.ganttChartModule.scrollObject.previousScroll.left)));
18257
+ }
18258
+ else {
18259
+ this.mouseDownX = (e.pageX - containerPosition.left) +
18260
+ this.parent.ganttChartModule.scrollObject.previousScroll.left;
18261
+ }
17575
18262
  this.tooltipPositionX = this.mouseDownX;
17576
18263
  this.mouseDownY = e.pageY - containerPosition.top +
17577
18264
  this.parent.ganttChartModule.scrollObject.previousScroll.top;
@@ -17616,23 +18303,40 @@ var TaskbarEdit = /** @__PURE__ @class */ (function (_super) {
17616
18303
  }
17617
18304
  var containerPosition = this.parent.getOffsetRect(this.parent.ganttChartModule.chartBodyContainer);
17618
18305
  var e = this.getCoordinate(event);
17619
- this.mouseMoveX = e.pageX - containerPosition.left +
17620
- this.parent.ganttChartModule.scrollObject.previousScroll.left;
18306
+ if (this.parent.enableRtl) {
18307
+ this.mouseMoveX = Math.abs(e.pageX - (containerPosition.left +
18308
+ Math.abs(this.parent.ganttChartModule.scrollObject.previousScroll.left)));
18309
+ }
18310
+ else {
18311
+ this.mouseMoveX = e.pageX - containerPosition.left +
18312
+ this.parent.ganttChartModule.scrollObject.previousScroll.left;
18313
+ }
17621
18314
  this.mouseMoveY = e.pageY - containerPosition.top +
17622
18315
  this.parent.ganttChartModule.scrollObject.previousScroll.top;
17623
18316
  this.dragMouseLeave = false;
17624
18317
  this.isMouseDragCheck();
17625
18318
  if (this.isMouseDragged && this.taskBarEditAction) {
17626
- var args = {
18319
+ var args_1 = {
17627
18320
  cancel: false,
17628
18321
  requestType: 'taskbarediting',
17629
18322
  taskBarEditAction: this.taskBarEditAction,
17630
18323
  data: this.taskBarEditRecord
17631
18324
  };
17632
18325
  if (this.segmentIndex !== -1) {
17633
- args.requestType = 'mergeSegment';
18326
+ args_1.requestType = 'mergeSegment';
17634
18327
  }
17635
- this.parent.trigger('actionBegin', args, function (arg) {
18328
+ this.parent.trigger('actionBegin', args_1, function (arg) {
18329
+ if (args_1.taskBarEditAction === "ConnectorPointRightDrag" || args_1.taskBarEditAction === "ConnectorPointLeftDrag"
18330
+ || args_1.taskBarEditAction === "LeftResizing" || args_1.taskBarEditAction === "RightResizing"
18331
+ || args_1.taskBarEditAction === "ProgressResizing" || args_1.taskBarEditAction === "ChildDrag" || args_1.taskBarEditAction === "ParentDrag" || args_1.taskBarEditAction === "MilestoneDrag" || args_1.taskBarEditAction === "ManualParentDrag") {
18332
+ _this.parent.showIndicator = false;
18333
+ }
18334
+ if (!isNullOrUndefined(_this.parent.loadingIndicator) && _this.parent.loadingIndicator.indicatorType === "Shimmer" && _this.parent.showIndicator) {
18335
+ _this.parent.showMaskRow();
18336
+ }
18337
+ else if (_this.parent.showIndicator) {
18338
+ _this.parent.showSpinner();
18339
+ }
17636
18340
  if (arg.cancel === false) {
17637
18341
  _this.taskBarEditingAction(event, false);
17638
18342
  }
@@ -17715,8 +18419,14 @@ var TaskbarEdit = /** @__PURE__ @class */ (function (_super) {
17715
18419
  var containerPosition = this.parent.getOffsetRect(this.parent.ganttChartModule.chartBodyContainer);
17716
18420
  var e = this.getCoordinate(event);
17717
18421
  if (e.pageX || e.pageY) {
17718
- this.mouseMoveX = e.pageX - containerPosition.left +
17719
- this.parent.ganttChartModule.scrollObject.previousScroll.left;
18422
+ if (this.parent.enableRtl) {
18423
+ this.mouseMoveX = Math.abs(e.pageX - (containerPosition.left +
18424
+ Math.abs(this.parent.ganttChartModule.scrollObject.previousScroll.left)));
18425
+ }
18426
+ else {
18427
+ this.mouseMoveX = e.pageX - containerPosition.left +
18428
+ this.parent.ganttChartModule.scrollObject.previousScroll.left;
18429
+ }
17720
18430
  this.tooltipPositionX = this.mouseMoveX;
17721
18431
  this.mouseMoveY = e.pageY - containerPosition.top +
17722
18432
  this.parent.ganttChartModule.scrollObject.previousScroll.top;
@@ -17727,8 +18437,15 @@ var TaskbarEdit = /** @__PURE__ @class */ (function (_super) {
17727
18437
  if ((this.taskBarEditRecord.ganttProperties.width > 3 && !(this.taskBarEditAction === 'ProgressResizing' &&
17728
18438
  (this.taskBarEditRecord.ganttProperties.progress === 0 || this.taskBarEditRecord.ganttProperties.progress === 100))) ||
17729
18439
  isConnectorLineEdit) {
17730
- var mouseX = this.mouseMoveX - this.parent.ganttChartModule.scrollObject.previousScroll.left +
17731
- containerPosition.left;
18440
+ var mouseX = 0;
18441
+ if (this.parent.enableRtl) {
18442
+ mouseX = Math.abs(Math.abs(this.mouseMoveX) - Math.abs(this.parent.ganttChartModule.scrollObject.previousScroll.left) +
18443
+ containerPosition.left);
18444
+ }
18445
+ else {
18446
+ mouseX = this.mouseMoveX - this.parent.ganttChartModule.scrollObject.previousScroll.left +
18447
+ containerPosition.left;
18448
+ }
17732
18449
  var mouseY = this.mouseMoveY - this.parent.ganttChartModule.scrollObject.previousScroll.top +
17733
18450
  containerPosition.top;
17734
18451
  if ((mouseX + 20) >
@@ -17736,6 +18453,12 @@ var TaskbarEdit = /** @__PURE__ @class */ (function (_super) {
17736
18453
  this.timerCount = this.parent.ganttChartModule.scrollObject.previousScroll.left;
17737
18454
  this.startScrollTimer('right');
17738
18455
  }
18456
+ else if ((mouseX + 40) >
18457
+ containerPosition.left + this.parent.ganttChartModule.chartBodyContainer.offsetWidth && this.parent.enableRtl && this.parent.ganttChartModule.scrollObject.previousScroll.left == 0) {
18458
+ this.parent.ganttChartModule.scrollObject.previousScroll.left = -1;
18459
+ this.timerCount = this.parent.ganttChartModule.scrollObject.previousScroll.left;
18460
+ this.startScrollTimer('right');
18461
+ }
17739
18462
  else if ((mouseX - 20) < containerPosition.left) {
17740
18463
  this.timerCount = this.parent.ganttChartModule.scrollObject.previousScroll.left;
17741
18464
  this.startScrollTimer('left');
@@ -17767,7 +18490,12 @@ var TaskbarEdit = /** @__PURE__ @class */ (function (_super) {
17767
18490
  TaskbarEdit.prototype.startScrollTimer = function (direction) {
17768
18491
  var _this = this;
17769
18492
  this.stopScrollTimer();
18493
+ var leftSign = 0;
17770
18494
  this.scrollTimer = window.setInterval(function () {
18495
+ if (Math.sign(_this.timerCount) == -1) {
18496
+ leftSign = -1;
18497
+ _this.timerCount = Math.abs(_this.timerCount);
18498
+ }
17771
18499
  if (direction === 'right') {
17772
18500
  _this.timerCount = (_this.timerCount + 1) >= _this.parent.timelineModule.totalTimelineWidth ?
17773
18501
  _this.parent.timelineModule.totalTimelineWidth : (_this.timerCount + 1);
@@ -17782,7 +18510,7 @@ var TaskbarEdit = /** @__PURE__ @class */ (function (_super) {
17782
18510
  _this.parent.ganttChartModule.scrollObject.setScrollTop(_this.timerCount);
17783
18511
  }
17784
18512
  else {
17785
- _this.parent.ganttChartModule.scrollObject.setScrollLeft(_this.timerCount);
18513
+ _this.parent.ganttChartModule.scrollObject.setScrollLeft(_this.timerCount, leftSign);
17786
18514
  }
17787
18515
  if (_this.taskBarEditAction === 'ConnectorPointLeftDrag'
17788
18516
  || _this.taskBarEditAction === 'ConnectorPointRightDrag') {
@@ -18478,6 +19206,7 @@ var TaskbarEdit = /** @__PURE__ @class */ (function (_super) {
18478
19206
  */
18479
19207
  TaskbarEdit.prototype.setItemPosition = function () {
18480
19208
  var item = this.taskBarEditRecord.ganttProperties;
19209
+ var position = this.parent.enableRtl ? "right" : "left";
18481
19210
  var segment = !isNullOrUndefined(item.segments) ? item.segments[this.segmentIndex] : null;
18482
19211
  var width = this.taskBarEditAction === 'MilestoneDrag' || item.isMilestone ?
18483
19212
  this.parent.chartRowsModule.milestoneHeight : item.width;
@@ -18509,11 +19238,16 @@ var TaskbarEdit = /** @__PURE__ @class */ (function (_super) {
18509
19238
  if (segmentedTaskBarContainer && !isNullOrUndefined(item.segments)
18510
19239
  && (this.taskBarEditAction === 'RightResizing' || this.segmentIndex !== 0)) {
18511
19240
  this.taskBarEditElement.style.width = (segment.width) + 'px';
18512
- this.taskBarEditElement.style.left = (segment.left) + 'px';
19241
+ if (this.parent.enableRtl) {
19242
+ this.taskBarEditElement.style.right = (segment.left) + 'px';
19243
+ }
19244
+ else {
19245
+ this.taskBarEditElement.style.left = (segment.left) + 'px';
19246
+ }
18513
19247
  }
18514
19248
  taskBarMainContainer$$1.style.width = (width) + 'px';
18515
- taskBarMainContainer$$1.style.left = (item.left) + 'px';
18516
19249
  leftLabelContainer$$1.style.width = (item.left) + 'px';
19250
+ taskBarMainContainer$$1.style.setProperty(position, (item.left) + 'px');
18517
19251
  if (this.taskBarEditAction === 'LeftResizing' && this.segmentIndex === 0) {
18518
19252
  var parent_1 = this.taskBarEditElement.parentElement;
18519
19253
  var segmentedTasks = parent_1.getElementsByClassName('e-segmented-taskbar');
@@ -18521,31 +19255,42 @@ var TaskbarEdit = /** @__PURE__ @class */ (function (_super) {
18521
19255
  var segment_4 = item.segments[i];
18522
19256
  var segmentElement = segmentedTasks[i];
18523
19257
  segmentElement.style.width = (segment_4.width) + 'px';
18524
- segmentElement.style.left = (segment_4.left) + 'px';
19258
+ if (this.parent.enableRtl) {
19259
+ segmentElement.style.right = (segment_4.left) + 'px';
19260
+ }
19261
+ else {
19262
+ segmentElement.style.left = (segment_4.left) + 'px';
19263
+ }
18525
19264
  }
18526
19265
  }
18527
19266
  if (!isNullOrUndefined(rightLabelContainer$$1)) {
18528
- rightLabelContainer$$1.style.left = (item.left + width) + 'px';
19267
+ rightLabelContainer$$1.style.setProperty(position, (item.left + width) + 'px');
18529
19268
  }
18530
19269
  }
18531
19270
  if (traceConnectorPointRight) {
18532
- traceConnectorPointRight.style.left = (this.parent.isAdaptive ? (width + 10) : (width + 2)) + 'px';
19271
+ if (this.parent.enableRtl) {
19272
+ traceConnectorPointRight.style.left = (this.parent.isAdaptive ? (width + 10) : (width - 2)) + 'px';
19273
+ }
19274
+ else {
19275
+ traceConnectorPointRight.style.left = (this.parent.isAdaptive ? (width + 10) : (width + 2)) + 'px';
19276
+ }
18533
19277
  }
18534
19278
  if (this.taskBarEditAction === 'MilestoneDrag' || item.isMilestone) {
18535
- taskBarMainContainer$$1.style.left = (item.left - (width / 2)) + 'px';
19279
+ taskBarMainContainer$$1.style.setProperty(position, (item.left - (width / 2)) + 'px');
18536
19280
  leftLabelContainer$$1.style.width = (item.left - (width / 2)) + 'px';
18537
19281
  if (!isNullOrUndefined(rightLabelContainer$$1)) {
18538
- rightLabelContainer$$1.style.left = (item.left + (width / 2)) + 'px';
19282
+ rightLabelContainer$$1.style.setProperty(position, (item.left + (width / 2)) + 'px');
18539
19283
  }
18540
19284
  }
18541
19285
  else if (this.taskBarEditAction === 'ProgressResizing') {
18542
19286
  if (this.segmentIndex === -1) {
18543
- traceChildTaskBar$$1.style.left = (item.left + item.progressWidth - 10) + 'px';
19287
+ traceChildTaskBar$$1.style.setProperty(position, (item.left + item.progressWidth - 10) + 'px');
18544
19288
  if (!isNullOrUndefined(traceChildProgressBar$$1)) {
18545
19289
  traceChildProgressBar$$1.style.width = item.progressWidth + 'px';
18546
19290
  traceChildProgressBar$$1.style.borderBottomRightRadius = this.progressBorderRadius + 'px';
18547
19291
  traceChildProgressBar$$1.style.borderTopRightRadius = this.progressBorderRadius + 'px';
18548
- childProgressResizer$$1.style.left = item.progressWidth - 8 + 'px';
19292
+ var width_1 = this.parent.enableRtl ? item.progressWidth + 8 : item.progressWidth - 8;
19293
+ childProgressResizer$$1.style.setProperty(position, width_1 + 'px');
18549
19294
  }
18550
19295
  }
18551
19296
  else {
@@ -18553,16 +19298,17 @@ var TaskbarEdit = /** @__PURE__ @class */ (function (_super) {
18553
19298
  traceChildProgressBar$$1.style.width = item.segments[this.segmentIndex].progressWidth + 'px';
18554
19299
  traceChildProgressBar$$1.style.borderBottomRightRadius = this.progressBorderRadius + 'px';
18555
19300
  traceChildProgressBar$$1.style.borderTopRightRadius = this.progressBorderRadius + 'px';
18556
- childProgressResizer$$1.style.left = item.segments[this.segmentIndex].progressWidth - 8 + 'px';
19301
+ var width_2 = this.parent.enableRtl ? item.segments[this.segmentIndex].progressWidth + 8 : item.segments[this.segmentIndex].progressWidth - 8;
19302
+ childProgressResizer$$1.style.setProperty(position, width_2 + 'px');
18557
19303
  }
18558
19304
  }
18559
19305
  else if (this.taskBarEditAction === 'RightResizing' && !isNullOrUndefined(traceChildTaskBar$$1)) {
18560
19306
  traceChildTaskBar$$1.style.width = (width) + 'px';
18561
19307
  if (!isNullOrUndefined(traceChildProgressBar$$1)) {
18562
19308
  traceChildProgressBar$$1.style.width = (item.progressWidth) + 'px';
18563
- taskBarRightResizer$$1.style.left = rightResizer + 'px';
19309
+ taskBarRightResizer$$1.style.setProperty(position, rightResizer + 'px');
18564
19310
  if (!isNullOrUndefined(childProgressResizer$$1)) {
18565
- childProgressResizer$$1.style.left = (item.progressWidth - 10) + 'px';
19311
+ childProgressResizer$$1.style.setProperty(position, item.progressWidth - 10 + 'px');
18566
19312
  }
18567
19313
  }
18568
19314
  }
@@ -18576,27 +19322,27 @@ var TaskbarEdit = /** @__PURE__ @class */ (function (_super) {
18576
19322
  }
18577
19323
  else if (this.taskBarEditAction === 'ParentResizing') {
18578
19324
  manualParentTaskbar.style.width = manualTaskbar.style.width = (item.width) + 'px';
18579
- manualParentRight.style.left = (item.width - manualParentLeft.offsetLeft) + 'px';
19325
+ manualParentRight.style.setProperty(position, item.width - manualParentLeft.offsetLeft + 'px');
18580
19326
  }
18581
19327
  else if (this.taskBarEditAction === 'ManualParentDrag') {
18582
- manualParentTaskbar.style.left = (item.left - item.autoLeft) + 'px';
19328
+ manualParentTaskbar.style.setProperty(position, item.left - item.autoLeft + 'px');
18583
19329
  }
18584
19330
  else {
18585
19331
  if (!isNullOrUndefined(traceChildTaskBar$$1) && !segmentedTaskBarContainer) {
18586
19332
  traceChildTaskBar$$1.style.width = (width) + 'px';
18587
19333
  }
18588
19334
  if (!isNullOrUndefined(traceChildProgressBar$$1)) {
18589
- taskBarRightResizer$$1.style.left = rightResizer + 'px';
19335
+ taskBarRightResizer$$1.style.setProperty(position, rightResizer + 'px');
18590
19336
  traceChildProgressBar$$1.style.width = (item.progressWidth) + 'px';
18591
19337
  if (!isNullOrUndefined(childProgressResizer$$1)) {
18592
- childProgressResizer$$1.style.left = item.progressWidth - 10 + 'px';
19338
+ childProgressResizer$$1.style.setProperty(position, item.progressWidth - 10 + 'px');
18593
19339
  }
18594
19340
  }
18595
19341
  if (segmentedTaskBarContainer) {
18596
- taskBarRightResizer$$1.style.left = rightResizer + 'px';
19342
+ taskBarRightResizer$$1.style.setProperty(position, rightResizer + 'px');
18597
19343
  traceChildProgressBar$$1.style.width = (segment.progressWidth) + 'px';
18598
19344
  if (!isNullOrUndefined(childProgressResizer$$1)) {
18599
- childProgressResizer$$1.style.left = segment.progressWidth - 10 + 'px';
19345
+ childProgressResizer$$1.style.setProperty(position, segment.progressWidth - 10 + 'px');
18600
19346
  }
18601
19347
  }
18602
19348
  }
@@ -18818,25 +19564,51 @@ var TaskbarEdit = /** @__PURE__ @class */ (function (_super) {
18818
19564
  var y2 = this.mouseMoveY;
18819
19565
  var length = Math.sqrt((x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2));
18820
19566
  var angle = Math.atan2(y2 - y1, x2 - x1) * 180 / Math.PI;
18821
- var transform = 'rotate(' + angle + 'deg)';
19567
+ var transform = 'rotate(' + (this.parent.enableRtl ? -angle : angle) + 'deg)';
18822
19568
  var left;
19569
+ var width = 0;
19570
+ if (!isNullOrUndefined(document.querySelectorAll(".e-chart-row")[0])) {
19571
+ width = document.querySelectorAll(".e-chart-row")[0].offsetWidth;
19572
+ }
18823
19573
  if (this.taskBarEditAction === 'ConnectorPointLeftDrag') {
18824
- left = (this.elementOffsetLeft - (this.parent.chartRowsModule.connectorPointWidth / 2)) -
18825
- this.parent.ganttChartModule.scrollObject.previousScroll.left;
19574
+ if (this.parent.enableRtl) {
19575
+ left = ((width - (this.elementOffsetLeft + (this.parent.chartRowsModule.connectorPointWidth / 2)))) -
19576
+ Math.abs(this.parent.ganttChartModule.scrollObject.previousScroll.left);
19577
+ }
19578
+ else {
19579
+ left = (this.elementOffsetLeft - (this.parent.chartRowsModule.connectorPointWidth / 2)) -
19580
+ this.parent.ganttChartModule.scrollObject.previousScroll.left;
19581
+ }
18826
19582
  }
18827
19583
  if (this.taskBarEditAction === 'ConnectorPointRightDrag') {
18828
- left = (this.elementOffsetLeft + this.elementOffsetWidth) +
18829
- (this.parent.chartRowsModule.connectorPointWidth / 2) - this.parent.ganttChartModule.scrollObject.previousScroll.left;
19584
+ if (this.parent.enableRtl) {
19585
+ left = (width - (this.elementOffsetLeft + this.elementOffsetWidth +
19586
+ (this.parent.chartRowsModule.connectorPointWidth / 2))) - Math.abs(this.parent.ganttChartModule.scrollObject.previousScroll.left);
19587
+ }
19588
+ else {
19589
+ left = (this.elementOffsetLeft + this.elementOffsetWidth) +
19590
+ (this.parent.chartRowsModule.connectorPointWidth / 2) - Math.abs(this.parent.ganttChartModule.scrollObject.previousScroll.left);
19591
+ }
18830
19592
  }
18831
19593
  var top = ((this.elementOffsetTop) + (this.elementOffsetHeight / 2) +
18832
19594
  this.parent.ganttChartModule.chartBodyContainer.offsetTop) - this.parent.ganttChartModule.scrollObject.previousScroll.top;
18833
19595
  this.removeFalseLine(false);
18834
19596
  this.falseLine = createElement('div', {
18835
19597
  className: falseLine, id: 'ganttfalseline' + this.parent.element.id,
18836
- styles: 'transform-origin: 0% 100%;right: auto;position: absolute;transform:' + transform + ';' +
19598
+ styles: 'position: absolute;transform:' + transform + ';' +
18837
19599
  'border-top-width: 1px;border-top-style: dashed;z-index: 5;width:' + (length - 3) + 'px;' +
18838
- 'left:' + left + 'px;top:' + top + 'px;'
19600
+ 'top:' + top + 'px;'
18839
19601
  });
19602
+ if (this.parent.enableRtl) {
19603
+ this.falseLine.style.left = 'auto';
19604
+ this.falseLine.style.right = left + 'px';
19605
+ this.falseLine.style.transformOrigin = '100% 0%';
19606
+ }
19607
+ else {
19608
+ this.falseLine.style.right = 'auto';
19609
+ this.falseLine.style.left = left + 'px';
19610
+ this.falseLine.style.transformOrigin = '0% 100%';
19611
+ }
18840
19612
  this.parent.ganttChartModule.chartBodyContainer.appendChild(this.falseLine);
18841
19613
  };
18842
19614
  /**
@@ -18921,19 +19693,19 @@ var TaskbarEdit = /** @__PURE__ @class */ (function (_super) {
18921
19693
  var element = target;
18922
19694
  var uniqueId = this.parent.viewType === 'ResourceView' ? fromItem.taskId : fromItem.rowUniqueID;
18923
19695
  if (this.taskBarEditAction === 'ConnectorPointLeftDrag') {
18924
- predecessor = uniqueId + 'S';
19696
+ predecessor = uniqueId + (this.parent.enableRtl ? 'F' : 'S');
18925
19697
  }
18926
19698
  else if (this.taskBarEditAction === 'ConnectorPointRightDrag') {
18927
- predecessor = uniqueId + 'F';
19699
+ predecessor = uniqueId + (this.parent.enableRtl ? 'S' : 'F');
18928
19700
  }
18929
19701
  if (this.connectorSecondAction) {
18930
19702
  if (this.connectorSecondAction === 'ConnectorPointLeftDrag') {
18931
- predecessor += 'S';
18932
- currentTarget = 'start';
19703
+ predecessor += this.parent.enableRtl ? 'F' : 'S';
19704
+ currentTarget = this.parent.enableRtl ? 'finish' : 'start';
18933
19705
  }
18934
19706
  else if (this.connectorSecondAction === 'ConnectorPointRightDrag') {
18935
- predecessor += 'F';
18936
- currentTarget = 'finish';
19707
+ predecessor += this.parent.enableRtl ? 'S' : 'F';
19708
+ currentTarget = this.parent.enableRtl ? 'start' : 'finish';
18937
19709
  }
18938
19710
  }
18939
19711
  if (isNullOrUndefined(toItem)) {
@@ -18957,6 +19729,12 @@ var TaskbarEdit = /** @__PURE__ @class */ (function (_super) {
18957
19729
  args.isValidLink = isValidLink;
18958
19730
  args.requestType = 'ValidateDependency';
18959
19731
  this.parent.trigger('actionBegin', args);
19732
+ if (!isNullOrUndefined(this.parent.loadingIndicator) && this.parent.loadingIndicator.indicatorType === "Shimmer" && args.requestType != "ValidateDependency") {
19733
+ this.parent.showMaskRow();
19734
+ }
19735
+ else if (args.requestType != "ValidateDependency") {
19736
+ this.parent.showSpinner();
19737
+ }
18960
19738
  args.isValidLink = !isValidLink && args.isValidLink ? false : args.isValidLink;
18961
19739
  if (args.isValidLink) {
18962
19740
  if (!this.editTooltip.toolTipObj && !this.parent.isAdaptive) {
@@ -19352,18 +20130,18 @@ var DialogEdit = /** @__PURE__ @class */ (function () {
19352
20130
  if (!isNullOrUndefined(taskId)) {
19353
20131
  if (!isNullOrUndefined(taskId['ganttProperties'])) {
19354
20132
  if (typeof taskId['ganttProperties']['taskId'] === 'string') {
19355
- this.numericOrString = "stringedit";
20133
+ this.numericOrString = 'stringedit';
19356
20134
  }
19357
20135
  else {
19358
- this.numericOrString = "numericedit";
20136
+ this.numericOrString = 'numericedit';
19359
20137
  }
19360
20138
  }
19361
20139
  if (isNullOrUndefined(taskId['ganttProperties']) && !isNullOrUndefined(taskId)) {
19362
20140
  if (isNaN(Number(taskId)) || this.parent.columnByField[this.parent.taskFields.id].editType === "stringedit") {
19363
- this.numericOrString = "stringedit";
20141
+ this.numericOrString = 'stringedit';
19364
20142
  }
19365
20143
  else {
19366
- this.numericOrString = "numericedit";
20144
+ this.numericOrString = 'numericedit';
19367
20145
  }
19368
20146
  }
19369
20147
  }
@@ -19406,6 +20184,7 @@ var DialogEdit = /** @__PURE__ @class */ (function () {
19406
20184
  dialogModel.animationSettings = { effect: 'None' };
19407
20185
  dialogModel.header = this.localeObj.getConstant(this.isEdit ? 'editDialogTitle' : 'addDialogTitle');
19408
20186
  dialogModel.isModal = true;
20187
+ dialogModel.enableRtl = this.parent.enableRtl;
19409
20188
  dialogModel.allowDragging = this.parent.isAdaptive ? false : true;
19410
20189
  dialogModel.showCloseIcon = true;
19411
20190
  var position = this.parent.isAdaptive ? { X: 'top', Y: 'left' } : { X: 'center', Y: 'center' };
@@ -19416,8 +20195,8 @@ var DialogEdit = /** @__PURE__ @class */ (function () {
19416
20195
  dialogModel.close = this.dialogClose.bind(this);
19417
20196
  dialogModel.closeOnEscape = true;
19418
20197
  dialogModel.beforeClose = function (args) {
19419
- if (args.closedBy == "escape") {
19420
- if (args.event.name == "key-pressed" && args.event.target.nodeName == 'INPUT') {
20198
+ if (args.closedBy === "escape") {
20199
+ if (args.event.name === "key-pressed" && args.event.target.nodeName === 'INPUT') {
19421
20200
  args.cancel = true;
19422
20201
  }
19423
20202
  }
@@ -19588,6 +20367,7 @@ var DialogEdit = /** @__PURE__ @class */ (function () {
19588
20367
  var length = dialogSettings.length;
19589
20368
  tabModel.items = tabItems;
19590
20369
  tabModel.locale = this.parent.locale;
20370
+ tabModel.enableRtl = this.parent.enableRtl;
19591
20371
  this.beforeOpenArgs.tabModel = tabModel;
19592
20372
  var index = 0;
19593
20373
  if (length > 0) {
@@ -19667,6 +20447,12 @@ var DialogEdit = /** @__PURE__ @class */ (function () {
19667
20447
  cancel: this.beforeOpenArgs.cancel
19668
20448
  };
19669
20449
  this.parent.trigger('actionBegin', this.beforeOpenArgs, function (arg) {
20450
+ if (!isNullOrUndefined(_this.parent.loadingIndicator) && _this.parent.loadingIndicator.indicatorType === "Shimmer") {
20451
+ _this.parent.showMaskRow();
20452
+ }
20453
+ else {
20454
+ _this.parent.showSpinner();
20455
+ }
19670
20456
  _this.renderTabItems();
19671
20457
  if (!arg.cancel) {
19672
20458
  tabModel.selected = _this.tabSelectedEvent.bind(_this);
@@ -19689,6 +20475,12 @@ var DialogEdit = /** @__PURE__ @class */ (function () {
19689
20475
  cancel: false
19690
20476
  };
19691
20477
  _this.parent.trigger('actionComplete', actionCompleteArgs, function (actionCompleteArg) {
20478
+ if (!isNullOrUndefined(_this.parent.loadingIndicator) && _this.parent.loadingIndicator.indicatorType === "Shimmer") {
20479
+ _this.parent.hideMaskRow();
20480
+ }
20481
+ else {
20482
+ _this.parent.hideSpinner();
20483
+ }
19692
20484
  if (actionCompleteArg.cancel) {
19693
20485
  _this.resetValues();
19694
20486
  }
@@ -19772,7 +20564,8 @@ var DialogEdit = /** @__PURE__ @class */ (function () {
19772
20564
  {
19773
20565
  var checkboxModel = {
19774
20566
  label: column.headerText,
19775
- locale: locale
20567
+ locale: locale,
20568
+ enableRtl: this.parent.enableRtl
19776
20569
  };
19777
20570
  fieldsModel[column.field] = checkboxModel;
19778
20571
  break;
@@ -19781,6 +20574,7 @@ var DialogEdit = /** @__PURE__ @class */ (function () {
19781
20574
  case 'stringedit':
19782
20575
  {
19783
20576
  var textBox = common;
20577
+ textBox.enableRtl = this.parent.enableRtl;
19784
20578
  if (column.field === ganttObj.columnMapping.duration || column.field === ganttObj.columnMapping.id || column.field === ganttObj.columnMapping.startDate ||
19785
20579
  column.field === ganttObj.columnMapping.endDate) {
19786
20580
  textBox.change = function (args) {
@@ -19793,6 +20587,7 @@ var DialogEdit = /** @__PURE__ @class */ (function () {
19793
20587
  case 'numericedit':
19794
20588
  {
19795
20589
  var numeric = common;
20590
+ numeric.enableRtl = this.parent.enableRtl;
19796
20591
  if (taskSettings.progress === column.field) {
19797
20592
  numeric.min = 0;
19798
20593
  numeric.max = 100;
@@ -19809,6 +20604,7 @@ var DialogEdit = /** @__PURE__ @class */ (function () {
19809
20604
  {
19810
20605
  var datePickerObj = common;
19811
20606
  datePickerObj.format = this.parent.getDateFormat();
20607
+ datePickerObj.enableRtl = this.parent.enableRtl;
19812
20608
  datePickerObj.strictMode = true;
19813
20609
  datePickerObj.firstDayOfWeek = ganttObj.timelineModule.customTimelineSettings.weekStartDay;
19814
20610
  if (column.field === ganttObj.columnMapping.startDate ||
@@ -19825,6 +20621,7 @@ var DialogEdit = /** @__PURE__ @class */ (function () {
19825
20621
  {
19826
20622
  var dateTimePickerObj = common;
19827
20623
  dateTimePickerObj.format = this.parent.getDateFormat();
20624
+ dateTimePickerObj.enableRtl = this.parent.enableRtl;
19828
20625
  dateTimePickerObj.strictMode = true;
19829
20626
  dateTimePickerObj.firstDayOfWeek = ganttObj.timelineModule.customTimelineSettings.weekStartDay;
19830
20627
  if (column.field === ganttObj.columnMapping.startDate ||
@@ -19847,6 +20644,7 @@ var DialogEdit = /** @__PURE__ @class */ (function () {
19847
20644
  common[dataKey] = types;
19848
20645
  common[fieldsKey] = { value: 'Value' };
19849
20646
  var dropDownListObj = common;
20647
+ dropDownListObj.enableRtl = this.parent.enableRtl;
19850
20648
  dropDownListObj.change = function (args) {
19851
20649
  if (column.field === taskSettings.manual) {
19852
20650
  _this.editedRecord.ganttProperties.isAutoSchedule = !args.value;
@@ -20218,8 +21016,8 @@ var DialogEdit = /** @__PURE__ @class */ (function () {
20218
21016
  break;
20219
21017
  case 'duration':
20220
21018
  gridColumn = {
20221
- field: fields[i], headerText: this_1.localeObj.getConstant(fields[i]), editType: 'stringedit', width: '100px',
20222
- edit: {
21019
+ field: fields[i], headerText: this_1.localeObj.getConstant(fields[i]), editType: 'stringedit',
21020
+ width: '100px', edit: {
20223
21021
  write: function (args) {
20224
21022
  var inputTextModel;
20225
21023
  if (!isNullOrUndefined(_this.beforeOpenArgs[generalTabString])) {
@@ -20284,7 +21082,7 @@ var DialogEdit = /** @__PURE__ @class */ (function () {
20284
21082
  inputValue = dialog.querySelector('#' + ganttId + 'SegmentsTabContainer' + columnName)
20285
21083
  .ej2_instances[0];
20286
21084
  }
20287
- if (inputValue.value.toString() !== tempValue.toString()) {
21085
+ if ((!isNullOrUndefined(inputValue.value)) && (inputValue.value.toString() !== tempValue.toString())) {
20288
21086
  inputValue.value = tempValue;
20289
21087
  inputValue.dataBind();
20290
21088
  }
@@ -20619,7 +21417,7 @@ var DialogEdit = /** @__PURE__ @class */ (function () {
20619
21417
  break;
20620
21418
  }
20621
21419
  }
20622
- if (typeof (stringOrNumber) === "string") {
21420
+ if (typeof (stringOrNumber) === 'string') {
20623
21421
  disabled = false;
20624
21422
  }
20625
21423
  else {
@@ -20634,7 +21432,7 @@ var DialogEdit = /** @__PURE__ @class */ (function () {
20634
21432
  }
20635
21433
  if (this.editedRecord.hasChildRecords) {
20636
21434
  if ((column.field === this.parent.taskFields.endDate && ((!isNullOrUndefined(this.editedRecord['isManual']) &&
20637
- this.editedRecord['isManual'] == false) || this.parent.taskMode == 'Auto')) || column.field === this.parent.taskFields.duration ||
21435
+ this.editedRecord['isManual'] === false) || this.parent.taskMode === 'Auto')) || column.field === this.parent.taskFields.duration ||
20638
21436
  column.field === this.parent.taskFields.progress || column.field === this.parent.taskFields.work ||
20639
21437
  column.field === this.parent.taskFields.type) {
20640
21438
  disabled = true;
@@ -20690,6 +21488,7 @@ var DialogEdit = /** @__PURE__ @class */ (function () {
20690
21488
  dataSource: new DataManager(_this.idCollection),
20691
21489
  popupHeight: '180px',
20692
21490
  allowCustom: false,
21491
+ enableRtl: _this.parent.enableRtl,
20693
21492
  fields: { value: 'text' },
20694
21493
  value: args.rowData[field],
20695
21494
  change: function (arg) {
@@ -20965,7 +21764,7 @@ var DialogEdit = /** @__PURE__ @class */ (function () {
20965
21764
  do {
20966
21765
  if (currentFlatData.parentItem) {
20967
21766
  currentFlatData = this.parent.flatData[this.parent.ids.indexOf(currentFlatData.parentItem.taskId)];
20968
- if (currentFlatData.uniqueID == this.beforeOpenArgs.rowData['uniqueID']) {
21767
+ if (currentFlatData.uniqueID === this.beforeOpenArgs.rowData['uniqueID']) {
20969
21768
  this.isValidData = false;
20970
21769
  break;
20971
21770
  }
@@ -21218,7 +22017,9 @@ var DialogEdit = /** @__PURE__ @class */ (function () {
21218
22017
  }
21219
22018
  }
21220
22019
  if (this.isEdit) {
21221
- this.updateScheduleProperties(this.editedRecord, this.rowData);
22020
+ if (!isCustom) {
22021
+ this.updateScheduleProperties(this.editedRecord, this.rowData);
22022
+ }
21222
22023
  ganttObj.editModule.validateUpdateValues(tasksData, this.rowData, true);
21223
22024
  }
21224
22025
  };
@@ -21899,6 +22700,7 @@ var ConnectorLineEdit = /** @__PURE__ @class */ (function () {
21899
22700
  var validationDialog = new Dialog({
21900
22701
  header: 'Validate Editing',
21901
22702
  isModal: true,
22703
+ enableRtl: this.parent.enableRtl,
21902
22704
  visible: false,
21903
22705
  width: '50%',
21904
22706
  showCloseIcon: true,
@@ -22270,6 +23072,7 @@ var ConnectorLineEdit = /** @__PURE__ @class */ (function () {
22270
23072
  this.confirmPredecessorDialog = new Dialog({
22271
23073
  width: '320px',
22272
23074
  isModal: true,
23075
+ enableRtl: this.parent.enableRtl,
22273
23076
  content: this.parent.localeObj.getConstant('confirmPredecessorDelete'),
22274
23077
  buttons: [
22275
23078
  {
@@ -22318,6 +23121,7 @@ var Edit$2 = /** @__PURE__ @class */ (function () {
22318
23121
  this.taskbarMoved = false;
22319
23122
  this.predecessorUpdated = false;
22320
23123
  this.isBreakLoop = false;
23124
+ this.isResourceTaskDeleted = false;
22321
23125
  /**
22322
23126
  * @private
22323
23127
  */
@@ -22392,6 +23196,7 @@ var Edit$2 = /** @__PURE__ @class */ (function () {
22392
23196
  var editParam = {
22393
23197
  min: 0,
22394
23198
  decimals: 0,
23199
+ enableRtl: this.parent.enableRtl,
22395
23200
  validateDecimalOnType: true,
22396
23201
  format: 'n0',
22397
23202
  showSpinButton: false
@@ -22407,6 +23212,7 @@ var Edit$2 = /** @__PURE__ @class */ (function () {
22407
23212
  Edit$$1.prototype.updateProgessColumnEditParams = function (column) {
22408
23213
  var editParam = {
22409
23214
  min: 0,
23215
+ enableRtl: this.parent.enableRtl,
22410
23216
  decimals: 0,
22411
23217
  validateDecimalOnType: true,
22412
23218
  max: 100,
@@ -22465,6 +23271,7 @@ var Edit$2 = /** @__PURE__ @class */ (function () {
22465
23271
  editor = new MultiSelect({
22466
23272
  dataSource: new DataManager(_this.parent.resources),
22467
23273
  fields: { text: resourceSettings.name, value: resourceSettings.id },
23274
+ enableRtl: _this.parent.enableRtl,
22468
23275
  mode: 'CheckBox',
22469
23276
  showDropDownIcon: true,
22470
23277
  popupHeight: '350px',
@@ -22526,6 +23333,7 @@ var Edit$2 = /** @__PURE__ @class */ (function () {
22526
23333
  _this.parent.treeGridModule.currentEditRow = {};
22527
23334
  editor = new DropDownList({
22528
23335
  dataSource: new DataManager(types),
23336
+ enableRtl: _this.parent.enableRtl,
22529
23337
  fields: { value: 'Value' },
22530
23338
  popupHeight: '350px',
22531
23339
  value: getValue('taskType', args.rowData.ganttProperties)
@@ -22689,8 +23497,8 @@ var Edit$2 = /** @__PURE__ @class */ (function () {
22689
23497
  var ganttPropByMapping = getSwapKey(ganttObj.columnMapping);
22690
23498
  var scheduleFieldNames = [];
22691
23499
  var isScheduleValueUpdated = false;
22692
- for (var _i = 0, _a = Object.keys(data); _i < _a.length; _i++) {
22693
- var key = _a[_i];
23500
+ for (var _i = 0, _b = Object.keys(data); _i < _b.length; _i++) {
23501
+ var key = _b[_i];
22694
23502
  if ([tasks.startDate, tasks.endDate, tasks.duration].indexOf(key) !== -1) {
22695
23503
  if (isNullOrUndefined(data[key]) && !ganttObj.allowUnscheduledTasks) {
22696
23504
  continue;
@@ -23411,7 +24219,6 @@ var Edit$2 = /** @__PURE__ @class */ (function () {
23411
24219
  */
23412
24220
  Edit$$1.prototype.initiateSaveAction = function (args) {
23413
24221
  var _this = this;
23414
- this.parent.showSpinner();
23415
24222
  var eventArgs = {};
23416
24223
  eventArgs.requestType = 'beforeSave';
23417
24224
  eventArgs.data = args.data;
@@ -23425,6 +24232,12 @@ var Edit$2 = /** @__PURE__ @class */ (function () {
23425
24232
  eventArgs.action = 'DrawConnectorLine';
23426
24233
  }
23427
24234
  this.parent.trigger('actionBegin', eventArgs, function (eventArg) {
24235
+ if (!isNullOrUndefined(_this.parent.loadingIndicator) && _this.parent.loadingIndicator.indicatorType === "Shimmer") {
24236
+ _this.parent.showMaskRow();
24237
+ }
24238
+ else {
24239
+ _this.parent.showSpinner();
24240
+ }
23428
24241
  if (eventArg.cancel) {
23429
24242
  _this.reUpdatePreviousRecords();
23430
24243
  _this.parent.chartRowsModule.refreshRecords([args.data]);
@@ -23458,6 +24271,52 @@ var Edit$2 = /** @__PURE__ @class */ (function () {
23458
24271
  });
23459
24272
  };
23460
24273
  Edit$$1.prototype.dmSuccess = function (e, args) {
24274
+ var eLength = e['length'];
24275
+ for (var i = 0; i < eLength; i++) {
24276
+ var rec = e[i];
24277
+ var _aLength = Object.keys(rec).length;
24278
+ for (var j = 0, _a = Object.keys(rec); j < _aLength; j++) {
24279
+ var key = _a[j];
24280
+ this.parent.editedRecords[i][key] = rec[key];
24281
+ this.parent.editedRecords[i].taskData[key] = rec[key];
24282
+ }
24283
+ if (this.parent.taskFields.id !== null) {
24284
+ this.parent.editedRecords[i].ganttProperties["taskId"] = rec[this.parent.taskFields.id];
24285
+ }
24286
+ if (this.parent.taskFields.name !== null) {
24287
+ this.parent.editedRecords[i].ganttProperties["taskName"] = rec[this.parent.taskFields.name];
24288
+ }
24289
+ if (this.parent.taskFields.startDate !== null) {
24290
+ this.parent.editedRecords[i].ganttProperties["startDate"] = rec[this.parent.taskFields.startDate];
24291
+ }
24292
+ if (this.parent.taskFields.endDate !== null) {
24293
+ this.parent.editedRecords[i].ganttProperties["endDate"] = rec[this.parent.taskFields.endDate];
24294
+ }
24295
+ if (this.parent.taskFields.duration !== null) {
24296
+ this.parent.editedRecords[i].ganttProperties["duration"] = parseInt(rec[this.parent.taskFields.duration]);
24297
+ }
24298
+ if (this.parent.taskFields.durationUnit !== null) {
24299
+ this.parent.editedRecords[i].ganttProperties["durationUnit"] = rec[this.parent.taskFields.durationUnit];
24300
+ }
24301
+ if (this.parent.taskFields.progress !== null) {
24302
+ this.parent.editedRecords[i].ganttProperties["progress"] = rec[this.parent.taskFields.progress];
24303
+ }
24304
+ if (this.parent.taskFields.dependency !== null) {
24305
+ this.parent.editedRecords[i].ganttProperties["dependency"] = rec[this.parent.taskFields.dependency];
24306
+ }
24307
+ if (this.parent.taskFields.parentID !== null) {
24308
+ this.parent.editedRecords[i].ganttProperties["parentID"] = rec[this.parent.taskFields.parentID];
24309
+ }
24310
+ if (this.parent.taskFields.baselineEndDate !== null) {
24311
+ this.parent.editedRecords[i].ganttProperties["baselineEndDate"] = rec[this.parent.taskFields.baselineEndDate];
24312
+ }
24313
+ if (this.parent.taskFields.baselineStartDate !== null) {
24314
+ this.parent.editedRecords[i].ganttProperties["baselineStartDate"] = rec[this.parent.taskFields.baselineStartDate];
24315
+ }
24316
+ if (this.parent.taskFields.resourceInfo !== null) {
24317
+ this.parent.editedRecords[i].ganttProperties["resources"] = rec[this.parent.taskFields.resourceInfo];
24318
+ }
24319
+ }
23461
24320
  this.saveSuccess(args);
23462
24321
  };
23463
24322
  Edit$$1.prototype.dmFailure = function (e, args) {
@@ -23476,7 +24335,7 @@ var Edit$2 = /** @__PURE__ @class */ (function () {
23476
24335
  var ids = data.ganttProperties.sharedTaskUniqueIds;
23477
24336
  for (var i = 0; i < ids.length; i++) {
23478
24337
  var editRecord = this.parent.flatData[this.parent.ids.indexOf(ids[i].toString())];
23479
- if (editRecord.uniqueID !== data.uniqueID) {
24338
+ if (editRecord && editRecord.uniqueID !== data.uniqueID) {
23480
24339
  this.updateGanttProperties(data, editRecord);
23481
24340
  this.parent.setRecordValue('taskData', data.taskData, editRecord, true);
23482
24341
  this.parent.dataOperation.updateTaskData(editRecord);
@@ -23550,6 +24409,12 @@ var Edit$2 = /** @__PURE__ @class */ (function () {
23550
24409
  criticalModule.criticalConnectorLine(criticalModule.criticalPathCollection, criticalModule.detailPredecessorCollection, true, criticalModule.predecessorCollectionTaskIds);
23551
24410
  }
23552
24411
  this.parent.trigger('actionComplete', eventArgs);
24412
+ if (!isNullOrUndefined(this.parent.loadingIndicator) && this.parent.loadingIndicator.indicatorType === "Shimmer") {
24413
+ this.parent.hideMaskRow();
24414
+ }
24415
+ else {
24416
+ this.parent.hideSpinner();
24417
+ }
23553
24418
  }
23554
24419
  else {
23555
24420
  this.taskbarEditModule.dependencyCancel = false;
@@ -23571,12 +24436,12 @@ var Edit$2 = /** @__PURE__ @class */ (function () {
23571
24436
  for (var index = 0; index < currentLength; index++) {
23572
24437
  var recordIndex = [];
23573
24438
  var resourceID = parseInt(currentResource[index][this.parent.resourceFields.id], 10).toString();
23574
- if (resourceID === "NaN") {
24439
+ if (resourceID === 'NaN') {
23575
24440
  resourceID = currentResource[index][this.parent.resourceFields.id];
23576
24441
  }
23577
24442
  for (var i = 0; i < prevResource.length; i++) {
23578
24443
  var prevResourceID = parseInt(prevResource[i][this.parent.resourceFields.id], 10).toString();
23579
- if (prevResourceID === "NaN") {
24444
+ if (prevResourceID === 'NaN') {
23580
24445
  prevResourceID = prevResource[i][this.parent.resourceFields.id];
23581
24446
  }
23582
24447
  if (prevResourceID === resourceID) {
@@ -23637,12 +24502,6 @@ var Edit$2 = /** @__PURE__ @class */ (function () {
23637
24502
  }
23638
24503
  if (!isNullOrUndefined(unassignedTasks)) {
23639
24504
  this.addNewRecord(updateRecord, unassignedTasks);
23640
- var updatedData = this.parent.currentViewData.filter(function (data) {
23641
- return (data.ganttProperties.taskId === updateRecord.ganttProperties.taskId &&
23642
- (data.hasChildRecords === updateRecord.hasChildRecords));
23643
- })[0];
23644
- updateRecord.parentItem = updatedData.parentItem;
23645
- updateRecord.parentUniqueID = updatedData.parentUniqueID;
23646
24505
  }
23647
24506
  else {
23648
24507
  // Block for create the unassigned task.
@@ -23657,6 +24516,12 @@ var Edit$2 = /** @__PURE__ @class */ (function () {
23657
24516
  var parentRecord = this.parent.flatData[this.parent.flatData.length - 1];
23658
24517
  this.addNewRecord(updateRecord, parentRecord);
23659
24518
  }
24519
+ var updatedData = this.parent.currentViewData.filter(function (data) {
24520
+ return (data.ganttProperties.taskId === updateRecord.ganttProperties.taskId &&
24521
+ (data.hasChildRecords === updateRecord.hasChildRecords));
24522
+ })[0];
24523
+ updateRecord.parentItem = updatedData.parentItem;
24524
+ updateRecord.parentUniqueID = updatedData.parentUniqueID;
23660
24525
  };
23661
24526
  Edit$$1.prototype.addRecordAsBottom = function (cAddedRecord) {
23662
24527
  var recordIndex1 = this.parent.flatData.length;
@@ -23863,6 +24728,7 @@ var Edit$2 = /** @__PURE__ @class */ (function () {
23863
24728
  width: '320px',
23864
24729
  isModal: true,
23865
24730
  visible: false,
24731
+ enableRtl: this.parent.enableRtl,
23866
24732
  content: this.parent.localeObj.getConstant('confirmDelete'),
23867
24733
  buttons: [
23868
24734
  {
@@ -23915,15 +24781,17 @@ var Edit$2 = /** @__PURE__ @class */ (function () {
23915
24781
  var deleteRecords = [];
23916
24782
  var _loop_1 = function (i) {
23917
24783
  if (selectedRecords[i].parentItem) {
23918
- var data = selectedRecords[i];
23919
- var ids = data.ganttProperties.sharedTaskUniqueIds;
23920
- for (var j = 0; j < ids.length; j++) {
23921
- if (this_1.parent.ids.indexOf(ids[j].toString()) !== -1) {
23922
- deleteRecords.push(this_1.parent.flatData[this_1.parent.ids.indexOf(ids[j].toString())]);
24784
+ if (selectedRecords[i].ganttProperties.sharedTaskUniqueIds.length === 1) {
24785
+ var data = selectedRecords[i];
24786
+ var ids = data.ganttProperties.sharedTaskUniqueIds;
24787
+ for (var j = 0; j < ids.length; j++) {
24788
+ if (this_1.parent.ids.indexOf(ids[j].toString()) !== -1) {
24789
+ deleteRecords.push(this_1.parent.flatData[this_1.parent.ids.indexOf(ids[j].toString())]);
24790
+ }
24791
+ }
24792
+ if (this_1.parent.ids.indexOf(data.ganttProperties.rowUniqueID) !== -1) {
24793
+ deleteRecords.push(this_1.parent.flatData[this_1.parent.ids.indexOf(data.ganttProperties.rowUniqueID)]);
23923
24794
  }
23924
- }
23925
- if (this_1.parent.ids.indexOf(data.ganttProperties.rowUniqueID) !== -1) {
23926
- deleteRecords.push(this_1.parent.flatData[this_1.parent.ids.indexOf(data.ganttProperties.rowUniqueID)]);
23927
24795
  }
23928
24796
  }
23929
24797
  else {
@@ -24053,8 +24921,9 @@ var Edit$2 = /** @__PURE__ @class */ (function () {
24053
24921
  if (this.deletedTaskDetails.indexOf(deleteRecord) !== -1) {
24054
24922
  continue;
24055
24923
  }
24924
+ var parentTask = this.parent.getParentTask(deleteRecord.parentItem);
24056
24925
  if (deleteRecord.parentItem) {
24057
- var childRecord = this.parent.getParentTask(deleteRecord.parentItem).childRecords;
24926
+ var childRecord = parentTask.childRecords;
24058
24927
  var filteredRecord = childRecord.length === 1 ?
24059
24928
  childRecord : childRecord.filter(function (data) {
24060
24929
  return !data.isDelete;
@@ -24064,7 +24933,12 @@ var Edit$2 = /** @__PURE__ @class */ (function () {
24064
24933
  }
24065
24934
  }
24066
24935
  var predecessor = deleteRecord.ganttProperties.predecessor;
24067
- if (predecessor && predecessor.length) {
24936
+ var canDeletePredecessor = true;
24937
+ if (this.parent.viewType === 'ResourceView' && parentTask && parentTask.ganttProperties.taskName !==
24938
+ this.parent.localeObj.getConstant('unassignedTask')) {
24939
+ canDeletePredecessor = false;
24940
+ }
24941
+ if (predecessor && predecessor.length && canDeletePredecessor) {
24068
24942
  this.removePredecessorOnDelete(deleteRecord);
24069
24943
  }
24070
24944
  this.deletedTaskDetails.push(deleteRecord);
@@ -24213,7 +25087,13 @@ var Edit$2 = /** @__PURE__ @class */ (function () {
24213
25087
  continue;
24214
25088
  }
24215
25089
  var predecessor = childRecord.ganttProperties.predecessor;
24216
- if (predecessor && predecessor.length) {
25090
+ var canDeletePredecessor = true;
25091
+ var parentTask = this.parent.getParentTask(childRecord.parentItem);
25092
+ if (this.parent.viewType === 'ResourceView' && parentTask && parentTask.ganttProperties.taskName !==
25093
+ this.parent.localeObj.getConstant('unassignedTask')) {
25094
+ canDeletePredecessor = false;
25095
+ }
25096
+ if (predecessor && predecessor.length && canDeletePredecessor) {
24217
25097
  this.removePredecessorOnDelete(childRecord);
24218
25098
  }
24219
25099
  this.deletedTaskDetails.push(childRecord);
@@ -24265,6 +25145,12 @@ var Edit$2 = /** @__PURE__ @class */ (function () {
24265
25145
  eventArgs.modifiedRecords = args.updatedRecordCollection;
24266
25146
  eventArgs.modifiedTaskData = getTaskData(args.updatedRecordCollection, null, null, this.parent);
24267
25147
  this.parent.trigger('actionBegin', eventArgs, function (eventArg) {
25148
+ if (!isNullOrUndefined(_this.parent.loadingIndicator) && _this.parent.loadingIndicator.indicatorType === "Shimmer") {
25149
+ _this.parent.showMaskRow();
25150
+ }
25151
+ else {
25152
+ _this.parent.showSpinner();
25153
+ }
24268
25154
  if (eventArg.cancel) {
24269
25155
  var deleteRecords = _this.deletedTaskDetails;
24270
25156
  for (var d = 0; d < deleteRecords.length; d++) {
@@ -24344,6 +25230,14 @@ var Edit$2 = /** @__PURE__ @class */ (function () {
24344
25230
  this.parent.ids.splice(flatIndex, 1);
24345
25231
  if (this.parent.viewType === 'ResourceView') {
24346
25232
  this.parent.getTaskIds().splice(flatIndex, 1);
25233
+ this.isResourceTaskDeleted = true;
25234
+ if (!deleteRecord.hasChildRecords) {
25235
+ deleteRecord.ganttProperties.resourceInfo = null;
25236
+ delete deleteRecord.ganttProperties.resourceNames;
25237
+ deleteRecord[this.parent.taskFields.resourceInfo] = null;
25238
+ deleteRecord.ganttProperties.sharedTaskUniqueIds = [];
25239
+ delete deleteRecord.taskData[this.parent.taskFields.resourceInfo];
25240
+ }
24347
25241
  }
24348
25242
  }
24349
25243
  if (deleteRecord.level === 0 && treeGridParentIndex !== -1) {
@@ -24392,9 +25286,12 @@ var Edit$2 = /** @__PURE__ @class */ (function () {
24392
25286
  var unassignedTask = this_2.parent.flatData.filter(function (data) {
24393
25287
  return data.ganttProperties.taskName === _this.parent.localeObj.getConstant('unassignedTask');
24394
25288
  })[0];
24395
- var isDuplicate = unassignedTask.childRecords.filter(function (data) {
24396
- return data.ganttProperties.taskId === updateUnAssignedResources_1[i].ganttProperties.taskId;
24397
- });
25289
+ var isDuplicate = [];
25290
+ if (unassignedTask) {
25291
+ isDuplicate = unassignedTask.childRecords.filter(function (data) {
25292
+ return data.ganttProperties.taskId === updateUnAssignedResources_1[i].ganttProperties.taskId;
25293
+ });
25294
+ }
24398
25295
  var parentTask = this_2.parent.getParentTask(updateUnAssignedResources_1[i].parentItem);
24399
25296
  if (parentTask && parentTask.ganttProperties.taskName !==
24400
25297
  this_2.parent.localeObj.getConstant('unassignedTask') && isDuplicate.length === 0) {
@@ -24403,9 +25300,9 @@ var Edit$2 = /** @__PURE__ @class */ (function () {
24403
25300
  this_2.parent.dataOperation.updateParentItems(updateUnAssignedResources_1[i].parentItem);
24404
25301
  }
24405
25302
  }
24406
- else if (!parentTask && isDuplicate.length === 0) {
25303
+ else if (!parentTask && (!isDuplicate || isDuplicate.length === 0)) {
24407
25304
  this_2.checkWithUnassignedTask(updateUnAssignedResources_1[i]);
24408
- if (updateUnAssignedResources_1[i].parentItem) {
25305
+ if (updateUnAssignedResources_1[i].parentItem && unassignedTask) {
24409
25306
  this_2.parent.dataOperation.updateParentItems(updateUnAssignedResources_1[i].parentItem);
24410
25307
  }
24411
25308
  }
@@ -24418,7 +25315,12 @@ var Edit$2 = /** @__PURE__ @class */ (function () {
24418
25315
  this.parent.trigger('actionComplete', eventArgs);
24419
25316
  this.deletedTaskDetails = [];
24420
25317
  this.parent.initiateEditAction(false);
24421
- this.parent.hideSpinner();
25318
+ if (!isNullOrUndefined(this.parent.loadingIndicator) && this.parent.loadingIndicator.indicatorType === "Shimmer") {
25319
+ this.parent.hideMaskRow();
25320
+ }
25321
+ else {
25322
+ this.parent.hideSpinner();
25323
+ }
24422
25324
  };
24423
25325
  /**
24424
25326
  *
@@ -24873,8 +25775,8 @@ var Edit$2 = /** @__PURE__ @class */ (function () {
24873
25775
  var originalData = this_3.parent.modifiedRecords[i];
24874
25776
  var treeIndex = this_3.parent.allowRowDragAndDrop ? 1 : 0;
24875
25777
  var uniqueTaskID = this_3.parent.taskFields.id;
24876
- originalIndex = this_3.parent.currentViewData.findIndex(function (data) {
24877
- return (data[uniqueTaskID] == originalData[uniqueTaskID]);
25778
+ var originalIndex = this_3.parent.currentViewData.findIndex(function (data) {
25779
+ return (data[uniqueTaskID] === originalData[uniqueTaskID]);
24878
25780
  });
24879
25781
  if (this_3.parent.treeGrid.getRows()[originalIndex]) {
24880
25782
  this_3.parent.treeGrid.renderModule.cellRender({
@@ -24887,7 +25789,7 @@ var Edit$2 = /** @__PURE__ @class */ (function () {
24887
25789
  });
24888
25790
  }
24889
25791
  };
24890
- var this_3 = this, originalIndex;
25792
+ var this_3 = this;
24891
25793
  for (var i = 0; i < this.parent.modifiedRecords.length; i++) {
24892
25794
  _loop_3(i);
24893
25795
  }
@@ -24999,8 +25901,13 @@ var Edit$2 = /** @__PURE__ @class */ (function () {
24999
25901
  }
25000
25902
  var args = {};
25001
25903
  args = this.constructTaskAddedEventArgs(cAddedRecord_1, this.parent.editedRecords, 'beforeAdd');
25002
- this.parent.showSpinner();
25003
25904
  this.parent.trigger('actionBegin', args, function (args) {
25905
+ if (!isNullOrUndefined(_this.parent.loadingIndicator) && _this.parent.loadingIndicator.indicatorType === "Shimmer") {
25906
+ _this.parent.showMaskRow();
25907
+ }
25908
+ else {
25909
+ _this.parent.showSpinner();
25910
+ }
25004
25911
  if (!isNullOrUndefined(args.data[tempTaskID])) {
25005
25912
  if (args.data[tempTaskID] != args.data['ganttProperties']['taskId']) {
25006
25913
  args.data['ganttProperties']['taskId'] = args.data[tempTaskID];
@@ -25204,7 +26111,7 @@ var Edit$2 = /** @__PURE__ @class */ (function () {
25204
26111
  switch (rowPosition) {
25205
26112
  case 'Top':
25206
26113
  case 'Bottom':
25207
- if (this.parent.viewType === "ResourceView") {
26114
+ if (this.parent.viewType === 'ResourceView') {
25208
26115
  level = 1;
25209
26116
  }
25210
26117
  else {
@@ -25287,6 +26194,12 @@ var Edit$2 = /** @__PURE__ @class */ (function () {
25287
26194
  this.parent.dataOperation.updateWorkWithDuration(cAddedRecord[0]);
25288
26195
  }
25289
26196
  this.parent.trigger('actionComplete', args);
26197
+ if (!isNullOrUndefined(this.parent.loadingIndicator) && this.parent.loadingIndicator.indicatorType === "Shimmer") {
26198
+ this.parent.hideMaskRow();
26199
+ }
26200
+ else {
26201
+ this.parent.hideSpinner();
26202
+ }
25290
26203
  if (this.dialogModule.dialog && !this.dialogModule.dialogObj.isDestroyed) {
25291
26204
  this.dialogModule.dialogObj.hide();
25292
26205
  }
@@ -25446,6 +26359,12 @@ var Edit$2 = /** @__PURE__ @class */ (function () {
25446
26359
  cancel: false
25447
26360
  };
25448
26361
  this.parent.trigger('actionBegin', actionArgs, function (actionArg) {
26362
+ if (!isNullOrUndefined(_this.parent.loadingIndicator) && _this.parent.loadingIndicator.indicatorType === "Shimmer") {
26363
+ _this.parent.showMaskRow();
26364
+ }
26365
+ else {
26366
+ _this.parent.showSpinner();
26367
+ }
25449
26368
  if (!actionArg.cancel) {
25450
26369
  _this.reArrangeRows(args_1, isByMethod_1);
25451
26370
  }
@@ -25618,6 +26537,12 @@ var Edit$2 = /** @__PURE__ @class */ (function () {
25618
26537
  }
25619
26538
  }
25620
26539
  this.parent.trigger('actionComplete', args);
26540
+ if (!isNullOrUndefined(this.parent.loadingIndicator) && this.parent.loadingIndicator.indicatorType === "Shimmer") {
26541
+ this.parent.hideMaskRow();
26542
+ }
26543
+ else {
26544
+ this.parent.hideSpinner();
26545
+ }
25621
26546
  this.parent.editedRecords = [];
25622
26547
  };
25623
26548
  Edit$$1.prototype.refreshDataSource = function () {
@@ -26135,6 +27060,7 @@ var Filter$1 = /** @__PURE__ @class */ (function () {
26135
27060
  var flValInput = createElement('input', { className: 'flm-input' });
26136
27061
  args.target.appendChild(flValInput);
26137
27062
  dropDateInstance = new DatePicker({ placeholder: _this.parent.localeObj.getConstant('enterValue'), format: format });
27063
+ dropDateInstance.enableRtl = _this.parent.enableRtl;
26138
27064
  dropDateInstance.appendTo(flValInput);
26139
27065
  },
26140
27066
  write: function (args) {
@@ -26158,6 +27084,7 @@ var Filter$1 = /** @__PURE__ @class */ (function () {
26158
27084
  var flValInput = createElement('input', { className: 'flm-input' });
26159
27085
  args.target.appendChild(flValInput);
26160
27086
  dropInstance = new DateTimePicker({ placeholder: _this.parent.localeObj.getConstant('enterValue'), format: format });
27087
+ dropInstance.enableRtl = _this.parent.enableRtl;
26161
27088
  dropInstance.appendTo(flValInput);
26162
27089
  },
26163
27090
  write: function (args) {
@@ -26180,6 +27107,7 @@ var Filter$1 = /** @__PURE__ @class */ (function () {
26180
27107
  flValInput.setAttribute('placeholder', _this.parent.localeObj.getConstant('enterValue'));
26181
27108
  args.target.appendChild(flValInput);
26182
27109
  textBoxInstance = new TextBox();
27110
+ textBoxInstance.enableRtl = _this.parent.enableRtl;
26183
27111
  textBoxInstance.appendTo(flValInput);
26184
27112
  },
26185
27113
  write: function (args) {
@@ -26977,6 +27905,14 @@ var Toolbar$3 = /** @__PURE__ @class */ (function () {
26977
27905
  this.parent.localeObj.getConstant('tasks') : ''),
26978
27906
  align: this.parent.isAdaptive ? 'Right' : 'Left'
26979
27907
  };
27908
+ if (this.parent.enableRtl) {
27909
+ if (item === 'PrevTimeSpan') {
27910
+ this.predefinedItems[item].prefixIcon = 'e-nexttimespan';
27911
+ }
27912
+ if (item === 'NextTimeSpan') {
27913
+ this.predefinedItems[item].prefixIcon = 'e-prevtimespan';
27914
+ }
27915
+ }
26980
27916
  }
26981
27917
  var searchLocalText = this.parent.localeObj.getConstant('search');
26982
27918
  if (this.parent.isAdaptive) {
@@ -27008,6 +27944,7 @@ var Toolbar$3 = /** @__PURE__ @class */ (function () {
27008
27944
  var items = this.getItems();
27009
27945
  this.toolbar = new Toolbar$1({
27010
27946
  items: items,
27947
+ enableRtl: this.parent.enableRtl,
27011
27948
  clicked: this.toolbarClickHandler.bind(this),
27012
27949
  height: this.parent.isAdaptive ? 48 : 'auto'
27013
27950
  });
@@ -27026,6 +27963,7 @@ var Toolbar$3 = /** @__PURE__ @class */ (function () {
27026
27963
  this.searchElement = this.element.querySelector('#' + this.parent.element.id + '_searchbar');
27027
27964
  var textObj = new TextBox({
27028
27965
  placeholder: this.parent.localeObj.getConstant('search'),
27966
+ enableRtl: this.parent.enableRtl,
27029
27967
  floatLabelType: 'Never',
27030
27968
  showClearButton: true
27031
27969
  });
@@ -27144,7 +28082,16 @@ var Toolbar$3 = /** @__PURE__ @class */ (function () {
27144
28082
  var _this = this;
27145
28083
  var gObj = this.parent;
27146
28084
  var gID = this.id;
28085
+ this.parent.isToolBarClick = false;
27147
28086
  extend(arg, { cancel: false });
28087
+ if (arg.item['properties'].id === this.parent.element.id + "_pdfexport" || arg.item['properties'].id === this.parent.element.id + "_critical-path") {
28088
+ if (!isNullOrUndefined(this.parent.loadingIndicator) && this.parent.loadingIndicator.indicatorType === "Shimmer") {
28089
+ this.parent.showMaskRow();
28090
+ }
28091
+ else {
28092
+ this.parent.showSpinner();
28093
+ }
28094
+ }
27148
28095
  gObj.trigger(toolbarClick, arg, function (args) {
27149
28096
  if (args.cancel) {
27150
28097
  return;
@@ -27346,7 +28293,8 @@ var Toolbar$3 = /** @__PURE__ @class */ (function () {
27346
28293
  else {
27347
28294
  disableItems.push(gID + '_update', gID + '_cancel');
27348
28295
  for (var t = 0; t < toolbarItems.length; t++) {
27349
- if (enableItems.indexOf(toolbarItems[t].id) === -1 && disableItems.indexOf(toolbarItems[t].id) === -1) {
28296
+ if (enableItems.indexOf(toolbarItems[t].id) === -1 &&
28297
+ disableItems.indexOf(toolbarItems[t].id) === -1) {
27350
28298
  enableItems.push(toolbarItems[t].id);
27351
28299
  }
27352
28300
  }
@@ -27503,8 +28451,9 @@ var NonWorkingDay = /** @__PURE__ @class */ (function () {
27503
28451
  var width = (this.parent.holidays[i].from && this.parent.holidays[i].to) ?
27504
28452
  this.parent.dataOperation.getTaskWidth(fromDate, toDate) : this.parent.perDayWidth;
27505
28453
  var left = this.parent.dataOperation.getTaskLeft(fromDate, false);
28454
+ var align = this.parent.enableRtl ? "right:" + left + "px;" : "left:" + left + "px;";
27506
28455
  var holidayDiv = createElement('div', {
27507
- className: holidayElement, styles: "left:" + left + "px; width:" + width + "px; height:100%;"
28456
+ className: holidayElement, styles: align + " width:" + width + "px; height:100%;"
27508
28457
  });
27509
28458
  var spanTop = (viewportHeight < height) ? viewportHeight / 2 : height / 2;
27510
28459
  var spanElement = createElement('span', {
@@ -27573,8 +28522,9 @@ var NonWorkingDay = /** @__PURE__ @class */ (function () {
27573
28522
  this.weekendWidthUpdated = true;
27574
28523
  }
27575
28524
  }
28525
+ var align = this.parent.enableRtl ? "right:" + left + "px;" : "left:" + left + "px;";
27576
28526
  var weekendDiv = createElement('div', {
27577
- className: weekend, styles: "left:" + left + "px;width:" + width + "px;height:100%;"
28527
+ className: weekend, styles: align + " width:" + width + "px;height:100%;"
27578
28528
  });
27579
28529
  container.appendChild(weekendDiv);
27580
28530
  }
@@ -27647,7 +28597,7 @@ var EventMarker$1 = /** @__PURE__ @class */ (function () {
27647
28597
  this.eventMarkersContainer = createElement('div', {
27648
28598
  className: eventMarkersContainer
27649
28599
  });
27650
- this.eventMarkersContainer.setAttribute("role", "term");
28600
+ this.eventMarkersContainer.setAttribute('role', 'term');
27651
28601
  this.parent.ganttChartModule.chartBodyContent.appendChild(this.eventMarkersContainer);
27652
28602
  }
27653
28603
  this.eventMarkersContainer.innerHTML = '';
@@ -27680,8 +28630,15 @@ var EventMarker$1 = /** @__PURE__ @class */ (function () {
27680
28630
  var rightArrow;
27681
28631
  for (var i = 0; i < this.parent.eventMarkers.length; i++) {
27682
28632
  left = this.parent.dataOperation.getTaskLeft(this.parent.dateValidationModule.getDateFromFormat(this.parent.eventMarkers[i].day, true), false);
28633
+ var align = void 0;
28634
+ if (this.parent.enableRtl) {
28635
+ align = "right:" + left + "px;";
28636
+ }
28637
+ else {
28638
+ align = "left:" + left + "px;";
28639
+ }
27683
28640
  eventMarkerElement = createElement('div', {
27684
- className: eventMarkersChild, styles: "left:" + left + "px; height:100%;",
28641
+ className: eventMarkersChild, styles: align + " height:100%;",
27685
28642
  id: 'stripline' + i
27686
28643
  });
27687
28644
  if (this.parent.eventMarkers[i].label) {
@@ -27690,6 +28647,12 @@ var EventMarker$1 = /** @__PURE__ @class */ (function () {
27690
28647
  });
27691
28648
  var property = this.parent.disableHtmlEncode ? 'textContent' : 'innerHTML';
27692
28649
  spanElement[property] = this.parent.eventMarkers[i].label;
28650
+ if (this.parent.enableRtl) {
28651
+ spanElement.style.right = '5px';
28652
+ }
28653
+ else {
28654
+ spanElement.style.left = '5px';
28655
+ }
27693
28656
  eventMarkerElement.appendChild(spanElement);
27694
28657
  rightArrow = createElement('div', {
27695
28658
  className: 'e-gantt-right-arrow'
@@ -27868,7 +28831,7 @@ var CriticalPath = /** @__PURE__ @class */ (function () {
27868
28831
  }
27869
28832
  else {
27870
28833
  var currentRecords = this_1.parent.currentViewData.filter(function (data) {
27871
- return parseInt(data.ganttProperties.taskId) == checkBeyondEnddate_1[k];
28834
+ return parseInt(data.ganttProperties.taskId) === checkBeyondEnddate_1[k];
27872
28835
  });
27873
28836
  for (var i = 0; i < currentRecords.length; i++) {
27874
28837
  if (!currentRecords[i].hasChildRecords && currentRecords[i].ganttProperties.endDate >= this_1.maxEndDate) {
@@ -27906,10 +28869,10 @@ var CriticalPath = /** @__PURE__ @class */ (function () {
27906
28869
  var individualPredecessorLength = totalPredecessorsCollection[x].ganttProperties.predecessor.length;
27907
28870
  var taskid = ((totalPredecessorsCollection[x].ganttProperties.taskId));
27908
28871
  for (var y = 0; y < individualPredecessorLength; y++) {
27909
- if (!isNaN(Number(predecessor[y].from)) && typeof (taskid) != "string") {
28872
+ if (!isNaN(Number(predecessor[y].from)) && typeof (taskid) != 'string') {
27910
28873
  tempTaskId = parseInt((predecessor[y].from), 10);
27911
28874
  }
27912
- else if (!isNaN(Number(predecessor[y].from)) && typeof (taskid) === "string") {
28875
+ else if (!isNaN(Number(predecessor[y].from)) && typeof (taskid) === 'string') {
27913
28876
  tempTaskId = predecessor[y].from;
27914
28877
  }
27915
28878
  else {
@@ -27932,15 +28895,16 @@ var CriticalPath = /** @__PURE__ @class */ (function () {
27932
28895
  toPredecessor = toPredecessor + ',' + predecessor[y].type;
27933
28896
  }
27934
28897
  else {
27935
- to = to + ',' + predecessor[y].to + ':' + predecessor[y].offset + predecessor[y].offsetUnit;
28898
+ to = to + ',' + predecessor[y].to + ':' + predecessor[y].offset +
28899
+ predecessor[y].offsetUnit;
27936
28900
  toPredecessor = toPredecessor + ',' + predecessor[y].type;
27937
28901
  }
27938
28902
  }
27939
28903
  }
27940
- if (!isNaN(Number(predecessor[y].to)) && typeof (taskid) != "string") {
28904
+ if (!isNaN(Number(predecessor[y].to)) && typeof (taskid) != 'string') {
27941
28905
  tempTaskId = parseInt((predecessor[y].to), 10);
27942
28906
  }
27943
- else if (!isNaN(Number(predecessor[y].to)) && typeof (taskid) === "string") {
28907
+ else if (!isNaN(Number(predecessor[y].to)) && typeof (taskid) === 'string') {
27944
28908
  tempTaskId = predecessor[y].to;
27945
28909
  }
27946
28910
  else {
@@ -27953,7 +28917,8 @@ var CriticalPath = /** @__PURE__ @class */ (function () {
27953
28917
  fromPredecessor = predecessor[y].type;
27954
28918
  }
27955
28919
  else {
27956
- from = predecessor[y].from + ':' + predecessor[y].offset + predecessor[y].offsetUnit;
28920
+ from = predecessor[y].from + ':' + predecessor[y].offset +
28921
+ predecessor[y].offsetUnit;
27957
28922
  fromPredecessor = predecessor[y].type;
27958
28923
  }
27959
28924
  }
@@ -27963,7 +28928,8 @@ var CriticalPath = /** @__PURE__ @class */ (function () {
27963
28928
  fromPredecessor = fromPredecessor + ',' + predecessor[y].type;
27964
28929
  }
27965
28930
  else {
27966
- from = from + ',' + predecessor[y].from + ':' + predecessor[y].offset + predecessor[y].offsetUnit;
28931
+ from = from + ',' + predecessor[y].from + ':' + predecessor[y].offset +
28932
+ predecessor[y].offsetUnit;
27967
28933
  fromPredecessor = fromPredecessor + ',' + predecessor[y].type;
27968
28934
  }
27969
28935
  }
@@ -28090,7 +29056,8 @@ var CriticalPath = /** @__PURE__ @class */ (function () {
28090
29056
  }
28091
29057
  }
28092
29058
  // execute if the current calculated slack value is less than the previous slack value.
28093
- else if (collection[fromTaskIdIndex]['slack'] > dateDifference && collection[fromTaskIdIndex]['slack'] !== 0) {
29059
+ else if (collection[fromTaskIdIndex]['slack'] > dateDifference &&
29060
+ collection[fromTaskIdIndex]['slack'] !== 0) {
28094
29061
  // execute if the offset value is not given.
28095
29062
  if (fromDateArray1.length <= 1) {
28096
29063
  if (collection[totaskId]['slack'] + dateDifference < 0) {
@@ -28140,7 +29107,8 @@ var CriticalPath = /** @__PURE__ @class */ (function () {
28140
29107
  }
28141
29108
  }
28142
29109
  //It execute while already the slack value is set and it is higher than the datedifference.
28143
- else if (collection[fromTaskIdIndex]['slack'] > dateDifference && collection[fromTaskIdIndex]['slack'] !== 0) {
29110
+ else if (collection[fromTaskIdIndex]['slack'] > dateDifference &&
29111
+ collection[fromTaskIdIndex]['slack'] !== 0) {
28144
29112
  if (fromDateArray1.length <= 1) {
28145
29113
  if (collection[totaskId]['slack'] + dateDifference < 0) {
28146
29114
  collection[fromTaskIdIndex]['slack'] = 0;
@@ -28168,7 +29136,8 @@ var CriticalPath = /** @__PURE__ @class */ (function () {
28168
29136
  if (isNullOrUndefined(collection[fromTaskIdIndex]['slack'])) {
28169
29137
  collection[fromTaskIdIndex]['slack'] = dateDifference;
28170
29138
  }
28171
- else if (collection[fromTaskIdIndex]['slack'] > dateDifference && collection[fromTaskIdIndex]['slack'] !== 0) {
29139
+ else if (collection[fromTaskIdIndex]['slack'] > dateDifference &&
29140
+ collection[fromTaskIdIndex]['slack'] !== 0) {
28172
29141
  collection[fromTaskIdIndex]['slack'] = dateDifference;
28173
29142
  }
28174
29143
  }
@@ -28179,7 +29148,8 @@ var CriticalPath = /** @__PURE__ @class */ (function () {
28179
29148
  // calculate slack value for the task contains predecessor connection in "finish to finish".
28180
29149
  if (fromDataPredecessor[i] === 'FF') {
28181
29150
  // execute if the previous task is from finish to start or finish to finish state.
28182
- if (collection[totaskId]['fs'] === 1 || collection[totaskId]['ff'] === 1 || collection[totaskId]['fs'] === -1) {
29151
+ if (collection[totaskId]['fs'] === 1 || collection[totaskId]['ff'] === 1 ||
29152
+ collection[totaskId]['fs'] === -1) {
28183
29153
  if (collection[totaskId]['fs'] === 1 || collection[totaskId]['ff'] === 1) {
28184
29154
  prevTaskEnddate = toIdFlatData.endDate;
28185
29155
  ffslack = collection[totaskId]['slack'];
@@ -28482,7 +29452,7 @@ var CriticalPath = /** @__PURE__ @class */ (function () {
28482
29452
  }
28483
29453
  else {
28484
29454
  var currentRecords = this_2.parent.currentViewData.filter(function (data) {
28485
- return (data.ganttProperties.taskId).toString() == criticalPathIds[i].toString();
29455
+ return (data.ganttProperties.taskId).toString() === criticalPathIds[i].toString();
28486
29456
  });
28487
29457
  for (var i_1 = 0; i_1 < currentRecords.length; i_1++) {
28488
29458
  if (currentRecords[i_1].ganttProperties.isCritical || currentRecords[i_1].ganttProperties.endDate >= this_2.maxEndDate) {
@@ -28496,13 +29466,13 @@ var CriticalPath = /** @__PURE__ @class */ (function () {
28496
29466
  var columnFields = this_2.parent.taskFields;
28497
29467
  if (criticalData.parentItem) {
28498
29468
  var parentRecord = this_2.parent.currentViewData.filter(function (data) {
28499
- return criticalData.parentItem.uniqueID == data.uniqueID;
29469
+ return criticalData.parentItem.uniqueID === data.uniqueID;
28500
29470
  });
28501
29471
  var parentIndex = this_2.parent.currentViewData.indexOf(parentRecord[0]);
28502
29472
  var parentElement = this_2.parent.getRowByIndex(parentIndex);
28503
29473
  var parentTaskbarElement = parentElement.querySelectorAll('.e-taskbar-main-container');
28504
29474
  for (var i_2 = 0; i_2 < parentTaskbarElement.length; i_2++) {
28505
- if (parentTaskbarElement[i_2].getAttribute('rowuniqueid') == criticalData['rowUniqueID']) {
29475
+ if (parentTaskbarElement[i_2].getAttribute('rowuniqueid') === criticalData['rowUniqueID']) {
28506
29476
  addClass(parentTaskbarElement[i_2].querySelectorAll('.e-gantt-child-taskbar-inner-div'), criticalChildTaskBarInnerDiv);
28507
29477
  }
28508
29478
  }
@@ -28654,6 +29624,7 @@ var ContextMenu$2 = /** @__PURE__ @class */ (function () {
28654
29624
  this.contextMenu = new ContextMenu$1({
28655
29625
  items: this.getMenuItems(),
28656
29626
  locale: this.parent.locale,
29627
+ enableRtl: this.parent.enableRtl,
28657
29628
  target: target,
28658
29629
  animationSettings: { effect: 'None' },
28659
29630
  select: this.contextMenuItemClick.bind(this),
@@ -28795,6 +29766,12 @@ var ContextMenu$2 = /** @__PURE__ @class */ (function () {
28795
29766
  };
28796
29767
  // eslint-disable-next-line
28797
29768
  this.parent.trigger('actionBegin', eventArgs, function (eventArgs) {
29769
+ if (!isNullOrUndefined(_this.parent.loadingIndicator) && _this.parent.loadingIndicator.indicatorType === "Shimmer") {
29770
+ _this.parent.showMaskRow();
29771
+ }
29772
+ else {
29773
+ _this.parent.showSpinner();
29774
+ }
28798
29775
  _this.parent.chartRowsModule.splitTask(_this.rowData[taskSettings.id], currentClickedDate);
28799
29776
  });
28800
29777
  };
@@ -28816,6 +29793,12 @@ var ContextMenu$2 = /** @__PURE__ @class */ (function () {
28816
29793
  target: this.targetElement
28817
29794
  };
28818
29795
  this.parent.trigger('actionBegin', eventArgs, function (eventArgs) {
29796
+ if (!isNullOrUndefined(_this.parent.loadingIndicator) && _this.parent.loadingIndicator.indicatorType === "Shimmer") {
29797
+ _this.parent.showMaskRow();
29798
+ }
29799
+ else {
29800
+ _this.parent.showSpinner();
29801
+ }
28819
29802
  if (eventArgs.cancel === false) {
28820
29803
  _this.parent.chartRowsModule.mergeTask(_this.rowData[taskSettings.id], segmentIndexes);
28821
29804
  }
@@ -28824,12 +29807,30 @@ var ContextMenu$2 = /** @__PURE__ @class */ (function () {
28824
29807
  // eslint-disable-next-line
28825
29808
  ContextMenu$$1.prototype.getClickedDate = function (element) {
28826
29809
  // context menu click position
28827
- var ganttElementPosition = this.parent.getOffsetRect(this.parent.element);
29810
+ var ganttElementPositionLeft;
28828
29811
  // task left position
28829
- var pageLeft = ganttElementPosition.left + this.parent.ganttChartModule.chartElement.offsetLeft +
28830
- this.rowData.ganttProperties.left - this.parent.ganttChartModule.scrollElement.scrollLeft;
28831
- // difference from task start date to current click position.
28832
- var currentTaskDifference = this.clickedPosition - pageLeft;
29812
+ if (this.parent.enableRtl) {
29813
+ var box = this.parent.element.getBoundingClientRect();
29814
+ var scrollLeft = window.pageXOffset || document.documentElement.scrollLeft ||
29815
+ document.body.scrollLeft;
29816
+ var clientLeft = document.documentElement.clientLeft || document.body.clientLeft || 0;
29817
+ ganttElementPositionLeft = box.left + scrollLeft - clientLeft;
29818
+ }
29819
+ else {
29820
+ ganttElementPositionLeft = this.parent.getOffsetRect(this.parent.element).left;
29821
+ }
29822
+ var pageLeft;
29823
+ var currentTaskDifference;
29824
+ if (this.parent.enableRtl) {
29825
+ pageLeft = Math.abs(ganttElementPositionLeft + this.parent.ganttChartModule.chartElement.offsetWidth -
29826
+ this.rowData.ganttProperties.left - this.parent.ganttChartModule.scrollElement.scrollLeft);
29827
+ currentTaskDifference = Math.abs(this.clickedPosition - pageLeft);
29828
+ }
29829
+ else {
29830
+ pageLeft = ganttElementPositionLeft + this.parent.ganttChartModule.chartElement.offsetLeft +
29831
+ this.rowData.ganttProperties.left - this.parent.ganttChartModule.scrollElement.scrollLeft;
29832
+ currentTaskDifference = this.clickedPosition - pageLeft;
29833
+ }
28833
29834
  var splitTaskDuration = Math.ceil(currentTaskDifference / this.parent.perDayWidth);
28834
29835
  var startDate = this.rowData.ganttProperties.startDate;
28835
29836
  if (!isNullOrUndefined(this.parent.timelineSettings.bottomTier) && this.parent.timelineSettings.bottomTier.unit === 'Hour') {
@@ -29345,6 +30346,12 @@ var ExcelExport$1 = /** @__PURE__ @class */ (function () {
29345
30346
  var _this = this;
29346
30347
  this.parent.treeGrid.beforeExcelExport = function (args) {
29347
30348
  _this.parent.trigger('beforeExcelExport', args);
30349
+ if (!isNullOrUndefined(_this.parent.loadingIndicator) && _this.parent.loadingIndicator.indicatorType === "Shimmer") {
30350
+ _this.parent.showMaskRow();
30351
+ }
30352
+ else {
30353
+ _this.parent.showSpinner();
30354
+ }
29348
30355
  };
29349
30356
  this.parent.treeGrid.excelQueryCellInfo = function (args) {
29350
30357
  _this.parent.trigger('excelQueryCellInfo', args);
@@ -29354,6 +30361,12 @@ var ExcelExport$1 = /** @__PURE__ @class */ (function () {
29354
30361
  };
29355
30362
  this.parent.treeGrid.excelExportComplete = function (args) {
29356
30363
  _this.parent.trigger('excelExportComplete', args);
30364
+ if (!isNullOrUndefined(_this.parent.loadingIndicator) && _this.parent.loadingIndicator.indicatorType === "Shimmer") {
30365
+ _this.parent.hideMaskRow();
30366
+ }
30367
+ else {
30368
+ _this.parent.hideSpinner();
30369
+ }
29357
30370
  };
29358
30371
  };
29359
30372
  return ExcelExport$$1;
@@ -29538,6 +30551,12 @@ var RowDD$1 = /** @__PURE__ @class */ (function () {
29538
30551
  if (!args.cancel) {
29539
30552
  args.requestType = 'beforeDrop';
29540
30553
  this.parent.trigger('actionBegin', args);
30554
+ if (!isNullOrUndefined(this.parent.loadingIndicator) && this.parent.loadingIndicator.indicatorType === "Shimmer") {
30555
+ this.parent.showMaskRow();
30556
+ }
30557
+ else {
30558
+ this.parent.showSpinner();
30559
+ }
29541
30560
  if (!args.cancel) {
29542
30561
  this.dropRows(args, true); // method to update the data collections based on drop action
29543
30562
  args.cancel = true;
@@ -29765,7 +30784,7 @@ var RowDD$1 = /** @__PURE__ @class */ (function () {
29765
30784
  }
29766
30785
  var validateRecords = void 0;
29767
30786
  if (toParent_1.uniqueID === draggedParent.uniqueID || (draggedParent.parentItem &&
29768
- toParent_1.uniqueID == this.parent.flatData[this.parent.ids.indexOf(draggedParent.parentItem.taskId)].uniqueID)) {
30787
+ toParent_1.uniqueID === this.parent.flatData[this.parent.ids.indexOf(draggedParent.parentItem.taskId)].uniqueID)) {
29769
30788
  validateRecords = this.parent.currentViewData.filter(function (data) {
29770
30789
  if ((data.ganttProperties.predecessor && data.ganttProperties.predecessor.length > 0)) {
29771
30790
  for (var i = 0; i < data.ganttProperties.predecessor.length; i++) {
@@ -30187,7 +31206,7 @@ var RowDD$1 = /** @__PURE__ @class */ (function () {
30187
31206
  }
30188
31207
  var idx = void 0;
30189
31208
  var ganttData = dataSource.length > 0 && this.parent.viewType !== 'ResourceView' ?
30190
- dataSource : this.parent.flatData;
31209
+ dataSource : this.parent.updatedRecords;
30191
31210
  for (var i = 0; i < ganttData.length; i++) {
30192
31211
  if (this.parent.viewType === 'ResourceView') {
30193
31212
  if (ganttData[i].ganttProperties.rowUniqueID === deletedRow.ganttProperties.rowUniqueID) {
@@ -30906,7 +31925,7 @@ var PdfTreeGridStyle = /** @__PURE__ @class */ (function () {
30906
31925
  return PdfTreeGridStyle;
30907
31926
  }());
30908
31927
 
30909
- var __extends$20 = (undefined && undefined.__extends) || (function () {
31928
+ var __extends$21 = (undefined && undefined.__extends) || (function () {
30910
31929
  var extendStatics = function (d, b) {
30911
31930
  extendStatics = Object.setPrototypeOf ||
30912
31931
  ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
@@ -30923,7 +31942,7 @@ var __extends$20 = (undefined && undefined.__extends) || (function () {
30923
31942
  *
30924
31943
  */
30925
31944
  var PdfTreeGridLayouter = /** @__PURE__ @class */ (function (_super) {
30926
- __extends$20(PdfTreeGridLayouter, _super);
31945
+ __extends$21(PdfTreeGridLayouter, _super);
30927
31946
  function PdfTreeGridLayouter(baseFormat) {
30928
31947
  var _this = _super.call(this, baseFormat) || this;
30929
31948
  _this.columnRanges = [];
@@ -31296,7 +32315,7 @@ var PdfTreeGridLayouter = /** @__PURE__ @class */ (function (_super) {
31296
32315
  return PdfTreeGridLayouter;
31297
32316
  }(ElementLayouter));
31298
32317
  var PdfTreeGridLayoutResult = /** @__PURE__ @class */ (function (_super) {
31299
- __extends$20(PdfTreeGridLayoutResult, _super);
32318
+ __extends$21(PdfTreeGridLayoutResult, _super);
31300
32319
  /**
31301
32320
  * Constructor
31302
32321
  *
@@ -31313,7 +32332,7 @@ var PdfTreeGridLayoutResult = /** @__PURE__ @class */ (function (_super) {
31313
32332
  * `PdfGridLayoutFormat` class represents a flexible grid that consists of columns and rows.
31314
32333
  */
31315
32334
  var PdfTreeGridLayoutFormat = /** @__PURE__ @class */ (function (_super) {
31316
- __extends$20(PdfTreeGridLayoutFormat, _super);
32335
+ __extends$21(PdfTreeGridLayoutFormat, _super);
31317
32336
  /**
31318
32337
  * Initializes a new instance of the `PdfGridLayoutFormat` class.
31319
32338
  *
@@ -31333,7 +32352,7 @@ var PdfTreeGridLayoutFormat = /** @__PURE__ @class */ (function (_super) {
31333
32352
  return PdfTreeGridLayoutFormat;
31334
32353
  }(PdfLayoutFormat));
31335
32354
 
31336
- var __extends$21 = (undefined && undefined.__extends) || (function () {
32355
+ var __extends$22 = (undefined && undefined.__extends) || (function () {
31337
32356
  var extendStatics = function (d, b) {
31338
32357
  extendStatics = Object.setPrototypeOf ||
31339
32358
  ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
@@ -31350,7 +32369,7 @@ var __extends$21 = (undefined && undefined.__extends) || (function () {
31350
32369
  * PdfTreeGrid Class for EJ2-PDF
31351
32370
  */
31352
32371
  var PdfTreeGrid = /** @__PURE__ @class */ (function (_super) {
31353
- __extends$21(PdfTreeGrid, _super);
32372
+ __extends$22(PdfTreeGrid, _super);
31354
32373
  function PdfTreeGrid() {
31355
32374
  var _this = _super.call(this) || this;
31356
32375
  _this.treeGridSize = new SizeF(0, 0);
@@ -33774,217 +34793,215 @@ var PdfGanttPredecessor = /** @__PURE__ @class */ (function () {
33774
34793
  var childPageData;
33775
34794
  var parentY = 0;
33776
34795
  var childY = 0;
33777
- if (childTask && parentTask) {
33778
- switch (this.type) {
33779
- case 'FS':
33780
- if (childTask.startPage > -1 && parentTask.endPage > -1) {
33781
- startPage = pages[parentTask.endPage];
33782
- endPage = pages[childTask.startPage];
33783
- parentPageData = pdfGantt.pdfPageDetail[parentTask.endPage - pdfGantt.chartPageIndex];
33784
- childPageData = pdfGantt.pdfPageDetail[childTask.startPage - pdfGantt.chartPageIndex];
33785
- if (this.parentIndex < this.childIndex) {
33786
- if (this.parentLeft < this.childLeft && this.childLeft > (this.parentLeft + this.parentWidth + 25)) {
33787
- predecessorType = 'FSType1';
33788
- }
33789
- else {
33790
- predecessorType = 'FSType2';
33791
- }
34796
+ switch (this.type) {
34797
+ case 'FS':
34798
+ if (childTask.startPage > -1 && parentTask.endPage > -1) {
34799
+ startPage = pages[parentTask.endPage];
34800
+ endPage = pages[childTask.startPage];
34801
+ parentPageData = pdfGantt.pdfPageDetail[parentTask.endPage - pdfGantt.chartPageIndex];
34802
+ childPageData = pdfGantt.pdfPageDetail[childTask.startPage - pdfGantt.chartPageIndex];
34803
+ if (this.parentIndex < this.childIndex) {
34804
+ if (this.parentLeft < this.childLeft && this.childLeft > (this.parentLeft + this.parentWidth + 25)) {
34805
+ predecessorType = 'FSType1';
33792
34806
  }
33793
34807
  else {
33794
- if (this.parentLeft < this.childLeft && this.childLeft > (this.parentLeft + this.parentWidth + 25)) {
33795
- predecessorType = 'FSType3';
33796
- }
33797
- else {
33798
- predecessorType = 'FSType4';
33799
- }
34808
+ predecessorType = 'FSType2';
33800
34809
  }
33801
34810
  }
33802
34811
  else {
33803
- return;
34812
+ if (this.parentLeft < this.childLeft && this.childLeft > (this.parentLeft + this.parentWidth + 25)) {
34813
+ predecessorType = 'FSType3';
34814
+ }
34815
+ else {
34816
+ predecessorType = 'FSType4';
34817
+ }
33804
34818
  }
33805
- break;
33806
- case 'SF':
33807
- if (childTask.endPage > -1 && parentTask.startPage > -1) {
33808
- startPage = pages[parentTask.startPage];
33809
- endPage = pages[childTask.endPage];
33810
- parentPageData = pdfGantt.pdfPageDetail[parentTask.endPage - pdfGantt.chartPageIndex];
33811
- childPageData = pdfGantt.pdfPageDetail[childTask.startPage - pdfGantt.chartPageIndex];
33812
- if (this.parentIndex < this.childIndex) {
33813
- if (this.parentLeft > this.childLeft + this.childWidth) {
33814
- predecessorType = 'SFType1';
33815
- }
33816
- else {
33817
- predecessorType = 'SFType2';
33818
- }
34819
+ }
34820
+ else {
34821
+ return;
34822
+ }
34823
+ break;
34824
+ case 'SF':
34825
+ if (childTask.endPage > -1 && parentTask.startPage > -1) {
34826
+ startPage = pages[parentTask.startPage];
34827
+ endPage = pages[childTask.endPage];
34828
+ parentPageData = pdfGantt.pdfPageDetail[parentTask.endPage - pdfGantt.chartPageIndex];
34829
+ childPageData = pdfGantt.pdfPageDetail[childTask.startPage - pdfGantt.chartPageIndex];
34830
+ if (this.parentIndex < this.childIndex) {
34831
+ if (this.parentLeft > this.childLeft + this.childWidth) {
34832
+ predecessorType = 'SFType1';
33819
34833
  }
33820
34834
  else {
33821
- if (this.parentLeft > this.childLeft + this.childWidth) {
33822
- predecessorType = 'SFType3';
33823
- }
33824
- else {
33825
- predecessorType = 'SFType4';
33826
- }
34835
+ predecessorType = 'SFType2';
33827
34836
  }
33828
34837
  }
33829
34838
  else {
33830
- return;
34839
+ if (this.parentLeft > this.childLeft + this.childWidth) {
34840
+ predecessorType = 'SFType3';
34841
+ }
34842
+ else {
34843
+ predecessorType = 'SFType4';
34844
+ }
33831
34845
  }
33832
- break;
33833
- case 'FF':
33834
- if (childTask.endPage > -1 && parentTask.endPage > -1) {
33835
- startPage = pages[parentTask.endPage];
33836
- endPage = pages[childTask.endPage];
33837
- parentPageData = pdfGantt.pdfPageDetail[parentTask.endPage - pdfGantt.chartPageIndex];
33838
- childPageData = pdfGantt.pdfPageDetail[childTask.endPage - pdfGantt.chartPageIndex];
33839
- if (this.parentIndex < this.childIndex) {
33840
- if ((this.childLeft + this.childWidth) >= (this.parentLeft + this.parentWidth)) {
33841
- predecessorType = 'FFType1';
33842
- }
33843
- else {
33844
- predecessorType = 'FFType2';
33845
- }
34846
+ }
34847
+ else {
34848
+ return;
34849
+ }
34850
+ break;
34851
+ case 'FF':
34852
+ if (childTask.endPage > -1 && parentTask.endPage > -1) {
34853
+ startPage = pages[parentTask.endPage];
34854
+ endPage = pages[childTask.endPage];
34855
+ parentPageData = pdfGantt.pdfPageDetail[parentTask.endPage - pdfGantt.chartPageIndex];
34856
+ childPageData = pdfGantt.pdfPageDetail[childTask.endPage - pdfGantt.chartPageIndex];
34857
+ if (this.parentIndex < this.childIndex) {
34858
+ if ((this.childLeft + this.childWidth) >= (this.parentLeft + this.parentWidth)) {
34859
+ predecessorType = 'FFType1';
33846
34860
  }
33847
34861
  else {
33848
- if ((this.childLeft + this.childWidth) >= (this.parentLeft + this.parentWidth)) {
33849
- predecessorType = 'FFType3';
33850
- }
33851
- else {
33852
- predecessorType = 'FFType4';
33853
- }
34862
+ predecessorType = 'FFType2';
33854
34863
  }
33855
34864
  }
33856
34865
  else {
33857
- return;
34866
+ if ((this.childLeft + this.childWidth) >= (this.parentLeft + this.parentWidth)) {
34867
+ predecessorType = 'FFType3';
34868
+ }
34869
+ else {
34870
+ predecessorType = 'FFType4';
34871
+ }
33858
34872
  }
33859
- break;
33860
- case 'SS':
33861
- if (childTask.startPage > -1 && parentTask.startPage > -1) {
33862
- startPage = pages[parentTask.startPage];
33863
- endPage = pages[childTask.startPage];
33864
- parentPageData = pdfGantt.pdfPageDetail[parentTask.startPage - pdfGantt.chartPageIndex];
33865
- childPageData = pdfGantt.pdfPageDetail[childTask.startPage - pdfGantt.chartPageIndex];
33866
- if (this.parentIndex < this.childIndex) {
33867
- if (this.parentLeft >= this.childLeft) {
33868
- predecessorType = 'SSType1';
33869
- }
33870
- else {
33871
- predecessorType = 'SSType2';
33872
- }
34873
+ }
34874
+ else {
34875
+ return;
34876
+ }
34877
+ break;
34878
+ case 'SS':
34879
+ if (childTask.startPage > -1 && parentTask.startPage > -1) {
34880
+ startPage = pages[parentTask.startPage];
34881
+ endPage = pages[childTask.startPage];
34882
+ parentPageData = pdfGantt.pdfPageDetail[parentTask.startPage - pdfGantt.chartPageIndex];
34883
+ childPageData = pdfGantt.pdfPageDetail[childTask.startPage - pdfGantt.chartPageIndex];
34884
+ if (this.parentIndex < this.childIndex) {
34885
+ if (this.parentLeft >= this.childLeft) {
34886
+ predecessorType = 'SSType1';
33873
34887
  }
33874
34888
  else {
33875
- if (this.parentLeft >= this.childLeft) {
33876
- predecessorType = 'SSType3';
33877
- }
33878
- else {
33879
- predecessorType = 'SSType4';
33880
- }
34889
+ predecessorType = 'SSType2';
33881
34890
  }
33882
34891
  }
33883
34892
  else {
33884
- return;
34893
+ if (this.parentLeft >= this.childLeft) {
34894
+ predecessorType = 'SSType3';
34895
+ }
34896
+ else {
34897
+ predecessorType = 'SSType4';
34898
+ }
33885
34899
  }
33886
- break;
33887
- }
33888
- var midPoint = Math.round((this.parent.rowHeight - 1) / 2.0);
33889
- midPoint = pixelToPoint(midPoint);
33890
- /* eslint-disable-next-line */
33891
- var point1 = void 0, point2 = void 0, point3 = void 0, point4 = void 0, point5 = void 0, point6 = void 0;
33892
- point1 = point2 = point3 = point4 = point5 = point6 = new PointF();
33893
- var parentTaskpoint = __assign$4({}, parentTask.taskStartPoint);
33894
- var childTaskpoint = __assign$4({}, childTask.taskStartPoint);
33895
- parentY = parentTaskpoint.y + parentPageData.startPoint.y;
33896
- childY = childTaskpoint.y + childPageData.startPoint.y;
33897
- var ffpoint1 = new PointF(pixelToPoint(this.parentLeft + this.parentWidth), parentY + midPoint);
33898
- var sspoint1 = new PointF(pixelToPoint(this.parentLeft) - 1, parentY + midPoint);
33899
- var ffpoint3 = new PointF(pixelToPoint(this.childLeft - 20), childY + midPoint);
33900
- var ffpoint4 = new PointF(pixelToPoint(this.childLeft - 6 - this.lineWidth) - 1, childY + midPoint);
33901
- var sspoint4 = new PointF(pixelToPoint(this.childLeft + this.childWidth + 6 + this.lineWidth) + 1, childY + midPoint);
33902
- switch (predecessorType) {
33903
- case 'FSType1':
33904
- case 'FSType3':
33905
- point1 = ffpoint1;
33906
- point2 = new PointF(pixelToPoint(this.childLeft - 20), parentY + midPoint);
33907
- point3 = ffpoint3;
33908
- point4 = ffpoint4;
33909
- this.connectLines(startPage, endPage, point1, point2, point3, point4, childTask, midPoint);
33910
- break;
33911
- case 'FSType2':
33912
- point1 = ffpoint1;
33913
- point2 = new PointF(point1.x + 10, parentY + midPoint);
33914
- point3 = new PointF(point1.x + 10, childY + 2);
33915
- point4 = new PointF(pixelToPoint(this.childLeft - 20), childY + 2);
33916
- point5 = ffpoint3;
33917
- point6 = ffpoint4;
33918
- this.connectLines(startPage, endPage, point1, point2, point3, point4, childTask, midPoint, point5, point6);
33919
- break;
33920
- case 'FSType4':
33921
- point1 = ffpoint1;
33922
- point2 = new PointF(point1.x + 10, parentY + midPoint);
33923
- point3 = new PointF(point1.x + 10, parentY + 2);
33924
- point4 = new PointF(pixelToPoint(this.childLeft - 20), parentY + 2);
33925
- point5 = ffpoint3;
33926
- point6 = ffpoint4;
33927
- this.connectLines(startPage, endPage, point1, point2, point3, point4, childTask, midPoint, point5, point6);
33928
- break;
33929
- case 'FFType1':
33930
- case 'FFType3':
33931
- point1 = new PointF(pixelToPoint(this.parentLeft + this.parentWidth) + 1, parentY + midPoint);
33932
- point2 = new PointF(pixelToPoint(this.childLeft + this.childWidth + 20), parentY + midPoint);
33933
- point3 = new PointF(point2.x, childY + midPoint);
33934
- point4 = sspoint4;
33935
- this.connectLines(startPage, endPage, point1, point2, point3, point4, childTask, midPoint);
33936
- break;
33937
- case 'FFType2':
33938
- case 'FFType4':
33939
- point1 = new PointF(pixelToPoint(this.parentLeft + this.parentWidth) + 1, parentY + midPoint);
33940
- point2 = new PointF(pixelToPoint(this.parentLeft + this.parentWidth + 20), parentY + midPoint);
33941
- point3 = new PointF(point2.x, childY + midPoint);
33942
- point4 = sspoint4;
33943
- this.connectLines(startPage, endPage, point1, point2, point3, point4, childTask, midPoint);
33944
- break;
33945
- case 'SSType1':
33946
- case 'SSType3':
33947
- point1 = sspoint1;
33948
- point2 = new PointF(pixelToPoint(this.childLeft - 20), parentY + midPoint);
33949
- point3 = new PointF(point2.x, childY + midPoint);
33950
- point4 = ffpoint4;
33951
- this.connectLines(startPage, endPage, point1, point2, point3, point4, childTask, midPoint);
33952
- break;
33953
- case 'SSType2':
33954
- case 'SSType4':
33955
- point1 = sspoint1;
33956
- point2 = new PointF(pixelToPoint(this.parentLeft - 20), parentY + midPoint);
33957
- point3 = new PointF(point2.x, childY + midPoint);
33958
- point4 = ffpoint4;
33959
- this.connectLines(startPage, endPage, point1, point2, point3, point4, childTask, midPoint);
33960
- break;
33961
- case 'SFType1':
33962
- case 'SFType3':
33963
- point1 = sspoint1;
33964
- point2 = new PointF(pixelToPoint(this.childLeft + this.childWidth + 20), parentY + midPoint);
33965
- point3 = new PointF(point2.x, childY + midPoint);
33966
- point4 = sspoint4;
33967
- this.connectLines(startPage, endPage, point1, point2, point3, point4, childTask, midPoint);
33968
- break;
33969
- case 'SFType2':
33970
- point1 = sspoint1;
33971
- point2 = new PointF(pixelToPoint(this.parentLeft - 20), parentY + midPoint);
33972
- point3 = new PointF(point2.x, childY + 2);
33973
- point4 = new PointF(pixelToPoint(this.childLeft + this.childWidth + 20), childY + 2);
33974
- point5 = new PointF(point4.x, childY + midPoint);
33975
- point6 = sspoint4;
33976
- this.connectLines(startPage, endPage, point1, point2, point3, point4, childTask, midPoint, point5, point6);
33977
- break;
33978
- case 'SFType4':
33979
- point1 = sspoint1;
33980
- point2 = new PointF(pixelToPoint(this.parentLeft - 20), parentY + midPoint);
33981
- point3 = new PointF(point2.x, parentY + 2);
33982
- point4 = new PointF(pixelToPoint(this.childLeft + this.childWidth + 20), parentY + 2);
33983
- point5 = new PointF(point4.x, childY + midPoint);
33984
- point6 = sspoint4;
33985
- this.connectLines(startPage, endPage, point1, point2, point3, point4, childTask, midPoint, point5, point6);
33986
- break;
33987
- }
34900
+ }
34901
+ else {
34902
+ return;
34903
+ }
34904
+ break;
34905
+ }
34906
+ var midPoint = Math.round((this.parent.rowHeight - 1) / 2.0);
34907
+ midPoint = pixelToPoint(midPoint);
34908
+ /* eslint-disable-next-line */
34909
+ var point1, point2, point3, point4, point5, point6;
34910
+ point1 = point2 = point3 = point4 = point5 = point6 = new PointF();
34911
+ var parentTaskpoint = __assign$4({}, parentTask.taskStartPoint);
34912
+ var childTaskpoint = __assign$4({}, childTask.taskStartPoint);
34913
+ parentY = parentTaskpoint.y + parentPageData.startPoint.y;
34914
+ childY = childTaskpoint.y + childPageData.startPoint.y;
34915
+ var ffpoint1 = new PointF(pixelToPoint(this.parentLeft + this.parentWidth), parentY + midPoint);
34916
+ var sspoint1 = new PointF(pixelToPoint(this.parentLeft) - 1, parentY + midPoint);
34917
+ var ffpoint3 = new PointF(pixelToPoint(this.childLeft - 20), childY + midPoint);
34918
+ var ffpoint4 = new PointF(pixelToPoint(this.childLeft - 6 - this.lineWidth) - 1, childY + midPoint);
34919
+ var sspoint4 = new PointF(pixelToPoint(this.childLeft + this.childWidth + 6 + this.lineWidth) + 1, childY + midPoint);
34920
+ switch (predecessorType) {
34921
+ case 'FSType1':
34922
+ case 'FSType3':
34923
+ point1 = ffpoint1;
34924
+ point2 = new PointF(pixelToPoint(this.childLeft - 20), parentY + midPoint);
34925
+ point3 = ffpoint3;
34926
+ point4 = ffpoint4;
34927
+ this.connectLines(startPage, endPage, point1, point2, point3, point4, childTask, midPoint);
34928
+ break;
34929
+ case 'FSType2':
34930
+ point1 = ffpoint1;
34931
+ point2 = new PointF(point1.x + 10, parentY + midPoint);
34932
+ point3 = new PointF(point1.x + 10, childY + 2);
34933
+ point4 = new PointF(pixelToPoint(this.childLeft - 20), childY + 2);
34934
+ point5 = ffpoint3;
34935
+ point6 = ffpoint4;
34936
+ this.connectLines(startPage, endPage, point1, point2, point3, point4, childTask, midPoint, point5, point6);
34937
+ break;
34938
+ case 'FSType4':
34939
+ point1 = ffpoint1;
34940
+ point2 = new PointF(point1.x + 10, parentY + midPoint);
34941
+ point3 = new PointF(point1.x + 10, parentY + 2);
34942
+ point4 = new PointF(pixelToPoint(this.childLeft - 20), parentY + 2);
34943
+ point5 = ffpoint3;
34944
+ point6 = ffpoint4;
34945
+ this.connectLines(startPage, endPage, point1, point2, point3, point4, childTask, midPoint, point5, point6);
34946
+ break;
34947
+ case 'FFType1':
34948
+ case 'FFType3':
34949
+ point1 = new PointF(pixelToPoint(this.parentLeft + this.parentWidth) + 1, parentY + midPoint);
34950
+ point2 = new PointF(pixelToPoint(this.childLeft + this.childWidth + 20), parentY + midPoint);
34951
+ point3 = new PointF(point2.x, childY + midPoint);
34952
+ point4 = sspoint4;
34953
+ this.connectLines(startPage, endPage, point1, point2, point3, point4, childTask, midPoint);
34954
+ break;
34955
+ case 'FFType2':
34956
+ case 'FFType4':
34957
+ point1 = new PointF(pixelToPoint(this.parentLeft + this.parentWidth) + 1, parentY + midPoint);
34958
+ point2 = new PointF(pixelToPoint(this.parentLeft + this.parentWidth + 20), parentY + midPoint);
34959
+ point3 = new PointF(point2.x, childY + midPoint);
34960
+ point4 = sspoint4;
34961
+ this.connectLines(startPage, endPage, point1, point2, point3, point4, childTask, midPoint);
34962
+ break;
34963
+ case 'SSType1':
34964
+ case 'SSType3':
34965
+ point1 = sspoint1;
34966
+ point2 = new PointF(pixelToPoint(this.childLeft - 20), parentY + midPoint);
34967
+ point3 = new PointF(point2.x, childY + midPoint);
34968
+ point4 = ffpoint4;
34969
+ this.connectLines(startPage, endPage, point1, point2, point3, point4, childTask, midPoint);
34970
+ break;
34971
+ case 'SSType2':
34972
+ case 'SSType4':
34973
+ point1 = sspoint1;
34974
+ point2 = new PointF(pixelToPoint(this.parentLeft - 20), parentY + midPoint);
34975
+ point3 = new PointF(point2.x, childY + midPoint);
34976
+ point4 = ffpoint4;
34977
+ this.connectLines(startPage, endPage, point1, point2, point3, point4, childTask, midPoint);
34978
+ break;
34979
+ case 'SFType1':
34980
+ case 'SFType3':
34981
+ point1 = sspoint1;
34982
+ point2 = new PointF(pixelToPoint(this.childLeft + this.childWidth + 20), parentY + midPoint);
34983
+ point3 = new PointF(point2.x, childY + midPoint);
34984
+ point4 = sspoint4;
34985
+ this.connectLines(startPage, endPage, point1, point2, point3, point4, childTask, midPoint);
34986
+ break;
34987
+ case 'SFType2':
34988
+ point1 = sspoint1;
34989
+ point2 = new PointF(pixelToPoint(this.parentLeft - 20), parentY + midPoint);
34990
+ point3 = new PointF(point2.x, childY + 2);
34991
+ point4 = new PointF(pixelToPoint(this.childLeft + this.childWidth + 20), childY + 2);
34992
+ point5 = new PointF(point4.x, childY + midPoint);
34993
+ point6 = sspoint4;
34994
+ this.connectLines(startPage, endPage, point1, point2, point3, point4, childTask, midPoint, point5, point6);
34995
+ break;
34996
+ case 'SFType4':
34997
+ point1 = sspoint1;
34998
+ point2 = new PointF(pixelToPoint(this.parentLeft - 20), parentY + midPoint);
34999
+ point3 = new PointF(point2.x, parentY + 2);
35000
+ point4 = new PointF(pixelToPoint(this.childLeft + this.childWidth + 20), parentY + 2);
35001
+ point5 = new PointF(point4.x, childY + midPoint);
35002
+ point6 = sspoint4;
35003
+ this.connectLines(startPage, endPage, point1, point2, point3, point4, childTask, midPoint, point5, point6);
35004
+ break;
33988
35005
  }
33989
35006
  };
33990
35007
  /**
@@ -34166,7 +35183,7 @@ var PdfGanttPredecessor = /** @__PURE__ @class */ (function () {
34166
35183
  return PdfGanttPredecessor;
34167
35184
  }());
34168
35185
 
34169
- var __extends$22 = (undefined && undefined.__extends) || (function () {
35186
+ var __extends$23 = (undefined && undefined.__extends) || (function () {
34170
35187
  var extendStatics = function (d, b) {
34171
35188
  extendStatics = Object.setPrototypeOf ||
34172
35189
  ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
@@ -34194,7 +35211,7 @@ var __assign$2 = (undefined && undefined.__assign) || function () {
34194
35211
  *
34195
35212
  */
34196
35213
  var PdfGantt = /** @__PURE__ @class */ (function (_super) {
34197
- __extends$22(PdfGantt, _super);
35214
+ __extends$23(PdfGantt, _super);
34198
35215
  function PdfGantt(parent) {
34199
35216
  var _this = _super.call(this) || this;
34200
35217
  _this.exportProps = {};
@@ -34501,6 +35518,12 @@ var PdfExport = /** @__PURE__ @class */ (function () {
34501
35518
  cancel: false
34502
35519
  };
34503
35520
  this.parent.trigger('beforePdfExport', args);
35521
+ if (!isNullOrUndefined(this.parent.loadingIndicator) && this.parent.loadingIndicator.indicatorType === "Shimmer") {
35522
+ this.parent.showMaskRow();
35523
+ }
35524
+ else {
35525
+ this.parent.showSpinner();
35526
+ }
34504
35527
  if (getValue('cancel', args)) {
34505
35528
  /* eslint-disable-next-line */
34506
35529
  return new Promise(function (resolve, reject) {
@@ -34533,6 +35556,12 @@ var PdfExport = /** @__PURE__ @class */ (function () {
34533
35556
  }
34534
35557
  this.processExport(data, pdfExportProperties, isMultipleExport).then(function () {
34535
35558
  _this.parent.trigger('pdfExportComplete', {});
35559
+ if (!isNullOrUndefined(_this.parent.loadingIndicator) && _this.parent.loadingIndicator.indicatorType === "Shimmer") {
35560
+ _this.parent.hideMaskRow();
35561
+ }
35562
+ else {
35563
+ _this.parent.hideSpinner();
35564
+ }
34536
35565
  resolve(_this.pdfDocument);
34537
35566
  });
34538
35567
  };
@@ -34723,5 +35752,5 @@ var VirtualScroll$1 = /** @__PURE__ @class */ (function () {
34723
35752
  * Gantt index file
34724
35753
  */
34725
35754
 
34726
- export { Gantt, PdfHorizontalOverflowType, parentsUntil$1 as parentsUntil, isScheduledTask, isCountRequired, getSwapKey, isRemoteData, getTaskData, updateDates, formatString, getIndex, pixelToPoint, pointToPixel, getUid$1 as getUid, load, rowDataBound, queryCellInfo, toolbarClick, keyPressed, Edit$2 as Edit, Reorder$1 as Reorder, Resize$1 as Resize, Filter$1 as Filter, Sort$1 as Sort, Dependency, Selection$1 as Selection, Toolbar$3 as Toolbar, DayMarkers, CriticalPath, ContextMenu$2 as ContextMenu, ExcelExport$1 as ExcelExport, ColumnMenu$1 as ColumnMenu, RowDD$1 as RowDD, PdfExport, VirtualScroll$1 as VirtualScroll, Column, DayWorkingTime, AddDialogFieldSettings, EditDialogFieldSettings, EditSettings, EventMarker, FilterSettings, SearchSettings, Holiday, LabelSettings, SelectionSettings, SplitterSettings, TaskFields, TimelineTierSettings, TimelineSettings, TooltipSettings, SortDescriptor, SortSettings, ResourceFields };
35755
+ export { Gantt, PdfHorizontalOverflowType, parentsUntil$1 as parentsUntil, isScheduledTask, isCountRequired, getSwapKey, isRemoteData, getTaskData, updateDates, formatString, getIndex, pixelToPoint, pointToPixel, getUid$1 as getUid, load, rowDataBound, queryCellInfo, toolbarClick, keyPressed, Edit$2 as Edit, Reorder$1 as Reorder, Resize$1 as Resize, Filter$1 as Filter, Sort$1 as Sort, Dependency, Selection$1 as Selection, Toolbar$3 as Toolbar, DayMarkers, CriticalPath, ContextMenu$2 as ContextMenu, ExcelExport$1 as ExcelExport, ColumnMenu$1 as ColumnMenu, RowDD$1 as RowDD, PdfExport, VirtualScroll$1 as VirtualScroll, Column, DayWorkingTime, AddDialogFieldSettings, EditDialogFieldSettings, EditSettings, EventMarker, FilterSettings, SearchSettings, Holiday, LabelSettings, SelectionSettings, SplitterSettings, TaskFields, TimelineTierSettings, TimelineSettings, TooltipSettings, SortDescriptor, SortSettings, ResourceFields, LoadingIndicator };
34727
35756
  //# sourceMappingURL=ej2-gantt.es5.js.map