@carbon/ibm-products 1.17.0 → 1.18.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (74) hide show
  1. package/README.md +30 -27
  2. package/css/components/Datagrid/styles/datagrid.css +24 -4
  3. package/css/components/Datagrid/styles/datagrid.css.map +1 -1
  4. package/css/components/Datagrid/styles/index.css +24 -4
  5. package/css/components/Datagrid/styles/index.css.map +1 -1
  6. package/css/index-full-carbon.css +215 -90
  7. package/css/index-full-carbon.css.map +1 -1
  8. package/css/index-full-carbon.min.css +4 -4
  9. package/css/index-full-carbon.min.css.map +1 -1
  10. package/css/index-without-carbon.css +98 -24
  11. package/css/index-without-carbon.css.map +1 -1
  12. package/css/index-without-carbon.min.css +2 -2
  13. package/css/index-without-carbon.min.css.map +1 -1
  14. package/css/index.css +124 -55
  15. package/css/index.css.map +1 -1
  16. package/css/index.min.css +4 -4
  17. package/css/index.min.css.map +1 -1
  18. package/es/components/AddSelect/AddSelect.js +57 -8
  19. package/es/components/AddSelect/AddSelectColumn.js +31 -73
  20. package/es/components/AddSelect/AddSelectFilter.js +2 -2
  21. package/es/components/AddSelect/AddSelectList.js +32 -6
  22. package/es/components/AddSelect/AddSelectMetaPanel.js +54 -0
  23. package/es/components/AddSelect/AddSelectSidebar.js +19 -1
  24. package/es/components/AddSelect/AddSelectSort.js +61 -0
  25. package/es/components/AddSelect/add-select-utils.js +21 -0
  26. package/es/components/AddSelect/hooks/useItemSort.js +20 -0
  27. package/es/components/DataSpreadsheet/DataSpreadsheet.js +29 -15
  28. package/es/components/DataSpreadsheet/DataSpreadsheetBody.js +89 -46
  29. package/es/components/DataSpreadsheet/DataSpreadsheetHeader.js +70 -6
  30. package/es/components/DataSpreadsheet/hooks/index.js +3 -1
  31. package/es/components/DataSpreadsheet/hooks/useSpreadsheetEdit.js +15 -14
  32. package/es/components/DataSpreadsheet/hooks/useSpreadsheetMouseMove.js +64 -0
  33. package/es/components/DataSpreadsheet/hooks/useSpreadsheetMouseUp.js +155 -0
  34. package/es/components/DataSpreadsheet/utils/createCellSelectionArea.js +3 -3
  35. package/es/components/DataSpreadsheet/utils/getCellSize.js +10 -10
  36. package/es/components/DataSpreadsheet/utils/getSpreadsheetWidth.js +8 -2
  37. package/es/components/DataSpreadsheet/utils/handleHeaderCellSelection.js +1 -1
  38. package/es/components/DataSpreadsheet/utils/moveColumnIndicatorLine.js +35 -0
  39. package/es/components/Datagrid/Datagrid/Datagrid.js +1 -1
  40. package/es/components/Datagrid/Datagrid/DatagridEmptyBody.js +22 -3
  41. package/es/components/Datagrid/Datagrid/addons/RowSize/RowSizeDropdown.js +3 -3
  42. package/es/components/Datagrid/Datagrid/addons/RowSize/RowSizeRadioGroup.js +1 -1
  43. package/es/components/ExportModal/ExportModal.js +1 -1
  44. package/lib/components/AddSelect/AddSelect.js +58 -8
  45. package/lib/components/AddSelect/AddSelectColumn.js +32 -71
  46. package/lib/components/AddSelect/AddSelectFilter.js +2 -2
  47. package/lib/components/AddSelect/AddSelectList.js +30 -4
  48. package/lib/components/AddSelect/AddSelectMetaPanel.js +77 -0
  49. package/lib/components/AddSelect/AddSelectSidebar.js +20 -1
  50. package/lib/components/AddSelect/AddSelectSort.js +79 -0
  51. package/lib/components/AddSelect/add-select-utils.js +29 -2
  52. package/lib/components/AddSelect/hooks/useItemSort.js +33 -0
  53. package/lib/components/DataSpreadsheet/DataSpreadsheet.js +28 -14
  54. package/lib/components/DataSpreadsheet/DataSpreadsheetBody.js +90 -45
  55. package/lib/components/DataSpreadsheet/DataSpreadsheetHeader.js +72 -6
  56. package/lib/components/DataSpreadsheet/hooks/index.js +17 -1
  57. package/lib/components/DataSpreadsheet/hooks/useSpreadsheetEdit.js +14 -14
  58. package/lib/components/DataSpreadsheet/hooks/useSpreadsheetMouseMove.js +78 -0
  59. package/lib/components/DataSpreadsheet/hooks/useSpreadsheetMouseUp.js +163 -0
  60. package/lib/components/DataSpreadsheet/utils/createCellSelectionArea.js +3 -3
  61. package/lib/components/DataSpreadsheet/utils/getCellSize.js +4 -4
  62. package/lib/components/DataSpreadsheet/utils/getSpreadsheetWidth.js +8 -2
  63. package/lib/components/DataSpreadsheet/utils/handleHeaderCellSelection.js +1 -1
  64. package/lib/components/DataSpreadsheet/utils/moveColumnIndicatorLine.js +46 -0
  65. package/lib/components/Datagrid/Datagrid/Datagrid.js +1 -1
  66. package/lib/components/Datagrid/Datagrid/DatagridEmptyBody.js +24 -3
  67. package/lib/components/Datagrid/Datagrid/addons/RowSize/RowSizeDropdown.js +3 -3
  68. package/lib/components/Datagrid/Datagrid/addons/RowSize/RowSizeRadioGroup.js +1 -1
  69. package/lib/components/ExportModal/ExportModal.js +1 -1
  70. package/package.json +13 -12
  71. package/scss/components/AddSelect/_add-select.scss +45 -5
  72. package/scss/components/DataSpreadsheet/_data-spreadsheet.scss +28 -14
  73. package/scss/components/Datagrid/_storybook-styles.scss +5 -0
  74. package/scss/components/Datagrid/styles/datagrid.scss +43 -5
