gantt-task-react-powern 0.4.33 → 0.4.34

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.
@@ -2393,8 +2393,6 @@ var Gantt = function Gantt(_ref) {
2393
2393
  milestoneBackgroundSelectedColor = _ref$milestoneBackgro2 === void 0 ? "#f29e4c" : _ref$milestoneBackgro2,
2394
2394
  _ref$rtl = _ref.rtl,
2395
2395
  rtl = _ref$rtl === void 0 ? false : _ref$rtl,
2396
- _ref$criticalPathExpa = _ref.criticalPathExpand,
2397
- criticalPathExpand = _ref$criticalPathExpa === void 0 ? true : _ref$criticalPathExpa,
2398
2396
  _ref$handleWidth = _ref.handleWidth,
2399
2397
  handleWidth = _ref$handleWidth === void 0 ? 8 : _ref$handleWidth,
2400
2398
  _ref$timeStep = _ref.timeStep,
@@ -2744,232 +2742,6 @@ var Gantt = function Gantt(_ref) {
2744
2742
  }
2745
2743
  };
2746
2744
 
2747
- useEffect(function () {
2748
- var _getCriticalPaths2 = getCriticalPaths(leafTasks),
2749
- primaryPath = _getCriticalPaths2[0];
2750
-
2751
- console.debug("Primary path", primaryPath);
2752
-
2753
- var isCPhidden = function isCPhidden(p) {
2754
- var _tasks$find;
2755
-
2756
- return (_tasks$find = tasks.find(function (t) {
2757
- return t.id === p.id.split(".").slice(0, p.id.split(".").length - 1).join(".");
2758
- })) === null || _tasks$find === void 0 ? void 0 : _tasks$find.hideChildren;
2759
- };
2760
-
2761
- var toggleCP = function toggleCP(p) {
2762
- if (onExpanderClick) {
2763
- (function () {
2764
- var _id = p.id;
2765
- console.debug("toggleCP id ", _id);
2766
-
2767
- for (var i = 0; i < p.id.split(".").length; i++) {
2768
- console.debug("toggleCP id ", _id);
2769
- var t = tasks.find(function (t) {
2770
- return t.id === _id;
2771
- });
2772
-
2773
- if (t) {
2774
- handleExpanderClick(t);
2775
- _id = _id.split(".").slice(0, _id.split(".").length - 1).join(".");
2776
- }
2777
- }
2778
- })();
2779
- }
2780
- };
2781
-
2782
- if (criticalPathExpand) {
2783
- primaryPath.forEach(function (p) {
2784
- if (isCPhidden(p)) {
2785
- console.debug("CP hidden ", p);
2786
- toggleCP(p);
2787
- }
2788
- });
2789
- } else {
2790
- primaryPath.forEach(function (p) {
2791
- if (isCPhidden(p) === false) {
2792
- toggleCP(p);
2793
- }
2794
- });
2795
- }
2796
- }, [criticalPathExpand, leafTasks, tasks]);
2797
-
2798
- function topologicalOrderingHelper(taskID, taskMap, sortedTaskList) {
2799
- if (!taskMap[taskID]) return true;
2800
- if (taskMap[taskID].finished) return true;
2801
-
2802
- if (taskMap[taskID].started) {
2803
- console.log("Cycle involving " + taskID);
2804
- return false;
2805
- }
2806
-
2807
- taskMap[taskID].started = true;
2808
- var task = taskMap[taskID].task;
2809
- if (task.dependencies) for (var i = 0; i < task.dependencies.length; i++) {
2810
- var successVal = topologicalOrderingHelper(task.dependencies[i], taskMap, sortedTaskList);
2811
- if (!successVal) return false;
2812
- }
2813
- taskMap[taskID].finished = true;
2814
- sortedTaskList.push(taskID);
2815
- return true;
2816
- }
2817
-
2818
- function getCriticalPaths(leafTasks) {
2819
- var taskMap = {};
2820
-
2821
- for (var i = 0; i < leafTasks.length; i++) {
2822
- taskMap[leafTasks[i].id] = {
2823
- task: leafTasks[i]
2824
- };
2825
- }
2826
-
2827
- var sortedTaskList = [];
2828
-
2829
- for (var _i = 0; _i < leafTasks.length; _i++) {
2830
- var successVal = topologicalOrderingHelper(leafTasks[_i].id, taskMap, sortedTaskList);
2831
- if (!successVal) return [[], []];
2832
- }
2833
-
2834
- for (var _i2 = 0; _i2 < leafTasks.length; _i2++) {
2835
- taskMap[leafTasks[_i2].id].dependents = [];
2836
- }
2837
-
2838
- for (var _i3 = 0; _i3 < leafTasks.length; _i3++) {
2839
- var task = leafTasks[_i3];
2840
- if (task.dependencies) for (var j = 0; j < task.dependencies.length; j++) {
2841
- var _taskMap$task$depende;
2842
-
2843
- (_taskMap$task$depende = taskMap[task.dependencies[j]]) === null || _taskMap$task$depende === void 0 ? void 0 : _taskMap$task$depende.dependents.push(task.id);
2844
- }
2845
- }
2846
-
2847
- for (var _i4 = sortedTaskList.length - 1; _i4 >= 0; _i4--) {
2848
- computeCriticalPath(sortedTaskList[_i4], taskMap);
2849
- }
2850
-
2851
- var primaryLeaf;
2852
- var primaryDuration = 0;
2853
-
2854
- for (var _i5 = 0; _i5 < sortedTaskList.length; _i5++) {
2855
- var newDuration = taskMap[sortedTaskList[_i5]].end - taskMap[sortedTaskList[_i5]].task.start.getTime();
2856
-
2857
- if (primaryDuration < newDuration) {
2858
- primaryLeaf = sortedTaskList[_i5];
2859
- primaryDuration = newDuration;
2860
- }
2861
- }
2862
-
2863
- var primaryPath = [];
2864
-
2865
- while (primaryLeaf !== undefined) {
2866
- taskMap[primaryLeaf].excluded = true;
2867
- primaryPath.push(taskMap[primaryLeaf].task);
2868
- primaryLeaf = taskMap[primaryLeaf].next;
2869
- }
2870
-
2871
- var secondaryLeaf;
2872
- var secondaryDuration = 0;
2873
-
2874
- for (var _i6 = 0; _i6 < sortedTaskList.length; _i6++) {
2875
- if (taskMap[sortedTaskList[_i6]].excluded) continue;
2876
-
2877
- var _newDuration = taskMap[sortedTaskList[_i6]].end - taskMap[sortedTaskList[_i6]].task.start.getTime();
2878
-
2879
- if (secondaryDuration < _newDuration) {
2880
- secondaryLeaf = sortedTaskList[_i6];
2881
- secondaryDuration = _newDuration;
2882
- }
2883
- }
2884
-
2885
- var secondaryPath = [];
2886
-
2887
- while (secondaryLeaf !== undefined) {
2888
- secondaryPath.push(taskMap[secondaryLeaf].task);
2889
- secondaryLeaf = taskMap[secondaryLeaf].next;
2890
- }
2891
-
2892
- return [primaryPath, secondaryPath];
2893
- }
2894
-
2895
- function computeCriticalPath(taskID, taskMap) {
2896
- var task = taskMap[taskID].task;
2897
- var dependents = taskMap[taskID].dependents;
2898
- taskMap[taskID].end = task.end.getTime();
2899
-
2900
- for (var j = 0; j < dependents.length; j++) {
2901
- var newDependentEnd = taskMap[dependents[j]].end;
2902
-
2903
- if (newDependentEnd > taskMap[taskID].end) {
2904
- taskMap[taskID].next = dependents[j];
2905
- taskMap[taskID].end = newDependentEnd;
2906
- }
2907
- }
2908
- }
2909
-
2910
- function uncolorAll(tasks) {
2911
- tasks.forEach(function (task) {
2912
- if (task.styles) delete task.styles.criticalPathColor;
2913
- delete task.criticalPathArrows;
2914
- });
2915
- }
2916
-
2917
- function colorPath(path, color, tasks) {
2918
- for (var i = 0; i < path.length; i++) {
2919
- var longestIDLength = 0;
2920
- var longestTask = void 0;
2921
-
2922
- for (var j = 0; j < tasks.length; j++) {
2923
- if (path[i].id === tasks[j].id) {
2924
- longestTask = tasks[j];
2925
- break;
2926
- }
2927
-
2928
- if (path[i].id.startsWith(tasks[j].id + ".") && tasks[j].id.length > longestIDLength) {
2929
- longestIDLength = tasks[j].id.length;
2930
- longestTask = tasks[j];
2931
- }
2932
- }
2933
-
2934
- if (longestTask) {
2935
- var _longestTask$styles;
2936
-
2937
- var _styles = (_longestTask$styles = longestTask.styles) != null ? _longestTask$styles : {};
2938
-
2939
- _styles.criticalPathColor = color;
2940
- longestTask.styles = _styles;
2941
- }
2942
- }
2943
-
2944
- var _loop = function _loop(_i7) {
2945
- var taskFromTasks = void 0;
2946
-
2947
- for (var _j = 0; _j < tasks.length; _j++) {
2948
- if (path[_i7].id === tasks[_j].id) {
2949
- taskFromTasks = tasks[_j];
2950
- break;
2951
- }
2952
- }
2953
-
2954
- if (taskFromTasks) {
2955
- var arrows = taskFromTasks.criticalPathArrows;
2956
- if (!arrows) arrows = [];
2957
- var arrow = arrows.find(function (arrow) {
2958
- return arrow.taskId === path[_i7 + 1].id;
2959
- });
2960
- if (arrow) arrow.arrowColor = color;else arrows.push({
2961
- taskId: path[_i7 + 1].id,
2962
- arrowColor: color
2963
- });
2964
- taskFromTasks.criticalPathArrows = arrows;
2965
- }
2966
- };
2967
-
2968
- for (var _i7 = 0; _i7 + 1 < path.length; _i7++) {
2969
- _loop(_i7);
2970
- }
2971
- }
2972
-
2973
2745
  var gridProps = {
2974
2746
  columnWidth: columnWidth,
2975
2747
  svgWidth: svgWidth,
@@ -3076,6 +2848,176 @@ var Gantt = function Gantt(_ref) {
3076
2848
  onScroll: handleScrollX
3077
2849
  }));
