@carbon/ibm-products 2.0.0-rc.27 → 2.0.0-rc.28

Sign up to get free protection for your applications and to get access to all the features.
Files changed (95) hide show
  1. package/css/index-full-carbon.css +71 -221
  2. package/css/index-full-carbon.css.map +1 -1
  3. package/css/index-full-carbon.min.css +3 -5
  4. package/css/index-full-carbon.min.css.map +1 -1
  5. package/css/index-without-carbon-released-only.css +142 -189
  6. package/css/index-without-carbon-released-only.css.map +1 -1
  7. package/css/index-without-carbon-released-only.min.css +1 -3
  8. package/css/index-without-carbon-released-only.min.css.map +1 -1
  9. package/css/index-without-carbon.css +71 -221
  10. package/css/index-without-carbon.css.map +1 -1
  11. package/css/index-without-carbon.min.css +3 -5
  12. package/css/index-without-carbon.min.css.map +1 -1
  13. package/css/index.css +71 -221
  14. package/css/index.css.map +1 -1
  15. package/css/index.min.css +3 -5
  16. package/css/index.min.css.map +1 -1
  17. package/es/components/AboutModal/AboutModal.js +3 -4
  18. package/es/components/ActionBar/ActionBar.js +13 -29
  19. package/es/components/BreadcrumbWithOverflow/BreadcrumbWithOverflow.js +15 -21
  20. package/es/components/ButtonSetWithOverflow/ButtonSetWithOverflow.js +7 -11
  21. package/es/components/Datagrid/Datagrid/DatagridSelectAllWithToggle.js +7 -8
  22. package/es/components/Datagrid/Datagrid/DatagridToolbar.js +6 -5
  23. package/es/components/Datagrid/Datagrid/DatagridVirtualBody.js +3 -4
  24. package/es/components/Datagrid/Datagrid/addons/Filtering/FilterFlyout.js +17 -3
  25. package/es/components/Datagrid/Datagrid/addons/Filtering/FilterPanel.js +19 -4
  26. package/es/components/Datagrid/Datagrid/addons/Filtering/hooks/useFilters.js +8 -5
  27. package/es/components/Datagrid/Datagrid/addons/Filtering/hooks/useInitialStateFromFilters.js +2 -1
  28. package/es/components/Datagrid/Datagrid/addons/Filtering/utils.js +19 -1
  29. package/es/components/Datagrid/useFiltering.js +4 -2
  30. package/es/components/Datagrid/useOnRowClick.js +11 -1
  31. package/es/components/Datagrid/useSelectRows.js +2 -0
  32. package/es/components/{InlineEditV2/InlineEditV2.js → EditInPlace/EditInPlace.js} +92 -30
  33. package/es/components/{InlineEdit → EditInPlace}/index.js +1 -1
  34. package/es/components/PageHeader/PageHeader.js +36 -35
  35. package/es/components/PageHeader/PageHeaderTitle.js +18 -18
  36. package/es/components/SidePanel/SidePanel.js +25 -26
  37. package/es/components/TagSet/TagSet.js +5 -7
  38. package/es/components/Tearsheet/TearsheetShell.js +4 -6
  39. package/es/components/index.js +1 -1
  40. package/es/global/js/hooks/useResizeObserver.js +79 -0
  41. package/es/global/js/hooks/useWindowResize.js +6 -0
  42. package/es/global/js/hooks/useWindowScroll.js +7 -0
  43. package/es/global/js/package-settings.js +2 -4
  44. package/lib/components/AboutModal/AboutModal.js +3 -4
  45. package/lib/components/ActionBar/ActionBar.js +13 -29
  46. package/lib/components/BreadcrumbWithOverflow/BreadcrumbWithOverflow.js +13 -19
  47. package/lib/components/ButtonSetWithOverflow/ButtonSetWithOverflow.js +7 -11
  48. package/lib/components/Datagrid/Datagrid/DatagridSelectAllWithToggle.js +2 -1
  49. package/lib/components/Datagrid/Datagrid/DatagridToolbar.js +5 -4
  50. package/lib/components/Datagrid/Datagrid/DatagridVirtualBody.js +3 -4
  51. package/lib/components/Datagrid/Datagrid/addons/Filtering/FilterFlyout.js +17 -3
  52. package/lib/components/Datagrid/Datagrid/addons/Filtering/FilterPanel.js +19 -4
  53. package/lib/components/Datagrid/Datagrid/addons/Filtering/hooks/useFilters.js +8 -5
  54. package/lib/components/Datagrid/Datagrid/addons/Filtering/hooks/useInitialStateFromFilters.js +2 -1
  55. package/lib/components/Datagrid/Datagrid/addons/Filtering/utils.js +18 -1
  56. package/lib/components/Datagrid/useFiltering.js +4 -2
  57. package/lib/components/Datagrid/useOnRowClick.js +11 -1
  58. package/lib/components/Datagrid/useSelectRows.js +2 -0
  59. package/lib/components/{InlineEditV2/InlineEditV2.js → EditInPlace/EditInPlace.js} +100 -34
  60. package/lib/components/{InlineEdit → EditInPlace}/index.js +3 -3
  61. package/lib/components/PageHeader/PageHeader.js +36 -35
  62. package/lib/components/PageHeader/PageHeaderTitle.js +19 -19
  63. package/lib/components/SidePanel/SidePanel.js +25 -26
  64. package/lib/components/TagSet/TagSet.js +5 -7
  65. package/lib/components/Tearsheet/TearsheetShell.js +4 -6
  66. package/lib/components/index.js +7 -7
  67. package/lib/global/js/hooks/useResizeObserver.js +91 -0
  68. package/lib/global/js/hooks/useWindowScroll.js +6 -0
  69. package/lib/global/js/package-settings.js +2 -4
  70. package/package.json +3 -4
  71. package/scss/components/BreadcrumbWithOverflow/_breadcrumb-with-overflow.scss +10 -1
  72. package/scss/components/Datagrid/styles/_useSelectAllToggle.scss +11 -7
  73. package/scss/components/{InlineEditV2/_inline-edit-v2.scss → EditInPlace/_edit-in-place.scss} +56 -14
  74. package/scss/components/{InlineEditV1 → EditInPlace}/_index-with-carbon.scss +1 -1
  75. package/scss/components/{InlineEditV2 → EditInPlace}/_index.scss +1 -1
  76. package/scss/components/{InlineEditV1 → EditInPlace}/_storybook-styles.scss +3 -15
  77. package/scss/components/PageHeader/_page-header.scss +1 -7
  78. package/scss/components/_index-released-only-with-carbon.scss +1 -1
  79. package/scss/components/_index-released-only.scss +1 -1
  80. package/scss/components/_index-with-carbon.scss +1 -2
  81. package/scss/components/_index.scss +1 -2
  82. package/es/components/InlineEdit/InlineEdit.js +0 -47
  83. package/es/components/InlineEditV1/InlineEditV1.js +0 -442
  84. package/es/components/InlineEditV1/index.js +0 -7
  85. package/es/components/InlineEditV2/index.js +0 -7
  86. package/lib/components/InlineEdit/InlineEdit.js +0 -63
  87. package/lib/components/InlineEditV1/InlineEditV1.js +0 -459
  88. package/lib/components/InlineEditV1/index.js +0 -13
  89. package/lib/components/InlineEditV2/index.js +0 -13
  90. package/scss/components/InlineEditV1/_carbon-imports.scss +0 -6
  91. package/scss/components/InlineEditV1/_index.scss +0 -8
  92. package/scss/components/InlineEditV1/_inline-edit-v1.scss +0 -269
  93. package/scss/components/InlineEditV2/_index-with-carbon.scss +0 -9
  94. package/scss/components/InlineEditV2/_storybook-styles.scss +0 -9
  95. /package/scss/components/{InlineEditV2 → EditInPlace}/_carbon-imports.scss +0 -0