@@ -0,0 +1,163 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.useSpreadsheetMouseUp = void 0;
9
+
10
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
+
12
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
13
+
14
+ var _react = require("react");
15
+
16
+ var _layout = require("@carbon/layout");
17
+
18
+ var _settings = require("../../../settings");
19
+
20
+ var _deepCloneObject = require("../../../global/js/utils/deepCloneObject");
21
+
22
+ 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; }
23
+
24
+ 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; }
25
+
26
+ var useSpreadsheetMouseUp = function useSpreadsheetMouseUp(_ref) {
27
+ var currentMatcher = _ref.currentMatcher,
28
+ setSelectionAreas = _ref.setSelectionAreas,
29
+ setClickAndHoldActive = _ref.setClickAndHoldActive,
30
+ setValidStartingPoint = _ref.setValidStartingPoint,
31
+ validStartingPoint = _ref.validStartingPoint,
32
+ _ref$blockClass = _ref.blockClass,
33
+ blockClass = _ref$blockClass === void 0 ? "".concat(_settings.pkg.prefix, "--data-spreadsheet") : _ref$blockClass,
34
+ ref = _ref.ref,
35
+ setHeaderCellHoldActive = _ref.setHeaderCellHoldActive,
36
+ setColumnOrder = _ref.setColumnOrder,
37
+ visibleColumns = _ref.visibleColumns,
38
+ setActiveCellCoordinates = _ref.setActiveCellCoordinates,
39
+ activeCellCoordinates = _ref.activeCellCoordinates,
40
+ rows = _ref.rows,
41
+ defaultColumn = _ref.defaultColumn;
42
+ (0, _react.useEffect)(function () {
43
+ var handleMouseUp = function handleMouseUp(event) {
44
+ // Remove the cloned selection area on mouse up
45
+ if (!validStartingPoint) {
46
+ setHeaderCellHoldActive(false);
47
+ var selectionAreaCloneElement = ref.current.querySelector(".".concat(blockClass, "__selection-area--element-cloned"));
48
+
49
+ if (!selectionAreaCloneElement) {
50
+ return;
51
+ } // Mouse up while a cloned selection area exists/a column is being reordered
52
+
53
+
54
+ if (selectionAreaCloneElement) {
55
+ var closestCell = event.target.closest(".".concat(blockClass, "--interactive-cell-element"));
56
+ var newColumnIndex = closestCell === null || closestCell === void 0 ? void 0 : closestCell.getAttribute('data-column-index');
57
+ var originalColumnIndex = selectionAreaCloneElement === null || selectionAreaCloneElement === void 0 ? void 0 : selectionAreaCloneElement.getAttribute('data-column-index-original');
58
+ var columnToMoveToElement = ref.current.querySelector("[data-row-index=\"header\"][data-column-index=\"".concat(newColumnIndex, "\"]")); // Mouse up element was not part of the spreadsheet component
59
+
60
+ if (!columnToMoveToElement) {
61
+ return;
62
+ }
63
+
64
+ var selectionAreaToMove = ref.current.querySelector("[data-matcher-id=\"".concat(currentMatcher, "\"]"));
65
+ var spreadsheetPosition = ref.current.getBoundingClientRect();
66
+ var newIndexPosition = columnToMoveToElement.getBoundingClientRect();
67
+ var listContainer = ref.current.querySelector(".".concat(blockClass, "__list--container"));
68
+ var leftScrollAmount = listContainer.scrollLeft;
69
+ var relativeNewPosition = newIndexPosition.left - spreadsheetPosition.left + leftScrollAmount;
70
+ var cloneColumnWidth = selectionAreaCloneElement.offsetWidth;
71
+ var columnsWidthUpToNewIndex = 0;
72
+ var newIndexLessThanStarting = newColumnIndex < originalColumnIndex;
73
+ visibleColumns.forEach(function (item, index) {
74
+ if (newIndexLessThanStarting && index === visibleColumns.length - 1) {
75
+ return;
76
+ }
77
+
78
+ if (index <= newColumnIndex) {
79
+ columnsWidthUpToNewIndex += (item === null || item === void 0 ? void 0 : item.width) || (defaultColumn === null || defaultColumn === void 0 ? void 0 : defaultColumn.width);
80
+ }
81
+ });
82
+ var updatedSelectionAreaPlacement = newIndexLessThanStarting ? relativeNewPosition : columnsWidthUpToNewIndex - cloneColumnWidth + (defaultColumn === null || defaultColumn === void 0 ? void 0 : defaultColumn.rowHeaderWidth);
83
+ selectionAreaToMove.style.left = (0, _layout.px)(updatedSelectionAreaPlacement);
84
+ setSelectionAreas(function (prev) {
85
+ var selectionAreaClone = (0, _deepCloneObject.deepCloneObject)(prev);
86
+
87
+ if (originalColumnIndex === newColumnIndex) {
88
+ return prev;
89
+ }
90
+
91
+ var indexOfItemToUpdate = selectionAreaClone.findIndex(function (item) {
92
+ return item.matcher === currentMatcher;
93
+ });
94
+
95
+ if (indexOfItemToUpdate === -1) {
96
+ return prev;
97
+ }
98
+
99
+ selectionAreaClone[indexOfItemToUpdate].header.index = Number(newColumnIndex);
100
+ selectionAreaClone[indexOfItemToUpdate].point1.column = Number(newColumnIndex);
101
+ selectionAreaClone[indexOfItemToUpdate].point2.column = Number(newColumnIndex);
102
+ return selectionAreaClone;
103
+ });
104
+ var columnIdArray = visibleColumns.map(function (column) {
105
+ return column.id;
106
+ });
107
+ var columnIdArrayClone = (0, _toConsumableArray2.default)(columnIdArray); // Remove one element at the original index
108
+
109
+ columnIdArrayClone.splice(originalColumnIndex, 1); // Add one element at the new index
110
+
111
+ columnIdArrayClone.splice(newColumnIndex, 0, columnIdArray[originalColumnIndex]);
112
+ setColumnOrder(columnIdArrayClone); // Function provided by useTable (react-table) hook to reorder columns
113
+
114
+ var newCellCoords = _objectSpread(_objectSpread({}, activeCellCoordinates), {}, {
115
+ column: Number(newColumnIndex)
116
+ });
117
+
118
+ setActiveCellCoordinates(newCellCoords); // Remove the cloned column and indicator elements
119
+
120
+ var indicatorLineElement = ref.current.querySelector(".".concat(blockClass, "__reorder-indicator-line"));
121
+ indicatorLineElement === null || indicatorLineElement === void 0 ? void 0 : indicatorLineElement.remove();
122
+ selectionAreaCloneElement === null || selectionAreaCloneElement === void 0 ? void 0 : selectionAreaCloneElement.remove();
123
+ }
124
+ } // Mouse up was on a spreadsheet body cell which is a valid
125
+ // start/end point for creating a selection area
126
+
127
+
128
+ if (validStartingPoint) {
129
+ setClickAndHoldActive(false);
130
+ setValidStartingPoint(false);
131
+ var cellButton = event.target.closest(".".concat(blockClass, "__body--td"));
132
+
133
+ if (cellButton) {
134
+ var endCellCoordinates = {
135
+ row: Number(cellButton.getAttribute('data-row-index')),
136
+ column: Number(cellButton.getAttribute('data-column-index'))
137
+ };
138
+ setSelectionAreas(function (prev) {
139
+ var selectionAreaClone = (0, _deepCloneObject.deepCloneObject)(prev);
140
+ var indexOfItemToUpdate = selectionAreaClone.findIndex(function (item) {
141
+ return item.matcher === currentMatcher;
142
+ }); // No items in the array have an object that matches the value of currentMatcher
143
+
144
+ if (indexOfItemToUpdate === -1) {
145
+ return prev;
146
+ }
147
+
148
+ selectionAreaClone[indexOfItemToUpdate].point2 = endCellCoordinates;
149
+ selectionAreaClone[indexOfItemToUpdate].areaCreated = false;
150
+ return selectionAreaClone;
151
+ });
152
+ }
153
+ }
154
+ };
155
+
156
+ document.addEventListener('mouseup', handleMouseUp);
157
+ return function () {
158
+ document.removeEventListener('mouseup', handleMouseUp);
159
+ };
160
+ }, [blockClass, currentMatcher, setSelectionAreas, setClickAndHoldActive, setValidStartingPoint, validStartingPoint, ref, setHeaderCellHoldActive, setColumnOrder, visibleColumns, setActiveCellCoordinates, activeCellCoordinates, rows, defaultColumn]);
161
+ };
162
+
163
+ exports.useSpreadsheetMouseUp = useSpreadsheetMouseUp;
@@ -21,11 +21,11 @@ var createCellSelectionArea = function createCellSelectionArea(_ref) {
21
21
  var ref = _ref.ref,
22
22
  area = _ref.area,
23
23
  blockClass = _ref.blockClass,
24
- columns = _ref.columns,
25
24
  defaultColumn = _ref.defaultColumn,
26
25
  selectionAreas = _ref.selectionAreas,
27
26
  setSelectionAreas = _ref.setSelectionAreas,
28
- setActiveCellInsideSelectionArea = _ref.setActiveCellInsideSelectionArea;
27
+ setActiveCellInsideSelectionArea = _ref.setActiveCellInsideSelectionArea,
28
+ visibleColumns = _ref.visibleColumns;
29
29
 
30
30
  var _getSelectionAreaPoin = (0, _getSelectionAreaPoints.getSelectionAreaPoints)(area),
31
31
  lowestColumnIndex = _getSelectionAreaPoin.lowestColumnIndex,
@@ -40,7 +40,7 @@ var createCellSelectionArea = function createCellSelectionArea(_ref) {
40
40
  }
41
41
 
42
42
  var selectionAreaVariableWidth = 0;
43
- columns.forEach(function (item, index) {
43
+ visibleColumns.forEach(function (item, index) {
44
44
  if (index >= lowestColumnIndex && index <= greatestColumnIndex) {
45
45
  selectionAreaVariableWidth += (item === null || item === void 0 ? void 0 : item.width) || (defaultColumn === null || defaultColumn === void 0 ? void 0 : defaultColumn.width);
46
46
  }
@@ -19,16 +19,16 @@ var getSizeInPixels = function getSizeInPixels(carbonSize) {
19
19
 
20
20
  var getCellSize = function getCellSize(cellSize) {
21
21
  switch (cellSize) {
22
- case 'compact':
22
+ case 'xs':
23
23
  return getSizeInPixels(_layout.sizeXSmall);
24
24
 
25
- case 'standard':
25
+ case 'sm':
26
26
  return getSizeInPixels(_layout.sizeSmall);
27
27
 
28
- case 'medium':
28
+ case 'md':
29
29
  return getSizeInPixels(_layout.sizeMedium);
30
30
 
31
- case 'large':
31
+ case 'lg':
32
32
  return getSizeInPixels(_layout.sizeLarge);
33
33
 
34
34
  default:
@@ -19,7 +19,8 @@ var getSpreadsheetWidth = function getSpreadsheetWidth(_ref) {
19
19
  scrollBarSizeValue = _ref.scrollBarSizeValue,
20
20
  totalVisibleColumns = _ref.totalVisibleColumns,
21
21
  defaultColumn = _ref.defaultColumn,
22
- totalColumnsWidth = _ref.totalColumnsWidth;
22
+ totalColumnsWidth = _ref.totalColumnsWidth,
23
+ visibleColumns = _ref.visibleColumns;
23
24
  var additionalWidth = scrollBarSizeValue + defaultColumn.rowHeaderWidth;
24
25
 
25
26
  if (!totalVisibleColumns) {
@@ -33,7 +34,12 @@ var getSpreadsheetWidth = function getSpreadsheetWidth(_ref) {
33
34
  }
34
35
 
35
36
  if (totalVisibleColumns) {
36
- return totalVisibleColumns * (defaultColumn === null || defaultColumn === void 0 ? void 0 : defaultColumn.width) + additionalWidth;
37
+ var totalVisibleColumnWidth = visibleColumns.map(function (item, index) {
38
+ return index <= totalVisibleColumns - 1 && ((item === null || item === void 0 ? void 0 : item.width) || (defaultColumn === null || defaultColumn === void 0 ? void 0 : defaultColumn.width));
39
+ }).reduce(function (prev, curr) {
40
+ return prev + curr;
41
+ }, 0);
42
+ return totalVisibleColumnWidth + additionalWidth;
37
43
  }
38
44
  };
39
45
 
@@ -68,7 +68,7 @@ var handleHeaderCellSelection = function handleHeaderCellSelection(_ref) {
68
68
  matcher: tempMatcher,
69
69
  header: {
70
70
  type: type,
71
- index: index
71
+ index: type === 'column' ? columnValue : rowValue
72
72
  }
73
73
  };
74
74
  setSelectionAreas(function (prev) {
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.moveColumnIndicatorLine = void 0;
7
+
8
+ var _layout = require("@carbon/layout");
9
+
10
+ var _settings = require("../../../settings");
11
+
12
+ /**
13
+ * Copyright IBM Corp. 2022, 2022
14
+ *
15
+ * This source code is licensed under the Apache-2.0 license found in the
16
+ * LICENSE file in the root directory of this source tree.
17
+ */
18
+ var moveColumnIndicatorLine = function moveColumnIndicatorLine(_ref) {
19
+ var _ref$blockClass = _ref.blockClass,
20
+ blockClass = _ref$blockClass === void 0 ? "".concat(_settings.pkg.prefix, "--data-spreadsheet") : _ref$blockClass,
21
+ clonedSelectionElement = _ref.clonedSelectionElement,
22
+ ref = _ref.ref,
23
+ spreadsheetCoords = _ref.spreadsheetCoords,
24
+ leftScrollAmount = _ref.leftScrollAmount;
25
+ var closestCell = event.target.closest(".".concat(blockClass, "--interactive-cell-element"));
26
+ var newColumnIndex = closestCell === null || closestCell === void 0 ? void 0 : closestCell.getAttribute('data-column-index');
27
+ var originalColumnIndex = clonedSelectionElement === null || clonedSelectionElement === void 0 ? void 0 : clonedSelectionElement.getAttribute('data-column-index-original');
28
+ var closestCellCoords = closestCell.getBoundingClientRect();
29
+ var indicatorLineElement = ref.current.querySelector(".".concat(blockClass, "__reorder-indicator-line"));
30
+ var matcherId = clonedSelectionElement === null || clonedSelectionElement === void 0 ? void 0 : clonedSelectionElement.getAttribute('data-matcher-id');
31
+ var selectionAreaOrigin = ref.current.querySelector("[data-matcher-id=\"".concat(matcherId, "\"]"));
32
+
33
+ if (Number(newColumnIndex) > Number(originalColumnIndex)) {
34
+ indicatorLineElement.style.left = (0, _layout.px)(closestCellCoords.left - spreadsheetCoords.left + closestCell.offsetWidth - 2 + leftScrollAmount);
35
+ }
36
+
37
+ if (Number(newColumnIndex) < Number(originalColumnIndex)) {
38
+ indicatorLineElement.style.left = (0, _layout.px)(closestCellCoords.left - spreadsheetCoords.left + leftScrollAmount);
39
+ }
40
+
41
+ if (Number(newColumnIndex) === Number(originalColumnIndex)) {
42
+ indicatorLineElement.style.left = selectionAreaOrigin.style.left;
43
+ }
44
+ };
45
+
46
+ exports.moveColumnIndicatorLine = moveColumnIndicatorLine;
@@ -79,7 +79,7 @@ var Datagrid = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref) {
79
79
  return /*#__PURE__*/_react.default.createElement("div", (0, _extends2.default)({}, rest, {
80
80
  id: tableId,
81
81
  ref: ref,
82
- className: (0, _classnames.default)(className, blockClass, withVirtualScroll ? "".concat(blockClass, "__datagridWrap") : "".concat(blockClass, "__datagridWrap-simple"))
82
+ className: (0, _classnames.default)(className, blockClass, withVirtualScroll ? "".concat(blockClass, "__datagridWrap") : "".concat(blockClass, "__datagridWrap-simple"), !isFetching && rows.length === 0 ? "".concat(blockClass, "__empty-state") : '')
83
83
  }, (0, _devtools.getDevtoolsProps)(componentName)), /*#__PURE__*/_react.default.createElement(_DatagridToolbar.default, datagridState), leftPanel && /*#__PURE__*/_react.default.createElement("div", {
84
84
  className: "".concat(blockClass, "__grid-container ").concat(blockClass, "__displayFlex")
85
85
  }, leftPanel && leftPanel.isOpen && /*#__PURE__*/_react.default.createElement("div", {
@@ -7,10 +7,16 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports.default = void 0;
9
9
 
10
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
+
10
12
  var _react = _interopRequireDefault(require("react"));
11
13
 
12
14
  var _settings = require("../../../settings");
13
15
 
16
+ var _carbonComponentsReact = require("carbon-components-react");
17
+
18
+ var _NoDataEmptyState = require("../../EmptyStates/NoDataEmptyState");
19
+
14
20
  /*
15
21
  * Licensed Materials - Property of IBM
16
22
  * 5724-Q36
@@ -19,12 +25,27 @@ var _settings = require("../../../settings");
19
25
  * restricted by GSA ADP Schedule Contract with IBM Corp.
20
26
  */
21
27
  var blockClass = "".concat(_settings.pkg.prefix, "--datagrid");
28
+ var TableBody = _carbonComponentsReact.DataTable.TableBody,
29
+ TableRow = _carbonComponentsReact.DataTable.TableRow,
30
+ TableCell = _carbonComponentsReact.DataTable.TableCell;
22
31
 
23
32
  var DatagridEmptyBody = function DatagridEmptyBody(datagridState) {
24
- var EmptyState = datagridState.EmptyState;
25
- return /*#__PURE__*/_react.default.createElement("div", {
33
+ var getTableBodyProps = datagridState.getTableBodyProps,
34
+ headers = datagridState.headers,
35
+ emptyStateTitle = datagridState.emptyStateTitle,
36
+ emptyStateDescription = datagridState.emptyStateDescription,
37
+ emptyStateSize = datagridState.emptyStateSize,
38
+ illustrationTheme = datagridState.illustrationTheme;
39
+ return /*#__PURE__*/_react.default.createElement(TableBody, (0, _extends2.default)({}, getTableBodyProps(), {
26
40
  className: "".concat(blockClass, "__empty-state-body")
27
- }, EmptyState);
41
+ }), /*#__PURE__*/_react.default.createElement(TableRow, null, /*#__PURE__*/_react.default.createElement(TableCell, {
42
+ colSpan: headers.length
43
+ }, /*#__PURE__*/_react.default.createElement(_NoDataEmptyState.NoDataEmptyState, {
44
+ illustrationTheme: illustrationTheme,
45
+ size: emptyStateSize,
46
+ title: emptyStateTitle,
47
+ subtitle: emptyStateDescription
48
+ }))));
28
49
  };
29
50
 
30
51
  var _default = DatagridEmptyBody;
@@ -71,10 +71,10 @@ var RowSizeDropdown = function RowSizeDropdown(_ref) {
71
71
 
72
72
  RowSizeDropdown.propTypes = {
73
73
  buttonLabel: _propTypes.default.string,
74
- datagridName: _propTypes.default.string.isRequired,
75
- light: _propTypes.default.bool.isRequired,
74
+ datagridName: _propTypes.default.string,
75
+ light: _propTypes.default.bool,
76
76
  onChange: _propTypes.default.func.isRequired,
77
- selectedOption: _propTypes.default.string.isRequired
77
+ selectedOption: _propTypes.default.string
78
78
  };
79
79
  var _default = RowSizeDropdown;
80
80
  exports.default = _default;
@@ -148,7 +148,7 @@ RowSizeRadioGroup.defaultProps = {
148
148
  };
149
149
  RowSizeRadioGroup.propTypes = {
150
150
  buttonRef: _propTypes.default.any.isRequired,
151
- datagridName: _propTypes.default.string.isRequired,
151
+ datagridName: _propTypes.default.string,
152
152
  hideRadioGroup: _propTypes.default.func.isRequired,
153
153
  legendText: _propTypes.default.string,
154
154
  onChange: _propTypes.default.func.isRequired,
@@ -100,7 +100,7 @@ var ExportModal = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
100
100
 
101
101
  setName(filename);
102
102
  setExtension(preformattedExtensions === null || preformattedExtensions === void 0 ? void 0 : (_preformattedExtensio = preformattedExtensions[0]) === null || _preformattedExtensio === void 0 ? void 0 : _preformattedExtensio.extension);
103
- }, [filename, preformattedExtensions]);
103
+ }, [filename, preformattedExtensions, open]);
104
104
 
105
105
  var onNameChangeHandler = function onNameChangeHandler(evt) {
106
106
  setName(evt.target.value);
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.17.0",
4
+ "version": "1.18.2",
5
5
  "license": "Apache-2.0",
6
6
  "main": "lib/index.js",
7
7
  "module": "es/index.js",
@@ -50,23 +50,24 @@
50
50
  "upgrade-dependencies": "npm-check-updates -u --dep dev,peer,prod --color --reject '/(carbon|^react$|^react-dom$|^chalk$|^react-dnd|^namor)/'"
51
51
  },
52
52
  "devDependencies": {
53
- "@babel/cli": "^7.17.6",
54
- "@babel/core": "^7.17.9",
55
- "babel-preset-ibm-cloud-cognitive": "^0.14.14",
53
+ "@babel/cli": "^7.17.10",
54
+ "@babel/core": "^7.17.10",
55
+ "babel-preset-ibm-cloud-cognitive": "^0.14.15",
56
56
  "chalk": "^4.1.2",
57
57
  "change-case": "^4.1.2",
58
58
  "copyfiles": "^2.4.1",
59
59
  "cross-env": "^7.0.3",
60
60
  "fs-extra": "^10.1.0",
61
- "glob": "^8.0.1",
62
- "jest": "^27.5.1",
63
- "jest-config-ibm-cloud-cognitive": "^0.23.17",
61
+ "glob": "^8.0.3",
62
+ "jest": "^28.1.0",
63
+ "jest-config-ibm-cloud-cognitive": "^0.23.19",
64
+ "jest-environment-jsdom": "^28.1.0",
64
65
  "namor": "^1.1.2",
65
- "npm-check-updates": "^12.5.10",
66
+ "npm-check-updates": "^12.5.11",
66
67
  "npm-run-all": "^4.1.5",
67
68
  "rimraf": "^3.0.2",
68
69
  "sass": "^1.51.0",
69
- "yargs": "^17.4.1"
70
+ "yargs": "^17.5.0"
70
71
  },
71
72
  "dependencies": {
72
73
  "@babel/runtime": "^7.17.9",
@@ -86,11 +87,11 @@
86
87
  "@carbon/motion": "^10.29.0",
87
88
  "@carbon/themes": "^10.54.0",
88
89
  "@carbon/type": "^10.44.0",
89
- "carbon-components": "^10.56.0",
90
- "carbon-components-react": "^7.56.0",
90
+ "carbon-components": "^10.57.1",
91
+ "carbon-components-react": "^7.57.1",
91
92
  "carbon-icons": "^7.0.7",
92
93
  "react": "^16.8.6 || ^17.0.1",
93
94
  "react-dom": "^16.8.6 || ^17.0.1"
94
95
  },
95
- "gitHead": "dcf8ef9163dbb8cad6bfc6e70165bfa7288c654e"
96
+ "gitHead": "70599ae0b945e59183b28a57c44b50119e89ae9d"
96
97
  }
@@ -52,11 +52,11 @@
52
52
  color: $text-02;
53
53
  }
54
54
 
55
- &-cell:hover .#{$block-class}__selections-dropdown {
55
+ &-cell:hover .#{$block-class}__selections-hidden-hover {
56
56
  visibility: visible;
57
57
  }
58
58
 
59
- &-dropdown {
59
+ &-hidden-hover {
60
60
  visibility: hidden;
61
61
  }
62
62
 
@@ -64,7 +64,7 @@
64
64
  background: #e5e5e5;
65
65
  }
66
66
 
67
- &-row-selected .#{$block-class}__selections-dropdown {
67
+ &-row-selected .#{$block-class}__selections-hidden-hover {
68
68
  visibility: visible;
69
69
  }
70
70
 
@@ -100,6 +100,12 @@
100
100
  }
101
101
  }
102
102
 
103
+ .#{$block-class}__sub-header {
104
+ display: flex;
105
+ align-items: flex-end;
106
+ justify-content: space-between;
107
+ }
108
+
103
109
  // sidebar
104
110
 
105
111
  .#{$block-class}__sidebar-header {
@@ -163,7 +169,11 @@
163
169
  overflow-x: auto;
164
170
  }
165
171
 
166
- .#{$block-class}__columns .#{$block-class}__selections-cell {
172
+ // table override
173
+ .#{$block-class}
174
+ .#{$block-class}__columns
175
+ .#{$carbon-prefix}--structured-list-td {
176
+ height: 0;
167
177
  // stylelint-disable-next-line
168
178
  padding: 0 !important;
169
179
  }
@@ -248,6 +258,34 @@
248
258
  background: $field-01;
249
259
  }
250
260
 
261
+ // meta panel
262
+ .#{$block-class}__meta-panel {
263
+ padding: $spacing-05;
264
+
265
+ &-header {
266
+ display: flex;
267
+ align-items: center;
268
+ justify-content: space-between;
269
+ margin-bottom: $spacing-05;
270
+ }
271
+
272
+ &-entry {
273
+ margin-bottom: $spacing-05;
274
+ }
275
+ }
276
+
277
+ .#{$block-class}__meta-panel p.#{$block-class}__meta-panel-title {
278
+ @include carbon--type-style('productive-heading-03');
279
+ }
280
+
281
+ .#{$block-class}__meta-panel p.#{$block-class}__meta-panel-entry-title {
282
+ @include carbon--type-style('productive-heading-01');
283
+ }
284
+
285
+ .#{$block-class}__meta-panel p.#{$block-class}__meta-panel-entry-body {
286
+ @include carbon--type-style('body-short-01');
287
+ }
288
+
251
289
  // overrides
