@carbon/ibm-products 2.43.2-canary.31 → 2.43.2-canary.32

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.
@@ -32,7 +32,7 @@ import { useSpreadsheetOutsideClick } from './hooks/useSpreadsheetOutsideClick.j
32
32
  import { useMoveActiveCell } from './hooks/useMoveActiveCell.js';
33
33
  import { useSpreadsheetEdit } from './hooks/useSpreadsheetEdit.js';
34
34
 
35
- var _excluded = ["cellSize", "className", "columns", "data", "defaultEmptyRowCount", "onDataUpdate", "id", "onActiveCellChange", "onSelectionAreaChange", "selectAllAriaLabel", "spreadsheetAriaLabel", "theme", "totalVisibleColumns"];
35
+ var _excluded = ["cellSize", "className", "columns", "data", "defaultEmptyRowCount", "onDataUpdate", "id", "onActiveCellChange", "onSelectionAreaChange", "renderRowHeader", "renderRowHeaderDirection", "selectAllAriaLabel", "spreadsheetAriaLabel", "theme", "totalVisibleColumns"];
36
36
  // The block part of our conventional BEM class names (blockClass__E--M).
37
37
  var blockClass = "".concat(pkg.prefix, "--data-spreadsheet");
38
38
  var componentName = 'DataSpreadsheet';
