@carbon/ibm-products 1.69.0 → 1.70.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (83) hide show
  1. package/css/index-full-carbon.css +17 -5
  2. package/css/index-full-carbon.css.map +1 -1
  3. package/css/index-full-carbon.min.css +4 -4
  4. package/css/index-full-carbon.min.css.map +1 -1
  5. package/css/index-without-carbon-released-only.css +16 -5
  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 +17 -5
  10. package/css/index-without-carbon.css.map +1 -1
  11. package/css/index-without-carbon.min.css +4 -4
  12. package/css/index-without-carbon.min.css.map +1 -1
  13. package/css/index.css +17 -5
  14. package/css/index.css.map +1 -1
  15. package/css/index.min.css +4 -4
  16. package/css/index.min.css.map +1 -1
  17. package/es/components/ButtonMenu/ButtonMenu.js +11 -1
  18. package/es/components/Datagrid/Datagrid/DatagridContent.js +9 -8
  19. package/es/components/Datagrid/Datagrid/DatagridRow.js +6 -1
  20. package/es/components/Datagrid/Datagrid/DatagridSelectAll.js +4 -1
  21. package/es/components/Datagrid/Datagrid/DraggableElement.js +1 -1
  22. package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/Columns.js +4 -1
  23. package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/CustomizeColumnsTearsheet.js +1 -1
  24. package/es/components/Datagrid/Datagrid/addons/Filtering/FilterFlyout.js +14 -6
  25. package/es/components/Datagrid/Datagrid/addons/Filtering/FilterPanel.js +21 -10
  26. package/es/components/Datagrid/Datagrid/addons/Filtering/hooks/useFilters.js +6 -8
  27. package/es/components/Datagrid/Datagrid/addons/Filtering/hooks/useShouldDisableButtons.js +2 -3
  28. package/es/components/Datagrid/Datagrid/addons/Filtering/utils.js +2 -6
  29. package/es/components/Datagrid/useActionsColumn.js +18 -14
  30. package/es/components/Datagrid/useFiltering.js +3 -1
  31. package/es/components/Datagrid/useNestedRowExpander.js +2 -2
  32. package/es/components/Datagrid/useRowIsMouseOver.js +3 -1
  33. package/es/components/Datagrid/utils/filterPropsForTesting.js +150 -0
  34. package/es/components/EmptyStates/ErrorEmptyState/ErrorEmptyState.js +9 -3
  35. package/es/components/EmptyStates/NoDataEmptyState/NoDataEmptyState.js +8 -3
  36. package/es/components/EmptyStates/NoTagsEmptyState/NoTagsEmptyState.js +8 -3
  37. package/es/components/EmptyStates/NotFoundEmptyState/NotFoundEmptyState.js +8 -3
  38. package/es/components/EmptyStates/NotificationsEmptyState/NotificationsEmptyState.js +8 -3
  39. package/es/components/EmptyStates/UnauthorizedEmptyState/UnauthorizedEmptyState.js +8 -3
  40. package/es/components/EmptyStates/assets/ErrorIllustration.js +6 -6
  41. package/es/components/EmptyStates/assets/NoDataIllustration.js +6 -6
  42. package/es/components/EmptyStates/assets/NoTagsIllustration.js +6 -6
  43. package/es/components/EmptyStates/assets/NotFoundIllustration.js +6 -6
  44. package/es/components/EmptyStates/assets/NotificationsIllustration.js +6 -6
  45. package/es/components/EmptyStates/assets/UnauthorizedIllustration.js +6 -6
  46. package/es/components/FilterSummary/FilterSummary.js +19 -15
  47. package/es/components/InterstitialScreen/InterstitialScreen.js +8 -7
  48. package/lib/components/ButtonMenu/ButtonMenu.js +11 -1
  49. package/lib/components/Datagrid/Datagrid/DatagridContent.js +9 -8
  50. package/lib/components/Datagrid/Datagrid/DatagridRow.js +6 -1
  51. package/lib/components/Datagrid/Datagrid/DatagridSelectAll.js +4 -1
  52. package/lib/components/Datagrid/Datagrid/DraggableElement.js +1 -1
  53. package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/Columns.js +4 -1
  54. package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/CustomizeColumnsTearsheet.js +1 -1
  55. package/lib/components/Datagrid/Datagrid/addons/Filtering/FilterFlyout.js +14 -6
  56. package/lib/components/Datagrid/Datagrid/addons/Filtering/FilterPanel.js +21 -10
  57. package/lib/components/Datagrid/Datagrid/addons/Filtering/hooks/useFilters.js +1 -2
  58. package/lib/components/Datagrid/Datagrid/addons/Filtering/hooks/useShouldDisableButtons.js +2 -3
  59. package/lib/components/Datagrid/Datagrid/addons/Filtering/utils.js +2 -6
  60. package/lib/components/Datagrid/useActionsColumn.js +17 -13
  61. package/lib/components/Datagrid/useFiltering.js +2 -0
  62. package/lib/components/Datagrid/useNestedRowExpander.js +1 -1
  63. package/lib/components/Datagrid/useRowIsMouseOver.js +3 -1
  64. package/lib/components/Datagrid/utils/filterPropsForTesting.js +159 -0
  65. package/lib/components/EmptyStates/ErrorEmptyState/ErrorEmptyState.js +9 -3
  66. package/lib/components/EmptyStates/NoDataEmptyState/NoDataEmptyState.js +8 -3
  67. package/lib/components/EmptyStates/NoTagsEmptyState/NoTagsEmptyState.js +8 -3
  68. package/lib/components/EmptyStates/NotFoundEmptyState/NotFoundEmptyState.js +8 -3
  69. package/lib/components/EmptyStates/NotificationsEmptyState/NotificationsEmptyState.js +8 -3
  70. package/lib/components/EmptyStates/UnauthorizedEmptyState/UnauthorizedEmptyState.js +8 -3
  71. package/lib/components/EmptyStates/assets/ErrorIllustration.js +6 -6
  72. package/lib/components/EmptyStates/assets/NoDataIllustration.js +6 -6
  73. package/lib/components/EmptyStates/assets/NoTagsIllustration.js +6 -6
  74. package/lib/components/EmptyStates/assets/NotFoundIllustration.js +6 -6
  75. package/lib/components/EmptyStates/assets/NotificationsIllustration.js +6 -6
  76. package/lib/components/EmptyStates/assets/UnauthorizedIllustration.js +6 -6
  77. package/lib/components/FilterSummary/FilterSummary.js +18 -14
  78. package/lib/components/InterstitialScreen/InterstitialScreen.js +8 -6
  79. package/package.json +2 -2
  80. package/scss/components/Datagrid/_datagrid.scss +9 -1
  81. package/scss/components/Datagrid/styles/_datagrid.scss +10 -4
  82. package/scss/components/InterstitialScreen/_interstitial-screen.scss +1 -0
  83. package/scss/components/SidePanel/_side-panel.scss +5 -1
