@syncfusion/ej2-gantt 20.4.53 → 21.1.35
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 +27 -0
- package/README.md +1 -1
- 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 +1104 -450
- package/dist/es6/ej2-gantt.es2015.js.map +1 -1
- package/dist/es6/ej2-gantt.es5.js +1084 -430
- 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 +20 -20
- package/src/gantt/actions/cell-edit.js +8 -6
- package/src/gantt/actions/chart-scroll.d.ts +1 -0
- package/src/gantt/actions/chart-scroll.js +15 -4
- package/src/gantt/actions/connector-line-edit.js +39 -28
- package/src/gantt/actions/context-menu.js +5 -5
- package/src/gantt/actions/critical-path.js +10 -8
- package/src/gantt/actions/dependency.js +28 -12
- package/src/gantt/actions/dialog-edit.js +41 -21
- package/src/gantt/actions/edit.js +56 -55
- package/src/gantt/actions/filter.d.ts +2 -1
- package/src/gantt/actions/filter.js +88 -2
- package/src/gantt/actions/keyboard.js +0 -1
- package/src/gantt/actions/pdf-export.d.ts +3 -1
- package/src/gantt/actions/pdf-export.js +12 -6
- package/src/gantt/actions/rowdragdrop.js +2 -2
- package/src/gantt/actions/selection.js +5 -2
- package/src/gantt/actions/taskbar-edit.d.ts +5 -0
- package/src/gantt/actions/taskbar-edit.js +114 -10
- package/src/gantt/base/date-processor.js +78 -52
- package/src/gantt/base/gantt-chart.js +20 -4
- package/src/gantt/base/gantt-model.d.ts +43 -0
- package/src/gantt/base/gantt.d.ts +39 -1
- package/src/gantt/base/gantt.js +79 -33
- package/src/gantt/base/interface.d.ts +2 -0
- package/src/gantt/base/task-processor.js +133 -98
- package/src/gantt/base/tree-grid.js +31 -1
- package/src/gantt/base/utils.js +1 -1
- package/src/gantt/export/export-helper.js +6 -0
- package/src/gantt/renderer/chart-rows.d.ts +2 -0
- package/src/gantt/renderer/chart-rows.js +156 -24
- package/src/gantt/renderer/connector-line.js +50 -20
- package/src/gantt/renderer/edit-tooltip.js +0 -3
- package/src/gantt/renderer/event-marker.js +4 -1
- package/src/gantt/renderer/nonworking-day.js +4 -1
- package/src/gantt/renderer/timeline.js +3 -3
- package/src/gantt/renderer/tooltip.js +101 -33
- package/styles/bootstrap-dark.css +33 -10
- package/styles/bootstrap.css +31 -10
- package/styles/bootstrap4.css +28 -7
- package/styles/bootstrap5-dark.css +30 -9
- package/styles/bootstrap5.css +30 -9
- package/styles/fabric-dark.css +28 -7
- package/styles/fabric.css +28 -7
- package/styles/fluent-dark.css +56 -29
- package/styles/fluent.css +56 -29
- package/styles/gantt/_bootstrap-dark-definition.scss +5 -4
- package/styles/gantt/_bootstrap-definition.scss +5 -4
- package/styles/gantt/_bootstrap4-definition.scss +3 -2
- package/styles/gantt/_bootstrap5-definition.scss +15 -14
- package/styles/gantt/_fabric-dark-definition.scss +3 -2
- package/styles/gantt/_fabric-definition.scss +3 -2
- package/styles/gantt/_fluent-definition.scss +18 -17
- package/styles/gantt/_fusionnew-definition.scss +5 -4
- package/styles/gantt/_highcontrast-definition.scss +3 -2
- package/styles/gantt/_highcontrast-light-definition.scss +3 -2
- package/styles/gantt/_layout.scss +45 -13
- package/styles/gantt/_material-dark-definition.scss +3 -2
- package/styles/gantt/_material-definition.scss +3 -2
- package/styles/gantt/_tailwind-definition.scss +9 -8
- package/styles/gantt/_theme.scss +25 -6
- package/styles/gantt/bootstrap-dark.css +33 -10
- package/styles/gantt/bootstrap.css +31 -10
- package/styles/gantt/bootstrap4.css +28 -7
- package/styles/gantt/bootstrap5-dark.css +30 -9
- package/styles/gantt/bootstrap5.css +30 -9
- package/styles/gantt/fabric-dark.css +28 -7
- package/styles/gantt/fabric.css +28 -7
- package/styles/gantt/fluent-dark.css +56 -29
- package/styles/gantt/fluent.css +56 -29
- package/styles/gantt/highcontrast-light.css +28 -9
- package/styles/gantt/highcontrast.css +28 -7
- package/styles/gantt/material-dark.css +31 -14
- package/styles/gantt/material.css +28 -7
- package/styles/gantt/tailwind-dark.css +28 -7
- package/styles/gantt/tailwind.css +28 -7
- package/styles/highcontrast-light.css +28 -9
- package/styles/highcontrast.css +28 -7
- package/styles/material-dark.css +31 -14
- package/styles/material.css +28 -7
- package/styles/tailwind-dark.css +28 -7
- package/styles/tailwind.css +28 -7
- package/styles/gantt/_material3-definition.scss +0 -218
package/dist/global/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* filename: index.d.ts
|
|
3
|
-
* version :
|
|
3
|
+
* version : 21.1.35
|
|
4
4
|
* Copyright Syncfusion Inc. 2001 - 2020. All rights reserved.
|
|
5
5
|
* Use of this code is subject to the terms of our license.
|
|
6
6
|
* A copy of the current license can be obtained at any time by e-mailing
|
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"_from": "@syncfusion/ej2-gantt@*",
|
|
3
|
-
"_id": "@syncfusion/ej2-gantt@20.
|
|
3
|
+
"_id": "@syncfusion/ej2-gantt@20.7.1",
|
|
4
4
|
"_inBundle": false,
|
|
5
|
-
"_integrity": "sha512-
|
|
5
|
+
"_integrity": "sha512-xusD7L/4k3ly/aaw3IEltkg3GrgjmPzgY1xZfWLTVJTHgpP5I0N0bRWjs3hBYdTsw7L+GLfzsp9wIHqodMTV1w==",
|
|
6
6
|
"_location": "/@syncfusion/ej2-gantt",
|
|
7
7
|
"_phantomChildren": {},
|
|
8
8
|
"_requested": {
|
|
@@ -23,10 +23,10 @@
|
|
|
23
23
|
"/@syncfusion/ej2-react-gantt",
|
|
24
24
|
"/@syncfusion/ej2-vue-gantt"
|
|
25
25
|
],
|
|
26
|
-
"_resolved": "https://nexus.syncfusion.com/repository/ej2-
|
|
27
|
-
"_shasum": "
|
|
26
|
+
"_resolved": "https://nexus.syncfusion.com/repository/ej2-release/@syncfusion/ej2-gantt/-/ej2-gantt-20.7.1.tgz",
|
|
27
|
+
"_shasum": "dda6ec244c0713cc838f6bbfba0df524713591dd",
|
|
28
28
|
"_spec": "@syncfusion/ej2-gantt@*",
|
|
29
|
-
"_where": "/jenkins/workspace/
|
|
29
|
+
"_where": "/jenkins/workspace/elease-automation_release_21.1.1/packages/included",
|
|
30
30
|
"author": {
|
|
31
31
|
"name": "Syncfusion Inc."
|
|
32
32
|
},
|
|
@@ -35,20 +35,20 @@
|
|
|
35
35
|
},
|
|
36
36
|
"bundleDependencies": false,
|
|
37
37
|
"dependencies": {
|
|
38
|
-
"@syncfusion/ej2-base": "~
|
|
39
|
-
"@syncfusion/ej2-buttons": "~
|
|
40
|
-
"@syncfusion/ej2-calendars": "~
|
|
41
|
-
"@syncfusion/ej2-data": "~
|
|
42
|
-
"@syncfusion/ej2-dropdowns": "~
|
|
43
|
-
"@syncfusion/ej2-grids": "~
|
|
44
|
-
"@syncfusion/ej2-inputs": "~
|
|
45
|
-
"@syncfusion/ej2-layouts": "~
|
|
46
|
-
"@syncfusion/ej2-lists": "~
|
|
47
|
-
"@syncfusion/ej2-navigations": "~
|
|
48
|
-
"@syncfusion/ej2-notifications": "~
|
|
49
|
-
"@syncfusion/ej2-popups": "~
|
|
50
|
-
"@syncfusion/ej2-richtexteditor": "~
|
|
51
|
-
"@syncfusion/ej2-treegrid": "~
|
|
38
|
+
"@syncfusion/ej2-base": "~21.1.35",
|
|
39
|
+
"@syncfusion/ej2-buttons": "~21.1.35",
|
|
40
|
+
"@syncfusion/ej2-calendars": "~21.1.35",
|
|
41
|
+
"@syncfusion/ej2-data": "~21.1.35",
|
|
42
|
+
"@syncfusion/ej2-dropdowns": "~21.1.35",
|
|
43
|
+
"@syncfusion/ej2-grids": "~21.1.35",
|
|
44
|
+
"@syncfusion/ej2-inputs": "~21.1.35",
|
|
45
|
+
"@syncfusion/ej2-layouts": "~21.1.35",
|
|
46
|
+
"@syncfusion/ej2-lists": "~21.1.35",
|
|
47
|
+
"@syncfusion/ej2-navigations": "~21.1.35",
|
|
48
|
+
"@syncfusion/ej2-notifications": "~21.1.35",
|
|
49
|
+
"@syncfusion/ej2-popups": "~21.1.35",
|
|
50
|
+
"@syncfusion/ej2-richtexteditor": "~21.1.35",
|
|
51
|
+
"@syncfusion/ej2-treegrid": "~21.1.35"
|
|
52
52
|
},
|
|
53
53
|
"deprecated": false,
|
|
54
54
|
"description": "Essential JS 2 Gantt Component",
|
|
@@ -73,6 +73,6 @@
|
|
|
73
73
|
"url": "git+https://github.com/syncfusion/ej2-gantt.git"
|
|
74
74
|
},
|
|
75
75
|
"typings": "index.d.ts",
|
|
76
|
-
"version": "
|
|
76
|
+
"version": "21.1.35",
|
|
77
77
|
"sideEffects": false
|
|
78
78
|
}
|
|
@@ -50,8 +50,10 @@ var CellEdit = /** @class */ (function () {
|
|
|
50
50
|
}
|
|
51
51
|
if (data.hasChildRecords && ((field === taskSettings.endDate && ((!isNullOrUndefined(data['isManual']) &&
|
|
52
52
|
data['isManual'] === false) || this.parent.taskMode === 'Auto')) || field === taskSettings.duration
|
|
53
|
-
|| field === taskSettings.progress || field === taskSettings.work || field === 'taskType')) {
|
|
54
|
-
|
|
53
|
+
|| field === taskSettings.dependency || field === taskSettings.progress || field === taskSettings.work || field === 'taskType')) {
|
|
54
|
+
if ((field === taskSettings.dependency && !this.parent.allowParentDependency) || field !== taskSettings.dependency) {
|
|
55
|
+
args.cancel = true;
|
|
56
|
+
}
|
|
55
57
|
}
|
|
56
58
|
else {
|
|
57
59
|
var callBackPromise_1 = new Deferred();
|
|
@@ -101,7 +103,7 @@ var CellEdit = /** @class */ (function () {
|
|
|
101
103
|
};
|
|
102
104
|
CellEdit.prototype.isValueChange = function (args, field) {
|
|
103
105
|
var data = getValue('data', args);
|
|
104
|
-
var editedValue = data[field];
|
|
106
|
+
var editedValue = data["" + field];
|
|
105
107
|
var previousValue = getValue('previousData', args);
|
|
106
108
|
if ((isNOU(editedValue) && !isNOU(previousValue)) || (!isNOU(editedValue) && isNOU(previousValue))) {
|
|
107
109
|
return true;
|
|
@@ -269,7 +271,7 @@ var CellEdit = /** @class */ (function () {
|
|
|
269
271
|
var ganttSegments = [];
|
|
270
272
|
var segments = ganttProp.segments;
|
|
271
273
|
for (var i = 0; i < segments.length; i++) {
|
|
272
|
-
var segment = segments[i];
|
|
274
|
+
var segment = segments[parseInt(i.toString(), 10)];
|
|
273
275
|
var endDate = segment.endDate;
|
|
274
276
|
endDate = (!isNullOrUndefined(ganttProp.endDate)) && endDate.getTime() <
|
|
275
277
|
ganttProp.endDate.getTime() && i !== segments.length - 1 ? endDate : ganttProp.endDate;
|
|
@@ -468,7 +470,7 @@ var CellEdit = /** @class */ (function () {
|
|
|
468
470
|
}
|
|
469
471
|
}
|
|
470
472
|
if (!isNOU(index) && index !== -1) {
|
|
471
|
-
editedResources.push(previousResource[index]);
|
|
473
|
+
editedResources.push(previousResource[parseInt(index.toString(), 10)]);
|
|
472
474
|
}
|
|
473
475
|
else {
|
|
474
476
|
var resource = resourceData.filter(function (resourceInfo) {
|
|
@@ -530,7 +532,7 @@ var CellEdit = /** @class */ (function () {
|
|
|
530
532
|
CellEdit.prototype.typeEdited = function (args, editedObj) {
|
|
531
533
|
var key = 'taskType';
|
|
532
534
|
var ganttProb = args.data.ganttProperties;
|
|
533
|
-
var taskType = editedObj[key];
|
|
535
|
+
var taskType = editedObj["" + key];
|
|
534
536
|
this.parent.setRecordValue('taskType', taskType, ganttProb, true);
|
|
535
537
|
//this.parent.dataOperation.updateMappingData(args.data, 'taskType');
|
|
536
538
|
this.updateEditedRecord(args);
|
|
@@ -82,6 +82,7 @@ export declare class ChartScroll {
|
|
|
82
82
|
* To set scroll left for chart scroll container
|
|
83
83
|
*
|
|
84
84
|
* @param {number} scrollLeft - To set scroll left for scroll container
|
|
85
|
+
* @param {number} leftSign - specifies left sign
|
|
85
86
|
* @returns {void} .
|
|
86
87
|
*/
|
|
87
88
|
setScrollLeft(scrollLeft: number, leftSign?: number): void;
|
|
@@ -87,9 +87,19 @@ var ChartScroll = /** @class */ (function () {
|
|
|
87
87
|
var parent = this.parent;
|
|
88
88
|
setTimeout(function () {
|
|
89
89
|
parent.hideMaskRow();
|
|
90
|
+
if (parent.viewType === 'ResourceView' && !parent.allowTaskbarOverlap && parent.showOverAllocation) {
|
|
91
|
+
for (var i = 0; i < parent.currentViewData.length; i++) {
|
|
92
|
+
var tr = parent.chartRowsModule.ganttChartTableBody.childNodes[i];
|
|
93
|
+
if (tr['style'].display !== 'none' && parent.currentViewData[i].hasChildRecords && !parent.currentViewData[i].expanded) {
|
|
94
|
+
parent.treeGrid.getRowByIndex(i)['style'].height = tr['style'].height;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
parent.contentHeight = parent.enableRtl ? parent['element'].getElementsByClassName('e-content')[2].children[0]['offsetHeight'] :
|
|
98
|
+
parent['element'].getElementsByClassName('e-content')[0].children[0]['offsetHeight'];
|
|
99
|
+
document.getElementsByClassName('e-chart-rows-container')[0]['style'].height = parent.contentHeight + 'px';
|
|
100
|
+
}
|
|
90
101
|
}, 0);
|
|
91
102
|
};
|
|
92
|
-
;
|
|
93
103
|
ChartScroll.prototype.updateShimmer = function () {
|
|
94
104
|
var parent = this.parent;
|
|
95
105
|
setTimeout(function () {
|
|
@@ -129,11 +139,11 @@ var ChartScroll = /** @class */ (function () {
|
|
|
129
139
|
scrollArgs.scrollDirection = 'Horizontal';
|
|
130
140
|
scrollArgs.action = 'HorizontalScroll';
|
|
131
141
|
}
|
|
132
|
-
if ((scrollArgs.scrollDirection
|
|
142
|
+
if ((scrollArgs.scrollDirection !== 'Horizontal' && !isNullOrUndefined(scrollArgs.scrollDirection)) && this.parent.enableVirtualization === true && (this.parent.isToolBarClick
|
|
133
143
|
|| isNullOrUndefined(this.parent.isToolBarClick))) {
|
|
134
144
|
this.parent.isVirtualScroll = true;
|
|
135
145
|
if (this.parent.showIndicator || isNullOrUndefined(this.parent.showIndicator)) {
|
|
136
|
-
if (!this.parent.enableVirtualMaskRow && this.parent.enableVirtualization && this.parent.loadingIndicator.indicatorType ===
|
|
146
|
+
if (!this.parent.enableVirtualMaskRow && this.parent.enableVirtualization && this.parent.loadingIndicator.indicatorType === 'Spinner') {
|
|
137
147
|
this.updateSpinner();
|
|
138
148
|
}
|
|
139
149
|
}
|
|
@@ -177,11 +187,12 @@ var ChartScroll = /** @class */ (function () {
|
|
|
177
187
|
* To set scroll left for chart scroll container
|
|
178
188
|
*
|
|
179
189
|
* @param {number} scrollLeft - To set scroll left for scroll container
|
|
190
|
+
* @param {number} leftSign - specifies left sign
|
|
180
191
|
* @returns {void} .
|
|
181
192
|
*/
|
|
182
193
|
ChartScroll.prototype.setScrollLeft = function (scrollLeft, leftSign) {
|
|
183
194
|
if (leftSign) {
|
|
184
|
-
scrollLeft = leftSign
|
|
195
|
+
scrollLeft = leftSign === -1 && this.parent.enableRtl ? -scrollLeft : scrollLeft;
|
|
185
196
|
}
|
|
186
197
|
this.element.scrollLeft = scrollLeft;
|
|
187
198
|
this.parent.ganttChartModule.chartTimelineContainer.scrollLeft = this.element.scrollLeft;
|
|
@@ -141,9 +141,10 @@ var ConnectorLineEdit = /** @class */ (function () {
|
|
|
141
141
|
var from = 'from';
|
|
142
142
|
var to = 'to';
|
|
143
143
|
this.parent.connectorLineModule.removeConnectorLineById('parent' + predecessor[from] + 'child' + predecessor[to]);
|
|
144
|
-
parentGanttRecord = this.parent.connectorLineModule.getRecordByID(predecessor[from]);
|
|
145
|
-
childGanttRecord = this.parent.connectorLineModule.getRecordByID(predecessor[to]);
|
|
146
|
-
if (parentGanttRecord
|
|
144
|
+
parentGanttRecord = this.parent.connectorLineModule.getRecordByID(predecessor["" + from]);
|
|
145
|
+
childGanttRecord = this.parent.connectorLineModule.getRecordByID(predecessor["" + to]);
|
|
146
|
+
if ((!this.parent.allowParentDependency && (parentGanttRecord && parentGanttRecord.expanded === true) ||
|
|
147
|
+
(childGanttRecord && childGanttRecord.expanded === true)) || (this.parent.allowParentDependency && (parentGanttRecord || childGanttRecord))) {
|
|
147
148
|
connectorObj =
|
|
148
149
|
this.parent.predecessorModule.updateConnectorLineObject(parentGanttRecord, childGanttRecord, predecessor);
|
|
149
150
|
if (!isNullOrUndefined(connectorObj)) {
|
|
@@ -196,8 +197,8 @@ var ConnectorLineEdit = /** @class */ (function () {
|
|
|
196
197
|
if (!isNullOrUndefined(values[0])) {
|
|
197
198
|
var ids = this.parent.viewType === 'ResourceView' ? this.parent.getTaskIds() : this.parent.ids;
|
|
198
199
|
if (ids.indexOf(values[0]) === -1) {
|
|
199
|
-
if (values[0].indexOf(
|
|
200
|
-
match = values[0].split(
|
|
200
|
+
if (values[0].indexOf(' ') !== -1) {
|
|
201
|
+
match = values[0].split(' ');
|
|
201
202
|
if (match.length === 1) {
|
|
202
203
|
match = values[0].match(/(\d+|[A-z]+)/g);
|
|
203
204
|
}
|
|
@@ -276,7 +277,7 @@ var ConnectorLineEdit = /** @class */ (function () {
|
|
|
276
277
|
var parentRec = rec;
|
|
277
278
|
if (rec.parentItem) {
|
|
278
279
|
parentRec = this.parent.flatData.filter(function (item) {
|
|
279
|
-
return item.uniqueID
|
|
280
|
+
return item.uniqueID === rec.parentUniqueID;
|
|
280
281
|
})[0];
|
|
281
282
|
if (parentRec.parentItem) {
|
|
282
283
|
parentRec = this.getRootParent(parentRec);
|
|
@@ -357,11 +358,20 @@ var ConnectorLineEdit = /** @class */ (function () {
|
|
|
357
358
|
if (!isNullOrUndefined(predecessorString) && predecessorString.length > 0) {
|
|
358
359
|
predecessorIdArray = this.idFromPredecessor(predecessorString);
|
|
359
360
|
var _loop_2 = function (count) {
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
var
|
|
363
|
-
if (
|
|
364
|
-
|
|
361
|
+
//Check edited item has parent item in predecessor collection
|
|
362
|
+
if (!this_2.parent.allowParentDependency) {
|
|
363
|
+
var checkParent = this_2.checkParentRelation(ganttRecord, predecessorIdArray);
|
|
364
|
+
if (!checkParent) {
|
|
365
|
+
return { value: false };
|
|
366
|
+
}
|
|
367
|
+
}
|
|
368
|
+
else {
|
|
369
|
+
if (parseInt(predecessorIdArray[predecessorIdArray.length - 1]) !== ganttRecord[this_2.parent.taskFields.id]) {
|
|
370
|
+
var num = this_2.parent.ids.indexOf(predecessorIdArray[predecessorIdArray.length - 1]);
|
|
371
|
+
var fromRecord = this_2.parent.currentViewData[num];
|
|
372
|
+
if (fromRecord && ganttRecord) {
|
|
373
|
+
flag = this_2.validateParentPredecessor(fromRecord, ganttRecord);
|
|
374
|
+
}
|
|
365
375
|
}
|
|
366
376
|
}
|
|
367
377
|
// Check if predecessor exist more then one
|
|
@@ -602,7 +612,6 @@ var ConnectorLineEdit = /** @class */ (function () {
|
|
|
602
612
|
ConnectorLineEdit.prototype.applyPredecessorOption = function () {
|
|
603
613
|
var args = this.parent.currentEditedArgs;
|
|
604
614
|
var ganttRecord = args.data;
|
|
605
|
-
var parentData;
|
|
606
615
|
if (args.validateMode.respectLink) {
|
|
607
616
|
this.parent.editModule.reUpdatePreviousRecords();
|
|
608
617
|
this.parent.chartRowsModule.refreshRecords([args.data]);
|
|
@@ -612,7 +621,9 @@ var ConnectorLineEdit = /** @class */ (function () {
|
|
|
612
621
|
this.parent.editModule.updateEditedTask(args.editEventArgs);
|
|
613
622
|
}
|
|
614
623
|
else if (args.validateMode.preserveLinkWithEditing) {
|
|
615
|
-
this.
|
|
624
|
+
if (this.parent.UpdateOffsetOnTaskbarEdit) {
|
|
625
|
+
this.calculateOffset(ganttRecord);
|
|
626
|
+
}
|
|
616
627
|
this.parent.editModule.updateEditedTask(args.editEventArgs);
|
|
617
628
|
}
|
|
618
629
|
};
|
|
@@ -643,7 +654,7 @@ var ConnectorLineEdit = /** @class */ (function () {
|
|
|
643
654
|
var prevPredecessor = extend([], record.ganttProperties.predecessor, [], true);
|
|
644
655
|
var validPredecessor = this.parent.predecessorModule.getValidPredecessor(record);
|
|
645
656
|
for (var i = 0; i < validPredecessor.length; i++) {
|
|
646
|
-
var predecessor = validPredecessor[i];
|
|
657
|
+
var predecessor = validPredecessor[parseInt(i.toString(), 10)];
|
|
647
658
|
var parentTask = this.parent.connectorLineModule.getRecordByID(predecessor.from);
|
|
648
659
|
var offset = void 0;
|
|
649
660
|
if (isScheduledTask(parentTask.ganttProperties) && isScheduledTask(record.ganttProperties)) {
|
|
@@ -723,7 +734,7 @@ var ConnectorLineEdit = /** @class */ (function () {
|
|
|
723
734
|
var parentPredecessor = extend([], [], parentGanttRecord.ganttProperties.predecessor, true);
|
|
724
735
|
var index = getIndex(predecessor[i], 'from', prevPredecessor, 'to');
|
|
725
736
|
prevPredecessor.splice(index, 1);
|
|
726
|
-
var parentIndex = getIndex(predecessor[i], 'from', parentPredecessor, 'to');
|
|
737
|
+
var parentIndex = getIndex(predecessor[parseInt(i.toString(), 10)], 'from', parentPredecessor, 'to');
|
|
727
738
|
parentPredecessor.splice(parentIndex, 1);
|
|
728
739
|
this.parent.setRecordValue('predecessor', parentPredecessor, parentGanttRecord.ganttProperties, true);
|
|
729
740
|
}
|
|
@@ -834,41 +845,41 @@ var ConnectorLineEdit = /** @class */ (function () {
|
|
|
834
845
|
var violationType = null;
|
|
835
846
|
if (predecessor[i].type === 'FS') {
|
|
836
847
|
if (ganttTaskData.startDate < startDate) {
|
|
837
|
-
this.validationPredecessor.push(predecessor[i]);
|
|
848
|
+
this.validationPredecessor.push(predecessor[parseInt(i.toString(), 10)]);
|
|
838
849
|
violationType = 'taskBeforePredecessor_FS';
|
|
839
850
|
}
|
|
840
851
|
else if (ganttTaskData.startDate > startDate) {
|
|
841
|
-
this.validationPredecessor.push(predecessor[i]);
|
|
852
|
+
this.validationPredecessor.push(predecessor[parseInt(i.toString(), 10)]);
|
|
842
853
|
violationType = 'taskAfterPredecessor_FS';
|
|
843
854
|
}
|
|
844
855
|
}
|
|
845
856
|
else if (predecessor[i].type === 'SS') {
|
|
846
857
|
if (ganttTaskData.startDate < startDate) {
|
|
847
|
-
this.validationPredecessor.push(predecessor[i]);
|
|
858
|
+
this.validationPredecessor.push(predecessor[parseInt(i.toString(), 10)]);
|
|
848
859
|
violationType = 'taskBeforePredecessor_SS';
|
|
849
860
|
}
|
|
850
861
|
else if (ganttTaskData.startDate > startDate) {
|
|
851
|
-
this.validationPredecessor.push(predecessor[i]);
|
|
862
|
+
this.validationPredecessor.push(predecessor[parseInt(i.toString(), 10)]);
|
|
852
863
|
violationType = 'taskAfterPredecessor_SS';
|
|
853
864
|
}
|
|
854
865
|
}
|
|
855
866
|
else if (predecessor[i].type === 'FF') {
|
|
856
867
|
if (endDate <= parentGanttRecord.ganttProperties.endDate) {
|
|
857
|
-
this.validationPredecessor.push(predecessor[i]);
|
|
868
|
+
this.validationPredecessor.push(predecessor[parseInt(i.toString(), 10)]);
|
|
858
869
|
violationType = 'taskBeforePredecessor_FF';
|
|
859
870
|
}
|
|
860
871
|
else if (endDate > parentGanttRecord.ganttProperties.endDate) {
|
|
861
|
-
this.validationPredecessor.push(predecessor[i]);
|
|
872
|
+
this.validationPredecessor.push(predecessor[parseInt(i.toString(), 10)]);
|
|
862
873
|
violationType = 'taskAfterPredecessor_FF';
|
|
863
874
|
}
|
|
864
875
|
}
|
|
865
876
|
else if (predecessor[i].type === 'SF') {
|
|
866
877
|
if (endDate < parentGanttRecord.ganttProperties.startDate) {
|
|
867
|
-
this.validationPredecessor.push(predecessor[i]);
|
|
878
|
+
this.validationPredecessor.push(predecessor[parseInt(i.toString(), 10)]);
|
|
868
879
|
violationType = 'taskBeforePredecessor_SF';
|
|
869
880
|
}
|
|
870
881
|
else if (endDate >= parentGanttRecord.ganttProperties.startDate) {
|
|
871
|
-
this.validationPredecessor.push(predecessor[i]);
|
|
882
|
+
this.validationPredecessor.push(predecessor[parseInt(i.toString(), 10)]);
|
|
872
883
|
violationType = 'taskAfterPredecessor_SF';
|
|
873
884
|
}
|
|
874
885
|
}
|
|
@@ -899,13 +910,13 @@ var ConnectorLineEdit = /** @class */ (function () {
|
|
|
899
910
|
var prevPredecessor = prevData.ganttProperties.predecessor;
|
|
900
911
|
if (!isNullOrUndefined(prevPredecessor)) {
|
|
901
912
|
for (var p = 0; p < prevPredecessor.length; p++) {
|
|
902
|
-
var parentGanttRecord = this.parent.connectorLineModule.getRecordByID(prevPredecessor[p].from);
|
|
913
|
+
var parentGanttRecord = this.parent.connectorLineModule.getRecordByID(prevPredecessor[parseInt(p.toString(), 10)].from);
|
|
903
914
|
if (parentGanttRecord === data) {
|
|
904
|
-
data.ganttProperties.predecessor.push(prevPredecessor[p]);
|
|
915
|
+
data.ganttProperties.predecessor.push(prevPredecessor[parseInt(p.toString(), 10)]);
|
|
905
916
|
}
|
|
906
917
|
else {
|
|
907
918
|
var parentPredecessor = extend([], [], parentGanttRecord.ganttProperties.predecessor, true);
|
|
908
|
-
var parentIndex = getIndex(prevPredecessor[p], 'from', parentPredecessor, 'to');
|
|
919
|
+
var parentIndex = getIndex(prevPredecessor[parseInt(p.toString(), 10)], 'from', parentPredecessor, 'to');
|
|
909
920
|
if (parentIndex !== -1) {
|
|
910
921
|
parentPredecessor.splice(parentIndex, 1);
|
|
911
922
|
this.parent.setRecordValue('predecessor', parentPredecessor, parentGanttRecord.ganttProperties, true);
|
|
@@ -915,9 +926,9 @@ var ConnectorLineEdit = /** @class */ (function () {
|
|
|
915
926
|
}
|
|
916
927
|
if (!isNullOrUndefined(newPredecessor)) {
|
|
917
928
|
for (var n = 0; n < newPredecessor.length; n++) {
|
|
918
|
-
var parentGanttRecord = this.parent.connectorLineModule.getRecordByID(newPredecessor[n].from);
|
|
929
|
+
var parentGanttRecord = this.parent.connectorLineModule.getRecordByID(newPredecessor[parseInt(n.toString(), 10)].from);
|
|
919
930
|
var parentPredecessor = extend([], [], parentGanttRecord.ganttProperties.predecessor, true);
|
|
920
|
-
parentPredecessor.push(newPredecessor[n]);
|
|
931
|
+
parentPredecessor.push(newPredecessor[parseInt(n.toString(), 10)]);
|
|
921
932
|
this.parent.setRecordValue('predecessor', parentPredecessor, parentGanttRecord.ganttProperties, true);
|
|
922
933
|
}
|
|
923
934
|
}
|
|
@@ -336,7 +336,7 @@ var ContextMenu = /** @class */ (function () {
|
|
|
336
336
|
this.parent.selectionModule.selectRow(rowIndex);
|
|
337
337
|
}
|
|
338
338
|
if (!args.parentItem) {
|
|
339
|
-
this.rowData = this.parent.updatedRecords[rowIndex];
|
|
339
|
+
this.rowData = this.parent.updatedRecords[parseInt(rowIndex.toString(), 10)];
|
|
340
340
|
}
|
|
341
341
|
for (var _i = 0, _a = args.items; _i < _a.length; _i++) {
|
|
342
342
|
var item = _a[_i];
|
|
@@ -468,7 +468,7 @@ var ContextMenu = /** @class */ (function () {
|
|
|
468
468
|
this.parent.selectionModule.getSelectedRowCellIndexes().length === 1 ? true : false : false;
|
|
469
469
|
var prevRecord = this.parent.updatedRecords[this.parent.selectionModule.getSelectedRowIndexes()[0] - 1];
|
|
470
470
|
if (!this.parent.editSettings.allowEditing || index === 0 || index === -1 || !isSelected ||
|
|
471
|
-
this.parent.viewType === 'ResourceView' || this.parent.updatedRecords[index].level - prevRecord.level === 1) {
|
|
471
|
+
this.parent.viewType === 'ResourceView' || this.parent.updatedRecords[parseInt(index.toString(), 10)].level - prevRecord.level === 1) {
|
|
472
472
|
this.updateItemVisibility(item.text);
|
|
473
473
|
}
|
|
474
474
|
}
|
|
@@ -484,7 +484,7 @@ var ContextMenu = /** @class */ (function () {
|
|
|
484
484
|
var isSelect = this.parent.selectionModule ? this.parent.selectionModule.selectedRowIndexes.length === 1 ||
|
|
485
485
|
this.parent.selectionModule.getSelectedRowCellIndexes().length === 1 ? true : false : false;
|
|
486
486
|
if (!this.parent.editSettings.allowEditing || ind === -1 || ind === 0 || !isSelect ||
|
|
487
|
-
this.parent.viewType === 'ResourceView' || this.parent.updatedRecords[ind].level === 0) {
|
|
487
|
+
this.parent.viewType === 'ResourceView' || this.parent.updatedRecords[parseInt(ind.toString(), 10)].level === 0) {
|
|
488
488
|
this.updateItemVisibility(item.text);
|
|
489
489
|
}
|
|
490
490
|
}
|
|
@@ -494,7 +494,7 @@ var ContextMenu = /** @class */ (function () {
|
|
|
494
494
|
{
|
|
495
495
|
var taskSettings = this.parent.taskFields;
|
|
496
496
|
if (this.parent.readOnly || !taskbarElement || isNullOrUndefined(taskSettings.segments) ||
|
|
497
|
-
this.parent.currentViewData[rowIndex].hasChildRecords) {
|
|
497
|
+
this.parent.currentViewData[parseInt(rowIndex.toString(), 10)].hasChildRecords) {
|
|
498
498
|
this.updateItemVisibility(item.text);
|
|
499
499
|
}
|
|
500
500
|
break;
|
|
@@ -699,7 +699,7 @@ var ContextMenu = /** @class */ (function () {
|
|
|
699
699
|
};
|
|
700
700
|
ContextMenu.prototype.contextMenuOnClose = function (args) {
|
|
701
701
|
var parent = 'parentObj';
|
|
702
|
-
if (args.items.length > 0 && args.items[0][parent] instanceof Menu) {
|
|
702
|
+
if (args.items.length > 0 && args.items[0]["" + parent] instanceof Menu) {
|
|
703
703
|
this.revertItemStatus();
|
|
704
704
|
}
|
|
705
705
|
};
|
|
@@ -696,10 +696,10 @@ var CriticalPath = /** @class */ (function () {
|
|
|
696
696
|
var _loop_2 = function (i) {
|
|
697
697
|
var criticalData;
|
|
698
698
|
if (this_2.parent.viewType === 'ProjectView') {
|
|
699
|
-
criticalData = this_2.parent.
|
|
699
|
+
criticalData = this_2.parent.flatData[this_2.parent.ids.indexOf(criticalPathIds[i].toString())];
|
|
700
700
|
}
|
|
701
701
|
else {
|
|
702
|
-
var currentRecords = this_2.parent.
|
|
702
|
+
var currentRecords = this_2.parent.flatData.filter(function (data) {
|
|
703
703
|
return (data.ganttProperties.taskId).toString() === criticalPathIds[i].toString();
|
|
704
704
|
});
|
|
705
705
|
for (var i_1 = 0; i_1 < currentRecords.length; i_1++) {
|
|
@@ -712,16 +712,18 @@ var CriticalPath = /** @class */ (function () {
|
|
|
712
712
|
var element = this_2.parent.getRowByIndex(index);
|
|
713
713
|
var taskClass = void 0;
|
|
714
714
|
var columnFields = this_2.parent.taskFields;
|
|
715
|
-
if (criticalData.parentItem) {
|
|
715
|
+
if (criticalData && criticalData.parentItem) {
|
|
716
716
|
var parentRecord = this_2.parent.currentViewData.filter(function (data) {
|
|
717
717
|
return criticalData.parentItem.uniqueID === data.uniqueID;
|
|
718
718
|
});
|
|
719
|
-
var parentIndex = this_2.parent.
|
|
719
|
+
var parentIndex = this_2.parent.flatData.indexOf(parentRecord[0]);
|
|
720
720
|
var parentElement = this_2.parent.getRowByIndex(parentIndex);
|
|
721
|
-
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
|
|
721
|
+
if (parentElement) {
|
|
722
|
+
var parentTaskbarElement = parentElement.querySelectorAll('.e-taskbar-main-container');
|
|
723
|
+
for (var i_2 = 0; i_2 < parentTaskbarElement.length; i_2++) {
|
|
724
|
+
if (parentTaskbarElement[i_2].getAttribute('rowuniqueid') === criticalData['rowUniqueID']) {
|
|
725
|
+
addClass(parentTaskbarElement[i_2].querySelectorAll('.e-gantt-child-taskbar-inner-div'), cls.criticalChildTaskBarInnerDiv);
|
|
726
|
+
}
|
|
725
727
|
}
|
|
726
728
|
}
|
|
727
729
|
}
|
|
@@ -20,7 +20,9 @@ var Dependency = /** @class */ (function () {
|
|
|
20
20
|
for (var count = length; count >= 0; count--) {
|
|
21
21
|
var ganttData = predecessorTasks[count];
|
|
22
22
|
var ganttProp = ganttData.ganttProperties;
|
|
23
|
-
|
|
23
|
+
if ((!ganttData.hasChildRecords && !this.parent.allowParentDependency) || this.parent.allowParentDependency) {
|
|
24
|
+
this.ensurePredecessorCollectionHelper(ganttData, ganttProp);
|
|
25
|
+
}
|
|
24
26
|
}
|
|
25
27
|
};
|
|
26
28
|
/**
|
|
@@ -184,18 +186,26 @@ var Dependency = /** @class */ (function () {
|
|
|
184
186
|
offsetUnit: offsetUnits.durationUnit,
|
|
185
187
|
offset: offsetUnits.duration
|
|
186
188
|
};
|
|
187
|
-
var
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
if (_this.parent.connectorLineEditModule && toData && fromData) {
|
|
191
|
-
isValid = _this.parent.connectorLineEditModule.validateParentPredecessor(toData, fromData);
|
|
192
|
-
if (isValid)
|
|
189
|
+
var isOwnParent = _this.checkIsParent(match[0]);
|
|
190
|
+
if (!_this.parent.allowParentDependency) {
|
|
191
|
+
if (!isOwnParent) {
|
|
193
192
|
collection.push(obj);
|
|
193
|
+
}
|
|
194
194
|
}
|
|
195
195
|
else {
|
|
196
|
-
|
|
196
|
+
var fromData = _this.parent.connectorLineModule.getRecordByID(obj.to);
|
|
197
|
+
var toData = _this.parent.connectorLineModule.getRecordByID(obj.from);
|
|
198
|
+
var isValid = void 0;
|
|
199
|
+
if (_this.parent.connectorLineEditModule && toData && fromData) {
|
|
200
|
+
isValid = _this.parent.connectorLineEditModule.validateParentPredecessor(toData, fromData);
|
|
201
|
+
if (isValid)
|
|
202
|
+
collection.push(obj);
|
|
203
|
+
}
|
|
204
|
+
else {
|
|
205
|
+
collection.push(obj);
|
|
206
|
+
}
|
|
207
|
+
match.splice(0);
|
|
197
208
|
}
|
|
198
|
-
match.splice(0);
|
|
199
209
|
});
|
|
200
210
|
return collection;
|
|
201
211
|
};
|
|
@@ -318,7 +328,9 @@ var Dependency = /** @class */ (function () {
|
|
|
318
328
|
var length = predecessorsCollection.length;
|
|
319
329
|
for (var count = 0; count < length; count++) {
|
|
320
330
|
ganttRecord = predecessorsCollection[count];
|
|
321
|
-
|
|
331
|
+
if ((!ganttRecord.hasChildRecords && !this.parent.allowParentDependency) || this.parent.allowParentDependency) {
|
|
332
|
+
this.updatePredecessorHelper(ganttRecord, predecessorsCollection);
|
|
333
|
+
}
|
|
322
334
|
}
|
|
323
335
|
};
|
|
324
336
|
/**
|
|
@@ -367,12 +379,16 @@ var Dependency = /** @class */ (function () {
|
|
|
367
379
|
* @private
|
|
368
380
|
*/
|
|
369
381
|
Dependency.prototype.updatedRecordsDateByPredecessor = function () {
|
|
382
|
+
if (!this.parent.autoCalculateDateScheduling) {
|
|
383
|
+
return;
|
|
384
|
+
}
|
|
370
385
|
var flatData = this.parent.flatData;
|
|
371
386
|
var totLength = this.parent.flatData.length;
|
|
372
387
|
for (var count = 0; count < totLength; count++) {
|
|
373
388
|
if (flatData[count].ganttProperties.predecessorsName) {
|
|
374
389
|
this.validatePredecessorDates(flatData[count]);
|
|
375
|
-
if (flatData[count].hasChildRecords && this.parent.editModule && !this.parent.allowUnscheduledTasks
|
|
390
|
+
if (flatData[count].hasChildRecords && this.parent.editModule && !this.parent.allowUnscheduledTasks
|
|
391
|
+
&& this.parent.allowParentDependency) {
|
|
376
392
|
this.parent.editModule['updateChildItems'](flatData[count]);
|
|
377
393
|
}
|
|
378
394
|
}
|
|
@@ -417,7 +433,7 @@ var Dependency = /** @class */ (function () {
|
|
|
417
433
|
var predecessor = predecessors[count];
|
|
418
434
|
parentGanttRecord = this.parent.connectorLineModule.getRecordByID(predecessor.from);
|
|
419
435
|
record = this.parent.connectorLineModule.getRecordByID(predecessor.to);
|
|
420
|
-
if (this.parent.isLoad && this.parentPredecessors.indexOf(ganttRecord) == -1
|
|
436
|
+
if (this.parent.allowParentDependency && this.parent.isLoad && this.parentPredecessors.indexOf(ganttRecord) == -1
|
|
421
437
|
&& (ganttRecord.hasChildRecords || record.hasChildRecords)) {
|
|
422
438
|
this.parentPredecessors.push(ganttRecord);
|
|
423
439
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { remove, extend, isNullOrUndefined, createElement, getValue, setValue, closest } from '@syncfusion/ej2-base';
|
|
1
|
+
import { remove, extend, isNullOrUndefined, createElement, getValue, setValue, closest, SanitizeHtmlHelper } from '@syncfusion/ej2-base';
|
|
2
2
|
import { DataManager, DataUtil } from '@syncfusion/ej2-data';
|
|
3
3
|
import { Dialog } from '@syncfusion/ej2-popups';
|
|
4
4
|
import { Tab } from '@syncfusion/ej2-navigations';
|
|
@@ -877,7 +877,7 @@ var DialogEdit = /** @class */ (function () {
|
|
|
877
877
|
targetId = inputElement.querySelector('input').getAttribute('id');
|
|
878
878
|
inputElement = inputElement.querySelector('#' + targetId);
|
|
879
879
|
}
|
|
880
|
-
else if (!isNullOrUndefined(args.event) && !isNullOrUndefined(args.event.path[1])
|
|
880
|
+
else if (!isNullOrUndefined(args.event) && !isNullOrUndefined(args.event.path) && !isNullOrUndefined(args.event.path)[1]) {
|
|
881
881
|
inputElement = args.event.path[1];
|
|
882
882
|
targetId = inputElement.querySelector('input').getAttribute('id');
|
|
883
883
|
inputElement = inputElement.querySelector('#' + targetId);
|
|
@@ -918,6 +918,9 @@ var DialogEdit = /** @class */ (function () {
|
|
|
918
918
|
if (!isNullOrUndefined(tasks.startDate) && tasks.startDate !== colName) {
|
|
919
919
|
this.updateScheduleFields(dialog, ganttProp, 'startDate');
|
|
920
920
|
}
|
|
921
|
+
if (tasks.endDate === colName && !isNullOrUndefined(ganttProp.startDate) && !isNullOrUndefined(args.value) && ganttProp.startDate.getTime() > args.value) {
|
|
922
|
+
this.updateScheduleFields(dialog, ganttProp, 'endDate');
|
|
923
|
+
}
|
|
921
924
|
if (!isNullOrUndefined(tasks.endDate) && tasks.endDate !== colName) {
|
|
922
925
|
this.updateScheduleFields(dialog, ganttProp, 'endDate');
|
|
923
926
|
}
|
|
@@ -1108,6 +1111,9 @@ var DialogEdit = /** @class */ (function () {
|
|
|
1108
1111
|
if (taskSettings.endDate === columnName) {
|
|
1109
1112
|
if (value !== '') {
|
|
1110
1113
|
var endDate = this.parent.dateValidationModule.getDateFromFormat(value);
|
|
1114
|
+
if (isNullOrUndefined(ganttProp.startDate) && isNullOrUndefined(endDate) && ganttProp.startDate.getTime() > endDate.getTime()) {
|
|
1115
|
+
endDate = ganttProp.endDate;
|
|
1116
|
+
}
|
|
1111
1117
|
if (endDate.getHours() === 0 && ganttObj.defaultEndTime !== 86400) {
|
|
1112
1118
|
this.parent.dateValidationModule.setTime(ganttObj.defaultEndTime, endDate);
|
|
1113
1119
|
}
|
|
@@ -1490,6 +1496,9 @@ var DialogEdit = /** @class */ (function () {
|
|
|
1490
1496
|
item.content = this.renderGeneralTab(item.content);
|
|
1491
1497
|
}
|
|
1492
1498
|
else if (item.content === 'Dependency') {
|
|
1499
|
+
if (this.editedRecord.hasChildRecords && !this.parent.allowParentDependency) {
|
|
1500
|
+
item.disabled = true;
|
|
1501
|
+
}
|
|
1493
1502
|
item.content = this.renderPredecessorTab(item.content);
|
|
1494
1503
|
}
|
|
1495
1504
|
else if (item.content === 'Resources') {
|
|
@@ -1951,27 +1960,34 @@ var DialogEdit = /** @class */ (function () {
|
|
|
1951
1960
|
this.preTableCollection = [];
|
|
1952
1961
|
for (var i = 0; i < flatData.length; i++) {
|
|
1953
1962
|
var data = flatData[i];
|
|
1954
|
-
|
|
1955
|
-
|
|
1956
|
-
this.
|
|
1957
|
-
|
|
1958
|
-
|
|
1959
|
-
|
|
1960
|
-
|
|
1961
|
-
|
|
1962
|
-
|
|
1963
|
-
this.
|
|
1964
|
-
|
|
1963
|
+
if (this.parent.allowParentDependency) {
|
|
1964
|
+
var currentFlatData = data;
|
|
1965
|
+
if (data.parentUniqueID === this.beforeOpenArgs.rowData['uniqueID']) {
|
|
1966
|
+
this.isValidData = false;
|
|
1967
|
+
}
|
|
1968
|
+
else {
|
|
1969
|
+
do {
|
|
1970
|
+
if (currentFlatData.parentItem) {
|
|
1971
|
+
currentFlatData = this.parent.flatData[this.parent.ids.indexOf(currentFlatData.parentItem.taskId)];
|
|
1972
|
+
if (currentFlatData.uniqueID === this.beforeOpenArgs.rowData['uniqueID']) {
|
|
1973
|
+
this.isValidData = false;
|
|
1974
|
+
break;
|
|
1975
|
+
}
|
|
1965
1976
|
}
|
|
1966
|
-
}
|
|
1967
|
-
}
|
|
1968
|
-
|
|
1969
|
-
|
|
1970
|
-
|
|
1977
|
+
} while (currentFlatData.parentItem);
|
|
1978
|
+
}
|
|
1979
|
+
if (data.hasChildRecords && this.isValidData) {
|
|
1980
|
+
this.isValidData = this.isParentValid(data.childRecords);
|
|
1981
|
+
}
|
|
1982
|
+
if (!this.isValidData) {
|
|
1983
|
+
this.isValidData = true;
|
|
1984
|
+
continue;
|
|
1985
|
+
}
|
|
1971
1986
|
}
|
|
1972
|
-
|
|
1973
|
-
|
|
1974
|
-
|
|
1987
|
+
else {
|
|
1988
|
+
if (data.hasChildRecords) {
|
|
1989
|
+
continue;
|
|
1990
|
+
}
|
|
1975
1991
|
}
|
|
1976
1992
|
var taskId = this.parent.viewType === 'ResourceView' ? data.ganttProperties.taskId.toString()
|
|
1977
1993
|
: data.ganttProperties.rowUniqueID.toString();
|
|
@@ -2208,6 +2224,10 @@ var DialogEdit = /** @class */ (function () {
|
|
|
2208
2224
|
}
|
|
2209
2225
|
else {
|
|
2210
2226
|
tasksData[fieldName] = controlObj.value;
|
|
2227
|
+
if (this.parent.enableHtmlSanitizer && typeof (controlObj.value) === 'string') {
|
|
2228
|
+
controlObj.value = SanitizeHtmlHelper.sanitize(controlObj.value);
|
|
2229
|
+
tasksData[fieldName] = controlObj.value;
|
|
2230
|
+
}
|
|
2211
2231
|
}
|
|
2212
2232
|
}
|
|
2213
2233
|
}
|