gantt-lib 0.133.1 → 0.134.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/README.md +2 -0
- package/dist/index.d.mts +8 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.js +26 -5
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +26 -5
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -159,6 +159,8 @@ Main component that renders the interactive Gantt chart.
|
|
|
159
159
|
| `containerHeight` | `number \| string` | `undefined` | Container height in px, `%`, `vh`, or auto. |
|
|
160
160
|
| `showTaskList` | `boolean` | `false` | Shows the left-side task list. |
|
|
161
161
|
| `showChart` | `boolean` | `true` | Hides the chart area when set to `false`. |
|
|
162
|
+
| `showTaskDateLabels` | `boolean` | `true` | Shows the task date range to the left of each task bar. |
|
|
163
|
+
| `showTaskNames` | `boolean` | `true` | Shows the task name to the right of each task bar. |
|
|
162
164
|
| `showBaseline` | `boolean` | `false` | Renders baselines for tasks with `baselineStartDate` and `baselineEndDate`. |
|
|
163
165
|
| `taskListWidth` | `number` | `660` | Requested width of the task list panel. |
|
|
164
166
|
| `taskListColumnWidths` | `TaskListColumnWidthMap` | `undefined` | Width overrides for built-in and custom TaskList columns. |
|
package/dist/index.d.mts
CHANGED
|
@@ -618,6 +618,10 @@ interface TaskChartSharedProps<TTask extends Task = Task> {
|
|
|
618
618
|
skeletonStartOffsetDays?: number;
|
|
619
619
|
/** Add a stable per-row backward jitter to skeleton chart bars, in days. */
|
|
620
620
|
skeletonStartJitterDays?: number;
|
|
621
|
+
/** Render date ranges to the left of task bars in Gantt mode (default: true). */
|
|
622
|
+
showTaskDateLabels?: boolean;
|
|
623
|
+
/** Render task names to the right of task bars in Gantt mode (default: true). */
|
|
624
|
+
showTaskNames?: boolean;
|
|
621
625
|
/** Optional vertical timeline markers such as deadlines and checkpoints. */
|
|
622
626
|
timelineMarkers?: TimelineMarker[];
|
|
623
627
|
/** Additional custom columns to render in the TaskList after built-in columns */
|
|
@@ -822,6 +826,10 @@ interface TaskRowProps {
|
|
|
822
826
|
isDependencyDragActive?: boolean;
|
|
823
827
|
/** Active chart view mode */
|
|
824
828
|
viewMode?: 'day' | 'week' | 'month';
|
|
829
|
+
/** Render the date range label to the left of the task bar (default: true). */
|
|
830
|
+
showTaskDateLabels?: boolean;
|
|
831
|
+
/** Render the task name to the right of the task bar (default: true). */
|
|
832
|
+
showTaskNames?: boolean;
|
|
825
833
|
}
|
|
826
834
|
/**
|
|
827
835
|
* TaskRow component - renders a single task row with a task bar
|
package/dist/index.d.ts
CHANGED
|
@@ -618,6 +618,10 @@ interface TaskChartSharedProps<TTask extends Task = Task> {
|
|
|
618
618
|
skeletonStartOffsetDays?: number;
|
|
619
619
|
/** Add a stable per-row backward jitter to skeleton chart bars, in days. */
|
|
620
620
|
skeletonStartJitterDays?: number;
|
|
621
|
+
/** Render date ranges to the left of task bars in Gantt mode (default: true). */
|
|
622
|
+
showTaskDateLabels?: boolean;
|
|
623
|
+
/** Render task names to the right of task bars in Gantt mode (default: true). */
|
|
624
|
+
showTaskNames?: boolean;
|
|
621
625
|
/** Optional vertical timeline markers such as deadlines and checkpoints. */
|
|
622
626
|
timelineMarkers?: TimelineMarker[];
|
|
623
627
|
/** Additional custom columns to render in the TaskList after built-in columns */
|
|
@@ -822,6 +826,10 @@ interface TaskRowProps {
|
|
|
822
826
|
isDependencyDragActive?: boolean;
|
|
823
827
|
/** Active chart view mode */
|
|
824
828
|
viewMode?: 'day' | 'week' | 'month';
|
|
829
|
+
/** Render the date range label to the left of the task bar (default: true). */
|
|
830
|
+
showTaskDateLabels?: boolean;
|
|
831
|
+
/** Render the task name to the right of the task bar (default: true). */
|
|
832
|
+
showTaskNames?: boolean;
|
|
825
833
|
}
|
|
826
834
|
/**
|
|
827
835
|
* TaskRow component - renders a single task row with a task bar
|
package/dist/index.js
CHANGED
|
@@ -3988,7 +3988,13 @@ var useTaskDrag = (options) => {
|
|
|
3988
3988
|
const rawHookTask = allTasks.find((t) => t.id === taskId);
|
|
3989
3989
|
const hookTask = rawHookTask ? normalizeTaskDatesForType(rawHookTask) : void 0;
|
|
3990
3990
|
const hookTaskIsMilestone = hookTask ? isMilestoneTask(hookTask) : false;
|
|
3991
|
+
const authoritativeStartTime = parseUTCDate(hookTask?.startDate ?? initialStartDate).getTime();
|
|
3992
|
+
const authoritativeEndTime = parseUTCDate(hookTask?.endDate ?? initialEndDate).getTime();
|
|
3991
3993
|
const isOwnerRef = (0, import_react2.useRef)(false);
|
|
3994
|
+
const authoritativeRangeRef = (0, import_react2.useRef)({
|
|
3995
|
+
start: authoritativeStartTime,
|
|
3996
|
+
end: authoritativeEndTime
|
|
3997
|
+
});
|
|
3992
3998
|
const effectiveLocked = locked || disableTaskDrag;
|
|
3993
3999
|
const [isDragging, setIsDragging] = (0, import_react2.useState)(false);
|
|
3994
4000
|
const [dragMode, setDragMode] = (0, import_react2.useState)(null);
|
|
@@ -4015,6 +4021,17 @@ var useTaskDrag = (options) => {
|
|
|
4015
4021
|
const width = Math.round((duration + 1) * dayWidth);
|
|
4016
4022
|
return { left, width };
|
|
4017
4023
|
}, [initialStartDate, initialEndDate, monthStart, dayWidth, hookTaskIsMilestone]);
|
|
4024
|
+
(0, import_react2.useEffect)(() => {
|
|
4025
|
+
const nextRange = {
|
|
4026
|
+
start: authoritativeStartTime,
|
|
4027
|
+
end: authoritativeEndTime
|
|
4028
|
+
};
|
|
4029
|
+
const previousRange = authoritativeRangeRef.current;
|
|
4030
|
+
authoritativeRangeRef.current = nextRange;
|
|
4031
|
+
if ((previousRange.start !== nextRange.start || previousRange.end !== nextRange.end) && isOwnerRef.current && globalActiveDrag?.taskId === taskId) {
|
|
4032
|
+
cancelDrag();
|
|
4033
|
+
}
|
|
4034
|
+
}, [authoritativeStartTime, authoritativeEndTime, taskId]);
|
|
4018
4035
|
(0, import_react2.useEffect)(() => {
|
|
4019
4036
|
if (isOwnerRef.current && globalActiveDrag) return;
|
|
4020
4037
|
const { left, width } = getInitialPosition();
|
|
@@ -4361,10 +4378,10 @@ var useTaskDrag = (options) => {
|
|
|
4361
4378
|
// src/components/TaskRow/TaskRow.tsx
|
|
4362
4379
|
var import_jsx_runtime2 = require("react/jsx-runtime");
|
|
4363
4380
|
var arePropsEqual = (prevProps, nextProps) => {
|
|
4364
|
-
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;
|
|
4381
|
+
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;
|
|
4365
4382
|
};
|
|
4366
4383
|
var TaskRow = import_react3.default.memo(
|
|
4367
|
-
({ 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" }) => {
|
|
4384
|
+
({ 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 }) => {
|
|
4368
4385
|
const defaultParentBarColor = "#782FC4";
|
|
4369
4386
|
const { divider: taskDivider } = task;
|
|
4370
4387
|
const normalizedTask = (0, import_react3.useMemo)(() => normalizeTaskDatesForType(task), [task]);
|
|
@@ -4640,7 +4657,7 @@ var TaskRow = import_react3.default.memo(
|
|
|
4640
4657
|
}
|
|
4641
4658
|
)
|
|
4642
4659
|
] }),
|
|
4643
|
-
/* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
|
|
4660
|
+
showTaskDateLabels && /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
|
|
4644
4661
|
"div",
|
|
4645
4662
|
{
|
|
4646
4663
|
className: `gantt-tr-leftLabels ${task.locked ? "gantt-tr-leftLabels-locked" : ""}`,
|
|
@@ -4685,7 +4702,7 @@ var TaskRow = import_react3.default.memo(
|
|
|
4685
4702
|
progressWidth,
|
|
4686
4703
|
"%"
|
|
4687
4704
|
] }),
|
|
4688
|
-
/* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
|
|
4705
|
+
showTaskNames && /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
|
|
4689
4706
|
"span",
|
|
4690
4707
|
{
|
|
4691
4708
|
className: "gantt-tr-externalTaskName",
|
|
@@ -14156,6 +14173,8 @@ function TaskGanttChartInner(props, ref) {
|
|
|
14156
14173
|
skeletonRowCount = 0,
|
|
14157
14174
|
skeletonStartOffsetDays = 0,
|
|
14158
14175
|
skeletonStartJitterDays = 0,
|
|
14176
|
+
showTaskDateLabels = true,
|
|
14177
|
+
showTaskNames = true,
|
|
14159
14178
|
timelineMarkers,
|
|
14160
14179
|
additionalColumns,
|
|
14161
14180
|
hiddenTaskListColumns,
|
|
@@ -15594,7 +15613,9 @@ function TaskGanttChartInner(props, ref) {
|
|
|
15594
15613
|
disableDependencyEditing,
|
|
15595
15614
|
onDependencyPortPointerDown: handleDependencyPortPointerDown,
|
|
15596
15615
|
isDependencyDragActive: dependencyCreationDrag !== null,
|
|
15597
|
-
viewMode
|
|
15616
|
+
viewMode,
|
|
15617
|
+
showTaskDateLabels,
|
|
15618
|
+
showTaskNames
|
|
15598
15619
|
}
|
|
15599
15620
|
)
|
|
15600
15621
|
},
|