@@ -67,6 +67,8 @@ var DataSpreadsheet = /*#__PURE__*/React__default.forwardRef(function (_ref, ref
67
67
  onActiveCellChange = _ref$onActiveCellChan === void 0 ? defaults.onActiveCellChange : _ref$onActiveCellChan,
68
68
  _ref$onSelectionAreaC = _ref.onSelectionAreaChange,
69
69
  onSelectionAreaChange = _ref$onSelectionAreaC === void 0 ? defaults.onSelectionAreaChange : _ref$onSelectionAreaC,
70
+ renderRowHeader = _ref.renderRowHeader,
71
+ renderRowHeaderDirection = _ref.renderRowHeaderDirection,
70
72
  selectAllAriaLabel = _ref.selectAllAriaLabel,
71
73
  spreadsheetAriaLabel = _ref.spreadsheetAriaLabel,
72
74
  theme = _ref.theme,
@@ -138,13 +140,15 @@ var DataSpreadsheet = /*#__PURE__*/React__default.forwardRef(function (_ref, ref
138
140
  setActiveCellContent = _useState26[1];
139
141
  var activeCellRef = useRef();
140
142
  var cellEditorRulerRef = useRef();
143
+ var hasCustomRowHeader = typeof renderRowHeader === 'function';
144
+ var maxNumRowsCount = data.length.toString().length;
141
145
  var defaultColumn = useMemo(function () {
142
146
  return {
143
147
  width: 150,
144
- rowHeaderWidth: 64,
148
+ rowHeaderWidth: hasCustomRowHeader ? 40 + maxNumRowsCount * 8.56 : 64,
145
149
  rowHeight: cellSizeValue
146
150
  };
147
- }, [cellSizeValue]);
151
+ }, [cellSizeValue, hasCustomRowHeader, maxNumRowsCount]);
148
152
  var _useMultipleKeyTracki = useMultipleKeyTracking({
149
153
  ref: multiKeyTrackingRef,
150
154
  containerHasFocus: containerHasFocus,
@@ -654,7 +658,10 @@ var DataSpreadsheet = /*#__PURE__*/React__default.forwardRef(function (_ref, ref
654
658
  headerGroups: headerGroups,
655
659
  defaultColumn: defaultColumn,
656
660
  getTableBodyProps: getTableBodyProps,
661
+ hasCustomRowHeader: hasCustomRowHeader,
657
662
  onDataUpdate: onDataUpdate,
663
+ renderRowHeaderDirection: renderRowHeaderDirection,
664
+ renderRowHeader: renderRowHeader,
658
665
  onActiveCellChange: onActiveCellChange,
659
666
  onSelectionAreaChange: onSelectionAreaChange,
660
667
  prepareRow: prepareRow,
@@ -753,6 +760,10 @@ DataSpreadsheet.propTypes = {
753
760
  * Sets the number of empty rows to be created when there is no data provided
754
761
  */
755
762
  defaultEmptyRowCount: PropTypes.number,
763
+ /**
764
+ * Check if spreadsheet is using custom row header component attached
765
+ */
766
+ hasCustomRowHeader: PropTypes.bool,
756
767
  /**
757
768
  * The spreadsheet id
758
769
  */
@@ -769,6 +780,14 @@ DataSpreadsheet.propTypes = {
769
780
  * The event handler that is called when the selection area values change
770
781
  */
771
782
  onSelectionAreaChange: PropTypes.func,
783
+ /**
784
+ * Component next to numbering rows
785
+ */
786
+ renderRowHeader: PropTypes.func,
787
+ /**
788
+ * Component next to numbering rows
789
+ */
790
+ renderRowHeaderDirection: PropTypes.oneOf(['left', 'right']),
772
791
  /**
773
792
  * The aria label applied to the Select all button
774
793
  */
@@ -52,6 +52,18 @@ interface DataSpreadsheetBodyProps {
52
52
  * The event handler that is called when the active cell changes
53
53
  */
54
54
  onActiveCellChange?: () => void;
55
+ /**
56
+ * Check if user is using custom component
57
+ */
58
+ hasCustomRowHeader?: boolean;
59
+ /**
60
+ * Component next to numbering rows
61
+ */
62
+ renderRowHeader?: (index: number) => any[];
63
+ /**
64
+ * Component next to numbering rows
65
+ */
66
+ renderRowHeaderDirection?: string;
55
67
  /**
56
68
  * The event handler that is called to set the rows for the empty spreadsheet
57
69
  */
@@ -35,6 +35,9 @@ var DataSpreadsheetBody = /*#__PURE__*/forwardRef(function (_ref, ref) {
35
35
  headerGroups = _ref.headerGroups,
36
36
  id = _ref.id,
37
37
  onDataUpdate = _ref.onDataUpdate,
38
+ renderRowHeader = _ref.renderRowHeader,
39
+ renderRowHeaderDirection = _ref.renderRowHeaderDirection,
40
+ hasCustomRowHeader = _ref.hasCustomRowHeader,
38
41
  prepareRow = _ref.prepareRow,
39
42
  rows = _ref.rows,
40
43
  selectionAreaData = _ref.selectionAreaData,
@@ -138,7 +141,7 @@ var DataSpreadsheetBody = /*#__PURE__*/forwardRef(function (_ref, ref) {
138
141
  return;
139
142
  });
140
143
  }
141
- }, [selectionAreas, setSelectionAreas, defaultColumn, onSelectionAreaChange, setSelectionAreaData, ref, activeCellCoordinates, setActiveCellInsideSelectionArea, visibleColumns]);
144
+ }, [selectionAreas, setSelectionAreas, defaultColumn, onSelectionAreaChange, setSelectionAreaData, ref, activeCellCoordinates, setActiveCellInsideSelectionArea, visibleColumns, hasCustomRowHeader]);
142
145
  var populateSelectionAreaCellData = function populateSelectionAreaCellData(_ref2) {
143
146
  var rowStart = _ref2.rowStart,
144
147
  rowEnd = _ref2.rowEnd,
@@ -212,7 +215,7 @@ var DataSpreadsheetBody = /*#__PURE__*/forwardRef(function (_ref, ref) {
212
215
  });
213
216
  }
214
217
  }
215
- }, [defaultColumn, ref, activeCellCoordinates, previousState === null || previousState === void 0 ? void 0 : previousState.rowHeight, selectionAreas, setActiveCellInsideSelectionArea, setSelectionAreas, visibleColumns]);
218
+ }, [defaultColumn, ref, activeCellCoordinates, previousState === null || previousState === void 0 ? void 0 : previousState.rowHeight, selectionAreas, setActiveCellInsideSelectionArea, setSelectionAreas, visibleColumns, hasCustomRowHeader]);
216
219
 
217
220
  //this method will check for any duplicate selection area and remove.
218
221
  //same selections are those have the same height, width, top, left styles. These inline styles are being set in createCellSelection util.
@@ -338,11 +341,12 @@ var DataSpreadsheetBody = /*#__PURE__*/forwardRef(function (_ref, ref) {
338
341
  "data-column-index": "header",
339
342
  type: "button",
340
343
  onClick: handleRowHeaderClickEvent(index),
341
- className: cx("".concat(blockClass, "__td"), "".concat(blockClass, "__td-th"), "".concat(blockClass, "--interactive-cell-element"), _defineProperty(_defineProperty({}, "".concat(blockClass, "__td-th--active-header"), (activeCellCoordinates === null || activeCellCoordinates === void 0 ? void 0 : activeCellCoordinates.row) === index || checkActiveHeaderCell(index, selectionAreas, 'row')), "".concat(blockClass, "__td-th--selected-header"), checkSelectedHeaderCell(index, selectionAreas, 'row', columns))),
344
+ className: cx("".concat(blockClass, "__td"), "".concat(blockClass, "__td-th"), "".concat(blockClass, "--interactive-cell-element"), _defineProperty(_defineProperty(_defineProperty({}, "".concat(blockClass, "__td_custom"), hasCustomRowHeader ? true : false), "".concat(blockClass, "__td-th--active-header"), !hasCustomRowHeader && ((activeCellCoordinates === null || activeCellCoordinates === void 0 ? void 0 : activeCellCoordinates.row) === index || checkActiveHeaderCell(index, selectionAreas, 'row'))), "".concat(blockClass, "__td-th--selected-header"), !hasCustomRowHeader && checkSelectedHeaderCell(index, selectionAreas, 'row', columns))),
342
345
  style: {
343
- width: defaultColumn === null || defaultColumn === void 0 ? void 0 : defaultColumn.rowHeaderWidth
346
+ width: defaultColumn === null || defaultColumn === void 0 ? void 0 : defaultColumn.rowHeaderWidth,
347
+ flexDirection: hasCustomRowHeader ? renderRowHeaderDirection === 'Left' ? 'row-reverse' : row : undefined
344
348
  }
345
- }, index + 1)), row.cells.map(function (cell, index) {
349
+ }, index + 1, hasCustomRowHeader && typeof renderRowHeader === 'function' && renderRowHeader(index))), row.cells.map(function (cell, index) {
346
350
  var _cell$column;
347
351
  var cellProps = prepareProps(cell.getCellProps(), 'key');
348
352
  return /*#__PURE__*/React__default.createElement("div", _extends({
@@ -367,7 +371,7 @@ var DataSpreadsheetBody = /*#__PURE__*/forwardRef(function (_ref, ref) {
367
371
  }, cell.render('Cell')));
368
372
  }));
369
373
  }
