@carbon/ibm-products 2.43.2-canary.9 → 2.44.0-rc.1

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.
Files changed (185) hide show
  1. package/css/index-full-carbon.css +51 -3
  2. package/css/index-full-carbon.css.map +1 -1
  3. package/css/index-full-carbon.min.css +1 -1
  4. package/css/index-full-carbon.min.css.map +1 -1
  5. package/css/index-without-carbon-released-only.css +12 -0
  6. package/css/index-without-carbon-released-only.css.map +1 -1
  7. package/css/index-without-carbon-released-only.min.css +1 -1
  8. package/css/index-without-carbon-released-only.min.css.map +1 -1
  9. package/css/index-without-carbon.css +51 -3
  10. package/css/index-without-carbon.css.map +1 -1
  11. package/css/index-without-carbon.min.css +1 -1
  12. package/css/index-without-carbon.min.css.map +1 -1
  13. package/css/index.css +51 -3
  14. package/css/index.css.map +1 -1
  15. package/css/index.min.css +1 -1
  16. package/css/index.min.css.map +1 -1
  17. package/es/components/ConditionBuilder/ConditionBlock/ConditionBlock.js +23 -21
  18. package/es/components/ConditionBuilder/ConditionBuilder.js +67 -20
  19. package/es/components/ConditionBuilder/ConditionBuilderActions/ConditionBuilderActions.d.ts +15 -0
  20. package/es/components/ConditionBuilder/ConditionBuilderActions/ConditionBuilderActions.js +129 -0
  21. package/es/components/ConditionBuilder/ConditionBuilderAdd/ConditionBuilderAdd.js +6 -4
  22. package/es/components/ConditionBuilder/ConditionBuilderButton/ConditionBuilderButton.d.ts +5 -1
  23. package/es/components/ConditionBuilder/ConditionBuilderButton/ConditionBuilderButton.js +16 -4
  24. package/es/components/ConditionBuilder/ConditionBuilderConnector/ConditionConnector.js +2 -2
  25. package/es/components/ConditionBuilder/ConditionBuilderConnector/GroupConnector.js +2 -2
  26. package/es/components/ConditionBuilder/ConditionBuilderContent/ConditionBuilderContent.d.ts +9 -11
  27. package/es/components/ConditionBuilder/ConditionBuilderContent/ConditionBuilderContent.js +36 -32
  28. package/es/components/ConditionBuilder/ConditionBuilderContext/ConditionBuilderProvider.d.ts +0 -1
  29. package/es/components/ConditionBuilder/ConditionBuilderContext/ConditionBuilderProvider.js +7 -2
  30. package/es/components/ConditionBuilder/ConditionBuilderContext/DataConfigs.d.ts +6 -1
  31. package/es/components/ConditionBuilder/ConditionBuilderContext/DataConfigs.js +18 -10
  32. package/es/components/ConditionBuilder/ConditionBuilderContext/translationObject.d.ts +39 -36
  33. package/es/components/ConditionBuilder/ConditionBuilderContext/translationObject.js +12 -10
  34. package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItem.d.ts +1 -1
  35. package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItem.js +24 -16
  36. package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemNumber/ConditionBuilderItemNumber.js +19 -4
  37. package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemOption/ItemOption.d.ts +13 -0
  38. package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemOption/ItemOption.js +109 -0
  39. package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemOption/{ConditionBuilderItemOption.d.ts → ItemOptionForValueField.d.ts} +2 -2
  40. package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemOption/{ConditionBuilderItemOption.js → ItemOptionForValueField.js} +58 -33
  41. package/es/components/ConditionBuilder/ConditionGroupBuilder/ConditionGroupBuilder.js +4 -6
  42. package/es/components/ConditionBuilder/ConditionPreview/ConditionPreview.js +14 -5
  43. package/es/components/ConditionBuilder/utils/handleKeyboardEvents.js +1 -2
  44. package/es/components/ConditionBuilder/utils/util.d.ts +1 -0
  45. package/es/components/ConditionBuilder/utils/util.js +16 -1
  46. package/es/components/DataSpreadsheet/DataSpreadsheet.d.ts +12 -0
  47. package/es/components/DataSpreadsheet/DataSpreadsheet.js +29 -7
  48. package/es/components/DataSpreadsheet/DataSpreadsheetBody.d.ts +12 -0
  49. package/es/components/DataSpreadsheet/DataSpreadsheetBody.js +22 -6
  50. package/es/components/DataSpreadsheet/DataSpreadsheetHeader.js +3 -0
  51. package/es/components/Datagrid/Datagrid/Datagrid.js +2 -1
  52. package/es/components/Datagrid/Datagrid/DatagridContent.js +1 -1
  53. package/es/components/Datagrid/Datagrid/DatagridHeaderRow.js +11 -1
  54. package/es/components/Datagrid/Datagrid/DatagridRow.js +13 -2
  55. package/es/components/Datagrid/Datagrid/addons/Filtering/FilterFlyout.js +6 -1
  56. package/es/components/Datagrid/Datagrid/addons/Filtering/FilterPanel.js +6 -1
  57. package/es/components/Datagrid/Datagrid/addons/Filtering/FilterProvider.d.ts +3 -1
  58. package/es/components/Datagrid/Datagrid/addons/Filtering/FilterProvider.js +6 -3
  59. package/es/components/Datagrid/Datagrid/addons/Filtering/hooks/useFilters.d.ts +1 -1
  60. package/es/components/Datagrid/Datagrid/addons/Filtering/hooks/useFilters.js +21 -16
  61. package/es/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditButton/InlineEditButton.js +1 -1
  62. package/es/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditCell/InlineEditCell.js +74 -11
  63. package/es/components/Datagrid/Datagrid/addons/InlineEdit/handleGridKeyPress.js +10 -2
  64. package/es/components/Datagrid/types/index.d.ts +18 -4
  65. package/es/components/Datagrid/useActionsColumn.d.ts +8 -1
  66. package/es/components/Datagrid/useActionsColumn.js +7 -6
  67. package/es/components/Datagrid/useColumnRightAlign.d.ts +8 -1
  68. package/es/components/Datagrid/useColumnRightAlign.js +4 -3
  69. package/es/components/Datagrid/useInlineEdit.js +12 -2
  70. package/es/components/Datagrid/useNestedRows.js +32 -13
  71. package/es/components/Decorator/Decorator.js +2 -1
  72. package/es/components/DecoratorBase/DecoratorBase.js +3 -5
  73. package/es/components/DecoratorDualButton/DecoratorDualButton.js +2 -1
  74. package/es/components/DecoratorLink/DecoratorLink.js +2 -1
  75. package/es/components/DecoratorSingleButton/DecoratorSingleButton.js +2 -1
  76. package/es/components/EditTearsheet/EditTearsheet.d.ts +5 -1
  77. package/es/components/EditTearsheet/EditTearsheet.js +0 -1
  78. package/es/components/EditTearsheet/EditTearsheetForm.d.ts +45 -2
  79. package/es/components/EditTearsheet/EditTearsheetForm.js +3 -0
  80. package/es/components/HTTPErrors/HTTPError403/HTTPError403.js +6 -0
  81. package/es/components/HTTPErrors/HTTPError404/HTTPError404.js +6 -0
  82. package/es/components/HTTPErrors/HTTPErrorOther/HTTPErrorOther.js +6 -0
  83. package/es/components/RemoveModal/RemoveModal.d.ts +4 -0
  84. package/es/components/RemoveModal/RemoveModal.js +7 -1
  85. package/es/components/StatusIndicator/StatusIndicatorStep.js +87 -0
  86. package/es/components/Tearsheet/Tearsheet.d.ts +8 -1
  87. package/es/components/Tearsheet/Tearsheet.js +9 -1
  88. package/es/components/Tearsheet/TearsheetNarrow.d.ts +11 -0
  89. package/es/components/Tearsheet/TearsheetNarrow.js +12 -0
  90. package/es/components/Tearsheet/TearsheetShell.d.ts +10 -0
  91. package/es/components/Tearsheet/TearsheetShell.js +17 -3
  92. package/es/components/Toolbar/ToolbarButton.js +1 -1
  93. package/es/components/index.d.ts +1 -1
  94. package/es/index.js +1 -0
  95. package/lib/components/ConditionBuilder/ConditionBlock/ConditionBlock.js +23 -21
  96. package/lib/components/ConditionBuilder/ConditionBuilder.js +67 -20
  97. package/lib/components/ConditionBuilder/ConditionBuilderActions/ConditionBuilderActions.d.ts +15 -0
  98. package/lib/components/ConditionBuilder/ConditionBuilderActions/ConditionBuilderActions.js +137 -0
  99. package/lib/components/ConditionBuilder/ConditionBuilderAdd/ConditionBuilderAdd.js +6 -3
  100. package/lib/components/ConditionBuilder/ConditionBuilderButton/ConditionBuilderButton.d.ts +5 -1
  101. package/lib/components/ConditionBuilder/ConditionBuilderButton/ConditionBuilderButton.js +16 -4
  102. package/lib/components/ConditionBuilder/ConditionBuilderConnector/ConditionConnector.js +2 -2
  103. package/lib/components/ConditionBuilder/ConditionBuilderConnector/GroupConnector.js +2 -2
  104. package/lib/components/ConditionBuilder/ConditionBuilderContent/ConditionBuilderContent.d.ts +9 -11
  105. package/lib/components/ConditionBuilder/ConditionBuilderContent/ConditionBuilderContent.js +36 -32
  106. package/lib/components/ConditionBuilder/ConditionBuilderContext/ConditionBuilderProvider.d.ts +0 -1
  107. package/lib/components/ConditionBuilder/ConditionBuilderContext/ConditionBuilderProvider.js +7 -2
  108. package/lib/components/ConditionBuilder/ConditionBuilderContext/DataConfigs.d.ts +6 -1
  109. package/lib/components/ConditionBuilder/ConditionBuilderContext/DataConfigs.js +18 -10
  110. package/lib/components/ConditionBuilder/ConditionBuilderContext/translationObject.d.ts +39 -36
  111. package/lib/components/ConditionBuilder/ConditionBuilderContext/translationObject.js +12 -10
  112. package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItem.d.ts +1 -1
  113. package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItem.js +23 -15
  114. package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemNumber/ConditionBuilderItemNumber.js +20 -5
  115. package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemOption/ItemOption.d.ts +13 -0
  116. package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemOption/ItemOption.js +117 -0
  117. package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemOption/{ConditionBuilderItemOption.d.ts → ItemOptionForValueField.d.ts} +2 -2
  118. package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemOption/{ConditionBuilderItemOption.js → ItemOptionForValueField.js} +56 -31
  119. package/lib/components/ConditionBuilder/ConditionGroupBuilder/ConditionGroupBuilder.js +4 -6
  120. package/lib/components/ConditionBuilder/ConditionPreview/ConditionPreview.js +14 -4
  121. package/lib/components/ConditionBuilder/utils/handleKeyboardEvents.js +1 -2
  122. package/lib/components/ConditionBuilder/utils/util.d.ts +1 -0
  123. package/lib/components/ConditionBuilder/utils/util.js +17 -0
  124. package/lib/components/DataSpreadsheet/DataSpreadsheet.d.ts +12 -0
  125. package/lib/components/DataSpreadsheet/DataSpreadsheet.js +29 -7
  126. package/lib/components/DataSpreadsheet/DataSpreadsheetBody.d.ts +12 -0
  127. package/lib/components/DataSpreadsheet/DataSpreadsheetBody.js +22 -6
  128. package/lib/components/DataSpreadsheet/DataSpreadsheetHeader.js +3 -0
  129. package/lib/components/Datagrid/Datagrid/Datagrid.js +2 -1
  130. package/lib/components/Datagrid/Datagrid/DatagridContent.js +1 -1
  131. package/lib/components/Datagrid/Datagrid/DatagridHeaderRow.js +11 -1
  132. package/lib/components/Datagrid/Datagrid/DatagridRow.js +13 -2
  133. package/lib/components/Datagrid/Datagrid/addons/Filtering/FilterFlyout.js +6 -1
  134. package/lib/components/Datagrid/Datagrid/addons/Filtering/FilterPanel.js +6 -1
  135. package/lib/components/Datagrid/Datagrid/addons/Filtering/FilterProvider.d.ts +3 -1
  136. package/lib/components/Datagrid/Datagrid/addons/Filtering/FilterProvider.js +6 -3
  137. package/lib/components/Datagrid/Datagrid/addons/Filtering/hooks/useFilters.d.ts +1 -1
  138. package/lib/components/Datagrid/Datagrid/addons/Filtering/hooks/useFilters.js +21 -16
  139. package/lib/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditButton/InlineEditButton.js +1 -1
  140. package/lib/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditCell/InlineEditCell.js +73 -10
  141. package/lib/components/Datagrid/Datagrid/addons/InlineEdit/handleGridKeyPress.js +10 -2
  142. package/lib/components/Datagrid/types/index.d.ts +18 -4
  143. package/lib/components/Datagrid/useActionsColumn.d.ts +8 -1
  144. package/lib/components/Datagrid/useActionsColumn.js +7 -6
  145. package/lib/components/Datagrid/useColumnRightAlign.d.ts +8 -1
  146. package/lib/components/Datagrid/useColumnRightAlign.js +4 -3
  147. package/lib/components/Datagrid/useInlineEdit.js +12 -2
  148. package/lib/components/Datagrid/useNestedRows.js +32 -13
  149. package/lib/components/Decorator/Decorator.js +2 -1
  150. package/lib/components/DecoratorBase/DecoratorBase.js +3 -5
  151. package/lib/components/DecoratorDualButton/DecoratorDualButton.js +2 -1
  152. package/lib/components/DecoratorLink/DecoratorLink.js +2 -1
  153. package/lib/components/DecoratorSingleButton/DecoratorSingleButton.js +2 -1
  154. package/lib/components/EditTearsheet/EditTearsheet.d.ts +5 -1
  155. package/lib/components/EditTearsheet/EditTearsheet.js +0 -1
  156. package/lib/components/EditTearsheet/EditTearsheetForm.d.ts +45 -2
  157. package/lib/components/EditTearsheet/EditTearsheetForm.js +3 -0
  158. package/lib/components/HTTPErrors/HTTPError403/HTTPError403.js +6 -0
  159. package/lib/components/HTTPErrors/HTTPError404/HTTPError404.js +6 -0
  160. package/lib/components/HTTPErrors/HTTPErrorOther/HTTPErrorOther.js +6 -0
  161. package/lib/components/RemoveModal/RemoveModal.d.ts +4 -0
  162. package/lib/components/RemoveModal/RemoveModal.js +7 -1
  163. package/lib/components/StatusIndicator/StatusIndicatorStep.js +94 -0
  164. package/lib/components/Tearsheet/Tearsheet.d.ts +8 -1
  165. package/lib/components/Tearsheet/Tearsheet.js +9 -1
  166. package/lib/components/Tearsheet/TearsheetNarrow.d.ts +11 -0
  167. package/lib/components/Tearsheet/TearsheetNarrow.js +12 -0
  168. package/lib/components/Tearsheet/TearsheetShell.d.ts +10 -0
  169. package/lib/components/Tearsheet/TearsheetShell.js +16 -2
  170. package/lib/components/Toolbar/ToolbarButton.js +1 -1
  171. package/lib/components/index.d.ts +1 -1
  172. package/lib/index.js +5 -0
  173. package/package.json +7 -6
  174. package/scss/components/ConditionBuilder/styles/_conditionBuilderCondition.scss +9 -1
  175. package/scss/components/ConditionBuilder/styles/_conditionBuilderItem.scss +26 -1
  176. package/scss/components/DataSpreadsheet/_data-spreadsheet.scss +7 -0
  177. package/scss/components/Datagrid/styles/_useInlineEdit.scss +13 -0
  178. package/scss/components/StatusIcon/_status-icon.scss +4 -4
  179. package/scss/components/StringFormatter/_string-formatter.scss +2 -2
  180. package/scss/components/UserProfileImage/_user-profile-image.scss +6 -2
  181. package/telemetry.yml +15 -3
  182. package/es/components/ConditionBuilder/utils/checkForHoldingKey.d.ts +0 -1
  183. package/es/components/ConditionBuilder/utils/checkForHoldingKey.js +0 -16
  184. package/lib/components/ConditionBuilder/utils/checkForHoldingKey.d.ts +0 -1
  185. package/lib/components/ConditionBuilder/utils/checkForHoldingKey.js +0 -20
