gantt-lib 0.25.1 → 0.26.0

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.mjs CHANGED
@@ -1891,11 +1891,13 @@ var useTaskDrag = (options) => {
1891
1891
  disableConstraints = false,
1892
1892
  onCascadeProgress,
1893
1893
  onCascade,
1894
+ locked = false,
1895
+ disableTaskDrag = false,
1894
1896
  businessDays = true,
1895
1897
  weekendPredicate
1896
1898
  } = options;
1897
1899
  const isOwnerRef = useRef(false);
1898
- const locked = options.locked ?? false;
1900
+ const effectiveLocked = locked || disableTaskDrag;
1899
1901
  const [isDragging, setIsDragging] = useState(false);
1900
1902
  const [dragMode, setDragMode] = useState(null);
1901
1903
  const [currentLeft, setCurrentLeft] = useState(0);
@@ -2060,7 +2062,7 @@ var useTaskDrag = (options) => {
2060
2062
  };
2061
2063
  }, []);
2062
2064
  const handleMouseDown = useCallback((e) => {
2063
- if (locked) return;
2065
+ if (effectiveLocked) return;
2064
2066
  const target = e.currentTarget;
2065
2067
  const edgeZone = detectEdgeZone(e.clientX, target, edgeZoneWidth);
2066
2068
  let mode = null;
@@ -2138,14 +2140,15 @@ var useTaskDrag = (options) => {
2138
2140
  businessDays,
2139
2141
  weekendPredicate
2140
2142
  };
2141
- }, [edgeZoneWidth, currentLeft, currentWidth, dayWidth, monthStart, taskId, onDragStateChange, handleProgress, handleComplete, handleCancel, allTasks, disableConstraints, onCascadeProgress, onCascade, locked]);
2143
+ }, [edgeZoneWidth, currentLeft, currentWidth, dayWidth, monthStart, taskId, onDragStateChange, handleProgress, handleComplete, handleCancel, allTasks, disableConstraints, onCascadeProgress, onCascade, effectiveLocked]);
2142
2144
  const getCursorStyle = useCallback(() => {
2145
+ if (disableTaskDrag) return "grab";
2143
2146
  if (locked) return "not-allowed";
2144
2147
  if (isDragging) {
2145
2148
  return "grabbing";
2146
2149
  }
2147
2150
  return "grab";
2148
- }, [locked, isDragging]);
2151
+ }, [disableTaskDrag, locked, isDragging]);
2149
2152
  return {
2150
2153
  isDragging,
2151
2154
  dragMode,
@@ -2164,10 +2167,10 @@ var useTaskDrag = (options) => {
2164
2167
  // src/components/TaskRow/TaskRow.tsx
2165
2168
  import { jsx as jsx2, jsxs as jsxs2 } from "react/jsx-runtime";
2166
2169
  var arePropsEqual = (prevProps, nextProps) => {
2167
- 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.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.allTasks === nextProps.allTasks && prevProps.disableConstraints === nextProps.disableConstraints && prevProps.task.locked === nextProps.task.locked && prevProps.task.divider === nextProps.task.divider && prevProps.highlightExpiredTasks === nextProps.highlightExpiredTasks && prevProps.isFilterMatch === nextProps.isFilterMatch && prevProps.businessDays === nextProps.businessDays && prevProps.customDays === nextProps.customDays && prevProps.isWeekend === nextProps.isWeekend;
2170
+ 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.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.allTasks === nextProps.allTasks && prevProps.disableConstraints === nextProps.disableConstraints && prevProps.task.locked === nextProps.task.locked && prevProps.task.divider === nextProps.task.divider && prevProps.highlightExpiredTasks === nextProps.highlightExpiredTasks && prevProps.isFilterMatch === nextProps.isFilterMatch && prevProps.businessDays === nextProps.businessDays && prevProps.customDays === nextProps.customDays && prevProps.isWeekend === nextProps.isWeekend && prevProps.disableTaskDrag === nextProps.disableTaskDrag;
2168
2171
  };
2169
2172
  var TaskRow = React2.memo(
2170
- ({ task, monthStart, dayWidth, rowHeight, onTasksChange, onDragStateChange, rowIndex, allTasks, enableAutoSchedule, disableConstraints, overridePosition, onCascadeProgress, onCascade, divider, highlightExpiredTasks, isFilterMatch = false, businessDays, customDays, isWeekend: isWeekend3 }) => {
2173
+ ({ task, monthStart, dayWidth, rowHeight, onTasksChange, onDragStateChange, rowIndex, allTasks, enableAutoSchedule, disableConstraints, overridePosition, onCascadeProgress, onCascade, divider, highlightExpiredTasks, isFilterMatch = false, businessDays, customDays, isWeekend: isWeekend3, disableTaskDrag = false }) => {
2171
2174
  const { divider: taskDivider } = task;
2172
2175
  const taskStartDate = useMemo2(() => parseUTCDate(task.startDate), [task.startDate]);
2173
2176
  const taskEndDate = useMemo2(() => parseUTCDate(task.endDate), [task.endDate]);
@@ -2247,6 +2250,7 @@ var TaskRow = React2.memo(
2247
2250
  enableAutoSchedule,
2248
2251
  disableConstraints,
2249
2252
  locked: task.locked,
2253
+ disableTaskDrag,
2250
2254
  onCascadeProgress,
2251
2255
  onCascade,
2252
2256
  businessDays,
@@ -5887,7 +5891,8 @@ var GanttChart = forwardRef(({
5887
5891
  taskFilter,
5888
5892
  collapsedParentIds: externalCollapsedParentIds,
5889
5893
  onToggleCollapse: externalOnToggleCollapse,
5890
- highlightedTaskIds
5894
+ highlightedTaskIds,
5895
+ disableTaskDrag = false
5891
5896
  }, ref) => {
5892
5897
  const scrollContainerRef = useRef7(null);
5893
5898
  const [selectedTaskId, setSelectedTaskId] = useState7(null);
@@ -6435,7 +6440,8 @@ var GanttChart = forwardRef(({
6435
6440
  isFilterMatch: matchedTaskIds.has(task.id),
6436
6441
  businessDays,
6437
6442
  customDays,
6438
- isWeekend: isWeekend3
6443
+ isWeekend: isWeekend3,
6444
+ disableTaskDrag
6439
6445
  },
6440
6446
  task.id
6441
6447
  ))