@carbon/ibm-products 1.39.0 → 1.41.0

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 (56) hide show
  1. package/css/index-full-carbon.css +19 -0
  2. package/css/index-full-carbon.css.map +1 -1
  3. package/css/index-full-carbon.min.css +2 -2
  4. package/css/index-full-carbon.min.css.map +1 -1
  5. package/css/index-without-carbon.css +19 -0
  6. package/css/index-without-carbon.css.map +1 -1
  7. package/css/index-without-carbon.min.css +2 -2
  8. package/css/index-without-carbon.min.css.map +1 -1
  9. package/css/index.css +19 -0
  10. package/css/index.css.map +1 -1
  11. package/css/index.min.css +2 -2
  12. package/css/index.min.css.map +1 -1
  13. package/es/components/ButtonMenu/ButtonMenu.js +1 -1
  14. package/es/components/ButtonSetWithOverflow/ButtonSetWithOverflow.js +1 -1
  15. package/es/components/Card/Card.js +1 -1
  16. package/es/components/DataSpreadsheet/DataSpreadsheet.js +1 -3
  17. package/es/components/DataSpreadsheet/utils/handleCellDeletion.js +5 -4
  18. package/es/components/Datagrid/Datagrid/DatagridContent.js +8 -3
  19. package/es/components/Datagrid/Datagrid/DatagridEmptyBody.js +17 -4
  20. package/es/components/Datagrid/Datagrid/DatagridRow.js +2 -8
  21. package/es/components/Datagrid/Datagrid/DatagridVirtualBody.js +27 -8
  22. package/es/components/Datagrid/Datagrid/addons/Filtering/FilterFlyout.js +31 -44
  23. package/es/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditCell/InlineEditCell.js +10 -8
  24. package/es/components/Datagrid/Datagrid.stories/index.js +1 -1
  25. package/es/components/Datagrid/useFiltering.js +0 -2
  26. package/es/components/Datagrid/useParentDimensions.js +3 -1
  27. package/es/components/Datagrid/utils/getArgTypes.js +9 -0
  28. package/es/components/Datagrid/utils/getInlineEditColumns.js +6 -1
  29. package/es/components/InlineEditV1/InlineEditV1.js +2 -1
  30. package/es/components/PageHeader/PageHeader.js +1 -1
  31. package/es/components/RemoveModal/RemoveModal.js +17 -3
  32. package/es/global/js/package-settings.js +2 -1
  33. package/lib/components/ButtonMenu/ButtonMenu.js +1 -1
  34. package/lib/components/ButtonSetWithOverflow/ButtonSetWithOverflow.js +1 -1
  35. package/lib/components/Card/Card.js +1 -1
  36. package/lib/components/DataSpreadsheet/DataSpreadsheet.js +1 -3
  37. package/lib/components/DataSpreadsheet/utils/handleCellDeletion.js +5 -4
  38. package/lib/components/Datagrid/Datagrid/DatagridContent.js +8 -3
  39. package/lib/components/Datagrid/Datagrid/DatagridEmptyBody.js +17 -4
  40. package/lib/components/Datagrid/Datagrid/DatagridRow.js +2 -11
  41. package/lib/components/Datagrid/Datagrid/DatagridVirtualBody.js +27 -8
  42. package/lib/components/Datagrid/Datagrid/addons/Filtering/FilterFlyout.js +31 -44
  43. package/lib/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditCell/InlineEditCell.js +12 -10
  44. package/lib/components/Datagrid/Datagrid.stories/index.js +1 -1
  45. package/lib/components/Datagrid/useFiltering.js +0 -2
  46. package/lib/components/Datagrid/useParentDimensions.js +3 -1
  47. package/lib/components/Datagrid/utils/getArgTypes.js +9 -0
  48. package/lib/components/Datagrid/utils/getInlineEditColumns.js +6 -1
  49. package/lib/components/InlineEditV1/InlineEditV1.js +2 -1
  50. package/lib/components/PageHeader/PageHeader.js +1 -1
  51. package/lib/components/RemoveModal/RemoveModal.js +17 -3
  52. package/lib/global/js/package-settings.js +2 -1
  53. package/package.json +2 -2
  54. package/scss/components/Datagrid/_storybook-styles.scss +7 -0
  55. package/scss/components/Datagrid/styles/_datagrid.scss +18 -0
  56. package/scss/components/FilterSummary/_filter-summary.scss +1 -0
@@ -41,7 +41,8 @@ export var DatagridContent = function DatagridContent(_ref) {
41
41
  withInlineEdit = datagridState.withInlineEdit,
42
42
  tableId = datagridState.tableId,
43
43
  DatagridActions = datagridState.DatagridActions,
44
- totalColumnsWidth = datagridState.totalColumnsWidth;
44
+ totalColumnsWidth = datagridState.totalColumnsWidth,
45
+ gridRef = datagridState.gridRef;
45
46
  var rows = DatagridPagination && datagridState.page || datagridState.rows;
46
47
  var gridActive = state.gridActive,
47
48
  editId = state.editId;
@@ -81,7 +82,7 @@ export var DatagridContent = function DatagridContent(_ref) {
81
82
  onFocus: withInlineEdit ? function () {
82
83
  return handleGridFocus(state, dispatch);
83
84
  } : null
84
- }), /*#__PURE__*/React.createElement(DatagridHead, datagridState), /*#__PURE__*/React.createElement(DatagridBody, _extends({}, datagridState, {
85
+ }), !withVirtualScroll ? /*#__PURE__*/React.createElement(DatagridHead, datagridState) : null, /*#__PURE__*/React.createElement(DatagridBody, _extends({}, datagridState, {
85
86
  rows: rows
86
87
  })));
