gantt-task-react-powern 0.4.69 → 0.4.71
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/components/grid/grid-body.d.ts +2 -0
- package/dist/components/task-list/task-list-header.d.ts +3 -0
- package/dist/components/task-list/task-list-table.d.ts +3 -0
- package/dist/components/task-list/task-list.d.ts +7 -0
- package/dist/index.css +27 -1
- package/dist/index.js +230 -37
- package/dist/index.js.map +1 -1
- package/dist/index.modern.js +230 -37
- package/dist/index.modern.js.map +1 -1
- package/dist/types/public-types.d.ts +8 -0
- package/package.json +1 -1
|
@@ -2,11 +2,13 @@ import React from "react";
|
|
|
2
2
|
import { Task } from "../../types/public-types";
|
|
3
3
|
export declare type GridBodyProps = {
|
|
4
4
|
tasks: Task[];
|
|
5
|
+
scheduleType: string;
|
|
5
6
|
dates: Date[];
|
|
6
7
|
svgWidth: number;
|
|
7
8
|
rowHeight: number;
|
|
8
9
|
columnWidth: number;
|
|
9
10
|
todayColor: string;
|
|
11
|
+
weekendColor: string;
|
|
10
12
|
rtl: boolean;
|
|
11
13
|
};
|
|
12
14
|
export declare const GridBody: React.FC<GridBodyProps>;
|
|
@@ -7,9 +7,12 @@ export declare const TaskListTableDefault: React.FC<{
|
|
|
7
7
|
fontSize: string;
|
|
8
8
|
locale: string;
|
|
9
9
|
tasks: Task[];
|
|
10
|
+
scheduleType: string;
|
|
10
11
|
leafTasks: Task[];
|
|
11
12
|
selectedTaskId: string;
|
|
12
13
|
setSelectedTask: (taskId: string) => void;
|
|
13
14
|
onExpanderClick: (task: Task) => void;
|
|
15
|
+
selectedTasks?: string[];
|
|
16
|
+
onTaskSelect?: (taskId: string, selected: boolean) => void;
|
|
14
17
|
taskLabelRenderer?: (Task: Task) => React.ReactNode;
|
|
15
18
|
}>;
|
|
@@ -12,6 +12,7 @@ export declare type TaskListProps = {
|
|
|
12
12
|
scrollY: number;
|
|
13
13
|
locale: string;
|
|
14
14
|
tasks: Task[];
|
|
15
|
+
scheduleType: string;
|
|
15
16
|
leafTasks: Task[];
|
|
16
17
|
taskListRef: React.RefObject<HTMLDivElement>;
|
|
17
18
|
horizontalContainerClass?: string;
|
|
@@ -24,6 +25,9 @@ export declare type TaskListProps = {
|
|
|
24
25
|
rowWidth: string;
|
|
25
26
|
fontFamily: string;
|
|
26
27
|
fontSize: string;
|
|
28
|
+
scheduleType: string;
|
|
29
|
+
allSelected?: boolean;
|
|
30
|
+
onSelectAll?: (selected: boolean) => void;
|
|
27
31
|
}>;
|
|
28
32
|
TaskListTable: React.FC<{
|
|
29
33
|
rowHeight: number;
|
|
@@ -32,10 +36,13 @@ export declare type TaskListProps = {
|
|
|
32
36
|
fontSize: string;
|
|
33
37
|
locale: string;
|
|
34
38
|
tasks: Task[];
|
|
39
|
+
scheduleType: string;
|
|
35
40
|
leafTasks: Task[];
|
|
36
41
|
selectedTaskId: string;
|
|
37
42
|
setSelectedTask: (taskId: string) => void;
|
|
38
43
|
onExpanderClick: (task: Task) => void;
|
|
44
|
+
selectedTasks?: string[];
|
|
45
|
+
onTaskSelect?: (taskId: string, selected: boolean) => void;
|
|
39
46
|
taskLabelRenderer?: (Task: Task) => React.ReactNode;
|
|
40
47
|
}>;
|
|
41
48
|
} & EventOption;
|
package/dist/index.css
CHANGED
|
@@ -37,6 +37,23 @@
|
|
|
37
37
|
text-overflow: ellipsis;
|
|
38
38
|
white-space: nowrap;
|
|
39
39
|
overflow: hidden;
|
|
40
|
+
background-color: #fff;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
._GzvG4 {
|
|
44
|
+
display: table-row;
|
|
45
|
+
text-overflow: ellipsis;
|
|
46
|
+
white-space: nowrap;
|
|
47
|
+
overflow: hidden;
|
|
48
|
+
background-color: #fff;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
._3Ykml {
|
|
52
|
+
display: table-row;
|
|
53
|
+
text-overflow: ellipsis;
|
|
54
|
+
white-space: nowrap;
|
|
55
|
+
overflow: hidden;
|
|
56
|
+
background-color: #e6e4e4;
|
|
40
57
|
}
|
|
41
58
|
|
|
42
59
|
._34SS0:nth-of-type(even) {
|
|
@@ -49,6 +66,7 @@
|
|
|
49
66
|
white-space: nowrap;
|
|
50
67
|
overflow: hidden;
|
|
51
68
|
text-overflow: ellipsis;
|
|
69
|
+
border-bottom: #ebeff2 1px solid;
|
|
52
70
|
}
|
|
53
71
|
._nI1Xw {
|
|
54
72
|
display: flex;
|
|
@@ -152,6 +170,14 @@
|
|
|
152
170
|
fill: #f5f5f5;
|
|
153
171
|
}
|
|
154
172
|
|
|
173
|
+
._2RRca {
|
|
174
|
+
fill: #fff;
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
._2RRca:nth-child(even) {
|
|
178
|
+
fill: #fff;
|
|
179
|
+
}
|
|
180
|
+
|
|
155
181
|
._3rUKi {
|
|
156
182
|
stroke: #ebeff2;
|
|
157
183
|
}
|
|
@@ -160,7 +186,7 @@
|
|
|
160
186
|
stroke: #e6e4e4;
|
|
161
187
|
}
|
|
162
188
|
._2M-tt {
|
|
163
|
-
fill: #e6e4e4 !important;
|
|
189
|
+
fill: #e6e4e4 !important;
|
|
164
190
|
}
|
|
165
191
|
|
|
166
192
|
._9w8d5 {
|
package/dist/index.js
CHANGED
|
@@ -275,9 +275,6 @@ var getWeekNumberISO8601 = function getWeekNumberISO8601(date) {
|
|
|
275
275
|
return weekNumber;
|
|
276
276
|
}
|
|
277
277
|
};
|
|
278
|
-
var getDaysInMonth = function getDaysInMonth(month, year) {
|
|
279
|
-
return new Date(year, month + 1, 0).getDate();
|
|
280
|
-
};
|
|
281
278
|
|
|
282
279
|
var styles = {"ganttTable":"_3_ygE","ganttTable_Header":"_1nBOt","ganttTable_HeaderSeparator":"_2eZzQ","ganttTable_HeaderItem":"_WuQ0f"};
|
|
283
280
|
|
|
@@ -285,7 +282,10 @@ var TaskListHeaderDefault = function TaskListHeaderDefault(_ref) {
|
|
|
285
282
|
var headerHeight = _ref.headerHeight,
|
|
286
283
|
fontFamily = _ref.fontFamily,
|
|
287
284
|
fontSize = _ref.fontSize,
|
|
288
|
-
rowWidth = _ref.rowWidth
|
|
285
|
+
rowWidth = _ref.rowWidth,
|
|
286
|
+
scheduleType = _ref.scheduleType,
|
|
287
|
+
allSelected = _ref.allSelected,
|
|
288
|
+
onSelectAll = _ref.onSelectAll;
|
|
289
289
|
return React__default.createElement("div", {
|
|
290
290
|
className: styles.ganttTable,
|
|
291
291
|
style: {
|
|
@@ -297,7 +297,19 @@ var TaskListHeaderDefault = function TaskListHeaderDefault(_ref) {
|
|
|
297
297
|
style: {
|
|
298
298
|
height: headerHeight - 2
|
|
299
299
|
}
|
|
300
|
-
}, React__default.createElement("div", {
|
|
300
|
+
}, onSelectAll && React__default.createElement("div", null, React__default.createElement("div", {
|
|
301
|
+
className: styles.ganttTable_HeaderItem,
|
|
302
|
+
style: {
|
|
303
|
+
minWidth: parseInt(rowWidth) * 0.3,
|
|
304
|
+
maxWidth: parseInt(rowWidth) * 0.3
|
|
305
|
+
}
|
|
306
|
+
}, React__default.createElement("input", {
|
|
307
|
+
type: "checkbox",
|
|
308
|
+
checked: allSelected,
|
|
309
|
+
onChange: function onChange(e) {
|
|
310
|
+
return onSelectAll(e.target.checked);
|
|
311
|
+
}
|
|
312
|
+
}))), React__default.createElement("div", {
|
|
301
313
|
className: styles.ganttTable_HeaderItem,
|
|
302
314
|
style: {
|
|
303
315
|
minWidth: parseInt(rowWidth) * 0.8,
|
|
@@ -336,7 +348,7 @@ var TaskListHeaderDefault = function TaskListHeaderDefault(_ref) {
|
|
|
336
348
|
}), React__default.createElement("div", {
|
|
337
349
|
className: styles.ganttTable_HeaderItem,
|
|
338
350
|
style: {
|
|
339
|
-
minWidth: parseInt(rowWidth) * 0.
|
|
351
|
+
minWidth: parseInt(rowWidth) * 0.6
|
|
340
352
|
},
|
|
341
353
|
title: "Planned Start"
|
|
342
354
|
}, "Planned Start"), React__default.createElement("div", {
|
|
@@ -348,13 +360,31 @@ var TaskListHeaderDefault = function TaskListHeaderDefault(_ref) {
|
|
|
348
360
|
}), React__default.createElement("div", {
|
|
349
361
|
className: styles.ganttTable_HeaderItem,
|
|
350
362
|
style: {
|
|
351
|
-
minWidth: parseInt(rowWidth) * 0.
|
|
363
|
+
minWidth: parseInt(rowWidth) * 0.6
|
|
364
|
+
},
|
|
365
|
+
title: "Planned End"
|
|
366
|
+
}, "Planned End"), scheduleType === "lookAhead" && React__default.createElement("div", {
|
|
367
|
+
className: styles.ganttTable_HeaderItem,
|
|
368
|
+
style: {
|
|
369
|
+
minWidth: parseInt(rowWidth) * 0.6
|
|
370
|
+
},
|
|
371
|
+
title: "Planned Start"
|
|
372
|
+
}, "Actual Start"), scheduleType === "lookAhead" && React__default.createElement("div", {
|
|
373
|
+
className: styles.ganttTable_HeaderSeparator,
|
|
374
|
+
style: {
|
|
375
|
+
height: headerHeight * 0.5,
|
|
376
|
+
marginTop: headerHeight * 0.25
|
|
377
|
+
}
|
|
378
|
+
}), scheduleType === "lookAhead" && React__default.createElement("div", {
|
|
379
|
+
className: styles.ganttTable_HeaderItem,
|
|
380
|
+
style: {
|
|
381
|
+
minWidth: parseInt(rowWidth) * 0.6
|
|
352
382
|
},
|
|
353
383
|
title: "Planned End"
|
|
354
|
-
}, "
|
|
384
|
+
}, "Actual End")));
|
|
355
385
|
};
|
|
356
386
|
|
|
357
|
-
var styles$1 = {"taskListWrapper":"_3ZbQT","taskListTableRow":"_34SS0","taskListCell":"_3lLk3","taskListNameWrapper":"_nI1Xw","taskListExpander":"_2QjE6","taskListExpanderPlaceholder":"_1fnLB","taskListEmptyExpander":"_2TfEi","taskListText":"_2ZvXU"};
|
|
387
|
+
var styles$1 = {"taskListWrapper":"_3ZbQT","taskListTableRow":"_34SS0","taskListLookAheadRow":"_GzvG4","taskListMilestoneRow":"_3Ykml","taskListCell":"_3lLk3","taskListNameWrapper":"_nI1Xw","taskListExpander":"_2QjE6","taskListExpanderPlaceholder":"_1fnLB","taskListEmptyExpander":"_2TfEi","taskListText":"_2ZvXU"};
|
|
358
388
|
|
|
359
389
|
var localeDateStringCache = {};
|
|
360
390
|
|
|
@@ -382,11 +412,15 @@ var TaskListTableDefault = function TaskListTableDefault(_ref) {
|
|
|
382
412
|
var rowHeight = _ref.rowHeight,
|
|
383
413
|
rowWidth = _ref.rowWidth,
|
|
384
414
|
tasks = _ref.tasks,
|
|
415
|
+
scheduleType = _ref.scheduleType,
|
|
385
416
|
leafTasks = _ref.leafTasks,
|
|
386
417
|
fontFamily = _ref.fontFamily,
|
|
387
418
|
fontSize = _ref.fontSize,
|
|
388
419
|
locale = _ref.locale,
|
|
389
420
|
onExpanderClick = _ref.onExpanderClick,
|
|
421
|
+
_ref$selectedTasks = _ref.selectedTasks,
|
|
422
|
+
selectedTasks = _ref$selectedTasks === void 0 ? [] : _ref$selectedTasks,
|
|
423
|
+
onTaskSelect = _ref.onTaskSelect,
|
|
390
424
|
_ref$taskLabelRendere = _ref.taskLabelRenderer,
|
|
391
425
|
taskLabelRenderer = _ref$taskLabelRendere === void 0 ? function (t) {
|
|
392
426
|
return " " + t.name;
|
|
@@ -416,13 +450,36 @@ var TaskListTableDefault = function TaskListTableDefault(_ref) {
|
|
|
416
450
|
}
|
|
417
451
|
}
|
|
418
452
|
|
|
453
|
+
var isSelected = selectedTasks.includes(t.id);
|
|
419
454
|
return React__default.createElement("div", {
|
|
420
|
-
className: styles$1.taskListTableRow,
|
|
455
|
+
className: t.type === "milestone" ? styles$1.taskListMilestoneRow : scheduleType === "lookAhead" ? styles$1.taskListLookAheadRow : styles$1.taskListTableRow,
|
|
421
456
|
style: {
|
|
422
457
|
height: rowHeight
|
|
423
458
|
},
|
|
424
459
|
key: t.id + "row"
|
|
460
|
+
}, onTaskSelect && React__default.createElement("div", {
|
|
461
|
+
className: styles$1.taskListCell,
|
|
462
|
+
style: {
|
|
463
|
+
minWidth: parseInt(rowWidth) * 0.3,
|
|
464
|
+
maxWidth: parseInt(rowWidth) * 0.3
|
|
465
|
+
}
|
|
425
466
|
}, React__default.createElement("div", {
|
|
467
|
+
className: styles$1.taskListText,
|
|
468
|
+
style: {
|
|
469
|
+
display: "flex",
|
|
470
|
+
justifyContent: "center",
|
|
471
|
+
alignItems: "center",
|
|
472
|
+
height: "100%",
|
|
473
|
+
paddingLeft: "0",
|
|
474
|
+
paddingRight: "0"
|
|
475
|
+
}
|
|
476
|
+
}, React__default.createElement("input", {
|
|
477
|
+
type: "checkbox",
|
|
478
|
+
checked: isSelected,
|
|
479
|
+
onChange: function onChange(e) {
|
|
480
|
+
return onTaskSelect(t.id, e.target.checked);
|
|
481
|
+
}
|
|
482
|
+
}))), React__default.createElement("div", {
|
|
426
483
|
className: styles$1.taskListCell,
|
|
427
484
|
style: {
|
|
428
485
|
minWidth: parseInt(rowWidth) * 0.8,
|
|
@@ -481,7 +538,23 @@ var TaskListTableDefault = function TaskListTableDefault(_ref) {
|
|
|
481
538
|
}
|
|
482
539
|
}, React__default.createElement("div", {
|
|
483
540
|
className: styles$1.taskListText
|
|
484
|
-
}, "\xA0", toLocaleDateString(t.end, dateTimeOptions)))
|
|
541
|
+
}, "\xA0", toLocaleDateString(t.end, dateTimeOptions))), scheduleType === "lookAhead" && React__default.createElement("div", {
|
|
542
|
+
className: styles$1.taskListCell,
|
|
543
|
+
style: {
|
|
544
|
+
minWidth: parseInt(rowWidth) * 0.6,
|
|
545
|
+
maxWidth: parseInt(rowWidth) * 0.6
|
|
546
|
+
}
|
|
547
|
+
}, React__default.createElement("div", {
|
|
548
|
+
className: styles$1.taskListText
|
|
549
|
+
}, "\xA0", toLocaleDateString(t.actualStart, dateTimeOptions))), scheduleType === "lookAhead" && React__default.createElement("div", {
|
|
550
|
+
className: styles$1.taskListCell,
|
|
551
|
+
style: {
|
|
552
|
+
minWidth: parseInt(rowWidth) * 0.6,
|
|
553
|
+
maxWidth: parseInt(rowWidth) * 0.6
|
|
554
|
+
}
|
|
555
|
+
}, React__default.createElement("div", {
|
|
556
|
+
className: styles$1.taskListText
|
|
557
|
+
}, "\xA0", toLocaleDateString(t.actualEnd, dateTimeOptions))));
|
|
485
558
|
}));
|
|
486
559
|
};
|
|
487
560
|
|
|
@@ -648,6 +721,7 @@ var TaskList = function TaskList(_ref) {
|
|
|
648
721
|
rowHeight = _ref.rowHeight,
|
|
649
722
|
scrollY = _ref.scrollY,
|
|
650
723
|
tasks = _ref.tasks,
|
|
724
|
+
scheduleType = _ref.scheduleType,
|
|
651
725
|
leafTasks = _ref.leafTasks,
|
|
652
726
|
selectedTask = _ref.selectedTask,
|
|
653
727
|
setSelectedTask = _ref.setSelectedTask,
|
|
@@ -658,18 +732,62 @@ var TaskList = function TaskList(_ref) {
|
|
|
658
732
|
horizontalContainerClass = _ref.horizontalContainerClass,
|
|
659
733
|
TaskListHeader = _ref.TaskListHeader,
|
|
660
734
|
TaskListTable = _ref.TaskListTable,
|
|
661
|
-
taskLabelRenderer = _ref.taskLabelRenderer
|
|
735
|
+
taskLabelRenderer = _ref.taskLabelRenderer,
|
|
736
|
+
onMultiSelect = _ref.onMultiSelect;
|
|
662
737
|
var horizontalContainerRef = React.useRef(null);
|
|
738
|
+
|
|
739
|
+
var _useState = React.useState([]),
|
|
740
|
+
selectedTasks = _useState[0],
|
|
741
|
+
setSelectedTasks = _useState[1];
|
|
742
|
+
|
|
743
|
+
var prevSelectedTasksRef = React.useRef([]);
|
|
663
744
|
React.useEffect(function () {
|
|
664
745
|
if (horizontalContainerRef.current) {
|
|
665
746
|
horizontalContainerRef.current.scrollTop = scrollY;
|
|
666
747
|
}
|
|
667
748
|
}, [scrollY]);
|
|
749
|
+
React.useEffect(function () {
|
|
750
|
+
if (onMultiSelect && JSON.stringify(prevSelectedTasksRef.current) !== JSON.stringify(selectedTasks)) {
|
|
751
|
+
var selectedTaskObjects = tasks.filter(function (task) {
|
|
752
|
+
return selectedTasks.includes(task.id);
|
|
753
|
+
});
|
|
754
|
+
prevSelectedTasksRef.current = [].concat(selectedTasks);
|
|
755
|
+
onMultiSelect(selectedTaskObjects);
|
|
756
|
+
}
|
|
757
|
+
}, [selectedTasks, tasks, onMultiSelect]);
|
|
758
|
+
|
|
759
|
+
var handleTaskSelect = function handleTaskSelect(taskId, selected) {
|
|
760
|
+
if (selected) {
|
|
761
|
+
setSelectedTasks(function (prev) {
|
|
762
|
+
return [].concat(prev, [taskId]);
|
|
763
|
+
});
|
|
764
|
+
} else {
|
|
765
|
+
setSelectedTasks(function (prev) {
|
|
766
|
+
return prev.filter(function (id) {
|
|
767
|
+
return id !== taskId;
|
|
768
|
+
});
|
|
769
|
+
});
|
|
770
|
+
}
|
|
771
|
+
};
|
|
772
|
+
|
|
773
|
+
var handleSelectAll = function handleSelectAll(selected) {
|
|
774
|
+
if (selected) {
|
|
775
|
+
setSelectedTasks(tasks.map(function (task) {
|
|
776
|
+
return task.id;
|
|
777
|
+
}));
|
|
778
|
+
} else {
|
|
779
|
+
setSelectedTasks([]);
|
|
780
|
+
}
|
|
781
|
+
};
|
|
782
|
+
|
|
668
783
|
var headerProps = {
|
|
669
784
|
headerHeight: headerHeight,
|
|
670
785
|
fontFamily: fontFamily,
|
|
671
786
|
fontSize: fontSize,
|
|
672
|
-
rowWidth: rowWidth
|
|
787
|
+
rowWidth: rowWidth,
|
|
788
|
+
scheduleType: scheduleType,
|
|
789
|
+
allSelected: tasks.length > 0 && selectedTasks.length === tasks.length,
|
|
790
|
+
onSelectAll: onMultiSelect ? handleSelectAll : undefined
|
|
673
791
|
};
|
|
674
792
|
var selectedTaskId = selectedTask ? selectedTask.id : "";
|
|
675
793
|
var tableProps = {
|
|
@@ -679,10 +797,13 @@ var TaskList = function TaskList(_ref) {
|
|
|
679
797
|
fontSize: fontSize,
|
|
680
798
|
tasks: tasks,
|
|
681
799
|
leafTasks: leafTasks,
|
|
800
|
+
scheduleType: scheduleType,
|
|
682
801
|
locale: locale,
|
|
683
802
|
selectedTaskId: selectedTaskId,
|
|
684
803
|
setSelectedTask: setSelectedTask,
|
|
685
804
|
onExpanderClick: onExpanderClick,
|
|
805
|
+
selectedTasks: onMultiSelect ? selectedTasks : undefined,
|
|
806
|
+
onTaskSelect: onMultiSelect ? handleTaskSelect : undefined,
|
|
686
807
|
taskLabelRenderer: taskLabelRenderer
|
|
687
808
|
};
|
|
688
809
|
return React__default.createElement("div", {
|
|
@@ -696,15 +817,17 @@ var TaskList = function TaskList(_ref) {
|
|
|
696
817
|
}, React__default.createElement(TaskListTable, Object.assign({}, tableProps))));
|
|
697
818
|
};
|
|
698
819
|
|
|
699
|
-
var styles$4 = {"gridRow":"_2dZTy","gridRowLine":"_3rUKi","gridTick":"_RuwuK","darkerGridRow":"_2M-tt"};
|
|
820
|
+
var styles$4 = {"gridRow":"_2dZTy","gridRowLookAhead":"_2RRca","gridRowLine":"_3rUKi","gridTick":"_RuwuK","darkerGridRow":"_2M-tt"};
|
|
700
821
|
|
|
701
822
|
var GridBody = function GridBody(_ref) {
|
|
702
823
|
var tasks = _ref.tasks,
|
|
824
|
+
scheduleType = _ref.scheduleType,
|
|
703
825
|
dates = _ref.dates,
|
|
704
826
|
rowHeight = _ref.rowHeight,
|
|
705
827
|
svgWidth = _ref.svgWidth,
|
|
706
828
|
columnWidth = _ref.columnWidth,
|
|
707
829
|
todayColor = _ref.todayColor,
|
|
830
|
+
weekendColor = _ref.weekendColor,
|
|
708
831
|
rtl = _ref.rtl;
|
|
709
832
|
var y = 0;
|
|
710
833
|
var gridRows = [];
|
|
@@ -726,7 +849,7 @@ var GridBody = function GridBody(_ref) {
|
|
|
726
849
|
y: y,
|
|
727
850
|
width: svgWidth,
|
|
728
851
|
height: rowHeight,
|
|
729
|
-
className: isDarkerRow ? styles$4.darkerGridRow : styles$4.gridRow
|
|
852
|
+
className: isDarkerRow ? styles$4.darkerGridRow : scheduleType === "lookAhead" ? styles$4.gridRowLookAhead : styles$4.gridRow
|
|
730
853
|
}));
|
|
731
854
|
rowLines.push(React__default.createElement("line", {
|
|
732
855
|
key: "RowLine" + task.id,
|
|
@@ -743,6 +866,7 @@ var GridBody = function GridBody(_ref) {
|
|
|
743
866
|
var tickX = 0;
|
|
744
867
|
var ticks = [];
|
|
745
868
|
var today = React__default.createElement("rect", null);
|
|
869
|
+
var weekend = [];
|
|
746
870
|
|
|
747
871
|
for (var i = 0; i < dates.length; i++) {
|
|
748
872
|
var date = dates[i];
|
|
@@ -765,6 +889,16 @@ var GridBody = function GridBody(_ref) {
|
|
|
765
889
|
});
|
|
766
890
|
}
|
|
767
891
|
|
|
892
|
+
if (date.getDay() === 6 || date.getDay() === 0) {
|
|
893
|
+
weekend.push(React__default.createElement("rect", {
|
|
894
|
+
x: tickX,
|
|
895
|
+
y: 0,
|
|
896
|
+
width: columnWidth,
|
|
897
|
+
height: y,
|
|
898
|
+
fill: weekendColor
|
|
899
|
+
}));
|
|
900
|
+
}
|
|
901
|
+
|
|
768
902
|
if (rtl && i + 1 !== dates.length && date.getTime() >= now.getTime() && dates[i + 1].getTime() < now.getTime()) {
|
|
769
903
|
today = React__default.createElement("rect", {
|
|
770
904
|
x: tickX + columnWidth,
|
|
@@ -786,7 +920,9 @@ var GridBody = function GridBody(_ref) {
|
|
|
786
920
|
className: "rowLines"
|
|
787
921
|
}, rowLines), React__default.createElement("g", {
|
|
788
922
|
className: "ticks"
|
|
789
|
-
}, ticks), React__default.createElement("g", {
|
|
923
|
+
}, ticks), scheduleType === "lookAhead" && React__default.createElement("g", {
|
|
924
|
+
className: "weekend"
|
|
925
|
+
}, weekend), React__default.createElement("g", {
|
|
790
926
|
className: "today"
|
|
791
927
|
}, today));
|
|
792
928
|
};
|
|
@@ -1031,7 +1167,21 @@ var Calendar = function Calendar(_ref) {
|
|
|
1031
1167
|
x1Line: columnWidth * (i + 1),
|
|
1032
1168
|
y1Line: 0,
|
|
1033
1169
|
y2Line: topDefaultHeight,
|
|
1034
|
-
xText: columnWidth * (i + 1)
|
|
1170
|
+
xText: topValues.length === 0 ? columnWidth * (i + 1) * 0.5 : columnWidth * (i + 1) - date.getDate() * columnWidth * 0.5,
|
|
1171
|
+
yText: topDefaultHeight * 0.9
|
|
1172
|
+
}));
|
|
1173
|
+
}
|
|
1174
|
+
|
|
1175
|
+
if (i + 1 === dates.length) {
|
|
1176
|
+
var _topValue = getLocaleMonth(date, locale) + " " + date.getFullYear();
|
|
1177
|
+
|
|
1178
|
+
topValues.push(React__default.createElement(TopPartOfCalendar, {
|
|
1179
|
+
key: _topValue + date.getFullYear(),
|
|
1180
|
+
value: _topValue,
|
|
1181
|
+
x1Line: columnWidth * (i + 1),
|
|
1182
|
+
y1Line: 0,
|
|
1183
|
+
y2Line: topDefaultHeight,
|
|
1184
|
+
xText: columnWidth * (i + 1) - date.getDate() * columnWidth * 0.5,
|
|
1035
1185
|
yText: topDefaultHeight * 0.9
|
|
1036
1186
|
}));
|
|
1037
1187
|
}
|
|
@@ -1817,7 +1967,7 @@ var Bar = function Bar(_ref) {
|
|
|
1817
1967
|
var handleHeight = task.height / 2 - 1;
|
|
1818
1968
|
|
|
1819
1969
|
if (type == "planned") {
|
|
1820
|
-
if (task.x1 && task.x2) return React__default.createElement("g", {
|
|
1970
|
+
if ((task === null || task === void 0 ? void 0 : task.x1) >= 0 && (task === null || task === void 0 ? void 0 : task.x2) >= 0) return React__default.createElement("g", {
|
|
1821
1971
|
className: styles$6.barWrapper,
|
|
1822
1972
|
tabIndex: 0
|
|
1823
1973
|
}, React__default.createElement(BarDisplay, {
|
|
@@ -1865,7 +2015,7 @@ var Bar = function Bar(_ref) {
|
|
|
1865
2015
|
className: styles$6.barWrapper,
|
|
1866
2016
|
tabIndex: 0
|
|
1867
2017
|
});
|
|
1868
|
-
} else if (task.actualx1 && task.actualx2) {
|
|
2018
|
+
} else if ((task === null || task === void 0 ? void 0 : task.actualx1) >= 0 && (task === null || task === void 0 ? void 0 : task.actualx2) >= 0) {
|
|
1869
2019
|
return React__default.createElement("g", {
|
|
1870
2020
|
className: styles$6.barWrapper,
|
|
1871
2021
|
tabIndex: 0
|
|
@@ -2052,11 +2202,11 @@ var TaskItem = function TaskItem(props) {
|
|
|
2052
2202
|
React.useEffect(function () {
|
|
2053
2203
|
switch (task.typeInternal) {
|
|
2054
2204
|
case "milestone":
|
|
2055
|
-
setTaskItem([React__default.createElement(Milestone, Object.assign({}, props))]);
|
|
2205
|
+
if (task.x1 >= 0 && task.actualx1 >= 0) setTaskItem([React__default.createElement(Milestone, Object.assign({}, props))]);else setTaskItem([]);
|
|
2056
2206
|
break;
|
|
2057
2207
|
|
|
2058
2208
|
case "project":
|
|
2059
|
-
setTaskItem([React__default.createElement(Project, Object.assign({}, props))]);
|
|
2209
|
+
if ((task === null || task === void 0 ? void 0 : task.x1) >= 0 && (task === null || task === void 0 ? void 0 : task.x2) >= 0 && task.x2 > task.x1 && (task === null || task === void 0 ? void 0 : task.actualx1) >= 0 && (task === null || task === void 0 ? void 0 : task.actualx2) >= 0 && task.actualx2 > task.actualx1) setTaskItem([React__default.createElement(Project, Object.assign({}, props))]);else setTaskItem([]);
|
|
2060
2210
|
break;
|
|
2061
2211
|
|
|
2062
2212
|
case "smalltask":
|
|
@@ -2067,13 +2217,13 @@ var TaskItem = function TaskItem(props) {
|
|
|
2067
2217
|
{
|
|
2068
2218
|
var _taskItem = [];
|
|
2069
2219
|
|
|
2070
|
-
if (task.x1 && task.x2) {
|
|
2220
|
+
if ((task === null || task === void 0 ? void 0 : task.x1) >= 0 && (task === null || task === void 0 ? void 0 : task.x2) >= 0) {
|
|
2071
2221
|
_taskItem.push(React__default.createElement(Bar, Object.assign({}, props, {
|
|
2072
2222
|
type: "planned"
|
|
2073
2223
|
})));
|
|
2074
2224
|
}
|
|
2075
2225
|
|
|
2076
|
-
if (task.actualx1 && task.actualx2) {
|
|
2226
|
+
if ((task === null || task === void 0 ? void 0 : task.actualx1) >= 0 && (task === null || task === void 0 ? void 0 : task.actualx2) >= 0) {
|
|
2077
2227
|
_taskItem.push(React__default.createElement(Bar, Object.assign({}, props, {
|
|
2078
2228
|
type: "actual"
|
|
2079
2229
|
})));
|
|
@@ -2384,7 +2534,7 @@ var TaskGanttContent = function TaskGanttContent(_ref) {
|
|
|
2384
2534
|
return task.barChildren.map(function (child) {
|
|
2385
2535
|
var _task$criticalPathArr, _task$criticalPathArr2;
|
|
2386
2536
|
|
|
2387
|
-
return React__default.createElement(Arrow, {
|
|
2537
|
+
if (task.x2 > task.x1 || task.actualx2 > task.actualx1) return React__default.createElement(Arrow, {
|
|
2388
2538
|
key: "Arrow from " + task.id + " to " + tasks[child.index].id,
|
|
2389
2539
|
taskFrom: task,
|
|
2390
2540
|
taskTo: tasks[child.index],
|
|
@@ -2395,6 +2545,11 @@ var TaskGanttContent = function TaskGanttContent(_ref) {
|
|
|
2395
2545
|
arrowColor: ((_task$criticalPathArr = task.criticalPathArrows) === null || _task$criticalPathArr === void 0 ? void 0 : (_task$criticalPathArr2 = _task$criticalPathArr.find(function (arrow) {
|
|
2396
2546
|
return arrow.taskId == tasks[child.index].id;
|
|
2397
2547
|
})) === null || _task$criticalPathArr2 === void 0 ? void 0 : _task$criticalPathArr2.arrowColor) || "#808080"
|
|
2548
|
+
});else return React__default.createElement("g", {
|
|
2549
|
+
key: _task.id,
|
|
2550
|
+
style: {
|
|
2551
|
+
height: taskHeight
|
|
2552
|
+
}
|
|
2398
2553
|
});
|
|
2399
2554
|
});
|
|
2400
2555
|
})), React__default.createElement("g", {
|
|
@@ -2516,6 +2671,12 @@ var Gantt = function Gantt(_ref) {
|
|
|
2516
2671
|
var tasks = _ref.tasks,
|
|
2517
2672
|
_ref$leafTasks = _ref.leafTasks,
|
|
2518
2673
|
leafTasks = _ref$leafTasks === void 0 ? [] : _ref$leafTasks,
|
|
2674
|
+
_ref$scheduleType = _ref.scheduleType,
|
|
2675
|
+
scheduleType = _ref$scheduleType === void 0 ? "main" : _ref$scheduleType,
|
|
2676
|
+
_ref$startDate = _ref.startDate,
|
|
2677
|
+
startDate = _ref$startDate === void 0 ? new Date() : _ref$startDate,
|
|
2678
|
+
_ref$endDate = _ref.endDate,
|
|
2679
|
+
endDate = _ref$endDate === void 0 ? new Date() : _ref$endDate,
|
|
2519
2680
|
_ref$headerHeight = _ref.headerHeight,
|
|
2520
2681
|
headerHeight = _ref$headerHeight === void 0 ? 50 : _ref$headerHeight,
|
|
2521
2682
|
_ref$columnWidth = _ref.columnWidth,
|
|
@@ -2572,6 +2733,8 @@ var Gantt = function Gantt(_ref) {
|
|
|
2572
2733
|
arrowIndent = _ref$arrowIndent === void 0 ? 20 : _ref$arrowIndent,
|
|
2573
2734
|
_ref$todayColor = _ref.todayColor,
|
|
2574
2735
|
todayColor = _ref$todayColor === void 0 ? "rgba(252, 248, 227, 0.5)" : _ref$todayColor,
|
|
2736
|
+
_ref$weekendColor = _ref.weekendColor,
|
|
2737
|
+
weekendColor = _ref$weekendColor === void 0 ? "#f5f5f5" : _ref$weekendColor,
|
|
2575
2738
|
viewDate = _ref.viewDate,
|
|
2576
2739
|
_ref$TooltipContent = _ref.TooltipContent,
|
|
2577
2740
|
TooltipContent = _ref$TooltipContent === void 0 ? StandardTooltipContent : _ref$TooltipContent,
|
|
@@ -2586,18 +2749,26 @@ var Gantt = function Gantt(_ref) {
|
|
|
2586
2749
|
onDelete = _ref.onDelete,
|
|
2587
2750
|
onSelect = _ref.onSelect,
|
|
2588
2751
|
onExpanderClick = _ref.onExpanderClick,
|
|
2752
|
+
onMultiSelect = _ref.onMultiSelect,
|
|
2589
2753
|
taskLabelRenderer = _ref.taskLabelRenderer;
|
|
2590
2754
|
var wrapperRef = React.useRef(null);
|
|
2591
2755
|
var taskListRef = React.useRef(null);
|
|
2592
2756
|
|
|
2593
2757
|
var _useState = React.useState(function () {
|
|
2594
2758
|
var _ganttDateRange = ganttDateRange(tasks, viewMode, preStepsCount),
|
|
2595
|
-
|
|
2596
|
-
|
|
2759
|
+
startDateRange = _ganttDateRange[0],
|
|
2760
|
+
endDateRange = _ganttDateRange[1];
|
|
2761
|
+
|
|
2762
|
+
if (scheduleType === "lookAhead") {
|
|
2763
|
+
return {
|
|
2764
|
+
viewMode: viewMode,
|
|
2765
|
+
dates: seedDates(startDate, endDate, viewMode)
|
|
2766
|
+
};
|
|
2767
|
+
}
|
|
2597
2768
|
|
|
2598
2769
|
return {
|
|
2599
2770
|
viewMode: viewMode,
|
|
2600
|
-
dates: seedDates(
|
|
2771
|
+
dates: seedDates(startDateRange, endDateRange, viewMode)
|
|
2601
2772
|
};
|
|
2602
2773
|
}),
|
|
2603
2774
|
dateSetup = _useState[0],
|
|
@@ -2656,6 +2827,14 @@ var Gantt = function Gantt(_ref) {
|
|
|
2656
2827
|
ignoreScrollEvent = _useState12[0],
|
|
2657
2828
|
setIgnoreScrollEvent = _useState12[1];
|
|
2658
2829
|
|
|
2830
|
+
React.useEffect(function () {
|
|
2831
|
+
if (scheduleType === "lookAhead" && startDate && endDate) {
|
|
2832
|
+
setDateSetup({
|
|
2833
|
+
viewMode: viewMode,
|
|
2834
|
+
dates: seedDates(startDate, endDate, viewMode)
|
|
2835
|
+
});
|
|
2836
|
+
}
|
|
2837
|
+
}, [startDate, endDate]);
|
|
2659
2838
|
React.useEffect(function () {
|
|
2660
2839
|
var filteredTasks;
|
|
2661
2840
|
|
|
@@ -2668,10 +2847,14 @@ var Gantt = function Gantt(_ref) {
|
|
|
2668
2847
|
filteredTasks = filteredTasks.sort(sortTasks);
|
|
2669
2848
|
|
|
2670
2849
|
var _ganttDateRange2 = ganttDateRange(filteredTasks, viewMode, preStepsCount),
|
|
2671
|
-
|
|
2672
|
-
|
|
2850
|
+
startDateRange = _ganttDateRange2[0],
|
|
2851
|
+
endDateRange = _ganttDateRange2[1];
|
|
2673
2852
|
|
|
2674
|
-
var newDates = seedDates(
|
|
2853
|
+
var newDates = seedDates(startDateRange, endDateRange, viewMode);
|
|
2854
|
+
|
|
2855
|
+
if (scheduleType === "lookAhead") {
|
|
2856
|
+
newDates = seedDates(startDate, endDate, viewMode);
|
|
2857
|
+
}
|
|
2675
2858
|
|
|
2676
2859
|
if (rtl) {
|
|
2677
2860
|
newDates = newDates.reverse();
|
|
@@ -2681,18 +2864,24 @@ var Gantt = function Gantt(_ref) {
|
|
|
2681
2864
|
}
|
|
2682
2865
|
}
|
|
2683
2866
|
|
|
2684
|
-
|
|
2685
|
-
|
|
2686
|
-
|
|
2687
|
-
|
|
2867
|
+
if (scheduleType !== "lookAhead") {
|
|
2868
|
+
setDateSetup({
|
|
2869
|
+
dates: seedDates(startDateRange, endDateRange, viewMode),
|
|
2870
|
+
viewMode: viewMode
|
|
2871
|
+
});
|
|
2872
|
+
}
|
|
2688
2873
|
|
|
2689
2874
|
var _getCriticalPaths = getCriticalPaths(leafTasks),
|
|
2690
2875
|
primaryPath = _getCriticalPaths[0],
|
|
2691
2876
|
secondaryPath = _getCriticalPaths[1];
|
|
2692
2877
|
|
|
2693
2878
|
uncolorAll(tasks);
|
|
2694
|
-
|
|
2695
|
-
|
|
2879
|
+
|
|
2880
|
+
if (scheduleType !== "lookAhead") {
|
|
2881
|
+
colorPath(secondaryPath, "#00ff00", tasks);
|
|
2882
|
+
colorPath(primaryPath, "#ff0000", tasks);
|
|
2883
|
+
}
|
|
2884
|
+
|
|
2696
2885
|
setBarTasks(convertToBarTasks(filteredTasks, newDates, columnWidth, rowHeight, taskHeight, barCornerRadius, handleWidth, rtl, barProgressColor, barProgressSelectedColor, barBackgroundColor, barBackgroundSelectedColor, projectProgressColor, projectProgressSelectedColor, projectBackgroundColor, projectBackgroundSelectedColor, milestoneBackgroundColor, milestoneBackgroundSelectedColor));
|
|
2697
2886
|
}, [tasks, viewMode, preStepsCount, rowHeight, barCornerRadius, columnWidth, taskHeight, handleWidth, barProgressColor, barProgressSelectedColor, barBackgroundColor, barBackgroundSelectedColor, projectProgressColor, projectProgressSelectedColor, projectBackgroundColor, projectBackgroundSelectedColor, milestoneBackgroundColor, milestoneBackgroundSelectedColor, rtl, scrollX, onExpanderClick]);
|
|
2698
2887
|
React.useEffect(function () {
|
|
@@ -2911,9 +3100,11 @@ var Gantt = function Gantt(_ref) {
|
|
|
2911
3100
|
columnWidth: columnWidth,
|
|
2912
3101
|
svgWidth: svgWidth,
|
|
2913
3102
|
tasks: tasks,
|
|
3103
|
+
scheduleType: scheduleType,
|
|
2914
3104
|
rowHeight: rowHeight,
|
|
2915
3105
|
dates: dateSetup.dates,
|
|
2916
3106
|
todayColor: todayColor,
|
|
3107
|
+
weekendColor: weekendColor,
|
|
2917
3108
|
rtl: rtl
|
|
2918
3109
|
};
|
|
2919
3110
|
var calendarProps = {
|
|
@@ -2957,6 +3148,7 @@ var Gantt = function Gantt(_ref) {
|
|
|
2957
3148
|
fontSize: fontSize,
|
|
2958
3149
|
tasks: barTasks,
|
|
2959
3150
|
leafTasks: leafTasks,
|
|
3151
|
+
scheduleType: scheduleType,
|
|
2960
3152
|
locale: locale,
|
|
2961
3153
|
headerHeight: headerHeight,
|
|
2962
3154
|
scrollY: scrollY,
|
|
@@ -2969,7 +3161,8 @@ var Gantt = function Gantt(_ref) {
|
|
|
2969
3161
|
onDoubleClick: onDoubleClick,
|
|
2970
3162
|
TaskListHeader: TaskListHeader,
|
|
2971
3163
|
TaskListTable: TaskListTable,
|
|
2972
|
-
taskLabelRenderer: taskLabelRenderer
|
|
3164
|
+
taskLabelRenderer: taskLabelRenderer,
|
|
3165
|
+
onMultiSelect: onMultiSelect
|
|
2973
3166
|
};
|
|
2974
3167
|
return React__default.createElement("div", null, React__default.createElement("div", {
|
|
2975
3168
|
className: styles$9.wrapper,
|