gantt-task-react-powern 0.4.62 → 0.4.64

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.
@@ -2,11 +2,13 @@ import React from "react";
2
2
  import { Task } from "../../types/public-types";
3
3
  export declare type GridBodyProps = {
4
4
  tasks: Task[];
5
+ scheduleType: string;
5
6
  dates: Date[];
6
7
  svgWidth: number;
7
8
  rowHeight: number;
8
9
  columnWidth: number;
9
10
  todayColor: string;
11
+ weekendColor: string;
10
12
  rtl: boolean;
11
13
  };
12
14
  export declare const GridBody: React.FC<GridBodyProps>;
@@ -7,6 +7,7 @@ export declare const TaskListTableDefault: React.FC<{
7
7
  fontSize: string;
8
8
  locale: string;
9
9
  tasks: Task[];
10
+ scheduleType: string;
10
11
  leafTasks: Task[];
11
12
  selectedTaskId: string;
12
13
  setSelectedTask: (taskId: string) => void;
@@ -12,6 +12,7 @@ export declare type TaskListProps = {
12
12
  scrollY: number;
13
13
  locale: string;
14
14
  tasks: Task[];
15
+ scheduleType: string;
15
16
  leafTasks: Task[];
16
17
  taskListRef: React.RefObject<HTMLDivElement>;
17
18
  horizontalContainerClass?: string;
@@ -32,6 +33,7 @@ export declare type TaskListProps = {
32
33
  fontSize: string;
33
34
  locale: string;
34
35
  tasks: Task[];
36
+ scheduleType: string;
35
37
  leafTasks: Task[];
36
38
  selectedTaskId: string;
37
39
  setSelectedTask: (taskId: string) => void;
package/dist/index.css CHANGED
@@ -37,6 +37,23 @@
37
37
  text-overflow: ellipsis;
38
38
  white-space: nowrap;
39
39
  overflow: hidden;
40
+ background-color: #fff;
41
+ }
42
+
43
+ ._GzvG4 {
44
+ display: table-row;
45
+ text-overflow: ellipsis;
46
+ white-space: nowrap;
47
+ overflow: hidden;
48
+ background-color: #fff;
49
+ }
50
+
51
+ ._3Ykml {
52
+ display: table-row;
53
+ text-overflow: ellipsis;
54
+ white-space: nowrap;
55
+ overflow: hidden;
56
+ background-color: #e6e4e4;
40
57
  }
41
58
 
42
59
  ._34SS0:nth-of-type(even) {
@@ -49,6 +66,7 @@
49
66
  white-space: nowrap;
50
67
  overflow: hidden;
51
68
  text-overflow: ellipsis;
69
+ border-bottom: #ebeff2 1px solid;
52
70
  }
53
71
  ._nI1Xw {
54
72
  display: flex;
@@ -152,6 +170,14 @@
152
170
  fill: #f5f5f5;
153
171
  }
154
172
 
173
+ ._2RRca {
174
+ fill: #fff;
175
+ }
176
+
177
+ ._2RRca:nth-child(even) {
178
+ fill: #fff;
179
+ }
180
+
155
181
  ._3rUKi {
156
182
  stroke: #ebeff2;
157
183
  }
@@ -160,7 +186,7 @@
160
186
  stroke: #e6e4e4;
161
187
  }
162
188
  ._2M-tt {
163
- fill: #e6e4e4 !important;
189
+ fill: #e6e4e4 !important;
164
190
  }
165
191
 
166
192
  ._9w8d5 {
package/dist/index.js CHANGED
@@ -342,7 +342,7 @@ var TaskListHeaderDefault = function TaskListHeaderDefault(_ref) {
342
342
  }, "Planned End")));
343
343
  };
344
344
 
345
- var styles$1 = {"taskListWrapper":"_3ZbQT","taskListTableRow":"_34SS0","taskListCell":"_3lLk3","taskListNameWrapper":"_nI1Xw","taskListExpander":"_2QjE6","taskListExpanderPlaceholder":"_1fnLB","taskListEmptyExpander":"_2TfEi","taskListText":"_2ZvXU"};
345
+ var styles$1 = {"taskListWrapper":"_3ZbQT","taskListTableRow":"_34SS0","taskListLookAheadRow":"_GzvG4","taskListMilestoneRow":"_3Ykml","taskListCell":"_3lLk3","taskListNameWrapper":"_nI1Xw","taskListExpander":"_2QjE6","taskListExpanderPlaceholder":"_1fnLB","taskListEmptyExpander":"_2TfEi","taskListText":"_2ZvXU"};
346
346
 
