@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.
- package/README.md +17 -0
- package/css/index-full-carbon.css +12 -6
- package/css/index-full-carbon.css.map +1 -1
- package/css/index-full-carbon.min.css +4 -2
- package/css/index-full-carbon.min.css.map +1 -1
- package/css/index-without-carbon.css +12 -6
- package/css/index-without-carbon.css.map +1 -1
- package/css/index-without-carbon.min.css +4 -2
- package/css/index-without-carbon.min.css.map +1 -1
- package/css/index.css +12 -6
- package/css/index.css.map +1 -1
- package/css/index.min.css +4 -2
- package/css/index.min.css.map +1 -1
- package/es/components/Datagrid/Datagrid/DatagridContent.js +2 -2
- package/es/components/Datagrid/Datagrid/addons/Filtering/FilterFlyout.js +19 -247
- package/es/components/Datagrid/Datagrid/addons/Filtering/FilterPanel.js +41 -285
- package/es/components/Datagrid/Datagrid/addons/Filtering/FilterProvider.js +4 -4
- package/es/components/Datagrid/Datagrid/addons/Filtering/hooks/index.js +1 -0
- package/es/components/Datagrid/Datagrid/addons/Filtering/hooks/useFilters.js +310 -0
- package/es/components/Datagrid/Datagrid/addons/Filtering/utils.js +6 -6
- package/es/components/Datagrid/utils/DatagridActions.js +2 -2
- package/lib/components/Datagrid/Datagrid/DatagridContent.js +2 -2
- package/lib/components/Datagrid/Datagrid/addons/Filtering/FilterFlyout.js +22 -243
- package/lib/components/Datagrid/Datagrid/addons/Filtering/FilterPanel.js +47 -284
- package/lib/components/Datagrid/Datagrid/addons/Filtering/FilterProvider.js +4 -4
- package/lib/components/Datagrid/Datagrid/addons/Filtering/hooks/index.js +8 -0
- package/lib/components/Datagrid/Datagrid/addons/Filtering/hooks/useFilters.js +325 -0
- package/lib/components/Datagrid/Datagrid/addons/Filtering/utils.js +5 -5
- package/lib/components/Datagrid/utils/DatagridActions.js +2 -2
- package/package.json +2 -2
- package/scss/components/Datagrid/styles/_datagrid.scss +2 -4
- package/scss/components/OptionsTile/_options-tile.scss +10 -3
@@ -13,8 +13,6 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
|
|
13
13
|
|
14
14
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
15
15
|
|
16
|
-
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
17
|
-
|
18
16
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
19
17
|
|
20
18
|
var _react = _interopRequireWildcard(require("react"));
|
@@ -39,20 +37,22 @@ var _icons = require("@carbon/react/icons");
|
|
39
37
|
|
40
38
|
var _ActionSet = require("../../../../ActionSet");
|
41
39
|
|
42
|
-
var
|
40
|
+
var _ = require(".");
|
43
41
|
|
44
42
|
var _hooks = require("./hooks");
|
45
43
|
|
46
|
-
var _utils = require("./utils");
|
47
|
-
|
48
44
|
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); }
|
49
45
|
|
50
46
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
51
47
|
|
52
|
-
|
53
|
-
|
54
|
-
|
48
|
+
/**
|
49
|
+
* Copyright IBM Corp. 2022, 2023
|
50
|
+
*
|
51
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
52
|
+
* LICENSE file in the root directory of this source tree.
|
53
|
+
*/
|
55
54
|
|
55
|
+
/* eslint-disable react/jsx-key */
|
56
56
|
var blockClass = "".concat(_settings.pkg.prefix, "--datagrid");
|
57
57
|
var componentClass = "".concat(blockClass, "-filter-panel");
|
58
58
|
var MotionActionSet = (0, _framerMotion.motion)(_ActionSet.ActionSet);
|
@@ -90,30 +90,31 @@ var FilterPanel = function FilterPanel(_ref) {
|
|
90
90
|
searchPlaceholder = _ref$searchPlaceholde === void 0 ? 'Find filters' : _ref$searchPlaceholde;
|
91
91
|
|
92
92
|
/** State */
|
93
|
-
var
|
94
|
-
_useInitialStateFromF2 = (0, _slicedToArray2.default)(_useInitialStateFromF, 2),
|
95
|
-
filtersState = _useInitialStateFromF2[0],
|
96
|
-
setFiltersState = _useInitialStateFromF2[1];
|
97
|
-
|
98
|
-
var _useState = (0, _react.useState)([]),
|
93
|
+
var _useState = (0, _react.useState)(false),
|
99
94
|
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
var
|
104
|
-
|
105
|
-
|
106
|
-
|
95
|
+
showDividerLine = _useState2[0],
|
96
|
+
setShowDividerLine = _useState2[1];
|
97
|
+
|
98
|
+
var _useFilters = (0, _hooks.useFilters)({
|
99
|
+
updateMethod: updateMethod,
|
100
|
+
filters: filterSections,
|
101
|
+
setAllFilters: setAllFilters,
|
102
|
+
variation: _constants.PANEL
|
103
|
+
}),
|
104
|
+
filtersState = _useFilters.filtersState,
|
105
|
+
prevFiltersObjectArrayRef = _useFilters.prevFiltersObjectArrayRef,
|
106
|
+
prevFiltersRef = _useFilters.prevFiltersRef,
|
107
|
+
revertToPreviousFilters = _useFilters.revertToPreviousFilters,
|
108
|
+
reset = _useFilters.reset,
|
109
|
+
renderFilter = _useFilters.renderFilter,
|
110
|
+
filtersObjectArray = _useFilters.filtersObjectArray;
|
107
111
|
/** Refs */
|
108
112
|
|
109
113
|
|
110
114
|
var filterPanelRef = (0, _react.useRef)();
|
111
115
|
var filterHeadingRef = (0, _react.useRef)();
|
112
116
|
var filterSearchRef = (0, _react.useRef)();
|
113
|
-
var actionSetRef = (0, _react.useRef)();
|
114
|
-
|
115
|
-
var prevFiltersRef = (0, _react.useRef)(JSON.stringify(filtersState));
|
116
|
-
var prevFiltersObjectArrayRef = (0, _react.useRef)(JSON.stringify(filtersObjectArray));
|
117
|
+
var actionSetRef = (0, _react.useRef)();
|
117
118
|
/** State from hooks */
|
118
119
|
|
119
120
|
var _useShouldDisableButt = (0, _hooks.useShouldDisableButtons)({
|
@@ -132,21 +133,14 @@ var FilterPanel = function FilterPanel(_ref) {
|
|
132
133
|
}, [updateMethod]);
|
133
134
|
/** Context */
|
134
135
|
|
135
|
-
var _useContext = (0, _react.useContext)(
|
136
|
-
|
137
|
-
|
136
|
+
var _useContext = (0, _react.useContext)(_.FilterContext),
|
137
|
+
panelOpen = _useContext.panelOpen,
|
138
|
+
setPanelOpen = _useContext.setPanelOpen;
|
138
139
|
/** Methods */
|
139
140
|
|
140
141
|
|
141
142
|
var closePanel = function closePanel() {
|
142
|
-
return
|
143
|
-
}; // If the user decides to cancel or click outside the flyout, it reverts back to the filters that were
|
144
|
-
// there when they opened the flyout
|
145
|
-
|
146
|
-
|
147
|
-
var revertToPreviousFilters = function revertToPreviousFilters() {
|
148
|
-
setFiltersState(JSON.parse(prevFiltersRef.current));
|
149
|
-
setFiltersObjectArray(JSON.parse(prevFiltersObjectArrayRef.current));
|
143
|
+
return setPanelOpen(false);
|
150
144
|
};
|
151
145
|
|
152
146
|
var cancel = function cancel() {
|
@@ -157,19 +151,6 @@ var FilterPanel = function FilterPanel(_ref) {
|
|
157
151
|
}
|
158
152
|
};
|
159
153
|
|
160
|
-
var reset = function reset() {
|
161
|
-
// Get the initial values for the filters
|
162
|
-
var initialFiltersState = (0, _utils.getInitialStateFromFilters)(filterSections, _constants.PANEL);
|
163
|
-
var initialFiltersObjectArray = []; // Set the state to the initial values
|
164
|
-
|
165
|
-
setFiltersState(initialFiltersState);
|
166
|
-
setFiltersObjectArray(initialFiltersObjectArray);
|
167
|
-
setAllFilters([]); // Update their respective refs so everything is in sync
|
168
|
-
|
169
|
-
prevFiltersRef.current = JSON.stringify(initialFiltersState);
|
170
|
-
prevFiltersObjectArrayRef.current = JSON.stringify(initialFiltersObjectArray);
|
171
|
-
};
|
172
|
-
|
173
154
|
var apply = function apply() {
|
174
155
|
setAllFilters(filtersObjectArray); // From the user
|
175
156
|
|
@@ -181,224 +162,6 @@ var FilterPanel = function FilterPanel(_ref) {
|
|
181
162
|
prevFiltersObjectArrayRef.current = JSON.stringify(filtersObjectArray);
|
182
163
|
};
|
183
164
|
|
184
|
-
var applyFilters = function applyFilters(_ref2) {
|
185
|
-
var column = _ref2.column,
|
186
|
-
value = _ref2.value,
|
187
|
-
type = _ref2.type;
|
188
|
-
|
189
|
-
// If no end date is selected return because we need the end date to do computations
|
190
|
-
if (type === _constants.DATE && value.length > 0 && !value[1]) {
|
191
|
-
return;
|
192
|
-
}
|
193
|
-
|
194
|
-
var filtersObjectArrayCopy = (0, _toConsumableArray2.default)(filtersObjectArray); // // check if the filter already exists in the array
|
195
|
-
|
196
|
-
var filter = filtersObjectArrayCopy.find(function (item) {
|
197
|
-
return item.id === column;
|
198
|
-
}); // // if filter exists in array then update the filter's new value
|
199
|
-
|
200
|
-
if (filter) {
|
201
|
-
filter.value = value;
|
202
|
-
} else {
|
203
|
-
filtersObjectArrayCopy.push({
|
204
|
-
id: column,
|
205
|
-
value: value,
|
206
|
-
type: type
|
207
|
-
});
|
208
|
-
} // ATTENTION: this is where you would reset or remove individual filters from the filters array
|
209
|
-
|
210
|
-
|
211
|
-
if (type === _constants.CHECKBOX) {
|
212
|
-
/**
|
213
|
-
When all checkboxes of a group are all unselected the value still exists in the filtersObjectArray
|
214
|
-
This checks if all the checkboxes are selected = false and removes it from the array
|
215
|
-
*/
|
216
|
-
var index = filtersObjectArrayCopy.findIndex(function (filter) {
|
217
|
-
return filter.id === column;
|
218
|
-
}); // If all the selected state is false remove from array
|
219
|
-
|
220
|
-
var shouldRemoveFromArray = filtersObjectArrayCopy[index].value.every(function (val) {
|
221
|
-
return val.selected === false;
|
222
|
-
});
|
223
|
-
|
224
|
-
if (shouldRemoveFromArray) {
|
225
|
-
filtersObjectArrayCopy.splice(index, 1);
|
226
|
-
}
|
227
|
-
} else if (type === _constants.DATE) {
|
228
|
-
if (value.length === 0) {
|
229
|
-
/**
|
230
|
-
Checks to see if the date value is an empty array, if it is that means the user wants
|
231
|
-
to reset the date filter
|
232
|
-
*/
|
233
|
-
var _index = filtersObjectArrayCopy.findIndex(function (filter) {
|
234
|
-
return filter.id === column;
|
235
|
-
}); // Remove it from the filters array since there is nothing to filter
|
236
|
-
|
237
|
-
|
238
|
-
filtersObjectArrayCopy.splice(_index, 1);
|
239
|
-
}
|
240
|
-
} else if (type === _constants.DROPDOWN || type === _constants.RADIO) {
|
241
|
-
if (value === 'Any') {
|
242
|
-
/**
|
243
|
-
Checks to see if the selected value is 'Any', that means the user wants
|
244
|
-
to reset specific filter
|
245
|
-
*/
|
246
|
-
var _index2 = filtersObjectArrayCopy.findIndex(function (filter) {
|
247
|
-
return filter.id === column;
|
248
|
-
}); // Remove it from the filters array
|
249
|
-
|
250
|
-
|
251
|
-
filtersObjectArrayCopy.splice(_index2, 1);
|
252
|
-
}
|
253
|
-
}
|
254
|
-
|
255
|
-
setFiltersObjectArray(filtersObjectArrayCopy); // // Automatically apply the filters if the updateMethod is instant
|
256
|
-
|
257
|
-
if (updateMethod === _constants.INSTANT) {
|
258
|
-
setAllFilters(filtersObjectArrayCopy);
|
259
|
-
}
|
260
|
-
};
|
261
|
-
/** Render the individual filter component */
|
262
|
-
|
263
|
-
|
264
|
-
var renderFilter = function renderFilter(_ref3) {
|
265
|
-
var _filtersState$column, _filtersState$column2, _filtersState$column3, _filtersState$column4;
|
266
|
-
|
267
|
-
var type = _ref3.type,
|
268
|
-
column = _ref3.column,
|
269
|
-
components = _ref3.props;
|
270
|
-
|
271
|
-
switch (type) {
|
272
|
-
case _constants.DATE:
|
273
|
-
return /*#__PURE__*/_react.default.createElement(_react2.Layer, null, /*#__PURE__*/_react.default.createElement(_react2.DatePicker, (0, _extends2.default)({}, components.DatePicker, {
|
274
|
-
onChange: function onChange(value) {
|
275
|
-
var _components$DatePicke, _components$DatePicke2;
|
276
|
-
|
277
|
-
setFiltersState(_objectSpread(_objectSpread({}, filtersState), {}, (0, _defineProperty2.default)({}, column, {
|
278
|
-
value: value,
|
279
|
-
type: type
|
280
|
-
})));
|
281
|
-
applyFilters({
|
282
|
-
column: column,
|
283
|
-
value: value,
|
284
|
-
type: type
|
285
|
-
});
|
286
|
-
(_components$DatePicke = (_components$DatePicke2 = components.DatePicker).onChange) === null || _components$DatePicke === void 0 ? void 0 : _components$DatePicke.call(_components$DatePicke2, value);
|
287
|
-
},
|
288
|
-
value: filtersState[column].value,
|
289
|
-
datePickerType: "range"
|
290
|
-
}), /*#__PURE__*/_react.default.createElement(_react2.DatePickerInput, (0, _extends2.default)({
|
291
|
-
placeholder: "mm/dd/yyyy",
|
292
|
-
labelText: "Start date"
|
293
|
-
}, components.DatePickerInput.start)), /*#__PURE__*/_react.default.createElement(_react2.DatePickerInput, (0, _extends2.default)({
|
294
|
-
placeholder: "mm/dd/yyyy",
|
295
|
-
labelText: "End date"
|
296
|
-
}, components.DatePickerInput.end))));
|
297
|
-
|
298
|
-
case _constants.NUMBER:
|
299
|
-
return /*#__PURE__*/_react.default.createElement(_react2.Layer, null, /*#__PURE__*/_react.default.createElement(_react2.NumberInput, (0, _extends2.default)({
|
300
|
-
step: 1,
|
301
|
-
allowEmpty: true,
|
302
|
-
hideSteppers: true
|
303
|
-
}, components.NumberInput, {
|
304
|
-
onChange: function onChange(event) {
|
305
|
-
var _components$NumberInp, _components$NumberInp2;
|
306
|
-
|
307
|
-
setFiltersState(_objectSpread(_objectSpread({}, filtersState), {}, (0, _defineProperty2.default)({}, column, {
|
308
|
-
value: event.target.value,
|
309
|
-
type: type
|
310
|
-
})));
|
311
|
-
applyFilters({
|
312
|
-
column: column,
|
313
|
-
value: event.target.value,
|
314
|
-
type: type
|
315
|
-
});
|
316
|
-
(_components$NumberInp = (_components$NumberInp2 = components.NumberInput).onChange) === null || _components$NumberInp === void 0 ? void 0 : _components$NumberInp.call(_components$NumberInp2, event);
|
317
|
-
},
|
318
|
-
value: filtersState[column].value
|
319
|
-
})));
|
320
|
-
|
321
|
-
case _constants.CHECKBOX:
|
322
|
-
return /*#__PURE__*/_react.default.createElement(_react2.FormGroup, components.FormGroup, filtersState[column].value.map(function (option) {
|
323
|
-
return /*#__PURE__*/_react.default.createElement(_react2.Checkbox, (0, _extends2.default)({
|
324
|
-
key: option.labelText
|
325
|
-
}, option, {
|
326
|
-
onChange: function onChange(_, _ref4) {
|
327
|
-
var _option$onChange;
|
328
|
-
|
329
|
-
var isSelected = _ref4.checked;
|
330
|
-
var checkboxCopy = filtersState[column].value;
|
331
|
-
var foundCheckbox = checkboxCopy.find(function (checkbox) {
|
332
|
-
return checkbox.value === option.value;
|
333
|
-
});
|
334
|
-
foundCheckbox.selected = isSelected;
|
335
|
-
setFiltersState(_objectSpread(_objectSpread({}, filtersState), {}, (0, _defineProperty2.default)({}, column, {
|
336
|
-
value: checkboxCopy,
|
337
|
-
type: type
|
338
|
-
})));
|
339
|
-
applyFilters({
|
340
|
-
column: column,
|
341
|
-
value: (0, _toConsumableArray2.default)(filtersState[column].value),
|
342
|
-
type: type
|
343
|
-
});
|
344
|
-
(_option$onChange = option.onChange) === null || _option$onChange === void 0 ? void 0 : _option$onChange.call(option, isSelected);
|
345
|
-
},
|
346
|
-
checked: option.selected
|
347
|
-
}));
|
348
|
-
}));
|
349
|
-
|
350
|
-
case _constants.RADIO:
|
351
|
-
return /*#__PURE__*/_react.default.createElement(_react2.FormGroup, components.FormGroup, /*#__PURE__*/_react.default.createElement(_react2.RadioButtonGroup, (0, _extends2.default)({}, components.RadioButtonGroup, {
|
352
|
-
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,
|
353
|
-
onChange: function onChange(selected) {
|
354
|
-
var _components$RadioButt, _components$RadioButt2;
|
355
|
-
|
356
|
-
setFiltersState(_objectSpread(_objectSpread({}, filtersState), {}, (0, _defineProperty2.default)({}, column, {
|
357
|
-
value: selected,
|
358
|
-
type: type
|
359
|
-
})));
|
360
|
-
applyFilters({
|
361
|
-
column: column,
|
362
|
-
value: selected,
|
363
|
-
type: type
|
364
|
-
});
|
365
|
-
(_components$RadioButt = (_components$RadioButt2 = components.RadioButtonGroup).onChange) === null || _components$RadioButt === void 0 ? void 0 : _components$RadioButt.call(_components$RadioButt2, selected);
|
366
|
-
}
|
367
|
-
}), /*#__PURE__*/_react.default.createElement(_react2.RadioButton, {
|
368
|
-
id: "any",
|
369
|
-
labelText: "Any",
|
370
|
-
value: "Any"
|
371
|
-
}), components.RadioButton.map(function (radio) {
|
372
|
-
var _ref5, _radio$id;
|
373
|
-
|
374
|
-
return /*#__PURE__*/_react.default.createElement(_react2.RadioButton, (0, _extends2.default)({
|
375
|
-
key: (_ref5 = (_radio$id = radio.id) !== null && _radio$id !== void 0 ? _radio$id : radio.labelText) !== null && _ref5 !== void 0 ? _ref5 : radio.value
|
376
|
-
}, radio));
|
377
|
-
})));
|
378
|
-
|
379
|
-
case _constants.DROPDOWN:
|
380
|
-
return /*#__PURE__*/_react.default.createElement(_react2.Layer, null, /*#__PURE__*/_react.default.createElement(_react2.Dropdown, (0, _extends2.default)({}, components.Dropdown, {
|
381
|
-
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,
|
382
|
-
items: ['Any'].concat((0, _toConsumableArray2.default)(components.Dropdown.items)),
|
383
|
-
onChange: function onChange(_ref6) {
|
384
|
-
var _components$Dropdown$, _components$Dropdown;
|
385
|
-
|
386
|
-
var selectedItem = _ref6.selectedItem;
|
387
|
-
setFiltersState(_objectSpread(_objectSpread({}, filtersState), {}, (0, _defineProperty2.default)({}, column, {
|
388
|
-
value: selectedItem,
|
389
|
-
type: type
|
390
|
-
})));
|
391
|
-
applyFilters({
|
392
|
-
column: column,
|
393
|
-
value: selectedItem,
|
394
|
-
type: type
|
395
|
-
});
|
396
|
-
(_components$Dropdown$ = (_components$Dropdown = components.Dropdown).onChange) === null || _components$Dropdown$ === void 0 ? void 0 : _components$Dropdown$.call(_components$Dropdown, selectedItem);
|
397
|
-
}
|
398
|
-
})));
|
399
|
-
}
|
400
|
-
};
|
401
|
-
|
402
165
|
var renderActionSet = function renderActionSet() {
|
403
166
|
return showActionSet && /*#__PURE__*/_react.default.createElement(MotionActionSet, {
|
404
167
|
actions: [{
|
@@ -431,12 +194,12 @@ var FilterPanel = function FilterPanel(_ref) {
|
|
431
194
|
|
432
195
|
|
433
196
|
(0, _react.useEffect)(function liftOpenStateToParent() {
|
434
|
-
if (
|
435
|
-
onPanelOpen(
|
197
|
+
if (panelOpen) {
|
198
|
+
onPanelOpen(panelOpen);
|
436
199
|
} else {
|
437
|
-
onPanelClose(
|
200
|
+
onPanelClose(panelOpen);
|
438
201
|
}
|
439
|
-
}, [
|
202
|
+
}, [panelOpen, onPanelClose, onPanelOpen]);
|
440
203
|
(0, _react.useEffect)(function setPanelMinimumHeight() {
|
441
204
|
var _filterPanelRef$curre;
|
442
205
|
|
@@ -456,9 +219,9 @@ var FilterPanel = function FilterPanel(_ref) {
|
|
456
219
|
|
457
220
|
return /*#__PURE__*/_react.default.createElement(_framerMotion.motion.div, {
|
458
221
|
ref: filterPanelRef,
|
459
|
-
className: (0, _classnames.default)(componentClass, "".concat(componentClass, "__container"), (_cx = {}, (0, _defineProperty2.default)(_cx, "".concat(componentClass, "--open"),
|
222
|
+
className: (0, _classnames.default)(componentClass, "".concat(componentClass, "__container"), (_cx = {}, (0, _defineProperty2.default)(_cx, "".concat(componentClass, "--open"), panelOpen), (0, _defineProperty2.default)(_cx, "".concat(componentClass, "--batch"), showActionSet), (0, _defineProperty2.default)(_cx, "".concat(componentClass, "--instant"), !showActionSet), _cx)),
|
460
223
|
initial: false,
|
461
|
-
animate:
|
224
|
+
animate: panelOpen ? 'visible' : 'hidden',
|
462
225
|
variants: _variants.panelVariants
|
463
226
|
}, /*#__PURE__*/_react.default.createElement(_framerMotion.motion.div, {
|
464
227
|
variants: _variants.innerContainerVariants
|
@@ -492,25 +255,25 @@ var FilterPanel = function FilterPanel(_ref) {
|
|
492
255
|
height: getScrollableContainerHeight()
|
493
256
|
},
|
494
257
|
onScroll: onInnerContainerScroll
|
495
|
-
}, filterSections.map(function (
|
496
|
-
var
|
497
|
-
categoryTitle =
|
498
|
-
|
499
|
-
filters =
|
500
|
-
hasAccordion =
|
258
|
+
}, filterSections.map(function (_ref2) {
|
259
|
+
var _ref2$categoryTitle = _ref2.categoryTitle,
|
260
|
+
categoryTitle = _ref2$categoryTitle === void 0 ? null : _ref2$categoryTitle,
|
261
|
+
_ref2$filters = _ref2.filters,
|
262
|
+
filters = _ref2$filters === void 0 ? [] : _ref2$filters,
|
263
|
+
hasAccordion = _ref2.hasAccordion;
|
501
264
|
return /*#__PURE__*/_react.default.createElement("div", {
|
502
265
|
className: "".concat(componentClass, "__category")
|
503
266
|
}, categoryTitle && /*#__PURE__*/_react.default.createElement("div", {
|
504
267
|
className: "".concat(componentClass, "__category-title")
|
505
|
-
}, categoryTitle), hasAccordion ? /*#__PURE__*/_react.default.createElement(_react2.Accordion, null, filters.map(function (
|
506
|
-
var filterLabel =
|
507
|
-
filter =
|
268
|
+
}, categoryTitle), hasAccordion ? /*#__PURE__*/_react.default.createElement(_react2.Accordion, null, filters.map(function (_ref3) {
|
269
|
+
var filterLabel = _ref3.filterLabel,
|
270
|
+
filter = _ref3.filter;
|
508
271
|
return /*#__PURE__*/_react.default.createElement(_react2.AccordionItem, {
|
509
272
|
title: filterLabel,
|
510
273
|
key: filterLabel
|
511
274
|
}, renderFilter(filter));
|
512
|
-
})) : filters.map(function (
|
513
|
-
var filter =
|
275
|
+
})) : filters.map(function (_ref4) {
|
276
|
+
var filter = _ref4.filter;
|
514
277
|
return renderFilter(filter);
|
515
278
|
}));
|
516
279
|
})), renderActionSet()));
|
@@ -91,14 +91,14 @@ var FilterProvider = function FilterProvider(_ref2) {
|
|
91
91
|
|
92
92
|
var _useState = (0, _react.useState)(false),
|
93
93
|
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
94
|
-
|
95
|
-
|
94
|
+
panelOpen = _useState2[0],
|
95
|
+
setPanelOpen = _useState2[1];
|
96
96
|
|
97
97
|
var value = {
|
98
98
|
filterTags: filterTags,
|
99
99
|
EventEmitter: EventEmitter,
|
100
|
-
|
101
|
-
|
100
|
+
panelOpen: panelOpen,
|
101
|
+
setPanelOpen: setPanelOpen
|
102
102
|
};
|
103
103
|
return /*#__PURE__*/_react.default.createElement(FilterContext.Provider, {
|
104
104
|
value: value
|
@@ -5,6 +5,12 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
6
6
|
value: true
|
7
7
|
});
|
8
|
+
Object.defineProperty(exports, "useFilters", {
|
9
|
+
enumerable: true,
|
10
|
+
get: function get() {
|
11
|
+
return _useFilters.default;
|
12
|
+
}
|
13
|
+
});
|
8
14
|
Object.defineProperty(exports, "useInitialStateFromFilters", {
|
9
15
|
enumerable: true,
|
10
16
|
get: function get() {
|
@@ -28,4 +34,6 @@ var _useInitialStateFromFilters = _interopRequireDefault(require("./useInitialSt
|
|
28
34
|
|
29
35
|
var _useSubscribeToEventEmitter = _interopRequireDefault(require("./useSubscribeToEventEmitter"));
|
30
36
|
|
37
|
+
var _useFilters = _interopRequireDefault(require("./useFilters"));
|
38
|
+
|
31
39
|
var _useShouldDisableButtons = _interopRequireDefault(require("./useShouldDisableButtons"));
|