@carbon/ibm-products 2.0.0-rc.20 → 2.0.0-rc.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (32) hide show
  1. package/README.md +17 -0
  2. package/css/index-full-carbon.css +12 -6
  3. package/css/index-full-carbon.css.map +1 -1
  4. package/css/index-full-carbon.min.css +4 -2
  5. package/css/index-full-carbon.min.css.map +1 -1
  6. package/css/index-without-carbon.css +12 -6
  7. package/css/index-without-carbon.css.map +1 -1
  8. package/css/index-without-carbon.min.css +4 -2
  9. package/css/index-without-carbon.min.css.map +1 -1
  10. package/css/index.css +12 -6
  11. package/css/index.css.map +1 -1
  12. package/css/index.min.css +4 -2
  13. package/css/index.min.css.map +1 -1
  14. package/es/components/Datagrid/Datagrid/DatagridContent.js +2 -2
  15. package/es/components/Datagrid/Datagrid/addons/Filtering/FilterFlyout.js +19 -247
  16. package/es/components/Datagrid/Datagrid/addons/Filtering/FilterPanel.js +41 -285
  17. package/es/components/Datagrid/Datagrid/addons/Filtering/FilterProvider.js +4 -4
  18. package/es/components/Datagrid/Datagrid/addons/Filtering/hooks/index.js +1 -0
  19. package/es/components/Datagrid/Datagrid/addons/Filtering/hooks/useFilters.js +310 -0
  20. package/es/components/Datagrid/Datagrid/addons/Filtering/utils.js +6 -6
  21. package/es/components/Datagrid/utils/DatagridActions.js +2 -2
  22. package/lib/components/Datagrid/Datagrid/DatagridContent.js +2 -2
  23. package/lib/components/Datagrid/Datagrid/addons/Filtering/FilterFlyout.js +22 -243
  24. package/lib/components/Datagrid/Datagrid/addons/Filtering/FilterPanel.js +47 -284
  25. package/lib/components/Datagrid/Datagrid/addons/Filtering/FilterProvider.js +4 -4
  26. package/lib/components/Datagrid/Datagrid/addons/Filtering/hooks/index.js +8 -0
  27. package/lib/components/Datagrid/Datagrid/addons/Filtering/hooks/useFilters.js +325 -0
  28. package/lib/components/Datagrid/Datagrid/addons/Filtering/utils.js +5 -5
  29. package/lib/components/Datagrid/utils/DatagridActions.js +2 -2
  30. package/package.json +2 -2
  31. package/scss/components/Datagrid/styles/_datagrid.scss +2 -4
  32. package/scss/components/OptionsTile/_options-tile.scss +10 -3
@@ -1,12 +1,7 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
2
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
3
- import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
4
3
  import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
5
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; }
7
-
8
- 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; }
9
-
10
5
  /**
11
6
  * Copyright IBM Corp. 2022, 2023
12
7
  *
@@ -17,18 +12,17 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
17
12
  /* eslint-disable react/jsx-key */
18
13
  import React, { useRef, useMemo, useContext, useState, useEffect } from 'react';
19
14
  import PropTypes from 'prop-types';
20
- import { Accordion, AccordionItem, Button, Search, Checkbox, DatePicker, DatePickerInput, Dropdown, FormGroup, NumberInput, RadioButton, RadioButtonGroup, Layer } from '@carbon/react';
15
+ import { Accordion, AccordionItem, Button, Search, Layer } from '@carbon/react';
21
16
  import { rem } from '@carbon/layout';
22
17
  import { pkg } from '../../../../../settings';
23
- import { BATCH, CHECKBOX, CLEAR_FILTERS, DATE, DROPDOWN, INSTANT, NUMBER, PANEL, RADIO } from './constants';
18
+ import { BATCH, CLEAR_FILTERS, INSTANT, PANEL } from './constants';
24
19
  import cx from 'classnames';
25
20
  import { motion } from 'framer-motion';
26
21
  import { panelVariants, innerContainerVariants, actionSetVariants } from './motion/variants';
27
22
  import { Close } from '@carbon/react/icons';
28
23
  import { ActionSet } from '../../../../ActionSet';
