@carbon/ibm-products 1.61.1 → 1.62.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (123) hide show
  1. package/css/index-full-carbon.css +156 -68
  2. package/css/index-full-carbon.css.map +1 -1
  3. package/css/index-full-carbon.min.css +3 -3
  4. package/css/index-full-carbon.min.css.map +1 -1
  5. package/css/index-without-carbon-released-only.css +1753 -0
  6. package/css/index-without-carbon-released-only.css.map +1 -1
  7. package/css/index-without-carbon-released-only.min.css +3 -1
  8. package/css/index-without-carbon-released-only.min.css.map +1 -1
  9. package/css/index-without-carbon.css +156 -68
  10. package/css/index-without-carbon.css.map +1 -1
  11. package/css/index-without-carbon.min.css +3 -3
  12. package/css/index-without-carbon.min.css.map +1 -1
  13. package/css/index.css +156 -68
  14. package/css/index.css.map +1 -1
  15. package/css/index.min.css +3 -3
  16. package/css/index.min.css.map +1 -1
  17. package/es/components/Coachmark/Coachmark.js +17 -5
  18. package/es/components/Coachmark/CoachmarkDragbar.js +12 -5
  19. package/es/components/Coachmark/CoachmarkHeader.js +2 -1
  20. package/es/components/Coachmark/CoachmarkOverlay.js +105 -9
  21. package/es/components/CoachmarkBeacon/CoachmarkBeacon.js +5 -2
  22. package/es/components/CoachmarkFixed/CoachmarkFixed.js +26 -6
  23. package/es/components/CoachmarkOverlayElements/CoachmarkOverlayElements.js +28 -3
  24. package/es/components/CoachmarkStack/CoachmarkStack.js +19 -4
  25. package/es/components/CoachmarkStack/CoachmarkStackHome.js +45 -11
  26. package/es/components/Datagrid/Datagrid/DatagridContent.js +12 -9
  27. package/es/components/Datagrid/Datagrid/DatagridExpandedRow.js +4 -4
  28. package/es/components/Datagrid/Datagrid/DatagridHeaderRow.js +41 -25
  29. package/es/components/Datagrid/Datagrid/DatagridRefBody.js +4 -1
  30. package/es/components/Datagrid/Datagrid/DatagridRow.js +5 -2
  31. package/es/components/Datagrid/Datagrid/DatagridSelectAll.js +12 -11
  32. package/es/components/Datagrid/Datagrid/DatagridSimpleBody.js +4 -1
  33. package/es/components/Datagrid/Datagrid/DatagridToolbar.js +29 -23
  34. package/es/components/Datagrid/Datagrid/DatagridVirtualBody.js +18 -18
  35. package/es/components/Datagrid/Datagrid/addons/stateReducer.js +50 -14
  36. package/es/components/Datagrid/Datagrid.stories/StickyActionsColumnStory.js +1 -1
  37. package/es/components/Datagrid/useActionsColumn.js +9 -9
  38. package/es/components/Datagrid/useDatagrid.js +13 -1
  39. package/es/components/Datagrid/useFlexResize.js +19 -9
  40. package/es/components/Datagrid/useInfiniteScroll.js +10 -9
  41. package/es/components/Datagrid/useOnRowClick.js +6 -7
  42. package/es/components/Datagrid/useParentDimensions.js +6 -6
  43. package/es/components/Datagrid/useResizeTable.js +7 -7
  44. package/es/components/Datagrid/useSelectAllToggle.js +2 -2
  45. package/es/components/Datagrid/useSelectRows.js +31 -21
  46. package/es/components/Datagrid/useSkeletonRows.js +6 -6
  47. package/es/components/Datagrid/useSortableColumns.js +4 -5
  48. package/es/components/Datagrid/useStickyColumn.js +13 -6
  49. package/es/components/EmptyStates/ErrorEmptyState/ErrorEmptyState.js +1 -0
  50. package/es/components/EmptyStates/NoDataEmptyState/NoDataEmptyState.js +1 -0
  51. package/es/components/EmptyStates/NoTagsEmptyState/NoTagsEmptyState.js +1 -0
  52. package/es/components/EmptyStates/NotFoundEmptyState/NotFoundEmptyState.js +1 -0
  53. package/es/components/EmptyStates/NotificationsEmptyState/NotificationsEmptyState.js +1 -0
  54. package/es/components/EmptyStates/UnauthorizedEmptyState/UnauthorizedEmptyState.js +1 -0
  55. package/es/components/EmptyStates/assets/ErrorIllustration.js +6 -4
  56. package/es/components/EmptyStates/assets/NoDataIllustration.js +6 -4
  57. package/es/components/EmptyStates/assets/NoTagsIllustration.js +6 -4
  58. package/es/components/EmptyStates/assets/NotFoundIllustration.js +6 -4
  59. package/es/components/EmptyStates/assets/NotificationsIllustration.js +6 -4
  60. package/es/components/EmptyStates/assets/UnauthorizedIllustration.js +6 -4
  61. package/es/global/js/hooks/index.js +3 -2
  62. package/es/global/js/hooks/usePrefix.js +11 -0
  63. package/es/global/js/package-settings.js +1 -2
  64. package/lib/components/Coachmark/Coachmark.js +16 -4
  65. package/lib/components/Coachmark/CoachmarkDragbar.js +12 -5
  66. package/lib/components/Coachmark/CoachmarkHeader.js +2 -1
  67. package/lib/components/Coachmark/CoachmarkOverlay.js +105 -8
  68. package/lib/components/CoachmarkBeacon/CoachmarkBeacon.js +5 -2
  69. package/lib/components/CoachmarkFixed/CoachmarkFixed.js +25 -5
  70. package/lib/components/CoachmarkOverlayElements/CoachmarkOverlayElements.js +28 -3
  71. package/lib/components/CoachmarkStack/CoachmarkStack.js +18 -3
  72. package/lib/components/CoachmarkStack/CoachmarkStackHome.js +44 -10
  73. package/lib/components/Datagrid/Datagrid/DatagridContent.js +12 -9
  74. package/lib/components/Datagrid/Datagrid/DatagridExpandedRow.js +4 -4
  75. package/lib/components/Datagrid/Datagrid/DatagridHeaderRow.js +41 -32
  76. package/lib/components/Datagrid/Datagrid/DatagridRefBody.js +4 -1
  77. package/lib/components/Datagrid/Datagrid/DatagridRow.js +5 -2
  78. package/lib/components/Datagrid/Datagrid/DatagridSelectAll.js +6 -4
  79. package/lib/components/Datagrid/Datagrid/DatagridSimpleBody.js +4 -1
  80. package/lib/components/Datagrid/Datagrid/DatagridToolbar.js +29 -23
  81. package/lib/components/Datagrid/Datagrid/DatagridVirtualBody.js +12 -12
  82. package/lib/components/Datagrid/Datagrid/addons/stateReducer.js +52 -15
  83. package/lib/components/Datagrid/Datagrid.stories/StickyActionsColumnStory.js +1 -1
  84. package/lib/components/Datagrid/useActionsColumn.js +9 -12
  85. package/lib/components/Datagrid/useDatagrid.js +13 -1
  86. package/lib/components/Datagrid/useFlexResize.js +19 -9
  87. package/lib/components/Datagrid/useInfiniteScroll.js +9 -9
  88. package/lib/components/Datagrid/useOnRowClick.js +6 -7
  89. package/lib/components/Datagrid/useParentDimensions.js +5 -6
  90. package/lib/components/Datagrid/useResizeTable.js +6 -7
  91. package/lib/components/Datagrid/useSelectAllToggle.js +2 -2
  92. package/lib/components/Datagrid/useSelectRows.js +31 -21
  93. package/lib/components/Datagrid/useSkeletonRows.js +6 -6
  94. package/lib/components/Datagrid/useSortableColumns.js +4 -5
  95. package/lib/components/Datagrid/useStickyColumn.js +8 -0
  96. package/lib/components/EmptyStates/ErrorEmptyState/ErrorEmptyState.js +1 -0
  97. package/lib/components/EmptyStates/NoDataEmptyState/NoDataEmptyState.js +1 -0
  98. package/lib/components/EmptyStates/NoTagsEmptyState/NoTagsEmptyState.js +1 -0
  99. package/lib/components/EmptyStates/NotFoundEmptyState/NotFoundEmptyState.js +1 -0
  100. package/lib/components/EmptyStates/NotificationsEmptyState/NotificationsEmptyState.js +1 -0
  101. package/lib/components/EmptyStates/UnauthorizedEmptyState/UnauthorizedEmptyState.js +1 -0
  102. package/lib/components/EmptyStates/assets/ErrorIllustration.js +6 -4
  103. package/lib/components/EmptyStates/assets/NoDataIllustration.js +6 -4
  104. package/lib/components/EmptyStates/assets/NoTagsIllustration.js +6 -4
  105. package/lib/components/EmptyStates/assets/NotFoundIllustration.js +6 -4
  106. package/lib/components/EmptyStates/assets/NotificationsIllustration.js +6 -4
  107. package/lib/components/EmptyStates/assets/UnauthorizedIllustration.js +6 -4
  108. package/lib/global/js/hooks/index.js +8 -1
  109. package/lib/global/js/hooks/usePrefix.js +19 -0
  110. package/lib/global/js/package-settings.js +1 -2
  111. package/package.json +2 -2
  112. package/scss/components/Checklist/_checklist.scss +13 -25
  113. package/scss/components/Coachmark/styles/_coachmark-dragbar.scss +1 -45
  114. package/scss/components/Coachmark/styles/_coachmark-header.scss +0 -33
  115. package/scss/components/Coachmark/styles/_coachmark-overlay.scss +113 -5
  116. package/scss/components/Coachmark/styles/_coachmark-tagline.scss +18 -0
  117. package/scss/components/CoachmarkBeacon/_coachmark-beacon.scss +19 -1
  118. package/scss/components/CoachmarkOverlayElement/_coachmark-overlay-element.scss +2 -0
  119. package/scss/components/CoachmarkOverlayElements/_coachmark-overlay-elements.scss +1 -0
  120. package/scss/components/CoachmarkStack/_coachmark-stack.scss +3 -0
  121. package/scss/components/Datagrid/styles/_datagrid.scss +31 -5
  122. package/scss/components/Datagrid/styles/_useNestedRows.scss +1 -1
  123. package/scss/components/_index-released-only.scss +1 -0
