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