@syncfusion/ej2-gantt 22.2.10 → 22.2.12
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 +46 -21
- 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 +171 -59
- package/dist/es6/ej2-gantt.es2015.js.map +1 -1
- package/dist/es6/ej2-gantt.es5.js +170 -58
- 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 +14 -14
- package/src/gantt/actions/context-menu.js +4 -1
- package/src/gantt/actions/critical-path.js +2 -0
- package/src/gantt/actions/dialog-edit.js +1 -1
- package/src/gantt/actions/edit.d.ts +12 -1
- package/src/gantt/actions/edit.js +76 -2
- package/src/gantt/actions/filter.js +9 -1
- package/src/gantt/actions/keyboard.js +1 -1
- package/src/gantt/base/date-processor.js +2 -2
- package/src/gantt/base/gantt.js +12 -4
- package/src/gantt/base/task-processor.js +11 -11
- package/src/gantt/export/export-helper.js +2 -1
- package/src/gantt/export/pdf-base/treegrid-layouter.js +3 -0
- package/src/gantt/export/pdf-treegrid.js +3 -0
- package/src/gantt/renderer/edit-tooltip.js +10 -7
- package/src/gantt/renderer/timeline.js +3 -0
- package/src/gantt/renderer/tooltip.js +32 -28
- package/styles/gantt/material-dark.css +1 -1
- package/styles/gantt/material.css +1 -1
- package/styles/material-dark.css +1 -1
- package/styles/material.css +1 -1
|
@@ -1529,8 +1529,8 @@ class DateProcessor {
|
|
|
1529
1529
|
}
|
|
1530
1530
|
if (!editArgs) {
|
|
1531
1531
|
this.prevProjectStartDate = this.parent.cloneProjectStartDate;
|
|
1532
|
-
this.parent.cloneProjectStartDate = minStartDate ? minStartDate : new Date(projectStartDate.getTime());
|
|
1533
|
-
this.parent.cloneProjectEndDate = maxEndDate ? maxEndDate : new Date(projectEndDate.getTime());
|
|
1532
|
+
this.parent.cloneProjectStartDate = minStartDate ? (!this.parent.timelineModule.isZoomToFit) ? (!isNullOrUndefined(projectStartDate)) ? new Date(projectStartDate.getTime()) : minStartDate : minStartDate : new Date(projectStartDate.getTime());
|
|
1533
|
+
this.parent.cloneProjectEndDate = maxEndDate ? (!this.parent.timelineModule.isZoomToFit) ? (!isNullOrUndefined(projectEndDate)) ? new Date(projectEndDate.getTime()) : maxEndDate : maxEndDate : new Date(projectEndDate.getTime());
|
|
1534
1534
|
}
|
|
1535
1535
|
else {
|
|
1536
1536
|
setValue('minStartDate', minStartDate, editArgs);
|
|
@@ -3054,17 +3054,15 @@ class TaskProcessor extends DateProcessor {
|
|
|
3054
3054
|
else {
|
|
3055
3055
|
hierarchicalData = this.parent.dataSource;
|
|
3056
3056
|
}
|
|
3057
|
-
|
|
3058
|
-
|
|
3059
|
-
if (
|
|
3060
|
-
|
|
3061
|
-
task[this.parent.taskFields.endDate] = record[this.parent.taskFields.endDate];
|
|
3062
|
-
}
|
|
3063
|
-
if (!isNullOrUndefined(this.parent.taskFields.endDate)) {
|
|
3064
|
-
task[this.parent.taskFields.endDate] = record[this.parent.taskFields.endDate];
|
|
3065
|
-
}
|
|
3057
|
+
hierarchicalData.map((record) => {
|
|
3058
|
+
if (task.ganttProperties.taskId === record[this.parent.taskFields.id]) {
|
|
3059
|
+
if (!isNullOrUndefined(this.parent.taskFields.startDate)) {
|
|
3060
|
+
task[this.parent.taskFields.startDate] = record[this.parent.taskFields.startDate];
|
|
3066
3061
|
}
|
|
3067
|
-
|
|
3062
|
+
if (!isNullOrUndefined(this.parent.taskFields.endDate)) {
|
|
3063
|
+
task[this.parent.taskFields.endDate] = record[this.parent.taskFields.endDate];
|
|
3064
|
+
}
|
|
3065
|
+
}
|
|
3068
3066
|
});
|
|
3069
3067
|
}
|
|
3070
3068
|
getWorkInHour(work, workUnit) {
|
|
@@ -3106,7 +3104,9 @@ class TaskProcessor extends DateProcessor {
|
|
|
3106
3104
|
this.setRecordDate(ganttData, ganttProperties.endDate, dataMapping.endDate);
|
|
3107
3105
|
}
|
|
3108
3106
|
if (dataMapping.duration) {
|
|
3109
|
-
|
|
3107
|
+
if (!isNullOrUndefined(dataMapping.milestone) && !ganttData.taskData[dataMapping.milestone]) {
|
|
3108
|
+
this.setRecordDuration(ganttData, dataMapping.duration);
|
|
3109
|
+
}
|
|
3110
3110
|
}
|
|
3111
3111
|
if (dataMapping.durationUnit) {
|
|
3112
3112
|
data[dataMapping.durationUnit] = ganttProperties.durationUnit;
|
|
@@ -7315,13 +7315,16 @@ class Timeline {
|
|
|
7315
7315
|
this.parent.updateProjectDates(args.projectStartDate, args.ProjectEndDate, args.isTimelineRoundOff, isFrom);
|
|
7316
7316
|
if (type === 'prevTimeSpan' && isFrom === 'publicMethod') {
|
|
7317
7317
|
this.parent.ganttChartModule.updateScrollLeft(0);
|
|
7318
|
+
this.parent.timelineModule.isZoomToFit = false;
|
|
7318
7319
|
}
|
|
7319
7320
|
else if (type === 'nextTimeSpan' && isFrom === 'publicMethod') {
|
|
7320
7321
|
this.parent.ganttChartModule.updateScrollLeft(this.parent.timelineModule.totalTimelineWidth);
|
|
7322
|
+
this.parent.timelineModule.isZoomToFit = false;
|
|
7321
7323
|
}
|
|
7322
7324
|
else if (type === 'nextTimeSpan' && isFrom === 'TaskbarEditing') {
|
|
7323
7325
|
let currentScrollLeft = document.getElementsByClassName('e-chart-scroll-container e-content')[0].scrollLeft;
|
|
7324
7326
|
this.parent.element.querySelector('.e-timeline-header-container').scrollLeft = currentScrollLeft;
|
|
7327
|
+
this.parent.timelineModule.isZoomToFit = false;
|
|
7325
7328
|
}
|
|
7326
7329
|
this.parent.timelineModule.timeSpanActionEvent('actionComplete', type, isFrom);
|
|
7327
7330
|
}
|
|
@@ -13068,34 +13071,38 @@ class Tooltip$1 {
|
|
|
13068
13071
|
*/
|
|
13069
13072
|
updateTooltipPosition(args) {
|
|
13070
13073
|
args.element.style.visibility = 'visible';
|
|
13071
|
-
|
|
13072
|
-
|
|
13073
|
-
|
|
13074
|
-
|
|
13075
|
-
|
|
13076
|
-
|
|
13077
|
-
|
|
13078
|
-
|
|
13079
|
-
|
|
13080
|
-
|
|
13081
|
-
|
|
13082
|
-
|
|
13083
|
-
|
|
13084
|
-
|
|
13085
|
-
|
|
13086
|
-
|
|
13087
|
-
|
|
13088
|
-
|
|
13089
|
-
|
|
13090
|
-
|
|
13091
|
-
|
|
13092
|
-
|
|
13093
|
-
|
|
13094
|
-
|
|
13095
|
-
|
|
13096
|
-
|
|
13097
|
-
|
|
13098
|
-
|
|
13074
|
+
const parentWithZoomStyle = this.parent.element.closest('[style*="zoom"]');
|
|
13075
|
+
if (isNullOrUndefined(parentWithZoomStyle)) {
|
|
13076
|
+
if (isNullOrUndefined(this.tooltipMouseEvent) || args.target.classList.contains('e-notes-info')) {
|
|
13077
|
+
return;
|
|
13078
|
+
}
|
|
13079
|
+
const postion = this.getPointorPosition(this.tooltipMouseEvent);
|
|
13080
|
+
const containerPosition = this.parent.getOffsetRect(this.parent.chartPane);
|
|
13081
|
+
const topEnd = containerPosition.top + this.parent.chartPane.offsetHeight;
|
|
13082
|
+
const leftEnd = containerPosition.left + this.parent.chartPane.offsetWidth;
|
|
13083
|
+
let tooltipPositionX = postion.x;
|
|
13084
|
+
let tooltipPositionY = postion.y;
|
|
13085
|
+
if (leftEnd < (tooltipPositionX + args.element.offsetWidth + 10)) {
|
|
13086
|
+
while (leftEnd < (tooltipPositionX + args.element.offsetWidth + 10)) {
|
|
13087
|
+
tooltipPositionX = leftEnd - args.element.offsetWidth - 10;
|
|
13088
|
+
args.element.style.left = tooltipPositionX + 'px';
|
|
13089
|
+
}
|
|
13090
|
+
}
|
|
13091
|
+
else {
|
|
13092
|
+
tooltipPositionX = tooltipPositionX + 10;
|
|
13093
|
+
args.element.style.left = tooltipPositionX + 'px';
|
|
13094
|
+
}
|
|
13095
|
+
if (window.innerHeight < args.element.offsetHeight + tooltipPositionY) {
|
|
13096
|
+
tooltipPositionY = tooltipPositionY - args.element.offsetHeight - 10;
|
|
13097
|
+
}
|
|
13098
|
+
if ((topEnd < (tooltipPositionY + args.element.offsetHeight + 20))) {
|
|
13099
|
+
tooltipPositionY = tooltipPositionY - args.element.offsetHeight - 10;
|
|
13100
|
+
}
|
|
13101
|
+
else {
|
|
13102
|
+
tooltipPositionY = tooltipPositionY + 10;
|
|
13103
|
+
}
|
|
13104
|
+
args.element.style.top = tooltipPositionY + 'px';
|
|
13105
|
+
}
|
|
13099
13106
|
}
|
|
13100
13107
|
/**
|
|
13101
13108
|
* Method to get mouse pointor position
|
|
@@ -13565,7 +13572,7 @@ class FocusModule {
|
|
|
13565
13572
|
}
|
|
13566
13573
|
else if (isNullOrUndefined(document.getElementById(this.parent.element.id + '_dialog'))) {
|
|
13567
13574
|
e.preventDefault();
|
|
13568
|
-
ganttObj.addRecord(undefined, this.parent.editSettings.newRowPosition);
|
|
13575
|
+
ganttObj.addRecord(undefined, this.parent.editSettings.newRowPosition, this.parent.selectedRowIndex);
|
|
13569
13576
|
const focussedElement = ganttObj.element;
|
|
13570
13577
|
focussedElement.focus();
|
|
13571
13578
|
}
|
|
@@ -14463,7 +14470,9 @@ let Gantt = class Gantt extends Component {
|
|
|
14463
14470
|
this.wireEvents();
|
|
14464
14471
|
this.notify('initPredessorDialog', {});
|
|
14465
14472
|
}
|
|
14466
|
-
this.
|
|
14473
|
+
if (!this.isFromOnPropertyChange) {
|
|
14474
|
+
this.splitterModule.updateSplitterPosition();
|
|
14475
|
+
}
|
|
14467
14476
|
// if (this.gridLines === 'Vertical' || this.gridLines === 'Both') {
|
|
14468
14477
|
// this.renderChartVerticalLines();
|
|
14469
14478
|
// }
|
|
@@ -14475,6 +14484,8 @@ let Gantt = class Gantt extends Component {
|
|
|
14475
14484
|
removeClass(ganttChartElement.querySelectorAll('.e-critical-milestone'), criticalMilestone);
|
|
14476
14485
|
removeClass(this.element.querySelectorAll('.e-connector-line'), criticalConnectorLineSVG);
|
|
14477
14486
|
removeClass(this.element.querySelectorAll('.e-connector-line-arrow'), criticalConnectorArrowSVG);
|
|
14487
|
+
const innerDivs = document.querySelector('.e-gantt-child-taskbar-inner-div');
|
|
14488
|
+
innerDivs.style.outlineColor = "";
|
|
14478
14489
|
}
|
|
14479
14490
|
wireEvents() {
|
|
14480
14491
|
if (this.allowKeyboard) {
|
|
@@ -15184,6 +15195,7 @@ let Gantt = class Gantt extends Component {
|
|
|
15184
15195
|
break;
|
|
15185
15196
|
case 'projectStartDate':
|
|
15186
15197
|
case 'projectEndDate':
|
|
15198
|
+
this.timelineModule.isZoomToFit = false;
|
|
15187
15199
|
this.dataOperation.calculateProjectDates();
|
|
15188
15200
|
this.updateProjectDates(this.cloneProjectStartDate, this.cloneProjectEndDate, this.isTimelineRoundOff);
|
|
15189
15201
|
break;
|
|
@@ -16308,8 +16320,11 @@ let Gantt = class Gantt extends Component {
|
|
|
16308
16320
|
}
|
|
16309
16321
|
else {
|
|
16310
16322
|
this.editModule.addRecord(data, rowPosition, rowIndex);
|
|
16323
|
+
if (rowPosition === 'Bottom') {
|
|
16324
|
+
this.selectedRowIndex = rowIndex;
|
|
16325
|
+
}
|
|
16311
16326
|
if (rowPosition === 'Above' || rowPosition === 'Below' || rowPosition === 'Child') {
|
|
16312
|
-
this.currentSelection = data;
|
|
16327
|
+
this.currentSelection = !isNullOrUndefined(data) ? data : this.currentSelection;
|
|
16313
16328
|
}
|
|
16314
16329
|
}
|
|
16315
16330
|
}
|
|
@@ -16942,8 +16957,8 @@ let Gantt = class Gantt extends Component {
|
|
|
16942
16957
|
if (!isNullOrUndefined(taskfields.dependency)) {
|
|
16943
16958
|
data[taskfields.dependency] = null;
|
|
16944
16959
|
}
|
|
16945
|
-
const position =
|
|
16946
|
-
this.addRecord(data, position);
|
|
16960
|
+
const position = this.editSettings.newRowPosition;
|
|
16961
|
+
this.addRecord(data, position, this.selectedRowIndex);
|
|
16947
16962
|
}
|
|
16948
16963
|
else {
|
|
16949
16964
|
if (!rowData.hasChildRecords && !rowData.ganttProperties.isMilestone) {
|
|
@@ -18108,13 +18123,16 @@ class EditTooltip {
|
|
|
18108
18123
|
* @returns {void} .
|
|
18109
18124
|
*/
|
|
18110
18125
|
updateTooltipPosition(args) {
|
|
18111
|
-
|
|
18112
|
-
|
|
18113
|
-
|
|
18114
|
-
|
|
18115
|
-
|
|
18116
|
-
|
|
18117
|
-
|
|
18126
|
+
const parentWithZoomStyle = this.parent.element.closest('[style*="zoom"]');
|
|
18127
|
+
if (isNullOrUndefined(parentWithZoomStyle)) {
|
|
18128
|
+
const containerPosition = this.parent.getOffsetRect(this.parent.chartPane);
|
|
18129
|
+
const leftEnd = containerPosition.left + this.parent.chartPane.offsetWidth;
|
|
18130
|
+
let tooltipPositionX = args.element.offsetLeft;
|
|
18131
|
+
if (leftEnd < (tooltipPositionX + args.element.offsetWidth)) {
|
|
18132
|
+
tooltipPositionX += leftEnd - (tooltipPositionX + args.element.offsetWidth);
|
|
18133
|
+
}
|
|
18134
|
+
args.element.style.left = tooltipPositionX + 'px';
|
|
18135
|
+
}
|
|
18118
18136
|
args.element.style.visibility = 'visible';
|
|
18119
18137
|
}
|
|
18120
18138
|
/**
|
|
@@ -22596,7 +22614,7 @@ class DialogEdit {
|
|
|
22596
22614
|
}
|
|
22597
22615
|
}
|
|
22598
22616
|
else {
|
|
22599
|
-
this.parent.editModule.addRecord(this.addedRecord, this.parent.editSettings.newRowPosition);
|
|
22617
|
+
this.parent.editModule.addRecord(this.addedRecord, this.parent.editSettings.newRowPosition, this.parent.selectedRowIndex);
|
|
22600
22618
|
}
|
|
22601
22619
|
}
|
|
22602
22620
|
return true;
|
|
@@ -24183,6 +24201,11 @@ class Edit$2 {
|
|
|
24183
24201
|
const ganttPropByMapping = getSwapKey(ganttObj.columnMapping);
|
|
24184
24202
|
const scheduleFieldNames = [];
|
|
24185
24203
|
let isScheduleValueUpdated = false;
|
|
24204
|
+
if (!isNullOrUndefined(ganttData[tasks.milestone])) {
|
|
24205
|
+
if (ganttData[tasks.milestone] === true) {
|
|
24206
|
+
ganttData[tasks.milestone] = false;
|
|
24207
|
+
}
|
|
24208
|
+
}
|
|
24186
24209
|
for (const key of Object.keys(data)) {
|
|
24187
24210
|
if ([tasks.startDate, tasks.endDate, tasks.duration].indexOf(key) !== -1) {
|
|
24188
24211
|
if (isNullOrUndefined(data[`${key}`]) && !ganttObj.allowUnscheduledTasks) {
|
|
@@ -24244,6 +24267,22 @@ class Edit$2 {
|
|
|
24244
24267
|
else if (key === tasks.cssClass) {
|
|
24245
24268
|
ganttPropKey = 'cssClass';
|
|
24246
24269
|
}
|
|
24270
|
+
else if (key === tasks.milestone) {
|
|
24271
|
+
ganttPropKey = 'isMilestone';
|
|
24272
|
+
if (!isNullOrUndefined(tasks.duration)) {
|
|
24273
|
+
const ganttProp = ganttData.ganttProperties;
|
|
24274
|
+
let durationValue = data[tasks.duration];
|
|
24275
|
+
if (value) {
|
|
24276
|
+
durationValue = 0;
|
|
24277
|
+
}
|
|
24278
|
+
else {
|
|
24279
|
+
durationValue = durationValue <= 0 ? 1 : durationValue;
|
|
24280
|
+
}
|
|
24281
|
+
ganttObj.setRecordValue(tasks.duration, durationValue, ganttData, true);
|
|
24282
|
+
ganttObj.setRecordValue('duration', durationValue, ganttProp, true);
|
|
24283
|
+
ganttObj.setRecordValue('taskData.' + tasks.duration, durationValue, ganttData);
|
|
24284
|
+
}
|
|
24285
|
+
}
|
|
24247
24286
|
else if ((key === tasks.segments) && (!isNullOrUndefined(ganttData.ganttProperties.segments))) {
|
|
24248
24287
|
ganttPropKey = 'segments';
|
|
24249
24288
|
/* eslint-disable-next-line */
|
|
@@ -26631,6 +26670,57 @@ class Edit$2 {
|
|
|
26631
26670
|
}
|
|
26632
26671
|
}
|
|
26633
26672
|
}
|
|
26673
|
+
/**
|
|
26674
|
+
* Method to update the values to client side from server side.
|
|
26675
|
+
*
|
|
26676
|
+
* @param {Object} e - Defines the new modified data from the server.
|
|
26677
|
+
* @param {ITaskAddedEventArgs} args - Defines the client side data.
|
|
26678
|
+
* @returns {void} .
|
|
26679
|
+
*/
|
|
26680
|
+
updateClientDataFromServer(e, args) {
|
|
26681
|
+
const serverReturnedValue = e.addedRecords[0];
|
|
26682
|
+
const _aLength = Object.keys(serverReturnedValue).length;
|
|
26683
|
+
for (let j = 0, _a = Object.keys(serverReturnedValue); j < _aLength; j++) {
|
|
26684
|
+
let key = _a[parseInt(j.toString(), 10)];
|
|
26685
|
+
args.data[`${key}`] = serverReturnedValue[`${key}`];
|
|
26686
|
+
}
|
|
26687
|
+
if (this.parent.taskFields.id !== null) {
|
|
26688
|
+
args.data.ganttProperties['taskId'] = serverReturnedValue[this.parent.taskFields.id];
|
|
26689
|
+
}
|
|
26690
|
+
if (this.parent.taskFields.name !== null) {
|
|
26691
|
+
args.data.ganttProperties['taskName'] = serverReturnedValue[this.parent.taskFields.name];
|
|
26692
|
+
}
|
|
26693
|
+
if (this.parent.taskFields.startDate !== null) {
|
|
26694
|
+
args.data.ganttProperties['startDate'] = serverReturnedValue[this.parent.taskFields.startDate];
|
|
26695
|
+
}
|
|
26696
|
+
if (this.parent.taskFields.endDate !== null) {
|
|
26697
|
+
args.data.ganttProperties['endDate'] = serverReturnedValue[this.parent.taskFields.endDate];
|
|
26698
|
+
}
|
|
26699
|
+
if (this.parent.taskFields.duration !== null) {
|
|
26700
|
+
args.data.ganttProperties['duration'] = parseInt(serverReturnedValue[this.parent.taskFields.duration]);
|
|
26701
|
+
}
|
|
26702
|
+
if (this.parent.taskFields.durationUnit !== null) {
|
|
26703
|
+
args.data.ganttProperties['durationUnit'] = serverReturnedValue[this.parent.taskFields.durationUnit];
|
|
26704
|
+
}
|
|
26705
|
+
if (this.parent.taskFields.progress !== null) {
|
|
26706
|
+
args.data.ganttProperties['progress'] = serverReturnedValue[this.parent.taskFields.progress];
|
|
26707
|
+
}
|
|
26708
|
+
if (this.parent.taskFields.dependency !== null) {
|
|
26709
|
+
args.data.ganttProperties['dependency'] = serverReturnedValue[this.parent.taskFields.dependency];
|
|
26710
|
+
}
|
|
26711
|
+
if (this.parent.taskFields.parentID !== null) {
|
|
26712
|
+
args.data.ganttProperties['parentID'] = serverReturnedValue[this.parent.taskFields.parentID];
|
|
26713
|
+
}
|
|
26714
|
+
if (this.parent.taskFields.baselineEndDate !== null) {
|
|
26715
|
+
args.data.ganttProperties['baselineEndDate'] = serverReturnedValue[this.parent.taskFields.baselineEndDate];
|
|
26716
|
+
}
|
|
26717
|
+
if (this.parent.taskFields.baselineStartDate !== null) {
|
|
26718
|
+
args.data.ganttProperties['baselineStartDate'] = serverReturnedValue[this.parent.taskFields.baselineStartDate];
|
|
26719
|
+
}
|
|
26720
|
+
if (this.parent.taskFields.resourceInfo !== null) {
|
|
26721
|
+
args.data.ganttProperties['resources'] = serverReturnedValue[this.parent.taskFields.resourceInfo];
|
|
26722
|
+
}
|
|
26723
|
+
}
|
|
26634
26724
|
/**
|
|
26635
26725
|
* Method to add new record.
|
|
26636
26726
|
*
|
|
@@ -26691,7 +26781,8 @@ class Edit$2 {
|
|
|
26691
26781
|
/* tslint:disable-next-line */
|
|
26692
26782
|
const query = this.parent.query instanceof Query ? this.parent.query : new Query();
|
|
26693
26783
|
const adaptor = data.adaptor;
|
|
26694
|
-
|
|
26784
|
+
const moduleName = adaptor.getModuleName();
|
|
26785
|
+
if (!(moduleName == "WebApiAdaptor" || moduleName == "ODataAdaptor" || moduleName == "ODataV4Adaptor") || data.dataSource.batchUrl) {
|
|
26695
26786
|
/* tslint:disable-next-line */
|
|
26696
26787
|
const crud = data.saveChanges(updatedData, this.parent.taskFields.id, null, query);
|
|
26697
26788
|
crud.then((e) => {
|
|
@@ -26701,6 +26792,7 @@ class Edit$2 {
|
|
|
26701
26792
|
this.parent.setRecordValue('taskData', e.addedRecords[0], args.data);
|
|
26702
26793
|
this.parent.setRecordValue(this.parent.taskFields.id, e.addedRecords[0][this.parent.taskFields.id], args.data);
|
|
26703
26794
|
this.parent.setRecordValue('rowUniqueID', e.addedRecords[0][this.parent.taskFields.id].toString(), args.data.ganttProperties, true);
|
|
26795
|
+
this.updateClientDataFromServer(e, args);
|
|
26704
26796
|
const idsIndex = this.parent.ids.indexOf(prevID);
|
|
26705
26797
|
if (idsIndex !== -1) {
|
|
26706
26798
|
this.parent.ids[idsIndex] = e.addedRecords[0][this.parent.taskFields.id].toString();
|
|
@@ -27975,8 +28067,13 @@ class Filter$1 {
|
|
|
27975
28067
|
break;
|
|
27976
28068
|
}
|
|
27977
28069
|
if (!isNullOrUndefined(this.parent.element.parentNode)) {
|
|
28070
|
+
if (parentNode.parentNode instanceof HTMLDocument) {
|
|
28071
|
+
break;
|
|
28072
|
+
}
|
|
27978
28073
|
parentNode = parentNode.parentNode;
|
|
27979
|
-
|
|
28074
|
+
if (parentNode.parentNode && parentNode.parentNode.style) {
|
|
28075
|
+
marginTop = parentNode.parentNode.style.marginTop;
|
|
28076
|
+
}
|
|
27980
28077
|
}
|
|
27981
28078
|
parentNodeTop = parentNode.getBoundingClientRect().top;
|
|
27982
28079
|
}
|
|
@@ -27988,6 +28085,9 @@ class Filter$1 {
|
|
|
27988
28085
|
break;
|
|
27989
28086
|
}
|
|
27990
28087
|
if (!isNullOrUndefined(this.parent.element.parentNode)) {
|
|
28088
|
+
if (parentNode.parentNode instanceof HTMLDocument) {
|
|
28089
|
+
break;
|
|
28090
|
+
}
|
|
27991
28091
|
parentNode = parentNode.parentNode;
|
|
27992
28092
|
marginLeft = parentNode.style.marginLeft;
|
|
27993
28093
|
}
|
|
@@ -30382,6 +30482,8 @@ class CriticalPath {
|
|
|
30382
30482
|
}
|
|
30383
30483
|
if (element.getElementsByClassName('e-gantt-child-taskbar-inner-div').length > 0) {
|
|
30384
30484
|
addClass(element.querySelectorAll('.e-gantt-child-taskbar-inner-div'), criticalChildTaskBarInnerDiv);
|
|
30485
|
+
const innerDivs = document.querySelector('.e-gantt-child-taskbar-inner-div');
|
|
30486
|
+
innerDivs.style.outlineColor = "";
|
|
30385
30487
|
}
|
|
30386
30488
|
if (element.getElementsByClassName('e-gantt-child-progressbar-inner-div').length > 0) {
|
|
30387
30489
|
addClass(element.querySelectorAll('.e-gantt-child-progressbar-inner-div'), taskClass);
|
|
@@ -30601,7 +30703,7 @@ class ContextMenu$2 {
|
|
|
30601
30703
|
taskfields = this.parent.taskFields;
|
|
30602
30704
|
if (!isNullOrUndefined(taskfields.duration)) {
|
|
30603
30705
|
const ganttProp = this.rowData.ganttProperties;
|
|
30604
|
-
data[taskfields.duration] =
|
|
30706
|
+
data[taskfields.duration] = data[taskfields.duration] <= 0 ? 1 : data[taskfields.duration];
|
|
30605
30707
|
}
|
|
30606
30708
|
else {
|
|
30607
30709
|
data[taskfields.startDate] = new Date(this.rowData.taskData[taskfields.startDate]);
|
|
@@ -30614,6 +30716,9 @@ class ContextMenu$2 {
|
|
|
30614
30716
|
data[taskfields.milestone] = false;
|
|
30615
30717
|
}
|
|
30616
30718
|
}
|
|
30719
|
+
if (data[taskfields.startDate]) {
|
|
30720
|
+
this.parent.setRecordValue(taskfields.startDate, this.rowData.ganttProperties.startDate, data, true);
|
|
30721
|
+
}
|
|
30617
30722
|
this.parent.updateRecordByID(data);
|
|
30618
30723
|
}
|
|
30619
30724
|
break;
|
|
@@ -33046,7 +33151,10 @@ class PdfTreeGridLayouter extends ElementLayouter {
|
|
|
33046
33151
|
row.cells.getCell(i + j).isCellMergeContinue = true;
|
|
33047
33152
|
}
|
|
33048
33153
|
}
|
|
33049
|
-
|
|
33154
|
+
let size = new SizeF(column.width, height);
|
|
33155
|
+
if (cell.columnSpan > 1) {
|
|
33156
|
+
size = new SizeF(cell.width, height);
|
|
33157
|
+
}
|
|
33050
33158
|
if (!this.checkIfDefaultFormat(column.format) && this.checkIfDefaultFormat(cell.style.format)) {
|
|
33051
33159
|
cell.style.format = column.format;
|
|
33052
33160
|
}
|
|
@@ -33468,12 +33576,15 @@ class PdfTreeGrid extends PdfLayoutElement {
|
|
|
33468
33576
|
colSpan = cell.columnSpan;
|
|
33469
33577
|
currentCellIndex = j;
|
|
33470
33578
|
cell.isCellMergeStart = true;
|
|
33579
|
+
let totalColumnWidth = this.columns.columns[currentCellIndex].width;
|
|
33471
33580
|
//set Column merges.
|
|
33472
33581
|
while (colSpan > 1) {
|
|
33473
33582
|
currentCellIndex++;
|
|
33474
33583
|
row.cells.getCell(currentCellIndex).isCellMergeContinue = true;
|
|
33475
33584
|
colSpan--;
|
|
33585
|
+
totalColumnWidth += this.columns.columns[currentCellIndex].width;
|
|
33476
33586
|
}
|
|
33587
|
+
cell.width = totalColumnWidth;
|
|
33477
33588
|
}
|
|
33478
33589
|
else if (cell.columnSpan === 1 && cell.rowSpan > 1) {
|
|
33479
33590
|
rowSpan = cell.rowSpan;
|
|
@@ -34708,7 +34819,8 @@ class ExportHelper {
|
|
|
34708
34819
|
row.height = pixelToPoint(this.parent.rowHeight);
|
|
34709
34820
|
this.copyStyles(this.ganttStyle.columnHeader, row.cells.getCell(0), row.isParentRow);
|
|
34710
34821
|
const count = this.columns.length;
|
|
34711
|
-
|
|
34822
|
+
row.cells.getCell(0).value = this.parent.localeObj.getConstant('emptyRecord');
|
|
34823
|
+
this.mergeCells(1, 0, count);
|
|
34712
34824
|
}
|
|
34713
34825
|
mergeCells(rowIndex, colIndex, lastColIndex) {
|
|
34714
34826
|
this.gantt.rows.getRow(rowIndex).cells.getCell(colIndex).columnSpan = lastColIndex;
|