@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
@@ -51,7 +51,8 @@ var DatagridContent = function DatagridContent(_ref) {
51
51
  withInlineEdit = datagridState.withInlineEdit,
52
52
  tableId = datagridState.tableId,
53
53
  DatagridActions = datagridState.DatagridActions,
54
- totalColumnsWidth = datagridState.totalColumnsWidth;
54
+ totalColumnsWidth = datagridState.totalColumnsWidth,
55
+ gridRef = datagridState.gridRef;
55
56
  var rows = DatagridPagination && datagridState.page || datagridState.rows;
56
57
  var gridActive = state.gridActive,
57
58
  editId = state.editId;
@@ -91,7 +92,7 @@ var DatagridContent = function DatagridContent(_ref) {
91
92
  onFocus: withInlineEdit ? function () {
92
93
  return (0, _handleGridFocus.handleGridFocus)(state, dispatch);
93
94
  } : null
94
- }), /*#__PURE__*/_react.default.createElement(_DatagridHead.default, datagridState), /*#__PURE__*/_react.default.createElement(_DatagridBody.default, (0, _extends2.default)({}, datagridState, {
95
+ }), !withVirtualScroll ? /*#__PURE__*/_react.default.createElement(_DatagridHead.default, datagridState) : null, /*#__PURE__*/_react.default.createElement(_DatagridBody.default, (0, _extends2.default)({}, datagridState, {
95
96
  rows: rows
96
97
  })));
97
98
  };
@@ -126,6 +127,9 @@ var DatagridContent = function DatagridContent(_ref) {
126
127
  className: "".concat(blockClass, "__datagridLeftPanel")
127
128
  }, leftPanel.panelContent), withInlineEdit ? /*#__PURE__*/_react.default.createElement("div", {
128
129
  ref: multiKeyTrackingRef
130
+ }, renderTable()) : withVirtualScroll ? /*#__PURE__*/_react.default.createElement("div", {
131
+ className: "".concat(blockClass, "__virtualScrollContainer"),
132
+ ref: gridRef
129
133
  }, renderTable()) : renderTable())), (rows === null || rows === void 0 ? void 0 : rows.length) > 0 && !isFetching && DatagridPagination && /*#__PURE__*/_react.default.createElement(DatagridPagination, datagridState), CustomizeColumnsModal && /*#__PURE__*/_react.default.createElement(CustomizeColumnsModal, {
130
134
  instance: datagridState
131
135
  }));
@@ -150,6 +154,7 @@ DatagridContent.propTypes = {
150
154
  page: _propTypes.default.arrayOf(_propTypes.default.object),
151
155
  rows: _propTypes.default.arrayOf(_propTypes.default.object),
152
156
  tableId: _propTypes.default.string,
153
- totalColumnsWidth: _propTypes.default.number
157
+ totalColumnsWidth: _propTypes.default.number,
158
+ gridRef: _propTypes.default.object
154
159
  })
155
160
  };
@@ -9,7 +9,7 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
9
9
  var _react = _interopRequireDefault(require("react"));
10
10
  var _settings = require("../../../settings");
11
11
  var _carbonComponentsReact = require("carbon-components-react");