3078
2850
  };
2851
+ function topologicalOrderingHelper(taskID, taskMap, sortedTaskList) {
2852
+ if (!taskMap[taskID]) return true;
2853
+ if (taskMap[taskID].finished) return true;
2854
+
2855
+ if (taskMap[taskID].started) {
2856
+ console.log("Cycle involving " + taskID);
2857
+ return false;
2858
+ }
2859
+
2860
+ taskMap[taskID].started = true;
2861
+ var task = taskMap[taskID].task;
2862
+ if (task.dependencies) for (var i = 0; i < task.dependencies.length; i++) {
2863
+ var successVal = topologicalOrderingHelper(task.dependencies[i], taskMap, sortedTaskList);
2864
+ if (!successVal) return false;
2865
+ }
2866
+ taskMap[taskID].finished = true;
2867
+ sortedTaskList.push(taskID);
2868
+ return true;
2869
+ }
2870
+ function getCriticalPaths(leafTasks) {
2871
+ var taskMap = {};
2872
+
2873
+ for (var i = 0; i < leafTasks.length; i++) {
2874
+ taskMap[leafTasks[i].id] = {
2875
+ task: leafTasks[i]
2876
+ };
2877
+ }
2878
+
2879
+ var sortedTaskList = [];
2880
+
2881
+ for (var _i = 0; _i < leafTasks.length; _i++) {
2882
+ var successVal = topologicalOrderingHelper(leafTasks[_i].id, taskMap, sortedTaskList);
2883
+ if (!successVal) return [[], []];
2884
+ }
2885
+
2886
+ for (var _i2 = 0; _i2 < leafTasks.length; _i2++) {
2887
+ taskMap[leafTasks[_i2].id].dependents = [];
2888
+ }
2889
+
2890
+ for (var _i3 = 0; _i3 < leafTasks.length; _i3++) {
2891
+ var task = leafTasks[_i3];
2892
+ if (task.dependencies) for (var j = 0; j < task.dependencies.length; j++) {
2893
+ var _taskMap$task$depende;
2894
+
2895
+ (_taskMap$task$depende = taskMap[task.dependencies[j]]) === null || _taskMap$task$depende === void 0 ? void 0 : _taskMap$task$depende.dependents.push(task.id);
2896
+ }
2897
+ }
2898
+
2899
+ for (var _i4 = sortedTaskList.length - 1; _i4 >= 0; _i4--) {
2900
+ computeCriticalPath(sortedTaskList[_i4], taskMap);
2901
+ }
2902
+
2903
+ var primaryLeaf;
2904
+ var primaryDuration = 0;
2905
+
2906
+ for (var _i5 = 0; _i5 < sortedTaskList.length; _i5++) {
2907
+ var newDuration = taskMap[sortedTaskList[_i5]].end - taskMap[sortedTaskList[_i5]].task.start.getTime();
2908
+
2909
+ if (primaryDuration < newDuration) {
2910
+ primaryLeaf = sortedTaskList[_i5];
2911
+ primaryDuration = newDuration;
2912
+ }
2913
+ }
2914
+
2915
+ var primaryPath = [];
2916
+
2917
+ while (primaryLeaf !== undefined) {
2918
+ taskMap[primaryLeaf].excluded = true;
2919
+ primaryPath.push(taskMap[primaryLeaf].task);
2920
+ primaryLeaf = taskMap[primaryLeaf].next;
2921
+ }
2922
+
2923
+ var secondaryLeaf;
2924
+ var secondaryDuration = 0;
2925
+
2926
+ for (var _i6 = 0; _i6 < sortedTaskList.length; _i6++) {
2927
+ if (taskMap[sortedTaskList[_i6]].excluded) continue;
2928
+
2929
+ var _newDuration = taskMap[sortedTaskList[_i6]].end - taskMap[sortedTaskList[_i6]].task.start.getTime();
2930
+
2931
+ if (secondaryDuration < _newDuration) {
2932
+ secondaryLeaf = sortedTaskList[_i6];
2933
+ secondaryDuration = _newDuration;
2934
+ }
2935
+ }
2936
+
2937
+ var secondaryPath = [];
2938
+
2939
+ while (secondaryLeaf !== undefined) {
2940
+ secondaryPath.push(taskMap[secondaryLeaf].task);
2941
+ secondaryLeaf = taskMap[secondaryLeaf].next;
2942
+ }
2943
+
2944
+ return [primaryPath, secondaryPath];
2945
+ }
2946
+ function computeCriticalPath(taskID, taskMap) {
2947
+ var task = taskMap[taskID].task;
2948
+ var dependents = taskMap[taskID].dependents;
2949
+ taskMap[taskID].end = task.end.getTime();
2950
+
2951
+ for (var j = 0; j < dependents.length; j++) {
2952
+ var newDependentEnd = taskMap[dependents[j]].end;
2953
+
2954
+ if (newDependentEnd > taskMap[taskID].end) {
2955
+ taskMap[taskID].next = dependents[j];
2956
+ taskMap[taskID].end = newDependentEnd;
2957
+ }
2958
+ }
2959
+ }
2960
+ function uncolorAll(tasks) {
2961
+ tasks.forEach(function (task) {
2962
+ if (task.styles) delete task.styles.criticalPathColor;
2963
+ delete task.criticalPathArrows;
2964
+ });
2965
+ }
2966
+ function colorPath(path, color, tasks) {
2967
+ for (var i = 0; i < path.length; i++) {
2968
+ var longestIDLength = 0;
2969
+ var longestTask = void 0;
2970
+
2971
+ for (var j = 0; j < tasks.length; j++) {
2972
+ if (path[i].id === tasks[j].id) {
2973
+ longestTask = tasks[j];
2974
+ break;
2975
+ }
2976
+
2977
+ if (path[i].id.startsWith(tasks[j].id + ".") && tasks[j].id.length > longestIDLength) {
2978
+ longestIDLength = tasks[j].id.length;
2979
+ longestTask = tasks[j];
2980
+ }
2981
+ }
2982
+
2983
+ if (longestTask) {
2984
+ var _longestTask$styles;
2985
+
2986
+ var _styles = (_longestTask$styles = longestTask.styles) != null ? _longestTask$styles : {};
2987
+
2988
+ _styles.criticalPathColor = color;
2989
+ longestTask.styles = _styles;
2990
+ }
2991
+ }
2992
+
2993
+ var _loop = function _loop(_i7) {
2994
+ var taskFromTasks = void 0;
2995
+
2996
+ for (var _j = 0; _j < tasks.length; _j++) {
2997
+ if (path[_i7].id === tasks[_j].id) {
2998
+ taskFromTasks = tasks[_j];
2999
+ break;
3000
+ }
3001
+ }
3002
+
3003
+ if (taskFromTasks) {
3004
+ var arrows = taskFromTasks.criticalPathArrows;
3005
+ if (!arrows) arrows = [];
3006
+ var arrow = arrows.find(function (arrow) {
3007
+ return arrow.taskId === path[_i7 + 1].id;
3008
+ });
3009
+ if (arrow) arrow.arrowColor = color;else arrows.push({
3010
+ taskId: path[_i7 + 1].id,
3011
+ arrowColor: color
3012
+ });
3013
+ taskFromTasks.criticalPathArrows = arrows;
3014
+ }
3015
+ };
3016
+
3017
+ for (var _i7 = 0; _i7 + 1 < path.length; _i7++) {
3018
+ _loop(_i7);
3019
+ }
3020
+ }
3079
3021
 
3080
- export { Gantt, ViewMode };
3022
+ export { Gantt, ViewMode, getCriticalPaths };
3081
3023
  //# sourceMappingURL=index.modern.js.map