@carbon/ibm-products 1.27.0 → 1.32.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (167) hide show
  1. package/css/index-full-carbon.css +570 -80
  2. package/css/index-full-carbon.css.map +1 -1
  3. package/css/index-full-carbon.min.css +3 -3
  4. package/css/index-full-carbon.min.css.map +1 -1
  5. package/css/index-without-carbon-released-only.css +942 -23
  6. package/css/index-without-carbon-released-only.css.map +1 -1
  7. package/css/index-without-carbon-released-only.min.css +3 -3
  8. package/css/index-without-carbon-released-only.min.css.map +1 -1
  9. package/css/index-without-carbon.css +569 -79
  10. package/css/index-without-carbon.css.map +1 -1
  11. package/css/index-without-carbon.min.css +3 -3
  12. package/css/index-without-carbon.min.css.map +1 -1
  13. package/css/index.css +570 -80
  14. package/css/index.css.map +1 -1
  15. package/css/index.min.css +3 -3
  16. package/css/index.min.css.map +1 -1
  17. package/es/components/AddSelect/AddSelect.js +0 -3
  18. package/es/components/AddSelect/AddSelectBody.js +20 -3
  19. package/es/components/AddSelect/AddSelectBreadcrumbs.js +11 -3
  20. package/es/components/AddSelect/AddSelectColumn.js +4 -3
  21. package/es/components/AddSelect/AddSelectFilter.js +4 -3
  22. package/es/components/AddSelect/AddSelectList.js +40 -14
  23. package/es/components/Card/Card.js +16 -6
  24. package/es/components/Card/CardFooter.js +3 -1
  25. package/es/components/Card/CardHeader.js +20 -1
  26. package/es/components/DataSpreadsheet/DataSpreadsheet.js +63 -11
  27. package/es/components/DataSpreadsheet/DataSpreadsheetBody.js +2 -1
  28. package/es/components/DataSpreadsheet/DataSpreadsheetHeader.js +7 -0
  29. package/es/components/DataSpreadsheet/utils/handleCellDeletion.js +31 -0
  30. package/es/components/DataSpreadsheet/utils/handleMultipleKeys.js +1 -1
  31. package/es/components/Datagrid/Datagrid/Datagrid.js +10 -38
  32. package/es/components/Datagrid/Datagrid/DatagridContent.js +127 -0
  33. package/es/components/Datagrid/Datagrid/DatagridExpandedRow.js +9 -1
  34. package/es/components/Datagrid/Datagrid/DatagridSelectAll.js +10 -3
  35. package/es/components/Datagrid/Datagrid/DatagridSelectAllWithToggle.js +12 -3
  36. package/es/components/Datagrid/Datagrid/DraggableElement.js +5 -1
  37. package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/Actions.js +5 -40
  38. package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/Columns.js +35 -10
  39. package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/CustomizeColumnsModal.js +61 -24
  40. package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/ModalWrapper.js +3 -2
  41. package/es/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditButton/InlineEditButton.js +60 -0
  42. package/es/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditButton/index.js +1 -0
  43. package/es/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditCell/InlineEditCell.js +467 -0
  44. package/es/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditCell/index.js +1 -0
  45. package/es/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditContext/InlineEditContext.js +112 -0
  46. package/es/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditContext/getCellIdAsObject.js +27 -0
  47. package/es/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditContext/index.js +1 -0
  48. package/es/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditContext/returnUpdatedActiveCell.js +39 -0
  49. package/es/components/Datagrid/Datagrid/addons/InlineEdit/handleGridFocus.js +19 -0
  50. package/es/components/Datagrid/Datagrid/addons/InlineEdit/handleGridKeyPress.js +263 -0
  51. package/es/components/Datagrid/Datagrid/addons/InlineEdit/handleMultipleKeys.js +66 -0
  52. package/es/components/Datagrid/Datagrid/addons/RowSize/RowSizeDropdown.js +6 -5
  53. package/es/components/Datagrid/Datagrid/addons/RowSize/RowSizeRadioGroup.js +1 -2
  54. package/es/components/Datagrid/index.js +3 -1
  55. package/es/components/Datagrid/useActionsColumn.js +28 -12
  56. package/es/components/Datagrid/useColumnOrder.js +8 -0
  57. package/es/components/Datagrid/useCustomizeColumns.js +5 -0
  58. package/es/components/Datagrid/useDisableSelectRows.js +6 -2
  59. package/es/components/Datagrid/useExpandedRow.js +0 -1
  60. package/es/components/Datagrid/useInlineEdit.js +71 -0
  61. package/es/components/Datagrid/useNestedRowExpander.js +42 -0
  62. package/es/components/Datagrid/useNestedRows.js +2 -2
  63. package/es/components/Datagrid/useRowSize.js +17 -6
  64. package/es/components/Datagrid/useSelectAllToggle.js +17 -4
  65. package/es/components/Datagrid/useSelectRows.js +12 -2
  66. package/es/components/Datagrid/useStickyColumn.js +11 -0
  67. package/es/components/Datagrid/utils/DatagridActions.js +121 -0
  68. package/es/components/Datagrid/utils/DatagridPagination.js +33 -0
  69. package/es/components/Datagrid/utils/Wrapper.js +21 -0
  70. package/es/components/Datagrid/utils/getArgTypes.js +85 -0
  71. package/es/components/Datagrid/utils/getInlineEditColumns.js +121 -0
  72. package/es/components/Datagrid/utils/makeData.js +17 -1
  73. package/es/components/ImportModal/ImportModal.js +2 -2
  74. package/es/components/InlineEdit/InlineEdit.js +4 -2
  75. package/es/components/ProductiveCard/ProductiveCard.js +5 -0
  76. package/es/components/index.js +1 -1
  77. package/es/global/js/hooks/useClickOutside.js +1 -1
  78. package/es/global/js/package-settings.js +3 -3
  79. package/es/global/js/utils/rangeWithCallback.js +13 -0
  80. package/es/global/js/utils/story-helper.js +5 -1
  81. package/es/global/js/utils/uuidv4.spec.js +4 -0
  82. package/lib/components/AddSelect/AddSelect.js +0 -4
  83. package/lib/components/AddSelect/AddSelectBody.js +20 -3
  84. package/lib/components/AddSelect/AddSelectBreadcrumbs.js +14 -3
  85. package/lib/components/AddSelect/AddSelectColumn.js +3 -2
  86. package/lib/components/AddSelect/AddSelectFilter.js +3 -2
  87. package/lib/components/AddSelect/AddSelectList.js +39 -13
  88. package/lib/components/Card/Card.js +16 -6
  89. package/lib/components/Card/CardFooter.js +3 -1
  90. package/lib/components/Card/CardHeader.js +21 -1
  91. package/lib/components/DataSpreadsheet/DataSpreadsheet.js +63 -10
  92. package/lib/components/DataSpreadsheet/DataSpreadsheetBody.js +2 -1
  93. package/lib/components/DataSpreadsheet/DataSpreadsheetHeader.js +7 -0
  94. package/lib/components/DataSpreadsheet/utils/handleCellDeletion.js +42 -0
  95. package/lib/components/DataSpreadsheet/utils/handleMultipleKeys.js +1 -1
  96. package/lib/components/Datagrid/Datagrid/Datagrid.js +12 -45
  97. package/lib/components/Datagrid/Datagrid/DatagridContent.js +160 -0
  98. package/lib/components/Datagrid/Datagrid/DatagridExpandedRow.js +9 -1
  99. package/lib/components/Datagrid/Datagrid/DatagridSelectAll.js +12 -3
  100. package/lib/components/Datagrid/Datagrid/DatagridSelectAllWithToggle.js +14 -3
  101. package/lib/components/Datagrid/Datagrid/DraggableElement.js +5 -1
  102. package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/Actions.js +12 -41
  103. package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/Columns.js +47 -25
  104. package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/CustomizeColumnsModal.js +59 -23
  105. package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/ModalWrapper.js +3 -2
  106. package/lib/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditButton/InlineEditButton.js +76 -0
  107. package/lib/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditButton/index.js +13 -0
  108. package/lib/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditCell/InlineEditCell.js +491 -0
  109. package/lib/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditCell/index.js +13 -0
  110. package/lib/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditContext/InlineEditContext.js +129 -0
  111. package/lib/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditContext/getCellIdAsObject.js +36 -0
  112. package/lib/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditContext/index.js +19 -0
  113. package/lib/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditContext/returnUpdatedActiveCell.js +45 -0
  114. package/lib/components/Datagrid/Datagrid/addons/InlineEdit/handleGridFocus.js +28 -0
  115. package/lib/components/Datagrid/Datagrid/addons/InlineEdit/handleGridKeyPress.js +272 -0
  116. package/lib/components/Datagrid/Datagrid/addons/InlineEdit/handleMultipleKeys.js +78 -0
  117. package/lib/components/Datagrid/Datagrid/addons/RowSize/RowSizeDropdown.js +6 -5
  118. package/lib/components/Datagrid/Datagrid/addons/RowSize/RowSizeRadioGroup.js +1 -2
  119. package/lib/components/Datagrid/index.js +17 -1
  120. package/lib/components/Datagrid/useActionsColumn.js +28 -13
  121. package/lib/components/Datagrid/useColumnOrder.js +17 -0
  122. package/lib/components/Datagrid/useCustomizeColumns.js +5 -0
  123. package/lib/components/Datagrid/useDisableSelectRows.js +6 -2
  124. package/lib/components/Datagrid/useExpandedRow.js +0 -1
  125. package/lib/components/Datagrid/useInlineEdit.js +85 -0
  126. package/lib/components/Datagrid/useNestedRowExpander.js +57 -0
  127. package/lib/components/Datagrid/useNestedRows.js +3 -3
  128. package/lib/components/Datagrid/useRowSize.js +18 -13
  129. package/lib/components/Datagrid/useSelectAllToggle.js +18 -4
  130. package/lib/components/Datagrid/useSelectRows.js +12 -2
  131. package/lib/components/Datagrid/useStickyColumn.js +11 -0
  132. package/lib/components/Datagrid/utils/DatagridActions.js +139 -0
  133. package/lib/components/Datagrid/utils/DatagridPagination.js +46 -0
  134. package/lib/components/Datagrid/utils/Wrapper.js +33 -0
  135. package/lib/components/Datagrid/utils/getArgTypes.js +93 -0
  136. package/lib/components/Datagrid/utils/getInlineEditColumns.js +133 -0
  137. package/lib/components/Datagrid/utils/makeData.js +17 -1
  138. package/lib/components/ImportModal/ImportModal.js +2 -2
  139. package/lib/components/InlineEdit/InlineEdit.js +4 -2
  140. package/lib/components/ProductiveCard/ProductiveCard.js +5 -0
  141. package/lib/components/index.js +12 -0
  142. package/lib/global/js/hooks/useClickOutside.js +1 -1
  143. package/lib/global/js/package-settings.js +3 -3
  144. package/lib/global/js/utils/rangeWithCallback.js +22 -0
  145. package/lib/global/js/utils/story-helper.js +5 -1
  146. package/lib/global/js/utils/uuidv4.spec.js +4 -0
  147. package/package.json +13 -13
  148. package/scss/components/AddSelect/_add-select.scss +126 -28
  149. package/scss/components/Card/_card.scss +1 -0
  150. package/scss/components/Cascade/_cascade.scss +1 -1
  151. package/scss/components/CreateTearsheet/_create-tearsheet.scss +1 -0
  152. package/scss/components/DataSpreadsheet/_data-spreadsheet.scss +18 -1
  153. package/scss/components/Datagrid/_storybook-styles.scss +1 -1
  154. package/scss/components/Datagrid/styles/_datagrid.scss +27 -4
  155. package/scss/components/Datagrid/styles/_draggableElement.scss +26 -9
  156. package/scss/components/Datagrid/styles/_index.scss +1 -0
  157. package/scss/components/Datagrid/styles/_useActionsColumn.scss +12 -0
  158. package/scss/components/Datagrid/styles/_useExpandedRow.scss +30 -0
  159. package/scss/components/Datagrid/styles/_useInlineEdit.scss +211 -0
  160. package/scss/components/Datagrid/styles/_useNestedRows.scss +15 -1
  161. package/scss/components/Datagrid/styles/_useStickyColumn.scss +30 -2
  162. package/scss/components/Datagrid/styles/addons/_CustomizeColumnsModal.scss +44 -6
  163. package/scss/components/NotificationsPanel/_notifications-panel.scss +5 -6
  164. package/scss/components/ProductiveCard/_productive-card.scss +39 -0
  165. package/scss/components/RemoveModal/_remove-modal.scss +0 -4
  166. package/scss/components/SidePanel/_side-panel.scss +4 -6
  167. package/scss/components/_index-released-only.scss +1 -0
