gantt-task-react-powern 0.4.96 → 0.4.97
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/dist/components/gantt/gantt.d.ts +1 -0
- package/dist/index.js +80 -53
- package/dist/index.js.map +1 -1
- package/dist/index.modern.js +80 -53
- package/dist/index.modern.js.map +1 -1
- package/package.json +1 -1
package/dist/index.modern.js
CHANGED
|
@@ -432,6 +432,18 @@ var TaskListTableDefault = function TaskListTableDefault(_ref) {
|
|
|
432
432
|
return t.id;
|
|
433
433
|
}));
|
|
434
434
|
}, [leafTasks]);
|
|
435
|
+
|
|
436
|
+
var hasSelectedAncestor = function hasSelectedAncestor(taskId, selectedSet, allTasks) {
|
|
437
|
+
var task = allTasks.find(function (t) {
|
|
438
|
+
return t.id === taskId;
|
|
439
|
+
});
|
|
440
|
+
if (!task) return false;
|
|
441
|
+
var parentWbs = getParentWbs(task.id);
|
|
442
|
+
if (!parentWbs) return false;
|
|
443
|
+
if (selectedSet.has(parentWbs)) return true;
|
|
444
|
+
return hasSelectedAncestor(parentWbs, selectedSet, allTasks);
|
|
445
|
+
};
|
|
446
|
+
|
|
435
447
|
return React.createElement("div", {
|
|
436
448
|
className: styles$1.taskListWrapper,
|
|
437
449
|
style: {
|
|
@@ -450,6 +462,7 @@ var TaskListTableDefault = function TaskListTableDefault(_ref) {
|
|
|
450
462
|
}
|
|
451
463
|
|
|
452
464
|
var isSelected = selectedTasks.includes(t.id);
|
|
465
|
+
var isAncestorSelected = hasSelectedAncestor(t.id, new Set(selectedTasks), tasks);
|
|
453
466
|
return React.createElement("div", {
|
|
454
467
|
className: t.type === "milestone" ? styles$1.taskListMilestoneRow : scheduleType === "lookAhead" ? styles$1.taskListLookAheadRow : styles$1.taskListTableRow,
|
|
455
468
|
style: {
|
|
@@ -475,6 +488,7 @@ var TaskListTableDefault = function TaskListTableDefault(_ref) {
|
|
|
475
488
|
}, React.createElement("input", {
|
|
476
489
|
type: "checkbox",
|
|
477
490
|
checked: isSelected,
|
|
491
|
+
disabled: isAncestorSelected,
|
|
478
492
|
onChange: function onChange(e) {
|
|
479
493
|
return onTaskSelect(t.id, e.target.checked);
|
|
480
494
|
}
|
|
@@ -755,15 +769,54 @@ var TaskList = function TaskList(_ref) {
|
|
|
755
769
|
}
|
|
756
770
|
}, [selectedTasks, tasks, onMultiSelect]);
|
|
757
771
|
|
|
772
|
+
var getDescendants = function getDescendants(taskId, allTasks) {
|
|
773
|
+
var task = allTasks.find(function (t) {
|
|
774
|
+
return t.id === taskId;
|
|
775
|
+
});
|
|
776
|
+
if (!task) return [];
|
|
777
|
+
var children = allTasks.filter(function (t) {
|
|
778
|
+
return getParentWbs(t.id) === taskId;
|
|
779
|
+
});
|
|
780
|
+
return children.flatMap(function (child) {
|
|
781
|
+
return [child.id].concat(getDescendants(child.id, allTasks));
|
|
782
|
+
});
|
|
783
|
+
};
|
|
784
|
+
|
|
785
|
+
var recursiveOpen = function recursiveOpen(taskId, allTasks) {
|
|
786
|
+
var task = allTasks.find(function (t) {
|
|
787
|
+
return t.id === taskId;
|
|
788
|
+
});
|
|
789
|
+
if (!task) return;
|
|
790
|
+
|
|
791
|
+
if (task.hideChildren === true) {
|
|
792
|
+
onExpanderClick(task);
|
|
793
|
+
}
|
|
794
|
+
|
|
795
|
+
var children = allTasks.filter(function (t) {
|
|
796
|
+
return getParentWbs(t.id) === taskId;
|
|
797
|
+
});
|
|
798
|
+
children.forEach(function (c) {
|
|
799
|
+
return recursiveOpen(c.id, allTasks);
|
|
800
|
+
});
|
|
801
|
+
};
|
|
802
|
+
|
|
758
803
|
var handleTaskSelect = function handleTaskSelect(taskId, selected) {
|
|
804
|
+
var descendants = getDescendants(taskId, tasks);
|
|
805
|
+
|
|
759
806
|
if (selected) {
|
|
760
807
|
setSelectedTasks(function (prev) {
|
|
761
|
-
|
|
808
|
+
var newSelected = new Set(prev);
|
|
809
|
+
newSelected.add(taskId);
|
|
810
|
+
descendants.forEach(function (d) {
|
|
811
|
+
return newSelected.add(d);
|
|
812
|
+
});
|
|
813
|
+
return Array.from(newSelected);
|
|
762
814
|
});
|
|
815
|
+
recursiveOpen(taskId, tasks);
|
|
763
816
|
} else {
|
|
764
817
|
setSelectedTasks(function (prev) {
|
|
765
818
|
return prev.filter(function (id) {
|
|
766
|
-
return id !== taskId;
|
|
819
|
+
return id !== taskId && !descendants.includes(id);
|
|
767
820
|
});
|
|
768
821
|
});
|
|
769
822
|
}
|
|
@@ -771,9 +824,19 @@ var TaskList = function TaskList(_ref) {
|
|
|
771
824
|
|
|
772
825
|
var handleSelectAll = function handleSelectAll(selected) {
|
|
773
826
|
if (selected) {
|
|
774
|
-
|
|
775
|
-
return task.id;
|
|
776
|
-
})
|
|
827
|
+
var topLevelTasks = tasks.filter(function (task) {
|
|
828
|
+
return !getParentWbs(task.id);
|
|
829
|
+
});
|
|
830
|
+
var newSelected = new Set();
|
|
831
|
+
topLevelTasks.forEach(function (task) {
|
|
832
|
+
newSelected.add(task.id);
|
|
833
|
+
var descendants = getDescendants(task.id, tasks);
|
|
834
|
+
descendants.forEach(function (d) {
|
|
835
|
+
return newSelected.add(d);
|
|
836
|
+
});
|
|
837
|
+
recursiveOpen(task.id, tasks);
|
|
838
|
+
});
|
|
839
|
+
setSelectedTasks(Array.from(newSelected));
|
|
777
840
|
} else {
|
|
778
841
|
setSelectedTasks([]);
|
|
779
842
|
}
|
|
@@ -2019,7 +2082,7 @@ var Bar = function Bar(_ref) {
|
|
|
2019
2082
|
var handleHeight = task.height / 2 - 1;
|
|
2020
2083
|
|
|
2021
2084
|
if (type == "planned") {
|
|
2022
|
-
if ((task === null || task === void 0 ? void 0 : task.x1) >= 0 && (task === null || task === void 0 ? void 0 : task.x2)
|
|
2085
|
+
if ((task === null || task === void 0 ? void 0 : task.x1) >= 0 && (task === null || task === void 0 ? void 0 : task.x2) >= 0) return React.createElement("g", {
|
|
2023
2086
|
className: styles$6.barWrapper,
|
|
2024
2087
|
tabIndex: 0
|
|
2025
2088
|
}, React.createElement(BarDisplay, {
|
|
@@ -2067,7 +2130,7 @@ var Bar = function Bar(_ref) {
|
|
|
2067
2130
|
className: styles$6.barWrapper,
|
|
2068
2131
|
tabIndex: 0
|
|
2069
2132
|
});
|
|
2070
|
-
} else if ((task === null || task === void 0 ? void 0 : task.actualx1) >= 0 && (task === null || task === void 0 ? void 0 : task.actualx2)
|
|
2133
|
+
} else if ((task === null || task === void 0 ? void 0 : task.actualx1) >= 0 && (task === null || task === void 0 ? void 0 : task.actualx2) >= 0) {
|
|
2071
2134
|
return React.createElement("g", {
|
|
2072
2135
|
className: styles$6.barWrapper,
|
|
2073
2136
|
tabIndex: 0
|
|
@@ -3393,7 +3456,6 @@ function getCriticalPaths(leafTasks) {
|
|
|
3393
3456
|
primaryLeaf = taskMap[primaryLeaf].next;
|
|
3394
3457
|
}
|
|
3395
3458
|
|
|
3396
|
-
console.debug(taskMap);
|
|
3397
3459
|
var secondaryLeaf;
|
|
3398
3460
|
var secondaryDuration = 0;
|
|
3399
3461
|
|
|
@@ -3420,54 +3482,14 @@ function getCriticalPaths(leafTasks) {
|
|
|
3420
3482
|
function computeCriticalPath(taskID, taskMap) {
|
|
3421
3483
|
var task = taskMap[taskID].task;
|
|
3422
3484
|
var dependents = taskMap[taskID].dependents;
|
|
3423
|
-
taskMap[taskID].start = task.start.getTime();
|
|
3424
3485
|
taskMap[taskID].end = task.end.getTime();
|
|
3425
|
-
var start = taskMap[taskID].start;
|
|
3426
|
-
|
|
3427
|
-
for (var _iterator = _createForOfIteratorHelperLoose(dependents), _step; !(_step = _iterator()).done;) {
|
|
3428
|
-
var _dependentTask$depend;
|
|
3429
3486
|
|
|
3430
|
-
|
|
3431
|
-
var
|
|
3432
|
-
var dependency = (_dependentTask$depend = dependentTask.dependencies) === null || _dependentTask$depend === void 0 ? void 0 : _dependentTask$depend.find(function (d) {
|
|
3433
|
-
return d.id === taskID;
|
|
3434
|
-
});
|
|
3435
|
-
console.debug(dependency);
|
|
3436
|
-
if (!dependency) continue;
|
|
3437
|
-
|
|
3438
|
-
switch (dependency.type) {
|
|
3439
|
-
case "FS":
|
|
3440
|
-
if (taskMap[depID].end > taskMap[taskID].end) {
|
|
3441
|
-
taskMap[taskID].next = depID;
|
|
3442
|
-
taskMap[taskID].end = taskMap[depID].end;
|
|
3443
|
-
}
|
|
3444
|
-
|
|
3445
|
-
break;
|
|
3446
|
-
|
|
3447
|
-
case "SS":
|
|
3448
|
-
if (taskMap[depID].start > start) {
|
|
3449
|
-
taskMap[taskID].next = depID;
|
|
3450
|
-
start = taskMap[depID].start;
|
|
3451
|
-
taskMap[taskID].end = taskMap[depID].end;
|
|
3452
|
-
}
|
|
3487
|
+
for (var j = 0; j < dependents.length; j++) {
|
|
3488
|
+
var newDependentEnd = taskMap[dependents[j]].end;
|
|
3453
3489
|
|
|
3454
|
-
|
|
3455
|
-
|
|
3456
|
-
|
|
3457
|
-
if (taskMap[depID].end > taskMap[taskID].end) {
|
|
3458
|
-
taskMap[taskID].next = depID;
|
|
3459
|
-
taskMap[taskID].end = taskMap[depID].end;
|
|
3460
|
-
}
|
|
3461
|
-
|
|
3462
|
-
break;
|
|
3463
|
-
|
|
3464
|
-
case "SF":
|
|
3465
|
-
if (taskMap[depID].start > taskMap[taskID].end) {
|
|
3466
|
-
taskMap[taskID].next = depID;
|
|
3467
|
-
taskMap[taskID].end = taskMap[depID].start;
|
|
3468
|
-
}
|
|
3469
|
-
|
|
3470
|
-
break;
|
|
3490
|
+
if (newDependentEnd > taskMap[taskID].end) {
|
|
3491
|
+
taskMap[taskID].next = dependents[j];
|
|
3492
|
+
taskMap[taskID].end = newDependentEnd;
|
|
3471
3493
|
}
|
|
3472
3494
|
}
|
|
3473
3495
|
}
|
|
@@ -3538,6 +3560,11 @@ function colorPath(path, color, tasks, criticalPathType) {
|
|
|
3538
3560
|
_loop(_i7);
|
|
3539
3561
|
}
|
|
3540
3562
|
}
|
|
3563
|
+
var getParentWbs = function getParentWbs(wbs) {
|
|
3564
|
+
var segments = wbs.split('.');
|
|
3565
|
+
if (segments.length <= 1) return undefined;
|
|
3566
|
+
return segments.slice(0, -1).join('.');
|
|
3567
|
+
};
|
|
3541
3568
|
|
|
3542
3569
|
export { Gantt, ViewMode, getCriticalPaths };
|
|
3543
3570
|
//# sourceMappingURL=index.modern.js.map
|