@syncfusion/ej2-gantt 20.1.58 → 20.2.36
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 +37 -0
- package/dist/ej2-gantt.umd.min.js +2 -2
- package/dist/ej2-gantt.umd.min.js.map +1 -1
- package/dist/es6/ej2-gantt.es2015.js +1100 -74
- package/dist/es6/ej2-gantt.es2015.js.map +1 -1
- package/dist/es6/ej2-gantt.es5.js +1099 -71
- package/dist/es6/ej2-gantt.es5.js.map +1 -1
- package/dist/global/ej2-gantt.min.js +2 -2
- package/dist/global/ej2-gantt.min.js.map +1 -1
- package/dist/global/index.d.ts +1 -1
- package/package.json +18 -18
- package/src/gantt/actions/actions.d.ts +1 -0
- package/src/gantt/actions/actions.js +1 -0
- package/src/gantt/actions/cell-edit.js +5 -3
- package/src/gantt/actions/connector-line-edit.js +20 -6
- package/src/gantt/actions/context-menu.js +3 -4
- package/src/gantt/actions/critical-path.d.ts +26 -0
- package/src/gantt/actions/critical-path.js +735 -0
- package/src/gantt/actions/dependency.js +3 -0
- package/src/gantt/actions/dialog-edit.js +1 -1
- package/src/gantt/actions/edit.js +29 -3
- package/src/gantt/actions/filter.js +1 -1
- package/src/gantt/actions/keyboard.js +2 -2
- package/src/gantt/actions/selection.js +3 -0
- package/src/gantt/actions/taskbar-edit.js +6 -4
- package/src/gantt/actions/toolbar.js +22 -4
- package/src/gantt/base/css-constants.d.ts +12 -0
- package/src/gantt/base/css-constants.js +12 -0
- package/src/gantt/base/date-processor.d.ts +1 -1
- package/src/gantt/base/date-processor.js +8 -2
- package/src/gantt/base/enum.d.ts +3 -1
- package/src/gantt/base/gantt-chart.js +6 -2
- package/src/gantt/base/gantt-model.d.ts +8 -1
- package/src/gantt/base/gantt.d.ts +32 -1
- package/src/gantt/base/gantt.js +133 -5
- package/src/gantt/base/interface.d.ts +16 -0
- package/src/gantt/base/splitter.js +4 -0
- package/src/gantt/base/task-processor.js +19 -6
- package/src/gantt/base/tree-grid.js +1 -1
- package/src/gantt/export/export-helper.js +19 -6
- package/src/gantt/export/pdf-base/pdf-style/gantt-theme.js +16 -0
- package/src/gantt/renderer/chart-rows.js +16 -5
- package/src/gantt/renderer/nonworking-day.js +5 -2
- package/src/gantt/renderer/timeline.js +35 -14
- package/src/global.js +1 -1
- package/styles/bootstrap-dark.css +272 -14
- package/styles/bootstrap.css +271 -14
- package/styles/bootstrap4.css +273 -12
- package/styles/bootstrap5-dark.css +272 -15
- package/styles/bootstrap5.css +272 -15
- package/styles/fabric-dark.css +270 -12
- package/styles/fabric.css +276 -18
- package/styles/fluent-dark.css +272 -14
- package/styles/fluent.css +272 -14
- package/styles/gantt/_bootstrap-dark-definition.scss +59 -16
- package/styles/gantt/_bootstrap-definition.scss +57 -14
- package/styles/gantt/_bootstrap4-definition.scss +65 -21
- package/styles/gantt/_bootstrap5-definition.scss +55 -12
- package/styles/gantt/_fabric-dark-definition.scss +58 -15
- package/styles/gantt/_fabric-definition.scss +58 -15
- package/styles/gantt/_fluent-definition.scss +53 -10
- package/styles/gantt/_fusionnew-definition.scss +212 -0
- package/styles/gantt/_highcontrast-definition.scss +57 -14
- package/styles/gantt/_highcontrast-light-definition.scss +55 -12
- package/styles/gantt/_layout.scss +293 -7
- package/styles/gantt/_material-dark-definition.scss +60 -16
- package/styles/gantt/_material-definition.scss +65 -21
- package/styles/gantt/_material3-definition.scss +213 -0
- package/styles/gantt/_tailwind-definition.scss +52 -8
- package/styles/gantt/_theme.scss +56 -1
- package/styles/gantt/bootstrap-dark.css +272 -14
- package/styles/gantt/bootstrap.css +271 -14
- package/styles/gantt/bootstrap4.css +273 -12
- package/styles/gantt/bootstrap5-dark.css +272 -15
- package/styles/gantt/bootstrap5.css +272 -15
- package/styles/gantt/fabric-dark.css +270 -12
- package/styles/gantt/fabric.css +276 -18
- package/styles/gantt/fluent-dark.css +272 -14
- package/styles/gantt/fluent.css +272 -14
- package/styles/gantt/highcontrast-light.css +260 -13
- package/styles/gantt/highcontrast.css +271 -13
- package/styles/gantt/icons/_bootstrap-dark.scss +12 -1
- package/styles/gantt/icons/_bootstrap.scss +12 -1
- package/styles/gantt/icons/_bootstrap4.scss +12 -1
- package/styles/gantt/icons/_bootstrap5.scss +12 -0
- package/styles/gantt/icons/_fabric-dark.scss +12 -0
- package/styles/gantt/icons/_fabric.scss +12 -0
- package/styles/gantt/icons/_fluent.scss +12 -0
- package/styles/gantt/icons/_fusionnew.scss +120 -0
- package/styles/gantt/icons/_highcontrast.scss +12 -0
- package/styles/gantt/icons/_material-dark.scss +12 -0
- package/styles/gantt/icons/_material.scss +12 -0
- package/styles/gantt/icons/_material3.scss +124 -0
- package/styles/gantt/icons/_tailwind-dark.scss +12 -0
- package/styles/gantt/icons/_tailwind.scss +12 -0
- package/styles/gantt/material-dark.css +277 -12
- package/styles/gantt/material.css +279 -14
- package/styles/gantt/tailwind-dark.css +279 -15
- package/styles/gantt/tailwind.css +276 -12
- package/styles/highcontrast-light.css +260 -13
- package/styles/highcontrast.css +271 -13
- package/styles/material-dark.css +277 -12
- package/styles/material.css +279 -14
- package/styles/tailwind-dark.css +279 -15
- package/styles/tailwind.css +276 -12
|
@@ -588,6 +588,9 @@ var Dependency = /** @class */ (function () {
|
|
|
588
588
|
Dependency.prototype.updateConnectorLineObject = function (parentGanttRecord, childGanttRecord, predecessor) {
|
|
589
589
|
var connectorObj = this.parent.connectorLineModule.createConnectorLineObject(parentGanttRecord, childGanttRecord, predecessor);
|
|
590
590
|
if (connectorObj) {
|
|
591
|
+
if (childGanttRecord.isCritical && parentGanttRecord.isCritical) {
|
|
592
|
+
connectorObj.isCritical = true;
|
|
593
|
+
}
|
|
591
594
|
if ((this.parent.connectorLineIds.length > 0 && this.parent.connectorLineIds.indexOf(connectorObj.connectorLineId) === -1) ||
|
|
592
595
|
this.parent.connectorLineIds.length === 0) {
|
|
593
596
|
this.parent.updatedConnectorLineCollection.push(connectorObj);
|
|
@@ -919,7 +919,7 @@ var DialogEdit = /** @class */ (function () {
|
|
|
919
919
|
}
|
|
920
920
|
else if (isScheduledTask(ganttProp) || !isNullOrUndefined(ganttProp.startDate)) {
|
|
921
921
|
if (ganttData.ganttProperties.isMilestone && ganttData.ganttProperties.duration !== 0) {
|
|
922
|
-
this.parent.dateValidationModule.
|
|
922
|
+
this.parent.dateValidationModule.checkStartDate(ganttProp.startDate);
|
|
923
923
|
}
|
|
924
924
|
this.parent.dateValidationModule.calculateEndDate(ganttData);
|
|
925
925
|
}
|
|
@@ -472,6 +472,9 @@ var Edit = /** @class */ (function () {
|
|
|
472
472
|
}
|
|
473
473
|
if ((key === tasks.baselineStartDate || key === tasks.baselineEndDate) &&
|
|
474
474
|
(ganttData.ganttProperties.baselineStartDate && ganttData.ganttProperties.baselineEndDate)) {
|
|
475
|
+
ganttObj.setRecordValue('baselineStartDate', ganttObj.dataOperation.checkBaselineStartDate(ganttData.ganttProperties.baselineStartDate), ganttData.ganttProperties, true);
|
|
476
|
+
ganttObj.dataOperation.setTime(this.parent.defaultEndTime, ganttData.ganttProperties.baselineEndDate);
|
|
477
|
+
ganttObj.setRecordValue('baselineEndDate', ganttObj.dataOperation.checkBaselineEndDate(ganttData.ganttProperties.baselineEndDate), ganttData.ganttProperties, true);
|
|
475
478
|
ganttObj.setRecordValue('baselineLeft', ganttObj.dataOperation.calculateBaselineLeft(ganttData.ganttProperties), ganttData.ganttProperties, true);
|
|
476
479
|
ganttObj.setRecordValue('baselineWidth', ganttObj.dataOperation.calculateBaselineWidth(ganttData.ganttProperties), ganttData.ganttProperties, true);
|
|
477
480
|
}
|
|
@@ -1234,6 +1237,11 @@ var Edit = /** @class */ (function () {
|
|
|
1234
1237
|
eventArgs.taskBarEditAction = args.taskBarEditAction;
|
|
1235
1238
|
}
|
|
1236
1239
|
this.endEditAction(args);
|
|
1240
|
+
if (this.parent.enableCriticalPath) {
|
|
1241
|
+
var criticalModule = this.parent.criticalPathModule;
|
|
1242
|
+
criticalModule.showCriticalPath(true);
|
|
1243
|
+
criticalModule.criticalConnectorLine(criticalModule.criticalPathCollection, criticalModule.detailPredecessorCollection, true, criticalModule.predecessorCollectionTaskIds);
|
|
1244
|
+
}
|
|
1237
1245
|
this.parent.trigger('actionComplete', eventArgs);
|
|
1238
1246
|
}
|
|
1239
1247
|
else {
|
|
@@ -1568,6 +1576,8 @@ var Edit = /** @class */ (function () {
|
|
|
1568
1576
|
}
|
|
1569
1577
|
else {
|
|
1570
1578
|
this.deleteSelectedItems();
|
|
1579
|
+
var focusingElement = this.parent.element.querySelector('.e-treegrid');
|
|
1580
|
+
focusingElement.focus();
|
|
1571
1581
|
}
|
|
1572
1582
|
}
|
|
1573
1583
|
};
|
|
@@ -2438,7 +2448,17 @@ var Edit = /** @class */ (function () {
|
|
|
2438
2448
|
this.refreshRecordInImmutableMode();
|
|
2439
2449
|
}
|
|
2440
2450
|
};
|
|
2441
|
-
Edit.prototype.refreshRecordInImmutableMode = function () {
|
|
2451
|
+
Edit.prototype.refreshRecordInImmutableMode = function (data, dragged) {
|
|
2452
|
+
if (!dragged && !isNullOrUndefined(data)) {
|
|
2453
|
+
for (var i = data[0].index + 1; i < this.parent.currentViewData.length; i++) {
|
|
2454
|
+
if (data[0].level < this.parent.currentViewData[i].level) {
|
|
2455
|
+
this.parent.modifiedRecords.push(this.parent.currentViewData[i]);
|
|
2456
|
+
}
|
|
2457
|
+
else {
|
|
2458
|
+
break;
|
|
2459
|
+
}
|
|
2460
|
+
}
|
|
2461
|
+
}
|
|
2442
2462
|
var _loop_1 = function (i) {
|
|
2443
2463
|
var originalData = this_1.parent.modifiedRecords[i];
|
|
2444
2464
|
var treeIndex = this_1.parent.allowRowDragAndDrop ? 1 : 0;
|
|
@@ -2605,7 +2625,13 @@ var Edit = /** @class */ (function () {
|
|
|
2605
2625
|
var insertCrud = data_2.insert(updatedData_2[addedRecords], null, query_2);
|
|
2606
2626
|
insertCrud.then(function (e) {
|
|
2607
2627
|
var changedRecords = 'changedRecords';
|
|
2608
|
-
var addedRecords
|
|
2628
|
+
var addedRecords;
|
|
2629
|
+
if (!isNullOrUndefined(e[0])) {
|
|
2630
|
+
addedRecords = e[0];
|
|
2631
|
+
}
|
|
2632
|
+
else {
|
|
2633
|
+
addedRecords = updatedData_2['addedRecords'][0];
|
|
2634
|
+
}
|
|
2609
2635
|
/* tslint:disable-next-line */
|
|
2610
2636
|
var updateCrud = data_2.update(_this.parent.taskFields.id, updatedData_2[changedRecords], null, query_2);
|
|
2611
2637
|
updateCrud.then(function () {
|
|
@@ -3152,7 +3178,7 @@ var Edit = /** @class */ (function () {
|
|
|
3152
3178
|
this.parent.treeGrid.parentData = [];
|
|
3153
3179
|
this.parent.treeGrid.refresh();
|
|
3154
3180
|
if (this.parent.enableImmutableMode) {
|
|
3155
|
-
this.refreshRecordInImmutableMode();
|
|
3181
|
+
this.refreshRecordInImmutableMode(args.data, isDrag);
|
|
3156
3182
|
}
|
|
3157
3183
|
if (isDrag) {
|
|
3158
3184
|
args.requestType = 'rowDropped';
|
|
@@ -191,7 +191,7 @@ var Filter = /** @class */ (function () {
|
|
|
191
191
|
var ganttElement = closest(element, '#' + this.parent.element.id)
|
|
192
192
|
|| element.querySelector('#' + this.parent.element.id);
|
|
193
193
|
if ((!(this.filterMenuElement.contains(element)) && !isNullOrUndefined(ganttElement)) || (!(this.filterMenuElement.contains(element)) && (isNullOrUndefined(datePickerElement))
|
|
194
|
-
&& (isNullOrUndefined(dateTimePickerElement)) && ((element.nodeName === 'DIV') || (element.nodeName === 'HTML')))) {
|
|
194
|
+
&& (isNullOrUndefined(dateTimePickerElement)) && ((element.nodeName === 'DIV') || (element.nodeName === 'HTML') || (element.nodeName === 'SPAN') || (element.nodeName === 'BUTTON')))) {
|
|
195
195
|
remove(this.filterMenuElement);
|
|
196
196
|
this.parent.treeGrid.grid.notify('filter-menu-close', { isOpen: false });
|
|
197
197
|
this.filterMenuElement = null;
|
|
@@ -170,8 +170,8 @@ var FocusModule = /** @class */ (function () {
|
|
|
170
170
|
break;
|
|
171
171
|
}
|
|
172
172
|
case 'delete':
|
|
173
|
-
if (ganttObj.selectionModule && ganttObj.editModule &&
|
|
174
|
-
(ganttObj.editModule.dialogModule.dialogObj &&
|
|
173
|
+
if (ganttObj.selectionModule && ganttObj.editModule && ganttObj.editModule.dialogModule &&
|
|
174
|
+
(!ganttObj.editModule.dialogModule.dialogObj || (ganttObj.editModule.dialogModule.dialogObj &&
|
|
175
175
|
!ganttObj.editModule.dialogModule.dialogObj.visible)) && (!ganttObj.editSettings.allowTaskbarEditing
|
|
176
176
|
|| (ganttObj.editSettings.allowTaskbarEditing && !ganttObj.editModule.taskbarEditModule.touchEdit))) {
|
|
177
177
|
if ((ganttObj.selectionSettings.mode !== 'Cell' && ganttObj.selectionModule.selectedRowIndexes.length)
|
|
@@ -467,6 +467,9 @@ var Selection = /** @class */ (function () {
|
|
|
467
467
|
this.popUpClickHandler(e);
|
|
468
468
|
if (this.parent.selectionSettings.mode !== 'Cell' && isSelected) {
|
|
469
469
|
if (closest(e.target, 'tr.e-chart-row')) {
|
|
470
|
+
if (this.parent.enableVirtualization) {
|
|
471
|
+
this.parent.treeGrid.grid.selectionModule.isInteracted = true;
|
|
472
|
+
}
|
|
470
473
|
this.highlightSelectedRows(e, true);
|
|
471
474
|
}
|
|
472
475
|
else {
|
|
@@ -342,9 +342,7 @@ var TaskbarEdit = /** @class */ (function (_super) {
|
|
|
342
342
|
addClass([element], [cls.activeParentTask]);
|
|
343
343
|
}
|
|
344
344
|
}
|
|
345
|
-
|
|
346
|
-
addClass(this.parent.ganttChartModule.scrollElement.querySelectorAll('.' + cls.connectorLineContainer), [cls.connectorLineZIndex]);
|
|
347
|
-
}
|
|
345
|
+
addClass(this.parent.ganttChartModule.scrollElement.querySelectorAll('.' + cls.connectorLineContainer), [cls.connectorLineZIndex]);
|
|
348
346
|
if (!isNullOrUndefined(this.parent.taskFields.dependency)
|
|
349
347
|
&& (element.querySelector('.' + cls.connectorPointLeft)
|
|
350
348
|
|| element.parentElement.querySelector('.' + cls.connectorPointLeft))
|
|
@@ -608,7 +606,7 @@ var TaskbarEdit = /** @class */ (function (_super) {
|
|
|
608
606
|
this.timerCount = this.parent.ganttChartModule.scrollObject.previousScroll.left;
|
|
609
607
|
this.startScrollTimer('left');
|
|
610
608
|
}
|
|
611
|
-
else if (isConnectorLineEdit && ((mouseY +
|
|
609
|
+
else if (isConnectorLineEdit && ((mouseY + 80) >
|
|
612
610
|
containerPosition.top + this.parent.ganttChartModule.chartBodyContainer.offsetHeight)) {
|
|
613
611
|
this.timerCount = this.parent.ganttChartModule.scrollObject.previousScroll.top;
|
|
614
612
|
this.startScrollTimer('bottom');
|
|
@@ -1486,6 +1484,10 @@ var TaskbarEdit = /** @class */ (function (_super) {
|
|
|
1486
1484
|
else {
|
|
1487
1485
|
this.parent.isOnEdit = false;
|
|
1488
1486
|
this.cancelTaskbarEditActionInMouseLeave();
|
|
1487
|
+
if (this.parent.enableCriticalPath && this.parent.criticalPathModule) {
|
|
1488
|
+
var criticalModule = this.parent.criticalPathModule;
|
|
1489
|
+
criticalModule.criticalConnectorLine(criticalModule.criticalPathCollection, criticalModule.detailPredecessorCollection, true, criticalModule.predecessorCollectionTaskIds);
|
|
1490
|
+
}
|
|
1489
1491
|
}
|
|
1490
1492
|
}
|
|
1491
1493
|
if (this.parent.viewType === 'ResourceView' && this.parent.enableMultiTaskbar && !isNullOrUndefined(this.taskBarEditElement)) {
|
|
@@ -8,7 +8,7 @@ var Toolbar = /** @class */ (function () {
|
|
|
8
8
|
this.predefinedItems = {};
|
|
9
9
|
this.items = ['Add', 'Edit', 'Update', 'Delete', 'Cancel', 'ExpandAll', 'CollapseAll', 'Search',
|
|
10
10
|
'PrevTimeSpan', 'NextTimeSpan', 'ZoomIn', 'ZoomOut', 'ZoomToFit', 'ExcelExport',
|
|
11
|
-
'CsvExport', 'PdfExport', 'Indent', 'Outdent'];
|
|
11
|
+
'CsvExport', 'PdfExport', 'Indent', 'Outdent', 'CriticalPath'];
|
|
12
12
|
this.parent = parent;
|
|
13
13
|
this.id = this.parent.element.id;
|
|
14
14
|
this.parent.on('ui-toolbarupdate', this.propertyChanged, this);
|
|
@@ -32,11 +32,19 @@ var Toolbar = /** @class */ (function () {
|
|
|
32
32
|
}
|
|
33
33
|
var preItems = ['Add', 'Edit', 'Update', 'Delete', 'Cancel', 'ExpandAll', 'CollapseAll',
|
|
34
34
|
'PrevTimeSpan', 'NextTimeSpan', 'ZoomIn', 'ZoomOut', 'ZoomToFit', 'ExcelExport', 'CsvExport',
|
|
35
|
-
'PdfExport', 'Indent', 'Outdent'];
|
|
35
|
+
'PdfExport', 'Indent', 'Outdent', 'CriticalPath'];
|
|
36
36
|
for (var _i = 0, preItems_1 = preItems; _i < preItems_1.length; _i++) {
|
|
37
37
|
var item = preItems_1[_i];
|
|
38
|
-
var itemStr =
|
|
39
|
-
var localeName =
|
|
38
|
+
var itemStr = void 0;
|
|
39
|
+
var localeName = void 0;
|
|
40
|
+
if (item === 'CriticalPath') {
|
|
41
|
+
itemStr = "critical-path";
|
|
42
|
+
localeName = "criticalPath";
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
itemStr = item.toLowerCase();
|
|
46
|
+
localeName = item[0].toLowerCase() + item.slice(1);
|
|
47
|
+
}
|
|
40
48
|
this.predefinedItems[item] = {
|
|
41
49
|
id: this.parent.element.id + '_' + itemStr, prefixIcon: 'e-' + itemStr,
|
|
42
50
|
text: this.parent.isAdaptive ? '' : this.parent.localeObj.getConstant(localeName),
|
|
@@ -240,6 +248,14 @@ var Toolbar = /** @class */ (function () {
|
|
|
240
248
|
gObj.indent();
|
|
241
249
|
}
|
|
242
250
|
break;
|
|
251
|
+
case gID + '_critical-path':
|
|
252
|
+
if (gObj.enableCriticalPath) {
|
|
253
|
+
gObj.enableCriticalPath = false;
|
|
254
|
+
}
|
|
255
|
+
else {
|
|
256
|
+
gObj.enableCriticalPath = true;
|
|
257
|
+
}
|
|
258
|
+
break;
|
|
243
259
|
case gID + '_outdent':
|
|
244
260
|
if (gObj.editModule && gObj.selectionModule.getSelectedRecords().length) {
|
|
245
261
|
gObj.outdent();
|
|
@@ -419,6 +435,8 @@ var Toolbar = /** @class */ (function () {
|
|
|
419
435
|
disableItems.push(gID + '_edit');
|
|
420
436
|
disableItems.push(gID + '_update');
|
|
421
437
|
disableItems.push(gID + '_cancel');
|
|
438
|
+
disableItems.push(gID + '_indent');
|
|
439
|
+
disableItems.push(gID + '_outdent');
|
|
422
440
|
}
|
|
423
441
|
for (var e = 0; e < enableItems.length; e++) {
|
|
424
442
|
var index = void 0;
|
|
@@ -36,8 +36,12 @@ export declare const parentProgressBarInnerDiv: string;
|
|
|
36
36
|
export declare const taskLabel: string;
|
|
37
37
|
export declare const childTaskBarInnerDiv: string;
|
|
38
38
|
export declare const childProgressBarInnerDiv: string;
|
|
39
|
+
export declare const criticalChildTaskBarInnerDiv: string;
|
|
40
|
+
export declare const criticalChildProgressBarInnerDiv: string;
|
|
39
41
|
export declare const milestoneTop: string;
|
|
40
42
|
export declare const milestoneBottom: string;
|
|
43
|
+
export declare const criticalMilestoneTop: string;
|
|
44
|
+
export declare const criticalMilestoneBottom: string;
|
|
41
45
|
export declare const baselineBar: string;
|
|
42
46
|
export declare const baselineMilestoneContainer: string;
|
|
43
47
|
export declare const baselineMilestoneDiv: string;
|
|
@@ -73,6 +77,7 @@ export declare const traceManualUnscheduledTask: string;
|
|
|
73
77
|
export declare const traceParentTaskBar: string;
|
|
74
78
|
export declare const traceParentProgressBar: string;
|
|
75
79
|
export declare const traceUnscheduledTask: string;
|
|
80
|
+
export declare const criticalUnscheduledTask: string;
|
|
76
81
|
export declare const taskIndicatorDiv: string;
|
|
77
82
|
export declare const leftResizeGripper: string;
|
|
78
83
|
export declare const rightResizeGripper: string;
|
|
@@ -95,13 +100,19 @@ export declare const unscheduledMilestoneBottom: string;
|
|
|
95
100
|
export declare const dependencyViewContainer: string;
|
|
96
101
|
export declare const connectorLineContainer: string;
|
|
97
102
|
export declare const connectorLine: string;
|
|
103
|
+
export declare const criticalConnectorLine: string;
|
|
104
|
+
export declare const criticalConnectorLineRightArrow: string;
|
|
105
|
+
export declare const criticalConnectorLineLeftArrow: string;
|
|
98
106
|
export declare const connectorLineRightArrow: string;
|
|
99
107
|
export declare const connectorLineLeftArrow: string;
|
|
100
108
|
export declare const connectorLineZIndex: string;
|
|
101
109
|
export declare const connectorLineHover: string;
|
|
110
|
+
export declare const criticalConnectorLineHover: string;
|
|
102
111
|
export declare const connectorLineHoverZIndex: string;
|
|
103
112
|
export declare const connectorLineRightArrowHover: string;
|
|
104
113
|
export declare const connectorLineLeftArrowHover: string;
|
|
114
|
+
export declare const criticalConnectorLineRightArrowHover: string;
|
|
115
|
+
export declare const criticalConnectorLineLeftArrowHover: string;
|
|
105
116
|
export declare const connectorTouchPoint: string;
|
|
106
117
|
export declare const connectorPointLeft: string;
|
|
107
118
|
export declare const connectorPointRight: string;
|
|
@@ -127,6 +138,7 @@ export declare const editIcon: string;
|
|
|
127
138
|
export declare const indentIcon: string;
|
|
128
139
|
export declare const outdentIcon: string;
|
|
129
140
|
export declare const addIcon: string;
|
|
141
|
+
export declare const criticalPathIcon: string;
|
|
130
142
|
export declare const addAboveIcon: string;
|
|
131
143
|
export declare const addBelowIcon: string;
|
|
132
144
|
export declare const activeParentTask: string;
|
|
@@ -38,8 +38,12 @@ export var parentProgressBarInnerDiv = 'e-gantt-parent-progressbar-inner-div';
|
|
|
38
38
|
export var taskLabel = 'e-task-label';
|
|
39
39
|
export var childTaskBarInnerDiv = 'e-gantt-child-taskbar-inner-div';
|
|
40
40
|
export var childProgressBarInnerDiv = 'e-gantt-child-progressbar-inner-div';
|
|
41
|
+
export var criticalChildTaskBarInnerDiv = 'e-gantt-child-critical-taskbar-inner-div';
|
|
42
|
+
export var criticalChildProgressBarInnerDiv = 'e-gantt-child-critical-progressbar-inner-div';
|
|
41
43
|
export var milestoneTop = 'e-milestone-top';
|
|
42
44
|
export var milestoneBottom = 'e-milestone-bottom';
|
|
45
|
+
export var criticalMilestoneTop = 'e-critical-milestone-top';
|
|
46
|
+
export var criticalMilestoneBottom = 'e-critical-milestone-bottom';
|
|
43
47
|
export var baselineBar = 'e-baseline-bar';
|
|
44
48
|
export var baselineMilestoneContainer = 'e-baseline-gantt-milestone-container';
|
|
45
49
|
export var baselineMilestoneDiv = 'e-baseline-gantt-milestone';
|
|
@@ -75,6 +79,7 @@ export var traceManualUnscheduledTask = 'e-gantt-unscheduled-manualtask';
|
|
|
75
79
|
export var traceParentTaskBar = 'e-gantt-parent-taskbar';
|
|
76
80
|
export var traceParentProgressBar = 'e-gantt-parent-progressbar';
|
|
77
81
|
export var traceUnscheduledTask = 'e-gantt-unscheduled-task';
|
|
82
|
+
export var criticalUnscheduledTask = 'e-gantt-critical-unscheduled-taskbar';
|
|
78
83
|
export var taskIndicatorDiv = 'e-indicator-span';
|
|
79
84
|
export var leftResizeGripper = 'e-left-resize-gripper';
|
|
80
85
|
export var rightResizeGripper = 'e-right-resize-gripper';
|
|
@@ -102,13 +107,19 @@ export var unscheduledMilestoneBottom = 'e-unscheduled-milestone-bottom';
|
|
|
102
107
|
export var dependencyViewContainer = 'e-gantt-dependency-view-container';
|
|
103
108
|
export var connectorLineContainer = 'e-connector-line-container';
|
|
104
109
|
export var connectorLine = 'e-line';
|
|
110
|
+
export var criticalConnectorLine = 'e-criticalconnector-line';
|
|
111
|
+
export var criticalConnectorLineRightArrow = 'e-criticalconnector-line-right-arrow';
|
|
112
|
+
export var criticalConnectorLineLeftArrow = 'e-criticalconnector-line-left-arrow';
|
|
105
113
|
export var connectorLineRightArrow = 'e-connector-line-right-arrow';
|
|
106
114
|
export var connectorLineLeftArrow = 'e-connector-line-left-arrow';
|
|
107
115
|
export var connectorLineZIndex = 'e-connector-line-z-index';
|
|
108
116
|
export var connectorLineHover = 'e-connector-line-hover';
|
|
117
|
+
export var criticalConnectorLineHover = 'e-critical-connector-line-hover';
|
|
109
118
|
export var connectorLineHoverZIndex = 'e-connector-line-hover-z-index';
|
|
110
119
|
export var connectorLineRightArrowHover = 'e-connector-line-right-arrow-hover';
|
|
111
120
|
export var connectorLineLeftArrowHover = 'e-connector-line-left-arrow-hover';
|
|
121
|
+
export var criticalConnectorLineRightArrowHover = 'e-critical-connector-line-right-arrow-hover';
|
|
122
|
+
export var criticalConnectorLineLeftArrowHover = 'e-critical-connector-line-left-arrow-hover';
|
|
112
123
|
export var connectorTouchPoint = 'e-connectortouchpoint';
|
|
113
124
|
export var connectorPointLeft = 'e-connectorpoint-left';
|
|
114
125
|
export var connectorPointRight = 'e-connectorpoint-right';
|
|
@@ -135,6 +146,7 @@ export var editIcon = 'e-edit';
|
|
|
135
146
|
export var indentIcon = 'e-indent';
|
|
136
147
|
export var outdentIcon = 'e-outdent';
|
|
137
148
|
export var addIcon = 'e-add';
|
|
149
|
+
export var criticalPathIcon = 'e-critical-path';
|
|
138
150
|
export var addAboveIcon = 'e-add-above';
|
|
139
151
|
export var addBelowIcon = 'e-add-below';
|
|
140
152
|
//Predecessor touch mode
|
|
@@ -48,7 +48,7 @@ export declare class DateProcessor {
|
|
|
48
48
|
* @returns {Date} .
|
|
49
49
|
* @private
|
|
50
50
|
*/
|
|
51
|
-
checkBaselineEndDate(date: Date): Date;
|
|
51
|
+
checkBaselineEndDate(date: Date, ganttProp?: ITaskData): Date;
|
|
52
52
|
/**
|
|
53
53
|
* To calculate start date value from duration and end date
|
|
54
54
|
*
|
|
@@ -189,7 +189,7 @@ var DateProcessor = /** @class */ (function () {
|
|
|
189
189
|
* @returns {Date} .
|
|
190
190
|
* @private
|
|
191
191
|
*/
|
|
192
|
-
DateProcessor.prototype.checkBaselineEndDate = function (date) {
|
|
192
|
+
DateProcessor.prototype.checkBaselineEndDate = function (date, ganttProp) {
|
|
193
193
|
if (isNullOrUndefined(date)) {
|
|
194
194
|
return null;
|
|
195
195
|
}
|
|
@@ -199,7 +199,7 @@ var DateProcessor = /** @class */ (function () {
|
|
|
199
199
|
if (hour > this.parent.defaultEndTime) {
|
|
200
200
|
this.setTime(this.parent.defaultEndTime, cloneDate);
|
|
201
201
|
}
|
|
202
|
-
else if (hour <= this.parent.defaultStartTime) {
|
|
202
|
+
else if (hour <= this.parent.defaultStartTime && !ganttProp.isMilestone) {
|
|
203
203
|
cloneDate.setDate(cloneDate.getDate() - 1);
|
|
204
204
|
this.setTime(this.parent.defaultEndTime, cloneDate);
|
|
205
205
|
}
|
|
@@ -1188,6 +1188,12 @@ var DateProcessor = /** @class */ (function () {
|
|
|
1188
1188
|
*/
|
|
1189
1189
|
DateProcessor.prototype.calculateProjectDates = function (editArgs) {
|
|
1190
1190
|
var _this = this;
|
|
1191
|
+
if (this.parent.isLoad && this.parent.enablePersistence &&
|
|
1192
|
+
this.parent.cloneProjectStartDate && this.parent.cloneProjectEndDate) {
|
|
1193
|
+
this.parent.cloneProjectStartDate = this.getDateFromFormat(this.parent.cloneProjectStartDate);
|
|
1194
|
+
this.parent.cloneProjectEndDate = this.getDateFromFormat(this.parent.cloneProjectEndDate);
|
|
1195
|
+
return;
|
|
1196
|
+
}
|
|
1191
1197
|
var sDate = typeof this.parent.projectStartDate === 'string' ?
|
|
1192
1198
|
new Date(this.parent.projectStartDate) : this.parent.projectStartDate;
|
|
1193
1199
|
var eDate = typeof this.parent.projectEndDate === 'string' ?
|
package/src/gantt/base/enum.d.ts
CHANGED
|
@@ -59,7 +59,9 @@ export declare type ToolbarItem =
|
|
|
59
59
|
/** To indent a selected record */
|
|
60
60
|
'Indent' |
|
|
61
61
|
/** To outdent a selected record */
|
|
62
|
-
'Outdent'
|
|
62
|
+
'Outdent' |
|
|
63
|
+
/** To enable critical path */
|
|
64
|
+
'CriticalPath';
|
|
63
65
|
/**
|
|
64
66
|
* Defines the schedule header mode. They are
|
|
65
67
|
* * none - Define the default mode header.
|
|
@@ -93,6 +93,10 @@ var GanttChart = /** @class */ (function () {
|
|
|
93
93
|
this.parent.predecessorModule.createConnectorLinesCollection();
|
|
94
94
|
}
|
|
95
95
|
this.parent.connectorLineModule.renderConnectorLines(this.parent.updatedConnectorLineCollection);
|
|
96
|
+
if (this.parent.enableCriticalPath) {
|
|
97
|
+
var crtiticalModule = this.parent.criticalPathModule;
|
|
98
|
+
this.parent.criticalPathModule.criticalConnectorLine(crtiticalModule.criticalPathCollection, crtiticalModule.detailPredecessorCollection, this.parent.enableCriticalPath, crtiticalModule.predecessorCollectionTaskIds);
|
|
99
|
+
}
|
|
96
100
|
if (this.parent.viewType === 'ResourceView' && this.parent.showOverAllocation) {
|
|
97
101
|
this.renderOverAllocationContainer();
|
|
98
102
|
}
|
|
@@ -968,7 +972,7 @@ var GanttChart = /** @class */ (function () {
|
|
|
968
972
|
this.parent.treeGrid.grid.notify('key-pressed', e);
|
|
969
973
|
}
|
|
970
974
|
}
|
|
971
|
-
if (!isInEditedState) {
|
|
975
|
+
if (!isNullOrUndefined(isInEditedState) && !this.parent.editModule.cellEditModule.isCellEdit) {
|
|
972
976
|
if (nextElement) {
|
|
973
977
|
if ($target.classList.contains('e-rowcell')) {
|
|
974
978
|
this.manageFocus($target, 'remove', false);
|
|
@@ -976,7 +980,7 @@ var GanttChart = /** @class */ (function () {
|
|
|
976
980
|
else {
|
|
977
981
|
this.manageFocus($target, 'remove', true);
|
|
978
982
|
}
|
|
979
|
-
if (nextElement.classList.contains('e-rowcell') && $target.nextElementSibling) {
|
|
983
|
+
if ((nextElement.classList.contains('e-rowcell') && $target.nextElementSibling) || $target.classList.contains('e-right-label-container')) {
|
|
980
984
|
if (!$target.classList.contains('e-rowcell')) {
|
|
981
985
|
this.parent.treeGrid.grid.notify('key-pressed', e);
|
|
982
986
|
var fmodule = getValue('focusModule', this.parent.treeGrid.grid);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Component, createElement, Complex, addClass, removeClass, Event, EmitType, formatUnit, Browser } from '@syncfusion/ej2-base';import { Internationalization, extend, getValue, isObjectArray, isObject, setValue, isUndefined } from '@syncfusion/ej2-base';import { Property, NotifyPropertyChanges, INotifyPropertyChanged, L10n, ModuleDeclaration, EventHandler } from '@syncfusion/ej2-base';import { isNullOrUndefined, KeyboardEvents, KeyboardEventArgs, Collection, append, remove } from '@syncfusion/ej2-base';import { createSpinner, showSpinner, hideSpinner, Dialog } from '@syncfusion/ej2-popups';import { RowDragEventArgs } from '@syncfusion/ej2-grids';import { TaskProcessor } from './task-processor';import { GanttChart } from './gantt-chart';import { Timeline } from '../renderer/timeline';import { GanttTreeGrid } from './tree-grid';import { Toolbar } from '../actions/toolbar';import { IGanttData, IWorkingTimeRange, IQueryTaskbarInfoEventArgs, BeforeTooltipRenderEventArgs, IDependencyEventArgs } from './interface';import { DataStateChangeEventArgs } from '@syncfusion/ej2-treegrid';import { ITaskbarEditedEventArgs, IParent, ITaskData, PdfColumnHeaderQueryCellInfoEventArgs } from './interface';import { ICollapsingEventArgs, CellEditArgs, PdfQueryTimelineCellInfoEventArgs } from './interface';import { IConnectorLineObject, IValidateArgs, IValidateMode, ITaskAddedEventArgs, IKeyPressedEventArgs } from './interface';import { PdfExportProperties, ISplitterResizedEventArgs } from './interface';import { ZoomEventArgs, IActionBeginEventArgs, CellSelectingEventArgs, RowDeselectEventArgs, PdfQueryCellInfoEventArgs } from './interface';import { ITimeSpanEventArgs, ZoomTimelineSettings, QueryCellInfoEventArgs, RowDataBoundEventArgs, RowSelectEventArgs } from './interface';import { TaskFieldsModel, TimelineSettingsModel, SplitterSettingsModel, SortSettings, SortSettingsModel } from '../models/models';import { EventMarkerModel, AddDialogFieldSettingsModel, EditDialogFieldSettingsModel, EditSettingsModel } from '../models/models';import { HolidayModel, DayWorkingTimeModel, FilterSettingsModel, SelectionSettingsModel } from '../models/models';import { TaskFields, TimelineSettings, Holiday, EventMarker, DayWorkingTime, EditSettings, SelectionSettings } from '../models/models';import { FilterSettings, SplitterSettings, TooltipSettings, LabelSettings, LabelSettingsModel } from '../models/models';import { SearchSettingsModel, SearchSettings, ResourceFields, ResourceFieldsModel } from '../models/models';import { ItemModel, ClickEventArgs } from '@syncfusion/ej2-navigations';import { DateProcessor } from './date-processor';import { ChartRows } from '../renderer/chart-rows';import { Dependency } from '../actions/dependency';import * as cls from './css-constants';import { Query, DataManager } from '@syncfusion/ej2-data';import { Column, ColumnModel } from '../models/column';import { TreeGrid, FilterSettingsModel as TreeGridFilterSettingModel } from '@syncfusion/ej2-treegrid';import { Sort } from '../actions/sort';import { CellSelectEventArgs, ISelectedCell, ContextMenuItemModel } from '@syncfusion/ej2-grids';import { CellDeselectEventArgs, IIndex, FailureEventArgs } from '@syncfusion/ej2-grids';import { HeaderCellInfoEventArgs, ColumnMenuClickEventArgs, ColumnMenuOpenEventArgs } from '@syncfusion/ej2-grids';import { ColumnMenuItemModel, ExcelQueryCellInfoEventArgs } from '@syncfusion/ej2-grids';import { ExcelExportProperties, ExcelExportCompleteArgs, ExcelHeaderQueryCellInfoEventArgs } from '@syncfusion/ej2-grids';import { RowDD } from '../actions/rowdragdrop';import { Filter } from '../actions/filter';import { PageEventArgs, FilterEventArgs, SortEventArgs, ResizeArgs, ColumnDragEventArgs, getActualProperties } from '@syncfusion/ej2-grids';import { RenderDayCellEventArgs } from '@syncfusion/ej2-calendars';import { ConnectorLine } from '../renderer/connector-line';import { ConnectorLineEdit } from '../actions/connector-line-edit';import { Edit } from '../actions/edit';import { Splitter } from './splitter';import { ResizeEventArgs, ResizingEventArgs } from '@syncfusion/ej2-layouts';import { TooltipSettingsModel } from '../models/tooltip-settings-model';import { Tooltip } from '../renderer/tooltip';import { ToolbarItem, ColumnMenuItem, RowPosition, DurationUnit, SortDirection } from './enum';import { GridLine, ContextMenuItem, ScheduleMode, ViewType } from './enum';import { Selection } from '../actions/selection';import { ExcelExport } from '../actions/excel-export';import { DayMarkers } from '../actions/day-markers';import { ContextMenu } from './../actions/context-menu';import { RowSelectingEventArgs } from './interface';import { ContextMenuOpenEventArgs as CMenuOpenEventArgs, ContextMenuClickEventArgs as CMenuClickEventArgs } from './interface';import { ColumnMenu } from '../actions/column-menu';import { ITaskbarClickEventArgs, RecordDoubleClickEventArgs, IMouseMoveEventArgs } from './interface';import { PdfExport } from '../actions/pdf-export';import { WorkUnit, TaskType } from './enum';import { FocusModule } from '../actions/keyboard';import { VirtualScroll } from '../actions/virtual-scroll';import { isCountRequired } from './utils';import { TaskbarEdit } from '../actions/taskbar-edit';
|
|
1
|
+
import { Component, createElement, Complex, addClass, removeClass, Event, EmitType, formatUnit, Browser } from '@syncfusion/ej2-base';import { Internationalization, extend, getValue, isObjectArray, isObject, setValue, isUndefined } from '@syncfusion/ej2-base';import { Property, NotifyPropertyChanges, INotifyPropertyChanged, L10n, ModuleDeclaration, EventHandler } from '@syncfusion/ej2-base';import { isNullOrUndefined, KeyboardEvents, KeyboardEventArgs, Collection, append, remove } from '@syncfusion/ej2-base';import { createSpinner, showSpinner, hideSpinner, Dialog } from '@syncfusion/ej2-popups';import { RowDragEventArgs, GridColumn } from '@syncfusion/ej2-grids';import { TaskProcessor } from './task-processor';import { GanttChart } from './gantt-chart';import { Timeline } from '../renderer/timeline';import { GanttTreeGrid } from './tree-grid';import { Toolbar } from '../actions/toolbar';import { CriticalPath } from '../actions/critical-path';import { IGanttData, IWorkingTimeRange, IQueryTaskbarInfoEventArgs, BeforeTooltipRenderEventArgs, IDependencyEventArgs } from './interface';import { DataStateChangeEventArgs } from '@syncfusion/ej2-treegrid';import { ITaskbarEditedEventArgs, IParent, ITaskData, PdfColumnHeaderQueryCellInfoEventArgs } from './interface';import { ICollapsingEventArgs, CellEditArgs, PdfQueryTimelineCellInfoEventArgs } from './interface';import { IConnectorLineObject, IValidateArgs, IValidateMode, ITaskAddedEventArgs, IKeyPressedEventArgs } from './interface';import { PdfExportProperties, ISplitterResizedEventArgs } from './interface';import { ZoomEventArgs, IActionBeginEventArgs, CellSelectingEventArgs, RowDeselectEventArgs, PdfQueryCellInfoEventArgs } from './interface';import { ITimeSpanEventArgs, ZoomTimelineSettings, QueryCellInfoEventArgs, RowDataBoundEventArgs, RowSelectEventArgs } from './interface';import { TaskFieldsModel, TimelineSettingsModel, SplitterSettingsModel, SortSettings, SortSettingsModel } from '../models/models';import { EventMarkerModel, AddDialogFieldSettingsModel, EditDialogFieldSettingsModel, EditSettingsModel } from '../models/models';import { HolidayModel, DayWorkingTimeModel, FilterSettingsModel, SelectionSettingsModel } from '../models/models';import { TaskFields, TimelineSettings, Holiday, EventMarker, DayWorkingTime, EditSettings, SelectionSettings } from '../models/models';import { FilterSettings, SplitterSettings, TooltipSettings, LabelSettings, LabelSettingsModel } from '../models/models';import { SearchSettingsModel, SearchSettings, ResourceFields, ResourceFieldsModel } from '../models/models';import { ItemModel, ClickEventArgs } from '@syncfusion/ej2-navigations';import { DateProcessor } from './date-processor';import { ChartRows } from '../renderer/chart-rows';import { Dependency } from '../actions/dependency';import * as cls from './css-constants';import { Query, DataManager } from '@syncfusion/ej2-data';import { Column, ColumnModel } from '../models/column';import { TreeGrid, FilterSettingsModel as TreeGridFilterSettingModel } from '@syncfusion/ej2-treegrid';import { Sort } from '../actions/sort';import { CellSelectEventArgs, ISelectedCell, ContextMenuItemModel } from '@syncfusion/ej2-grids';import { CellDeselectEventArgs, IIndex, FailureEventArgs } from '@syncfusion/ej2-grids';import { HeaderCellInfoEventArgs, ColumnMenuClickEventArgs, ColumnMenuOpenEventArgs } from '@syncfusion/ej2-grids';import { ColumnMenuItemModel, ExcelQueryCellInfoEventArgs } from '@syncfusion/ej2-grids';import { ExcelExportProperties, ExcelExportCompleteArgs, ExcelHeaderQueryCellInfoEventArgs } from '@syncfusion/ej2-grids';import { RowDD } from '../actions/rowdragdrop';import { Filter } from '../actions/filter';import { PageEventArgs, FilterEventArgs, SortEventArgs, ResizeArgs, ColumnDragEventArgs, getActualProperties } from '@syncfusion/ej2-grids';import { RenderDayCellEventArgs } from '@syncfusion/ej2-calendars';import { ConnectorLine } from '../renderer/connector-line';import { ConnectorLineEdit } from '../actions/connector-line-edit';import { Edit } from '../actions/edit';import { Splitter } from './splitter';import { ResizeEventArgs, ResizingEventArgs } from '@syncfusion/ej2-layouts';import { TooltipSettingsModel } from '../models/tooltip-settings-model';import { Tooltip } from '../renderer/tooltip';import { ToolbarItem, ColumnMenuItem, RowPosition, DurationUnit, SortDirection } from './enum';import { GridLine, ContextMenuItem, ScheduleMode, ViewType } from './enum';import { Selection } from '../actions/selection';import { ExcelExport } from '../actions/excel-export';import { DayMarkers } from '../actions/day-markers';import { ContextMenu } from './../actions/context-menu';import { RowSelectingEventArgs } from './interface';import { ContextMenuOpenEventArgs as CMenuOpenEventArgs, ContextMenuClickEventArgs as CMenuClickEventArgs } from './interface';import { ColumnMenu } from '../actions/column-menu';import { ITaskbarClickEventArgs, RecordDoubleClickEventArgs, IMouseMoveEventArgs } from './interface';import { PdfExport } from '../actions/pdf-export';import { WorkUnit, TaskType } from './enum';import { FocusModule } from '../actions/keyboard';import { VirtualScroll } from '../actions/virtual-scroll';import { isCountRequired } from './utils';import { TaskbarEdit } from '../actions/taskbar-edit';
|
|
2
2
|
import {ComponentModel} from '@syncfusion/ej2-base';
|
|
3
3
|
|
|
4
4
|
/**
|
|
@@ -519,6 +519,13 @@ export interface GanttModel extends ComponentModel{
|
|
|
519
519
|
*/
|
|
520
520
|
enableContextMenu?: boolean;
|
|
521
521
|
|
|
522
|
+
/**
|
|
523
|
+
* It highlights the critical tasks in the Gantt Chart that affect the project’s end date.
|
|
524
|
+
*
|
|
525
|
+
* @default false
|
|
526
|
+
*/
|
|
527
|
+
enableCriticalPath?: boolean;
|
|
528
|
+
|
|
522
529
|
/**
|
|
523
530
|
* `contextMenuItems` defines both built-in and custom context menu items.
|
|
524
531
|
* {% codeBlock src='gantt/contextMenuItems/index.md' %}{% endcodeBlock %}
|
|
@@ -10,6 +10,7 @@ import { GanttChart } from './gantt-chart';
|
|
|
10
10
|
import { Timeline } from '../renderer/timeline';
|
|
11
11
|
import { GanttTreeGrid } from './tree-grid';
|
|
12
12
|
import { Toolbar } from '../actions/toolbar';
|
|
13
|
+
import { CriticalPath } from '../actions/critical-path';
|
|
13
14
|
import { IGanttData, IWorkingTimeRange, IQueryTaskbarInfoEventArgs, BeforeTooltipRenderEventArgs, IDependencyEventArgs } from './interface';
|
|
14
15
|
import { DataStateChangeEventArgs } from '@syncfusion/ej2-treegrid';
|
|
15
16
|
import { ITaskbarEditedEventArgs, IParent, ITaskData, PdfColumnHeaderQueryCellInfoEventArgs } from './interface';
|
|
@@ -246,6 +247,10 @@ export declare class Gantt extends Component<HTMLElement> implements INotifyProp
|
|
|
246
247
|
* The `dayMarkersModule` is used to manipulate event markers operation in Gantt.
|
|
247
248
|
*/
|
|
248
249
|
dayMarkersModule: DayMarkers;
|
|
250
|
+
/**
|
|
251
|
+
* The `criticalPathModule` is used to determine the critical path in Gantt.
|
|
252
|
+
*/
|
|
253
|
+
criticalPathModule: CriticalPath;
|
|
249
254
|
/** @hidden */
|
|
250
255
|
isConnectorLineUpdate: boolean;
|
|
251
256
|
/** @hidden */
|
|
@@ -738,6 +743,12 @@ export declare class Gantt extends Component<HTMLElement> implements INotifyProp
|
|
|
738
743
|
* @default false
|
|
739
744
|
*/
|
|
740
745
|
enableContextMenu: boolean;
|
|
746
|
+
/**
|
|
747
|
+
* It highlights the critical tasks in the Gantt Chart that affect the project’s end date.
|
|
748
|
+
*
|
|
749
|
+
* @default false
|
|
750
|
+
*/
|
|
751
|
+
enableCriticalPath: boolean;
|
|
741
752
|
/**
|
|
742
753
|
* `contextMenuItems` defines both built-in and custom context menu items.
|
|
743
754
|
* {% codeBlock src='gantt/contextMenuItems/index.md' %}{% endcodeBlock %}
|
|
@@ -1374,6 +1385,7 @@ export declare class Gantt extends Component<HTMLElement> implements INotifyProp
|
|
|
1374
1385
|
* @returns {string} .
|
|
1375
1386
|
*/
|
|
1376
1387
|
getWorkString(work: number, workUnit: string): string;
|
|
1388
|
+
private updateTreeColumns;
|
|
1377
1389
|
/**
|
|
1378
1390
|
*
|
|
1379
1391
|
* @param {object} args .
|
|
@@ -1398,12 +1410,14 @@ export declare class Gantt extends Component<HTMLElement> implements INotifyProp
|
|
|
1398
1410
|
onPropertyChanged(newProp: GanttModel, oldProp: GanttModel): void;
|
|
1399
1411
|
private updateOverAllocationCotainer;
|
|
1400
1412
|
/**
|
|
1401
|
-
*
|
|
1413
|
+
* Returns the properties to be maintained in persisted state.
|
|
1402
1414
|
*
|
|
1403
1415
|
* @returns {string} .
|
|
1404
1416
|
* @private
|
|
1405
1417
|
*/
|
|
1406
1418
|
getPersistData(): string;
|
|
1419
|
+
private ignoreInArrays;
|
|
1420
|
+
private ignoreInColumn;
|
|
1407
1421
|
/**
|
|
1408
1422
|
* @returns {void} .
|
|
1409
1423
|
* @private
|
|
@@ -1432,6 +1446,8 @@ export declare class Gantt extends Component<HTMLElement> implements INotifyProp
|
|
|
1432
1446
|
* @returns {void} .
|
|
1433
1447
|
*/
|
|
1434
1448
|
sortColumn(columnName: string, direction: SortDirection, isMultiSort?: boolean): void;
|
|
1449
|
+
private mergePersistGanttData;
|
|
1450
|
+
private mergeColumns;
|
|
1435
1451
|
/**
|
|
1436
1452
|
* Clears all the sorted columns of the Gantt.
|
|
1437
1453
|
*
|
|
@@ -1781,6 +1797,21 @@ export declare class Gantt extends Component<HTMLElement> implements INotifyProp
|
|
|
1781
1797
|
* @public
|
|
1782
1798
|
*/
|
|
1783
1799
|
outdent(): void;
|
|
1800
|
+
/**
|
|
1801
|
+
* To render the critical path tasks in Gantt.
|
|
1802
|
+
*
|
|
1803
|
+
* @returns {void} .
|
|
1804
|
+
* @param {boolean} isCritical- whether to render critical path or not .
|
|
1805
|
+
* @public
|
|
1806
|
+
*/
|
|
1807
|
+
private showCriticalPath;
|
|
1808
|
+
/**
|
|
1809
|
+
* To get all the critical tasks in Gantt.
|
|
1810
|
+
*
|
|
1811
|
+
* @returns {IGanttData[]} .
|
|
1812
|
+
* @public
|
|
1813
|
+
*/
|
|
1814
|
+
getCriticalTasks(): IGanttData[];
|
|
1784
1815
|
/**
|
|
1785
1816
|
* To perform Zoom in action on Gantt timeline.
|
|
1786
1817
|
*
|