@syncfusion/ej2-gantt 21.2.6 → 21.2.9
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 +35 -0
- package/dist/ej2-gantt.min.js +2 -2
- package/dist/ej2-gantt.umd.min.js +2 -2
- package/dist/ej2-gantt.umd.min.js.map +1 -1
- package/dist/es6/ej2-gantt.es2015.js +181 -80
- package/dist/es6/ej2-gantt.es2015.js.map +1 -1
- package/dist/es6/ej2-gantt.es5.js +176 -75
- 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 +16 -16
- package/src/gantt/actions/context-menu.js +1 -1
- package/src/gantt/actions/dependency.js +9 -0
- package/src/gantt/actions/edit.d.ts +1 -0
- package/src/gantt/actions/edit.js +14 -3
- package/src/gantt/actions/pdf-export.js +1 -1
- package/src/gantt/actions/taskbar-edit.js +5 -2
- package/src/gantt/base/date-processor.js +1 -1
- package/src/gantt/base/gantt-chart.js +14 -3
- package/src/gantt/base/task-processor.js +51 -20
- package/src/gantt/base/tree-grid.js +2 -2
- package/src/gantt/export/export-helper.js +3 -0
- package/src/gantt/export/pdf-connector-line.d.ts +4 -3
- package/src/gantt/export/pdf-connector-line.js +22 -11
- package/src/gantt/export/pdf-gantt.d.ts +2 -1
- package/src/gantt/export/pdf-gantt.js +4 -4
- package/src/gantt/renderer/chart-rows.d.ts +1 -0
- package/src/gantt/renderer/chart-rows.js +46 -26
- package/src/gantt/renderer/timeline.js +4 -2
|
@@ -387,7 +387,7 @@ class DateProcessor {
|
|
|
387
387
|
else if (hour > this.parent.defaultStartTime && hour < this.parent.defaultEndTime) {
|
|
388
388
|
for (let i = 0; i < this.parent.workingTimeRanges.length; i++) {
|
|
389
389
|
const value = this.parent.workingTimeRanges[i];
|
|
390
|
-
if (hour
|
|
390
|
+
if (hour > value.to && (this.parent.workingTimeRanges[i + 1] &&
|
|
391
391
|
hour < this.parent.workingTimeRanges[i + 1].from)) {
|
|
392
392
|
this.setTime(this.parent.workingTimeRanges[i + 1].from, cloneDate);
|
|
393
393
|
break;
|
|
@@ -1885,7 +1885,7 @@ class TaskProcessor extends DateProcessor {
|
|
|
1885
1885
|
(this.parent.taskMode === 'Manual') ? false :
|
|
1886
1886
|
data[taskSettings.manual] === true ? false : true;
|
|
1887
1887
|
this.parent.setRecordValue('ganttProperties', ganttProperties, ganttData);
|
|
1888
|
-
if (!isNullOrUndefined(data[taskSettings.id])) {
|
|
1888
|
+
if (!isNullOrUndefined(data[taskSettings.id]) && (!((this.parent.viewType === "ResourceView" && level == 0))) || data[taskSettings.name] === "Unassigned Task") {
|
|
1889
1889
|
id = data[taskSettings.id];
|
|
1890
1890
|
name = data[taskSettings.name];
|
|
1891
1891
|
this.addTaskData(ganttData, data, isLoad);
|
|
@@ -2039,29 +2039,53 @@ class TaskProcessor extends DateProcessor {
|
|
|
2039
2039
|
startDate = this.checkStartDate(startDate, data.ganttProperties, false);
|
|
2040
2040
|
if (!isNullOrUndefined(duration)) {
|
|
2041
2041
|
endDate = this.getEndDate(startDate, duration, data.ganttProperties.durationUnit, data.ganttProperties, false);
|
|
2042
|
+
if (taskSettings.duration) {
|
|
2043
|
+
remainingDuration = data.ganttProperties.duration - sumOfDuration;
|
|
2044
|
+
if (remainingDuration <= 0) {
|
|
2045
|
+
continue;
|
|
2046
|
+
}
|
|
2047
|
+
duration = i === segments.length - 1 ? remainingDuration : remainingDuration > 0 &&
|
|
2048
|
+
duration > remainingDuration ? remainingDuration : duration;
|
|
2049
|
+
endDate = this.getEndDate(startDate, duration, data.ganttProperties.durationUnit, data.ganttProperties, false);
|
|
2050
|
+
}
|
|
2051
|
+
else if (!taskSettings.duration && taskSettings.endDate) {
|
|
2052
|
+
endDate = (!isNullOrUndefined(data.ganttProperties.endDate)) && endDate.getTime() >
|
|
2053
|
+
data.ganttProperties.endDate.getTime() && i !== segments.length - 1 ? endDate : data.ganttProperties.endDate;
|
|
2054
|
+
duration = this.getDuration(startDate, endDate, data.ganttProperties.durationUnit, data.ganttProperties.isAutoSchedule, data.ganttProperties.isMilestone);
|
|
2055
|
+
if (ganttSegments.length > 0 && endDate.getTime() < startDate.getTime()
|
|
2056
|
+
&& endDate.getTime() <= data.ganttProperties.endDate.getTime()) {
|
|
2057
|
+
ganttSegments[i - 1].duration = this.getDuration(ganttSegments[i - 1].startDate, data.ganttProperties.endDate, data.ganttProperties.durationUnit, data.ganttProperties.isAutoSchedule, data.ganttProperties.isMilestone);
|
|
2058
|
+
continue;
|
|
2059
|
+
}
|
|
2060
|
+
}
|
|
2042
2061
|
}
|
|
2043
2062
|
else {
|
|
2044
2063
|
endDate = this.getDateFromFormat(endDate);
|
|
2064
|
+
if (endDate && (isNullOrUndefined(duration) || String(duration) === '')) {
|
|
2065
|
+
if (endDate.getHours() === 0 && this.parent.defaultEndTime !== 86400) {
|
|
2066
|
+
this.setTime(this.parent.defaultEndTime, endDate);
|
|
2067
|
+
}
|
|
2068
|
+
}
|
|
2045
2069
|
endDate = this.checkEndDate(endDate, data.ganttProperties, false);
|
|
2046
2070
|
duration = this.getDuration(startDate, endDate, data.ganttProperties.durationUnit, data.ganttProperties.isAutoSchedule, data.ganttProperties.isMilestone);
|
|
2047
|
-
|
|
2048
|
-
|
|
2049
|
-
|
|
2050
|
-
|
|
2051
|
-
|
|
2071
|
+
if (taskSettings.duration) {
|
|
2072
|
+
remainingDuration = data.ganttProperties.duration - sumOfDuration - 1;
|
|
2073
|
+
if (remainingDuration <= 0) {
|
|
2074
|
+
continue;
|
|
2075
|
+
}
|
|
2076
|
+
duration = i === segments.length - 1 ? remainingDuration : remainingDuration > 0 &&
|
|
2077
|
+
duration > remainingDuration ? remainingDuration : duration;
|
|
2078
|
+
endDate = this.getEndDate(startDate, duration, data.ganttProperties.durationUnit, data.ganttProperties, false);
|
|
2052
2079
|
}
|
|
2053
|
-
|
|
2054
|
-
|
|
2055
|
-
|
|
2056
|
-
|
|
2057
|
-
|
|
2058
|
-
|
|
2059
|
-
|
|
2060
|
-
|
|
2061
|
-
|
|
2062
|
-
&& endDate.getTime() <= data.ganttProperties.endDate.getTime()) {
|
|
2063
|
-
ganttSegments[i - 1].duration = this.getDuration(ganttSegments[i - 1].startDate, data.ganttProperties.endDate, data.ganttProperties.durationUnit, data.ganttProperties.isAutoSchedule, data.ganttProperties.isMilestone);
|
|
2064
|
-
continue;
|
|
2080
|
+
else if (!taskSettings.duration && taskSettings.endDate) {
|
|
2081
|
+
endDate = (!isNullOrUndefined(data.ganttProperties.endDate)) && endDate.getTime() >
|
|
2082
|
+
data.ganttProperties.endDate.getTime() && i !== segments.length - 1 ? endDate : data.ganttProperties.endDate;
|
|
2083
|
+
duration = this.getDuration(startDate, endDate, data.ganttProperties.durationUnit, data.ganttProperties.isAutoSchedule, data.ganttProperties.isMilestone);
|
|
2084
|
+
if (ganttSegments.length > 0 && endDate.getTime() < startDate.getTime()
|
|
2085
|
+
&& endDate.getTime() <= data.ganttProperties.endDate.getTime()) {
|
|
2086
|
+
ganttSegments[i - 1].duration = this.getDuration(ganttSegments[i - 1].startDate, data.ganttProperties.endDate, data.ganttProperties.durationUnit, data.ganttProperties.isAutoSchedule, data.ganttProperties.isMilestone);
|
|
2087
|
+
continue;
|
|
2088
|
+
}
|
|
2065
2089
|
}
|
|
2066
2090
|
}
|
|
2067
2091
|
segment = {};
|
|
@@ -2302,7 +2326,7 @@ class TaskProcessor extends DateProcessor {
|
|
|
2302
2326
|
startDate = this.getDateFromFormat(data[taskSettings.startDate], true);
|
|
2303
2327
|
endDate = this.getDateFromFormat(data[taskSettings.endDate], true);
|
|
2304
2328
|
}
|
|
2305
|
-
const segments = taskSettings.segments ? (data[taskSettings.segments] ||
|
|
2329
|
+
const segments = taskSettings.segments && (!isNullOrUndefined(data[taskSettings.segments]) || !isNullOrUndefined(ganttData.taskData)) ? (data[taskSettings.segments] ||
|
|
2306
2330
|
ganttData.taskData[taskSettings.segments]) : null;
|
|
2307
2331
|
const isMileStone = taskSettings.milestone ? data[taskSettings.milestone] ? true : false : false;
|
|
2308
2332
|
const durationMapping = data[taskSettings.durationUnit] ? data[taskSettings.durationUnit] : '';
|
|
@@ -3125,6 +3149,9 @@ class TaskProcessor extends DateProcessor {
|
|
|
3125
3149
|
return resourceIdCollection;
|
|
3126
3150
|
}
|
|
3127
3151
|
resourceIdCollection = data[this.parent.taskFields.resourceInfo];
|
|
3152
|
+
if (resourceIdCollection != "" && typeof resourceIdCollection == "string") {
|
|
3153
|
+
resourceIdCollection = resourceIdCollection.split(',');
|
|
3154
|
+
}
|
|
3128
3155
|
let resourceData;
|
|
3129
3156
|
if (!isNullOrUndefined(this.parent.editModule) && !isNullOrUndefined(this.parent.editModule.dialogModule)
|
|
3130
3157
|
&& this.parent.editModule.dialogModule.isAddNewResource) {
|
|
@@ -3134,6 +3161,7 @@ class TaskProcessor extends DateProcessor {
|
|
|
3134
3161
|
resourceData = this.parent.resources;
|
|
3135
3162
|
}
|
|
3136
3163
|
const resourceIDMapping = this.parent.resourceFields.id;
|
|
3164
|
+
const resourceNameMapping = this.parent.resourceFields.name;
|
|
3137
3165
|
const resourceUnitMapping = this.parent.resourceFields.unit;
|
|
3138
3166
|
const resourceGroup = this.parent.resourceFields.group;
|
|
3139
3167
|
const resources = [];
|
|
@@ -3144,7 +3172,7 @@ class TaskProcessor extends DateProcessor {
|
|
|
3144
3172
|
return true;
|
|
3145
3173
|
}
|
|
3146
3174
|
else {
|
|
3147
|
-
return (resourceIdCollection[count] === resourceInfo[resourceIDMapping]);
|
|
3175
|
+
return (resourceIdCollection[count] === resourceInfo[resourceIDMapping]) || (resourceIdCollection[count] === resourceInfo[resourceNameMapping]);
|
|
3148
3176
|
}
|
|
3149
3177
|
});
|
|
3150
3178
|
const ganttDataResource = extend({}, resource[0]);
|
|
@@ -3882,6 +3910,9 @@ class TaskProcessor extends DateProcessor {
|
|
|
3882
3910
|
}
|
|
3883
3911
|
}
|
|
3884
3912
|
this.parent.setRecordValue('isMilestone', milestone, parentProp, true);
|
|
3913
|
+
if (!isNullOrUndefined(this.parent.taskFields.milestone)) {
|
|
3914
|
+
this.updateMappingData(parentData, 'milestone');
|
|
3915
|
+
}
|
|
3885
3916
|
if (parentProp.isAutoSchedule) {
|
|
3886
3917
|
this.calculateDuration(parentData);
|
|
3887
3918
|
}
|
|
@@ -4612,7 +4643,7 @@ class GanttChart {
|
|
|
4612
4643
|
setVirtualHeight() {
|
|
4613
4644
|
if (this.parent.virtualScrollModule && this.parent.enableVirtualization) {
|
|
4614
4645
|
const wrapper = getValue('virtualTrack', this.parent.ganttChartModule.virtualRender);
|
|
4615
|
-
wrapper.style.height = this.parent.treeGrid.element.getElementsByClassName('e-
|
|
4646
|
+
wrapper.style.height = this.parent.treeGrid.element.getElementsByClassName('e-virtualtrack')[0].style.height;
|
|
4616
4647
|
const wrapper1 = getValue('wrapper', this.parent.ganttChartModule.virtualRender);
|
|
4617
4648
|
const treegridVirtualHeight = this.parent.treeGrid.element.getElementsByClassName('e-virtualtable')[0].style.transform;
|
|
4618
4649
|
wrapper1.style.transform = treegridVirtualHeight;
|
|
@@ -5301,7 +5332,13 @@ class GanttChart {
|
|
|
5301
5332
|
* @private
|
|
5302
5333
|
*/
|
|
5303
5334
|
getRecordByTaskBar(target) {
|
|
5304
|
-
|
|
5335
|
+
let item;
|
|
5336
|
+
if (this.parent.enableVirtualization && this.parent.enableMultiTaskbar) {
|
|
5337
|
+
item = this.parent.flatData[this.getIndexByTaskBar(target)];
|
|
5338
|
+
}
|
|
5339
|
+
else {
|
|
5340
|
+
item = this.parent.currentViewData[this.getIndexByTaskBar(target)];
|
|
5341
|
+
}
|
|
5305
5342
|
return item;
|
|
5306
5343
|
}
|
|
5307
5344
|
/**
|
|
@@ -5659,7 +5696,12 @@ class GanttChart {
|
|
|
5659
5696
|
else {
|
|
5660
5697
|
const id = row.getAttribute('rowUniqueId');
|
|
5661
5698
|
const record = this.parent.getRecordByID(id);
|
|
5662
|
-
|
|
5699
|
+
if (this.parent.enableVirtualization && this.parent.enableMultiTaskbar) {
|
|
5700
|
+
recordIndex = this.parent.flatData.indexOf(record);
|
|
5701
|
+
}
|
|
5702
|
+
else {
|
|
5703
|
+
recordIndex = this.parent.currentViewData.indexOf(record);
|
|
5704
|
+
}
|
|
5663
5705
|
}
|
|
5664
5706
|
return recordIndex;
|
|
5665
5707
|
}
|
|
@@ -7063,9 +7105,11 @@ class Timeline {
|
|
|
7063
7105
|
const validStartLeft = this.parent.dataOperation.getTaskLeft(validStartDate, false);
|
|
7064
7106
|
const validEndLeft = this.parent.dataOperation.getTaskLeft(validEndDate, false);
|
|
7065
7107
|
let isChanged;
|
|
7108
|
+
let taskbarModule = this.parent.editModule.taskbarEditModule;
|
|
7066
7109
|
if (!isNullOrUndefined(maxStartLeft) && ((minStartDate < this.timelineStartDate) ||
|
|
7067
|
-
(!isNullOrUndefined(
|
|
7068
|
-
|
|
7110
|
+
(!isNullOrUndefined(taskbarModule)) && (!isNullOrUndefined(taskbarModule.taskBarEditAction)
|
|
7111
|
+
&& taskbarModule.taskBarEditAction !== 'ProgressResizing' &&
|
|
7112
|
+
taskbarModule.taskBarEditAction !== 'RightResizing')) && (maxStartLeft < this.bottomTierCellWidth || maxStartLeft <= validStartLeft)) {
|
|
7069
7113
|
isChanged = 'prevTimeSpan';
|
|
7070
7114
|
minStartDate = minStartDate > this.timelineStartDate ? this.timelineStartDate : minStartDate;
|
|
7071
7115
|
}
|
|
@@ -7659,7 +7703,7 @@ class GanttTreeGrid {
|
|
|
7659
7703
|
this.parent.columnByField = {};
|
|
7660
7704
|
this.parent.customColumns = [];
|
|
7661
7705
|
const tasksMapping = ['id', 'name', 'startDate', 'endDate', 'duration', 'dependency',
|
|
7662
|
-
'progress', 'baselineStartDate', 'baselineEndDate', 'resourceInfo', 'notes', 'work', 'manual', 'type'];
|
|
7706
|
+
'progress', 'baselineStartDate', 'baselineEndDate', 'resourceInfo', 'notes', 'work', 'manual', 'type', 'milestone'];
|
|
7663
7707
|
for (let i = 0; i < length; i++) {
|
|
7664
7708
|
let column = {};
|
|
7665
7709
|
if (typeof ganttObj.columns[i] === 'string') {
|
|
@@ -8001,7 +8045,7 @@ class GanttTreeGrid {
|
|
|
8001
8045
|
}
|
|
8002
8046
|
} // eslint-disable-next-line
|
|
8003
8047
|
durationValueAccessor(field, data, column) {
|
|
8004
|
-
const ganttProp = data.ganttProperties;
|
|
8048
|
+
const ganttProp = (!isNullOrUndefined(data)) ? data.ganttProperties : null;
|
|
8005
8049
|
if (!isNullOrUndefined(ganttProp)) {
|
|
8006
8050
|
return this.parent.dataOperation.getDurationString(ganttProp.duration, ganttProp.durationUnit);
|
|
8007
8051
|
}
|
|
@@ -8725,7 +8769,7 @@ class ChartRows extends DateProcessor {
|
|
|
8725
8769
|
if (this.taskLabelTemplateFunction && !isNullOrUndefined(progressDiv) && progressDiv.length > 0) {
|
|
8726
8770
|
const taskLabelTemplateNode = this.taskLabelTemplateFunction(extend({ index: i }, data), this.parent, 'TaskLabelTemplate', this.getTemplateID('TaskLabelTemplate'), false, undefined, progressDiv[0]);
|
|
8727
8771
|
if (taskLabelTemplateNode && taskLabelTemplateNode.length > 0) {
|
|
8728
|
-
|
|
8772
|
+
append(taskLabelTemplateNode, tempDiv);
|
|
8729
8773
|
labelString = tempDiv.innerHTML;
|
|
8730
8774
|
}
|
|
8731
8775
|
}
|
|
@@ -8780,7 +8824,7 @@ class ChartRows extends DateProcessor {
|
|
|
8780
8824
|
(isNullOrUndefined(data.ganttProperties.segments) || (!isNullOrUndefined(data.ganttProperties.segments) &&
|
|
8781
8825
|
data.ganttProperties.segments.length === 0))) {
|
|
8782
8826
|
if (template !== '' && !isNullOrUndefined(progressDiv) && progressDiv.length > 0) {
|
|
8783
|
-
|
|
8827
|
+
const templateElement = this.createDivElement(template)[0];
|
|
8784
8828
|
if (this.parent.disableHtmlEncode) {
|
|
8785
8829
|
templateElement.innerText = labelString;
|
|
8786
8830
|
}
|
|
@@ -8795,7 +8839,7 @@ class ChartRows extends DateProcessor {
|
|
|
8795
8839
|
!this.isTemplate(childLabel) &&
|
|
8796
8840
|
progressDiv[0].querySelectorAll('.e-task-label')[0].children[0])
|
|
8797
8841
|
progressDiv[0].querySelectorAll('.e-task-label')[0].children[0].remove();
|
|
8798
|
-
if (progressDiv[0].querySelectorAll('.e-task-label')[0].textContent
|
|
8842
|
+
if (progressDiv[0].querySelectorAll('.e-task-label')[0].textContent === '' &&
|
|
8799
8843
|
childLabel && !childLabel['elementRef'] && tempDiv.innerHTML !== '')
|
|
8800
8844
|
progressDiv[0].querySelectorAll('.e-task-label')[0].textContent = childLabel;
|
|
8801
8845
|
}
|
|
@@ -9280,7 +9324,7 @@ class ChartRows extends DateProcessor {
|
|
|
9280
9324
|
if (leftLabelTemplateNode[0]['data'] === 'null') {
|
|
9281
9325
|
leftLabelTemplateNode[0]['data'] = '';
|
|
9282
9326
|
}
|
|
9283
|
-
|
|
9327
|
+
append(leftLabelTemplateNode, leftLabelNode[0]);
|
|
9284
9328
|
}
|
|
9285
9329
|
if (this.parent.enableRtl) {
|
|
9286
9330
|
leftLabelNode[0].style.paddingLeft = '25px';
|
|
@@ -9335,7 +9379,7 @@ class ChartRows extends DateProcessor {
|
|
|
9335
9379
|
if (rightLabelTemplateNode[0]['data'] === 'null') {
|
|
9336
9380
|
rightLabelTemplateNode[0]['data'] = '';
|
|
9337
9381
|
}
|
|
9338
|
-
|
|
9382
|
+
append(rightLabelTemplateNode, rightLabelNode[0]);
|
|
9339
9383
|
}
|
|
9340
9384
|
if (this.parent.enableRtl) {
|
|
9341
9385
|
rightLabelNode[0].style.marginLeft = '0px';
|
|
@@ -9466,7 +9510,7 @@ class ChartRows extends DateProcessor {
|
|
|
9466
9510
|
!this.isTemplate(parentLabel) &&
|
|
9467
9511
|
progressBarInnerDiv[0].querySelectorAll('.e-task-label')[0].children[0])
|
|
9468
9512
|
progressBarInnerDiv[0].querySelectorAll('.e-task-label')[0].children[0].remove();
|
|
9469
|
-
if (progressBarInnerDiv[0].querySelectorAll('.e-task-label')[0].textContent
|
|
9513
|
+
if (progressBarInnerDiv[0].querySelectorAll('.e-task-label')[0].textContent === '' &&
|
|
9470
9514
|
parentLabel && !parentLabel['elementRef'] && div.innerHTML !== '')
|
|
9471
9515
|
progressBarInnerDiv[0].querySelectorAll('.e-task-label')[0].textContent = parentLabel;
|
|
9472
9516
|
}
|
|
@@ -9496,11 +9540,19 @@ class ChartRows extends DateProcessor {
|
|
|
9496
9540
|
* @returns {NodeList} .
|
|
9497
9541
|
* @private
|
|
9498
9542
|
*/
|
|
9499
|
-
getTableTrNode() {
|
|
9543
|
+
getTableTrNode(i) {
|
|
9500
9544
|
const table = createElement('table');
|
|
9501
9545
|
const className = (this.parent.gridLines === 'Horizontal' || this.parent.gridLines === 'Both') ?
|
|
9502
9546
|
'e-chart-row-border' : '';
|
|
9503
|
-
|
|
9547
|
+
const rows = this.parent.treeGrid.grid.contentModule.getRows()[i];
|
|
9548
|
+
let activecls;
|
|
9549
|
+
if (rows && rows.isSelected) {
|
|
9550
|
+
activecls = 'e-active';
|
|
9551
|
+
}
|
|
9552
|
+
else {
|
|
9553
|
+
activecls = '';
|
|
9554
|
+
}
|
|
9555
|
+
table.innerHTML = '<tr class="' + this.getRowClassName(this.templateData) + ' ' + chartRow + ' ' + (activecls) + '"' +
|
|
9504
9556
|
'style="display:' + this.getExpandDisplayProp(this.templateData) + ';height:' +
|
|
9505
9557
|
this.parent.rowHeight + 'px;">' +
|
|
9506
9558
|
'<td class="' + chartRowCell + ' ' + className
|
|
@@ -9610,7 +9662,7 @@ class ChartRows extends DateProcessor {
|
|
|
9610
9662
|
return this.createDivElement(template);
|
|
9611
9663
|
}
|
|
9612
9664
|
childTaskbarProgressResizer() {
|
|
9613
|
-
|
|
9665
|
+
const width = this.parent.enableRtl ? (this.templateData.ganttProperties.progressWidth + 8) : (this.templateData.ganttProperties.progressWidth - 6);
|
|
9614
9666
|
const template = '<div class="' + childProgressResizer + '"' +
|
|
9615
9667
|
'style="' + (this.parent.enableRtl ? 'right:' : 'left:') + width + 'px;margin-top:' +
|
|
9616
9668
|
(this.taskBarHeight - 4) + 'px;"><div class="' + progressBarHandler + '"' +
|
|
@@ -9937,7 +9989,7 @@ class ChartRows extends DateProcessor {
|
|
|
9937
9989
|
this.parent.renderTemplates();
|
|
9938
9990
|
this.triggerQueryTaskbarInfo();
|
|
9939
9991
|
this.parent.modifiedRecords = [];
|
|
9940
|
-
if (this.parent.viewType
|
|
9992
|
+
if (this.parent.viewType === 'ResourceView' && this.parent.showOverAllocation) {
|
|
9941
9993
|
this.updateOverlapped();
|
|
9942
9994
|
}
|
|
9943
9995
|
if (collapsedResourceRecord.length) {
|
|
@@ -9961,7 +10013,7 @@ class ChartRows extends DateProcessor {
|
|
|
9961
10013
|
getGanttChartRow(i, tempTemplateData) {
|
|
9962
10014
|
this.templateData = tempTemplateData;
|
|
9963
10015
|
let taskBaselineTemplateNode = null;
|
|
9964
|
-
const parentTrNode = this.getTableTrNode();
|
|
10016
|
+
const parentTrNode = this.getTableTrNode(i);
|
|
9965
10017
|
const leftLabelNode = this.getLeftLabelNode(i);
|
|
9966
10018
|
const taskbarContainerNode = this.taskbarContainer();
|
|
9967
10019
|
taskbarContainerNode[0].setAttribute('aria-label', this.generateAriaLabel(this.templateData));
|
|
@@ -9991,12 +10043,12 @@ class ChartRows extends DateProcessor {
|
|
|
9991
10043
|
}
|
|
9992
10044
|
}
|
|
9993
10045
|
if ((this.templateData.ganttProperties.autoDuration !== 0) && !this.templateData.ganttProperties.isMilestone && parentTaskbarTemplateNode && parentTaskbarTemplateNode.length > 0) {
|
|
9994
|
-
|
|
10046
|
+
append(parentTaskbarTemplateNode, taskbarContainerNode[0]);
|
|
9995
10047
|
}
|
|
9996
10048
|
else if ((this.templateData.ganttProperties.duration === 0 && this.templateData.ganttProperties.isMilestone && this.templateData.ganttProperties.isAutoSchedule)) {
|
|
9997
10049
|
const milestoneTemplateNode = this.getMilestoneNode(i, taskbarContainerNode);
|
|
9998
10050
|
if (milestoneTemplateNode && milestoneTemplateNode.length > 0) {
|
|
9999
|
-
|
|
10051
|
+
append(milestoneTemplateNode, taskbarContainerNode[0]);
|
|
10000
10052
|
}
|
|
10001
10053
|
}
|
|
10002
10054
|
if (this.parent.renderBaseline && this.templateData.ganttProperties.baselineStartDate &&
|
|
@@ -10050,7 +10102,7 @@ class ChartRows extends DateProcessor {
|
|
|
10050
10102
|
}
|
|
10051
10103
|
}
|
|
10052
10104
|
else {
|
|
10053
|
-
|
|
10105
|
+
append(childTaskbarTemplateNode, taskbarContainerNode[0]);
|
|
10054
10106
|
}
|
|
10055
10107
|
}
|
|
10056
10108
|
if (childTaskbarProgressResizeNode) {
|
|
@@ -10401,8 +10453,8 @@ class ChartRows extends DateProcessor {
|
|
|
10401
10453
|
}
|
|
10402
10454
|
// To update the row height when allow overallocation set to false
|
|
10403
10455
|
updateDragDropRecords(data, tr) {
|
|
10404
|
-
|
|
10405
|
-
|
|
10456
|
+
const childRecords = data.childRecords;
|
|
10457
|
+
const rowIndex = this.parent.currentViewData.indexOf(data);
|
|
10406
10458
|
let treeGridContentHeight = this.parent.enableRtl ? this.parent['element'].getElementsByClassName('e-content')[2].children[0]['offsetHeight'] :
|
|
10407
10459
|
this.parent['element'].getElementsByClassName('e-content')[0].children[0]['offsetHeight'];
|
|
10408
10460
|
if (!tr) {
|
|
@@ -10512,6 +10564,19 @@ class ChartRows extends DateProcessor {
|
|
|
10512
10564
|
}
|
|
10513
10565
|
}
|
|
10514
10566
|
}
|
|
10567
|
+
updateResourceTaskbarElement(tRow, parentTr) {
|
|
10568
|
+
const cloneElement = tRow.querySelector('.e-taskbar-main-container');
|
|
10569
|
+
addClass([cloneElement], 'collpse-parent-border');
|
|
10570
|
+
const id = tRow.querySelector('.' + taskBarMainContainer).getAttribute('rowUniqueId');
|
|
10571
|
+
const ganttData = this.parent.getRecordByID(id);
|
|
10572
|
+
let zIndex = "";
|
|
10573
|
+
if (ganttData && !isNullOrUndefined(ganttData.ganttProperties.eOverlapIndex)) {
|
|
10574
|
+
zIndex = (ganttData.ganttProperties.eOverlapIndex).toString();
|
|
10575
|
+
}
|
|
10576
|
+
const cloneChildElement = cloneElement.cloneNode(true);
|
|
10577
|
+
cloneChildElement.style.zIndex = zIndex;
|
|
10578
|
+
parentTr[0].childNodes[0].childNodes[0].childNodes[0].appendChild(cloneChildElement);
|
|
10579
|
+
}
|
|
10515
10580
|
getResourceParent(record) {
|
|
10516
10581
|
const chartRows = this.parent.ganttChartModule.getChartRows();
|
|
10517
10582
|
//Below code is for rendering taskbartemplate in resource view with multi taskbar
|
|
@@ -10535,20 +10600,19 @@ class ChartRows extends DateProcessor {
|
|
|
10535
10600
|
parentTrNode[0].childNodes[0].childNodes[0].appendChild(collapseParent);
|
|
10536
10601
|
const tasks = this.parent.dataOperation.setSortedChildTasks(record);
|
|
10537
10602
|
this.parent.dataOperation.updateOverlappingIndex(tasks);
|
|
10538
|
-
|
|
10539
|
-
|
|
10540
|
-
|
|
10541
|
-
|
|
10542
|
-
|
|
10543
|
-
|
|
10544
|
-
|
|
10545
|
-
|
|
10546
|
-
|
|
10547
|
-
|
|
10603
|
+
let tRow;
|
|
10604
|
+
if (this.parent.enableVirtualization) {
|
|
10605
|
+
for (let i = 0; i < record.childRecords.length; i++) {
|
|
10606
|
+
tRow = this.getGanttChartRow(record.childRecords[i].index, this.parent.flatData[record.childRecords[i].index]);
|
|
10607
|
+
this.updateResourceTaskbarElement(tRow, parentTrNode);
|
|
10608
|
+
}
|
|
10609
|
+
}
|
|
10610
|
+
else {
|
|
10611
|
+
for (let i = 0; i < chartRows.length; i++) {
|
|
10612
|
+
if (chartRows[i].classList.contains('gridrowtaskId'
|
|
10613
|
+
+ record.ganttProperties.rowUniqueID + 'level' + (record.level + 1))) {
|
|
10614
|
+
this.updateResourceTaskbarElement(chartRows[i], parentTrNode);
|
|
10548
10615
|
}
|
|
10549
|
-
const cloneChildElement = cloneElement.cloneNode(true);
|
|
10550
|
-
cloneChildElement.style.zIndex = zIndex;
|
|
10551
|
-
parentTrNode[0].childNodes[0].childNodes[0].childNodes[0].appendChild(cloneChildElement);
|
|
10552
10616
|
}
|
|
10553
10617
|
}
|
|
10554
10618
|
parentTrNode[0].childNodes[0].childNodes[0].appendChild([].slice.call(leftLabelNode)[0]);
|
|
@@ -11055,6 +11119,15 @@ class Dependency {
|
|
|
11055
11119
|
for (let count = 0; count < totLength; count++) {
|
|
11056
11120
|
if (flatData[count].ganttProperties.predecessorsName) {
|
|
11057
11121
|
this.validatePredecessorDates(flatData[count]);
|
|
11122
|
+
let predecessorCollection = flatData[count].ganttProperties.predecessor;
|
|
11123
|
+
if (predecessorCollection && predecessorCollection.length > 1) {
|
|
11124
|
+
for (let i = 0; i < predecessorCollection.length; i++) {
|
|
11125
|
+
const validateRecord = this.parent.getRecordByID(predecessorCollection[i].to);
|
|
11126
|
+
if (validateRecord) {
|
|
11127
|
+
this.validatePredecessorDates(validateRecord);
|
|
11128
|
+
}
|
|
11129
|
+
}
|
|
11130
|
+
}
|
|
11058
11131
|
if (flatData[count].hasChildRecords && this.parent.editModule && !this.parent.allowUnscheduledTasks
|
|
11059
11132
|
&& this.parent.allowParentDependency) {
|
|
11060
11133
|
this.parent.editModule['updateChildItems'](flatData[count]);
|
|
@@ -19671,7 +19744,8 @@ class TaskbarEdit extends DateProcessor {
|
|
|
19671
19744
|
this.dependencyCancel = true;
|
|
19672
19745
|
}
|
|
19673
19746
|
if ((this.taskBarEditAction === 'ConnectorPointLeftDrag' ||
|
|
19674
|
-
this.taskBarEditAction === 'ConnectorPointRightDrag') && this.drawPredecessor
|
|
19747
|
+
this.taskBarEditAction === 'ConnectorPointRightDrag') && this.drawPredecessor && (!this.connectorSecondRecord.hasChildRecords ||
|
|
19748
|
+
this.connectorSecondRecord.hasChildRecords && this.parent.allowParentDependency)) {
|
|
19675
19749
|
this.parent.connectorLineEditModule.updatePredecessor(this.connectorSecondRecord, this.finalPredecessor);
|
|
19676
19750
|
if (this.parent.UpdateOffsetOnTaskbarEdit) {
|
|
19677
19751
|
this.parent.connectorLineEditModule['calculateOffset'](this.connectorSecondRecord);
|
|
@@ -20004,7 +20078,9 @@ class TaskbarEdit extends DateProcessor {
|
|
|
20004
20078
|
}
|
|
20005
20079
|
this.showHideTaskBarEditingElements(element, this.highlightedSecondElement, true);
|
|
20006
20080
|
}
|
|
20007
|
-
if (isNullOrUndefined(this.connectorSecondAction) && !isNullOrUndefined(this.connectorSecondElement)
|
|
20081
|
+
if (isNullOrUndefined(this.connectorSecondAction) && !isNullOrUndefined(this.connectorSecondElement) &&
|
|
20082
|
+
(!this.connectorSecondRecord.hasChildRecords || this.connectorSecondRecord.hasChildRecords &&
|
|
20083
|
+
this.parent.allowParentDependency)) {
|
|
20008
20084
|
this.editTooltip.showHideTaskbarEditTooltip(false, this.segmentIndex);
|
|
20009
20085
|
removeClass([this.connectorSecondElement.querySelector('.' + connectorPointLeft)], [connectorPointAllowBlock]);
|
|
20010
20086
|
removeClass([this.connectorSecondElement.querySelector('.' + connectorPointRight)], [connectorPointAllowBlock]);
|
|
@@ -23464,6 +23540,7 @@ class Edit$2 {
|
|
|
23464
23540
|
this.isFromDeleteMethod = false;
|
|
23465
23541
|
this.targetedRecords = [];
|
|
23466
23542
|
this.isNewRecordAdded = false;
|
|
23543
|
+
this.isValidatedEditedRecord = false;
|
|
23467
23544
|
/** @hidden */
|
|
23468
23545
|
this.updateParentRecords = [];
|
|
23469
23546
|
/** @hidden */
|
|
@@ -24116,8 +24193,9 @@ class Edit$2 {
|
|
|
24116
24193
|
(isNullOrUndefined(taskData.startDate) && !isNullOrUndefined(prevStart)) ||
|
|
24117
24194
|
(isNullOrUndefined(taskData.endDate) && !isNullOrUndefined(prevEnd)) ||
|
|
24118
24195
|
(prevStart && prevStart.getTime() !== taskData.startDate.getTime())
|
|
24119
|
-
|
|
24120
|
-
|| (!isNullOrUndefined(prevDuration) && prevDuration !== taskData.duration
|
|
24196
|
+
|| (prevEnd && prevEnd.getTime() !== taskData.endDate.getTime())
|
|
24197
|
+
|| (!isNullOrUndefined(prevDuration) && prevDuration !== taskData.duration)
|
|
24198
|
+
|| (!isNullOrUndefined(prevDuration) && prevDuration === taskData.duration &&
|
|
24121
24199
|
prevDurationUnit !== taskData.durationUnit)) {
|
|
24122
24200
|
isMoved = true;
|
|
24123
24201
|
}
|
|
@@ -24230,6 +24308,11 @@ class Edit$2 {
|
|
|
24230
24308
|
this.parent.connectorLineEditModule.openValidationDialog(validateObject);
|
|
24231
24309
|
}
|
|
24232
24310
|
else {
|
|
24311
|
+
if (this.parent.editModule && this.parent.editModule.dialogModule &&
|
|
24312
|
+
this.parent.editModule.dialogModule['isEdit'] && this.predecessorUpdated) {
|
|
24313
|
+
this.isValidatedEditedRecord = true;
|
|
24314
|
+
this.parent.predecessorModule.validatePredecessor(args.data, [], '');
|
|
24315
|
+
}
|
|
24233
24316
|
this.parent.connectorLineEditModule.applyPredecessorOption();
|
|
24234
24317
|
}
|
|
24235
24318
|
}
|
|
@@ -24293,7 +24376,10 @@ class Edit$2 {
|
|
|
24293
24376
|
if (this.taskbarMoved) {
|
|
24294
24377
|
this.parent.editedTaskBarItem = ganttRecord;
|
|
24295
24378
|
}
|
|
24296
|
-
this.
|
|
24379
|
+
if (!this.isValidatedEditedRecord) {
|
|
24380
|
+
this.parent.predecessorModule.validatePredecessor(ganttRecord, [], '');
|
|
24381
|
+
}
|
|
24382
|
+
this.isValidatedEditedRecord = false;
|
|
24297
24383
|
this.parent.predecessorModule.isValidatedParentTaskID = '';
|
|
24298
24384
|
}
|
|
24299
24385
|
if (this.parent.allowParentDependency && ganttRecord.hasChildRecords && this.parent.previousRecords[ganttRecord.uniqueID].ganttProperties.startDate &&
|
|
@@ -26312,6 +26398,7 @@ class Edit$2 {
|
|
|
26312
26398
|
let args = {};
|
|
26313
26399
|
args = this.constructTaskAddedEventArgs(cAddedRecord, this.parent.editedRecords, 'beforeAdd');
|
|
26314
26400
|
this.parent.trigger('actionBegin', args, (args) => {
|
|
26401
|
+
this.parent.previousRecords = {};
|
|
26315
26402
|
if (!isNullOrUndefined(this.parent.loadingIndicator) && this.parent.loadingIndicator.indicatorType === "Shimmer") {
|
|
26316
26403
|
this.parent.showMaskRow();
|
|
26317
26404
|
}
|
|
@@ -30306,7 +30393,7 @@ class ContextMenu$2 {
|
|
|
30306
30393
|
this.parent.ganttChartModule.targetElement;
|
|
30307
30394
|
// Closed edited cell before opening context menu
|
|
30308
30395
|
// eslint-disable-next-line
|
|
30309
|
-
if (!isNullOrUndefined(this.parent.editModule) && this.parent.editModule.cellEditModule && this.parent.editModule.cellEditModule.isCellEdit && target.parentElement.classList.contains('e-row')) {
|
|
30396
|
+
if (!isNullOrUndefined(this.parent.editModule) && this.parent.editModule.cellEditModule && this.parent.editModule.cellEditModule.isCellEdit && target.parentElement.classList.contains('e-row') || target.parentElement.classList.contains('e-treecolumn-container')) {
|
|
30310
30397
|
this.parent.treeGrid.closeEdit();
|
|
30311
30398
|
}
|
|
30312
30399
|
if (!isNullOrUndefined(args.element) && args.element.id === this.parent.element.id + '_contextmenu') {
|
|
@@ -34319,7 +34406,10 @@ class ExportHelper {
|
|
|
34319
34406
|
const footerBrush = new PdfSolidBrush(this.ganttStyle.footer.backgroundColor);
|
|
34320
34407
|
footer.graphics.drawRectangle(pen, footerBrush, 0, 0, pdfDoc.pageSettings.width, 35);
|
|
34321
34408
|
/* eslint-disable-next-line */
|
|
34322
|
-
|
|
34409
|
+
let font = new PdfStandardFont(this.ganttStyle.fontFamily, this.ganttStyle.footer.fontSize, this.ganttStyle.footer.fontStyle);
|
|
34410
|
+
if (this.ganttStyle.font) {
|
|
34411
|
+
font = this.ganttStyle.font;
|
|
34412
|
+
}
|
|
34323
34413
|
const brush = new PdfSolidBrush(this.ganttStyle.footer.fontColor);
|
|
34324
34414
|
const pageNumber = new PdfPageNumberField(font);
|
|
34325
34415
|
const count = new PdfPageCountField(font, brush);
|
|
@@ -34983,11 +35073,22 @@ class PdfGanttPredecessor {
|
|
|
34983
35073
|
this.parent = parent;
|
|
34984
35074
|
this.pdfGantt = pdfGantt;
|
|
34985
35075
|
}
|
|
34986
|
-
findindex(num) {
|
|
35076
|
+
findindex(num, pdfExportProperties) {
|
|
34987
35077
|
var dataindex;
|
|
34988
|
-
|
|
34989
|
-
|
|
34990
|
-
|
|
35078
|
+
if (pdfExportProperties.exportType === 'CurrentViewData') {
|
|
35079
|
+
this.parent.currentViewData.map(function (data, index) {
|
|
35080
|
+
if (data.index == num) {
|
|
35081
|
+
dataindex = index;
|
|
35082
|
+
}
|
|
35083
|
+
});
|
|
35084
|
+
}
|
|
35085
|
+
else {
|
|
35086
|
+
this.parent.flatData.map(function (data, index) {
|
|
35087
|
+
if (data.index == num) {
|
|
35088
|
+
dataindex = index;
|
|
35089
|
+
}
|
|
35090
|
+
});
|
|
35091
|
+
}
|
|
34991
35092
|
return dataindex;
|
|
34992
35093
|
}
|
|
34993
35094
|
/**
|
|
@@ -34997,11 +35098,11 @@ class PdfGanttPredecessor {
|
|
|
34997
35098
|
* @returns {void}
|
|
34998
35099
|
* @private
|
|
34999
35100
|
*/
|
|
35000
|
-
drawPredecessor(pdfGantt) {
|
|
35101
|
+
drawPredecessor(pdfGantt, pdfExportProperties) {
|
|
35001
35102
|
this.pdfGantt = pdfGantt;
|
|
35002
35103
|
const pages = pdfGantt.result.page.section.getPages();
|
|
35003
|
-
const parentTask = pdfGantt.taskbarCollection[this.findindex(this.parentIndex)];
|
|
35004
|
-
const childTask = pdfGantt.taskbarCollection[this.findindex(this.childIndex)];
|
|
35104
|
+
const parentTask = pdfGantt.taskbarCollection[this.findindex(this.parentIndex, pdfExportProperties)];
|
|
35105
|
+
const childTask = pdfGantt.taskbarCollection[this.findindex(this.childIndex, pdfExportProperties)];
|
|
35005
35106
|
let startPage = new PdfPage();
|
|
35006
35107
|
let endPage = new PdfPage();
|
|
35007
35108
|
let predecessorType = '';
|
|
@@ -35011,7 +35112,7 @@ class PdfGanttPredecessor {
|
|
|
35011
35112
|
let childY = 0;
|
|
35012
35113
|
switch (this.type) {
|
|
35013
35114
|
case 'FS':
|
|
35014
|
-
if (childTask.startPage > -1 && parentTask.endPage > -1) {
|
|
35115
|
+
if ((!isNullOrUndefined(childTask) && childTask.startPage > -1) && (!isNullOrUndefined(parentTask) && parentTask.endPage > -1)) {
|
|
35015
35116
|
startPage = pages[parentTask.endPage];
|
|
35016
35117
|
endPage = pages[childTask.startPage];
|
|
35017
35118
|
parentPageData = pdfGantt.pdfPageDetail[parentTask.endPage - pdfGantt.chartPageIndex];
|
|
@@ -35038,7 +35139,7 @@ class PdfGanttPredecessor {
|
|
|
35038
35139
|
}
|
|
35039
35140
|
break;
|
|
35040
35141
|
case 'SF':
|
|
35041
|
-
if (childTask.endPage > -1 && parentTask.startPage > -1) {
|
|
35142
|
+
if ((!isNullOrUndefined(childTask) && childTask.endPage > -1) && (!isNullOrUndefined(parentTask) && parentTask.startPage > -1)) {
|
|
35042
35143
|
startPage = pages[parentTask.startPage];
|
|
35043
35144
|
endPage = pages[childTask.endPage];
|
|
35044
35145
|
parentPageData = pdfGantt.pdfPageDetail[parentTask.endPage - pdfGantt.chartPageIndex];
|
|
@@ -35065,7 +35166,7 @@ class PdfGanttPredecessor {
|
|
|
35065
35166
|
}
|
|
35066
35167
|
break;
|
|
35067
35168
|
case 'FF':
|
|
35068
|
-
if (childTask.endPage > -1 && parentTask.endPage > -1) {
|
|
35169
|
+
if ((!isNullOrUndefined(childTask) && childTask.endPage > -1) && (!isNullOrUndefined(parentTask) && parentTask.endPage > -1)) {
|
|
35069
35170
|
startPage = pages[parentTask.endPage];
|
|
35070
35171
|
endPage = pages[childTask.endPage];
|
|
35071
35172
|
parentPageData = pdfGantt.pdfPageDetail[parentTask.endPage - pdfGantt.chartPageIndex];
|
|
@@ -35092,7 +35193,7 @@ class PdfGanttPredecessor {
|
|
|
35092
35193
|
}
|
|
35093
35194
|
break;
|
|
35094
35195
|
case 'SS':
|
|
35095
|
-
if (childTask.startPage > -1 && parentTask.startPage > -1) {
|
|
35196
|
+
if ((!isNullOrUndefined(childTask) && childTask.startPage > -1) && (!isNullOrUndefined(parentTask) && parentTask.startPage > -1)) {
|
|
35096
35197
|
startPage = pages[parentTask.startPage];
|
|
35097
35198
|
endPage = pages[childTask.startPage];
|
|
35098
35199
|
parentPageData = pdfGantt.pdfPageDetail[parentTask.startPage - pdfGantt.chartPageIndex];
|
|
@@ -35419,12 +35520,12 @@ class PdfGantt extends PdfTreeGrid {
|
|
|
35419
35520
|
}
|
|
35420
35521
|
return this.taskbars;
|
|
35421
35522
|
}
|
|
35422
|
-
drawChart(result) {
|
|
35523
|
+
drawChart(result, pdfExportProperties) {
|
|
35423
35524
|
this.result = result;
|
|
35424
35525
|
this.totalPages = this.result.page.section.count;
|
|
35425
35526
|
this.perColumnPages = this.totalPages / this.layouter.columnRanges.length;
|
|
35426
35527
|
this.calculateRange();
|
|
35427
|
-
this.drawGantttChart();
|
|
35528
|
+
this.drawGantttChart(pdfExportProperties);
|
|
35428
35529
|
this.drawPageBorder();
|
|
35429
35530
|
}
|
|
35430
35531
|
//Calcualte the header range for each pdf page based on schedule start and end date.
|
|
@@ -35573,7 +35674,7 @@ class PdfGantt extends PdfTreeGrid {
|
|
|
35573
35674
|
}
|
|
35574
35675
|
}
|
|
35575
35676
|
//Draw the gantt chart side
|
|
35576
|
-
drawGantttChart() {
|
|
35677
|
+
drawGantttChart(pdfExportProperties) {
|
|
35577
35678
|
let taskbarPoint = this.startPoint;
|
|
35578
35679
|
const pagePoint = new PointF();
|
|
35579
35680
|
let pageStartX = 0;
|
|
@@ -35647,7 +35748,7 @@ class PdfGantt extends PdfTreeGrid {
|
|
|
35647
35748
|
// Draw predecessor line.
|
|
35648
35749
|
for (let i = 0; i < this.predecessorCollection.length; i++) {
|
|
35649
35750
|
const predecessor = this.predecessorCollection[i];
|
|
35650
|
-
predecessor.drawPredecessor(this);
|
|
35751
|
+
predecessor.drawPredecessor(this, pdfExportProperties);
|
|
35651
35752
|
}
|
|
35652
35753
|
}
|
|
35653
35754
|
}
|
|
@@ -35760,7 +35861,7 @@ class PdfExport {
|
|
|
35760
35861
|
const format = new PdfTreeGridLayoutFormat();
|
|
35761
35862
|
format.break = PdfLayoutBreakType.FitElement;
|
|
35762
35863
|
const layouter = this.gantt.drawGrid(pdfPage, 0, 0, format);
|
|
35763
|
-
this.gantt.drawChart(layouter);
|
|
35864
|
+
this.gantt.drawChart(layouter, pdfExportProperties);
|
|
35764
35865
|
if (!isMultipleExport) {
|
|
35765
35866
|
if (!this.isBlob) {
|
|
35766
35867
|
// save the PDF
|