252
290
 
253
291
  .#{$block-class}__tag-container .#{$carbon-prefix}--tag {
@@ -281,7 +319,9 @@
281
319
  }
282
320
 
283
321
  .#{$block-class} .#{$carbon-prefix}--structured-list-td {
284
- padding-bottom: $spacing-05;
322
+ height: 4rem;
323
+ padding: $spacing-05;
324
+ vertical-align: middle;
285
325
  }
286
326
 
287
327
  .#{$block-class} .#{$carbon-prefix}--radio-button__appearance {
@@ -12,6 +12,10 @@
12
12
  // Define all component styles in a mixin which is then exported using
13
13
  // the Carbon import-once mechanism.
14
14
  @mixin set-header-borders {
15
+ border-right: 1px solid $active-ui;
16
+ border-bottom: 1px solid $active-ui;
17
+ }
18
+ @mixin set-active-header-borders {
15
19
  border-right: 1px solid $text-03;
16
20
  border-bottom: 1px solid $text-03;
17
21
  }
@@ -180,19 +184,6 @@
180
184
  outline: 0;
181
185
  }
182
186
  }
183
- .#{$block-class}__active-cell--highlight.#{$block-class}__active-cell--with-selection {
184
- &::before {
185
- position: absolute;
186
- top: 0;
187
- left: 0;
188
- display: block;
189
- width: 100%;
190
- height: 100%;
191
- background-color: $interactive-01;
192
- content: '';
193
- opacity: 0.25;
194
- }
195
- }
196
187
  .#{$block-class}__selection-area--element {
