gantt-task-react-powern 0.4.84 → 0.4.86

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.
@@ -1357,22 +1357,12 @@ var Arrow = function Arrow(_ref) {
1357
1357
  rowHeight = _ref.rowHeight,
1358
1358
  taskHeight = _ref.taskHeight,
1359
1359
  arrowIndent = _ref.arrowIndent,
1360
- rtl = _ref.rtl,
1361
- arrowColor = _ref.arrowColor;
1362
- var path;
1363
- var trianglePoints;
1364
-
1365
- if (rtl) {
1366
- var _drownPathAndTriangle = drownPathAndTriangleRTL(taskFrom, taskTo, rowHeight, taskHeight, arrowIndent);
1367
-
1368
- path = _drownPathAndTriangle[0];
1369
- trianglePoints = _drownPathAndTriangle[1];
1370
- } else {
1371
- var _drownPathAndTriangle2 = drownPathAndTriangle(taskFrom, taskTo, rowHeight, taskHeight, arrowIndent);
1360
+ arrowColor = _ref.arrowColor,
1361
+ dependencyType = _ref.dependencyType;
1372
1362
 
1373
- path = _drownPathAndTriangle2[0];
1374
- trianglePoints = _drownPathAndTriangle2[1];
1375
- }
1363
+ var _drawPathAndTriangle = drawPathAndTriangle(taskFrom, taskTo, rowHeight, taskHeight, arrowIndent, dependencyType),
1364
+ path = _drawPathAndTriangle[0],
1365
+ trianglePoints = _drawPathAndTriangle[1];
1376
1366
 
1377
1367
  return React.createElement("g", {
1378
1368
  className: "arrow"
@@ -1387,35 +1377,76 @@ var Arrow = function Arrow(_ref) {
1387
1377
  }));
1388
1378
  };
1389
1379
 
