@thepocman/gantt-task-react 1.0.24 → 1.0.27

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.
@@ -1875,7 +1875,7 @@
1875
1875
  const tooltipDefaultContainerParagraph = "_tooltipDefaultContainerParagraph_qip67_13";
1876
1876
  const tooltipDetailsContainer = "_tooltipDetailsContainer_qip67_25";
1877
1877
  const tooltipDetailsContainerHidden = "_tooltipDetailsContainerHidden_qip67_49";
1878
- const styles$j = {
1878
+ const styles$i = {
1879
1879
  tooltipDefaultContainer,
1880
1880
  tooltipDefaultContainerParagraph,
1881
1881
  tooltipDetailsContainer,
@@ -1915,12 +1915,12 @@
1915
1915
  return /* @__PURE__ */ jsxRuntime.jsxs(
1916
1916
  "div",
1917
1917
  {
1918
- className: styles$j.tooltipDefaultContainer,
1918
+ className: styles$i.tooltipDefaultContainer,
1919
1919
  style: style2,
1920
1920
  children: [
1921
1921
  /* @__PURE__ */ jsxRuntime.jsx("b", { style: { fontSize: fontSize + 6 }, children: `${task.name}: ${task.start.getDate()}-${task.start.getMonth() + 1}-${task.start.getFullYear()} - ${task.end.getDate()}-${task.end.getMonth() + 1}-${task.end.getFullYear()}` }),
1922
- task.end.getTime() - task.start.getTime() !== 0 && /* @__PURE__ */ jsxRuntime.jsx("p", { className: styles$j.tooltipDefaultContainerParagraph, children: `Duration: ${~~((task.end.getTime() - task.start.getTime()) / (1e3 * 60 * 60 * 24))} day(s)` }),
1923
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: styles$j.tooltipDefaultContainerParagraph, children: !!task.progress && `Progress: ${task.progress} %` })
1922
+ task.end.getTime() - task.start.getTime() !== 0 && /* @__PURE__ */ jsxRuntime.jsx("p", { className: styles$i.tooltipDefaultContainerParagraph, children: `Duration: ${~~((task.end.getTime() - task.start.getTime()) / (1e3 * 60 * 60 * 24))} day(s)` }),
1923
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: styles$i.tooltipDefaultContainerParagraph, children: !!task.progress && `Progress: ${task.progress} %` })
1924
1924
  ]
1925
1925
  }
1926
1926
  );
@@ -2002,7 +2002,7 @@
2002
2002
  ];
2003
2003
  };
2004
2004
  const button$2 = "_button_1eue5_1";
2005
- const styles$i = {
2005
+ const styles$h = {
2006
2006
  button: button$2
2007
2007
  };
2008
2008
  const AddColumn = (props) => {
@@ -2020,14 +2020,14 @@
2020
2020
  }
2021
2021
  return /* @__PURE__ */ jsxRuntime.jsx("button", { type: "button", onClick, style: {
2022
2022
  "color": colors.barLabelColor
2023
- }, className: styles$i.button, children: (icons == null ? void 0 : icons.renderAddIcon) ? icons.renderAddIcon(task) : "+" });
2023
+ }, className: styles$h.button, children: (icons == null ? void 0 : icons.renderAddIcon) ? icons.renderAddIcon(task) : "+" });
2024
2024
  };
2025
2025
  const taskListNameWrapper = "_taskListNameWrapper_1un0e_1";
2026
2026
  const dragging = "_dragging_1un0e_11";
2027
2027
  const taskListExpander = "_taskListExpander_1un0e_19";
2028
2028
  const taskListEmptyExpander = "_taskListEmptyExpander_1un0e_35";
2029
2029
  const taskName = "_taskName_1un0e_45";
2030
- const styles$h = {
2030
+ const styles$g = {
2031
2031
  taskListNameWrapper,
2032
2032
  dragging,
2033
2033
  taskListExpander,
@@ -2070,7 +2070,7 @@
2070
2070
  "div",
2071
2071
  {
2072
2072
  "data-testid": `title-table-cell-${name}`,
2073
- className: `${styles$h.taskListNameWrapper}`,
2073
+ className: `${styles$g.taskListNameWrapper}`,
2074
2074
  style: {
2075
2075
  paddingLeft: depth * nestedTaskNameOffset
2076
2076
  },
@@ -2079,7 +2079,7 @@
2079
2079
  /* @__PURE__ */ jsxRuntime.jsx(
2080
2080
  "div",
2081
2081
  {
2082
- className: `${styles$h.taskListExpander} ${!hasChildren ? styles$h.taskListEmptyExpander : ""}`,
2082
+ className: `${styles$g.taskListExpander} ${!hasChildren ? styles$g.taskListEmptyExpander : ""}`,
2083
2083
  onClick,
2084
2084
  style: {
2085
2085
  width: expandIconWidth
@@ -2089,7 +2089,7 @@
2089
2089
  ),
2090
2090
  /* @__PURE__ */ jsxRuntime.jsxs("div", { style: {
2091
2091
  color: colors.barLabelColor
2092
- }, className: styles$h.taskName, children: [
2092
+ }, className: styles$g.taskName, children: [
2093
2093
  isShowTaskNumbers && /* @__PURE__ */ jsxRuntime.jsxs("b", { children: [
2094
2094
  indexStr,
2095
2095
  " "
@@ -3186,7 +3186,7 @@
3186
3186
  }, children: dependencies.map(({ name }) => name).join(", ") });
3187
3187
  };
3188
3188
  const button$1 = "_button_1eue5_1";
3189
- const styles$g = {
3189
+ const styles$f = {
3190
3190
  button: button$1
3191
3191
  };
3192
3192
  const DeleteColumn = (props) => {
@@ -3198,10 +3198,10 @@
3198
3198
  }, [task, handleDeleteTasks]);
3199
3199
  return /* @__PURE__ */ jsxRuntime.jsx("button", { type: "button", onClick, style: {
3200
3200
  "color": colors.barLabelColor
3201
- }, className: styles$g.button, children: (icons == null ? void 0 : icons.renderDeleteIcon) ? icons.renderDeleteIcon(task) : "-" });
3201
+ }, className: styles$f.button, children: (icons == null ? void 0 : icons.renderDeleteIcon) ? icons.renderDeleteIcon(task) : "-" });
3202
3202
  };
3203
3203
  const button = "_button_ys66g_1";
3204
- const styles$f = {
3204
+ const styles$e = {
3205
3205
  button
3206
3206
  };
3207
3207
  const EditColumn = (props) => {
@@ -3213,7 +3213,7 @@
3213
3213
  }, [task, handleEditTask]);
3214
3214
  return /* @__PURE__ */ jsxRuntime.jsx("button", { type: "button", onClick, style: {
3215
3215
  "color": colors.barLabelColor
3216
- }, className: styles$f.button, children: (icons == null ? void 0 : icons.renderEditIcon) ? icons.renderEditIcon(task) : "✎" });
3216
+ }, className: styles$e.button, children: (icons == null ? void 0 : icons.renderEditIcon) ? icons.renderEditIcon(task) : "✎" });
3217
3217
  };
