gantt-lib 0.135.2 → 0.135.4
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.d.mts +9 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.js +36 -14
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +36 -14
- package/dist/index.mjs.map +1 -1
- package/dist/styles.css +10 -0
- package/package.json +1 -1
package/dist/index.d.mts
CHANGED
|
@@ -657,6 +657,8 @@ interface TaskChartSharedProps<TTask extends Task = Task> {
|
|
|
657
657
|
taskDateChangeMode?: TaskDateChangeMode;
|
|
658
658
|
/** Controlled callback for task-list date picker mode changes */
|
|
659
659
|
onTaskDateChangeModeChange?: (mode: TaskDateChangeMode) => void;
|
|
660
|
+
/** Render task-list dependencies as compact text for print/export layouts (default: false). */
|
|
661
|
+
printDependencyLabels?: boolean;
|
|
660
662
|
}
|
|
661
663
|
interface GanttModeProps<TTask extends Task = Task> extends TaskChartSharedProps<TTask> {
|
|
662
664
|
/** Omitted mode keeps the historical task-based gantt behavior. */
|
|
@@ -794,6 +796,8 @@ interface TaskRowProps {
|
|
|
794
796
|
enableAutoSchedule?: boolean;
|
|
795
797
|
/** Whether to disable constraint checking during drag */
|
|
796
798
|
disableConstraints?: boolean;
|
|
799
|
+
/** Keep the dragged bar live but defer the cascade preview until drop. */
|
|
800
|
+
deferCascadePreview?: boolean;
|
|
797
801
|
/** Position override for cascade preview — when set, overrides both static and drag position */
|
|
798
802
|
overridePosition?: {
|
|
799
803
|
left: number;
|
|
@@ -965,6 +969,7 @@ interface DragGuideLinesProps {
|
|
|
965
969
|
left: number;
|
|
966
970
|
width: number;
|
|
967
971
|
totalHeight: number;
|
|
972
|
+
top?: number;
|
|
968
973
|
}
|
|
969
974
|
declare const DragGuideLines: React$1.FC<DragGuideLinesProps>;
|
|
970
975
|
|
|
@@ -1087,6 +1092,8 @@ interface TaskListProps {
|
|
|
1087
1092
|
taskDateChangeMode?: TaskDateChangeMode;
|
|
1088
1093
|
/** Controlled callback for task-list date picker mode changes */
|
|
1089
1094
|
onTaskDateChangeModeChange?: (mode: TaskDateChangeMode) => void;
|
|
1095
|
+
/** Render dependencies as compact text for print/export layouts instead of interactive chips. */
|
|
1096
|
+
printDependencyLabels?: boolean;
|
|
1090
1097
|
/** Visible row indices from the shared chart viewport window */
|
|
1091
1098
|
visibleRowIndices?: number[];
|
|
1092
1099
|
/** Display-only placeholder rows appended below streamed task rows. */
|
|
@@ -1265,6 +1272,8 @@ interface UseTaskDragOptions {
|
|
|
1265
1272
|
enableAutoSchedule?: boolean;
|
|
1266
1273
|
/** When true, dependency constraint checking is skipped during drag (default: false) */
|
|
1267
1274
|
disableConstraints?: boolean;
|
|
1275
|
+
/** Skip live cascade and parent scaling on large charts; drop semantics remain unchanged. */
|
|
1276
|
+
deferCascadePreview?: boolean;
|
|
1268
1277
|
/** Callback for real-time cascade preview — called each RAF with non-dragged chain member positions */
|
|
1269
1278
|
onCascadeProgress?: (overrides: Map<string, {
|
|
1270
1279
|
left: number;
|
package/dist/index.d.ts
CHANGED
|
@@ -657,6 +657,8 @@ interface TaskChartSharedProps<TTask extends Task = Task> {
|
|
|
657
657
|
taskDateChangeMode?: TaskDateChangeMode;
|
|
658
658
|
/** Controlled callback for task-list date picker mode changes */
|
|
659
659
|
onTaskDateChangeModeChange?: (mode: TaskDateChangeMode) => void;
|
|
660
|
+
/** Render task-list dependencies as compact text for print/export layouts (default: false). */
|
|
661
|
+
printDependencyLabels?: boolean;
|
|
660
662
|
}
|
|
661
663
|
interface GanttModeProps<TTask extends Task = Task> extends TaskChartSharedProps<TTask> {
|
|
662
664
|
/** Omitted mode keeps the historical task-based gantt behavior. */
|
|
@@ -794,6 +796,8 @@ interface TaskRowProps {
|
|
|
794
796
|
enableAutoSchedule?: boolean;
|
|
795
797
|
/** Whether to disable constraint checking during drag */
|
|
796
798
|
disableConstraints?: boolean;
|
|
799
|
+
/** Keep the dragged bar live but defer the cascade preview until drop. */
|
|
800
|
+
deferCascadePreview?: boolean;
|
|
797
801
|
/** Position override for cascade preview — when set, overrides both static and drag position */
|
|
798
802
|
overridePosition?: {
|
|
799
803
|
left: number;
|
|
@@ -965,6 +969,7 @@ interface DragGuideLinesProps {
|
|
|
965
969
|
left: number;
|
|
966
970
|
width: number;
|
|
967
971
|
totalHeight: number;
|
|
972
|
+
top?: number;
|
|
968
973
|
}
|
|
969
974
|
declare const DragGuideLines: React$1.FC<DragGuideLinesProps>;
|
|
970
975
|
|
|
@@ -1087,6 +1092,8 @@ interface TaskListProps {
|
|
|
1087
1092
|
taskDateChangeMode?: TaskDateChangeMode;
|
|
1088
1093
|
/** Controlled callback for task-list date picker mode changes */
|
|
1089
1094
|
onTaskDateChangeModeChange?: (mode: TaskDateChangeMode) => void;
|
|
1095
|
+
/** Render dependencies as compact text for print/export layouts instead of interactive chips. */
|
|
1096
|
+
printDependencyLabels?: boolean;
|
|
1090
1097
|
/** Visible row indices from the shared chart viewport window */
|
|
1091
1098
|
visibleRowIndices?: number[];
|
|
1092
1099
|
/** Display-only placeholder rows appended below streamed task rows. */
|
|
@@ -1265,6 +1272,8 @@ interface UseTaskDragOptions {
|
|
|
1265
1272
|
enableAutoSchedule?: boolean;
|
|
1266
1273
|
/** When true, dependency constraint checking is skipped during drag (default: false) */
|
|
1267
1274
|
disableConstraints?: boolean;
|
|
1275
|
+
/** Skip live cascade and parent scaling on large charts; drop semantics remain unchanged. */
|
|
1276
|
+
deferCascadePreview?: boolean;
|
|
1268
1277
|
/** Callback for real-time cascade preview — called each RAF with non-dragged chain member positions */
|
|
1269
1278
|
onCascadeProgress?: (overrides: Map<string, {
|
|
1270
1279
|
left: number;
|
package/dist/index.js
CHANGED
|
@@ -3823,8 +3823,8 @@ function handleGlobalMouseMove(e) {
|
|
|
3823
3823
|
if (draggedTask && isMilestoneTask(draggedTask)) {
|
|
3824
3824
|
newWidth = dayWidth;
|
|
3825
3825
|
}
|
|
3826
|
-
const isParentResizePreview = draggedTask && (mode === "resize-left" || mode === "resize-right") && isTaskParent(activeDrag.taskId, allTasks);
|
|
3827
|
-
if (isParentResizePreview && activeDrag.onCascadeProgress) {
|
|
3826
|
+
const isParentResizePreview = !activeDrag.deferCascadePreview && draggedTask && (mode === "resize-left" || mode === "resize-right") && isTaskParent(activeDrag.taskId, allTasks);
|
|
3827
|
+
if (!activeDrag.deferCascadePreview && isParentResizePreview && activeDrag.onCascadeProgress) {
|
|
3828
3828
|
const { dayWidth: dw, monthStart: mStart } = activeDrag;
|
|
3829
3829
|
const previewRange = resolveDragRangeForInteraction(activeDrag, draggedTask, mode, newLeft, newWidth);
|
|
3830
3830
|
const anchor = mode === "resize-left" ? "end" : "start";
|
|
@@ -3875,7 +3875,7 @@ function handleGlobalMouseMove(e) {
|
|
|
3875
3875
|
activeDrag.onCascadeProgress(liveOverrides, activeDrag.parentScalePreview.previewTasks);
|
|
3876
3876
|
}
|
|
3877
3877
|
}
|
|
3878
|
-
if (!activeDrag.disableConstraints && activeDrag.onCascadeProgress && !isParentResizePreview) {
|
|
3878
|
+
if (!activeDrag.deferCascadePreview && !activeDrag.disableConstraints && activeDrag.onCascadeProgress && !isParentResizePreview) {
|
|
3879
3879
|
const { dayWidth: dayWidth2, monthStart: mStart, taskId: dragId } = activeDrag;
|
|
3880
3880
|
const originalDraggedTask = draggedTask ?? allTasks.find((t) => t.id === dragId);
|
|
3881
3881
|
const previewRange = originalDraggedTask ? clampDateRangeForIncomingFS(
|
|
@@ -3999,6 +3999,7 @@ var useTaskDrag = (options) => {
|
|
|
3999
3999
|
rowIndex,
|
|
4000
4000
|
enableAutoSchedule = false,
|
|
4001
4001
|
disableConstraints = false,
|
|
4002
|
+
deferCascadePreview = false,
|
|
4002
4003
|
onCascadeProgress,
|
|
4003
4004
|
onCascade,
|
|
4004
4005
|
locked = false,
|
|
@@ -4336,13 +4337,14 @@ var useTaskDrag = (options) => {
|
|
|
4336
4337
|
onCancel: handleCancel,
|
|
4337
4338
|
allTasks,
|
|
4338
4339
|
disableConstraints,
|
|
4340
|
+
deferCascadePreview,
|
|
4339
4341
|
onCascadeProgress,
|
|
4340
4342
|
businessDays,
|
|
4341
4343
|
weekendPredicate,
|
|
4342
4344
|
cascadeContext: shouldBuildCascadeContext ? createCascadeContext(allTasks) : void 0,
|
|
4343
4345
|
scheduleIntentMode: Boolean(onScheduleIntent)
|
|
4344
4346
|
};
|
|
4345
|
-
}, [edgeZoneWidth, currentLeft, currentWidth, dayWidth, monthStart, taskId, onDragStateChange, handleProgress, handleComplete, handleCancel, allTasks, disableConstraints, onCascadeProgress, onCascade, effectiveLocked, viewMode]);
|
|
4347
|
+
}, [edgeZoneWidth, currentLeft, currentWidth, dayWidth, monthStart, taskId, onDragStateChange, handleProgress, handleComplete, handleCancel, allTasks, disableConstraints, deferCascadePreview, onCascadeProgress, onCascade, effectiveLocked, viewMode]);
|
|
4346
4348
|
const handleMouseDown = (0, import_react2.useCallback)((e) => {
|
|
4347
4349
|
startDrag(e);
|
|
4348
4350
|
}, [startDrag]);
|
|
@@ -4400,10 +4402,10 @@ var useTaskDrag = (options) => {
|
|
|
4400
4402
|
// src/components/TaskRow/TaskRow.tsx
|
|
4401
4403
|
var import_jsx_runtime2 = require("react/jsx-runtime");
|
|
4402
4404
|
var arePropsEqual = (prevProps, nextProps) => {
|
|
4403
|
-
return prevProps.task.id === nextProps.task.id && prevProps.task.name === nextProps.task.name && prevProps.task.startDate === nextProps.task.startDate && prevProps.task.endDate === nextProps.task.endDate && prevProps.task.baselineStartDate === nextProps.task.baselineStartDate && prevProps.task.baselineEndDate === nextProps.task.baselineEndDate && prevProps.task.type === nextProps.task.type && prevProps.task.color === nextProps.task.color && prevProps.task.progress === nextProps.task.progress && prevProps.task.accepted === nextProps.task.accepted && prevProps.monthStart.getTime() === nextProps.monthStart.getTime() && prevProps.dayWidth === nextProps.dayWidth && prevProps.rowHeight === nextProps.rowHeight && prevProps.overridePosition?.left === nextProps.overridePosition?.left && prevProps.overridePosition?.width === nextProps.overridePosition?.width && prevProps.previewPositionStore === nextProps.previewPositionStore && prevProps.allTasks === nextProps.allTasks && prevProps.disableConstraints === nextProps.disableConstraints && prevProps.task.locked === nextProps.task.locked && prevProps.task.synced === nextProps.task.synced && prevProps.task.divider === nextProps.task.divider && prevProps.highlightExpiredTasks === nextProps.highlightExpiredTasks && prevProps.isCritical === nextProps.isCritical && prevProps.showBaseline === nextProps.showBaseline && prevProps.isFilterMatch === nextProps.isFilterMatch && prevProps.businessDays === nextProps.businessDays && prevProps.customDays === nextProps.customDays && prevProps.isWeekend === nextProps.isWeekend && prevProps.disableTaskDrag === nextProps.disableTaskDrag && prevProps.disableDependencyEditing === nextProps.disableDependencyEditing && prevProps.isDependencyDragActive === nextProps.isDependencyDragActive && prevProps.viewMode === nextProps.viewMode && prevProps.showTaskDateLabels === nextProps.showTaskDateLabels && prevProps.showTaskNames === nextProps.showTaskNames;
|
|
4405
|
+
return prevProps.task.id === nextProps.task.id && prevProps.task.name === nextProps.task.name && prevProps.task.startDate === nextProps.task.startDate && prevProps.task.endDate === nextProps.task.endDate && prevProps.task.baselineStartDate === nextProps.task.baselineStartDate && prevProps.task.baselineEndDate === nextProps.task.baselineEndDate && prevProps.task.type === nextProps.task.type && prevProps.task.color === nextProps.task.color && prevProps.task.progress === nextProps.task.progress && prevProps.task.accepted === nextProps.task.accepted && prevProps.monthStart.getTime() === nextProps.monthStart.getTime() && prevProps.dayWidth === nextProps.dayWidth && prevProps.rowHeight === nextProps.rowHeight && prevProps.overridePosition?.left === nextProps.overridePosition?.left && prevProps.overridePosition?.width === nextProps.overridePosition?.width && prevProps.previewPositionStore === nextProps.previewPositionStore && prevProps.allTasks === nextProps.allTasks && prevProps.disableConstraints === nextProps.disableConstraints && prevProps.deferCascadePreview === nextProps.deferCascadePreview && prevProps.task.locked === nextProps.task.locked && prevProps.task.synced === nextProps.task.synced && prevProps.task.divider === nextProps.task.divider && prevProps.highlightExpiredTasks === nextProps.highlightExpiredTasks && prevProps.isCritical === nextProps.isCritical && prevProps.showBaseline === nextProps.showBaseline && prevProps.isFilterMatch === nextProps.isFilterMatch && prevProps.businessDays === nextProps.businessDays && prevProps.customDays === nextProps.customDays && prevProps.isWeekend === nextProps.isWeekend && prevProps.disableTaskDrag === nextProps.disableTaskDrag && prevProps.disableDependencyEditing === nextProps.disableDependencyEditing && prevProps.isDependencyDragActive === nextProps.isDependencyDragActive && prevProps.viewMode === nextProps.viewMode && prevProps.showTaskDateLabels === nextProps.showTaskDateLabels && prevProps.showTaskNames === nextProps.showTaskNames;
|
|
4404
4406
|
};
|
|
4405
4407
|
var TaskRow = import_react3.default.memo(
|
|
4406
|
-
({ task, monthStart, dayWidth, rowHeight, onTasksChange, onScheduleIntent, onDragStateChange, rowIndex, allTasks, enableAutoSchedule, disableConstraints, overridePosition, previewPositionStore, onCascadeProgress, onCascade, divider, highlightExpiredTasks, isCritical = false, showBaseline = false, isFilterMatch = false, businessDays, customDays, isWeekend: isWeekend3, disableTaskDrag = false, disableDependencyEditing = false, onDependencyPortPointerDown, isDependencyDragActive = false, viewMode = "day", showTaskDateLabels = true, showTaskNames = true }) => {
|
|
4408
|
+
({ task, monthStart, dayWidth, rowHeight, onTasksChange, onScheduleIntent, onDragStateChange, rowIndex, allTasks, enableAutoSchedule, disableConstraints, deferCascadePreview = false, overridePosition, previewPositionStore, onCascadeProgress, onCascade, divider, highlightExpiredTasks, isCritical = false, showBaseline = false, isFilterMatch = false, businessDays, customDays, isWeekend: isWeekend3, disableTaskDrag = false, disableDependencyEditing = false, onDependencyPortPointerDown, isDependencyDragActive = false, viewMode = "day", showTaskDateLabels = true, showTaskNames = true }) => {
|
|
4407
4409
|
const defaultParentBarColor = "#782FC4";
|
|
4408
4410
|
const { divider: taskDivider } = task;
|
|
4409
4411
|
const normalizedTask = (0, import_react3.useMemo)(() => normalizeTaskDatesForType(task), [task]);
|
|
@@ -4525,6 +4527,7 @@ var TaskRow = import_react3.default.memo(
|
|
|
4525
4527
|
rowIndex,
|
|
4526
4528
|
enableAutoSchedule,
|
|
4527
4529
|
disableConstraints,
|
|
4530
|
+
deferCascadePreview,
|
|
4528
4531
|
locked: task.locked,
|
|
4529
4532
|
disableTaskDrag,
|
|
4530
4533
|
onCascadeProgress,
|
|
@@ -4948,7 +4951,8 @@ var DragGuideLines = ({
|
|
|
4948
4951
|
dragMode,
|
|
4949
4952
|
left,
|
|
4950
4953
|
width,
|
|
4951
|
-
totalHeight
|
|
4954
|
+
totalHeight,
|
|
4955
|
+
top = 0
|
|
4952
4956
|
}) => {
|
|
4953
4957
|
if (!isDragging || !dragMode) {
|
|
4954
4958
|
return null;
|
|
@@ -4962,6 +4966,7 @@ var DragGuideLines = ({
|
|
|
4962
4966
|
className: "gantt-dgl-guideLine",
|
|
4963
4967
|
style: {
|
|
4964
4968
|
left: `${left}px`,
|
|
4969
|
+
top: `${top}px`,
|
|
4965
4970
|
height: `${totalHeight}px`
|
|
4966
4971
|
}
|
|
4967
4972
|
}
|
|
@@ -4972,6 +4977,7 @@ var DragGuideLines = ({
|
|
|
4972
4977
|
className: "gantt-dgl-guideLine",
|
|
4973
4978
|
style: {
|
|
4974
4979
|
left: `${left + width}px`,
|
|
4980
|
+
top: `${top}px`,
|
|
4975
4981
|
height: `${totalHeight}px`
|
|
4976
4982
|
}
|
|
4977
4983
|
}
|
|
@@ -6341,6 +6347,11 @@ var LINK_TYPE_LABELS_RU2 = {
|
|
|
6341
6347
|
function formatTaskNumberLabel(taskNumber) {
|
|
6342
6348
|
return taskNumber ? `${taskNumber}. ` : "";
|
|
6343
6349
|
}
|
|
6350
|
+
function formatDependencyPrintLabel(dep, predecessorTaskNumber, lag) {
|
|
6351
|
+
const effectiveLag = lag ?? 0;
|
|
6352
|
+
const lagSuffix = effectiveLag === 0 ? "" : effectiveLag > 0 ? `+${effectiveLag}` : String(effectiveLag);
|
|
6353
|
+
return `[${predecessorTaskNumber ?? dep.taskId}]${LINK_TYPE_LABELS_RU2[dep.type]}${lagSuffix}`;
|
|
6354
|
+
}
|
|
6344
6355
|
var ArrowLeft = () => /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(
|
|
6345
6356
|
"svg",
|
|
6346
6357
|
{
|
|
@@ -6752,7 +6763,7 @@ var areTaskListRowPropsEqual = (prevProps, nextProps) => {
|
|
|
6752
6763
|
const nextPickingTask = nextProps.selectingPredecessorFor === nextTask.id;
|
|
6753
6764
|
const prevAnyPicking = prevProps.selectingPredecessorFor != null;
|
|
6754
6765
|
const nextAnyPicking = nextProps.selectingPredecessorFor != null;
|
|
6755
|
-
return prevTaskUnchanged && prevProps.rowIndex === nextProps.rowIndex && prevProps.taskNumber === nextProps.taskNumber && prevProps.taskNumberMap === nextProps.taskNumberMap && prevProps.rowHeight === nextProps.rowHeight && prevIsSelected === nextIsSelected && prevProps.disableTaskNameEditing === nextProps.disableTaskNameEditing && prevProps.disableDependencyEditing === nextProps.disableDependencyEditing && prevProps.allTasks === nextProps.allTasks && prevProps.activeLinkType === nextProps.activeLinkType && prevProps.dependencyPickMode === nextProps.dependencyPickMode && prevPickingTask === nextPickingTask && prevAnyPicking === nextAnyPicking && resolveSelectedChipRole(prevProps) === resolveSelectedChipRole(nextProps) && prevIsEditingTask === nextIsEditingTask && prevProps.isDragging === nextProps.isDragging && prevProps.isDragOver === nextProps.isDragOver && prevProps.dragOverPlacement === nextProps.dragOverPlacement && prevProps.isNestedDropTarget === nextProps.isNestedDropTarget && prevProps.isDirectChildDropTarget === nextProps.isDirectChildDropTarget && prevCollapsed === nextCollapsed && prevProps.canDemoteTask === nextProps.canDemoteTask && prevProps.isLastChild === nextProps.isLastChild && prevProps.nestingDepth === nextProps.nestingDepth && prevProps.hasVisibleChildren === nextProps.hasVisibleChildren && prevProps.ancestorLineModes === nextProps.ancestorLineModes && prevProps.customDays === nextProps.customDays && prevProps.isWeekend === nextProps.isWeekend && prevProps.fillParentRow === nextProps.fillParentRow && prevProps.businessDays === nextProps.businessDays && prevProps.defaultTaskDurationDays === nextProps.defaultTaskDurationDays && prevProps.isFilterMatch === nextProps.isFilterMatch && prevProps.isFilterHideMode === nextProps.isFilterHideMode && prevProps.resolvedColumns === nextProps.resolvedColumns && prevProps.isTaskSelected === nextProps.isTaskSelected && resolveActiveCustomCellForRow(prevProps) === resolveActiveCustomCellForRow(nextProps) && prevProps.taskListMenuCommands === nextProps.taskListMenuCommands && prevProps.hideTaskListRowActions === nextProps.hideTaskListRowActions && prevProps.rowClassName === nextProps.rowClassName && prevProps.getTaskListNamePrefixIcon === nextProps.getTaskListNamePrefixIcon && prevProps.taskDateChangeMode === nextProps.taskDateChangeMode;
|
|
6766
|
+
return prevTaskUnchanged && prevProps.rowIndex === nextProps.rowIndex && prevProps.taskNumber === nextProps.taskNumber && prevProps.taskNumberMap === nextProps.taskNumberMap && prevProps.rowHeight === nextProps.rowHeight && prevIsSelected === nextIsSelected && prevProps.disableTaskNameEditing === nextProps.disableTaskNameEditing && prevProps.disableDependencyEditing === nextProps.disableDependencyEditing && prevProps.allTasks === nextProps.allTasks && prevProps.activeLinkType === nextProps.activeLinkType && prevProps.dependencyPickMode === nextProps.dependencyPickMode && prevPickingTask === nextPickingTask && prevAnyPicking === nextAnyPicking && resolveSelectedChipRole(prevProps) === resolveSelectedChipRole(nextProps) && prevIsEditingTask === nextIsEditingTask && prevProps.isDragging === nextProps.isDragging && prevProps.isDragOver === nextProps.isDragOver && prevProps.dragOverPlacement === nextProps.dragOverPlacement && prevProps.isNestedDropTarget === nextProps.isNestedDropTarget && prevProps.isDirectChildDropTarget === nextProps.isDirectChildDropTarget && prevCollapsed === nextCollapsed && prevProps.canDemoteTask === nextProps.canDemoteTask && prevProps.isLastChild === nextProps.isLastChild && prevProps.nestingDepth === nextProps.nestingDepth && prevProps.hasVisibleChildren === nextProps.hasVisibleChildren && prevProps.ancestorLineModes === nextProps.ancestorLineModes && prevProps.customDays === nextProps.customDays && prevProps.isWeekend === nextProps.isWeekend && prevProps.fillParentRow === nextProps.fillParentRow && prevProps.businessDays === nextProps.businessDays && prevProps.defaultTaskDurationDays === nextProps.defaultTaskDurationDays && prevProps.isFilterMatch === nextProps.isFilterMatch && prevProps.isFilterHideMode === nextProps.isFilterHideMode && prevProps.resolvedColumns === nextProps.resolvedColumns && prevProps.isTaskSelected === nextProps.isTaskSelected && resolveActiveCustomCellForRow(prevProps) === resolveActiveCustomCellForRow(nextProps) && prevProps.taskListMenuCommands === nextProps.taskListMenuCommands && prevProps.hideTaskListRowActions === nextProps.hideTaskListRowActions && prevProps.rowClassName === nextProps.rowClassName && prevProps.getTaskListNamePrefixIcon === nextProps.getTaskListNamePrefixIcon && prevProps.taskDateChangeMode === nextProps.taskDateChangeMode && prevProps.printDependencyLabels === nextProps.printDependencyLabels;
|
|
6756
6767
|
};
|
|
6757
6768
|
var TaskListRow = import_react11.default.memo(
|
|
6758
6769
|
({
|
|
@@ -6820,7 +6831,8 @@ var TaskListRow = import_react11.default.memo(
|
|
|
6820
6831
|
rowClassName,
|
|
6821
6832
|
getTaskListNamePrefixIcon,
|
|
6822
6833
|
taskDateChangeMode = "preserve-duration",
|
|
6823
|
-
onTaskDateChangeModeChange
|
|
6834
|
+
onTaskDateChangeModeChange,
|
|
6835
|
+
printDependencyLabels = false
|
|
6824
6836
|
}) => {
|
|
6825
6837
|
const [editingColumnId, setEditingColumnId] = (0, import_react11.useState)(null);
|
|
6826
6838
|
const [editingColumnStartValue, setEditingColumnStartValue] = (0, import_react11.useState)(void 0);
|
|
@@ -8306,7 +8318,11 @@ var TaskListRow = import_react11.default.memo(
|
|
|
8306
8318
|
),
|
|
8307
8319
|
sourcePickerContent
|
|
8308
8320
|
] }) : /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(import_jsx_runtime14.Fragment, { children: [
|
|
8309
|
-
chips.
|
|
8321
|
+
printDependencyLabels ? /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("span", { className: "gantt-tl-dependency-print-labels", children: chips.map(({ dep, lag }) => formatDependencyPrintLabel(
|
|
8322
|
+
dep,
|
|
8323
|
+
taskNumberMap[dep.taskId],
|
|
8324
|
+
lag
|
|
8325
|
+
)).join(", ") }) : chips.length >= 2 ? (
|
|
8310
8326
|
/* 2+ deps — show only "N связей" summary chip that opens a popover */
|
|
8311
8327
|
/* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(Popover, { open: overflowOpen, onOpenChange: setOverflowOpen, children: [
|
|
8312
8328
|
/* @__PURE__ */ (0, import_jsx_runtime14.jsx)(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(
|
|
@@ -8383,7 +8399,7 @@ var TaskListRow = import_react11.default.memo(
|
|
|
8383
8399
|
}
|
|
8384
8400
|
)
|
|
8385
8401
|
) : null,
|
|
8386
|
-
!disableDependencyEditing && !isPicking && /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
|
|
8402
|
+
!printDependencyLabels && !disableDependencyEditing && !isPicking && /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
|
|
8387
8403
|
"button",
|
|
8388
8404
|
{
|
|
8389
8405
|
type: "button",
|
|
@@ -9047,6 +9063,7 @@ var TaskList = ({
|
|
|
9047
9063
|
bodyMinHeight,
|
|
9048
9064
|
taskDateChangeMode = "preserve-duration",
|
|
9049
9065
|
onTaskDateChangeModeChange,
|
|
9066
|
+
printDependencyLabels = false,
|
|
9050
9067
|
visibleRowIndices,
|
|
9051
9068
|
skeletonRowCount = 0
|
|
9052
9069
|
}) => {
|
|
@@ -10204,7 +10221,8 @@ var TaskList = ({
|
|
|
10204
10221
|
rowClassName: getTaskListRowClassName?.(task),
|
|
10205
10222
|
getTaskListNamePrefixIcon,
|
|
10206
10223
|
taskDateChangeMode,
|
|
10207
|
-
onTaskDateChangeModeChange
|
|
10224
|
+
onTaskDateChangeModeChange,
|
|
10225
|
+
printDependencyLabels
|
|
10208
10226
|
}
|
|
10209
10227
|
)
|
|
10210
10228
|
},
|
|
@@ -14219,7 +14237,8 @@ function TaskGanttChartInner(props, ref) {
|
|
|
14219
14237
|
getTaskListNamePrefixIcon,
|
|
14220
14238
|
rowContentLines = 1,
|
|
14221
14239
|
taskDateChangeMode: externalTaskDateChangeMode,
|
|
14222
|
-
onTaskDateChangeModeChange: externalOnTaskDateChangeModeChange
|
|
14240
|
+
onTaskDateChangeModeChange: externalOnTaskDateChangeModeChange,
|
|
14241
|
+
printDependencyLabels = false
|
|
14223
14242
|
} = props;
|
|
14224
14243
|
const dayWidth = !isTableMatrixMode ? props.dayWidth ?? 40 : 40;
|
|
14225
14244
|
const criticalPathMode = !isTableMatrixMode && !isPlanFactMode ? props.criticalPathMode : void 0;
|
|
@@ -15407,6 +15426,7 @@ function TaskGanttChartInner(props, ref) {
|
|
|
15407
15426
|
bodyMinHeight: tableBodyMinHeight,
|
|
15408
15427
|
taskDateChangeMode,
|
|
15409
15428
|
onTaskDateChangeModeChange: handleTaskDateChangeMode,
|
|
15429
|
+
printDependencyLabels,
|
|
15410
15430
|
visibleRowIndices: visibleTaskWindowIndices,
|
|
15411
15431
|
skeletonRowCount
|
|
15412
15432
|
}
|
|
@@ -15623,7 +15643,8 @@ function TaskGanttChartInner(props, ref) {
|
|
|
15623
15643
|
dragMode: dragGuideLines.dragMode,
|
|
15624
15644
|
left: dragGuideLines.left,
|
|
15625
15645
|
width: dragGuideLines.width,
|
|
15626
|
-
totalHeight: totalGridHeight
|
|
15646
|
+
totalHeight: Math.min(totalGridHeight, scrollViewport.viewportHeight),
|
|
15647
|
+
top: Math.max(0, scrollViewport.scrollTop)
|
|
15627
15648
|
}
|
|
15628
15649
|
),
|
|
15629
15650
|
renderedChartTasks.map(({ task, index }) => /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
@@ -15660,6 +15681,7 @@ function TaskGanttChartInner(props, ref) {
|
|
|
15660
15681
|
allTasks: normalizedTasks,
|
|
15661
15682
|
enableAutoSchedule: enableAutoSchedule ?? false,
|
|
15662
15683
|
disableConstraints: disableConstraints ?? false,
|
|
15684
|
+
deferCascadePreview: normalizedTasks.length >= 1e3,
|
|
15663
15685
|
previewPositionStore,
|
|
15664
15686
|
onCascadeProgress: handleCascadeProgress,
|
|
15665
15687
|
onCascade: handleCascade,
|