@syncfusion/ej2-gantt 20.3.61 → 20.4.38
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintrc.json +16 -1
- package/CHANGELOG.md +5 -0
- package/dist/ej2-gantt.min.js +2 -2
- package/dist/ej2-gantt.umd.min.js +2 -2
- package/dist/ej2-gantt.umd.min.js.map +1 -1
- package/dist/es6/ej2-gantt.es2015.js +1412 -476
- package/dist/es6/ej2-gantt.es2015.js.map +1 -1
- package/dist/es6/ej2-gantt.es5.js +1438 -484
- package/dist/es6/ej2-gantt.es5.js.map +1 -1
- package/dist/global/ej2-gantt.min.js +2 -2
- package/dist/global/ej2-gantt.min.js.map +1 -1
- package/dist/global/index.d.ts +1 -1
- package/package.json +19 -18
- package/src/gantt/actions/chart-scroll.d.ts +5 -1
- package/src/gantt/actions/chart-scroll.js +39 -1
- package/src/gantt/actions/connector-line-edit.js +2 -0
- package/src/gantt/actions/context-menu.js +36 -5
- package/src/gantt/actions/critical-path.d.ts +2 -2
- package/src/gantt/actions/critical-path.js +23 -16
- package/src/gantt/actions/dialog-edit.js +37 -14
- package/src/gantt/actions/edit.d.ts +1 -0
- package/src/gantt/actions/edit.js +156 -34
- package/src/gantt/actions/excel-export.js +13 -0
- package/src/gantt/actions/filter.js +3 -0
- package/src/gantt/actions/keyboard.js +1 -0
- package/src/gantt/actions/pdf-export.js +12 -0
- package/src/gantt/actions/rowdragdrop.js +8 -2
- package/src/gantt/actions/taskbar-edit.js +140 -43
- package/src/gantt/actions/toolbar.js +21 -1
- package/src/gantt/base/date-processor.js +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 +396 -26
- package/src/gantt/base/interface.d.ts +0 -4
- package/src/gantt/base/splitter.js +12 -2
- package/src/gantt/base/task-processor.js +4 -3
- package/src/gantt/base/tree-grid.js +37 -0
- package/src/gantt/base/utils.js +1 -0
- package/src/gantt/export/pdf-connector-line.js +185 -187
- package/src/gantt/models/loading-indicator-model.d.ts +20 -0
- package/src/gantt/models/loading-indicator.d.ts +18 -0
- package/src/gantt/models/loading-indicator.js +34 -0
- package/src/gantt/models/models.d.ts +2 -0
- package/src/gantt/models/models.js +1 -0
- package/src/gantt/renderer/chart-rows.js +75 -30
- package/src/gantt/renderer/connector-line.js +100 -97
- package/src/gantt/renderer/edit-tooltip.js +22 -3
- package/src/gantt/renderer/event-marker.js +15 -2
- package/src/gantt/renderer/nonworking-day.js +4 -2
- package/src/gantt/renderer/timeline.js +21 -1
- package/src/gantt/renderer/tooltip.js +1 -0
- package/styles/bootstrap-dark.css +179 -12
- package/styles/bootstrap.css +179 -12
- package/styles/bootstrap4.css +178 -10
- package/styles/bootstrap5-dark.css +178 -10
- package/styles/bootstrap5.css +178 -10
- package/styles/fabric-dark.css +179 -12
- package/styles/fabric.css +179 -12
- package/styles/fluent-dark.css +180 -10
- package/styles/fluent.css +180 -10
- package/styles/gantt/_bootstrap-dark-definition.scss +6 -2
- package/styles/gantt/_bootstrap-definition.scss +6 -3
- package/styles/gantt/_bootstrap4-definition.scss +6 -3
- package/styles/gantt/_bootstrap5-definition.scss +6 -3
- package/styles/gantt/_fabric-dark-definition.scss +6 -3
- package/styles/gantt/_fabric-definition.scss +6 -3
- package/styles/gantt/_fluent-definition.scss +6 -3
- package/styles/gantt/_fusionnew-definition.scss +6 -3
- package/styles/gantt/_highcontrast-definition.scss +7 -4
- package/styles/gantt/_highcontrast-light-definition.scss +6 -3
- package/styles/gantt/_layout.scss +234 -21
- package/styles/gantt/_material-dark-definition.scss +6 -3
- package/styles/gantt/_material-definition.scss +6 -3
- package/styles/gantt/_material3-definition.scss +6 -3
- package/styles/gantt/_tailwind-definition.scss +6 -3
- package/styles/gantt/_theme.scss +17 -8
- package/styles/gantt/bootstrap-dark.css +179 -12
- package/styles/gantt/bootstrap.css +179 -12
- package/styles/gantt/bootstrap4.css +178 -10
- package/styles/gantt/bootstrap5-dark.css +178 -10
- package/styles/gantt/bootstrap5.css +178 -10
- package/styles/gantt/fabric-dark.css +179 -12
- package/styles/gantt/fabric.css +179 -12
- package/styles/gantt/fluent-dark.css +180 -10
- package/styles/gantt/fluent.css +180 -10
- package/styles/gantt/highcontrast-light.css +178 -10
- package/styles/gantt/highcontrast.css +179 -12
- package/styles/gantt/icons/_bootstrap-dark.scss +1 -1
- package/styles/gantt/icons/_bootstrap.scss +1 -1
- package/styles/gantt/icons/_fabric-dark.scss +1 -1
- package/styles/gantt/icons/_fabric.scss +1 -1
- package/styles/gantt/icons/_highcontrast.scss +1 -1
- package/styles/gantt/icons/_material-dark.scss +1 -1
- package/styles/gantt/icons/_material.scss +1 -1
- package/styles/gantt/material-dark.css +177 -12
- package/styles/gantt/material.css +179 -12
- package/styles/gantt/tailwind-dark.css +178 -10
- package/styles/gantt/tailwind.css +178 -10
- package/styles/highcontrast-light.css +178 -10
- package/styles/highcontrast.css +179 -12
- package/styles/material-dark.css +177 -12
- package/styles/material.css +179 -12
- package/styles/tailwind-dark.css +178 -10
- package/styles/tailwind.css +178 -10
|
@@ -149,6 +149,7 @@ function updateDates(record, parent) {
|
|
|
149
149
|
function formatString(str, args) {
|
|
150
150
|
let regx;
|
|
151
151
|
for (let i = 0; i < args.length; i++) {
|
|
152
|
+
// eslint-disable-next-line detect-non-literal-regexp
|
|
152
153
|
regx = new RegExp('\\{' + (i) + '\\}', 'gm');
|
|
153
154
|
str = str.replace(regx, args[i].toString());
|
|
154
155
|
}
|
|
@@ -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);
|
|
@@ -3959,6 +3961,8 @@ class ChartScroll {
|
|
|
3959
3961
|
addEventListeners() {
|
|
3960
3962
|
this.parent.on('grid-scroll', this.gridScrollHandler, this);
|
|
3961
3963
|
EventHandler.add(this.element, 'scroll', this.onScroll, this);
|
|
3964
|
+
this.parent.treeGrid.grid.on('showGanttShimmer', this.updateShimmer, this);
|
|
3965
|
+
this.parent.treeGrid.grid.on('removeGanttShimmer', this.removeShimmer, this);
|
|
3962
3966
|
}
|
|
3963
3967
|
/**
|
|
3964
3968
|
* Unbind events
|
|
@@ -3968,6 +3972,8 @@ class ChartScroll {
|
|
|
3968
3972
|
removeEventListeners() {
|
|
3969
3973
|
EventHandler.remove(this.element, 'scroll', this.onScroll);
|
|
3970
3974
|
this.parent.off('grid-scroll', this.gridScrollHandler);
|
|
3975
|
+
this.parent.treeGrid.grid.off('showGanttShimmer', this.updateShimmer);
|
|
3976
|
+
this.parent.treeGrid.grid.off('removeGanttShimmer', this.removeShimmer);
|
|
3971
3977
|
}
|
|
3972
3978
|
/**
|
|
3973
3979
|
*
|
|
@@ -4013,6 +4019,27 @@ class ChartScroll {
|
|
|
4013
4019
|
this.parent.chartVerticalLineContainer.style.top = formatUnit(scrollTop);
|
|
4014
4020
|
}
|
|
4015
4021
|
}
|
|
4022
|
+
removeShimmer() {
|
|
4023
|
+
let parent = this.parent;
|
|
4024
|
+
setTimeout(function () {
|
|
4025
|
+
parent.hideMaskRow();
|
|
4026
|
+
}, 0);
|
|
4027
|
+
}
|
|
4028
|
+
;
|
|
4029
|
+
updateShimmer() {
|
|
4030
|
+
let parent = this.parent;
|
|
4031
|
+
setTimeout(function () {
|
|
4032
|
+
parent.showMaskRow();
|
|
4033
|
+
}, 0);
|
|
4034
|
+
}
|
|
4035
|
+
updateSpinner() {
|
|
4036
|
+
let parent = this.parent;
|
|
4037
|
+
this.parent.showSpinner();
|
|
4038
|
+
window.clearTimeout(this.isScrolling);
|
|
4039
|
+
this.isScrolling = setTimeout(function () {
|
|
4040
|
+
parent.hideSpinner();
|
|
4041
|
+
}, 200);
|
|
4042
|
+
}
|
|
4016
4043
|
/**
|
|
4017
4044
|
* Scroll event handler
|
|
4018
4045
|
*
|
|
@@ -4038,6 +4065,16 @@ class ChartScroll {
|
|
|
4038
4065
|
scrollArgs.scrollDirection = 'Horizontal';
|
|
4039
4066
|
scrollArgs.action = 'HorizontalScroll';
|
|
4040
4067
|
}
|
|
4068
|
+
if ((scrollArgs.scrollDirection != 'Horizontal' && !isNullOrUndefined(scrollArgs.scrollDirection)) && this.parent.enableVirtualization === true && (this.parent.isToolBarClick
|
|
4069
|
+
|| isNullOrUndefined(this.parent.isToolBarClick))) {
|
|
4070
|
+
this.parent.isVirtualScroll = true;
|
|
4071
|
+
if (this.parent.showIndicator || isNullOrUndefined(this.parent.showIndicator)) {
|
|
4072
|
+
if (!this.parent.enableVirtualMaskRow && this.parent.enableVirtualization && this.parent.loadingIndicator.indicatorType === "Spinner") {
|
|
4073
|
+
this.updateSpinner();
|
|
4074
|
+
}
|
|
4075
|
+
}
|
|
4076
|
+
}
|
|
4077
|
+
this.parent.isToolBarClick = true;
|
|
4041
4078
|
scrollArgs.requestType = 'scroll';
|
|
4042
4079
|
this.parent.trigger('actionComplete', scrollArgs);
|
|
4043
4080
|
}
|
|
@@ -4078,7 +4115,10 @@ class ChartScroll {
|
|
|
4078
4115
|
* @param {number} scrollLeft - To set scroll left for scroll container
|
|
4079
4116
|
* @returns {void} .
|
|
4080
4117
|
*/
|
|
4081
|
-
setScrollLeft(scrollLeft) {
|
|
4118
|
+
setScrollLeft(scrollLeft, leftSign) {
|
|
4119
|
+
if (leftSign) {
|
|
4120
|
+
scrollLeft = leftSign == -1 && this.parent.enableRtl ? -scrollLeft : scrollLeft;
|
|
4121
|
+
}
|
|
4082
4122
|
this.element.scrollLeft = scrollLeft;
|
|
4083
4123
|
this.parent.ganttChartModule.chartTimelineContainer.scrollLeft = this.element.scrollLeft;
|
|
4084
4124
|
this.previousScroll.left = this.element.scrollLeft;
|
|
@@ -4225,6 +4265,21 @@ class GanttChart {
|
|
|
4225
4265
|
this.parent.predecessorModule.createConnectorLinesCollection();
|
|
4226
4266
|
}
|
|
4227
4267
|
this.parent.connectorLineModule.renderConnectorLines(this.parent.updatedConnectorLineCollection);
|
|
4268
|
+
for (let i = 0; i < this.parent.chartRowsModule.ganttChartTableBody.children.length; i++) {
|
|
4269
|
+
if (this.parent.chartRowsModule.ganttChartTableBody.children[i].children[0].children[1].children[4]) {
|
|
4270
|
+
this.parent.chartRowsModule.ganttChartTableBody.children[i].children[0].children[1].children[1].setAttribute('tabindex', '-1');
|
|
4271
|
+
this.parent.chartRowsModule.ganttChartTableBody.children[i].children[0].children[1].children[2].setAttribute('tabindex', '-1');
|
|
4272
|
+
this.parent.chartRowsModule.ganttChartTableBody.children[i].children[0].children[1].children[4].setAttribute('tabindex', '-1');
|
|
4273
|
+
}
|
|
4274
|
+
else {
|
|
4275
|
+
if (this.parent.viewType === 'ProjectView') {
|
|
4276
|
+
this.parent.chartRowsModule.ganttChartTableBody.children[i].children[0].children[1].children[1].setAttribute('tabindex', '-1');
|
|
4277
|
+
}
|
|
4278
|
+
else if (this.parent.chartRowsModule.ganttChartTableBody.children[i].children[0].children[1].children[0]) {
|
|
4279
|
+
this.parent.chartRowsModule.ganttChartTableBody.children[i].children[0].children[1].children[0].setAttribute('tabindex', '-1');
|
|
4280
|
+
}
|
|
4281
|
+
}
|
|
4282
|
+
}
|
|
4228
4283
|
if (this.parent.enableCriticalPath) {
|
|
4229
4284
|
let crtiticalModule = this.parent.criticalPathModule;
|
|
4230
4285
|
this.parent.criticalPathModule.criticalConnectorLine(crtiticalModule.criticalPathCollection, crtiticalModule.detailPredecessorCollection, this.parent.enableCriticalPath, crtiticalModule.predecessorCollectionTaskIds);
|
|
@@ -4288,13 +4343,15 @@ class GanttChart {
|
|
|
4288
4343
|
for (let i = 0; i < rangeCollection.length; i++) {
|
|
4289
4344
|
const height = this.getRangeHeight(currentRecord);
|
|
4290
4345
|
const leftDiv = createElement('div', {
|
|
4291
|
-
className: rangeChildContainer + ' ' + 'e-leftarc', styles:
|
|
4346
|
+
className: rangeChildContainer + ' ' + 'e-leftarc', styles: (this.parent.enableRtl ? 'right:' : 'left:') +
|
|
4347
|
+
`${(this.parent.enableRtl ? rangeCollection[i].left + rangeCollection[i].width - 5 : rangeCollection[i].left)}px;
|
|
4292
4348
|
top: ${Math.floor((this.parent.rowHeight - this.parent.chartRowsModule.taskBarHeight) / 2)}px;
|
|
4293
4349
|
height: ${height + 1}px; border-right: 0px`
|
|
4294
4350
|
});
|
|
4295
4351
|
const rightDiv = createElement('div', {
|
|
4296
4352
|
className: rangeChildContainer + ' ' + 'e-rightarc',
|
|
4297
|
-
styles:
|
|
4353
|
+
styles: (this.parent.enableRtl ? 'right:' : 'left:') + `${(this.parent.enableRtl ? rangeCollection[i].left :
|
|
4354
|
+
rangeCollection[i].left + rangeCollection[i].width - 5)}px;
|
|
4298
4355
|
top: ${Math.floor((this.parent.rowHeight - this.parent.chartRowsModule.taskBarHeight) / 2)}px; height: ${height + 1}px;
|
|
4299
4356
|
border-left: 0px`
|
|
4300
4357
|
});
|
|
@@ -4311,6 +4368,10 @@ class GanttChart {
|
|
|
4311
4368
|
renderTimelineContainer() {
|
|
4312
4369
|
this.chartTimelineContainer =
|
|
4313
4370
|
createElement('div', { className: timelineHeaderContainer });
|
|
4371
|
+
if (this.parent.enableRtl) {
|
|
4372
|
+
this.chartTimelineContainer.style.borderLeftWidth = '1px';
|
|
4373
|
+
this.chartTimelineContainer.style.borderRightWidth = '0px';
|
|
4374
|
+
}
|
|
4314
4375
|
this.chartTimelineContainer.setAttribute("role", "presentation");
|
|
4315
4376
|
this.chartElement.appendChild(this.chartTimelineContainer);
|
|
4316
4377
|
}
|
|
@@ -4483,7 +4544,7 @@ class GanttChart {
|
|
|
4483
4544
|
scrollLeft = this.scrollElement.scrollWidth <= scrollLeft ? this.scrollElement.scrollWidth : scrollLeft;
|
|
4484
4545
|
if ((this.scrollElement.offsetWidth + this.parent.ganttChartModule.scrollElement.scrollLeft) < scrollLeft
|
|
4485
4546
|
|| (this.scrollElement.scrollLeft > scrollLeft)) {
|
|
4486
|
-
this.scrollObject.setScrollLeft(scrollLeft - 50);
|
|
4547
|
+
this.scrollObject.setScrollLeft(scrollLeft - 50, this.parent.enableRtl ? -1 : 0);
|
|
4487
4548
|
}
|
|
4488
4549
|
// this.parent.ganttChartModule.scrollObject.updateLeftPosition();
|
|
4489
4550
|
}
|
|
@@ -4541,6 +4602,13 @@ class GanttChart {
|
|
|
4541
4602
|
}
|
|
4542
4603
|
this.parent.notify('chartMouseUp', e);
|
|
4543
4604
|
if (this.parent.showActiveElement) {
|
|
4605
|
+
this.parent.showIndicator = true;
|
|
4606
|
+
if (!isNullOrUndefined(this.parent.loadingIndicator) && this.parent.loadingIndicator.indicatorType === "Shimmer") {
|
|
4607
|
+
this.parent.hideMaskRow();
|
|
4608
|
+
}
|
|
4609
|
+
else {
|
|
4610
|
+
this.parent.hideSpinner();
|
|
4611
|
+
}
|
|
4544
4612
|
if (this.focusedElement && !e.target.classList.contains('e-split-bar')) {
|
|
4545
4613
|
this.focusedElement.tabIndex = this.focusedElement.tabIndex === 0 ? -1 : this.focusedElement.tabIndex;
|
|
4546
4614
|
removeClass([this.focusedElement], 'e-active-container');
|
|
@@ -4787,7 +4855,7 @@ class GanttChart {
|
|
|
4787
4855
|
this.parent.predecessorModule.createConnectorLinesCollection();
|
|
4788
4856
|
this.parent.connectorLineModule.renderConnectorLines(this.parent.updatedConnectorLineCollection);
|
|
4789
4857
|
if (this.parent.enableCriticalPath && this.parent.criticalPathModule) {
|
|
4790
|
-
|
|
4858
|
+
const criticalModule = this.parent.criticalPathModule;
|
|
4791
4859
|
criticalModule.criticalConnectorLine(criticalModule.criticalPathCollection, criticalModule.detailPredecessorCollection, true, criticalModule.predecessorCollectionTaskIds);
|
|
4792
4860
|
}
|
|
4793
4861
|
}
|
|
@@ -5546,6 +5614,12 @@ class Timeline {
|
|
|
5546
5614
|
cancel: false
|
|
5547
5615
|
};
|
|
5548
5616
|
this.parent.trigger('actionBegin', args);
|
|
5617
|
+
if (!isNullOrUndefined(this.parent.loadingIndicator) && this.parent.loadingIndicator.indicatorType === "Shimmer") {
|
|
5618
|
+
this.parent.showMaskRow();
|
|
5619
|
+
}
|
|
5620
|
+
else {
|
|
5621
|
+
this.parent.showSpinner();
|
|
5622
|
+
}
|
|
5549
5623
|
if (!args.cancel) {
|
|
5550
5624
|
newTimeline = args.timeline;
|
|
5551
5625
|
this.changeTimelineSettings(newTimeline);
|
|
@@ -5586,6 +5660,12 @@ class Timeline {
|
|
|
5586
5660
|
timeline: this.parent.currentZoomingLevel
|
|
5587
5661
|
};
|
|
5588
5662
|
this.parent.trigger('actionComplete', args);
|
|
5663
|
+
if (!isNullOrUndefined(this.parent.loadingIndicator) && this.parent.loadingIndicator.indicatorType === "Shimmer") {
|
|
5664
|
+
this.parent.hideMaskRow();
|
|
5665
|
+
}
|
|
5666
|
+
else {
|
|
5667
|
+
this.parent.hideSpinner();
|
|
5668
|
+
}
|
|
5589
5669
|
}
|
|
5590
5670
|
}
|
|
5591
5671
|
/**
|
|
@@ -5651,6 +5731,12 @@ class Timeline {
|
|
|
5651
5731
|
this.parent.toolbarModule.enableItems([this.parent.controlId + '_zoomin', this.parent.controlId + '_zoomout'], true);
|
|
5652
5732
|
}
|
|
5653
5733
|
this.parent.trigger('actionBegin', args);
|
|
5734
|
+
if (!isNullOrUndefined(this.parent.loadingIndicator) && this.parent.loadingIndicator.indicatorType === "Shimmer") {
|
|
5735
|
+
this.parent.showMaskRow();
|
|
5736
|
+
}
|
|
5737
|
+
else {
|
|
5738
|
+
this.parent.showSpinner();
|
|
5739
|
+
}
|
|
5654
5740
|
this.changeTimelineSettings(newTimeline);
|
|
5655
5741
|
}
|
|
5656
5742
|
bottomTierCellWidthCalc(mode, zoomLevel, date) {
|
|
@@ -6757,7 +6843,9 @@ class Timeline {
|
|
|
6757
6843
|
const validStartLeft = this.parent.dataOperation.getTaskLeft(validStartDate, false);
|
|
6758
6844
|
const validEndLeft = this.parent.dataOperation.getTaskLeft(validEndDate, false);
|
|
6759
6845
|
let isChanged;
|
|
6760
|
-
if (!isNullOrUndefined(maxStartLeft) && ((minStartDate < this.timelineStartDate) ||
|
|
6846
|
+
if (!isNullOrUndefined(maxStartLeft) && ((minStartDate < this.timelineStartDate) ||
|
|
6847
|
+
(!isNullOrUndefined(this.parent.editModule.taskbarEditModule)) &&
|
|
6848
|
+
(!isNullOrUndefined(this.parent.editModule.taskbarEditModule.taskBarEditAction))) && (maxStartLeft < this.bottomTierCellWidth || maxStartLeft <= validStartLeft)) {
|
|
6761
6849
|
isChanged = 'prevTimeSpan';
|
|
6762
6850
|
minStartDate = minStartDate > this.timelineStartDate ? this.timelineStartDate : minStartDate;
|
|
6763
6851
|
}
|
|
@@ -6996,9 +7084,12 @@ class GanttTreeGrid {
|
|
|
6996
7084
|
this.parent.treeGrid.showColumnMenu = this.parent.showColumnMenu;
|
|
6997
7085
|
this.parent.treeGrid.enableCollapseAll = this.parent.collapseAllParentTasks;
|
|
6998
7086
|
this.parent.treeGrid.columnMenuItems = this.parent.columnMenuItems;
|
|
7087
|
+
this.parent.treeGrid.enableRtl = this.parent.enableRtl;
|
|
6999
7088
|
this.parent.treeGrid.childMapping = isNullOrUndefined(this.parent.taskFields.child) ? '' : this.parent.taskFields.child;
|
|
7000
7089
|
this.parent.treeGrid.treeColumnIndex = this.parent.treeColumnIndex;
|
|
7001
7090
|
this.parent.treeGrid.columns = this.treeGridColumns;
|
|
7091
|
+
this.parent.treeGrid.loadingIndicator = this.parent.loadingIndicator;
|
|
7092
|
+
this.parent.treeGrid.enableVirtualMaskRow = this.parent.enableVirtualMaskRow;
|
|
7002
7093
|
if (this.parent.dataSource instanceof Object && isCountRequired(this.parent)) {
|
|
7003
7094
|
// In order to bind the observable data at load time, hasChildMapping is necessary to be mapped.
|
|
7004
7095
|
this.parent.treeGrid.hasChildMapping = 'isParent';
|
|
@@ -7092,6 +7183,14 @@ class GanttTreeGrid {
|
|
|
7092
7183
|
dataBound(args) {
|
|
7093
7184
|
this.ensureScrollBar();
|
|
7094
7185
|
this.parent.treeDataBound(args);
|
|
7186
|
+
if (this.parent.isVirtualScroll) {
|
|
7187
|
+
if ((this.parent.enableVirtualMaskRow && this.parent.enableVirtualization) ||
|
|
7188
|
+
(this.parent.enableVirtualization && !this.parent.enableVirtualMaskRow && this.parent.loadingIndicator.indicatorType === "Shimmer") ||
|
|
7189
|
+
(this.parent.loadingIndicator.indicatorType === "Shimmer")) {
|
|
7190
|
+
this.parent.hideMaskRow();
|
|
7191
|
+
}
|
|
7192
|
+
this.parent.isVirtualScroll = false;
|
|
7193
|
+
}
|
|
7095
7194
|
this.prevCurrentView = extend([], [], this.parent.currentViewData, true);
|
|
7096
7195
|
}
|
|
7097
7196
|
dataStateChange(args) {
|
|
@@ -7126,6 +7225,12 @@ class GanttTreeGrid {
|
|
|
7126
7225
|
const collapsedArgs = this.createExpandCollapseArgs(args);
|
|
7127
7226
|
this.parent.ganttChartModule.collapsedGanttRow(collapsedArgs);
|
|
7128
7227
|
}
|
|
7228
|
+
if (!isNullOrUndefined(this.parent.loadingIndicator) && this.parent.loadingIndicator.indicatorType === "Shimmer") {
|
|
7229
|
+
this.parent.hideMaskRow();
|
|
7230
|
+
}
|
|
7231
|
+
else {
|
|
7232
|
+
this.parent.hideSpinner();
|
|
7233
|
+
}
|
|
7129
7234
|
}
|
|
7130
7235
|
expanded(args) {
|
|
7131
7236
|
if (!this.parent.ganttChartModule.isExpandCollapseFromChart && !this.parent.isExpandCollapseLevelMethod) {
|
|
@@ -7134,6 +7239,12 @@ class GanttTreeGrid {
|
|
|
7134
7239
|
this.parent.ganttChartModule.expandedGanttRow(expandedArgs);
|
|
7135
7240
|
}
|
|
7136
7241
|
}
|
|
7242
|
+
if (!isNullOrUndefined(this.parent.loadingIndicator) && this.parent.loadingIndicator.indicatorType === "Shimmer") {
|
|
7243
|
+
this.parent.hideMaskRow();
|
|
7244
|
+
}
|
|
7245
|
+
else {
|
|
7246
|
+
this.parent.hideSpinner();
|
|
7247
|
+
}
|
|
7137
7248
|
}
|
|
7138
7249
|
actionBegin(args) {
|
|
7139
7250
|
this.parent.notify('actionBegin', args);
|
|
@@ -7142,6 +7253,14 @@ class GanttTreeGrid {
|
|
|
7142
7253
|
setValue('doubleClickTarget', null, this.parent.treeGrid.editModule);
|
|
7143
7254
|
}
|
|
7144
7255
|
this.parent.trigger('actionBegin', args);
|
|
7256
|
+
if (args.requestType != "virtualscroll" && args.type != "edit" && args.requestType != "beginEdit") {
|
|
7257
|
+
if (!isNullOrUndefined(this.parent.loadingIndicator) && this.parent.loadingIndicator.indicatorType === "Shimmer") {
|
|
7258
|
+
this.parent.showMaskRow();
|
|
7259
|
+
}
|
|
7260
|
+
else {
|
|
7261
|
+
this.parent.showSpinner();
|
|
7262
|
+
}
|
|
7263
|
+
}
|
|
7145
7264
|
} // eslint-disable-next-line
|
|
7146
7265
|
created(args) {
|
|
7147
7266
|
this.updateKeyConfigSettings();
|
|
@@ -7210,6 +7329,12 @@ class GanttTreeGrid {
|
|
|
7210
7329
|
this.parent.addDeleteRecord = false;
|
|
7211
7330
|
}
|
|
7212
7331
|
this.parent.trigger('actionComplete', updatedArgs);
|
|
7332
|
+
if (!isNullOrUndefined(this.parent.loadingIndicator) && this.parent.loadingIndicator.indicatorType === "Shimmer") {
|
|
7333
|
+
this.parent.hideMaskRow();
|
|
7334
|
+
}
|
|
7335
|
+
else {
|
|
7336
|
+
this.parent.hideSpinner();
|
|
7337
|
+
}
|
|
7213
7338
|
}
|
|
7214
7339
|
updateKeyConfigSettings() {
|
|
7215
7340
|
delete this.parent.treeGrid.grid.keyboardModule.keyConfigs.delete;
|
|
@@ -7479,7 +7604,7 @@ class GanttTreeGrid {
|
|
|
7479
7604
|
*/
|
|
7480
7605
|
composeIDColumn(column) {
|
|
7481
7606
|
const isProjectView = this.parent.viewType === 'ProjectView';
|
|
7482
|
-
|
|
7607
|
+
const lengthDataSource = this.parent.dataSource['length'];
|
|
7483
7608
|
let taskIDName;
|
|
7484
7609
|
column.isPrimaryKey = isProjectView ? true : false;
|
|
7485
7610
|
column.headerText = column.headerText ? column.headerText : this.parent.localeObj.getConstant('id');
|
|
@@ -8092,6 +8217,21 @@ __decorate$16([
|
|
|
8092
8217
|
Property(null)
|
|
8093
8218
|
], ResourceFields.prototype, "group", void 0);
|
|
8094
8219
|
|
|
8220
|
+
var __decorate$17 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
8221
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
8222
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
8223
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
8224
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
8225
|
+
};
|
|
8226
|
+
/**
|
|
8227
|
+
* Configures the Loading Indicator of the Gantt.
|
|
8228
|
+
*/
|
|
8229
|
+
class LoadingIndicator extends ChildProperty {
|
|
8230
|
+
}
|
|
8231
|
+
__decorate$17([
|
|
8232
|
+
Property('Spinner')
|
|
8233
|
+
], LoadingIndicator.prototype, "indicatorType", void 0);
|
|
8234
|
+
|
|
8095
8235
|
/**
|
|
8096
8236
|
* Export all generated models for complex settings
|
|
8097
8237
|
*/
|
|
@@ -8190,7 +8330,7 @@ class ChartRows extends DateProcessor {
|
|
|
8190
8330
|
getIndicatorNode(indicator) {
|
|
8191
8331
|
const templateString = '<label class="' + label + ' ' + taskIndicatorDiv + '"style="line-height:'
|
|
8192
8332
|
+ (this.parent.rowHeight) + 'px;' +
|
|
8193
|
-
'left:' + this.getIndicatorleft(indicator.date) + 'px;"><i class="' + indicator.iconClass + '"></i> </label>';
|
|
8333
|
+
(this.parent.enableRtl ? 'right:' : 'left:') + this.getIndicatorleft(indicator.date) + 'px;"><i class="' + indicator.iconClass + '"></i> </label>';
|
|
8194
8334
|
return this.createDivElement(templateString);
|
|
8195
8335
|
}
|
|
8196
8336
|
/**
|
|
@@ -8216,6 +8356,13 @@ class ChartRows extends DateProcessor {
|
|
|
8216
8356
|
getChildTaskbarNode(i, rootElement) {
|
|
8217
8357
|
let childTaskbarNode = null;
|
|
8218
8358
|
const data = this.templateData;
|
|
8359
|
+
let direction;
|
|
8360
|
+
if (this.parent.enableRtl) {
|
|
8361
|
+
direction = 'right:';
|
|
8362
|
+
}
|
|
8363
|
+
else {
|
|
8364
|
+
direction = 'left:';
|
|
8365
|
+
}
|
|
8219
8366
|
if (this.childTaskbarTemplateFunction) {
|
|
8220
8367
|
childTaskbarNode = this.childTaskbarTemplateFunction(extend({ index: i }, data), this.parent, 'TaskbarTemplate', this.getTemplateID('TaskbarTemplate'), false, undefined, rootElement[0], this.parent.treeGrid['root']);
|
|
8221
8368
|
}
|
|
@@ -8258,14 +8405,15 @@ class ChartRows extends DateProcessor {
|
|
|
8258
8405
|
}
|
|
8259
8406
|
if (isNaN(parseInt(labelString))) {
|
|
8260
8407
|
taskLabel$$1 = '<span class="' + taskLabel + '" style="line-height:' +
|
|
8261
|
-
(this.taskBarHeight - 1) + 'px; text-align: left;' +
|
|
8408
|
+
(this.taskBarHeight - 1) + 'px; text-align:' + (this.parent.enableRtl ? 'right;' : 'left;') +
|
|
8262
8409
|
'display:' + 'inline-block;' +
|
|
8263
8410
|
'width:' + (data.ganttProperties.width - 10) + 'px; height:' +
|
|
8264
8411
|
this.taskBarHeight + 'px;">' + labelString + '</span>';
|
|
8265
8412
|
}
|
|
8266
8413
|
else {
|
|
8267
8414
|
taskLabel$$1 = '<span class="' + taskLabel + '" style="line-height:' +
|
|
8268
|
-
(this.taskBarHeight - 1) + 'px;' + (this.parent.viewType === 'ResourceView' ? 'text-align:
|
|
8415
|
+
(this.taskBarHeight - 1) + 'px;' + (this.parent.viewType === 'ResourceView' ? ('text-align:' +
|
|
8416
|
+
(this.parent.enableRtl ? 'right;' : 'left;')) : '') +
|
|
8269
8417
|
+(this.parent.viewType === 'ResourceView' ? 'display:inline-flex;' : '') +
|
|
8270
8418
|
+(this.parent.viewType === 'ResourceView' ? (data.ganttProperties.width - 10) : '') + 'px; height:' +
|
|
8271
8419
|
this.taskBarHeight + 'px;">' + labelString + '</span>';
|
|
@@ -8277,17 +8425,17 @@ class ChartRows extends DateProcessor {
|
|
|
8277
8425
|
(data.ganttProperties.startDate && !data.ganttProperties.endDate && !data.ganttProperties.duration) ? ('<div class="' + childProgressBarInnerDiv + ' ' + traceChildTaskBar + ' ' +
|
|
8278
8426
|
unscheduledTaskbarLeft + ' ' + (data.ganttProperties.isAutoSchedule ?
|
|
8279
8427
|
'' : manualChildTaskBar) + '"' +
|
|
8280
|
-
'style="
|
|
8428
|
+
'style="' + direction + data.ganttProperties.left + 'px; height:' + this.taskBarHeight + 'px;"></div>') :
|
|
8281
8429
|
(data.ganttProperties.endDate && !data.ganttProperties.startDate && !data.ganttProperties.duration) ?
|
|
8282
8430
|
('<div class="' + childProgressBarInnerDiv + ' ' + traceChildTaskBar + ' ' +
|
|
8283
8431
|
unscheduledTaskbarRight + ' ' + (data.ganttProperties.isAutoSchedule ?
|
|
8284
8432
|
'' : manualChildTaskBar) + '"' +
|
|
8285
|
-
'style="
|
|
8433
|
+
'style="' + direction + data.ganttProperties.left + 'px; height:' + this.taskBarHeight + 'px;"></div>') :
|
|
8286
8434
|
(data.ganttProperties.duration && !data.ganttProperties.startDate && !data.ganttProperties.endDate) ?
|
|
8287
8435
|
('<div class="' + childProgressBarInnerDiv + ' ' + traceChildTaskBar + ' ' +
|
|
8288
8436
|
unscheduledTaskbar + ' ' + (data.ganttProperties.isAutoSchedule ?
|
|
8289
8437
|
'' : manualChildTaskBar) + '"' +
|
|
8290
|
-
'style="
|
|
8438
|
+
'style="' + direction + data.ganttProperties.left + 'px; width:' + data.ganttProperties.width + 'px;' +
|
|
8291
8439
|
' height:' + this.taskBarHeight + 'px;"></div>') : '';
|
|
8292
8440
|
if (data.ganttProperties.startDate && data.ganttProperties.endDate && data.ganttProperties.duration &&
|
|
8293
8441
|
(isNullOrUndefined(data.ganttProperties.segments) || (!isNullOrUndefined(data.ganttProperties.segments) &&
|
|
@@ -8315,6 +8463,13 @@ class ChartRows extends DateProcessor {
|
|
|
8315
8463
|
childTaskbarNode = this.createDivElement(template);
|
|
8316
8464
|
}
|
|
8317
8465
|
}
|
|
8466
|
+
if (this.parent.enableRtl && childTaskbarNode[0] && childTaskbarNode[0].querySelector('.e-task-label')) {
|
|
8467
|
+
childTaskbarNode[0].querySelector('.e-task-label').style.marginLeft = '15px';
|
|
8468
|
+
childTaskbarNode[0].querySelector('.e-task-label').style.marginRight = '8px';
|
|
8469
|
+
if (childTaskbarNode[0].querySelector('.e-gantt-child-progressbar')) {
|
|
8470
|
+
childTaskbarNode[0].querySelector('.e-gantt-child-progressbar').style.textAlign = 'left';
|
|
8471
|
+
}
|
|
8472
|
+
}
|
|
8318
8473
|
return childTaskbarNode;
|
|
8319
8474
|
}
|
|
8320
8475
|
splitTaskbar(data, labelString) {
|
|
@@ -8334,7 +8489,7 @@ class ChartRows extends DateProcessor {
|
|
|
8334
8489
|
//split taskbar
|
|
8335
8490
|
'<div class="' + childTaskBarInnerDiv + ' ' + segmentPosition + ' ' + traceChildTaskBar + ' ' +
|
|
8336
8491
|
' e-segmented-taskbar' +
|
|
8337
|
-
'"style="width:' + segment.width + 'px;position: absolute; left:' + segment.left + 'px;height:' +
|
|
8492
|
+
'"style="width:' + segment.width + 'px;position: absolute;' + (this.parent.enableRtl ? 'right:' : 'left:') + segment.left + 'px;height:' +
|
|
8338
8493
|
(this.taskBarHeight) + 'px; overflow:' + progressBarVisible + ';" data-segment-index = "' + i + '" aria-label = "' +
|
|
8339
8494
|
this.generateSpiltTaskAriaLabel(segment, data.ganttProperties) + '"> ' +
|
|
8340
8495
|
this.getSplitTaskbarLeftResizerNode() +
|
|
@@ -8342,7 +8497,7 @@ class ChartRows extends DateProcessor {
|
|
|
8342
8497
|
'<div class="' + childProgressBarInnerDiv + ' ' + traceChildProgressBar + ' ' +
|
|
8343
8498
|
'" style="border-style:' + (segment.progressWidth ? 'solid;' : 'none;') +
|
|
8344
8499
|
'display:' + (segment.progressWidth >= 0 ? 'block;' : 'none;') +
|
|
8345
|
-
'width:' + segment.progressWidth + 'px;height:100%;' +
|
|
8500
|
+
'width:' + segment.progressWidth + 'px;height:100%;' + 'text-align:' + (this.parent.enableRtl ? 'left;' : 'right;') +
|
|
8346
8501
|
'border-top-right-radius:' + this.getSplitTaskBorderRadius(segment) + 'px;' +
|
|
8347
8502
|
'border-bottom-right-radius:' + this.getSplitTaskBorderRadius(segment) + 'px;">' +
|
|
8348
8503
|
// progress label
|
|
@@ -8359,19 +8514,20 @@ class ChartRows extends DateProcessor {
|
|
|
8359
8514
|
getSplitTaskbarLeftResizerNode() {
|
|
8360
8515
|
const lResizerLeft = -(this.parent.isAdaptive ? 12 : 2);
|
|
8361
8516
|
const template = '<div class="' + taskBarLeftResizer + ' ' + icon + '"' +
|
|
8362
|
-
' style="left:' + lResizerLeft + 'px;height:' + (this.taskBarHeight) + 'px;"></div>';
|
|
8517
|
+
' style="' + (this.parent.enableRtl ? 'right:' : 'left:') + lResizerLeft + 'px;height:' + (this.taskBarHeight) + 'px;"></div>';
|
|
8363
8518
|
return template;
|
|
8364
8519
|
}
|
|
8365
8520
|
getSplitTaskbarRightResizerNode(segment) {
|
|
8366
8521
|
const rResizerLeft = this.parent.isAdaptive ? -2 : -10;
|
|
8367
8522
|
const template = '<div class="' + taskBarRightResizer + ' ' + icon + '"' +
|
|
8368
|
-
' style="left:' + (segment.width + rResizerLeft) + 'px;' +
|
|
8523
|
+
' style="' + (this.parent.enableRtl ? 'right:' : 'left:') + (segment.width + rResizerLeft) + 'px;' +
|
|
8369
8524
|
'height:' + (this.taskBarHeight) + 'px;"></div>';
|
|
8370
8525
|
return template;
|
|
8371
8526
|
}
|
|
8372
8527
|
getSplitProgressResizerNode(segment) {
|
|
8528
|
+
let width = this.parent.enableRtl ? (segment.progressWidth + 8) : (segment.progressWidth - 6);
|
|
8373
8529
|
const template = '<div class="' + childProgressResizer + '"' +
|
|
8374
|
-
' style="
|
|
8530
|
+
' style="' + (this.parent.enableRtl ? 'right:' : 'left:') + width + 'px;margin-top:' +
|
|
8375
8531
|
(this.taskBarHeight - 4) + 'px;"><div class="' + progressBarHandler + '"' +
|
|
8376
8532
|
'><div class="' + progressHandlerElement + '"></div>' +
|
|
8377
8533
|
'<div class="' + progressBarHandlerAfter + '"></div></div>';
|
|
@@ -8501,6 +8657,12 @@ class ChartRows extends DateProcessor {
|
|
|
8501
8657
|
}
|
|
8502
8658
|
}
|
|
8503
8659
|
this.parent.trigger('actionComplete', args);
|
|
8660
|
+
if (!isNullOrUndefined(this.parent.loadingIndicator) && this.parent.loadingIndicator.indicatorType === "Shimmer") {
|
|
8661
|
+
this.parent.hideMaskRow();
|
|
8662
|
+
}
|
|
8663
|
+
else {
|
|
8664
|
+
this.parent.hideSpinner();
|
|
8665
|
+
}
|
|
8504
8666
|
setValue('isEdit', false, this.parent.contextMenuModule);
|
|
8505
8667
|
setValue('isEdit', false, this.parent);
|
|
8506
8668
|
}
|
|
@@ -8705,7 +8867,7 @@ class ChartRows extends DateProcessor {
|
|
|
8705
8867
|
getTaskBaselineNode() {
|
|
8706
8868
|
const data = this.templateData;
|
|
8707
8869
|
const template = '<div class="' + baselineBar + ' ' + '" role="term" style="margin-top:' + this.baselineTop +
|
|
8708
|
-
'px;left:' + data.ganttProperties.baselineLeft + 'px;' +
|
|
8870
|
+
'px;' + (this.parent.enableRtl ? 'right:' : 'left:') + data.ganttProperties.baselineLeft + 'px;' +
|
|
8709
8871
|
'width:' + data.ganttProperties.baselineWidth + 'px;height:' +
|
|
8710
8872
|
this.baselineHeight + 'px;' + (this.baselineColor ? 'background-color: ' + this.baselineColor + ';' : '') + '"></div>';
|
|
8711
8873
|
return this.createDivElement(template);
|
|
@@ -8720,7 +8882,7 @@ class ChartRows extends DateProcessor {
|
|
|
8720
8882
|
const data = this.templateData;
|
|
8721
8883
|
let baselineMilestoneHeight = this.parent.renderBaseline ? 5 : 2;
|
|
8722
8884
|
const template = '<div class="' + baselineMilestoneContainer + ' ' + '" style="' +
|
|
8723
|
-
'left:' + (data.ganttProperties.baselineLeft - this.milesStoneRadius) + 'px;' +
|
|
8885
|
+
(this.parent.enableRtl ? 'right:' : 'left:') + (data.ganttProperties.baselineLeft - this.milesStoneRadius) + 'px;' +
|
|
8724
8886
|
'margin-top:' + (-Math.floor(this.parent.rowHeight - this.milestoneMarginTop) + baselineMilestoneHeight) +
|
|
8725
8887
|
'px">' + '<div class="' + baselineMilestoneDiv + '">' + '<div class="' + baselineMilestoneDiv +
|
|
8726
8888
|
' ' + baselineMilestoneTop + '" ' +
|
|
@@ -8770,6 +8932,10 @@ class ChartRows extends DateProcessor {
|
|
|
8770
8932
|
}
|
|
8771
8933
|
leftLabelNode[0].appendChild([].slice.call(leftLabelTemplateNode)[0]);
|
|
8772
8934
|
}
|
|
8935
|
+
if (this.parent.enableRtl) {
|
|
8936
|
+
leftLabelNode[0].style.paddingLeft = '25px';
|
|
8937
|
+
leftLabelNode[0].style.paddingRight = '0px';
|
|
8938
|
+
}
|
|
8773
8939
|
return leftLabelNode;
|
|
8774
8940
|
}
|
|
8775
8941
|
getLableText(labelString, labelDiv) {
|
|
@@ -8816,6 +8982,10 @@ class ChartRows extends DateProcessor {
|
|
|
8816
8982
|
}
|
|
8817
8983
|
rightLabelNode[0].appendChild([].slice.call(rightLabelTemplateNode)[0]);
|
|
8818
8984
|
}
|
|
8985
|
+
if (this.parent.enableRtl) {
|
|
8986
|
+
rightLabelNode[0].style.marginLeft = '0px';
|
|
8987
|
+
rightLabelNode[0].style.paddingRight = '25px';
|
|
8988
|
+
}
|
|
8819
8989
|
return rightLabelNode;
|
|
8820
8990
|
}
|
|
8821
8991
|
getManualTaskbar() {
|
|
@@ -8835,17 +9005,18 @@ class ChartRows extends DateProcessor {
|
|
|
8835
9005
|
taskbarHeight * 2 + 'px;border-left-width:' + taskbarHeight / 5 +
|
|
8836
9006
|
'px; border-bottom:' + taskbarHeight / 5 + 'px solid transparent;"></div>');
|
|
8837
9007
|
const template = '<div class="' + manualParentMainContainer + '"' +
|
|
8838
|
-
'style=left:' + (data.ganttProperties.left - data.ganttProperties.autoLeft) + 'px;' +
|
|
9008
|
+
'style=' + (this.parent.enableRtl ? 'right:' : 'left:') + (data.ganttProperties.left - data.ganttProperties.autoLeft) + 'px;' +
|
|
8839
9009
|
'width:' + data.ganttProperties.width + 'px;' +
|
|
8840
9010
|
'height:' + taskbarHeight + 'px;>' + innerDiv + ((data.ganttProperties.startDate && data.ganttProperties.endDate &&
|
|
8841
9011
|
data.ganttProperties.duration) || data.ganttProperties.duration ? '<div class="e-gantt-manualparenttaskbar-left" style=' +
|
|
8842
|
-
'"height:' + taskbarHeight + 'px;border-left-width:' + taskbarHeight / 5 +
|
|
9012
|
+
(this.parent.enableRtl ? 'margin-right:0px;' : '') + '"height:' + taskbarHeight + 'px;border-left-width:' + taskbarHeight / 5 +
|
|
8843
9013
|
'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:' +
|
|
9014
|
+
'<div class="e-gantt-manualparenttaskbar-right" style=' + (this.parent.enableRtl ? 'margin-right:-8px;' : '') +
|
|
9015
|
+
(this.parent.enableRtl ? 'right:' : 'left:') + (data.ganttProperties.width - taskbarHeight / 5) + 'px;height:' +
|
|
8846
9016
|
(taskbarHeight) + 'px;border-right-width:' + taskbarHeight / 5 + 'px;border-bottom:' +
|
|
8847
9017
|
taskbarHeight / 5 + 'px solid transparent;>' + '</div></div>' : '');
|
|
8848
|
-
const milestoneTemplate = '<div class="' + manualParentMilestone + '" style="position:absolute;
|
|
9018
|
+
const milestoneTemplate = '<div class="' + manualParentMilestone + '" style="position:absolute;' +
|
|
9019
|
+
(this.parent.enableRtl ? 'right:' : 'left:') +
|
|
8849
9020
|
(data.ganttProperties.left - data.ganttProperties.autoLeft - (this.milestoneHeight / 2)) +
|
|
8850
9021
|
'px;width:' + (this.milesStoneRadius * 2) +
|
|
8851
9022
|
'px;">' + '<div class="' + manualParentMilestoneTop + '" style="border-right-width:' +
|
|
@@ -8906,7 +9077,7 @@ class ChartRows extends DateProcessor {
|
|
|
8906
9077
|
}
|
|
8907
9078
|
if (isNaN(parseInt(labelString))) {
|
|
8908
9079
|
labelDiv = '<span class="' + taskLabel + '" style="line-height:' +
|
|
8909
|
-
(this.taskBarHeight - 1) + 'px; text-align: left;' +
|
|
9080
|
+
(this.taskBarHeight - 1) + 'px; text-align:' + (this.parent.enableRtl ? 'right;' : 'left;') +
|
|
8910
9081
|
'display:' + 'inline-block;' +
|
|
8911
9082
|
'width:' + (data.ganttProperties.width - 10) + 'px; height:' +
|
|
8912
9083
|
this.taskBarHeight + 'px;">' + labelString + '</span>';
|
|
@@ -8944,6 +9115,13 @@ class ChartRows extends DateProcessor {
|
|
|
8944
9115
|
parentTaskbarNode = data.ganttProperties.isMilestone ?
|
|
8945
9116
|
this.createDivElement(data.ganttProperties.isAutoSchedule ? milestoneTemplate : '') : template;
|
|
8946
9117
|
}
|
|
9118
|
+
if (this.parent.enableRtl && parentTaskbarNode[0] && parentTaskbarNode[0].querySelector('.e-task-label')) {
|
|
9119
|
+
parentTaskbarNode[0].querySelector('.e-task-label').style.marginLeft = '15px';
|
|
9120
|
+
parentTaskbarNode[0].querySelector('.e-task-label').style.marginRight = '8px';
|
|
9121
|
+
if (parentTaskbarNode[0].querySelector('.e-gantt-parent-progressbar')) {
|
|
9122
|
+
parentTaskbarNode[0].querySelector('.e-gantt-parent-progressbar').style.textAlign = 'left';
|
|
9123
|
+
}
|
|
9124
|
+
}
|
|
8947
9125
|
return parentTaskbarNode;
|
|
8948
9126
|
}
|
|
8949
9127
|
/**
|
|
@@ -9039,35 +9217,36 @@ class ChartRows extends DateProcessor {
|
|
|
9039
9217
|
((data.ganttProperties.cssClass) ? data.ganttProperties.cssClass : '') + '" ' +
|
|
9040
9218
|
' tabindex="-1" role="term" style="' + ((data.ganttProperties.isMilestone && !manualParent) ?
|
|
9041
9219
|
('width:' + this.milestoneHeight + 'px;height:' +
|
|
9042
|
-
this.milestoneHeight + 'px;margin-top:' + this.milestoneMarginTop + 'px;left:' + (data.ganttProperties.left -
|
|
9220
|
+
this.milestoneHeight + 'px;margin-top:' + this.milestoneMarginTop + 'px;' + (this.parent.enableRtl ? 'right:' : 'left:') + (data.ganttProperties.left -
|
|
9043
9221
|
(this.milestoneHeight / 2)) + 'px;') : ('width:' + data.ganttProperties.width +
|
|
9044
|
-
'px;margin-top:' + this.taskBarMarginTop + 'px;left:' + (!data.hasChildRecords || data.ganttProperties.isAutoSchedule ?
|
|
9222
|
+
'px;margin-top:' + this.taskBarMarginTop + 'px;' + (this.parent.enableRtl ? 'right:' : 'left:') + (!data.hasChildRecords || data.ganttProperties.isAutoSchedule ?
|
|
9045
9223
|
data.ganttProperties.left : data.ganttProperties.autoLeft) + 'px;height:' +
|
|
9046
9224
|
this.taskBarHeight + 'px;cursor:' + (data.ganttProperties.isAutoSchedule ? 'move;' : 'auto;'))) + '"></div>';
|
|
9047
9225
|
return this.createDivElement(template);
|
|
9048
9226
|
}
|
|
9049
9227
|
rightLabelContainer() {
|
|
9050
9228
|
const template = '<div class="' + ((this.rightTaskLabelTemplateFunction) ? rightLabelTempContainer :
|
|
9051
|
-
rightLabelContainer) + '" ' + ' tabindex="-1" role="term" style="left:' + this.getRightLabelLeft(this.templateData) + 'px; height:'
|
|
9229
|
+
rightLabelContainer) + '" ' + ' tabindex="-1" role="term" style="' + (this.parent.enableRtl ? 'right:' : 'left:') + this.getRightLabelLeft(this.templateData) + 'px; height:'
|
|
9052
9230
|
+ (this.parent.rowHeight - 2) + 'px;"></div>';
|
|
9053
9231
|
return this.createDivElement(template);
|
|
9054
9232
|
}
|
|
9055
9233
|
childTaskbarLeftResizer() {
|
|
9056
9234
|
const lResizerLeft = -(this.parent.isAdaptive ? 12 : 2);
|
|
9057
9235
|
const template = '<div class="' + taskBarLeftResizer + ' ' + icon + '"' +
|
|
9058
|
-
'style="left:' + lResizerLeft + 'px;height:' + (this.taskBarHeight) + 'px;"></div>';
|
|
9236
|
+
'style="' + (this.parent.enableRtl ? 'right:' : 'left:') + lResizerLeft + 'px;height:' + (this.taskBarHeight) + 'px;"></div>';
|
|
9059
9237
|
return this.createDivElement(template);
|
|
9060
9238
|
}
|
|
9061
9239
|
childTaskbarRightResizer() {
|
|
9062
9240
|
const rResizerLeft = this.parent.isAdaptive ? -2 : -10;
|
|
9063
9241
|
const template = '<div class="' + taskBarRightResizer + ' ' + icon + '"' +
|
|
9064
|
-
'style="left:' + (this.templateData.ganttProperties.width + rResizerLeft) + 'px;' +
|
|
9242
|
+
'style="' + (this.parent.enableRtl ? 'right:' : 'left:') + (this.templateData.ganttProperties.width + rResizerLeft) + 'px;' +
|
|
9065
9243
|
'height:' + (this.taskBarHeight) + 'px;"></div>';
|
|
9066
9244
|
return this.createDivElement(template);
|
|
9067
9245
|
}
|
|
9068
9246
|
childTaskbarProgressResizer() {
|
|
9247
|
+
let width = this.parent.enableRtl ? (this.templateData.ganttProperties.progressWidth + 8) : (this.templateData.ganttProperties.progressWidth - 6);
|
|
9069
9248
|
const template = '<div class="' + childProgressResizer + '"' +
|
|
9070
|
-
'style="
|
|
9249
|
+
'style="' + (this.parent.enableRtl ? 'right:' : 'left:') + width + 'px;margin-top:' +
|
|
9071
9250
|
(this.taskBarHeight - 4) + 'px;"><div class="' + progressBarHandler + '"' +
|
|
9072
9251
|
'><div class="' + progressHandlerElement + '"></div>' +
|
|
9073
9252
|
'<div class="' + progressBarHandlerAfter + '"></div></div>';
|
|
@@ -9089,7 +9268,7 @@ class ChartRows extends DateProcessor {
|
|
|
9089
9268
|
((data.ganttProperties.isMilestone) ? ('margin-top:' + pointerTop + 'px;left:' + mileStoneLeft +
|
|
9090
9269
|
'px;') : (marginTop + ';left:' + pointerLeft + 'px;')) + '">' +
|
|
9091
9270
|
'<div class="' + connectorPointLeft + ' ' + this.parent.getUnscheduledTaskClass(data.ganttProperties) +
|
|
9092
|
-
'" style="width: ' + this.connectorPointWidth + 'px;' +
|
|
9271
|
+
'" style="width: ' + this.connectorPointWidth + 'px;' + (this.parent.enableRtl ? 'margin-right:2px;' : '') +
|
|
9093
9272
|
'height: ' + this.connectorPointWidth + 'px;">' + this.touchLeftConnectorpoint + '</div></div>';
|
|
9094
9273
|
return this.createDivElement(template);
|
|
9095
9274
|
}
|
|
@@ -9362,8 +9541,14 @@ class ChartRows extends DateProcessor {
|
|
|
9362
9541
|
else {
|
|
9363
9542
|
for (let i = 0; i < this.parent.currentViewData.length; i++) {
|
|
9364
9543
|
const tempTemplateData = this.parent.currentViewData[i];
|
|
9365
|
-
if (this.parent.viewType === 'ResourceView'
|
|
9366
|
-
|
|
9544
|
+
if (this.parent.viewType === 'ResourceView') {
|
|
9545
|
+
if (this.parent.editModule && this.parent.editModule.isResourceTaskDeleted) {
|
|
9546
|
+
this.parent.initialChartRowElements = this.parent.ganttChartModule.getChartRows();
|
|
9547
|
+
this.parent.editModule.isResourceTaskDeleted = false;
|
|
9548
|
+
}
|
|
9549
|
+
if (!tempTemplateData.expanded && this.parent.enableMultiTaskbar) {
|
|
9550
|
+
collapsedResourceRecord.push(tempTemplateData);
|
|
9551
|
+
}
|
|
9367
9552
|
}
|
|
9368
9553
|
const tRow = this.getGanttChartRow(i, tempTemplateData);
|
|
9369
9554
|
this.ganttChartTableBody.appendChild(tRow);
|
|
@@ -9407,7 +9592,7 @@ class ChartRows extends DateProcessor {
|
|
|
9407
9592
|
taskbarContainerNode[0].setAttribute('aria-label', this.generateAriaLabel(this.templateData));
|
|
9408
9593
|
taskbarContainerNode[0].setAttribute('rowUniqueId', this.templateData.ganttProperties.rowUniqueID);
|
|
9409
9594
|
const connectorLineLeftNode = this.getLeftPointNode();
|
|
9410
|
-
if ((this.templateData.ganttProperties.isAutoSchedule && this.parent.viewType
|
|
9595
|
+
if ((this.templateData.ganttProperties.isAutoSchedule && this.parent.viewType === 'ProjectView') || !this.templateData.hasChildRecords) {
|
|
9411
9596
|
taskbarContainerNode[0].appendChild([].slice.call(connectorLineLeftNode)[0]);
|
|
9412
9597
|
}
|
|
9413
9598
|
if (this.templateData.hasChildRecords) {
|
|
@@ -9491,7 +9676,7 @@ class ChartRows extends DateProcessor {
|
|
|
9491
9676
|
? this.getMilestoneBaselineNode() : this.getTaskBaselineNode();
|
|
9492
9677
|
}
|
|
9493
9678
|
}
|
|
9494
|
-
if ((this.templateData.ganttProperties.isAutoSchedule && this.parent.viewType
|
|
9679
|
+
if ((this.templateData.ganttProperties.isAutoSchedule && this.parent.viewType === 'ProjectView') || !this.templateData.hasChildRecords) {
|
|
9495
9680
|
const connectorLineRightNode = this.getRightPointNode();
|
|
9496
9681
|
taskbarContainerNode[0].appendChild([].slice.call(connectorLineRightNode)[0]);
|
|
9497
9682
|
}
|
|
@@ -10777,19 +10962,8 @@ class ConnectorLine {
|
|
|
10777
10962
|
*/
|
|
10778
10963
|
createConnectorLineObject(parentGanttData, childGanttData, predecessor) {
|
|
10779
10964
|
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
|
-
}
|
|
10965
|
+
const updatedRecords = this.parent.pdfExportModule && this.parent.pdfExportModule.isPdfExport ?
|
|
10966
|
+
this.parent.flatData : this.expandedRecords;
|
|
10793
10967
|
const parentIndex = updatedRecords.indexOf(parentGanttData);
|
|
10794
10968
|
const childIndex = updatedRecords.indexOf(childGanttData);
|
|
10795
10969
|
const parentGanttRecord = parentGanttData.ganttProperties;
|
|
@@ -10855,6 +11029,9 @@ class ConnectorLine {
|
|
|
10855
11029
|
}
|
|
10856
11030
|
}
|
|
10857
11031
|
this.parent.ganttChartModule.chartBodyContent.appendChild(this.dependencyViewContainer);
|
|
11032
|
+
for (let i = 0; i < this.dependencyViewContainer.children.length; i++) {
|
|
11033
|
+
this.dependencyViewContainer.children[i].children[0].setAttribute('tabindex', '-1');
|
|
11034
|
+
}
|
|
10858
11035
|
}
|
|
10859
11036
|
/**
|
|
10860
11037
|
* To get parent position.
|
|
@@ -11173,85 +11350,96 @@ class ConnectorLine {
|
|
|
11173
11350
|
connectorContainer = '<div id="ConnectorLine' + data.connectorLineId + '" style="background-color:black">';
|
|
11174
11351
|
let div = '<div class="' + connectorLineContainer +
|
|
11175
11352
|
'" tabindex="-1" style="';
|
|
11353
|
+
let direction = this.parent.enableRtl ? 'right:' : 'left:';
|
|
11176
11354
|
const eLine = '<div class="' + connectorLine + '" style="' +
|
|
11177
11355
|
(!isNullOrUndefined(this.lineColor) ? 'outline-color:' + this.lineColor + ';' : '');
|
|
11178
|
-
|
|
11179
|
-
|
|
11180
|
-
|
|
11181
|
-
|
|
11182
|
-
|
|
11183
|
-
|
|
11356
|
+
let rightArrow;
|
|
11357
|
+
let leftArrow;
|
|
11358
|
+
if (this.parent.enableRtl) {
|
|
11359
|
+
leftArrow = '<div class="' + connectorLineRightArrow + '" style="' +
|
|
11360
|
+
(!isNullOrUndefined(this.lineColor) ? 'outline-color:' + this.lineColor + ';' : '');
|
|
11361
|
+
rightArrow = '<div class="' + connectorLineLeftArrow + '" style="' +
|
|
11362
|
+
(!isNullOrUndefined(this.lineColor) ? 'outline-color:' + this.lineColor + ';' : '');
|
|
11363
|
+
}
|
|
11364
|
+
else {
|
|
11365
|
+
rightArrow = '<div class="' + connectorLineRightArrow + '" style="' +
|
|
11366
|
+
(!isNullOrUndefined(this.lineColor) ? 'outline-color:' + this.lineColor + ';' : '');
|
|
11367
|
+
leftArrow = '<div class="' + connectorLineLeftArrow + '" style="' +
|
|
11368
|
+
(!isNullOrUndefined(this.lineColor) ? 'outline-color:' + this.lineColor + ';' : '');
|
|
11369
|
+
}
|
|
11370
|
+
const duplicateStingOne = leftArrow + (isMilestone ? (this.parent.enableRtl ? 'right:0px;' : 'left:0px;') : '') +
|
|
11371
|
+
this.getBorderStyles((this.parent.enableRtl ? 'left' : 'right'), 10) +
|
|
11184
11372
|
'top:' + (-5 - this.lineStroke + (this.lineStroke - 1)) + 'px;border-bottom-width:' + (5 + this.lineStroke) + 'px;' +
|
|
11185
11373
|
'border-top-width:' + (5 + this.lineStroke) + 'px;width:0;height:0;position:relative;"></div>';
|
|
11186
|
-
const duplicateStingTwo = this.getBorderStyles('left', 10) +
|
|
11374
|
+
const duplicateStingTwo = this.getBorderStyles((this.parent.enableRtl ? 'right' : 'left'), 10) +
|
|
11187
11375
|
'top:' + (-6) + 'px;border-bottom-width:' + (5 + this.lineStroke) + 'px;' +
|
|
11188
11376
|
'border-top-width:' + (5 + this.lineStroke) + 'px;width:0;height:0;position:relative;"></div>';
|
|
11189
11377
|
const duplicateStingThree = this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>' + eLine +
|
|
11190
11378
|
'top:' + (-(13 + ((this.lineStroke - 1) * 2))) + 'px;width:0px;' + this.getBorderStyles('left', this.lineStroke) +
|
|
11191
11379
|
this.getBorderStyles('top', (heightValue + borderTopWidth - (this.lineStroke - 1))) + 'position:relative;"></div>';
|
|
11192
|
-
const duplicateStingFour = leftArrow + 'left:' +
|
|
11380
|
+
const duplicateStingFour = leftArrow + (this.parent.enableRtl ? 'right:' : 'left:') +
|
|
11193
11381
|
(((data.childLeft + data.childWidth) - (data.parentLeft)) + 10) + 'px;' +
|
|
11194
|
-
this.getBorderStyles('right', 10);
|
|
11382
|
+
this.getBorderStyles((this.parent.enableRtl ? 'left' : 'right'), 10);
|
|
11195
11383
|
const duplicateStingFive = 'top:' + (-(6 + (5 + this.lineStroke) + (this.lineStroke / 2))) + 'px;' +
|
|
11196
11384
|
this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
|
|
11197
11385
|
if (this.getParentPosition(data) === 'FSType1') {
|
|
11198
|
-
div = div +
|
|
11386
|
+
div = div + direction + (data.parentLeft + data.parentWidth) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
|
|
11199
11387
|
((data.parentIndex * data.rowHeight) + addTop + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
|
|
11200
11388
|
'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="FSType1">';
|
|
11201
11389
|
div = div + eLine;
|
|
11202
|
-
div = div +
|
|
11390
|
+
div = div + direction + (isMilestoneParent ? -1 : 0) + 'px;width:' + (isMilestoneParent ?
|
|
11203
11391
|
((((data.childLeft - (data.parentLeft + data.parentWidth + 10)) + this.lineStroke) - 10) + 1) :
|
|
11204
11392
|
(((data.childLeft - (data.parentLeft + data.parentWidth + 10)) + this.lineStroke) - 10)) + 'px;' +
|
|
11205
11393
|
this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
|
|
11206
11394
|
div = div + eLine;
|
|
11207
|
-
div = div +
|
|
11395
|
+
div = div + direction + ((data.childLeft - (data.parentLeft + data.parentWidth + 10)) - 10) + 'px;' +
|
|
11208
11396
|
'width:0px;' + this.getBorderStyles('right', this.lineStroke) +
|
|
11209
11397
|
this.getBorderStyles('top', (heightValue + borderTopWidth - this.lineStroke)) + 'position:relative;"></div>';
|
|
11210
11398
|
div = div + eLine;
|
|
11211
|
-
div = div +
|
|
11399
|
+
div = div + direction + ((data.childLeft - (data.parentLeft + data.parentWidth + 10)) - 10) + 'px;width:10px;' +
|
|
11212
11400
|
this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
|
|
11213
11401
|
div = div + rightArrow;
|
|
11214
|
-
div = div +
|
|
11215
|
-
this.getBorderStyles('left', 10) + 'top:' + (-6 - this.lineStroke) + 'px;border-bottom-width:' + (5 + this.lineStroke) +
|
|
11402
|
+
div = div + direction + (data.childLeft - (data.parentLeft + data.parentWidth + 10)) + 'px;' +
|
|
11403
|
+
this.getBorderStyles((this.parent.enableRtl ? 'right' : 'left'), 10) + 'top:' + (-6 - this.lineStroke) + 'px;border-bottom-width:' + (5 + this.lineStroke) +
|
|
11216
11404
|
'px;border-top-width:' + (5 + this.lineStroke) + 'px;width:0;height:0;position:relative;"></div></div>';
|
|
11217
11405
|
}
|
|
11218
11406
|
if (this.getParentPosition(data) === 'FSType2') {
|
|
11219
|
-
div = div +
|
|
11407
|
+
div = div + direction + data.parentLeft + 'px;top:' + (isVirtual ? connectorLine$$1.top : ((data.parentIndex * data.rowHeight) + addTop +
|
|
11220
11408
|
this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
|
|
11221
11409
|
'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="FSType2">';
|
|
11222
11410
|
div = div + eLine;
|
|
11223
|
-
div = div +
|
|
11411
|
+
div = div + direction + (isMilestoneParent ? data.parentWidth - 1 : data.parentWidth) + 'px;width:' +
|
|
11224
11412
|
(isMilestoneParent ? 11 : 10) + 'px;' +
|
|
11225
11413
|
this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
|
|
11226
11414
|
div = div + eLine;
|
|
11227
|
-
div = div +
|
|
11415
|
+
div = div + direction + (data.parentWidth + 10 - this.lineStroke) + 'px;' +
|
|
11228
11416
|
this.getBorderStyles('left', this.lineStroke) + 'width:0px;' +
|
|
11229
11417
|
this.getBorderStyles('top', (heightValue + borderTopWidth - this.getconnectorLineGap(data) - this.lineStroke)) + 'position:relative;"></div>';
|
|
11230
11418
|
div = div + eLine;
|
|
11231
|
-
div = div +
|
|
11419
|
+
div = div + direction + (data.parentWidth - (((data.parentLeft + data.parentWidth) - data.childLeft) + 20)) + 'px;' +
|
|
11232
11420
|
'width:' + (((data.parentLeft + data.parentWidth) - data.childLeft) + 30) + 'px;' +
|
|
11233
11421
|
this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
|
|
11234
11422
|
div = div + eLine;
|
|
11235
|
-
div = div +
|
|
11423
|
+
div = div + direction + (data.parentWidth - (((data.parentLeft +
|
|
11236
11424
|
data.parentWidth) - data.childLeft) + 20)) + 'px;width:0px;' +
|
|
11237
11425
|
this.getBorderStyles('top', (this.getconnectorLineGap(data) - this.lineStroke)) +
|
|
11238
11426
|
this.getBorderStyles('left', this.lineStroke) + 'position:relative;"></div>';
|
|
11239
11427
|
div = div + eLine;
|
|
11240
|
-
div = div +
|
|
11428
|
+
div = div + direction + (data.parentWidth - (((data.parentLeft +
|
|
11241
11429
|
data.parentWidth) - data.childLeft) + 20)) + 'px;width:10px;' +
|
|
11242
11430
|
this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
|
|
11243
11431
|
div = div + rightArrow;
|
|
11244
|
-
div = div +
|
|
11245
|
-
this.getBorderStyles('left', 10) + 'border-bottom-width:' + (5 + this.lineStroke) + 'px;' +
|
|
11432
|
+
div = div + direction + (data.parentWidth - (((data.parentLeft + data.parentWidth) - data.childLeft) + 10)) + 'px;' +
|
|
11433
|
+
this.getBorderStyles((this.parent.enableRtl ? 'right' : 'left'), 10) + 'border-bottom-width:' + (5 + this.lineStroke) + 'px;' +
|
|
11246
11434
|
'border-top-width:' + (5 + this.lineStroke) + 'px;top:' + (-6 - this.lineStroke) +
|
|
11247
11435
|
'px;width:0;height:0;position:relative;"></div></div>';
|
|
11248
11436
|
}
|
|
11249
11437
|
if (this.getParentPosition(data) === 'FSType3') {
|
|
11250
|
-
div = div +
|
|
11438
|
+
div = div + direction + (data.childLeft - 20) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
|
|
11251
11439
|
((data.childIndex * data.rowHeight) + addTop + this.getTaskbarMidpoint(isMilestoneParent) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
|
|
11252
11440
|
'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="FSType3">';
|
|
11253
11441
|
div = div + rightArrow;
|
|
11254
|
-
div = div + '
|
|
11442
|
+
div = div + direction + '10px;' + this.getBorderStyles((this.parent.enableRtl ? 'right' : 'left'), 10) +
|
|
11255
11443
|
'border-bottom-width:' + (5 + this.lineStroke) + 'px;border-top-width:' + (5 + this.lineStroke) + 'px;' +
|
|
11256
11444
|
'top:' + (-6) + 'px;width:0;height:0;position:relative;"></div>';
|
|
11257
11445
|
div = div + eLine;
|
|
@@ -11265,49 +11453,49 @@ class ConnectorLine {
|
|
|
11265
11453
|
this.getBorderStyles('top', this.lineStroke) + 'position:relative;top:' +
|
|
11266
11454
|
(-(13 + ((this.lineStroke - 1) * 2))) + 'px;"></div>';
|
|
11267
11455
|
div = div + eLine;
|
|
11268
|
-
div = div +
|
|
11456
|
+
div = div + direction + (((data.parentLeft + data.parentWidth) - data.childLeft) + (30 - this.lineStroke)) +
|
|
11269
11457
|
'px;width:0px;' + 'height:' + (this.getconnectorLineGap(data) - this.lineStroke) + 'px;' +
|
|
11270
11458
|
this.getBorderStyles('left', this.lineStroke) + 'position:relative;' +
|
|
11271
11459
|
'top:' + (-(13 + ((this.lineStroke - 1) * 2))) + 'px;"></div>';
|
|
11272
11460
|
div = div + eLine;
|
|
11273
|
-
div = div + (isMilestoneParent ?
|
|
11274
|
-
data.parentWidth) - data.childLeft) + (18 - this.lineStroke)) + 'px;width:' + (12 + this.lineStroke) + 'px;' :
|
|
11461
|
+
div = div + (isMilestoneParent ? direction + (((data.parentLeft +
|
|
11462
|
+
data.parentWidth) - data.childLeft) + (18 - this.lineStroke)) + 'px;width:' + (12 + this.lineStroke) + 'px;' : direction +
|
|
11275
11463
|
(((data.parentLeft + data.parentWidth) - data.childLeft) + 20) + 'px;width:10px;') +
|
|
11276
11464
|
this.getBorderStyles('top', this.lineStroke) + 'position:relative;top:' +
|
|
11277
11465
|
(-(13 + ((this.lineStroke - 1) * 2))) + 'px;"></div></div>';
|
|
11278
11466
|
}
|
|
11279
11467
|
if (this.getParentPosition(data) === 'FSType4') {
|
|
11280
|
-
div = div +
|
|
11468
|
+
div = div + direction + (data.parentLeft + data.parentWidth) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
|
|
11281
11469
|
((data.childIndex * data.rowHeight) + addTop + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
|
|
11282
11470
|
'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="FSType4">';
|
|
11283
11471
|
div = div + rightArrow;
|
|
11284
|
-
div = div +
|
|
11285
|
-
this.getBorderStyles('left', 10) + 'top:' + (-6) + 'px;' +
|
|
11472
|
+
div = div + direction + (data.childLeft - (data.parentLeft + data.parentWidth + 10)) + 'px;' +
|
|
11473
|
+
this.getBorderStyles((this.parent.enableRtl ? 'right' : 'left'), 10) + 'top:' + (-6) + 'px;' +
|
|
11286
11474
|
'border-bottom-width:' + (5 + this.lineStroke) + 'px;border-top-width:' +
|
|
11287
11475
|
(5 + this.lineStroke) + 'px;width:0;height:0;position:relative;"></div>';
|
|
11288
11476
|
div = div + eLine;
|
|
11289
|
-
div = div +
|
|
11477
|
+
div = div + direction + (data.childLeft - (data.parentLeft + data.parentWidth) - 20) +
|
|
11290
11478
|
'px;top:' + (-(6 + (5 + this.lineStroke) + Math.round(this.lineStroke / 2))) + 'px;width:10px;' +
|
|
11291
11479
|
this.getBorderStyles('top', this.lineStroke) +
|
|
11292
11480
|
'position:relative;"></div>';
|
|
11293
11481
|
div = div + eLine;
|
|
11294
|
-
div = div + 'top:' + (-(13 + ((this.lineStroke - 1) * 2))) + 'px;
|
|
11482
|
+
div = div + 'top:' + (-(13 + ((this.lineStroke - 1) * 2))) + 'px;' + direction +
|
|
11295
11483
|
(data.childLeft - (data.parentLeft + data.parentWidth) - 20) + 'px;width:0px;' +
|
|
11296
11484
|
this.getBorderStyles('left', this.lineStroke) +
|
|
11297
11485
|
this.getBorderStyles('top', (heightValue + borderTopWidth - this.lineStroke + 1)) + 'position:relative;"></div>';
|
|
11298
11486
|
div = div + eLine;
|
|
11299
|
-
div = div + (isMilestoneParent ? '
|
|
11487
|
+
div = div + (isMilestoneParent ? direction + '-1px;' : '') + 'top:' +
|
|
11300
11488
|
(-(13 + ((this.lineStroke - 1) * 2))) + 'px;width:' +
|
|
11301
11489
|
(isMilestoneParent ? ((data.childLeft - (data.parentLeft + data.parentWidth + 20) + 1) + this.lineStroke) :
|
|
11302
11490
|
((data.childLeft - (data.parentLeft + data.parentWidth + 20)) + this.lineStroke)) + 'px;' +
|
|
11303
11491
|
this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div></div>';
|
|
11304
11492
|
}
|
|
11305
11493
|
if (this.getParentPosition(data) === 'SSType4') {
|
|
11306
|
-
div = div +
|
|
11494
|
+
div = div + direction + (data.parentLeft - 10) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
|
|
11307
11495
|
((data.childIndex * data.rowHeight) + addTop + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
|
|
11308
11496
|
'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="SSType4">';
|
|
11309
11497
|
div = div + rightArrow;
|
|
11310
|
-
div = div +
|
|
11498
|
+
div = div + direction + (data.childLeft - data.parentLeft) + 'px;' + duplicateStingTwo;
|
|
11311
11499
|
div = div + eLine;
|
|
11312
11500
|
div = div + 'top:' + (-(6 + (5 + this.lineStroke) + (this.lineStroke / 2))) + 'px;width:' +
|
|
11313
11501
|
(data.childLeft - data.parentLeft) + 'px;' + duplicateStingThree;
|
|
@@ -11316,11 +11504,11 @@ class ConnectorLine {
|
|
|
11316
11504
|
this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div></div>';
|
|
11317
11505
|
}
|
|
11318
11506
|
if (this.getParentPosition(data) === 'SSType3') {
|
|
11319
|
-
div = div +
|
|
11507
|
+
div = div + direction + (data.childLeft - 20) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
|
|
11320
11508
|
((data.childIndex * data.rowHeight) + addTop + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
|
|
11321
11509
|
'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="SSType3">';
|
|
11322
11510
|
div = div + rightArrow;
|
|
11323
|
-
div = div + '
|
|
11511
|
+
div = div + direction + '10px;' + duplicateStingTwo;
|
|
11324
11512
|
div = div + eLine;
|
|
11325
11513
|
div = div + 'top:' + (-(6 + (5 + this.lineStroke) + (this.lineStroke / 2))) + 'px;width:10px;' + duplicateStingThree;
|
|
11326
11514
|
div = div + eLine;
|
|
@@ -11329,7 +11517,7 @@ class ConnectorLine {
|
|
|
11329
11517
|
this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div></div>';
|
|
11330
11518
|
}
|
|
11331
11519
|
if (this.getParentPosition(data) === 'SSType2') {
|
|
11332
|
-
div = div +
|
|
11520
|
+
div = div + direction + setInnerElementLeftSSType2 + 'px;top:' + (isVirtual ? connectorLine$$1.top :
|
|
11333
11521
|
((data.parentIndex * data.rowHeight) + addTop + this.getTaskbarMidpoint(isMilestoneParent) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
|
|
11334
11522
|
'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="SSType2">';
|
|
11335
11523
|
div = div + eLine;
|
|
@@ -11342,14 +11530,14 @@ class ConnectorLine {
|
|
|
11342
11530
|
div = div + 'width:' + setInnerElementWidthSSType2 + 'px;' +
|
|
11343
11531
|
this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
|
|
11344
11532
|
div = div + rightArrow;
|
|
11345
|
-
div = div +
|
|
11346
|
-
this.getBorderStyles('left', 10) + 'top:' + (-6 - this.lineStroke) + 'px;' +
|
|
11533
|
+
div = div + direction + setInnerElementWidthSSType2 + 'px;' +
|
|
11534
|
+
this.getBorderStyles((this.parent.enableRtl ? 'right' : 'left'), 10) + 'top:' + (-6 - this.lineStroke) + 'px;' +
|
|
11347
11535
|
'border-bottom-width:' + (5 + this.lineStroke) + 'px;border-top-width:' +
|
|
11348
11536
|
(5 + this.lineStroke) + 'px;width:0;' +
|
|
11349
11537
|
'height:0;position:relative;"></div></div>';
|
|
11350
11538
|
}
|
|
11351
11539
|
if (this.getParentPosition(data) === 'SSType1') {
|
|
11352
|
-
div = div +
|
|
11540
|
+
div = div + direction + (data.childLeft - 20) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
|
|
11353
11541
|
((data.parentIndex * data.rowHeight) + addTop +
|
|
11354
11542
|
this.getTaskbarMidpoint(isMilestoneParent) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
|
|
11355
11543
|
'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="SSType1">';
|
|
@@ -11362,114 +11550,114 @@ class ConnectorLine {
|
|
|
11362
11550
|
div = div + eLine;
|
|
11363
11551
|
div = div + 'width:10px;' + this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
|
|
11364
11552
|
div = div + rightArrow;
|
|
11365
|
-
div = div + '
|
|
11553
|
+
div = div + direction + '10px;' + this.getBorderStyles((this.parent.enableRtl ? 'right' : 'left'), 10) +
|
|
11366
11554
|
'top:' + (-6 - this.lineStroke) + 'px;border-bottom-width:' + (5 + this.lineStroke) + 'px;' +
|
|
11367
11555
|
'border-top-width:' + (5 + this.lineStroke) + 'px;width:0;height:0;position:relative;"></div></div>';
|
|
11368
11556
|
}
|
|
11369
11557
|
if (this.getParentPosition(data) === 'FFType1') {
|
|
11370
|
-
div = div +
|
|
11558
|
+
div = div + direction + (data.childLeft + data.childWidth) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
|
|
11371
11559
|
((data.parentIndex * data.rowHeight) + addTop + this.getTaskbarMidpoint(isMilestoneParent) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
|
|
11372
11560
|
'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="FFType1">';
|
|
11373
11561
|
div = div + eLine;
|
|
11374
|
-
div = div +
|
|
11562
|
+
div = div + direction + (isMilestoneParent ? (((data.parentLeft + data.parentWidth) -
|
|
11375
11563
|
(data.childLeft + data.childWidth)) - 1) : ((data.parentLeft + data.parentWidth) -
|
|
11376
11564
|
(data.childLeft + data.childWidth))) + 'px;' +
|
|
11377
11565
|
'width:' + (isMilestoneParent ? (21 + this.lineStroke) : (20 + this.lineStroke)) + 'px;' +
|
|
11378
11566
|
this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
|
|
11379
11567
|
div = div + eLine;
|
|
11380
|
-
div = div +
|
|
11568
|
+
div = div + direction + (((data.parentLeft + data.parentWidth) -
|
|
11381
11569
|
(data.childLeft + data.childWidth)) + 20) + 'px;width:0px;' + this.getBorderStyles('left', this.lineStroke) +
|
|
11382
11570
|
this.getBorderStyles('top', (heightValue + borderTopWidth - this.lineStroke)) + 'position:relative;"></div>';
|
|
11383
11571
|
div = div + eLine;
|
|
11384
|
-
div = div +
|
|
11572
|
+
div = div + direction + (isMilestone ? 4 : 10) + 'px;width:' + (isMilestone ?
|
|
11385
11573
|
(((data.parentLeft + data.parentWidth) - (data.childLeft + data.childWidth)) + (16 + this.lineStroke)) :
|
|
11386
11574
|
(((data.parentLeft + data.parentWidth) - (data.childLeft + data.childWidth)) + (10 + this.lineStroke))) + 'px;' +
|
|
11387
11575
|
this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
|
|
11388
11576
|
div = div + leftArrow;
|
|
11389
|
-
div = div + (isMilestone ? '
|
|
11577
|
+
div = div + (isMilestone ? direction + '0px;' : '') + this.getBorderStyles((!this.parent.enableRtl ? 'right' : 'left'), 10) +
|
|
11390
11578
|
'top:' + (-6 - this.lineStroke) + 'px;border-bottom-width:' + (5 + this.lineStroke) + 'px;' +
|
|
11391
11579
|
'border-top-width:' + (5 + this.lineStroke) + 'px;width:0;height:0;position:relative;"></div></div>';
|
|
11392
11580
|
}
|
|
11393
11581
|
if (this.getParentPosition(data) === 'FFType2') {
|
|
11394
|
-
div = div +
|
|
11582
|
+
div = div + direction + (data.parentLeft + data.parentWidth) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
|
|
11395
11583
|
((data.parentIndex * data.rowHeight) + addTop + this.getTaskbarMidpoint(isMilestoneParent) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
|
|
11396
11584
|
'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="FFType2">';
|
|
11397
11585
|
div = div + eLine;
|
|
11398
|
-
div = div + (isMilestoneParent ? '
|
|
11586
|
+
div = div + (isMilestoneParent ? direction + '-1px;' : '') + 'width:' +
|
|
11399
11587
|
(isMilestoneParent ? (((data.childLeft + data.childWidth) - (data.parentLeft + data.parentWidth)) +
|
|
11400
11588
|
(21 + this.lineStroke)) : (((data.childLeft + data.childWidth) -
|
|
11401
11589
|
(data.parentLeft + data.parentWidth)) + (20 + this.lineStroke))) + 'px;' +
|
|
11402
11590
|
this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
|
|
11403
11591
|
div = div + eLine;
|
|
11404
|
-
div = div +
|
|
11592
|
+
div = div + direction + (((data.childLeft + data.childWidth) - (data.parentLeft + data.parentWidth)) + 20) +
|
|
11405
11593
|
'px;width:0px;' + this.getBorderStyles('left', this.lineStroke) +
|
|
11406
11594
|
this.getBorderStyles('top', (heightValue + borderTopWidth - this.lineStroke)) +
|
|
11407
11595
|
'position:relative;"></div>';
|
|
11408
11596
|
div = div + eLine;
|
|
11409
|
-
div = div +
|
|
11597
|
+
div = div + direction + (isMilestone ? (((data.childLeft + data.childWidth) - (data.parentLeft + data.parentWidth)) + 4) :
|
|
11410
11598
|
(((data.childLeft + data.childWidth) - (data.parentLeft + data.parentWidth)) + 10)) + 'px;' +
|
|
11411
11599
|
'width:' + (isMilestone ? (16 + this.lineStroke) : (10 + this.lineStroke)) + 'px;' +
|
|
11412
11600
|
this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
|
|
11413
11601
|
div = div + leftArrow;
|
|
11414
|
-
div = div +
|
|
11415
|
-
this.getBorderStyles('right', 10) + 'top:' + (-6 - this.lineStroke) + 'px;' +
|
|
11602
|
+
div = div + direction + ((data.childLeft + data.childWidth) - (data.parentLeft + data.parentWidth)) + 'px;' +
|
|
11603
|
+
this.getBorderStyles((!this.parent.enableRtl ? 'right' : 'left'), 10) + 'top:' + (-6 - this.lineStroke) + 'px;' +
|
|
11416
11604
|
'border-bottom-width:' + (5 + this.lineStroke) + 'px;border-top-width:' + (5 + this.lineStroke) +
|
|
11417
11605
|
'px;width:0;height:0;position:relative;"></div></div>';
|
|
11418
11606
|
}
|
|
11419
11607
|
if (this.getParentPosition(data) === 'FFType3') {
|
|
11420
|
-
div = div +
|
|
11608
|
+
div = div + direction + (data.childLeft + data.childWidth) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
|
|
11421
11609
|
((data.childIndex * data.rowHeight) + addTop + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
|
|
11422
11610
|
'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="FFType3">';
|
|
11423
11611
|
div = div + duplicateStingOne;
|
|
11424
11612
|
div = div + eLine;
|
|
11425
|
-
div = div + (isMilestone ? ('
|
|
11613
|
+
div = div + (isMilestone ? (direction + '4px;width:' +
|
|
11426
11614
|
(((data.parentLeft + data.parentWidth) - (data.childLeft + data.childWidth)) + 16)) :
|
|
11427
|
-
('
|
|
11615
|
+
(direction + '10px;width:' + (((data.parentLeft + data.parentWidth) -
|
|
11428
11616
|
(data.childLeft + data.childWidth)) + 10))) + 'px;top:' + (-(6 + (5 + this.lineStroke) +
|
|
11429
11617
|
(this.lineStroke / 2))) + 'px;' + this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
|
|
11430
11618
|
div = div + eLine;
|
|
11431
|
-
div = div +
|
|
11619
|
+
div = div + direction + (((data.parentLeft + data.parentWidth) - (data.childLeft + data.childWidth)) + 20) +
|
|
11432
11620
|
'px;top:' + (-(13 + ((this.lineStroke - 1) * 2))) + 'px;' +
|
|
11433
11621
|
'width:0px;' + this.getBorderStyles('left', this.lineStroke) +
|
|
11434
11622
|
this.getBorderStyles('top', (heightValue + borderTopWidth - this.lineStroke + 1)) + 'position:relative;"></div>';
|
|
11435
11623
|
div = div + eLine;
|
|
11436
|
-
div = div + (isMilestoneParent ? (
|
|
11437
|
-
(data.childLeft + data.childWidth)) - 1) + 'px;width:21') : (
|
|
11624
|
+
div = div + (isMilestoneParent ? (direction + (((data.parentLeft + data.parentWidth) -
|
|
11625
|
+
(data.childLeft + data.childWidth)) - 1) + 'px;width:21') : (direction + ((data.parentLeft + data.parentWidth) -
|
|
11438
11626
|
(data.childLeft + data.childWidth)) + 'px;width:20')) +
|
|
11439
11627
|
'px;top:' + (-(13 + ((this.lineStroke - 1) * 2))) + 'px;' +
|
|
11440
11628
|
this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div></div>';
|
|
11441
11629
|
}
|
|
11442
11630
|
if (this.getParentPosition(data) === 'FFType4') {
|
|
11443
|
-
div = div +
|
|
11631
|
+
div = div + direction + (data.parentLeft + data.parentWidth) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
|
|
11444
11632
|
((data.childIndex * data.rowHeight) + addTop + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
|
|
11445
11633
|
'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="FFType4">';
|
|
11446
11634
|
div = div + leftArrow;
|
|
11447
|
-
div = div + (
|
|
11635
|
+
div = div + (direction + ((data.childLeft + data.childWidth) -
|
|
11448
11636
|
(data.parentLeft + data.parentWidth))) + 'px;' +
|
|
11449
|
-
this.getBorderStyles('right', 10) + 'top:' + (-5 - this.lineStroke + (this.lineStroke - 1)) + 'px;' +
|
|
11637
|
+
this.getBorderStyles((!this.parent.enableRtl ? 'right' : 'left'), 10) + 'top:' + (-5 - this.lineStroke + (this.lineStroke - 1)) + 'px;' +
|
|
11450
11638
|
'border-bottom-width:' + (5 + this.lineStroke) +
|
|
11451
11639
|
'px;border-top-width:' + (5 + this.lineStroke) + 'px;width:0;height:0;' +
|
|
11452
11640
|
'position:relative;"></div>';
|
|
11453
11641
|
div = div + eLine;
|
|
11454
|
-
div = div + (isMilestone ? (
|
|
11642
|
+
div = div + (isMilestone ? (direction + (((data.childLeft + data.childWidth) -
|
|
11455
11643
|
(data.parentLeft + data.parentWidth)) + 4) +
|
|
11456
|
-
'px;width:' + (16 + this.lineStroke)) : (
|
|
11644
|
+
'px;width:' + (16 + this.lineStroke)) : (direction + (((data.childLeft + data.childWidth) -
|
|
11457
11645
|
(data.parentLeft + data.parentWidth)) + 10) + 'px;width:' + (10 + this.lineStroke))) +
|
|
11458
11646
|
'px;' + duplicateStingFive;
|
|
11459
11647
|
div = div + eLine;
|
|
11460
|
-
div = div +
|
|
11648
|
+
div = div + direction + (((data.childLeft + data.childWidth) -
|
|
11461
11649
|
(data.parentLeft + data.parentWidth)) + 20) + 'px;top:' + (-(13 + ((this.lineStroke - 1) * 2))) +
|
|
11462
11650
|
'px;width:0px;' + this.getBorderStyles('left', this.lineStroke) +
|
|
11463
11651
|
this.getBorderStyles('top', (heightValue + borderTopWidth - this.lineStroke + 1)) + 'position:relative;"></div>';
|
|
11464
11652
|
div = div + eLine;
|
|
11465
|
-
div = div + (isMilestoneParent ? ('
|
|
11653
|
+
div = div + (isMilestoneParent ? (direction + '-1px;width:' + (((data.childLeft + data.childWidth) -
|
|
11466
11654
|
(data.parentLeft + data.parentWidth)) + (21 + this.lineStroke))) : ('width:' + (((data.childLeft + data.childWidth) -
|
|
11467
11655
|
(data.parentLeft + data.parentWidth)) + (20 + this.lineStroke)))) + 'px;top:' +
|
|
11468
11656
|
(-(13 + ((this.lineStroke - 1) * 2))) + 'px;' +
|
|
11469
11657
|
this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div></div>';
|
|
11470
11658
|
}
|
|
11471
11659
|
if (this.getParentPosition(data) === 'SFType4') {
|
|
11472
|
-
div = div +
|
|
11660
|
+
div = div + direction + (data.parentLeft - 10) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
|
|
11473
11661
|
((data.childIndex * data.rowHeight) + addTop + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;width:1px;' +
|
|
11474
11662
|
'height:' + heightValue + 'px;position:absolute" data-connectortype="SFType4">';
|
|
11475
11663
|
div = div + duplicateStingFour + 'top:' + (-5 - this.lineStroke + (this.lineStroke - 1)) + 'px;' +
|
|
@@ -11477,11 +11665,11 @@ class ConnectorLine {
|
|
|
11477
11665
|
'px;border-top-width:' + (5 + this.lineStroke) + 'px;width:0;height:0;' +
|
|
11478
11666
|
'position:relative;"></div>';
|
|
11479
11667
|
div = div + eLine;
|
|
11480
|
-
div = div +
|
|
11668
|
+
div = div + direction + (isMilestone ? ((((data.childLeft + data.childWidth) - (data.parentLeft)) + (14 + this.lineStroke)) +
|
|
11481
11669
|
'px;width:16') : ((((data.childLeft + data.childWidth) - (data.parentLeft)) + 20) + 'px;width:' +
|
|
11482
11670
|
(10 + this.lineStroke))) + 'px;' + duplicateStingFive;
|
|
11483
11671
|
div = div + eLine;
|
|
11484
|
-
div = div +
|
|
11672
|
+
div = div + direction + (((data.childLeft + data.childWidth) - (data.parentLeft)) + 30) + 'px;top:' +
|
|
11485
11673
|
(-(13 + ((this.lineStroke - 1) * 2))) + 'px;width:0px;' + this.getBorderStyles('left', this.lineStroke) +
|
|
11486
11674
|
this.getBorderStyles('top', (heightValue + borderTopWidth - this.getconnectorLineGap(data) - (this.lineStroke - 1))) + 'position:relative;"></div>';
|
|
11487
11675
|
div = div + eLine;
|
|
@@ -11497,25 +11685,25 @@ class ConnectorLine {
|
|
|
11497
11685
|
this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div></div>';
|
|
11498
11686
|
}
|
|
11499
11687
|
if (this.getParentPosition(data) === 'SFType3') {
|
|
11500
|
-
div = div +
|
|
11688
|
+
div = div + direction + (data.childLeft + data.childWidth) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
|
|
11501
11689
|
((data.childIndex * data.rowHeight) + addTop + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
|
|
11502
11690
|
'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="SFType3">';
|
|
11503
11691
|
div = div + duplicateStingOne;
|
|
11504
11692
|
div = div + eLine;
|
|
11505
|
-
div = div + (isMilestone ? '
|
|
11693
|
+
div = div + (isMilestone ? direction + '4px;width:' + (16 + this.lineStroke) : direction + '10px;width:' +
|
|
11506
11694
|
(10 + this.lineStroke)) + 'px;top:' + (-(13 + ((this.lineStroke - 1) * 2) - 1)) + 'px;' +
|
|
11507
11695
|
this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
|
|
11508
11696
|
div = div + eLine;
|
|
11509
|
-
div = div + '
|
|
11697
|
+
div = div + direction + '20px;top:' + (-(13 + ((this.lineStroke - 1) * 2))) + 'px;width:0px;' +
|
|
11510
11698
|
this.getBorderStyles('left', this.lineStroke) +
|
|
11511
11699
|
this.getBorderStyles('top', (heightValue + borderTopWidth - (this.lineStroke - 1))) + 'position:relative;"></div>';
|
|
11512
11700
|
div = div + eLine;
|
|
11513
|
-
div = div + '
|
|
11701
|
+
div = div + direction + '20px;top:' + (-(13 + ((this.lineStroke - 1) * 2))) + 'px;width:' +
|
|
11514
11702
|
((data.parentLeft - (data.childLeft + data.childWidth + 20)) + this.lineStroke) + 'px;' +
|
|
11515
11703
|
this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div></div>';
|
|
11516
11704
|
}
|
|
11517
11705
|
if (this.getParentPosition(data) === 'SFType1') {
|
|
11518
|
-
div = div +
|
|
11706
|
+
div = div + direction + (data.parentLeft - 10) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
|
|
11519
11707
|
((data.parentIndex * data.rowHeight) + addTop + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
|
|
11520
11708
|
'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="SFType1">';
|
|
11521
11709
|
div = div + eLine;
|
|
@@ -11527,12 +11715,12 @@ class ConnectorLine {
|
|
|
11527
11715
|
div = div + 'width:' + (((data.childLeft + data.childWidth) - (data.parentLeft)) + (30 + this.lineStroke)) + 'px;' +
|
|
11528
11716
|
this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
|
|
11529
11717
|
div = div + eLine;
|
|
11530
|
-
div = div +
|
|
11718
|
+
div = div + direction + (((data.childLeft + data.childWidth) - (data.parentLeft)) + 30) +
|
|
11531
11719
|
'px;width:0px;' + this.getBorderStyles('left', this.lineStroke) +
|
|
11532
11720
|
this.getBorderStyles('top', (this.getconnectorLineGap(data) - this.lineStroke)) + 'position:relative;"></div>';
|
|
11533
11721
|
div = div + eLine;
|
|
11534
|
-
div = div + (isMilestone ? (
|
|
11535
|
-
(data.parentLeft)) + 15) + 'px;width:' + (15 + this.lineStroke)) : (
|
|
11722
|
+
div = div + (isMilestone ? (direction + (((data.childLeft + data.childWidth) -
|
|
11723
|
+
(data.parentLeft)) + 15) + 'px;width:' + (15 + this.lineStroke)) : (direction +
|
|
11536
11724
|
(((data.childLeft + data.childWidth) - (data.parentLeft)) + 20) + 'px;width:' + (10 + this.lineStroke))) + 'px;' +
|
|
11537
11725
|
this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
|
|
11538
11726
|
div = div + duplicateStingFour + 'top:' + (-6 - this.lineStroke) + 'px;' +
|
|
@@ -11540,23 +11728,23 @@ class ConnectorLine {
|
|
|
11540
11728
|
(5 + this.lineStroke) + 'px;position:relative;"></div></div>';
|
|
11541
11729
|
}
|
|
11542
11730
|
if (this.getParentPosition(data) === 'SFType2') {
|
|
11543
|
-
div = div +
|
|
11731
|
+
div = div + direction + (data.childLeft + data.childWidth) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
|
|
11544
11732
|
((data.parentIndex * data.rowHeight) + addTop + this.getTaskbarMidpoint(isMilestoneParent) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
|
|
11545
11733
|
'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="SFType2">';
|
|
11546
11734
|
div = div + eLine;
|
|
11547
|
-
div = div +
|
|
11735
|
+
div = div + direction + (((data.parentLeft) - (data.childLeft + data.childWidth)) - 10) +
|
|
11548
11736
|
'px;width:11px;' + this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
|
|
11549
11737
|
div = div + eLine;
|
|
11550
|
-
div = div +
|
|
11738
|
+
div = div + direction + (((data.parentLeft) - (data.childLeft + data.childWidth)) - 10) +
|
|
11551
11739
|
'px;width:0px;' + this.getBorderStyles('left', this.lineStroke) +
|
|
11552
11740
|
this.getBorderStyles('top', (heightValue + borderTopWidth - this.lineStroke)) + 'position:relative;"></div>';
|
|
11553
11741
|
div = div + eLine;
|
|
11554
|
-
div = div + (isMilestone ? ('
|
|
11555
|
-
- (14 - this.lineStroke))) : ('
|
|
11742
|
+
div = div + (isMilestone ? (direction + '4px;width:' + (((data.parentLeft) - (data.childLeft + data.childWidth))
|
|
11743
|
+
- (14 - this.lineStroke))) : (direction + '10px;width:' + (((data.parentLeft) -
|
|
11556
11744
|
(data.childLeft + data.childWidth)) - (20 - this.lineStroke)))) +
|
|
11557
11745
|
'px;' + this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
|
|
11558
11746
|
div = div + leftArrow;
|
|
11559
|
-
div = div + '
|
|
11747
|
+
div = div + direction + '0px;' + this.getBorderStyles((this.parent.enableRtl ? 'right' : 'left'), 10) +
|
|
11560
11748
|
'top:' + (-6 - this.lineStroke) + 'px;border-bottom-width:' + (5 + this.lineStroke) +
|
|
11561
11749
|
'px;border-top-width:' + (5 + this.lineStroke) + 'px;width:0;height:0;position:relative;"></div></div>';
|
|
11562
11750
|
}
|
|
@@ -11743,12 +11931,19 @@ class Splitter$1 {
|
|
|
11743
11931
|
this.parent.splitterElement = createElement('div', { className: splitter });
|
|
11744
11932
|
this.parent.treeGridPane = createElement('div', { className: treeGridPane });
|
|
11745
11933
|
this.parent.chartPane = createElement('div', { className: ganttChartPane });
|
|
11746
|
-
|
|
11747
|
-
|
|
11934
|
+
if (this.parent.enableRtl) {
|
|
11935
|
+
this.parent.splitterElement.appendChild(this.parent.chartPane);
|
|
11936
|
+
this.parent.splitterElement.appendChild(this.parent.treeGridPane);
|
|
11937
|
+
}
|
|
11938
|
+
else {
|
|
11939
|
+
this.parent.splitterElement.appendChild(this.parent.treeGridPane);
|
|
11940
|
+
this.parent.splitterElement.appendChild(this.parent.chartPane);
|
|
11941
|
+
}
|
|
11748
11942
|
this.splitterObject = new Splitter({
|
|
11749
11943
|
height: null,
|
|
11750
11944
|
width: this.parent.ganttWidth.toString(),
|
|
11751
11945
|
enablePersistence: this.parent.enablePersistence,
|
|
11946
|
+
enableRtl: this.parent.enableRtl,
|
|
11752
11947
|
separatorSize: this.parent.splitterSettings.separatorSize,
|
|
11753
11948
|
paneSettings: [
|
|
11754
11949
|
{
|
|
@@ -11762,6 +11957,9 @@ class Splitter$1 {
|
|
|
11762
11957
|
],
|
|
11763
11958
|
orientation: 'Horizontal',
|
|
11764
11959
|
resizeStart: (args) => {
|
|
11960
|
+
if (this.parent.contextMenuModule && this.parent.contextMenuModule.isOpen) {
|
|
11961
|
+
this.parent.contextMenuModule.contextMenu.close();
|
|
11962
|
+
}
|
|
11765
11963
|
const leftPane = args.pane[0];
|
|
11766
11964
|
const rightPane = args.pane[1];
|
|
11767
11965
|
this.splitterPreviousPositionGrid = leftPane.scrollWidth + 1 + 'px';
|
|
@@ -11923,6 +12121,7 @@ class Tooltip$1 {
|
|
|
11923
12121
|
'.e-taskbar-left-resizer, .e-taskbar-right-resizer, .e-baseline-gantt-milestone, .e-gantt-manualparenttaskbar';
|
|
11924
12122
|
this.toolTipObj.position = 'BottomCenter';
|
|
11925
12123
|
this.toolTipObj.openDelay = 700;
|
|
12124
|
+
this.toolTipObj.enableRtl = this.parent.enableRtl;
|
|
11926
12125
|
this.toolTipObj.enableHtmlSanitizer = false;
|
|
11927
12126
|
this.toolTipObj.cssClass = ganttTooltip;
|
|
11928
12127
|
this.toolTipObj.animation = { open: { effect: 'None', delay: 0 }, close: { effect: 'None', delay: 0 } };
|
|
@@ -12562,6 +12761,7 @@ class FocusModule {
|
|
|
12562
12761
|
const top = containerPosition.top + (containerPosition.height / 2);
|
|
12563
12762
|
const left = containerPosition.left + (containerPosition.width / 2);
|
|
12564
12763
|
this.setActiveElement(e.target);
|
|
12764
|
+
// eslint-disable-next-line security/detect-non-literal-fs-filename
|
|
12565
12765
|
contextMenu.open(top, left);
|
|
12566
12766
|
e.preventDefault();
|
|
12567
12767
|
break;
|
|
@@ -12651,6 +12851,8 @@ var __decorate = (undefined && undefined.__decorate) || function (decorators, ta
|
|
|
12651
12851
|
let Gantt = class Gantt extends Component {
|
|
12652
12852
|
constructor(options, element) {
|
|
12653
12853
|
super(options, element);
|
|
12854
|
+
this.showIndicator = true;
|
|
12855
|
+
this.singleTier = 0;
|
|
12654
12856
|
/** @hidden */
|
|
12655
12857
|
this.isCancelled = false;
|
|
12656
12858
|
/** @hidden */
|
|
@@ -12845,7 +13047,7 @@ let Gantt = class Gantt extends Component {
|
|
|
12845
13047
|
/**
|
|
12846
13048
|
* To check whether the date is in DST.
|
|
12847
13049
|
*
|
|
12848
|
-
* @param {Date} date .
|
|
13050
|
+
* @param {Date} date - Defines the date to check whether it is DST.
|
|
12849
13051
|
* @returns {boolean} .
|
|
12850
13052
|
* @private
|
|
12851
13053
|
*/
|
|
@@ -12936,9 +13138,348 @@ let Gantt = class Gantt extends Component {
|
|
|
12936
13138
|
}
|
|
12937
13139
|
this.splitterModule.renderSplitter();
|
|
12938
13140
|
this.notify('renderPanels', null);
|
|
12939
|
-
this.
|
|
13141
|
+
if (!isNullOrUndefined(this.loadingIndicator) && this.loadingIndicator.indicatorType === "Shimmer") {
|
|
13142
|
+
this.showMaskRow();
|
|
13143
|
+
}
|
|
13144
|
+
else {
|
|
13145
|
+
this.showSpinner();
|
|
13146
|
+
}
|
|
12940
13147
|
this.dataOperation.checkDataBinding();
|
|
12941
13148
|
}
|
|
13149
|
+
hideMaskRow() {
|
|
13150
|
+
let isTablePresent = this.element.querySelectorAll('.e-masked-table').length;
|
|
13151
|
+
if (!isNullOrUndefined(this.contentMaskTable) && isTablePresent != 0) {
|
|
13152
|
+
const maskTable = this.contentMaskTable;
|
|
13153
|
+
remove(maskTable);
|
|
13154
|
+
this.contentMaskTable = null;
|
|
13155
|
+
}
|
|
13156
|
+
isTablePresent = this.element.querySelectorAll('.e-masked-table').length;
|
|
13157
|
+
if (!isNullOrUndefined(this.headerMaskTable) && isTablePresent != 0) {
|
|
13158
|
+
const maskTable = this.headerMaskTable;
|
|
13159
|
+
remove(maskTable);
|
|
13160
|
+
this.headerMaskTable = null;
|
|
13161
|
+
}
|
|
13162
|
+
while ((this.element.querySelectorAll('.e-table-background')).length != 0) {
|
|
13163
|
+
this.element.querySelectorAll('.e-table-background')[0].remove();
|
|
13164
|
+
}
|
|
13165
|
+
while ((this.element.querySelectorAll('.e-temp-timeline')).length != 0) {
|
|
13166
|
+
this.element.querySelectorAll('.e-temp-timeline')[0].remove();
|
|
13167
|
+
}
|
|
13168
|
+
if (this.element.querySelectorAll('.' + timelineHeaderTableContainer).length != 0) {
|
|
13169
|
+
for (var i = 0; i < this.singleTier; i++) {
|
|
13170
|
+
if (!isNullOrUndefined(this.element.querySelectorAll('.' + timelineHeaderTableContainer)[i])) {
|
|
13171
|
+
this.element.querySelectorAll('.' + timelineHeaderTableContainer)[i]['style'].visibility = "visible";
|
|
13172
|
+
}
|
|
13173
|
+
}
|
|
13174
|
+
}
|
|
13175
|
+
if (!isNullOrUndefined(this.element.querySelector('.' + timelineHeaderContainer))) {
|
|
13176
|
+
this.element.querySelector('.' + timelineHeaderContainer)['style'].position = "relative";
|
|
13177
|
+
}
|
|
13178
|
+
if (!isNullOrUndefined(this.element.getElementsByClassName(chartBodyContent)[0])) {
|
|
13179
|
+
this.element.getElementsByClassName(chartBodyContent)[0]['style'].visibility = "visible";
|
|
13180
|
+
}
|
|
13181
|
+
}
|
|
13182
|
+
showMaskRow() {
|
|
13183
|
+
const ganttHeader = this.chartPane.childNodes[0].childNodes[0];
|
|
13184
|
+
this.scrollLeftValue = this.chartPane.childNodes[0].childNodes[0]['scrollLeft'];
|
|
13185
|
+
const ganttContent = this.chartPane.childNodes[0].childNodes[1];
|
|
13186
|
+
if (!this.contentMaskTable) {
|
|
13187
|
+
if (ganttContent) {
|
|
13188
|
+
let content$$1 = ganttContent;
|
|
13189
|
+
this.renderBackGround(content$$1);
|
|
13190
|
+
if (this.element.querySelectorAll('.' + timelineHeaderTableContainer).length != 0) {
|
|
13191
|
+
this.singleTier = this.timelineModule.isSingleTier ? 1 : 2;
|
|
13192
|
+
for (var i = 0; i < this.singleTier; i++) {
|
|
13193
|
+
this.element.querySelectorAll('.' + timelineHeaderTableContainer)[i]['style'].visibility = "hidden";
|
|
13194
|
+
}
|
|
13195
|
+
}
|
|
13196
|
+
if (this.singleTier === 0) {
|
|
13197
|
+
this.singleTier = 2;
|
|
13198
|
+
}
|
|
13199
|
+
this.element.getElementsByClassName(chartBodyContent)[0]['style'].visibility = "hidden";
|
|
13200
|
+
this.contentMaskTable = this.contentMaskTable = this.createMaskTable(content$$1);
|
|
13201
|
+
}
|
|
13202
|
+
if (ganttHeader) {
|
|
13203
|
+
this.element.querySelector('.' + timelineHeaderContainer)['style'].position = "static";
|
|
13204
|
+
let content$$1 = ganttHeader;
|
|
13205
|
+
this.renderHeaderBackground(content$$1);
|
|
13206
|
+
this.headerMaskTable = this.headerMaskTable = this.createMaskTable(content$$1);
|
|
13207
|
+
}
|
|
13208
|
+
}
|
|
13209
|
+
}
|
|
13210
|
+
renderHeaderBackground(element) {
|
|
13211
|
+
const parentElement = element;
|
|
13212
|
+
const timelineHeight = element.getBoundingClientRect().height;
|
|
13213
|
+
const header = closest(parentElement, '.' + timelineHeaderContainer) ? true : false;
|
|
13214
|
+
if (header) {
|
|
13215
|
+
const div = this.createElement('div', { className: 'e-table-background' });
|
|
13216
|
+
const tempRow = this.createElement('tr', { className: 'e-masked-row e-row', attrs: {
|
|
13217
|
+
style: 'height: ' + timelineHeight + 'px;'
|
|
13218
|
+
} });
|
|
13219
|
+
let backgroundLines = 0;
|
|
13220
|
+
let containerWidth = Math.round(element.getBoundingClientRect().width);
|
|
13221
|
+
for (let i = 0; i < 3; i++) {
|
|
13222
|
+
if (this.enableRtl) {
|
|
13223
|
+
div.appendChild(this.createElement('div', { className: 'e-div-background', attrs: {
|
|
13224
|
+
style: 'left: ' + (containerWidth -= ((160))) + 'px; top:0px;'
|
|
13225
|
+
} }));
|
|
13226
|
+
}
|
|
13227
|
+
else {
|
|
13228
|
+
div.appendChild(this.createElement('div', { className: 'e-div-background', attrs: {
|
|
13229
|
+
style: 'left: ' + (backgroundLines += ((160))) + 'px; top:0px;'
|
|
13230
|
+
} }));
|
|
13231
|
+
}
|
|
13232
|
+
}
|
|
13233
|
+
parentElement.insertBefore(div, parentElement.firstChild);
|
|
13234
|
+
}
|
|
13235
|
+
}
|
|
13236
|
+
renderBackGround(element) {
|
|
13237
|
+
const parentElement = element;
|
|
13238
|
+
const timelineHeight = element.getBoundingClientRect().height;
|
|
13239
|
+
const content$$1 = closest(parentElement, '.' + chartBodyContainer) ? true : false;
|
|
13240
|
+
if (content$$1) {
|
|
13241
|
+
const div = this.createElement('div', { className: 'e-table-background' });
|
|
13242
|
+
const tempRow = this.createElement('tr', { className: 'e-masked-row e-row', attrs: {
|
|
13243
|
+
style: 'height: ' + timelineHeight + 'px;'
|
|
13244
|
+
} });
|
|
13245
|
+
let backgroundLines = 0;
|
|
13246
|
+
let containerWidth = Math.round(element.getBoundingClientRect().width);
|
|
13247
|
+
for (let i = 0; i < 3; i++) {
|
|
13248
|
+
if (this.enableRtl) {
|
|
13249
|
+
div.appendChild(this.createElement('div', { className: 'e-div-background', attrs: {
|
|
13250
|
+
style: 'left: ' + (containerWidth -= (160)) + 'px;z-index:1;'
|
|
13251
|
+
} }));
|
|
13252
|
+
}
|
|
13253
|
+
else {
|
|
13254
|
+
div.appendChild(this.createElement('div', { className: 'e-div-background', attrs: {
|
|
13255
|
+
style: 'left: ' + (backgroundLines += (160)) + 'px;z-index:1;'
|
|
13256
|
+
} }));
|
|
13257
|
+
}
|
|
13258
|
+
}
|
|
13259
|
+
parentElement.insertBefore(div, parentElement.firstChild);
|
|
13260
|
+
}
|
|
13261
|
+
}
|
|
13262
|
+
createMaskTable(element) {
|
|
13263
|
+
const parentElement = element;
|
|
13264
|
+
const shimmerContainerHeight = element.getBoundingClientRect().height;
|
|
13265
|
+
const header = closest(parentElement, '.' + timelineHeaderContainer) ? true : false;
|
|
13266
|
+
let maskTable;
|
|
13267
|
+
if (header) {
|
|
13268
|
+
maskTable = this.createEmptyTimeLineTable(shimmerContainerHeight);
|
|
13269
|
+
maskTable.style.position = 'sticky';
|
|
13270
|
+
maskTable.style.left = 0 + 'px';
|
|
13271
|
+
if (this.enableRtl) {
|
|
13272
|
+
maskTable.style.removeProperty('left');
|
|
13273
|
+
}
|
|
13274
|
+
}
|
|
13275
|
+
else {
|
|
13276
|
+
maskTable = this.createEmptyMaskTable(shimmerContainerHeight);
|
|
13277
|
+
maskTable.style.position = 'absolute';
|
|
13278
|
+
maskTable.style.zIndex = 1;
|
|
13279
|
+
}
|
|
13280
|
+
if (!header) {
|
|
13281
|
+
maskTable.style.height = element.getBoundingClientRect().height + 'px';
|
|
13282
|
+
parentElement.insertBefore(maskTable, parentElement.firstChild);
|
|
13283
|
+
}
|
|
13284
|
+
else {
|
|
13285
|
+
maskTable.style.height = element.getBoundingClientRect().height + 'px';
|
|
13286
|
+
let div = this.createElement('div', { className: 'e-temp-timeline' });
|
|
13287
|
+
div.style.width = 614 + 'px';
|
|
13288
|
+
div.style.position = 'sticky';
|
|
13289
|
+
if (this.enableRtl) {
|
|
13290
|
+
div.style['margin-right'] = Math.abs(this.scrollLeftValue) + 'px';
|
|
13291
|
+
}
|
|
13292
|
+
else {
|
|
13293
|
+
div.style['margin-left'] = this.scrollLeftValue + 'px';
|
|
13294
|
+
}
|
|
13295
|
+
div.appendChild(maskTable);
|
|
13296
|
+
parentElement.insertBefore(div, parentElement.firstChild);
|
|
13297
|
+
}
|
|
13298
|
+
return maskTable;
|
|
13299
|
+
}
|
|
13300
|
+
createEmptyTimeLineTable(timelineHeight) {
|
|
13301
|
+
const table = this.createElement('table', { className: 'e-table e-masked-table' });
|
|
13302
|
+
const tbody = this.createElement('tbody', { className: 'e-masked-tbody' });
|
|
13303
|
+
let row = [];
|
|
13304
|
+
const duplicateRow = this.createElement('tr', { className: 'e-masked-row e-row', attrs: {
|
|
13305
|
+
style: 'height: ' + timelineHeight / 2 + 'px;'
|
|
13306
|
+
} });
|
|
13307
|
+
for (let i = 0; i < this.singleTier; i++) {
|
|
13308
|
+
row.push(duplicateRow.cloneNode(true));
|
|
13309
|
+
}
|
|
13310
|
+
this.topBottomHeader = 0;
|
|
13311
|
+
for (let i = 0; i < row.length; i++) {
|
|
13312
|
+
tbody.appendChild(this.applyTimelineMaskRow(row[i]));
|
|
13313
|
+
this.topBottomHeader = this.topBottomHeader + 1;
|
|
13314
|
+
}
|
|
13315
|
+
table.appendChild(tbody);
|
|
13316
|
+
table.style.width = 100 + '%';
|
|
13317
|
+
return table;
|
|
13318
|
+
}
|
|
13319
|
+
applyTimelineMaskRow(row) {
|
|
13320
|
+
const maskRow = row;
|
|
13321
|
+
maskRow.appendChild(this.createElement('td', { className: 'e-timeline-masked-top-header-cell' }));
|
|
13322
|
+
maskRow.appendChild(this.createElement('td', { className: 'e-timeline-masked-top-header-cell' }));
|
|
13323
|
+
maskRow.appendChild(this.createElement('td', { className: 'e-timeline-masked-top-header-cell' }));
|
|
13324
|
+
maskRow.appendChild(this.createElement('td', { className: 'e-timeline-masked-top-header-cell' }));
|
|
13325
|
+
for (let i = 0; i < maskRow.childNodes.length - 1; i++) {
|
|
13326
|
+
maskRow.childNodes[i]['style']['width'] = 166 + 'px';
|
|
13327
|
+
}
|
|
13328
|
+
const maskCells = [].slice.call(maskRow.childNodes);
|
|
13329
|
+
for (let i = 0; i < maskCells.length; i++) {
|
|
13330
|
+
const maskCell = maskCells[i];
|
|
13331
|
+
switch (this.topBottomHeader) {
|
|
13332
|
+
case 0:
|
|
13333
|
+
if (this.enableRtl) {
|
|
13334
|
+
maskCell.innerHTML = '<span class="e-mask e-skeleton e-skeleton-text e-shimmer-wave e-timelineHeader"></span>';
|
|
13335
|
+
maskCell.children[0]['style'].left = -20 + 'px';
|
|
13336
|
+
}
|
|
13337
|
+
else {
|
|
13338
|
+
maskCell.innerHTML = '<span class="e-mask e-skeleton e-skeleton-text e-shimmer-wave e-timelineHeader"></span>';
|
|
13339
|
+
}
|
|
13340
|
+
break;
|
|
13341
|
+
case 1:
|
|
13342
|
+
maskCell.appendChild(this.createElement('td', { className: 'e-timeline-masked-top-header-cell' }));
|
|
13343
|
+
maskCell.appendChild(this.createElement('td', { className: 'e-timeline-masked-top-header-cell' }));
|
|
13344
|
+
maskCell.appendChild(this.createElement('td', { className: 'e-timeline-masked-top-header-cell' }));
|
|
13345
|
+
const innerMaskCells = [].slice.call(maskCell.childNodes);
|
|
13346
|
+
for (let i = 0; i < innerMaskCells.length; i++) {
|
|
13347
|
+
const htmlInner = innerMaskCells[i];
|
|
13348
|
+
if (i === 0) {
|
|
13349
|
+
if (this.enableRtl) {
|
|
13350
|
+
htmlInner.innerHTML = '<span class="e-mask e-skeleton e-skeleton-text e-shimmer-wave e-innerHTML"></span>';
|
|
13351
|
+
htmlInner.children[0]['style'].left = -14 + 'px';
|
|
13352
|
+
}
|
|
13353
|
+
else {
|
|
13354
|
+
htmlInner.innerHTML = '<span class="e-mask e-skeleton e-skeleton-text e-shimmer-wave e-innerHTML"></span>';
|
|
13355
|
+
}
|
|
13356
|
+
}
|
|
13357
|
+
else if (i === 1) {
|
|
13358
|
+
if (this.enableRtl) {
|
|
13359
|
+
htmlInner.innerHTML = '<span class="e-mask e-skeleton e-skeleton-text e-shimmer-wave e-innerHTML1"></span>';
|
|
13360
|
+
htmlInner.children[0]['style'].left = -30 + 'px';
|
|
13361
|
+
}
|
|
13362
|
+
else {
|
|
13363
|
+
htmlInner.innerHTML = '<span class="e-mask e-skeleton e-skeleton-text e-shimmer-wave e-innerHTML1"></span>';
|
|
13364
|
+
}
|
|
13365
|
+
}
|
|
13366
|
+
else {
|
|
13367
|
+
if (this.enableRtl) {
|
|
13368
|
+
htmlInner.innerHTML = '<span class="e-mask e-skeleton e-skeleton-text e-shimmer-wave e-innerHTML2"></span>';
|
|
13369
|
+
htmlInner.children[0]['style'].left = -60 + 'px';
|
|
13370
|
+
}
|
|
13371
|
+
else {
|
|
13372
|
+
htmlInner.innerHTML = '<span class="e-mask e-skeleton e-skeleton-text e-shimmer-wave e-innerHTML2"></span>';
|
|
13373
|
+
}
|
|
13374
|
+
}
|
|
13375
|
+
}
|
|
13376
|
+
break;
|
|
13377
|
+
}
|
|
13378
|
+
}
|
|
13379
|
+
return maskRow;
|
|
13380
|
+
}
|
|
13381
|
+
createEmptyMaskTable(timelineHeight) {
|
|
13382
|
+
const table = this.createElement('table', { className: 'e-table e-masked-table' });
|
|
13383
|
+
const tbody = this.createElement('tbody', { className: 'e-masked-tbody' });
|
|
13384
|
+
let row = [];
|
|
13385
|
+
const duplicateRow = this.createElement('tr', { className: 'e-masked-row e-row', attrs: {
|
|
13386
|
+
style: 'height: ' + timelineHeight / 7 + 'px;'
|
|
13387
|
+
} });
|
|
13388
|
+
this.columnLoop = 0;
|
|
13389
|
+
for (let i = 0; i < 6; i++) {
|
|
13390
|
+
row.push(duplicateRow.cloneNode(true));
|
|
13391
|
+
}
|
|
13392
|
+
for (let j = 0; j < row.length; j++) {
|
|
13393
|
+
if (this.columnLoop < 4) {
|
|
13394
|
+
this.columnLoop = this.columnLoop + 1;
|
|
13395
|
+
}
|
|
13396
|
+
else if (this.columnLoop === 4) {
|
|
13397
|
+
this.columnLoop = 1;
|
|
13398
|
+
}
|
|
13399
|
+
tbody.appendChild(this.applyMaskRow(row[j]));
|
|
13400
|
+
}
|
|
13401
|
+
table.appendChild(tbody);
|
|
13402
|
+
table.style.width = 100 + '%';
|
|
13403
|
+
let div = this.createElement('div', { className: 'e-temp-container' });
|
|
13404
|
+
div.style.width = 'calc(100% - ' + 17 + 'px)';
|
|
13405
|
+
div.style.overflow = 'hidden';
|
|
13406
|
+
div.appendChild(table);
|
|
13407
|
+
return div;
|
|
13408
|
+
}
|
|
13409
|
+
applyMaskRow(row) {
|
|
13410
|
+
const maskRow = row;
|
|
13411
|
+
if (this.columnLoop < 4) {
|
|
13412
|
+
maskRow.appendChild(this.createElement('td', { className: 'e-masked-cell e-rowcell' }));
|
|
13413
|
+
maskRow.appendChild(this.createElement('td', { className: 'e-masked-cell e-rowcell' }));
|
|
13414
|
+
}
|
|
13415
|
+
else {
|
|
13416
|
+
maskRow.appendChild(this.createElement('td', { className: 'e-masked-cell e-rowcell' }));
|
|
13417
|
+
}
|
|
13418
|
+
const maskCells = [].slice.call(maskRow.childNodes);
|
|
13419
|
+
for (let i = 0; i < maskCells.length; i++) {
|
|
13420
|
+
const maskCell = maskCells[i];
|
|
13421
|
+
switch (this.columnLoop) {
|
|
13422
|
+
case 1:
|
|
13423
|
+
if (i === 0) {
|
|
13424
|
+
if (this.enableRtl) {
|
|
13425
|
+
maskCell.innerHTML = '<span class="e-mask e-skeleton e-skeleton-text e-shimmer-wave e-maskcell01"></span>';
|
|
13426
|
+
maskCell.children[0]['style'].left = -14 + 'px';
|
|
13427
|
+
}
|
|
13428
|
+
else {
|
|
13429
|
+
maskCell.innerHTML = '<span class="e-mask e-skeleton e-skeleton-text e-shimmer-wave e-maskcell01"></span>';
|
|
13430
|
+
}
|
|
13431
|
+
}
|
|
13432
|
+
else {
|
|
13433
|
+
maskCell.innerHTML = '<span class="e-mask e-skeleton e-skeleton-text e-shimmer-wave e-maskcell02"></span>';
|
|
13434
|
+
}
|
|
13435
|
+
break;
|
|
13436
|
+
case 2:
|
|
13437
|
+
if (i === 0) {
|
|
13438
|
+
if (this.enableRtl) {
|
|
13439
|
+
maskCell.innerHTML = '<span class="e-mask e-skeleton e-skeleton-text e-shimmer-wave e-maskcell03"></span>';
|
|
13440
|
+
maskCell.children[0]['style'].left = -14 + 'px';
|
|
13441
|
+
}
|
|
13442
|
+
else {
|
|
13443
|
+
maskCell.innerHTML = '<span class="e-mask e-skeleton e-skeleton-text e-shimmer-wave e-maskcell03"></span>';
|
|
13444
|
+
}
|
|
13445
|
+
}
|
|
13446
|
+
else {
|
|
13447
|
+
maskCell.innerHTML = '<span class="e-mask e-skeleton e-skeleton-text e-shimmer-wave e-maskcell04"></span>';
|
|
13448
|
+
}
|
|
13449
|
+
break;
|
|
13450
|
+
case 3:
|
|
13451
|
+
if (i === 0) {
|
|
13452
|
+
if (this.enableRtl) {
|
|
13453
|
+
maskCell.innerHTML = '<span class="e-mask e-skeleton e-skeleton-text e-shimmer-wave e-maskcell05"></span>';
|
|
13454
|
+
maskCell.children[0]['style'].left = -64 + 'px';
|
|
13455
|
+
}
|
|
13456
|
+
else {
|
|
13457
|
+
maskCell.innerHTML = '<span class="e-mask e-skeleton e-skeleton-text e-shimmer-wave e-maskcell05"></span>';
|
|
13458
|
+
}
|
|
13459
|
+
}
|
|
13460
|
+
else {
|
|
13461
|
+
if (this.enableRtl) {
|
|
13462
|
+
maskCell.innerHTML = '<span class="e-mask e-skeleton e-skeleton-text e-shimmer-wave e-maskcell06"></span>';
|
|
13463
|
+
maskCell.children[0]['style'].left = -192 + 'px';
|
|
13464
|
+
}
|
|
13465
|
+
else {
|
|
13466
|
+
maskCell.innerHTML = '<span class="e-mask e-skeleton e-skeleton-text e-shimmer-wave e-maskcell06"></span>';
|
|
13467
|
+
}
|
|
13468
|
+
}
|
|
13469
|
+
break;
|
|
13470
|
+
case 4:
|
|
13471
|
+
if (this.enableRtl) {
|
|
13472
|
+
maskCell.innerHTML = '<span class="e-mask e-skeleton e-skeleton-text e-shimmer-wave e-maskcell07"></span>';
|
|
13473
|
+
maskCell.children[0]['style'].left = -388 + 'px';
|
|
13474
|
+
}
|
|
13475
|
+
else {
|
|
13476
|
+
maskCell.innerHTML = '<span class="e-mask e-skeleton e-skeleton-text e-shimmer-wave e-maskcell07"></span>';
|
|
13477
|
+
}
|
|
13478
|
+
break;
|
|
13479
|
+
}
|
|
13480
|
+
}
|
|
13481
|
+
return maskRow;
|
|
13482
|
+
}
|
|
12942
13483
|
/**
|
|
12943
13484
|
* Method used to show spinner.
|
|
12944
13485
|
*
|
|
@@ -12964,7 +13505,7 @@ let Gantt = class Gantt extends Component {
|
|
|
12964
13505
|
this.timelineModule.calculateZoomingLevelsPerDayWidth(); // To calculate the perDaywidth
|
|
12965
13506
|
}
|
|
12966
13507
|
/**
|
|
12967
|
-
* @param {boolean} isChange .
|
|
13508
|
+
* @param {boolean} isChange -Defines whether task data is changed.
|
|
12968
13509
|
* @returns {void} .
|
|
12969
13510
|
* @private
|
|
12970
13511
|
*/
|
|
@@ -13064,7 +13605,7 @@ let Gantt = class Gantt extends Component {
|
|
|
13064
13605
|
/**
|
|
13065
13606
|
* Method for updating row height value in connector line collections
|
|
13066
13607
|
*
|
|
13067
|
-
* @param {IConnectorLineObject[]} collection .
|
|
13608
|
+
* @param {IConnectorLineObject[]} collection -Defines the CollectorLine collection.
|
|
13068
13609
|
* @returns {void} .
|
|
13069
13610
|
* @private
|
|
13070
13611
|
*/
|
|
@@ -13100,7 +13641,7 @@ let Gantt = class Gantt extends Component {
|
|
|
13100
13641
|
this.currentViewData = this.treeGrid.getCurrentViewRecords().slice();
|
|
13101
13642
|
}
|
|
13102
13643
|
/**
|
|
13103
|
-
* @param {IGanttData} records .
|
|
13644
|
+
* @param {IGanttData} records -Defines the delete record collections.
|
|
13104
13645
|
* @returns {IGanttData} .
|
|
13105
13646
|
* @private
|
|
13106
13647
|
*/
|
|
@@ -13112,7 +13653,7 @@ let Gantt = class Gantt extends Component {
|
|
|
13112
13653
|
return updatedRecord;
|
|
13113
13654
|
}
|
|
13114
13655
|
/**
|
|
13115
|
-
* @param {object} args .
|
|
13656
|
+
* @param {object} args -Update the gantt element content height.
|
|
13116
13657
|
* @returns {void} .
|
|
13117
13658
|
* @private
|
|
13118
13659
|
*/
|
|
@@ -13463,7 +14004,12 @@ let Gantt = class Gantt extends Component {
|
|
|
13463
14004
|
this.treeGrid.height = '100%';
|
|
13464
14005
|
this.notify('tree-grid-created', {});
|
|
13465
14006
|
this.createGanttPopUpElement();
|
|
13466
|
-
this.
|
|
14007
|
+
if (!isNullOrUndefined(this.loadingIndicator) && this.loadingIndicator.indicatorType === "Shimmer") {
|
|
14008
|
+
this.hideMaskRow();
|
|
14009
|
+
}
|
|
14010
|
+
else {
|
|
14011
|
+
this.hideSpinner();
|
|
14012
|
+
}
|
|
13467
14013
|
setValue('isGanttCreated', true, args);
|
|
13468
14014
|
this.renderComplete();
|
|
13469
14015
|
}
|
|
@@ -13475,6 +14021,11 @@ let Gantt = class Gantt extends Component {
|
|
|
13475
14021
|
this.criticalPathModule.showCriticalPath(this.enableCriticalPath);
|
|
13476
14022
|
}
|
|
13477
14023
|
this.notify('recordsUpdated', {});
|
|
14024
|
+
for (let i = 0; i < document.getElementsByClassName('e-timeline-header-table-container').length; i++) {
|
|
14025
|
+
for (let j = 0; j < document.getElementsByClassName('e-timeline-header-table-container')[i].children[0].children[0].children.length; j++) {
|
|
14026
|
+
document.getElementsByClassName('e-timeline-header-table-container')[i].children[0].children[0].children[j].children[0].setAttribute('tabindex', '-1');
|
|
14027
|
+
}
|
|
14028
|
+
}
|
|
13478
14029
|
if (this.enableCriticalPath && this.criticalPathModule) {
|
|
13479
14030
|
let criticalModule = this.criticalPathModule;
|
|
13480
14031
|
this.criticalPathModule.criticalConnectorLine(criticalModule.criticalPathCollection, criticalModule.detailPredecessorCollection, true, criticalModule.predecessorCollectionTaskIds);
|
|
@@ -13506,8 +14057,8 @@ let Gantt = class Gantt extends Component {
|
|
|
13506
14057
|
/**
|
|
13507
14058
|
* Called internally, if any of the property value changed.
|
|
13508
14059
|
*
|
|
13509
|
-
* @param {GanttModel} newProp .
|
|
13510
|
-
* @param {GanttModel} oldProp .
|
|
14060
|
+
* @param {GanttModel} newProp - Defines the New GanttModel.
|
|
14061
|
+
* @param {GanttModel} oldProp - Defines the old GanttModel.
|
|
13511
14062
|
* @returns {void} .
|
|
13512
14063
|
* @private
|
|
13513
14064
|
*/
|
|
@@ -13569,6 +14120,12 @@ let Gantt = class Gantt extends Component {
|
|
|
13569
14120
|
this.dataOperation.checkDataBinding(true);
|
|
13570
14121
|
break;
|
|
13571
14122
|
case 'enableCriticalPath':
|
|
14123
|
+
if (!isNullOrUndefined(this.loadingIndicator) && this.loadingIndicator.indicatorType === "Shimmer") {
|
|
14124
|
+
this.hideMaskRow();
|
|
14125
|
+
}
|
|
14126
|
+
else {
|
|
14127
|
+
this.hideSpinner();
|
|
14128
|
+
}
|
|
13572
14129
|
if (this.enableCriticalPath && this.criticalPathModule) {
|
|
13573
14130
|
this.criticalPathModule.showCriticalPath(this.enableCriticalPath);
|
|
13574
14131
|
let criticalModule = this.criticalPathModule;
|
|
@@ -14115,7 +14672,7 @@ let Gantt = class Gantt extends Component {
|
|
|
14115
14672
|
thWidth = thElements[n].style.width;
|
|
14116
14673
|
const divElement = createElement('div', {
|
|
14117
14674
|
className: 'e-line-container-cell',
|
|
14118
|
-
styles: 'left:' + leftPos + 'px'
|
|
14675
|
+
styles: (this.enableRtl ? 'right:' + (leftPos + 1) : 'left:' + leftPos) + 'px'
|
|
14119
14676
|
});
|
|
14120
14677
|
containerDiv.appendChild(divElement);
|
|
14121
14678
|
}
|
|
@@ -14250,12 +14807,18 @@ let Gantt = class Gantt extends Component {
|
|
|
14250
14807
|
}
|
|
14251
14808
|
/**
|
|
14252
14809
|
*
|
|
14253
|
-
* @param {object} args .
|
|
14810
|
+
* @param {object} args -Defines the edited event args.
|
|
14254
14811
|
* @returns {void} .
|
|
14255
14812
|
* @private
|
|
14256
14813
|
*/
|
|
14257
14814
|
actionBeginTask(args) {
|
|
14258
14815
|
this.trigger('actionBegin', args);
|
|
14816
|
+
if (!isNullOrUndefined(this.loadingIndicator) && this.loadingIndicator.indicatorType === "Shimmer") {
|
|
14817
|
+
this.showMaskRow();
|
|
14818
|
+
}
|
|
14819
|
+
else {
|
|
14820
|
+
this.showSpinner();
|
|
14821
|
+
}
|
|
14259
14822
|
}
|
|
14260
14823
|
/**
|
|
14261
14824
|
* To move horizontal scroll bar of Gantt to specific date.
|
|
@@ -14291,7 +14854,7 @@ let Gantt = class Gantt extends Component {
|
|
|
14291
14854
|
if (!isNullOrUndefined(left)) {
|
|
14292
14855
|
left = this.ganttChartModule.scrollElement.scrollWidth <= left ?
|
|
14293
14856
|
this.ganttChartModule.scrollElement.scrollWidth : left;
|
|
14294
|
-
this.ganttChartModule.scrollObject.setScrollLeft(left);
|
|
14857
|
+
this.ganttChartModule.scrollObject.setScrollLeft(left, this.enableRtl ? -1 : 0);
|
|
14295
14858
|
}
|
|
14296
14859
|
if (!isNullOrUndefined(top)) {
|
|
14297
14860
|
top = this.ganttChartModule.scrollElement.scrollHeight <= top ? this.ganttChartModule.scrollElement.scrollHeight : top;
|
|
@@ -14324,8 +14887,8 @@ let Gantt = class Gantt extends Component {
|
|
|
14324
14887
|
/**
|
|
14325
14888
|
* Get parent task by clone parent item.
|
|
14326
14889
|
*
|
|
14327
|
-
* @param {IGanttData} ganttRecord .
|
|
14328
|
-
* @param {number} level .
|
|
14890
|
+
* @param {IGanttData} ganttRecord -Defines the Gantt record.
|
|
14891
|
+
* @param {number} level -Defines the selected record level.
|
|
14329
14892
|
* @returns {IGanttData} .
|
|
14330
14893
|
* @hidden
|
|
14331
14894
|
*/
|
|
@@ -14438,7 +15001,7 @@ let Gantt = class Gantt extends Component {
|
|
|
14438
15001
|
/**
|
|
14439
15002
|
* To update timeline at start point with one unit.
|
|
14440
15003
|
*
|
|
14441
|
-
* @param {string} mode .
|
|
15004
|
+
* @param {string} mode - Render previous span of Timeline.
|
|
14442
15005
|
* @returns {void} .
|
|
14443
15006
|
* @public
|
|
14444
15007
|
*/
|
|
@@ -14448,7 +15011,7 @@ let Gantt = class Gantt extends Component {
|
|
|
14448
15011
|
/**
|
|
14449
15012
|
* To update timeline at end point with one unit.
|
|
14450
15013
|
*
|
|
14451
|
-
* @param {string} mode .
|
|
15014
|
+
* @param {string} mode - Render next span of Timeline.
|
|
14452
15015
|
* @returns {void} .
|
|
14453
15016
|
* @public
|
|
14454
15017
|
*/
|
|
@@ -14522,7 +15085,7 @@ let Gantt = class Gantt extends Component {
|
|
|
14522
15085
|
/**
|
|
14523
15086
|
* Method to clear edited collections in gantt set edit flag value
|
|
14524
15087
|
*
|
|
14525
|
-
* @param {boolean} isStart .
|
|
15088
|
+
* @param {boolean} isStart -Defines whether to initiate edit action.
|
|
14526
15089
|
* @returns {void} .
|
|
14527
15090
|
* @private
|
|
14528
15091
|
*/
|
|
@@ -14795,8 +15358,8 @@ let Gantt = class Gantt extends Component {
|
|
|
14795
15358
|
/**
|
|
14796
15359
|
* To update existing taskId with new unique Id.
|
|
14797
15360
|
*
|
|
14798
|
-
* @param {number | string} currentId .
|
|
14799
|
-
* @param {number | string} newId .
|
|
15361
|
+
* @param {number | string} currentId - Defines the current Id of the record.
|
|
15362
|
+
* @param {number | string} newId - Defines the new Id of the record.
|
|
14800
15363
|
* @returns {void} .
|
|
14801
15364
|
*/
|
|
14802
15365
|
updateTaskId(currentId, newId) {
|
|
@@ -14898,9 +15461,9 @@ let Gantt = class Gantt extends Component {
|
|
|
14898
15461
|
/**
|
|
14899
15462
|
* Reorder the rows based on given indexes and position
|
|
14900
15463
|
*
|
|
14901
|
-
* @param {number[]} fromIndexes .
|
|
14902
|
-
* @param {number} toIndex .
|
|
14903
|
-
* @param {string} position .
|
|
15464
|
+
* @param {number[]} fromIndexes - Defines the Dragged record index.
|
|
15465
|
+
* @param {number} toIndex - Defines the Dropped record index.
|
|
15466
|
+
* @param {string} position -Defines the position of the dropped row.
|
|
14904
15467
|
* @returns {void} .
|
|
14905
15468
|
*/
|
|
14906
15469
|
reorderRows(fromIndexes, toIndex, position) {
|
|
@@ -15075,7 +15638,7 @@ let Gantt = class Gantt extends Component {
|
|
|
15075
15638
|
/**
|
|
15076
15639
|
* Method to get class name for unscheduled tasks
|
|
15077
15640
|
*
|
|
15078
|
-
* @param {ITaskData} ganttProp .
|
|
15641
|
+
* @param {ITaskData} ganttProp -Defines the Gantt propertie.
|
|
15079
15642
|
* @returns {boolean} .
|
|
15080
15643
|
* @private
|
|
15081
15644
|
*/
|
|
@@ -15149,7 +15712,7 @@ let Gantt = class Gantt extends Component {
|
|
|
15149
15712
|
const clientTop = document.documentElement.clientTop || document.body.clientTop || 0;
|
|
15150
15713
|
const clientLeft = document.documentElement.clientLeft || document.body.clientLeft || 0;
|
|
15151
15714
|
const top = box.top + scrollTop - clientTop;
|
|
15152
|
-
const left = box.left + scrollLeft - clientLeft;
|
|
15715
|
+
const left = this.enableRtl ? box.right + scrollLeft - clientLeft : box.left + scrollLeft - clientLeft;
|
|
15153
15716
|
return { top: Math.round(top), left: Math.round(left), width: box.width, height: box.height };
|
|
15154
15717
|
}
|
|
15155
15718
|
/**
|
|
@@ -15421,7 +15984,7 @@ let Gantt = class Gantt extends Component {
|
|
|
15421
15984
|
/**
|
|
15422
15985
|
* To change the mode of a record.
|
|
15423
15986
|
*
|
|
15424
|
-
* @param {object} data .
|
|
15987
|
+
* @param {object} data - Use to change the TaskMode either manual, auto or custom.
|
|
15425
15988
|
* @returns {void} .
|
|
15426
15989
|
*/
|
|
15427
15990
|
changeTaskMode(data) {
|
|
@@ -15493,6 +16056,12 @@ __decorate([
|
|
|
15493
16056
|
__decorate([
|
|
15494
16057
|
Property(true)
|
|
15495
16058
|
], Gantt.prototype, "disableHtmlEncode", void 0);
|
|
16059
|
+
__decorate([
|
|
16060
|
+
Complex({}, LoadingIndicator)
|
|
16061
|
+
], Gantt.prototype, "loadingIndicator", void 0);
|
|
16062
|
+
__decorate([
|
|
16063
|
+
Property(true)
|
|
16064
|
+
], Gantt.prototype, "enableVirtualMaskRow", void 0);
|
|
15496
16065
|
__decorate([
|
|
15497
16066
|
Property(true)
|
|
15498
16067
|
], Gantt.prototype, "autoFocusTasks", void 0);
|
|
@@ -16518,6 +17087,7 @@ class EditTooltip {
|
|
|
16518
17087
|
this.toolTipObj = new Tooltip({
|
|
16519
17088
|
opensOn: opensOn,
|
|
16520
17089
|
position: 'TopRight',
|
|
17090
|
+
enableRtl: this.parent.enableRtl,
|
|
16521
17091
|
mouseTrail: mouseTrail,
|
|
16522
17092
|
cssClass: ganttTooltip,
|
|
16523
17093
|
target: target ? target : null,
|
|
@@ -16567,12 +17137,15 @@ class EditTooltip {
|
|
|
16567
17137
|
this.parent.tooltipModule.toolTipObj.close();
|
|
16568
17138
|
this.updateTooltip(segmentIndex);
|
|
16569
17139
|
if (this.taskbarEdit.connectorSecondAction === 'ConnectorPointLeftDrag') {
|
|
17140
|
+
// eslint-disable-next-line security/detect-non-literal-fs-filename
|
|
16570
17141
|
this.toolTipObj.open(this.taskbarEdit.connectorSecondElement.querySelector('.' + connectorPointLeft));
|
|
16571
17142
|
}
|
|
16572
17143
|
else if (this.taskbarEdit.connectorSecondAction === 'ConnectorPointRightDrag') {
|
|
17144
|
+
// eslint-disable-next-line security/detect-non-literal-fs-filename
|
|
16573
17145
|
this.toolTipObj.open(this.taskbarEdit.connectorSecondElement.querySelector('.' + connectorPointRight));
|
|
16574
17146
|
}
|
|
16575
17147
|
else {
|
|
17148
|
+
// eslint-disable-next-line security/detect-non-literal-fs-filename
|
|
16576
17149
|
this.toolTipObj.open(this.taskbarEdit.taskBarEditElement);
|
|
16577
17150
|
}
|
|
16578
17151
|
}
|
|
@@ -16605,14 +17178,29 @@ class EditTooltip {
|
|
|
16605
17178
|
this.toolTipObj.content = this.getTooltipText(segmentIndex);
|
|
16606
17179
|
this.toolTipObj.refresh(this.taskbarEdit.taskBarEditElement);
|
|
16607
17180
|
if (this.taskbarEdit.taskBarEditAction === 'LeftResizing') {
|
|
16608
|
-
this.
|
|
17181
|
+
if (this.parent.enableRtl) {
|
|
17182
|
+
this.toolTipObj.offsetX = 0;
|
|
17183
|
+
}
|
|
17184
|
+
else {
|
|
17185
|
+
this.toolTipObj.offsetX = -taskWidth;
|
|
17186
|
+
}
|
|
16609
17187
|
}
|
|
16610
17188
|
else if (this.taskbarEdit.taskBarEditAction === 'RightResizing' ||
|
|
16611
17189
|
this.taskbarEdit.taskBarEditAction === 'ParentResizing') {
|
|
16612
|
-
this.
|
|
17190
|
+
if (this.parent.enableRtl) {
|
|
17191
|
+
this.toolTipObj.offsetX = -taskWidth;
|
|
17192
|
+
}
|
|
17193
|
+
else {
|
|
17194
|
+
this.toolTipObj.offsetX = 0;
|
|
17195
|
+
}
|
|
16613
17196
|
}
|
|
16614
17197
|
else if (this.taskbarEdit.taskBarEditAction === 'ProgressResizing') {
|
|
16615
|
-
this.
|
|
17198
|
+
if (this.parent.enableRtl) {
|
|
17199
|
+
this.toolTipObj.offsetX = -(progressWidth);
|
|
17200
|
+
}
|
|
17201
|
+
else {
|
|
17202
|
+
this.toolTipObj.offsetX = -(taskWidth - progressWidth);
|
|
17203
|
+
}
|
|
16616
17204
|
}
|
|
16617
17205
|
else if (this.taskbarEdit.taskBarEditAction === 'MilestoneDrag') {
|
|
16618
17206
|
this.toolTipObj.offsetX = -(this.parent.chartRowsModule.milestoneHeight / 2);
|
|
@@ -17118,8 +17706,14 @@ class TaskbarEdit extends DateProcessor {
|
|
|
17118
17706
|
const e = this.getCoordinate(event);
|
|
17119
17707
|
if (e.pageX || e.pageY) {
|
|
17120
17708
|
const containerPosition = this.parent.getOffsetRect(this.parent.ganttChartModule.chartBodyContainer);
|
|
17121
|
-
|
|
17122
|
-
this.
|
|
17709
|
+
if (this.parent.enableRtl) {
|
|
17710
|
+
this.mouseDownX = Math.abs(e.pageX - (containerPosition.left +
|
|
17711
|
+
Math.abs(this.parent.ganttChartModule.scrollObject.previousScroll.left)));
|
|
17712
|
+
}
|
|
17713
|
+
else {
|
|
17714
|
+
this.mouseDownX = (e.pageX - containerPosition.left) +
|
|
17715
|
+
this.parent.ganttChartModule.scrollObject.previousScroll.left;
|
|
17716
|
+
}
|
|
17123
17717
|
this.tooltipPositionX = this.mouseDownX;
|
|
17124
17718
|
this.mouseDownY = e.pageY - containerPosition.top +
|
|
17125
17719
|
this.parent.ganttChartModule.scrollObject.previousScroll.top;
|
|
@@ -17163,8 +17757,14 @@ class TaskbarEdit extends DateProcessor {
|
|
|
17163
17757
|
}
|
|
17164
17758
|
const containerPosition = this.parent.getOffsetRect(this.parent.ganttChartModule.chartBodyContainer);
|
|
17165
17759
|
const e = this.getCoordinate(event);
|
|
17166
|
-
this.
|
|
17167
|
-
this.
|
|
17760
|
+
if (this.parent.enableRtl) {
|
|
17761
|
+
this.mouseMoveX = Math.abs(e.pageX - (containerPosition.left +
|
|
17762
|
+
Math.abs(this.parent.ganttChartModule.scrollObject.previousScroll.left)));
|
|
17763
|
+
}
|
|
17764
|
+
else {
|
|
17765
|
+
this.mouseMoveX = e.pageX - containerPosition.left +
|
|
17766
|
+
this.parent.ganttChartModule.scrollObject.previousScroll.left;
|
|
17767
|
+
}
|
|
17168
17768
|
this.mouseMoveY = e.pageY - containerPosition.top +
|
|
17169
17769
|
this.parent.ganttChartModule.scrollObject.previousScroll.top;
|
|
17170
17770
|
this.dragMouseLeave = false;
|
|
@@ -17180,6 +17780,17 @@ class TaskbarEdit extends DateProcessor {
|
|
|
17180
17780
|
args.requestType = 'mergeSegment';
|
|
17181
17781
|
}
|
|
17182
17782
|
this.parent.trigger('actionBegin', args, (arg) => {
|
|
17783
|
+
if (args.taskBarEditAction === "ConnectorPointRightDrag" || args.taskBarEditAction === "ConnectorPointLeftDrag"
|
|
17784
|
+
|| args.taskBarEditAction === "LeftResizing" || args.taskBarEditAction === "RightResizing"
|
|
17785
|
+
|| args.taskBarEditAction === "ProgressResizing" || args.taskBarEditAction === "ChildDrag" || args.taskBarEditAction === "ParentDrag" || args.taskBarEditAction === "MilestoneDrag" || args.taskBarEditAction === "ManualParentDrag") {
|
|
17786
|
+
this.parent.showIndicator = false;
|
|
17787
|
+
}
|
|
17788
|
+
if (!isNullOrUndefined(this.parent.loadingIndicator) && this.parent.loadingIndicator.indicatorType === "Shimmer" && this.parent.showIndicator) {
|
|
17789
|
+
this.parent.showMaskRow();
|
|
17790
|
+
}
|
|
17791
|
+
else if (this.parent.showIndicator) {
|
|
17792
|
+
this.parent.showSpinner();
|
|
17793
|
+
}
|
|
17183
17794
|
if (arg.cancel === false) {
|
|
17184
17795
|
this.taskBarEditingAction(event, false);
|
|
17185
17796
|
}
|
|
@@ -17261,8 +17872,14 @@ class TaskbarEdit extends DateProcessor {
|
|
|
17261
17872
|
const containerPosition = this.parent.getOffsetRect(this.parent.ganttChartModule.chartBodyContainer);
|
|
17262
17873
|
const e = this.getCoordinate(event);
|
|
17263
17874
|
if (e.pageX || e.pageY) {
|
|
17264
|
-
this.
|
|
17265
|
-
this.
|
|
17875
|
+
if (this.parent.enableRtl) {
|
|
17876
|
+
this.mouseMoveX = Math.abs(e.pageX - (containerPosition.left +
|
|
17877
|
+
Math.abs(this.parent.ganttChartModule.scrollObject.previousScroll.left)));
|
|
17878
|
+
}
|
|
17879
|
+
else {
|
|
17880
|
+
this.mouseMoveX = e.pageX - containerPosition.left +
|
|
17881
|
+
this.parent.ganttChartModule.scrollObject.previousScroll.left;
|
|
17882
|
+
}
|
|
17266
17883
|
this.tooltipPositionX = this.mouseMoveX;
|
|
17267
17884
|
this.mouseMoveY = e.pageY - containerPosition.top +
|
|
17268
17885
|
this.parent.ganttChartModule.scrollObject.previousScroll.top;
|
|
@@ -17273,8 +17890,15 @@ class TaskbarEdit extends DateProcessor {
|
|
|
17273
17890
|
if ((this.taskBarEditRecord.ganttProperties.width > 3 && !(this.taskBarEditAction === 'ProgressResizing' &&
|
|
17274
17891
|
(this.taskBarEditRecord.ganttProperties.progress === 0 || this.taskBarEditRecord.ganttProperties.progress === 100))) ||
|
|
17275
17892
|
isConnectorLineEdit) {
|
|
17276
|
-
|
|
17277
|
-
|
|
17893
|
+
let mouseX = 0;
|
|
17894
|
+
if (this.parent.enableRtl) {
|
|
17895
|
+
mouseX = Math.abs(Math.abs(this.mouseMoveX) - Math.abs(this.parent.ganttChartModule.scrollObject.previousScroll.left) +
|
|
17896
|
+
containerPosition.left);
|
|
17897
|
+
}
|
|
17898
|
+
else {
|
|
17899
|
+
mouseX = this.mouseMoveX - this.parent.ganttChartModule.scrollObject.previousScroll.left +
|
|
17900
|
+
containerPosition.left;
|
|
17901
|
+
}
|
|
17278
17902
|
const mouseY = this.mouseMoveY - this.parent.ganttChartModule.scrollObject.previousScroll.top +
|
|
17279
17903
|
containerPosition.top;
|
|
17280
17904
|
if ((mouseX + 20) >
|
|
@@ -17282,6 +17906,12 @@ class TaskbarEdit extends DateProcessor {
|
|
|
17282
17906
|
this.timerCount = this.parent.ganttChartModule.scrollObject.previousScroll.left;
|
|
17283
17907
|
this.startScrollTimer('right');
|
|
17284
17908
|
}
|
|
17909
|
+
else if ((mouseX + 40) >
|
|
17910
|
+
containerPosition.left + this.parent.ganttChartModule.chartBodyContainer.offsetWidth && this.parent.enableRtl && this.parent.ganttChartModule.scrollObject.previousScroll.left == 0) {
|
|
17911
|
+
this.parent.ganttChartModule.scrollObject.previousScroll.left = -1;
|
|
17912
|
+
this.timerCount = this.parent.ganttChartModule.scrollObject.previousScroll.left;
|
|
17913
|
+
this.startScrollTimer('right');
|
|
17914
|
+
}
|
|
17285
17915
|
else if ((mouseX - 20) < containerPosition.left) {
|
|
17286
17916
|
this.timerCount = this.parent.ganttChartModule.scrollObject.previousScroll.left;
|
|
17287
17917
|
this.startScrollTimer('left');
|
|
@@ -17312,7 +17942,12 @@ class TaskbarEdit extends DateProcessor {
|
|
|
17312
17942
|
*/
|
|
17313
17943
|
startScrollTimer(direction) {
|
|
17314
17944
|
this.stopScrollTimer();
|
|
17945
|
+
let leftSign = 0;
|
|
17315
17946
|
this.scrollTimer = window.setInterval(() => {
|
|
17947
|
+
if (Math.sign(this.timerCount) == -1) {
|
|
17948
|
+
leftSign = -1;
|
|
17949
|
+
this.timerCount = Math.abs(this.timerCount);
|
|
17950
|
+
}
|
|
17316
17951
|
if (direction === 'right') {
|
|
17317
17952
|
this.timerCount = (this.timerCount + 1) >= this.parent.timelineModule.totalTimelineWidth ?
|
|
17318
17953
|
this.parent.timelineModule.totalTimelineWidth : (this.timerCount + 1);
|
|
@@ -17327,7 +17962,7 @@ class TaskbarEdit extends DateProcessor {
|
|
|
17327
17962
|
this.parent.ganttChartModule.scrollObject.setScrollTop(this.timerCount);
|
|
17328
17963
|
}
|
|
17329
17964
|
else {
|
|
17330
|
-
this.parent.ganttChartModule.scrollObject.setScrollLeft(this.timerCount);
|
|
17965
|
+
this.parent.ganttChartModule.scrollObject.setScrollLeft(this.timerCount, leftSign);
|
|
17331
17966
|
}
|
|
17332
17967
|
if (this.taskBarEditAction === 'ConnectorPointLeftDrag'
|
|
17333
17968
|
|| this.taskBarEditAction === 'ConnectorPointRightDrag') {
|
|
@@ -18023,6 +18658,7 @@ class TaskbarEdit extends DateProcessor {
|
|
|
18023
18658
|
*/
|
|
18024
18659
|
setItemPosition() {
|
|
18025
18660
|
const item = this.taskBarEditRecord.ganttProperties;
|
|
18661
|
+
let position = this.parent.enableRtl ? "right" : "left";
|
|
18026
18662
|
const segment = !isNullOrUndefined(item.segments) ? item.segments[this.segmentIndex] : null;
|
|
18027
18663
|
const width = this.taskBarEditAction === 'MilestoneDrag' || item.isMilestone ?
|
|
18028
18664
|
this.parent.chartRowsModule.milestoneHeight : item.width;
|
|
@@ -18054,11 +18690,16 @@ class TaskbarEdit extends DateProcessor {
|
|
|
18054
18690
|
if (segmentedTaskBarContainer && !isNullOrUndefined(item.segments)
|
|
18055
18691
|
&& (this.taskBarEditAction === 'RightResizing' || this.segmentIndex !== 0)) {
|
|
18056
18692
|
this.taskBarEditElement.style.width = (segment.width) + 'px';
|
|
18057
|
-
this.
|
|
18693
|
+
if (this.parent.enableRtl) {
|
|
18694
|
+
this.taskBarEditElement.style.right = (segment.left) + 'px';
|
|
18695
|
+
}
|
|
18696
|
+
else {
|
|
18697
|
+
this.taskBarEditElement.style.left = (segment.left) + 'px';
|
|
18698
|
+
}
|
|
18058
18699
|
}
|
|
18059
18700
|
taskBarMainContainer$$1.style.width = (width) + 'px';
|
|
18060
|
-
taskBarMainContainer$$1.style.left = (item.left) + 'px';
|
|
18061
18701
|
leftLabelContainer$$1.style.width = (item.left) + 'px';
|
|
18702
|
+
taskBarMainContainer$$1.style.setProperty(position, (item.left) + 'px');
|
|
18062
18703
|
if (this.taskBarEditAction === 'LeftResizing' && this.segmentIndex === 0) {
|
|
18063
18704
|
const parent = this.taskBarEditElement.parentElement;
|
|
18064
18705
|
const segmentedTasks = parent.getElementsByClassName('e-segmented-taskbar');
|
|
@@ -18066,31 +18707,42 @@ class TaskbarEdit extends DateProcessor {
|
|
|
18066
18707
|
const segment = item.segments[i];
|
|
18067
18708
|
const segmentElement = segmentedTasks[i];
|
|
18068
18709
|
segmentElement.style.width = (segment.width) + 'px';
|
|
18069
|
-
|
|
18710
|
+
if (this.parent.enableRtl) {
|
|
18711
|
+
segmentElement.style.right = (segment.left) + 'px';
|
|
18712
|
+
}
|
|
18713
|
+
else {
|
|
18714
|
+
segmentElement.style.left = (segment.left) + 'px';
|
|
18715
|
+
}
|
|
18070
18716
|
}
|
|
18071
18717
|
}
|
|
18072
18718
|
if (!isNullOrUndefined(rightLabelContainer$$1)) {
|
|
18073
|
-
rightLabelContainer$$1.style.
|
|
18719
|
+
rightLabelContainer$$1.style.setProperty(position, (item.left + width) + 'px');
|
|
18074
18720
|
}
|
|
18075
18721
|
}
|
|
18076
18722
|
if (traceConnectorPointRight) {
|
|
18077
|
-
|
|
18723
|
+
if (this.parent.enableRtl) {
|
|
18724
|
+
traceConnectorPointRight.style.left = (this.parent.isAdaptive ? (width + 10) : (width - 2)) + 'px';
|
|
18725
|
+
}
|
|
18726
|
+
else {
|
|
18727
|
+
traceConnectorPointRight.style.left = (this.parent.isAdaptive ? (width + 10) : (width + 2)) + 'px';
|
|
18728
|
+
}
|
|
18078
18729
|
}
|
|
18079
18730
|
if (this.taskBarEditAction === 'MilestoneDrag' || item.isMilestone) {
|
|
18080
|
-
taskBarMainContainer$$1.style.
|
|
18731
|
+
taskBarMainContainer$$1.style.setProperty(position, (item.left - (width / 2)) + 'px');
|
|
18081
18732
|
leftLabelContainer$$1.style.width = (item.left - (width / 2)) + 'px';
|
|
18082
18733
|
if (!isNullOrUndefined(rightLabelContainer$$1)) {
|
|
18083
|
-
rightLabelContainer$$1.style.
|
|
18734
|
+
rightLabelContainer$$1.style.setProperty(position, (item.left + (width / 2)) + 'px');
|
|
18084
18735
|
}
|
|
18085
18736
|
}
|
|
18086
18737
|
else if (this.taskBarEditAction === 'ProgressResizing') {
|
|
18087
18738
|
if (this.segmentIndex === -1) {
|
|
18088
|
-
traceChildTaskBar$$1.style.
|
|
18739
|
+
traceChildTaskBar$$1.style.setProperty(position, (item.left + item.progressWidth - 10) + 'px');
|
|
18089
18740
|
if (!isNullOrUndefined(traceChildProgressBar$$1)) {
|
|
18090
18741
|
traceChildProgressBar$$1.style.width = item.progressWidth + 'px';
|
|
18091
18742
|
traceChildProgressBar$$1.style.borderBottomRightRadius = this.progressBorderRadius + 'px';
|
|
18092
18743
|
traceChildProgressBar$$1.style.borderTopRightRadius = this.progressBorderRadius + 'px';
|
|
18093
|
-
|
|
18744
|
+
const width = this.parent.enableRtl ? item.progressWidth + 8 : item.progressWidth - 8;
|
|
18745
|
+
childProgressResizer$$1.style.setProperty(position, width + 'px');
|
|
18094
18746
|
}
|
|
18095
18747
|
}
|
|
18096
18748
|
else {
|
|
@@ -18098,16 +18750,17 @@ class TaskbarEdit extends DateProcessor {
|
|
|
18098
18750
|
traceChildProgressBar$$1.style.width = item.segments[this.segmentIndex].progressWidth + 'px';
|
|
18099
18751
|
traceChildProgressBar$$1.style.borderBottomRightRadius = this.progressBorderRadius + 'px';
|
|
18100
18752
|
traceChildProgressBar$$1.style.borderTopRightRadius = this.progressBorderRadius + 'px';
|
|
18101
|
-
|
|
18753
|
+
const width = this.parent.enableRtl ? item.segments[this.segmentIndex].progressWidth + 8 : item.segments[this.segmentIndex].progressWidth - 8;
|
|
18754
|
+
childProgressResizer$$1.style.setProperty(position, width + 'px');
|
|
18102
18755
|
}
|
|
18103
18756
|
}
|
|
18104
18757
|
else if (this.taskBarEditAction === 'RightResizing' && !isNullOrUndefined(traceChildTaskBar$$1)) {
|
|
18105
18758
|
traceChildTaskBar$$1.style.width = (width) + 'px';
|
|
18106
18759
|
if (!isNullOrUndefined(traceChildProgressBar$$1)) {
|
|
18107
18760
|
traceChildProgressBar$$1.style.width = (item.progressWidth) + 'px';
|
|
18108
|
-
taskBarRightResizer$$1.style.
|
|
18761
|
+
taskBarRightResizer$$1.style.setProperty(position, rightResizer + 'px');
|
|
18109
18762
|
if (!isNullOrUndefined(childProgressResizer$$1)) {
|
|
18110
|
-
childProgressResizer$$1.style.
|
|
18763
|
+
childProgressResizer$$1.style.setProperty(position, item.progressWidth - 10 + 'px');
|
|
18111
18764
|
}
|
|
18112
18765
|
}
|
|
18113
18766
|
}
|
|
@@ -18121,27 +18774,27 @@ class TaskbarEdit extends DateProcessor {
|
|
|
18121
18774
|
}
|
|
18122
18775
|
else if (this.taskBarEditAction === 'ParentResizing') {
|
|
18123
18776
|
manualParentTaskbar.style.width = manualTaskbar.style.width = (item.width) + 'px';
|
|
18124
|
-
manualParentRight.style.
|
|
18777
|
+
manualParentRight.style.setProperty(position, item.width - manualParentLeft.offsetLeft + 'px');
|
|
18125
18778
|
}
|
|
18126
18779
|
else if (this.taskBarEditAction === 'ManualParentDrag') {
|
|
18127
|
-
manualParentTaskbar.style.
|
|
18780
|
+
manualParentTaskbar.style.setProperty(position, item.left - item.autoLeft + 'px');
|
|
18128
18781
|
}
|
|
18129
18782
|
else {
|
|
18130
18783
|
if (!isNullOrUndefined(traceChildTaskBar$$1) && !segmentedTaskBarContainer) {
|
|
18131
18784
|
traceChildTaskBar$$1.style.width = (width) + 'px';
|
|
18132
18785
|
}
|
|
18133
18786
|
if (!isNullOrUndefined(traceChildProgressBar$$1)) {
|
|
18134
|
-
taskBarRightResizer$$1.style.
|
|
18787
|
+
taskBarRightResizer$$1.style.setProperty(position, rightResizer + 'px');
|
|
18135
18788
|
traceChildProgressBar$$1.style.width = (item.progressWidth) + 'px';
|
|
18136
18789
|
if (!isNullOrUndefined(childProgressResizer$$1)) {
|
|
18137
|
-
childProgressResizer$$1.style.
|
|
18790
|
+
childProgressResizer$$1.style.setProperty(position, item.progressWidth - 10 + 'px');
|
|
18138
18791
|
}
|
|
18139
18792
|
}
|
|
18140
18793
|
if (segmentedTaskBarContainer) {
|
|
18141
|
-
taskBarRightResizer$$1.style.
|
|
18794
|
+
taskBarRightResizer$$1.style.setProperty(position, rightResizer + 'px');
|
|
18142
18795
|
traceChildProgressBar$$1.style.width = (segment.progressWidth) + 'px';
|
|
18143
18796
|
if (!isNullOrUndefined(childProgressResizer$$1)) {
|
|
18144
|
-
childProgressResizer$$1.style.
|
|
18797
|
+
childProgressResizer$$1.style.setProperty(position, segment.progressWidth - 10 + 'px');
|
|
18145
18798
|
}
|
|
18146
18799
|
}
|
|
18147
18800
|
}
|
|
@@ -18363,25 +19016,51 @@ class TaskbarEdit extends DateProcessor {
|
|
|
18363
19016
|
const y2 = this.mouseMoveY;
|
|
18364
19017
|
const length = Math.sqrt((x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2));
|
|
18365
19018
|
const angle = Math.atan2(y2 - y1, x2 - x1) * 180 / Math.PI;
|
|
18366
|
-
const transform = 'rotate(' + angle + 'deg)';
|
|
19019
|
+
const transform = 'rotate(' + (this.parent.enableRtl ? -angle : angle) + 'deg)';
|
|
18367
19020
|
let left;
|
|
19021
|
+
let width = 0;
|
|
19022
|
+
if (!isNullOrUndefined(document.querySelectorAll(".e-chart-row")[0])) {
|
|
19023
|
+
width = document.querySelectorAll(".e-chart-row")[0].offsetWidth;
|
|
19024
|
+
}
|
|
18368
19025
|
if (this.taskBarEditAction === 'ConnectorPointLeftDrag') {
|
|
18369
|
-
|
|
18370
|
-
this.parent.
|
|
19026
|
+
if (this.parent.enableRtl) {
|
|
19027
|
+
left = ((width - (this.elementOffsetLeft + (this.parent.chartRowsModule.connectorPointWidth / 2)))) -
|
|
19028
|
+
Math.abs(this.parent.ganttChartModule.scrollObject.previousScroll.left);
|
|
19029
|
+
}
|
|
19030
|
+
else {
|
|
19031
|
+
left = (this.elementOffsetLeft - (this.parent.chartRowsModule.connectorPointWidth / 2)) -
|
|
19032
|
+
this.parent.ganttChartModule.scrollObject.previousScroll.left;
|
|
19033
|
+
}
|
|
18371
19034
|
}
|
|
18372
19035
|
if (this.taskBarEditAction === 'ConnectorPointRightDrag') {
|
|
18373
|
-
|
|
18374
|
-
|
|
19036
|
+
if (this.parent.enableRtl) {
|
|
19037
|
+
left = (width - (this.elementOffsetLeft + this.elementOffsetWidth +
|
|
19038
|
+
(this.parent.chartRowsModule.connectorPointWidth / 2))) - Math.abs(this.parent.ganttChartModule.scrollObject.previousScroll.left);
|
|
19039
|
+
}
|
|
19040
|
+
else {
|
|
19041
|
+
left = (this.elementOffsetLeft + this.elementOffsetWidth) +
|
|
19042
|
+
(this.parent.chartRowsModule.connectorPointWidth / 2) - Math.abs(this.parent.ganttChartModule.scrollObject.previousScroll.left);
|
|
19043
|
+
}
|
|
18375
19044
|
}
|
|
18376
19045
|
const top = ((this.elementOffsetTop) + (this.elementOffsetHeight / 2) +
|
|
18377
19046
|
this.parent.ganttChartModule.chartBodyContainer.offsetTop) - this.parent.ganttChartModule.scrollObject.previousScroll.top;
|
|
18378
19047
|
this.removeFalseLine(false);
|
|
18379
19048
|
this.falseLine = createElement('div', {
|
|
18380
19049
|
className: falseLine, id: 'ganttfalseline' + this.parent.element.id,
|
|
18381
|
-
styles: '
|
|
19050
|
+
styles: 'position: absolute;transform:' + transform + ';' +
|
|
18382
19051
|
'border-top-width: 1px;border-top-style: dashed;z-index: 5;width:' + (length - 3) + 'px;' +
|
|
18383
|
-
'
|
|
19052
|
+
'top:' + top + 'px;'
|
|
18384
19053
|
});
|
|
19054
|
+
if (this.parent.enableRtl) {
|
|
19055
|
+
this.falseLine.style.left = 'auto';
|
|
19056
|
+
this.falseLine.style.right = left + 'px';
|
|
19057
|
+
this.falseLine.style.transformOrigin = '100% 0%';
|
|
19058
|
+
}
|
|
19059
|
+
else {
|
|
19060
|
+
this.falseLine.style.right = 'auto';
|
|
19061
|
+
this.falseLine.style.left = left + 'px';
|
|
19062
|
+
this.falseLine.style.transformOrigin = '0% 100%';
|
|
19063
|
+
}
|
|
18385
19064
|
this.parent.ganttChartModule.chartBodyContainer.appendChild(this.falseLine);
|
|
18386
19065
|
}
|
|
18387
19066
|
/**
|
|
@@ -18466,19 +19145,19 @@ class TaskbarEdit extends DateProcessor {
|
|
|
18466
19145
|
const element = target;
|
|
18467
19146
|
const uniqueId = this.parent.viewType === 'ResourceView' ? fromItem.taskId : fromItem.rowUniqueID;
|
|
18468
19147
|
if (this.taskBarEditAction === 'ConnectorPointLeftDrag') {
|
|
18469
|
-
predecessor = uniqueId + 'S';
|
|
19148
|
+
predecessor = uniqueId + (this.parent.enableRtl ? 'F' : 'S');
|
|
18470
19149
|
}
|
|
18471
19150
|
else if (this.taskBarEditAction === 'ConnectorPointRightDrag') {
|
|
18472
|
-
predecessor = uniqueId + 'F';
|
|
19151
|
+
predecessor = uniqueId + (this.parent.enableRtl ? 'S' : 'F');
|
|
18473
19152
|
}
|
|
18474
19153
|
if (this.connectorSecondAction) {
|
|
18475
19154
|
if (this.connectorSecondAction === 'ConnectorPointLeftDrag') {
|
|
18476
|
-
predecessor += 'S';
|
|
18477
|
-
currentTarget = 'start';
|
|
19155
|
+
predecessor += this.parent.enableRtl ? 'F' : 'S';
|
|
19156
|
+
currentTarget = this.parent.enableRtl ? 'finish' : 'start';
|
|
18478
19157
|
}
|
|
18479
19158
|
else if (this.connectorSecondAction === 'ConnectorPointRightDrag') {
|
|
18480
|
-
predecessor += 'F';
|
|
18481
|
-
currentTarget = 'finish';
|
|
19159
|
+
predecessor += this.parent.enableRtl ? 'S' : 'F';
|
|
19160
|
+
currentTarget = this.parent.enableRtl ? 'start' : 'finish';
|
|
18482
19161
|
}
|
|
18483
19162
|
}
|
|
18484
19163
|
if (isNullOrUndefined(toItem)) {
|
|
@@ -18502,6 +19181,12 @@ class TaskbarEdit extends DateProcessor {
|
|
|
18502
19181
|
args.isValidLink = isValidLink;
|
|
18503
19182
|
args.requestType = 'ValidateDependency';
|
|
18504
19183
|
this.parent.trigger('actionBegin', args);
|
|
19184
|
+
if (!isNullOrUndefined(this.parent.loadingIndicator) && this.parent.loadingIndicator.indicatorType === "Shimmer" && args.requestType != "ValidateDependency") {
|
|
19185
|
+
this.parent.showMaskRow();
|
|
19186
|
+
}
|
|
19187
|
+
else if (args.requestType != "ValidateDependency") {
|
|
19188
|
+
this.parent.showSpinner();
|
|
19189
|
+
}
|
|
18505
19190
|
args.isValidLink = !isValidLink && args.isValidLink ? false : args.isValidLink;
|
|
18506
19191
|
if (args.isValidLink) {
|
|
18507
19192
|
if (!this.editTooltip.toolTipObj && !this.parent.isAdaptive) {
|
|
@@ -18895,18 +19580,18 @@ class DialogEdit {
|
|
|
18895
19580
|
if (!isNullOrUndefined(taskId)) {
|
|
18896
19581
|
if (!isNullOrUndefined(taskId['ganttProperties'])) {
|
|
18897
19582
|
if (typeof taskId['ganttProperties']['taskId'] === 'string') {
|
|
18898
|
-
this.numericOrString =
|
|
19583
|
+
this.numericOrString = 'stringedit';
|
|
18899
19584
|
}
|
|
18900
19585
|
else {
|
|
18901
|
-
this.numericOrString =
|
|
19586
|
+
this.numericOrString = 'numericedit';
|
|
18902
19587
|
}
|
|
18903
19588
|
}
|
|
18904
19589
|
if (isNullOrUndefined(taskId['ganttProperties']) && !isNullOrUndefined(taskId)) {
|
|
18905
19590
|
if (isNaN(Number(taskId)) || this.parent.columnByField[this.parent.taskFields.id].editType === "stringedit") {
|
|
18906
|
-
this.numericOrString =
|
|
19591
|
+
this.numericOrString = 'stringedit';
|
|
18907
19592
|
}
|
|
18908
19593
|
else {
|
|
18909
|
-
this.numericOrString =
|
|
19594
|
+
this.numericOrString = 'numericedit';
|
|
18910
19595
|
}
|
|
18911
19596
|
}
|
|
18912
19597
|
}
|
|
@@ -18948,6 +19633,7 @@ class DialogEdit {
|
|
|
18948
19633
|
dialogModel.animationSettings = { effect: 'None' };
|
|
18949
19634
|
dialogModel.header = this.localeObj.getConstant(this.isEdit ? 'editDialogTitle' : 'addDialogTitle');
|
|
18950
19635
|
dialogModel.isModal = true;
|
|
19636
|
+
dialogModel.enableRtl = this.parent.enableRtl;
|
|
18951
19637
|
dialogModel.allowDragging = this.parent.isAdaptive ? false : true;
|
|
18952
19638
|
dialogModel.showCloseIcon = true;
|
|
18953
19639
|
const position = this.parent.isAdaptive ? { X: 'top', Y: 'left' } : { X: 'center', Y: 'center' };
|
|
@@ -18958,8 +19644,8 @@ class DialogEdit {
|
|
|
18958
19644
|
dialogModel.close = this.dialogClose.bind(this);
|
|
18959
19645
|
dialogModel.closeOnEscape = true;
|
|
18960
19646
|
dialogModel.beforeClose = function (args) {
|
|
18961
|
-
if (args.closedBy
|
|
18962
|
-
if (args.event.name
|
|
19647
|
+
if (args.closedBy === "escape") {
|
|
19648
|
+
if (args.event.name === "key-pressed" && args.event.target.nodeName === 'INPUT') {
|
|
18963
19649
|
args.cancel = true;
|
|
18964
19650
|
}
|
|
18965
19651
|
}
|
|
@@ -19129,6 +19815,7 @@ class DialogEdit {
|
|
|
19129
19815
|
const length = dialogSettings.length;
|
|
19130
19816
|
tabModel.items = tabItems;
|
|
19131
19817
|
tabModel.locale = this.parent.locale;
|
|
19818
|
+
tabModel.enableRtl = this.parent.enableRtl;
|
|
19132
19819
|
this.beforeOpenArgs.tabModel = tabModel;
|
|
19133
19820
|
let index = 0;
|
|
19134
19821
|
if (length > 0) {
|
|
@@ -19208,6 +19895,12 @@ class DialogEdit {
|
|
|
19208
19895
|
cancel: this.beforeOpenArgs.cancel
|
|
19209
19896
|
};
|
|
19210
19897
|
this.parent.trigger('actionBegin', this.beforeOpenArgs, (arg) => {
|
|
19898
|
+
if (!isNullOrUndefined(this.parent.loadingIndicator) && this.parent.loadingIndicator.indicatorType === "Shimmer") {
|
|
19899
|
+
this.parent.showMaskRow();
|
|
19900
|
+
}
|
|
19901
|
+
else {
|
|
19902
|
+
this.parent.showSpinner();
|
|
19903
|
+
}
|
|
19211
19904
|
this.renderTabItems();
|
|
19212
19905
|
if (!arg.cancel) {
|
|
19213
19906
|
tabModel.selected = this.tabSelectedEvent.bind(this);
|
|
@@ -19230,6 +19923,12 @@ class DialogEdit {
|
|
|
19230
19923
|
cancel: false
|
|
19231
19924
|
};
|
|
19232
19925
|
this.parent.trigger('actionComplete', actionCompleteArgs, (actionCompleteArg) => {
|
|
19926
|
+
if (!isNullOrUndefined(this.parent.loadingIndicator) && this.parent.loadingIndicator.indicatorType === "Shimmer") {
|
|
19927
|
+
this.parent.hideMaskRow();
|
|
19928
|
+
}
|
|
19929
|
+
else {
|
|
19930
|
+
this.parent.hideSpinner();
|
|
19931
|
+
}
|
|
19233
19932
|
if (actionCompleteArg.cancel) {
|
|
19234
19933
|
this.resetValues();
|
|
19235
19934
|
}
|
|
@@ -19312,7 +20011,8 @@ class DialogEdit {
|
|
|
19312
20011
|
{
|
|
19313
20012
|
const checkboxModel = {
|
|
19314
20013
|
label: column.headerText,
|
|
19315
|
-
locale: locale
|
|
20014
|
+
locale: locale,
|
|
20015
|
+
enableRtl: this.parent.enableRtl
|
|
19316
20016
|
};
|
|
19317
20017
|
fieldsModel[column.field] = checkboxModel;
|
|
19318
20018
|
break;
|
|
@@ -19321,6 +20021,7 @@ class DialogEdit {
|
|
|
19321
20021
|
case 'stringedit':
|
|
19322
20022
|
{
|
|
19323
20023
|
const textBox = common;
|
|
20024
|
+
textBox.enableRtl = this.parent.enableRtl;
|
|
19324
20025
|
if (column.field === ganttObj.columnMapping.duration || column.field === ganttObj.columnMapping.id || column.field === ganttObj.columnMapping.startDate ||
|
|
19325
20026
|
column.field === ganttObj.columnMapping.endDate) {
|
|
19326
20027
|
textBox.change = (args) => {
|
|
@@ -19333,6 +20034,7 @@ class DialogEdit {
|
|
|
19333
20034
|
case 'numericedit':
|
|
19334
20035
|
{
|
|
19335
20036
|
const numeric = common;
|
|
20037
|
+
numeric.enableRtl = this.parent.enableRtl;
|
|
19336
20038
|
if (taskSettings.progress === column.field) {
|
|
19337
20039
|
numeric.min = 0;
|
|
19338
20040
|
numeric.max = 100;
|
|
@@ -19349,6 +20051,7 @@ class DialogEdit {
|
|
|
19349
20051
|
{
|
|
19350
20052
|
const datePickerObj = common;
|
|
19351
20053
|
datePickerObj.format = this.parent.getDateFormat();
|
|
20054
|
+
datePickerObj.enableRtl = this.parent.enableRtl;
|
|
19352
20055
|
datePickerObj.strictMode = true;
|
|
19353
20056
|
datePickerObj.firstDayOfWeek = ganttObj.timelineModule.customTimelineSettings.weekStartDay;
|
|
19354
20057
|
if (column.field === ganttObj.columnMapping.startDate ||
|
|
@@ -19365,6 +20068,7 @@ class DialogEdit {
|
|
|
19365
20068
|
{
|
|
19366
20069
|
const dateTimePickerObj = common;
|
|
19367
20070
|
dateTimePickerObj.format = this.parent.getDateFormat();
|
|
20071
|
+
dateTimePickerObj.enableRtl = this.parent.enableRtl;
|
|
19368
20072
|
dateTimePickerObj.strictMode = true;
|
|
19369
20073
|
dateTimePickerObj.firstDayOfWeek = ganttObj.timelineModule.customTimelineSettings.weekStartDay;
|
|
19370
20074
|
if (column.field === ganttObj.columnMapping.startDate ||
|
|
@@ -19387,6 +20091,7 @@ class DialogEdit {
|
|
|
19387
20091
|
common[dataKey] = types;
|
|
19388
20092
|
common[fieldsKey] = { value: 'Value' };
|
|
19389
20093
|
const dropDownListObj = common;
|
|
20094
|
+
dropDownListObj.enableRtl = this.parent.enableRtl;
|
|
19390
20095
|
dropDownListObj.change = (args) => {
|
|
19391
20096
|
if (column.field === taskSettings.manual) {
|
|
19392
20097
|
this.editedRecord.ganttProperties.isAutoSchedule = !args.value;
|
|
@@ -19758,8 +20463,8 @@ class DialogEdit {
|
|
|
19758
20463
|
break;
|
|
19759
20464
|
case 'duration':
|
|
19760
20465
|
gridColumn = {
|
|
19761
|
-
field: fields[i], headerText: this.localeObj.getConstant(fields[i]), editType: 'stringedit',
|
|
19762
|
-
edit: {
|
|
20466
|
+
field: fields[i], headerText: this.localeObj.getConstant(fields[i]), editType: 'stringedit',
|
|
20467
|
+
width: '100px', edit: {
|
|
19763
20468
|
write: (args) => {
|
|
19764
20469
|
let inputTextModel;
|
|
19765
20470
|
if (!isNullOrUndefined(this.beforeOpenArgs[generalTabString])) {
|
|
@@ -19820,7 +20525,7 @@ class DialogEdit {
|
|
|
19820
20525
|
inputValue = dialog.querySelector('#' + ganttId + 'SegmentsTabContainer' + columnName)
|
|
19821
20526
|
.ej2_instances[0];
|
|
19822
20527
|
}
|
|
19823
|
-
if (inputValue.value.toString() !== tempValue.toString()) {
|
|
20528
|
+
if ((!isNullOrUndefined(inputValue.value)) && (inputValue.value.toString() !== tempValue.toString())) {
|
|
19824
20529
|
inputValue.value = tempValue;
|
|
19825
20530
|
inputValue.dataBind();
|
|
19826
20531
|
}
|
|
@@ -20154,7 +20859,7 @@ class DialogEdit {
|
|
|
20154
20859
|
break;
|
|
20155
20860
|
}
|
|
20156
20861
|
}
|
|
20157
|
-
if (typeof (stringOrNumber) ===
|
|
20862
|
+
if (typeof (stringOrNumber) === 'string') {
|
|
20158
20863
|
disabled = false;
|
|
20159
20864
|
}
|
|
20160
20865
|
else {
|
|
@@ -20169,7 +20874,7 @@ class DialogEdit {
|
|
|
20169
20874
|
}
|
|
20170
20875
|
if (this.editedRecord.hasChildRecords) {
|
|
20171
20876
|
if ((column.field === this.parent.taskFields.endDate && ((!isNullOrUndefined(this.editedRecord['isManual']) &&
|
|
20172
|
-
this.editedRecord['isManual']
|
|
20877
|
+
this.editedRecord['isManual'] === false) || this.parent.taskMode === 'Auto')) || column.field === this.parent.taskFields.duration ||
|
|
20173
20878
|
column.field === this.parent.taskFields.progress || column.field === this.parent.taskFields.work ||
|
|
20174
20879
|
column.field === this.parent.taskFields.type) {
|
|
20175
20880
|
disabled = true;
|
|
@@ -20224,6 +20929,7 @@ class DialogEdit {
|
|
|
20224
20929
|
dataSource: new DataManager(this.idCollection),
|
|
20225
20930
|
popupHeight: '180px',
|
|
20226
20931
|
allowCustom: false,
|
|
20932
|
+
enableRtl: this.parent.enableRtl,
|
|
20227
20933
|
fields: { value: 'text' },
|
|
20228
20934
|
value: args.rowData[field],
|
|
20229
20935
|
change: (arg) => {
|
|
@@ -20491,7 +21197,7 @@ class DialogEdit {
|
|
|
20491
21197
|
do {
|
|
20492
21198
|
if (currentFlatData.parentItem) {
|
|
20493
21199
|
currentFlatData = this.parent.flatData[this.parent.ids.indexOf(currentFlatData.parentItem.taskId)];
|
|
20494
|
-
if (currentFlatData.uniqueID
|
|
21200
|
+
if (currentFlatData.uniqueID === this.beforeOpenArgs.rowData['uniqueID']) {
|
|
20495
21201
|
this.isValidData = false;
|
|
20496
21202
|
break;
|
|
20497
21203
|
}
|
|
@@ -20743,7 +21449,9 @@ class DialogEdit {
|
|
|
20743
21449
|
}
|
|
20744
21450
|
}
|
|
20745
21451
|
if (this.isEdit) {
|
|
20746
|
-
|
|
21452
|
+
if (!isCustom) {
|
|
21453
|
+
this.updateScheduleProperties(this.editedRecord, this.rowData);
|
|
21454
|
+
}
|
|
20747
21455
|
ganttObj.editModule.validateUpdateValues(tasksData, this.rowData, true);
|
|
20748
21456
|
}
|
|
20749
21457
|
}
|
|
@@ -21398,6 +22106,7 @@ class ConnectorLineEdit {
|
|
|
21398
22106
|
const validationDialog = new Dialog({
|
|
21399
22107
|
header: 'Validate Editing',
|
|
21400
22108
|
isModal: true,
|
|
22109
|
+
enableRtl: this.parent.enableRtl,
|
|
21401
22110
|
visible: false,
|
|
21402
22111
|
width: '50%',
|
|
21403
22112
|
showCloseIcon: true,
|
|
@@ -21769,6 +22478,7 @@ class ConnectorLineEdit {
|
|
|
21769
22478
|
this.confirmPredecessorDialog = new Dialog({
|
|
21770
22479
|
width: '320px',
|
|
21771
22480
|
isModal: true,
|
|
22481
|
+
enableRtl: this.parent.enableRtl,
|
|
21772
22482
|
content: this.parent.localeObj.getConstant('confirmPredecessorDelete'),
|
|
21773
22483
|
buttons: [
|
|
21774
22484
|
{
|
|
@@ -21816,6 +22526,7 @@ class Edit$2 {
|
|
|
21816
22526
|
this.taskbarMoved = false;
|
|
21817
22527
|
this.predecessorUpdated = false;
|
|
21818
22528
|
this.isBreakLoop = false;
|
|
22529
|
+
this.isResourceTaskDeleted = false;
|
|
21819
22530
|
/**
|
|
21820
22531
|
* @private
|
|
21821
22532
|
*/
|
|
@@ -21890,6 +22601,7 @@ class Edit$2 {
|
|
|
21890
22601
|
const editParam = {
|
|
21891
22602
|
min: 0,
|
|
21892
22603
|
decimals: 0,
|
|
22604
|
+
enableRtl: this.parent.enableRtl,
|
|
21893
22605
|
validateDecimalOnType: true,
|
|
21894
22606
|
format: 'n0',
|
|
21895
22607
|
showSpinButton: false
|
|
@@ -21905,6 +22617,7 @@ class Edit$2 {
|
|
|
21905
22617
|
updateProgessColumnEditParams(column) {
|
|
21906
22618
|
const editParam = {
|
|
21907
22619
|
min: 0,
|
|
22620
|
+
enableRtl: this.parent.enableRtl,
|
|
21908
22621
|
decimals: 0,
|
|
21909
22622
|
validateDecimalOnType: true,
|
|
21910
22623
|
max: 100,
|
|
@@ -21962,6 +22675,7 @@ class Edit$2 {
|
|
|
21962
22675
|
editor = new MultiSelect({
|
|
21963
22676
|
dataSource: new DataManager(this.parent.resources),
|
|
21964
22677
|
fields: { text: resourceSettings.name, value: resourceSettings.id },
|
|
22678
|
+
enableRtl: this.parent.enableRtl,
|
|
21965
22679
|
mode: 'CheckBox',
|
|
21966
22680
|
showDropDownIcon: true,
|
|
21967
22681
|
popupHeight: '350px',
|
|
@@ -22022,6 +22736,7 @@ class Edit$2 {
|
|
|
22022
22736
|
this.parent.treeGridModule.currentEditRow = {};
|
|
22023
22737
|
editor = new DropDownList({
|
|
22024
22738
|
dataSource: new DataManager(types),
|
|
22739
|
+
enableRtl: this.parent.enableRtl,
|
|
22025
22740
|
fields: { value: 'Value' },
|
|
22026
22741
|
popupHeight: '350px',
|
|
22027
22742
|
value: getValue('taskType', args.rowData.ganttProperties)
|
|
@@ -22906,7 +23621,6 @@ class Edit$2 {
|
|
|
22906
23621
|
* @private
|
|
22907
23622
|
*/
|
|
22908
23623
|
initiateSaveAction(args) {
|
|
22909
|
-
this.parent.showSpinner();
|
|
22910
23624
|
let eventArgs = {};
|
|
22911
23625
|
eventArgs.requestType = 'beforeSave';
|
|
22912
23626
|
eventArgs.data = args.data;
|
|
@@ -22920,6 +23634,12 @@ class Edit$2 {
|
|
|
22920
23634
|
eventArgs.action = 'DrawConnectorLine';
|
|
22921
23635
|
}
|
|
22922
23636
|
this.parent.trigger('actionBegin', eventArgs, (eventArg) => {
|
|
23637
|
+
if (!isNullOrUndefined(this.parent.loadingIndicator) && this.parent.loadingIndicator.indicatorType === "Shimmer") {
|
|
23638
|
+
this.parent.showMaskRow();
|
|
23639
|
+
}
|
|
23640
|
+
else {
|
|
23641
|
+
this.parent.showSpinner();
|
|
23642
|
+
}
|
|
22923
23643
|
if (eventArg.cancel) {
|
|
22924
23644
|
this.reUpdatePreviousRecords();
|
|
22925
23645
|
this.parent.chartRowsModule.refreshRecords([args.data]);
|
|
@@ -22953,6 +23673,52 @@ class Edit$2 {
|
|
|
22953
23673
|
});
|
|
22954
23674
|
}
|
|
22955
23675
|
dmSuccess(e, args) {
|
|
23676
|
+
let eLength = e['length'];
|
|
23677
|
+
for (let i = 0; i < eLength; i++) {
|
|
23678
|
+
let rec = e[i];
|
|
23679
|
+
let _aLength = Object.keys(rec).length;
|
|
23680
|
+
for (let j = 0, _a = Object.keys(rec); j < _aLength; j++) {
|
|
23681
|
+
let key = _a[j];
|
|
23682
|
+
this.parent.editedRecords[i][key] = rec[key];
|
|
23683
|
+
this.parent.editedRecords[i].taskData[key] = rec[key];
|
|
23684
|
+
}
|
|
23685
|
+
if (this.parent.taskFields.id !== null) {
|
|
23686
|
+
this.parent.editedRecords[i].ganttProperties["taskId"] = rec[this.parent.taskFields.id];
|
|
23687
|
+
}
|
|
23688
|
+
if (this.parent.taskFields.name !== null) {
|
|
23689
|
+
this.parent.editedRecords[i].ganttProperties["taskName"] = rec[this.parent.taskFields.name];
|
|
23690
|
+
}
|
|
23691
|
+
if (this.parent.taskFields.startDate !== null) {
|
|
23692
|
+
this.parent.editedRecords[i].ganttProperties["startDate"] = rec[this.parent.taskFields.startDate];
|
|
23693
|
+
}
|
|
23694
|
+
if (this.parent.taskFields.endDate !== null) {
|
|
23695
|
+
this.parent.editedRecords[i].ganttProperties["endDate"] = rec[this.parent.taskFields.endDate];
|
|
23696
|
+
}
|
|
23697
|
+
if (this.parent.taskFields.duration !== null) {
|
|
23698
|
+
this.parent.editedRecords[i].ganttProperties["duration"] = parseInt(rec[this.parent.taskFields.duration]);
|
|
23699
|
+
}
|
|
23700
|
+
if (this.parent.taskFields.durationUnit !== null) {
|
|
23701
|
+
this.parent.editedRecords[i].ganttProperties["durationUnit"] = rec[this.parent.taskFields.durationUnit];
|
|
23702
|
+
}
|
|
23703
|
+
if (this.parent.taskFields.progress !== null) {
|
|
23704
|
+
this.parent.editedRecords[i].ganttProperties["progress"] = rec[this.parent.taskFields.progress];
|
|
23705
|
+
}
|
|
23706
|
+
if (this.parent.taskFields.dependency !== null) {
|
|
23707
|
+
this.parent.editedRecords[i].ganttProperties["dependency"] = rec[this.parent.taskFields.dependency];
|
|
23708
|
+
}
|
|
23709
|
+
if (this.parent.taskFields.parentID !== null) {
|
|
23710
|
+
this.parent.editedRecords[i].ganttProperties["parentID"] = rec[this.parent.taskFields.parentID];
|
|
23711
|
+
}
|
|
23712
|
+
if (this.parent.taskFields.baselineEndDate !== null) {
|
|
23713
|
+
this.parent.editedRecords[i].ganttProperties["baselineEndDate"] = rec[this.parent.taskFields.baselineEndDate];
|
|
23714
|
+
}
|
|
23715
|
+
if (this.parent.taskFields.baselineStartDate !== null) {
|
|
23716
|
+
this.parent.editedRecords[i].ganttProperties["baselineStartDate"] = rec[this.parent.taskFields.baselineStartDate];
|
|
23717
|
+
}
|
|
23718
|
+
if (this.parent.taskFields.resourceInfo !== null) {
|
|
23719
|
+
this.parent.editedRecords[i].ganttProperties["resources"] = rec[this.parent.taskFields.resourceInfo];
|
|
23720
|
+
}
|
|
23721
|
+
}
|
|
22956
23722
|
this.saveSuccess(args);
|
|
22957
23723
|
}
|
|
22958
23724
|
dmFailure(e, args) {
|
|
@@ -22971,7 +23737,7 @@ class Edit$2 {
|
|
|
22971
23737
|
const ids = data.ganttProperties.sharedTaskUniqueIds;
|
|
22972
23738
|
for (let i = 0; i < ids.length; i++) {
|
|
22973
23739
|
const editRecord = this.parent.flatData[this.parent.ids.indexOf(ids[i].toString())];
|
|
22974
|
-
if (editRecord.uniqueID !== data.uniqueID) {
|
|
23740
|
+
if (editRecord && editRecord.uniqueID !== data.uniqueID) {
|
|
22975
23741
|
this.updateGanttProperties(data, editRecord);
|
|
22976
23742
|
this.parent.setRecordValue('taskData', data.taskData, editRecord, true);
|
|
22977
23743
|
this.parent.dataOperation.updateTaskData(editRecord);
|
|
@@ -23045,6 +23811,12 @@ class Edit$2 {
|
|
|
23045
23811
|
criticalModule.criticalConnectorLine(criticalModule.criticalPathCollection, criticalModule.detailPredecessorCollection, true, criticalModule.predecessorCollectionTaskIds);
|
|
23046
23812
|
}
|
|
23047
23813
|
this.parent.trigger('actionComplete', eventArgs);
|
|
23814
|
+
if (!isNullOrUndefined(this.parent.loadingIndicator) && this.parent.loadingIndicator.indicatorType === "Shimmer") {
|
|
23815
|
+
this.parent.hideMaskRow();
|
|
23816
|
+
}
|
|
23817
|
+
else {
|
|
23818
|
+
this.parent.hideSpinner();
|
|
23819
|
+
}
|
|
23048
23820
|
}
|
|
23049
23821
|
else {
|
|
23050
23822
|
this.taskbarEditModule.dependencyCancel = false;
|
|
@@ -23066,12 +23838,12 @@ class Edit$2 {
|
|
|
23066
23838
|
for (let index = 0; index < currentLength; index++) {
|
|
23067
23839
|
const recordIndex = [];
|
|
23068
23840
|
let resourceID = parseInt(currentResource[index][this.parent.resourceFields.id], 10).toString();
|
|
23069
|
-
if (resourceID ===
|
|
23841
|
+
if (resourceID === 'NaN') {
|
|
23070
23842
|
resourceID = currentResource[index][this.parent.resourceFields.id];
|
|
23071
23843
|
}
|
|
23072
23844
|
for (let i = 0; i < prevResource.length; i++) {
|
|
23073
23845
|
let prevResourceID = parseInt(prevResource[i][this.parent.resourceFields.id], 10).toString();
|
|
23074
|
-
if (prevResourceID ===
|
|
23846
|
+
if (prevResourceID === 'NaN') {
|
|
23075
23847
|
prevResourceID = prevResource[i][this.parent.resourceFields.id];
|
|
23076
23848
|
}
|
|
23077
23849
|
if (prevResourceID === resourceID) {
|
|
@@ -23132,12 +23904,6 @@ class Edit$2 {
|
|
|
23132
23904
|
}
|
|
23133
23905
|
if (!isNullOrUndefined(unassignedTasks)) {
|
|
23134
23906
|
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
23907
|
}
|
|
23142
23908
|
else {
|
|
23143
23909
|
// Block for create the unassigned task.
|
|
@@ -23152,6 +23918,12 @@ class Edit$2 {
|
|
|
23152
23918
|
const parentRecord = this.parent.flatData[this.parent.flatData.length - 1];
|
|
23153
23919
|
this.addNewRecord(updateRecord, parentRecord);
|
|
23154
23920
|
}
|
|
23921
|
+
const updatedData = this.parent.currentViewData.filter((data) => {
|
|
23922
|
+
return (data.ganttProperties.taskId === updateRecord.ganttProperties.taskId &&
|
|
23923
|
+
(data.hasChildRecords === updateRecord.hasChildRecords));
|
|
23924
|
+
})[0];
|
|
23925
|
+
updateRecord.parentItem = updatedData.parentItem;
|
|
23926
|
+
updateRecord.parentUniqueID = updatedData.parentUniqueID;
|
|
23155
23927
|
}
|
|
23156
23928
|
addRecordAsBottom(cAddedRecord) {
|
|
23157
23929
|
const recordIndex1 = this.parent.flatData.length;
|
|
@@ -23358,6 +24130,7 @@ class Edit$2 {
|
|
|
23358
24130
|
width: '320px',
|
|
23359
24131
|
isModal: true,
|
|
23360
24132
|
visible: false,
|
|
24133
|
+
enableRtl: this.parent.enableRtl,
|
|
23361
24134
|
content: this.parent.localeObj.getConstant('confirmDelete'),
|
|
23362
24135
|
buttons: [
|
|
23363
24136
|
{
|
|
@@ -23410,15 +24183,17 @@ class Edit$2 {
|
|
|
23410
24183
|
const deleteRecords = [];
|
|
23411
24184
|
for (let i = 0; i < selectedRecords.length; i++) {
|
|
23412
24185
|
if (selectedRecords[i].parentItem) {
|
|
23413
|
-
|
|
23414
|
-
|
|
23415
|
-
|
|
23416
|
-
|
|
23417
|
-
|
|
24186
|
+
if (selectedRecords[i].ganttProperties.sharedTaskUniqueIds.length === 1) {
|
|
24187
|
+
const data = selectedRecords[i];
|
|
24188
|
+
const ids = data.ganttProperties.sharedTaskUniqueIds;
|
|
24189
|
+
for (let j = 0; j < ids.length; j++) {
|
|
24190
|
+
if (this.parent.ids.indexOf(ids[j].toString()) !== -1) {
|
|
24191
|
+
deleteRecords.push(this.parent.flatData[this.parent.ids.indexOf(ids[j].toString())]);
|
|
24192
|
+
}
|
|
24193
|
+
}
|
|
24194
|
+
if (this.parent.ids.indexOf(data.ganttProperties.rowUniqueID) !== -1) {
|
|
24195
|
+
deleteRecords.push(this.parent.flatData[this.parent.ids.indexOf(data.ganttProperties.rowUniqueID)]);
|
|
23418
24196
|
}
|
|
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
24197
|
}
|
|
23423
24198
|
}
|
|
23424
24199
|
else {
|
|
@@ -23544,8 +24319,9 @@ class Edit$2 {
|
|
|
23544
24319
|
if (this.deletedTaskDetails.indexOf(deleteRecord) !== -1) {
|
|
23545
24320
|
continue;
|
|
23546
24321
|
}
|
|
24322
|
+
const parentTask = this.parent.getParentTask(deleteRecord.parentItem);
|
|
23547
24323
|
if (deleteRecord.parentItem) {
|
|
23548
|
-
const childRecord =
|
|
24324
|
+
const childRecord = parentTask.childRecords;
|
|
23549
24325
|
const filteredRecord = childRecord.length === 1 ?
|
|
23550
24326
|
childRecord : childRecord.filter((data) => {
|
|
23551
24327
|
return !data.isDelete;
|
|
@@ -23555,7 +24331,12 @@ class Edit$2 {
|
|
|
23555
24331
|
}
|
|
23556
24332
|
}
|
|
23557
24333
|
const predecessor = deleteRecord.ganttProperties.predecessor;
|
|
23558
|
-
|
|
24334
|
+
let canDeletePredecessor = true;
|
|
24335
|
+
if (this.parent.viewType === 'ResourceView' && parentTask && parentTask.ganttProperties.taskName !==
|
|
24336
|
+
this.parent.localeObj.getConstant('unassignedTask')) {
|
|
24337
|
+
canDeletePredecessor = false;
|
|
24338
|
+
}
|
|
24339
|
+
if (predecessor && predecessor.length && canDeletePredecessor) {
|
|
23559
24340
|
this.removePredecessorOnDelete(deleteRecord);
|
|
23560
24341
|
}
|
|
23561
24342
|
this.deletedTaskDetails.push(deleteRecord);
|
|
@@ -23704,7 +24485,13 @@ class Edit$2 {
|
|
|
23704
24485
|
continue;
|
|
23705
24486
|
}
|
|
23706
24487
|
const predecessor = childRecord.ganttProperties.predecessor;
|
|
23707
|
-
|
|
24488
|
+
let canDeletePredecessor = true;
|
|
24489
|
+
const parentTask = this.parent.getParentTask(childRecord.parentItem);
|
|
24490
|
+
if (this.parent.viewType === 'ResourceView' && parentTask && parentTask.ganttProperties.taskName !==
|
|
24491
|
+
this.parent.localeObj.getConstant('unassignedTask')) {
|
|
24492
|
+
canDeletePredecessor = false;
|
|
24493
|
+
}
|
|
24494
|
+
if (predecessor && predecessor.length && canDeletePredecessor) {
|
|
23708
24495
|
this.removePredecessorOnDelete(childRecord);
|
|
23709
24496
|
}
|
|
23710
24497
|
this.deletedTaskDetails.push(childRecord);
|
|
@@ -23755,6 +24542,12 @@ class Edit$2 {
|
|
|
23755
24542
|
eventArgs.modifiedRecords = args.updatedRecordCollection;
|
|
23756
24543
|
eventArgs.modifiedTaskData = getTaskData(args.updatedRecordCollection, null, null, this.parent);
|
|
23757
24544
|
this.parent.trigger('actionBegin', eventArgs, (eventArg) => {
|
|
24545
|
+
if (!isNullOrUndefined(this.parent.loadingIndicator) && this.parent.loadingIndicator.indicatorType === "Shimmer") {
|
|
24546
|
+
this.parent.showMaskRow();
|
|
24547
|
+
}
|
|
24548
|
+
else {
|
|
24549
|
+
this.parent.showSpinner();
|
|
24550
|
+
}
|
|
23758
24551
|
if (eventArg.cancel) {
|
|
23759
24552
|
const deleteRecords = this.deletedTaskDetails;
|
|
23760
24553
|
for (let d = 0; d < deleteRecords.length; d++) {
|
|
@@ -23833,6 +24626,14 @@ class Edit$2 {
|
|
|
23833
24626
|
this.parent.ids.splice(flatIndex, 1);
|
|
23834
24627
|
if (this.parent.viewType === 'ResourceView') {
|
|
23835
24628
|
this.parent.getTaskIds().splice(flatIndex, 1);
|
|
24629
|
+
this.isResourceTaskDeleted = true;
|
|
24630
|
+
if (!deleteRecord.hasChildRecords) {
|
|
24631
|
+
deleteRecord.ganttProperties.resourceInfo = null;
|
|
24632
|
+
delete deleteRecord.ganttProperties.resourceNames;
|
|
24633
|
+
deleteRecord[this.parent.taskFields.resourceInfo] = null;
|
|
24634
|
+
deleteRecord.ganttProperties.sharedTaskUniqueIds = [];
|
|
24635
|
+
delete deleteRecord.taskData[this.parent.taskFields.resourceInfo];
|
|
24636
|
+
}
|
|
23836
24637
|
}
|
|
23837
24638
|
}
|
|
23838
24639
|
if (deleteRecord.level === 0 && treeGridParentIndex !== -1) {
|
|
@@ -23881,9 +24682,12 @@ class Edit$2 {
|
|
|
23881
24682
|
const unassignedTask = this.parent.flatData.filter((data) => {
|
|
23882
24683
|
return data.ganttProperties.taskName === this.parent.localeObj.getConstant('unassignedTask');
|
|
23883
24684
|
})[0];
|
|
23884
|
-
|
|
23885
|
-
|
|
23886
|
-
|
|
24685
|
+
let isDuplicate = [];
|
|
24686
|
+
if (unassignedTask) {
|
|
24687
|
+
isDuplicate = unassignedTask.childRecords.filter((data) => {
|
|
24688
|
+
return data.ganttProperties.taskId === updateUnAssignedResources[i].ganttProperties.taskId;
|
|
24689
|
+
});
|
|
24690
|
+
}
|
|
23887
24691
|
const parentTask = this.parent.getParentTask(updateUnAssignedResources[i].parentItem);
|
|
23888
24692
|
if (parentTask && parentTask.ganttProperties.taskName !==
|
|
23889
24693
|
this.parent.localeObj.getConstant('unassignedTask') && isDuplicate.length === 0) {
|
|
@@ -23892,9 +24696,9 @@ class Edit$2 {
|
|
|
23892
24696
|
this.parent.dataOperation.updateParentItems(updateUnAssignedResources[i].parentItem);
|
|
23893
24697
|
}
|
|
23894
24698
|
}
|
|
23895
|
-
else if (!parentTask && isDuplicate.length === 0) {
|
|
24699
|
+
else if (!parentTask && (!isDuplicate || isDuplicate.length === 0)) {
|
|
23896
24700
|
this.checkWithUnassignedTask(updateUnAssignedResources[i]);
|
|
23897
|
-
if (updateUnAssignedResources[i].parentItem) {
|
|
24701
|
+
if (updateUnAssignedResources[i].parentItem && unassignedTask) {
|
|
23898
24702
|
this.parent.dataOperation.updateParentItems(updateUnAssignedResources[i].parentItem);
|
|
23899
24703
|
}
|
|
23900
24704
|
}
|
|
@@ -23903,7 +24707,12 @@ class Edit$2 {
|
|
|
23903
24707
|
this.parent.trigger('actionComplete', eventArgs);
|
|
23904
24708
|
this.deletedTaskDetails = [];
|
|
23905
24709
|
this.parent.initiateEditAction(false);
|
|
23906
|
-
this.parent.
|
|
24710
|
+
if (!isNullOrUndefined(this.parent.loadingIndicator) && this.parent.loadingIndicator.indicatorType === "Shimmer") {
|
|
24711
|
+
this.parent.hideMaskRow();
|
|
24712
|
+
}
|
|
24713
|
+
else {
|
|
24714
|
+
this.parent.hideSpinner();
|
|
24715
|
+
}
|
|
23907
24716
|
}
|
|
23908
24717
|
/**
|
|
23909
24718
|
*
|
|
@@ -24357,9 +25166,9 @@ class Edit$2 {
|
|
|
24357
25166
|
for (let i = 0; i < this.parent.modifiedRecords.length; i++) {
|
|
24358
25167
|
const originalData = this.parent.modifiedRecords[i];
|
|
24359
25168
|
let treeIndex = this.parent.allowRowDragAndDrop ? 1 : 0;
|
|
24360
|
-
|
|
24361
|
-
|
|
24362
|
-
return (data[uniqueTaskID]
|
|
25169
|
+
const uniqueTaskID = this.parent.taskFields.id;
|
|
25170
|
+
let originalIndex = this.parent.currentViewData.findIndex((data) => {
|
|
25171
|
+
return (data[uniqueTaskID] === originalData[uniqueTaskID]);
|
|
24363
25172
|
});
|
|
24364
25173
|
if (this.parent.treeGrid.getRows()[originalIndex]) {
|
|
24365
25174
|
this.parent.treeGrid.renderModule.cellRender({
|
|
@@ -24479,8 +25288,13 @@ class Edit$2 {
|
|
|
24479
25288
|
}
|
|
24480
25289
|
let args = {};
|
|
24481
25290
|
args = this.constructTaskAddedEventArgs(cAddedRecord, this.parent.editedRecords, 'beforeAdd');
|
|
24482
|
-
this.parent.showSpinner();
|
|
24483
25291
|
this.parent.trigger('actionBegin', args, (args) => {
|
|
25292
|
+
if (!isNullOrUndefined(this.parent.loadingIndicator) && this.parent.loadingIndicator.indicatorType === "Shimmer") {
|
|
25293
|
+
this.parent.showMaskRow();
|
|
25294
|
+
}
|
|
25295
|
+
else {
|
|
25296
|
+
this.parent.showSpinner();
|
|
25297
|
+
}
|
|
24484
25298
|
if (!isNullOrUndefined(args.data[tempTaskID])) {
|
|
24485
25299
|
if (args.data[tempTaskID] != args.data['ganttProperties']['taskId']) {
|
|
24486
25300
|
args.data['ganttProperties']['taskId'] = args.data[tempTaskID];
|
|
@@ -24684,7 +25498,7 @@ class Edit$2 {
|
|
|
24684
25498
|
switch (rowPosition) {
|
|
24685
25499
|
case 'Top':
|
|
24686
25500
|
case 'Bottom':
|
|
24687
|
-
if (this.parent.viewType ===
|
|
25501
|
+
if (this.parent.viewType === 'ResourceView') {
|
|
24688
25502
|
level = 1;
|
|
24689
25503
|
}
|
|
24690
25504
|
else {
|
|
@@ -24767,6 +25581,12 @@ class Edit$2 {
|
|
|
24767
25581
|
this.parent.dataOperation.updateWorkWithDuration(cAddedRecord[0]);
|
|
24768
25582
|
}
|
|
24769
25583
|
this.parent.trigger('actionComplete', args);
|
|
25584
|
+
if (!isNullOrUndefined(this.parent.loadingIndicator) && this.parent.loadingIndicator.indicatorType === "Shimmer") {
|
|
25585
|
+
this.parent.hideMaskRow();
|
|
25586
|
+
}
|
|
25587
|
+
else {
|
|
25588
|
+
this.parent.hideSpinner();
|
|
25589
|
+
}
|
|
24770
25590
|
if (this.dialogModule.dialog && !this.dialogModule.dialogObj.isDestroyed) {
|
|
24771
25591
|
this.dialogModule.dialogObj.hide();
|
|
24772
25592
|
}
|
|
@@ -24925,6 +25745,12 @@ class Edit$2 {
|
|
|
24925
25745
|
cancel: false
|
|
24926
25746
|
};
|
|
24927
25747
|
this.parent.trigger('actionBegin', actionArgs, (actionArg) => {
|
|
25748
|
+
if (!isNullOrUndefined(this.parent.loadingIndicator) && this.parent.loadingIndicator.indicatorType === "Shimmer") {
|
|
25749
|
+
this.parent.showMaskRow();
|
|
25750
|
+
}
|
|
25751
|
+
else {
|
|
25752
|
+
this.parent.showSpinner();
|
|
25753
|
+
}
|
|
24928
25754
|
if (!actionArg.cancel) {
|
|
24929
25755
|
this.reArrangeRows(args, isByMethod);
|
|
24930
25756
|
}
|
|
@@ -25096,6 +25922,12 @@ class Edit$2 {
|
|
|
25096
25922
|
}
|
|
25097
25923
|
}
|
|
25098
25924
|
this.parent.trigger('actionComplete', args);
|
|
25925
|
+
if (!isNullOrUndefined(this.parent.loadingIndicator) && this.parent.loadingIndicator.indicatorType === "Shimmer") {
|
|
25926
|
+
this.parent.hideMaskRow();
|
|
25927
|
+
}
|
|
25928
|
+
else {
|
|
25929
|
+
this.parent.hideSpinner();
|
|
25930
|
+
}
|
|
25099
25931
|
this.parent.editedRecords = [];
|
|
25100
25932
|
}
|
|
25101
25933
|
refreshDataSource() {
|
|
@@ -25607,6 +26439,7 @@ class Filter$1 {
|
|
|
25607
26439
|
const flValInput = createElement('input', { className: 'flm-input' });
|
|
25608
26440
|
args.target.appendChild(flValInput);
|
|
25609
26441
|
dropDateInstance = new DatePicker({ placeholder: this.parent.localeObj.getConstant('enterValue'), format: format });
|
|
26442
|
+
dropDateInstance.enableRtl = this.parent.enableRtl;
|
|
25610
26443
|
dropDateInstance.appendTo(flValInput);
|
|
25611
26444
|
},
|
|
25612
26445
|
write: (args) => {
|
|
@@ -25629,6 +26462,7 @@ class Filter$1 {
|
|
|
25629
26462
|
const flValInput = createElement('input', { className: 'flm-input' });
|
|
25630
26463
|
args.target.appendChild(flValInput);
|
|
25631
26464
|
dropInstance = new DateTimePicker({ placeholder: this.parent.localeObj.getConstant('enterValue'), format: format });
|
|
26465
|
+
dropInstance.enableRtl = this.parent.enableRtl;
|
|
25632
26466
|
dropInstance.appendTo(flValInput);
|
|
25633
26467
|
},
|
|
25634
26468
|
write: (args) => {
|
|
@@ -25650,6 +26484,7 @@ class Filter$1 {
|
|
|
25650
26484
|
flValInput.setAttribute('placeholder', this.parent.localeObj.getConstant('enterValue'));
|
|
25651
26485
|
args.target.appendChild(flValInput);
|
|
25652
26486
|
textBoxInstance = new TextBox();
|
|
26487
|
+
textBoxInstance.enableRtl = this.parent.enableRtl;
|
|
25653
26488
|
textBoxInstance.appendTo(flValInput);
|
|
25654
26489
|
},
|
|
25655
26490
|
write: (args) => {
|
|
@@ -26438,6 +27273,14 @@ class Toolbar$3 {
|
|
|
26438
27273
|
this.parent.localeObj.getConstant('tasks') : ''),
|
|
26439
27274
|
align: this.parent.isAdaptive ? 'Right' : 'Left'
|
|
26440
27275
|
};
|
|
27276
|
+
if (this.parent.enableRtl) {
|
|
27277
|
+
if (item === 'PrevTimeSpan') {
|
|
27278
|
+
this.predefinedItems[item].prefixIcon = 'e-nexttimespan';
|
|
27279
|
+
}
|
|
27280
|
+
if (item === 'NextTimeSpan') {
|
|
27281
|
+
this.predefinedItems[item].prefixIcon = 'e-prevtimespan';
|
|
27282
|
+
}
|
|
27283
|
+
}
|
|
26441
27284
|
}
|
|
26442
27285
|
const searchLocalText = this.parent.localeObj.getConstant('search');
|
|
26443
27286
|
if (this.parent.isAdaptive) {
|
|
@@ -26469,6 +27312,7 @@ class Toolbar$3 {
|
|
|
26469
27312
|
const items = this.getItems();
|
|
26470
27313
|
this.toolbar = new Toolbar$1({
|
|
26471
27314
|
items: items,
|
|
27315
|
+
enableRtl: this.parent.enableRtl,
|
|
26472
27316
|
clicked: this.toolbarClickHandler.bind(this),
|
|
26473
27317
|
height: this.parent.isAdaptive ? 48 : 'auto'
|
|
26474
27318
|
});
|
|
@@ -26487,6 +27331,7 @@ class Toolbar$3 {
|
|
|
26487
27331
|
this.searchElement = this.element.querySelector('#' + this.parent.element.id + '_searchbar');
|
|
26488
27332
|
const textObj = new TextBox({
|
|
26489
27333
|
placeholder: this.parent.localeObj.getConstant('search'),
|
|
27334
|
+
enableRtl: this.parent.enableRtl,
|
|
26490
27335
|
floatLabelType: 'Never',
|
|
26491
27336
|
showClearButton: true
|
|
26492
27337
|
});
|
|
@@ -26602,7 +27447,16 @@ class Toolbar$3 {
|
|
|
26602
27447
|
toolbarClickHandler(arg) {
|
|
26603
27448
|
const gObj = this.parent;
|
|
26604
27449
|
const gID = this.id;
|
|
27450
|
+
this.parent.isToolBarClick = false;
|
|
26605
27451
|
extend(arg, { cancel: false });
|
|
27452
|
+
if (arg.item['properties'].id === this.parent.element.id + "_pdfexport" || arg.item['properties'].id === this.parent.element.id + "_critical-path") {
|
|
27453
|
+
if (!isNullOrUndefined(this.parent.loadingIndicator) && this.parent.loadingIndicator.indicatorType === "Shimmer") {
|
|
27454
|
+
this.parent.showMaskRow();
|
|
27455
|
+
}
|
|
27456
|
+
else {
|
|
27457
|
+
this.parent.showSpinner();
|
|
27458
|
+
}
|
|
27459
|
+
}
|
|
26606
27460
|
gObj.trigger(toolbarClick, arg, (args) => {
|
|
26607
27461
|
if (args.cancel) {
|
|
26608
27462
|
return;
|
|
@@ -26804,7 +27658,8 @@ class Toolbar$3 {
|
|
|
26804
27658
|
else {
|
|
26805
27659
|
disableItems.push(gID + '_update', gID + '_cancel');
|
|
26806
27660
|
for (let t = 0; t < toolbarItems.length; t++) {
|
|
26807
|
-
if (enableItems.indexOf(toolbarItems[t].id) === -1 &&
|
|
27661
|
+
if (enableItems.indexOf(toolbarItems[t].id) === -1 &&
|
|
27662
|
+
disableItems.indexOf(toolbarItems[t].id) === -1) {
|
|
26808
27663
|
enableItems.push(toolbarItems[t].id);
|
|
26809
27664
|
}
|
|
26810
27665
|
}
|
|
@@ -26959,8 +27814,9 @@ class NonWorkingDay {
|
|
|
26959
27814
|
const width = (this.parent.holidays[i].from && this.parent.holidays[i].to) ?
|
|
26960
27815
|
this.parent.dataOperation.getTaskWidth(fromDate, toDate) : this.parent.perDayWidth;
|
|
26961
27816
|
const left = this.parent.dataOperation.getTaskLeft(fromDate, false);
|
|
27817
|
+
const align = this.parent.enableRtl ? `right:${left}px;` : `left:${left}px;`;
|
|
26962
27818
|
const holidayDiv = createElement('div', {
|
|
26963
|
-
className: holidayElement, styles:
|
|
27819
|
+
className: holidayElement, styles: `${align} width:${width}px; height:100%;`
|
|
26964
27820
|
});
|
|
26965
27821
|
const spanTop = (viewportHeight < height) ? viewportHeight / 2 : height / 2;
|
|
26966
27822
|
const spanElement = createElement('span', {
|
|
@@ -27029,8 +27885,9 @@ class NonWorkingDay {
|
|
|
27029
27885
|
this.weekendWidthUpdated = true;
|
|
27030
27886
|
}
|
|
27031
27887
|
}
|
|
27888
|
+
const align = this.parent.enableRtl ? `right:${left}px;` : `left:${left}px;`;
|
|
27032
27889
|
const weekendDiv = createElement('div', {
|
|
27033
|
-
className: weekend, styles:
|
|
27890
|
+
className: weekend, styles: `${align} width:${width}px;height:100%;`
|
|
27034
27891
|
});
|
|
27035
27892
|
container.appendChild(weekendDiv);
|
|
27036
27893
|
}
|
|
@@ -27102,7 +27959,7 @@ class EventMarker$1 {
|
|
|
27102
27959
|
this.eventMarkersContainer = createElement('div', {
|
|
27103
27960
|
className: eventMarkersContainer
|
|
27104
27961
|
});
|
|
27105
|
-
this.eventMarkersContainer.setAttribute(
|
|
27962
|
+
this.eventMarkersContainer.setAttribute('role', 'term');
|
|
27106
27963
|
this.parent.ganttChartModule.chartBodyContent.appendChild(this.eventMarkersContainer);
|
|
27107
27964
|
}
|
|
27108
27965
|
this.eventMarkersContainer.innerHTML = '';
|
|
@@ -27135,8 +27992,15 @@ class EventMarker$1 {
|
|
|
27135
27992
|
let rightArrow;
|
|
27136
27993
|
for (let i = 0; i < this.parent.eventMarkers.length; i++) {
|
|
27137
27994
|
left = this.parent.dataOperation.getTaskLeft(this.parent.dateValidationModule.getDateFromFormat(this.parent.eventMarkers[i].day, true), false);
|
|
27995
|
+
let align;
|
|
27996
|
+
if (this.parent.enableRtl) {
|
|
27997
|
+
align = `right:${left}px;`;
|
|
27998
|
+
}
|
|
27999
|
+
else {
|
|
28000
|
+
align = `left:${left}px;`;
|
|
28001
|
+
}
|
|
27138
28002
|
eventMarkerElement = createElement('div', {
|
|
27139
|
-
className: eventMarkersChild, styles:
|
|
28003
|
+
className: eventMarkersChild, styles: `${align} height:100%;`,
|
|
27140
28004
|
id: 'stripline' + i
|
|
27141
28005
|
});
|
|
27142
28006
|
if (this.parent.eventMarkers[i].label) {
|
|
@@ -27145,6 +28009,12 @@ class EventMarker$1 {
|
|
|
27145
28009
|
});
|
|
27146
28010
|
const property = this.parent.disableHtmlEncode ? 'textContent' : 'innerHTML';
|
|
27147
28011
|
spanElement[property] = this.parent.eventMarkers[i].label;
|
|
28012
|
+
if (this.parent.enableRtl) {
|
|
28013
|
+
spanElement.style.right = '5px';
|
|
28014
|
+
}
|
|
28015
|
+
else {
|
|
28016
|
+
spanElement.style.left = '5px';
|
|
28017
|
+
}
|
|
27148
28018
|
eventMarkerElement.appendChild(spanElement);
|
|
27149
28019
|
rightArrow = createElement('div', {
|
|
27150
28020
|
className: 'e-gantt-right-arrow'
|
|
@@ -27321,8 +28191,8 @@ class CriticalPath {
|
|
|
27321
28191
|
predecessorIndex = modelIds.indexOf(checkBeyondEnddate[k].toString());
|
|
27322
28192
|
}
|
|
27323
28193
|
else {
|
|
27324
|
-
|
|
27325
|
-
return parseInt(data.ganttProperties.taskId)
|
|
28194
|
+
const currentRecords = this.parent.currentViewData.filter((data) => {
|
|
28195
|
+
return parseInt(data.ganttProperties.taskId) === checkBeyondEnddate[k];
|
|
27326
28196
|
});
|
|
27327
28197
|
for (let i = 0; i < currentRecords.length; i++) {
|
|
27328
28198
|
if (!currentRecords[i].hasChildRecords && currentRecords[i].ganttProperties.endDate >= this.maxEndDate) {
|
|
@@ -27355,10 +28225,10 @@ class CriticalPath {
|
|
|
27355
28225
|
const individualPredecessorLength = totalPredecessorsCollection[x].ganttProperties.predecessor.length;
|
|
27356
28226
|
const taskid = ((totalPredecessorsCollection[x].ganttProperties.taskId));
|
|
27357
28227
|
for (let y = 0; y < individualPredecessorLength; y++) {
|
|
27358
|
-
if (!isNaN(Number(predecessor[y].from)) && typeof (taskid) !=
|
|
28228
|
+
if (!isNaN(Number(predecessor[y].from)) && typeof (taskid) != 'string') {
|
|
27359
28229
|
tempTaskId = parseInt((predecessor[y].from), 10);
|
|
27360
28230
|
}
|
|
27361
|
-
else if (!isNaN(Number(predecessor[y].from)) && typeof (taskid) ===
|
|
28231
|
+
else if (!isNaN(Number(predecessor[y].from)) && typeof (taskid) === 'string') {
|
|
27362
28232
|
tempTaskId = predecessor[y].from;
|
|
27363
28233
|
}
|
|
27364
28234
|
else {
|
|
@@ -27381,15 +28251,16 @@ class CriticalPath {
|
|
|
27381
28251
|
toPredecessor = toPredecessor + ',' + predecessor[y].type;
|
|
27382
28252
|
}
|
|
27383
28253
|
else {
|
|
27384
|
-
to = to + ',' + predecessor[y].to + ':' + predecessor[y].offset +
|
|
28254
|
+
to = to + ',' + predecessor[y].to + ':' + predecessor[y].offset +
|
|
28255
|
+
predecessor[y].offsetUnit;
|
|
27385
28256
|
toPredecessor = toPredecessor + ',' + predecessor[y].type;
|
|
27386
28257
|
}
|
|
27387
28258
|
}
|
|
27388
28259
|
}
|
|
27389
|
-
if (!isNaN(Number(predecessor[y].to)) && typeof (taskid) !=
|
|
28260
|
+
if (!isNaN(Number(predecessor[y].to)) && typeof (taskid) != 'string') {
|
|
27390
28261
|
tempTaskId = parseInt((predecessor[y].to), 10);
|
|
27391
28262
|
}
|
|
27392
|
-
else if (!isNaN(Number(predecessor[y].to)) && typeof (taskid) ===
|
|
28263
|
+
else if (!isNaN(Number(predecessor[y].to)) && typeof (taskid) === 'string') {
|
|
27393
28264
|
tempTaskId = predecessor[y].to;
|
|
27394
28265
|
}
|
|
27395
28266
|
else {
|
|
@@ -27402,7 +28273,8 @@ class CriticalPath {
|
|
|
27402
28273
|
fromPredecessor = predecessor[y].type;
|
|
27403
28274
|
}
|
|
27404
28275
|
else {
|
|
27405
|
-
from = predecessor[y].from + ':' + predecessor[y].offset +
|
|
28276
|
+
from = predecessor[y].from + ':' + predecessor[y].offset +
|
|
28277
|
+
predecessor[y].offsetUnit;
|
|
27406
28278
|
fromPredecessor = predecessor[y].type;
|
|
27407
28279
|
}
|
|
27408
28280
|
}
|
|
@@ -27412,7 +28284,8 @@ class CriticalPath {
|
|
|
27412
28284
|
fromPredecessor = fromPredecessor + ',' + predecessor[y].type;
|
|
27413
28285
|
}
|
|
27414
28286
|
else {
|
|
27415
|
-
from = from + ',' + predecessor[y].from + ':' + predecessor[y].offset +
|
|
28287
|
+
from = from + ',' + predecessor[y].from + ':' + predecessor[y].offset +
|
|
28288
|
+
predecessor[y].offsetUnit;
|
|
27416
28289
|
fromPredecessor = fromPredecessor + ',' + predecessor[y].type;
|
|
27417
28290
|
}
|
|
27418
28291
|
}
|
|
@@ -27539,7 +28412,8 @@ class CriticalPath {
|
|
|
27539
28412
|
}
|
|
27540
28413
|
}
|
|
27541
28414
|
// execute if the current calculated slack value is less than the previous slack value.
|
|
27542
|
-
else if (collection[fromTaskIdIndex]['slack'] > dateDifference &&
|
|
28415
|
+
else if (collection[fromTaskIdIndex]['slack'] > dateDifference &&
|
|
28416
|
+
collection[fromTaskIdIndex]['slack'] !== 0) {
|
|
27543
28417
|
// execute if the offset value is not given.
|
|
27544
28418
|
if (fromDateArray1.length <= 1) {
|
|
27545
28419
|
if (collection[totaskId]['slack'] + dateDifference < 0) {
|
|
@@ -27589,7 +28463,8 @@ class CriticalPath {
|
|
|
27589
28463
|
}
|
|
27590
28464
|
}
|
|
27591
28465
|
//It execute while already the slack value is set and it is higher than the datedifference.
|
|
27592
|
-
else if (collection[fromTaskIdIndex]['slack'] > dateDifference &&
|
|
28466
|
+
else if (collection[fromTaskIdIndex]['slack'] > dateDifference &&
|
|
28467
|
+
collection[fromTaskIdIndex]['slack'] !== 0) {
|
|
27593
28468
|
if (fromDateArray1.length <= 1) {
|
|
27594
28469
|
if (collection[totaskId]['slack'] + dateDifference < 0) {
|
|
27595
28470
|
collection[fromTaskIdIndex]['slack'] = 0;
|
|
@@ -27617,7 +28492,8 @@ class CriticalPath {
|
|
|
27617
28492
|
if (isNullOrUndefined(collection[fromTaskIdIndex]['slack'])) {
|
|
27618
28493
|
collection[fromTaskIdIndex]['slack'] = dateDifference;
|
|
27619
28494
|
}
|
|
27620
|
-
else if (collection[fromTaskIdIndex]['slack'] > dateDifference &&
|
|
28495
|
+
else if (collection[fromTaskIdIndex]['slack'] > dateDifference &&
|
|
28496
|
+
collection[fromTaskIdIndex]['slack'] !== 0) {
|
|
27621
28497
|
collection[fromTaskIdIndex]['slack'] = dateDifference;
|
|
27622
28498
|
}
|
|
27623
28499
|
}
|
|
@@ -27628,7 +28504,8 @@ class CriticalPath {
|
|
|
27628
28504
|
// calculate slack value for the task contains predecessor connection in "finish to finish".
|
|
27629
28505
|
if (fromDataPredecessor[i] === 'FF') {
|
|
27630
28506
|
// 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 ||
|
|
28507
|
+
if (collection[totaskId]['fs'] === 1 || collection[totaskId]['ff'] === 1 ||
|
|
28508
|
+
collection[totaskId]['fs'] === -1) {
|
|
27632
28509
|
if (collection[totaskId]['fs'] === 1 || collection[totaskId]['ff'] === 1) {
|
|
27633
28510
|
prevTaskEnddate = toIdFlatData.endDate;
|
|
27634
28511
|
ffslack = collection[totaskId]['slack'];
|
|
@@ -27931,7 +28808,7 @@ class CriticalPath {
|
|
|
27931
28808
|
}
|
|
27932
28809
|
else {
|
|
27933
28810
|
let currentRecords = this.parent.currentViewData.filter((data) => {
|
|
27934
|
-
return (data.ganttProperties.taskId).toString()
|
|
28811
|
+
return (data.ganttProperties.taskId).toString() === criticalPathIds[i].toString();
|
|
27935
28812
|
});
|
|
27936
28813
|
for (let i = 0; i < currentRecords.length; i++) {
|
|
27937
28814
|
if (currentRecords[i].ganttProperties.isCritical || currentRecords[i].ganttProperties.endDate >= this.maxEndDate) {
|
|
@@ -27945,13 +28822,13 @@ class CriticalPath {
|
|
|
27945
28822
|
const columnFields = this.parent.taskFields;
|
|
27946
28823
|
if (criticalData.parentItem) {
|
|
27947
28824
|
const parentRecord = this.parent.currentViewData.filter((data) => {
|
|
27948
|
-
return criticalData.parentItem.uniqueID
|
|
28825
|
+
return criticalData.parentItem.uniqueID === data.uniqueID;
|
|
27949
28826
|
});
|
|
27950
28827
|
const parentIndex = this.parent.currentViewData.indexOf(parentRecord[0]);
|
|
27951
28828
|
const parentElement = this.parent.getRowByIndex(parentIndex);
|
|
27952
28829
|
let parentTaskbarElement = parentElement.querySelectorAll('.e-taskbar-main-container');
|
|
27953
28830
|
for (let i = 0; i < parentTaskbarElement.length; i++) {
|
|
27954
|
-
if (parentTaskbarElement[i].getAttribute('rowuniqueid')
|
|
28831
|
+
if (parentTaskbarElement[i].getAttribute('rowuniqueid') === criticalData['rowUniqueID']) {
|
|
27955
28832
|
addClass(parentTaskbarElement[i].querySelectorAll('.e-gantt-child-taskbar-inner-div'), criticalChildTaskBarInnerDiv);
|
|
27956
28833
|
}
|
|
27957
28834
|
}
|
|
@@ -28097,6 +28974,7 @@ class ContextMenu$2 {
|
|
|
28097
28974
|
this.contextMenu = new ContextMenu$1({
|
|
28098
28975
|
items: this.getMenuItems(),
|
|
28099
28976
|
locale: this.parent.locale,
|
|
28977
|
+
enableRtl: this.parent.enableRtl,
|
|
28100
28978
|
target: target,
|
|
28101
28979
|
animationSettings: { effect: 'None' },
|
|
28102
28980
|
select: this.contextMenuItemClick.bind(this),
|
|
@@ -28237,6 +29115,12 @@ class ContextMenu$2 {
|
|
|
28237
29115
|
};
|
|
28238
29116
|
// eslint-disable-next-line
|
|
28239
29117
|
this.parent.trigger('actionBegin', eventArgs, (eventArgs) => {
|
|
29118
|
+
if (!isNullOrUndefined(this.parent.loadingIndicator) && this.parent.loadingIndicator.indicatorType === "Shimmer") {
|
|
29119
|
+
this.parent.showMaskRow();
|
|
29120
|
+
}
|
|
29121
|
+
else {
|
|
29122
|
+
this.parent.showSpinner();
|
|
29123
|
+
}
|
|
28240
29124
|
this.parent.chartRowsModule.splitTask(this.rowData[taskSettings.id], currentClickedDate);
|
|
28241
29125
|
});
|
|
28242
29126
|
}
|
|
@@ -28257,6 +29141,12 @@ class ContextMenu$2 {
|
|
|
28257
29141
|
target: this.targetElement
|
|
28258
29142
|
};
|
|
28259
29143
|
this.parent.trigger('actionBegin', eventArgs, (eventArgs) => {
|
|
29144
|
+
if (!isNullOrUndefined(this.parent.loadingIndicator) && this.parent.loadingIndicator.indicatorType === "Shimmer") {
|
|
29145
|
+
this.parent.showMaskRow();
|
|
29146
|
+
}
|
|
29147
|
+
else {
|
|
29148
|
+
this.parent.showSpinner();
|
|
29149
|
+
}
|
|
28260
29150
|
if (eventArgs.cancel === false) {
|
|
28261
29151
|
this.parent.chartRowsModule.mergeTask(this.rowData[taskSettings.id], segmentIndexes);
|
|
28262
29152
|
}
|
|
@@ -28265,12 +29155,30 @@ class ContextMenu$2 {
|
|
|
28265
29155
|
// eslint-disable-next-line
|
|
28266
29156
|
getClickedDate(element) {
|
|
28267
29157
|
// context menu click position
|
|
28268
|
-
|
|
29158
|
+
let ganttElementPositionLeft;
|
|
28269
29159
|
// task left position
|
|
28270
|
-
|
|
28271
|
-
|
|
28272
|
-
|
|
28273
|
-
|
|
29160
|
+
if (this.parent.enableRtl) {
|
|
29161
|
+
const box = this.parent.element.getBoundingClientRect();
|
|
29162
|
+
const scrollLeft = window.pageXOffset || document.documentElement.scrollLeft ||
|
|
29163
|
+
document.body.scrollLeft;
|
|
29164
|
+
const clientLeft = document.documentElement.clientLeft || document.body.clientLeft || 0;
|
|
29165
|
+
ganttElementPositionLeft = box.left + scrollLeft - clientLeft;
|
|
29166
|
+
}
|
|
29167
|
+
else {
|
|
29168
|
+
ganttElementPositionLeft = this.parent.getOffsetRect(this.parent.element).left;
|
|
29169
|
+
}
|
|
29170
|
+
let pageLeft;
|
|
29171
|
+
let currentTaskDifference;
|
|
29172
|
+
if (this.parent.enableRtl) {
|
|
29173
|
+
pageLeft = Math.abs(ganttElementPositionLeft + this.parent.ganttChartModule.chartElement.offsetWidth -
|
|
29174
|
+
this.rowData.ganttProperties.left - this.parent.ganttChartModule.scrollElement.scrollLeft);
|
|
29175
|
+
currentTaskDifference = Math.abs(this.clickedPosition - pageLeft);
|
|
29176
|
+
}
|
|
29177
|
+
else {
|
|
29178
|
+
pageLeft = ganttElementPositionLeft + this.parent.ganttChartModule.chartElement.offsetLeft +
|
|
29179
|
+
this.rowData.ganttProperties.left - this.parent.ganttChartModule.scrollElement.scrollLeft;
|
|
29180
|
+
currentTaskDifference = this.clickedPosition - pageLeft;
|
|
29181
|
+
}
|
|
28274
29182
|
let splitTaskDuration = Math.ceil(currentTaskDifference / this.parent.perDayWidth);
|
|
28275
29183
|
const startDate = this.rowData.ganttProperties.startDate;
|
|
28276
29184
|
if (!isNullOrUndefined(this.parent.timelineSettings.bottomTier) && this.parent.timelineSettings.bottomTier.unit === 'Hour') {
|
|
@@ -28780,6 +29688,12 @@ class ExcelExport$1 {
|
|
|
28780
29688
|
bindEvents() {
|
|
28781
29689
|
this.parent.treeGrid.beforeExcelExport = (args) => {
|
|
28782
29690
|
this.parent.trigger('beforeExcelExport', args);
|
|
29691
|
+
if (!isNullOrUndefined(this.parent.loadingIndicator) && this.parent.loadingIndicator.indicatorType === "Shimmer") {
|
|
29692
|
+
this.parent.showMaskRow();
|
|
29693
|
+
}
|
|
29694
|
+
else {
|
|
29695
|
+
this.parent.showSpinner();
|
|
29696
|
+
}
|
|
28783
29697
|
};
|
|
28784
29698
|
this.parent.treeGrid.excelQueryCellInfo = (args) => {
|
|
28785
29699
|
this.parent.trigger('excelQueryCellInfo', args);
|
|
@@ -28789,6 +29703,12 @@ class ExcelExport$1 {
|
|
|
28789
29703
|
};
|
|
28790
29704
|
this.parent.treeGrid.excelExportComplete = (args) => {
|
|
28791
29705
|
this.parent.trigger('excelExportComplete', args);
|
|
29706
|
+
if (!isNullOrUndefined(this.parent.loadingIndicator) && this.parent.loadingIndicator.indicatorType === "Shimmer") {
|
|
29707
|
+
this.parent.hideMaskRow();
|
|
29708
|
+
}
|
|
29709
|
+
else {
|
|
29710
|
+
this.parent.hideSpinner();
|
|
29711
|
+
}
|
|
28792
29712
|
};
|
|
28793
29713
|
}
|
|
28794
29714
|
}
|
|
@@ -28971,6 +29891,12 @@ class RowDD$1 {
|
|
|
28971
29891
|
if (!args.cancel) {
|
|
28972
29892
|
args.requestType = 'beforeDrop';
|
|
28973
29893
|
this.parent.trigger('actionBegin', args);
|
|
29894
|
+
if (!isNullOrUndefined(this.parent.loadingIndicator) && this.parent.loadingIndicator.indicatorType === "Shimmer") {
|
|
29895
|
+
this.parent.showMaskRow();
|
|
29896
|
+
}
|
|
29897
|
+
else {
|
|
29898
|
+
this.parent.showSpinner();
|
|
29899
|
+
}
|
|
28974
29900
|
if (!args.cancel) {
|
|
28975
29901
|
this.dropRows(args, true); // method to update the data collections based on drop action
|
|
28976
29902
|
args.cancel = true;
|
|
@@ -29068,15 +29994,15 @@ class RowDD$1 {
|
|
|
29068
29994
|
}
|
|
29069
29995
|
}
|
|
29070
29996
|
if (!this.parent.enableVirtualization) {
|
|
29071
|
-
|
|
29997
|
+
const data = gObj.flatData;
|
|
29072
29998
|
let startIndex;
|
|
29073
29999
|
let endIndex;
|
|
29074
|
-
|
|
29075
|
-
|
|
30000
|
+
const ganttData = this.parent.dataSource;
|
|
30001
|
+
const uniqueTaskID = this.parent.taskFields.id;
|
|
29076
30002
|
if (draggedRecord.index < droppedRecord.index) {
|
|
29077
30003
|
startIndex = draggedRecord.index;
|
|
29078
30004
|
for (let i = 0; i < ganttData.length; i++) {
|
|
29079
|
-
|
|
30005
|
+
const currentData = this.parent.currentViewData.filter(function (e) {
|
|
29080
30006
|
return e[uniqueTaskID] === ganttData[i][uniqueTaskID];
|
|
29081
30007
|
})[0];
|
|
29082
30008
|
if (currentData && currentData.index > droppedRecord.index) {
|
|
@@ -29088,7 +30014,7 @@ class RowDD$1 {
|
|
|
29088
30014
|
else {
|
|
29089
30015
|
startIndex = droppedRecord.index;
|
|
29090
30016
|
for (let i = 0; i < ganttData.length; i++) {
|
|
29091
|
-
|
|
30017
|
+
const currentData = this.parent.currentViewData.filter(function (e) {
|
|
29092
30018
|
return e[uniqueTaskID] === ganttData[i][uniqueTaskID];
|
|
29093
30019
|
})[0];
|
|
29094
30020
|
if (currentData && currentData.index > draggedRecord.index) {
|
|
@@ -29101,7 +30027,7 @@ class RowDD$1 {
|
|
|
29101
30027
|
if (!isNullOrUndefined(data[i])) {
|
|
29102
30028
|
data[i].index = i;
|
|
29103
30029
|
if (!isNullOrUndefined(data[i].parentItem)) {
|
|
29104
|
-
|
|
30030
|
+
const updatedParent = data.filter((e) => {
|
|
29105
30031
|
return e.uniqueID === data[i].parentUniqueID;
|
|
29106
30032
|
})[0];
|
|
29107
30033
|
data[i].parentItem.index = updatedParent.index;
|
|
@@ -29179,7 +30105,7 @@ class RowDD$1 {
|
|
|
29179
30105
|
}
|
|
29180
30106
|
let validateRecords;
|
|
29181
30107
|
if (toParent.uniqueID === draggedParent.uniqueID || (draggedParent.parentItem &&
|
|
29182
|
-
toParent.uniqueID
|
|
30108
|
+
toParent.uniqueID === this.parent.flatData[this.parent.ids.indexOf(draggedParent.parentItem.taskId)].uniqueID)) {
|
|
29183
30109
|
validateRecords = this.parent.currentViewData.filter((data) => {
|
|
29184
30110
|
if ((data.ganttProperties.predecessor && data.ganttProperties.predecessor.length > 0)) {
|
|
29185
30111
|
for (let i = 0; i < data.ganttProperties.predecessor.length; i++) {
|
|
@@ -29597,7 +30523,7 @@ class RowDD$1 {
|
|
|
29597
30523
|
}
|
|
29598
30524
|
let idx;
|
|
29599
30525
|
const ganttData = dataSource.length > 0 && this.parent.viewType !== 'ResourceView' ?
|
|
29600
|
-
dataSource : this.parent.
|
|
30526
|
+
dataSource : this.parent.updatedRecords;
|
|
29601
30527
|
for (let i = 0; i < ganttData.length; i++) {
|
|
29602
30528
|
if (this.parent.viewType === 'ResourceView') {
|
|
29603
30529
|
if (ganttData[i].ganttProperties.rowUniqueID === deletedRow.ganttProperties.rowUniqueID) {
|
|
@@ -32946,217 +33872,215 @@ class PdfGanttPredecessor {
|
|
|
32946
33872
|
let childPageData;
|
|
32947
33873
|
let parentY = 0;
|
|
32948
33874
|
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
|
-
}
|
|
33875
|
+
switch (this.type) {
|
|
33876
|
+
case 'FS':
|
|
33877
|
+
if (childTask.startPage > -1 && parentTask.endPage > -1) {
|
|
33878
|
+
startPage = pages[parentTask.endPage];
|
|
33879
|
+
endPage = pages[childTask.startPage];
|
|
33880
|
+
parentPageData = pdfGantt.pdfPageDetail[parentTask.endPage - pdfGantt.chartPageIndex];
|
|
33881
|
+
childPageData = pdfGantt.pdfPageDetail[childTask.startPage - pdfGantt.chartPageIndex];
|
|
33882
|
+
if (this.parentIndex < this.childIndex) {
|
|
33883
|
+
if (this.parentLeft < this.childLeft && this.childLeft > (this.parentLeft + this.parentWidth + 25)) {
|
|
33884
|
+
predecessorType = 'FSType1';
|
|
32964
33885
|
}
|
|
32965
33886
|
else {
|
|
32966
|
-
|
|
32967
|
-
predecessorType = 'FSType3';
|
|
32968
|
-
}
|
|
32969
|
-
else {
|
|
32970
|
-
predecessorType = 'FSType4';
|
|
32971
|
-
}
|
|
33887
|
+
predecessorType = 'FSType2';
|
|
32972
33888
|
}
|
|
32973
33889
|
}
|
|
32974
33890
|
else {
|
|
32975
|
-
|
|
33891
|
+
if (this.parentLeft < this.childLeft && this.childLeft > (this.parentLeft + this.parentWidth + 25)) {
|
|
33892
|
+
predecessorType = 'FSType3';
|
|
33893
|
+
}
|
|
33894
|
+
else {
|
|
33895
|
+
predecessorType = 'FSType4';
|
|
33896
|
+
}
|
|
32976
33897
|
}
|
|
32977
|
-
|
|
32978
|
-
|
|
32979
|
-
|
|
32980
|
-
|
|
32981
|
-
|
|
32982
|
-
|
|
32983
|
-
|
|
32984
|
-
|
|
32985
|
-
|
|
32986
|
-
|
|
32987
|
-
|
|
32988
|
-
|
|
32989
|
-
|
|
32990
|
-
|
|
33898
|
+
}
|
|
33899
|
+
else {
|
|
33900
|
+
return;
|
|
33901
|
+
}
|
|
33902
|
+
break;
|
|
33903
|
+
case 'SF':
|
|
33904
|
+
if (childTask.endPage > -1 && parentTask.startPage > -1) {
|
|
33905
|
+
startPage = pages[parentTask.startPage];
|
|
33906
|
+
endPage = pages[childTask.endPage];
|
|
33907
|
+
parentPageData = pdfGantt.pdfPageDetail[parentTask.endPage - pdfGantt.chartPageIndex];
|
|
33908
|
+
childPageData = pdfGantt.pdfPageDetail[childTask.startPage - pdfGantt.chartPageIndex];
|
|
33909
|
+
if (this.parentIndex < this.childIndex) {
|
|
33910
|
+
if (this.parentLeft > this.childLeft + this.childWidth) {
|
|
33911
|
+
predecessorType = 'SFType1';
|
|
32991
33912
|
}
|
|
32992
33913
|
else {
|
|
32993
|
-
|
|
32994
|
-
predecessorType = 'SFType3';
|
|
32995
|
-
}
|
|
32996
|
-
else {
|
|
32997
|
-
predecessorType = 'SFType4';
|
|
32998
|
-
}
|
|
33914
|
+
predecessorType = 'SFType2';
|
|
32999
33915
|
}
|
|
33000
33916
|
}
|
|
33001
33917
|
else {
|
|
33002
|
-
|
|
33918
|
+
if (this.parentLeft > this.childLeft + this.childWidth) {
|
|
33919
|
+
predecessorType = 'SFType3';
|
|
33920
|
+
}
|
|
33921
|
+
else {
|
|
33922
|
+
predecessorType = 'SFType4';
|
|
33923
|
+
}
|
|
33003
33924
|
}
|
|
33004
|
-
|
|
33005
|
-
|
|
33006
|
-
|
|
33007
|
-
|
|
33008
|
-
|
|
33009
|
-
|
|
33010
|
-
|
|
33011
|
-
|
|
33012
|
-
|
|
33013
|
-
|
|
33014
|
-
|
|
33015
|
-
|
|
33016
|
-
|
|
33017
|
-
|
|
33925
|
+
}
|
|
33926
|
+
else {
|
|
33927
|
+
return;
|
|
33928
|
+
}
|
|
33929
|
+
break;
|
|
33930
|
+
case 'FF':
|
|
33931
|
+
if (childTask.endPage > -1 && parentTask.endPage > -1) {
|
|
33932
|
+
startPage = pages[parentTask.endPage];
|
|
33933
|
+
endPage = pages[childTask.endPage];
|
|
33934
|
+
parentPageData = pdfGantt.pdfPageDetail[parentTask.endPage - pdfGantt.chartPageIndex];
|
|
33935
|
+
childPageData = pdfGantt.pdfPageDetail[childTask.endPage - pdfGantt.chartPageIndex];
|
|
33936
|
+
if (this.parentIndex < this.childIndex) {
|
|
33937
|
+
if ((this.childLeft + this.childWidth) >= (this.parentLeft + this.parentWidth)) {
|
|
33938
|
+
predecessorType = 'FFType1';
|
|
33018
33939
|
}
|
|
33019
33940
|
else {
|
|
33020
|
-
|
|
33021
|
-
predecessorType = 'FFType3';
|
|
33022
|
-
}
|
|
33023
|
-
else {
|
|
33024
|
-
predecessorType = 'FFType4';
|
|
33025
|
-
}
|
|
33941
|
+
predecessorType = 'FFType2';
|
|
33026
33942
|
}
|
|
33027
33943
|
}
|
|
33028
33944
|
else {
|
|
33029
|
-
|
|
33945
|
+
if ((this.childLeft + this.childWidth) >= (this.parentLeft + this.parentWidth)) {
|
|
33946
|
+
predecessorType = 'FFType3';
|
|
33947
|
+
}
|
|
33948
|
+
else {
|
|
33949
|
+
predecessorType = 'FFType4';
|
|
33950
|
+
}
|
|
33030
33951
|
}
|
|
33031
|
-
|
|
33032
|
-
|
|
33033
|
-
|
|
33034
|
-
|
|
33035
|
-
|
|
33036
|
-
|
|
33037
|
-
|
|
33038
|
-
|
|
33039
|
-
|
|
33040
|
-
|
|
33041
|
-
|
|
33042
|
-
|
|
33043
|
-
|
|
33044
|
-
|
|
33952
|
+
}
|
|
33953
|
+
else {
|
|
33954
|
+
return;
|
|
33955
|
+
}
|
|
33956
|
+
break;
|
|
33957
|
+
case 'SS':
|
|
33958
|
+
if (childTask.startPage > -1 && parentTask.startPage > -1) {
|
|
33959
|
+
startPage = pages[parentTask.startPage];
|
|
33960
|
+
endPage = pages[childTask.startPage];
|
|
33961
|
+
parentPageData = pdfGantt.pdfPageDetail[parentTask.startPage - pdfGantt.chartPageIndex];
|
|
33962
|
+
childPageData = pdfGantt.pdfPageDetail[childTask.startPage - pdfGantt.chartPageIndex];
|
|
33963
|
+
if (this.parentIndex < this.childIndex) {
|
|
33964
|
+
if (this.parentLeft >= this.childLeft) {
|
|
33965
|
+
predecessorType = 'SSType1';
|
|
33045
33966
|
}
|
|
33046
33967
|
else {
|
|
33047
|
-
|
|
33048
|
-
predecessorType = 'SSType3';
|
|
33049
|
-
}
|
|
33050
|
-
else {
|
|
33051
|
-
predecessorType = 'SSType4';
|
|
33052
|
-
}
|
|
33968
|
+
predecessorType = 'SSType2';
|
|
33053
33969
|
}
|
|
33054
33970
|
}
|
|
33055
33971
|
else {
|
|
33056
|
-
|
|
33972
|
+
if (this.parentLeft >= this.childLeft) {
|
|
33973
|
+
predecessorType = 'SSType3';
|
|
33974
|
+
}
|
|
33975
|
+
else {
|
|
33976
|
+
predecessorType = 'SSType4';
|
|
33977
|
+
}
|
|
33057
33978
|
}
|
|
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
|
-
|
|
33979
|
+
}
|
|
33980
|
+
else {
|
|
33981
|
+
return;
|
|
33982
|
+
}
|
|
33983
|
+
break;
|
|
33984
|
+
}
|
|
33985
|
+
let midPoint = Math.round((this.parent.rowHeight - 1) / 2.0);
|
|
33986
|
+
midPoint = pixelToPoint(midPoint);
|
|
33987
|
+
/* eslint-disable-next-line */
|
|
33988
|
+
let point1, point2, point3, point4, point5, point6;
|
|
33989
|
+
point1 = point2 = point3 = point4 = point5 = point6 = new PointF();
|
|
33990
|
+
const parentTaskpoint = Object.assign({}, parentTask.taskStartPoint);
|
|
33991
|
+
const childTaskpoint = Object.assign({}, childTask.taskStartPoint);
|
|
33992
|
+
parentY = parentTaskpoint.y + parentPageData.startPoint.y;
|
|
33993
|
+
childY = childTaskpoint.y + childPageData.startPoint.y;
|
|
33994
|
+
const ffpoint1 = new PointF(pixelToPoint(this.parentLeft + this.parentWidth), parentY + midPoint);
|
|
33995
|
+
const sspoint1 = new PointF(pixelToPoint(this.parentLeft) - 1, parentY + midPoint);
|
|
33996
|
+
const ffpoint3 = new PointF(pixelToPoint(this.childLeft - 20), childY + midPoint);
|
|
33997
|
+
const ffpoint4 = new PointF(pixelToPoint(this.childLeft - 6 - this.lineWidth) - 1, childY + midPoint);
|
|
33998
|
+
const sspoint4 = new PointF(pixelToPoint(this.childLeft + this.childWidth + 6 + this.lineWidth) + 1, childY + midPoint);
|
|
33999
|
+
switch (predecessorType) {
|
|
34000
|
+
case 'FSType1':
|
|
34001
|
+
case 'FSType3':
|
|
34002
|
+
point1 = ffpoint1;
|
|
34003
|
+
point2 = new PointF(pixelToPoint(this.childLeft - 20), parentY + midPoint);
|
|
34004
|
+
point3 = ffpoint3;
|
|
34005
|
+
point4 = ffpoint4;
|
|
34006
|
+
this.connectLines(startPage, endPage, point1, point2, point3, point4, childTask, midPoint);
|
|
34007
|
+
break;
|
|
34008
|
+
case 'FSType2':
|
|
34009
|
+
point1 = ffpoint1;
|
|
34010
|
+
point2 = new PointF(point1.x + 10, parentY + midPoint);
|
|
34011
|
+
point3 = new PointF(point1.x + 10, childY + 2);
|
|
34012
|
+
point4 = new PointF(pixelToPoint(this.childLeft - 20), childY + 2);
|
|
34013
|
+
point5 = ffpoint3;
|
|
34014
|
+
point6 = ffpoint4;
|
|
34015
|
+
this.connectLines(startPage, endPage, point1, point2, point3, point4, childTask, midPoint, point5, point6);
|
|
34016
|
+
break;
|
|
34017
|
+
case 'FSType4':
|
|
34018
|
+
point1 = ffpoint1;
|
|
34019
|
+
point2 = new PointF(point1.x + 10, parentY + midPoint);
|
|
34020
|
+
point3 = new PointF(point1.x + 10, parentY + 2);
|
|
34021
|
+
point4 = new PointF(pixelToPoint(this.childLeft - 20), parentY + 2);
|
|
34022
|
+
point5 = ffpoint3;
|
|
34023
|
+
point6 = ffpoint4;
|
|
34024
|
+
this.connectLines(startPage, endPage, point1, point2, point3, point4, childTask, midPoint, point5, point6);
|
|
34025
|
+
break;
|
|
34026
|
+
case 'FFType1':
|
|
34027
|
+
case 'FFType3':
|
|
34028
|
+
point1 = new PointF(pixelToPoint(this.parentLeft + this.parentWidth) + 1, parentY + midPoint);
|
|
34029
|
+
point2 = new PointF(pixelToPoint(this.childLeft + this.childWidth + 20), parentY + midPoint);
|
|
34030
|
+
point3 = new PointF(point2.x, childY + midPoint);
|
|
34031
|
+
point4 = sspoint4;
|
|
34032
|
+
this.connectLines(startPage, endPage, point1, point2, point3, point4, childTask, midPoint);
|
|
34033
|
+
break;
|
|
34034
|
+
case 'FFType2':
|
|
34035
|
+
case 'FFType4':
|
|
34036
|
+
point1 = new PointF(pixelToPoint(this.parentLeft + this.parentWidth) + 1, parentY + midPoint);
|
|
34037
|
+
point2 = new PointF(pixelToPoint(this.parentLeft + this.parentWidth + 20), parentY + midPoint);
|
|
34038
|
+
point3 = new PointF(point2.x, childY + midPoint);
|
|
34039
|
+
point4 = sspoint4;
|
|
34040
|
+
this.connectLines(startPage, endPage, point1, point2, point3, point4, childTask, midPoint);
|
|
34041
|
+
break;
|
|
34042
|
+
case 'SSType1':
|
|
34043
|
+
case 'SSType3':
|
|
34044
|
+
point1 = sspoint1;
|
|
34045
|
+
point2 = new PointF(pixelToPoint(this.childLeft - 20), parentY + midPoint);
|
|
34046
|
+
point3 = new PointF(point2.x, childY + midPoint);
|
|
34047
|
+
point4 = ffpoint4;
|
|
34048
|
+
this.connectLines(startPage, endPage, point1, point2, point3, point4, childTask, midPoint);
|
|
34049
|
+
break;
|
|
34050
|
+
case 'SSType2':
|
|
34051
|
+
case 'SSType4':
|
|
34052
|
+
point1 = sspoint1;
|
|
34053
|
+
point2 = new PointF(pixelToPoint(this.parentLeft - 20), parentY + midPoint);
|
|
34054
|
+
point3 = new PointF(point2.x, childY + midPoint);
|
|
34055
|
+
point4 = ffpoint4;
|
|
34056
|
+
this.connectLines(startPage, endPage, point1, point2, point3, point4, childTask, midPoint);
|
|
34057
|
+
break;
|
|
34058
|
+
case 'SFType1':
|
|
34059
|
+
case 'SFType3':
|
|
34060
|
+
point1 = sspoint1;
|
|
34061
|
+
point2 = new PointF(pixelToPoint(this.childLeft + this.childWidth + 20), parentY + midPoint);
|
|
34062
|
+
point3 = new PointF(point2.x, childY + midPoint);
|
|
34063
|
+
point4 = sspoint4;
|
|
34064
|
+
this.connectLines(startPage, endPage, point1, point2, point3, point4, childTask, midPoint);
|
|
34065
|
+
break;
|
|
34066
|
+
case 'SFType2':
|
|
34067
|
+
point1 = sspoint1;
|
|
34068
|
+
point2 = new PointF(pixelToPoint(this.parentLeft - 20), parentY + midPoint);
|
|
34069
|
+
point3 = new PointF(point2.x, childY + 2);
|
|
34070
|
+
point4 = new PointF(pixelToPoint(this.childLeft + this.childWidth + 20), childY + 2);
|
|
34071
|
+
point5 = new PointF(point4.x, childY + midPoint);
|
|
34072
|
+
point6 = sspoint4;
|
|
34073
|
+
this.connectLines(startPage, endPage, point1, point2, point3, point4, childTask, midPoint, point5, point6);
|
|
34074
|
+
break;
|
|
34075
|
+
case 'SFType4':
|
|
34076
|
+
point1 = sspoint1;
|
|
34077
|
+
point2 = new PointF(pixelToPoint(this.parentLeft - 20), parentY + midPoint);
|
|
34078
|
+
point3 = new PointF(point2.x, parentY + 2);
|
|
34079
|
+
point4 = new PointF(pixelToPoint(this.childLeft + this.childWidth + 20), parentY + 2);
|
|
34080
|
+
point5 = new PointF(point4.x, childY + midPoint);
|
|
34081
|
+
point6 = sspoint4;
|
|
34082
|
+
this.connectLines(startPage, endPage, point1, point2, point3, point4, childTask, midPoint, point5, point6);
|
|
34083
|
+
break;
|
|
33160
34084
|
}
|
|
33161
34085
|
}
|
|
33162
34086
|
/**
|
|
@@ -33639,6 +34563,12 @@ class PdfExport {
|
|
|
33639
34563
|
cancel: false
|
|
33640
34564
|
};
|
|
33641
34565
|
this.parent.trigger('beforePdfExport', args);
|
|
34566
|
+
if (!isNullOrUndefined(this.parent.loadingIndicator) && this.parent.loadingIndicator.indicatorType === "Shimmer") {
|
|
34567
|
+
this.parent.showMaskRow();
|
|
34568
|
+
}
|
|
34569
|
+
else {
|
|
34570
|
+
this.parent.showSpinner();
|
|
34571
|
+
}
|
|
33642
34572
|
if (getValue('cancel', args)) {
|
|
33643
34573
|
/* eslint-disable-next-line */
|
|
33644
34574
|
return new Promise((resolve, reject) => {
|
|
@@ -33670,6 +34600,12 @@ class PdfExport {
|
|
|
33670
34600
|
}
|
|
33671
34601
|
this.processExport(data, pdfExportProperties, isMultipleExport).then(() => {
|
|
33672
34602
|
this.parent.trigger('pdfExportComplete', {});
|
|
34603
|
+
if (!isNullOrUndefined(this.parent.loadingIndicator) && this.parent.loadingIndicator.indicatorType === "Shimmer") {
|
|
34604
|
+
this.parent.hideMaskRow();
|
|
34605
|
+
}
|
|
34606
|
+
else {
|
|
34607
|
+
this.parent.hideSpinner();
|
|
34608
|
+
}
|
|
33673
34609
|
resolve(this.pdfDocument);
|
|
33674
34610
|
});
|
|
33675
34611
|
}
|
|
@@ -33857,5 +34793,5 @@ class VirtualScroll$1 {
|
|
|
33857
34793
|
* Gantt index file
|
|
33858
34794
|
*/
|
|
33859
34795
|
|
|
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 };
|
|
34796
|
+
export { Gantt, PdfHorizontalOverflowType, parentsUntil$1 as parentsUntil, isScheduledTask, isCountRequired, getSwapKey, isRemoteData, getTaskData, updateDates, formatString, getIndex, pixelToPoint, pointToPixel, getUid$1 as getUid, load, rowDataBound, queryCellInfo, toolbarClick, keyPressed, Edit$2 as Edit, Reorder$1 as Reorder, Resize$1 as Resize, Filter$1 as Filter, Sort$1 as Sort, Dependency, Selection$1 as Selection, Toolbar$3 as Toolbar, DayMarkers, CriticalPath, ContextMenu$2 as ContextMenu, ExcelExport$1 as ExcelExport, ColumnMenu$1 as ColumnMenu, RowDD$1 as RowDD, PdfExport, VirtualScroll$1 as VirtualScroll, Column, DayWorkingTime, AddDialogFieldSettings, EditDialogFieldSettings, EditSettings, EventMarker, FilterSettings, SearchSettings, Holiday, LabelSettings, SelectionSettings, SplitterSettings, TaskFields, TimelineTierSettings, TimelineSettings, TooltipSettings, SortDescriptor, SortSettings, ResourceFields, LoadingIndicator };
|
|
33861
34797
|
//# sourceMappingURL=ej2-gantt.es2015.js.map
|