@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.
- package/css/index-full-carbon.css +71 -221
- package/css/index-full-carbon.css.map +1 -1
- package/css/index-full-carbon.min.css +3 -5
- package/css/index-full-carbon.min.css.map +1 -1
- package/css/index-without-carbon-released-only.css +142 -189
- package/css/index-without-carbon-released-only.css.map +1 -1
- package/css/index-without-carbon-released-only.min.css +1 -3
- package/css/index-without-carbon-released-only.min.css.map +1 -1
- package/css/index-without-carbon.css +71 -221
- package/css/index-without-carbon.css.map +1 -1
- package/css/index-without-carbon.min.css +3 -5
- package/css/index-without-carbon.min.css.map +1 -1
- package/css/index.css +71 -221
- package/css/index.css.map +1 -1
- package/css/index.min.css +3 -5
- package/css/index.min.css.map +1 -1
- package/es/components/AboutModal/AboutModal.js +3 -4
- package/es/components/ActionBar/ActionBar.js +13 -29
- package/es/components/BreadcrumbWithOverflow/BreadcrumbWithOverflow.js +15 -21
- package/es/components/ButtonSetWithOverflow/ButtonSetWithOverflow.js +7 -11
- package/es/components/Datagrid/Datagrid/DatagridSelectAllWithToggle.js +7 -8
- package/es/components/Datagrid/Datagrid/DatagridToolbar.js +6 -5
- package/es/components/Datagrid/Datagrid/DatagridVirtualBody.js +3 -4
- package/es/components/Datagrid/Datagrid/addons/Filtering/FilterFlyout.js +17 -3
- package/es/components/Datagrid/Datagrid/addons/Filtering/FilterPanel.js +19 -4
- package/es/components/Datagrid/Datagrid/addons/Filtering/hooks/useFilters.js +8 -5
- package/es/components/Datagrid/Datagrid/addons/Filtering/hooks/useInitialStateFromFilters.js +2 -1
- package/es/components/Datagrid/Datagrid/addons/Filtering/utils.js +19 -1
- package/es/components/Datagrid/useFiltering.js +4 -2
- package/es/components/Datagrid/useOnRowClick.js +11 -1
- package/es/components/Datagrid/useSelectRows.js +2 -0
- package/es/components/{InlineEditV2/InlineEditV2.js → EditInPlace/EditInPlace.js} +92 -30
- package/es/components/{InlineEdit → EditInPlace}/index.js +1 -1
- package/es/components/PageHeader/PageHeader.js +36 -35
- package/es/components/PageHeader/PageHeaderTitle.js +18 -18
- package/es/components/SidePanel/SidePanel.js +25 -26
- package/es/components/TagSet/TagSet.js +5 -7
- package/es/components/Tearsheet/TearsheetShell.js +4 -6
- package/es/components/index.js +1 -1
- package/es/global/js/hooks/useResizeObserver.js +79 -0
- package/es/global/js/hooks/useWindowResize.js +6 -0
- package/es/global/js/hooks/useWindowScroll.js +7 -0
- package/es/global/js/package-settings.js +2 -4
- package/lib/components/AboutModal/AboutModal.js +3 -4
- package/lib/components/ActionBar/ActionBar.js +13 -29
- package/lib/components/BreadcrumbWithOverflow/BreadcrumbWithOverflow.js +13 -19
- package/lib/components/ButtonSetWithOverflow/ButtonSetWithOverflow.js +7 -11
- package/lib/components/Datagrid/Datagrid/DatagridSelectAllWithToggle.js +2 -1
- package/lib/components/Datagrid/Datagrid/DatagridToolbar.js +5 -4
- package/lib/components/Datagrid/Datagrid/DatagridVirtualBody.js +3 -4
- package/lib/components/Datagrid/Datagrid/addons/Filtering/FilterFlyout.js +17 -3
- package/lib/components/Datagrid/Datagrid/addons/Filtering/FilterPanel.js +19 -4
- package/lib/components/Datagrid/Datagrid/addons/Filtering/hooks/useFilters.js +8 -5
- package/lib/components/Datagrid/Datagrid/addons/Filtering/hooks/useInitialStateFromFilters.js +2 -1
- package/lib/components/Datagrid/Datagrid/addons/Filtering/utils.js +18 -1
- package/lib/components/Datagrid/useFiltering.js +4 -2
- package/lib/components/Datagrid/useOnRowClick.js +11 -1
- package/lib/components/Datagrid/useSelectRows.js +2 -0
- package/lib/components/{InlineEditV2/InlineEditV2.js → EditInPlace/EditInPlace.js} +100 -34
- package/lib/components/{InlineEdit → EditInPlace}/index.js +3 -3
- package/lib/components/PageHeader/PageHeader.js +36 -35
- package/lib/components/PageHeader/PageHeaderTitle.js +19 -19
- package/lib/components/SidePanel/SidePanel.js +25 -26
- package/lib/components/TagSet/TagSet.js +5 -7
- package/lib/components/Tearsheet/TearsheetShell.js +4 -6
- package/lib/components/index.js +7 -7
- package/lib/global/js/hooks/useResizeObserver.js +91 -0
- package/lib/global/js/hooks/useWindowScroll.js +6 -0
- package/lib/global/js/package-settings.js +2 -4
- package/package.json +3 -4
- package/scss/components/BreadcrumbWithOverflow/_breadcrumb-with-overflow.scss +10 -1
- package/scss/components/Datagrid/styles/_useSelectAllToggle.scss +11 -7
- package/scss/components/{InlineEditV2/_inline-edit-v2.scss → EditInPlace/_edit-in-place.scss} +56 -14
- package/scss/components/{InlineEditV1 → EditInPlace}/_index-with-carbon.scss +1 -1
- package/scss/components/{InlineEditV2 → EditInPlace}/_index.scss +1 -1
- package/scss/components/{InlineEditV1 → EditInPlace}/_storybook-styles.scss +3 -15
- package/scss/components/PageHeader/_page-header.scss +1 -7
- package/scss/components/_index-released-only-with-carbon.scss +1 -1
- package/scss/components/_index-released-only.scss +1 -1
- package/scss/components/_index-with-carbon.scss +1 -2
- package/scss/components/_index.scss +1 -2
- package/es/components/InlineEdit/InlineEdit.js +0 -47
- package/es/components/InlineEditV1/InlineEditV1.js +0 -442
- package/es/components/InlineEditV1/index.js +0 -7
- package/es/components/InlineEditV2/index.js +0 -7
- package/lib/components/InlineEdit/InlineEdit.js +0 -63
- package/lib/components/InlineEditV1/InlineEditV1.js +0 -459
- package/lib/components/InlineEditV1/index.js +0 -13
- package/lib/components/InlineEditV2/index.js +0 -13
- package/scss/components/InlineEditV1/_carbon-imports.scss +0 -6
- package/scss/components/InlineEditV1/_index.scss +0 -8
- package/scss/components/InlineEditV1/_inline-edit-v1.scss +0 -269
- package/scss/components/InlineEditV2/_index-with-carbon.scss +0 -9
- package/scss/components/InlineEditV2/_storybook-styles.scss +0 -9
- /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
|
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)({});
|
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:
|
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
|
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
|
-
|
296
|
-
|
297
|
-
|
298
|
-
});
|
299
|
-
|
300
|
-
|
301
|
-
|
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
|
-
|
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
|
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,
|
176
|
-
|
177
|
-
targetRef: sizingContainerRefSet
|
175
|
+
(0, _useResizeObserver.useResizeObserver)(sizingContainerRefSet, {
|
176
|
+
callback: checkFullyVisibleItems
|
178
177
|
});
|
179
|
-
(0,
|
180
|
-
|
181
|
-
targetRef: sizingContainerRefCombo
|
178
|
+
(0, _useResizeObserver.useResizeObserver)(sizingContainerRefCombo, {
|
179
|
+
callback: checkFullyVisibleItems
|
182
180
|
});
|
183
|
-
(0,
|
184
|
-
|
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
|
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
|
161
|
-
|
162
|
-
|
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
|
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,
|
77
|
-
|
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
|
-
//
|
70
|
-
var
|
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);
|
package/lib/components/Datagrid/Datagrid/addons/Filtering/hooks/useInitialStateFromFilters.js
CHANGED
@@ -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
|
-
|
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"),
|