347
347
  var localeDateStringCache = {};
348
348
 
@@ -370,6 +370,7 @@ var TaskListTableDefault = function TaskListTableDefault(_ref) {
370
370
  var rowHeight = _ref.rowHeight,
371
371
  rowWidth = _ref.rowWidth,
372
372
  tasks = _ref.tasks,
373
+ scheduleType = _ref.scheduleType,
373
374
  leafTasks = _ref.leafTasks,
374
375
  fontFamily = _ref.fontFamily,
375
376
  fontSize = _ref.fontSize,
@@ -405,7 +406,7 @@ var TaskListTableDefault = function TaskListTableDefault(_ref) {
405
406
  }
406
407
 
407
408
  return React__default.createElement("div", {
408
- className: styles$1.taskListTableRow,
409
+ className: t.type === "milestone" ? styles$1.taskListMilestoneRow : scheduleType === "lookAhead" ? styles$1.taskListLookAheadRow : styles$1.taskListTableRow,
409
410
  style: {
410
411
  height: rowHeight
411
412
  },
@@ -629,6 +630,7 @@ var TaskList = function TaskList(_ref) {
629
630
  rowHeight = _ref.rowHeight,
630
631
  scrollY = _ref.scrollY,
631
632
  tasks = _ref.tasks,
633
+ scheduleType = _ref.scheduleType,
632
634
  leafTasks = _ref.leafTasks,
633
635
  selectedTask = _ref.selectedTask,
634
636
  setSelectedTask = _ref.setSelectedTask,
@@ -660,6 +662,7 @@ var TaskList = function TaskList(_ref) {
660
662
  fontSize: fontSize,
661
663
  tasks: tasks,
662
664
  leafTasks: leafTasks,
665
+ scheduleType: scheduleType,
663
666
  locale: locale,
664
667
  selectedTaskId: selectedTaskId,
665
668
  setSelectedTask: setSelectedTask,
@@ -677,15 +680,17 @@ var TaskList = function TaskList(_ref) {
677
680
  }, React__default.createElement(TaskListTable, Object.assign({}, tableProps))));
678
681
  };
679
682
 
680
- var styles$4 = {"gridRow":"_2dZTy","gridRowLine":"_3rUKi","gridTick":"_RuwuK","darkerGridRow":"_2M-tt"};
683
+ var styles$4 = {"gridRow":"_2dZTy","gridRowLookAhead":"_2RRca","gridRowLine":"_3rUKi","gridTick":"_RuwuK","darkerGridRow":"_2M-tt"};
681
684
 
682
685
  var GridBody = function GridBody(_ref) {
683
686
  var tasks = _ref.tasks,
687
+ scheduleType = _ref.scheduleType,
684
688
  dates = _ref.dates,
685
689
  rowHeight = _ref.rowHeight,
686
690
  svgWidth = _ref.svgWidth,
687
691
  columnWidth = _ref.columnWidth,
688
692
  todayColor = _ref.todayColor,
693
+ weekendColor = _ref.weekendColor,
689
694
  rtl = _ref.rtl;
690
695
  var y = 0;
691
696
  var gridRows = [];
@@ -707,7 +712,7 @@ var GridBody = function GridBody(_ref) {
707
712
  y: y,
708
713
  width: svgWidth,
709
714
  height: rowHeight,
710
- className: isDarkerRow ? styles$4.darkerGridRow : styles$4.gridRow
715
+ className: isDarkerRow ? styles$4.darkerGridRow : scheduleType === "lookAhead" ? styles$4.gridRowLookAhead : styles$4.gridRow
711
716
  }));
712
717
  rowLines.push(React__default.createElement("line", {
713
718
  key: "RowLine" + task.id,
@@ -724,6 +729,7 @@ var GridBody = function GridBody(_ref) {
724
729
  var tickX = 0;
725
730
  var ticks = [];
726
731
  var today = React__default.createElement("rect", null);
732
+ var weekend = [];
727
733
 
728
734
  for (var i = 0; i < dates.length; i++) {
729
735
  var date = dates[i];
@@ -746,6 +752,16 @@ var GridBody = function GridBody(_ref) {
746
752
  });
747
753
  }
748
754
 
755
+ if (date.getDay() === 6 || date.getDay() === 0) {
756
+ weekend.push(React__default.createElement("rect", {
757
+ x: tickX,
758
+ y: 0,
759
+ width: columnWidth,
760
+ height: y,
761
+ fill: weekendColor
762
+ }));
763
+ }
764
+
749
765
  if (rtl && i + 1 !== dates.length && date.getTime() >= now.getTime() && dates[i + 1].getTime() < now.getTime()) {
750
766
  today = React__default.createElement("rect", {
751
767
  x: tickX + columnWidth,
@@ -767,7 +783,9 @@ var GridBody = function GridBody(_ref) {
767
783
  className: "rowLines"
768
784
  }, rowLines), React__default.createElement("g", {
769
785
  className: "ticks"
770
- }, ticks), React__default.createElement("g", {
786
+ }, ticks), scheduleType === "lookAhead" && React__default.createElement("g", {
787
+ className: "weekend"
788
+ }, weekend), React__default.createElement("g", {
771
789
  className: "today"
772
790
  }, today));
773
791
  };
@@ -1798,7 +1816,7 @@ var Bar = function Bar(_ref) {
1798
1816
  var handleHeight = task.height / 2 - 1;
1799
1817
 
1800
1818
  if (type == "planned") {
1801
- if (task.x1 && task.x2) return React__default.createElement("g", {
1819
+ if ((task === null || task === void 0 ? void 0 : task.x1) >= 0 && (task === null || task === void 0 ? void 0 : task.x2) >= 0) return React__default.createElement("g", {
1802
1820
  className: styles$6.barWrapper,
1803
1821
  tabIndex: 0
1804
1822
  }, React__default.createElement(BarDisplay, {
@@ -1846,7 +1864,7 @@ var Bar = function Bar(_ref) {
1846
1864
  className: styles$6.barWrapper,
1847
1865
  tabIndex: 0
1848
1866
  });
1849
- } else if (task.actualx1 && task.actualx2) {
1867
+ } else if ((task === null || task === void 0 ? void 0 : task.actualx1) >= 0 && (task === null || task === void 0 ? void 0 : task.actualx2) >= 0) {
1850
1868
  return React__default.createElement("g", {
1851
1869
  className: styles$6.barWrapper,
1852
1870
  tabIndex: 0
@@ -2033,11 +2051,11 @@ var TaskItem = function TaskItem(props) {
2033
2051
  React.useEffect(function () {
2034
2052
  switch (task.typeInternal) {
2035
2053
  case "milestone":
2036
- setTaskItem([React__default.createElement(Milestone, Object.assign({}, props))]);
2054
+ if (task.x1 >= 0 && task.actualx1 >= 0) setTaskItem([React__default.createElement(Milestone, Object.assign({}, props))]);else setTaskItem([]);
2037
2055
  break;
2038
2056
 
2039
2057
  case "project":
2040
- setTaskItem([React__default.createElement(Project, Object.assign({}, props))]);
2058
+ if ((task === null || task === void 0 ? void 0 : task.x1) >= 0 && (task === null || task === void 0 ? void 0 : task.x2) >= 0 && task.x2 > task.x1 && (task === null || task === void 0 ? void 0 : task.actualx1) >= 0 && (task === null || task === void 0 ? void 0 : task.actualx2) >= 0 && task.actualx2 > task.actualx1) setTaskItem([React__default.createElement(Project, Object.assign({}, props))]);else setTaskItem([]);
2041
2059
  break;
2042
2060
 
2043
2061
  case "smalltask":
@@ -2048,13 +2066,13 @@ var TaskItem = function TaskItem(props) {
2048
2066
  {
2049
2067
  var _taskItem = [];
2050
2068
 
2051
- if (task.x1 && task.x2) {
2069
+ if ((task === null || task === void 0 ? void 0 : task.x1) >= 0 && (task === null || task === void 0 ? void 0 : task.x2) >= 0) {
2052
2070
  _taskItem.push(React__default.createElement(Bar, Object.assign({}, props, {
2053
2071
  type: "planned"
2054
2072
  })));
2055
2073
  }
2056
2074
 
2057
- if (task.actualx1 && task.actualx2) {
2075
+ if ((task === null || task === void 0 ? void 0 : task.actualx1) >= 0 && (task === null || task === void 0 ? void 0 : task.actualx2) >= 0) {
2058
2076
  _taskItem.push(React__default.createElement(Bar, Object.assign({}, props, {
2059
2077
  type: "actual"
2060
2078
  })));
@@ -2365,7 +2383,7 @@ var TaskGanttContent = function TaskGanttContent(_ref) {
2365
2383
  return task.barChildren.map(function (child) {
2366
2384
  var _task$criticalPathArr, _task$criticalPathArr2;
2367
2385
 
2368
- return React__default.createElement(Arrow, {
2386
+ if (task.x2 > task.x1 || task.actualx2 > task.actualx1) return React__default.createElement(Arrow, {
2369
2387
  key: "Arrow from " + task.id + " to " + tasks[child.index].id,
2370
2388
  taskFrom: task,
2371
2389
  taskTo: tasks[child.index],
@@ -2376,6 +2394,11 @@ var TaskGanttContent = function TaskGanttContent(_ref) {
2376
2394
  arrowColor: ((_task$criticalPathArr = task.criticalPathArrows) === null || _task$criticalPathArr === void 0 ? void 0 : (_task$criticalPathArr2 = _task$criticalPathArr.find(function (arrow) {
2377
2395
  return arrow.taskId == tasks[child.index].id;
2378
2396
  })) === null || _task$criticalPathArr2 === void 0 ? void 0 : _task$criticalPathArr2.arrowColor) || "#808080"
2397
+ });else return React__default.createElement("g", {
2398
+ key: _task.id,
2399
+ style: {
2400
+ height: taskHeight
2401
+ }
2379
2402
  });
2380
2403
  });
2381
2404
  })), React__default.createElement("g", {
@@ -2497,6 +2520,12 @@ var Gantt = function Gantt(_ref) {
2497
2520
  var tasks = _ref.tasks,
2498
2521
  _ref$leafTasks = _ref.leafTasks,
2499
2522
  leafTasks = _ref$leafTasks === void 0 ? [] : _ref$leafTasks,
2523
+ _ref$scheduleType = _ref.scheduleType,
2524
+ scheduleType = _ref$scheduleType === void 0 ? "main" : _ref$scheduleType,
2525
+ _ref$startDate = _ref.startDate,
2526
+ startDate = _ref$startDate === void 0 ? new Date() : _ref$startDate,
2527
+ _ref$endDate = _ref.endDate,
2528
+ endDate = _ref$endDate === void 0 ? new Date() : _ref$endDate,
2500
2529
  _ref$headerHeight = _ref.headerHeight,
2501
2530
  headerHeight = _ref$headerHeight === void 0 ? 50 : _ref$headerHeight,
2502
2531
  _ref$columnWidth = _ref.columnWidth,
@@ -2553,6 +2582,8 @@ var Gantt = function Gantt(_ref) {
2553
2582
  arrowIndent = _ref$arrowIndent === void 0 ? 20 : _ref$arrowIndent,
2554
2583
  _ref$todayColor = _ref.todayColor,
2555
2584
  todayColor = _ref$todayColor === void 0 ? "rgba(252, 248, 227, 0.5)" : _ref$todayColor,
2585
+ _ref$weekendColor = _ref.weekendColor,
2586
+ weekendColor = _ref$weekendColor === void 0 ? "#f5f5f5" : _ref$weekendColor,
2556
2587
  viewDate = _ref.viewDate,
2557
2588
  _ref$TooltipContent = _ref.TooltipContent,
2558
2589
  TooltipContent = _ref$TooltipContent === void 0 ? StandardTooltipContent : _ref$TooltipContent,
@@ -2573,12 +2604,19 @@ var Gantt = function Gantt(_ref) {
2573
2604
 
2574
2605
  var _useState = React.useState(function () {
2575
2606
  var _ganttDateRange = ganttDateRange(tasks, viewMode, preStepsCount),
2576
- startDate = _ganttDateRange[0],
2577
- endDate = _ganttDateRange[1];
2607
+ startDateRange = _ganttDateRange[0],
2608
+ endDateRange = _ganttDateRange[1];
2609
+
2610
+ if (scheduleType === "lookAhead") {
2611
+ return {
2612
+ viewMode: viewMode,
2613
+ dates: seedDates(startDate, endDate, viewMode)
2614
+ };
2615
+ }
2578
2616
 
2579
2617
  return {
2580
2618
  viewMode: viewMode,
2581
- dates: seedDates(startDate, endDate, viewMode)
2619
+ dates: seedDates(startDateRange, endDateRange, viewMode)
2582
2620
  };
2583
2621
  }),
2584
2622
  dateSetup = _useState[0],
@@ -2637,6 +2675,14 @@ var Gantt = function Gantt(_ref) {
2637
2675
  ignoreScrollEvent = _useState12[0],
2638
2676
  setIgnoreScrollEvent = _useState12[1];
2639
2677
 
2678
+ React.useEffect(function () {
2679
+ if (scheduleType === "lookAhead" && startDate && endDate) {
2680
+ setDateSetup({
2681
+ viewMode: viewMode,
2682
+ dates: seedDates(startDate, endDate, viewMode)
2683
+ });
2684
+ }
2685
+ }, [startDate, endDate]);
2640
2686
  React.useEffect(function () {
2641
2687
  var filteredTasks;
2642
2688
 
@@ -2649,10 +2695,14 @@ var Gantt = function Gantt(_ref) {
2649
2695
  filteredTasks = filteredTasks.sort(sortTasks);
2650
2696
 
2651
2697
  var _ganttDateRange2 = ganttDateRange(filteredTasks, viewMode, preStepsCount),
2652
- startDate = _ganttDateRange2[0],
2653
- endDate = _ganttDateRange2[1];
2698
+ startDateRange = _ganttDateRange2[0],
2699
+ endDateRange = _ganttDateRange2[1];
2654
2700
 
2655
- var newDates = seedDates(startDate, endDate, viewMode);
2701
+ var newDates = seedDates(startDateRange, endDateRange, viewMode);
2702
+
2703
+ if (scheduleType === "lookAhead") {
2704
+ newDates = seedDates(startDate, endDate, viewMode);
2705
+ }
2656
2706
 
2657
2707
  if (rtl) {
2658
2708
  newDates = newDates.reverse();
@@ -2662,10 +2712,12 @@ var Gantt = function Gantt(_ref) {
2662
2712
  }
2663
2713
  }
2664
2714
 
2665
- setDateSetup({
2666
- dates: newDates,
2667
- viewMode: viewMode
2668
- });
2715
+ if (scheduleType !== "lookAhead") {
2716
+ setDateSetup({
2717
+ dates: seedDates(startDateRange, endDateRange, viewMode),
2718
+ viewMode: viewMode
2719
+ });
2720
+ }
2669
2721
 
2670
2722
  var _getCriticalPaths = getCriticalPaths(leafTasks),
2671
2723
  primaryPath = _getCriticalPaths[0],
@@ -2892,9 +2944,11 @@ var Gantt = function Gantt(_ref) {
2892
2944
  columnWidth: columnWidth,
2893
2945
  svgWidth: svgWidth,
2894
2946
  tasks: tasks,
2947
+ scheduleType: scheduleType,
2895
2948
  rowHeight: rowHeight,
2896
2949
  dates: dateSetup.dates,
2897
2950
  todayColor: todayColor,
2951
+ weekendColor: weekendColor,
2898
2952
  rtl: rtl
2899
2953
  };
2900
2954
  var calendarProps = {
@@ -2938,6 +2992,7 @@ var Gantt = function Gantt(_ref) {
2938
2992
  fontSize: fontSize,
2939
2993
  tasks: barTasks,
2940
2994
  leafTasks: leafTasks,
2995
+ scheduleType: scheduleType,
2941
2996
  locale: locale,
2942
2997
  headerHeight: headerHeight,
2943
2998
  scrollY: scrollY,