@syncfusion/ej2-gantt 20.3.61 → 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 +5 -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 +1412 -476
  7. package/dist/es6/ej2-gantt.es2015.js.map +1 -1
  8. package/dist/es6/ej2-gantt.es5.js +1438 -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 +1 -1
  31. package/src/gantt/base/gantt-chart.js +31 -3
  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
  }
@@ -488,7 +489,7 @@ var DateProcessor = /** @__PURE__ @class */ (function () {
488
489
  tDuration = this.parent.editModule.taskbarEditModule.sumOfDuration(ganttProperties.segments);
489
490
  }
490
491
  else {
491
- if (!isNullOrUndefined(ganttProperties.startDate) && !isNullOrUndefined(ganttProperties.endDate) &&
492
+ if ((!isNullOrUndefined(this.parent.taskFields.milestone)) && (!isNullOrUndefined(ganttProperties.startDate)) && !isNullOrUndefined(ganttProperties.endDate) &&
492
493
  (ganttProperties.startDate).getTime() === (ganttProperties.endDate).getTime() && !isNullOrUndefined(ganttData.taskData[this.parent.taskFields.milestone])) {
493
494
  tDuration = 1;
494
495
  }
@@ -1887,7 +1888,6 @@ var TaskProcessor = /** @__PURE__ @class */ (function (_super) {
1887
1888
  this.parent.setRecordValue('parentId', data[taskSettings.parentID], ganttProperties, true);
1888
1889
  }
1889
1890
  this.addCustomFieldValue(data, ganttData);
1890
- ganttData.checkboxState = 'uncheck';
1891
1891
  this.parent.setRecordValue('isAutoSchedule', autoSchedule, ganttProperties, true);
1892
1892
  this.parent.setRecordValue('resourceInfo', this.setResourceInfo(data), ganttProperties, true);
1893
1893
  this.parent.setRecordValue('isMilestone', false, ganttProperties, true);
@@ -2079,8 +2079,10 @@ var TaskProcessor = /** @__PURE__ @class */ (function (_super) {
2079
2079
  taskData.push(this.setSegmentTaskData(segment, segments[i]));
2080
2080
  }
2081
2081
  this.parent.setRecordValue('duration', sumOfDuration, data.ganttProperties, true);
2082
- this.parent.setRecordValue('endDate', ganttSegments[ganttSegments.length - 1].endDate, data.ganttProperties, true);
2083
- if (!isNullOrUndefined(taskSettings.endDate)) {
2082
+ if (!isNullOrUndefined(ganttSegments[ganttSegments.length - 1])) {
2083
+ this.parent.setRecordValue('endDate', ganttSegments[ganttSegments.length - 1].endDate, data.ganttProperties, true);
2084
+ }
2085
+ if (!isNullOrUndefined(taskSettings.endDate) && !isNullOrUndefined(ganttSegments[ganttSegments.length - 1])) {
2084
2086
  this.parent.setRecordValue(this.parent.taskFields.endDate, ganttSegments[ganttSegments.length - 1].endDate, data, true);
2085
2087
  }
2086
2088
  this.parent.setRecordValue('taskData.' + this.parent.taskFields.segments, taskData, data);
@@ -4005,6 +4007,8 @@ var ChartScroll = /** @__PURE__ @class */ (function () {
4005
4007
  ChartScroll.prototype.addEventListeners = function () {
4006
4008
  this.parent.on('grid-scroll', this.gridScrollHandler, this);
4007
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);
4008
4012
  };
4009
4013
  /**
4010
4014
  * Unbind events
@@ -4014,6 +4018,8 @@ var ChartScroll = /** @__PURE__ @class */ (function () {
4014
4018
  ChartScroll.prototype.removeEventListeners = function () {
4015
4019
  EventHandler.remove(this.element, 'scroll', this.onScroll);
4016
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);
4017
4023
  };
4018
4024
  /**
4019
4025
  *
@@ -4059,6 +4065,27 @@ var ChartScroll = /** @__PURE__ @class */ (function () {
4059
4065
  this.parent.chartVerticalLineContainer.style.top = formatUnit(scrollTop);
4060
4066
  }
4061
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
+ };
4062
4089
  /**
4063
4090
  * Scroll event handler
4064
4091
  *
@@ -4084,6 +4111,16 @@ var ChartScroll = /** @__PURE__ @class */ (function () {
4084
4111
  scrollArgs.scrollDirection = 'Horizontal';
4085
4112
  scrollArgs.action = 'HorizontalScroll';
4086
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;
4087
4124
  scrollArgs.requestType = 'scroll';
4088
4125
  this.parent.trigger('actionComplete', scrollArgs);
4089
4126
  };
@@ -4124,7 +4161,10 @@ var ChartScroll = /** @__PURE__ @class */ (function () {
4124
4161
  * @param {number} scrollLeft - To set scroll left for scroll container
4125
4162
  * @returns {void} .
4126
4163
  */
4127
- 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
+ }
4128
4168
  this.element.scrollLeft = scrollLeft;
4129
4169
  this.parent.ganttChartModule.chartTimelineContainer.scrollLeft = this.element.scrollLeft;
4130
4170
  this.previousScroll.left = this.element.scrollLeft;
@@ -4273,6 +4313,21 @@ var GanttChart = /** @__PURE__ @class */ (function () {
4273
4313
  this.parent.predecessorModule.createConnectorLinesCollection();
4274
4314
  }
4275
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
+ }
4276
4331
  if (this.parent.enableCriticalPath) {
4277
4332
  var crtiticalModule = this.parent.criticalPathModule;
4278
4333
  this.parent.criticalPathModule.criticalConnectorLine(crtiticalModule.criticalPathCollection, crtiticalModule.detailPredecessorCollection, this.parent.enableCriticalPath, crtiticalModule.predecessorCollectionTaskIds);
@@ -4336,11 +4391,13 @@ var GanttChart = /** @__PURE__ @class */ (function () {
4336
4391
  for (var i = 0; i < rangeCollection.length; i++) {
4337
4392
  var height = this.getRangeHeight(currentRecord);
4338
4393
  var leftDiv = createElement('div', {
4339
- className: rangeChildContainer + ' ' + 'e-leftarc', styles: "left:" + rangeCollection[i].left + "px;\n top: " + Math.floor((this.parent.rowHeight - this.parent.chartRowsModule.taskBarHeight) / 2) + "px;\n height: " + (height + 1) + "px; border-right: 0px"
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")
4340
4396
  });
4341
4397
  var rightDiv = createElement('div', {
4342
4398
  className: rangeChildContainer + ' ' + 'e-rightarc',
4343
- styles: "left:" + (rangeCollection[i].left + rangeCollection[i].width - 5) + "px;\n top: " + Math.floor((this.parent.rowHeight - this.parent.chartRowsModule.taskBarHeight) / 2) + "px; height: " + (height + 1) + "px;\n border-left: 0px"
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")
4344
4401
  });
4345
4402
  parentDiv.appendChild(leftDiv);
4346
4403
  parentDiv.appendChild(rightDiv);
@@ -4355,6 +4412,10 @@ var GanttChart = /** @__PURE__ @class */ (function () {
4355
4412
  GanttChart.prototype.renderTimelineContainer = function () {
4356
4413
  this.chartTimelineContainer =
4357
4414
  createElement('div', { className: timelineHeaderContainer });
4415
+ if (this.parent.enableRtl) {
4416
+ this.chartTimelineContainer.style.borderLeftWidth = '1px';
4417
+ this.chartTimelineContainer.style.borderRightWidth = '0px';
4418
+ }
4358
4419
  this.chartTimelineContainer.setAttribute("role", "presentation");
4359
4420
  this.chartElement.appendChild(this.chartTimelineContainer);
4360
4421
  };
@@ -4527,7 +4588,7 @@ var GanttChart = /** @__PURE__ @class */ (function () {
4527
4588
  scrollLeft = this.scrollElement.scrollWidth <= scrollLeft ? this.scrollElement.scrollWidth : scrollLeft;
4528
4589
  if ((this.scrollElement.offsetWidth + this.parent.ganttChartModule.scrollElement.scrollLeft) < scrollLeft
4529
4590
  || (this.scrollElement.scrollLeft > scrollLeft)) {
4530
- this.scrollObject.setScrollLeft(scrollLeft - 50);
4591
+ this.scrollObject.setScrollLeft(scrollLeft - 50, this.parent.enableRtl ? -1 : 0);
4531
4592
  }
4532
4593
  // this.parent.ganttChartModule.scrollObject.updateLeftPosition();
4533
4594
  };
@@ -4585,6 +4646,13 @@ var GanttChart = /** @__PURE__ @class */ (function () {
4585
4646
  }
4586
4647
  this.parent.notify('chartMouseUp', e);
4587
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
+ }
4588
4656
  if (this.focusedElement && !e.target.classList.contains('e-split-bar')) {
4589
4657
  this.focusedElement.tabIndex = this.focusedElement.tabIndex === 0 ? -1 : this.focusedElement.tabIndex;
4590
4658
  removeClass([this.focusedElement], 'e-active-container');
@@ -5604,6 +5672,12 @@ var Timeline = /** @__PURE__ @class */ (function () {
5604
5672
  cancel: false
5605
5673
  };
5606
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
+ }
5607
5681
  if (!args.cancel) {
5608
5682
  newTimeline = args.timeline;
5609
5683
  this.changeTimelineSettings(newTimeline);
@@ -5645,6 +5719,12 @@ var Timeline = /** @__PURE__ @class */ (function () {
5645
5719
  timeline: this.parent.currentZoomingLevel
5646
5720
  };
5647
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
+ }
5648
5728
  }
5649
5729
  };
5650
5730
  /**
@@ -5712,6 +5792,12 @@ var Timeline = /** @__PURE__ @class */ (function () {
5712
5792
  this.parent.toolbarModule.enableItems([this.parent.controlId + '_zoomin', this.parent.controlId + '_zoomout'], true);
5713
5793
  }
5714
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
+ }
5715
5801
  this.changeTimelineSettings(newTimeline);
5716
5802
  };
5717
5803
  Timeline.prototype.bottomTierCellWidthCalc = function (mode, zoomLevel, date) {
@@ -6823,7 +6909,9 @@ var Timeline = /** @__PURE__ @class */ (function () {
6823
6909
  var validStartLeft = this.parent.dataOperation.getTaskLeft(validStartDate, false);
6824
6910
  var validEndLeft = this.parent.dataOperation.getTaskLeft(validEndDate, false);
6825
6911
  var isChanged = void 0;
6826
- if (!isNullOrUndefined(maxStartLeft) && ((minStartDate < this.timelineStartDate) || (!isNullOrUndefined(this.parent.editModule.taskbarEditModule)) && (!isNullOrUndefined(this.parent.editModule.taskbarEditModule.taskBarEditAction))) && (maxStartLeft < this.bottomTierCellWidth || maxStartLeft <= validStartLeft)) {
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)) {
6827
6915
  isChanged = 'prevTimeSpan';
6828
6916
  minStartDate = minStartDate > this.timelineStartDate ? this.timelineStartDate : minStartDate;
6829
6917
  }
@@ -7065,9 +7153,12 @@ var GanttTreeGrid = /** @__PURE__ @class */ (function () {
7065
7153
  this.parent.treeGrid.showColumnMenu = this.parent.showColumnMenu;
7066
7154
  this.parent.treeGrid.enableCollapseAll = this.parent.collapseAllParentTasks;
7067
7155
  this.parent.treeGrid.columnMenuItems = this.parent.columnMenuItems;
7156
+ this.parent.treeGrid.enableRtl = this.parent.enableRtl;
7068
7157
  this.parent.treeGrid.childMapping = isNullOrUndefined(this.parent.taskFields.child) ? '' : this.parent.taskFields.child;
7069
7158
  this.parent.treeGrid.treeColumnIndex = this.parent.treeColumnIndex;
7070
7159
  this.parent.treeGrid.columns = this.treeGridColumns;
7160
+ this.parent.treeGrid.loadingIndicator = this.parent.loadingIndicator;
7161
+ this.parent.treeGrid.enableVirtualMaskRow = this.parent.enableVirtualMaskRow;
7071
7162
  if (this.parent.dataSource instanceof Object && isCountRequired(this.parent)) {
7072
7163
  // In order to bind the observable data at load time, hasChildMapping is necessary to be mapped.
7073
7164
  this.parent.treeGrid.hasChildMapping = 'isParent';
@@ -7161,6 +7252,14 @@ var GanttTreeGrid = /** @__PURE__ @class */ (function () {
7161
7252
  GanttTreeGrid.prototype.dataBound = function (args) {
7162
7253
  this.ensureScrollBar();
7163
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
+ }
7164
7263
  this.prevCurrentView = extend([], [], this.parent.currentViewData, true);
7165
7264
  };
7166
7265
  GanttTreeGrid.prototype.dataStateChange = function (args) {
@@ -7195,6 +7294,12 @@ var GanttTreeGrid = /** @__PURE__ @class */ (function () {
7195
7294
  var collapsedArgs = this.createExpandCollapseArgs(args);
7196
7295
  this.parent.ganttChartModule.collapsedGanttRow(collapsedArgs);
7197
7296
  }
7297
+ if (!isNullOrUndefined(this.parent.loadingIndicator) && this.parent.loadingIndicator.indicatorType === "Shimmer") {
7298
+ this.parent.hideMaskRow();
7299
+ }
7300
+ else {
7301
+ this.parent.hideSpinner();
7302
+ }
7198
7303
  };
7199
7304
  GanttTreeGrid.prototype.expanded = function (args) {
7200
7305
  if (!this.parent.ganttChartModule.isExpandCollapseFromChart && !this.parent.isExpandCollapseLevelMethod) {
@@ -7203,6 +7308,12 @@ var GanttTreeGrid = /** @__PURE__ @class */ (function () {
7203
7308
  this.parent.ganttChartModule.expandedGanttRow(expandedArgs);
7204
7309
  }
7205
7310
  }
7311
+ if (!isNullOrUndefined(this.parent.loadingIndicator) && this.parent.loadingIndicator.indicatorType === "Shimmer") {
7312
+ this.parent.hideMaskRow();
7313
+ }
7314
+ else {
7315
+ this.parent.hideSpinner();
7316
+ }
7206
7317
  };
7207
7318
  GanttTreeGrid.prototype.actionBegin = function (args) {
7208
7319
  this.parent.notify('actionBegin', args);
@@ -7211,6 +7322,14 @@ var GanttTreeGrid = /** @__PURE__ @class */ (function () {
7211
7322
  setValue('doubleClickTarget', null, this.parent.treeGrid.editModule);
7212
7323
  }
7213
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
+ }
7214
7333
  }; // eslint-disable-next-line
7215
7334
  GanttTreeGrid.prototype.created = function (args) {
7216
7335
  this.updateKeyConfigSettings();
@@ -7279,6 +7398,12 @@ var GanttTreeGrid = /** @__PURE__ @class */ (function () {
7279
7398
  this.parent.addDeleteRecord = false;
7280
7399
  }
7281
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
+ }
7282
7407
  };
7283
7408
  GanttTreeGrid.prototype.updateKeyConfigSettings = function () {
7284
7409
  delete this.parent.treeGrid.grid.keyboardModule.keyConfigs.delete;
@@ -8465,11 +8590,44 @@ var ResourceFields = /** @__PURE__ @class */ (function (_super) {
8465
8590
  return ResourceFields;
8466
8591
  }(ChildProperty));
8467
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
+
8468
8626
  /**
8469
8627
  * Export all generated models for complex settings
8470
8628
  */
8471
8629
 
8472
- var __extends$18 = (undefined && undefined.__extends) || (function () {
8630
+ var __extends$19 = (undefined && undefined.__extends) || (function () {
8473
8631
  var extendStatics = function (d, b) {
8474
8632
  extendStatics = Object.setPrototypeOf ||
8475
8633
  ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
@@ -8486,7 +8644,7 @@ var __extends$18 = (undefined && undefined.__extends) || (function () {
8486
8644
  * To render the chart rows in Gantt
8487
8645
  */
8488
8646
  var ChartRows = /** @__PURE__ @class */ (function (_super) {
8489
- __extends$18(ChartRows, _super);
8647
+ __extends$19(ChartRows, _super);
8490
8648
  function ChartRows(ganttObj) {
8491
8649
  var _this = _super.call(this, ganttObj) || this;
8492
8650
  _this.taskBarHeight = 0;
@@ -8578,7 +8736,7 @@ var ChartRows = /** @__PURE__ @class */ (function (_super) {
8578
8736
  ChartRows.prototype.getIndicatorNode = function (indicator) {
8579
8737
  var templateString = '<label class="' + label + ' ' + taskIndicatorDiv + '"style="line-height:'
8580
8738
  + (this.parent.rowHeight) + 'px;' +
8581
- '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>';
8582
8740
  return this.createDivElement(templateString);
8583
8741
  };
8584
8742
  /**
@@ -8604,6 +8762,13 @@ var ChartRows = /** @__PURE__ @class */ (function (_super) {
8604
8762
  ChartRows.prototype.getChildTaskbarNode = function (i, rootElement) {
8605
8763
  var childTaskbarNode = null;
8606
8764
  var data = this.templateData;
8765
+ var direction;
8766
+ if (this.parent.enableRtl) {
8767
+ direction = 'right:';
8768
+ }
8769
+ else {
8770
+ direction = 'left:';
8771
+ }
8607
8772
  if (this.childTaskbarTemplateFunction) {
8608
8773
  childTaskbarNode = this.childTaskbarTemplateFunction(extend({ index: i }, data), this.parent, 'TaskbarTemplate', this.getTemplateID('TaskbarTemplate'), false, undefined, rootElement[0], this.parent.treeGrid['root']);
8609
8774
  }
@@ -8646,14 +8811,15 @@ var ChartRows = /** @__PURE__ @class */ (function (_super) {
8646
8811
  }
8647
8812
  if (isNaN(parseInt(labelString))) {
8648
8813
  taskLabel$$1 = '<span class="' + taskLabel + '" style="line-height:' +
8649
- (this.taskBarHeight - 1) + 'px; text-align: left;' +
8814
+ (this.taskBarHeight - 1) + 'px; text-align:' + (this.parent.enableRtl ? 'right;' : 'left;') +
8650
8815
  'display:' + 'inline-block;' +
8651
8816
  'width:' + (data.ganttProperties.width - 10) + 'px; height:' +
8652
8817
  this.taskBarHeight + 'px;">' + labelString + '</span>';
8653
8818
  }
8654
8819
  else {
8655
8820
  taskLabel$$1 = '<span class="' + taskLabel + '" style="line-height:' +
8656
- (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;')) : '') +
8657
8823
  +(this.parent.viewType === 'ResourceView' ? 'display:inline-flex;' : '') +
8658
8824
  +(this.parent.viewType === 'ResourceView' ? (data.ganttProperties.width - 10) : '') + 'px; height:' +
8659
8825
  this.taskBarHeight + 'px;">' + labelString + '</span>';
@@ -8665,17 +8831,17 @@ var ChartRows = /** @__PURE__ @class */ (function (_super) {
8665
8831
  (data.ganttProperties.startDate && !data.ganttProperties.endDate && !data.ganttProperties.duration) ? ('<div class="' + childProgressBarInnerDiv + ' ' + traceChildTaskBar + ' ' +
8666
8832
  unscheduledTaskbarLeft + ' ' + (data.ganttProperties.isAutoSchedule ?
8667
8833
  '' : manualChildTaskBar) + '"' +
8668
- 'style="left:' + data.ganttProperties.left + 'px; height:' + this.taskBarHeight + 'px;"></div>') :
8834
+ 'style="' + direction + data.ganttProperties.left + 'px; height:' + this.taskBarHeight + 'px;"></div>') :
8669
8835
  (data.ganttProperties.endDate && !data.ganttProperties.startDate && !data.ganttProperties.duration) ?
8670
8836
  ('<div class="' + childProgressBarInnerDiv + ' ' + traceChildTaskBar + ' ' +
8671
8837
  unscheduledTaskbarRight + ' ' + (data.ganttProperties.isAutoSchedule ?
8672
8838
  '' : manualChildTaskBar) + '"' +
8673
- 'style="left:' + data.ganttProperties.left + 'px; height:' + this.taskBarHeight + 'px;"></div>') :
8839
+ 'style="' + direction + data.ganttProperties.left + 'px; height:' + this.taskBarHeight + 'px;"></div>') :
8674
8840
  (data.ganttProperties.duration && !data.ganttProperties.startDate && !data.ganttProperties.endDate) ?
8675
8841
  ('<div class="' + childProgressBarInnerDiv + ' ' + traceChildTaskBar + ' ' +
8676
8842
  unscheduledTaskbar + ' ' + (data.ganttProperties.isAutoSchedule ?
8677
8843
  '' : manualChildTaskBar) + '"' +
8678
- 'style="left:' + data.ganttProperties.left + 'px; width:' + data.ganttProperties.width + 'px;' +
8844
+ 'style="' + direction + data.ganttProperties.left + 'px; width:' + data.ganttProperties.width + 'px;' +
8679
8845
  ' height:' + this.taskBarHeight + 'px;"></div>') : '';
8680
8846
  if (data.ganttProperties.startDate && data.ganttProperties.endDate && data.ganttProperties.duration &&
8681
8847
  (isNullOrUndefined(data.ganttProperties.segments) || (!isNullOrUndefined(data.ganttProperties.segments) &&
@@ -8703,6 +8869,13 @@ var ChartRows = /** @__PURE__ @class */ (function (_super) {
8703
8869
  childTaskbarNode = this.createDivElement(template);
8704
8870
  }
8705
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
+ }
8706
8879
  return childTaskbarNode;
8707
8880
  };
8708
8881
  ChartRows.prototype.splitTaskbar = function (data, labelString) {
@@ -8722,7 +8895,7 @@ var ChartRows = /** @__PURE__ @class */ (function (_super) {
8722
8895
  //split taskbar
8723
8896
  '<div class="' + childTaskBarInnerDiv + ' ' + segmentPosition + ' ' + traceChildTaskBar + ' ' +
8724
8897
  ' e-segmented-taskbar' +
8725
- '"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:' +
8726
8899
  (this.taskBarHeight) + 'px; overflow:' + progressBarVisible + ';" data-segment-index = "' + i + '" aria-label = "' +
8727
8900
  this.generateSpiltTaskAriaLabel(segment, data.ganttProperties) + '"> ' +
8728
8901
  this.getSplitTaskbarLeftResizerNode() +
@@ -8730,7 +8903,7 @@ var ChartRows = /** @__PURE__ @class */ (function (_super) {
8730
8903
  '<div class="' + childProgressBarInnerDiv + ' ' + traceChildProgressBar + ' ' +
8731
8904
  '" style="border-style:' + (segment.progressWidth ? 'solid;' : 'none;') +
8732
8905
  'display:' + (segment.progressWidth >= 0 ? 'block;' : 'none;') +
8733
- 'width:' + segment.progressWidth + 'px;height:100%;' +
8906
+ 'width:' + segment.progressWidth + 'px;height:100%;' + 'text-align:' + (this.parent.enableRtl ? 'left;' : 'right;') +
8734
8907
  'border-top-right-radius:' + this.getSplitTaskBorderRadius(segment) + 'px;' +
8735
8908
  'border-bottom-right-radius:' + this.getSplitTaskBorderRadius(segment) + 'px;">' +
8736
8909
  // progress label
@@ -8747,19 +8920,20 @@ var ChartRows = /** @__PURE__ @class */ (function (_super) {
8747
8920
  ChartRows.prototype.getSplitTaskbarLeftResizerNode = function () {
8748
8921
  var lResizerLeft = -(this.parent.isAdaptive ? 12 : 2);
8749
8922
  var template = '<div class="' + taskBarLeftResizer + ' ' + icon + '"' +
8750
- ' style="left:' + lResizerLeft + 'px;height:' + (this.taskBarHeight) + 'px;"></div>';
8923
+ ' style="' + (this.parent.enableRtl ? 'right:' : 'left:') + lResizerLeft + 'px;height:' + (this.taskBarHeight) + 'px;"></div>';
8751
8924
  return template;
8752
8925
  };
8753
8926
  ChartRows.prototype.getSplitTaskbarRightResizerNode = function (segment) {
8754
8927
  var rResizerLeft = this.parent.isAdaptive ? -2 : -10;
8755
8928
  var template = '<div class="' + taskBarRightResizer + ' ' + icon + '"' +
8756
- ' style="left:' + (segment.width + rResizerLeft) + 'px;' +
8929
+ ' style="' + (this.parent.enableRtl ? 'right:' : 'left:') + (segment.width + rResizerLeft) + 'px;' +
8757
8930
  'height:' + (this.taskBarHeight) + 'px;"></div>';
8758
8931
  return template;
8759
8932
  };
8760
8933
  ChartRows.prototype.getSplitProgressResizerNode = function (segment) {
8934
+ var width = this.parent.enableRtl ? (segment.progressWidth + 8) : (segment.progressWidth - 6);
8761
8935
  var template = '<div class="' + childProgressResizer + '"' +
8762
- ' style="left:' + (segment.progressWidth - 6) + 'px;margin-top:' +
8936
+ ' style="' + (this.parent.enableRtl ? 'right:' : 'left:') + width + 'px;margin-top:' +
8763
8937
  (this.taskBarHeight - 4) + 'px;"><div class="' + progressBarHandler + '"' +
8764
8938
  '><div class="' + progressHandlerElement + '"></div>' +
8765
8939
  '<div class="' + progressBarHandlerAfter + '"></div></div>';
@@ -8889,6 +9063,12 @@ var ChartRows = /** @__PURE__ @class */ (function (_super) {
8889
9063
  }
8890
9064
  }
8891
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
+ }
8892
9072
  setValue('isEdit', false, this.parent.contextMenuModule);
8893
9073
  setValue('isEdit', false, this.parent);
8894
9074
  };
@@ -9093,7 +9273,7 @@ var ChartRows = /** @__PURE__ @class */ (function (_super) {
9093
9273
  ChartRows.prototype.getTaskBaselineNode = function () {
9094
9274
  var data = this.templateData;
9095
9275
  var template = '<div class="' + baselineBar + ' ' + '" role="term" style="margin-top:' + this.baselineTop +
9096
- 'px;left:' + data.ganttProperties.baselineLeft + 'px;' +
9276
+ 'px;' + (this.parent.enableRtl ? 'right:' : 'left:') + data.ganttProperties.baselineLeft + 'px;' +
9097
9277
  'width:' + data.ganttProperties.baselineWidth + 'px;height:' +
9098
9278
  this.baselineHeight + 'px;' + (this.baselineColor ? 'background-color: ' + this.baselineColor + ';' : '') + '"></div>';
9099
9279
  return this.createDivElement(template);
@@ -9108,7 +9288,7 @@ var ChartRows = /** @__PURE__ @class */ (function (_super) {
9108
9288
  var data = this.templateData;
9109
9289
  var baselineMilestoneHeight = this.parent.renderBaseline ? 5 : 2;
9110
9290
  var template = '<div class="' + baselineMilestoneContainer + ' ' + '" style="' +
9111
- 'left:' + (data.ganttProperties.baselineLeft - this.milesStoneRadius) + 'px;' +
9291
+ (this.parent.enableRtl ? 'right:' : 'left:') + (data.ganttProperties.baselineLeft - this.milesStoneRadius) + 'px;' +
9112
9292
  'margin-top:' + (-Math.floor(this.parent.rowHeight - this.milestoneMarginTop) + baselineMilestoneHeight) +
9113
9293
  'px">' + '<div class="' + baselineMilestoneDiv + '">' + '<div class="' + baselineMilestoneDiv +
9114
9294
  ' ' + baselineMilestoneTop + '" ' +
@@ -9158,6 +9338,10 @@ var ChartRows = /** @__PURE__ @class */ (function (_super) {
9158
9338
  }
9159
9339
  leftLabelNode[0].appendChild([].slice.call(leftLabelTemplateNode)[0]);
9160
9340
  }
9341
+ if (this.parent.enableRtl) {
9342
+ leftLabelNode[0].style.paddingLeft = '25px';
9343
+ leftLabelNode[0].style.paddingRight = '0px';
9344
+ }
9161
9345
  return leftLabelNode;
9162
9346
  };
9163
9347
  ChartRows.prototype.getLableText = function (labelString, labelDiv) {
@@ -9204,6 +9388,10 @@ var ChartRows = /** @__PURE__ @class */ (function (_super) {
9204
9388
  }
9205
9389
  rightLabelNode[0].appendChild([].slice.call(rightLabelTemplateNode)[0]);
9206
9390
  }
9391
+ if (this.parent.enableRtl) {
9392
+ rightLabelNode[0].style.marginLeft = '0px';
9393
+ rightLabelNode[0].style.paddingRight = '25px';
9394
+ }
9207
9395
  return rightLabelNode;
9208
9396
  };
9209
9397
  ChartRows.prototype.getManualTaskbar = function () {
@@ -9223,17 +9411,18 @@ var ChartRows = /** @__PURE__ @class */ (function (_super) {
9223
9411
  taskbarHeight * 2 + 'px;border-left-width:' + taskbarHeight / 5 +
9224
9412
  'px; border-bottom:' + taskbarHeight / 5 + 'px solid transparent;"></div>');
9225
9413
  var template = '<div class="' + manualParentMainContainer + '"' +
9226
- 'style=left:' + (data.ganttProperties.left - data.ganttProperties.autoLeft) + 'px;' +
9414
+ 'style=' + (this.parent.enableRtl ? 'right:' : 'left:') + (data.ganttProperties.left - data.ganttProperties.autoLeft) + 'px;' +
9227
9415
  'width:' + data.ganttProperties.width + 'px;' +
9228
9416
  'height:' + taskbarHeight + 'px;>' + innerDiv + ((data.ganttProperties.startDate && data.ganttProperties.endDate &&
9229
9417
  data.ganttProperties.duration) || data.ganttProperties.duration ? '<div class="e-gantt-manualparenttaskbar-left" style=' +
9230
- '"height:' + taskbarHeight + 'px;border-left-width:' + taskbarHeight / 5 +
9418
+ (this.parent.enableRtl ? 'margin-right:0px;' : '') + '"height:' + taskbarHeight + 'px;border-left-width:' + taskbarHeight / 5 +
9231
9419
  'px; border-bottom:' + taskbarHeight / 5 + 'px solid transparent;"></div>' +
9232
- '<div class="e-gantt-manualparenttaskbar-right" style=' +
9233
- 'left:' + (data.ganttProperties.width - taskbarHeight / 5) + 'px;height:' +
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:' +
9234
9422
  (taskbarHeight) + 'px;border-right-width:' + taskbarHeight / 5 + 'px;border-bottom:' +
9235
9423
  taskbarHeight / 5 + 'px solid transparent;>' + '</div></div>' : '');
9236
- var milestoneTemplate = '<div class="' + manualParentMilestone + '" style="position:absolute;left:' +
9424
+ var milestoneTemplate = '<div class="' + manualParentMilestone + '" style="position:absolute;' +
9425
+ (this.parent.enableRtl ? 'right:' : 'left:') +
9237
9426
  (data.ganttProperties.left - data.ganttProperties.autoLeft - (this.milestoneHeight / 2)) +
9238
9427
  'px;width:' + (this.milesStoneRadius * 2) +
9239
9428
  'px;">' + '<div class="' + manualParentMilestoneTop + '" style="border-right-width:' +
@@ -9294,7 +9483,7 @@ var ChartRows = /** @__PURE__ @class */ (function (_super) {
9294
9483
  }
9295
9484
  if (isNaN(parseInt(labelString))) {
9296
9485
  labelDiv = '<span class="' + taskLabel + '" style="line-height:' +
9297
- (this.taskBarHeight - 1) + 'px; text-align: left;' +
9486
+ (this.taskBarHeight - 1) + 'px; text-align:' + (this.parent.enableRtl ? 'right;' : 'left;') +
9298
9487
  'display:' + 'inline-block;' +
9299
9488
  'width:' + (data.ganttProperties.width - 10) + 'px; height:' +
9300
9489
  this.taskBarHeight + 'px;">' + labelString + '</span>';
@@ -9332,6 +9521,13 @@ var ChartRows = /** @__PURE__ @class */ (function (_super) {
9332
9521
  parentTaskbarNode = data.ganttProperties.isMilestone ?
9333
9522
  this.createDivElement(data.ganttProperties.isAutoSchedule ? milestoneTemplate : '') : template;
9334
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
+ }
9335
9531
  return parentTaskbarNode;
9336
9532
  };
9337
9533
  /**
@@ -9427,35 +9623,36 @@ var ChartRows = /** @__PURE__ @class */ (function (_super) {
9427
9623
  ((data.ganttProperties.cssClass) ? data.ganttProperties.cssClass : '') + '" ' +
9428
9624
  ' tabindex="-1" role="term" style="' + ((data.ganttProperties.isMilestone && !manualParent) ?
9429
9625
  ('width:' + this.milestoneHeight + 'px;height:' +
9430
- 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 -
9431
9627
  (this.milestoneHeight / 2)) + 'px;') : ('width:' + data.ganttProperties.width +
9432
- '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 ?
9433
9629
  data.ganttProperties.left : data.ganttProperties.autoLeft) + 'px;height:' +
9434
9630
  this.taskBarHeight + 'px;cursor:' + (data.ganttProperties.isAutoSchedule ? 'move;' : 'auto;'))) + '"></div>';
9435
9631
  return this.createDivElement(template);
9436
9632
  };
9437
9633
  ChartRows.prototype.rightLabelContainer = function () {
9438
9634
  var template = '<div class="' + ((this.rightTaskLabelTemplateFunction) ? rightLabelTempContainer :
9439
- 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:'
9440
9636
  + (this.parent.rowHeight - 2) + 'px;"></div>';
9441
9637
  return this.createDivElement(template);
9442
9638
  };
9443
9639
  ChartRows.prototype.childTaskbarLeftResizer = function () {
9444
9640
  var lResizerLeft = -(this.parent.isAdaptive ? 12 : 2);
9445
9641
  var template = '<div class="' + taskBarLeftResizer + ' ' + icon + '"' +
9446
- 'style="left:' + lResizerLeft + 'px;height:' + (this.taskBarHeight) + 'px;"></div>';
9642
+ 'style="' + (this.parent.enableRtl ? 'right:' : 'left:') + lResizerLeft + 'px;height:' + (this.taskBarHeight) + 'px;"></div>';
9447
9643
  return this.createDivElement(template);
9448
9644
  };
9449
9645
  ChartRows.prototype.childTaskbarRightResizer = function () {
9450
9646
  var rResizerLeft = this.parent.isAdaptive ? -2 : -10;
9451
9647
  var template = '<div class="' + taskBarRightResizer + ' ' + icon + '"' +
9452
- 'style="left:' + (this.templateData.ganttProperties.width + rResizerLeft) + 'px;' +
9648
+ 'style="' + (this.parent.enableRtl ? 'right:' : 'left:') + (this.templateData.ganttProperties.width + rResizerLeft) + 'px;' +
9453
9649
  'height:' + (this.taskBarHeight) + 'px;"></div>';
9454
9650
  return this.createDivElement(template);
9455
9651
  };
9456
9652
  ChartRows.prototype.childTaskbarProgressResizer = function () {
9653
+ var width = this.parent.enableRtl ? (this.templateData.ganttProperties.progressWidth + 8) : (this.templateData.ganttProperties.progressWidth - 6);
9457
9654
  var template = '<div class="' + childProgressResizer + '"' +
9458
- 'style="left:' + (this.templateData.ganttProperties.progressWidth - 6) + 'px;margin-top:' +
9655
+ 'style="' + (this.parent.enableRtl ? 'right:' : 'left:') + width + 'px;margin-top:' +
9459
9656
  (this.taskBarHeight - 4) + 'px;"><div class="' + progressBarHandler + '"' +
9460
9657
  '><div class="' + progressHandlerElement + '"></div>' +
9461
9658
  '<div class="' + progressBarHandlerAfter + '"></div></div>';
@@ -9477,7 +9674,7 @@ var ChartRows = /** @__PURE__ @class */ (function (_super) {
9477
9674
  ((data.ganttProperties.isMilestone) ? ('margin-top:' + pointerTop + 'px;left:' + mileStoneLeft +
9478
9675
  'px;') : (marginTop + ';left:' + pointerLeft + 'px;')) + '">' +
9479
9676
  '<div class="' + connectorPointLeft + ' ' + this.parent.getUnscheduledTaskClass(data.ganttProperties) +
9480
- '" style="width: ' + this.connectorPointWidth + 'px;' +
9677
+ '" style="width: ' + this.connectorPointWidth + 'px;' + (this.parent.enableRtl ? 'margin-right:2px;' : '') +
9481
9678
  'height: ' + this.connectorPointWidth + 'px;">' + this.touchLeftConnectorpoint + '</div></div>';
9482
9679
  return this.createDivElement(template);
9483
9680
  };
@@ -9750,8 +9947,14 @@ var ChartRows = /** @__PURE__ @class */ (function (_super) {
9750
9947
  else {
9751
9948
  for (var i = 0; i < this.parent.currentViewData.length; i++) {
9752
9949
  var tempTemplateData = this.parent.currentViewData[i];
9753
- if (this.parent.viewType === 'ResourceView' && !tempTemplateData.expanded && this.parent.enableMultiTaskbar) {
9754
- 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
+ }
9755
9958
  }
9756
9959
  var tRow = this.getGanttChartRow(i, tempTemplateData);
9757
9960
  this.ganttChartTableBody.appendChild(tRow);
@@ -9795,7 +9998,7 @@ var ChartRows = /** @__PURE__ @class */ (function (_super) {
9795
9998
  taskbarContainerNode[0].setAttribute('aria-label', this.generateAriaLabel(this.templateData));
9796
9999
  taskbarContainerNode[0].setAttribute('rowUniqueId', this.templateData.ganttProperties.rowUniqueID);
9797
10000
  var connectorLineLeftNode = this.getLeftPointNode();
9798
- 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) {
9799
10002
  taskbarContainerNode[0].appendChild([].slice.call(connectorLineLeftNode)[0]);
9800
10003
  }
9801
10004
  if (this.templateData.hasChildRecords) {
@@ -9879,7 +10082,7 @@ var ChartRows = /** @__PURE__ @class */ (function (_super) {
9879
10082
  ? this.getMilestoneBaselineNode() : this.getTaskBaselineNode();
9880
10083
  }
9881
10084
  }
9882
- 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) {
9883
10086
  var connectorLineRightNode = this.getRightPointNode();
9884
10087
  taskbarContainerNode[0].appendChild([].slice.call(connectorLineRightNode)[0]);
9885
10088
  }
@@ -11171,19 +11374,8 @@ var ConnectorLine = /** @__PURE__ @class */ (function () {
11171
11374
  */
11172
11375
  ConnectorLine.prototype.createConnectorLineObject = function (parentGanttData, childGanttData, predecessor) {
11173
11376
  var connectorObj = {};
11174
- var updatedRecords;
11175
- if (this.parent.pdfExportModule && this.parent.pdfExportModule.isPdfExport) {
11176
- if (this.parent.pdfExportModule['helper']['exportProps'].exportType &&
11177
- this.parent.pdfExportModule['helper']['exportProps'].exportType === 'CurrentViewData') {
11178
- updatedRecords = this.expandedRecords;
11179
- }
11180
- else {
11181
- updatedRecords = this.parent.flatData;
11182
- }
11183
- }
11184
- else {
11185
- updatedRecords = this.expandedRecords;
11186
- }
11377
+ var updatedRecords = this.parent.pdfExportModule && this.parent.pdfExportModule.isPdfExport ?
11378
+ this.parent.flatData : this.expandedRecords;
11187
11379
  var parentIndex = updatedRecords.indexOf(parentGanttData);
11188
11380
  var childIndex = updatedRecords.indexOf(childGanttData);
11189
11381
  var parentGanttRecord = parentGanttData.ganttProperties;
@@ -11249,6 +11441,9 @@ var ConnectorLine = /** @__PURE__ @class */ (function () {
11249
11441
  }
11250
11442
  }
11251
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
+ }
11252
11447
  };
11253
11448
  /**
11254
11449
  * To get parent position.
@@ -11567,85 +11762,96 @@ var ConnectorLine = /** @__PURE__ @class */ (function () {
11567
11762
  connectorContainer = '<div id="ConnectorLine' + data.connectorLineId + '" style="background-color:black">';
11568
11763
  var div = '<div class="' + connectorLineContainer +
11569
11764
  '" tabindex="-1" style="';
11765
+ var direction = this.parent.enableRtl ? 'right:' : 'left:';
11570
11766
  var eLine = '<div class="' + connectorLine + '" style="' +
11571
11767
  (!isNullOrUndefined(this.lineColor) ? 'outline-color:' + this.lineColor + ';' : '');
11572
- var rightArrow = '<div class="' + connectorLineRightArrow + '" style="' +
11573
- (!isNullOrUndefined(this.lineColor) ? 'outline-color:' + this.lineColor + ';' : '');
11574
- var leftArrow = '<div class="' + connectorLineLeftArrow + '" style="' +
11575
- (!isNullOrUndefined(this.lineColor) ? 'outline-color:' + this.lineColor + ';' : '');
11576
- var duplicateStingOne = leftArrow + (isMilestone ? 'left:0px;' : '') +
11577
- this.getBorderStyles('right', 10) +
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) +
11578
11784
  'top:' + (-5 - this.lineStroke + (this.lineStroke - 1)) + 'px;border-bottom-width:' + (5 + this.lineStroke) + 'px;' +
11579
11785
  'border-top-width:' + (5 + this.lineStroke) + 'px;width:0;height:0;position:relative;"></div>';
11580
- var duplicateStingTwo = this.getBorderStyles('left', 10) +
11786
+ var duplicateStingTwo = this.getBorderStyles((this.parent.enableRtl ? 'right' : 'left'), 10) +
11581
11787
  'top:' + (-6) + 'px;border-bottom-width:' + (5 + this.lineStroke) + 'px;' +
11582
11788
  'border-top-width:' + (5 + this.lineStroke) + 'px;width:0;height:0;position:relative;"></div>';
11583
11789
  var duplicateStingThree = this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>' + eLine +
11584
11790
  'top:' + (-(13 + ((this.lineStroke - 1) * 2))) + 'px;width:0px;' + this.getBorderStyles('left', this.lineStroke) +
11585
11791
  this.getBorderStyles('top', (heightValue + borderTopWidth - (this.lineStroke - 1))) + 'position:relative;"></div>';
11586
- var duplicateStingFour = leftArrow + 'left:' +
11792
+ var duplicateStingFour = leftArrow + (this.parent.enableRtl ? 'right:' : 'left:') +
11587
11793
  (((data.childLeft + data.childWidth) - (data.parentLeft)) + 10) + 'px;' +
11588
- this.getBorderStyles('right', 10);
11794
+ this.getBorderStyles((this.parent.enableRtl ? 'left' : 'right'), 10);
11589
11795
  var duplicateStingFive = 'top:' + (-(6 + (5 + this.lineStroke) + (this.lineStroke / 2))) + 'px;' +
11590
11796
  this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
11591
11797
  if (this.getParentPosition(data) === 'FSType1') {
11592
- 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 :
11593
11799
  ((data.parentIndex * data.rowHeight) + addTop + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
11594
11800
  'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="FSType1">';
11595
11801
  div = div + eLine;
11596
- div = div + 'left:' + (isMilestoneParent ? -1 : 0) + 'px;width:' + (isMilestoneParent ?
11802
+ div = div + direction + (isMilestoneParent ? -1 : 0) + 'px;width:' + (isMilestoneParent ?
11597
11803
  ((((data.childLeft - (data.parentLeft + data.parentWidth + 10)) + this.lineStroke) - 10) + 1) :
11598
11804
  (((data.childLeft - (data.parentLeft + data.parentWidth + 10)) + this.lineStroke) - 10)) + 'px;' +
11599
11805
  this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
11600
11806
  div = div + eLine;
11601
- 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;' +
11602
11808
  'width:0px;' + this.getBorderStyles('right', this.lineStroke) +
11603
11809
  this.getBorderStyles('top', (heightValue + borderTopWidth - this.lineStroke)) + 'position:relative;"></div>';
11604
11810
  div = div + eLine;
11605
- 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;' +
11606
11812
  this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
11607
11813
  div = div + rightArrow;
11608
- div = div + 'left:' + (data.childLeft - (data.parentLeft + data.parentWidth + 10)) + 'px;' +
11609
- this.getBorderStyles('left', 10) + 'top:' + (-6 - this.lineStroke) + 'px;border-bottom-width:' + (5 + this.lineStroke) +
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) +
11610
11816
  'px;border-top-width:' + (5 + this.lineStroke) + 'px;width:0;height:0;position:relative;"></div></div>';
11611
11817
  }
11612
11818
  if (this.getParentPosition(data) === 'FSType2') {
11613
- 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 +
11614
11820
  this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
11615
11821
  'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="FSType2">';
11616
11822
  div = div + eLine;
11617
- div = div + 'left:' + (isMilestoneParent ? data.parentWidth - 1 : data.parentWidth) + 'px;width:' +
11823
+ div = div + direction + (isMilestoneParent ? data.parentWidth - 1 : data.parentWidth) + 'px;width:' +
11618
11824
  (isMilestoneParent ? 11 : 10) + 'px;' +
11619
11825
  this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
11620
11826
  div = div + eLine;
11621
- div = div + 'left:' + (data.parentWidth + 10 - this.lineStroke) + 'px;' +
11827
+ div = div + direction + (data.parentWidth + 10 - this.lineStroke) + 'px;' +
11622
11828
  this.getBorderStyles('left', this.lineStroke) + 'width:0px;' +
11623
11829
  this.getBorderStyles('top', (heightValue + borderTopWidth - this.getconnectorLineGap(data) - this.lineStroke)) + 'position:relative;"></div>';
11624
11830
  div = div + eLine;
11625
- 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;' +
11626
11832
  'width:' + (((data.parentLeft + data.parentWidth) - data.childLeft) + 30) + 'px;' +
11627
11833
  this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
11628
11834
  div = div + eLine;
11629
- div = div + 'left:' + (data.parentWidth - (((data.parentLeft +
11835
+ div = div + direction + (data.parentWidth - (((data.parentLeft +
11630
11836
  data.parentWidth) - data.childLeft) + 20)) + 'px;width:0px;' +
11631
11837
  this.getBorderStyles('top', (this.getconnectorLineGap(data) - this.lineStroke)) +
11632
11838
  this.getBorderStyles('left', this.lineStroke) + 'position:relative;"></div>';
11633
11839
  div = div + eLine;
11634
- div = div + 'left:' + (data.parentWidth - (((data.parentLeft +
11840
+ div = div + direction + (data.parentWidth - (((data.parentLeft +
11635
11841
  data.parentWidth) - data.childLeft) + 20)) + 'px;width:10px;' +
11636
11842
  this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
11637
11843
  div = div + rightArrow;
11638
- div = div + 'left:' + (data.parentWidth - (((data.parentLeft + data.parentWidth) - data.childLeft) + 10)) + 'px;' +
11639
- this.getBorderStyles('left', 10) + 'border-bottom-width:' + (5 + this.lineStroke) + 'px;' +
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;' +
11640
11846
  'border-top-width:' + (5 + this.lineStroke) + 'px;top:' + (-6 - this.lineStroke) +
11641
11847
  'px;width:0;height:0;position:relative;"></div></div>';
11642
11848
  }
11643
11849
  if (this.getParentPosition(data) === 'FSType3') {
11644
- 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 :
11645
11851
  ((data.childIndex * data.rowHeight) + addTop + this.getTaskbarMidpoint(isMilestoneParent) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
11646
11852
  'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="FSType3">';
11647
11853
  div = div + rightArrow;
11648
- div = div + 'left:10px;' + this.getBorderStyles('left', 10) +
11854
+ div = div + direction + '10px;' + this.getBorderStyles((this.parent.enableRtl ? 'right' : 'left'), 10) +
11649
11855
  'border-bottom-width:' + (5 + this.lineStroke) + 'px;border-top-width:' + (5 + this.lineStroke) + 'px;' +
11650
11856
  'top:' + (-6) + 'px;width:0;height:0;position:relative;"></div>';
11651
11857
  div = div + eLine;
@@ -11659,49 +11865,49 @@ var ConnectorLine = /** @__PURE__ @class */ (function () {
11659
11865
  this.getBorderStyles('top', this.lineStroke) + 'position:relative;top:' +
11660
11866
  (-(13 + ((this.lineStroke - 1) * 2))) + 'px;"></div>';
11661
11867
  div = div + eLine;
11662
- 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)) +
11663
11869
  'px;width:0px;' + 'height:' + (this.getconnectorLineGap(data) - this.lineStroke) + 'px;' +
11664
11870
  this.getBorderStyles('left', this.lineStroke) + 'position:relative;' +
11665
11871
  'top:' + (-(13 + ((this.lineStroke - 1) * 2))) + 'px;"></div>';
11666
11872
  div = div + eLine;
11667
- div = div + (isMilestoneParent ? 'left:' + (((data.parentLeft +
11668
- data.parentWidth) - data.childLeft) + (18 - this.lineStroke)) + 'px;width:' + (12 + this.lineStroke) + 'px;' : 'left:' +
11873
+ div = div + (isMilestoneParent ? direction + (((data.parentLeft +
11874
+ data.parentWidth) - data.childLeft) + (18 - this.lineStroke)) + 'px;width:' + (12 + this.lineStroke) + 'px;' : direction +
11669
11875
  (((data.parentLeft + data.parentWidth) - data.childLeft) + 20) + 'px;width:10px;') +
11670
11876
  this.getBorderStyles('top', this.lineStroke) + 'position:relative;top:' +
11671
11877
  (-(13 + ((this.lineStroke - 1) * 2))) + 'px;"></div></div>';
11672
11878
  }
11673
11879
  if (this.getParentPosition(data) === 'FSType4') {
11674
- 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 :
11675
11881
  ((data.childIndex * data.rowHeight) + addTop + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
11676
11882
  'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="FSType4">';
11677
11883
  div = div + rightArrow;
11678
- div = div + 'left:' + (data.childLeft - (data.parentLeft + data.parentWidth + 10)) + 'px;' +
11679
- 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;' +
11680
11886
  'border-bottom-width:' + (5 + this.lineStroke) + 'px;border-top-width:' +
11681
11887
  (5 + this.lineStroke) + 'px;width:0;height:0;position:relative;"></div>';
11682
11888
  div = div + eLine;
11683
- div = div + 'left:' + (data.childLeft - (data.parentLeft + data.parentWidth) - 20) +
11889
+ div = div + direction + (data.childLeft - (data.parentLeft + data.parentWidth) - 20) +
11684
11890
  'px;top:' + (-(6 + (5 + this.lineStroke) + Math.round(this.lineStroke / 2))) + 'px;width:10px;' +
11685
11891
  this.getBorderStyles('top', this.lineStroke) +
11686
11892
  'position:relative;"></div>';
11687
11893
  div = div + eLine;
11688
- div = div + 'top:' + (-(13 + ((this.lineStroke - 1) * 2))) + 'px;left:' +
11894
+ div = div + 'top:' + (-(13 + ((this.lineStroke - 1) * 2))) + 'px;' + direction +
11689
11895
  (data.childLeft - (data.parentLeft + data.parentWidth) - 20) + 'px;width:0px;' +
11690
11896
  this.getBorderStyles('left', this.lineStroke) +
11691
11897
  this.getBorderStyles('top', (heightValue + borderTopWidth - this.lineStroke + 1)) + 'position:relative;"></div>';
11692
11898
  div = div + eLine;
11693
- div = div + (isMilestoneParent ? 'left:-1px;' : '') + 'top:' +
11899
+ div = div + (isMilestoneParent ? direction + '-1px;' : '') + 'top:' +
11694
11900
  (-(13 + ((this.lineStroke - 1) * 2))) + 'px;width:' +
11695
11901
  (isMilestoneParent ? ((data.childLeft - (data.parentLeft + data.parentWidth + 20) + 1) + this.lineStroke) :
11696
11902
  ((data.childLeft - (data.parentLeft + data.parentWidth + 20)) + this.lineStroke)) + 'px;' +
11697
11903
  this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div></div>';
11698
11904
  }
11699
11905
  if (this.getParentPosition(data) === 'SSType4') {
11700
- 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 :
11701
11907
  ((data.childIndex * data.rowHeight) + addTop + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
11702
11908
  'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="SSType4">';
11703
11909
  div = div + rightArrow;
11704
- div = div + 'left:' + (data.childLeft - data.parentLeft) + 'px;' + duplicateStingTwo;
11910
+ div = div + direction + (data.childLeft - data.parentLeft) + 'px;' + duplicateStingTwo;
11705
11911
  div = div + eLine;
11706
11912
  div = div + 'top:' + (-(6 + (5 + this.lineStroke) + (this.lineStroke / 2))) + 'px;width:' +
11707
11913
  (data.childLeft - data.parentLeft) + 'px;' + duplicateStingThree;
@@ -11710,11 +11916,11 @@ var ConnectorLine = /** @__PURE__ @class */ (function () {
11710
11916
  this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div></div>';
11711
11917
  }
11712
11918
  if (this.getParentPosition(data) === 'SSType3') {
11713
- 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 :
11714
11920
  ((data.childIndex * data.rowHeight) + addTop + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
11715
11921
  'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="SSType3">';
11716
11922
  div = div + rightArrow;
11717
- div = div + 'left:10px;' + duplicateStingTwo;
11923
+ div = div + direction + '10px;' + duplicateStingTwo;
11718
11924
  div = div + eLine;
11719
11925
  div = div + 'top:' + (-(6 + (5 + this.lineStroke) + (this.lineStroke / 2))) + 'px;width:10px;' + duplicateStingThree;
11720
11926
  div = div + eLine;
@@ -11723,7 +11929,7 @@ var ConnectorLine = /** @__PURE__ @class */ (function () {
11723
11929
  this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div></div>';
11724
11930
  }
11725
11931
  if (this.getParentPosition(data) === 'SSType2') {
11726
- div = div + 'left:' + setInnerElementLeftSSType2 + 'px;top:' + (isVirtual ? connectorLine$$1.top :
11932
+ div = div + direction + setInnerElementLeftSSType2 + 'px;top:' + (isVirtual ? connectorLine$$1.top :
11727
11933
  ((data.parentIndex * data.rowHeight) + addTop + this.getTaskbarMidpoint(isMilestoneParent) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
11728
11934
  'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="SSType2">';
11729
11935
  div = div + eLine;
@@ -11736,14 +11942,14 @@ var ConnectorLine = /** @__PURE__ @class */ (function () {
11736
11942
  div = div + 'width:' + setInnerElementWidthSSType2 + 'px;' +
11737
11943
  this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
11738
11944
  div = div + rightArrow;
11739
- div = div + 'left:' + setInnerElementWidthSSType2 + 'px;' +
11740
- 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;' +
11741
11947
  'border-bottom-width:' + (5 + this.lineStroke) + 'px;border-top-width:' +
11742
11948
  (5 + this.lineStroke) + 'px;width:0;' +
11743
11949
  'height:0;position:relative;"></div></div>';
11744
11950
  }
11745
11951
  if (this.getParentPosition(data) === 'SSType1') {
11746
- 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 :
11747
11953
  ((data.parentIndex * data.rowHeight) + addTop +
11748
11954
  this.getTaskbarMidpoint(isMilestoneParent) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
11749
11955
  'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="SSType1">';
@@ -11756,114 +11962,114 @@ var ConnectorLine = /** @__PURE__ @class */ (function () {
11756
11962
  div = div + eLine;
11757
11963
  div = div + 'width:10px;' + this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
11758
11964
  div = div + rightArrow;
11759
- div = div + 'left:10px;' + this.getBorderStyles('left', 10) +
11965
+ div = div + direction + '10px;' + this.getBorderStyles((this.parent.enableRtl ? 'right' : 'left'), 10) +
11760
11966
  'top:' + (-6 - this.lineStroke) + 'px;border-bottom-width:' + (5 + this.lineStroke) + 'px;' +
11761
11967
  'border-top-width:' + (5 + this.lineStroke) + 'px;width:0;height:0;position:relative;"></div></div>';
11762
11968
  }
11763
11969
  if (this.getParentPosition(data) === 'FFType1') {
11764
- 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 :
11765
11971
  ((data.parentIndex * data.rowHeight) + addTop + this.getTaskbarMidpoint(isMilestoneParent) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
11766
11972
  'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="FFType1">';
11767
11973
  div = div + eLine;
11768
- div = div + 'left:' + (isMilestoneParent ? (((data.parentLeft + data.parentWidth) -
11974
+ div = div + direction + (isMilestoneParent ? (((data.parentLeft + data.parentWidth) -
11769
11975
  (data.childLeft + data.childWidth)) - 1) : ((data.parentLeft + data.parentWidth) -
11770
11976
  (data.childLeft + data.childWidth))) + 'px;' +
11771
11977
  'width:' + (isMilestoneParent ? (21 + this.lineStroke) : (20 + this.lineStroke)) + 'px;' +
11772
11978
  this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
11773
11979
  div = div + eLine;
11774
- div = div + 'left:' + (((data.parentLeft + data.parentWidth) -
11980
+ div = div + direction + (((data.parentLeft + data.parentWidth) -
11775
11981
  (data.childLeft + data.childWidth)) + 20) + 'px;width:0px;' + this.getBorderStyles('left', this.lineStroke) +
11776
11982
  this.getBorderStyles('top', (heightValue + borderTopWidth - this.lineStroke)) + 'position:relative;"></div>';
11777
11983
  div = div + eLine;
11778
- div = div + 'left:' + (isMilestone ? 4 : 10) + 'px;width:' + (isMilestone ?
11984
+ div = div + direction + (isMilestone ? 4 : 10) + 'px;width:' + (isMilestone ?
11779
11985
  (((data.parentLeft + data.parentWidth) - (data.childLeft + data.childWidth)) + (16 + this.lineStroke)) :
11780
11986
  (((data.parentLeft + data.parentWidth) - (data.childLeft + data.childWidth)) + (10 + this.lineStroke))) + 'px;' +
11781
11987
  this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
11782
11988
  div = div + leftArrow;
11783
- div = div + (isMilestone ? 'left:0px;' : '') + this.getBorderStyles('right', 10) +
11989
+ div = div + (isMilestone ? direction + '0px;' : '') + this.getBorderStyles((!this.parent.enableRtl ? 'right' : 'left'), 10) +
11784
11990
  'top:' + (-6 - this.lineStroke) + 'px;border-bottom-width:' + (5 + this.lineStroke) + 'px;' +
11785
11991
  'border-top-width:' + (5 + this.lineStroke) + 'px;width:0;height:0;position:relative;"></div></div>';
11786
11992
  }
11787
11993
  if (this.getParentPosition(data) === 'FFType2') {
11788
- 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 :
11789
11995
  ((data.parentIndex * data.rowHeight) + addTop + this.getTaskbarMidpoint(isMilestoneParent) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
11790
11996
  'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="FFType2">';
11791
11997
  div = div + eLine;
11792
- div = div + (isMilestoneParent ? 'left:-1px;' : '') + 'width:' +
11998
+ div = div + (isMilestoneParent ? direction + '-1px;' : '') + 'width:' +
11793
11999
  (isMilestoneParent ? (((data.childLeft + data.childWidth) - (data.parentLeft + data.parentWidth)) +
11794
12000
  (21 + this.lineStroke)) : (((data.childLeft + data.childWidth) -
11795
12001
  (data.parentLeft + data.parentWidth)) + (20 + this.lineStroke))) + 'px;' +
11796
12002
  this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
11797
12003
  div = div + eLine;
11798
- 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) +
11799
12005
  'px;width:0px;' + this.getBorderStyles('left', this.lineStroke) +
11800
12006
  this.getBorderStyles('top', (heightValue + borderTopWidth - this.lineStroke)) +
11801
12007
  'position:relative;"></div>';
11802
12008
  div = div + eLine;
11803
- 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) :
11804
12010
  (((data.childLeft + data.childWidth) - (data.parentLeft + data.parentWidth)) + 10)) + 'px;' +
11805
12011
  'width:' + (isMilestone ? (16 + this.lineStroke) : (10 + this.lineStroke)) + 'px;' +
11806
12012
  this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
11807
12013
  div = div + leftArrow;
11808
- div = div + 'left:' + ((data.childLeft + data.childWidth) - (data.parentLeft + data.parentWidth)) + 'px;' +
11809
- this.getBorderStyles('right', 10) + 'top:' + (-6 - this.lineStroke) + 'px;' +
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;' +
11810
12016
  'border-bottom-width:' + (5 + this.lineStroke) + 'px;border-top-width:' + (5 + this.lineStroke) +
11811
12017
  'px;width:0;height:0;position:relative;"></div></div>';
11812
12018
  }
11813
12019
  if (this.getParentPosition(data) === 'FFType3') {
11814
- 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 :
11815
12021
  ((data.childIndex * data.rowHeight) + addTop + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
11816
12022
  'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="FFType3">';
11817
12023
  div = div + duplicateStingOne;
11818
12024
  div = div + eLine;
11819
- div = div + (isMilestone ? ('left:4px;width:' +
12025
+ div = div + (isMilestone ? (direction + '4px;width:' +
11820
12026
  (((data.parentLeft + data.parentWidth) - (data.childLeft + data.childWidth)) + 16)) :
11821
- ('left:10px;width:' + (((data.parentLeft + data.parentWidth) -
12027
+ (direction + '10px;width:' + (((data.parentLeft + data.parentWidth) -
11822
12028
  (data.childLeft + data.childWidth)) + 10))) + 'px;top:' + (-(6 + (5 + this.lineStroke) +
11823
12029
  (this.lineStroke / 2))) + 'px;' + this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
11824
12030
  div = div + eLine;
11825
- 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) +
11826
12032
  'px;top:' + (-(13 + ((this.lineStroke - 1) * 2))) + 'px;' +
11827
12033
  'width:0px;' + this.getBorderStyles('left', this.lineStroke) +
11828
12034
  this.getBorderStyles('top', (heightValue + borderTopWidth - this.lineStroke + 1)) + 'position:relative;"></div>';
11829
12035
  div = div + eLine;
11830
- div = div + (isMilestoneParent ? ('left:' + (((data.parentLeft + data.parentWidth) -
11831
- (data.childLeft + data.childWidth)) - 1) + 'px;width:21') : ('left:' + ((data.parentLeft + data.parentWidth) -
12036
+ div = div + (isMilestoneParent ? (direction + (((data.parentLeft + data.parentWidth) -
12037
+ (data.childLeft + data.childWidth)) - 1) + 'px;width:21') : (direction + ((data.parentLeft + data.parentWidth) -
11832
12038
  (data.childLeft + data.childWidth)) + 'px;width:20')) +
11833
12039
  'px;top:' + (-(13 + ((this.lineStroke - 1) * 2))) + 'px;' +
11834
12040
  this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div></div>';
11835
12041
  }
11836
12042
  if (this.getParentPosition(data) === 'FFType4') {
11837
- 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 :
11838
12044
  ((data.childIndex * data.rowHeight) + addTop + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
11839
12045
  'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="FFType4">';
11840
12046
  div = div + leftArrow;
11841
- div = div + ('left:' + ((data.childLeft + data.childWidth) -
12047
+ div = div + (direction + ((data.childLeft + data.childWidth) -
11842
12048
  (data.parentLeft + data.parentWidth))) + 'px;' +
11843
- 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;' +
11844
12050
  'border-bottom-width:' + (5 + this.lineStroke) +
11845
12051
  'px;border-top-width:' + (5 + this.lineStroke) + 'px;width:0;height:0;' +
11846
12052
  'position:relative;"></div>';
11847
12053
  div = div + eLine;
11848
- div = div + (isMilestone ? ('left:' + (((data.childLeft + data.childWidth) -
12054
+ div = div + (isMilestone ? (direction + (((data.childLeft + data.childWidth) -
11849
12055
  (data.parentLeft + data.parentWidth)) + 4) +
11850
- 'px;width:' + (16 + this.lineStroke)) : ('left:' + (((data.childLeft + data.childWidth) -
12056
+ 'px;width:' + (16 + this.lineStroke)) : (direction + (((data.childLeft + data.childWidth) -
11851
12057
  (data.parentLeft + data.parentWidth)) + 10) + 'px;width:' + (10 + this.lineStroke))) +
11852
12058
  'px;' + duplicateStingFive;
11853
12059
  div = div + eLine;
11854
- div = div + 'left:' + (((data.childLeft + data.childWidth) -
12060
+ div = div + direction + (((data.childLeft + data.childWidth) -
11855
12061
  (data.parentLeft + data.parentWidth)) + 20) + 'px;top:' + (-(13 + ((this.lineStroke - 1) * 2))) +
11856
12062
  'px;width:0px;' + this.getBorderStyles('left', this.lineStroke) +
11857
12063
  this.getBorderStyles('top', (heightValue + borderTopWidth - this.lineStroke + 1)) + 'position:relative;"></div>';
11858
12064
  div = div + eLine;
11859
- div = div + (isMilestoneParent ? ('left:-1px;width:' + (((data.childLeft + data.childWidth) -
12065
+ div = div + (isMilestoneParent ? (direction + '-1px;width:' + (((data.childLeft + data.childWidth) -
11860
12066
  (data.parentLeft + data.parentWidth)) + (21 + this.lineStroke))) : ('width:' + (((data.childLeft + data.childWidth) -
11861
12067
  (data.parentLeft + data.parentWidth)) + (20 + this.lineStroke)))) + 'px;top:' +
11862
12068
  (-(13 + ((this.lineStroke - 1) * 2))) + 'px;' +
11863
12069
  this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div></div>';
11864
12070
  }
11865
12071
  if (this.getParentPosition(data) === 'SFType4') {
11866
- 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 :
11867
12073
  ((data.childIndex * data.rowHeight) + addTop + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;width:1px;' +
11868
12074
  'height:' + heightValue + 'px;position:absolute" data-connectortype="SFType4">';
11869
12075
  div = div + duplicateStingFour + 'top:' + (-5 - this.lineStroke + (this.lineStroke - 1)) + 'px;' +
@@ -11871,11 +12077,11 @@ var ConnectorLine = /** @__PURE__ @class */ (function () {
11871
12077
  'px;border-top-width:' + (5 + this.lineStroke) + 'px;width:0;height:0;' +
11872
12078
  'position:relative;"></div>';
11873
12079
  div = div + eLine;
11874
- 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)) +
11875
12081
  'px;width:16') : ((((data.childLeft + data.childWidth) - (data.parentLeft)) + 20) + 'px;width:' +
11876
12082
  (10 + this.lineStroke))) + 'px;' + duplicateStingFive;
11877
12083
  div = div + eLine;
11878
- 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:' +
11879
12085
  (-(13 + ((this.lineStroke - 1) * 2))) + 'px;width:0px;' + this.getBorderStyles('left', this.lineStroke) +
11880
12086
  this.getBorderStyles('top', (heightValue + borderTopWidth - this.getconnectorLineGap(data) - (this.lineStroke - 1))) + 'position:relative;"></div>';
11881
12087
  div = div + eLine;
@@ -11891,25 +12097,25 @@ var ConnectorLine = /** @__PURE__ @class */ (function () {
11891
12097
  this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div></div>';
11892
12098
  }
11893
12099
  if (this.getParentPosition(data) === 'SFType3') {
11894
- 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 :
11895
12101
  ((data.childIndex * data.rowHeight) + addTop + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
11896
12102
  'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="SFType3">';
11897
12103
  div = div + duplicateStingOne;
11898
12104
  div = div + eLine;
11899
- 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:' +
11900
12106
  (10 + this.lineStroke)) + 'px;top:' + (-(13 + ((this.lineStroke - 1) * 2) - 1)) + 'px;' +
11901
12107
  this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
11902
12108
  div = div + eLine;
11903
- 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;' +
11904
12110
  this.getBorderStyles('left', this.lineStroke) +
11905
12111
  this.getBorderStyles('top', (heightValue + borderTopWidth - (this.lineStroke - 1))) + 'position:relative;"></div>';
11906
12112
  div = div + eLine;
11907
- 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:' +
11908
12114
  ((data.parentLeft - (data.childLeft + data.childWidth + 20)) + this.lineStroke) + 'px;' +
11909
12115
  this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div></div>';
11910
12116
  }
11911
12117
  if (this.getParentPosition(data) === 'SFType1') {
11912
- 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 :
11913
12119
  ((data.parentIndex * data.rowHeight) + addTop + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
11914
12120
  'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="SFType1">';
11915
12121
  div = div + eLine;
@@ -11921,12 +12127,12 @@ var ConnectorLine = /** @__PURE__ @class */ (function () {
11921
12127
  div = div + 'width:' + (((data.childLeft + data.childWidth) - (data.parentLeft)) + (30 + this.lineStroke)) + 'px;' +
11922
12128
  this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
11923
12129
  div = div + eLine;
11924
- div = div + 'left:' + (((data.childLeft + data.childWidth) - (data.parentLeft)) + 30) +
12130
+ div = div + direction + (((data.childLeft + data.childWidth) - (data.parentLeft)) + 30) +
11925
12131
  'px;width:0px;' + this.getBorderStyles('left', this.lineStroke) +
11926
12132
  this.getBorderStyles('top', (this.getconnectorLineGap(data) - this.lineStroke)) + 'position:relative;"></div>';
11927
12133
  div = div + eLine;
11928
- div = div + (isMilestone ? ('left:' + (((data.childLeft + data.childWidth) -
11929
- (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 +
11930
12136
  (((data.childLeft + data.childWidth) - (data.parentLeft)) + 20) + 'px;width:' + (10 + this.lineStroke))) + 'px;' +
11931
12137
  this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
11932
12138
  div = div + duplicateStingFour + 'top:' + (-6 - this.lineStroke) + 'px;' +
@@ -11934,23 +12140,23 @@ var ConnectorLine = /** @__PURE__ @class */ (function () {
11934
12140
  (5 + this.lineStroke) + 'px;position:relative;"></div></div>';
11935
12141
  }
11936
12142
  if (this.getParentPosition(data) === 'SFType2') {
11937
- 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 :
11938
12144
  ((data.parentIndex * data.rowHeight) + addTop + this.getTaskbarMidpoint(isMilestoneParent) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
11939
12145
  'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="SFType2">';
11940
12146
  div = div + eLine;
11941
- div = div + 'left:' + (((data.parentLeft) - (data.childLeft + data.childWidth)) - 10) +
12147
+ div = div + direction + (((data.parentLeft) - (data.childLeft + data.childWidth)) - 10) +
11942
12148
  'px;width:11px;' + this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
11943
12149
  div = div + eLine;
11944
- div = div + 'left:' + (((data.parentLeft) - (data.childLeft + data.childWidth)) - 10) +
12150
+ div = div + direction + (((data.parentLeft) - (data.childLeft + data.childWidth)) - 10) +
11945
12151
  'px;width:0px;' + this.getBorderStyles('left', this.lineStroke) +
11946
12152
  this.getBorderStyles('top', (heightValue + borderTopWidth - this.lineStroke)) + 'position:relative;"></div>';
11947
12153
  div = div + eLine;
11948
- div = div + (isMilestone ? ('left:4px;width:' + (((data.parentLeft) - (data.childLeft + data.childWidth))
11949
- - (14 - this.lineStroke))) : ('left:10px;width:' + (((data.parentLeft) -
12154
+ div = div + (isMilestone ? (direction + '4px;width:' + (((data.parentLeft) - (data.childLeft + data.childWidth))
12155
+ - (14 - this.lineStroke))) : (direction + '10px;width:' + (((data.parentLeft) -
11950
12156
  (data.childLeft + data.childWidth)) - (20 - this.lineStroke)))) +
11951
12157
  'px;' + this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
11952
12158
  div = div + leftArrow;
11953
- div = div + 'left:0px;' + this.getBorderStyles('right', 10) +
12159
+ div = div + direction + '0px;' + this.getBorderStyles((this.parent.enableRtl ? 'right' : 'left'), 10) +
11954
12160
  'top:' + (-6 - this.lineStroke) + 'px;border-bottom-width:' + (5 + this.lineStroke) +
11955
12161
  'px;border-top-width:' + (5 + this.lineStroke) + 'px;width:0;height:0;position:relative;"></div></div>';
11956
12162
  }
@@ -12139,12 +12345,19 @@ var Splitter$1 = /** @__PURE__ @class */ (function () {
12139
12345
  this.parent.splitterElement = createElement('div', { className: splitter });
12140
12346
  this.parent.treeGridPane = createElement('div', { className: treeGridPane });
12141
12347
  this.parent.chartPane = createElement('div', { className: ganttChartPane });
12142
- this.parent.splitterElement.appendChild(this.parent.treeGridPane);
12143
- 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
+ }
12144
12356
  this.splitterObject = new Splitter({
12145
12357
  height: null,
12146
12358
  width: this.parent.ganttWidth.toString(),
12147
12359
  enablePersistence: this.parent.enablePersistence,
12360
+ enableRtl: this.parent.enableRtl,
12148
12361
  separatorSize: this.parent.splitterSettings.separatorSize,
12149
12362
  paneSettings: [
12150
12363
  {
@@ -12158,6 +12371,9 @@ var Splitter$1 = /** @__PURE__ @class */ (function () {
12158
12371
  ],
12159
12372
  orientation: 'Horizontal',
12160
12373
  resizeStart: function (args) {
12374
+ if (_this.parent.contextMenuModule && _this.parent.contextMenuModule.isOpen) {
12375
+ _this.parent.contextMenuModule.contextMenu.close();
12376
+ }
12161
12377
  var leftPane = args.pane[0];
12162
12378
  var rightPane = args.pane[1];
12163
12379
  _this.splitterPreviousPositionGrid = leftPane.scrollWidth + 1 + 'px';
@@ -12320,6 +12536,7 @@ var Tooltip$1 = /** @__PURE__ @class */ (function () {
12320
12536
  '.e-taskbar-left-resizer, .e-taskbar-right-resizer, .e-baseline-gantt-milestone, .e-gantt-manualparenttaskbar';
12321
12537
  this.toolTipObj.position = 'BottomCenter';
12322
12538
  this.toolTipObj.openDelay = 700;
12539
+ this.toolTipObj.enableRtl = this.parent.enableRtl;
12323
12540
  this.toolTipObj.enableHtmlSanitizer = false;
12324
12541
  this.toolTipObj.cssClass = ganttTooltip;
12325
12542
  this.toolTipObj.animation = { open: { effect: 'None', delay: 0 }, close: { effect: 'None', delay: 0 } };
@@ -12960,6 +13177,7 @@ var FocusModule = /** @__PURE__ @class */ (function () {
12960
13177
  var top_1 = containerPosition.top + (containerPosition.height / 2);
12961
13178
  var left = containerPosition.left + (containerPosition.width / 2);
12962
13179
  this.setActiveElement(e.target);
13180
+ // eslint-disable-next-line security/detect-non-literal-fs-filename
12963
13181
  contextMenu.open(top_1, left);
12964
13182
  e.preventDefault();
12965
13183
  break;
@@ -13064,6 +13282,8 @@ var Gantt = /** @__PURE__ @class */ (function (_super) {
13064
13282
  __extends(Gantt, _super);
13065
13283
  function Gantt(options, element) {
13066
13284
  var _this = _super.call(this, options, element) || this;
13285
+ _this.showIndicator = true;
13286
+ _this.singleTier = 0;
13067
13287
  /** @hidden */
13068
13288
  _this.isCancelled = false;
13069
13289
  /** @hidden */
@@ -13259,7 +13479,7 @@ var Gantt = /** @__PURE__ @class */ (function (_super) {
13259
13479
  /**
13260
13480
  * To check whether the date is in DST.
13261
13481
  *
13262
- * @param {Date} date .
13482
+ * @param {Date} date - Defines the date to check whether it is DST.
13263
13483
  * @returns {boolean} .
13264
13484
  * @private
13265
13485
  */
@@ -13350,9 +13570,348 @@ var Gantt = /** @__PURE__ @class */ (function (_super) {
13350
13570
  }
13351
13571
  this.splitterModule.renderSplitter();
13352
13572
  this.notify('renderPanels', null);
13353
- this.showSpinner();
13573
+ if (!isNullOrUndefined(this.loadingIndicator) && this.loadingIndicator.indicatorType === "Shimmer") {
13574
+ this.showMaskRow();
13575
+ }
13576
+ else {
13577
+ this.showSpinner();
13578
+ }
13354
13579
  this.dataOperation.checkDataBinding();
13355
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
+ };
13356
13915
  /**
13357
13916
  * Method used to show spinner.
13358
13917
  *
@@ -13378,7 +13937,7 @@ var Gantt = /** @__PURE__ @class */ (function (_super) {
13378
13937
  this.timelineModule.calculateZoomingLevelsPerDayWidth(); // To calculate the perDaywidth
13379
13938
  };
13380
13939
  /**
13381
- * @param {boolean} isChange .
13940
+ * @param {boolean} isChange -Defines whether task data is changed.
13382
13941
  * @returns {void} .
13383
13942
  * @private
13384
13943
  */
@@ -13478,7 +14037,7 @@ var Gantt = /** @__PURE__ @class */ (function (_super) {
13478
14037
  /**
13479
14038
  * Method for updating row height value in connector line collections
13480
14039
  *
13481
- * @param {IConnectorLineObject[]} collection .
14040
+ * @param {IConnectorLineObject[]} collection -Defines the CollectorLine collection.
13482
14041
  * @returns {void} .
13483
14042
  * @private
13484
14043
  */
@@ -13514,7 +14073,7 @@ var Gantt = /** @__PURE__ @class */ (function (_super) {
13514
14073
  this.currentViewData = this.treeGrid.getCurrentViewRecords().slice();
13515
14074
  };
13516
14075
  /**
13517
- * @param {IGanttData} records .
14076
+ * @param {IGanttData} records -Defines the delete record collections.
13518
14077
  * @returns {IGanttData} .
13519
14078
  * @private
13520
14079
  */
@@ -13526,7 +14085,7 @@ var Gantt = /** @__PURE__ @class */ (function (_super) {
13526
14085
  return updatedRecord;
13527
14086
  };
13528
14087
  /**
13529
- * @param {object} args .
14088
+ * @param {object} args -Update the gantt element content height.
13530
14089
  * @returns {void} .
13531
14090
  * @private
13532
14091
  */
@@ -13879,7 +14438,12 @@ var Gantt = /** @__PURE__ @class */ (function (_super) {
13879
14438
  this.treeGrid.height = '100%';
13880
14439
  this.notify('tree-grid-created', {});
13881
14440
  this.createGanttPopUpElement();
13882
- this.hideSpinner();
14441
+ if (!isNullOrUndefined(this.loadingIndicator) && this.loadingIndicator.indicatorType === "Shimmer") {
14442
+ this.hideMaskRow();
14443
+ }
14444
+ else {
14445
+ this.hideSpinner();
14446
+ }
13883
14447
  setValue('isGanttCreated', true, args);
13884
14448
  this.renderComplete();
13885
14449
  }
@@ -13891,6 +14455,11 @@ var Gantt = /** @__PURE__ @class */ (function (_super) {
13891
14455
  this.criticalPathModule.showCriticalPath(this.enableCriticalPath);
13892
14456
  }
13893
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
+ }
13894
14463
  if (this.enableCriticalPath && this.criticalPathModule) {
13895
14464
  var criticalModule = this.criticalPathModule;
13896
14465
  this.criticalPathModule.criticalConnectorLine(criticalModule.criticalPathCollection, criticalModule.detailPredecessorCollection, true, criticalModule.predecessorCollectionTaskIds);
@@ -13922,8 +14491,8 @@ var Gantt = /** @__PURE__ @class */ (function (_super) {
13922
14491
  /**
13923
14492
  * Called internally, if any of the property value changed.
13924
14493
  *
13925
- * @param {GanttModel} newProp .
13926
- * @param {GanttModel} oldProp .
14494
+ * @param {GanttModel} newProp - Defines the New GanttModel.
14495
+ * @param {GanttModel} oldProp - Defines the old GanttModel.
13927
14496
  * @returns {void} .
13928
14497
  * @private
13929
14498
  */
@@ -13986,6 +14555,12 @@ var Gantt = /** @__PURE__ @class */ (function (_super) {
13986
14555
  this.dataOperation.checkDataBinding(true);
13987
14556
  break;
13988
14557
  case 'enableCriticalPath':
14558
+ if (!isNullOrUndefined(this.loadingIndicator) && this.loadingIndicator.indicatorType === "Shimmer") {
14559
+ this.hideMaskRow();
14560
+ }
14561
+ else {
14562
+ this.hideSpinner();
14563
+ }
13989
14564
  if (this.enableCriticalPath && this.criticalPathModule) {
13990
14565
  this.criticalPathModule.showCriticalPath(this.enableCriticalPath);
13991
14566
  var criticalModule = this.criticalPathModule;
@@ -14532,7 +15107,7 @@ var Gantt = /** @__PURE__ @class */ (function (_super) {
14532
15107
  thWidth = thElements[n].style.width;
14533
15108
  var divElement = createElement('div', {
14534
15109
  className: 'e-line-container-cell',
14535
- styles: 'left:' + leftPos + 'px'
15110
+ styles: (this.enableRtl ? 'right:' + (leftPos + 1) : 'left:' + leftPos) + 'px'
14536
15111
  });
14537
15112
  containerDiv.appendChild(divElement);
14538
15113
  }
@@ -14667,12 +15242,18 @@ var Gantt = /** @__PURE__ @class */ (function (_super) {
14667
15242
  };
14668
15243
  /**
14669
15244
  *
14670
- * @param {object} args .
15245
+ * @param {object} args -Defines the edited event args.
14671
15246
  * @returns {void} .
14672
15247
  * @private
14673
15248
  */
14674
15249
  Gantt.prototype.actionBeginTask = function (args) {
14675
15250
  this.trigger('actionBegin', args);
15251
+ if (!isNullOrUndefined(this.loadingIndicator) && this.loadingIndicator.indicatorType === "Shimmer") {
15252
+ this.showMaskRow();
15253
+ }
15254
+ else {
15255
+ this.showSpinner();
15256
+ }
14676
15257
  };
14677
15258
  /**
14678
15259
  * To move horizontal scroll bar of Gantt to specific date.
@@ -14708,7 +15289,7 @@ var Gantt = /** @__PURE__ @class */ (function (_super) {
14708
15289
  if (!isNullOrUndefined(left)) {
14709
15290
  left = this.ganttChartModule.scrollElement.scrollWidth <= left ?
14710
15291
  this.ganttChartModule.scrollElement.scrollWidth : left;
14711
- this.ganttChartModule.scrollObject.setScrollLeft(left);
15292
+ this.ganttChartModule.scrollObject.setScrollLeft(left, this.enableRtl ? -1 : 0);
14712
15293
  }
14713
15294
  if (!isNullOrUndefined(top)) {
14714
15295
  top = this.ganttChartModule.scrollElement.scrollHeight <= top ? this.ganttChartModule.scrollElement.scrollHeight : top;
@@ -14741,8 +15322,8 @@ var Gantt = /** @__PURE__ @class */ (function (_super) {
14741
15322
  /**
14742
15323
  * Get parent task by clone parent item.
14743
15324
  *
14744
- * @param {IGanttData} ganttRecord .
14745
- * @param {number} level .
15325
+ * @param {IGanttData} ganttRecord -Defines the Gantt record.
15326
+ * @param {number} level -Defines the selected record level.
14746
15327
  * @returns {IGanttData} .
14747
15328
  * @hidden
14748
15329
  */
@@ -14855,7 +15436,7 @@ var Gantt = /** @__PURE__ @class */ (function (_super) {
14855
15436
  /**
14856
15437
  * To update timeline at start point with one unit.
14857
15438
  *
14858
- * @param {string} mode .
15439
+ * @param {string} mode - Render previous span of Timeline.
14859
15440
  * @returns {void} .
14860
15441
  * @public
14861
15442
  */
@@ -14865,7 +15446,7 @@ var Gantt = /** @__PURE__ @class */ (function (_super) {
14865
15446
  /**
14866
15447
  * To update timeline at end point with one unit.
14867
15448
  *
14868
- * @param {string} mode .
15449
+ * @param {string} mode - Render next span of Timeline.
14869
15450
  * @returns {void} .
14870
15451
  * @public
14871
15452
  */
@@ -14939,7 +15520,7 @@ var Gantt = /** @__PURE__ @class */ (function (_super) {
14939
15520
  /**
14940
15521
  * Method to clear edited collections in gantt set edit flag value
14941
15522
  *
14942
- * @param {boolean} isStart .
15523
+ * @param {boolean} isStart -Defines whether to initiate edit action.
14943
15524
  * @returns {void} .
14944
15525
  * @private
14945
15526
  */
@@ -15212,8 +15793,8 @@ var Gantt = /** @__PURE__ @class */ (function (_super) {
15212
15793
  /**
15213
15794
  * To update existing taskId with new unique Id.
15214
15795
  *
15215
- * @param {number | string} currentId .
15216
- * @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.
15217
15798
  * @returns {void} .
15218
15799
  */
15219
15800
  Gantt.prototype.updateTaskId = function (currentId, newId) {
@@ -15315,9 +15896,9 @@ var Gantt = /** @__PURE__ @class */ (function (_super) {
15315
15896
  /**
15316
15897
  * Reorder the rows based on given indexes and position
15317
15898
  *
15318
- * @param {number[]} fromIndexes .
15319
- * @param {number} toIndex .
15320
- * @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.
15321
15902
  * @returns {void} .
15322
15903
  */
15323
15904
  Gantt.prototype.reorderRows = function (fromIndexes, toIndex, position) {
@@ -15492,7 +16073,7 @@ var Gantt = /** @__PURE__ @class */ (function (_super) {
15492
16073
  /**
15493
16074
  * Method to get class name for unscheduled tasks
15494
16075
  *
15495
- * @param {ITaskData} ganttProp .
16076
+ * @param {ITaskData} ganttProp -Defines the Gantt propertie.
15496
16077
  * @returns {boolean} .
15497
16078
  * @private
15498
16079
  */
@@ -15566,7 +16147,7 @@ var Gantt = /** @__PURE__ @class */ (function (_super) {
15566
16147
  var clientTop = document.documentElement.clientTop || document.body.clientTop || 0;
15567
16148
  var clientLeft = document.documentElement.clientLeft || document.body.clientLeft || 0;
15568
16149
  var top = box.top + scrollTop - clientTop;
15569
- var left = box.left + scrollLeft - clientLeft;
16150
+ var left = this.enableRtl ? box.right + scrollLeft - clientLeft : box.left + scrollLeft - clientLeft;
15570
16151
  return { top: Math.round(top), left: Math.round(left), width: box.width, height: box.height };
15571
16152
  };
15572
16153
  /**
@@ -15839,7 +16420,7 @@ var Gantt = /** @__PURE__ @class */ (function (_super) {
15839
16420
  /**
15840
16421
  * To change the mode of a record.
15841
16422
  *
15842
- * @param {object} data .
16423
+ * @param {object} data - Use to change the TaskMode either manual, auto or custom.
15843
16424
  * @returns {void} .
15844
16425
  */
15845
16426
  Gantt.prototype.changeTaskMode = function (data) {
@@ -15910,6 +16491,12 @@ var Gantt = /** @__PURE__ @class */ (function (_super) {
15910
16491
  __decorate([
15911
16492
  Property(true)
15912
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);
15913
16500
  __decorate([
15914
16501
  Property(true)
15915
16502
  ], Gantt.prototype, "autoFocusTasks", void 0);
@@ -16943,6 +17530,7 @@ var EditTooltip = /** @__PURE__ @class */ (function () {
16943
17530
  this.toolTipObj = new Tooltip({
16944
17531
  opensOn: opensOn,
16945
17532
  position: 'TopRight',
17533
+ enableRtl: this.parent.enableRtl,
16946
17534
  mouseTrail: mouseTrail,
16947
17535
  cssClass: ganttTooltip,
16948
17536
  target: target ? target : null,
@@ -16992,12 +17580,15 @@ var EditTooltip = /** @__PURE__ @class */ (function () {
16992
17580
  this.parent.tooltipModule.toolTipObj.close();
16993
17581
  this.updateTooltip(segmentIndex);
16994
17582
  if (this.taskbarEdit.connectorSecondAction === 'ConnectorPointLeftDrag') {
17583
+ // eslint-disable-next-line security/detect-non-literal-fs-filename
16995
17584
  this.toolTipObj.open(this.taskbarEdit.connectorSecondElement.querySelector('.' + connectorPointLeft));
16996
17585
  }
16997
17586
  else if (this.taskbarEdit.connectorSecondAction === 'ConnectorPointRightDrag') {
17587
+ // eslint-disable-next-line security/detect-non-literal-fs-filename
16998
17588
  this.toolTipObj.open(this.taskbarEdit.connectorSecondElement.querySelector('.' + connectorPointRight));
16999
17589
  }
17000
17590
  else {
17591
+ // eslint-disable-next-line security/detect-non-literal-fs-filename
17001
17592
  this.toolTipObj.open(this.taskbarEdit.taskBarEditElement);
17002
17593
  }
17003
17594
  }
@@ -17030,14 +17621,29 @@ var EditTooltip = /** @__PURE__ @class */ (function () {
17030
17621
  this.toolTipObj.content = this.getTooltipText(segmentIndex);
17031
17622
  this.toolTipObj.refresh(this.taskbarEdit.taskBarEditElement);
17032
17623
  if (this.taskbarEdit.taskBarEditAction === 'LeftResizing') {
17033
- this.toolTipObj.offsetX = -taskWidth;
17624
+ if (this.parent.enableRtl) {
17625
+ this.toolTipObj.offsetX = 0;
17626
+ }
17627
+ else {
17628
+ this.toolTipObj.offsetX = -taskWidth;
17629
+ }
17034
17630
  }
17035
17631
  else if (this.taskbarEdit.taskBarEditAction === 'RightResizing' ||
17036
17632
  this.taskbarEdit.taskBarEditAction === 'ParentResizing') {
17037
- this.toolTipObj.offsetX = 0;
17633
+ if (this.parent.enableRtl) {
17634
+ this.toolTipObj.offsetX = -taskWidth;
17635
+ }
17636
+ else {
17637
+ this.toolTipObj.offsetX = 0;
17638
+ }
17038
17639
  }
17039
17640
  else if (this.taskbarEdit.taskBarEditAction === 'ProgressResizing') {
17040
- 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
+ }
17041
17647
  }
17042
17648
  else if (this.taskbarEdit.taskBarEditAction === 'MilestoneDrag') {
17043
17649
  this.toolTipObj.offsetX = -(this.parent.chartRowsModule.milestoneHeight / 2);
@@ -17134,7 +17740,7 @@ var EditTooltip = /** @__PURE__ @class */ (function () {
17134
17740
  return EditTooltip;
17135
17741
  }());
17136
17742
 
17137
- var __extends$19 = (undefined && undefined.__extends) || (function () {
17743
+ var __extends$20 = (undefined && undefined.__extends) || (function () {
17138
17744
  var extendStatics = function (d, b) {
17139
17745
  extendStatics = Object.setPrototypeOf ||
17140
17746
  ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
@@ -17162,7 +17768,7 @@ var __assign$1 = (undefined && undefined.__assign) || function () {
17162
17768
  * File for handling taskbar editing operation in Gantt.
17163
17769
  */
17164
17770
  var TaskbarEdit = /** @__PURE__ @class */ (function (_super) {
17165
- __extends$19(TaskbarEdit, _super);
17771
+ __extends$20(TaskbarEdit, _super);
17166
17772
  function TaskbarEdit(ganttObj) {
17167
17773
  var _this = _super.call(this, ganttObj) || this;
17168
17774
  _this.isMouseDragged = false;
@@ -17570,8 +18176,14 @@ var TaskbarEdit = /** @__PURE__ @class */ (function (_super) {
17570
18176
  var e = this.getCoordinate(event);
17571
18177
  if (e.pageX || e.pageY) {
17572
18178
  var containerPosition = this.parent.getOffsetRect(this.parent.ganttChartModule.chartBodyContainer);
17573
- this.mouseDownX = (e.pageX - containerPosition.left) +
17574
- 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
+ }
17575
18187
  this.tooltipPositionX = this.mouseDownX;
17576
18188
  this.mouseDownY = e.pageY - containerPosition.top +
17577
18189
  this.parent.ganttChartModule.scrollObject.previousScroll.top;
@@ -17616,23 +18228,40 @@ var TaskbarEdit = /** @__PURE__ @class */ (function (_super) {
17616
18228
  }
17617
18229
  var containerPosition = this.parent.getOffsetRect(this.parent.ganttChartModule.chartBodyContainer);
17618
18230
  var e = this.getCoordinate(event);
17619
- this.mouseMoveX = e.pageX - containerPosition.left +
17620
- 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
+ }
17621
18239
  this.mouseMoveY = e.pageY - containerPosition.top +
17622
18240
  this.parent.ganttChartModule.scrollObject.previousScroll.top;
17623
18241
  this.dragMouseLeave = false;
17624
18242
  this.isMouseDragCheck();
17625
18243
  if (this.isMouseDragged && this.taskBarEditAction) {
17626
- var args = {
18244
+ var args_1 = {
17627
18245
  cancel: false,
17628
18246
  requestType: 'taskbarediting',
17629
18247
  taskBarEditAction: this.taskBarEditAction,
17630
18248
  data: this.taskBarEditRecord
17631
18249
  };
17632
18250
  if (this.segmentIndex !== -1) {
17633
- args.requestType = 'mergeSegment';
18251
+ args_1.requestType = 'mergeSegment';
17634
18252
  }
17635
- 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
+ }
17636
18265
  if (arg.cancel === false) {
17637
18266
  _this.taskBarEditingAction(event, false);
17638
18267
  }
@@ -17715,8 +18344,14 @@ var TaskbarEdit = /** @__PURE__ @class */ (function (_super) {
17715
18344
  var containerPosition = this.parent.getOffsetRect(this.parent.ganttChartModule.chartBodyContainer);
17716
18345
  var e = this.getCoordinate(event);
17717
18346
  if (e.pageX || e.pageY) {
17718
- this.mouseMoveX = e.pageX - containerPosition.left +
17719
- 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
+ }
17720
18355
  this.tooltipPositionX = this.mouseMoveX;
17721
18356
  this.mouseMoveY = e.pageY - containerPosition.top +
17722
18357
  this.parent.ganttChartModule.scrollObject.previousScroll.top;
@@ -17727,8 +18362,15 @@ var TaskbarEdit = /** @__PURE__ @class */ (function (_super) {
17727
18362
  if ((this.taskBarEditRecord.ganttProperties.width > 3 && !(this.taskBarEditAction === 'ProgressResizing' &&
17728
18363
  (this.taskBarEditRecord.ganttProperties.progress === 0 || this.taskBarEditRecord.ganttProperties.progress === 100))) ||
17729
18364
  isConnectorLineEdit) {
17730
- var mouseX = this.mouseMoveX - this.parent.ganttChartModule.scrollObject.previousScroll.left +
17731
- 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
+ }
17732
18374
  var mouseY = this.mouseMoveY - this.parent.ganttChartModule.scrollObject.previousScroll.top +
17733
18375
  containerPosition.top;
17734
18376
  if ((mouseX + 20) >
@@ -17736,6 +18378,12 @@ var TaskbarEdit = /** @__PURE__ @class */ (function (_super) {
17736
18378
  this.timerCount = this.parent.ganttChartModule.scrollObject.previousScroll.left;
17737
18379
  this.startScrollTimer('right');
17738
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
+ }
17739
18387
  else if ((mouseX - 20) < containerPosition.left) {
17740
18388
  this.timerCount = this.parent.ganttChartModule.scrollObject.previousScroll.left;
17741
18389
  this.startScrollTimer('left');
@@ -17767,7 +18415,12 @@ var TaskbarEdit = /** @__PURE__ @class */ (function (_super) {
17767
18415
  TaskbarEdit.prototype.startScrollTimer = function (direction) {
17768
18416
  var _this = this;
17769
18417
  this.stopScrollTimer();
18418
+ var leftSign = 0;
17770
18419
  this.scrollTimer = window.setInterval(function () {
18420
+ if (Math.sign(_this.timerCount) == -1) {
18421
+ leftSign = -1;
18422
+ _this.timerCount = Math.abs(_this.timerCount);
18423
+ }
17771
18424
  if (direction === 'right') {
17772
18425
  _this.timerCount = (_this.timerCount + 1) >= _this.parent.timelineModule.totalTimelineWidth ?
17773
18426
  _this.parent.timelineModule.totalTimelineWidth : (_this.timerCount + 1);
@@ -17782,7 +18435,7 @@ var TaskbarEdit = /** @__PURE__ @class */ (function (_super) {
17782
18435
  _this.parent.ganttChartModule.scrollObject.setScrollTop(_this.timerCount);
17783
18436
  }
17784
18437
  else {
17785
- _this.parent.ganttChartModule.scrollObject.setScrollLeft(_this.timerCount);
18438
+ _this.parent.ganttChartModule.scrollObject.setScrollLeft(_this.timerCount, leftSign);
17786
18439
  }
17787
18440
  if (_this.taskBarEditAction === 'ConnectorPointLeftDrag'
17788
18441
  || _this.taskBarEditAction === 'ConnectorPointRightDrag') {
@@ -18478,6 +19131,7 @@ var TaskbarEdit = /** @__PURE__ @class */ (function (_super) {
18478
19131
  */
18479
19132
  TaskbarEdit.prototype.setItemPosition = function () {
18480
19133
  var item = this.taskBarEditRecord.ganttProperties;
19134
+ var position = this.parent.enableRtl ? "right" : "left";
18481
19135
  var segment = !isNullOrUndefined(item.segments) ? item.segments[this.segmentIndex] : null;
18482
19136
  var width = this.taskBarEditAction === 'MilestoneDrag' || item.isMilestone ?
18483
19137
  this.parent.chartRowsModule.milestoneHeight : item.width;
@@ -18509,11 +19163,16 @@ var TaskbarEdit = /** @__PURE__ @class */ (function (_super) {
18509
19163
  if (segmentedTaskBarContainer && !isNullOrUndefined(item.segments)
18510
19164
  && (this.taskBarEditAction === 'RightResizing' || this.segmentIndex !== 0)) {
18511
19165
  this.taskBarEditElement.style.width = (segment.width) + 'px';
18512
- 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
+ }
18513
19172
  }
18514
19173
  taskBarMainContainer$$1.style.width = (width) + 'px';
18515
- taskBarMainContainer$$1.style.left = (item.left) + 'px';
18516
19174
  leftLabelContainer$$1.style.width = (item.left) + 'px';
19175
+ taskBarMainContainer$$1.style.setProperty(position, (item.left) + 'px');
18517
19176
  if (this.taskBarEditAction === 'LeftResizing' && this.segmentIndex === 0) {
18518
19177
  var parent_1 = this.taskBarEditElement.parentElement;
18519
19178
  var segmentedTasks = parent_1.getElementsByClassName('e-segmented-taskbar');
@@ -18521,31 +19180,42 @@ var TaskbarEdit = /** @__PURE__ @class */ (function (_super) {
18521
19180
  var segment_4 = item.segments[i];
18522
19181
  var segmentElement = segmentedTasks[i];
18523
19182
  segmentElement.style.width = (segment_4.width) + 'px';
18524
- 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
+ }
18525
19189
  }
18526
19190
  }
18527
19191
  if (!isNullOrUndefined(rightLabelContainer$$1)) {
18528
- rightLabelContainer$$1.style.left = (item.left + width) + 'px';
19192
+ rightLabelContainer$$1.style.setProperty(position, (item.left + width) + 'px');
18529
19193
  }
18530
19194
  }
18531
19195
  if (traceConnectorPointRight) {
18532
- 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
+ }
18533
19202
  }
18534
19203
  if (this.taskBarEditAction === 'MilestoneDrag' || item.isMilestone) {
18535
- taskBarMainContainer$$1.style.left = (item.left - (width / 2)) + 'px';
19204
+ taskBarMainContainer$$1.style.setProperty(position, (item.left - (width / 2)) + 'px');
18536
19205
  leftLabelContainer$$1.style.width = (item.left - (width / 2)) + 'px';
18537
19206
  if (!isNullOrUndefined(rightLabelContainer$$1)) {
18538
- rightLabelContainer$$1.style.left = (item.left + (width / 2)) + 'px';
19207
+ rightLabelContainer$$1.style.setProperty(position, (item.left + (width / 2)) + 'px');
18539
19208
  }
18540
19209
  }
18541
19210
  else if (this.taskBarEditAction === 'ProgressResizing') {
18542
19211
  if (this.segmentIndex === -1) {
18543
- traceChildTaskBar$$1.style.left = (item.left + item.progressWidth - 10) + 'px';
19212
+ traceChildTaskBar$$1.style.setProperty(position, (item.left + item.progressWidth - 10) + 'px');
18544
19213
  if (!isNullOrUndefined(traceChildProgressBar$$1)) {
18545
19214
  traceChildProgressBar$$1.style.width = item.progressWidth + 'px';
18546
19215
  traceChildProgressBar$$1.style.borderBottomRightRadius = this.progressBorderRadius + 'px';
18547
19216
  traceChildProgressBar$$1.style.borderTopRightRadius = this.progressBorderRadius + 'px';
18548
- 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');
18549
19219
  }
18550
19220
  }
18551
19221
  else {
@@ -18553,16 +19223,17 @@ var TaskbarEdit = /** @__PURE__ @class */ (function (_super) {
18553
19223
  traceChildProgressBar$$1.style.width = item.segments[this.segmentIndex].progressWidth + 'px';
18554
19224
  traceChildProgressBar$$1.style.borderBottomRightRadius = this.progressBorderRadius + 'px';
18555
19225
  traceChildProgressBar$$1.style.borderTopRightRadius = this.progressBorderRadius + 'px';
18556
- 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');
18557
19228
  }
18558
19229
  }
18559
19230
  else if (this.taskBarEditAction === 'RightResizing' && !isNullOrUndefined(traceChildTaskBar$$1)) {
18560
19231
  traceChildTaskBar$$1.style.width = (width) + 'px';
18561
19232
  if (!isNullOrUndefined(traceChildProgressBar$$1)) {
18562
19233
  traceChildProgressBar$$1.style.width = (item.progressWidth) + 'px';
18563
- taskBarRightResizer$$1.style.left = rightResizer + 'px';
19234
+ taskBarRightResizer$$1.style.setProperty(position, rightResizer + 'px');
18564
19235
  if (!isNullOrUndefined(childProgressResizer$$1)) {
18565
- childProgressResizer$$1.style.left = (item.progressWidth - 10) + 'px';
19236
+ childProgressResizer$$1.style.setProperty(position, item.progressWidth - 10 + 'px');
18566
19237
  }
18567
19238
  }
18568
19239
  }
@@ -18576,27 +19247,27 @@ var TaskbarEdit = /** @__PURE__ @class */ (function (_super) {
18576
19247
  }
18577
19248
  else if (this.taskBarEditAction === 'ParentResizing') {
18578
19249
  manualParentTaskbar.style.width = manualTaskbar.style.width = (item.width) + 'px';
18579
- manualParentRight.style.left = (item.width - manualParentLeft.offsetLeft) + 'px';
19250
+ manualParentRight.style.setProperty(position, item.width - manualParentLeft.offsetLeft + 'px');
18580
19251
  }
18581
19252
  else if (this.taskBarEditAction === 'ManualParentDrag') {
18582
- manualParentTaskbar.style.left = (item.left - item.autoLeft) + 'px';
19253
+ manualParentTaskbar.style.setProperty(position, item.left - item.autoLeft + 'px');
18583
19254
  }
18584
19255
  else {
18585
19256
  if (!isNullOrUndefined(traceChildTaskBar$$1) && !segmentedTaskBarContainer) {
18586
19257
  traceChildTaskBar$$1.style.width = (width) + 'px';
18587
19258
  }
18588
19259
  if (!isNullOrUndefined(traceChildProgressBar$$1)) {
18589
- taskBarRightResizer$$1.style.left = rightResizer + 'px';
19260
+ taskBarRightResizer$$1.style.setProperty(position, rightResizer + 'px');
18590
19261
  traceChildProgressBar$$1.style.width = (item.progressWidth) + 'px';
18591
19262
  if (!isNullOrUndefined(childProgressResizer$$1)) {
18592
- childProgressResizer$$1.style.left = item.progressWidth - 10 + 'px';
19263
+ childProgressResizer$$1.style.setProperty(position, item.progressWidth - 10 + 'px');
18593
19264
  }
18594
19265
  }
18595
19266
  if (segmentedTaskBarContainer) {
18596
- taskBarRightResizer$$1.style.left = rightResizer + 'px';
19267
+ taskBarRightResizer$$1.style.setProperty(position, rightResizer + 'px');
18597
19268
  traceChildProgressBar$$1.style.width = (segment.progressWidth) + 'px';
18598
19269
  if (!isNullOrUndefined(childProgressResizer$$1)) {
18599
- childProgressResizer$$1.style.left = segment.progressWidth - 10 + 'px';
19270
+ childProgressResizer$$1.style.setProperty(position, segment.progressWidth - 10 + 'px');
18600
19271
  }
18601
19272
  }
18602
19273
  }
@@ -18818,25 +19489,51 @@ var TaskbarEdit = /** @__PURE__ @class */ (function (_super) {
18818
19489
  var y2 = this.mouseMoveY;
18819
19490
  var length = Math.sqrt((x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2));
18820
19491
  var angle = Math.atan2(y2 - y1, x2 - x1) * 180 / Math.PI;
18821
- var transform = 'rotate(' + angle + 'deg)';
19492
+ var transform = 'rotate(' + (this.parent.enableRtl ? -angle : angle) + 'deg)';
18822
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
+ }
18823
19498
  if (this.taskBarEditAction === 'ConnectorPointLeftDrag') {
18824
- left = (this.elementOffsetLeft - (this.parent.chartRowsModule.connectorPointWidth / 2)) -
18825
- 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
+ }
18826
19507
  }
18827
19508
  if (this.taskBarEditAction === 'ConnectorPointRightDrag') {
18828
- left = (this.elementOffsetLeft + this.elementOffsetWidth) +
18829
- (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
+ }
18830
19517
  }
18831
19518
  var top = ((this.elementOffsetTop) + (this.elementOffsetHeight / 2) +
18832
19519
  this.parent.ganttChartModule.chartBodyContainer.offsetTop) - this.parent.ganttChartModule.scrollObject.previousScroll.top;
18833
19520
  this.removeFalseLine(false);
18834
19521
  this.falseLine = createElement('div', {
18835
19522
  className: falseLine, id: 'ganttfalseline' + this.parent.element.id,
18836
- styles: 'transform-origin: 0% 100%;right: auto;position: absolute;transform:' + transform + ';' +
19523
+ styles: 'position: absolute;transform:' + transform + ';' +
18837
19524
  'border-top-width: 1px;border-top-style: dashed;z-index: 5;width:' + (length - 3) + 'px;' +
18838
- 'left:' + left + 'px;top:' + top + 'px;'
19525
+ 'top:' + top + 'px;'
18839
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
+ }
18840
19537
  this.parent.ganttChartModule.chartBodyContainer.appendChild(this.falseLine);
18841
19538
  };
18842
19539
  /**
@@ -18921,19 +19618,19 @@ var TaskbarEdit = /** @__PURE__ @class */ (function (_super) {
18921
19618
  var element = target;
18922
19619
  var uniqueId = this.parent.viewType === 'ResourceView' ? fromItem.taskId : fromItem.rowUniqueID;
18923
19620
  if (this.taskBarEditAction === 'ConnectorPointLeftDrag') {
18924
- predecessor = uniqueId + 'S';
19621
+ predecessor = uniqueId + (this.parent.enableRtl ? 'F' : 'S');
18925
19622
  }
18926
19623
  else if (this.taskBarEditAction === 'ConnectorPointRightDrag') {
18927
- predecessor = uniqueId + 'F';
19624
+ predecessor = uniqueId + (this.parent.enableRtl ? 'S' : 'F');
18928
19625
  }
18929
19626
  if (this.connectorSecondAction) {
18930
19627
  if (this.connectorSecondAction === 'ConnectorPointLeftDrag') {
18931
- predecessor += 'S';
18932
- currentTarget = 'start';
19628
+ predecessor += this.parent.enableRtl ? 'F' : 'S';
19629
+ currentTarget = this.parent.enableRtl ? 'finish' : 'start';
18933
19630
  }
18934
19631
  else if (this.connectorSecondAction === 'ConnectorPointRightDrag') {
18935
- predecessor += 'F';
18936
- currentTarget = 'finish';
19632
+ predecessor += this.parent.enableRtl ? 'S' : 'F';
19633
+ currentTarget = this.parent.enableRtl ? 'start' : 'finish';
18937
19634
  }
18938
19635
  }
18939
19636
  if (isNullOrUndefined(toItem)) {
@@ -18957,6 +19654,12 @@ var TaskbarEdit = /** @__PURE__ @class */ (function (_super) {
18957
19654
  args.isValidLink = isValidLink;
18958
19655
  args.requestType = 'ValidateDependency';
18959
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
+ }
18960
19663
  args.isValidLink = !isValidLink && args.isValidLink ? false : args.isValidLink;
18961
19664
  if (args.isValidLink) {
18962
19665
  if (!this.editTooltip.toolTipObj && !this.parent.isAdaptive) {
@@ -19352,18 +20055,18 @@ var DialogEdit = /** @__PURE__ @class */ (function () {
19352
20055
  if (!isNullOrUndefined(taskId)) {
19353
20056
  if (!isNullOrUndefined(taskId['ganttProperties'])) {
19354
20057
  if (typeof taskId['ganttProperties']['taskId'] === 'string') {
19355
- this.numericOrString = "stringedit";
20058
+ this.numericOrString = 'stringedit';
19356
20059
  }
19357
20060
  else {
19358
- this.numericOrString = "numericedit";
20061
+ this.numericOrString = 'numericedit';
19359
20062
  }
19360
20063
  }
19361
20064
  if (isNullOrUndefined(taskId['ganttProperties']) && !isNullOrUndefined(taskId)) {
19362
20065
  if (isNaN(Number(taskId)) || this.parent.columnByField[this.parent.taskFields.id].editType === "stringedit") {
19363
- this.numericOrString = "stringedit";
20066
+ this.numericOrString = 'stringedit';
19364
20067
  }
19365
20068
  else {
19366
- this.numericOrString = "numericedit";
20069
+ this.numericOrString = 'numericedit';
19367
20070
  }
19368
20071
  }
19369
20072
  }
@@ -19406,6 +20109,7 @@ var DialogEdit = /** @__PURE__ @class */ (function () {
19406
20109
  dialogModel.animationSettings = { effect: 'None' };
19407
20110
  dialogModel.header = this.localeObj.getConstant(this.isEdit ? 'editDialogTitle' : 'addDialogTitle');
19408
20111
  dialogModel.isModal = true;
20112
+ dialogModel.enableRtl = this.parent.enableRtl;
19409
20113
  dialogModel.allowDragging = this.parent.isAdaptive ? false : true;
19410
20114
  dialogModel.showCloseIcon = true;
19411
20115
  var position = this.parent.isAdaptive ? { X: 'top', Y: 'left' } : { X: 'center', Y: 'center' };
@@ -19416,8 +20120,8 @@ var DialogEdit = /** @__PURE__ @class */ (function () {
19416
20120
  dialogModel.close = this.dialogClose.bind(this);
19417
20121
  dialogModel.closeOnEscape = true;
19418
20122
  dialogModel.beforeClose = function (args) {
19419
- if (args.closedBy == "escape") {
19420
- 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') {
19421
20125
  args.cancel = true;
19422
20126
  }
19423
20127
  }
@@ -19588,6 +20292,7 @@ var DialogEdit = /** @__PURE__ @class */ (function () {
19588
20292
  var length = dialogSettings.length;
19589
20293
  tabModel.items = tabItems;
19590
20294
  tabModel.locale = this.parent.locale;
20295
+ tabModel.enableRtl = this.parent.enableRtl;
19591
20296
  this.beforeOpenArgs.tabModel = tabModel;
19592
20297
  var index = 0;
19593
20298
  if (length > 0) {
@@ -19667,6 +20372,12 @@ var DialogEdit = /** @__PURE__ @class */ (function () {
19667
20372
  cancel: this.beforeOpenArgs.cancel
19668
20373
  };
19669
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
+ }
19670
20381
  _this.renderTabItems();
19671
20382
  if (!arg.cancel) {
19672
20383
  tabModel.selected = _this.tabSelectedEvent.bind(_this);
@@ -19689,6 +20400,12 @@ var DialogEdit = /** @__PURE__ @class */ (function () {
19689
20400
  cancel: false
19690
20401
  };
19691
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
+ }
19692
20409
  if (actionCompleteArg.cancel) {
19693
20410
  _this.resetValues();
19694
20411
  }
@@ -19772,7 +20489,8 @@ var DialogEdit = /** @__PURE__ @class */ (function () {
19772
20489
  {
19773
20490
  var checkboxModel = {
19774
20491
  label: column.headerText,
19775
- locale: locale
20492
+ locale: locale,
20493
+ enableRtl: this.parent.enableRtl
19776
20494
  };
19777
20495
  fieldsModel[column.field] = checkboxModel;
19778
20496
  break;
@@ -19781,6 +20499,7 @@ var DialogEdit = /** @__PURE__ @class */ (function () {
19781
20499
  case 'stringedit':
19782
20500
  {
19783
20501
  var textBox = common;
20502
+ textBox.enableRtl = this.parent.enableRtl;
19784
20503
  if (column.field === ganttObj.columnMapping.duration || column.field === ganttObj.columnMapping.id || column.field === ganttObj.columnMapping.startDate ||
19785
20504
  column.field === ganttObj.columnMapping.endDate) {
19786
20505
  textBox.change = function (args) {
@@ -19793,6 +20512,7 @@ var DialogEdit = /** @__PURE__ @class */ (function () {
19793
20512
  case 'numericedit':
19794
20513
  {
19795
20514
  var numeric = common;
20515
+ numeric.enableRtl = this.parent.enableRtl;
19796
20516
  if (taskSettings.progress === column.field) {
19797
20517
  numeric.min = 0;
19798
20518
  numeric.max = 100;
@@ -19809,6 +20529,7 @@ var DialogEdit = /** @__PURE__ @class */ (function () {
19809
20529
  {
19810
20530
  var datePickerObj = common;
19811
20531
  datePickerObj.format = this.parent.getDateFormat();
20532
+ datePickerObj.enableRtl = this.parent.enableRtl;
19812
20533
  datePickerObj.strictMode = true;
19813
20534
  datePickerObj.firstDayOfWeek = ganttObj.timelineModule.customTimelineSettings.weekStartDay;
19814
20535
  if (column.field === ganttObj.columnMapping.startDate ||
@@ -19825,6 +20546,7 @@ var DialogEdit = /** @__PURE__ @class */ (function () {
19825
20546
  {
19826
20547
  var dateTimePickerObj = common;
19827
20548
  dateTimePickerObj.format = this.parent.getDateFormat();
20549
+ dateTimePickerObj.enableRtl = this.parent.enableRtl;
19828
20550
  dateTimePickerObj.strictMode = true;
19829
20551
  dateTimePickerObj.firstDayOfWeek = ganttObj.timelineModule.customTimelineSettings.weekStartDay;
19830
20552
  if (column.field === ganttObj.columnMapping.startDate ||
@@ -19847,6 +20569,7 @@ var DialogEdit = /** @__PURE__ @class */ (function () {
19847
20569
  common[dataKey] = types;
19848
20570
  common[fieldsKey] = { value: 'Value' };
19849
20571
  var dropDownListObj = common;
20572
+ dropDownListObj.enableRtl = this.parent.enableRtl;
19850
20573
  dropDownListObj.change = function (args) {
19851
20574
  if (column.field === taskSettings.manual) {
19852
20575
  _this.editedRecord.ganttProperties.isAutoSchedule = !args.value;
@@ -20218,8 +20941,8 @@ var DialogEdit = /** @__PURE__ @class */ (function () {
20218
20941
  break;
20219
20942
  case 'duration':
20220
20943
  gridColumn = {
20221
- field: fields[i], headerText: this_1.localeObj.getConstant(fields[i]), editType: 'stringedit', width: '100px',
20222
- edit: {
20944
+ field: fields[i], headerText: this_1.localeObj.getConstant(fields[i]), editType: 'stringedit',
20945
+ width: '100px', edit: {
20223
20946
  write: function (args) {
20224
20947
  var inputTextModel;
20225
20948
  if (!isNullOrUndefined(_this.beforeOpenArgs[generalTabString])) {
@@ -20284,7 +21007,7 @@ var DialogEdit = /** @__PURE__ @class */ (function () {
20284
21007
  inputValue = dialog.querySelector('#' + ganttId + 'SegmentsTabContainer' + columnName)
20285
21008
  .ej2_instances[0];
20286
21009
  }
20287
- if (inputValue.value.toString() !== tempValue.toString()) {
21010
+ if ((!isNullOrUndefined(inputValue.value)) && (inputValue.value.toString() !== tempValue.toString())) {
20288
21011
  inputValue.value = tempValue;
20289
21012
  inputValue.dataBind();
20290
21013
  }
@@ -20619,7 +21342,7 @@ var DialogEdit = /** @__PURE__ @class */ (function () {
20619
21342
  break;
20620
21343
  }
20621
21344
  }
20622
- if (typeof (stringOrNumber) === "string") {
21345
+ if (typeof (stringOrNumber) === 'string') {
20623
21346
  disabled = false;
20624
21347
  }
20625
21348
  else {
@@ -20634,7 +21357,7 @@ var DialogEdit = /** @__PURE__ @class */ (function () {
20634
21357
  }
20635
21358
  if (this.editedRecord.hasChildRecords) {
20636
21359
  if ((column.field === this.parent.taskFields.endDate && ((!isNullOrUndefined(this.editedRecord['isManual']) &&
20637
- this.editedRecord['isManual'] == false) || this.parent.taskMode == 'Auto')) || column.field === this.parent.taskFields.duration ||
21360
+ this.editedRecord['isManual'] === false) || this.parent.taskMode === 'Auto')) || column.field === this.parent.taskFields.duration ||
20638
21361
  column.field === this.parent.taskFields.progress || column.field === this.parent.taskFields.work ||
20639
21362
  column.field === this.parent.taskFields.type) {
20640
21363
  disabled = true;
@@ -20690,6 +21413,7 @@ var DialogEdit = /** @__PURE__ @class */ (function () {
20690
21413
  dataSource: new DataManager(_this.idCollection),
20691
21414
  popupHeight: '180px',
20692
21415
  allowCustom: false,
21416
+ enableRtl: _this.parent.enableRtl,
20693
21417
  fields: { value: 'text' },
20694
21418
  value: args.rowData[field],
20695
21419
  change: function (arg) {
@@ -20965,7 +21689,7 @@ var DialogEdit = /** @__PURE__ @class */ (function () {
20965
21689
  do {
20966
21690
  if (currentFlatData.parentItem) {
20967
21691
  currentFlatData = this.parent.flatData[this.parent.ids.indexOf(currentFlatData.parentItem.taskId)];
20968
- if (currentFlatData.uniqueID == this.beforeOpenArgs.rowData['uniqueID']) {
21692
+ if (currentFlatData.uniqueID === this.beforeOpenArgs.rowData['uniqueID']) {
20969
21693
  this.isValidData = false;
20970
21694
  break;
20971
21695
  }
@@ -21218,7 +21942,9 @@ var DialogEdit = /** @__PURE__ @class */ (function () {
21218
21942
  }
21219
21943
  }
21220
21944
  if (this.isEdit) {
21221
- this.updateScheduleProperties(this.editedRecord, this.rowData);
21945
+ if (!isCustom) {
21946
+ this.updateScheduleProperties(this.editedRecord, this.rowData);
21947
+ }
21222
21948
  ganttObj.editModule.validateUpdateValues(tasksData, this.rowData, true);
21223
21949
  }
21224
21950
  };
@@ -21899,6 +22625,7 @@ var ConnectorLineEdit = /** @__PURE__ @class */ (function () {
21899
22625
  var validationDialog = new Dialog({
21900
22626
  header: 'Validate Editing',
21901
22627
  isModal: true,
22628
+ enableRtl: this.parent.enableRtl,
21902
22629
  visible: false,
21903
22630
  width: '50%',
21904
22631
  showCloseIcon: true,
@@ -22270,6 +22997,7 @@ var ConnectorLineEdit = /** @__PURE__ @class */ (function () {
22270
22997
  this.confirmPredecessorDialog = new Dialog({
22271
22998
  width: '320px',
22272
22999
  isModal: true,
23000
+ enableRtl: this.parent.enableRtl,
22273
23001
  content: this.parent.localeObj.getConstant('confirmPredecessorDelete'),
22274
23002
  buttons: [
22275
23003
  {
@@ -22318,6 +23046,7 @@ var Edit$2 = /** @__PURE__ @class */ (function () {
22318
23046
  this.taskbarMoved = false;
22319
23047
  this.predecessorUpdated = false;
22320
23048
  this.isBreakLoop = false;
23049
+ this.isResourceTaskDeleted = false;
22321
23050
  /**
22322
23051
  * @private
22323
23052
  */
@@ -22392,6 +23121,7 @@ var Edit$2 = /** @__PURE__ @class */ (function () {
22392
23121
  var editParam = {
22393
23122
  min: 0,
22394
23123
  decimals: 0,
23124
+ enableRtl: this.parent.enableRtl,
22395
23125
  validateDecimalOnType: true,
22396
23126
  format: 'n0',
22397
23127
  showSpinButton: false
@@ -22407,6 +23137,7 @@ var Edit$2 = /** @__PURE__ @class */ (function () {
22407
23137
  Edit$$1.prototype.updateProgessColumnEditParams = function (column) {
22408
23138
  var editParam = {
22409
23139
  min: 0,
23140
+ enableRtl: this.parent.enableRtl,
22410
23141
  decimals: 0,
22411
23142
  validateDecimalOnType: true,
22412
23143
  max: 100,
@@ -22465,6 +23196,7 @@ var Edit$2 = /** @__PURE__ @class */ (function () {
22465
23196
  editor = new MultiSelect({
22466
23197
  dataSource: new DataManager(_this.parent.resources),
22467
23198
  fields: { text: resourceSettings.name, value: resourceSettings.id },
23199
+ enableRtl: _this.parent.enableRtl,
22468
23200
  mode: 'CheckBox',
22469
23201
  showDropDownIcon: true,
22470
23202
  popupHeight: '350px',
@@ -22526,6 +23258,7 @@ var Edit$2 = /** @__PURE__ @class */ (function () {
22526
23258
  _this.parent.treeGridModule.currentEditRow = {};
22527
23259
  editor = new DropDownList({
22528
23260
  dataSource: new DataManager(types),
23261
+ enableRtl: _this.parent.enableRtl,
22529
23262
  fields: { value: 'Value' },
22530
23263
  popupHeight: '350px',
22531
23264
  value: getValue('taskType', args.rowData.ganttProperties)
@@ -22689,8 +23422,8 @@ var Edit$2 = /** @__PURE__ @class */ (function () {
22689
23422
  var ganttPropByMapping = getSwapKey(ganttObj.columnMapping);
22690
23423
  var scheduleFieldNames = [];
22691
23424
  var isScheduleValueUpdated = false;
22692
- for (var _i = 0, _a = Object.keys(data); _i < _a.length; _i++) {
22693
- var key = _a[_i];
23425
+ for (var _i = 0, _b = Object.keys(data); _i < _b.length; _i++) {
23426
+ var key = _b[_i];
22694
23427
  if ([tasks.startDate, tasks.endDate, tasks.duration].indexOf(key) !== -1) {
22695
23428
  if (isNullOrUndefined(data[key]) && !ganttObj.allowUnscheduledTasks) {
22696
23429
  continue;
@@ -23411,7 +24144,6 @@ var Edit$2 = /** @__PURE__ @class */ (function () {
23411
24144
  */
23412
24145
  Edit$$1.prototype.initiateSaveAction = function (args) {
23413
24146
  var _this = this;
23414
- this.parent.showSpinner();
23415
24147
  var eventArgs = {};
23416
24148
  eventArgs.requestType = 'beforeSave';
23417
24149
  eventArgs.data = args.data;
@@ -23425,6 +24157,12 @@ var Edit$2 = /** @__PURE__ @class */ (function () {
23425
24157
  eventArgs.action = 'DrawConnectorLine';
23426
24158
  }
23427
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
+ }
23428
24166
  if (eventArg.cancel) {
23429
24167
  _this.reUpdatePreviousRecords();
23430
24168
  _this.parent.chartRowsModule.refreshRecords([args.data]);
@@ -23458,6 +24196,52 @@ var Edit$2 = /** @__PURE__ @class */ (function () {
23458
24196
  });
23459
24197
  };
23460
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
+ }
23461
24245
  this.saveSuccess(args);
23462
24246
  };
23463
24247
  Edit$$1.prototype.dmFailure = function (e, args) {
@@ -23476,7 +24260,7 @@ var Edit$2 = /** @__PURE__ @class */ (function () {
23476
24260
  var ids = data.ganttProperties.sharedTaskUniqueIds;
23477
24261
  for (var i = 0; i < ids.length; i++) {
23478
24262
  var editRecord = this.parent.flatData[this.parent.ids.indexOf(ids[i].toString())];
23479
- if (editRecord.uniqueID !== data.uniqueID) {
24263
+ if (editRecord && editRecord.uniqueID !== data.uniqueID) {
23480
24264
  this.updateGanttProperties(data, editRecord);
23481
24265
  this.parent.setRecordValue('taskData', data.taskData, editRecord, true);
23482
24266
  this.parent.dataOperation.updateTaskData(editRecord);
@@ -23550,6 +24334,12 @@ var Edit$2 = /** @__PURE__ @class */ (function () {
23550
24334
  criticalModule.criticalConnectorLine(criticalModule.criticalPathCollection, criticalModule.detailPredecessorCollection, true, criticalModule.predecessorCollectionTaskIds);
23551
24335
  }
23552
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
+ }
23553
24343
  }
23554
24344
  else {
23555
24345
  this.taskbarEditModule.dependencyCancel = false;
@@ -23571,12 +24361,12 @@ var Edit$2 = /** @__PURE__ @class */ (function () {
23571
24361
  for (var index = 0; index < currentLength; index++) {
23572
24362
  var recordIndex = [];
23573
24363
  var resourceID = parseInt(currentResource[index][this.parent.resourceFields.id], 10).toString();
23574
- if (resourceID === "NaN") {
24364
+ if (resourceID === 'NaN') {
23575
24365
  resourceID = currentResource[index][this.parent.resourceFields.id];
23576
24366
  }
23577
24367
  for (var i = 0; i < prevResource.length; i++) {
23578
24368
  var prevResourceID = parseInt(prevResource[i][this.parent.resourceFields.id], 10).toString();
23579
- if (prevResourceID === "NaN") {
24369
+ if (prevResourceID === 'NaN') {
23580
24370
  prevResourceID = prevResource[i][this.parent.resourceFields.id];
23581
24371
  }
23582
24372
  if (prevResourceID === resourceID) {
@@ -23637,12 +24427,6 @@ var Edit$2 = /** @__PURE__ @class */ (function () {
23637
24427
  }
23638
24428
  if (!isNullOrUndefined(unassignedTasks)) {
23639
24429
  this.addNewRecord(updateRecord, unassignedTasks);
23640
- var updatedData = this.parent.currentViewData.filter(function (data) {
23641
- return (data.ganttProperties.taskId === updateRecord.ganttProperties.taskId &&
23642
- (data.hasChildRecords === updateRecord.hasChildRecords));
23643
- })[0];
23644
- updateRecord.parentItem = updatedData.parentItem;
23645
- updateRecord.parentUniqueID = updatedData.parentUniqueID;
23646
24430
  }
23647
24431
  else {
23648
24432
  // Block for create the unassigned task.
@@ -23657,6 +24441,12 @@ var Edit$2 = /** @__PURE__ @class */ (function () {
23657
24441
  var parentRecord = this.parent.flatData[this.parent.flatData.length - 1];
23658
24442
  this.addNewRecord(updateRecord, parentRecord);
23659
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;
23660
24450
  };
23661
24451
  Edit$$1.prototype.addRecordAsBottom = function (cAddedRecord) {
23662
24452
  var recordIndex1 = this.parent.flatData.length;
@@ -23863,6 +24653,7 @@ var Edit$2 = /** @__PURE__ @class */ (function () {
23863
24653
  width: '320px',
23864
24654
  isModal: true,
23865
24655
  visible: false,
24656
+ enableRtl: this.parent.enableRtl,
23866
24657
  content: this.parent.localeObj.getConstant('confirmDelete'),
23867
24658
  buttons: [
23868
24659
  {
@@ -23915,15 +24706,17 @@ var Edit$2 = /** @__PURE__ @class */ (function () {
23915
24706
  var deleteRecords = [];
23916
24707
  var _loop_1 = function (i) {
23917
24708
  if (selectedRecords[i].parentItem) {
23918
- var data = selectedRecords[i];
23919
- var ids = data.ganttProperties.sharedTaskUniqueIds;
23920
- for (var j = 0; j < ids.length; j++) {
23921
- if (this_1.parent.ids.indexOf(ids[j].toString()) !== -1) {
23922
- deleteRecords.push(this_1.parent.flatData[this_1.parent.ids.indexOf(ids[j].toString())]);
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)]);
23923
24719
  }
23924
- }
23925
- if (this_1.parent.ids.indexOf(data.ganttProperties.rowUniqueID) !== -1) {
23926
- deleteRecords.push(this_1.parent.flatData[this_1.parent.ids.indexOf(data.ganttProperties.rowUniqueID)]);
23927
24720
  }
23928
24721
  }
23929
24722
  else {
@@ -24053,8 +24846,9 @@ var Edit$2 = /** @__PURE__ @class */ (function () {
24053
24846
  if (this.deletedTaskDetails.indexOf(deleteRecord) !== -1) {
24054
24847
  continue;
24055
24848
  }
24849
+ var parentTask = this.parent.getParentTask(deleteRecord.parentItem);
24056
24850
  if (deleteRecord.parentItem) {
24057
- var childRecord = this.parent.getParentTask(deleteRecord.parentItem).childRecords;
24851
+ var childRecord = parentTask.childRecords;
24058
24852
  var filteredRecord = childRecord.length === 1 ?
24059
24853
  childRecord : childRecord.filter(function (data) {
24060
24854
  return !data.isDelete;
@@ -24064,7 +24858,12 @@ var Edit$2 = /** @__PURE__ @class */ (function () {
24064
24858
  }
24065
24859
  }
24066
24860
  var predecessor = deleteRecord.ganttProperties.predecessor;
24067
- 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) {
24068
24867
  this.removePredecessorOnDelete(deleteRecord);
24069
24868
  }
24070
24869
  this.deletedTaskDetails.push(deleteRecord);
@@ -24213,7 +25012,13 @@ var Edit$2 = /** @__PURE__ @class */ (function () {
24213
25012
  continue;
24214
25013
  }
24215
25014
  var predecessor = childRecord.ganttProperties.predecessor;
24216
- 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) {
24217
25022
  this.removePredecessorOnDelete(childRecord);
24218
25023
  }
24219
25024
  this.deletedTaskDetails.push(childRecord);
@@ -24265,6 +25070,12 @@ var Edit$2 = /** @__PURE__ @class */ (function () {
24265
25070
  eventArgs.modifiedRecords = args.updatedRecordCollection;
24266
25071
  eventArgs.modifiedTaskData = getTaskData(args.updatedRecordCollection, null, null, this.parent);
24267
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
+ }
24268
25079
  if (eventArg.cancel) {
24269
25080
  var deleteRecords = _this.deletedTaskDetails;
24270
25081
  for (var d = 0; d < deleteRecords.length; d++) {
@@ -24344,6 +25155,14 @@ var Edit$2 = /** @__PURE__ @class */ (function () {
24344
25155
  this.parent.ids.splice(flatIndex, 1);
24345
25156
  if (this.parent.viewType === 'ResourceView') {
24346
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
+ }
24347
25166
  }
24348
25167
  }
24349
25168
  if (deleteRecord.level === 0 && treeGridParentIndex !== -1) {
@@ -24392,9 +25211,12 @@ var Edit$2 = /** @__PURE__ @class */ (function () {
24392
25211
  var unassignedTask = this_2.parent.flatData.filter(function (data) {
24393
25212
  return data.ganttProperties.taskName === _this.parent.localeObj.getConstant('unassignedTask');
24394
25213
  })[0];
24395
- var isDuplicate = unassignedTask.childRecords.filter(function (data) {
24396
- return data.ganttProperties.taskId === updateUnAssignedResources_1[i].ganttProperties.taskId;
24397
- });
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
+ }
24398
25220
  var parentTask = this_2.parent.getParentTask(updateUnAssignedResources_1[i].parentItem);
24399
25221
  if (parentTask && parentTask.ganttProperties.taskName !==
24400
25222
  this_2.parent.localeObj.getConstant('unassignedTask') && isDuplicate.length === 0) {
@@ -24403,9 +25225,9 @@ var Edit$2 = /** @__PURE__ @class */ (function () {
24403
25225
  this_2.parent.dataOperation.updateParentItems(updateUnAssignedResources_1[i].parentItem);
24404
25226
  }
24405
25227
  }
24406
- else if (!parentTask && isDuplicate.length === 0) {
25228
+ else if (!parentTask && (!isDuplicate || isDuplicate.length === 0)) {
24407
25229
  this_2.checkWithUnassignedTask(updateUnAssignedResources_1[i]);
24408
- if (updateUnAssignedResources_1[i].parentItem) {
25230
+ if (updateUnAssignedResources_1[i].parentItem && unassignedTask) {
24409
25231
  this_2.parent.dataOperation.updateParentItems(updateUnAssignedResources_1[i].parentItem);
24410
25232
  }
24411
25233
  }
@@ -24418,7 +25240,12 @@ var Edit$2 = /** @__PURE__ @class */ (function () {
24418
25240
  this.parent.trigger('actionComplete', eventArgs);
24419
25241
  this.deletedTaskDetails = [];
24420
25242
  this.parent.initiateEditAction(false);
24421
- 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
+ }
24422
25249
  };
24423
25250
  /**
24424
25251
  *
@@ -24873,8 +25700,8 @@ var Edit$2 = /** @__PURE__ @class */ (function () {
24873
25700
  var originalData = this_3.parent.modifiedRecords[i];
24874
25701
  var treeIndex = this_3.parent.allowRowDragAndDrop ? 1 : 0;
24875
25702
  var uniqueTaskID = this_3.parent.taskFields.id;
24876
- originalIndex = this_3.parent.currentViewData.findIndex(function (data) {
24877
- return (data[uniqueTaskID] == originalData[uniqueTaskID]);
25703
+ var originalIndex = this_3.parent.currentViewData.findIndex(function (data) {
25704
+ return (data[uniqueTaskID] === originalData[uniqueTaskID]);
24878
25705
  });
24879
25706
  if (this_3.parent.treeGrid.getRows()[originalIndex]) {
24880
25707
  this_3.parent.treeGrid.renderModule.cellRender({
@@ -24887,7 +25714,7 @@ var Edit$2 = /** @__PURE__ @class */ (function () {
24887
25714
  });
24888
25715
  }
24889
25716
  };
24890
- var this_3 = this, originalIndex;
25717
+ var this_3 = this;
24891
25718
  for (var i = 0; i < this.parent.modifiedRecords.length; i++) {
24892
25719
  _loop_3(i);
24893
25720
  }
@@ -24999,8 +25826,13 @@ var Edit$2 = /** @__PURE__ @class */ (function () {
24999
25826
  }
25000
25827
  var args = {};
25001
25828
  args = this.constructTaskAddedEventArgs(cAddedRecord_1, this.parent.editedRecords, 'beforeAdd');
25002
- this.parent.showSpinner();
25003
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
+ }
25004
25836
  if (!isNullOrUndefined(args.data[tempTaskID])) {
25005
25837
  if (args.data[tempTaskID] != args.data['ganttProperties']['taskId']) {
25006
25838
  args.data['ganttProperties']['taskId'] = args.data[tempTaskID];
@@ -25204,7 +26036,7 @@ var Edit$2 = /** @__PURE__ @class */ (function () {
25204
26036
  switch (rowPosition) {
25205
26037
  case 'Top':
25206
26038
  case 'Bottom':
25207
- if (this.parent.viewType === "ResourceView") {
26039
+ if (this.parent.viewType === 'ResourceView') {
25208
26040
  level = 1;
25209
26041
  }
25210
26042
  else {
@@ -25287,6 +26119,12 @@ var Edit$2 = /** @__PURE__ @class */ (function () {
25287
26119
  this.parent.dataOperation.updateWorkWithDuration(cAddedRecord[0]);
25288
26120
  }
25289
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
+ }
25290
26128
  if (this.dialogModule.dialog && !this.dialogModule.dialogObj.isDestroyed) {
25291
26129
  this.dialogModule.dialogObj.hide();
25292
26130
  }
@@ -25446,6 +26284,12 @@ var Edit$2 = /** @__PURE__ @class */ (function () {
25446
26284
  cancel: false
25447
26285
  };
25448
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
+ }
25449
26293
  if (!actionArg.cancel) {
25450
26294
  _this.reArrangeRows(args_1, isByMethod_1);
25451
26295
  }
@@ -25618,6 +26462,12 @@ var Edit$2 = /** @__PURE__ @class */ (function () {
25618
26462
  }
25619
26463
  }
25620
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
+ }
25621
26471
  this.parent.editedRecords = [];
25622
26472
  };
25623
26473
  Edit$$1.prototype.refreshDataSource = function () {
@@ -26135,6 +26985,7 @@ var Filter$1 = /** @__PURE__ @class */ (function () {
26135
26985
  var flValInput = createElement('input', { className: 'flm-input' });
26136
26986
  args.target.appendChild(flValInput);
26137
26987
  dropDateInstance = new DatePicker({ placeholder: _this.parent.localeObj.getConstant('enterValue'), format: format });
26988
+ dropDateInstance.enableRtl = _this.parent.enableRtl;
26138
26989
  dropDateInstance.appendTo(flValInput);
26139
26990
  },
26140
26991
  write: function (args) {
@@ -26158,6 +27009,7 @@ var Filter$1 = /** @__PURE__ @class */ (function () {
26158
27009
  var flValInput = createElement('input', { className: 'flm-input' });
26159
27010
  args.target.appendChild(flValInput);
26160
27011
  dropInstance = new DateTimePicker({ placeholder: _this.parent.localeObj.getConstant('enterValue'), format: format });
27012
+ dropInstance.enableRtl = _this.parent.enableRtl;
26161
27013
  dropInstance.appendTo(flValInput);
26162
27014
  },
26163
27015
  write: function (args) {
@@ -26180,6 +27032,7 @@ var Filter$1 = /** @__PURE__ @class */ (function () {
26180
27032
  flValInput.setAttribute('placeholder', _this.parent.localeObj.getConstant('enterValue'));
26181
27033
  args.target.appendChild(flValInput);
26182
27034
  textBoxInstance = new TextBox();
27035
+ textBoxInstance.enableRtl = _this.parent.enableRtl;
26183
27036
  textBoxInstance.appendTo(flValInput);
26184
27037
  },
26185
27038
  write: function (args) {
@@ -26977,6 +27830,14 @@ var Toolbar$3 = /** @__PURE__ @class */ (function () {
26977
27830
  this.parent.localeObj.getConstant('tasks') : ''),
26978
27831
  align: this.parent.isAdaptive ? 'Right' : 'Left'
26979
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
+ }
26980
27841
  }
26981
27842
  var searchLocalText = this.parent.localeObj.getConstant('search');
26982
27843
  if (this.parent.isAdaptive) {
@@ -27008,6 +27869,7 @@ var Toolbar$3 = /** @__PURE__ @class */ (function () {
27008
27869
  var items = this.getItems();
27009
27870
  this.toolbar = new Toolbar$1({
27010
27871
  items: items,
27872
+ enableRtl: this.parent.enableRtl,
27011
27873
  clicked: this.toolbarClickHandler.bind(this),
27012
27874
  height: this.parent.isAdaptive ? 48 : 'auto'
27013
27875
  });
@@ -27026,6 +27888,7 @@ var Toolbar$3 = /** @__PURE__ @class */ (function () {
27026
27888
  this.searchElement = this.element.querySelector('#' + this.parent.element.id + '_searchbar');
27027
27889
  var textObj = new TextBox({
27028
27890
  placeholder: this.parent.localeObj.getConstant('search'),
27891
+ enableRtl: this.parent.enableRtl,
27029
27892
  floatLabelType: 'Never',
27030
27893
  showClearButton: true
27031
27894
  });
@@ -27144,7 +28007,16 @@ var Toolbar$3 = /** @__PURE__ @class */ (function () {
27144
28007
  var _this = this;
27145
28008
  var gObj = this.parent;
27146
28009
  var gID = this.id;
28010
+ this.parent.isToolBarClick = false;
27147
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
+ }
27148
28020
  gObj.trigger(toolbarClick, arg, function (args) {
27149
28021
  if (args.cancel) {
27150
28022
  return;
@@ -27346,7 +28218,8 @@ var Toolbar$3 = /** @__PURE__ @class */ (function () {
27346
28218
  else {
27347
28219
  disableItems.push(gID + '_update', gID + '_cancel');
27348
28220
  for (var t = 0; t < toolbarItems.length; t++) {
27349
- 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) {
27350
28223
  enableItems.push(toolbarItems[t].id);
27351
28224
  }
27352
28225
  }
@@ -27503,8 +28376,9 @@ var NonWorkingDay = /** @__PURE__ @class */ (function () {
27503
28376
  var width = (this.parent.holidays[i].from && this.parent.holidays[i].to) ?
27504
28377
  this.parent.dataOperation.getTaskWidth(fromDate, toDate) : this.parent.perDayWidth;
27505
28378
  var left = this.parent.dataOperation.getTaskLeft(fromDate, false);
28379
+ var align = this.parent.enableRtl ? "right:" + left + "px;" : "left:" + left + "px;";
27506
28380
  var holidayDiv = createElement('div', {
27507
- className: holidayElement, styles: "left:" + left + "px; width:" + width + "px; height:100%;"
28381
+ className: holidayElement, styles: align + " width:" + width + "px; height:100%;"
27508
28382
  });
27509
28383
  var spanTop = (viewportHeight < height) ? viewportHeight / 2 : height / 2;
27510
28384
  var spanElement = createElement('span', {
@@ -27573,8 +28447,9 @@ var NonWorkingDay = /** @__PURE__ @class */ (function () {
27573
28447
  this.weekendWidthUpdated = true;
27574
28448
  }
27575
28449
  }
28450
+ var align = this.parent.enableRtl ? "right:" + left + "px;" : "left:" + left + "px;";
27576
28451
  var weekendDiv = createElement('div', {
27577
- className: weekend, styles: "left:" + left + "px;width:" + width + "px;height:100%;"
28452
+ className: weekend, styles: align + " width:" + width + "px;height:100%;"
27578
28453
  });
27579
28454
  container.appendChild(weekendDiv);
27580
28455
  }
@@ -27647,7 +28522,7 @@ var EventMarker$1 = /** @__PURE__ @class */ (function () {
27647
28522
  this.eventMarkersContainer = createElement('div', {
27648
28523
  className: eventMarkersContainer
27649
28524
  });
27650
- this.eventMarkersContainer.setAttribute("role", "term");
28525
+ this.eventMarkersContainer.setAttribute('role', 'term');
27651
28526
  this.parent.ganttChartModule.chartBodyContent.appendChild(this.eventMarkersContainer);
27652
28527
  }
27653
28528
  this.eventMarkersContainer.innerHTML = '';
@@ -27680,8 +28555,15 @@ var EventMarker$1 = /** @__PURE__ @class */ (function () {
27680
28555
  var rightArrow;
27681
28556
  for (var i = 0; i < this.parent.eventMarkers.length; i++) {
27682
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
+ }
27683
28565
  eventMarkerElement = createElement('div', {
27684
- className: eventMarkersChild, styles: "left:" + left + "px; height:100%;",
28566
+ className: eventMarkersChild, styles: align + " height:100%;",
27685
28567
  id: 'stripline' + i
27686
28568
  });
27687
28569
  if (this.parent.eventMarkers[i].label) {
@@ -27690,6 +28572,12 @@ var EventMarker$1 = /** @__PURE__ @class */ (function () {
27690
28572
  });
27691
28573
  var property = this.parent.disableHtmlEncode ? 'textContent' : 'innerHTML';
27692
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
+ }
27693
28581
  eventMarkerElement.appendChild(spanElement);
27694
28582
  rightArrow = createElement('div', {
27695
28583
  className: 'e-gantt-right-arrow'
@@ -27868,7 +28756,7 @@ var CriticalPath = /** @__PURE__ @class */ (function () {
27868
28756
  }
27869
28757
  else {
27870
28758
  var currentRecords = this_1.parent.currentViewData.filter(function (data) {
27871
- return parseInt(data.ganttProperties.taskId) == checkBeyondEnddate_1[k];
28759
+ return parseInt(data.ganttProperties.taskId) === checkBeyondEnddate_1[k];
27872
28760
  });
27873
28761
  for (var i = 0; i < currentRecords.length; i++) {
27874
28762
  if (!currentRecords[i].hasChildRecords && currentRecords[i].ganttProperties.endDate >= this_1.maxEndDate) {
@@ -27906,10 +28794,10 @@ var CriticalPath = /** @__PURE__ @class */ (function () {
27906
28794
  var individualPredecessorLength = totalPredecessorsCollection[x].ganttProperties.predecessor.length;
27907
28795
  var taskid = ((totalPredecessorsCollection[x].ganttProperties.taskId));
27908
28796
  for (var y = 0; y < individualPredecessorLength; y++) {
27909
- if (!isNaN(Number(predecessor[y].from)) && typeof (taskid) != "string") {
28797
+ if (!isNaN(Number(predecessor[y].from)) && typeof (taskid) != 'string') {
27910
28798
  tempTaskId = parseInt((predecessor[y].from), 10);
27911
28799
  }
27912
- else if (!isNaN(Number(predecessor[y].from)) && typeof (taskid) === "string") {
28800
+ else if (!isNaN(Number(predecessor[y].from)) && typeof (taskid) === 'string') {
27913
28801
  tempTaskId = predecessor[y].from;
27914
28802
  }
27915
28803
  else {
@@ -27932,15 +28820,16 @@ var CriticalPath = /** @__PURE__ @class */ (function () {
27932
28820
  toPredecessor = toPredecessor + ',' + predecessor[y].type;
27933
28821
  }
27934
28822
  else {
27935
- to = to + ',' + predecessor[y].to + ':' + predecessor[y].offset + predecessor[y].offsetUnit;
28823
+ to = to + ',' + predecessor[y].to + ':' + predecessor[y].offset +
28824
+ predecessor[y].offsetUnit;
27936
28825
  toPredecessor = toPredecessor + ',' + predecessor[y].type;
27937
28826
  }
27938
28827
  }
27939
28828
  }
27940
- if (!isNaN(Number(predecessor[y].to)) && typeof (taskid) != "string") {
28829
+ if (!isNaN(Number(predecessor[y].to)) && typeof (taskid) != 'string') {
27941
28830
  tempTaskId = parseInt((predecessor[y].to), 10);
27942
28831
  }
27943
- else if (!isNaN(Number(predecessor[y].to)) && typeof (taskid) === "string") {
28832
+ else if (!isNaN(Number(predecessor[y].to)) && typeof (taskid) === 'string') {
27944
28833
  tempTaskId = predecessor[y].to;
27945
28834
  }
27946
28835
  else {
@@ -27953,7 +28842,8 @@ var CriticalPath = /** @__PURE__ @class */ (function () {
27953
28842
  fromPredecessor = predecessor[y].type;
27954
28843
  }
27955
28844
  else {
27956
- from = predecessor[y].from + ':' + predecessor[y].offset + predecessor[y].offsetUnit;
28845
+ from = predecessor[y].from + ':' + predecessor[y].offset +
28846
+ predecessor[y].offsetUnit;
27957
28847
  fromPredecessor = predecessor[y].type;
27958
28848
  }
27959
28849
  }
@@ -27963,7 +28853,8 @@ var CriticalPath = /** @__PURE__ @class */ (function () {
27963
28853
  fromPredecessor = fromPredecessor + ',' + predecessor[y].type;
27964
28854
  }
27965
28855
  else {
27966
- from = from + ',' + predecessor[y].from + ':' + predecessor[y].offset + predecessor[y].offsetUnit;
28856
+ from = from + ',' + predecessor[y].from + ':' + predecessor[y].offset +
28857
+ predecessor[y].offsetUnit;
27967
28858
  fromPredecessor = fromPredecessor + ',' + predecessor[y].type;
27968
28859
  }
27969
28860
  }
@@ -28090,7 +28981,8 @@ var CriticalPath = /** @__PURE__ @class */ (function () {
28090
28981
  }
28091
28982
  }
28092
28983
  // execute if the current calculated slack value is less than the previous slack value.
28093
- else if (collection[fromTaskIdIndex]['slack'] > dateDifference && collection[fromTaskIdIndex]['slack'] !== 0) {
28984
+ else if (collection[fromTaskIdIndex]['slack'] > dateDifference &&
28985
+ collection[fromTaskIdIndex]['slack'] !== 0) {
28094
28986
  // execute if the offset value is not given.
28095
28987
  if (fromDateArray1.length <= 1) {
28096
28988
  if (collection[totaskId]['slack'] + dateDifference < 0) {
@@ -28140,7 +29032,8 @@ var CriticalPath = /** @__PURE__ @class */ (function () {
28140
29032
  }
28141
29033
  }
28142
29034
  //It execute while already the slack value is set and it is higher than the datedifference.
28143
- else if (collection[fromTaskIdIndex]['slack'] > dateDifference && collection[fromTaskIdIndex]['slack'] !== 0) {
29035
+ else if (collection[fromTaskIdIndex]['slack'] > dateDifference &&
29036
+ collection[fromTaskIdIndex]['slack'] !== 0) {
28144
29037
  if (fromDateArray1.length <= 1) {
28145
29038
  if (collection[totaskId]['slack'] + dateDifference < 0) {
28146
29039
  collection[fromTaskIdIndex]['slack'] = 0;
@@ -28168,7 +29061,8 @@ var CriticalPath = /** @__PURE__ @class */ (function () {
28168
29061
  if (isNullOrUndefined(collection[fromTaskIdIndex]['slack'])) {
28169
29062
  collection[fromTaskIdIndex]['slack'] = dateDifference;
28170
29063
  }
28171
- else if (collection[fromTaskIdIndex]['slack'] > dateDifference && collection[fromTaskIdIndex]['slack'] !== 0) {
29064
+ else if (collection[fromTaskIdIndex]['slack'] > dateDifference &&
29065
+ collection[fromTaskIdIndex]['slack'] !== 0) {
28172
29066
  collection[fromTaskIdIndex]['slack'] = dateDifference;
28173
29067
  }
28174
29068
  }
@@ -28179,7 +29073,8 @@ var CriticalPath = /** @__PURE__ @class */ (function () {
28179
29073
  // calculate slack value for the task contains predecessor connection in "finish to finish".
28180
29074
  if (fromDataPredecessor[i] === 'FF') {
28181
29075
  // execute if the previous task is from finish to start or finish to finish state.
28182
- if (collection[totaskId]['fs'] === 1 || collection[totaskId]['ff'] === 1 || collection[totaskId]['fs'] === -1) {
29076
+ if (collection[totaskId]['fs'] === 1 || collection[totaskId]['ff'] === 1 ||
29077
+ collection[totaskId]['fs'] === -1) {
28183
29078
  if (collection[totaskId]['fs'] === 1 || collection[totaskId]['ff'] === 1) {
28184
29079
  prevTaskEnddate = toIdFlatData.endDate;
28185
29080
  ffslack = collection[totaskId]['slack'];
@@ -28482,7 +29377,7 @@ var CriticalPath = /** @__PURE__ @class */ (function () {
28482
29377
  }
28483
29378
  else {
28484
29379
  var currentRecords = this_2.parent.currentViewData.filter(function (data) {
28485
- return (data.ganttProperties.taskId).toString() == criticalPathIds[i].toString();
29380
+ return (data.ganttProperties.taskId).toString() === criticalPathIds[i].toString();
28486
29381
  });
28487
29382
  for (var i_1 = 0; i_1 < currentRecords.length; i_1++) {
28488
29383
  if (currentRecords[i_1].ganttProperties.isCritical || currentRecords[i_1].ganttProperties.endDate >= this_2.maxEndDate) {
@@ -28496,13 +29391,13 @@ var CriticalPath = /** @__PURE__ @class */ (function () {
28496
29391
  var columnFields = this_2.parent.taskFields;
28497
29392
  if (criticalData.parentItem) {
28498
29393
  var parentRecord = this_2.parent.currentViewData.filter(function (data) {
28499
- return criticalData.parentItem.uniqueID == data.uniqueID;
29394
+ return criticalData.parentItem.uniqueID === data.uniqueID;
28500
29395
  });
28501
29396
  var parentIndex = this_2.parent.currentViewData.indexOf(parentRecord[0]);
28502
29397
  var parentElement = this_2.parent.getRowByIndex(parentIndex);
28503
29398
  var parentTaskbarElement = parentElement.querySelectorAll('.e-taskbar-main-container');
28504
29399
  for (var i_2 = 0; i_2 < parentTaskbarElement.length; i_2++) {
28505
- if (parentTaskbarElement[i_2].getAttribute('rowuniqueid') == criticalData['rowUniqueID']) {
29400
+ if (parentTaskbarElement[i_2].getAttribute('rowuniqueid') === criticalData['rowUniqueID']) {
28506
29401
  addClass(parentTaskbarElement[i_2].querySelectorAll('.e-gantt-child-taskbar-inner-div'), criticalChildTaskBarInnerDiv);
28507
29402
  }
28508
29403
  }
@@ -28654,6 +29549,7 @@ var ContextMenu$2 = /** @__PURE__ @class */ (function () {
28654
29549
  this.contextMenu = new ContextMenu$1({
28655
29550
  items: this.getMenuItems(),
28656
29551
  locale: this.parent.locale,
29552
+ enableRtl: this.parent.enableRtl,
28657
29553
  target: target,
28658
29554
  animationSettings: { effect: 'None' },
28659
29555
  select: this.contextMenuItemClick.bind(this),
@@ -28795,6 +29691,12 @@ var ContextMenu$2 = /** @__PURE__ @class */ (function () {
28795
29691
  };
28796
29692
  // eslint-disable-next-line
28797
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
+ }
28798
29700
  _this.parent.chartRowsModule.splitTask(_this.rowData[taskSettings.id], currentClickedDate);
28799
29701
  });
28800
29702
  };
@@ -28816,6 +29718,12 @@ var ContextMenu$2 = /** @__PURE__ @class */ (function () {
28816
29718
  target: this.targetElement
28817
29719
  };
28818
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
+ }
28819
29727
  if (eventArgs.cancel === false) {
28820
29728
  _this.parent.chartRowsModule.mergeTask(_this.rowData[taskSettings.id], segmentIndexes);
28821
29729
  }
@@ -28824,12 +29732,30 @@ var ContextMenu$2 = /** @__PURE__ @class */ (function () {
28824
29732
  // eslint-disable-next-line
28825
29733
  ContextMenu$$1.prototype.getClickedDate = function (element) {
28826
29734
  // context menu click position
28827
- var ganttElementPosition = this.parent.getOffsetRect(this.parent.element);
29735
+ var ganttElementPositionLeft;
28828
29736
  // task left position
28829
- var pageLeft = ganttElementPosition.left + this.parent.ganttChartModule.chartElement.offsetLeft +
28830
- this.rowData.ganttProperties.left - this.parent.ganttChartModule.scrollElement.scrollLeft;
28831
- // difference from task start date to current click position.
28832
- var currentTaskDifference = this.clickedPosition - pageLeft;
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
+ }
28833
29759
  var splitTaskDuration = Math.ceil(currentTaskDifference / this.parent.perDayWidth);
28834
29760
  var startDate = this.rowData.ganttProperties.startDate;
28835
29761
  if (!isNullOrUndefined(this.parent.timelineSettings.bottomTier) && this.parent.timelineSettings.bottomTier.unit === 'Hour') {
@@ -29345,6 +30271,12 @@ var ExcelExport$1 = /** @__PURE__ @class */ (function () {
29345
30271
  var _this = this;
29346
30272
  this.parent.treeGrid.beforeExcelExport = function (args) {
29347
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
+ }
29348
30280
  };
29349
30281
  this.parent.treeGrid.excelQueryCellInfo = function (args) {
29350
30282
  _this.parent.trigger('excelQueryCellInfo', args);
@@ -29354,6 +30286,12 @@ var ExcelExport$1 = /** @__PURE__ @class */ (function () {
29354
30286
  };
29355
30287
  this.parent.treeGrid.excelExportComplete = function (args) {
29356
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
+ }
29357
30295
  };
29358
30296
  };
29359
30297
  return ExcelExport$$1;
@@ -29538,6 +30476,12 @@ var RowDD$1 = /** @__PURE__ @class */ (function () {
29538
30476
  if (!args.cancel) {
29539
30477
  args.requestType = 'beforeDrop';
29540
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
+ }
29541
30485
  if (!args.cancel) {
29542
30486
  this.dropRows(args, true); // method to update the data collections based on drop action
29543
30487
  args.cancel = true;
@@ -29765,7 +30709,7 @@ var RowDD$1 = /** @__PURE__ @class */ (function () {
29765
30709
  }
29766
30710
  var validateRecords = void 0;
29767
30711
  if (toParent_1.uniqueID === draggedParent.uniqueID || (draggedParent.parentItem &&
29768
- 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)) {
29769
30713
  validateRecords = this.parent.currentViewData.filter(function (data) {
29770
30714
  if ((data.ganttProperties.predecessor && data.ganttProperties.predecessor.length > 0)) {
29771
30715
  for (var i = 0; i < data.ganttProperties.predecessor.length; i++) {
@@ -30187,7 +31131,7 @@ var RowDD$1 = /** @__PURE__ @class */ (function () {
30187
31131
  }
30188
31132
  var idx = void 0;
30189
31133
  var ganttData = dataSource.length > 0 && this.parent.viewType !== 'ResourceView' ?
30190
- dataSource : this.parent.flatData;
31134
+ dataSource : this.parent.updatedRecords;
30191
31135
  for (var i = 0; i < ganttData.length; i++) {
30192
31136
  if (this.parent.viewType === 'ResourceView') {
30193
31137
  if (ganttData[i].ganttProperties.rowUniqueID === deletedRow.ganttProperties.rowUniqueID) {
@@ -30906,7 +31850,7 @@ var PdfTreeGridStyle = /** @__PURE__ @class */ (function () {
30906
31850
  return PdfTreeGridStyle;
30907
31851
  }());
30908
31852
 
30909
- var __extends$20 = (undefined && undefined.__extends) || (function () {
31853
+ var __extends$21 = (undefined && undefined.__extends) || (function () {
30910
31854
  var extendStatics = function (d, b) {
30911
31855
  extendStatics = Object.setPrototypeOf ||
30912
31856
  ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
@@ -30923,7 +31867,7 @@ var __extends$20 = (undefined && undefined.__extends) || (function () {
30923
31867
  *
30924
31868
  */
30925
31869
  var PdfTreeGridLayouter = /** @__PURE__ @class */ (function (_super) {
30926
- __extends$20(PdfTreeGridLayouter, _super);
31870
+ __extends$21(PdfTreeGridLayouter, _super);
30927
31871
  function PdfTreeGridLayouter(baseFormat) {
30928
31872
  var _this = _super.call(this, baseFormat) || this;
30929
31873
  _this.columnRanges = [];
@@ -31296,7 +32240,7 @@ var PdfTreeGridLayouter = /** @__PURE__ @class */ (function (_super) {
31296
32240
  return PdfTreeGridLayouter;
31297
32241
  }(ElementLayouter));
31298
32242
  var PdfTreeGridLayoutResult = /** @__PURE__ @class */ (function (_super) {
31299
- __extends$20(PdfTreeGridLayoutResult, _super);
32243
+ __extends$21(PdfTreeGridLayoutResult, _super);
31300
32244
  /**
31301
32245
  * Constructor
31302
32246
  *
@@ -31313,7 +32257,7 @@ var PdfTreeGridLayoutResult = /** @__PURE__ @class */ (function (_super) {
31313
32257
  * `PdfGridLayoutFormat` class represents a flexible grid that consists of columns and rows.
31314
32258
  */
31315
32259
  var PdfTreeGridLayoutFormat = /** @__PURE__ @class */ (function (_super) {
31316
- __extends$20(PdfTreeGridLayoutFormat, _super);
32260
+ __extends$21(PdfTreeGridLayoutFormat, _super);
31317
32261
  /**
31318
32262
  * Initializes a new instance of the `PdfGridLayoutFormat` class.
31319
32263
  *
@@ -31333,7 +32277,7 @@ var PdfTreeGridLayoutFormat = /** @__PURE__ @class */ (function (_super) {
31333
32277
  return PdfTreeGridLayoutFormat;
31334
32278
  }(PdfLayoutFormat));
31335
32279
 
31336
- var __extends$21 = (undefined && undefined.__extends) || (function () {
32280
+ var __extends$22 = (undefined && undefined.__extends) || (function () {
31337
32281
  var extendStatics = function (d, b) {
31338
32282
  extendStatics = Object.setPrototypeOf ||
31339
32283
  ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
@@ -31350,7 +32294,7 @@ var __extends$21 = (undefined && undefined.__extends) || (function () {
31350
32294
  * PdfTreeGrid Class for EJ2-PDF
31351
32295
  */
31352
32296
  var PdfTreeGrid = /** @__PURE__ @class */ (function (_super) {
31353
- __extends$21(PdfTreeGrid, _super);
32297
+ __extends$22(PdfTreeGrid, _super);
31354
32298
  function PdfTreeGrid() {
31355
32299
  var _this = _super.call(this) || this;
31356
32300
  _this.treeGridSize = new SizeF(0, 0);
@@ -33774,217 +34718,215 @@ var PdfGanttPredecessor = /** @__PURE__ @class */ (function () {
33774
34718
  var childPageData;
33775
34719
  var parentY = 0;
33776
34720
  var childY = 0;
33777
- if (childTask && parentTask) {
33778
- switch (this.type) {
33779
- case 'FS':
33780
- if (childTask.startPage > -1 && parentTask.endPage > -1) {
33781
- startPage = pages[parentTask.endPage];
33782
- endPage = pages[childTask.startPage];
33783
- parentPageData = pdfGantt.pdfPageDetail[parentTask.endPage - pdfGantt.chartPageIndex];
33784
- childPageData = pdfGantt.pdfPageDetail[childTask.startPage - pdfGantt.chartPageIndex];
33785
- if (this.parentIndex < this.childIndex) {
33786
- if (this.parentLeft < this.childLeft && this.childLeft > (this.parentLeft + this.parentWidth + 25)) {
33787
- predecessorType = 'FSType1';
33788
- }
33789
- else {
33790
- predecessorType = 'FSType2';
33791
- }
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';
33792
34731
  }
33793
34732
  else {
33794
- if (this.parentLeft < this.childLeft && this.childLeft > (this.parentLeft + this.parentWidth + 25)) {
33795
- predecessorType = 'FSType3';
33796
- }
33797
- else {
33798
- predecessorType = 'FSType4';
33799
- }
34733
+ predecessorType = 'FSType2';
33800
34734
  }
33801
34735
  }
33802
34736
  else {
33803
- return;
34737
+ if (this.parentLeft < this.childLeft && this.childLeft > (this.parentLeft + this.parentWidth + 25)) {
34738
+ predecessorType = 'FSType3';
34739
+ }
34740
+ else {
34741
+ predecessorType = 'FSType4';
34742
+ }
33804
34743
  }
33805
- break;
33806
- case 'SF':
33807
- if (childTask.endPage > -1 && parentTask.startPage > -1) {
33808
- startPage = pages[parentTask.startPage];
33809
- endPage = pages[childTask.endPage];
33810
- parentPageData = pdfGantt.pdfPageDetail[parentTask.endPage - pdfGantt.chartPageIndex];
33811
- childPageData = pdfGantt.pdfPageDetail[childTask.startPage - pdfGantt.chartPageIndex];
33812
- if (this.parentIndex < this.childIndex) {
33813
- if (this.parentLeft > this.childLeft + this.childWidth) {
33814
- predecessorType = 'SFType1';
33815
- }
33816
- else {
33817
- predecessorType = 'SFType2';
33818
- }
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';
33819
34758
  }
33820
34759
  else {
33821
- if (this.parentLeft > this.childLeft + this.childWidth) {
33822
- predecessorType = 'SFType3';
33823
- }
33824
- else {
33825
- predecessorType = 'SFType4';
33826
- }
34760
+ predecessorType = 'SFType2';
33827
34761
  }
33828
34762
  }
33829
34763
  else {
33830
- return;
34764
+ if (this.parentLeft > this.childLeft + this.childWidth) {
34765
+ predecessorType = 'SFType3';
34766
+ }
34767
+ else {
34768
+ predecessorType = 'SFType4';
34769
+ }
33831
34770
  }
33832
- break;
33833
- case 'FF':
33834
- if (childTask.endPage > -1 && parentTask.endPage > -1) {
33835
- startPage = pages[parentTask.endPage];
33836
- endPage = pages[childTask.endPage];
33837
- parentPageData = pdfGantt.pdfPageDetail[parentTask.endPage - pdfGantt.chartPageIndex];
33838
- childPageData = pdfGantt.pdfPageDetail[childTask.endPage - pdfGantt.chartPageIndex];
33839
- if (this.parentIndex < this.childIndex) {
33840
- if ((this.childLeft + this.childWidth) >= (this.parentLeft + this.parentWidth)) {
33841
- predecessorType = 'FFType1';
33842
- }
33843
- else {
33844
- predecessorType = 'FFType2';
33845
- }
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';
33846
34785
  }
33847
34786
  else {
33848
- if ((this.childLeft + this.childWidth) >= (this.parentLeft + this.parentWidth)) {
33849
- predecessorType = 'FFType3';
33850
- }
33851
- else {
33852
- predecessorType = 'FFType4';
33853
- }
34787
+ predecessorType = 'FFType2';
33854
34788
  }
33855
34789
  }
33856
34790
  else {
33857
- return;
34791
+ if ((this.childLeft + this.childWidth) >= (this.parentLeft + this.parentWidth)) {
34792
+ predecessorType = 'FFType3';
34793
+ }
34794
+ else {
34795
+ predecessorType = 'FFType4';
34796
+ }
33858
34797
  }
33859
- break;
33860
- case 'SS':
33861
- if (childTask.startPage > -1 && parentTask.startPage > -1) {
33862
- startPage = pages[parentTask.startPage];
33863
- endPage = pages[childTask.startPage];
33864
- parentPageData = pdfGantt.pdfPageDetail[parentTask.startPage - pdfGantt.chartPageIndex];
33865
- childPageData = pdfGantt.pdfPageDetail[childTask.startPage - pdfGantt.chartPageIndex];
33866
- if (this.parentIndex < this.childIndex) {
33867
- if (this.parentLeft >= this.childLeft) {
33868
- predecessorType = 'SSType1';
33869
- }
33870
- else {
33871
- predecessorType = 'SSType2';
33872
- }
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';
33873
34812
  }
33874
34813
  else {
33875
- if (this.parentLeft >= this.childLeft) {
33876
- predecessorType = 'SSType3';
33877
- }
33878
- else {
33879
- predecessorType = 'SSType4';
33880
- }
34814
+ predecessorType = 'SSType2';
33881
34815
  }
33882
34816
  }
33883
34817
  else {
33884
- return;
34818
+ if (this.parentLeft >= this.childLeft) {
34819
+ predecessorType = 'SSType3';
34820
+ }
34821
+ else {
34822
+ predecessorType = 'SSType4';
34823
+ }
33885
34824
  }
33886
- break;
33887
- }
33888
- var midPoint = Math.round((this.parent.rowHeight - 1) / 2.0);
33889
- midPoint = pixelToPoint(midPoint);
33890
- /* eslint-disable-next-line */
33891
- var point1 = void 0, point2 = void 0, point3 = void 0, point4 = void 0, point5 = void 0, point6 = void 0;
33892
- point1 = point2 = point3 = point4 = point5 = point6 = new PointF();
33893
- var parentTaskpoint = __assign$4({}, parentTask.taskStartPoint);
33894
- var childTaskpoint = __assign$4({}, childTask.taskStartPoint);
33895
- parentY = parentTaskpoint.y + parentPageData.startPoint.y;
33896
- childY = childTaskpoint.y + childPageData.startPoint.y;
33897
- var ffpoint1 = new PointF(pixelToPoint(this.parentLeft + this.parentWidth), parentY + midPoint);
33898
- var sspoint1 = new PointF(pixelToPoint(this.parentLeft) - 1, parentY + midPoint);
33899
- var ffpoint3 = new PointF(pixelToPoint(this.childLeft - 20), childY + midPoint);
33900
- var ffpoint4 = new PointF(pixelToPoint(this.childLeft - 6 - this.lineWidth) - 1, childY + midPoint);
33901
- var sspoint4 = new PointF(pixelToPoint(this.childLeft + this.childWidth + 6 + this.lineWidth) + 1, childY + midPoint);
33902
- switch (predecessorType) {
33903
- case 'FSType1':
33904
- case 'FSType3':
33905
- point1 = ffpoint1;
33906
- point2 = new PointF(pixelToPoint(this.childLeft - 20), parentY + midPoint);
33907
- point3 = ffpoint3;
33908
- point4 = ffpoint4;
33909
- this.connectLines(startPage, endPage, point1, point2, point3, point4, childTask, midPoint);
33910
- break;
33911
- case 'FSType2':
33912
- point1 = ffpoint1;
33913
- point2 = new PointF(point1.x + 10, parentY + midPoint);
33914
- point3 = new PointF(point1.x + 10, childY + 2);
33915
- point4 = new PointF(pixelToPoint(this.childLeft - 20), childY + 2);
33916
- point5 = ffpoint3;
33917
- point6 = ffpoint4;
33918
- this.connectLines(startPage, endPage, point1, point2, point3, point4, childTask, midPoint, point5, point6);
33919
- break;
33920
- case 'FSType4':
33921
- point1 = ffpoint1;
33922
- point2 = new PointF(point1.x + 10, parentY + midPoint);
33923
- point3 = new PointF(point1.x + 10, parentY + 2);
33924
- point4 = new PointF(pixelToPoint(this.childLeft - 20), parentY + 2);
33925
- point5 = ffpoint3;
33926
- point6 = ffpoint4;
33927
- this.connectLines(startPage, endPage, point1, point2, point3, point4, childTask, midPoint, point5, point6);
33928
- break;
33929
- case 'FFType1':
33930
- case 'FFType3':
33931
- point1 = new PointF(pixelToPoint(this.parentLeft + this.parentWidth) + 1, parentY + midPoint);
33932
- point2 = new PointF(pixelToPoint(this.childLeft + this.childWidth + 20), parentY + midPoint);
33933
- point3 = new PointF(point2.x, childY + midPoint);
33934
- point4 = sspoint4;
33935
- this.connectLines(startPage, endPage, point1, point2, point3, point4, childTask, midPoint);
33936
- break;
33937
- case 'FFType2':
33938
- case 'FFType4':
33939
- point1 = new PointF(pixelToPoint(this.parentLeft + this.parentWidth) + 1, parentY + midPoint);
33940
- point2 = new PointF(pixelToPoint(this.parentLeft + this.parentWidth + 20), parentY + midPoint);
33941
- point3 = new PointF(point2.x, childY + midPoint);
33942
- point4 = sspoint4;
33943
- this.connectLines(startPage, endPage, point1, point2, point3, point4, childTask, midPoint);
33944
- break;
33945
- case 'SSType1':
33946
- case 'SSType3':
33947
- point1 = sspoint1;
33948
- point2 = new PointF(pixelToPoint(this.childLeft - 20), parentY + midPoint);
33949
- point3 = new PointF(point2.x, childY + midPoint);
33950
- point4 = ffpoint4;
33951
- this.connectLines(startPage, endPage, point1, point2, point3, point4, childTask, midPoint);
33952
- break;
33953
- case 'SSType2':
33954
- case 'SSType4':
33955
- point1 = sspoint1;
33956
- point2 = new PointF(pixelToPoint(this.parentLeft - 20), parentY + midPoint);
33957
- point3 = new PointF(point2.x, childY + midPoint);
33958
- point4 = ffpoint4;
33959
- this.connectLines(startPage, endPage, point1, point2, point3, point4, childTask, midPoint);
33960
- break;
33961
- case 'SFType1':
33962
- case 'SFType3':
33963
- point1 = sspoint1;
33964
- point2 = new PointF(pixelToPoint(this.childLeft + this.childWidth + 20), parentY + midPoint);
33965
- point3 = new PointF(point2.x, childY + midPoint);
33966
- point4 = sspoint4;
33967
- this.connectLines(startPage, endPage, point1, point2, point3, point4, childTask, midPoint);
33968
- break;
33969
- case 'SFType2':
33970
- point1 = sspoint1;
33971
- point2 = new PointF(pixelToPoint(this.parentLeft - 20), parentY + midPoint);
33972
- point3 = new PointF(point2.x, childY + 2);
33973
- point4 = new PointF(pixelToPoint(this.childLeft + this.childWidth + 20), childY + 2);
33974
- point5 = new PointF(point4.x, childY + midPoint);
33975
- point6 = sspoint4;
33976
- this.connectLines(startPage, endPage, point1, point2, point3, point4, childTask, midPoint, point5, point6);
33977
- break;
33978
- case 'SFType4':
33979
- point1 = sspoint1;
33980
- point2 = new PointF(pixelToPoint(this.parentLeft - 20), parentY + midPoint);
33981
- point3 = new PointF(point2.x, parentY + 2);
33982
- point4 = new PointF(pixelToPoint(this.childLeft + this.childWidth + 20), parentY + 2);
33983
- point5 = new PointF(point4.x, childY + midPoint);
33984
- point6 = sspoint4;
33985
- this.connectLines(startPage, endPage, point1, point2, point3, point4, childTask, midPoint, point5, point6);
33986
- break;
33987
- }
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;
33988
34930
  }
33989
34931
  };
33990
34932
  /**
@@ -34166,7 +35108,7 @@ var PdfGanttPredecessor = /** @__PURE__ @class */ (function () {
34166
35108
  return PdfGanttPredecessor;
34167
35109
  }());
34168
35110
 
34169
- var __extends$22 = (undefined && undefined.__extends) || (function () {
35111
+ var __extends$23 = (undefined && undefined.__extends) || (function () {
34170
35112
  var extendStatics = function (d, b) {
34171
35113
  extendStatics = Object.setPrototypeOf ||
34172
35114
  ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
@@ -34194,7 +35136,7 @@ var __assign$2 = (undefined && undefined.__assign) || function () {
34194
35136
  *
34195
35137
  */
34196
35138
  var PdfGantt = /** @__PURE__ @class */ (function (_super) {
34197
- __extends$22(PdfGantt, _super);
35139
+ __extends$23(PdfGantt, _super);
34198
35140
  function PdfGantt(parent) {
34199
35141
  var _this = _super.call(this) || this;
34200
35142
  _this.exportProps = {};
@@ -34501,6 +35443,12 @@ var PdfExport = /** @__PURE__ @class */ (function () {
34501
35443
  cancel: false
34502
35444
  };
34503
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
+ }
34504
35452
  if (getValue('cancel', args)) {
34505
35453
  /* eslint-disable-next-line */
34506
35454
  return new Promise(function (resolve, reject) {
@@ -34533,6 +35481,12 @@ var PdfExport = /** @__PURE__ @class */ (function () {
34533
35481
  }
34534
35482
  this.processExport(data, pdfExportProperties, isMultipleExport).then(function () {
34535
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
+ }
34536
35490
  resolve(_this.pdfDocument);
34537
35491
  });
34538
35492
  };
@@ -34723,5 +35677,5 @@ var VirtualScroll$1 = /** @__PURE__ @class */ (function () {
34723
35677
  * Gantt index file
34724
35678
  */
34725
35679
 
34726
- export { Gantt, PdfHorizontalOverflowType, parentsUntil$1 as parentsUntil, isScheduledTask, isCountRequired, getSwapKey, isRemoteData, getTaskData, updateDates, formatString, getIndex, pixelToPoint, pointToPixel, getUid$1 as getUid, load, rowDataBound, queryCellInfo, toolbarClick, keyPressed, Edit$2 as Edit, Reorder$1 as Reorder, Resize$1 as Resize, Filter$1 as Filter, Sort$1 as Sort, Dependency, Selection$1 as Selection, Toolbar$3 as Toolbar, DayMarkers, CriticalPath, ContextMenu$2 as ContextMenu, ExcelExport$1 as ExcelExport, ColumnMenu$1 as ColumnMenu, RowDD$1 as RowDD, PdfExport, VirtualScroll$1 as VirtualScroll, Column, DayWorkingTime, AddDialogFieldSettings, EditDialogFieldSettings, EditSettings, EventMarker, FilterSettings, SearchSettings, Holiday, LabelSettings, SelectionSettings, SplitterSettings, TaskFields, TimelineTierSettings, TimelineSettings, TooltipSettings, SortDescriptor, SortSettings, ResourceFields };
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 };
34727
35681
  //# sourceMappingURL=ej2-gantt.es5.js.map