@syncfusion/ej2-gantt 19.4.55 → 20.1.48
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/CHANGELOG.md +34 -1
- 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 +242 -138
- package/dist/es6/ej2-gantt.es2015.js.map +1 -1
- package/dist/es6/ej2-gantt.es5.js +264 -146
- 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 +18 -18
- package/src/gantt/actions/cell-edit.js +2 -1
- package/src/gantt/actions/dialog-edit.js +2 -1
- package/src/gantt/actions/edit.js +36 -9
- package/src/gantt/actions/filter.js +4 -2
- package/src/gantt/actions/rowdragdrop.js +41 -17
- package/src/gantt/actions/selection.js +3 -2
- package/src/gantt/base/date-processor.js +0 -1
- package/src/gantt/base/gantt-chart.js +36 -5
- package/src/gantt/base/gantt.js +15 -56
- package/src/gantt/base/splitter.js +1 -0
- package/src/gantt/base/tree-grid.js +3 -1
- package/src/gantt/renderer/chart-rows.js +36 -24
- package/src/gantt/renderer/connector-line.js +22 -18
- package/src/gantt/renderer/event-marker.js +1 -0
- package/src/gantt/renderer/nonworking-day.js +13 -6
- package/src/gantt/renderer/timeline.d.ts +1 -0
- package/src/gantt/renderer/timeline.js +40 -1
- package/src/gantt/renderer/tooltip.js +10 -3
- package/styles/bootstrap-dark.css +37 -10
- package/styles/bootstrap.css +37 -10
- package/styles/bootstrap4.css +37 -10
- package/styles/bootstrap5-dark.css +53 -19
- package/styles/bootstrap5.css +53 -19
- package/styles/fabric-dark.css +34 -7
- package/styles/fabric.css +37 -10
- package/styles/fluent-dark.css +1942 -0
- package/styles/fluent-dark.scss +1 -0
- package/styles/fluent.css +1942 -0
- package/styles/fluent.scss +1 -0
- package/styles/gantt/_bootstrap-dark-definition.scss +10 -2
- package/styles/gantt/_bootstrap-definition.scss +11 -3
- package/styles/gantt/_bootstrap4-definition.scss +10 -2
- package/styles/gantt/_bootstrap5-definition.scss +17 -9
- package/styles/gantt/_fabric-dark-definition.scss +8 -0
- package/styles/gantt/_fabric-definition.scss +10 -2
- package/styles/gantt/_fluent-dark-definition.scss +1 -0
- package/styles/gantt/_fluent-definition.scss +21 -13
- package/styles/gantt/_highcontrast-definition.scss +9 -1
- package/styles/gantt/_highcontrast-light-definition.scss +9 -1
- package/styles/gantt/_layout.scss +53 -2
- package/styles/gantt/_material-dark-definition.scss +9 -1
- package/styles/gantt/_material-definition.scss +10 -2
- package/styles/gantt/_tailwind-definition.scss +13 -5
- package/styles/gantt/_theme.scss +2 -5
- package/styles/gantt/bootstrap-dark.css +37 -10
- package/styles/gantt/bootstrap.css +37 -10
- package/styles/gantt/bootstrap4.css +37 -10
- package/styles/gantt/bootstrap5-dark.css +53 -19
- package/styles/gantt/bootstrap5.css +53 -19
- package/styles/gantt/fabric-dark.css +34 -7
- package/styles/gantt/fabric.css +37 -10
- package/styles/gantt/fluent-dark.css +1942 -0
- package/styles/gantt/fluent-dark.scss +22 -0
- package/styles/gantt/fluent.css +1942 -0
- package/styles/gantt/fluent.scss +22 -0
- package/styles/gantt/highcontrast-light.css +34 -7
- package/styles/gantt/highcontrast.css +34 -7
- package/styles/gantt/icons/_fluent-dark.scss +1 -0
- package/styles/gantt/icons/_fluent.scss +1 -1
- package/styles/gantt/icons/_tailwind-dark.scss +28 -29
- package/styles/gantt/icons/_tailwind.scss +26 -27
- package/styles/gantt/material-dark.css +37 -10
- package/styles/gantt/material.css +37 -10
- package/styles/gantt/tailwind-dark.css +70 -99
- package/styles/gantt/tailwind.css +70 -99
- package/styles/highcontrast-light.css +34 -7
- package/styles/highcontrast.css +34 -7
- package/styles/material-dark.css +37 -10
- package/styles/material.css +37 -10
- package/styles/tailwind-dark.css +70 -99
- package/styles/tailwind.css +70 -99
|
@@ -483,7 +483,6 @@ class DateProcessor {
|
|
|
483
483
|
tDuration = this.parent.editModule.taskbarEditModule.sumOfDuration(ganttProperties.segments);
|
|
484
484
|
}
|
|
485
485
|
else {
|
|
486
|
-
// eslint-disable-next-line
|
|
487
486
|
if (!isNullOrUndefined(ganttProperties.startDate) && !isNullOrUndefined(ganttProperties.endDate) &&
|
|
488
487
|
(ganttProperties.startDate).getTime() === (ganttProperties.endDate).getTime() && !isNullOrUndefined(ganttData.taskData[this.parent.taskFields.milestone])) {
|
|
489
488
|
tDuration = 1;
|
|
@@ -4082,6 +4081,7 @@ class GanttChart {
|
|
|
4082
4081
|
this.chartTimelineContainer = null;
|
|
4083
4082
|
this.rangeViewContainer =
|
|
4084
4083
|
createElement('div', { className: rangeContainer });
|
|
4084
|
+
this.rangeViewContainer.setAttribute("role", "RangeContainer");
|
|
4085
4085
|
this.virtualRender = new VirtualContentRenderer(this.parent);
|
|
4086
4086
|
this.addEventListener();
|
|
4087
4087
|
}
|
|
@@ -4240,6 +4240,7 @@ class GanttChart {
|
|
|
4240
4240
|
renderTimelineContainer() {
|
|
4241
4241
|
this.chartTimelineContainer =
|
|
4242
4242
|
createElement('div', { className: timelineHeaderContainer });
|
|
4243
|
+
this.chartTimelineContainer.setAttribute("role", "TimelineHeader");
|
|
4243
4244
|
this.chartElement.appendChild(this.chartTimelineContainer);
|
|
4244
4245
|
}
|
|
4245
4246
|
/**
|
|
@@ -4279,8 +4280,19 @@ class GanttChart {
|
|
|
4279
4280
|
//empty row height
|
|
4280
4281
|
const emptydivHeight = 36;
|
|
4281
4282
|
const emptyHeight = this.parent.contentHeight === 0 ? this.parent.flatData.length > 1 ? emptydivHeight : 0 : this.parent.contentHeight;
|
|
4282
|
-
this.
|
|
4283
|
-
|
|
4283
|
+
let contentElement = this.parent.element.getElementsByClassName('e-chart-scroll-container e-content')[0];
|
|
4284
|
+
if (emptyHeight >= contentElement['offsetHeight'] || this.parent.height === 'auto') {
|
|
4285
|
+
this.chartBodyContent.style.height = formatUnit(emptyHeight);
|
|
4286
|
+
}
|
|
4287
|
+
else {
|
|
4288
|
+
let scrollHeight = this.parent.element.getElementsByClassName('e-chart-rows-container')[0]['offsetHeight'];
|
|
4289
|
+
if (contentElement['offsetHeight'] >= scrollHeight) {
|
|
4290
|
+
this.chartBodyContent.style.height = contentElement['offsetHeight'] - 17 + 'px';
|
|
4291
|
+
}
|
|
4292
|
+
else {
|
|
4293
|
+
this.chartBodyContent.style.height = contentElement['offsetHeight'] + 'px';
|
|
4294
|
+
}
|
|
4295
|
+
} //let element: HTMLElement = this.chartTimelineContainer.querySelector('.' + cls.timelineHeaderTableContainer);
|
|
4284
4296
|
this.chartBodyContent.style.width = formatUnit(this.parent.timelineModule.totalTimelineWidth);
|
|
4285
4297
|
this.setVirtualHeight();
|
|
4286
4298
|
this.parent.notify('updateHeight', {});
|
|
@@ -4312,7 +4324,21 @@ class GanttChart {
|
|
|
4312
4324
|
if (this.chartBodyContent.clientHeight < this.chartBodyContainer.clientHeight) {
|
|
4313
4325
|
if (lastRow) {
|
|
4314
4326
|
addClass(lastRow.querySelectorAll('td'), 'e-lastrow');
|
|
4315
|
-
|
|
4327
|
+
const emptydivHeight = 36;
|
|
4328
|
+
const emptyHeight = this.parent.contentHeight === 0 ? this.parent.flatData.length > 1 ? emptydivHeight : 0 : this.parent.contentHeight;
|
|
4329
|
+
let contentElement = this.parent.element.getElementsByClassName('e-chart-scroll-container e-content')[0];
|
|
4330
|
+
if (emptyHeight >= contentElement['offsetHeight']) {
|
|
4331
|
+
this.chartBodyContent.style.height = formatUnit(emptyHeight);
|
|
4332
|
+
}
|
|
4333
|
+
else {
|
|
4334
|
+
let scrollHeight = this.parent.element.getElementsByClassName('e-chart-rows-container')[0]['offsetHeight'];
|
|
4335
|
+
if (contentElement['offsetHeight'] >= scrollHeight) {
|
|
4336
|
+
this.chartBodyContent.style.height = contentElement['offsetHeight'] - 17 + 'px';
|
|
4337
|
+
}
|
|
4338
|
+
else {
|
|
4339
|
+
this.chartBodyContent.style.height = contentElement['offsetHeight'] + 'px';
|
|
4340
|
+
}
|
|
4341
|
+
}
|
|
4316
4342
|
}
|
|
4317
4343
|
}
|
|
4318
4344
|
}
|
|
@@ -4444,7 +4470,7 @@ class GanttChart {
|
|
|
4444
4470
|
const target = e.target;
|
|
4445
4471
|
const isOnTaskbarElement = e.target.classList.contains(taskBarMainContainer)
|
|
4446
4472
|
|| closest(e.target, '.' + taskBarMainContainer);
|
|
4447
|
-
if (closest(target, '.e-gantt-parent-taskbar')) {
|
|
4473
|
+
if (closest(target, '.e-gantt-parent-taskbar') && !this.parent.editSettings.allowEditing) {
|
|
4448
4474
|
this.chartExpandCollapseRequest(e);
|
|
4449
4475
|
}
|
|
4450
4476
|
else if (!isOnTaskbarElement && this.parent.autoFocusTasks) {
|
|
@@ -4966,6 +4992,10 @@ class GanttChart {
|
|
|
4966
4992
|
$target.classList.contains('e-headercell') || $target.closest('.e-segmented-taskbar')) {
|
|
4967
4993
|
e.preventDefault();
|
|
4968
4994
|
}
|
|
4995
|
+
if (isTab && $target.classList.contains('e-rowdragdrop')) {
|
|
4996
|
+
this.parent.treeGrid.grid.notify('key-pressed', e);
|
|
4997
|
+
return;
|
|
4998
|
+
}
|
|
4969
4999
|
if ($target.classList.contains('e-rowcell') && (nextElement && nextElement.classList.contains('e-rowcell')) ||
|
|
4970
5000
|
$target.classList.contains('e-headercell')) { // eslint-disable-line
|
|
4971
5001
|
if (isTab) {
|
|
@@ -5008,7 +5038,7 @@ class GanttChart {
|
|
|
5008
5038
|
else {
|
|
5009
5039
|
this.manageFocus($target, 'remove', true);
|
|
5010
5040
|
}
|
|
5011
|
-
if (nextElement.classList.contains('e-rowcell')) {
|
|
5041
|
+
if (nextElement.classList.contains('e-rowcell') && $target.nextElementSibling) {
|
|
5012
5042
|
if (!$target.classList.contains('e-rowcell')) {
|
|
5013
5043
|
this.parent.treeGrid.grid.notify('key-pressed', e);
|
|
5014
5044
|
const fmodule = getValue('focusModule', this.parent.treeGrid.grid);
|
|
@@ -5356,7 +5386,7 @@ class Timeline {
|
|
|
5356
5386
|
const currentZoomingLevel = this.checkCurrentZoomingLevel();
|
|
5357
5387
|
this.isZoomIn = isZoomIn;
|
|
5358
5388
|
this.isZooming = true;
|
|
5359
|
-
|
|
5389
|
+
let currentLevel = isZoomIn ? currentZoomingLevel + 1 : currentZoomingLevel - 1;
|
|
5360
5390
|
if (this.parent.toolbarModule) {
|
|
5361
5391
|
if (isZoomIn) {
|
|
5362
5392
|
if (currentLevel === this.parent.zoomingLevels[this.parent.zoomingLevels.length - 1].level) {
|
|
@@ -5375,6 +5405,9 @@ class Timeline {
|
|
|
5375
5405
|
}
|
|
5376
5406
|
}
|
|
5377
5407
|
}
|
|
5408
|
+
currentLevel = this.parent.zoomingLevels.findIndex((tempLevel) => {
|
|
5409
|
+
return tempLevel.level === currentLevel;
|
|
5410
|
+
});
|
|
5378
5411
|
let newTimeline = this.parent.zoomingLevels[currentLevel];
|
|
5379
5412
|
const args = {
|
|
5380
5413
|
requestType: isZoomIn ? 'beforeZoomIn' : 'beforeZoomOut',
|
|
@@ -6084,6 +6117,40 @@ class Timeline {
|
|
|
6084
6117
|
} while ((startDate < endDate));
|
|
6085
6118
|
return parentTh;
|
|
6086
6119
|
}
|
|
6120
|
+
updateTimelineAfterZooming(endDate, resized) {
|
|
6121
|
+
let timeDiff;
|
|
6122
|
+
let perDayWidth;
|
|
6123
|
+
let totWidth;
|
|
6124
|
+
let contentElement = document.getElementsByClassName('e-chart-scroll-container e-content')[0];
|
|
6125
|
+
if (!isNullOrUndefined(contentElement)) {
|
|
6126
|
+
let contentWidth = contentElement['offsetWidth'];
|
|
6127
|
+
let contentHeight = contentElement['offsetHeight'];
|
|
6128
|
+
let scrollHeight = document.getElementsByClassName('e-chart-rows-container')[0]['offsetHeight'];
|
|
6129
|
+
timeDiff = Math.abs(this.timelineStartDate.getTime() - endDate.getTime());
|
|
6130
|
+
timeDiff = timeDiff / (1000 * 3600 * 24);
|
|
6131
|
+
if (this.bottomTier === 'None') {
|
|
6132
|
+
perDayWidth = this.getPerDayWidth(this.customTimelineSettings.timelineUnitSize, this.customTimelineSettings.topTier.count, this.topTier);
|
|
6133
|
+
}
|
|
6134
|
+
else {
|
|
6135
|
+
perDayWidth = this.getPerDayWidth(this.customTimelineSettings.timelineUnitSize, this.customTimelineSettings.bottomTier.count, this.bottomTier);
|
|
6136
|
+
}
|
|
6137
|
+
if (contentHeight < scrollHeight) {
|
|
6138
|
+
totWidth = (perDayWidth * timeDiff) + 17;
|
|
6139
|
+
}
|
|
6140
|
+
else {
|
|
6141
|
+
totWidth = (perDayWidth * timeDiff);
|
|
6142
|
+
}
|
|
6143
|
+
if (contentWidth >= totWidth) {
|
|
6144
|
+
let widthDiff = contentWidth - totWidth;
|
|
6145
|
+
widthDiff = Math.round(widthDiff / perDayWidth);
|
|
6146
|
+
endDate.setDate(endDate.getDate() + widthDiff);
|
|
6147
|
+
this.parent.timelineModule.timelineEndDate = endDate;
|
|
6148
|
+
if (resized) {
|
|
6149
|
+
this.parent.updateProjectDates(this.timelineStartDate, this.timelineEndDate, this.parent.isTimelineRoundOff);
|
|
6150
|
+
}
|
|
6151
|
+
}
|
|
6152
|
+
}
|
|
6153
|
+
}
|
|
6087
6154
|
getTimelineRoundOffEndDate(date) {
|
|
6088
6155
|
const tierMode = this.topTier === 'None' ? this.bottomTier : this.topTier;
|
|
6089
6156
|
const endDate = new Date(date.toString());
|
|
@@ -6098,6 +6165,9 @@ class Timeline {
|
|
|
6098
6165
|
endDate.setHours(24, 0, 0, 0);
|
|
6099
6166
|
}
|
|
6100
6167
|
}
|
|
6168
|
+
if (this.isZooming || this.parent.isLoad) {
|
|
6169
|
+
this.updateTimelineAfterZooming(endDate, false);
|
|
6170
|
+
}
|
|
6101
6171
|
return endDate;
|
|
6102
6172
|
}
|
|
6103
6173
|
/**
|
|
@@ -6167,7 +6237,6 @@ class Timeline {
|
|
|
6167
6237
|
}
|
|
6168
6238
|
return increment;
|
|
6169
6239
|
}
|
|
6170
|
-
;
|
|
6171
6240
|
/**
|
|
6172
6241
|
* Method to find header cell was weekend or not
|
|
6173
6242
|
*
|
|
@@ -6746,6 +6815,8 @@ class GanttTreeGrid {
|
|
|
6746
6815
|
renderTreeGrid() {
|
|
6747
6816
|
this.composeProperties();
|
|
6748
6817
|
this.bindEvents();
|
|
6818
|
+
const root = 'root';
|
|
6819
|
+
this.parent.treeGrid[root] = this.parent[root] ? this.parent[root] : this.parent;
|
|
6749
6820
|
this.parent.treeGrid.appendTo(this.treeGridElement);
|
|
6750
6821
|
this.wireEvents();
|
|
6751
6822
|
}
|
|
@@ -6809,7 +6880,7 @@ class GanttTreeGrid {
|
|
|
6809
6880
|
const scrollWidth = this.getScrollbarWidth();
|
|
6810
6881
|
const isMobile = /Android|Mac|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);
|
|
6811
6882
|
if (scrollWidth !== 0) {
|
|
6812
|
-
content.style.cssText += 'width: calc(100% + ' + scrollWidth + 'px);';
|
|
6883
|
+
content.style.cssText += 'width: calc(100% + ' + (scrollWidth + 1) + 'px);';
|
|
6813
6884
|
}
|
|
6814
6885
|
else {
|
|
6815
6886
|
content.classList.add('e-gantt-scroll-padding');
|
|
@@ -7835,7 +7906,7 @@ class ChartRows extends DateProcessor {
|
|
|
7835
7906
|
this.milestoneHeight = 0;
|
|
7836
7907
|
this.milesStoneRadius = 0;
|
|
7837
7908
|
this.baselineTop = 0;
|
|
7838
|
-
this.baselineHeight =
|
|
7909
|
+
this.baselineHeight = 8;
|
|
7839
7910
|
this.touchLeftConnectorpoint = '';
|
|
7840
7911
|
this.touchRightConnectorpoint = '';
|
|
7841
7912
|
this.dropSplit = false;
|
|
@@ -7917,7 +7988,7 @@ class ChartRows extends DateProcessor {
|
|
|
7917
7988
|
* @private
|
|
7918
7989
|
*/
|
|
7919
7990
|
getIndicatorNode(indicator) {
|
|
7920
|
-
const templateString = '<label class="' + label + ' ' + taskIndicatorDiv + '"
|
|
7991
|
+
const templateString = '<label class="' + label + ' ' + taskIndicatorDiv + '" role="LabelIndicator" style="line-height:'
|
|
7921
7992
|
+ (this.parent.rowHeight) + 'px;' +
|
|
7922
7993
|
'left:' + this.getIndicatorleft(indicator.date) + 'px;"><i class="' + indicator.iconClass + '"></i> </label>';
|
|
7923
7994
|
return this.createDivElement(templateString);
|
|
@@ -7990,9 +8061,9 @@ class ChartRows extends DateProcessor {
|
|
|
7990
8061
|
}
|
|
7991
8062
|
else {
|
|
7992
8063
|
taskLabel$$1 = '<span class="' + taskLabel + '" style="line-height:' +
|
|
7993
|
-
(this.taskBarHeight - 1) + 'px;
|
|
7994
|
-
|
|
7995
|
-
|
|
8064
|
+
(this.taskBarHeight - 1) + 'px;' + (this.parent.viewType === 'ResourceView' ? 'text-align: left;' : '') +
|
|
8065
|
+
+(this.parent.viewType === 'ResourceView' ? 'display:inline-flex;' : '') +
|
|
8066
|
+
+(this.parent.viewType === 'ResourceView' ? (data.ganttProperties.width - 10) : '') + 'px; height:' +
|
|
7996
8067
|
this.taskBarHeight + 'px;">' + labelString + '</span>';
|
|
7997
8068
|
}
|
|
7998
8069
|
}
|
|
@@ -8409,7 +8480,7 @@ class ChartRows extends DateProcessor {
|
|
|
8409
8480
|
*/
|
|
8410
8481
|
getTaskBaselineNode() {
|
|
8411
8482
|
const data = this.templateData;
|
|
8412
|
-
const template = '<div class="' + baselineBar + ' ' + '" style="margin-top:' + this.baselineTop +
|
|
8483
|
+
const template = '<div class="' + baselineBar + ' ' + '" role="BaselineBar" style="margin-top:' + this.baselineTop +
|
|
8413
8484
|
'px;left:' + data.ganttProperties.baselineLeft + 'px;' +
|
|
8414
8485
|
'width:' + data.ganttProperties.baselineWidth + 'px;height:' +
|
|
8415
8486
|
this.baselineHeight + 'px;' + (this.baselineColor ? 'background-color: ' + this.baselineColor + ';' : '') + '"></div>';
|
|
@@ -8423,9 +8494,10 @@ class ChartRows extends DateProcessor {
|
|
|
8423
8494
|
*/
|
|
8424
8495
|
getMilestoneBaselineNode() {
|
|
8425
8496
|
const data = this.templateData;
|
|
8497
|
+
let baselineMilestoneHeight = this.parent.renderBaseline ? 5 : 2;
|
|
8426
8498
|
const template = '<div class="' + baselineMilestoneContainer + ' ' + '" style="' +
|
|
8427
8499
|
'left:' + (data.ganttProperties.baselineLeft - this.milesStoneRadius) + 'px;' +
|
|
8428
|
-
'margin-top:' + (-Math.floor(this.parent.rowHeight - this.milestoneMarginTop) +
|
|
8500
|
+
'margin-top:' + (-Math.floor(this.parent.rowHeight - this.milestoneMarginTop) + baselineMilestoneHeight) +
|
|
8429
8501
|
'px">' + '<div class="' + baselineMilestoneDiv + '">' + '<div class="' + baselineMilestoneDiv +
|
|
8430
8502
|
' ' + baselineMilestoneTop + '" ' +
|
|
8431
8503
|
'style="top:' + (-this.milestoneHeight) + 'px;border-right:' + this.milesStoneRadius +
|
|
@@ -8453,7 +8525,9 @@ class ChartRows extends DateProcessor {
|
|
|
8453
8525
|
*/
|
|
8454
8526
|
getLeftLabelNode(i) {
|
|
8455
8527
|
const leftLabelNode = this.leftLabelContainer();
|
|
8456
|
-
|
|
8528
|
+
if (this.generateTaskLabelAriaLabel('left') !== "") {
|
|
8529
|
+
leftLabelNode[0].setAttribute('aria-label', this.generateTaskLabelAriaLabel('left'));
|
|
8530
|
+
}
|
|
8457
8531
|
let leftLabelTemplateNode = null;
|
|
8458
8532
|
if (this.leftTaskLabelTemplateFunction) {
|
|
8459
8533
|
leftLabelTemplateNode = this.leftTaskLabelTemplateFunction(extend({ index: i }, this.templateData), this.parent, 'LeftLabelTemplate', this.getTemplateID('LeftLabelTemplate'), false, undefined, leftLabelNode[0], this.parent.treeGrid['root']);
|
|
@@ -8475,9 +8549,10 @@ class ChartRows extends DateProcessor {
|
|
|
8475
8549
|
return leftLabelNode;
|
|
8476
8550
|
}
|
|
8477
8551
|
getLableText(labelString, labelDiv) {
|
|
8552
|
+
let leftLabelHeight = this.parent.renderBaseline ? ((this.parent.rowHeight - this.taskBarHeight) / 2) : this.taskBarMarginTop;
|
|
8478
8553
|
const templateString = createElement('div', {
|
|
8479
8554
|
className: labelDiv, styles: 'height:' + (this.taskBarHeight) + 'px;' +
|
|
8480
|
-
'margin-top:' +
|
|
8555
|
+
'margin-top:' + leftLabelHeight + 'px;'
|
|
8481
8556
|
});
|
|
8482
8557
|
const spanElem = createElement('span', { className: label });
|
|
8483
8558
|
const property = this.parent.disableHtmlEncode ? 'textContent' : 'innerHTML';
|
|
@@ -8496,7 +8571,9 @@ class ChartRows extends DateProcessor {
|
|
|
8496
8571
|
*/
|
|
8497
8572
|
getRightLabelNode(i) {
|
|
8498
8573
|
const rightLabelNode = this.rightLabelContainer();
|
|
8499
|
-
|
|
8574
|
+
if (this.generateTaskLabelAriaLabel('right') !== "") {
|
|
8575
|
+
rightLabelNode[0].setAttribute('aria-label', this.generateTaskLabelAriaLabel('right'));
|
|
8576
|
+
}
|
|
8500
8577
|
let rightLabelTemplateNode = null;
|
|
8501
8578
|
if (this.rightTaskLabelTemplateFunction) {
|
|
8502
8579
|
rightLabelTemplateNode = this.rightTaskLabelTemplateFunction(extend({ index: i }, this.templateData), this.parent, 'RightLabelTemplate', this.getTemplateID('RightLabelTemplate'), false, undefined, rightLabelNode[0], this.parent.treeGrid['root']);
|
|
@@ -8609,8 +8686,10 @@ class ChartRows extends DateProcessor {
|
|
|
8609
8686
|
else {
|
|
8610
8687
|
labelDiv = this.createDivElement('<span class="' +
|
|
8611
8688
|
taskLabel + '" style="line-height:' +
|
|
8612
|
-
(this.taskBarHeight - 1) + 'px;
|
|
8613
|
-
(this.parent.viewType === 'ResourceView' ? (data.ganttProperties.width - 10) : '
|
|
8689
|
+
(this.taskBarHeight - 1) + 'px;' + (this.parent.viewType === 'ResourceView' ? 'display:inline-flex;' : '') +
|
|
8690
|
+
(this.parent.viewType === 'ResourceView' ? 'width:' + (data.ganttProperties.width - 10) : '') + 'px; height:' +
|
|
8691
|
+
(this.taskBarHeight - 1) + 'px;' + (this.parent.viewType === 'ResourceView' ? 'display: inline-flex;' : '') +
|
|
8692
|
+
(this.parent.viewType === 'ResourceView' ? 'width:' + (data.ganttProperties.width - 10) : '') + 'px; height:' +
|
|
8614
8693
|
this.taskBarHeight + 'px;">' + labelString + '</span>');
|
|
8615
8694
|
}
|
|
8616
8695
|
progressBarInnerDiv[0].appendChild([].slice.call(labelDiv)[0]);
|
|
@@ -8639,10 +8718,10 @@ class ChartRows extends DateProcessor {
|
|
|
8639
8718
|
const className = (this.parent.gridLines === 'Horizontal' || this.parent.gridLines === 'Both') ?
|
|
8640
8719
|
'e-chart-row-border' : '';
|
|
8641
8720
|
table.innerHTML = '<tr class="' + this.getRowClassName(this.templateData) + ' ' + chartRow + '"' +
|
|
8642
|
-
'style="display:' + this.getExpandDisplayProp(this.templateData) + ';height:' +
|
|
8721
|
+
'role="ChartRow" style="display:' + this.getExpandDisplayProp(this.templateData) + ';height:' +
|
|
8643
8722
|
this.parent.rowHeight + 'px;">' +
|
|
8644
8723
|
'<td class="' + chartRowCell + ' ' + className
|
|
8645
|
-
+ '" style="width:' + this.parent.timelineModule.totalTimelineWidth + 'px;"></td></tr>';
|
|
8724
|
+
+ '" role="ChartCell" style="width:' + this.parent.timelineModule.totalTimelineWidth + 'px;"></td></tr>';
|
|
8646
8725
|
return table.childNodes;
|
|
8647
8726
|
}
|
|
8648
8727
|
/**
|
|
@@ -8707,7 +8786,7 @@ class ChartRows extends DateProcessor {
|
|
|
8707
8786
|
}
|
|
8708
8787
|
leftLabelContainer() {
|
|
8709
8788
|
const template = '<div class="' + ((this.leftTaskLabelTemplateFunction) ? leftLabelTempContainer :
|
|
8710
|
-
leftLabelContainer) + ' ' + '" tabindex="-1" style="height:' +
|
|
8789
|
+
leftLabelContainer) + ' ' + '" tabindex="-1" role="LeftLabel" style="height:' +
|
|
8711
8790
|
(this.parent.rowHeight - 2) + 'px;width:' + this.taskNameWidth(this.templateData) + '"></div>';
|
|
8712
8791
|
return this.createDivElement(template);
|
|
8713
8792
|
}
|
|
@@ -8719,7 +8798,7 @@ class ChartRows extends DateProcessor {
|
|
|
8719
8798
|
const template = '<div class="' + taskBarMainContainer + ' ' +
|
|
8720
8799
|
this.parent.getUnscheduledTaskClass(data.ganttProperties) + ' ' +
|
|
8721
8800
|
((data.ganttProperties.cssClass) ? data.ganttProperties.cssClass : '') + '" ' +
|
|
8722
|
-
' tabindex="-1" style="' + ((data.ganttProperties.isMilestone && !manualParent) ?
|
|
8801
|
+
' tabindex="-1" role="TaskBar" style="' + ((data.ganttProperties.isMilestone && !manualParent) ?
|
|
8723
8802
|
('width:' + this.milestoneHeight + 'px;height:' +
|
|
8724
8803
|
this.milestoneHeight + 'px;margin-top:' + this.milestoneMarginTop + 'px;left:' + (data.ganttProperties.left -
|
|
8725
8804
|
(this.milestoneHeight / 2)) + 'px;') : ('width:' + data.ganttProperties.width +
|
|
@@ -8730,26 +8809,26 @@ class ChartRows extends DateProcessor {
|
|
|
8730
8809
|
}
|
|
8731
8810
|
rightLabelContainer() {
|
|
8732
8811
|
const template = '<div class="' + ((this.rightTaskLabelTemplateFunction) ? rightLabelTempContainer :
|
|
8733
|
-
rightLabelContainer) + '" ' + ' tabindex="-1" style="left:' + this.getRightLabelLeft(this.templateData) + 'px;height:'
|
|
8812
|
+
rightLabelContainer) + '" ' + ' tabindex="-1" role="RightLabel" style="left:' + this.getRightLabelLeft(this.templateData) + 'px; height:'
|
|
8734
8813
|
+ (this.parent.rowHeight - 2) + 'px;"></div>';
|
|
8735
8814
|
return this.createDivElement(template);
|
|
8736
8815
|
}
|
|
8737
8816
|
childTaskbarLeftResizer() {
|
|
8738
8817
|
const lResizerLeft = -(this.parent.isAdaptive ? 12 : 2);
|
|
8739
8818
|
const template = '<div class="' + taskBarLeftResizer + ' ' + icon + '"' +
|
|
8740
|
-
' style="left:' + lResizerLeft + 'px;height:' + (this.taskBarHeight) + 'px;"></div>';
|
|
8819
|
+
' role="LeftResizer" style="left:' + lResizerLeft + 'px;height:' + (this.taskBarHeight) + 'px;"></div>';
|
|
8741
8820
|
return this.createDivElement(template);
|
|
8742
8821
|
}
|
|
8743
8822
|
childTaskbarRightResizer() {
|
|
8744
8823
|
const rResizerLeft = this.parent.isAdaptive ? -2 : -10;
|
|
8745
8824
|
const template = '<div class="' + taskBarRightResizer + ' ' + icon + '"' +
|
|
8746
|
-
' style="left:' + (this.templateData.ganttProperties.width + rResizerLeft) + 'px;' +
|
|
8825
|
+
' role="RightResizer" style="left:' + (this.templateData.ganttProperties.width + rResizerLeft) + 'px;' +
|
|
8747
8826
|
'height:' + (this.taskBarHeight) + 'px;"></div>';
|
|
8748
8827
|
return this.createDivElement(template);
|
|
8749
8828
|
}
|
|
8750
8829
|
childTaskbarProgressResizer() {
|
|
8751
8830
|
const template = '<div class="' + childProgressResizer + '"' +
|
|
8752
|
-
' style="left:' + (this.templateData.ganttProperties.progressWidth - 6) + 'px;margin-top:' +
|
|
8831
|
+
' role="ProgressResizer" style="left:' + (this.templateData.ganttProperties.progressWidth - 6) + 'px;margin-top:' +
|
|
8753
8832
|
(this.taskBarHeight - 4) + 'px;"><div class="' + progressBarHandler + '"' +
|
|
8754
8833
|
'><div class="' + progressHandlerElement + '"></div>' +
|
|
8755
8834
|
'<div class="' + progressBarHandlerAfter + '"></div></div>';
|
|
@@ -8947,10 +9026,13 @@ class ChartRows extends DateProcessor {
|
|
|
8947
9026
|
* @private
|
|
8948
9027
|
*/
|
|
8949
9028
|
initChartHelperPrivateVariable() {
|
|
9029
|
+
let taskbarHeightValue = this.parent.renderBaseline ? 0.45 : 0.62;
|
|
9030
|
+
let taskBarMarginTopValue = this.parent.renderBaseline ? 4 : 2;
|
|
9031
|
+
let milestoneHeightValue = this.parent.renderBaseline ? 1.13 : 0.82;
|
|
8950
9032
|
this.baselineColor = !isNullOrUndefined(this.parent.baselineColor) &&
|
|
8951
9033
|
this.parent.baselineColor !== '' ? this.parent.baselineColor : null;
|
|
8952
9034
|
this.taskBarHeight = isNullOrUndefined(this.parent.taskbarHeight) || this.parent.taskbarHeight >= this.parent.rowHeight ?
|
|
8953
|
-
Math.floor(this.parent.rowHeight *
|
|
9035
|
+
Math.floor(this.parent.rowHeight * taskbarHeightValue) : this.parent.taskbarHeight; // 0.62 -- Standard Ratio.
|
|
8954
9036
|
if (this.parent.renderBaseline) {
|
|
8955
9037
|
let height;
|
|
8956
9038
|
if ((this.taskBarHeight + this.baselineHeight) <= this.parent.rowHeight) {
|
|
@@ -8961,11 +9043,11 @@ class ChartRows extends DateProcessor {
|
|
|
8961
9043
|
}
|
|
8962
9044
|
this.taskBarHeight = height;
|
|
8963
9045
|
}
|
|
8964
|
-
this.milestoneHeight = Math.floor(this.taskBarHeight *
|
|
8965
|
-
this.taskBarMarginTop = Math.floor((this.parent.rowHeight - this.taskBarHeight) /
|
|
9046
|
+
this.milestoneHeight = Math.floor(this.taskBarHeight * milestoneHeightValue); // 0.82 -- Standard Ratio.
|
|
9047
|
+
this.taskBarMarginTop = Math.floor((this.parent.rowHeight - this.taskBarHeight) / taskBarMarginTopValue);
|
|
8966
9048
|
this.milestoneMarginTop = Math.floor((this.parent.rowHeight - this.milestoneHeight) / 2);
|
|
8967
9049
|
this.milesStoneRadius = Math.floor((this.milestoneHeight) / 2);
|
|
8968
|
-
this.baselineTop = -(Math.floor((this.parent.rowHeight - (this.taskBarHeight + this.taskBarMarginTop))) -
|
|
9050
|
+
this.baselineTop = -(Math.floor((this.parent.rowHeight - (this.taskBarHeight + this.taskBarMarginTop))) - 4);
|
|
8969
9051
|
this.connectorPointWidth = this.parent.isAdaptive ? Math.round(this.taskBarHeight / 2) : 8;
|
|
8970
9052
|
this.connectorPointMargin = Math.floor((this.taskBarHeight / 2) - (this.connectorPointWidth / 2));
|
|
8971
9053
|
}
|
|
@@ -9159,6 +9241,7 @@ class ChartRows extends DateProcessor {
|
|
|
9159
9241
|
const indicators = this.templateData.ganttProperties.indicators;
|
|
9160
9242
|
for (let indicatorIndex = 0; indicatorIndex < indicators.length; indicatorIndex++) {
|
|
9161
9243
|
taskIndicatorNode = this.getIndicatorNode(indicators[indicatorIndex]);
|
|
9244
|
+
taskIndicatorNode[0].setAttribute('aria-label', indicators[indicatorIndex].name);
|
|
9162
9245
|
if (indicators[indicatorIndex].name.indexOf('$') > -1 || indicators[indicatorIndex].name.indexOf('#') > -1) {
|
|
9163
9246
|
taskIndicatorTextFunction = this.templateCompiler(indicators[indicatorIndex].name);
|
|
9164
9247
|
taskIndicatorTextNode = taskIndicatorTextFunction(extend({ index: i }, this.templateData), this.parent, 'indicatorLabelText');
|
|
@@ -10377,7 +10460,7 @@ class ConnectorLine {
|
|
|
10377
10460
|
for (let i = 0; i < childNodes.length; i++) {
|
|
10378
10461
|
const innerChild = childNodes[i].childNodes;
|
|
10379
10462
|
for (let j = 0; j < innerChild.length; j++) {
|
|
10380
|
-
const ariaString = this.parent.connectorLineModule.generateAriaLabel(ariaConnector[i]);
|
|
10463
|
+
const ariaString = 'Connector Line ' + this.parent.connectorLineModule.generateAriaLabel(ariaConnector[i]);
|
|
10381
10464
|
innerChild[j].setAttribute('aria-label', ariaString);
|
|
10382
10465
|
}
|
|
10383
10466
|
}
|
|
@@ -10634,7 +10717,11 @@ class ConnectorLine {
|
|
|
10634
10717
|
let connectorContainer = '';
|
|
10635
10718
|
const isVirtual = this.parent.virtualScrollModule && this.parent.enableVirtualization;
|
|
10636
10719
|
const connectorLine$$1 = this.getPosition(data, this.getParentPosition(data), height);
|
|
10637
|
-
|
|
10720
|
+
let isMilestoneValue = 0;
|
|
10721
|
+
if (this.parent.renderBaseline) {
|
|
10722
|
+
isMilestoneValue = (data.milestoneParent && data.milestoneChild) ? 0 : data.milestoneParent ? -5 : data.milestoneChild ? 5 : 0;
|
|
10723
|
+
}
|
|
10724
|
+
const heightValue = isVirtual ? connectorLine$$1.height : (height + isMilestoneValue);
|
|
10638
10725
|
if (this.getParentPosition(data)) {
|
|
10639
10726
|
connectorContainer = '<div id="ConnectorLine' + data.connectorLineId + '" style="background-color:black">';
|
|
10640
10727
|
let div = '<div class="' + connectorLineContainer +
|
|
@@ -10662,7 +10749,7 @@ class ConnectorLine {
|
|
|
10662
10749
|
this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
|
|
10663
10750
|
if (this.getParentPosition(data) === 'FSType1') {
|
|
10664
10751
|
div = div + 'left:' + (data.parentLeft + data.parentWidth) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
|
|
10665
|
-
((data.parentIndex * data.rowHeight) + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1))) + 'px;' +
|
|
10752
|
+
((data.parentIndex * data.rowHeight) + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
|
|
10666
10753
|
'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="FSType1">';
|
|
10667
10754
|
div = div + eLine;
|
|
10668
10755
|
div = div + 'left:' + (isMilestoneParent ? -1 : 0) + 'px;width:' + (isMilestoneParent ?
|
|
@@ -10683,7 +10770,7 @@ class ConnectorLine {
|
|
|
10683
10770
|
}
|
|
10684
10771
|
if (this.getParentPosition(data) === 'FSType2') {
|
|
10685
10772
|
div = div + 'left:' + data.parentLeft + 'px;top:' + (isVirtual ? connectorLine$$1.top : ((data.parentIndex * data.rowHeight) +
|
|
10686
|
-
this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1))) + 'px;' +
|
|
10773
|
+
this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
|
|
10687
10774
|
'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="FSType2">';
|
|
10688
10775
|
div = div + eLine;
|
|
10689
10776
|
div = div + 'left:' + (isMilestoneParent ? data.parentWidth - 1 : data.parentWidth) + 'px;width:' +
|
|
@@ -10714,7 +10801,7 @@ class ConnectorLine {
|
|
|
10714
10801
|
}
|
|
10715
10802
|
if (this.getParentPosition(data) === 'FSType3') {
|
|
10716
10803
|
div = div + 'left:' + (data.childLeft - 20) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
|
|
10717
|
-
((data.childIndex * data.rowHeight) + this.getTaskbarMidpoint(isMilestoneParent) - (this.lineStroke - 1))) + 'px;' +
|
|
10804
|
+
((data.childIndex * data.rowHeight) + this.getTaskbarMidpoint(isMilestoneParent) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
|
|
10718
10805
|
'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="FSType3">';
|
|
10719
10806
|
div = div + rightArrow;
|
|
10720
10807
|
div = div + 'left:10px;' + this.getBorderStyles('left', 10) +
|
|
@@ -10744,7 +10831,7 @@ class ConnectorLine {
|
|
|
10744
10831
|
}
|
|
10745
10832
|
if (this.getParentPosition(data) === 'FSType4') {
|
|
10746
10833
|
div = div + 'left:' + (data.parentLeft + data.parentWidth) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
|
|
10747
|
-
((data.childIndex * data.rowHeight) + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1))) + 'px;' +
|
|
10834
|
+
((data.childIndex * data.rowHeight) + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
|
|
10748
10835
|
'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="FSType4">';
|
|
10749
10836
|
div = div + rightArrow;
|
|
10750
10837
|
div = div + 'left:' + (data.childLeft - (data.parentLeft + data.parentWidth + 10)) + 'px;' +
|
|
@@ -10770,7 +10857,7 @@ class ConnectorLine {
|
|
|
10770
10857
|
}
|
|
10771
10858
|
if (this.getParentPosition(data) === 'SSType4') {
|
|
10772
10859
|
div = div + 'left:' + (data.parentLeft - 10) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
|
|
10773
|
-
((data.childIndex * data.rowHeight) + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1))) + 'px;' +
|
|
10860
|
+
((data.childIndex * data.rowHeight) + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
|
|
10774
10861
|
'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="SSType4">';
|
|
10775
10862
|
div = div + rightArrow;
|
|
10776
10863
|
div = div + 'left:' + (data.childLeft - data.parentLeft) + 'px;' + duplicateStingTwo;
|
|
@@ -10783,7 +10870,7 @@ class ConnectorLine {
|
|
|
10783
10870
|
}
|
|
10784
10871
|
if (this.getParentPosition(data) === 'SSType3') {
|
|
10785
10872
|
div = div + 'left:' + (data.childLeft - 20) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
|
|
10786
|
-
((data.childIndex * data.rowHeight) + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1))) + 'px;' +
|
|
10873
|
+
((data.childIndex * data.rowHeight) + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
|
|
10787
10874
|
'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="SSType3">';
|
|
10788
10875
|
div = div + rightArrow;
|
|
10789
10876
|
div = div + 'left:10px;' + duplicateStingTwo;
|
|
@@ -10796,7 +10883,7 @@ class ConnectorLine {
|
|
|
10796
10883
|
}
|
|
10797
10884
|
if (this.getParentPosition(data) === 'SSType2') {
|
|
10798
10885
|
div = div + 'left:' + setInnerElementLeftSSType2 + 'px;top:' + (isVirtual ? connectorLine$$1.top :
|
|
10799
|
-
((data.parentIndex * data.rowHeight) + this.getTaskbarMidpoint(isMilestoneParent) - (this.lineStroke - 1))) + 'px;' +
|
|
10886
|
+
((data.parentIndex * data.rowHeight) + this.getTaskbarMidpoint(isMilestoneParent) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
|
|
10800
10887
|
'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="SSType2">';
|
|
10801
10888
|
div = div + eLine;
|
|
10802
10889
|
div = div + 'width:' + (setInnerChildWidthSSType2 + 1) + 'px;' +
|
|
@@ -10817,7 +10904,7 @@ class ConnectorLine {
|
|
|
10817
10904
|
if (this.getParentPosition(data) === 'SSType1') {
|
|
10818
10905
|
div = div + 'left:' + (data.childLeft - 20) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
|
|
10819
10906
|
((data.parentIndex * data.rowHeight) +
|
|
10820
|
-
this.getTaskbarMidpoint(isMilestoneParent) - (this.lineStroke - 1))) + 'px;' +
|
|
10907
|
+
this.getTaskbarMidpoint(isMilestoneParent) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
|
|
10821
10908
|
'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="SSType1">';
|
|
10822
10909
|
div = div + eLine;
|
|
10823
10910
|
div = div + 'width:' + (data.parentLeft - data.childLeft + 21) + 'px;' +
|
|
@@ -10834,7 +10921,7 @@ class ConnectorLine {
|
|
|
10834
10921
|
}
|
|
10835
10922
|
if (this.getParentPosition(data) === 'FFType1') {
|
|
10836
10923
|
div = div + 'left:' + (data.childLeft + data.childWidth) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
|
|
10837
|
-
((data.parentIndex * data.rowHeight) + this.getTaskbarMidpoint(isMilestoneParent) - (this.lineStroke - 1))) + 'px;' +
|
|
10924
|
+
((data.parentIndex * data.rowHeight) + this.getTaskbarMidpoint(isMilestoneParent) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
|
|
10838
10925
|
'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="FFType1">';
|
|
10839
10926
|
div = div + eLine;
|
|
10840
10927
|
div = div + 'left:' + (isMilestoneParent ? (((data.parentLeft + data.parentWidth) -
|
|
@@ -10858,7 +10945,7 @@ class ConnectorLine {
|
|
|
10858
10945
|
}
|
|
10859
10946
|
if (this.getParentPosition(data) === 'FFType2') {
|
|
10860
10947
|
div = div + 'left:' + (data.parentLeft + data.parentWidth) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
|
|
10861
|
-
((data.parentIndex * data.rowHeight) + this.getTaskbarMidpoint(isMilestoneParent) - (this.lineStroke - 1))) + 'px;' +
|
|
10948
|
+
((data.parentIndex * data.rowHeight) + this.getTaskbarMidpoint(isMilestoneParent) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
|
|
10862
10949
|
'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="FFType2">';
|
|
10863
10950
|
div = div + eLine;
|
|
10864
10951
|
div = div + (isMilestoneParent ? 'left:-1px;' : '') + 'width:' +
|
|
@@ -10884,7 +10971,7 @@ class ConnectorLine {
|
|
|
10884
10971
|
}
|
|
10885
10972
|
if (this.getParentPosition(data) === 'FFType3') {
|
|
10886
10973
|
div = div + 'left:' + (data.childLeft + data.childWidth) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
|
|
10887
|
-
((data.childIndex * data.rowHeight) + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1))) + 'px;' +
|
|
10974
|
+
((data.childIndex * data.rowHeight) + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
|
|
10888
10975
|
'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="FFType3">';
|
|
10889
10976
|
div = div + duplicateStingOne;
|
|
10890
10977
|
div = div + eLine;
|
|
@@ -10907,7 +10994,7 @@ class ConnectorLine {
|
|
|
10907
10994
|
}
|
|
10908
10995
|
if (this.getParentPosition(data) === 'FFType4') {
|
|
10909
10996
|
div = div + 'left:' + (data.parentLeft + data.parentWidth) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
|
|
10910
|
-
((data.childIndex * data.rowHeight) + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1))) + 'px;' +
|
|
10997
|
+
((data.childIndex * data.rowHeight) + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
|
|
10911
10998
|
'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="FFType4">';
|
|
10912
10999
|
div = div + leftArrow;
|
|
10913
11000
|
div = div + ('left:' + ((data.childLeft + data.childWidth) -
|
|
@@ -10936,7 +11023,7 @@ class ConnectorLine {
|
|
|
10936
11023
|
}
|
|
10937
11024
|
if (this.getParentPosition(data) === 'SFType4') {
|
|
10938
11025
|
div = div + 'left:' + (data.parentLeft - 10) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
|
|
10939
|
-
((data.childIndex * data.rowHeight) + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1))) + 'px;width:1px;' +
|
|
11026
|
+
((data.childIndex * data.rowHeight) + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;width:1px;' +
|
|
10940
11027
|
'height:' + heightValue + 'px;position:absolute" data-connectortype="SFType4">';
|
|
10941
11028
|
div = div + duplicateStingFour + 'top:' + (-5 - this.lineStroke + (this.lineStroke - 1)) + 'px;' +
|
|
10942
11029
|
'border-bottom-width:' + (5 + this.lineStroke) +
|
|
@@ -10964,7 +11051,7 @@ class ConnectorLine {
|
|
|
10964
11051
|
}
|
|
10965
11052
|
if (this.getParentPosition(data) === 'SFType3') {
|
|
10966
11053
|
div = div + 'left:' + (data.childLeft + data.childWidth) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
|
|
10967
|
-
((data.childIndex * data.rowHeight) + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1))) + 'px;' +
|
|
11054
|
+
((data.childIndex * data.rowHeight) + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
|
|
10968
11055
|
'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="SFType3">';
|
|
10969
11056
|
div = div + duplicateStingOne;
|
|
10970
11057
|
div = div + eLine;
|
|
@@ -10982,7 +11069,7 @@ class ConnectorLine {
|
|
|
10982
11069
|
}
|
|
10983
11070
|
if (this.getParentPosition(data) === 'SFType1') {
|
|
10984
11071
|
div = div + 'left:' + (data.parentLeft - 10) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
|
|
10985
|
-
((data.parentIndex * data.rowHeight) + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1))) + 'px;' +
|
|
11072
|
+
((data.parentIndex * data.rowHeight) + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
|
|
10986
11073
|
'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="SFType1">';
|
|
10987
11074
|
div = div + eLine;
|
|
10988
11075
|
div = div + 'width:11px;' + this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
|
|
@@ -11007,7 +11094,7 @@ class ConnectorLine {
|
|
|
11007
11094
|
}
|
|
11008
11095
|
if (this.getParentPosition(data) === 'SFType2') {
|
|
11009
11096
|
div = div + 'left:' + (data.childLeft + data.childWidth) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
|
|
11010
|
-
((data.parentIndex * data.rowHeight) + this.getTaskbarMidpoint(isMilestoneParent) - (this.lineStroke - 1))) + 'px;' +
|
|
11097
|
+
((data.parentIndex * data.rowHeight) + this.getTaskbarMidpoint(isMilestoneParent) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
|
|
11011
11098
|
'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="SFType2">';
|
|
11012
11099
|
div = div + eLine;
|
|
11013
11100
|
div = div + 'left:' + (((data.parentLeft) - (data.childLeft + data.childWidth)) - 10) +
|
|
@@ -11249,6 +11336,7 @@ class Splitter$1 {
|
|
|
11249
11336
|
this.splitterObject.paneSettings[1].size = null;
|
|
11250
11337
|
this.splitterObject.paneSettings[1].size = this.getSpliterPositionInPercentage(this.splitterPreviousPositionChart);
|
|
11251
11338
|
}
|
|
11339
|
+
this.parent.timelineModule.updateTimelineAfterZooming(this.parent.timelineModule.timelineEndDate, true);
|
|
11252
11340
|
callBackPromise.resolve(splitterResizedArgs);
|
|
11253
11341
|
});
|
|
11254
11342
|
return callBackPromise;
|
|
@@ -11530,6 +11618,7 @@ class Tooltip$1 {
|
|
|
11530
11618
|
* @returns {void} .
|
|
11531
11619
|
*/
|
|
11532
11620
|
updateTooltipPosition(args) {
|
|
11621
|
+
args.element.style.visibility = 'visible';
|
|
11533
11622
|
if (isNullOrUndefined(this.tooltipMouseEvent) || args.target.classList.contains('e-notes-info')) {
|
|
11534
11623
|
return;
|
|
11535
11624
|
}
|
|
@@ -11559,7 +11648,6 @@ class Tooltip$1 {
|
|
|
11559
11648
|
tooltipPositionY = tooltipPositionY + 10;
|
|
11560
11649
|
}
|
|
11561
11650
|
args.element.style.top = tooltipPositionY + 'px';
|
|
11562
|
-
args.element.style.visibility = 'visible';
|
|
11563
11651
|
}
|
|
11564
11652
|
/**
|
|
11565
11653
|
* Method to get mouse pointor position
|
|
@@ -11601,9 +11689,16 @@ class Tooltip$1 {
|
|
|
11601
11689
|
switch (elementType) {
|
|
11602
11690
|
case 'milestone':
|
|
11603
11691
|
{
|
|
11604
|
-
|
|
11692
|
+
let milestoneStartDate;
|
|
11693
|
+
if (args.target.className.includes('e-baseline-gantt-milestone') && !isNullOrUndefined(data.baselineStartDate)) {
|
|
11694
|
+
milestoneStartDate = data.baselineStartDate;
|
|
11695
|
+
}
|
|
11696
|
+
else if (!isNullOrUndefined(data.startDate)) {
|
|
11697
|
+
milestoneStartDate = data.startDate;
|
|
11698
|
+
}
|
|
11699
|
+
const sDate = !isNullOrUndefined(milestoneStartDate) ? '<tr><td class = "e-gantt-tooltip-label"> Date</td><td>:</td>' +
|
|
11605
11700
|
'<td class = "e-gantt-tooltip-value">' +
|
|
11606
|
-
this.parent.getFormatedDate(
|
|
11701
|
+
this.parent.getFormatedDate(milestoneStartDate, this.parent.getDateFormat()) + '</td></tr>' : '';
|
|
11607
11702
|
content$$1 = '<table class = "e-gantt-tooltiptable"><tbody>' +
|
|
11608
11703
|
taskName + sDate + '</tbody></table>';
|
|
11609
11704
|
break;
|
|
@@ -12328,25 +12423,7 @@ let Gantt = class Gantt extends Component {
|
|
|
12328
12423
|
* @returns {void} .
|
|
12329
12424
|
*/
|
|
12330
12425
|
calculateDimensions() {
|
|
12331
|
-
let settingsHeight;
|
|
12332
|
-
if (typeof (this.height) !== 'number' && this.height.indexOf('%') !== -1 && (this.element.parentElement &&
|
|
12333
|
-
!this.element.parentElement.style.height || this.element.parentElement.style.height.indexOf('%') !== -1)) {
|
|
12334
|
-
let ganttHeight;
|
|
12335
|
-
if (this.element.parentElement.style.height.indexOf('%') == -1) {
|
|
12336
|
-
ganttHeight = Number(this.height.split("%")[0]);
|
|
12337
|
-
}
|
|
12338
|
-
else {
|
|
12339
|
-
ganttHeight = Number(this.element.parentElement.style.height.split("%")[0]);
|
|
12340
|
-
}
|
|
12341
|
-
ganttHeight = (ganttHeight * window.innerHeight) / 100;
|
|
12342
|
-
if (this.height === '100%') {
|
|
12343
|
-
ganttHeight = ganttHeight - 16;
|
|
12344
|
-
}
|
|
12345
|
-
settingsHeight = this.validateDimentionValue(ganttHeight);
|
|
12346
|
-
}
|
|
12347
|
-
else {
|
|
12348
|
-
settingsHeight = this.validateDimentionValue(this.height);
|
|
12349
|
-
}
|
|
12426
|
+
let settingsHeight = this.validateDimentionValue(this.height);
|
|
12350
12427
|
let settingsWidth = this.validateDimentionValue(this.width);
|
|
12351
12428
|
if (!isNullOrUndefined(this.width) && typeof (this.width) === 'string' && this.width.indexOf('%') !== -1) {
|
|
12352
12429
|
settingsWidth = this.width;
|
|
@@ -12489,40 +12566,6 @@ let Gantt = class Gantt extends Component {
|
|
|
12489
12566
|
*/
|
|
12490
12567
|
windowResize() {
|
|
12491
12568
|
if (!isNullOrUndefined(this.element)) {
|
|
12492
|
-
let settingsHeight;
|
|
12493
|
-
if (this.height.indexOf('%') !== -1) {
|
|
12494
|
-
let ganttHeight = Number(this.height.split("%")[0]);
|
|
12495
|
-
if (this.element.parentElement && (this.element.parentElement.style.height)) {
|
|
12496
|
-
let containerHeight;
|
|
12497
|
-
if (this.element.parentElement.style.height.indexOf('%') == -1) {
|
|
12498
|
-
containerHeight = Number(this.element.parentElement.style.height.split("px")[0]);
|
|
12499
|
-
ganttHeight = (ganttHeight * containerHeight) / 100;
|
|
12500
|
-
}
|
|
12501
|
-
else {
|
|
12502
|
-
containerHeight = Number(this.element.parentElement.style.height.split("%")[0]);
|
|
12503
|
-
ganttHeight = (window.innerHeight * containerHeight) / 100;
|
|
12504
|
-
}
|
|
12505
|
-
}
|
|
12506
|
-
else {
|
|
12507
|
-
ganttHeight = Number(this.height.split("%")[0]);
|
|
12508
|
-
ganttHeight = (ganttHeight * window.innerHeight) / 100;
|
|
12509
|
-
}
|
|
12510
|
-
if (this.height === '100%') {
|
|
12511
|
-
ganttHeight = ganttHeight - 16;
|
|
12512
|
-
}
|
|
12513
|
-
let toolbarHeight = 0;
|
|
12514
|
-
if (!isNullOrUndefined(this.toolbarModule) && !isNullOrUndefined(this.toolbarModule.element)) {
|
|
12515
|
-
toolbarHeight = this.toolbarModule.element.offsetHeight;
|
|
12516
|
-
}
|
|
12517
|
-
let contentHeight = ganttHeight - this.ganttChartModule.chartTimelineContainer.offsetHeight - toolbarHeight;
|
|
12518
|
-
settingsHeight = this.validateDimentionValue(ganttHeight);
|
|
12519
|
-
this.element.style.height = settingsHeight;
|
|
12520
|
-
this.element.querySelectorAll('.e-content')[0]['style'].height = contentHeight + 'px';
|
|
12521
|
-
this.element.querySelectorAll('.e-content')[2]['style'].height = contentHeight + 'px';
|
|
12522
|
-
}
|
|
12523
|
-
else {
|
|
12524
|
-
settingsHeight = this.validateDimentionValue(this.height);
|
|
12525
|
-
}
|
|
12526
12569
|
this.updateContentHeight();
|
|
12527
12570
|
this.ganttChartModule.updateWidthAndHeight(); // Updating chart scroll conatiner height for row mismatch
|
|
12528
12571
|
this.treeGridModule.ensureScrollBar();
|
|
@@ -12867,6 +12910,18 @@ let Gantt = class Gantt extends Component {
|
|
|
12867
12910
|
* @private
|
|
12868
12911
|
*/
|
|
12869
12912
|
treeDataBound(args) {
|
|
12913
|
+
this.element.getElementsByClassName('e-chart-root-container')[0]['style'].height = '100%';
|
|
12914
|
+
let gridHeight = this.element.getElementsByClassName('e-gridcontent')[0]['style'].height;
|
|
12915
|
+
let timelineContainer = this.element.getElementsByClassName('e-timeline-header-container')[0]['offsetHeight'];
|
|
12916
|
+
gridHeight = 'calc(100% - ' + timelineContainer + 'px)';
|
|
12917
|
+
// eslint-disable-next-line
|
|
12918
|
+
this.element.getElementsByClassName('e-chart-scroll-container e-content')[0]['style'].height = 'calc(100% - ' + timelineContainer + 'px)';
|
|
12919
|
+
if (!isNullOrUndefined(this.toolbarModule) && !isNullOrUndefined(this.toolbarModule.element)) {
|
|
12920
|
+
this.splitterElement.style.height = 'calc(100% - ' + this.toolbarModule.element.offsetHeight + 'px)';
|
|
12921
|
+
}
|
|
12922
|
+
else {
|
|
12923
|
+
this.splitterElement.style.height = '100%';
|
|
12924
|
+
}
|
|
12870
12925
|
if (this.isLoad) {
|
|
12871
12926
|
this.updateCurrentViewData();
|
|
12872
12927
|
if (!this.enableVirtualization) {
|
|
@@ -12886,8 +12941,7 @@ let Gantt = class Gantt extends Component {
|
|
|
12886
12941
|
removeClass(this.treeGrid.element.querySelectorAll('.e-headercell'), timelineSingleHeaderOuterDiv);
|
|
12887
12942
|
removeClass(this.treeGrid.element.querySelectorAll('.e-columnheader'), timelineSingleHeaderOuterDiv);
|
|
12888
12943
|
}
|
|
12889
|
-
this.treeGrid.height =
|
|
12890
|
-
this.treeGrid.grid.getHeaderContent().offsetHeight;
|
|
12944
|
+
this.treeGrid.height = '100%';
|
|
12891
12945
|
this.notify('tree-grid-created', {});
|
|
12892
12946
|
this.createGanttPopUpElement();
|
|
12893
12947
|
this.hideSpinner();
|
|
@@ -13397,7 +13451,7 @@ let Gantt = class Gantt extends Component {
|
|
|
13397
13451
|
*/
|
|
13398
13452
|
updateGridLineContainerHeight() {
|
|
13399
13453
|
if (this.chartVerticalLineContainer) {
|
|
13400
|
-
this.chartVerticalLineContainer.style.height = formatUnit(this.
|
|
13454
|
+
this.chartVerticalLineContainer.style.height = formatUnit(this.contentHeight);
|
|
13401
13455
|
}
|
|
13402
13456
|
}
|
|
13403
13457
|
/**
|
|
@@ -15305,7 +15359,8 @@ class CellEdit {
|
|
|
15305
15359
|
args.cancel = true;
|
|
15306
15360
|
return;
|
|
15307
15361
|
}
|
|
15308
|
-
if (data.hasChildRecords && (field === taskSettings.endDate
|
|
15362
|
+
if (data.hasChildRecords && ((field === taskSettings.endDate && ((!isNullOrUndefined(data['isManual']) &&
|
|
15363
|
+
data['isManual'] == false) || this.parent.taskMode == 'Auto')) || field === taskSettings.duration
|
|
15309
15364
|
|| field === taskSettings.dependency || field === taskSettings.progress
|
|
15310
15365
|
|| field === taskSettings.work || field === 'taskType')) {
|
|
15311
15366
|
args.cancel = true;
|
|
@@ -19401,7 +19456,8 @@ class DialogEdit {
|
|
|
19401
19456
|
disabled = true;
|
|
19402
19457
|
}
|
|
19403
19458
|
if (this.editedRecord.hasChildRecords) {
|
|
19404
|
-
if (column.field === this.parent.taskFields.endDate
|
|
19459
|
+
if ((column.field === this.parent.taskFields.endDate && ((!isNullOrUndefined(this.editedRecord['isManual']) &&
|
|
19460
|
+
this.editedRecord['isManual'] == false) || this.parent.taskMode == 'Auto')) || column.field === this.parent.taskFields.duration ||
|
|
19405
19461
|
column.field === this.parent.taskFields.progress || column.field === this.parent.taskFields.work ||
|
|
19406
19462
|
column.field === 'taskType') {
|
|
19407
19463
|
disabled = true;
|
|
@@ -23195,7 +23251,15 @@ class Edit$2 {
|
|
|
23195
23251
|
}
|
|
23196
23252
|
/* data Source update */
|
|
23197
23253
|
if (!isNullOrUndefined(parentItem)) {
|
|
23198
|
-
|
|
23254
|
+
if (rowPosition == 'Above') {
|
|
23255
|
+
childIndex = parentItem.childRecords.indexOf(this.addRowSelectedItem);
|
|
23256
|
+
}
|
|
23257
|
+
else if (rowPosition == 'Below') {
|
|
23258
|
+
childIndex = parentItem.childRecords.indexOf(this.addRowSelectedItem) + 1;
|
|
23259
|
+
}
|
|
23260
|
+
else {
|
|
23261
|
+
childIndex = parentItem.childRecords.length;
|
|
23262
|
+
}
|
|
23199
23263
|
/*Child collection update*/
|
|
23200
23264
|
parentItem.childRecords.splice(childIndex, 0, record);
|
|
23201
23265
|
if ((this.parent.dataSource instanceof DataManager &&
|
|
@@ -23203,12 +23267,9 @@ class Edit$2 {
|
|
|
23203
23267
|
!isNullOrUndefined(this.parent.dataSource)) {
|
|
23204
23268
|
const child = this.parent.taskFields.child;
|
|
23205
23269
|
if (parentItem.taskData[child] && parentItem.taskData[child].length > 0) {
|
|
23206
|
-
if (rowPosition === 'Above') {
|
|
23270
|
+
if (rowPosition === 'Above' || rowPosition === 'Below') {
|
|
23207
23271
|
parentItem.taskData[child].splice(childIndex, 0, record.taskData);
|
|
23208
23272
|
}
|
|
23209
|
-
else if (rowPosition === 'Below') {
|
|
23210
|
-
parentItem.taskData[child].splice(childIndex + 1, 0, record.taskData);
|
|
23211
|
-
}
|
|
23212
23273
|
else {
|
|
23213
23274
|
parentItem.taskData[child].push(record.taskData);
|
|
23214
23275
|
}
|
|
@@ -23276,9 +23337,21 @@ class Edit$2 {
|
|
|
23276
23337
|
refreshRecordInImmutableMode() {
|
|
23277
23338
|
for (let i = 0; i < this.parent.modifiedRecords.length; i++) {
|
|
23278
23339
|
const originalData = this.parent.modifiedRecords[i];
|
|
23279
|
-
|
|
23280
|
-
|
|
23281
|
-
this.parent.
|
|
23340
|
+
let treeIndex = this.parent.allowRowDragAndDrop ? 1 : 0;
|
|
23341
|
+
let uniqueTaskID = this.parent.taskFields.id;
|
|
23342
|
+
var originalIndex = this.parent.currentViewData.findIndex((data) => {
|
|
23343
|
+
return (data[uniqueTaskID] == originalData[uniqueTaskID]);
|
|
23344
|
+
});
|
|
23345
|
+
if (this.parent.treeGrid.getRows()[originalIndex]) {
|
|
23346
|
+
this.parent.treeGrid.renderModule.cellRender({
|
|
23347
|
+
data: originalData, cell: this.parent.treeGrid.getRows()[originalIndex].cells[this.parent.treeColumnIndex + treeIndex],
|
|
23348
|
+
column: this.parent.treeGrid.grid.getColumns()[this.parent.treeColumnIndex],
|
|
23349
|
+
requestType: 'rowDragAndDrop'
|
|
23350
|
+
});
|
|
23351
|
+
this.parent.treeGrid.renderModule.RowModifier({
|
|
23352
|
+
data: originalData, row: this.parent.treeGrid.getRows()[originalIndex], rowHeight: this.parent.rowHeight
|
|
23353
|
+
});
|
|
23354
|
+
}
|
|
23282
23355
|
}
|
|
23283
23356
|
}
|
|
23284
23357
|
/**
|
|
@@ -23655,6 +23728,9 @@ class Edit$2 {
|
|
|
23655
23728
|
}
|
|
23656
23729
|
this.addSuccess(args);
|
|
23657
23730
|
args = this.constructTaskAddedEventArgs(cAddedRecord, args.modifiedRecords, 'add');
|
|
23731
|
+
if (this.dialogModule.isAddNewResource && !this.parent.isEdit && this.parent.taskFields.work) {
|
|
23732
|
+
this.parent.dataOperation.updateWorkWithDuration(cAddedRecord[0]);
|
|
23733
|
+
}
|
|
23658
23734
|
this.parent.trigger('actionComplete', args);
|
|
23659
23735
|
if (this.dialogModule.dialog && !this.dialogModule.dialogObj.isDestroyed) {
|
|
23660
23736
|
this.dialogModule.dialogObj.hide();
|
|
@@ -24029,15 +24105,18 @@ class Edit$2 {
|
|
|
24029
24105
|
if (this.dropPosition === 'topSegment' || this.dropPosition === 'bottomSegment') {
|
|
24030
24106
|
draggedRec[this.parent.taskFields.parentID] = droppedRec[this.parent.taskFields.parentID];
|
|
24031
24107
|
draggedRec.taskData[this.parent.taskFields.parentID] = droppedRec[this.parent.taskFields.parentID];
|
|
24108
|
+
draggedRec.ganttProperties['parentId'] = droppedRec[this.parent.taskFields.parentID];
|
|
24032
24109
|
}
|
|
24033
24110
|
else {
|
|
24034
24111
|
draggedRec[this.parent.taskFields.parentID] = droppedRec[this.parent.taskFields.id];
|
|
24035
24112
|
draggedRec.taskData[this.parent.taskFields.parentID] = droppedRec[this.parent.taskFields.id];
|
|
24113
|
+
draggedRec.ganttProperties['parentId'] = droppedRec[this.parent.taskFields.id];
|
|
24036
24114
|
}
|
|
24037
24115
|
}
|
|
24038
24116
|
else {
|
|
24039
24117
|
draggedRec[this.parent.taskFields.parentID] = null;
|
|
24040
24118
|
draggedRec.taskData[this.parent.taskFields.parentID] = null;
|
|
24119
|
+
draggedRec.ganttProperties['parentId'] = null;
|
|
24041
24120
|
}
|
|
24042
24121
|
}
|
|
24043
24122
|
}
|
|
@@ -24568,11 +24647,13 @@ class Filter$1 {
|
|
|
24568
24647
|
// ...
|
|
24569
24648
|
}
|
|
24570
24649
|
closeFilterOnContextClick(element) {
|
|
24650
|
+
let datePickerElement = document.querySelector('body > div.e-datepicker');
|
|
24651
|
+
let dateTimePickerElement = document.querySelector('body > div.e-datetimepicker');
|
|
24571
24652
|
if (this.filterMenuElement && document.body.contains(this.filterMenuElement)) {
|
|
24572
24653
|
const ganttElement = closest(element, '#' + this.parent.element.id)
|
|
24573
24654
|
|| element.querySelector('#' + this.parent.element.id);
|
|
24574
|
-
if ((!(this.filterMenuElement.contains(element)) && !isNullOrUndefined(ganttElement)) || element
|
|
24575
|
-
|
|
24655
|
+
if ((!(this.filterMenuElement.contains(element)) && !isNullOrUndefined(ganttElement)) || (!(this.filterMenuElement.contains(element)) && (isNullOrUndefined(datePickerElement))
|
|
24656
|
+
&& (isNullOrUndefined(dateTimePickerElement)) && ((element.nodeName === 'DIV') || (element.nodeName === 'HTML')))) {
|
|
24576
24657
|
remove(this.filterMenuElement);
|
|
24577
24658
|
this.parent.treeGrid.grid.notify('filter-menu-close', { isOpen: false });
|
|
24578
24659
|
this.filterMenuElement = null;
|
|
@@ -24889,8 +24970,9 @@ class Selection$1 {
|
|
|
24889
24970
|
}
|
|
24890
24971
|
this.addRemoveClass(index);
|
|
24891
24972
|
this.selectedRowIndexes = extend([], this.getSelectedRowIndexes(), [], true);
|
|
24892
|
-
|
|
24893
|
-
|
|
24973
|
+
this.parent.setProperties({ selectedRowIndex: -1 }, true);
|
|
24974
|
+
if (this.selectedRowIndexes.length === 1) {
|
|
24975
|
+
this.parent.setProperties({ selectedRowIndex: this.selectedRowIndexes[0] }, true);
|
|
24894
24976
|
}
|
|
24895
24977
|
if (!isNullOrUndefined(this.parent.toolbarModule)) {
|
|
24896
24978
|
this.parent.toolbarModule.refreshToolbarItems();
|
|
@@ -25760,6 +25842,7 @@ class NonWorkingDay {
|
|
|
25760
25842
|
this.nonworkingContainer = createElement('div', {
|
|
25761
25843
|
className: nonworkingContainer
|
|
25762
25844
|
});
|
|
25845
|
+
this.nonworkingContainer.setAttribute("role", "NonWorkingDays");
|
|
25763
25846
|
this.parent.ganttChartModule.chartBodyContent.appendChild(this.nonworkingContainer);
|
|
25764
25847
|
}
|
|
25765
25848
|
}
|
|
@@ -25797,8 +25880,11 @@ class NonWorkingDay {
|
|
|
25797
25880
|
let toDate;
|
|
25798
25881
|
const container = createElement('div');
|
|
25799
25882
|
const height = this.parent.contentHeight;
|
|
25800
|
-
|
|
25801
|
-
|
|
25883
|
+
let toolbarHeight = 0;
|
|
25884
|
+
if (!isNullOrUndefined(this.parent.toolbarModule)) {
|
|
25885
|
+
toolbarHeight = this.parent.toolbarModule.element.offsetHeight;
|
|
25886
|
+
}
|
|
25887
|
+
const viewportHeight = this.parent.ganttHeight - toolbarHeight - this.parent.ganttChartModule.chartTimelineContainer.offsetHeight;
|
|
25802
25888
|
for (let i = 0; i < this.parent.holidays.length; i++) {
|
|
25803
25889
|
if (this.parent.holidays[i].from && this.parent.holidays[i].to) {
|
|
25804
25890
|
fromDate = this.parent.dateValidationModule.getDateFromFormat(this.parent.holidays[i].from);
|
|
@@ -25891,9 +25977,12 @@ class NonWorkingDay {
|
|
|
25891
25977
|
return container;
|
|
25892
25978
|
}
|
|
25893
25979
|
updateHolidayLabelHeight() {
|
|
25894
|
-
const height = this.parent.
|
|
25895
|
-
|
|
25896
|
-
|
|
25980
|
+
const height = this.parent.getContentHeight();
|
|
25981
|
+
let toolbarHeight = 0;
|
|
25982
|
+
if (!isNullOrUndefined(this.parent.toolbarModule) && !isNullOrUndefined(this.parent.toolbarModule.element)) {
|
|
25983
|
+
toolbarHeight = this.parent.toolbarModule.element.offsetHeight;
|
|
25984
|
+
}
|
|
25985
|
+
const viewportHeight = this.parent.ganttHeight - toolbarHeight - this.parent.ganttChartModule.chartTimelineContainer.offsetHeight;
|
|
25897
25986
|
const top = (viewportHeight < height) ? viewportHeight / 2 : height / 2;
|
|
25898
25987
|
const labels = this.holidayContainer.querySelectorAll('.' + holidayLabel);
|
|
25899
25988
|
for (let i = 0; i < labels.length; i++) {
|
|
@@ -25949,6 +26038,7 @@ class EventMarker$1 {
|
|
|
25949
26038
|
this.eventMarkersContainer = createElement('div', {
|
|
25950
26039
|
className: eventMarkersContainer
|
|
25951
26040
|
});
|
|
26041
|
+
this.eventMarkersContainer.setAttribute("role", "EventMarker");
|
|
25952
26042
|
this.parent.ganttChartModule.chartBodyContent.appendChild(this.eventMarkersContainer);
|
|
25953
26043
|
}
|
|
25954
26044
|
this.eventMarkersContainer.innerHTML = '';
|
|
@@ -27019,10 +27109,12 @@ class RowDD$1 {
|
|
|
27019
27109
|
}
|
|
27020
27110
|
}
|
|
27021
27111
|
if (!args.cancel) {
|
|
27022
|
-
args.cancel = true;
|
|
27023
27112
|
args.requestType = 'beforeDrop';
|
|
27024
27113
|
this.parent.trigger('actionBegin', args);
|
|
27025
|
-
|
|
27114
|
+
if (!args.cancel) {
|
|
27115
|
+
this.dropRows(args, true); // method to update the data collections based on drop action
|
|
27116
|
+
args.cancel = true;
|
|
27117
|
+
}
|
|
27026
27118
|
}
|
|
27027
27119
|
}
|
|
27028
27120
|
dropRows(args, isByMethod) {
|
|
@@ -27119,19 +27211,31 @@ class RowDD$1 {
|
|
|
27119
27211
|
let data = gObj.flatData;
|
|
27120
27212
|
let startIndex;
|
|
27121
27213
|
let endIndex;
|
|
27214
|
+
let ganttData = this.parent.dataSource;
|
|
27215
|
+
let uniqueTaskID = this.parent.taskFields.id;
|
|
27122
27216
|
if (draggedRecord.index < droppedRecord.index) {
|
|
27123
27217
|
startIndex = draggedRecord.index;
|
|
27124
|
-
|
|
27218
|
+
for (let i = 0; i < ganttData.length; i++) {
|
|
27219
|
+
let currentData = this.parent.currentViewData.filter(function (e) {
|
|
27220
|
+
return e[uniqueTaskID] === ganttData[i][uniqueTaskID];
|
|
27221
|
+
})[0];
|
|
27222
|
+
if (currentData.index > droppedRecord.index) {
|
|
27223
|
+
endIndex = currentData.index;
|
|
27224
|
+
break;
|
|
27225
|
+
}
|
|
27226
|
+
}
|
|
27125
27227
|
}
|
|
27126
27228
|
else {
|
|
27127
27229
|
startIndex = droppedRecord.index;
|
|
27128
|
-
let
|
|
27129
|
-
|
|
27130
|
-
|
|
27131
|
-
|
|
27132
|
-
|
|
27230
|
+
for (let i = 0; i < ganttData.length; i++) {
|
|
27231
|
+
let currentData = this.parent.currentViewData.filter(function (e) {
|
|
27232
|
+
return e[uniqueTaskID] === ganttData[i][uniqueTaskID];
|
|
27233
|
+
})[0];
|
|
27234
|
+
if (currentData.index > draggedRecord.index) {
|
|
27235
|
+
endIndex = currentData.index;
|
|
27236
|
+
break;
|
|
27237
|
+
}
|
|
27133
27238
|
}
|
|
27134
|
-
endIndex = rootChildRecord.index;
|
|
27135
27239
|
}
|
|
27136
27240
|
for (let i = startIndex; i <= endIndex; i++) {
|
|
27137
27241
|
if (!isNullOrUndefined(data[i])) {
|