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

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 (59) hide show
  1. package/README.md +17 -0
  2. package/css/index-full-carbon.css +4933 -3007
  3. package/css/index-full-carbon.css.map +1 -1
  4. package/css/index-full-carbon.min.css +6 -4
  5. package/css/index-full-carbon.min.css.map +1 -1
  6. package/css/index-without-carbon-released-only.css +59 -32
  7. package/css/index-without-carbon-released-only.css.map +1 -1
  8. package/css/index-without-carbon-released-only.min.css +3 -3
  9. package/css/index-without-carbon-released-only.min.css.map +1 -1
  10. package/css/index-without-carbon.css +121 -63
  11. package/css/index-without-carbon.css.map +1 -1
  12. package/css/index-without-carbon.min.css +6 -4
  13. package/css/index-without-carbon.min.css.map +1 -1
  14. package/css/index.css +280 -101
  15. package/css/index.css.map +1 -1
  16. package/css/index.min.css +6 -4
  17. package/css/index.min.css.map +1 -1
  18. package/es/components/Card/CardFooter.js +2 -2
  19. package/es/components/Datagrid/Datagrid/DatagridContent.js +2 -2
  20. package/es/components/Datagrid/Datagrid/DatagridRow.js +42 -11
  21. package/es/components/Datagrid/Datagrid/DatagridSelectAll.js +20 -4
  22. package/es/components/Datagrid/Datagrid/DatagridSelectAllWithToggle.js +18 -2
  23. package/es/components/Datagrid/Datagrid/addons/Filtering/FilterFlyout.js +19 -247
  24. package/es/components/Datagrid/Datagrid/addons/Filtering/FilterPanel.js +41 -285
  25. package/es/components/Datagrid/Datagrid/addons/Filtering/FilterProvider.js +4 -4
  26. package/es/components/Datagrid/Datagrid/addons/Filtering/hooks/index.js +1 -0
  27. package/es/components/Datagrid/Datagrid/addons/Filtering/hooks/useFilters.js +310 -0
  28. package/es/components/Datagrid/Datagrid/addons/Filtering/utils.js +6 -6
  29. package/es/components/Datagrid/useActionsColumn.js +29 -1
  30. package/es/components/Datagrid/useDefaultStringRenderer.js +1 -1
  31. package/es/components/Datagrid/useNestedRows.js +2 -4
  32. package/es/components/Datagrid/useSelectAllToggle.js +18 -2
  33. package/es/components/Datagrid/useSelectRows.js +19 -2
  34. package/es/components/Datagrid/useStickyColumn.js +22 -5
  35. package/es/components/Datagrid/utils/DatagridActions.js +2 -2
  36. package/lib/components/Card/CardFooter.js +2 -2
  37. package/lib/components/Datagrid/Datagrid/DatagridContent.js +2 -2
  38. package/lib/components/Datagrid/Datagrid/DatagridRow.js +42 -11
  39. package/lib/components/Datagrid/Datagrid/DatagridSelectAll.js +27 -3
  40. package/lib/components/Datagrid/Datagrid/DatagridSelectAllWithToggle.js +17 -1
  41. package/lib/components/Datagrid/Datagrid/addons/Filtering/FilterFlyout.js +22 -243
  42. package/lib/components/Datagrid/Datagrid/addons/Filtering/FilterPanel.js +47 -284
  43. package/lib/components/Datagrid/Datagrid/addons/Filtering/FilterProvider.js +4 -4
  44. package/lib/components/Datagrid/Datagrid/addons/Filtering/hooks/index.js +8 -0
  45. package/lib/components/Datagrid/Datagrid/addons/Filtering/hooks/useFilters.js +325 -0
  46. package/lib/components/Datagrid/Datagrid/addons/Filtering/utils.js +5 -5
  47. package/lib/components/Datagrid/useActionsColumn.js +30 -1
  48. package/lib/components/Datagrid/useDefaultStringRenderer.js +1 -1
  49. package/lib/components/Datagrid/useNestedRows.js +2 -4
  50. package/lib/components/Datagrid/useSelectAllToggle.js +25 -2
  51. package/lib/components/Datagrid/useSelectRows.js +26 -2
  52. package/lib/components/Datagrid/useStickyColumn.js +22 -4
  53. package/lib/components/Datagrid/utils/DatagridActions.js +2 -2
  54. package/package.json +8 -8
  55. package/scss/components/Datagrid/styles/_datagrid.scss +27 -7
  56. package/scss/components/Datagrid/styles/_useNestedRows.scss +19 -0
  57. package/scss/components/Datagrid/styles/_useSelectAllToggle.scss +12 -8
  58. package/scss/components/Datagrid/styles/_useStickyColumn.scss +3 -3
  59. package/scss/components/OptionsTile/_options-tile.scss +10 -3