29
24
  import { FilterContext } from '.';
30
- import { useInitialStateFromFilters, useSubscribeToEventEmitter, useShouldDisableButtons } from './hooks';
31
- import { getInitialStateFromFilters } from './utils';
25
+ import { useFilters, useSubscribeToEventEmitter, useShouldDisableButtons } from './hooks';
32
26
  var blockClass = "".concat(pkg.prefix, "--datagrid");
33
27
  var componentClass = "".concat(blockClass, "-filter-panel");
34
28
  var MotionActionSet = motion(ActionSet);
@@ -66,30 +60,31 @@ var FilterPanel = function FilterPanel(_ref) {
66
60
  searchPlaceholder = _ref$searchPlaceholde === void 0 ? 'Find filters' : _ref$searchPlaceholde;
67
61
 
68
62
  /** State */
69
- var _useInitialStateFromF = useInitialStateFromFilters(filterSections, PANEL),
70
- _useInitialStateFromF2 = _slicedToArray(_useInitialStateFromF, 2),
71
- filtersState = _useInitialStateFromF2[0],
72
- setFiltersState = _useInitialStateFromF2[1];
73
-
74
- var _useState = useState([]),
63
+ var _useState = useState(false),
75
64
  _useState2 = _slicedToArray(_useState, 2),
76
- filtersObjectArray = _useState2[0],
77
- setFiltersObjectArray = _useState2[1];
78
-
79
- var _useState3 = useState(false),
80
- _useState4 = _slicedToArray(_useState3, 2),
81
- showDividerLine = _useState4[0],
82
- setShowDividerLine = _useState4[1];
65
+ showDividerLine = _useState2[0],
66
+ setShowDividerLine = _useState2[1];
67
+
68
+ var _useFilters = useFilters({
69
+ updateMethod: updateMethod,
70
+ filters: filterSections,
71
+ setAllFilters: setAllFilters,
72
+ variation: PANEL
73
+ }),
74
+ filtersState = _useFilters.filtersState,
75
+ prevFiltersObjectArrayRef = _useFilters.prevFiltersObjectArrayRef,
76
+ prevFiltersRef = _useFilters.prevFiltersRef,
77
+ revertToPreviousFilters = _useFilters.revertToPreviousFilters,
78
+ reset = _useFilters.reset,
79
+ renderFilter = _useFilters.renderFilter,
80
+ filtersObjectArray = _useFilters.filtersObjectArray;
83
81
  /** Refs */
84
82
 
85
83
 
86
84
  var filterPanelRef = useRef();
87
85
  var filterHeadingRef = useRef();
88
86
  var filterSearchRef = useRef();
89
- var actionSetRef = useRef(); // When using batch actions we have to store the filters to then apply them later
90
-
91
- var prevFiltersRef = useRef(JSON.stringify(filtersState));
92
- var prevFiltersObjectArrayRef = useRef(JSON.stringify(filtersObjectArray));
87
+ var actionSetRef = useRef();
93
88
  /** State from hooks */
94
89
 
95
90
  var _useShouldDisableButt = useShouldDisableButtons({
@@ -109,20 +104,13 @@ var FilterPanel = function FilterPanel(_ref) {
109
104
  /** Context */
110
105
 
111
106
  var _useContext = useContext(FilterContext),
112
- leftPanelOpen = _useContext.leftPanelOpen,
113
- setLeftPanelOpen = _useContext.setLeftPanelOpen;
107
+ panelOpen = _useContext.panelOpen,
108
+ setPanelOpen = _useContext.setPanelOpen;
114
109
  /** Methods */
115
110
 
116
111
 
117
112
  var closePanel = function closePanel() {
118
- return setLeftPanelOpen(false);
119
- }; // If the user decides to cancel or click outside the flyout, it reverts back to the filters that were
120
- // there when they opened the flyout
121
-
122
-
123
- var revertToPreviousFilters = function revertToPreviousFilters() {
124
- setFiltersState(JSON.parse(prevFiltersRef.current));
125
- setFiltersObjectArray(JSON.parse(prevFiltersObjectArrayRef.current));
113
+ return setPanelOpen(false);
126
114
  };
127
115
 
128
116
  var cancel = function cancel() {
@@ -133,19 +121,6 @@ var FilterPanel = function FilterPanel(_ref) {
133
121
  }
134
122
  };
135
123
 
136
- var reset = function reset() {
137
- // Get the initial values for the filters
138
- var initialFiltersState = getInitialStateFromFilters(filterSections, PANEL);
139
- var initialFiltersObjectArray = []; // Set the state to the initial values
140
-
141
- setFiltersState(initialFiltersState);
142
- setFiltersObjectArray(initialFiltersObjectArray);
143
- setAllFilters([]); // Update their respective refs so everything is in sync
144
-
145
- prevFiltersRef.current = JSON.stringify(initialFiltersState);
146
- prevFiltersObjectArrayRef.current = JSON.stringify(initialFiltersObjectArray);
147
- };
148
-
149
124
  var apply = function apply() {
150
125
  setAllFilters(filtersObjectArray); // From the user
151
126
 
@@ -157,225 +132,6 @@ var FilterPanel = function FilterPanel(_ref) {
157
132
  prevFiltersObjectArrayRef.current = JSON.stringify(filtersObjectArray);
158
133
  };
159
134
 
160
- var applyFilters = function applyFilters(_ref2) {
161
- var column = _ref2.column,
162
- value = _ref2.value,
163
- type = _ref2.type;
164
-
165
- // If no end date is selected return because we need the end date to do computations
166
- if (type === DATE && value.length > 0 && !value[1]) {
167
- return;
168
- }
169
-
170
- var filtersObjectArrayCopy = _toConsumableArray(filtersObjectArray); // // check if the filter already exists in the array
171
-
172
-
173
- var filter = filtersObjectArrayCopy.find(function (item) {
174
- return item.id === column;
175
- }); // // if filter exists in array then update the filter's new value
176
-
177
- if (filter) {
178
- filter.value = value;
179
- } else {
180
- filtersObjectArrayCopy.push({
181
- id: column,
182
- value: value,
183
- type: type
184
- });
185
- } // ATTENTION: this is where you would reset or remove individual filters from the filters array
186
-
187
-
188
- if (type === CHECKBOX) {
189
- /**
190
- When all checkboxes of a group are all unselected the value still exists in the filtersObjectArray
191
- This checks if all the checkboxes are selected = false and removes it from the array
192
- */
193
- var index = filtersObjectArrayCopy.findIndex(function (filter) {
194
- return filter.id === column;
195
- }); // If all the selected state is false remove from array
196
-
197
- var shouldRemoveFromArray = filtersObjectArrayCopy[index].value.every(function (val) {
198
- return val.selected === false;
199
- });
200
-
201
- if (shouldRemoveFromArray) {
202
- filtersObjectArrayCopy.splice(index, 1);
203
- }
204
- } else if (type === DATE) {
205
- if (value.length === 0) {
206
- /**
207
- Checks to see if the date value is an empty array, if it is that means the user wants
208
- to reset the date filter
209
- */
210
- var _index = filtersObjectArrayCopy.findIndex(function (filter) {
211
- return filter.id === column;
212
- }); // Remove it from the filters array since there is nothing to filter
213
-
214
-
215
- filtersObjectArrayCopy.splice(_index, 1);
216
- }
217
- } else if (type === DROPDOWN || type === RADIO) {
218
- if (value === 'Any') {
219
- /**
220
- Checks to see if the selected value is 'Any', that means the user wants
221
- to reset specific filter
222
- */
223
- var _index2 = filtersObjectArrayCopy.findIndex(function (filter) {
224
- return filter.id === column;
225
- }); // Remove it from the filters array
226
-
227
-
228
- filtersObjectArrayCopy.splice(_index2, 1);
229
- }
230
- }
231
-
232
- setFiltersObjectArray(filtersObjectArrayCopy); // // Automatically apply the filters if the updateMethod is instant
233
-
234
- if (updateMethod === INSTANT) {
235
- setAllFilters(filtersObjectArrayCopy);
236
- }
237
- };
238
- /** Render the individual filter component */
239
-
240
-
241
- var renderFilter = function renderFilter(_ref3) {
242
- var _filtersState$column, _filtersState$column2, _filtersState$column3, _filtersState$column4;
243
-
244
- var type = _ref3.type,
245
- column = _ref3.column,
246
- components = _ref3.props;
247
-
248
- switch (type) {
249
- case DATE:
250
- return /*#__PURE__*/React.createElement(Layer, null, /*#__PURE__*/React.createElement(DatePicker, _extends({}, components.DatePicker, {
251
- onChange: function onChange(value) {
252
- var _components$DatePicke, _components$DatePicke2;
253
-
254
- setFiltersState(_objectSpread(_objectSpread({}, filtersState), {}, _defineProperty({}, column, {
255
- value: value,
256
- type: type
257
- })));
258
- applyFilters({
259
- column: column,
260
- value: value,
261
- type: type
262
- });
263
- (_components$DatePicke = (_components$DatePicke2 = components.DatePicker).onChange) === null || _components$DatePicke === void 0 ? void 0 : _components$DatePicke.call(_components$DatePicke2, value);
264
- },
265
- value: filtersState[column].value,
266
- datePickerType: "range"
267
- }), /*#__PURE__*/React.createElement(DatePickerInput, _extends({
268
- placeholder: "mm/dd/yyyy",
269
- labelText: "Start date"
270
- }, components.DatePickerInput.start)), /*#__PURE__*/React.createElement(DatePickerInput, _extends({
271
- placeholder: "mm/dd/yyyy",
272
- labelText: "End date"
273
- }, components.DatePickerInput.end))));
274
-
275
- case NUMBER:
276
- return /*#__PURE__*/React.createElement(Layer, null, /*#__PURE__*/React.createElement(NumberInput, _extends({
277
- step: 1,
278
- allowEmpty: true,
279
- hideSteppers: true
280
- }, components.NumberInput, {
281
- onChange: function onChange(event) {
282
- var _components$NumberInp, _components$NumberInp2;
283
-
284
- setFiltersState(_objectSpread(_objectSpread({}, filtersState), {}, _defineProperty({}, column, {
285
- value: event.target.value,
286
- type: type
287
- })));
288
- applyFilters({
289
- column: column,
290
- value: event.target.value,
291
- type: type
292
- });
293
- (_components$NumberInp = (_components$NumberInp2 = components.NumberInput).onChange) === null || _components$NumberInp === void 0 ? void 0 : _components$NumberInp.call(_components$NumberInp2, event);
294
- },
295
- value: filtersState[column].value
296
- })));
297
-
298
- case CHECKBOX:
299
- return /*#__PURE__*/React.createElement(FormGroup, components.FormGroup, filtersState[column].value.map(function (option) {
300
- return /*#__PURE__*/React.createElement(Checkbox, _extends({
301
- key: option.labelText
302
- }, option, {
303
- onChange: function onChange(_, _ref4) {
304
- var _option$onChange;
305
-
306
- var isSelected = _ref4.checked;
307
- var checkboxCopy = filtersState[column].value;
308
- var foundCheckbox = checkboxCopy.find(function (checkbox) {
309
- return checkbox.value === option.value;
310
- });
311
- foundCheckbox.selected = isSelected;
312
- setFiltersState(_objectSpread(_objectSpread({}, filtersState), {}, _defineProperty({}, column, {
313
- value: checkboxCopy,
314
- type: type
315
- })));
316
- applyFilters({
317
- column: column,
318
- value: _toConsumableArray(filtersState[column].value),
319
- type: type
320
- });
321
- (_option$onChange = option.onChange) === null || _option$onChange === void 0 ? void 0 : _option$onChange.call(option, isSelected);
322
- },
323
- checked: option.selected
324
- }));
325
- }));
326
-
327
- case RADIO:
328
- return /*#__PURE__*/React.createElement(FormGroup, components.FormGroup, /*#__PURE__*/React.createElement(RadioButtonGroup, _extends({}, components.RadioButtonGroup, {
329
- valueSelected: ((_filtersState$column = filtersState[column]) === null || _filtersState$column === void 0 ? void 0 : _filtersState$column.value) === '' ? 'Any' : (_filtersState$column2 = filtersState[column]) === null || _filtersState$column2 === void 0 ? void 0 : _filtersState$column2.value,
330
- onChange: function onChange(selected) {
331
- var _components$RadioButt, _components$RadioButt2;
332
-
333
- setFiltersState(_objectSpread(_objectSpread({}, filtersState), {}, _defineProperty({}, column, {
334
- value: selected,
335
- type: type
336
- })));
337
- applyFilters({
338
- column: column,
339
- value: selected,
340
- type: type
341
- });
342
- (_components$RadioButt = (_components$RadioButt2 = components.RadioButtonGroup).onChange) === null || _components$RadioButt === void 0 ? void 0 : _components$RadioButt.call(_components$RadioButt2, selected);
343
- }
344
- }), /*#__PURE__*/React.createElement(RadioButton, {
345
- id: "any",
346
- labelText: "Any",
347
- value: "Any"
348
- }), components.RadioButton.map(function (radio) {
349
- var _ref5, _radio$id;
350
-
351
- return /*#__PURE__*/React.createElement(RadioButton, _extends({
352
- key: (_ref5 = (_radio$id = radio.id) !== null && _radio$id !== void 0 ? _radio$id : radio.labelText) !== null && _ref5 !== void 0 ? _ref5 : radio.value
353
- }, radio));
354
- })));
355
-
356
- case DROPDOWN:
357
- return /*#__PURE__*/React.createElement(Layer, null, /*#__PURE__*/React.createElement(Dropdown, _extends({}, components.Dropdown, {
358
- 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,
359
- items: ['Any'].concat(_toConsumableArray(components.Dropdown.items)),
360
- onChange: function onChange(_ref6) {
361
- var _components$Dropdown$, _components$Dropdown;
362
-
363
- var selectedItem = _ref6.selectedItem;
364
- setFiltersState(_objectSpread(_objectSpread({}, filtersState), {}, _defineProperty({}, column, {
365
- value: selectedItem,
366
- type: type
367
- })));
368
- applyFilters({
369
- column: column,
370
- value: selectedItem,
371
- type: type
372
- });
373
- (_components$Dropdown$ = (_components$Dropdown = components.Dropdown).onChange) === null || _components$Dropdown$ === void 0 ? void 0 : _components$Dropdown$.call(_components$Dropdown, selectedItem);
374
- }
375
- })));
376
- }
377
- };
378
-
379
135
  var renderActionSet = function renderActionSet() {
380
136
  return showActionSet && /*#__PURE__*/React.createElement(MotionActionSet, {
381
137
  actions: [{
@@ -408,12 +164,12 @@ var FilterPanel = function FilterPanel(_ref) {
408
164
 
409
165
 
410
166
  useEffect(function liftOpenStateToParent() {
411
- if (leftPanelOpen) {
412
- onPanelOpen(leftPanelOpen);
167
+ if (panelOpen) {
168
+ onPanelOpen(panelOpen);
413
169
  } else {
414
- onPanelClose(leftPanelOpen);
170
+ onPanelClose(panelOpen);
415
171
  }
416
- }, [leftPanelOpen, onPanelClose, onPanelOpen]);
172
+ }, [panelOpen, onPanelClose, onPanelOpen]);
417
173
  useEffect(function setPanelMinimumHeight() {
418
174
  var _filterPanelRef$curre;
419
175
 
@@ -433,9 +189,9 @@ var FilterPanel = function FilterPanel(_ref) {
433
189
 
434
190
  return /*#__PURE__*/React.createElement(motion.div, {
435
191
  ref: filterPanelRef,
436
- className: cx(componentClass, "".concat(componentClass, "__container"), (_cx = {}, _defineProperty(_cx, "".concat(componentClass, "--open"), leftPanelOpen), _defineProperty(_cx, "".concat(componentClass, "--batch"), showActionSet), _defineProperty(_cx, "".concat(componentClass, "--instant"), !showActionSet), _cx)),
192
+ className: cx(componentClass, "".concat(componentClass, "__container"), (_cx = {}, _defineProperty(_cx, "".concat(componentClass, "--open"), panelOpen), _defineProperty(_cx, "".concat(componentClass, "--batch"), showActionSet), _defineProperty(_cx, "".concat(componentClass, "--instant"), !showActionSet), _cx)),
437
193
  initial: false,
438
- animate: leftPanelOpen ? 'visible' : 'hidden',
194
+ animate: panelOpen ? 'visible' : 'hidden',
439
195
  variants: panelVariants
440
196
  }, /*#__PURE__*/React.createElement(motion.div, {
441
197
  variants: innerContainerVariants
@@ -469,25 +225,25 @@ var FilterPanel = function FilterPanel(_ref) {
469
225
  height: getScrollableContainerHeight()
470
226
  },
471
227
  onScroll: onInnerContainerScroll
472
- }, filterSections.map(function (_ref7) {
473
- var _ref7$categoryTitle = _ref7.categoryTitle,
474
- categoryTitle = _ref7$categoryTitle === void 0 ? null : _ref7$categoryTitle,
475
- _ref7$filters = _ref7.filters,
476
- filters = _ref7$filters === void 0 ? [] : _ref7$filters,
477
- hasAccordion = _ref7.hasAccordion;
228
+ }, filterSections.map(function (_ref2) {
229
+ var _ref2$categoryTitle = _ref2.categoryTitle,
230
+ categoryTitle = _ref2$categoryTitle === void 0 ? null : _ref2$categoryTitle,
231
+ _ref2$filters = _ref2.filters,
232
+ filters = _ref2$filters === void 0 ? [] : _ref2$filters,
233
+ hasAccordion = _ref2.hasAccordion;
478
234
  return /*#__PURE__*/React.createElement("div", {
479
235
  className: "".concat(componentClass, "__category")
480
236
  }, categoryTitle && /*#__PURE__*/React.createElement("div", {
481
237
  className: "".concat(componentClass, "__category-title")
482
- }, categoryTitle), hasAccordion ? /*#__PURE__*/React.createElement(Accordion, null, filters.map(function (_ref8) {
483
- var filterLabel = _ref8.filterLabel,
484
- filter = _ref8.filter;
238
+ }, categoryTitle), hasAccordion ? /*#__PURE__*/React.createElement(Accordion, null, filters.map(function (_ref3) {
239
+ var filterLabel = _ref3.filterLabel,
240
+ filter = _ref3.filter;
485
241
  return /*#__PURE__*/React.createElement(AccordionItem, {
486
242
  title: filterLabel,
487
243
  key: filterLabel
488
244
  }, renderFilter(filter));
489
- })) : filters.map(function (_ref9) {
490
- var filter = _ref9.filter;
245
+ })) : filters.map(function (_ref4) {
246
+ var filter = _ref4.filter;
491
247
  return renderFilter(filter);
492
248
  }));
493
249
  })), renderActionSet()));
@@ -72,14 +72,14 @@ export var FilterProvider = function FilterProvider(_ref2) {
72
72
 
73
73
  var _useState = useState(false),
74
74
  _useState2 = _slicedToArray(_useState, 2),
75
- leftPanelOpen = _useState2[0],
76
- setLeftPanelOpen = _useState2[1];
75
+ panelOpen = _useState2[0],
76
+ setPanelOpen = _useState2[1];
77
77
 
78
78
  var value = {
79
79
  filterTags: filterTags,
80
80
  EventEmitter: EventEmitter,
81
- leftPanelOpen: leftPanelOpen,
82
- setLeftPanelOpen: setLeftPanelOpen
81
+ panelOpen: panelOpen,
82
+ setPanelOpen: setPanelOpen
83
83
  };
84
84
  return /*#__PURE__*/React.createElement(FilterContext.Provider, {
85
85
  value: value
@@ -6,4 +6,5 @@
6
6
  */
7
7
  export { default as useInitialStateFromFilters } from './useInitialStateFromFilters';
8
8
  export { default as useSubscribeToEventEmitter } from './useSubscribeToEventEmitter';
9
+ export { default as useFilters } from './useFilters';
9
10
  export { default as useShouldDisableButtons } from './useShouldDisableButtons';