@carbon/ibm-products 2.26.0 → 2.27.0
Sign up to get free protection for your applications and to get access to all the features.
- package/css/index-full-carbon.css +517 -56
- package/css/index-full-carbon.css.map +1 -1
- package/css/index-full-carbon.min.css +1 -1
- package/css/index-full-carbon.min.css.map +1 -1
- package/css/index-without-carbon-released-only.css +32 -14
- package/css/index-without-carbon-released-only.css.map +1 -1
- package/css/index-without-carbon-released-only.min.css +1 -1
- package/css/index-without-carbon-released-only.min.css.map +1 -1
- package/css/index-without-carbon.css +517 -56
- package/css/index-without-carbon.css.map +1 -1
- package/css/index-without-carbon.min.css +1 -1
- package/css/index-without-carbon.min.css.map +1 -1
- package/css/index.css +488 -48
- package/css/index.css.map +1 -1
- package/css/index.min.css +1 -1
- package/css/index.min.css.map +1 -1
- package/es/components/BigNumbers/BigNumbers.d.ts +11 -0
- package/es/components/BigNumbers/BigNumbers.js +238 -0
- package/es/components/BigNumbers/constants.d.ts +13 -0
- package/es/components/BigNumbers/constants.js +67 -0
- package/es/components/BigNumbers/index.d.ts +1 -0
- package/es/components/DataSpreadsheet/DataSpreadsheetBody.js +4 -3
- package/es/components/DataSpreadsheet/DataSpreadsheetHeader.js +3 -2
- package/es/components/DataSpreadsheet/utils/checkForHoldingKey.d.ts +1 -0
- package/es/components/DataSpreadsheet/utils/checkForHoldingKey.js +17 -0
- package/es/components/Datagrid/Datagrid/Datagrid.js +9 -2
- package/es/components/Datagrid/Datagrid/DatagridContent.d.ts +3 -1
- package/es/components/Datagrid/Datagrid/DatagridContent.js +6 -2
- package/es/components/Datagrid/Datagrid/DatagridHeaderRow.js +8 -4
- package/es/components/Datagrid/Datagrid/DatagridToolbar.d.ts +10 -1
- package/es/components/Datagrid/Datagrid/DatagridToolbar.js +21 -4
- package/es/components/Datagrid/Datagrid/addons/Filtering/FilterProvider.js +32 -9
- package/es/components/Datagrid/Datagrid/addons/Filtering/constants.d.ts +3 -1
- package/es/components/Datagrid/Datagrid/addons/Filtering/constants.js +4 -1
- package/es/components/Datagrid/Datagrid/addons/Filtering/hooks/useFilters.js +35 -3
- package/es/components/Datagrid/Datagrid/addons/stateReducer.js +1 -1
- package/es/components/Datagrid/useSelectAllToggle.js +5 -3
- package/es/components/SidePanel/SidePanel.js +13 -6
- package/es/components/SidePanel/motion/variants.d.ts +39 -12
- package/es/components/SidePanel/motion/variants.js +42 -11
- package/es/components/StringFormatter/StringFormatter.d.ts +6 -0
- package/es/components/StringFormatter/StringFormatter.js +79 -0
- package/es/components/StringFormatter/index.d.ts +1 -0
- package/es/components/StringFormatter/utils/enums.d.ts +14 -0
- package/es/components/StringFormatter/utils/enums.js +23 -0
- package/es/components/Tearsheet/TearsheetShell.js +10 -4
- package/es/components/UserAvatar/UserAvatar.js +58 -42
- package/es/components/index.d.ts +2 -0
- package/es/global/js/hooks/index.d.ts +1 -0
- package/es/global/js/hooks/useIsomorphicEffect.d.ts +2 -0
- package/es/global/js/hooks/useIsomorphicEffect.js +14 -0
- package/es/global/js/package-settings.d.ts +2 -0
- package/es/global/js/package-settings.js +2 -0
- package/es/index.js +2 -0
- package/es/settings.d.ts +2 -0
- package/lib/components/BigNumbers/BigNumbers.d.ts +11 -0
- package/lib/components/BigNumbers/BigNumbers.js +244 -0
- package/lib/components/BigNumbers/constants.d.ts +13 -0
- package/lib/components/BigNumbers/constants.js +76 -0
- package/lib/components/BigNumbers/index.d.ts +1 -0
- package/lib/components/DataSpreadsheet/DataSpreadsheetBody.js +4 -3
- package/lib/components/DataSpreadsheet/DataSpreadsheetHeader.js +3 -2
- package/lib/components/DataSpreadsheet/utils/checkForHoldingKey.d.ts +1 -0
- package/lib/components/DataSpreadsheet/utils/checkForHoldingKey.js +21 -0
- package/lib/components/Datagrid/Datagrid/Datagrid.js +9 -2
- package/lib/components/Datagrid/Datagrid/DatagridContent.d.ts +3 -1
- package/lib/components/Datagrid/Datagrid/DatagridContent.js +6 -2
- package/lib/components/Datagrid/Datagrid/DatagridHeaderRow.js +8 -4
- package/lib/components/Datagrid/Datagrid/DatagridToolbar.d.ts +10 -1
- package/lib/components/Datagrid/Datagrid/DatagridToolbar.js +20 -3
- package/lib/components/Datagrid/Datagrid/addons/Filtering/FilterProvider.js +30 -7
- package/lib/components/Datagrid/Datagrid/addons/Filtering/constants.d.ts +3 -1
- package/lib/components/Datagrid/Datagrid/addons/Filtering/constants.js +4 -0
- package/lib/components/Datagrid/Datagrid/addons/Filtering/hooks/useFilters.js +33 -1
- package/lib/components/Datagrid/Datagrid/addons/stateReducer.js +1 -1
- package/lib/components/Datagrid/useSelectAllToggle.js +4 -2
- package/lib/components/SidePanel/SidePanel.js +11 -4
- package/lib/components/SidePanel/motion/variants.d.ts +39 -12
- package/lib/components/SidePanel/motion/variants.js +42 -10
- package/lib/components/StringFormatter/StringFormatter.d.ts +6 -0
- package/lib/components/StringFormatter/StringFormatter.js +85 -0
- package/lib/components/StringFormatter/index.d.ts +1 -0
- package/lib/components/StringFormatter/utils/enums.d.ts +14 -0
- package/lib/components/StringFormatter/utils/enums.js +27 -0
- package/lib/components/Tearsheet/TearsheetShell.js +10 -4
- package/lib/components/UserAvatar/UserAvatar.js +58 -42
- package/lib/components/index.d.ts +2 -0
- package/lib/global/js/hooks/index.d.ts +1 -0
- package/lib/global/js/hooks/useIsomorphicEffect.d.ts +2 -0
- package/lib/global/js/hooks/useIsomorphicEffect.js +18 -0
- package/lib/global/js/package-settings.d.ts +2 -0
- package/lib/global/js/package-settings.js +2 -0
- package/lib/index.js +10 -0
- package/lib/settings.d.ts +2 -0
- package/package.json +7 -7
- package/scss/components/BigNumbers/_big-numbers.scss +151 -0
- package/scss/components/BigNumbers/_carbon-imports.scss +11 -0
- package/scss/components/BigNumbers/_index-with-carbon.scss +9 -0
- package/scss/components/BigNumbers/_index.scss +8 -0
- package/scss/components/FullPageError/_full-page-error.scss +2 -2
- package/scss/components/SidePanel/_side-panel.scss +1 -1
- package/scss/components/StringFormatter/_carbon-imports.scss +10 -0
- package/scss/components/StringFormatter/_index-with-carbon.scss +9 -0
- package/scss/components/StringFormatter/_index.scss +8 -0
- package/scss/components/StringFormatter/_string-formatter.scss +97 -0
- package/scss/components/Tearsheet/_tearsheet.scss +34 -2
- package/scss/components/UserAvatar/_user-avatar.scss +40 -0
- package/scss/components/_index-with-carbon.scss +2 -0
- package/scss/components/_index.scss +2 -0
@@ -0,0 +1,21 @@
|
|
1
|
+
/**
|
2
|
+
* Copyright IBM Corp. 2020, 2024
|
3
|
+
*
|
4
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
6
|
+
*/
|
7
|
+
|
8
|
+
'use strict';
|
9
|
+
|
10
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
11
|
+
|
12
|
+
var checkForHoldingKey = function checkForHoldingKey(event, key) {
|
13
|
+
// possible key inputs: altKey,ctrlKey,metaKey,shiftKey
|
14
|
+
if (key == 'cmd') {
|
15
|
+
return event.metaKey || event.ctrlKey;
|
16
|
+
} else {
|
17
|
+
return event[key];
|
18
|
+
}
|
19
|
+
};
|
20
|
+
|
21
|
+
exports.checkForHoldingKey = checkForHoldingKey;
|
@@ -24,7 +24,7 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau
|
|
24
24
|
|
25
25
|
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
26
26
|
|
27
|
-
var _excluded = ["datagridState", "title"];
|
27
|
+
var _excluded = ["datagridState", "title", "ariaToolbarLabel"];
|
28
28
|
var blockClass = "".concat(settings.pkg.prefix, "--datagrid");
|
29
29
|
var componentName = 'Datagrid';
|
30
30
|
|
@@ -34,6 +34,7 @@ var componentName = 'Datagrid';
|
|
34
34
|
exports.Datagrid = /*#__PURE__*/React__default["default"].forwardRef(function (_ref, ref) {
|
35
35
|
var datagridState = _ref.datagridState,
|
36
36
|
title = _ref.title,
|
37
|
+
ariaToolbarLabel = _ref.ariaToolbarLabel,
|
37
38
|
rest = _rollupPluginBabelHelpers.objectWithoutProperties(_ref, _excluded);
|
38
39
|
if (!datagridState) {
|
39
40
|
pconsole["default"].warn('Datagrid was not passed datagridState which is required to render this component.');
|
@@ -49,7 +50,8 @@ exports.Datagrid = /*#__PURE__*/React__default["default"].forwardRef(function (_
|
|
49
50
|
var rows = DatagridPagination && datagridState.page || datagridState.rows;
|
50
51
|
var props = {
|
51
52
|
title: title,
|
52
|
-
datagridState: datagridState
|
53
|
+
datagridState: datagridState,
|
54
|
+
ariaToolbarLabel: ariaToolbarLabel
|
53
55
|
};
|
54
56
|
return /*#__PURE__*/React__default["default"].createElement(FilterProvider.FilterProvider, {
|
55
57
|
filters: filters,
|
@@ -70,6 +72,11 @@ exports.Datagrid = settings.pkg.checkComponentEnabled(exports.Datagrid, componen
|
|
70
72
|
// is used in preference to relying on function.name.
|
71
73
|
exports.Datagrid.displayName = componentName;
|
72
74
|
exports.Datagrid.propTypes = {
|
75
|
+
/**
|
76
|
+
* Specify a label to be read by screen readers on the container node
|
77
|
+
* 'aria-label' of the TableToolbar component.
|
78
|
+
*/
|
79
|
+
ariaToolbarLabel: index$1["default"].string,
|
73
80
|
/**
|
74
81
|
* The data grid state, much of it being supplied by the useDatagrid hook
|
75
82
|
*/
|
@@ -1,9 +1,11 @@
|
|
1
|
-
export function DatagridContent({ datagridState, title }: {
|
1
|
+
export function DatagridContent({ datagridState, title, ariaToolbarLabel }: {
|
2
2
|
datagridState: any;
|
3
3
|
title: any;
|
4
|
+
ariaToolbarLabel: any;
|
4
5
|
}): import("react/jsx-runtime").JSX.Element;
|
5
6
|
export namespace DatagridContent {
|
6
7
|
namespace propTypes {
|
8
|
+
let ariaToolbarLabel: PropTypes.Requireable<string>;
|
7
9
|
let datagridState: PropTypes.Requireable<PropTypes.InferProps<{
|
8
10
|
getTableProps: PropTypes.Requireable<(...args: any[]) => any>;
|
9
11
|
getFilterFlyoutProps: PropTypes.Requireable<(...args: any[]) => any>;
|
@@ -38,7 +38,8 @@ var blockClass = "".concat(settings.pkg.prefix, "--datagrid");
|
|
38
38
|
var gcClass = "".concat(blockClass, "__grid-container");
|
39
39
|
var DatagridContent = function DatagridContent(_ref) {
|
40
40
|
var datagridState = _ref.datagridState,
|
41
|
-
title = _ref.title
|
41
|
+
title = _ref.title,
|
42
|
+
ariaToolbarLabel = _ref.ariaToolbarLabel;
|
42
43
|
var _useContext = React.useContext(InlineEditContext.InlineEditContext),
|
43
44
|
inlineEditState = _useContext.state,
|
44
45
|
dispatch = _useContext.dispatch;
|
@@ -159,7 +160,9 @@ var DatagridContent = function DatagridContent(_ref) {
|
|
159
160
|
className: index["default"]("".concat(gcClass), _rollupPluginBabelHelpers.defineProperty(_rollupPluginBabelHelpers.defineProperty(_rollupPluginBabelHelpers.defineProperty(_rollupPluginBabelHelpers.defineProperty(_rollupPluginBabelHelpers.defineProperty(_rollupPluginBabelHelpers.defineProperty({}, "".concat(gcClass, "-active"), gridActive), "".concat(gcClass, "-active--without-toolbar"), withInlineEdit && !DatagridActions), "".concat(gcClass, "-inline-edit"), withInlineEdit), "".concat(blockClass, "__full-height"), withVirtualScroll || fullHeightDatagrid), "".concat(blockClass, "__with-pagination"), DatagridPagination), "".concat(blockClass, "__dense-header"), useDenseHeader)),
|
160
161
|
title: gridTitle,
|
161
162
|
description: gridDescription
|
162
|
-
}, /*#__PURE__*/React__default["default"].createElement(DatagridToolbar["default"],
|
163
|
+
}, /*#__PURE__*/React__default["default"].createElement(DatagridToolbar["default"], _rollupPluginBabelHelpers["extends"]({}, datagridState, {
|
164
|
+
ariaToolbarLabel: ariaToolbarLabel
|
165
|
+
})), /*#__PURE__*/React__default["default"].createElement("div", {
|
163
166
|
className: index["default"]("".concat(blockClass, "__table-container"), _rollupPluginBabelHelpers.defineProperty({}, "".concat(blockClass, "__table-container--filter-open"), panelOpen)),
|
164
167
|
ref: gridAreaRef
|
165
168
|
}, (filterProps === null || filterProps === void 0 ? void 0 : filterProps.variation) === 'panel' && /*#__PURE__*/React__default["default"].createElement(FilterPanel["default"], _rollupPluginBabelHelpers["extends"]({}, getFilterFlyoutProps(), {
|
@@ -179,6 +182,7 @@ var DatagridContent = function DatagridContent(_ref) {
|
|
179
182
|
}));
|
180
183
|
};
|
181
184
|
DatagridContent.propTypes = {
|
185
|
+
ariaToolbarLabel: index$1["default"].string,
|
182
186
|
datagridState: index$1["default"].shape({
|
183
187
|
getTableProps: index$1["default"].func,
|
184
188
|
getFilterFlyoutProps: index$1["default"].func,
|
@@ -50,7 +50,8 @@ var ResizeHeader = function ResizeHeader(_ref) {
|
|
50
50
|
minWidth = _ref.minWidth,
|
51
51
|
dispatch = _ref.dispatch,
|
52
52
|
onColResizeEnd = _ref.onColResizeEnd,
|
53
|
-
resizerAriaLabel = _ref.resizerAriaLabel
|
53
|
+
resizerAriaLabel = _ref.resizerAriaLabel,
|
54
|
+
isFetching = _ref.isFetching;
|
54
55
|
// eslint-disable-next-line no-unused-vars
|
55
56
|
resizerProps.role;
|
56
57
|
var headerProps = _rollupPluginBabelHelpers.objectWithoutProperties(resizerProps, _excluded);
|
@@ -88,7 +89,8 @@ var ResizeHeader = function ResizeHeader(_ref) {
|
|
88
89
|
className: "".concat(blockClass, "__col-resizer-range"),
|
89
90
|
type: "range",
|
90
91
|
defaultValue: originalCol.width,
|
91
|
-
"aria-label": resizerAriaLabel || 'Resize column'
|
92
|
+
"aria-label": resizerAriaLabel || 'Resize column',
|
93
|
+
disabled: isFetching
|
92
94
|
})), /*#__PURE__*/React__default["default"].createElement("span", {
|
93
95
|
className: "".concat(blockClass, "__col-resize-indicator")
|
94
96
|
}));
|
@@ -96,7 +98,8 @@ var ResizeHeader = function ResizeHeader(_ref) {
|
|
96
98
|
var HeaderRow = function HeaderRow(datagridState, headRef, headerGroup) {
|
97
99
|
var resizerAriaLabel = datagridState.resizerAriaLabel,
|
98
100
|
isTableSortable = datagridState.isTableSortable,
|
99
|
-
rows = datagridState.rows
|
101
|
+
rows = datagridState.rows,
|
102
|
+
isFetching = datagridState.isFetching;
|
100
103
|
// Used to measure the height of the table and uses that value
|
101
104
|
// to display a vertical line to indicate the column you are resizing
|
102
105
|
React.useEffect(function () {
|
@@ -197,7 +200,8 @@ var HeaderRow = function HeaderRow(datagridState, headRef, headerGroup) {
|
|
197
200
|
minWidth: minWidth,
|
198
201
|
dispatch: dispatch,
|
199
202
|
onColResizeEnd: onColResizeEnd,
|
200
|
-
resizerAriaLabel: resizerAriaLabel
|
203
|
+
resizerAriaLabel: resizerAriaLabel,
|
204
|
+
isFetching: isFetching
|
201
205
|
}));
|
202
206
|
}));
|
203
207
|
};
|
@@ -1,2 +1,11 @@
|
|
1
1
|
export default DatagridToolbar;
|
2
|
-
declare function DatagridToolbar(datagridState
|
2
|
+
declare function DatagridToolbar({ ariaToolbarLabel, ...datagridState }: {
|
3
|
+
[x: string]: any;
|
4
|
+
ariaToolbarLabel: any;
|
5
|
+
}): import("react/jsx-runtime").JSX.Element | null;
|
6
|
+
declare namespace DatagridToolbar {
|
7
|
+
namespace propTypes {
|
8
|
+
let ariaToolbarLabel: PropTypes.Requireable<string>;
|
9
|
+
}
|
10
|
+
}
|
11
|
+
import PropTypes from 'prop-types';
|
@@ -11,6 +11,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
11
11
|
|
12
12
|
var _rollupPluginBabelHelpers = require('../../../_virtual/_rollupPluginBabelHelpers.js');
|
13
13
|
var React = require('react');
|
14
|
+
var index$1 = require('../../../node_modules/prop-types/index.js');
|
14
15
|
var react = require('@carbon/react');
|
15
16
|
var useResizeObserver = require('../../../global/js/hooks/useResizeObserver.js');
|
16
17
|
var settings = require('../../../settings.js');
|
@@ -21,6 +22,7 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau
|
|
21
22
|
|
22
23
|
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
23
24
|
|
25
|
+
var _excluded = ["ariaToolbarLabel"];
|
24
26
|
var blockClass = "".concat(settings.pkg.prefix, "--datagrid__table-toolbar");
|
25
27
|
var DatagridBatchActionsToolbar = function DatagridBatchActionsToolbar(datagridState, width, ref) {
|
26
28
|
var _useState = React.useState(false),
|
@@ -115,6 +117,12 @@ var DatagridBatchActionsToolbar = function DatagridBatchActionsToolbar(datagridS
|
|
115
117
|
}
|
116
118
|
};
|
117
119
|
var onCancelHandler = function onCancelHandler() {
|
120
|
+
stateReducer.handleSelectAllRowData({
|
121
|
+
dispatch: dispatch,
|
122
|
+
rows: [],
|
123
|
+
getRowId: getRowId,
|
124
|
+
isChecked: false
|
125
|
+
});
|
118
126
|
toggleAllRowsSelected(false);
|
119
127
|
setGlobalFilter(null);
|
120
128
|
};
|
@@ -152,7 +160,9 @@ var DatagridBatchActionsToolbar = function DatagridBatchActionsToolbar(datagridS
|
|
152
160
|
}
|
153
161
|
})), renderBatchActionOverflow());
|
154
162
|
};
|
155
|
-
var DatagridToolbar = function DatagridToolbar(
|
163
|
+
var DatagridToolbar = function DatagridToolbar(_ref2) {
|
164
|
+
var ariaToolbarLabel = _ref2.ariaToolbarLabel,
|
165
|
+
datagridState = _rollupPluginBabelHelpers.objectWithoutProperties(_ref2, _excluded);
|
156
166
|
var ref = React.useRef(null);
|
157
167
|
var _useResizeObserver = useResizeObserver.useResizeObserver(ref),
|
158
168
|
width = _useResizeObserver.width;
|
@@ -164,9 +174,16 @@ var DatagridToolbar = function DatagridToolbar(datagridState) {
|
|
164
174
|
return batchActions && DatagridActions ? /*#__PURE__*/React__default["default"].createElement("div", {
|
165
175
|
ref: ref,
|
166
176
|
className: index["default"]([blockClass, "".concat(blockClass, "--").concat(getRowHeight)])
|
167
|
-
}, /*#__PURE__*/React__default["default"].createElement(react.TableToolbar,
|
177
|
+
}, /*#__PURE__*/React__default["default"].createElement(react.TableToolbar, {
|
178
|
+
"aria-label": ariaToolbarLabel
|
179
|
+
}, DatagridActions && /*#__PURE__*/React__default["default"].createElement(DatagridActions, datagridState), DatagridBatchActionsToolbar && DatagridBatchActionsToolbar(datagridState, width, ref))) : DatagridActions ? /*#__PURE__*/React__default["default"].createElement("div", {
|
168
180
|
className: blockClass
|
169
|
-
}, /*#__PURE__*/React__default["default"].createElement(react.TableToolbar,
|
181
|
+
}, /*#__PURE__*/React__default["default"].createElement(react.TableToolbar, {
|
182
|
+
"aria-label": ariaToolbarLabel
|
183
|
+
}, DatagridActions && /*#__PURE__*/React__default["default"].createElement(DatagridActions, datagridState), DatagridBatchActions && DatagridBatchActions(datagridState))) : null;
|
184
|
+
};
|
185
|
+
DatagridToolbar.propTypes = {
|
186
|
+
ariaToolbarLabel: index$1["default"].string
|
170
187
|
};
|
171
188
|
var DatagridToolbar$1 = DatagridToolbar;
|
172
189
|
|
@@ -147,22 +147,45 @@ var prepareFiltersForTags = function prepareFiltersForTags(filters, renderDateLa
|
|
147
147
|
});
|
148
148
|
return tags;
|
149
149
|
};
|
150
|
-
var
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
150
|
+
var filteringReducer = function filteringReducer(state, action) {
|
151
|
+
switch (action.type) {
|
152
|
+
case constants.SAVED_FILTERS:
|
153
|
+
{
|
154
|
+
var _ref3 = action.payload || {},
|
155
|
+
savedFilters = _ref3.savedFilters;
|
156
|
+
return _rollupPluginBabelHelpers.objectSpread2(_rollupPluginBabelHelpers.objectSpread2({}, state), {}, {
|
157
|
+
savedFilters: savedFilters
|
158
|
+
});
|
159
|
+
}
|
160
|
+
default:
|
161
|
+
return state;
|
162
|
+
}
|
163
|
+
};
|
164
|
+
var FilterProvider = function FilterProvider(_ref4) {
|
165
|
+
var children = _ref4.children,
|
166
|
+
filters = _ref4.filters,
|
167
|
+
filterProps = _ref4.filterProps;
|
168
|
+
var _ref5 = filterProps || {},
|
169
|
+
renderDateLabel = _ref5.renderDateLabel;
|
156
170
|
var filterTags = prepareFiltersForTags(filters, renderDateLabel);
|
157
171
|
var _useState = React.useState(false),
|
158
172
|
_useState2 = _rollupPluginBabelHelpers.slicedToArray(_useState, 2),
|
159
173
|
panelOpen = _useState2[0],
|
160
174
|
setPanelOpen = _useState2[1];
|
175
|
+
var initialState = {
|
176
|
+
savedFilters: []
|
177
|
+
};
|
178
|
+
var _useReducer = React.useReducer(filteringReducer, initialState),
|
179
|
+
_useReducer2 = _rollupPluginBabelHelpers.slicedToArray(_useReducer, 2),
|
180
|
+
state = _useReducer2[0],
|
181
|
+
dispatch = _useReducer2[1];
|
161
182
|
var value = {
|
162
183
|
filterTags: filterTags,
|
163
184
|
EventEmitter: EventEmitter,
|
164
185
|
panelOpen: panelOpen,
|
165
|
-
setPanelOpen: setPanelOpen
|
186
|
+
setPanelOpen: setPanelOpen,
|
187
|
+
state: state,
|
188
|
+
dispatch: dispatch
|
166
189
|
};
|
167
190
|
return /*#__PURE__*/React__default["default"].createElement(FilterContext.Provider, {
|
168
191
|
value: value
|
@@ -1,5 +1,5 @@
|
|
1
1
|
/**
|
2
|
-
* Copyright IBM Corp. 2022,
|
2
|
+
* Copyright IBM Corp. 2022, 2024
|
3
3
|
*
|
4
4
|
* This source code is licensed under the Apache-2.0 license found in the
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
@@ -22,3 +22,5 @@ export const CLEAR_SINGLE_FILTER: "clearSingleFilter";
|
|
22
22
|
/** Constants for panel dimensions */
|
23
23
|
export const PANEL_WIDTH: 320;
|
24
24
|
export const ACTION_SET_HEIGHT: 64;
|
25
|
+
/** Constants for local reducer */
|
26
|
+
export const SAVED_FILTERS: "savedFilters";
|
@@ -32,6 +32,9 @@ var CLEAR_SINGLE_FILTER = 'clearSingleFilter';
|
|
32
32
|
var PANEL_WIDTH = 320;
|
33
33
|
var ACTION_SET_HEIGHT = 64;
|
34
34
|
|
35
|
+
/** Constants for local reducer */
|
36
|
+
var SAVED_FILTERS = 'savedFilters';
|
37
|
+
|
35
38
|
exports.ACTION_SET_HEIGHT = ACTION_SET_HEIGHT;
|
36
39
|
exports.BATCH = BATCH;
|
37
40
|
exports.CHECKBOX = CHECKBOX;
|
@@ -45,3 +48,4 @@ exports.NUMBER = NUMBER;
|
|
45
48
|
exports.PANEL = PANEL;
|
46
49
|
exports.PANEL_WIDTH = PANEL_WIDTH;
|
47
50
|
exports.RADIO = RADIO;
|
51
|
+
exports.SAVED_FILTERS = SAVED_FILTERS;
|
@@ -15,6 +15,7 @@ var react = require('@carbon/react');
|
|
15
15
|
var React = require('react');
|
16
16
|
var OverflowCheckboxes = require('../OverflowCheckboxes.js');
|
17
17
|
var utils = require('../utils.js');
|
18
|
+
var FilterProvider = require('../FilterProvider.js');
|
18
19
|
var handleCheckboxChange = require('../handleCheckboxChange.js');
|
19
20
|
var usePreviousValue = require('../../../../../../global/js/hooks/usePreviousValue.js');
|
20
21
|
|
@@ -33,6 +34,10 @@ var useFilters = function useFilters(_ref) {
|
|
33
34
|
panelOpen = _ref.panelOpen,
|
34
35
|
autoHideFilters = _ref.autoHideFilters,
|
35
36
|
isFetching = _ref.isFetching;
|
37
|
+
var _useContext = React.useContext(FilterProvider.FilterContext),
|
38
|
+
state = _useContext.state,
|
39
|
+
localDispatch = _useContext.dispatch;
|
40
|
+
var savedFilters = state.savedFilters;
|
36
41
|
/** State */
|
37
42
|
var _useState = React.useState(utils.getInitialStateFromFilters(filters, variation, reactTableFiltersState)),
|
38
43
|
_useState2 = _rollupPluginBabelHelpers.slicedToArray(_useState, 2),
|
@@ -130,6 +135,16 @@ var useFilters = function useFilters(_ref) {
|
|
130
135
|
filterCopy.splice(index, 1);
|
131
136
|
}
|
132
137
|
setFiltersObjectArray(filterCopy);
|
138
|
+
|
139
|
+
// Dispatch action from local filter context to track filters in order
|
140
|
+
// to keep history if `isFetching` becomes true. If so, react-table
|
141
|
+
// clears all filter history
|
142
|
+
localDispatch({
|
143
|
+
type: constants.SAVED_FILTERS,
|
144
|
+
payload: {
|
145
|
+
savedFilters: filterCopy
|
146
|
+
}
|
147
|
+
});
|
133
148
|
if (updateMethod === constants.INSTANT) {
|
134
149
|
setAllFilters(filterCopy);
|
135
150
|
}
|
@@ -320,10 +335,27 @@ var useFilters = function useFilters(_ref) {
|
|
320
335
|
setAllFilters(JSON.parse(prevFiltersObjectArrayRef.current));
|
321
336
|
setFetchingReset(true);
|
322
337
|
}
|
338
|
+
if (isFetching && fetchingReset) {
|
339
|
+
var cleanFilters = function cleanFilters(originalFilterState) {
|
340
|
+
var copy = _rollupPluginBabelHelpers.objectSpread2({}, originalFilterState);
|
341
|
+
var updatedFilters = savedFilters.map(function (f) {
|
342
|
+
if (Object.hasOwn(copy, f.id)) {
|
343
|
+
copy[f.id] = f;
|
344
|
+
return copy;
|
345
|
+
}
|
346
|
+
return copy;
|
347
|
+
});
|
348
|
+
return updatedFilters[0];
|
349
|
+
};
|
350
|
+
setFiltersObjectArray(savedFilters);
|
351
|
+
var filterStateCopy = cleanFilters(filtersState);
|
352
|
+
setFiltersState(filterStateCopy);
|
353
|
+
}
|
323
354
|
if (!isFetching) {
|
324
355
|
setFetchingReset(false);
|
325
356
|
}
|
326
|
-
|
357
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
358
|
+
}, [isFetching, reactTableFiltersState, setAllFilters, fetchingReset, savedFilters, filtersObjectArray]);
|
327
359
|
var cancel = function cancel() {
|
328
360
|
// Reverting to previous filters only applies when using batch actions
|
329
361
|
if (updateMethod === constants.BATCH) {
|
@@ -120,7 +120,7 @@ var stateReducer = function stateReducer(newState, action) {
|
|
120
120
|
var dataWithRemovedRow = Object.fromEntries(Object.entries(newData).filter(function (_ref5) {
|
121
121
|
var _ref6 = _rollupPluginBabelHelpers.slicedToArray(_ref5, 1),
|
122
122
|
key = _ref6[0];
|
123
|
-
return parseInt(key) !== parseInt(rowData.index);
|
123
|
+
return parseInt(key) !== parseInt(_getRowId(rowData.original, rowData.index));
|
124
124
|
}));
|
125
125
|
return _rollupPluginBabelHelpers.objectSpread2(_rollupPluginBabelHelpers.objectSpread2({}, newState), {}, {
|
126
126
|
selectedRowData: dataWithRemovedRow
|
@@ -15,6 +15,7 @@ var index = require('../../node_modules/classnames/index.js');
|
|
15
15
|
var commonColumnIds = require('./common-column-ids.js');
|
16
16
|
var DatagridSelectAllWithToggle = require('./Datagrid/DatagridSelectAllWithToggle.js');
|
17
17
|
var settings = require('../../settings.js');
|
18
|
+
var useIsomorphicEffect = require('../../global/js/hooks/useIsomorphicEffect.js');
|
18
19
|
|
19
20
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
20
21
|
|
@@ -44,11 +45,12 @@ var useSelectAllWithToggleComponent = function useSelectAllWithToggleComponent(h
|
|
44
45
|
hooks.useInstance.push(useInstance);
|
45
46
|
};
|
46
47
|
var useAddClassNameToSelectRow = function useAddClassNameToSelectRow(hooks) {
|
47
|
-
var _useState = React.useState(
|
48
|
+
var _useState = React.useState(0),
|
48
49
|
_useState2 = _rollupPluginBabelHelpers.slicedToArray(_useState, 2),
|
49
50
|
windowSize = _useState2[0],
|
50
51
|
setWindowSize = _useState2[1];
|
51
|
-
|
52
|
+
useIsomorphicEffect.useIsomorphicEffect(function () {
|
53
|
+
setWindowSize(window.innerWidth);
|
52
54
|
function updateSize() {
|
53
55
|
setWindowSize(window.innerWidth);
|
54
56
|
}
|
@@ -25,8 +25,8 @@ var react = require('@carbon/react');
|
|
25
25
|
var icons = require('@carbon/react/icons');
|
26
26
|
var variants = require('./motion/variants.js');
|
27
27
|
var pconsole = require('../../global/js/utils/pconsole.js');
|
28
|
-
var usePreviousValue = require('../../global/js/hooks/usePreviousValue.js');
|
29
28
|
var ActionSet = require('../ActionSet/ActionSet.js');
|
29
|
+
var usePreviousValue = require('../../global/js/hooks/usePreviousValue.js');
|
30
30
|
|
31
31
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
32
32
|
|
@@ -48,6 +48,7 @@ var defaults = {
|
|
48
48
|
placement: 'right',
|
49
49
|
size: 'md'
|
50
50
|
};
|
51
|
+
var MotionActionSet = framerMotion.motion(ActionSet.ActionSet);
|
51
52
|
|
52
53
|
/**
|
53
54
|
* Side panels keep users in-context of a page while performing tasks like navigating, editing, viewing details, or configuring something new.
|
@@ -115,6 +116,7 @@ exports.SidePanel = /*#__PURE__*/React__default["default"].forwardRef(function (
|
|
115
116
|
_useState6 = _rollupPluginBabelHelpers.slicedToArray(_useState5, 2),
|
116
117
|
doAnimateTitle = _useState6[0],
|
117
118
|
setDoAnimateTitle = _useState6[1];
|
119
|
+
var shouldReduceMotion = framerMotion.useReducedMotion();
|
118
120
|
React.useEffect(function () {
|
119
121
|
setDoAnimateTitle(animateTitle);
|
120
122
|
}, [animateTitle]);
|
@@ -437,7 +439,10 @@ exports.SidePanel = /*#__PURE__*/React__default["default"].forwardRef(function (
|
|
437
439
|
initial: "hidden",
|
438
440
|
animate: "visible",
|
439
441
|
exit: "exit",
|
440
|
-
custom:
|
442
|
+
custom: {
|
443
|
+
placement: placement,
|
444
|
+
shouldReduceMotion: shouldReduceMotion
|
445
|
+
}
|
441
446
|
}), /*#__PURE__*/React__default["default"].createElement("span", {
|
442
447
|
ref: startTrapRef,
|
443
448
|
tabIndex: "0",
|
@@ -446,10 +451,12 @@ exports.SidePanel = /*#__PURE__*/React__default["default"].forwardRef(function (
|
|
446
451
|
}, "Focus sentinel"), doAnimateTitle ? /*#__PURE__*/React__default["default"].createElement("div", {
|
447
452
|
ref: animatedScrollRef,
|
448
453
|
className: "".concat(blockClass, "__animated-scroll-wrapper ").concat(blockClass, "--scrolls")
|
449
|
-
}, renderHeader(), renderMain()) : /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, renderHeader(), renderMain()), /*#__PURE__*/React__default["default"].createElement(
|
454
|
+
}, renderHeader(), renderMain()) : /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, renderHeader(), renderMain()), /*#__PURE__*/React__default["default"].createElement(MotionActionSet, {
|
450
455
|
actions: actions,
|
451
456
|
className: primaryActionContainerClassNames,
|
452
|
-
size: size === 'xs' ? 'sm' : size
|
457
|
+
size: size === 'xs' ? 'sm' : size,
|
458
|
+
custom: shouldReduceMotion,
|
459
|
+
variants: variants.actionSetVariants
|
453
460
|
}), /*#__PURE__*/React__default["default"].createElement("span", {
|
454
461
|
ref: endTrapRef,
|
455
462
|
tabIndex: "0",
|
@@ -16,27 +16,54 @@ export namespace overlayVariants {
|
|
16
16
|
}
|
17
17
|
}
|
18
18
|
export namespace panelVariants {
|
19
|
-
export
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
}
|
27
|
-
|
28
|
-
}
|
19
|
+
export function visible_1({ shouldReduceMotion }: {
|
20
|
+
shouldReduceMotion: any;
|
21
|
+
}): {
|
22
|
+
x: number;
|
23
|
+
transition: {
|
24
|
+
duration: number;
|
25
|
+
ease: number[];
|
26
|
+
};
|
27
|
+
opacity: any;
|
28
|
+
};
|
29
29
|
export { visible_1 as visible };
|
30
|
-
export function hidden_1(placement
|
30
|
+
export function hidden_1({ placement, shouldReduceMotion }: {
|
31
|
+
placement: any;
|
32
|
+
shouldReduceMotion: any;
|
33
|
+
}): {
|
31
34
|
x: string | number;
|
35
|
+
opacity: any;
|
32
36
|
};
|
33
37
|
export { hidden_1 as hidden };
|
34
|
-
export function exit_1(placement
|
38
|
+
export function exit_1({ placement, shouldReduceMotion }: {
|
39
|
+
placement: any;
|
40
|
+
shouldReduceMotion: any;
|
41
|
+
}): {
|
35
42
|
x: string | number;
|
36
43
|
transition: {
|
37
44
|
duration: number;
|
38
45
|
ease: number[];
|
39
46
|
};
|
47
|
+
opacity: any;
|
40
48
|
};
|
41
49
|
export { exit_1 as exit };
|
42
50
|
}
|
51
|
+
export namespace actionSetVariants {
|
52
|
+
export function hidden_2(shouldReduceMotion: any): {
|
53
|
+
opacity: number;
|
54
|
+
transition: {
|
55
|
+
duration: number;
|
56
|
+
ease: number | number[];
|
57
|
+
};
|
58
|
+
};
|
59
|
+
export { hidden_2 as hidden };
|
60
|
+
export function visible_2(shouldReduceMotion: any): {
|
61
|
+
opacity: number;
|
62
|
+
transition: {
|
63
|
+
duration: number;
|
64
|
+
ease: number | number[];
|
65
|
+
delay: number;
|
66
|
+
};
|
67
|
+
};
|
68
|
+
export { visible_2 as visible };
|
69
|
+
}
|
@@ -27,28 +27,60 @@ var overlayVariants = {
|
|
27
27
|
}
|
28
28
|
};
|
29
29
|
var panelVariants = {
|
30
|
-
visible: {
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
30
|
+
visible: function visible(_ref) {
|
31
|
+
var shouldReduceMotion = _ref.shouldReduceMotion;
|
32
|
+
return {
|
33
|
+
x: 0,
|
34
|
+
transition: {
|
35
|
+
duration: motionConstants.DURATIONS.moderate02,
|
36
|
+
ease: motionConstants.EASINGS.productive.standard
|
37
|
+
},
|
38
|
+
opacity: shouldReduceMotion && 1
|
39
|
+
};
|
36
40
|
},
|
37
|
-
hidden: function hidden(
|
41
|
+
hidden: function hidden(_ref2) {
|
42
|
+
var placement = _ref2.placement,
|
43
|
+
shouldReduceMotion = _ref2.shouldReduceMotion;
|
38
44
|
return {
|
39
|
-
x: placement === 'right' ? '100%' : -320
|
45
|
+
x: placement === 'right' ? shouldReduceMotion ? 0 : '100%' : shouldReduceMotion ? 0 : -320,
|
46
|
+
opacity: shouldReduceMotion && 0
|
40
47
|
};
|
41
48
|
},
|
42
|
-
exit: function exit(
|
49
|
+
exit: function exit(_ref3) {
|
50
|
+
var placement = _ref3.placement,
|
51
|
+
shouldReduceMotion = _ref3.shouldReduceMotion;
|
43
52
|
return {
|
44
|
-
x: placement === 'right' ? '100%' : -320,
|
53
|
+
x: placement === 'right' ? shouldReduceMotion ? 0 : '100%' : shouldReduceMotion ? 0 : -320,
|
45
54
|
transition: {
|
46
55
|
duration: motionConstants.DURATIONS.moderate01,
|
47
56
|
ease: motionConstants.EASINGS.productive.exit
|
57
|
+
},
|
58
|
+
opacity: shouldReduceMotion && 0
|
59
|
+
};
|
60
|
+
}
|
61
|
+
};
|
62
|
+
var actionSetVariants = {
|
63
|
+
hidden: function hidden(shouldReduceMotion) {
|
64
|
+
return {
|
65
|
+
opacity: shouldReduceMotion ? 0 : 1,
|
66
|
+
transition: {
|
67
|
+
duration: shouldReduceMotion ? motionConstants.DURATIONS.moderate01 : motionConstants.DURATIONS.fast01,
|
68
|
+
ease: shouldReduceMotion ? 0 : motionConstants.EASINGS.productive.exit
|
69
|
+
}
|
70
|
+
};
|
71
|
+
},
|
72
|
+
visible: function visible(shouldReduceMotion) {
|
73
|
+
return {
|
74
|
+
opacity: 1,
|
75
|
+
transition: {
|
76
|
+
duration: shouldReduceMotion ? motionConstants.DURATIONS.moderate01 : motionConstants.DURATIONS.fast02,
|
77
|
+
ease: shouldReduceMotion ? 0 : motionConstants.EASINGS.productive.entrance,
|
78
|
+
delay: shouldReduceMotion ? 0.075 : 0
|
48
79
|
}
|
49
80
|
};
|
50
81
|
}
|
51
82
|
};
|
52
83
|
|
84
|
+
exports.actionSetVariants = actionSetVariants;
|
53
85
|
exports.overlayVariants = overlayVariants;
|
54
86
|
exports.panelVariants = panelVariants;
|
@@ -0,0 +1,6 @@
|
|
1
|
+
/**
|
2
|
+
* StringFormatter allows for truncating text while displaying a tooltip
|
3
|
+
* overlay on hover or focus with the entirety of the provided copy.
|
4
|
+
*/
|
5
|
+
export let StringFormatter: React.ForwardRefExoticComponent<React.RefAttributes<any>>;
|
6
|
+
import React from 'react';
|