gantt-lib 0.135.3 → 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.mjs CHANGED
@@ -3675,8 +3675,8 @@ function handleGlobalMouseMove(e) {
3675
3675
  if (draggedTask && isMilestoneTask(draggedTask)) {
3676
3676
  newWidth = dayWidth;
3677
3677
  }
3678
- const isParentResizePreview = draggedTask && (mode === "resize-left" || mode === "resize-right") && isTaskParent(activeDrag.taskId, allTasks);
3679
- if (isParentResizePreview && activeDrag.onCascadeProgress) {
3678
+ const isParentResizePreview = !activeDrag.deferCascadePreview && draggedTask && (mode === "resize-left" || mode === "resize-right") && isTaskParent(activeDrag.taskId, allTasks);
3679
+ if (!activeDrag.deferCascadePreview && isParentResizePreview && activeDrag.onCascadeProgress) {
3680
3680
  const { dayWidth: dw, monthStart: mStart } = activeDrag;
3681
3681
  const previewRange = resolveDragRangeForInteraction(activeDrag, draggedTask, mode, newLeft, newWidth);
3682
3682
  const anchor = mode === "resize-left" ? "end" : "start";
@@ -3727,7 +3727,7 @@ function handleGlobalMouseMove(e) {
3727
3727
  activeDrag.onCascadeProgress(liveOverrides, activeDrag.parentScalePreview.previewTasks);
3728
3728
  }
3729
3729
  }
3730
- if (!activeDrag.disableConstraints && activeDrag.onCascadeProgress && !isParentResizePreview) {
3730
+ if (!activeDrag.deferCascadePreview && !activeDrag.disableConstraints && activeDrag.onCascadeProgress && !isParentResizePreview) {
3731
3731
  const { dayWidth: dayWidth2, monthStart: mStart, taskId: dragId } = activeDrag;
3732
3732
  const originalDraggedTask = draggedTask ?? allTasks.find((t) => t.id === dragId);
3733
3733
  const previewRange = originalDraggedTask ? clampDateRangeForIncomingFS(
@@ -3851,6 +3851,7 @@ var useTaskDrag = (options) => {
3851
3851
  rowIndex,
3852
3852
  enableAutoSchedule = false,
3853
3853
  disableConstraints = false,
3854
+ deferCascadePreview = false,
3854
3855
  onCascadeProgress,
3855
3856
  onCascade,
3856
3857
  locked = false,
@@ -4188,13 +4189,14 @@ var useTaskDrag = (options) => {
4188
4189
  onCancel: handleCancel,
4189
4190
  allTasks,
4190
4191
  disableConstraints,
4192
+ deferCascadePreview,
4191
4193
  onCascadeProgress,
4192
4194
  businessDays,
4193
4195
  weekendPredicate,
4194
4196
  cascadeContext: shouldBuildCascadeContext ? createCascadeContext(allTasks) : void 0,
4195
4197
  scheduleIntentMode: Boolean(onScheduleIntent)
4196
4198
  };
4197
- }, [edgeZoneWidth, currentLeft, currentWidth, dayWidth, monthStart, taskId, onDragStateChange, handleProgress, handleComplete, handleCancel, allTasks, disableConstraints, onCascadeProgress, onCascade, effectiveLocked, viewMode]);
4199
+ }, [edgeZoneWidth, currentLeft, currentWidth, dayWidth, monthStart, taskId, onDragStateChange, handleProgress, handleComplete, handleCancel, allTasks, disableConstraints, deferCascadePreview, onCascadeProgress, onCascade, effectiveLocked, viewMode]);
4198
4200
  const handleMouseDown = useCallback((e) => {
4199
4201
  startDrag(e);
4200
4202
  }, [startDrag]);
@@ -4252,10 +4254,10 @@ var useTaskDrag = (options) => {
4252
4254
  // src/components/TaskRow/TaskRow.tsx
4253
4255
  import { Fragment, jsx as jsx2, jsxs as jsxs2 } from "react/jsx-runtime";
4254
4256
  var arePropsEqual = (prevProps, nextProps) => {
4255
- 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;
4257
+ 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;
4256
4258
  };
4257
4259
  var TaskRow = React2.memo(
4258
- ({ 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 }) => {
4260
+ ({ 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 }) => {
4259
4261
  const defaultParentBarColor = "#782FC4";
4260
4262
  const { divider: taskDivider } = task;
4261
4263
  const normalizedTask = useMemo2(() => normalizeTaskDatesForType(task), [task]);
@@ -4377,6 +4379,7 @@ var TaskRow = React2.memo(
4377
4379
  rowIndex,
4378
4380
  enableAutoSchedule,
4379
4381
  disableConstraints,
4382
+ deferCascadePreview,
4380
4383
  locked: task.locked,
4381
4384
  disableTaskDrag,
4382
4385
  onCascadeProgress,
@@ -4800,7 +4803,8 @@ var DragGuideLines = ({
4800
4803
  dragMode,
4801
4804
  left,
4802
4805
  width,
4803
- totalHeight
4806
+ totalHeight,
4807
+ top = 0
4804
4808
  }) => {
4805
4809
  if (!isDragging || !dragMode) {
4806
4810
  return null;
@@ -4814,6 +4818,7 @@ var DragGuideLines = ({
4814
4818
  className: "gantt-dgl-guideLine",
4815
4819
  style: {
4816
4820
  left: `${left}px`,
4821
+ top: `${top}px`,
4817
4822
  height: `${totalHeight}px`
4818
4823
  }
4819
4824
  }
@@ -4824,6 +4829,7 @@ var DragGuideLines = ({
4824
4829
  className: "gantt-dgl-guideLine",
4825
4830
  style: {
4826
4831
  left: `${left + width}px`,
4832
+ top: `${top}px`,
4827
4833
  height: `${totalHeight}px`
4828
4834
  }
4829
4835
  }
@@ -15513,7 +15519,8 @@ function TaskGanttChartInner(props, ref) {
15513
15519
  dragMode: dragGuideLines.dragMode,
15514
15520
  left: dragGuideLines.left,
15515
15521
  width: dragGuideLines.width,
15516
- totalHeight: totalGridHeight
15522
+ totalHeight: Math.min(totalGridHeight, scrollViewport.viewportHeight),
15523
+ top: Math.max(0, scrollViewport.scrollTop)
15517
15524
  }
15518
15525
  ),
15519
15526
  renderedChartTasks.map(({ task, index }) => /* @__PURE__ */ jsx21(
@@ -15550,6 +15557,7 @@ function TaskGanttChartInner(props, ref) {
15550
15557
  allTasks: normalizedTasks,
15551
15558
  enableAutoSchedule: enableAutoSchedule ?? false,
15552
15559
  disableConstraints: disableConstraints ?? false,
15560
+ deferCascadePreview: normalizedTasks.length >= 1e3,
15553
15561
  previewPositionStore,
15554
15562
  onCascadeProgress: handleCascadeProgress,
15555
15563
  onCascade: handleCascade,