gantt-task-react-v 1.0.37 → 1.0.38
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.
|
@@ -14,6 +14,7 @@ export type TaskListProps = {
|
|
|
14
14
|
distances: Distances;
|
|
15
15
|
fullRowHeight: number;
|
|
16
16
|
ganttFullHeight: number;
|
|
17
|
+
ganttHeight: number;
|
|
17
18
|
getTaskCurrentState: (task: Task) => Task;
|
|
18
19
|
handleAddTask: (task: Task | null) => void;
|
|
19
20
|
handleDeleteTasks: (task: RenderTask[]) => void;
|
|
@@ -4661,15 +4661,13 @@ const VerticalScroll = ({
|
|
|
4661
4661
|
isChangeInProgress,
|
|
4662
4662
|
onScroll,
|
|
4663
4663
|
rtl,
|
|
4664
|
-
verticalScrollbarRef
|
|
4665
|
-
containerHeight
|
|
4664
|
+
verticalScrollbarRef
|
|
4666
4665
|
}) => {
|
|
4667
|
-
const scrollHeight = containerHeight !== null && containerHeight !== void 0 ? Math.max(containerHeight - headerHeight, 100) : ganttHeight;
|
|
4668
4666
|
return /* @__PURE__ */ jsx(
|
|
4669
4667
|
"div",
|
|
4670
4668
|
{
|
|
4671
4669
|
style: {
|
|
4672
|
-
height:
|
|
4670
|
+
height: ganttHeight,
|
|
4673
4671
|
marginTop: headerHeight,
|
|
4674
4672
|
marginLeft: rtl ? void 0 : "-1rem",
|
|
4675
4673
|
pointerEvents: isChangeInProgress ? "none" : void 0
|
|
@@ -5164,7 +5162,6 @@ const DEFAULT_THEME = {
|
|
|
5164
5162
|
expandIconWidth: 20,
|
|
5165
5163
|
handleWidth: 8,
|
|
5166
5164
|
headerHeight: 50,
|
|
5167
|
-
ganttHeight: 600,
|
|
5168
5165
|
minimumRowDisplayed: 4,
|
|
5169
5166
|
nestedTaskNameOffset: 20,
|
|
5170
5167
|
relationCircleOffset: 10,
|
|
@@ -10640,14 +10637,14 @@ const TaskListTableDefaultInner = ({
|
|
|
10640
10637
|
);
|
|
10641
10638
|
};
|
|
10642
10639
|
const TaskListTable = memo(TaskListTableDefaultInner);
|
|
10643
|
-
const taskListRoot = "
|
|
10644
|
-
const taskListHorizontalScroll = "
|
|
10645
|
-
const taskListResizer = "
|
|
10646
|
-
const horizontalContainer$1 = "
|
|
10647
|
-
const tableWrapper = "
|
|
10648
|
-
const scrollToTop = "
|
|
10649
|
-
const scrollToBottom = "
|
|
10650
|
-
const hidden = "
|
|
10640
|
+
const taskListRoot = "_taskListRoot_yoz76_1";
|
|
10641
|
+
const taskListHorizontalScroll = "_taskListHorizontalScroll_yoz76_19";
|
|
10642
|
+
const taskListResizer = "_taskListResizer_yoz76_81";
|
|
10643
|
+
const horizontalContainer$1 = "_horizontalContainer_yoz76_145";
|
|
10644
|
+
const tableWrapper = "_tableWrapper_yoz76_159";
|
|
10645
|
+
const scrollToTop = "_scrollToTop_yoz76_173";
|
|
10646
|
+
const scrollToBottom = "_scrollToBottom_yoz76_189";
|
|
10647
|
+
const hidden = "_hidden_yoz76_205";
|
|
10651
10648
|
const styles$d = {
|
|
10652
10649
|
taskListRoot,
|
|
10653
10650
|
taskListHorizontalScroll,
|
|
@@ -10681,6 +10678,7 @@ const TaskListInner = ({
|
|
|
10681
10678
|
distances,
|
|
10682
10679
|
fullRowHeight,
|
|
10683
10680
|
ganttFullHeight,
|
|
10681
|
+
ganttHeight,
|
|
10684
10682
|
getTaskCurrentState,
|
|
10685
10683
|
handleAddTask,
|
|
10686
10684
|
handleDeleteTasks,
|
|
@@ -10811,16 +10809,17 @@ const TaskListInner = ({
|
|
|
10811
10809
|
ref: taskListContainerRef,
|
|
10812
10810
|
className: styles$d.horizontalContainer,
|
|
10813
10811
|
style: {
|
|
10814
|
-
height:
|
|
10815
|
-
|
|
10812
|
+
height: Math.max(
|
|
10813
|
+
ganttHeight - ((tableBottom == null ? void 0 : tableBottom.height) || 0),
|
|
10814
|
+
distances.minimumRowDisplayed * distances.rowHeight
|
|
10815
|
+
),
|
|
10816
10816
|
width: taskListWidth
|
|
10817
10817
|
},
|
|
10818
10818
|
children: /* @__PURE__ */ jsx(
|
|
10819
10819
|
"div",
|
|
10820
10820
|
{
|
|
10821
10821
|
style: {
|
|
10822
|
-
height:
|
|
10823
|
-
minHeight: Math.max(
|
|
10822
|
+
height: Math.max(
|
|
10824
10823
|
ganttFullHeight,
|
|
10825
10824
|
distances.minimumRowDisplayed * distances.rowHeight
|
|
10826
10825
|
),
|
|
@@ -13136,10 +13135,10 @@ const TaskGanttContentInner = (props) => {
|
|
|
13136
13135
|
] });
|
|
13137
13136
|
};
|
|
13138
13137
|
const TaskGanttContent = memo(TaskGanttContentInner);
|
|
13139
|
-
const ganttVerticalContainer = "
|
|
13140
|
-
const horizontalContainer = "
|
|
13141
|
-
const wrapper = "
|
|
13142
|
-
const calendarDragging = "
|
|
13138
|
+
const ganttVerticalContainer = "_ganttVerticalContainer_1wr55_1";
|
|
13139
|
+
const horizontalContainer = "_horizontalContainer_1wr55_73";
|
|
13140
|
+
const wrapper = "_wrapper_1wr55_85";
|
|
13141
|
+
const calendarDragging = "_calendarDragging_1wr55_109";
|
|
13143
13142
|
const styles$2 = {
|
|
13144
13143
|
ganttVerticalContainer,
|
|
13145
13144
|
horizontalContainer,
|
|
@@ -13154,6 +13153,7 @@ const TaskGanttInner = (props) => {
|
|
|
13154
13153
|
fullRowHeight,
|
|
13155
13154
|
fullSvgWidth,
|
|
13156
13155
|
ganttFullHeight,
|
|
13156
|
+
ganttHeight,
|
|
13157
13157
|
ganttSVGRef,
|
|
13158
13158
|
ganttTodayProps,
|
|
13159
13159
|
ganttTodayProps: {
|
|
@@ -13170,16 +13170,14 @@ const TaskGanttInner = (props) => {
|
|
|
13170
13170
|
const moveStateScrollRef = useRef(null);
|
|
13171
13171
|
const containerStyle = useMemo(
|
|
13172
13172
|
() => ({
|
|
13173
|
-
height:
|
|
13174
|
-
width: fullSvgWidth
|
|
13175
|
-
minHeight: minimumRowDisplayed * rowHeight
|
|
13173
|
+
height: Math.max(ganttHeight, minimumRowDisplayed * rowHeight),
|
|
13174
|
+
width: fullSvgWidth
|
|
13176
13175
|
}),
|
|
13177
|
-
[minimumRowDisplayed, rowHeight, fullSvgWidth]
|
|
13176
|
+
[ganttHeight, minimumRowDisplayed, rowHeight, fullSvgWidth]
|
|
13178
13177
|
);
|
|
13179
13178
|
const gridStyle = useMemo(
|
|
13180
13179
|
() => ({
|
|
13181
|
-
height:
|
|
13182
|
-
minHeight: Math.max(ganttFullHeight, minimumRowDisplayed * rowHeight),
|
|
13180
|
+
height: Math.max(ganttFullHeight, minimumRowDisplayed * rowHeight),
|
|
13183
13181
|
width: fullSvgWidth,
|
|
13184
13182
|
backgroundSize: `${columnWidth}px ${fullRowHeight * 2}px`,
|
|
13185
13183
|
backgroundPositionX: additionalLeftSpace || void 0,
|
|
@@ -13305,15 +13303,7 @@ const TaskGanttInner = (props) => {
|
|
|
13305
13303
|
ref: ganttSVGRef,
|
|
13306
13304
|
children: [
|
|
13307
13305
|
/* @__PURE__ */ jsx(GanttToday, { ...ganttTodayProps }),
|
|
13308
|
-
/* @__PURE__ */ jsx(
|
|
13309
|
-
"rect",
|
|
13310
|
-
{
|
|
13311
|
-
ref: contentRef,
|
|
13312
|
-
width: "100%",
|
|
13313
|
-
height: "100%",
|
|
13314
|
-
fill: "transparent"
|
|
13315
|
-
}
|
|
13316
|
-
),
|
|
13306
|
+
/* @__PURE__ */ jsx("rect", { ref: contentRef, width: "100%", height: "100%", fill: "transparent" }),
|
|
13317
13307
|
/* @__PURE__ */ jsx(TaskGanttContent, { ...barProps })
|
|
13318
13308
|
]
|
|
13319
13309
|
}
|
|
@@ -18598,9 +18588,28 @@ const Gantt = (props) => {
|
|
|
18598
18588
|
const [sortedTasks, setSortedTasks] = useState(
|
|
18599
18589
|
() => [...clientTasks].sort(sortTasks)
|
|
18600
18590
|
);
|
|
18591
|
+
const [containerHeight, setContainerHeight] = useState(
|
|
18592
|
+
void 0
|
|
18593
|
+
);
|
|
18601
18594
|
useEffect(() => {
|
|
18602
18595
|
setSortedTasks([...clientTasks].sort(sortTasks));
|
|
18603
18596
|
}, [clientTasks]);
|
|
18597
|
+
useEffect(() => {
|
|
18598
|
+
if (!wrapperRef.current) {
|
|
18599
|
+
return () => {
|
|
18600
|
+
};
|
|
18601
|
+
}
|
|
18602
|
+
const resizeObserver = new ResizeObserver((entries) => {
|
|
18603
|
+
for (const entry of entries) {
|
|
18604
|
+
const { height } = entry.contentRect;
|
|
18605
|
+
setContainerHeight(height);
|
|
18606
|
+
}
|
|
18607
|
+
});
|
|
18608
|
+
resizeObserver.observe(wrapperRef.current);
|
|
18609
|
+
return () => {
|
|
18610
|
+
resizeObserver.disconnect();
|
|
18611
|
+
};
|
|
18612
|
+
}, []);
|
|
18604
18613
|
const [childTasksMap, rootTasksMap] = useMemo(
|
|
18605
18614
|
() => getChildsAndRoots(sortedTasks, null),
|
|
18606
18615
|
[sortedTasks]
|
|
@@ -18678,34 +18687,21 @@ const Gantt = (props) => {
|
|
|
18678
18687
|
},
|
|
18679
18688
|
[maxLevelLength, fullRowHeight, (_a = taskList == null ? void 0 : taskList.tableBottom) == null ? void 0 : _a.height]
|
|
18680
18689
|
);
|
|
18681
|
-
const [containerHeight, setContainerHeight] = useState(null);
|
|
18682
|
-
useEffect(() => {
|
|
18683
|
-
const wrapperElement = wrapperRef.current;
|
|
18684
|
-
if (!wrapperElement) {
|
|
18685
|
-
return void 0;
|
|
18686
|
-
}
|
|
18687
|
-
const resizeObserver = new ResizeObserver((entries) => {
|
|
18688
|
-
for (const entry of entries) {
|
|
18689
|
-
const { height } = entry.contentRect;
|
|
18690
|
-
if (height > 0) {
|
|
18691
|
-
setContainerHeight(height);
|
|
18692
|
-
}
|
|
18693
|
-
}
|
|
18694
|
-
});
|
|
18695
|
-
resizeObserver.observe(wrapperElement);
|
|
18696
|
-
return () => {
|
|
18697
|
-
resizeObserver.disconnect();
|
|
18698
|
-
};
|
|
18699
|
-
}, []);
|
|
18700
18690
|
const ganttHeight = useMemo(() => {
|
|
18701
|
-
if (
|
|
18702
|
-
return Math.min(
|
|
18703
|
-
containerHeight - distances.headerHeight,
|
|
18704
|
-
ganttFullHeight
|
|
18705
|
-
);
|
|
18691
|
+
if (distances.ganttHeight) {
|
|
18692
|
+
return Math.min(distances.ganttHeight, ganttFullHeight);
|
|
18706
18693
|
}
|
|
18707
|
-
|
|
18708
|
-
|
|
18694
|
+
if (containerHeight) {
|
|
18695
|
+
const availableHeight = containerHeight - distances.headerHeight;
|
|
18696
|
+
return Math.min(availableHeight, ganttFullHeight);
|
|
18697
|
+
}
|
|
18698
|
+
return ganttFullHeight;
|
|
18699
|
+
}, [
|
|
18700
|
+
distances.ganttHeight,
|
|
18701
|
+
distances.headerHeight,
|
|
18702
|
+
ganttFullHeight,
|
|
18703
|
+
containerHeight
|
|
18704
|
+
]);
|
|
18709
18705
|
const [taskToRowIndexMap, rowIndexToTaskMap, mapGlobalRowIndexToTask] = useMemo(
|
|
18710
18706
|
() => getMapTaskToRowIndex(visibleTasks, comparisonLevels),
|
|
18711
18707
|
[visibleTasks, comparisonLevels]
|
|
@@ -19787,6 +19783,7 @@ const Gantt = (props) => {
|
|
|
19787
19783
|
distances,
|
|
19788
19784
|
fullRowHeight,
|
|
19789
19785
|
ganttFullHeight,
|
|
19786
|
+
ganttHeight,
|
|
19790
19787
|
getTaskCurrentState,
|
|
19791
19788
|
handleAddTask,
|
|
19792
19789
|
handleDeleteTasks,
|
|
@@ -19816,6 +19813,7 @@ const Gantt = (props) => {
|
|
|
19816
19813
|
distances,
|
|
19817
19814
|
fullRowHeight,
|
|
19818
19815
|
ganttFullHeight,
|
|
19816
|
+
ganttHeight,
|
|
19819
19817
|
getTaskCurrentState,
|
|
19820
19818
|
handleAddTask,
|
|
19821
19819
|
handleDeleteTasks,
|
|
@@ -19886,8 +19884,7 @@ const Gantt = (props) => {
|
|
|
19886
19884
|
isChangeInProgress: Boolean(changeInProgress),
|
|
19887
19885
|
onScroll: onVerticalScrollbarScrollY,
|
|
19888
19886
|
rtl,
|
|
19889
|
-
verticalScrollbarRef
|
|
19890
|
-
containerHeight
|
|
19887
|
+
verticalScrollbarRef
|
|
19891
19888
|
}
|
|
19892
19889
|
),
|
|
19893
19890
|
taskList.enableTableListContextMenu && !waitCommitTasks && /* @__PURE__ */ jsx(
|
|
@@ -4678,15 +4678,13 @@
|
|
|
4678
4678
|
isChangeInProgress,
|
|
4679
4679
|
onScroll,
|
|
4680
4680
|
rtl,
|
|
4681
|
-
verticalScrollbarRef
|
|
4682
|
-
containerHeight
|
|
4681
|
+
verticalScrollbarRef
|
|
4683
4682
|
}) => {
|
|
4684
|
-
const scrollHeight = containerHeight !== null && containerHeight !== void 0 ? Math.max(containerHeight - headerHeight, 100) : ganttHeight;
|
|
4685
4683
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
4686
4684
|
"div",
|
|
4687
4685
|
{
|
|
4688
4686
|
style: {
|
|
4689
|
-
height:
|
|
4687
|
+
height: ganttHeight,
|
|
4690
4688
|
marginTop: headerHeight,
|
|
4691
4689
|
marginLeft: rtl ? void 0 : "-1rem",
|
|
4692
4690
|
pointerEvents: isChangeInProgress ? "none" : void 0
|
|
@@ -5181,7 +5179,6 @@
|
|
|
5181
5179
|
expandIconWidth: 20,
|
|
5182
5180
|
handleWidth: 8,
|
|
5183
5181
|
headerHeight: 50,
|
|
5184
|
-
ganttHeight: 600,
|
|
5185
5182
|
minimumRowDisplayed: 4,
|
|
5186
5183
|
nestedTaskNameOffset: 20,
|
|
5187
5184
|
relationCircleOffset: 10,
|
|
@@ -10657,14 +10654,14 @@
|
|
|
10657
10654
|
);
|
|
10658
10655
|
};
|
|
10659
10656
|
const TaskListTable = React.memo(TaskListTableDefaultInner);
|
|
10660
|
-
const taskListRoot = "
|
|
10661
|
-
const taskListHorizontalScroll = "
|
|
10662
|
-
const taskListResizer = "
|
|
10663
|
-
const horizontalContainer$1 = "
|
|
10664
|
-
const tableWrapper = "
|
|
10665
|
-
const scrollToTop = "
|
|
10666
|
-
const scrollToBottom = "
|
|
10667
|
-
const hidden = "
|
|
10657
|
+
const taskListRoot = "_taskListRoot_yoz76_1";
|
|
10658
|
+
const taskListHorizontalScroll = "_taskListHorizontalScroll_yoz76_19";
|
|
10659
|
+
const taskListResizer = "_taskListResizer_yoz76_81";
|
|
10660
|
+
const horizontalContainer$1 = "_horizontalContainer_yoz76_145";
|
|
10661
|
+
const tableWrapper = "_tableWrapper_yoz76_159";
|
|
10662
|
+
const scrollToTop = "_scrollToTop_yoz76_173";
|
|
10663
|
+
const scrollToBottom = "_scrollToBottom_yoz76_189";
|
|
10664
|
+
const hidden = "_hidden_yoz76_205";
|
|
10668
10665
|
const styles$d = {
|
|
10669
10666
|
taskListRoot,
|
|
10670
10667
|
taskListHorizontalScroll,
|
|
@@ -10698,6 +10695,7 @@
|
|
|
10698
10695
|
distances,
|
|
10699
10696
|
fullRowHeight,
|
|
10700
10697
|
ganttFullHeight,
|
|
10698
|
+
ganttHeight,
|
|
10701
10699
|
getTaskCurrentState,
|
|
10702
10700
|
handleAddTask,
|
|
10703
10701
|
handleDeleteTasks,
|
|
@@ -10828,16 +10826,17 @@
|
|
|
10828
10826
|
ref: taskListContainerRef,
|
|
10829
10827
|
className: styles$d.horizontalContainer,
|
|
10830
10828
|
style: {
|
|
10831
|
-
height:
|
|
10832
|
-
|
|
10829
|
+
height: Math.max(
|
|
10830
|
+
ganttHeight - ((tableBottom == null ? void 0 : tableBottom.height) || 0),
|
|
10831
|
+
distances.minimumRowDisplayed * distances.rowHeight
|
|
10832
|
+
),
|
|
10833
10833
|
width: taskListWidth
|
|
10834
10834
|
},
|
|
10835
10835
|
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
10836
10836
|
"div",
|
|
10837
10837
|
{
|
|
10838
10838
|
style: {
|
|
10839
|
-
height:
|
|
10840
|
-
minHeight: Math.max(
|
|
10839
|
+
height: Math.max(
|
|
10841
10840
|
ganttFullHeight,
|
|
10842
10841
|
distances.minimumRowDisplayed * distances.rowHeight
|
|
10843
10842
|
),
|
|
@@ -13153,10 +13152,10 @@
|
|
|
13153
13152
|
] });
|
|
13154
13153
|
};
|
|
13155
13154
|
const TaskGanttContent = React.memo(TaskGanttContentInner);
|
|
13156
|
-
const ganttVerticalContainer = "
|
|
13157
|
-
const horizontalContainer = "
|
|
13158
|
-
const wrapper = "
|
|
13159
|
-
const calendarDragging = "
|
|
13155
|
+
const ganttVerticalContainer = "_ganttVerticalContainer_1wr55_1";
|
|
13156
|
+
const horizontalContainer = "_horizontalContainer_1wr55_73";
|
|
13157
|
+
const wrapper = "_wrapper_1wr55_85";
|
|
13158
|
+
const calendarDragging = "_calendarDragging_1wr55_109";
|
|
13160
13159
|
const styles$2 = {
|
|
13161
13160
|
ganttVerticalContainer,
|
|
13162
13161
|
horizontalContainer,
|
|
@@ -13171,6 +13170,7 @@
|
|
|
13171
13170
|
fullRowHeight,
|
|
13172
13171
|
fullSvgWidth,
|
|
13173
13172
|
ganttFullHeight,
|
|
13173
|
+
ganttHeight,
|
|
13174
13174
|
ganttSVGRef,
|
|
13175
13175
|
ganttTodayProps,
|
|
13176
13176
|
ganttTodayProps: {
|
|
@@ -13187,16 +13187,14 @@
|
|
|
13187
13187
|
const moveStateScrollRef = React.useRef(null);
|
|
13188
13188
|
const containerStyle = React.useMemo(
|
|
13189
13189
|
() => ({
|
|
13190
|
-
height:
|
|
13191
|
-
width: fullSvgWidth
|
|
13192
|
-
minHeight: minimumRowDisplayed * rowHeight
|
|
13190
|
+
height: Math.max(ganttHeight, minimumRowDisplayed * rowHeight),
|
|
13191
|
+
width: fullSvgWidth
|
|
13193
13192
|
}),
|
|
13194
|
-
[minimumRowDisplayed, rowHeight, fullSvgWidth]
|
|
13193
|
+
[ganttHeight, minimumRowDisplayed, rowHeight, fullSvgWidth]
|
|
13195
13194
|
);
|
|
13196
13195
|
const gridStyle = React.useMemo(
|
|
13197
13196
|
() => ({
|
|
13198
|
-
height:
|
|
13199
|
-
minHeight: Math.max(ganttFullHeight, minimumRowDisplayed * rowHeight),
|
|
13197
|
+
height: Math.max(ganttFullHeight, minimumRowDisplayed * rowHeight),
|
|
13200
13198
|
width: fullSvgWidth,
|
|
13201
13199
|
backgroundSize: `${columnWidth}px ${fullRowHeight * 2}px`,
|
|
13202
13200
|
backgroundPositionX: additionalLeftSpace || void 0,
|
|
@@ -13322,15 +13320,7 @@
|
|
|
13322
13320
|
ref: ganttSVGRef,
|
|
13323
13321
|
children: [
|
|
13324
13322
|
/* @__PURE__ */ jsxRuntime.jsx(GanttToday, { ...ganttTodayProps }),
|
|
13325
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
13326
|
-
"rect",
|
|
13327
|
-
{
|
|
13328
|
-
ref: contentRef,
|
|
13329
|
-
width: "100%",
|
|
13330
|
-
height: "100%",
|
|
13331
|
-
fill: "transparent"
|
|
13332
|
-
}
|
|
13333
|
-
),
|
|
13323
|
+
/* @__PURE__ */ jsxRuntime.jsx("rect", { ref: contentRef, width: "100%", height: "100%", fill: "transparent" }),
|
|
13334
13324
|
/* @__PURE__ */ jsxRuntime.jsx(TaskGanttContent, { ...barProps })
|
|
13335
13325
|
]
|
|
13336
13326
|
}
|
|
@@ -18615,9 +18605,28 @@
|
|
|
18615
18605
|
const [sortedTasks, setSortedTasks] = React.useState(
|
|
18616
18606
|
() => [...clientTasks].sort(sortTasks)
|
|
18617
18607
|
);
|
|
18608
|
+
const [containerHeight, setContainerHeight] = React.useState(
|
|
18609
|
+
void 0
|
|
18610
|
+
);
|
|
18618
18611
|
React.useEffect(() => {
|
|
18619
18612
|
setSortedTasks([...clientTasks].sort(sortTasks));
|
|
18620
18613
|
}, [clientTasks]);
|
|
18614
|
+
React.useEffect(() => {
|
|
18615
|
+
if (!wrapperRef.current) {
|
|
18616
|
+
return () => {
|
|
18617
|
+
};
|
|
18618
|
+
}
|
|
18619
|
+
const resizeObserver = new ResizeObserver((entries) => {
|
|
18620
|
+
for (const entry of entries) {
|
|
18621
|
+
const { height } = entry.contentRect;
|
|
18622
|
+
setContainerHeight(height);
|
|
18623
|
+
}
|
|
18624
|
+
});
|
|
18625
|
+
resizeObserver.observe(wrapperRef.current);
|
|
18626
|
+
return () => {
|
|
18627
|
+
resizeObserver.disconnect();
|
|
18628
|
+
};
|
|
18629
|
+
}, []);
|
|
18621
18630
|
const [childTasksMap, rootTasksMap] = React.useMemo(
|
|
18622
18631
|
() => getChildsAndRoots(sortedTasks, null),
|
|
18623
18632
|
[sortedTasks]
|
|
@@ -18695,34 +18704,21 @@
|
|
|
18695
18704
|
},
|
|
18696
18705
|
[maxLevelLength, fullRowHeight, (_a = taskList == null ? void 0 : taskList.tableBottom) == null ? void 0 : _a.height]
|
|
18697
18706
|
);
|
|
18698
|
-
const [containerHeight, setContainerHeight] = React.useState(null);
|
|
18699
|
-
React.useEffect(() => {
|
|
18700
|
-
const wrapperElement = wrapperRef.current;
|
|
18701
|
-
if (!wrapperElement) {
|
|
18702
|
-
return void 0;
|
|
18703
|
-
}
|
|
18704
|
-
const resizeObserver = new ResizeObserver((entries) => {
|
|
18705
|
-
for (const entry of entries) {
|
|
18706
|
-
const { height } = entry.contentRect;
|
|
18707
|
-
if (height > 0) {
|
|
18708
|
-
setContainerHeight(height);
|
|
18709
|
-
}
|
|
18710
|
-
}
|
|
18711
|
-
});
|
|
18712
|
-
resizeObserver.observe(wrapperElement);
|
|
18713
|
-
return () => {
|
|
18714
|
-
resizeObserver.disconnect();
|
|
18715
|
-
};
|
|
18716
|
-
}, []);
|
|
18717
18707
|
const ganttHeight = React.useMemo(() => {
|
|
18718
|
-
if (
|
|
18719
|
-
return Math.min(
|
|
18720
|
-
containerHeight - distances.headerHeight,
|
|
18721
|
-
ganttFullHeight
|
|
18722
|
-
);
|
|
18708
|
+
if (distances.ganttHeight) {
|
|
18709
|
+
return Math.min(distances.ganttHeight, ganttFullHeight);
|
|
18723
18710
|
}
|
|
18724
|
-
|
|
18725
|
-
|
|
18711
|
+
if (containerHeight) {
|
|
18712
|
+
const availableHeight = containerHeight - distances.headerHeight;
|
|
18713
|
+
return Math.min(availableHeight, ganttFullHeight);
|
|
18714
|
+
}
|
|
18715
|
+
return ganttFullHeight;
|
|
18716
|
+
}, [
|
|
18717
|
+
distances.ganttHeight,
|
|
18718
|
+
distances.headerHeight,
|
|
18719
|
+
ganttFullHeight,
|
|
18720
|
+
containerHeight
|
|
18721
|
+
]);
|
|
18726
18722
|
const [taskToRowIndexMap, rowIndexToTaskMap, mapGlobalRowIndexToTask] = React.useMemo(
|
|
18727
18723
|
() => getMapTaskToRowIndex(visibleTasks, comparisonLevels),
|
|
18728
18724
|
[visibleTasks, comparisonLevels]
|
|
@@ -19804,6 +19800,7 @@
|
|
|
19804
19800
|
distances,
|
|
19805
19801
|
fullRowHeight,
|
|
19806
19802
|
ganttFullHeight,
|
|
19803
|
+
ganttHeight,
|
|
19807
19804
|
getTaskCurrentState,
|
|
19808
19805
|
handleAddTask,
|
|
19809
19806
|
handleDeleteTasks,
|
|
@@ -19833,6 +19830,7 @@
|
|
|
19833
19830
|
distances,
|
|
19834
19831
|
fullRowHeight,
|
|
19835
19832
|
ganttFullHeight,
|
|
19833
|
+
ganttHeight,
|
|
19836
19834
|
getTaskCurrentState,
|
|
19837
19835
|
handleAddTask,
|
|
19838
19836
|
handleDeleteTasks,
|
|
@@ -19903,8 +19901,7 @@
|
|
|
19903
19901
|
isChangeInProgress: Boolean(changeInProgress),
|
|
19904
19902
|
onScroll: onVerticalScrollbarScrollY,
|
|
19905
19903
|
rtl,
|
|
19906
|
-
verticalScrollbarRef
|
|
19907
|
-
containerHeight
|
|
19904
|
+
verticalScrollbarRef
|
|
19908
19905
|
}
|
|
19909
19906
|
),
|
|
19910
19907
|
taskList.enableTableListContextMenu && !waitCommitTasks && /* @__PURE__ */ jsxRuntime.jsx(
|
package/dist/style.css
CHANGED
|
@@ -282,33 +282,32 @@
|
|
|
282
282
|
border-bottom: 1px solid var(--gantt-divider-color);
|
|
283
283
|
table-layout: fixed;
|
|
284
284
|
}
|
|
285
|
-
.
|
|
285
|
+
._taskListRoot_yoz76_1 {
|
|
286
286
|
position: relative;
|
|
287
|
-
/*noinspection CssUnresolvedCustomProperty*/
|
|
288
|
-
border-left: 1px solid var(--gantt-table-divider-color, var(--gantt-divider-color));
|
|
289
287
|
height: 100%;
|
|
290
288
|
display: flex;
|
|
291
289
|
flex-direction: column;
|
|
290
|
+
/*noinspection CssUnresolvedCustomProperty*/
|
|
291
|
+
border-left: 1px solid var(--gantt-table-divider-color, var(--gantt-divider-color));
|
|
292
292
|
}
|
|
293
293
|
|
|
294
|
-
.
|
|
294
|
+
._taskListHorizontalScroll_yoz76_19 {
|
|
295
295
|
overflow-x: scroll;
|
|
296
|
-
|
|
297
|
-
min-height: 0;
|
|
296
|
+
height: 100%;
|
|
298
297
|
display: flex;
|
|
299
298
|
flex-direction: column;
|
|
300
299
|
}
|
|
301
300
|
|
|
302
|
-
.
|
|
301
|
+
._taskListHorizontalScroll_yoz76_19::-webkit-scrollbar {
|
|
303
302
|
width: 1rem;
|
|
304
303
|
height: 1rem;
|
|
305
304
|
}
|
|
306
305
|
|
|
307
|
-
.
|
|
306
|
+
._taskListHorizontalScroll_yoz76_19::-webkit-scrollbar-corner {
|
|
308
307
|
background: transparent;
|
|
309
308
|
}
|
|
310
309
|
|
|
311
|
-
.
|
|
310
|
+
._taskListHorizontalScroll_yoz76_19::-webkit-scrollbar-thumb {
|
|
312
311
|
border: 4px solid transparent;
|
|
313
312
|
/*noinspection CssUnresolvedCustomProperty*/
|
|
314
313
|
background: var(--gantt-scrollbar-thumb-color);
|
|
@@ -316,14 +315,14 @@
|
|
|
316
315
|
background-clip: padding-box;
|
|
317
316
|
}
|
|
318
317
|
|
|
319
|
-
.
|
|
318
|
+
._taskListHorizontalScroll_yoz76_19::-webkit-scrollbar-thumb:hover {
|
|
320
319
|
border: 2px solid transparent;
|
|
321
320
|
/*noinspection CssUnresolvedCustomProperty*/
|
|
322
321
|
background: var(--gantt-scrollbar-thumb-color);
|
|
323
322
|
background-clip: padding-box;
|
|
324
323
|
}
|
|
325
324
|
|
|
326
|
-
.
|
|
325
|
+
._taskListResizer_yoz76_81 {
|
|
327
326
|
position: absolute;
|
|
328
327
|
top: 0;
|
|
329
328
|
right: -3px;
|
|
@@ -335,16 +334,16 @@
|
|
|
335
334
|
}
|
|
336
335
|
|
|
337
336
|
/*noinspection CssUnresolvedCustomProperty*/
|
|
338
|
-
.
|
|
337
|
+
._taskListResizer_yoz76_81:hover {
|
|
339
338
|
background-color: var(--gantt-table-hover-action-color);
|
|
340
339
|
filter: var(--gantt-hover-filter);
|
|
341
340
|
}
|
|
342
341
|
|
|
343
|
-
.
|
|
342
|
+
._taskListResizer_yoz76_81:hover::before {
|
|
344
343
|
display: none;
|
|
345
344
|
}
|
|
346
345
|
|
|
347
|
-
.
|
|
346
|
+
._taskListResizer_yoz76_81::before {
|
|
348
347
|
content: "";
|
|
349
348
|
position: absolute;
|
|
350
349
|
top: 0;
|
|
@@ -355,22 +354,21 @@
|
|
|
355
354
|
background-color: var(--gantt-table-resize-color, var(--gantt-divider-color));
|
|
356
355
|
}
|
|
357
356
|
|
|
358
|
-
.
|
|
357
|
+
._horizontalContainer_yoz76_145 {
|
|
359
358
|
margin: 0;
|
|
360
359
|
padding: 0;
|
|
361
360
|
overflow: hidden;
|
|
362
|
-
flex: 1;
|
|
363
|
-
min-height: 0;
|
|
361
|
+
flex-grow: 1;
|
|
364
362
|
}
|
|
365
363
|
|
|
366
|
-
.
|
|
364
|
+
._tableWrapper_yoz76_159 {
|
|
367
365
|
position: relative;
|
|
368
|
-
flex: 1;
|
|
369
|
-
|
|
370
|
-
|
|
366
|
+
flex-grow: 1;
|
|
367
|
+
display: flex;
|
|
368
|
+
flex-direction: column;
|
|
371
369
|
}
|
|
372
370
|
|
|
373
|
-
.
|
|
371
|
+
._scrollToTop_yoz76_173 {
|
|
374
372
|
position: absolute;
|
|
375
373
|
top: 0;
|
|
376
374
|
left: 0;
|
|
@@ -378,7 +376,7 @@
|
|
|
378
376
|
height: 20px;
|
|
379
377
|
}
|
|
380
378
|
|
|
381
|
-
.
|
|
379
|
+
._scrollToBottom_yoz76_189 {
|
|
382
380
|
position: absolute;
|
|
383
381
|
bottom: 0;
|
|
384
382
|
left: 0;
|
|
@@ -386,7 +384,7 @@
|
|
|
386
384
|
height: 20px;
|
|
387
385
|
}
|
|
388
386
|
|
|
389
|
-
.
|
|
387
|
+
._hidden_yoz76_205 {
|
|
390
388
|
display: none;
|
|
391
389
|
}
|
|
392
390
|
._ganttToday_1oyhk_1 {
|
|
@@ -580,7 +578,7 @@
|
|
|
580
578
|
user-select: none;
|
|
581
579
|
stroke-width: 0;
|
|
582
580
|
}
|
|
583
|
-
.
|
|
581
|
+
._ganttVerticalContainer_1wr55_1 {
|
|
584
582
|
overflow-x: scroll;
|
|
585
583
|
overflow-y: hidden;
|
|
586
584
|
font-size: 0;
|
|
@@ -589,22 +587,19 @@
|
|
|
589
587
|
/*noinspection CssUnresolvedCustomProperty*/
|
|
590
588
|
border-right: 1px solid var(--gantt-calendar-divider-color, var(--gantt-divider-color));
|
|
591
589
|
flex-grow: 1;
|
|
592
|
-
min-width: 0;
|
|
593
590
|
height: 100%;
|
|
594
|
-
display: flex;
|
|
595
|
-
flex-direction: column;
|
|
596
591
|
}
|
|
597
592
|
|
|
598
|
-
.
|
|
593
|
+
._ganttVerticalContainer_1wr55_1::-webkit-scrollbar {
|
|
599
594
|
width: 1rem;
|
|
600
595
|
height: 1rem;
|
|
601
596
|
}
|
|
602
597
|
|
|
603
|
-
.
|
|
598
|
+
._ganttVerticalContainer_1wr55_1::-webkit-scrollbar-corner {
|
|
604
599
|
background: transparent;
|
|
605
600
|
}
|
|
606
601
|
|
|
607
|
-
.
|
|
602
|
+
._ganttVerticalContainer_1wr55_1::-webkit-scrollbar-thumb {
|
|
608
603
|
border: 4px solid transparent;
|
|
609
604
|
/*noinspection CssUnresolvedCustomProperty*/
|
|
610
605
|
background: var(--gantt-scrollbar-thumb-color);
|
|
@@ -612,37 +607,32 @@
|
|
|
612
607
|
background-clip: padding-box;
|
|
613
608
|
}
|
|
614
609
|
|
|
615
|
-
.
|
|
610
|
+
._ganttVerticalContainer_1wr55_1::-webkit-scrollbar-thumb:hover {
|
|
616
611
|
border: 2px solid transparent;
|
|
617
612
|
/*noinspection CssUnresolvedCustomProperty*/
|
|
618
613
|
background: var(--gantt-scrollbar-thumb-color);
|
|
619
614
|
background-clip: padding-box;
|
|
620
615
|
}
|
|
621
616
|
|
|
622
|
-
.
|
|
617
|
+
._horizontalContainer_1wr55_73 {
|
|
623
618
|
margin: 0;
|
|
624
619
|
padding: 0;
|
|
625
620
|
overflow: hidden;
|
|
626
|
-
flex: 1;
|
|
627
|
-
min-height: 0;
|
|
628
621
|
}
|
|
629
622
|
|
|
630
|
-
.
|
|
623
|
+
._wrapper_1wr55_85 {
|
|
631
624
|
display: flex;
|
|
632
625
|
padding: 0;
|
|
633
626
|
margin: 0;
|
|
634
627
|
list-style: none;
|
|
635
628
|
outline: none;
|
|
636
629
|
position: relative;
|
|
630
|
+
height: 100%;
|
|
637
631
|
/*noinspection CssUnresolvedCustomProperty*/
|
|
638
632
|
border-bottom: 1px solid var(--gantt-divider-color);
|
|
639
|
-
height: 100%;
|
|
640
|
-
min-height: 0;
|
|
641
|
-
flex: 1;
|
|
642
|
-
overflow: hidden;
|
|
643
633
|
}
|
|
644
634
|
|
|
645
|
-
.
|
|
635
|
+
._calendarDragging_1wr55_109 {
|
|
646
636
|
cursor: grabbing;
|
|
647
637
|
}
|
|
648
638
|
/*noinspection CssUnresolvedCustomProperty*/
|
package/package.json
CHANGED