gantt-task-react-powern 0.4.69 → 0.4.71

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.
@@ -274,9 +274,6 @@ var getWeekNumberISO8601 = function getWeekNumberISO8601(date) {
274
274
  return weekNumber;
275
275
  }
276
276
  };
277
- var getDaysInMonth = function getDaysInMonth(month, year) {
278
- return new Date(year, month + 1, 0).getDate();
279
- };
280
277
 
281
278
  var styles = {"ganttTable":"_3_ygE","ganttTable_Header":"_1nBOt","ganttTable_HeaderSeparator":"_2eZzQ","ganttTable_HeaderItem":"_WuQ0f"};
282
279
 
@@ -284,7 +281,10 @@ var TaskListHeaderDefault = function TaskListHeaderDefault(_ref) {
284
281
  var headerHeight = _ref.headerHeight,
285
282
  fontFamily = _ref.fontFamily,
286
283
  fontSize = _ref.fontSize,
287
- rowWidth = _ref.rowWidth;
284
+ rowWidth = _ref.rowWidth,
285
+ scheduleType = _ref.scheduleType,
286
+ allSelected = _ref.allSelected,
287
+ onSelectAll = _ref.onSelectAll;
288
288
  return React.createElement("div", {
289
289
  className: styles.ganttTable,
290
290
  style: {
@@ -296,7 +296,19 @@ var TaskListHeaderDefault = function TaskListHeaderDefault(_ref) {
296
296
  style: {
297
297
  height: headerHeight - 2
298
298
  }
299
- }, React.createElement("div", {
299
+ }, onSelectAll && React.createElement("div", null, React.createElement("div", {
300
+ className: styles.ganttTable_HeaderItem,
301
+ style: {
302
+ minWidth: parseInt(rowWidth) * 0.3,
303
+ maxWidth: parseInt(rowWidth) * 0.3
304
+ }
305
+ }, React.createElement("input", {
306
+ type: "checkbox",
307
+ checked: allSelected,
308
+ onChange: function onChange(e) {
309
+ return onSelectAll(e.target.checked);
310
+ }
311
+ }))), React.createElement("div", {
300
312
  className: styles.ganttTable_HeaderItem,
301
313
  style: {
302
314
  minWidth: parseInt(rowWidth) * 0.8,
@@ -335,7 +347,7 @@ var TaskListHeaderDefault = function TaskListHeaderDefault(_ref) {
335
347
  }), React.createElement("div", {
336
348
  className: styles.ganttTable_HeaderItem,
337
349
  style: {
338
- minWidth: parseInt(rowWidth) * 0.7
350
+ minWidth: parseInt(rowWidth) * 0.6
339
351
  },
340
352
  title: "Planned Start"
341
353
  }, "Planned Start"), React.createElement("div", {
@@ -347,13 +359,31 @@ var TaskListHeaderDefault = function TaskListHeaderDefault(_ref) {
347
359
  }), React.createElement("div", {
348
360
  className: styles.ganttTable_HeaderItem,
349
361
  style: {
350
- minWidth: parseInt(rowWidth) * 0.7
362
+ minWidth: parseInt(rowWidth) * 0.6
363
+ },
364
+ title: "Planned End"
365
+ }, "Planned End"), scheduleType === "lookAhead" && React.createElement("div", {
366
+ className: styles.ganttTable_HeaderItem,
367
+ style: {
368
+ minWidth: parseInt(rowWidth) * 0.6
369
+ },
370
+ title: "Planned Start"
371
+ }, "Actual Start"), scheduleType === "lookAhead" && React.createElement("div", {
372
+ className: styles.ganttTable_HeaderSeparator,
373
+ style: {
374
+ height: headerHeight * 0.5,
375
+ marginTop: headerHeight * 0.25
376
+ }
377
+ }), scheduleType === "lookAhead" && React.createElement("div", {
378
+ className: styles.ganttTable_HeaderItem,
379
+ style: {
380
+ minWidth: parseInt(rowWidth) * 0.6
351
381
  },
352
382
  title: "Planned End"
353
- }, "Planned End")));
383
+ }, "Actual End")));
354
384
  };
355
385
 
356
- var styles$1 = {"taskListWrapper":"_3ZbQT","taskListTableRow":"_34SS0","taskListCell":"_3lLk3","taskListNameWrapper":"_nI1Xw","taskListExpander":"_2QjE6","taskListExpanderPlaceholder":"_1fnLB","taskListEmptyExpander":"_2TfEi","taskListText":"_2ZvXU"};
386
+ var styles$1 = {"taskListWrapper":"_3ZbQT","taskListTableRow":"_34SS0","taskListLookAheadRow":"_GzvG4","taskListMilestoneRow":"_3Ykml","taskListCell":"_3lLk3","taskListNameWrapper":"_nI1Xw","taskListExpander":"_2QjE6","taskListExpanderPlaceholder":"_1fnLB","taskListEmptyExpander":"_2TfEi","taskListText":"_2ZvXU"};
357
387
 
358
388
  var localeDateStringCache = {};
359
389
 
@@ -381,11 +411,15 @@ var TaskListTableDefault = function TaskListTableDefault(_ref) {
381
411
  var rowHeight = _ref.rowHeight,
382
412
  rowWidth = _ref.rowWidth,
383
413
  tasks = _ref.tasks,
414
+ scheduleType = _ref.scheduleType,
384
415
  leafTasks = _ref.leafTasks,
385
416
  fontFamily = _ref.fontFamily,
386
417
  fontSize = _ref.fontSize,
387
418
  locale = _ref.locale,
388
419
  onExpanderClick = _ref.onExpanderClick,
420
+ _ref$selectedTasks = _ref.selectedTasks,
421
+ selectedTasks = _ref$selectedTasks === void 0 ? [] : _ref$selectedTasks,
422
+ onTaskSelect = _ref.onTaskSelect,
389
423
  _ref$taskLabelRendere = _ref.taskLabelRenderer,
390
424
  taskLabelRenderer = _ref$taskLabelRendere === void 0 ? function (t) {
391
425
  return " " + t.name;
@@ -415,13 +449,36 @@ var TaskListTableDefault = function TaskListTableDefault(_ref) {
415
449
  }
416
450
  }
417
451
 
452
+ var isSelected = selectedTasks.includes(t.id);
418
453
  return React.createElement("div", {
419
- className: styles$1.taskListTableRow,
454
+ className: t.type === "milestone" ? styles$1.taskListMilestoneRow : scheduleType === "lookAhead" ? styles$1.taskListLookAheadRow : styles$1.taskListTableRow,
420
455
  style: {
421
456
  height: rowHeight
422
457
  },
423
458
  key: t.id + "row"
459
+ }, onTaskSelect && React.createElement("div", {
460
+ className: styles$1.taskListCell,
461
+ style: {
462
+ minWidth: parseInt(rowWidth) * 0.3,
463
+ maxWidth: parseInt(rowWidth) * 0.3
464
+ }
424
465
  }, React.createElement("div", {
466
+ className: styles$1.taskListText,
467
+ style: {
468
+ display: "flex",
469
+ justifyContent: "center",
470
+ alignItems: "center",
471
+ height: "100%",
472
+ paddingLeft: "0",
473
+ paddingRight: "0"
474
+ }
475
+ }, React.createElement("input", {
476
+ type: "checkbox",
477
+ checked: isSelected,
478
+ onChange: function onChange(e) {
479
+ return onTaskSelect(t.id, e.target.checked);
480
+ }
481
+ }))), React.createElement("div", {
425
482
  className: styles$1.taskListCell,
426
483
  style: {
427
484
  minWidth: parseInt(rowWidth) * 0.8,
@@ -480,7 +537,23 @@ var TaskListTableDefault = function TaskListTableDefault(_ref) {
480
537
  }
481
538
  }, React.createElement("div", {
482
539
  className: styles$1.taskListText
483
- }, "\xA0", toLocaleDateString(t.end, dateTimeOptions))));
540
+ }, "\xA0", toLocaleDateString(t.end, dateTimeOptions))), scheduleType === "lookAhead" && React.createElement("div", {
541
+ className: styles$1.taskListCell,
542
+ style: {
543
+ minWidth: parseInt(rowWidth) * 0.6,
544
+ maxWidth: parseInt(rowWidth) * 0.6
545
+ }
546
+ }, React.createElement("div", {
547
+ className: styles$1.taskListText
548
+ }, "\xA0", toLocaleDateString(t.actualStart, dateTimeOptions))), scheduleType === "lookAhead" && React.createElement("div", {
549
+ className: styles$1.taskListCell,
550
+ style: {
551
+ minWidth: parseInt(rowWidth) * 0.6,
552
+ maxWidth: parseInt(rowWidth) * 0.6
553
+ }
554
+ }, React.createElement("div", {
555
+ className: styles$1.taskListText
556
+ }, "\xA0", toLocaleDateString(t.actualEnd, dateTimeOptions))));
484
557
  }));