12
- var _NoDataEmptyState = require("../../EmptyStates/NoDataEmptyState");
12
+ var _EmptyStates = require("../../EmptyStates");
13
13
  /*
14
14
  * Licensed Materials - Property of IBM
15
15
  * 5724-Q36
@@ -28,16 +28,29 @@ var DatagridEmptyBody = function DatagridEmptyBody(datagridState) {
28
28
  emptyStateTitle = datagridState.emptyStateTitle,
29
29
  emptyStateDescription = datagridState.emptyStateDescription,
30
30
  emptyStateSize = datagridState.emptyStateSize,
31
- illustrationTheme = datagridState.illustrationTheme;
31
+ _datagridState$emptyS = datagridState.emptyStateType,
32
+ emptyStateType = _datagridState$emptyS === void 0 ? 'noData' : _datagridState$emptyS,
33
+ illustrationTheme = datagridState.illustrationTheme,
34
+ emptyStateAction = datagridState.emptyStateAction,
35
+ emptyStateLink = datagridState.emptyStateLink;
32
36
  return /*#__PURE__*/_react.default.createElement(TableBody, (0, _extends2.default)({}, getTableBodyProps(), {
33
37
  className: "".concat(blockClass, "__empty-state-body")
34
38
  }), /*#__PURE__*/_react.default.createElement(TableRow, null, /*#__PURE__*/_react.default.createElement(TableCell, {
35
39
  colSpan: headers.length
36
- }, /*#__PURE__*/_react.default.createElement(_NoDataEmptyState.NoDataEmptyState, {
40
+ }, emptyStateType === 'error' && /*#__PURE__*/_react.default.createElement(_EmptyStates.ErrorEmptyState, {
37
41
  illustrationTheme: illustrationTheme,
38
42
  size: emptyStateSize,
39
43
  title: emptyStateTitle,
40
- subtitle: emptyStateDescription
44
+ subtitle: emptyStateDescription,
45
+ action: emptyStateAction,
46
+ link: emptyStateLink
47
+ }), emptyStateType === 'noData' && /*#__PURE__*/_react.default.createElement(_EmptyStates.NoDataEmptyState, {
48
+ illustrationTheme: illustrationTheme,
49
+ size: emptyStateSize,
50
+ title: emptyStateTitle,
51
+ subtitle: emptyStateDescription,
52
+ action: emptyStateAction,
53
+ link: emptyStateLink
41
54
  }))));
42
55
  };
43
56
  var _default = DatagridEmptyBody;
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- var _typeof = require("@babel/runtime/helpers/typeof");
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
@@ -9,17 +8,13 @@ exports.default = void 0;
9
8
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
9
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
11
10
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
12
- var _react = _interopRequireWildcard(require("react"));
11
+ var _react = _interopRequireDefault(require("react"));
13
12
  var _carbonComponentsReact = require("carbon-components-react");
14
13
  var _layout = require("@carbon/layout");
15
14
  var _classnames = _interopRequireDefault(require("classnames"));
16
15
  var _commonColumnIds = require("../common-column-ids");
17
16
  var _settings = require("../../../settings");
18
- var _InlineEditContext = require("./addons/InlineEdit/InlineEditContext/InlineEditContext");
19
- var _getCellIdAsObject = require("./addons/InlineEdit/InlineEditContext/getCellIdAsObject");
20
17
  var _excluded = ["children"];
21
- 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); }
22
- 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; }
23
18
  var blockClass = "".concat(_settings.pkg.prefix, "--datagrid");
24
19
  var TableRow = _carbonComponentsReact.DataTable.TableRow,
25
20
  TableCell = _carbonComponentsReact.DataTable.TableCell;
