gantt-task-react-powern 0.6.32 → 0.6.33
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/README.md +109 -63
- package/dist/components/calendar/calendar.d.ts +1 -0
- package/dist/components/task-list/task-list-columns.d.ts +15 -0
- package/dist/components/task-list/task-list-header.d.ts +2 -0
- package/dist/components/task-list/task-list-table.d.ts +1 -0
- package/dist/components/task-list/task-list.d.ts +5 -0
- package/dist/index.css +22 -0
- package/dist/index.js +375 -244
- package/dist/index.js.map +1 -1
- package/dist/index.modern.js +375 -244
- package/dist/index.modern.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -270,7 +270,7 @@ var getMonday = function getMonday(date) {
|
|
|
270
270
|
return new Date(date.setDate(diff));
|
|
271
271
|
};
|
|
272
272
|
|
|
273
|
-
var styles = {"ganttTable":"_3_ygE","ganttTable_Header":"_1nBOt","ganttTable_HeaderSeparator":"_2eZzQ","ganttTable_HeaderItem":"_WuQ0f"};
|
|
273
|
+
var styles = {"ganttTable":"_3_ygE","ganttTable_Header":"_1nBOt","ganttTable_HeaderSeparator":"_2eZzQ","ganttTable_HeaderResizeHandle":"_ddPJg","ganttTable_HeaderItem":"_WuQ0f"};
|
|
274
274
|
|
|
275
275
|
var TaskListHeaderDefault = function TaskListHeaderDefault(_ref) {
|
|
276
276
|
var headerHeight = _ref.headerHeight,
|
|
@@ -279,7 +279,64 @@ var TaskListHeaderDefault = function TaskListHeaderDefault(_ref) {
|
|
|
279
279
|
rowWidth = _ref.rowWidth,
|
|
280
280
|
scheduleType = _ref.scheduleType,
|
|
281
281
|
allSelected = _ref.allSelected,
|
|
282
|
-
onSelectAll = _ref.onSelectAll
|
|
282
|
+
onSelectAll = _ref.onSelectAll,
|
|
283
|
+
columnWidths = _ref.columnWidths,
|
|
284
|
+
onColumnResize = _ref.onColumnResize;
|
|
285
|
+
|
|
286
|
+
var widthOf = function widthOf(colId, factor) {
|
|
287
|
+
var _columnWidths$colId;
|
|
288
|
+
|
|
289
|
+
return (_columnWidths$colId = columnWidths === null || columnWidths === void 0 ? void 0 : columnWidths[colId]) != null ? _columnWidths$colId : parseInt(rowWidth) * factor;
|
|
290
|
+
};
|
|
291
|
+
|
|
292
|
+
var startResize = function startResize(colId, startWidth) {
|
|
293
|
+
return function (e) {
|
|
294
|
+
if (!onColumnResize) return;
|
|
295
|
+
e.preventDefault();
|
|
296
|
+
e.stopPropagation();
|
|
297
|
+
var startX = e.clientX;
|
|
298
|
+
|
|
299
|
+
var onMove = function onMove(ev) {
|
|
300
|
+
onColumnResize(colId, startWidth + (ev.clientX - startX));
|
|
301
|
+
};
|
|
302
|
+
|
|
303
|
+
var onUp = function onUp() {
|
|
304
|
+
document.removeEventListener("mousemove", onMove);
|
|
305
|
+
document.removeEventListener("mouseup", onUp);
|
|
306
|
+
};
|
|
307
|
+
|
|
308
|
+
document.addEventListener("mousemove", onMove);
|
|
309
|
+
document.addEventListener("mouseup", onUp);
|
|
310
|
+
};
|
|
311
|
+
};
|
|
312
|
+
|
|
313
|
+
var cell = function cell(colId, factor, content, opts) {
|
|
314
|
+
if (opts === void 0) {
|
|
315
|
+
opts = {};
|
|
316
|
+
}
|
|
317
|
+
|
|
318
|
+
var _opts = opts,
|
|
319
|
+
title = _opts.title,
|
|
320
|
+
_opts$resizable = _opts.resizable,
|
|
321
|
+
resizable = _opts$resizable === void 0 ? true : _opts$resizable;
|
|
322
|
+
var width = widthOf(colId, factor);
|
|
323
|
+
return React__default.createElement("div", {
|
|
324
|
+
className: styles.ganttTable_HeaderItem,
|
|
325
|
+
style: {
|
|
326
|
+
minWidth: width,
|
|
327
|
+
maxWidth: width,
|
|
328
|
+
position: "relative"
|
|
329
|
+
},
|
|
330
|
+
title: title
|
|
331
|
+
}, content, resizable && onColumnResize && React__default.createElement("div", {
|
|
332
|
+
className: styles.ganttTable_HeaderResizeHandle,
|
|
333
|
+
style: {
|
|
334
|
+
height: headerHeight - 2
|
|
335
|
+
},
|
|
336
|
+
onMouseDown: startResize(colId, width)
|
|
337
|
+
}));
|
|
338
|
+
};
|
|
339
|
+
|
|
283
340
|
return React__default.createElement("div", {
|
|
284
341
|
className: styles.ganttTable,
|
|
285
342
|
style: {
|
|
@@ -291,156 +348,33 @@ var TaskListHeaderDefault = function TaskListHeaderDefault(_ref) {
|
|
|
291
348
|
style: {
|
|
292
349
|
height: headerHeight - 2
|
|
293
350
|
}
|
|
294
|
-
}, onSelectAll &&
|
|
295
|
-
className: styles.ganttTable_HeaderItem,
|
|
296
|
-
style: {
|
|
297
|
-
minWidth: parseInt(rowWidth) * 0.3,
|
|
298
|
-
maxWidth: parseInt(rowWidth) * 0.3
|
|
299
|
-
}
|
|
300
|
-
}, React__default.createElement("input", {
|
|
351
|
+
}, onSelectAll && cell("select", 0.3, React__default.createElement("input", {
|
|
301
352
|
type: "checkbox",
|
|
302
353
|
checked: allSelected,
|
|
303
354
|
onChange: function onChange(e) {
|
|
304
355
|
return onSelectAll(e.target.checked);
|
|
305
356
|
}
|
|
306
|
-
})
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
minWidth: parseInt(rowWidth) * 0.8,
|
|
310
|
-
maxWidth: parseInt(rowWidth) * 0.8
|
|
311
|
-
}
|
|
312
|
-
}, "ID"), React__default.createElement("div", {
|
|
313
|
-
className: styles.ganttTable_HeaderSeparator,
|
|
314
|
-
style: {
|
|
315
|
-
height: headerHeight * 0.5,
|
|
316
|
-
marginTop: headerHeight * 0.2
|
|
317
|
-
}
|
|
318
|
-
}), React__default.createElement("div", {
|
|
319
|
-
className: styles.ganttTable_HeaderItem,
|
|
320
|
-
style: {
|
|
321
|
-
minWidth: parseInt(rowWidth) * 0.8,
|
|
322
|
-
maxWidth: parseInt(rowWidth) * 0.8
|
|
323
|
-
}
|
|
324
|
-
}, "WBS Code / Activity ID"), React__default.createElement("div", {
|
|
325
|
-
className: styles.ganttTable_HeaderSeparator,
|
|
326
|
-
style: {
|
|
327
|
-
height: headerHeight * 0.5,
|
|
328
|
-
marginTop: headerHeight * 0.2
|
|
329
|
-
}
|
|
330
|
-
}), React__default.createElement("div", {
|
|
331
|
-
className: styles.ganttTable_HeaderItem,
|
|
332
|
-
style: {
|
|
333
|
-
minWidth: parseInt(rowWidth) * 1.8,
|
|
334
|
-
maxWidth: parseInt(rowWidth) * 1.8
|
|
335
|
-
}
|
|
336
|
-
}, "Task"), React__default.createElement("div", {
|
|
337
|
-
className: styles.ganttTable_HeaderSeparator,
|
|
338
|
-
style: {
|
|
339
|
-
height: headerHeight * 0.5,
|
|
340
|
-
marginTop: headerHeight * 0.2
|
|
341
|
-
}
|
|
342
|
-
}), React__default.createElement("div", {
|
|
343
|
-
className: styles.ganttTable_HeaderItem,
|
|
344
|
-
style: {
|
|
345
|
-
minWidth: parseInt(rowWidth) * 0.6
|
|
346
|
-
},
|
|
357
|
+
}), {
|
|
358
|
+
resizable: false
|
|
359
|
+
}), cell("id", 0.8, "ID"), cell("wbs", 0.8, "WBS Code / Activity ID"), cell("name", 1.8, "Task"), cell("plannedStart", 0.6, "Planned Start", {
|
|
347
360
|
title: "Planned Start"
|
|
348
|
-
}, "
|
|
349
|
-
className: styles.ganttTable_HeaderSeparator,
|
|
350
|
-
style: {
|
|
351
|
-
height: headerHeight * 0.5,
|
|
352
|
-
marginTop: headerHeight * 0.25
|
|
353
|
-
}
|
|
354
|
-
}), React__default.createElement("div", {
|
|
355
|
-
className: styles.ganttTable_HeaderItem,
|
|
356
|
-
style: {
|
|
357
|
-
minWidth: parseInt(rowWidth) * 0.6
|
|
358
|
-
},
|
|
361
|
+
}), cell("plannedEnd", 0.6, "Planned End", {
|
|
359
362
|
title: "Planned End"
|
|
360
|
-
}
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
title: "Planned Start"
|
|
366
|
-
}, "Actual Start"), scheduleType === "lookAhead" && React__default.createElement("div", {
|
|
367
|
-
className: styles.ganttTable_HeaderSeparator,
|
|
368
|
-
style: {
|
|
369
|
-
height: headerHeight * 0.5,
|
|
370
|
-
marginTop: headerHeight * 0.25
|
|
371
|
-
}
|
|
372
|
-
}), scheduleType === "lookAhead" && React__default.createElement("div", {
|
|
373
|
-
className: styles.ganttTable_HeaderItem,
|
|
374
|
-
style: {
|
|
375
|
-
minWidth: parseInt(rowWidth) * 0.6
|
|
376
|
-
},
|
|
377
|
-
title: "Planned End"
|
|
378
|
-
}, "Actual End"), scheduleType === "main" && React__default.createElement(React__default.Fragment, null, React__default.createElement("div", {
|
|
379
|
-
className: styles.ganttTable_HeaderSeparator,
|
|
380
|
-
style: {
|
|
381
|
-
height: headerHeight * 0.5,
|
|
382
|
-
marginTop: headerHeight * 0.25
|
|
383
|
-
}
|
|
384
|
-
}), React__default.createElement("div", {
|
|
385
|
-
className: styles.ganttTable_HeaderItem,
|
|
386
|
-
style: {
|
|
387
|
-
minWidth: parseInt(rowWidth) * 0.6,
|
|
388
|
-
maxWidth: parseInt(rowWidth) * 0.6
|
|
389
|
-
},
|
|
363
|
+
}), scheduleType === "lookAhead" && React__default.createElement(React__default.Fragment, null, cell("actualStart", 0.6, "Actual Start", {
|
|
364
|
+
title: "Actual Start"
|
|
365
|
+
}), cell("actualEnd", 0.6, "Actual End", {
|
|
366
|
+
title: "Actual End"
|
|
367
|
+
})), scheduleType === "main" && React__default.createElement(React__default.Fragment, null, cell("percentComplete", 0.6, "% Complete", {
|
|
390
368
|
title: "% Complete"
|
|
391
|
-
}, "
|
|
392
|
-
className: styles.ganttTable_HeaderSeparator,
|
|
393
|
-
style: {
|
|
394
|
-
height: headerHeight * 0.5,
|
|
395
|
-
marginTop: headerHeight * 0.25
|
|
396
|
-
}
|
|
397
|
-
}), React__default.createElement("div", {
|
|
398
|
-
className: styles.ganttTable_HeaderItem,
|
|
399
|
-
style: {
|
|
400
|
-
minWidth: parseInt(rowWidth) * 0.6,
|
|
401
|
-
maxWidth: parseInt(rowWidth) * 0.6
|
|
402
|
-
},
|
|
369
|
+
}), cell("plannedDuration", 0.6, "Planned Duration", {
|
|
403
370
|
title: "Planned Duration"
|
|
404
|
-
}, "
|
|
405
|
-
className: styles.ganttTable_HeaderSeparator,
|
|
406
|
-
style: {
|
|
407
|
-
height: headerHeight * 0.5,
|
|
408
|
-
marginTop: headerHeight * 0.25
|
|
409
|
-
}
|
|
410
|
-
}), React__default.createElement("div", {
|
|
411
|
-
className: styles.ganttTable_HeaderItem,
|
|
412
|
-
style: {
|
|
413
|
-
minWidth: parseInt(rowWidth) * 0.7,
|
|
414
|
-
maxWidth: parseInt(rowWidth) * 0.7
|
|
415
|
-
},
|
|
371
|
+
}), cell("remainingDuration", 0.7, "Remaining Duration", {
|
|
416
372
|
title: "Remaining Duration"
|
|
417
|
-
}, "
|
|
418
|
-
className: styles.ganttTable_HeaderSeparator,
|
|
419
|
-
style: {
|
|
420
|
-
height: headerHeight * 0.5,
|
|
421
|
-
marginTop: headerHeight * 0.25
|
|
422
|
-
}
|
|
423
|
-
}), React__default.createElement("div", {
|
|
424
|
-
className: styles.ganttTable_HeaderItem,
|
|
425
|
-
style: {
|
|
426
|
-
minWidth: parseInt(rowWidth) * 0.6,
|
|
427
|
-
maxWidth: parseInt(rowWidth) * 0.6
|
|
428
|
-
},
|
|
373
|
+
}), cell("actualDuration", 0.6, "Actual Duration", {
|
|
429
374
|
title: "Actual Duration"
|
|
430
|
-
}, "
|
|
431
|
-
className: styles.ganttTable_HeaderSeparator,
|
|
432
|
-
style: {
|
|
433
|
-
height: headerHeight * 0.5,
|
|
434
|
-
marginTop: headerHeight * 0.25
|
|
435
|
-
}
|
|
436
|
-
}), React__default.createElement("div", {
|
|
437
|
-
className: styles.ganttTable_HeaderItem,
|
|
438
|
-
style: {
|
|
439
|
-
minWidth: parseInt(rowWidth) * 0.8,
|
|
440
|
-
maxWidth: parseInt(rowWidth) * 0.8
|
|
441
|
-
},
|
|
375
|
+
}), cell("durationType", 0.8, "Duration Type", {
|
|
442
376
|
title: "Duration Type"
|
|
443
|
-
}
|
|
377
|
+
}))));
|
|
444
378
|
};
|
|
445
379
|
|
|
446
380
|
var styles$1 = {"taskListWrapper":"_3ZbQT","taskListTableRow":"_34SS0","taskListLookAheadRow":"_GzvG4","taskListMilestoneRow":"_3Ykml","taskListCell":"_3lLk3","taskListNameWrapper":"_nI1Xw","taskListExpander":"_2QjE6","taskListExpanderPlaceholder":"_1fnLB","taskListEmptyExpander":"_2TfEi","taskListText":"_2ZvXU"};
|
|
@@ -484,7 +418,15 @@ var TaskListTableDefault = function TaskListTableDefault(_ref) {
|
|
|
484
418
|
taskLabelRenderer = _ref$taskLabelRendere === void 0 ? function (t) {
|
|
485
419
|
return " " + t.name;
|
|
486
420
|
} : _ref$taskLabelRendere,
|
|
487
|
-
virtualItems = _ref.virtualItems
|
|
421
|
+
virtualItems = _ref.virtualItems,
|
|
422
|
+
columnWidths = _ref.columnWidths;
|
|
423
|
+
|
|
424
|
+
var widthOf = function widthOf(colId, factor) {
|
|
425
|
+
var _columnWidths$colId;
|
|
426
|
+
|
|
427
|
+
return (_columnWidths$colId = columnWidths === null || columnWidths === void 0 ? void 0 : columnWidths[colId]) != null ? _columnWidths$colId : parseInt(rowWidth) * factor;
|
|
428
|
+
};
|
|
429
|
+
|
|
488
430
|
var toLocaleDateString = React.useMemo(function () {
|
|
489
431
|
return toLocaleDateStringFactory(locale);
|
|
490
432
|
}, [locale]);
|
|
@@ -556,8 +498,8 @@ var TaskListTableDefault = function TaskListTableDefault(_ref) {
|
|
|
556
498
|
}, onTaskSelect && React__default.createElement("div", {
|
|
557
499
|
className: styles$1.taskListCell,
|
|
558
500
|
style: {
|
|
559
|
-
minWidth:
|
|
560
|
-
maxWidth:
|
|
501
|
+
minWidth: widthOf("select", 0.3),
|
|
502
|
+
maxWidth: widthOf("select", 0.3)
|
|
561
503
|
}
|
|
562
504
|
}, React__default.createElement("div", {
|
|
563
505
|
className: styles$1.taskListText,
|
|
@@ -579,8 +521,8 @@ var TaskListTableDefault = function TaskListTableDefault(_ref) {
|
|
|
579
521
|
}))), React__default.createElement("div", {
|
|
580
522
|
className: styles$1.taskListCell,
|
|
581
523
|
style: {
|
|
582
|
-
minWidth:
|
|
583
|
-
maxWidth:
|
|
524
|
+
minWidth: widthOf("id", 0.8),
|
|
525
|
+
maxWidth: widthOf("id", 0.8)
|
|
584
526
|
},
|
|
585
527
|
title: t.id
|
|
586
528
|
}, React__default.createElement("div", {
|
|
@@ -606,15 +548,15 @@ var TaskListTableDefault = function TaskListTableDefault(_ref) {
|
|
|
606
548
|
}, "\u2714") : ""))), React__default.createElement("div", {
|
|
607
549
|
className: styles$1.taskListCell,
|
|
608
550
|
style: {
|
|
609
|
-
minWidth:
|
|
610
|
-
maxWidth:
|
|
551
|
+
minWidth: widthOf("wbs", 0.8),
|
|
552
|
+
maxWidth: widthOf("wbs", 0.8)
|
|
611
553
|
},
|
|
612
554
|
title: t.optionalId ? t.optionalId : ""
|
|
613
555
|
}, t.optionalId), React__default.createElement("div", {
|
|
614
556
|
className: styles$1.taskListCell,
|
|
615
557
|
style: {
|
|
616
|
-
minWidth:
|
|
617
|
-
maxWidth:
|
|
558
|
+
minWidth: widthOf("name", 1.8),
|
|
559
|
+
maxWidth: widthOf("name", 1.8)
|
|
618
560
|
},
|
|
619
561
|
title: t.name
|
|
620
562
|
}, React__default.createElement("div", {
|
|
@@ -622,32 +564,32 @@ var TaskListTableDefault = function TaskListTableDefault(_ref) {
|
|
|
622
564
|
}, taskLabelRenderer(t))), React__default.createElement("div", {
|
|
623
565
|
className: styles$1.taskListCell,
|
|
624
566
|
style: {
|
|
625
|
-
minWidth:
|
|
626
|
-
maxWidth:
|
|
567
|
+
minWidth: widthOf("plannedStart", 0.6),
|
|
568
|
+
maxWidth: widthOf("plannedStart", 0.6)
|
|
627
569
|
}
|
|
628
570
|
}, React__default.createElement("div", {
|
|
629
571
|
className: styles$1.taskListText
|
|
630
572
|
}, "\xA0", toLocaleDateString(t.start, dateTimeOptions))), React__default.createElement("div", {
|
|
631
573
|
className: styles$1.taskListCell,
|
|
632
574
|
style: {
|
|
633
|
-
minWidth:
|
|
634
|
-
maxWidth:
|
|
575
|
+
minWidth: widthOf("plannedEnd", 0.6),
|
|
576
|
+
maxWidth: widthOf("plannedEnd", 0.6)
|
|
635
577
|
}
|
|
636
578
|
}, React__default.createElement("div", {
|
|
637
579
|
className: styles$1.taskListText
|
|
638
580
|
}, "\xA0", toLocaleDateString(t.end, dateTimeOptions))), scheduleType === "lookAhead" && React__default.createElement("div", {
|
|
639
581
|
className: styles$1.taskListCell,
|
|
640
582
|
style: {
|
|
641
|
-
minWidth:
|
|
642
|
-
maxWidth:
|
|
583
|
+
minWidth: widthOf("actualStart", 0.6),
|
|
584
|
+
maxWidth: widthOf("actualStart", 0.6)
|
|
643
585
|
}
|
|
644
586
|
}, React__default.createElement("div", {
|
|
645
587
|
className: styles$1.taskListText
|
|
646
588
|
}, "\xA0", toLocaleDateString(t.actualStart, dateTimeOptions))), scheduleType === "lookAhead" && React__default.createElement("div", {
|
|
647
589
|
className: styles$1.taskListCell,
|
|
648
590
|
style: {
|
|
649
|
-
minWidth:
|
|
650
|
-
maxWidth:
|
|
591
|
+
minWidth: widthOf("actualEnd", 0.6),
|
|
592
|
+
maxWidth: widthOf("actualEnd", 0.6)
|
|
651
593
|
}
|
|
652
594
|
}, React__default.createElement("div", {
|
|
653
595
|
className: styles$1.taskListText
|
|
@@ -667,40 +609,40 @@ var TaskListTableDefault = function TaskListTableDefault(_ref) {
|
|
|
667
609
|
return React__default.createElement(React__default.Fragment, null, React__default.createElement("div", {
|
|
668
610
|
className: styles$1.taskListCell,
|
|
669
611
|
style: {
|
|
670
|
-
minWidth:
|
|
671
|
-
maxWidth:
|
|
612
|
+
minWidth: widthOf("percentComplete", 0.6),
|
|
613
|
+
maxWidth: widthOf("percentComplete", 0.6)
|
|
672
614
|
}
|
|
673
615
|
}, React__default.createElement("div", {
|
|
674
616
|
className: styles$1.taskListText
|
|
675
617
|
}, "\xA0", percentComplete != null ? percentComplete + "%" : "")), React__default.createElement("div", {
|
|
676
618
|
className: styles$1.taskListCell,
|
|
677
619
|
style: {
|
|
678
|
-
minWidth:
|
|
679
|
-
maxWidth:
|
|
620
|
+
minWidth: widthOf("plannedDuration", 0.6),
|
|
621
|
+
maxWidth: widthOf("plannedDuration", 0.6)
|
|
680
622
|
}
|
|
681
623
|
}, React__default.createElement("div", {
|
|
682
624
|
className: styles$1.taskListText
|
|
683
625
|
}, "\xA0", plannedDuration != null ? plannedDuration : "")), React__default.createElement("div", {
|
|
684
626
|
className: styles$1.taskListCell,
|
|
685
627
|
style: {
|
|
686
|
-
minWidth:
|
|
687
|
-
maxWidth:
|
|
628
|
+
minWidth: widthOf("remainingDuration", 0.7),
|
|
629
|
+
maxWidth: widthOf("remainingDuration", 0.7)
|
|
688
630
|
}
|
|
689
631
|
}, React__default.createElement("div", {
|
|
690
632
|
className: styles$1.taskListText
|
|
691
633
|
}, "\xA0", remainingDuration != null ? remainingDuration : "")), React__default.createElement("div", {
|
|
692
634
|
className: styles$1.taskListCell,
|
|
693
635
|
style: {
|
|
694
|
-
minWidth:
|
|
695
|
-
maxWidth:
|
|
636
|
+
minWidth: widthOf("actualDuration", 0.6),
|
|
637
|
+
maxWidth: widthOf("actualDuration", 0.6)
|
|
696
638
|
}
|
|
697
639
|
}, React__default.createElement("div", {
|
|
698
640
|
className: styles$1.taskListText
|
|
699
641
|
}, "\xA0", actualDuration != null ? actualDuration : "")), React__default.createElement("div", {
|
|
700
642
|
className: styles$1.taskListCell,
|
|
701
643
|
style: {
|
|
702
|
-
minWidth:
|
|
703
|
-
maxWidth:
|
|
644
|
+
minWidth: widthOf("durationType", 0.8),
|
|
645
|
+
maxWidth: widthOf("durationType", 0.8)
|
|
704
646
|
}
|
|
705
647
|
}, React__default.createElement("div", {
|
|
706
648
|
className: styles$1.taskListText
|
|
@@ -877,6 +819,73 @@ var VerticalScroll = function VerticalScroll(_ref) {
|
|
|
877
819
|
}));
|
|
878
820
|
};
|
|
879
821
|
|
|
822
|
+
function getTaskListColumns(scheduleType, hasCheckbox) {
|
|
823
|
+
var columns = [];
|
|
824
|
+
if (hasCheckbox) columns.push({
|
|
825
|
+
id: "select",
|
|
826
|
+
factor: 0.3
|
|
827
|
+
});
|
|
828
|
+
columns.push({
|
|
829
|
+
id: "id",
|
|
830
|
+
factor: 0.8
|
|
831
|
+
}, {
|
|
832
|
+
id: "wbs",
|
|
833
|
+
factor: 0.8
|
|
834
|
+
}, {
|
|
835
|
+
id: "name",
|
|
836
|
+
factor: 1.8
|
|
837
|
+
}, {
|
|
838
|
+
id: "plannedStart",
|
|
839
|
+
factor: 0.6
|
|
840
|
+
}, {
|
|
841
|
+
id: "plannedEnd",
|
|
842
|
+
factor: 0.6
|
|
843
|
+
});
|
|
844
|
+
|
|
845
|
+
if (scheduleType === "lookAhead") {
|
|
846
|
+
columns.push({
|
|
847
|
+
id: "actualStart",
|
|
848
|
+
factor: 0.6
|
|
849
|
+
}, {
|
|
850
|
+
id: "actualEnd",
|
|
851
|
+
factor: 0.6
|
|
852
|
+
});
|
|
853
|
+
}
|
|
854
|
+
|
|
855
|
+
if (scheduleType === "main") {
|
|
856
|
+
columns.push({
|
|
857
|
+
id: "percentComplete",
|
|
858
|
+
factor: 0.6
|
|
859
|
+
}, {
|
|
860
|
+
id: "plannedDuration",
|
|
861
|
+
factor: 0.6
|
|
862
|
+
}, {
|
|
863
|
+
id: "remainingDuration",
|
|
864
|
+
factor: 0.7
|
|
865
|
+
}, {
|
|
866
|
+
id: "actualDuration",
|
|
867
|
+
factor: 0.6
|
|
868
|
+
}, {
|
|
869
|
+
id: "durationType",
|
|
870
|
+
factor: 0.8
|
|
871
|
+
});
|
|
872
|
+
}
|
|
873
|
+
|
|
874
|
+
return columns;
|
|
875
|
+
}
|
|
876
|
+
var MIN_COLUMN_WIDTH = 40;
|
|
877
|
+
function buildDefaultColumnWidths(scheduleType, hasCheckbox, rowWidth) {
|
|
878
|
+
var base = parseInt(rowWidth) || 0;
|
|
879
|
+
var widths = {};
|
|
880
|
+
|
|
881
|
+
for (var _iterator = _createForOfIteratorHelperLoose(getTaskListColumns(scheduleType, hasCheckbox)), _step; !(_step = _iterator()).done;) {
|
|
882
|
+
var col = _step.value;
|
|
883
|
+
widths[col.id] = base * col.factor;
|
|
884
|
+
}
|
|
885
|
+
|
|
886
|
+
return widths;
|
|
887
|
+
}
|
|
888
|
+
|
|
880
889
|
var styles$4 = {"hideScrollbar":"_38emS"};
|
|
881
890
|
|
|
882
891
|
var TaskList = function TaskList(_ref) {
|
|
@@ -901,6 +910,8 @@ var TaskList = function TaskList(_ref) {
|
|
|
901
910
|
taskLabelRenderer = _ref.taskLabelRenderer,
|
|
902
911
|
onMultiSelect = _ref.onMultiSelect,
|
|
903
912
|
containerWidth = _ref.containerWidth,
|
|
913
|
+
containerMaxWidth = _ref.containerMaxWidth,
|
|
914
|
+
onContentWidthChange = _ref.onContentWidthChange,
|
|
904
915
|
innerScrollRef = _ref.innerScrollRef,
|
|
905
916
|
externalHorizontalContainerRef = _ref.horizontalContainerRef;
|
|
906
917
|
var internalHorizontalContainerRef = React.useRef(null);
|
|
@@ -926,9 +937,55 @@ var TaskList = function TaskList(_ref) {
|
|
|
926
937
|
selectedTasks = _useState[0],
|
|
927
938
|
setSelectedTasks = _useState[1];
|
|
928
939
|
|
|
929
|
-
var
|
|
930
|
-
|
|
931
|
-
|
|
940
|
+
var hasCheckbox = !!onMultiSelect;
|
|
941
|
+
|
|
942
|
+
var _useState2 = React.useState(function () {
|
|
943
|
+
return buildDefaultColumnWidths(scheduleType, hasCheckbox, rowWidth);
|
|
944
|
+
}),
|
|
945
|
+
columnWidths = _useState2[0],
|
|
946
|
+
setColumnWidths = _useState2[1];
|
|
947
|
+
|
|
948
|
+
React.useEffect(function () {
|
|
949
|
+
var defaults = buildDefaultColumnWidths(scheduleType, hasCheckbox, rowWidth);
|
|
950
|
+
setColumnWidths(function (prev) {
|
|
951
|
+
var ids = Object.keys(defaults);
|
|
952
|
+
var sameSet = ids.length === Object.keys(prev).length && ids.every(function (id) {
|
|
953
|
+
return id in prev;
|
|
954
|
+
});
|
|
955
|
+
if (sameSet) return prev;
|
|
956
|
+
var next = {};
|
|
957
|
+
|
|
958
|
+
for (var _i = 0, _ids = ids; _i < _ids.length; _i++) {
|
|
959
|
+
var _prev$id;
|
|
960
|
+
|
|
961
|
+
var id = _ids[_i];
|
|
962
|
+
next[id] = (_prev$id = prev[id]) != null ? _prev$id : defaults[id];
|
|
963
|
+
}
|
|
964
|
+
|
|
965
|
+
return next;
|
|
966
|
+
});
|
|
967
|
+
}, [scheduleType, hasCheckbox, rowWidth]);
|
|
968
|
+
|
|
969
|
+
var handleColumnResize = function handleColumnResize(colId, width) {
|
|
970
|
+
setColumnWidths(function (prev) {
|
|
971
|
+
var _extends2;
|
|
972
|
+
|
|
973
|
+
return _extends({}, prev, (_extends2 = {}, _extends2[colId] = Math.max(MIN_COLUMN_WIDTH, width), _extends2));
|
|
974
|
+
});
|
|
975
|
+
};
|
|
976
|
+
|
|
977
|
+
var contentWidth = React.useMemo(function () {
|
|
978
|
+
return Object.values(columnWidths).reduce(function (sum, w) {
|
|
979
|
+
return sum + w;
|
|
980
|
+
}, 0);
|
|
981
|
+
}, [columnWidths]);
|
|
982
|
+
React.useEffect(function () {
|
|
983
|
+
onContentWidthChange === null || onContentWidthChange === void 0 ? void 0 : onContentWidthChange(contentWidth);
|
|
984
|
+
}, [contentWidth, onContentWidthChange]);
|
|
985
|
+
|
|
986
|
+
var _useState3 = React.useState([]),
|
|
987
|
+
pendingTaskSelect = _useState3[0],
|
|
988
|
+
setPendingTaskSelect = _useState3[1];
|
|
932
989
|
|
|
933
990
|
var prevSelectedTasksRef = React.useRef([]);
|
|
934
991
|
var expandedTasks = React.useRef([]);
|
|
@@ -1076,7 +1133,9 @@ var TaskList = function TaskList(_ref) {
|
|
|
1076
1133
|
rowWidth: rowWidth,
|
|
1077
1134
|
scheduleType: scheduleType,
|
|
1078
1135
|
allSelected: tasks.length > 0 && selectedTasks.length === tasks.length,
|
|
1079
|
-
onSelectAll: onMultiSelect ? handleSelectAll : undefined
|
|
1136
|
+
onSelectAll: onMultiSelect ? handleSelectAll : undefined,
|
|
1137
|
+
columnWidths: columnWidths,
|
|
1138
|
+
onColumnResize: handleColumnResize
|
|
1080
1139
|
};
|
|
1081
1140
|
var selectedTaskId = selectedTask ? selectedTask.id : "";
|
|
1082
1141
|
var tableProps = {
|
|
@@ -1094,15 +1153,19 @@ var TaskList = function TaskList(_ref) {
|
|
|
1094
1153
|
selectedTasks: onMultiSelect ? selectedTasks : undefined,
|
|
1095
1154
|
onTaskSelect: onMultiSelect ? handleTaskSelect : undefined,
|
|
1096
1155
|
taskLabelRenderer: taskLabelRenderer,
|
|
1097
|
-
virtualItems: virtualizer.getVirtualItems()
|
|
1156
|
+
virtualItems: virtualizer.getVirtualItems(),
|
|
1157
|
+
columnWidths: columnWidths
|
|
1098
1158
|
};
|
|
1099
1159
|
return React__default.createElement("div", {
|
|
1100
1160
|
ref: taskListRef,
|
|
1101
|
-
style: containerWidth != null ? {
|
|
1102
|
-
width: containerWidth
|
|
1161
|
+
style: containerWidth != null || containerMaxWidth != null ? _extends({}, containerWidth != null ? {
|
|
1162
|
+
width: containerWidth
|
|
1163
|
+
} : {}, containerMaxWidth != null ? {
|
|
1164
|
+
maxWidth: containerMaxWidth
|
|
1165
|
+
} : {}, {
|
|
1103
1166
|
overflow: "hidden",
|
|
1104
1167
|
flexShrink: 0
|
|
1105
|
-
} : {}
|
|
1168
|
+
}) : {}
|
|
1106
1169
|
}, React__default.createElement("div", {
|
|
1107
1170
|
ref: innerScrollRef,
|
|
1108
1171
|
className: styles$4.hideScrollbar,
|
|
@@ -1259,7 +1322,7 @@ function getQuarterNumber(date, quarterStart) {
|
|
|
1259
1322
|
return Math.floor(offset / 3) + 1;
|
|
1260
1323
|
}
|
|
1261
1324
|
|
|
1262
|
-
var styles$5 = {"gridRow":"_2dZTy","gridRowLookAhead":"_2RRca","gridRowLine":"_3rUKi","gridTick":"_RuwuK","gridTickDashed":"_Zh9jh","darkerGridRow":"_2M-tt"};
|
|
1325
|
+
var styles$5 = {"gridRow":"_2dZTy","gridRowLookAhead":"_2RRca","gridRowLine":"_3rUKi","gridTick":"_RuwuK","gridTickWeekStart":"_1q0EV","gridTickDashed":"_Zh9jh","darkerGridRow":"_2M-tt"};
|
|
1263
1326
|
|
|
1264
1327
|
var GridBody = function GridBody(_ref) {
|
|
1265
1328
|
var _projectCalendar$week;
|
|
@@ -1303,7 +1366,8 @@ var GridBody = function GridBody(_ref) {
|
|
|
1303
1366
|
if (next && date <= now && next > now) return true;
|
|
1304
1367
|
|
|
1305
1368
|
if (!next && date <= now) {
|
|
1306
|
-
var
|
|
1369
|
+
var prev = dates[i - 1];
|
|
1370
|
+
var step = prev ? date.getTime() - prev.getTime() : 86400000;
|
|
1307
1371
|
var end = addToDate(date, step, "millisecond");
|
|
1308
1372
|
return end > now;
|
|
1309
1373
|
}
|
|
@@ -1364,11 +1428,14 @@ var GridBody = function GridBody(_ref) {
|
|
|
1364
1428
|
}
|
|
1365
1429
|
|
|
1366
1430
|
var isDayView = viewMode === exports.ViewMode.Day;
|
|
1431
|
+
var isWeekView = viewMode === exports.ViewMode.Week;
|
|
1367
1432
|
var tickLines = dates.map(function (date, i) {
|
|
1368
1433
|
var tickClass = styles$5.gridTick;
|
|
1369
1434
|
|
|
1370
1435
|
if (isDayView) {
|
|
1371
|
-
tickClass = date.getDay() === weekStartDay ? styles$5.
|
|
1436
|
+
tickClass = date.getDay() === weekStartDay ? styles$5.gridTickWeekStart : styles$5.gridTickDashed;
|
|
1437
|
+
} else if (isWeekView) {
|
|
1438
|
+
tickClass = styles$5.gridTickWeekStart;
|
|
1372
1439
|
}
|
|
1373
1440
|
|
|
1374
1441
|
return React__default.createElement("line", {
|
|
@@ -1536,7 +1603,13 @@ var Calendar = function Calendar(_ref) {
|
|
|
1536
1603
|
columnWidth = _ref.columnWidth,
|
|
1537
1604
|
fontFamily = _ref.fontFamily,
|
|
1538
1605
|
fontSize = _ref.fontSize,
|
|
1539
|
-
projectCalendar = _ref.projectCalendar
|
|
1606
|
+
projectCalendar = _ref.projectCalendar,
|
|
1607
|
+
weekendColor = _ref.weekendColor;
|
|
1608
|
+
|
|
1609
|
+
var isDayOff = function isDayOff(date) {
|
|
1610
|
+
if (projectCalendar) return isOffDay(date, projectCalendar);
|
|
1611
|
+
return false;
|
|
1612
|
+
};
|
|
1540
1613
|
|
|
1541
1614
|
var shortMonth = function shortMonth(date) {
|
|
1542
1615
|
return date.toLocaleString(locale, {
|
|
@@ -1785,6 +1858,18 @@ var Calendar = function Calendar(_ref) {
|
|
|
1785
1858
|
|
|
1786
1859
|
for (var i = 0; i < dates.length; i++) {
|
|
1787
1860
|
var date = dates[i];
|
|
1861
|
+
|
|
1862
|
+
if (isDayOff(date)) {
|
|
1863
|
+
offDayRects.push(React__default.createElement("rect", {
|
|
1864
|
+
key: "offday-header-" + i,
|
|
1865
|
+
x: columnWidth * i,
|
|
1866
|
+
y: topDefaultHeight,
|
|
1867
|
+
width: columnWidth,
|
|
1868
|
+
height: headerHeight - topDefaultHeight,
|
|
1869
|
+
fill: weekendColor
|
|
1870
|
+
}));
|
|
1871
|
+
}
|
|
1872
|
+
|
|
1788
1873
|
var isWeekStart = date.getDay() === weekStartDay;
|
|
1789
1874
|
tickLines.push(React__default.createElement("line", {
|
|
1790
1875
|
key: "tick-day-" + i,
|
|
@@ -3188,6 +3273,11 @@ var TaskGanttContent = function TaskGanttContent(_ref) {
|
|
|
3188
3273
|
setIsMoving = _useState3[1];
|
|
3189
3274
|
|
|
3190
3275
|
React.useEffect(function () {
|
|
3276
|
+
if (dates.length < 2) {
|
|
3277
|
+
setXStep(timeStep * columnWidth / 86400000);
|
|
3278
|
+
return;
|
|
3279
|
+
}
|
|
3280
|
+
|
|
3191
3281
|
var dateDelta = dates[1].getTime() - dates[0].getTime() - dates[1].getTimezoneOffset() * 60 * 1000 + dates[0].getTimezoneOffset() * 60 * 1000;
|
|
3192
3282
|
var newXStep = timeStep * columnWidth / dateDelta;
|
|
3193
3283
|
setXStep(newXStep);
|
|
@@ -3815,8 +3905,10 @@ var HorizontalScroll = function HorizontalScroll(_ref) {
|
|
|
3815
3905
|
}));
|
|
3816
3906
|
};
|
|
3817
3907
|
|
|
3908
|
+
var GANTT_MIN_WIDTH_RATIO = 0.4;
|
|
3909
|
+
var TABLE_GANTT_DIVIDER_WIDTH = 20;
|
|
3818
3910
|
var Gantt = function Gantt(_ref) {
|
|
3819
|
-
var
|
|
3911
|
+
var _ref2;
|
|
3820
3912
|
|
|
3821
3913
|
var tasks = _ref.tasks,
|
|
3822
3914
|
_ref$leafTasks = _ref.leafTasks,
|
|
@@ -3924,8 +4016,8 @@ var Gantt = function Gantt(_ref) {
|
|
|
3924
4016
|
var tableHScrollRef = React.useRef(null);
|
|
3925
4017
|
|
|
3926
4018
|
var _useState2 = React.useState(0),
|
|
3927
|
-
|
|
3928
|
-
|
|
4019
|
+
tableContentWidth = _useState2[0],
|
|
4020
|
+
setTableContentWidth = _useState2[1];
|
|
3929
4021
|
|
|
3930
4022
|
var _useState3 = React.useState(function () {
|
|
3931
4023
|
var _ganttDateRange = ganttDateRange(tasks, viewMode, preStepsCount),
|
|
@@ -3955,22 +4047,21 @@ var Gantt = function Gantt(_ref) {
|
|
|
3955
4047
|
taskListWidth = _useState5[0],
|
|
3956
4048
|
setTaskListWidth = _useState5[1];
|
|
3957
4049
|
|
|
3958
|
-
React.
|
|
3959
|
-
|
|
3960
|
-
|
|
3961
|
-
|
|
3962
|
-
|
|
3963
|
-
|
|
3964
|
-
}, [taskListWidth, listCellWidth]);
|
|
4050
|
+
var _useState6 = React.useState(0),
|
|
4051
|
+
wrapperWidth = _useState6[0],
|
|
4052
|
+
setWrapperWidth = _useState6[1];
|
|
4053
|
+
|
|
4054
|
+
var maxTableWidth = wrapperWidth > 0 ? Math.max(100, wrapperWidth * (1 - GANTT_MIN_WIDTH_RATIO) - TABLE_GANTT_DIVIDER_WIDTH) : Infinity;
|
|
4055
|
+
var tableCap = Math.min(maxTableWidth, tableContentWidth > 0 ? tableContentWidth : Infinity);
|
|
3965
4056
|
|
|
3966
4057
|
var handleTableResizeMouseDown = function handleTableResizeMouseDown(e) {
|
|
3967
|
-
var _taskListRef$current$, _taskListRef$current
|
|
4058
|
+
var _taskListRef$current$, _taskListRef$current;
|
|
3968
4059
|
|
|
3969
4060
|
isDraggingTable.current = true;
|
|
3970
4061
|
userResizedRef.current = true;
|
|
3971
4062
|
dragStartX.current = e.clientX;
|
|
3972
4063
|
dragStartWidth.current = tableContainerWidth != null ? tableContainerWidth : (_taskListRef$current$ = (_taskListRef$current = taskListRef.current) === null || _taskListRef$current === void 0 ? void 0 : _taskListRef$current.offsetWidth) != null ? _taskListRef$current$ : 0;
|
|
3973
|
-
dragMaxWidth.current =
|
|
4064
|
+
dragMaxWidth.current = tableCap;
|
|
3974
4065
|
e.preventDefault();
|
|
3975
4066
|
};
|
|
3976
4067
|
|
|
@@ -3994,25 +4085,25 @@ var Gantt = function Gantt(_ref) {
|
|
|
3994
4085
|
};
|
|
3995
4086
|
}, []);
|
|
3996
4087
|
|
|
3997
|
-
var
|
|
3998
|
-
svgContainerWidth =
|
|
3999
|
-
setSvgContainerWidth =
|
|
4088
|
+
var _useState7 = React.useState(0),
|
|
4089
|
+
svgContainerWidth = _useState7[0],
|
|
4090
|
+
setSvgContainerWidth = _useState7[1];
|
|
4000
4091
|
|
|
4001
|
-
var
|
|
4002
|
-
svgContainerHeight =
|
|
4003
|
-
setSvgContainerHeight =
|
|
4092
|
+
var _useState8 = React.useState(ganttHeight),
|
|
4093
|
+
svgContainerHeight = _useState8[0],
|
|
4094
|
+
setSvgContainerHeight = _useState8[1];
|
|
4004
4095
|
|
|
4005
|
-
var
|
|
4006
|
-
barTasks =
|
|
4007
|
-
setBarTasks =
|
|
4096
|
+
var _useState9 = React.useState([]),
|
|
4097
|
+
barTasks = _useState9[0],
|
|
4098
|
+
setBarTasks = _useState9[1];
|
|
4008
4099
|
|
|
4009
4100
|
var debounceRef = React.useRef(null);
|
|
4010
4101
|
|
|
4011
|
-
var
|
|
4102
|
+
var _useState10 = React.useState({
|
|
4012
4103
|
action: ""
|
|
4013
4104
|
}),
|
|
4014
|
-
ganttEvent =
|
|
4015
|
-
setGanttEvent =
|
|
4105
|
+
ganttEvent = _useState10[0],
|
|
4106
|
+
setGanttEvent = _useState10[1];
|
|
4016
4107
|
|
|
4017
4108
|
var handleBarTasksUpdate = function handleBarTasksUpdate(task) {
|
|
4018
4109
|
setBarTasks(function (prev) {
|
|
@@ -4026,17 +4117,17 @@ var Gantt = function Gantt(_ref) {
|
|
|
4026
4117
|
return rowHeight * barFill / 100;
|
|
4027
4118
|
}, [rowHeight, barFill]);
|
|
4028
4119
|
|
|
4029
|
-
var
|
|
4030
|
-
selectedTask =
|
|
4031
|
-
setSelectedTask =
|
|
4032
|
-
|
|
4033
|
-
var _useState11 = React.useState(null),
|
|
4034
|
-
failedTask = _useState11[0],
|
|
4035
|
-
setFailedTask = _useState11[1];
|
|
4120
|
+
var _useState11 = React.useState(),
|
|
4121
|
+
selectedTask = _useState11[0],
|
|
4122
|
+
setSelectedTask = _useState11[1];
|
|
4036
4123
|
|
|
4037
4124
|
var _useState12 = React.useState(null),
|
|
4038
|
-
|
|
4039
|
-
|
|
4125
|
+
failedTask = _useState12[0],
|
|
4126
|
+
setFailedTask = _useState12[1];
|
|
4127
|
+
|
|
4128
|
+
var _useState13 = React.useState(null),
|
|
4129
|
+
computedColumnWidth = _useState13[0],
|
|
4130
|
+
setComputedColumnWidth = _useState13[1];
|
|
4040
4131
|
|
|
4041
4132
|
var computedForViewModeRef = React.useRef(null);
|
|
4042
4133
|
React.useEffect(function () {
|
|
@@ -4083,7 +4174,7 @@ var Gantt = function Gantt(_ref) {
|
|
|
4083
4174
|
setComputedColumnWidth(next);
|
|
4084
4175
|
}
|
|
4085
4176
|
}, [viewMode, svgContainerWidth, columnWidthProp, computedColumnWidth]);
|
|
4086
|
-
var columnWidth = (
|
|
4177
|
+
var columnWidth = (_ref2 = columnWidthProp != null ? columnWidthProp : computedColumnWidth) != null ? _ref2 : 60;
|
|
4087
4178
|
var effectiveColumnWidth = React.useMemo(function () {
|
|
4088
4179
|
if (svgContainerWidth <= 0 || dateSetup.dates.length <= 0) return columnWidth;
|
|
4089
4180
|
|
|
@@ -4104,29 +4195,29 @@ var Gantt = function Gantt(_ref) {
|
|
|
4104
4195
|
return barTasks.length * rowHeight;
|
|
4105
4196
|
}, [barTasks.length, rowHeight]);
|
|
4106
4197
|
|
|
4107
|
-
var
|
|
4108
|
-
scrollY =
|
|
4109
|
-
setScrollY =
|
|
4198
|
+
var _useState14 = React.useState(0),
|
|
4199
|
+
scrollY = _useState14[0],
|
|
4200
|
+
setScrollY = _useState14[1];
|
|
4110
4201
|
|
|
4111
|
-
var
|
|
4112
|
-
scrollX =
|
|
4113
|
-
setScrollX =
|
|
4202
|
+
var _useState15 = React.useState(-1),
|
|
4203
|
+
scrollX = _useState15[0],
|
|
4204
|
+
setScrollX = _useState15[1];
|
|
4114
4205
|
|
|
4115
|
-
var
|
|
4116
|
-
ignoreScrollEvent =
|
|
4117
|
-
setIgnoreScrollEvent =
|
|
4118
|
-
|
|
4119
|
-
var _useState16 = React.useState(0),
|
|
4120
|
-
lastTouchX = _useState16[0],
|
|
4121
|
-
setLastTouchX = _useState16[1];
|
|
4206
|
+
var _useState16 = React.useState(false),
|
|
4207
|
+
ignoreScrollEvent = _useState16[0],
|
|
4208
|
+
setIgnoreScrollEvent = _useState16[1];
|
|
4122
4209
|
|
|
4123
4210
|
var _useState17 = React.useState(0),
|
|
4124
|
-
|
|
4125
|
-
|
|
4211
|
+
lastTouchX = _useState17[0],
|
|
4212
|
+
setLastTouchX = _useState17[1];
|
|
4213
|
+
|
|
4214
|
+
var _useState18 = React.useState(0),
|
|
4215
|
+
lastTouchY = _useState18[0],
|
|
4216
|
+
setLastTouchY = _useState18[1];
|
|
4126
4217
|
|
|
4127
|
-
var
|
|
4128
|
-
isProcessing =
|
|
4129
|
-
setIsProcessing =
|
|
4218
|
+
var _useState19 = React.useState(false),
|
|
4219
|
+
isProcessing = _useState19[0],
|
|
4220
|
+
setIsProcessing = _useState19[1];
|
|
4130
4221
|
|
|
4131
4222
|
var buffer = rowHeight * 10;
|
|
4132
4223
|
var visibleStartY = scrollY - buffer;
|
|
@@ -4247,11 +4338,48 @@ var Gantt = function Gantt(_ref) {
|
|
|
4247
4338
|
setTaskListWidth(taskListRef.current.offsetWidth);
|
|
4248
4339
|
}
|
|
4249
4340
|
}, [taskListRef, listCellWidth]);
|
|
4341
|
+
React.useEffect(function () {
|
|
4342
|
+
if (!listCellWidth || !taskListRef.current) return;
|
|
4343
|
+
if (typeof ResizeObserver === "undefined") return;
|
|
4344
|
+
|
|
4345
|
+
var measure = function measure() {
|
|
4346
|
+
if (taskListRef.current) {
|
|
4347
|
+
setTaskListWidth(taskListRef.current.offsetWidth);
|
|
4348
|
+
}
|
|
4349
|
+
};
|
|
4350
|
+
|
|
4351
|
+
var observer = new ResizeObserver(measure);
|
|
4352
|
+
observer.observe(taskListRef.current);
|
|
4353
|
+
measure();
|
|
4354
|
+
return function () {
|
|
4355
|
+
return observer.disconnect();
|
|
4356
|
+
};
|
|
4357
|
+
}, [listCellWidth, scheduleType]);
|
|
4250
4358
|
React.useEffect(function () {
|
|
4251
4359
|
if (wrapperRef.current) {
|
|
4252
4360
|
setSvgContainerWidth(wrapperRef.current.offsetWidth - taskListWidth - 20);
|
|
4253
4361
|
}
|
|
4254
|
-
}, [wrapperRef, taskListWidth]);
|
|
4362
|
+
}, [wrapperRef, taskListWidth, wrapperWidth]);
|
|
4363
|
+
React.useEffect(function () {
|
|
4364
|
+
var node = wrapperRef.current;
|
|
4365
|
+
if (!node) return;
|
|
4366
|
+
|
|
4367
|
+
if (typeof ResizeObserver === "undefined") {
|
|
4368
|
+
setWrapperWidth(node.offsetWidth);
|
|
4369
|
+
return;
|
|
4370
|
+
}
|
|
4371
|
+
|
|
4372
|
+
var measure = function measure() {
|
|
4373
|
+
return setWrapperWidth(node.offsetWidth);
|
|
4374
|
+
};
|
|
4375
|
+
|
|
4376
|
+
var observer = new ResizeObserver(measure);
|
|
4377
|
+
observer.observe(node);
|
|
4378
|
+
measure();
|
|
4379
|
+
return function () {
|
|
4380
|
+
return observer.disconnect();
|
|
4381
|
+
};
|
|
4382
|
+
}, []);
|
|
4255
4383
|
React.useEffect(function () {
|
|
4256
4384
|
if (ganttHeight) {
|
|
4257
4385
|
setSvgContainerHeight(ganttHeight + headerHeight);
|
|
@@ -4260,7 +4388,7 @@ var Gantt = function Gantt(_ref) {
|
|
|
4260
4388
|
}
|
|
4261
4389
|
}, [ganttHeight, tasks, headerHeight, rowHeight]);
|
|
4262
4390
|
React.useEffect(function () {
|
|
4263
|
-
var _wrapperRef$
|
|
4391
|
+
var _wrapperRef$current, _wrapperRef$current2, _wrapperRef$current3, _wrapperRef$current4;
|
|
4264
4392
|
|
|
4265
4393
|
var handleWheel = function handleWheel(event) {
|
|
4266
4394
|
if (event.shiftKey || event.deltaX) {
|
|
@@ -4334,25 +4462,25 @@ var Gantt = function Gantt(_ref) {
|
|
|
4334
4462
|
setIgnoreScrollEvent(true);
|
|
4335
4463
|
};
|
|
4336
4464
|
|
|
4337
|
-
(_wrapperRef$
|
|
4465
|
+
(_wrapperRef$current = wrapperRef.current) === null || _wrapperRef$current === void 0 ? void 0 : _wrapperRef$current.addEventListener("wheel", handleWheel, {
|
|
4338
4466
|
passive: false
|
|
4339
4467
|
});
|
|
4340
|
-
(_wrapperRef$
|
|
4468
|
+
(_wrapperRef$current2 = wrapperRef.current) === null || _wrapperRef$current2 === void 0 ? void 0 : _wrapperRef$current2.addEventListener("touchmove", handleTouch, {
|
|
4341
4469
|
passive: false
|
|
4342
4470
|
});
|
|
4343
|
-
(_wrapperRef$
|
|
4471
|
+
(_wrapperRef$current3 = wrapperRef.current) === null || _wrapperRef$current3 === void 0 ? void 0 : _wrapperRef$current3.addEventListener("touchstart", handleLogTouch, {
|
|
4344
4472
|
passive: false
|
|
4345
4473
|
});
|
|
4346
|
-
(_wrapperRef$
|
|
4474
|
+
(_wrapperRef$current4 = wrapperRef.current) === null || _wrapperRef$current4 === void 0 ? void 0 : _wrapperRef$current4.addEventListener("touchend", handleLogTouch, {
|
|
4347
4475
|
passive: false
|
|
4348
4476
|
});
|
|
4349
4477
|
return function () {
|
|
4350
|
-
var _wrapperRef$
|
|
4478
|
+
var _wrapperRef$current5, _wrapperRef$current6, _wrapperRef$current7, _wrapperRef$current8;
|
|
4351
4479
|
|
|
4352
|
-
(_wrapperRef$
|
|
4353
|
-
(_wrapperRef$
|
|
4480
|
+
(_wrapperRef$current5 = wrapperRef.current) === null || _wrapperRef$current5 === void 0 ? void 0 : _wrapperRef$current5.removeEventListener("wheel", handleWheel);
|
|
4481
|
+
(_wrapperRef$current6 = wrapperRef.current) === null || _wrapperRef$current6 === void 0 ? void 0 : _wrapperRef$current6.removeEventListener("touchmove", handleTouch);
|
|
4482
|
+
(_wrapperRef$current7 = wrapperRef.current) === null || _wrapperRef$current7 === void 0 ? void 0 : _wrapperRef$current7.removeEventListener("touchend", handleLogTouch);
|
|
4354
4483
|
(_wrapperRef$current8 = wrapperRef.current) === null || _wrapperRef$current8 === void 0 ? void 0 : _wrapperRef$current8.removeEventListener("touchend", handleLogTouch);
|
|
4355
|
-
(_wrapperRef$current9 = wrapperRef.current) === null || _wrapperRef$current9 === void 0 ? void 0 : _wrapperRef$current9.removeEventListener("touchend", handleLogTouch);
|
|
4356
4484
|
};
|
|
4357
4485
|
}, [wrapperRef, scrollY, scrollX, ganttHeight, svgWidth, rtl, ganttFullHeight]);
|
|
4358
4486
|
|
|
@@ -4478,7 +4606,8 @@ var Gantt = function Gantt(_ref) {
|
|
|
4478
4606
|
fontFamily: fontFamily,
|
|
4479
4607
|
fontSize: fontSize,
|
|
4480
4608
|
rtl: rtl,
|
|
4481
|
-
projectCalendar: projectCalendar
|
|
4609
|
+
projectCalendar: projectCalendar,
|
|
4610
|
+
weekendColor: weekendColor
|
|
4482
4611
|
};
|
|
4483
4612
|
var barProps = {
|
|
4484
4613
|
tasks: barTasks,
|
|
@@ -4537,7 +4666,9 @@ var Gantt = function Gantt(_ref) {
|
|
|
4537
4666
|
TaskListTable: TaskListTable,
|
|
4538
4667
|
taskLabelRenderer: taskLabelRenderer,
|
|
4539
4668
|
onMultiSelect: onMultiSelect,
|
|
4540
|
-
containerWidth: tableContainerWidth != null ? tableContainerWidth : undefined,
|
|
4669
|
+
containerWidth: userResizedRef.current && tableContainerWidth != null ? Math.min(tableContainerWidth, tableCap) : undefined,
|
|
4670
|
+
containerMaxWidth: tableCap === Infinity ? undefined : tableCap,
|
|
4671
|
+
onContentWidthChange: setTableContentWidth,
|
|
4541
4672
|
innerScrollRef: tableInnerScrollRef,
|
|
4542
4673
|
horizontalContainerRef: tableHorizontalContainerRef
|
|
4543
4674
|
};
|
|
@@ -4641,7 +4772,7 @@ var Gantt = function Gantt(_ref) {
|
|
|
4641
4772
|
}
|
|
4642
4773
|
}, React__default.createElement("div", {
|
|
4643
4774
|
style: {
|
|
4644
|
-
width:
|
|
4775
|
+
width: tableContentWidth
|
|
4645
4776
|
}
|
|
4646
4777
|
})), React__default.createElement("div", {
|
|
4647
4778
|
style: {
|