@@ -0,0 +1,325 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _typeof = require("@babel/runtime/helpers/typeof");
6
+
7
+ Object.defineProperty(exports, "__esModule", {
8
+ value: true
9
+ });
10
+ exports.default = void 0;
11
+
12
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
13
+
14
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
15
+
16
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
17
+
18
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
19
+
20
+ var _react = _interopRequireWildcard(require("react"));
21
+
22
+ var _react2 = require("@carbon/react");
23
+
24
+ var _constants = require("../constants");
25
+
26
+ var _useInitialStateFromFilters = _interopRequireDefault(require("./useInitialStateFromFilters"));
27
+
28
+ var _utils = require("../utils");
29
+
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
+
32
+ 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; }
33
+
34
+ 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; }
35
+
36
+ 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) { (0, _defineProperty2.default)(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; }
37
+
38
+ var useFilters = function useFilters(_ref) {
39
+ var updateMethod = _ref.updateMethod,
40
+ _ref$filters = _ref.filters,
41
+ filters = _ref$filters === void 0 ? [] : _ref$filters,
42
+ setAllFilters = _ref.setAllFilters,
43
+ variation = _ref.variation;
44
+
45
+ /** State */
46
+ var _useInitialStateFromF = (0, _useInitialStateFromFilters.default)(filters, variation),
47
+ _useInitialStateFromF2 = (0, _slicedToArray2.default)(_useInitialStateFromF, 2),
48
+ filtersState = _useInitialStateFromF2[0],
49
+ setFiltersState = _useInitialStateFromF2[1];
50
+
51
+ var _useState = (0, _react.useState)([]),
52
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
53
+ filtersObjectArray = _useState2[0],
54
+ setFiltersObjectArray = _useState2[1]; // When using batch actions we have to store the filters to then apply them later
55
+
56
+
57
+ var prevFiltersRef = (0, _react.useRef)(JSON.stringify(filtersState));
58
+ var prevFiltersObjectArrayRef = (0, _react.useRef)(JSON.stringify(filtersObjectArray));
59
+ /** Methods */
60
+ // If the user decides to cancel or click outside the flyout, it reverts back to the filters that were
61
+ // there when they opened the flyout
62
+
63
+ var revertToPreviousFilters = function revertToPreviousFilters() {
64
+ setFiltersState(JSON.parse(prevFiltersRef.current));
65
+ setFiltersObjectArray(JSON.parse(prevFiltersObjectArrayRef.current));
66
+ };
67
+
68
+ var reset = function reset() {
69
+ // Get the initial values for the filters
70
+ var initialFiltersState = (0, _utils.getInitialStateFromFilters)(filters, variation);
71
+ var initialFiltersObjectArray = []; // Set the state to the initial values
72
+
73
+ setFiltersState(initialFiltersState);
74
+ setFiltersObjectArray(initialFiltersObjectArray);
75
+ setAllFilters([]); // Update their respective refs so everything is in sync
76
+
77
+ prevFiltersRef.current = JSON.stringify(initialFiltersState);
78
+ prevFiltersObjectArrayRef.current = JSON.stringify(initialFiltersObjectArray);
79
+ };
80
+
81
+ var applyFilters = function applyFilters(_ref2) {
82
+ var column = _ref2.column,
83
+ value = _ref2.value,
84
+ type = _ref2.type;
85
+
86
+ // If no end date is selected return because we need the end date to do computations
87
+ if (type === _constants.DATE && value.length > 0 && !value[1]) {
88
+ return;
89
+ }
90
+
91
+ var filtersObjectArrayCopy = (0, _toConsumableArray2.default)(filtersObjectArray); // // check if the filter already exists in the array
92
+
93
+ var filter = filtersObjectArrayCopy.find(function (item) {
94
+ return item.id === column;
95
+ }); // // if filter exists in array then update the filter's new value
96
+
97
+ if (filter) {
98
+ filter.value = value;
99
+ } else {
100
+ filtersObjectArrayCopy.push({
101
+ id: column,
102
+ value: value,
103
+ type: type
104
+ });
105
+ } // ATTENTION: this is where you would reset or remove individual filters from the filters array
106
+
107
+
108
+ if (type === _constants.CHECKBOX) {
109
+ /**
110
+ When all checkboxes of a group are all unselected the value still exists in the filtersObjectArray
111
+ This checks if all the checkboxes are selected = false and removes it from the array
112
+ */
113
+ var index = filtersObjectArrayCopy.findIndex(function (filter) {
114
+ return filter.id === column;
115
+ }); // If all the selected state is false remove from array
116
+
117
+ var shouldRemoveFromArray = filtersObjectArrayCopy[index].value.every(function (val) {
118
+ return val.selected === false;
119
+ });
120
+
121
+ if (shouldRemoveFromArray) {
122
+ filtersObjectArrayCopy.splice(index, 1);
123
+ }
124
+ } else if (type === _constants.DATE) {
125
+ if (value.length === 0) {
126
+ /**
127
+ Checks to see if the date value is an empty array, if it is that means the user wants
128
+ to reset the date filter
129
+ */
130
+ var _index = filtersObjectArrayCopy.findIndex(function (filter) {
131
+ return filter.id === column;
132
+ }); // Remove it from the filters array since there is nothing to filter
133
+
134
+
135
+ filtersObjectArrayCopy.splice(_index, 1);
136
+ }
137
+ } else if (type === _constants.DROPDOWN || type === _constants.RADIO) {
138
+ if (value === 'Any') {
139
+ /**
140
+ Checks to see if the selected value is 'Any', that means the user wants
141
+ to reset specific filter
142
+ */
143
+ var _index2 = filtersObjectArrayCopy.findIndex(function (filter) {
144
+ return filter.id === column;
145
+ }); // Remove it from the filters array
146
+
147
+
148
+ filtersObjectArrayCopy.splice(_index2, 1);
149
+ }
150
+ }
151
+
152
+ setFiltersObjectArray(filtersObjectArrayCopy); // // Automatically apply the filters if the updateMethod is instant
153
+
154
+ if (updateMethod === _constants.INSTANT) {
155
+ setAllFilters(filtersObjectArrayCopy);
156
+ }
157
+ };
158
+ /** Render the individual filter component */
159
+
160
+
161
+ var renderFilter = function renderFilter(_ref3) {
162
+ var _filtersState$column, _filtersState$column2, _filtersState$column3, _filtersState$column4;
163
+
164
+ var type = _ref3.type,
165
+ column = _ref3.column,
166
+ components = _ref3.props;
167
+ var isPanel = variation === _constants.PANEL;
168
+ var filter;
169
+
170
+ switch (type) {
171
+ case _constants.DATE:
172
+ filter = /*#__PURE__*/_react.default.createElement(_react2.DatePicker, (0, _extends2.default)({}, components.DatePicker, {
173
+ onChange: function onChange(value) {
174
+ var _components$DatePicke, _components$DatePicke2;
175
+
176
+ setFiltersState(_objectSpread(_objectSpread({}, filtersState), {}, (0, _defineProperty2.default)({}, column, {
177
+ value: value,
178
+ type: type
179
+ })));
180
+ applyFilters({
181
+ column: column,
182
+ value: value,
183
+ type: type
184
+ });
185
+ (_components$DatePicke = (_components$DatePicke2 = components.DatePicker).onChange) === null || _components$DatePicke === void 0 ? void 0 : _components$DatePicke.call(_components$DatePicke2, value);
186
+ },
187
+ value: filtersState[column].value,
188
+ datePickerType: "range"
189
+ }), /*#__PURE__*/_react.default.createElement(_react2.DatePickerInput, (0, _extends2.default)({
190
+ placeholder: "mm/dd/yyyy",
191
+ labelText: "Start date"
192
+ }, components.DatePickerInput.start)), /*#__PURE__*/_react.default.createElement(_react2.DatePickerInput, (0, _extends2.default)({
193
+ placeholder: "mm/dd/yyyy",
194
+ labelText: "End date"
195
+ }, components.DatePickerInput.end)));
196
+ break;
197
+
198
+ case _constants.NUMBER:
199
+ filter = /*#__PURE__*/_react.default.createElement(_react2.NumberInput, (0, _extends2.default)({
200
+ step: 1,
201
+ allowEmpty: true,
202
+ hideSteppers: true
203
+ }, components.NumberInput, {
204
+ onChange: function onChange(event) {
205
+ var _components$NumberInp, _components$NumberInp2;
206
+
207
+ setFiltersState(_objectSpread(_objectSpread({}, filtersState), {}, (0, _defineProperty2.default)({}, column, {
208
+ value: event.target.value,
209
+ type: type
210
+ })));
211
+ applyFilters({
212
+ column: column,
213
+ value: event.target.value,
214
+ type: type
215
+ });
216
+ (_components$NumberInp = (_components$NumberInp2 = components.NumberInput).onChange) === null || _components$NumberInp === void 0 ? void 0 : _components$NumberInp.call(_components$NumberInp2, event);
217
+ },
218
+ value: filtersState[column].value
219
+ }));
220
+ break;
221
+
222
+ case _constants.CHECKBOX:
223
+ filter = /*#__PURE__*/_react.default.createElement(_react2.FormGroup, components.FormGroup, filtersState[column].value.map(function (option) {
224
+ return /*#__PURE__*/_react.default.createElement(_react2.Checkbox, (0, _extends2.default)({
225
+ key: option.labelText
226
+ }, option, {
227
+ onChange: function onChange(_, _ref4) {
228
+ var _option$onChange;
229
+
230
+ var isSelected = _ref4.checked;
231
+ var checkboxCopy = filtersState[column].value;
232
+ var foundCheckbox = checkboxCopy.find(function (checkbox) {
233
+ return checkbox.value === option.value;
234
+ });
235
+ foundCheckbox.selected = isSelected;
236
+ setFiltersState(_objectSpread(_objectSpread({}, filtersState), {}, (0, _defineProperty2.default)({}, column, {
237
+ value: checkboxCopy,
238
+ type: type
239
+ })));
240
+ applyFilters({
241
+ column: column,
242
+ value: (0, _toConsumableArray2.default)(filtersState[column].value),
243
+ type: type
244
+ });
245
+ (_option$onChange = option.onChange) === null || _option$onChange === void 0 ? void 0 : _option$onChange.call(option, isSelected);
246
+ },
247
+ checked: option.selected
248
+ }));
249
+ }));
250
+ break;
251
+
252
+ case _constants.RADIO:
253
+ filter = /*#__PURE__*/_react.default.createElement(_react2.FormGroup, components.FormGroup, /*#__PURE__*/_react.default.createElement(_react2.RadioButtonGroup, (0, _extends2.default)({}, components.RadioButtonGroup, {
254
+ 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,
255
+ onChange: function onChange(selected) {
256
+ var _components$RadioButt, _components$RadioButt2;
257
+
258
+ setFiltersState(_objectSpread(_objectSpread({}, filtersState), {}, (0, _defineProperty2.default)({}, column, {
259
+ value: selected,
260
+ type: type
261
+ })));
262
+ applyFilters({
263
+ column: column,
264
+ value: selected,
265
+ type: type
266
+ });
267
+ (_components$RadioButt = (_components$RadioButt2 = components.RadioButtonGroup).onChange) === null || _components$RadioButt === void 0 ? void 0 : _components$RadioButt.call(_components$RadioButt2, selected);
268
+ }
269
+ }), /*#__PURE__*/_react.default.createElement(_react2.RadioButton, {
270
+ id: "any",
271
+ labelText: "Any",
272
+ value: "Any"
273
+ }), components.RadioButton.map(function (radio) {
274
+ var _ref5, _radio$id;
275
+
276
+ return /*#__PURE__*/_react.default.createElement(_react2.RadioButton, (0, _extends2.default)({
277
+ key: (_ref5 = (_radio$id = radio.id) !== null && _radio$id !== void 0 ? _radio$id : radio.labelText) !== null && _ref5 !== void 0 ? _ref5 : radio.value
278
+ }, radio));
279
+ })));
280
+ break;
281
+
282
+ case _constants.DROPDOWN:
283
+ filter = /*#__PURE__*/_react.default.createElement(_react2.Dropdown, (0, _extends2.default)({}, components.Dropdown, {
284
+ 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,
285
+ items: ['Any'].concat((0, _toConsumableArray2.default)(components.Dropdown.items)),
286
+ onChange: function onChange(_ref6) {
287
+ var _components$Dropdown$, _components$Dropdown;
288
+
289
+ var selectedItem = _ref6.selectedItem;
290
+ setFiltersState(_objectSpread(_objectSpread({}, filtersState), {}, (0, _defineProperty2.default)({}, column, {
291
+ value: selectedItem,
292
+ type: type
293
+ })));
294
+ applyFilters({
295
+ column: column,
296
+ value: selectedItem,
297
+ type: type
298
+ });
299
+ (_components$Dropdown$ = (_components$Dropdown = components.Dropdown).onChange) === null || _components$Dropdown$ === void 0 ? void 0 : _components$Dropdown$.call(_components$Dropdown, selectedItem);
300
+ }
301
+ }));
302
+ break;
303
+ }
304
+
305
+ if (isPanel) {
306
+ return /*#__PURE__*/_react.default.createElement(_react2.Layer, null, filter);
307
+ }
308
+
309
+ return filter;
310
+ };
311
+
312
+ return {
313
+ filtersState: filtersState,
314
+ setFiltersState: setFiltersState,
315
+ prevFiltersObjectArrayRef: prevFiltersObjectArrayRef,
316
+ prevFiltersRef: prevFiltersRef,
317
+ revertToPreviousFilters: revertToPreviousFilters,
318
+ reset: reset,
319
+ renderFilter: renderFilter,
320
+ filtersObjectArray: filtersObjectArray
321
+ };
322
+ };
323
+
324
+ var _default = useFilters;
325
+ exports.default = _default;
@@ -23,7 +23,7 @@ var getInitialStateFromFilters = function getInitialStateFromFilters(filters) {
23
23
  column = _ref.column,
24
24
  props = _ref.props;
25
25
 
26
- if (type === 'checkbox') {
26
+ if (type === _constants.CHECKBOX) {
27
27
  initialFilterState[column] = {
28
28
  value: props.Checkbox.map(function (_ref2) {
29
29
  var id = _ref2.id,
@@ -38,22 +38,22 @@ var getInitialStateFromFilters = function getInitialStateFromFilters(filters) {
38
38
  }),
39
39
  type: type
40
40
  };
41
- } else if (type === 'date') {
41
+ } else if (type === _constants.DATE) {
42
42
  initialFilterState[column] = {
43
43
  value: [null, null],
44
44
  type: type
45
45
  };
46
- } else if (type === 'number') {
46
+ } else if (type === _constants.NUMBER) {
47
47
  initialFilterState[column] = {
48
48
  value: '',
49
49
  type: type
50
50
  };
51
- } else if (type === 'radio') {
51
+ } else if (type === _constants.RADIO) {
52
52
  initialFilterState[column] = {
53
53
  value: '',
54
54
  type: type
55
55
  };
56
- } else if (type === 'dropdown') {
56
+ } else if (type === _constants.DROPDOWN) {
57
57
  initialFilterState[column] = {
58
58
  value: '',
59
59
  type: type
@@ -23,6 +23,11 @@ var _settings = require("../../settings");
23
23
 
24
24
  var _excluded = ["id", "itemText", "onClick", "icon"],
25
25
  _excluded2 = ["id", "onClick", "shouldHideMenuItem", "shouldDisableMenuItem", "disabled"];
26
+
27
+ 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; }
28
+
29
+ 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) { (0, _defineProperty2.default)(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; }
30
+
26
31
  var blockClass = "".concat(_settings.pkg.prefix, "--datagrid");
27
32
 
28
33
  var useActionsColumn = function useActionsColumn(hooks) {
@@ -115,7 +120,7 @@ var useActionsColumn = function useActionsColumn(hooks) {
115
120
  })))),
116
121
  className: (0, _classnames.default)((_cx3 = {}, (0, _defineProperty2.default)(_cx3, "".concat(blockClass, "__actions-column-cell"), true), (0, _defineProperty2.default)(_cx3, "".concat(blockClass, "__cell"), true), _cx3)),
117
122
  style: {
118
- width: 96
123
+ width: rowActions.length > 2 ? 48 : 96
119
124
  }
120
125
  }];