@@ -65,7 +65,9 @@ var _handleActiveCellInSelectionEnter = require("./utils/handleActiveCellInSelec
65
65
 
66
66
  var _handleActiveCellInSelectionTab = require("./utils/handleActiveCellInSelectionTab");
67
67
 
68
- var _excluded = ["cellSize", "className", "columns", "data", "defaultEmptyRowCount", "onDataUpdate", "id", "onActiveCellChange", "onSelectionAreaChange", "totalVisibleColumns"];
68
+ var _handleCellDeletion = require("./utils/handleCellDeletion");
69
+
70
+ var _excluded = ["cellSize", "className", "columns", "data", "defaultEmptyRowCount", "onDataUpdate", "id", "onActiveCellChange", "onSelectionAreaChange", "selectAllAriaLabel", "spreadsheetAriaLabel", "theme", "totalVisibleColumns"];
69
71
 
70
72
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
71
73
 
@@ -87,13 +89,16 @@ var defaults = {
87
89
  defaultEmptyRowCount: 16,
88
90
  onDataUpdate: Object.freeze(function () {}),
89
91
  onActiveCellChange: Object.freeze(function () {}),
90
- onSelectionAreaChange: Object.freeze(function () {})
92
+ onSelectionAreaChange: Object.freeze(function () {}),
93
+ theme: 'light'
91
94
  };
92
95
  /**
93
96
  * DataSpreadsheet: used to organize and display large amounts of structured data, separated by columns and rows in a grid-like format.
94
97
  */
95
98
 
96
99
  var DataSpreadsheet = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref) {
100
+ var _cx;
101
+
97
102
  var _ref$cellSize = _ref.cellSize,
98
103
  cellSize = _ref$cellSize === void 0 ? defaults.cellSize : _ref$cellSize,
99
104
  className = _ref.className,
@@ -110,6 +115,9 @@ var DataSpreadsheet = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref
110
115
  onActiveCellChange = _ref$onActiveCellChan === void 0 ? defaults.onActiveCellChange : _ref$onActiveCellChan,
111
116
  _ref$onSelectionAreaC = _ref.onSelectionAreaChange,
112
117
  onSelectionAreaChange = _ref$onSelectionAreaC === void 0 ? defaults.onSelectionAreaChange : _ref$onSelectionAreaC,
118
+ selectAllAriaLabel = _ref.selectAllAriaLabel,
119
+ spreadsheetAriaLabel = _ref.spreadsheetAriaLabel,
120
+ theme = _ref.theme,
113
121
  totalVisibleColumns = _ref.totalVisibleColumns,
114
122
  rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
115
123
  var multiKeyTrackingRef = (0, _react.useRef)();
@@ -216,11 +224,11 @@ var DataSpreadsheet = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref
216
224
  visibleColumns = _useTable.visibleColumns; // Update the spreadsheet data after editing a cell
217
225
 
218
226
 
219
- var updateData = (0, _react.useCallback)(function (rowIndex, columnId) {
227
+ var updateData = (0, _react.useCallback)(function (rowIndex, columnId, newValue) {
220
228
  onDataUpdate(function (prev) {
221
229
  return prev.map(function (row, index) {
222
230
  if (index === rowIndex) {
223
- return _objectSpread(_objectSpread({}, prev[rowIndex]), {}, (0, _defineProperty2.default)({}, columnId, cellEditorValue));
231
+ return _objectSpread(_objectSpread({}, prev[rowIndex]), {}, (0, _defineProperty2.default)({}, columnId, cellEditorValue || newValue));
224
232
  }
225
233
 
226
234
  return row;
@@ -408,13 +416,34 @@ var DataSpreadsheet = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref
408
416
  setCurrentMatcher: setCurrentMatcher,
409
417
  usingMac: usingMac
410
418
  });
411
- } // Allow arrow key navigation if there are less than two activeKeys OR
412
- // if one of the activeCellCoordinates is in a header position
419
+ }
413
420
 
421
+ var deleteParams = {
422
+ selectionAreas: selectionAreas,
423
+ currentMatcher: currentMatcher,
424
+ rows: rows,
425
+ setActiveCellContent: setActiveCellContent,
426
+ updateData: updateData
427
+ }; // Allow arrow key navigation if there are less than two activeKeys OR
428
+ // if one of the activeCellCoordinates is in a header position
414
429
 
415
430
  if (keysPressedList.length < 2 && !(0, _handleMultipleKeys.includesShift)(keysPressedList) || activeCellCoordinates.row === 'header' || activeCellCoordinates.column === 'header') {
416
431
  switch (key) {
432
+ // Backspace
433
+ case 'Backspace':
434
+ {
435
+ (0, _handleCellDeletion.handleCellDeletion)(deleteParams);
436
+ break;
437
+ }
438
+ // Delete
439
+
440
+ case 'Delete':
441
+ {
442
+ (0, _handleCellDeletion.handleCellDeletion)(deleteParams);
443
+ break;
444
+ }
417
445
  // Enter
446
+
418
447
  case 'Enter':
419
448
  {
420
449
  (0, _handleActiveCellInSelectionEnter.handleActiveCellInSelectionEnter)({
@@ -612,7 +641,7 @@ var DataSpreadsheet = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref
612
641
  }
613
642
  }
614
643
  }
615
- }, [activeCellInsideSelectionArea, updateActiveCellCoordinates, handleInitialArrowPress, activeCellCoordinates, removeActiveCell, columns, rows, spreadsheetRef, currentMatcher, isEditing, removeCellEditor, selectionAreas, handleHomeEndKey, keysPressedList, usingMac]);
644
+ }, [activeCellInsideSelectionArea, updateActiveCellCoordinates, handleInitialArrowPress, activeCellCoordinates, removeActiveCell, columns, rows, spreadsheetRef, currentMatcher, isEditing, removeCellEditor, selectionAreas, handleHomeEndKey, keysPressedList, usingMac, updateData]);
616
645
 
617
646
  var startEditMode = function startEditMode() {
618
647
  setIsEditing(true);
@@ -648,6 +677,11 @@ var DataSpreadsheet = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref
648
677
  }
649
678
 
650
679
  return;
680
+ }; // Mouse up on active cell
681
+
682
+
683
+ var handleActiveCellMouseUp = function handleActiveCellMouseUp() {
684
+ setClickAndHoldActive(false);
651
685
  }; // Mouse down on active cell
652
686
 
653
687
 
@@ -786,12 +820,13 @@ var DataSpreadsheet = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref
786
820
  }
787
821
  }, [spreadsheetRef, currentMatcher]);