@@ -25,7 +25,7 @@ var _classnames = _interopRequireDefault(require("classnames"));
25
25
 
26
26
  var _settings = require("../../settings");
27
27
 
28
- var _reactResizeDetector = require("react-resize-detector");
28
+ var _useResizeObserver = require("../../global/js/hooks/useResizeObserver");
29
29
 
30
30
  var _react2 = require("@carbon/react");
31
31
 
@@ -85,7 +85,9 @@ var ActionBar = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref) {
85
85
  var internalId = (0, _react.useRef)((0, _uuidv.default)());
86
86
  var refDisplayedItems = (0, _react.useRef)(null);
87
87
  var sizingRef = (0, _react.useRef)(null);
88
- var sizes = (0, _react.useRef)({}); // create hidden sizing items
88
+ var sizes = (0, _react.useRef)({});
89
+ var backupRef = (0, _react.useRef)();
90
+ var localRef = ref || backupRef; // create hidden sizing items
89
91
 
90
92
  (0, _react.useEffect)(function () {
91
93
  // Hidden action bar and items used to calculate sizes
@@ -190,44 +192,26 @@ var ActionBar = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref) {
190
192
 
191
193
  (0, _react.useEffect)(function () {
192
194
  checkFullyVisibleItems(); // eslint-disable-next-line react-hooks/exhaustive-deps
193
- }, [maxVisible, hiddenSizingItems]);
194
- /* istanbul ignore next */
195
- // not sure how to fake window resize
195
+ }, [maxVisible, hiddenSizingItems]); // /* istanbul ignore next */ // not sure how to fake window resize
196
196
 
197
197
  var handleResize = function handleResize() {
198
- // width is the space available for all action bar items horizontally
199
- // the action bar items are squares so the height should be one item wide
200
-
201
- /* istanbul ignore next */
202
- // not sure how to fake window resize
203
- checkFullyVisibleItems();
204
- };
205
- /* istanbul ignore next */
206
- // not sure how to fake window resize
207
-
208
-
209
- var handleActionBarItemsResize = function handleActionBarItemsResize() {
210
198
  // when the hidden sizing items change size
211
199
 
212
200
  /* istanbul ignore next */
213
201
  // not sure how to fake window resize
214
202
  checkFullyVisibleItems();
215
- };
216
-
217
- (0, _reactResizeDetector.useResizeDetector)({
218
- onResize: handleActionBarItemsResize,
219
- targetRef: sizingRef
220
- });
203
+ }; // // resize of the items
221
204
 
