gantt-task-react-v 1.1.18 → 1.1.20
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/gantt/task-gantt-content.d.ts +4 -0
- package/dist/components/task-list/index.d.ts +4 -0
- package/dist/gantt-task-react.es.js +107 -58
- package/dist/gantt-task-react.umd.js +107 -58
- package/dist/style.css +57 -23
- package/dist/types/public-types.d.ts +6 -0
- package/package.json +1 -1
|
@@ -30,6 +30,10 @@ export interface TaskGanttContentProps extends GanttTaskBarActions {
|
|
|
30
30
|
selectTaskOnMouseDown: (taskId: string, event: MouseEvent) => void;
|
|
31
31
|
selectedIdsMirror: Readonly<Record<string, true>>;
|
|
32
32
|
onTooltipTask: (task: Task | null, element: Element | null) => void;
|
|
33
|
+
/**
|
|
34
|
+
* When true, disable interactive behaviors for task bars (drag, click, relations)
|
|
35
|
+
*/
|
|
36
|
+
isLoading?: boolean;
|
|
33
37
|
startColumnIndex: number;
|
|
34
38
|
taskYOffset: number;
|
|
35
39
|
visibleTasksMirror: Readonly<Record<string, true>>;
|
|
@@ -38,6 +38,10 @@ export type TaskListProps = {
|
|
|
38
38
|
taskListContainerRef: RefObject<HTMLDivElement>;
|
|
39
39
|
taskListRef: RefObject<HTMLDivElement>;
|
|
40
40
|
tasks: readonly RenderTask[];
|
|
41
|
+
/**
|
|
42
|
+
* When true, disable user interactions on the task list (clicks, context menu)
|
|
43
|
+
*/
|
|
44
|
+
isLoading?: boolean;
|
|
41
45
|
onResizeColumn?: OnResizeColumn;
|
|
42
46
|
tableBottom?: TableRenderBottomProps;
|
|
43
47
|
};
|
|
@@ -10637,20 +10637,22 @@ const TaskListTableDefaultInner = ({
|
|
|
10637
10637
|
);
|
|
10638
10638
|
};
|
|
10639
10639
|
const TaskListTable = memo(TaskListTableDefaultInner);
|
|
10640
|
-
const taskListRoot = "
|
|
10641
|
-
const taskListHorizontalScroll = "
|
|
10642
|
-
const taskListResizer = "
|
|
10643
|
-
const horizontalContainer$1 = "
|
|
10644
|
-
const tableWrapper = "
|
|
10645
|
-
const
|
|
10646
|
-
const
|
|
10647
|
-
const
|
|
10640
|
+
const taskListRoot = "_taskListRoot_6kpxi_1";
|
|
10641
|
+
const taskListHorizontalScroll = "_taskListHorizontalScroll_6kpxi_19";
|
|
10642
|
+
const taskListResizer = "_taskListResizer_6kpxi_81";
|
|
10643
|
+
const horizontalContainer$1 = "_horizontalContainer_6kpxi_145";
|
|
10644
|
+
const tableWrapper = "_tableWrapper_6kpxi_159";
|
|
10645
|
+
const loadingOverlayBody$1 = "_loadingOverlayBody_6kpxi_173";
|
|
10646
|
+
const scrollToTop = "_scrollToTop_6kpxi_195";
|
|
10647
|
+
const scrollToBottom = "_scrollToBottom_6kpxi_211";
|
|
10648
|
+
const hidden = "_hidden_6kpxi_227";
|
|
10648
10649
|
const styles$d = {
|
|
10649
10650
|
taskListRoot,
|
|
10650
10651
|
taskListHorizontalScroll,
|
|
10651
10652
|
taskListResizer,
|
|
10652
10653
|
horizontalContainer: horizontalContainer$1,
|
|
10653
10654
|
tableWrapper,
|
|
10655
|
+
loadingOverlayBody: loadingOverlayBody$1,
|
|
10654
10656
|
scrollToTop,
|
|
10655
10657
|
scrollToBottom,
|
|
10656
10658
|
hidden
|
|
@@ -10700,6 +10702,7 @@ const TaskListInner = ({
|
|
|
10700
10702
|
taskListHorizontalScrollRef,
|
|
10701
10703
|
taskListRef,
|
|
10702
10704
|
tasks,
|
|
10705
|
+
isLoading = false,
|
|
10703
10706
|
onResizeColumn,
|
|
10704
10707
|
canReorderTasks,
|
|
10705
10708
|
tableBottom
|
|
@@ -10755,7 +10758,8 @@ const TaskListInner = ({
|
|
|
10755
10758
|
onClick,
|
|
10756
10759
|
onExpanderClick,
|
|
10757
10760
|
scrollToTask,
|
|
10758
|
-
selectTaskOnMouseDown
|
|
10761
|
+
selectTaskOnMouseDown: isLoading ? () => {
|
|
10762
|
+
} : selectTaskOnMouseDown,
|
|
10759
10763
|
task,
|
|
10760
10764
|
depth
|
|
10761
10765
|
};
|
|
@@ -10780,6 +10784,7 @@ const TaskListInner = ({
|
|
|
10780
10784
|
onExpanderClick,
|
|
10781
10785
|
scrollToTask,
|
|
10782
10786
|
selectTaskOnMouseDown,
|
|
10787
|
+
isLoading,
|
|
10783
10788
|
selectedIdsMirror
|
|
10784
10789
|
]
|
|
10785
10790
|
);
|
|
@@ -10805,6 +10810,13 @@ const TaskListInner = ({
|
|
|
10805
10810
|
}
|
|
10806
10811
|
),
|
|
10807
10812
|
/* @__PURE__ */ jsxs("div", { className: styles$d.tableWrapper, children: [
|
|
10813
|
+
(isLoading || false) && /* @__PURE__ */ jsx(
|
|
10814
|
+
"div",
|
|
10815
|
+
{
|
|
10816
|
+
className: styles$d.loadingOverlayBody,
|
|
10817
|
+
"data-testid": "tasklist-loading-overlay"
|
|
10818
|
+
}
|
|
10819
|
+
),
|
|
10808
10820
|
/* @__PURE__ */ jsx(
|
|
10809
10821
|
"div",
|
|
10810
10822
|
{
|
|
@@ -10850,7 +10862,8 @@ const TaskListInner = ({
|
|
|
10850
10862
|
handleMoveTaskBefore,
|
|
10851
10863
|
handleMoveTaskAfter,
|
|
10852
10864
|
handleMoveTasksInside,
|
|
10853
|
-
handleOpenContextMenu
|
|
10865
|
+
handleOpenContextMenu: isLoading ? () => {
|
|
10866
|
+
} : handleOpenContextMenu,
|
|
10854
10867
|
icons,
|
|
10855
10868
|
isShowTaskNumbers,
|
|
10856
10869
|
mapTaskToNestedIndex,
|
|
@@ -12970,6 +12983,7 @@ const TaskGanttContentInner = (props) => {
|
|
|
12970
12983
|
selectTaskOnMouseDown,
|
|
12971
12984
|
selectedIdsMirror,
|
|
12972
12985
|
onTooltipTask,
|
|
12986
|
+
isLoading = false,
|
|
12973
12987
|
startColumnIndex,
|
|
12974
12988
|
taskYOffset,
|
|
12975
12989
|
taskHeight,
|
|
@@ -13098,17 +13112,17 @@ const TaskGanttContentInner = (props) => {
|
|
|
13098
13112
|
distances,
|
|
13099
13113
|
taskHeight,
|
|
13100
13114
|
taskHalfHeight,
|
|
13101
|
-
isProgressChangeable: (t) => isProgressChangeable(t) && !waitCommitTasks,
|
|
13115
|
+
isProgressChangeable: (t) => isProgressChangeable(t) && !waitCommitTasks && !isLoading,
|
|
13102
13116
|
isDateChangeable: (t) => isDateChangeable(t) && !waitCommitTasks,
|
|
13103
|
-
isRelationChangeable: (t) => isRelationChangeable(t) && !waitCommitTasks,
|
|
13117
|
+
isRelationChangeable: (t) => isRelationChangeable(t) && !waitCommitTasks && !isLoading,
|
|
13104
13118
|
authorizedRelations,
|
|
13105
13119
|
ganttRelationEvent,
|
|
13106
|
-
canDelete: !task.isDisabled && !waitCommitTasks,
|
|
13107
|
-
onDoubleClick,
|
|
13108
|
-
onClick,
|
|
13109
|
-
onEventStart: onTaskBarDragStart,
|
|
13120
|
+
canDelete: !task.isDisabled && !waitCommitTasks && !isLoading,
|
|
13121
|
+
onDoubleClick: isLoading ? void 0 : onDoubleClick,
|
|
13122
|
+
onClick: isLoading ? void 0 : onClick,
|
|
13123
|
+
onEventStart: isLoading ? void 0 : onTaskBarDragStart,
|
|
13110
13124
|
onTooltipTask,
|
|
13111
|
-
onRelationStart: onTaskBarRelationStart,
|
|
13125
|
+
onRelationStart: isLoading ? void 0 : onTaskBarRelationStart,
|
|
13112
13126
|
isSelected: Boolean(selectedIdsMirror[taskId]),
|
|
13113
13127
|
isCritical,
|
|
13114
13128
|
rtl,
|
|
@@ -13328,7 +13342,8 @@ const TaskGanttContentInner = (props) => {
|
|
|
13328
13342
|
visibleTasksMirror,
|
|
13329
13343
|
onArrowDoubleClick,
|
|
13330
13344
|
showProgress,
|
|
13331
|
-
progressColor
|
|
13345
|
+
progressColor,
|
|
13346
|
+
isLoading
|
|
13332
13347
|
]);
|
|
13333
13348
|
return /* @__PURE__ */ jsxs("g", { className: "content", children: [
|
|
13334
13349
|
renderedSelectedTasks,
|
|
@@ -13363,15 +13378,19 @@ const TaskGanttContentInner = (props) => {
|
|
|
13363
13378
|
] });
|
|
13364
13379
|
};
|
|
13365
13380
|
const TaskGanttContent = memo(TaskGanttContentInner);
|
|
13366
|
-
const ganttVerticalContainer = "
|
|
13367
|
-
const horizontalContainer = "
|
|
13368
|
-
const wrapper = "
|
|
13369
|
-
const calendarDragging = "
|
|
13381
|
+
const ganttVerticalContainer = "_ganttVerticalContainer_19ply_1";
|
|
13382
|
+
const horizontalContainer = "_horizontalContainer_19ply_73";
|
|
13383
|
+
const wrapper = "_wrapper_19ply_93";
|
|
13384
|
+
const calendarDragging = "_calendarDragging_19ply_117";
|
|
13385
|
+
const loadingOverlay = "_loadingOverlay_19ply_125";
|
|
13386
|
+
const loadingOverlayBody = "_loadingOverlayBody_19ply_141";
|
|
13370
13387
|
const styles$2 = {
|
|
13371
13388
|
ganttVerticalContainer,
|
|
13372
13389
|
horizontalContainer,
|
|
13373
13390
|
wrapper,
|
|
13374
|
-
calendarDragging
|
|
13391
|
+
calendarDragging,
|
|
13392
|
+
loadingOverlay,
|
|
13393
|
+
loadingOverlayBody
|
|
13375
13394
|
};
|
|
13376
13395
|
const TaskGanttInner = (props) => {
|
|
13377
13396
|
const {
|
|
@@ -13426,7 +13445,7 @@ const TaskGanttInner = (props) => {
|
|
|
13426
13445
|
]
|
|
13427
13446
|
);
|
|
13428
13447
|
useEffect(() => {
|
|
13429
|
-
if (!contentRef.current) {
|
|
13448
|
+
if (!contentRef.current || barProps.isLoading) {
|
|
13430
13449
|
return () => {
|
|
13431
13450
|
};
|
|
13432
13451
|
}
|
|
@@ -13496,7 +13515,12 @@ const TaskGanttInner = (props) => {
|
|
|
13496
13515
|
contentContainer.removeEventListener("mouseup", onScrollEnd);
|
|
13497
13516
|
contentContainer.removeEventListener("mouseout", onScrollEnd);
|
|
13498
13517
|
};
|
|
13499
|
-
}, [
|
|
13518
|
+
}, [
|
|
13519
|
+
verticalScrollbarRef,
|
|
13520
|
+
horizontalContainerRef,
|
|
13521
|
+
verticalGanttContainerRef,
|
|
13522
|
+
barProps.isLoading
|
|
13523
|
+
]);
|
|
13500
13524
|
return /* @__PURE__ */ jsxs(
|
|
13501
13525
|
"div",
|
|
13502
13526
|
{
|
|
@@ -13515,41 +13539,50 @@ const TaskGanttInner = (props) => {
|
|
|
13515
13539
|
children: /* @__PURE__ */ jsx(Calendar, { scrollRef: verticalGanttContainerRef, ...calendarProps })
|
|
13516
13540
|
}
|
|
13517
13541
|
),
|
|
13518
|
-
/* @__PURE__ */
|
|
13542
|
+
/* @__PURE__ */ jsxs(
|
|
13519
13543
|
"div",
|
|
13520
13544
|
{
|
|
13521
13545
|
ref: horizontalContainerRef,
|
|
13522
13546
|
className: styles$2.horizontalContainer,
|
|
13523
13547
|
style: containerStyle,
|
|
13524
|
-
children:
|
|
13525
|
-
|
|
13526
|
-
|
|
13527
|
-
|
|
13528
|
-
|
|
13529
|
-
|
|
13530
|
-
|
|
13531
|
-
|
|
13532
|
-
|
|
13533
|
-
|
|
13534
|
-
|
|
13535
|
-
|
|
13536
|
-
|
|
13537
|
-
|
|
13538
|
-
|
|
13539
|
-
|
|
13540
|
-
|
|
13541
|
-
|
|
13542
|
-
{
|
|
13543
|
-
|
|
13544
|
-
width: "100%",
|
|
13545
|
-
height: "100%",
|
|
13546
|
-
fill: "transparent"
|
|
13548
|
+
children: [
|
|
13549
|
+
barProps.isLoading && /* @__PURE__ */ jsx(
|
|
13550
|
+
"div",
|
|
13551
|
+
{
|
|
13552
|
+
className: styles$2.loadingOverlayBody,
|
|
13553
|
+
"data-testid": "gantt-loading-overlay-body"
|
|
13554
|
+
}
|
|
13555
|
+
),
|
|
13556
|
+
/* @__PURE__ */ jsx("div", { style: gridStyle, children: /* @__PURE__ */ jsxs(
|
|
13557
|
+
"svg",
|
|
13558
|
+
{
|
|
13559
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
13560
|
+
width: fullSvgWidth,
|
|
13561
|
+
height: ganttFullHeight,
|
|
13562
|
+
fontFamily: "var(--gantt-font-family)",
|
|
13563
|
+
ref: ganttSVGRef,
|
|
13564
|
+
onContextMenu: (event) => {
|
|
13565
|
+
event.preventDefault();
|
|
13566
|
+
if (onOpenGanttContextMenu) {
|
|
13567
|
+
onOpenGanttContextMenu(event.clientX, event.clientY);
|
|
13547
13568
|
}
|
|
13548
|
-
|
|
13549
|
-
|
|
13550
|
-
|
|
13551
|
-
|
|
13552
|
-
|
|
13569
|
+
},
|
|
13570
|
+
children: [
|
|
13571
|
+
/* @__PURE__ */ jsx(GanttToday, { ...ganttTodayProps }),
|
|
13572
|
+
/* @__PURE__ */ jsx(
|
|
13573
|
+
"rect",
|
|
13574
|
+
{
|
|
13575
|
+
ref: contentRef,
|
|
13576
|
+
width: "100%",
|
|
13577
|
+
height: "100%",
|
|
13578
|
+
fill: "transparent"
|
|
13579
|
+
}
|
|
13580
|
+
),
|
|
13581
|
+
/* @__PURE__ */ jsx(TaskGanttContent, { ...barProps })
|
|
13582
|
+
]
|
|
13583
|
+
}
|
|
13584
|
+
) })
|
|
13585
|
+
]
|
|
13553
13586
|
}
|
|
13554
13587
|
)
|
|
13555
13588
|
]
|
|
@@ -18986,6 +19019,7 @@ const Gantt = (props) => {
|
|
|
18986
19019
|
showProgress = true,
|
|
18987
19020
|
progressColor
|
|
18988
19021
|
} = props;
|
|
19022
|
+
const { isLoading = false } = props;
|
|
18989
19023
|
const ganttSVGRef = useRef(null);
|
|
18990
19024
|
const wrapperRef = useRef(null);
|
|
18991
19025
|
const taskListRef = useRef(null);
|
|
@@ -19300,6 +19334,9 @@ const Gantt = (props) => {
|
|
|
19300
19334
|
});
|
|
19301
19335
|
const handleOpenGanttContextMenu = useCallback(
|
|
19302
19336
|
(task, clientX, clientY) => {
|
|
19337
|
+
if (isLoading) {
|
|
19338
|
+
return;
|
|
19339
|
+
}
|
|
19303
19340
|
const wrapperNode = wrapperRef.current;
|
|
19304
19341
|
if (!wrapperNode) {
|
|
19305
19342
|
return;
|
|
@@ -19312,7 +19349,7 @@ const Gantt = (props) => {
|
|
|
19312
19349
|
y: clientY - top
|
|
19313
19350
|
});
|
|
19314
19351
|
},
|
|
19315
|
-
[wrapperRef]
|
|
19352
|
+
[wrapperRef, isLoading]
|
|
19316
19353
|
);
|
|
19317
19354
|
const handleCloseGanttContextMenu = useCallback(() => {
|
|
19318
19355
|
setGanttContextMenu({
|
|
@@ -19446,6 +19483,10 @@ const Gantt = (props) => {
|
|
|
19446
19483
|
horizontalContainerRef
|
|
19447
19484
|
]);
|
|
19448
19485
|
const handleKeyDown = (event) => {
|
|
19486
|
+
if (isLoading) {
|
|
19487
|
+
event.preventDefault();
|
|
19488
|
+
return;
|
|
19489
|
+
}
|
|
19449
19490
|
const { columnWidth, rowHeight: rowHeight2 } = distances;
|
|
19450
19491
|
let newScrollY = scrollY;
|
|
19451
19492
|
let newScrollX = scrollX;
|
|
@@ -20111,6 +20152,9 @@ const Gantt = (props) => {
|
|
|
20111
20152
|
}, [taskList.contextMenuOptions, locale]);
|
|
20112
20153
|
const handleOpenContextMenuForRow = useCallback(
|
|
20113
20154
|
(task, clientX, clientY) => {
|
|
20155
|
+
if (isLoading) {
|
|
20156
|
+
return;
|
|
20157
|
+
}
|
|
20114
20158
|
try {
|
|
20115
20159
|
if (onRowContextMenu && task) {
|
|
20116
20160
|
onRowContextMenu(task);
|
|
@@ -20128,7 +20172,8 @@ const Gantt = (props) => {
|
|
|
20128
20172
|
handleOpenContextMenu,
|
|
20129
20173
|
selectTask,
|
|
20130
20174
|
contextMenuOptions,
|
|
20131
|
-
selectedIdsMirror
|
|
20175
|
+
selectedIdsMirror,
|
|
20176
|
+
isLoading
|
|
20132
20177
|
]
|
|
20133
20178
|
);
|
|
20134
20179
|
const ganttContextMenuOptions = useMemo(() => {
|
|
@@ -20262,6 +20307,7 @@ const Gantt = (props) => {
|
|
|
20262
20307
|
onDeleteTask: (taskForDelete) => handleDeleteTasks([taskForDelete]),
|
|
20263
20308
|
onTaskBarDragStart: handleTaskDragStart,
|
|
20264
20309
|
onTooltipTask: onChangeTooltipTask,
|
|
20310
|
+
isLoading,
|
|
20265
20311
|
mapGlobalRowIndexToTask,
|
|
20266
20312
|
onArrowDoubleClick,
|
|
20267
20313
|
renderedRowIndexes,
|
|
@@ -20314,7 +20360,8 @@ const Gantt = (props) => {
|
|
|
20314
20360
|
changeInProgress == null ? void 0 : changeInProgress.action,
|
|
20315
20361
|
handleDeleteTasks,
|
|
20316
20362
|
showProgress,
|
|
20317
|
-
progressColor
|
|
20363
|
+
progressColor,
|
|
20364
|
+
isLoading
|
|
20318
20365
|
]
|
|
20319
20366
|
);
|
|
20320
20367
|
const renderTaskListProps = useMemo(
|
|
@@ -20347,7 +20394,8 @@ const Gantt = (props) => {
|
|
|
20347
20394
|
taskListContainerRef,
|
|
20348
20395
|
taskListRef,
|
|
20349
20396
|
tasks: visibleTasks,
|
|
20350
|
-
ganttRef: wrapperRef
|
|
20397
|
+
ganttRef: wrapperRef,
|
|
20398
|
+
isLoading
|
|
20351
20399
|
}),
|
|
20352
20400
|
[
|
|
20353
20401
|
childTasksMap,
|
|
@@ -20375,6 +20423,7 @@ const Gantt = (props) => {
|
|
|
20375
20423
|
selectTaskOnMouseDown,
|
|
20376
20424
|
selectedIdsMirror,
|
|
20377
20425
|
taskList,
|
|
20426
|
+
isLoading,
|
|
20378
20427
|
taskListContainerRef,
|
|
20379
20428
|
visibleTasks
|
|
20380
20429
|
]
|
|
@@ -10654,20 +10654,22 @@
|
|
|
10654
10654
|
);
|
|
10655
10655
|
};
|
|
10656
10656
|
const TaskListTable = React.memo(TaskListTableDefaultInner);
|
|
10657
|
-
const taskListRoot = "
|
|
10658
|
-
const taskListHorizontalScroll = "
|
|
10659
|
-
const taskListResizer = "
|
|
10660
|
-
const horizontalContainer$1 = "
|
|
10661
|
-
const tableWrapper = "
|
|
10662
|
-
const
|
|
10663
|
-
const
|
|
10664
|
-
const
|
|
10657
|
+
const taskListRoot = "_taskListRoot_6kpxi_1";
|
|
10658
|
+
const taskListHorizontalScroll = "_taskListHorizontalScroll_6kpxi_19";
|
|
10659
|
+
const taskListResizer = "_taskListResizer_6kpxi_81";
|
|
10660
|
+
const horizontalContainer$1 = "_horizontalContainer_6kpxi_145";
|
|
10661
|
+
const tableWrapper = "_tableWrapper_6kpxi_159";
|
|
10662
|
+
const loadingOverlayBody$1 = "_loadingOverlayBody_6kpxi_173";
|
|
10663
|
+
const scrollToTop = "_scrollToTop_6kpxi_195";
|
|
10664
|
+
const scrollToBottom = "_scrollToBottom_6kpxi_211";
|
|
10665
|
+
const hidden = "_hidden_6kpxi_227";
|
|
10665
10666
|
const styles$d = {
|
|
10666
10667
|
taskListRoot,
|
|
10667
10668
|
taskListHorizontalScroll,
|
|
10668
10669
|
taskListResizer,
|
|
10669
10670
|
horizontalContainer: horizontalContainer$1,
|
|
10670
10671
|
tableWrapper,
|
|
10672
|
+
loadingOverlayBody: loadingOverlayBody$1,
|
|
10671
10673
|
scrollToTop,
|
|
10672
10674
|
scrollToBottom,
|
|
10673
10675
|
hidden
|
|
@@ -10717,6 +10719,7 @@
|
|
|
10717
10719
|
taskListHorizontalScrollRef,
|
|
10718
10720
|
taskListRef,
|
|
10719
10721
|
tasks,
|
|
10722
|
+
isLoading = false,
|
|
10720
10723
|
onResizeColumn,
|
|
10721
10724
|
canReorderTasks,
|
|
10722
10725
|
tableBottom
|
|
@@ -10772,7 +10775,8 @@
|
|
|
10772
10775
|
onClick,
|
|
10773
10776
|
onExpanderClick,
|
|
10774
10777
|
scrollToTask,
|
|
10775
|
-
selectTaskOnMouseDown
|
|
10778
|
+
selectTaskOnMouseDown: isLoading ? () => {
|
|
10779
|
+
} : selectTaskOnMouseDown,
|
|
10776
10780
|
task,
|
|
10777
10781
|
depth
|
|
10778
10782
|
};
|
|
@@ -10797,6 +10801,7 @@
|
|
|
10797
10801
|
onExpanderClick,
|
|
10798
10802
|
scrollToTask,
|
|
10799
10803
|
selectTaskOnMouseDown,
|
|
10804
|
+
isLoading,
|
|
10800
10805
|
selectedIdsMirror
|
|
10801
10806
|
]
|
|
10802
10807
|
);
|
|
@@ -10822,6 +10827,13 @@
|
|
|
10822
10827
|
}
|
|
10823
10828
|
),
|
|
10824
10829
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles$d.tableWrapper, children: [
|
|
10830
|
+
(isLoading || false) && /* @__PURE__ */ jsxRuntime.jsx(
|
|
10831
|
+
"div",
|
|
10832
|
+
{
|
|
10833
|
+
className: styles$d.loadingOverlayBody,
|
|
10834
|
+
"data-testid": "tasklist-loading-overlay"
|
|
10835
|
+
}
|
|
10836
|
+
),
|
|
10825
10837
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
10826
10838
|
"div",
|
|
10827
10839
|
{
|
|
@@ -10867,7 +10879,8 @@
|
|
|
10867
10879
|
handleMoveTaskBefore,
|
|
10868
10880
|
handleMoveTaskAfter,
|
|
10869
10881
|
handleMoveTasksInside,
|
|
10870
|
-
handleOpenContextMenu
|
|
10882
|
+
handleOpenContextMenu: isLoading ? () => {
|
|
10883
|
+
} : handleOpenContextMenu,
|
|
10871
10884
|
icons,
|
|
10872
10885
|
isShowTaskNumbers,
|
|
10873
10886
|
mapTaskToNestedIndex,
|
|
@@ -12987,6 +13000,7 @@
|
|
|
12987
13000
|
selectTaskOnMouseDown,
|
|
12988
13001
|
selectedIdsMirror,
|
|
12989
13002
|
onTooltipTask,
|
|
13003
|
+
isLoading = false,
|
|
12990
13004
|
startColumnIndex,
|
|
12991
13005
|
taskYOffset,
|
|
12992
13006
|
taskHeight,
|
|
@@ -13115,17 +13129,17 @@
|
|
|
13115
13129
|
distances,
|
|
13116
13130
|
taskHeight,
|
|
13117
13131
|
taskHalfHeight,
|
|
13118
|
-
isProgressChangeable: (t) => isProgressChangeable(t) && !waitCommitTasks,
|
|
13132
|
+
isProgressChangeable: (t) => isProgressChangeable(t) && !waitCommitTasks && !isLoading,
|
|
13119
13133
|
isDateChangeable: (t) => isDateChangeable(t) && !waitCommitTasks,
|
|
13120
|
-
isRelationChangeable: (t) => isRelationChangeable(t) && !waitCommitTasks,
|
|
13134
|
+
isRelationChangeable: (t) => isRelationChangeable(t) && !waitCommitTasks && !isLoading,
|
|
13121
13135
|
authorizedRelations,
|
|
13122
13136
|
ganttRelationEvent,
|
|
13123
|
-
canDelete: !task.isDisabled && !waitCommitTasks,
|
|
13124
|
-
onDoubleClick,
|
|
13125
|
-
onClick,
|
|
13126
|
-
onEventStart: onTaskBarDragStart,
|
|
13137
|
+
canDelete: !task.isDisabled && !waitCommitTasks && !isLoading,
|
|
13138
|
+
onDoubleClick: isLoading ? void 0 : onDoubleClick,
|
|
13139
|
+
onClick: isLoading ? void 0 : onClick,
|
|
13140
|
+
onEventStart: isLoading ? void 0 : onTaskBarDragStart,
|
|
13127
13141
|
onTooltipTask,
|
|
13128
|
-
onRelationStart: onTaskBarRelationStart,
|
|
13142
|
+
onRelationStart: isLoading ? void 0 : onTaskBarRelationStart,
|
|
13129
13143
|
isSelected: Boolean(selectedIdsMirror[taskId]),
|
|
13130
13144
|
isCritical,
|
|
13131
13145
|
rtl,
|
|
@@ -13345,7 +13359,8 @@
|
|
|
13345
13359
|
visibleTasksMirror,
|
|
13346
13360
|
onArrowDoubleClick,
|
|
13347
13361
|
showProgress,
|
|
13348
|
-
progressColor
|
|
13362
|
+
progressColor,
|
|
13363
|
+
isLoading
|
|
13349
13364
|
]);
|
|
13350
13365
|
return /* @__PURE__ */ jsxRuntime.jsxs("g", { className: "content", children: [
|
|
13351
13366
|
renderedSelectedTasks,
|
|
@@ -13380,15 +13395,19 @@
|
|
|
13380
13395
|
] });
|
|
13381
13396
|
};
|
|
13382
13397
|
const TaskGanttContent = React.memo(TaskGanttContentInner);
|
|
13383
|
-
const ganttVerticalContainer = "
|
|
13384
|
-
const horizontalContainer = "
|
|
13385
|
-
const wrapper = "
|
|
13386
|
-
const calendarDragging = "
|
|
13398
|
+
const ganttVerticalContainer = "_ganttVerticalContainer_19ply_1";
|
|
13399
|
+
const horizontalContainer = "_horizontalContainer_19ply_73";
|
|
13400
|
+
const wrapper = "_wrapper_19ply_93";
|
|
13401
|
+
const calendarDragging = "_calendarDragging_19ply_117";
|
|
13402
|
+
const loadingOverlay = "_loadingOverlay_19ply_125";
|
|
13403
|
+
const loadingOverlayBody = "_loadingOverlayBody_19ply_141";
|
|
13387
13404
|
const styles$2 = {
|
|
13388
13405
|
ganttVerticalContainer,
|
|
13389
13406
|
horizontalContainer,
|
|
13390
13407
|
wrapper,
|
|
13391
|
-
calendarDragging
|
|
13408
|
+
calendarDragging,
|
|
13409
|
+
loadingOverlay,
|
|
13410
|
+
loadingOverlayBody
|
|
13392
13411
|
};
|
|
13393
13412
|
const TaskGanttInner = (props) => {
|
|
13394
13413
|
const {
|
|
@@ -13443,7 +13462,7 @@
|
|
|
13443
13462
|
]
|
|
13444
13463
|
);
|
|
13445
13464
|
React.useEffect(() => {
|
|
13446
|
-
if (!contentRef.current) {
|
|
13465
|
+
if (!contentRef.current || barProps.isLoading) {
|
|
13447
13466
|
return () => {
|
|
13448
13467
|
};
|
|
13449
13468
|
}
|
|
@@ -13513,7 +13532,12 @@
|
|
|
13513
13532
|
contentContainer.removeEventListener("mouseup", onScrollEnd);
|
|
13514
13533
|
contentContainer.removeEventListener("mouseout", onScrollEnd);
|
|
13515
13534
|
};
|
|
13516
|
-
}, [
|
|
13535
|
+
}, [
|
|
13536
|
+
verticalScrollbarRef,
|
|
13537
|
+
horizontalContainerRef,
|
|
13538
|
+
verticalGanttContainerRef,
|
|
13539
|
+
barProps.isLoading
|
|
13540
|
+
]);
|
|
13517
13541
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
13518
13542
|
"div",
|
|
13519
13543
|
{
|
|
@@ -13532,41 +13556,50 @@
|
|
|
13532
13556
|
children: /* @__PURE__ */ jsxRuntime.jsx(Calendar, { scrollRef: verticalGanttContainerRef, ...calendarProps })
|
|
13533
13557
|
}
|
|
13534
13558
|
),
|
|
13535
|
-
/* @__PURE__ */ jsxRuntime.
|
|
13559
|
+
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
13536
13560
|
"div",
|
|
13537
13561
|
{
|
|
13538
13562
|
ref: horizontalContainerRef,
|
|
13539
13563
|
className: styles$2.horizontalContainer,
|
|
13540
13564
|
style: containerStyle,
|
|
13541
|
-
children:
|
|
13542
|
-
|
|
13543
|
-
|
|
13544
|
-
|
|
13545
|
-
|
|
13546
|
-
|
|
13547
|
-
|
|
13548
|
-
|
|
13549
|
-
|
|
13550
|
-
|
|
13551
|
-
|
|
13552
|
-
|
|
13553
|
-
|
|
13554
|
-
|
|
13555
|
-
|
|
13556
|
-
|
|
13557
|
-
|
|
13558
|
-
|
|
13559
|
-
{
|
|
13560
|
-
|
|
13561
|
-
width: "100%",
|
|
13562
|
-
height: "100%",
|
|
13563
|
-
fill: "transparent"
|
|
13565
|
+
children: [
|
|
13566
|
+
barProps.isLoading && /* @__PURE__ */ jsxRuntime.jsx(
|
|
13567
|
+
"div",
|
|
13568
|
+
{
|
|
13569
|
+
className: styles$2.loadingOverlayBody,
|
|
13570
|
+
"data-testid": "gantt-loading-overlay-body"
|
|
13571
|
+
}
|
|
13572
|
+
),
|
|
13573
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { style: gridStyle, children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
13574
|
+
"svg",
|
|
13575
|
+
{
|
|
13576
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
13577
|
+
width: fullSvgWidth,
|
|
13578
|
+
height: ganttFullHeight,
|
|
13579
|
+
fontFamily: "var(--gantt-font-family)",
|
|
13580
|
+
ref: ganttSVGRef,
|
|
13581
|
+
onContextMenu: (event) => {
|
|
13582
|
+
event.preventDefault();
|
|
13583
|
+
if (onOpenGanttContextMenu) {
|
|
13584
|
+
onOpenGanttContextMenu(event.clientX, event.clientY);
|
|
13564
13585
|
}
|
|
13565
|
-
|
|
13566
|
-
|
|
13567
|
-
|
|
13568
|
-
|
|
13569
|
-
|
|
13586
|
+
},
|
|
13587
|
+
children: [
|
|
13588
|
+
/* @__PURE__ */ jsxRuntime.jsx(GanttToday, { ...ganttTodayProps }),
|
|
13589
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
13590
|
+
"rect",
|
|
13591
|
+
{
|
|
13592
|
+
ref: contentRef,
|
|
13593
|
+
width: "100%",
|
|
13594
|
+
height: "100%",
|
|
13595
|
+
fill: "transparent"
|
|
13596
|
+
}
|
|
13597
|
+
),
|
|
13598
|
+
/* @__PURE__ */ jsxRuntime.jsx(TaskGanttContent, { ...barProps })
|
|
13599
|
+
]
|
|
13600
|
+
}
|
|
13601
|
+
) })
|
|
13602
|
+
]
|
|
13570
13603
|
}
|
|
13571
13604
|
)
|
|
13572
13605
|
]
|
|
@@ -19003,6 +19036,7 @@
|
|
|
19003
19036
|
showProgress = true,
|
|
19004
19037
|
progressColor
|
|
19005
19038
|
} = props;
|
|
19039
|
+
const { isLoading = false } = props;
|
|
19006
19040
|
const ganttSVGRef = React.useRef(null);
|
|
19007
19041
|
const wrapperRef = React.useRef(null);
|
|
19008
19042
|
const taskListRef = React.useRef(null);
|
|
@@ -19317,6 +19351,9 @@
|
|
|
19317
19351
|
});
|
|
19318
19352
|
const handleOpenGanttContextMenu = React.useCallback(
|
|
19319
19353
|
(task, clientX, clientY) => {
|
|
19354
|
+
if (isLoading) {
|
|
19355
|
+
return;
|
|
19356
|
+
}
|
|
19320
19357
|
const wrapperNode = wrapperRef.current;
|
|
19321
19358
|
if (!wrapperNode) {
|
|
19322
19359
|
return;
|
|
@@ -19329,7 +19366,7 @@
|
|
|
19329
19366
|
y: clientY - top
|
|
19330
19367
|
});
|
|
19331
19368
|
},
|
|
19332
|
-
[wrapperRef]
|
|
19369
|
+
[wrapperRef, isLoading]
|
|
19333
19370
|
);
|
|
19334
19371
|
const handleCloseGanttContextMenu = React.useCallback(() => {
|
|
19335
19372
|
setGanttContextMenu({
|
|
@@ -19463,6 +19500,10 @@
|
|
|
19463
19500
|
horizontalContainerRef
|
|
19464
19501
|
]);
|
|
19465
19502
|
const handleKeyDown = (event) => {
|
|
19503
|
+
if (isLoading) {
|
|
19504
|
+
event.preventDefault();
|
|
19505
|
+
return;
|
|
19506
|
+
}
|
|
19466
19507
|
const { columnWidth, rowHeight: rowHeight2 } = distances;
|
|
19467
19508
|
let newScrollY = scrollY;
|
|
19468
19509
|
let newScrollX = scrollX;
|
|
@@ -20128,6 +20169,9 @@
|
|
|
20128
20169
|
}, [taskList.contextMenuOptions, locale]);
|
|
20129
20170
|
const handleOpenContextMenuForRow = React.useCallback(
|
|
20130
20171
|
(task, clientX, clientY) => {
|
|
20172
|
+
if (isLoading) {
|
|
20173
|
+
return;
|
|
20174
|
+
}
|
|
20131
20175
|
try {
|
|
20132
20176
|
if (onRowContextMenu && task) {
|
|
20133
20177
|
onRowContextMenu(task);
|
|
@@ -20145,7 +20189,8 @@
|
|
|
20145
20189
|
handleOpenContextMenu,
|
|
20146
20190
|
selectTask,
|
|
20147
20191
|
contextMenuOptions,
|
|
20148
|
-
selectedIdsMirror
|
|
20192
|
+
selectedIdsMirror,
|
|
20193
|
+
isLoading
|
|
20149
20194
|
]
|
|
20150
20195
|
);
|
|
20151
20196
|
const ganttContextMenuOptions = React.useMemo(() => {
|
|
@@ -20279,6 +20324,7 @@
|
|
|
20279
20324
|
onDeleteTask: (taskForDelete) => handleDeleteTasks([taskForDelete]),
|
|
20280
20325
|
onTaskBarDragStart: handleTaskDragStart,
|
|
20281
20326
|
onTooltipTask: onChangeTooltipTask,
|
|
20327
|
+
isLoading,
|
|
20282
20328
|
mapGlobalRowIndexToTask,
|
|
20283
20329
|
onArrowDoubleClick,
|
|
20284
20330
|
renderedRowIndexes,
|
|
@@ -20331,7 +20377,8 @@
|
|
|
20331
20377
|
changeInProgress == null ? void 0 : changeInProgress.action,
|
|
20332
20378
|
handleDeleteTasks,
|
|
20333
20379
|
showProgress,
|
|
20334
|
-
progressColor
|
|
20380
|
+
progressColor,
|
|
20381
|
+
isLoading
|
|
20335
20382
|
]
|
|
20336
20383
|
);
|
|
20337
20384
|
const renderTaskListProps = React.useMemo(
|
|
@@ -20364,7 +20411,8 @@
|
|
|
20364
20411
|
taskListContainerRef,
|
|
20365
20412
|
taskListRef,
|
|
20366
20413
|
tasks: visibleTasks,
|
|
20367
|
-
ganttRef: wrapperRef
|
|
20414
|
+
ganttRef: wrapperRef,
|
|
20415
|
+
isLoading
|
|
20368
20416
|
}),
|
|
20369
20417
|
[
|
|
20370
20418
|
childTasksMap,
|
|
@@ -20392,6 +20440,7 @@
|
|
|
20392
20440
|
selectTaskOnMouseDown,
|
|
20393
20441
|
selectedIdsMirror,
|
|
20394
20442
|
taskList,
|
|
20443
|
+
isLoading,
|
|
20395
20444
|
taskListContainerRef,
|
|
20396
20445
|
visibleTasks
|
|
20397
20446
|
]
|
package/dist/style.css
CHANGED
|
@@ -282,7 +282,7 @@
|
|
|
282
282
|
border-bottom: 1px solid var(--gantt-divider-color);
|
|
283
283
|
table-layout: fixed;
|
|
284
284
|
}
|
|
285
|
-
.
|
|
285
|
+
._taskListRoot_6kpxi_1 {
|
|
286
286
|
position: relative;
|
|
287
287
|
height: 100%;
|
|
288
288
|
display: flex;
|
|
@@ -291,23 +291,23 @@
|
|
|
291
291
|
border-left: 1px solid var(--gantt-table-divider-color, var(--gantt-divider-color));
|
|
292
292
|
}
|
|
293
293
|
|
|
294
|
-
.
|
|
294
|
+
._taskListHorizontalScroll_6kpxi_19 {
|
|
295
295
|
overflow-x: scroll;
|
|
296
296
|
height: 100%;
|
|
297
297
|
display: flex;
|
|
298
298
|
flex-direction: column;
|
|
299
299
|
}
|
|
300
300
|
|
|
301
|
-
.
|
|
301
|
+
._taskListHorizontalScroll_6kpxi_19::-webkit-scrollbar {
|
|
302
302
|
width: 1rem;
|
|
303
303
|
height: 1rem;
|
|
304
304
|
}
|
|
305
305
|
|
|
306
|
-
.
|
|
306
|
+
._taskListHorizontalScroll_6kpxi_19::-webkit-scrollbar-corner {
|
|
307
307
|
background: transparent;
|
|
308
308
|
}
|
|
309
309
|
|
|
310
|
-
.
|
|
310
|
+
._taskListHorizontalScroll_6kpxi_19::-webkit-scrollbar-thumb {
|
|
311
311
|
border: 4px solid transparent;
|
|
312
312
|
/*noinspection CssUnresolvedCustomProperty*/
|
|
313
313
|
background: var(--gantt-scrollbar-thumb-color);
|
|
@@ -315,14 +315,14 @@
|
|
|
315
315
|
background-clip: padding-box;
|
|
316
316
|
}
|
|
317
317
|
|
|
318
|
-
.
|
|
318
|
+
._taskListHorizontalScroll_6kpxi_19::-webkit-scrollbar-thumb:hover {
|
|
319
319
|
border: 2px solid transparent;
|
|
320
320
|
/*noinspection CssUnresolvedCustomProperty*/
|
|
321
321
|
background: var(--gantt-scrollbar-thumb-color);
|
|
322
322
|
background-clip: padding-box;
|
|
323
323
|
}
|
|
324
324
|
|
|
325
|
-
.
|
|
325
|
+
._taskListResizer_6kpxi_81 {
|
|
326
326
|
position: absolute;
|
|
327
327
|
top: 0;
|
|
328
328
|
right: -3px;
|
|
@@ -334,16 +334,16 @@
|
|
|
334
334
|
}
|
|
335
335
|
|
|
336
336
|
/*noinspection CssUnresolvedCustomProperty*/
|
|
337
|
-
.
|
|
337
|
+
._taskListResizer_6kpxi_81:hover {
|
|
338
338
|
background-color: var(--gantt-table-hover-action-color);
|
|
339
339
|
filter: var(--gantt-hover-filter);
|
|
340
340
|
}
|
|
341
341
|
|
|
342
|
-
.
|
|
342
|
+
._taskListResizer_6kpxi_81:hover::before {
|
|
343
343
|
display: none;
|
|
344
344
|
}
|
|
345
345
|
|
|
346
|
-
.
|
|
346
|
+
._taskListResizer_6kpxi_81::before {
|
|
347
347
|
content: "";
|
|
348
348
|
position: absolute;
|
|
349
349
|
top: 0;
|
|
@@ -354,21 +354,32 @@
|
|
|
354
354
|
background-color: var(--gantt-table-resize-color, var(--gantt-divider-color));
|
|
355
355
|
}
|
|
356
356
|
|
|
357
|
-
.
|
|
357
|
+
._horizontalContainer_6kpxi_145 {
|
|
358
358
|
margin: 0;
|
|
359
359
|
padding: 0;
|
|
360
360
|
overflow: hidden;
|
|
361
361
|
flex-grow: 1;
|
|
362
362
|
}
|
|
363
363
|
|
|
364
|
-
.
|
|
364
|
+
._tableWrapper_6kpxi_159 {
|
|
365
365
|
position: relative;
|
|
366
366
|
flex-grow: 1;
|
|
367
367
|
display: flex;
|
|
368
368
|
flex-direction: column;
|
|
369
369
|
}
|
|
370
370
|
|
|
371
|
-
.
|
|
371
|
+
._loadingOverlayBody_6kpxi_173 {
|
|
372
|
+
position: absolute;
|
|
373
|
+
left: 0;
|
|
374
|
+
right: 0;
|
|
375
|
+
top: 0; /* We'll position overlay inside body wrapper so header remains visible */
|
|
376
|
+
bottom: 0;
|
|
377
|
+
background: rgba(255,255,255,0.6);
|
|
378
|
+
z-index: 2;
|
|
379
|
+
pointer-events: auto;
|
|
380
|
+
}
|
|
381
|
+
|
|
382
|
+
._scrollToTop_6kpxi_195 {
|
|
372
383
|
position: absolute;
|
|
373
384
|
top: 0;
|
|
374
385
|
left: 0;
|
|
@@ -376,7 +387,7 @@
|
|
|
376
387
|
height: 20px;
|
|
377
388
|
}
|
|
378
389
|
|
|
379
|
-
.
|
|
390
|
+
._scrollToBottom_6kpxi_211 {
|
|
380
391
|
position: absolute;
|
|
381
392
|
bottom: 0;
|
|
382
393
|
left: 0;
|
|
@@ -384,7 +395,7 @@
|
|
|
384
395
|
height: 20px;
|
|
385
396
|
}
|
|
386
397
|
|
|
387
|
-
.
|
|
398
|
+
._hidden_6kpxi_227 {
|
|
388
399
|
display: none;
|
|
389
400
|
}
|
|
390
401
|
._ganttToday_1oyhk_1 {
|
|
@@ -578,7 +589,7 @@
|
|
|
578
589
|
user-select: none;
|
|
579
590
|
stroke-width: 0;
|
|
580
591
|
}
|
|
581
|
-
.
|
|
592
|
+
._ganttVerticalContainer_19ply_1 {
|
|
582
593
|
overflow-x: scroll;
|
|
583
594
|
overflow-y: hidden;
|
|
584
595
|
font-size: 0;
|
|
@@ -590,16 +601,16 @@
|
|
|
590
601
|
height: 100%;
|
|
591
602
|
}
|
|
592
603
|
|
|
593
|
-
.
|
|
604
|
+
._ganttVerticalContainer_19ply_1::-webkit-scrollbar {
|
|
594
605
|
width: 1rem;
|
|
595
606
|
height: 1rem;
|
|
596
607
|
}
|
|
597
608
|
|
|
598
|
-
.
|
|
609
|
+
._ganttVerticalContainer_19ply_1::-webkit-scrollbar-corner {
|
|
599
610
|
background: transparent;
|
|
600
611
|
}
|
|
601
612
|
|
|
602
|
-
.
|
|
613
|
+
._ganttVerticalContainer_19ply_1::-webkit-scrollbar-thumb {
|
|
603
614
|
border: 4px solid transparent;
|
|
604
615
|
/*noinspection CssUnresolvedCustomProperty*/
|
|
605
616
|
background: var(--gantt-scrollbar-thumb-color);
|
|
@@ -607,20 +618,24 @@
|
|
|
607
618
|
background-clip: padding-box;
|
|
608
619
|
}
|
|
609
620
|
|
|
610
|
-
.
|
|
621
|
+
._ganttVerticalContainer_19ply_1::-webkit-scrollbar-thumb:hover {
|
|
611
622
|
border: 2px solid transparent;
|
|
612
623
|
/*noinspection CssUnresolvedCustomProperty*/
|
|
613
624
|
background: var(--gantt-scrollbar-thumb-color);
|
|
614
625
|
background-clip: padding-box;
|
|
615
626
|
}
|
|
616
627
|
|
|
617
|
-
.
|
|
628
|
+
._horizontalContainer_19ply_73 {
|
|
618
629
|
margin: 0;
|
|
619
630
|
padding: 0;
|
|
620
631
|
overflow: hidden;
|
|
621
632
|
}
|
|
622
633
|
|
|
623
|
-
.
|
|
634
|
+
._horizontalContainer_19ply_73 {
|
|
635
|
+
position: relative;
|
|
636
|
+
}
|
|
637
|
+
|
|
638
|
+
._wrapper_19ply_93 {
|
|
624
639
|
display: flex;
|
|
625
640
|
padding: 0;
|
|
626
641
|
margin: 0;
|
|
@@ -632,9 +647,28 @@
|
|
|
632
647
|
border-bottom: 1px solid var(--gantt-divider-color);
|
|
633
648
|
}
|
|
634
649
|
|
|
635
|
-
.
|
|
650
|
+
._calendarDragging_19ply_117 {
|
|
636
651
|
cursor: grabbing;
|
|
637
652
|
}
|
|
653
|
+
|
|
654
|
+
._loadingOverlay_19ply_125 {
|
|
655
|
+
position: absolute;
|
|
656
|
+
inset: 0;
|
|
657
|
+
background: rgba(255, 255, 255, 0.6);
|
|
658
|
+
z-index: 9999;
|
|
659
|
+
pointer-events: auto;
|
|
660
|
+
}
|
|
661
|
+
|
|
662
|
+
._loadingOverlayBody_19ply_141 {
|
|
663
|
+
position: absolute;
|
|
664
|
+
left: 0;
|
|
665
|
+
right: 0;
|
|
666
|
+
top: 0;
|
|
667
|
+
bottom: 0;
|
|
668
|
+
background: rgba(255, 255, 255, 0.6);
|
|
669
|
+
z-index: 3;
|
|
670
|
+
pointer-events: auto;
|
|
671
|
+
}
|
|
638
672
|
/*noinspection CssUnresolvedCustomProperty*/
|
|
639
673
|
._menuOption_1c3e3_3 {
|
|
640
674
|
display: flex;
|
|
@@ -368,6 +368,12 @@ export interface GanttProps {
|
|
|
368
368
|
* Custom color for progress bars. If not provided, theme progress colors are used.
|
|
369
369
|
*/
|
|
370
370
|
progressColor?: string;
|
|
371
|
+
/**
|
|
372
|
+
* When true, disables user interactions with the gantt and task list and
|
|
373
|
+
* shows a loading/disabled state. Useful while external updates are in
|
|
374
|
+
* progress to prevent rapid user actions.
|
|
375
|
+
*/
|
|
376
|
+
isLoading?: boolean;
|
|
371
377
|
}
|
|
372
378
|
export interface GanttTaskBarActions {
|
|
373
379
|
allowMoveTaskBar?: (action: TaskBarMoveAction, task: RenderTask) => boolean;
|
package/package.json
CHANGED