gantt-lib 0.86.0 → 0.86.1
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/index.css.map +1 -1
- package/dist/index.js +193 -148
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +193 -148
- package/dist/index.mjs.map +1 -1
- package/dist/styles.css +12 -8
- package/package.json +1 -1
package/dist/index.mjs
CHANGED
|
@@ -2837,6 +2837,7 @@ var TaskRow = React2.memo(
|
|
|
2837
2837
|
"div",
|
|
2838
2838
|
{
|
|
2839
2839
|
"data-filter-match": isFilterMatch ? "true" : "false",
|
|
2840
|
+
"data-gantt-task-row-id": task.id,
|
|
2840
2841
|
className: `gantt-tr-row ${isFilterMatch ? "gantt-tr-row-filter-match" : ""}`,
|
|
2841
2842
|
style: { height: `${rowHeight}px` },
|
|
2842
2843
|
children: [
|
|
@@ -6177,6 +6178,7 @@ var TaskListRow = React9.memo(
|
|
|
6177
6178
|
isParent ? "gantt-tl-row-parent" : ""
|
|
6178
6179
|
].filter(Boolean).join(" "),
|
|
6179
6180
|
style: { minHeight: `${rowHeight}px`, position: "relative" },
|
|
6181
|
+
"data-gantt-task-row-id": task.id,
|
|
6180
6182
|
onClick: handleRowClickInternal,
|
|
6181
6183
|
onKeyDown: handleRowKeyDown,
|
|
6182
6184
|
onDragOver: (e) => onDragOver?.(rowIndex, e),
|
|
@@ -9516,6 +9518,40 @@ function TaskGanttChartInner(props, ref) {
|
|
|
9516
9518
|
const handleTaskSelect = useCallback8((taskId) => {
|
|
9517
9519
|
setSelectedTaskId(taskId);
|
|
9518
9520
|
}, []);
|
|
9521
|
+
const hoveredRowElementsRef = useRef9([]);
|
|
9522
|
+
const clearHoveredRows = useCallback8(() => {
|
|
9523
|
+
for (const element of hoveredRowElementsRef.current) {
|
|
9524
|
+
element.classList.remove("gantt-tl-row-hovered", "gantt-tr-row-hovered");
|
|
9525
|
+
}
|
|
9526
|
+
hoveredRowElementsRef.current = [];
|
|
9527
|
+
}, []);
|
|
9528
|
+
const applyHoveredRows = useCallback8((taskId) => {
|
|
9529
|
+
const root = scrollContentRef.current;
|
|
9530
|
+
if (!root) return;
|
|
9531
|
+
clearHoveredRows();
|
|
9532
|
+
const nextHoveredRows = Array.from(
|
|
9533
|
+
root.querySelectorAll("[data-gantt-task-row-id]")
|
|
9534
|
+
).filter((element) => element.dataset.ganttTaskRowId === taskId);
|
|
9535
|
+
for (const element of nextHoveredRows) {
|
|
9536
|
+
if (element.classList.contains("gantt-tl-row")) {
|
|
9537
|
+
element.classList.add("gantt-tl-row-hovered");
|
|
9538
|
+
}
|
|
9539
|
+
if (element.classList.contains("gantt-tr-row")) {
|
|
9540
|
+
element.classList.add("gantt-tr-row-hovered");
|
|
9541
|
+
}
|
|
9542
|
+
}
|
|
9543
|
+
hoveredRowElementsRef.current = nextHoveredRows;
|
|
9544
|
+
}, [clearHoveredRows]);
|
|
9545
|
+
const handleSharedRowHover = useCallback8((event) => {
|
|
9546
|
+
const target = event.target;
|
|
9547
|
+
const row = target.closest("[data-gantt-task-row-id]");
|
|
9548
|
+
const taskId = row?.dataset.ganttTaskRowId;
|
|
9549
|
+
if (!taskId) return;
|
|
9550
|
+
if (hoveredRowElementsRef.current.some((element) => element.dataset.ganttTaskRowId === taskId)) {
|
|
9551
|
+
return;
|
|
9552
|
+
}
|
|
9553
|
+
applyHoveredRows(taskId);
|
|
9554
|
+
}, [applyHoveredRows]);
|
|
9519
9555
|
const handleToggleCollapse = externalOnToggleCollapse ?? useCallback8((parentId) => {
|
|
9520
9556
|
setInternalCollapsedParentIds((prev) => {
|
|
9521
9557
|
const next = new Set(prev);
|
|
@@ -9748,157 +9784,166 @@ function TaskGanttChartInner(props, ref) {
|
|
|
9748
9784
|
className: "gantt-scrollContainer",
|
|
9749
9785
|
style: { height: containerHeight ?? "auto", cursor: "grab" },
|
|
9750
9786
|
onMouseDown: handlePanStart,
|
|
9751
|
-
children: /* @__PURE__ */ jsxs13(
|
|
9752
|
-
|
|
9753
|
-
|
|
9754
|
-
|
|
9755
|
-
|
|
9756
|
-
|
|
9757
|
-
|
|
9758
|
-
|
|
9759
|
-
|
|
9760
|
-
|
|
9761
|
-
|
|
9762
|
-
|
|
9763
|
-
|
|
9764
|
-
|
|
9765
|
-
|
|
9766
|
-
|
|
9767
|
-
|
|
9768
|
-
|
|
9769
|
-
|
|
9770
|
-
|
|
9771
|
-
|
|
9772
|
-
|
|
9773
|
-
|
|
9774
|
-
|
|
9775
|
-
|
|
9776
|
-
|
|
9777
|
-
|
|
9778
|
-
|
|
9779
|
-
|
|
9780
|
-
|
|
9781
|
-
|
|
9782
|
-
|
|
9783
|
-
|
|
9784
|
-
|
|
9785
|
-
|
|
9786
|
-
|
|
9787
|
-
|
|
9788
|
-
|
|
9789
|
-
|
|
9790
|
-
|
|
9791
|
-
|
|
9792
|
-
|
|
9793
|
-
|
|
9794
|
-
|
|
9795
|
-
|
|
9796
|
-
|
|
9797
|
-
|
|
9798
|
-
|
|
9799
|
-
|
|
9800
|
-
|
|
9801
|
-
|
|
9802
|
-
|
|
9803
|
-
|
|
9804
|
-
|
|
9787
|
+
children: /* @__PURE__ */ jsxs13(
|
|
9788
|
+
"div",
|
|
9789
|
+
{
|
|
9790
|
+
ref: scrollContentRef,
|
|
9791
|
+
className: "gantt-scrollContent",
|
|
9792
|
+
onMouseOver: handleSharedRowHover,
|
|
9793
|
+
onMouseLeave: clearHoveredRows,
|
|
9794
|
+
children: [
|
|
9795
|
+
/* @__PURE__ */ jsx16(
|
|
9796
|
+
TaskList,
|
|
9797
|
+
{
|
|
9798
|
+
tasks: normalizedTasks,
|
|
9799
|
+
rowHeight,
|
|
9800
|
+
headerHeight,
|
|
9801
|
+
taskListWidth,
|
|
9802
|
+
onTasksChange: handleTaskChange,
|
|
9803
|
+
selectedTaskId: selectedTaskId ?? void 0,
|
|
9804
|
+
onTaskSelect: handleTaskSelect,
|
|
9805
|
+
show: showTaskList,
|
|
9806
|
+
hasRightShadow: taskListHasRightShadow,
|
|
9807
|
+
disableTaskNameEditing,
|
|
9808
|
+
disableDependencyEditing,
|
|
9809
|
+
onScrollToTask: scrollToTask,
|
|
9810
|
+
onSelectedChipChange: setSelectedChip,
|
|
9811
|
+
onAdd,
|
|
9812
|
+
onDelete: handleDelete,
|
|
9813
|
+
onInsertAfter: handleInsertAfter,
|
|
9814
|
+
onReorder: handleReorder,
|
|
9815
|
+
editingTaskId,
|
|
9816
|
+
enableAddTask,
|
|
9817
|
+
defaultTaskDurationDays,
|
|
9818
|
+
collapsedParentIds,
|
|
9819
|
+
onToggleCollapse: handleToggleCollapse,
|
|
9820
|
+
onPromoteTask: onPromoteTask ?? handlePromoteTask,
|
|
9821
|
+
onDemoteTask: onDemoteTask ?? handleDemoteTask,
|
|
9822
|
+
onUngroupTask: onUngroupTask ?? handleUngroupTask,
|
|
9823
|
+
highlightedTaskIds: taskListHighlightedTaskIds,
|
|
9824
|
+
customDays,
|
|
9825
|
+
isWeekend: isWeekend3,
|
|
9826
|
+
businessDays,
|
|
9827
|
+
filterMode,
|
|
9828
|
+
filteredTaskIds: matchedTaskIds,
|
|
9829
|
+
isFilterActive: !!taskFilter,
|
|
9830
|
+
additionalColumns,
|
|
9831
|
+
hiddenTaskListColumns,
|
|
9832
|
+
taskListMenuCommands
|
|
9833
|
+
}
|
|
9834
|
+
),
|
|
9835
|
+
/* @__PURE__ */ jsxs13(
|
|
9836
|
+
"div",
|
|
9837
|
+
{
|
|
9838
|
+
className: showChart ? "gantt-chartSurface" : "gantt-chartSurface gantt-chart-hidden",
|
|
9839
|
+
style: { minWidth: `${gridWidth}px`, flex: 1, display: showChart ? void 0 : "none" },
|
|
9840
|
+
children: [
|
|
9841
|
+
/* @__PURE__ */ jsx16(
|
|
9842
|
+
"div",
|
|
9805
9843
|
{
|
|
9806
|
-
|
|
9807
|
-
|
|
9808
|
-
|
|
9809
|
-
|
|
9810
|
-
|
|
9844
|
+
className: "gantt-stickyHeader",
|
|
9845
|
+
style: { width: `${gridWidth}px`, height: `${timelineHeaderHeight}px` },
|
|
9846
|
+
children: /* @__PURE__ */ jsx16(
|
|
9847
|
+
TimeScaleHeader_default,
|
|
9848
|
+
{
|
|
9849
|
+
days: dateRange,
|
|
9850
|
+
dayWidth,
|
|
9851
|
+
headerHeight,
|
|
9852
|
+
viewMode,
|
|
9853
|
+
isCustomWeekend
|
|
9854
|
+
}
|
|
9855
|
+
)
|
|
9811
9856
|
}
|
|
9812
|
-
)
|
|
9813
|
-
|
|
9814
|
-
|
|
9815
|
-
|
|
9816
|
-
|
|
9817
|
-
|
|
9818
|
-
|
|
9819
|
-
|
|
9820
|
-
position: "relative",
|
|
9821
|
-
width: `${gridWidth}px`
|
|
9822
|
-
},
|
|
9823
|
-
children: [
|
|
9824
|
-
/* @__PURE__ */ jsx16(
|
|
9825
|
-
GridBackground_default,
|
|
9826
|
-
{
|
|
9827
|
-
dateRange,
|
|
9828
|
-
dayWidth,
|
|
9829
|
-
totalHeight: totalGridHeight,
|
|
9830
|
-
viewMode,
|
|
9831
|
-
isCustomWeekend
|
|
9832
|
-
}
|
|
9833
|
-
),
|
|
9834
|
-
todayInRange && /* @__PURE__ */ jsx16(TodayIndicator_default, { monthStart, dayWidth }),
|
|
9835
|
-
/* @__PURE__ */ jsx16(
|
|
9836
|
-
DependencyLines_default,
|
|
9837
|
-
{
|
|
9838
|
-
tasks: previewVisibleTasks,
|
|
9839
|
-
allTasks: previewNormalizedTasks,
|
|
9840
|
-
collapsedParentIds,
|
|
9841
|
-
monthStart,
|
|
9842
|
-
dayWidth,
|
|
9843
|
-
rowHeight,
|
|
9844
|
-
gridWidth,
|
|
9845
|
-
dragOverrides: dependencyOverrides,
|
|
9846
|
-
selectedDep: selectedChip,
|
|
9847
|
-
businessDays,
|
|
9848
|
-
weekendPredicate: isCustomWeekend
|
|
9849
|
-
}
|
|
9850
|
-
),
|
|
9851
|
-
dragGuideLines && /* @__PURE__ */ jsx16(
|
|
9852
|
-
DragGuideLines_default,
|
|
9853
|
-
{
|
|
9854
|
-
isDragging: dragGuideLines.isDragging,
|
|
9855
|
-
dragMode: dragGuideLines.dragMode,
|
|
9856
|
-
left: dragGuideLines.left,
|
|
9857
|
-
width: dragGuideLines.width,
|
|
9858
|
-
totalHeight: totalGridHeight
|
|
9859
|
-
}
|
|
9860
|
-
),
|
|
9861
|
-
visibleTasks.map((task, index) => /* @__PURE__ */ jsx16(
|
|
9862
|
-
TaskRow_default,
|
|
9863
|
-
{
|
|
9864
|
-
task,
|
|
9865
|
-
monthStart,
|
|
9866
|
-
dayWidth,
|
|
9867
|
-
rowHeight,
|
|
9868
|
-
onTasksChange: handleTaskChange,
|
|
9869
|
-
onDragStateChange: (state) => {
|
|
9870
|
-
if (state.isDragging) {
|
|
9871
|
-
setDragGuideLines(state);
|
|
9872
|
-
setDraggedTaskOverride({ taskId: task.id, left: state.left, width: state.width });
|
|
9873
|
-
} else {
|
|
9874
|
-
setDragGuideLines(null);
|
|
9875
|
-
setDraggedTaskOverride(null);
|
|
9876
|
-
}
|
|
9877
|
-
},
|
|
9878
|
-
rowIndex: index,
|
|
9879
|
-
allTasks: normalizedTasks,
|
|
9880
|
-
enableAutoSchedule: enableAutoSchedule ?? false,
|
|
9881
|
-
disableConstraints: disableConstraints ?? false,
|
|
9882
|
-
overridePosition: cascadeOverrides.get(task.id),
|
|
9883
|
-
onCascadeProgress: handleCascadeProgress,
|
|
9884
|
-
onCascade: handleCascade,
|
|
9885
|
-
highlightExpiredTasks,
|
|
9886
|
-
showBaseline,
|
|
9887
|
-
isFilterMatch: filterMode === "highlight" ? matchedTaskIds.has(task.id) : false,
|
|
9888
|
-
businessDays,
|
|
9889
|
-
customDays,
|
|
9890
|
-
isWeekend: isWeekend3,
|
|
9891
|
-
disableTaskDrag
|
|
9857
|
+
),
|
|
9858
|
+
/* @__PURE__ */ jsxs13(
|
|
9859
|
+
"div",
|
|
9860
|
+
{
|
|
9861
|
+
className: "gantt-taskArea",
|
|
9862
|
+
style: {
|
|
9863
|
+
position: "relative",
|
|
9864
|
+
width: `${gridWidth}px`
|
|
9892
9865
|
},
|
|
9893
|
-
|
|
9894
|
-
|
|
9895
|
-
|
|
9896
|
-
|
|
9897
|
-
|
|
9898
|
-
|
|
9899
|
-
|
|
9900
|
-
|
|
9901
|
-
|
|
9866
|
+
children: [
|
|
9867
|
+
/* @__PURE__ */ jsx16(
|
|
9868
|
+
GridBackground_default,
|
|
9869
|
+
{
|
|
9870
|
+
dateRange,
|
|
9871
|
+
dayWidth,
|
|
9872
|
+
totalHeight: totalGridHeight,
|
|
9873
|
+
viewMode,
|
|
9874
|
+
isCustomWeekend
|
|
9875
|
+
}
|
|
9876
|
+
),
|
|
9877
|
+
todayInRange && /* @__PURE__ */ jsx16(TodayIndicator_default, { monthStart, dayWidth }),
|
|
9878
|
+
/* @__PURE__ */ jsx16(
|
|
9879
|
+
DependencyLines_default,
|
|
9880
|
+
{
|
|
9881
|
+
tasks: previewVisibleTasks,
|
|
9882
|
+
allTasks: previewNormalizedTasks,
|
|
9883
|
+
collapsedParentIds,
|
|
9884
|
+
monthStart,
|
|
9885
|
+
dayWidth,
|
|
9886
|
+
rowHeight,
|
|
9887
|
+
gridWidth,
|
|
9888
|
+
dragOverrides: dependencyOverrides,
|
|
9889
|
+
selectedDep: selectedChip,
|
|
9890
|
+
businessDays,
|
|
9891
|
+
weekendPredicate: isCustomWeekend
|
|
9892
|
+
}
|
|
9893
|
+
),
|
|
9894
|
+
dragGuideLines && /* @__PURE__ */ jsx16(
|
|
9895
|
+
DragGuideLines_default,
|
|
9896
|
+
{
|
|
9897
|
+
isDragging: dragGuideLines.isDragging,
|
|
9898
|
+
dragMode: dragGuideLines.dragMode,
|
|
9899
|
+
left: dragGuideLines.left,
|
|
9900
|
+
width: dragGuideLines.width,
|
|
9901
|
+
totalHeight: totalGridHeight
|
|
9902
|
+
}
|
|
9903
|
+
),
|
|
9904
|
+
visibleTasks.map((task, index) => /* @__PURE__ */ jsx16(
|
|
9905
|
+
TaskRow_default,
|
|
9906
|
+
{
|
|
9907
|
+
task,
|
|
9908
|
+
monthStart,
|
|
9909
|
+
dayWidth,
|
|
9910
|
+
rowHeight,
|
|
9911
|
+
onTasksChange: handleTaskChange,
|
|
9912
|
+
onDragStateChange: (state) => {
|
|
9913
|
+
if (state.isDragging) {
|
|
9914
|
+
setDragGuideLines(state);
|
|
9915
|
+
setDraggedTaskOverride({ taskId: task.id, left: state.left, width: state.width });
|
|
9916
|
+
} else {
|
|
9917
|
+
setDragGuideLines(null);
|
|
9918
|
+
setDraggedTaskOverride(null);
|
|
9919
|
+
}
|
|
9920
|
+
},
|
|
9921
|
+
rowIndex: index,
|
|
9922
|
+
allTasks: normalizedTasks,
|
|
9923
|
+
enableAutoSchedule: enableAutoSchedule ?? false,
|
|
9924
|
+
disableConstraints: disableConstraints ?? false,
|
|
9925
|
+
overridePosition: cascadeOverrides.get(task.id),
|
|
9926
|
+
onCascadeProgress: handleCascadeProgress,
|
|
9927
|
+
onCascade: handleCascade,
|
|
9928
|
+
highlightExpiredTasks,
|
|
9929
|
+
showBaseline,
|
|
9930
|
+
isFilterMatch: filterMode === "highlight" ? matchedTaskIds.has(task.id) : false,
|
|
9931
|
+
businessDays,
|
|
9932
|
+
customDays,
|
|
9933
|
+
isWeekend: isWeekend3,
|
|
9934
|
+
disableTaskDrag
|
|
9935
|
+
},
|
|
9936
|
+
task.id
|
|
9937
|
+
))
|
|
9938
|
+
]
|
|
9939
|
+
}
|
|
9940
|
+
)
|
|
9941
|
+
]
|
|
9942
|
+
}
|
|
9943
|
+
)
|
|
9944
|
+
]
|
|
9945
|
+
}
|
|
9946
|
+
)
|
|
9902
9947
|
}
|
|
9903
9948
|
) });
|
|
9904
9949
|
}
|