@syncfusion/ej2-gantt 20.3.60 → 20.4.38

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 (105) hide show
  1. package/.eslintrc.json +16 -1
  2. package/CHANGELOG.md +14 -0
  3. package/dist/ej2-gantt.min.js +2 -2
  4. package/dist/ej2-gantt.umd.min.js +2 -2
  5. package/dist/ej2-gantt.umd.min.js.map +1 -1
  6. package/dist/es6/ej2-gantt.es2015.js +1422 -476
  7. package/dist/es6/ej2-gantt.es2015.js.map +1 -1
  8. package/dist/es6/ej2-gantt.es5.js +1448 -484
  9. package/dist/es6/ej2-gantt.es5.js.map +1 -1
  10. package/dist/global/ej2-gantt.min.js +2 -2
  11. package/dist/global/ej2-gantt.min.js.map +1 -1
  12. package/dist/global/index.d.ts +1 -1
  13. package/package.json +19 -18
  14. package/src/gantt/actions/chart-scroll.d.ts +5 -1
  15. package/src/gantt/actions/chart-scroll.js +39 -1
  16. package/src/gantt/actions/connector-line-edit.js +2 -0
  17. package/src/gantt/actions/context-menu.js +36 -5
  18. package/src/gantt/actions/critical-path.d.ts +2 -2
  19. package/src/gantt/actions/critical-path.js +23 -16
  20. package/src/gantt/actions/dialog-edit.js +37 -14
  21. package/src/gantt/actions/edit.d.ts +1 -0
  22. package/src/gantt/actions/edit.js +156 -34
  23. package/src/gantt/actions/excel-export.js +13 -0
  24. package/src/gantt/actions/filter.js +3 -0
  25. package/src/gantt/actions/keyboard.js +1 -0
  26. package/src/gantt/actions/pdf-export.js +12 -0
  27. package/src/gantt/actions/rowdragdrop.js +8 -2
  28. package/src/gantt/actions/taskbar-edit.js +140 -43
  29. package/src/gantt/actions/toolbar.js +21 -1
  30. package/src/gantt/base/date-processor.js +5 -1
  31. package/src/gantt/base/gantt-chart.js +38 -4
  32. package/src/gantt/base/gantt-model.d.ts +25 -2
  33. package/src/gantt/base/gantt.d.ts +64 -21
  34. package/src/gantt/base/gantt.js +396 -26
  35. package/src/gantt/base/interface.d.ts +0 -4
  36. package/src/gantt/base/splitter.js +12 -2
  37. package/src/gantt/base/task-processor.js +4 -3
  38. package/src/gantt/base/tree-grid.js +37 -0
  39. package/src/gantt/base/utils.js +1 -0
  40. package/src/gantt/export/pdf-connector-line.js +185 -187
  41. package/src/gantt/models/loading-indicator-model.d.ts +20 -0
  42. package/src/gantt/models/loading-indicator.d.ts +18 -0
  43. package/src/gantt/models/loading-indicator.js +34 -0
  44. package/src/gantt/models/models.d.ts +2 -0
  45. package/src/gantt/models/models.js +1 -0
  46. package/src/gantt/renderer/chart-rows.js +75 -30
  47. package/src/gantt/renderer/connector-line.js +100 -97
  48. package/src/gantt/renderer/edit-tooltip.js +22 -3
  49. package/src/gantt/renderer/event-marker.js +15 -2
  50. package/src/gantt/renderer/nonworking-day.js +4 -2
  51. package/src/gantt/renderer/timeline.js +21 -1
  52. package/src/gantt/renderer/tooltip.js +1 -0
  53. package/styles/bootstrap-dark.css +179 -12
  54. package/styles/bootstrap.css +179 -12
  55. package/styles/bootstrap4.css +178 -10
  56. package/styles/bootstrap5-dark.css +178 -10
  57. package/styles/bootstrap5.css +178 -10
  58. package/styles/fabric-dark.css +179 -12
  59. package/styles/fabric.css +179 -12
  60. package/styles/fluent-dark.css +180 -10
  61. package/styles/fluent.css +180 -10
  62. package/styles/gantt/_bootstrap-dark-definition.scss +6 -2
  63. package/styles/gantt/_bootstrap-definition.scss +6 -3
  64. package/styles/gantt/_bootstrap4-definition.scss +6 -3
  65. package/styles/gantt/_bootstrap5-definition.scss +6 -3
  66. package/styles/gantt/_fabric-dark-definition.scss +6 -3
  67. package/styles/gantt/_fabric-definition.scss +6 -3
  68. package/styles/gantt/_fluent-definition.scss +6 -3
  69. package/styles/gantt/_fusionnew-definition.scss +6 -3
  70. package/styles/gantt/_highcontrast-definition.scss +7 -4
  71. package/styles/gantt/_highcontrast-light-definition.scss +6 -3
  72. package/styles/gantt/_layout.scss +234 -21
  73. package/styles/gantt/_material-dark-definition.scss +6 -3
  74. package/styles/gantt/_material-definition.scss +6 -3
  75. package/styles/gantt/_material3-definition.scss +6 -3
  76. package/styles/gantt/_tailwind-definition.scss +6 -3
  77. package/styles/gantt/_theme.scss +17 -8
  78. package/styles/gantt/bootstrap-dark.css +179 -12
  79. package/styles/gantt/bootstrap.css +179 -12
  80. package/styles/gantt/bootstrap4.css +178 -10
  81. package/styles/gantt/bootstrap5-dark.css +178 -10
  82. package/styles/gantt/bootstrap5.css +178 -10
  83. package/styles/gantt/fabric-dark.css +179 -12
  84. package/styles/gantt/fabric.css +179 -12
  85. package/styles/gantt/fluent-dark.css +180 -10
  86. package/styles/gantt/fluent.css +180 -10
  87. package/styles/gantt/highcontrast-light.css +178 -10
  88. package/styles/gantt/highcontrast.css +179 -12
  89. package/styles/gantt/icons/_bootstrap-dark.scss +1 -1
  90. package/styles/gantt/icons/_bootstrap.scss +1 -1
  91. package/styles/gantt/icons/_fabric-dark.scss +1 -1
  92. package/styles/gantt/icons/_fabric.scss +1 -1
  93. package/styles/gantt/icons/_highcontrast.scss +1 -1
  94. package/styles/gantt/icons/_material-dark.scss +1 -1
  95. package/styles/gantt/icons/_material.scss +1 -1
  96. package/styles/gantt/material-dark.css +177 -12
  97. package/styles/gantt/material.css +179 -12
  98. package/styles/gantt/tailwind-dark.css +178 -10
  99. package/styles/gantt/tailwind.css +178 -10
  100. package/styles/highcontrast-light.css +178 -10
  101. package/styles/highcontrast.css +179 -12
  102. package/styles/material-dark.css +177 -12
  103. package/styles/material.css +179 -12
  104. package/styles/tailwind-dark.css +178 -10
  105. 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
  }
@@ -414,6 +415,10 @@ var DateProcessor = /** @__PURE__ @class */ (function () {
414
415
  }
415
416
  }
416
417
  }
418
+ if (ganttProp && ganttProp.baselineStartDate && cloneDate &&
419
+ ganttProp.baselineStartDate.getTime() > cloneDate.getTime()) {
420
+ cloneDate.setDate(cloneDate.getDate() + 1);
421
+ }
417
422
  return cloneDate;
418
423
  }
419
424
  };