222
- var _useResizeDetector = (0, _reactResizeDetector.useResizeDetector)({
223
- onResize: handleResize,
224
- targetRef: ref
225
- }),
226
- outerRef = _useResizeDetector.ref;
227
205
 
206
+ (0, _useResizeObserver.useResizeObserver)(sizingRef, {
207
+ callback: handleResize
208
+ });
209
+ (0, _useResizeObserver.useResizeObserver)(localRef, {
210
+ callback: handleResize
211
+ });
228
212
  return /*#__PURE__*/_react.default.createElement("div", (0, _extends2.default)({}, rest, {
229
213
  className: (0, _classnames.default)([blockClass, className]),
230
- ref: outerRef
214
+ ref: localRef
231
215
  }), hiddenSizingItems, /*#__PURE__*/_react.default.createElement("div", {
232
216
  ref: refDisplayedItems,
233
217
  className: (0, _classnames.default)(["".concat(blockClass, "__displayed-items"), (0, _defineProperty2.default)({}, "".concat(blockClass, "__displayed-items--right"), rightAlign)])
@@ -23,7 +23,7 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
23
23
 
24
24
  var _classnames = _interopRequireDefault(require("classnames"));
25
25
 
26
- var _reactResizeDetector = require("react-resize-detector");
26
+ var _useResizeObserver = require("../../global/js/hooks/useResizeObserver");
27
27
 
28
28
  var _react2 = require("@carbon/react");
29
29
 
@@ -274,15 +274,6 @@ var BreadcrumbWithOverflow = function BreadcrumbWithOverflow(_ref) {
274
274
  // not sure how to test resize
275
275
  checkFullyVisibleBreadcrumbItems();
276
276
  };
277
- /* istanbul ignore next */
278
- // not sure how to test resize
279
-
280
-
281
- var handleBreadcrumbItemsResize = function handleBreadcrumbItemsResize() {
282
- /* istanbul ignore next */
283
- // not sure how to test resize
284
- checkFullyVisibleBreadcrumbItems();
285
- };
286
277
 
287
278
  var backItem = breadcrumbs[breadcrumbs.length - 1];
288
279
  /* istanbul ignore if */
@@ -290,15 +281,15 @@ var BreadcrumbWithOverflow = function BreadcrumbWithOverflow(_ref) {
290
281
 
291
282
  if (backItem.isCurrentPage) {
292
283
  backItem = breadcrumbs[breadcrumbs.length - 2];
293
- }
284
+ } // container resize
294
285
 
295
- (0, _reactResizeDetector.useResizeDetector)({
296
- onResize: handleBreadcrumbItemsResize,
297
- targetRef: sizingContainerRef
298
- });
299
- (0, _reactResizeDetector.useResizeDetector)({
300
- onResize: handleResize,
301
- targetRef: breadcrumbItemWithOverflow
286
+
287
+ (0, _useResizeObserver.useResizeObserver)(sizingContainerRef, {
288
+ callback: handleResize
289
+ }); // item resize
290
+
291
+ (0, _useResizeObserver.useResizeObserver)(breadcrumbItemWithOverflow, {
292
+ callback: handleResize
302
293
  });
303
294
  return /*#__PURE__*/_react.default.createElement("div", {
304
295
  className: (0, _classnames.default)(blockClass, className, (0, _defineProperty2.default)({}, "".concat(blockClass, "__with-items"), displayedBreadcrumbItems.length > 1)),
@@ -314,8 +305,11 @@ var BreadcrumbWithOverflow = function BreadcrumbWithOverflow(_ref) {
314
305
  href: backItem.href,
315
306
  renderIcon: function renderIcon() {
316
307
  return /*#__PURE__*/_react.default.createElement(_react2.IconButton, {
308
+ className: "".concat(blockClass, "__back__button"),
309
+ align: "right",
310
+ kind: "ghost",
317
311
  label: backItem.title || backItem.label,
318
- align: "right"
312
+ size: "sm"
319
313
  }, /*#__PURE__*/_react.default.createElement(_icons.ArrowLeft, {
320
314
  size: 16
321
315
  }));
@@ -23,7 +23,7 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
23
23
 
24
24
  var _classnames = _interopRequireDefault(require("classnames"));
25
25
 
26
- var _reactResizeDetector = require("react-resize-detector");
26
+ var _useResizeObserver = require("../../global/js/hooks/useResizeObserver");
27
27
 
28
28
  var _react2 = require("@carbon/react");
29
29
 
@@ -172,18 +172,14 @@ var ButtonSetWithOverflow = function ButtonSetWithOverflow(_ref) {
172
172
  }).reverse());
173
173
  });
174
174
 
175
- (0, _reactResizeDetector.useResizeDetector)({
176
- onResize: checkFullyVisibleItems,
177
- targetRef: sizingContainerRefSet
175
+ (0, _useResizeObserver.useResizeObserver)(sizingContainerRefSet, {
176
+ callback: checkFullyVisibleItems
178
177
  });
179
- (0, _reactResizeDetector.useResizeDetector)({
180
- onResize: checkFullyVisibleItems,
181
- targetRef: sizingContainerRefCombo
178
+ (0, _useResizeObserver.useResizeObserver)(sizingContainerRefCombo, {
179
+ callback: checkFullyVisibleItems
182
180
  });
183
- (0, _reactResizeDetector.useResizeDetector)({
184
- onResize: checkFullyVisibleItems,
185
- targetRef: spaceAvailableRef,
186
- handleWidth: true
181
+ (0, _useResizeObserver.useResizeObserver)(spaceAvailableRef, {
182
+ callback: checkFullyVisibleItems
187
183
  });
188
184
  return /*#__PURE__*/_react.default.createElement("div", {
189
185
  className: (0, _classnames.default)([blockClass, className, (0, _defineProperty2.default)({}, "".concat(blockClass, "--right"), rightAlign)]),
@@ -120,7 +120,8 @@ var SelectAllWithToggle = function SelectAllWithToggle(_ref) {
120
120
  }, props));
121
121
  },
122
122
  size: "sm",
123
- ariaLabel: allRowsLabel
123
+ ariaLabel: allRowsLabel,
124
+ menuOptionsClass: "".concat(blockClass, "__select-all-toggle-overflow")
124
125
  }, /*#__PURE__*/_react.default.createElement(_react2.OverflowMenuItem, {
125
126
  itemText: allPageRowsLabel,
126
127
  requireTitle: true,
@@ -19,7 +19,7 @@ var _icons = require("@carbon/react/icons");
19
19
 
20
20
  var _react2 = require("@carbon/react");
21
21
 
22
- var _reactResizeDetector = require("react-resize-detector");
22
+ var _useResizeObserver2 = require("../../../global/js/hooks/useResizeObserver");
23
23
 
24
24
  var _ButtonMenu = require("../../ButtonMenu");
25
25
 
@@ -157,9 +157,10 @@ var DatagridBatchActionsToolbar = function DatagridBatchActionsToolbar(datagridS
157
157
  };
158
158
 
159
159
  var DatagridToolbar = function DatagridToolbar(datagridState) {
160
- var _useResizeDetector = (0, _reactResizeDetector.useResizeDetector)(),
161
- width = _useResizeDetector.width,
162
- ref = _useResizeDetector.ref;
160
+ var ref = (0, _react.useRef)(null);
161
+
162
+ var _useResizeObserver = (0, _useResizeObserver2.useResizeObserver)(ref),
163
+ width = _useResizeObserver.width;
163
164
 
164
165
  var DatagridActions = datagridState.DatagridActions,
165
166
  DatagridBatchActions = datagridState.DatagridBatchActions,
@@ -25,7 +25,7 @@ var _DatagridHead = _interopRequireDefault(require("./DatagridHead"));
25
25
 
26
26
  var _layout = require("@carbon/layout");
27
27
 
28
- var _reactResizeDetector = require("react-resize-detector");
28
+ var _useResizeObserver = require("../../../global/js/hooks/useResizeObserver");
29
29
 
30
30
  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); }
31
31
 
@@ -73,9 +73,8 @@ var DatagridVirtualBody = function DatagridVirtualBody(datagridState) {
73
73
  gridRefElement.style.width = gridRefElement === null || gridRefElement === void 0 ? void 0 : gridRefElement.clientWidth;
74
74
  };
75
75
 
76
- (0, _reactResizeDetector.useResizeDetector)({
77
- onResize: handleVirtualGridResize,
78
- targetRef: gridRef
76
+ (0, _useResizeObserver.useResizeObserver)(gridRef, {
77
+ callback: handleVirtualGridResize
79
78
  });
80
79
 
81
80
  var syncScroll = function syncScroll(e) {
@@ -73,9 +73,13 @@ var FilterFlyout = function FilterFlyout(_ref) {
73
73
  secondaryActionLabel = _ref$secondaryActionL === void 0 ? 'Cancel' : _ref$secondaryActionL,
74
74
  setAllFilters = _ref.setAllFilters,
75
75
  _ref$data = _ref.data,
76
- data = _ref$data === void 0 ? [] : _ref$data;
77
-
76
+ data = _ref$data === void 0 ? [] : _ref$data,
77
+ _ref$initialFilters = _ref.initialFilters,
78
+ initialFilters = _ref$initialFilters === void 0 ? [] : _ref$initialFilters;
79
+ // Save the initial filters we only need the filters once when it loads
80
+ var initialFiltersRef = (0, _react2.useRef)(initialFilters);
78
81
  /** State */
82
+
79
83
  var _useState = (0, _react2.useState)(false),
80
84
  _useState2 = (0, _slicedToArray2.default)(_useState, 2),
81
85
  open = _useState2[0],
@@ -85,7 +89,8 @@ var FilterFlyout = function FilterFlyout(_ref) {
85
89
  updateMethod: updateMethod,
86
90
  filters: filters,
87
91
  setAllFilters: setAllFilters,
88
- variation: _constants.FLYOUT
92
+ variation: _constants.FLYOUT,
93
+ initialFilters: initialFiltersRef.current
89
94
  }),
90
95
  filtersState = _useFilters.filtersState,
91
96
  prevFiltersObjectArrayRef = _useFilters.prevFiltersObjectArrayRef,
@@ -235,6 +240,15 @@ FilterFlyout.propTypes = {
235
240
  */
236
241
  flyoutIconDescription: _propTypes.default.string,
237
242
 
243
+ /**
244
+ * Filters that should be applied on load
245
+ */
246
+ initialFilters: _propTypes.default.arrayOf(_propTypes.default.shape({
247
+ id: _propTypes.default.string.isRequired,
248
+ type: _propTypes.default.string.isRequired,
249
+ value: _propTypes.default.any.isRequired
250
+ })),
251
+
238
252
  /**
239
253
  * Callback when the apply button is clicked
240
254
  */
@@ -87,9 +87,13 @@ var FilterPanel = function FilterPanel(_ref) {
87
87
  _ref$searchLabelText = _ref.searchLabelText,
88
88
  searchLabelText = _ref$searchLabelText === void 0 ? 'Filter search' : _ref$searchLabelText,
89
89
  _ref$searchPlaceholde = _ref.searchPlaceholder,
90
- searchPlaceholder = _ref$searchPlaceholde === void 0 ? 'Find filters' : _ref$searchPlaceholde;
91
-
90
+ searchPlaceholder = _ref$searchPlaceholde === void 0 ? 'Find filters' : _ref$searchPlaceholde,
91
+ _ref$initialFilters = _ref.initialFilters,
92
+ initialFilters = _ref$initialFilters === void 0 ? [] : _ref$initialFilters;
93
+ // Save the initial filters we only need the filters once
94
+ var initialFiltersRef = (0, _react.useRef)(initialFilters);
92
95
  /** State */
96
+
93
97
  var _useState = (0, _react.useState)(false),
94
98
  _useState2 = (0, _slicedToArray2.default)(_useState, 2),
95
99
  showDividerLine = _useState2[0],
@@ -99,7 +103,8 @@ var FilterPanel = function FilterPanel(_ref) {
99
103
  updateMethod: updateMethod,
100
104
  filters: filterSections,
101
105
  setAllFilters: setAllFilters,
102
- variation: _constants.PANEL
106
+ variation: _constants.PANEL,
107
+ initialFilters: initialFiltersRef.current
103
108
  }),
104
109
  filtersState = _useFilters.filtersState,
105
110
  prevFiltersObjectArrayRef = _useFilters.prevFiltersObjectArrayRef,
@@ -255,13 +260,14 @@ var FilterPanel = function FilterPanel(_ref) {
255
260
  height: getScrollableContainerHeight()
256
261
  },
257
262
  onScroll: onInnerContainerScroll
258
- }, filterSections.map(function (_ref2) {
263
+ }, filterSections.map(function (_ref2, index) {
259
264
  var _ref2$categoryTitle = _ref2.categoryTitle,
260
265
  categoryTitle = _ref2$categoryTitle === void 0 ? null : _ref2$categoryTitle,
261
266
  _ref2$filters = _ref2.filters,
262
267
  filters = _ref2$filters === void 0 ? [] : _ref2$filters,
263
268
  hasAccordion = _ref2.hasAccordion;
264
269
  return /*#__PURE__*/_react.default.createElement("div", {
270
+ key: index,
265
271
  className: "".concat(componentClass, "__category")
266
272
  }, categoryTitle && /*#__PURE__*/_react.default.createElement("div", {
267
273
  className: "".concat(componentClass, "__category-title")
@@ -283,6 +289,15 @@ FilterPanel.propTypes = {
283
289
  closeIconDescription: _propTypes.default.string,
284
290
  filterPanelMinHeight: _propTypes.default.number,
285
291
  filterSections: _propTypes.default.array,
292
+
293
+ /**
294
+ * Filters that should be applied on load
295
+ */
296
+ initialFilters: _propTypes.default.arrayOf(_propTypes.default.shape({
297
+ id: _propTypes.default.string.isRequired,
298
+ type: _propTypes.default.string.isRequired,
299
+ value: _propTypes.default.any.isRequired
300
+ })),
286
301
  onApply: _propTypes.default.func,
287
302
  onCancel: _propTypes.default.func,
288
303
  onPanelClose: _propTypes.default.func,
@@ -40,15 +40,16 @@ var useFilters = function useFilters(_ref) {
40
40
  _ref$filters = _ref.filters,
41
41
  filters = _ref$filters === void 0 ? [] : _ref$filters,
42
42
  setAllFilters = _ref.setAllFilters,
43
- variation = _ref.variation;
43
+ variation = _ref.variation,
44
+ initialFilters = _ref.initialFilters;
44
45
 
45
46
  /** State */
46
- var _useInitialStateFromF = (0, _useInitialStateFromFilters.default)(filters, variation),
47
+ var _useInitialStateFromF = (0, _useInitialStateFromFilters.default)(filters, variation, initialFilters),
47
48
  _useInitialStateFromF2 = (0, _slicedToArray2.default)(_useInitialStateFromF, 2),
48
49
  filtersState = _useInitialStateFromF2[0],
49
50
  setFiltersState = _useInitialStateFromF2[1];
50
51
 
51
- var _useState = (0, _react.useState)([]),
52
+ var _useState = (0, _react.useState)(initialFilters),
52
53
  _useState2 = (0, _slicedToArray2.default)(_useState, 2),
53
54
  filtersObjectArray = _useState2[0],
54
55
  setFiltersObjectArray = _useState2[1]; // When using batch actions we have to store the filters to then apply them later
@@ -66,8 +67,10 @@ var useFilters = function useFilters(_ref) {
66
67
  };
67
68
 
68
69
  var reset = function reset() {
69
- // Get the initial values for the filters
70
- var initialFiltersState = (0, _utils.getInitialStateFromFilters)(filters, variation);
70
+ // When we reset we want the "initialFilters" to be an empty array
71
+ var resetFiltersArray = []; // Get the initial values for the filters
72
+
73
+ var initialFiltersState = (0, _utils.getInitialStateFromFilters)(filters, variation, resetFiltersArray);
71
74
  var initialFiltersObjectArray = []; // Set the state to the initial values
72
75
 
73
76
  setFiltersState(initialFiltersState);
@@ -24,8 +24,9 @@ var _utils = require("../utils");
24
24
  */
25
25
  var useInitialStateFromFilters = function useInitialStateFromFilters(filters) {
26
26
  var variation = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _constants.FLYOUT;
27
+ var initialFilters = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
27
28
 
28
- var _useState = (0, _react.useState)((0, _utils.getInitialStateFromFilters)(filters, variation)),
29
+ var _useState = (0, _react.useState)((0, _utils.getInitialStateFromFilters)(filters, variation, initialFilters)),
29
30
  _useState2 = (0, _slicedToArray2.default)(_useState, 2),
30
31
  state = _useState2[0],
31
32
  setState = _useState2[1];
@@ -13,9 +13,22 @@ var _constants = require("./constants");
13
13
  * This source code is licensed under the Apache-2.0 license found in the
14
14
  * LICENSE file in the root directory of this source tree.
15
15
  */
16
- // This functions takes the filters passed in and makes an object to track it's state
16
+ var applyInitialFilters = function applyInitialFilters(filterState, initialFilters) {
17
+ Object.keys(filterState).forEach(function (key) {
18
+ var hasInitialFilter = initialFilters.find(function (filter) {
19
+ return filter.id === key;
20
+ });
21
+
22
+ if (hasInitialFilter) {
23
+ filterState[key].value = hasInitialFilter.value;
24
+ }
25
+ });
26
+ }; // This functions takes the filters passed in and makes an object to track it's state
27
+
28
+
17
29
  var getInitialStateFromFilters = function getInitialStateFromFilters(filters) {
18
30
  var variation = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _constants.FLYOUT;
31
+ var initialFilters = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
19
32
  var initialFilterState = {};
20
33
 
21
34
  var setInitialState = function setInitialState(_ref) {
@@ -76,6 +89,10 @@ var getInitialStateFromFilters = function getInitialStateFromFilters(filters) {
76
89
  console.error('No variation passed into useInitialStateFromFilters');
77
90
  }
78
91
 
92
+ if (initialFilters.length > 0) {
93
+ applyInitialFilters(initialFilterState, initialFilters);
94
+ }
95
+
79
96
  return initialFilterState;
80
97
  };
81
98
 
@@ -76,11 +76,13 @@ var useFiltering = function useFiltering(hooks) {
76
76
  setAllFilters = instance.setAllFilters,
77
77
  setFilter = instance.setFilter,
78
78
  headers = instance.headers,
79
- data = instance.data;
79
+ data = instance.data,
80
+ state = instance.state;
80
81
  var defaultProps = {
81
82
  variation: 'flyout',
82
83
  updateMethod: _constants.BATCH,
83
- panelIconDescription: 'Open filter panel'
84
+ panelIconDescription: 'Open filter panel',
85
+ initialFilters: state.filters
84
86
  };
85
87
 
86
88
  var getFilterFlyoutProps = function getFilterFlyoutProps() {
@@ -33,9 +33,19 @@ var useOnRowClick = function useOnRowClick(hooks) {
33
33
  }
34
34
  };
35
35
 
36
+ var onKeyDown = function onKeyDown(event) {
37
+ var key = event.key;
38
+
39
+ if (key === 'Enter') {
40
+ onClick();
41
+ }
42
+ };
43
+
36
44
  return [props, {
37
- onClick: onClick
45
+ onClick: onClick,
46
+ onKeyDown: onKeyDown
38
47
  }, {
48
+ tabIndex: 0,
39
49
  style: {
40
50
  cursor: 'pointer'
41
51
  }
@@ -99,6 +99,7 @@ var SelectRow = function SelectRow(datagridState) {
99
99
  radio = datagridState.radio,
100
100
  toggleAllRowsSelected = datagridState.toggleAllRowsSelected,
101
101
  onRadioSelect = datagridState.onRadioSelect,
102
+ onRowSelect = datagridState.onRowSelect,
102
103
  columns = datagridState.columns,
103
104
  withStickyColumn = datagridState.withStickyColumn;
104
105
 
@@ -139,6 +140,7 @@ var SelectRow = function SelectRow(datagridState) {
139
140
  }
140
141
 
141
142
  onChange(e);
143
+ onRowSelect === null || onRowSelect === void 0 ? void 0 : onRowSelect(row, e);
142
144
  },
143
145
  id: "".concat(tableId, "-").concat(row.index),
144
146
  name: "".concat(tableId, "-").concat(row.index, "-name"),