@syncfusion/ej2-gantt 20.3.60 → 20.4.38
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintrc.json +16 -1
- package/CHANGELOG.md +14 -0
- package/dist/ej2-gantt.min.js +2 -2
- package/dist/ej2-gantt.umd.min.js +2 -2
- package/dist/ej2-gantt.umd.min.js.map +1 -1
- package/dist/es6/ej2-gantt.es2015.js +1422 -476
- package/dist/es6/ej2-gantt.es2015.js.map +1 -1
- package/dist/es6/ej2-gantt.es5.js +1448 -484
- package/dist/es6/ej2-gantt.es5.js.map +1 -1
- package/dist/global/ej2-gantt.min.js +2 -2
- package/dist/global/ej2-gantt.min.js.map +1 -1
- package/dist/global/index.d.ts +1 -1
- package/package.json +19 -18
- package/src/gantt/actions/chart-scroll.d.ts +5 -1
- package/src/gantt/actions/chart-scroll.js +39 -1
- package/src/gantt/actions/connector-line-edit.js +2 -0
- package/src/gantt/actions/context-menu.js +36 -5
- package/src/gantt/actions/critical-path.d.ts +2 -2
- package/src/gantt/actions/critical-path.js +23 -16
- package/src/gantt/actions/dialog-edit.js +37 -14
- package/src/gantt/actions/edit.d.ts +1 -0
- package/src/gantt/actions/edit.js +156 -34
- package/src/gantt/actions/excel-export.js +13 -0
- package/src/gantt/actions/filter.js +3 -0
- package/src/gantt/actions/keyboard.js +1 -0
- package/src/gantt/actions/pdf-export.js +12 -0
- package/src/gantt/actions/rowdragdrop.js +8 -2
- package/src/gantt/actions/taskbar-edit.js +140 -43
- package/src/gantt/actions/toolbar.js +21 -1
- package/src/gantt/base/date-processor.js +5 -1
- package/src/gantt/base/gantt-chart.js +38 -4
- package/src/gantt/base/gantt-model.d.ts +25 -2
- package/src/gantt/base/gantt.d.ts +64 -21
- package/src/gantt/base/gantt.js +396 -26
- package/src/gantt/base/interface.d.ts +0 -4
- package/src/gantt/base/splitter.js +12 -2
- package/src/gantt/base/task-processor.js +4 -3
- package/src/gantt/base/tree-grid.js +37 -0
- package/src/gantt/base/utils.js +1 -0
- package/src/gantt/export/pdf-connector-line.js +185 -187
- package/src/gantt/models/loading-indicator-model.d.ts +20 -0
- package/src/gantt/models/loading-indicator.d.ts +18 -0
- package/src/gantt/models/loading-indicator.js +34 -0
- package/src/gantt/models/models.d.ts +2 -0
- package/src/gantt/models/models.js +1 -0
- package/src/gantt/renderer/chart-rows.js +75 -30
- package/src/gantt/renderer/connector-line.js +100 -97
- package/src/gantt/renderer/edit-tooltip.js +22 -3
- package/src/gantt/renderer/event-marker.js +15 -2
- package/src/gantt/renderer/nonworking-day.js +4 -2
- package/src/gantt/renderer/timeline.js +21 -1
- package/src/gantt/renderer/tooltip.js +1 -0
- package/styles/bootstrap-dark.css +179 -12
- package/styles/bootstrap.css +179 -12
- package/styles/bootstrap4.css +178 -10
- package/styles/bootstrap5-dark.css +178 -10
- package/styles/bootstrap5.css +178 -10
- package/styles/fabric-dark.css +179 -12
- package/styles/fabric.css +179 -12
- package/styles/fluent-dark.css +180 -10
- package/styles/fluent.css +180 -10
- package/styles/gantt/_bootstrap-dark-definition.scss +6 -2
- package/styles/gantt/_bootstrap-definition.scss +6 -3
- package/styles/gantt/_bootstrap4-definition.scss +6 -3
- package/styles/gantt/_bootstrap5-definition.scss +6 -3
- package/styles/gantt/_fabric-dark-definition.scss +6 -3
- package/styles/gantt/_fabric-definition.scss +6 -3
- package/styles/gantt/_fluent-definition.scss +6 -3
- package/styles/gantt/_fusionnew-definition.scss +6 -3
- package/styles/gantt/_highcontrast-definition.scss +7 -4
- package/styles/gantt/_highcontrast-light-definition.scss +6 -3
- package/styles/gantt/_layout.scss +234 -21
- package/styles/gantt/_material-dark-definition.scss +6 -3
- package/styles/gantt/_material-definition.scss +6 -3
- package/styles/gantt/_material3-definition.scss +6 -3
- package/styles/gantt/_tailwind-definition.scss +6 -3
- package/styles/gantt/_theme.scss +17 -8
- package/styles/gantt/bootstrap-dark.css +179 -12
- package/styles/gantt/bootstrap.css +179 -12
- package/styles/gantt/bootstrap4.css +178 -10
- package/styles/gantt/bootstrap5-dark.css +178 -10
- package/styles/gantt/bootstrap5.css +178 -10
- package/styles/gantt/fabric-dark.css +179 -12
- package/styles/gantt/fabric.css +179 -12
- package/styles/gantt/fluent-dark.css +180 -10
- package/styles/gantt/fluent.css +180 -10
- package/styles/gantt/highcontrast-light.css +178 -10
- package/styles/gantt/highcontrast.css +179 -12
- package/styles/gantt/icons/_bootstrap-dark.scss +1 -1
- package/styles/gantt/icons/_bootstrap.scss +1 -1
- package/styles/gantt/icons/_fabric-dark.scss +1 -1
- package/styles/gantt/icons/_fabric.scss +1 -1
- package/styles/gantt/icons/_highcontrast.scss +1 -1
- package/styles/gantt/icons/_material-dark.scss +1 -1
- package/styles/gantt/icons/_material.scss +1 -1
- package/styles/gantt/material-dark.css +177 -12
- package/styles/gantt/material.css +179 -12
- package/styles/gantt/tailwind-dark.css +178 -10
- package/styles/gantt/tailwind.css +178 -10
- package/styles/highcontrast-light.css +178 -10
- package/styles/highcontrast.css +179 -12
- package/styles/material-dark.css +177 -12
- package/styles/material.css +179 -12
- package/styles/tailwind-dark.css +178 -10
- package/styles/tailwind.css +178 -10
|
@@ -149,6 +149,7 @@ function updateDates(record, parent) {
|
|
|
149
149
|
function formatString(str, args) {
|
|
150
150
|
let regx;
|
|
151
151
|
for (let i = 0; i < args.length; i++) {
|
|
152
|
+
// eslint-disable-next-line detect-non-literal-regexp
|
|
152
153
|
regx = new RegExp('\\{' + (i) + '\\}', 'gm');
|
|
153
154
|
str = str.replace(regx, args[i].toString());
|
|
154
155
|
}
|
|
@@ -413,6 +414,10 @@ class DateProcessor {
|
|
|
413
414
|
}
|
|
414
415
|
}
|
|
415
416
|
}
|
|
417
|
+
if (ganttProp && ganttProp.baselineStartDate && cloneDate &&
|
|
418
|
+
ganttProp.baselineStartDate.getTime() > cloneDate.getTime()) {
|
|
419
|
+
cloneDate.setDate(cloneDate.getDate() + 1);
|
|
420
|
+
}
|
|
416
421
|
return cloneDate;
|
|
417
422
|
}
|
|
418
423
|
}
|
|
@@ -483,7 +488,7 @@ class DateProcessor {
|
|
|
483
488
|
tDuration = this.parent.editModule.taskbarEditModule.sumOfDuration(ganttProperties.segments);
|
|
484
489
|
}
|
|
485
490
|
else {
|
|
486
|
-
if (!isNullOrUndefined(ganttProperties.startDate) && !isNullOrUndefined(ganttProperties.endDate) &&
|
|
491
|
+
if ((!isNullOrUndefined(this.parent.taskFields.milestone)) && (!isNullOrUndefined(ganttProperties.startDate)) && !isNullOrUndefined(ganttProperties.endDate) &&
|
|
487
492
|
(ganttProperties.startDate).getTime() === (ganttProperties.endDate).getTime() && !isNullOrUndefined(ganttData.taskData[this.parent.taskFields.milestone])) {
|
|
488
493
|
tDuration = 1;
|
|
489
494
|
}
|
|
@@ -1846,7 +1851,6 @@ class TaskProcessor extends DateProcessor {
|
|
|
1846
1851
|
this.parent.setRecordValue('parentId', data[taskSettings.parentID], ganttProperties, true);
|
|
1847
1852
|
}
|
|
1848
1853
|
this.addCustomFieldValue(data, ganttData);
|
|
1849
|
-
ganttData.checkboxState = 'uncheck';
|
|
1850
1854
|
this.parent.setRecordValue('isAutoSchedule', autoSchedule, ganttProperties, true);
|
|
1851
1855
|
this.parent.setRecordValue('resourceInfo', this.setResourceInfo(data), ganttProperties, true);
|
|
1852
1856
|
this.parent.setRecordValue('isMilestone', false, ganttProperties, true);
|
|
@@ -2037,8 +2041,10 @@ class TaskProcessor extends DateProcessor {
|
|
|
2037
2041
|
taskData.push(this.setSegmentTaskData(segment, segments[i]));
|
|
2038
2042
|
}
|
|
2039
2043
|
this.parent.setRecordValue('duration', sumOfDuration, data.ganttProperties, true);
|
|
2040
|
-
|
|
2041
|
-
|
|
2044
|
+
if (!isNullOrUndefined(ganttSegments[ganttSegments.length - 1])) {
|
|
2045
|
+
this.parent.setRecordValue('endDate', ganttSegments[ganttSegments.length - 1].endDate, data.ganttProperties, true);
|
|
2046
|
+
}
|
|
2047
|
+
if (!isNullOrUndefined(taskSettings.endDate) && !isNullOrUndefined(ganttSegments[ganttSegments.length - 1])) {
|
|
2042
2048
|
this.parent.setRecordValue(this.parent.taskFields.endDate, ganttSegments[ganttSegments.length - 1].endDate, data, true);
|
|
2043
2049
|
}
|
|
2044
2050
|
this.parent.setRecordValue('taskData.' + this.parent.taskFields.segments, taskData, data);
|
|
@@ -3955,6 +3961,8 @@ class ChartScroll {
|
|
|
3955
3961
|
addEventListeners() {
|
|
3956
3962
|
this.parent.on('grid-scroll', this.gridScrollHandler, this);
|
|
3957
3963
|
EventHandler.add(this.element, 'scroll', this.onScroll, this);
|
|
3964
|
+
this.parent.treeGrid.grid.on('showGanttShimmer', this.updateShimmer, this);
|
|
3965
|
+
this.parent.treeGrid.grid.on('removeGanttShimmer', this.removeShimmer, this);
|
|
3958
3966
|
}
|
|
3959
3967
|
/**
|
|
3960
3968
|
* Unbind events
|
|
@@ -3964,6 +3972,8 @@ class ChartScroll {
|
|
|
3964
3972
|
removeEventListeners() {
|
|
3965
3973
|
EventHandler.remove(this.element, 'scroll', this.onScroll);
|
|
3966
3974
|
this.parent.off('grid-scroll', this.gridScrollHandler);
|
|
3975
|
+
this.parent.treeGrid.grid.off('showGanttShimmer', this.updateShimmer);
|
|
3976
|
+
this.parent.treeGrid.grid.off('removeGanttShimmer', this.removeShimmer);
|
|
3967
3977
|
}
|
|
3968
3978
|
/**
|
|
3969
3979
|
*
|
|
@@ -4009,6 +4019,27 @@ class ChartScroll {
|
|
|
4009
4019
|
this.parent.chartVerticalLineContainer.style.top = formatUnit(scrollTop);
|
|
4010
4020
|
}
|
|
4011
4021
|
}
|
|
4022
|
+
removeShimmer() {
|
|
4023
|
+
let parent = this.parent;
|
|
4024
|
+
setTimeout(function () {
|
|
4025
|
+
parent.hideMaskRow();
|
|
4026
|
+
}, 0);
|
|
4027
|
+
}
|
|
4028
|
+
;
|
|
4029
|
+
updateShimmer() {
|
|
4030
|
+
let parent = this.parent;
|
|
4031
|
+
setTimeout(function () {
|
|
4032
|
+
parent.showMaskRow();
|
|
4033
|
+
}, 0);
|
|
4034
|
+
}
|
|
4035
|
+
updateSpinner() {
|
|
4036
|
+
let parent = this.parent;
|
|
4037
|
+
this.parent.showSpinner();
|
|
4038
|
+
window.clearTimeout(this.isScrolling);
|
|
4039
|
+
this.isScrolling = setTimeout(function () {
|
|
4040
|
+
parent.hideSpinner();
|
|
4041
|
+
}, 200);
|
|
4042
|
+
}
|
|
4012
4043
|
/**
|
|
4013
4044
|
* Scroll event handler
|
|
4014
4045
|
*
|
|
@@ -4034,6 +4065,16 @@ class ChartScroll {
|
|
|
4034
4065
|
scrollArgs.scrollDirection = 'Horizontal';
|
|
4035
4066
|
scrollArgs.action = 'HorizontalScroll';
|
|
4036
4067
|
}
|
|
4068
|
+
if ((scrollArgs.scrollDirection != 'Horizontal' && !isNullOrUndefined(scrollArgs.scrollDirection)) && this.parent.enableVirtualization === true && (this.parent.isToolBarClick
|
|
4069
|
+
|| isNullOrUndefined(this.parent.isToolBarClick))) {
|
|
4070
|
+
this.parent.isVirtualScroll = true;
|
|
4071
|
+
if (this.parent.showIndicator || isNullOrUndefined(this.parent.showIndicator)) {
|
|
4072
|
+
if (!this.parent.enableVirtualMaskRow && this.parent.enableVirtualization && this.parent.loadingIndicator.indicatorType === "Spinner") {
|
|
4073
|
+
this.updateSpinner();
|
|
4074
|
+
}
|
|
4075
|
+
}
|
|
4076
|
+
}
|
|
4077
|
+
this.parent.isToolBarClick = true;
|
|
4037
4078
|
scrollArgs.requestType = 'scroll';
|
|
4038
4079
|
this.parent.trigger('actionComplete', scrollArgs);
|
|
4039
4080
|
}
|
|
@@ -4074,7 +4115,10 @@ class ChartScroll {
|
|
|
4074
4115
|
* @param {number} scrollLeft - To set scroll left for scroll container
|
|
4075
4116
|
* @returns {void} .
|
|
4076
4117
|
*/
|
|
4077
|
-
setScrollLeft(scrollLeft) {
|
|
4118
|
+
setScrollLeft(scrollLeft, leftSign) {
|
|
4119
|
+
if (leftSign) {
|
|
4120
|
+
scrollLeft = leftSign == -1 && this.parent.enableRtl ? -scrollLeft : scrollLeft;
|
|
4121
|
+
}
|
|
4078
4122
|
this.element.scrollLeft = scrollLeft;
|
|
4079
4123
|
this.parent.ganttChartModule.chartTimelineContainer.scrollLeft = this.element.scrollLeft;
|
|
4080
4124
|
this.previousScroll.left = this.element.scrollLeft;
|
|
@@ -4221,6 +4265,21 @@ class GanttChart {
|
|
|
4221
4265
|
this.parent.predecessorModule.createConnectorLinesCollection();
|
|
4222
4266
|
}
|
|
4223
4267
|
this.parent.connectorLineModule.renderConnectorLines(this.parent.updatedConnectorLineCollection);
|
|
4268
|
+
for (let i = 0; i < this.parent.chartRowsModule.ganttChartTableBody.children.length; i++) {
|
|
4269
|
+
if (this.parent.chartRowsModule.ganttChartTableBody.children[i].children[0].children[1].children[4]) {
|
|
4270
|
+
this.parent.chartRowsModule.ganttChartTableBody.children[i].children[0].children[1].children[1].setAttribute('tabindex', '-1');
|
|
4271
|
+
this.parent.chartRowsModule.ganttChartTableBody.children[i].children[0].children[1].children[2].setAttribute('tabindex', '-1');
|
|
4272
|
+
this.parent.chartRowsModule.ganttChartTableBody.children[i].children[0].children[1].children[4].setAttribute('tabindex', '-1');
|
|
4273
|
+
}
|
|
4274
|
+
else {
|
|
4275
|
+
if (this.parent.viewType === 'ProjectView') {
|
|
4276
|
+
this.parent.chartRowsModule.ganttChartTableBody.children[i].children[0].children[1].children[1].setAttribute('tabindex', '-1');
|
|
4277
|
+
}
|
|
4278
|
+
else if (this.parent.chartRowsModule.ganttChartTableBody.children[i].children[0].children[1].children[0]) {
|
|
4279
|
+
this.parent.chartRowsModule.ganttChartTableBody.children[i].children[0].children[1].children[0].setAttribute('tabindex', '-1');
|
|
4280
|
+
}
|
|
4281
|
+
}
|
|
4282
|
+
}
|
|
4224
4283
|
if (this.parent.enableCriticalPath) {
|
|
4225
4284
|
let crtiticalModule = this.parent.criticalPathModule;
|
|
4226
4285
|
this.parent.criticalPathModule.criticalConnectorLine(crtiticalModule.criticalPathCollection, crtiticalModule.detailPredecessorCollection, this.parent.enableCriticalPath, crtiticalModule.predecessorCollectionTaskIds);
|
|
@@ -4284,13 +4343,15 @@ class GanttChart {
|
|
|
4284
4343
|
for (let i = 0; i < rangeCollection.length; i++) {
|
|
4285
4344
|
const height = this.getRangeHeight(currentRecord);
|
|
4286
4345
|
const leftDiv = createElement('div', {
|
|
4287
|
-
className: rangeChildContainer + ' ' + 'e-leftarc', styles:
|
|
4346
|
+
className: rangeChildContainer + ' ' + 'e-leftarc', styles: (this.parent.enableRtl ? 'right:' : 'left:') +
|
|
4347
|
+
`${(this.parent.enableRtl ? rangeCollection[i].left + rangeCollection[i].width - 5 : rangeCollection[i].left)}px;
|
|
4288
4348
|
top: ${Math.floor((this.parent.rowHeight - this.parent.chartRowsModule.taskBarHeight) / 2)}px;
|
|
4289
4349
|
height: ${height + 1}px; border-right: 0px`
|
|
4290
4350
|
});
|
|
4291
4351
|
const rightDiv = createElement('div', {
|
|
4292
4352
|
className: rangeChildContainer + ' ' + 'e-rightarc',
|
|
4293
|
-
styles:
|
|
4353
|
+
styles: (this.parent.enableRtl ? 'right:' : 'left:') + `${(this.parent.enableRtl ? rangeCollection[i].left :
|
|
4354
|
+
rangeCollection[i].left + rangeCollection[i].width - 5)}px;
|
|
4294
4355
|
top: ${Math.floor((this.parent.rowHeight - this.parent.chartRowsModule.taskBarHeight) / 2)}px; height: ${height + 1}px;
|
|
4295
4356
|
border-left: 0px`
|
|
4296
4357
|
});
|
|
@@ -4307,6 +4368,10 @@ class GanttChart {
|
|
|
4307
4368
|
renderTimelineContainer() {
|
|
4308
4369
|
this.chartTimelineContainer =
|
|
4309
4370
|
createElement('div', { className: timelineHeaderContainer });
|
|
4371
|
+
if (this.parent.enableRtl) {
|
|
4372
|
+
this.chartTimelineContainer.style.borderLeftWidth = '1px';
|
|
4373
|
+
this.chartTimelineContainer.style.borderRightWidth = '0px';
|
|
4374
|
+
}
|
|
4310
4375
|
this.chartTimelineContainer.setAttribute("role", "presentation");
|
|
4311
4376
|
this.chartElement.appendChild(this.chartTimelineContainer);
|
|
4312
4377
|
}
|
|
@@ -4479,7 +4544,7 @@ class GanttChart {
|
|
|
4479
4544
|
scrollLeft = this.scrollElement.scrollWidth <= scrollLeft ? this.scrollElement.scrollWidth : scrollLeft;
|
|
4480
4545
|
if ((this.scrollElement.offsetWidth + this.parent.ganttChartModule.scrollElement.scrollLeft) < scrollLeft
|
|
4481
4546
|
|| (this.scrollElement.scrollLeft > scrollLeft)) {
|
|
4482
|
-
this.scrollObject.setScrollLeft(scrollLeft - 50);
|
|
4547
|
+
this.scrollObject.setScrollLeft(scrollLeft - 50, this.parent.enableRtl ? -1 : 0);
|
|
4483
4548
|
}
|
|
4484
4549
|
// this.parent.ganttChartModule.scrollObject.updateLeftPosition();
|
|
4485
4550
|
}
|
|
@@ -4514,6 +4579,12 @@ class GanttChart {
|
|
|
4514
4579
|
*/
|
|
4515
4580
|
documentMouseUp(e) {
|
|
4516
4581
|
this.isGanttElement = true;
|
|
4582
|
+
if (e.target.classList.contains('e-treegridexpand') ||
|
|
4583
|
+
e.target.classList.contains('e-treegridcollapse')) {
|
|
4584
|
+
if (getValue('isEditCollapse', this.parent.treeGrid) === true) {
|
|
4585
|
+
setValue('isEditCollapse', false, this.parent.treeGrid);
|
|
4586
|
+
}
|
|
4587
|
+
}
|
|
4517
4588
|
if (this.parent.allowRowDragAndDrop) {
|
|
4518
4589
|
const ganttDragElemet = this.parent.element.querySelector('.e-ganttdrag');
|
|
4519
4590
|
if (ganttDragElemet) {
|
|
@@ -4531,6 +4602,13 @@ class GanttChart {
|
|
|
4531
4602
|
}
|
|
4532
4603
|
this.parent.notify('chartMouseUp', e);
|
|
4533
4604
|
if (this.parent.showActiveElement) {
|
|
4605
|
+
this.parent.showIndicator = true;
|
|
4606
|
+
if (!isNullOrUndefined(this.parent.loadingIndicator) && this.parent.loadingIndicator.indicatorType === "Shimmer") {
|
|
4607
|
+
this.parent.hideMaskRow();
|
|
4608
|
+
}
|
|
4609
|
+
else {
|
|
4610
|
+
this.parent.hideSpinner();
|
|
4611
|
+
}
|
|
4534
4612
|
if (this.focusedElement && !e.target.classList.contains('e-split-bar')) {
|
|
4535
4613
|
this.focusedElement.tabIndex = this.focusedElement.tabIndex === 0 ? -1 : this.focusedElement.tabIndex;
|
|
4536
4614
|
removeClass([this.focusedElement], 'e-active-container');
|
|
@@ -4777,7 +4855,7 @@ class GanttChart {
|
|
|
4777
4855
|
this.parent.predecessorModule.createConnectorLinesCollection();
|
|
4778
4856
|
this.parent.connectorLineModule.renderConnectorLines(this.parent.updatedConnectorLineCollection);
|
|
4779
4857
|
if (this.parent.enableCriticalPath && this.parent.criticalPathModule) {
|
|
4780
|
-
|
|
4858
|
+
const criticalModule = this.parent.criticalPathModule;
|
|
4781
4859
|
criticalModule.criticalConnectorLine(criticalModule.criticalPathCollection, criticalModule.detailPredecessorCollection, true, criticalModule.predecessorCollectionTaskIds);
|
|
4782
4860
|
}
|
|
4783
4861
|
}
|
|
@@ -5536,6 +5614,12 @@ class Timeline {
|
|
|
5536
5614
|
cancel: false
|
|
5537
5615
|
};
|
|
5538
5616
|
this.parent.trigger('actionBegin', args);
|
|
5617
|
+
if (!isNullOrUndefined(this.parent.loadingIndicator) && this.parent.loadingIndicator.indicatorType === "Shimmer") {
|
|
5618
|
+
this.parent.showMaskRow();
|
|
5619
|
+
}
|
|
5620
|
+
else {
|
|
5621
|
+
this.parent.showSpinner();
|
|
5622
|
+
}
|
|
5539
5623
|
if (!args.cancel) {
|
|
5540
5624
|
newTimeline = args.timeline;
|
|
5541
5625
|
this.changeTimelineSettings(newTimeline);
|
|
@@ -5576,6 +5660,12 @@ class Timeline {
|
|
|
5576
5660
|
timeline: this.parent.currentZoomingLevel
|
|
5577
5661
|
};
|
|
5578
5662
|
this.parent.trigger('actionComplete', args);
|
|
5663
|
+
if (!isNullOrUndefined(this.parent.loadingIndicator) && this.parent.loadingIndicator.indicatorType === "Shimmer") {
|
|
5664
|
+
this.parent.hideMaskRow();
|
|
5665
|
+
}
|
|
5666
|
+
else {
|
|
5667
|
+
this.parent.hideSpinner();
|
|
5668
|
+
}
|
|
5579
5669
|
}
|
|
5580
5670
|
}
|
|
5581
5671
|
/**
|
|
@@ -5641,6 +5731,12 @@ class Timeline {
|
|
|
5641
5731
|
this.parent.toolbarModule.enableItems([this.parent.controlId + '_zoomin', this.parent.controlId + '_zoomout'], true);
|
|
5642
5732
|
}
|
|
5643
5733
|
this.parent.trigger('actionBegin', args);
|
|
5734
|
+
if (!isNullOrUndefined(this.parent.loadingIndicator) && this.parent.loadingIndicator.indicatorType === "Shimmer") {
|
|
5735
|
+
this.parent.showMaskRow();
|
|
5736
|
+
}
|
|
5737
|
+
else {
|
|
5738
|
+
this.parent.showSpinner();
|
|
5739
|
+
}
|
|
5644
5740
|
this.changeTimelineSettings(newTimeline);
|
|
5645
5741
|
}
|
|
5646
5742
|
bottomTierCellWidthCalc(mode, zoomLevel, date) {
|
|
@@ -6747,7 +6843,9 @@ class Timeline {
|
|
|
6747
6843
|
const validStartLeft = this.parent.dataOperation.getTaskLeft(validStartDate, false);
|
|
6748
6844
|
const validEndLeft = this.parent.dataOperation.getTaskLeft(validEndDate, false);
|
|
6749
6845
|
let isChanged;
|
|
6750
|
-
if (!isNullOrUndefined(maxStartLeft) && ((minStartDate < this.timelineStartDate) ||
|
|
6846
|
+
if (!isNullOrUndefined(maxStartLeft) && ((minStartDate < this.timelineStartDate) ||
|
|
6847
|
+
(!isNullOrUndefined(this.parent.editModule.taskbarEditModule)) &&
|
|
6848
|
+
(!isNullOrUndefined(this.parent.editModule.taskbarEditModule.taskBarEditAction))) && (maxStartLeft < this.bottomTierCellWidth || maxStartLeft <= validStartLeft)) {
|
|
6751
6849
|
isChanged = 'prevTimeSpan';
|
|
6752
6850
|
minStartDate = minStartDate > this.timelineStartDate ? this.timelineStartDate : minStartDate;
|
|
6753
6851
|
}
|
|
@@ -6986,9 +7084,12 @@ class GanttTreeGrid {
|
|
|
6986
7084
|
this.parent.treeGrid.showColumnMenu = this.parent.showColumnMenu;
|
|
6987
7085
|
this.parent.treeGrid.enableCollapseAll = this.parent.collapseAllParentTasks;
|
|
6988
7086
|
this.parent.treeGrid.columnMenuItems = this.parent.columnMenuItems;
|
|
7087
|
+
this.parent.treeGrid.enableRtl = this.parent.enableRtl;
|
|
6989
7088
|
this.parent.treeGrid.childMapping = isNullOrUndefined(this.parent.taskFields.child) ? '' : this.parent.taskFields.child;
|
|
6990
7089
|
this.parent.treeGrid.treeColumnIndex = this.parent.treeColumnIndex;
|
|
6991
7090
|
this.parent.treeGrid.columns = this.treeGridColumns;
|
|
7091
|
+
this.parent.treeGrid.loadingIndicator = this.parent.loadingIndicator;
|
|
7092
|
+
this.parent.treeGrid.enableVirtualMaskRow = this.parent.enableVirtualMaskRow;
|
|
6992
7093
|
if (this.parent.dataSource instanceof Object && isCountRequired(this.parent)) {
|
|
6993
7094
|
// In order to bind the observable data at load time, hasChildMapping is necessary to be mapped.
|
|
6994
7095
|
this.parent.treeGrid.hasChildMapping = 'isParent';
|
|
@@ -7082,6 +7183,14 @@ class GanttTreeGrid {
|
|
|
7082
7183
|
dataBound(args) {
|
|
7083
7184
|
this.ensureScrollBar();
|
|
7084
7185
|
this.parent.treeDataBound(args);
|
|
7186
|
+
if (this.parent.isVirtualScroll) {
|
|
7187
|
+
if ((this.parent.enableVirtualMaskRow && this.parent.enableVirtualization) ||
|
|
7188
|
+
(this.parent.enableVirtualization && !this.parent.enableVirtualMaskRow && this.parent.loadingIndicator.indicatorType === "Shimmer") ||
|
|
7189
|
+
(this.parent.loadingIndicator.indicatorType === "Shimmer")) {
|
|
7190
|
+
this.parent.hideMaskRow();
|
|
7191
|
+
}
|
|
7192
|
+
this.parent.isVirtualScroll = false;
|
|
7193
|
+
}
|
|
7085
7194
|
this.prevCurrentView = extend([], [], this.parent.currentViewData, true);
|
|
7086
7195
|
}
|
|
7087
7196
|
dataStateChange(args) {
|
|
@@ -7116,6 +7225,12 @@ class GanttTreeGrid {
|
|
|
7116
7225
|
const collapsedArgs = this.createExpandCollapseArgs(args);
|
|
7117
7226
|
this.parent.ganttChartModule.collapsedGanttRow(collapsedArgs);
|
|
7118
7227
|
}
|
|
7228
|
+
if (!isNullOrUndefined(this.parent.loadingIndicator) && this.parent.loadingIndicator.indicatorType === "Shimmer") {
|
|
7229
|
+
this.parent.hideMaskRow();
|
|
7230
|
+
}
|
|
7231
|
+
else {
|
|
7232
|
+
this.parent.hideSpinner();
|
|
7233
|
+
}
|
|
7119
7234
|
}
|
|
7120
7235
|
expanded(args) {
|
|
7121
7236
|
if (!this.parent.ganttChartModule.isExpandCollapseFromChart && !this.parent.isExpandCollapseLevelMethod) {
|
|
@@ -7124,6 +7239,12 @@ class GanttTreeGrid {
|
|
|
7124
7239
|
this.parent.ganttChartModule.expandedGanttRow(expandedArgs);
|
|
7125
7240
|
}
|
|
7126
7241
|
}
|
|
7242
|
+
if (!isNullOrUndefined(this.parent.loadingIndicator) && this.parent.loadingIndicator.indicatorType === "Shimmer") {
|
|
7243
|
+
this.parent.hideMaskRow();
|
|
7244
|
+
}
|
|
7245
|
+
else {
|
|
7246
|
+
this.parent.hideSpinner();
|
|
7247
|
+
}
|
|
7127
7248
|
}
|
|
7128
7249
|
actionBegin(args) {
|
|
7129
7250
|
this.parent.notify('actionBegin', args);
|
|
@@ -7132,6 +7253,14 @@ class GanttTreeGrid {
|
|
|
7132
7253
|
setValue('doubleClickTarget', null, this.parent.treeGrid.editModule);
|
|
7133
7254
|
}
|
|
7134
7255
|
this.parent.trigger('actionBegin', args);
|
|
7256
|
+
if (args.requestType != "virtualscroll" && args.type != "edit" && args.requestType != "beginEdit") {
|
|
7257
|
+
if (!isNullOrUndefined(this.parent.loadingIndicator) && this.parent.loadingIndicator.indicatorType === "Shimmer") {
|
|
7258
|
+
this.parent.showMaskRow();
|
|
7259
|
+
}
|
|
7260
|
+
else {
|
|
7261
|
+
this.parent.showSpinner();
|
|
7262
|
+
}
|
|
7263
|
+
}
|
|
7135
7264
|
} // eslint-disable-next-line
|
|
7136
7265
|
created(args) {
|
|
7137
7266
|
this.updateKeyConfigSettings();
|
|
@@ -7200,6 +7329,12 @@ class GanttTreeGrid {
|
|
|
7200
7329
|
this.parent.addDeleteRecord = false;
|
|
7201
7330
|
}
|
|
7202
7331
|
this.parent.trigger('actionComplete', updatedArgs);
|
|
7332
|
+
if (!isNullOrUndefined(this.parent.loadingIndicator) && this.parent.loadingIndicator.indicatorType === "Shimmer") {
|
|
7333
|
+
this.parent.hideMaskRow();
|
|
7334
|
+
}
|
|
7335
|
+
else {
|
|
7336
|
+
this.parent.hideSpinner();
|
|
7337
|
+
}
|
|
7203
7338
|
}
|
|
7204
7339
|
updateKeyConfigSettings() {
|
|
7205
7340
|
delete this.parent.treeGrid.grid.keyboardModule.keyConfigs.delete;
|
|
@@ -7469,7 +7604,7 @@ class GanttTreeGrid {
|
|
|
7469
7604
|
*/
|
|
7470
7605
|
composeIDColumn(column) {
|
|
7471
7606
|
const isProjectView = this.parent.viewType === 'ProjectView';
|
|
7472
|
-
|
|
7607
|
+
const lengthDataSource = this.parent.dataSource['length'];
|
|
7473
7608
|
let taskIDName;
|
|
7474
7609
|
column.isPrimaryKey = isProjectView ? true : false;
|
|
7475
7610
|
column.headerText = column.headerText ? column.headerText : this.parent.localeObj.getConstant('id');
|
|
@@ -8082,6 +8217,21 @@ __decorate$16([
|
|
|
8082
8217
|
Property(null)
|
|
8083
8218
|
], ResourceFields.prototype, "group", void 0);
|
|
8084
8219
|
|
|
8220
|
+
var __decorate$17 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
8221
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
8222
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
8223
|
+
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;
|
|
8224
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
8225
|
+
};
|
|
8226
|
+
/**
|
|
8227
|
+
* Configures the Loading Indicator of the Gantt.
|
|
8228
|
+
*/
|
|
8229
|
+
class LoadingIndicator extends ChildProperty {
|
|
8230
|
+
}
|
|
8231
|
+
__decorate$17([
|
|
8232
|
+
Property('Spinner')
|
|
8233
|
+
], LoadingIndicator.prototype, "indicatorType", void 0);
|
|
8234
|
+
|
|
8085
8235
|
/**
|
|
8086
8236
|
* Export all generated models for complex settings
|
|
8087
8237
|
*/
|
|
@@ -8180,7 +8330,7 @@ class ChartRows extends DateProcessor {
|
|
|
8180
8330
|
getIndicatorNode(indicator) {
|
|
8181
8331
|
const templateString = '<label class="' + label + ' ' + taskIndicatorDiv + '"style="line-height:'
|
|
8182
8332
|
+ (this.parent.rowHeight) + 'px;' +
|
|
8183
|
-
'left:' + this.getIndicatorleft(indicator.date) + 'px;"><i class="' + indicator.iconClass + '"></i> </label>';
|
|
8333
|
+
(this.parent.enableRtl ? 'right:' : 'left:') + this.getIndicatorleft(indicator.date) + 'px;"><i class="' + indicator.iconClass + '"></i> </label>';
|
|
8184
8334
|
return this.createDivElement(templateString);
|
|
8185
8335
|
}
|
|
8186
8336
|
/**
|
|
@@ -8206,6 +8356,13 @@ class ChartRows extends DateProcessor {
|
|
|
8206
8356
|
getChildTaskbarNode(i, rootElement) {
|
|
8207
8357
|
let childTaskbarNode = null;
|
|
8208
8358
|
const data = this.templateData;
|
|
8359
|
+
let direction;
|
|
8360
|
+
if (this.parent.enableRtl) {
|
|
8361
|
+
direction = 'right:';
|
|
8362
|
+
}
|
|
8363
|
+
else {
|
|
8364
|
+
direction = 'left:';
|
|
8365
|
+
}
|
|
8209
8366
|
if (this.childTaskbarTemplateFunction) {
|
|
8210
8367
|
childTaskbarNode = this.childTaskbarTemplateFunction(extend({ index: i }, data), this.parent, 'TaskbarTemplate', this.getTemplateID('TaskbarTemplate'), false, undefined, rootElement[0], this.parent.treeGrid['root']);
|
|
8211
8368
|
}
|
|
@@ -8248,14 +8405,15 @@ class ChartRows extends DateProcessor {
|
|
|
8248
8405
|
}
|
|
8249
8406
|
if (isNaN(parseInt(labelString))) {
|
|
8250
8407
|
taskLabel$$1 = '<span class="' + taskLabel + '" style="line-height:' +
|
|
8251
|
-
(this.taskBarHeight - 1) + 'px; text-align: left;' +
|
|
8408
|
+
(this.taskBarHeight - 1) + 'px; text-align:' + (this.parent.enableRtl ? 'right;' : 'left;') +
|
|
8252
8409
|
'display:' + 'inline-block;' +
|
|
8253
8410
|
'width:' + (data.ganttProperties.width - 10) + 'px; height:' +
|
|
8254
8411
|
this.taskBarHeight + 'px;">' + labelString + '</span>';
|
|
8255
8412
|
}
|
|
8256
8413
|
else {
|
|
8257
8414
|
taskLabel$$1 = '<span class="' + taskLabel + '" style="line-height:' +
|
|
8258
|
-
(this.taskBarHeight - 1) + 'px;' + (this.parent.viewType === 'ResourceView' ? 'text-align:
|
|
8415
|
+
(this.taskBarHeight - 1) + 'px;' + (this.parent.viewType === 'ResourceView' ? ('text-align:' +
|
|
8416
|
+
(this.parent.enableRtl ? 'right;' : 'left;')) : '') +
|
|
8259
8417
|
+(this.parent.viewType === 'ResourceView' ? 'display:inline-flex;' : '') +
|
|
8260
8418
|
+(this.parent.viewType === 'ResourceView' ? (data.ganttProperties.width - 10) : '') + 'px; height:' +
|
|
8261
8419
|
this.taskBarHeight + 'px;">' + labelString + '</span>';
|
|
@@ -8267,17 +8425,17 @@ class ChartRows extends DateProcessor {
|
|
|
8267
8425
|
(data.ganttProperties.startDate && !data.ganttProperties.endDate && !data.ganttProperties.duration) ? ('<div class="' + childProgressBarInnerDiv + ' ' + traceChildTaskBar + ' ' +
|
|
8268
8426
|
unscheduledTaskbarLeft + ' ' + (data.ganttProperties.isAutoSchedule ?
|
|
8269
8427
|
'' : manualChildTaskBar) + '"' +
|
|
8270
|
-
'style="
|
|
8428
|
+
'style="' + direction + data.ganttProperties.left + 'px; height:' + this.taskBarHeight + 'px;"></div>') :
|
|
8271
8429
|
(data.ganttProperties.endDate && !data.ganttProperties.startDate && !data.ganttProperties.duration) ?
|
|
8272
8430
|
('<div class="' + childProgressBarInnerDiv + ' ' + traceChildTaskBar + ' ' +
|
|
8273
8431
|
unscheduledTaskbarRight + ' ' + (data.ganttProperties.isAutoSchedule ?
|
|
8274
8432
|
'' : manualChildTaskBar) + '"' +
|
|
8275
|
-
'style="
|
|
8433
|
+
'style="' + direction + data.ganttProperties.left + 'px; height:' + this.taskBarHeight + 'px;"></div>') :
|
|
8276
8434
|
(data.ganttProperties.duration && !data.ganttProperties.startDate && !data.ganttProperties.endDate) ?
|
|
8277
8435
|
('<div class="' + childProgressBarInnerDiv + ' ' + traceChildTaskBar + ' ' +
|
|
8278
8436
|
unscheduledTaskbar + ' ' + (data.ganttProperties.isAutoSchedule ?
|
|
8279
8437
|
'' : manualChildTaskBar) + '"' +
|
|
8280
|
-
'style="
|
|
8438
|
+
'style="' + direction + data.ganttProperties.left + 'px; width:' + data.ganttProperties.width + 'px;' +
|
|
8281
8439
|
' height:' + this.taskBarHeight + 'px;"></div>') : '';
|
|
8282
8440
|
if (data.ganttProperties.startDate && data.ganttProperties.endDate && data.ganttProperties.duration &&
|
|
8283
8441
|
(isNullOrUndefined(data.ganttProperties.segments) || (!isNullOrUndefined(data.ganttProperties.segments) &&
|
|
@@ -8305,6 +8463,13 @@ class ChartRows extends DateProcessor {
|
|
|
8305
8463
|
childTaskbarNode = this.createDivElement(template);
|
|
8306
8464
|
}
|
|
8307
8465
|
}
|
|
8466
|
+
if (this.parent.enableRtl && childTaskbarNode[0] && childTaskbarNode[0].querySelector('.e-task-label')) {
|
|
8467
|
+
childTaskbarNode[0].querySelector('.e-task-label').style.marginLeft = '15px';
|
|
8468
|
+
childTaskbarNode[0].querySelector('.e-task-label').style.marginRight = '8px';
|
|
8469
|
+
if (childTaskbarNode[0].querySelector('.e-gantt-child-progressbar')) {
|
|
8470
|
+
childTaskbarNode[0].querySelector('.e-gantt-child-progressbar').style.textAlign = 'left';
|
|
8471
|
+
}
|
|
8472
|
+
}
|
|
8308
8473
|
return childTaskbarNode;
|
|
8309
8474
|
}
|
|
8310
8475
|
splitTaskbar(data, labelString) {
|
|
@@ -8324,7 +8489,7 @@ class ChartRows extends DateProcessor {
|
|
|
8324
8489
|
//split taskbar
|
|
8325
8490
|
'<div class="' + childTaskBarInnerDiv + ' ' + segmentPosition + ' ' + traceChildTaskBar + ' ' +
|
|
8326
8491
|
' e-segmented-taskbar' +
|
|
8327
|
-
'"style="width:' + segment.width + 'px;position: absolute; left:' + segment.left + 'px;height:' +
|
|
8492
|
+
'"style="width:' + segment.width + 'px;position: absolute;' + (this.parent.enableRtl ? 'right:' : 'left:') + segment.left + 'px;height:' +
|
|
8328
8493
|
(this.taskBarHeight) + 'px; overflow:' + progressBarVisible + ';" data-segment-index = "' + i + '" aria-label = "' +
|
|
8329
8494
|
this.generateSpiltTaskAriaLabel(segment, data.ganttProperties) + '"> ' +
|
|
8330
8495
|
this.getSplitTaskbarLeftResizerNode() +
|
|
@@ -8332,7 +8497,7 @@ class ChartRows extends DateProcessor {
|
|
|
8332
8497
|
'<div class="' + childProgressBarInnerDiv + ' ' + traceChildProgressBar + ' ' +
|
|
8333
8498
|
'" style="border-style:' + (segment.progressWidth ? 'solid;' : 'none;') +
|
|
8334
8499
|
'display:' + (segment.progressWidth >= 0 ? 'block;' : 'none;') +
|
|
8335
|
-
'width:' + segment.progressWidth + 'px;height:100%;' +
|
|
8500
|
+
'width:' + segment.progressWidth + 'px;height:100%;' + 'text-align:' + (this.parent.enableRtl ? 'left;' : 'right;') +
|
|
8336
8501
|
'border-top-right-radius:' + this.getSplitTaskBorderRadius(segment) + 'px;' +
|
|
8337
8502
|
'border-bottom-right-radius:' + this.getSplitTaskBorderRadius(segment) + 'px;">' +
|
|
8338
8503
|
// progress label
|
|
@@ -8349,19 +8514,20 @@ class ChartRows extends DateProcessor {
|
|
|
8349
8514
|
getSplitTaskbarLeftResizerNode() {
|
|
8350
8515
|
const lResizerLeft = -(this.parent.isAdaptive ? 12 : 2);
|
|
8351
8516
|
const template = '<div class="' + taskBarLeftResizer + ' ' + icon + '"' +
|
|
8352
|
-
' style="left:' + lResizerLeft + 'px;height:' + (this.taskBarHeight) + 'px;"></div>';
|
|
8517
|
+
' style="' + (this.parent.enableRtl ? 'right:' : 'left:') + lResizerLeft + 'px;height:' + (this.taskBarHeight) + 'px;"></div>';
|
|
8353
8518
|
return template;
|
|
8354
8519
|
}
|
|
8355
8520
|
getSplitTaskbarRightResizerNode(segment) {
|
|
8356
8521
|
const rResizerLeft = this.parent.isAdaptive ? -2 : -10;
|
|
8357
8522
|
const template = '<div class="' + taskBarRightResizer + ' ' + icon + '"' +
|
|
8358
|
-
' style="left:' + (segment.width + rResizerLeft) + 'px;' +
|
|
8523
|
+
' style="' + (this.parent.enableRtl ? 'right:' : 'left:') + (segment.width + rResizerLeft) + 'px;' +
|
|
8359
8524
|
'height:' + (this.taskBarHeight) + 'px;"></div>';
|
|
8360
8525
|
return template;
|
|
8361
8526
|
}
|
|
8362
8527
|
getSplitProgressResizerNode(segment) {
|
|
8528
|
+
let width = this.parent.enableRtl ? (segment.progressWidth + 8) : (segment.progressWidth - 6);
|
|
8363
8529
|
const template = '<div class="' + childProgressResizer + '"' +
|
|
8364
|
-
' style="
|
|
8530
|
+
' style="' + (this.parent.enableRtl ? 'right:' : 'left:') + width + 'px;margin-top:' +
|
|
8365
8531
|
(this.taskBarHeight - 4) + 'px;"><div class="' + progressBarHandler + '"' +
|
|
8366
8532
|
'><div class="' + progressHandlerElement + '"></div>' +
|
|
8367
8533
|
'<div class="' + progressBarHandlerAfter + '"></div></div>';
|
|
@@ -8491,6 +8657,12 @@ class ChartRows extends DateProcessor {
|
|
|
8491
8657
|
}
|
|
8492
8658
|
}
|
|
8493
8659
|
this.parent.trigger('actionComplete', args);
|
|
8660
|
+
if (!isNullOrUndefined(this.parent.loadingIndicator) && this.parent.loadingIndicator.indicatorType === "Shimmer") {
|
|
8661
|
+
this.parent.hideMaskRow();
|
|
8662
|
+
}
|
|
8663
|
+
else {
|
|
8664
|
+
this.parent.hideSpinner();
|
|
8665
|
+
}
|
|
8494
8666
|
setValue('isEdit', false, this.parent.contextMenuModule);
|
|
8495
8667
|
setValue('isEdit', false, this.parent);
|
|
8496
8668
|
}
|
|
@@ -8695,7 +8867,7 @@ class ChartRows extends DateProcessor {
|
|
|
8695
8867
|
getTaskBaselineNode() {
|
|
8696
8868
|
const data = this.templateData;
|
|
8697
8869
|
const template = '<div class="' + baselineBar + ' ' + '" role="term" style="margin-top:' + this.baselineTop +
|
|
8698
|
-
'px;left:' + data.ganttProperties.baselineLeft + 'px;' +
|
|
8870
|
+
'px;' + (this.parent.enableRtl ? 'right:' : 'left:') + data.ganttProperties.baselineLeft + 'px;' +
|
|
8699
8871
|
'width:' + data.ganttProperties.baselineWidth + 'px;height:' +
|
|
8700
8872
|
this.baselineHeight + 'px;' + (this.baselineColor ? 'background-color: ' + this.baselineColor + ';' : '') + '"></div>';
|
|
8701
8873
|
return this.createDivElement(template);
|
|
@@ -8710,7 +8882,7 @@ class ChartRows extends DateProcessor {
|
|
|
8710
8882
|
const data = this.templateData;
|
|
8711
8883
|
let baselineMilestoneHeight = this.parent.renderBaseline ? 5 : 2;
|
|
8712
8884
|
const template = '<div class="' + baselineMilestoneContainer + ' ' + '" style="' +
|
|
8713
|
-
'left:' + (data.ganttProperties.baselineLeft - this.milesStoneRadius) + 'px;' +
|
|
8885
|
+
(this.parent.enableRtl ? 'right:' : 'left:') + (data.ganttProperties.baselineLeft - this.milesStoneRadius) + 'px;' +
|
|
8714
8886
|
'margin-top:' + (-Math.floor(this.parent.rowHeight - this.milestoneMarginTop) + baselineMilestoneHeight) +
|
|
8715
8887
|
'px">' + '<div class="' + baselineMilestoneDiv + '">' + '<div class="' + baselineMilestoneDiv +
|
|
8716
8888
|
' ' + baselineMilestoneTop + '" ' +
|
|
@@ -8760,6 +8932,10 @@ class ChartRows extends DateProcessor {
|
|
|
8760
8932
|
}
|
|
8761
8933
|
leftLabelNode[0].appendChild([].slice.call(leftLabelTemplateNode)[0]);
|
|
8762
8934
|
}
|
|
8935
|
+
if (this.parent.enableRtl) {
|
|
8936
|
+
leftLabelNode[0].style.paddingLeft = '25px';
|
|
8937
|
+
leftLabelNode[0].style.paddingRight = '0px';
|
|
8938
|
+
}
|
|
8763
8939
|
return leftLabelNode;
|
|
8764
8940
|
}
|
|
8765
8941
|
getLableText(labelString, labelDiv) {
|
|
@@ -8806,6 +8982,10 @@ class ChartRows extends DateProcessor {
|
|
|
8806
8982
|
}
|
|
8807
8983
|
rightLabelNode[0].appendChild([].slice.call(rightLabelTemplateNode)[0]);
|
|
8808
8984
|
}
|
|
8985
|
+
if (this.parent.enableRtl) {
|
|
8986
|
+
rightLabelNode[0].style.marginLeft = '0px';
|
|
8987
|
+
rightLabelNode[0].style.paddingRight = '25px';
|
|
8988
|
+
}
|
|
8809
8989
|
return rightLabelNode;
|
|
8810
8990
|
}
|
|
8811
8991
|
getManualTaskbar() {
|
|
@@ -8825,17 +9005,18 @@ class ChartRows extends DateProcessor {
|
|
|
8825
9005
|
taskbarHeight * 2 + 'px;border-left-width:' + taskbarHeight / 5 +
|
|
8826
9006
|
'px; border-bottom:' + taskbarHeight / 5 + 'px solid transparent;"></div>');
|
|
8827
9007
|
const template = '<div class="' + manualParentMainContainer + '"' +
|
|
8828
|
-
'style=left:' + (data.ganttProperties.left - data.ganttProperties.autoLeft) + 'px;' +
|
|
9008
|
+
'style=' + (this.parent.enableRtl ? 'right:' : 'left:') + (data.ganttProperties.left - data.ganttProperties.autoLeft) + 'px;' +
|
|
8829
9009
|
'width:' + data.ganttProperties.width + 'px;' +
|
|
8830
9010
|
'height:' + taskbarHeight + 'px;>' + innerDiv + ((data.ganttProperties.startDate && data.ganttProperties.endDate &&
|
|
8831
9011
|
data.ganttProperties.duration) || data.ganttProperties.duration ? '<div class="e-gantt-manualparenttaskbar-left" style=' +
|
|
8832
|
-
'"height:' + taskbarHeight + 'px;border-left-width:' + taskbarHeight / 5 +
|
|
9012
|
+
(this.parent.enableRtl ? 'margin-right:0px;' : '') + '"height:' + taskbarHeight + 'px;border-left-width:' + taskbarHeight / 5 +
|
|
8833
9013
|
'px; border-bottom:' + taskbarHeight / 5 + 'px solid transparent;"></div>' +
|
|
8834
|
-
'<div class="e-gantt-manualparenttaskbar-right" style=' +
|
|
8835
|
-
'left:' + (data.ganttProperties.width - taskbarHeight / 5) + 'px;height:' +
|
|
9014
|
+
'<div class="e-gantt-manualparenttaskbar-right" style=' + (this.parent.enableRtl ? 'margin-right:-8px;' : '') +
|
|
9015
|
+
(this.parent.enableRtl ? 'right:' : 'left:') + (data.ganttProperties.width - taskbarHeight / 5) + 'px;height:' +
|
|
8836
9016
|
(taskbarHeight) + 'px;border-right-width:' + taskbarHeight / 5 + 'px;border-bottom:' +
|
|
8837
9017
|
taskbarHeight / 5 + 'px solid transparent;>' + '</div></div>' : '');
|
|
8838
|
-
const milestoneTemplate = '<div class="' + manualParentMilestone + '" style="position:absolute;
|
|
9018
|
+
const milestoneTemplate = '<div class="' + manualParentMilestone + '" style="position:absolute;' +
|
|
9019
|
+
(this.parent.enableRtl ? 'right:' : 'left:') +
|
|
8839
9020
|
(data.ganttProperties.left - data.ganttProperties.autoLeft - (this.milestoneHeight / 2)) +
|
|
8840
9021
|
'px;width:' + (this.milesStoneRadius * 2) +
|
|
8841
9022
|
'px;">' + '<div class="' + manualParentMilestoneTop + '" style="border-right-width:' +
|
|
@@ -8896,7 +9077,7 @@ class ChartRows extends DateProcessor {
|
|
|
8896
9077
|
}
|
|
8897
9078
|
if (isNaN(parseInt(labelString))) {
|
|
8898
9079
|
labelDiv = '<span class="' + taskLabel + '" style="line-height:' +
|
|
8899
|
-
(this.taskBarHeight - 1) + 'px; text-align: left;' +
|
|
9080
|
+
(this.taskBarHeight - 1) + 'px; text-align:' + (this.parent.enableRtl ? 'right;' : 'left;') +
|
|
8900
9081
|
'display:' + 'inline-block;' +
|
|
8901
9082
|
'width:' + (data.ganttProperties.width - 10) + 'px; height:' +
|
|
8902
9083
|
this.taskBarHeight + 'px;">' + labelString + '</span>';
|
|
@@ -8934,6 +9115,13 @@ class ChartRows extends DateProcessor {
|
|
|
8934
9115
|
parentTaskbarNode = data.ganttProperties.isMilestone ?
|
|
8935
9116
|
this.createDivElement(data.ganttProperties.isAutoSchedule ? milestoneTemplate : '') : template;
|
|
8936
9117
|
}
|
|
9118
|
+
if (this.parent.enableRtl && parentTaskbarNode[0] && parentTaskbarNode[0].querySelector('.e-task-label')) {
|
|
9119
|
+
parentTaskbarNode[0].querySelector('.e-task-label').style.marginLeft = '15px';
|
|
9120
|
+
parentTaskbarNode[0].querySelector('.e-task-label').style.marginRight = '8px';
|
|
9121
|
+
if (parentTaskbarNode[0].querySelector('.e-gantt-parent-progressbar')) {
|
|
9122
|
+
parentTaskbarNode[0].querySelector('.e-gantt-parent-progressbar').style.textAlign = 'left';
|
|
9123
|
+
}
|
|
9124
|
+
}
|
|
8937
9125
|
return parentTaskbarNode;
|
|
8938
9126
|
}
|
|
8939
9127
|
/**
|
|
@@ -9029,35 +9217,36 @@ class ChartRows extends DateProcessor {
|
|
|
9029
9217
|
((data.ganttProperties.cssClass) ? data.ganttProperties.cssClass : '') + '" ' +
|
|
9030
9218
|
' tabindex="-1" role="term" style="' + ((data.ganttProperties.isMilestone && !manualParent) ?
|
|
9031
9219
|
('width:' + this.milestoneHeight + 'px;height:' +
|
|
9032
|
-
this.milestoneHeight + 'px;margin-top:' + this.milestoneMarginTop + 'px;left:' + (data.ganttProperties.left -
|
|
9220
|
+
this.milestoneHeight + 'px;margin-top:' + this.milestoneMarginTop + 'px;' + (this.parent.enableRtl ? 'right:' : 'left:') + (data.ganttProperties.left -
|
|
9033
9221
|
(this.milestoneHeight / 2)) + 'px;') : ('width:' + data.ganttProperties.width +
|
|
9034
|
-
'px;margin-top:' + this.taskBarMarginTop + 'px;left:' + (!data.hasChildRecords || data.ganttProperties.isAutoSchedule ?
|
|
9222
|
+
'px;margin-top:' + this.taskBarMarginTop + 'px;' + (this.parent.enableRtl ? 'right:' : 'left:') + (!data.hasChildRecords || data.ganttProperties.isAutoSchedule ?
|
|
9035
9223
|
data.ganttProperties.left : data.ganttProperties.autoLeft) + 'px;height:' +
|
|
9036
9224
|
this.taskBarHeight + 'px;cursor:' + (data.ganttProperties.isAutoSchedule ? 'move;' : 'auto;'))) + '"></div>';
|
|
9037
9225
|
return this.createDivElement(template);
|
|
9038
9226
|
}
|
|
9039
9227
|
rightLabelContainer() {
|
|
9040
9228
|
const template = '<div class="' + ((this.rightTaskLabelTemplateFunction) ? rightLabelTempContainer :
|
|
9041
|
-
rightLabelContainer) + '" ' + ' tabindex="-1" role="term" style="left:' + this.getRightLabelLeft(this.templateData) + 'px; height:'
|
|
9229
|
+
rightLabelContainer) + '" ' + ' tabindex="-1" role="term" style="' + (this.parent.enableRtl ? 'right:' : 'left:') + this.getRightLabelLeft(this.templateData) + 'px; height:'
|
|
9042
9230
|
+ (this.parent.rowHeight - 2) + 'px;"></div>';
|
|
9043
9231
|
return this.createDivElement(template);
|
|
9044
9232
|
}
|
|
9045
9233
|
childTaskbarLeftResizer() {
|
|
9046
9234
|
const lResizerLeft = -(this.parent.isAdaptive ? 12 : 2);
|
|
9047
9235
|
const template = '<div class="' + taskBarLeftResizer + ' ' + icon + '"' +
|
|
9048
|
-
'style="left:' + lResizerLeft + 'px;height:' + (this.taskBarHeight) + 'px;"></div>';
|
|
9236
|
+
'style="' + (this.parent.enableRtl ? 'right:' : 'left:') + lResizerLeft + 'px;height:' + (this.taskBarHeight) + 'px;"></div>';
|
|
9049
9237
|
return this.createDivElement(template);
|
|
9050
9238
|
}
|
|
9051
9239
|
childTaskbarRightResizer() {
|
|
9052
9240
|
const rResizerLeft = this.parent.isAdaptive ? -2 : -10;
|
|
9053
9241
|
const template = '<div class="' + taskBarRightResizer + ' ' + icon + '"' +
|
|
9054
|
-
'style="left:' + (this.templateData.ganttProperties.width + rResizerLeft) + 'px;' +
|
|
9242
|
+
'style="' + (this.parent.enableRtl ? 'right:' : 'left:') + (this.templateData.ganttProperties.width + rResizerLeft) + 'px;' +
|
|
9055
9243
|
'height:' + (this.taskBarHeight) + 'px;"></div>';
|
|
9056
9244
|
return this.createDivElement(template);
|
|
9057
9245
|
}
|
|
9058
9246
|
childTaskbarProgressResizer() {
|
|
9247
|
+
let width = this.parent.enableRtl ? (this.templateData.ganttProperties.progressWidth + 8) : (this.templateData.ganttProperties.progressWidth - 6);
|
|
9059
9248
|
const template = '<div class="' + childProgressResizer + '"' +
|
|
9060
|
-
'style="
|
|
9249
|
+
'style="' + (this.parent.enableRtl ? 'right:' : 'left:') + width + 'px;margin-top:' +
|
|
9061
9250
|
(this.taskBarHeight - 4) + 'px;"><div class="' + progressBarHandler + '"' +
|
|
9062
9251
|
'><div class="' + progressHandlerElement + '"></div>' +
|
|
9063
9252
|
'<div class="' + progressBarHandlerAfter + '"></div></div>';
|
|
@@ -9079,7 +9268,7 @@ class ChartRows extends DateProcessor {
|
|
|
9079
9268
|
((data.ganttProperties.isMilestone) ? ('margin-top:' + pointerTop + 'px;left:' + mileStoneLeft +
|
|
9080
9269
|
'px;') : (marginTop + ';left:' + pointerLeft + 'px;')) + '">' +
|
|
9081
9270
|
'<div class="' + connectorPointLeft + ' ' + this.parent.getUnscheduledTaskClass(data.ganttProperties) +
|
|
9082
|
-
'" style="width: ' + this.connectorPointWidth + 'px;' +
|
|
9271
|
+
'" style="width: ' + this.connectorPointWidth + 'px;' + (this.parent.enableRtl ? 'margin-right:2px;' : '') +
|
|
9083
9272
|
'height: ' + this.connectorPointWidth + 'px;">' + this.touchLeftConnectorpoint + '</div></div>';
|
|
9084
9273
|
return this.createDivElement(template);
|
|
9085
9274
|
}
|
|
@@ -9352,8 +9541,14 @@ class ChartRows extends DateProcessor {
|
|
|
9352
9541
|
else {
|
|
9353
9542
|
for (let i = 0; i < this.parent.currentViewData.length; i++) {
|
|
9354
9543
|
const tempTemplateData = this.parent.currentViewData[i];
|
|
9355
|
-
if (this.parent.viewType === 'ResourceView'
|
|
9356
|
-
|
|
9544
|
+
if (this.parent.viewType === 'ResourceView') {
|
|
9545
|
+
if (this.parent.editModule && this.parent.editModule.isResourceTaskDeleted) {
|
|
9546
|
+
this.parent.initialChartRowElements = this.parent.ganttChartModule.getChartRows();
|
|
9547
|
+
this.parent.editModule.isResourceTaskDeleted = false;
|
|
9548
|
+
}
|
|
9549
|
+
if (!tempTemplateData.expanded && this.parent.enableMultiTaskbar) {
|
|
9550
|
+
collapsedResourceRecord.push(tempTemplateData);
|
|
9551
|
+
}
|
|
9357
9552
|
}
|
|
9358
9553
|
const tRow = this.getGanttChartRow(i, tempTemplateData);
|
|
9359
9554
|
this.ganttChartTableBody.appendChild(tRow);
|
|
@@ -9397,7 +9592,7 @@ class ChartRows extends DateProcessor {
|
|
|
9397
9592
|
taskbarContainerNode[0].setAttribute('aria-label', this.generateAriaLabel(this.templateData));
|
|
9398
9593
|
taskbarContainerNode[0].setAttribute('rowUniqueId', this.templateData.ganttProperties.rowUniqueID);
|
|
9399
9594
|
const connectorLineLeftNode = this.getLeftPointNode();
|
|
9400
|
-
if ((this.templateData.ganttProperties.isAutoSchedule && this.parent.viewType
|
|
9595
|
+
if ((this.templateData.ganttProperties.isAutoSchedule && this.parent.viewType === 'ProjectView') || !this.templateData.hasChildRecords) {
|
|
9401
9596
|
taskbarContainerNode[0].appendChild([].slice.call(connectorLineLeftNode)[0]);
|
|
9402
9597
|
}
|
|
9403
9598
|
if (this.templateData.hasChildRecords) {
|
|
@@ -9481,7 +9676,7 @@ class ChartRows extends DateProcessor {
|
|
|
9481
9676
|
? this.getMilestoneBaselineNode() : this.getTaskBaselineNode();
|
|
9482
9677
|
}
|
|
9483
9678
|
}
|
|
9484
|
-
if ((this.templateData.ganttProperties.isAutoSchedule && this.parent.viewType
|
|
9679
|
+
if ((this.templateData.ganttProperties.isAutoSchedule && this.parent.viewType === 'ProjectView') || !this.templateData.hasChildRecords) {
|
|
9485
9680
|
const connectorLineRightNode = this.getRightPointNode();
|
|
9486
9681
|
taskbarContainerNode[0].appendChild([].slice.call(connectorLineRightNode)[0]);
|
|
9487
9682
|
}
|
|
@@ -10767,19 +10962,8 @@ class ConnectorLine {
|
|
|
10767
10962
|
*/
|
|
10768
10963
|
createConnectorLineObject(parentGanttData, childGanttData, predecessor) {
|
|
10769
10964
|
const connectorObj = {};
|
|
10770
|
-
|
|
10771
|
-
|
|
10772
|
-
if (this.parent.pdfExportModule['helper']['exportProps'].exportType &&
|
|
10773
|
-
this.parent.pdfExportModule['helper']['exportProps'].exportType === 'CurrentViewData') {
|
|
10774
|
-
updatedRecords = this.expandedRecords;
|
|
10775
|
-
}
|
|
10776
|
-
else {
|
|
10777
|
-
updatedRecords = this.parent.flatData;
|
|
10778
|
-
}
|
|
10779
|
-
}
|
|
10780
|
-
else {
|
|
10781
|
-
updatedRecords = this.expandedRecords;
|
|
10782
|
-
}
|
|
10965
|
+
const updatedRecords = this.parent.pdfExportModule && this.parent.pdfExportModule.isPdfExport ?
|
|
10966
|
+
this.parent.flatData : this.expandedRecords;
|
|
10783
10967
|
const parentIndex = updatedRecords.indexOf(parentGanttData);
|
|
10784
10968
|
const childIndex = updatedRecords.indexOf(childGanttData);
|
|
10785
10969
|
const parentGanttRecord = parentGanttData.ganttProperties;
|
|
@@ -10845,6 +11029,9 @@ class ConnectorLine {
|
|
|
10845
11029
|
}
|
|
10846
11030
|
}
|
|
10847
11031
|
this.parent.ganttChartModule.chartBodyContent.appendChild(this.dependencyViewContainer);
|
|
11032
|
+
for (let i = 0; i < this.dependencyViewContainer.children.length; i++) {
|
|
11033
|
+
this.dependencyViewContainer.children[i].children[0].setAttribute('tabindex', '-1');
|
|
11034
|
+
}
|
|
10848
11035
|
}
|
|
10849
11036
|
/**
|
|
10850
11037
|
* To get parent position.
|
|
@@ -11163,85 +11350,96 @@ class ConnectorLine {
|
|
|
11163
11350
|
connectorContainer = '<div id="ConnectorLine' + data.connectorLineId + '" style="background-color:black">';
|
|
11164
11351
|
let div = '<div class="' + connectorLineContainer +
|
|
11165
11352
|
'" tabindex="-1" style="';
|
|
11353
|
+
let direction = this.parent.enableRtl ? 'right:' : 'left:';
|
|
11166
11354
|
const eLine = '<div class="' + connectorLine + '" style="' +
|
|
11167
11355
|
(!isNullOrUndefined(this.lineColor) ? 'outline-color:' + this.lineColor + ';' : '');
|
|
11168
|
-
|
|
11169
|
-
|
|
11170
|
-
|
|
11171
|
-
|
|
11172
|
-
|
|
11173
|
-
|
|
11356
|
+
let rightArrow;
|
|
11357
|
+
let leftArrow;
|
|
11358
|
+
if (this.parent.enableRtl) {
|
|
11359
|
+
leftArrow = '<div class="' + connectorLineRightArrow + '" style="' +
|
|
11360
|
+
(!isNullOrUndefined(this.lineColor) ? 'outline-color:' + this.lineColor + ';' : '');
|
|
11361
|
+
rightArrow = '<div class="' + connectorLineLeftArrow + '" style="' +
|
|
11362
|
+
(!isNullOrUndefined(this.lineColor) ? 'outline-color:' + this.lineColor + ';' : '');
|
|
11363
|
+
}
|
|
11364
|
+
else {
|
|
11365
|
+
rightArrow = '<div class="' + connectorLineRightArrow + '" style="' +
|
|
11366
|
+
(!isNullOrUndefined(this.lineColor) ? 'outline-color:' + this.lineColor + ';' : '');
|
|
11367
|
+
leftArrow = '<div class="' + connectorLineLeftArrow + '" style="' +
|
|
11368
|
+
(!isNullOrUndefined(this.lineColor) ? 'outline-color:' + this.lineColor + ';' : '');
|
|
11369
|
+
}
|
|
11370
|
+
const duplicateStingOne = leftArrow + (isMilestone ? (this.parent.enableRtl ? 'right:0px;' : 'left:0px;') : '') +
|
|
11371
|
+
this.getBorderStyles((this.parent.enableRtl ? 'left' : 'right'), 10) +
|
|
11174
11372
|
'top:' + (-5 - this.lineStroke + (this.lineStroke - 1)) + 'px;border-bottom-width:' + (5 + this.lineStroke) + 'px;' +
|
|
11175
11373
|
'border-top-width:' + (5 + this.lineStroke) + 'px;width:0;height:0;position:relative;"></div>';
|
|
11176
|
-
const duplicateStingTwo = this.getBorderStyles('left', 10) +
|
|
11374
|
+
const duplicateStingTwo = this.getBorderStyles((this.parent.enableRtl ? 'right' : 'left'), 10) +
|
|
11177
11375
|
'top:' + (-6) + 'px;border-bottom-width:' + (5 + this.lineStroke) + 'px;' +
|
|
11178
11376
|
'border-top-width:' + (5 + this.lineStroke) + 'px;width:0;height:0;position:relative;"></div>';
|
|
11179
11377
|
const duplicateStingThree = this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>' + eLine +
|
|
11180
11378
|
'top:' + (-(13 + ((this.lineStroke - 1) * 2))) + 'px;width:0px;' + this.getBorderStyles('left', this.lineStroke) +
|
|
11181
11379
|
this.getBorderStyles('top', (heightValue + borderTopWidth - (this.lineStroke - 1))) + 'position:relative;"></div>';
|
|
11182
|
-
const duplicateStingFour = leftArrow + 'left:' +
|
|
11380
|
+
const duplicateStingFour = leftArrow + (this.parent.enableRtl ? 'right:' : 'left:') +
|
|
11183
11381
|
(((data.childLeft + data.childWidth) - (data.parentLeft)) + 10) + 'px;' +
|
|
11184
|
-
this.getBorderStyles('right', 10);
|
|
11382
|
+
this.getBorderStyles((this.parent.enableRtl ? 'left' : 'right'), 10);
|
|
11185
11383
|
const duplicateStingFive = 'top:' + (-(6 + (5 + this.lineStroke) + (this.lineStroke / 2))) + 'px;' +
|
|
11186
11384
|
this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
|
|
11187
11385
|
if (this.getParentPosition(data) === 'FSType1') {
|
|
11188
|
-
div = div +
|
|
11386
|
+
div = div + direction + (data.parentLeft + data.parentWidth) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
|
|
11189
11387
|
((data.parentIndex * data.rowHeight) + addTop + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
|
|
11190
11388
|
'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="FSType1">';
|
|
11191
11389
|
div = div + eLine;
|
|
11192
|
-
div = div +
|
|
11390
|
+
div = div + direction + (isMilestoneParent ? -1 : 0) + 'px;width:' + (isMilestoneParent ?
|
|
11193
11391
|
((((data.childLeft - (data.parentLeft + data.parentWidth + 10)) + this.lineStroke) - 10) + 1) :
|
|
11194
11392
|
(((data.childLeft - (data.parentLeft + data.parentWidth + 10)) + this.lineStroke) - 10)) + 'px;' +
|
|
11195
11393
|
this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
|
|
11196
11394
|
div = div + eLine;
|
|
11197
|
-
div = div +
|
|
11395
|
+
div = div + direction + ((data.childLeft - (data.parentLeft + data.parentWidth + 10)) - 10) + 'px;' +
|
|
11198
11396
|
'width:0px;' + this.getBorderStyles('right', this.lineStroke) +
|
|
11199
11397
|
this.getBorderStyles('top', (heightValue + borderTopWidth - this.lineStroke)) + 'position:relative;"></div>';
|
|
11200
11398
|
div = div + eLine;
|
|
11201
|
-
div = div +
|
|
11399
|
+
div = div + direction + ((data.childLeft - (data.parentLeft + data.parentWidth + 10)) - 10) + 'px;width:10px;' +
|
|
11202
11400
|
this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
|
|
11203
11401
|
div = div + rightArrow;
|
|
11204
|
-
div = div +
|
|
11205
|
-
this.getBorderStyles('left', 10) + 'top:' + (-6 - this.lineStroke) + 'px;border-bottom-width:' + (5 + this.lineStroke) +
|
|
11402
|
+
div = div + direction + (data.childLeft - (data.parentLeft + data.parentWidth + 10)) + 'px;' +
|
|
11403
|
+
this.getBorderStyles((this.parent.enableRtl ? 'right' : 'left'), 10) + 'top:' + (-6 - this.lineStroke) + 'px;border-bottom-width:' + (5 + this.lineStroke) +
|
|
11206
11404
|
'px;border-top-width:' + (5 + this.lineStroke) + 'px;width:0;height:0;position:relative;"></div></div>';
|
|
11207
11405
|
}
|
|
11208
11406
|
if (this.getParentPosition(data) === 'FSType2') {
|
|
11209
|
-
div = div +
|
|
11407
|
+
div = div + direction + data.parentLeft + 'px;top:' + (isVirtual ? connectorLine$$1.top : ((data.parentIndex * data.rowHeight) + addTop +
|
|
11210
11408
|
this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
|
|
11211
11409
|
'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="FSType2">';
|
|
11212
11410
|
div = div + eLine;
|
|
11213
|
-
div = div +
|
|
11411
|
+
div = div + direction + (isMilestoneParent ? data.parentWidth - 1 : data.parentWidth) + 'px;width:' +
|
|
11214
11412
|
(isMilestoneParent ? 11 : 10) + 'px;' +
|
|
11215
11413
|
this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
|
|
11216
11414
|
div = div + eLine;
|
|
11217
|
-
div = div +
|
|
11415
|
+
div = div + direction + (data.parentWidth + 10 - this.lineStroke) + 'px;' +
|
|
11218
11416
|
this.getBorderStyles('left', this.lineStroke) + 'width:0px;' +
|
|
11219
11417
|
this.getBorderStyles('top', (heightValue + borderTopWidth - this.getconnectorLineGap(data) - this.lineStroke)) + 'position:relative;"></div>';
|
|
11220
11418
|
div = div + eLine;
|
|
11221
|
-
div = div +
|
|
11419
|
+
div = div + direction + (data.parentWidth - (((data.parentLeft + data.parentWidth) - data.childLeft) + 20)) + 'px;' +
|
|
11222
11420
|
'width:' + (((data.parentLeft + data.parentWidth) - data.childLeft) + 30) + 'px;' +
|
|
11223
11421
|
this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
|
|
11224
11422
|
div = div + eLine;
|
|
11225
|
-
div = div +
|
|
11423
|
+
div = div + direction + (data.parentWidth - (((data.parentLeft +
|
|
11226
11424
|
data.parentWidth) - data.childLeft) + 20)) + 'px;width:0px;' +
|
|
11227
11425
|
this.getBorderStyles('top', (this.getconnectorLineGap(data) - this.lineStroke)) +
|
|
11228
11426
|
this.getBorderStyles('left', this.lineStroke) + 'position:relative;"></div>';
|
|
11229
11427
|
div = div + eLine;
|
|
11230
|
-
div = div +
|
|
11428
|
+
div = div + direction + (data.parentWidth - (((data.parentLeft +
|
|
11231
11429
|
data.parentWidth) - data.childLeft) + 20)) + 'px;width:10px;' +
|
|
11232
11430
|
this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
|
|
11233
11431
|
div = div + rightArrow;
|
|
11234
|
-
div = div +
|
|
11235
|
-
this.getBorderStyles('left', 10) + 'border-bottom-width:' + (5 + this.lineStroke) + 'px;' +
|
|
11432
|
+
div = div + direction + (data.parentWidth - (((data.parentLeft + data.parentWidth) - data.childLeft) + 10)) + 'px;' +
|
|
11433
|
+
this.getBorderStyles((this.parent.enableRtl ? 'right' : 'left'), 10) + 'border-bottom-width:' + (5 + this.lineStroke) + 'px;' +
|
|
11236
11434
|
'border-top-width:' + (5 + this.lineStroke) + 'px;top:' + (-6 - this.lineStroke) +
|
|
11237
11435
|
'px;width:0;height:0;position:relative;"></div></div>';
|
|
11238
11436
|
}
|
|
11239
11437
|
if (this.getParentPosition(data) === 'FSType3') {
|
|
11240
|
-
div = div +
|
|
11438
|
+
div = div + direction + (data.childLeft - 20) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
|
|
11241
11439
|
((data.childIndex * data.rowHeight) + addTop + this.getTaskbarMidpoint(isMilestoneParent) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
|
|
11242
11440
|
'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="FSType3">';
|
|
11243
11441
|
div = div + rightArrow;
|
|
11244
|
-
div = div + '
|
|
11442
|
+
div = div + direction + '10px;' + this.getBorderStyles((this.parent.enableRtl ? 'right' : 'left'), 10) +
|
|
11245
11443
|
'border-bottom-width:' + (5 + this.lineStroke) + 'px;border-top-width:' + (5 + this.lineStroke) + 'px;' +
|
|
11246
11444
|
'top:' + (-6) + 'px;width:0;height:0;position:relative;"></div>';
|
|
11247
11445
|
div = div + eLine;
|
|
@@ -11255,49 +11453,49 @@ class ConnectorLine {
|
|
|
11255
11453
|
this.getBorderStyles('top', this.lineStroke) + 'position:relative;top:' +
|
|
11256
11454
|
(-(13 + ((this.lineStroke - 1) * 2))) + 'px;"></div>';
|
|
11257
11455
|
div = div + eLine;
|
|
11258
|
-
div = div +
|
|
11456
|
+
div = div + direction + (((data.parentLeft + data.parentWidth) - data.childLeft) + (30 - this.lineStroke)) +
|
|
11259
11457
|
'px;width:0px;' + 'height:' + (this.getconnectorLineGap(data) - this.lineStroke) + 'px;' +
|
|
11260
11458
|
this.getBorderStyles('left', this.lineStroke) + 'position:relative;' +
|
|
11261
11459
|
'top:' + (-(13 + ((this.lineStroke - 1) * 2))) + 'px;"></div>';
|
|
11262
11460
|
div = div + eLine;
|
|
11263
|
-
div = div + (isMilestoneParent ?
|
|
11264
|
-
data.parentWidth) - data.childLeft) + (18 - this.lineStroke)) + 'px;width:' + (12 + this.lineStroke) + 'px;' :
|
|
11461
|
+
div = div + (isMilestoneParent ? direction + (((data.parentLeft +
|
|
11462
|
+
data.parentWidth) - data.childLeft) + (18 - this.lineStroke)) + 'px;width:' + (12 + this.lineStroke) + 'px;' : direction +
|
|
11265
11463
|
(((data.parentLeft + data.parentWidth) - data.childLeft) + 20) + 'px;width:10px;') +
|
|
11266
11464
|
this.getBorderStyles('top', this.lineStroke) + 'position:relative;top:' +
|
|
11267
11465
|
(-(13 + ((this.lineStroke - 1) * 2))) + 'px;"></div></div>';
|
|
11268
11466
|
}
|
|
11269
11467
|
if (this.getParentPosition(data) === 'FSType4') {
|
|
11270
|
-
div = div +
|
|
11468
|
+
div = div + direction + (data.parentLeft + data.parentWidth) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
|
|
11271
11469
|
((data.childIndex * data.rowHeight) + addTop + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
|
|
11272
11470
|
'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="FSType4">';
|
|
11273
11471
|
div = div + rightArrow;
|
|
11274
|
-
div = div +
|
|
11275
|
-
this.getBorderStyles('left', 10) + 'top:' + (-6) + 'px;' +
|
|
11472
|
+
div = div + direction + (data.childLeft - (data.parentLeft + data.parentWidth + 10)) + 'px;' +
|
|
11473
|
+
this.getBorderStyles((this.parent.enableRtl ? 'right' : 'left'), 10) + 'top:' + (-6) + 'px;' +
|
|
11276
11474
|
'border-bottom-width:' + (5 + this.lineStroke) + 'px;border-top-width:' +
|
|
11277
11475
|
(5 + this.lineStroke) + 'px;width:0;height:0;position:relative;"></div>';
|
|
11278
11476
|
div = div + eLine;
|
|
11279
|
-
div = div +
|
|
11477
|
+
div = div + direction + (data.childLeft - (data.parentLeft + data.parentWidth) - 20) +
|
|
11280
11478
|
'px;top:' + (-(6 + (5 + this.lineStroke) + Math.round(this.lineStroke / 2))) + 'px;width:10px;' +
|
|
11281
11479
|
this.getBorderStyles('top', this.lineStroke) +
|
|
11282
11480
|
'position:relative;"></div>';
|
|
11283
11481
|
div = div + eLine;
|
|
11284
|
-
div = div + 'top:' + (-(13 + ((this.lineStroke - 1) * 2))) + 'px;
|
|
11482
|
+
div = div + 'top:' + (-(13 + ((this.lineStroke - 1) * 2))) + 'px;' + direction +
|
|
11285
11483
|
(data.childLeft - (data.parentLeft + data.parentWidth) - 20) + 'px;width:0px;' +
|
|
11286
11484
|
this.getBorderStyles('left', this.lineStroke) +
|
|
11287
11485
|
this.getBorderStyles('top', (heightValue + borderTopWidth - this.lineStroke + 1)) + 'position:relative;"></div>';
|
|
11288
11486
|
div = div + eLine;
|
|
11289
|
-
div = div + (isMilestoneParent ? '
|
|
11487
|
+
div = div + (isMilestoneParent ? direction + '-1px;' : '') + 'top:' +
|
|
11290
11488
|
(-(13 + ((this.lineStroke - 1) * 2))) + 'px;width:' +
|
|
11291
11489
|
(isMilestoneParent ? ((data.childLeft - (data.parentLeft + data.parentWidth + 20) + 1) + this.lineStroke) :
|
|
11292
11490
|
((data.childLeft - (data.parentLeft + data.parentWidth + 20)) + this.lineStroke)) + 'px;' +
|
|
11293
11491
|
this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div></div>';
|
|
11294
11492
|
}
|
|
11295
11493
|
if (this.getParentPosition(data) === 'SSType4') {
|
|
11296
|
-
div = div +
|
|
11494
|
+
div = div + direction + (data.parentLeft - 10) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
|
|
11297
11495
|
((data.childIndex * data.rowHeight) + addTop + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
|
|
11298
11496
|
'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="SSType4">';
|
|
11299
11497
|
div = div + rightArrow;
|
|
11300
|
-
div = div +
|
|
11498
|
+
div = div + direction + (data.childLeft - data.parentLeft) + 'px;' + duplicateStingTwo;
|
|
11301
11499
|
div = div + eLine;
|
|
11302
11500
|
div = div + 'top:' + (-(6 + (5 + this.lineStroke) + (this.lineStroke / 2))) + 'px;width:' +
|
|
11303
11501
|
(data.childLeft - data.parentLeft) + 'px;' + duplicateStingThree;
|
|
@@ -11306,11 +11504,11 @@ class ConnectorLine {
|
|
|
11306
11504
|
this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div></div>';
|
|
11307
11505
|
}
|
|
11308
11506
|
if (this.getParentPosition(data) === 'SSType3') {
|
|
11309
|
-
div = div +
|
|
11507
|
+
div = div + direction + (data.childLeft - 20) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
|
|
11310
11508
|
((data.childIndex * data.rowHeight) + addTop + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
|
|
11311
11509
|
'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="SSType3">';
|
|
11312
11510
|
div = div + rightArrow;
|
|
11313
|
-
div = div + '
|
|
11511
|
+
div = div + direction + '10px;' + duplicateStingTwo;
|
|
11314
11512
|
div = div + eLine;
|
|
11315
11513
|
div = div + 'top:' + (-(6 + (5 + this.lineStroke) + (this.lineStroke / 2))) + 'px;width:10px;' + duplicateStingThree;
|
|
11316
11514
|
div = div + eLine;
|
|
@@ -11319,7 +11517,7 @@ class ConnectorLine {
|
|
|
11319
11517
|
this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div></div>';
|
|
11320
11518
|
}
|
|
11321
11519
|
if (this.getParentPosition(data) === 'SSType2') {
|
|
11322
|
-
div = div +
|
|
11520
|
+
div = div + direction + setInnerElementLeftSSType2 + 'px;top:' + (isVirtual ? connectorLine$$1.top :
|
|
11323
11521
|
((data.parentIndex * data.rowHeight) + addTop + this.getTaskbarMidpoint(isMilestoneParent) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
|
|
11324
11522
|
'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="SSType2">';
|
|
11325
11523
|
div = div + eLine;
|
|
@@ -11332,14 +11530,14 @@ class ConnectorLine {
|
|
|
11332
11530
|
div = div + 'width:' + setInnerElementWidthSSType2 + 'px;' +
|
|
11333
11531
|
this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
|
|
11334
11532
|
div = div + rightArrow;
|
|
11335
|
-
div = div +
|
|
11336
|
-
this.getBorderStyles('left', 10) + 'top:' + (-6 - this.lineStroke) + 'px;' +
|
|
11533
|
+
div = div + direction + setInnerElementWidthSSType2 + 'px;' +
|
|
11534
|
+
this.getBorderStyles((this.parent.enableRtl ? 'right' : 'left'), 10) + 'top:' + (-6 - this.lineStroke) + 'px;' +
|
|
11337
11535
|
'border-bottom-width:' + (5 + this.lineStroke) + 'px;border-top-width:' +
|
|
11338
11536
|
(5 + this.lineStroke) + 'px;width:0;' +
|
|
11339
11537
|
'height:0;position:relative;"></div></div>';
|
|
11340
11538
|
}
|
|
11341
11539
|
if (this.getParentPosition(data) === 'SSType1') {
|
|
11342
|
-
div = div +
|
|
11540
|
+
div = div + direction + (data.childLeft - 20) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
|
|
11343
11541
|
((data.parentIndex * data.rowHeight) + addTop +
|
|
11344
11542
|
this.getTaskbarMidpoint(isMilestoneParent) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
|
|
11345
11543
|
'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="SSType1">';
|
|
@@ -11352,114 +11550,114 @@ class ConnectorLine {
|
|
|
11352
11550
|
div = div + eLine;
|
|
11353
11551
|
div = div + 'width:10px;' + this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
|
|
11354
11552
|
div = div + rightArrow;
|
|
11355
|
-
div = div + '
|
|
11553
|
+
div = div + direction + '10px;' + this.getBorderStyles((this.parent.enableRtl ? 'right' : 'left'), 10) +
|
|
11356
11554
|
'top:' + (-6 - this.lineStroke) + 'px;border-bottom-width:' + (5 + this.lineStroke) + 'px;' +
|
|
11357
11555
|
'border-top-width:' + (5 + this.lineStroke) + 'px;width:0;height:0;position:relative;"></div></div>';
|
|
11358
11556
|
}
|
|
11359
11557
|
if (this.getParentPosition(data) === 'FFType1') {
|
|
11360
|
-
div = div +
|
|
11558
|
+
div = div + direction + (data.childLeft + data.childWidth) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
|
|
11361
11559
|
((data.parentIndex * data.rowHeight) + addTop + this.getTaskbarMidpoint(isMilestoneParent) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
|
|
11362
11560
|
'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="FFType1">';
|
|
11363
11561
|
div = div + eLine;
|
|
11364
|
-
div = div +
|
|
11562
|
+
div = div + direction + (isMilestoneParent ? (((data.parentLeft + data.parentWidth) -
|
|
11365
11563
|
(data.childLeft + data.childWidth)) - 1) : ((data.parentLeft + data.parentWidth) -
|
|
11366
11564
|
(data.childLeft + data.childWidth))) + 'px;' +
|
|
11367
11565
|
'width:' + (isMilestoneParent ? (21 + this.lineStroke) : (20 + this.lineStroke)) + 'px;' +
|
|
11368
11566
|
this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
|
|
11369
11567
|
div = div + eLine;
|
|
11370
|
-
div = div +
|
|
11568
|
+
div = div + direction + (((data.parentLeft + data.parentWidth) -
|
|
11371
11569
|
(data.childLeft + data.childWidth)) + 20) + 'px;width:0px;' + this.getBorderStyles('left', this.lineStroke) +
|
|
11372
11570
|
this.getBorderStyles('top', (heightValue + borderTopWidth - this.lineStroke)) + 'position:relative;"></div>';
|
|
11373
11571
|
div = div + eLine;
|
|
11374
|
-
div = div +
|
|
11572
|
+
div = div + direction + (isMilestone ? 4 : 10) + 'px;width:' + (isMilestone ?
|
|
11375
11573
|
(((data.parentLeft + data.parentWidth) - (data.childLeft + data.childWidth)) + (16 + this.lineStroke)) :
|
|
11376
11574
|
(((data.parentLeft + data.parentWidth) - (data.childLeft + data.childWidth)) + (10 + this.lineStroke))) + 'px;' +
|
|
11377
11575
|
this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
|
|
11378
11576
|
div = div + leftArrow;
|
|
11379
|
-
div = div + (isMilestone ? '
|
|
11577
|
+
div = div + (isMilestone ? direction + '0px;' : '') + this.getBorderStyles((!this.parent.enableRtl ? 'right' : 'left'), 10) +
|
|
11380
11578
|
'top:' + (-6 - this.lineStroke) + 'px;border-bottom-width:' + (5 + this.lineStroke) + 'px;' +
|
|
11381
11579
|
'border-top-width:' + (5 + this.lineStroke) + 'px;width:0;height:0;position:relative;"></div></div>';
|
|
11382
11580
|
}
|
|
11383
11581
|
if (this.getParentPosition(data) === 'FFType2') {
|
|
11384
|
-
div = div +
|
|
11582
|
+
div = div + direction + (data.parentLeft + data.parentWidth) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
|
|
11385
11583
|
((data.parentIndex * data.rowHeight) + addTop + this.getTaskbarMidpoint(isMilestoneParent) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
|
|
11386
11584
|
'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="FFType2">';
|
|
11387
11585
|
div = div + eLine;
|
|
11388
|
-
div = div + (isMilestoneParent ? '
|
|
11586
|
+
div = div + (isMilestoneParent ? direction + '-1px;' : '') + 'width:' +
|
|
11389
11587
|
(isMilestoneParent ? (((data.childLeft + data.childWidth) - (data.parentLeft + data.parentWidth)) +
|
|
11390
11588
|
(21 + this.lineStroke)) : (((data.childLeft + data.childWidth) -
|
|
11391
11589
|
(data.parentLeft + data.parentWidth)) + (20 + this.lineStroke))) + 'px;' +
|
|
11392
11590
|
this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
|
|
11393
11591
|
div = div + eLine;
|
|
11394
|
-
div = div +
|
|
11592
|
+
div = div + direction + (((data.childLeft + data.childWidth) - (data.parentLeft + data.parentWidth)) + 20) +
|
|
11395
11593
|
'px;width:0px;' + this.getBorderStyles('left', this.lineStroke) +
|
|
11396
11594
|
this.getBorderStyles('top', (heightValue + borderTopWidth - this.lineStroke)) +
|
|
11397
11595
|
'position:relative;"></div>';
|
|
11398
11596
|
div = div + eLine;
|
|
11399
|
-
div = div +
|
|
11597
|
+
div = div + direction + (isMilestone ? (((data.childLeft + data.childWidth) - (data.parentLeft + data.parentWidth)) + 4) :
|
|
11400
11598
|
(((data.childLeft + data.childWidth) - (data.parentLeft + data.parentWidth)) + 10)) + 'px;' +
|
|
11401
11599
|
'width:' + (isMilestone ? (16 + this.lineStroke) : (10 + this.lineStroke)) + 'px;' +
|
|
11402
11600
|
this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
|
|
11403
11601
|
div = div + leftArrow;
|
|
11404
|
-
div = div +
|
|
11405
|
-
this.getBorderStyles('right', 10) + 'top:' + (-6 - this.lineStroke) + 'px;' +
|
|
11602
|
+
div = div + direction + ((data.childLeft + data.childWidth) - (data.parentLeft + data.parentWidth)) + 'px;' +
|
|
11603
|
+
this.getBorderStyles((!this.parent.enableRtl ? 'right' : 'left'), 10) + 'top:' + (-6 - this.lineStroke) + 'px;' +
|
|
11406
11604
|
'border-bottom-width:' + (5 + this.lineStroke) + 'px;border-top-width:' + (5 + this.lineStroke) +
|
|
11407
11605
|
'px;width:0;height:0;position:relative;"></div></div>';
|
|
11408
11606
|
}
|
|
11409
11607
|
if (this.getParentPosition(data) === 'FFType3') {
|
|
11410
|
-
div = div +
|
|
11608
|
+
div = div + direction + (data.childLeft + data.childWidth) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
|
|
11411
11609
|
((data.childIndex * data.rowHeight) + addTop + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
|
|
11412
11610
|
'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="FFType3">';
|
|
11413
11611
|
div = div + duplicateStingOne;
|
|
11414
11612
|
div = div + eLine;
|
|
11415
|
-
div = div + (isMilestone ? ('
|
|
11613
|
+
div = div + (isMilestone ? (direction + '4px;width:' +
|
|
11416
11614
|
(((data.parentLeft + data.parentWidth) - (data.childLeft + data.childWidth)) + 16)) :
|
|
11417
|
-
('
|
|
11615
|
+
(direction + '10px;width:' + (((data.parentLeft + data.parentWidth) -
|
|
11418
11616
|
(data.childLeft + data.childWidth)) + 10))) + 'px;top:' + (-(6 + (5 + this.lineStroke) +
|
|
11419
11617
|
(this.lineStroke / 2))) + 'px;' + this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
|
|
11420
11618
|
div = div + eLine;
|
|
11421
|
-
div = div +
|
|
11619
|
+
div = div + direction + (((data.parentLeft + data.parentWidth) - (data.childLeft + data.childWidth)) + 20) +
|
|
11422
11620
|
'px;top:' + (-(13 + ((this.lineStroke - 1) * 2))) + 'px;' +
|
|
11423
11621
|
'width:0px;' + this.getBorderStyles('left', this.lineStroke) +
|
|
11424
11622
|
this.getBorderStyles('top', (heightValue + borderTopWidth - this.lineStroke + 1)) + 'position:relative;"></div>';
|
|
11425
11623
|
div = div + eLine;
|
|
11426
|
-
div = div + (isMilestoneParent ? (
|
|
11427
|
-
(data.childLeft + data.childWidth)) - 1) + 'px;width:21') : (
|
|
11624
|
+
div = div + (isMilestoneParent ? (direction + (((data.parentLeft + data.parentWidth) -
|
|
11625
|
+
(data.childLeft + data.childWidth)) - 1) + 'px;width:21') : (direction + ((data.parentLeft + data.parentWidth) -
|
|
11428
11626
|
(data.childLeft + data.childWidth)) + 'px;width:20')) +
|
|
11429
11627
|
'px;top:' + (-(13 + ((this.lineStroke - 1) * 2))) + 'px;' +
|
|
11430
11628
|
this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div></div>';
|
|
11431
11629
|
}
|
|
11432
11630
|
if (this.getParentPosition(data) === 'FFType4') {
|
|
11433
|
-
div = div +
|
|
11631
|
+
div = div + direction + (data.parentLeft + data.parentWidth) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
|
|
11434
11632
|
((data.childIndex * data.rowHeight) + addTop + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
|
|
11435
11633
|
'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="FFType4">';
|
|
11436
11634
|
div = div + leftArrow;
|
|
11437
|
-
div = div + (
|
|
11635
|
+
div = div + (direction + ((data.childLeft + data.childWidth) -
|
|
11438
11636
|
(data.parentLeft + data.parentWidth))) + 'px;' +
|
|
11439
|
-
this.getBorderStyles('right', 10) + 'top:' + (-5 - this.lineStroke + (this.lineStroke - 1)) + 'px;' +
|
|
11637
|
+
this.getBorderStyles((!this.parent.enableRtl ? 'right' : 'left'), 10) + 'top:' + (-5 - this.lineStroke + (this.lineStroke - 1)) + 'px;' +
|
|
11440
11638
|
'border-bottom-width:' + (5 + this.lineStroke) +
|
|
11441
11639
|
'px;border-top-width:' + (5 + this.lineStroke) + 'px;width:0;height:0;' +
|
|
11442
11640
|
'position:relative;"></div>';
|
|
11443
11641
|
div = div + eLine;
|
|
11444
|
-
div = div + (isMilestone ? (
|
|
11642
|
+
div = div + (isMilestone ? (direction + (((data.childLeft + data.childWidth) -
|
|
11445
11643
|
(data.parentLeft + data.parentWidth)) + 4) +
|
|
11446
|
-
'px;width:' + (16 + this.lineStroke)) : (
|
|
11644
|
+
'px;width:' + (16 + this.lineStroke)) : (direction + (((data.childLeft + data.childWidth) -
|
|
11447
11645
|
(data.parentLeft + data.parentWidth)) + 10) + 'px;width:' + (10 + this.lineStroke))) +
|
|
11448
11646
|
'px;' + duplicateStingFive;
|
|
11449
11647
|
div = div + eLine;
|
|
11450
|
-
div = div +
|
|
11648
|
+
div = div + direction + (((data.childLeft + data.childWidth) -
|
|
11451
11649
|
(data.parentLeft + data.parentWidth)) + 20) + 'px;top:' + (-(13 + ((this.lineStroke - 1) * 2))) +
|
|
11452
11650
|
'px;width:0px;' + this.getBorderStyles('left', this.lineStroke) +
|
|
11453
11651
|
this.getBorderStyles('top', (heightValue + borderTopWidth - this.lineStroke + 1)) + 'position:relative;"></div>';
|
|
11454
11652
|
div = div + eLine;
|
|
11455
|
-
div = div + (isMilestoneParent ? ('
|
|
11653
|
+
div = div + (isMilestoneParent ? (direction + '-1px;width:' + (((data.childLeft + data.childWidth) -
|
|
11456
11654
|
(data.parentLeft + data.parentWidth)) + (21 + this.lineStroke))) : ('width:' + (((data.childLeft + data.childWidth) -
|
|
11457
11655
|
(data.parentLeft + data.parentWidth)) + (20 + this.lineStroke)))) + 'px;top:' +
|
|
11458
11656
|
(-(13 + ((this.lineStroke - 1) * 2))) + 'px;' +
|
|
11459
11657
|
this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div></div>';
|
|
11460
11658
|
}
|
|
11461
11659
|
if (this.getParentPosition(data) === 'SFType4') {
|
|
11462
|
-
div = div +
|
|
11660
|
+
div = div + direction + (data.parentLeft - 10) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
|
|
11463
11661
|
((data.childIndex * data.rowHeight) + addTop + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;width:1px;' +
|
|
11464
11662
|
'height:' + heightValue + 'px;position:absolute" data-connectortype="SFType4">';
|
|
11465
11663
|
div = div + duplicateStingFour + 'top:' + (-5 - this.lineStroke + (this.lineStroke - 1)) + 'px;' +
|
|
@@ -11467,11 +11665,11 @@ class ConnectorLine {
|
|
|
11467
11665
|
'px;border-top-width:' + (5 + this.lineStroke) + 'px;width:0;height:0;' +
|
|
11468
11666
|
'position:relative;"></div>';
|
|
11469
11667
|
div = div + eLine;
|
|
11470
|
-
div = div +
|
|
11668
|
+
div = div + direction + (isMilestone ? ((((data.childLeft + data.childWidth) - (data.parentLeft)) + (14 + this.lineStroke)) +
|
|
11471
11669
|
'px;width:16') : ((((data.childLeft + data.childWidth) - (data.parentLeft)) + 20) + 'px;width:' +
|
|
11472
11670
|
(10 + this.lineStroke))) + 'px;' + duplicateStingFive;
|
|
11473
11671
|
div = div + eLine;
|
|
11474
|
-
div = div +
|
|
11672
|
+
div = div + direction + (((data.childLeft + data.childWidth) - (data.parentLeft)) + 30) + 'px;top:' +
|
|
11475
11673
|
(-(13 + ((this.lineStroke - 1) * 2))) + 'px;width:0px;' + this.getBorderStyles('left', this.lineStroke) +
|
|
11476
11674
|
this.getBorderStyles('top', (heightValue + borderTopWidth - this.getconnectorLineGap(data) - (this.lineStroke - 1))) + 'position:relative;"></div>';
|
|
11477
11675
|
div = div + eLine;
|
|
@@ -11487,25 +11685,25 @@ class ConnectorLine {
|
|
|
11487
11685
|
this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div></div>';
|
|
11488
11686
|
}
|
|
11489
11687
|
if (this.getParentPosition(data) === 'SFType3') {
|
|
11490
|
-
div = div +
|
|
11688
|
+
div = div + direction + (data.childLeft + data.childWidth) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
|
|
11491
11689
|
((data.childIndex * data.rowHeight) + addTop + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
|
|
11492
11690
|
'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="SFType3">';
|
|
11493
11691
|
div = div + duplicateStingOne;
|
|
11494
11692
|
div = div + eLine;
|
|
11495
|
-
div = div + (isMilestone ? '
|
|
11693
|
+
div = div + (isMilestone ? direction + '4px;width:' + (16 + this.lineStroke) : direction + '10px;width:' +
|
|
11496
11694
|
(10 + this.lineStroke)) + 'px;top:' + (-(13 + ((this.lineStroke - 1) * 2) - 1)) + 'px;' +
|
|
11497
11695
|
this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
|
|
11498
11696
|
div = div + eLine;
|
|
11499
|
-
div = div + '
|
|
11697
|
+
div = div + direction + '20px;top:' + (-(13 + ((this.lineStroke - 1) * 2))) + 'px;width:0px;' +
|
|
11500
11698
|
this.getBorderStyles('left', this.lineStroke) +
|
|
11501
11699
|
this.getBorderStyles('top', (heightValue + borderTopWidth - (this.lineStroke - 1))) + 'position:relative;"></div>';
|
|
11502
11700
|
div = div + eLine;
|
|
11503
|
-
div = div + '
|
|
11701
|
+
div = div + direction + '20px;top:' + (-(13 + ((this.lineStroke - 1) * 2))) + 'px;width:' +
|
|
11504
11702
|
((data.parentLeft - (data.childLeft + data.childWidth + 20)) + this.lineStroke) + 'px;' +
|
|
11505
11703
|
this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div></div>';
|
|
11506
11704
|
}
|
|
11507
11705
|
if (this.getParentPosition(data) === 'SFType1') {
|
|
11508
|
-
div = div +
|
|
11706
|
+
div = div + direction + (data.parentLeft - 10) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
|
|
11509
11707
|
((data.parentIndex * data.rowHeight) + addTop + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
|
|
11510
11708
|
'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="SFType1">';
|
|
11511
11709
|
div = div + eLine;
|
|
@@ -11517,12 +11715,12 @@ class ConnectorLine {
|
|
|
11517
11715
|
div = div + 'width:' + (((data.childLeft + data.childWidth) - (data.parentLeft)) + (30 + this.lineStroke)) + 'px;' +
|
|
11518
11716
|
this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
|
|
11519
11717
|
div = div + eLine;
|
|
11520
|
-
div = div +
|
|
11718
|
+
div = div + direction + (((data.childLeft + data.childWidth) - (data.parentLeft)) + 30) +
|
|
11521
11719
|
'px;width:0px;' + this.getBorderStyles('left', this.lineStroke) +
|
|
11522
11720
|
this.getBorderStyles('top', (this.getconnectorLineGap(data) - this.lineStroke)) + 'position:relative;"></div>';
|
|
11523
11721
|
div = div + eLine;
|
|
11524
|
-
div = div + (isMilestone ? (
|
|
11525
|
-
(data.parentLeft)) + 15) + 'px;width:' + (15 + this.lineStroke)) : (
|
|
11722
|
+
div = div + (isMilestone ? (direction + (((data.childLeft + data.childWidth) -
|
|
11723
|
+
(data.parentLeft)) + 15) + 'px;width:' + (15 + this.lineStroke)) : (direction +
|
|
11526
11724
|
(((data.childLeft + data.childWidth) - (data.parentLeft)) + 20) + 'px;width:' + (10 + this.lineStroke))) + 'px;' +
|
|
11527
11725
|
this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
|
|
11528
11726
|
div = div + duplicateStingFour + 'top:' + (-6 - this.lineStroke) + 'px;' +
|
|
@@ -11530,23 +11728,23 @@ class ConnectorLine {
|
|
|
11530
11728
|
(5 + this.lineStroke) + 'px;position:relative;"></div></div>';
|
|
11531
11729
|
}
|
|
11532
11730
|
if (this.getParentPosition(data) === 'SFType2') {
|
|
11533
|
-
div = div +
|
|
11731
|
+
div = div + direction + (data.childLeft + data.childWidth) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
|
|
11534
11732
|
((data.parentIndex * data.rowHeight) + addTop + this.getTaskbarMidpoint(isMilestoneParent) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
|
|
11535
11733
|
'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="SFType2">';
|
|
11536
11734
|
div = div + eLine;
|
|
11537
|
-
div = div +
|
|
11735
|
+
div = div + direction + (((data.parentLeft) - (data.childLeft + data.childWidth)) - 10) +
|
|
11538
11736
|
'px;width:11px;' + this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
|
|
11539
11737
|
div = div + eLine;
|
|
11540
|
-
div = div +
|
|
11738
|
+
div = div + direction + (((data.parentLeft) - (data.childLeft + data.childWidth)) - 10) +
|
|
11541
11739
|
'px;width:0px;' + this.getBorderStyles('left', this.lineStroke) +
|
|
11542
11740
|
this.getBorderStyles('top', (heightValue + borderTopWidth - this.lineStroke)) + 'position:relative;"></div>';
|
|
11543
11741
|
div = div + eLine;
|
|
11544
|
-
div = div + (isMilestone ? ('
|
|
11545
|
-
- (14 - this.lineStroke))) : ('
|
|
11742
|
+
div = div + (isMilestone ? (direction + '4px;width:' + (((data.parentLeft) - (data.childLeft + data.childWidth))
|
|
11743
|
+
- (14 - this.lineStroke))) : (direction + '10px;width:' + (((data.parentLeft) -
|
|
11546
11744
|
(data.childLeft + data.childWidth)) - (20 - this.lineStroke)))) +
|
|
11547
11745
|
'px;' + this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
|
|
11548
11746
|
div = div + leftArrow;
|
|
11549
|
-
div = div + '
|
|
11747
|
+
div = div + direction + '0px;' + this.getBorderStyles((this.parent.enableRtl ? 'right' : 'left'), 10) +
|
|
11550
11748
|
'top:' + (-6 - this.lineStroke) + 'px;border-bottom-width:' + (5 + this.lineStroke) +
|
|
11551
11749
|
'px;border-top-width:' + (5 + this.lineStroke) + 'px;width:0;height:0;position:relative;"></div></div>';
|
|
11552
11750
|
}
|
|
@@ -11733,12 +11931,19 @@ class Splitter$1 {
|
|
|
11733
11931
|
this.parent.splitterElement = createElement('div', { className: splitter });
|
|
11734
11932
|
this.parent.treeGridPane = createElement('div', { className: treeGridPane });
|
|
11735
11933
|
this.parent.chartPane = createElement('div', { className: ganttChartPane });
|
|
11736
|
-
|
|
11737
|
-
|
|
11934
|
+
if (this.parent.enableRtl) {
|
|
11935
|
+
this.parent.splitterElement.appendChild(this.parent.chartPane);
|
|
11936
|
+
this.parent.splitterElement.appendChild(this.parent.treeGridPane);
|
|
11937
|
+
}
|
|
11938
|
+
else {
|
|
11939
|
+
this.parent.splitterElement.appendChild(this.parent.treeGridPane);
|
|
11940
|
+
this.parent.splitterElement.appendChild(this.parent.chartPane);
|
|
11941
|
+
}
|
|
11738
11942
|
this.splitterObject = new Splitter({
|
|
11739
11943
|
height: null,
|
|
11740
11944
|
width: this.parent.ganttWidth.toString(),
|
|
11741
11945
|
enablePersistence: this.parent.enablePersistence,
|
|
11946
|
+
enableRtl: this.parent.enableRtl,
|
|
11742
11947
|
separatorSize: this.parent.splitterSettings.separatorSize,
|
|
11743
11948
|
paneSettings: [
|
|
11744
11949
|
{
|
|
@@ -11752,6 +11957,9 @@ class Splitter$1 {
|
|
|
11752
11957
|
],
|
|
11753
11958
|
orientation: 'Horizontal',
|
|
11754
11959
|
resizeStart: (args) => {
|
|
11960
|
+
if (this.parent.contextMenuModule && this.parent.contextMenuModule.isOpen) {
|
|
11961
|
+
this.parent.contextMenuModule.contextMenu.close();
|
|
11962
|
+
}
|
|
11755
11963
|
const leftPane = args.pane[0];
|
|
11756
11964
|
const rightPane = args.pane[1];
|
|
11757
11965
|
this.splitterPreviousPositionGrid = leftPane.scrollWidth + 1 + 'px';
|
|
@@ -11913,6 +12121,7 @@ class Tooltip$1 {
|
|
|
11913
12121
|
'.e-taskbar-left-resizer, .e-taskbar-right-resizer, .e-baseline-gantt-milestone, .e-gantt-manualparenttaskbar';
|
|
11914
12122
|
this.toolTipObj.position = 'BottomCenter';
|
|
11915
12123
|
this.toolTipObj.openDelay = 700;
|
|
12124
|
+
this.toolTipObj.enableRtl = this.parent.enableRtl;
|
|
11916
12125
|
this.toolTipObj.enableHtmlSanitizer = false;
|
|
11917
12126
|
this.toolTipObj.cssClass = ganttTooltip;
|
|
11918
12127
|
this.toolTipObj.animation = { open: { effect: 'None', delay: 0 }, close: { effect: 'None', delay: 0 } };
|
|
@@ -12552,6 +12761,7 @@ class FocusModule {
|
|
|
12552
12761
|
const top = containerPosition.top + (containerPosition.height / 2);
|
|
12553
12762
|
const left = containerPosition.left + (containerPosition.width / 2);
|
|
12554
12763
|
this.setActiveElement(e.target);
|
|
12764
|
+
// eslint-disable-next-line security/detect-non-literal-fs-filename
|
|
12555
12765
|
contextMenu.open(top, left);
|
|
12556
12766
|
e.preventDefault();
|
|
12557
12767
|
break;
|
|
@@ -12641,6 +12851,8 @@ var __decorate = (undefined && undefined.__decorate) || function (decorators, ta
|
|
|
12641
12851
|
let Gantt = class Gantt extends Component {
|
|
12642
12852
|
constructor(options, element) {
|
|
12643
12853
|
super(options, element);
|
|
12854
|
+
this.showIndicator = true;
|
|
12855
|
+
this.singleTier = 0;
|
|
12644
12856
|
/** @hidden */
|
|
12645
12857
|
this.isCancelled = false;
|
|
12646
12858
|
/** @hidden */
|
|
@@ -12835,7 +13047,7 @@ let Gantt = class Gantt extends Component {
|
|
|
12835
13047
|
/**
|
|
12836
13048
|
* To check whether the date is in DST.
|
|
12837
13049
|
*
|
|
12838
|
-
* @param {Date} date .
|
|
13050
|
+
* @param {Date} date - Defines the date to check whether it is DST.
|
|
12839
13051
|
* @returns {boolean} .
|
|
12840
13052
|
* @private
|
|
12841
13053
|
*/
|
|
@@ -12926,9 +13138,348 @@ let Gantt = class Gantt extends Component {
|
|
|
12926
13138
|
}
|
|
12927
13139
|
this.splitterModule.renderSplitter();
|
|
12928
13140
|
this.notify('renderPanels', null);
|
|
12929
|
-
this.
|
|
13141
|
+
if (!isNullOrUndefined(this.loadingIndicator) && this.loadingIndicator.indicatorType === "Shimmer") {
|
|
13142
|
+
this.showMaskRow();
|
|
13143
|
+
}
|
|
13144
|
+
else {
|
|
13145
|
+
this.showSpinner();
|
|
13146
|
+
}
|
|
12930
13147
|
this.dataOperation.checkDataBinding();
|
|
12931
13148
|
}
|
|
13149
|
+
hideMaskRow() {
|
|
13150
|
+
let isTablePresent = this.element.querySelectorAll('.e-masked-table').length;
|
|
13151
|
+
if (!isNullOrUndefined(this.contentMaskTable) && isTablePresent != 0) {
|
|
13152
|
+
const maskTable = this.contentMaskTable;
|
|
13153
|
+
remove(maskTable);
|
|
13154
|
+
this.contentMaskTable = null;
|
|
13155
|
+
}
|
|
13156
|
+
isTablePresent = this.element.querySelectorAll('.e-masked-table').length;
|
|
13157
|
+
if (!isNullOrUndefined(this.headerMaskTable) && isTablePresent != 0) {
|
|
13158
|
+
const maskTable = this.headerMaskTable;
|
|
13159
|
+
remove(maskTable);
|
|
13160
|
+
this.headerMaskTable = null;
|
|
13161
|
+
}
|
|
13162
|
+
while ((this.element.querySelectorAll('.e-table-background')).length != 0) {
|
|
13163
|
+
this.element.querySelectorAll('.e-table-background')[0].remove();
|
|
13164
|
+
}
|
|
13165
|
+
while ((this.element.querySelectorAll('.e-temp-timeline')).length != 0) {
|
|
13166
|
+
this.element.querySelectorAll('.e-temp-timeline')[0].remove();
|
|
13167
|
+
}
|
|
13168
|
+
if (this.element.querySelectorAll('.' + timelineHeaderTableContainer).length != 0) {
|
|
13169
|
+
for (var i = 0; i < this.singleTier; i++) {
|
|
13170
|
+
if (!isNullOrUndefined(this.element.querySelectorAll('.' + timelineHeaderTableContainer)[i])) {
|
|
13171
|
+
this.element.querySelectorAll('.' + timelineHeaderTableContainer)[i]['style'].visibility = "visible";
|
|
13172
|
+
}
|
|
13173
|
+
}
|
|
13174
|
+
}
|
|
13175
|
+
if (!isNullOrUndefined(this.element.querySelector('.' + timelineHeaderContainer))) {
|
|
13176
|
+
this.element.querySelector('.' + timelineHeaderContainer)['style'].position = "relative";
|
|
13177
|
+
}
|
|
13178
|
+
if (!isNullOrUndefined(this.element.getElementsByClassName(chartBodyContent)[0])) {
|
|
13179
|
+
this.element.getElementsByClassName(chartBodyContent)[0]['style'].visibility = "visible";
|
|
13180
|
+
}
|
|
13181
|
+
}
|
|
13182
|
+
showMaskRow() {
|
|
13183
|
+
const ganttHeader = this.chartPane.childNodes[0].childNodes[0];
|
|
13184
|
+
this.scrollLeftValue = this.chartPane.childNodes[0].childNodes[0]['scrollLeft'];
|
|
13185
|
+
const ganttContent = this.chartPane.childNodes[0].childNodes[1];
|
|
13186
|
+
if (!this.contentMaskTable) {
|
|
13187
|
+
if (ganttContent) {
|
|
13188
|
+
let content$$1 = ganttContent;
|
|
13189
|
+
this.renderBackGround(content$$1);
|
|
13190
|
+
if (this.element.querySelectorAll('.' + timelineHeaderTableContainer).length != 0) {
|
|
13191
|
+
this.singleTier = this.timelineModule.isSingleTier ? 1 : 2;
|
|
13192
|
+
for (var i = 0; i < this.singleTier; i++) {
|
|
13193
|
+
this.element.querySelectorAll('.' + timelineHeaderTableContainer)[i]['style'].visibility = "hidden";
|
|
13194
|
+
}
|
|
13195
|
+
}
|
|
13196
|
+
if (this.singleTier === 0) {
|
|
13197
|
+
this.singleTier = 2;
|
|
13198
|
+
}
|
|
13199
|
+
this.element.getElementsByClassName(chartBodyContent)[0]['style'].visibility = "hidden";
|
|
13200
|
+
this.contentMaskTable = this.contentMaskTable = this.createMaskTable(content$$1);
|
|
13201
|
+
}
|
|
13202
|
+
if (ganttHeader) {
|
|
13203
|
+
this.element.querySelector('.' + timelineHeaderContainer)['style'].position = "static";
|
|
13204
|
+
let content$$1 = ganttHeader;
|
|
13205
|
+
this.renderHeaderBackground(content$$1);
|
|
13206
|
+
this.headerMaskTable = this.headerMaskTable = this.createMaskTable(content$$1);
|
|
13207
|
+
}
|
|
13208
|
+
}
|
|
13209
|
+
}
|
|
13210
|
+
renderHeaderBackground(element) {
|
|
13211
|
+
const parentElement = element;
|
|
13212
|
+
const timelineHeight = element.getBoundingClientRect().height;
|
|
13213
|
+
const header = closest(parentElement, '.' + timelineHeaderContainer) ? true : false;
|
|
13214
|
+
if (header) {
|
|
13215
|
+
const div = this.createElement('div', { className: 'e-table-background' });
|
|
13216
|
+
const tempRow = this.createElement('tr', { className: 'e-masked-row e-row', attrs: {
|
|
13217
|
+
style: 'height: ' + timelineHeight + 'px;'
|
|
13218
|
+
} });
|
|
13219
|
+
let backgroundLines = 0;
|
|
13220
|
+
let containerWidth = Math.round(element.getBoundingClientRect().width);
|
|
13221
|
+
for (let i = 0; i < 3; i++) {
|
|
13222
|
+
if (this.enableRtl) {
|
|
13223
|
+
div.appendChild(this.createElement('div', { className: 'e-div-background', attrs: {
|
|
13224
|
+
style: 'left: ' + (containerWidth -= ((160))) + 'px; top:0px;'
|
|
13225
|
+
} }));
|
|
13226
|
+
}
|
|
13227
|
+
else {
|
|
13228
|
+
div.appendChild(this.createElement('div', { className: 'e-div-background', attrs: {
|
|
13229
|
+
style: 'left: ' + (backgroundLines += ((160))) + 'px; top:0px;'
|
|
13230
|
+
} }));
|
|
13231
|
+
}
|
|
13232
|
+
}
|
|
13233
|
+
parentElement.insertBefore(div, parentElement.firstChild);
|
|
13234
|
+
}
|
|
13235
|
+
}
|
|
13236
|
+
renderBackGround(element) {
|
|
13237
|
+
const parentElement = element;
|
|
13238
|
+
const timelineHeight = element.getBoundingClientRect().height;
|
|
13239
|
+
const content$$1 = closest(parentElement, '.' + chartBodyContainer) ? true : false;
|
|
13240
|
+
if (content$$1) {
|
|
13241
|
+
const div = this.createElement('div', { className: 'e-table-background' });
|
|
13242
|
+
const tempRow = this.createElement('tr', { className: 'e-masked-row e-row', attrs: {
|
|
13243
|
+
style: 'height: ' + timelineHeight + 'px;'
|
|
13244
|
+
} });
|
|
13245
|
+
let backgroundLines = 0;
|
|
13246
|
+
let containerWidth = Math.round(element.getBoundingClientRect().width);
|
|
13247
|
+
for (let i = 0; i < 3; i++) {
|
|
13248
|
+
if (this.enableRtl) {
|
|
13249
|
+
div.appendChild(this.createElement('div', { className: 'e-div-background', attrs: {
|
|
13250
|
+
style: 'left: ' + (containerWidth -= (160)) + 'px;z-index:1;'
|
|
13251
|
+
} }));
|
|
13252
|
+
}
|
|
13253
|
+
else {
|
|
13254
|
+
div.appendChild(this.createElement('div', { className: 'e-div-background', attrs: {
|
|
13255
|
+
style: 'left: ' + (backgroundLines += (160)) + 'px;z-index:1;'
|
|
13256
|
+
} }));
|
|
13257
|
+
}
|
|
13258
|
+
}
|
|
13259
|
+
parentElement.insertBefore(div, parentElement.firstChild);
|
|
13260
|
+
}
|
|
13261
|
+
}
|
|
13262
|
+
createMaskTable(element) {
|
|
13263
|
+
const parentElement = element;
|
|
13264
|
+
const shimmerContainerHeight = element.getBoundingClientRect().height;
|
|
13265
|
+
const header = closest(parentElement, '.' + timelineHeaderContainer) ? true : false;
|
|
13266
|
+
let maskTable;
|
|
13267
|
+
if (header) {
|
|
13268
|
+
maskTable = this.createEmptyTimeLineTable(shimmerContainerHeight);
|
|
13269
|
+
maskTable.style.position = 'sticky';
|
|
13270
|
+
maskTable.style.left = 0 + 'px';
|
|
13271
|
+
if (this.enableRtl) {
|
|
13272
|
+
maskTable.style.removeProperty('left');
|
|
13273
|
+
}
|
|
13274
|
+
}
|
|
13275
|
+
else {
|
|
13276
|
+
maskTable = this.createEmptyMaskTable(shimmerContainerHeight);
|
|
13277
|
+
maskTable.style.position = 'absolute';
|
|
13278
|
+
maskTable.style.zIndex = 1;
|
|
13279
|
+
}
|
|
13280
|
+
if (!header) {
|
|
13281
|
+
maskTable.style.height = element.getBoundingClientRect().height + 'px';
|
|
13282
|
+
parentElement.insertBefore(maskTable, parentElement.firstChild);
|
|
13283
|
+
}
|
|
13284
|
+
else {
|
|
13285
|
+
maskTable.style.height = element.getBoundingClientRect().height + 'px';
|
|
13286
|
+
let div = this.createElement('div', { className: 'e-temp-timeline' });
|
|
13287
|
+
div.style.width = 614 + 'px';
|
|
13288
|
+
div.style.position = 'sticky';
|
|
13289
|
+
if (this.enableRtl) {
|
|
13290
|
+
div.style['margin-right'] = Math.abs(this.scrollLeftValue) + 'px';
|
|
13291
|
+
}
|
|
13292
|
+
else {
|
|
13293
|
+
div.style['margin-left'] = this.scrollLeftValue + 'px';
|
|
13294
|
+
}
|
|
13295
|
+
div.appendChild(maskTable);
|
|
13296
|
+
parentElement.insertBefore(div, parentElement.firstChild);
|
|
13297
|
+
}
|
|
13298
|
+
return maskTable;
|
|
13299
|
+
}
|
|
13300
|
+
createEmptyTimeLineTable(timelineHeight) {
|
|
13301
|
+
const table = this.createElement('table', { className: 'e-table e-masked-table' });
|
|
13302
|
+
const tbody = this.createElement('tbody', { className: 'e-masked-tbody' });
|
|
13303
|
+
let row = [];
|
|
13304
|
+
const duplicateRow = this.createElement('tr', { className: 'e-masked-row e-row', attrs: {
|
|
13305
|
+
style: 'height: ' + timelineHeight / 2 + 'px;'
|
|
13306
|
+
} });
|
|
13307
|
+
for (let i = 0; i < this.singleTier; i++) {
|
|
13308
|
+
row.push(duplicateRow.cloneNode(true));
|
|
13309
|
+
}
|
|
13310
|
+
this.topBottomHeader = 0;
|
|
13311
|
+
for (let i = 0; i < row.length; i++) {
|
|
13312
|
+
tbody.appendChild(this.applyTimelineMaskRow(row[i]));
|
|
13313
|
+
this.topBottomHeader = this.topBottomHeader + 1;
|
|
13314
|
+
}
|
|
13315
|
+
table.appendChild(tbody);
|
|
13316
|
+
table.style.width = 100 + '%';
|
|
13317
|
+
return table;
|
|
13318
|
+
}
|
|
13319
|
+
applyTimelineMaskRow(row) {
|
|
13320
|
+
const maskRow = row;
|
|
13321
|
+
maskRow.appendChild(this.createElement('td', { className: 'e-timeline-masked-top-header-cell' }));
|
|
13322
|
+
maskRow.appendChild(this.createElement('td', { className: 'e-timeline-masked-top-header-cell' }));
|
|
13323
|
+
maskRow.appendChild(this.createElement('td', { className: 'e-timeline-masked-top-header-cell' }));
|
|
13324
|
+
maskRow.appendChild(this.createElement('td', { className: 'e-timeline-masked-top-header-cell' }));
|
|
13325
|
+
for (let i = 0; i < maskRow.childNodes.length - 1; i++) {
|
|
13326
|
+
maskRow.childNodes[i]['style']['width'] = 166 + 'px';
|
|
13327
|
+
}
|
|
13328
|
+
const maskCells = [].slice.call(maskRow.childNodes);
|
|
13329
|
+
for (let i = 0; i < maskCells.length; i++) {
|
|
13330
|
+
const maskCell = maskCells[i];
|
|
13331
|
+
switch (this.topBottomHeader) {
|
|
13332
|
+
case 0:
|
|
13333
|
+
if (this.enableRtl) {
|
|
13334
|
+
maskCell.innerHTML = '<span class="e-mask e-skeleton e-skeleton-text e-shimmer-wave e-timelineHeader"></span>';
|
|
13335
|
+
maskCell.children[0]['style'].left = -20 + 'px';
|
|
13336
|
+
}
|
|
13337
|
+
else {
|
|
13338
|
+
maskCell.innerHTML = '<span class="e-mask e-skeleton e-skeleton-text e-shimmer-wave e-timelineHeader"></span>';
|
|
13339
|
+
}
|
|
13340
|
+
break;
|
|
13341
|
+
case 1:
|
|
13342
|
+
maskCell.appendChild(this.createElement('td', { className: 'e-timeline-masked-top-header-cell' }));
|
|
13343
|
+
maskCell.appendChild(this.createElement('td', { className: 'e-timeline-masked-top-header-cell' }));
|
|
13344
|
+
maskCell.appendChild(this.createElement('td', { className: 'e-timeline-masked-top-header-cell' }));
|
|
13345
|
+
const innerMaskCells = [].slice.call(maskCell.childNodes);
|
|
13346
|
+
for (let i = 0; i < innerMaskCells.length; i++) {
|
|
13347
|
+
const htmlInner = innerMaskCells[i];
|
|
13348
|
+
if (i === 0) {
|
|
13349
|
+
if (this.enableRtl) {
|
|
13350
|
+
htmlInner.innerHTML = '<span class="e-mask e-skeleton e-skeleton-text e-shimmer-wave e-innerHTML"></span>';
|
|
13351
|
+
htmlInner.children[0]['style'].left = -14 + 'px';
|
|
13352
|
+
}
|
|
13353
|
+
else {
|
|
13354
|
+
htmlInner.innerHTML = '<span class="e-mask e-skeleton e-skeleton-text e-shimmer-wave e-innerHTML"></span>';
|
|
13355
|
+
}
|
|
13356
|
+
}
|
|
13357
|
+
else if (i === 1) {
|
|
13358
|
+
if (this.enableRtl) {
|
|
13359
|
+
htmlInner.innerHTML = '<span class="e-mask e-skeleton e-skeleton-text e-shimmer-wave e-innerHTML1"></span>';
|
|
13360
|
+
htmlInner.children[0]['style'].left = -30 + 'px';
|
|
13361
|
+
}
|
|
13362
|
+
else {
|
|
13363
|
+
htmlInner.innerHTML = '<span class="e-mask e-skeleton e-skeleton-text e-shimmer-wave e-innerHTML1"></span>';
|
|
13364
|
+
}
|
|
13365
|
+
}
|
|
13366
|
+
else {
|
|
13367
|
+
if (this.enableRtl) {
|
|
13368
|
+
htmlInner.innerHTML = '<span class="e-mask e-skeleton e-skeleton-text e-shimmer-wave e-innerHTML2"></span>';
|
|
13369
|
+
htmlInner.children[0]['style'].left = -60 + 'px';
|
|
13370
|
+
}
|
|
13371
|
+
else {
|
|
13372
|
+
htmlInner.innerHTML = '<span class="e-mask e-skeleton e-skeleton-text e-shimmer-wave e-innerHTML2"></span>';
|
|
13373
|
+
}
|
|
13374
|
+
}
|
|
13375
|
+
}
|
|
13376
|
+
break;
|
|
13377
|
+
}
|
|
13378
|
+
}
|
|
13379
|
+
return maskRow;
|
|
13380
|
+
}
|
|
13381
|
+
createEmptyMaskTable(timelineHeight) {
|
|
13382
|
+
const table = this.createElement('table', { className: 'e-table e-masked-table' });
|
|
13383
|
+
const tbody = this.createElement('tbody', { className: 'e-masked-tbody' });
|
|
13384
|
+
let row = [];
|
|
13385
|
+
const duplicateRow = this.createElement('tr', { className: 'e-masked-row e-row', attrs: {
|
|
13386
|
+
style: 'height: ' + timelineHeight / 7 + 'px;'
|
|
13387
|
+
} });
|
|
13388
|
+
this.columnLoop = 0;
|
|
13389
|
+
for (let i = 0; i < 6; i++) {
|
|
13390
|
+
row.push(duplicateRow.cloneNode(true));
|
|
13391
|
+
}
|
|
13392
|
+
for (let j = 0; j < row.length; j++) {
|
|
13393
|
+
if (this.columnLoop < 4) {
|
|
13394
|
+
this.columnLoop = this.columnLoop + 1;
|
|
13395
|
+
}
|
|
13396
|
+
else if (this.columnLoop === 4) {
|
|
13397
|
+
this.columnLoop = 1;
|
|
13398
|
+
}
|
|
13399
|
+
tbody.appendChild(this.applyMaskRow(row[j]));
|
|
13400
|
+
}
|
|
13401
|
+
table.appendChild(tbody);
|
|
13402
|
+
table.style.width = 100 + '%';
|
|
13403
|
+
let div = this.createElement('div', { className: 'e-temp-container' });
|
|
13404
|
+
div.style.width = 'calc(100% - ' + 17 + 'px)';
|
|
13405
|
+
div.style.overflow = 'hidden';
|
|
13406
|
+
div.appendChild(table);
|
|
13407
|
+
return div;
|
|
13408
|
+
}
|
|
13409
|
+
applyMaskRow(row) {
|
|
13410
|
+
const maskRow = row;
|
|
13411
|
+
if (this.columnLoop < 4) {
|
|
13412
|
+
maskRow.appendChild(this.createElement('td', { className: 'e-masked-cell e-rowcell' }));
|
|
13413
|
+
maskRow.appendChild(this.createElement('td', { className: 'e-masked-cell e-rowcell' }));
|
|
13414
|
+
}
|
|
13415
|
+
else {
|
|
13416
|
+
maskRow.appendChild(this.createElement('td', { className: 'e-masked-cell e-rowcell' }));
|
|
13417
|
+
}
|
|
13418
|
+
const maskCells = [].slice.call(maskRow.childNodes);
|
|
13419
|
+
for (let i = 0; i < maskCells.length; i++) {
|
|
13420
|
+
const maskCell = maskCells[i];
|
|
13421
|
+
switch (this.columnLoop) {
|
|
13422
|
+
case 1:
|
|
13423
|
+
if (i === 0) {
|
|
13424
|
+
if (this.enableRtl) {
|
|
13425
|
+
maskCell.innerHTML = '<span class="e-mask e-skeleton e-skeleton-text e-shimmer-wave e-maskcell01"></span>';
|
|
13426
|
+
maskCell.children[0]['style'].left = -14 + 'px';
|
|
13427
|
+
}
|
|
13428
|
+
else {
|
|
13429
|
+
maskCell.innerHTML = '<span class="e-mask e-skeleton e-skeleton-text e-shimmer-wave e-maskcell01"></span>';
|
|
13430
|
+
}
|
|
13431
|
+
}
|
|
13432
|
+
else {
|
|
13433
|
+
maskCell.innerHTML = '<span class="e-mask e-skeleton e-skeleton-text e-shimmer-wave e-maskcell02"></span>';
|
|
13434
|
+
}
|
|
13435
|
+
break;
|
|
13436
|
+
case 2:
|
|
13437
|
+
if (i === 0) {
|
|
13438
|
+
if (this.enableRtl) {
|
|
13439
|
+
maskCell.innerHTML = '<span class="e-mask e-skeleton e-skeleton-text e-shimmer-wave e-maskcell03"></span>';
|
|
13440
|
+
maskCell.children[0]['style'].left = -14 + 'px';
|
|
13441
|
+
}
|
|
13442
|
+
else {
|
|
13443
|
+
maskCell.innerHTML = '<span class="e-mask e-skeleton e-skeleton-text e-shimmer-wave e-maskcell03"></span>';
|
|
13444
|
+
}
|
|
13445
|
+
}
|
|
13446
|
+
else {
|
|
13447
|
+
maskCell.innerHTML = '<span class="e-mask e-skeleton e-skeleton-text e-shimmer-wave e-maskcell04"></span>';
|
|
13448
|
+
}
|
|
13449
|
+
break;
|
|
13450
|
+
case 3:
|
|
13451
|
+
if (i === 0) {
|
|
13452
|
+
if (this.enableRtl) {
|
|
13453
|
+
maskCell.innerHTML = '<span class="e-mask e-skeleton e-skeleton-text e-shimmer-wave e-maskcell05"></span>';
|
|
13454
|
+
maskCell.children[0]['style'].left = -64 + 'px';
|
|
13455
|
+
}
|
|
13456
|
+
else {
|
|
13457
|
+
maskCell.innerHTML = '<span class="e-mask e-skeleton e-skeleton-text e-shimmer-wave e-maskcell05"></span>';
|
|
13458
|
+
}
|
|
13459
|
+
}
|
|
13460
|
+
else {
|
|
13461
|
+
if (this.enableRtl) {
|
|
13462
|
+
maskCell.innerHTML = '<span class="e-mask e-skeleton e-skeleton-text e-shimmer-wave e-maskcell06"></span>';
|
|
13463
|
+
maskCell.children[0]['style'].left = -192 + 'px';
|
|
13464
|
+
}
|
|
13465
|
+
else {
|
|
13466
|
+
maskCell.innerHTML = '<span class="e-mask e-skeleton e-skeleton-text e-shimmer-wave e-maskcell06"></span>';
|
|
13467
|
+
}
|
|
13468
|
+
}
|
|
13469
|
+
break;
|
|
13470
|
+
case 4:
|
|
13471
|
+
if (this.enableRtl) {
|
|
13472
|
+
maskCell.innerHTML = '<span class="e-mask e-skeleton e-skeleton-text e-shimmer-wave e-maskcell07"></span>';
|
|
13473
|
+
maskCell.children[0]['style'].left = -388 + 'px';
|
|
13474
|
+
}
|
|
13475
|
+
else {
|
|
13476
|
+
maskCell.innerHTML = '<span class="e-mask e-skeleton e-skeleton-text e-shimmer-wave e-maskcell07"></span>';
|
|
13477
|
+
}
|
|
13478
|
+
break;
|
|
13479
|
+
}
|
|
13480
|
+
}
|
|
13481
|
+
return maskRow;
|
|
13482
|
+
}
|
|
12932
13483
|
/**
|
|
12933
13484
|
* Method used to show spinner.
|
|
12934
13485
|
*
|
|
@@ -12954,7 +13505,7 @@ let Gantt = class Gantt extends Component {
|
|
|
12954
13505
|
this.timelineModule.calculateZoomingLevelsPerDayWidth(); // To calculate the perDaywidth
|
|
12955
13506
|
}
|
|
12956
13507
|
/**
|
|
12957
|
-
* @param {boolean} isChange .
|
|
13508
|
+
* @param {boolean} isChange -Defines whether task data is changed.
|
|
12958
13509
|
* @returns {void} .
|
|
12959
13510
|
* @private
|
|
12960
13511
|
*/
|
|
@@ -13054,7 +13605,7 @@ let Gantt = class Gantt extends Component {
|
|
|
13054
13605
|
/**
|
|
13055
13606
|
* Method for updating row height value in connector line collections
|
|
13056
13607
|
*
|
|
13057
|
-
* @param {IConnectorLineObject[]} collection .
|
|
13608
|
+
* @param {IConnectorLineObject[]} collection -Defines the CollectorLine collection.
|
|
13058
13609
|
* @returns {void} .
|
|
13059
13610
|
* @private
|
|
13060
13611
|
*/
|
|
@@ -13090,7 +13641,7 @@ let Gantt = class Gantt extends Component {
|
|
|
13090
13641
|
this.currentViewData = this.treeGrid.getCurrentViewRecords().slice();
|
|
13091
13642
|
}
|
|
13092
13643
|
/**
|
|
13093
|
-
* @param {IGanttData} records .
|
|
13644
|
+
* @param {IGanttData} records -Defines the delete record collections.
|
|
13094
13645
|
* @returns {IGanttData} .
|
|
13095
13646
|
* @private
|
|
13096
13647
|
*/
|
|
@@ -13102,7 +13653,7 @@ let Gantt = class Gantt extends Component {
|
|
|
13102
13653
|
return updatedRecord;
|
|
13103
13654
|
}
|
|
13104
13655
|
/**
|
|
13105
|
-
* @param {object} args .
|
|
13656
|
+
* @param {object} args -Update the gantt element content height.
|
|
13106
13657
|
* @returns {void} .
|
|
13107
13658
|
* @private
|
|
13108
13659
|
*/
|
|
@@ -13453,7 +14004,12 @@ let Gantt = class Gantt extends Component {
|
|
|
13453
14004
|
this.treeGrid.height = '100%';
|
|
13454
14005
|
this.notify('tree-grid-created', {});
|
|
13455
14006
|
this.createGanttPopUpElement();
|
|
13456
|
-
this.
|
|
14007
|
+
if (!isNullOrUndefined(this.loadingIndicator) && this.loadingIndicator.indicatorType === "Shimmer") {
|
|
14008
|
+
this.hideMaskRow();
|
|
14009
|
+
}
|
|
14010
|
+
else {
|
|
14011
|
+
this.hideSpinner();
|
|
14012
|
+
}
|
|
13457
14013
|
setValue('isGanttCreated', true, args);
|
|
13458
14014
|
this.renderComplete();
|
|
13459
14015
|
}
|
|
@@ -13465,6 +14021,11 @@ let Gantt = class Gantt extends Component {
|
|
|
13465
14021
|
this.criticalPathModule.showCriticalPath(this.enableCriticalPath);
|
|
13466
14022
|
}
|
|
13467
14023
|
this.notify('recordsUpdated', {});
|
|
14024
|
+
for (let i = 0; i < document.getElementsByClassName('e-timeline-header-table-container').length; i++) {
|
|
14025
|
+
for (let j = 0; j < document.getElementsByClassName('e-timeline-header-table-container')[i].children[0].children[0].children.length; j++) {
|
|
14026
|
+
document.getElementsByClassName('e-timeline-header-table-container')[i].children[0].children[0].children[j].children[0].setAttribute('tabindex', '-1');
|
|
14027
|
+
}
|
|
14028
|
+
}
|
|
13468
14029
|
if (this.enableCriticalPath && this.criticalPathModule) {
|
|
13469
14030
|
let criticalModule = this.criticalPathModule;
|
|
13470
14031
|
this.criticalPathModule.criticalConnectorLine(criticalModule.criticalPathCollection, criticalModule.detailPredecessorCollection, true, criticalModule.predecessorCollectionTaskIds);
|
|
@@ -13496,8 +14057,8 @@ let Gantt = class Gantt extends Component {
|
|
|
13496
14057
|
/**
|
|
13497
14058
|
* Called internally, if any of the property value changed.
|
|
13498
14059
|
*
|
|
13499
|
-
* @param {GanttModel} newProp .
|
|
13500
|
-
* @param {GanttModel} oldProp .
|
|
14060
|
+
* @param {GanttModel} newProp - Defines the New GanttModel.
|
|
14061
|
+
* @param {GanttModel} oldProp - Defines the old GanttModel.
|
|
13501
14062
|
* @returns {void} .
|
|
13502
14063
|
* @private
|
|
13503
14064
|
*/
|
|
@@ -13559,6 +14120,12 @@ let Gantt = class Gantt extends Component {
|
|
|
13559
14120
|
this.dataOperation.checkDataBinding(true);
|
|
13560
14121
|
break;
|
|
13561
14122
|
case 'enableCriticalPath':
|
|
14123
|
+
if (!isNullOrUndefined(this.loadingIndicator) && this.loadingIndicator.indicatorType === "Shimmer") {
|
|
14124
|
+
this.hideMaskRow();
|
|
14125
|
+
}
|
|
14126
|
+
else {
|
|
14127
|
+
this.hideSpinner();
|
|
14128
|
+
}
|
|
13562
14129
|
if (this.enableCriticalPath && this.criticalPathModule) {
|
|
13563
14130
|
this.criticalPathModule.showCriticalPath(this.enableCriticalPath);
|
|
13564
14131
|
let criticalModule = this.criticalPathModule;
|
|
@@ -14105,7 +14672,7 @@ let Gantt = class Gantt extends Component {
|
|
|
14105
14672
|
thWidth = thElements[n].style.width;
|
|
14106
14673
|
const divElement = createElement('div', {
|
|
14107
14674
|
className: 'e-line-container-cell',
|
|
14108
|
-
styles: 'left:' + leftPos + 'px'
|
|
14675
|
+
styles: (this.enableRtl ? 'right:' + (leftPos + 1) : 'left:' + leftPos) + 'px'
|
|
14109
14676
|
});
|
|
14110
14677
|
containerDiv.appendChild(divElement);
|
|
14111
14678
|
}
|
|
@@ -14240,12 +14807,18 @@ let Gantt = class Gantt extends Component {
|
|
|
14240
14807
|
}
|
|
14241
14808
|
/**
|
|
14242
14809
|
*
|
|
14243
|
-
* @param {object} args .
|
|
14810
|
+
* @param {object} args -Defines the edited event args.
|
|
14244
14811
|
* @returns {void} .
|
|
14245
14812
|
* @private
|
|
14246
14813
|
*/
|
|
14247
14814
|
actionBeginTask(args) {
|
|
14248
14815
|
this.trigger('actionBegin', args);
|
|
14816
|
+
if (!isNullOrUndefined(this.loadingIndicator) && this.loadingIndicator.indicatorType === "Shimmer") {
|
|
14817
|
+
this.showMaskRow();
|
|
14818
|
+
}
|
|
14819
|
+
else {
|
|
14820
|
+
this.showSpinner();
|
|
14821
|
+
}
|
|
14249
14822
|
}
|
|
14250
14823
|
/**
|
|
14251
14824
|
* To move horizontal scroll bar of Gantt to specific date.
|
|
@@ -14281,7 +14854,7 @@ let Gantt = class Gantt extends Component {
|
|
|
14281
14854
|
if (!isNullOrUndefined(left)) {
|
|
14282
14855
|
left = this.ganttChartModule.scrollElement.scrollWidth <= left ?
|
|
14283
14856
|
this.ganttChartModule.scrollElement.scrollWidth : left;
|
|
14284
|
-
this.ganttChartModule.scrollObject.setScrollLeft(left);
|
|
14857
|
+
this.ganttChartModule.scrollObject.setScrollLeft(left, this.enableRtl ? -1 : 0);
|
|
14285
14858
|
}
|
|
14286
14859
|
if (!isNullOrUndefined(top)) {
|
|
14287
14860
|
top = this.ganttChartModule.scrollElement.scrollHeight <= top ? this.ganttChartModule.scrollElement.scrollHeight : top;
|
|
@@ -14314,8 +14887,8 @@ let Gantt = class Gantt extends Component {
|
|
|
14314
14887
|
/**
|
|
14315
14888
|
* Get parent task by clone parent item.
|
|
14316
14889
|
*
|
|
14317
|
-
* @param {IGanttData} ganttRecord .
|
|
14318
|
-
* @param {number} level .
|
|
14890
|
+
* @param {IGanttData} ganttRecord -Defines the Gantt record.
|
|
14891
|
+
* @param {number} level -Defines the selected record level.
|
|
14319
14892
|
* @returns {IGanttData} .
|
|
14320
14893
|
* @hidden
|
|
14321
14894
|
*/
|
|
@@ -14428,7 +15001,7 @@ let Gantt = class Gantt extends Component {
|
|
|
14428
15001
|
/**
|
|
14429
15002
|
* To update timeline at start point with one unit.
|
|
14430
15003
|
*
|
|
14431
|
-
* @param {string} mode .
|
|
15004
|
+
* @param {string} mode - Render previous span of Timeline.
|
|
14432
15005
|
* @returns {void} .
|
|
14433
15006
|
* @public
|
|
14434
15007
|
*/
|
|
@@ -14438,7 +15011,7 @@ let Gantt = class Gantt extends Component {
|
|
|
14438
15011
|
/**
|
|
14439
15012
|
* To update timeline at end point with one unit.
|
|
14440
15013
|
*
|
|
14441
|
-
* @param {string} mode .
|
|
15014
|
+
* @param {string} mode - Render next span of Timeline.
|
|
14442
15015
|
* @returns {void} .
|
|
14443
15016
|
* @public
|
|
14444
15017
|
*/
|
|
@@ -14512,7 +15085,7 @@ let Gantt = class Gantt extends Component {
|
|
|
14512
15085
|
/**
|
|
14513
15086
|
* Method to clear edited collections in gantt set edit flag value
|
|
14514
15087
|
*
|
|
14515
|
-
* @param {boolean} isStart .
|
|
15088
|
+
* @param {boolean} isStart -Defines whether to initiate edit action.
|
|
14516
15089
|
* @returns {void} .
|
|
14517
15090
|
* @private
|
|
14518
15091
|
*/
|
|
@@ -14785,8 +15358,8 @@ let Gantt = class Gantt extends Component {
|
|
|
14785
15358
|
/**
|
|
14786
15359
|
* To update existing taskId with new unique Id.
|
|
14787
15360
|
*
|
|
14788
|
-
* @param {number | string} currentId .
|
|
14789
|
-
* @param {number | string} newId .
|
|
15361
|
+
* @param {number | string} currentId - Defines the current Id of the record.
|
|
15362
|
+
* @param {number | string} newId - Defines the new Id of the record.
|
|
14790
15363
|
* @returns {void} .
|
|
14791
15364
|
*/
|
|
14792
15365
|
updateTaskId(currentId, newId) {
|
|
@@ -14888,9 +15461,9 @@ let Gantt = class Gantt extends Component {
|
|
|
14888
15461
|
/**
|
|
14889
15462
|
* Reorder the rows based on given indexes and position
|
|
14890
15463
|
*
|
|
14891
|
-
* @param {number[]} fromIndexes .
|
|
14892
|
-
* @param {number} toIndex .
|
|
14893
|
-
* @param {string} position .
|
|
15464
|
+
* @param {number[]} fromIndexes - Defines the Dragged record index.
|
|
15465
|
+
* @param {number} toIndex - Defines the Dropped record index.
|
|
15466
|
+
* @param {string} position -Defines the position of the dropped row.
|
|
14894
15467
|
* @returns {void} .
|
|
14895
15468
|
*/
|
|
14896
15469
|
reorderRows(fromIndexes, toIndex, position) {
|
|
@@ -15065,7 +15638,7 @@ let Gantt = class Gantt extends Component {
|
|
|
15065
15638
|
/**
|
|
15066
15639
|
* Method to get class name for unscheduled tasks
|
|
15067
15640
|
*
|
|
15068
|
-
* @param {ITaskData} ganttProp .
|
|
15641
|
+
* @param {ITaskData} ganttProp -Defines the Gantt propertie.
|
|
15069
15642
|
* @returns {boolean} .
|
|
15070
15643
|
* @private
|
|
15071
15644
|
*/
|
|
@@ -15139,7 +15712,7 @@ let Gantt = class Gantt extends Component {
|
|
|
15139
15712
|
const clientTop = document.documentElement.clientTop || document.body.clientTop || 0;
|
|
15140
15713
|
const clientLeft = document.documentElement.clientLeft || document.body.clientLeft || 0;
|
|
15141
15714
|
const top = box.top + scrollTop - clientTop;
|
|
15142
|
-
const left = box.left + scrollLeft - clientLeft;
|
|
15715
|
+
const left = this.enableRtl ? box.right + scrollLeft - clientLeft : box.left + scrollLeft - clientLeft;
|
|
15143
15716
|
return { top: Math.round(top), left: Math.round(left), width: box.width, height: box.height };
|
|
15144
15717
|
}
|
|
15145
15718
|
/**
|
|
@@ -15411,7 +15984,7 @@ let Gantt = class Gantt extends Component {
|
|
|
15411
15984
|
/**
|
|
15412
15985
|
* To change the mode of a record.
|
|
15413
15986
|
*
|
|
15414
|
-
* @param {object} data .
|
|
15987
|
+
* @param {object} data - Use to change the TaskMode either manual, auto or custom.
|
|
15415
15988
|
* @returns {void} .
|
|
15416
15989
|
*/
|
|
15417
15990
|
changeTaskMode(data) {
|
|
@@ -15483,6 +16056,12 @@ __decorate([
|
|
|
15483
16056
|
__decorate([
|
|
15484
16057
|
Property(true)
|
|
15485
16058
|
], Gantt.prototype, "disableHtmlEncode", void 0);
|
|
16059
|
+
__decorate([
|
|
16060
|
+
Complex({}, LoadingIndicator)
|
|
16061
|
+
], Gantt.prototype, "loadingIndicator", void 0);
|
|
16062
|
+
__decorate([
|
|
16063
|
+
Property(true)
|
|
16064
|
+
], Gantt.prototype, "enableVirtualMaskRow", void 0);
|
|
15486
16065
|
__decorate([
|
|
15487
16066
|
Property(true)
|
|
15488
16067
|
], Gantt.prototype, "autoFocusTasks", void 0);
|
|
@@ -16508,6 +17087,7 @@ class EditTooltip {
|
|
|
16508
17087
|
this.toolTipObj = new Tooltip({
|
|
16509
17088
|
opensOn: opensOn,
|
|
16510
17089
|
position: 'TopRight',
|
|
17090
|
+
enableRtl: this.parent.enableRtl,
|
|
16511
17091
|
mouseTrail: mouseTrail,
|
|
16512
17092
|
cssClass: ganttTooltip,
|
|
16513
17093
|
target: target ? target : null,
|
|
@@ -16557,12 +17137,15 @@ class EditTooltip {
|
|
|
16557
17137
|
this.parent.tooltipModule.toolTipObj.close();
|
|
16558
17138
|
this.updateTooltip(segmentIndex);
|
|
16559
17139
|
if (this.taskbarEdit.connectorSecondAction === 'ConnectorPointLeftDrag') {
|
|
17140
|
+
// eslint-disable-next-line security/detect-non-literal-fs-filename
|
|
16560
17141
|
this.toolTipObj.open(this.taskbarEdit.connectorSecondElement.querySelector('.' + connectorPointLeft));
|
|
16561
17142
|
}
|
|
16562
17143
|
else if (this.taskbarEdit.connectorSecondAction === 'ConnectorPointRightDrag') {
|
|
17144
|
+
// eslint-disable-next-line security/detect-non-literal-fs-filename
|
|
16563
17145
|
this.toolTipObj.open(this.taskbarEdit.connectorSecondElement.querySelector('.' + connectorPointRight));
|
|
16564
17146
|
}
|
|
16565
17147
|
else {
|
|
17148
|
+
// eslint-disable-next-line security/detect-non-literal-fs-filename
|
|
16566
17149
|
this.toolTipObj.open(this.taskbarEdit.taskBarEditElement);
|
|
16567
17150
|
}
|
|
16568
17151
|
}
|
|
@@ -16595,14 +17178,29 @@ class EditTooltip {
|
|
|
16595
17178
|
this.toolTipObj.content = this.getTooltipText(segmentIndex);
|
|
16596
17179
|
this.toolTipObj.refresh(this.taskbarEdit.taskBarEditElement);
|
|
16597
17180
|
if (this.taskbarEdit.taskBarEditAction === 'LeftResizing') {
|
|
16598
|
-
this.
|
|
17181
|
+
if (this.parent.enableRtl) {
|
|
17182
|
+
this.toolTipObj.offsetX = 0;
|
|
17183
|
+
}
|
|
17184
|
+
else {
|
|
17185
|
+
this.toolTipObj.offsetX = -taskWidth;
|
|
17186
|
+
}
|
|
16599
17187
|
}
|
|
16600
17188
|
else if (this.taskbarEdit.taskBarEditAction === 'RightResizing' ||
|
|
16601
17189
|
this.taskbarEdit.taskBarEditAction === 'ParentResizing') {
|
|
16602
|
-
this.
|
|
17190
|
+
if (this.parent.enableRtl) {
|
|
17191
|
+
this.toolTipObj.offsetX = -taskWidth;
|
|
17192
|
+
}
|
|
17193
|
+
else {
|
|
17194
|
+
this.toolTipObj.offsetX = 0;
|
|
17195
|
+
}
|
|
16603
17196
|
}
|
|
16604
17197
|
else if (this.taskbarEdit.taskBarEditAction === 'ProgressResizing') {
|
|
16605
|
-
this.
|
|
17198
|
+
if (this.parent.enableRtl) {
|
|
17199
|
+
this.toolTipObj.offsetX = -(progressWidth);
|
|
17200
|
+
}
|
|
17201
|
+
else {
|
|
17202
|
+
this.toolTipObj.offsetX = -(taskWidth - progressWidth);
|
|
17203
|
+
}
|
|
16606
17204
|
}
|
|
16607
17205
|
else if (this.taskbarEdit.taskBarEditAction === 'MilestoneDrag') {
|
|
16608
17206
|
this.toolTipObj.offsetX = -(this.parent.chartRowsModule.milestoneHeight / 2);
|
|
@@ -17108,8 +17706,14 @@ class TaskbarEdit extends DateProcessor {
|
|
|
17108
17706
|
const e = this.getCoordinate(event);
|
|
17109
17707
|
if (e.pageX || e.pageY) {
|
|
17110
17708
|
const containerPosition = this.parent.getOffsetRect(this.parent.ganttChartModule.chartBodyContainer);
|
|
17111
|
-
|
|
17112
|
-
this.
|
|
17709
|
+
if (this.parent.enableRtl) {
|
|
17710
|
+
this.mouseDownX = Math.abs(e.pageX - (containerPosition.left +
|
|
17711
|
+
Math.abs(this.parent.ganttChartModule.scrollObject.previousScroll.left)));
|
|
17712
|
+
}
|
|
17713
|
+
else {
|
|
17714
|
+
this.mouseDownX = (e.pageX - containerPosition.left) +
|
|
17715
|
+
this.parent.ganttChartModule.scrollObject.previousScroll.left;
|
|
17716
|
+
}
|
|
17113
17717
|
this.tooltipPositionX = this.mouseDownX;
|
|
17114
17718
|
this.mouseDownY = e.pageY - containerPosition.top +
|
|
17115
17719
|
this.parent.ganttChartModule.scrollObject.previousScroll.top;
|
|
@@ -17153,8 +17757,14 @@ class TaskbarEdit extends DateProcessor {
|
|
|
17153
17757
|
}
|
|
17154
17758
|
const containerPosition = this.parent.getOffsetRect(this.parent.ganttChartModule.chartBodyContainer);
|
|
17155
17759
|
const e = this.getCoordinate(event);
|
|
17156
|
-
this.
|
|
17157
|
-
this.
|
|
17760
|
+
if (this.parent.enableRtl) {
|
|
17761
|
+
this.mouseMoveX = Math.abs(e.pageX - (containerPosition.left +
|
|
17762
|
+
Math.abs(this.parent.ganttChartModule.scrollObject.previousScroll.left)));
|
|
17763
|
+
}
|
|
17764
|
+
else {
|
|
17765
|
+
this.mouseMoveX = e.pageX - containerPosition.left +
|
|
17766
|
+
this.parent.ganttChartModule.scrollObject.previousScroll.left;
|
|
17767
|
+
}
|
|
17158
17768
|
this.mouseMoveY = e.pageY - containerPosition.top +
|
|
17159
17769
|
this.parent.ganttChartModule.scrollObject.previousScroll.top;
|
|
17160
17770
|
this.dragMouseLeave = false;
|
|
@@ -17170,6 +17780,17 @@ class TaskbarEdit extends DateProcessor {
|
|
|
17170
17780
|
args.requestType = 'mergeSegment';
|
|
17171
17781
|
}
|
|
17172
17782
|
this.parent.trigger('actionBegin', args, (arg) => {
|
|
17783
|
+
if (args.taskBarEditAction === "ConnectorPointRightDrag" || args.taskBarEditAction === "ConnectorPointLeftDrag"
|
|
17784
|
+
|| args.taskBarEditAction === "LeftResizing" || args.taskBarEditAction === "RightResizing"
|
|
17785
|
+
|| args.taskBarEditAction === "ProgressResizing" || args.taskBarEditAction === "ChildDrag" || args.taskBarEditAction === "ParentDrag" || args.taskBarEditAction === "MilestoneDrag" || args.taskBarEditAction === "ManualParentDrag") {
|
|
17786
|
+
this.parent.showIndicator = false;
|
|
17787
|
+
}
|
|
17788
|
+
if (!isNullOrUndefined(this.parent.loadingIndicator) && this.parent.loadingIndicator.indicatorType === "Shimmer" && this.parent.showIndicator) {
|
|
17789
|
+
this.parent.showMaskRow();
|
|
17790
|
+
}
|
|
17791
|
+
else if (this.parent.showIndicator) {
|
|
17792
|
+
this.parent.showSpinner();
|
|
17793
|
+
}
|
|
17173
17794
|
if (arg.cancel === false) {
|
|
17174
17795
|
this.taskBarEditingAction(event, false);
|
|
17175
17796
|
}
|
|
@@ -17251,8 +17872,14 @@ class TaskbarEdit extends DateProcessor {
|
|
|
17251
17872
|
const containerPosition = this.parent.getOffsetRect(this.parent.ganttChartModule.chartBodyContainer);
|
|
17252
17873
|
const e = this.getCoordinate(event);
|
|
17253
17874
|
if (e.pageX || e.pageY) {
|
|
17254
|
-
this.
|
|
17255
|
-
this.
|
|
17875
|
+
if (this.parent.enableRtl) {
|
|
17876
|
+
this.mouseMoveX = Math.abs(e.pageX - (containerPosition.left +
|
|
17877
|
+
Math.abs(this.parent.ganttChartModule.scrollObject.previousScroll.left)));
|
|
17878
|
+
}
|
|
17879
|
+
else {
|
|
17880
|
+
this.mouseMoveX = e.pageX - containerPosition.left +
|
|
17881
|
+
this.parent.ganttChartModule.scrollObject.previousScroll.left;
|
|
17882
|
+
}
|
|
17256
17883
|
this.tooltipPositionX = this.mouseMoveX;
|
|
17257
17884
|
this.mouseMoveY = e.pageY - containerPosition.top +
|
|
17258
17885
|
this.parent.ganttChartModule.scrollObject.previousScroll.top;
|
|
@@ -17263,8 +17890,15 @@ class TaskbarEdit extends DateProcessor {
|
|
|
17263
17890
|
if ((this.taskBarEditRecord.ganttProperties.width > 3 && !(this.taskBarEditAction === 'ProgressResizing' &&
|
|
17264
17891
|
(this.taskBarEditRecord.ganttProperties.progress === 0 || this.taskBarEditRecord.ganttProperties.progress === 100))) ||
|
|
17265
17892
|
isConnectorLineEdit) {
|
|
17266
|
-
|
|
17267
|
-
|
|
17893
|
+
let mouseX = 0;
|
|
17894
|
+
if (this.parent.enableRtl) {
|
|
17895
|
+
mouseX = Math.abs(Math.abs(this.mouseMoveX) - Math.abs(this.parent.ganttChartModule.scrollObject.previousScroll.left) +
|
|
17896
|
+
containerPosition.left);
|
|
17897
|
+
}
|
|
17898
|
+
else {
|
|
17899
|
+
mouseX = this.mouseMoveX - this.parent.ganttChartModule.scrollObject.previousScroll.left +
|
|
17900
|
+
containerPosition.left;
|
|
17901
|
+
}
|
|
17268
17902
|
const mouseY = this.mouseMoveY - this.parent.ganttChartModule.scrollObject.previousScroll.top +
|
|
17269
17903
|
containerPosition.top;
|
|
17270
17904
|
if ((mouseX + 20) >
|
|
@@ -17272,6 +17906,12 @@ class TaskbarEdit extends DateProcessor {
|
|
|
17272
17906
|
this.timerCount = this.parent.ganttChartModule.scrollObject.previousScroll.left;
|
|
17273
17907
|
this.startScrollTimer('right');
|
|
17274
17908
|
}
|
|
17909
|
+
else if ((mouseX + 40) >
|
|
17910
|
+
containerPosition.left + this.parent.ganttChartModule.chartBodyContainer.offsetWidth && this.parent.enableRtl && this.parent.ganttChartModule.scrollObject.previousScroll.left == 0) {
|
|
17911
|
+
this.parent.ganttChartModule.scrollObject.previousScroll.left = -1;
|
|
17912
|
+
this.timerCount = this.parent.ganttChartModule.scrollObject.previousScroll.left;
|
|
17913
|
+
this.startScrollTimer('right');
|
|
17914
|
+
}
|
|
17275
17915
|
else if ((mouseX - 20) < containerPosition.left) {
|
|
17276
17916
|
this.timerCount = this.parent.ganttChartModule.scrollObject.previousScroll.left;
|
|
17277
17917
|
this.startScrollTimer('left');
|
|
@@ -17302,7 +17942,12 @@ class TaskbarEdit extends DateProcessor {
|
|
|
17302
17942
|
*/
|
|
17303
17943
|
startScrollTimer(direction) {
|
|
17304
17944
|
this.stopScrollTimer();
|
|
17945
|
+
let leftSign = 0;
|
|
17305
17946
|
this.scrollTimer = window.setInterval(() => {
|
|
17947
|
+
if (Math.sign(this.timerCount) == -1) {
|
|
17948
|
+
leftSign = -1;
|
|
17949
|
+
this.timerCount = Math.abs(this.timerCount);
|
|
17950
|
+
}
|
|
17306
17951
|
if (direction === 'right') {
|
|
17307
17952
|
this.timerCount = (this.timerCount + 1) >= this.parent.timelineModule.totalTimelineWidth ?
|
|
17308
17953
|
this.parent.timelineModule.totalTimelineWidth : (this.timerCount + 1);
|
|
@@ -17317,7 +17962,7 @@ class TaskbarEdit extends DateProcessor {
|
|
|
17317
17962
|
this.parent.ganttChartModule.scrollObject.setScrollTop(this.timerCount);
|
|
17318
17963
|
}
|
|
17319
17964
|
else {
|
|
17320
|
-
this.parent.ganttChartModule.scrollObject.setScrollLeft(this.timerCount);
|
|
17965
|
+
this.parent.ganttChartModule.scrollObject.setScrollLeft(this.timerCount, leftSign);
|
|
17321
17966
|
}
|
|
17322
17967
|
if (this.taskBarEditAction === 'ConnectorPointLeftDrag'
|
|
17323
17968
|
|| this.taskBarEditAction === 'ConnectorPointRightDrag') {
|
|
@@ -18013,6 +18658,7 @@ class TaskbarEdit extends DateProcessor {
|
|
|
18013
18658
|
*/
|
|
18014
18659
|
setItemPosition() {
|
|
18015
18660
|
const item = this.taskBarEditRecord.ganttProperties;
|
|
18661
|
+
let position = this.parent.enableRtl ? "right" : "left";
|
|
18016
18662
|
const segment = !isNullOrUndefined(item.segments) ? item.segments[this.segmentIndex] : null;
|
|
18017
18663
|
const width = this.taskBarEditAction === 'MilestoneDrag' || item.isMilestone ?
|
|
18018
18664
|
this.parent.chartRowsModule.milestoneHeight : item.width;
|
|
@@ -18044,11 +18690,16 @@ class TaskbarEdit extends DateProcessor {
|
|
|
18044
18690
|
if (segmentedTaskBarContainer && !isNullOrUndefined(item.segments)
|
|
18045
18691
|
&& (this.taskBarEditAction === 'RightResizing' || this.segmentIndex !== 0)) {
|
|
18046
18692
|
this.taskBarEditElement.style.width = (segment.width) + 'px';
|
|
18047
|
-
this.
|
|
18693
|
+
if (this.parent.enableRtl) {
|
|
18694
|
+
this.taskBarEditElement.style.right = (segment.left) + 'px';
|
|
18695
|
+
}
|
|
18696
|
+
else {
|
|
18697
|
+
this.taskBarEditElement.style.left = (segment.left) + 'px';
|
|
18698
|
+
}
|
|
18048
18699
|
}
|
|
18049
18700
|
taskBarMainContainer$$1.style.width = (width) + 'px';
|
|
18050
|
-
taskBarMainContainer$$1.style.left = (item.left) + 'px';
|
|
18051
18701
|
leftLabelContainer$$1.style.width = (item.left) + 'px';
|
|
18702
|
+
taskBarMainContainer$$1.style.setProperty(position, (item.left) + 'px');
|
|
18052
18703
|
if (this.taskBarEditAction === 'LeftResizing' && this.segmentIndex === 0) {
|
|
18053
18704
|
const parent = this.taskBarEditElement.parentElement;
|
|
18054
18705
|
const segmentedTasks = parent.getElementsByClassName('e-segmented-taskbar');
|
|
@@ -18056,31 +18707,42 @@ class TaskbarEdit extends DateProcessor {
|
|
|
18056
18707
|
const segment = item.segments[i];
|
|
18057
18708
|
const segmentElement = segmentedTasks[i];
|
|
18058
18709
|
segmentElement.style.width = (segment.width) + 'px';
|
|
18059
|
-
|
|
18710
|
+
if (this.parent.enableRtl) {
|
|
18711
|
+
segmentElement.style.right = (segment.left) + 'px';
|
|
18712
|
+
}
|
|
18713
|
+
else {
|
|
18714
|
+
segmentElement.style.left = (segment.left) + 'px';
|
|
18715
|
+
}
|
|
18060
18716
|
}
|
|
18061
18717
|
}
|
|
18062
18718
|
if (!isNullOrUndefined(rightLabelContainer$$1)) {
|
|
18063
|
-
rightLabelContainer$$1.style.
|
|
18719
|
+
rightLabelContainer$$1.style.setProperty(position, (item.left + width) + 'px');
|
|
18064
18720
|
}
|
|
18065
18721
|
}
|
|
18066
18722
|
if (traceConnectorPointRight) {
|
|
18067
|
-
|
|
18723
|
+
if (this.parent.enableRtl) {
|
|
18724
|
+
traceConnectorPointRight.style.left = (this.parent.isAdaptive ? (width + 10) : (width - 2)) + 'px';
|
|
18725
|
+
}
|
|
18726
|
+
else {
|
|
18727
|
+
traceConnectorPointRight.style.left = (this.parent.isAdaptive ? (width + 10) : (width + 2)) + 'px';
|
|
18728
|
+
}
|
|
18068
18729
|
}
|
|
18069
18730
|
if (this.taskBarEditAction === 'MilestoneDrag' || item.isMilestone) {
|
|
18070
|
-
taskBarMainContainer$$1.style.
|
|
18731
|
+
taskBarMainContainer$$1.style.setProperty(position, (item.left - (width / 2)) + 'px');
|
|
18071
18732
|
leftLabelContainer$$1.style.width = (item.left - (width / 2)) + 'px';
|
|
18072
18733
|
if (!isNullOrUndefined(rightLabelContainer$$1)) {
|
|
18073
|
-
rightLabelContainer$$1.style.
|
|
18734
|
+
rightLabelContainer$$1.style.setProperty(position, (item.left + (width / 2)) + 'px');
|
|
18074
18735
|
}
|
|
18075
18736
|
}
|
|
18076
18737
|
else if (this.taskBarEditAction === 'ProgressResizing') {
|
|
18077
18738
|
if (this.segmentIndex === -1) {
|
|
18078
|
-
traceChildTaskBar$$1.style.
|
|
18739
|
+
traceChildTaskBar$$1.style.setProperty(position, (item.left + item.progressWidth - 10) + 'px');
|
|
18079
18740
|
if (!isNullOrUndefined(traceChildProgressBar$$1)) {
|
|
18080
18741
|
traceChildProgressBar$$1.style.width = item.progressWidth + 'px';
|
|
18081
18742
|
traceChildProgressBar$$1.style.borderBottomRightRadius = this.progressBorderRadius + 'px';
|
|
18082
18743
|
traceChildProgressBar$$1.style.borderTopRightRadius = this.progressBorderRadius + 'px';
|
|
18083
|
-
|
|
18744
|
+
const width = this.parent.enableRtl ? item.progressWidth + 8 : item.progressWidth - 8;
|
|
18745
|
+
childProgressResizer$$1.style.setProperty(position, width + 'px');
|
|
18084
18746
|
}
|
|
18085
18747
|
}
|
|
18086
18748
|
else {
|
|
@@ -18088,16 +18750,17 @@ class TaskbarEdit extends DateProcessor {
|
|
|
18088
18750
|
traceChildProgressBar$$1.style.width = item.segments[this.segmentIndex].progressWidth + 'px';
|
|
18089
18751
|
traceChildProgressBar$$1.style.borderBottomRightRadius = this.progressBorderRadius + 'px';
|
|
18090
18752
|
traceChildProgressBar$$1.style.borderTopRightRadius = this.progressBorderRadius + 'px';
|
|
18091
|
-
|
|
18753
|
+
const width = this.parent.enableRtl ? item.segments[this.segmentIndex].progressWidth + 8 : item.segments[this.segmentIndex].progressWidth - 8;
|
|
18754
|
+
childProgressResizer$$1.style.setProperty(position, width + 'px');
|
|
18092
18755
|
}
|
|
18093
18756
|
}
|
|
18094
18757
|
else if (this.taskBarEditAction === 'RightResizing' && !isNullOrUndefined(traceChildTaskBar$$1)) {
|
|
18095
18758
|
traceChildTaskBar$$1.style.width = (width) + 'px';
|
|
18096
18759
|
if (!isNullOrUndefined(traceChildProgressBar$$1)) {
|
|
18097
18760
|
traceChildProgressBar$$1.style.width = (item.progressWidth) + 'px';
|
|
18098
|
-
taskBarRightResizer$$1.style.
|
|
18761
|
+
taskBarRightResizer$$1.style.setProperty(position, rightResizer + 'px');
|
|
18099
18762
|
if (!isNullOrUndefined(childProgressResizer$$1)) {
|
|
18100
|
-
childProgressResizer$$1.style.
|
|
18763
|
+
childProgressResizer$$1.style.setProperty(position, item.progressWidth - 10 + 'px');
|
|
18101
18764
|
}
|
|
18102
18765
|
}
|
|
18103
18766
|
}
|
|
@@ -18111,27 +18774,27 @@ class TaskbarEdit extends DateProcessor {
|
|
|
18111
18774
|
}
|
|
18112
18775
|
else if (this.taskBarEditAction === 'ParentResizing') {
|
|
18113
18776
|
manualParentTaskbar.style.width = manualTaskbar.style.width = (item.width) + 'px';
|
|
18114
|
-
manualParentRight.style.
|
|
18777
|
+
manualParentRight.style.setProperty(position, item.width - manualParentLeft.offsetLeft + 'px');
|
|
18115
18778
|
}
|
|
18116
18779
|
else if (this.taskBarEditAction === 'ManualParentDrag') {
|
|
18117
|
-
manualParentTaskbar.style.
|
|
18780
|
+
manualParentTaskbar.style.setProperty(position, item.left - item.autoLeft + 'px');
|
|
18118
18781
|
}
|
|
18119
18782
|
else {
|
|
18120
18783
|
if (!isNullOrUndefined(traceChildTaskBar$$1) && !segmentedTaskBarContainer) {
|
|
18121
18784
|
traceChildTaskBar$$1.style.width = (width) + 'px';
|
|
18122
18785
|
}
|
|
18123
18786
|
if (!isNullOrUndefined(traceChildProgressBar$$1)) {
|
|
18124
|
-
taskBarRightResizer$$1.style.
|
|
18787
|
+
taskBarRightResizer$$1.style.setProperty(position, rightResizer + 'px');
|
|
18125
18788
|
traceChildProgressBar$$1.style.width = (item.progressWidth) + 'px';
|
|
18126
18789
|
if (!isNullOrUndefined(childProgressResizer$$1)) {
|
|
18127
|
-
childProgressResizer$$1.style.
|
|
18790
|
+
childProgressResizer$$1.style.setProperty(position, item.progressWidth - 10 + 'px');
|
|
18128
18791
|
}
|
|
18129
18792
|
}
|
|
18130
18793
|
if (segmentedTaskBarContainer) {
|
|
18131
|
-
taskBarRightResizer$$1.style.
|
|
18794
|
+
taskBarRightResizer$$1.style.setProperty(position, rightResizer + 'px');
|
|
18132
18795
|
traceChildProgressBar$$1.style.width = (segment.progressWidth) + 'px';
|
|
18133
18796
|
if (!isNullOrUndefined(childProgressResizer$$1)) {
|
|
18134
|
-
childProgressResizer$$1.style.
|
|
18797
|
+
childProgressResizer$$1.style.setProperty(position, segment.progressWidth - 10 + 'px');
|
|
18135
18798
|
}
|
|
18136
18799
|
}
|
|
18137
18800
|
}
|
|
@@ -18353,25 +19016,51 @@ class TaskbarEdit extends DateProcessor {
|
|
|
18353
19016
|
const y2 = this.mouseMoveY;
|
|
18354
19017
|
const length = Math.sqrt((x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2));
|
|
18355
19018
|
const angle = Math.atan2(y2 - y1, x2 - x1) * 180 / Math.PI;
|
|
18356
|
-
const transform = 'rotate(' + angle + 'deg)';
|
|
19019
|
+
const transform = 'rotate(' + (this.parent.enableRtl ? -angle : angle) + 'deg)';
|
|
18357
19020
|
let left;
|
|
19021
|
+
let width = 0;
|
|
19022
|
+
if (!isNullOrUndefined(document.querySelectorAll(".e-chart-row")[0])) {
|
|
19023
|
+
width = document.querySelectorAll(".e-chart-row")[0].offsetWidth;
|
|
19024
|
+
}
|
|
18358
19025
|
if (this.taskBarEditAction === 'ConnectorPointLeftDrag') {
|
|
18359
|
-
|
|
18360
|
-
this.parent.
|
|
19026
|
+
if (this.parent.enableRtl) {
|
|
19027
|
+
left = ((width - (this.elementOffsetLeft + (this.parent.chartRowsModule.connectorPointWidth / 2)))) -
|
|
19028
|
+
Math.abs(this.parent.ganttChartModule.scrollObject.previousScroll.left);
|
|
19029
|
+
}
|
|
19030
|
+
else {
|
|
19031
|
+
left = (this.elementOffsetLeft - (this.parent.chartRowsModule.connectorPointWidth / 2)) -
|
|
19032
|
+
this.parent.ganttChartModule.scrollObject.previousScroll.left;
|
|
19033
|
+
}
|
|
18361
19034
|
}
|
|
18362
19035
|
if (this.taskBarEditAction === 'ConnectorPointRightDrag') {
|
|
18363
|
-
|
|
18364
|
-
|
|
19036
|
+
if (this.parent.enableRtl) {
|
|
19037
|
+
left = (width - (this.elementOffsetLeft + this.elementOffsetWidth +
|
|
19038
|
+
(this.parent.chartRowsModule.connectorPointWidth / 2))) - Math.abs(this.parent.ganttChartModule.scrollObject.previousScroll.left);
|
|
19039
|
+
}
|
|
19040
|
+
else {
|
|
19041
|
+
left = (this.elementOffsetLeft + this.elementOffsetWidth) +
|
|
19042
|
+
(this.parent.chartRowsModule.connectorPointWidth / 2) - Math.abs(this.parent.ganttChartModule.scrollObject.previousScroll.left);
|
|
19043
|
+
}
|
|
18365
19044
|
}
|
|
18366
19045
|
const top = ((this.elementOffsetTop) + (this.elementOffsetHeight / 2) +
|
|
18367
19046
|
this.parent.ganttChartModule.chartBodyContainer.offsetTop) - this.parent.ganttChartModule.scrollObject.previousScroll.top;
|
|
18368
19047
|
this.removeFalseLine(false);
|
|
18369
19048
|
this.falseLine = createElement('div', {
|
|
18370
19049
|
className: falseLine, id: 'ganttfalseline' + this.parent.element.id,
|
|
18371
|
-
styles: '
|
|
19050
|
+
styles: 'position: absolute;transform:' + transform + ';' +
|
|
18372
19051
|
'border-top-width: 1px;border-top-style: dashed;z-index: 5;width:' + (length - 3) + 'px;' +
|
|
18373
|
-
'
|
|
19052
|
+
'top:' + top + 'px;'
|
|
18374
19053
|
});
|
|
19054
|
+
if (this.parent.enableRtl) {
|
|
19055
|
+
this.falseLine.style.left = 'auto';
|
|
19056
|
+
this.falseLine.style.right = left + 'px';
|
|
19057
|
+
this.falseLine.style.transformOrigin = '100% 0%';
|
|
19058
|
+
}
|
|
19059
|
+
else {
|
|
19060
|
+
this.falseLine.style.right = 'auto';
|
|
19061
|
+
this.falseLine.style.left = left + 'px';
|
|
19062
|
+
this.falseLine.style.transformOrigin = '0% 100%';
|
|
19063
|
+
}
|
|
18375
19064
|
this.parent.ganttChartModule.chartBodyContainer.appendChild(this.falseLine);
|
|
18376
19065
|
}
|
|
18377
19066
|
/**
|
|
@@ -18456,19 +19145,19 @@ class TaskbarEdit extends DateProcessor {
|
|
|
18456
19145
|
const element = target;
|
|
18457
19146
|
const uniqueId = this.parent.viewType === 'ResourceView' ? fromItem.taskId : fromItem.rowUniqueID;
|
|
18458
19147
|
if (this.taskBarEditAction === 'ConnectorPointLeftDrag') {
|
|
18459
|
-
predecessor = uniqueId + 'S';
|
|
19148
|
+
predecessor = uniqueId + (this.parent.enableRtl ? 'F' : 'S');
|
|
18460
19149
|
}
|
|
18461
19150
|
else if (this.taskBarEditAction === 'ConnectorPointRightDrag') {
|
|
18462
|
-
predecessor = uniqueId + 'F';
|
|
19151
|
+
predecessor = uniqueId + (this.parent.enableRtl ? 'S' : 'F');
|
|
18463
19152
|
}
|
|
18464
19153
|
if (this.connectorSecondAction) {
|
|
18465
19154
|
if (this.connectorSecondAction === 'ConnectorPointLeftDrag') {
|
|
18466
|
-
predecessor += 'S';
|
|
18467
|
-
currentTarget = 'start';
|
|
19155
|
+
predecessor += this.parent.enableRtl ? 'F' : 'S';
|
|
19156
|
+
currentTarget = this.parent.enableRtl ? 'finish' : 'start';
|
|
18468
19157
|
}
|
|
18469
19158
|
else if (this.connectorSecondAction === 'ConnectorPointRightDrag') {
|
|
18470
|
-
predecessor += 'F';
|
|
18471
|
-
currentTarget = 'finish';
|
|
19159
|
+
predecessor += this.parent.enableRtl ? 'S' : 'F';
|
|
19160
|
+
currentTarget = this.parent.enableRtl ? 'start' : 'finish';
|
|
18472
19161
|
}
|
|
18473
19162
|
}
|
|
18474
19163
|
if (isNullOrUndefined(toItem)) {
|
|
@@ -18492,6 +19181,12 @@ class TaskbarEdit extends DateProcessor {
|
|
|
18492
19181
|
args.isValidLink = isValidLink;
|
|
18493
19182
|
args.requestType = 'ValidateDependency';
|
|
18494
19183
|
this.parent.trigger('actionBegin', args);
|
|
19184
|
+
if (!isNullOrUndefined(this.parent.loadingIndicator) && this.parent.loadingIndicator.indicatorType === "Shimmer" && args.requestType != "ValidateDependency") {
|
|
19185
|
+
this.parent.showMaskRow();
|
|
19186
|
+
}
|
|
19187
|
+
else if (args.requestType != "ValidateDependency") {
|
|
19188
|
+
this.parent.showSpinner();
|
|
19189
|
+
}
|
|
18495
19190
|
args.isValidLink = !isValidLink && args.isValidLink ? false : args.isValidLink;
|
|
18496
19191
|
if (args.isValidLink) {
|
|
18497
19192
|
if (!this.editTooltip.toolTipObj && !this.parent.isAdaptive) {
|
|
@@ -18885,18 +19580,18 @@ class DialogEdit {
|
|
|
18885
19580
|
if (!isNullOrUndefined(taskId)) {
|
|
18886
19581
|
if (!isNullOrUndefined(taskId['ganttProperties'])) {
|
|
18887
19582
|
if (typeof taskId['ganttProperties']['taskId'] === 'string') {
|
|
18888
|
-
this.numericOrString =
|
|
19583
|
+
this.numericOrString = 'stringedit';
|
|
18889
19584
|
}
|
|
18890
19585
|
else {
|
|
18891
|
-
this.numericOrString =
|
|
19586
|
+
this.numericOrString = 'numericedit';
|
|
18892
19587
|
}
|
|
18893
19588
|
}
|
|
18894
19589
|
if (isNullOrUndefined(taskId['ganttProperties']) && !isNullOrUndefined(taskId)) {
|
|
18895
19590
|
if (isNaN(Number(taskId)) || this.parent.columnByField[this.parent.taskFields.id].editType === "stringedit") {
|
|
18896
|
-
this.numericOrString =
|
|
19591
|
+
this.numericOrString = 'stringedit';
|
|
18897
19592
|
}
|
|
18898
19593
|
else {
|
|
18899
|
-
this.numericOrString =
|
|
19594
|
+
this.numericOrString = 'numericedit';
|
|
18900
19595
|
}
|
|
18901
19596
|
}
|
|
18902
19597
|
}
|
|
@@ -18938,6 +19633,7 @@ class DialogEdit {
|
|
|
18938
19633
|
dialogModel.animationSettings = { effect: 'None' };
|
|
18939
19634
|
dialogModel.header = this.localeObj.getConstant(this.isEdit ? 'editDialogTitle' : 'addDialogTitle');
|
|
18940
19635
|
dialogModel.isModal = true;
|
|
19636
|
+
dialogModel.enableRtl = this.parent.enableRtl;
|
|
18941
19637
|
dialogModel.allowDragging = this.parent.isAdaptive ? false : true;
|
|
18942
19638
|
dialogModel.showCloseIcon = true;
|
|
18943
19639
|
const position = this.parent.isAdaptive ? { X: 'top', Y: 'left' } : { X: 'center', Y: 'center' };
|
|
@@ -18948,8 +19644,8 @@ class DialogEdit {
|
|
|
18948
19644
|
dialogModel.close = this.dialogClose.bind(this);
|
|
18949
19645
|
dialogModel.closeOnEscape = true;
|
|
18950
19646
|
dialogModel.beforeClose = function (args) {
|
|
18951
|
-
if (args.closedBy
|
|
18952
|
-
if (args.event.name
|
|
19647
|
+
if (args.closedBy === "escape") {
|
|
19648
|
+
if (args.event.name === "key-pressed" && args.event.target.nodeName === 'INPUT') {
|
|
18953
19649
|
args.cancel = true;
|
|
18954
19650
|
}
|
|
18955
19651
|
}
|
|
@@ -19119,6 +19815,7 @@ class DialogEdit {
|
|
|
19119
19815
|
const length = dialogSettings.length;
|
|
19120
19816
|
tabModel.items = tabItems;
|
|
19121
19817
|
tabModel.locale = this.parent.locale;
|
|
19818
|
+
tabModel.enableRtl = this.parent.enableRtl;
|
|
19122
19819
|
this.beforeOpenArgs.tabModel = tabModel;
|
|
19123
19820
|
let index = 0;
|
|
19124
19821
|
if (length > 0) {
|
|
@@ -19198,6 +19895,12 @@ class DialogEdit {
|
|
|
19198
19895
|
cancel: this.beforeOpenArgs.cancel
|
|
19199
19896
|
};
|
|
19200
19897
|
this.parent.trigger('actionBegin', this.beforeOpenArgs, (arg) => {
|
|
19898
|
+
if (!isNullOrUndefined(this.parent.loadingIndicator) && this.parent.loadingIndicator.indicatorType === "Shimmer") {
|
|
19899
|
+
this.parent.showMaskRow();
|
|
19900
|
+
}
|
|
19901
|
+
else {
|
|
19902
|
+
this.parent.showSpinner();
|
|
19903
|
+
}
|
|
19201
19904
|
this.renderTabItems();
|
|
19202
19905
|
if (!arg.cancel) {
|
|
19203
19906
|
tabModel.selected = this.tabSelectedEvent.bind(this);
|
|
@@ -19220,6 +19923,12 @@ class DialogEdit {
|
|
|
19220
19923
|
cancel: false
|
|
19221
19924
|
};
|
|
19222
19925
|
this.parent.trigger('actionComplete', actionCompleteArgs, (actionCompleteArg) => {
|
|
19926
|
+
if (!isNullOrUndefined(this.parent.loadingIndicator) && this.parent.loadingIndicator.indicatorType === "Shimmer") {
|
|
19927
|
+
this.parent.hideMaskRow();
|
|
19928
|
+
}
|
|
19929
|
+
else {
|
|
19930
|
+
this.parent.hideSpinner();
|
|
19931
|
+
}
|
|
19223
19932
|
if (actionCompleteArg.cancel) {
|
|
19224
19933
|
this.resetValues();
|
|
19225
19934
|
}
|
|
@@ -19302,7 +20011,8 @@ class DialogEdit {
|
|
|
19302
20011
|
{
|
|
19303
20012
|
const checkboxModel = {
|
|
19304
20013
|
label: column.headerText,
|
|
19305
|
-
locale: locale
|
|
20014
|
+
locale: locale,
|
|
20015
|
+
enableRtl: this.parent.enableRtl
|
|
19306
20016
|
};
|
|
19307
20017
|
fieldsModel[column.field] = checkboxModel;
|
|
19308
20018
|
break;
|
|
@@ -19311,6 +20021,7 @@ class DialogEdit {
|
|
|
19311
20021
|
case 'stringedit':
|
|
19312
20022
|
{
|
|
19313
20023
|
const textBox = common;
|
|
20024
|
+
textBox.enableRtl = this.parent.enableRtl;
|
|
19314
20025
|
if (column.field === ganttObj.columnMapping.duration || column.field === ganttObj.columnMapping.id || column.field === ganttObj.columnMapping.startDate ||
|
|
19315
20026
|
column.field === ganttObj.columnMapping.endDate) {
|
|
19316
20027
|
textBox.change = (args) => {
|
|
@@ -19323,6 +20034,7 @@ class DialogEdit {
|
|
|
19323
20034
|
case 'numericedit':
|
|
19324
20035
|
{
|
|
19325
20036
|
const numeric = common;
|
|
20037
|
+
numeric.enableRtl = this.parent.enableRtl;
|
|
19326
20038
|
if (taskSettings.progress === column.field) {
|
|
19327
20039
|
numeric.min = 0;
|
|
19328
20040
|
numeric.max = 100;
|
|
@@ -19339,6 +20051,7 @@ class DialogEdit {
|
|
|
19339
20051
|
{
|
|
19340
20052
|
const datePickerObj = common;
|
|
19341
20053
|
datePickerObj.format = this.parent.getDateFormat();
|
|
20054
|
+
datePickerObj.enableRtl = this.parent.enableRtl;
|
|
19342
20055
|
datePickerObj.strictMode = true;
|
|
19343
20056
|
datePickerObj.firstDayOfWeek = ganttObj.timelineModule.customTimelineSettings.weekStartDay;
|
|
19344
20057
|
if (column.field === ganttObj.columnMapping.startDate ||
|
|
@@ -19355,6 +20068,7 @@ class DialogEdit {
|
|
|
19355
20068
|
{
|
|
19356
20069
|
const dateTimePickerObj = common;
|
|
19357
20070
|
dateTimePickerObj.format = this.parent.getDateFormat();
|
|
20071
|
+
dateTimePickerObj.enableRtl = this.parent.enableRtl;
|
|
19358
20072
|
dateTimePickerObj.strictMode = true;
|
|
19359
20073
|
dateTimePickerObj.firstDayOfWeek = ganttObj.timelineModule.customTimelineSettings.weekStartDay;
|
|
19360
20074
|
if (column.field === ganttObj.columnMapping.startDate ||
|
|
@@ -19377,6 +20091,7 @@ class DialogEdit {
|
|
|
19377
20091
|
common[dataKey] = types;
|
|
19378
20092
|
common[fieldsKey] = { value: 'Value' };
|
|
19379
20093
|
const dropDownListObj = common;
|
|
20094
|
+
dropDownListObj.enableRtl = this.parent.enableRtl;
|
|
19380
20095
|
dropDownListObj.change = (args) => {
|
|
19381
20096
|
if (column.field === taskSettings.manual) {
|
|
19382
20097
|
this.editedRecord.ganttProperties.isAutoSchedule = !args.value;
|
|
@@ -19748,8 +20463,8 @@ class DialogEdit {
|
|
|
19748
20463
|
break;
|
|
19749
20464
|
case 'duration':
|
|
19750
20465
|
gridColumn = {
|
|
19751
|
-
field: fields[i], headerText: this.localeObj.getConstant(fields[i]), editType: 'stringedit',
|
|
19752
|
-
edit: {
|
|
20466
|
+
field: fields[i], headerText: this.localeObj.getConstant(fields[i]), editType: 'stringedit',
|
|
20467
|
+
width: '100px', edit: {
|
|
19753
20468
|
write: (args) => {
|
|
19754
20469
|
let inputTextModel;
|
|
19755
20470
|
if (!isNullOrUndefined(this.beforeOpenArgs[generalTabString])) {
|
|
@@ -19810,7 +20525,7 @@ class DialogEdit {
|
|
|
19810
20525
|
inputValue = dialog.querySelector('#' + ganttId + 'SegmentsTabContainer' + columnName)
|
|
19811
20526
|
.ej2_instances[0];
|
|
19812
20527
|
}
|
|
19813
|
-
if (inputValue.value.toString() !== tempValue.toString()) {
|
|
20528
|
+
if ((!isNullOrUndefined(inputValue.value)) && (inputValue.value.toString() !== tempValue.toString())) {
|
|
19814
20529
|
inputValue.value = tempValue;
|
|
19815
20530
|
inputValue.dataBind();
|
|
19816
20531
|
}
|
|
@@ -20144,7 +20859,7 @@ class DialogEdit {
|
|
|
20144
20859
|
break;
|
|
20145
20860
|
}
|
|
20146
20861
|
}
|
|
20147
|
-
if (typeof (stringOrNumber) ===
|
|
20862
|
+
if (typeof (stringOrNumber) === 'string') {
|
|
20148
20863
|
disabled = false;
|
|
20149
20864
|
}
|
|
20150
20865
|
else {
|
|
@@ -20159,7 +20874,7 @@ class DialogEdit {
|
|
|
20159
20874
|
}
|
|
20160
20875
|
if (this.editedRecord.hasChildRecords) {
|
|
20161
20876
|
if ((column.field === this.parent.taskFields.endDate && ((!isNullOrUndefined(this.editedRecord['isManual']) &&
|
|
20162
|
-
this.editedRecord['isManual']
|
|
20877
|
+
this.editedRecord['isManual'] === false) || this.parent.taskMode === 'Auto')) || column.field === this.parent.taskFields.duration ||
|
|
20163
20878
|
column.field === this.parent.taskFields.progress || column.field === this.parent.taskFields.work ||
|
|
20164
20879
|
column.field === this.parent.taskFields.type) {
|
|
20165
20880
|
disabled = true;
|
|
@@ -20214,6 +20929,7 @@ class DialogEdit {
|
|
|
20214
20929
|
dataSource: new DataManager(this.idCollection),
|
|
20215
20930
|
popupHeight: '180px',
|
|
20216
20931
|
allowCustom: false,
|
|
20932
|
+
enableRtl: this.parent.enableRtl,
|
|
20217
20933
|
fields: { value: 'text' },
|
|
20218
20934
|
value: args.rowData[field],
|
|
20219
20935
|
change: (arg) => {
|
|
@@ -20481,7 +21197,7 @@ class DialogEdit {
|
|
|
20481
21197
|
do {
|
|
20482
21198
|
if (currentFlatData.parentItem) {
|
|
20483
21199
|
currentFlatData = this.parent.flatData[this.parent.ids.indexOf(currentFlatData.parentItem.taskId)];
|
|
20484
|
-
if (currentFlatData.uniqueID
|
|
21200
|
+
if (currentFlatData.uniqueID === this.beforeOpenArgs.rowData['uniqueID']) {
|
|
20485
21201
|
this.isValidData = false;
|
|
20486
21202
|
break;
|
|
20487
21203
|
}
|
|
@@ -20733,7 +21449,9 @@ class DialogEdit {
|
|
|
20733
21449
|
}
|
|
20734
21450
|
}
|
|
20735
21451
|
if (this.isEdit) {
|
|
20736
|
-
|
|
21452
|
+
if (!isCustom) {
|
|
21453
|
+
this.updateScheduleProperties(this.editedRecord, this.rowData);
|
|
21454
|
+
}
|
|
20737
21455
|
ganttObj.editModule.validateUpdateValues(tasksData, this.rowData, true);
|
|
20738
21456
|
}
|
|
20739
21457
|
}
|
|
@@ -21388,6 +22106,7 @@ class ConnectorLineEdit {
|
|
|
21388
22106
|
const validationDialog = new Dialog({
|
|
21389
22107
|
header: 'Validate Editing',
|
|
21390
22108
|
isModal: true,
|
|
22109
|
+
enableRtl: this.parent.enableRtl,
|
|
21391
22110
|
visible: false,
|
|
21392
22111
|
width: '50%',
|
|
21393
22112
|
showCloseIcon: true,
|
|
@@ -21759,6 +22478,7 @@ class ConnectorLineEdit {
|
|
|
21759
22478
|
this.confirmPredecessorDialog = new Dialog({
|
|
21760
22479
|
width: '320px',
|
|
21761
22480
|
isModal: true,
|
|
22481
|
+
enableRtl: this.parent.enableRtl,
|
|
21762
22482
|
content: this.parent.localeObj.getConstant('confirmPredecessorDelete'),
|
|
21763
22483
|
buttons: [
|
|
21764
22484
|
{
|
|
@@ -21806,6 +22526,7 @@ class Edit$2 {
|
|
|
21806
22526
|
this.taskbarMoved = false;
|
|
21807
22527
|
this.predecessorUpdated = false;
|
|
21808
22528
|
this.isBreakLoop = false;
|
|
22529
|
+
this.isResourceTaskDeleted = false;
|
|
21809
22530
|
/**
|
|
21810
22531
|
* @private
|
|
21811
22532
|
*/
|
|
@@ -21880,6 +22601,7 @@ class Edit$2 {
|
|
|
21880
22601
|
const editParam = {
|
|
21881
22602
|
min: 0,
|
|
21882
22603
|
decimals: 0,
|
|
22604
|
+
enableRtl: this.parent.enableRtl,
|
|
21883
22605
|
validateDecimalOnType: true,
|
|
21884
22606
|
format: 'n0',
|
|
21885
22607
|
showSpinButton: false
|
|
@@ -21895,6 +22617,7 @@ class Edit$2 {
|
|
|
21895
22617
|
updateProgessColumnEditParams(column) {
|
|
21896
22618
|
const editParam = {
|
|
21897
22619
|
min: 0,
|
|
22620
|
+
enableRtl: this.parent.enableRtl,
|
|
21898
22621
|
decimals: 0,
|
|
21899
22622
|
validateDecimalOnType: true,
|
|
21900
22623
|
max: 100,
|
|
@@ -21952,6 +22675,7 @@ class Edit$2 {
|
|
|
21952
22675
|
editor = new MultiSelect({
|
|
21953
22676
|
dataSource: new DataManager(this.parent.resources),
|
|
21954
22677
|
fields: { text: resourceSettings.name, value: resourceSettings.id },
|
|
22678
|
+
enableRtl: this.parent.enableRtl,
|
|
21955
22679
|
mode: 'CheckBox',
|
|
21956
22680
|
showDropDownIcon: true,
|
|
21957
22681
|
popupHeight: '350px',
|
|
@@ -22012,6 +22736,7 @@ class Edit$2 {
|
|
|
22012
22736
|
this.parent.treeGridModule.currentEditRow = {};
|
|
22013
22737
|
editor = new DropDownList({
|
|
22014
22738
|
dataSource: new DataManager(types),
|
|
22739
|
+
enableRtl: this.parent.enableRtl,
|
|
22015
22740
|
fields: { value: 'Value' },
|
|
22016
22741
|
popupHeight: '350px',
|
|
22017
22742
|
value: getValue('taskType', args.rowData.ganttProperties)
|
|
@@ -22896,7 +23621,6 @@ class Edit$2 {
|
|
|
22896
23621
|
* @private
|
|
22897
23622
|
*/
|
|
22898
23623
|
initiateSaveAction(args) {
|
|
22899
|
-
this.parent.showSpinner();
|
|
22900
23624
|
let eventArgs = {};
|
|
22901
23625
|
eventArgs.requestType = 'beforeSave';
|
|
22902
23626
|
eventArgs.data = args.data;
|
|
@@ -22910,6 +23634,12 @@ class Edit$2 {
|
|
|
22910
23634
|
eventArgs.action = 'DrawConnectorLine';
|
|
22911
23635
|
}
|
|
22912
23636
|
this.parent.trigger('actionBegin', eventArgs, (eventArg) => {
|
|
23637
|
+
if (!isNullOrUndefined(this.parent.loadingIndicator) && this.parent.loadingIndicator.indicatorType === "Shimmer") {
|
|
23638
|
+
this.parent.showMaskRow();
|
|
23639
|
+
}
|
|
23640
|
+
else {
|
|
23641
|
+
this.parent.showSpinner();
|
|
23642
|
+
}
|
|
22913
23643
|
if (eventArg.cancel) {
|
|
22914
23644
|
this.reUpdatePreviousRecords();
|
|
22915
23645
|
this.parent.chartRowsModule.refreshRecords([args.data]);
|
|
@@ -22943,6 +23673,52 @@ class Edit$2 {
|
|
|
22943
23673
|
});
|
|
22944
23674
|
}
|
|
22945
23675
|
dmSuccess(e, args) {
|
|
23676
|
+
let eLength = e['length'];
|
|
23677
|
+
for (let i = 0; i < eLength; i++) {
|
|
23678
|
+
let rec = e[i];
|
|
23679
|
+
let _aLength = Object.keys(rec).length;
|
|
23680
|
+
for (let j = 0, _a = Object.keys(rec); j < _aLength; j++) {
|
|
23681
|
+
let key = _a[j];
|
|
23682
|
+
this.parent.editedRecords[i][key] = rec[key];
|
|
23683
|
+
this.parent.editedRecords[i].taskData[key] = rec[key];
|
|
23684
|
+
}
|
|
23685
|
+
if (this.parent.taskFields.id !== null) {
|
|
23686
|
+
this.parent.editedRecords[i].ganttProperties["taskId"] = rec[this.parent.taskFields.id];
|
|
23687
|
+
}
|
|
23688
|
+
if (this.parent.taskFields.name !== null) {
|
|
23689
|
+
this.parent.editedRecords[i].ganttProperties["taskName"] = rec[this.parent.taskFields.name];
|
|
23690
|
+
}
|
|
23691
|
+
if (this.parent.taskFields.startDate !== null) {
|
|
23692
|
+
this.parent.editedRecords[i].ganttProperties["startDate"] = rec[this.parent.taskFields.startDate];
|
|
23693
|
+
}
|
|
23694
|
+
if (this.parent.taskFields.endDate !== null) {
|
|
23695
|
+
this.parent.editedRecords[i].ganttProperties["endDate"] = rec[this.parent.taskFields.endDate];
|
|
23696
|
+
}
|
|
23697
|
+
if (this.parent.taskFields.duration !== null) {
|
|
23698
|
+
this.parent.editedRecords[i].ganttProperties["duration"] = parseInt(rec[this.parent.taskFields.duration]);
|
|
23699
|
+
}
|
|
23700
|
+
if (this.parent.taskFields.durationUnit !== null) {
|
|
23701
|
+
this.parent.editedRecords[i].ganttProperties["durationUnit"] = rec[this.parent.taskFields.durationUnit];
|
|
23702
|
+
}
|
|
23703
|
+
if (this.parent.taskFields.progress !== null) {
|
|
23704
|
+
this.parent.editedRecords[i].ganttProperties["progress"] = rec[this.parent.taskFields.progress];
|
|
23705
|
+
}
|
|
23706
|
+
if (this.parent.taskFields.dependency !== null) {
|
|
23707
|
+
this.parent.editedRecords[i].ganttProperties["dependency"] = rec[this.parent.taskFields.dependency];
|
|
23708
|
+
}
|
|
23709
|
+
if (this.parent.taskFields.parentID !== null) {
|
|
23710
|
+
this.parent.editedRecords[i].ganttProperties["parentID"] = rec[this.parent.taskFields.parentID];
|
|
23711
|
+
}
|
|
23712
|
+
if (this.parent.taskFields.baselineEndDate !== null) {
|
|
23713
|
+
this.parent.editedRecords[i].ganttProperties["baselineEndDate"] = rec[this.parent.taskFields.baselineEndDate];
|
|
23714
|
+
}
|
|
23715
|
+
if (this.parent.taskFields.baselineStartDate !== null) {
|
|
23716
|
+
this.parent.editedRecords[i].ganttProperties["baselineStartDate"] = rec[this.parent.taskFields.baselineStartDate];
|
|
23717
|
+
}
|
|
23718
|
+
if (this.parent.taskFields.resourceInfo !== null) {
|
|
23719
|
+
this.parent.editedRecords[i].ganttProperties["resources"] = rec[this.parent.taskFields.resourceInfo];
|
|
23720
|
+
}
|
|
23721
|
+
}
|
|
22946
23722
|
this.saveSuccess(args);
|
|
22947
23723
|
}
|
|
22948
23724
|
dmFailure(e, args) {
|
|
@@ -22961,7 +23737,7 @@ class Edit$2 {
|
|
|
22961
23737
|
const ids = data.ganttProperties.sharedTaskUniqueIds;
|
|
22962
23738
|
for (let i = 0; i < ids.length; i++) {
|
|
22963
23739
|
const editRecord = this.parent.flatData[this.parent.ids.indexOf(ids[i].toString())];
|
|
22964
|
-
if (editRecord.uniqueID !== data.uniqueID) {
|
|
23740
|
+
if (editRecord && editRecord.uniqueID !== data.uniqueID) {
|
|
22965
23741
|
this.updateGanttProperties(data, editRecord);
|
|
22966
23742
|
this.parent.setRecordValue('taskData', data.taskData, editRecord, true);
|
|
22967
23743
|
this.parent.dataOperation.updateTaskData(editRecord);
|
|
@@ -23035,6 +23811,12 @@ class Edit$2 {
|
|
|
23035
23811
|
criticalModule.criticalConnectorLine(criticalModule.criticalPathCollection, criticalModule.detailPredecessorCollection, true, criticalModule.predecessorCollectionTaskIds);
|
|
23036
23812
|
}
|
|
23037
23813
|
this.parent.trigger('actionComplete', eventArgs);
|
|
23814
|
+
if (!isNullOrUndefined(this.parent.loadingIndicator) && this.parent.loadingIndicator.indicatorType === "Shimmer") {
|
|
23815
|
+
this.parent.hideMaskRow();
|
|
23816
|
+
}
|
|
23817
|
+
else {
|
|
23818
|
+
this.parent.hideSpinner();
|
|
23819
|
+
}
|
|
23038
23820
|
}
|
|
23039
23821
|
else {
|
|
23040
23822
|
this.taskbarEditModule.dependencyCancel = false;
|
|
@@ -23056,12 +23838,12 @@ class Edit$2 {
|
|
|
23056
23838
|
for (let index = 0; index < currentLength; index++) {
|
|
23057
23839
|
const recordIndex = [];
|
|
23058
23840
|
let resourceID = parseInt(currentResource[index][this.parent.resourceFields.id], 10).toString();
|
|
23059
|
-
if (resourceID ===
|
|
23841
|
+
if (resourceID === 'NaN') {
|
|
23060
23842
|
resourceID = currentResource[index][this.parent.resourceFields.id];
|
|
23061
23843
|
}
|
|
23062
23844
|
for (let i = 0; i < prevResource.length; i++) {
|
|
23063
23845
|
let prevResourceID = parseInt(prevResource[i][this.parent.resourceFields.id], 10).toString();
|
|
23064
|
-
if (prevResourceID ===
|
|
23846
|
+
if (prevResourceID === 'NaN') {
|
|
23065
23847
|
prevResourceID = prevResource[i][this.parent.resourceFields.id];
|
|
23066
23848
|
}
|
|
23067
23849
|
if (prevResourceID === resourceID) {
|
|
@@ -23122,12 +23904,6 @@ class Edit$2 {
|
|
|
23122
23904
|
}
|
|
23123
23905
|
if (!isNullOrUndefined(unassignedTasks)) {
|
|
23124
23906
|
this.addNewRecord(updateRecord, unassignedTasks);
|
|
23125
|
-
const updatedData = this.parent.currentViewData.filter((data) => {
|
|
23126
|
-
return (data.ganttProperties.taskId === updateRecord.ganttProperties.taskId &&
|
|
23127
|
-
(data.hasChildRecords === updateRecord.hasChildRecords));
|
|
23128
|
-
})[0];
|
|
23129
|
-
updateRecord.parentItem = updatedData.parentItem;
|
|
23130
|
-
updateRecord.parentUniqueID = updatedData.parentUniqueID;
|
|
23131
23907
|
}
|
|
23132
23908
|
else {
|
|
23133
23909
|
// Block for create the unassigned task.
|
|
@@ -23142,6 +23918,12 @@ class Edit$2 {
|
|
|
23142
23918
|
const parentRecord = this.parent.flatData[this.parent.flatData.length - 1];
|
|
23143
23919
|
this.addNewRecord(updateRecord, parentRecord);
|
|
23144
23920
|
}
|
|
23921
|
+
const updatedData = this.parent.currentViewData.filter((data) => {
|
|
23922
|
+
return (data.ganttProperties.taskId === updateRecord.ganttProperties.taskId &&
|
|
23923
|
+
(data.hasChildRecords === updateRecord.hasChildRecords));
|
|
23924
|
+
})[0];
|
|
23925
|
+
updateRecord.parentItem = updatedData.parentItem;
|
|
23926
|
+
updateRecord.parentUniqueID = updatedData.parentUniqueID;
|
|
23145
23927
|
}
|
|
23146
23928
|
addRecordAsBottom(cAddedRecord) {
|
|
23147
23929
|
const recordIndex1 = this.parent.flatData.length;
|
|
@@ -23348,6 +24130,7 @@ class Edit$2 {
|
|
|
23348
24130
|
width: '320px',
|
|
23349
24131
|
isModal: true,
|
|
23350
24132
|
visible: false,
|
|
24133
|
+
enableRtl: this.parent.enableRtl,
|
|
23351
24134
|
content: this.parent.localeObj.getConstant('confirmDelete'),
|
|
23352
24135
|
buttons: [
|
|
23353
24136
|
{
|
|
@@ -23400,15 +24183,17 @@ class Edit$2 {
|
|
|
23400
24183
|
const deleteRecords = [];
|
|
23401
24184
|
for (let i = 0; i < selectedRecords.length; i++) {
|
|
23402
24185
|
if (selectedRecords[i].parentItem) {
|
|
23403
|
-
|
|
23404
|
-
|
|
23405
|
-
|
|
23406
|
-
|
|
23407
|
-
|
|
24186
|
+
if (selectedRecords[i].ganttProperties.sharedTaskUniqueIds.length === 1) {
|
|
24187
|
+
const data = selectedRecords[i];
|
|
24188
|
+
const ids = data.ganttProperties.sharedTaskUniqueIds;
|
|
24189
|
+
for (let j = 0; j < ids.length; j++) {
|
|
24190
|
+
if (this.parent.ids.indexOf(ids[j].toString()) !== -1) {
|
|
24191
|
+
deleteRecords.push(this.parent.flatData[this.parent.ids.indexOf(ids[j].toString())]);
|
|
24192
|
+
}
|
|
24193
|
+
}
|
|
24194
|
+
if (this.parent.ids.indexOf(data.ganttProperties.rowUniqueID) !== -1) {
|
|
24195
|
+
deleteRecords.push(this.parent.flatData[this.parent.ids.indexOf(data.ganttProperties.rowUniqueID)]);
|
|
23408
24196
|
}
|
|
23409
|
-
}
|
|
23410
|
-
if (this.parent.ids.indexOf(data.ganttProperties.rowUniqueID) !== -1) {
|
|
23411
|
-
deleteRecords.push(this.parent.flatData[this.parent.ids.indexOf(data.ganttProperties.rowUniqueID)]);
|
|
23412
24197
|
}
|
|
23413
24198
|
}
|
|
23414
24199
|
else {
|
|
@@ -23534,8 +24319,9 @@ class Edit$2 {
|
|
|
23534
24319
|
if (this.deletedTaskDetails.indexOf(deleteRecord) !== -1) {
|
|
23535
24320
|
continue;
|
|
23536
24321
|
}
|
|
24322
|
+
const parentTask = this.parent.getParentTask(deleteRecord.parentItem);
|
|
23537
24323
|
if (deleteRecord.parentItem) {
|
|
23538
|
-
const childRecord =
|
|
24324
|
+
const childRecord = parentTask.childRecords;
|
|
23539
24325
|
const filteredRecord = childRecord.length === 1 ?
|
|
23540
24326
|
childRecord : childRecord.filter((data) => {
|
|
23541
24327
|
return !data.isDelete;
|
|
@@ -23545,7 +24331,12 @@ class Edit$2 {
|
|
|
23545
24331
|
}
|
|
23546
24332
|
}
|
|
23547
24333
|
const predecessor = deleteRecord.ganttProperties.predecessor;
|
|
23548
|
-
|
|
24334
|
+
let canDeletePredecessor = true;
|
|
24335
|
+
if (this.parent.viewType === 'ResourceView' && parentTask && parentTask.ganttProperties.taskName !==
|
|
24336
|
+
this.parent.localeObj.getConstant('unassignedTask')) {
|
|
24337
|
+
canDeletePredecessor = false;
|
|
24338
|
+
}
|
|
24339
|
+
if (predecessor && predecessor.length && canDeletePredecessor) {
|
|
23549
24340
|
this.removePredecessorOnDelete(deleteRecord);
|
|
23550
24341
|
}
|
|
23551
24342
|
this.deletedTaskDetails.push(deleteRecord);
|
|
@@ -23694,7 +24485,13 @@ class Edit$2 {
|
|
|
23694
24485
|
continue;
|
|
23695
24486
|
}
|
|
23696
24487
|
const predecessor = childRecord.ganttProperties.predecessor;
|
|
23697
|
-
|
|
24488
|
+
let canDeletePredecessor = true;
|
|
24489
|
+
const parentTask = this.parent.getParentTask(childRecord.parentItem);
|
|
24490
|
+
if (this.parent.viewType === 'ResourceView' && parentTask && parentTask.ganttProperties.taskName !==
|
|
24491
|
+
this.parent.localeObj.getConstant('unassignedTask')) {
|
|
24492
|
+
canDeletePredecessor = false;
|
|
24493
|
+
}
|
|
24494
|
+
if (predecessor && predecessor.length && canDeletePredecessor) {
|
|
23698
24495
|
this.removePredecessorOnDelete(childRecord);
|
|
23699
24496
|
}
|
|
23700
24497
|
this.deletedTaskDetails.push(childRecord);
|
|
@@ -23745,6 +24542,12 @@ class Edit$2 {
|
|
|
23745
24542
|
eventArgs.modifiedRecords = args.updatedRecordCollection;
|
|
23746
24543
|
eventArgs.modifiedTaskData = getTaskData(args.updatedRecordCollection, null, null, this.parent);
|
|
23747
24544
|
this.parent.trigger('actionBegin', eventArgs, (eventArg) => {
|
|
24545
|
+
if (!isNullOrUndefined(this.parent.loadingIndicator) && this.parent.loadingIndicator.indicatorType === "Shimmer") {
|
|
24546
|
+
this.parent.showMaskRow();
|
|
24547
|
+
}
|
|
24548
|
+
else {
|
|
24549
|
+
this.parent.showSpinner();
|
|
24550
|
+
}
|
|
23748
24551
|
if (eventArg.cancel) {
|
|
23749
24552
|
const deleteRecords = this.deletedTaskDetails;
|
|
23750
24553
|
for (let d = 0; d < deleteRecords.length; d++) {
|
|
@@ -23823,6 +24626,14 @@ class Edit$2 {
|
|
|
23823
24626
|
this.parent.ids.splice(flatIndex, 1);
|
|
23824
24627
|
if (this.parent.viewType === 'ResourceView') {
|
|
23825
24628
|
this.parent.getTaskIds().splice(flatIndex, 1);
|
|
24629
|
+
this.isResourceTaskDeleted = true;
|
|
24630
|
+
if (!deleteRecord.hasChildRecords) {
|
|
24631
|
+
deleteRecord.ganttProperties.resourceInfo = null;
|
|
24632
|
+
delete deleteRecord.ganttProperties.resourceNames;
|
|
24633
|
+
deleteRecord[this.parent.taskFields.resourceInfo] = null;
|
|
24634
|
+
deleteRecord.ganttProperties.sharedTaskUniqueIds = [];
|
|
24635
|
+
delete deleteRecord.taskData[this.parent.taskFields.resourceInfo];
|
|
24636
|
+
}
|
|
23826
24637
|
}
|
|
23827
24638
|
}
|
|
23828
24639
|
if (deleteRecord.level === 0 && treeGridParentIndex !== -1) {
|
|
@@ -23871,9 +24682,12 @@ class Edit$2 {
|
|
|
23871
24682
|
const unassignedTask = this.parent.flatData.filter((data) => {
|
|
23872
24683
|
return data.ganttProperties.taskName === this.parent.localeObj.getConstant('unassignedTask');
|
|
23873
24684
|
})[0];
|
|
23874
|
-
|
|
23875
|
-
|
|
23876
|
-
|
|
24685
|
+
let isDuplicate = [];
|
|
24686
|
+
if (unassignedTask) {
|
|
24687
|
+
isDuplicate = unassignedTask.childRecords.filter((data) => {
|
|
24688
|
+
return data.ganttProperties.taskId === updateUnAssignedResources[i].ganttProperties.taskId;
|
|
24689
|
+
});
|
|
24690
|
+
}
|
|
23877
24691
|
const parentTask = this.parent.getParentTask(updateUnAssignedResources[i].parentItem);
|
|
23878
24692
|
if (parentTask && parentTask.ganttProperties.taskName !==
|
|
23879
24693
|
this.parent.localeObj.getConstant('unassignedTask') && isDuplicate.length === 0) {
|
|
@@ -23882,9 +24696,9 @@ class Edit$2 {
|
|
|
23882
24696
|
this.parent.dataOperation.updateParentItems(updateUnAssignedResources[i].parentItem);
|
|
23883
24697
|
}
|
|
23884
24698
|
}
|
|
23885
|
-
else if (!parentTask && isDuplicate.length === 0) {
|
|
24699
|
+
else if (!parentTask && (!isDuplicate || isDuplicate.length === 0)) {
|
|
23886
24700
|
this.checkWithUnassignedTask(updateUnAssignedResources[i]);
|
|
23887
|
-
if (updateUnAssignedResources[i].parentItem) {
|
|
24701
|
+
if (updateUnAssignedResources[i].parentItem && unassignedTask) {
|
|
23888
24702
|
this.parent.dataOperation.updateParentItems(updateUnAssignedResources[i].parentItem);
|
|
23889
24703
|
}
|
|
23890
24704
|
}
|
|
@@ -23893,7 +24707,12 @@ class Edit$2 {
|
|
|
23893
24707
|
this.parent.trigger('actionComplete', eventArgs);
|
|
23894
24708
|
this.deletedTaskDetails = [];
|
|
23895
24709
|
this.parent.initiateEditAction(false);
|
|
23896
|
-
this.parent.
|
|
24710
|
+
if (!isNullOrUndefined(this.parent.loadingIndicator) && this.parent.loadingIndicator.indicatorType === "Shimmer") {
|
|
24711
|
+
this.parent.hideMaskRow();
|
|
24712
|
+
}
|
|
24713
|
+
else {
|
|
24714
|
+
this.parent.hideSpinner();
|
|
24715
|
+
}
|
|
23897
24716
|
}
|
|
23898
24717
|
/**
|
|
23899
24718
|
*
|
|
@@ -24347,9 +25166,9 @@ class Edit$2 {
|
|
|
24347
25166
|
for (let i = 0; i < this.parent.modifiedRecords.length; i++) {
|
|
24348
25167
|
const originalData = this.parent.modifiedRecords[i];
|
|
24349
25168
|
let treeIndex = this.parent.allowRowDragAndDrop ? 1 : 0;
|
|
24350
|
-
|
|
24351
|
-
|
|
24352
|
-
return (data[uniqueTaskID]
|
|
25169
|
+
const uniqueTaskID = this.parent.taskFields.id;
|
|
25170
|
+
let originalIndex = this.parent.currentViewData.findIndex((data) => {
|
|
25171
|
+
return (data[uniqueTaskID] === originalData[uniqueTaskID]);
|
|
24353
25172
|
});
|
|
24354
25173
|
if (this.parent.treeGrid.getRows()[originalIndex]) {
|
|
24355
25174
|
this.parent.treeGrid.renderModule.cellRender({
|
|
@@ -24469,8 +25288,13 @@ class Edit$2 {
|
|
|
24469
25288
|
}
|
|
24470
25289
|
let args = {};
|
|
24471
25290
|
args = this.constructTaskAddedEventArgs(cAddedRecord, this.parent.editedRecords, 'beforeAdd');
|
|
24472
|
-
this.parent.showSpinner();
|
|
24473
25291
|
this.parent.trigger('actionBegin', args, (args) => {
|
|
25292
|
+
if (!isNullOrUndefined(this.parent.loadingIndicator) && this.parent.loadingIndicator.indicatorType === "Shimmer") {
|
|
25293
|
+
this.parent.showMaskRow();
|
|
25294
|
+
}
|
|
25295
|
+
else {
|
|
25296
|
+
this.parent.showSpinner();
|
|
25297
|
+
}
|
|
24474
25298
|
if (!isNullOrUndefined(args.data[tempTaskID])) {
|
|
24475
25299
|
if (args.data[tempTaskID] != args.data['ganttProperties']['taskId']) {
|
|
24476
25300
|
args.data['ganttProperties']['taskId'] = args.data[tempTaskID];
|
|
@@ -24674,7 +25498,7 @@ class Edit$2 {
|
|
|
24674
25498
|
switch (rowPosition) {
|
|
24675
25499
|
case 'Top':
|
|
24676
25500
|
case 'Bottom':
|
|
24677
|
-
if (this.parent.viewType ===
|
|
25501
|
+
if (this.parent.viewType === 'ResourceView') {
|
|
24678
25502
|
level = 1;
|
|
24679
25503
|
}
|
|
24680
25504
|
else {
|
|
@@ -24757,6 +25581,12 @@ class Edit$2 {
|
|
|
24757
25581
|
this.parent.dataOperation.updateWorkWithDuration(cAddedRecord[0]);
|
|
24758
25582
|
}
|
|
24759
25583
|
this.parent.trigger('actionComplete', args);
|
|
25584
|
+
if (!isNullOrUndefined(this.parent.loadingIndicator) && this.parent.loadingIndicator.indicatorType === "Shimmer") {
|
|
25585
|
+
this.parent.hideMaskRow();
|
|
25586
|
+
}
|
|
25587
|
+
else {
|
|
25588
|
+
this.parent.hideSpinner();
|
|
25589
|
+
}
|
|
24760
25590
|
if (this.dialogModule.dialog && !this.dialogModule.dialogObj.isDestroyed) {
|
|
24761
25591
|
this.dialogModule.dialogObj.hide();
|
|
24762
25592
|
}
|
|
@@ -24915,6 +25745,12 @@ class Edit$2 {
|
|
|
24915
25745
|
cancel: false
|
|
24916
25746
|
};
|
|
24917
25747
|
this.parent.trigger('actionBegin', actionArgs, (actionArg) => {
|
|
25748
|
+
if (!isNullOrUndefined(this.parent.loadingIndicator) && this.parent.loadingIndicator.indicatorType === "Shimmer") {
|
|
25749
|
+
this.parent.showMaskRow();
|
|
25750
|
+
}
|
|
25751
|
+
else {
|
|
25752
|
+
this.parent.showSpinner();
|
|
25753
|
+
}
|
|
24918
25754
|
if (!actionArg.cancel) {
|
|
24919
25755
|
this.reArrangeRows(args, isByMethod);
|
|
24920
25756
|
}
|
|
@@ -25086,6 +25922,12 @@ class Edit$2 {
|
|
|
25086
25922
|
}
|
|
25087
25923
|
}
|
|
25088
25924
|
this.parent.trigger('actionComplete', args);
|
|
25925
|
+
if (!isNullOrUndefined(this.parent.loadingIndicator) && this.parent.loadingIndicator.indicatorType === "Shimmer") {
|
|
25926
|
+
this.parent.hideMaskRow();
|
|
25927
|
+
}
|
|
25928
|
+
else {
|
|
25929
|
+
this.parent.hideSpinner();
|
|
25930
|
+
}
|
|
25089
25931
|
this.parent.editedRecords = [];
|
|
25090
25932
|
}
|
|
25091
25933
|
refreshDataSource() {
|
|
@@ -25597,6 +26439,7 @@ class Filter$1 {
|
|
|
25597
26439
|
const flValInput = createElement('input', { className: 'flm-input' });
|
|
25598
26440
|
args.target.appendChild(flValInput);
|
|
25599
26441
|
dropDateInstance = new DatePicker({ placeholder: this.parent.localeObj.getConstant('enterValue'), format: format });
|
|
26442
|
+
dropDateInstance.enableRtl = this.parent.enableRtl;
|
|
25600
26443
|
dropDateInstance.appendTo(flValInput);
|
|
25601
26444
|
},
|
|
25602
26445
|
write: (args) => {
|
|
@@ -25619,6 +26462,7 @@ class Filter$1 {
|
|
|
25619
26462
|
const flValInput = createElement('input', { className: 'flm-input' });
|
|
25620
26463
|
args.target.appendChild(flValInput);
|
|
25621
26464
|
dropInstance = new DateTimePicker({ placeholder: this.parent.localeObj.getConstant('enterValue'), format: format });
|
|
26465
|
+
dropInstance.enableRtl = this.parent.enableRtl;
|
|
25622
26466
|
dropInstance.appendTo(flValInput);
|
|
25623
26467
|
},
|
|
25624
26468
|
write: (args) => {
|
|
@@ -25640,6 +26484,7 @@ class Filter$1 {
|
|
|
25640
26484
|
flValInput.setAttribute('placeholder', this.parent.localeObj.getConstant('enterValue'));
|
|
25641
26485
|
args.target.appendChild(flValInput);
|
|
25642
26486
|
textBoxInstance = new TextBox();
|
|
26487
|
+
textBoxInstance.enableRtl = this.parent.enableRtl;
|
|
25643
26488
|
textBoxInstance.appendTo(flValInput);
|
|
25644
26489
|
},
|
|
25645
26490
|
write: (args) => {
|
|
@@ -26428,6 +27273,14 @@ class Toolbar$3 {
|
|
|
26428
27273
|
this.parent.localeObj.getConstant('tasks') : ''),
|
|
26429
27274
|
align: this.parent.isAdaptive ? 'Right' : 'Left'
|
|
26430
27275
|
};
|
|
27276
|
+
if (this.parent.enableRtl) {
|
|
27277
|
+
if (item === 'PrevTimeSpan') {
|
|
27278
|
+
this.predefinedItems[item].prefixIcon = 'e-nexttimespan';
|
|
27279
|
+
}
|
|
27280
|
+
if (item === 'NextTimeSpan') {
|
|
27281
|
+
this.predefinedItems[item].prefixIcon = 'e-prevtimespan';
|
|
27282
|
+
}
|
|
27283
|
+
}
|
|
26431
27284
|
}
|
|
26432
27285
|
const searchLocalText = this.parent.localeObj.getConstant('search');
|
|
26433
27286
|
if (this.parent.isAdaptive) {
|
|
@@ -26459,6 +27312,7 @@ class Toolbar$3 {
|
|
|
26459
27312
|
const items = this.getItems();
|
|
26460
27313
|
this.toolbar = new Toolbar$1({
|
|
26461
27314
|
items: items,
|
|
27315
|
+
enableRtl: this.parent.enableRtl,
|
|
26462
27316
|
clicked: this.toolbarClickHandler.bind(this),
|
|
26463
27317
|
height: this.parent.isAdaptive ? 48 : 'auto'
|
|
26464
27318
|
});
|
|
@@ -26477,6 +27331,7 @@ class Toolbar$3 {
|
|
|
26477
27331
|
this.searchElement = this.element.querySelector('#' + this.parent.element.id + '_searchbar');
|
|
26478
27332
|
const textObj = new TextBox({
|
|
26479
27333
|
placeholder: this.parent.localeObj.getConstant('search'),
|
|
27334
|
+
enableRtl: this.parent.enableRtl,
|
|
26480
27335
|
floatLabelType: 'Never',
|
|
26481
27336
|
showClearButton: true
|
|
26482
27337
|
});
|
|
@@ -26592,7 +27447,16 @@ class Toolbar$3 {
|
|
|
26592
27447
|
toolbarClickHandler(arg) {
|
|
26593
27448
|
const gObj = this.parent;
|
|
26594
27449
|
const gID = this.id;
|
|
27450
|
+
this.parent.isToolBarClick = false;
|
|
26595
27451
|
extend(arg, { cancel: false });
|
|
27452
|
+
if (arg.item['properties'].id === this.parent.element.id + "_pdfexport" || arg.item['properties'].id === this.parent.element.id + "_critical-path") {
|
|
27453
|
+
if (!isNullOrUndefined(this.parent.loadingIndicator) && this.parent.loadingIndicator.indicatorType === "Shimmer") {
|
|
27454
|
+
this.parent.showMaskRow();
|
|
27455
|
+
}
|
|
27456
|
+
else {
|
|
27457
|
+
this.parent.showSpinner();
|
|
27458
|
+
}
|
|
27459
|
+
}
|
|
26596
27460
|
gObj.trigger(toolbarClick, arg, (args) => {
|
|
26597
27461
|
if (args.cancel) {
|
|
26598
27462
|
return;
|
|
@@ -26794,7 +27658,8 @@ class Toolbar$3 {
|
|
|
26794
27658
|
else {
|
|
26795
27659
|
disableItems.push(gID + '_update', gID + '_cancel');
|
|
26796
27660
|
for (let t = 0; t < toolbarItems.length; t++) {
|
|
26797
|
-
if (enableItems.indexOf(toolbarItems[t].id) === -1 &&
|
|
27661
|
+
if (enableItems.indexOf(toolbarItems[t].id) === -1 &&
|
|
27662
|
+
disableItems.indexOf(toolbarItems[t].id) === -1) {
|
|
26798
27663
|
enableItems.push(toolbarItems[t].id);
|
|
26799
27664
|
}
|
|
26800
27665
|
}
|
|
@@ -26949,8 +27814,9 @@ class NonWorkingDay {
|
|
|
26949
27814
|
const width = (this.parent.holidays[i].from && this.parent.holidays[i].to) ?
|
|
26950
27815
|
this.parent.dataOperation.getTaskWidth(fromDate, toDate) : this.parent.perDayWidth;
|
|
26951
27816
|
const left = this.parent.dataOperation.getTaskLeft(fromDate, false);
|
|
27817
|
+
const align = this.parent.enableRtl ? `right:${left}px;` : `left:${left}px;`;
|
|
26952
27818
|
const holidayDiv = createElement('div', {
|
|
26953
|
-
className: holidayElement, styles:
|
|
27819
|
+
className: holidayElement, styles: `${align} width:${width}px; height:100%;`
|
|
26954
27820
|
});
|
|
26955
27821
|
const spanTop = (viewportHeight < height) ? viewportHeight / 2 : height / 2;
|
|
26956
27822
|
const spanElement = createElement('span', {
|
|
@@ -27019,8 +27885,9 @@ class NonWorkingDay {
|
|
|
27019
27885
|
this.weekendWidthUpdated = true;
|
|
27020
27886
|
}
|
|
27021
27887
|
}
|
|
27888
|
+
const align = this.parent.enableRtl ? `right:${left}px;` : `left:${left}px;`;
|
|
27022
27889
|
const weekendDiv = createElement('div', {
|
|
27023
|
-
className: weekend, styles:
|
|
27890
|
+
className: weekend, styles: `${align} width:${width}px;height:100%;`
|
|
27024
27891
|
});
|
|
27025
27892
|
container.appendChild(weekendDiv);
|
|
27026
27893
|
}
|
|
@@ -27092,7 +27959,7 @@ class EventMarker$1 {
|
|
|
27092
27959
|
this.eventMarkersContainer = createElement('div', {
|
|
27093
27960
|
className: eventMarkersContainer
|
|
27094
27961
|
});
|
|
27095
|
-
this.eventMarkersContainer.setAttribute(
|
|
27962
|
+
this.eventMarkersContainer.setAttribute('role', 'term');
|
|
27096
27963
|
this.parent.ganttChartModule.chartBodyContent.appendChild(this.eventMarkersContainer);
|
|
27097
27964
|
}
|
|
27098
27965
|
this.eventMarkersContainer.innerHTML = '';
|
|
@@ -27125,8 +27992,15 @@ class EventMarker$1 {
|
|
|
27125
27992
|
let rightArrow;
|
|
27126
27993
|
for (let i = 0; i < this.parent.eventMarkers.length; i++) {
|
|
27127
27994
|
left = this.parent.dataOperation.getTaskLeft(this.parent.dateValidationModule.getDateFromFormat(this.parent.eventMarkers[i].day, true), false);
|
|
27995
|
+
let align;
|
|
27996
|
+
if (this.parent.enableRtl) {
|
|
27997
|
+
align = `right:${left}px;`;
|
|
27998
|
+
}
|
|
27999
|
+
else {
|
|
28000
|
+
align = `left:${left}px;`;
|
|
28001
|
+
}
|
|
27128
28002
|
eventMarkerElement = createElement('div', {
|
|
27129
|
-
className: eventMarkersChild, styles:
|
|
28003
|
+
className: eventMarkersChild, styles: `${align} height:100%;`,
|
|
27130
28004
|
id: 'stripline' + i
|
|
27131
28005
|
});
|
|
27132
28006
|
if (this.parent.eventMarkers[i].label) {
|
|
@@ -27135,6 +28009,12 @@ class EventMarker$1 {
|
|
|
27135
28009
|
});
|
|
27136
28010
|
const property = this.parent.disableHtmlEncode ? 'textContent' : 'innerHTML';
|
|
27137
28011
|
spanElement[property] = this.parent.eventMarkers[i].label;
|
|
28012
|
+
if (this.parent.enableRtl) {
|
|
28013
|
+
spanElement.style.right = '5px';
|
|
28014
|
+
}
|
|
28015
|
+
else {
|
|
28016
|
+
spanElement.style.left = '5px';
|
|
28017
|
+
}
|
|
27138
28018
|
eventMarkerElement.appendChild(spanElement);
|
|
27139
28019
|
rightArrow = createElement('div', {
|
|
27140
28020
|
className: 'e-gantt-right-arrow'
|
|
@@ -27311,8 +28191,8 @@ class CriticalPath {
|
|
|
27311
28191
|
predecessorIndex = modelIds.indexOf(checkBeyondEnddate[k].toString());
|
|
27312
28192
|
}
|
|
27313
28193
|
else {
|
|
27314
|
-
|
|
27315
|
-
return parseInt(data.ganttProperties.taskId)
|
|
28194
|
+
const currentRecords = this.parent.currentViewData.filter((data) => {
|
|
28195
|
+
return parseInt(data.ganttProperties.taskId) === checkBeyondEnddate[k];
|
|
27316
28196
|
});
|
|
27317
28197
|
for (let i = 0; i < currentRecords.length; i++) {
|
|
27318
28198
|
if (!currentRecords[i].hasChildRecords && currentRecords[i].ganttProperties.endDate >= this.maxEndDate) {
|
|
@@ -27345,10 +28225,10 @@ class CriticalPath {
|
|
|
27345
28225
|
const individualPredecessorLength = totalPredecessorsCollection[x].ganttProperties.predecessor.length;
|
|
27346
28226
|
const taskid = ((totalPredecessorsCollection[x].ganttProperties.taskId));
|
|
27347
28227
|
for (let y = 0; y < individualPredecessorLength; y++) {
|
|
27348
|
-
if (!isNaN(Number(predecessor[y].from)) && typeof (taskid) !=
|
|
28228
|
+
if (!isNaN(Number(predecessor[y].from)) && typeof (taskid) != 'string') {
|
|
27349
28229
|
tempTaskId = parseInt((predecessor[y].from), 10);
|
|
27350
28230
|
}
|
|
27351
|
-
else if (!isNaN(Number(predecessor[y].from)) && typeof (taskid) ===
|
|
28231
|
+
else if (!isNaN(Number(predecessor[y].from)) && typeof (taskid) === 'string') {
|
|
27352
28232
|
tempTaskId = predecessor[y].from;
|
|
27353
28233
|
}
|
|
27354
28234
|
else {
|
|
@@ -27371,15 +28251,16 @@ class CriticalPath {
|
|
|
27371
28251
|
toPredecessor = toPredecessor + ',' + predecessor[y].type;
|
|
27372
28252
|
}
|
|
27373
28253
|
else {
|
|
27374
|
-
to = to + ',' + predecessor[y].to + ':' + predecessor[y].offset +
|
|
28254
|
+
to = to + ',' + predecessor[y].to + ':' + predecessor[y].offset +
|
|
28255
|
+
predecessor[y].offsetUnit;
|
|
27375
28256
|
toPredecessor = toPredecessor + ',' + predecessor[y].type;
|
|
27376
28257
|
}
|
|
27377
28258
|
}
|
|
27378
28259
|
}
|
|
27379
|
-
if (!isNaN(Number(predecessor[y].to)) && typeof (taskid) !=
|
|
28260
|
+
if (!isNaN(Number(predecessor[y].to)) && typeof (taskid) != 'string') {
|
|
27380
28261
|
tempTaskId = parseInt((predecessor[y].to), 10);
|
|
27381
28262
|
}
|
|
27382
|
-
else if (!isNaN(Number(predecessor[y].to)) && typeof (taskid) ===
|
|
28263
|
+
else if (!isNaN(Number(predecessor[y].to)) && typeof (taskid) === 'string') {
|
|
27383
28264
|
tempTaskId = predecessor[y].to;
|
|
27384
28265
|
}
|
|
27385
28266
|
else {
|
|
@@ -27392,7 +28273,8 @@ class CriticalPath {
|
|
|
27392
28273
|
fromPredecessor = predecessor[y].type;
|
|
27393
28274
|
}
|
|
27394
28275
|
else {
|
|
27395
|
-
from = predecessor[y].from + ':' + predecessor[y].offset +
|
|
28276
|
+
from = predecessor[y].from + ':' + predecessor[y].offset +
|
|
28277
|
+
predecessor[y].offsetUnit;
|
|
27396
28278
|
fromPredecessor = predecessor[y].type;
|
|
27397
28279
|
}
|
|
27398
28280
|
}
|
|
@@ -27402,7 +28284,8 @@ class CriticalPath {
|
|
|
27402
28284
|
fromPredecessor = fromPredecessor + ',' + predecessor[y].type;
|
|
27403
28285
|
}
|
|
27404
28286
|
else {
|
|
27405
|
-
from = from + ',' + predecessor[y].from + ':' + predecessor[y].offset +
|
|
28287
|
+
from = from + ',' + predecessor[y].from + ':' + predecessor[y].offset +
|
|
28288
|
+
predecessor[y].offsetUnit;
|
|
27406
28289
|
fromPredecessor = fromPredecessor + ',' + predecessor[y].type;
|
|
27407
28290
|
}
|
|
27408
28291
|
}
|
|
@@ -27529,7 +28412,8 @@ class CriticalPath {
|
|
|
27529
28412
|
}
|
|
27530
28413
|
}
|
|
27531
28414
|
// execute if the current calculated slack value is less than the previous slack value.
|
|
27532
|
-
else if (collection[fromTaskIdIndex]['slack'] > dateDifference &&
|
|
28415
|
+
else if (collection[fromTaskIdIndex]['slack'] > dateDifference &&
|
|
28416
|
+
collection[fromTaskIdIndex]['slack'] !== 0) {
|
|
27533
28417
|
// execute if the offset value is not given.
|
|
27534
28418
|
if (fromDateArray1.length <= 1) {
|
|
27535
28419
|
if (collection[totaskId]['slack'] + dateDifference < 0) {
|
|
@@ -27579,7 +28463,8 @@ class CriticalPath {
|
|
|
27579
28463
|
}
|
|
27580
28464
|
}
|
|
27581
28465
|
//It execute while already the slack value is set and it is higher than the datedifference.
|
|
27582
|
-
else if (collection[fromTaskIdIndex]['slack'] > dateDifference &&
|
|
28466
|
+
else if (collection[fromTaskIdIndex]['slack'] > dateDifference &&
|
|
28467
|
+
collection[fromTaskIdIndex]['slack'] !== 0) {
|
|
27583
28468
|
if (fromDateArray1.length <= 1) {
|
|
27584
28469
|
if (collection[totaskId]['slack'] + dateDifference < 0) {
|
|
27585
28470
|
collection[fromTaskIdIndex]['slack'] = 0;
|
|
@@ -27607,7 +28492,8 @@ class CriticalPath {
|
|
|
27607
28492
|
if (isNullOrUndefined(collection[fromTaskIdIndex]['slack'])) {
|
|
27608
28493
|
collection[fromTaskIdIndex]['slack'] = dateDifference;
|
|
27609
28494
|
}
|
|
27610
|
-
else if (collection[fromTaskIdIndex]['slack'] > dateDifference &&
|
|
28495
|
+
else if (collection[fromTaskIdIndex]['slack'] > dateDifference &&
|
|
28496
|
+
collection[fromTaskIdIndex]['slack'] !== 0) {
|
|
27611
28497
|
collection[fromTaskIdIndex]['slack'] = dateDifference;
|
|
27612
28498
|
}
|
|
27613
28499
|
}
|
|
@@ -27618,7 +28504,8 @@ class CriticalPath {
|
|
|
27618
28504
|
// calculate slack value for the task contains predecessor connection in "finish to finish".
|
|
27619
28505
|
if (fromDataPredecessor[i] === 'FF') {
|
|
27620
28506
|
// execute if the previous task is from finish to start or finish to finish state.
|
|
27621
|
-
if (collection[totaskId]['fs'] === 1 || collection[totaskId]['ff'] === 1 ||
|
|
28507
|
+
if (collection[totaskId]['fs'] === 1 || collection[totaskId]['ff'] === 1 ||
|
|
28508
|
+
collection[totaskId]['fs'] === -1) {
|
|
27622
28509
|
if (collection[totaskId]['fs'] === 1 || collection[totaskId]['ff'] === 1) {
|
|
27623
28510
|
prevTaskEnddate = toIdFlatData.endDate;
|
|
27624
28511
|
ffslack = collection[totaskId]['slack'];
|
|
@@ -27921,7 +28808,7 @@ class CriticalPath {
|
|
|
27921
28808
|
}
|
|
27922
28809
|
else {
|
|
27923
28810
|
let currentRecords = this.parent.currentViewData.filter((data) => {
|
|
27924
|
-
return (data.ganttProperties.taskId).toString()
|
|
28811
|
+
return (data.ganttProperties.taskId).toString() === criticalPathIds[i].toString();
|
|
27925
28812
|
});
|
|
27926
28813
|
for (let i = 0; i < currentRecords.length; i++) {
|
|
27927
28814
|
if (currentRecords[i].ganttProperties.isCritical || currentRecords[i].ganttProperties.endDate >= this.maxEndDate) {
|
|
@@ -27935,13 +28822,13 @@ class CriticalPath {
|
|
|
27935
28822
|
const columnFields = this.parent.taskFields;
|
|
27936
28823
|
if (criticalData.parentItem) {
|
|
27937
28824
|
const parentRecord = this.parent.currentViewData.filter((data) => {
|
|
27938
|
-
return criticalData.parentItem.uniqueID
|
|
28825
|
+
return criticalData.parentItem.uniqueID === data.uniqueID;
|
|
27939
28826
|
});
|
|
27940
28827
|
const parentIndex = this.parent.currentViewData.indexOf(parentRecord[0]);
|
|
27941
28828
|
const parentElement = this.parent.getRowByIndex(parentIndex);
|
|
27942
28829
|
let parentTaskbarElement = parentElement.querySelectorAll('.e-taskbar-main-container');
|
|
27943
28830
|
for (let i = 0; i < parentTaskbarElement.length; i++) {
|
|
27944
|
-
if (parentTaskbarElement[i].getAttribute('rowuniqueid')
|
|
28831
|
+
if (parentTaskbarElement[i].getAttribute('rowuniqueid') === criticalData['rowUniqueID']) {
|
|
27945
28832
|
addClass(parentTaskbarElement[i].querySelectorAll('.e-gantt-child-taskbar-inner-div'), criticalChildTaskBarInnerDiv);
|
|
27946
28833
|
}
|
|
27947
28834
|
}
|
|
@@ -28087,6 +28974,7 @@ class ContextMenu$2 {
|
|
|
28087
28974
|
this.contextMenu = new ContextMenu$1({
|
|
28088
28975
|
items: this.getMenuItems(),
|
|
28089
28976
|
locale: this.parent.locale,
|
|
28977
|
+
enableRtl: this.parent.enableRtl,
|
|
28090
28978
|
target: target,
|
|
28091
28979
|
animationSettings: { effect: 'None' },
|
|
28092
28980
|
select: this.contextMenuItemClick.bind(this),
|
|
@@ -28227,6 +29115,12 @@ class ContextMenu$2 {
|
|
|
28227
29115
|
};
|
|
28228
29116
|
// eslint-disable-next-line
|
|
28229
29117
|
this.parent.trigger('actionBegin', eventArgs, (eventArgs) => {
|
|
29118
|
+
if (!isNullOrUndefined(this.parent.loadingIndicator) && this.parent.loadingIndicator.indicatorType === "Shimmer") {
|
|
29119
|
+
this.parent.showMaskRow();
|
|
29120
|
+
}
|
|
29121
|
+
else {
|
|
29122
|
+
this.parent.showSpinner();
|
|
29123
|
+
}
|
|
28230
29124
|
this.parent.chartRowsModule.splitTask(this.rowData[taskSettings.id], currentClickedDate);
|
|
28231
29125
|
});
|
|
28232
29126
|
}
|
|
@@ -28247,6 +29141,12 @@ class ContextMenu$2 {
|
|
|
28247
29141
|
target: this.targetElement
|
|
28248
29142
|
};
|
|
28249
29143
|
this.parent.trigger('actionBegin', eventArgs, (eventArgs) => {
|
|
29144
|
+
if (!isNullOrUndefined(this.parent.loadingIndicator) && this.parent.loadingIndicator.indicatorType === "Shimmer") {
|
|
29145
|
+
this.parent.showMaskRow();
|
|
29146
|
+
}
|
|
29147
|
+
else {
|
|
29148
|
+
this.parent.showSpinner();
|
|
29149
|
+
}
|
|
28250
29150
|
if (eventArgs.cancel === false) {
|
|
28251
29151
|
this.parent.chartRowsModule.mergeTask(this.rowData[taskSettings.id], segmentIndexes);
|
|
28252
29152
|
}
|
|
@@ -28255,12 +29155,30 @@ class ContextMenu$2 {
|
|
|
28255
29155
|
// eslint-disable-next-line
|
|
28256
29156
|
getClickedDate(element) {
|
|
28257
29157
|
// context menu click position
|
|
28258
|
-
|
|
29158
|
+
let ganttElementPositionLeft;
|
|
28259
29159
|
// task left position
|
|
28260
|
-
|
|
28261
|
-
|
|
28262
|
-
|
|
28263
|
-
|
|
29160
|
+
if (this.parent.enableRtl) {
|
|
29161
|
+
const box = this.parent.element.getBoundingClientRect();
|
|
29162
|
+
const scrollLeft = window.pageXOffset || document.documentElement.scrollLeft ||
|
|
29163
|
+
document.body.scrollLeft;
|
|
29164
|
+
const clientLeft = document.documentElement.clientLeft || document.body.clientLeft || 0;
|
|
29165
|
+
ganttElementPositionLeft = box.left + scrollLeft - clientLeft;
|
|
29166
|
+
}
|
|
29167
|
+
else {
|
|
29168
|
+
ganttElementPositionLeft = this.parent.getOffsetRect(this.parent.element).left;
|
|
29169
|
+
}
|
|
29170
|
+
let pageLeft;
|
|
29171
|
+
let currentTaskDifference;
|
|
29172
|
+
if (this.parent.enableRtl) {
|
|
29173
|
+
pageLeft = Math.abs(ganttElementPositionLeft + this.parent.ganttChartModule.chartElement.offsetWidth -
|
|
29174
|
+
this.rowData.ganttProperties.left - this.parent.ganttChartModule.scrollElement.scrollLeft);
|
|
29175
|
+
currentTaskDifference = Math.abs(this.clickedPosition - pageLeft);
|
|
29176
|
+
}
|
|
29177
|
+
else {
|
|
29178
|
+
pageLeft = ganttElementPositionLeft + this.parent.ganttChartModule.chartElement.offsetLeft +
|
|
29179
|
+
this.rowData.ganttProperties.left - this.parent.ganttChartModule.scrollElement.scrollLeft;
|
|
29180
|
+
currentTaskDifference = this.clickedPosition - pageLeft;
|
|
29181
|
+
}
|
|
28264
29182
|
let splitTaskDuration = Math.ceil(currentTaskDifference / this.parent.perDayWidth);
|
|
28265
29183
|
const startDate = this.rowData.ganttProperties.startDate;
|
|
28266
29184
|
if (!isNullOrUndefined(this.parent.timelineSettings.bottomTier) && this.parent.timelineSettings.bottomTier.unit === 'Hour') {
|
|
@@ -28770,6 +29688,12 @@ class ExcelExport$1 {
|
|
|
28770
29688
|
bindEvents() {
|
|
28771
29689
|
this.parent.treeGrid.beforeExcelExport = (args) => {
|
|
28772
29690
|
this.parent.trigger('beforeExcelExport', args);
|
|
29691
|
+
if (!isNullOrUndefined(this.parent.loadingIndicator) && this.parent.loadingIndicator.indicatorType === "Shimmer") {
|
|
29692
|
+
this.parent.showMaskRow();
|
|
29693
|
+
}
|
|
29694
|
+
else {
|
|
29695
|
+
this.parent.showSpinner();
|
|
29696
|
+
}
|
|
28773
29697
|
};
|
|
28774
29698
|
this.parent.treeGrid.excelQueryCellInfo = (args) => {
|
|
28775
29699
|
this.parent.trigger('excelQueryCellInfo', args);
|
|
@@ -28779,6 +29703,12 @@ class ExcelExport$1 {
|
|
|
28779
29703
|
};
|
|
28780
29704
|
this.parent.treeGrid.excelExportComplete = (args) => {
|
|
28781
29705
|
this.parent.trigger('excelExportComplete', args);
|
|
29706
|
+
if (!isNullOrUndefined(this.parent.loadingIndicator) && this.parent.loadingIndicator.indicatorType === "Shimmer") {
|
|
29707
|
+
this.parent.hideMaskRow();
|
|
29708
|
+
}
|
|
29709
|
+
else {
|
|
29710
|
+
this.parent.hideSpinner();
|
|
29711
|
+
}
|
|
28782
29712
|
};
|
|
28783
29713
|
}
|
|
28784
29714
|
}
|
|
@@ -28961,6 +29891,12 @@ class RowDD$1 {
|
|
|
28961
29891
|
if (!args.cancel) {
|
|
28962
29892
|
args.requestType = 'beforeDrop';
|
|
28963
29893
|
this.parent.trigger('actionBegin', args);
|
|
29894
|
+
if (!isNullOrUndefined(this.parent.loadingIndicator) && this.parent.loadingIndicator.indicatorType === "Shimmer") {
|
|
29895
|
+
this.parent.showMaskRow();
|
|
29896
|
+
}
|
|
29897
|
+
else {
|
|
29898
|
+
this.parent.showSpinner();
|
|
29899
|
+
}
|
|
28964
29900
|
if (!args.cancel) {
|
|
28965
29901
|
this.dropRows(args, true); // method to update the data collections based on drop action
|
|
28966
29902
|
args.cancel = true;
|
|
@@ -29058,15 +29994,15 @@ class RowDD$1 {
|
|
|
29058
29994
|
}
|
|
29059
29995
|
}
|
|
29060
29996
|
if (!this.parent.enableVirtualization) {
|
|
29061
|
-
|
|
29997
|
+
const data = gObj.flatData;
|
|
29062
29998
|
let startIndex;
|
|
29063
29999
|
let endIndex;
|
|
29064
|
-
|
|
29065
|
-
|
|
30000
|
+
const ganttData = this.parent.dataSource;
|
|
30001
|
+
const uniqueTaskID = this.parent.taskFields.id;
|
|
29066
30002
|
if (draggedRecord.index < droppedRecord.index) {
|
|
29067
30003
|
startIndex = draggedRecord.index;
|
|
29068
30004
|
for (let i = 0; i < ganttData.length; i++) {
|
|
29069
|
-
|
|
30005
|
+
const currentData = this.parent.currentViewData.filter(function (e) {
|
|
29070
30006
|
return e[uniqueTaskID] === ganttData[i][uniqueTaskID];
|
|
29071
30007
|
})[0];
|
|
29072
30008
|
if (currentData && currentData.index > droppedRecord.index) {
|
|
@@ -29078,7 +30014,7 @@ class RowDD$1 {
|
|
|
29078
30014
|
else {
|
|
29079
30015
|
startIndex = droppedRecord.index;
|
|
29080
30016
|
for (let i = 0; i < ganttData.length; i++) {
|
|
29081
|
-
|
|
30017
|
+
const currentData = this.parent.currentViewData.filter(function (e) {
|
|
29082
30018
|
return e[uniqueTaskID] === ganttData[i][uniqueTaskID];
|
|
29083
30019
|
})[0];
|
|
29084
30020
|
if (currentData && currentData.index > draggedRecord.index) {
|
|
@@ -29091,7 +30027,7 @@ class RowDD$1 {
|
|
|
29091
30027
|
if (!isNullOrUndefined(data[i])) {
|
|
29092
30028
|
data[i].index = i;
|
|
29093
30029
|
if (!isNullOrUndefined(data[i].parentItem)) {
|
|
29094
|
-
|
|
30030
|
+
const updatedParent = data.filter((e) => {
|
|
29095
30031
|
return e.uniqueID === data[i].parentUniqueID;
|
|
29096
30032
|
})[0];
|
|
29097
30033
|
data[i].parentItem.index = updatedParent.index;
|
|
@@ -29169,7 +30105,7 @@ class RowDD$1 {
|
|
|
29169
30105
|
}
|
|
29170
30106
|
let validateRecords;
|
|
29171
30107
|
if (toParent.uniqueID === draggedParent.uniqueID || (draggedParent.parentItem &&
|
|
29172
|
-
toParent.uniqueID
|
|
30108
|
+
toParent.uniqueID === this.parent.flatData[this.parent.ids.indexOf(draggedParent.parentItem.taskId)].uniqueID)) {
|
|
29173
30109
|
validateRecords = this.parent.currentViewData.filter((data) => {
|
|
29174
30110
|
if ((data.ganttProperties.predecessor && data.ganttProperties.predecessor.length > 0)) {
|
|
29175
30111
|
for (let i = 0; i < data.ganttProperties.predecessor.length; i++) {
|
|
@@ -29587,7 +30523,7 @@ class RowDD$1 {
|
|
|
29587
30523
|
}
|
|
29588
30524
|
let idx;
|
|
29589
30525
|
const ganttData = dataSource.length > 0 && this.parent.viewType !== 'ResourceView' ?
|
|
29590
|
-
dataSource : this.parent.
|
|
30526
|
+
dataSource : this.parent.updatedRecords;
|
|
29591
30527
|
for (let i = 0; i < ganttData.length; i++) {
|
|
29592
30528
|
if (this.parent.viewType === 'ResourceView') {
|
|
29593
30529
|
if (ganttData[i].ganttProperties.rowUniqueID === deletedRow.ganttProperties.rowUniqueID) {
|
|
@@ -32936,217 +33872,215 @@ class PdfGanttPredecessor {
|
|
|
32936
33872
|
let childPageData;
|
|
32937
33873
|
let parentY = 0;
|
|
32938
33874
|
let childY = 0;
|
|
32939
|
-
|
|
32940
|
-
|
|
32941
|
-
|
|
32942
|
-
|
|
32943
|
-
|
|
32944
|
-
|
|
32945
|
-
|
|
32946
|
-
|
|
32947
|
-
if (this.
|
|
32948
|
-
|
|
32949
|
-
predecessorType = 'FSType1';
|
|
32950
|
-
}
|
|
32951
|
-
else {
|
|
32952
|
-
predecessorType = 'FSType2';
|
|
32953
|
-
}
|
|
33875
|
+
switch (this.type) {
|
|
33876
|
+
case 'FS':
|
|
33877
|
+
if (childTask.startPage > -1 && parentTask.endPage > -1) {
|
|
33878
|
+
startPage = pages[parentTask.endPage];
|
|
33879
|
+
endPage = pages[childTask.startPage];
|
|
33880
|
+
parentPageData = pdfGantt.pdfPageDetail[parentTask.endPage - pdfGantt.chartPageIndex];
|
|
33881
|
+
childPageData = pdfGantt.pdfPageDetail[childTask.startPage - pdfGantt.chartPageIndex];
|
|
33882
|
+
if (this.parentIndex < this.childIndex) {
|
|
33883
|
+
if (this.parentLeft < this.childLeft && this.childLeft > (this.parentLeft + this.parentWidth + 25)) {
|
|
33884
|
+
predecessorType = 'FSType1';
|
|
32954
33885
|
}
|
|
32955
33886
|
else {
|
|
32956
|
-
|
|
32957
|
-
predecessorType = 'FSType3';
|
|
32958
|
-
}
|
|
32959
|
-
else {
|
|
32960
|
-
predecessorType = 'FSType4';
|
|
32961
|
-
}
|
|
33887
|
+
predecessorType = 'FSType2';
|
|
32962
33888
|
}
|
|
32963
33889
|
}
|
|
32964
33890
|
else {
|
|
32965
|
-
|
|
33891
|
+
if (this.parentLeft < this.childLeft && this.childLeft > (this.parentLeft + this.parentWidth + 25)) {
|
|
33892
|
+
predecessorType = 'FSType3';
|
|
33893
|
+
}
|
|
33894
|
+
else {
|
|
33895
|
+
predecessorType = 'FSType4';
|
|
33896
|
+
}
|
|
32966
33897
|
}
|
|
32967
|
-
|
|
32968
|
-
|
|
32969
|
-
|
|
32970
|
-
|
|
32971
|
-
|
|
32972
|
-
|
|
32973
|
-
|
|
32974
|
-
|
|
32975
|
-
|
|
32976
|
-
|
|
32977
|
-
|
|
32978
|
-
|
|
32979
|
-
|
|
32980
|
-
|
|
33898
|
+
}
|
|
33899
|
+
else {
|
|
33900
|
+
return;
|
|
33901
|
+
}
|
|
33902
|
+
break;
|
|
33903
|
+
case 'SF':
|
|
33904
|
+
if (childTask.endPage > -1 && parentTask.startPage > -1) {
|
|
33905
|
+
startPage = pages[parentTask.startPage];
|
|
33906
|
+
endPage = pages[childTask.endPage];
|
|
33907
|
+
parentPageData = pdfGantt.pdfPageDetail[parentTask.endPage - pdfGantt.chartPageIndex];
|
|
33908
|
+
childPageData = pdfGantt.pdfPageDetail[childTask.startPage - pdfGantt.chartPageIndex];
|
|
33909
|
+
if (this.parentIndex < this.childIndex) {
|
|
33910
|
+
if (this.parentLeft > this.childLeft + this.childWidth) {
|
|
33911
|
+
predecessorType = 'SFType1';
|
|
32981
33912
|
}
|
|
32982
33913
|
else {
|
|
32983
|
-
|
|
32984
|
-
predecessorType = 'SFType3';
|
|
32985
|
-
}
|
|
32986
|
-
else {
|
|
32987
|
-
predecessorType = 'SFType4';
|
|
32988
|
-
}
|
|
33914
|
+
predecessorType = 'SFType2';
|
|
32989
33915
|
}
|
|
32990
33916
|
}
|
|
32991
33917
|
else {
|
|
32992
|
-
|
|
33918
|
+
if (this.parentLeft > this.childLeft + this.childWidth) {
|
|
33919
|
+
predecessorType = 'SFType3';
|
|
33920
|
+
}
|
|
33921
|
+
else {
|
|
33922
|
+
predecessorType = 'SFType4';
|
|
33923
|
+
}
|
|
32993
33924
|
}
|
|
32994
|
-
|
|
32995
|
-
|
|
32996
|
-
|
|
32997
|
-
|
|
32998
|
-
|
|
32999
|
-
|
|
33000
|
-
|
|
33001
|
-
|
|
33002
|
-
|
|
33003
|
-
|
|
33004
|
-
|
|
33005
|
-
|
|
33006
|
-
|
|
33007
|
-
|
|
33925
|
+
}
|
|
33926
|
+
else {
|
|
33927
|
+
return;
|
|
33928
|
+
}
|
|
33929
|
+
break;
|
|
33930
|
+
case 'FF':
|
|
33931
|
+
if (childTask.endPage > -1 && parentTask.endPage > -1) {
|
|
33932
|
+
startPage = pages[parentTask.endPage];
|
|
33933
|
+
endPage = pages[childTask.endPage];
|
|
33934
|
+
parentPageData = pdfGantt.pdfPageDetail[parentTask.endPage - pdfGantt.chartPageIndex];
|
|
33935
|
+
childPageData = pdfGantt.pdfPageDetail[childTask.endPage - pdfGantt.chartPageIndex];
|
|
33936
|
+
if (this.parentIndex < this.childIndex) {
|
|
33937
|
+
if ((this.childLeft + this.childWidth) >= (this.parentLeft + this.parentWidth)) {
|
|
33938
|
+
predecessorType = 'FFType1';
|
|
33008
33939
|
}
|
|
33009
33940
|
else {
|
|
33010
|
-
|
|
33011
|
-
predecessorType = 'FFType3';
|
|
33012
|
-
}
|
|
33013
|
-
else {
|
|
33014
|
-
predecessorType = 'FFType4';
|
|
33015
|
-
}
|
|
33941
|
+
predecessorType = 'FFType2';
|
|
33016
33942
|
}
|
|
33017
33943
|
}
|
|
33018
33944
|
else {
|
|
33019
|
-
|
|
33945
|
+
if ((this.childLeft + this.childWidth) >= (this.parentLeft + this.parentWidth)) {
|
|
33946
|
+
predecessorType = 'FFType3';
|
|
33947
|
+
}
|
|
33948
|
+
else {
|
|
33949
|
+
predecessorType = 'FFType4';
|
|
33950
|
+
}
|
|
33020
33951
|
}
|
|
33021
|
-
|
|
33022
|
-
|
|
33023
|
-
|
|
33024
|
-
|
|
33025
|
-
|
|
33026
|
-
|
|
33027
|
-
|
|
33028
|
-
|
|
33029
|
-
|
|
33030
|
-
|
|
33031
|
-
|
|
33032
|
-
|
|
33033
|
-
|
|
33034
|
-
|
|
33952
|
+
}
|
|
33953
|
+
else {
|
|
33954
|
+
return;
|
|
33955
|
+
}
|
|
33956
|
+
break;
|
|
33957
|
+
case 'SS':
|
|
33958
|
+
if (childTask.startPage > -1 && parentTask.startPage > -1) {
|
|
33959
|
+
startPage = pages[parentTask.startPage];
|
|
33960
|
+
endPage = pages[childTask.startPage];
|
|
33961
|
+
parentPageData = pdfGantt.pdfPageDetail[parentTask.startPage - pdfGantt.chartPageIndex];
|
|
33962
|
+
childPageData = pdfGantt.pdfPageDetail[childTask.startPage - pdfGantt.chartPageIndex];
|
|
33963
|
+
if (this.parentIndex < this.childIndex) {
|
|
33964
|
+
if (this.parentLeft >= this.childLeft) {
|
|
33965
|
+
predecessorType = 'SSType1';
|
|
33035
33966
|
}
|
|
33036
33967
|
else {
|
|
33037
|
-
|
|
33038
|
-
predecessorType = 'SSType3';
|
|
33039
|
-
}
|
|
33040
|
-
else {
|
|
33041
|
-
predecessorType = 'SSType4';
|
|
33042
|
-
}
|
|
33968
|
+
predecessorType = 'SSType2';
|
|
33043
33969
|
}
|
|
33044
33970
|
}
|
|
33045
33971
|
else {
|
|
33046
|
-
|
|
33972
|
+
if (this.parentLeft >= this.childLeft) {
|
|
33973
|
+
predecessorType = 'SSType3';
|
|
33974
|
+
}
|
|
33975
|
+
else {
|
|
33976
|
+
predecessorType = 'SSType4';
|
|
33977
|
+
}
|
|
33047
33978
|
}
|
|
33048
|
-
|
|
33049
|
-
|
|
33050
|
-
|
|
33051
|
-
|
|
33052
|
-
|
|
33053
|
-
|
|
33054
|
-
|
|
33055
|
-
|
|
33056
|
-
|
|
33057
|
-
|
|
33058
|
-
|
|
33059
|
-
|
|
33060
|
-
|
|
33061
|
-
|
|
33062
|
-
|
|
33063
|
-
|
|
33064
|
-
|
|
33065
|
-
|
|
33066
|
-
|
|
33067
|
-
|
|
33068
|
-
|
|
33069
|
-
|
|
33070
|
-
|
|
33071
|
-
|
|
33072
|
-
|
|
33073
|
-
|
|
33074
|
-
|
|
33075
|
-
|
|
33076
|
-
|
|
33077
|
-
|
|
33078
|
-
|
|
33079
|
-
|
|
33080
|
-
|
|
33081
|
-
|
|
33082
|
-
|
|
33083
|
-
|
|
33084
|
-
|
|
33085
|
-
|
|
33086
|
-
|
|
33087
|
-
|
|
33088
|
-
|
|
33089
|
-
|
|
33090
|
-
|
|
33091
|
-
|
|
33092
|
-
|
|
33093
|
-
|
|
33094
|
-
|
|
33095
|
-
|
|
33096
|
-
|
|
33097
|
-
|
|
33098
|
-
|
|
33099
|
-
|
|
33100
|
-
|
|
33101
|
-
|
|
33102
|
-
|
|
33103
|
-
|
|
33104
|
-
|
|
33105
|
-
|
|
33106
|
-
|
|
33107
|
-
|
|
33108
|
-
|
|
33109
|
-
|
|
33110
|
-
|
|
33111
|
-
|
|
33112
|
-
|
|
33113
|
-
|
|
33114
|
-
|
|
33115
|
-
|
|
33116
|
-
|
|
33117
|
-
|
|
33118
|
-
|
|
33119
|
-
|
|
33120
|
-
|
|
33121
|
-
|
|
33122
|
-
|
|
33123
|
-
|
|
33124
|
-
|
|
33125
|
-
|
|
33126
|
-
|
|
33127
|
-
|
|
33128
|
-
|
|
33129
|
-
|
|
33130
|
-
|
|
33131
|
-
|
|
33132
|
-
|
|
33133
|
-
|
|
33134
|
-
|
|
33135
|
-
|
|
33136
|
-
|
|
33137
|
-
|
|
33138
|
-
|
|
33139
|
-
|
|
33140
|
-
|
|
33141
|
-
|
|
33142
|
-
|
|
33143
|
-
|
|
33144
|
-
|
|
33145
|
-
|
|
33146
|
-
|
|
33147
|
-
|
|
33148
|
-
|
|
33149
|
-
|
|
33979
|
+
}
|
|
33980
|
+
else {
|
|
33981
|
+
return;
|
|
33982
|
+
}
|
|
33983
|
+
break;
|
|
33984
|
+
}
|
|
33985
|
+
let midPoint = Math.round((this.parent.rowHeight - 1) / 2.0);
|
|
33986
|
+
midPoint = pixelToPoint(midPoint);
|
|
33987
|
+
/* eslint-disable-next-line */
|
|
33988
|
+
let point1, point2, point3, point4, point5, point6;
|
|
33989
|
+
point1 = point2 = point3 = point4 = point5 = point6 = new PointF();
|
|
33990
|
+
const parentTaskpoint = Object.assign({}, parentTask.taskStartPoint);
|
|
33991
|
+
const childTaskpoint = Object.assign({}, childTask.taskStartPoint);
|
|
33992
|
+
parentY = parentTaskpoint.y + parentPageData.startPoint.y;
|
|
33993
|
+
childY = childTaskpoint.y + childPageData.startPoint.y;
|
|
33994
|
+
const ffpoint1 = new PointF(pixelToPoint(this.parentLeft + this.parentWidth), parentY + midPoint);
|
|
33995
|
+
const sspoint1 = new PointF(pixelToPoint(this.parentLeft) - 1, parentY + midPoint);
|
|
33996
|
+
const ffpoint3 = new PointF(pixelToPoint(this.childLeft - 20), childY + midPoint);
|
|
33997
|
+
const ffpoint4 = new PointF(pixelToPoint(this.childLeft - 6 - this.lineWidth) - 1, childY + midPoint);
|
|
33998
|
+
const sspoint4 = new PointF(pixelToPoint(this.childLeft + this.childWidth + 6 + this.lineWidth) + 1, childY + midPoint);
|
|
33999
|
+
switch (predecessorType) {
|
|
34000
|
+
case 'FSType1':
|
|
34001
|
+
case 'FSType3':
|
|
34002
|
+
point1 = ffpoint1;
|
|
34003
|
+
point2 = new PointF(pixelToPoint(this.childLeft - 20), parentY + midPoint);
|
|
34004
|
+
point3 = ffpoint3;
|
|
34005
|
+
point4 = ffpoint4;
|
|
34006
|
+
this.connectLines(startPage, endPage, point1, point2, point3, point4, childTask, midPoint);
|
|
34007
|
+
break;
|
|
34008
|
+
case 'FSType2':
|
|
34009
|
+
point1 = ffpoint1;
|
|
34010
|
+
point2 = new PointF(point1.x + 10, parentY + midPoint);
|
|
34011
|
+
point3 = new PointF(point1.x + 10, childY + 2);
|
|
34012
|
+
point4 = new PointF(pixelToPoint(this.childLeft - 20), childY + 2);
|
|
34013
|
+
point5 = ffpoint3;
|
|
34014
|
+
point6 = ffpoint4;
|
|
34015
|
+
this.connectLines(startPage, endPage, point1, point2, point3, point4, childTask, midPoint, point5, point6);
|
|
34016
|
+
break;
|
|
34017
|
+
case 'FSType4':
|
|
34018
|
+
point1 = ffpoint1;
|
|
34019
|
+
point2 = new PointF(point1.x + 10, parentY + midPoint);
|
|
34020
|
+
point3 = new PointF(point1.x + 10, parentY + 2);
|
|
34021
|
+
point4 = new PointF(pixelToPoint(this.childLeft - 20), parentY + 2);
|
|
34022
|
+
point5 = ffpoint3;
|
|
34023
|
+
point6 = ffpoint4;
|
|
34024
|
+
this.connectLines(startPage, endPage, point1, point2, point3, point4, childTask, midPoint, point5, point6);
|
|
34025
|
+
break;
|
|
34026
|
+
case 'FFType1':
|
|
34027
|
+
case 'FFType3':
|
|
34028
|
+
point1 = new PointF(pixelToPoint(this.parentLeft + this.parentWidth) + 1, parentY + midPoint);
|
|
34029
|
+
point2 = new PointF(pixelToPoint(this.childLeft + this.childWidth + 20), parentY + midPoint);
|
|
34030
|
+
point3 = new PointF(point2.x, childY + midPoint);
|
|
34031
|
+
point4 = sspoint4;
|
|
34032
|
+
this.connectLines(startPage, endPage, point1, point2, point3, point4, childTask, midPoint);
|
|
34033
|
+
break;
|
|
34034
|
+
case 'FFType2':
|
|
34035
|
+
case 'FFType4':
|
|
34036
|
+
point1 = new PointF(pixelToPoint(this.parentLeft + this.parentWidth) + 1, parentY + midPoint);
|
|
34037
|
+
point2 = new PointF(pixelToPoint(this.parentLeft + this.parentWidth + 20), parentY + midPoint);
|
|
34038
|
+
point3 = new PointF(point2.x, childY + midPoint);
|
|
34039
|
+
point4 = sspoint4;
|
|
34040
|
+
this.connectLines(startPage, endPage, point1, point2, point3, point4, childTask, midPoint);
|
|
34041
|
+
break;
|
|
34042
|
+
case 'SSType1':
|
|
34043
|
+
case 'SSType3':
|
|
34044
|
+
point1 = sspoint1;
|
|
34045
|
+
point2 = new PointF(pixelToPoint(this.childLeft - 20), parentY + midPoint);
|
|
34046
|
+
point3 = new PointF(point2.x, childY + midPoint);
|
|
34047
|
+
point4 = ffpoint4;
|
|
34048
|
+
this.connectLines(startPage, endPage, point1, point2, point3, point4, childTask, midPoint);
|
|
34049
|
+
break;
|
|
34050
|
+
case 'SSType2':
|
|
34051
|
+
case 'SSType4':
|
|
34052
|
+
point1 = sspoint1;
|
|
34053
|
+
point2 = new PointF(pixelToPoint(this.parentLeft - 20), parentY + midPoint);
|
|
34054
|
+
point3 = new PointF(point2.x, childY + midPoint);
|
|
34055
|
+
point4 = ffpoint4;
|
|
34056
|
+
this.connectLines(startPage, endPage, point1, point2, point3, point4, childTask, midPoint);
|
|
34057
|
+
break;
|
|
34058
|
+
case 'SFType1':
|
|
34059
|
+
case 'SFType3':
|
|
34060
|
+
point1 = sspoint1;
|
|
34061
|
+
point2 = new PointF(pixelToPoint(this.childLeft + this.childWidth + 20), parentY + midPoint);
|
|
34062
|
+
point3 = new PointF(point2.x, childY + midPoint);
|
|
34063
|
+
point4 = sspoint4;
|
|
34064
|
+
this.connectLines(startPage, endPage, point1, point2, point3, point4, childTask, midPoint);
|
|
34065
|
+
break;
|
|
34066
|
+
case 'SFType2':
|
|
34067
|
+
point1 = sspoint1;
|
|
34068
|
+
point2 = new PointF(pixelToPoint(this.parentLeft - 20), parentY + midPoint);
|
|
34069
|
+
point3 = new PointF(point2.x, childY + 2);
|
|
34070
|
+
point4 = new PointF(pixelToPoint(this.childLeft + this.childWidth + 20), childY + 2);
|
|
34071
|
+
point5 = new PointF(point4.x, childY + midPoint);
|
|
34072
|
+
point6 = sspoint4;
|
|
34073
|
+
this.connectLines(startPage, endPage, point1, point2, point3, point4, childTask, midPoint, point5, point6);
|
|
34074
|
+
break;
|
|
34075
|
+
case 'SFType4':
|
|
34076
|
+
point1 = sspoint1;
|
|
34077
|
+
point2 = new PointF(pixelToPoint(this.parentLeft - 20), parentY + midPoint);
|
|
34078
|
+
point3 = new PointF(point2.x, parentY + 2);
|
|
34079
|
+
point4 = new PointF(pixelToPoint(this.childLeft + this.childWidth + 20), parentY + 2);
|
|
34080
|
+
point5 = new PointF(point4.x, childY + midPoint);
|
|
34081
|
+
point6 = sspoint4;
|
|
34082
|
+
this.connectLines(startPage, endPage, point1, point2, point3, point4, childTask, midPoint, point5, point6);
|
|
34083
|
+
break;
|
|
33150
34084
|
}
|
|
33151
34085
|
}
|
|
33152
34086
|
/**
|
|
@@ -33629,6 +34563,12 @@ class PdfExport {
|
|
|
33629
34563
|
cancel: false
|
|
33630
34564
|
};
|
|
33631
34565
|
this.parent.trigger('beforePdfExport', args);
|
|
34566
|
+
if (!isNullOrUndefined(this.parent.loadingIndicator) && this.parent.loadingIndicator.indicatorType === "Shimmer") {
|
|
34567
|
+
this.parent.showMaskRow();
|
|
34568
|
+
}
|
|
34569
|
+
else {
|
|
34570
|
+
this.parent.showSpinner();
|
|
34571
|
+
}
|
|
33632
34572
|
if (getValue('cancel', args)) {
|
|
33633
34573
|
/* eslint-disable-next-line */
|
|
33634
34574
|
return new Promise((resolve, reject) => {
|
|
@@ -33660,6 +34600,12 @@ class PdfExport {
|
|
|
33660
34600
|
}
|
|
33661
34601
|
this.processExport(data, pdfExportProperties, isMultipleExport).then(() => {
|
|
33662
34602
|
this.parent.trigger('pdfExportComplete', {});
|
|
34603
|
+
if (!isNullOrUndefined(this.parent.loadingIndicator) && this.parent.loadingIndicator.indicatorType === "Shimmer") {
|
|
34604
|
+
this.parent.hideMaskRow();
|
|
34605
|
+
}
|
|
34606
|
+
else {
|
|
34607
|
+
this.parent.hideSpinner();
|
|
34608
|
+
}
|
|
33663
34609
|
resolve(this.pdfDocument);
|
|
33664
34610
|
});
|
|
33665
34611
|
}
|
|
@@ -33847,5 +34793,5 @@ class VirtualScroll$1 {
|
|
|
33847
34793
|
* Gantt index file
|
|
33848
34794
|
*/
|
|
33849
34795
|
|
|
33850
|
-
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 };
|
|
34796
|
+
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 };
|
|
33851
34797
|
//# sourceMappingURL=ej2-gantt.es2015.js.map
|