gantt-task-react-v 1.1.20 → 1.2.0

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