788
822
  return /*#__PURE__*/_react.default.createElement("div", (0, _extends2.default)({}, rest, getTableProps(), (0, _devtools.getDevtoolsProps)(componentName), {
789
- className: (0, _classnames.default)(blockClass, className, "".concat(blockClass, "--interactive-cell-element"), (0, _defineProperty2.default)({}, "".concat(blockClass, "__container-has-focus"), containerHasFocus)),
823
+ className: (0, _classnames.default)(blockClass, className, "".concat(blockClass, "--interactive-cell-element"), (_cx = {}, (0, _defineProperty2.default)(_cx, "".concat(blockClass, "__container-has-focus"), containerHasFocus), (0, _defineProperty2.default)(_cx, "".concat(blockClass, "__").concat(theme), theme === 'dark'), _cx)),
790
824
  ref: spreadsheetRef,
791
825
  role: "grid",
792
826
  tabIndex: 0,
793
827
  "aria-rowcount": (rows === null || rows === void 0 ? void 0 : rows.length) || 0,
794
828
  "aria-colcount": (columns === null || columns === void 0 ? void 0 : columns.length) || 0,
829
+ "aria-label": spreadsheetAriaLabel,
795
830
  onKeyDown: handleKeyPress,
796
831
  onFocus: function onFocus() {
797
832
  return setContainerHasFocus(true);
@@ -817,7 +852,8 @@ var DataSpreadsheet = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref
817
852
  updateActiveCellCoordinates: updateActiveCellCoordinates,
818
853
  setHeaderCellHoldActive: setHeaderCellHoldActive,
819
854
  headerCellHoldActive: headerCellHoldActive,
820
- visibleColumns: visibleColumns
855
+ visibleColumns: visibleColumns,
856
+ selectAllAriaLabel: selectAllAriaLabel
821
857
  }), /*#__PURE__*/_react.default.createElement(_DataSpreadsheetBody.DataSpreadsheetBody, {
822
858
  activeCellCoordinates: activeCellCoordinates,
823
859
  ref: spreadsheetRef,
@@ -852,6 +888,7 @@ var DataSpreadsheet = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref
852
888
  visibleColumns: visibleColumns
853
889
  }), /*#__PURE__*/_react.default.createElement("button", {
854
890
  onMouseDown: handleActiveCellMouseDown,
891
+ onMouseUp: handleActiveCellMouseUp,
855
892
  onClick: handleActiveCellClick,
856
893
  onKeyDown: handleActiveCellKeyDown,
857
894
  onDoubleClick: handleActiveCellDoubleClick,
@@ -860,6 +897,7 @@ var DataSpreadsheet = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref
860
897
  className: (0, _classnames.default)("".concat(blockClass, "--interactive-cell-element"), "".concat(blockClass, "__active-cell--highlight"), (0, _defineProperty2.default)({}, "".concat(blockClass, "__active-cell--with-selection"), activeCellInsideSelectionArea)),
861
898
  type: "button"
862
899
  }, activeCellContent), /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.TextArea, {
900
+ id: "".concat(blockClass, "__cell-editor-text-area"),
863
901
  value: cellEditorValue,
864
902
  onKeyDown: (0, _handleEditSubmit.handleEditSubmit)({
865
903
  activeCellCoordinates: activeCellCoordinates,
@@ -880,7 +918,7 @@ var DataSpreadsheet = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref
880
918
  },
881
919
  ref: cellEditorRef,
882
920
  labelText: "",
883
- "aria-labelledby": activeCellCoordinates ? "#".concat(blockClass, "__cell--").concat(activeCellCoordinates === null || activeCellCoordinates === void 0 ? void 0 : activeCellCoordinates.row, "--").concat(activeCellCoordinates === null || activeCellCoordinates === void 0 ? void 0 : activeCellCoordinates.column) : null,
921
+ "aria-labelledby": activeCellCoordinates ? "".concat(blockClass, "__cell--").concat(activeCellCoordinates === null || activeCellCoordinates === void 0 ? void 0 : activeCellCoordinates.row, "--").concat(activeCellCoordinates === null || activeCellCoordinates === void 0 ? void 0 : activeCellCoordinates.column) : null,
884
922
  className: (0, _classnames.default)("".concat(blockClass, "__cell-editor"), "".concat(blockClass, "--interactive-cell-element"), "".concat(blockClass, "__cell-editor--").concat(cellSize), (0, _defineProperty2.default)({}, "".concat(blockClass, "__cell-editor--active"), isEditing))
885
923
  }), /*#__PURE__*/_react.default.createElement("pre", {
886
924
  "aria-hidden": true,
@@ -949,6 +987,21 @@ DataSpreadsheet.propTypes = {
949
987
  */
950
988
  onSelectionAreaChange: _propTypes.default.func,
951
989
 
990
+ /**
991
+ * The aria label applied to the Select all button
992
+ */
993
+ selectAllAriaLabel: _propTypes.default.string.isRequired,
994
+
995
+ /**
996
+ * The aria label applied to the Data spreadsheet component
997
+ */
998
+ spreadsheetAriaLabel: _propTypes.default.string.isRequired,
999
+
1000
+ /**
1001
+ * The theme the DataSpreadsheet should use (only used to render active cell/selection area colors on dark theme)
1002
+ */
1003
+ theme: _propTypes.default.oneOf(['light', 'dark']),
1004
+
952
1005
  /**
953
1006
  * The total number of columns to be initially visible, additional columns will be rendered and
954
1007
  * visible via horizontal scrollbar
@@ -411,7 +411,8 @@ var DataSpreadsheetBody = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, re
411
411
  }), {
412
412
  className: (0, _classnames.default)("".concat(blockClass, "__tr")),
413
413
  "data-row-index": index,
414
- "aria-rowindex": index + 1
414
+ "aria-rowindex": index + 1,
415
+ "aria-owns": "".concat(blockClass, "__cell-editor-text-area")
415
416
  }), /*#__PURE__*/_react.default.createElement("div", {
416
417
  role: "rowheader",
417
418
  className: "".concat(blockClass, "__td-th--cell-container")
@@ -66,6 +66,7 @@ var DataSpreadsheetHeader = /*#__PURE__*/(0, _react.forwardRef)(function (_ref,
66
66
  updateActiveCellCoordinates = _ref.updateActiveCellCoordinates,
67
67
  setHeaderCellHoldActive = _ref.setHeaderCellHoldActive,
68
68
  headerCellHoldActive = _ref.headerCellHoldActive,
69
+ selectAllAriaLabel = _ref.selectAllAriaLabel,
69
70
  visibleColumns = _ref.visibleColumns;
70
71
 
71
72
  var _useState = (0, _react.useState)(0),
@@ -198,6 +199,7 @@ var DataSpreadsheetHeader = /*#__PURE__*/(0, _react.forwardRef)(function (_ref,
198
199
  "data-column-index": "header",
199
200
  type: "button",
200
201
  tabIndex: -1,
202
+ "aria-label": selectAllAriaLabel,
201
203
  onClick: handleSelectAllClick,
202
204
  className: (0, _classnames.default)("".concat(blockClass, "__th"), "".concat(blockClass, "--interactive-cell-element"), "".concat(blockClass, "__th--select-all"), (0, _defineProperty2.default)({}, "".concat(blockClass, "__th--active-header"), (activeCellCoordinates === null || activeCellCoordinates === void 0 ? void 0 : activeCellCoordinates.column) === 'header' && (activeCellCoordinates === null || activeCellCoordinates === void 0 ? void 0 : activeCellCoordinates.row) === 'header'))
203
205
  }, "\xA0")), headerGroup.headers.map(function (column, index) {
@@ -282,6 +284,11 @@ DataSpreadsheetHeader.propTypes = {
282
284
  */
283
285
  scrollBarSize: _propTypes.default.number,
284
286
 
287
+ /**
288
+ * The aria label applied to the Select all button
289
+ */
290
+ selectAllAriaLabel: _propTypes.default.string.isRequired,
291
+
285
292
  /**
286
293
  * All of the cell selection area items
287
294
  */
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.handleCellDeletion = void 0;
7
+
8
+ var _deepCloneObject = require("../../../global/js/utils/deepCloneObject");
9
+
10
+ var _rangeWithCallback = require("../../../global/js/utils/rangeWithCallback");
11
+
12
+ /**
13
+ * Copyright IBM Corp. 2022, 2022
14
+ *
15
+ * This source code is licensed under the Apache-2.0 license found in the
16
+ * LICENSE file in the root directory of this source tree.
17
+ */
18
+ var handleCellDeletion = function handleCellDeletion(_ref) {
19
+ var selectionAreas = _ref.selectionAreas,
20
+ currentMatcher = _ref.currentMatcher,
21
+ rows = _ref.rows,
22
+ setActiveCellContent = _ref.setActiveCellContent,
23
+ updateData = _ref.updateData;
24
+ var selectionAreaClone = (0, _deepCloneObject.deepCloneObject)(selectionAreas);
25
+ var indexOfCurrentSelectionArea = selectionAreaClone.findIndex(function (item) {
26
+ return item.matcher === currentMatcher;
27
+ });
28
+ var selectionAreaToEmptyContents = selectionAreaClone[indexOfCurrentSelectionArea];
29
+ var lowestColumnIndex = Math.min(selectionAreaToEmptyContents.point1.column, selectionAreaToEmptyContents.point2.column);
30
+ var greatestColumnIndex = Math.max(selectionAreaToEmptyContents.point1.column, selectionAreaToEmptyContents.point2.column);
31
+ var lowestRowIndex = Math.min(selectionAreaToEmptyContents.point1.row, selectionAreaToEmptyContents.point2.row);
32
+ var greatestRowIndex = Math.max(selectionAreaToEmptyContents.point1.row, selectionAreaToEmptyContents.point2.row);
33
+ (0, _rangeWithCallback.rangeWithCallback)(lowestColumnIndex, greatestColumnIndex, function (columnIndex) {
34
+ (0, _rangeWithCallback.rangeWithCallback)(lowestRowIndex, greatestRowIndex, function (rowIndex) {
35
+ var cellProps = rows[rowIndex].cells[columnIndex];
36
+ updateData(rowIndex, cellProps === null || cellProps === void 0 ? void 0 : cellProps.column.id, '');
37
+ });
38
+ });
39
+ setActiveCellContent(null);
40
+ };
41
+
42
+ exports.handleCellDeletion = handleCellDeletion;
@@ -299,7 +299,7 @@ var handleMultipleKeys = function handleMultipleKeys(_ref) {
299
299
  } else {
300
300
  setTimeout(function () {
301
301
  updateToLastCell();
302
- }, 1);
302
+ }, 1000);
303
303
  }
304
304
  }
305
305
  };
@@ -9,39 +9,29 @@ exports.Datagrid = void 0;
9
9
 
10
10
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
11
 
12
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
13
-
14
12
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
15
13
 
16
14
  var _react = _interopRequireDefault(require("react"));
17
15
 
18
16
  var _propTypes = _interopRequireDefault(require("prop-types"));
19
17
 
20
- var _carbonComponentsReact = require("carbon-components-react");
21
-
22
18
  var _classnames = _interopRequireDefault(require("classnames"));
23
19
 
24
- var _DatagridHead = _interopRequireDefault(require("./DatagridHead"));
25
-
26
- var _DatagridBody = _interopRequireDefault(require("./DatagridBody"));
27
-
28
- var _DatagridToolbar = _interopRequireDefault(require("./DatagridToolbar"));
29
-
30
20
  var _devtools = require("../../../global/js/utils/devtools");
31
21
 
32
22
  var _settings = require("../../../settings");
33
23
 
34
24
  var _pconsole = _interopRequireDefault(require("../../../global/js/utils/pconsole"));
35
25
 
26
+ var _InlineEditContext = require("./addons/InlineEdit/InlineEditContext");
27
+
28
+ var _DatagridContent = require("./DatagridContent");
29
+
36
30
  var _excluded = ["datagridState"];
37
31
  var blockClass = "".concat(_settings.pkg.prefix, "--datagrid");
38
32
  var componentName = 'Datagrid';
39
- var TableContainer = _carbonComponentsReact.DataTable.TableContainer,
40
- Table = _carbonComponentsReact.DataTable.Table;
41
33
 
42
34
  var Datagrid = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref) {
43
- var _getTableProps;
44
-
45
35
  var datagridState = _ref.datagridState,
46
36
  rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
47
37
 
@@ -51,47 +41,24 @@ var Datagrid = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref) {
51
41
  return null;
52
42
  }
53
43
 
54
- var _datagridState$getTab = datagridState.getTableProps,
55
- getTableProps = _datagridState$getTab === void 0 ? function () {} : _datagridState$getTab,
56
- withVirtualScroll = datagridState.withVirtualScroll,
44
+ var withVirtualScroll = datagridState.withVirtualScroll,
57
45
  DatagridPagination = datagridState.DatagridPagination,
58
46
  isFetching = datagridState.isFetching,
59
47
  tableId = datagridState.tableId,
60
- CustomizeColumnsModal = datagridState.CustomizeColumnsModal,
61
48
  leftPanel = datagridState.leftPanel,
62
- fullHeightDatagrid = datagridState.fullHeightDatagrid,
63
- _datagridState$vertic = datagridState.verticalAlign,
64
- verticalAlign = _datagridState$vertic === void 0 ? 'center' : _datagridState$vertic,
65
- variableRowHeight = datagridState.variableRowHeight,
66
- className = datagridState.className,
67
- gridTitle = datagridState.gridTitle,
68
- gridDescription = datagridState.gridDescription,
69
- useDenseHeader = datagridState.useDenseHeader;
49
+ className = datagridState.className;
70
50
  var rows = DatagridPagination && datagridState.page || datagridState.rows;
71
-
72
- var dataGrid = /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(TableContainer, {
73
- className: (0, _classnames.default)("".concat(blockClass, "__grid-container"), withVirtualScroll || fullHeightDatagrid ? "".concat(blockClass, "__full-height") : '', DatagridPagination ? "".concat(blockClass, "__with-pagination") : '', useDenseHeader ? "".concat(blockClass, "__dense-header") : ''),
74
- title: gridTitle,
75
- description: gridDescription
76
- }, /*#__PURE__*/_react.default.createElement(_DatagridToolbar.default, datagridState), /*#__PURE__*/_react.default.createElement("div", {
77
- className: "".concat(blockClass, "__table-container")
78
- }, leftPanel && leftPanel.isOpen && /*#__PURE__*/_react.default.createElement("div", {
79
- className: "".concat(blockClass, "__datagridLeftPanel")
80
- }, leftPanel.panelContent), /*#__PURE__*/_react.default.createElement(Table, (0, _extends2.default)({}, getTableProps(), {
81
- className: (0, _classnames.default)(withVirtualScroll ? '' : "".concat(blockClass, "__table-simple"), "".concat(blockClass, "__vertical-align-").concat(verticalAlign), (0, _defineProperty2.default)({}, "".concat(blockClass, "__variable-row-height"), variableRowHeight), (_getTableProps = getTableProps()) === null || _getTableProps === void 0 ? void 0 : _getTableProps.className)
82
- }), /*#__PURE__*/_react.default.createElement(_DatagridHead.default, datagridState), /*#__PURE__*/_react.default.createElement(_DatagridBody.default, (0, _extends2.default)({}, datagridState, {
83
- rows: rows
84
- }))))), (rows === null || rows === void 0 ? void 0 : rows.length) > 0 && !isFetching && DatagridPagination && DatagridPagination(datagridState), CustomizeColumnsModal && /*#__PURE__*/_react.default.createElement(CustomizeColumnsModal, {
85
- instance: datagridState
86
- }));
87
-
88
- return /*#__PURE__*/_react.default.createElement("div", (0, _extends2.default)({}, rest, {
51
+ return /*#__PURE__*/_react.default.createElement(_InlineEditContext.InlineEditProvider, null, /*#__PURE__*/_react.default.createElement("div", (0, _extends2.default)({}, rest, {
89
52
  id: tableId,
90
53
  ref: ref,
91
54
  className: (0, _classnames.default)(className, blockClass, withVirtualScroll ? "".concat(blockClass, "__datagridWrap") : "".concat(blockClass, "__datagridWrap-simple"), !isFetching && rows.length === 0 ? "".concat(blockClass, "__empty-state") : '')
92
55
  }, (0, _devtools.getDevtoolsProps)(componentName)), leftPanel && /*#__PURE__*/_react.default.createElement("div", {
93
56
  className: "".concat(blockClass, "__datagridWithPanel ").concat(blockClass, "__displayFlex ").concat(blockClass, "__leftPanel-position")
94
- }, dataGrid), leftPanel === undefined && dataGrid);
57
+ }, /*#__PURE__*/_react.default.createElement(_DatagridContent.DatagridContent, {
58
+ datagridState: datagridState
59
+ })), leftPanel === undefined && /*#__PURE__*/_react.default.createElement(_DatagridContent.DatagridContent, {
60
+ datagridState: datagridState
61
+ })));
95
62
  }); // Return a placeholder if not released and not enabled by feature flag
96
63
 
97
64
 
@@ -0,0 +1,160 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _typeof = require("@babel/runtime/helpers/typeof");
6
+
7
+ Object.defineProperty(exports, "__esModule", {
8
+ value: true
9
+ });
10
+ exports.DatagridContent = void 0;
11
+
12
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
13
+
14
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
15
+
16
+ var _react = _interopRequireWildcard(require("react"));
17
+
18
+ var _classnames = _interopRequireDefault(require("classnames"));
19
+
20
+ var _propTypes = _interopRequireDefault(require("prop-types"));
21
+
22
+ var _carbonComponentsReact = require("carbon-components-react");
23
+
24
+ var _DatagridHead = _interopRequireDefault(require("./DatagridHead"));
25
+
26
+ var _DatagridBody = _interopRequireDefault(require("./DatagridBody"));
27
+
28
+ var _DatagridToolbar = _interopRequireDefault(require("./DatagridToolbar"));
29
+
30
+ var _handleGridKeyPress = require("./addons/InlineEdit/handleGridKeyPress");
31
+
32
+ var _settings = require("../../../settings");
33
+
34
+ var _InlineEditContext = require("./addons/InlineEdit/InlineEditContext");
35
+
36
+ var _handleGridFocus = require("./addons/InlineEdit/handleGridFocus");
37
+
38
+ var _hooks = require("../../../global/js/hooks");
39
+
40
+ var _hooks2 = require("../../DataSpreadsheet/hooks");
41
+
42
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
43
+
44
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
45
+
46
+ var TableContainer = _carbonComponentsReact.DataTable.TableContainer,
47
+ Table = _carbonComponentsReact.DataTable.Table;
48
+ var blockClass = "".concat(_settings.pkg.prefix, "--datagrid");
49
+
50
+ var DatagridContent = function DatagridContent(_ref) {
51
+ var _getTableProps;
52
+
53
+ var datagridState = _ref.datagridState;
54
+
55
+ var _useContext = (0, _react.useContext)(_InlineEditContext.InlineEditContext),
56
+ state = _useContext.state,
57
+ dispatch = _useContext.dispatch;
58
+
59
+ var activeCellId = state.activeCellId;
60
+ var _datagridState$getTab = datagridState.getTableProps,
61
+ getTableProps = _datagridState$getTab === void 0 ? function () {} : _datagridState$getTab,
62
+ withVirtualScroll = datagridState.withVirtualScroll,
63
+ DatagridPagination = datagridState.DatagridPagination,
64
+ isFetching = datagridState.isFetching,
65
+ CustomizeColumnsModal = datagridState.CustomizeColumnsModal,
66
+ leftPanel = datagridState.leftPanel,
67
+ fullHeightDatagrid = datagridState.fullHeightDatagrid,
68
+ _datagridState$vertic = datagridState.verticalAlign,
69
+ verticalAlign = _datagridState$vertic === void 0 ? 'center' : _datagridState$vertic,
70
+ variableRowHeight = datagridState.variableRowHeight,
71
+ gridTitle = datagridState.gridTitle,
72
+ gridDescription = datagridState.gridDescription,
73
+ useDenseHeader = datagridState.useDenseHeader,
74
+ withInlineEdit = datagridState.withInlineEdit;
75
+ var rows = DatagridPagination && datagridState.page || datagridState.rows;
76
+ var gridActive = state.gridActive,
77
+ editId = state.editId;
78
+ var gridAreaRef = (0, _react.useRef)();
79
+ var multiKeyTrackingRef = (0, _react.useRef)();
80
+ (0, _hooks.useClickOutside)(gridAreaRef, function (target) {
81
+ if (!withInlineEdit) {
82
+ return;
83
+ } // We return from here if we find a parent element with the selector below
84
+ // because that element was initially part of the grid area but was removed
85
+ // and swapped out with an input, i.e. text, number, selection, or date picker
86
+
87
+
88
+ if (target.closest(".".concat(blockClass, "__inline-edit-button")) || target.closest(".".concat(blockClass, "__inline-edit--select"))) {
89
+ return;
90
+ }
91
+
92
+ dispatch({
93
+ type: 'REMOVE_GRID_ACTIVE_FOCUS',
94
+ payload: activeCellId
95
+ });
96
+ });
97
+
98
+ var _useMultipleKeyTracki = (0, _hooks2.useMultipleKeyTracking)({
99
+ ref: multiKeyTrackingRef,
100
+ containerHasFocus: gridActive,
101
+ isEditing: !!editId
102
+ }),
103
+ keysPressedList = _useMultipleKeyTracki.keysPressedList,
104
+ usingMac = _useMultipleKeyTracki.usingMac;
105
+
106
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(TableContainer, {
107
+ className: (0, _classnames.default)("".concat(blockClass, "__grid-container"), withVirtualScroll || fullHeightDatagrid ? "".concat(blockClass, "__full-height") : '', DatagridPagination ? "".concat(blockClass, "__with-pagination") : '', useDenseHeader ? "".concat(blockClass, "__dense-header") : ''),
108
+ title: gridTitle,
109
+ description: gridDescription
110
+ }, /*#__PURE__*/_react.default.createElement(_DatagridToolbar.default, datagridState), /*#__PURE__*/_react.default.createElement("div", {
111
+ className: "".concat(blockClass, "__table-container"),
112
+ ref: gridAreaRef
113
+ }, leftPanel && leftPanel.isOpen && /*#__PURE__*/_react.default.createElement("div", {
114
+ className: "".concat(blockClass, "__datagridLeftPanel")
115
+ }, leftPanel.panelContent), /*#__PURE__*/_react.default.createElement("div", {
116
+ ref: multiKeyTrackingRef
117
+ }, /*#__PURE__*/_react.default.createElement(Table, (0, _extends2.default)({}, getTableProps(), {
118
+ className: (0, _classnames.default)(withVirtualScroll ? '' : "".concat(blockClass, "__table-simple"), "".concat(blockClass, "__vertical-align-").concat(verticalAlign), (0, _defineProperty2.default)({}, "".concat(blockClass, "__variable-row-height"), variableRowHeight), (0, _defineProperty2.default)({}, "".concat(blockClass, "__table-with-inline-edit"), withInlineEdit), (0, _defineProperty2.default)({}, "".concat(blockClass, "__table-grid-active"), gridActive), (_getTableProps = getTableProps()) === null || _getTableProps === void 0 ? void 0 : _getTableProps.className),
119
+ role: withInlineEdit && 'grid',
120
+ tabIndex: withInlineEdit && 0,
121
+ onKeyDown: withInlineEdit ? function (event) {
122
+ return (0, _handleGridKeyPress.handleGridKeyPress)({
123
+ event: event,
124
+ dispatch: dispatch,
125
+ state: state,
126
+ instance: datagridState,
127
+ keysPressedList: keysPressedList,
128
+ usingMac: usingMac
129
+ });
130
+ } : null,
131
+ onFocus: withInlineEdit ? function () {
132
+ return (0, _handleGridFocus.handleGridFocus)(state, dispatch);
133
+ } : null
134
+ }), /*#__PURE__*/_react.default.createElement(_DatagridHead.default, datagridState), /*#__PURE__*/_react.default.createElement(_DatagridBody.default, (0, _extends2.default)({}, datagridState, {
135
+ rows: rows
136
+ })))))), (rows === null || rows === void 0 ? void 0 : rows.length) > 0 && !isFetching && DatagridPagination && DatagridPagination(datagridState), CustomizeColumnsModal && /*#__PURE__*/_react.default.createElement(CustomizeColumnsModal, {
137
+ instance: datagridState
138
+ }));
139
+ };
140
+
141
+ exports.DatagridContent = DatagridContent;
142
+ DatagridContent.propTypes = {
143
+ datagridState: _propTypes.default.shape({
144
+ getTableProps: _propTypes.default.func,
145
+ withVirtualScroll: _propTypes.default.bool,
146
+ DatagridPagination: _propTypes.default.oneOfType([_propTypes.default.element, _propTypes.default.func]),
147
+ CustomizeColumnsModal: _propTypes.default.element,
148
+ isFetching: _propTypes.default.bool,
149
+ leftPanel: _propTypes.default.object,
150
+ fullHeightDatagrid: _propTypes.default.bool,
151
+ variableRowHeight: _propTypes.default.bool,
152
+ useDenseHeader: _propTypes.default.bool,
153
+ withInlineEdit: _propTypes.default.bool,
154
+ verticalAlign: _propTypes.default.string,
155
+ gridTitle: _propTypes.default.node,
156
+ gridDescription: _propTypes.default.node,
157
+ page: _propTypes.default.arrayOf(_propTypes.default.object),
158
+ rows: _propTypes.default.arrayOf(_propTypes.default.object)
159
+ })
160
+ };
@@ -24,13 +24,21 @@ var DatagridExpandedRow = function DatagridExpandedRow(PreviousRowRenderer, Expa
24
24
  return function (datagridState) {
25
25
  var row = datagridState.row;
26
26
 
27
+ var _ref = row || {},
28
+ expandedContentHeight = _ref.expandedContentHeight;
29
+
27
30
  if (!row.isExpanded) {
28
31
  return PreviousRowRenderer(datagridState);
29
32
  }
30
33
 
31
34
  return /*#__PURE__*/_react.default.createElement("div", {
32
35
  className: "".concat(blockClass, "__expanded-row")
33
- }, PreviousRowRenderer(datagridState), ExpandedRowContentComponent(datagridState));
36
+ }, PreviousRowRenderer(datagridState), /*#__PURE__*/_react.default.createElement("div", {
37
+ className: "".concat(blockClass, "__expanded-row-content"),
38
+ style: {
39
+ height: expandedContentHeight ? expandedContentHeight : null
40
+ }
41
+ }, ExpandedRowContentComponent(datagridState)));
34
42
  };
35
43
  };