121
126
  }
@@ -127,6 +132,30 @@ var useActionsColumn = function useActionsColumn(hooks) {
127
132
  }
128
133
  };
129
134
 
135
+ var useStickyHeaderWidth = function useStickyHeaderWidth(instance) {
136
+ var rowActions = instance.rowActions;
137
+
138
+ if (rowActions && Array.isArray(rowActions)) {
139
+ var addHeaderWidth = function addHeaderWidth(props, cellData) {
140
+ var column = cellData.column;
141
+
142
+ if (column.isAction) {
143
+ return [props, {
144
+ style: _objectSpread(_objectSpread({}, props.style), {}, {
145
+ width: rowActions.length > 2 ? 48 : 96 // set header width based on action length
146
+
147
+ })
148
+ }];
149
+ }
150
+
151
+ return [props];
152
+ };
153
+
154
+ hooks.getHeaderProps.push(addHeaderWidth);
155
+ }
156
+ };
157
+
158
+ hooks.useInstance.push(useStickyHeaderWidth);
130
159
  hooks.useInstance.push(useAttachActionsOnInstance);
131
160
  };
132
161
 
@@ -28,7 +28,7 @@ var useDefaultStringRenderer = function useDefaultStringRenderer(hooks) {
28
28
  var _tableProps$column;
29
29
 
30
30
  return /*#__PURE__*/_react.default.createElement("div", {
31
- className: (0, _classnames.default)("".concat(blockClass, "__defaultStringRenderer"), (0, _defineProperty2.default)({}, "".concat(blockClass, "__defaultStringRenderer--multiline"), (_tableProps$column = tableProps.column) === null || _tableProps$column === void 0 ? void 0 : _tableProps$column.multiLineWrap)),
31
+ className: (0, _classnames.default)("".concat(blockClass, "__defaultStringRenderer"), (0, _defineProperty2.default)({}, "".concat(blockClass, "__defaultStringRenderer--multiline"), ((_tableProps$column = tableProps.column) === null || _tableProps$column === void 0 ? void 0 : _tableProps$column.multiLineWrap) || (tableProps === null || tableProps === void 0 ? void 0 : tableProps.multiLineWrapAll))),
32
32
  title: tableProps.value
33
33
  }, tableProps.value);
34
34
  };
