gantt-task-react-powern 0.4.95 → 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 +84 -56
- package/dist/index.js.map +1 -1
- package/dist/index.modern.js +84 -56
- 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
|
|
@@ -2959,8 +3022,8 @@ var Gantt = function Gantt(_ref) {
|
|
|
2959
3022
|
if (leafTasks.length > 0 && primaryPath.length === 0 && secondaryPath.length === 0) {
|
|
2960
3023
|
setHasCircularDeps(true);
|
|
2961
3024
|
} else {
|
|
2962
|
-
if (hasCircularDeps && localStorage.getItem(
|
|
2963
|
-
localStorage.removeItem(
|
|
3025
|
+
if (hasCircularDeps && localStorage.getItem('hideCircularDepsAlert') === 'true') {
|
|
3026
|
+
localStorage.removeItem('hideCircularDepsAlert');
|
|
2964
3027
|
}
|
|
2965
3028
|
|
|
2966
3029
|
setHasCircularDeps(false);
|
|
@@ -3112,7 +3175,7 @@ var Gantt = function Gantt(_ref) {
|
|
|
3112
3175
|
var alert = document.getElementById("alert-container");
|
|
3113
3176
|
|
|
3114
3177
|
if (checkbox.checked) {
|
|
3115
|
-
localStorage.setItem(
|
|
3178
|
+
localStorage.setItem('hideCircularDepsAlert', 'true');
|
|
3116
3179
|
alert.style.display = "None";
|
|
3117
3180
|
}
|
|
3118
3181
|
};
|
|
@@ -3265,7 +3328,7 @@ var Gantt = function Gantt(_ref) {
|
|
|
3265
3328
|
taskLabelRenderer: taskLabelRenderer,
|
|
3266
3329
|
onMultiSelect: onMultiSelect
|
|
3267
3330
|
};
|
|
3268
|
-
return React.createElement("div", null, hasCircularDeps && localStorage.getItem(
|
|
3331
|
+
return React.createElement("div", null, hasCircularDeps && localStorage.getItem('hideCircularDepsAlert') !== 'true' && React.createElement("div", {
|
|
3269
3332
|
id: "alert-container",
|
|
3270
3333
|
className: styles$9.alertContainer + " " + styles$9.warning
|
|
3271
3334
|
}, React.createElement("input", {
|
|
@@ -3414,59 +3477,19 @@ function getCriticalPaths(leafTasks) {
|
|
|
3414
3477
|
secondaryLeaf = taskMap[secondaryLeaf].next;
|
|
3415
3478
|
}
|
|
3416
3479
|
|
|
3417
|
-
console.debug([primaryPath, secondaryPath]);
|
|
3418
3480
|
return [primaryPath, secondaryPath];
|
|
3419
3481
|
}
|
|
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
|
-
|
|
3430
|
-
var depID = _step.value;
|
|
3431
|
-
var dependentTask = taskMap[depID].task;
|
|
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
|
-
if (!dependency) continue;
|
|
3436
|
-
|
|
3437
|
-
switch (dependency.type) {
|
|
3438
|
-
case "FS":
|
|
3439
|
-
if (taskMap[depID].end > taskMap[taskID].end) {
|
|
3440
|
-
taskMap[taskID].next = depID;
|
|
3441
|
-
taskMap[taskID].end = taskMap[depID].end;
|
|
3442
|
-
}
|
|
3443
|
-
|
|
3444
|
-
break;
|
|
3445
3486
|
|
|
3446
|
-
|
|
3447
|
-
|
|
3448
|
-
taskMap[taskID].next = depID;
|
|
3449
|
-
start = taskMap[depID].start;
|
|
3450
|
-
taskMap[taskID].end = taskMap[depID].end;
|
|
3451
|
-
}
|
|
3452
|
-
|
|
3453
|
-
break;
|
|
3487
|
+
for (var j = 0; j < dependents.length; j++) {
|
|
3488
|
+
var newDependentEnd = taskMap[dependents[j]].end;
|
|
3454
3489
|
|
|
3455
|
-
|
|
3456
|
-
|
|
3457
|
-
|
|
3458
|
-
taskMap[taskID].end = taskMap[depID].end;
|
|
3459
|
-
}
|
|
3460
|
-
|
|
3461
|
-
break;
|
|
3462
|
-
|
|
3463
|
-
case "SF":
|
|
3464
|
-
if (taskMap[depID].start > taskMap[taskID].end) {
|
|
3465
|
-
taskMap[taskID].next = depID;
|
|
3466
|
-
taskMap[taskID].end = taskMap[depID].start;
|
|
3467
|
-
}
|
|
3468
|
-
|
|
3469
|
-
break;
|
|
3490
|
+
if (newDependentEnd > taskMap[taskID].end) {
|
|
3491
|
+
taskMap[taskID].next = dependents[j];
|
|
3492
|
+
taskMap[taskID].end = newDependentEnd;
|
|
3470
3493
|
}
|
|
3471
3494
|
}
|
|
3472
3495
|
}
|
|
@@ -3537,6 +3560,11 @@ function colorPath(path, color, tasks, criticalPathType) {
|
|
|
3537
3560
|
_loop(_i7);
|
|
3538
3561
|
}
|
|
3539
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
|
+
};
|
|
3540
3568
|
|
|
3541
3569
|
export { Gantt, ViewMode, getCriticalPaths };
|
|
3542
3570
|
//# sourceMappingURL=index.modern.js.map
|