@@ -484,7 +489,7 @@ var DateProcessor = /** @__PURE__ @class */ (function () {
484
489
  tDuration = this.parent.editModule.taskbarEditModule.sumOfDuration(ganttProperties.segments);
485
490
  }
486
491
  else {
487
- if (!isNullOrUndefined(ganttProperties.startDate) && !isNullOrUndefined(ganttProperties.endDate) &&
492
+ if ((!isNullOrUndefined(this.parent.taskFields.milestone)) && (!isNullOrUndefined(ganttProperties.startDate)) && !isNullOrUndefined(ganttProperties.endDate) &&
488
493
  (ganttProperties.startDate).getTime() === (ganttProperties.endDate).getTime() && !isNullOrUndefined(ganttData.taskData[this.parent.taskFields.milestone])) {
489
494
  tDuration = 1;
490
495
  }
@@ -1883,7 +1888,6 @@ var TaskProcessor = /** @__PURE__ @class */ (function (_super) {
1883
1888
  this.parent.setRecordValue('parentId', data[taskSettings.parentID], ganttProperties, true);
1884
1889
  }
1885
1890
  this.addCustomFieldValue(data, ganttData);
1886
- ganttData.checkboxState = 'uncheck';
1887
1891
  this.parent.setRecordValue('isAutoSchedule', autoSchedule, ganttProperties, true);
1888
1892
  this.parent.setRecordValue('resourceInfo', this.setResourceInfo(data), ganttProperties, true);
1889
1893
  this.parent.setRecordValue('isMilestone', false, ganttProperties, true);
@@ -2075,8 +2079,10 @@ var TaskProcessor = /** @__PURE__ @class */ (function (_super) {
2075
2079
  taskData.push(this.setSegmentTaskData(segment, segments[i]));
2076
2080
  }
2077
2081
  this.parent.setRecordValue('duration', sumOfDuration, data.ganttProperties, true);
2078
- this.parent.setRecordValue('endDate', ganttSegments[ganttSegments.length - 1].endDate, data.ganttProperties, true);
2079
- 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])) {
2080
2086
  this.parent.setRecordValue(this.parent.taskFields.endDate, ganttSegments[ganttSegments.length - 1].endDate, data, true);
2081
2087
  }
2082
2088
  this.parent.setRecordValue('taskData.' + this.parent.taskFields.segments, taskData, data);
@@ -4001,6 +4007,8 @@ var ChartScroll = /** @__PURE__ @class */ (function () {
4001
4007
  ChartScroll.prototype.addEventListeners = function () {
4002
4008
  this.parent.on('grid-scroll', this.gridScrollHandler, this);
4003
4009
  EventHandler.add(this.element, 'scroll', this.onScroll, this);
4010
+ this.parent.treeGrid.grid.on('showGanttShimmer', this.updateShimmer, this);
4011
+ this.parent.treeGrid.grid.on('removeGanttShimmer', this.removeShimmer, this);
4004
4012
  };
4005
4013
  /**
4006
4014
  * Unbind events
@@ -4010,6 +4018,8 @@ var ChartScroll = /** @__PURE__ @class */ (function () {
4010
4018
  ChartScroll.prototype.removeEventListeners = function () {
4011
4019
  EventHandler.remove(this.element, 'scroll', this.onScroll);
4012
4020
  this.parent.off('grid-scroll', this.gridScrollHandler);
4021
+ this.parent.treeGrid.grid.off('showGanttShimmer', this.updateShimmer);
4022
+ this.parent.treeGrid.grid.off('removeGanttShimmer', this.removeShimmer);
4013
4023
  };
4014
4024
  /**
4015
4025
  *
@@ -4055,6 +4065,27 @@ var ChartScroll = /** @__PURE__ @class */ (function () {
4055
4065
  this.parent.chartVerticalLineContainer.style.top = formatUnit(scrollTop);
4056
4066
  }
4057
4067
  };
4068
+ ChartScroll.prototype.removeShimmer = function () {
4069
+ var parent = this.parent;
4070
+ setTimeout(function () {
4071
+ parent.hideMaskRow();
4072
+ }, 0);
4073
+ };
4074
+
4075
+ ChartScroll.prototype.updateShimmer = function () {
4076
+ var parent = this.parent;
4077
+ setTimeout(function () {
4078
+ parent.showMaskRow();
4079
+ }, 0);
4080
+ };
4081
+ ChartScroll.prototype.updateSpinner = function () {
4082
+ var parent = this.parent;
4083
+ this.parent.showSpinner();
4084
+ window.clearTimeout(this.isScrolling);
4085
+ this.isScrolling = setTimeout(function () {
4086
+ parent.hideSpinner();
4087
+ }, 200);
4088
+ };
4058
4089
  /**
4059
4090
  * Scroll event handler
4060
4091
  *
@@ -4080,6 +4111,16 @@ var ChartScroll = /** @__PURE__ @class */ (function () {
4080
4111
  scrollArgs.scrollDirection = 'Horizontal';
4081
4112
  scrollArgs.action = 'HorizontalScroll';
4082
4113
  }
4114
+ if ((scrollArgs.scrollDirection != 'Horizontal' && !isNullOrUndefined(scrollArgs.scrollDirection)) && this.parent.enableVirtualization === true && (this.parent.isToolBarClick
4115
+ || isNullOrUndefined(this.parent.isToolBarClick))) {
4116
+ this.parent.isVirtualScroll = true;
4117
+ if (this.parent.showIndicator || isNullOrUndefined(this.parent.showIndicator)) {
4118
+ if (!this.parent.enableVirtualMaskRow && this.parent.enableVirtualization && this.parent.loadingIndicator.indicatorType === "Spinner") {
4119
+ this.updateSpinner();
4120
+ }
4121
+ }
4122
+ }
4123
+ this.parent.isToolBarClick = true;
4083
4124
  scrollArgs.requestType = 'scroll';
4084
4125
  this.parent.trigger('actionComplete', scrollArgs);
4085
4126
  };
@@ -4120,7 +4161,10 @@ var ChartScroll = /** @__PURE__ @class */ (function () {
4120
4161
  * @param {number} scrollLeft - To set scroll left for scroll container
4121
4162
  * @returns {void} .
4122
4163
  */
4123
- ChartScroll.prototype.setScrollLeft = function (scrollLeft) {
4164
+ ChartScroll.prototype.setScrollLeft = function (scrollLeft, leftSign) {
4165
+ if (leftSign) {
4166
+ scrollLeft = leftSign == -1 && this.parent.enableRtl ? -scrollLeft : scrollLeft;
4167
+ }
4124
4168
  this.element.scrollLeft = scrollLeft;
4125
4169
  this.parent.ganttChartModule.chartTimelineContainer.scrollLeft = this.element.scrollLeft;
4126
4170
  this.previousScroll.left = this.element.scrollLeft;
@@ -4269,6 +4313,21 @@ var GanttChart = /** @__PURE__ @class */ (function () {
4269
4313
  this.parent.predecessorModule.createConnectorLinesCollection();
4270
4314
  }
4271
4315
  this.parent.connectorLineModule.renderConnectorLines(this.parent.updatedConnectorLineCollection);
4316
+ for (var i = 0; i < this.parent.chartRowsModule.ganttChartTableBody.children.length; i++) {
4317
+ if (this.parent.chartRowsModule.ganttChartTableBody.children[i].children[0].children[1].children[4]) {
4318
+ this.parent.chartRowsModule.ganttChartTableBody.children[i].children[0].children[1].children[1].setAttribute('tabindex', '-1');
4319
+ this.parent.chartRowsModule.ganttChartTableBody.children[i].children[0].children[1].children[2].setAttribute('tabindex', '-1');
4320
+ this.parent.chartRowsModule.ganttChartTableBody.children[i].children[0].children[1].children[4].setAttribute('tabindex', '-1');
4321
+ }
4322
+ else {
4323
+ if (this.parent.viewType === 'ProjectView') {
4324
+ this.parent.chartRowsModule.ganttChartTableBody.children[i].children[0].children[1].children[1].setAttribute('tabindex', '-1');
4325
+ }
4326
+ else if (this.parent.chartRowsModule.ganttChartTableBody.children[i].children[0].children[1].children[0]) {
4327
+ this.parent.chartRowsModule.ganttChartTableBody.children[i].children[0].children[1].children[0].setAttribute('tabindex', '-1');
4328
+ }
4329
+ }
4330
+ }
4272
4331
  if (this.parent.enableCriticalPath) {
4273
4332
  var crtiticalModule = this.parent.criticalPathModule;
4274
4333
  this.parent.criticalPathModule.criticalConnectorLine(crtiticalModule.criticalPathCollection, crtiticalModule.detailPredecessorCollection, this.parent.enableCriticalPath, crtiticalModule.predecessorCollectionTaskIds);
@@ -4332,11 +4391,13 @@ var GanttChart = /** @__PURE__ @class */ (function () {
4332
4391
  for (var i = 0; i < rangeCollection.length; i++) {
4333
4392
  var height = this.getRangeHeight(currentRecord);
4334
4393
  var leftDiv = createElement('div', {
4335
- 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"
4394
+ className: rangeChildContainer + ' ' + 'e-leftarc', styles: (this.parent.enableRtl ? 'right:' : 'left:') +
4395
+ ((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")
4336
4396
  });
4337
4397
  var rightDiv = createElement('div', {
4338
4398
  className: rangeChildContainer + ' ' + 'e-rightarc',
4339
- 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"
4399
+ styles: (this.parent.enableRtl ? 'right:' : 'left:') + ((this.parent.enableRtl ? rangeCollection[i].left :
4400
+ 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")
4340
4401
  });
4341
4402
  parentDiv.appendChild(leftDiv);
4342
4403
  parentDiv.appendChild(rightDiv);
@@ -4351,6 +4412,10 @@ var GanttChart = /** @__PURE__ @class */ (function () {
4351
4412
  GanttChart.prototype.renderTimelineContainer = function () {
4352
4413
  this.chartTimelineContainer =
4353
4414
  createElement('div', { className: timelineHeaderContainer });
4415
+ if (this.parent.enableRtl) {
4416
+ this.chartTimelineContainer.style.borderLeftWidth = '1px';
4417
+ this.chartTimelineContainer.style.borderRightWidth = '0px';
4418
+ }
4354
4419
  this.chartTimelineContainer.setAttribute("role", "presentation");
4355
4420
  this.chartElement.appendChild(this.chartTimelineContainer);
4356
4421
  };
@@ -4523,7 +4588,7 @@ var GanttChart = /** @__PURE__ @class */ (function () {
4523
4588
  scrollLeft = this.scrollElement.scrollWidth <= scrollLeft ? this.scrollElement.scrollWidth : scrollLeft;
4524
4589
  if ((this.scrollElement.offsetWidth + this.parent.ganttChartModule.scrollElement.scrollLeft) < scrollLeft
4525
4590
  || (this.scrollElement.scrollLeft > scrollLeft)) {
4526
- this.scrollObject.setScrollLeft(scrollLeft - 50);
4591
+ this.scrollObject.setScrollLeft(scrollLeft - 50, this.parent.enableRtl ? -1 : 0);
4527
4592
  }
4528
4593
  // this.parent.ganttChartModule.scrollObject.updateLeftPosition();
4529
4594
  };
@@ -4558,6 +4623,12 @@ var GanttChart = /** @__PURE__ @class */ (function () {
4558
4623
  */
4559
4624
  GanttChart.prototype.documentMouseUp = function (e) {
4560
4625
  this.isGanttElement = true;
4626
+ if (e.target.classList.contains('e-treegridexpand') ||
4627
+ e.target.classList.contains('e-treegridcollapse')) {
4628
+ if (getValue('isEditCollapse', this.parent.treeGrid) === true) {
4629
+ setValue('isEditCollapse', false, this.parent.treeGrid);
4630
+ }
4631
+ }
4561
4632
  if (this.parent.allowRowDragAndDrop) {
4562
4633
  var ganttDragElemet = this.parent.element.querySelector('.e-ganttdrag');
4563
4634
  if (ganttDragElemet) {
@@ -4575,6 +4646,13 @@ var GanttChart = /** @__PURE__ @class */ (function () {
4575
4646
  }
4576
4647
  this.parent.notify('chartMouseUp', e);
4577
4648
  if (this.parent.showActiveElement) {
4649
+ this.parent.showIndicator = true;
4650
+ if (!isNullOrUndefined(this.parent.loadingIndicator) && this.parent.loadingIndicator.indicatorType === "Shimmer") {
4651
+ this.parent.hideMaskRow();
4652
+ }
4653
+ else {
4654
+ this.parent.hideSpinner();
4655
+ }
4578
4656
  if (this.focusedElement && !e.target.classList.contains('e-split-bar')) {
4579
4657
  this.focusedElement.tabIndex = this.focusedElement.tabIndex === 0 ? -1 : this.focusedElement.tabIndex;
4580
4658
  removeClass([this.focusedElement], 'e-active-container');
@@ -5594,6 +5672,12 @@ var Timeline = /** @__PURE__ @class */ (function () {
5594
5672
  cancel: false
5595
5673
  };
5596
5674
  this.parent.trigger('actionBegin', args);
5675
+ if (!isNullOrUndefined(this.parent.loadingIndicator) && this.parent.loadingIndicator.indicatorType === "Shimmer") {
5676
+ this.parent.showMaskRow();
5677
+ }
5678
+ else {
5679
+ this.parent.showSpinner();
5680
+ }
5597
5681
  if (!args.cancel) {
5598
5682
  newTimeline = args.timeline;
5599
5683
  this.changeTimelineSettings(newTimeline);
@@ -5635,6 +5719,12 @@ var Timeline = /** @__PURE__ @class */ (function () {
5635
5719
  timeline: this.parent.currentZoomingLevel
5636
5720
  };
5637
5721
  this.parent.trigger('actionComplete', args);
5722
+ if (!isNullOrUndefined(this.parent.loadingIndicator) && this.parent.loadingIndicator.indicatorType === "Shimmer") {
5723
+ this.parent.hideMaskRow();
5724
+ }
5725
+ else {
5726
+ this.parent.hideSpinner();
5727
+ }
5638
5728
  }
5639
5729
  };
5640
5730
  /**
@@ -5702,6 +5792,12 @@ var Timeline = /** @__PURE__ @class */ (function () {
5702
5792
  this.parent.toolbarModule.enableItems([this.parent.controlId + '_zoomin', this.parent.controlId + '_zoomout'], true);
5703
5793
  }
5704
5794
  this.parent.trigger('actionBegin', args);
5795
+ if (!isNullOrUndefined(this.parent.loadingIndicator) && this.parent.loadingIndicator.indicatorType === "Shimmer") {
5796
+ this.parent.showMaskRow();
5797
+ }
5798
+ else {
5799
+ this.parent.showSpinner();
5800
+ }
5705
5801
  this.changeTimelineSettings(newTimeline);
5706
5802
  };
5707
5803
  Timeline.prototype.bottomTierCellWidthCalc = function (mode, zoomLevel, date) {
@@ -6813,7 +6909,9 @@ var Timeline = /** @__PURE__ @class */ (function () {
6813
6909
  var validStartLeft = this.parent.dataOperation.getTaskLeft(validStartDate, false);
6814
6910
  var validEndLeft = this.parent.dataOperation.getTaskLeft(validEndDate, false);
6815
6911
  var isChanged = void 0;
6816
- if (!isNullOrUndefined(maxStartLeft) && ((minStartDate < this.timelineStartDate) || (!isNullOrUndefined(this.parent.editModule.taskbarEditModule)) && (!isNullOrUndefined(this.parent.editModule.taskbarEditModule.taskBarEditAction))) && (maxStartLeft < this.bottomTierCellWidth || maxStartLeft <= validStartLeft)) {
6912
+ if (!isNullOrUndefined(maxStartLeft) && ((minStartDate < this.timelineStartDate) ||
6913
+ (!isNullOrUndefined(this.parent.editModule.taskbarEditModule)) &&
6914
+ (!isNullOrUndefined(this.parent.editModule.taskbarEditModule.taskBarEditAction))) && (maxStartLeft < this.bottomTierCellWidth || maxStartLeft <= validStartLeft)) {
6817
6915
  isChanged = 'prevTimeSpan';
6818
6916
  minStartDate = minStartDate > this.timelineStartDate ? this.timelineStartDate : minStartDate;
6819
6917
  }
@@ -7055,9 +7153,12 @@ var GanttTreeGrid = /** @__PURE__ @class */ (function () {
7055
7153
  this.parent.treeGrid.showColumnMenu = this.parent.showColumnMenu;
7056
7154
  this.parent.treeGrid.enableCollapseAll = this.parent.collapseAllParentTasks;
7057
7155
  this.parent.treeGrid.columnMenuItems = this.parent.columnMenuItems;
7156
+ this.parent.treeGrid.enableRtl = this.parent.enableRtl;
7058
7157
  this.parent.treeGrid.childMapping = isNullOrUndefined(this.parent.taskFields.child) ? '' : this.parent.taskFields.child;
7059
7158
  this.parent.treeGrid.treeColumnIndex = this.parent.treeColumnIndex;
7060
7159
  this.parent.treeGrid.columns = this.treeGridColumns;
7160
+ this.parent.treeGrid.loadingIndicator = this.parent.loadingIndicator;
7161
+ this.parent.treeGrid.enableVirtualMaskRow = this.parent.enableVirtualMaskRow;
7061
7162
  if (this.parent.dataSource instanceof Object && isCountRequired(this.parent)) {
7062
7163
  // In order to bind the observable data at load time, hasChildMapping is necessary to be mapped.
7063
7164
  this.parent.treeGrid.hasChildMapping = 'isParent';
@@ -7151,6 +7252,14 @@ var GanttTreeGrid = /** @__PURE__ @class */ (function () {
7151
7252
  GanttTreeGrid.prototype.dataBound = function (args) {
7152
7253
  this.ensureScrollBar();
7153
7254
  this.parent.treeDataBound(args);
7255
+ if (this.parent.isVirtualScroll) {
7256
+ if ((this.parent.enableVirtualMaskRow && this.parent.enableVirtualization) ||
7257
+ (this.parent.enableVirtualization && !this.parent.enableVirtualMaskRow && this.parent.loadingIndicator.indicatorType === "Shimmer") ||
7258
+ (this.parent.loadingIndicator.indicatorType === "Shimmer")) {
7259
+ this.parent.hideMaskRow();
7260
+ }
7261
+ this.parent.isVirtualScroll = false;
7262
+ }
7154
7263
  this.prevCurrentView = extend([], [], this.parent.currentViewData, true);
7155
7264
  };
7156
7265
  GanttTreeGrid.prototype.dataStateChange = function (args) {
@@ -7185,6 +7294,12 @@ var GanttTreeGrid = /** @__PURE__ @class */ (function () {
7185
7294
  var collapsedArgs = this.createExpandCollapseArgs(args);
7186
7295
  this.parent.ganttChartModule.collapsedGanttRow(collapsedArgs);
7187
7296
  }
7297
+ if (!isNullOrUndefined(this.parent.loadingIndicator) && this.parent.loadingIndicator.indicatorType === "Shimmer") {
7298
+ this.parent.hideMaskRow();
7299
+ }
7300
+ else {
7301
+ this.parent.hideSpinner();
7302
+ }
7188
7303
  };
7189
7304
  GanttTreeGrid.prototype.expanded = function (args) {
7190
7305
  if (!this.parent.ganttChartModule.isExpandCollapseFromChart && !this.parent.isExpandCollapseLevelMethod) {
@@ -7193,6 +7308,12 @@ var GanttTreeGrid = /** @__PURE__ @class */ (function () {
7193
7308
  this.parent.ganttChartModule.expandedGanttRow(expandedArgs);
7194
7309
  }
7195
7310
  }
7311
+ if (!isNullOrUndefined(this.parent.loadingIndicator) && this.parent.loadingIndicator.indicatorType === "Shimmer") {
7312
+ this.parent.hideMaskRow();
7313
+ }
7314
+ else {
7315
+ this.parent.hideSpinner();
7316
+ }
7196
7317
  };
7197
7318
  GanttTreeGrid.prototype.actionBegin = function (args) {
7198
7319
  this.parent.notify('actionBegin', args);
@@ -7201,6 +7322,14 @@ var GanttTreeGrid = /** @__PURE__ @class */ (function () {
7201
7322
  setValue('doubleClickTarget', null, this.parent.treeGrid.editModule);
7202
7323
  }
7203
7324
  this.parent.trigger('actionBegin', args);
7325
+ if (args.requestType != "virtualscroll" && args.type != "edit" && args.requestType != "beginEdit") {
7326
+ if (!isNullOrUndefined(this.parent.loadingIndicator) && this.parent.loadingIndicator.indicatorType === "Shimmer") {
7327
+ this.parent.showMaskRow();
7328
+ }
7329
+ else {
7330
+ this.parent.showSpinner();
7331
+ }
7332
+ }
7204
7333
  }; // eslint-disable-next-line
7205
7334
  GanttTreeGrid.prototype.created = function (args) {
7206
7335
  this.updateKeyConfigSettings();
@@ -7269,6 +7398,12 @@ var GanttTreeGrid = /** @__PURE__ @class */ (function () {
7269
7398
  this.parent.addDeleteRecord = false;
7270
7399
  }
7271
7400
  this.parent.trigger('actionComplete', updatedArgs);
7401
+ if (!isNullOrUndefined(this.parent.loadingIndicator) && this.parent.loadingIndicator.indicatorType === "Shimmer") {
7402
+ this.parent.hideMaskRow();
7403
+ }
7404
+ else {
7405
+ this.parent.hideSpinner();
7406
+ }
7272
7407
  };
7273
7408
  GanttTreeGrid.prototype.updateKeyConfigSettings = function () {
7274
7409
  delete this.parent.treeGrid.grid.keyboardModule.keyConfigs.delete;
@@ -8455,11 +8590,44 @@ var ResourceFields = /** @__PURE__ @class */ (function (_super) {
8455
8590
  return ResourceFields;
8456
8591
  }(ChildProperty));
8457
8592
 
8593
+ var __extends$18 = (undefined && undefined.__extends) || (function () {
8594
+ var extendStatics = function (d, b) {
8595
+ extendStatics = Object.setPrototypeOf ||
8596
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
8597
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
8598
+ return extendStatics(d, b);
8599
+ };
8600
+ return function (d, b) {
8601
+ extendStatics(d, b);
8602
+ function __() { this.constructor = d; }
8603
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
8604
+ };
8605
+ })();
8606
+ var __decorate$17 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
8607
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
8608
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
8609
+ 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;
8610
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
8611
+ };
8612
+ /**
8613
+ * Configures the Loading Indicator of the Gantt.
8614
+ */
8615
+ var LoadingIndicator = /** @__PURE__ @class */ (function (_super) {
8616
+ __extends$18(LoadingIndicator, _super);
8617
+ function LoadingIndicator() {
8618
+ return _super !== null && _super.apply(this, arguments) || this;
8619
+ }
8620
+ __decorate$17([
8621
+ Property('Spinner')
8622
+ ], LoadingIndicator.prototype, "indicatorType", void 0);
8623
+ return LoadingIndicator;
8624
+ }(ChildProperty));
8625
+
8458
8626
  /**
8459
8627
  * Export all generated models for complex settings
8460
8628
  */
8461
8629
 
8462
- var __extends$18 = (undefined && undefined.__extends) || (function () {
8630
+ var __extends$19 = (undefined && undefined.__extends) || (function () {
8463
8631
  var extendStatics = function (d, b) {
8464
8632
  extendStatics = Object.setPrototypeOf ||
8465
8633
  ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
@@ -8476,7 +8644,7 @@ var __extends$18 = (undefined && undefined.__extends) || (function () {
8476
8644
  * To render the chart rows in Gantt
8477
8645
  */
8478
8646
  var ChartRows = /** @__PURE__ @class */ (function (_super) {
8479
- __extends$18(ChartRows, _super);
8647
+ __extends$19(ChartRows, _super);
8480
8648
  function ChartRows(ganttObj) {
8481
8649
  var _this = _super.call(this, ganttObj) || this;
8482
8650
  _this.taskBarHeight = 0;
@@ -8568,7 +8736,7 @@ var ChartRows = /** @__PURE__ @class */ (function (_super) {
8568
8736
  ChartRows.prototype.getIndicatorNode = function (indicator) {
8569
8737
  var templateString = '<label class="' + label + ' ' + taskIndicatorDiv + '"style="line-height:'
8570
8738
  + (this.parent.rowHeight) + 'px;' +
8571
- 'left:' + this.getIndicatorleft(indicator.date) + 'px;"><i class="' + indicator.iconClass + '"></i> </label>';
8739
+ (this.parent.enableRtl ? 'right:' : 'left:') + this.getIndicatorleft(indicator.date) + 'px;"><i class="' + indicator.iconClass + '"></i> </label>';
8572
8740
  return this.createDivElement(templateString);
8573
8741
  };
8574
8742
  /**
@@ -8594,6 +8762,13 @@ var ChartRows = /** @__PURE__ @class */ (function (_super) {
8594
8762
  ChartRows.prototype.getChildTaskbarNode = function (i, rootElement) {
8595
8763
  var childTaskbarNode = null;
8596
8764
  var data = this.templateData;
8765
+ var direction;
8766
+ if (this.parent.enableRtl) {
8767
+ direction = 'right:';
8768
+ }
8769
+ else {
8770
+ direction = 'left:';
8771
+ }
8597
8772
  if (this.childTaskbarTemplateFunction) {
8598
8773
  childTaskbarNode = this.childTaskbarTemplateFunction(extend({ index: i }, data), this.parent, 'TaskbarTemplate', this.getTemplateID('TaskbarTemplate'), false, undefined, rootElement[0], this.parent.treeGrid['root']);
8599
8774
  }
@@ -8636,14 +8811,15 @@ var ChartRows = /** @__PURE__ @class */ (function (_super) {
8636
8811
  }
8637
8812
  if (isNaN(parseInt(labelString))) {
8638
8813
  taskLabel$$1 = '<span class="' + taskLabel + '" style="line-height:' +
8639
- (this.taskBarHeight - 1) + 'px; text-align: left;' +
8814
+ (this.taskBarHeight - 1) + 'px; text-align:' + (this.parent.enableRtl ? 'right;' : 'left;') +
8640
8815
  'display:' + 'inline-block;' +
8641
8816
  'width:' + (data.ganttProperties.width - 10) + 'px; height:' +
8642
8817
  this.taskBarHeight + 'px;">' + labelString + '</span>';
8643
8818
  }
8644
8819
  else {
8645
8820
  taskLabel$$1 = '<span class="' + taskLabel + '" style="line-height:' +
8646
- (this.taskBarHeight - 1) + 'px;' + (this.parent.viewType === 'ResourceView' ? 'text-align: left;' : '') +
8821
+ (this.taskBarHeight - 1) + 'px;' + (this.parent.viewType === 'ResourceView' ? ('text-align:' +
8822
+ (this.parent.enableRtl ? 'right;' : 'left;')) : '') +
8647
8823
  +(this.parent.viewType === 'ResourceView' ? 'display:inline-flex;' : '') +
8648
8824
  +(this.parent.viewType === 'ResourceView' ? (data.ganttProperties.width - 10) : '') + 'px; height:' +
8649
8825
  this.taskBarHeight + 'px;">' + labelString + '</span>';
@@ -8655,17 +8831,17 @@ var ChartRows = /** @__PURE__ @class */ (function (_super) {
8655
8831
  (data.ganttProperties.startDate && !data.ganttProperties.endDate && !data.ganttProperties.duration) ? ('<div class="' + childProgressBarInnerDiv + ' ' + traceChildTaskBar + ' ' +
8656
8832
  unscheduledTaskbarLeft + ' ' + (data.ganttProperties.isAutoSchedule ?
8657
8833
  '' : manualChildTaskBar) + '"' +
8658
- 'style="left:' + data.ganttProperties.left + 'px; height:' + this.taskBarHeight + 'px;"></div>') :
8834
+ 'style="' + direction + data.ganttProperties.left + 'px; height:' + this.taskBarHeight + 'px;"></div>') :
8659
8835
  (data.ganttProperties.endDate && !data.ganttProperties.startDate && !data.ganttProperties.duration) ?
8660
8836
  ('<div class="' + childProgressBarInnerDiv + ' ' + traceChildTaskBar + ' ' +
8661
8837
  unscheduledTaskbarRight + ' ' + (data.ganttProperties.isAutoSchedule ?
8662
8838
  '' : manualChildTaskBar) + '"' +
8663
- 'style="left:' + data.ganttProperties.left + 'px; height:' + this.taskBarHeight + 'px;"></div>') :
8839
+ 'style="' + direction + data.ganttProperties.left + 'px; height:' + this.taskBarHeight + 'px;"></div>') :
8664
8840
  (data.ganttProperties.duration && !data.ganttProperties.startDate && !data.ganttProperties.endDate) ?
8665
8841
  ('<div class="' + childProgressBarInnerDiv + ' ' + traceChildTaskBar + ' ' +
8666
8842
  unscheduledTaskbar + ' ' + (data.ganttProperties.isAutoSchedule ?
8667
8843
  '' : manualChildTaskBar) + '"' +
8668
- 'style="left:' + data.ganttProperties.left + 'px; width:' + data.ganttProperties.width + 'px;' +
8844
+ 'style="' + direction + data.ganttProperties.left + 'px; width:' + data.ganttProperties.width + 'px;' +
8669
8845
  ' height:' + this.taskBarHeight + 'px;"></div>') : '';
8670
8846
  if (data.ganttProperties.startDate && data.ganttProperties.endDate && data.ganttProperties.duration &&
8671
8847
  (isNullOrUndefined(data.ganttProperties.segments) || (!isNullOrUndefined(data.ganttProperties.segments) &&
@@ -8693,6 +8869,13 @@ var ChartRows = /** @__PURE__ @class */ (function (_super) {
8693
8869
  childTaskbarNode = this.createDivElement(template);
8694
8870
  }
8695
8871
  }
8872
+ if (this.parent.enableRtl && childTaskbarNode[0] && childTaskbarNode[0].querySelector('.e-task-label')) {
8873
+ childTaskbarNode[0].querySelector('.e-task-label').style.marginLeft = '15px';
8874
+ childTaskbarNode[0].querySelector('.e-task-label').style.marginRight = '8px';
8875
+ if (childTaskbarNode[0].querySelector('.e-gantt-child-progressbar')) {
8876
+ childTaskbarNode[0].querySelector('.e-gantt-child-progressbar').style.textAlign = 'left';
8877
+ }
8878
+ }
8696
8879
  return childTaskbarNode;
8697
8880
  };
8698
8881
  ChartRows.prototype.splitTaskbar = function (data, labelString) {
@@ -8712,7 +8895,7 @@ var ChartRows = /** @__PURE__ @class */ (function (_super) {
8712
8895
  //split taskbar
8713
8896
  '<div class="' + childTaskBarInnerDiv + ' ' + segmentPosition + ' ' + traceChildTaskBar + ' ' +
8714
8897
  ' e-segmented-taskbar' +
8715
- '"style="width:' + segment.width + 'px;position: absolute; left:' + segment.left + 'px;height:' +
8898
+ '"style="width:' + segment.width + 'px;position: absolute;' + (this.parent.enableRtl ? 'right:' : 'left:') + segment.left + 'px;height:' +
8716
8899
  (this.taskBarHeight) + 'px; overflow:' + progressBarVisible + ';" data-segment-index = "' + i + '" aria-label = "' +
8717
8900
  this.generateSpiltTaskAriaLabel(segment, data.ganttProperties) + '"> ' +
8718
8901
  this.getSplitTaskbarLeftResizerNode() +
@@ -8720,7 +8903,7 @@ var ChartRows = /** @__PURE__ @class */ (function (_super) {
8720
8903
  '<div class="' + childProgressBarInnerDiv + ' ' + traceChildProgressBar + ' ' +
8721
8904
  '" style="border-style:' + (segment.progressWidth ? 'solid;' : 'none;') +
8722
8905
  'display:' + (segment.progressWidth >= 0 ? 'block;' : 'none;') +
8723
- 'width:' + segment.progressWidth + 'px;height:100%;' +
8906
+ 'width:' + segment.progressWidth + 'px;height:100%;' + 'text-align:' + (this.parent.enableRtl ? 'left;' : 'right;') +
8724
8907
  'border-top-right-radius:' + this.getSplitTaskBorderRadius(segment) + 'px;' +
8725
8908
  'border-bottom-right-radius:' + this.getSplitTaskBorderRadius(segment) + 'px;">' +
8726
8909
  // progress label
@@ -8737,19 +8920,20 @@ var ChartRows = /** @__PURE__ @class */ (function (_super) {
8737
8920
  ChartRows.prototype.getSplitTaskbarLeftResizerNode = function () {
8738
8921
  var lResizerLeft = -(this.parent.isAdaptive ? 12 : 2);
8739
8922
  var template = '<div class="' + taskBarLeftResizer + ' ' + icon + '"' +
8740
- ' style="left:' + lResizerLeft + 'px;height:' + (this.taskBarHeight) + 'px;"></div>';
8923
+ ' style="' + (this.parent.enableRtl ? 'right:' : 'left:') + lResizerLeft + 'px;height:' + (this.taskBarHeight) + 'px;"></div>';
8741
8924
  return template;
8742
8925
  };
8743
8926
  ChartRows.prototype.getSplitTaskbarRightResizerNode = function (segment) {
8744
8927
  var rResizerLeft = this.parent.isAdaptive ? -2 : -10;
8745
8928
  var template = '<div class="' + taskBarRightResizer + ' ' + icon + '"' +
8746
- ' style="left:' + (segment.width + rResizerLeft) + 'px;' +
8929
+ ' style="' + (this.parent.enableRtl ? 'right:' : 'left:') + (segment.width + rResizerLeft) + 'px;' +
8747
8930
  'height:' + (this.taskBarHeight) + 'px;"></div>';
8748
8931
  return template;
8749
8932
  };
8750
8933
  ChartRows.prototype.getSplitProgressResizerNode = function (segment) {
8934
+ var width = this.parent.enableRtl ? (segment.progressWidth + 8) : (segment.progressWidth - 6);
8751
8935
  var template = '<div class="' + childProgressResizer + '"' +
8752
- ' style="left:' + (segment.progressWidth - 6) + 'px;margin-top:' +
8936
+ ' style="' + (this.parent.enableRtl ? 'right:' : 'left:') + width + 'px;margin-top:' +
8753
8937
  (this.taskBarHeight - 4) + 'px;"><div class="' + progressBarHandler + '"' +
8754
8938
  '><div class="' + progressHandlerElement + '"></div>' +
8755
8939
  '<div class="' + progressBarHandlerAfter + '"></div></div>';
@@ -8879,6 +9063,12 @@ var ChartRows = /** @__PURE__ @class */ (function (_super) {
8879
9063
  }
8880
9064
  }
8881
9065
  this.parent.trigger('actionComplete', args);
9066
+ if (!isNullOrUndefined(this.parent.loadingIndicator) && this.parent.loadingIndicator.indicatorType === "Shimmer") {
9067
+ this.parent.hideMaskRow();
9068
+ }
9069
+ else {
9070
+ this.parent.hideSpinner();
9071
+ }
8882
9072
  setValue('isEdit', false, this.parent.contextMenuModule);
8883
9073
  setValue('isEdit', false, this.parent);
8884
9074
  };
@@ -9083,7 +9273,7 @@ var ChartRows = /** @__PURE__ @class */ (function (_super) {
9083
9273
  ChartRows.prototype.getTaskBaselineNode = function () {
9084
9274
  var data = this.templateData;
9085
9275
  var template = '<div class="' + baselineBar + ' ' + '" role="term" style="margin-top:' + this.baselineTop +
9086
- 'px;left:' + data.ganttProperties.baselineLeft + 'px;' +
9276
+ 'px;' + (this.parent.enableRtl ? 'right:' : 'left:') + data.ganttProperties.baselineLeft + 'px;' +
9087
9277
  'width:' + data.ganttProperties.baselineWidth + 'px;height:' +
9088
9278
  this.baselineHeight + 'px;' + (this.baselineColor ? 'background-color: ' + this.baselineColor + ';' : '') + '"></div>';
9089
9279
  return this.createDivElement(template);
@@ -9098,7 +9288,7 @@ var ChartRows = /** @__PURE__ @class */ (function (_super) {
9098
9288
  var data = this.templateData;
9099
9289
  var baselineMilestoneHeight = this.parent.renderBaseline ? 5 : 2;
9100
9290
  var template = '<div class="' + baselineMilestoneContainer + ' ' + '" style="' +
9101
- 'left:' + (data.ganttProperties.baselineLeft - this.milesStoneRadius) + 'px;' +
9291
+ (this.parent.enableRtl ? 'right:' : 'left:') + (data.ganttProperties.baselineLeft - this.milesStoneRadius) + 'px;' +
9102
9292
  'margin-top:' + (-Math.floor(this.parent.rowHeight - this.milestoneMarginTop) + baselineMilestoneHeight) +
9103
9293
  'px">' + '<div class="' + baselineMilestoneDiv + '">' + '<div class="' + baselineMilestoneDiv +
9104
9294
  ' ' + baselineMilestoneTop + '" ' +
@@ -9148,6 +9338,10 @@ var ChartRows = /** @__PURE__ @class */ (function (_super) {
9148
9338
  }
9149
9339
  leftLabelNode[0].appendChild([].slice.call(leftLabelTemplateNode)[0]);
9150
9340
  }
9341
+ if (this.parent.enableRtl) {
9342
+ leftLabelNode[0].style.paddingLeft = '25px';
9343
+ leftLabelNode[0].style.paddingRight = '0px';
9344
+ }
9151
9345
  return leftLabelNode;
9152
9346
  };
9153
9347
  ChartRows.prototype.getLableText = function (labelString, labelDiv) {
@@ -9194,6 +9388,10 @@ var ChartRows = /** @__PURE__ @class */ (function (_super) {
9194
9388
  }
9195
9389
  rightLabelNode[0].appendChild([].slice.call(rightLabelTemplateNode)[0]);
9196
9390
  }
9391
+ if (this.parent.enableRtl) {
9392
+ rightLabelNode[0].style.marginLeft = '0px';
9393
+ rightLabelNode[0].style.paddingRight = '25px';
9394
+ }
9197
9395
  return rightLabelNode;
9198
9396
  };
9199
9397
  ChartRows.prototype.getManualTaskbar = function () {
@@ -9213,17 +9411,18 @@ var ChartRows = /** @__PURE__ @class */ (function (_super) {
9213
9411
  taskbarHeight * 2 + 'px;border-left-width:' + taskbarHeight / 5 +
9214
9412
  'px; border-bottom:' + taskbarHeight / 5 + 'px solid transparent;"></div>');
9215
9413
  var template = '<div class="' + manualParentMainContainer + '"' +
9216
- 'style=left:' + (data.ganttProperties.left - data.ganttProperties.autoLeft) + 'px;' +
9414
+ 'style=' + (this.parent.enableRtl ? 'right:' : 'left:') + (data.ganttProperties.left - data.ganttProperties.autoLeft) + 'px;' +
9217
9415
  'width:' + data.ganttProperties.width + 'px;' +
9218
9416
  'height:' + taskbarHeight + 'px;>' + innerDiv + ((data.ganttProperties.startDate && data.ganttProperties.endDate &&
9219
9417
  data.ganttProperties.duration) || data.ganttProperties.duration ? '<div class="e-gantt-manualparenttaskbar-left" style=' +
9220
- '"height:' + taskbarHeight + 'px;border-left-width:' + taskbarHeight / 5 +
9418
+ (this.parent.enableRtl ? 'margin-right:0px;' : '') + '"height:' + taskbarHeight + 'px;border-left-width:' + taskbarHeight / 5 +
9221
9419
  'px; border-bottom:' + taskbarHeight / 5 + 'px solid transparent;"></div>' +
9222
- '<div class="e-gantt-manualparenttaskbar-right" style=' +
9223
- 'left:' + (data.ganttProperties.width - taskbarHeight / 5) + 'px;height:' +
9420
+ '<div class="e-gantt-manualparenttaskbar-right" style=' + (this.parent.enableRtl ? 'margin-right:-8px;' : '') +
9421
+ (this.parent.enableRtl ? 'right:' : 'left:') + (data.ganttProperties.width - taskbarHeight / 5) + 'px;height:' +
9224
9422
  (taskbarHeight) + 'px;border-right-width:' + taskbarHeight / 5 + 'px;border-bottom:' +
9225
9423
  taskbarHeight / 5 + 'px solid transparent;>' + '</div></div>' : '');
9226
- var milestoneTemplate = '<div class="' + manualParentMilestone + '" style="position:absolute;left:' +
9424
+ var milestoneTemplate = '<div class="' + manualParentMilestone + '" style="position:absolute;' +
9425
+ (this.parent.enableRtl ? 'right:' : 'left:') +
9227
9426
  (data.ganttProperties.left - data.ganttProperties.autoLeft - (this.milestoneHeight / 2)) +
9228
9427
  'px;width:' + (this.milesStoneRadius * 2) +
9229
9428
  'px;">' + '<div class="' + manualParentMilestoneTop + '" style="border-right-width:' +
@@ -9284,7 +9483,7 @@ var ChartRows = /** @__PURE__ @class */ (function (_super) {
9284
9483
  }
9285
9484
  if (isNaN(parseInt(labelString))) {
9286
9485
  labelDiv = '<span class="' + taskLabel + '" style="line-height:' +
9287
- (this.taskBarHeight - 1) + 'px; text-align: left;' +
9486
+ (this.taskBarHeight - 1) + 'px; text-align:' + (this.parent.enableRtl ? 'right;' : 'left;') +
9288
9487
  'display:' + 'inline-block;' +
9289
9488
  'width:' + (data.ganttProperties.width - 10) + 'px; height:' +
9290
9489
  this.taskBarHeight + 'px;">' + labelString + '</span>';
@@ -9322,6 +9521,13 @@ var ChartRows = /** @__PURE__ @class */ (function (_super) {
9322
9521
  parentTaskbarNode = data.ganttProperties.isMilestone ?
9323
9522
  this.createDivElement(data.ganttProperties.isAutoSchedule ? milestoneTemplate : '') : template;
9324
9523
  }
9524
+ if (this.parent.enableRtl && parentTaskbarNode[0] && parentTaskbarNode[0].querySelector('.e-task-label')) {
9525
+ parentTaskbarNode[0].querySelector('.e-task-label').style.marginLeft = '15px';
9526
+ parentTaskbarNode[0].querySelector('.e-task-label').style.marginRight = '8px';
9527
+ if (parentTaskbarNode[0].querySelector('.e-gantt-parent-progressbar')) {
9528
+ parentTaskbarNode[0].querySelector('.e-gantt-parent-progressbar').style.textAlign = 'left';
9529
+ }
9530
+ }
9325
9531
  return parentTaskbarNode;
9326
9532
  };
9327
9533
  /**
@@ -9417,35 +9623,36 @@ var ChartRows = /** @__PURE__ @class */ (function (_super) {
9417
9623
  ((data.ganttProperties.cssClass) ? data.ganttProperties.cssClass : '') + '" ' +
9418
9624
  ' tabindex="-1" role="term" style="' + ((data.ganttProperties.isMilestone && !manualParent) ?
9419
9625
  ('width:' + this.milestoneHeight + 'px;height:' +
9420
- this.milestoneHeight + 'px;margin-top:' + this.milestoneMarginTop + 'px;left:' + (data.ganttProperties.left -
9626
+ this.milestoneHeight + 'px;margin-top:' + this.milestoneMarginTop + 'px;' + (this.parent.enableRtl ? 'right:' : 'left:') + (data.ganttProperties.left -
9421
9627
  (this.milestoneHeight / 2)) + 'px;') : ('width:' + data.ganttProperties.width +
9422
- 'px;margin-top:' + this.taskBarMarginTop + 'px;left:' + (!data.hasChildRecords || data.ganttProperties.isAutoSchedule ?
9628
+ 'px;margin-top:' + this.taskBarMarginTop + 'px;' + (this.parent.enableRtl ? 'right:' : 'left:') + (!data.hasChildRecords || data.ganttProperties.isAutoSchedule ?
9423
9629
  data.ganttProperties.left : data.ganttProperties.autoLeft) + 'px;height:' +
9424
9630
  this.taskBarHeight + 'px;cursor:' + (data.ganttProperties.isAutoSchedule ? 'move;' : 'auto;'))) + '"></div>';
9425
9631
  return this.createDivElement(template);
9426
9632
  };
9427
9633
  ChartRows.prototype.rightLabelContainer = function () {
9428
9634
  var template = '<div class="' + ((this.rightTaskLabelTemplateFunction) ? rightLabelTempContainer :
9429
- rightLabelContainer) + '" ' + ' tabindex="-1" role="term" style="left:' + this.getRightLabelLeft(this.templateData) + 'px; height:'
9635
+ rightLabelContainer) + '" ' + ' tabindex="-1" role="term" style="' + (this.parent.enableRtl ? 'right:' : 'left:') + this.getRightLabelLeft(this.templateData) + 'px; height:'
9430
9636
  + (this.parent.rowHeight - 2) + 'px;"></div>';
9431
9637
  return this.createDivElement(template);
9432
9638
  };
9433
9639
  ChartRows.prototype.childTaskbarLeftResizer = function () {
9434
9640
  var lResizerLeft = -(this.parent.isAdaptive ? 12 : 2);
9435
9641
  var template = '<div class="' + taskBarLeftResizer + ' ' + icon + '"' +
9436
- 'style="left:' + lResizerLeft + 'px;height:' + (this.taskBarHeight) + 'px;"></div>';
9642
+ 'style="' + (this.parent.enableRtl ? 'right:' : 'left:') + lResizerLeft + 'px;height:' + (this.taskBarHeight) + 'px;"></div>';
9437
9643
  return this.createDivElement(template);
9438
9644
  };
9439
9645
  ChartRows.prototype.childTaskbarRightResizer = function () {
9440
9646
  var rResizerLeft = this.parent.isAdaptive ? -2 : -10;
9441
9647
  var template = '<div class="' + taskBarRightResizer + ' ' + icon + '"' +
9442
- 'style="left:' + (this.templateData.ganttProperties.width + rResizerLeft) + 'px;' +
9648
+ 'style="' + (this.parent.enableRtl ? 'right:' : 'left:') + (this.templateData.ganttProperties.width + rResizerLeft) + 'px;' +
9443
9649
  'height:' + (this.taskBarHeight) + 'px;"></div>';
9444
9650
  return this.createDivElement(template);
9445
9651
  };
9446
9652
  ChartRows.prototype.childTaskbarProgressResizer = function () {
9653
+ var width = this.parent.enableRtl ? (this.templateData.ganttProperties.progressWidth + 8) : (this.templateData.ganttProperties.progressWidth - 6);
9447
9654
  var template = '<div class="' + childProgressResizer + '"' +
9448
- 'style="left:' + (this.templateData.ganttProperties.progressWidth - 6) + 'px;margin-top:' +
9655
+ 'style="' + (this.parent.enableRtl ? 'right:' : 'left:') + width + 'px;margin-top:' +
9449
9656
  (this.taskBarHeight - 4) + 'px;"><div class="' + progressBarHandler + '"' +
9450
9657
  '><div class="' + progressHandlerElement + '"></div>' +
9451
9658
  '<div class="' + progressBarHandlerAfter + '"></div></div>';
@@ -9467,7 +9674,7 @@ var ChartRows = /** @__PURE__ @class */ (function (_super) {
9467
9674
  ((data.ganttProperties.isMilestone) ? ('margin-top:' + pointerTop + 'px;left:' + mileStoneLeft +
9468
9675
  'px;') : (marginTop + ';left:' + pointerLeft + 'px;')) + '">' +
9469
9676
  '<div class="' + connectorPointLeft + ' ' + this.parent.getUnscheduledTaskClass(data.ganttProperties) +
9470
- '" style="width: ' + this.connectorPointWidth + 'px;' +
9677
+ '" style="width: ' + this.connectorPointWidth + 'px;' + (this.parent.enableRtl ? 'margin-right:2px;' : '') +
9471
9678
  'height: ' + this.connectorPointWidth + 'px;">' + this.touchLeftConnectorpoint + '</div></div>';
9472
9679
  return this.createDivElement(template);
9473
9680
  };
@@ -9740,8 +9947,14 @@ var ChartRows = /** @__PURE__ @class */ (function (_super) {
9740
9947
  else {
9741
9948
  for (var i = 0; i < this.parent.currentViewData.length; i++) {
9742
9949
  var tempTemplateData = this.parent.currentViewData[i];
9743
- if (this.parent.viewType === 'ResourceView' && !tempTemplateData.expanded && this.parent.enableMultiTaskbar) {
9744
- collapsedResourceRecord.push(tempTemplateData);
9950
+ if (this.parent.viewType === 'ResourceView') {
9951
+ if (this.parent.editModule && this.parent.editModule.isResourceTaskDeleted) {
9952
+ this.parent.initialChartRowElements = this.parent.ganttChartModule.getChartRows();
9953
+ this.parent.editModule.isResourceTaskDeleted = false;
9954
+ }
9955
+ if (!tempTemplateData.expanded && this.parent.enableMultiTaskbar) {
9956
+ collapsedResourceRecord.push(tempTemplateData);
9957
+ }
9745
9958
  }
9746
9959
  var tRow = this.getGanttChartRow(i, tempTemplateData);
9747
9960
  this.ganttChartTableBody.appendChild(tRow);
@@ -9785,7 +9998,7 @@ var ChartRows = /** @__PURE__ @class */ (function (_super) {
9785
9998
  taskbarContainerNode[0].setAttribute('aria-label', this.generateAriaLabel(this.templateData));
9786
9999
  taskbarContainerNode[0].setAttribute('rowUniqueId', this.templateData.ganttProperties.rowUniqueID);
9787
10000
  var connectorLineLeftNode = this.getLeftPointNode();
9788
- if ((this.templateData.ganttProperties.isAutoSchedule && this.parent.viewType == 'ProjectView') || !this.templateData.hasChildRecords) {
10001
+ if ((this.templateData.ganttProperties.isAutoSchedule && this.parent.viewType === 'ProjectView') || !this.templateData.hasChildRecords) {
9789
10002
  taskbarContainerNode[0].appendChild([].slice.call(connectorLineLeftNode)[0]);
9790
10003
  }
9791
10004
  if (this.templateData.hasChildRecords) {
@@ -9869,7 +10082,7 @@ var ChartRows = /** @__PURE__ @class */ (function (_super) {
9869
10082
  ? this.getMilestoneBaselineNode() : this.getTaskBaselineNode();
9870
10083
  }
9871
10084
  }
9872
- if ((this.templateData.ganttProperties.isAutoSchedule && this.parent.viewType == 'ProjectView') || !this.templateData.hasChildRecords) {
10085
+ if ((this.templateData.ganttProperties.isAutoSchedule && this.parent.viewType === 'ProjectView') || !this.templateData.hasChildRecords) {
9873
10086
  var connectorLineRightNode = this.getRightPointNode();
9874
10087
  taskbarContainerNode[0].appendChild([].slice.call(connectorLineRightNode)[0]);
9875
10088
  }
@@ -11161,19 +11374,8 @@ var ConnectorLine = /** @__PURE__ @class */ (function () {
11161
11374
  */
11162
11375
  ConnectorLine.prototype.createConnectorLineObject = function (parentGanttData, childGanttData, predecessor) {
11163
11376
  var connectorObj = {};
11164
- var updatedRecords;
11165
- if (this.parent.pdfExportModule && this.parent.pdfExportModule.isPdfExport) {
11166
- if (this.parent.pdfExportModule['helper']['exportProps'].exportType &&
11167
- this.parent.pdfExportModule['helper']['exportProps'].exportType === 'CurrentViewData') {
11168
- updatedRecords = this.expandedRecords;
11169
- }
11170
- else {
11171
- updatedRecords = this.parent.flatData;
11172
- }
11173
- }
11174
- else {
11175
- updatedRecords = this.expandedRecords;
11176
- }
11377
+ var updatedRecords = this.parent.pdfExportModule && this.parent.pdfExportModule.isPdfExport ?
11378
+ this.parent.flatData : this.expandedRecords;
11177
11379
  var parentIndex = updatedRecords.indexOf(parentGanttData);
11178
11380
  var childIndex = updatedRecords.indexOf(childGanttData);
11179
11381
  var parentGanttRecord = parentGanttData.ganttProperties;
@@ -11239,6 +11441,9 @@ var ConnectorLine = /** @__PURE__ @class */ (function () {
11239
11441
  }
11240
11442
  }
11241
11443
  this.parent.ganttChartModule.chartBodyContent.appendChild(this.dependencyViewContainer);
11444
+ for (var i = 0; i < this.dependencyViewContainer.children.length; i++) {
11445
+ this.dependencyViewContainer.children[i].children[0].setAttribute('tabindex', '-1');
11446
+ }
11242
11447
  };
11243
11448
  /**
11244
11449
  * To get parent position.
@@ -11557,85 +11762,96 @@ var ConnectorLine = /** @__PURE__ @class */ (function () {
11557
11762
  connectorContainer = '<div id="ConnectorLine' + data.connectorLineId + '" style="background-color:black">';
11558
11763
  var div = '<div class="' + connectorLineContainer +
11559
11764
  '" tabindex="-1" style="';
11765
+ var direction = this.parent.enableRtl ? 'right:' : 'left:';
11560
11766
  var eLine = '<div class="' + connectorLine + '" style="' +
11561
11767
  (!isNullOrUndefined(this.lineColor) ? 'outline-color:' + this.lineColor + ';' : '');
11562
- var rightArrow = '<div class="' + connectorLineRightArrow + '" style="' +
11563
- (!isNullOrUndefined(this.lineColor) ? 'outline-color:' + this.lineColor + ';' : '');
11564
- var leftArrow = '<div class="' + connectorLineLeftArrow + '" style="' +
11565
- (!isNullOrUndefined(this.lineColor) ? 'outline-color:' + this.lineColor + ';' : '');
11566
- var duplicateStingOne = leftArrow + (isMilestone ? 'left:0px;' : '') +
11567
- this.getBorderStyles('right', 10) +
11768
+ var rightArrow = void 0;
11769
+ var leftArrow = void 0;
11770
+ if (this.parent.enableRtl) {
11771
+ leftArrow = '<div class="' + connectorLineRightArrow + '" style="' +
11772
+ (!isNullOrUndefined(this.lineColor) ? 'outline-color:' + this.lineColor + ';' : '');
11773
+ rightArrow = '<div class="' + connectorLineLeftArrow + '" style="' +
11774
+ (!isNullOrUndefined(this.lineColor) ? 'outline-color:' + this.lineColor + ';' : '');
11775
+ }
11776
+ else {
11777
+ rightArrow = '<div class="' + connectorLineRightArrow + '" style="' +
11778
+ (!isNullOrUndefined(this.lineColor) ? 'outline-color:' + this.lineColor + ';' : '');
11779
+ leftArrow = '<div class="' + connectorLineLeftArrow + '" style="' +
11780
+ (!isNullOrUndefined(this.lineColor) ? 'outline-color:' + this.lineColor + ';' : '');
11781
+ }
11782
+ var duplicateStingOne = leftArrow + (isMilestone ? (this.parent.enableRtl ? 'right:0px;' : 'left:0px;') : '') +
11783
+ this.getBorderStyles((this.parent.enableRtl ? 'left' : 'right'), 10) +
11568
11784
  'top:' + (-5 - this.lineStroke + (this.lineStroke - 1)) + 'px;border-bottom-width:' + (5 + this.lineStroke) + 'px;' +
11569
11785
  'border-top-width:' + (5 + this.lineStroke) + 'px;width:0;height:0;position:relative;"></div>';
11570
- var duplicateStingTwo = this.getBorderStyles('left', 10) +
11786
+ var duplicateStingTwo = this.getBorderStyles((this.parent.enableRtl ? 'right' : 'left'), 10) +
11571
11787
  'top:' + (-6) + 'px;border-bottom-width:' + (5 + this.lineStroke) + 'px;' +
11572
11788
  'border-top-width:' + (5 + this.lineStroke) + 'px;width:0;height:0;position:relative;"></div>';
11573
11789
  var duplicateStingThree = this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>' + eLine +
11574
11790
  'top:' + (-(13 + ((this.lineStroke - 1) * 2))) + 'px;width:0px;' + this.getBorderStyles('left', this.lineStroke) +
11575
11791
  this.getBorderStyles('top', (heightValue + borderTopWidth - (this.lineStroke - 1))) + 'position:relative;"></div>';
11576
- var duplicateStingFour = leftArrow + 'left:' +
11792
+ var duplicateStingFour = leftArrow + (this.parent.enableRtl ? 'right:' : 'left:') +
11577
11793
  (((data.childLeft + data.childWidth) - (data.parentLeft)) + 10) + 'px;' +
11578
- this.getBorderStyles('right', 10);
11794
+ this.getBorderStyles((this.parent.enableRtl ? 'left' : 'right'), 10);
11579
11795
  var duplicateStingFive = 'top:' + (-(6 + (5 + this.lineStroke) + (this.lineStroke / 2))) + 'px;' +
11580
11796
  this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
11581
11797
  if (this.getParentPosition(data) === 'FSType1') {
11582
- div = div + 'left:' + (data.parentLeft + data.parentWidth) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
11798
+ div = div + direction + (data.parentLeft + data.parentWidth) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
11583
11799
  ((data.parentIndex * data.rowHeight) + addTop + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
11584
11800
  'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="FSType1">';
11585
11801
  div = div + eLine;
11586
- div = div + 'left:' + (isMilestoneParent ? -1 : 0) + 'px;width:' + (isMilestoneParent ?
11802
+ div = div + direction + (isMilestoneParent ? -1 : 0) + 'px;width:' + (isMilestoneParent ?
11587
11803
  ((((data.childLeft - (data.parentLeft + data.parentWidth + 10)) + this.lineStroke) - 10) + 1) :
11588
11804
  (((data.childLeft - (data.parentLeft + data.parentWidth + 10)) + this.lineStroke) - 10)) + 'px;' +
11589
11805
  this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
11590
11806
  div = div + eLine;
11591
- div = div + 'left:' + ((data.childLeft - (data.parentLeft + data.parentWidth + 10)) - 10) + 'px;' +
11807
+ div = div + direction + ((data.childLeft - (data.parentLeft + data.parentWidth + 10)) - 10) + 'px;' +
11592
11808
  'width:0px;' + this.getBorderStyles('right', this.lineStroke) +
11593
11809
  this.getBorderStyles('top', (heightValue + borderTopWidth - this.lineStroke)) + 'position:relative;"></div>';
11594
11810
  div = div + eLine;
11595
- div = div + 'left:' + ((data.childLeft - (data.parentLeft + data.parentWidth + 10)) - 10) + 'px;width:10px;' +
11811
+ div = div + direction + ((data.childLeft - (data.parentLeft + data.parentWidth + 10)) - 10) + 'px;width:10px;' +
11596
11812
  this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
11597
11813
  div = div + rightArrow;
11598
- div = div + 'left:' + (data.childLeft - (data.parentLeft + data.parentWidth + 10)) + 'px;' +
11599
- this.getBorderStyles('left', 10) + 'top:' + (-6 - this.lineStroke) + 'px;border-bottom-width:' + (5 + this.lineStroke) +
11814
+ div = div + direction + (data.childLeft - (data.parentLeft + data.parentWidth + 10)) + 'px;' +
11815
+ this.getBorderStyles((this.parent.enableRtl ? 'right' : 'left'), 10) + 'top:' + (-6 - this.lineStroke) + 'px;border-bottom-width:' + (5 + this.lineStroke) +
11600
11816
  'px;border-top-width:' + (5 + this.lineStroke) + 'px;width:0;height:0;position:relative;"></div></div>';
11601
11817
  }
11602
11818
  if (this.getParentPosition(data) === 'FSType2') {
11603
- div = div + 'left:' + data.parentLeft + 'px;top:' + (isVirtual ? connectorLine$$1.top : ((data.parentIndex * data.rowHeight) + addTop +
11819
+ div = div + direction + data.parentLeft + 'px;top:' + (isVirtual ? connectorLine$$1.top : ((data.parentIndex * data.rowHeight) + addTop +
11604
11820
  this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
11605
11821
  'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="FSType2">';
11606
11822
  div = div + eLine;
11607
- div = div + 'left:' + (isMilestoneParent ? data.parentWidth - 1 : data.parentWidth) + 'px;width:' +
11823
+ div = div + direction + (isMilestoneParent ? data.parentWidth - 1 : data.parentWidth) + 'px;width:' +
11608
11824
  (isMilestoneParent ? 11 : 10) + 'px;' +
11609
11825
  this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
11610
11826
  div = div + eLine;
11611
- div = div + 'left:' + (data.parentWidth + 10 - this.lineStroke) + 'px;' +
11827
+ div = div + direction + (data.parentWidth + 10 - this.lineStroke) + 'px;' +
11612
11828
  this.getBorderStyles('left', this.lineStroke) + 'width:0px;' +
11613
11829
  this.getBorderStyles('top', (heightValue + borderTopWidth - this.getconnectorLineGap(data) - this.lineStroke)) + 'position:relative;"></div>';
11614
11830
  div = div + eLine;
11615
- div = div + 'left:' + (data.parentWidth - (((data.parentLeft + data.parentWidth) - data.childLeft) + 20)) + 'px;' +
11831
+ div = div + direction + (data.parentWidth - (((data.parentLeft + data.parentWidth) - data.childLeft) + 20)) + 'px;' +
11616
11832
  'width:' + (((data.parentLeft + data.parentWidth) - data.childLeft) + 30) + 'px;' +
11617
11833
  this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
11618
11834
  div = div + eLine;
11619
- div = div + 'left:' + (data.parentWidth - (((data.parentLeft +
11835
+ div = div + direction + (data.parentWidth - (((data.parentLeft +
11620
11836
  data.parentWidth) - data.childLeft) + 20)) + 'px;width:0px;' +
11621
11837
  this.getBorderStyles('top', (this.getconnectorLineGap(data) - this.lineStroke)) +
11622
11838
  this.getBorderStyles('left', this.lineStroke) + 'position:relative;"></div>';
11623
11839
  div = div + eLine;
11624
- div = div + 'left:' + (data.parentWidth - (((data.parentLeft +
11840
+ div = div + direction + (data.parentWidth - (((data.parentLeft +
11625
11841
  data.parentWidth) - data.childLeft) + 20)) + 'px;width:10px;' +
11626
11842
  this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
11627
11843
  div = div + rightArrow;
11628
- div = div + 'left:' + (data.parentWidth - (((data.parentLeft + data.parentWidth) - data.childLeft) + 10)) + 'px;' +
11629
- this.getBorderStyles('left', 10) + 'border-bottom-width:' + (5 + this.lineStroke) + 'px;' +
11844
+ div = div + direction + (data.parentWidth - (((data.parentLeft + data.parentWidth) - data.childLeft) + 10)) + 'px;' +
11845
+ this.getBorderStyles((this.parent.enableRtl ? 'right' : 'left'), 10) + 'border-bottom-width:' + (5 + this.lineStroke) + 'px;' +
11630
11846
  'border-top-width:' + (5 + this.lineStroke) + 'px;top:' + (-6 - this.lineStroke) +
11631
11847
  'px;width:0;height:0;position:relative;"></div></div>';
11632
11848
  }
11633
11849
  if (this.getParentPosition(data) === 'FSType3') {
11634
- div = div + 'left:' + (data.childLeft - 20) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
11850
+ div = div + direction + (data.childLeft - 20) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
11635
11851
  ((data.childIndex * data.rowHeight) + addTop + this.getTaskbarMidpoint(isMilestoneParent) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
11636
11852
  'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="FSType3">';
11637
11853
  div = div + rightArrow;
11638
- div = div + 'left:10px;' + this.getBorderStyles('left', 10) +
11854
+ div = div + direction + '10px;' + this.getBorderStyles((this.parent.enableRtl ? 'right' : 'left'), 10) +
11639
11855
  'border-bottom-width:' + (5 + this.lineStroke) + 'px;border-top-width:' + (5 + this.lineStroke) + 'px;' +
11640
11856
  'top:' + (-6) + 'px;width:0;height:0;position:relative;"></div>';
11641
11857
  div = div + eLine;
@@ -11649,49 +11865,49 @@ var ConnectorLine = /** @__PURE__ @class */ (function () {
11649
11865
  this.getBorderStyles('top', this.lineStroke) + 'position:relative;top:' +
11650
11866
  (-(13 + ((this.lineStroke - 1) * 2))) + 'px;"></div>';
11651
11867
  div = div + eLine;
11652
- div = div + 'left:' + (((data.parentLeft + data.parentWidth) - data.childLeft) + (30 - this.lineStroke)) +
11868
+ div = div + direction + (((data.parentLeft + data.parentWidth) - data.childLeft) + (30 - this.lineStroke)) +
11653
11869
  'px;width:0px;' + 'height:' + (this.getconnectorLineGap(data) - this.lineStroke) + 'px;' +
11654
11870
  this.getBorderStyles('left', this.lineStroke) + 'position:relative;' +
11655
11871
  'top:' + (-(13 + ((this.lineStroke - 1) * 2))) + 'px;"></div>';
11656
11872
  div = div + eLine;
11657
- div = div + (isMilestoneParent ? 'left:' + (((data.parentLeft +
11658
- data.parentWidth) - data.childLeft) + (18 - this.lineStroke)) + 'px;width:' + (12 + this.lineStroke) + 'px;' : 'left:' +
11873
+ div = div + (isMilestoneParent ? direction + (((data.parentLeft +
11874
+ data.parentWidth) - data.childLeft) + (18 - this.lineStroke)) + 'px;width:' + (12 + this.lineStroke) + 'px;' : direction +
11659
11875
  (((data.parentLeft + data.parentWidth) - data.childLeft) + 20) + 'px;width:10px;') +
11660
11876
  this.getBorderStyles('top', this.lineStroke) + 'position:relative;top:' +
11661
11877
  (-(13 + ((this.lineStroke - 1) * 2))) + 'px;"></div></div>';
11662
11878
  }
11663
11879
  if (this.getParentPosition(data) === 'FSType4') {
11664
- div = div + 'left:' + (data.parentLeft + data.parentWidth) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
11880
+ div = div + direction + (data.parentLeft + data.parentWidth) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
11665
11881
  ((data.childIndex * data.rowHeight) + addTop + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
11666
11882
  'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="FSType4">';
11667
11883
  div = div + rightArrow;
11668
- div = div + 'left:' + (data.childLeft - (data.parentLeft + data.parentWidth + 10)) + 'px;' +
11669
- this.getBorderStyles('left', 10) + 'top:' + (-6) + 'px;' +
11884
+ div = div + direction + (data.childLeft - (data.parentLeft + data.parentWidth + 10)) + 'px;' +
11885
+ this.getBorderStyles((this.parent.enableRtl ? 'right' : 'left'), 10) + 'top:' + (-6) + 'px;' +
11670
11886
  'border-bottom-width:' + (5 + this.lineStroke) + 'px;border-top-width:' +
11671
11887
  (5 + this.lineStroke) + 'px;width:0;height:0;position:relative;"></div>';
11672
11888
  div = div + eLine;
11673
- div = div + 'left:' + (data.childLeft - (data.parentLeft + data.parentWidth) - 20) +
11889
+ div = div + direction + (data.childLeft - (data.parentLeft + data.parentWidth) - 20) +
11674
11890
  'px;top:' + (-(6 + (5 + this.lineStroke) + Math.round(this.lineStroke / 2))) + 'px;width:10px;' +
11675
11891
  this.getBorderStyles('top', this.lineStroke) +
11676
11892
  'position:relative;"></div>';
11677
11893
  div = div + eLine;
11678
- div = div + 'top:' + (-(13 + ((this.lineStroke - 1) * 2))) + 'px;left:' +
11894
+ div = div + 'top:' + (-(13 + ((this.lineStroke - 1) * 2))) + 'px;' + direction +
11679
11895
  (data.childLeft - (data.parentLeft + data.parentWidth) - 20) + 'px;width:0px;' +
11680
11896
  this.getBorderStyles('left', this.lineStroke) +
11681
11897
  this.getBorderStyles('top', (heightValue + borderTopWidth - this.lineStroke + 1)) + 'position:relative;"></div>';
11682
11898
  div = div + eLine;
11683
- div = div + (isMilestoneParent ? 'left:-1px;' : '') + 'top:' +
11899
+ div = div + (isMilestoneParent ? direction + '-1px;' : '') + 'top:' +
11684
11900
  (-(13 + ((this.lineStroke - 1) * 2))) + 'px;width:' +
11685
11901
  (isMilestoneParent ? ((data.childLeft - (data.parentLeft + data.parentWidth + 20) + 1) + this.lineStroke) :
11686
11902
  ((data.childLeft - (data.parentLeft + data.parentWidth + 20)) + this.lineStroke)) + 'px;' +
11687
11903
  this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div></div>';
11688
11904
  }
11689
11905
  if (this.getParentPosition(data) === 'SSType4') {
11690
- div = div + 'left:' + (data.parentLeft - 10) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
11906
+ div = div + direction + (data.parentLeft - 10) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
11691
11907
  ((data.childIndex * data.rowHeight) + addTop + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
11692
11908
  'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="SSType4">';
11693
11909
  div = div + rightArrow;
11694
- div = div + 'left:' + (data.childLeft - data.parentLeft) + 'px;' + duplicateStingTwo;
11910
+ div = div + direction + (data.childLeft - data.parentLeft) + 'px;' + duplicateStingTwo;
11695
11911
  div = div + eLine;
11696
11912
  div = div + 'top:' + (-(6 + (5 + this.lineStroke) + (this.lineStroke / 2))) + 'px;width:' +
11697
11913
  (data.childLeft - data.parentLeft) + 'px;' + duplicateStingThree;
@@ -11700,11 +11916,11 @@ var ConnectorLine = /** @__PURE__ @class */ (function () {
11700
11916
  this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div></div>';
11701
11917
  }
11702
11918
  if (this.getParentPosition(data) === 'SSType3') {
11703
- 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 :
11704
11920
  ((data.childIndex * data.rowHeight) + addTop + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
11705
11921
  'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="SSType3">';
11706
11922
  div = div + rightArrow;
11707
- div = div + 'left:10px;' + duplicateStingTwo;
11923
+ div = div + direction + '10px;' + duplicateStingTwo;
11708
11924
  div = div + eLine;
11709
11925
  div = div + 'top:' + (-(6 + (5 + this.lineStroke) + (this.lineStroke / 2))) + 'px;width:10px;' + duplicateStingThree;
11710
11926
  div = div + eLine;
@@ -11713,7 +11929,7 @@ var ConnectorLine = /** @__PURE__ @class */ (function () {
11713
11929
  this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div></div>';
11714
11930
  }
11715
11931
  if (this.getParentPosition(data) === 'SSType2') {
11716
- div = div + 'left:' + setInnerElementLeftSSType2 + 'px;top:' + (isVirtual ? connectorLine$$1.top :
11932
+ div = div + direction + setInnerElementLeftSSType2 + 'px;top:' + (isVirtual ? connectorLine$$1.top :
11717
11933
  ((data.parentIndex * data.rowHeight) + addTop + this.getTaskbarMidpoint(isMilestoneParent) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
11718
11934
  'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="SSType2">';
11719
11935
  div = div + eLine;
@@ -11726,14 +11942,14 @@ var ConnectorLine = /** @__PURE__ @class */ (function () {
11726
11942
  div = div + 'width:' + setInnerElementWidthSSType2 + 'px;' +
11727
11943
  this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
11728
11944
  div = div + rightArrow;
11729
- div = div + 'left:' + setInnerElementWidthSSType2 + 'px;' +
11730
- this.getBorderStyles('left', 10) + 'top:' + (-6 - this.lineStroke) + 'px;' +
11945
+ div = div + direction + setInnerElementWidthSSType2 + 'px;' +
11946
+ this.getBorderStyles((this.parent.enableRtl ? 'right' : 'left'), 10) + 'top:' + (-6 - this.lineStroke) + 'px;' +
11731
11947
  'border-bottom-width:' + (5 + this.lineStroke) + 'px;border-top-width:' +
11732
11948
  (5 + this.lineStroke) + 'px;width:0;' +
11733
11949
  'height:0;position:relative;"></div></div>';
11734
11950
  }
11735
11951
  if (this.getParentPosition(data) === 'SSType1') {
11736
- div = div + 'left:' + (data.childLeft - 20) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
11952
+ div = div + direction + (data.childLeft - 20) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
11737
11953
  ((data.parentIndex * data.rowHeight) + addTop +
11738
11954
  this.getTaskbarMidpoint(isMilestoneParent) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
11739
11955
  'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="SSType1">';
@@ -11746,114 +11962,114 @@ var ConnectorLine = /** @__PURE__ @class */ (function () {
11746
11962
  div = div + eLine;
11747
11963
  div = div + 'width:10px;' + this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
11748
11964
  div = div + rightArrow;
11749
- div = div + 'left:10px;' + this.getBorderStyles('left', 10) +
11965
+ div = div + direction + '10px;' + this.getBorderStyles((this.parent.enableRtl ? 'right' : 'left'), 10) +
11750
11966
  'top:' + (-6 - this.lineStroke) + 'px;border-bottom-width:' + (5 + this.lineStroke) + 'px;' +
11751
11967
  'border-top-width:' + (5 + this.lineStroke) + 'px;width:0;height:0;position:relative;"></div></div>';
11752
11968
  }
11753
11969
  if (this.getParentPosition(data) === 'FFType1') {
11754
- div = div + 'left:' + (data.childLeft + data.childWidth) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
11970
+ div = div + direction + (data.childLeft + data.childWidth) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
11755
11971
  ((data.parentIndex * data.rowHeight) + addTop + this.getTaskbarMidpoint(isMilestoneParent) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
11756
11972
  'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="FFType1">';
11757
11973
  div = div + eLine;
11758
- div = div + 'left:' + (isMilestoneParent ? (((data.parentLeft + data.parentWidth) -
11974
+ div = div + direction + (isMilestoneParent ? (((data.parentLeft + data.parentWidth) -
11759
11975
  (data.childLeft + data.childWidth)) - 1) : ((data.parentLeft + data.parentWidth) -
11760
11976
  (data.childLeft + data.childWidth))) + 'px;' +
11761
11977
  'width:' + (isMilestoneParent ? (21 + this.lineStroke) : (20 + this.lineStroke)) + 'px;' +
11762
11978
  this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
11763
11979
  div = div + eLine;
11764
- div = div + 'left:' + (((data.parentLeft + data.parentWidth) -
11980
+ div = div + direction + (((data.parentLeft + data.parentWidth) -
11765
11981
  (data.childLeft + data.childWidth)) + 20) + 'px;width:0px;' + this.getBorderStyles('left', this.lineStroke) +
11766
11982
  this.getBorderStyles('top', (heightValue + borderTopWidth - this.lineStroke)) + 'position:relative;"></div>';
11767
11983
  div = div + eLine;
11768
- div = div + 'left:' + (isMilestone ? 4 : 10) + 'px;width:' + (isMilestone ?
11984
+ div = div + direction + (isMilestone ? 4 : 10) + 'px;width:' + (isMilestone ?
11769
11985
  (((data.parentLeft + data.parentWidth) - (data.childLeft + data.childWidth)) + (16 + this.lineStroke)) :
11770
11986
  (((data.parentLeft + data.parentWidth) - (data.childLeft + data.childWidth)) + (10 + this.lineStroke))) + 'px;' +
11771
11987
  this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
11772
11988
  div = div + leftArrow;
11773
- div = div + (isMilestone ? 'left:0px;' : '') + this.getBorderStyles('right', 10) +
11989
+ div = div + (isMilestone ? direction + '0px;' : '') + this.getBorderStyles((!this.parent.enableRtl ? 'right' : 'left'), 10) +
11774
11990
  'top:' + (-6 - this.lineStroke) + 'px;border-bottom-width:' + (5 + this.lineStroke) + 'px;' +
11775
11991
  'border-top-width:' + (5 + this.lineStroke) + 'px;width:0;height:0;position:relative;"></div></div>';
11776
11992
  }
11777
11993
  if (this.getParentPosition(data) === 'FFType2') {
11778
- div = div + 'left:' + (data.parentLeft + data.parentWidth) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
11994
+ div = div + direction + (data.parentLeft + data.parentWidth) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
11779
11995
  ((data.parentIndex * data.rowHeight) + addTop + this.getTaskbarMidpoint(isMilestoneParent) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
11780
11996
  'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="FFType2">';
11781
11997
  div = div + eLine;
11782
- div = div + (isMilestoneParent ? 'left:-1px;' : '') + 'width:' +
11998
+ div = div + (isMilestoneParent ? direction + '-1px;' : '') + 'width:' +
11783
11999
  (isMilestoneParent ? (((data.childLeft + data.childWidth) - (data.parentLeft + data.parentWidth)) +
11784
12000
  (21 + this.lineStroke)) : (((data.childLeft + data.childWidth) -
11785
12001
  (data.parentLeft + data.parentWidth)) + (20 + this.lineStroke))) + 'px;' +
11786
12002
  this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
11787
12003
  div = div + eLine;
11788
- div = div + 'left:' + (((data.childLeft + data.childWidth) - (data.parentLeft + data.parentWidth)) + 20) +
12004
+ div = div + direction + (((data.childLeft + data.childWidth) - (data.parentLeft + data.parentWidth)) + 20) +
11789
12005
  'px;width:0px;' + this.getBorderStyles('left', this.lineStroke) +
11790
12006
  this.getBorderStyles('top', (heightValue + borderTopWidth - this.lineStroke)) +
11791
12007
  'position:relative;"></div>';
11792
12008
  div = div + eLine;
11793
- div = div + 'left:' + (isMilestone ? (((data.childLeft + data.childWidth) - (data.parentLeft + data.parentWidth)) + 4) :
12009
+ div = div + direction + (isMilestone ? (((data.childLeft + data.childWidth) - (data.parentLeft + data.parentWidth)) + 4) :
11794
12010
  (((data.childLeft + data.childWidth) - (data.parentLeft + data.parentWidth)) + 10)) + 'px;' +
11795
12011
  'width:' + (isMilestone ? (16 + this.lineStroke) : (10 + this.lineStroke)) + 'px;' +
11796
12012
  this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
11797
12013
  div = div + leftArrow;
11798
- div = div + 'left:' + ((data.childLeft + data.childWidth) - (data.parentLeft + data.parentWidth)) + 'px;' +
11799
- this.getBorderStyles('right', 10) + 'top:' + (-6 - this.lineStroke) + 'px;' +
12014
+ div = div + direction + ((data.childLeft + data.childWidth) - (data.parentLeft + data.parentWidth)) + 'px;' +
12015
+ this.getBorderStyles((!this.parent.enableRtl ? 'right' : 'left'), 10) + 'top:' + (-6 - this.lineStroke) + 'px;' +
11800
12016
  'border-bottom-width:' + (5 + this.lineStroke) + 'px;border-top-width:' + (5 + this.lineStroke) +
11801
12017
  'px;width:0;height:0;position:relative;"></div></div>';
11802
12018
  }
11803
12019
  if (this.getParentPosition(data) === 'FFType3') {
11804
- div = div + 'left:' + (data.childLeft + data.childWidth) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
12020
+ div = div + direction + (data.childLeft + data.childWidth) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
11805
12021
  ((data.childIndex * data.rowHeight) + addTop + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
11806
12022
  'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="FFType3">';
11807
12023
  div = div + duplicateStingOne;
11808
12024
  div = div + eLine;
11809
- div = div + (isMilestone ? ('left:4px;width:' +
12025
+ div = div + (isMilestone ? (direction + '4px;width:' +
11810
12026
  (((data.parentLeft + data.parentWidth) - (data.childLeft + data.childWidth)) + 16)) :
11811
- ('left:10px;width:' + (((data.parentLeft + data.parentWidth) -
12027
+ (direction + '10px;width:' + (((data.parentLeft + data.parentWidth) -
11812
12028
  (data.childLeft + data.childWidth)) + 10))) + 'px;top:' + (-(6 + (5 + this.lineStroke) +
11813
12029
  (this.lineStroke / 2))) + 'px;' + this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
11814
12030
  div = div + eLine;
11815
- div = div + 'left:' + (((data.parentLeft + data.parentWidth) - (data.childLeft + data.childWidth)) + 20) +
12031
+ div = div + direction + (((data.parentLeft + data.parentWidth) - (data.childLeft + data.childWidth)) + 20) +
11816
12032
  'px;top:' + (-(13 + ((this.lineStroke - 1) * 2))) + 'px;' +
11817
12033
  'width:0px;' + this.getBorderStyles('left', this.lineStroke) +
11818
12034
  this.getBorderStyles('top', (heightValue + borderTopWidth - this.lineStroke + 1)) + 'position:relative;"></div>';
11819
12035
  div = div + eLine;
11820
- div = div + (isMilestoneParent ? ('left:' + (((data.parentLeft + data.parentWidth) -
11821
- (data.childLeft + data.childWidth)) - 1) + 'px;width:21') : ('left:' + ((data.parentLeft + data.parentWidth) -
12036
+ div = div + (isMilestoneParent ? (direction + (((data.parentLeft + data.parentWidth) -
12037
+ (data.childLeft + data.childWidth)) - 1) + 'px;width:21') : (direction + ((data.parentLeft + data.parentWidth) -
11822
12038
  (data.childLeft + data.childWidth)) + 'px;width:20')) +
11823
12039
  'px;top:' + (-(13 + ((this.lineStroke - 1) * 2))) + 'px;' +
11824
12040
  this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div></div>';
11825
12041
  }
11826
12042
  if (this.getParentPosition(data) === 'FFType4') {
11827
- div = div + 'left:' + (data.parentLeft + data.parentWidth) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
12043
+ div = div + direction + (data.parentLeft + data.parentWidth) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
11828
12044
  ((data.childIndex * data.rowHeight) + addTop + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
11829
12045
  'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="FFType4">';
11830
12046
  div = div + leftArrow;
11831
- div = div + ('left:' + ((data.childLeft + data.childWidth) -
12047
+ div = div + (direction + ((data.childLeft + data.childWidth) -
11832
12048
  (data.parentLeft + data.parentWidth))) + 'px;' +
11833
- this.getBorderStyles('right', 10) + 'top:' + (-5 - this.lineStroke + (this.lineStroke - 1)) + 'px;' +
12049
+ this.getBorderStyles((!this.parent.enableRtl ? 'right' : 'left'), 10) + 'top:' + (-5 - this.lineStroke + (this.lineStroke - 1)) + 'px;' +
11834
12050
  'border-bottom-width:' + (5 + this.lineStroke) +
11835
12051
  'px;border-top-width:' + (5 + this.lineStroke) + 'px;width:0;height:0;' +
11836
12052
  'position:relative;"></div>';
11837
12053
  div = div + eLine;
11838
- div = div + (isMilestone ? ('left:' + (((data.childLeft + data.childWidth) -
12054
+ div = div + (isMilestone ? (direction + (((data.childLeft + data.childWidth) -
11839
12055
  (data.parentLeft + data.parentWidth)) + 4) +
11840
- 'px;width:' + (16 + this.lineStroke)) : ('left:' + (((data.childLeft + data.childWidth) -
12056
+ 'px;width:' + (16 + this.lineStroke)) : (direction + (((data.childLeft + data.childWidth) -
11841
12057
  (data.parentLeft + data.parentWidth)) + 10) + 'px;width:' + (10 + this.lineStroke))) +
11842
12058
  'px;' + duplicateStingFive;
11843
12059
  div = div + eLine;
11844
- div = div + 'left:' + (((data.childLeft + data.childWidth) -
12060
+ div = div + direction + (((data.childLeft + data.childWidth) -
11845
12061
  (data.parentLeft + data.parentWidth)) + 20) + 'px;top:' + (-(13 + ((this.lineStroke - 1) * 2))) +
11846
12062
  'px;width:0px;' + this.getBorderStyles('left', this.lineStroke) +
11847
12063
  this.getBorderStyles('top', (heightValue + borderTopWidth - this.lineStroke + 1)) + 'position:relative;"></div>';
11848
12064
  div = div + eLine;
11849
- div = div + (isMilestoneParent ? ('left:-1px;width:' + (((data.childLeft + data.childWidth) -
12065
+ div = div + (isMilestoneParent ? (direction + '-1px;width:' + (((data.childLeft + data.childWidth) -
11850
12066
  (data.parentLeft + data.parentWidth)) + (21 + this.lineStroke))) : ('width:' + (((data.childLeft + data.childWidth) -
11851
12067
  (data.parentLeft + data.parentWidth)) + (20 + this.lineStroke)))) + 'px;top:' +
11852
12068
  (-(13 + ((this.lineStroke - 1) * 2))) + 'px;' +
11853
12069
  this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div></div>';
11854
12070
  }
11855
12071
  if (this.getParentPosition(data) === 'SFType4') {
11856
- div = div + 'left:' + (data.parentLeft - 10) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
12072
+ div = div + direction + (data.parentLeft - 10) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
11857
12073
  ((data.childIndex * data.rowHeight) + addTop + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;width:1px;' +
11858
12074
  'height:' + heightValue + 'px;position:absolute" data-connectortype="SFType4">';
11859
12075
  div = div + duplicateStingFour + 'top:' + (-5 - this.lineStroke + (this.lineStroke - 1)) + 'px;' +
@@ -11861,11 +12077,11 @@ var ConnectorLine = /** @__PURE__ @class */ (function () {
11861
12077
  'px;border-top-width:' + (5 + this.lineStroke) + 'px;width:0;height:0;' +
11862
12078
  'position:relative;"></div>';
11863
12079
  div = div + eLine;
11864
- div = div + 'left:' + (isMilestone ? ((((data.childLeft + data.childWidth) - (data.parentLeft)) + (14 + this.lineStroke)) +
12080
+ div = div + direction + (isMilestone ? ((((data.childLeft + data.childWidth) - (data.parentLeft)) + (14 + this.lineStroke)) +
11865
12081
  'px;width:16') : ((((data.childLeft + data.childWidth) - (data.parentLeft)) + 20) + 'px;width:' +
11866
12082
  (10 + this.lineStroke))) + 'px;' + duplicateStingFive;
11867
12083
  div = div + eLine;
11868
- div = div + 'left:' + (((data.childLeft + data.childWidth) - (data.parentLeft)) + 30) + 'px;top:' +
12084
+ div = div + direction + (((data.childLeft + data.childWidth) - (data.parentLeft)) + 30) + 'px;top:' +
11869
12085
  (-(13 + ((this.lineStroke - 1) * 2))) + 'px;width:0px;' + this.getBorderStyles('left', this.lineStroke) +
11870
12086
  this.getBorderStyles('top', (heightValue + borderTopWidth - this.getconnectorLineGap(data) - (this.lineStroke - 1))) + 'position:relative;"></div>';
11871
12087
  div = div + eLine;
@@ -11881,25 +12097,25 @@ var ConnectorLine = /** @__PURE__ @class */ (function () {
11881
12097
  this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div></div>';
11882
12098
  }
11883
12099
  if (this.getParentPosition(data) === 'SFType3') {
11884
- div = div + 'left:' + (data.childLeft + data.childWidth) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
12100
+ div = div + direction + (data.childLeft + data.childWidth) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
11885
12101
  ((data.childIndex * data.rowHeight) + addTop + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
11886
12102
  'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="SFType3">';
11887
12103
  div = div + duplicateStingOne;
11888
12104
  div = div + eLine;
11889
- div = div + (isMilestone ? 'left:4px;width:' + (16 + this.lineStroke) : 'left:10px;width:' +
12105
+ div = div + (isMilestone ? direction + '4px;width:' + (16 + this.lineStroke) : direction + '10px;width:' +
11890
12106
  (10 + this.lineStroke)) + 'px;top:' + (-(13 + ((this.lineStroke - 1) * 2) - 1)) + 'px;' +
11891
12107
  this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
11892
12108
  div = div + eLine;
11893
- div = div + 'left:20px;top:' + (-(13 + ((this.lineStroke - 1) * 2))) + 'px;width:0px;' +
12109
+ div = div + direction + '20px;top:' + (-(13 + ((this.lineStroke - 1) * 2))) + 'px;width:0px;' +
11894
12110
  this.getBorderStyles('left', this.lineStroke) +
11895
12111
  this.getBorderStyles('top', (heightValue + borderTopWidth - (this.lineStroke - 1))) + 'position:relative;"></div>';
11896
12112
  div = div + eLine;
11897
- div = div + 'left:20px;top:' + (-(13 + ((this.lineStroke - 1) * 2))) + 'px;width:' +
12113
+ div = div + direction + '20px;top:' + (-(13 + ((this.lineStroke - 1) * 2))) + 'px;width:' +
11898
12114
  ((data.parentLeft - (data.childLeft + data.childWidth + 20)) + this.lineStroke) + 'px;' +
11899
12115
  this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div></div>';
11900
12116
  }
11901
12117
  if (this.getParentPosition(data) === 'SFType1') {
11902
- div = div + 'left:' + (data.parentLeft - 10) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
12118
+ div = div + direction + (data.parentLeft - 10) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
11903
12119
  ((data.parentIndex * data.rowHeight) + addTop + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
11904
12120
  'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="SFType1">';
11905
12121
  div = div + eLine;
@@ -11911,12 +12127,12 @@ var ConnectorLine = /** @__PURE__ @class */ (function () {
11911
12127
  div = div + 'width:' + (((data.childLeft + data.childWidth) - (data.parentLeft)) + (30 + this.lineStroke)) + 'px;' +
11912
12128
  this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
11913
12129
  div = div + eLine;
11914
- div = div + 'left:' + (((data.childLeft + data.childWidth) - (data.parentLeft)) + 30) +
12130
+ div = div + direction + (((data.childLeft + data.childWidth) - (data.parentLeft)) + 30) +
11915
12131
  'px;width:0px;' + this.getBorderStyles('left', this.lineStroke) +
11916
12132
  this.getBorderStyles('top', (this.getconnectorLineGap(data) - this.lineStroke)) + 'position:relative;"></div>';
11917
12133
  div = div + eLine;
11918
- div = div + (isMilestone ? ('left:' + (((data.childLeft + data.childWidth) -
11919
- (data.parentLeft)) + 15) + 'px;width:' + (15 + this.lineStroke)) : ('left:' +
12134
+ div = div + (isMilestone ? (direction + (((data.childLeft + data.childWidth) -
12135
+ (data.parentLeft)) + 15) + 'px;width:' + (15 + this.lineStroke)) : (direction +
11920
12136
  (((data.childLeft + data.childWidth) - (data.parentLeft)) + 20) + 'px;width:' + (10 + this.lineStroke))) + 'px;' +
11921
12137
  this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
11922
12138
  div = div + duplicateStingFour + 'top:' + (-6 - this.lineStroke) + 'px;' +
@@ -11924,23 +12140,23 @@ var ConnectorLine = /** @__PURE__ @class */ (function () {
11924
12140
  (5 + this.lineStroke) + 'px;position:relative;"></div></div>';
11925
12141
  }
11926
12142
  if (this.getParentPosition(data) === 'SFType2') {
11927
- div = div + 'left:' + (data.childLeft + data.childWidth) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
12143
+ div = div + direction + (data.childLeft + data.childWidth) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
11928
12144
  ((data.parentIndex * data.rowHeight) + addTop + this.getTaskbarMidpoint(isMilestoneParent) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
11929
12145
  'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="SFType2">';
11930
12146
  div = div + eLine;
11931
- div = div + 'left:' + (((data.parentLeft) - (data.childLeft + data.childWidth)) - 10) +
12147
+ div = div + direction + (((data.parentLeft) - (data.childLeft + data.childWidth)) - 10) +
11932
12148
  'px;width:11px;' + this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
11933
12149
  div = div + eLine;
11934
- div = div + 'left:' + (((data.parentLeft) - (data.childLeft + data.childWidth)) - 10) +
12150
+ div = div + direction + (((data.parentLeft) - (data.childLeft + data.childWidth)) - 10) +
11935
12151
  'px;width:0px;' + this.getBorderStyles('left', this.lineStroke) +
11936
12152
  this.getBorderStyles('top', (heightValue + borderTopWidth - this.lineStroke)) + 'position:relative;"></div>';
11937
12153
  div = div + eLine;
11938
- div = div + (isMilestone ? ('left:4px;width:' + (((data.parentLeft) - (data.childLeft + data.childWidth))
11939
- - (14 - this.lineStroke))) : ('left:10px;width:' + (((data.parentLeft) -
12154
+ div = div + (isMilestone ? (direction + '4px;width:' + (((data.parentLeft) - (data.childLeft + data.childWidth))
12155
+ - (14 - this.lineStroke))) : (direction + '10px;width:' + (((data.parentLeft) -
11940
12156
  (data.childLeft + data.childWidth)) - (20 - this.lineStroke)))) +
11941
12157
  'px;' + this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
11942
12158
  div = div + leftArrow;
11943
- div = div + 'left:0px;' + this.getBorderStyles('right', 10) +
12159
+ div = div + direction + '0px;' + this.getBorderStyles((this.parent.enableRtl ? 'right' : 'left'), 10) +
11944
12160
  'top:' + (-6 - this.lineStroke) + 'px;border-bottom-width:' + (5 + this.lineStroke) +
11945
12161
  'px;border-top-width:' + (5 + this.lineStroke) + 'px;width:0;height:0;position:relative;"></div></div>';
11946
12162
  }
@@ -12129,12 +12345,19 @@ var Splitter$1 = /** @__PURE__ @class */ (function () {
12129
12345
  this.parent.splitterElement = createElement('div', { className: splitter });
12130
12346
  this.parent.treeGridPane = createElement('div', { className: treeGridPane });
12131
12347
  this.parent.chartPane = createElement('div', { className: ganttChartPane });
12132
- this.parent.splitterElement.appendChild(this.parent.treeGridPane);
12133
- this.parent.splitterElement.appendChild(this.parent.chartPane);
12348
+ if (this.parent.enableRtl) {
12349
+ this.parent.splitterElement.appendChild(this.parent.chartPane);
12350
+ this.parent.splitterElement.appendChild(this.parent.treeGridPane);
12351
+ }
12352
+ else {
12353
+ this.parent.splitterElement.appendChild(this.parent.treeGridPane);
12354
+ this.parent.splitterElement.appendChild(this.parent.chartPane);
12355
+ }
12134
12356
  this.splitterObject = new Splitter({
12135
12357
  height: null,
12136
12358
  width: this.parent.ganttWidth.toString(),
12137
12359
  enablePersistence: this.parent.enablePersistence,
12360
+ enableRtl: this.parent.enableRtl,
12138
12361
  separatorSize: this.parent.splitterSettings.separatorSize,
12139
12362
  paneSettings: [
12140
12363
  {
@@ -12148,6 +12371,9 @@ var Splitter$1 = /** @__PURE__ @class */ (function () {
12148
12371
  ],
12149
12372
  orientation: 'Horizontal',
12150
12373
  resizeStart: function (args) {
12374
+ if (_this.parent.contextMenuModule && _this.parent.contextMenuModule.isOpen) {
12375
+ _this.parent.contextMenuModule.contextMenu.close();
12376
+ }
12151
12377
  var leftPane = args.pane[0];
12152
12378
  var rightPane = args.pane[1];
12153
12379
  _this.splitterPreviousPositionGrid = leftPane.scrollWidth + 1 + 'px';
@@ -12310,6 +12536,7 @@ var Tooltip$1 = /** @__PURE__ @class */ (function () {
12310
12536
  '.e-taskbar-left-resizer, .e-taskbar-right-resizer, .e-baseline-gantt-milestone, .e-gantt-manualparenttaskbar';
12311
12537
  this.toolTipObj.position = 'BottomCenter';
12312
12538
  this.toolTipObj.openDelay = 700;
12539
+ this.toolTipObj.enableRtl = this.parent.enableRtl;
12313
12540
  this.toolTipObj.enableHtmlSanitizer = false;
12314
12541
  this.toolTipObj.cssClass = ganttTooltip;
12315
12542
  this.toolTipObj.animation = { open: { effect: 'None', delay: 0 }, close: { effect: 'None', delay: 0 } };
@@ -12950,6 +13177,7 @@ var FocusModule = /** @__PURE__ @class */ (function () {
12950
13177
  var top_1 = containerPosition.top + (containerPosition.height / 2);
12951
13178
  var left = containerPosition.left + (containerPosition.width / 2);
12952
13179
  this.setActiveElement(e.target);
13180
+ // eslint-disable-next-line security/detect-non-literal-fs-filename
12953
13181
  contextMenu.open(top_1, left);
12954
13182
  e.preventDefault();
12955
13183
  break;
@@ -13054,6 +13282,8 @@ var Gantt = /** @__PURE__ @class */ (function (_super) {
13054
13282
  __extends(Gantt, _super);
13055
13283
  function Gantt(options, element) {
13056
13284
  var _this = _super.call(this, options, element) || this;
13285
+ _this.showIndicator = true;
13286
+ _this.singleTier = 0;
13057
13287
  /** @hidden */
13058
13288
  _this.isCancelled = false;
13059
13289
  /** @hidden */
@@ -13249,7 +13479,7 @@ var Gantt = /** @__PURE__ @class */ (function (_super) {
13249
13479
  /**
13250
13480
  * To check whether the date is in DST.
13251
13481
  *
13252
- * @param {Date} date .
13482
+ * @param {Date} date - Defines the date to check whether it is DST.
13253
13483
  * @returns {boolean} .
13254
13484
  * @private
13255
13485
  */
@@ -13340,9 +13570,348 @@ var Gantt = /** @__PURE__ @class */ (function (_super) {
13340
13570
  }
13341
13571
  this.splitterModule.renderSplitter();
13342
13572
  this.notify('renderPanels', null);
13343
- this.showSpinner();
13573
+ if (!isNullOrUndefined(this.loadingIndicator) && this.loadingIndicator.indicatorType === "Shimmer") {
13574
+ this.showMaskRow();
13575
+ }
13576
+ else {
13577
+ this.showSpinner();
13578
+ }
13344
13579
  this.dataOperation.checkDataBinding();
13345
13580
  };
13581
+ Gantt.prototype.hideMaskRow = function () {
13582
+ var isTablePresent = this.element.querySelectorAll('.e-masked-table').length;
13583
+ if (!isNullOrUndefined(this.contentMaskTable) && isTablePresent != 0) {
13584
+ var maskTable = this.contentMaskTable;
13585
+ remove(maskTable);
13586
+ this.contentMaskTable = null;
13587
+ }
13588
+ isTablePresent = this.element.querySelectorAll('.e-masked-table').length;
13589
+ if (!isNullOrUndefined(this.headerMaskTable) && isTablePresent != 0) {
13590
+ var maskTable = this.headerMaskTable;
13591
+ remove(maskTable);
13592
+ this.headerMaskTable = null;
13593
+ }
13594
+ while ((this.element.querySelectorAll('.e-table-background')).length != 0) {
13595
+ this.element.querySelectorAll('.e-table-background')[0].remove();
13596
+ }
13597
+ while ((this.element.querySelectorAll('.e-temp-timeline')).length != 0) {
13598
+ this.element.querySelectorAll('.e-temp-timeline')[0].remove();
13599
+ }
13600
+ if (this.element.querySelectorAll('.' + timelineHeaderTableContainer).length != 0) {
13601
+ for (var i = 0; i < this.singleTier; i++) {
13602
+ if (!isNullOrUndefined(this.element.querySelectorAll('.' + timelineHeaderTableContainer)[i])) {
13603
+ this.element.querySelectorAll('.' + timelineHeaderTableContainer)[i]['style'].visibility = "visible";
13604
+ }
13605
+ }
13606
+ }
13607
+ if (!isNullOrUndefined(this.element.querySelector('.' + timelineHeaderContainer))) {
13608
+ this.element.querySelector('.' + timelineHeaderContainer)['style'].position = "relative";
13609
+ }
13610
+ if (!isNullOrUndefined(this.element.getElementsByClassName(chartBodyContent)[0])) {
13611
+ this.element.getElementsByClassName(chartBodyContent)[0]['style'].visibility = "visible";
13612
+ }
13613
+ };
13614
+ Gantt.prototype.showMaskRow = function () {
13615
+ var ganttHeader = this.chartPane.childNodes[0].childNodes[0];
13616
+ this.scrollLeftValue = this.chartPane.childNodes[0].childNodes[0]['scrollLeft'];
13617
+ var ganttContent = this.chartPane.childNodes[0].childNodes[1];
13618
+ if (!this.contentMaskTable) {
13619
+ if (ganttContent) {
13620
+ var content$$1 = ganttContent;
13621
+ this.renderBackGround(content$$1);
13622
+ if (this.element.querySelectorAll('.' + timelineHeaderTableContainer).length != 0) {
13623
+ this.singleTier = this.timelineModule.isSingleTier ? 1 : 2;
13624
+ for (var i = 0; i < this.singleTier; i++) {
13625
+ this.element.querySelectorAll('.' + timelineHeaderTableContainer)[i]['style'].visibility = "hidden";
13626
+ }
13627
+ }
13628
+ if (this.singleTier === 0) {
13629
+ this.singleTier = 2;
13630
+ }
13631
+ this.element.getElementsByClassName(chartBodyContent)[0]['style'].visibility = "hidden";
13632
+ this.contentMaskTable = this.contentMaskTable = this.createMaskTable(content$$1);
13633
+ }
13634
+ if (ganttHeader) {
13635
+ this.element.querySelector('.' + timelineHeaderContainer)['style'].position = "static";
13636
+ var content$$1 = ganttHeader;
13637
+ this.renderHeaderBackground(content$$1);
13638
+ this.headerMaskTable = this.headerMaskTable = this.createMaskTable(content$$1);
13639
+ }
13640
+ }
13641
+ };
13642
+ Gantt.prototype.renderHeaderBackground = function (element) {
13643
+ var parentElement = element;
13644
+ var timelineHeight = element.getBoundingClientRect().height;
13645
+ var header = closest(parentElement, '.' + timelineHeaderContainer) ? true : false;
13646
+ if (header) {
13647
+ var div = this.createElement('div', { className: 'e-table-background' });
13648
+ var tempRow = this.createElement('tr', { className: 'e-masked-row e-row', attrs: {
13649
+ style: 'height: ' + timelineHeight + 'px;'
13650
+ } });
13651
+ var backgroundLines = 0;
13652
+ var containerWidth = Math.round(element.getBoundingClientRect().width);
13653
+ for (var i = 0; i < 3; i++) {
13654
+ if (this.enableRtl) {
13655
+ div.appendChild(this.createElement('div', { className: 'e-div-background', attrs: {
13656
+ style: 'left: ' + (containerWidth -= ((160))) + 'px; top:0px;'
13657
+ } }));
13658
+ }
13659
+ else {
13660
+ div.appendChild(this.createElement('div', { className: 'e-div-background', attrs: {
13661
+ style: 'left: ' + (backgroundLines += ((160))) + 'px; top:0px;'
13662
+ } }));
13663
+ }
13664
+ }
13665
+ parentElement.insertBefore(div, parentElement.firstChild);
13666
+ }
13667
+ };
13668
+ Gantt.prototype.renderBackGround = function (element) {
13669
+ var parentElement = element;
13670
+ var timelineHeight = element.getBoundingClientRect().height;
13671
+ var content$$1 = closest(parentElement, '.' + chartBodyContainer) ? true : false;
13672
+ if (content$$1) {
13673
+ var div = this.createElement('div', { className: 'e-table-background' });
13674
+ var tempRow = this.createElement('tr', { className: 'e-masked-row e-row', attrs: {
13675
+ style: 'height: ' + timelineHeight + 'px;'
13676
+ } });
13677
+ var backgroundLines = 0;
13678
+ var containerWidth = Math.round(element.getBoundingClientRect().width);
13679
+ for (var i = 0; i < 3; i++) {
13680
+ if (this.enableRtl) {
13681
+ div.appendChild(this.createElement('div', { className: 'e-div-background', attrs: {
13682
+ style: 'left: ' + (containerWidth -= (160)) + 'px;z-index:1;'
13683
+ } }));
13684
+ }
13685
+ else {
13686
+ div.appendChild(this.createElement('div', { className: 'e-div-background', attrs: {
13687
+ style: 'left: ' + (backgroundLines += (160)) + 'px;z-index:1;'
13688
+ } }));
13689
+ }
13690
+ }
13691
+ parentElement.insertBefore(div, parentElement.firstChild);
13692
+ }
13693
+ };
13694
+ Gantt.prototype.createMaskTable = function (element) {
13695
+ var parentElement = element;
13696
+ var shimmerContainerHeight = element.getBoundingClientRect().height;
13697
+ var header = closest(parentElement, '.' + timelineHeaderContainer) ? true : false;
13698
+ var maskTable;
13699
+ if (header) {
13700
+ maskTable = this.createEmptyTimeLineTable(shimmerContainerHeight);
13701
+ maskTable.style.position = 'sticky';
13702
+ maskTable.style.left = 0 + 'px';
13703
+ if (this.enableRtl) {
13704
+ maskTable.style.removeProperty('left');
13705
+ }
13706
+ }
13707
+ else {
13708
+ maskTable = this.createEmptyMaskTable(shimmerContainerHeight);
13709
+ maskTable.style.position = 'absolute';
13710
+ maskTable.style.zIndex = 1;
13711
+ }
13712
+ if (!header) {
13713
+ maskTable.style.height = element.getBoundingClientRect().height + 'px';
13714
+ parentElement.insertBefore(maskTable, parentElement.firstChild);
13715
+ }
13716
+ else {
13717
+ maskTable.style.height = element.getBoundingClientRect().height + 'px';
13718
+ var div = this.createElement('div', { className: 'e-temp-timeline' });
13719
+ div.style.width = 614 + 'px';
13720
+ div.style.position = 'sticky';
13721
+ if (this.enableRtl) {
13722
+ div.style['margin-right'] = Math.abs(this.scrollLeftValue) + 'px';
13723
+ }
13724
+ else {
13725
+ div.style['margin-left'] = this.scrollLeftValue + 'px';
13726
+ }
13727
+ div.appendChild(maskTable);
13728
+ parentElement.insertBefore(div, parentElement.firstChild);
13729
+ }
13730
+ return maskTable;
13731
+ };
13732
+ Gantt.prototype.createEmptyTimeLineTable = function (timelineHeight) {
13733
+ var table = this.createElement('table', { className: 'e-table e-masked-table' });
13734
+ var tbody = this.createElement('tbody', { className: 'e-masked-tbody' });
13735
+ var row = [];
13736
+ var duplicateRow = this.createElement('tr', { className: 'e-masked-row e-row', attrs: {
13737
+ style: 'height: ' + timelineHeight / 2 + 'px;'
13738
+ } });
13739
+ for (var i = 0; i < this.singleTier; i++) {
13740
+ row.push(duplicateRow.cloneNode(true));
13741
+ }
13742
+ this.topBottomHeader = 0;
13743
+ for (var i = 0; i < row.length; i++) {
13744
+ tbody.appendChild(this.applyTimelineMaskRow(row[i]));
13745
+ this.topBottomHeader = this.topBottomHeader + 1;
13746
+ }
13747
+ table.appendChild(tbody);
13748
+ table.style.width = 100 + '%';
13749
+ return table;
13750
+ };
13751
+ Gantt.prototype.applyTimelineMaskRow = function (row) {
13752
+ var maskRow = row;
13753
+ maskRow.appendChild(this.createElement('td', { className: 'e-timeline-masked-top-header-cell' }));
13754
+ maskRow.appendChild(this.createElement('td', { className: 'e-timeline-masked-top-header-cell' }));
13755
+ maskRow.appendChild(this.createElement('td', { className: 'e-timeline-masked-top-header-cell' }));
13756
+ maskRow.appendChild(this.createElement('td', { className: 'e-timeline-masked-top-header-cell' }));
13757
+ for (var i = 0; i < maskRow.childNodes.length - 1; i++) {
13758
+ maskRow.childNodes[i]['style']['width'] = 166 + 'px';
13759
+ }
13760
+ var maskCells = [].slice.call(maskRow.childNodes);
13761
+ for (var i = 0; i < maskCells.length; i++) {
13762
+ var maskCell = maskCells[i];
13763
+ switch (this.topBottomHeader) {
13764
+ case 0:
13765
+ if (this.enableRtl) {
13766
+ maskCell.innerHTML = '<span class="e-mask e-skeleton e-skeleton-text e-shimmer-wave e-timelineHeader"></span>';
13767
+ maskCell.children[0]['style'].left = -20 + 'px';
13768
+ }
13769
+ else {
13770
+ maskCell.innerHTML = '<span class="e-mask e-skeleton e-skeleton-text e-shimmer-wave e-timelineHeader"></span>';
13771
+ }
13772
+ break;
13773
+ case 1:
13774
+ maskCell.appendChild(this.createElement('td', { className: 'e-timeline-masked-top-header-cell' }));
13775
+ maskCell.appendChild(this.createElement('td', { className: 'e-timeline-masked-top-header-cell' }));
13776
+ maskCell.appendChild(this.createElement('td', { className: 'e-timeline-masked-top-header-cell' }));
13777
+ var innerMaskCells = [].slice.call(maskCell.childNodes);
13778
+ for (var i_1 = 0; i_1 < innerMaskCells.length; i_1++) {
13779
+ var htmlInner = innerMaskCells[i_1];
13780
+ if (i_1 === 0) {
13781
+ if (this.enableRtl) {
13782
+ htmlInner.innerHTML = '<span class="e-mask e-skeleton e-skeleton-text e-shimmer-wave e-innerHTML"></span>';
13783
+ htmlInner.children[0]['style'].left = -14 + 'px';
13784
+ }
13785
+ else {
13786
+ htmlInner.innerHTML = '<span class="e-mask e-skeleton e-skeleton-text e-shimmer-wave e-innerHTML"></span>';
13787
+ }
13788
+ }
13789
+ else if (i_1 === 1) {
13790
+ if (this.enableRtl) {
13791
+ htmlInner.innerHTML = '<span class="e-mask e-skeleton e-skeleton-text e-shimmer-wave e-innerHTML1"></span>';
13792
+ htmlInner.children[0]['style'].left = -30 + 'px';
13793
+ }
13794
+ else {
13795
+ htmlInner.innerHTML = '<span class="e-mask e-skeleton e-skeleton-text e-shimmer-wave e-innerHTML1"></span>';
13796
+ }
13797
+ }
13798
+ else {
13799
+ if (this.enableRtl) {
13800
+ htmlInner.innerHTML = '<span class="e-mask e-skeleton e-skeleton-text e-shimmer-wave e-innerHTML2"></span>';
13801
+ htmlInner.children[0]['style'].left = -60 + 'px';
13802
+ }
13803
+ else {
13804
+ htmlInner.innerHTML = '<span class="e-mask e-skeleton e-skeleton-text e-shimmer-wave e-innerHTML2"></span>';
13805
+ }
13806
+ }
13807
+ }
13808
+ break;
13809
+ }
13810
+ }
13811
+ return maskRow;
13812
+ };
13813
+ Gantt.prototype.createEmptyMaskTable = function (timelineHeight) {
13814
+ var table = this.createElement('table', { className: 'e-table e-masked-table' });
13815
+ var tbody = this.createElement('tbody', { className: 'e-masked-tbody' });
13816
+ var row = [];
13817
+ var duplicateRow = this.createElement('tr', { className: 'e-masked-row e-row', attrs: {
13818
+ style: 'height: ' + timelineHeight / 7 + 'px;'
13819
+ } });
13820
+ this.columnLoop = 0;
13821
+ for (var i = 0; i < 6; i++) {
13822
+ row.push(duplicateRow.cloneNode(true));
13823
+ }
13824
+ for (var j = 0; j < row.length; j++) {
13825
+ if (this.columnLoop < 4) {
13826
+ this.columnLoop = this.columnLoop + 1;
13827
+ }
13828
+ else if (this.columnLoop === 4) {
13829
+ this.columnLoop = 1;
13830
+ }
13831
+ tbody.appendChild(this.applyMaskRow(row[j]));
13832
+ }
13833
+ table.appendChild(tbody);
13834
+ table.style.width = 100 + '%';
13835
+ var div = this.createElement('div', { className: 'e-temp-container' });
13836
+ div.style.width = 'calc(100% - ' + 17 + 'px)';
13837
+ div.style.overflow = 'hidden';
13838
+ div.appendChild(table);
13839
+ return div;
13840
+ };
13841
+ Gantt.prototype.applyMaskRow = function (row) {
13842
+ var maskRow = row;
13843
+ if (this.columnLoop < 4) {
13844
+ maskRow.appendChild(this.createElement('td', { className: 'e-masked-cell e-rowcell' }));
13845
+ maskRow.appendChild(this.createElement('td', { className: 'e-masked-cell e-rowcell' }));
13846
+ }
13847
+ else {
13848
+ maskRow.appendChild(this.createElement('td', { className: 'e-masked-cell e-rowcell' }));
13849
+ }
13850
+ var maskCells = [].slice.call(maskRow.childNodes);
13851
+ for (var i = 0; i < maskCells.length; i++) {
13852
+ var maskCell = maskCells[i];
13853
+ switch (this.columnLoop) {
13854
+ case 1:
13855
+ if (i === 0) {
13856
+ if (this.enableRtl) {
13857
+ maskCell.innerHTML = '<span class="e-mask e-skeleton e-skeleton-text e-shimmer-wave e-maskcell01"></span>';
13858
+ maskCell.children[0]['style'].left = -14 + 'px';
13859
+ }
13860
+ else {
13861
+ maskCell.innerHTML = '<span class="e-mask e-skeleton e-skeleton-text e-shimmer-wave e-maskcell01"></span>';
13862
+ }
13863
+ }
13864
+ else {
13865
+ maskCell.innerHTML = '<span class="e-mask e-skeleton e-skeleton-text e-shimmer-wave e-maskcell02"></span>';
13866
+ }
13867
+ break;
13868
+ case 2:
13869
+ if (i === 0) {
13870
+ if (this.enableRtl) {
13871
+ maskCell.innerHTML = '<span class="e-mask e-skeleton e-skeleton-text e-shimmer-wave e-maskcell03"></span>';
13872
+ maskCell.children[0]['style'].left = -14 + 'px';
13873
+ }
13874
+ else {
13875
+ maskCell.innerHTML = '<span class="e-mask e-skeleton e-skeleton-text e-shimmer-wave e-maskcell03"></span>';
13876
+ }
13877
+ }
13878
+ else {
13879
+ maskCell.innerHTML = '<span class="e-mask e-skeleton e-skeleton-text e-shimmer-wave e-maskcell04"></span>';
13880
+ }
13881
+ break;
13882
+ case 3:
13883
+ if (i === 0) {
13884
+ if (this.enableRtl) {
13885
+ maskCell.innerHTML = '<span class="e-mask e-skeleton e-skeleton-text e-shimmer-wave e-maskcell05"></span>';
13886
+ maskCell.children[0]['style'].left = -64 + 'px';
13887
+ }
13888
+ else {
13889
+ maskCell.innerHTML = '<span class="e-mask e-skeleton e-skeleton-text e-shimmer-wave e-maskcell05"></span>';
13890
+ }
13891
+ }
13892
+ else {
13893
+ if (this.enableRtl) {
13894
+ maskCell.innerHTML = '<span class="e-mask e-skeleton e-skeleton-text e-shimmer-wave e-maskcell06"></span>';
13895
+ maskCell.children[0]['style'].left = -192 + 'px';
13896
+ }
13897
+ else {
13898
+ maskCell.innerHTML = '<span class="e-mask e-skeleton e-skeleton-text e-shimmer-wave e-maskcell06"></span>';
13899
+ }
13900
+ }
13901
+ break;
13902
+ case 4:
13903
+ if (this.enableRtl) {
13904
+ maskCell.innerHTML = '<span class="e-mask e-skeleton e-skeleton-text e-shimmer-wave e-maskcell07"></span>';
13905
+ maskCell.children[0]['style'].left = -388 + 'px';
13906
+ }
13907
+ else {
13908
+ maskCell.innerHTML = '<span class="e-mask e-skeleton e-skeleton-text e-shimmer-wave e-maskcell07"></span>';
13909
+ }
13910
+ break;
13911
+ }
13912
+ }
13913
+ return maskRow;
13914
+ };
13346
13915
  /**
13347
13916
  * Method used to show spinner.
13348
13917
  *
@@ -13368,7 +13937,7 @@ var Gantt = /** @__PURE__ @class */ (function (_super) {
13368
13937
  this.timelineModule.calculateZoomingLevelsPerDayWidth(); // To calculate the perDaywidth
13369
13938
  };
13370
13939
  /**
13371
- * @param {boolean} isChange .
13940
+ * @param {boolean} isChange -Defines whether task data is changed.
13372
13941
  * @returns {void} .
13373
13942
  * @private
13374
13943
  */
@@ -13468,7 +14037,7 @@ var Gantt = /** @__PURE__ @class */ (function (_super) {
13468
14037
  /**
13469
14038
  * Method for updating row height value in connector line collections
13470
14039
  *
13471
- * @param {IConnectorLineObject[]} collection .
14040
+ * @param {IConnectorLineObject[]} collection -Defines the CollectorLine collection.
13472
14041
  * @returns {void} .
13473
14042
  * @private
13474
14043
  */
@@ -13504,7 +14073,7 @@ var Gantt = /** @__PURE__ @class */ (function (_super) {
13504
14073
  this.currentViewData = this.treeGrid.getCurrentViewRecords().slice();
13505
14074
  };
13506
14075
  /**
13507
- * @param {IGanttData} records .
14076
+ * @param {IGanttData} records -Defines the delete record collections.
13508
14077
  * @returns {IGanttData} .
13509
14078
  * @private
13510
14079
  */
@@ -13516,7 +14085,7 @@ var Gantt = /** @__PURE__ @class */ (function (_super) {
13516
14085
  return updatedRecord;
13517
14086
  };
13518
14087
  /**
13519
- * @param {object} args .
14088
+ * @param {object} args -Update the gantt element content height.
13520
14089
  * @returns {void} .
13521
14090
  * @private
13522
14091
  */
@@ -13869,7 +14438,12 @@ var Gantt = /** @__PURE__ @class */ (function (_super) {
13869
14438
  this.treeGrid.height = '100%';
13870
14439
  this.notify('tree-grid-created', {});
13871
14440
  this.createGanttPopUpElement();
13872
- this.hideSpinner();
14441
+ if (!isNullOrUndefined(this.loadingIndicator) && this.loadingIndicator.indicatorType === "Shimmer") {
14442
+ this.hideMaskRow();
14443
+ }
14444
+ else {
14445
+ this.hideSpinner();
14446
+ }
13873
14447
  setValue('isGanttCreated', true, args);
13874
14448
  this.renderComplete();
13875
14449
  }
@@ -13881,6 +14455,11 @@ var Gantt = /** @__PURE__ @class */ (function (_super) {
13881
14455
  this.criticalPathModule.showCriticalPath(this.enableCriticalPath);
13882
14456
  }
13883
14457
  this.notify('recordsUpdated', {});
14458
+ for (var i = 0; i < document.getElementsByClassName('e-timeline-header-table-container').length; i++) {
14459
+ for (var j = 0; j < document.getElementsByClassName('e-timeline-header-table-container')[i].children[0].children[0].children.length; j++) {
14460
+ document.getElementsByClassName('e-timeline-header-table-container')[i].children[0].children[0].children[j].children[0].setAttribute('tabindex', '-1');
14461
+ }
14462
+ }
13884
14463
  if (this.enableCriticalPath && this.criticalPathModule) {
13885
14464
  var criticalModule = this.criticalPathModule;
13886
14465
  this.criticalPathModule.criticalConnectorLine(criticalModule.criticalPathCollection, criticalModule.detailPredecessorCollection, true, criticalModule.predecessorCollectionTaskIds);
@@ -13912,8 +14491,8 @@ var Gantt = /** @__PURE__ @class */ (function (_super) {
13912
14491
  /**
13913
14492
  * Called internally, if any of the property value changed.
13914
14493
  *
13915
- * @param {GanttModel} newProp .
13916
- * @param {GanttModel} oldProp .
14494
+ * @param {GanttModel} newProp - Defines the New GanttModel.
14495
+ * @param {GanttModel} oldProp - Defines the old GanttModel.
13917
14496
  * @returns {void} .
13918
14497
  * @private
13919
14498
  */
@@ -13976,6 +14555,12 @@ var Gantt = /** @__PURE__ @class */ (function (_super) {
13976
14555
  this.dataOperation.checkDataBinding(true);
13977
14556
  break;
13978
14557
  case 'enableCriticalPath':
14558
+ if (!isNullOrUndefined(this.loadingIndicator) && this.loadingIndicator.indicatorType === "Shimmer") {
14559
+ this.hideMaskRow();
14560
+ }
14561
+ else {
14562
+ this.hideSpinner();
14563
+ }
13979
14564
  if (this.enableCriticalPath && this.criticalPathModule) {
13980
14565
  this.criticalPathModule.showCriticalPath(this.enableCriticalPath);
13981
14566
  var criticalModule = this.criticalPathModule;
@@ -14522,7 +15107,7 @@ var Gantt = /** @__PURE__ @class */ (function (_super) {
14522
15107
  thWidth = thElements[n].style.width;
14523
15108
  var divElement = createElement('div', {
14524
15109
  className: 'e-line-container-cell',
14525
- styles: 'left:' + leftPos + 'px'
15110
+ styles: (this.enableRtl ? 'right:' + (leftPos + 1) : 'left:' + leftPos) + 'px'
14526
15111
  });
14527
15112
  containerDiv.appendChild(divElement);
14528
15113
  }
@@ -14657,12 +15242,18 @@ var Gantt = /** @__PURE__ @class */ (function (_super) {
14657
15242
  };
14658
15243
  /**
14659
15244
  *
14660
- * @param {object} args .
15245
+ * @param {object} args -Defines the edited event args.
14661
15246
  * @returns {void} .
14662
15247
  * @private
14663
15248
  */
14664
15249
  Gantt.prototype.actionBeginTask = function (args) {
14665
15250
  this.trigger('actionBegin', args);
15251
+ if (!isNullOrUndefined(this.loadingIndicator) && this.loadingIndicator.indicatorType === "Shimmer") {
15252
+ this.showMaskRow();
15253
+ }
15254
+ else {
15255
+ this.showSpinner();
15256
+ }
14666
15257
  };
14667
15258
  /**
14668
15259
  * To move horizontal scroll bar of Gantt to specific date.
@@ -14698,7 +15289,7 @@ var Gantt = /** @__PURE__ @class */ (function (_super) {
14698
15289
  if (!isNullOrUndefined(left)) {
14699
15290
  left = this.ganttChartModule.scrollElement.scrollWidth <= left ?
14700
15291
  this.ganttChartModule.scrollElement.scrollWidth : left;
14701
- this.ganttChartModule.scrollObject.setScrollLeft(left);
15292
+ this.ganttChartModule.scrollObject.setScrollLeft(left, this.enableRtl ? -1 : 0);
14702
15293
  }
14703
15294
  if (!isNullOrUndefined(top)) {
14704
15295
  top = this.ganttChartModule.scrollElement.scrollHeight <= top ? this.ganttChartModule.scrollElement.scrollHeight : top;
@@ -14731,8 +15322,8 @@ var Gantt = /** @__PURE__ @class */ (function (_super) {
14731
15322
  /**
14732
15323
  * Get parent task by clone parent item.
14733
15324
  *
14734
- * @param {IGanttData} ganttRecord .
14735
- * @param {number} level .
15325
+ * @param {IGanttData} ganttRecord -Defines the Gantt record.
15326
+ * @param {number} level -Defines the selected record level.
14736
15327
  * @returns {IGanttData} .
14737
15328
  * @hidden
14738
15329
  */
@@ -14845,7 +15436,7 @@ var Gantt = /** @__PURE__ @class */ (function (_super) {
14845
15436
  /**
14846
15437
  * To update timeline at start point with one unit.
14847
15438
  *
14848
- * @param {string} mode .
15439
+ * @param {string} mode - Render previous span of Timeline.
14849
15440
  * @returns {void} .
14850
15441
  * @public
14851
15442
  */
@@ -14855,7 +15446,7 @@ var Gantt = /** @__PURE__ @class */ (function (_super) {
14855
15446
  /**
14856
15447
  * To update timeline at end point with one unit.
14857
15448
  *
14858
- * @param {string} mode .
15449
+ * @param {string} mode - Render next span of Timeline.
14859
15450
  * @returns {void} .
14860
15451
  * @public
14861
15452
  */
@@ -14929,7 +15520,7 @@ var Gantt = /** @__PURE__ @class */ (function (_super) {
14929
15520
  /**
14930
15521
  * Method to clear edited collections in gantt set edit flag value
14931
15522
  *
14932
- * @param {boolean} isStart .
15523
+ * @param {boolean} isStart -Defines whether to initiate edit action.
14933
15524
  * @returns {void} .
14934
15525
  * @private
14935
15526
  */
@@ -15202,8 +15793,8 @@ var Gantt = /** @__PURE__ @class */ (function (_super) {
15202
15793
  /**
15203
15794
  * To update existing taskId with new unique Id.
15204
15795
  *
15205
- * @param {number | string} currentId .
15206
- * @param {number | string} newId .
15796
+ * @param {number | string} currentId - Defines the current Id of the record.
15797
+ * @param {number | string} newId - Defines the new Id of the record.
15207
15798
  * @returns {void} .
15208
15799
  */
15209
15800
  Gantt.prototype.updateTaskId = function (currentId, newId) {
@@ -15305,9 +15896,9 @@ var Gantt = /** @__PURE__ @class */ (function (_super) {
15305
15896
  /**
15306
15897
  * Reorder the rows based on given indexes and position
15307
15898
  *
15308
- * @param {number[]} fromIndexes .
15309
- * @param {number} toIndex .
15310
- * @param {string} position .
15899
+ * @param {number[]} fromIndexes - Defines the Dragged record index.
15900
+ * @param {number} toIndex - Defines the Dropped record index.
15901
+ * @param {string} position -Defines the position of the dropped row.
15311
15902
  * @returns {void} .
15312
15903
  */
15313
15904
  Gantt.prototype.reorderRows = function (fromIndexes, toIndex, position) {
@@ -15482,7 +16073,7 @@ var Gantt = /** @__PURE__ @class */ (function (_super) {
15482
16073
  /**
15483
16074
  * Method to get class name for unscheduled tasks
15484
16075
  *
15485
- * @param {ITaskData} ganttProp .
16076
+ * @param {ITaskData} ganttProp -Defines the Gantt propertie.
15486
16077
  * @returns {boolean} .
15487
16078
  * @private
15488
16079
  */
@@ -15556,7 +16147,7 @@ var Gantt = /** @__PURE__ @class */ (function (_super) {
15556
16147
  var clientTop = document.documentElement.clientTop || document.body.clientTop || 0;
15557
16148
  var clientLeft = document.documentElement.clientLeft || document.body.clientLeft || 0;
15558
16149
  var top = box.top + scrollTop - clientTop;
15559
- var left = box.left + scrollLeft - clientLeft;
16150
+ var left = this.enableRtl ? box.right + scrollLeft - clientLeft : box.left + scrollLeft - clientLeft;
15560
16151
  return { top: Math.round(top), left: Math.round(left), width: box.width, height: box.height };
15561
16152
  };
15562
16153
  /**
@@ -15829,7 +16420,7 @@ var Gantt = /** @__PURE__ @class */ (function (_super) {
15829
16420
  /**
15830
16421
  * To change the mode of a record.
15831
16422
  *
15832
- * @param {object} data .
16423
+ * @param {object} data - Use to change the TaskMode either manual, auto or custom.
15833
16424
  * @returns {void} .
15834
16425
  */
15835
16426
  Gantt.prototype.changeTaskMode = function (data) {
@@ -15900,6 +16491,12 @@ var Gantt = /** @__PURE__ @class */ (function (_super) {
15900
16491
  __decorate([
15901
16492
  Property(true)
15902
16493
  ], Gantt.prototype, "disableHtmlEncode", void 0);
16494
+ __decorate([
16495
+ Complex({}, LoadingIndicator)
16496
+ ], Gantt.prototype, "loadingIndicator", void 0);
16497
+ __decorate([
16498
+ Property(true)
16499
+ ], Gantt.prototype, "enableVirtualMaskRow", void 0);
15903
16500
  __decorate([
15904
16501
  Property(true)
15905
16502
  ], Gantt.prototype, "autoFocusTasks", void 0);
@@ -16933,6 +17530,7 @@ var EditTooltip = /** @__PURE__ @class */ (function () {
16933
17530
  this.toolTipObj = new Tooltip({
16934
17531
  opensOn: opensOn,
16935
17532
  position: 'TopRight',
17533
+ enableRtl: this.parent.enableRtl,
16936
17534
  mouseTrail: mouseTrail,
16937
17535
  cssClass: ganttTooltip,
16938
17536
  target: target ? target : null,
@@ -16982,12 +17580,15 @@ var EditTooltip = /** @__PURE__ @class */ (function () {
16982
17580
  this.parent.tooltipModule.toolTipObj.close();
16983
17581
  this.updateTooltip(segmentIndex);
16984
17582
  if (this.taskbarEdit.connectorSecondAction === 'ConnectorPointLeftDrag') {
17583
+ // eslint-disable-next-line security/detect-non-literal-fs-filename
16985
17584
  this.toolTipObj.open(this.taskbarEdit.connectorSecondElement.querySelector('.' + connectorPointLeft));
16986
17585
  }
16987
17586
  else if (this.taskbarEdit.connectorSecondAction === 'ConnectorPointRightDrag') {
17587
+ // eslint-disable-next-line security/detect-non-literal-fs-filename
16988
17588
  this.toolTipObj.open(this.taskbarEdit.connectorSecondElement.querySelector('.' + connectorPointRight));
16989
17589
  }
16990
17590
  else {
17591
+ // eslint-disable-next-line security/detect-non-literal-fs-filename
16991
17592
  this.toolTipObj.open(this.taskbarEdit.taskBarEditElement);
16992
17593
  }
16993
17594
  }
@@ -17020,14 +17621,29 @@ var EditTooltip = /** @__PURE__ @class */ (function () {
17020
17621
  this.toolTipObj.content = this.getTooltipText(segmentIndex);
17021
17622
  this.toolTipObj.refresh(this.taskbarEdit.taskBarEditElement);
17022
17623
  if (this.taskbarEdit.taskBarEditAction === 'LeftResizing') {
17023
- this.toolTipObj.offsetX = -taskWidth;
17624
+ if (this.parent.enableRtl) {
17625
+ this.toolTipObj.offsetX = 0;
17626
+ }
17627
+ else {
17628
+ this.toolTipObj.offsetX = -taskWidth;
17629
+ }
17024
17630
  }
17025
17631
  else if (this.taskbarEdit.taskBarEditAction === 'RightResizing' ||
17026
17632
  this.taskbarEdit.taskBarEditAction === 'ParentResizing') {
17027
- this.toolTipObj.offsetX = 0;
17633
+ if (this.parent.enableRtl) {
17634
+ this.toolTipObj.offsetX = -taskWidth;
17635
+ }
17636
+ else {
17637
+ this.toolTipObj.offsetX = 0;
17638
+ }
17028
17639
  }
17029
17640
  else if (this.taskbarEdit.taskBarEditAction === 'ProgressResizing') {
17030
- this.toolTipObj.offsetX = -(taskWidth - progressWidth);
17641
+ if (this.parent.enableRtl) {
17642
+ this.toolTipObj.offsetX = -(progressWidth);
17643
+ }
17644
+ else {
17645
+ this.toolTipObj.offsetX = -(taskWidth - progressWidth);
17646
+ }
17031
17647
  }
17032
17648
  else if (this.taskbarEdit.taskBarEditAction === 'MilestoneDrag') {
17033
17649
  this.toolTipObj.offsetX = -(this.parent.chartRowsModule.milestoneHeight / 2);
@@ -17124,7 +17740,7 @@ var EditTooltip = /** @__PURE__ @class */ (function () {
17124
17740
  return EditTooltip;
17125
17741
  }());
17126
17742
 
17127
- var __extends$19 = (undefined && undefined.__extends) || (function () {
17743
+ var __extends$20 = (undefined && undefined.__extends) || (function () {
17128
17744
  var extendStatics = function (d, b) {
17129
17745
  extendStatics = Object.setPrototypeOf ||
17130
17746
  ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
@@ -17152,7 +17768,7 @@ var __assign$1 = (undefined && undefined.__assign) || function () {
17152
17768
  * File for handling taskbar editing operation in Gantt.
17153
17769
  */
17154
17770
  var TaskbarEdit = /** @__PURE__ @class */ (function (_super) {
17155
- __extends$19(TaskbarEdit, _super);
17771
+ __extends$20(TaskbarEdit, _super);
17156
17772
  function TaskbarEdit(ganttObj) {
17157
17773
  var _this = _super.call(this, ganttObj) || this;
17158
17774
  _this.isMouseDragged = false;
@@ -17560,8 +18176,14 @@ var TaskbarEdit = /** @__PURE__ @class */ (function (_super) {
17560
18176
  var e = this.getCoordinate(event);
17561
18177
  if (e.pageX || e.pageY) {
17562
18178
  var containerPosition = this.parent.getOffsetRect(this.parent.ganttChartModule.chartBodyContainer);
17563
- this.mouseDownX = (e.pageX - containerPosition.left) +
17564
- this.parent.ganttChartModule.scrollObject.previousScroll.left;
18179
+ if (this.parent.enableRtl) {
18180
+ this.mouseDownX = Math.abs(e.pageX - (containerPosition.left +
18181
+ Math.abs(this.parent.ganttChartModule.scrollObject.previousScroll.left)));
18182
+ }
18183
+ else {
18184
+ this.mouseDownX = (e.pageX - containerPosition.left) +
18185
+ this.parent.ganttChartModule.scrollObject.previousScroll.left;
18186
+ }
17565
18187
  this.tooltipPositionX = this.mouseDownX;
17566
18188
  this.mouseDownY = e.pageY - containerPosition.top +
17567
18189
  this.parent.ganttChartModule.scrollObject.previousScroll.top;
@@ -17606,23 +18228,40 @@ var TaskbarEdit = /** @__PURE__ @class */ (function (_super) {
17606
18228
  }
17607
18229
  var containerPosition = this.parent.getOffsetRect(this.parent.ganttChartModule.chartBodyContainer);
17608
18230
  var e = this.getCoordinate(event);
17609
- this.mouseMoveX = e.pageX - containerPosition.left +
17610
- this.parent.ganttChartModule.scrollObject.previousScroll.left;
18231
+ if (this.parent.enableRtl) {
18232
+ this.mouseMoveX = Math.abs(e.pageX - (containerPosition.left +
18233
+ Math.abs(this.parent.ganttChartModule.scrollObject.previousScroll.left)));
18234
+ }
18235
+ else {
18236
+ this.mouseMoveX = e.pageX - containerPosition.left +
18237
+ this.parent.ganttChartModule.scrollObject.previousScroll.left;
18238
+ }
17611
18239
  this.mouseMoveY = e.pageY - containerPosition.top +
17612
18240
  this.parent.ganttChartModule.scrollObject.previousScroll.top;
17613
18241
  this.dragMouseLeave = false;
17614
18242
  this.isMouseDragCheck();
17615
18243
  if (this.isMouseDragged && this.taskBarEditAction) {
17616
- var args = {
18244
+ var args_1 = {
17617
18245
  cancel: false,
17618
18246
  requestType: 'taskbarediting',
17619
18247
  taskBarEditAction: this.taskBarEditAction,
17620
18248
  data: this.taskBarEditRecord
17621
18249
  };
17622
18250
  if (this.segmentIndex !== -1) {
17623
- args.requestType = 'mergeSegment';
18251
+ args_1.requestType = 'mergeSegment';
17624
18252
  }
17625
- this.parent.trigger('actionBegin', args, function (arg) {
18253
+ this.parent.trigger('actionBegin', args_1, function (arg) {
18254
+ if (args_1.taskBarEditAction === "ConnectorPointRightDrag" || args_1.taskBarEditAction === "ConnectorPointLeftDrag"
18255
+ || args_1.taskBarEditAction === "LeftResizing" || args_1.taskBarEditAction === "RightResizing"
18256
+ || args_1.taskBarEditAction === "ProgressResizing" || args_1.taskBarEditAction === "ChildDrag" || args_1.taskBarEditAction === "ParentDrag" || args_1.taskBarEditAction === "MilestoneDrag" || args_1.taskBarEditAction === "ManualParentDrag") {
18257
+ _this.parent.showIndicator = false;
18258
+ }
18259
+ if (!isNullOrUndefined(_this.parent.loadingIndicator) && _this.parent.loadingIndicator.indicatorType === "Shimmer" && _this.parent.showIndicator) {
18260
+ _this.parent.showMaskRow();
18261
+ }
18262
+ else if (_this.parent.showIndicator) {
18263
+ _this.parent.showSpinner();
18264
+ }
17626
18265
  if (arg.cancel === false) {
17627
18266
  _this.taskBarEditingAction(event, false);
17628
18267
  }
@@ -17705,8 +18344,14 @@ var TaskbarEdit = /** @__PURE__ @class */ (function (_super) {
17705
18344
  var containerPosition = this.parent.getOffsetRect(this.parent.ganttChartModule.chartBodyContainer);
17706
18345
  var e = this.getCoordinate(event);
17707
18346
  if (e.pageX || e.pageY) {
17708
- this.mouseMoveX = e.pageX - containerPosition.left +
17709
- this.parent.ganttChartModule.scrollObject.previousScroll.left;
18347
+ if (this.parent.enableRtl) {
18348
+ this.mouseMoveX = Math.abs(e.pageX - (containerPosition.left +
18349
+ Math.abs(this.parent.ganttChartModule.scrollObject.previousScroll.left)));
18350
+ }
18351
+ else {
18352
+ this.mouseMoveX = e.pageX - containerPosition.left +
18353
+ this.parent.ganttChartModule.scrollObject.previousScroll.left;
18354
+ }
17710
18355
  this.tooltipPositionX = this.mouseMoveX;
17711
18356
  this.mouseMoveY = e.pageY - containerPosition.top +
17712
18357
  this.parent.ganttChartModule.scrollObject.previousScroll.top;
@@ -17717,8 +18362,15 @@ var TaskbarEdit = /** @__PURE__ @class */ (function (_super) {
17717
18362
  if ((this.taskBarEditRecord.ganttProperties.width > 3 && !(this.taskBarEditAction === 'ProgressResizing' &&
17718
18363
  (this.taskBarEditRecord.ganttProperties.progress === 0 || this.taskBarEditRecord.ganttProperties.progress === 100))) ||
17719
18364
  isConnectorLineEdit) {
17720
- var mouseX = this.mouseMoveX - this.parent.ganttChartModule.scrollObject.previousScroll.left +
17721
- containerPosition.left;
18365
+ var mouseX = 0;
18366
+ if (this.parent.enableRtl) {
18367
+ mouseX = Math.abs(Math.abs(this.mouseMoveX) - Math.abs(this.parent.ganttChartModule.scrollObject.previousScroll.left) +
18368
+ containerPosition.left);
18369
+ }
18370
+ else {
18371
+ mouseX = this.mouseMoveX - this.parent.ganttChartModule.scrollObject.previousScroll.left +
18372
+ containerPosition.left;
18373
+ }
17722
18374
  var mouseY = this.mouseMoveY - this.parent.ganttChartModule.scrollObject.previousScroll.top +
17723
18375
  containerPosition.top;
17724
18376
  if ((mouseX + 20) >
@@ -17726,6 +18378,12 @@ var TaskbarEdit = /** @__PURE__ @class */ (function (_super) {
17726
18378
  this.timerCount = this.parent.ganttChartModule.scrollObject.previousScroll.left;
17727
18379
  this.startScrollTimer('right');
17728
18380
  }
18381
+ else if ((mouseX + 40) >
18382
+ containerPosition.left + this.parent.ganttChartModule.chartBodyContainer.offsetWidth && this.parent.enableRtl && this.parent.ganttChartModule.scrollObject.previousScroll.left == 0) {
18383
+ this.parent.ganttChartModule.scrollObject.previousScroll.left = -1;
18384
+ this.timerCount = this.parent.ganttChartModule.scrollObject.previousScroll.left;
18385
+ this.startScrollTimer('right');
18386
+ }
17729
18387
  else if ((mouseX - 20) < containerPosition.left) {
17730
18388
  this.timerCount = this.parent.ganttChartModule.scrollObject.previousScroll.left;
17731
18389
  this.startScrollTimer('left');
@@ -17757,7 +18415,12 @@ var TaskbarEdit = /** @__PURE__ @class */ (function (_super) {
17757
18415
  TaskbarEdit.prototype.startScrollTimer = function (direction) {
17758
18416
  var _this = this;
17759
18417
  this.stopScrollTimer();
18418
+ var leftSign = 0;
17760
18419
  this.scrollTimer = window.setInterval(function () {
18420
+ if (Math.sign(_this.timerCount) == -1) {
18421
+ leftSign = -1;
18422
+ _this.timerCount = Math.abs(_this.timerCount);
18423
+ }
17761
18424
  if (direction === 'right') {
17762
18425
  _this.timerCount = (_this.timerCount + 1) >= _this.parent.timelineModule.totalTimelineWidth ?
17763
18426
  _this.parent.timelineModule.totalTimelineWidth : (_this.timerCount + 1);
@@ -17772,7 +18435,7 @@ var TaskbarEdit = /** @__PURE__ @class */ (function (_super) {
17772
18435
  _this.parent.ganttChartModule.scrollObject.setScrollTop(_this.timerCount);
17773
18436
  }
17774
18437
  else {
17775
- _this.parent.ganttChartModule.scrollObject.setScrollLeft(_this.timerCount);
18438
+ _this.parent.ganttChartModule.scrollObject.setScrollLeft(_this.timerCount, leftSign);
17776
18439
  }
17777
18440
  if (_this.taskBarEditAction === 'ConnectorPointLeftDrag'
17778
18441
  || _this.taskBarEditAction === 'ConnectorPointRightDrag') {
@@ -18468,6 +19131,7 @@ var TaskbarEdit = /** @__PURE__ @class */ (function (_super) {
18468
19131
  */
18469
19132
  TaskbarEdit.prototype.setItemPosition = function () {
18470
19133
  var item = this.taskBarEditRecord.ganttProperties;
19134
+ var position = this.parent.enableRtl ? "right" : "left";
18471
19135
  var segment = !isNullOrUndefined(item.segments) ? item.segments[this.segmentIndex] : null;
18472
19136
  var width = this.taskBarEditAction === 'MilestoneDrag' || item.isMilestone ?
18473
19137
  this.parent.chartRowsModule.milestoneHeight : item.width;
@@ -18499,11 +19163,16 @@ var TaskbarEdit = /** @__PURE__ @class */ (function (_super) {
18499
19163
  if (segmentedTaskBarContainer && !isNullOrUndefined(item.segments)
18500
19164
  && (this.taskBarEditAction === 'RightResizing' || this.segmentIndex !== 0)) {
18501
19165
  this.taskBarEditElement.style.width = (segment.width) + 'px';
18502
- this.taskBarEditElement.style.left = (segment.left) + 'px';
19166
+ if (this.parent.enableRtl) {
19167
+ this.taskBarEditElement.style.right = (segment.left) + 'px';
19168
+ }
19169
+ else {
19170
+ this.taskBarEditElement.style.left = (segment.left) + 'px';
19171
+ }
18503
19172
  }
18504
19173
  taskBarMainContainer$$1.style.width = (width) + 'px';
18505
- taskBarMainContainer$$1.style.left = (item.left) + 'px';
18506
19174
  leftLabelContainer$$1.style.width = (item.left) + 'px';
19175
+ taskBarMainContainer$$1.style.setProperty(position, (item.left) + 'px');
18507
19176
  if (this.taskBarEditAction === 'LeftResizing' && this.segmentIndex === 0) {
18508
19177
  var parent_1 = this.taskBarEditElement.parentElement;
18509
19178
  var segmentedTasks = parent_1.getElementsByClassName('e-segmented-taskbar');
@@ -18511,31 +19180,42 @@ var TaskbarEdit = /** @__PURE__ @class */ (function (_super) {
18511
19180
  var segment_4 = item.segments[i];
18512
19181
  var segmentElement = segmentedTasks[i];
18513
19182
  segmentElement.style.width = (segment_4.width) + 'px';
18514
- segmentElement.style.left = (segment_4.left) + 'px';
19183
+ if (this.parent.enableRtl) {
19184
+ segmentElement.style.right = (segment_4.left) + 'px';
19185
+ }
19186
+ else {
19187
+ segmentElement.style.left = (segment_4.left) + 'px';
19188
+ }
18515
19189
  }
18516
19190
  }
18517
19191
  if (!isNullOrUndefined(rightLabelContainer$$1)) {
18518
- rightLabelContainer$$1.style.left = (item.left + width) + 'px';
19192
+ rightLabelContainer$$1.style.setProperty(position, (item.left + width) + 'px');
18519
19193
  }
18520
19194
  }
18521
19195
  if (traceConnectorPointRight) {
18522
- traceConnectorPointRight.style.left = (this.parent.isAdaptive ? (width + 10) : (width + 2)) + 'px';
19196
+ if (this.parent.enableRtl) {
19197
+ traceConnectorPointRight.style.left = (this.parent.isAdaptive ? (width + 10) : (width - 2)) + 'px';
19198
+ }
19199
+ else {
19200
+ traceConnectorPointRight.style.left = (this.parent.isAdaptive ? (width + 10) : (width + 2)) + 'px';
19201
+ }
18523
19202
  }
18524
19203
  if (this.taskBarEditAction === 'MilestoneDrag' || item.isMilestone) {
18525
- taskBarMainContainer$$1.style.left = (item.left - (width / 2)) + 'px';
19204
+ taskBarMainContainer$$1.style.setProperty(position, (item.left - (width / 2)) + 'px');
18526
19205
  leftLabelContainer$$1.style.width = (item.left - (width / 2)) + 'px';
18527
19206
  if (!isNullOrUndefined(rightLabelContainer$$1)) {
18528
- rightLabelContainer$$1.style.left = (item.left + (width / 2)) + 'px';
19207
+ rightLabelContainer$$1.style.setProperty(position, (item.left + (width / 2)) + 'px');
18529
19208
  }
18530
19209
  }
18531
19210
  else if (this.taskBarEditAction === 'ProgressResizing') {
18532
19211
  if (this.segmentIndex === -1) {
18533
- traceChildTaskBar$$1.style.left = (item.left + item.progressWidth - 10) + 'px';
19212
+ traceChildTaskBar$$1.style.setProperty(position, (item.left + item.progressWidth - 10) + 'px');
18534
19213
  if (!isNullOrUndefined(traceChildProgressBar$$1)) {
18535
19214
  traceChildProgressBar$$1.style.width = item.progressWidth + 'px';
18536
19215
  traceChildProgressBar$$1.style.borderBottomRightRadius = this.progressBorderRadius + 'px';
18537
19216
  traceChildProgressBar$$1.style.borderTopRightRadius = this.progressBorderRadius + 'px';
18538
- childProgressResizer$$1.style.left = item.progressWidth - 8 + 'px';
19217
+ var width_1 = this.parent.enableRtl ? item.progressWidth + 8 : item.progressWidth - 8;
19218
+ childProgressResizer$$1.style.setProperty(position, width_1 + 'px');
18539
19219
  }
18540
19220
  }
18541
19221
  else {
@@ -18543,16 +19223,17 @@ var TaskbarEdit = /** @__PURE__ @class */ (function (_super) {
18543
19223
  traceChildProgressBar$$1.style.width = item.segments[this.segmentIndex].progressWidth + 'px';
18544
19224
  traceChildProgressBar$$1.style.borderBottomRightRadius = this.progressBorderRadius + 'px';
18545
19225
  traceChildProgressBar$$1.style.borderTopRightRadius = this.progressBorderRadius + 'px';
18546
- childProgressResizer$$1.style.left = item.segments[this.segmentIndex].progressWidth - 8 + 'px';
19226
+ var width_2 = this.parent.enableRtl ? item.segments[this.segmentIndex].progressWidth + 8 : item.segments[this.segmentIndex].progressWidth - 8;
19227
+ childProgressResizer$$1.style.setProperty(position, width_2 + 'px');
18547
19228
  }
18548
19229
  }
18549
19230
  else if (this.taskBarEditAction === 'RightResizing' && !isNullOrUndefined(traceChildTaskBar$$1)) {
18550
19231
  traceChildTaskBar$$1.style.width = (width) + 'px';
18551
19232
  if (!isNullOrUndefined(traceChildProgressBar$$1)) {
18552
19233
  traceChildProgressBar$$1.style.width = (item.progressWidth) + 'px';
18553
- taskBarRightResizer$$1.style.left = rightResizer + 'px';
19234
+ taskBarRightResizer$$1.style.setProperty(position, rightResizer + 'px');
18554
19235
  if (!isNullOrUndefined(childProgressResizer$$1)) {
18555
- childProgressResizer$$1.style.left = (item.progressWidth - 10) + 'px';
19236
+ childProgressResizer$$1.style.setProperty(position, item.progressWidth - 10 + 'px');
18556
19237
  }
18557
19238
  }
18558
19239
  }
@@ -18566,27 +19247,27 @@ var TaskbarEdit = /** @__PURE__ @class */ (function (_super) {
18566
19247
  }
18567
19248
  else if (this.taskBarEditAction === 'ParentResizing') {
18568
19249
  manualParentTaskbar.style.width = manualTaskbar.style.width = (item.width) + 'px';
18569
- manualParentRight.style.left = (item.width - manualParentLeft.offsetLeft) + 'px';
19250
+ manualParentRight.style.setProperty(position, item.width - manualParentLeft.offsetLeft + 'px');
18570
19251
  }
18571
19252
  else if (this.taskBarEditAction === 'ManualParentDrag') {
18572
- manualParentTaskbar.style.left = (item.left - item.autoLeft) + 'px';
19253
+ manualParentTaskbar.style.setProperty(position, item.left - item.autoLeft + 'px');
18573
19254
  }
18574
19255
  else {
18575
19256
  if (!isNullOrUndefined(traceChildTaskBar$$1) && !segmentedTaskBarContainer) {
18576
19257
  traceChildTaskBar$$1.style.width = (width) + 'px';
18577
19258
  }
18578
19259
  if (!isNullOrUndefined(traceChildProgressBar$$1)) {
18579
- taskBarRightResizer$$1.style.left = rightResizer + 'px';
19260
+ taskBarRightResizer$$1.style.setProperty(position, rightResizer + 'px');
18580
19261
  traceChildProgressBar$$1.style.width = (item.progressWidth) + 'px';
18581
19262
  if (!isNullOrUndefined(childProgressResizer$$1)) {
18582
- childProgressResizer$$1.style.left = item.progressWidth - 10 + 'px';
19263
+ childProgressResizer$$1.style.setProperty(position, item.progressWidth - 10 + 'px');
18583
19264
  }
18584
19265
  }
18585
19266
  if (segmentedTaskBarContainer) {
18586
- taskBarRightResizer$$1.style.left = rightResizer + 'px';
19267
+ taskBarRightResizer$$1.style.setProperty(position, rightResizer + 'px');
18587
19268
  traceChildProgressBar$$1.style.width = (segment.progressWidth) + 'px';
18588
19269
  if (!isNullOrUndefined(childProgressResizer$$1)) {
18589
- childProgressResizer$$1.style.left = segment.progressWidth - 10 + 'px';
19270
+ childProgressResizer$$1.style.setProperty(position, segment.progressWidth - 10 + 'px');
18590
19271
  }
18591
19272
  }
18592
19273
  }
@@ -18808,25 +19489,51 @@ var TaskbarEdit = /** @__PURE__ @class */ (function (_super) {
18808
19489
  var y2 = this.mouseMoveY;
18809
19490
  var length = Math.sqrt((x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2));
18810
19491
  var angle = Math.atan2(y2 - y1, x2 - x1) * 180 / Math.PI;
18811
- var transform = 'rotate(' + angle + 'deg)';
19492
+ var transform = 'rotate(' + (this.parent.enableRtl ? -angle : angle) + 'deg)';
18812
19493
  var left;
19494
+ var width = 0;
19495
+ if (!isNullOrUndefined(document.querySelectorAll(".e-chart-row")[0])) {
19496
+ width = document.querySelectorAll(".e-chart-row")[0].offsetWidth;
19497
+ }
18813
19498
  if (this.taskBarEditAction === 'ConnectorPointLeftDrag') {
18814
- left = (this.elementOffsetLeft - (this.parent.chartRowsModule.connectorPointWidth / 2)) -
18815
- this.parent.ganttChartModule.scrollObject.previousScroll.left;
19499
+ if (this.parent.enableRtl) {
19500
+ left = ((width - (this.elementOffsetLeft + (this.parent.chartRowsModule.connectorPointWidth / 2)))) -
19501
+ Math.abs(this.parent.ganttChartModule.scrollObject.previousScroll.left);
19502
+ }
19503
+ else {
19504
+ left = (this.elementOffsetLeft - (this.parent.chartRowsModule.connectorPointWidth / 2)) -
19505
+ this.parent.ganttChartModule.scrollObject.previousScroll.left;
19506
+ }
18816
19507
  }
18817
19508
  if (this.taskBarEditAction === 'ConnectorPointRightDrag') {
18818
- left = (this.elementOffsetLeft + this.elementOffsetWidth) +
18819
- (this.parent.chartRowsModule.connectorPointWidth / 2) - this.parent.ganttChartModule.scrollObject.previousScroll.left;
19509
+ if (this.parent.enableRtl) {
19510
+ left = (width - (this.elementOffsetLeft + this.elementOffsetWidth +
19511
+ (this.parent.chartRowsModule.connectorPointWidth / 2))) - Math.abs(this.parent.ganttChartModule.scrollObject.previousScroll.left);
19512
+ }
19513
+ else {
19514
+ left = (this.elementOffsetLeft + this.elementOffsetWidth) +
19515
+ (this.parent.chartRowsModule.connectorPointWidth / 2) - Math.abs(this.parent.ganttChartModule.scrollObject.previousScroll.left);
19516
+ }
18820
19517
  }
18821
19518
  var top = ((this.elementOffsetTop) + (this.elementOffsetHeight / 2) +
18822
19519
  this.parent.ganttChartModule.chartBodyContainer.offsetTop) - this.parent.ganttChartModule.scrollObject.previousScroll.top;
18823
19520
  this.removeFalseLine(false);
18824
19521
  this.falseLine = createElement('div', {
18825
19522
  className: falseLine, id: 'ganttfalseline' + this.parent.element.id,
18826
- styles: 'transform-origin: 0% 100%;right: auto;position: absolute;transform:' + transform + ';' +
19523
+ styles: 'position: absolute;transform:' + transform + ';' +
18827
19524
  'border-top-width: 1px;border-top-style: dashed;z-index: 5;width:' + (length - 3) + 'px;' +
18828
- 'left:' + left + 'px;top:' + top + 'px;'
19525
+ 'top:' + top + 'px;'
18829
19526
  });
19527
+ if (this.parent.enableRtl) {
19528
+ this.falseLine.style.left = 'auto';
19529
+ this.falseLine.style.right = left + 'px';
19530
+ this.falseLine.style.transformOrigin = '100% 0%';
19531
+ }
19532
+ else {
19533
+ this.falseLine.style.right = 'auto';
19534
+ this.falseLine.style.left = left + 'px';
19535
+ this.falseLine.style.transformOrigin = '0% 100%';
19536
+ }
18830
19537
  this.parent.ganttChartModule.chartBodyContainer.appendChild(this.falseLine);
18831
19538
  };
18832
19539
  /**
@@ -18911,19 +19618,19 @@ var TaskbarEdit = /** @__PURE__ @class */ (function (_super) {
18911
19618
  var element = target;
18912
19619
  var uniqueId = this.parent.viewType === 'ResourceView' ? fromItem.taskId : fromItem.rowUniqueID;
18913
19620
  if (this.taskBarEditAction === 'ConnectorPointLeftDrag') {
18914
- predecessor = uniqueId + 'S';
19621
+ predecessor = uniqueId + (this.parent.enableRtl ? 'F' : 'S');
18915
19622
  }
18916
19623
  else if (this.taskBarEditAction === 'ConnectorPointRightDrag') {
18917
- predecessor = uniqueId + 'F';
19624
+ predecessor = uniqueId + (this.parent.enableRtl ? 'S' : 'F');
18918
19625
  }
18919
19626
  if (this.connectorSecondAction) {
18920
19627
  if (this.connectorSecondAction === 'ConnectorPointLeftDrag') {
18921
- predecessor += 'S';
18922
- currentTarget = 'start';
19628
+ predecessor += this.parent.enableRtl ? 'F' : 'S';
19629
+ currentTarget = this.parent.enableRtl ? 'finish' : 'start';
18923
19630
  }
18924
19631
  else if (this.connectorSecondAction === 'ConnectorPointRightDrag') {
18925
- predecessor += 'F';
18926
- currentTarget = 'finish';
19632
+ predecessor += this.parent.enableRtl ? 'S' : 'F';
19633
+ currentTarget = this.parent.enableRtl ? 'start' : 'finish';
18927
19634
  }
18928
19635
  }
18929
19636
  if (isNullOrUndefined(toItem)) {
@@ -18947,6 +19654,12 @@ var TaskbarEdit = /** @__PURE__ @class */ (function (_super) {
18947
19654
  args.isValidLink = isValidLink;
18948
19655
  args.requestType = 'ValidateDependency';
18949
19656
  this.parent.trigger('actionBegin', args);
19657
+ if (!isNullOrUndefined(this.parent.loadingIndicator) && this.parent.loadingIndicator.indicatorType === "Shimmer" && args.requestType != "ValidateDependency") {
19658
+ this.parent.showMaskRow();
19659
+ }
19660
+ else if (args.requestType != "ValidateDependency") {
19661
+ this.parent.showSpinner();
19662
+ }
18950
19663
  args.isValidLink = !isValidLink && args.isValidLink ? false : args.isValidLink;
18951
19664
  if (args.isValidLink) {
18952
19665
  if (!this.editTooltip.toolTipObj && !this.parent.isAdaptive) {
@@ -19342,18 +20055,18 @@ var DialogEdit = /** @__PURE__ @class */ (function () {
19342
20055
  if (!isNullOrUndefined(taskId)) {
19343
20056
  if (!isNullOrUndefined(taskId['ganttProperties'])) {
19344
20057
  if (typeof taskId['ganttProperties']['taskId'] === 'string') {
19345
- this.numericOrString = "stringedit";
20058
+ this.numericOrString = 'stringedit';
19346
20059
  }
19347
20060
  else {
19348
- this.numericOrString = "numericedit";
20061
+ this.numericOrString = 'numericedit';
19349
20062
  }
19350
20063
  }
19351
20064
  if (isNullOrUndefined(taskId['ganttProperties']) && !isNullOrUndefined(taskId)) {
19352
20065
  if (isNaN(Number(taskId)) || this.parent.columnByField[this.parent.taskFields.id].editType === "stringedit") {
19353
- this.numericOrString = "stringedit";
20066
+ this.numericOrString = 'stringedit';
19354
20067
  }
19355
20068
  else {
19356
- this.numericOrString = "numericedit";
20069
+ this.numericOrString = 'numericedit';
19357
20070
  }
19358
20071
  }
19359
20072
  }
@@ -19396,6 +20109,7 @@ var DialogEdit = /** @__PURE__ @class */ (function () {
19396
20109
  dialogModel.animationSettings = { effect: 'None' };
19397
20110
  dialogModel.header = this.localeObj.getConstant(this.isEdit ? 'editDialogTitle' : 'addDialogTitle');
19398
20111
  dialogModel.isModal = true;
20112
+ dialogModel.enableRtl = this.parent.enableRtl;
19399
20113
  dialogModel.allowDragging = this.parent.isAdaptive ? false : true;
19400
20114
  dialogModel.showCloseIcon = true;
19401
20115
  var position = this.parent.isAdaptive ? { X: 'top', Y: 'left' } : { X: 'center', Y: 'center' };
@@ -19406,8 +20120,8 @@ var DialogEdit = /** @__PURE__ @class */ (function () {
19406
20120
  dialogModel.close = this.dialogClose.bind(this);
19407
20121
  dialogModel.closeOnEscape = true;
19408
20122
  dialogModel.beforeClose = function (args) {
19409
- if (args.closedBy == "escape") {
19410
- if (args.event.name == "key-pressed" && args.event.target.nodeName == 'INPUT') {
20123
+ if (args.closedBy === "escape") {
20124
+ if (args.event.name === "key-pressed" && args.event.target.nodeName === 'INPUT') {
19411
20125
  args.cancel = true;
19412
20126
  }
19413
20127
  }
@@ -19578,6 +20292,7 @@ var DialogEdit = /** @__PURE__ @class */ (function () {
19578
20292
  var length = dialogSettings.length;
19579
20293
  tabModel.items = tabItems;
19580
20294
  tabModel.locale = this.parent.locale;
20295
+ tabModel.enableRtl = this.parent.enableRtl;
19581
20296
  this.beforeOpenArgs.tabModel = tabModel;
19582
20297
  var index = 0;
19583
20298
  if (length > 0) {
@@ -19657,6 +20372,12 @@ var DialogEdit = /** @__PURE__ @class */ (function () {
19657
20372
  cancel: this.beforeOpenArgs.cancel
19658
20373
  };
19659
20374
  this.parent.trigger('actionBegin', this.beforeOpenArgs, function (arg) {
20375
+ if (!isNullOrUndefined(_this.parent.loadingIndicator) && _this.parent.loadingIndicator.indicatorType === "Shimmer") {
20376
+ _this.parent.showMaskRow();
20377
+ }
20378
+ else {
20379
+ _this.parent.showSpinner();
20380
+ }
19660
20381
  _this.renderTabItems();
19661
20382
  if (!arg.cancel) {
19662
20383
  tabModel.selected = _this.tabSelectedEvent.bind(_this);
@@ -19679,6 +20400,12 @@ var DialogEdit = /** @__PURE__ @class */ (function () {
19679
20400
  cancel: false
19680
20401
  };
19681
20402
  _this.parent.trigger('actionComplete', actionCompleteArgs, function (actionCompleteArg) {
20403
+ if (!isNullOrUndefined(_this.parent.loadingIndicator) && _this.parent.loadingIndicator.indicatorType === "Shimmer") {
20404
+ _this.parent.hideMaskRow();
20405
+ }
20406
+ else {
20407
+ _this.parent.hideSpinner();
20408
+ }
19682
20409
  if (actionCompleteArg.cancel) {
19683
20410
  _this.resetValues();
19684
20411
  }
@@ -19762,7 +20489,8 @@ var DialogEdit = /** @__PURE__ @class */ (function () {
19762
20489
  {
19763
20490
  var checkboxModel = {
19764
20491
  label: column.headerText,
19765
- locale: locale
20492
+ locale: locale,
20493
+ enableRtl: this.parent.enableRtl
19766
20494
  };
19767
20495
  fieldsModel[column.field] = checkboxModel;
19768
20496
  break;
@@ -19771,6 +20499,7 @@ var DialogEdit = /** @__PURE__ @class */ (function () {
19771
20499
  case 'stringedit':
19772
20500
  {
19773
20501
  var textBox = common;
20502
+ textBox.enableRtl = this.parent.enableRtl;
19774
20503
  if (column.field === ganttObj.columnMapping.duration || column.field === ganttObj.columnMapping.id || column.field === ganttObj.columnMapping.startDate ||
19775
20504
  column.field === ganttObj.columnMapping.endDate) {
19776
20505
  textBox.change = function (args) {
@@ -19783,6 +20512,7 @@ var DialogEdit = /** @__PURE__ @class */ (function () {
19783
20512
  case 'numericedit':
19784
20513
  {
19785
20514
  var numeric = common;
20515
+ numeric.enableRtl = this.parent.enableRtl;
19786
20516
  if (taskSettings.progress === column.field) {
19787
20517
  numeric.min = 0;
19788
20518
  numeric.max = 100;
@@ -19799,6 +20529,7 @@ var DialogEdit = /** @__PURE__ @class */ (function () {
19799
20529
  {
19800
20530
  var datePickerObj = common;
19801
20531
  datePickerObj.format = this.parent.getDateFormat();
20532
+ datePickerObj.enableRtl = this.parent.enableRtl;
19802
20533
  datePickerObj.strictMode = true;
19803
20534
  datePickerObj.firstDayOfWeek = ganttObj.timelineModule.customTimelineSettings.weekStartDay;
19804
20535
  if (column.field === ganttObj.columnMapping.startDate ||
@@ -19815,6 +20546,7 @@ var DialogEdit = /** @__PURE__ @class */ (function () {
19815
20546
  {
19816
20547
  var dateTimePickerObj = common;
19817
20548
  dateTimePickerObj.format = this.parent.getDateFormat();
20549
+ dateTimePickerObj.enableRtl = this.parent.enableRtl;
19818
20550
  dateTimePickerObj.strictMode = true;
19819
20551
  dateTimePickerObj.firstDayOfWeek = ganttObj.timelineModule.customTimelineSettings.weekStartDay;
19820
20552
  if (column.field === ganttObj.columnMapping.startDate ||
@@ -19837,6 +20569,7 @@ var DialogEdit = /** @__PURE__ @class */ (function () {
19837
20569
  common[dataKey] = types;
19838
20570
  common[fieldsKey] = { value: 'Value' };
19839
20571
  var dropDownListObj = common;
20572
+ dropDownListObj.enableRtl = this.parent.enableRtl;
19840
20573
  dropDownListObj.change = function (args) {
19841
20574
  if (column.field === taskSettings.manual) {
19842
20575
  _this.editedRecord.ganttProperties.isAutoSchedule = !args.value;
@@ -20208,8 +20941,8 @@ var DialogEdit = /** @__PURE__ @class */ (function () {
20208
20941
  break;
20209
20942
  case 'duration':
20210
20943
  gridColumn = {
20211
- field: fields[i], headerText: this_1.localeObj.getConstant(fields[i]), editType: 'stringedit', width: '100px',
20212
- edit: {
20944
+ field: fields[i], headerText: this_1.localeObj.getConstant(fields[i]), editType: 'stringedit',
20945
+ width: '100px', edit: {
20213
20946
  write: function (args) {
20214
20947
  var inputTextModel;
20215
20948
  if (!isNullOrUndefined(_this.beforeOpenArgs[generalTabString])) {
@@ -20274,7 +21007,7 @@ var DialogEdit = /** @__PURE__ @class */ (function () {
20274
21007
  inputValue = dialog.querySelector('#' + ganttId + 'SegmentsTabContainer' + columnName)
20275
21008
  .ej2_instances[0];
20276
21009
  }
20277
- if (inputValue.value.toString() !== tempValue.toString()) {
21010
+ if ((!isNullOrUndefined(inputValue.value)) && (inputValue.value.toString() !== tempValue.toString())) {
20278
21011
  inputValue.value = tempValue;
20279
21012
  inputValue.dataBind();
20280
21013
  }
@@ -20609,7 +21342,7 @@ var DialogEdit = /** @__PURE__ @class */ (function () {
20609
21342
  break;
20610
21343
  }
20611
21344
  }
20612
- if (typeof (stringOrNumber) === "string") {
21345
+ if (typeof (stringOrNumber) === 'string') {
20613
21346
  disabled = false;
20614
21347
  }
20615
21348
  else {
@@ -20624,7 +21357,7 @@ var DialogEdit = /** @__PURE__ @class */ (function () {
20624
21357
  }
20625
21358
  if (this.editedRecord.hasChildRecords) {
20626
21359
  if ((column.field === this.parent.taskFields.endDate && ((!isNullOrUndefined(this.editedRecord['isManual']) &&
20627
- this.editedRecord['isManual'] == false) || this.parent.taskMode == 'Auto')) || column.field === this.parent.taskFields.duration ||
21360
+ this.editedRecord['isManual'] === false) || this.parent.taskMode === 'Auto')) || column.field === this.parent.taskFields.duration ||
20628
21361
  column.field === this.parent.taskFields.progress || column.field === this.parent.taskFields.work ||
20629
21362
  column.field === this.parent.taskFields.type) {
20630
21363
  disabled = true;
@@ -20680,6 +21413,7 @@ var DialogEdit = /** @__PURE__ @class */ (function () {
20680
21413
  dataSource: new DataManager(_this.idCollection),
20681
21414
  popupHeight: '180px',
20682
21415
  allowCustom: false,
21416
+ enableRtl: _this.parent.enableRtl,
20683
21417
  fields: { value: 'text' },
20684
21418
  value: args.rowData[field],
20685
21419
  change: function (arg) {
@@ -20955,7 +21689,7 @@ var DialogEdit = /** @__PURE__ @class */ (function () {
20955
21689
  do {
20956
21690
  if (currentFlatData.parentItem) {
20957
21691
  currentFlatData = this.parent.flatData[this.parent.ids.indexOf(currentFlatData.parentItem.taskId)];
20958
- if (currentFlatData.uniqueID == this.beforeOpenArgs.rowData['uniqueID']) {
21692
+ if (currentFlatData.uniqueID === this.beforeOpenArgs.rowData['uniqueID']) {
20959
21693
  this.isValidData = false;
20960
21694
  break;
20961
21695
  }
@@ -21208,7 +21942,9 @@ var DialogEdit = /** @__PURE__ @class */ (function () {
21208
21942
  }
21209
21943
  }
21210
21944
  if (this.isEdit) {
21211
- this.updateScheduleProperties(this.editedRecord, this.rowData);
21945
+ if (!isCustom) {
21946
+ this.updateScheduleProperties(this.editedRecord, this.rowData);
21947
+ }
21212
21948
  ganttObj.editModule.validateUpdateValues(tasksData, this.rowData, true);
21213
21949
  }
21214
21950
  };
@@ -21889,6 +22625,7 @@ var ConnectorLineEdit = /** @__PURE__ @class */ (function () {
21889
22625
  var validationDialog = new Dialog({
21890
22626
  header: 'Validate Editing',
21891
22627
  isModal: true,
22628
+ enableRtl: this.parent.enableRtl,
21892
22629
  visible: false,
21893
22630
  width: '50%',
21894
22631
  showCloseIcon: true,
@@ -22260,6 +22997,7 @@ var ConnectorLineEdit = /** @__PURE__ @class */ (function () {
22260
22997
  this.confirmPredecessorDialog = new Dialog({
22261
22998
  width: '320px',
22262
22999
  isModal: true,
23000
+ enableRtl: this.parent.enableRtl,
22263
23001
  content: this.parent.localeObj.getConstant('confirmPredecessorDelete'),
22264
23002
  buttons: [
22265
23003
  {
@@ -22308,6 +23046,7 @@ var Edit$2 = /** @__PURE__ @class */ (function () {
22308
23046
  this.taskbarMoved = false;
22309
23047
  this.predecessorUpdated = false;
22310
23048
  this.isBreakLoop = false;
23049
+ this.isResourceTaskDeleted = false;
22311
23050
  /**
22312
23051
  * @private
22313
23052
  */
@@ -22382,6 +23121,7 @@ var Edit$2 = /** @__PURE__ @class */ (function () {
22382
23121
  var editParam = {
22383
23122
  min: 0,
22384
23123
  decimals: 0,
23124
+ enableRtl: this.parent.enableRtl,
22385
23125
  validateDecimalOnType: true,
22386
23126
  format: 'n0',
22387
23127
  showSpinButton: false
@@ -22397,6 +23137,7 @@ var Edit$2 = /** @__PURE__ @class */ (function () {
22397
23137
  Edit$$1.prototype.updateProgessColumnEditParams = function (column) {
22398
23138
  var editParam = {
22399
23139
  min: 0,
23140
+ enableRtl: this.parent.enableRtl,
22400
23141
  decimals: 0,
22401
23142
  validateDecimalOnType: true,
22402
23143
  max: 100,
@@ -22455,6 +23196,7 @@ var Edit$2 = /** @__PURE__ @class */ (function () {
22455
23196
  editor = new MultiSelect({
22456
23197
  dataSource: new DataManager(_this.parent.resources),
22457
23198
  fields: { text: resourceSettings.name, value: resourceSettings.id },
23199
+ enableRtl: _this.parent.enableRtl,
22458
23200
  mode: 'CheckBox',
22459
23201
  showDropDownIcon: true,
22460
23202
  popupHeight: '350px',
@@ -22516,6 +23258,7 @@ var Edit$2 = /** @__PURE__ @class */ (function () {
22516
23258
  _this.parent.treeGridModule.currentEditRow = {};
22517
23259
  editor = new DropDownList({
22518
23260
  dataSource: new DataManager(types),
23261
+ enableRtl: _this.parent.enableRtl,
22519
23262
  fields: { value: 'Value' },
22520
23263
  popupHeight: '350px',
22521
23264
  value: getValue('taskType', args.rowData.ganttProperties)
@@ -22679,8 +23422,8 @@ var Edit$2 = /** @__PURE__ @class */ (function () {
22679
23422
  var ganttPropByMapping = getSwapKey(ganttObj.columnMapping);
22680
23423
  var scheduleFieldNames = [];
22681
23424
  var isScheduleValueUpdated = false;
22682
- for (var _i = 0, _a = Object.keys(data); _i < _a.length; _i++) {
22683
- var key = _a[_i];
23425
+ for (var _i = 0, _b = Object.keys(data); _i < _b.length; _i++) {
23426
+ var key = _b[_i];
22684
23427
  if ([tasks.startDate, tasks.endDate, tasks.duration].indexOf(key) !== -1) {
22685
23428
  if (isNullOrUndefined(data[key]) && !ganttObj.allowUnscheduledTasks) {
22686
23429
  continue;
@@ -23401,7 +24144,6 @@ var Edit$2 = /** @__PURE__ @class */ (function () {
23401
24144
  */
23402
24145
  Edit$$1.prototype.initiateSaveAction = function (args) {
23403
24146
  var _this = this;
23404
- this.parent.showSpinner();
23405
24147
  var eventArgs = {};
23406
24148
  eventArgs.requestType = 'beforeSave';
23407
24149
  eventArgs.data = args.data;
@@ -23415,6 +24157,12 @@ var Edit$2 = /** @__PURE__ @class */ (function () {
23415
24157
  eventArgs.action = 'DrawConnectorLine';
23416
24158
  }
23417
24159
  this.parent.trigger('actionBegin', eventArgs, function (eventArg) {
24160
+ if (!isNullOrUndefined(_this.parent.loadingIndicator) && _this.parent.loadingIndicator.indicatorType === "Shimmer") {
24161
+ _this.parent.showMaskRow();
24162
+ }
24163
+ else {
24164
+ _this.parent.showSpinner();
24165
+ }
23418
24166
  if (eventArg.cancel) {
23419
24167
  _this.reUpdatePreviousRecords();
23420
24168
  _this.parent.chartRowsModule.refreshRecords([args.data]);
@@ -23448,6 +24196,52 @@ var Edit$2 = /** @__PURE__ @class */ (function () {
23448
24196
  });
23449
24197
  };
23450
24198
  Edit$$1.prototype.dmSuccess = function (e, args) {
24199
+ var eLength = e['length'];
24200
+ for (var i = 0; i < eLength; i++) {
24201
+ var rec = e[i];
24202
+ var _aLength = Object.keys(rec).length;
24203
+ for (var j = 0, _a = Object.keys(rec); j < _aLength; j++) {
24204
+ var key = _a[j];
24205
+ this.parent.editedRecords[i][key] = rec[key];
24206
+ this.parent.editedRecords[i].taskData[key] = rec[key];
24207
+ }
24208
+ if (this.parent.taskFields.id !== null) {
24209
+ this.parent.editedRecords[i].ganttProperties["taskId"] = rec[this.parent.taskFields.id];
24210
+ }
24211
+ if (this.parent.taskFields.name !== null) {
24212
+ this.parent.editedRecords[i].ganttProperties["taskName"] = rec[this.parent.taskFields.name];
24213
+ }
24214
+ if (this.parent.taskFields.startDate !== null) {
24215
+ this.parent.editedRecords[i].ganttProperties["startDate"] = rec[this.parent.taskFields.startDate];
24216
+ }
24217
+ if (this.parent.taskFields.endDate !== null) {
24218
+ this.parent.editedRecords[i].ganttProperties["endDate"] = rec[this.parent.taskFields.endDate];
24219
+ }
24220
+ if (this.parent.taskFields.duration !== null) {
24221
+ this.parent.editedRecords[i].ganttProperties["duration"] = parseInt(rec[this.parent.taskFields.duration]);
24222
+ }
24223
+ if (this.parent.taskFields.durationUnit !== null) {
24224
+ this.parent.editedRecords[i].ganttProperties["durationUnit"] = rec[this.parent.taskFields.durationUnit];
24225
+ }
24226
+ if (this.parent.taskFields.progress !== null) {
24227
+ this.parent.editedRecords[i].ganttProperties["progress"] = rec[this.parent.taskFields.progress];
24228
+ }
24229
+ if (this.parent.taskFields.dependency !== null) {
24230
+ this.parent.editedRecords[i].ganttProperties["dependency"] = rec[this.parent.taskFields.dependency];
24231
+ }
24232
+ if (this.parent.taskFields.parentID !== null) {
24233
+ this.parent.editedRecords[i].ganttProperties["parentID"] = rec[this.parent.taskFields.parentID];
24234
+ }
24235
+ if (this.parent.taskFields.baselineEndDate !== null) {
24236
+ this.parent.editedRecords[i].ganttProperties["baselineEndDate"] = rec[this.parent.taskFields.baselineEndDate];
24237
+ }
24238
+ if (this.parent.taskFields.baselineStartDate !== null) {
24239
+ this.parent.editedRecords[i].ganttProperties["baselineStartDate"] = rec[this.parent.taskFields.baselineStartDate];
24240
+ }
24241
+ if (this.parent.taskFields.resourceInfo !== null) {
24242
+ this.parent.editedRecords[i].ganttProperties["resources"] = rec[this.parent.taskFields.resourceInfo];
24243
+ }
24244
+ }
23451
24245
  this.saveSuccess(args);
23452
24246
  };
23453
24247
  Edit$$1.prototype.dmFailure = function (e, args) {
@@ -23466,7 +24260,7 @@ var Edit$2 = /** @__PURE__ @class */ (function () {
23466
24260
  var ids = data.ganttProperties.sharedTaskUniqueIds;
23467
24261
  for (var i = 0; i < ids.length; i++) {
23468
24262
  var editRecord = this.parent.flatData[this.parent.ids.indexOf(ids[i].toString())];
23469
- if (editRecord.uniqueID !== data.uniqueID) {
24263
+ if (editRecord && editRecord.uniqueID !== data.uniqueID) {
23470
24264
  this.updateGanttProperties(data, editRecord);
23471
24265
  this.parent.setRecordValue('taskData', data.taskData, editRecord, true);
23472
24266
  this.parent.dataOperation.updateTaskData(editRecord);
@@ -23540,6 +24334,12 @@ var Edit$2 = /** @__PURE__ @class */ (function () {
23540
24334
  criticalModule.criticalConnectorLine(criticalModule.criticalPathCollection, criticalModule.detailPredecessorCollection, true, criticalModule.predecessorCollectionTaskIds);
23541
24335
  }
23542
24336
  this.parent.trigger('actionComplete', eventArgs);
24337
+ if (!isNullOrUndefined(this.parent.loadingIndicator) && this.parent.loadingIndicator.indicatorType === "Shimmer") {
24338
+ this.parent.hideMaskRow();
24339
+ }
24340
+ else {
24341
+ this.parent.hideSpinner();
24342
+ }
23543
24343
  }
23544
24344
  else {
23545
24345
  this.taskbarEditModule.dependencyCancel = false;
@@ -23561,12 +24361,12 @@ var Edit$2 = /** @__PURE__ @class */ (function () {
23561
24361
  for (var index = 0; index < currentLength; index++) {
23562
24362
  var recordIndex = [];
23563
24363
  var resourceID = parseInt(currentResource[index][this.parent.resourceFields.id], 10).toString();
23564
- if (resourceID === "NaN") {
24364
+ if (resourceID === 'NaN') {
23565
24365
  resourceID = currentResource[index][this.parent.resourceFields.id];
23566
24366
  }
23567
24367
  for (var i = 0; i < prevResource.length; i++) {
23568
24368
  var prevResourceID = parseInt(prevResource[i][this.parent.resourceFields.id], 10).toString();
23569
- if (prevResourceID === "NaN") {
24369
+ if (prevResourceID === 'NaN') {
23570
24370
  prevResourceID = prevResource[i][this.parent.resourceFields.id];
23571
24371
  }
23572
24372
  if (prevResourceID === resourceID) {
@@ -23627,12 +24427,6 @@ var Edit$2 = /** @__PURE__ @class */ (function () {
23627
24427
  }
23628
24428
  if (!isNullOrUndefined(unassignedTasks)) {
23629
24429
  this.addNewRecord(updateRecord, unassignedTasks);
23630
- var updatedData = this.parent.currentViewData.filter(function (data) {
23631
- return (data.ganttProperties.taskId === updateRecord.ganttProperties.taskId &&
23632
- (data.hasChildRecords === updateRecord.hasChildRecords));
23633
- })[0];
23634
- updateRecord.parentItem = updatedData.parentItem;
23635
- updateRecord.parentUniqueID = updatedData.parentUniqueID;
23636
24430
  }
23637
24431
  else {
23638
24432
  // Block for create the unassigned task.
@@ -23647,6 +24441,12 @@ var Edit$2 = /** @__PURE__ @class */ (function () {
23647
24441
  var parentRecord = this.parent.flatData[this.parent.flatData.length - 1];
23648
24442
  this.addNewRecord(updateRecord, parentRecord);
23649
24443
  }
24444
+ var updatedData = this.parent.currentViewData.filter(function (data) {
24445
+ return (data.ganttProperties.taskId === updateRecord.ganttProperties.taskId &&
24446
+ (data.hasChildRecords === updateRecord.hasChildRecords));
24447
+ })[0];
24448
+ updateRecord.parentItem = updatedData.parentItem;
24449
+ updateRecord.parentUniqueID = updatedData.parentUniqueID;
23650
24450
  };
23651
24451
  Edit$$1.prototype.addRecordAsBottom = function (cAddedRecord) {
23652
24452
  var recordIndex1 = this.parent.flatData.length;
@@ -23853,6 +24653,7 @@ var Edit$2 = /** @__PURE__ @class */ (function () {
23853
24653
  width: '320px',
23854
24654
  isModal: true,
23855
24655
  visible: false,
24656
+ enableRtl: this.parent.enableRtl,
23856
24657
  content: this.parent.localeObj.getConstant('confirmDelete'),
23857
24658
  buttons: [
23858
24659
  {
@@ -23905,15 +24706,17 @@ var Edit$2 = /** @__PURE__ @class */ (function () {
23905
24706
  var deleteRecords = [];
23906
24707
  var _loop_1 = function (i) {
23907
24708
  if (selectedRecords[i].parentItem) {
23908
- var data = selectedRecords[i];
23909
- var ids = data.ganttProperties.sharedTaskUniqueIds;
23910
- for (var j = 0; j < ids.length; j++) {
23911
- if (this_1.parent.ids.indexOf(ids[j].toString()) !== -1) {
23912
- deleteRecords.push(this_1.parent.flatData[this_1.parent.ids.indexOf(ids[j].toString())]);
24709
+ if (selectedRecords[i].ganttProperties.sharedTaskUniqueIds.length === 1) {
24710
+ var data = selectedRecords[i];
24711
+ var ids = data.ganttProperties.sharedTaskUniqueIds;
24712
+ for (var j = 0; j < ids.length; j++) {
24713
+ if (this_1.parent.ids.indexOf(ids[j].toString()) !== -1) {
24714
+ deleteRecords.push(this_1.parent.flatData[this_1.parent.ids.indexOf(ids[j].toString())]);
24715
+ }
24716
+ }
24717
+ if (this_1.parent.ids.indexOf(data.ganttProperties.rowUniqueID) !== -1) {
24718
+ deleteRecords.push(this_1.parent.flatData[this_1.parent.ids.indexOf(data.ganttProperties.rowUniqueID)]);
23913
24719
  }
23914
- }
23915
- if (this_1.parent.ids.indexOf(data.ganttProperties.rowUniqueID) !== -1) {
23916
- deleteRecords.push(this_1.parent.flatData[this_1.parent.ids.indexOf(data.ganttProperties.rowUniqueID)]);
23917
24720
  }
23918
24721
  }
23919
24722
  else {
@@ -24043,8 +24846,9 @@ var Edit$2 = /** @__PURE__ @class */ (function () {
24043
24846
  if (this.deletedTaskDetails.indexOf(deleteRecord) !== -1) {
24044
24847
  continue;
24045
24848
  }
24849
+ var parentTask = this.parent.getParentTask(deleteRecord.parentItem);
24046
24850
  if (deleteRecord.parentItem) {
24047
- var childRecord = this.parent.getParentTask(deleteRecord.parentItem).childRecords;
24851
+ var childRecord = parentTask.childRecords;
24048
24852
  var filteredRecord = childRecord.length === 1 ?
24049
24853
  childRecord : childRecord.filter(function (data) {
24050
24854
  return !data.isDelete;
@@ -24054,7 +24858,12 @@ var Edit$2 = /** @__PURE__ @class */ (function () {
24054
24858
  }
24055
24859
  }
24056
24860
  var predecessor = deleteRecord.ganttProperties.predecessor;
24057
- if (predecessor && predecessor.length) {
24861
+ var canDeletePredecessor = true;
24862
+ if (this.parent.viewType === 'ResourceView' && parentTask && parentTask.ganttProperties.taskName !==
24863
+ this.parent.localeObj.getConstant('unassignedTask')) {
24864
+ canDeletePredecessor = false;
24865
+ }
24866
+ if (predecessor && predecessor.length && canDeletePredecessor) {
24058
24867
  this.removePredecessorOnDelete(deleteRecord);
24059
24868
  }
24060
24869
  this.deletedTaskDetails.push(deleteRecord);
@@ -24203,7 +25012,13 @@ var Edit$2 = /** @__PURE__ @class */ (function () {
24203
25012
  continue;
24204
25013
  }
24205
25014
  var predecessor = childRecord.ganttProperties.predecessor;
24206
- if (predecessor && predecessor.length) {
25015
+ var canDeletePredecessor = true;
25016
+ var parentTask = this.parent.getParentTask(childRecord.parentItem);
25017
+ if (this.parent.viewType === 'ResourceView' && parentTask && parentTask.ganttProperties.taskName !==
25018
+ this.parent.localeObj.getConstant('unassignedTask')) {
25019
+ canDeletePredecessor = false;
25020
+ }
25021
+ if (predecessor && predecessor.length && canDeletePredecessor) {
24207
25022
  this.removePredecessorOnDelete(childRecord);
24208
25023
  }
24209
25024
  this.deletedTaskDetails.push(childRecord);
@@ -24255,6 +25070,12 @@ var Edit$2 = /** @__PURE__ @class */ (function () {
24255
25070
  eventArgs.modifiedRecords = args.updatedRecordCollection;
24256
25071
  eventArgs.modifiedTaskData = getTaskData(args.updatedRecordCollection, null, null, this.parent);
24257
25072
  this.parent.trigger('actionBegin', eventArgs, function (eventArg) {
25073
+ if (!isNullOrUndefined(_this.parent.loadingIndicator) && _this.parent.loadingIndicator.indicatorType === "Shimmer") {
25074
+ _this.parent.showMaskRow();
25075
+ }
25076
+ else {
25077
+ _this.parent.showSpinner();
25078
+ }
24258
25079
  if (eventArg.cancel) {
24259
25080
  var deleteRecords = _this.deletedTaskDetails;
24260
25081
  for (var d = 0; d < deleteRecords.length; d++) {
@@ -24334,6 +25155,14 @@ var Edit$2 = /** @__PURE__ @class */ (function () {
24334
25155
  this.parent.ids.splice(flatIndex, 1);
24335
25156
  if (this.parent.viewType === 'ResourceView') {
24336
25157
  this.parent.getTaskIds().splice(flatIndex, 1);
25158
+ this.isResourceTaskDeleted = true;
25159
+ if (!deleteRecord.hasChildRecords) {
25160
+ deleteRecord.ganttProperties.resourceInfo = null;
25161
+ delete deleteRecord.ganttProperties.resourceNames;
25162
+ deleteRecord[this.parent.taskFields.resourceInfo] = null;
25163
+ deleteRecord.ganttProperties.sharedTaskUniqueIds = [];
25164
+ delete deleteRecord.taskData[this.parent.taskFields.resourceInfo];
25165
+ }
24337
25166
  }
24338
25167
  }
24339
25168
  if (deleteRecord.level === 0 && treeGridParentIndex !== -1) {
@@ -24382,9 +25211,12 @@ var Edit$2 = /** @__PURE__ @class */ (function () {
24382
25211
  var unassignedTask = this_2.parent.flatData.filter(function (data) {
24383
25212
  return data.ganttProperties.taskName === _this.parent.localeObj.getConstant('unassignedTask');
24384
25213
  })[0];
24385
- var isDuplicate = unassignedTask.childRecords.filter(function (data) {
24386
- return data.ganttProperties.taskId === updateUnAssignedResources_1[i].ganttProperties.taskId;
24387
- });
25214
+ var isDuplicate = [];
25215
+ if (unassignedTask) {
25216
+ isDuplicate = unassignedTask.childRecords.filter(function (data) {
25217
+ return data.ganttProperties.taskId === updateUnAssignedResources_1[i].ganttProperties.taskId;
25218
+ });
25219
+ }
24388
25220
  var parentTask = this_2.parent.getParentTask(updateUnAssignedResources_1[i].parentItem);
24389
25221
  if (parentTask && parentTask.ganttProperties.taskName !==
24390
25222
  this_2.parent.localeObj.getConstant('unassignedTask') && isDuplicate.length === 0) {
@@ -24393,9 +25225,9 @@ var Edit$2 = /** @__PURE__ @class */ (function () {
24393
25225
  this_2.parent.dataOperation.updateParentItems(updateUnAssignedResources_1[i].parentItem);
24394
25226
  }
24395
25227
  }
24396
- else if (!parentTask && isDuplicate.length === 0) {
25228
+ else if (!parentTask && (!isDuplicate || isDuplicate.length === 0)) {
24397
25229
  this_2.checkWithUnassignedTask(updateUnAssignedResources_1[i]);
24398
- if (updateUnAssignedResources_1[i].parentItem) {
25230
+ if (updateUnAssignedResources_1[i].parentItem && unassignedTask) {
24399
25231
  this_2.parent.dataOperation.updateParentItems(updateUnAssignedResources_1[i].parentItem);
24400
25232
  }
24401
25233
  }
@@ -24408,7 +25240,12 @@ var Edit$2 = /** @__PURE__ @class */ (function () {
24408
25240
  this.parent.trigger('actionComplete', eventArgs);
24409
25241
  this.deletedTaskDetails = [];
24410
25242
  this.parent.initiateEditAction(false);
24411
- this.parent.hideSpinner();
25243
+ if (!isNullOrUndefined(this.parent.loadingIndicator) && this.parent.loadingIndicator.indicatorType === "Shimmer") {
25244
+ this.parent.hideMaskRow();
25245
+ }
25246
+ else {
25247
+ this.parent.hideSpinner();
25248
+ }
24412
25249
  };
24413
25250
  /**
24414
25251
  *
@@ -24863,8 +25700,8 @@ var Edit$2 = /** @__PURE__ @class */ (function () {
24863
25700
  var originalData = this_3.parent.modifiedRecords[i];
24864
25701
  var treeIndex = this_3.parent.allowRowDragAndDrop ? 1 : 0;
24865
25702
  var uniqueTaskID = this_3.parent.taskFields.id;
24866
- originalIndex = this_3.parent.currentViewData.findIndex(function (data) {
24867
- return (data[uniqueTaskID] == originalData[uniqueTaskID]);
25703
+ var originalIndex = this_3.parent.currentViewData.findIndex(function (data) {
25704
+ return (data[uniqueTaskID] === originalData[uniqueTaskID]);
24868
25705
  });
24869
25706
  if (this_3.parent.treeGrid.getRows()[originalIndex]) {
24870
25707
  this_3.parent.treeGrid.renderModule.cellRender({
@@ -24877,7 +25714,7 @@ var Edit$2 = /** @__PURE__ @class */ (function () {
24877
25714
  });
24878
25715
  }
24879
25716
  };
24880
- var this_3 = this, originalIndex;
25717
+ var this_3 = this;
24881
25718
  for (var i = 0; i < this.parent.modifiedRecords.length; i++) {
24882
25719
  _loop_3(i);
24883
25720
  }
@@ -24989,8 +25826,13 @@ var Edit$2 = /** @__PURE__ @class */ (function () {
24989
25826
  }
24990
25827
  var args = {};
24991
25828
  args = this.constructTaskAddedEventArgs(cAddedRecord_1, this.parent.editedRecords, 'beforeAdd');
24992
- this.parent.showSpinner();
24993
25829
  this.parent.trigger('actionBegin', args, function (args) {
25830
+ if (!isNullOrUndefined(_this.parent.loadingIndicator) && _this.parent.loadingIndicator.indicatorType === "Shimmer") {
25831
+ _this.parent.showMaskRow();
25832
+ }
25833
+ else {
25834
+ _this.parent.showSpinner();
25835
+ }
24994
25836
  if (!isNullOrUndefined(args.data[tempTaskID])) {
24995
25837
  if (args.data[tempTaskID] != args.data['ganttProperties']['taskId']) {
24996
25838
  args.data['ganttProperties']['taskId'] = args.data[tempTaskID];
@@ -25194,7 +26036,7 @@ var Edit$2 = /** @__PURE__ @class */ (function () {
25194
26036
  switch (rowPosition) {
25195
26037
  case 'Top':
25196
26038
  case 'Bottom':
25197
- if (this.parent.viewType === "ResourceView") {
26039
+ if (this.parent.viewType === 'ResourceView') {
25198
26040
  level = 1;
25199
26041
  }
25200
26042
  else {
@@ -25277,6 +26119,12 @@ var Edit$2 = /** @__PURE__ @class */ (function () {
25277
26119
  this.parent.dataOperation.updateWorkWithDuration(cAddedRecord[0]);
25278
26120
  }
25279
26121
  this.parent.trigger('actionComplete', args);
26122
+ if (!isNullOrUndefined(this.parent.loadingIndicator) && this.parent.loadingIndicator.indicatorType === "Shimmer") {
26123
+ this.parent.hideMaskRow();
26124
+ }
26125
+ else {
26126
+ this.parent.hideSpinner();
26127
+ }
25280
26128
  if (this.dialogModule.dialog && !this.dialogModule.dialogObj.isDestroyed) {
25281
26129
  this.dialogModule.dialogObj.hide();
25282
26130
  }
@@ -25436,6 +26284,12 @@ var Edit$2 = /** @__PURE__ @class */ (function () {
25436
26284
  cancel: false
25437
26285
  };
25438
26286
  this.parent.trigger('actionBegin', actionArgs, function (actionArg) {
26287
+ if (!isNullOrUndefined(_this.parent.loadingIndicator) && _this.parent.loadingIndicator.indicatorType === "Shimmer") {
26288
+ _this.parent.showMaskRow();
26289
+ }
26290
+ else {
26291
+ _this.parent.showSpinner();
26292
+ }
25439
26293
  if (!actionArg.cancel) {
25440
26294
  _this.reArrangeRows(args_1, isByMethod_1);
25441
26295
  }
@@ -25608,6 +26462,12 @@ var Edit$2 = /** @__PURE__ @class */ (function () {
25608
26462
  }
25609
26463
  }
25610
26464
  this.parent.trigger('actionComplete', args);
26465
+ if (!isNullOrUndefined(this.parent.loadingIndicator) && this.parent.loadingIndicator.indicatorType === "Shimmer") {
26466
+ this.parent.hideMaskRow();
26467
+ }
26468
+ else {
26469
+ this.parent.hideSpinner();
26470
+ }
25611
26471
  this.parent.editedRecords = [];
25612
26472
  };
25613
26473
  Edit$$1.prototype.refreshDataSource = function () {
@@ -26125,6 +26985,7 @@ var Filter$1 = /** @__PURE__ @class */ (function () {
26125
26985
  var flValInput = createElement('input', { className: 'flm-input' });
26126
26986
  args.target.appendChild(flValInput);
26127
26987
  dropDateInstance = new DatePicker({ placeholder: _this.parent.localeObj.getConstant('enterValue'), format: format });
26988
+ dropDateInstance.enableRtl = _this.parent.enableRtl;
26128
26989
  dropDateInstance.appendTo(flValInput);
26129
26990
  },
26130
26991
  write: function (args) {
@@ -26148,6 +27009,7 @@ var Filter$1 = /** @__PURE__ @class */ (function () {
26148
27009
  var flValInput = createElement('input', { className: 'flm-input' });
26149
27010
  args.target.appendChild(flValInput);
26150
27011
  dropInstance = new DateTimePicker({ placeholder: _this.parent.localeObj.getConstant('enterValue'), format: format });
27012
+ dropInstance.enableRtl = _this.parent.enableRtl;
26151
27013
  dropInstance.appendTo(flValInput);
26152
27014
  },
26153
27015
  write: function (args) {
@@ -26170,6 +27032,7 @@ var Filter$1 = /** @__PURE__ @class */ (function () {
26170
27032
  flValInput.setAttribute('placeholder', _this.parent.localeObj.getConstant('enterValue'));
26171
27033
  args.target.appendChild(flValInput);
26172
27034
  textBoxInstance = new TextBox();
27035
+ textBoxInstance.enableRtl = _this.parent.enableRtl;
26173
27036
  textBoxInstance.appendTo(flValInput);
26174
27037
  },
26175
27038
  write: function (args) {
@@ -26967,6 +27830,14 @@ var Toolbar$3 = /** @__PURE__ @class */ (function () {
26967
27830
  this.parent.localeObj.getConstant('tasks') : ''),
26968
27831
  align: this.parent.isAdaptive ? 'Right' : 'Left'
26969
27832
  };
27833
+ if (this.parent.enableRtl) {
27834
+ if (item === 'PrevTimeSpan') {
27835
+ this.predefinedItems[item].prefixIcon = 'e-nexttimespan';
27836
+ }
27837
+ if (item === 'NextTimeSpan') {
27838
+ this.predefinedItems[item].prefixIcon = 'e-prevtimespan';
27839
+ }
27840
+ }
26970
27841
  }
26971
27842
  var searchLocalText = this.parent.localeObj.getConstant('search');
26972
27843
  if (this.parent.isAdaptive) {
@@ -26998,6 +27869,7 @@ var Toolbar$3 = /** @__PURE__ @class */ (function () {
26998
27869
  var items = this.getItems();
26999
27870
  this.toolbar = new Toolbar$1({
27000
27871
  items: items,
27872
+ enableRtl: this.parent.enableRtl,
27001
27873
  clicked: this.toolbarClickHandler.bind(this),
27002
27874
  height: this.parent.isAdaptive ? 48 : 'auto'
27003
27875
  });
@@ -27016,6 +27888,7 @@ var Toolbar$3 = /** @__PURE__ @class */ (function () {
27016
27888
  this.searchElement = this.element.querySelector('#' + this.parent.element.id + '_searchbar');
27017
27889
  var textObj = new TextBox({
27018
27890
  placeholder: this.parent.localeObj.getConstant('search'),
27891
+ enableRtl: this.parent.enableRtl,
27019
27892
  floatLabelType: 'Never',
27020
27893
  showClearButton: true
27021
27894
  });
@@ -27134,7 +28007,16 @@ var Toolbar$3 = /** @__PURE__ @class */ (function () {
27134
28007
  var _this = this;
27135
28008
  var gObj = this.parent;
27136
28009
  var gID = this.id;
28010
+ this.parent.isToolBarClick = false;
27137
28011
  extend(arg, { cancel: false });
28012
+ if (arg.item['properties'].id === this.parent.element.id + "_pdfexport" || arg.item['properties'].id === this.parent.element.id + "_critical-path") {
28013
+ if (!isNullOrUndefined(this.parent.loadingIndicator) && this.parent.loadingIndicator.indicatorType === "Shimmer") {
28014
+ this.parent.showMaskRow();
28015
+ }
28016
+ else {
28017
+ this.parent.showSpinner();
28018
+ }
28019
+ }
27138
28020
  gObj.trigger(toolbarClick, arg, function (args) {
27139
28021
  if (args.cancel) {
27140
28022
  return;
@@ -27336,7 +28218,8 @@ var Toolbar$3 = /** @__PURE__ @class */ (function () {
27336
28218
  else {
27337
28219
  disableItems.push(gID + '_update', gID + '_cancel');
27338
28220
  for (var t = 0; t < toolbarItems.length; t++) {
27339
- if (enableItems.indexOf(toolbarItems[t].id) === -1 && disableItems.indexOf(toolbarItems[t].id) === -1) {
28221
+ if (enableItems.indexOf(toolbarItems[t].id) === -1 &&
28222
+ disableItems.indexOf(toolbarItems[t].id) === -1) {
27340
28223
  enableItems.push(toolbarItems[t].id);
27341
28224
  }
27342
28225
  }
@@ -27493,8 +28376,9 @@ var NonWorkingDay = /** @__PURE__ @class */ (function () {
27493
28376
  var width = (this.parent.holidays[i].from && this.parent.holidays[i].to) ?
27494
28377
  this.parent.dataOperation.getTaskWidth(fromDate, toDate) : this.parent.perDayWidth;
27495
28378
  var left = this.parent.dataOperation.getTaskLeft(fromDate, false);
28379
+ var align = this.parent.enableRtl ? "right:" + left + "px;" : "left:" + left + "px;";
27496
28380
  var holidayDiv = createElement('div', {
27497
- className: holidayElement, styles: "left:" + left + "px; width:" + width + "px; height:100%;"
28381
+ className: holidayElement, styles: align + " width:" + width + "px; height:100%;"
27498
28382
  });
27499
28383
  var spanTop = (viewportHeight < height) ? viewportHeight / 2 : height / 2;
27500
28384
  var spanElement = createElement('span', {
@@ -27563,8 +28447,9 @@ var NonWorkingDay = /** @__PURE__ @class */ (function () {
27563
28447
  this.weekendWidthUpdated = true;
27564
28448
  }
27565
28449
  }
28450
+ var align = this.parent.enableRtl ? "right:" + left + "px;" : "left:" + left + "px;";
27566
28451
  var weekendDiv = createElement('div', {
27567
- className: weekend, styles: "left:" + left + "px;width:" + width + "px;height:100%;"
28452
+ className: weekend, styles: align + " width:" + width + "px;height:100%;"
27568
28453
  });
27569
28454
  container.appendChild(weekendDiv);
27570
28455
  }
@@ -27637,7 +28522,7 @@ var EventMarker$1 = /** @__PURE__ @class */ (function () {
27637
28522
  this.eventMarkersContainer = createElement('div', {
27638
28523
  className: eventMarkersContainer
27639
28524
  });
27640
- this.eventMarkersContainer.setAttribute("role", "term");
28525
+ this.eventMarkersContainer.setAttribute('role', 'term');
27641
28526
  this.parent.ganttChartModule.chartBodyContent.appendChild(this.eventMarkersContainer);
27642
28527
  }
27643
28528
  this.eventMarkersContainer.innerHTML = '';
@@ -27670,8 +28555,15 @@ var EventMarker$1 = /** @__PURE__ @class */ (function () {
27670
28555
  var rightArrow;
27671
28556
  for (var i = 0; i < this.parent.eventMarkers.length; i++) {
27672
28557
  left = this.parent.dataOperation.getTaskLeft(this.parent.dateValidationModule.getDateFromFormat(this.parent.eventMarkers[i].day, true), false);
28558
+ var align = void 0;
28559
+ if (this.parent.enableRtl) {
28560
+ align = "right:" + left + "px;";
28561
+ }
28562
+ else {
28563
+ align = "left:" + left + "px;";
28564
+ }
27673
28565
  eventMarkerElement = createElement('div', {
27674
- className: eventMarkersChild, styles: "left:" + left + "px; height:100%;",
28566
+ className: eventMarkersChild, styles: align + " height:100%;",
27675
28567
  id: 'stripline' + i
27676
28568
  });
27677
28569
  if (this.parent.eventMarkers[i].label) {
@@ -27680,6 +28572,12 @@ var EventMarker$1 = /** @__PURE__ @class */ (function () {
27680
28572
  });
27681
28573
  var property = this.parent.disableHtmlEncode ? 'textContent' : 'innerHTML';
27682
28574
  spanElement[property] = this.parent.eventMarkers[i].label;
28575
+ if (this.parent.enableRtl) {
28576
+ spanElement.style.right = '5px';
28577
+ }
28578
+ else {
28579
+ spanElement.style.left = '5px';
28580
+ }
27683
28581
  eventMarkerElement.appendChild(spanElement);
27684
28582
  rightArrow = createElement('div', {
27685
28583
  className: 'e-gantt-right-arrow'
@@ -27858,7 +28756,7 @@ var CriticalPath = /** @__PURE__ @class */ (function () {
27858
28756
  }
27859
28757
  else {
27860
28758
  var currentRecords = this_1.parent.currentViewData.filter(function (data) {
27861
- return parseInt(data.ganttProperties.taskId) == checkBeyondEnddate_1[k];
28759
+ return parseInt(data.ganttProperties.taskId) === checkBeyondEnddate_1[k];
27862
28760
  });
27863
28761
  for (var i = 0; i < currentRecords.length; i++) {
27864
28762
  if (!currentRecords[i].hasChildRecords && currentRecords[i].ganttProperties.endDate >= this_1.maxEndDate) {
@@ -27896,10 +28794,10 @@ var CriticalPath = /** @__PURE__ @class */ (function () {
27896
28794
  var individualPredecessorLength = totalPredecessorsCollection[x].ganttProperties.predecessor.length;
27897
28795
  var taskid = ((totalPredecessorsCollection[x].ganttProperties.taskId));
27898
28796
  for (var y = 0; y < individualPredecessorLength; y++) {
27899
- if (!isNaN(Number(predecessor[y].from)) && typeof (taskid) != "string") {
28797
+ if (!isNaN(Number(predecessor[y].from)) && typeof (taskid) != 'string') {
27900
28798
  tempTaskId = parseInt((predecessor[y].from), 10);
27901
28799
  }
27902
- else if (!isNaN(Number(predecessor[y].from)) && typeof (taskid) === "string") {
28800
+ else if (!isNaN(Number(predecessor[y].from)) && typeof (taskid) === 'string') {
27903
28801
  tempTaskId = predecessor[y].from;
27904
28802
  }
27905
28803
  else {
@@ -27922,15 +28820,16 @@ var CriticalPath = /** @__PURE__ @class */ (function () {
27922
28820
  toPredecessor = toPredecessor + ',' + predecessor[y].type;
27923
28821
  }
27924
28822
  else {
27925
- to = to + ',' + predecessor[y].to + ':' + predecessor[y].offset + predecessor[y].offsetUnit;
28823
+ to = to + ',' + predecessor[y].to + ':' + predecessor[y].offset +
28824
+ predecessor[y].offsetUnit;
27926
28825
  toPredecessor = toPredecessor + ',' + predecessor[y].type;
27927
28826
  }
27928
28827
  }
27929
28828
  }
27930
- if (!isNaN(Number(predecessor[y].to)) && typeof (taskid) != "string") {
28829
+ if (!isNaN(Number(predecessor[y].to)) && typeof (taskid) != 'string') {
27931
28830
  tempTaskId = parseInt((predecessor[y].to), 10);
27932
28831
  }
27933
- else if (!isNaN(Number(predecessor[y].to)) && typeof (taskid) === "string") {
28832
+ else if (!isNaN(Number(predecessor[y].to)) && typeof (taskid) === 'string') {
27934
28833
  tempTaskId = predecessor[y].to;
27935
28834
  }
27936
28835
  else {
@@ -27943,7 +28842,8 @@ var CriticalPath = /** @__PURE__ @class */ (function () {
27943
28842
  fromPredecessor = predecessor[y].type;
27944
28843
  }
27945
28844
  else {
27946
- from = predecessor[y].from + ':' + predecessor[y].offset + predecessor[y].offsetUnit;
28845
+ from = predecessor[y].from + ':' + predecessor[y].offset +
28846
+ predecessor[y].offsetUnit;
27947
28847
  fromPredecessor = predecessor[y].type;
27948
28848
  }
27949
28849
  }
@@ -27953,7 +28853,8 @@ var CriticalPath = /** @__PURE__ @class */ (function () {
27953
28853
  fromPredecessor = fromPredecessor + ',' + predecessor[y].type;
27954
28854
  }
27955
28855
  else {
27956
- from = from + ',' + predecessor[y].from + ':' + predecessor[y].offset + predecessor[y].offsetUnit;
28856
+ from = from + ',' + predecessor[y].from + ':' + predecessor[y].offset +
28857
+ predecessor[y].offsetUnit;
27957
28858
  fromPredecessor = fromPredecessor + ',' + predecessor[y].type;
27958
28859
  }
27959
28860
  }
@@ -28080,7 +28981,8 @@ var CriticalPath = /** @__PURE__ @class */ (function () {
28080
28981
  }
28081
28982
  }
28082
28983
  // execute if the current calculated slack value is less than the previous slack value.
28083
- else if (collection[fromTaskIdIndex]['slack'] > dateDifference && collection[fromTaskIdIndex]['slack'] !== 0) {
28984
+ else if (collection[fromTaskIdIndex]['slack'] > dateDifference &&
28985
+ collection[fromTaskIdIndex]['slack'] !== 0) {
28084
28986
  // execute if the offset value is not given.
28085
28987
  if (fromDateArray1.length <= 1) {
28086
28988
  if (collection[totaskId]['slack'] + dateDifference < 0) {
@@ -28130,7 +29032,8 @@ var CriticalPath = /** @__PURE__ @class */ (function () {
28130
29032
  }
28131
29033
  }
28132
29034
  //It execute while already the slack value is set and it is higher than the datedifference.
28133
- else if (collection[fromTaskIdIndex]['slack'] > dateDifference && collection[fromTaskIdIndex]['slack'] !== 0) {
29035
+ else if (collection[fromTaskIdIndex]['slack'] > dateDifference &&
29036
+ collection[fromTaskIdIndex]['slack'] !== 0) {
28134
29037
  if (fromDateArray1.length <= 1) {
28135
29038
  if (collection[totaskId]['slack'] + dateDifference < 0) {
28136
29039
  collection[fromTaskIdIndex]['slack'] = 0;
@@ -28158,7 +29061,8 @@ var CriticalPath = /** @__PURE__ @class */ (function () {
28158
29061
  if (isNullOrUndefined(collection[fromTaskIdIndex]['slack'])) {
28159
29062
  collection[fromTaskIdIndex]['slack'] = dateDifference;
28160
29063
  }
28161
- else if (collection[fromTaskIdIndex]['slack'] > dateDifference && collection[fromTaskIdIndex]['slack'] !== 0) {
29064
+ else if (collection[fromTaskIdIndex]['slack'] > dateDifference &&
29065
+ collection[fromTaskIdIndex]['slack'] !== 0) {
28162
29066
  collection[fromTaskIdIndex]['slack'] = dateDifference;
28163
29067
  }
28164
29068
  }
@@ -28169,7 +29073,8 @@ var CriticalPath = /** @__PURE__ @class */ (function () {
28169
29073
  // calculate slack value for the task contains predecessor connection in "finish to finish".
28170
29074
  if (fromDataPredecessor[i] === 'FF') {
28171
29075
  // execute if the previous task is from finish to start or finish to finish state.
28172
- if (collection[totaskId]['fs'] === 1 || collection[totaskId]['ff'] === 1 || collection[totaskId]['fs'] === -1) {
29076
+ if (collection[totaskId]['fs'] === 1 || collection[totaskId]['ff'] === 1 ||
29077
+ collection[totaskId]['fs'] === -1) {
28173
29078
  if (collection[totaskId]['fs'] === 1 || collection[totaskId]['ff'] === 1) {
28174
29079
  prevTaskEnddate = toIdFlatData.endDate;
28175
29080
  ffslack = collection[totaskId]['slack'];
@@ -28472,7 +29377,7 @@ var CriticalPath = /** @__PURE__ @class */ (function () {
28472
29377
  }
28473
29378
  else {
28474
29379
  var currentRecords = this_2.parent.currentViewData.filter(function (data) {
28475
- return (data.ganttProperties.taskId).toString() == criticalPathIds[i].toString();
29380
+ return (data.ganttProperties.taskId).toString() === criticalPathIds[i].toString();
28476
29381
  });
28477
29382
  for (var i_1 = 0; i_1 < currentRecords.length; i_1++) {
28478
29383
  if (currentRecords[i_1].ganttProperties.isCritical || currentRecords[i_1].ganttProperties.endDate >= this_2.maxEndDate) {
@@ -28486,13 +29391,13 @@ var CriticalPath = /** @__PURE__ @class */ (function () {
28486
29391
  var columnFields = this_2.parent.taskFields;
28487
29392
  if (criticalData.parentItem) {
28488
29393
  var parentRecord = this_2.parent.currentViewData.filter(function (data) {
28489
- return criticalData.parentItem.uniqueID == data.uniqueID;
29394
+ return criticalData.parentItem.uniqueID === data.uniqueID;
28490
29395
  });
28491
29396
  var parentIndex = this_2.parent.currentViewData.indexOf(parentRecord[0]);
28492
29397
  var parentElement = this_2.parent.getRowByIndex(parentIndex);
28493
29398
  var parentTaskbarElement = parentElement.querySelectorAll('.e-taskbar-main-container');
28494
29399
  for (var i_2 = 0; i_2 < parentTaskbarElement.length; i_2++) {
28495
- if (parentTaskbarElement[i_2].getAttribute('rowuniqueid') == criticalData['rowUniqueID']) {
29400
+ if (parentTaskbarElement[i_2].getAttribute('rowuniqueid') === criticalData['rowUniqueID']) {
28496
29401
  addClass(parentTaskbarElement[i_2].querySelectorAll('.e-gantt-child-taskbar-inner-div'), criticalChildTaskBarInnerDiv);
28497
29402
  }
28498
29403
  }
@@ -28644,6 +29549,7 @@ var ContextMenu$2 = /** @__PURE__ @class */ (function () {
28644
29549
  this.contextMenu = new ContextMenu$1({
28645
29550
  items: this.getMenuItems(),
28646
29551
  locale: this.parent.locale,
29552
+ enableRtl: this.parent.enableRtl,
28647
29553
  target: target,
28648
29554
  animationSettings: { effect: 'None' },
28649
29555
  select: this.contextMenuItemClick.bind(this),
@@ -28785,6 +29691,12 @@ var ContextMenu$2 = /** @__PURE__ @class */ (function () {
28785
29691
  };
28786
29692
  // eslint-disable-next-line
28787
29693
  this.parent.trigger('actionBegin', eventArgs, function (eventArgs) {
29694
+ if (!isNullOrUndefined(_this.parent.loadingIndicator) && _this.parent.loadingIndicator.indicatorType === "Shimmer") {
29695
+ _this.parent.showMaskRow();
29696
+ }
29697
+ else {
29698
+ _this.parent.showSpinner();
29699
+ }
28788
29700
  _this.parent.chartRowsModule.splitTask(_this.rowData[taskSettings.id], currentClickedDate);
28789
29701
  });
28790
29702
  };
@@ -28806,6 +29718,12 @@ var ContextMenu$2 = /** @__PURE__ @class */ (function () {
28806
29718
  target: this.targetElement
28807
29719
  };
28808
29720
  this.parent.trigger('actionBegin', eventArgs, function (eventArgs) {
29721
+ if (!isNullOrUndefined(_this.parent.loadingIndicator) && _this.parent.loadingIndicator.indicatorType === "Shimmer") {
29722
+ _this.parent.showMaskRow();
29723
+ }
29724
+ else {
29725
+ _this.parent.showSpinner();
29726
+ }
28809
29727
  if (eventArgs.cancel === false) {
28810
29728
  _this.parent.chartRowsModule.mergeTask(_this.rowData[taskSettings.id], segmentIndexes);
28811
29729
  }
@@ -28814,12 +29732,30 @@ var ContextMenu$2 = /** @__PURE__ @class */ (function () {
28814
29732
  // eslint-disable-next-line
28815
29733
  ContextMenu$$1.prototype.getClickedDate = function (element) {
28816
29734
  // context menu click position
28817
- var ganttElementPosition = this.parent.getOffsetRect(this.parent.element);
29735
+ var ganttElementPositionLeft;
28818
29736
  // task left position
28819
- var pageLeft = ganttElementPosition.left + this.parent.ganttChartModule.chartElement.offsetLeft +
28820
- this.rowData.ganttProperties.left - this.parent.ganttChartModule.scrollElement.scrollLeft;
28821
- // difference from task start date to current click position.
28822
- var currentTaskDifference = this.clickedPosition - pageLeft;
29737
+ if (this.parent.enableRtl) {
29738
+ var box = this.parent.element.getBoundingClientRect();
29739
+ var scrollLeft = window.pageXOffset || document.documentElement.scrollLeft ||
29740
+ document.body.scrollLeft;
29741
+ var clientLeft = document.documentElement.clientLeft || document.body.clientLeft || 0;
29742
+ ganttElementPositionLeft = box.left + scrollLeft - clientLeft;
29743
+ }
29744
+ else {
29745
+ ganttElementPositionLeft = this.parent.getOffsetRect(this.parent.element).left;
29746
+ }
29747
+ var pageLeft;
29748
+ var currentTaskDifference;
29749
+ if (this.parent.enableRtl) {
29750
+ pageLeft = Math.abs(ganttElementPositionLeft + this.parent.ganttChartModule.chartElement.offsetWidth -
29751
+ this.rowData.ganttProperties.left - this.parent.ganttChartModule.scrollElement.scrollLeft);
29752
+ currentTaskDifference = Math.abs(this.clickedPosition - pageLeft);
29753
+ }
29754
+ else {
29755
+ pageLeft = ganttElementPositionLeft + this.parent.ganttChartModule.chartElement.offsetLeft +
29756
+ this.rowData.ganttProperties.left - this.parent.ganttChartModule.scrollElement.scrollLeft;
29757
+ currentTaskDifference = this.clickedPosition - pageLeft;
29758
+ }
28823
29759
  var splitTaskDuration = Math.ceil(currentTaskDifference / this.parent.perDayWidth);
28824
29760
  var startDate = this.rowData.ganttProperties.startDate;
28825
29761
  if (!isNullOrUndefined(this.parent.timelineSettings.bottomTier) && this.parent.timelineSettings.bottomTier.unit === 'Hour') {
@@ -29335,6 +30271,12 @@ var ExcelExport$1 = /** @__PURE__ @class */ (function () {
29335
30271
  var _this = this;
29336
30272
  this.parent.treeGrid.beforeExcelExport = function (args) {
29337
30273
  _this.parent.trigger('beforeExcelExport', args);
30274
+ if (!isNullOrUndefined(_this.parent.loadingIndicator) && _this.parent.loadingIndicator.indicatorType === "Shimmer") {
30275
+ _this.parent.showMaskRow();
30276
+ }
30277
+ else {
30278
+ _this.parent.showSpinner();
30279
+ }
29338
30280
  };
29339
30281
  this.parent.treeGrid.excelQueryCellInfo = function (args) {
29340
30282
  _this.parent.trigger('excelQueryCellInfo', args);
@@ -29344,6 +30286,12 @@ var ExcelExport$1 = /** @__PURE__ @class */ (function () {
29344
30286
  };
29345
30287
  this.parent.treeGrid.excelExportComplete = function (args) {
29346
30288
  _this.parent.trigger('excelExportComplete', args);
30289
+ if (!isNullOrUndefined(_this.parent.loadingIndicator) && _this.parent.loadingIndicator.indicatorType === "Shimmer") {
30290
+ _this.parent.hideMaskRow();
30291
+ }
30292
+ else {
30293
+ _this.parent.hideSpinner();
30294
+ }
29347
30295
  };
29348
30296
  };
29349
30297
  return ExcelExport$$1;
@@ -29528,6 +30476,12 @@ var RowDD$1 = /** @__PURE__ @class */ (function () {
29528
30476
  if (!args.cancel) {
29529
30477
  args.requestType = 'beforeDrop';
29530
30478
  this.parent.trigger('actionBegin', args);
30479
+ if (!isNullOrUndefined(this.parent.loadingIndicator) && this.parent.loadingIndicator.indicatorType === "Shimmer") {
30480
+ this.parent.showMaskRow();
30481
+ }
30482
+ else {
30483
+ this.parent.showSpinner();
30484
+ }
29531
30485
  if (!args.cancel) {
29532
30486
  this.dropRows(args, true); // method to update the data collections based on drop action
29533
30487
  args.cancel = true;
@@ -29755,7 +30709,7 @@ var RowDD$1 = /** @__PURE__ @class */ (function () {
29755
30709
  }
29756
30710
  var validateRecords = void 0;
29757
30711
  if (toParent_1.uniqueID === draggedParent.uniqueID || (draggedParent.parentItem &&
29758
- toParent_1.uniqueID == this.parent.flatData[this.parent.ids.indexOf(draggedParent.parentItem.taskId)].uniqueID)) {
30712
+ toParent_1.uniqueID === this.parent.flatData[this.parent.ids.indexOf(draggedParent.parentItem.taskId)].uniqueID)) {
29759
30713
  validateRecords = this.parent.currentViewData.filter(function (data) {
29760
30714
  if ((data.ganttProperties.predecessor && data.ganttProperties.predecessor.length > 0)) {
29761
30715
  for (var i = 0; i < data.ganttProperties.predecessor.length; i++) {
@@ -30177,7 +31131,7 @@ var RowDD$1 = /** @__PURE__ @class */ (function () {
30177
31131
  }
30178
31132
  var idx = void 0;
30179
31133
  var ganttData = dataSource.length > 0 && this.parent.viewType !== 'ResourceView' ?
30180
- dataSource : this.parent.flatData;
31134
+ dataSource : this.parent.updatedRecords;
30181
31135
  for (var i = 0; i < ganttData.length; i++) {
30182
31136
  if (this.parent.viewType === 'ResourceView') {
30183
31137
  if (ganttData[i].ganttProperties.rowUniqueID === deletedRow.ganttProperties.rowUniqueID) {
@@ -30896,7 +31850,7 @@ var PdfTreeGridStyle = /** @__PURE__ @class */ (function () {
30896
31850
  return PdfTreeGridStyle;
30897
31851
  }());
30898
31852
 
30899
- var __extends$20 = (undefined && undefined.__extends) || (function () {
31853
+ var __extends$21 = (undefined && undefined.__extends) || (function () {
30900
31854
  var extendStatics = function (d, b) {
30901
31855
  extendStatics = Object.setPrototypeOf ||
30902
31856
  ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
@@ -30913,7 +31867,7 @@ var __extends$20 = (undefined && undefined.__extends) || (function () {
30913
31867
  *
30914
31868
  */
30915
31869
  var PdfTreeGridLayouter = /** @__PURE__ @class */ (function (_super) {
30916
- __extends$20(PdfTreeGridLayouter, _super);
31870
+ __extends$21(PdfTreeGridLayouter, _super);
30917
31871
  function PdfTreeGridLayouter(baseFormat) {
30918
31872
  var _this = _super.call(this, baseFormat) || this;
30919
31873
  _this.columnRanges = [];
@@ -31286,7 +32240,7 @@ var PdfTreeGridLayouter = /** @__PURE__ @class */ (function (_super) {
31286
32240
  return PdfTreeGridLayouter;
31287
32241
  }(ElementLayouter));
31288
32242
  var PdfTreeGridLayoutResult = /** @__PURE__ @class */ (function (_super) {
31289
- __extends$20(PdfTreeGridLayoutResult, _super);
32243
+ __extends$21(PdfTreeGridLayoutResult, _super);
31290
32244
  /**
31291
32245
  * Constructor
31292
32246
  *
@@ -31303,7 +32257,7 @@ var PdfTreeGridLayoutResult = /** @__PURE__ @class */ (function (_super) {
31303
32257
  * `PdfGridLayoutFormat` class represents a flexible grid that consists of columns and rows.
31304
32258
  */
31305
32259
  var PdfTreeGridLayoutFormat = /** @__PURE__ @class */ (function (_super) {
31306
- __extends$20(PdfTreeGridLayoutFormat, _super);
32260
+ __extends$21(PdfTreeGridLayoutFormat, _super);
31307
32261
  /**
31308
32262
  * Initializes a new instance of the `PdfGridLayoutFormat` class.
31309
32263
  *
@@ -31323,7 +32277,7 @@ var PdfTreeGridLayoutFormat = /** @__PURE__ @class */ (function (_super) {
31323
32277
  return PdfTreeGridLayoutFormat;
31324
32278
  }(PdfLayoutFormat));
31325
32279
 
31326
- var __extends$21 = (undefined && undefined.__extends) || (function () {
32280
+ var __extends$22 = (undefined && undefined.__extends) || (function () {
31327
32281
  var extendStatics = function (d, b) {
31328
32282
  extendStatics = Object.setPrototypeOf ||
31329
32283
  ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
@@ -31340,7 +32294,7 @@ var __extends$21 = (undefined && undefined.__extends) || (function () {
31340
32294
  * PdfTreeGrid Class for EJ2-PDF
31341
32295
  */
31342
32296
  var PdfTreeGrid = /** @__PURE__ @class */ (function (_super) {
31343
- __extends$21(PdfTreeGrid, _super);
32297
+ __extends$22(PdfTreeGrid, _super);
31344
32298
  function PdfTreeGrid() {
31345
32299
  var _this = _super.call(this) || this;
31346
32300
  _this.treeGridSize = new SizeF(0, 0);
@@ -33764,217 +34718,215 @@ var PdfGanttPredecessor = /** @__PURE__ @class */ (function () {
33764
34718
  var childPageData;
33765
34719
  var parentY = 0;
33766
34720
  var childY = 0;
33767
- if (childTask && parentTask) {
33768
- switch (this.type) {
33769
- case 'FS':
33770
- if (childTask.startPage > -1 && parentTask.endPage > -1) {
33771
- startPage = pages[parentTask.endPage];
33772
- endPage = pages[childTask.startPage];
33773
- parentPageData = pdfGantt.pdfPageDetail[parentTask.endPage - pdfGantt.chartPageIndex];
33774
- childPageData = pdfGantt.pdfPageDetail[childTask.startPage - pdfGantt.chartPageIndex];
33775
- if (this.parentIndex < this.childIndex) {
33776
- if (this.parentLeft < this.childLeft && this.childLeft > (this.parentLeft + this.parentWidth + 25)) {
33777
- predecessorType = 'FSType1';
33778
- }
33779
- else {
33780
- predecessorType = 'FSType2';
33781
- }
34721
+ switch (this.type) {
34722
+ case 'FS':
34723
+ if (childTask.startPage > -1 && parentTask.endPage > -1) {
34724
+ startPage = pages[parentTask.endPage];
34725
+ endPage = pages[childTask.startPage];
34726
+ parentPageData = pdfGantt.pdfPageDetail[parentTask.endPage - pdfGantt.chartPageIndex];
34727
+ childPageData = pdfGantt.pdfPageDetail[childTask.startPage - pdfGantt.chartPageIndex];
34728
+ if (this.parentIndex < this.childIndex) {
34729
+ if (this.parentLeft < this.childLeft && this.childLeft > (this.parentLeft + this.parentWidth + 25)) {
34730
+ predecessorType = 'FSType1';
33782
34731
  }
33783
34732
  else {
33784
- if (this.parentLeft < this.childLeft && this.childLeft > (this.parentLeft + this.parentWidth + 25)) {
33785
- predecessorType = 'FSType3';
33786
- }
33787
- else {
33788
- predecessorType = 'FSType4';
33789
- }
34733
+ predecessorType = 'FSType2';
33790
34734
  }
33791
34735
  }
33792
34736
  else {
33793
- return;
34737
+ if (this.parentLeft < this.childLeft && this.childLeft > (this.parentLeft + this.parentWidth + 25)) {
34738
+ predecessorType = 'FSType3';
34739
+ }
34740
+ else {
34741
+ predecessorType = 'FSType4';
34742
+ }
33794
34743
  }
33795
- break;
33796
- case 'SF':
33797
- if (childTask.endPage > -1 && parentTask.startPage > -1) {
33798
- startPage = pages[parentTask.startPage];
33799
- endPage = pages[childTask.endPage];
33800
- parentPageData = pdfGantt.pdfPageDetail[parentTask.endPage - pdfGantt.chartPageIndex];
33801
- childPageData = pdfGantt.pdfPageDetail[childTask.startPage - pdfGantt.chartPageIndex];
33802
- if (this.parentIndex < this.childIndex) {
33803
- if (this.parentLeft > this.childLeft + this.childWidth) {
33804
- predecessorType = 'SFType1';
33805
- }
33806
- else {
33807
- predecessorType = 'SFType2';
33808
- }
34744
+ }
34745
+ else {
34746
+ return;
34747
+ }
34748
+ break;
34749
+ case 'SF':
34750
+ if (childTask.endPage > -1 && parentTask.startPage > -1) {
34751
+ startPage = pages[parentTask.startPage];
34752
+ endPage = pages[childTask.endPage];
34753
+ parentPageData = pdfGantt.pdfPageDetail[parentTask.endPage - pdfGantt.chartPageIndex];
34754
+ childPageData = pdfGantt.pdfPageDetail[childTask.startPage - pdfGantt.chartPageIndex];
34755
+ if (this.parentIndex < this.childIndex) {
34756
+ if (this.parentLeft > this.childLeft + this.childWidth) {
34757
+ predecessorType = 'SFType1';
33809
34758
  }
33810
34759
  else {
33811
- if (this.parentLeft > this.childLeft + this.childWidth) {
33812
- predecessorType = 'SFType3';
33813
- }
33814
- else {
33815
- predecessorType = 'SFType4';
33816
- }
34760
+ predecessorType = 'SFType2';
33817
34761
  }
33818
34762
  }
33819
34763
  else {
33820
- return;
34764
+ if (this.parentLeft > this.childLeft + this.childWidth) {
34765
+ predecessorType = 'SFType3';
34766
+ }
34767
+ else {
34768
+ predecessorType = 'SFType4';
34769
+ }
33821
34770
  }
33822
- break;
33823
- case 'FF':
33824
- if (childTask.endPage > -1 && parentTask.endPage > -1) {
33825
- startPage = pages[parentTask.endPage];
33826
- endPage = pages[childTask.endPage];
33827
- parentPageData = pdfGantt.pdfPageDetail[parentTask.endPage - pdfGantt.chartPageIndex];
33828
- childPageData = pdfGantt.pdfPageDetail[childTask.endPage - pdfGantt.chartPageIndex];
33829
- if (this.parentIndex < this.childIndex) {
33830
- if ((this.childLeft + this.childWidth) >= (this.parentLeft + this.parentWidth)) {
33831
- predecessorType = 'FFType1';
33832
- }
33833
- else {
33834
- predecessorType = 'FFType2';
33835
- }
34771
+ }
34772
+ else {
34773
+ return;
34774
+ }
34775
+ break;
34776
+ case 'FF':
34777
+ if (childTask.endPage > -1 && parentTask.endPage > -1) {
34778
+ startPage = pages[parentTask.endPage];
34779
+ endPage = pages[childTask.endPage];
34780
+ parentPageData = pdfGantt.pdfPageDetail[parentTask.endPage - pdfGantt.chartPageIndex];
34781
+ childPageData = pdfGantt.pdfPageDetail[childTask.endPage - pdfGantt.chartPageIndex];
34782
+ if (this.parentIndex < this.childIndex) {
34783
+ if ((this.childLeft + this.childWidth) >= (this.parentLeft + this.parentWidth)) {
34784
+ predecessorType = 'FFType1';
33836
34785
  }
33837
34786
  else {
33838
- if ((this.childLeft + this.childWidth) >= (this.parentLeft + this.parentWidth)) {
33839
- predecessorType = 'FFType3';
33840
- }
33841
- else {
33842
- predecessorType = 'FFType4';
33843
- }
34787
+ predecessorType = 'FFType2';
33844
34788
  }
33845
34789
  }
33846
34790
  else {
33847
- return;
34791
+ if ((this.childLeft + this.childWidth) >= (this.parentLeft + this.parentWidth)) {
34792
+ predecessorType = 'FFType3';
34793
+ }
34794
+ else {
34795
+ predecessorType = 'FFType4';
34796
+ }
33848
34797
  }
33849
- break;
33850
- case 'SS':
33851
- if (childTask.startPage > -1 && parentTask.startPage > -1) {
33852
- startPage = pages[parentTask.startPage];
33853
- endPage = pages[childTask.startPage];
33854
- parentPageData = pdfGantt.pdfPageDetail[parentTask.startPage - pdfGantt.chartPageIndex];
33855
- childPageData = pdfGantt.pdfPageDetail[childTask.startPage - pdfGantt.chartPageIndex];
33856
- if (this.parentIndex < this.childIndex) {
33857
- if (this.parentLeft >= this.childLeft) {
33858
- predecessorType = 'SSType1';
33859
- }
33860
- else {
33861
- predecessorType = 'SSType2';
33862
- }
34798
+ }
34799
+ else {
34800
+ return;
34801
+ }
34802
+ break;
34803
+ case 'SS':
34804
+ if (childTask.startPage > -1 && parentTask.startPage > -1) {
34805
+ startPage = pages[parentTask.startPage];
34806
+ endPage = pages[childTask.startPage];
34807
+ parentPageData = pdfGantt.pdfPageDetail[parentTask.startPage - pdfGantt.chartPageIndex];
34808
+ childPageData = pdfGantt.pdfPageDetail[childTask.startPage - pdfGantt.chartPageIndex];
34809
+ if (this.parentIndex < this.childIndex) {
34810
+ if (this.parentLeft >= this.childLeft) {
34811
+ predecessorType = 'SSType1';
33863
34812
  }
33864
34813
  else {
33865
- if (this.parentLeft >= this.childLeft) {
33866
- predecessorType = 'SSType3';
33867
- }
33868
- else {
33869
- predecessorType = 'SSType4';
33870
- }
34814
+ predecessorType = 'SSType2';
33871
34815
  }
33872
34816
  }
33873
34817
  else {
33874
- return;
34818
+ if (this.parentLeft >= this.childLeft) {
34819
+ predecessorType = 'SSType3';
34820
+ }
34821
+ else {
34822
+ predecessorType = 'SSType4';
34823
+ }
33875
34824
  }
33876
- break;
33877
- }
33878
- var midPoint = Math.round((this.parent.rowHeight - 1) / 2.0);
33879
- midPoint = pixelToPoint(midPoint);
33880
- /* eslint-disable-next-line */
33881
- var point1 = void 0, point2 = void 0, point3 = void 0, point4 = void 0, point5 = void 0, point6 = void 0;
33882
- point1 = point2 = point3 = point4 = point5 = point6 = new PointF();
33883
- var parentTaskpoint = __assign$4({}, parentTask.taskStartPoint);
33884
- var childTaskpoint = __assign$4({}, childTask.taskStartPoint);
33885
- parentY = parentTaskpoint.y + parentPageData.startPoint.y;
33886
- childY = childTaskpoint.y + childPageData.startPoint.y;
33887
- var ffpoint1 = new PointF(pixelToPoint(this.parentLeft + this.parentWidth), parentY + midPoint);
33888
- var sspoint1 = new PointF(pixelToPoint(this.parentLeft) - 1, parentY + midPoint);
33889
- var ffpoint3 = new PointF(pixelToPoint(this.childLeft - 20), childY + midPoint);
33890
- var ffpoint4 = new PointF(pixelToPoint(this.childLeft - 6 - this.lineWidth) - 1, childY + midPoint);
33891
- var sspoint4 = new PointF(pixelToPoint(this.childLeft + this.childWidth + 6 + this.lineWidth) + 1, childY + midPoint);
33892
- switch (predecessorType) {
33893
- case 'FSType1':
33894
- case 'FSType3':
33895
- point1 = ffpoint1;
33896
- point2 = new PointF(pixelToPoint(this.childLeft - 20), parentY + midPoint);
33897
- point3 = ffpoint3;
33898
- point4 = ffpoint4;
33899
- this.connectLines(startPage, endPage, point1, point2, point3, point4, childTask, midPoint);
33900
- break;
33901
- case 'FSType2':
33902
- point1 = ffpoint1;
33903
- point2 = new PointF(point1.x + 10, parentY + midPoint);
33904
- point3 = new PointF(point1.x + 10, childY + 2);
33905
- point4 = new PointF(pixelToPoint(this.childLeft - 20), childY + 2);
33906
- point5 = ffpoint3;
33907
- point6 = ffpoint4;
33908
- this.connectLines(startPage, endPage, point1, point2, point3, point4, childTask, midPoint, point5, point6);
33909
- break;
33910
- case 'FSType4':
33911
- point1 = ffpoint1;
33912
- point2 = new PointF(point1.x + 10, parentY + midPoint);
33913
- point3 = new PointF(point1.x + 10, parentY + 2);
33914
- point4 = new PointF(pixelToPoint(this.childLeft - 20), parentY + 2);
33915
- point5 = ffpoint3;
33916
- point6 = ffpoint4;
33917
- this.connectLines(startPage, endPage, point1, point2, point3, point4, childTask, midPoint, point5, point6);
33918
- break;
33919
- case 'FFType1':
33920
- case 'FFType3':
33921
- point1 = new PointF(pixelToPoint(this.parentLeft + this.parentWidth) + 1, parentY + midPoint);
33922
- point2 = new PointF(pixelToPoint(this.childLeft + this.childWidth + 20), parentY + midPoint);
33923
- point3 = new PointF(point2.x, childY + midPoint);
33924
- point4 = sspoint4;
33925
- this.connectLines(startPage, endPage, point1, point2, point3, point4, childTask, midPoint);
33926
- break;
33927
- case 'FFType2':
33928
- case 'FFType4':
33929
- point1 = new PointF(pixelToPoint(this.parentLeft + this.parentWidth) + 1, parentY + midPoint);
33930
- point2 = new PointF(pixelToPoint(this.parentLeft + this.parentWidth + 20), parentY + midPoint);
33931
- point3 = new PointF(point2.x, childY + midPoint);
33932
- point4 = sspoint4;
33933
- this.connectLines(startPage, endPage, point1, point2, point3, point4, childTask, midPoint);
33934
- break;
33935
- case 'SSType1':
33936
- case 'SSType3':
33937
- point1 = sspoint1;
33938
- point2 = new PointF(pixelToPoint(this.childLeft - 20), parentY + midPoint);
33939
- point3 = new PointF(point2.x, childY + midPoint);
33940
- point4 = ffpoint4;
33941
- this.connectLines(startPage, endPage, point1, point2, point3, point4, childTask, midPoint);
33942
- break;
33943
- case 'SSType2':
33944
- case 'SSType4':
33945
- point1 = sspoint1;
33946
- point2 = new PointF(pixelToPoint(this.parentLeft - 20), parentY + midPoint);
33947
- point3 = new PointF(point2.x, childY + midPoint);
33948
- point4 = ffpoint4;
33949
- this.connectLines(startPage, endPage, point1, point2, point3, point4, childTask, midPoint);
33950
- break;
33951
- case 'SFType1':
33952
- case 'SFType3':
33953
- point1 = sspoint1;
33954
- point2 = new PointF(pixelToPoint(this.childLeft + this.childWidth + 20), parentY + midPoint);
33955
- point3 = new PointF(point2.x, childY + midPoint);
33956
- point4 = sspoint4;
33957
- this.connectLines(startPage, endPage, point1, point2, point3, point4, childTask, midPoint);
33958
- break;
33959
- case 'SFType2':
33960
- point1 = sspoint1;
33961
- point2 = new PointF(pixelToPoint(this.parentLeft - 20), parentY + midPoint);
33962
- point3 = new PointF(point2.x, childY + 2);
33963
- point4 = new PointF(pixelToPoint(this.childLeft + this.childWidth + 20), childY + 2);
33964
- point5 = new PointF(point4.x, childY + midPoint);
33965
- point6 = sspoint4;
33966
- this.connectLines(startPage, endPage, point1, point2, point3, point4, childTask, midPoint, point5, point6);
33967
- break;
33968
- case 'SFType4':
33969
- point1 = sspoint1;
33970
- point2 = new PointF(pixelToPoint(this.parentLeft - 20), parentY + midPoint);
33971
- point3 = new PointF(point2.x, parentY + 2);
33972
- point4 = new PointF(pixelToPoint(this.childLeft + this.childWidth + 20), parentY + 2);
33973
- point5 = new PointF(point4.x, childY + midPoint);
33974
- point6 = sspoint4;
33975
- this.connectLines(startPage, endPage, point1, point2, point3, point4, childTask, midPoint, point5, point6);
33976
- break;
33977
- }
34825
+ }
34826
+ else {
34827
+ return;
34828
+ }
34829
+ break;
34830
+ }
34831
+ var midPoint = Math.round((this.parent.rowHeight - 1) / 2.0);
34832
+ midPoint = pixelToPoint(midPoint);
34833
+ /* eslint-disable-next-line */
34834
+ var point1, point2, point3, point4, point5, point6;
34835
+ point1 = point2 = point3 = point4 = point5 = point6 = new PointF();
34836
+ var parentTaskpoint = __assign$4({}, parentTask.taskStartPoint);
34837
+ var childTaskpoint = __assign$4({}, childTask.taskStartPoint);
34838
+ parentY = parentTaskpoint.y + parentPageData.startPoint.y;
34839
+ childY = childTaskpoint.y + childPageData.startPoint.y;
34840
+ var ffpoint1 = new PointF(pixelToPoint(this.parentLeft + this.parentWidth), parentY + midPoint);
34841
+ var sspoint1 = new PointF(pixelToPoint(this.parentLeft) - 1, parentY + midPoint);
34842
+ var ffpoint3 = new PointF(pixelToPoint(this.childLeft - 20), childY + midPoint);
34843
+ var ffpoint4 = new PointF(pixelToPoint(this.childLeft - 6 - this.lineWidth) - 1, childY + midPoint);
34844
+ var sspoint4 = new PointF(pixelToPoint(this.childLeft + this.childWidth + 6 + this.lineWidth) + 1, childY + midPoint);
34845
+ switch (predecessorType) {
34846
+ case 'FSType1':
34847
+ case 'FSType3':
34848
+ point1 = ffpoint1;
34849
+ point2 = new PointF(pixelToPoint(this.childLeft - 20), parentY + midPoint);
34850
+ point3 = ffpoint3;
34851
+ point4 = ffpoint4;
34852
+ this.connectLines(startPage, endPage, point1, point2, point3, point4, childTask, midPoint);
34853
+ break;
34854
+ case 'FSType2':
34855
+ point1 = ffpoint1;
34856
+ point2 = new PointF(point1.x + 10, parentY + midPoint);
34857
+ point3 = new PointF(point1.x + 10, childY + 2);
34858
+ point4 = new PointF(pixelToPoint(this.childLeft - 20), childY + 2);
34859
+ point5 = ffpoint3;
34860
+ point6 = ffpoint4;
34861
+ this.connectLines(startPage, endPage, point1, point2, point3, point4, childTask, midPoint, point5, point6);
34862
+ break;
34863
+ case 'FSType4':
34864
+ point1 = ffpoint1;
34865
+ point2 = new PointF(point1.x + 10, parentY + midPoint);
34866
+ point3 = new PointF(point1.x + 10, parentY + 2);
34867
+ point4 = new PointF(pixelToPoint(this.childLeft - 20), parentY + 2);
34868
+ point5 = ffpoint3;
34869
+ point6 = ffpoint4;
34870
+ this.connectLines(startPage, endPage, point1, point2, point3, point4, childTask, midPoint, point5, point6);
34871
+ break;
34872
+ case 'FFType1':
34873
+ case 'FFType3':
34874
+ point1 = new PointF(pixelToPoint(this.parentLeft + this.parentWidth) + 1, parentY + midPoint);
34875
+ point2 = new PointF(pixelToPoint(this.childLeft + this.childWidth + 20), parentY + midPoint);
34876
+ point3 = new PointF(point2.x, childY + midPoint);
34877
+ point4 = sspoint4;
34878
+ this.connectLines(startPage, endPage, point1, point2, point3, point4, childTask, midPoint);
34879
+ break;
34880
+ case 'FFType2':
34881
+ case 'FFType4':
34882
+ point1 = new PointF(pixelToPoint(this.parentLeft + this.parentWidth) + 1, parentY + midPoint);
34883
+ point2 = new PointF(pixelToPoint(this.parentLeft + this.parentWidth + 20), parentY + midPoint);
34884
+ point3 = new PointF(point2.x, childY + midPoint);
34885
+ point4 = sspoint4;
34886
+ this.connectLines(startPage, endPage, point1, point2, point3, point4, childTask, midPoint);
34887
+ break;
34888
+ case 'SSType1':
34889
+ case 'SSType3':
34890
+ point1 = sspoint1;
34891
+ point2 = new PointF(pixelToPoint(this.childLeft - 20), parentY + midPoint);
34892
+ point3 = new PointF(point2.x, childY + midPoint);
34893
+ point4 = ffpoint4;
34894
+ this.connectLines(startPage, endPage, point1, point2, point3, point4, childTask, midPoint);
34895
+ break;
34896
+ case 'SSType2':
34897
+ case 'SSType4':
34898
+ point1 = sspoint1;
34899
+ point2 = new PointF(pixelToPoint(this.parentLeft - 20), parentY + midPoint);
34900
+ point3 = new PointF(point2.x, childY + midPoint);
34901
+ point4 = ffpoint4;
34902
+ this.connectLines(startPage, endPage, point1, point2, point3, point4, childTask, midPoint);
34903
+ break;
34904
+ case 'SFType1':
34905
+ case 'SFType3':
34906
+ point1 = sspoint1;
34907
+ point2 = new PointF(pixelToPoint(this.childLeft + this.childWidth + 20), parentY + midPoint);
34908
+ point3 = new PointF(point2.x, childY + midPoint);
34909
+ point4 = sspoint4;
34910
+ this.connectLines(startPage, endPage, point1, point2, point3, point4, childTask, midPoint);
34911
+ break;
34912
+ case 'SFType2':
34913
+ point1 = sspoint1;
34914
+ point2 = new PointF(pixelToPoint(this.parentLeft - 20), parentY + midPoint);
34915
+ point3 = new PointF(point2.x, childY + 2);
34916
+ point4 = new PointF(pixelToPoint(this.childLeft + this.childWidth + 20), childY + 2);
34917
+ point5 = new PointF(point4.x, childY + midPoint);
34918
+ point6 = sspoint4;
34919
+ this.connectLines(startPage, endPage, point1, point2, point3, point4, childTask, midPoint, point5, point6);
34920
+ break;
34921
+ case 'SFType4':
34922
+ point1 = sspoint1;
34923
+ point2 = new PointF(pixelToPoint(this.parentLeft - 20), parentY + midPoint);
34924
+ point3 = new PointF(point2.x, parentY + 2);
34925
+ point4 = new PointF(pixelToPoint(this.childLeft + this.childWidth + 20), parentY + 2);
34926
+ point5 = new PointF(point4.x, childY + midPoint);
34927
+ point6 = sspoint4;
34928
+ this.connectLines(startPage, endPage, point1, point2, point3, point4, childTask, midPoint, point5, point6);
34929
+ break;
33978
34930
  }
33979
34931
  };
33980
34932
  /**
@@ -34156,7 +35108,7 @@ var PdfGanttPredecessor = /** @__PURE__ @class */ (function () {
34156
35108
  return PdfGanttPredecessor;
34157
35109
  }());
34158
35110
 
34159
- var __extends$22 = (undefined && undefined.__extends) || (function () {
35111
+ var __extends$23 = (undefined && undefined.__extends) || (function () {
34160
35112
  var extendStatics = function (d, b) {
34161
35113
  extendStatics = Object.setPrototypeOf ||
34162
35114
  ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
@@ -34184,7 +35136,7 @@ var __assign$2 = (undefined && undefined.__assign) || function () {
34184
35136
  *
34185
35137
  */
34186
35138
  var PdfGantt = /** @__PURE__ @class */ (function (_super) {
34187
- __extends$22(PdfGantt, _super);
35139
+ __extends$23(PdfGantt, _super);
34188
35140
  function PdfGantt(parent) {
34189
35141
  var _this = _super.call(this) || this;
34190
35142
  _this.exportProps = {};
@@ -34491,6 +35443,12 @@ var PdfExport = /** @__PURE__ @class */ (function () {
34491
35443
  cancel: false
34492
35444
  };
34493
35445
  this.parent.trigger('beforePdfExport', args);
35446
+ if (!isNullOrUndefined(this.parent.loadingIndicator) && this.parent.loadingIndicator.indicatorType === "Shimmer") {
35447
+ this.parent.showMaskRow();
35448
+ }
35449
+ else {
35450
+ this.parent.showSpinner();
35451
+ }
34494
35452
  if (getValue('cancel', args)) {
34495
35453
  /* eslint-disable-next-line */
34496
35454
  return new Promise(function (resolve, reject) {
@@ -34523,6 +35481,12 @@ var PdfExport = /** @__PURE__ @class */ (function () {
34523
35481
  }
34524
35482
  this.processExport(data, pdfExportProperties, isMultipleExport).then(function () {
34525
35483
  _this.parent.trigger('pdfExportComplete', {});
35484
+ if (!isNullOrUndefined(_this.parent.loadingIndicator) && _this.parent.loadingIndicator.indicatorType === "Shimmer") {
35485
+ _this.parent.hideMaskRow();
35486
+ }
35487
+ else {
35488
+ _this.parent.hideSpinner();
35489
+ }
34526
35490
  resolve(_this.pdfDocument);
34527
35491
  });
34528
35492
  };
@@ -34713,5 +35677,5 @@ var VirtualScroll$1 = /** @__PURE__ @class */ (function () {
34713
35677
  * Gantt index file
34714
35678
  */
34715
35679
 
34716
- 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 };
35680
+ 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 };
34717
35681
  //# sourceMappingURL=ej2-gantt.es5.js.map