@@ -41,9 +41,7 @@ var useNestedRows = function useNestedRows(hooks) {
41
41
  var row = _ref2.row;
42
42
  return [props, {
43
43
  style: {
44
- marginLeft: "".concat(row.depth > 0 ? marginLeft : 0, "px"),
45
- paddingLeft: "".concat(row.depth === 2 ? marginLeft * (row.depth - 1) + marginLeft - 8 : row.depth > 2 ? marginLeft * (row.depth - 1) + marginLeft : row.depth === 1 ? marginLeft - 16 : 0, "px"),
46
- maxWidth: "calc(100% - ".concat(marginLeft * row.depth, "px)")
44
+ paddingLeft: "".concat(row.depth > 1 ? marginLeft * 2 + (row.depth - 1) * (marginLeft + marginLeft / 3) : row.depth === 1 ? marginLeft * 2 : 0, "px")
47
45
  }
48
46
  }];
49
47
  };
@@ -57,7 +55,7 @@ var useNestedRows = function useNestedRows(hooks) {
57
55
  }) === 0;
58
56
  return [props, {
59
57
  style: {
60
- marginRight: "".concat(isFirstCell && cell.row.depth > 0 ? "-".concat(marginLeft * (cell.row.depth + 1), "px") : '')
58
+ marginRight: "".concat(isFirstCell && cell.row.depth > 0 ? "".concat(-32 * cell.row.depth - 18, "px") : '')
61
59
  }
62
60
  }];
