gantt-task-react-v 1.4.5 → 1.4.7

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.
@@ -4589,7 +4589,7 @@ const tooltipDefaultContainerTexts = "_tooltipDefaultContainerTexts_16o9s_17";
4589
4589
  const tooltipDefaultContainerParagraph = "_tooltipDefaultContainerParagraph_16o9s_31";
4590
4590
  const tooltipDetailsContainer = "_tooltipDetailsContainer_16o9s_47";
4591
4591
  const tooltipDetailsContainerHidden = "_tooltipDetailsContainerHidden_16o9s_71";
4592
- const styles$l = {
4592
+ const styles$m = {
4593
4593
  tooltipDefaultContainer,
4594
4594
  tooltipDefaultContainerTexts,
4595
4595
  tooltipDefaultContainerParagraph,
@@ -4632,26 +4632,26 @@ const StandardTooltipContent = ({ task }) => {
4632
4632
  return /* @__PURE__ */ jsxs(
4633
4633
  "div",
4634
4634
  {
4635
- className: styles$l.tooltipDefaultContainer,
4635
+ className: styles$m.tooltipDefaultContainer,
4636
4636
  style: { fontSize: "var(--gantt-font-size)" },
4637
4637
  children: [
4638
4638
  /* @__PURE__ */ jsx("b", { style: { fontSize: "var(--gantt-font-size)" }, children: `${task.name}: ${task.start.getDate()}-${task.start.getMonth() + 1}-${task.start.getFullYear()} - ${task.end.getDate()}-${task.end.getMonth() + 1}-${task.end.getFullYear()}` }),
4639
- /* @__PURE__ */ jsxs("div", { className: styles$l.tooltipDefaultContainerTexts, children: [
4639
+ /* @__PURE__ */ jsxs("div", { className: styles$m.tooltipDefaultContainerTexts, children: [
4640
4640
  task.end.getTime() - task.start.getTime() !== 0 && /* @__PURE__ */ jsx(
4641
4641
  "p",
4642
4642
  {
4643
- className: styles$l.tooltipDefaultContainerParagraph,
4643
+ className: styles$m.tooltipDefaultContainerParagraph,
4644
4644
  children: `${locale.tooltip.duration},: ${~~((task.end.getTime() - task.start.getTime()) / (1e3 * 60 * 60 * 24))} ${locale.suffix.days}`
4645
4645
  }
4646
4646
  ),
4647
- !!locale.tooltip.progress && /* @__PURE__ */ jsx("p", { className: styles$l.tooltipDefaultContainerParagraph, children: !!task.progress && `${locale.tooltip.progress}: ${task.progress} %` })
4647
+ !!locale.tooltip.progress && /* @__PURE__ */ jsx("p", { className: styles$m.tooltipDefaultContainerParagraph, children: !!task.progress && `${locale.tooltip.progress}: ${task.progress} %` })
4648
4648
  ] })
4649
4649
  ]
4650
4650
  }
4651
4651
  );
4652
4652
  };
4653
4653
  const scroll = "_scroll_hp3qb_1";
4654
- const styles$k = {
4654
+ const styles$l = {
4655
4655
  scroll
4656
4656
  };
4657
4657
  const VerticalScroll = ({
@@ -4672,7 +4672,7 @@ const VerticalScroll = ({
4672
4672
  marginLeft: rtl ? void 0 : "-1rem",
4673
4673
  pointerEvents: isChangeInProgress ? "none" : void 0
4674
4674
  },
4675
- className: styles$k.scroll,
4675
+ className: styles$l.scroll,
4676
4676
  onScroll,
4677
4677
  ref: verticalScrollbarRef,
4678
4678
  children: /* @__PURE__ */ jsx("div", { style: { height: ganttFullHeight, width: 1 } })
@@ -4750,7 +4750,7 @@ const dragging = "_dragging_16z6n_15";
4750
4750
  const taskListExpander = "_taskListExpander_16z6n_23";
4751
4751
  const taskListEmptyExpander = "_taskListEmptyExpander_16z6n_45";
4752
4752
  const taskName = "_taskName_16z6n_55";
4753
- const styles$j = {
4753
+ const styles$k = {
4754
4754
  taskListNameWrapper,
4755
4755
  dragging,
4756
4756
  taskListExpander,
@@ -4817,7 +4817,7 @@ const TitleColumn = ({
4817
4817
  () => getExpanderSymbol(hasChildren, isClosed, expandIconWidth, icons),
4818
4818
  [hasChildren, isClosed, expandIconWidth, icons]
4819
4819
  );
4820
- const title = isShowTaskNumbers ? `${indexStr} ${name}` : name;
4820
+ const title2 = isShowTaskNumbers ? `${indexStr} ${name}` : name;
4821
4821
  const onClick = useCallback(() => {
4822
4822
  if (task.type !== "empty") {
4823
4823
  onExpanderClick(task);
@@ -4827,16 +4827,16 @@ const TitleColumn = ({
4827
4827
  "div",
4828
4828
  {
4829
4829
  "data-testid": `title-table-cell-${name}`,
4830
- className: `${styles$j.taskListNameWrapper}`,
4830
+ className: `${styles$k.taskListNameWrapper}`,
4831
4831
  style: {
4832
4832
  paddingLeft: depth * nestedTaskNameOffset
4833
4833
  },
4834
- title,
4834
+ title: title2,
4835
4835
  children: [
4836
4836
  /* @__PURE__ */ jsx(
4837
4837
  "div",
4838
4838
  {
4839
- className: `gantt-expander ${styles$j.taskListExpander} ${!hasChildren ? styles$j.taskListEmptyExpander : ""}`,
4839
+ className: `gantt-expander ${styles$k.taskListExpander} ${!hasChildren ? styles$k.taskListEmptyExpander : ""}`,
4840
4840
  style: {
4841
4841
  left: depth * nestedTaskNameOffset
4842
4842
  },
@@ -4847,7 +4847,7 @@ const TitleColumn = ({
4847
4847
  /* @__PURE__ */ jsxs(
4848
4848
  "div",
4849
4849
  {
4850
- className: styles$j.taskName,
4850
+ className: styles$k.taskName,
4851
4851
  style: { fontWeight: isProject ? "bold" : "regular" },
4852
4852
  children: [
4853
4853
  isShowTaskNumbers && /* @__PURE__ */ jsxs("b", { children: [
@@ -4902,7 +4902,7 @@ const DependenciesColumn = ({
4902
4902
  return /* @__PURE__ */ jsx(Fragment, { children: dependencies.map(({ name }) => name).join(", ") });
4903
4903
  };
4904
4904
  const button = "_button_l55x0_1";
4905
- const styles$i = {
4905
+ const styles$j = {
4906
4906
  button
4907
4907
  };
4908
4908
  const DeleteIcon = (props) => /* @__PURE__ */ jsxs(
@@ -4936,7 +4936,7 @@ const DeleteColumn = ({
4936
4936
  e.stopPropagation();
4937
4937
  },
4938
4938
  onClick,
4939
- className: styles$i.button,
4939
+ className: styles$j.button,
4940
4940
  children: (icons == null ? void 0 : icons.renderDeleteIcon) ? icons.renderDeleteIcon() : /* @__PURE__ */ jsx(DeleteIcon, {})
4941
4941
  }
4942
4942
  );
@@ -4971,7 +4971,7 @@ const EditColumn = ({
4971
4971
  e.stopPropagation();
4972
4972
  },
4973
4973
  onClick,
4974
- className: styles$i.button,
4974
+ className: styles$j.button,
4975
4975
  children: (icons == null ? void 0 : icons.renderEditIcon) ? icons.renderEditIcon() : /* @__PURE__ */ jsx(EditIcon, {})
4976
4976
  }
4977
4977
  );
@@ -5012,52 +5012,52 @@ const AddColumn = ({
5012
5012
  e.stopPropagation();
5013
5013
  },
5014
5014
  onClick,
5015
- className: styles$i.button,
5015
+ className: styles$j.button,
5016
5016
  children: (icons == null ? void 0 : icons.renderAddIcon) ? icons.renderAddIcon() : /* @__PURE__ */ jsx(AddIcon, {})
5017
5017
  }
5018
5018
  );
5019
5019
  };
5020
5020
  function useTaskListColumnsBuilder() {
5021
5021
  const createNameColumn = useCallback(
5022
- (title, width) => {
5022
+ (title2, width) => {
5023
5023
  return {
5024
5024
  id: "TitleColumn",
5025
5025
  component: TitleColumn,
5026
5026
  width: width || 120,
5027
- title
5027
+ title: title2
5028
5028
  };
5029
5029
  },
5030
5030
  []
5031
5031
  );
5032
5032
  const createStartDateColumn = useCallback(
5033
- (title, width) => {
5033
+ (title2, width) => {
5034
5034
  return {
5035
5035
  id: "DateStartColumn",
5036
5036
  component: DateStartColumn,
5037
5037
  width: width || 60,
5038
- title
5038
+ title: title2
5039
5039
  };
5040
5040
  },
5041
5041
  []
5042
5042
  );
5043
5043
  const createEndDateColumn = useCallback(
5044
- (title, width) => {
5044
+ (title2, width) => {
5045
5045
  return {
5046
5046
  id: "DateEndColumn",
5047
5047
  component: DateEndColumn,
5048
5048
  width: width || 60,
5049
- title
5049
+ title: title2
5050
5050
  };
5051
5051
  },
5052
5052
  []
5053
5053
  );
5054
5054
  const createDependenciesColumn = useCallback(
5055
- (title, width) => {
5055
+ (title2, width) => {
5056
5056
  return {
5057
5057
  id: "DependenciesColumn",
5058
5058
  component: DependenciesColumn,
5059
5059
  width: width || 90,
5060
- title
5060
+ title: title2
5061
5061
  };
5062
5062
  },
5063
5063
  []
@@ -5521,7 +5521,7 @@ const ganttTable_HeaderMoveTask = "_ganttTable_HeaderMoveTask_5goa0_27";
5521
5521
  const ganttTable_HeaderSeparator = "_ganttTable_HeaderSeparator_5goa0_39";
5522
5522
  const ganttTable_HeaderItem = "_ganttTable_HeaderItem_5goa0_53";
5523
5523
  const resizer = "_resizer_5goa0_77";
5524
- const styles$h = {
5524
+ const styles$i = {
5525
5525
  ganttTable,
5526
5526
  ganttTable_Header,
5527
5527
  ganttTable_HeaderMoveTask,
@@ -5570,7 +5570,7 @@ const TaskListTableHeadersDefaultInner = ({
5570
5570
  return /* @__PURE__ */ jsx(
5571
5571
  "div",
5572
5572
  {
5573
- className: styles$h.ganttTable,
5573
+ className: styles$i.ganttTable,
5574
5574
  style: {
5575
5575
  fontFamily: "var(--gantt-font-family)",
5576
5576
  fontSize: "var(--gantt-font-size)"
@@ -5578,18 +5578,18 @@ const TaskListTableHeadersDefaultInner = ({
5578
5578
  children: /* @__PURE__ */ jsxs(
5579
5579
  "div",
5580
5580
  {
5581
- className: styles$h.ganttTable_Header,
5581
+ className: styles$i.ganttTable_Header,
5582
5582
  style: {
5583
5583
  height: headerHeight - 2
5584
5584
  },
5585
5585
  children: [
5586
- canMoveTasks && /* @__PURE__ */ jsx("div", { className: styles$h.ganttTable_HeaderMoveTask }),
5587
- columns.map(({ title, width, canResize }, index2) => {
5586
+ canMoveTasks && /* @__PURE__ */ jsx("div", { className: styles$i.ganttTable_HeaderMoveTask }),
5587
+ columns.map(({ title: title2, width, canResize }, index2) => {
5588
5588
  return /* @__PURE__ */ jsxs(Fragment$1, { children: [
5589
- index2 > 0 && !!title && /* @__PURE__ */ jsx(
5589
+ index2 > 0 && !!title2 && /* @__PURE__ */ jsx(
5590
5590
  "div",
5591
5591
  {
5592
- className: styles$h.ganttTable_HeaderSeparator,
5592
+ className: styles$i.ganttTable_HeaderSeparator,
5593
5593
  style: {
5594
5594
  height: headerHeight * 0.5,
5595
5595
  marginTop: headerHeight * 0.2
@@ -5599,20 +5599,20 @@ const TaskListTableHeadersDefaultInner = ({
5599
5599
  /* @__PURE__ */ jsxs(
5600
5600
  "div",
5601
5601
  {
5602
- "data-testid": `table-column-header-${title}`,
5603
- className: styles$h.ganttTable_HeaderItem,
5602
+ "data-testid": `table-column-header-${title2}`,
5603
+ className: styles$i.ganttTable_HeaderItem,
5604
5604
  style: {
5605
5605
  minWidth: width,
5606
5606
  maxWidth: width,
5607
5607
  ...pinnedStyles[index2]
5608
5608
  },
5609
5609
  children: [
5610
- title,
5611
- canResizeColumns && canResize !== false && !!title && /* @__PURE__ */ jsx(
5610
+ title2,
5611
+ canResizeColumns && canResize !== false && !!title2 && /* @__PURE__ */ jsx(
5612
5612
  "div",
5613
5613
  {
5614
- "data-testid": `table-column-header-resize-handle-${title}`,
5615
- className: styles$h.resizer,
5614
+ "data-testid": `table-column-header-resize-handle-${title2}`,
5615
+ className: styles$i.resizer,
5616
5616
  onMouseDown: (event) => {
5617
5617
  onColumnResizeStart(index2, event.clientX);
5618
5618
  },
@@ -9826,7 +9826,7 @@ function normalizeLocalDisabled(localDisabled, globalDisabled) {
9826
9826
  }
9827
9827
  [KeyboardCode.Down, KeyboardCode.Right, KeyboardCode.Up, KeyboardCode.Left];
9828
9828
  const taskListWrapper$1 = "_taskListWrapper_196te_3";
9829
- const styles$g = {
9829
+ const styles$h = {
9830
9830
  taskListWrapper: taskListWrapper$1
9831
9831
  };
9832
9832
  function getDragDepth(offset2, indentationWidth2) {
@@ -10012,7 +10012,7 @@ const dragIndicator = "_dragIndicator_1yqtr_99";
10012
10012
  const dragIndicatorIcon = "_dragIndicatorIcon_1yqtr_119";
10013
10013
  const isCut = "_isCut_1yqtr_135";
10014
10014
  const taskListCell = "_taskListCell_1yqtr_167";
10015
- const styles$f = {
10015
+ const styles$g = {
10016
10016
  taskListTableRow,
10017
10017
  isAfter,
10018
10018
  isBefore,
@@ -10152,18 +10152,18 @@ const TaskListTableRowInner = forwardRef(
10152
10152
  return isSelected ? "var(--gantt-table-selected-task-background-color)" : isEven ? "var(--gantt-table-even-background-color)" : void 0;
10153
10153
  }, [isEven, isOverlay2, isSelected]);
10154
10154
  const rowClassName = useMemo(() => {
10155
- const classNames = [styles$f.taskListTableRow];
10155
+ const classNames = [styles$g.taskListTableRow];
10156
10156
  if (moveOverPosition === "after") {
10157
- classNames.push(styles$f.isAfter);
10157
+ classNames.push(styles$g.isAfter);
10158
10158
  }
10159
10159
  if (moveOverPosition === "before") {
10160
- classNames.push(styles$f.isBefore);
10160
+ classNames.push(styles$g.isBefore);
10161
10161
  }
10162
10162
  if (isOverlay2 && !isDragging) {
10163
- classNames.push(styles$f.isOverlay);
10163
+ classNames.push(styles$g.isOverlay);
10164
10164
  }
10165
10165
  if (isCut2) {
10166
- classNames.push(styles$f.isCut);
10166
+ classNames.push(styles$g.isCut);
10167
10167
  }
10168
10168
  return classNames.join(" ");
10169
10169
  }, [isCut2, moveOverPosition, isOverlay2, isDragging]);
@@ -10211,12 +10211,12 @@ const TaskListTableRowInner = forwardRef(
10211
10211
  },
10212
10212
  onContextMenu,
10213
10213
  children: [
10214
- task.type !== "project" && task.id !== "no-project-asigned" && !isOverlay2 && moveHandleProps ? /* @__PURE__ */ jsx("div", { className: `${styles$f.dragIndicator}`, ...moveHandleProps, children: /* @__PURE__ */ jsx(DragIndicatorIcon, { className: styles$f.dragIndicatorIcon }) }) : /* @__PURE__ */ jsx("div", {}),
10214
+ task.type !== "project" && task.id !== "no-project-asigned" && !isOverlay2 && moveHandleProps ? /* @__PURE__ */ jsx("div", { className: `${styles$g.dragIndicator}`, ...moveHandleProps, children: /* @__PURE__ */ jsx(DragIndicatorIcon, { className: styles$g.dragIndicatorIcon }) }) : /* @__PURE__ */ jsx("div", {}),
10215
10215
  columns.map(({ id: id2, component: Component, width }, index2) => {
10216
10216
  return /* @__PURE__ */ jsx(
10217
10217
  "div",
10218
10218
  {
10219
- className: styles$f.taskListCell,
10219
+ className: styles$g.taskListCell,
10220
10220
  style: {
10221
10221
  minWidth: width,
10222
10222
  maxWidth: width,
@@ -10627,7 +10627,7 @@ const TaskListSortableTableDefaultInner = (props) => {
10627
10627
  children: /* @__PURE__ */ jsx(
10628
10628
  "div",
10629
10629
  {
10630
- className: styles$g.taskListWrapper,
10630
+ className: styles$h.taskListWrapper,
10631
10631
  style: {
10632
10632
  fontFamily: "var(--gantt-font-family)",
10633
10633
  fontSize: "var(--gantt-font-size)"
@@ -10666,7 +10666,7 @@ const TaskListSortableTableDefaultInner = (props) => {
10666
10666
  };
10667
10667
  const TaskListSortableTable = memo(TaskListSortableTableDefaultInner);
10668
10668
  const taskListWrapper = "_taskListWrapper_196te_3";
10669
- const styles$e = {
10669
+ const styles$f = {
10670
10670
  taskListWrapper
10671
10671
  };
10672
10672
  const TaskListTableDefaultInner = ({
@@ -10712,7 +10712,7 @@ const TaskListTableDefaultInner = ({
10712
10712
  return /* @__PURE__ */ jsx(
10713
10713
  "div",
10714
10714
  {
10715
- className: styles$e.taskListWrapper,
10715
+ className: styles$f.taskListWrapper,
10716
10716
  style: {
10717
10717
  fontFamily: "var(--gantt-font-family)",
10718
10718
  fontSize: "var(--gantt-font-size)"
@@ -10730,7 +10730,7 @@ const tableWrapper = "_tableWrapper_yoz76_159";
10730
10730
  const scrollToTop = "_scrollToTop_yoz76_173";
10731
10731
  const scrollToBottom = "_scrollToBottom_yoz76_189";
10732
10732
  const hidden = "_hidden_yoz76_205";
10733
- const styles$d = {
10733
+ const styles$e = {
10734
10734
  taskListRoot,
10735
10735
  taskListHorizontalScroll,
10736
10736
  taskListResizer,
@@ -10869,12 +10869,12 @@ const TaskListInner = ({
10869
10869
  ]
10870
10870
  );
10871
10871
  const RenderTaskListTable = canReorderTasks ? TaskListSortableTable : TaskListTable;
10872
- return /* @__PURE__ */ jsxs("div", { className: styles$d.taskListRoot, ref: taskListRef, children: [
10872
+ return /* @__PURE__ */ jsxs("div", { className: styles$e.taskListRoot, ref: taskListRef, children: [
10873
10873
  /* @__PURE__ */ jsxs(
10874
10874
  "div",
10875
10875
  {
10876
10876
  ref: taskListHorizontalScrollRef,
10877
- className: styles$d.taskListHorizontalScroll,
10877
+ className: styles$e.taskListHorizontalScroll,
10878
10878
  style: {
10879
10879
  width: tableWidth
10880
10880
  },
@@ -10889,12 +10889,12 @@ const TaskListInner = ({
10889
10889
  canResizeColumns
10890
10890
  }
10891
10891
  ),
10892
- /* @__PURE__ */ jsxs("div", { className: styles$d.tableWrapper, children: [
10892
+ /* @__PURE__ */ jsxs("div", { className: styles$e.tableWrapper, children: [
10893
10893
  /* @__PURE__ */ jsx(
10894
10894
  "div",
10895
10895
  {
10896
10896
  ref: taskListContainerRef,
10897
- className: styles$d.horizontalContainer,
10897
+ className: styles$e.horizontalContainer,
10898
10898
  style: {
10899
10899
  height: Math.max(
10900
10900
  ganttHeight - ((tableBottom == null ? void 0 : tableBottom.height) || 0),
@@ -10956,13 +10956,13 @@ const TaskListInner = ({
10956
10956
  /* @__PURE__ */ jsx(
10957
10957
  "div",
10958
10958
  {
10959
- className: `${styles$d.scrollToTop} ${!renderedIndexes || renderedIndexes[2] ? styles$d.hidden : ""}`
10959
+ className: `${styles$e.scrollToTop} ${!renderedIndexes || renderedIndexes[2] ? styles$e.hidden : ""}`
10960
10960
  }
10961
10961
  ),
10962
10962
  /* @__PURE__ */ jsx(
10963
10963
  "div",
10964
10964
  {
10965
- className: `${styles$d.scrollToBottom} ${!renderedIndexes || renderedIndexes[3] ? styles$d.hidden : ""}`
10965
+ className: `${styles$e.scrollToBottom} ${!renderedIndexes || renderedIndexes[3] ? styles$e.hidden : ""}`
10966
10966
  }
10967
10967
  )
10968
10968
  ] }),
@@ -10973,7 +10973,7 @@ const TaskListInner = ({
10973
10973
  /* @__PURE__ */ jsx(
10974
10974
  "div",
10975
10975
  {
10976
- className: styles$d.taskListResizer,
10976
+ className: styles$e.taskListResizer,
10977
10977
  onMouseDown: (event) => {
10978
10978
  onTableResizeStart(event.clientX);
10979
10979
  },
@@ -10990,7 +10990,7 @@ const TaskListInner = ({
10990
10990
  const TaskList = memo(TaskListInner);
10991
10991
  const ganttToday = "_ganttToday_1oyhk_1";
10992
10992
  const ganttTodayCircle = "_ganttTodayCircle_1oyhk_9";
10993
- const styles$c = {
10993
+ const styles$d = {
10994
10994
  ganttToday,
10995
10995
  ganttTodayCircle
10996
10996
  };
@@ -11056,7 +11056,7 @@ const GanttTodayInner = ({
11056
11056
  /* @__PURE__ */ jsx(
11057
11057
  "circle",
11058
11058
  {
11059
- className: styles$c.ganttTodayCircle,
11059
+ className: styles$d.ganttTodayCircle,
11060
11060
  cx: x + 1,
11061
11061
  cy: 6,
11062
11062
  r: 6,
@@ -11133,7 +11133,7 @@ const GanttTodayInner = ({
11133
11133
  /* @__PURE__ */ jsx(
11134
11134
  "circle",
11135
11135
  {
11136
- className: styles$c.ganttTodayCircle,
11136
+ className: styles$d.ganttTodayCircle,
11137
11137
  cx: x + 1,
11138
11138
  cy: 6,
11139
11139
  r: 6,
@@ -11176,7 +11176,7 @@ const calendarTopText = "_calendarTopText_15t8b_35";
11176
11176
  const calendarHeader = "_calendarHeader_15t8b_61";
11177
11177
  const calendar = "_calendar_15t8b_1";
11178
11178
  const calendarDragging$1 = "_calendarDragging_15t8b_85";
11179
- const styles$b = {
11179
+ const styles$c = {
11180
11180
  calendarBottomText,
11181
11181
  calendarTopTick,
11182
11182
  calendarTopText,
@@ -11207,10 +11207,10 @@ const TopPartOfCalendar = ({
11207
11207
  y1: y1Line,
11208
11208
  x2: x1Line,
11209
11209
  y2: y2Line,
11210
- className: styles$b.calendarTopTick
11210
+ className: styles$c.calendarTopTick
11211
11211
  }
11212
11212
  ),
11213
- value !== null && /* @__PURE__ */ jsx("text", { y: yText - 4, x: xText, className: styles$b.calendarTopText, children: value.toString().split(",")[1] ? t(value.toString().split(",")[0]) + "," + value.toString().split(",")[1] : value.toString().length >= 3 ? t(value.toString()) : value })
11213
+ value !== null && /* @__PURE__ */ jsx("text", { y: yText - 4, x: xText, className: styles$c.calendarTopText, children: value.toString().split(",")[1] ? t(value.toString().split(",")[0]) + "," + value.toString().split(",")[1] : value.toString().length >= 3 ? t(value.toString()) : value })
11214
11214
  ] });
11215
11215
  };
11216
11216
  const defaultRenderBottomHeader = (date, viewMode, dateSetup, index2, isUnknownDates) => {
@@ -11370,7 +11370,7 @@ const Calendar = ({
11370
11370
  [renderTopHeader, dateSetup]
11371
11371
  );
11372
11372
  const renderBottomText = (x, y, key2, text) => {
11373
- return /* @__PURE__ */ jsx("g", { className: styles$b.calendarBottomText, children: /* @__PURE__ */ jsx(
11373
+ return /* @__PURE__ */ jsx("g", { className: styles$c.calendarBottomText, children: /* @__PURE__ */ jsx(
11374
11374
  "text",
11375
11375
  {
11376
11376
  y,
@@ -11665,7 +11665,7 @@ const Calendar = ({
11665
11665
  scrollLeft: scrollRef.current.scrollLeft,
11666
11666
  scrollTop: scrollRef.current.scrollTop
11667
11667
  };
11668
- calendarContainer.classList.add(styles$b.calendarDragging);
11668
+ calendarContainer.classList.add(styles$c.calendarDragging);
11669
11669
  };
11670
11670
  const onScrollMove = (event) => {
11671
11671
  if (!moveStateRef.current) {
@@ -11680,7 +11680,7 @@ const Calendar = ({
11680
11680
  const onScrollEnd = (event) => {
11681
11681
  event.preventDefault();
11682
11682
  moveStateRef.current = null;
11683
- calendarContainer.classList.remove(styles$b.calendarDragging);
11683
+ calendarContainer.classList.remove(styles$c.calendarDragging);
11684
11684
  };
11685
11685
  calendarContainer.addEventListener("mousemove", onScrollMove);
11686
11686
  calendarContainer.addEventListener("mousedown", onScrollStart);
@@ -11697,7 +11697,7 @@ const Calendar = ({
11697
11697
  "g",
11698
11698
  {
11699
11699
  ref: calendarRef,
11700
- className: `${styles$b.calendar} calendar`,
11700
+ className: `${styles$c.calendar} calendar`,
11701
11701
  fontSize: "var(--gantt-font-size)",
11702
11702
  fontFamily: "var(--gantt-font-family)",
11703
11703
  children: [
@@ -11708,7 +11708,7 @@ const Calendar = ({
11708
11708
  y: 0,
11709
11709
  width: fullSvgWidth,
11710
11710
  height: headerHeight,
11711
- className: styles$b.calendarHeader
11711
+ className: styles$c.calendarHeader
11712
11712
  }
11713
11713
  ),
11714
11714
  topValues,
@@ -11727,12 +11727,14 @@ const generateTrianglePoints = (x, y, width, isLeftDirected) => {
11727
11727
  ${x - width},${y - width}
11728
11728
  ${x - width},${y + width}`;
11729
11729
  };
11730
- const arrow_clickable = "_arrow_clickable_1xrbf_1";
11731
- const mainPath = "_mainPath_1xrbf_11";
11732
- const clickZone = "_clickZone_1xrbf_57";
11733
- const styles$a = {
11730
+ const arrow_clickable = "_arrow_clickable_3u3q2_1";
11731
+ const mainPath = "_mainPath_3u3q2_11";
11732
+ const arrow_active = "_arrow_active_3u3q2_37";
11733
+ const clickZone = "_clickZone_3u3q2_81";
11734
+ const styles$b = {
11734
11735
  arrow_clickable,
11735
11736
  mainPath,
11737
+ arrow_active,
11736
11738
  clickZone
11737
11739
  };
11738
11740
  const ArrowInner = (props) => {
@@ -11753,6 +11755,8 @@ const ArrowInner = (props) => {
11753
11755
  isCritical,
11754
11756
  rtl,
11755
11757
  onArrowDoubleClick = void 0,
11758
+ onArrowClick = void 0,
11759
+ isActive = false,
11756
11760
  fromConnectionIndex = 0,
11757
11761
  fromTotalConnections = 1,
11758
11762
  toConnectionIndex = 0,
@@ -11771,6 +11775,11 @@ const ArrowInner = (props) => {
11771
11775
  onArrowDoubleClick(taskFrom, taskTo);
11772
11776
  }
11773
11777
  }, [taskFrom, taskTo, onArrowDoubleClick]);
11778
+ const handleClick = useCallback(() => {
11779
+ if (onArrowClick) {
11780
+ onArrowClick(taskFrom, taskTo);
11781
+ }
11782
+ }, [taskFrom, taskTo, onArrowClick]);
11774
11783
  const [path, trianglePoints] = useMemo(
11775
11784
  () => drownPathAndTriangle(
11776
11785
  indexFrom,
@@ -11822,12 +11831,13 @@ const ArrowInner = (props) => {
11822
11831
  "g",
11823
11832
  {
11824
11833
  "data-testid": `task-arrow-${targetFrom}-${taskFrom.name}-${targetTo}-${taskTo.name}`,
11825
- className: `arrow ${styles$a.arrow_clickable}`,
11834
+ className: `arrow ${styles$b.arrow_clickable}${isActive ? ` ${styles$b.arrow_active}` : ""}`,
11826
11835
  onDoubleClick,
11836
+ onClick: handleClick,
11827
11837
  children: [
11828
- onArrowDoubleClick && /* @__PURE__ */ jsx("path", { d: path, className: styles$a.clickZone }),
11829
- /* @__PURE__ */ jsx("path", { className: `${styles$a.mainPath} arrowMainPath`, d: path }),
11830
- /* @__PURE__ */ jsx("polygon", { className: "polygon arrowPolygon", points: trianglePoints })
11838
+ (onArrowDoubleClick || onArrowClick) && /* @__PURE__ */ jsx("path", { d: path, className: styles$b.clickZone }),
11839
+ /* @__PURE__ */ jsx("path", { className: styles$b.mainPath, d: path }),
11840
+ /* @__PURE__ */ jsx("polygon", { className: "polygon", points: trianglePoints })
11831
11841
  ]
11832
11842
  }
11833
11843
  ) });
@@ -11922,7 +11932,7 @@ const drownPathAndTriangle = (indexForm, fromX1, fromX2, fromY, isTaskFromLeftSi
11922
11932
  return [path, trianglePoints];
11923
11933
  };
11924
11934
  const relationLine = "_relationLine_wh2qy_1";
11925
- const styles$9 = {
11935
+ const styles$a = {
11926
11936
  relationLine
11927
11937
  };
11928
11938
  const RelationLine = ({
@@ -11938,7 +11948,7 @@ const RelationLine = ({
11938
11948
  x2,
11939
11949
  y1,
11940
11950
  y2,
11941
- className: styles$9.relationLine
11951
+ className: styles$a.relationLine
11942
11952
  }
11943
11953
  );
11944
11954
  };
@@ -12161,7 +12171,7 @@ const barHandle = "_barHandle_5jhkr_11";
12161
12171
  const barHandleImportantVisible = "_barHandleImportantVisible_5jhkr_37";
12162
12172
  const barHandleImportantHidden = "_barHandleImportantHidden_5jhkr_47";
12163
12173
  const barBackground = "_barBackground_5jhkr_57";
12164
- const styles$8 = {
12174
+ const styles$9 = {
12165
12175
  barWrapper,
12166
12176
  barHandle,
12167
12177
  barHandleImportantVisible,
@@ -12263,7 +12273,7 @@ const BarDisplay = ({
12263
12273
  ry: barCornerRadius,
12264
12274
  rx: barCornerRadius,
12265
12275
  fill: barColor,
12266
- className: styles$8.barBackground
12276
+ className: styles$9.barBackground
12267
12277
  }
12268
12278
  ),
12269
12279
  showProgress && /* @__PURE__ */ jsx(
@@ -12320,7 +12330,7 @@ const BarDateHandle = ({
12320
12330
  const projectWrapper = "_projectWrapper_1maxt_1";
12321
12331
  const projectBackground = "_projectBackground_1maxt_11";
12322
12332
  const projectTop = "_projectTop_1maxt_21";
12323
- const styles$7 = {
12333
+ const styles$8 = {
12324
12334
  projectWrapper,
12325
12335
  projectBackground,
12326
12336
  projectTop
@@ -12401,7 +12411,7 @@ const ProjectDisplay = ({
12401
12411
  startMoveFullTask(firstTouch.clientX);
12402
12412
  }
12403
12413
  },
12404
- className: styles$7.projectWrapper,
12414
+ className: styles$8.projectWrapper,
12405
12415
  children: [
12406
12416
  /* @__PURE__ */ jsx(
12407
12417
  "rect",
@@ -12413,7 +12423,7 @@ const ProjectDisplay = ({
12413
12423
  height: taskHeight,
12414
12424
  rx: barCornerRadius,
12415
12425
  ry: barCornerRadius,
12416
- className: styles$7.projectBackground
12426
+ className: styles$8.projectBackground
12417
12427
  }
12418
12428
  ),
12419
12429
  showProgress && /* @__PURE__ */ jsx(
@@ -12438,13 +12448,13 @@ const ProjectDisplay = ({
12438
12448
  height: taskHalfHeight,
12439
12449
  rx: barCornerRadius,
12440
12450
  ry: barCornerRadius,
12441
- className: styles$7.projectTop
12451
+ className: styles$8.projectTop
12442
12452
  }
12443
12453
  ),
12444
12454
  /* @__PURE__ */ jsx(
12445
12455
  "polygon",
12446
12456
  {
12447
- className: styles$7.projectTop,
12457
+ className: styles$8.projectTop,
12448
12458
  points: projectLeftTriangle,
12449
12459
  fill: barColor
12450
12460
  }
@@ -12452,7 +12462,7 @@ const ProjectDisplay = ({
12452
12462
  /* @__PURE__ */ jsx(
12453
12463
  "polygon",
12454
12464
  {
12455
- className: styles$7.projectTop,
12465
+ className: styles$8.projectTop,
12456
12466
  points: projectRightTriangle,
12457
12467
  fill: barColor
12458
12468
  }
@@ -12464,7 +12474,7 @@ const ProjectDisplay = ({
12464
12474
  const barRelationHandleWrapper = "_barRelationHandleWrapper_eluno_1";
12465
12475
  const barRelationHandle = "_barRelationHandle_eluno_1";
12466
12476
  const barRelationHandle_drawMode = "_barRelationHandle_drawMode_eluno_9";
12467
- const styles$6 = {
12477
+ const styles$7 = {
12468
12478
  barRelationHandleWrapper,
12469
12479
  barRelationHandle,
12470
12480
  barRelationHandle_drawMode
@@ -12484,7 +12494,7 @@ const BarRelationHandleInner = ({
12484
12494
  cx: x,
12485
12495
  cy: y,
12486
12496
  r: radius,
12487
- className: `${styles$6.barRelationHandle} ${isRelationDrawMode ? styles$6.barRelationHandle_drawMode : ""}`,
12497
+ className: `${styles$7.barRelationHandle} ${isRelationDrawMode ? styles$7.barRelationHandle_drawMode : ""}`,
12488
12498
  onMouseDown: startDrawRelation,
12489
12499
  onTouchStart: startDrawRelation
12490
12500
  }
@@ -12497,7 +12507,7 @@ const BarRelationWrapperInner = forwardRef(({ className, children }, ref) => {
12497
12507
  {
12498
12508
  ref,
12499
12509
  tabIndex: 0,
12500
- className: `${styles$6.barRelationHandleWrapper} ${className || ""}`,
12510
+ className: `${styles$7.barRelationHandleWrapper} ${className || ""}`,
12501
12511
  children
12502
12512
  }
12503
12513
  );
@@ -12638,12 +12648,12 @@ const Bar = (props) => {
12638
12648
  return () => {
12639
12649
  };
12640
12650
  }, []);
12641
- return /* @__PURE__ */ jsxs(BarRelationWrapper, { ref: rootRef, className: styles$8.barWrapper, children: [
12651
+ return /* @__PURE__ */ jsxs(BarRelationWrapper, { ref: rootRef, className: styles$9.barWrapper, children: [
12642
12652
  task.id !== "no-project-asigned" && renderBarDisplay(),
12643
12653
  ctrlPressed && isDateChangeable(task) && /* @__PURE__ */ jsx(
12644
12654
  BarDateHandle,
12645
12655
  {
12646
- className: `${styles$8.barHandle} ${isMovingDate ? styles$8.barHandleImportantVisible : ""} ${isMovingProgress || isRelationDrawMode ? styles$8.barHandleImportantHidden : ""}`,
12656
+ className: `${styles$9.barHandle} ${isMovingDate ? styles$9.barHandleImportantVisible : ""} ${isMovingProgress || isRelationDrawMode ? styles$9.barHandleImportantHidden : ""}`,
12647
12657
  dataTestId: `bar-date-handle-left-${task.id}`,
12648
12658
  barCornerRadius,
12649
12659
  height: handleHeight,
@@ -12656,7 +12666,7 @@ const Bar = (props) => {
12656
12666
  ctrlPressed && isDateChangeable(task) && /* @__PURE__ */ jsx(
12657
12667
  BarDateHandle,
12658
12668
  {
12659
- className: `${styles$8.barHandle} ${isMovingDate ? styles$8.barHandleImportantVisible : ""} ${isMovingProgress || isRelationDrawMode ? styles$8.barHandleImportantHidden : ""}`,
12669
+ className: `${styles$9.barHandle} ${isMovingDate ? styles$9.barHandleImportantVisible : ""} ${isMovingProgress || isRelationDrawMode ? styles$9.barHandleImportantHidden : ""}`,
12660
12670
  dataTestId: `bar-date-handle-right-${task.id}`,
12661
12671
  barCornerRadius,
12662
12672
  height: handleHeight,
@@ -12672,7 +12682,7 @@ const Bar = (props) => {
12672
12682
  };
12673
12683
  const milestoneWrapper = "_milestoneWrapper_vcirf_1";
12674
12684
  const milestoneBackground = "_milestoneBackground_vcirf_11";
12675
- const styles$5 = {
12685
+ const styles$6 = {
12676
12686
  milestoneWrapper,
12677
12687
  milestoneBackground
12678
12688
  };
@@ -12702,7 +12712,7 @@ const Milestone = ({
12702
12712
  }
12703
12713
  return "var(--gantt-milestone-background-color)";
12704
12714
  }, [isSelected, isCritical]);
12705
- return /* @__PURE__ */ jsxs(BarRelationWrapper, { className: styles$5.milestoneWrapper, children: [
12715
+ return /* @__PURE__ */ jsxs(BarRelationWrapper, { className: styles$6.milestoneWrapper, children: [
12706
12716
  /* @__PURE__ */ jsx(
12707
12717
  "rect",
12708
12718
  {
@@ -12715,7 +12725,7 @@ const Milestone = ({
12715
12725
  rx: barCornerRadius,
12716
12726
  ry: barCornerRadius,
12717
12727
  transform,
12718
- className: styles$5.milestoneBackground,
12728
+ className: styles$6.milestoneBackground,
12719
12729
  onMouseDown: (e) => {
12720
12730
  e.stopPropagation();
12721
12731
  onTaskEventStart("move", e.clientX);
@@ -13041,11 +13051,11 @@ const TaskItemInner = (props) => {
13041
13051
  };
13042
13052
  const TaskItem = memo(TaskItemInner);
13043
13053
  const TaskItemWrapper = "_TaskItemWrapper_8x02m_1";
13044
- const styles$4 = {
13054
+ const styles$5 = {
13045
13055
  TaskItemWrapper
13046
13056
  };
13047
13057
  const barComparison = "_barComparison_14078_1";
13048
- const styles$3 = {
13058
+ const styles$4 = {
13049
13059
  barComparison
13050
13060
  };
13051
13061
  const BarComparison = (props) => {
@@ -13100,7 +13110,7 @@ const BarComparison = (props) => {
13100
13110
  ry: barCornerRadius,
13101
13111
  rx: barCornerRadius,
13102
13112
  fill: barColor,
13103
- className: styles$3.barComparison
13113
+ className: styles$4.barComparison
13104
13114
  }
13105
13115
  ),
13106
13116
  /* @__PURE__ */ jsx(
@@ -13149,6 +13159,8 @@ const TaskGanttContentInner = (props) => {
13149
13159
  onTaskBarDragStart,
13150
13160
  mapGlobalRowIndexToTask,
13151
13161
  onArrowDoubleClick,
13162
+ onArrowClick,
13163
+ activeArrowKey,
13152
13164
  onDoubleClick,
13153
13165
  onClick,
13154
13166
  renderedRowIndexes,
@@ -13203,13 +13215,6 @@ const TaskGanttContentInner = (props) => {
13203
13215
  getDate,
13204
13216
  startColumnIndex
13205
13217
  ]);
13206
- const [hoveredTaskId, setHoveredTaskId] = useState(null);
13207
- const handleTaskHover = useCallback((taskId) => {
13208
- setHoveredTaskId(taskId);
13209
- }, []);
13210
- const handleTaskLeave = useCallback(() => {
13211
- setHoveredTaskId(null);
13212
- }, []);
13213
13218
  const [renderedTasks, renderedArrows, renderedSelectedTasks] = useMemo(() => {
13214
13219
  if (!renderedRowIndexes) {
13215
13220
  return [null, null, null];
@@ -13307,13 +13312,11 @@ const TaskGanttContentInner = (props) => {
13307
13312
  "svg",
13308
13313
  {
13309
13314
  id: task.id,
13310
- className: `${styles$4.TaskItemWrapper} TaskItemWrapper`,
13315
+ className: `${styles$5.TaskItemWrapper} TaskItemWrapper`,
13311
13316
  x: Math.max(safeContainerX + (additionalLeftSpace || 0), 0),
13312
13317
  y: safeLevelY,
13313
13318
  width: Math.max(safeContainerWidth, 0),
13314
13319
  height: fullRowHeight,
13315
- onMouseEnter: () => handleTaskHover(task.id),
13316
- onMouseLeave: handleTaskLeave,
13317
13320
  children: /* @__PURE__ */ jsx(
13318
13321
  TaskItem,
13319
13322
  {
@@ -13442,8 +13445,6 @@ const TaskGanttContentInner = (props) => {
13442
13445
  y: containerY,
13443
13446
  width: safeArrowContainerWidth,
13444
13447
  height: containerHeight,
13445
- "data-from-id": source.id,
13446
- "data-to-id": taskId,
13447
13448
  children: /* @__PURE__ */ jsx(
13448
13449
  Arrow,
13449
13450
  {
@@ -13463,6 +13464,8 @@ const TaskGanttContentInner = (props) => {
13463
13464
  isCritical: isCritical2,
13464
13465
  rtl,
13465
13466
  onArrowDoubleClick,
13467
+ onArrowClick,
13468
+ isActive: activeArrowKey === `${source.id}|${taskId}`,
13466
13469
  fromConnectionIndex: getConnectionIndex(
13467
13470
  `${source.id}|${sourceTarget}|out`
13468
13471
  ),
@@ -13528,8 +13531,6 @@ const TaskGanttContentInner = (props) => {
13528
13531
  y: containerY,
13529
13532
  width: safeArrowContainerWidth,
13530
13533
  height: containerHeight,
13531
- "data-from-id": taskId,
13532
- "data-to-id": dependent.id,
13533
13534
  children: /* @__PURE__ */ jsx(
13534
13535
  Arrow,
13535
13536
  {
@@ -13549,6 +13550,8 @@ const TaskGanttContentInner = (props) => {
13549
13550
  isCritical: isCritical2,
13550
13551
  rtl,
13551
13552
  onArrowDoubleClick,
13553
+ onArrowClick,
13554
+ isActive: activeArrowKey === `${taskId}|${dependent.id}`,
13552
13555
  fromConnectionIndex: getConnectionIndex(
13553
13556
  `${taskId}|${ownTarget}|out`
13554
13557
  ),
@@ -13627,8 +13630,6 @@ const TaskGanttContentInner = (props) => {
13627
13630
  y: containerY,
13628
13631
  width: safeCW,
13629
13632
  height: containerHeight,
13630
- "data-from-id": source.id,
13631
- "data-to-id": taskId,
13632
13633
  children: /* @__PURE__ */ jsx(
13633
13634
  Arrow,
13634
13635
  {
@@ -13648,6 +13649,8 @@ const TaskGanttContentInner = (props) => {
13648
13649
  isCritical,
13649
13650
  rtl,
13650
13651
  onArrowDoubleClick,
13652
+ onArrowClick,
13653
+ isActive: activeArrowKey === `${source.id}|${taskId}`,
13651
13654
  fromConnectionIndex: getConnectionIndex(
13652
13655
  `${source.id}|${sourceTarget}|out`
13653
13656
  ),
@@ -13705,36 +13708,12 @@ const TaskGanttContentInner = (props) => {
13705
13708
  isRelationChangeable,
13706
13709
  visibleTasksMirror,
13707
13710
  onArrowDoubleClick,
13711
+ onArrowClick,
13712
+ activeArrowKey,
13708
13713
  showProgress,
13709
- progressColor,
13710
- handleTaskHover,
13711
- handleTaskLeave
13714
+ progressColor
13712
13715
  ]);
13713
- const arrowHighlightStyle = useMemo(() => {
13714
- if (!hoveredTaskId)
13715
- return null;
13716
- const safeId = CSS.escape(hoveredTaskId);
13717
- return /* @__PURE__ */ jsx("style", { children: `
13718
- g.arrows svg { opacity: 0.08 !important; transition: opacity 0.15s; }
13719
- g.arrows svg[data-from-id="${safeId}"],
13720
- g.arrows svg[data-to-id="${safeId}"] {
13721
- opacity: 1 !important;
13722
- }
13723
- g.arrows svg[data-from-id="${safeId}"] .arrowMainPath,
13724
- g.arrows svg[data-to-id="${safeId}"] .arrowMainPath {
13725
- opacity: 1 !important;
13726
- stroke-width: 2px !important;
13727
- stroke: var(--gantt-arrow-hover-color, #1976D2) !important;
13728
- }
13729
- g.arrows svg[data-from-id="${safeId}"] .arrowPolygon,
13730
- g.arrows svg[data-to-id="${safeId}"] .arrowPolygon {
13731
- fill: var(--gantt-arrow-hover-color, #1976D2) !important;
13732
- opacity: 1 !important;
13733
- }
13734
- ` });
13735
- }, [hoveredTaskId]);
13736
13716
  return /* @__PURE__ */ jsxs("g", { className: "content", children: [
13737
- arrowHighlightStyle,
13738
13717
  renderedSelectedTasks,
13739
13718
  /* @__PURE__ */ jsx("g", { children: renderedHolidays }),
13740
13719
  /* @__PURE__ */ jsx(
@@ -13771,7 +13750,7 @@ const ganttVerticalContainer = "_ganttVerticalContainer_1wr55_1";
13771
13750
  const horizontalContainer = "_horizontalContainer_1wr55_73";
13772
13751
  const wrapper = "_wrapper_1wr55_85";
13773
13752
  const calendarDragging = "_calendarDragging_1wr55_109";
13774
- const styles$2 = {
13753
+ const styles$3 = {
13775
13754
  ganttVerticalContainer,
13776
13755
  horizontalContainer,
13777
13756
  wrapper,
@@ -13855,7 +13834,7 @@ const TaskGanttInner = (props) => {
13855
13834
  scrollLeft: verticalScrollbarRef.current.scrollLeft,
13856
13835
  scrollTop: verticalScrollbarRef.current.scrollTop
13857
13836
  };
13858
- contentContainer.classList.add(styles$2.calendarDragging);
13837
+ contentContainer.classList.add(styles$3.calendarDragging);
13859
13838
  };
13860
13839
  const onScrollMove = (event) => {
13861
13840
  if (!moveStateVertRef.current) {
@@ -13888,7 +13867,7 @@ const TaskGanttInner = (props) => {
13888
13867
  event.preventDefault();
13889
13868
  moveStateVertRef.current = null;
13890
13869
  moveStateHorRef.current = null;
13891
- contentContainer.classList.remove(styles$2.calendarDragging);
13870
+ contentContainer.classList.remove(styles$3.calendarDragging);
13892
13871
  };
13893
13872
  contentContainer.addEventListener("mousemove", onScrollMove);
13894
13873
  contentContainer.addEventListener("mousedown", onScrollStart);
@@ -13904,7 +13883,7 @@ const TaskGanttInner = (props) => {
13904
13883
  return /* @__PURE__ */ jsxs(
13905
13884
  "div",
13906
13885
  {
13907
- className: styles$2.ganttVerticalContainer,
13886
+ className: styles$3.ganttVerticalContainer,
13908
13887
  ref: verticalGanttContainerRef,
13909
13888
  onScroll: onVerticalScrollbarScrollX,
13910
13889
  dir: "ltr",
@@ -13923,7 +13902,7 @@ const TaskGanttInner = (props) => {
13923
13902
  "div",
13924
13903
  {
13925
13904
  ref: horizontalContainerRef,
13926
- className: styles$2.horizontalContainer,
13905
+ className: styles$3.horizontalContainer,
13927
13906
  style: containerStyle,
13928
13907
  children: /* @__PURE__ */ jsx("div", { style: gridStyle, children: /* @__PURE__ */ jsxs(
13929
13908
  "svg",
@@ -16290,13 +16269,13 @@ function getWindowScrollBarX(element) {
16290
16269
  function getDocumentRect(element) {
16291
16270
  const html = getDocumentElement(element);
16292
16271
  const scroll2 = getNodeScroll(element);
16293
- const body = element.ownerDocument.body;
16294
- const width = max(html.scrollWidth, html.clientWidth, body.scrollWidth, body.clientWidth);
16295
- const height = max(html.scrollHeight, html.clientHeight, body.scrollHeight, body.clientHeight);
16272
+ const body2 = element.ownerDocument.body;
16273
+ const width = max(html.scrollWidth, html.clientWidth, body2.scrollWidth, body2.clientWidth);
16274
+ const height = max(html.scrollHeight, html.clientHeight, body2.scrollHeight, body2.clientHeight);
16296
16275
  let x = -scroll2.scrollLeft + getWindowScrollBarX(element);
16297
16276
  const y = -scroll2.scrollTop;
16298
- if (getComputedStyle$1(body).direction === "rtl") {
16299
- x += max(html.clientWidth, body.clientWidth) - width;
16277
+ if (getComputedStyle$1(body2).direction === "rtl") {
16278
+ x += max(html.clientWidth, body2.clientWidth) - width;
16300
16279
  }
16301
16280
  return {
16302
16281
  width,
@@ -18415,7 +18394,7 @@ const useContextMenu = (wrapperRef, scrollToTask) => {
18415
18394
  const menuOption = "_menuOption_1c3e3_3";
18416
18395
  const icon = "_icon_1c3e3_81";
18417
18396
  const label = "_label_1c3e3_89";
18418
- const styles$1 = {
18397
+ const styles$2 = {
18419
18398
  menuOption,
18420
18399
  icon,
18421
18400
  label
@@ -18509,7 +18488,7 @@ function MenuOption(props) {
18509
18488
  /* @__PURE__ */ jsxs(
18510
18489
  "button",
18511
18490
  {
18512
- className: styles$1.menuOption,
18491
+ className: styles$2.menuOption,
18513
18492
  "aria-disabled": disabled,
18514
18493
  disabled,
18515
18494
  style: {
@@ -18524,7 +18503,7 @@ function MenuOption(props) {
18524
18503
  /* @__PURE__ */ jsx(
18525
18504
  "div",
18526
18505
  {
18527
- className: styles$1.icon,
18506
+ className: styles$2.icon,
18528
18507
  style: {
18529
18508
  width: contextMenuIconWidth,
18530
18509
  color: "var(--gantt-context-menu-text-color)",
@@ -18533,7 +18512,7 @@ function MenuOption(props) {
18533
18512
  children: icon2
18534
18513
  }
18535
18514
  ),
18536
- /* @__PURE__ */ jsx("div", { className: styles$1.label, children: label2 }),
18515
+ /* @__PURE__ */ jsx("div", { className: styles$2.label, children: label2 }),
18537
18516
  children && children.length > 0 && /* @__PURE__ */ jsx(
18538
18517
  "div",
18539
18518
  {
@@ -19342,15 +19321,81 @@ const GANTT_EN_LOCALE = {
19342
19321
  const loader = "_loader_covn4_5";
19343
19322
  const l16 = "_l16_covn4_1";
19344
19323
  const loaderHidden = "_loaderHidden_covn4_49";
19345
- const styles = {
19324
+ const styles$1 = {
19346
19325
  loader,
19347
19326
  l16,
19348
19327
  loaderHidden
19349
19328
  };
19350
19329
  const GanttLoaderInner = ({ loading }) => {
19351
- return /* @__PURE__ */ jsx("div", { className: `${styles.loader} ${loading ? "" : styles.loaderHidden}` });
19330
+ return /* @__PURE__ */ jsx("div", { className: `${styles$1.loader} ${loading ? "" : styles$1.loaderHidden}` });
19352
19331
  };
19353
19332
  const GanttLoader = memo(GanttLoaderInner);
19333
+ const overlay = "_overlay_1rnqn_1";
19334
+ const drawer = "_drawer_1rnqn_19";
19335
+ const drawer_open = "_drawer_open_1rnqn_51";
19336
+ const header = "_header_1rnqn_59";
19337
+ const title = "_title_1rnqn_77";
19338
+ const closeButton = "_closeButton_1rnqn_97";
19339
+ const body = "_body_1rnqn_131";
19340
+ const styles = {
19341
+ overlay,
19342
+ drawer,
19343
+ drawer_open,
19344
+ header,
19345
+ title,
19346
+ closeButton,
19347
+ body
19348
+ };
19349
+ const GanttDrawerInner = ({
19350
+ data,
19351
+ width,
19352
+ onClose,
19353
+ renderContent
19354
+ }) => {
19355
+ const handleOverlayClick = useCallback(
19356
+ (e) => {
19357
+ e.stopPropagation();
19358
+ onClose();
19359
+ },
19360
+ [onClose]
19361
+ );
19362
+ const title2 = (data == null ? void 0 : data.type) === "task" ? data.task.name : (data == null ? void 0 : data.type) === "arrow" ? `${data.taskFrom.name} → ${data.taskTo.name}` : "";
19363
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
19364
+ data && /* @__PURE__ */ jsx("div", { className: styles.overlay, onClick: handleOverlayClick }),
19365
+ /* @__PURE__ */ jsxs(
19366
+ "div",
19367
+ {
19368
+ className: `${styles.drawer}${data ? ` ${styles.drawer_open}` : ""}`,
19369
+ style: { width },
19370
+ children: [
19371
+ /* @__PURE__ */ jsxs("div", { className: styles.header, children: [
19372
+ /* @__PURE__ */ jsx("span", { className: styles.title, children: title2 }),
19373
+ /* @__PURE__ */ jsx(
19374
+ "button",
19375
+ {
19376
+ className: styles.closeButton,
19377
+ onClick: onClose,
19378
+ "aria-label": "Close drawer",
19379
+ type: "button",
19380
+ children: /* @__PURE__ */ jsx("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", children: /* @__PURE__ */ jsx(
19381
+ "path",
19382
+ {
19383
+ d: "M12 4L4 12M4 4l8 8",
19384
+ stroke: "currentColor",
19385
+ strokeWidth: "1.5",
19386
+ strokeLinecap: "round"
19387
+ }
19388
+ ) })
19389
+ }
19390
+ )
19391
+ ] }),
19392
+ /* @__PURE__ */ jsx("div", { className: styles.body, children: data && renderContent ? renderContent(data) : null })
19393
+ ]
19394
+ }
19395
+ )
19396
+ ] });
19397
+ };
19398
+ const GanttDrawer = memo(GanttDrawerInner);
19354
19399
  const Gantt = (props) => {
19355
19400
  var _a, _b;
19356
19401
  const {
@@ -19396,7 +19441,8 @@ const Gantt = (props) => {
19396
19441
  dataDateLabel = "Data Date",
19397
19442
  showProgress = true,
19398
19443
  progressColor,
19399
- scrollToTaskId
19444
+ scrollToTaskId,
19445
+ drawer: drawerProps
19400
19446
  } = props;
19401
19447
  const ganttSVGRef = useRef(null);
19402
19448
  const wrapperRef = useRef(null);
@@ -19413,6 +19459,11 @@ const Gantt = (props) => {
19413
19459
  [theme, rowHeight]
19414
19460
  );
19415
19461
  const [waitCommitTasks, setWaitCommitTasks] = useState(false);
19462
+ const enableDrawer = (drawerProps == null ? void 0 : drawerProps.enableDrawer) ?? false;
19463
+ const drawerWidth = (drawerProps == null ? void 0 : drawerProps.drawerWidth) ?? 360;
19464
+ const renderDrawerContent = drawerProps == null ? void 0 : drawerProps.renderDrawerContent;
19465
+ const [drawerData, setDrawerData] = useState(null);
19466
+ const [activeArrowKey, setActiveArrowKey] = useState(null);
19416
19467
  const taskBar = useMemo(() => {
19417
19468
  return mergeDeepObj(
19418
19469
  {},
@@ -20502,6 +20553,34 @@ const Gantt = (props) => {
20502
20553
  },
20503
20554
  [mapTaskToGlobalIndex, taskBar, handleCommitInternal, sortedTasks]
20504
20555
  );
20556
+ const onArrowClick = useCallback(
20557
+ (taskFrom, taskTo) => {
20558
+ if (enableDrawer) {
20559
+ setActiveArrowKey(`${taskFrom.id}|${taskTo.id}`);
20560
+ setDrawerData({ type: "arrow", taskFrom, taskTo });
20561
+ }
20562
+ if (taskBar.onArrowClick) {
20563
+ taskBar.onArrowClick(taskFrom, taskTo);
20564
+ }
20565
+ },
20566
+ [enableDrawer, taskBar]
20567
+ );
20568
+ const handleTaskClick = useCallback(
20569
+ (task, _event) => {
20570
+ if (enableDrawer) {
20571
+ setActiveArrowKey(null);
20572
+ setDrawerData({ type: "task", task });
20573
+ }
20574
+ if (taskBar.onClick) {
20575
+ taskBar.onClick(task);
20576
+ }
20577
+ },
20578
+ [enableDrawer, taskBar]
20579
+ );
20580
+ const handleDrawerClose = useCallback(() => {
20581
+ setDrawerData(null);
20582
+ setActiveArrowKey(null);
20583
+ }, []);
20505
20584
  const handleAction = useHandleAction({
20506
20585
  checkTaskIdExists,
20507
20586
  childTasksMap,
@@ -20688,6 +20767,7 @@ const Gantt = (props) => {
20688
20767
  const renderTaskBarProps = useMemo(
20689
20768
  () => ({
20690
20769
  ...taskBar,
20770
+ onClick: enableDrawer ? handleTaskClick : taskBar.onClick,
20691
20771
  taskBarMovingAction: (task) => {
20692
20772
  var _a2;
20693
20773
  return task.id === ((_a2 = changeInProgress == null ? void 0 : changeInProgress.changedTask) == null ? void 0 : _a2.id) ? changeInProgress.action : null;
@@ -20714,6 +20794,8 @@ const Gantt = (props) => {
20714
20794
  onTooltipTask: onChangeTooltipTask,
20715
20795
  mapGlobalRowIndexToTask,
20716
20796
  onArrowDoubleClick,
20797
+ onArrowClick: enableDrawer ? onArrowClick : taskBar.onArrowClick,
20798
+ activeArrowKey,
20717
20799
  renderedRowIndexes,
20718
20800
  rtl,
20719
20801
  selectTaskOnMouseDown,
@@ -20751,6 +20833,10 @@ const Gantt = (props) => {
20751
20833
  onChangeTooltipTask,
20752
20834
  mapGlobalRowIndexToTask,
20753
20835
  onArrowDoubleClick,
20836
+ onArrowClick,
20837
+ activeArrowKey,
20838
+ enableDrawer,
20839
+ handleTaskClick,
20754
20840
  renderedRowIndexes,
20755
20841
  rtl,
20756
20842
  selectTaskOnMouseDown,
@@ -20833,7 +20919,7 @@ const Gantt = (props) => {
20833
20919
  "div",
20834
20920
  {
20835
20921
  style: cssVars,
20836
- className: `${styles$2.wrapper} gantt`,
20922
+ className: `${styles$3.wrapper} gantt`,
20837
20923
  onKeyDown: handleKeyDown,
20838
20924
  tabIndex: 0,
20839
20925
  ref: wrapperRef,
@@ -20917,7 +21003,16 @@ const Gantt = (props) => {
20917
21003
  boundaryElement: verticalGanttContainerRef
20918
21004
  }
20919
21005
  ),
20920
- /* @__PURE__ */ jsx(GanttLoader, { loading: waitCommitTasks })
21006
+ /* @__PURE__ */ jsx(GanttLoader, { loading: waitCommitTasks }),
21007
+ enableDrawer && /* @__PURE__ */ jsx(
21008
+ GanttDrawer,
21009
+ {
21010
+ data: drawerData,
21011
+ width: drawerWidth,
21012
+ onClose: handleDrawerClose,
21013
+ renderContent: renderDrawerContent
21014
+ }
21015
+ )
20921
21016
  ]
20922
21017
  }
20923
21018
  ) }) });