87
88
  };
@@ -116,6 +117,9 @@ export var DatagridContent = function DatagridContent(_ref) {
116
117
  className: "".concat(blockClass, "__datagridLeftPanel")
117
118
  }, leftPanel.panelContent), withInlineEdit ? /*#__PURE__*/React.createElement("div", {
118
119
  ref: multiKeyTrackingRef
120
+ }, renderTable()) : withVirtualScroll ? /*#__PURE__*/React.createElement("div", {
121
+ className: "".concat(blockClass, "__virtualScrollContainer"),
122
+ ref: gridRef
119
123
  }, renderTable()) : renderTable())), (rows === null || rows === void 0 ? void 0 : rows.length) > 0 && !isFetching && DatagridPagination && /*#__PURE__*/React.createElement(DatagridPagination, datagridState), CustomizeColumnsModal && /*#__PURE__*/React.createElement(CustomizeColumnsModal, {
120
124
  instance: datagridState
121
125
  }));
@@ -139,6 +143,7 @@ DatagridContent.propTypes = {
139
143
  page: PropTypes.arrayOf(PropTypes.object),
140
144
  rows: PropTypes.arrayOf(PropTypes.object),
141
145
  tableId: PropTypes.string,
142
- totalColumnsWidth: PropTypes.number
146
+ totalColumnsWidth: PropTypes.number,
147
+ gridRef: PropTypes.object
143
148
  })
144
149
  };
@@ -9,7 +9,7 @@ import _extends from "@babel/runtime/helpers/extends";
9
9
  import React from 'react';
10
10
  import { pkg } from '../../../settings';
11
11
  import { DataTable } from 'carbon-components-react';
12
- import { NoDataEmptyState } from '../../EmptyStates/NoDataEmptyState';
12
+ import { NoDataEmptyState, ErrorEmptyState } from '../../EmptyStates';
13
13
  var blockClass = "".concat(pkg.prefix, "--datagrid");
14
14
  var TableBody = DataTable.TableBody,
15
15
  TableRow = DataTable.TableRow,