370
- }, [prepareRow, rows, activeCellCoordinates === null || activeCellCoordinates === void 0 ? void 0 : activeCellCoordinates.row, selectionAreas, handleRowHeaderClickEvent, handleBodyCellClickEvent, handleBodyCellHoverEvent, defaultColumn, columns]);
374
+ }, [prepareRow, renderRowHeader, renderRowHeaderDirection, rows, hasCustomRowHeader, activeCellCoordinates === null || activeCellCoordinates === void 0 ? void 0 : activeCellCoordinates.row, selectionAreas, handleRowHeaderClickEvent, handleBodyCellClickEvent, handleBodyCellHoverEvent, defaultColumn, columns]);
371
375
  var spreadsheetBodyRef = useRef();
372
376
  return /*#__PURE__*/React__default.createElement("div", _extends({
373
377
  ref: spreadsheetBodyRef,
@@ -433,6 +437,10 @@ DataSpreadsheetBody.propTypes = {
433
437
  */
434
438
  /**@ts-ignore */
435
439
  getTableBodyProps: PropTypes.func,
440
+ /**
441
+ * Check if spreadsheet is using custom row header component attached
442
+ */
443
+ hasCustomRowHeader: PropTypes.bool,
436
444
  /**
437
445
  * Headers provided from useTable hook
438
446
  */
@@ -457,6 +465,14 @@ DataSpreadsheetBody.propTypes = {
457
465
  * Prepare row function from react-table
458
466
  */
459
467
  prepareRow: PropTypes.func,
468
+ /**
469
+ * Component next to numbering rows
470
+ */
471
+ renderRowHeader: PropTypes.func,
472
+ /**
473
+ * Component next to numbering rows
474
+ */
475
+ renderRowHeaderDirection: PropTypes.string,
460
476
  /**
461
477
  * All of the spreadsheet row data
462
478
  */
@@ -175,6 +175,9 @@ var DataSpreadsheetHeader = /*#__PURE__*/forwardRef(function (_ref, ref) {
175
175
  "data-row-index": "header",
176
176
  "data-column-index": "header",
177
177
  type: "button",
178
+ style: {
179
+ width: defaultColumn === null || defaultColumn === void 0 ? void 0 : defaultColumn.rowHeaderWidth
180
+ },
178
181
  tabIndex: -1,
179
182
  "aria-label": selectAllAriaLabel,
180
183
  onClick: handleSelectAllClick,
@@ -28,6 +28,10 @@ interface DataSpreadsheetProps {
28
28
  * Sets the number of empty rows to be created when there is no data provided
29
29
  */
30
30
  defaultEmptyRowCount?: number;
31
+ /**
32
+ * Check if has custom row header component attached
33
+ */
34
+ hasCustomRowHeader?: boolean;
31
35
  /**
32
36
  * The spreadsheet id
33
37
  */
@@ -46,6 +50,14 @@ interface DataSpreadsheetProps {
46
50
  * The event handler that is called when the selection area values change
47
51
  */
48
52
  onSelectionAreaChange?: () => void;
53
+ /**
54
+ * Position of the custom row numbering component
55
+ */
56
+ renderRowHeaderDirection?: 'left' | 'right';
57
+ /**
58
+ * Component next to numbering rows
59
+ */
60
+ renderRowHeader?: (index: number) => any[];
49
61
  /**
50
62
  * The aria label applied to the Select all button
51
63
  */
@@ -41,7 +41,7 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau
41
41
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
42
42
  var cx__default = /*#__PURE__*/_interopDefaultLegacy(cx);
43
43
 
44
- var _excluded = ["cellSize", "className", "columns", "data", "defaultEmptyRowCount", "onDataUpdate", "id", "onActiveCellChange", "onSelectionAreaChange", "selectAllAriaLabel", "spreadsheetAriaLabel", "theme", "totalVisibleColumns"];
44
+ var _excluded = ["cellSize", "className", "columns", "data", "defaultEmptyRowCount", "onDataUpdate", "id", "onActiveCellChange", "onSelectionAreaChange", "renderRowHeader", "renderRowHeaderDirection", "selectAllAriaLabel", "spreadsheetAriaLabel", "theme", "totalVisibleColumns"];
45
45
  // The block part of our conventional BEM class names (blockClass__E--M).
46
46
  var blockClass = "".concat(settings.pkg.prefix, "--data-spreadsheet");
47
47
  var componentName = 'DataSpreadsheet';
@@ -76,6 +76,8 @@ exports.DataSpreadsheet = /*#__PURE__*/React__default["default"].forwardRef(func
76
76
  onActiveCellChange = _ref$onActiveCellChan === void 0 ? defaults.onActiveCellChange : _ref$onActiveCellChan,
77
77
  _ref$onSelectionAreaC = _ref.onSelectionAreaChange,
78
78
  onSelectionAreaChange = _ref$onSelectionAreaC === void 0 ? defaults.onSelectionAreaChange : _ref$onSelectionAreaC,
79
+ renderRowHeader = _ref.renderRowHeader,
80
+ renderRowHeaderDirection = _ref.renderRowHeaderDirection,
79
81
  selectAllAriaLabel = _ref.selectAllAriaLabel,
80
82
  spreadsheetAriaLabel = _ref.spreadsheetAriaLabel,
81
83
  theme = _ref.theme,
@@ -147,13 +149,15 @@ exports.DataSpreadsheet = /*#__PURE__*/React__default["default"].forwardRef(func
147
149
  setActiveCellContent = _useState26[1];
148
150
  var activeCellRef = React.useRef();
149
151
  var cellEditorRulerRef = React.useRef();
152
+ var hasCustomRowHeader = typeof renderRowHeader === 'function';
153
+ var maxNumRowsCount = data.length.toString().length;
150
154
  var defaultColumn = React.useMemo(function () {
151
155
  return {
152
156
  width: 150,
153
- rowHeaderWidth: 64,
157
+ rowHeaderWidth: hasCustomRowHeader ? 40 + maxNumRowsCount * 8.56 : 64,
154
158
  rowHeight: cellSizeValue
155
159
  };
156
- }, [cellSizeValue]);
160
+ }, [cellSizeValue, hasCustomRowHeader, maxNumRowsCount]);
157
161
  var _useMultipleKeyTracki = useMultipleKeyTracking.useMultipleKeyTracking({
158
162
  ref: multiKeyTrackingRef,
159
163
  containerHasFocus: containerHasFocus,
@@ -663,7 +667,10 @@ exports.DataSpreadsheet = /*#__PURE__*/React__default["default"].forwardRef(func
663
667
  headerGroups: headerGroups,
664
668
  defaultColumn: defaultColumn,
665
669
  getTableBodyProps: getTableBodyProps,
670
+ hasCustomRowHeader: hasCustomRowHeader,
666
671
  onDataUpdate: onDataUpdate,
672
+ renderRowHeaderDirection: renderRowHeaderDirection,
673
+ renderRowHeader: renderRowHeader,
667
674
  onActiveCellChange: onActiveCellChange,
668
675
  onSelectionAreaChange: onSelectionAreaChange,
669
676
  prepareRow: prepareRow,
@@ -762,6 +769,10 @@ exports.DataSpreadsheet.propTypes = {
762
769
  * Sets the number of empty rows to be created when there is no data provided
763
770
  */
764
771
  defaultEmptyRowCount: index["default"].number,
772
+ /**
773
+ * Check if spreadsheet is using custom row header component attached
774
+ */
775
+ hasCustomRowHeader: index["default"].bool,
765
776
  /**
766
777
  * The spreadsheet id
767
778
  */
@@ -778,6 +789,14 @@ exports.DataSpreadsheet.propTypes = {
778
789
  * The event handler that is called when the selection area values change
779
790
  */
780
791
  onSelectionAreaChange: index["default"].func,
792
+ /**
793
+ * Component next to numbering rows
794
+ */
795
+ renderRowHeader: index["default"].func,
796
+ /**
797
+ * Component next to numbering rows
798
+ */
799
+ renderRowHeaderDirection: index["default"].oneOf(['left', 'right']),
781
800
  /**
782
801
  * The aria label applied to the Select all button
783
802
  */
@@ -52,6 +52,18 @@ interface DataSpreadsheetBodyProps {
52
52
  * The event handler that is called when the active cell changes
53
53
  */
54
54
  onActiveCellChange?: () => void;
55
+ /**
56
+ * Check if user is using custom component
57
+ */
58
+ hasCustomRowHeader?: boolean;
59
+ /**
60
+ * Component next to numbering rows
61
+ */
62
+ renderRowHeader?: (index: number) => any[];
63
+ /**
64
+ * Component next to numbering rows
65
+ */
66
+ renderRowHeaderDirection?: string;
55
67
  /**
56
68
  * The event handler that is called to set the rows for the empty spreadsheet
57
69
  */
@@ -44,6 +44,9 @@ var DataSpreadsheetBody = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
44
44
  headerGroups = _ref.headerGroups,
45
45
  id = _ref.id,
46
46
  onDataUpdate = _ref.onDataUpdate,
47
+ renderRowHeader = _ref.renderRowHeader,
48
+ renderRowHeaderDirection = _ref.renderRowHeaderDirection,
49
+ hasCustomRowHeader = _ref.hasCustomRowHeader,
47
50
  prepareRow = _ref.prepareRow,
48
51
  rows = _ref.rows,
49
52
  selectionAreaData = _ref.selectionAreaData,
@@ -147,7 +150,7 @@ var DataSpreadsheetBody = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
147
150
  return;
148
151
  });
149
152
  }
150
- }, [selectionAreas, setSelectionAreas, defaultColumn, onSelectionAreaChange, setSelectionAreaData, ref, activeCellCoordinates, setActiveCellInsideSelectionArea, visibleColumns]);
153
+ }, [selectionAreas, setSelectionAreas, defaultColumn, onSelectionAreaChange, setSelectionAreaData, ref, activeCellCoordinates, setActiveCellInsideSelectionArea, visibleColumns, hasCustomRowHeader]);
151
154
  var populateSelectionAreaCellData = function populateSelectionAreaCellData(_ref2) {
152
155
  var rowStart = _ref2.rowStart,
153
156
  rowEnd = _ref2.rowEnd,
@@ -221,7 +224,7 @@ var DataSpreadsheetBody = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
221
224
  });
222
225
  }
223
226
  }
224
- }, [defaultColumn, ref, activeCellCoordinates, previousState === null || previousState === void 0 ? void 0 : previousState.rowHeight, selectionAreas, setActiveCellInsideSelectionArea, setSelectionAreas, visibleColumns]);
227
+ }, [defaultColumn, ref, activeCellCoordinates, previousState === null || previousState === void 0 ? void 0 : previousState.rowHeight, selectionAreas, setActiveCellInsideSelectionArea, setSelectionAreas, visibleColumns, hasCustomRowHeader]);
225
228
 
226
229
  //this method will check for any duplicate selection area and remove.
227
230
  //same selections are those have the same height, width, top, left styles. These inline styles are being set in createCellSelection util.
@@ -347,11 +350,12 @@ var DataSpreadsheetBody = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
347
350
  "data-column-index": "header",
348
351
  type: "button",
349
352
  onClick: handleRowHeaderClickEvent(index),
350
- className: cx__default["default"]("".concat(blockClass, "__td"), "".concat(blockClass, "__td-th"), "".concat(blockClass, "--interactive-cell-element"), _rollupPluginBabelHelpers.defineProperty(_rollupPluginBabelHelpers.defineProperty({}, "".concat(blockClass, "__td-th--active-header"), (activeCellCoordinates === null || activeCellCoordinates === void 0 ? void 0 : activeCellCoordinates.row) === index || checkActiveHeaderCell.checkActiveHeaderCell(index, selectionAreas, 'row')), "".concat(blockClass, "__td-th--selected-header"), checkSelectedHeaderCell.checkSelectedHeaderCell(index, selectionAreas, 'row', columns))),
353
+ className: cx__default["default"]("".concat(blockClass, "__td"), "".concat(blockClass, "__td-th"), "".concat(blockClass, "--interactive-cell-element"), _rollupPluginBabelHelpers.defineProperty(_rollupPluginBabelHelpers.defineProperty(_rollupPluginBabelHelpers.defineProperty({}, "".concat(blockClass, "__td_custom"), hasCustomRowHeader ? true : false), "".concat(blockClass, "__td-th--active-header"), !hasCustomRowHeader && ((activeCellCoordinates === null || activeCellCoordinates === void 0 ? void 0 : activeCellCoordinates.row) === index || checkActiveHeaderCell.checkActiveHeaderCell(index, selectionAreas, 'row'))), "".concat(blockClass, "__td-th--selected-header"), !hasCustomRowHeader && checkSelectedHeaderCell.checkSelectedHeaderCell(index, selectionAreas, 'row', columns))),
351
354
  style: {
352
- width: defaultColumn === null || defaultColumn === void 0 ? void 0 : defaultColumn.rowHeaderWidth
355
+ width: defaultColumn === null || defaultColumn === void 0 ? void 0 : defaultColumn.rowHeaderWidth,
356
+ flexDirection: hasCustomRowHeader ? renderRowHeaderDirection === 'Left' ? 'row-reverse' : row : undefined
353
357
  }
354
- }, index + 1)), row.cells.map(function (cell, index) {
358
+ }, index + 1, hasCustomRowHeader && typeof renderRowHeader === 'function' && renderRowHeader(index))), row.cells.map(function (cell, index) {
355
359
  var _cell$column;
356
360
  var cellProps = propsHelper.prepareProps(cell.getCellProps(), 'key');
357
361
  return /*#__PURE__*/React__default["default"].createElement("div", _rollupPluginBabelHelpers["extends"]({
@@ -376,7 +380,7 @@ var DataSpreadsheetBody = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
376
380
  }, cell.render('Cell')));
377
381
  }));