@@ -37,10 +32,6 @@ var DatagridRow = function DatagridRow(datagridState) {
37
32
  var row = datagridState.row,
38
33
  rowSize = datagridState.rowSize,
39
34
  withNestedRows = datagridState.withNestedRows;
40
- var _useContext = (0, _react.useContext)(_InlineEditContext.InlineEditContext),
41
- state = _useContext.state;
42
- var activeCellId = state.activeCellId;
43
- var activeCellObject = activeCellId && (0, _getCellIdAsObject.getCellIdAsObject)(activeCellId);
44
35
  var getVisibleNestedRowCount = function getVisibleNestedRowCount(_ref) {
45
36
  var isExpanded = _ref.isExpanded,
46
37
  subRows = _ref.subRows;
@@ -54,7 +45,7 @@ var DatagridRow = function DatagridRow(datagridState) {
54
45
  return size;
55
46
  };
56
47
  return /*#__PURE__*/_react.default.createElement(TableRow, (0, _extends2.default)({
57
- className: (0, _classnames.default)("".concat(blockClass, "__carbon-row"), (_cx = {}, (0, _defineProperty2.default)(_cx, "".concat(blockClass, "__carbon-row-expanded"), row.isExpanded), (0, _defineProperty2.default)(_cx, "".concat(blockClass, "__carbon-row-expandable"), row.canExpand), (0, _defineProperty2.default)(_cx, "".concat(_settings.carbon.prefix, "--data-table--selected"), row.isSelected), (0, _defineProperty2.default)(_cx, "".concat(blockClass, "__carbon-row-hover-active"), activeCellObject && row.index === activeCellObject.row), _cx))
48
+ className: (0, _classnames.default)("".concat(blockClass, "__carbon-row"), (_cx = {}, (0, _defineProperty2.default)(_cx, "".concat(blockClass, "__carbon-row-expanded"), row.isExpanded), (0, _defineProperty2.default)(_cx, "".concat(blockClass, "__carbon-row-expandable"), row.canExpand), (0, _defineProperty2.default)(_cx, "".concat(_settings.carbon.prefix, "--data-table--selected"), row.isSelected), _cx))
58
49
  }, row.getRowProps(), {
59
50
  key: row.id,
60
51
  onMouseEnter: function onMouseEnter(event) {
@@ -12,6 +12,8 @@ var _react = _interopRequireWildcard(require("react"));
12
12
  var _reactWindow = require("react-window");
13
13
  var _carbonComponentsReact = require("carbon-components-react");
14
14
  var _settings = require("../../../settings");
15
+ var _DatagridHead = _interopRequireDefault(require("./DatagridHead"));
16
+ var _layout = require("@carbon/layout");
15
17
  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); }
16
18
  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; }
17
19
  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; }
@@ -32,6 +34,7 @@ var rowSizeMap = {
32
34
  };
33
35
  var defaultRowHeight = rowSizeMap.lg;
34
36
  var DatagridVirtualBody = function DatagridVirtualBody(datagridState) {
37
+ var _gridRef$current, _gridRef$current2;
35
38
  var getTableBodyProps = datagridState.getTableBodyProps,
36
39
  rows = datagridState.rows,
37
40
  prepareRow = datagridState.prepareRow,
@@ -45,7 +48,14 @@ var DatagridVirtualBody = function DatagridVirtualBody(datagridState) {
45
48
  DatagridPagination = datagridState.DatagridPagination,
46
49
  page = datagridState.page,
47
50
  handleResize = datagridState.handleResize,
48
- withOverflowRow = datagridState.withOverflowRow;
51
+ gridRef = datagridState.gridRef;
52
+ var syncScroll = function syncScroll(e) {
53
+ var virtualBody = e.target;
54
+ document.querySelector(".".concat(blockClass, "__head-warp")).scrollLeft = virtualBody.scrollLeft;
55
+ var spacerColumn = document.querySelector(".".concat(blockClass, "__head-warp thead th:last-child"));
56
+ spacerColumn.style.width = (0, _layout.px)(32 + (virtualBody.offsetWidth - virtualBody.clientWidth)); // scrollbar width to header column to fix header alignment
57
+ };
58
+
49
59
  (0, _react.useEffect)(function () {
50
60
  handleResize();
51
61
  }, [handleResize]);
@@ -54,8 +64,16 @@ var DatagridVirtualBody = function DatagridVirtualBody(datagridState) {
54
64
  listRef.current.resetAfterIndex(0);
55
65
  }
56
66
  var visibleRows = DatagridPagination && page || rows;
57
- return /*#__PURE__*/_react.default.createElement(TableBody, (0, _extends2.default)({}, getTableBodyProps(), {
58
- onScroll: onScroll
67
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
68
+ className: "".concat(blockClass, "__head-warp"),
69
+ style: {
70
+ width: (_gridRef$current = gridRef.current) === null || _gridRef$current === void 0 ? void 0 : _gridRef$current.clientWidth,
71
+ overflow: 'hidden'
72
+ }
73
+ }, /*#__PURE__*/_react.default.createElement(_DatagridHead.default, datagridState)), /*#__PURE__*/_react.default.createElement(TableBody, (0, _extends2.default)({}, getTableBodyProps(), {
74
+ onScroll: function onScroll(e) {
75
+ return syncScroll(e);
76
+ }
59
77
  }), /*#__PURE__*/_react.default.createElement(_reactWindow.VariableSizeList, {
60
78
  height: virtualHeight || tableHeight,
61
79
  itemCount: visibleRows.length,
@@ -66,20 +84,21 @@ var DatagridVirtualBody = function DatagridVirtualBody(datagridState) {
66
84
  onScroll: onScroll,
67
85
  innerRef: innerListRef,
68
86
  ref: listRef,
69
- className: "".concat(blockClass, "__virtual-scrollbar")
87
+ className: "".concat(blockClass, "__virtual-scrollbar"),
88
+ style: {
89
+ width: (_gridRef$current2 = gridRef.current) === null || _gridRef$current2 === void 0 ? void 0 : _gridRef$current2.clientWidth
90
+ }
70
91
  }, function (_ref) {
71
92
  var index = _ref.index,
72
93
  style = _ref.style;
73
94
  var row = visibleRows[index];
74
95
  prepareRow(row);
75
96
  return /*#__PURE__*/_react.default.createElement("div", {
76
- style: _objectSpread(_objectSpread({}, style), {}, {
77
- overflow: withOverflowRow ? 'visible' : 'hidden'
78
- })
97
+ style: _objectSpread({}, style)
79
98
  }, row.RowRenderer(_objectSpread(_objectSpread({}, datagridState), {}, {
80
99
  row: row
81
100
  })));
82
- }));
101
+ })));
83
102
  };
84
103
  var _default = DatagridVirtualBody;
85
104
  exports.default = _default;
@@ -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 = (0, _react.useContext)(_FilterProvider.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 === _constants.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 === _constants.DATE && !value[1]) {
134
134
  return;
135
135
  }
136
- if (updateMethod === _constants.BATCH) {
137
- var filtersObjectArrayCopy = (0, _toConsumableArray2.default)(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 = (0, _toConsumableArray2.default)(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 === _constants.INSTANT) {
155
- setFilter(column, value);
154
+ // Automatically apply the filters if the updateMethod is instant
155
+ if (updateMethod === _constants.INSTANT) {
156
+ setAllFilters(filtersObjectArrayCopy);
156
157
  }
157
- }, [setFilter, updateMethod, filtersObjectArray]);
158
+ }, [setAllFilters, updateMethod, filtersObjectArray]);
158
159
 