@@ -25,9 +25,10 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
25
25
  */
26
26
 
27
27
  var blockClass = "".concat(_settings.pkg.prefix, "--datagrid");
28
+ var toolbarClass = "".concat(blockClass, "__table-toolbar");
29
+ var menuClass = "".concat(blockClass, "__button-menu");
28
30
  var TableToolbar = _carbonComponentsReact.DataTable.TableToolbar;
29
31
  var DatagridBatchActionsToolbar = function DatagridBatchActionsToolbar(datagridState, width, ref) {
30
- var _Object$keys;
31
32
  var _useState = (0, _react.useState)(false),
32
33
  _useState2 = (0, _slicedToArray2.default)(_useState, 2),
33
34
  displayAllInMenu = _useState2[0],
@@ -43,8 +44,12 @@ var DatagridBatchActionsToolbar = function DatagridBatchActionsToolbar(datagridS
43
44
  var selectedRowIds = datagridState.state.selectedRowIds,
44
45
  toggleAllRowsSelected = datagridState.toggleAllRowsSelected,
45
46
  toolbarBatchActions = datagridState.toolbarBatchActions,
46
- setGlobalFilter = datagridState.setGlobalFilter;
47
- var totalSelected = (_Object$keys = Object.keys(selectedRowIds || {})) === null || _Object$keys === void 0 ? void 0 : _Object$keys.length;
47
+ setGlobalFilter = datagridState.setGlobalFilter,
48
+ batchActionMenuButtonLabel = datagridState.batchActionMenuButtonLabel,
49
+ translateWithIdBatchActions = datagridState.translateWithIdBatchActions;
50
+ var batchActionMenuButtonLabelText = batchActionMenuButtonLabel !== null && batchActionMenuButtonLabel !== void 0 ? batchActionMenuButtonLabel : 'More';
51
+ var selectedKeys = Object.keys(selectedRowIds || {});
52
+ var totalSelected = selectedKeys.length;
48
53
 
49
54
  // Get initial width of batch actions container,
50
55
  // used to measure when all items are put inside
@@ -74,25 +79,25 @@ var DatagridBatchActionsToolbar = function DatagridBatchActionsToolbar(datagridS
74
79
  return null;
75
80
  }
76
81
  return /*#__PURE__*/_react.default.createElement(_ButtonMenu.ButtonMenu, {
77
- label: width > minWidthBeforeOverflowIcon ? 'More' : null,
82
+ label: width > minWidthBeforeOverflowIcon ? batchActionMenuButtonLabelText : null,
78
83
  renderIcon: width > minWidthBeforeOverflowIcon ? _iconsReact.Add16 : _iconsReact.OverflowMenuVertical16,
79
- className: (0, _classnames.default)("".concat(blockClass, "__button-menu"), (0, _defineProperty2.default)({}, "".concat(blockClass, "__button-menu--icon-only"), width <= minWidthBeforeOverflowIcon)),
80
- menuOptionsClass: "".concat(blockClass, "__button-menu-options"),
84
+ className: (0, _classnames.default)([menuClass, (0, _defineProperty2.default)({}, "".concat(menuClass, "--icon-only"), width <= minWidthBeforeOverflowIcon)]),
85
+ menuOptionsClass: "".concat(menuClass, "-options"),
81
86
  flipped: true
82
- }, toolbarBatchActions && toolbarBatchActions.map(function (batchAction, index) {
83
- if (index < 2 && !displayAllInMenu) {
84
- return;
85
- }
86
- return /*#__PURE__*/_react.default.createElement(_ButtonMenu.ButtonMenuItem, {
87
- key: "".concat(batchAction.label, "-").concat(index),
88
- itemText: batchAction.label,
89
- onClick: function onClick() {
90
- batchAction.onClick();
91
- if (batchAction.type === 'select_all') {
92
- toggleAllRowsSelected(true);
87
+ }, toolbarBatchActions === null || toolbarBatchActions === void 0 ? void 0 : toolbarBatchActions.map(function (batchAction, index) {
88
+ var hidden = index < 2 && !displayAllInMenu;
89
+ if (!hidden) {
90
+ return /*#__PURE__*/_react.default.createElement(_ButtonMenu.ButtonMenuItem, {
91
+ key: "".concat(batchAction.label, "-").concat(index),
92
+ itemText: batchAction.label,
93
+ onClick: function onClick() {
94
+ batchAction.onClick();
95
+ if (batchAction.type === 'select_all') {
96
+ toggleAllRowsSelected(true);
97
+ }
93
98
  }
94
- }
95
- });
99
+ });
100
+ }
96
101
  }));
97
102
  };
98
103
 
@@ -105,7 +110,8 @@ var DatagridBatchActionsToolbar = function DatagridBatchActionsToolbar(datagridS
105
110
  onCancel: function onCancel() {
106
111
  toggleAllRowsSelected(false);
107
112
  setGlobalFilter(null);
108
- }
113
+ },
114
+ translateWithId: translateWithIdBatchActions
109
115
  }, !displayAllInMenu && toolbarBatchActions && (toolbarBatchActions === null || toolbarBatchActions === void 0 ? void 0 : toolbarBatchActions.map(function (batchAction, index) {
110
116
  if (index < 2 && toolbarBatchActions.length > 3 || index < 3 && toolbarBatchActions.length <= 3) {
111
117
  return /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.TableBatchAction, {
@@ -130,12 +136,12 @@ var DatagridToolbar = function DatagridToolbar(datagridState) {
130
136
  DatagridBatchActions = datagridState.DatagridBatchActions,
131
137
  batchActions = datagridState.batchActions,
132
138
  rowSize = datagridState.rowSize;
133
- var getRowHeight = rowSize ? rowSize : 'lg';
139
+ var getRowHeight = rowSize || 'lg';
134
140
  return batchActions && DatagridActions ? /*#__PURE__*/_react.default.createElement("div", {
135
141
  ref: ref,
136
- className: (0, _classnames.default)("".concat(blockClass, "__table-toolbar"), "".concat(blockClass, "__table-toolbar--").concat(getRowHeight))
142
+ className: (0, _classnames.default)([toolbarClass, "".concat(toolbarClass, "--").concat(getRowHeight)])
137
143
  }, /*#__PURE__*/_react.default.createElement(TableToolbar, null, DatagridActions && DatagridActions(datagridState), DatagridBatchActionsToolbar && DatagridBatchActionsToolbar(datagridState, width, ref))) : DatagridActions ? /*#__PURE__*/_react.default.createElement("div", {
138
- className: "".concat(blockClass, "__table-toolbar")
144
+ className: toolbarClass
139
145
  }, /*#__PURE__*/_react.default.createElement(TableToolbar, null, DatagridActions && DatagridActions(datagridState), DatagridBatchActions && DatagridBatchActions(datagridState))) : null;
140
146
  };
141
147
  var _default = DatagridToolbar;
@@ -26,12 +26,7 @@ var rowSizeMap = {
26
26
  sm: 32,
27
27
  md: 40,
28
28
  lg: 48,
29
- xl: 64,
30
- // TODO: deprecate the below values in next major release (v8) on carbon-components-react
31
- short: 32,
32
- compact: 24,
33
- normal: 48,
34
- tall: 64
29
+ xl: 64
35
30
  };
36
31
  var defaultRowHeight = rowSizeMap.lg;
37
32
  var DatagridVirtualBody = function DatagridVirtualBody(datagridState) {
@@ -50,13 +45,17 @@ var DatagridVirtualBody = function DatagridVirtualBody(datagridState) {
50
45
  page = datagridState.page,
51
46
  handleResize = datagridState.handleResize,
52
47
  gridRef = datagridState.gridRef;
48
+
49
+ /* istanbul ignore next */
53
50
  var handleVirtualGridResize = function handleVirtualGridResize() {
54
51
  var gridRefElement = gridRef === null || gridRef === void 0 ? void 0 : gridRef.current;
55
52
  gridRefElement.style.width = gridRefElement === null || gridRefElement === void 0 ? void 0 : gridRefElement.clientWidth;
56
53
  };
57
54
  (0, _useResizeObserver.useResizeObserver)(gridRef, handleVirtualGridResize);
58
- var syncScroll = function syncScroll(e) {
59
- var virtualBody = e.target;
55
+
56
+ /* istanbul ignore next */
57
+ var syncScroll = function syncScroll(event) {
58
+ var virtualBody = event.target;
60
59
  document.querySelector(".".concat(blockClass, "__head-wrap")).scrollLeft = virtualBody.scrollLeft;
61
60
  var spacerColumn = document.querySelector(".".concat(blockClass, "__head-wrap thead th:last-child"));
62
61
  spacerColumn.style.width = (0, _layout.px)(32 + (virtualBody.offsetWidth - virtualBody.clientWidth)); // scrollbar width to header column to fix header alignment
@@ -79,9 +78,7 @@ var DatagridVirtualBody = function DatagridVirtualBody(datagridState) {
79
78
  }, /*#__PURE__*/_react.default.createElement(_DatagridHead.default, datagridState)), /*#__PURE__*/_react.default.createElement(TableBody, (0, _extends2.default)({}, getTableBodyProps({
80
79
  role: false
81
80
  }), {
82
- onScroll: function onScroll(e) {
83
- return syncScroll(e);
84
- }
81
+ onScroll: syncScroll
85
82
  }), /*#__PURE__*/_react.default.createElement(_reactWindow.VariableSizeList, {
86
83
  height: virtualHeight || tableHeight,
87
84
  itemCount: visibleRows.length,
@@ -101,10 +98,13 @@ var DatagridVirtualBody = function DatagridVirtualBody(datagridState) {
101
98
  style = _ref.style;
102
99
  var row = visibleRows[index];
103
100
  prepareRow(row);
101
+ var _row$getRowProps = row.getRowProps(),
102
+ key = _row$getRowProps.key;
104
103
  return /*#__PURE__*/_react.default.createElement("div", {
105
104
  style: _objectSpread({}, style)
106
105
  }, row.RowRenderer(_objectSpread(_objectSpread({}, datagridState), {}, {
107
- row: row
106
+ row: row,
107
+ key: key
108
108
  })));
109
109
  })));
110
110
  };
@@ -4,7 +4,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.stateReducer = exports.handleColumnResizingEvent = exports.handleColumnResizeEndEvent = void 0;
7
+ exports.stateReducer = exports.handleToggleRowSelected = exports.handleColumnResizingEvent = exports.handleColumnResizeEndEvent = void 0;
8
8
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
9
9
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
10
10
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
@@ -15,6 +15,7 @@ var COLUMN_RESIZE_START = 'columnStartResizing';
15
15
  var COLUMN_RESIZING = 'columnResizing';
16
16
  var COLUMN_RESIZE_END = 'columnDoneResizing';
17
17
  var INIT = 'init';
18
+ var TOGGLE_ROW_SELECTED = 'toggleRowSelected';
18
19
  var blockClass = "".concat(_settings.pkg.prefix, "--datagrid");
19
20
  var handleColumnResizeEndEvent = function handleColumnResizeEndEvent(dispatch, onColResizeEnd, headerId, isKeyEvent) {
20
21
  dispatch({
@@ -48,8 +49,44 @@ var handleColumnResizingEvent = function handleColumnResizingEvent(dispatch, hea
48
49
  });
49
50
  };
50
51
  exports.handleColumnResizingEvent = handleColumnResizingEvent;
52
+ var handleToggleRowSelected = function handleToggleRowSelected(dispatch, rowData, isChecked) {
53
+ return dispatch({
54
+ type: TOGGLE_ROW_SELECTED,
55
+ payload: {
56
+ rowData: rowData,
57
+ isChecked: isChecked
58
+ }
59
+ });
60
+ };
61
+ exports.handleToggleRowSelected = handleToggleRowSelected;
51
62
  var stateReducer = function stateReducer(newState, action) {
52
63
  switch (action.type) {
64
+ case TOGGLE_ROW_SELECTED:
65
+ {
66
+ var _ref = action.payload || {},
67
+ rowData = _ref.rowData,
68
+ isChecked = _ref.isChecked;
69
+ if (!rowData) {
70
+ return;
71
+ }
72
+ if (isChecked) {
73
+ return _objectSpread(_objectSpread({}, newState), {}, {
74
+ selectedRowData: _objectSpread(_objectSpread({}, newState.selectedRowData), {}, (0, _defineProperty2.default)({}, rowData.index, rowData))
75
+ });
76
+ }
77
+ if (rowData && !isChecked) {
78
+ var newData = _objectSpread({}, newState.selectedRowData);
79
+ var dataWithRemovedRow = Object.fromEntries(Object.entries(newData).filter(function (_ref2) {
80
+ var _ref3 = (0, _slicedToArray2.default)(_ref2, 1),
81
+ key = _ref3[0];
82
+ return parseInt(key) !== parseInt(rowData.index);
83
+ }));
84
+ return _objectSpread(_objectSpread({}, newState), {}, {
85
+ selectedRowData: dataWithRemovedRow
86
+ });
87
+ }
88
+ return _objectSpread({}, newState);
89
+ }
53
90
  case INIT:
54
91
  {
55
92
  return _objectSpread(_objectSpread({}, newState), {}, {
@@ -58,27 +95,27 @@ var stateReducer = function stateReducer(newState, action) {
58
95
  }
59
96
  case COLUMN_RESIZE_START:
60
97
  {
61
- var _ref = action.payload || {},
62
- headerId = _ref.headerId;
98
+ var _ref4 = action.payload || {},
99
+ headerId = _ref4.headerId;
63
100
  return _objectSpread(_objectSpread({}, newState), {}, {
64
101
  isResizing: headerId
65
102
  });
66
103
  }
67
104
  case COLUMN_RESIZING:
68
105
  {
69
- var _ref2 = action.payload || {},
70
- _headerId = _ref2.headerId,
71
- newWidth = _ref2.newWidth,
72
- defaultWidth = _ref2.defaultWidth;
106
+ var _ref5 = action.payload || {},
107
+ _headerId = _ref5.headerId,
108
+ newWidth = _ref5.newWidth,
109
+ defaultWidth = _ref5.defaultWidth;
73
110
  var newColumnWidth = {};
74
111
  if (typeof _headerId === 'undefined') {
75
112
  return _objectSpread({}, newState);
76
113
  }
77
114
  newColumnWidth[_headerId] = newWidth;
78
- var cleanedWidths = Object.fromEntries(Object.entries(newState.columnResizing.columnWidths).filter(function (_ref3) {
79
- var _ref4 = (0, _slicedToArray2.default)(_ref3, 2),
80
- _ = _ref4[0],
81
- value = _ref4[1];
115
+ var cleanedWidths = Object.fromEntries(Object.entries(newState.columnResizing.columnWidths).filter(function (_ref6) {
116
+ var _ref7 = (0, _slicedToArray2.default)(_ref6, 2),
117
+ _ = _ref7[0],
118
+ value = _ref7[1];
82
119
  return !isNaN(value);
83
120
  }));
84
121
  var headerIdArray = newState.columnResizing.headerIdWidths || [];
@@ -93,10 +130,10 @@ var stateReducer = function stateReducer(newState, action) {
93
130
  }
94
131
  case COLUMN_RESIZE_END:
95
132
  {
96
- var _ref5 = action.payload || {},
97
- onColResizeEnd = _ref5.onColResizeEnd,
98
- _headerId2 = _ref5.headerId,
99
- isKeyEvent = _ref5.isKeyEvent;
133
+ var _ref8 = action.payload || {},
134
+ onColResizeEnd = _ref8.onColResizeEnd,
135
+ _headerId2 = _ref8.headerId,
136
+ isKeyEvent = _ref8.isKeyEvent;
100
137
  var currentColumn = {};
101
138
  currentColumn[_headerId2] = newState.columnResizing.columnWidths[_headerId2];
102
139
  var allChangedColumns = newState.columnResizing.columnWidths;
@@ -45,7 +45,7 @@
45
45
 
46
46
  // ## Sample usage:
47
47
  // 1. include \`useActionsColumn\` hook
48
- // 2. add \`isAction = true\` to the column object in which you which to add the overflow menu actions
48
+ // 2. add \`isAction = true\` to the column object in which you wish to add the overflow menu actions
49
49
  // 3. add \`rowActions = []\` array to the props
50
50
  // - \`rowActions[].id\` for callback to identify the action is called
51
51
  // - \`rowActions[].onClick(actionId: string, row: Row, event: ClickEvent)\` callback on menuitem clicked. [Row properties](https://react-table.tanstack.com/docs/api/useTable#row-properties)
@@ -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,21 +8,16 @@ exports.default = void 0;
9
8
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
9
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
10
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
12
- var _react = _interopRequireWildcard(require("react"));
11
+ var _react = _interopRequireDefault(require("react"));
13
12
  var _classnames = _interopRequireDefault(require("classnames"));
14
13
  var _carbonComponentsReact = require("carbon-components-react");
15
14
  var _settings = require("../../settings");
16
15
  var _excluded = ["id", "itemText", "onClick", "icon", "shouldHideMenuItem"],
17
16
  _excluded2 = ["id", "onClick", "shouldHideMenuItem", "shouldDisableMenuItem", "disabled"];
18
- 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); }
19
- 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; }
20
17
  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; }
21
18
  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; }
22
19
  var blockClass = "".concat(_settings.pkg.prefix, "--datagrid");
23
20
  var useActionsColumn = function useActionsColumn(hooks) {
24
- (0, _react.useEffect)(function () {
25
- _settings.pkg.checkReportFeatureEnabled('Datagrid.useActionsColumn');
26
- }, []);
27
21
  var useAttachActionsOnInstance = function useAttachActionsOnInstance(instance) {
28
22
  var rowActions = instance.rowActions,
29
23
  isFetching = instance.isFetching,
@@ -44,12 +38,13 @@ var useActionsColumn = function useActionsColumn(hooks) {
44
38
  column = cell.column;
45
39
  if (column.isAction) {
46
40
  var _cx3;
41
+ var isColumnSticky = !!column.sticky;
47
42
  return [props, {
48
43
  children: /*#__PURE__*/_react.default.createElement("div", {
49
44
  className: "".concat(blockClass, "__actions-column-contents")
50
45
  }, isFetching && /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.IconSkeleton, {
51
46
  className: "".concat(blockClass, "__actions-column-loading")
52
- }), !isFetching && rowActions.length <= 2 && /*#__PURE__*/_react.default.createElement("div", {
47
+ }), !isFetching && rowActions.length <= 2 && !isColumnSticky && /*#__PURE__*/_react.default.createElement("div", {
53
48
  className: "".concat(blockClass, "_actions-column"),
54
49
  style: {
55
50
  display: 'flex'
@@ -73,6 +68,7 @@ var useActionsColumn = function useActionsColumn(hooks) {
73
68
  hasIconOnly: true,
74
69
  light: true,
75
70
  iconDescription: itemText,
71
+ ariaLabel: itemText,
76
72
  kind: "ghost",
77
73
  className: (0, _classnames.default)((0, _defineProperty2.default)({}, "".concat(blockClass, "__disabled-row-action"), getDisabledState(row.index))),
78
74
  onClick: function onClick(e) {
@@ -84,7 +80,7 @@ var useActionsColumn = function useActionsColumn(hooks) {
84
80
  _onClick(id, row, e);
85
81
  }
86
82
  })));
87
- })), !isFetching && rowActions.length > 2 && /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.OverflowMenu, {
83
+ })), !isFetching && (rowActions.length > 2 || isColumnSticky) && /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.OverflowMenu, {
88
84
  size: "sm",
89
85
  light: true,
90
86
  flipped: true,
@@ -114,9 +110,9 @@ var useActionsColumn = function useActionsColumn(hooks) {
114
110
  key: id
115
111
  }));
116
112
  })))),
117
- className: (0, _classnames.default)((_cx3 = {}, (0, _defineProperty2.default)(_cx3, "".concat(blockClass, "__actions-column-cell"), true), (0, _defineProperty2.default)(_cx3, "".concat(blockClass, "__cell"), true), _cx3)),
113
+ className: (0, _classnames.default)((_cx3 = {}, (0, _defineProperty2.default)(_cx3, "".concat(blockClass, "__actions-column-cell"), true), (0, _defineProperty2.default)(_cx3, "".concat(blockClass, "__cell"), true), (0, _defineProperty2.default)(_cx3, "".concat(blockClass, "__actions-column-cell-non-sticky"), !isColumnSticky), _cx3)),
118
114
  style: {
119
- width: rowActions.length > 2 ? 48 : 96
115
+ width: rowActions.length > 2 || isColumnSticky ? 48 : 96
120
116
  }
121
117
  }];
122
118
  }
@@ -131,9 +127,10 @@ var useActionsColumn = function useActionsColumn(hooks) {
131
127
  var addHeaderWidth = function addHeaderWidth(props, cellData) {
132
128
  var column = cellData.column;
133
129
  if (column.isAction) {
130
+ var isColumnSticky = !!column.sticky;
134
131
  return [props, {
135
132
  style: _objectSpread(_objectSpread({}, props.style), {}, {
136
- width: rowActions.length > 2 ? 48 : 96 // set header width based on action length
133
+ width: rowActions.length > 2 || isColumnSticky ? 48 : 96 // set header width based on action length
137
134
  })
138
135
  }];
139
136
  }
@@ -22,8 +22,19 @@ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (O
22
22
  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; }
23
23
  var useDatagrid = function useDatagrid(params) {
24
24
  var defaultPlugins = [_reactTable.useFlexLayout, _DatagridHeaderRow.default, _useSkeletonRows.default, _reactTable.useResizeColumns, _useRowRenderer.default, _useDefaultStringRenderer.default, _useRowSize.default, _reactTable.useFilters, _reactTable.useGlobalFilter, _reactTable.useSortBy, _reactTable.useExpanded];
25
+
26
+ // Disable resizing
27
+ if (params.disableResizing) {
28
+ var resizeIndex = defaultPlugins.findIndex(function (p) {
29
+ return p.pluginName === 'useResizeColumns';
30
+ });
31
+ defaultPlugins.splice(resizeIndex, 1);
32
+ }
25
33
  var defaultEndPlugins = [_reactTable.usePagination, _reactTable.useRowSelect, _useFlexResize.default, _useFloatingScroll.default];
26
34
  var clientEndPlugins = params.endPlugins || [];
35
+ var defaultColumn = {
36
+ minWidth: 50
37
+ };
27
38
  var tableId = (0, _react.useMemo)(function () {
28
39
  return (0, _uniqueId.default)('datagrid-table-id');
29
40
  }, []);
@@ -33,7 +44,8 @@ var useDatagrid = function useDatagrid(params) {
33
44
  var tableState = _reactTable.useTable.apply(void 0, [_objectSpread(_objectSpread({
34
45
  tableId: tableId
35
46
  }, params), {}, {
36
- stateReducer: _stateReducer.stateReducer
47
+ stateReducer: _stateReducer.stateReducer,
48
+ defaultColumn: defaultColumn
37
49
  })].concat(defaultPlugins, plugins, defaultEndPlugins, (0, _toConsumableArray2.default)(clientEndPlugins)));
38
50
  return tableState;
39
51
  };
@@ -6,29 +6,39 @@ Object.defineProperty(exports, "__esModule", {
6
6
  });
7
7
  exports.default = void 0;
8
8
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
9
- /*
10
- * Licensed Materials - Property of IBM
11
- * 5724-Q36
12
- * (c) Copyright IBM Corp. 2020
13
- * US Government Users Restricted Rights - Use, duplication or disclosure
14
- * restricted by GSA ADP Schedule Contract with IBM Corp.
9
+ /**
10
+ * Copyright IBM Corp. 2020, 2023
11
+ *
12
+ * This source code is licensed under the Apache-2.0 license found in the
13
+ * LICENSE file in the root directory of this source tree.
15
14
  */
15
+
16
16
  var useFlexResize = function useFlexResize(hooks) {
17
- var spacerColumn = {
17
+ var spacer = {
18
18
  id: 'spacer',
19
19
  width: 0,
20
20
  disableSortBy: true,
21
21
  disableResizing: true
22
22
  };
23
23
  hooks.visibleColumns.push(function (columns) {
24
- return [].concat((0, _toConsumableArray2.default)(columns), [spacerColumn]);
24
+ // always move actions and spacer to the end
25
+ var actionsIdx = columns.findIndex(function (col) {
26
+ return col.isAction;
27
+ });
28
+ if (actionsIdx === -1) {
29
+ return [].concat((0, _toConsumableArray2.default)(columns), [spacer]);
30
+ }
31
+ var cols = (0, _toConsumableArray2.default)(columns);
32
+ var actions = cols.splice(actionsIdx, 1)[0];
33
+ cols.splice(columns.length, 0, spacer, actions);
34
+ return cols;
25
35
  });
26
36
  var changeProps = function changeProps(props, data) {
27
37
  var column = data.column;
28
38
  if (!column && data.cell) {
29
39
  column = data.cell.column;
30
40
  }
31
- if (column.id === spacerColumn.id) {
41
+ if (column.id === spacer.id) {
32
42
  return [props, {
33
43
  style: {
34
44
  flex: '1 1 0'
@@ -9,12 +9,11 @@ var _react = require("react");
9
9
  var _debounce = _interopRequireDefault(require("lodash/debounce"));
10
10
  var _useParentDimensions = _interopRequireDefault(require("./useParentDimensions"));
11
11
  var _useResizeTable = _interopRequireDefault(require("./useResizeTable"));
12
- /*
13
- * Licensed Materials - Property of IBM
14
- * 5724-Q36
15
- * (c) Copyright IBM Corp. 2020
16
- * US Government Users Restricted Rights - Use, duplication or disclosure
17
- * restricted by GSA ADP Schedule Contract with IBM Corp.
12
+ /**
13
+ * Copyright IBM Corp. 2020, 2023
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.
18
17
  */
19
18
 
20
19
  var useInfiniteScroll = function useInfiniteScroll(hooks) {
@@ -25,10 +24,11 @@ var useInfiniteScroll = function useInfiniteScroll(hooks) {
25
24
  tableHeight = instance.tableHeight,
26
25
  innerListRef = instance.innerListRef,
27
26
  fetchMoreData = instance.fetchMoreData,
28
- tableId = instance.tableId;
27
+ tableId = instance.tableId,
28
+ loadMoreThreshold = instance.loadMoreThreshold;
29
29
  var tableElement = document.querySelector("#".concat(tableId));
30
30
  var totalTableHeight = tableHeight || (tableElement === null || tableElement === void 0 ? void 0 : tableElement.clientHeight);
31
- var loadMoreThreshold = 200;
31
+ var loadMoreThresholdValue = typeof loadMoreThreshold === 'number' ? loadMoreThreshold : 200;
32
32
  var emptyFetchData = function emptyFetchData() {};
33
33
  // eslint-disable-next-line react-hooks/exhaustive-deps
34
34
  var fetchMore = (0, _react.useCallback)((0, _debounce.default)(fetchMoreData || emptyFetchData, 3000, {
@@ -39,7 +39,7 @@ var useInfiniteScroll = function useInfiniteScroll(hooks) {
39
39
  var scrollDirection = _ref.scrollDirection,
40
40
  scrollOffset = _ref.scrollOffset;
41
41
  if (innerListRef && innerListRef.current) {
42
- if (!isFetching && scrollDirection === 'forward' && scrollOffset + totalTableHeight >= innerListRef.current.clientHeight - loadMoreThreshold) {
42
+ if (!isFetching && scrollDirection === 'forward' && scrollOffset + totalTableHeight >= innerListRef.current.clientHeight - loadMoreThresholdValue) {
43
43
  if (fetchMoreData) {
44
44
  fetchMore();
45
45
  }
@@ -5,12 +5,11 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = void 0;
7
7
  var _settings = require("../../settings");
8
- /*
9
- * Licensed Materials - Property of IBM
10
- * 5724-Q36
11
- * (c) Copyright IBM Corp. 2020, 2023
12
- * US Government Users Restricted Rights - Use, duplication or disclosure
13
- * restricted by GSA ADP Schedule Contract with IBM Corp.
8
+ /**
9
+ * Copyright IBM Corp. 2020, 2023
10
+ *
11
+ * This source code is licensed under the Apache-2.0 license found in the
12
+ * LICENSE file in the root directory of this source tree.
14
13
  */
15
14
 
16
15
  var useOnRowClick = function useOnRowClick(hooks) {
@@ -49,7 +48,7 @@ var useOnRowClick = function useOnRowClick(hooks) {
49
48
  var onKeyDown = function onKeyDown(event) {
50
49
  var key = event.key;
51
50
  if (key === 'Enter') {
52
- onClick();
51
+ onClick(event);
53
52
  }
54
53
  };
55
54
  return [props, {
@@ -7,12 +7,11 @@ Object.defineProperty(exports, "__esModule", {
7
7
  exports.default = void 0;
8
8
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
9
9
  var _react = require("react");
10
- /*
11
- * Licensed Materials - Property of IBM
12
- * 5724-Q36
13
- * (c) Copyright IBM Corp. 2020
14
- * US Government Users Restricted Rights - Use, duplication or disclosure
15
- * restricted by GSA ADP Schedule Contract with IBM Corp.
10
+ /**
11
+ * Copyright IBM Corp. 2020, 2023
12
+ *
13
+ * This source code is licensed under the Apache-2.0 license found in the
14
+ * LICENSE file in the root directory of this source tree.
16
15
  */
17
16
 
18
17
  var useParentDimensions = function useParentDimensions(hooks) {
@@ -5,12 +5,11 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = void 0;
7
7
  var _react = require("react");
8
- /*
9
- * Licensed Materials - Property of IBM
10
- * 5724-Q36
11
- * (c) Copyright IBM Corp. 2020
12
- * US Government Users Restricted Rights - Use, duplication or disclosure
13
- * restricted by GSA ADP Schedule Contract with IBM Corp.
8
+ /**
9
+ * Copyright IBM Corp. 2020, 2023
10
+ *
11
+ * This source code is licensed under the Apache-2.0 license found in the
12
+ * LICENSE file in the root directory of this source tree.
14
13
  */
15
14
 
16
15
  var useResizeTable = function useResizeTable(hooks) {
@@ -33,7 +32,7 @@ var useResizeTable = function useResizeTable(hooks) {
33
32
  resizeObserver = null;
34
33
  };
35
34
  }
36
- return console.error(' Could not resize table, no support for ResizeObserver');
35
+ return console.error('Could not resize table, no support for ResizeObserver');
37
36
  }, [handleResize, parent]);
38
37
  };
39
38
  hooks.useInstanceBeforeDimensions.push(useInstanceBeforeDimensions);
@@ -24,7 +24,7 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
24
24
  */
25
25
  // @flow
26
26
 
27
- var blockClass = "".concat(_settings.pkg.prefix, "--datagrid");
27
+ var blockClass = "".concat(_settings.pkg.prefix, "--datagrid__select-all");
28
28
  var useSelectAllToggle = function useSelectAllToggle(hooks) {
29
29
  useSelectAllWithToggleComponent(hooks);
30
30
  useAddClassNameToSelectRow(hooks);
@@ -71,7 +71,7 @@ var useAddClassNameToSelectRow = function useAddClassNameToSelectRow(hooks) {
71
71
  var isFirstColumnStickyLeft = ((_columns$ = columns[0]) === null || _columns$ === void 0 ? void 0 : _columns$.sticky) === 'left' && withStickyColumn;
72
72
  if (column.id === _commonColumnIds.selectionColumnId && DatagridPagination) {
73
73
  return [props, {
74
- className: (0, _classnames.default)("".concat(blockClass, "__select-all-toggle-on"), (0, _defineProperty2.default)({}, "".concat(blockClass, "__select-all-sticky-left"), isFirstColumnStickyLeft && windowSize > 671))
74
+ className: (0, _classnames.default)(["".concat(blockClass, "-toggle-on"), (0, _defineProperty2.default)({}, "".concat(blockClass, "-sticky-left"), isFirstColumnStickyLeft && windowSize > 671)])
75
75
  }];
76
76
  }
77
77
  return [props];