378
382
  }
379
- }, [prepareRow, rows, activeCellCoordinates === null || activeCellCoordinates === void 0 ? void 0 : activeCellCoordinates.row, selectionAreas, handleRowHeaderClickEvent, handleBodyCellClickEvent, handleBodyCellHoverEvent, defaultColumn, columns]);
383
+ }, [prepareRow, renderRowHeader, renderRowHeaderDirection, rows, hasCustomRowHeader, activeCellCoordinates === null || activeCellCoordinates === void 0 ? void 0 : activeCellCoordinates.row, selectionAreas, handleRowHeaderClickEvent, handleBodyCellClickEvent, handleBodyCellHoverEvent, defaultColumn, columns]);
380
384
  var spreadsheetBodyRef = React.useRef();
381
385
  return /*#__PURE__*/React__default["default"].createElement("div", _rollupPluginBabelHelpers["extends"]({
382
386
  ref: spreadsheetBodyRef,
@@ -442,6 +446,10 @@ DataSpreadsheetBody.propTypes = {
442
446
  */
443
447
  /**@ts-ignore */
444
448
  getTableBodyProps: index["default"].func,
449
+ /**
450
+ * Check if spreadsheet is using custom row header component attached
451
+ */
452
+ hasCustomRowHeader: index["default"].bool,
445
453
  /**
446
454
  * Headers provided from useTable hook
447
455
  */
@@ -466,6 +474,14 @@ DataSpreadsheetBody.propTypes = {
466
474
  * Prepare row function from react-table
467
475
  */
468
476
  prepareRow: index["default"].func,
477
+ /**
478
+ * Component next to numbering rows
479
+ */
480
+ renderRowHeader: index["default"].func,
481
+ /**
482
+ * Component next to numbering rows
483
+ */
484
+ renderRowHeaderDirection: index["default"].string,
469
485
  /**
470
486
  * All of the spreadsheet row data
471
487
  */
@@ -184,6 +184,9 @@ var DataSpreadsheetHeader = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
184
184
  "data-row-index": "header",
185
185
  "data-column-index": "header",
186
186
  type: "button",
187
+ style: {
188
+ width: defaultColumn === null || defaultColumn === void 0 ? void 0 : defaultColumn.rowHeaderWidth
189
+ },
187
190
  tabIndex: -1,
188
191
  "aria-label": selectAllAriaLabel,
189
192
  onClick: handleSelectAllClick,
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@carbon/ibm-products",
3
3
  "description": "Carbon for IBM Products",
4
- "version": "2.43.2-canary.31+97156281c",
4
+ "version": "2.43.2-canary.32+ee749e448",
5
5
  "license": "Apache-2.0",
6
6
  "main": "lib/index.js",
7
7
  "module": "es/index.js",
@@ -95,7 +95,7 @@
95
95
  "dependencies": {
96
96
  "@babel/runtime": "^7.23.9",
97
97
  "@carbon/feature-flags": "^0.20.0",
98
- "@carbon/ibm-products-styles": "^2.39.0",
98
+ "@carbon/ibm-products-styles": "^2.39.1-canary.42+ee749e448",
99
99
  "@carbon/telemetry": "^0.1.0",
100
100
  "@dnd-kit/core": "^6.0.8",
101
101
  "@dnd-kit/modifiers": "^7.0.0",
@@ -119,5 +119,5 @@
119
119
  "react": "^16.8.6 || ^17.0.1 || ^18.2.0",
120
120
  "react-dom": "^16.8.6 || ^17.0.1 || ^18.2.0"
121
121
  },
122
- "gitHead": "97156281c7fc1d54f5bd34ebcefedc5f2b616de4"
122
+ "gitHead": "ee749e4485e15c30b850b9dfc3a12927d23885b0"
123
123
  }
@@ -201,6 +201,13 @@ $header-cell-background: $layer-accent-01;
201
201
  outline: 0;
202
202
  }
203
203
  }
204
+
205
+ .#{$block-class}__td-th.#{$block-class}__td_custom {
206
+ align-items: center;
207
+ justify-content: center;
208
+ gap: $spacing-03;
209
+ }
210
+
204
211
  .#{$block-class}__selection-area--element {
205
212
  position: absolute;
206
213
  z-index: 2;