gantt-task-react-powern 0.6.1 → 0.6.2
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/task-gantt-content.d.ts +4 -0
- package/dist/components/grid/grid-body.d.ts +4 -0
- package/dist/components/task-list/task-list-table.d.ts +2 -0
- package/dist/components/task-list/task-list.d.ts +2 -0
- package/dist/index.js +206 -96
- package/dist/index.js.map +1 -1
- package/dist/index.modern.js +206 -96
- package/dist/index.modern.js.map +1 -1
- package/package.json +2 -1
package/dist/index.modern.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import React, { useMemo, useRef, useState, useEffect } from 'react';
|
|
2
|
+
import { useVirtualizer } from '@tanstack/react-virtual';
|
|
2
3
|
|
|
3
4
|
function _extends() {
|
|
4
5
|
_extends = Object.assign || function (target) {
|
|
@@ -423,7 +424,8 @@ var TaskListTableDefault = function TaskListTableDefault(_ref) {
|
|
|
423
424
|
_ref$taskLabelRendere = _ref.taskLabelRenderer,
|
|
424
425
|
taskLabelRenderer = _ref$taskLabelRendere === void 0 ? function (t) {
|
|
425
426
|
return " " + t.name;
|
|
426
|
-
} : _ref$taskLabelRendere
|
|
427
|
+
} : _ref$taskLabelRendere,
|
|
428
|
+
virtualItems = _ref.virtualItems;
|
|
427
429
|
var toLocaleDateString = useMemo(function () {
|
|
428
430
|
return toLocaleDateStringFactory(locale);
|
|
429
431
|
}, [locale]);
|
|
@@ -444,13 +446,25 @@ var TaskListTableDefault = function TaskListTableDefault(_ref) {
|
|
|
444
446
|
return hasSelectedAncestor(parentWbs, selectedSet, allTasks);
|
|
445
447
|
};
|
|
446
448
|
|
|
449
|
+
var itemsToRender = virtualItems || tasks.map(function (_, index) {
|
|
450
|
+
return {
|
|
451
|
+
index: index,
|
|
452
|
+
start: index * rowHeight,
|
|
453
|
+
size: rowHeight,
|
|
454
|
+
key: index,
|
|
455
|
+
end: (index + 1) * rowHeight,
|
|
456
|
+
lane: 0,
|
|
457
|
+
measureElement: function measureElement() {}
|
|
458
|
+
};
|
|
459
|
+
});
|
|
447
460
|
return React.createElement("div", {
|
|
448
461
|
className: styles$1.taskListWrapper,
|
|
449
462
|
style: {
|
|
450
463
|
fontFamily: fontFamily,
|
|
451
464
|
fontSize: fontSize
|
|
452
465
|
}
|
|
453
|
-
},
|
|
466
|
+
}, itemsToRender.map(function (vi) {
|
|
467
|
+
var t = tasks[vi.index];
|
|
454
468
|
var expanderSymbol = "";
|
|
455
469
|
|
|
456
470
|
if (!(leafTaskIds.has(t.id) || t.type === "milestone")) {
|
|
@@ -464,6 +478,17 @@ var TaskListTableDefault = function TaskListTableDefault(_ref) {
|
|
|
464
478
|
var isSelected = selectedTasks.includes(t.id);
|
|
465
479
|
var isAncestorSelected = hasSelectedAncestor(t.id, new Set(selectedTasks), tasks);
|
|
466
480
|
return React.createElement("div", {
|
|
481
|
+
key: "" + vi.key,
|
|
482
|
+
"data-index": vi.index,
|
|
483
|
+
style: {
|
|
484
|
+
position: "absolute",
|
|
485
|
+
top: 0,
|
|
486
|
+
left: 0,
|
|
487
|
+
width: "100%",
|
|
488
|
+
height: vi.size + "px",
|
|
489
|
+
transform: "translateY(" + vi.start + "px)"
|
|
490
|
+
}
|
|
491
|
+
}, React.createElement("div", {
|
|
467
492
|
className: t.type === "milestone" ? styles$1.taskListMilestoneRow : scheduleType === "lookAhead" ? styles$1.taskListLookAheadRow : styles$1.taskListTableRow,
|
|
468
493
|
style: {
|
|
469
494
|
height: rowHeight
|
|
@@ -567,7 +592,7 @@ var TaskListTableDefault = function TaskListTableDefault(_ref) {
|
|
|
567
592
|
}
|
|
568
593
|
}, React.createElement("div", {
|
|
569
594
|
className: styles$1.taskListText
|
|
570
|
-
}, "\xA0", toLocaleDateString(t.actualEnd, dateTimeOptions))));
|
|
595
|
+
}, "\xA0", toLocaleDateString(t.actualEnd, dateTimeOptions)))));
|
|
571
596
|
}));
|
|
572
597
|
};
|
|
573
598
|
|
|
@@ -759,6 +784,16 @@ var TaskList = function TaskList(_ref) {
|
|
|
759
784
|
|
|
760
785
|
var prevSelectedTasksRef = useRef([]);
|
|
761
786
|
var expandedTasks = useRef([]);
|
|
787
|
+
var virtualizer = useVirtualizer({
|
|
788
|
+
count: tasks.length,
|
|
789
|
+
getScrollElement: function getScrollElement() {
|
|
790
|
+
return horizontalContainerRef.current;
|
|
791
|
+
},
|
|
792
|
+
estimateSize: function estimateSize() {
|
|
793
|
+
return rowHeight;
|
|
794
|
+
},
|
|
795
|
+
overscan: 5
|
|
796
|
+
});
|
|
762
797
|
useEffect(function () {
|
|
763
798
|
if (horizontalContainerRef.current) {
|
|
764
799
|
horizontalContainerRef.current.scrollTop = scrollY;
|
|
@@ -910,8 +945,10 @@ var TaskList = function TaskList(_ref) {
|
|
|
910
945
|
onExpanderClick: onExpanderClick,
|
|
911
946
|
selectedTasks: onMultiSelect ? selectedTasks : undefined,
|
|
912
947
|
onTaskSelect: onMultiSelect ? handleTaskSelect : undefined,
|
|
913
|
-
taskLabelRenderer: taskLabelRenderer
|
|
948
|
+
taskLabelRenderer: taskLabelRenderer,
|
|
949
|
+
virtualItems: virtualizer.getVirtualItems()
|
|
914
950
|
};
|
|
951
|
+
console.debug(virtualizer.getTotalSize());
|
|
915
952
|
return React.createElement("div", {
|
|
916
953
|
ref: taskListRef
|
|
917
954
|
}, React.createElement(TaskListHeader, Object.assign({}, headerProps)), React.createElement("div", {
|
|
@@ -920,7 +957,13 @@ var TaskList = function TaskList(_ref) {
|
|
|
920
957
|
style: ganttHeight ? {
|
|
921
958
|
height: ganttHeight
|
|
922
959
|
} : {}
|
|
923
|
-
}, React.createElement(
|
|
960
|
+
}, React.createElement("div", {
|
|
961
|
+
style: {
|
|
962
|
+
height: virtualizer.getTotalSize() + "px",
|
|
963
|
+
width: "100%",
|
|
964
|
+
position: "relative"
|
|
965
|
+
}
|
|
966
|
+
}, React.createElement(TaskListTable, Object.assign({}, tableProps)))));
|
|
924
967
|
};
|
|
925
968
|
|
|
926
969
|
var styles$4 = {"gridRow":"_2dZTy","gridRowLookAhead":"_2RRca","gridRowLine":"_3rUKi","gridTick":"_RuwuK","darkerGridRow":"_2M-tt"};
|
|
@@ -934,103 +977,123 @@ var GridBody = function GridBody(_ref) {
|
|
|
934
977
|
columnWidth = _ref.columnWidth,
|
|
935
978
|
todayColor = _ref.todayColor,
|
|
936
979
|
weekendColor = _ref.weekendColor,
|
|
937
|
-
rtl = _ref.rtl
|
|
938
|
-
|
|
939
|
-
|
|
940
|
-
|
|
941
|
-
|
|
942
|
-
|
|
943
|
-
|
|
944
|
-
|
|
945
|
-
|
|
946
|
-
|
|
947
|
-
|
|
948
|
-
|
|
949
|
-
|
|
950
|
-
|
|
951
|
-
|
|
952
|
-
gridRows.push(React.createElement("rect", {
|
|
953
|
-
key: "Row" + task.id,
|
|
954
|
-
x: "0",
|
|
955
|
-
y: y,
|
|
956
|
-
width: svgWidth,
|
|
957
|
-
height: rowHeight,
|
|
958
|
-
className: isDarkerRow ? styles$4.darkerGridRow : scheduleType === "lookAhead" ? styles$4.gridRowLookAhead : styles$4.gridRow
|
|
959
|
-
}));
|
|
960
|
-
rowLines.push(React.createElement("line", {
|
|
961
|
-
key: "RowLine" + task.id,
|
|
962
|
-
x: "0",
|
|
963
|
-
y1: y + rowHeight,
|
|
964
|
-
x2: svgWidth,
|
|
965
|
-
y2: y + rowHeight,
|
|
966
|
-
className: styles$4.gridRowLine
|
|
967
|
-
}));
|
|
968
|
-
y += rowHeight;
|
|
969
|
-
}
|
|
970
|
-
|
|
980
|
+
rtl = _ref.rtl,
|
|
981
|
+
_ref$virtualItems = _ref.virtualItems,
|
|
982
|
+
virtualItems = _ref$virtualItems === void 0 ? [] : _ref$virtualItems,
|
|
983
|
+
visibleStartY = _ref.visibleStartY,
|
|
984
|
+
visibleEndY = _ref.visibleEndY;
|
|
985
|
+
var visibleHeight = visibleEndY - visibleStartY;
|
|
986
|
+
var items = virtualItems.length > 0 ? virtualItems : tasks.map(function (_, i) {
|
|
987
|
+
return {
|
|
988
|
+
index: i,
|
|
989
|
+
start: i * rowHeight,
|
|
990
|
+
end: (i + 1) * rowHeight,
|
|
991
|
+
size: rowHeight,
|
|
992
|
+
key: i
|
|
993
|
+
};
|
|
994
|
+
});
|
|
971
995
|
var now = new Date();
|
|
972
|
-
var
|
|
973
|
-
var
|
|
974
|
-
var
|
|
975
|
-
var weekend = [];
|
|
996
|
+
var x = 0;
|
|
997
|
+
var todayRects = [];
|
|
998
|
+
var weekendRects = [];
|
|
976
999
|
|
|
977
1000
|
for (var i = 0; i < dates.length; i++) {
|
|
978
1001
|
var date = dates[i];
|
|
979
|
-
|
|
980
|
-
key: date.getTime(),
|
|
981
|
-
x1: tickX,
|
|
982
|
-
y1: 0,
|
|
983
|
-
x2: tickX,
|
|
984
|
-
y2: y,
|
|
985
|
-
className: styles$4.gridTick
|
|
986
|
-
}));
|
|
1002
|
+
var isTodayColumn = i + 1 < dates.length && date.getTime() < now.getTime() && dates[i + 1].getTime() >= now.getTime() || i + 1 === dates.length && date.getTime() <= now.getTime() && addToDate(date, date.getTime() - dates[i - 1].getTime(), "millisecond").getTime() > now.getTime();
|
|
987
1003
|
|
|
988
|
-
if (
|
|
989
|
-
|
|
990
|
-
|
|
991
|
-
|
|
1004
|
+
if (isTodayColumn) {
|
|
1005
|
+
todayRects.push(React.createElement("rect", {
|
|
1006
|
+
key: "today-" + i,
|
|
1007
|
+
x: rtl ? x + columnWidth : x,
|
|
1008
|
+
y: visibleStartY,
|
|
992
1009
|
width: columnWidth,
|
|
993
|
-
height:
|
|
1010
|
+
height: visibleHeight,
|
|
994
1011
|
fill: todayColor
|
|
995
|
-
});
|
|
1012
|
+
}));
|
|
996
1013
|
}
|
|
997
1014
|
|
|
998
|
-
if (date.
|
|
999
|
-
|
|
1000
|
-
|
|
1001
|
-
|
|
1015
|
+
if (rtl && i + 1 < dates.length && date.getTime() >= now.getTime() && dates[i + 1].getTime() < now.getTime()) {
|
|
1016
|
+
todayRects.push(React.createElement("rect", {
|
|
1017
|
+
key: "today-rtl-" + i,
|
|
1018
|
+
x: x,
|
|
1019
|
+
y: visibleStartY,
|
|
1002
1020
|
width: columnWidth,
|
|
1003
|
-
height:
|
|
1004
|
-
fill:
|
|
1021
|
+
height: visibleHeight,
|
|
1022
|
+
fill: todayColor
|
|
1005
1023
|
}));
|
|
1006
1024
|
}
|
|
1007
1025
|
|
|
1008
|
-
if (
|
|
1009
|
-
|
|
1010
|
-
|
|
1011
|
-
|
|
1026
|
+
if (date.getDay() === 0 || date.getDay() === 6) {
|
|
1027
|
+
weekendRects.push(React.createElement("rect", {
|
|
1028
|
+
key: "weekend-" + i,
|
|
1029
|
+
x: x,
|
|
1030
|
+
y: visibleStartY,
|
|
1012
1031
|
width: columnWidth,
|
|
1013
|
-
height:
|
|
1014
|
-
fill:
|
|
1015
|
-
});
|
|
1032
|
+
height: visibleHeight,
|
|
1033
|
+
fill: weekendColor
|
|
1034
|
+
}));
|
|
1016
1035
|
}
|
|
1017
1036
|
|
|
1018
|
-
|
|
1037
|
+
x += columnWidth;
|
|
1019
1038
|
}
|
|
1020
1039
|
|
|
1040
|
+
x = 0;
|
|
1041
|
+
var tickLines = dates.map(function (_, i) {
|
|
1042
|
+
var line = React.createElement("line", {
|
|
1043
|
+
key: "tick-" + i,
|
|
1044
|
+
x1: x,
|
|
1045
|
+
y1: visibleStartY,
|
|
1046
|
+
x2: x,
|
|
1047
|
+
y2: visibleEndY,
|
|
1048
|
+
className: styles$4.gridTick
|
|
1049
|
+
});
|
|
1050
|
+
x += columnWidth;
|
|
1051
|
+
return line;
|
|
1052
|
+
});
|
|
1053
|
+
var rowBackgrounds = [];
|
|
1054
|
+
var rowLines = [];
|
|
1055
|
+
rowLines.push(React.createElement("line", {
|
|
1056
|
+
key: "top",
|
|
1057
|
+
x1: 0,
|
|
1058
|
+
y1: visibleStartY,
|
|
1059
|
+
x2: svgWidth,
|
|
1060
|
+
y2: visibleStartY,
|
|
1061
|
+
className: styles$4.gridRowLine
|
|
1062
|
+
}));
|
|
1063
|
+
items.forEach(function (vi) {
|
|
1064
|
+
var task = tasks[vi.index];
|
|
1065
|
+
var y = vi.start;
|
|
1066
|
+
var isMilestone = task.type === "milestone";
|
|
1067
|
+
rowBackgrounds.push(React.createElement("rect", {
|
|
1068
|
+
key: "bg-" + vi.key,
|
|
1069
|
+
x: 0,
|
|
1070
|
+
y: y,
|
|
1071
|
+
width: svgWidth,
|
|
1072
|
+
height: rowHeight,
|
|
1073
|
+
className: isMilestone ? styles$4.darkerGridRow : scheduleType === "lookAhead" ? styles$4.gridRowLookAhead : styles$4.gridRow
|
|
1074
|
+
}));
|
|
1075
|
+
rowLines.push(React.createElement("line", {
|
|
1076
|
+
key: "line-" + vi.key,
|
|
1077
|
+
x1: 0,
|
|
1078
|
+
y1: y + rowHeight,
|
|
1079
|
+
x2: svgWidth,
|
|
1080
|
+
y2: y + rowHeight,
|
|
1081
|
+
className: styles$4.gridRowLine
|
|
1082
|
+
}));
|
|
1083
|
+
});
|
|
1021
1084
|
return React.createElement("g", {
|
|
1022
1085
|
className: "gridBody"
|
|
1023
1086
|
}, React.createElement("g", {
|
|
1024
1087
|
className: "rows"
|
|
1025
|
-
},
|
|
1088
|
+
}, rowBackgrounds), React.createElement("g", {
|
|
1026
1089
|
className: "rowLines"
|
|
1027
1090
|
}, rowLines), React.createElement("g", {
|
|
1028
1091
|
className: "ticks"
|
|
1029
|
-
},
|
|
1092
|
+
}, tickLines), scheduleType === "lookAhead" && React.createElement("g", {
|
|
1030
1093
|
className: "weekend"
|
|
1031
|
-
},
|
|
1094
|
+
}, weekendRects), React.createElement("g", {
|
|
1032
1095
|
className: "today"
|
|
1033
|
-
},
|
|
1096
|
+
}, todayRects));
|
|
1034
1097
|
};
|
|
1035
1098
|
|
|
1036
1099
|
var Grid = function Grid(props) {
|
|
@@ -2463,6 +2526,10 @@ var TaskGanttContent = function TaskGanttContent(_ref) {
|
|
|
2463
2526
|
fontFamily = _ref.fontFamily,
|
|
2464
2527
|
fontSize = _ref.fontSize,
|
|
2465
2528
|
rtl = _ref.rtl,
|
|
2529
|
+
_ref$virtualItems = _ref.virtualItems,
|
|
2530
|
+
virtualItems = _ref$virtualItems === void 0 ? [] : _ref$virtualItems,
|
|
2531
|
+
ganttHeight = _ref.ganttHeight,
|
|
2532
|
+
scrollY = _ref.scrollY,
|
|
2466
2533
|
setGanttEvent = _ref.setGanttEvent,
|
|
2467
2534
|
setFailedTask = _ref.setFailedTask,
|
|
2468
2535
|
setSelectedTask = _ref.setSelectedTask,
|
|
@@ -2678,16 +2745,13 @@ var TaskGanttContent = function TaskGanttContent(_ref) {
|
|
|
2678
2745
|
};
|
|
2679
2746
|
|
|
2680
2747
|
var getArrows = function getArrows(isCritical, criticalPathType) {
|
|
2748
|
+
var visibleMinY = scrollY - rowHeight * 5;
|
|
2749
|
+
var visibleMaxY = scrollY + ganttHeight + rowHeight * 5;
|
|
2681
2750
|
return tasks.flatMap(function (_task) {
|
|
2682
2751
|
var task = _task.start.getTime() > 0 && _task.end.getTime() > 0 ? _task : undefined;
|
|
2683
2752
|
|
|
2684
2753
|
if (!task) {
|
|
2685
|
-
return [
|
|
2686
|
-
key: _task.id + (isCritical ? "-critical" : "-normal"),
|
|
2687
|
-
style: {
|
|
2688
|
-
height: taskHeight
|
|
2689
|
-
}
|
|
2690
|
-
})];
|
|
2754
|
+
return [];
|
|
2691
2755
|
}
|
|
2692
2756
|
|
|
2693
2757
|
return task.barChildren.map(function (child) {
|
|
@@ -2697,6 +2761,15 @@ var TaskGanttContent = function TaskGanttContent(_ref) {
|
|
|
2697
2761
|
var criticalTask = (_task$criticalPathArr = task.criticalPathArrows) === null || _task$criticalPathArr === void 0 ? void 0 : _task$criticalPathArr.find(function (arrow) {
|
|
2698
2762
|
return arrow.taskId === tasks[child.index].id && (!!arrow.criticalPathType ? arrow.criticalPathType === criticalPathType : !criticalPathType);
|
|
2699
2763
|
});
|
|
2764
|
+
var taskTo = tasks[child.index];
|
|
2765
|
+
var yFrom = task.y + taskHeight / 2;
|
|
2766
|
+
var yTo = taskTo.y + taskHeight / 2;
|
|
2767
|
+
var minY = Math.min(yFrom, yTo);
|
|
2768
|
+
var maxY = Math.max(yFrom, yTo);
|
|
2769
|
+
|
|
2770
|
+
if (maxY < visibleMinY || minY > visibleMaxY) {
|
|
2771
|
+
return null;
|
|
2772
|
+
}
|
|
2700
2773
|
|
|
2701
2774
|
if (!!criticalTask === isCritical) {
|
|
2702
2775
|
return React.createElement(Arrow, {
|
|
@@ -2725,34 +2798,44 @@ var TaskGanttContent = function TaskGanttContent(_ref) {
|
|
|
2725
2798
|
className: "bar",
|
|
2726
2799
|
fontFamily: fontFamily,
|
|
2727
2800
|
fontSize: fontSize
|
|
2728
|
-
},
|
|
2729
|
-
var
|
|
2801
|
+
}, virtualItems.map(function (vi) {
|
|
2802
|
+
var _task = tasks[vi.index];
|
|
2803
|
+
|
|
2804
|
+
var task = _extends({}, _task, {
|
|
2805
|
+
y: 0
|
|
2806
|
+
});
|
|
2730
2807
|
|
|
2731
2808
|
if (!task && _task.typeInternal === "milestone") {
|
|
2732
|
-
return React.createElement(
|
|
2733
|
-
|
|
2809
|
+
return React.createElement("g", {
|
|
2810
|
+
key: _task.id,
|
|
2811
|
+
transform: "translate(0, " + vi.start + ")"
|
|
2812
|
+
}, React.createElement(Milestone, {
|
|
2813
|
+
task: task,
|
|
2734
2814
|
arrowIndent: arrowIndent,
|
|
2735
2815
|
taskHeight: taskHeight,
|
|
2736
2816
|
isProgressChangeable: false,
|
|
2737
2817
|
isDateChangeable: false,
|
|
2738
2818
|
isDelete: !_task.isDisabled,
|
|
2739
2819
|
onEventStart: handleBarEventStart,
|
|
2740
|
-
key: _task.id,
|
|
2741
2820
|
isSelected: !!selectedTask && _task.id === selectedTask.id,
|
|
2742
2821
|
rtl: rtl
|
|
2743
|
-
});
|
|
2822
|
+
}));
|
|
2744
2823
|
}
|
|
2745
2824
|
|
|
2746
2825
|
if (!task) {
|
|
2747
2826
|
return React.createElement("g", {
|
|
2748
2827
|
key: _task.id,
|
|
2828
|
+
transform: "translate(0, " + vi.start + ")",
|
|
2749
2829
|
style: {
|
|
2750
2830
|
height: taskHeight
|
|
2751
2831
|
}
|
|
2752
2832
|
});
|
|
2753
2833
|
}
|
|
2754
2834
|
|
|
2755
|
-
return React.createElement(
|
|
2835
|
+
return React.createElement("g", {
|
|
2836
|
+
key: task.id,
|
|
2837
|
+
transform: "translate(0, " + vi.start + ")"
|
|
2838
|
+
}, React.createElement(TaskItem, {
|
|
2756
2839
|
task: task,
|
|
2757
2840
|
arrowIndent: arrowIndent,
|
|
2758
2841
|
taskHeight: taskHeight,
|
|
@@ -2760,10 +2843,9 @@ var TaskGanttContent = function TaskGanttContent(_ref) {
|
|
|
2760
2843
|
isDateChangeable: !!onDateChange && !task.isDisabled,
|
|
2761
2844
|
isDelete: !task.isDisabled,
|
|
2762
2845
|
onEventStart: handleBarEventStart,
|
|
2763
|
-
key: task.id,
|
|
2764
2846
|
isSelected: !!selectedTask && task.id === selectedTask.id,
|
|
2765
2847
|
rtl: rtl
|
|
2766
|
-
});
|
|
2848
|
+
}));
|
|
2767
2849
|
})));
|
|
2768
2850
|
};
|
|
2769
2851
|
|
|
@@ -2781,9 +2863,24 @@ var TaskGantt = function TaskGantt(_ref) {
|
|
|
2781
2863
|
var verticalGanttContainerRef = useRef(null);
|
|
2782
2864
|
|
|
2783
2865
|
var newBarProps = _extends({}, barProps, {
|
|
2784
|
-
svg: ganttSVGRef
|
|
2866
|
+
svg: ganttSVGRef,
|
|
2867
|
+
ganttHeight: ganttHeight,
|
|
2868
|
+
scrollY: scrollY
|
|
2785
2869
|
});
|
|
2786
2870
|
|
|
2871
|
+
var buffer = barProps.rowHeight * 10;
|
|
2872
|
+
var visibleStartY = scrollY - buffer;
|
|
2873
|
+
var visibleEndY = scrollY + ganttHeight + buffer;
|
|
2874
|
+
var virtualizer = useVirtualizer({
|
|
2875
|
+
count: barProps.tasks.length,
|
|
2876
|
+
getScrollElement: function getScrollElement() {
|
|
2877
|
+
return horizontalContainerRef.current;
|
|
2878
|
+
},
|
|
2879
|
+
estimateSize: function estimateSize() {
|
|
2880
|
+
return barProps.rowHeight;
|
|
2881
|
+
},
|
|
2882
|
+
overscan: 20
|
|
2883
|
+
});
|
|
2787
2884
|
useEffect(function () {
|
|
2788
2885
|
if (horizontalContainerRef.current) {
|
|
2789
2886
|
horizontalContainerRef.current.scrollTop = scrollY;
|
|
@@ -2815,10 +2912,16 @@ var TaskGantt = function TaskGantt(_ref) {
|
|
|
2815
2912
|
}, React.createElement("svg", {
|
|
2816
2913
|
xmlns: "http://www.w3.org/2000/svg",
|
|
2817
2914
|
width: gridProps.svgWidth,
|
|
2818
|
-
height:
|
|
2915
|
+
height: virtualizer.getTotalSize(),
|
|
2819
2916
|
fontFamily: barProps.fontFamily,
|
|
2820
2917
|
ref: ganttSVGRef
|
|
2821
|
-
}, React.createElement(Grid, Object.assign({}, gridProps
|
|
2918
|
+
}, React.createElement(Grid, Object.assign({}, gridProps, {
|
|
2919
|
+
virtualItems: virtualizer.getVirtualItems(),
|
|
2920
|
+
visibleStartY: visibleStartY,
|
|
2921
|
+
visibleEndY: visibleEndY
|
|
2922
|
+
})), React.createElement(TaskGanttContent, Object.assign({}, newBarProps, {
|
|
2923
|
+
virtualItems: virtualizer.getVirtualItems()
|
|
2924
|
+
})))));
|
|
2822
2925
|
};
|
|
2823
2926
|
|
|
2824
2927
|
var styles$a = {"scrollWrapper":"_2k9Ys","scroll":"_19jgW"};
|
|
@@ -3019,6 +3122,9 @@ var Gantt = function Gantt(_ref) {
|
|
|
3019
3122
|
lastTouchY = _useState14[0],
|
|
3020
3123
|
setLastTouchY = _useState14[1];
|
|
3021
3124
|
|
|
3125
|
+
var buffer = rowHeight * 10;
|
|
3126
|
+
var visibleStartY = scrollY - buffer;
|
|
3127
|
+
var visibleEndY = scrollY + ganttHeight + buffer;
|
|
3022
3128
|
useEffect(function () {
|
|
3023
3129
|
if (scheduleType === "lookAhead" && startDate && endDate) {
|
|
3024
3130
|
setDateSetup({
|
|
@@ -3075,7 +3181,7 @@ var Gantt = function Gantt(_ref) {
|
|
|
3075
3181
|
}
|
|
3076
3182
|
|
|
3077
3183
|
setBarTasks(convertToBarTasks(filteredTasks, newDates, columnWidth, rowHeight, taskHeight, barCornerRadius, handleWidth, rtl, barProgressColor, barProgressSelectedColor, barBackgroundColor, barBackgroundSelectedColor, projectProgressColor, projectProgressSelectedColor, projectBackgroundColor, projectBackgroundSelectedColor, milestoneBackgroundColor, milestoneBackgroundSelectedColor));
|
|
3078
|
-
}, [tasks, viewMode, preStepsCount, rowHeight, barCornerRadius, columnWidth, taskHeight, handleWidth, barProgressColor, barProgressSelectedColor, barBackgroundColor, barBackgroundSelectedColor, projectProgressColor, projectProgressSelectedColor, projectBackgroundColor, projectBackgroundSelectedColor, milestoneBackgroundColor, milestoneBackgroundSelectedColor, rtl,
|
|
3184
|
+
}, [tasks, viewMode, preStepsCount, rowHeight, barCornerRadius, columnWidth, taskHeight, handleWidth, barProgressColor, barProgressSelectedColor, barBackgroundColor, barBackgroundSelectedColor, projectProgressColor, projectProgressSelectedColor, projectBackgroundColor, projectBackgroundSelectedColor, milestoneBackgroundColor, milestoneBackgroundSelectedColor, rtl, onExpanderClick]);
|
|
3079
3185
|
useEffect(function () {
|
|
3080
3186
|
if (viewMode === dateSetup.viewMode && (viewDate && !currentViewDate || viewDate && (currentViewDate === null || currentViewDate === void 0 ? void 0 : currentViewDate.valueOf()) !== viewDate.valueOf())) {
|
|
3081
3187
|
var dates = dateSetup.dates;
|
|
@@ -3350,7 +3456,9 @@ var Gantt = function Gantt(_ref) {
|
|
|
3350
3456
|
dates: dateSetup.dates,
|
|
3351
3457
|
todayColor: todayColor,
|
|
3352
3458
|
weekendColor: weekendColor,
|
|
3353
|
-
rtl: rtl
|
|
3459
|
+
rtl: rtl,
|
|
3460
|
+
visibleStartY: visibleStartY,
|
|
3461
|
+
visibleEndY: visibleEndY
|
|
3354
3462
|
};
|
|
3355
3463
|
var calendarProps = {
|
|
3356
3464
|
dateSetup: dateSetup,
|
|
@@ -3384,7 +3492,9 @@ var Gantt = function Gantt(_ref) {
|
|
|
3384
3492
|
onProgressChange: onProgressChange,
|
|
3385
3493
|
onDoubleClick: onDoubleClick,
|
|
3386
3494
|
onClick: onClick,
|
|
3387
|
-
onDelete: onDelete
|
|
3495
|
+
onDelete: onDelete,
|
|
3496
|
+
ganttHeight: ganttHeight,
|
|
3497
|
+
scrollY: scrollY
|
|
3388
3498
|
};
|
|
3389
3499
|
var tableProps = {
|
|
3390
3500
|
rowHeight: rowHeight,
|