@@ -1,10 +1,12 @@
1
+ import _extends from "@babel/runtime/helpers/extends";
1
2
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
3
  import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
3
- var _excluded = ["key", "value"];
4
+ var _excluded = ["className", "clearFiltersText", "clearFilters", "filters", "renderLabel", "overflowType", "clearButtonInline"],
5
+ _excluded2 = ["key", "value"];
4
6
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
5
7
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
6
8
  /**
7
- * Copyright IBM Corp. 2022, 2023
9
+ * Copyright IBM Corp. 2022, 2024
8
10
  *
9
11
  * This source code is licensed under the Apache-2.0 license found in the
10
12
  * LICENSE file in the root directory of this source tree.
@@ -16,6 +18,7 @@ import cx from 'classnames';
16
18
  import { TagSet } from '../TagSet';
17
19
  import { pkg } from '../../settings';
18
20
  import uuidv4 from '../../global/js/utils/uuidv4';
21
+ import { getDevtoolsProps } from '../../global/js/utils/devtools';
19
22
  var blockClass = "".concat(pkg.prefix, "--filter-summary");
20
23
  var FilterSummary = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
21
24
  var _filterSummaryClearBu;
@@ -23,35 +26,36 @@ var FilterSummary = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
23
26
  className = _ref$className === void 0 ? '' : _ref$className,
24
27
  _ref$clearFiltersText = _ref.clearFiltersText,
25
28
  clearFiltersText = _ref$clearFiltersText === void 0 ? 'Clear filters' : _ref$clearFiltersText,
26
- _ref$clearFilters = _ref.clearFilters,
27
- clearFilters = _ref$clearFilters === void 0 ? function () {} : _ref$clearFilters,
28
- _ref$filters = _ref.filters,
29
- filters = _ref$filters === void 0 ? [] : _ref$filters,
29
+ clearFilters = _ref.clearFilters,
30
+ filters = _ref.filters,
30
31
  _ref$renderLabel = _ref.renderLabel,
31
32
  renderLabel = _ref$renderLabel === void 0 ? null : _ref$renderLabel,
32
33
  _ref$overflowType = _ref.overflowType,
33
34
  overflowType = _ref$overflowType === void 0 ? 'default' : _ref$overflowType,
34
35
  _ref$clearButtonInlin = _ref.clearButtonInline,
35
- clearButtonInline = _ref$clearButtonInlin === void 0 ? true : _ref$clearButtonInlin;
36
+ clearButtonInline = _ref$clearButtonInlin === void 0 ? true : _ref$clearButtonInlin,
37
+ rest = _objectWithoutProperties(_ref, _excluded);
36
38
  var filterSummaryId = "".concat(blockClass, "__").concat(uuidv4());
37
39
  var tagFilters = filters.map(function (_ref2) {
38
40
  var _renderLabel;
39
41
  var key = _ref2.key,
40
42
  value = _ref2.value,
41
- rest = _objectWithoutProperties(_ref2, _excluded);
43
+ rest = _objectWithoutProperties(_ref2, _excluded2);
42
44
  return _objectSpread(_objectSpread({}, rest), {}, {
43
45
  type: 'gray',
44
- label: (_renderLabel = renderLabel === null || renderLabel === void 0 ? void 0 : renderLabel(key, value)) !== null && _renderLabel !== void 0 ? _renderLabel : "".concat(key, ": ").concat(value)
46
+ label: (_renderLabel = renderLabel === null || renderLabel === void 0 ? void 0 : renderLabel(key, value)) !== null && _renderLabel !== void 0 ? _renderLabel : "".concat(key, ": ").concat(value),
47
+ title: clearFiltersText
45
48
  });
46
49
  });
47
50
  var filterSummaryClearButton = useRef();
48
51
  var filterSummaryRef = useRef();
49
- var localRef = filterSummaryRef || ref;
50
- return /*#__PURE__*/React.createElement("div", {
51
- ref: localRef,
52
- className: cx([blockClass, className]),
52
+ var localRef = ref || filterSummaryRef;
53
+ return /*#__PURE__*/React.createElement("div", _extends({}, getDevtoolsProps(componentName), {
53
54
  id: filterSummaryId
54
- }, /*#__PURE__*/React.createElement(TagSet, {
55
+ }, rest, {
56
+ ref: localRef,
57
+ className: cx([blockClass, className])
58
+ }), /*#__PURE__*/React.createElement(TagSet, {
55
59
  allTagsModalSearchLabel: "Search all tags",
56
60
  allTagsModalSearchPlaceholderText: "Search all tags",
57
61
  allTagsModalTitle: "All tags",
@@ -72,7 +76,7 @@ var componentName = 'FilterSummary';
72
76
  FilterSummary.displayName = componentName;
73
77
  FilterSummary.propTypes = {
74
78
  className: PropTypes.string,
75
- clearButtonInline: PropTypes.boolean,
79
+ clearButtonInline: PropTypes.bool,
76
80
  clearFilters: PropTypes.func.isRequired,
77
81
  clearFiltersText: PropTypes.string,
78
82
  filters: PropTypes.arrayOf(PropTypes.object).isRequired,
@@ -13,7 +13,6 @@ var _excluded = ["children", "className", "closeIconDescription", "domainName",
13
13
  // Import portions of React that are needed.
14
14
  import React, { Children, useCallback, useEffect, useRef, useState } from 'react';
15
15
  import { clamp } from 'lodash';
16
- // Other standard imports.
17
16
  import PropTypes from 'prop-types';
18
17
  import cx from 'classnames';
19
18
  import { getDevtoolsProps } from '../../global/js/utils/devtools';
@@ -57,7 +56,10 @@ var defaults = {
57
56
  };
58
57
 
59
58
  /**
60
- * TODO: A description of the component.
59
+ * InterstitialScreen can be a full page or an overlay, and are
60
+ * shown on the first time a user accesses a new experience
61
+ * (e.g. upon first login or first time opening a page where a
62
+ * newly purchased capability is presented).
61
63
  */
62
64
  export var InterstitialScreen = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
63
65
  var _media$breakpoints, _media$breakpoints2;
@@ -151,7 +153,7 @@ export var InterstitialScreen = /*#__PURE__*/React.forwardRef(function (_ref, re
151
153
  }, [isOpen, progStep]);
152
154
  useEffect(function () {
153
155
  var _nextButtonRef$curren;
154
- //for modal only, "is-visible" triggers animation
156
+ // for modal only, "is-visible" triggers animation
155
157
  setIsVisibleClass(!isFullScreen && isOpen ? 'is-visible' : null);
156
158
  nextButtonRef === null || nextButtonRef === void 0 ? void 0 : (_nextButtonRef$curren = nextButtonRef.current) === null || _nextButtonRef$curren === void 0 ? void 0 : _nextButtonRef$curren.focus();
157
159
  }, [isFullScreen, isOpen]);
@@ -175,11 +177,10 @@ export var InterstitialScreen = /*#__PURE__*/React.forwardRef(function (_ref, re
175
177
  var domainProductDelimiter = domainName !== '' && productName !== '' ? ' | ' : '';
176
178
  var renderModal = function renderModal(childElements) {
177
179
  return /*#__PURE__*/React.createElement(ComposedModal, _extends({}, rest, {
178
- className: cx(
179
- // blockClass, // Apply the block class to the main HTML element
180
+ preventCloseOnClickOutside: true,
181
+ className: cx(blockClass,
182
+ // Apply the block class to the main HTML element
180
183
  className // Apply any supplied class names to the main HTML element.
181
- // variantClass,
182
- // isVisibleClass
183
184
  ),
184
185
 
185
186
  size: "lg",
@@ -12,7 +12,8 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
12
12
  var _classnames = _interopRequireDefault(require("classnames"));
13
13
  var _settings = require("../../settings");
14
14
  var _carbonComponentsReact = require("carbon-components-react");
15
- var _excluded = ["children", "className", "iconDescription", "kind", "label", "menuOptionsClass", "renderIcon", "size"];
15
+ var _getNodeTextContent = require("../../global/js/utils/getNodeTextContent");
16
+ var _excluded = ["children", "className", "iconDescription", "kind", "label", "menuAriaLabel", "menuOptionsClass", "renderIcon", "size"];
16
17
  // The block part of our conventional BEM class names (blockClass__E--M).
17
18
  var blockClass = "".concat(_settings.pkg.prefix, "--button-menu");
18
19
  var componentName = 'ButtonMenu';
@@ -33,12 +34,14 @@ var defaults = {
33
34
  * OverflowMenuItem component.
34
35
  */
35
36
  var ButtonMenu = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref) {
37
+ var _ref2;
36
38
  var children = _ref.children,
37
39
  className = _ref.className,
38
40
  iconDescription = _ref.iconDescription,
39
41
  _ref$kind = _ref.kind,
40
42
  kind = _ref$kind === void 0 ? defaults.kind : _ref$kind,
41
43
  label = _ref.label,
44
+ menuAriaLabel = _ref.menuAriaLabel,
42
45
  menuOptionsClass = _ref.menuOptionsClass,
43
46
  Icon = _ref.renderIcon,
44
47
  _ref$size = _ref.size,
@@ -53,6 +56,7 @@ var ButtonMenu = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref) {
53
56
 
54
57
  menuOptionsClass: (0, _classnames.default)("".concat(blockClass, "__options"), menuOptionsClass),
55
58
  size: size,
59
+ ariaLabel: (_ref2 = menuAriaLabel !== null && menuAriaLabel !== void 0 ? menuAriaLabel : (0, _getNodeTextContent.getNodeTextContent)(label)) !== null && _ref2 !== void 0 ? _ref2 : undefined,
56
60
  renderIcon: function renderIcon() {
57
61
  return /*#__PURE__*/_react.default.createElement("div", {
58
62
  className: (0, _classnames.default)(["".concat(blockClass, "__trigger"), "".concat(_settings.carbon.prefix, "--btn"), "".concat(_settings.carbon.prefix, "--btn--").concat(kind), "".concat(_settings.carbon.prefix, "--btn--").concat(buttonSize)])
@@ -100,6 +104,12 @@ ButtonMenu.propTypes = {
100
104
  * The button label for the menu trigger.
101
105
  */
102
106
  label: _propTypes.default.node,
107
+ /**
108
+ * Provide the menuAriaLabel prop to be passed to the ButtonMenu component.
109
+ * This optional label should contain or match the visible labels or
110
+ * it will automatically take button label
111
+ */
112
+ menuAriaLabel: _propTypes.default.string,
103
113
  /**
104
114
  * class name applied to the overflow options
105
115
  */
@@ -98,7 +98,7 @@ var DatagridContent = function DatagridContent(_ref) {
98
98
  });
99
99
  var renderTable = function renderTable() {
100
100
  var _getTableProps;
101
- return /*#__PURE__*/_react.default.createElement(Table, (0, _extends2.default)({}, getTableProps(), {
101
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(Table, (0, _extends2.default)({}, getTableProps(), {
102
102
  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), (0, _defineProperty2.default)({}, "".concat(blockClass, "__table-is-resizing"), typeof columnResizing.isResizingColumn === 'string'), (_getTableProps = getTableProps()) === null || _getTableProps === void 0 ? void 0 : _getTableProps.className),
103
103
  role: withInlineEdit && 'grid',
104
104
  tabIndex: withInlineEdit && 0,
@@ -119,7 +119,7 @@ var DatagridContent = function DatagridContent(_ref) {
119
119
  title: title
120
120
  }), !withVirtualScroll && /*#__PURE__*/_react.default.createElement(_DatagridHead.default, datagridState), /*#__PURE__*/_react.default.createElement(_DatagridBody.default, (0, _extends2.default)({}, datagridState, {
121
121
  rows: contentRows
122
- })));
122
+ }))), (filterProps === null || filterProps === void 0 ? void 0 : filterProps.variation) === 'panel' && renderPagination());
123
123
  };
124
124
  var _useMultipleKeyTracki = (0, _hooks2.useMultipleKeyTracking)({
125
125
  ref: withInlineEdit ? multiKeyTrackingRef : null,
@@ -144,8 +144,6 @@ var DatagridContent = function DatagridContent(_ref) {
144
144
  (0, _hooks3.useSubscribeToEventEmitter)(_constants.CLEAR_SINGLE_FILTER, function (id) {
145
145
  return (0, _FilterProvider.clearSingleFilter)(id, setAllFilters, state);
146
146
  });
147
-
148
- /* istanbul ignore next */
149
147
  var renderFilterSummary = function renderFilterSummary() {
150
148
  return state.filters.length > 0 && /*#__PURE__*/_react.default.createElement(_FilterSummary.FilterSummary, {
151
149
  className: "".concat(blockClass, "__filter-summary"),
@@ -157,6 +155,11 @@ var DatagridContent = function DatagridContent(_ref) {
157
155
  overflowType: "tag"
158
156
  });
159
157
  };
158
+ var renderPagination = function renderPagination() {
159
+ if ((contentRows === null || contentRows === void 0 ? void 0 : contentRows.length) > 0 && !isFetching && DatagridPagination) {
160
+ return /*#__PURE__*/_react.default.createElement(DatagridPagination, datagridState);
161
+ }
162
+ };
160
163
  return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(TableContainer, {
161
164
  className: (0, _classnames.default)("".concat(blockClass, "__grid-container"), withVirtualScroll || fullHeightDatagrid ? "".concat(blockClass, "__full-height") : '', DatagridPagination ? "".concat(blockClass, "__with-pagination") : '', useDenseHeader ? "".concat(blockClass, "__dense-header") : '', (_cx5 = {}, (0, _defineProperty2.default)(_cx5, "".concat(blockClass, "__grid-container-grid-active"), gridActive), (0, _defineProperty2.default)(_cx5, "".concat(blockClass, "__grid-container-inline-edit"), withInlineEdit), (0, _defineProperty2.default)(_cx5, "".concat(blockClass, "__grid-container-grid-active--without-toolbar"), withInlineEdit && !DatagridActions), _cx5)),
162
165
  title: gridTitle,
@@ -164,9 +167,7 @@ var DatagridContent = function DatagridContent(_ref) {
164
167
  }, /*#__PURE__*/_react.default.createElement(_DatagridToolbar.default, datagridState), /*#__PURE__*/_react.default.createElement("div", {
165
168
  className: (0, _classnames.default)("".concat(blockClass, "__table-container"), (0, _defineProperty2.default)({}, "".concat(blockClass, "__table-container--filter-open"), panelOpen)),
166
169
  ref: gridAreaRef
167
- }, (filterProps === null || filterProps === void 0 ? void 0 : filterProps.variation) === 'panel' && /*#__PURE__*/_react.default.createElement(_FilterPanel.default, (0, _extends2.default)({
168
- updateMethod: "batch"
169
- }, getFilterFlyoutProps(), {
170
+ }, (filterProps === null || filterProps === void 0 ? void 0 : filterProps.variation) === 'panel' && /*#__PURE__*/_react.default.createElement(_FilterPanel.default, (0, _extends2.default)({}, getFilterFlyoutProps(), {
170
171
  title: filterProps.panelTitle,
171
172
  filterSections: filterProps.sections,
172
173
  isFetching: isFetching
@@ -177,7 +178,7 @@ var DatagridContent = function DatagridContent(_ref) {
177
178
  }, renderTable()) : withVirtualScroll ? /*#__PURE__*/_react.default.createElement("div", {
178
179
  className: "".concat(blockClass, "__virtualScrollContainer"),
179
180
  ref: gridRef
180
- }, renderTable()) : renderTable()))), (contentRows === null || contentRows === void 0 ? void 0 : contentRows.length) > 0 && !isFetching && DatagridPagination && /*#__PURE__*/_react.default.createElement(DatagridPagination, datagridState), CustomizeColumnsTearsheet && /*#__PURE__*/_react.default.createElement(CustomizeColumnsTearsheet, {
181
+ }, renderTable()) : renderTable()))), (filterProps === null || filterProps === void 0 ? void 0 : filterProps.variation) !== 'panel' && renderPagination(), CustomizeColumnsTearsheet && /*#__PURE__*/_react.default.createElement(CustomizeColumnsTearsheet, {
181
182
  instance: datagridState
182
183
  }));
183
184
  };
@@ -37,7 +37,9 @@ var DatagridRow = function DatagridRow(datagridState) {
37
37
  prepareRow = datagridState.prepareRow,
38
38
  key = datagridState.key,
39
39
  tableId = datagridState.tableId,
40
- withExpandedRows = datagridState.withExpandedRows;
40
+ withExpandedRows = datagridState.withExpandedRows,
41
+ withMouseHover = datagridState.withMouseHover,
42
+ setMouseOverRowIndex = datagridState.setMouseOverRowIndex;
41
43
  var getVisibleNestedRowCount = function getVisibleNestedRowCount(_ref) {
42
44
  var isExpanded = _ref.isExpanded,
43
45
  subRows = _ref.subRows;
@@ -82,6 +84,9 @@ var DatagridRow = function DatagridRow(datagridState) {
82
84
  return null;
83
85
  };
84
86
  var handleMouseLeave = function handleMouseLeave(event) {
87
+ if (withMouseHover) {
88
+ setMouseOverRowIndex(null);
89
+ }
85
90
  var hoverRow = event.target.closest(".".concat(blockClass, "__carbon-row-expanded"));
86
91
  hoverRow === null || hoverRow === void 0 ? void 0 : hoverRow.classList.remove("".concat(blockClass, "__carbon-row-expanded-hover-active"));
87
92
  };
@@ -47,7 +47,8 @@ var SelectAll = function SelectAll(datagridState) {
47
47
  dispatch = datagridState.dispatch,
48
48
  rows = datagridState.rows,
49
49
  getRowId = datagridState.getRowId,
50
- toggleAllRowsSelected = datagridState.toggleAllRowsSelected;
50
+ toggleAllRowsSelected = datagridState.toggleAllRowsSelected,
51
+ onAllRowSelect = datagridState.onAllRowSelect;
51
52
  var isFirstColumnStickyLeft = ((_columns$ = columns[0]) === null || _columns$ === void 0 ? void 0 : _columns$.sticky) === 'left' && withStickyColumn;
52
53
  if (hideSelectAll || radio) {
53
54
  return /*#__PURE__*/_react.default.createElement("div", {
@@ -69,6 +70,7 @@ var SelectAll = function SelectAll(datagridState) {
69
70
  indeterminate: true
70
71
  });
71
72
  toggleAllRowsSelected(false);
73
+ onAllRowSelect === null || onAllRowSelect === void 0 ? void 0 : onAllRowSelect(rows, event);
72
74
  return onChange === null || onChange === void 0 ? void 0 : onChange({
73
75
  target: {
74
76
  checked: false
@@ -81,6 +83,7 @@ var SelectAll = function SelectAll(datagridState) {
81
83
  getRowId: getRowId,
82
84
  isChecked: event.target.checked
83
85
  });
86
+ onAllRowSelect === null || onAllRowSelect === void 0 ? void 0 : onAllRowSelect(rows, event);
84
87
  return onChange === null || onChange === void 0 ? void 0 : onChange(event);
85
88
  };
86
89
  return /*#__PURE__*/_react.default.createElement("div", {
@@ -48,7 +48,7 @@ var DraggableElement = function DraggableElement(_ref) {
48
48
  }, "".concat(blockClass, "__draggable-handleStyle"))
49
49
  }, isSticky ? /*#__PURE__*/_react.default.createElement(_iconsReact.Locked16, null) : /*#__PURE__*/_react.default.createElement(_iconsReact.Draggable16, null)), children);
50
50
  var style = {
51
- transform: _utilities.CSS.Transform.toString(transform),
51
+ transform: !disabled ? _utilities.CSS.Transform.toString(transform) : {},
52
52
  transition: transition
53
53
  };
54
54
  return /*#__PURE__*/_react.default.createElement("li", (0, _extends2.default)({
@@ -48,6 +48,9 @@ var Columns = function Columns(_ref) {
48
48
  $splice: [[from, 1], [to, 0, fromCol]]
49
49
  }));
50
50
  }, [columns, setColumnsObject]);
51
+ var filteredStickyColumn = columns === null || columns === void 0 ? void 0 : columns.filter(function (item) {
52
+ return !item.sticky;
53
+ });
51
54
  return /*#__PURE__*/_react.default.createElement("div", {
52
55
  className: "".concat(blockClass, "__customize-columns-column-list"),
53
56
  ref: listRef
@@ -71,7 +74,7 @@ var Columns = function Columns(_ref) {
71
74
  checked: getVisibleColumnsCount() === columns.length,
72
75
  indeterminate: getVisibleColumnsCount() < columns.length && getVisibleColumnsCount() > 0,
73
76
  onChange: function onChange() {
74
- onSelectColumn(columns, getVisibleColumnsCount() !== columns.length);
77
+ onSelectColumn(filteredStickyColumn, getVisibleColumnsCount() !== columns.length);
75
78
  },
76
79
  id: "".concat(blockClass, "__customization-column-select-all"),
77
80
  labelText: selectAllLabel
@@ -92,7 +92,7 @@ var CustomizeColumnsTearsheet = function CustomizeColumnsTearsheet(_ref) {
92
92
  };
93
93
  var onCheckboxCheck = function onCheckboxCheck(col, value) {
94
94
  var changedDefinitions = columnObjects.map(function (definition) {
95
- if (Array.isArray(col) && col.indexOf(definition) != null || definition.id === col.id) {
95
+ if (Array.isArray(col) && col.indexOf(definition) != -1 || definition.id === col.id) {
96
96
  return _objectSpread(_objectSpread({}, definition), {}, {
97
97
  isVisible: value
98
98
  });
@@ -30,18 +30,23 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
30
30
 
31
31
  var blockClass = "".concat(_settings.pkg.prefix, "--datagrid");
32
32
  var componentClass = "".concat(blockClass, "-filter-flyout");
33
+ var defaults = {
34
+ flyoutIconDescription: 'Open filters',
35
+ title: 'Filter',
36
+ primaryActionLabel: 'Apply',
37
+ secondaryActionLabel: 'Cancel'
38
+ };
33
39
  var FilterFlyout = function FilterFlyout(_ref) {
34
40
  var _cx2;
35
- var _ref$updateMethod = _ref.updateMethod,
36
- updateMethod = _ref$updateMethod === void 0 ? _constants.BATCH : _ref$updateMethod,
41
+ var updateMethod = _ref.updateMethod,
37
42
  _ref$flyoutIconDescri = _ref.flyoutIconDescription,
38
- flyoutIconDescription = _ref$flyoutIconDescri === void 0 ? 'Open filters' : _ref$flyoutIconDescri,
43
+ flyoutIconDescription = _ref$flyoutIconDescri === void 0 ? defaults.flyoutIconDescription : _ref$flyoutIconDescri,
39
44
  _ref$filters = _ref.filters,
40
45
  filters = _ref$filters === void 0 ? [] : _ref$filters,
41
46
  _ref$title = _ref.title,
42
- title = _ref$title === void 0 ? 'Filter' : _ref$title,
47
+ title = _ref$title === void 0 ? defaults.title : _ref$title,
43
48
  _ref$primaryActionLab = _ref.primaryActionLabel,
44
- primaryActionLabel = _ref$primaryActionLab === void 0 ? 'Apply' : _ref$primaryActionLab,
49
+ primaryActionLabel = _ref$primaryActionLab === void 0 ? defaults.primaryActionLabel : _ref$primaryActionLab,
45
50
  _ref$onFlyoutOpen = _ref.onFlyoutOpen,
46
51
  onFlyoutOpen = _ref$onFlyoutOpen === void 0 ? function () {} : _ref$onFlyoutOpen,
47
52
  _ref$onFlyoutClose = _ref.onFlyoutClose,
@@ -51,7 +56,7 @@ var FilterFlyout = function FilterFlyout(_ref) {
51
56
  _ref$onCancel = _ref.onCancel,
52
57
  onCancel = _ref$onCancel === void 0 ? function () {} : _ref$onCancel,
53
58
  _ref$secondaryActionL = _ref.secondaryActionLabel,
54
- secondaryActionLabel = _ref$secondaryActionL === void 0 ? 'Cancel' : _ref$secondaryActionL,
59
+ secondaryActionLabel = _ref$secondaryActionL === void 0 ? defaults.secondaryActionLabel : _ref$secondaryActionL,
55
60
  setAllFilters = _ref.setAllFilters,
56
61
  _ref$data = _ref.data,
57
62
  data = _ref$data === void 0 ? [] : _ref$data,
@@ -97,6 +102,9 @@ var FilterFlyout = function FilterFlyout(_ref) {
97
102
  _useShouldDisableButt2 = (0, _slicedToArray2.default)(_useShouldDisableButt, 2),
98
103
  shouldDisableButtons = _useShouldDisableButt2[0],
99
104
  setShouldDisableButtons = _useShouldDisableButt2[1];
105
+
106
+ // Skip resize testing
107
+ /* istanbul ignore next */
100
108
  var handleResize = function handleResize(current) {
101
109
  var filterFlyoutRefPosition = flyoutInnerRef === null || flyoutInnerRef === void 0 ? void 0 : flyoutInnerRef.current.getBoundingClientRect();
102
110
  var originalFlyoutWidth = parseInt(window.getComputedStyle(flyoutInnerRef === null || flyoutInnerRef === void 0 ? void 0 : flyoutInnerRef.current).getPropertyValue('width'));
@@ -34,14 +34,21 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
34
34
  var blockClass = "".concat(_settings.pkg.prefix, "--datagrid");
35
35
  var componentClass = "".concat(blockClass, "-filter-panel");
36
36
  var MotionActionSet = (0, _framerMotion.motion)(_ActionSet.ActionSet);
37
+ var defaults = {
38
+ title: 'Filter',
39
+ closeIconDescription: 'Close filter panel',
40
+ primaryActionLabel: 'Apply',
41
+ secondaryActionLabel: 'Cancel',
42
+ searchLabelText: 'Filter search',
43
+ searchPlaceholder: 'Find filters'
44
+ };
37
45
  var FilterPanel = function FilterPanel(_ref) {
38
46
  var _cx;
39
47
  var _ref$title = _ref.title,
40
- title = _ref$title === void 0 ? 'Filter' : _ref$title,
48
+ title = _ref$title === void 0 ? defaults.title : _ref$title,
41
49
  _ref$closeIconDescrip = _ref.closeIconDescription,
42
- closeIconDescription = _ref$closeIconDescrip === void 0 ? 'Close filter panel' : _ref$closeIconDescrip,
43
- _ref$updateMethod = _ref.updateMethod,
44
- updateMethod = _ref$updateMethod === void 0 ? _constants.BATCH : _ref$updateMethod,
50
+ closeIconDescription = _ref$closeIconDescrip === void 0 ? defaults.closeIconDescription : _ref$closeIconDescrip,
51
+ updateMethod = _ref.updateMethod,
45
52
  filterSections = _ref.filterSections,
46
53
  setAllFilters = _ref.setAllFilters,
47
54
  _ref$onApply = _ref.onApply,
@@ -57,13 +64,13 @@ var FilterPanel = function FilterPanel(_ref) {
57
64
  _ref$filterPanelMinHe = _ref.filterPanelMinHeight,
58
65
  filterPanelMinHeight = _ref$filterPanelMinHe === void 0 ? 600 : _ref$filterPanelMinHe,
59
66
  _ref$primaryActionLab = _ref.primaryActionLabel,
60
- primaryActionLabel = _ref$primaryActionLab === void 0 ? 'Apply' : _ref$primaryActionLab,
67
+ primaryActionLabel = _ref$primaryActionLab === void 0 ? defaults.primaryActionLabel : _ref$primaryActionLab,
61
68
  _ref$secondaryActionL = _ref.secondaryActionLabel,
62
- secondaryActionLabel = _ref$secondaryActionL === void 0 ? 'Cancel' : _ref$secondaryActionL,
69
+ secondaryActionLabel = _ref$secondaryActionL === void 0 ? defaults.secondaryActionLabel : _ref$secondaryActionL,
63
70
  _ref$searchLabelText = _ref.searchLabelText,
64
- searchLabelText = _ref$searchLabelText === void 0 ? 'Filter search' : _ref$searchLabelText,
71
+ searchLabelText = _ref$searchLabelText === void 0 ? defaults.searchLabelText : _ref$searchLabelText,
65
72
  _ref$searchPlaceholde = _ref.searchPlaceholder,
66
- searchPlaceholder = _ref$searchPlaceholde === void 0 ? 'Find filters' : _ref$searchPlaceholde,
73
+ searchPlaceholder = _ref$searchPlaceholde === void 0 ? defaults.searchPlaceholder : _ref$searchPlaceholde,
67
74
  _ref$reactTableFilter = _ref.reactTableFiltersState,
68
75
  reactTableFiltersState = _ref$reactTableFilter === void 0 ? [] : _ref$reactTableFilter,
69
76
  _ref$isFetching = _ref.isFetching,
@@ -187,7 +194,8 @@ var FilterPanel = function FilterPanel(_ref) {
187
194
  var filterHeadingHeight = (_filterHeadingRef$cur = filterHeadingRef.current) === null || _filterHeadingRef$cur === void 0 ? void 0 : _filterHeadingRef$cur.getBoundingClientRect().height;
188
195
  var filterSearchHeight = (_filterSearchRef$curr = filterSearchRef.current) === null || _filterSearchRef$curr === void 0 ? void 0 : _filterSearchRef$curr.getBoundingClientRect().height;
189
196
  var actionSetHeight = (_actionSetRef$current = actionSetRef.current) === null || _actionSetRef$current === void 0 ? void 0 : _actionSetRef$current.getBoundingClientRect().height;
190
- var height = "calc(100vh - ".concat(filterHeadingHeight, "px - ").concat(showFilterSearch ? filterSearchHeight : 0, "px - ").concat(updateMethod === _constants.BATCH ? actionSetHeight : 0, "px)");
197
+ var height = panelOpen ? "calc(100vh - ".concat(filterHeadingHeight, "px - ").concat( /* istanbul ignore next */
198
+ showFilterSearch ? filterSearchHeight : 0, "px - ").concat(updateMethod === _constants.BATCH ? actionSetHeight : 0, "px)") : 0;
191
199
  return height;
192
200
  };
193
201
  return /*#__PURE__*/_react.default.createElement(_framerMotion.motion.div, {
@@ -213,7 +221,10 @@ var FilterPanel = function FilterPanel(_ref) {
213
221
  tooltipPosition: "bottom",
214
222
  tooltipAlignment: "end",
215
223
  onClick: closePanel
216
- }), showFilterSearch && /*#__PURE__*/_react.default.createElement("div", {
224
+ }), showFilterSearch &&
225
+ /*#__PURE__*/
226
+ /* istanbul ignore next */
227
+ _react.default.createElement("div", {
217
228
  ref: filterSearchRef,
218
229
  className: "".concat(componentClass, "__search")
219
230
  }, /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.Search, {
@@ -26,8 +26,7 @@ var useFilters = function useFilters(_ref) {
26
26
  setAllFilters = _ref.setAllFilters,
27
27
  variation = _ref.variation,
28
28
  reactTableFiltersState = _ref.reactTableFiltersState,
29
- _ref$onCancel = _ref.onCancel,
30
- onCancel = _ref$onCancel === void 0 ? function () {} : _ref$onCancel,
29
+ onCancel = _ref.onCancel,
31
30
  panelOpen = _ref.panelOpen,
32
31
  isFetching = _ref.isFetching;
33
32
  /** State */
@@ -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),
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.getInitialStateFromFilters = void 0;
7
7
  var _constants = require("./constants");
8
8
  /**
9
- * Copyright IBM Corp. 2022, 2022
9
+ * Copyright IBM Corp. 2022, 2024
10
10
  *
11
11
  * This source code is licensed under the Apache-2.0 license found in the
12
12
  * LICENSE file in the root directory of this source tree.
@@ -24,9 +24,7 @@ var applyInitialFilters = function applyInitialFilters(filterState, initialFilte
24
24
  };
25
25
 
26
26
  // This functions takes the filters passed in and makes an object to track it's state
27
- var getInitialStateFromFilters = function getInitialStateFromFilters(filters) {
28
- var variation = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _constants.FLYOUT;
29
- var initialFilters = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
27
+ var getInitialStateFromFilters = function getInitialStateFromFilters(filters, variation, initialFilters) {
30
28
  var initialFilterState = {};
31
29
  var setInitialState = function setInitialState(_ref) {
32
30
  var type = _ref.type,
@@ -80,8 +78,6 @@ var getInitialStateFromFilters = function getInitialStateFromFilters(filters) {
80
78
  return setInitialState(filter);
81
79
  });
82
80
  });
83
- } else {
84
- console.error('No variation passed into useInitialStateFromFilters');
85
81
  }
86
82
  if (initialFilters.length > 0) {
87
83
  applyInitialFilters(initialFilterState, initialFilters);
@@ -12,7 +12,8 @@ var _react = _interopRequireDefault(require("react"));
12
12
  var _classnames = _interopRequireDefault(require("classnames"));
13
13
  var _carbonComponentsReact = require("carbon-components-react");
14
14
  var _settings = require("../../settings");
15
- var _excluded = ["id", "itemText", "onClick", "icon", "shouldHideMenuItem"],
15
+ var _propsHelper = require("../../global/js/utils/props-helper");
16
+ var _excluded = ["id", "itemText", "onClick", "shouldHideMenuItem", "align", "icon"],
16
17
  _excluded2 = ["id", "onClick", "shouldHideMenuItem", "shouldDisableMenuItem", "disabled"];
17
18
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
18
19
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
@@ -50,12 +51,14 @@ var useActionsColumn = function useActionsColumn(hooks) {
50
51
  display: 'flex'
51
52
  }
52
53
  }, rowActions.map(function (action, index) {
53
- var id = action.id,
54
- itemText = action.itemText,
55
- _onClick = action.onClick,
56
- icon = action.icon,
57
- shouldHideMenuItem = action.shouldHideMenuItem,
58
- rest = (0, _objectWithoutProperties2.default)(action, _excluded);
54
+ var preparedActionProps = (0, _propsHelper.prepareProps)(action, ['isDelete']);
55
+ var id = preparedActionProps.id,
56
+ itemText = preparedActionProps.itemText,
57
+ _onClick = preparedActionProps.onClick,
58
+ shouldHideMenuItem = preparedActionProps.shouldHideMenuItem,
59
+ align = preparedActionProps.align,
60
+ icon = preparedActionProps.icon,
61
+ rest = (0, _objectWithoutProperties2.default)(preparedActionProps, _excluded);
59
62
  var hidden = typeof shouldHideMenuItem === 'function' && shouldHideMenuItem(row);
60
63
  if (hidden) {
61
64
  return null;
@@ -63,13 +66,13 @@ var useActionsColumn = function useActionsColumn(hooks) {
63
66
  return /*#__PURE__*/_react.default.createElement("div", {
64
67
  className: (0, _classnames.default)("".concat(blockClass, "__actions-column-button"), (0, _defineProperty2.default)({}, "".concat(blockClass, "__disabled-row-action-button"), getDisabledState(row.index))),
65
68
  key: "".concat(itemText, "__").concat(index)
66
- }, /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.OverflowMenu, (0, _extends2.default)({}, rest, {
69
+ }, /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.Button, (0, _extends2.default)({}, rest, {
70
+ tooltipPosition: align || 'top',
71
+ kind: "ghost",
72
+ name: itemText //for test use
73
+ ,
67
74
  renderIcon: icon,
68
- hasIconOnly: true,
69
- light: true,
70
75
  iconDescription: itemText,
71
- ariaLabel: itemText,
72
- kind: "ghost",
73
76
  className: (0, _classnames.default)((0, _defineProperty2.default)({}, "".concat(blockClass, "__disabled-row-action"), getDisabledState(row.index))),
74
77
  onClick: function onClick(e) {
75
78
  if (getDisabledState(row.index)) {
@@ -78,7 +81,8 @@ var useActionsColumn = function useActionsColumn(hooks) {
78
81
  }
79
82
  e.stopPropagation();
80
83
  _onClick(id, row, e);
81
- }
84
+ },
85
+ hasIconOnly: true
82
86
  })));
83
87
  })), !isFetching && (rowActions.length > 2 || isColumnSticky) && /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.OverflowMenu, {
84
88
  size: "sm",
@@ -18,6 +18,8 @@ var useFiltering = function useFiltering(hooks) {
18
18
  (0, _react.useEffect)(function () {
19
19
  _settings.pkg.checkReportFeatureEnabled('Datagrid.useFiltering');
20
20
  }, []);
21
+
22
+ /* istanbul ignore next */
21
23
  var filterTypes = (0, _react.useMemo)(function () {
22
24
  return {
23
25
  date: function date(rows, id, _ref) {
@@ -29,7 +29,7 @@ var useNestedRowExpander = function useNestedRowExpander(hooks) {
29
29
  instance: tempState === null || tempState === void 0 ? void 0 : tempState.current,
30
30
  lastExpandedRowIndex: lastExpandedRowIndex === null || lastExpandedRowIndex === void 0 ? void 0 : lastExpandedRowIndex.current,
31
31
  blockClass: blockClass,
32
- activeElement: document.activeElement
32
+ activeElement: typeof document !== 'undefined' && document.activeElement
33
33
  });
34
34
  var visibleColumns = function visibleColumns(columns) {
35
35
  var expanderColumn = {
@@ -36,7 +36,9 @@ var useRowIsMouseOver = function useRowIsMouseOver(hooks) {
36
36
  });
37
37
  });
38
38
  Object.assign(instance, {
39
- rows: rowsWithMouseOver
39
+ rows: rowsWithMouseOver,
40
+ withMouseHover: true,
41
+ setMouseOverRowIndex: setMouseOverRowIndex
40
42
  });
41
43
  hooks.getRowProps.push(getRowProps);
42
44
  };