@@ -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,
@@ -46,7 +46,8 @@ var Datagrid = /*#__PURE__*/React__default.forwardRef(function (_ref, ref) {
46
46
  };
47
47
  return /*#__PURE__*/React__default.createElement(FilterProvider, {
48
48
  filters: state === null || state === void 0 ? void 0 : state.filters,
49
- filterProps: filterProps
49
+ filterProps: filterProps,
50
+ tableId: tableId
50
51
  }, /*#__PURE__*/React__default.createElement(InlineEditProvider, null, /*#__PURE__*/React__default.createElement("div", _extends({}, rest, {
51
52
  id: tableId,
52
53
  ref: ref,
@@ -158,7 +158,7 @@ var DatagridContent = function DatagridContent(_ref) {
158
158
  className: "".concat(blockClass, "__filter-summary"),
159
159
  filters: filterTags,
160
160
  clearFilters: function clearFilters() {
161
- return EventEmitter.dispatch(CLEAR_FILTERS);
161
+ return EventEmitter.dispatch(CLEAR_FILTERS, tableId);
162
162
  },
163
163
  renderLabel: filterProps === null || filterProps === void 0 ? void 0 : filterProps.renderLabel,
164
164
  overflowType: "tag"
@@ -90,7 +90,8 @@ var HeaderRow = function HeaderRow(datagridState, headRef, headerGroup) {
90
90
  var resizerAriaLabel = datagridState.resizerAriaLabel,
91
91
  isTableSortable = datagridState.isTableSortable,
92
92
  rows = datagridState.rows,
93
- isFetching = datagridState.isFetching;
93
+ isFetching = datagridState.isFetching,
94
+ headers = datagridState.headers;
94
95
  useInitialColumnSort(datagridState);
95
96
  // Used to measure the height of the table and uses that value
96
97
  // to display a vertical line to indicate the column you are resizing
@@ -152,6 +153,9 @@ var HeaderRow = function HeaderRow(datagridState, headRef, headerGroup) {
152
153
  });
153
154
  var key = headerGroupProps.key,
154
155
  rowProps = _objectWithoutProperties(headerGroupProps, _excluded2);
156
+ var withActionsColumn = headers ? !!headers.filter(function (header) {
157
+ return header.isAction;
158
+ }).length : false;
155
159
  return /*#__PURE__*/React__default.createElement(TableRow, _extends({
156
160
  key: key
157
161
  }, rowProps, {
@@ -184,6 +188,12 @@ var HeaderRow = function HeaderRow(datagridState, headRef, headerGroup) {
184
188
  var _header$getHeaderProp = header.getHeaderProps(),
185
189
  headerProps = _extends({}, (_objectDestructuringEmpty(_header$getHeaderProp), _header$getHeaderProp));
186
190
  var resizerProps = header === null || header === void 0 || (_header$getResizerPro = header.getResizerProps) === null || _header$getResizerPro === void 0 ? void 0 : _header$getResizerPro.call(header);
191
+ var headerStyle = headerProps === null || headerProps === void 0 ? void 0 : headerProps.style;
192
+ var lastVisibleIndex = withActionsColumn ? 2 : 1;
193
+ var lastVisibleFlexStyle = index === visibleColumns.length - lastVisibleIndex ? '1 1 0' : '0 0 auto';
194
+ if (headerStyle) {
195
+ headerStyle.flex = lastVisibleFlexStyle;
196
+ }
187
197
  return /*#__PURE__*/React__default.createElement(TableHeader, _extends({}, headerProps, {
188
198
  className: cx(header === null || header === void 0 ? void 0 : header.className, _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({}, "".concat(blockClass, "__resizableColumn"), resizerProps), "".concat(blockClass, "__isResizing"), header === null || header === void 0 ? void 0 : header.isResizing), "".concat(blockClass, "__sortableColumn"), datagridState.isTableSortable && header.id !== 'spacer'), "".concat(blockClass, "__isSorted"), header === null || header === void 0 ? void 0 : header.isSorted), "".concat(blockClass, "__header-actions-column"), header === null || header === void 0 ? void 0 : header.isAction), "".concat(blockClass, "__with-slug"), header.slug && /*#__PURE__*/React__default.isValidElement(header === null || header === void 0 ? void 0 : header.slug)), headerProps.className),
189
199
  key: header.id,
@@ -16,7 +16,7 @@ import { DatagridSlug } from './addons/Slug/DatagridSlug.js';
16
16
 
17
17
  var _SkeletonText;
18
18
  var _excluded = ["className"],
19
- _excluded2 = ["children"];
19
+ _excluded2 = ["style", "children"];
20
20
  var blockClass = "".concat(pkg.prefix, "--datagrid");
21
21
  var rowHeights = {
22
22
  xs: 24,
@@ -39,7 +39,8 @@ var DatagridRow = function DatagridRow(datagridState) {
39
39
  withExpandedRows = datagridState.withExpandedRows,
40
40
  withMouseHover = datagridState.withMouseHover,
41
41
  setMouseOverRowIndex = datagridState.setMouseOverRowIndex,
42
- headers = datagridState.headers;
42
+ headers = datagridState.headers,
43
+ visibleColumns = datagridState.visibleColumns;
43
44
  var getVisibleNestedRowCount = function getVisibleNestedRowCount(_ref) {
44
45
  var isExpanded = _ref.isExpanded,
45
46
  subRows = _ref.subRows;
@@ -115,6 +116,9 @@ var DatagridRow = function DatagridRow(datagridState) {
115
116
  return /*#__PURE__*/isValidElement(r === null || r === void 0 || (_r$original = r.original) === null || _r$original === void 0 ? void 0 : _r$original.slug);
116
117
  });
117
118
  var rowClassNames = cx("".concat(blockClass, "__carbon-row"), _defineProperty(_defineProperty(_defineProperty(_defineProperty({}, "".concat(blockClass, "__carbon-row-expanded"), row.isExpanded), "".concat(blockClass, "__carbon-row-expandable"), row.canExpand), "".concat(carbon.prefix, "--data-table--selected"), row.isSelected), "".concat(blockClass, "__slug--row"), /*#__PURE__*/isValidElement(row === null || row === void 0 || (_row$original = row.original) === null || _row$original === void 0 ? void 0 : _row$original.slug)));
119
+ var withActionsColumn = headers ? !!headers.filter(function (header) {
120
+ return header.isAction;
121
+ }).length : false;
118
122
  return /*#__PURE__*/React__default.createElement(React__default.Fragment, {
119
123
  key: key
120
124
  }, /*#__PURE__*/React__default.createElement(TableRow, _extends({}, rowProps, {
@@ -136,6 +140,7 @@ var DatagridRow = function DatagridRow(datagridState) {
136
140
  var cellProps = cell.getCellProps();
137
141
  // eslint-disable-next-line no-unused-vars
138
142
  var _ref2 = cellProps,
143
+ style = _ref2.style,
139
144
  children = _ref2.children,
140
145
  restProps = _objectWithoutProperties(_ref2, _excluded2);
141
146
  var columnClassname = cell === null || cell === void 0 || (_cell$column = cell.column) === null || _cell$column === void 0 ? void 0 : _cell$column.className;
@@ -150,9 +155,15 @@ var DatagridRow = function DatagridRow(datagridState) {
150
155
  var associatedHeader = headers === null || headers === void 0 ? void 0 : headers.filter(function (h) {
151
156
  return h.id === cell.column.id;
152
157
  });
158
+ var lastVisibleIndex = withActionsColumn ? 2 : 1;
159
+ var lastVisibleFlexStyle = index === visibleColumns.length - lastVisibleIndex ? '1 1 0' : '0 0 auto';
160
+ if (style) {
161
+ style.flex = lastVisibleFlexStyle;
162
+ }
153
163
  return /*#__PURE__*/React__default.createElement(TableCell, _extends({
154
164
  className: cx("".concat(blockClass, "__cell"), _defineProperty(_defineProperty(_defineProperty({}, "".concat(blockClass, "__expandable-row-cell"), row.canExpand && index === 0), "".concat(blockClass, "__expandable-row-cell--is-expanded"), row.isExpanded && index === 0), "".concat(blockClass, "__slug--cell"), associatedHeader && associatedHeader.length && /*#__PURE__*/isValidElement((_associatedHeader$ = associatedHeader[0]) === null || _associatedHeader$ === void 0 ? void 0 : _associatedHeader$.slug)), columnClassname)
155
165
  }, restProps, {
166
+ style: style,
156
167
  key: cell.column.id,
157
168
  title: title
158
169
  }), content);
@@ -209,7 +209,12 @@ var FilterFlyout = function FilterFlyout(_ref) {
209
209
  closeFlyout();
210
210
  cancel();
211
211
  });
212
- useSubscribeToEventEmitter(CLEAR_FILTERS, reset);
212
+
213
+ // tableId is passed in from the event emitter from the FilterSummary component
214
+ // in DatagridContent
215
+ useSubscribeToEventEmitter(CLEAR_FILTERS, function (tableId) {
216
+ reset(tableId);
217
+ });
213
218
  useEffect(function reflectLastAppliedFiltersWhenReactTableUpdates() {
214
219
  lastAppliedFilters.current = JSON.stringify(reactTableFiltersState);
215
220
  }, [reactTableFiltersState, lastAppliedFilters]);
@@ -183,7 +183,12 @@ var FilterPanel = function FilterPanel(_ref) {
183
183
  var _filterPanelRef$curre;
184
184
  (_filterPanelRef$curre = filterPanelRef.current) === null || _filterPanelRef$curre === void 0 || _filterPanelRef$curre.style.setProperty('--filter-panel-min-height', rem(filterPanelMinHeight));
185
185
  }, [filterPanelMinHeight]);
186
- useSubscribeToEventEmitter(CLEAR_FILTERS, reset);
186
+
187
+ // tableId is passed in from the event emitter from the FilterSummary component
188
+ // in DatagridContent
189
+ useSubscribeToEventEmitter(CLEAR_FILTERS, function (tableId) {
190
+ reset(tableId);
191
+ });
187
192
  var getScrollableContainerHeight = function getScrollableContainerHeight() {
188
193
  var _filterHeadingRef$cur, _filterSearchRef$curr, _actionSetRef$current;
189
194
  var filterHeadingHeight = (_filterHeadingRef$cur = filterHeadingRef.current) === null || _filterHeadingRef$cur === void 0 ? void 0 : _filterHeadingRef$cur.getBoundingClientRect().height;
@@ -3,16 +3,18 @@ export function clearSingleFilter({ key, value }: {
3
3
  key: any;
4
4
  value: any;
5
5
  }, setAllFilters: any, state: any): void;
6
- export function FilterProvider({ children, filters, filterProps }: {
6
+ export function FilterProvider({ children, filters, filterProps, tableId }: {
7
7
  children: any;
8
8
  filters: any;
9
9
  filterProps: any;
10
+ tableId: any;
10
11
  }): import("react/jsx-runtime").JSX.Element;
11
12
  export namespace FilterProvider {
12
13
  namespace propTypes {
13
14
  let children: PropTypes.Validator<NonNullable<NonNullable<PropTypes.ReactNodeLike>>>;
14
15
  let filterProps: PropTypes.Requireable<object>;
15
16
  let filters: PropTypes.Validator<(object | null | undefined)[]>;
17
+ let tableId: PropTypes.Requireable<string>;
16
18
  }
17
19
  }
18
20
  import React from 'react';
@@ -156,7 +156,8 @@ var filteringReducer = function filteringReducer(state, action) {
156
156
  var FilterProvider = function FilterProvider(_ref4) {
157
157
  var children = _ref4.children,
158
158
  filters = _ref4.filters,
159
- filterProps = _ref4.filterProps;
159
+ filterProps = _ref4.filterProps,
160
+ tableId = _ref4.tableId;
160
161
  var _ref5 = filterProps || {},
161
162
  renderDateLabel = _ref5.renderDateLabel;
162
163
  var filterTags = prepareFiltersForTags(filters, renderDateLabel);
@@ -177,7 +178,8 @@ var FilterProvider = function FilterProvider(_ref4) {
177
178
  panelOpen: panelOpen,
178
179
  setPanelOpen: setPanelOpen,
179
180
  state: state,
180
- dispatch: dispatch
181
+ dispatch: dispatch,
182
+ tableId: tableId
181
183
  };
182
184
  return /*#__PURE__*/React__default.createElement(FilterContext.Provider, {
183
185
  value: value
@@ -186,7 +188,8 @@ var FilterProvider = function FilterProvider(_ref4) {
186
188
  FilterProvider.propTypes = {
187
189
  children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]).isRequired,
188
190
  filterProps: PropTypes.object,
189
- filters: PropTypes.arrayOf(PropTypes.object).isRequired
191
+ filters: PropTypes.arrayOf(PropTypes.object).isRequired,
192
+ tableId: PropTypes.string
190
193
  };
191
194
 
192
195
  export { FilterContext, FilterProvider, clearSingleFilter };
@@ -15,7 +15,7 @@ declare function useFilters({ updateMethod, filters, setAllFilters, variation, r
15
15
  prevFiltersObjectArrayRef: React.MutableRefObject<string>;
16
16
  prevFiltersRef: React.MutableRefObject<string>;
17
17
  revertToPreviousFilters: () => void;
18
- reset: () => void;
18
+ reset: (tableId: any) => void;
19
19
  renderFilter: ({ type, column, props: components }: {
20
20
  type: any;
21
21
  column: any;
@@ -28,7 +28,8 @@ var useFilters = function useFilters(_ref) {
28
28
  isFetching = _ref.isFetching;
29
29
  var _useContext = useContext(FilterContext),
30
30
  state = _useContext.state,
31
- localDispatch = _useContext.dispatch;
31
+ localDispatch = _useContext.dispatch,
32
+ contextTableId = _useContext.tableId;
32
33
  var savedFilters = state.savedFilters;
33
34
  /** State */
34
35
  var _useState = useState(getInitialStateFromFilters(filters, variation, reactTableFiltersState)),
@@ -69,24 +70,28 @@ var useFilters = function useFilters(_ref) {
69
70
  holdingLastAppliedFiltersRef.current = JSON.parse(prevFiltersObjectArrayRef.current);
70
71
  holdingPrevFiltersObjectArrayRef.current = JSON.parse(lastAppliedFilters.current);
71
72
  }, [setAllFilters]);
72
- var reset = useCallback(function () {
73
- // When we reset we want the "initialFilters" to be an empty array
74
- var resetFiltersArray = [];
73
+ var reset = useCallback(function (tableId) {
74
+ // only reset filters if tableid of the datagrid that triggered "clear filters"
75
+ // matches the table id stored in its context instance
76
+ if (tableId === contextTableId) {
77
+ // When we reset we want the "initialFilters" to be an empty array
78
+ var resetFiltersArray = [];
75
79
 
76
- // Get the initial values for the filters
77
- var initialFiltersState = getInitialStateFromFilters(filters, variation, resetFiltersArray);
78
- var initialFiltersObjectArray = [];
80
+ // Get the initial values for the filters
81
+ var initialFiltersState = getInitialStateFromFilters(filters, variation, resetFiltersArray);
82
+ var initialFiltersObjectArray = [];
79
83
 
80
- // Set the state to the initial values
81
- setFiltersState(initialFiltersState);
82
- setFiltersObjectArray(initialFiltersObjectArray);
83
- setAllFilters([]);
84
+ // Set the state to the initial values
85
+ setFiltersState(initialFiltersState);
86
+ setFiltersObjectArray(initialFiltersObjectArray);
87
+ setAllFilters([]);
84
88
 
85
- // Update their respective refs so everything is in sync
86
- prevFiltersRef.current = JSON.stringify(initialFiltersState);
87
- prevFiltersObjectArrayRef.current = JSON.stringify(initialFiltersObjectArray);
88
- lastAppliedFilters.current = JSON.stringify([]);
89
- }, [filters, setAllFilters, variation]);
89
+ // Update their respective refs so everything is in sync
90
+ prevFiltersRef.current = JSON.stringify(initialFiltersState);
91
+ prevFiltersObjectArrayRef.current = JSON.stringify(initialFiltersObjectArray);
92
+ lastAppliedFilters.current = JSON.stringify([]);
93
+ }
94
+ }, [filters, setAllFilters, variation, contextTableId]);
90
95
  var applyFilters = function applyFilters(_ref2) {
91
96
  var column = _ref2.column,
92
97
  value = _ref2.value,
@@ -48,7 +48,7 @@ InlineEditButton.propTypes = {
48
48
  nonEditCell: PropTypes.bool,
49
49
  placeholder: PropTypes.string,
50
50
  renderIcon: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),
51
- type: PropTypes.oneOf(['text', 'number', 'selection', 'date']),
51
+ type: PropTypes.oneOf(['text', 'number', 'selection', 'date', 'checkbox']),
52
52
  value: PropTypes.oneOfType([PropTypes.string, PropTypes.node])
53
53
  };
54
54
 
@@ -8,7 +8,7 @@
8
8
  import { slicedToArray as _slicedToArray, objectSpread2 as _objectSpread2, defineProperty as _defineProperty, extends as _extends, typeof as _typeof } from '../../../../../../_virtual/_rollupPluginBabelHelpers.js';
9
9
  import React__default, { useContext, useState, useRef, useEffect, useCallback } from 'react';
10
10
  import PropTypes from '../../../../../../node_modules/prop-types/index.js';
11
- import { Dropdown, DatePicker, DatePickerInput, NumberInput, TextInput } from '@carbon/react';
11
+ import { Dropdown, DatePicker, DatePickerInput, NumberInput, Checkbox, TextInput } from '@carbon/react';
12
12
  import { Edit, CaretSort, ChevronDown, Calendar } from '@carbon/react/icons';
13
13
  import { pkg } from '../../../../../../settings.js';
14
14
  import cx from 'classnames';
@@ -19,7 +19,7 @@ import { InlineEditButton } from '../InlineEditButton/InlineEditButton.js';
19
19
 
20
20
  var blockClass = "".concat(pkg.prefix, "--datagrid");
21
21
  var InlineEditCell = function InlineEditCell(_ref) {
22
- var _config$validator, _value$text;
22
+ var _config$validator;
23
23
  var cell = _ref.cell,
24
24
  config = _ref.config,
25
25
  _ref$disabledCell = _ref.disabledCell,
@@ -66,6 +66,7 @@ var InlineEditCell = function InlineEditCell(_ref) {
66
66
  var _ref2 = config || {},
67
67
  inputProps = _ref2.inputProps;
68
68
  var textInputRef = useRef();
69
+ var checkboxRef = useRef();
69
70
  var numberInputRef = useRef();
70
71
  var dropdownRef = useRef();
71
72
  var datePickerRef = useRef();
@@ -208,10 +209,36 @@ var InlineEditCell = function InlineEditCell(_ref) {
208
209
  var handleKeyDown = function handleKeyDown(event) {
209
210
  var key = event.key;
210
211
  switch (key) {
212
+ case 'ArrowRight':
213
+ case 'ArrowLeft':
214
+ case 'ArrowUp':
215
+ case 'ArrowDown':
216
+ if (inEditMode && event.target.type === 'checkbox') {
217
+ var newCellId = getNewCellId(key);
218
+ saveCellData(cellValue);
219
+ setInitialValue(cellValue);
220
+ dispatch({
221
+ type: 'EXIT_EDIT_MODE',
222
+ payload: newCellId
223
+ });
224
+ setInEditMode(false);
225
+ sendFocusBackToGrid();
226
+ }
227
+ break;
211
228
  // Save cell contents to data
212
229
  case 'Tab':
213
230
  case 'Enter':
214
231
  {
232
+ if (type === 'checkbox') {
233
+ // Since checkbox doesn't need to click into it to enter `inEditMode` we don't need to check for it
234
+ var _newCellId = getNewCellId(key);
235
+ dispatch({
236
+ type: 'EXIT_EDIT_MODE',
237
+ payload: _newCellId
238
+ });
239
+ setInEditMode(false);
240
+ sendFocusBackToGrid();
241
+ }
215
242
  if (inEditMode) {
216
243
  // Dropdown saves are handled in the Dropdown's/DatePicker's onChange prop
217
244
  if (type === 'selection' || type === 'date') {
@@ -225,12 +252,12 @@ var InlineEditCell = function InlineEditCell(_ref) {
225
252
  if (isInvalid) {
226
253
  return;
227
254
  }
228
- var newCellId = getNewCellId(key);
255
+ var _newCellId2 = getNewCellId(key);
229
256
  saveCellData(cellValue);
230
257
  setInitialValue(cellValue);
231
258
  dispatch({
232
259
  type: 'EXIT_EDIT_MODE',
233
- payload: newCellId
260
+ payload: _newCellId2
234
261
  });
235
262
  setInEditMode(false);
236
263
  sendFocusBackToGrid();
@@ -425,9 +452,27 @@ var InlineEditCell = function InlineEditCell(_ref) {
425
452
  ref: numberInputRef
426
453
  }));
427
454
  };
455
+ var renderCheckBoxCell = function renderCheckBoxCell() {
456
+ return /*#__PURE__*/React__default.createElement(Checkbox, _extends({
457
+ labelText: cellLabel || 'Checkbox'
458
+ }, inputProps, {
459
+ className: cx("".concat(blockClass, "__inline-edit--outer-cell-checkbox"), _defineProperty({}, "".concat(blockClass, "__inline-edit--outer-cell-checkbox-focus"), activeCellId === cellId)),
460
+ id: cellId,
461
+ hideLabel: true,
462
+ checked: cellValue,
463
+ onChange: function onChange(event, _ref10) {
464
+ var checked = _ref10.checked;
465
+ setCellValue(checked);
466
+ if (inputProps.onChange) {
467
+ inputProps.onChange(checked);
468
+ }
469
+ },
470
+ ref: checkboxRef
471
+ }));
472
+ };
428
473
  var renderTextInput = function renderTextInput() {
429
- var _ref10 = config || {},
430
- validator = _ref10.validator;
474
+ var _ref11 = config || {},
475
+ validator = _ref11.validator;
431
476
  var isInvalid = validator === null || validator === void 0 ? void 0 : validator(cellValue);
432
477
  return /*#__PURE__*/React__default.createElement(TextInput, _extends({
433
478
  labelText: cellLabel,
@@ -447,6 +492,24 @@ var InlineEditCell = function InlineEditCell(_ref) {
447
492
  ref: textInputRef
448
493
  }));
449
494
  };
495
+ var getLabel = function getLabel() {
496
+ var _value$text, _checkStaticCell;
497
+ var checkStaticCell = function checkStaticCell(val) {
498
+ if (_typeof(val) === 'object' && val !== null && val !== void 0 && val.isStaticCell) {
499
+ return val === null || val === void 0 ? void 0 : val.value;
500
+ }
501
+ };
502
+ switch (type) {
503
+ case 'selection':
504
+ checkStaticCell(value);
505
+ return (_value$text = value === null || value === void 0 ? void 0 : value.text) !== null && _value$text !== void 0 ? _value$text : value;
506
+ case 'date':
507
+ checkStaticCell(value);
508
+ return buildDate(value);
509
+ default:
510
+ return (_checkStaticCell = checkStaticCell(value)) !== null && _checkStaticCell !== void 0 ? _checkStaticCell : value;
511
+ }
512
+ };
450
513
  return (
451
514
  /*#__PURE__*/
452
515
  // eslint-disable-next-line jsx-a11y/click-events-have-key-events, jsx-a11y/no-static-element-interactions
@@ -455,15 +518,15 @@ var InlineEditCell = function InlineEditCell(_ref) {
455
518
  "data-cell-id": cellId,
456
519
  "data-column-index": columnIndex,
457
520
  "data-row-index": cell.row.index,
458
- "data-disabled": disabledCell,
521
+ "data-disabled": disabledCell || nonEditCell,
459
522
  "data-inline-type": type,
460
523
  onClick: !nonEditCell ? handleInlineCellClick : addActiveState,
461
524
  onKeyDown: !nonEditCell ? handleKeyDown : null,
462
525
  className: cx("".concat(blockClass, "__inline-edit--outer-cell-button"), _defineProperty(_defineProperty(_defineProperty(_defineProperty({}, "".concat(blockClass, "__inline-edit--outer-cell-button--").concat(rowSize), rowSize), "".concat(blockClass, "__inline-edit--outer-cell-button--lg"), !rowSize), "".concat(blockClass, "__inline-edit--outer-cell-button--invalid"), inEditMode && (config === null || config === void 0 || (_config$validator = config.validator) === null || _config$validator === void 0 ? void 0 : _config$validator.call(config, cellValue))), "".concat(blockClass, "__static--outer-cell"), !disabledCell))
463
- }, !nonEditCell && !disabledCell && renderRegularCell(), (!inEditMode || disabledCell) && /*#__PURE__*/React__default.createElement(InlineEditButton, {
526
+ }, !nonEditCell && !disabledCell && type !== 'checkbox' && renderRegularCell(), (!inEditMode || disabledCell) && type !== 'checkbox' && /*#__PURE__*/React__default.createElement(InlineEditButton, {
464
527
  isActiveCell: cellId === activeCellId,
465
528
  renderIcon: setRenderIcon(),
466
- label: type === 'selection' ? (_value$text = value === null || value === void 0 ? void 0 : value.text) !== null && _value$text !== void 0 ? _value$text : value : type === 'date' ? buildDate(value) : value,
529
+ label: getLabel(),
467
530
  disabledCell: disabledCell,
468
531
  labelIcon: (value === null || value === void 0 ? void 0 : value.icon) || null,
469
532
  placeholder: placeholder,
@@ -471,7 +534,7 @@ var InlineEditCell = function InlineEditCell(_ref) {
471
534
  nonEditCell: nonEditCell,
472
535
  columnConfig: cell.column,
473
536
  type: type
474
- }), !nonEditCell && inEditMode && cellId === activeCellId && /*#__PURE__*/React__default.createElement(React__default.Fragment, null, type === 'text' && renderTextInput(), type === 'number' && renderNumberInput(), type === 'selection' && renderSelectCell(), type === 'date' && renderDateCell()))
537
+ }), type === 'checkbox' && renderCheckBoxCell(), !nonEditCell && inEditMode && cellId === activeCellId && /*#__PURE__*/React__default.createElement(React__default.Fragment, null, type === 'text' && renderTextInput(), type === 'number' && renderNumberInput(), type === 'selection' && renderSelectCell(), type === 'date' && renderDateCell()))
475
538
  );
476
539
  };
477
540
  InlineEditCell.propTypes = {
@@ -489,7 +552,7 @@ InlineEditCell.propTypes = {
489
552
  nonEditCell: PropTypes.bool,
490
553
  placeholder: PropTypes.string,
491
554
  tabIndex: PropTypes.number,
492
- type: PropTypes.oneOf(['text', 'number', 'selection', 'date']),
555
+ type: PropTypes.oneOf(['text', 'number', 'selection', 'date', 'checkbox']),
493
556
  value: PropTypes.oneOfType([PropTypes.string, PropTypes.node, PropTypes.object])
494
557
  };
495
558
 
@@ -74,7 +74,7 @@ var handleGridKeyPress = function handleGridKeyPress(_ref) {
74
74
  };
75
75
 
76
76
  // Stop grid key listener when in edit mode
77
- var isEditing = document.activeElement.id === activeCellId && document.activeElement.id === editId || dropdownIsActive() || datePickerIsActive();
77
+ var isEditing = focusedCell.getAttribute('data-inline-type') !== 'checkbox' && document.activeElement.id === activeCellId && document.activeElement.id === editId || dropdownIsActive() || datePickerIsActive();
78
78
  if (isEditing || !gridActive) {
79
79
  return;
80
80
  }
@@ -87,6 +87,7 @@ var handleGridKeyPress = function handleGridKeyPress(_ref) {
87
87
  event.preventDefault();
88
88
  }
89
89
  var isDisabledCell = focusedCell.getAttribute('data-disabled') === 'false' ? false : true;
90
+ var isEditableCell = !event.target.classList.contains("".concat(blockClass, "__inline-edit-button--non-edit"));
90
91
  var sharedUpdateParams = {
91
92
  oldId: activeCellId,
92
93
  instance: instance
@@ -194,7 +195,7 @@ var handleGridKeyPress = function handleGridKeyPress(_ref) {
194
195
  case 'Enter':
195
196
  {
196
197
  // Disabled cells are not allowed to go into edit mode
197
- if (isDisabledCell) {
198
+ if (isDisabledCell || !isEditableCell) {
198
199
  return;
199
200
  }
200
201
  // Only go into edit mode if there is no editId, meaning that we're not already in edit mode
@@ -207,6 +208,13 @@ var handleGridKeyPress = function handleGridKeyPress(_ref) {
207
208
  dropdownTrigger === null || dropdownTrigger === void 0 || dropdownTrigger.click();
208
209
  }, 1);
209
210
  }
211
+ if (focusedType === 'checkbox') {
212
+ setTimeout(function () {
213
+ var checkboxTrigger = focusedCell.querySelector('input');
214
+ checkboxTrigger === null || checkboxTrigger === void 0 || checkboxTrigger.click();
215
+ checkboxTrigger === null || checkboxTrigger === void 0 || checkboxTrigger.focus();
216
+ }, 1);
217
+ }
210
218
  if (focusedType === 'date') {
211
219
  setTimeout(function () {
212
220
  var dateInputTrigger = focusedCell.querySelector('input');
@@ -5,10 +5,10 @@ import { RadioButtonProps } from '@carbon/react/lib/components/RadioButton/Radio
5
5
  import { RadioButtonGroupProps } from '@carbon/react/lib/components/RadioButtonGroup/RadioButtonGroup';
6
6
  import { CheckboxProps } from '@carbon/react/lib/components/Checkbox';
7
7
  import { NumberInputProps } from '@carbon/react/lib/components/NumberInput/NumberInput';
8
- import { CSSProperties, JSXElementConstructor, MutableRefObject, ReactNode, TouchEventHandler } from 'react';
9
- import { Cell, Column, ColumnInstance, FilterValue, Filters, HeaderGroup, Meta, Row, TableCommonProps, TableDispatch, TableInstance, TableToggleAllRowsSelectedProps, UseExpandedRowProps, UseFiltersInstanceProps, UsePaginationInstanceProps, UseResizeColumnsColumnProps, UseResizeColumnsState, UseRowSelectInstanceProps, UseRowSelectRowProps, UseRowSelectState, UseSortByColumnProps, UseTableHooks } from 'react-table';
8
+ import React, { CSSProperties, ComponentType, FunctionComponent, JSXElementConstructor, MutableRefObject, ReactNode, TouchEventHandler } from 'react';
9
+ import { Cell, Column, ColumnInstance, FilterValue, Filters, HeaderGroup, Meta, Row, TableCommonProps, TableDispatch, TableInstance, TableToggleAllRowsSelectedProps, UseExpandedRowProps, UseFiltersInstanceProps, UsePaginationInstanceProps, UseResizeColumnsColumnProps, UseResizeColumnsState, UseRowSelectInstanceProps, UseRowSelectRowProps, UseRowSelectState, UseSortByColumnProps, UseSortByOptions, UseTableHooks } from 'react-table';
10
10
  import { CarbonIconType } from '@carbon/react/icons';
11
- import { type ButtonProps } from '@carbon/react';
11
+ import { IconButton, type ButtonProps } from '@carbon/react';
12
12
  import { TableBatchActionsProps } from '@carbon/react/lib/components/DataTable/TableBatchActions';
13
13
  export type Size = 'xs' | 'sm' | 'md' | 'lg';
14
14
  export interface ResizerProps {
@@ -85,9 +85,10 @@ export interface DataGridToggleAllRowsProps extends TableToggleAllRowsSelectedPr
85
85
  }
86
86
  export interface DatagridTableHooks<T extends object = any> extends UseTableHooks<T> {
87
87
  }
88
- export interface DatagridColumn<T extends object = any> extends ColumnInstance<T> {
88
+ export interface DatagridColumn<T extends object = any> extends ColumnInstance<T>, UseSortByOptions<T> {
89
89
  sticky?: 'left' | 'right';
90
90
  className?: string;
91
+ rightAlignedColumn?: boolean;
91
92
  disableSortBy?: boolean;
92
93
  centerAlignedColumn?: boolean;
93
94
  }
@@ -100,6 +101,7 @@ export interface DatagridRow<T extends object = any> extends Omit<Row<T>, 'cells
100
101
  RowExpansionRenderer?: (state?: DataGridState) => void;
101
102
  cells: Array<DataGridCell>;
102
103
  isSkeleton?: boolean;
104
+ hasExpanded?: boolean;
103
105
  }
104
106
  export interface DataGridHeader<T extends object = any> extends ColumnInstance, UseResizeColumnsColumnProps<T>, UseSortByColumnProps<T> {
105
107
  className(className: any, arg1: {
@@ -120,6 +122,16 @@ interface DataGridTableState extends UseResizeColumnsState<any>, UseRowSelectSta
120
122
  }
121
123
  export interface DataGridTableInstance<T extends object = any> extends TableInstance<T> {
122
124
  }
125
+ export interface RowAction {
126
+ id?: string;
127
+ itemText?: string;
128
+ icon?: ComponentType | FunctionComponent;
129
+ align?: React.ComponentProps<typeof IconButton>['align'];
130
+ shouldHideMenuItem?: (...args: any[]) => void;
131
+ shouldDisableMenuItem?: (...args: any[]) => void;
132
+ disabled?: boolean;
133
+ onClick?: (...args: any[]) => void;
134
+ }
123
135
  export interface DataGridState<T extends object = any> extends TableCommonProps, UsePaginationInstanceProps<T>, Omit<TableInstance<T>, 'state' | 'headers' | 'rows' | 'columns'>, Omit<UseFiltersInstanceProps<T>, 'rows'>, UseRowSelectInstanceProps<T>, Pick<UseRowSelectInstanceProps<T>, 'toggleAllRowsSelected'> {
124
136
  withVirtualScroll?: boolean;
125
137
  DatagridPagination?: JSXElementConstructor<any>;
@@ -142,6 +154,7 @@ export interface DataGridState<T extends object = any> extends TableCommonProps,
142
154
  batchActions?: boolean;
143
155
  row: DatagridRow;
144
156
  rows: Array<DatagridRow<any>>;
157
+ rowActions?: RowAction[];
145
158
  columns: Array<DatagridColumn>;
146
159
  key?: any;
147
160
  rowSize?: Size;
@@ -217,4 +230,5 @@ export interface ResizeHeaderProps {
217
230
  isFetching?: boolean;
218
231
  }
219
232
  export type VisibleColumns<T extends object = {}> = (allColumns: Array<ColumnInstance<T>>, meta: Meta<T>) => Array<Column<T>>;
233
+ export type NodeFuncType = (props: any) => ReactNode;
220
234
  export {};
@@ -1,2 +1,9 @@
1
+ /**
2
+ * Copyright IBM Corp. 2021, 2023
3
+ *
4
+ * This source code is licensed under the Apache-2.0 license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+ import { Hooks } from 'react-table';
8
+ declare const useActionsColumn: (hooks: Hooks) => void;
1
9
  export default useActionsColumn;
2
- declare function useActionsColumn(hooks: any): void;