@syncfusion/ej2-gantt 19.4.56 → 20.1.47
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 +10 -0
- 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 +167 -70
- package/dist/es6/ej2-gantt.es2015.js.map +1 -1
- package/dist/es6/ej2-gantt.es5.js +185 -78
- 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 +11 -2
- package/src/gantt/actions/rowdragdrop.js +37 -15
- package/src/gantt/base/date-processor.js +0 -1
- package/src/gantt/base/gantt-chart.js +9 -4
- package/src/gantt/base/gantt.js +2 -2
- 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 +37 -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
|
/**
|
|
@@ -4291,8 +4292,7 @@ class GanttChart {
|
|
|
4291
4292
|
else {
|
|
4292
4293
|
this.chartBodyContent.style.height = contentElement['offsetHeight'] + 'px';
|
|
4293
4294
|
}
|
|
4294
|
-
}
|
|
4295
|
-
//let element: HTMLElement = this.chartTimelineContainer.querySelector('.' + cls.timelineHeaderTableContainer);
|
|
4295
|
+
} //let element: HTMLElement = this.chartTimelineContainer.querySelector('.' + cls.timelineHeaderTableContainer);
|
|
4296
4296
|
this.chartBodyContent.style.width = formatUnit(this.parent.timelineModule.totalTimelineWidth);
|
|
4297
4297
|
this.setVirtualHeight();
|
|
4298
4298
|
this.parent.notify('updateHeight', {});
|
|
@@ -4470,7 +4470,7 @@ class GanttChart {
|
|
|
4470
4470
|
const target = e.target;
|
|
4471
4471
|
const isOnTaskbarElement = e.target.classList.contains(taskBarMainContainer)
|
|
4472
4472
|
|| closest(e.target, '.' + taskBarMainContainer);
|
|
4473
|
-
if (closest(target, '.e-gantt-parent-taskbar')) {
|
|
4473
|
+
if (closest(target, '.e-gantt-parent-taskbar') && !this.parent.editSettings.allowEditing) {
|
|
4474
4474
|
this.chartExpandCollapseRequest(e);
|
|
4475
4475
|
}
|
|
4476
4476
|
else if (!isOnTaskbarElement && this.parent.autoFocusTasks) {
|
|
@@ -4992,6 +4992,10 @@ class GanttChart {
|
|
|
4992
4992
|
$target.classList.contains('e-headercell') || $target.closest('.e-segmented-taskbar')) {
|
|
4993
4993
|
e.preventDefault();
|
|
4994
4994
|
}
|
|
4995
|
+
if (isTab && $target.classList.contains('e-rowdragdrop')) {
|
|
4996
|
+
this.parent.treeGrid.grid.notify('key-pressed', e);
|
|
4997
|
+
return;
|
|
4998
|
+
}
|
|
4995
4999
|
if ($target.classList.contains('e-rowcell') && (nextElement && nextElement.classList.contains('e-rowcell')) ||
|
|
4996
5000
|
$target.classList.contains('e-headercell')) { // eslint-disable-line
|
|
4997
5001
|
if (isTab) {
|
|
@@ -5034,7 +5038,7 @@ class GanttChart {
|
|
|
5034
5038
|
else {
|
|
5035
5039
|
this.manageFocus($target, 'remove', true);
|
|
5036
5040
|
}
|
|
5037
|
-
if (nextElement.classList.contains('e-rowcell')) {
|
|
5041
|
+
if (nextElement.classList.contains('e-rowcell') && $target.nextElementSibling) {
|
|
5038
5042
|
if (!$target.classList.contains('e-rowcell')) {
|
|
5039
5043
|
this.parent.treeGrid.grid.notify('key-pressed', e);
|
|
5040
5044
|
const fmodule = getValue('focusModule', this.parent.treeGrid.grid);
|
|
@@ -6113,6 +6117,40 @@ class Timeline {
|
|
|
6113
6117
|
} while ((startDate < endDate));
|
|
6114
6118
|
return parentTh;
|
|
6115
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
|
+
}
|
|
6116
6154
|
getTimelineRoundOffEndDate(date) {
|
|
6117
6155
|
const tierMode = this.topTier === 'None' ? this.bottomTier : this.topTier;
|
|
6118
6156
|
const endDate = new Date(date.toString());
|
|
@@ -6127,6 +6165,9 @@ class Timeline {
|
|
|
6127
6165
|
endDate.setHours(24, 0, 0, 0);
|
|
6128
6166
|
}
|
|
6129
6167
|
}
|
|
6168
|
+
if (this.isZooming || this.parent.isLoad) {
|
|
6169
|
+
this.updateTimelineAfterZooming(endDate, false);
|
|
6170
|
+
}
|
|
6130
6171
|
return endDate;
|
|
6131
6172
|
}
|
|
6132
6173
|
/**
|
|
@@ -6196,7 +6237,6 @@ class Timeline {
|
|
|
6196
6237
|
}
|
|
6197
6238
|
return increment;
|
|
6198
6239
|
}
|
|
6199
|
-
;
|
|
6200
6240
|
/**
|
|
6201
6241
|
* Method to find header cell was weekend or not
|
|
6202
6242
|
*
|
|
@@ -6775,6 +6815,8 @@ class GanttTreeGrid {
|
|
|
6775
6815
|
renderTreeGrid() {
|
|
6776
6816
|
this.composeProperties();
|
|
6777
6817
|
this.bindEvents();
|
|
6818
|
+
const root = 'root';
|
|
6819
|
+
this.parent.treeGrid[root] = this.parent[root] ? this.parent[root] : this.parent;
|
|
6778
6820
|
this.parent.treeGrid.appendTo(this.treeGridElement);
|
|
6779
6821
|
this.wireEvents();
|
|
6780
6822
|
}
|
|
@@ -6838,7 +6880,7 @@ class GanttTreeGrid {
|
|
|
6838
6880
|
const scrollWidth = this.getScrollbarWidth();
|
|
6839
6881
|
const isMobile = /Android|Mac|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);
|
|
6840
6882
|
if (scrollWidth !== 0) {
|
|
6841
|
-
content.style.cssText += 'width: calc(100% + ' + scrollWidth + 'px);';
|
|
6883
|
+
content.style.cssText += 'width: calc(100% + ' + (scrollWidth + 1) + 'px);';
|
|
6842
6884
|
}
|
|
6843
6885
|
else {
|
|
6844
6886
|
content.classList.add('e-gantt-scroll-padding');
|
|
@@ -7864,7 +7906,7 @@ class ChartRows extends DateProcessor {
|
|
|
7864
7906
|
this.milestoneHeight = 0;
|
|
7865
7907
|
this.milesStoneRadius = 0;
|
|
7866
7908
|
this.baselineTop = 0;
|
|
7867
|
-
this.baselineHeight =
|
|
7909
|
+
this.baselineHeight = 8;
|
|
7868
7910
|
this.touchLeftConnectorpoint = '';
|
|
7869
7911
|
this.touchRightConnectorpoint = '';
|
|
7870
7912
|
this.dropSplit = false;
|
|
@@ -7946,7 +7988,7 @@ class ChartRows extends DateProcessor {
|
|
|
7946
7988
|
* @private
|
|
7947
7989
|
*/
|
|
7948
7990
|
getIndicatorNode(indicator) {
|
|
7949
|
-
const templateString = '<label class="' + label + ' ' + taskIndicatorDiv + '"
|
|
7991
|
+
const templateString = '<label class="' + label + ' ' + taskIndicatorDiv + '" role="LabelIndicator" style="line-height:'
|
|
7950
7992
|
+ (this.parent.rowHeight) + 'px;' +
|
|
7951
7993
|
'left:' + this.getIndicatorleft(indicator.date) + 'px;"><i class="' + indicator.iconClass + '"></i> </label>';
|
|
7952
7994
|
return this.createDivElement(templateString);
|
|
@@ -8019,9 +8061,9 @@ class ChartRows extends DateProcessor {
|
|
|
8019
8061
|
}
|
|
8020
8062
|
else {
|
|
8021
8063
|
taskLabel$$1 = '<span class="' + taskLabel + '" style="line-height:' +
|
|
8022
|
-
(this.taskBarHeight - 1) + 'px;
|
|
8023
|
-
|
|
8024
|
-
|
|
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:' +
|
|
8025
8067
|
this.taskBarHeight + 'px;">' + labelString + '</span>';
|
|
8026
8068
|
}
|
|
8027
8069
|
}
|
|
@@ -8438,7 +8480,7 @@ class ChartRows extends DateProcessor {
|
|
|
8438
8480
|
*/
|
|
8439
8481
|
getTaskBaselineNode() {
|
|
8440
8482
|
const data = this.templateData;
|
|
8441
|
-
const template = '<div class="' + baselineBar + ' ' + '" style="margin-top:' + this.baselineTop +
|
|
8483
|
+
const template = '<div class="' + baselineBar + ' ' + '" role="BaselineBar" style="margin-top:' + this.baselineTop +
|
|
8442
8484
|
'px;left:' + data.ganttProperties.baselineLeft + 'px;' +
|
|
8443
8485
|
'width:' + data.ganttProperties.baselineWidth + 'px;height:' +
|
|
8444
8486
|
this.baselineHeight + 'px;' + (this.baselineColor ? 'background-color: ' + this.baselineColor + ';' : '') + '"></div>';
|
|
@@ -8452,9 +8494,10 @@ class ChartRows extends DateProcessor {
|
|
|
8452
8494
|
*/
|
|
8453
8495
|
getMilestoneBaselineNode() {
|
|
8454
8496
|
const data = this.templateData;
|
|
8497
|
+
let baselineMilestoneHeight = this.parent.renderBaseline ? 5 : 2;
|
|
8455
8498
|
const template = '<div class="' + baselineMilestoneContainer + ' ' + '" style="' +
|
|
8456
8499
|
'left:' + (data.ganttProperties.baselineLeft - this.milesStoneRadius) + 'px;' +
|
|
8457
|
-
'margin-top:' + (-Math.floor(this.parent.rowHeight - this.milestoneMarginTop) +
|
|
8500
|
+
'margin-top:' + (-Math.floor(this.parent.rowHeight - this.milestoneMarginTop) + baselineMilestoneHeight) +
|
|
8458
8501
|
'px">' + '<div class="' + baselineMilestoneDiv + '">' + '<div class="' + baselineMilestoneDiv +
|
|
8459
8502
|
' ' + baselineMilestoneTop + '" ' +
|
|
8460
8503
|
'style="top:' + (-this.milestoneHeight) + 'px;border-right:' + this.milesStoneRadius +
|
|
@@ -8482,7 +8525,9 @@ class ChartRows extends DateProcessor {
|
|
|
8482
8525
|
*/
|
|
8483
8526
|
getLeftLabelNode(i) {
|
|
8484
8527
|
const leftLabelNode = this.leftLabelContainer();
|
|
8485
|
-
|
|
8528
|
+
if (this.generateTaskLabelAriaLabel('left') !== "") {
|
|
8529
|
+
leftLabelNode[0].setAttribute('aria-label', this.generateTaskLabelAriaLabel('left'));
|
|
8530
|
+
}
|
|
8486
8531
|
let leftLabelTemplateNode = null;
|
|
8487
8532
|
if (this.leftTaskLabelTemplateFunction) {
|
|
8488
8533
|
leftLabelTemplateNode = this.leftTaskLabelTemplateFunction(extend({ index: i }, this.templateData), this.parent, 'LeftLabelTemplate', this.getTemplateID('LeftLabelTemplate'), false, undefined, leftLabelNode[0], this.parent.treeGrid['root']);
|
|
@@ -8504,9 +8549,10 @@ class ChartRows extends DateProcessor {
|
|
|
8504
8549
|
return leftLabelNode;
|
|
8505
8550
|
}
|
|
8506
8551
|
getLableText(labelString, labelDiv) {
|
|
8552
|
+
let leftLabelHeight = this.parent.renderBaseline ? ((this.parent.rowHeight - this.taskBarHeight) / 2) : this.taskBarMarginTop;
|
|
8507
8553
|
const templateString = createElement('div', {
|
|
8508
8554
|
className: labelDiv, styles: 'height:' + (this.taskBarHeight) + 'px;' +
|
|
8509
|
-
'margin-top:' +
|
|
8555
|
+
'margin-top:' + leftLabelHeight + 'px;'
|
|
8510
8556
|
});
|
|
8511
8557
|
const spanElem = createElement('span', { className: label });
|
|
8512
8558
|
const property = this.parent.disableHtmlEncode ? 'textContent' : 'innerHTML';
|
|
@@ -8525,7 +8571,9 @@ class ChartRows extends DateProcessor {
|
|
|
8525
8571
|
*/
|
|
8526
8572
|
getRightLabelNode(i) {
|
|
8527
8573
|
const rightLabelNode = this.rightLabelContainer();
|
|
8528
|
-
|
|
8574
|
+
if (this.generateTaskLabelAriaLabel('right') !== "") {
|
|
8575
|
+
rightLabelNode[0].setAttribute('aria-label', this.generateTaskLabelAriaLabel('right'));
|
|
8576
|
+
}
|
|
8529
8577
|
let rightLabelTemplateNode = null;
|
|
8530
8578
|
if (this.rightTaskLabelTemplateFunction) {
|
|
8531
8579
|
rightLabelTemplateNode = this.rightTaskLabelTemplateFunction(extend({ index: i }, this.templateData), this.parent, 'RightLabelTemplate', this.getTemplateID('RightLabelTemplate'), false, undefined, rightLabelNode[0], this.parent.treeGrid['root']);
|
|
@@ -8638,8 +8686,10 @@ class ChartRows extends DateProcessor {
|
|
|
8638
8686
|
else {
|
|
8639
8687
|
labelDiv = this.createDivElement('<span class="' +
|
|
8640
8688
|
taskLabel + '" style="line-height:' +
|
|
8641
|
-
(this.taskBarHeight - 1) + 'px;
|
|
8642
|
-
(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:' +
|
|
8643
8693
|
this.taskBarHeight + 'px;">' + labelString + '</span>');
|
|
8644
8694
|
}
|
|
8645
8695
|
progressBarInnerDiv[0].appendChild([].slice.call(labelDiv)[0]);
|
|
@@ -8668,10 +8718,10 @@ class ChartRows extends DateProcessor {
|
|
|
8668
8718
|
const className = (this.parent.gridLines === 'Horizontal' || this.parent.gridLines === 'Both') ?
|
|
8669
8719
|
'e-chart-row-border' : '';
|
|
8670
8720
|
table.innerHTML = '<tr class="' + this.getRowClassName(this.templateData) + ' ' + chartRow + '"' +
|
|
8671
|
-
'style="display:' + this.getExpandDisplayProp(this.templateData) + ';height:' +
|
|
8721
|
+
'role="ChartRow" style="display:' + this.getExpandDisplayProp(this.templateData) + ';height:' +
|
|
8672
8722
|
this.parent.rowHeight + 'px;">' +
|
|
8673
8723
|
'<td class="' + chartRowCell + ' ' + className
|
|
8674
|
-
+ '" style="width:' + this.parent.timelineModule.totalTimelineWidth + 'px;"></td></tr>';
|
|
8724
|
+
+ '" role="ChartCell" style="width:' + this.parent.timelineModule.totalTimelineWidth + 'px;"></td></tr>';
|
|
8675
8725
|
return table.childNodes;
|
|
8676
8726
|
}
|
|
8677
8727
|
/**
|
|
@@ -8736,7 +8786,7 @@ class ChartRows extends DateProcessor {
|
|
|
8736
8786
|
}
|
|
8737
8787
|
leftLabelContainer() {
|
|
8738
8788
|
const template = '<div class="' + ((this.leftTaskLabelTemplateFunction) ? leftLabelTempContainer :
|
|
8739
|
-
leftLabelContainer) + ' ' + '" tabindex="-1" style="height:' +
|
|
8789
|
+
leftLabelContainer) + ' ' + '" tabindex="-1" role="LeftLabel" style="height:' +
|
|
8740
8790
|
(this.parent.rowHeight - 2) + 'px;width:' + this.taskNameWidth(this.templateData) + '"></div>';
|
|
8741
8791
|
return this.createDivElement(template);
|
|
8742
8792
|
}
|
|
@@ -8748,7 +8798,7 @@ class ChartRows extends DateProcessor {
|
|
|
8748
8798
|
const template = '<div class="' + taskBarMainContainer + ' ' +
|
|
8749
8799
|
this.parent.getUnscheduledTaskClass(data.ganttProperties) + ' ' +
|
|
8750
8800
|
((data.ganttProperties.cssClass) ? data.ganttProperties.cssClass : '') + '" ' +
|
|
8751
|
-
' tabindex="-1" style="' + ((data.ganttProperties.isMilestone && !manualParent) ?
|
|
8801
|
+
' tabindex="-1" role="TaskBar" style="' + ((data.ganttProperties.isMilestone && !manualParent) ?
|
|
8752
8802
|
('width:' + this.milestoneHeight + 'px;height:' +
|
|
8753
8803
|
this.milestoneHeight + 'px;margin-top:' + this.milestoneMarginTop + 'px;left:' + (data.ganttProperties.left -
|
|
8754
8804
|
(this.milestoneHeight / 2)) + 'px;') : ('width:' + data.ganttProperties.width +
|
|
@@ -8759,26 +8809,26 @@ class ChartRows extends DateProcessor {
|
|
|
8759
8809
|
}
|
|
8760
8810
|
rightLabelContainer() {
|
|
8761
8811
|
const template = '<div class="' + ((this.rightTaskLabelTemplateFunction) ? rightLabelTempContainer :
|
|
8762
|
-
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:'
|
|
8763
8813
|
+ (this.parent.rowHeight - 2) + 'px;"></div>';
|
|
8764
8814
|
return this.createDivElement(template);
|
|
8765
8815
|
}
|
|
8766
8816
|
childTaskbarLeftResizer() {
|
|
8767
8817
|
const lResizerLeft = -(this.parent.isAdaptive ? 12 : 2);
|
|
8768
8818
|
const template = '<div class="' + taskBarLeftResizer + ' ' + icon + '"' +
|
|
8769
|
-
' style="left:' + lResizerLeft + 'px;height:' + (this.taskBarHeight) + 'px;"></div>';
|
|
8819
|
+
' role="LeftResizer" style="left:' + lResizerLeft + 'px;height:' + (this.taskBarHeight) + 'px;"></div>';
|
|
8770
8820
|
return this.createDivElement(template);
|
|
8771
8821
|
}
|
|
8772
8822
|
childTaskbarRightResizer() {
|
|
8773
8823
|
const rResizerLeft = this.parent.isAdaptive ? -2 : -10;
|
|
8774
8824
|
const template = '<div class="' + taskBarRightResizer + ' ' + icon + '"' +
|
|
8775
|
-
' style="left:' + (this.templateData.ganttProperties.width + rResizerLeft) + 'px;' +
|
|
8825
|
+
' role="RightResizer" style="left:' + (this.templateData.ganttProperties.width + rResizerLeft) + 'px;' +
|
|
8776
8826
|
'height:' + (this.taskBarHeight) + 'px;"></div>';
|
|
8777
8827
|
return this.createDivElement(template);
|
|
8778
8828
|
}
|
|
8779
8829
|
childTaskbarProgressResizer() {
|
|
8780
8830
|
const template = '<div class="' + childProgressResizer + '"' +
|
|
8781
|
-
' style="left:' + (this.templateData.ganttProperties.progressWidth - 6) + 'px;margin-top:' +
|
|
8831
|
+
' role="ProgressResizer" style="left:' + (this.templateData.ganttProperties.progressWidth - 6) + 'px;margin-top:' +
|
|
8782
8832
|
(this.taskBarHeight - 4) + 'px;"><div class="' + progressBarHandler + '"' +
|
|
8783
8833
|
'><div class="' + progressHandlerElement + '"></div>' +
|
|
8784
8834
|
'<div class="' + progressBarHandlerAfter + '"></div></div>';
|
|
@@ -8976,10 +9026,13 @@ class ChartRows extends DateProcessor {
|
|
|
8976
9026
|
* @private
|
|
8977
9027
|
*/
|
|
8978
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;
|
|
8979
9032
|
this.baselineColor = !isNullOrUndefined(this.parent.baselineColor) &&
|
|
8980
9033
|
this.parent.baselineColor !== '' ? this.parent.baselineColor : null;
|
|
8981
9034
|
this.taskBarHeight = isNullOrUndefined(this.parent.taskbarHeight) || this.parent.taskbarHeight >= this.parent.rowHeight ?
|
|
8982
|
-
Math.floor(this.parent.rowHeight *
|
|
9035
|
+
Math.floor(this.parent.rowHeight * taskbarHeightValue) : this.parent.taskbarHeight; // 0.62 -- Standard Ratio.
|
|
8983
9036
|
if (this.parent.renderBaseline) {
|
|
8984
9037
|
let height;
|
|
8985
9038
|
if ((this.taskBarHeight + this.baselineHeight) <= this.parent.rowHeight) {
|
|
@@ -8990,11 +9043,11 @@ class ChartRows extends DateProcessor {
|
|
|
8990
9043
|
}
|
|
8991
9044
|
this.taskBarHeight = height;
|
|
8992
9045
|
}
|
|
8993
|
-
this.milestoneHeight = Math.floor(this.taskBarHeight *
|
|
8994
|
-
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);
|
|
8995
9048
|
this.milestoneMarginTop = Math.floor((this.parent.rowHeight - this.milestoneHeight) / 2);
|
|
8996
9049
|
this.milesStoneRadius = Math.floor((this.milestoneHeight) / 2);
|
|
8997
|
-
this.baselineTop = -(Math.floor((this.parent.rowHeight - (this.taskBarHeight + this.taskBarMarginTop))) -
|
|
9050
|
+
this.baselineTop = -(Math.floor((this.parent.rowHeight - (this.taskBarHeight + this.taskBarMarginTop))) - 4);
|
|
8998
9051
|
this.connectorPointWidth = this.parent.isAdaptive ? Math.round(this.taskBarHeight / 2) : 8;
|
|
8999
9052
|
this.connectorPointMargin = Math.floor((this.taskBarHeight / 2) - (this.connectorPointWidth / 2));
|
|
9000
9053
|
}
|
|
@@ -9188,6 +9241,7 @@ class ChartRows extends DateProcessor {
|
|
|
9188
9241
|
const indicators = this.templateData.ganttProperties.indicators;
|
|
9189
9242
|
for (let indicatorIndex = 0; indicatorIndex < indicators.length; indicatorIndex++) {
|
|
9190
9243
|
taskIndicatorNode = this.getIndicatorNode(indicators[indicatorIndex]);
|
|
9244
|
+
taskIndicatorNode[0].setAttribute('aria-label', indicators[indicatorIndex].name);
|
|
9191
9245
|
if (indicators[indicatorIndex].name.indexOf('$') > -1 || indicators[indicatorIndex].name.indexOf('#') > -1) {
|
|
9192
9246
|
taskIndicatorTextFunction = this.templateCompiler(indicators[indicatorIndex].name);
|
|
9193
9247
|
taskIndicatorTextNode = taskIndicatorTextFunction(extend({ index: i }, this.templateData), this.parent, 'indicatorLabelText');
|
|
@@ -10406,7 +10460,7 @@ class ConnectorLine {
|
|
|
10406
10460
|
for (let i = 0; i < childNodes.length; i++) {
|
|
10407
10461
|
const innerChild = childNodes[i].childNodes;
|
|
10408
10462
|
for (let j = 0; j < innerChild.length; j++) {
|
|
10409
|
-
const ariaString = this.parent.connectorLineModule.generateAriaLabel(ariaConnector[i]);
|
|
10463
|
+
const ariaString = 'Connector Line ' + this.parent.connectorLineModule.generateAriaLabel(ariaConnector[i]);
|
|
10410
10464
|
innerChild[j].setAttribute('aria-label', ariaString);
|
|
10411
10465
|
}
|
|
10412
10466
|
}
|
|
@@ -10663,7 +10717,11 @@ class ConnectorLine {
|
|
|
10663
10717
|
let connectorContainer = '';
|
|
10664
10718
|
const isVirtual = this.parent.virtualScrollModule && this.parent.enableVirtualization;
|
|
10665
10719
|
const connectorLine$$1 = this.getPosition(data, this.getParentPosition(data), height);
|
|
10666
|
-
|
|
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);
|
|
10667
10725
|
if (this.getParentPosition(data)) {
|
|
10668
10726
|
connectorContainer = '<div id="ConnectorLine' + data.connectorLineId + '" style="background-color:black">';
|
|
10669
10727
|
let div = '<div class="' + connectorLineContainer +
|
|
@@ -10691,7 +10749,7 @@ class ConnectorLine {
|
|
|
10691
10749
|
this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
|
|
10692
10750
|
if (this.getParentPosition(data) === 'FSType1') {
|
|
10693
10751
|
div = div + 'left:' + (data.parentLeft + data.parentWidth) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
|
|
10694
|
-
((data.parentIndex * data.rowHeight) + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1))) + 'px;' +
|
|
10752
|
+
((data.parentIndex * data.rowHeight) + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
|
|
10695
10753
|
'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="FSType1">';
|
|
10696
10754
|
div = div + eLine;
|
|
10697
10755
|
div = div + 'left:' + (isMilestoneParent ? -1 : 0) + 'px;width:' + (isMilestoneParent ?
|
|
@@ -10712,7 +10770,7 @@ class ConnectorLine {
|
|
|
10712
10770
|
}
|
|
10713
10771
|
if (this.getParentPosition(data) === 'FSType2') {
|
|
10714
10772
|
div = div + 'left:' + data.parentLeft + 'px;top:' + (isVirtual ? connectorLine$$1.top : ((data.parentIndex * data.rowHeight) +
|
|
10715
|
-
this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1))) + 'px;' +
|
|
10773
|
+
this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
|
|
10716
10774
|
'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="FSType2">';
|
|
10717
10775
|
div = div + eLine;
|
|
10718
10776
|
div = div + 'left:' + (isMilestoneParent ? data.parentWidth - 1 : data.parentWidth) + 'px;width:' +
|
|
@@ -10743,7 +10801,7 @@ class ConnectorLine {
|
|
|
10743
10801
|
}
|
|
10744
10802
|
if (this.getParentPosition(data) === 'FSType3') {
|
|
10745
10803
|
div = div + 'left:' + (data.childLeft - 20) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
|
|
10746
|
-
((data.childIndex * data.rowHeight) + this.getTaskbarMidpoint(isMilestoneParent) - (this.lineStroke - 1))) + 'px;' +
|
|
10804
|
+
((data.childIndex * data.rowHeight) + this.getTaskbarMidpoint(isMilestoneParent) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
|
|
10747
10805
|
'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="FSType3">';
|
|
10748
10806
|
div = div + rightArrow;
|
|
10749
10807
|
div = div + 'left:10px;' + this.getBorderStyles('left', 10) +
|
|
@@ -10773,7 +10831,7 @@ class ConnectorLine {
|
|
|
10773
10831
|
}
|
|
10774
10832
|
if (this.getParentPosition(data) === 'FSType4') {
|
|
10775
10833
|
div = div + 'left:' + (data.parentLeft + data.parentWidth) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
|
|
10776
|
-
((data.childIndex * data.rowHeight) + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1))) + 'px;' +
|
|
10834
|
+
((data.childIndex * data.rowHeight) + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
|
|
10777
10835
|
'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="FSType4">';
|
|
10778
10836
|
div = div + rightArrow;
|
|
10779
10837
|
div = div + 'left:' + (data.childLeft - (data.parentLeft + data.parentWidth + 10)) + 'px;' +
|
|
@@ -10799,7 +10857,7 @@ class ConnectorLine {
|
|
|
10799
10857
|
}
|
|
10800
10858
|
if (this.getParentPosition(data) === 'SSType4') {
|
|
10801
10859
|
div = div + 'left:' + (data.parentLeft - 10) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
|
|
10802
|
-
((data.childIndex * data.rowHeight) + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1))) + 'px;' +
|
|
10860
|
+
((data.childIndex * data.rowHeight) + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
|
|
10803
10861
|
'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="SSType4">';
|
|
10804
10862
|
div = div + rightArrow;
|
|
10805
10863
|
div = div + 'left:' + (data.childLeft - data.parentLeft) + 'px;' + duplicateStingTwo;
|
|
@@ -10812,7 +10870,7 @@ class ConnectorLine {
|
|
|
10812
10870
|
}
|
|
10813
10871
|
if (this.getParentPosition(data) === 'SSType3') {
|
|
10814
10872
|
div = div + 'left:' + (data.childLeft - 20) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
|
|
10815
|
-
((data.childIndex * data.rowHeight) + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1))) + 'px;' +
|
|
10873
|
+
((data.childIndex * data.rowHeight) + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
|
|
10816
10874
|
'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="SSType3">';
|
|
10817
10875
|
div = div + rightArrow;
|
|
10818
10876
|
div = div + 'left:10px;' + duplicateStingTwo;
|
|
@@ -10825,7 +10883,7 @@ class ConnectorLine {
|
|
|
10825
10883
|
}
|
|
10826
10884
|
if (this.getParentPosition(data) === 'SSType2') {
|
|
10827
10885
|
div = div + 'left:' + setInnerElementLeftSSType2 + 'px;top:' + (isVirtual ? connectorLine$$1.top :
|
|
10828
|
-
((data.parentIndex * data.rowHeight) + this.getTaskbarMidpoint(isMilestoneParent) - (this.lineStroke - 1))) + 'px;' +
|
|
10886
|
+
((data.parentIndex * data.rowHeight) + this.getTaskbarMidpoint(isMilestoneParent) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
|
|
10829
10887
|
'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="SSType2">';
|
|
10830
10888
|
div = div + eLine;
|
|
10831
10889
|
div = div + 'width:' + (setInnerChildWidthSSType2 + 1) + 'px;' +
|
|
@@ -10846,7 +10904,7 @@ class ConnectorLine {
|
|
|
10846
10904
|
if (this.getParentPosition(data) === 'SSType1') {
|
|
10847
10905
|
div = div + 'left:' + (data.childLeft - 20) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
|
|
10848
10906
|
((data.parentIndex * data.rowHeight) +
|
|
10849
|
-
this.getTaskbarMidpoint(isMilestoneParent) - (this.lineStroke - 1))) + 'px;' +
|
|
10907
|
+
this.getTaskbarMidpoint(isMilestoneParent) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
|
|
10850
10908
|
'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="SSType1">';
|
|
10851
10909
|
div = div + eLine;
|
|
10852
10910
|
div = div + 'width:' + (data.parentLeft - data.childLeft + 21) + 'px;' +
|
|
@@ -10863,7 +10921,7 @@ class ConnectorLine {
|
|
|
10863
10921
|
}
|
|
10864
10922
|
if (this.getParentPosition(data) === 'FFType1') {
|
|
10865
10923
|
div = div + 'left:' + (data.childLeft + data.childWidth) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
|
|
10866
|
-
((data.parentIndex * data.rowHeight) + this.getTaskbarMidpoint(isMilestoneParent) - (this.lineStroke - 1))) + 'px;' +
|
|
10924
|
+
((data.parentIndex * data.rowHeight) + this.getTaskbarMidpoint(isMilestoneParent) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
|
|
10867
10925
|
'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="FFType1">';
|
|
10868
10926
|
div = div + eLine;
|
|
10869
10927
|
div = div + 'left:' + (isMilestoneParent ? (((data.parentLeft + data.parentWidth) -
|
|
@@ -10887,7 +10945,7 @@ class ConnectorLine {
|
|
|
10887
10945
|
}
|
|
10888
10946
|
if (this.getParentPosition(data) === 'FFType2') {
|
|
10889
10947
|
div = div + 'left:' + (data.parentLeft + data.parentWidth) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
|
|
10890
|
-
((data.parentIndex * data.rowHeight) + this.getTaskbarMidpoint(isMilestoneParent) - (this.lineStroke - 1))) + 'px;' +
|
|
10948
|
+
((data.parentIndex * data.rowHeight) + this.getTaskbarMidpoint(isMilestoneParent) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
|
|
10891
10949
|
'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="FFType2">';
|
|
10892
10950
|
div = div + eLine;
|
|
10893
10951
|
div = div + (isMilestoneParent ? 'left:-1px;' : '') + 'width:' +
|
|
@@ -10913,7 +10971,7 @@ class ConnectorLine {
|
|
|
10913
10971
|
}
|
|
10914
10972
|
if (this.getParentPosition(data) === 'FFType3') {
|
|
10915
10973
|
div = div + 'left:' + (data.childLeft + data.childWidth) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
|
|
10916
|
-
((data.childIndex * data.rowHeight) + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1))) + 'px;' +
|
|
10974
|
+
((data.childIndex * data.rowHeight) + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
|
|
10917
10975
|
'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="FFType3">';
|
|
10918
10976
|
div = div + duplicateStingOne;
|
|
10919
10977
|
div = div + eLine;
|
|
@@ -10936,7 +10994,7 @@ class ConnectorLine {
|
|
|
10936
10994
|
}
|
|
10937
10995
|
if (this.getParentPosition(data) === 'FFType4') {
|
|
10938
10996
|
div = div + 'left:' + (data.parentLeft + data.parentWidth) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
|
|
10939
|
-
((data.childIndex * data.rowHeight) + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1))) + 'px;' +
|
|
10997
|
+
((data.childIndex * data.rowHeight) + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
|
|
10940
10998
|
'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="FFType4">';
|
|
10941
10999
|
div = div + leftArrow;
|
|
10942
11000
|
div = div + ('left:' + ((data.childLeft + data.childWidth) -
|
|
@@ -10965,7 +11023,7 @@ class ConnectorLine {
|
|
|
10965
11023
|
}
|
|
10966
11024
|
if (this.getParentPosition(data) === 'SFType4') {
|
|
10967
11025
|
div = div + 'left:' + (data.parentLeft - 10) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
|
|
10968
|
-
((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;' +
|
|
10969
11027
|
'height:' + heightValue + 'px;position:absolute" data-connectortype="SFType4">';
|
|
10970
11028
|
div = div + duplicateStingFour + 'top:' + (-5 - this.lineStroke + (this.lineStroke - 1)) + 'px;' +
|
|
10971
11029
|
'border-bottom-width:' + (5 + this.lineStroke) +
|
|
@@ -10993,7 +11051,7 @@ class ConnectorLine {
|
|
|
10993
11051
|
}
|
|
10994
11052
|
if (this.getParentPosition(data) === 'SFType3') {
|
|
10995
11053
|
div = div + 'left:' + (data.childLeft + data.childWidth) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
|
|
10996
|
-
((data.childIndex * data.rowHeight) + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1))) + 'px;' +
|
|
11054
|
+
((data.childIndex * data.rowHeight) + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
|
|
10997
11055
|
'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="SFType3">';
|
|
10998
11056
|
div = div + duplicateStingOne;
|
|
10999
11057
|
div = div + eLine;
|
|
@@ -11011,7 +11069,7 @@ class ConnectorLine {
|
|
|
11011
11069
|
}
|
|
11012
11070
|
if (this.getParentPosition(data) === 'SFType1') {
|
|
11013
11071
|
div = div + 'left:' + (data.parentLeft - 10) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
|
|
11014
|
-
((data.parentIndex * data.rowHeight) + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1))) + 'px;' +
|
|
11072
|
+
((data.parentIndex * data.rowHeight) + this.getTaskbarMidpoint(isMilestone) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
|
|
11015
11073
|
'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="SFType1">';
|
|
11016
11074
|
div = div + eLine;
|
|
11017
11075
|
div = div + 'width:11px;' + this.getBorderStyles('top', this.lineStroke) + 'position:relative;"></div>';
|
|
@@ -11036,7 +11094,7 @@ class ConnectorLine {
|
|
|
11036
11094
|
}
|
|
11037
11095
|
if (this.getParentPosition(data) === 'SFType2') {
|
|
11038
11096
|
div = div + 'left:' + (data.childLeft + data.childWidth) + 'px;top:' + (isVirtual ? connectorLine$$1.top :
|
|
11039
|
-
((data.parentIndex * data.rowHeight) + this.getTaskbarMidpoint(isMilestoneParent) - (this.lineStroke - 1))) + 'px;' +
|
|
11097
|
+
((data.parentIndex * data.rowHeight) + this.getTaskbarMidpoint(isMilestoneParent) - (this.lineStroke - 1) - isMilestoneValue)) + 'px;' +
|
|
11040
11098
|
'width:1px;height:' + heightValue + 'px;position:absolute" data-connectortype="SFType2">';
|
|
11041
11099
|
div = div + eLine;
|
|
11042
11100
|
div = div + 'left:' + (((data.parentLeft) - (data.childLeft + data.childWidth)) - 10) +
|
|
@@ -11278,6 +11336,7 @@ class Splitter$1 {
|
|
|
11278
11336
|
this.splitterObject.paneSettings[1].size = null;
|
|
11279
11337
|
this.splitterObject.paneSettings[1].size = this.getSpliterPositionInPercentage(this.splitterPreviousPositionChart);
|
|
11280
11338
|
}
|
|
11339
|
+
this.parent.timelineModule.updateTimelineAfterZooming(this.parent.timelineModule.timelineEndDate, true);
|
|
11281
11340
|
callBackPromise.resolve(splitterResizedArgs);
|
|
11282
11341
|
});
|
|
11283
11342
|
return callBackPromise;
|
|
@@ -11559,6 +11618,7 @@ class Tooltip$1 {
|
|
|
11559
11618
|
* @returns {void} .
|
|
11560
11619
|
*/
|
|
11561
11620
|
updateTooltipPosition(args) {
|
|
11621
|
+
args.element.style.visibility = 'visible';
|
|
11562
11622
|
if (isNullOrUndefined(this.tooltipMouseEvent) || args.target.classList.contains('e-notes-info')) {
|
|
11563
11623
|
return;
|
|
11564
11624
|
}
|
|
@@ -11588,7 +11648,6 @@ class Tooltip$1 {
|
|
|
11588
11648
|
tooltipPositionY = tooltipPositionY + 10;
|
|
11589
11649
|
}
|
|
11590
11650
|
args.element.style.top = tooltipPositionY + 'px';
|
|
11591
|
-
args.element.style.visibility = 'visible';
|
|
11592
11651
|
}
|
|
11593
11652
|
/**
|
|
11594
11653
|
* Method to get mouse pointor position
|
|
@@ -11630,9 +11689,16 @@ class Tooltip$1 {
|
|
|
11630
11689
|
switch (elementType) {
|
|
11631
11690
|
case 'milestone':
|
|
11632
11691
|
{
|
|
11633
|
-
|
|
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>' +
|
|
11634
11700
|
'<td class = "e-gantt-tooltip-value">' +
|
|
11635
|
-
this.parent.getFormatedDate(
|
|
11701
|
+
this.parent.getFormatedDate(milestoneStartDate, this.parent.getDateFormat()) + '</td></tr>' : '';
|
|
11636
11702
|
content$$1 = '<table class = "e-gantt-tooltiptable"><tbody>' +
|
|
11637
11703
|
taskName + sDate + '</tbody></table>';
|
|
11638
11704
|
break;
|
|
@@ -12850,7 +12916,7 @@ let Gantt = class Gantt extends Component {
|
|
|
12850
12916
|
gridHeight = 'calc(100% - ' + timelineContainer + 'px)';
|
|
12851
12917
|
// eslint-disable-next-line
|
|
12852
12918
|
this.element.getElementsByClassName('e-chart-scroll-container e-content')[0]['style'].height = 'calc(100% - ' + timelineContainer + 'px)';
|
|
12853
|
-
if (!isNullOrUndefined(this.toolbarModule)) {
|
|
12919
|
+
if (!isNullOrUndefined(this.toolbarModule) && !isNullOrUndefined(this.toolbarModule.element)) {
|
|
12854
12920
|
this.splitterElement.style.height = 'calc(100% - ' + this.toolbarModule.element.offsetHeight + 'px)';
|
|
12855
12921
|
}
|
|
12856
12922
|
else {
|
|
@@ -13385,7 +13451,7 @@ let Gantt = class Gantt extends Component {
|
|
|
13385
13451
|
*/
|
|
13386
13452
|
updateGridLineContainerHeight() {
|
|
13387
13453
|
if (this.chartVerticalLineContainer) {
|
|
13388
|
-
this.chartVerticalLineContainer.style.height = formatUnit(this.
|
|
13454
|
+
this.chartVerticalLineContainer.style.height = formatUnit(this.contentHeight);
|
|
13389
13455
|
}
|
|
13390
13456
|
}
|
|
13391
13457
|
/**
|
|
@@ -15293,7 +15359,8 @@ class CellEdit {
|
|
|
15293
15359
|
args.cancel = true;
|
|
15294
15360
|
return;
|
|
15295
15361
|
}
|
|
15296
|
-
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
|
|
15297
15364
|
|| field === taskSettings.dependency || field === taskSettings.progress
|
|
15298
15365
|
|| field === taskSettings.work || field === 'taskType')) {
|
|
15299
15366
|
args.cancel = true;
|
|
@@ -19389,7 +19456,8 @@ class DialogEdit {
|
|
|
19389
19456
|
disabled = true;
|
|
19390
19457
|
}
|
|
19391
19458
|
if (this.editedRecord.hasChildRecords) {
|
|
19392
|
-
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 ||
|
|
19393
19461
|
column.field === this.parent.taskFields.progress || column.field === this.parent.taskFields.work ||
|
|
19394
19462
|
column.field === 'taskType') {
|
|
19395
19463
|
disabled = true;
|
|
@@ -23191,14 +23259,20 @@ class Edit$2 {
|
|
|
23191
23259
|
}
|
|
23192
23260
|
else {
|
|
23193
23261
|
childIndex = parentItem.childRecords.length;
|
|
23194
|
-
}
|
|
23262
|
+
}
|
|
23263
|
+
/*Child collection update*/
|
|
23195
23264
|
parentItem.childRecords.splice(childIndex, 0, record);
|
|
23196
23265
|
if ((this.parent.dataSource instanceof DataManager &&
|
|
23197
23266
|
isNullOrUndefined(parentItem.taskData[this.parent.taskFields.parentID])) ||
|
|
23198
23267
|
!isNullOrUndefined(this.parent.dataSource)) {
|
|
23199
23268
|
const child = this.parent.taskFields.child;
|
|
23200
23269
|
if (parentItem.taskData[child] && parentItem.taskData[child].length > 0) {
|
|
23201
|
-
|
|
23270
|
+
if (rowPosition === 'Above' || rowPosition === 'Below') {
|
|
23271
|
+
parentItem.taskData[child].splice(childIndex, 0, record.taskData);
|
|
23272
|
+
}
|
|
23273
|
+
else {
|
|
23274
|
+
parentItem.taskData[child].push(record.taskData);
|
|
23275
|
+
}
|
|
23202
23276
|
}
|
|
23203
23277
|
else {
|
|
23204
23278
|
parentItem.taskData[child] = [];
|
|
@@ -23654,6 +23728,9 @@ class Edit$2 {
|
|
|
23654
23728
|
}
|
|
23655
23729
|
this.addSuccess(args);
|
|
23656
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
|
+
}
|
|
23657
23734
|
this.parent.trigger('actionComplete', args);
|
|
23658
23735
|
if (this.dialogModule.dialog && !this.dialogModule.dialogObj.isDestroyed) {
|
|
23659
23736
|
this.dialogModule.dialogObj.hide();
|
|
@@ -25763,6 +25840,7 @@ class NonWorkingDay {
|
|
|
25763
25840
|
this.nonworkingContainer = createElement('div', {
|
|
25764
25841
|
className: nonworkingContainer
|
|
25765
25842
|
});
|
|
25843
|
+
this.nonworkingContainer.setAttribute("role", "NonWorkingDays");
|
|
25766
25844
|
this.parent.ganttChartModule.chartBodyContent.appendChild(this.nonworkingContainer);
|
|
25767
25845
|
}
|
|
25768
25846
|
}
|
|
@@ -25800,8 +25878,11 @@ class NonWorkingDay {
|
|
|
25800
25878
|
let toDate;
|
|
25801
25879
|
const container = createElement('div');
|
|
25802
25880
|
const height = this.parent.contentHeight;
|
|
25803
|
-
|
|
25804
|
-
|
|
25881
|
+
let toolbarHeight = 0;
|
|
25882
|
+
if (!isNullOrUndefined(this.parent.toolbarModule)) {
|
|
25883
|
+
toolbarHeight = this.parent.toolbarModule.element.offsetHeight;
|
|
25884
|
+
}
|
|
25885
|
+
const viewportHeight = this.parent.ganttHeight - toolbarHeight - this.parent.ganttChartModule.chartTimelineContainer.offsetHeight;
|
|
25805
25886
|
for (let i = 0; i < this.parent.holidays.length; i++) {
|
|
25806
25887
|
if (this.parent.holidays[i].from && this.parent.holidays[i].to) {
|
|
25807
25888
|
fromDate = this.parent.dateValidationModule.getDateFromFormat(this.parent.holidays[i].from);
|
|
@@ -25894,9 +25975,12 @@ class NonWorkingDay {
|
|
|
25894
25975
|
return container;
|
|
25895
25976
|
}
|
|
25896
25977
|
updateHolidayLabelHeight() {
|
|
25897
|
-
const height = this.parent.
|
|
25898
|
-
|
|
25899
|
-
|
|
25978
|
+
const height = this.parent.getContentHeight();
|
|
25979
|
+
let toolbarHeight = 0;
|
|
25980
|
+
if (!isNullOrUndefined(this.parent.toolbarModule) && !isNullOrUndefined(this.parent.toolbarModule.element)) {
|
|
25981
|
+
toolbarHeight = this.parent.toolbarModule.element.offsetHeight;
|
|
25982
|
+
}
|
|
25983
|
+
const viewportHeight = this.parent.ganttHeight - toolbarHeight - this.parent.ganttChartModule.chartTimelineContainer.offsetHeight;
|
|
25900
25984
|
const top = (viewportHeight < height) ? viewportHeight / 2 : height / 2;
|
|
25901
25985
|
const labels = this.holidayContainer.querySelectorAll('.' + holidayLabel);
|
|
25902
25986
|
for (let i = 0; i < labels.length; i++) {
|
|
@@ -25952,6 +26036,7 @@ class EventMarker$1 {
|
|
|
25952
26036
|
this.eventMarkersContainer = createElement('div', {
|
|
25953
26037
|
className: eventMarkersContainer
|
|
25954
26038
|
});
|
|
26039
|
+
this.eventMarkersContainer.setAttribute("role", "EventMarker");
|
|
25955
26040
|
this.parent.ganttChartModule.chartBodyContent.appendChild(this.eventMarkersContainer);
|
|
25956
26041
|
}
|
|
25957
26042
|
this.eventMarkersContainer.innerHTML = '';
|
|
@@ -27122,19 +27207,31 @@ class RowDD$1 {
|
|
|
27122
27207
|
let data = gObj.flatData;
|
|
27123
27208
|
let startIndex;
|
|
27124
27209
|
let endIndex;
|
|
27210
|
+
let ganttData = this.parent.dataSource;
|
|
27211
|
+
let uniqueTaskID = this.parent.taskFields.id;
|
|
27125
27212
|
if (draggedRecord.index < droppedRecord.index) {
|
|
27126
27213
|
startIndex = draggedRecord.index;
|
|
27127
|
-
|
|
27214
|
+
for (let i = 0; i < ganttData.length; i++) {
|
|
27215
|
+
let currentData = this.parent.currentViewData.filter(function (e) {
|
|
27216
|
+
return e[uniqueTaskID] === ganttData[i][uniqueTaskID];
|
|
27217
|
+
})[0];
|
|
27218
|
+
if (currentData.index > droppedRecord.index) {
|
|
27219
|
+
endIndex = currentData.index;
|
|
27220
|
+
break;
|
|
27221
|
+
}
|
|
27222
|
+
}
|
|
27128
27223
|
}
|
|
27129
27224
|
else {
|
|
27130
27225
|
startIndex = droppedRecord.index;
|
|
27131
|
-
let
|
|
27132
|
-
|
|
27133
|
-
|
|
27134
|
-
|
|
27135
|
-
|
|
27226
|
+
for (let i = 0; i < ganttData.length; i++) {
|
|
27227
|
+
let currentData = this.parent.currentViewData.filter(function (e) {
|
|
27228
|
+
return e[uniqueTaskID] === ganttData[i][uniqueTaskID];
|
|
27229
|
+
})[0];
|
|
27230
|
+
if (currentData.index > draggedRecord.index) {
|
|
27231
|
+
endIndex = currentData.index;
|
|
27232
|
+
break;
|
|
27233
|
+
}
|
|
27136
27234
|
}
|
|
27137
|
-
endIndex = rootChildRecord.index;
|
|
27138
27235
|
}
|
|
27139
27236
|
for (let i = startIndex; i <= endIndex; i++) {
|
|
27140
27237
|
if (!isNullOrUndefined(data[i])) {
|