63
61
  };
@@ -2,6 +2,8 @@
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
4
 
5
+ var _typeof = require("@babel/runtime/helpers/typeof");
6
+
5
7
  Object.defineProperty(exports, "__esModule", {
6
8
  value: true
7
9
  });
@@ -9,7 +11,9 @@ exports.default = void 0;
9
11
 
10
12
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
13
 
12
- var _react = _interopRequireDefault(require("react"));
14
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
15
+
16
+ var _react = _interopRequireWildcard(require("react"));
13
17
 
14
18
  var _classnames = _interopRequireDefault(require("classnames"));
15
19
 
@@ -19,6 +23,10 @@ var _DatagridSelectAllWithToggle = _interopRequireDefault(require("./Datagrid/Da
19
23
 
20
24
  var _settings = require("../../settings");
21
25
 
26
+ 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); }
27
+
28
+ 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; }
29
+
22
30
  /*
23
31
  * Licensed Materials - Property of IBM
24
32
  * 5724-Q36
@@ -56,6 +64,21 @@ var useSelectAllWithToggleComponent = function useSelectAllWithToggleComponent(h
56
64
  };
57
65
 
58
66
  var useAddClassNameToSelectRow = function useAddClassNameToSelectRow(hooks) {
67
+ var _useState = (0, _react.useState)(window.innerWidth),
68
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
69
+ windowSize = _useState2[0],
70
+ setWindowSize = _useState2[1];
71
+
72
+ (0, _react.useLayoutEffect)(function () {
73
+ function updateSize() {
74
+ setWindowSize(window.innerWidth);
75
+ }
76
+
77
+ window.addEventListener('resize', updateSize);
78
+ return function () {
79
+ return window.removeEventListener('resize', updateSize);
80
+ };
81
+ }, []);
59
82
  hooks.getCellProps.push(function (props, data) {
60
83
  var _columns$;
61
84
 
@@ -68,7 +91,7 @@ var useAddClassNameToSelectRow = function useAddClassNameToSelectRow(hooks) {
68
91
 
69
92
  if (column.id === _commonColumnIds.selectionColumnId && DatagridPagination) {
70
93
  return [props, {
71
- className: (0, _classnames.default)("".concat(blockClass, "__select-all-toggle-on"), (0, _defineProperty2.default)({}, "".concat(blockClass, "__select-all-sticky-left"), isFirstColumnStickyLeft))
94
+ className: (0, _classnames.default)("".concat(blockClass, "__select-all-toggle-on"), (0, _defineProperty2.default)({}, "".concat(blockClass, "__select-all-sticky-left"), isFirstColumnStickyLeft && windowSize > 671))
72
95
  }];
73
96
  }
74
97
 
@@ -2,6 +2,8 @@
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
4
 
5
+ var _typeof = require("@babel/runtime/helpers/typeof");
6
+
5
7
  Object.defineProperty(exports, "__esModule", {
6
8
  value: true
7
9
  });
@@ -11,11 +13,13 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
11
13
 
12
14
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
13
15
 
16
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
17
+
14
18
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
15
19
 
16
20
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
17
21
 
18
- var _react = _interopRequireDefault(require("react"));
22
+ var _react = _interopRequireWildcard(require("react"));
19
23
 
20
24
  var _classnames = _interopRequireDefault(require("classnames"));
21
25
 
@@ -29,6 +33,10 @@ var _settings = require("../../settings");
29
33
 
30
34
  var _excluded = ["onChange"];
31
35
 
36
+ 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); }
37
+
38
+ 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; }
39
+
32
40
  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; }
33
41
 
34
42
  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) { (0, _defineProperty2.default)(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; }
@@ -93,6 +101,22 @@ var SelectRow = function SelectRow(datagridState) {
93
101
  onRadioSelect = datagridState.onRadioSelect,
94
102
  columns = datagridState.columns,
95
103
  withStickyColumn = datagridState.withStickyColumn;
104
+
105
+ var _useState = (0, _react.useState)(window.innerWidth),
106
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
107
+ windowSize = _useState2[0],
108
+ setWindowSize = _useState2[1];
109
+
110
+ (0, _react.useLayoutEffect)(function () {
111
+ function updateSize() {
112
+ setWindowSize(window.innerWidth);
113
+ }
114
+
115
+ window.addEventListener('resize', updateSize);
116
+ return function () {
117
+ return window.removeEventListener('resize', updateSize);
118
+ };
119
+ }, []);
96
120
  var selectDisabled = isFetching || row.getRowProps().selectDisabled;
97
121
 
98
122
  var _row$getToggleRowSele = row.getToggleRowSelectedProps(),
@@ -118,7 +142,7 @@ var SelectRow = function SelectRow(datagridState) {
118
142
  },
119
143
  id: "".concat(tableId, "-").concat(row.index),
120
144
  name: "".concat(tableId, "-").concat(row.index, "-name"),
121
- className: (0, _classnames.default)("".concat(blockClass, "__checkbox-cell"), cellProps.className, (0, _defineProperty2.default)({}, "".concat(blockClass, "__checkbox-cell-sticky-left"), isFirstColumnStickyLeft)),
145
+ className: (0, _classnames.default)("".concat(blockClass, "__checkbox-cell"), cellProps.className, (0, _defineProperty2.default)({}, "".concat(blockClass, "__checkbox-cell-sticky-left"), isFirstColumnStickyLeft && windowSize > 671)),
122
146
  ariaLabel: "".concat(tableId, "-row-").concat(row.index) // TODO: aria label should be i18n'ed
123
147
  ,
124
148
  disabled: selectDisabled
@@ -9,6 +9,8 @@ exports.default = void 0;
9
9
 
10
10
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
11
 
12
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
13
+
12
14
  var _react = require("react");
13
15
 
14
16
  var _debounce = _interopRequireDefault(require("lodash/debounce"));
@@ -29,8 +31,24 @@ var OFFSET_SCROLL_CLASS = "".concat(styleClassPrefix, "-offset-scroll");
29
31
  var useStickyColumn = function useStickyColumn(hooks) {
30
32
  var tableBodyRef = (0, _react.useRef)();
31
33
  var stickyHeaderCellRef = (0, _react.useRef)();
32
- hooks.getCellProps.push(changeProps.bind(null, 'cell', null));
33
- hooks.getHeaderProps.push(changeProps.bind(null, 'header', stickyHeaderCellRef));
34
+
35
+ var _useState = (0, _react.useState)(window.innerWidth),
36
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
37
+ windowSize = _useState2[0],
38
+ setWindowSize = _useState2[1];
39
+
40
+ (0, _react.useLayoutEffect)(function () {
41
+ function updateSize() {
42
+ setWindowSize(window.innerWidth);
43
+ }
44
+
45
+ window.addEventListener('resize', updateSize);
46
+ return function () {
47
+ return window.removeEventListener('resize', updateSize);
48
+ };
49
+ }, []);
50
+ hooks.getCellProps.push(changeProps.bind(null, 'cell', null, windowSize));
51
+ hooks.getHeaderProps.push(changeProps.bind(null, 'header', stickyHeaderCellRef, windowSize));
34
52
  hooks.getTableBodyProps.push(addTableBodyProps.bind(null, tableBodyRef));
35
53
  hooks.getHeaderGroupProps.push(function (props) {
36
54
  return [props, {
@@ -138,7 +156,7 @@ var addTableBodyProps = function addTableBodyProps(tableBodyRef, props) {
138
156
  }];
139
157
  };
140
158
 
141
- var changeProps = function changeProps(elementName, headerCellRef, props, data) {
159
+ var changeProps = function changeProps(elementName, headerCellRef, windowSize, props, data) {
142
160
  var column = data.column || data.cell.column;
143
161
 
144
162
  if (column.sticky === 'right') {
@@ -155,7 +173,7 @@ var changeProps = function changeProps(elementName, headerCellRef, props, data)
155
173
  var _data$instance, _cx2;
156
174
 
157
175
  return [props, _objectSpread({
158
- className: (0, _classnames.default)((_cx2 = {}, (0, _defineProperty2.default)(_cx2, "".concat(leftStickyStyleClassPrefix, "-").concat(elementName), true), (0, _defineProperty2.default)(_cx2, "".concat(leftStickyStyleClassPrefix, "-").concat(elementName, "--with-extra-select-column"), data === null || data === void 0 ? void 0 : (_data$instance = data.instance) === null || _data$instance === void 0 ? void 0 : _data$instance.withSelectRows), _cx2))
176
+ className: (0, _classnames.default)((_cx2 = {}, (0, _defineProperty2.default)(_cx2, "".concat(leftStickyStyleClassPrefix, "-").concat(elementName), true && windowSize > 671), (0, _defineProperty2.default)(_cx2, "".concat(leftStickyStyleClassPrefix, "-").concat(elementName, "--with-extra-select-column"), (data === null || data === void 0 ? void 0 : (_data$instance = data.instance) === null || _data$instance === void 0 ? void 0 : _data$instance.withSelectRows) && windowSize > 671), _cx2))
159
177
  }, headerCellRef && {
160
178
  ref: headerCellRef
161
179
  })];
@@ -41,7 +41,7 @@ var blockClass = "".concat(_settings.pkg.prefix, "--datagrid");
41
41
 
42
42
  var DatagridActions = function DatagridActions(datagridState) {
43
43
  var _useContext = (0, _react.useContext)(_Filtering.FilterContext),
44
- setLeftPanelOpen = _useContext.setLeftPanelOpen;
44
+ setPanelOpen = _useContext.setPanelOpen;
45
45
 
46
46
  var selectedFlatRows = datagridState.selectedFlatRows,
47
47
  setGlobalFilter = datagridState.setGlobalFilter,
@@ -87,7 +87,7 @@ var DatagridActions = function DatagridActions(datagridState) {
87
87
  iconDescription: filterProps.panelIconDescription,
88
88
  className: "".concat(blockClass, "-filter-panel-open-button"),
89
89
  onClick: function onClick() {
90
- return setLeftPanelOpen(function (open) {
90
+ return setPanelOpen(function (open) {
91
91
  return !open;
92
92
  });
93
93
  },