gantt-lib 0.3.2 → 0.3.3
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 +29 -17
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +29 -17
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1188,8 +1188,8 @@ var TaskRow = import_react3.default.memo(
|
|
|
1188
1188
|
}
|
|
1189
1189
|
const msPerDay = 1e3 * 60 * 60 * 24;
|
|
1190
1190
|
const duration = taskEnd.getTime() - taskStart.getTime() + msPerDay;
|
|
1191
|
-
const
|
|
1192
|
-
const elapsed =
|
|
1191
|
+
const elapsedFromToday = today.getTime() - taskStart.getTime();
|
|
1192
|
+
const elapsed = Math.min(Math.max(0, elapsedFromToday), duration);
|
|
1193
1193
|
const expected = elapsed / duration * 100;
|
|
1194
1194
|
return actualProgress < expected;
|
|
1195
1195
|
}, [task.startDate, task.endDate, task.progress, highlightExpiredTasks]);
|
|
@@ -2655,18 +2655,26 @@ var GanttChart = (0, import_react12.forwardRef)(({
|
|
|
2655
2655
|
const newStart = new Date(updatedTask.startDate);
|
|
2656
2656
|
const newEnd = new Date(updatedTask.endDate);
|
|
2657
2657
|
const datesChanged = origStart.getTime() !== newStart.getTime() || origEnd.getTime() !== newEnd.getTime();
|
|
2658
|
-
if (!datesChanged || disableConstraints) {
|
|
2659
|
-
onChange?.((currentTasks) => currentTasks.map((t) => t.id === updatedTask.id ? updatedTask : t));
|
|
2660
|
-
return;
|
|
2661
|
-
}
|
|
2662
|
-
const cascadedTask = updatedTask;
|
|
2663
|
-
const cascadedChain = cascadeByLinks(updatedTask.id, newStart, newEnd, tasks);
|
|
2664
|
-
const allCascaded = [cascadedTask, ...cascadedChain];
|
|
2665
2658
|
const now = /* @__PURE__ */ new Date();
|
|
2666
2659
|
const today = new Date(Date.UTC(now.getUTCFullYear(), now.getUTCMonth(), now.getUTCDate()));
|
|
2667
2660
|
const msPerDay = 1e3 * 60 * 60 * 24;
|
|
2661
|
+
let tasksToProcess;
|
|
2662
|
+
let cascadedTasksForCallback = [];
|
|
2663
|
+
if (!datesChanged) {
|
|
2664
|
+
onChange?.((currentTasks) => currentTasks.map((t) => t.id === updatedTask.id ? updatedTask : t));
|
|
2665
|
+
return;
|
|
2666
|
+
}
|
|
2667
|
+
if (disableConstraints) {
|
|
2668
|
+
tasksToProcess = [updatedTask];
|
|
2669
|
+
cascadedTasksForCallback = [updatedTask];
|
|
2670
|
+
} else {
|
|
2671
|
+
const cascadedTask = updatedTask;
|
|
2672
|
+
const cascadedChain = cascadeByLinks(updatedTask.id, newStart, newEnd, tasks);
|
|
2673
|
+
tasksToProcess = [cascadedTask, ...cascadedChain];
|
|
2674
|
+
cascadedTasksForCallback = tasksToProcess;
|
|
2675
|
+
}
|
|
2668
2676
|
console.log("[GanttChart handleTaskChange] IsExpired calculation:");
|
|
2669
|
-
for (const t of
|
|
2677
|
+
for (const t of tasksToProcess) {
|
|
2670
2678
|
const taskStart = new Date(t.startDate);
|
|
2671
2679
|
const taskEnd = new Date(t.endDate);
|
|
2672
2680
|
const actualProgress = t.progress ?? 0;
|
|
@@ -2675,19 +2683,23 @@ var GanttChart = (0, import_react12.forwardRef)(({
|
|
|
2675
2683
|
continue;
|
|
2676
2684
|
}
|
|
2677
2685
|
const duration = taskEnd.getTime() - taskStart.getTime() + msPerDay;
|
|
2678
|
-
const
|
|
2679
|
-
const elapsed =
|
|
2686
|
+
const elapsedFromToday = today.getTime() - taskStart.getTime();
|
|
2687
|
+
const elapsed = Math.min(Math.max(0, elapsedFromToday), duration);
|
|
2680
2688
|
const expectedProgress = Math.min(100, Math.max(0, elapsed / duration * 100));
|
|
2681
2689
|
const isExpired = actualProgress < expectedProgress;
|
|
2682
2690
|
const durationDays = Math.round(duration / msPerDay);
|
|
2683
2691
|
const elapsedDays = Math.round(elapsed / msPerDay);
|
|
2684
2692
|
console.log(` [${t.id}] START=${t.startDate} END=${t.endDate} TODAY=${today.toISOString().split("T")[0]} PROGRESS=${actualProgress}% DURATION=${durationDays}d ELAPSED=${elapsedDays}d EXPECTED=${expectedProgress.toFixed(1)}% EXPIRED=${isExpired ? "YES" : "NO"}`);
|
|
2685
2693
|
}
|
|
2686
|
-
|
|
2687
|
-
|
|
2688
|
-
|
|
2689
|
-
|
|
2690
|
-
|
|
2694
|
+
if (disableConstraints) {
|
|
2695
|
+
onChange?.((currentTasks) => currentTasks.map((t) => t.id === updatedTask.id ? updatedTask : t));
|
|
2696
|
+
} else {
|
|
2697
|
+
onChange?.((currentTasks) => {
|
|
2698
|
+
const m = new Map(cascadedTasksForCallback.map((t) => [t.id, t]));
|
|
2699
|
+
return currentTasks.map((t) => m.get(t.id) ?? t);
|
|
2700
|
+
});
|
|
2701
|
+
onCascade?.(cascadedTasksForCallback);
|
|
2702
|
+
}
|
|
2691
2703
|
}, [tasks, onChange, disableConstraints, onCascade]);
|
|
2692
2704
|
const dependencyOverrides = (0, import_react12.useMemo)(() => {
|
|
2693
2705
|
const map = new Map(cascadeOverrides);
|