gantt-task-react-powern 0.4.85 → 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;
1360
+ arrowColor = _ref.arrowColor,
1361
+ dependencyType = _ref.dependencyType;
1364
1362
 
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);
1372
-
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++) {
@@ -1522,7 +1560,7 @@ var convertToBar = function convertToBar(task, index, dates, columnWidth, rowHei
1522
1560
  };
1523
1561
 
1524
1562
  var convertToMilestone = function convertToMilestone(task, index, dates, columnWidth, rowHeight, taskHeight, barCornerRadius, handleWidth, milestoneBackgroundColor, milestoneBackgroundSelectedColor) {
1525
- var x = task.start && task.end ? taskXCoordinate(task.end, dates, columnWidth) : 0;
1563
+ var x = task.start && task.end ? taskXCoordinate(task.start, dates, columnWidth) : 0;
1526
1564
  var y = taskYCoordinate(index, rowHeight, taskHeight);
1527
1565
  var x1 = task.start && task.end ? x - taskHeight * 0.5 : 0;
1528
1566
  var x2 = task.start && task.end ? x + taskHeight * 0.5 : 0;
@@ -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
  }
@@ -2569,21 +2607,6 @@ var TaskGanttContent = function TaskGanttContent(_ref) {
2569
2607
  }, tasks.map(function (_task) {
2570
2608
  var task = _task.start.getTime() > 0 && _task.end.getTime() > 0 || _task.actualStart.getTime() > 0 && _task.actualEnd.getTime() > 0 ? _task : undefined;
2571
2609
 
2572
- if (!task && _task.typeInternal === "milestone") {
2573
- return React.createElement(Milestone, {
2574
- task: _task,
2575
- arrowIndent: arrowIndent,
2576
- taskHeight: taskHeight,
2577
- isProgressChangeable: false,
2578
- isDateChangeable: false,
2579
- isDelete: !_task.isDisabled,
2580
- onEventStart: function onEventStart() {},
2581
- key: _task.id,
2582
- isSelected: !!selectedTask && _task.id === selectedTask.id,
2583
- rtl: rtl
2584
- });
2585
- }
2586
-
2587
2610
  if (!task) {
2588
2611
  return React.createElement("g", {
2589
2612
  key: _task.id,
@@ -2904,6 +2927,8 @@ var Gantt = function Gantt(_ref) {
2904
2927
  primaryPath = _getCriticalPaths[0],
2905
2928
  secondaryPath = _getCriticalPaths[1];
2906
2929
 
2930
+ console.debug(primaryPath, secondaryPath);
2931
+
2907
2932
  if (leafTasks.length > 0 && primaryPath.length === 0 && secondaryPath.length === 0) {
2908
2933
  setHasCircularDeps(true);
2909
2934
  } else {
@@ -3281,7 +3306,7 @@ function topologicalOrderingHelper(taskID, taskMap, sortedTaskList) {
3281
3306
  taskMap[taskID].started = true;
3282
3307
  var task = taskMap[taskID].task;
3283
3308
  if (task.dependencies) for (var i = 0; i < task.dependencies.length; i++) {
3284
- var successVal = topologicalOrderingHelper(task.dependencies[i], taskMap, sortedTaskList);
3309
+ var successVal = topologicalOrderingHelper(task.dependencies[i].id, taskMap, sortedTaskList);
3285
3310
  if (!successVal) return false;
3286
3311
  }
3287
3312
  taskMap[taskID].finished = true;
@@ -3313,7 +3338,7 @@ function getCriticalPaths(leafTasks) {
3313
3338
  if (task.dependencies) for (var j = 0; j < task.dependencies.length; j++) {
3314
3339
  var _taskMap$task$depende;
3315
3340
 
3316
- (_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);
3317
3342
  }
3318
3343
  }
3319
3344