@syncfusion/ej2-gantt 20.3.61 → 20.4.40
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintrc.json +16 -1
- package/CHANGELOG.md +19 -0
- package/README.md +64 -52
- 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 +1522 -511
- package/dist/es6/ej2-gantt.es2015.js.map +1 -1
- package/dist/es6/ej2-gantt.es5.js +1548 -519
- 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 +21 -23
- 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/dependency.js +5 -2
- 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 +1 -1
- package/src/gantt/base/gantt-chart.js +31 -3
- 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 +405 -29
- package/src/gantt/base/interface.d.ts +0 -4
- package/src/gantt/base/splitter.js +12 -2
- package/src/gantt/base/task-processor.js +21 -6
- 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 +153 -56
- 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 +22 -2
- 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 +179 -11
- 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 +179 -11
- 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
|
}
|
|
@@ -487,7 +488,7 @@ class DateProcessor {
|
|
|
487
488
|
tDuration = this.parent.editModule.taskbarEditModule.sumOfDuration(ganttProperties.segments);
|
|
488
489
|
}
|
|
489
490
|
else {
|
|
490
|
-
if (!isNullOrUndefined(ganttProperties.startDate) && !isNullOrUndefined(ganttProperties.endDate) &&
|
|
491
|
+
if ((!isNullOrUndefined(this.parent.taskFields.milestone)) && (!isNullOrUndefined(ganttProperties.startDate)) && !isNullOrUndefined(ganttProperties.endDate) &&
|
|
491
492
|
(ganttProperties.startDate).getTime() === (ganttProperties.endDate).getTime() && !isNullOrUndefined(ganttData.taskData[this.parent.taskFields.milestone])) {
|
|
492
493
|
tDuration = 1;
|
|
493
494
|
}
|
|
@@ -1850,7 +1851,6 @@ class TaskProcessor extends DateProcessor {
|
|
|
1850
1851
|
this.parent.setRecordValue('parentId', data[taskSettings.parentID], ganttProperties, true);
|
|
1851
1852
|
}
|
|
1852
1853
|
this.addCustomFieldValue(data, ganttData);
|
|
1853
|
-
ganttData.checkboxState = 'uncheck';
|
|
1854
1854
|
this.parent.setRecordValue('isAutoSchedule', autoSchedule, ganttProperties, true);
|
|
1855
1855
|
this.parent.setRecordValue('resourceInfo', this.setResourceInfo(data), ganttProperties, true);
|
|
1856
1856
|
this.parent.setRecordValue('isMilestone', false, ganttProperties, true);
|
|
@@ -2041,8 +2041,10 @@ class TaskProcessor extends DateProcessor {
|
|
|
2041
2041
|
taskData.push(this.setSegmentTaskData(segment, segments[i]));
|
|
2042
2042
|
}
|
|
2043
2043
|
this.parent.setRecordValue('duration', sumOfDuration, data.ganttProperties, true);
|
|
2044
|
-
|
|
2045
|
-
|
|
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])) {
|
|
2046
2048
|
this.parent.setRecordValue(this.parent.taskFields.endDate, ganttSegments[ganttSegments.length - 1].endDate, data, true);
|
|
2047
2049
|
}
|
|
2048
2050
|
this.parent.setRecordValue('taskData.' + this.parent.taskFields.segments, taskData, data);
|
|
@@ -2539,7 +2541,7 @@ class TaskProcessor extends DateProcessor {
|
|
|
2539
2541
|
}
|
|
2540
2542
|
else if (endDate) {
|
|
2541
2543
|
sDate = new Date(endDate.getTime());
|
|
2542
|
-
milestone = true;
|
|
2544
|
+
milestone = isNullOrUndefined(startDate) && this.parent.allowUnscheduledTasks ? false : true;
|
|
2543
2545
|
}
|
|
2544
2546
|
else {
|
|
2545
2547
|
sDate = this.getValidStartDate(ganttProp);
|
|
@@ -2662,6 +2664,9 @@ class TaskProcessor extends DateProcessor {
|
|
|
2662
2664
|
else if (isMilestone && this.getSecondsInDecimal(date) === this.parent.defaultEndTime) {
|
|
2663
2665
|
date.setHours(24);
|
|
2664
2666
|
}
|
|
2667
|
+
else if (this.getSecondsInDecimal(date) === this.parent.defaultEndTime && this.parent.allowUnscheduledTasks) {
|
|
2668
|
+
date.setHours(22);
|
|
2669
|
+
}
|
|
2665
2670
|
}
|
|
2666
2671
|
const timelineStartDate = this.parent.timelineModule.timelineStartDate;
|
|
2667
2672
|
if (timelineStartDate) {
|
|
@@ -3635,7 +3640,12 @@ class TaskProcessor extends DateProcessor {
|
|
|
3635
3640
|
durationInDay = (childGanttRecord.ganttProperties.duration / (this.parent.secondsPerDay / 60));
|
|
3636
3641
|
break;
|
|
3637
3642
|
default:
|
|
3638
|
-
|
|
3643
|
+
if (childGanttRecord.ganttProperties.duration < 1) {
|
|
3644
|
+
durationInDay = (childGanttRecord.ganttProperties.duration / (this.parent.secondsPerDay / 3600));
|
|
3645
|
+
}
|
|
3646
|
+
else {
|
|
3647
|
+
durationInDay = childGanttRecord.ganttProperties.duration;
|
|
3648
|
+
}
|
|
3639
3649
|
}
|
|
3640
3650
|
if (childGanttRecord.hasChildRecords) {
|
|
3641
3651
|
setValue('totalProgress', childGanttRecord.ganttProperties.totalProgress, progressValues);
|
|
@@ -3712,7 +3722,13 @@ class TaskProcessor extends DateProcessor {
|
|
|
3712
3722
|
if (!childData.ganttProperties.isMilestone && isScheduledTask(childData.ganttProperties)) {
|
|
3713
3723
|
progressValues = this.getParentProgress(childData);
|
|
3714
3724
|
totalProgress += getValue('totalProgress', progressValues);
|
|
3715
|
-
|
|
3725
|
+
if (childData[this.parent.taskFields.duration] < 1) {
|
|
3726
|
+
totalDuration += getValue('totalDuration', progressValues);
|
|
3727
|
+
totalDuration = Number(totalDuration.toFixed(4));
|
|
3728
|
+
}
|
|
3729
|
+
else {
|
|
3730
|
+
totalDuration += getValue('totalDuration', progressValues);
|
|
3731
|
+
}
|
|
3716
3732
|
}
|
|
3717
3733
|
else {
|
|
3718
3734
|
milestoneCount++;
|
|
@@ -3959,6 +3975,8 @@ class ChartScroll {
|
|
|
3959
3975
|
addEventListeners() {
|
|
3960
3976
|
this.parent.on('grid-scroll', this.gridScrollHandler, this);
|
|
3961
3977
|
EventHandler.add(this.element, 'scroll', this.onScroll, this);
|
|
3978
|
+
this.parent.treeGrid.grid.on('showGanttShimmer', this.updateShimmer, this);
|
|
3979
|
+
this.parent.treeGrid.grid.on('removeGanttShimmer', this.removeShimmer, this);
|
|
3962
3980
|
}
|
|
3963
3981
|
/**
|
|
3964
3982
|
* Unbind events
|
|
@@ -3968,6 +3986,8 @@ class ChartScroll {
|
|
|
3968
3986
|
removeEventListeners() {
|
|
3969
3987
|
EventHandler.remove(this.element, 'scroll', this.onScroll);
|
|
3970
3988
|
this.parent.off('grid-scroll', this.gridScrollHandler);
|
|
3989
|
+
this.parent.treeGrid.grid.off('showGanttShimmer', this.updateShimmer);
|
|
3990
|
+
this.parent.treeGrid.grid.off('removeGanttShimmer', this.removeShimmer);
|
|
3971
3991
|
}
|
|
3972
3992
|
/**
|
|
3973
3993
|
*
|
|
@@ -4013,6 +4033,27 @@ class ChartScroll {
|
|
|
4013
4033
|
this.parent.chartVerticalLineContainer.style.top = formatUnit(scrollTop);
|
|
4014
4034
|
}
|
|
4015
4035
|
}
|
|
4036
|
+
removeShimmer() {
|
|
4037
|
+
let parent = this.parent;
|
|
4038
|
+
setTimeout(function () {
|
|
4039
|
+
parent.hideMaskRow();
|
|
4040
|
+
}, 0);
|
|
4041
|
+
}
|
|
4042
|
+
;
|
|
4043
|
+
updateShimmer() {
|
|
4044
|
+
let parent = this.parent;
|
|
4045
|
+
setTimeout(function () {
|
|
4046
|
+
parent.showMaskRow();
|
|
4047
|
+
}, 0);
|
|
4048
|
+
}
|
|
4049
|
+
updateSpinner() {
|
|
4050
|
+
let parent = this.parent;
|
|
4051
|
+
this.parent.showSpinner();
|
|
4052
|
+
window.clearTimeout(this.isScrolling);
|
|
4053
|
+
this.isScrolling = setTimeout(function () {
|
|
4054
|
+
parent.hideSpinner();
|
|
4055
|
+
}, 200);
|
|
4056
|
+
}
|
|
4016
4057
|
/**
|
|
4017
4058
|
* Scroll event handler
|
|
4018
4059
|
*
|
|
@@ -4038,6 +4079,16 @@ class ChartScroll {
|
|
|
4038
4079
|
scrollArgs.scrollDirection = 'Horizontal';
|
|
4039
4080
|
scrollArgs.action = 'HorizontalScroll';
|
|
4040
4081
|
}
|
|
4082
|
+
if ((scrollArgs.scrollDirection != 'Horizontal' && !isNullOrUndefined(scrollArgs.scrollDirection)) && this.parent.enableVirtualization === true && (this.parent.isToolBarClick
|
|
4083
|
+
|| isNullOrUndefined(this.parent.isToolBarClick))) {
|
|
4084
|
+
this.parent.isVirtualScroll = true;
|
|
4085
|
+
if (this.parent.showIndicator || isNullOrUndefined(this.parent.showIndicator)) {
|
|
4086
|
+
if (!this.parent.enableVirtualMaskRow && this.parent.enableVirtualization && this.parent.loadingIndicator.indicatorType === "Spinner") {
|
|
4087
|
+
this.updateSpinner();
|
|
4088
|
+
}
|
|
4089
|
+
}
|
|
4090
|
+
}
|
|
4091
|
+
this.parent.isToolBarClick = true;
|
|
4041
4092
|
scrollArgs.requestType = 'scroll';
|
|
4042
4093
|
this.parent.trigger('actionComplete', scrollArgs);
|
|
4043
4094
|
}
|
|
@@ -4078,7 +4129,10 @@ class ChartScroll {
|
|
|
4078
4129
|
* @param {number} scrollLeft - To set scroll left for scroll container
|
|
4079
4130
|
* @returns {void} .
|
|
4080
4131
|
*/
|
|
4081
|
-
setScrollLeft(scrollLeft) {
|
|
4132
|
+
setScrollLeft(scrollLeft, leftSign) {
|
|
4133
|
+
if (leftSign) {
|
|
4134
|
+
scrollLeft = leftSign == -1 && this.parent.enableRtl ? -scrollLeft : scrollLeft;
|
|
4135
|
+
}
|
|
4082
4136
|
this.element.scrollLeft = scrollLeft;
|
|
4083
4137
|
this.parent.ganttChartModule.chartTimelineContainer.scrollLeft = this.element.scrollLeft;
|
|
4084
4138
|
this.previousScroll.left = this.element.scrollLeft;
|
|
@@ -4225,6 +4279,21 @@ class GanttChart {
|
|
|
4225
4279
|
this.parent.predecessorModule.createConnectorLinesCollection();
|
|
4226
4280
|
}
|
|
4227
4281
|
this.parent.connectorLineModule.renderConnectorLines(this.parent.updatedConnectorLineCollection);
|
|
4282
|
+
for (let i = 0; i < this.parent.chartRowsModule.ganttChartTableBody.children.length; i++) {
|
|
4283
|
+
if (this.parent.chartRowsModule.ganttChartTableBody.children[i].children[0].children[1].children[4]) {
|
|
4284
|
+
this.parent.chartRowsModule.ganttChartTableBody.children[i].children[0].children[1].children[1].setAttribute('tabindex', '-1');
|
|
4285
|
+
this.parent.chartRowsModule.ganttChartTableBody.children[i].children[0].children[1].children[2].setAttribute('tabindex', '-1');
|
|
4286
|
+
this.parent.chartRowsModule.ganttChartTableBody.children[i].children[0].children[1].children[4].setAttribute('tabindex', '-1');
|
|
4287
|
+
}
|
|
4288
|
+
else {
|
|
4289
|
+
if (this.parent.viewType === 'ProjectView') {
|
|
4290
|
+
this.parent.chartRowsModule.ganttChartTableBody.children[i].children[0].children[1].children[1].setAttribute('tabindex', '-1');
|
|
4291
|
+
}
|
|
4292
|
+
else if (this.parent.chartRowsModule.ganttChartTableBody.children[i].children[0].children[1].children[0]) {
|
|
4293
|
+
this.parent.chartRowsModule.ganttChartTableBody.children[i].children[0].children[1].children[0].setAttribute('tabindex', '-1');
|
|
4294
|
+
}
|
|
4295
|
+
}
|
|
4296
|
+
}
|
|
4228
4297
|
if (this.parent.enableCriticalPath) {
|
|
4229
4298
|
let crtiticalModule = this.parent.criticalPathModule;
|
|
4230
4299
|
this.parent.criticalPathModule.criticalConnectorLine(crtiticalModule.criticalPathCollection, crtiticalModule.detailPredecessorCollection, this.parent.enableCriticalPath, crtiticalModule.predecessorCollectionTaskIds);
|
|
@@ -4288,13 +4357,15 @@ class GanttChart {
|
|
|
4288
4357
|
for (let i = 0; i < rangeCollection.length; i++) {
|
|
4289
4358
|
const height = this.getRangeHeight(currentRecord);
|
|
4290
4359
|
const leftDiv = createElement('div', {
|
|
4291
|
-
className: rangeChildContainer + ' ' + 'e-leftarc', styles:
|
|
4360
|
+
className: rangeChildContainer + ' ' + 'e-leftarc', styles: (this.parent.enableRtl ? 'right:' : 'left:') +
|
|
4361
|
+
`${(this.parent.enableRtl ? rangeCollection[i].left + rangeCollection[i].width - 5 : rangeCollection[i].left)}px;
|
|
4292
4362
|
top: ${Math.floor((this.parent.rowHeight - this.parent.chartRowsModule.taskBarHeight) / 2)}px;
|
|
4293
4363
|
height: ${height + 1}px; border-right: 0px`
|
|
4294
4364
|
});
|
|
4295
4365
|
const rightDiv = createElement('div', {
|
|
4296
4366
|
className: rangeChildContainer + ' ' + 'e-rightarc',
|
|
4297
|
-
styles:
|
|
4367
|
+
styles: (this.parent.enableRtl ? 'right:' : 'left:') + `${(this.parent.enableRtl ? rangeCollection[i].left :
|
|
4368
|
+
rangeCollection[i].left + rangeCollection[i].width - 5)}px;
|
|
4298
4369
|
top: ${Math.floor((this.parent.rowHeight - this.parent.chartRowsModule.taskBarHeight) / 2)}px; height: ${height + 1}px;
|
|
4299
4370
|
border-left: 0px`
|
|
4300
4371
|
});
|
|
@@ -4311,6 +4382,10 @@ class GanttChart {
|
|
|
4311
4382
|
renderTimelineContainer() {
|
|
4312
4383
|
this.chartTimelineContainer =
|
|
4313
4384
|
createElement('div', { className: timelineHeaderContainer });
|
|
4385
|
+
if (this.parent.enableRtl) {
|
|
4386
|
+
this.chartTimelineContainer.style.borderLeftWidth = '1px';
|
|
4387
|
+
this.chartTimelineContainer.style.borderRightWidth = '0px';
|
|
4388
|
+
}
|
|
4314
4389
|
this.chartTimelineContainer.setAttribute("role", "presentation");
|
|
4315
4390
|
this.chartElement.appendChild(this.chartTimelineContainer);
|
|
4316
4391
|
}
|
|
@@ -4483,7 +4558,7 @@ class GanttChart {
|
|
|
4483
4558
|
scrollLeft = this.scrollElement.scrollWidth <= scrollLeft ? this.scrollElement.scrollWidth : scrollLeft;
|
|
4484
4559
|
if ((this.scrollElement.offsetWidth + this.parent.ganttChartModule.scrollElement.scrollLeft) < scrollLeft
|
|
4485
4560
|
|| (this.scrollElement.scrollLeft > scrollLeft)) {
|
|
4486
|
-
this.scrollObject.setScrollLeft(scrollLeft - 50);
|
|
4561
|
+
this.scrollObject.setScrollLeft(scrollLeft - 50, this.parent.enableRtl ? -1 : 0);
|
|
4487
4562
|
}
|
|
4488
4563
|
// this.parent.ganttChartModule.scrollObject.updateLeftPosition();
|
|
4489
4564
|
}
|
|
@@ -4541,6 +4616,13 @@ class GanttChart {
|
|
|
4541
4616
|
}
|
|
4542
4617
|
this.parent.notify('chartMouseUp', e);
|
|
4543
4618
|
if (this.parent.showActiveElement) {
|
|
4619
|
+
this.parent.showIndicator = true;
|
|
4620
|
+
if (!isNullOrUndefined(this.parent.loadingIndicator) && this.parent.loadingIndicator.indicatorType === "Shimmer") {
|
|
4621
|
+
this.parent.hideMaskRow();
|
|
4622
|
+
}
|
|
4623
|
+
else {
|
|
4624
|
+
this.parent.hideSpinner();
|
|
4625
|
+
}
|
|
4544
4626
|
if (this.focusedElement && !e.target.classList.contains('e-split-bar')) {
|
|
4545
4627
|
this.focusedElement.tabIndex = this.focusedElement.tabIndex === 0 ? -1 : this.focusedElement.tabIndex;
|
|
4546
4628
|
removeClass([this.focusedElement], 'e-active-container');
|
|
@@ -4787,7 +4869,7 @@ class GanttChart {
|
|
|
4787
4869
|
this.parent.predecessorModule.createConnectorLinesCollection();
|
|
4788
4870
|
this.parent.connectorLineModule.renderConnectorLines(this.parent.updatedConnectorLineCollection);
|
|
4789
4871
|
if (this.parent.enableCriticalPath && this.parent.criticalPathModule) {
|
|
4790
|
-
|
|
4872
|
+
const criticalModule = this.parent.criticalPathModule;
|
|
4791
4873
|
criticalModule.criticalConnectorLine(criticalModule.criticalPathCollection, criticalModule.detailPredecessorCollection, true, criticalModule.predecessorCollectionTaskIds);
|
|
4792
4874
|
}
|
|
4793
4875
|
}
|
|
@@ -5447,7 +5529,7 @@ class Timeline {
|
|
|
5447
5529
|
this.totalTimelineWidth = 0;
|
|
5448
5530
|
this.customTimelineSettings = null;
|
|
5449
5531
|
this.parent.isTimelineRoundOff = this.isZoomToFit ? false : isNullOrUndefined(this.parent.projectStartDate) ? true : false;
|
|
5450
|
-
if (this.parent.enablePersistence) {
|
|
5532
|
+
if (this.parent.enablePersistence && this.parent.isLoad) {
|
|
5451
5533
|
this.parent.timelineSettings = this.parent.currentZoomingLevel;
|
|
5452
5534
|
}
|
|
5453
5535
|
}
|
|
@@ -5546,6 +5628,12 @@ class Timeline {
|
|
|
5546
5628
|
cancel: false
|
|
5547
5629
|
};
|
|
5548
5630
|
this.parent.trigger('actionBegin', args);
|
|
5631
|
+
if (!isNullOrUndefined(this.parent.loadingIndicator) && this.parent.loadingIndicator.indicatorType === "Shimmer") {
|
|
5632
|
+
this.parent.showMaskRow();
|
|
5633
|
+
}
|
|
5634
|
+
else {
|
|
5635
|
+
this.parent.showSpinner();
|
|
5636
|
+
}
|
|
5549
5637
|
if (!args.cancel) {
|
|
5550
5638
|
newTimeline = args.timeline;
|
|
5551
5639
|
this.changeTimelineSettings(newTimeline);
|
|
@@ -5586,6 +5674,12 @@ class Timeline {
|
|
|
5586
5674
|
timeline: this.parent.currentZoomingLevel
|
|
5587
5675
|
};
|
|
5588
5676
|
this.parent.trigger('actionComplete', args);
|
|
5677
|
+
if (!isNullOrUndefined(this.parent.loadingIndicator) && this.parent.loadingIndicator.indicatorType === "Shimmer") {
|
|
5678
|
+
this.parent.hideMaskRow();
|
|
5679
|
+
}
|
|
5680
|
+
else {
|
|
5681
|
+
this.parent.hideSpinner();
|
|
5682
|
+
}
|
|
5589
5683
|
}
|
|
5590
5684
|
}
|
|
5591
5685
|
/**
|
|
@@ -5651,6 +5745,12 @@ class Timeline {
|
|
|
5651
5745
|
this.parent.toolbarModule.enableItems([this.parent.controlId + '_zoomin', this.parent.controlId + '_zoomout'], true);
|
|
5652
5746
|
}
|
|
5653
5747
|
this.parent.trigger('actionBegin', args);
|
|
5748
|
+
if (!isNullOrUndefined(this.parent.loadingIndicator) && this.parent.loadingIndicator.indicatorType === "Shimmer") {
|
|
5749
|
+
this.parent.showMaskRow();
|
|
5750
|
+
}
|
|
5751
|
+
else {
|
|
5752
|
+
this.parent.showSpinner();
|
|
5753
|
+
}
|
|
5654
5754
|
this.changeTimelineSettings(newTimeline);
|
|
5655
5755
|
}
|
|
5656
5756
|
bottomTierCellWidthCalc(mode, zoomLevel, date) {
|
|
@@ -6757,7 +6857,9 @@ class Timeline {
|
|
|
6757
6857
|
const validStartLeft = this.parent.dataOperation.getTaskLeft(validStartDate, false);
|
|
6758
6858
|
const validEndLeft = this.parent.dataOperation.getTaskLeft(validEndDate, false);
|
|
6759
6859
|
let isChanged;
|
|
6760
|
-
if (!isNullOrUndefined(maxStartLeft) && ((minStartDate < this.timelineStartDate) ||
|
|
6860
|
+
if (!isNullOrUndefined(maxStartLeft) && ((minStartDate < this.timelineStartDate) ||
|
|
6861
|
+
(!isNullOrUndefined(this.parent.editModule.taskbarEditModule)) &&
|
|
6862
|
+
(!isNullOrUndefined(this.parent.editModule.taskbarEditModule.taskBarEditAction))) && (maxStartLeft < this.bottomTierCellWidth || maxStartLeft <= validStartLeft)) {
|
|
6761
6863
|
isChanged = 'prevTimeSpan';
|
|
6762
6864
|
minStartDate = minStartDate > this.timelineStartDate ? this.timelineStartDate : minStartDate;
|
|
6763
6865
|
}
|
|
@@ -6996,9 +7098,12 @@ class GanttTreeGrid {
|
|
|
6996
7098
|
this.parent.treeGrid.showColumnMenu = this.parent.showColumnMenu;
|
|
6997
7099
|
this.parent.treeGrid.enableCollapseAll = this.parent.collapseAllParentTasks;
|
|
6998
7100
|
this.parent.treeGrid.columnMenuItems = this.parent.columnMenuItems;
|
|
7101
|
+
this.parent.treeGrid.enableRtl = this.parent.enableRtl;
|
|
6999
7102
|
this.parent.treeGrid.childMapping = isNullOrUndefined(this.parent.taskFields.child) ? '' : this.parent.taskFields.child;
|
|
7000
7103
|
this.parent.treeGrid.treeColumnIndex = this.parent.treeColumnIndex;
|
|
7001
7104
|
this.parent.treeGrid.columns = this.treeGridColumns;
|
|
7105
|
+
this.parent.treeGrid.loadingIndicator = this.parent.loadingIndicator;
|
|
7106
|
+
this.parent.treeGrid.enableVirtualMaskRow = this.parent.enableVirtualMaskRow;
|
|
7002
7107
|
if (this.parent.dataSource instanceof Object && isCountRequired(this.parent)) {
|
|
7003
7108
|
// In order to bind the observable data at load time, hasChildMapping is necessary to be mapped.
|
|
7004
7109
|
this.parent.treeGrid.hasChildMapping = 'isParent';
|
|
@@ -7092,6 +7197,14 @@ class GanttTreeGrid {
|
|
|
7092
7197
|
dataBound(args) {
|
|
7093
7198
|
this.ensureScrollBar();
|
|
7094
7199
|
this.parent.treeDataBound(args);
|
|
7200
|
+
if (this.parent.isVirtualScroll) {
|
|
7201
|
+
if ((this.parent.enableVirtualMaskRow && this.parent.enableVirtualization) ||
|
|
7202
|
+
(this.parent.enableVirtualization && !this.parent.enableVirtualMaskRow && this.parent.loadingIndicator.indicatorType === "Shimmer") ||
|
|
7203
|
+
(this.parent.loadingIndicator.indicatorType === "Shimmer")) {
|
|
7204
|
+
this.parent.hideMaskRow();
|
|
7205
|
+
}
|
|
7206
|
+
this.parent.isVirtualScroll = false;
|
|
7207
|
+
}
|
|
7095
7208
|
this.prevCurrentView = extend([], [], this.parent.currentViewData, true);
|
|
7096
7209
|
}
|
|
7097
7210
|
dataStateChange(args) {
|
|
@@ -7126,6 +7239,12 @@ class GanttTreeGrid {
|
|
|
7126
7239
|
const collapsedArgs = this.createExpandCollapseArgs(args);
|
|
7127
7240
|
this.parent.ganttChartModule.collapsedGanttRow(collapsedArgs);
|
|
7128
7241
|
}
|
|
7242
|
+
if (!isNullOrUndefined(this.parent.loadingIndicator) && this.parent.loadingIndicator.indicatorType === "Shimmer") {
|
|
7243
|
+
this.parent.hideMaskRow();
|
|
7244
|
+
}
|
|
7245
|
+
else {
|
|
7246
|
+
this.parent.hideSpinner();
|
|
7247
|
+
}
|
|
7129
7248
|
}
|
|
7130
7249
|
expanded(args) {
|
|
7131
7250
|
if (!this.parent.ganttChartModule.isExpandCollapseFromChart && !this.parent.isExpandCollapseLevelMethod) {
|
|
@@ -7134,6 +7253,12 @@ class GanttTreeGrid {
|
|
|
7134
7253
|
this.parent.ganttChartModule.expandedGanttRow(expandedArgs);
|
|
7135
7254
|
}
|
|
7136
7255
|
}
|
|
7256
|
+
if (!isNullOrUndefined(this.parent.loadingIndicator) && this.parent.loadingIndicator.indicatorType === "Shimmer") {
|
|
7257
|
+
this.parent.hideMaskRow();
|
|
7258
|
+
}
|
|
7259
|
+
else {
|
|
7260
|
+
this.parent.hideSpinner();
|
|
7261
|
+
}
|
|
7137
7262
|
}
|
|
7138
7263
|
actionBegin(args) {
|
|
7139
7264
|
this.parent.notify('actionBegin', args);
|
|
@@ -7142,6 +7267,14 @@ class GanttTreeGrid {
|
|
|
7142
7267
|
setValue('doubleClickTarget', null, this.parent.treeGrid.editModule);
|
|
7143
7268
|
}
|
|
7144
7269
|
this.parent.trigger('actionBegin', args);
|
|
7270
|
+
if (args.requestType != "virtualscroll" && args.type != "edit" && args.requestType != "beginEdit") {
|
|
7271
|
+
if (!isNullOrUndefined(this.parent.loadingIndicator) && this.parent.loadingIndicator.indicatorType === "Shimmer") {
|
|
7272
|
+
this.parent.showMaskRow();
|
|
7273
|
+
}
|
|
7274
|
+
else {
|
|
7275
|
+
this.parent.showSpinner();
|
|
7276
|
+
}
|
|
7277
|
+
}
|
|
7145
7278
|
} // eslint-disable-next-line
|
|
7146
7279
|
created(args) {
|
|
7147
7280
|
this.updateKeyConfigSettings();
|
|
@@ -7210,6 +7343,12 @@ class GanttTreeGrid {
|
|
|
7210
7343
|
this.parent.addDeleteRecord = false;
|
|
7211
7344
|
}
|
|
7212
7345
|
this.parent.trigger('actionComplete', updatedArgs);
|
|
7346
|
+
if (!isNullOrUndefined(this.parent.loadingIndicator) && this.parent.loadingIndicator.indicatorType === "Shimmer") {
|
|
7347
|
+
this.parent.hideMaskRow();
|
|
7348
|
+
}
|
|
7349
|
+
else {
|
|
7350
|
+
this.parent.hideSpinner();
|
|
7351
|
+
}
|
|
7213
7352
|
}
|
|
7214
7353
|
updateKeyConfigSettings() {
|
|
7215
7354
|
delete this.parent.treeGrid.grid.keyboardModule.keyConfigs.delete;
|
|
@@ -7479,7 +7618,7 @@ class GanttTreeGrid {
|
|
|
7479
7618
|
*/
|
|
7480
7619
|
composeIDColumn(column) {
|
|
7481
7620
|
const isProjectView = this.parent.viewType === 'ProjectView';
|
|
7482
|
-
|
|
7621
|
+
const lengthDataSource = this.parent.dataSource['length'];
|
|
7483
7622
|
let taskIDName;
|
|
7484
7623
|
column.isPrimaryKey = isProjectView ? true : false;
|
|
7485
7624
|
column.headerText = column.headerText ? column.headerText : this.parent.localeObj.getConstant('id');
|
|
@@ -8092,6 +8231,21 @@ __decorate$16([
|
|
|
8092
8231
|
Property(null)
|
|
8093
8232
|
], ResourceFields.prototype, "group", void 0);
|
|
8094
8233
|
|
|
8234
|
+
var __decorate$17 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
8235
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
8236
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
8237
|
+
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;
|
|
8238
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
8239
|
+
};
|
|
8240
|
+
/**
|
|
8241
|
+
* Configures the Loading Indicator of the Gantt.
|
|
8242
|
+
*/
|
|
8243
|
+
class LoadingIndicator extends ChildProperty {
|
|
8244
|
+
}
|
|
8245
|
+
__decorate$17([
|
|
8246
|
+
Property('Spinner')
|
|
8247
|
+
], LoadingIndicator.prototype, "indicatorType", void 0);
|
|
8248
|
+
|
|
8095
8249
|
/**
|
|
8096
8250
|
* Export all generated models for complex settings
|
|
8097
8251
|
*/
|
|
@@ -8190,7 +8344,7 @@ class ChartRows extends DateProcessor {
|
|
|
8190
8344
|
getIndicatorNode(indicator) {
|
|
8191
8345
|
const templateString = '<label class="' + label + ' ' + taskIndicatorDiv + '"style="line-height:'
|
|
8192
8346
|
+ (this.parent.rowHeight) + 'px;' +
|
|
8193
|
-
'left:' + this.getIndicatorleft(indicator.date) + 'px;"><i class="' + indicator.iconClass + '"></i> </label>';
|
|
8347
|
+
(this.parent.enableRtl ? 'right:' : 'left:') + this.getIndicatorleft(indicator.date) + 'px;"><i class="' + indicator.iconClass + '"></i> </label>';
|
|
8194
8348
|
return this.createDivElement(templateString);
|
|
8195
8349
|
}
|
|
8196
8350
|
/**
|
|
@@ -8216,6 +8370,13 @@ class ChartRows extends DateProcessor {
|
|
|
8216
8370
|
getChildTaskbarNode(i, rootElement) {
|
|
8217
8371
|
let childTaskbarNode = null;
|
|
8218
8372
|
const data = this.templateData;
|
|
8373
|
+
let direction;
|
|
8374
|
+
if (this.parent.enableRtl) {
|
|
8375
|
+
direction = 'right:';
|
|
8376
|
+
}
|
|
8377
|
+
else {
|
|
8378
|
+
direction = 'left:';
|
|
8379
|
+
}
|
|
8219
8380
|
if (this.childTaskbarTemplateFunction) {
|
|
8220
8381
|
childTaskbarNode = this.childTaskbarTemplateFunction(extend({ index: i }, data), this.parent, 'TaskbarTemplate', this.getTemplateID('TaskbarTemplate'), false, undefined, rootElement[0], this.parent.treeGrid['root']);
|
|
8221
8382
|
}
|
|
@@ -8258,14 +8419,15 @@ class ChartRows extends DateProcessor {
|
|
|
8258
8419
|
}
|
|
8259
8420
|
if (isNaN(parseInt(labelString))) {
|
|
8260
8421
|
taskLabel$$1 = '<span class="' + taskLabel + '" style="line-height:' +
|
|
8261
|
-
(this.taskBarHeight - 1) + 'px; text-align: left;' +
|
|
8422
|
+
(this.taskBarHeight - 1) + 'px; text-align:' + (this.parent.enableRtl ? 'right;' : 'left;') +
|
|
8262
8423
|
'display:' + 'inline-block;' +
|
|
8263
8424
|
'width:' + (data.ganttProperties.width - 10) + 'px; height:' +
|
|
8264
8425
|
this.taskBarHeight + 'px;">' + labelString + '</span>';
|
|
8265
8426
|
}
|
|
8266
8427
|
else {
|
|
8267
8428
|
taskLabel$$1 = '<span class="' + taskLabel + '" style="line-height:' +
|
|
8268
|
-
(this.taskBarHeight - 1) + 'px;' + (this.parent.viewType === 'ResourceView' ? 'text-align:
|
|
8429
|
+
(this.taskBarHeight - 1) + 'px;' + (this.parent.viewType === 'ResourceView' ? ('text-align:' +
|
|
8430
|
+
(this.parent.enableRtl ? 'right;' : 'left;')) : '') +
|
|
8269
8431
|
+(this.parent.viewType === 'ResourceView' ? 'display:inline-flex;' : '') +
|
|
8270
8432
|
+(this.parent.viewType === 'ResourceView' ? (data.ganttProperties.width - 10) : '') + 'px; height:' +
|
|
8271
8433
|
this.taskBarHeight + 'px;">' + labelString + '</span>';
|
|
@@ -8277,17 +8439,17 @@ class ChartRows extends DateProcessor {
|
|
|
8277
8439
|
(data.ganttProperties.startDate && !data.ganttProperties.endDate && !data.ganttProperties.duration) ? ('<div class="' + childProgressBarInnerDiv + ' ' + traceChildTaskBar + ' ' +
|
|
8278
8440
|
unscheduledTaskbarLeft + ' ' + (data.ganttProperties.isAutoSchedule ?
|
|
8279
8441
|
'' : manualChildTaskBar) + '"' +
|
|
8280
|
-
'style="
|
|
8442
|
+
'style="' + direction + data.ganttProperties.left + 'px; height:' + this.taskBarHeight + 'px;"></div>') :
|
|
8281
8443
|
(data.ganttProperties.endDate && !data.ganttProperties.startDate && !data.ganttProperties.duration) ?
|
|
8282
8444
|
('<div class="' + childProgressBarInnerDiv + ' ' + traceChildTaskBar + ' ' +
|
|
8283
8445
|
unscheduledTaskbarRight + ' ' + (data.ganttProperties.isAutoSchedule ?
|
|
8284
8446
|
'' : manualChildTaskBar) + '"' +
|
|
8285
|
-
'style="
|
|
8447
|
+
'style="' + direction + data.ganttProperties.left + 'px; height:' + this.taskBarHeight + 'px;"></div>') :
|
|
8286
8448
|
(data.ganttProperties.duration && !data.ganttProperties.startDate && !data.ganttProperties.endDate) ?
|
|
8287
8449
|
('<div class="' + childProgressBarInnerDiv + ' ' + traceChildTaskBar + ' ' +
|
|
8288
8450
|
unscheduledTaskbar + ' ' + (data.ganttProperties.isAutoSchedule ?
|
|
8289
8451
|
'' : manualChildTaskBar) + '"' +
|
|
8290
|
-
'style="
|
|
8452
|
+
'style="' + direction + data.ganttProperties.left + 'px; width:' + data.ganttProperties.width + 'px;' +
|
|
8291
8453
|
' height:' + this.taskBarHeight + 'px;"></div>') : '';
|
|
8292
8454
|
if (data.ganttProperties.startDate && data.ganttProperties.endDate && data.ganttProperties.duration &&
|
|
8293
8455
|
(isNullOrUndefined(data.ganttProperties.segments) || (!isNullOrUndefined(data.ganttProperties.segments) &&
|
|
@@ -8315,6 +8477,13 @@ class ChartRows extends DateProcessor {
|
|
|
8315
8477
|
childTaskbarNode = this.createDivElement(template);
|
|
8316
8478
|
}
|
|
8317
8479
|
}
|
|
8480
|
+
if (this.parent.enableRtl && childTaskbarNode[0] && childTaskbarNode[0].querySelector('.e-task-label')) {
|
|
8481
|
+
childTaskbarNode[0].querySelector('.e-task-label').style.marginLeft = '15px';
|
|
8482
|
+
childTaskbarNode[0].querySelector('.e-task-label').style.marginRight = '8px';
|
|
8483
|
+
if (childTaskbarNode[0].querySelector('.e-gantt-child-progressbar')) {
|
|
8484
|
+
childTaskbarNode[0].querySelector('.e-gantt-child-progressbar').style.textAlign = 'left';
|
|
8485
|
+
}
|
|
8486
|
+
}
|
|
8318
8487
|
return childTaskbarNode;
|
|
8319
8488
|
}
|
|
8320
8489
|
splitTaskbar(data, labelString) {
|
|
@@ -8334,7 +8503,7 @@ class ChartRows extends DateProcessor {
|
|
|
8334
8503
|
//split taskbar
|
|
8335
8504
|
'<div class="' + childTaskBarInnerDiv + ' ' + segmentPosition + ' ' + traceChildTaskBar + ' ' +
|
|
8336
8505
|
' e-segmented-taskbar' +
|
|
8337
|
-
'"style="width:' + segment.width + 'px;position: absolute; left:' + segment.left + 'px;height:' +
|
|
8506
|
+
'"style="width:' + segment.width + 'px;position: absolute;' + (this.parent.enableRtl ? 'right:' : 'left:') + segment.left + 'px;height:' +
|
|
8338
8507
|
(this.taskBarHeight) + 'px; overflow:' + progressBarVisible + ';" data-segment-index = "' + i + '" aria-label = "' +
|
|
8339
8508
|
this.generateSpiltTaskAriaLabel(segment, data.ganttProperties) + '"> ' +
|
|
8340
8509
|
this.getSplitTaskbarLeftResizerNode() +
|
|
@@ -8342,7 +8511,7 @@ class ChartRows extends DateProcessor {
|
|
|
8342
8511
|
'<div class="' + childProgressBarInnerDiv + ' ' + traceChildProgressBar + ' ' +
|
|
8343
8512
|
'" style="border-style:' + (segment.progressWidth ? 'solid;' : 'none;') +
|
|
8344
8513
|
'display:' + (segment.progressWidth >= 0 ? 'block;' : 'none;') +
|
|
8345
|
-
'width:' + segment.progressWidth + 'px;height:100%;' +
|
|
8514
|
+
'width:' + segment.progressWidth + 'px;height:100%;' + 'text-align:' + (this.parent.enableRtl ? 'left;' : 'right;') +
|
|
8346
8515
|
'border-top-right-radius:' + this.getSplitTaskBorderRadius(segment) + 'px;' +
|
|
8347
8516
|
'border-bottom-right-radius:' + this.getSplitTaskBorderRadius(segment) + 'px;">' +
|
|
8348
8517
|
// progress label
|
|
@@ -8359,19 +8528,20 @@ class ChartRows extends DateProcessor {
|
|
|
8359
8528
|
getSplitTaskbarLeftResizerNode() {
|
|
8360
8529
|
const lResizerLeft = -(this.parent.isAdaptive ? 12 : 2);
|
|
8361
8530
|
const template = '<div class="' + taskBarLeftResizer + ' ' + icon + '"' +
|
|
8362
|
-
' style="left:' + lResizerLeft + 'px;height:' + (this.taskBarHeight) + 'px;"></div>';
|
|
8531
|
+
' style="' + (this.parent.enableRtl ? 'right:' : 'left:') + lResizerLeft + 'px;height:' + (this.taskBarHeight) + 'px;"></div>';
|
|
8363
8532
|
return template;
|
|
8364
8533
|
}
|
|
8365
8534
|
getSplitTaskbarRightResizerNode(segment) {
|
|
8366
8535
|
const rResizerLeft = this.parent.isAdaptive ? -2 : -10;
|
|
8367
8536
|
const template = '<div class="' + taskBarRightResizer + ' ' + icon + '"' +
|
|
8368
|
-
' style="left:' + (segment.width + rResizerLeft) + 'px;' +
|
|
8537
|
+
' style="' + (this.parent.enableRtl ? 'right:' : 'left:') + (segment.width + rResizerLeft) + 'px;' +
|
|
8369
8538
|
'height:' + (this.taskBarHeight) + 'px;"></div>';
|
|
8370
8539
|
return template;
|
|
8371
8540
|
}
|
|
8372
8541
|
getSplitProgressResizerNode(segment) {
|
|
8542
|
+
let width = this.parent.enableRtl ? (segment.progressWidth + 8) : (segment.progressWidth - 6);
|
|
8373
8543
|
const template = '<div class="' + childProgressResizer + '"' +
|
|
8374
|
-
' style="
|
|
8544
|
+
' style="' + (this.parent.enableRtl ? 'right:' : 'left:') + width + 'px;margin-top:' +
|
|
8375
8545
|
(this.taskBarHeight - 4) + 'px;"><div class="' + progressBarHandler + '"' +
|
|
8376
8546
|
'><div class="' + progressHandlerElement + '"></div>' +
|
|
8377
8547
|
'<div class="' + progressBarHandlerAfter + '"></div></div>';
|
|
@@ -8501,6 +8671,12 @@ class ChartRows extends DateProcessor {
|
|
|
8501
8671
|
}
|
|
8502
8672
|
}
|
|
8503
8673
|
this.parent.trigger('actionComplete', args);
|
|
8674
|
+
if (!isNullOrUndefined(this.parent.loadingIndicator) && this.parent.loadingIndicator.indicatorType === "Shimmer") {
|
|
8675
|
+
this.parent.hideMaskRow();
|
|
8676
|
+
}
|
|
8677
|
+
else {
|
|
8678
|
+
this.parent.hideSpinner();
|
|
8679
|
+
}
|
|
8504
8680
|
setValue('isEdit', false, this.parent.contextMenuModule);
|
|
8505
8681
|
setValue('isEdit', false, this.parent);
|
|
8506
8682
|
}
|
|
@@ -8705,7 +8881,7 @@ class ChartRows extends DateProcessor {
|
|
|
8705
8881
|
getTaskBaselineNode() {
|
|
8706
8882
|
const data = this.templateData;
|
|
8707
8883
|
const template = '<div class="' + baselineBar + ' ' + '" role="term" style="margin-top:' + this.baselineTop +
|
|
8708
|
-
'px;left:' + data.ganttProperties.baselineLeft + 'px;' +
|
|
8884
|
+
'px;' + (this.parent.enableRtl ? 'right:' : 'left:') + data.ganttProperties.baselineLeft + 'px;' +
|
|
8709
8885
|
'width:' + data.ganttProperties.baselineWidth + 'px;height:' +
|
|
8710
8886
|
this.baselineHeight + 'px;' + (this.baselineColor ? 'background-color: ' + this.baselineColor + ';' : '') + '"></div>';
|
|
8711
8887
|
return this.createDivElement(template);
|
|
@@ -8720,7 +8896,7 @@ class ChartRows extends DateProcessor {
|
|
|
8720
8896
|
const data = this.templateData;
|
|
8721
8897
|
let baselineMilestoneHeight = this.parent.renderBaseline ? 5 : 2;
|
|
8722
8898
|
const template = '<div class="' + baselineMilestoneContainer + ' ' + '" style="' +
|
|
8723
|
-
'left:' + (data.ganttProperties.baselineLeft - this.milesStoneRadius) + 'px;' +
|
|
8899
|
+
(this.parent.enableRtl ? 'right:' : 'left:') + (data.ganttProperties.baselineLeft - this.milesStoneRadius) + 'px;' +
|
|
8724
8900
|
'margin-top:' + (-Math.floor(this.parent.rowHeight - this.milestoneMarginTop) + baselineMilestoneHeight) +
|
|
8725
8901
|
'px">' + '<div class="' + baselineMilestoneDiv + '">' + '<div class="' + baselineMilestoneDiv +
|
|
8726
8902
|
' ' + baselineMilestoneTop + '" ' +
|
|
@@ -8770,6 +8946,10 @@ class ChartRows extends DateProcessor {
|
|
|
8770
8946
|
}
|
|
8771
8947
|
leftLabelNode[0].appendChild([].slice.call(leftLabelTemplateNode)[0]);
|
|
8772
8948
|
}
|
|
8949
|
+
if (this.parent.enableRtl) {
|
|
8950
|
+
leftLabelNode[0].style.paddingLeft = '25px';
|
|
8951
|
+
leftLabelNode[0].style.paddingRight = '0px';
|
|
8952
|
+
}
|
|
8773
8953
|
return leftLabelNode;
|
|
8774
8954
|
}
|
|
8775
8955
|
getLableText(labelString, labelDiv) {
|
|
@@ -8816,6 +8996,10 @@ class ChartRows extends DateProcessor {
|
|
|
8816
8996
|
}
|
|
8817
8997
|
rightLabelNode[0].appendChild([].slice.call(rightLabelTemplateNode)[0]);
|
|
8818
8998
|
}
|
|
8999
|
+
if (this.parent.enableRtl) {
|
|
9000
|
+
rightLabelNode[0].style.marginLeft = '0px';
|
|
9001
|
+
rightLabelNode[0].style.paddingRight = '25px';
|
|
9002
|
+
}
|
|
8819
9003
|
return rightLabelNode;
|
|
8820
9004
|
}
|
|
8821
9005
|
getManualTaskbar() {
|
|
@@ -8835,17 +9019,18 @@ class ChartRows extends DateProcessor {
|
|
|
8835
9019
|
taskbarHeight * 2 + 'px;border-left-width:' + taskbarHeight / 5 +
|
|
8836
9020
|
'px; border-bottom:' + taskbarHeight / 5 + 'px solid transparent;"></div>');
|
|
8837
9021
|
const template = '<div class="' + manualParentMainContainer + '"' +
|
|
8838
|
-
'style=left:' + (data.ganttProperties.left - data.ganttProperties.autoLeft) + 'px;' +
|
|
9022
|
+
'style=' + (this.parent.enableRtl ? 'right:' : 'left:') + (data.ganttProperties.left - data.ganttProperties.autoLeft) + 'px;' +
|
|
8839
9023
|
'width:' + data.ganttProperties.width + 'px;' +
|
|
8840
9024
|
'height:' + taskbarHeight + 'px;>' + innerDiv + ((data.ganttProperties.startDate && data.ganttProperties.endDate &&
|
|
8841
9025
|
data.ganttProperties.duration) || data.ganttProperties.duration ? '<div class="e-gantt-manualparenttaskbar-left" style=' +
|
|
8842
|
-
'"height:' + taskbarHeight + 'px;border-left-width:' + taskbarHeight / 5 +
|
|
9026
|
+
(this.parent.enableRtl ? 'margin-right:0px;' : '') + '"height:' + taskbarHeight + 'px;border-left-width:' + taskbarHeight / 5 +
|
|
8843
9027
|
'px; border-bottom:' + taskbarHeight / 5 + 'px solid transparent;"></div>' +
|
|
8844
|
-
'<div class="e-gantt-manualparenttaskbar-right" style=' +
|
|
8845
|
-
'left:' + (data.ganttProperties.width - taskbarHeight / 5) + 'px;height:' +
|
|
9028
|
+
'<div class="e-gantt-manualparenttaskbar-right" style=' + (this.parent.enableRtl ? 'margin-right:-8px;' : '') +
|
|
9029
|
+
(this.parent.enableRtl ? 'right:' : 'left:') + (data.ganttProperties.width - taskbarHeight / 5) + 'px;height:' +
|
|
8846
9030
|
(taskbarHeight) + 'px;border-right-width:' + taskbarHeight / 5 + 'px;border-bottom:' +
|
|
8847
9031
|
taskbarHeight / 5 + 'px solid transparent;>' + '</div></div>' : '');
|
|
8848
|
-
const milestoneTemplate = '<div class="' + manualParentMilestone + '" style="position:absolute;
|
|
9032
|
+
const milestoneTemplate = '<div class="' + manualParentMilestone + '" style="position:absolute;' +
|
|
9033
|
+
(this.parent.enableRtl ? 'right:' : 'left:') +
|
|
8849
9034
|
(data.ganttProperties.left - data.ganttProperties.autoLeft - (this.milestoneHeight / 2)) +
|
|
8850
9035
|
'px;width:' + (this.milesStoneRadius * 2) +
|
|
8851
9036
|
'px;">' + '<div class="' + manualParentMilestoneTop + '" style="border-right-width:' +
|
|
@@ -8906,7 +9091,7 @@ class ChartRows extends DateProcessor {
|
|
|
8906
9091
|
}
|
|
8907
9092
|
if (isNaN(parseInt(labelString))) {
|
|
8908
9093
|
labelDiv = '<span class="' + taskLabel + '" style="line-height:' +
|
|
8909
|
-
(this.taskBarHeight - 1) + 'px; text-align: left;' +
|
|
9094
|
+
(this.taskBarHeight - 1) + 'px; text-align:' + (this.parent.enableRtl ? 'right;' : 'left;') +
|
|
8910
9095
|
'display:' + 'inline-block;' +
|
|
8911
9096
|
'width:' + (data.ganttProperties.width - 10) + 'px; height:' +
|
|
8912
9097
|
this.taskBarHeight + 'px;">' + labelString + '</span>';
|
|
@@ -8944,6 +9129,13 @@ class ChartRows extends DateProcessor {
|
|
|
8944
9129
|
parentTaskbarNode = data.ganttProperties.isMilestone ?
|
|
8945
9130
|
this.createDivElement(data.ganttProperties.isAutoSchedule ? milestoneTemplate : '') : template;
|
|
8946
9131
|
}
|
|
9132
|
+
if (this.parent.enableRtl && parentTaskbarNode[0] && parentTaskbarNode[0].querySelector('.e-task-label')) {
|
|
9133
|
+
parentTaskbarNode[0].querySelector('.e-task-label').style.marginLeft = '15px';
|
|
9134
|
+
parentTaskbarNode[0].querySelector('.e-task-label').style.marginRight = '8px';
|
|
9135
|
+
if (parentTaskbarNode[0].querySelector('.e-gantt-parent-progressbar')) {
|
|
9136
|
+
parentTaskbarNode[0].querySelector('.e-gantt-parent-progressbar').style.textAlign = 'left';
|
|
9137
|
+
}
|
|
9138
|
+
}
|
|
8947
9139
|
return parentTaskbarNode;
|
|
8948
9140
|
}
|
|
8949
9141
|
/**
|
|
@@ -9039,35 +9231,36 @@ class ChartRows extends DateProcessor {
|
|
|
9039
9231
|
((data.ganttProperties.cssClass) ? data.ganttProperties.cssClass : '') + '" ' +
|
|
9040
9232
|
' tabindex="-1" role="term" style="' + ((data.ganttProperties.isMilestone && !manualParent) ?
|
|
9041
9233
|
('width:' + this.milestoneHeight + 'px;height:' +
|
|
9042
|
-
this.milestoneHeight + 'px;margin-top:' + this.milestoneMarginTop + 'px;left:' + (data.ganttProperties.left -
|
|
9234
|
+
this.milestoneHeight + 'px;margin-top:' + this.milestoneMarginTop + 'px;' + (this.parent.enableRtl ? 'right:' : 'left:') + (data.ganttProperties.left -
|
|
9043
9235
|
(this.milestoneHeight / 2)) + 'px;') : ('width:' + data.ganttProperties.width +
|
|
9044
|
-
'px;margin-top:' + this.taskBarMarginTop + 'px;left:' + (!data.hasChildRecords || data.ganttProperties.isAutoSchedule ?
|
|
9236
|
+
'px;margin-top:' + this.taskBarMarginTop + 'px;' + (this.parent.enableRtl ? 'right:' : 'left:') + (!data.hasChildRecords || data.ganttProperties.isAutoSchedule ?
|
|
9045
9237
|
data.ganttProperties.left : data.ganttProperties.autoLeft) + 'px;height:' +
|
|
9046
9238
|
this.taskBarHeight + 'px;cursor:' + (data.ganttProperties.isAutoSchedule ? 'move;' : 'auto;'))) + '"></div>';
|
|
9047
9239
|
return this.createDivElement(template);
|
|
9048
9240
|
}
|
|
9049
9241
|
rightLabelContainer() {
|
|
9050
9242
|
const template = '<div class="' + ((this.rightTaskLabelTemplateFunction) ? rightLabelTempContainer :
|
|
9051
|
-
rightLabelContainer) + '" ' + ' tabindex="-1" role="term" style="left:' + this.getRightLabelLeft(this.templateData) + 'px; height:'
|
|
9243
|
+
rightLabelContainer) + '" ' + ' tabindex="-1" role="term" style="' + (this.parent.enableRtl ? 'right:' : 'left:') + this.getRightLabelLeft(this.templateData) + 'px; height:'
|
|
9052
9244
|
+ (this.parent.rowHeight - 2) + 'px;"></div>';
|
|
9053
9245
|
return this.createDivElement(template);
|
|
9054
9246
|
}
|
|
9055
9247
|
childTaskbarLeftResizer() {
|
|
9056
9248
|
const lResizerLeft = -(this.parent.isAdaptive ? 12 : 2);
|
|
9057
9249
|
const template = '<div class="' + taskBarLeftResizer + ' ' + icon + '"' +
|
|
9058
|
-
'style="left:' + lResizerLeft + 'px;height:' + (this.taskBarHeight) + 'px;"></div>';
|
|
9250
|
+
'style="' + (this.parent.enableRtl ? 'right:' : 'left:') + lResizerLeft + 'px;height:' + (this.taskBarHeight) + 'px;"></div>';
|
|
9059
9251
|
return this.createDivElement(template);
|
|
9060
9252
|
}
|
|
9061
9253
|
childTaskbarRightResizer() {
|
|
9062
9254
|
const rResizerLeft = this.parent.isAdaptive ? -2 : -10;
|
|
9063
9255
|
const template = '<div class="' + taskBarRightResizer + ' ' + icon + '"' +
|
|
9064
|
-
'style="left:' + (this.templateData.ganttProperties.width + rResizerLeft) + 'px;' +
|
|
9256
|
+
'style="' + (this.parent.enableRtl ? 'right:' : 'left:') + (this.templateData.ganttProperties.width + rResizerLeft) + 'px;' +
|
|
9065
9257
|
'height:' + (this.taskBarHeight) + 'px;"></div>';
|
|
9066
9258
|
return this.createDivElement(template);
|
|
9067
9259
|
}
|
|
9068
9260
|
childTaskbarProgressResizer() {
|
|
9261
|
+
let width = this.parent.enableRtl ? (this.templateData.ganttProperties.progressWidth + 8) : (this.templateData.ganttProperties.progressWidth - 6);
|
|
9069
9262
|
const template = '<div class="' + childProgressResizer + '"' +
|
|
9070
|
-
'style="
|
|
9263
|
+
'style="' + (this.parent.enableRtl ? 'right:' : 'left:') + width + 'px;margin-top:' +
|
|
9071
9264
|
(this.taskBarHeight - 4) + 'px;"><div class="' + progressBarHandler + '"' +
|
|
9072
9265
|
'><div class="' + progressHandlerElement + '"></div>' +
|
|
9073
9266
|
'<div class="' + progressBarHandlerAfter + '"></div></div>';
|
|
@@ -9089,7 +9282,7 @@ class ChartRows extends DateProcessor {
|
|
|
9089
9282
|
((data.ganttProperties.isMilestone) ? ('margin-top:' + pointerTop + 'px;left:' + mileStoneLeft +
|
|
9090
9283
|
'px;') : (marginTop + ';left:' + pointerLeft + 'px;')) + '">' +
|
|
9091
9284
|
'<div class="' + connectorPointLeft + ' ' + this.parent.getUnscheduledTaskClass(data.ganttProperties) +
|
|
9092
|
-
'" style="width: ' + this.connectorPointWidth + 'px;' +
|
|
9285
|
+
'" style="width: ' + this.connectorPointWidth + 'px;' + (this.parent.enableRtl ? 'margin-right:2px;' : '') +
|
|
9093
9286
|
'height: ' + this.connectorPointWidth + 'px;">' + this.touchLeftConnectorpoint + '</div></div>';
|
|
9094
9287
|
return this.createDivElement(template);
|
|
9095
9288
|
}
|
|
@@ -9322,6 +9515,7 @@ class ChartRows extends DateProcessor {
|
|
|
9322
9515
|
}
|
|
9323
9516
|
this.parent.ganttChartModule.renderRangeContainer(this.parent.currentViewData);
|
|
9324
9517
|
}
|
|
9518
|
+
this.parent.ganttChartModule.updateLastRowBottomWidth();
|
|
9325
9519
|
}
|
|
9326
9520
|
/**
|
|
9327
9521
|
* To render taskbars.
|
|
@@ -9362,8 +9556,14 @@ class ChartRows extends DateProcessor {
|
|
|
9362
9556
|
else {
|
|
9363
9557
|
for (let i = 0; i < this.parent.currentViewData.length; i++) {
|
|
9364
9558
|
const tempTemplateData = this.parent.currentViewData[i];
|
|
9365
|
-
if (this.parent.viewType === 'ResourceView'
|
|
9366
|
-
|
|
9559
|
+
if (this.parent.viewType === 'ResourceView') {
|
|
9560
|
+
if (this.parent.editModule && this.parent.editModule.isResourceTaskDeleted) {
|
|
9561
|
+
this.parent.initialChartRowElements = this.parent.ganttChartModule.getChartRows();
|
|
9562
|
+
this.parent.editModule.isResourceTaskDeleted = false;
|
|
9563
|
+
}
|
|
9564
|
+
if (!tempTemplateData.expanded && this.parent.enableMultiTaskbar) {
|
|
9565
|
+
collapsedResourceRecord.push(tempTemplateData);
|
|
9566
|
+
}
|
|
9367
9567
|
}
|
|
9368
9568
|
const tRow = this.getGanttChartRow(i, tempTemplateData);
|
|
9369
9569
|
this.ganttChartTableBody.appendChild(tRow);
|
|
@@ -9407,7 +9607,7 @@ class ChartRows extends DateProcessor {
|
|
|
9407
9607
|
taskbarContainerNode[0].setAttribute('aria-label', this.generateAriaLabel(this.templateData));
|
|
9408
9608
|
taskbarContainerNode[0].setAttribute('rowUniqueId', this.templateData.ganttProperties.rowUniqueID);
|
|
9409
9609
|
const connectorLineLeftNode = this.getLeftPointNode();
|
|
9410
|
-
if ((this.templateData.ganttProperties.isAutoSchedule && this.parent.viewType
|
|
9610
|
+
if ((this.templateData.ganttProperties.isAutoSchedule && this.parent.viewType === 'ProjectView') || !this.templateData.hasChildRecords) {
|
|
9411
9611
|
taskbarContainerNode[0].appendChild([].slice.call(connectorLineLeftNode)[0]);
|
|
9412
9612
|
}
|
|
9413
9613
|
if (this.templateData.hasChildRecords) {
|
|
@@ -9424,9 +9624,9 @@ class ChartRows extends DateProcessor {
|
|
|
9424
9624
|
}
|
|
9425
9625
|
if (this.parent.renderBaseline && this.templateData.ganttProperties.baselineStartDate &&
|
|
9426
9626
|
this.templateData.ganttProperties.baselineEndDate) {
|
|
9427
|
-
taskBaselineTemplateNode = ((!isNullOrUndefined(this.templateData.ganttProperties.baselineStartDate) && !isNullOrUndefined(this.templateData.ganttProperties.startDate) && (this.templateData.ganttProperties.baselineStartDate.getTime() === this.templateData.ganttProperties.startDate.getTime()))
|
|
9627
|
+
taskBaselineTemplateNode = ((this.templateData.ganttProperties.baselineStartDate.getTime() === this.templateData.ganttProperties.baselineEndDate.getTime()) || ((!isNullOrUndefined(this.templateData.ganttProperties.baselineStartDate) && !isNullOrUndefined(this.templateData.ganttProperties.startDate) && (this.templateData.ganttProperties.baselineStartDate.getTime() === this.templateData.ganttProperties.startDate.getTime()))
|
|
9428
9628
|
&& (!isNullOrUndefined(this.templateData.ganttProperties.baselineEndDate) && !isNullOrUndefined(this.templateData.ganttProperties.endDate) && (this.templateData.ganttProperties.baselineEndDate.toLocaleDateString() === this.templateData.ganttProperties.endDate.toLocaleDateString())) &&
|
|
9429
|
-
this.templateData.ganttProperties.isMilestone)
|
|
9629
|
+
this.templateData.ganttProperties.isMilestone))
|
|
9430
9630
|
? this.getMilestoneBaselineNode() : this.getTaskBaselineNode();
|
|
9431
9631
|
}
|
|
9432
9632
|
}
|
|
@@ -9437,9 +9637,9 @@ class ChartRows extends DateProcessor {
|
|
|
9437
9637
|
}
|
|
9438
9638
|
if (this.parent.renderBaseline && this.templateData.ganttProperties.baselineStartDate &&
|
|
9439
9639
|
this.templateData.ganttProperties.baselineEndDate) {
|
|
9440
|
-
taskBaselineTemplateNode = ((!isNullOrUndefined(this.templateData.ganttProperties.baselineStartDate) && !isNullOrUndefined(this.templateData.ganttProperties.startDate) && (this.templateData.ganttProperties.baselineStartDate.getTime() === this.templateData.ganttProperties.startDate.getTime()))
|
|
9640
|
+
taskBaselineTemplateNode = ((this.templateData.ganttProperties.baselineStartDate.getTime() === this.templateData.ganttProperties.baselineEndDate.getTime()) || ((!isNullOrUndefined(this.templateData.ganttProperties.baselineStartDate) && !isNullOrUndefined(this.templateData.ganttProperties.startDate) && (this.templateData.ganttProperties.baselineStartDate.getTime() === this.templateData.ganttProperties.startDate.getTime()))
|
|
9441
9641
|
&& (!isNullOrUndefined(this.templateData.ganttProperties.baselineEndDate) && !isNullOrUndefined(this.templateData.ganttProperties.endDate) && (this.templateData.ganttProperties.baselineEndDate.toLocaleDateString() === this.templateData.ganttProperties.endDate.toLocaleDateString())) &&
|
|
9442
|
-
this.templateData.ganttProperties.isMilestone)
|
|
9642
|
+
this.templateData.ganttProperties.isMilestone))
|
|
9443
9643
|
? this.getMilestoneBaselineNode() : this.getTaskBaselineNode();
|
|
9444
9644
|
}
|
|
9445
9645
|
}
|
|
@@ -9485,13 +9685,13 @@ class ChartRows extends DateProcessor {
|
|
|
9485
9685
|
}
|
|
9486
9686
|
if (this.parent.renderBaseline && this.templateData.ganttProperties.baselineStartDate &&
|
|
9487
9687
|
this.templateData.ganttProperties.baselineEndDate) {
|
|
9488
|
-
taskBaselineTemplateNode = ((!isNullOrUndefined(this.templateData.ganttProperties.baselineStartDate) && !isNullOrUndefined(this.templateData.ganttProperties.startDate) && (this.templateData.ganttProperties.baselineStartDate.getTime() === this.templateData.ganttProperties.startDate.getTime()))
|
|
9688
|
+
taskBaselineTemplateNode = ((this.templateData.ganttProperties.baselineStartDate.getTime() === this.templateData.ganttProperties.baselineEndDate.getTime()) || ((!isNullOrUndefined(this.templateData.ganttProperties.baselineStartDate) && !isNullOrUndefined(this.templateData.ganttProperties.startDate) && (this.templateData.ganttProperties.baselineStartDate.getTime() === this.templateData.ganttProperties.startDate.getTime()))
|
|
9489
9689
|
&& (!isNullOrUndefined(this.templateData.ganttProperties.baselineEndDate) && !isNullOrUndefined(this.templateData.ganttProperties.endDate) && (this.templateData.ganttProperties.baselineEndDate.toLocaleDateString() === this.templateData.ganttProperties.endDate.toLocaleDateString())) &&
|
|
9490
|
-
this.templateData.ganttProperties.isMilestone)
|
|
9690
|
+
this.templateData.ganttProperties.isMilestone))
|
|
9491
9691
|
? this.getMilestoneBaselineNode() : this.getTaskBaselineNode();
|
|
9492
9692
|
}
|
|
9493
9693
|
}
|
|
9494
|
-
if ((this.templateData.ganttProperties.isAutoSchedule && this.parent.viewType
|
|
9694
|
+
if ((this.templateData.ganttProperties.isAutoSchedule && this.parent.viewType === 'ProjectView') || !this.templateData.hasChildRecords) {
|
|
9495
9695
|
const connectorLineRightNode = this.getRightPointNode();
|
|
9496
9696
|
taskbarContainerNode[0].appendChild([].slice.call(connectorLineRightNode)[0]);
|
|
9497
9697
|
}
|
|
@@ -9586,6 +9786,10 @@ class ChartRows extends DateProcessor {
|
|
|
9586
9786
|
const taskbarElement = !isNullOrUndefined(data.ganttProperties.segments) && data.ganttProperties.segments.length > 0 ? trElement :
|
|
9587
9787
|
trElement.querySelector('.' + taskBarMainContainer);
|
|
9588
9788
|
let rowElement;
|
|
9789
|
+
let segmentRowElement;
|
|
9790
|
+
if (data.ganttProperties.segments && data.ganttProperties.segments.length > 0) {
|
|
9791
|
+
segmentRowElement = trElement.parentElement.parentElement.parentElement;
|
|
9792
|
+
}
|
|
9589
9793
|
let triggerTaskbarElement;
|
|
9590
9794
|
const args = {
|
|
9591
9795
|
data: data,
|
|
@@ -9598,7 +9802,8 @@ class ChartRows extends DateProcessor {
|
|
|
9598
9802
|
args.milestoneColor = taskbarElement.querySelector(classCollections[0]) ?
|
|
9599
9803
|
getComputedStyle(taskbarElement.querySelector(classCollections[0])).borderBottomColor : null;
|
|
9600
9804
|
args.baselineColor = trElement.querySelector(classCollections[1]) ?
|
|
9601
|
-
getComputedStyle(trElement.querySelector(classCollections[1])).borderBottomColor :
|
|
9805
|
+
getComputedStyle(trElement.querySelector(classCollections[1])).borderBottomColor :
|
|
9806
|
+
(trElement.querySelector('.' + baselineBar) ? getComputedStyle(trElement.querySelector('.' + baselineBar)).backgroundColor : null);
|
|
9602
9807
|
}
|
|
9603
9808
|
else {
|
|
9604
9809
|
const childTask = taskbarElement.querySelector(classCollections[0]);
|
|
@@ -9615,17 +9820,33 @@ class ChartRows extends DateProcessor {
|
|
|
9615
9820
|
getComputedStyle(taskbarElement.querySelector(classCollections[1])).backgroundColor;
|
|
9616
9821
|
// args.progressBarBorderColor = taskbarElement.querySelector(progressBarClass) ?
|
|
9617
9822
|
// getComputedStyle(taskbarElement.querySelector(progressBarClass)).borderColor : null;
|
|
9618
|
-
|
|
9619
|
-
|
|
9823
|
+
if (segmentRowElement) {
|
|
9824
|
+
args.baselineColor = segmentRowElement.querySelector('.' + baselineBar) ?
|
|
9825
|
+
getComputedStyle(segmentRowElement.querySelector('.' + baselineBar)).backgroundColor : null;
|
|
9826
|
+
}
|
|
9827
|
+
else {
|
|
9828
|
+
args.baselineColor = trElement.querySelector('.' + baselineBar) ?
|
|
9829
|
+
getComputedStyle(trElement.querySelector('.' + baselineBar)).backgroundColor : null;
|
|
9830
|
+
}
|
|
9620
9831
|
args.taskLabelColor = taskbarElement.querySelector('.' + taskLabel) ?
|
|
9621
9832
|
getComputedStyle(taskbarElement.querySelector('.' + taskLabel)).color : null;
|
|
9622
9833
|
}
|
|
9623
|
-
|
|
9624
|
-
|
|
9625
|
-
|
|
9626
|
-
|
|
9627
|
-
|
|
9628
|
-
|
|
9834
|
+
if (segmentRowElement) {
|
|
9835
|
+
args.rightLabelColor = segmentRowElement.querySelector('.' + rightLabelContainer) &&
|
|
9836
|
+
(segmentRowElement.querySelector('.' + rightLabelContainer)).querySelector('.' + label) ?
|
|
9837
|
+
getComputedStyle((segmentRowElement.querySelector('.' + rightLabelContainer)).querySelector('.' + label)).color : null;
|
|
9838
|
+
args.leftLabelColor = segmentRowElement.querySelector('.' + leftLabelContainer) &&
|
|
9839
|
+
(segmentRowElement.querySelector('.' + leftLabelContainer)).querySelector('.' + label) ?
|
|
9840
|
+
getComputedStyle((segmentRowElement.querySelector('.' + leftLabelContainer)).querySelector('.' + label)).color : null;
|
|
9841
|
+
}
|
|
9842
|
+
else {
|
|
9843
|
+
args.rightLabelColor = trElement.querySelector('.' + rightLabelContainer) &&
|
|
9844
|
+
(trElement.querySelector('.' + rightLabelContainer)).querySelector('.' + label) ?
|
|
9845
|
+
getComputedStyle((trElement.querySelector('.' + rightLabelContainer)).querySelector('.' + label)).color : null;
|
|
9846
|
+
args.leftLabelColor = trElement.querySelector('.' + leftLabelContainer) &&
|
|
9847
|
+
(trElement.querySelector('.' + leftLabelContainer)).querySelector('.' + label) ?
|
|
9848
|
+
getComputedStyle((trElement.querySelector('.' + leftLabelContainer)).querySelector('.' + label)).color : null;
|
|
9849
|
+
}
|
|
9629
9850
|
this.parent.trigger('queryTaskbarInfo', args, (taskbarArgs) => {
|
|
9630
9851
|
this.updateQueryTaskbarInfoArgs(taskbarArgs, rowElement, triggerTaskbarElement);
|
|
9631
9852
|
});
|
|
@@ -9643,6 +9864,10 @@ class ChartRows extends DateProcessor {
|
|
|
9643
9864
|
const trElement = args.rowElement;
|
|
9644
9865
|
const taskbarElement = args.taskbarElement;
|
|
9645
9866
|
const classCollections = this.getClassName(args);
|
|
9867
|
+
let segmentRowElement;
|
|
9868
|
+
if (args.data.ganttProperties.segments && args.data.ganttProperties.segments.length > 0) {
|
|
9869
|
+
segmentRowElement = trElement.parentElement.parentElement.parentElement;
|
|
9870
|
+
}
|
|
9646
9871
|
if (args.taskbarType === 'Milestone') {
|
|
9647
9872
|
if (taskbarElement.querySelector(classCollections[0]) &&
|
|
9648
9873
|
getComputedStyle(taskbarElement.querySelector(classCollections[0])).borderBottomColor !== args.milestoneColor) {
|
|
@@ -9654,6 +9879,10 @@ class ChartRows extends DateProcessor {
|
|
|
9654
9879
|
trElement.querySelector(classCollections[1]).style.borderBottomColor = args.baselineColor;
|
|
9655
9880
|
trElement.querySelector('.' + baselineMilestoneBottom).style.borderTopColor = args.baselineColor;
|
|
9656
9881
|
}
|
|
9882
|
+
if (trElement.querySelector('.' + baselineBar) &&
|
|
9883
|
+
getComputedStyle(trElement.querySelector('.' + baselineBar)).borderTopColor !== args.baselineColor) {
|
|
9884
|
+
trElement.querySelector('.' + baselineBar).style.backgroundColor = args.baselineColor;
|
|
9885
|
+
}
|
|
9657
9886
|
}
|
|
9658
9887
|
else {
|
|
9659
9888
|
if (taskbarElement.querySelector(classCollections[0]) &&
|
|
@@ -9688,20 +9917,42 @@ class ChartRows extends DateProcessor {
|
|
|
9688
9917
|
getComputedStyle(taskbarElement.querySelector('.' + taskLabel)).color !== args.taskLabelColor) {
|
|
9689
9918
|
taskbarElement.querySelector('.' + taskLabel).style.color = args.taskLabelColor;
|
|
9690
9919
|
}
|
|
9691
|
-
if (
|
|
9692
|
-
|
|
9693
|
-
|
|
9920
|
+
if (segmentRowElement) {
|
|
9921
|
+
if (segmentRowElement.querySelector('.' + baselineBar) &&
|
|
9922
|
+
getComputedStyle(segmentRowElement.querySelector('.' + baselineBar)).backgroundColor !== args.baselineColor) {
|
|
9923
|
+
segmentRowElement.querySelector('.' + baselineBar).style.backgroundColor = args.baselineColor;
|
|
9924
|
+
}
|
|
9925
|
+
}
|
|
9926
|
+
else {
|
|
9927
|
+
if (trElement.querySelector('.' + baselineBar) &&
|
|
9928
|
+
getComputedStyle(trElement.querySelector('.' + baselineBar)).backgroundColor !== args.baselineColor) {
|
|
9929
|
+
trElement.querySelector('.' + baselineBar).style.backgroundColor = args.baselineColor;
|
|
9930
|
+
}
|
|
9694
9931
|
}
|
|
9695
9932
|
}
|
|
9696
|
-
if (
|
|
9697
|
-
(
|
|
9698
|
-
|
|
9699
|
-
|
|
9933
|
+
if (segmentRowElement) {
|
|
9934
|
+
if (segmentRowElement.querySelector('.' + leftLabelContainer) &&
|
|
9935
|
+
(segmentRowElement.querySelector('.' + leftLabelContainer)).querySelector('.' + label) &&
|
|
9936
|
+
getComputedStyle((segmentRowElement.querySelector('.' + leftLabelContainer)).querySelector('.' + label)).color !== args.leftLabelColor) {
|
|
9937
|
+
(segmentRowElement.querySelector('.' + leftLabelContainer)).querySelector('.' + label).style.color = args.leftLabelColor;
|
|
9938
|
+
}
|
|
9939
|
+
if (segmentRowElement.querySelector('.' + rightLabelContainer) &&
|
|
9940
|
+
(segmentRowElement.querySelector('.' + rightLabelContainer)).querySelector('.' + label) &&
|
|
9941
|
+
getComputedStyle((segmentRowElement.querySelector('.' + rightLabelContainer)).querySelector('.' + label)).color !== args.rightLabelColor) {
|
|
9942
|
+
(segmentRowElement.querySelector('.' + rightLabelContainer)).querySelector('.' + label).style.color = args.rightLabelColor;
|
|
9943
|
+
}
|
|
9700
9944
|
}
|
|
9701
|
-
|
|
9702
|
-
(trElement.querySelector('.' +
|
|
9703
|
-
|
|
9704
|
-
|
|
9945
|
+
else {
|
|
9946
|
+
if (trElement.querySelector('.' + leftLabelContainer) &&
|
|
9947
|
+
(trElement.querySelector('.' + leftLabelContainer)).querySelector('.' + label) &&
|
|
9948
|
+
getComputedStyle((trElement.querySelector('.' + leftLabelContainer)).querySelector('.' + label)).color !== args.leftLabelColor) {
|
|
9949
|
+
(trElement.querySelector('.' + leftLabelContainer)).querySelector('.' + label).style.color = args.leftLabelColor;
|
|
9950
|
+
}
|
|
9951
|
+
if (trElement.querySelector('.' + rightLabelContainer) &&
|
|
9952
|
+
(trElement.querySelector('.' + rightLabelContainer)).querySelector('.' + label) &&
|
|
9953
|
+
getComputedStyle((trElement.querySelector('.' + rightLabelContainer)).querySelector('.' + label)).color !== args.rightLabelColor) {
|
|
9954
|
+
(trElement.querySelector('.' + rightLabelContainer)).querySelector('.' + label).style.color = args.rightLabelColor;
|
|
9955
|
+
}
|
|
9705
9956
|
}
|
|
9706
9957
|
}
|
|
9707
9958
|
getClassName(args) {
|
|
@@ -10310,9 +10561,9 @@ class Dependency {
|
|
|
10310
10561
|
const flatData = this.parent.flatData;
|
|
10311
10562
|
const totLength = this.parent.flatData.length;
|
|
10312
10563
|
for (let count = 0; count < totLength; count++) {
|
|
10313
|
-
if (flatData[count].ganttProperties.
|
|
10564
|
+
if (flatData[count].ganttProperties.predecessorsName) {
|
|
10314
10565
|
this.validatePredecessorDates(flatData[count]);
|
|
10315
|
-
if (flatData[count].hasChildRecords && this.parent.editModule) {
|
|
10566
|
+
if (flatData[count].hasChildRecords && this.parent.editModule && !this.parent.allowUnscheduledTasks) {
|
|
10316
10567
|
this.parent.editModule['updateChildItems'](flatData[count]);
|
|
10317
10568
|
}
|
|
10318
10569
|
}
|
|
@@ -10324,6 +10575,9 @@ class Dependency {
|
|
|
10324
10575
|
for (let i = parentPredecessorLength - 1; i >= 0; i--) {
|
|
10325
10576
|
let item = this.parentPredecessors[i];
|
|
10326
10577
|
this.validatePredecessorDates(item);
|
|
10578
|
+
if (item.ganttProperties.startDate) {
|
|
10579
|
+
this.parent.editModule['updateChildItems'](item);
|
|
10580
|
+
}
|
|
10327
10581
|
}
|
|
10328
10582
|
}
|
|
10329
10583
|
}
|
|
@@ -10777,19 +11031,8 @@ class ConnectorLine {
|
|
|
10777
11031
|
*/
|
|
10778
11032
|
createConnectorLineObject(parentGanttData, childGanttData, predecessor) {
|
|
10779
11033
|
const connectorObj = {};
|
|
10780
|
-
|
|
10781
|
-
|
|
10782
|
-
if (this.parent.pdfExportModule['helper']['exportProps'].exportType &&
|
|
10783
|
-
this.parent.pdfExportModule['helper']['exportProps'].exportType === 'CurrentViewData') {
|
|
10784
|
-
updatedRecords = this.expandedRecords;
|
|
10785
|
-
}
|
|
10786
|
-
else {
|
|
10787
|
-
updatedRecords = this.parent.flatData;
|
|
10788
|
-
}
|
|
10789
|
-
}
|
|
10790
|
-
else {
|
|
10791
|
-
updatedRecords = this.expandedRecords;
|
|
10792
|
-
}
|
|
11034
|
+
const updatedRecords = this.parent.pdfExportModule && this.parent.pdfExportModule.isPdfExport ?
|
|
11035
|
+
this.parent.flatData : this.expandedRecords;
|
|
10793
11036
|
const parentIndex = updatedRecords.indexOf(parentGanttData);
|
|
10794
11037
|
const childIndex = updatedRecords.indexOf(childGanttData);
|
|
10795
11038
|
const parentGanttRecord = parentGanttData.ganttProperties;
|
|
@@ -10855,6 +11098,9 @@ class ConnectorLine {
|
|
|
10855
11098
|
}
|
|
10856
11099
|
}
|
|
10857
11100
|
this.parent.ganttChartModule.chartBodyContent.appendChild(this.dependencyViewContainer);
|
|
11101
|
+
for (let i = 0; i < this.dependencyViewContainer.children.length; i++) {
|
|
11102
|
+
this.dependencyViewContainer.children[i].children[0].setAttribute('tabindex', '-1');
|
|
11103
|
+
}
|
|
10858
11104
|
}
|
|
10859
11105
|
/**
|
|
10860
11106
|
* To get parent position.
|
|
@@ -11173,85 +11419,96 @@ class ConnectorLine {
|
|
|
11173
11419
|
connectorContainer = '<div id="ConnectorLine' + data.connectorLineId + '" style="background-color:black">';
|
|
11174
11420
|
let div = '<div class="' + connectorLineContainer +
|
|
11175
11421
|
'" tabindex="-1" style="';
|
|
11422
|
+
let direction = this.parent.enableRtl ? 'right:' : 'left:';
|
|
11176
11423
|
const eLine = '<div class="' + connectorLine + '" style="' +
|
|
11177
11424
|
(!isNullOrUndefined(this.lineColor) ? 'outline-color:' + this.lineColor + ';' : '');
|
|
11178
|
-
|
|
11179
|
-
|
|
11180
|
-
|
|
11181
|
-
|
|
11182
|
-
|
|
11183
|
-
|
|
11425
|
+
let rightArrow;
|
|
11426
|
+
let leftArrow;
|
|
11427
|
+
if (this.parent.enableRtl) {
|
|
11428
|
+
leftArrow = '<div class="' + connectorLineRightArrow + '" style="' +
|
|
11429
|
+
(!isNullOrUndefined(this.lineColor) ? 'outline-color:' + this.lineColor + ';' : '');
|
|
11430
|
+
rightArrow = '<div class="' + connectorLineLeftArrow + '" style="' +
|
|
11431
|
+
(!isNullOrUndefined(this.lineColor) ? 'outline-color:' + this.lineColor + ';' : '');
|
|
11432
|
+
}
|
|
11433
|
+
else {
|
|
11434
|
+
rightArrow = '<div class="' + connectorLineRightArrow + '" style="' +
|
|
11435
|
+
(!isNullOrUndefined(this.lineColor) ? 'outline-color:' + this.lineColor + ';' : '');
|
|
11436
|
+
leftArrow = '<div class="' + connectorLineLeftArrow + '" style="' +
|
|
11437
|
+
(!isNullOrUndefined(this.lineColor) ? 'outline-color:' + this.lineColor + ';' : '');
|
|
11438
|
+
}
|
|
11439
|
+
const duplicateStingOne = leftArrow + (isMilestone ? (this.parent.enableRtl ? 'right:0px;' : 'left:0px;') : '') +
|
|
11440
|
+
this.getBorderStyles((this.parent.enableRtl ? 'left' : 'right'), 10) +
|
|
11184
11441
|
'top:' + (-5 - this.lineStroke + (this.lineStroke - 1)) + 'px;border-bottom-width:' + (5 + this.lineStroke) + 'px;' +
|
|
11185
11442
|
'border-top-width:' + (5 + this.lineStroke) + 'px;width:0;height:0;position:relative;"></div>';
|
|
11186
|
-
const duplicateStingTwo = this.getBorderStyles('left', 10) +
|
|
11443
|
+
const duplicateStingTwo = this.getBorderStyles((this.parent.enableRtl ? 'right' : 'left'), 10) +
|
|
11187
11444
|
'top:' + (-6) + 'px;border-bottom-width:' + (5 + this.lineStroke) + 'px;' +
|
|
11188
11445
|
'border-top-width:' + (5 + this.lineStroke) + 'px;width:0;height:0;position:relative;"></div>';
|
|
11189
11446
|
const duplicateStingThree = this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>' + eLine +
|
|
11190
11447
|
'top:' + (-(13 + ((this.lineStroke - 1) * 2))) + 'px;width:0px;' + this.getBorderStyles('left', this.lineStroke) +
|
|
11191
11448
|
this.getBorderStyles('top', (heightValue + borderTopWidth - (this.lineStroke - 1))) + 'position:relative;"></div>';
|
|
11192
|
-
const duplicateStingFour = leftArrow + 'left:' +
|
|
11449
|
+
const duplicateStingFour = leftArrow + (this.parent.enableRtl ? 'right:' : 'left:') +
|
|
11193
11450
|
(((data.childLeft + data.childWidth) - (data.parentLeft)) + 10) + 'px;' +
|
|
11194
|
-
this.getBorderStyles('right', 10);
|
|
11451
|
+
this.getBorderStyles((this.parent.enableRtl ? 'left' : 'right'), 10);
|
|
11195
11452
|
const duplicateStingFive = 'top:' + (-(6 + (5 + this.lineStroke) + (this.lineStroke / 2))) + 'px;' +
|
|
11196
11453
|
this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
|
|
11197
11454
|
if (this.getParentPosition(data) === 'FSType1') {
|
|
11198
|
-
div = div +
|
|
11455
|
+
div = div + direction + (data.parentLeft + data.parentWidth) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
|
|
11199
11456
|
((data.parentIndex * data.rowHeight) + addTop + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
|
|
11200
11457
|
'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="FSType1">';
|
|
11201
11458
|
div = div + eLine;
|
|
11202
|
-
div = div +
|
|
11459
|
+
div = div + direction + (isMilestoneParent ? -1 : 0) + 'px;width:' + (isMilestoneParent ?
|
|
11203
11460
|
((((data.childLeft - (data.parentLeft + data.parentWidth + 10)) + this.lineStroke) - 10) + 1) :
|
|
11204
11461
|
(((data.childLeft - (data.parentLeft + data.parentWidth + 10)) + this.lineStroke) - 10)) + 'px;' +
|
|
11205
11462
|
this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
|
|
11206
11463
|
div = div + eLine;
|
|
11207
|
-
div = div +
|
|
11464
|
+
div = div + direction + ((data.childLeft - (data.parentLeft + data.parentWidth + 10)) - 10) + 'px;' +
|
|
11208
11465
|
'width:0px;' + this.getBorderStyles('right', this.lineStroke) +
|
|
11209
11466
|
this.getBorderStyles('top', (heightValue + borderTopWidth - this.lineStroke)) + 'position:relative;"></div>';
|
|
11210
11467
|
div = div + eLine;
|
|
11211
|
-
div = div +
|
|
11468
|
+
div = div + direction + ((data.childLeft - (data.parentLeft + data.parentWidth + 10)) - 10) + 'px;width:10px;' +
|
|
11212
11469
|
this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
|
|
11213
11470
|
div = div + rightArrow;
|
|
11214
|
-
div = div +
|
|
11215
|
-
this.getBorderStyles('left', 10) + 'top:' + (-6 - this.lineStroke) + 'px;border-bottom-width:' + (5 + this.lineStroke) +
|
|
11471
|
+
div = div + direction + (data.childLeft - (data.parentLeft + data.parentWidth + 10)) + 'px;' +
|
|
11472
|
+
this.getBorderStyles((this.parent.enableRtl ? 'right' : 'left'), 10) + 'top:' + (-6 - this.lineStroke) + 'px;border-bottom-width:' + (5 + this.lineStroke) +
|
|
11216
11473
|
'px;border-top-width:' + (5 + this.lineStroke) + 'px;width:0;height:0;position:relative;"></div></div>';
|
|
11217
11474
|
}
|
|
11218
11475
|
if (this.getParentPosition(data) === 'FSType2') {
|
|
11219
|
-
div = div +
|
|
11476
|
+
div = div + direction + data.parentLeft + 'px;top:' + (isVirtual ? connectorLine$$1.top : ((data.parentIndex * data.rowHeight) + addTop +
|
|
11220
11477
|
this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
|
|
11221
11478
|
'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="FSType2">';
|
|
11222
11479
|
div = div + eLine;
|
|
11223
|
-
div = div +
|
|
11480
|
+
div = div + direction + (isMilestoneParent ? data.parentWidth - 1 : data.parentWidth) + 'px;width:' +
|
|
11224
11481
|
(isMilestoneParent ? 11 : 10) + 'px;' +
|
|
11225
11482
|
this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
|
|
11226
11483
|
div = div + eLine;
|
|
11227
|
-
div = div +
|
|
11484
|
+
div = div + direction + (data.parentWidth + 10 - this.lineStroke) + 'px;' +
|
|
11228
11485
|
this.getBorderStyles('left', this.lineStroke) + 'width:0px;' +
|
|
11229
11486
|
this.getBorderStyles('top', (heightValue + borderTopWidth - this.getconnectorLineGap(data) - this.lineStroke)) + 'position:relative;"></div>';
|
|
11230
11487
|
div = div + eLine;
|
|
11231
|
-
div = div +
|
|
11488
|
+
div = div + direction + (data.parentWidth - (((data.parentLeft + data.parentWidth) - data.childLeft) + 20)) + 'px;' +
|
|
11232
11489
|
'width:' + (((data.parentLeft + data.parentWidth) - data.childLeft) + 30) + 'px;' +
|
|
11233
11490
|
this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
|
|
11234
11491
|
div = div + eLine;
|
|
11235
|
-
div = div +
|
|
11492
|
+
div = div + direction + (data.parentWidth - (((data.parentLeft +
|
|
11236
11493
|
data.parentWidth) - data.childLeft) + 20)) + 'px;width:0px;' +
|
|
11237
11494
|
this.getBorderStyles('top', (this.getconnectorLineGap(data) - this.lineStroke)) +
|
|
11238
11495
|
this.getBorderStyles('left', this.lineStroke) + 'position:relative;"></div>';
|
|
11239
11496
|
div = div + eLine;
|
|
11240
|
-
div = div +
|
|
11497
|
+
div = div + direction + (data.parentWidth - (((data.parentLeft +
|
|
11241
11498
|
data.parentWidth) - data.childLeft) + 20)) + 'px;width:10px;' +
|
|
11242
11499
|
this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
|
|
11243
11500
|
div = div + rightArrow;
|
|
11244
|
-
div = div +
|
|
11245
|
-
this.getBorderStyles('left', 10) + 'border-bottom-width:' + (5 + this.lineStroke) + 'px;' +
|
|
11501
|
+
div = div + direction + (data.parentWidth - (((data.parentLeft + data.parentWidth) - data.childLeft) + 10)) + 'px;' +
|
|
11502
|
+
this.getBorderStyles((this.parent.enableRtl ? 'right' : 'left'), 10) + 'border-bottom-width:' + (5 + this.lineStroke) + 'px;' +
|
|
11246
11503
|
'border-top-width:' + (5 + this.lineStroke) + 'px;top:' + (-6 - this.lineStroke) +
|
|
11247
11504
|
'px;width:0;height:0;position:relative;"></div></div>';
|
|
11248
11505
|
}
|
|
11249
11506
|
if (this.getParentPosition(data) === 'FSType3') {
|
|
11250
|
-
div = div +
|
|
11507
|
+
div = div + direction + (data.childLeft - 20) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
|
|
11251
11508
|
((data.childIndex * data.rowHeight) + addTop + this.getTaskbarMidpoint(isMilestoneParent) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
|
|
11252
11509
|
'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="FSType3">';
|
|
11253
11510
|
div = div + rightArrow;
|
|
11254
|
-
div = div + '
|
|
11511
|
+
div = div + direction + '10px;' + this.getBorderStyles((this.parent.enableRtl ? 'right' : 'left'), 10) +
|
|
11255
11512
|
'border-bottom-width:' + (5 + this.lineStroke) + 'px;border-top-width:' + (5 + this.lineStroke) + 'px;' +
|
|
11256
11513
|
'top:' + (-6) + 'px;width:0;height:0;position:relative;"></div>';
|
|
11257
11514
|
div = div + eLine;
|
|
@@ -11265,49 +11522,49 @@ class ConnectorLine {
|
|
|
11265
11522
|
this.getBorderStyles('top', this.lineStroke) + 'position:relative;top:' +
|
|
11266
11523
|
(-(13 + ((this.lineStroke - 1) * 2))) + 'px;"></div>';
|
|
11267
11524
|
div = div + eLine;
|
|
11268
|
-
div = div +
|
|
11525
|
+
div = div + direction + (((data.parentLeft + data.parentWidth) - data.childLeft) + (30 - this.lineStroke)) +
|
|
11269
11526
|
'px;width:0px;' + 'height:' + (this.getconnectorLineGap(data) - this.lineStroke) + 'px;' +
|
|
11270
11527
|
this.getBorderStyles('left', this.lineStroke) + 'position:relative;' +
|
|
11271
11528
|
'top:' + (-(13 + ((this.lineStroke - 1) * 2))) + 'px;"></div>';
|
|
11272
11529
|
div = div + eLine;
|
|
11273
|
-
div = div + (isMilestoneParent ?
|
|
11274
|
-
data.parentWidth) - data.childLeft) + (18 - this.lineStroke)) + 'px;width:' + (12 + this.lineStroke) + 'px;' :
|
|
11530
|
+
div = div + (isMilestoneParent ? direction + (((data.parentLeft +
|
|
11531
|
+
data.parentWidth) - data.childLeft) + (18 - this.lineStroke)) + 'px;width:' + (12 + this.lineStroke) + 'px;' : direction +
|
|
11275
11532
|
(((data.parentLeft + data.parentWidth) - data.childLeft) + 20) + 'px;width:10px;') +
|
|
11276
11533
|
this.getBorderStyles('top', this.lineStroke) + 'position:relative;top:' +
|
|
11277
11534
|
(-(13 + ((this.lineStroke - 1) * 2))) + 'px;"></div></div>';
|
|
11278
11535
|
}
|
|
11279
11536
|
if (this.getParentPosition(data) === 'FSType4') {
|
|
11280
|
-
div = div +
|
|
11537
|
+
div = div + direction + (data.parentLeft + data.parentWidth) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
|
|
11281
11538
|
((data.childIndex * data.rowHeight) + addTop + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
|
|
11282
11539
|
'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="FSType4">';
|
|
11283
11540
|
div = div + rightArrow;
|
|
11284
|
-
div = div +
|
|
11285
|
-
this.getBorderStyles('left', 10) + 'top:' + (-6) + 'px;' +
|
|
11541
|
+
div = div + direction + (data.childLeft - (data.parentLeft + data.parentWidth + 10)) + 'px;' +
|
|
11542
|
+
this.getBorderStyles((this.parent.enableRtl ? 'right' : 'left'), 10) + 'top:' + (-6) + 'px;' +
|
|
11286
11543
|
'border-bottom-width:' + (5 + this.lineStroke) + 'px;border-top-width:' +
|
|
11287
11544
|
(5 + this.lineStroke) + 'px;width:0;height:0;position:relative;"></div>';
|
|
11288
11545
|
div = div + eLine;
|
|
11289
|
-
div = div +
|
|
11546
|
+
div = div + direction + (data.childLeft - (data.parentLeft + data.parentWidth) - 20) +
|
|
11290
11547
|
'px;top:' + (-(6 + (5 + this.lineStroke) + Math.round(this.lineStroke / 2))) + 'px;width:10px;' +
|
|
11291
11548
|
this.getBorderStyles('top', this.lineStroke) +
|
|
11292
11549
|
'position:relative;"></div>';
|
|
11293
11550
|
div = div + eLine;
|
|
11294
|
-
div = div + 'top:' + (-(13 + ((this.lineStroke - 1) * 2))) + 'px;
|
|
11551
|
+
div = div + 'top:' + (-(13 + ((this.lineStroke - 1) * 2))) + 'px;' + direction +
|
|
11295
11552
|
(data.childLeft - (data.parentLeft + data.parentWidth) - 20) + 'px;width:0px;' +
|
|
11296
11553
|
this.getBorderStyles('left', this.lineStroke) +
|
|
11297
11554
|
this.getBorderStyles('top', (heightValue + borderTopWidth - this.lineStroke + 1)) + 'position:relative;"></div>';
|
|
11298
11555
|
div = div + eLine;
|
|
11299
|
-
div = div + (isMilestoneParent ? '
|
|
11556
|
+
div = div + (isMilestoneParent ? direction + '-1px;' : '') + 'top:' +
|
|
11300
11557
|
(-(13 + ((this.lineStroke - 1) * 2))) + 'px;width:' +
|
|
11301
11558
|
(isMilestoneParent ? ((data.childLeft - (data.parentLeft + data.parentWidth + 20) + 1) + this.lineStroke) :
|
|
11302
11559
|
((data.childLeft - (data.parentLeft + data.parentWidth + 20)) + this.lineStroke)) + 'px;' +
|
|
11303
11560
|
this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div></div>';
|
|
11304
11561
|
}
|
|
11305
11562
|
if (this.getParentPosition(data) === 'SSType4') {
|
|
11306
|
-
div = div +
|
|
11563
|
+
div = div + direction + (data.parentLeft - 10) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
|
|
11307
11564
|
((data.childIndex * data.rowHeight) + addTop + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
|
|
11308
11565
|
'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="SSType4">';
|
|
11309
11566
|
div = div + rightArrow;
|
|
11310
|
-
div = div +
|
|
11567
|
+
div = div + direction + (data.childLeft - data.parentLeft) + 'px;' + duplicateStingTwo;
|
|
11311
11568
|
div = div + eLine;
|
|
11312
11569
|
div = div + 'top:' + (-(6 + (5 + this.lineStroke) + (this.lineStroke / 2))) + 'px;width:' +
|
|
11313
11570
|
(data.childLeft - data.parentLeft) + 'px;' + duplicateStingThree;
|
|
@@ -11316,11 +11573,11 @@ class ConnectorLine {
|
|
|
11316
11573
|
this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div></div>';
|
|
11317
11574
|
}
|
|
11318
11575
|
if (this.getParentPosition(data) === 'SSType3') {
|
|
11319
|
-
div = div +
|
|
11576
|
+
div = div + direction + (data.childLeft - 20) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
|
|
11320
11577
|
((data.childIndex * data.rowHeight) + addTop + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
|
|
11321
11578
|
'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="SSType3">';
|
|
11322
11579
|
div = div + rightArrow;
|
|
11323
|
-
div = div + '
|
|
11580
|
+
div = div + direction + '10px;' + duplicateStingTwo;
|
|
11324
11581
|
div = div + eLine;
|
|
11325
11582
|
div = div + 'top:' + (-(6 + (5 + this.lineStroke) + (this.lineStroke / 2))) + 'px;width:10px;' + duplicateStingThree;
|
|
11326
11583
|
div = div + eLine;
|
|
@@ -11329,7 +11586,7 @@ class ConnectorLine {
|
|
|
11329
11586
|
this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div></div>';
|
|
11330
11587
|
}
|
|
11331
11588
|
if (this.getParentPosition(data) === 'SSType2') {
|
|
11332
|
-
div = div +
|
|
11589
|
+
div = div + direction + setInnerElementLeftSSType2 + 'px;top:' + (isVirtual ? connectorLine$$1.top :
|
|
11333
11590
|
((data.parentIndex * data.rowHeight) + addTop + this.getTaskbarMidpoint(isMilestoneParent) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
|
|
11334
11591
|
'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="SSType2">';
|
|
11335
11592
|
div = div + eLine;
|
|
@@ -11342,14 +11599,14 @@ class ConnectorLine {
|
|
|
11342
11599
|
div = div + 'width:' + setInnerElementWidthSSType2 + 'px;' +
|
|
11343
11600
|
this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
|
|
11344
11601
|
div = div + rightArrow;
|
|
11345
|
-
div = div +
|
|
11346
|
-
this.getBorderStyles('left', 10) + 'top:' + (-6 - this.lineStroke) + 'px;' +
|
|
11602
|
+
div = div + direction + setInnerElementWidthSSType2 + 'px;' +
|
|
11603
|
+
this.getBorderStyles((this.parent.enableRtl ? 'right' : 'left'), 10) + 'top:' + (-6 - this.lineStroke) + 'px;' +
|
|
11347
11604
|
'border-bottom-width:' + (5 + this.lineStroke) + 'px;border-top-width:' +
|
|
11348
11605
|
(5 + this.lineStroke) + 'px;width:0;' +
|
|
11349
11606
|
'height:0;position:relative;"></div></div>';
|
|
11350
11607
|
}
|
|
11351
11608
|
if (this.getParentPosition(data) === 'SSType1') {
|
|
11352
|
-
div = div +
|
|
11609
|
+
div = div + direction + (data.childLeft - 20) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
|
|
11353
11610
|
((data.parentIndex * data.rowHeight) + addTop +
|
|
11354
11611
|
this.getTaskbarMidpoint(isMilestoneParent) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
|
|
11355
11612
|
'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="SSType1">';
|
|
@@ -11362,114 +11619,114 @@ class ConnectorLine {
|
|
|
11362
11619
|
div = div + eLine;
|
|
11363
11620
|
div = div + 'width:10px;' + this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
|
|
11364
11621
|
div = div + rightArrow;
|
|
11365
|
-
div = div + '
|
|
11622
|
+
div = div + direction + '10px;' + this.getBorderStyles((this.parent.enableRtl ? 'right' : 'left'), 10) +
|
|
11366
11623
|
'top:' + (-6 - this.lineStroke) + 'px;border-bottom-width:' + (5 + this.lineStroke) + 'px;' +
|
|
11367
11624
|
'border-top-width:' + (5 + this.lineStroke) + 'px;width:0;height:0;position:relative;"></div></div>';
|
|
11368
11625
|
}
|
|
11369
11626
|
if (this.getParentPosition(data) === 'FFType1') {
|
|
11370
|
-
div = div +
|
|
11627
|
+
div = div + direction + (data.childLeft + data.childWidth) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
|
|
11371
11628
|
((data.parentIndex * data.rowHeight) + addTop + this.getTaskbarMidpoint(isMilestoneParent) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
|
|
11372
11629
|
'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="FFType1">';
|
|
11373
11630
|
div = div + eLine;
|
|
11374
|
-
div = div +
|
|
11631
|
+
div = div + direction + (isMilestoneParent ? (((data.parentLeft + data.parentWidth) -
|
|
11375
11632
|
(data.childLeft + data.childWidth)) - 1) : ((data.parentLeft + data.parentWidth) -
|
|
11376
11633
|
(data.childLeft + data.childWidth))) + 'px;' +
|
|
11377
11634
|
'width:' + (isMilestoneParent ? (21 + this.lineStroke) : (20 + this.lineStroke)) + 'px;' +
|
|
11378
11635
|
this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
|
|
11379
11636
|
div = div + eLine;
|
|
11380
|
-
div = div +
|
|
11637
|
+
div = div + direction + (((data.parentLeft + data.parentWidth) -
|
|
11381
11638
|
(data.childLeft + data.childWidth)) + 20) + 'px;width:0px;' + this.getBorderStyles('left', this.lineStroke) +
|
|
11382
11639
|
this.getBorderStyles('top', (heightValue + borderTopWidth - this.lineStroke)) + 'position:relative;"></div>';
|
|
11383
11640
|
div = div + eLine;
|
|
11384
|
-
div = div +
|
|
11641
|
+
div = div + direction + (isMilestone ? 4 : 10) + 'px;width:' + (isMilestone ?
|
|
11385
11642
|
(((data.parentLeft + data.parentWidth) - (data.childLeft + data.childWidth)) + (16 + this.lineStroke)) :
|
|
11386
11643
|
(((data.parentLeft + data.parentWidth) - (data.childLeft + data.childWidth)) + (10 + this.lineStroke))) + 'px;' +
|
|
11387
11644
|
this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
|
|
11388
11645
|
div = div + leftArrow;
|
|
11389
|
-
div = div + (isMilestone ? '
|
|
11646
|
+
div = div + (isMilestone ? direction + '0px;' : '') + this.getBorderStyles((!this.parent.enableRtl ? 'right' : 'left'), 10) +
|
|
11390
11647
|
'top:' + (-6 - this.lineStroke) + 'px;border-bottom-width:' + (5 + this.lineStroke) + 'px;' +
|
|
11391
11648
|
'border-top-width:' + (5 + this.lineStroke) + 'px;width:0;height:0;position:relative;"></div></div>';
|
|
11392
11649
|
}
|
|
11393
11650
|
if (this.getParentPosition(data) === 'FFType2') {
|
|
11394
|
-
div = div +
|
|
11651
|
+
div = div + direction + (data.parentLeft + data.parentWidth) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
|
|
11395
11652
|
((data.parentIndex * data.rowHeight) + addTop + this.getTaskbarMidpoint(isMilestoneParent) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
|
|
11396
11653
|
'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="FFType2">';
|
|
11397
11654
|
div = div + eLine;
|
|
11398
|
-
div = div + (isMilestoneParent ? '
|
|
11655
|
+
div = div + (isMilestoneParent ? direction + '-1px;' : '') + 'width:' +
|
|
11399
11656
|
(isMilestoneParent ? (((data.childLeft + data.childWidth) - (data.parentLeft + data.parentWidth)) +
|
|
11400
11657
|
(21 + this.lineStroke)) : (((data.childLeft + data.childWidth) -
|
|
11401
11658
|
(data.parentLeft + data.parentWidth)) + (20 + this.lineStroke))) + 'px;' +
|
|
11402
11659
|
this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
|
|
11403
11660
|
div = div + eLine;
|
|
11404
|
-
div = div +
|
|
11661
|
+
div = div + direction + (((data.childLeft + data.childWidth) - (data.parentLeft + data.parentWidth)) + 20) +
|
|
11405
11662
|
'px;width:0px;' + this.getBorderStyles('left', this.lineStroke) +
|
|
11406
11663
|
this.getBorderStyles('top', (heightValue + borderTopWidth - this.lineStroke)) +
|
|
11407
11664
|
'position:relative;"></div>';
|
|
11408
11665
|
div = div + eLine;
|
|
11409
|
-
div = div +
|
|
11666
|
+
div = div + direction + (isMilestone ? (((data.childLeft + data.childWidth) - (data.parentLeft + data.parentWidth)) + 4) :
|
|
11410
11667
|
(((data.childLeft + data.childWidth) - (data.parentLeft + data.parentWidth)) + 10)) + 'px;' +
|
|
11411
11668
|
'width:' + (isMilestone ? (16 + this.lineStroke) : (10 + this.lineStroke)) + 'px;' +
|
|
11412
11669
|
this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
|
|
11413
11670
|
div = div + leftArrow;
|
|
11414
|
-
div = div +
|
|
11415
|
-
this.getBorderStyles('right', 10) + 'top:' + (-6 - this.lineStroke) + 'px;' +
|
|
11671
|
+
div = div + direction + ((data.childLeft + data.childWidth) - (data.parentLeft + data.parentWidth)) + 'px;' +
|
|
11672
|
+
this.getBorderStyles((!this.parent.enableRtl ? 'right' : 'left'), 10) + 'top:' + (-6 - this.lineStroke) + 'px;' +
|
|
11416
11673
|
'border-bottom-width:' + (5 + this.lineStroke) + 'px;border-top-width:' + (5 + this.lineStroke) +
|
|
11417
11674
|
'px;width:0;height:0;position:relative;"></div></div>';
|
|
11418
11675
|
}
|
|
11419
11676
|
if (this.getParentPosition(data) === 'FFType3') {
|
|
11420
|
-
div = div +
|
|
11677
|
+
div = div + direction + (data.childLeft + data.childWidth) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
|
|
11421
11678
|
((data.childIndex * data.rowHeight) + addTop + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
|
|
11422
11679
|
'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="FFType3">';
|
|
11423
11680
|
div = div + duplicateStingOne;
|
|
11424
11681
|
div = div + eLine;
|
|
11425
|
-
div = div + (isMilestone ? ('
|
|
11682
|
+
div = div + (isMilestone ? (direction + '4px;width:' +
|
|
11426
11683
|
(((data.parentLeft + data.parentWidth) - (data.childLeft + data.childWidth)) + 16)) :
|
|
11427
|
-
('
|
|
11684
|
+
(direction + '10px;width:' + (((data.parentLeft + data.parentWidth) -
|
|
11428
11685
|
(data.childLeft + data.childWidth)) + 10))) + 'px;top:' + (-(6 + (5 + this.lineStroke) +
|
|
11429
11686
|
(this.lineStroke / 2))) + 'px;' + this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
|
|
11430
11687
|
div = div + eLine;
|
|
11431
|
-
div = div +
|
|
11688
|
+
div = div + direction + (((data.parentLeft + data.parentWidth) - (data.childLeft + data.childWidth)) + 20) +
|
|
11432
11689
|
'px;top:' + (-(13 + ((this.lineStroke - 1) * 2))) + 'px;' +
|
|
11433
11690
|
'width:0px;' + this.getBorderStyles('left', this.lineStroke) +
|
|
11434
11691
|
this.getBorderStyles('top', (heightValue + borderTopWidth - this.lineStroke + 1)) + 'position:relative;"></div>';
|
|
11435
11692
|
div = div + eLine;
|
|
11436
|
-
div = div + (isMilestoneParent ? (
|
|
11437
|
-
(data.childLeft + data.childWidth)) - 1) + 'px;width:21') : (
|
|
11693
|
+
div = div + (isMilestoneParent ? (direction + (((data.parentLeft + data.parentWidth) -
|
|
11694
|
+
(data.childLeft + data.childWidth)) - 1) + 'px;width:21') : (direction + ((data.parentLeft + data.parentWidth) -
|
|
11438
11695
|
(data.childLeft + data.childWidth)) + 'px;width:20')) +
|
|
11439
11696
|
'px;top:' + (-(13 + ((this.lineStroke - 1) * 2))) + 'px;' +
|
|
11440
11697
|
this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div></div>';
|
|
11441
11698
|
}
|
|
11442
11699
|
if (this.getParentPosition(data) === 'FFType4') {
|
|
11443
|
-
div = div +
|
|
11700
|
+
div = div + direction + (data.parentLeft + data.parentWidth) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
|
|
11444
11701
|
((data.childIndex * data.rowHeight) + addTop + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
|
|
11445
11702
|
'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="FFType4">';
|
|
11446
11703
|
div = div + leftArrow;
|
|
11447
|
-
div = div + (
|
|
11704
|
+
div = div + (direction + ((data.childLeft + data.childWidth) -
|
|
11448
11705
|
(data.parentLeft + data.parentWidth))) + 'px;' +
|
|
11449
|
-
this.getBorderStyles('right', 10) + 'top:' + (-5 - this.lineStroke + (this.lineStroke - 1)) + 'px;' +
|
|
11706
|
+
this.getBorderStyles((!this.parent.enableRtl ? 'right' : 'left'), 10) + 'top:' + (-5 - this.lineStroke + (this.lineStroke - 1)) + 'px;' +
|
|
11450
11707
|
'border-bottom-width:' + (5 + this.lineStroke) +
|
|
11451
11708
|
'px;border-top-width:' + (5 + this.lineStroke) + 'px;width:0;height:0;' +
|
|
11452
11709
|
'position:relative;"></div>';
|
|
11453
11710
|
div = div + eLine;
|
|
11454
|
-
div = div + (isMilestone ? (
|
|
11711
|
+
div = div + (isMilestone ? (direction + (((data.childLeft + data.childWidth) -
|
|
11455
11712
|
(data.parentLeft + data.parentWidth)) + 4) +
|
|
11456
|
-
'px;width:' + (16 + this.lineStroke)) : (
|
|
11713
|
+
'px;width:' + (16 + this.lineStroke)) : (direction + (((data.childLeft + data.childWidth) -
|
|
11457
11714
|
(data.parentLeft + data.parentWidth)) + 10) + 'px;width:' + (10 + this.lineStroke))) +
|
|
11458
11715
|
'px;' + duplicateStingFive;
|
|
11459
11716
|
div = div + eLine;
|
|
11460
|
-
div = div +
|
|
11717
|
+
div = div + direction + (((data.childLeft + data.childWidth) -
|
|
11461
11718
|
(data.parentLeft + data.parentWidth)) + 20) + 'px;top:' + (-(13 + ((this.lineStroke - 1) * 2))) +
|
|
11462
11719
|
'px;width:0px;' + this.getBorderStyles('left', this.lineStroke) +
|
|
11463
11720
|
this.getBorderStyles('top', (heightValue + borderTopWidth - this.lineStroke + 1)) + 'position:relative;"></div>';
|
|
11464
11721
|
div = div + eLine;
|
|
11465
|
-
div = div + (isMilestoneParent ? ('
|
|
11722
|
+
div = div + (isMilestoneParent ? (direction + '-1px;width:' + (((data.childLeft + data.childWidth) -
|
|
11466
11723
|
(data.parentLeft + data.parentWidth)) + (21 + this.lineStroke))) : ('width:' + (((data.childLeft + data.childWidth) -
|
|
11467
11724
|
(data.parentLeft + data.parentWidth)) + (20 + this.lineStroke)))) + 'px;top:' +
|
|
11468
11725
|
(-(13 + ((this.lineStroke - 1) * 2))) + 'px;' +
|
|
11469
11726
|
this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div></div>';
|
|
11470
11727
|
}
|
|
11471
11728
|
if (this.getParentPosition(data) === 'SFType4') {
|
|
11472
|
-
div = div +
|
|
11729
|
+
div = div + direction + (data.parentLeft - 10) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
|
|
11473
11730
|
((data.childIndex * data.rowHeight) + addTop + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;width:1px;' +
|
|
11474
11731
|
'height:' + heightValue + 'px;position:absolute" data-connectortype="SFType4">';
|
|
11475
11732
|
div = div + duplicateStingFour + 'top:' + (-5 - this.lineStroke + (this.lineStroke - 1)) + 'px;' +
|
|
@@ -11477,11 +11734,11 @@ class ConnectorLine {
|
|
|
11477
11734
|
'px;border-top-width:' + (5 + this.lineStroke) + 'px;width:0;height:0;' +
|
|
11478
11735
|
'position:relative;"></div>';
|
|
11479
11736
|
div = div + eLine;
|
|
11480
|
-
div = div +
|
|
11737
|
+
div = div + direction + (isMilestone ? ((((data.childLeft + data.childWidth) - (data.parentLeft)) + (14 + this.lineStroke)) +
|
|
11481
11738
|
'px;width:16') : ((((data.childLeft + data.childWidth) - (data.parentLeft)) + 20) + 'px;width:' +
|
|
11482
11739
|
(10 + this.lineStroke))) + 'px;' + duplicateStingFive;
|
|
11483
11740
|
div = div + eLine;
|
|
11484
|
-
div = div +
|
|
11741
|
+
div = div + direction + (((data.childLeft + data.childWidth) - (data.parentLeft)) + 30) + 'px;top:' +
|
|
11485
11742
|
(-(13 + ((this.lineStroke - 1) * 2))) + 'px;width:0px;' + this.getBorderStyles('left', this.lineStroke) +
|
|
11486
11743
|
this.getBorderStyles('top', (heightValue + borderTopWidth - this.getconnectorLineGap(data) - (this.lineStroke - 1))) + 'position:relative;"></div>';
|
|
11487
11744
|
div = div + eLine;
|
|
@@ -11497,25 +11754,25 @@ class ConnectorLine {
|
|
|
11497
11754
|
this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div></div>';
|
|
11498
11755
|
}
|
|
11499
11756
|
if (this.getParentPosition(data) === 'SFType3') {
|
|
11500
|
-
div = div +
|
|
11757
|
+
div = div + direction + (data.childLeft + data.childWidth) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
|
|
11501
11758
|
((data.childIndex * data.rowHeight) + addTop + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
|
|
11502
11759
|
'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="SFType3">';
|
|
11503
11760
|
div = div + duplicateStingOne;
|
|
11504
11761
|
div = div + eLine;
|
|
11505
|
-
div = div + (isMilestone ? '
|
|
11762
|
+
div = div + (isMilestone ? direction + '4px;width:' + (16 + this.lineStroke) : direction + '10px;width:' +
|
|
11506
11763
|
(10 + this.lineStroke)) + 'px;top:' + (-(13 + ((this.lineStroke - 1) * 2) - 1)) + 'px;' +
|
|
11507
11764
|
this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
|
|
11508
11765
|
div = div + eLine;
|
|
11509
|
-
div = div + '
|
|
11766
|
+
div = div + direction + '20px;top:' + (-(13 + ((this.lineStroke - 1) * 2))) + 'px;width:0px;' +
|
|
11510
11767
|
this.getBorderStyles('left', this.lineStroke) +
|
|
11511
11768
|
this.getBorderStyles('top', (heightValue + borderTopWidth - (this.lineStroke - 1))) + 'position:relative;"></div>';
|
|
11512
11769
|
div = div + eLine;
|
|
11513
|
-
div = div + '
|
|
11770
|
+
div = div + direction + '20px;top:' + (-(13 + ((this.lineStroke - 1) * 2))) + 'px;width:' +
|
|
11514
11771
|
((data.parentLeft - (data.childLeft + data.childWidth + 20)) + this.lineStroke) + 'px;' +
|
|
11515
11772
|
this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div></div>';
|
|
11516
11773
|
}
|
|
11517
11774
|
if (this.getParentPosition(data) === 'SFType1') {
|
|
11518
|
-
div = div +
|
|
11775
|
+
div = div + direction + (data.parentLeft - 10) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
|
|
11519
11776
|
((data.parentIndex * data.rowHeight) + addTop + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
|
|
11520
11777
|
'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="SFType1">';
|
|
11521
11778
|
div = div + eLine;
|
|
@@ -11527,12 +11784,12 @@ class ConnectorLine {
|
|
|
11527
11784
|
div = div + 'width:' + (((data.childLeft + data.childWidth) - (data.parentLeft)) + (30 + this.lineStroke)) + 'px;' +
|
|
11528
11785
|
this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
|
|
11529
11786
|
div = div + eLine;
|
|
11530
|
-
div = div +
|
|
11787
|
+
div = div + direction + (((data.childLeft + data.childWidth) - (data.parentLeft)) + 30) +
|
|
11531
11788
|
'px;width:0px;' + this.getBorderStyles('left', this.lineStroke) +
|
|
11532
11789
|
this.getBorderStyles('top', (this.getconnectorLineGap(data) - this.lineStroke)) + 'position:relative;"></div>';
|
|
11533
11790
|
div = div + eLine;
|
|
11534
|
-
div = div + (isMilestone ? (
|
|
11535
|
-
(data.parentLeft)) + 15) + 'px;width:' + (15 + this.lineStroke)) : (
|
|
11791
|
+
div = div + (isMilestone ? (direction + (((data.childLeft + data.childWidth) -
|
|
11792
|
+
(data.parentLeft)) + 15) + 'px;width:' + (15 + this.lineStroke)) : (direction +
|
|
11536
11793
|
(((data.childLeft + data.childWidth) - (data.parentLeft)) + 20) + 'px;width:' + (10 + this.lineStroke))) + 'px;' +
|
|
11537
11794
|
this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
|
|
11538
11795
|
div = div + duplicateStingFour + 'top:' + (-6 - this.lineStroke) + 'px;' +
|
|
@@ -11540,23 +11797,23 @@ class ConnectorLine {
|
|
|
11540
11797
|
(5 + this.lineStroke) + 'px;position:relative;"></div></div>';
|
|
11541
11798
|
}
|
|
11542
11799
|
if (this.getParentPosition(data) === 'SFType2') {
|
|
11543
|
-
div = div +
|
|
11800
|
+
div = div + direction + (data.childLeft + data.childWidth) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
|
|
11544
11801
|
((data.parentIndex * data.rowHeight) + addTop + this.getTaskbarMidpoint(isMilestoneParent) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
|
|
11545
11802
|
'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="SFType2">';
|
|
11546
11803
|
div = div + eLine;
|
|
11547
|
-
div = div +
|
|
11804
|
+
div = div + direction + (((data.parentLeft) - (data.childLeft + data.childWidth)) - 10) +
|
|
11548
11805
|
'px;width:11px;' + this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
|
|
11549
11806
|
div = div + eLine;
|
|
11550
|
-
div = div +
|
|
11807
|
+
div = div + direction + (((data.parentLeft) - (data.childLeft + data.childWidth)) - 10) +
|
|
11551
11808
|
'px;width:0px;' + this.getBorderStyles('left', this.lineStroke) +
|
|
11552
11809
|
this.getBorderStyles('top', (heightValue + borderTopWidth - this.lineStroke)) + 'position:relative;"></div>';
|
|
11553
11810
|
div = div + eLine;
|
|
11554
|
-
div = div + (isMilestone ? ('
|
|
11555
|
-
- (14 - this.lineStroke))) : ('
|
|
11811
|
+
div = div + (isMilestone ? (direction + '4px;width:' + (((data.parentLeft) - (data.childLeft + data.childWidth))
|
|
11812
|
+
- (14 - this.lineStroke))) : (direction + '10px;width:' + (((data.parentLeft) -
|
|
11556
11813
|
(data.childLeft + data.childWidth)) - (20 - this.lineStroke)))) +
|
|
11557
11814
|
'px;' + this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
|
|
11558
11815
|
div = div + leftArrow;
|
|
11559
|
-
div = div + '
|
|
11816
|
+
div = div + direction + '0px;' + this.getBorderStyles((this.parent.enableRtl ? 'right' : 'left'), 10) +
|
|
11560
11817
|
'top:' + (-6 - this.lineStroke) + 'px;border-bottom-width:' + (5 + this.lineStroke) +
|
|
11561
11818
|
'px;border-top-width:' + (5 + this.lineStroke) + 'px;width:0;height:0;position:relative;"></div></div>';
|
|
11562
11819
|
}
|
|
@@ -11743,12 +12000,19 @@ class Splitter$1 {
|
|
|
11743
12000
|
this.parent.splitterElement = createElement('div', { className: splitter });
|
|
11744
12001
|
this.parent.treeGridPane = createElement('div', { className: treeGridPane });
|
|
11745
12002
|
this.parent.chartPane = createElement('div', { className: ganttChartPane });
|
|
11746
|
-
|
|
11747
|
-
|
|
12003
|
+
if (this.parent.enableRtl) {
|
|
12004
|
+
this.parent.splitterElement.appendChild(this.parent.chartPane);
|
|
12005
|
+
this.parent.splitterElement.appendChild(this.parent.treeGridPane);
|
|
12006
|
+
}
|
|
12007
|
+
else {
|
|
12008
|
+
this.parent.splitterElement.appendChild(this.parent.treeGridPane);
|
|
12009
|
+
this.parent.splitterElement.appendChild(this.parent.chartPane);
|
|
12010
|
+
}
|
|
11748
12011
|
this.splitterObject = new Splitter({
|
|
11749
12012
|
height: null,
|
|
11750
12013
|
width: this.parent.ganttWidth.toString(),
|
|
11751
12014
|
enablePersistence: this.parent.enablePersistence,
|
|
12015
|
+
enableRtl: this.parent.enableRtl,
|
|
11752
12016
|
separatorSize: this.parent.splitterSettings.separatorSize,
|
|
11753
12017
|
paneSettings: [
|
|
11754
12018
|
{
|
|
@@ -11762,6 +12026,9 @@ class Splitter$1 {
|
|
|
11762
12026
|
],
|
|
11763
12027
|
orientation: 'Horizontal',
|
|
11764
12028
|
resizeStart: (args) => {
|
|
12029
|
+
if (this.parent.contextMenuModule && this.parent.contextMenuModule.isOpen) {
|
|
12030
|
+
this.parent.contextMenuModule.contextMenu.close();
|
|
12031
|
+
}
|
|
11765
12032
|
const leftPane = args.pane[0];
|
|
11766
12033
|
const rightPane = args.pane[1];
|
|
11767
12034
|
this.splitterPreviousPositionGrid = leftPane.scrollWidth + 1 + 'px';
|
|
@@ -11923,6 +12190,7 @@ class Tooltip$1 {
|
|
|
11923
12190
|
'.e-taskbar-left-resizer, .e-taskbar-right-resizer, .e-baseline-gantt-milestone, .e-gantt-manualparenttaskbar';
|
|
11924
12191
|
this.toolTipObj.position = 'BottomCenter';
|
|
11925
12192
|
this.toolTipObj.openDelay = 700;
|
|
12193
|
+
this.toolTipObj.enableRtl = this.parent.enableRtl;
|
|
11926
12194
|
this.toolTipObj.enableHtmlSanitizer = false;
|
|
11927
12195
|
this.toolTipObj.cssClass = ganttTooltip;
|
|
11928
12196
|
this.toolTipObj.animation = { open: { effect: 'None', delay: 0 }, close: { effect: 'None', delay: 0 } };
|
|
@@ -12562,6 +12830,7 @@ class FocusModule {
|
|
|
12562
12830
|
const top = containerPosition.top + (containerPosition.height / 2);
|
|
12563
12831
|
const left = containerPosition.left + (containerPosition.width / 2);
|
|
12564
12832
|
this.setActiveElement(e.target);
|
|
12833
|
+
// eslint-disable-next-line security/detect-non-literal-fs-filename
|
|
12565
12834
|
contextMenu.open(top, left);
|
|
12566
12835
|
e.preventDefault();
|
|
12567
12836
|
break;
|
|
@@ -12651,6 +12920,8 @@ var __decorate = (undefined && undefined.__decorate) || function (decorators, ta
|
|
|
12651
12920
|
let Gantt = class Gantt extends Component {
|
|
12652
12921
|
constructor(options, element) {
|
|
12653
12922
|
super(options, element);
|
|
12923
|
+
this.showIndicator = true;
|
|
12924
|
+
this.singleTier = 0;
|
|
12654
12925
|
/** @hidden */
|
|
12655
12926
|
this.isCancelled = false;
|
|
12656
12927
|
/** @hidden */
|
|
@@ -12845,7 +13116,7 @@ let Gantt = class Gantt extends Component {
|
|
|
12845
13116
|
/**
|
|
12846
13117
|
* To check whether the date is in DST.
|
|
12847
13118
|
*
|
|
12848
|
-
* @param {Date} date .
|
|
13119
|
+
* @param {Date} date - Defines the date to check whether it is DST.
|
|
12849
13120
|
* @returns {boolean} .
|
|
12850
13121
|
* @private
|
|
12851
13122
|
*/
|
|
@@ -12936,9 +13207,348 @@ let Gantt = class Gantt extends Component {
|
|
|
12936
13207
|
}
|
|
12937
13208
|
this.splitterModule.renderSplitter();
|
|
12938
13209
|
this.notify('renderPanels', null);
|
|
12939
|
-
this.
|
|
13210
|
+
if (!isNullOrUndefined(this.loadingIndicator) && this.loadingIndicator.indicatorType === "Shimmer") {
|
|
13211
|
+
this.showMaskRow();
|
|
13212
|
+
}
|
|
13213
|
+
else {
|
|
13214
|
+
this.showSpinner();
|
|
13215
|
+
}
|
|
12940
13216
|
this.dataOperation.checkDataBinding();
|
|
12941
13217
|
}
|
|
13218
|
+
hideMaskRow() {
|
|
13219
|
+
let isTablePresent = this.element.querySelectorAll('.e-masked-table').length;
|
|
13220
|
+
if (!isNullOrUndefined(this.contentMaskTable) && isTablePresent != 0) {
|
|
13221
|
+
const maskTable = this.contentMaskTable;
|
|
13222
|
+
remove(maskTable);
|
|
13223
|
+
this.contentMaskTable = null;
|
|
13224
|
+
}
|
|
13225
|
+
isTablePresent = this.element.querySelectorAll('.e-masked-table').length;
|
|
13226
|
+
if (!isNullOrUndefined(this.headerMaskTable) && isTablePresent != 0) {
|
|
13227
|
+
const maskTable = this.headerMaskTable;
|
|
13228
|
+
remove(maskTable);
|
|
13229
|
+
this.headerMaskTable = null;
|
|
13230
|
+
}
|
|
13231
|
+
while ((this.element.querySelectorAll('.e-table-background')).length != 0) {
|
|
13232
|
+
this.element.querySelectorAll('.e-table-background')[0].remove();
|
|
13233
|
+
}
|
|
13234
|
+
while ((this.element.querySelectorAll('.e-temp-timeline')).length != 0) {
|
|
13235
|
+
this.element.querySelectorAll('.e-temp-timeline')[0].remove();
|
|
13236
|
+
}
|
|
13237
|
+
if (this.element.querySelectorAll('.' + timelineHeaderTableContainer).length != 0) {
|
|
13238
|
+
for (var i = 0; i < this.singleTier; i++) {
|
|
13239
|
+
if (!isNullOrUndefined(this.element.querySelectorAll('.' + timelineHeaderTableContainer)[i])) {
|
|
13240
|
+
this.element.querySelectorAll('.' + timelineHeaderTableContainer)[i]['style'].visibility = "visible";
|
|
13241
|
+
}
|
|
13242
|
+
}
|
|
13243
|
+
}
|
|
13244
|
+
if (!isNullOrUndefined(this.element.querySelector('.' + timelineHeaderContainer))) {
|
|
13245
|
+
this.element.querySelector('.' + timelineHeaderContainer)['style'].position = "relative";
|
|
13246
|
+
}
|
|
13247
|
+
if (!isNullOrUndefined(this.element.getElementsByClassName(chartBodyContent)[0])) {
|
|
13248
|
+
this.element.getElementsByClassName(chartBodyContent)[0]['style'].visibility = "visible";
|
|
13249
|
+
}
|
|
13250
|
+
}
|
|
13251
|
+
showMaskRow() {
|
|
13252
|
+
const ganttHeader = this.chartPane.childNodes[0].childNodes[0];
|
|
13253
|
+
this.scrollLeftValue = this.chartPane.childNodes[0].childNodes[0]['scrollLeft'];
|
|
13254
|
+
const ganttContent = this.chartPane.childNodes[0].childNodes[1];
|
|
13255
|
+
if (!this.contentMaskTable) {
|
|
13256
|
+
if (ganttContent) {
|
|
13257
|
+
let content$$1 = ganttContent;
|
|
13258
|
+
this.renderBackGround(content$$1);
|
|
13259
|
+
if (this.element.querySelectorAll('.' + timelineHeaderTableContainer).length != 0) {
|
|
13260
|
+
this.singleTier = this.timelineModule.isSingleTier ? 1 : 2;
|
|
13261
|
+
for (var i = 0; i < this.singleTier; i++) {
|
|
13262
|
+
this.element.querySelectorAll('.' + timelineHeaderTableContainer)[i]['style'].visibility = "hidden";
|
|
13263
|
+
}
|
|
13264
|
+
}
|
|
13265
|
+
if (this.singleTier === 0) {
|
|
13266
|
+
this.singleTier = 2;
|
|
13267
|
+
}
|
|
13268
|
+
this.element.getElementsByClassName(chartBodyContent)[0]['style'].visibility = "hidden";
|
|
13269
|
+
this.contentMaskTable = this.contentMaskTable = this.createMaskTable(content$$1);
|
|
13270
|
+
}
|
|
13271
|
+
if (ganttHeader) {
|
|
13272
|
+
this.element.querySelector('.' + timelineHeaderContainer)['style'].position = "static";
|
|
13273
|
+
let content$$1 = ganttHeader;
|
|
13274
|
+
this.renderHeaderBackground(content$$1);
|
|
13275
|
+
this.headerMaskTable = this.headerMaskTable = this.createMaskTable(content$$1);
|
|
13276
|
+
}
|
|
13277
|
+
}
|
|
13278
|
+
}
|
|
13279
|
+
renderHeaderBackground(element) {
|
|
13280
|
+
const parentElement = element;
|
|
13281
|
+
const timelineHeight = element.getBoundingClientRect().height;
|
|
13282
|
+
const header = closest(parentElement, '.' + timelineHeaderContainer) ? true : false;
|
|
13283
|
+
if (header) {
|
|
13284
|
+
const div = this.createElement('div', { className: 'e-table-background' });
|
|
13285
|
+
const tempRow = this.createElement('tr', { className: 'e-masked-row e-row', attrs: {
|
|
13286
|
+
style: 'height: ' + timelineHeight + 'px;'
|
|
13287
|
+
} });
|
|
13288
|
+
let backgroundLines = 0;
|
|
13289
|
+
let containerWidth = Math.round(element.getBoundingClientRect().width);
|
|
13290
|
+
for (let i = 0; i < 3; i++) {
|
|
13291
|
+
if (this.enableRtl) {
|
|
13292
|
+
div.appendChild(this.createElement('div', { className: 'e-div-background', attrs: {
|
|
13293
|
+
style: 'left: ' + (containerWidth -= ((160))) + 'px; top:0px;'
|
|
13294
|
+
} }));
|
|
13295
|
+
}
|
|
13296
|
+
else {
|
|
13297
|
+
div.appendChild(this.createElement('div', { className: 'e-div-background', attrs: {
|
|
13298
|
+
style: 'left: ' + (backgroundLines += ((160))) + 'px; top:0px;'
|
|
13299
|
+
} }));
|
|
13300
|
+
}
|
|
13301
|
+
}
|
|
13302
|
+
parentElement.insertBefore(div, parentElement.firstChild);
|
|
13303
|
+
}
|
|
13304
|
+
}
|
|
13305
|
+
renderBackGround(element) {
|
|
13306
|
+
const parentElement = element;
|
|
13307
|
+
const timelineHeight = element.getBoundingClientRect().height;
|
|
13308
|
+
const content$$1 = closest(parentElement, '.' + chartBodyContainer) ? true : false;
|
|
13309
|
+
if (content$$1) {
|
|
13310
|
+
const div = this.createElement('div', { className: 'e-table-background' });
|
|
13311
|
+
const tempRow = this.createElement('tr', { className: 'e-masked-row e-row', attrs: {
|
|
13312
|
+
style: 'height: ' + timelineHeight + 'px;'
|
|
13313
|
+
} });
|
|
13314
|
+
let backgroundLines = 0;
|
|
13315
|
+
let containerWidth = Math.round(element.getBoundingClientRect().width);
|
|
13316
|
+
for (let i = 0; i < 3; i++) {
|
|
13317
|
+
if (this.enableRtl) {
|
|
13318
|
+
div.appendChild(this.createElement('div', { className: 'e-div-background', attrs: {
|
|
13319
|
+
style: 'left: ' + (containerWidth -= (160)) + 'px;z-index:1;'
|
|
13320
|
+
} }));
|
|
13321
|
+
}
|
|
13322
|
+
else {
|
|
13323
|
+
div.appendChild(this.createElement('div', { className: 'e-div-background', attrs: {
|
|
13324
|
+
style: 'left: ' + (backgroundLines += (160)) + 'px;z-index:1;'
|
|
13325
|
+
} }));
|
|
13326
|
+
}
|
|
13327
|
+
}
|
|
13328
|
+
parentElement.insertBefore(div, parentElement.firstChild);
|
|
13329
|
+
}
|
|
13330
|
+
}
|
|
13331
|
+
createMaskTable(element) {
|
|
13332
|
+
const parentElement = element;
|
|
13333
|
+
const shimmerContainerHeight = element.getBoundingClientRect().height;
|
|
13334
|
+
const header = closest(parentElement, '.' + timelineHeaderContainer) ? true : false;
|
|
13335
|
+
let maskTable;
|
|
13336
|
+
if (header) {
|
|
13337
|
+
maskTable = this.createEmptyTimeLineTable(shimmerContainerHeight);
|
|
13338
|
+
maskTable.style.position = 'sticky';
|
|
13339
|
+
maskTable.style.left = 0 + 'px';
|
|
13340
|
+
if (this.enableRtl) {
|
|
13341
|
+
maskTable.style.removeProperty('left');
|
|
13342
|
+
}
|
|
13343
|
+
}
|
|
13344
|
+
else {
|
|
13345
|
+
maskTable = this.createEmptyMaskTable(shimmerContainerHeight);
|
|
13346
|
+
maskTable.style.position = 'absolute';
|
|
13347
|
+
maskTable.style.zIndex = 1;
|
|
13348
|
+
}
|
|
13349
|
+
if (!header) {
|
|
13350
|
+
maskTable.style.height = element.getBoundingClientRect().height + 'px';
|
|
13351
|
+
parentElement.insertBefore(maskTable, parentElement.firstChild);
|
|
13352
|
+
}
|
|
13353
|
+
else {
|
|
13354
|
+
maskTable.style.height = element.getBoundingClientRect().height + 'px';
|
|
13355
|
+
let div = this.createElement('div', { className: 'e-temp-timeline' });
|
|
13356
|
+
div.style.width = 614 + 'px';
|
|
13357
|
+
div.style.position = 'sticky';
|
|
13358
|
+
if (this.enableRtl) {
|
|
13359
|
+
div.style['margin-right'] = Math.abs(this.scrollLeftValue) + 'px';
|
|
13360
|
+
}
|
|
13361
|
+
else {
|
|
13362
|
+
div.style['margin-left'] = this.scrollLeftValue + 'px';
|
|
13363
|
+
}
|
|
13364
|
+
div.appendChild(maskTable);
|
|
13365
|
+
parentElement.insertBefore(div, parentElement.firstChild);
|
|
13366
|
+
}
|
|
13367
|
+
return maskTable;
|
|
13368
|
+
}
|
|
13369
|
+
createEmptyTimeLineTable(timelineHeight) {
|
|
13370
|
+
const table = this.createElement('table', { className: 'e-table e-masked-table' });
|
|
13371
|
+
const tbody = this.createElement('tbody', { className: 'e-masked-tbody' });
|
|
13372
|
+
let row = [];
|
|
13373
|
+
const duplicateRow = this.createElement('tr', { className: 'e-masked-row e-row', attrs: {
|
|
13374
|
+
style: 'height: ' + timelineHeight / 2 + 'px;'
|
|
13375
|
+
} });
|
|
13376
|
+
for (let i = 0; i < this.singleTier; i++) {
|
|
13377
|
+
row.push(duplicateRow.cloneNode(true));
|
|
13378
|
+
}
|
|
13379
|
+
this.topBottomHeader = 0;
|
|
13380
|
+
for (let i = 0; i < row.length; i++) {
|
|
13381
|
+
tbody.appendChild(this.applyTimelineMaskRow(row[i]));
|
|
13382
|
+
this.topBottomHeader = this.topBottomHeader + 1;
|
|
13383
|
+
}
|
|
13384
|
+
table.appendChild(tbody);
|
|
13385
|
+
table.style.width = 100 + '%';
|
|
13386
|
+
return table;
|
|
13387
|
+
}
|
|
13388
|
+
applyTimelineMaskRow(row) {
|
|
13389
|
+
const maskRow = row;
|
|
13390
|
+
maskRow.appendChild(this.createElement('td', { className: 'e-timeline-masked-top-header-cell' }));
|
|
13391
|
+
maskRow.appendChild(this.createElement('td', { className: 'e-timeline-masked-top-header-cell' }));
|
|
13392
|
+
maskRow.appendChild(this.createElement('td', { className: 'e-timeline-masked-top-header-cell' }));
|
|
13393
|
+
maskRow.appendChild(this.createElement('td', { className: 'e-timeline-masked-top-header-cell' }));
|
|
13394
|
+
for (let i = 0; i < maskRow.childNodes.length - 1; i++) {
|
|
13395
|
+
maskRow.childNodes[i]['style']['width'] = 166 + 'px';
|
|
13396
|
+
}
|
|
13397
|
+
const maskCells = [].slice.call(maskRow.childNodes);
|
|
13398
|
+
for (let i = 0; i < maskCells.length; i++) {
|
|
13399
|
+
const maskCell = maskCells[i];
|
|
13400
|
+
switch (this.topBottomHeader) {
|
|
13401
|
+
case 0:
|
|
13402
|
+
if (this.enableRtl) {
|
|
13403
|
+
maskCell.innerHTML = '<span class="e-mask e-skeleton e-skeleton-text e-shimmer-wave e-timelineHeader"></span>';
|
|
13404
|
+
maskCell.children[0]['style'].left = -20 + 'px';
|
|
13405
|
+
}
|
|
13406
|
+
else {
|
|
13407
|
+
maskCell.innerHTML = '<span class="e-mask e-skeleton e-skeleton-text e-shimmer-wave e-timelineHeader"></span>';
|
|
13408
|
+
}
|
|
13409
|
+
break;
|
|
13410
|
+
case 1:
|
|
13411
|
+
maskCell.appendChild(this.createElement('td', { className: 'e-timeline-masked-top-header-cell' }));
|
|
13412
|
+
maskCell.appendChild(this.createElement('td', { className: 'e-timeline-masked-top-header-cell' }));
|
|
13413
|
+
maskCell.appendChild(this.createElement('td', { className: 'e-timeline-masked-top-header-cell' }));
|
|
13414
|
+
const innerMaskCells = [].slice.call(maskCell.childNodes);
|
|
13415
|
+
for (let i = 0; i < innerMaskCells.length; i++) {
|
|
13416
|
+
const htmlInner = innerMaskCells[i];
|
|
13417
|
+
if (i === 0) {
|
|
13418
|
+
if (this.enableRtl) {
|
|
13419
|
+
htmlInner.innerHTML = '<span class="e-mask e-skeleton e-skeleton-text e-shimmer-wave e-innerHTML"></span>';
|
|
13420
|
+
htmlInner.children[0]['style'].left = -14 + 'px';
|
|
13421
|
+
}
|
|
13422
|
+
else {
|
|
13423
|
+
htmlInner.innerHTML = '<span class="e-mask e-skeleton e-skeleton-text e-shimmer-wave e-innerHTML"></span>';
|
|
13424
|
+
}
|
|
13425
|
+
}
|
|
13426
|
+
else if (i === 1) {
|
|
13427
|
+
if (this.enableRtl) {
|
|
13428
|
+
htmlInner.innerHTML = '<span class="e-mask e-skeleton e-skeleton-text e-shimmer-wave e-innerHTML1"></span>';
|
|
13429
|
+
htmlInner.children[0]['style'].left = -30 + 'px';
|
|
13430
|
+
}
|
|
13431
|
+
else {
|
|
13432
|
+
htmlInner.innerHTML = '<span class="e-mask e-skeleton e-skeleton-text e-shimmer-wave e-innerHTML1"></span>';
|
|
13433
|
+
}
|
|
13434
|
+
}
|
|
13435
|
+
else {
|
|
13436
|
+
if (this.enableRtl) {
|
|
13437
|
+
htmlInner.innerHTML = '<span class="e-mask e-skeleton e-skeleton-text e-shimmer-wave e-innerHTML2"></span>';
|
|
13438
|
+
htmlInner.children[0]['style'].left = -60 + 'px';
|
|
13439
|
+
}
|
|
13440
|
+
else {
|
|
13441
|
+
htmlInner.innerHTML = '<span class="e-mask e-skeleton e-skeleton-text e-shimmer-wave e-innerHTML2"></span>';
|
|
13442
|
+
}
|
|
13443
|
+
}
|
|
13444
|
+
}
|
|
13445
|
+
break;
|
|
13446
|
+
}
|
|
13447
|
+
}
|
|
13448
|
+
return maskRow;
|
|
13449
|
+
}
|
|
13450
|
+
createEmptyMaskTable(timelineHeight) {
|
|
13451
|
+
const table = this.createElement('table', { className: 'e-table e-masked-table' });
|
|
13452
|
+
const tbody = this.createElement('tbody', { className: 'e-masked-tbody' });
|
|
13453
|
+
let row = [];
|
|
13454
|
+
const duplicateRow = this.createElement('tr', { className: 'e-masked-row e-row', attrs: {
|
|
13455
|
+
style: 'height: ' + timelineHeight / 7 + 'px;'
|
|
13456
|
+
} });
|
|
13457
|
+
this.columnLoop = 0;
|
|
13458
|
+
for (let i = 0; i < 6; i++) {
|
|
13459
|
+
row.push(duplicateRow.cloneNode(true));
|
|
13460
|
+
}
|
|
13461
|
+
for (let j = 0; j < row.length; j++) {
|
|
13462
|
+
if (this.columnLoop < 4) {
|
|
13463
|
+
this.columnLoop = this.columnLoop + 1;
|
|
13464
|
+
}
|
|
13465
|
+
else if (this.columnLoop === 4) {
|
|
13466
|
+
this.columnLoop = 1;
|
|
13467
|
+
}
|
|
13468
|
+
tbody.appendChild(this.applyMaskRow(row[j]));
|
|
13469
|
+
}
|
|
13470
|
+
table.appendChild(tbody);
|
|
13471
|
+
table.style.width = 100 + '%';
|
|
13472
|
+
let div = this.createElement('div', { className: 'e-temp-container' });
|
|
13473
|
+
div.style.width = 'calc(100% - ' + 17 + 'px)';
|
|
13474
|
+
div.style.overflow = 'hidden';
|
|
13475
|
+
div.appendChild(table);
|
|
13476
|
+
return div;
|
|
13477
|
+
}
|
|
13478
|
+
applyMaskRow(row) {
|
|
13479
|
+
const maskRow = row;
|
|
13480
|
+
if (this.columnLoop < 4) {
|
|
13481
|
+
maskRow.appendChild(this.createElement('td', { className: 'e-masked-cell e-rowcell' }));
|
|
13482
|
+
maskRow.appendChild(this.createElement('td', { className: 'e-masked-cell e-rowcell' }));
|
|
13483
|
+
}
|
|
13484
|
+
else {
|
|
13485
|
+
maskRow.appendChild(this.createElement('td', { className: 'e-masked-cell e-rowcell' }));
|
|
13486
|
+
}
|
|
13487
|
+
const maskCells = [].slice.call(maskRow.childNodes);
|
|
13488
|
+
for (let i = 0; i < maskCells.length; i++) {
|
|
13489
|
+
const maskCell = maskCells[i];
|
|
13490
|
+
switch (this.columnLoop) {
|
|
13491
|
+
case 1:
|
|
13492
|
+
if (i === 0) {
|
|
13493
|
+
if (this.enableRtl) {
|
|
13494
|
+
maskCell.innerHTML = '<span class="e-mask e-skeleton e-skeleton-text e-shimmer-wave e-maskcell01"></span>';
|
|
13495
|
+
maskCell.children[0]['style'].left = -14 + 'px';
|
|
13496
|
+
}
|
|
13497
|
+
else {
|
|
13498
|
+
maskCell.innerHTML = '<span class="e-mask e-skeleton e-skeleton-text e-shimmer-wave e-maskcell01"></span>';
|
|
13499
|
+
}
|
|
13500
|
+
}
|
|
13501
|
+
else {
|
|
13502
|
+
maskCell.innerHTML = '<span class="e-mask e-skeleton e-skeleton-text e-shimmer-wave e-maskcell02"></span>';
|
|
13503
|
+
}
|
|
13504
|
+
break;
|
|
13505
|
+
case 2:
|
|
13506
|
+
if (i === 0) {
|
|
13507
|
+
if (this.enableRtl) {
|
|
13508
|
+
maskCell.innerHTML = '<span class="e-mask e-skeleton e-skeleton-text e-shimmer-wave e-maskcell03"></span>';
|
|
13509
|
+
maskCell.children[0]['style'].left = -14 + 'px';
|
|
13510
|
+
}
|
|
13511
|
+
else {
|
|
13512
|
+
maskCell.innerHTML = '<span class="e-mask e-skeleton e-skeleton-text e-shimmer-wave e-maskcell03"></span>';
|
|
13513
|
+
}
|
|
13514
|
+
}
|
|
13515
|
+
else {
|
|
13516
|
+
maskCell.innerHTML = '<span class="e-mask e-skeleton e-skeleton-text e-shimmer-wave e-maskcell04"></span>';
|
|
13517
|
+
}
|
|
13518
|
+
break;
|
|
13519
|
+
case 3:
|
|
13520
|
+
if (i === 0) {
|
|
13521
|
+
if (this.enableRtl) {
|
|
13522
|
+
maskCell.innerHTML = '<span class="e-mask e-skeleton e-skeleton-text e-shimmer-wave e-maskcell05"></span>';
|
|
13523
|
+
maskCell.children[0]['style'].left = -64 + 'px';
|
|
13524
|
+
}
|
|
13525
|
+
else {
|
|
13526
|
+
maskCell.innerHTML = '<span class="e-mask e-skeleton e-skeleton-text e-shimmer-wave e-maskcell05"></span>';
|
|
13527
|
+
}
|
|
13528
|
+
}
|
|
13529
|
+
else {
|
|
13530
|
+
if (this.enableRtl) {
|
|
13531
|
+
maskCell.innerHTML = '<span class="e-mask e-skeleton e-skeleton-text e-shimmer-wave e-maskcell06"></span>';
|
|
13532
|
+
maskCell.children[0]['style'].left = -192 + 'px';
|
|
13533
|
+
}
|
|
13534
|
+
else {
|
|
13535
|
+
maskCell.innerHTML = '<span class="e-mask e-skeleton e-skeleton-text e-shimmer-wave e-maskcell06"></span>';
|
|
13536
|
+
}
|
|
13537
|
+
}
|
|
13538
|
+
break;
|
|
13539
|
+
case 4:
|
|
13540
|
+
if (this.enableRtl) {
|
|
13541
|
+
maskCell.innerHTML = '<span class="e-mask e-skeleton e-skeleton-text e-shimmer-wave e-maskcell07"></span>';
|
|
13542
|
+
maskCell.children[0]['style'].left = -388 + 'px';
|
|
13543
|
+
}
|
|
13544
|
+
else {
|
|
13545
|
+
maskCell.innerHTML = '<span class="e-mask e-skeleton e-skeleton-text e-shimmer-wave e-maskcell07"></span>';
|
|
13546
|
+
}
|
|
13547
|
+
break;
|
|
13548
|
+
}
|
|
13549
|
+
}
|
|
13550
|
+
return maskRow;
|
|
13551
|
+
}
|
|
12942
13552
|
/**
|
|
12943
13553
|
* Method used to show spinner.
|
|
12944
13554
|
*
|
|
@@ -12964,7 +13574,7 @@ let Gantt = class Gantt extends Component {
|
|
|
12964
13574
|
this.timelineModule.calculateZoomingLevelsPerDayWidth(); // To calculate the perDaywidth
|
|
12965
13575
|
}
|
|
12966
13576
|
/**
|
|
12967
|
-
* @param {boolean} isChange .
|
|
13577
|
+
* @param {boolean} isChange -Defines whether task data is changed.
|
|
12968
13578
|
* @returns {void} .
|
|
12969
13579
|
* @private
|
|
12970
13580
|
*/
|
|
@@ -13064,7 +13674,7 @@ let Gantt = class Gantt extends Component {
|
|
|
13064
13674
|
/**
|
|
13065
13675
|
* Method for updating row height value in connector line collections
|
|
13066
13676
|
*
|
|
13067
|
-
* @param {IConnectorLineObject[]} collection .
|
|
13677
|
+
* @param {IConnectorLineObject[]} collection -Defines the CollectorLine collection.
|
|
13068
13678
|
* @returns {void} .
|
|
13069
13679
|
* @private
|
|
13070
13680
|
*/
|
|
@@ -13100,7 +13710,7 @@ let Gantt = class Gantt extends Component {
|
|
|
13100
13710
|
this.currentViewData = this.treeGrid.getCurrentViewRecords().slice();
|
|
13101
13711
|
}
|
|
13102
13712
|
/**
|
|
13103
|
-
* @param {IGanttData} records .
|
|
13713
|
+
* @param {IGanttData} records -Defines the delete record collections.
|
|
13104
13714
|
* @returns {IGanttData} .
|
|
13105
13715
|
* @private
|
|
13106
13716
|
*/
|
|
@@ -13112,7 +13722,7 @@ let Gantt = class Gantt extends Component {
|
|
|
13112
13722
|
return updatedRecord;
|
|
13113
13723
|
}
|
|
13114
13724
|
/**
|
|
13115
|
-
* @param {object} args .
|
|
13725
|
+
* @param {object} args -Update the gantt element content height.
|
|
13116
13726
|
* @returns {void} .
|
|
13117
13727
|
* @private
|
|
13118
13728
|
*/
|
|
@@ -13463,7 +14073,12 @@ let Gantt = class Gantt extends Component {
|
|
|
13463
14073
|
this.treeGrid.height = '100%';
|
|
13464
14074
|
this.notify('tree-grid-created', {});
|
|
13465
14075
|
this.createGanttPopUpElement();
|
|
13466
|
-
this.
|
|
14076
|
+
if (!isNullOrUndefined(this.loadingIndicator) && this.loadingIndicator.indicatorType === "Shimmer") {
|
|
14077
|
+
this.hideMaskRow();
|
|
14078
|
+
}
|
|
14079
|
+
else {
|
|
14080
|
+
this.hideSpinner();
|
|
14081
|
+
}
|
|
13467
14082
|
setValue('isGanttCreated', true, args);
|
|
13468
14083
|
this.renderComplete();
|
|
13469
14084
|
}
|
|
@@ -13475,6 +14090,11 @@ let Gantt = class Gantt extends Component {
|
|
|
13475
14090
|
this.criticalPathModule.showCriticalPath(this.enableCriticalPath);
|
|
13476
14091
|
}
|
|
13477
14092
|
this.notify('recordsUpdated', {});
|
|
14093
|
+
for (let i = 0; i < document.getElementsByClassName('e-timeline-header-table-container').length; i++) {
|
|
14094
|
+
for (let j = 0; j < document.getElementsByClassName('e-timeline-header-table-container')[i].children[0].children[0].children.length; j++) {
|
|
14095
|
+
document.getElementsByClassName('e-timeline-header-table-container')[i].children[0].children[0].children[j].children[0].setAttribute('tabindex', '-1');
|
|
14096
|
+
}
|
|
14097
|
+
}
|
|
13478
14098
|
if (this.enableCriticalPath && this.criticalPathModule) {
|
|
13479
14099
|
let criticalModule = this.criticalPathModule;
|
|
13480
14100
|
this.criticalPathModule.criticalConnectorLine(criticalModule.criticalPathCollection, criticalModule.detailPredecessorCollection, true, criticalModule.predecessorCollectionTaskIds);
|
|
@@ -13506,8 +14126,8 @@ let Gantt = class Gantt extends Component {
|
|
|
13506
14126
|
/**
|
|
13507
14127
|
* Called internally, if any of the property value changed.
|
|
13508
14128
|
*
|
|
13509
|
-
* @param {GanttModel} newProp .
|
|
13510
|
-
* @param {GanttModel} oldProp .
|
|
14129
|
+
* @param {GanttModel} newProp - Defines the New GanttModel.
|
|
14130
|
+
* @param {GanttModel} oldProp - Defines the old GanttModel.
|
|
13511
14131
|
* @returns {void} .
|
|
13512
14132
|
* @private
|
|
13513
14133
|
*/
|
|
@@ -13569,6 +14189,12 @@ let Gantt = class Gantt extends Component {
|
|
|
13569
14189
|
this.dataOperation.checkDataBinding(true);
|
|
13570
14190
|
break;
|
|
13571
14191
|
case 'enableCriticalPath':
|
|
14192
|
+
if (!isNullOrUndefined(this.loadingIndicator) && this.loadingIndicator.indicatorType === "Shimmer") {
|
|
14193
|
+
this.hideMaskRow();
|
|
14194
|
+
}
|
|
14195
|
+
else {
|
|
14196
|
+
this.hideSpinner();
|
|
14197
|
+
}
|
|
13572
14198
|
if (this.enableCriticalPath && this.criticalPathModule) {
|
|
13573
14199
|
this.criticalPathModule.showCriticalPath(this.enableCriticalPath);
|
|
13574
14200
|
let criticalModule = this.criticalPathModule;
|
|
@@ -14115,7 +14741,7 @@ let Gantt = class Gantt extends Component {
|
|
|
14115
14741
|
thWidth = thElements[n].style.width;
|
|
14116
14742
|
const divElement = createElement('div', {
|
|
14117
14743
|
className: 'e-line-container-cell',
|
|
14118
|
-
styles: 'left:' + leftPos + 'px'
|
|
14744
|
+
styles: (this.enableRtl ? 'right:' + (leftPos + 1) : 'left:' + leftPos) + 'px'
|
|
14119
14745
|
});
|
|
14120
14746
|
containerDiv.appendChild(divElement);
|
|
14121
14747
|
}
|
|
@@ -14250,12 +14876,18 @@ let Gantt = class Gantt extends Component {
|
|
|
14250
14876
|
}
|
|
14251
14877
|
/**
|
|
14252
14878
|
*
|
|
14253
|
-
* @param {object} args .
|
|
14879
|
+
* @param {object} args -Defines the edited event args.
|
|
14254
14880
|
* @returns {void} .
|
|
14255
14881
|
* @private
|
|
14256
14882
|
*/
|
|
14257
14883
|
actionBeginTask(args) {
|
|
14258
14884
|
this.trigger('actionBegin', args);
|
|
14885
|
+
if (!isNullOrUndefined(this.loadingIndicator) && this.loadingIndicator.indicatorType === "Shimmer") {
|
|
14886
|
+
this.showMaskRow();
|
|
14887
|
+
}
|
|
14888
|
+
else {
|
|
14889
|
+
this.showSpinner();
|
|
14890
|
+
}
|
|
14259
14891
|
}
|
|
14260
14892
|
/**
|
|
14261
14893
|
* To move horizontal scroll bar of Gantt to specific date.
|
|
@@ -14291,7 +14923,7 @@ let Gantt = class Gantt extends Component {
|
|
|
14291
14923
|
if (!isNullOrUndefined(left)) {
|
|
14292
14924
|
left = this.ganttChartModule.scrollElement.scrollWidth <= left ?
|
|
14293
14925
|
this.ganttChartModule.scrollElement.scrollWidth : left;
|
|
14294
|
-
this.ganttChartModule.scrollObject.setScrollLeft(left);
|
|
14926
|
+
this.ganttChartModule.scrollObject.setScrollLeft(left, this.enableRtl ? -1 : 0);
|
|
14295
14927
|
}
|
|
14296
14928
|
if (!isNullOrUndefined(top)) {
|
|
14297
14929
|
top = this.ganttChartModule.scrollElement.scrollHeight <= top ? this.ganttChartModule.scrollElement.scrollHeight : top;
|
|
@@ -14324,8 +14956,8 @@ let Gantt = class Gantt extends Component {
|
|
|
14324
14956
|
/**
|
|
14325
14957
|
* Get parent task by clone parent item.
|
|
14326
14958
|
*
|
|
14327
|
-
* @param {IGanttData} ganttRecord .
|
|
14328
|
-
* @param {number} level .
|
|
14959
|
+
* @param {IGanttData} ganttRecord -Defines the Gantt record.
|
|
14960
|
+
* @param {number} level -Defines the selected record level.
|
|
14329
14961
|
* @returns {IGanttData} .
|
|
14330
14962
|
* @hidden
|
|
14331
14963
|
*/
|
|
@@ -14438,7 +15070,7 @@ let Gantt = class Gantt extends Component {
|
|
|
14438
15070
|
/**
|
|
14439
15071
|
* To update timeline at start point with one unit.
|
|
14440
15072
|
*
|
|
14441
|
-
* @param {string} mode .
|
|
15073
|
+
* @param {string} mode - Render previous span of Timeline.
|
|
14442
15074
|
* @returns {void} .
|
|
14443
15075
|
* @public
|
|
14444
15076
|
*/
|
|
@@ -14448,7 +15080,7 @@ let Gantt = class Gantt extends Component {
|
|
|
14448
15080
|
/**
|
|
14449
15081
|
* To update timeline at end point with one unit.
|
|
14450
15082
|
*
|
|
14451
|
-
* @param {string} mode .
|
|
15083
|
+
* @param {string} mode - Render next span of Timeline.
|
|
14452
15084
|
* @returns {void} .
|
|
14453
15085
|
* @public
|
|
14454
15086
|
*/
|
|
@@ -14522,7 +15154,7 @@ let Gantt = class Gantt extends Component {
|
|
|
14522
15154
|
/**
|
|
14523
15155
|
* Method to clear edited collections in gantt set edit flag value
|
|
14524
15156
|
*
|
|
14525
|
-
* @param {boolean} isStart .
|
|
15157
|
+
* @param {boolean} isStart -Defines whether to initiate edit action.
|
|
14526
15158
|
* @returns {void} .
|
|
14527
15159
|
* @private
|
|
14528
15160
|
*/
|
|
@@ -14541,18 +15173,24 @@ let Gantt = class Gantt extends Component {
|
|
|
14541
15173
|
*/
|
|
14542
15174
|
/* eslint-disable-next-line */
|
|
14543
15175
|
setRecordValue(field, value, record, isTaskData) {
|
|
15176
|
+
value = isUndefined(value) ? null : value;
|
|
14544
15177
|
if (this.isOnEdit || this.isOnDelete) {
|
|
14545
15178
|
this.makeCloneData(field, record, isTaskData);
|
|
14546
|
-
const
|
|
15179
|
+
const ganttData = isTaskData ? record : record.ganttProperties;
|
|
15180
|
+
const id = ganttData.rowUniqueID;
|
|
14547
15181
|
const task = this.getRecordByID(id);
|
|
14548
|
-
|
|
15182
|
+
let isValid = false;
|
|
15183
|
+
if (isNullOrUndefined(value) || (!isNullOrUndefined(value) && !isNullOrUndefined(ganttData[field]) && (value instanceof Date ? value.getTime() !==
|
|
15184
|
+
ganttData[field].getTime() : ganttData[field] !== value))) {
|
|
15185
|
+
isValid = true;
|
|
15186
|
+
}
|
|
15187
|
+
if (task && ((this.editedRecords.indexOf(task) === -1 && isValid) || this.editedRecords.length === 0)) {
|
|
14549
15188
|
this.editedRecords.push(task);
|
|
14550
15189
|
if (this.enableImmutableMode) {
|
|
14551
15190
|
this.modifiedRecords.push(task);
|
|
14552
15191
|
}
|
|
14553
15192
|
}
|
|
14554
15193
|
}
|
|
14555
|
-
value = isUndefined(value) ? null : value;
|
|
14556
15194
|
setValue(field, value, record);
|
|
14557
15195
|
}
|
|
14558
15196
|
makeCloneData(field, record, isTaskData) {
|
|
@@ -14795,8 +15433,8 @@ let Gantt = class Gantt extends Component {
|
|
|
14795
15433
|
/**
|
|
14796
15434
|
* To update existing taskId with new unique Id.
|
|
14797
15435
|
*
|
|
14798
|
-
* @param {number | string} currentId .
|
|
14799
|
-
* @param {number | string} newId .
|
|
15436
|
+
* @param {number | string} currentId - Defines the current Id of the record.
|
|
15437
|
+
* @param {number | string} newId - Defines the new Id of the record.
|
|
14800
15438
|
* @returns {void} .
|
|
14801
15439
|
*/
|
|
14802
15440
|
updateTaskId(currentId, newId) {
|
|
@@ -14898,9 +15536,9 @@ let Gantt = class Gantt extends Component {
|
|
|
14898
15536
|
/**
|
|
14899
15537
|
* Reorder the rows based on given indexes and position
|
|
14900
15538
|
*
|
|
14901
|
-
* @param {number[]} fromIndexes .
|
|
14902
|
-
* @param {number} toIndex .
|
|
14903
|
-
* @param {string} position .
|
|
15539
|
+
* @param {number[]} fromIndexes - Defines the Dragged record index.
|
|
15540
|
+
* @param {number} toIndex - Defines the Dropped record index.
|
|
15541
|
+
* @param {string} position -Defines the position of the dropped row.
|
|
14904
15542
|
* @returns {void} .
|
|
14905
15543
|
*/
|
|
14906
15544
|
reorderRows(fromIndexes, toIndex, position) {
|
|
@@ -15075,7 +15713,7 @@ let Gantt = class Gantt extends Component {
|
|
|
15075
15713
|
/**
|
|
15076
15714
|
* Method to get class name for unscheduled tasks
|
|
15077
15715
|
*
|
|
15078
|
-
* @param {ITaskData} ganttProp .
|
|
15716
|
+
* @param {ITaskData} ganttProp -Defines the Gantt propertie.
|
|
15079
15717
|
* @returns {boolean} .
|
|
15080
15718
|
* @private
|
|
15081
15719
|
*/
|
|
@@ -15149,7 +15787,7 @@ let Gantt = class Gantt extends Component {
|
|
|
15149
15787
|
const clientTop = document.documentElement.clientTop || document.body.clientTop || 0;
|
|
15150
15788
|
const clientLeft = document.documentElement.clientLeft || document.body.clientLeft || 0;
|
|
15151
15789
|
const top = box.top + scrollTop - clientTop;
|
|
15152
|
-
const left = box.left + scrollLeft - clientLeft;
|
|
15790
|
+
const left = this.enableRtl ? box.right + scrollLeft - clientLeft : box.left + scrollLeft - clientLeft;
|
|
15153
15791
|
return { top: Math.round(top), left: Math.round(left), width: box.width, height: box.height };
|
|
15154
15792
|
}
|
|
15155
15793
|
/**
|
|
@@ -15421,7 +16059,7 @@ let Gantt = class Gantt extends Component {
|
|
|
15421
16059
|
/**
|
|
15422
16060
|
* To change the mode of a record.
|
|
15423
16061
|
*
|
|
15424
|
-
* @param {object} data .
|
|
16062
|
+
* @param {object} data - Use to change the TaskMode either manual, auto or custom.
|
|
15425
16063
|
* @returns {void} .
|
|
15426
16064
|
*/
|
|
15427
16065
|
changeTaskMode(data) {
|
|
@@ -15493,6 +16131,12 @@ __decorate([
|
|
|
15493
16131
|
__decorate([
|
|
15494
16132
|
Property(true)
|
|
15495
16133
|
], Gantt.prototype, "disableHtmlEncode", void 0);
|
|
16134
|
+
__decorate([
|
|
16135
|
+
Complex({}, LoadingIndicator)
|
|
16136
|
+
], Gantt.prototype, "loadingIndicator", void 0);
|
|
16137
|
+
__decorate([
|
|
16138
|
+
Property(true)
|
|
16139
|
+
], Gantt.prototype, "enableVirtualMaskRow", void 0);
|
|
15496
16140
|
__decorate([
|
|
15497
16141
|
Property(true)
|
|
15498
16142
|
], Gantt.prototype, "autoFocusTasks", void 0);
|
|
@@ -16518,6 +17162,7 @@ class EditTooltip {
|
|
|
16518
17162
|
this.toolTipObj = new Tooltip({
|
|
16519
17163
|
opensOn: opensOn,
|
|
16520
17164
|
position: 'TopRight',
|
|
17165
|
+
enableRtl: this.parent.enableRtl,
|
|
16521
17166
|
mouseTrail: mouseTrail,
|
|
16522
17167
|
cssClass: ganttTooltip,
|
|
16523
17168
|
target: target ? target : null,
|
|
@@ -16567,12 +17212,15 @@ class EditTooltip {
|
|
|
16567
17212
|
this.parent.tooltipModule.toolTipObj.close();
|
|
16568
17213
|
this.updateTooltip(segmentIndex);
|
|
16569
17214
|
if (this.taskbarEdit.connectorSecondAction === 'ConnectorPointLeftDrag') {
|
|
17215
|
+
// eslint-disable-next-line security/detect-non-literal-fs-filename
|
|
16570
17216
|
this.toolTipObj.open(this.taskbarEdit.connectorSecondElement.querySelector('.' + connectorPointLeft));
|
|
16571
17217
|
}
|
|
16572
17218
|
else if (this.taskbarEdit.connectorSecondAction === 'ConnectorPointRightDrag') {
|
|
17219
|
+
// eslint-disable-next-line security/detect-non-literal-fs-filename
|
|
16573
17220
|
this.toolTipObj.open(this.taskbarEdit.connectorSecondElement.querySelector('.' + connectorPointRight));
|
|
16574
17221
|
}
|
|
16575
17222
|
else {
|
|
17223
|
+
// eslint-disable-next-line security/detect-non-literal-fs-filename
|
|
16576
17224
|
this.toolTipObj.open(this.taskbarEdit.taskBarEditElement);
|
|
16577
17225
|
}
|
|
16578
17226
|
}
|
|
@@ -16605,14 +17253,29 @@ class EditTooltip {
|
|
|
16605
17253
|
this.toolTipObj.content = this.getTooltipText(segmentIndex);
|
|
16606
17254
|
this.toolTipObj.refresh(this.taskbarEdit.taskBarEditElement);
|
|
16607
17255
|
if (this.taskbarEdit.taskBarEditAction === 'LeftResizing') {
|
|
16608
|
-
this.
|
|
17256
|
+
if (this.parent.enableRtl) {
|
|
17257
|
+
this.toolTipObj.offsetX = 0;
|
|
17258
|
+
}
|
|
17259
|
+
else {
|
|
17260
|
+
this.toolTipObj.offsetX = -taskWidth;
|
|
17261
|
+
}
|
|
16609
17262
|
}
|
|
16610
17263
|
else if (this.taskbarEdit.taskBarEditAction === 'RightResizing' ||
|
|
16611
17264
|
this.taskbarEdit.taskBarEditAction === 'ParentResizing') {
|
|
16612
|
-
this.
|
|
17265
|
+
if (this.parent.enableRtl) {
|
|
17266
|
+
this.toolTipObj.offsetX = -taskWidth;
|
|
17267
|
+
}
|
|
17268
|
+
else {
|
|
17269
|
+
this.toolTipObj.offsetX = 0;
|
|
17270
|
+
}
|
|
16613
17271
|
}
|
|
16614
17272
|
else if (this.taskbarEdit.taskBarEditAction === 'ProgressResizing') {
|
|
16615
|
-
this.
|
|
17273
|
+
if (this.parent.enableRtl) {
|
|
17274
|
+
this.toolTipObj.offsetX = -(progressWidth);
|
|
17275
|
+
}
|
|
17276
|
+
else {
|
|
17277
|
+
this.toolTipObj.offsetX = -(taskWidth - progressWidth);
|
|
17278
|
+
}
|
|
16616
17279
|
}
|
|
16617
17280
|
else if (this.taskbarEdit.taskBarEditAction === 'MilestoneDrag') {
|
|
16618
17281
|
this.toolTipObj.offsetX = -(this.parent.chartRowsModule.milestoneHeight / 2);
|
|
@@ -17118,8 +17781,14 @@ class TaskbarEdit extends DateProcessor {
|
|
|
17118
17781
|
const e = this.getCoordinate(event);
|
|
17119
17782
|
if (e.pageX || e.pageY) {
|
|
17120
17783
|
const containerPosition = this.parent.getOffsetRect(this.parent.ganttChartModule.chartBodyContainer);
|
|
17121
|
-
|
|
17122
|
-
this.
|
|
17784
|
+
if (this.parent.enableRtl) {
|
|
17785
|
+
this.mouseDownX = Math.abs(e.pageX - (containerPosition.left +
|
|
17786
|
+
Math.abs(this.parent.ganttChartModule.scrollObject.previousScroll.left)));
|
|
17787
|
+
}
|
|
17788
|
+
else {
|
|
17789
|
+
this.mouseDownX = (e.pageX - containerPosition.left) +
|
|
17790
|
+
this.parent.ganttChartModule.scrollObject.previousScroll.left;
|
|
17791
|
+
}
|
|
17123
17792
|
this.tooltipPositionX = this.mouseDownX;
|
|
17124
17793
|
this.mouseDownY = e.pageY - containerPosition.top +
|
|
17125
17794
|
this.parent.ganttChartModule.scrollObject.previousScroll.top;
|
|
@@ -17163,8 +17832,14 @@ class TaskbarEdit extends DateProcessor {
|
|
|
17163
17832
|
}
|
|
17164
17833
|
const containerPosition = this.parent.getOffsetRect(this.parent.ganttChartModule.chartBodyContainer);
|
|
17165
17834
|
const e = this.getCoordinate(event);
|
|
17166
|
-
this.
|
|
17167
|
-
this.
|
|
17835
|
+
if (this.parent.enableRtl) {
|
|
17836
|
+
this.mouseMoveX = Math.abs(e.pageX - (containerPosition.left +
|
|
17837
|
+
Math.abs(this.parent.ganttChartModule.scrollObject.previousScroll.left)));
|
|
17838
|
+
}
|
|
17839
|
+
else {
|
|
17840
|
+
this.mouseMoveX = e.pageX - containerPosition.left +
|
|
17841
|
+
this.parent.ganttChartModule.scrollObject.previousScroll.left;
|
|
17842
|
+
}
|
|
17168
17843
|
this.mouseMoveY = e.pageY - containerPosition.top +
|
|
17169
17844
|
this.parent.ganttChartModule.scrollObject.previousScroll.top;
|
|
17170
17845
|
this.dragMouseLeave = false;
|
|
@@ -17180,6 +17855,17 @@ class TaskbarEdit extends DateProcessor {
|
|
|
17180
17855
|
args.requestType = 'mergeSegment';
|
|
17181
17856
|
}
|
|
17182
17857
|
this.parent.trigger('actionBegin', args, (arg) => {
|
|
17858
|
+
if (args.taskBarEditAction === "ConnectorPointRightDrag" || args.taskBarEditAction === "ConnectorPointLeftDrag"
|
|
17859
|
+
|| args.taskBarEditAction === "LeftResizing" || args.taskBarEditAction === "RightResizing"
|
|
17860
|
+
|| args.taskBarEditAction === "ProgressResizing" || args.taskBarEditAction === "ChildDrag" || args.taskBarEditAction === "ParentDrag" || args.taskBarEditAction === "MilestoneDrag" || args.taskBarEditAction === "ManualParentDrag") {
|
|
17861
|
+
this.parent.showIndicator = false;
|
|
17862
|
+
}
|
|
17863
|
+
if (!isNullOrUndefined(this.parent.loadingIndicator) && this.parent.loadingIndicator.indicatorType === "Shimmer" && this.parent.showIndicator) {
|
|
17864
|
+
this.parent.showMaskRow();
|
|
17865
|
+
}
|
|
17866
|
+
else if (this.parent.showIndicator) {
|
|
17867
|
+
this.parent.showSpinner();
|
|
17868
|
+
}
|
|
17183
17869
|
if (arg.cancel === false) {
|
|
17184
17870
|
this.taskBarEditingAction(event, false);
|
|
17185
17871
|
}
|
|
@@ -17261,8 +17947,14 @@ class TaskbarEdit extends DateProcessor {
|
|
|
17261
17947
|
const containerPosition = this.parent.getOffsetRect(this.parent.ganttChartModule.chartBodyContainer);
|
|
17262
17948
|
const e = this.getCoordinate(event);
|
|
17263
17949
|
if (e.pageX || e.pageY) {
|
|
17264
|
-
this.
|
|
17265
|
-
this.
|
|
17950
|
+
if (this.parent.enableRtl) {
|
|
17951
|
+
this.mouseMoveX = Math.abs(e.pageX - (containerPosition.left +
|
|
17952
|
+
Math.abs(this.parent.ganttChartModule.scrollObject.previousScroll.left)));
|
|
17953
|
+
}
|
|
17954
|
+
else {
|
|
17955
|
+
this.mouseMoveX = e.pageX - containerPosition.left +
|
|
17956
|
+
this.parent.ganttChartModule.scrollObject.previousScroll.left;
|
|
17957
|
+
}
|
|
17266
17958
|
this.tooltipPositionX = this.mouseMoveX;
|
|
17267
17959
|
this.mouseMoveY = e.pageY - containerPosition.top +
|
|
17268
17960
|
this.parent.ganttChartModule.scrollObject.previousScroll.top;
|
|
@@ -17273,8 +17965,15 @@ class TaskbarEdit extends DateProcessor {
|
|
|
17273
17965
|
if ((this.taskBarEditRecord.ganttProperties.width > 3 && !(this.taskBarEditAction === 'ProgressResizing' &&
|
|
17274
17966
|
(this.taskBarEditRecord.ganttProperties.progress === 0 || this.taskBarEditRecord.ganttProperties.progress === 100))) ||
|
|
17275
17967
|
isConnectorLineEdit) {
|
|
17276
|
-
|
|
17277
|
-
|
|
17968
|
+
let mouseX = 0;
|
|
17969
|
+
if (this.parent.enableRtl) {
|
|
17970
|
+
mouseX = Math.abs(Math.abs(this.mouseMoveX) - Math.abs(this.parent.ganttChartModule.scrollObject.previousScroll.left) +
|
|
17971
|
+
containerPosition.left);
|
|
17972
|
+
}
|
|
17973
|
+
else {
|
|
17974
|
+
mouseX = this.mouseMoveX - this.parent.ganttChartModule.scrollObject.previousScroll.left +
|
|
17975
|
+
containerPosition.left;
|
|
17976
|
+
}
|
|
17278
17977
|
const mouseY = this.mouseMoveY - this.parent.ganttChartModule.scrollObject.previousScroll.top +
|
|
17279
17978
|
containerPosition.top;
|
|
17280
17979
|
if ((mouseX + 20) >
|
|
@@ -17282,6 +17981,12 @@ class TaskbarEdit extends DateProcessor {
|
|
|
17282
17981
|
this.timerCount = this.parent.ganttChartModule.scrollObject.previousScroll.left;
|
|
17283
17982
|
this.startScrollTimer('right');
|
|
17284
17983
|
}
|
|
17984
|
+
else if ((mouseX + 40) >
|
|
17985
|
+
containerPosition.left + this.parent.ganttChartModule.chartBodyContainer.offsetWidth && this.parent.enableRtl && this.parent.ganttChartModule.scrollObject.previousScroll.left == 0) {
|
|
17986
|
+
this.parent.ganttChartModule.scrollObject.previousScroll.left = -1;
|
|
17987
|
+
this.timerCount = this.parent.ganttChartModule.scrollObject.previousScroll.left;
|
|
17988
|
+
this.startScrollTimer('right');
|
|
17989
|
+
}
|
|
17285
17990
|
else if ((mouseX - 20) < containerPosition.left) {
|
|
17286
17991
|
this.timerCount = this.parent.ganttChartModule.scrollObject.previousScroll.left;
|
|
17287
17992
|
this.startScrollTimer('left');
|
|
@@ -17312,7 +18017,12 @@ class TaskbarEdit extends DateProcessor {
|
|
|
17312
18017
|
*/
|
|
17313
18018
|
startScrollTimer(direction) {
|
|
17314
18019
|
this.stopScrollTimer();
|
|
18020
|
+
let leftSign = 0;
|
|
17315
18021
|
this.scrollTimer = window.setInterval(() => {
|
|
18022
|
+
if (Math.sign(this.timerCount) == -1) {
|
|
18023
|
+
leftSign = -1;
|
|
18024
|
+
this.timerCount = Math.abs(this.timerCount);
|
|
18025
|
+
}
|
|
17316
18026
|
if (direction === 'right') {
|
|
17317
18027
|
this.timerCount = (this.timerCount + 1) >= this.parent.timelineModule.totalTimelineWidth ?
|
|
17318
18028
|
this.parent.timelineModule.totalTimelineWidth : (this.timerCount + 1);
|
|
@@ -17327,7 +18037,7 @@ class TaskbarEdit extends DateProcessor {
|
|
|
17327
18037
|
this.parent.ganttChartModule.scrollObject.setScrollTop(this.timerCount);
|
|
17328
18038
|
}
|
|
17329
18039
|
else {
|
|
17330
|
-
this.parent.ganttChartModule.scrollObject.setScrollLeft(this.timerCount);
|
|
18040
|
+
this.parent.ganttChartModule.scrollObject.setScrollLeft(this.timerCount, leftSign);
|
|
17331
18041
|
}
|
|
17332
18042
|
if (this.taskBarEditAction === 'ConnectorPointLeftDrag'
|
|
17333
18043
|
|| this.taskBarEditAction === 'ConnectorPointRightDrag') {
|
|
@@ -18023,6 +18733,7 @@ class TaskbarEdit extends DateProcessor {
|
|
|
18023
18733
|
*/
|
|
18024
18734
|
setItemPosition() {
|
|
18025
18735
|
const item = this.taskBarEditRecord.ganttProperties;
|
|
18736
|
+
let position = this.parent.enableRtl ? "right" : "left";
|
|
18026
18737
|
const segment = !isNullOrUndefined(item.segments) ? item.segments[this.segmentIndex] : null;
|
|
18027
18738
|
const width = this.taskBarEditAction === 'MilestoneDrag' || item.isMilestone ?
|
|
18028
18739
|
this.parent.chartRowsModule.milestoneHeight : item.width;
|
|
@@ -18054,11 +18765,16 @@ class TaskbarEdit extends DateProcessor {
|
|
|
18054
18765
|
if (segmentedTaskBarContainer && !isNullOrUndefined(item.segments)
|
|
18055
18766
|
&& (this.taskBarEditAction === 'RightResizing' || this.segmentIndex !== 0)) {
|
|
18056
18767
|
this.taskBarEditElement.style.width = (segment.width) + 'px';
|
|
18057
|
-
this.
|
|
18768
|
+
if (this.parent.enableRtl) {
|
|
18769
|
+
this.taskBarEditElement.style.right = (segment.left) + 'px';
|
|
18770
|
+
}
|
|
18771
|
+
else {
|
|
18772
|
+
this.taskBarEditElement.style.left = (segment.left) + 'px';
|
|
18773
|
+
}
|
|
18058
18774
|
}
|
|
18059
18775
|
taskBarMainContainer$$1.style.width = (width) + 'px';
|
|
18060
|
-
taskBarMainContainer$$1.style.left = (item.left) + 'px';
|
|
18061
18776
|
leftLabelContainer$$1.style.width = (item.left) + 'px';
|
|
18777
|
+
taskBarMainContainer$$1.style.setProperty(position, (item.left) + 'px');
|
|
18062
18778
|
if (this.taskBarEditAction === 'LeftResizing' && this.segmentIndex === 0) {
|
|
18063
18779
|
const parent = this.taskBarEditElement.parentElement;
|
|
18064
18780
|
const segmentedTasks = parent.getElementsByClassName('e-segmented-taskbar');
|
|
@@ -18066,31 +18782,42 @@ class TaskbarEdit extends DateProcessor {
|
|
|
18066
18782
|
const segment = item.segments[i];
|
|
18067
18783
|
const segmentElement = segmentedTasks[i];
|
|
18068
18784
|
segmentElement.style.width = (segment.width) + 'px';
|
|
18069
|
-
|
|
18785
|
+
if (this.parent.enableRtl) {
|
|
18786
|
+
segmentElement.style.right = (segment.left) + 'px';
|
|
18787
|
+
}
|
|
18788
|
+
else {
|
|
18789
|
+
segmentElement.style.left = (segment.left) + 'px';
|
|
18790
|
+
}
|
|
18070
18791
|
}
|
|
18071
18792
|
}
|
|
18072
18793
|
if (!isNullOrUndefined(rightLabelContainer$$1)) {
|
|
18073
|
-
rightLabelContainer$$1.style.
|
|
18794
|
+
rightLabelContainer$$1.style.setProperty(position, (item.left + width) + 'px');
|
|
18074
18795
|
}
|
|
18075
18796
|
}
|
|
18076
18797
|
if (traceConnectorPointRight) {
|
|
18077
|
-
|
|
18798
|
+
if (this.parent.enableRtl) {
|
|
18799
|
+
traceConnectorPointRight.style.left = (this.parent.isAdaptive ? (width + 10) : (width - 2)) + 'px';
|
|
18800
|
+
}
|
|
18801
|
+
else {
|
|
18802
|
+
traceConnectorPointRight.style.left = (this.parent.isAdaptive ? (width + 10) : (width + 2)) + 'px';
|
|
18803
|
+
}
|
|
18078
18804
|
}
|
|
18079
18805
|
if (this.taskBarEditAction === 'MilestoneDrag' || item.isMilestone) {
|
|
18080
|
-
taskBarMainContainer$$1.style.
|
|
18806
|
+
taskBarMainContainer$$1.style.setProperty(position, (item.left - (width / 2)) + 'px');
|
|
18081
18807
|
leftLabelContainer$$1.style.width = (item.left - (width / 2)) + 'px';
|
|
18082
18808
|
if (!isNullOrUndefined(rightLabelContainer$$1)) {
|
|
18083
|
-
rightLabelContainer$$1.style.
|
|
18809
|
+
rightLabelContainer$$1.style.setProperty(position, (item.left + (width / 2)) + 'px');
|
|
18084
18810
|
}
|
|
18085
18811
|
}
|
|
18086
18812
|
else if (this.taskBarEditAction === 'ProgressResizing') {
|
|
18087
18813
|
if (this.segmentIndex === -1) {
|
|
18088
|
-
traceChildTaskBar$$1.style.
|
|
18814
|
+
traceChildTaskBar$$1.style.setProperty(position, (item.left + item.progressWidth - 10) + 'px');
|
|
18089
18815
|
if (!isNullOrUndefined(traceChildProgressBar$$1)) {
|
|
18090
18816
|
traceChildProgressBar$$1.style.width = item.progressWidth + 'px';
|
|
18091
18817
|
traceChildProgressBar$$1.style.borderBottomRightRadius = this.progressBorderRadius + 'px';
|
|
18092
18818
|
traceChildProgressBar$$1.style.borderTopRightRadius = this.progressBorderRadius + 'px';
|
|
18093
|
-
|
|
18819
|
+
const width = this.parent.enableRtl ? item.progressWidth + 8 : item.progressWidth - 8;
|
|
18820
|
+
childProgressResizer$$1.style.setProperty(position, width + 'px');
|
|
18094
18821
|
}
|
|
18095
18822
|
}
|
|
18096
18823
|
else {
|
|
@@ -18098,16 +18825,17 @@ class TaskbarEdit extends DateProcessor {
|
|
|
18098
18825
|
traceChildProgressBar$$1.style.width = item.segments[this.segmentIndex].progressWidth + 'px';
|
|
18099
18826
|
traceChildProgressBar$$1.style.borderBottomRightRadius = this.progressBorderRadius + 'px';
|
|
18100
18827
|
traceChildProgressBar$$1.style.borderTopRightRadius = this.progressBorderRadius + 'px';
|
|
18101
|
-
|
|
18828
|
+
const width = this.parent.enableRtl ? item.segments[this.segmentIndex].progressWidth + 8 : item.segments[this.segmentIndex].progressWidth - 8;
|
|
18829
|
+
childProgressResizer$$1.style.setProperty(position, width + 'px');
|
|
18102
18830
|
}
|
|
18103
18831
|
}
|
|
18104
18832
|
else if (this.taskBarEditAction === 'RightResizing' && !isNullOrUndefined(traceChildTaskBar$$1)) {
|
|
18105
18833
|
traceChildTaskBar$$1.style.width = (width) + 'px';
|
|
18106
18834
|
if (!isNullOrUndefined(traceChildProgressBar$$1)) {
|
|
18107
18835
|
traceChildProgressBar$$1.style.width = (item.progressWidth) + 'px';
|
|
18108
|
-
taskBarRightResizer$$1.style.
|
|
18836
|
+
taskBarRightResizer$$1.style.setProperty(position, rightResizer + 'px');
|
|
18109
18837
|
if (!isNullOrUndefined(childProgressResizer$$1)) {
|
|
18110
|
-
childProgressResizer$$1.style.
|
|
18838
|
+
childProgressResizer$$1.style.setProperty(position, item.progressWidth - 10 + 'px');
|
|
18111
18839
|
}
|
|
18112
18840
|
}
|
|
18113
18841
|
}
|
|
@@ -18121,27 +18849,27 @@ class TaskbarEdit extends DateProcessor {
|
|
|
18121
18849
|
}
|
|
18122
18850
|
else if (this.taskBarEditAction === 'ParentResizing') {
|
|
18123
18851
|
manualParentTaskbar.style.width = manualTaskbar.style.width = (item.width) + 'px';
|
|
18124
|
-
manualParentRight.style.
|
|
18852
|
+
manualParentRight.style.setProperty(position, item.width - manualParentLeft.offsetLeft + 'px');
|
|
18125
18853
|
}
|
|
18126
18854
|
else if (this.taskBarEditAction === 'ManualParentDrag') {
|
|
18127
|
-
manualParentTaskbar.style.
|
|
18855
|
+
manualParentTaskbar.style.setProperty(position, item.left - item.autoLeft + 'px');
|
|
18128
18856
|
}
|
|
18129
18857
|
else {
|
|
18130
18858
|
if (!isNullOrUndefined(traceChildTaskBar$$1) && !segmentedTaskBarContainer) {
|
|
18131
18859
|
traceChildTaskBar$$1.style.width = (width) + 'px';
|
|
18132
18860
|
}
|
|
18133
18861
|
if (!isNullOrUndefined(traceChildProgressBar$$1)) {
|
|
18134
|
-
taskBarRightResizer$$1.style.
|
|
18862
|
+
taskBarRightResizer$$1.style.setProperty(position, rightResizer + 'px');
|
|
18135
18863
|
traceChildProgressBar$$1.style.width = (item.progressWidth) + 'px';
|
|
18136
18864
|
if (!isNullOrUndefined(childProgressResizer$$1)) {
|
|
18137
|
-
childProgressResizer$$1.style.
|
|
18865
|
+
childProgressResizer$$1.style.setProperty(position, item.progressWidth - 10 + 'px');
|
|
18138
18866
|
}
|
|
18139
18867
|
}
|
|
18140
18868
|
if (segmentedTaskBarContainer) {
|
|
18141
|
-
taskBarRightResizer$$1.style.
|
|
18869
|
+
taskBarRightResizer$$1.style.setProperty(position, rightResizer + 'px');
|
|
18142
18870
|
traceChildProgressBar$$1.style.width = (segment.progressWidth) + 'px';
|
|
18143
18871
|
if (!isNullOrUndefined(childProgressResizer$$1)) {
|
|
18144
|
-
childProgressResizer$$1.style.
|
|
18872
|
+
childProgressResizer$$1.style.setProperty(position, segment.progressWidth - 10 + 'px');
|
|
18145
18873
|
}
|
|
18146
18874
|
}
|
|
18147
18875
|
}
|
|
@@ -18363,25 +19091,51 @@ class TaskbarEdit extends DateProcessor {
|
|
|
18363
19091
|
const y2 = this.mouseMoveY;
|
|
18364
19092
|
const length = Math.sqrt((x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2));
|
|
18365
19093
|
const angle = Math.atan2(y2 - y1, x2 - x1) * 180 / Math.PI;
|
|
18366
|
-
const transform = 'rotate(' + angle + 'deg)';
|
|
19094
|
+
const transform = 'rotate(' + (this.parent.enableRtl ? -angle : angle) + 'deg)';
|
|
18367
19095
|
let left;
|
|
19096
|
+
let width = 0;
|
|
19097
|
+
if (!isNullOrUndefined(document.querySelectorAll(".e-chart-row")[0])) {
|
|
19098
|
+
width = document.querySelectorAll(".e-chart-row")[0].offsetWidth;
|
|
19099
|
+
}
|
|
18368
19100
|
if (this.taskBarEditAction === 'ConnectorPointLeftDrag') {
|
|
18369
|
-
|
|
18370
|
-
this.parent.
|
|
19101
|
+
if (this.parent.enableRtl) {
|
|
19102
|
+
left = ((width - (this.elementOffsetLeft + (this.parent.chartRowsModule.connectorPointWidth / 2)))) -
|
|
19103
|
+
Math.abs(this.parent.ganttChartModule.scrollObject.previousScroll.left);
|
|
19104
|
+
}
|
|
19105
|
+
else {
|
|
19106
|
+
left = (this.elementOffsetLeft - (this.parent.chartRowsModule.connectorPointWidth / 2)) -
|
|
19107
|
+
this.parent.ganttChartModule.scrollObject.previousScroll.left;
|
|
19108
|
+
}
|
|
18371
19109
|
}
|
|
18372
19110
|
if (this.taskBarEditAction === 'ConnectorPointRightDrag') {
|
|
18373
|
-
|
|
18374
|
-
|
|
19111
|
+
if (this.parent.enableRtl) {
|
|
19112
|
+
left = (width - (this.elementOffsetLeft + this.elementOffsetWidth +
|
|
19113
|
+
(this.parent.chartRowsModule.connectorPointWidth / 2))) - Math.abs(this.parent.ganttChartModule.scrollObject.previousScroll.left);
|
|
19114
|
+
}
|
|
19115
|
+
else {
|
|
19116
|
+
left = (this.elementOffsetLeft + this.elementOffsetWidth) +
|
|
19117
|
+
(this.parent.chartRowsModule.connectorPointWidth / 2) - Math.abs(this.parent.ganttChartModule.scrollObject.previousScroll.left);
|
|
19118
|
+
}
|
|
18375
19119
|
}
|
|
18376
19120
|
const top = ((this.elementOffsetTop) + (this.elementOffsetHeight / 2) +
|
|
18377
19121
|
this.parent.ganttChartModule.chartBodyContainer.offsetTop) - this.parent.ganttChartModule.scrollObject.previousScroll.top;
|
|
18378
19122
|
this.removeFalseLine(false);
|
|
18379
19123
|
this.falseLine = createElement('div', {
|
|
18380
19124
|
className: falseLine, id: 'ganttfalseline' + this.parent.element.id,
|
|
18381
|
-
styles: '
|
|
19125
|
+
styles: 'position: absolute;transform:' + transform + ';' +
|
|
18382
19126
|
'border-top-width: 1px;border-top-style: dashed;z-index: 5;width:' + (length - 3) + 'px;' +
|
|
18383
|
-
'
|
|
19127
|
+
'top:' + top + 'px;'
|
|
18384
19128
|
});
|
|
19129
|
+
if (this.parent.enableRtl) {
|
|
19130
|
+
this.falseLine.style.left = 'auto';
|
|
19131
|
+
this.falseLine.style.right = left + 'px';
|
|
19132
|
+
this.falseLine.style.transformOrigin = '100% 0%';
|
|
19133
|
+
}
|
|
19134
|
+
else {
|
|
19135
|
+
this.falseLine.style.right = 'auto';
|
|
19136
|
+
this.falseLine.style.left = left + 'px';
|
|
19137
|
+
this.falseLine.style.transformOrigin = '0% 100%';
|
|
19138
|
+
}
|
|
18385
19139
|
this.parent.ganttChartModule.chartBodyContainer.appendChild(this.falseLine);
|
|
18386
19140
|
}
|
|
18387
19141
|
/**
|
|
@@ -18466,19 +19220,19 @@ class TaskbarEdit extends DateProcessor {
|
|
|
18466
19220
|
const element = target;
|
|
18467
19221
|
const uniqueId = this.parent.viewType === 'ResourceView' ? fromItem.taskId : fromItem.rowUniqueID;
|
|
18468
19222
|
if (this.taskBarEditAction === 'ConnectorPointLeftDrag') {
|
|
18469
|
-
predecessor = uniqueId + 'S';
|
|
19223
|
+
predecessor = uniqueId + (this.parent.enableRtl ? 'F' : 'S');
|
|
18470
19224
|
}
|
|
18471
19225
|
else if (this.taskBarEditAction === 'ConnectorPointRightDrag') {
|
|
18472
|
-
predecessor = uniqueId + 'F';
|
|
19226
|
+
predecessor = uniqueId + (this.parent.enableRtl ? 'S' : 'F');
|
|
18473
19227
|
}
|
|
18474
19228
|
if (this.connectorSecondAction) {
|
|
18475
19229
|
if (this.connectorSecondAction === 'ConnectorPointLeftDrag') {
|
|
18476
|
-
predecessor += 'S';
|
|
18477
|
-
currentTarget = 'start';
|
|
19230
|
+
predecessor += this.parent.enableRtl ? 'F' : 'S';
|
|
19231
|
+
currentTarget = this.parent.enableRtl ? 'finish' : 'start';
|
|
18478
19232
|
}
|
|
18479
19233
|
else if (this.connectorSecondAction === 'ConnectorPointRightDrag') {
|
|
18480
|
-
predecessor += 'F';
|
|
18481
|
-
currentTarget = 'finish';
|
|
19234
|
+
predecessor += this.parent.enableRtl ? 'S' : 'F';
|
|
19235
|
+
currentTarget = this.parent.enableRtl ? 'start' : 'finish';
|
|
18482
19236
|
}
|
|
18483
19237
|
}
|
|
18484
19238
|
if (isNullOrUndefined(toItem)) {
|
|
@@ -18502,6 +19256,12 @@ class TaskbarEdit extends DateProcessor {
|
|
|
18502
19256
|
args.isValidLink = isValidLink;
|
|
18503
19257
|
args.requestType = 'ValidateDependency';
|
|
18504
19258
|
this.parent.trigger('actionBegin', args);
|
|
19259
|
+
if (!isNullOrUndefined(this.parent.loadingIndicator) && this.parent.loadingIndicator.indicatorType === "Shimmer" && args.requestType != "ValidateDependency") {
|
|
19260
|
+
this.parent.showMaskRow();
|
|
19261
|
+
}
|
|
19262
|
+
else if (args.requestType != "ValidateDependency") {
|
|
19263
|
+
this.parent.showSpinner();
|
|
19264
|
+
}
|
|
18505
19265
|
args.isValidLink = !isValidLink && args.isValidLink ? false : args.isValidLink;
|
|
18506
19266
|
if (args.isValidLink) {
|
|
18507
19267
|
if (!this.editTooltip.toolTipObj && !this.parent.isAdaptive) {
|
|
@@ -18895,18 +19655,18 @@ class DialogEdit {
|
|
|
18895
19655
|
if (!isNullOrUndefined(taskId)) {
|
|
18896
19656
|
if (!isNullOrUndefined(taskId['ganttProperties'])) {
|
|
18897
19657
|
if (typeof taskId['ganttProperties']['taskId'] === 'string') {
|
|
18898
|
-
this.numericOrString =
|
|
19658
|
+
this.numericOrString = 'stringedit';
|
|
18899
19659
|
}
|
|
18900
19660
|
else {
|
|
18901
|
-
this.numericOrString =
|
|
19661
|
+
this.numericOrString = 'numericedit';
|
|
18902
19662
|
}
|
|
18903
19663
|
}
|
|
18904
19664
|
if (isNullOrUndefined(taskId['ganttProperties']) && !isNullOrUndefined(taskId)) {
|
|
18905
19665
|
if (isNaN(Number(taskId)) || this.parent.columnByField[this.parent.taskFields.id].editType === "stringedit") {
|
|
18906
|
-
this.numericOrString =
|
|
19666
|
+
this.numericOrString = 'stringedit';
|
|
18907
19667
|
}
|
|
18908
19668
|
else {
|
|
18909
|
-
this.numericOrString =
|
|
19669
|
+
this.numericOrString = 'numericedit';
|
|
18910
19670
|
}
|
|
18911
19671
|
}
|
|
18912
19672
|
}
|
|
@@ -18948,6 +19708,7 @@ class DialogEdit {
|
|
|
18948
19708
|
dialogModel.animationSettings = { effect: 'None' };
|
|
18949
19709
|
dialogModel.header = this.localeObj.getConstant(this.isEdit ? 'editDialogTitle' : 'addDialogTitle');
|
|
18950
19710
|
dialogModel.isModal = true;
|
|
19711
|
+
dialogModel.enableRtl = this.parent.enableRtl;
|
|
18951
19712
|
dialogModel.allowDragging = this.parent.isAdaptive ? false : true;
|
|
18952
19713
|
dialogModel.showCloseIcon = true;
|
|
18953
19714
|
const position = this.parent.isAdaptive ? { X: 'top', Y: 'left' } : { X: 'center', Y: 'center' };
|
|
@@ -18958,8 +19719,8 @@ class DialogEdit {
|
|
|
18958
19719
|
dialogModel.close = this.dialogClose.bind(this);
|
|
18959
19720
|
dialogModel.closeOnEscape = true;
|
|
18960
19721
|
dialogModel.beforeClose = function (args) {
|
|
18961
|
-
if (args.closedBy
|
|
18962
|
-
if (args.event.name
|
|
19722
|
+
if (args.closedBy === "escape") {
|
|
19723
|
+
if (args.event.name === "key-pressed" && args.event.target.nodeName === 'INPUT') {
|
|
18963
19724
|
args.cancel = true;
|
|
18964
19725
|
}
|
|
18965
19726
|
}
|
|
@@ -19129,6 +19890,7 @@ class DialogEdit {
|
|
|
19129
19890
|
const length = dialogSettings.length;
|
|
19130
19891
|
tabModel.items = tabItems;
|
|
19131
19892
|
tabModel.locale = this.parent.locale;
|
|
19893
|
+
tabModel.enableRtl = this.parent.enableRtl;
|
|
19132
19894
|
this.beforeOpenArgs.tabModel = tabModel;
|
|
19133
19895
|
let index = 0;
|
|
19134
19896
|
if (length > 0) {
|
|
@@ -19208,6 +19970,12 @@ class DialogEdit {
|
|
|
19208
19970
|
cancel: this.beforeOpenArgs.cancel
|
|
19209
19971
|
};
|
|
19210
19972
|
this.parent.trigger('actionBegin', this.beforeOpenArgs, (arg) => {
|
|
19973
|
+
if (!isNullOrUndefined(this.parent.loadingIndicator) && this.parent.loadingIndicator.indicatorType === "Shimmer") {
|
|
19974
|
+
this.parent.showMaskRow();
|
|
19975
|
+
}
|
|
19976
|
+
else {
|
|
19977
|
+
this.parent.showSpinner();
|
|
19978
|
+
}
|
|
19211
19979
|
this.renderTabItems();
|
|
19212
19980
|
if (!arg.cancel) {
|
|
19213
19981
|
tabModel.selected = this.tabSelectedEvent.bind(this);
|
|
@@ -19230,6 +19998,12 @@ class DialogEdit {
|
|
|
19230
19998
|
cancel: false
|
|
19231
19999
|
};
|
|
19232
20000
|
this.parent.trigger('actionComplete', actionCompleteArgs, (actionCompleteArg) => {
|
|
20001
|
+
if (!isNullOrUndefined(this.parent.loadingIndicator) && this.parent.loadingIndicator.indicatorType === "Shimmer") {
|
|
20002
|
+
this.parent.hideMaskRow();
|
|
20003
|
+
}
|
|
20004
|
+
else {
|
|
20005
|
+
this.parent.hideSpinner();
|
|
20006
|
+
}
|
|
19233
20007
|
if (actionCompleteArg.cancel) {
|
|
19234
20008
|
this.resetValues();
|
|
19235
20009
|
}
|
|
@@ -19312,7 +20086,8 @@ class DialogEdit {
|
|
|
19312
20086
|
{
|
|
19313
20087
|
const checkboxModel = {
|
|
19314
20088
|
label: column.headerText,
|
|
19315
|
-
locale: locale
|
|
20089
|
+
locale: locale,
|
|
20090
|
+
enableRtl: this.parent.enableRtl
|
|
19316
20091
|
};
|
|
19317
20092
|
fieldsModel[column.field] = checkboxModel;
|
|
19318
20093
|
break;
|
|
@@ -19321,6 +20096,7 @@ class DialogEdit {
|
|
|
19321
20096
|
case 'stringedit':
|
|
19322
20097
|
{
|
|
19323
20098
|
const textBox = common;
|
|
20099
|
+
textBox.enableRtl = this.parent.enableRtl;
|
|
19324
20100
|
if (column.field === ganttObj.columnMapping.duration || column.field === ganttObj.columnMapping.id || column.field === ganttObj.columnMapping.startDate ||
|
|
19325
20101
|
column.field === ganttObj.columnMapping.endDate) {
|
|
19326
20102
|
textBox.change = (args) => {
|
|
@@ -19333,6 +20109,7 @@ class DialogEdit {
|
|
|
19333
20109
|
case 'numericedit':
|
|
19334
20110
|
{
|
|
19335
20111
|
const numeric = common;
|
|
20112
|
+
numeric.enableRtl = this.parent.enableRtl;
|
|
19336
20113
|
if (taskSettings.progress === column.field) {
|
|
19337
20114
|
numeric.min = 0;
|
|
19338
20115
|
numeric.max = 100;
|
|
@@ -19349,6 +20126,7 @@ class DialogEdit {
|
|
|
19349
20126
|
{
|
|
19350
20127
|
const datePickerObj = common;
|
|
19351
20128
|
datePickerObj.format = this.parent.getDateFormat();
|
|
20129
|
+
datePickerObj.enableRtl = this.parent.enableRtl;
|
|
19352
20130
|
datePickerObj.strictMode = true;
|
|
19353
20131
|
datePickerObj.firstDayOfWeek = ganttObj.timelineModule.customTimelineSettings.weekStartDay;
|
|
19354
20132
|
if (column.field === ganttObj.columnMapping.startDate ||
|
|
@@ -19365,6 +20143,7 @@ class DialogEdit {
|
|
|
19365
20143
|
{
|
|
19366
20144
|
const dateTimePickerObj = common;
|
|
19367
20145
|
dateTimePickerObj.format = this.parent.getDateFormat();
|
|
20146
|
+
dateTimePickerObj.enableRtl = this.parent.enableRtl;
|
|
19368
20147
|
dateTimePickerObj.strictMode = true;
|
|
19369
20148
|
dateTimePickerObj.firstDayOfWeek = ganttObj.timelineModule.customTimelineSettings.weekStartDay;
|
|
19370
20149
|
if (column.field === ganttObj.columnMapping.startDate ||
|
|
@@ -19387,6 +20166,7 @@ class DialogEdit {
|
|
|
19387
20166
|
common[dataKey] = types;
|
|
19388
20167
|
common[fieldsKey] = { value: 'Value' };
|
|
19389
20168
|
const dropDownListObj = common;
|
|
20169
|
+
dropDownListObj.enableRtl = this.parent.enableRtl;
|
|
19390
20170
|
dropDownListObj.change = (args) => {
|
|
19391
20171
|
if (column.field === taskSettings.manual) {
|
|
19392
20172
|
this.editedRecord.ganttProperties.isAutoSchedule = !args.value;
|
|
@@ -19758,8 +20538,8 @@ class DialogEdit {
|
|
|
19758
20538
|
break;
|
|
19759
20539
|
case 'duration':
|
|
19760
20540
|
gridColumn = {
|
|
19761
|
-
field: fields[i], headerText: this.localeObj.getConstant(fields[i]), editType: 'stringedit',
|
|
19762
|
-
edit: {
|
|
20541
|
+
field: fields[i], headerText: this.localeObj.getConstant(fields[i]), editType: 'stringedit',
|
|
20542
|
+
width: '100px', edit: {
|
|
19763
20543
|
write: (args) => {
|
|
19764
20544
|
let inputTextModel;
|
|
19765
20545
|
if (!isNullOrUndefined(this.beforeOpenArgs[generalTabString])) {
|
|
@@ -19820,7 +20600,7 @@ class DialogEdit {
|
|
|
19820
20600
|
inputValue = dialog.querySelector('#' + ganttId + 'SegmentsTabContainer' + columnName)
|
|
19821
20601
|
.ej2_instances[0];
|
|
19822
20602
|
}
|
|
19823
|
-
if (inputValue.value.toString() !== tempValue.toString()) {
|
|
20603
|
+
if ((!isNullOrUndefined(inputValue.value)) && (inputValue.value.toString() !== tempValue.toString())) {
|
|
19824
20604
|
inputValue.value = tempValue;
|
|
19825
20605
|
inputValue.dataBind();
|
|
19826
20606
|
}
|
|
@@ -20154,7 +20934,7 @@ class DialogEdit {
|
|
|
20154
20934
|
break;
|
|
20155
20935
|
}
|
|
20156
20936
|
}
|
|
20157
|
-
if (typeof (stringOrNumber) ===
|
|
20937
|
+
if (typeof (stringOrNumber) === 'string') {
|
|
20158
20938
|
disabled = false;
|
|
20159
20939
|
}
|
|
20160
20940
|
else {
|
|
@@ -20169,7 +20949,7 @@ class DialogEdit {
|
|
|
20169
20949
|
}
|
|
20170
20950
|
if (this.editedRecord.hasChildRecords) {
|
|
20171
20951
|
if ((column.field === this.parent.taskFields.endDate && ((!isNullOrUndefined(this.editedRecord['isManual']) &&
|
|
20172
|
-
this.editedRecord['isManual']
|
|
20952
|
+
this.editedRecord['isManual'] === false) || this.parent.taskMode === 'Auto')) || column.field === this.parent.taskFields.duration ||
|
|
20173
20953
|
column.field === this.parent.taskFields.progress || column.field === this.parent.taskFields.work ||
|
|
20174
20954
|
column.field === this.parent.taskFields.type) {
|
|
20175
20955
|
disabled = true;
|
|
@@ -20224,6 +21004,7 @@ class DialogEdit {
|
|
|
20224
21004
|
dataSource: new DataManager(this.idCollection),
|
|
20225
21005
|
popupHeight: '180px',
|
|
20226
21006
|
allowCustom: false,
|
|
21007
|
+
enableRtl: this.parent.enableRtl,
|
|
20227
21008
|
fields: { value: 'text' },
|
|
20228
21009
|
value: args.rowData[field],
|
|
20229
21010
|
change: (arg) => {
|
|
@@ -20491,7 +21272,7 @@ class DialogEdit {
|
|
|
20491
21272
|
do {
|
|
20492
21273
|
if (currentFlatData.parentItem) {
|
|
20493
21274
|
currentFlatData = this.parent.flatData[this.parent.ids.indexOf(currentFlatData.parentItem.taskId)];
|
|
20494
|
-
if (currentFlatData.uniqueID
|
|
21275
|
+
if (currentFlatData.uniqueID === this.beforeOpenArgs.rowData['uniqueID']) {
|
|
20495
21276
|
this.isValidData = false;
|
|
20496
21277
|
break;
|
|
20497
21278
|
}
|
|
@@ -20743,7 +21524,9 @@ class DialogEdit {
|
|
|
20743
21524
|
}
|
|
20744
21525
|
}
|
|
20745
21526
|
if (this.isEdit) {
|
|
20746
|
-
|
|
21527
|
+
if (!isCustom) {
|
|
21528
|
+
this.updateScheduleProperties(this.editedRecord, this.rowData);
|
|
21529
|
+
}
|
|
20747
21530
|
ganttObj.editModule.validateUpdateValues(tasksData, this.rowData, true);
|
|
20748
21531
|
}
|
|
20749
21532
|
}
|
|
@@ -21398,6 +22181,7 @@ class ConnectorLineEdit {
|
|
|
21398
22181
|
const validationDialog = new Dialog({
|
|
21399
22182
|
header: 'Validate Editing',
|
|
21400
22183
|
isModal: true,
|
|
22184
|
+
enableRtl: this.parent.enableRtl,
|
|
21401
22185
|
visible: false,
|
|
21402
22186
|
width: '50%',
|
|
21403
22187
|
showCloseIcon: true,
|
|
@@ -21769,6 +22553,7 @@ class ConnectorLineEdit {
|
|
|
21769
22553
|
this.confirmPredecessorDialog = new Dialog({
|
|
21770
22554
|
width: '320px',
|
|
21771
22555
|
isModal: true,
|
|
22556
|
+
enableRtl: this.parent.enableRtl,
|
|
21772
22557
|
content: this.parent.localeObj.getConstant('confirmPredecessorDelete'),
|
|
21773
22558
|
buttons: [
|
|
21774
22559
|
{
|
|
@@ -21816,6 +22601,7 @@ class Edit$2 {
|
|
|
21816
22601
|
this.taskbarMoved = false;
|
|
21817
22602
|
this.predecessorUpdated = false;
|
|
21818
22603
|
this.isBreakLoop = false;
|
|
22604
|
+
this.isResourceTaskDeleted = false;
|
|
21819
22605
|
/**
|
|
21820
22606
|
* @private
|
|
21821
22607
|
*/
|
|
@@ -21890,6 +22676,7 @@ class Edit$2 {
|
|
|
21890
22676
|
const editParam = {
|
|
21891
22677
|
min: 0,
|
|
21892
22678
|
decimals: 0,
|
|
22679
|
+
enableRtl: this.parent.enableRtl,
|
|
21893
22680
|
validateDecimalOnType: true,
|
|
21894
22681
|
format: 'n0',
|
|
21895
22682
|
showSpinButton: false
|
|
@@ -21905,6 +22692,7 @@ class Edit$2 {
|
|
|
21905
22692
|
updateProgessColumnEditParams(column) {
|
|
21906
22693
|
const editParam = {
|
|
21907
22694
|
min: 0,
|
|
22695
|
+
enableRtl: this.parent.enableRtl,
|
|
21908
22696
|
decimals: 0,
|
|
21909
22697
|
validateDecimalOnType: true,
|
|
21910
22698
|
max: 100,
|
|
@@ -21962,6 +22750,7 @@ class Edit$2 {
|
|
|
21962
22750
|
editor = new MultiSelect({
|
|
21963
22751
|
dataSource: new DataManager(this.parent.resources),
|
|
21964
22752
|
fields: { text: resourceSettings.name, value: resourceSettings.id },
|
|
22753
|
+
enableRtl: this.parent.enableRtl,
|
|
21965
22754
|
mode: 'CheckBox',
|
|
21966
22755
|
showDropDownIcon: true,
|
|
21967
22756
|
popupHeight: '350px',
|
|
@@ -22022,6 +22811,7 @@ class Edit$2 {
|
|
|
22022
22811
|
this.parent.treeGridModule.currentEditRow = {};
|
|
22023
22812
|
editor = new DropDownList({
|
|
22024
22813
|
dataSource: new DataManager(types),
|
|
22814
|
+
enableRtl: this.parent.enableRtl,
|
|
22025
22815
|
fields: { value: 'Value' },
|
|
22026
22816
|
popupHeight: '350px',
|
|
22027
22817
|
value: getValue('taskType', args.rowData.ganttProperties)
|
|
@@ -22906,7 +23696,6 @@ class Edit$2 {
|
|
|
22906
23696
|
* @private
|
|
22907
23697
|
*/
|
|
22908
23698
|
initiateSaveAction(args) {
|
|
22909
|
-
this.parent.showSpinner();
|
|
22910
23699
|
let eventArgs = {};
|
|
22911
23700
|
eventArgs.requestType = 'beforeSave';
|
|
22912
23701
|
eventArgs.data = args.data;
|
|
@@ -22920,6 +23709,12 @@ class Edit$2 {
|
|
|
22920
23709
|
eventArgs.action = 'DrawConnectorLine';
|
|
22921
23710
|
}
|
|
22922
23711
|
this.parent.trigger('actionBegin', eventArgs, (eventArg) => {
|
|
23712
|
+
if (!isNullOrUndefined(this.parent.loadingIndicator) && this.parent.loadingIndicator.indicatorType === "Shimmer") {
|
|
23713
|
+
this.parent.showMaskRow();
|
|
23714
|
+
}
|
|
23715
|
+
else {
|
|
23716
|
+
this.parent.showSpinner();
|
|
23717
|
+
}
|
|
22923
23718
|
if (eventArg.cancel) {
|
|
22924
23719
|
this.reUpdatePreviousRecords();
|
|
22925
23720
|
this.parent.chartRowsModule.refreshRecords([args.data]);
|
|
@@ -22953,6 +23748,52 @@ class Edit$2 {
|
|
|
22953
23748
|
});
|
|
22954
23749
|
}
|
|
22955
23750
|
dmSuccess(e, args) {
|
|
23751
|
+
let eLength = e['length'];
|
|
23752
|
+
for (let i = 0; i < eLength; i++) {
|
|
23753
|
+
let rec = e[i];
|
|
23754
|
+
let _aLength = Object.keys(rec).length;
|
|
23755
|
+
for (let j = 0, _a = Object.keys(rec); j < _aLength; j++) {
|
|
23756
|
+
let key = _a[j];
|
|
23757
|
+
this.parent.editedRecords[i][key] = rec[key];
|
|
23758
|
+
this.parent.editedRecords[i].taskData[key] = rec[key];
|
|
23759
|
+
}
|
|
23760
|
+
if (this.parent.taskFields.id !== null) {
|
|
23761
|
+
this.parent.editedRecords[i].ganttProperties["taskId"] = rec[this.parent.taskFields.id];
|
|
23762
|
+
}
|
|
23763
|
+
if (this.parent.taskFields.name !== null) {
|
|
23764
|
+
this.parent.editedRecords[i].ganttProperties["taskName"] = rec[this.parent.taskFields.name];
|
|
23765
|
+
}
|
|
23766
|
+
if (this.parent.taskFields.startDate !== null) {
|
|
23767
|
+
this.parent.editedRecords[i].ganttProperties["startDate"] = rec[this.parent.taskFields.startDate];
|
|
23768
|
+
}
|
|
23769
|
+
if (this.parent.taskFields.endDate !== null) {
|
|
23770
|
+
this.parent.editedRecords[i].ganttProperties["endDate"] = rec[this.parent.taskFields.endDate];
|
|
23771
|
+
}
|
|
23772
|
+
if (this.parent.taskFields.duration !== null) {
|
|
23773
|
+
this.parent.editedRecords[i].ganttProperties["duration"] = parseInt(rec[this.parent.taskFields.duration]);
|
|
23774
|
+
}
|
|
23775
|
+
if (this.parent.taskFields.durationUnit !== null) {
|
|
23776
|
+
this.parent.editedRecords[i].ganttProperties["durationUnit"] = rec[this.parent.taskFields.durationUnit];
|
|
23777
|
+
}
|
|
23778
|
+
if (this.parent.taskFields.progress !== null) {
|
|
23779
|
+
this.parent.editedRecords[i].ganttProperties["progress"] = rec[this.parent.taskFields.progress];
|
|
23780
|
+
}
|
|
23781
|
+
if (this.parent.taskFields.dependency !== null) {
|
|
23782
|
+
this.parent.editedRecords[i].ganttProperties["dependency"] = rec[this.parent.taskFields.dependency];
|
|
23783
|
+
}
|
|
23784
|
+
if (this.parent.taskFields.parentID !== null) {
|
|
23785
|
+
this.parent.editedRecords[i].ganttProperties["parentID"] = rec[this.parent.taskFields.parentID];
|
|
23786
|
+
}
|
|
23787
|
+
if (this.parent.taskFields.baselineEndDate !== null) {
|
|
23788
|
+
this.parent.editedRecords[i].ganttProperties["baselineEndDate"] = rec[this.parent.taskFields.baselineEndDate];
|
|
23789
|
+
}
|
|
23790
|
+
if (this.parent.taskFields.baselineStartDate !== null) {
|
|
23791
|
+
this.parent.editedRecords[i].ganttProperties["baselineStartDate"] = rec[this.parent.taskFields.baselineStartDate];
|
|
23792
|
+
}
|
|
23793
|
+
if (this.parent.taskFields.resourceInfo !== null) {
|
|
23794
|
+
this.parent.editedRecords[i].ganttProperties["resources"] = rec[this.parent.taskFields.resourceInfo];
|
|
23795
|
+
}
|
|
23796
|
+
}
|
|
22956
23797
|
this.saveSuccess(args);
|
|
22957
23798
|
}
|
|
22958
23799
|
dmFailure(e, args) {
|
|
@@ -22971,7 +23812,7 @@ class Edit$2 {
|
|
|
22971
23812
|
const ids = data.ganttProperties.sharedTaskUniqueIds;
|
|
22972
23813
|
for (let i = 0; i < ids.length; i++) {
|
|
22973
23814
|
const editRecord = this.parent.flatData[this.parent.ids.indexOf(ids[i].toString())];
|
|
22974
|
-
if (editRecord.uniqueID !== data.uniqueID) {
|
|
23815
|
+
if (editRecord && editRecord.uniqueID !== data.uniqueID) {
|
|
22975
23816
|
this.updateGanttProperties(data, editRecord);
|
|
22976
23817
|
this.parent.setRecordValue('taskData', data.taskData, editRecord, true);
|
|
22977
23818
|
this.parent.dataOperation.updateTaskData(editRecord);
|
|
@@ -23045,6 +23886,12 @@ class Edit$2 {
|
|
|
23045
23886
|
criticalModule.criticalConnectorLine(criticalModule.criticalPathCollection, criticalModule.detailPredecessorCollection, true, criticalModule.predecessorCollectionTaskIds);
|
|
23046
23887
|
}
|
|
23047
23888
|
this.parent.trigger('actionComplete', eventArgs);
|
|
23889
|
+
if (!isNullOrUndefined(this.parent.loadingIndicator) && this.parent.loadingIndicator.indicatorType === "Shimmer") {
|
|
23890
|
+
this.parent.hideMaskRow();
|
|
23891
|
+
}
|
|
23892
|
+
else {
|
|
23893
|
+
this.parent.hideSpinner();
|
|
23894
|
+
}
|
|
23048
23895
|
}
|
|
23049
23896
|
else {
|
|
23050
23897
|
this.taskbarEditModule.dependencyCancel = false;
|
|
@@ -23066,12 +23913,12 @@ class Edit$2 {
|
|
|
23066
23913
|
for (let index = 0; index < currentLength; index++) {
|
|
23067
23914
|
const recordIndex = [];
|
|
23068
23915
|
let resourceID = parseInt(currentResource[index][this.parent.resourceFields.id], 10).toString();
|
|
23069
|
-
if (resourceID ===
|
|
23916
|
+
if (resourceID === 'NaN') {
|
|
23070
23917
|
resourceID = currentResource[index][this.parent.resourceFields.id];
|
|
23071
23918
|
}
|
|
23072
23919
|
for (let i = 0; i < prevResource.length; i++) {
|
|
23073
23920
|
let prevResourceID = parseInt(prevResource[i][this.parent.resourceFields.id], 10).toString();
|
|
23074
|
-
if (prevResourceID ===
|
|
23921
|
+
if (prevResourceID === 'NaN') {
|
|
23075
23922
|
prevResourceID = prevResource[i][this.parent.resourceFields.id];
|
|
23076
23923
|
}
|
|
23077
23924
|
if (prevResourceID === resourceID) {
|
|
@@ -23132,12 +23979,6 @@ class Edit$2 {
|
|
|
23132
23979
|
}
|
|
23133
23980
|
if (!isNullOrUndefined(unassignedTasks)) {
|
|
23134
23981
|
this.addNewRecord(updateRecord, unassignedTasks);
|
|
23135
|
-
const updatedData = this.parent.currentViewData.filter((data) => {
|
|
23136
|
-
return (data.ganttProperties.taskId === updateRecord.ganttProperties.taskId &&
|
|
23137
|
-
(data.hasChildRecords === updateRecord.hasChildRecords));
|
|
23138
|
-
})[0];
|
|
23139
|
-
updateRecord.parentItem = updatedData.parentItem;
|
|
23140
|
-
updateRecord.parentUniqueID = updatedData.parentUniqueID;
|
|
23141
23982
|
}
|
|
23142
23983
|
else {
|
|
23143
23984
|
// Block for create the unassigned task.
|
|
@@ -23152,6 +23993,12 @@ class Edit$2 {
|
|
|
23152
23993
|
const parentRecord = this.parent.flatData[this.parent.flatData.length - 1];
|
|
23153
23994
|
this.addNewRecord(updateRecord, parentRecord);
|
|
23154
23995
|
}
|
|
23996
|
+
const updatedData = this.parent.currentViewData.filter((data) => {
|
|
23997
|
+
return (data.ganttProperties.taskId === updateRecord.ganttProperties.taskId &&
|
|
23998
|
+
(data.hasChildRecords === updateRecord.hasChildRecords));
|
|
23999
|
+
})[0];
|
|
24000
|
+
updateRecord.parentItem = updatedData.parentItem;
|
|
24001
|
+
updateRecord.parentUniqueID = updatedData.parentUniqueID;
|
|
23155
24002
|
}
|
|
23156
24003
|
addRecordAsBottom(cAddedRecord) {
|
|
23157
24004
|
const recordIndex1 = this.parent.flatData.length;
|
|
@@ -23358,6 +24205,7 @@ class Edit$2 {
|
|
|
23358
24205
|
width: '320px',
|
|
23359
24206
|
isModal: true,
|
|
23360
24207
|
visible: false,
|
|
24208
|
+
enableRtl: this.parent.enableRtl,
|
|
23361
24209
|
content: this.parent.localeObj.getConstant('confirmDelete'),
|
|
23362
24210
|
buttons: [
|
|
23363
24211
|
{
|
|
@@ -23410,15 +24258,17 @@ class Edit$2 {
|
|
|
23410
24258
|
const deleteRecords = [];
|
|
23411
24259
|
for (let i = 0; i < selectedRecords.length; i++) {
|
|
23412
24260
|
if (selectedRecords[i].parentItem) {
|
|
23413
|
-
|
|
23414
|
-
|
|
23415
|
-
|
|
23416
|
-
|
|
23417
|
-
|
|
24261
|
+
if (selectedRecords[i].ganttProperties.sharedTaskUniqueIds.length === 1) {
|
|
24262
|
+
const data = selectedRecords[i];
|
|
24263
|
+
const ids = data.ganttProperties.sharedTaskUniqueIds;
|
|
24264
|
+
for (let j = 0; j < ids.length; j++) {
|
|
24265
|
+
if (this.parent.ids.indexOf(ids[j].toString()) !== -1) {
|
|
24266
|
+
deleteRecords.push(this.parent.flatData[this.parent.ids.indexOf(ids[j].toString())]);
|
|
24267
|
+
}
|
|
24268
|
+
}
|
|
24269
|
+
if (this.parent.ids.indexOf(data.ganttProperties.rowUniqueID) !== -1) {
|
|
24270
|
+
deleteRecords.push(this.parent.flatData[this.parent.ids.indexOf(data.ganttProperties.rowUniqueID)]);
|
|
23418
24271
|
}
|
|
23419
|
-
}
|
|
23420
|
-
if (this.parent.ids.indexOf(data.ganttProperties.rowUniqueID) !== -1) {
|
|
23421
|
-
deleteRecords.push(this.parent.flatData[this.parent.ids.indexOf(data.ganttProperties.rowUniqueID)]);
|
|
23422
24272
|
}
|
|
23423
24273
|
}
|
|
23424
24274
|
else {
|
|
@@ -23544,8 +24394,9 @@ class Edit$2 {
|
|
|
23544
24394
|
if (this.deletedTaskDetails.indexOf(deleteRecord) !== -1) {
|
|
23545
24395
|
continue;
|
|
23546
24396
|
}
|
|
24397
|
+
const parentTask = this.parent.getParentTask(deleteRecord.parentItem);
|
|
23547
24398
|
if (deleteRecord.parentItem) {
|
|
23548
|
-
const childRecord =
|
|
24399
|
+
const childRecord = parentTask.childRecords;
|
|
23549
24400
|
const filteredRecord = childRecord.length === 1 ?
|
|
23550
24401
|
childRecord : childRecord.filter((data) => {
|
|
23551
24402
|
return !data.isDelete;
|
|
@@ -23555,7 +24406,12 @@ class Edit$2 {
|
|
|
23555
24406
|
}
|
|
23556
24407
|
}
|
|
23557
24408
|
const predecessor = deleteRecord.ganttProperties.predecessor;
|
|
23558
|
-
|
|
24409
|
+
let canDeletePredecessor = true;
|
|
24410
|
+
if (this.parent.viewType === 'ResourceView' && parentTask && parentTask.ganttProperties.taskName !==
|
|
24411
|
+
this.parent.localeObj.getConstant('unassignedTask')) {
|
|
24412
|
+
canDeletePredecessor = false;
|
|
24413
|
+
}
|
|
24414
|
+
if (predecessor && predecessor.length && canDeletePredecessor) {
|
|
23559
24415
|
this.removePredecessorOnDelete(deleteRecord);
|
|
23560
24416
|
}
|
|
23561
24417
|
this.deletedTaskDetails.push(deleteRecord);
|
|
@@ -23704,7 +24560,13 @@ class Edit$2 {
|
|
|
23704
24560
|
continue;
|
|
23705
24561
|
}
|
|
23706
24562
|
const predecessor = childRecord.ganttProperties.predecessor;
|
|
23707
|
-
|
|
24563
|
+
let canDeletePredecessor = true;
|
|
24564
|
+
const parentTask = this.parent.getParentTask(childRecord.parentItem);
|
|
24565
|
+
if (this.parent.viewType === 'ResourceView' && parentTask && parentTask.ganttProperties.taskName !==
|
|
24566
|
+
this.parent.localeObj.getConstant('unassignedTask')) {
|
|
24567
|
+
canDeletePredecessor = false;
|
|
24568
|
+
}
|
|
24569
|
+
if (predecessor && predecessor.length && canDeletePredecessor) {
|
|
23708
24570
|
this.removePredecessorOnDelete(childRecord);
|
|
23709
24571
|
}
|
|
23710
24572
|
this.deletedTaskDetails.push(childRecord);
|
|
@@ -23755,6 +24617,12 @@ class Edit$2 {
|
|
|
23755
24617
|
eventArgs.modifiedRecords = args.updatedRecordCollection;
|
|
23756
24618
|
eventArgs.modifiedTaskData = getTaskData(args.updatedRecordCollection, null, null, this.parent);
|
|
23757
24619
|
this.parent.trigger('actionBegin', eventArgs, (eventArg) => {
|
|
24620
|
+
if (!isNullOrUndefined(this.parent.loadingIndicator) && this.parent.loadingIndicator.indicatorType === "Shimmer") {
|
|
24621
|
+
this.parent.showMaskRow();
|
|
24622
|
+
}
|
|
24623
|
+
else {
|
|
24624
|
+
this.parent.showSpinner();
|
|
24625
|
+
}
|
|
23758
24626
|
if (eventArg.cancel) {
|
|
23759
24627
|
const deleteRecords = this.deletedTaskDetails;
|
|
23760
24628
|
for (let d = 0; d < deleteRecords.length; d++) {
|
|
@@ -23833,6 +24701,14 @@ class Edit$2 {
|
|
|
23833
24701
|
this.parent.ids.splice(flatIndex, 1);
|
|
23834
24702
|
if (this.parent.viewType === 'ResourceView') {
|
|
23835
24703
|
this.parent.getTaskIds().splice(flatIndex, 1);
|
|
24704
|
+
this.isResourceTaskDeleted = true;
|
|
24705
|
+
if (!deleteRecord.hasChildRecords) {
|
|
24706
|
+
deleteRecord.ganttProperties.resourceInfo = null;
|
|
24707
|
+
delete deleteRecord.ganttProperties.resourceNames;
|
|
24708
|
+
deleteRecord[this.parent.taskFields.resourceInfo] = null;
|
|
24709
|
+
deleteRecord.ganttProperties.sharedTaskUniqueIds = [];
|
|
24710
|
+
delete deleteRecord.taskData[this.parent.taskFields.resourceInfo];
|
|
24711
|
+
}
|
|
23836
24712
|
}
|
|
23837
24713
|
}
|
|
23838
24714
|
if (deleteRecord.level === 0 && treeGridParentIndex !== -1) {
|
|
@@ -23881,9 +24757,12 @@ class Edit$2 {
|
|
|
23881
24757
|
const unassignedTask = this.parent.flatData.filter((data) => {
|
|
23882
24758
|
return data.ganttProperties.taskName === this.parent.localeObj.getConstant('unassignedTask');
|
|
23883
24759
|
})[0];
|
|
23884
|
-
|
|
23885
|
-
|
|
23886
|
-
|
|
24760
|
+
let isDuplicate = [];
|
|
24761
|
+
if (unassignedTask) {
|
|
24762
|
+
isDuplicate = unassignedTask.childRecords.filter((data) => {
|
|
24763
|
+
return data.ganttProperties.taskId === updateUnAssignedResources[i].ganttProperties.taskId;
|
|
24764
|
+
});
|
|
24765
|
+
}
|
|
23887
24766
|
const parentTask = this.parent.getParentTask(updateUnAssignedResources[i].parentItem);
|
|
23888
24767
|
if (parentTask && parentTask.ganttProperties.taskName !==
|
|
23889
24768
|
this.parent.localeObj.getConstant('unassignedTask') && isDuplicate.length === 0) {
|
|
@@ -23892,9 +24771,9 @@ class Edit$2 {
|
|
|
23892
24771
|
this.parent.dataOperation.updateParentItems(updateUnAssignedResources[i].parentItem);
|
|
23893
24772
|
}
|
|
23894
24773
|
}
|
|
23895
|
-
else if (!parentTask && isDuplicate.length === 0) {
|
|
24774
|
+
else if (!parentTask && (!isDuplicate || isDuplicate.length === 0)) {
|
|
23896
24775
|
this.checkWithUnassignedTask(updateUnAssignedResources[i]);
|
|
23897
|
-
if (updateUnAssignedResources[i].parentItem) {
|
|
24776
|
+
if (updateUnAssignedResources[i].parentItem && unassignedTask) {
|
|
23898
24777
|
this.parent.dataOperation.updateParentItems(updateUnAssignedResources[i].parentItem);
|
|
23899
24778
|
}
|
|
23900
24779
|
}
|
|
@@ -23903,7 +24782,12 @@ class Edit$2 {
|
|
|
23903
24782
|
this.parent.trigger('actionComplete', eventArgs);
|
|
23904
24783
|
this.deletedTaskDetails = [];
|
|
23905
24784
|
this.parent.initiateEditAction(false);
|
|
23906
|
-
this.parent.
|
|
24785
|
+
if (!isNullOrUndefined(this.parent.loadingIndicator) && this.parent.loadingIndicator.indicatorType === "Shimmer") {
|
|
24786
|
+
this.parent.hideMaskRow();
|
|
24787
|
+
}
|
|
24788
|
+
else {
|
|
24789
|
+
this.parent.hideSpinner();
|
|
24790
|
+
}
|
|
23907
24791
|
}
|
|
23908
24792
|
/**
|
|
23909
24793
|
*
|
|
@@ -24357,9 +25241,9 @@ class Edit$2 {
|
|
|
24357
25241
|
for (let i = 0; i < this.parent.modifiedRecords.length; i++) {
|
|
24358
25242
|
const originalData = this.parent.modifiedRecords[i];
|
|
24359
25243
|
let treeIndex = this.parent.allowRowDragAndDrop ? 1 : 0;
|
|
24360
|
-
|
|
24361
|
-
|
|
24362
|
-
return (data[uniqueTaskID]
|
|
25244
|
+
const uniqueTaskID = this.parent.taskFields.id;
|
|
25245
|
+
let originalIndex = this.parent.currentViewData.findIndex((data) => {
|
|
25246
|
+
return (data[uniqueTaskID] === originalData[uniqueTaskID]);
|
|
24363
25247
|
});
|
|
24364
25248
|
if (this.parent.treeGrid.getRows()[originalIndex]) {
|
|
24365
25249
|
this.parent.treeGrid.renderModule.cellRender({
|
|
@@ -24479,8 +25363,13 @@ class Edit$2 {
|
|
|
24479
25363
|
}
|
|
24480
25364
|
let args = {};
|
|
24481
25365
|
args = this.constructTaskAddedEventArgs(cAddedRecord, this.parent.editedRecords, 'beforeAdd');
|
|
24482
|
-
this.parent.showSpinner();
|
|
24483
25366
|
this.parent.trigger('actionBegin', args, (args) => {
|
|
25367
|
+
if (!isNullOrUndefined(this.parent.loadingIndicator) && this.parent.loadingIndicator.indicatorType === "Shimmer") {
|
|
25368
|
+
this.parent.showMaskRow();
|
|
25369
|
+
}
|
|
25370
|
+
else {
|
|
25371
|
+
this.parent.showSpinner();
|
|
25372
|
+
}
|
|
24484
25373
|
if (!isNullOrUndefined(args.data[tempTaskID])) {
|
|
24485
25374
|
if (args.data[tempTaskID] != args.data['ganttProperties']['taskId']) {
|
|
24486
25375
|
args.data['ganttProperties']['taskId'] = args.data[tempTaskID];
|
|
@@ -24684,7 +25573,7 @@ class Edit$2 {
|
|
|
24684
25573
|
switch (rowPosition) {
|
|
24685
25574
|
case 'Top':
|
|
24686
25575
|
case 'Bottom':
|
|
24687
|
-
if (this.parent.viewType ===
|
|
25576
|
+
if (this.parent.viewType === 'ResourceView') {
|
|
24688
25577
|
level = 1;
|
|
24689
25578
|
}
|
|
24690
25579
|
else {
|
|
@@ -24767,6 +25656,12 @@ class Edit$2 {
|
|
|
24767
25656
|
this.parent.dataOperation.updateWorkWithDuration(cAddedRecord[0]);
|
|
24768
25657
|
}
|
|
24769
25658
|
this.parent.trigger('actionComplete', args);
|
|
25659
|
+
if (!isNullOrUndefined(this.parent.loadingIndicator) && this.parent.loadingIndicator.indicatorType === "Shimmer") {
|
|
25660
|
+
this.parent.hideMaskRow();
|
|
25661
|
+
}
|
|
25662
|
+
else {
|
|
25663
|
+
this.parent.hideSpinner();
|
|
25664
|
+
}
|
|
24770
25665
|
if (this.dialogModule.dialog && !this.dialogModule.dialogObj.isDestroyed) {
|
|
24771
25666
|
this.dialogModule.dialogObj.hide();
|
|
24772
25667
|
}
|
|
@@ -24925,6 +25820,12 @@ class Edit$2 {
|
|
|
24925
25820
|
cancel: false
|
|
24926
25821
|
};
|
|
24927
25822
|
this.parent.trigger('actionBegin', actionArgs, (actionArg) => {
|
|
25823
|
+
if (!isNullOrUndefined(this.parent.loadingIndicator) && this.parent.loadingIndicator.indicatorType === "Shimmer") {
|
|
25824
|
+
this.parent.showMaskRow();
|
|
25825
|
+
}
|
|
25826
|
+
else {
|
|
25827
|
+
this.parent.showSpinner();
|
|
25828
|
+
}
|
|
24928
25829
|
if (!actionArg.cancel) {
|
|
24929
25830
|
this.reArrangeRows(args, isByMethod);
|
|
24930
25831
|
}
|
|
@@ -25096,6 +25997,12 @@ class Edit$2 {
|
|
|
25096
25997
|
}
|
|
25097
25998
|
}
|
|
25098
25999
|
this.parent.trigger('actionComplete', args);
|
|
26000
|
+
if (!isNullOrUndefined(this.parent.loadingIndicator) && this.parent.loadingIndicator.indicatorType === "Shimmer") {
|
|
26001
|
+
this.parent.hideMaskRow();
|
|
26002
|
+
}
|
|
26003
|
+
else {
|
|
26004
|
+
this.parent.hideSpinner();
|
|
26005
|
+
}
|
|
25099
26006
|
this.parent.editedRecords = [];
|
|
25100
26007
|
}
|
|
25101
26008
|
refreshDataSource() {
|
|
@@ -25607,6 +26514,7 @@ class Filter$1 {
|
|
|
25607
26514
|
const flValInput = createElement('input', { className: 'flm-input' });
|
|
25608
26515
|
args.target.appendChild(flValInput);
|
|
25609
26516
|
dropDateInstance = new DatePicker({ placeholder: this.parent.localeObj.getConstant('enterValue'), format: format });
|
|
26517
|
+
dropDateInstance.enableRtl = this.parent.enableRtl;
|
|
25610
26518
|
dropDateInstance.appendTo(flValInput);
|
|
25611
26519
|
},
|
|
25612
26520
|
write: (args) => {
|
|
@@ -25629,6 +26537,7 @@ class Filter$1 {
|
|
|
25629
26537
|
const flValInput = createElement('input', { className: 'flm-input' });
|
|
25630
26538
|
args.target.appendChild(flValInput);
|
|
25631
26539
|
dropInstance = new DateTimePicker({ placeholder: this.parent.localeObj.getConstant('enterValue'), format: format });
|
|
26540
|
+
dropInstance.enableRtl = this.parent.enableRtl;
|
|
25632
26541
|
dropInstance.appendTo(flValInput);
|
|
25633
26542
|
},
|
|
25634
26543
|
write: (args) => {
|
|
@@ -25650,6 +26559,7 @@ class Filter$1 {
|
|
|
25650
26559
|
flValInput.setAttribute('placeholder', this.parent.localeObj.getConstant('enterValue'));
|
|
25651
26560
|
args.target.appendChild(flValInput);
|
|
25652
26561
|
textBoxInstance = new TextBox();
|
|
26562
|
+
textBoxInstance.enableRtl = this.parent.enableRtl;
|
|
25653
26563
|
textBoxInstance.appendTo(flValInput);
|
|
25654
26564
|
},
|
|
25655
26565
|
write: (args) => {
|
|
@@ -26438,6 +27348,14 @@ class Toolbar$3 {
|
|
|
26438
27348
|
this.parent.localeObj.getConstant('tasks') : ''),
|
|
26439
27349
|
align: this.parent.isAdaptive ? 'Right' : 'Left'
|
|
26440
27350
|
};
|
|
27351
|
+
if (this.parent.enableRtl) {
|
|
27352
|
+
if (item === 'PrevTimeSpan') {
|
|
27353
|
+
this.predefinedItems[item].prefixIcon = 'e-nexttimespan';
|
|
27354
|
+
}
|
|
27355
|
+
if (item === 'NextTimeSpan') {
|
|
27356
|
+
this.predefinedItems[item].prefixIcon = 'e-prevtimespan';
|
|
27357
|
+
}
|
|
27358
|
+
}
|
|
26441
27359
|
}
|
|
26442
27360
|
const searchLocalText = this.parent.localeObj.getConstant('search');
|
|
26443
27361
|
if (this.parent.isAdaptive) {
|
|
@@ -26469,6 +27387,7 @@ class Toolbar$3 {
|
|
|
26469
27387
|
const items = this.getItems();
|
|
26470
27388
|
this.toolbar = new Toolbar$1({
|
|
26471
27389
|
items: items,
|
|
27390
|
+
enableRtl: this.parent.enableRtl,
|
|
26472
27391
|
clicked: this.toolbarClickHandler.bind(this),
|
|
26473
27392
|
height: this.parent.isAdaptive ? 48 : 'auto'
|
|
26474
27393
|
});
|
|
@@ -26487,6 +27406,7 @@ class Toolbar$3 {
|
|
|
26487
27406
|
this.searchElement = this.element.querySelector('#' + this.parent.element.id + '_searchbar');
|
|
26488
27407
|
const textObj = new TextBox({
|
|
26489
27408
|
placeholder: this.parent.localeObj.getConstant('search'),
|
|
27409
|
+
enableRtl: this.parent.enableRtl,
|
|
26490
27410
|
floatLabelType: 'Never',
|
|
26491
27411
|
showClearButton: true
|
|
26492
27412
|
});
|
|
@@ -26602,7 +27522,16 @@ class Toolbar$3 {
|
|
|
26602
27522
|
toolbarClickHandler(arg) {
|
|
26603
27523
|
const gObj = this.parent;
|
|
26604
27524
|
const gID = this.id;
|
|
27525
|
+
this.parent.isToolBarClick = false;
|
|
26605
27526
|
extend(arg, { cancel: false });
|
|
27527
|
+
if (arg.item['properties'].id === this.parent.element.id + "_pdfexport" || arg.item['properties'].id === this.parent.element.id + "_critical-path") {
|
|
27528
|
+
if (!isNullOrUndefined(this.parent.loadingIndicator) && this.parent.loadingIndicator.indicatorType === "Shimmer") {
|
|
27529
|
+
this.parent.showMaskRow();
|
|
27530
|
+
}
|
|
27531
|
+
else {
|
|
27532
|
+
this.parent.showSpinner();
|
|
27533
|
+
}
|
|
27534
|
+
}
|
|
26606
27535
|
gObj.trigger(toolbarClick, arg, (args) => {
|
|
26607
27536
|
if (args.cancel) {
|
|
26608
27537
|
return;
|
|
@@ -26804,7 +27733,8 @@ class Toolbar$3 {
|
|
|
26804
27733
|
else {
|
|
26805
27734
|
disableItems.push(gID + '_update', gID + '_cancel');
|
|
26806
27735
|
for (let t = 0; t < toolbarItems.length; t++) {
|
|
26807
|
-
if (enableItems.indexOf(toolbarItems[t].id) === -1 &&
|
|
27736
|
+
if (enableItems.indexOf(toolbarItems[t].id) === -1 &&
|
|
27737
|
+
disableItems.indexOf(toolbarItems[t].id) === -1) {
|
|
26808
27738
|
enableItems.push(toolbarItems[t].id);
|
|
26809
27739
|
}
|
|
26810
27740
|
}
|
|
@@ -26959,8 +27889,9 @@ class NonWorkingDay {
|
|
|
26959
27889
|
const width = (this.parent.holidays[i].from && this.parent.holidays[i].to) ?
|
|
26960
27890
|
this.parent.dataOperation.getTaskWidth(fromDate, toDate) : this.parent.perDayWidth;
|
|
26961
27891
|
const left = this.parent.dataOperation.getTaskLeft(fromDate, false);
|
|
27892
|
+
const align = this.parent.enableRtl ? `right:${left}px;` : `left:${left}px;`;
|
|
26962
27893
|
const holidayDiv = createElement('div', {
|
|
26963
|
-
className: holidayElement, styles:
|
|
27894
|
+
className: holidayElement, styles: `${align} width:${width}px; height:100%;`
|
|
26964
27895
|
});
|
|
26965
27896
|
const spanTop = (viewportHeight < height) ? viewportHeight / 2 : height / 2;
|
|
26966
27897
|
const spanElement = createElement('span', {
|
|
@@ -27029,8 +27960,9 @@ class NonWorkingDay {
|
|
|
27029
27960
|
this.weekendWidthUpdated = true;
|
|
27030
27961
|
}
|
|
27031
27962
|
}
|
|
27963
|
+
const align = this.parent.enableRtl ? `right:${left}px;` : `left:${left}px;`;
|
|
27032
27964
|
const weekendDiv = createElement('div', {
|
|
27033
|
-
className: weekend, styles:
|
|
27965
|
+
className: weekend, styles: `${align} width:${width}px;height:100%;`
|
|
27034
27966
|
});
|
|
27035
27967
|
container.appendChild(weekendDiv);
|
|
27036
27968
|
}
|
|
@@ -27102,7 +28034,7 @@ class EventMarker$1 {
|
|
|
27102
28034
|
this.eventMarkersContainer = createElement('div', {
|
|
27103
28035
|
className: eventMarkersContainer
|
|
27104
28036
|
});
|
|
27105
|
-
this.eventMarkersContainer.setAttribute(
|
|
28037
|
+
this.eventMarkersContainer.setAttribute('role', 'term');
|
|
27106
28038
|
this.parent.ganttChartModule.chartBodyContent.appendChild(this.eventMarkersContainer);
|
|
27107
28039
|
}
|
|
27108
28040
|
this.eventMarkersContainer.innerHTML = '';
|
|
@@ -27135,8 +28067,15 @@ class EventMarker$1 {
|
|
|
27135
28067
|
let rightArrow;
|
|
27136
28068
|
for (let i = 0; i < this.parent.eventMarkers.length; i++) {
|
|
27137
28069
|
left = this.parent.dataOperation.getTaskLeft(this.parent.dateValidationModule.getDateFromFormat(this.parent.eventMarkers[i].day, true), false);
|
|
28070
|
+
let align;
|
|
28071
|
+
if (this.parent.enableRtl) {
|
|
28072
|
+
align = `right:${left}px;`;
|
|
28073
|
+
}
|
|
28074
|
+
else {
|
|
28075
|
+
align = `left:${left}px;`;
|
|
28076
|
+
}
|
|
27138
28077
|
eventMarkerElement = createElement('div', {
|
|
27139
|
-
className: eventMarkersChild, styles:
|
|
28078
|
+
className: eventMarkersChild, styles: `${align} height:100%;`,
|
|
27140
28079
|
id: 'stripline' + i
|
|
27141
28080
|
});
|
|
27142
28081
|
if (this.parent.eventMarkers[i].label) {
|
|
@@ -27145,6 +28084,12 @@ class EventMarker$1 {
|
|
|
27145
28084
|
});
|
|
27146
28085
|
const property = this.parent.disableHtmlEncode ? 'textContent' : 'innerHTML';
|
|
27147
28086
|
spanElement[property] = this.parent.eventMarkers[i].label;
|
|
28087
|
+
if (this.parent.enableRtl) {
|
|
28088
|
+
spanElement.style.right = '5px';
|
|
28089
|
+
}
|
|
28090
|
+
else {
|
|
28091
|
+
spanElement.style.left = '5px';
|
|
28092
|
+
}
|
|
27148
28093
|
eventMarkerElement.appendChild(spanElement);
|
|
27149
28094
|
rightArrow = createElement('div', {
|
|
27150
28095
|
className: 'e-gantt-right-arrow'
|
|
@@ -27321,8 +28266,8 @@ class CriticalPath {
|
|
|
27321
28266
|
predecessorIndex = modelIds.indexOf(checkBeyondEnddate[k].toString());
|
|
27322
28267
|
}
|
|
27323
28268
|
else {
|
|
27324
|
-
|
|
27325
|
-
return parseInt(data.ganttProperties.taskId)
|
|
28269
|
+
const currentRecords = this.parent.currentViewData.filter((data) => {
|
|
28270
|
+
return parseInt(data.ganttProperties.taskId) === checkBeyondEnddate[k];
|
|
27326
28271
|
});
|
|
27327
28272
|
for (let i = 0; i < currentRecords.length; i++) {
|
|
27328
28273
|
if (!currentRecords[i].hasChildRecords && currentRecords[i].ganttProperties.endDate >= this.maxEndDate) {
|
|
@@ -27355,10 +28300,10 @@ class CriticalPath {
|
|
|
27355
28300
|
const individualPredecessorLength = totalPredecessorsCollection[x].ganttProperties.predecessor.length;
|
|
27356
28301
|
const taskid = ((totalPredecessorsCollection[x].ganttProperties.taskId));
|
|
27357
28302
|
for (let y = 0; y < individualPredecessorLength; y++) {
|
|
27358
|
-
if (!isNaN(Number(predecessor[y].from)) && typeof (taskid) !=
|
|
28303
|
+
if (!isNaN(Number(predecessor[y].from)) && typeof (taskid) != 'string') {
|
|
27359
28304
|
tempTaskId = parseInt((predecessor[y].from), 10);
|
|
27360
28305
|
}
|
|
27361
|
-
else if (!isNaN(Number(predecessor[y].from)) && typeof (taskid) ===
|
|
28306
|
+
else if (!isNaN(Number(predecessor[y].from)) && typeof (taskid) === 'string') {
|
|
27362
28307
|
tempTaskId = predecessor[y].from;
|
|
27363
28308
|
}
|
|
27364
28309
|
else {
|
|
@@ -27381,15 +28326,16 @@ class CriticalPath {
|
|
|
27381
28326
|
toPredecessor = toPredecessor + ',' + predecessor[y].type;
|
|
27382
28327
|
}
|
|
27383
28328
|
else {
|
|
27384
|
-
to = to + ',' + predecessor[y].to + ':' + predecessor[y].offset +
|
|
28329
|
+
to = to + ',' + predecessor[y].to + ':' + predecessor[y].offset +
|
|
28330
|
+
predecessor[y].offsetUnit;
|
|
27385
28331
|
toPredecessor = toPredecessor + ',' + predecessor[y].type;
|
|
27386
28332
|
}
|
|
27387
28333
|
}
|
|
27388
28334
|
}
|
|
27389
|
-
if (!isNaN(Number(predecessor[y].to)) && typeof (taskid) !=
|
|
28335
|
+
if (!isNaN(Number(predecessor[y].to)) && typeof (taskid) != 'string') {
|
|
27390
28336
|
tempTaskId = parseInt((predecessor[y].to), 10);
|
|
27391
28337
|
}
|
|
27392
|
-
else if (!isNaN(Number(predecessor[y].to)) && typeof (taskid) ===
|
|
28338
|
+
else if (!isNaN(Number(predecessor[y].to)) && typeof (taskid) === 'string') {
|
|
27393
28339
|
tempTaskId = predecessor[y].to;
|
|
27394
28340
|
}
|
|
27395
28341
|
else {
|
|
@@ -27402,7 +28348,8 @@ class CriticalPath {
|
|
|
27402
28348
|
fromPredecessor = predecessor[y].type;
|
|
27403
28349
|
}
|
|
27404
28350
|
else {
|
|
27405
|
-
from = predecessor[y].from + ':' + predecessor[y].offset +
|
|
28351
|
+
from = predecessor[y].from + ':' + predecessor[y].offset +
|
|
28352
|
+
predecessor[y].offsetUnit;
|
|
27406
28353
|
fromPredecessor = predecessor[y].type;
|
|
27407
28354
|
}
|
|
27408
28355
|
}
|
|
@@ -27412,7 +28359,8 @@ class CriticalPath {
|
|
|
27412
28359
|
fromPredecessor = fromPredecessor + ',' + predecessor[y].type;
|
|
27413
28360
|
}
|
|
27414
28361
|
else {
|
|
27415
|
-
from = from + ',' + predecessor[y].from + ':' + predecessor[y].offset +
|
|
28362
|
+
from = from + ',' + predecessor[y].from + ':' + predecessor[y].offset +
|
|
28363
|
+
predecessor[y].offsetUnit;
|
|
27416
28364
|
fromPredecessor = fromPredecessor + ',' + predecessor[y].type;
|
|
27417
28365
|
}
|
|
27418
28366
|
}
|
|
@@ -27539,7 +28487,8 @@ class CriticalPath {
|
|
|
27539
28487
|
}
|
|
27540
28488
|
}
|
|
27541
28489
|
// execute if the current calculated slack value is less than the previous slack value.
|
|
27542
|
-
else if (collection[fromTaskIdIndex]['slack'] > dateDifference &&
|
|
28490
|
+
else if (collection[fromTaskIdIndex]['slack'] > dateDifference &&
|
|
28491
|
+
collection[fromTaskIdIndex]['slack'] !== 0) {
|
|
27543
28492
|
// execute if the offset value is not given.
|
|
27544
28493
|
if (fromDateArray1.length <= 1) {
|
|
27545
28494
|
if (collection[totaskId]['slack'] + dateDifference < 0) {
|
|
@@ -27589,7 +28538,8 @@ class CriticalPath {
|
|
|
27589
28538
|
}
|
|
27590
28539
|
}
|
|
27591
28540
|
//It execute while already the slack value is set and it is higher than the datedifference.
|
|
27592
|
-
else if (collection[fromTaskIdIndex]['slack'] > dateDifference &&
|
|
28541
|
+
else if (collection[fromTaskIdIndex]['slack'] > dateDifference &&
|
|
28542
|
+
collection[fromTaskIdIndex]['slack'] !== 0) {
|
|
27593
28543
|
if (fromDateArray1.length <= 1) {
|
|
27594
28544
|
if (collection[totaskId]['slack'] + dateDifference < 0) {
|
|
27595
28545
|
collection[fromTaskIdIndex]['slack'] = 0;
|
|
@@ -27617,7 +28567,8 @@ class CriticalPath {
|
|
|
27617
28567
|
if (isNullOrUndefined(collection[fromTaskIdIndex]['slack'])) {
|
|
27618
28568
|
collection[fromTaskIdIndex]['slack'] = dateDifference;
|
|
27619
28569
|
}
|
|
27620
|
-
else if (collection[fromTaskIdIndex]['slack'] > dateDifference &&
|
|
28570
|
+
else if (collection[fromTaskIdIndex]['slack'] > dateDifference &&
|
|
28571
|
+
collection[fromTaskIdIndex]['slack'] !== 0) {
|
|
27621
28572
|
collection[fromTaskIdIndex]['slack'] = dateDifference;
|
|
27622
28573
|
}
|
|
27623
28574
|
}
|
|
@@ -27628,7 +28579,8 @@ class CriticalPath {
|
|
|
27628
28579
|
// calculate slack value for the task contains predecessor connection in "finish to finish".
|
|
27629
28580
|
if (fromDataPredecessor[i] === 'FF') {
|
|
27630
28581
|
// execute if the previous task is from finish to start or finish to finish state.
|
|
27631
|
-
if (collection[totaskId]['fs'] === 1 || collection[totaskId]['ff'] === 1 ||
|
|
28582
|
+
if (collection[totaskId]['fs'] === 1 || collection[totaskId]['ff'] === 1 ||
|
|
28583
|
+
collection[totaskId]['fs'] === -1) {
|
|
27632
28584
|
if (collection[totaskId]['fs'] === 1 || collection[totaskId]['ff'] === 1) {
|
|
27633
28585
|
prevTaskEnddate = toIdFlatData.endDate;
|
|
27634
28586
|
ffslack = collection[totaskId]['slack'];
|
|
@@ -27931,7 +28883,7 @@ class CriticalPath {
|
|
|
27931
28883
|
}
|
|
27932
28884
|
else {
|
|
27933
28885
|
let currentRecords = this.parent.currentViewData.filter((data) => {
|
|
27934
|
-
return (data.ganttProperties.taskId).toString()
|
|
28886
|
+
return (data.ganttProperties.taskId).toString() === criticalPathIds[i].toString();
|
|
27935
28887
|
});
|
|
27936
28888
|
for (let i = 0; i < currentRecords.length; i++) {
|
|
27937
28889
|
if (currentRecords[i].ganttProperties.isCritical || currentRecords[i].ganttProperties.endDate >= this.maxEndDate) {
|
|
@@ -27945,13 +28897,13 @@ class CriticalPath {
|
|
|
27945
28897
|
const columnFields = this.parent.taskFields;
|
|
27946
28898
|
if (criticalData.parentItem) {
|
|
27947
28899
|
const parentRecord = this.parent.currentViewData.filter((data) => {
|
|
27948
|
-
return criticalData.parentItem.uniqueID
|
|
28900
|
+
return criticalData.parentItem.uniqueID === data.uniqueID;
|
|
27949
28901
|
});
|
|
27950
28902
|
const parentIndex = this.parent.currentViewData.indexOf(parentRecord[0]);
|
|
27951
28903
|
const parentElement = this.parent.getRowByIndex(parentIndex);
|
|
27952
28904
|
let parentTaskbarElement = parentElement.querySelectorAll('.e-taskbar-main-container');
|
|
27953
28905
|
for (let i = 0; i < parentTaskbarElement.length; i++) {
|
|
27954
|
-
if (parentTaskbarElement[i].getAttribute('rowuniqueid')
|
|
28906
|
+
if (parentTaskbarElement[i].getAttribute('rowuniqueid') === criticalData['rowUniqueID']) {
|
|
27955
28907
|
addClass(parentTaskbarElement[i].querySelectorAll('.e-gantt-child-taskbar-inner-div'), criticalChildTaskBarInnerDiv);
|
|
27956
28908
|
}
|
|
27957
28909
|
}
|
|
@@ -28097,6 +29049,7 @@ class ContextMenu$2 {
|
|
|
28097
29049
|
this.contextMenu = new ContextMenu$1({
|
|
28098
29050
|
items: this.getMenuItems(),
|
|
28099
29051
|
locale: this.parent.locale,
|
|
29052
|
+
enableRtl: this.parent.enableRtl,
|
|
28100
29053
|
target: target,
|
|
28101
29054
|
animationSettings: { effect: 'None' },
|
|
28102
29055
|
select: this.contextMenuItemClick.bind(this),
|
|
@@ -28237,6 +29190,12 @@ class ContextMenu$2 {
|
|
|
28237
29190
|
};
|
|
28238
29191
|
// eslint-disable-next-line
|
|
28239
29192
|
this.parent.trigger('actionBegin', eventArgs, (eventArgs) => {
|
|
29193
|
+
if (!isNullOrUndefined(this.parent.loadingIndicator) && this.parent.loadingIndicator.indicatorType === "Shimmer") {
|
|
29194
|
+
this.parent.showMaskRow();
|
|
29195
|
+
}
|
|
29196
|
+
else {
|
|
29197
|
+
this.parent.showSpinner();
|
|
29198
|
+
}
|
|
28240
29199
|
this.parent.chartRowsModule.splitTask(this.rowData[taskSettings.id], currentClickedDate);
|
|
28241
29200
|
});
|
|
28242
29201
|
}
|
|
@@ -28257,6 +29216,12 @@ class ContextMenu$2 {
|
|
|
28257
29216
|
target: this.targetElement
|
|
28258
29217
|
};
|
|
28259
29218
|
this.parent.trigger('actionBegin', eventArgs, (eventArgs) => {
|
|
29219
|
+
if (!isNullOrUndefined(this.parent.loadingIndicator) && this.parent.loadingIndicator.indicatorType === "Shimmer") {
|
|
29220
|
+
this.parent.showMaskRow();
|
|
29221
|
+
}
|
|
29222
|
+
else {
|
|
29223
|
+
this.parent.showSpinner();
|
|
29224
|
+
}
|
|
28260
29225
|
if (eventArgs.cancel === false) {
|
|
28261
29226
|
this.parent.chartRowsModule.mergeTask(this.rowData[taskSettings.id], segmentIndexes);
|
|
28262
29227
|
}
|
|
@@ -28265,12 +29230,30 @@ class ContextMenu$2 {
|
|
|
28265
29230
|
// eslint-disable-next-line
|
|
28266
29231
|
getClickedDate(element) {
|
|
28267
29232
|
// context menu click position
|
|
28268
|
-
|
|
29233
|
+
let ganttElementPositionLeft;
|
|
28269
29234
|
// task left position
|
|
28270
|
-
|
|
28271
|
-
|
|
28272
|
-
|
|
28273
|
-
|
|
29235
|
+
if (this.parent.enableRtl) {
|
|
29236
|
+
const box = this.parent.element.getBoundingClientRect();
|
|
29237
|
+
const scrollLeft = window.pageXOffset || document.documentElement.scrollLeft ||
|
|
29238
|
+
document.body.scrollLeft;
|
|
29239
|
+
const clientLeft = document.documentElement.clientLeft || document.body.clientLeft || 0;
|
|
29240
|
+
ganttElementPositionLeft = box.left + scrollLeft - clientLeft;
|
|
29241
|
+
}
|
|
29242
|
+
else {
|
|
29243
|
+
ganttElementPositionLeft = this.parent.getOffsetRect(this.parent.element).left;
|
|
29244
|
+
}
|
|
29245
|
+
let pageLeft;
|
|
29246
|
+
let currentTaskDifference;
|
|
29247
|
+
if (this.parent.enableRtl) {
|
|
29248
|
+
pageLeft = Math.abs(ganttElementPositionLeft + this.parent.ganttChartModule.chartElement.offsetWidth -
|
|
29249
|
+
this.rowData.ganttProperties.left - this.parent.ganttChartModule.scrollElement.scrollLeft);
|
|
29250
|
+
currentTaskDifference = Math.abs(this.clickedPosition - pageLeft);
|
|
29251
|
+
}
|
|
29252
|
+
else {
|
|
29253
|
+
pageLeft = ganttElementPositionLeft + this.parent.ganttChartModule.chartElement.offsetLeft +
|
|
29254
|
+
this.rowData.ganttProperties.left - this.parent.ganttChartModule.scrollElement.scrollLeft;
|
|
29255
|
+
currentTaskDifference = this.clickedPosition - pageLeft;
|
|
29256
|
+
}
|
|
28274
29257
|
let splitTaskDuration = Math.ceil(currentTaskDifference / this.parent.perDayWidth);
|
|
28275
29258
|
const startDate = this.rowData.ganttProperties.startDate;
|
|
28276
29259
|
if (!isNullOrUndefined(this.parent.timelineSettings.bottomTier) && this.parent.timelineSettings.bottomTier.unit === 'Hour') {
|
|
@@ -28780,6 +29763,12 @@ class ExcelExport$1 {
|
|
|
28780
29763
|
bindEvents() {
|
|
28781
29764
|
this.parent.treeGrid.beforeExcelExport = (args) => {
|
|
28782
29765
|
this.parent.trigger('beforeExcelExport', args);
|
|
29766
|
+
if (!isNullOrUndefined(this.parent.loadingIndicator) && this.parent.loadingIndicator.indicatorType === "Shimmer") {
|
|
29767
|
+
this.parent.showMaskRow();
|
|
29768
|
+
}
|
|
29769
|
+
else {
|
|
29770
|
+
this.parent.showSpinner();
|
|
29771
|
+
}
|
|
28783
29772
|
};
|
|
28784
29773
|
this.parent.treeGrid.excelQueryCellInfo = (args) => {
|
|
28785
29774
|
this.parent.trigger('excelQueryCellInfo', args);
|
|
@@ -28789,6 +29778,12 @@ class ExcelExport$1 {
|
|
|
28789
29778
|
};
|
|
28790
29779
|
this.parent.treeGrid.excelExportComplete = (args) => {
|
|
28791
29780
|
this.parent.trigger('excelExportComplete', args);
|
|
29781
|
+
if (!isNullOrUndefined(this.parent.loadingIndicator) && this.parent.loadingIndicator.indicatorType === "Shimmer") {
|
|
29782
|
+
this.parent.hideMaskRow();
|
|
29783
|
+
}
|
|
29784
|
+
else {
|
|
29785
|
+
this.parent.hideSpinner();
|
|
29786
|
+
}
|
|
28792
29787
|
};
|
|
28793
29788
|
}
|
|
28794
29789
|
}
|
|
@@ -28971,6 +29966,12 @@ class RowDD$1 {
|
|
|
28971
29966
|
if (!args.cancel) {
|
|
28972
29967
|
args.requestType = 'beforeDrop';
|
|
28973
29968
|
this.parent.trigger('actionBegin', args);
|
|
29969
|
+
if (!isNullOrUndefined(this.parent.loadingIndicator) && this.parent.loadingIndicator.indicatorType === "Shimmer") {
|
|
29970
|
+
this.parent.showMaskRow();
|
|
29971
|
+
}
|
|
29972
|
+
else {
|
|
29973
|
+
this.parent.showSpinner();
|
|
29974
|
+
}
|
|
28974
29975
|
if (!args.cancel) {
|
|
28975
29976
|
this.dropRows(args, true); // method to update the data collections based on drop action
|
|
28976
29977
|
args.cancel = true;
|
|
@@ -29068,15 +30069,15 @@ class RowDD$1 {
|
|
|
29068
30069
|
}
|
|
29069
30070
|
}
|
|
29070
30071
|
if (!this.parent.enableVirtualization) {
|
|
29071
|
-
|
|
30072
|
+
const data = gObj.flatData;
|
|
29072
30073
|
let startIndex;
|
|
29073
30074
|
let endIndex;
|
|
29074
|
-
|
|
29075
|
-
|
|
30075
|
+
const ganttData = this.parent.dataSource;
|
|
30076
|
+
const uniqueTaskID = this.parent.taskFields.id;
|
|
29076
30077
|
if (draggedRecord.index < droppedRecord.index) {
|
|
29077
30078
|
startIndex = draggedRecord.index;
|
|
29078
30079
|
for (let i = 0; i < ganttData.length; i++) {
|
|
29079
|
-
|
|
30080
|
+
const currentData = this.parent.currentViewData.filter(function (e) {
|
|
29080
30081
|
return e[uniqueTaskID] === ganttData[i][uniqueTaskID];
|
|
29081
30082
|
})[0];
|
|
29082
30083
|
if (currentData && currentData.index > droppedRecord.index) {
|
|
@@ -29088,7 +30089,7 @@ class RowDD$1 {
|
|
|
29088
30089
|
else {
|
|
29089
30090
|
startIndex = droppedRecord.index;
|
|
29090
30091
|
for (let i = 0; i < ganttData.length; i++) {
|
|
29091
|
-
|
|
30092
|
+
const currentData = this.parent.currentViewData.filter(function (e) {
|
|
29092
30093
|
return e[uniqueTaskID] === ganttData[i][uniqueTaskID];
|
|
29093
30094
|
})[0];
|
|
29094
30095
|
if (currentData && currentData.index > draggedRecord.index) {
|
|
@@ -29101,7 +30102,7 @@ class RowDD$1 {
|
|
|
29101
30102
|
if (!isNullOrUndefined(data[i])) {
|
|
29102
30103
|
data[i].index = i;
|
|
29103
30104
|
if (!isNullOrUndefined(data[i].parentItem)) {
|
|
29104
|
-
|
|
30105
|
+
const updatedParent = data.filter((e) => {
|
|
29105
30106
|
return e.uniqueID === data[i].parentUniqueID;
|
|
29106
30107
|
})[0];
|
|
29107
30108
|
data[i].parentItem.index = updatedParent.index;
|
|
@@ -29179,7 +30180,7 @@ class RowDD$1 {
|
|
|
29179
30180
|
}
|
|
29180
30181
|
let validateRecords;
|
|
29181
30182
|
if (toParent.uniqueID === draggedParent.uniqueID || (draggedParent.parentItem &&
|
|
29182
|
-
toParent.uniqueID
|
|
30183
|
+
toParent.uniqueID === this.parent.flatData[this.parent.ids.indexOf(draggedParent.parentItem.taskId)].uniqueID)) {
|
|
29183
30184
|
validateRecords = this.parent.currentViewData.filter((data) => {
|
|
29184
30185
|
if ((data.ganttProperties.predecessor && data.ganttProperties.predecessor.length > 0)) {
|
|
29185
30186
|
for (let i = 0; i < data.ganttProperties.predecessor.length; i++) {
|
|
@@ -29597,7 +30598,7 @@ class RowDD$1 {
|
|
|
29597
30598
|
}
|
|
29598
30599
|
let idx;
|
|
29599
30600
|
const ganttData = dataSource.length > 0 && this.parent.viewType !== 'ResourceView' ?
|
|
29600
|
-
dataSource : this.parent.
|
|
30601
|
+
dataSource : this.parent.updatedRecords;
|
|
29601
30602
|
for (let i = 0; i < ganttData.length; i++) {
|
|
29602
30603
|
if (this.parent.viewType === 'ResourceView') {
|
|
29603
30604
|
if (ganttData[i].ganttProperties.rowUniqueID === deletedRow.ganttProperties.rowUniqueID) {
|
|
@@ -32946,217 +33947,215 @@ class PdfGanttPredecessor {
|
|
|
32946
33947
|
let childPageData;
|
|
32947
33948
|
let parentY = 0;
|
|
32948
33949
|
let childY = 0;
|
|
32949
|
-
|
|
32950
|
-
|
|
32951
|
-
|
|
32952
|
-
|
|
32953
|
-
|
|
32954
|
-
|
|
32955
|
-
|
|
32956
|
-
|
|
32957
|
-
if (this.
|
|
32958
|
-
|
|
32959
|
-
predecessorType = 'FSType1';
|
|
32960
|
-
}
|
|
32961
|
-
else {
|
|
32962
|
-
predecessorType = 'FSType2';
|
|
32963
|
-
}
|
|
33950
|
+
switch (this.type) {
|
|
33951
|
+
case 'FS':
|
|
33952
|
+
if (childTask.startPage > -1 && parentTask.endPage > -1) {
|
|
33953
|
+
startPage = pages[parentTask.endPage];
|
|
33954
|
+
endPage = pages[childTask.startPage];
|
|
33955
|
+
parentPageData = pdfGantt.pdfPageDetail[parentTask.endPage - pdfGantt.chartPageIndex];
|
|
33956
|
+
childPageData = pdfGantt.pdfPageDetail[childTask.startPage - pdfGantt.chartPageIndex];
|
|
33957
|
+
if (this.parentIndex < this.childIndex) {
|
|
33958
|
+
if (this.parentLeft < this.childLeft && this.childLeft > (this.parentLeft + this.parentWidth + 25)) {
|
|
33959
|
+
predecessorType = 'FSType1';
|
|
32964
33960
|
}
|
|
32965
33961
|
else {
|
|
32966
|
-
|
|
32967
|
-
predecessorType = 'FSType3';
|
|
32968
|
-
}
|
|
32969
|
-
else {
|
|
32970
|
-
predecessorType = 'FSType4';
|
|
32971
|
-
}
|
|
33962
|
+
predecessorType = 'FSType2';
|
|
32972
33963
|
}
|
|
32973
33964
|
}
|
|
32974
33965
|
else {
|
|
32975
|
-
|
|
33966
|
+
if (this.parentLeft < this.childLeft && this.childLeft > (this.parentLeft + this.parentWidth + 25)) {
|
|
33967
|
+
predecessorType = 'FSType3';
|
|
33968
|
+
}
|
|
33969
|
+
else {
|
|
33970
|
+
predecessorType = 'FSType4';
|
|
33971
|
+
}
|
|
32976
33972
|
}
|
|
32977
|
-
|
|
32978
|
-
|
|
32979
|
-
|
|
32980
|
-
|
|
32981
|
-
|
|
32982
|
-
|
|
32983
|
-
|
|
32984
|
-
|
|
32985
|
-
|
|
32986
|
-
|
|
32987
|
-
|
|
32988
|
-
|
|
32989
|
-
|
|
32990
|
-
|
|
33973
|
+
}
|
|
33974
|
+
else {
|
|
33975
|
+
return;
|
|
33976
|
+
}
|
|
33977
|
+
break;
|
|
33978
|
+
case 'SF':
|
|
33979
|
+
if (childTask.endPage > -1 && parentTask.startPage > -1) {
|
|
33980
|
+
startPage = pages[parentTask.startPage];
|
|
33981
|
+
endPage = pages[childTask.endPage];
|
|
33982
|
+
parentPageData = pdfGantt.pdfPageDetail[parentTask.endPage - pdfGantt.chartPageIndex];
|
|
33983
|
+
childPageData = pdfGantt.pdfPageDetail[childTask.startPage - pdfGantt.chartPageIndex];
|
|
33984
|
+
if (this.parentIndex < this.childIndex) {
|
|
33985
|
+
if (this.parentLeft > this.childLeft + this.childWidth) {
|
|
33986
|
+
predecessorType = 'SFType1';
|
|
32991
33987
|
}
|
|
32992
33988
|
else {
|
|
32993
|
-
|
|
32994
|
-
predecessorType = 'SFType3';
|
|
32995
|
-
}
|
|
32996
|
-
else {
|
|
32997
|
-
predecessorType = 'SFType4';
|
|
32998
|
-
}
|
|
33989
|
+
predecessorType = 'SFType2';
|
|
32999
33990
|
}
|
|
33000
33991
|
}
|
|
33001
33992
|
else {
|
|
33002
|
-
|
|
33993
|
+
if (this.parentLeft > this.childLeft + this.childWidth) {
|
|
33994
|
+
predecessorType = 'SFType3';
|
|
33995
|
+
}
|
|
33996
|
+
else {
|
|
33997
|
+
predecessorType = 'SFType4';
|
|
33998
|
+
}
|
|
33003
33999
|
}
|
|
33004
|
-
|
|
33005
|
-
|
|
33006
|
-
|
|
33007
|
-
|
|
33008
|
-
|
|
33009
|
-
|
|
33010
|
-
|
|
33011
|
-
|
|
33012
|
-
|
|
33013
|
-
|
|
33014
|
-
|
|
33015
|
-
|
|
33016
|
-
|
|
33017
|
-
|
|
34000
|
+
}
|
|
34001
|
+
else {
|
|
34002
|
+
return;
|
|
34003
|
+
}
|
|
34004
|
+
break;
|
|
34005
|
+
case 'FF':
|
|
34006
|
+
if (childTask.endPage > -1 && parentTask.endPage > -1) {
|
|
34007
|
+
startPage = pages[parentTask.endPage];
|
|
34008
|
+
endPage = pages[childTask.endPage];
|
|
34009
|
+
parentPageData = pdfGantt.pdfPageDetail[parentTask.endPage - pdfGantt.chartPageIndex];
|
|
34010
|
+
childPageData = pdfGantt.pdfPageDetail[childTask.endPage - pdfGantt.chartPageIndex];
|
|
34011
|
+
if (this.parentIndex < this.childIndex) {
|
|
34012
|
+
if ((this.childLeft + this.childWidth) >= (this.parentLeft + this.parentWidth)) {
|
|
34013
|
+
predecessorType = 'FFType1';
|
|
33018
34014
|
}
|
|
33019
34015
|
else {
|
|
33020
|
-
|
|
33021
|
-
predecessorType = 'FFType3';
|
|
33022
|
-
}
|
|
33023
|
-
else {
|
|
33024
|
-
predecessorType = 'FFType4';
|
|
33025
|
-
}
|
|
34016
|
+
predecessorType = 'FFType2';
|
|
33026
34017
|
}
|
|
33027
34018
|
}
|
|
33028
34019
|
else {
|
|
33029
|
-
|
|
34020
|
+
if ((this.childLeft + this.childWidth) >= (this.parentLeft + this.parentWidth)) {
|
|
34021
|
+
predecessorType = 'FFType3';
|
|
34022
|
+
}
|
|
34023
|
+
else {
|
|
34024
|
+
predecessorType = 'FFType4';
|
|
34025
|
+
}
|
|
33030
34026
|
}
|
|
33031
|
-
|
|
33032
|
-
|
|
33033
|
-
|
|
33034
|
-
|
|
33035
|
-
|
|
33036
|
-
|
|
33037
|
-
|
|
33038
|
-
|
|
33039
|
-
|
|
33040
|
-
|
|
33041
|
-
|
|
33042
|
-
|
|
33043
|
-
|
|
33044
|
-
|
|
34027
|
+
}
|
|
34028
|
+
else {
|
|
34029
|
+
return;
|
|
34030
|
+
}
|
|
34031
|
+
break;
|
|
34032
|
+
case 'SS':
|
|
34033
|
+
if (childTask.startPage > -1 && parentTask.startPage > -1) {
|
|
34034
|
+
startPage = pages[parentTask.startPage];
|
|
34035
|
+
endPage = pages[childTask.startPage];
|
|
34036
|
+
parentPageData = pdfGantt.pdfPageDetail[parentTask.startPage - pdfGantt.chartPageIndex];
|
|
34037
|
+
childPageData = pdfGantt.pdfPageDetail[childTask.startPage - pdfGantt.chartPageIndex];
|
|
34038
|
+
if (this.parentIndex < this.childIndex) {
|
|
34039
|
+
if (this.parentLeft >= this.childLeft) {
|
|
34040
|
+
predecessorType = 'SSType1';
|
|
33045
34041
|
}
|
|
33046
34042
|
else {
|
|
33047
|
-
|
|
33048
|
-
predecessorType = 'SSType3';
|
|
33049
|
-
}
|
|
33050
|
-
else {
|
|
33051
|
-
predecessorType = 'SSType4';
|
|
33052
|
-
}
|
|
34043
|
+
predecessorType = 'SSType2';
|
|
33053
34044
|
}
|
|
33054
34045
|
}
|
|
33055
34046
|
else {
|
|
33056
|
-
|
|
34047
|
+
if (this.parentLeft >= this.childLeft) {
|
|
34048
|
+
predecessorType = 'SSType3';
|
|
34049
|
+
}
|
|
34050
|
+
else {
|
|
34051
|
+
predecessorType = 'SSType4';
|
|
34052
|
+
}
|
|
33057
34053
|
}
|
|
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
|
-
|
|
33150
|
-
|
|
33151
|
-
|
|
33152
|
-
|
|
33153
|
-
|
|
33154
|
-
|
|
33155
|
-
|
|
33156
|
-
|
|
33157
|
-
|
|
33158
|
-
|
|
33159
|
-
|
|
34054
|
+
}
|
|
34055
|
+
else {
|
|
34056
|
+
return;
|
|
34057
|
+
}
|
|
34058
|
+
break;
|
|
34059
|
+
}
|
|
34060
|
+
let midPoint = Math.round((this.parent.rowHeight - 1) / 2.0);
|
|
34061
|
+
midPoint = pixelToPoint(midPoint);
|
|
34062
|
+
/* eslint-disable-next-line */
|
|
34063
|
+
let point1, point2, point3, point4, point5, point6;
|
|
34064
|
+
point1 = point2 = point3 = point4 = point5 = point6 = new PointF();
|
|
34065
|
+
const parentTaskpoint = Object.assign({}, parentTask.taskStartPoint);
|
|
34066
|
+
const childTaskpoint = Object.assign({}, childTask.taskStartPoint);
|
|
34067
|
+
parentY = parentTaskpoint.y + parentPageData.startPoint.y;
|
|
34068
|
+
childY = childTaskpoint.y + childPageData.startPoint.y;
|
|
34069
|
+
const ffpoint1 = new PointF(pixelToPoint(this.parentLeft + this.parentWidth), parentY + midPoint);
|
|
34070
|
+
const sspoint1 = new PointF(pixelToPoint(this.parentLeft) - 1, parentY + midPoint);
|
|
34071
|
+
const ffpoint3 = new PointF(pixelToPoint(this.childLeft - 20), childY + midPoint);
|
|
34072
|
+
const ffpoint4 = new PointF(pixelToPoint(this.childLeft - 6 - this.lineWidth) - 1, childY + midPoint);
|
|
34073
|
+
const sspoint4 = new PointF(pixelToPoint(this.childLeft + this.childWidth + 6 + this.lineWidth) + 1, childY + midPoint);
|
|
34074
|
+
switch (predecessorType) {
|
|
34075
|
+
case 'FSType1':
|
|
34076
|
+
case 'FSType3':
|
|
34077
|
+
point1 = ffpoint1;
|
|
34078
|
+
point2 = new PointF(pixelToPoint(this.childLeft - 20), parentY + midPoint);
|
|
34079
|
+
point3 = ffpoint3;
|
|
34080
|
+
point4 = ffpoint4;
|
|
34081
|
+
this.connectLines(startPage, endPage, point1, point2, point3, point4, childTask, midPoint);
|
|
34082
|
+
break;
|
|
34083
|
+
case 'FSType2':
|
|
34084
|
+
point1 = ffpoint1;
|
|
34085
|
+
point2 = new PointF(point1.x + 10, parentY + midPoint);
|
|
34086
|
+
point3 = new PointF(point1.x + 10, childY + 2);
|
|
34087
|
+
point4 = new PointF(pixelToPoint(this.childLeft - 20), childY + 2);
|
|
34088
|
+
point5 = ffpoint3;
|
|
34089
|
+
point6 = ffpoint4;
|
|
34090
|
+
this.connectLines(startPage, endPage, point1, point2, point3, point4, childTask, midPoint, point5, point6);
|
|
34091
|
+
break;
|
|
34092
|
+
case 'FSType4':
|
|
34093
|
+
point1 = ffpoint1;
|
|
34094
|
+
point2 = new PointF(point1.x + 10, parentY + midPoint);
|
|
34095
|
+
point3 = new PointF(point1.x + 10, parentY + 2);
|
|
34096
|
+
point4 = new PointF(pixelToPoint(this.childLeft - 20), parentY + 2);
|
|
34097
|
+
point5 = ffpoint3;
|
|
34098
|
+
point6 = ffpoint4;
|
|
34099
|
+
this.connectLines(startPage, endPage, point1, point2, point3, point4, childTask, midPoint, point5, point6);
|
|
34100
|
+
break;
|
|
34101
|
+
case 'FFType1':
|
|
34102
|
+
case 'FFType3':
|
|
34103
|
+
point1 = new PointF(pixelToPoint(this.parentLeft + this.parentWidth) + 1, parentY + midPoint);
|
|
34104
|
+
point2 = new PointF(pixelToPoint(this.childLeft + this.childWidth + 20), parentY + midPoint);
|
|
34105
|
+
point3 = new PointF(point2.x, childY + midPoint);
|
|
34106
|
+
point4 = sspoint4;
|
|
34107
|
+
this.connectLines(startPage, endPage, point1, point2, point3, point4, childTask, midPoint);
|
|
34108
|
+
break;
|
|
34109
|
+
case 'FFType2':
|
|
34110
|
+
case 'FFType4':
|
|
34111
|
+
point1 = new PointF(pixelToPoint(this.parentLeft + this.parentWidth) + 1, parentY + midPoint);
|
|
34112
|
+
point2 = new PointF(pixelToPoint(this.parentLeft + this.parentWidth + 20), parentY + midPoint);
|
|
34113
|
+
point3 = new PointF(point2.x, childY + midPoint);
|
|
34114
|
+
point4 = sspoint4;
|
|
34115
|
+
this.connectLines(startPage, endPage, point1, point2, point3, point4, childTask, midPoint);
|
|
34116
|
+
break;
|
|
34117
|
+
case 'SSType1':
|
|
34118
|
+
case 'SSType3':
|
|
34119
|
+
point1 = sspoint1;
|
|
34120
|
+
point2 = new PointF(pixelToPoint(this.childLeft - 20), parentY + midPoint);
|
|
34121
|
+
point3 = new PointF(point2.x, childY + midPoint);
|
|
34122
|
+
point4 = ffpoint4;
|
|
34123
|
+
this.connectLines(startPage, endPage, point1, point2, point3, point4, childTask, midPoint);
|
|
34124
|
+
break;
|
|
34125
|
+
case 'SSType2':
|
|
34126
|
+
case 'SSType4':
|
|
34127
|
+
point1 = sspoint1;
|
|
34128
|
+
point2 = new PointF(pixelToPoint(this.parentLeft - 20), parentY + midPoint);
|
|
34129
|
+
point3 = new PointF(point2.x, childY + midPoint);
|
|
34130
|
+
point4 = ffpoint4;
|
|
34131
|
+
this.connectLines(startPage, endPage, point1, point2, point3, point4, childTask, midPoint);
|
|
34132
|
+
break;
|
|
34133
|
+
case 'SFType1':
|
|
34134
|
+
case 'SFType3':
|
|
34135
|
+
point1 = sspoint1;
|
|
34136
|
+
point2 = new PointF(pixelToPoint(this.childLeft + this.childWidth + 20), parentY + midPoint);
|
|
34137
|
+
point3 = new PointF(point2.x, childY + midPoint);
|
|
34138
|
+
point4 = sspoint4;
|
|
34139
|
+
this.connectLines(startPage, endPage, point1, point2, point3, point4, childTask, midPoint);
|
|
34140
|
+
break;
|
|
34141
|
+
case 'SFType2':
|
|
34142
|
+
point1 = sspoint1;
|
|
34143
|
+
point2 = new PointF(pixelToPoint(this.parentLeft - 20), parentY + midPoint);
|
|
34144
|
+
point3 = new PointF(point2.x, childY + 2);
|
|
34145
|
+
point4 = new PointF(pixelToPoint(this.childLeft + this.childWidth + 20), childY + 2);
|
|
34146
|
+
point5 = new PointF(point4.x, childY + midPoint);
|
|
34147
|
+
point6 = sspoint4;
|
|
34148
|
+
this.connectLines(startPage, endPage, point1, point2, point3, point4, childTask, midPoint, point5, point6);
|
|
34149
|
+
break;
|
|
34150
|
+
case 'SFType4':
|
|
34151
|
+
point1 = sspoint1;
|
|
34152
|
+
point2 = new PointF(pixelToPoint(this.parentLeft - 20), parentY + midPoint);
|
|
34153
|
+
point3 = new PointF(point2.x, parentY + 2);
|
|
34154
|
+
point4 = new PointF(pixelToPoint(this.childLeft + this.childWidth + 20), parentY + 2);
|
|
34155
|
+
point5 = new PointF(point4.x, childY + midPoint);
|
|
34156
|
+
point6 = sspoint4;
|
|
34157
|
+
this.connectLines(startPage, endPage, point1, point2, point3, point4, childTask, midPoint, point5, point6);
|
|
34158
|
+
break;
|
|
33160
34159
|
}
|
|
33161
34160
|
}
|
|
33162
34161
|
/**
|
|
@@ -33639,6 +34638,12 @@ class PdfExport {
|
|
|
33639
34638
|
cancel: false
|
|
33640
34639
|
};
|
|
33641
34640
|
this.parent.trigger('beforePdfExport', args);
|
|
34641
|
+
if (!isNullOrUndefined(this.parent.loadingIndicator) && this.parent.loadingIndicator.indicatorType === "Shimmer") {
|
|
34642
|
+
this.parent.showMaskRow();
|
|
34643
|
+
}
|
|
34644
|
+
else {
|
|
34645
|
+
this.parent.showSpinner();
|
|
34646
|
+
}
|
|
33642
34647
|
if (getValue('cancel', args)) {
|
|
33643
34648
|
/* eslint-disable-next-line */
|
|
33644
34649
|
return new Promise((resolve, reject) => {
|
|
@@ -33670,6 +34675,12 @@ class PdfExport {
|
|
|
33670
34675
|
}
|
|
33671
34676
|
this.processExport(data, pdfExportProperties, isMultipleExport).then(() => {
|
|
33672
34677
|
this.parent.trigger('pdfExportComplete', {});
|
|
34678
|
+
if (!isNullOrUndefined(this.parent.loadingIndicator) && this.parent.loadingIndicator.indicatorType === "Shimmer") {
|
|
34679
|
+
this.parent.hideMaskRow();
|
|
34680
|
+
}
|
|
34681
|
+
else {
|
|
34682
|
+
this.parent.hideSpinner();
|
|
34683
|
+
}
|
|
33673
34684
|
resolve(this.pdfDocument);
|
|
33674
34685
|
});
|
|
33675
34686
|
}
|
|
@@ -33857,5 +34868,5 @@ class VirtualScroll$1 {
|
|
|
33857
34868
|
* Gantt index file
|
|
33858
34869
|
*/
|
|
33859
34870
|
|
|
33860
|
-
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 };
|
|
34871
|
+
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 };
|
|
33861
34872
|
//# sourceMappingURL=ej2-gantt.es2015.js.map
|