@carbon/ibm-products 2.20.0 → 2.22.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (134) hide show
  1. package/README.md +8 -5
  2. package/css/index-full-carbon.css +548 -253
  3. package/css/index-full-carbon.css.map +1 -1
  4. package/css/index-full-carbon.min.css +1 -1
  5. package/css/index-full-carbon.min.css.map +1 -1
  6. package/css/index-without-carbon-released-only.css +208 -177
  7. package/css/index-without-carbon-released-only.css.map +1 -1
  8. package/css/index-without-carbon-released-only.min.css +1 -1
  9. package/css/index-without-carbon-released-only.min.css.map +1 -1
  10. package/css/index-without-carbon.css +252 -189
  11. package/css/index-without-carbon.css.map +1 -1
  12. package/css/index-without-carbon.min.css +1 -1
  13. package/css/index-without-carbon.min.css.map +1 -1
  14. package/css/index.css +233 -193
  15. package/css/index.css.map +1 -1
  16. package/css/index.min.css +1 -1
  17. package/css/index.min.css.map +1 -1
  18. package/es/components/ActionSet/ActionSet.js +3 -4
  19. package/es/components/AddSelect/AddSelectBody.js +2 -2
  20. package/es/components/AddSelect/AddSelectRow.js +2 -2
  21. package/es/components/Card/Card.js +1 -2
  22. package/es/components/Card/CardHeader.js +1 -2
  23. package/es/components/CreateFullPage/CreateFullPageStep.js +1 -2
  24. package/es/components/CreateTearsheet/CreateTearsheetStep.js +1 -2
  25. package/es/components/DataSpreadsheet/DataSpreadsheet.js +1 -2
  26. package/es/components/DataSpreadsheet/DataSpreadsheetBody.js +1 -2
  27. package/es/components/DataSpreadsheet/DataSpreadsheetHeader.js +1 -2
  28. package/es/components/Datagrid/Datagrid/DatagridContent.js +10 -10
  29. package/es/components/Datagrid/Datagrid/DatagridHeaderRow.js +6 -11
  30. package/es/components/Datagrid/Datagrid/DatagridRow.js +15 -11
  31. package/es/components/Datagrid/Datagrid/DraggableElement.js +1 -2
  32. package/es/components/Datagrid/Datagrid/addons/Filtering/FilterFlyout.js +21 -11
  33. package/es/components/Datagrid/Datagrid/addons/Filtering/FilterPanel.js +22 -12
  34. package/es/components/Datagrid/Datagrid/addons/Filtering/hooks/useFilters.js +31 -74
  35. package/es/components/Datagrid/Datagrid/addons/Filtering/hooks/useShouldDisableButtons.js +2 -3
  36. package/es/components/Datagrid/Datagrid/addons/Filtering/utils.js +1 -5
  37. package/es/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditButton/InlineEditButton.js +2 -3
  38. package/es/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditCell/InlineEditCell.js +2 -2
  39. package/es/components/Datagrid/useActionsColumn.js +1 -2
  40. package/es/components/Datagrid/useDefaultStringRenderer.js +1 -2
  41. package/es/components/Datagrid/useFiltering.js +1 -0
  42. package/es/components/Datagrid/useNestedRowExpander.js +1 -2
  43. package/es/components/Datagrid/useNestedRows.js +49 -33
  44. package/es/components/Datagrid/useOnRowClick.js +1 -1
  45. package/es/components/Datagrid/useRowIsMouseOver.js +3 -1
  46. package/es/components/Datagrid/useSelectRows.js +1 -2
  47. package/es/components/Datagrid/useSortableColumns.js +1 -2
  48. package/es/components/Datagrid/useStickyColumn.js +3 -4
  49. package/es/components/Datagrid/utils/filterPropsForTesting.js +149 -0
  50. package/es/components/DelimitedList/DelimitedList.docs-page.js +15 -0
  51. package/es/components/DelimitedList/DelimitedList.js +73 -0
  52. package/es/components/DelimitedList/index.js +8 -0
  53. package/es/components/EditInPlace/EditInPlace.js +1 -2
  54. package/es/components/EditTearsheet/EditTearsheetForm.js +1 -2
  55. package/es/components/FilterSummary/FilterSummary.js +15 -12
  56. package/es/components/NotificationsPanel/NotificationsPanel.js +2 -3
  57. package/es/components/PageHeader/PageHeader.js +9 -11
  58. package/es/components/Saving/Saving.js +6 -6
  59. package/es/components/SidePanel/SidePanel.js +147 -191
  60. package/es/components/TagSet/TagSet.js +21 -5
  61. package/es/components/TagSet/TagSetOverflow.js +14 -10
  62. package/es/components/Tearsheet/Tearsheet.js +5 -0
  63. package/es/components/Tearsheet/TearsheetNarrow.js +5 -0
  64. package/es/components/Tearsheet/TearsheetShell.js +9 -9
  65. package/es/components/WebTerminal/WebTerminal.js +1 -2
  66. package/es/components/index.js +2 -1
  67. package/es/global/js/hooks/useResizeObserver.js +5 -2
  68. package/es/global/js/package-settings.js +1 -0
  69. package/lib/components/ActionSet/ActionSet.js +3 -4
  70. package/lib/components/AddSelect/AddSelectBody.js +2 -2
  71. package/lib/components/AddSelect/AddSelectRow.js +2 -2
  72. package/lib/components/Card/Card.js +1 -2
  73. package/lib/components/Card/CardHeader.js +1 -2
  74. package/lib/components/CreateFullPage/CreateFullPageStep.js +1 -2
  75. package/lib/components/CreateTearsheet/CreateTearsheetStep.js +1 -2
  76. package/lib/components/DataSpreadsheet/DataSpreadsheet.js +1 -2
  77. package/lib/components/DataSpreadsheet/DataSpreadsheetBody.js +1 -2
  78. package/lib/components/DataSpreadsheet/DataSpreadsheetHeader.js +1 -2
  79. package/lib/components/Datagrid/Datagrid/DatagridContent.js +10 -10
  80. package/lib/components/Datagrid/Datagrid/DatagridHeaderRow.js +6 -11
  81. package/lib/components/Datagrid/Datagrid/DatagridRow.js +15 -11
  82. package/lib/components/Datagrid/Datagrid/DraggableElement.js +1 -2
  83. package/lib/components/Datagrid/Datagrid/addons/Filtering/FilterFlyout.js +21 -11
  84. package/lib/components/Datagrid/Datagrid/addons/Filtering/FilterPanel.js +22 -12
  85. package/lib/components/Datagrid/Datagrid/addons/Filtering/hooks/useFilters.js +31 -74
  86. package/lib/components/Datagrid/Datagrid/addons/Filtering/hooks/useShouldDisableButtons.js +2 -3
  87. package/lib/components/Datagrid/Datagrid/addons/Filtering/utils.js +1 -5
  88. package/lib/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditButton/InlineEditButton.js +2 -3
  89. package/lib/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditCell/InlineEditCell.js +2 -2
  90. package/lib/components/Datagrid/useActionsColumn.js +1 -2
  91. package/lib/components/Datagrid/useDefaultStringRenderer.js +1 -2
  92. package/lib/components/Datagrid/useFiltering.js +1 -0
  93. package/lib/components/Datagrid/useNestedRowExpander.js +1 -2
  94. package/lib/components/Datagrid/useNestedRows.js +49 -33
  95. package/lib/components/Datagrid/useOnRowClick.js +1 -1
  96. package/lib/components/Datagrid/useRowIsMouseOver.js +3 -1
  97. package/lib/components/Datagrid/useSelectRows.js +1 -2
  98. package/lib/components/Datagrid/useSortableColumns.js +1 -2
  99. package/lib/components/Datagrid/useStickyColumn.js +3 -4
  100. package/lib/components/Datagrid/utils/filterPropsForTesting.js +156 -0
  101. package/lib/components/DelimitedList/DelimitedList.docs-page.js +25 -0
  102. package/lib/components/DelimitedList/DelimitedList.js +78 -0
  103. package/lib/components/DelimitedList/index.js +12 -0
  104. package/lib/components/EditInPlace/EditInPlace.js +1 -2
  105. package/lib/components/EditTearsheet/EditTearsheetForm.js +1 -2
  106. package/lib/components/FilterSummary/FilterSummary.js +15 -12
  107. package/lib/components/NotificationsPanel/NotificationsPanel.js +2 -3
  108. package/lib/components/PageHeader/PageHeader.js +9 -11
  109. package/lib/components/Saving/Saving.js +6 -6
  110. package/lib/components/SidePanel/SidePanel.js +147 -191
  111. package/lib/components/TagSet/TagSet.js +21 -5
  112. package/lib/components/TagSet/TagSetOverflow.js +13 -9
  113. package/lib/components/Tearsheet/Tearsheet.js +5 -0
  114. package/lib/components/Tearsheet/TearsheetNarrow.js +5 -0
  115. package/lib/components/Tearsheet/TearsheetShell.js +9 -9
  116. package/lib/components/WebTerminal/WebTerminal.js +1 -2
  117. package/lib/components/index.js +8 -1
  118. package/lib/global/js/hooks/useResizeObserver.js +5 -2
  119. package/lib/global/js/package-settings.js +1 -0
  120. package/package.json +9 -8
  121. package/scss/components/Datagrid/_datagrid.scss +4 -0
  122. package/scss/components/Datagrid/styles/_datagrid.scss +9 -1
  123. package/scss/components/Datagrid/styles/_useStickyColumn.scss +2 -0
  124. package/scss/components/DelimitedList/_carbon-imports.scss +9 -0
  125. package/scss/components/DelimitedList/_delimited-list.scss +27 -0
  126. package/scss/components/DelimitedList/_index-with-carbon.scss +9 -0
  127. package/scss/components/DelimitedList/_index.scss +8 -0
  128. package/scss/components/Saving/_saving.scss +6 -0
  129. package/scss/components/SidePanel/_side-panel-variables.scss +5 -1
  130. package/scss/components/SidePanel/_side-panel.scss +158 -186
  131. package/scss/components/TagSet/_tag-set.scss +4 -1
  132. package/scss/components/_index-with-carbon.scss +1 -0
  133. package/scss/components/_index.scss +1 -0
  134. package/telemetry.yml +790 -0