3218
3218
  const useTableListResize = (columnsProp, distances, onResizeColumn) => {
3219
3219
  const [columnsState, setColumns] = React.useState(() => {
@@ -3419,7 +3419,7 @@
3419
3419
  const taskListResizer = "_taskListResizer_1ogga_79";
3420
3420
  const taskListContent = "_taskListContent_1ogga_127";
3421
3421
  const hidden = "_hidden_1ogga_147";
3422
- const styles$e = {
3422
+ const styles$d = {
3423
3423
  ganttTableRoot,
3424
3424
  ganttTableWrapper,
3425
3425
  taskListResizer,
@@ -3487,11 +3487,11 @@
3487
3487
  fullRowHeight
3488
3488
  );
3489
3489
  const renderedIndexes = enableTaskGrouping ? groupedIndexes : optimizedIndexes;
3490
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles$e.ganttTableRoot, ref: taskListRef, children: [
3490
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles$d.ganttTableRoot, ref: taskListRef, children: [
3491
3491
  /* @__PURE__ */ jsxRuntime.jsxs(
3492
3492
  "div",
3493
3493
  {
3494
- className: styles$e.ganttTableWrapper,
3494
+ className: styles$d.ganttTableWrapper,
3495
3495
  style: {
3496
3496
  width: tableWidth
3497
3497
  },
@@ -3514,7 +3514,7 @@
3514
3514
  /* @__PURE__ */ jsxRuntime.jsx(
3515
3515
  "div",
3516
3516
  {
3517
- className: styles$e.taskListContent,
3517
+ className: styles$d.taskListContent,
3518
3518
  ref: taskListContentRef,
3519
3519
  onScroll: onScrollTableListContentVertically,
3520
3520
  children: /* @__PURE__ */ jsxRuntime.jsx(
@@ -3577,7 +3577,7 @@
3577
3577
  /* @__PURE__ */ jsxRuntime.jsx(
3578
3578
  "div",
3579
3579
  {
3580
- className: styles$e.taskListResizer,
3580
+ className: styles$d.taskListResizer,
3581
3581
  onMouseDown: (event) => {
3582
3582
  onTableResizeStart(event.clientX);
3583
3583
  },
@@ -3598,7 +3598,7 @@
3598
3598
  const ganttTable_HeaderTitle = "_ganttTable_HeaderTitle_1ndeo_41";
3599
3599
  const ganttTable_HeaderItem = "_ganttTable_HeaderItem_1ndeo_49";
3600
3600
  const resizer = "_resizer_1ndeo_75";
3601
- const styles$d = {
3601
+ const styles$c = {
3602
3602
  ganttTable_Header,
3603
3603
  ganttTable_HeaderSeparator,
3604
3604
  ganttTable_HeaderContent,
@@ -3695,7 +3695,7 @@
3695
3695
  return /* @__PURE__ */ jsxRuntime.jsx(
3696
3696
  "div",
3697
3697
  {
3698
- className: styles$d.ganttTable_Header,
3698
+ className: styles$c.ganttTable_Header,
3699
3699
  style: {
3700
3700
  height: headerHeight,
3701
3701
  fontFamily,
@@ -3706,7 +3706,7 @@
3706
3706
  index2 > 0 && /* @__PURE__ */ jsxRuntime.jsx(
3707
3707
  "div",
3708
3708
  {
3709
- className: styles$d.ganttTable_HeaderSeparator,
3709
+ className: styles$c.ganttTable_HeaderSeparator,
3710
3710
  style: {
3711
3711
  height: headerHeight * 0.5,
3712
3712
  marginTop: headerHeight * 0.2
@@ -3717,14 +3717,14 @@
3717
3717
  "div",
3718
3718
  {
3719
3719
  "data-testid": `table-column-header-${title}`,
3720
- className: styles$d.ganttTable_HeaderItem,
3720
+ className: styles$c.ganttTable_HeaderItem,
3721
3721
  style: {
3722
3722
  minWidth: width,
3723
3723
  maxWidth: width
3724
3724
  },
3725
3725
  children: [
3726
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles$d.ganttTable_HeaderContent, children: [
3727
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: styles$d.ganttTable_HeaderTitle, children: title }),
3726
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles$c.ganttTable_HeaderContent, children: [
3727
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: styles$c.ganttTable_HeaderTitle, children: title }),
3728
3728
  title === "Name" && /* @__PURE__ */ jsxRuntime.jsx(
3729
3729
  TaskListHeaderActions,
3730
3730
  {
@@ -3739,7 +3739,7 @@
3739
3739
  "div",
3740
3740
  {
3741
3741
  "data-testid": `table-column-header-resize-handle-${title}`,
3742
- className: styles$d.resizer,
3742
+ className: styles$c.resizer,
3743
3743
  onMouseDown: (event) => {
3744
3744
  onColumnResizeStart(index2, event.clientX);
3745
3745
  },
@@ -3769,7 +3769,7 @@
3769
3769
  const dropAfterLighten = "_dropAfterLighten_1e35i_81";
3770
3770
  const dropBefore = "_dropBefore_1e35i_105";
3771
3771
  const dropBeforeLighten = "_dropBeforeLighten_1e35i_127";
3772
- const styles$c = {
3772
+ const styles$b = {
3773
3773
  taskListTableRow,
3774
3774
  taskListTableRowGrabbing,
3775
3775
  cut,
@@ -3981,7 +3981,7 @@
3981
3981
  return /* @__PURE__ */ jsxRuntime.jsxs(
3982
3982
  "div",
3983
3983
  {
3984
- className: `${styles$c.taskListTableRow} ${isCut ? styles$c.cut : ""}`,
3984
+ className: `${styles$b.taskListTableRow} ${isCut ? styles$b.cut : ""}`,
3985
3985
  onMouseDown: onRootMouseDown,
3986
3986
  style: {
3987
3987
  height: fullRowHeight,
@@ -3999,7 +3999,7 @@
3999
3999
  return /* @__PURE__ */ jsxRuntime.jsx(
4000
4000
  "div",
4001
4001
  {
4002
- className: styles$c.taskListCell,
4002
+ className: styles$b.taskListCell,
4003
4003
  style: {
4004
4004
  minWidth: width,
4005
4005
  maxWidth: width
@@ -4007,7 +4007,7 @@
4007
4007
  children: /* @__PURE__ */ jsxRuntime.jsx(
4008
4008
  "div",
4009
4009
  {
4010
- className: styles$c.taskListCellInner,
4010
+ className: styles$b.taskListCellInner,
4011
4011
  onDragEnter: () => {
4012
4012
  setHoveringState({
4013
4013
  hoveringBefore: false,
@@ -4047,7 +4047,7 @@
4047
4047
  "div",
4048
4048
  {
4049
4049
  "data-testid": `table-row-drop-before-${task.name}`,
4050
- className: `${styles$c.dropBefore} ${hoveringState.hoveringBefore ? styles$c.dropBeforeLighten : ""}`,
4050
+ className: `${styles$b.dropBefore} ${hoveringState.hoveringBefore ? styles$b.dropBeforeLighten : ""}`,
4051
4051
  style: {
4052
4052
  left: dropPreviewOffset,
4053
4053
  backgroundColor: hoveringState.hoveringBefore ? colors.taskDragColor : void 0,
@@ -4077,7 +4077,7 @@
4077
4077
  "div",
4078
4078
  {
4079
4079
  "data-testid": `table-row-drop-after-${task.name}`,
4080
- className: `${styles$c.dropAfter} ${hoveringState.hoveringAfter ? styles$c.dropBeforeLighten : ""}`,
4080
+ className: `${styles$b.dropAfter} ${hoveringState.hoveringAfter ? styles$b.dropBeforeLighten : ""}`,
4081
4081
  style: {
4082
4082
  left: dropPreviewOffset,
4083
4083
  backgroundColor: hoveringState.hoveringAfter ? colors.taskDragColor : void 0,
@@ -4119,7 +4119,7 @@
4119
4119
  return childs.length > 0;
4120
4120
  };
4121
4121
  const taskListWrapper = "_taskListWrapper_5941j_1";
4122
- const styles$b = {
4122
+ const styles$a = {
4123
4123
  taskListWrapper
4124
4124
  };
4125
4125
  const TaskListTableDefaultInner = ({
@@ -4305,7 +4305,7 @@
4305
4305
  return /* @__PURE__ */ jsxRuntime.jsx(
4306
4306
  "div",
4307
4307
  {
4308
- className: styles$b.taskListWrapper,
4308
+ className: styles$a.taskListWrapper,
4309
4309
  style: { fontFamily, fontSize },
4310
4310
  children: renderedListWithOffset
4311
4311
  }
@@ -4459,7 +4459,7 @@
4459
4459
  const calendarTopTick = "_calendarTopTick_lemhx_35";
4460
4460
  const calendarTopText = "_calendarTopText_lemhx_43";
4461
4461
  const calendarHeader = "_calendarHeader_lemhx_65";
4462
- const styles$a = {
4462
+ const styles$9 = {
4463
4463
  calendarMain,
4464
4464
  calendarBottomText,
4465
4465
  calendarTopTick,
@@ -4483,7 +4483,7 @@
4483
4483
  y1: y1Line,
4484
4484
  x2: x1Line,
4485
4485
  y2: y2Line,
4486
- className: styles$a.calendarTopTick
4486
+ className: styles$9.calendarTopTick
4487
4487
  }
4488
4488
  ),
4489
4489
  value !== null && /* @__PURE__ */ jsxRuntime.jsx(
@@ -4491,7 +4491,7 @@
4491
4491
  {
4492
4492
  y: yText,
4493
4493
  x: xText,
4494
- className: styles$a.calendarTopText,
4494
+ className: styles$9.calendarTopText,
4495
4495
  style: { fill: colors.barLabelColor },
4496
4496
  children: value
4497
4497
  }
@@ -4540,7 +4540,7 @@
4540
4540
  {
4541
4541
  y: headerHeight * 0.8,
4542
4542
  x: columnWidth * i + columnWidth * 0.5,
4543
- className: styles$a.calendarBottomText,
4543
+ className: styles$9.calendarBottomText,
4544
4544
  style: { fill: colors.barLabelColor },
4545
4545
  children: bottomValue
4546
4546
  },
@@ -4581,7 +4581,7 @@
4581
4581
  {
4582
4582
  y: headerHeight * 0.8,
4583
4583
  x: additionalLeftSpace + columnWidth * i + columnWidth * 0.5,
4584
- className: styles$a.calendarBottomText,
4584
+ className: styles$9.calendarBottomText,
4585
4585
  style: { fill: colors.barLabelColor },
4586
4586
  children: halfYear
4587
4587
  },
@@ -4624,7 +4624,7 @@
4624
4624
  {
4625
4625
  y: headerHeight * 0.8,
4626
4626
  x: additionalLeftSpace + columnWidth * i + columnWidth * 0.5,
4627
- className: styles$a.calendarBottomText,
4627
+ className: styles$9.calendarBottomText,
4628
4628
  style: { fill: colors.barLabelColor },
4629
4629
  children: quarter
4630
4630
  },
@@ -4666,7 +4666,7 @@
4666
4666
  {
4667
4667
  y: headerHeight * 0.8,
4668
4668
  x: additionalLeftSpace + columnWidth * i + columnWidth * 0.5,
4669
- className: styles$a.calendarBottomText,
4669
+ className: styles$9.calendarBottomText,
4670
4670
  style: { fill: colors.barLabelColor },
4671
4671
  children: bottomValue
4672
4672
  },
@@ -4721,7 +4721,7 @@
4721
4721
  {
4722
4722
  y: headerHeight * 0.8,
4723
4723
  x: additionalLeftSpace + columnWidth * (i + +rtl),
4724
- className: styles$a.calendarBottomText,
4724
+ className: styles$9.calendarBottomText,
4725
4725
  style: { fill: colors.barLabelColor },
4726
4726
  children: bottomValue
4727
4727
  },
@@ -4766,7 +4766,7 @@
4766
4766
  {
4767
4767
  y: headerHeight * 0.8,
4768
4768
  x: additionalLeftSpace + columnWidth * i + columnWidth * 0.5,
4769
- className: styles$a.calendarBottomText,
4769
+ className: styles$9.calendarBottomText,
4770
4770
  style: { fill: colors.barLabelColor },
4771
4771
  children: bottomValue
4772
4772
  },
@@ -4813,7 +4813,7 @@
4813
4813
  {
4814
4814
  y: headerHeight * 0.8,
4815
4815
  x: additionalLeftSpace + columnWidth * (i + +rtl),
4816
- className: styles$a.calendarBottomText,
4816
+ className: styles$9.calendarBottomText,
4817
4817
  fontFamily,
4818
4818
  style: { fill: colors.barLabelColor },
4819
4819
  children: bottomValue
@@ -4858,7 +4858,7 @@
4858
4858
  {
4859
4859
  y: headerHeight * 0.8,
4860
4860
  x: additionalLeftSpace + columnWidth * (i + +rtl),
4861
- className: styles$a.calendarBottomText,
4861
+ className: styles$9.calendarBottomText,
4862
4862
  fontFamily,
4863
4863
  style: { fill: colors.barLabelColor },
4864
4864
  children: bottomValue
@@ -4922,7 +4922,7 @@
4922
4922
  case ViewMode.Hour:
4923
4923
  [topValues, bottomValues] = getCalendarValuesForHour();
4924
4924
  }
4925
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: styles$a.calendarMain, style: { width: fullSvgWidth }, children: /* @__PURE__ */ jsxRuntime.jsx(
4925
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: styles$9.calendarMain, style: { width: fullSvgWidth }, children: /* @__PURE__ */ jsxRuntime.jsx(
4926
4926
  "svg",
4927
4927
  {
4928
4928
  xmlns: "http://www.w3.org/2000/svg",
@@ -4936,6 +4936,34 @@
4936
4936
  }
4937
4937
  ) });
4938
4938
  };
4939
+ const shouldDrawVerticalDivider = (currentDate, previousDate, viewMode, isUnknownDates, columnIndex, startColumnIndex) => {
4940
+ if (isUnknownDates)
4941
+ return false;
4942
+ if (columnIndex === startColumnIndex)
4943
+ return true;
4944
+ if (!previousDate)
4945
+ return false;
4946
+ switch (viewMode) {
4947
+ case ViewMode.Year:
4948
+ return currentDate.getFullYear() !== previousDate.getFullYear();
4949
+ case ViewMode.HalfYear:
4950
+ return currentDate.getFullYear() !== previousDate.getFullYear();
4951
+ case ViewMode.QuarterYear:
4952
+ return Math.ceil((currentDate.getMonth() + 1) / 3) !== Math.ceil((previousDate.getMonth() + 1) / 3) || currentDate.getFullYear() !== previousDate.getFullYear();
4953
+ case ViewMode.Month:
4954
+ return currentDate.getMonth() !== previousDate.getMonth() || currentDate.getFullYear() !== previousDate.getFullYear();
4955
+ case ViewMode.Week:
4956
+ return currentDate.getMonth() !== previousDate.getMonth() || currentDate.getFullYear() !== previousDate.getFullYear();
4957
+ case ViewMode.Day:
4958
+ return currentDate.getDate() !== previousDate.getDate() || currentDate.getMonth() !== previousDate.getMonth() || currentDate.getFullYear() !== previousDate.getFullYear();
4959
+ case ViewMode.HalfDay:
4960
+ case ViewMode.QuarterDay:
4961
+ case ViewMode.Hour:
4962
+ return currentDate.getDate() !== previousDate.getDate() || currentDate.getMonth() !== previousDate.getMonth() || currentDate.getFullYear() !== previousDate.getFullYear();
4963
+ default:
4964
+ return false;
4965
+ }
4966
+ };
4939
4967
  const GridBodyInner = ({
4940
4968
  additionalLeftSpace,
4941
4969
  columnWidth,
@@ -4944,7 +4972,11 @@
4944
4972
  todayColor,
4945
4973
  rtl,
4946
4974
  startDate,
4947
- viewMode
4975
+ viewMode,
4976
+ dividerColor,
4977
+ startColumnIndex,
4978
+ endColumnIndex,
4979
+ getDate
4948
4980
  }) => {
4949
4981
  const today = React.useMemo(() => {
4950
4982
  if (isUnknownDates) {
@@ -4973,7 +5005,57 @@
4973
5005
  todayColor,
4974
5006
  viewMode
4975
5007
  ]);
4976
- return /* @__PURE__ */ jsxRuntime.jsx("g", { className: "gridBody", children: /* @__PURE__ */ jsxRuntime.jsx("g", { className: "today", children: today }) });
5008
+ const verticalDividers = React.useMemo(() => {
5009
+ const dividers = [];
5010
+ for (let i = startColumnIndex; i <= endColumnIndex; i++) {
5011
+ const currentDate = getDate(i);
5012
+ const previousDate = i > startColumnIndex ? getDate(i - 1) : null;
5013
+ if (shouldDrawVerticalDivider(
5014
+ currentDate,
5015
+ previousDate,
5016
+ viewMode,
5017
+ isUnknownDates,
5018
+ i,
5019
+ startColumnIndex
5020
+ )) {
5021
+ console.log("Drawing divider at column", i, "date", currentDate);
5022
+ const x2 = additionalLeftSpace + columnWidth * i;
5023
+ console.log("debugging x:", x2);
5024
+ console.log("divider color", dividerColor);
5025
+ dividers.push(
5026
+ /* @__PURE__ */ jsxRuntime.jsx(
5027
+ "line",
5028
+ {
5029
+ x1: x2,
5030
+ x2,
5031
+ y1: 0,
5032
+ y2: ganttFullHeight,
5033
+ stroke: dividerColor,
5034
+ opacity: 0.15,
5035
+ strokeWidth: 5
5036
+ },
5037
+ `divider-${i}`
5038
+ )
5039
+ );
5040
+ }
5041
+ }
5042
+ return dividers;
5043
+ }, [
5044
+ additionalLeftSpace,
5045
+ columnWidth,
5046
+ ganttFullHeight,
5047
+ viewMode,
5048
+ isUnknownDates,
5049
+ startColumnIndex,
5050
+ endColumnIndex,
5051
+ getDate,
5052
+ dividerColor
5053
+ ]);
5054
+ console.log("verticalDividers :>> ", verticalDividers);
5055
+ return /* @__PURE__ */ jsxRuntime.jsxs("g", { className: "gridBody", children: [
5056
+ /* @__PURE__ */ jsxRuntime.jsx("g", { className: "today", children: today }),
5057
+ /* @__PURE__ */ jsxRuntime.jsx("g", { className: "verticalDividers", children: verticalDividers })
5058
+ ] });
4977
5059
  };
4978
5060
  const GridBody = React.memo(GridBodyInner);
4979
5061
  function isWeekend(dirtyDate) {
@@ -5177,7 +5259,7 @@
5177
5259
  const ganttTaskRoot = "_ganttTaskRoot_1mu5y_1";
5178
5260
  const ganttTaskContent = "_ganttTaskContent_1mu5y_83";
5179
5261
  const wrapper$2 = "_wrapper_1mu5y_111";
5180
- const styles$9 = {
5262
+ const styles$8 = {
5181
5263
  ganttTaskRoot,
5182
5264
  ganttTaskContent,
5183
5265
  wrapper: wrapper$2
@@ -5207,13 +5289,13 @@
5207
5289
  const wrapper$1 = "_wrapper_11ld1_1";
5208
5290
  const mainPath$2 = "_mainPath_11ld1_17";
5209
5291
  const clickZone$2 = "_clickZone_11ld1_35";
5210
- const styles$8 = {
5292
+ const styles$7 = {
5211
5293
  hoverVisibleWrapper: hoverVisibleWrapper$1,
5212
5294
  wrapper: wrapper$1,
5213
5295
  mainPath: mainPath$2,
5214
5296
  clickZone: clickZone$2
5215
5297
  };
5216
- const fixPositionContainerClass = styles$8.hoverVisibleWrapper;
5298
+ const fixPositionContainerClass = styles$7.hoverVisibleWrapper;
5217
5299
  const FixDependencyPositionInner = ({
5218
5300
  color,
5219
5301
  dependencyFixIndent,
@@ -5260,7 +5342,7 @@
5260
5342
  return /* @__PURE__ */ jsxRuntime.jsxs(
5261
5343
  "g",
5262
5344
  {
5263
- className: styles$8.wrapper,
5345
+ className: styles$7.wrapper,
5264
5346
  fill: color,
5265
5347
  stroke: color,
5266
5348
  onMouseDown: handleFixPosition,
@@ -5269,7 +5351,7 @@
5269
5351
  "path",
5270
5352
  {
5271
5353
  d: d2,
5272
- className: styles$8.mainPath
5354
+ className: styles$7.mainPath
5273
5355
  }
5274
5356
  ),
5275
5357
  /* @__PURE__ */ jsxRuntime.jsx(
@@ -5279,7 +5361,7 @@
5279
5361
  y,
5280
5362
  width: width + dependencyFixIndent,
5281
5363
  height,
5282
- className: styles$8.clickZone
5364
+ className: styles$7.clickZone
5283
5365
  }
5284
5366
  ),
5285
5367
  /* @__PURE__ */ jsxRuntime.jsx("polygon", { points: trianglePoints })
@@ -5291,7 +5373,7 @@
5291
5373
  const arrow_clickable = "_arrow_clickable_1k55i_1";
5292
5374
  const mainPath$1 = "_mainPath_1k55i_9";
5293
5375
  const clickZone$1 = "_clickZone_1k55i_27";
5294
- const styles$7 = {
5376
+ const styles$6 = {
5295
5377
  arrow_clickable,
5296
5378
  mainPath: mainPath$1,
5297
5379
  clickZone: clickZone$1
@@ -5428,12 +5510,12 @@
5428
5510
  "g",
5429
5511
  {
5430
5512
  "data-testid": `task-arrow-${extremityFrom}-${taskFrom.name}-${extremityTo}-${taskTo.name}`,
5431
- className: `"arrow" ${styles$7.arrow_clickable}`,
5513
+ className: `"arrow" ${styles$6.arrow_clickable}`,
5432
5514
  onDoubleClick,
5433
5515
  onClick,
5434
5516
  children: [
5435
- onArrowDoubleClick && /* @__PURE__ */ jsxRuntime.jsx("path", { d: path, className: styles$7.clickZone }),
5436
- /* @__PURE__ */ jsxRuntime.jsx("path", { className: styles$7.mainPath, d: path }),
5517
+ onArrowDoubleClick && /* @__PURE__ */ jsxRuntime.jsx("path", { d: path, className: styles$6.clickZone }),
5518
+ /* @__PURE__ */ jsxRuntime.jsx("path", { className: styles$6.mainPath, d: path }),
5437
5519
  /* @__PURE__ */ jsxRuntime.jsx("polygon", { points: trianglePoints })
5438
5520
  ]
5439
5521
  }
@@ -5485,7 +5567,7 @@
5485
5567
  return [path, trianglePoints];
5486
5568
  };
5487
5569
  const relationLine = "_relationLine_ftzm9_1";
5488
- const styles$6 = {
5570
+ const styles$5 = {
5489
5571
  relationLine
5490
5572
  };
5491
5573
  const RelationLine = ({
@@ -5501,14 +5583,98 @@
5501
5583
  x2,
5502
5584
  y1,
5503
5585
  y2,
5504
- className: styles$6.relationLine
5586
+ className: styles$5.relationLine
5505
5587
  }
5506
5588
  );
5507
5589
  };
5590
+ const hoverVisibleWrapper = "_hoverVisibleWrapper_11ld1_1";
5591
+ const wrapper = "_wrapper_11ld1_1";
5592
+ const mainPath = "_mainPath_11ld1_17";
5593
+ const clickZone = "_clickZone_11ld1_35";
5594
+ const styles$4 = {
5595
+ hoverVisibleWrapper,
5596
+ wrapper,
5597
+ mainPath,
5598
+ clickZone
5599
+ };
5600
+ const fixWidthContainerClass = styles$4.hoverVisibleWrapper;
5601
+ const BarFixWidthInner = ({
5602
+ x: x2,
5603
+ y,
5604
+ width,
5605
+ height,
5606
+ isLeft,
5607
+ color,
5608
+ handleFixWidth
5609
+ }) => {
5610
+ const halfHeight = React.useMemo(
5611
+ () => Math.round(height / 2),
5612
+ [height]
5613
+ );
5614
+ const d2 = React.useMemo(() => {
5615
+ return `M ${x2} ${y}
5616
+ v ${height}
5617
+ M ${x2} ${y + halfHeight}
5618
+ h ${isLeft ? -width : width}
5619
+ `;
5620
+ }, [
5621
+ x2,
5622
+ y,
5623
+ width,
5624
+ height,
5625
+ halfHeight,
5626
+ isLeft
5627
+ ]);
5628
+ const trianglePoints = React.useMemo(
5629
+ () => generateTrianglePoints(
5630
+ isLeft ? x2 - width : x2 + width,
5631
+ y + halfHeight,
5632
+ 5,
5633
+ isLeft
5634
+ ),
5635
+ [
5636
+ x2,
5637
+ y,
5638
+ width,
5639
+ halfHeight,
5640
+ isLeft
5641
+ ]
5642
+ );
5643
+ return /* @__PURE__ */ jsxRuntime.jsxs(
5644
+ "g",
5645
+ {
5646
+ className: styles$4.wrapper,
5647
+ fill: color,
5648
+ stroke: color,
5649
+ onMouseDown: handleFixWidth,
5650
+ children: [
5651
+ /* @__PURE__ */ jsxRuntime.jsx(
5652
+ "path",
5653
+ {
5654
+ d: d2,
5655
+ className: styles$4.mainPath
5656
+ }
5657
+ ),
5658
+ /* @__PURE__ */ jsxRuntime.jsx(
5659
+ "rect",
5660
+ {
5661
+ x: isLeft ? x2 - width - 2 : x2 - 2,
5662
+ y: y - 5,
5663
+ width: width + 5,
5664
+ height: height + 5,
5665
+ className: styles$4.clickZone
5666
+ }
5667
+ ),
5668
+ /* @__PURE__ */ jsxRuntime.jsx("polygon", { points: trianglePoints })
5669
+ ]
5670
+ }
5671
+ );
5672
+ };
5673
+ const BarFixWidth = React.memo(BarFixWidthInner);
5508
5674
  const barWrapper = "_barWrapper_1kg71_1";
5509
5675
  const barHandle = "_barHandle_1kg71_11";
5510
5676
  const barBackground = "_barBackground_1kg71_43";
5511
- const styles$5 = {
5677
+ const styles$3 = {
5512
5678
  barWrapper,
5513
5679
  barHandle,
5514
5680
  barBackground
@@ -5600,7 +5766,7 @@
5600
5766
  ry: barCornerRadius,
5601
5767
  rx: barCornerRadius,
5602
5768
  fill: barColor,
5603
- className: styles$5.barBackground
5769
+ className: styles$3.barBackground
5604
5770
  }
5605
5771
  ),
5606
5772
  /* @__PURE__ */ jsxRuntime.jsx(
@@ -5636,7 +5802,7 @@
5636
5802
  y,
5637
5803
  width,
5638
5804
  height,
5639
- className: styles$5.barHandle,
5805
+ className: styles$3.barHandle,
5640
5806
  ry: barCornerRadius,
5641
5807
  rx: barCornerRadius,
5642
5808
  onMouseDown: (e) => {
@@ -5660,7 +5826,7 @@
5660
5826
  "polygon",
5661
5827
  {
5662
5828
  "data-testid": `task-progress-handle-${taskName2}`,
5663
- className: styles$5.barHandle,
5829
+ className: styles$3.barHandle,
5664
5830
  points: progressPoint,
5665
5831
  onMouseDown: (e) => {
5666
5832
  startMoveProgress(e.clientX);
@@ -5677,7 +5843,7 @@
5677
5843
  const barRelationHandleWrapper = "_barRelationHandleWrapper_1744h_1";
5678
5844
  const barRelationHandle = "_barRelationHandle_1744h_1";
5679
5845
  const barRelationHandle_drawMode = "_barRelationHandle_drawMode_1744h_1";
5680
- const styles$4 = {
5846
+ const stylesRelationHandle = {
5681
5847
  barRelationHandleWrapper,
5682
5848
  barRelationHandle,
5683
5849
  barRelationHandle_drawMode
@@ -5685,7 +5851,7 @@
5685
5851
  const projectWrapper = "_projectWrapper_1maxt_1";
5686
5852
  const projectBackground = "_projectBackground_1maxt_11";
5687
5853
  const projectTop = "_projectTop_1maxt_21";
5688
- const styles$3 = {
5854
+ const styles$2 = {
5689
5855
  projectWrapper,
5690
5856
  projectBackground,
5691
5857
  projectTop
@@ -5760,7 +5926,7 @@
5760
5926
  }
5761
5927
  },
5762
5928
  tabIndex: 0,
5763
- className: styles$3.projectWrapper,
5929
+ className: styles$2.projectWrapper,
5764
5930
  children: [
5765
5931
  /* @__PURE__ */ jsxRuntime.jsx(
5766
5932
  "rect",
@@ -5772,7 +5938,7 @@
5772
5938
  height: taskHeight,
5773
5939
  rx: barCornerRadius,
5774
5940
  ry: barCornerRadius,
5775
- className: styles$3.projectBackground
5941
+ className: styles$2.projectBackground
5776
5942
  }
5777
5943
  ),
5778
5944
  /* @__PURE__ */ jsxRuntime.jsx(
@@ -5797,13 +5963,13 @@
5797
5963
  height: taskHalfHeight,
5798
5964
  rx: barCornerRadius,
5799
5965
  ry: barCornerRadius,
5800
- className: styles$3.projectTop
5966
+ className: styles$2.projectTop
5801
5967
  }
5802
5968
  ),
5803
5969
  /* @__PURE__ */ jsxRuntime.jsx(
5804
5970
  "polygon",
5805
5971
  {
5806
- className: styles$3.projectTop,
5972
+ className: styles$2.projectTop,
5807
5973
  points: projectLeftTriangle,
5808
5974
  fill: barColor
5809
5975
  }
@@ -5811,7 +5977,7 @@
5811
5977
  /* @__PURE__ */ jsxRuntime.jsx(
5812
5978
  "polygon",
5813
5979
  {
5814
- className: styles$3.projectTop,
5980
+ className: styles$2.projectTop,
5815
5981
  points: projectRightTriangle,
5816
5982
  fill: barColor
5817
5983
  }
@@ -5916,7 +6082,7 @@
5916
6082
  return /* @__PURE__ */ jsxRuntime.jsxs(
5917
6083
  "g",
5918
6084
  {
5919
- className: `${styles$5.barWrapper} ${styles$4.barRelationHandleWrapper}`,
6085
+ className: `${styles$3.barWrapper} ${stylesRelationHandle.barRelationHandleWrapper}`,
5920
6086
  tabIndex: 0,
5921
6087
  children: [
5922
6088
  barDisplay,
@@ -5957,6 +6123,28 @@
5957
6123
  }
5958
6124
  );
5959
6125
  };
6126
+ const BarRelationHandleInner = ({
6127
+ dataTestid,
6128
+ isRelationDrawMode,
6129
+ radius,
6130
+ startDrawRelation,
6131
+ x: x2,
6132
+ y
6133
+ }) => {
6134
+ return /* @__PURE__ */ jsxRuntime.jsx(
6135
+ "circle",
6136
+ {
6137
+ "data-testid": dataTestid,
6138
+ cx: x2,
6139
+ cy: y,
6140
+ r: radius,
6141
+ className: `${stylesRelationHandle.barRelationHandle} ${isRelationDrawMode ? stylesRelationHandle.barRelationHandle_drawMode : ""}`,
6142
+ onMouseDown: startDrawRelation,
6143
+ onTouchStart: startDrawRelation
6144
+ }
6145
+ );
6146
+ };
6147
+ const BarRelationHandle = React.memo(BarRelationHandleInner);
5960
6148
  const BarSmall = ({
5961
6149
  children: relationhandles,
5962
6150
  colorStyles,
@@ -5988,7 +6176,7 @@
5988
6176
  return /* @__PURE__ */ jsxRuntime.jsxs(
5989
6177
  "g",
5990
6178
  {
5991
- className: `${styles$5.barWrapper} ${styles$4.barRelationHandleWrapper}`,
6179
+ className: `${styles$3.barWrapper} ${stylesRelationHandle.barRelationHandleWrapper}`,
5992
6180
  tabIndex: 0,
5993
6181
  children: [
5994
6182
  /* @__PURE__ */ jsxRuntime.jsx(
@@ -6028,7 +6216,7 @@
6028
6216
  };
6029
6217
  const milestoneWrapper = "_milestoneWrapper_vcirf_1";
6030
6218
  const milestoneBackground = "_milestoneBackground_vcirf_11";
6031
- const styles$2 = {
6219
+ const styles$1 = {
6032
6220
  milestoneWrapper,
6033
6221
  milestoneBackground
6034
6222
  };
@@ -6063,7 +6251,7 @@
6063
6251
  "g",
6064
6252
  {
6065
6253
  tabIndex: 0,
6066
- className: `${styles$2.milestoneWrapper} ${styles$4.barRelationHandleWrapper}`,
6254
+ className: `${styles$1.milestoneWrapper} ${stylesRelationHandle.barRelationHandleWrapper}`,
6067
6255
  children: [
6068
6256
  /* @__PURE__ */ jsxRuntime.jsx(
6069
6257
  "rect",
@@ -6077,7 +6265,7 @@
6077
6265
  rx: barCornerRadius,
6078
6266
  ry: barCornerRadius,
6079
6267
  transform,
6080
- className: styles$2.milestoneBackground,
6268
+ className: styles$1.milestoneBackground,
6081
6269
  onMouseDown: (e) => {
6082
6270
  onTaskEventStart("move", e.clientX);
6083
6271
  },
@@ -6094,6 +6282,12 @@
6094
6282
  }
6095
6283
  );
6096
6284
  };
6285
+ const barLabel = "_barLabel_y0tyg_1";
6286
+ const barLabelOutside = "_barLabelOutside_y0tyg_25";
6287
+ const style = {
6288
+ barLabel,
6289
+ barLabelOutside
6290
+ };
6097
6291
  const TaskWarningInner = ({
6098
6292
  rtl,
6099
6293
  outOfParentWarnings = void 0,
@@ -6165,118 +6359,6 @@
6165
6359
  ] });
6166
6360
  };
6167
6361
  const TaskWarning = React.memo(TaskWarningInner);
6168
- const barLabel = "_barLabel_y0tyg_1";
6169
- const barLabelOutside = "_barLabelOutside_y0tyg_25";
6170
- const style = {
6171
- barLabel,
6172
- barLabelOutside
6173
- };
6174
- const hoverVisibleWrapper = "_hoverVisibleWrapper_11ld1_1";
6175
- const wrapper = "_wrapper_11ld1_1";
6176
- const mainPath = "_mainPath_11ld1_17";
6177
- const clickZone = "_clickZone_11ld1_35";
6178
- const styles$1 = {
6179
- hoverVisibleWrapper,
6180
- wrapper,
6181
- mainPath,
6182
- clickZone
6183
- };
6184
- const fixWidthContainerClass = styles$1.hoverVisibleWrapper;
6185
- const BarFixWidthInner = ({
6186
- x: x2,
6187
- y,
6188
- width,
6189
- height,
6190
- isLeft,
6191
- color,
6192
- handleFixWidth
6193
- }) => {
6194
- const halfHeight = React.useMemo(
6195
- () => Math.round(height / 2),
6196
- [height]
6197
- );
6198
- const d2 = React.useMemo(() => {
6199
- return `M ${x2} ${y}
6200
- v ${height}
6201
- M ${x2} ${y + halfHeight}
6202
- h ${isLeft ? -width : width}
6203
- `;
6204
- }, [
6205
- x2,
6206
- y,
6207
- width,
6208
- height,
6209
- halfHeight,
6210
- isLeft
6211
- ]);
6212
- const trianglePoints = React.useMemo(
6213
- () => generateTrianglePoints(
6214
- isLeft ? x2 - width : x2 + width,
6215
- y + halfHeight,
6216
- 5,
6217
- isLeft
6218
- ),
6219
- [
6220
- x2,
6221
- y,
6222
- width,
6223
- halfHeight,
6224
- isLeft
6225
- ]
6226
- );
6227
- return /* @__PURE__ */ jsxRuntime.jsxs(
6228
- "g",
6229
- {
6230
- className: styles$1.wrapper,
6231
- fill: color,
6232
- stroke: color,
6233
- onMouseDown: handleFixWidth,
6234
- children: [
6235
- /* @__PURE__ */ jsxRuntime.jsx(
6236
- "path",
6237
- {
6238
- d: d2,
6239
- className: styles$1.mainPath
6240
- }
6241
- ),
6242
- /* @__PURE__ */ jsxRuntime.jsx(
6243
- "rect",
6244
- {
6245
- x: isLeft ? x2 - width - 2 : x2 - 2,
6246
- y: y - 5,
6247
- width: width + 5,
6248
- height: height + 5,
6249
- className: styles$1.clickZone
6250
- }
6251
- ),
6252
- /* @__PURE__ */ jsxRuntime.jsx("polygon", { points: trianglePoints })
6253
- ]
6254
- }
6255
- );
6256
- };
6257
- const BarFixWidth = React.memo(BarFixWidthInner);
6258
- const BarRelationHandleInner = ({
6259
- dataTestid,
6260
- isRelationDrawMode,
6261
- radius,
6262
- startDrawRelation,
6263
- x: x2,
6264
- y
6265
- }) => {
6266
- return /* @__PURE__ */ jsxRuntime.jsx(
6267
- "circle",
6268
- {
6269
- "data-testid": dataTestid,
6270
- cx: x2,
6271
- cy: y,
6272
- r: radius,
6273
- className: `${styles$4.barRelationHandle} ${isRelationDrawMode ? styles$4.barRelationHandle_drawMode : ""}`,
6274
- onMouseDown: startDrawRelation,
6275
- onTouchStart: startDrawRelation
6276
- }
6277
- );
6278
- };
6279
- const BarRelationHandle = React.memo(BarRelationHandleInner);
6280
6362
  const TaskItemInner = (props) => {
6281
6363
  const {
6282
6364
  childOutOfParentWarnings,
@@ -6533,7 +6615,7 @@
6533
6615
  y: taskYOffset + taskHeight * 0.5,
6534
6616
  className: isTextInside ? style.barLabel : style.barLabel && style.barLabelOutside,
6535
6617
  ref: textRef,
6536
- children: task.name
6618
+ children: isTextInside ? task.name : ""
6537
6619
  }
6538
6620
  ),
6539
6621
  (outOfParentWarnings || hasDependencyWarning) && /* @__PURE__ */ jsxRuntime.jsx(
@@ -6734,7 +6816,12 @@
6734
6816
  fixStartPosition,
6735
6817
  fixEndPosition,
6736
6818
  handleDeleteTasks,
6737
- colorStyles
6819
+ colorStyles,
6820
+ enableTaskGrouping,
6821
+ getTaskInitials: (task2) => {
6822
+ var _a2;
6823
+ return ((_a2 = task2.name) == null ? void 0 : _a2.split(" ").map((word) => word[0]).join("").toUpperCase()) ?? "";
6824
+ }
6738
6825
  }
6739
6826
  )
6740
6827
  },
@@ -6913,7 +7000,6 @@
6913
7000
  height: Math.max(ganttFullHeight, minimumRowDisplayed * rowHeight),
6914
7001
  width: (ganttTaskRootRef == null ? void 0 : ganttTaskRootRef.current) ? ganttTaskRootRef.current.clientWidth + ganttTaskRootRef.current.scrollLeft : fullSvgWidth
6915
7002
  };
6916
- console.log("containerStyle:>> ", containerStyle);
6917
7003
  const gridStyle = React.useMemo(
6918
7004
  () => ({
6919
7005
  height: Math.max(ganttFullHeight, minimumRowDisplayed * rowHeight),
@@ -7005,7 +7091,7 @@
7005
7091
  return /* @__PURE__ */ jsxRuntime.jsxs(
7006
7092
  "div",
7007
7093
  {
7008
- className: styles$9.ganttTaskRoot,
7094
+ className: styles$8.ganttTaskRoot,
7009
7095
  ref: ganttTaskRootRef,
7010
7096
  onScroll: onVerticalScrollbarScrollX,
7011
7097
  dir: "ltr",
@@ -7015,7 +7101,7 @@
7015
7101
  "div",
7016
7102
  {
7017
7103
  ref: ganttTaskContentRef,
7018
- className: styles$9.ganttTaskContent,
7104
+ className: styles$8.ganttTaskContent,
7019
7105
  style: containerStyle,
7020
7106
  onScroll: onScrollVertically,
7021
7107
  children: [
@@ -11632,6 +11718,8 @@
11632
11718
  selectedTaskBackgroundColor: "rgba(252, 248, 227, 0.5)",
11633
11719
  taskDragColor: "#7474ff",
11634
11720
  todayColor: "rgba(252, 248, 227, 0.5)",
11721
+ dividerColor: "rgba(22, 16, 14, 0.27)",
11722
+ //new color
11635
11723
  contextMenuBoxShadow: "rgb(0 0 0 / 25%) 1px 1px 5px 1px",
11636
11724
  contextMenuBgColor: "#fff",
11637
11725
  contextMenuTextColor: "inherit"
@@ -12992,6 +13080,7 @@
12992
13080
  rtl,
12993
13081
  startDate,
12994
13082
  todayColor: colorStyles.todayColor,
13083
+ dividerColor: colorStyles.dividerColor,
12995
13084
  holidayBackgroundColor: colorStyles.holidayBackgroundColor,
12996
13085
  viewMode,
12997
13086
  startColumnIndex,
@@ -13189,7 +13278,7 @@
13189
13278
  return /* @__PURE__ */ jsxRuntime.jsxs(
13190
13279
  "div",
13191
13280
  {
13192
- className: styles$9.wrapper,
13281
+ className: styles$8.wrapper,
13193
13282
  onKeyDown: handleKeyDown,
13194
13283
  tabIndex: 0,
13195
13284
  ref: wrapperRef,