1390
- var drownPathAndTriangle = function drownPathAndTriangle(taskFrom, taskTo, rowHeight, taskHeight, arrowIndent) {
1391
- var taskToStart, taskFromEnd;
1380
+ var drawPathAndTriangle = function drawPathAndTriangle(taskFrom, taskTo, rowHeight, taskHeight, arrowIndent, dependencyType) {
1381
+ var indexCompare = taskFrom.index > taskTo.index ? -1 : 1;
1382
+ var taskToEndY = taskTo.y + taskHeight / 2;
1383
+ var verticalOffset = indexCompare * (rowHeight / 2);
1392
1384
 
1393
- if (taskTo.x1 > 0 && taskTo.actualx1 > 0) {
1394
- taskToStart = Math.min(taskTo.x1, taskTo.actualx1);
1395
- } else if (taskTo.x1 > 0) taskToStart = taskTo.x1;else if (taskTo.actualx1 > 0) taskToStart = taskTo.actualx1;else taskToStart = 0;
1385
+ var minX = function minX(t) {
1386
+ return Math.min(t.x1 || 0, t.actualx1 || 0);
1387
+ };
1396
1388
 
1397
- if (taskFrom.x2 > 0 && taskFrom.actualx2 > 0) {
1398
- taskFromEnd = Math.max(taskFrom.x2, taskFrom.actualx2);
1399
- } else if (taskFrom.x2 > 0) taskFromEnd = taskFrom.x2;else if (taskFrom.actualx2 > 0) taskFromEnd = taskFrom.actualx2;else taskFromEnd = 0;
1389
+ var maxX = function maxX(t) {
1390
+ return Math.max(t.x2 || 0, t.actualx2 || 0);
1391
+ };
1400
1392
 
1401
- var indexCompare = taskFrom.index > taskTo.index ? -1 : 1;
1402
- var taskToEndPosition = taskTo.y + taskHeight / 2;
1403
- var taskFromEndPosition = taskFromEnd + arrowIndent * 2;
1404
- var taskFromHorizontalOffsetValue = taskFromEndPosition < taskToStart ? "" : "H " + (taskToStart - arrowIndent);
1405
- var taskToHorizontalOffsetValue = taskFromEndPosition > taskToStart ? arrowIndent : taskToStart - taskFromEnd - arrowIndent;
1406
- var path = "M " + taskFromEnd + " " + (taskFrom.y + taskHeight / 2) + " \n h " + arrowIndent + " \n v " + indexCompare * rowHeight / 2 + " \n " + taskFromHorizontalOffsetValue + "\n V " + taskToEndPosition + " \n h " + taskToHorizontalOffsetValue;
1407
- var trianglePoints = taskToStart + "," + taskToEndPosition + " \n " + (taskToStart - 5) + "," + (taskToEndPosition - 5) + " \n " + (taskToStart - 5) + "," + (taskToEndPosition + 5);
1408
- return [path, trianglePoints];
1409
- };
1393
+ var fromPoint, toPoint;
1394
+
1395
+ switch (dependencyType) {
1396
+ case "SS":
1397
+ fromPoint = minX(taskFrom);
1398
+ toPoint = minX(taskTo);
1399
+ break;
1400
+
1401
+ case "SF":
1402
+ fromPoint = minX(taskFrom);
1403
+ toPoint = maxX(taskTo);
1404
+ break;
1405
+
1406
+ case "FS":
1407
+ fromPoint = maxX(taskFrom);
1408
+ toPoint = minX(taskTo);
1409
+ break;
1410
+
1411
+ case "FF":
1412
+ fromPoint = maxX(taskFrom);
1413
+ toPoint = maxX(taskTo);
1414
+ break;
1415
+ }
1416
+
1417
+ var arrowPoints = function arrowPoints(x, y, right) {
1418
+ if (right === void 0) {
1419
+ right = true;
1420
+ }
1421
+
1422
+ return right ? x + "," + y + " " + (x - 5) + "," + (y - 5) + " " + (x - 5) + "," + (y + 5) : x + "," + y + " " + (x + 5) + "," + (y - 5) + " " + (x + 5) + "," + (y + 5);
1423
+ };
1424
+
1425
+ var path;
1426
+ var trianglePoints;
1427
+
1428
+ switch (dependencyType) {
1429
+ case "SS":
1430
+ path = "M " + fromPoint + " " + (taskFrom.y + taskHeight / 2) + "\n H " + (fromPoint + Math.min(toPoint - fromPoint, 0) - 2 * arrowIndent) + "\n V " + taskToEndY + "\n H " + (toPoint - 5);
1431
+ trianglePoints = arrowPoints(toPoint, taskToEndY, true);
1432
+ break;
1433
+
1434
+ case "SF":
1435
+ path = "M " + fromPoint + " " + (taskFrom.y + taskHeight / 2) + "\n H " + (fromPoint - 2 * arrowIndent) + "\n V " + (taskFrom.y + taskHeight / 2 + verticalOffset) + "\n " + (fromPoint - toPoint > 4 * arrowIndent ? "" : "H " + (toPoint + 2 * arrowIndent)) + "\n V " + taskToEndY + "\n H " + (toPoint + 5);
1436
+ trianglePoints = arrowPoints(toPoint, taskToEndY, false);
1437
+ break;
1438
+
1439
+ case "FS":
1440
+ path = "M " + fromPoint + " " + (taskFrom.y + taskHeight / 2) + "\n H " + (fromPoint + 2 * arrowIndent) + "\n V " + (taskFrom.y + taskHeight / 2 + verticalOffset) + "\n " + (toPoint - fromPoint > 4 * arrowIndent ? "" : "H " + (toPoint - 2 * arrowIndent)) + "\n V " + taskToEndY + "\n H " + (toPoint - 5);
1441
+ trianglePoints = arrowPoints(toPoint, taskToEndY, true);
1442
+ break;
1443
+
1444
+ case "FF":
1445
+ path = "M " + fromPoint + " " + (taskFrom.y + taskHeight / 2) + "\n H " + (fromPoint + Math.max(toPoint - fromPoint, 0) + 2 * arrowIndent) + "\n V " + taskToEndY + "\n H " + (toPoint + 5);
1446
+ trianglePoints = arrowPoints(toPoint, taskToEndY, false);
1447
+ break;
1448
+ }
1410
1449
 
1411
- var drownPathAndTriangleRTL = function drownPathAndTriangleRTL(taskFrom, taskTo, rowHeight, taskHeight, arrowIndent) {
1412
- var indexCompare = taskFrom.index > taskTo.index ? -1 : 1;
1413
- var taskToEndPosition = taskTo.y + taskHeight / 2;
1414
- var taskFromEndPosition = taskFrom.x1 - arrowIndent * 2;
1415
- var taskFromHorizontalOffsetValue = taskFromEndPosition > taskTo.x2 ? "" : "H " + (taskTo.x2 + arrowIndent);
1416
- var taskToHorizontalOffsetValue = taskFromEndPosition < taskTo.x2 ? -arrowIndent : taskTo.x2 - taskFrom.x1 + arrowIndent;
1417
- var path = "M " + taskFrom.x1 + " " + (taskFrom.y + taskHeight / 2) + " \n h " + -arrowIndent + " \n v " + indexCompare * rowHeight / 2 + " \n " + taskFromHorizontalOffsetValue + "\n V " + taskToEndPosition + " \n h " + taskToHorizontalOffsetValue;
1418
- var trianglePoints = taskTo.x2 + "," + taskToEndPosition + " \n " + (taskTo.x2 + 5) + "," + (taskToEndPosition + 5) + " \n " + (taskTo.x2 + 5) + "," + (taskToEndPosition - 5);
1419
1450
  return [path, trianglePoints];
1420
1451
  };
1421
1452
 
@@ -1428,9 +1459,16 @@ var convertToBarTasks = function convertToBarTasks(tasks, dates, columnWidth, ro
1428
1459
 
1429
1460
  var _loop = function _loop(j) {
1430
1461
  var dependence = barTasks.findIndex(function (value) {
1431
- return value.id === dependencies[j];
1462
+ return value.id === dependencies[j].id;
1432
1463
  });
1433
- if (dependence !== -1 && task.start.getTime() > 0 && task.end.getTime() > 0) barTasks[dependence].barChildren.push(task);
1464
+
1465
+ if (dependence !== -1 && task.start.getTime() > 0 && task.end.getTime() > 0) {
1466
+ var barchild = _extends({}, task, {
1467
+ dependencyType: dependencies[j].type
1468
+ });
1469
+
1470
+ barTasks[dependence].barChildren.push(barchild);
1471
+ }
1434
1472
  };
1435
1473
 
1436
1474
  for (var j = 0; j < dependencies.length; j++) {
@@ -2545,9 +2583,9 @@ var TaskGanttContent = function TaskGanttContent(_ref) {
2545
2583
  taskFrom: task,
2546
2584
  taskTo: tasks[child.index],
2547
2585
  rowHeight: rowHeight,
2586
+ dependencyType: child.dependencyType,
2548
2587
  taskHeight: taskHeight,
2549
2588
  arrowIndent: arrowIndent,
2550
- rtl: rtl,
2551
2589
  arrowColor: (criticalTask === null || criticalTask === void 0 ? void 0 : criticalTask.arrowColor) || "#808080"
2552
2590
  });
2553
2591
  }
@@ -2889,6 +2927,8 @@ var Gantt = function Gantt(_ref) {
2889
2927
  primaryPath = _getCriticalPaths[0],
2890
2928
  secondaryPath = _getCriticalPaths[1];
2891
2929
 
2930
+ console.debug(primaryPath, secondaryPath);
2931
+
2892
2932
  if (leafTasks.length > 0 && primaryPath.length === 0 && secondaryPath.length === 0) {
2893
2933
  setHasCircularDeps(true);
2894
2934
  } else {
@@ -3266,7 +3306,7 @@ function topologicalOrderingHelper(taskID, taskMap, sortedTaskList) {
3266
3306
  taskMap[taskID].started = true;
3267
3307
  var task = taskMap[taskID].task;
3268
3308
  if (task.dependencies) for (var i = 0; i < task.dependencies.length; i++) {
3269
- var successVal = topologicalOrderingHelper(task.dependencies[i], taskMap, sortedTaskList);
3309
+ var successVal = topologicalOrderingHelper(task.dependencies[i].id, taskMap, sortedTaskList);
3270
3310
  if (!successVal) return false;
3271
3311
  }
3272
3312
  taskMap[taskID].finished = true;
@@ -3298,7 +3338,7 @@ function getCriticalPaths(leafTasks) {
3298
3338
  if (task.dependencies) for (var j = 0; j < task.dependencies.length; j++) {
3299
3339
  var _taskMap$task$depende;
3300
3340
 
3301
- (_taskMap$task$depende = taskMap[task.dependencies[j]]) === null || _taskMap$task$depende === void 0 ? void 0 : _taskMap$task$depende.dependents.push(task.id);
3341
+ (_taskMap$task$depende = taskMap[task.dependencies[j].id]) === null || _taskMap$task$depende === void 0 ? void 0 : _taskMap$task$depende.dependents.push(task.id);
3302
3342
  }
3303
3343
  }
3304
3344