@@ -20,16 +20,29 @@ var DatagridEmptyBody = function DatagridEmptyBody(datagridState) {
20
20
  emptyStateTitle = datagridState.emptyStateTitle,
21
21
  emptyStateDescription = datagridState.emptyStateDescription,
22
22
  emptyStateSize = datagridState.emptyStateSize,
23
- illustrationTheme = datagridState.illustrationTheme;
23
+ _datagridState$emptyS = datagridState.emptyStateType,
24
+ emptyStateType = _datagridState$emptyS === void 0 ? 'noData' : _datagridState$emptyS,
25
+ illustrationTheme = datagridState.illustrationTheme,
26
+ emptyStateAction = datagridState.emptyStateAction,
27
+ emptyStateLink = datagridState.emptyStateLink;
24
28
  return /*#__PURE__*/React.createElement(TableBody, _extends({}, getTableBodyProps(), {
25
29
  className: "".concat(blockClass, "__empty-state-body")
26
30
  }), /*#__PURE__*/React.createElement(TableRow, null, /*#__PURE__*/React.createElement(TableCell, {
27
31
  colSpan: headers.length
28
- }, /*#__PURE__*/React.createElement(NoDataEmptyState, {
32
+ }, emptyStateType === 'error' && /*#__PURE__*/React.createElement(ErrorEmptyState, {
29
33
  illustrationTheme: illustrationTheme,
30
34
  size: emptyStateSize,
31
35
  title: emptyStateTitle,
32
- subtitle: emptyStateDescription
36
+ subtitle: emptyStateDescription,
37
+ action: emptyStateAction,
38
+ link: emptyStateLink
39
+ }), emptyStateType === 'noData' && /*#__PURE__*/React.createElement(NoDataEmptyState, {
40
+ illustrationTheme: illustrationTheme,
41
+ size: emptyStateSize,
42
+ title: emptyStateTitle,
43
+ subtitle: emptyStateDescription,
44
+ action: emptyStateAction,
45
+ link: emptyStateLink
33
46
  }))));
34
47
  };
35
48
  export default DatagridEmptyBody;
@@ -10,14 +10,12 @@ var _excluded = ["children"];
10
10
  * restricted by GSA ADP Schedule Contract with IBM Corp.
11
11
  */
12
12
  // @flow
13
- import React, { useContext } from 'react';
13
+ import React from 'react';
14
14
  import { DataTable, SkeletonText } from 'carbon-components-react';
15
15
  import { px } from '@carbon/layout';
16
16
  import cx from 'classnames';
17
17
  import { selectionColumnId } from '../common-column-ids';
18
18
  import { pkg, carbon } from '../../../settings';
19
- import { InlineEditContext } from './addons/InlineEdit/InlineEditContext/InlineEditContext';
20
- import { getCellIdAsObject } from './addons/InlineEdit/InlineEditContext/getCellIdAsObject';
21
19
  var blockClass = "".concat(pkg.prefix, "--datagrid");
22
20
  var TableRow = DataTable.TableRow,
23
21
  TableCell = DataTable.TableCell;
@@ -35,10 +33,6 @@ var DatagridRow = function DatagridRow(datagridState) {
35
33
  var row = datagridState.row,
36
34
  rowSize = datagridState.rowSize,
37
35
  withNestedRows = datagridState.withNestedRows;
38
- var _useContext = useContext(InlineEditContext),
39
- state = _useContext.state;
40
- var activeCellId = state.activeCellId;
41
- var activeCellObject = activeCellId && getCellIdAsObject(activeCellId);
42
36
  var getVisibleNestedRowCount = function getVisibleNestedRowCount(_ref) {
43
37
  var isExpanded = _ref.isExpanded,
44
38
  subRows = _ref.subRows;
@@ -52,7 +46,7 @@ var DatagridRow = function DatagridRow(datagridState) {
52
46
  return size;
53
47
  };
54
48
  return /*#__PURE__*/React.createElement(TableRow, _extends({
55
- className: cx("".concat(blockClass, "__carbon-row"), (_cx = {}, _defineProperty(_cx, "".concat(blockClass, "__carbon-row-expanded"), row.isExpanded), _defineProperty(_cx, "".concat(blockClass, "__carbon-row-expandable"), row.canExpand), _defineProperty(_cx, "".concat(carbon.prefix, "--data-table--selected"), row.isSelected), _defineProperty(_cx, "".concat(blockClass, "__carbon-row-hover-active"), activeCellObject && row.index === activeCellObject.row), _cx))
49
+ className: cx("".concat(blockClass, "__carbon-row"), (_cx = {}, _defineProperty(_cx, "".concat(blockClass, "__carbon-row-expanded"), row.isExpanded), _defineProperty(_cx, "".concat(blockClass, "__carbon-row-expandable"), row.canExpand), _defineProperty(_cx, "".concat(carbon.prefix, "--data-table--selected"), row.isSelected), _cx))
56
50
  }, row.getRowProps(), {
57
51
  key: row.id,
58
52
  onMouseEnter: function onMouseEnter(event) {
@@ -13,6 +13,8 @@ import React, { useEffect } from 'react';
13
13
  import { VariableSizeList } from 'react-window';
14
14
  import { DataTable } from 'carbon-components-react';
15
15
  import { pkg } from '../../../settings';
16
+ import DatagridHead from './DatagridHead';
17
+ import { px } from '@carbon/layout';
16
18
  var blockClass = "".concat(pkg.prefix, "--datagrid");
17
19
  var TableBody = DataTable.TableBody;
18
20
  var rowSizeMap = {
@@ -29,6 +31,7 @@ var rowSizeMap = {
29
31
  };
30
32
  var defaultRowHeight = rowSizeMap.lg;
31
33
  var DatagridVirtualBody = function DatagridVirtualBody(datagridState) {
34
+ var _gridRef$current, _gridRef$current2;
32
35
  var getTableBodyProps = datagridState.getTableBodyProps,
33
36
  rows = datagridState.rows,
34
37
  prepareRow = datagridState.prepareRow,
@@ -42,7 +45,14 @@ var DatagridVirtualBody = function DatagridVirtualBody(datagridState) {
42
45
  DatagridPagination = datagridState.DatagridPagination,
43
46
  page = datagridState.page,
44
47
  handleResize = datagridState.handleResize,
45
- withOverflowRow = datagridState.withOverflowRow;
48
+ gridRef = datagridState.gridRef;
49
+ var syncScroll = function syncScroll(e) {
50
+ var virtualBody = e.target;
51
+ document.querySelector(".".concat(blockClass, "__head-warp")).scrollLeft = virtualBody.scrollLeft;
52
+ var spacerColumn = document.querySelector(".".concat(blockClass, "__head-warp thead th:last-child"));
53
+ spacerColumn.style.width = px(32 + (virtualBody.offsetWidth - virtualBody.clientWidth)); // scrollbar width to header column to fix header alignment
54
+ };
55
+
46
56
  useEffect(function () {
47
57
  handleResize();
48
58
  }, [handleResize]);
@@ -51,8 +61,16 @@ var DatagridVirtualBody = function DatagridVirtualBody(datagridState) {
51
61
  listRef.current.resetAfterIndex(0);
52
62
  }
53
63
  var visibleRows = DatagridPagination && page || rows;
54
- return /*#__PURE__*/React.createElement(TableBody, _extends({}, getTableBodyProps(), {
55
- onScroll: onScroll
64
+ return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
65
+ className: "".concat(blockClass, "__head-warp"),
66
+ style: {
67
+ width: (_gridRef$current = gridRef.current) === null || _gridRef$current === void 0 ? void 0 : _gridRef$current.clientWidth,
68
+ overflow: 'hidden'
69
+ }
70
+ }, /*#__PURE__*/React.createElement(DatagridHead, datagridState)), /*#__PURE__*/React.createElement(TableBody, _extends({}, getTableBodyProps(), {
71
+ onScroll: function onScroll(e) {
72
+ return syncScroll(e);
73
+ }
56
74
  }), /*#__PURE__*/React.createElement(VariableSizeList, {
57
75
  height: virtualHeight || tableHeight,
58
76
  itemCount: visibleRows.length,
@@ -63,19 +81,20 @@ var DatagridVirtualBody = function DatagridVirtualBody(datagridState) {
63
81
  onScroll: onScroll,
64
82
  innerRef: innerListRef,
65
83
  ref: listRef,
66
- className: "".concat(blockClass, "__virtual-scrollbar")
84
+ className: "".concat(blockClass, "__virtual-scrollbar"),
85
+ style: {
86
+ width: (_gridRef$current2 = gridRef.current) === null || _gridRef$current2 === void 0 ? void 0 : _gridRef$current2.clientWidth
87
+ }
67
88
  }, function (_ref) {
68
89
  var index = _ref.index,
69
90
  style = _ref.style;
70
91
  var row = visibleRows[index];
71
92
  prepareRow(row);
72
93
  return /*#__PURE__*/React.createElement("div", {
73
- style: _objectSpread(_objectSpread({}, style), {}, {
74
- overflow: withOverflowRow ? 'visible' : 'hidden'
75
- })
94
+ style: _objectSpread({}, style)
76
95
  }, row.RowRenderer(_objectSpread(_objectSpread({}, datagridState), {}, {
77
96
  row: row
78
97
  })));
79
- }));
98
+ })));
80
99
  };
81
100
  export default DatagridVirtualBody;
@@ -48,12 +48,9 @@ var FilterFlyout = function FilterFlyout(_ref) {
48
48
  onApply = _ref$onApply === void 0 ? function () {} : _ref$onApply,
49
49
  _ref$onCancel = _ref.onCancel,
50
50
  onCancel = _ref$onCancel === void 0 ? function () {} : _ref$onCancel,
51
- _ref$shouldClickOutsi = _ref.shouldClickOutsideToClose,
52
- shouldClickOutsideToClose = _ref$shouldClickOutsi === void 0 ? false : _ref$shouldClickOutsi,
53
51
  _ref$secondaryActionL = _ref.secondaryActionLabel,
54
52
  secondaryActionLabel = _ref$secondaryActionL === void 0 ? 'Cancel' : _ref$secondaryActionL,
55
- setAllFilters = _ref.setAllFilters,
56
- setFilter = _ref.setFilter;
53
+ setAllFilters = _ref.setAllFilters;
57
54
  /** Context state and methods */
58
55
  var _useContext = useContext(FilterContext),
59
56
  EventEmitter = _useContext.EventEmitter;
@@ -100,8 +97,11 @@ var FilterFlyout = function FilterFlyout(_ref) {
100
97
  prevFiltersObjectArrayRef.current = JSON.stringify(filtersObjectArray);
101
98
  };
102
99
  var cancel = function cancel() {
103
- revertToPreviousFilters();
104
- onCancel();
100
+ // Reverting to previous filters only applies when using batch actions
101
+ if (updateMethod === BATCH) {
102
+ revertToPreviousFilters();
103
+ onCancel();
104
+ }
105
105
  closeFlyout();
106
106
  };
107
107
  var reset = function reset() {
@@ -133,34 +133,32 @@ var FilterFlyout = function FilterFlyout(_ref) {
133
133
  if (type === DATE && !value[1]) {
134
134
  return;
135
135
  }
136
- if (updateMethod === BATCH) {
137
- var filtersObjectArrayCopy = _toConsumableArray(filtersObjectArray);
138
- // check if the filter already exists in the array
139
- var filter = filtersObjectArrayCopy.find(function (item) {
140
- return item.id === column;
136
+ var filtersObjectArrayCopy = _toConsumableArray(filtersObjectArray);
137
+ // check if the filter already exists in the array
138
+ var filter = filtersObjectArrayCopy.find(function (item) {
139
+ return item.id === column;
140
+ });
141
+
142
+ // if filter exists in array then update the filter's new value
143
+ if (filter) {
144
+ filter.value = value;
145
+ } else {
146
+ filtersObjectArrayCopy.push({
147
+ id: column,
148
+ value: value,
149
+ type: type
141
150
  });
151
+ }
152
+ setFiltersObjectArray(filtersObjectArrayCopy);
142
153
 
143
- // if filter exists in array then update the filter's new value
144
- if (filter) {
145
- filter.value = value;
146
- } else {
147
- filtersObjectArrayCopy.push({
148
- id: column,
149
- value: value,
150
- type: type
151
- });
152
- }
153
- setFiltersObjectArray(filtersObjectArrayCopy);
154
- } else if (updateMethod === INSTANT) {
155
- setFilter(column, value);
154
+ // Automatically apply the filters if the updateMethod is instant
155
+ if (updateMethod === INSTANT) {
156
+ setAllFilters(filtersObjectArrayCopy);
156
157
  }
157
- }, [setFilter, updateMethod, filtersObjectArray]);
158
+ }, [setAllFilters, updateMethod, filtersObjectArray]);
158
159
 
159
160
  /** Effects */
160
161
  useClickOutside(filterFlyoutRef, function (target) {
161
- if (shouldClickOutsideToClose === false) {
162
- return;
163
- }
164
162
  var hasClickedOnDatePicker = target.closest('.flatpickr-calendar');
165
163
  if (!open || hasClickedOnDatePicker) {
166
164
  return;
@@ -222,7 +220,7 @@ var FilterFlyout = function FilterFlyout(_ref) {
222
220
  key: option.labelText
223
221
  }, option, {
224
222
  onChange: function onChange(isSelected) {
225
- var _components$option$on, _components$option;
223
+ var _option$onChange;
226
224
  var checkboxCopy = filtersState[column];
227
225
  var foundCheckbox = checkboxCopy.find(function (checkbox) {
228
226
  return checkbox.value === option.value;
@@ -234,7 +232,7 @@ var FilterFlyout = function FilterFlyout(_ref) {
234
232
  value: _toConsumableArray(filtersState[column]),
235
233
  type: type
236
234
  });
237
- (_components$option$on = (_components$option = components.option).onChange) === null || _components$option$on === void 0 ? void 0 : _components$option$on.call(_components$option, isSelected);
235
+ (_option$onChange = option.onChange) === null || _option$onChange === void 0 ? void 0 : _option$onChange.call(option, isSelected);
238
236
  },
239
237
  checked: option.selected
240
238
  }));
@@ -260,10 +258,11 @@ var FilterFlyout = function FilterFlyout(_ref) {
260
258
  })));
261
259
  } else if (type === DROPDOWN) {
262
260
  return /*#__PURE__*/React.createElement(Dropdown, _extends({}, components.Dropdown, {
261
+ selectedItem: filtersState[column],
263
262
  onChange: function onChange(_ref5) {
264
- var _objectSpread6, _components$Dropdown$, _components$Dropdown;
263
+ var _components$Dropdown$, _components$Dropdown;
265
264
  var selectedItem = _ref5.selectedItem;
266
- setFiltersState(_objectSpread(_objectSpread({}, filtersState), {}, (_objectSpread6 = {}, _defineProperty(_objectSpread6, column, selectedItem), _defineProperty(_objectSpread6, "type", type), _objectSpread6)));
265
+ setFiltersState(_objectSpread(_objectSpread({}, filtersState), {}, _defineProperty({}, column, selectedItem)));
267
266
  applyFilters({
268
267
  column: column,
269
268
  value: selectedItem,
@@ -320,10 +319,6 @@ var FilterFlyout = function FilterFlyout(_ref) {
320
319
  }, renderFilters())), renderActionSet()));
321
320
  };
322
321
  FilterFlyout.propTypes = {
323
- /**
324
- * React children of carbon filters
325
- */
326
- children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]).isRequired,
327
322
  /**
328
323
  * Array of filters to render
329
324
  */
@@ -364,14 +359,6 @@ FilterFlyout.propTypes = {
364
359
  * Function that sets all the filters, this comes from the datagridState
365
360
  */
366
361
  setAllFilters: PropTypes.func.isRequired,
367
- /**
368
- * Function that sets an individual filter, this comes from the datagridState
369
- */
370
- setFilter: PropTypes.func.isRequired,
371
- /**
372
- * Boolean if you want the flyout to close when clicked outside of the parent
373
- */
374
- shouldClickOutsideToClose: PropTypes.bool,
375
362
  /**
376
363
  * Title of the filter flyout
377
364
  */
@@ -1,4 +1,5 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
+ import _typeof from "@babel/runtime/helpers/typeof";
2
3
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
3
4
  import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
4
5
  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; }
@@ -22,7 +23,7 @@ import { usePreviousValue } from '../../../../../../global/js/hooks';
22
23
  import { prepareProps } from '../../../../../../global/js/utils/props-helper';
23
24
  var blockClass = "".concat(pkg.prefix, "--datagrid");
24
25
  export var InlineEditCell = function InlineEditCell(_ref) {
25
- var _config$validator, _cx3;
26
+ var _config$validator, _cx3, _value$text;
26
27
  var cell = _ref.cell,
27
28
  config = _ref.config,
28
29
  instance = _ref.instance,
@@ -248,6 +249,11 @@ export var InlineEditCell = function InlineEditCell(_ref) {
248
249
  className: cx("".concat(blockClass, "__inline-edit--select-item"))
249
250
  }, item === null || item === void 0 ? void 0 : item.text)) : item === null || item === void 0 ? void 0 : item.text;
250
251
  };
252
+ var handleTransformedItem = function handleTransformedItem(items) {
253
+ return items !== null && items !== void 0 && items.length && _typeof(items[0]) === 'object' ? function (item) {
254
+ return renderDropdownItem(item);
255
+ } : null;
256
+ };
251
257
  var renderSelectCell = function renderSelectCell() {
252
258
  var _ref5 = config || {},
253
259
  inputProps = _ref5.inputProps;
@@ -263,12 +269,8 @@ export var InlineEditCell = function InlineEditCell(_ref) {
263
269
  className: cx("".concat(blockClass, "__inline-edit--select"), _defineProperty({}, "".concat(blockClass, "__inline-edit--select-").concat(rowSize), rowSize)),
264
270
  items: (inputProps === null || inputProps === void 0 ? void 0 : inputProps.items) || [],
265
271
  initialSelectedItem: cell.value,
266
- itemToElement: function itemToElement(item) {
267
- return renderDropdownItem(item);
268
- },
269
- renderSelectedItem: function renderSelectedItem(item) {
270
- return renderDropdownItem(item);
271
- },
272
+ itemToElement: handleTransformedItem(inputProps === null || inputProps === void 0 ? void 0 : inputProps.items),
273
+ renderSelectedItem: handleTransformedItem(inputProps === null || inputProps === void 0 ? void 0 : inputProps.items),
272
274
  onChange: function onChange(item) {
273
275
  var _inputProps$onChange;
274
276
  var newCellId = getNewCellId('Enter');
@@ -432,7 +434,7 @@ export var InlineEditCell = function InlineEditCell(_ref) {
432
434
  }, !inEditMode && /*#__PURE__*/React.createElement(InlineEditButton, {
433
435
  isActiveCell: cellId === activeCellId,
434
436
  renderIcon: setRenderIcon(),
435
- label: type === 'selection' ? value.text : type === 'date' ? buildDate(value) : value,
437
+ label: type === 'selection' ? (_value$text = value === null || value === void 0 ? void 0 : value.text) !== null && _value$text !== void 0 ? _value$text : value : type === 'date' ? buildDate(value) : value,
436
438
  labelIcon: (value === null || value === void 0 ? void 0 : value.icon) || null,
437
439
  placeholder: placeholder,
438
440
  tabIndex: tabIndex,
@@ -2,4 +2,4 @@ export { story as CustomizeColumnStory } from './CustomizeColumnStory';
2
2
  export { default as StickyActionsColumn } from './StickyActionsColumnStory';
3
3
  export { story as RowSizeDropdownStory } from './RowSizeDropdownStory';
4
4
  export { story as LeftPanelStory } from './LeftPanelStory';
5
- export { story as SelectAllWitHToggle } from './SelectAllWithToggleStory';
5
+ export { story as SelectAllWithToggle } from './SelectAllWithToggleStory';
@@ -61,7 +61,6 @@ var useFiltering = function useFiltering(hooks) {
61
61
  hooks.useInstance.push(function (instance) {
62
62
  var filterProps = instance.filterProps,
63
63
  setAllFilters = instance.setAllFilters,
64
- setFilter = instance.setFilter,
65
64
  headers = instance.headers;
66
65
  var defaultProps = {
67
66
  variation: 'flyout'
@@ -69,7 +68,6 @@ var useFiltering = function useFiltering(hooks) {
69
68
  var getFilterFlyoutProps = function getFilterFlyoutProps() {
70
69
  return _objectSpread(_objectSpread(_objectSpread({}, defaultProps), filterProps), {}, {
71
70
  setAllFilters: setAllFilters,
72
- setFilter: setFilter,
73
71
  headers: headers
74
72
  });
75
73
  };
@@ -12,6 +12,7 @@ var useParentDimensions = function useParentDimensions(hooks) {
12
12
  var headRef = useRef();
13
13
  var innerListRef = useRef();
14
14
  var listRef = useRef();
15
+ var gridRef = useRef();
15
16
  var _useState = useState(),
16
17
  _useState2 = _slicedToArray(_useState, 2),
17
18
  tableHeight = _useState2[0],
@@ -47,7 +48,8 @@ var useParentDimensions = function useParentDimensions(hooks) {
47
48
  headRef: headRef,
48
49
  innerListRef: innerListRef,
49
50
  handleResize: handleResize,
50
- listRef: listRef
51
+ listRef: listRef,
52
+ gridRef: gridRef
51
53
  });
52
54
  };
53
55
  hooks.useInstance.push(useInstance);
@@ -46,6 +46,10 @@ export var ARG_TYPES = {
46
46
  control: 'select',
47
47
  options: ['sm', 'lg']
48
48
  },
49
+ emptyStateType: {
50
+ control: 'select',
51
+ options: ['error', 'noData']
52
+ },
49
53
  useDenseHeader: {
50
54
  control: {
51
55
  type: 'radio'
@@ -86,5 +90,10 @@ export var ARG_TYPES = {
86
90
  customizeColumnsProps: {
87
91
  control: 'object',
88
92
  description: 'This is an object containing all of the props used with the column customization extension. _This value is set/passed inside of the `datagridState` object._'
93
+ },
94
+ filterProps: {
95
+ name: 'Filter props',
96
+ control: 'object',
97
+ description: 'This is an object for all the props passed into the filter flyout and filter panel'
89
98
  }
90
99
  };
@@ -74,8 +74,13 @@ export var getInlineEditColumns = function getInlineEditColumns() {
74
74
  accessor: 'visits',
75
75
  width: 120,
76
76
  inlineEdit: {
77
+ validator: function validator(n) {
78
+ return n && n < 10;
79
+ },
77
80
  type: 'number',
78
- inputProps: {} // These props are passed to the Carbon component used for inline editing
81
+ inputProps: {
82
+ invalidText: 'Invalid number, must be 10 or greater'
83
+ } // These props are passed to the Carbon component used for inline editing
79
84
  }
80
85
  }, {
81
86
  Header: 'Active since',
@@ -18,6 +18,7 @@ import React, { useRef, useState } from 'react';
18
18
  import PropTypes from 'prop-types';
19
19
  import cx from 'classnames';
20
20
  import { getDevtoolsProps } from '../../global/js/utils/devtools';
21
+ import pconsole from '../../global/js/utils/pconsole';
21
22
  import { pkg, carbon } from '../../settings';
22
23
 
23
24
  // Carbon and package components we use.
@@ -38,7 +39,6 @@ var defaults = {
38
39
  size: 'md'
39
40
  };
40
41
  var buttons = ['cancel', 'edit', 'save'];
41
- console.warn('the v1 version of this component is being deprecated. please switch to the v2 component as soon as possible.');
42
42
 
43
43
  /**
44
44
  * TODO: A description of the component.
@@ -83,6 +83,7 @@ export var InlineEditV1 = /*#__PURE__*/React.forwardRef(function (_ref, refIn) {
83
83
  var showValidation = invalid; // || warn;
84
84
  var validationText = invalidText; // || warnText;
85
85
  var validationIcon = showValidation ? /*#__PURE__*/React.createElement(WarningFilled16, null) : null;
86
+ pconsole.warn("".concat(componentName, ": the v1 version of this component is being deprecated. please switch to the v2 component as soon as possible."));
86
87
 
87
88
  // sanitize the tooltip values
88
89
  var alignIsObject = _typeof(buttonTooltipAlignment) === 'object';
@@ -421,7 +421,7 @@ export var PageHeader = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
421
421
  kind: "ghost",
422
422
  onClick: handleCollapseToggle,
423
423
  renderIcon: ChevronUp16,
424
- size: "field",
424
+ size: "md",
425
425
  tooltipPosition: "bottom",
426
426
  tooltipAlignment: "end",
427
427
  type: "button"
@@ -2,7 +2,7 @@ import _extends from "@babel/runtime/helpers/extends";
2
2
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
3
3
  import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
4
4
  import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
5
- var _excluded = ["body", "className", "iconDescription", "inputInvalidText", "inputLabelText", "inputPlaceholderText", "label", "onClose", "onRequestSubmit", "open", "preventCloseOnClickOutside", "primaryButtonText", "resourceName", "secondaryButtonText", "textConfirmation", "title"];
5
+ var _excluded = ["body", "className", "iconDescription", "inputInvalidText", "inputLabelText", "inputPlaceholderText", "label", "onClose", "onRequestSubmit", "open", "preventCloseOnClickOutside", "primaryButtonDisabled", "primaryButtonText", "resourceName", "secondaryButtonText", "textConfirmation", "title"];
6
6
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
7
7
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
8
8
  //
@@ -33,6 +33,7 @@ export var RemoveModal = /*#__PURE__*/forwardRef(function (_ref, ref) {
33
33
  onRequestSubmit = _ref.onRequestSubmit,
34
34
  open = _ref.open,
35
35
  preventCloseOnClickOutside = _ref.preventCloseOnClickOutside,
36
+ primaryButtonDisabled = _ref.primaryButtonDisabled,
36
37
  primaryButtonText = _ref.primaryButtonText,
37
38
  resourceName = _ref.resourceName,
38
39
  secondaryButtonText = _ref.secondaryButtonText,
@@ -50,7 +51,16 @@ export var RemoveModal = /*#__PURE__*/forwardRef(function (_ref, ref) {
50
51
  var onChangeHandler = function onChangeHandler(e) {
51
52
  setUserInput(e.target.value);
52
53
  };
53
- var primaryButtonDisabled = textConfirmation && userInput !== resourceName;
54
+ var checkPrimaryButtonDisabled = function checkPrimaryButtonDisabled() {
55
+ // user control should be used primarily
56
+ if (primaryButtonDisabled) {
57
+ return true;
58
+ } else if (textConfirmation && userInput !== resourceName) {
59
+ return true;
60
+ }
61
+ return false;
62
+ };
63
+ var primaryButtonStatus = checkPrimaryButtonDisabled();
54
64
  var blockClass = "".concat(pkg.prefix, "--remove-modal");
55
65
 
56
66
  // Clear the user input this way so that if the onRequestSubmit handler fails for some reason
@@ -93,7 +103,7 @@ export var RemoveModal = /*#__PURE__*/forwardRef(function (_ref, ref) {
93
103
  type: "submit",
94
104
  kind: "danger",
95
105
  onClick: onRequestSubmit,
96
- disabled: primaryButtonDisabled
106
+ disabled: primaryButtonStatus
97
107
  }, primaryButtonText)));
98
108
  });
99
109
 
@@ -144,6 +154,10 @@ RemoveModal.propTypes = {
144
154
  * Prevent closing on click outside of modal
145
155
  */
146
156
  preventCloseOnClickOutside: PropTypes.bool,
157
+ /**
158
+ * Specify whether the primary button should be disabled. This value will override textConfirmation
159
+ */
160
+ primaryButtonDisabled: PropTypes.bool,
147
161
  /**
148
162
  * Specify the text for the primary button
149
163
  */
@@ -68,7 +68,8 @@ var defaults = {
68
68
  EditTearsheet: false,
69
69
  EditTearsheetNarrow: false,
70
70
  EditFullPage: false,
71
- EditUpdateCards: false
71
+ EditUpdateCards: false,
72
+ ButtonMenu: false
72
73
  /* new component flags here - comment used by generate CLI */
73
74
  },
74
75
 
@@ -111,5 +111,5 @@ ButtonMenu.propTypes = {
111
111
  * The size of the button for the menu trigger. The values can be any valid
112
112
  * value for the carbon Button component 'size' prop.
113
113
  */
114
- size: _carbonComponentsReact.Button.propTypes.size
114
+ size: _propTypes.default.oneOf(['sm', 'md', 'lg'])
115
115
  };
@@ -31,7 +31,7 @@ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o =
31
31
  function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
32
32
  var blockClass = "".concat(_settings.pkg.prefix, "--button-set-with-overflow");
33
33
  var componentName = 'ButtonSetWithOverflow';
34
- var buttonSize = 'field';
34
+ var buttonSize = 'md';
35
35
  var ButtonSetWithOverflow = function ButtonSetWithOverflow(_ref) {
36
36
  var buttons = _ref.buttons,
37
37
  className = _ref.className,
@@ -78,7 +78,7 @@ var Card = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
78
78
  titleSize = _ref$titleSize === void 0 ? defaults.titleSize : _ref$titleSize,
79
79
  rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
80
80
  var blockClass = "".concat(_settings.pkg.prefix, "--card");
81
- var hasActions = actionIcons.length > 0 || overflowActions.length > 0 || primaryButtonText && primaryButtonPlacement === 'top';
81
+ var hasActions = actionIcons.length > 0 || overflowActions.length > 0 || !!primaryButtonText && primaryButtonPlacement === 'top';
82
82
  var hasFooterActions = hasActions && actionsPlacement === 'bottom';
83
83
  var hasFooterButton = !!secondaryButtonText || !!primaryButtonText && primaryButtonPlacement === 'bottom';
84
84
  var hasBottomBar = hasFooterActions || hasFooterButton;
@@ -186,9 +186,7 @@ var DataSpreadsheet = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref
186
186
  // Removes the active cell element
187
187
  var removeActiveCell = (0, _react.useCallback)(function () {
188
188
  var activeCellHighlight = spreadsheetRef.current.querySelector(".".concat(blockClass, "__active-cell--highlight"));
189
- if (activeCellHighlight) {
190
- activeCellHighlight.style.display = 'none';
191
- }
189
+ activeCellHighlight.style.display = 'none';
192
190
  }, [spreadsheetRef]);
193
191
  var removeCellEditor = (0, _react.useCallback)(function () {
194
192
  setCellEditorValue('');
@@ -14,6 +14,7 @@ var _rangeWithCallback = require("../../../global/js/utils/rangeWithCallback");
14
14
  */
15
15
 
16
16
  var handleCellDeletion = function handleCellDeletion(_ref) {
17
+ var _selectionAreaToEmpty, _selectionAreaToEmpty2, _selectionAreaToEmpty3, _selectionAreaToEmpty4, _selectionAreaToEmpty5, _selectionAreaToEmpty6, _selectionAreaToEmpty7, _selectionAreaToEmpty8;
17
18
  var activeCellCoordinates = _ref.activeCellCoordinates,
18
19
  selectionAreas = _ref.selectionAreas,
19
20
  currentMatcher = _ref.currentMatcher,
@@ -31,10 +32,10 @@ var handleCellDeletion = function handleCellDeletion(_ref) {
31
32
  return item.matcher === currentMatcher;
32
33
  });
33
34
  var selectionAreaToEmptyContents = selectionAreaClone[indexOfCurrentSelectionArea];
34
- var lowestColumnIndex = Math.min(selectionAreaToEmptyContents.point1.column, selectionAreaToEmptyContents.point2.column);
35
- var greatestColumnIndex = Math.max(selectionAreaToEmptyContents.point1.column, selectionAreaToEmptyContents.point2.column);
36
- var lowestRowIndex = Math.min(selectionAreaToEmptyContents.point1.row, selectionAreaToEmptyContents.point2.row);
37
- var greatestRowIndex = Math.max(selectionAreaToEmptyContents.point1.row, selectionAreaToEmptyContents.point2.row);
35
+ var lowestColumnIndex = Math.min(selectionAreaToEmptyContents === null || selectionAreaToEmptyContents === void 0 ? void 0 : (_selectionAreaToEmpty = selectionAreaToEmptyContents.point1) === null || _selectionAreaToEmpty === void 0 ? void 0 : _selectionAreaToEmpty.column, selectionAreaToEmptyContents === null || selectionAreaToEmptyContents === void 0 ? void 0 : (_selectionAreaToEmpty2 = selectionAreaToEmptyContents.point2) === null || _selectionAreaToEmpty2 === void 0 ? void 0 : _selectionAreaToEmpty2.column);
36
+ var greatestColumnIndex = Math.max(selectionAreaToEmptyContents === null || selectionAreaToEmptyContents === void 0 ? void 0 : (_selectionAreaToEmpty3 = selectionAreaToEmptyContents.point1) === null || _selectionAreaToEmpty3 === void 0 ? void 0 : _selectionAreaToEmpty3.column, selectionAreaToEmptyContents === null || selectionAreaToEmptyContents === void 0 ? void 0 : (_selectionAreaToEmpty4 = selectionAreaToEmptyContents.point2) === null || _selectionAreaToEmpty4 === void 0 ? void 0 : _selectionAreaToEmpty4.column);
37
+ var lowestRowIndex = Math.min(selectionAreaToEmptyContents === null || selectionAreaToEmptyContents === void 0 ? void 0 : (_selectionAreaToEmpty5 = selectionAreaToEmptyContents.point1) === null || _selectionAreaToEmpty5 === void 0 ? void 0 : _selectionAreaToEmpty5.row, selectionAreaToEmptyContents === null || selectionAreaToEmptyContents === void 0 ? void 0 : (_selectionAreaToEmpty6 = selectionAreaToEmptyContents.point2) === null || _selectionAreaToEmpty6 === void 0 ? void 0 : _selectionAreaToEmpty6.row);
38
+ var greatestRowIndex = Math.max(selectionAreaToEmptyContents === null || selectionAreaToEmptyContents === void 0 ? void 0 : (_selectionAreaToEmpty7 = selectionAreaToEmptyContents.point1) === null || _selectionAreaToEmpty7 === void 0 ? void 0 : _selectionAreaToEmpty7.row, selectionAreaToEmptyContents === null || selectionAreaToEmptyContents === void 0 ? void 0 : (_selectionAreaToEmpty8 = selectionAreaToEmptyContents.point2) === null || _selectionAreaToEmpty8 === void 0 ? void 0 : _selectionAreaToEmpty8.row);
38
39
  (0, _rangeWithCallback.rangeWithCallback)(lowestColumnIndex, greatestColumnIndex, function (columnIndex) {
39
40
  (0, _rangeWithCallback.rangeWithCallback)(lowestRowIndex, greatestRowIndex, function (rowIndex) {
40
41
  var cellProps = rows[rowIndex].cells[columnIndex];