36
44
 
@@ -11,27 +11,36 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
11
11
 
12
12
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
13
13
 
14
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
15
+
14
16
  var _react = _interopRequireDefault(require("react"));
15
17
 
16
18
  var _carbonComponentsReact = require("carbon-components-react");
17
19
 
20
+ var _classnames = _interopRequireDefault(require("classnames"));
21
+
18
22
  var _settings = require("../../../settings");
19
23
 
20
24
  var _excluded = ["onChange"];
21
25
  var blockClass = "".concat(_settings.pkg.prefix, "--datagrid");
22
26
 
23
27
  var SelectAll = function SelectAll(datagridState) {
28
+ var _columns$;
29
+
24
30
  var isFetching = datagridState.isFetching,
25
31
  getToggleAllRowsSelectedProps = datagridState.getToggleAllRowsSelectedProps,
26
32
  getToggleAllPageRowsSelectedProps = datagridState.getToggleAllPageRowsSelectedProps,
27
33
  tableId = datagridState.tableId,
28
34
  hideSelectAll = datagridState.hideSelectAll,
29
35
  DatagridPagination = datagridState.DatagridPagination,
30
- radio = datagridState.radio;
36
+ radio = datagridState.radio,
37
+ columns = datagridState.columns,
38
+ withStickyColumn = datagridState.withStickyColumn;
39
+ var isFirstColumnStickyLeft = ((_columns$ = columns[0]) === null || _columns$ === void 0 ? void 0 : _columns$.sticky) === 'left' && withStickyColumn;
31
40
 
32
41
  if (hideSelectAll || radio) {
33
42
  return /*#__PURE__*/_react.default.createElement("div", {
34
- className: "".concat(blockClass, "__head-hidden-select-all")
43
+ className: (0, _classnames.default)("".concat(blockClass, "__head-hidden-select-all"), (0, _defineProperty2.default)({}, "".concat(blockClass, "__select-all-sticky-left"), isFirstColumnStickyLeft))
35
44
  });
36
45
  }
37
46
 
@@ -42,7 +51,7 @@ var SelectAll = function SelectAll(datagridState) {
42
51
  selectProps = (0, _objectWithoutProperties2.default)(_getProps, _excluded);
43
52
 
44
53
  return /*#__PURE__*/_react.default.createElement("div", {
45
- className: "".concat(blockClass, "__head-select-all ").concat(blockClass, "__checkbox-cell")
54
+ className: (0, _classnames.default)("".concat(blockClass, "__head-select-all"), "".concat(blockClass, "__checkbox-cell"), (0, _defineProperty2.default)({}, "".concat(blockClass, "__checkbox-cell-sticky-left"), isFirstColumnStickyLeft))
46
55
  }, /*#__PURE__*/_react.default.createElement(TableSelectAll, (0, _extends2.default)({}, selectProps, {
47
56
  name: "".concat(tableId, "-select-all-checkbox-name"),
48
57
  onSelect: onChange,