159
160
  /** Effects */
160
161
  (0, _hooks.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: (0, _toConsumableArray2.default)(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 === _constants.DROPDOWN) {
262
260
  return /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.Dropdown, (0, _extends2.default)({}, 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 = {}, (0, _defineProperty2.default)(_objectSpread6, column, selectedItem), (0, _defineProperty2.default)(_objectSpread6, "type", type), _objectSpread6)));
265
+ setFiltersState(_objectSpread(_objectSpread({}, filtersState), {}, (0, _defineProperty2.default)({}, 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.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.node), _propTypes.default.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.default.func.isRequired,
367
- /**
368
- * Function that sets an individual filter, this comes from the datagridState
369
- */
370
- setFilter: _propTypes.default.func.isRequired,
371
- /**
372
- * Boolean if you want the flyout to close when clicked outside of the parent
373
- */
374
- shouldClickOutsideToClose: _propTypes.default.bool,
375
362
  /**
376
363
  * Title of the filter flyout
377
364
  */
@@ -1,12 +1,13 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- var _typeof = require("@babel/runtime/helpers/typeof");
4
+ var _typeof3 = require("@babel/runtime/helpers/typeof");
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
8
  exports.InlineEditCell = void 0;
9
9
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
+ var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
10
11
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
12
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
12
13
  var _react = _interopRequireWildcard(require("react"));
@@ -20,12 +21,12 @@ var _InlineEditContext = require("../InlineEditContext");
20
21
  var _hooks = require("../../../../../../global/js/hooks");
21
22
  var _propsHelper = require("../../../../../../global/js/utils/props-helper");
22
23
  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); }
23
- 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; }
24
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof3(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; }
24
25
  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; }
25
26
  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; }
26
27
  var blockClass = "".concat(_settings.pkg.prefix, "--datagrid");
27
28
  var InlineEditCell = function InlineEditCell(_ref) {
28
- var _config$validator, _cx3;
29
+ var _config$validator, _cx3, _value$text;
29
30
  var cell = _ref.cell,
30
31
  config = _ref.config,
31
32
  instance = _ref.instance,
@@ -251,6 +252,11 @@ var InlineEditCell = function InlineEditCell(_ref) {
251
252
  className: (0, _classnames.default)("".concat(blockClass, "__inline-edit--select-item"))
252
253
  }, item === null || item === void 0 ? void 0 : item.text)) : item === null || item === void 0 ? void 0 : item.text;