@@ -31,18 +31,22 @@ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e;
31
31
 
32
32
  var blockClass = "".concat(_settings.pkg.prefix, "--datagrid");
33
33
  var componentClass = "".concat(blockClass, "-filter-flyout");
34
+ var defaults = {
35
+ flyoutIconDescription: 'Open filters',
36
+ title: 'Filter',
37
+ primaryActionLabel: 'Apply',
38
+ secondaryActionLabel: 'Cancel'
39
+ };
34
40
  var FilterFlyout = function FilterFlyout(_ref) {
35
- var _cx2;
36
- var _ref$updateMethod = _ref.updateMethod,
37
- updateMethod = _ref$updateMethod === void 0 ? _constants.BATCH : _ref$updateMethod,
41
+ var updateMethod = _ref.updateMethod,
38
42
  _ref$flyoutIconDescri = _ref.flyoutIconDescription,
39
- flyoutIconDescription = _ref$flyoutIconDescri === void 0 ? 'Open filters' : _ref$flyoutIconDescri,
43
+ flyoutIconDescription = _ref$flyoutIconDescri === void 0 ? defaults.flyoutIconDescription : _ref$flyoutIconDescri,
40
44
  _ref$filters = _ref.filters,
41
45
  filters = _ref$filters === void 0 ? [] : _ref$filters,
42
46
  _ref$title = _ref.title,
43
- title = _ref$title === void 0 ? 'Filter' : _ref$title,
47
+ title = _ref$title === void 0 ? defaults.title : _ref$title,
44
48
  _ref$primaryActionLab = _ref.primaryActionLabel,
45
- primaryActionLabel = _ref$primaryActionLab === void 0 ? 'Apply' : _ref$primaryActionLab,
49
+ primaryActionLabel = _ref$primaryActionLab === void 0 ? defaults.primaryActionLabel : _ref$primaryActionLab,
46
50
  _ref$onFlyoutOpen = _ref.onFlyoutOpen,
47
51
  onFlyoutOpen = _ref$onFlyoutOpen === void 0 ? function () {} : _ref$onFlyoutOpen,
48
52
  _ref$onFlyoutClose = _ref.onFlyoutClose,
@@ -52,7 +56,7 @@ var FilterFlyout = function FilterFlyout(_ref) {
52
56
  _ref$onCancel = _ref.onCancel,
53
57
  onCancel = _ref$onCancel === void 0 ? function () {} : _ref$onCancel,
54
58
  _ref$secondaryActionL = _ref.secondaryActionLabel,
55
- secondaryActionLabel = _ref$secondaryActionL === void 0 ? 'Cancel' : _ref$secondaryActionL,
59
+ secondaryActionLabel = _ref$secondaryActionL === void 0 ? defaults.secondaryActionLabel : _ref$secondaryActionL,
56
60
  setAllFilters = _ref.setAllFilters,
57
61
  _ref$data = _ref.data,
58
62
  data = _ref$data === void 0 ? [] : _ref$data,
@@ -67,13 +71,17 @@ var FilterFlyout = function FilterFlyout(_ref) {
67
71
  _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
68
72
  stackedLayout = _useState4[0],
69
73
  setStackedLayout = _useState4[1];
74
+ var handleCancel = function handleCancel() {
75
+ setOpen(false);
76
+ onCancel();
77
+ };
70
78
  var _useFilters = (0, _hooks2.useFilters)({
71
79
  updateMethod: updateMethod,
72
80
  filters: filters,
73
81
  setAllFilters: setAllFilters,
74
82
  variation: _constants.FLYOUT,
75
83
  reactTableFiltersState: reactTableFiltersState,
76
- onCancel: onCancel
84
+ onCancel: handleCancel
77
85
  }),
78
86
  filtersState = _useFilters.filtersState,
79
87
  prevFiltersObjectArrayRef = _useFilters.prevFiltersObjectArrayRef,
@@ -100,6 +108,9 @@ var FilterFlyout = function FilterFlyout(_ref) {
100
108
  _useShouldDisableButt2 = (0, _slicedToArray2.default)(_useShouldDisableButt, 2),
101
109
  shouldDisableButtons = _useShouldDisableButt2[0],
102
110
  setShouldDisableButtons = _useShouldDisableButt2[1];
111
+
112
+ // Skip resize testing
113
+ /* istanbul ignore next */
103
114
  var handleResize = function handleResize(current) {
104
115
  var filterFlyoutRefPosition = flyoutInnerRef === null || flyoutInnerRef === void 0 ? void 0 : flyoutInnerRef.current.getBoundingClientRect();
105
116
  var originalFlyoutWidth = parseInt(window.getComputedStyle(flyoutInnerRef === null || flyoutInnerRef === void 0 ? void 0 : flyoutInnerRef.current).getPropertyValue('width'));
@@ -180,8 +191,7 @@ var FilterFlyout = function FilterFlyout(_ref) {
180
191
  kind: 'secondary',
181
192
  label: secondaryActionLabel,
182
193
  onClick: cancel,
183
- isExpressive: false,
184
- disabled: shouldDisableButtons
194
+ isExpressive: false
185
195
  }],
186
196
  size: "md",
187
197
  buttonSize: "md"
@@ -213,7 +223,7 @@ var FilterFlyout = function FilterFlyout(_ref) {
213
223
  className: (0, _classnames.default)("".concat(componentClass, "__trigger"), (0, _defineProperty2.default)({}, "".concat(componentClass, "__trigger--open"), open)),
214
224
  disabled: data.length === 0
215
225
  }, /*#__PURE__*/_react2.default.createElement(_icons.Filter, null)), /*#__PURE__*/_react2.default.createElement("div", {
216
- className: (0, _classnames.default)(componentClass, (_cx2 = {}, (0, _defineProperty2.default)(_cx2, "".concat(componentClass, "--open"), open), (0, _defineProperty2.default)(_cx2, "".concat(componentClass, "--batch"), showActionSet), (0, _defineProperty2.default)(_cx2, "".concat(componentClass, "--instant"), !showActionSet), _cx2)),
226
+ className: (0, _classnames.default)(componentClass, (0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)({}, "".concat(componentClass, "--open"), open), "".concat(componentClass, "--batch"), showActionSet), "".concat(componentClass, "--instant"), !showActionSet)),
217
227
  ref: flyoutInnerRef
218
228
  }, /*#__PURE__*/_react2.default.createElement("div", {
219
229
  className: "".concat(componentClass, "__inner-container")
@@ -36,14 +36,20 @@ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e;
36
36
  var blockClass = "".concat(_settings.pkg.prefix, "--datagrid");
37
37
  var componentClass = exports.componentClass = "".concat(blockClass, "-filter-panel");
38
38
  var MotionActionSet = (0, _framerMotion.motion)(_ActionSet.ActionSet);
39
+ var defaults = {
40
+ title: 'Filter',
41
+ closeIconDescription: 'Close filter panel',
42
+ primaryActionLabel: 'Apply',
43
+ secondaryActionLabel: 'Cancel',
44
+ searchLabelText: 'Filter search',
45
+ searchPlaceholder: 'Find filters'
46
+ };
39
47
  var FilterPanel = function FilterPanel(_ref) {
40
- var _cx;
41
48
  var _ref$title = _ref.title,
42
- title = _ref$title === void 0 ? 'Filter' : _ref$title,
49
+ title = _ref$title === void 0 ? defaults.title : _ref$title,
43
50
  _ref$closeIconDescrip = _ref.closeIconDescription,
44
- closeIconDescription = _ref$closeIconDescrip === void 0 ? 'Close filter panel' : _ref$closeIconDescrip,
45
- _ref$updateMethod = _ref.updateMethod,
46
- updateMethod = _ref$updateMethod === void 0 ? _constants.BATCH : _ref$updateMethod,
51
+ closeIconDescription = _ref$closeIconDescrip === void 0 ? defaults.closeIconDescription : _ref$closeIconDescrip,
52
+ updateMethod = _ref.updateMethod,
47
53
  filterSections = _ref.filterSections,
48
54
  setAllFilters = _ref.setAllFilters,
49
55
  _ref$onApply = _ref.onApply,
@@ -59,13 +65,13 @@ var FilterPanel = function FilterPanel(_ref) {
59
65
  _ref$filterPanelMinHe = _ref.filterPanelMinHeight,
60
66
  filterPanelMinHeight = _ref$filterPanelMinHe === void 0 ? 600 : _ref$filterPanelMinHe,
61
67
  _ref$primaryActionLab = _ref.primaryActionLabel,
62
- primaryActionLabel = _ref$primaryActionLab === void 0 ? 'Apply' : _ref$primaryActionLab,
68
+ primaryActionLabel = _ref$primaryActionLab === void 0 ? defaults.primaryActionLabel : _ref$primaryActionLab,
63
69
  _ref$secondaryActionL = _ref.secondaryActionLabel,
64
- secondaryActionLabel = _ref$secondaryActionL === void 0 ? 'Cancel' : _ref$secondaryActionL,
70
+ secondaryActionLabel = _ref$secondaryActionL === void 0 ? defaults.secondaryActionLabel : _ref$secondaryActionL,
65
71
  _ref$searchLabelText = _ref.searchLabelText,
66
- searchLabelText = _ref$searchLabelText === void 0 ? 'Filter search' : _ref$searchLabelText,
72
+ searchLabelText = _ref$searchLabelText === void 0 ? defaults.searchLabelText : _ref$searchLabelText,
67
73
  _ref$searchPlaceholde = _ref.searchPlaceholder,
68
- searchPlaceholder = _ref$searchPlaceholde === void 0 ? 'Find filters' : _ref$searchPlaceholde,
74
+ searchPlaceholder = _ref$searchPlaceholde === void 0 ? defaults.searchPlaceholder : _ref$searchPlaceholde,
69
75
  _ref$reactTableFilter = _ref.reactTableFiltersState,
70
76
  reactTableFiltersState = _ref$reactTableFilter === void 0 ? [] : _ref$reactTableFilter,
71
77
  _ref$autoHideFilters = _ref.autoHideFilters,
@@ -190,12 +196,13 @@ var FilterPanel = function FilterPanel(_ref) {
190
196
  var filterHeadingHeight = (_filterHeadingRef$cur = filterHeadingRef.current) === null || _filterHeadingRef$cur === void 0 ? void 0 : _filterHeadingRef$cur.getBoundingClientRect().height;
191
197
  var filterSearchHeight = (_filterSearchRef$curr = filterSearchRef.current) === null || _filterSearchRef$curr === void 0 ? void 0 : _filterSearchRef$curr.getBoundingClientRect().height;
192
198
  var actionSetHeight = (_actionSetRef$current = actionSetRef.current) === null || _actionSetRef$current === void 0 ? void 0 : _actionSetRef$current.getBoundingClientRect().height;
193
- var height = "calc(100vh - ".concat(filterHeadingHeight, "px - ").concat(showFilterSearch ? filterSearchHeight : 0, "px - ").concat(updateMethod === _constants.BATCH ? actionSetHeight : 0, "px)");
199
+ var height = panelOpen ? "calc(100vh - ".concat(filterHeadingHeight, "px - ").concat( /* istanbul ignore next */
200
+ showFilterSearch ? filterSearchHeight : 0, "px - ").concat(updateMethod === _constants.BATCH ? actionSetHeight : 0, "px)") : 0;
194
201
  return height;
195
202
  };
196
203
  return /*#__PURE__*/_react2.default.createElement(_framerMotion.motion.div, {
197
204
  ref: filterPanelRef,
198
- className: (0, _classnames.default)(componentClass, "".concat(componentClass, "__container"), (_cx = {}, (0, _defineProperty2.default)(_cx, "".concat(componentClass, "--open"), panelOpen), (0, _defineProperty2.default)(_cx, "".concat(componentClass, "--batch"), showActionSet), (0, _defineProperty2.default)(_cx, "".concat(componentClass, "--instant"), !showActionSet), _cx)),
205
+ className: (0, _classnames.default)(componentClass, "".concat(componentClass, "__container"), (0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)({}, "".concat(componentClass, "--open"), panelOpen), "".concat(componentClass, "--batch"), showActionSet), "".concat(componentClass, "--instant"), !showActionSet)),
199
206
  initial: false,
200
207
  animate: panelOpen ? 'visible' : 'hidden',
201
208
  custom: shouldReduceMotion,
@@ -220,7 +227,10 @@ var FilterPanel = function FilterPanel(_ref) {
220
227
  tooltipPosition: "bottom",
221
228
  tooltipAlignment: "end",
222
229
  onClick: closePanel
223
- }), showFilterSearch && /*#__PURE__*/_react2.default.createElement("div", {
230
+ }), showFilterSearch &&
231
+ /*#__PURE__*/
232
+ /* istanbul ignore next */
233
+ _react2.default.createElement("div", {
224
234
  ref: filterSearchRef,
225
235
  className: "".concat(componentClass, "__search")
226
236
  }, /*#__PURE__*/_react2.default.createElement(_react.Layer, null, /*#__PURE__*/_react2.default.createElement(_react.Search, {
@@ -58,8 +58,7 @@ var useFilters = function useFilters(_ref2) {
58
58
  setAllFilters = _ref2.setAllFilters,
59
59
  variation = _ref2.variation,
60
60
  reactTableFiltersState = _ref2.reactTableFiltersState,
61
- _ref2$onCancel = _ref2.onCancel,
62
- onCancel = _ref2$onCancel === void 0 ? function () {} : _ref2$onCancel,
61
+ onCancel = _ref2.onCancel,
63
62
  panelOpen = _ref2.panelOpen,
64
63
  autoHideFilters = _ref2.autoHideFilters,
65
64
  isFetching = _ref2.isFetching;
@@ -128,9 +127,9 @@ var useFilters = function useFilters(_ref2) {
128
127
  if (type === _constants.DATE && value.length > 0 && !value[1]) {
129
128
  return;
130
129
  }
131
- var filtersObjectArrayCopy = (0, _toConsumableArray2.default)(filtersObjectArray);
130
+ var filterCopy = (0, _toConsumableArray2.default)(filtersObjectArray);
132
131
  // // check if the filter already exists in the array
133
- var filter = filtersObjectArrayCopy.find(function (item) {
132
+ var filter = filterCopy.find(function (item) {
134
133
  return item.id === column;
135
134
  });
136
135
 
@@ -138,81 +137,39 @@ var useFilters = function useFilters(_ref2) {
138
137
  if (filter) {
139
138
  filter.value = value;
140
139
  } else {
141
- filtersObjectArrayCopy.push({
140
+ filterCopy.push({
142
141
  id: column,
143
142
  value: value,
144
143
  type: type
145
144
  });
146
145
  }
147
-
148
- // ATTENTION: this is where you would reset or remove individual filters from the filters array
149
- if (type === _constants.CHECKBOX) {
150
- /**
151
- When all checkboxes of a group are all unselected the value still exists in the filtersObjectArray
152
- This checks if all the checkboxes are selected = false and removes it from the array
153
- */
154
- var index = filtersObjectArrayCopy.findIndex(function (filter) {
155
- return filter.id === column;
156
- });
157
-
158
- // If all the selected state is false remove from array
159
- var shouldRemoveFromArray = filtersObjectArrayCopy[index].value.every(function (val) {
160
- return val.selected === false;
161
- });
162
- if (shouldRemoveFromArray) {
163
- filtersObjectArrayCopy.splice(index, 1);
164
- }
165
- } else if (type === _constants.DATE) {
166
- if (value.length === 0) {
167
- /**
168
- Checks to see if the date value is an empty array, if it is that means the user wants
169
- to reset the date filter
170
- */
171
- var _index = filtersObjectArrayCopy.findIndex(function (filter) {
172
- return filter.id === column;
173
- });
174
-
175
- // Remove it from the filters array since there is nothing to filter
176
- filtersObjectArrayCopy.splice(_index, 1);
177
- }
178
- } else if (type === _constants.DROPDOWN || type === _constants.RADIO) {
179
- if (value === 'Any') {
180
- /**
181
- Checks to see if the selected value is 'Any', that means the user wants
182
- to reset specific filter
183
- */
184
- var _index2 = filtersObjectArrayCopy.findIndex(function (filter) {
185
- return filter.id === column;
186
- });
187
-
188
- // Remove it from the filters array
189
- filtersObjectArrayCopy.splice(_index2, 1);
190
- }
191
- } else if (type === _constants.NUMBER) {
192
- // If the value is empty remove it from the filtersObjectArray
193
- if (value === '') {
194
- // Find the column that uses number and displays an empty string
195
- var _index3 = filtersObjectArrayCopy.findIndex(function (filter) {
196
- return filter.id === column;
197
- });
198
-
199
- // Remove it from the filters array
200
- filtersObjectArrayCopy.splice(_index3, 1);
201
- }
146
+ var index = filterCopy.findIndex(function (_ref4) {
147
+ var id = _ref4.id;
148
+ return id === column;
149
+ });
150
+ var clearCheckbox = type === _constants.CHECKBOX && filterCopy[index].value.every(function (_ref5) {
151
+ var selected = _ref5.selected;
152
+ return selected === false;
153
+ });
154
+ var clearDate = type === _constants.DATE && value.length === 0;
155
+ var clearAny = (type === _constants.DROPDOWN || type === _constants.RADIO) && value === 'Any';
156
+ var clearNum = type === _constants.NUMBER && value === '';
157
+ var shouldClear = clearCheckbox || clearDate || clearAny || clearNum;
158
+ if (shouldClear) {
159
+ filterCopy.splice(index, 1);
202
160
  }
203
- setFiltersObjectArray(filtersObjectArrayCopy);
204
-
205
- // // Automatically apply the filters if the updateMethod is instant
161
+ setFiltersObjectArray(filterCopy);
206
162
  if (updateMethod === _constants.INSTANT) {
207
- setAllFilters(filtersObjectArrayCopy);
163
+ setAllFilters(filterCopy);
208
164
  }
209
165
  };
166
+
210
167
  /** Render the individual filter component */
211
- var renderFilter = function renderFilter(_ref4) {
168
+ var renderFilter = function renderFilter(_ref6) {
212
169
  var _filtersState$column3, _filtersState$column4;
213
- var type = _ref4.type,
214
- column = _ref4.column,
215
- components = _ref4.props;
170
+ var type = _ref6.type,
171
+ column = _ref6.column,
172
+ components = _ref6.props;
216
173
  var filter;
217
174
  var isPanel = variation === _constants.PANEL;
218
175
  if (!type) {
@@ -233,8 +190,8 @@ var useFilters = function useFilters(_ref2) {
233
190
  return /*#__PURE__*/_react2.default.createElement(_react.Checkbox, (0, _extends2.default)({
234
191
  key: option.id
235
192
  }, option, {
236
- onChange: function onChange(_, _ref5) {
237
- var checked = _ref5.checked;
193
+ onChange: function onChange(_, _ref7) {
194
+ var checked = _ref7.checked;
238
195
  handleCheckboxChange({
239
196
  checked: checked,
240
197
  filtersState: filtersState,
@@ -325,9 +282,9 @@ var useFilters = function useFilters(_ref2) {
325
282
  labelText: (_components$DefaultRa5 = components === null || components === void 0 || (_components$DefaultRa6 = components.DefaultRadioButton) === null || _components$DefaultRa6 === void 0 ? void 0 : _components$DefaultRa6.labelText) !== null && _components$DefaultRa5 !== void 0 ? _components$DefaultRa5 : 'Any',
326
283
  value: (_components$DefaultRa7 = components === null || components === void 0 || (_components$DefaultRa8 = components.DefaultRadioButton) === null || _components$DefaultRa8 === void 0 ? void 0 : _components$DefaultRa8.value) !== null && _components$DefaultRa7 !== void 0 ? _components$DefaultRa7 : 'Any'
327
284
  }, components.DefaultRadioButton)), components.RadioButton.map(function (radio) {
328
- var _ref6, _radio$id;
285
+ var _ref8, _radio$id;
329
286
  return /*#__PURE__*/_react2.default.createElement(_react.RadioButton, (0, _extends2.default)({
330
- key: (_ref6 = (_radio$id = radio.id) !== null && _radio$id !== void 0 ? _radio$id : radio.labelText) !== null && _ref6 !== void 0 ? _ref6 : radio.value
287
+ key: (_ref8 = (_radio$id = radio.id) !== null && _radio$id !== void 0 ? _radio$id : radio.labelText) !== null && _ref8 !== void 0 ? _ref8 : radio.value
331
288
  }, radio));
332
289
  })));
333
290
  }
@@ -336,9 +293,9 @@ var useFilters = function useFilters(_ref2) {
336
293
  filter = /*#__PURE__*/_react2.default.createElement(_react.Dropdown, (0, _extends2.default)({}, components.Dropdown, {
337
294
  selectedItem: ((_filtersState$column3 = filtersState[column]) === null || _filtersState$column3 === void 0 ? void 0 : _filtersState$column3.value) === '' ? 'Any' : (_filtersState$column4 = filtersState[column]) === null || _filtersState$column4 === void 0 ? void 0 : _filtersState$column4.value,
338
295
  items: ['Any'].concat((0, _toConsumableArray2.default)(components.Dropdown.items)),
339
- onChange: function onChange(_ref7) {
296
+ onChange: function onChange(_ref9) {
340
297
  var _components$Dropdown$, _components$Dropdown;
341
- var selectedItem = _ref7.selectedItem;
298
+ var selectedItem = _ref9.selectedItem;
342
299
  setFiltersState(_objectSpread(_objectSpread({}, filtersState), {}, (0, _defineProperty2.default)({}, column, {
343
300
  value: selectedItem,
344
301
  type: type
@@ -9,7 +9,7 @@ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/sli
9
9
  var _react = require("react");
10
10
  var _isEqual = _interopRequireDefault(require("lodash/isEqual"));
11
11
  /**
12
- * Copyright IBM Corp. 2023, 2023
12
+ * Copyright IBM Corp. 2023, 2024
13
13
  *
14
14
  * This source code is licensed under the Apache-2.0 license found in the
15
15
  * LICENSE file in the root directory of this source tree.
@@ -24,8 +24,7 @@ var _isEqual = _interopRequireDefault(require("lodash/isEqual"));
24
24
  * @returns {Array} returns a tuple of the state and setter function
25
25
  */
26
26
  var useShouldDisableButtons = function useShouldDisableButtons(_ref) {
27
- var _ref$initialValue = _ref.initialValue,
28
- initialValue = _ref$initialValue === void 0 ? true : _ref$initialValue,
27
+ var initialValue = _ref.initialValue,
29
28
  filtersState = _ref.filtersState,
30
29
  prevFiltersRef = _ref.prevFiltersRef;
31
30
  var _useState = (0, _react.useState)(initialValue),
@@ -29,9 +29,7 @@ var applyInitialFilters = function applyInitialFilters(filterState, initialFilte
29
29
  };
30
30
 
31
31
  // This functions takes the filters passed in and makes an object to track it's state
32
- var getInitialStateFromFilters = exports.getInitialStateFromFilters = function getInitialStateFromFilters(filters) {
33
- var variation = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _constants.FLYOUT;
34
- var initialFilters = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
32
+ var getInitialStateFromFilters = exports.getInitialStateFromFilters = function getInitialStateFromFilters(filters, variation, initialFilters) {
35
33
  var initialFilterState = {};
36
34
  var setInitialState = function setInitialState(_ref) {
37
35
  var type = _ref.type,
@@ -86,8 +84,6 @@ var getInitialStateFromFilters = exports.getInitialStateFromFilters = function g
86
84
  return setInitialState(filter);
87
85
  });
88
86
  });
89
- } else {
90
- console.error('No variation passed into useInitialStateFromFilters');
91
87
  }
92
88
  if (initialFilters.length > 0) {
93
89
  applyInitialFilters(initialFilterState, initialFilters);
@@ -19,7 +19,6 @@ var _settings = require("../../../../../../settings");
19
19
 
20
20
  var blockClass = "".concat(_settings.pkg.prefix, "--datagrid");
21
21
  var InlineEditButton = exports.InlineEditButton = function InlineEditButton(_ref) {
22
- var _cx, _cx2;
23
22
  var label = _ref.label,
24
23
  Icon = _ref.renderIcon,
25
24
  disabled = _ref.disabled,
@@ -30,7 +29,7 @@ var InlineEditButton = exports.InlineEditButton = function InlineEditButton(_ref
30
29
  columnConfig = _ref.columnConfig,
31
30
  type = _ref.type;
32
31
  return /*#__PURE__*/_react.default.createElement("div", {
33
- className: (0, _classnames.default)("".concat(blockClass, "__inline-edit-button"), (_cx = {}, (0, _defineProperty2.default)(_cx, "".concat(blockClass, "__inline-edit-button--disabled"), disabled || nonEditCell), (0, _defineProperty2.default)(_cx, "".concat(blockClass, "__inline-edit-button--with-label-icon"), LabelIcon), (0, _defineProperty2.default)(_cx, "".concat(blockClass, "__inline-edit-button--non-edit"), nonEditCell), (0, _defineProperty2.default)(_cx, "".concat(blockClass, "__inline-edit-button--active"), isActiveCell), (0, _defineProperty2.default)(_cx, "".concat(blockClass, "__inline-edit-button--").concat(type), type === 'date' || type === 'selection'), _cx)),
32
+ className: (0, _classnames.default)("".concat(blockClass, "__inline-edit-button"), (0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)({}, "".concat(blockClass, "__inline-edit-button--disabled"), disabled || nonEditCell), "".concat(blockClass, "__inline-edit-button--with-label-icon"), LabelIcon), "".concat(blockClass, "__inline-edit-button--non-edit"), nonEditCell), "".concat(blockClass, "__inline-edit-button--active"), isActiveCell), "".concat(blockClass, "__inline-edit-button--").concat(type), type === 'date' || type === 'selection')),
34
33
  tabIndex: isActiveCell ? 0 : -1,
35
34
  "data-disabled": disabled || nonEditCell,
36
35
  "aria-disabled": disabled || nonEditCell,
@@ -39,7 +38,7 @@ var InlineEditButton = exports.InlineEditButton = function InlineEditButton(_ref
39
38
  }, LabelIcon && /*#__PURE__*/_react.default.createElement("div", {
40
39
  className: "".concat(blockClass, "__label-icon")
41
40
  }, /*#__PURE__*/_react.default.createElement(LabelIcon, null)), label !== '' ? /*#__PURE__*/_react.default.createElement("span", {
42
- className: (0, _classnames.default)("".concat(blockClass, "__inline-edit-button-label"), (_cx2 = {}, (0, _defineProperty2.default)(_cx2, "".concat(blockClass, "__inline-edit-button-label-with-icon"), !nonEditCell), (0, _defineProperty2.default)(_cx2, "".concat(blockClass, "__defaultStringRenderer--multiline"), columnConfig === null || columnConfig === void 0 ? void 0 : columnConfig.multiLineWrap), _cx2))
41
+ className: (0, _classnames.default)("".concat(blockClass, "__inline-edit-button-label"), (0, _defineProperty2.default)((0, _defineProperty2.default)({}, "".concat(blockClass, "__inline-edit-button-label-with-icon"), !nonEditCell), "".concat(blockClass, "__defaultStringRenderer--multiline"), columnConfig === null || columnConfig === void 0 ? void 0 : columnConfig.multiLineWrap))
43
42
  }, label) : /*#__PURE__*/_react.default.createElement("span", {
44
43
  className: "".concat(blockClass, "__placeholder")
45
44
  }, placeholder), !nonEditCell && Icon && /*#__PURE__*/_react.default.createElement("div", {
@@ -31,7 +31,7 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
31
31
  */
32
32
  var blockClass = "".concat(_settings.pkg.prefix, "--datagrid");
33
33
  var InlineEditCell = exports.InlineEditCell = function InlineEditCell(_ref) {
34
- var _config$validator, _cx3, _value$text;
34
+ var _config$validator, _value$text;
35
35
  var cell = _ref.cell,
36
36
  config = _ref.config,
37
37
  instance = _ref.instance,
@@ -446,7 +446,7 @@ var InlineEditCell = exports.InlineEditCell = function InlineEditCell(_ref) {
446
446
  "data-inline-type": type,
447
447
  onClick: !nonEditCell ? handleInlineCellClick : addActiveState,
448
448
  onKeyDown: !nonEditCell ? handleKeyDown : null,
449
- className: (0, _classnames.default)("".concat(blockClass, "__inline-edit--outer-cell-button"), (_cx3 = {}, (0, _defineProperty2.default)(_cx3, "".concat(blockClass, "__inline-edit--outer-cell-button--").concat(rowSize), rowSize), (0, _defineProperty2.default)(_cx3, "".concat(blockClass, "__inline-edit--outer-cell-button--lg"), !rowSize), (0, _defineProperty2.default)(_cx3, "".concat(blockClass, "__inline-edit--outer-cell-button--invalid"), config === null || config === void 0 || (_config$validator = config.validator) === null || _config$validator === void 0 ? void 0 : _config$validator.call(config, cellValue)), _cx3))
449
+ className: (0, _classnames.default)("".concat(blockClass, "__inline-edit--outer-cell-button"), (0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)({}, "".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"), config === null || config === void 0 || (_config$validator = config.validator) === null || _config$validator === void 0 ? void 0 : _config$validator.call(config, cellValue)))
450
450
  }, !inEditMode && /*#__PURE__*/_react.default.createElement(_InlineEditButton.InlineEditButton, {
451
451
  isActiveCell: cellId === activeCellId,
452
452
  renderIcon: setRenderIcon(),
@@ -43,7 +43,6 @@ var useActionsColumn = function useActionsColumn(hooks) {
43
43
  var row = cell.row,
44
44
  column = cell.column;
45
45
  if (column.isAction) {
46
- var _cx3;
47
46
  var isColumnSticky = !!column.sticky;
48
47
  return [props, {
49
48
  children: /*#__PURE__*/_react.default.createElement("div", {
@@ -115,7 +114,7 @@ var useActionsColumn = function useActionsColumn(hooks) {
115
114
  key: id
116
115
  }));
117
116
  })))),
118
- className: (0, _classnames.default)((_cx3 = {}, (0, _defineProperty2.default)(_cx3, "".concat(blockClass, "__actions-column-cell"), true), (0, _defineProperty2.default)(_cx3, "".concat(blockClass, "__cell"), true), (0, _defineProperty2.default)(_cx3, "".concat(blockClass, "__actions-column-cell-non-sticky"), !isColumnSticky), _cx3)),
117
+ className: (0, _classnames.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)({}, "".concat(blockClass, "__actions-column-cell"), true), "".concat(blockClass, "__cell"), true), "".concat(blockClass, "__actions-column-cell-non-sticky"), !isColumnSticky)),
119
118
  style: {
120
119
  width: rowActions.length > 2 || isColumnSticky ? 48 : 96
121
120
  }
@@ -23,8 +23,7 @@ var useDefaultStringRenderer = function useDefaultStringRenderer(hooks) {
23
23
  var StringRenderer = function StringRenderer(tableProps) {
24
24
  var _tableProps$column;
25
25
  return /*#__PURE__*/_react.default.createElement("div", {
26
- className: (0, _classnames.default)("".concat(blockClass, "__defaultStringRenderer"), (0, _defineProperty2.default)({}, "".concat(blockClass, "__defaultStringRenderer--multiline"), ((_tableProps$column = tableProps.column) === null || _tableProps$column === void 0 ? void 0 : _tableProps$column.multiLineWrap) || (tableProps === null || tableProps === void 0 ? void 0 : tableProps.multiLineWrapAll))),
27
- title: tableProps.value
26
+ className: (0, _classnames.default)("".concat(blockClass, "__defaultStringRenderer"), (0, _defineProperty2.default)({}, "".concat(blockClass, "__defaultStringRenderer--multiline"), ((_tableProps$column = tableProps.column) === null || _tableProps$column === void 0 ? void 0 : _tableProps$column.multiLineWrap) || (tableProps === null || tableProps === void 0 ? void 0 : tableProps.multiLineWrapAll)))
28
27
  }, tableProps.value);
29
28
  };
30
29
  var HeaderRenderer = function HeaderRenderer(header) {
@@ -23,6 +23,7 @@ var useFiltering = function useFiltering(hooks) {
23
23
  (0, _react.useEffect)(function () {
24
24
  _settings.pkg.checkReportFeatureEnabled('Datagrid.useFiltering');
25
25
  }, []);
26
+ /* istanbul ignore next */
26
27
  var filterTypes = (0, _react.useMemo)(function () {
27
28
  return {
28
29
  date: function date(rows, id, _ref) {
@@ -40,7 +40,6 @@ var useNestedRowExpander = function useNestedRowExpander(hooks) {
40
40
  var expanderColumn = {
41
41
  id: 'expander',
42
42
  Cell: function Cell(_ref) {
43
- var _cx;
44
43
  var row = _ref.row;
45
44
  var expanderButtonProps = _objectSpread(_objectSpread({}, row.getToggleRowExpandedProps()), {}, {
46
45
  onClick: function onClick(event) {
@@ -63,7 +62,7 @@ var useNestedRowExpander = function useNestedRowExpander(hooks) {
63
62
  }, expanderButtonProps, {
64
63
  title: expanderTitle
65
64
  }), /*#__PURE__*/_react.default.createElement(_icons.ChevronRight, {
66
- className: (0, _classnames.default)("".concat(blockClass, "__expander-icon"), (_cx = {}, (0, _defineProperty2.default)(_cx, "".concat(blockClass, "__expander-icon--not-open"), !row.isExpanded), (0, _defineProperty2.default)(_cx, "".concat(blockClass, "__expander-icon--open"), row.isExpanded), _cx))
65
+ className: (0, _classnames.default)("".concat(blockClass, "__expander-icon"), (0, _defineProperty2.default)((0, _defineProperty2.default)({}, "".concat(blockClass, "__expander-icon--not-open"), !row.isExpanded), "".concat(blockClass, "__expander-icon--open"), row.isExpanded))
67
66
  }));
68
67
  },
69
68
  width: 48,
@@ -9,8 +9,9 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/de
9
9
  var _classnames = _interopRequireDefault(require("classnames"));
10
10
  var _settings = require("../../settings");
11
11
  var _useNestedRowExpander = _interopRequireDefault(require("./useNestedRowExpander"));
12
+ var _react = require("react");
12
13
  /**
13
- * Copyright IBM Corp. 2020, 2023
14
+ * Copyright IBM Corp. 2020, 2024
14
15
  *
15
16
  * This source code is licensed under the Apache-2.0 license found in the
16
17
  * LICENSE file in the root directory of this source tree.
@@ -19,43 +20,58 @@ var _useNestedRowExpander = _interopRequireDefault(require("./useNestedRowExpand
19
20
  var blockClass = "".concat(_settings.pkg.prefix, "--datagrid");
20
21
  var useNestedRows = function useNestedRows(hooks) {
21
22
  (0, _useNestedRowExpander.default)(hooks);
22
- var marginLeft = 24;
23
- var getRowProps = function getRowProps(props, _ref) {
24
- var _cx;
25
- var row = _ref.row;
26
- return [props, {
27
- className: (0, _classnames.default)((_cx = {}, (0, _defineProperty2.default)(_cx, "".concat(blockClass, "__carbon-nested-row"), row.depth > 0), (0, _defineProperty2.default)(_cx, "".concat(blockClass, "__carbon-row-expanded"), row.isExpanded), _cx))
28
- }];
29
- };
30
- var getRowStyles = function getRowStyles(props, _ref2) {
31
- var row = _ref2.row;
32
- return [props, {
33
- style: {
34
- paddingLeft: "".concat(row.depth > 1 ? marginLeft * 2 + (row.depth - 1) * (marginLeft + marginLeft / 3) : row.depth === 1 ? marginLeft * 2 : 0, "px")
35
- }
36
- }];
37
- };
38
- var getCellProps = function getCellProps(props, _ref3) {
39
- var cell = _ref3.cell,
40
- instance = _ref3.instance;
41
- // reduce the "first cell"s width to compensate added (left) margin
42
- var isFirstCell = instance.columns.findIndex(function (c) {
43
- return c.id === cell.column.id;
44
- }) === 0;
45
- return [props, {
46
- style: {
47
- marginRight: "".concat(isFirstCell && cell.row.depth > 0 ? "".concat(-32 * cell.row.depth - 18, "px") : '')
48
- }
49
- }];
50
- };
51
23
  var useInstance = function useInstance(instance) {
24
+ // This useEffect will expand rows if they exist in the initialState obj
25
+ (0, _react.useEffect)(function () {
26
+ var rows = instance.rows,
27
+ initialState = instance.initialState;
28
+ var expandedRowIds = initialState.expandedRowIds;
29
+ if (expandedRowIds) {
30
+ Object.keys(expandedRowIds).forEach(function (key) {
31
+ var row = rows.filter(function (r) {
32
+ return r.id.toString() === key.toString();
33
+ });
34
+ if (row.length && key.toString() === row[0].id.toString()) {
35
+ row[0].toggleRowExpanded();
36
+ }
37
+ });
38
+ }
39
+ }, [instance]);
40
+ var marginLeft = 24;
41
+ var getRowProps = function getRowProps(props, _ref) {
42
+ var row = _ref.row;
43
+ return [props, {
44
+ className: (0, _classnames.default)((0, _defineProperty2.default)((0, _defineProperty2.default)({}, "".concat(blockClass, "__carbon-nested-row"), row.depth > 0), "".concat(blockClass, "__carbon-row-expanded"), row.isExpanded))
45
+ }];
46
+ };
47
+ var getRowStyles = function getRowStyles(props, _ref2) {
48
+ var row = _ref2.row;
49
+ return [props, {
50
+ style: {
51
+ paddingLeft: "".concat(row.depth > 1 ? marginLeft * 2 + (row.depth - 1) * (marginLeft + marginLeft / 3) : row.depth === 1 ? marginLeft * 2 : 0, "px")
52
+ }
53
+ }];
54
+ };
55
+ var getCellProps = function getCellProps(props, _ref3) {
56
+ var cell = _ref3.cell,
57
+ instance = _ref3.instance;
58
+ // reduce the "first cell"s width to compensate added (left) margin
59
+ var isFirstCell = instance.columns.findIndex(function (c) {
60
+ return c.id === cell.column.id;
61
+ }) === 0;
62
+ return [props, {
63
+ style: {
64
+ marginRight: "".concat(isFirstCell && cell.row.depth > 0 ? "".concat(-32 * cell.row.depth - 18, "px") : '')
65
+ }
66
+ }];
67
+ };
52
68
  Object.assign(instance, {
53
69
  withNestedRows: true
54
70
  });
71
+ hooks.getRowProps.push(getRowProps);
72
+ hooks.getRowProps.push(getRowStyles);
73
+ hooks.getCellProps.push(getCellProps);
55
74
  };
56
- hooks.getRowProps.push(getRowProps);
57
- hooks.getRowProps.push(getRowStyles);
58
- hooks.getCellProps.push(getCellProps);
59
75
  hooks.useInstance.push(useInstance);
60
76
  };
61
77
  var _default = exports.default = useNestedRows;
@@ -35,7 +35,7 @@ var useOnRowClick = function useOnRowClick(hooks) {
35
35
  row.classList.remove("".concat(_settings.carbon.prefix, "--data-table--selected"));
36
36
  });
37
37
  }
38
- var closestRow = event.target.closest(".".concat(_settings.pkg.prefix, "--datagrid__carbon-row"));
38
+ var closestRow = event.currentTarget.closest('tr');
39
39
  closestRow.classList.add("".concat(_settings.carbon.prefix, "--data-table--selected"));
40
40
  if (!withSelectRows) {
41
41
  instance.selectedFlatRows && instance.selectedFlatRows.map(function (toggleRow) {
@@ -42,7 +42,9 @@ var useRowIsMouseOver = function useRowIsMouseOver(hooks) {
42
42
  });
43
43
  });
44
44
  Object.assign(instance, {
45
- rows: rowsWithMouseOver
45
+ rows: rowsWithMouseOver,
46
+ withMouseHover: true,
47
+ setMouseOverRowIndex: setMouseOverRowIndex
46
48
  });
47
49
  hooks.getRowProps.push(getRowProps);
48
50
  };
@@ -70,12 +70,11 @@ var useSelectRows = function useSelectRows(hooks) {
70
70
  };
71
71
  var useHighlightSelection = function useHighlightSelection(hooks) {
72
72
  var getRowProps = function getRowProps(props, _ref) {
73
- var _ref2;
74
73
  var row = _ref.row;
75
74
  var _row$getToggleRowSele = row.getToggleRowSelectedProps(),
76
75
  checked = _row$getToggleRowSele.checked;
77
76
  return [props, {
78
- className: (0, _classnames.default)(["".concat(blockClass, "__carbon-row"), (_ref2 = {}, (0, _defineProperty2.default)(_ref2, "".concat(_settings.carbon.prefix, "--data-table--selected"), checked), (0, _defineProperty2.default)(_ref2, "".concat(blockClass, "__active-row"), checked), _ref2)])
77
+ className: (0, _classnames.default)(["".concat(blockClass, "__carbon-row"), (0, _defineProperty2.default)((0, _defineProperty2.default)({}, "".concat(_settings.carbon.prefix, "--data-table--selected"), checked), "".concat(blockClass, "__active-row"), checked)])
79
78
  }];
80
79
  };
81
80
  hooks.getRowProps.push(getRowProps);
@@ -94,7 +94,6 @@ var useSortableColumns = function useSortableColumns(hooks) {
94
94
  return /*#__PURE__*/_react.default.createElement(_icons.ArrowsVertical, iconProps);
95
95
  };
96
96
  var Header = function Header(headerProp) {
97
- var _cx;
98
97
  return column.disableSortBy === true || column.id === 'datagridSelection' ? column.disableSortBy ? column.Header : /*#__PURE__*/_react.default.createElement(_DatagridSelectAll.SelectAll, instance) : /*#__PURE__*/_react.default.createElement(_react2.Button, {
99
98
  "aria-sort": getAriaSortValue(headerProp === null || headerProp === void 0 ? void 0 : headerProp.column, {
100
99
  ascendingSortableLabelText: ascendingSortableLabelText,
@@ -109,7 +108,7 @@ var useSortableColumns = function useSortableColumns(hooks) {
109
108
  renderIcon: function renderIcon(props) {
110
109
  return icon(headerProp === null || headerProp === void 0 ? void 0 : headerProp.column, props);
111
110
  },
112
- className: (0, _classnames.default)("".concat(_settings.carbon.prefix, "--table-sort ").concat(blockClass, "--table-sort"), (_cx = {}, (0, _defineProperty2.default)(_cx, "".concat(blockClass, "--table-sort--desc"), headerProp === null || headerProp === void 0 ? void 0 : headerProp.column.isSortedDesc), (0, _defineProperty2.default)(_cx, "".concat(blockClass, "--table-sort--asc"), (headerProp === null || headerProp === void 0 ? void 0 : headerProp.column.isSortedDesc) === false), _cx))
111
+ className: (0, _classnames.default)("".concat(_settings.carbon.prefix, "--table-sort ").concat(blockClass, "--table-sort"), (0, _defineProperty2.default)((0, _defineProperty2.default)({}, "".concat(blockClass, "--table-sort--desc"), headerProp === null || headerProp === void 0 ? void 0 : headerProp.column.isSortedDesc), "".concat(blockClass, "--table-sort--asc"), (headerProp === null || headerProp === void 0 ? void 0 : headerProp.column.isSortedDesc) === false))
113
112
  }, column.Header);
114
113
  };
115
114
  return _objectSpread(_objectSpread({}, column), {}, {