gantt-lib 0.9.1 → 0.10.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.js CHANGED
@@ -3969,40 +3969,7 @@ var GanttChart = (0, import_react13.forwardRef)(({
3969
3969
  return;
3970
3970
  }
3971
3971
  const cascadedTasks = disableConstraints ? [updatedTask] : [updatedTask, ...cascadeByLinks(updatedTask.id, newStart, newEnd, tasks)];
3972
- if (disableConstraints) {
3973
- onTasksChange?.(cascadedTasks);
3974
- } else {
3975
- const changedTasks = new Map(cascadedTasks.map((t) => [t.id, t]));
3976
- const parentIdsToUpdate = /* @__PURE__ */ new Set();
3977
- cascadedTasks.forEach((task) => {
3978
- if (task.parentId) {
3979
- parentIdsToUpdate.add(task.parentId);
3980
- }
3981
- });
3982
- const additionalParentUpdates = [];
3983
- parentIdsToUpdate.forEach((parentId) => {
3984
- const parentTask = tasks.find((t) => t.id === parentId);
3985
- if (!parentTask) return;
3986
- if (parentId === updatedTask.id) {
3987
- const newProgress2 = computeParentProgress(parentId, tasks.map((t) => changedTasks.get(t.id) ?? t));
3988
- const parentInCascaded = cascadedTasks.find((t) => t.id === parentId);
3989
- if (parentInCascaded) {
3990
- parentInCascaded.progress = newProgress2;
3991
- }
3992
- return;
3993
- }
3994
- const tempTasks = tasks.map((t) => changedTasks.get(t.id) ?? t);
3995
- const newDates = computeParentDates(parentId, tempTasks);
3996
- const newProgress = computeParentProgress(parentId, tempTasks);
3997
- additionalParentUpdates.push({
3998
- ...parentTask,
3999
- startDate: newDates.startDate.toISOString().split("T")[0],
4000
- endDate: newDates.endDate.toISOString().split("T")[0],
4001
- progress: newProgress
4002
- });
4003
- });
4004
- onTasksChange?.([...cascadedTasks, ...additionalParentUpdates]);
4005
- }
3972
+ onTasksChange?.(cascadedTasks);
4006
3973
  }, [tasks, onTasksChange, disableConstraints, editingTaskId]);
4007
3974
  const handleDelete = (0, import_react13.useCallback)((taskId) => {
4008
3975
  const toDelete = /* @__PURE__ */ new Set([taskId]);
@@ -4112,37 +4079,7 @@ var GanttChart = (0, import_react13.forwardRef)(({
4112
4079
  setCascadeOverrides(new Map(overrides));
4113
4080
  }, []);
4114
4081
  const handleCascade = (0, import_react13.useCallback)((cascadedTasks) => {
4115
- const draggedTaskId = cascadedTasks[0]?.id;
4116
- const cascadeMap = new Map(cascadedTasks.map((t) => [t.id, t]));
4117
- const parentIdsToUpdate = /* @__PURE__ */ new Set();
4118
- cascadedTasks.forEach((task) => {
4119
- if (task.parentId) {
4120
- parentIdsToUpdate.add(task.parentId);
4121
- }
4122
- });
4123
- const additionalParentUpdates = [];
4124
- parentIdsToUpdate.forEach((parentId) => {
4125
- const parentTask = tasks.find((t) => t.id === parentId);
4126
- if (!parentTask) return;
4127
- const tempTasks = tasks.map((t) => cascadeMap.get(t.id) ?? t);
4128
- if (parentId === draggedTaskId) {
4129
- const newProgress2 = computeParentProgress(parentId, tempTasks);
4130
- const parentInCascaded = cascadedTasks.find((t) => t.id === parentId);
4131
- if (parentInCascaded) {
4132
- parentInCascaded.progress = newProgress2;
4133
- }
4134
- return;
4135
- }
4136
- const newDates = computeParentDates(parentId, tempTasks);
4137
- const newProgress = computeParentProgress(parentId, tempTasks);
4138
- additionalParentUpdates.push({
4139
- ...parentTask,
4140
- startDate: newDates.startDate.toISOString().split("T")[0],
4141
- endDate: newDates.endDate.toISOString().split("T")[0],
4142
- progress: newProgress
4143
- });
4144
- });
4145
- onTasksChange?.([...cascadedTasks, ...additionalParentUpdates]);
4082
+ onTasksChange?.(cascadedTasks);
4146
4083
  }, [tasks, onTasksChange]);
4147
4084
  const handleTaskSelect = (0, import_react13.useCallback)((taskId) => {
4148
4085
  setSelectedTaskId(taskId);
@@ -4211,19 +4148,23 @@ var GanttChart = (0, import_react13.forwardRef)(({
4211
4148
  }
4212
4149
  let updatedTasks = removeDependenciesBetweenTasks(taskId, newParentId, tasks);
4213
4150
  const demotedTask = updatedTasks.find((t) => t.id === taskId);
4214
- const parentTask = updatedTasks.find((t) => t.id === newParentId);
4215
- if (!demotedTask || !parentTask) return;
4216
- const updatedDemotedTask = { ...demotedTask, parentId: newParentId };
4217
- const tempTasks = updatedTasks.map((t) => t.id === taskId ? updatedDemotedTask : t);
4218
- const parentDates = computeParentDates(newParentId, tempTasks);
4219
- const parentProgress = computeParentProgress(newParentId, tempTasks);
4220
- const updatedParentTask = {
4221
- ...parentTask,
4222
- startDate: parentDates.startDate.toISOString().split("T")[0],
4223
- endDate: parentDates.endDate.toISOString().split("T")[0],
4224
- progress: parentProgress
4151
+ if (!demotedTask) return;
4152
+ const wasParent = getChildren(taskId, tasks).length > 0;
4153
+ let taskDates = { startDate: demotedTask.startDate, endDate: demotedTask.endDate };
4154
+ if (wasParent) {
4155
+ const computedDates = computeParentDates(taskId, tasks);
4156
+ taskDates = {
4157
+ startDate: computedDates.startDate.toISOString().split("T")[0],
4158
+ endDate: computedDates.endDate.toISOString().split("T")[0]
4159
+ };
4160
+ }
4161
+ const updatedDemotedTask = {
4162
+ ...demotedTask,
4163
+ parentId: newParentId,
4164
+ startDate: taskDates.startDate,
4165
+ endDate: taskDates.endDate
4225
4166
  };
4226
- onTasksChange?.([updatedDemotedTask, updatedParentTask]);
4167
+ onTasksChange?.([updatedDemotedTask]);
4227
4168
  }, [tasks, onTasksChange, onDemoteTask]);
4228
4169
  const panStateRef = (0, import_react13.useRef)(null);
4229
4170
  const handlePanStart = (0, import_react13.useCallback)((e) => {