253
254
  };
255
+ var handleTransformedItem = function handleTransformedItem(items) {
256
+ return items !== null && items !== void 0 && items.length && (0, _typeof2.default)(items[0]) === 'object' ? function (item) {
257
+ return renderDropdownItem(item);
258
+ } : null;
259
+ };
254
260
  var renderSelectCell = function renderSelectCell() {
255
261
  var _ref5 = config || {},
256
262
  inputProps = _ref5.inputProps;
@@ -266,12 +272,8 @@ var InlineEditCell = function InlineEditCell(_ref) {
266
272
  className: (0, _classnames.default)("".concat(blockClass, "__inline-edit--select"), (0, _defineProperty2.default)({}, "".concat(blockClass, "__inline-edit--select-").concat(rowSize), rowSize)),
267
273
  items: (inputProps === null || inputProps === void 0 ? void 0 : inputProps.items) || [],
268
274
  initialSelectedItem: cell.value,
269
- itemToElement: function itemToElement(item) {
270
- return renderDropdownItem(item);
271
- },
272
- renderSelectedItem: function renderSelectedItem(item) {
273
- return renderDropdownItem(item);
274
- },
275
+ itemToElement: handleTransformedItem(inputProps === null || inputProps === void 0 ? void 0 : inputProps.items),
276
+ renderSelectedItem: handleTransformedItem(inputProps === null || inputProps === void 0 ? void 0 : inputProps.items),
275
277
  onChange: function onChange(item) {
276
278
  var _inputProps$onChange;
277
279
  var newCellId = getNewCellId('Enter');
@@ -435,7 +437,7 @@ var InlineEditCell = function InlineEditCell(_ref) {
435
437
  }, !inEditMode && /*#__PURE__*/_react.default.createElement(_InlineEditButton.InlineEditButton, {
436
438
  isActiveCell: cellId === activeCellId,
437
439
  renderIcon: setRenderIcon(),
438
- label: type === 'selection' ? value.text : type === 'date' ? buildDate(value) : value,
440
+ 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,
439
441
  labelIcon: (value === null || value === void 0 ? void 0 : value.icon) || null,
440
442
  placeholder: placeholder,
441
443
  tabIndex: tabIndex,
@@ -22,7 +22,7 @@ Object.defineProperty(exports, "RowSizeDropdownStory", {
22
22
  return _RowSizeDropdownStory.story;
23
23
  }
24
24
  });
25
- Object.defineProperty(exports, "SelectAllWitHToggle", {
25
+ Object.defineProperty(exports, "SelectAllWithToggle", {
26
26
  enumerable: true,
27
27
  get: function get() {
28
28
  return _SelectAllWithToggleStory.story;
@@ -60,7 +60,6 @@ var useFiltering = function useFiltering(hooks) {
60
60
  hooks.useInstance.push(function (instance) {
61
61
  var filterProps = instance.filterProps,
62
62
  setAllFilters = instance.setAllFilters,
63
- setFilter = instance.setFilter,
64
63
  headers = instance.headers;
65
64
  var defaultProps = {
66
65
  variation: 'flyout'
@@ -68,7 +67,6 @@ var useFiltering = function useFiltering(hooks) {
68
67
  var getFilterFlyoutProps = function getFilterFlyoutProps() {
69
68
  return _objectSpread(_objectSpread(_objectSpread({}, defaultProps), filterProps), {}, {
70
69
  setAllFilters: setAllFilters,
71
- setFilter: setFilter,
72
70
  headers: headers
73
71
  });
74
72
  };
@@ -20,6 +20,7 @@ var useParentDimensions = function useParentDimensions(hooks) {
20
20
  var headRef = (0, _react.useRef)();
21
21
  var innerListRef = (0, _react.useRef)();
22
22
  var listRef = (0, _react.useRef)();
23
+ var gridRef = (0, _react.useRef)();
23
24
  var _useState = (0, _react.useState)(),
24
25
  _useState2 = (0, _slicedToArray2.default)(_useState, 2),
25
26
  tableHeight = _useState2[0],
@@ -55,7 +56,8 @@ var useParentDimensions = function useParentDimensions(hooks) {
55
56
  headRef: headRef,
56
57
  innerListRef: innerListRef,
57
58
  handleResize: handleResize,
58
- listRef: listRef
59
+ listRef: listRef,
60
+ gridRef: gridRef
59
61
  });
60
62
  };
61
63
  hooks.useInstance.push(useInstance);
@@ -52,6 +52,10 @@ var ARG_TYPES = {
52
52
  control: 'select',
53
53
  options: ['sm', 'lg']
54
54
  },
55
+ emptyStateType: {
56
+ control: 'select',
57
+ options: ['error', 'noData']
58
+ },
55
59
  useDenseHeader: {
56
60
  control: {
57
61
  type: 'radio'
@@ -92,6 +96,11 @@ var ARG_TYPES = {
92
96
  customizeColumnsProps: {
93
97
  control: 'object',
94
98
  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._'
99
+ },
100
+ filterProps: {
101
+ name: 'Filter props',
102
+ control: 'object',
103
+ description: 'This is an object for all the props passed into the filter flyout and filter panel'
95
104
  }
96
105
  };
97
106
  exports.ARG_TYPES = ARG_TYPES;
@@ -81,8 +81,13 @@ var getInlineEditColumns = function getInlineEditColumns() {
81
81
  accessor: 'visits',
82
82
  width: 120,
83
83
  inlineEdit: {
84
+ validator: function validator(n) {
85
+ return n && n < 10;
86
+ },
84
87
  type: 'number',
85
- inputProps: {} // These props are passed to the Carbon component used for inline editing
88
+ inputProps: {
89
+ invalidText: 'Invalid number, must be 10 or greater'
90
+ } // These props are passed to the Carbon component used for inline editing
86
91
  }
87
92
  }, {
88
93
  Header: 'Active since',
@@ -15,6 +15,7 @@ var _react = _interopRequireWildcard(require("react"));
15
15
  var _propTypes = _interopRequireDefault(require("prop-types"));
16
16
  var _classnames = _interopRequireDefault(require("classnames"));
17
17
  var _devtools = require("../../global/js/utils/devtools");
18
+ var _pconsole = _interopRequireDefault(require("../../global/js/utils/pconsole"));
18
19
  var _settings = require("../../settings");
19
20
  var _carbonComponentsReact = require("carbon-components-react");
20
21
  var _iconsReact = require("@carbon/icons-react");
@@ -34,7 +35,6 @@ var defaults = {
34
35
  size: 'md'
35
36
  };
36
37
  var buttons = ['cancel', 'edit', 'save'];
37
- console.warn('the v1 version of this component is being deprecated. please switch to the v2 component as soon as possible.');
38
38
 
39
39
  /**
40
40
  * TODO: A description of the component.
@@ -79,6 +79,7 @@ var InlineEditV1 = /*#__PURE__*/_react.default.forwardRef(function (_ref, refIn)
79
79
  var showValidation = invalid; // || warn;
80
80
  var validationText = invalidText; // || warnText;
81
81
  var validationIcon = showValidation ? /*#__PURE__*/_react.default.createElement(_iconsReact.WarningFilled16, null) : null;
82
+ _pconsole.default.warn("".concat(componentName, ": the v1 version of this component is being deprecated. please switch to the v2 component as soon as possible."));
82
83
 
83
84
  // sanitize the tooltip values
84
85
  var alignIsObject = (0, _typeof2.default)(buttonTooltipAlignment) === 'object';
@@ -422,7 +422,7 @@ var PageHeader = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref) {
422
422
  kind: "ghost",
423
423
  onClick: handleCollapseToggle,
424
424
  renderIcon: _iconsReact.ChevronUp16,
425
- size: "field",
425
+ size: "md",
426
426
  tooltipPosition: "bottom",
427
427
  tooltipAlignment: "end",
428
428
  type: "button"
@@ -18,7 +18,7 @@ var _devtools = require("../../global/js/utils/devtools");
18
18
  var _uuidv = _interopRequireDefault(require("../../global/js/utils/uuidv4"));
19
19
  var _settings = require("../../settings");
20
20
  var _hooks = require("../../global/js/hooks");
21
- var _excluded = ["body", "className", "iconDescription", "inputInvalidText", "inputLabelText", "inputPlaceholderText", "label", "onClose", "onRequestSubmit", "open", "preventCloseOnClickOutside", "primaryButtonText", "resourceName", "secondaryButtonText", "textConfirmation", "title"];
21
+ var _excluded = ["body", "className", "iconDescription", "inputInvalidText", "inputLabelText", "inputPlaceholderText", "label", "onClose", "onRequestSubmit", "open", "preventCloseOnClickOutside", "primaryButtonDisabled", "primaryButtonText", "resourceName", "secondaryButtonText", "textConfirmation", "title"];
22
22
  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); }
23
23
  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; }
24
24
  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; }
@@ -36,6 +36,7 @@ var RemoveModal = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
36
36
  onRequestSubmit = _ref.onRequestSubmit,
37
37
  open = _ref.open,
38
38
  preventCloseOnClickOutside = _ref.preventCloseOnClickOutside,
39
+ primaryButtonDisabled = _ref.primaryButtonDisabled,
39
40
  primaryButtonText = _ref.primaryButtonText,
40
41
  resourceName = _ref.resourceName,
41
42
  secondaryButtonText = _ref.secondaryButtonText,
@@ -53,7 +54,16 @@ var RemoveModal = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
53
54
  var onChangeHandler = function onChangeHandler(e) {
54
55
  setUserInput(e.target.value);
55
56
  };
56
- var primaryButtonDisabled = textConfirmation && userInput !== resourceName;
57
+ var checkPrimaryButtonDisabled = function checkPrimaryButtonDisabled() {
58
+ // user control should be used primarily
59
+ if (primaryButtonDisabled) {
60
+ return true;
61
+ } else if (textConfirmation && userInput !== resourceName) {
62
+ return true;
63
+ }
64
+ return false;
65
+ };
66
+ var primaryButtonStatus = checkPrimaryButtonDisabled();
57
67
  var blockClass = "".concat(_settings.pkg.prefix, "--remove-modal");
58
68
 
59
69
  // Clear the user input this way so that if the onRequestSubmit handler fails for some reason
@@ -96,7 +106,7 @@ var RemoveModal = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
96
106
  type: "submit",
97
107
  kind: "danger",
98
108
  onClick: onRequestSubmit,
99
- disabled: primaryButtonDisabled
109
+ disabled: primaryButtonStatus
100
110
  }, primaryButtonText)));
101
111
  });
102
112
 
@@ -148,6 +158,10 @@ RemoveModal.propTypes = {
148
158
  * Prevent closing on click outside of modal
149
159
  */
150
160
  preventCloseOnClickOutside: _propTypes.default.bool,
161
+ /**
162
+ * Specify whether the primary button should be disabled. This value will override textConfirmation
163
+ */
164
+ primaryButtonDisabled: _propTypes.default.bool,
151
165
  /**
152
166
  * Specify the text for the primary button
153
167
  */
@@ -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
 
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@carbon/ibm-products",
3
3
  "description": "Carbon for IBM Products",
4
- "version": "1.39.0",
4
+ "version": "1.41.0",
5
5
  "license": "Apache-2.0",
6
6
  "main": "lib/index.js",
7
7
  "module": "es/index.js",
@@ -95,5 +95,5 @@
95
95
  "react": "^16.8.6 || ^17.0.1",
96
96
  "react-dom": "^16.8.6 || ^17.0.1"
97
97
  },
98
- "gitHead": "aa6bc71d9dc7286e586479f681a0de13ea58404b"
98
+ "gitHead": "e4bf28006ae17c6720e5142f6bafd8fe02586b00"
99
99
  }
@@ -101,3 +101,10 @@ $block-class: #{$pkg-prefix}--datagrid;
101
101
  .#{$block-class}__mobile-toolbar-modal .#{$carbon-prefix}--dropdown__wrapper {
102
102
  margin-bottom: $spacing-07;
103
103
  }
104
+
105
+ .storybook-#{$block-class}__validation-code-snippet {
106
+ margin-right: $spacing-03;
107
+ // prevent code-snippet from inheriting font-size
108
+ // stylelint-disable-next-line carbon/type-token-use
109
+ font-size: 0;
110
+ }