gantt-task-react-v 1.4.0 → 1.4.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.
|
@@ -13126,6 +13126,12 @@ const TaskGanttContentInner = (props) => {
|
|
|
13126
13126
|
const tasksRes = [];
|
|
13127
13127
|
const arrowsRes = [];
|
|
13128
13128
|
const selectedTasksRes = [];
|
|
13129
|
+
const taskById = /* @__PURE__ */ new Map();
|
|
13130
|
+
mapGlobalRowIndexToTask.forEach((task) => {
|
|
13131
|
+
if (task.type !== "empty") {
|
|
13132
|
+
taskById.set(task.id, task);
|
|
13133
|
+
}
|
|
13134
|
+
});
|
|
13129
13135
|
const addedSelectedTasks = {};
|
|
13130
13136
|
const addedDependencies = {};
|
|
13131
13137
|
for (let index2 = start; index2 <= end; ++index2) {
|
|
@@ -13420,6 +13426,93 @@ const TaskGanttContentInner = (props) => {
|
|
|
13420
13426
|
);
|
|
13421
13427
|
}
|
|
13422
13428
|
}
|
|
13429
|
+
const renderedTop = start * fullRowHeight;
|
|
13430
|
+
const renderedBottom = (end + 1) * fullRowHeight;
|
|
13431
|
+
for (const [comparisonLevel, dependenciesByLevel] of dependencyMap) {
|
|
13432
|
+
let addedDependenciesAtLevel = addedDependencies[comparisonLevel];
|
|
13433
|
+
if (!addedDependenciesAtLevel) {
|
|
13434
|
+
addedDependenciesAtLevel = {};
|
|
13435
|
+
addedDependencies[comparisonLevel] = addedDependenciesAtLevel;
|
|
13436
|
+
}
|
|
13437
|
+
const criticalPathOnLevel = criticalPaths ? criticalPaths.get(comparisonLevel) : void 0;
|
|
13438
|
+
for (const [taskId, dependencies] of dependenciesByLevel) {
|
|
13439
|
+
let addedDependenciesAtTask = addedDependenciesAtLevel[taskId];
|
|
13440
|
+
if (!addedDependenciesAtTask) {
|
|
13441
|
+
addedDependenciesAtTask = {};
|
|
13442
|
+
addedDependenciesAtLevel[taskId] = addedDependenciesAtTask;
|
|
13443
|
+
}
|
|
13444
|
+
const targetTask = taskById.get(taskId);
|
|
13445
|
+
if (!targetTask)
|
|
13446
|
+
continue;
|
|
13447
|
+
const criticalPathForTask = criticalPathOnLevel ? criticalPathOnLevel.dependencies.get(taskId) : void 0;
|
|
13448
|
+
dependencies.filter(({ source }) => {
|
|
13449
|
+
if (addedDependenciesAtTask[source.id])
|
|
13450
|
+
return false;
|
|
13451
|
+
if (!visibleTasksMirror[source.id])
|
|
13452
|
+
return false;
|
|
13453
|
+
return true;
|
|
13454
|
+
}).forEach(
|
|
13455
|
+
({
|
|
13456
|
+
containerHeight,
|
|
13457
|
+
containerY,
|
|
13458
|
+
innerFromY,
|
|
13459
|
+
innerToY,
|
|
13460
|
+
ownTarget,
|
|
13461
|
+
source,
|
|
13462
|
+
sourceTarget
|
|
13463
|
+
}) => {
|
|
13464
|
+
if (containerY + containerHeight < renderedTop || containerY > renderedBottom) {
|
|
13465
|
+
return;
|
|
13466
|
+
}
|
|
13467
|
+
addedDependenciesAtTask[source.id] = true;
|
|
13468
|
+
const isCritical = criticalPathForTask ? criticalPathForTask.has(source.id) : false;
|
|
13469
|
+
const { x1: fromX1, x2: fromX2 } = getTaskCoordinates2(source);
|
|
13470
|
+
const { x1: targetX1, x2: targetX2 } = getTaskCoordinates2(targetTask);
|
|
13471
|
+
const safeFromX1 = isNaN(fromX1) || !isFinite(fromX1) ? 0 : fromX1;
|
|
13472
|
+
const safeFromX2 = isNaN(fromX2) || !isFinite(fromX2) ? safeFromX1 + 10 : fromX2;
|
|
13473
|
+
const safeTargetX1 = isNaN(targetX1) || !isFinite(targetX1) ? 0 : targetX1;
|
|
13474
|
+
const safeTargetX2 = isNaN(targetX2) || !isFinite(targetX2) ? safeTargetX1 + 10 : targetX2;
|
|
13475
|
+
const cX = Math.min(safeFromX1, safeTargetX1) - DELTA_RELATION_WIDTH;
|
|
13476
|
+
const cW = Math.max(safeFromX2, safeTargetX2) - cX + DELTA_RELATION_WIDTH;
|
|
13477
|
+
const safeCX = isNaN(cX) || !isFinite(cX) ? 0 : cX;
|
|
13478
|
+
const safeCW = isNaN(cW) || !isFinite(cW) ? 100 : Math.max(cW, 0);
|
|
13479
|
+
arrowsRes.push(
|
|
13480
|
+
/* @__PURE__ */ jsx(
|
|
13481
|
+
"svg",
|
|
13482
|
+
{
|
|
13483
|
+
x: Math.max(safeCX + (additionalLeftSpace || 0), 0),
|
|
13484
|
+
y: containerY,
|
|
13485
|
+
width: safeCW,
|
|
13486
|
+
height: containerHeight,
|
|
13487
|
+
children: /* @__PURE__ */ jsx(
|
|
13488
|
+
Arrow,
|
|
13489
|
+
{
|
|
13490
|
+
distances,
|
|
13491
|
+
taskFrom: source,
|
|
13492
|
+
targetFrom: sourceTarget,
|
|
13493
|
+
fromX1: safeFromX1 - safeCX,
|
|
13494
|
+
fromX2: safeFromX2 - safeCX,
|
|
13495
|
+
fromY: innerFromY,
|
|
13496
|
+
taskTo: targetTask,
|
|
13497
|
+
targetTo: ownTarget,
|
|
13498
|
+
toX1: safeTargetX1 - safeCX,
|
|
13499
|
+
toX2: safeTargetX2 - safeCX,
|
|
13500
|
+
toY: innerToY,
|
|
13501
|
+
fullRowHeight,
|
|
13502
|
+
taskHeight,
|
|
13503
|
+
isCritical,
|
|
13504
|
+
rtl,
|
|
13505
|
+
onArrowDoubleClick
|
|
13506
|
+
}
|
|
13507
|
+
)
|
|
13508
|
+
},
|
|
13509
|
+
`Arrow from ${source.id} to ${taskId} on ${comparisonLevel}`
|
|
13510
|
+
)
|
|
13511
|
+
);
|
|
13512
|
+
}
|
|
13513
|
+
);
|
|
13514
|
+
}
|
|
13515
|
+
}
|
|
13423
13516
|
return [tasksRes, arrowsRes, selectedTasksRes];
|
|
13424
13517
|
}, [
|
|
13425
13518
|
viewMode,
|
|
@@ -13143,6 +13143,12 @@
|
|
|
13143
13143
|
const tasksRes = [];
|
|
13144
13144
|
const arrowsRes = [];
|
|
13145
13145
|
const selectedTasksRes = [];
|
|
13146
|
+
const taskById = /* @__PURE__ */ new Map();
|
|
13147
|
+
mapGlobalRowIndexToTask.forEach((task) => {
|
|
13148
|
+
if (task.type !== "empty") {
|
|
13149
|
+
taskById.set(task.id, task);
|
|
13150
|
+
}
|
|
13151
|
+
});
|
|
13146
13152
|
const addedSelectedTasks = {};
|
|
13147
13153
|
const addedDependencies = {};
|
|
13148
13154
|
for (let index2 = start; index2 <= end; ++index2) {
|
|
@@ -13437,6 +13443,93 @@
|
|
|
13437
13443
|
);
|
|
13438
13444
|
}
|
|
13439
13445
|
}
|
|
13446
|
+
const renderedTop = start * fullRowHeight;
|
|
13447
|
+
const renderedBottom = (end + 1) * fullRowHeight;
|
|
13448
|
+
for (const [comparisonLevel, dependenciesByLevel] of dependencyMap) {
|
|
13449
|
+
let addedDependenciesAtLevel = addedDependencies[comparisonLevel];
|
|
13450
|
+
if (!addedDependenciesAtLevel) {
|
|
13451
|
+
addedDependenciesAtLevel = {};
|
|
13452
|
+
addedDependencies[comparisonLevel] = addedDependenciesAtLevel;
|
|
13453
|
+
}
|
|
13454
|
+
const criticalPathOnLevel = criticalPaths ? criticalPaths.get(comparisonLevel) : void 0;
|
|
13455
|
+
for (const [taskId, dependencies] of dependenciesByLevel) {
|
|
13456
|
+
let addedDependenciesAtTask = addedDependenciesAtLevel[taskId];
|
|
13457
|
+
if (!addedDependenciesAtTask) {
|
|
13458
|
+
addedDependenciesAtTask = {};
|
|
13459
|
+
addedDependenciesAtLevel[taskId] = addedDependenciesAtTask;
|
|
13460
|
+
}
|
|
13461
|
+
const targetTask = taskById.get(taskId);
|
|
13462
|
+
if (!targetTask)
|
|
13463
|
+
continue;
|
|
13464
|
+
const criticalPathForTask = criticalPathOnLevel ? criticalPathOnLevel.dependencies.get(taskId) : void 0;
|
|
13465
|
+
dependencies.filter(({ source }) => {
|
|
13466
|
+
if (addedDependenciesAtTask[source.id])
|
|
13467
|
+
return false;
|
|
13468
|
+
if (!visibleTasksMirror[source.id])
|
|
13469
|
+
return false;
|
|
13470
|
+
return true;
|
|
13471
|
+
}).forEach(
|
|
13472
|
+
({
|
|
13473
|
+
containerHeight,
|
|
13474
|
+
containerY,
|
|
13475
|
+
innerFromY,
|
|
13476
|
+
innerToY,
|
|
13477
|
+
ownTarget,
|
|
13478
|
+
source,
|
|
13479
|
+
sourceTarget
|
|
13480
|
+
}) => {
|
|
13481
|
+
if (containerY + containerHeight < renderedTop || containerY > renderedBottom) {
|
|
13482
|
+
return;
|
|
13483
|
+
}
|
|
13484
|
+
addedDependenciesAtTask[source.id] = true;
|
|
13485
|
+
const isCritical = criticalPathForTask ? criticalPathForTask.has(source.id) : false;
|
|
13486
|
+
const { x1: fromX1, x2: fromX2 } = getTaskCoordinates2(source);
|
|
13487
|
+
const { x1: targetX1, x2: targetX2 } = getTaskCoordinates2(targetTask);
|
|
13488
|
+
const safeFromX1 = isNaN(fromX1) || !isFinite(fromX1) ? 0 : fromX1;
|
|
13489
|
+
const safeFromX2 = isNaN(fromX2) || !isFinite(fromX2) ? safeFromX1 + 10 : fromX2;
|
|
13490
|
+
const safeTargetX1 = isNaN(targetX1) || !isFinite(targetX1) ? 0 : targetX1;
|
|
13491
|
+
const safeTargetX2 = isNaN(targetX2) || !isFinite(targetX2) ? safeTargetX1 + 10 : targetX2;
|
|
13492
|
+
const cX = Math.min(safeFromX1, safeTargetX1) - DELTA_RELATION_WIDTH;
|
|
13493
|
+
const cW = Math.max(safeFromX2, safeTargetX2) - cX + DELTA_RELATION_WIDTH;
|
|
13494
|
+
const safeCX = isNaN(cX) || !isFinite(cX) ? 0 : cX;
|
|
13495
|
+
const safeCW = isNaN(cW) || !isFinite(cW) ? 100 : Math.max(cW, 0);
|
|
13496
|
+
arrowsRes.push(
|
|
13497
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
13498
|
+
"svg",
|
|
13499
|
+
{
|
|
13500
|
+
x: Math.max(safeCX + (additionalLeftSpace || 0), 0),
|
|
13501
|
+
y: containerY,
|
|
13502
|
+
width: safeCW,
|
|
13503
|
+
height: containerHeight,
|
|
13504
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
13505
|
+
Arrow,
|
|
13506
|
+
{
|
|
13507
|
+
distances,
|
|
13508
|
+
taskFrom: source,
|
|
13509
|
+
targetFrom: sourceTarget,
|
|
13510
|
+
fromX1: safeFromX1 - safeCX,
|
|
13511
|
+
fromX2: safeFromX2 - safeCX,
|
|
13512
|
+
fromY: innerFromY,
|
|
13513
|
+
taskTo: targetTask,
|
|
13514
|
+
targetTo: ownTarget,
|
|
13515
|
+
toX1: safeTargetX1 - safeCX,
|
|
13516
|
+
toX2: safeTargetX2 - safeCX,
|
|
13517
|
+
toY: innerToY,
|
|
13518
|
+
fullRowHeight,
|
|
13519
|
+
taskHeight,
|
|
13520
|
+
isCritical,
|
|
13521
|
+
rtl,
|
|
13522
|
+
onArrowDoubleClick
|
|
13523
|
+
}
|
|
13524
|
+
)
|
|
13525
|
+
},
|
|
13526
|
+
`Arrow from ${source.id} to ${taskId} on ${comparisonLevel}`
|
|
13527
|
+
)
|
|
13528
|
+
);
|
|
13529
|
+
}
|
|
13530
|
+
);
|
|
13531
|
+
}
|
|
13532
|
+
}
|
|
13440
13533
|
return [tasksRes, arrowsRes, selectedTasksRes];
|
|
13441
13534
|
}, [
|
|
13442
13535
|
viewMode,
|
package/package.json
CHANGED