485
558
  };
486
559
 
@@ -647,6 +720,7 @@ var TaskList = function TaskList(_ref) {
647
720
  rowHeight = _ref.rowHeight,
648
721
  scrollY = _ref.scrollY,
649
722
  tasks = _ref.tasks,
723
+ scheduleType = _ref.scheduleType,
650
724
  leafTasks = _ref.leafTasks,
651
725
  selectedTask = _ref.selectedTask,
652
726
  setSelectedTask = _ref.setSelectedTask,
@@ -657,18 +731,62 @@ var TaskList = function TaskList(_ref) {
657
731
  horizontalContainerClass = _ref.horizontalContainerClass,
658
732
  TaskListHeader = _ref.TaskListHeader,
659
733
  TaskListTable = _ref.TaskListTable,
660
- taskLabelRenderer = _ref.taskLabelRenderer;
734
+ taskLabelRenderer = _ref.taskLabelRenderer,
735
+ onMultiSelect = _ref.onMultiSelect;
661
736
  var horizontalContainerRef = useRef(null);
737
+
738
+ var _useState = useState([]),
739
+ selectedTasks = _useState[0],
740
+ setSelectedTasks = _useState[1];
741
+
742
+ var prevSelectedTasksRef = useRef([]);
662
743
  useEffect(function () {
663
744
  if (horizontalContainerRef.current) {
664
745
  horizontalContainerRef.current.scrollTop = scrollY;
665
746
  }
666
747
  }, [scrollY]);
748
+ useEffect(function () {
749
+ if (onMultiSelect && JSON.stringify(prevSelectedTasksRef.current) !== JSON.stringify(selectedTasks)) {
750
+ var selectedTaskObjects = tasks.filter(function (task) {
751
+ return selectedTasks.includes(task.id);
752
+ });
753
+ prevSelectedTasksRef.current = [].concat(selectedTasks);
754
+ onMultiSelect(selectedTaskObjects);
755
+ }
756
+ }, [selectedTasks, tasks, onMultiSelect]);
757
+
758
+ var handleTaskSelect = function handleTaskSelect(taskId, selected) {
759
+ if (selected) {
760
+ setSelectedTasks(function (prev) {
761
+ return [].concat(prev, [taskId]);
762
+ });
763
+ } else {
764
+ setSelectedTasks(function (prev) {
765
+ return prev.filter(function (id) {
766
+ return id !== taskId;
767
+ });
768
+ });
769
+ }
770
+ };
771
+
772
+ var handleSelectAll = function handleSelectAll(selected) {
773
+ if (selected) {
774
+ setSelectedTasks(tasks.map(function (task) {
775
+ return task.id;
776
+ }));
777
+ } else {
778
+ setSelectedTasks([]);
779
+ }
780
+ };
781
+
667
782
  var headerProps = {
668
783
  headerHeight: headerHeight,
669
784
  fontFamily: fontFamily,
670
785
  fontSize: fontSize,
671
- rowWidth: rowWidth
786
+ rowWidth: rowWidth,
787
+ scheduleType: scheduleType,
788
+ allSelected: tasks.length > 0 && selectedTasks.length === tasks.length,
789
+ onSelectAll: onMultiSelect ? handleSelectAll : undefined
672
790
  };
673
791
  var selectedTaskId = selectedTask ? selectedTask.id : "";
674
792
  var tableProps = {
@@ -678,10 +796,13 @@ var TaskList = function TaskList(_ref) {
678
796
  fontSize: fontSize,
679
797
  tasks: tasks,
680
798
  leafTasks: leafTasks,
799
+ scheduleType: scheduleType,
681
800
  locale: locale,
682
801
  selectedTaskId: selectedTaskId,
683
802
  setSelectedTask: setSelectedTask,
684
803
  onExpanderClick: onExpanderClick,
804
+ selectedTasks: onMultiSelect ? selectedTasks : undefined,
805
+ onTaskSelect: onMultiSelect ? handleTaskSelect : undefined,
685
806
  taskLabelRenderer: taskLabelRenderer
686
807
  };
687
808
  return React.createElement("div", {
@@ -695,15 +816,17 @@ var TaskList = function TaskList(_ref) {
695
816
  }, React.createElement(TaskListTable, Object.assign({}, tableProps))));
696
817
  };
697
818
 
698
- var styles$4 = {"gridRow":"_2dZTy","gridRowLine":"_3rUKi","gridTick":"_RuwuK","darkerGridRow":"_2M-tt"};
819
+ var styles$4 = {"gridRow":"_2dZTy","gridRowLookAhead":"_2RRca","gridRowLine":"_3rUKi","gridTick":"_RuwuK","darkerGridRow":"_2M-tt"};
699
820
 
700
821
  var GridBody = function GridBody(_ref) {
701
822
  var tasks = _ref.tasks,
823
+ scheduleType = _ref.scheduleType,
702
824
  dates = _ref.dates,
703
825
  rowHeight = _ref.rowHeight,
704
826
  svgWidth = _ref.svgWidth,
705
827
  columnWidth = _ref.columnWidth,
706
828
  todayColor = _ref.todayColor,
829
+ weekendColor = _ref.weekendColor,
707
830
  rtl = _ref.rtl;
708
831
  var y = 0;
709
832
  var gridRows = [];
@@ -725,7 +848,7 @@ var GridBody = function GridBody(_ref) {
725
848
  y: y,
726
849
  width: svgWidth,
727
850
  height: rowHeight,
728
- className: isDarkerRow ? styles$4.darkerGridRow : styles$4.gridRow
851
+ className: isDarkerRow ? styles$4.darkerGridRow : scheduleType === "lookAhead" ? styles$4.gridRowLookAhead : styles$4.gridRow
729
852
  }));
730
853
  rowLines.push(React.createElement("line", {
731
854
  key: "RowLine" + task.id,
@@ -742,6 +865,7 @@ var GridBody = function GridBody(_ref) {
742
865
  var tickX = 0;
743
866
  var ticks = [];
744
867
  var today = React.createElement("rect", null);
868
+ var weekend = [];
745
869
 
746
870
  for (var i = 0; i < dates.length; i++) {
747
871
  var date = dates[i];
@@ -764,6 +888,16 @@ var GridBody = function GridBody(_ref) {
764
888
  });
765
889
  }
766
890
 
891
+ if (date.getDay() === 6 || date.getDay() === 0) {
892
+ weekend.push(React.createElement("rect", {
893
+ x: tickX,
894
+ y: 0,
895
+ width: columnWidth,
896
+ height: y,
897
+ fill: weekendColor
898
+ }));
899
+ }
900
+
767
901
  if (rtl && i + 1 !== dates.length && date.getTime() >= now.getTime() && dates[i + 1].getTime() < now.getTime()) {
768
902
  today = React.createElement("rect", {
769
903
  x: tickX + columnWidth,
@@ -785,7 +919,9 @@ var GridBody = function GridBody(_ref) {
785
919
  className: "rowLines"
786
920
  }, rowLines), React.createElement("g", {
787
921
  className: "ticks"
788
- }, ticks), React.createElement("g", {
922
+ }, ticks), scheduleType === "lookAhead" && React.createElement("g", {
923
+ className: "weekend"
924
+ }, weekend), React.createElement("g", {
789
925
  className: "today"
790
926
  }, today));
791
927
  };
@@ -1030,7 +1166,21 @@ var Calendar = function Calendar(_ref) {
1030
1166
  x1Line: columnWidth * (i + 1),
1031
1167
  y1Line: 0,
1032
1168
  y2Line: topDefaultHeight,
1033
- xText: columnWidth * (i + 1) - getDaysInMonth(date.getMonth(), date.getFullYear()) * columnWidth * 0.5,
1169
+ xText: topValues.length === 0 ? columnWidth * (i + 1) * 0.5 : columnWidth * (i + 1) - date.getDate() * columnWidth * 0.5,
1170
+ yText: topDefaultHeight * 0.9
1171
+ }));
1172
+ }
1173
+
1174
+ if (i + 1 === dates.length) {
1175
+ var _topValue = getLocaleMonth(date, locale) + " " + date.getFullYear();
1176
+
1177
+ topValues.push(React.createElement(TopPartOfCalendar, {
1178
+ key: _topValue + date.getFullYear(),
1179
+ value: _topValue,
1180
+ x1Line: columnWidth * (i + 1),
1181
+ y1Line: 0,
1182
+ y2Line: topDefaultHeight,
1183
+ xText: columnWidth * (i + 1) - date.getDate() * columnWidth * 0.5,
1034
1184
  yText: topDefaultHeight * 0.9
1035
1185
  }));
1036
1186
  }
@@ -1816,7 +1966,7 @@ var Bar = function Bar(_ref) {
1816
1966
  var handleHeight = task.height / 2 - 1;
1817
1967
 
1818
1968
  if (type == "planned") {
1819
- if (task.x1 && task.x2) return React.createElement("g", {
1969
+ 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", {
1820
1970
  className: styles$6.barWrapper,
1821
1971
  tabIndex: 0
1822
1972
  }, React.createElement(BarDisplay, {
@@ -1864,7 +2014,7 @@ var Bar = function Bar(_ref) {
1864
2014
  className: styles$6.barWrapper,
1865
2015
  tabIndex: 0
1866
2016
  });
1867
- } else if (task.actualx1 && task.actualx2) {
2017
+ } else if ((task === null || task === void 0 ? void 0 : task.actualx1) >= 0 && (task === null || task === void 0 ? void 0 : task.actualx2) >= 0) {
1868
2018
  return React.createElement("g", {
1869
2019
  className: styles$6.barWrapper,
1870
2020
  tabIndex: 0
@@ -2051,11 +2201,11 @@ var TaskItem = function TaskItem(props) {
2051
2201
  useEffect(function () {
2052
2202
  switch (task.typeInternal) {
2053
2203
  case "milestone":
2054
- setTaskItem([React.createElement(Milestone, Object.assign({}, props))]);
2204
+ if (task.x1 >= 0 && task.actualx1 >= 0) setTaskItem([React.createElement(Milestone, Object.assign({}, props))]);else setTaskItem([]);
2055
2205
  break;
2056
2206
 
2057
2207
  case "project":
2058
- setTaskItem([React.createElement(Project, Object.assign({}, props))]);
2208
+ 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.createElement(Project, Object.assign({}, props))]);else setTaskItem([]);
2059
2209
  break;
2060
2210
 
2061
2211
  case "smalltask":
@@ -2066,13 +2216,13 @@ var TaskItem = function TaskItem(props) {
2066
2216
  {
2067
2217
  var _taskItem = [];
2068
2218
 
2069
- if (task.x1 && task.x2) {
2219
+ if ((task === null || task === void 0 ? void 0 : task.x1) >= 0 && (task === null || task === void 0 ? void 0 : task.x2) >= 0) {
2070
2220
  _taskItem.push(React.createElement(Bar, Object.assign({}, props, {
2071
2221
  type: "planned"
2072
2222
  })));
2073
2223
  }
2074
2224
 
2075
- if (task.actualx1 && task.actualx2) {
2225
+ if ((task === null || task === void 0 ? void 0 : task.actualx1) >= 0 && (task === null || task === void 0 ? void 0 : task.actualx2) >= 0) {
2076
2226
  _taskItem.push(React.createElement(Bar, Object.assign({}, props, {
2077
2227
  type: "actual"
2078
2228
  })));
@@ -2383,7 +2533,7 @@ var TaskGanttContent = function TaskGanttContent(_ref) {
2383
2533
  return task.barChildren.map(function (child) {
2384
2534
  var _task$criticalPathArr, _task$criticalPathArr2;
2385
2535
 
2386
- return React.createElement(Arrow, {
2536
+ if (task.x2 > task.x1 || task.actualx2 > task.actualx1) return React.createElement(Arrow, {
2387
2537
  key: "Arrow from " + task.id + " to " + tasks[child.index].id,
2388
2538
  taskFrom: task,
2389
2539
  taskTo: tasks[child.index],
@@ -2394,6 +2544,11 @@ var TaskGanttContent = function TaskGanttContent(_ref) {
2394
2544
  arrowColor: ((_task$criticalPathArr = task.criticalPathArrows) === null || _task$criticalPathArr === void 0 ? void 0 : (_task$criticalPathArr2 = _task$criticalPathArr.find(function (arrow) {
2395
2545
  return arrow.taskId == tasks[child.index].id;
2396
2546
  })) === null || _task$criticalPathArr2 === void 0 ? void 0 : _task$criticalPathArr2.arrowColor) || "#808080"
2547
+ });else return React.createElement("g", {
2548
+ key: _task.id,
2549
+ style: {
2550
+ height: taskHeight
2551
+ }
2397
2552
  });
2398
2553
  });
2399
2554
  })), React.createElement("g", {
@@ -2515,6 +2670,12 @@ var Gantt = function Gantt(_ref) {
2515
2670
  var tasks = _ref.tasks,
2516
2671
  _ref$leafTasks = _ref.leafTasks,
2517
2672
  leafTasks = _ref$leafTasks === void 0 ? [] : _ref$leafTasks,
2673
+ _ref$scheduleType = _ref.scheduleType,
2674
+ scheduleType = _ref$scheduleType === void 0 ? "main" : _ref$scheduleType,
2675
+ _ref$startDate = _ref.startDate,
2676
+ startDate = _ref$startDate === void 0 ? new Date() : _ref$startDate,
2677
+ _ref$endDate = _ref.endDate,
2678
+ endDate = _ref$endDate === void 0 ? new Date() : _ref$endDate,
2518
2679
  _ref$headerHeight = _ref.headerHeight,
2519
2680
  headerHeight = _ref$headerHeight === void 0 ? 50 : _ref$headerHeight,
2520
2681
  _ref$columnWidth = _ref.columnWidth,
@@ -2571,6 +2732,8 @@ var Gantt = function Gantt(_ref) {
2571
2732
  arrowIndent = _ref$arrowIndent === void 0 ? 20 : _ref$arrowIndent,
2572
2733
  _ref$todayColor = _ref.todayColor,
2573
2734
  todayColor = _ref$todayColor === void 0 ? "rgba(252, 248, 227, 0.5)" : _ref$todayColor,
2735
+ _ref$weekendColor = _ref.weekendColor,
2736
+ weekendColor = _ref$weekendColor === void 0 ? "#f5f5f5" : _ref$weekendColor,
2574
2737
  viewDate = _ref.viewDate,
2575
2738
  _ref$TooltipContent = _ref.TooltipContent,
2576
2739
  TooltipContent = _ref$TooltipContent === void 0 ? StandardTooltipContent : _ref$TooltipContent,
@@ -2585,18 +2748,26 @@ var Gantt = function Gantt(_ref) {
2585
2748
  onDelete = _ref.onDelete,
2586
2749
  onSelect = _ref.onSelect,
2587
2750
  onExpanderClick = _ref.onExpanderClick,
2751
+ onMultiSelect = _ref.onMultiSelect,
2588
2752
  taskLabelRenderer = _ref.taskLabelRenderer;
2589
2753
  var wrapperRef = useRef(null);
2590
2754
  var taskListRef = useRef(null);
2591
2755
 
2592
2756
  var _useState = useState(function () {
2593
2757
  var _ganttDateRange = ganttDateRange(tasks, viewMode, preStepsCount),
2594
- startDate = _ganttDateRange[0],
2595
- endDate = _ganttDateRange[1];
2758
+ startDateRange = _ganttDateRange[0],
2759
+ endDateRange = _ganttDateRange[1];
2760
+
2761
+ if (scheduleType === "lookAhead") {
2762
+ return {
2763
+ viewMode: viewMode,
2764
+ dates: seedDates(startDate, endDate, viewMode)
2765
+ };
2766
+ }
2596
2767
 
2597
2768
  return {
2598
2769
  viewMode: viewMode,
2599
- dates: seedDates(startDate, endDate, viewMode)
2770
+ dates: seedDates(startDateRange, endDateRange, viewMode)
2600
2771
  };
2601
2772
  }),
2602
2773
  dateSetup = _useState[0],
@@ -2655,6 +2826,14 @@ var Gantt = function Gantt(_ref) {
2655
2826
  ignoreScrollEvent = _useState12[0],
2656
2827
  setIgnoreScrollEvent = _useState12[1];
2657
2828
 
2829
+ useEffect(function () {
2830
+ if (scheduleType === "lookAhead" && startDate && endDate) {
2831
+ setDateSetup({
2832
+ viewMode: viewMode,
2833
+ dates: seedDates(startDate, endDate, viewMode)
2834
+ });
2835
+ }
2836
+ }, [startDate, endDate]);
2658
2837
  useEffect(function () {
2659
2838
  var filteredTasks;
2660
2839
 
@@ -2667,10 +2846,14 @@ var Gantt = function Gantt(_ref) {
2667
2846
  filteredTasks = filteredTasks.sort(sortTasks);
2668
2847
 
2669
2848
  var _ganttDateRange2 = ganttDateRange(filteredTasks, viewMode, preStepsCount),
2670
- startDate = _ganttDateRange2[0],
2671
- endDate = _ganttDateRange2[1];
2849
+ startDateRange = _ganttDateRange2[0],
2850
+ endDateRange = _ganttDateRange2[1];
2672
2851
 
2673
- var newDates = seedDates(startDate, endDate, viewMode);
2852
+ var newDates = seedDates(startDateRange, endDateRange, viewMode);
2853
+
2854
+ if (scheduleType === "lookAhead") {
2855
+ newDates = seedDates(startDate, endDate, viewMode);
2856
+ }
2674
2857
 
2675
2858
  if (rtl) {
2676
2859
  newDates = newDates.reverse();
@@ -2680,18 +2863,24 @@ var Gantt = function Gantt(_ref) {
2680
2863
  }
2681
2864
  }
2682
2865
 
2683
- setDateSetup({
2684
- dates: newDates,
2685
- viewMode: viewMode
2686
- });
2866
+ if (scheduleType !== "lookAhead") {
2867
+ setDateSetup({
2868
+ dates: seedDates(startDateRange, endDateRange, viewMode),
2869
+ viewMode: viewMode
2870
+ });
2871
+ }
2687
2872
 
2688
2873
  var _getCriticalPaths = getCriticalPaths(leafTasks),
2689
2874
  primaryPath = _getCriticalPaths[0],
2690
2875
  secondaryPath = _getCriticalPaths[1];
2691
2876
 
2692
2877
  uncolorAll(tasks);
2693
- colorPath(secondaryPath, "#00ff00", tasks);
2694
- colorPath(primaryPath, "#ff0000", tasks);
2878
+
2879
+ if (scheduleType !== "lookAhead") {
2880
+ colorPath(secondaryPath, "#00ff00", tasks);
2881
+ colorPath(primaryPath, "#ff0000", tasks);
2882
+ }
2883
+
2695
2884
  setBarTasks(convertToBarTasks(filteredTasks, newDates, columnWidth, rowHeight, taskHeight, barCornerRadius, handleWidth, rtl, barProgressColor, barProgressSelectedColor, barBackgroundColor, barBackgroundSelectedColor, projectProgressColor, projectProgressSelectedColor, projectBackgroundColor, projectBackgroundSelectedColor, milestoneBackgroundColor, milestoneBackgroundSelectedColor));
2696
2885
  }, [tasks, viewMode, preStepsCount, rowHeight, barCornerRadius, columnWidth, taskHeight, handleWidth, barProgressColor, barProgressSelectedColor, barBackgroundColor, barBackgroundSelectedColor, projectProgressColor, projectProgressSelectedColor, projectBackgroundColor, projectBackgroundSelectedColor, milestoneBackgroundColor, milestoneBackgroundSelectedColor, rtl, scrollX, onExpanderClick]);
2697
2886
  useEffect(function () {
@@ -2910,9 +3099,11 @@ var Gantt = function Gantt(_ref) {
2910
3099
  columnWidth: columnWidth,
2911
3100
  svgWidth: svgWidth,
2912
3101
  tasks: tasks,
3102
+ scheduleType: scheduleType,
2913
3103
  rowHeight: rowHeight,
2914
3104
  dates: dateSetup.dates,
2915
3105
  todayColor: todayColor,
3106
+ weekendColor: weekendColor,
2916
3107
  rtl: rtl
2917
3108
  };
2918
3109
  var calendarProps = {
@@ -2956,6 +3147,7 @@ var Gantt = function Gantt(_ref) {
2956
3147
  fontSize: fontSize,
2957
3148
  tasks: barTasks,
2958
3149
  leafTasks: leafTasks,
3150
+ scheduleType: scheduleType,
2959
3151
  locale: locale,
2960
3152
  headerHeight: headerHeight,
2961
3153
  scrollY: scrollY,
@@ -2968,7 +3160,8 @@ var Gantt = function Gantt(_ref) {
2968
3160
  onDoubleClick: onDoubleClick,
2969
3161
  TaskListHeader: TaskListHeader,
2970
3162
  TaskListTable: TaskListTable,
2971
- taskLabelRenderer: taskLabelRenderer
3163
+ taskLabelRenderer: taskLabelRenderer,
3164
+ onMultiSelect: onMultiSelect
2972
3165
  };
2973
3166
  return React.createElement("div", null, React.createElement("div", {
2974
3167
  className: styles$9.wrapper,