197
188
  position: absolute;
198
189
  z-index: 2;
@@ -210,20 +201,43 @@
210
201
  content: '';
211
202
  opacity: 0.2;
212
203
  }
204
+ &.#{$block-class}__selection-area--element-cloned {
205
+ z-index: 4;
206
+
207
+ &::before {
208
+ background-color: $ui-05;
209
+ opacity: 0.25;
210
+ }
211
+ }
212
+ }
213
+ .#{$block-class}__reorder-indicator-line {
214
+ position: absolute;
215
+ z-index: 4;
216
+ width: $spacing-01;
217
+ background-color: $interactive-01;
213
218
  }
214
219
  .#{$block-class}__th--active-header,
215
220
  .#{$block-class}__td-th--active-header.#{$block-class}__td {
221
+ @include set-active-header-borders();
222
+
216
223
  background-color: $hover-selected-ui;
217
224
  }
218
225
  .#{$block-class}__th--selected-header,
219
226
  .#{$block-class}__td-th--selected-header.#{$block-class}__td {
220
227
  background-color: $inverse-02;
221
- color: $text-04;
228
+ color: $inverse-01;
222
229
 
230
+ &:focus,
223
231
  &:hover {
224
232
  background-color: $inverse-02;
225
233
  }
226
234
  }
235
+ .#{$block-class}__th--selected-header.#{$block-class}__th {
236
+ cursor: grab;
237
+ }
238
+ .#{$block-class}__th--selected-header-reorder-active.#{$block-class}__th {
239
+ cursor: grabbing;
240
+ }
227
241
  .#{$block-class}__list--container {
228
242
  overscroll-behavior: none;
229
243
  }
@@ -14,9 +14,14 @@ $block-class: #{$pkg-prefix}--datagrid;
14
14
 
15
15
  .sb-show-main.sb-main-centered #root {
16
16
  width: 100%;
17
+ height: 100vh;
17
18
  padding: 0;
18
19
  }
19
20
 
21
+ .preview-position-fix {
22
+ height: 100%;
23
+ }
24
+
20
25
  .carbon-nested-table {
21
26
  border-bottom: 1px solid $ui-03;
22
27