@carbon/ibm-products 2.15.0 → 2.15.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (56) hide show
  1. package/css/index-full-carbon.css +22 -8
  2. package/css/index-full-carbon.css.map +1 -1
  3. package/css/index-full-carbon.min.css +1 -1
  4. package/css/index-full-carbon.min.css.map +1 -1
  5. package/css/index-without-carbon.css +22 -8
  6. package/css/index-without-carbon.css.map +1 -1
  7. package/css/index-without-carbon.min.css +1 -1
  8. package/css/index-without-carbon.min.css.map +1 -1
  9. package/css/index.css +22 -8
  10. package/css/index.css.map +1 -1
  11. package/css/index.min.css +1 -1
  12. package/css/index.min.css.map +1 -1
  13. package/es/components/Datagrid/Datagrid/DatagridExpandedRow.js +1 -1
  14. package/es/components/Datagrid/Datagrid/DatagridHeaderRow.js +4 -3
  15. package/es/components/Datagrid/Datagrid/DatagridRefBody.js +4 -1
  16. package/es/components/Datagrid/Datagrid/DatagridRow.js +5 -2
  17. package/es/components/Datagrid/Datagrid/DatagridSimpleBody.js +4 -1
  18. package/es/components/Datagrid/Datagrid/DatagridToolbar.js +18 -19
  19. package/es/components/Datagrid/Datagrid/DatagridVirtualBody.js +14 -18
  20. package/es/components/Datagrid/Datagrid.docs-page.js +7 -1
  21. package/es/components/Datagrid/useActionsColumn.js +7 -5
  22. package/es/components/Datagrid/useColumnCenterAlign.js +6 -6
  23. package/es/components/Datagrid/useColumnRightAlign.js +6 -6
  24. package/es/components/Datagrid/useDatagrid.js +8 -0
  25. package/es/components/Datagrid/useInfiniteScroll.js +10 -9
  26. package/es/components/Datagrid/useNestedRowExpander.js +10 -1
  27. package/es/components/Datagrid/useParentDimensions.js +6 -6
  28. package/es/components/Datagrid/useResizeTable.js +7 -7
  29. package/es/components/Datagrid/useRowExpander.js +11 -1
  30. package/es/components/Datagrid/useSelectAllToggle.js +2 -2
  31. package/es/components/Datagrid/useSelectRows.js +27 -21
  32. package/es/components/Datagrid/useSkeletonRows.js +6 -6
  33. package/es/components/Datagrid/useStickyColumn.js +13 -6
  34. package/lib/components/Datagrid/Datagrid/DatagridExpandedRow.js +1 -1
  35. package/lib/components/Datagrid/Datagrid/DatagridHeaderRow.js +4 -3
  36. package/lib/components/Datagrid/Datagrid/DatagridRefBody.js +4 -1
  37. package/lib/components/Datagrid/Datagrid/DatagridRow.js +5 -2
  38. package/lib/components/Datagrid/Datagrid/DatagridSimpleBody.js +4 -1
  39. package/lib/components/Datagrid/Datagrid/DatagridToolbar.js +18 -19
  40. package/lib/components/Datagrid/Datagrid/DatagridVirtualBody.js +13 -18
  41. package/lib/components/Datagrid/Datagrid.docs-page.js +7 -1
  42. package/lib/components/Datagrid/useActionsColumn.js +7 -5
  43. package/lib/components/Datagrid/useColumnCenterAlign.js +5 -6
  44. package/lib/components/Datagrid/useColumnRightAlign.js +5 -6
  45. package/lib/components/Datagrid/useDatagrid.js +8 -0
  46. package/lib/components/Datagrid/useInfiniteScroll.js +9 -9
  47. package/lib/components/Datagrid/useNestedRowExpander.js +15 -9
  48. package/lib/components/Datagrid/useParentDimensions.js +5 -6
  49. package/lib/components/Datagrid/useResizeTable.js +6 -7
  50. package/lib/components/Datagrid/useRowExpander.js +16 -9
  51. package/lib/components/Datagrid/useSelectAllToggle.js +2 -2
  52. package/lib/components/Datagrid/useSelectRows.js +27 -21
  53. package/lib/components/Datagrid/useSkeletonRows.js +6 -6
  54. package/lib/components/Datagrid/useStickyColumn.js +13 -6
  55. package/package.json +2 -2
  56. package/scss/components/Datagrid/styles/_datagrid.scss +26 -5
@@ -2,13 +2,13 @@ import _extends from "@babel/runtime/helpers/extends";
2
2
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
3
3
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
4
4
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
5
- /*
6
- * Licensed Materials - Property of IBM
7
- * 5724-Q36
8
- * (c) Copyright IBM Corp. 2020 - 2023
9
- * US Government Users Restricted Rights - Use, duplication or disclosure
10
- * restricted by GSA ADP Schedule Contract with IBM Corp.
5
+ /**
6
+ * Copyright IBM Corp. 2020, 2023
7
+ *
8
+ * This source code is licensed under the Apache-2.0 license found in the
9
+ * LICENSE file in the root directory of this source tree.
11
10
  */
11
+
12
12
  import React, { useEffect } from 'react';
13
13
  import { VariableSizeList } from 'react-window';
14
14
  import { TableBody } from '@carbon/react';
@@ -22,12 +22,7 @@ var rowSizeMap = {
22
22
  sm: 32,
23
23
  md: 40,
24
24
  lg: 48,
25
- xl: 64,
26
- // TODO: deprecate the below values in next major release (v8) on carbon-components-react
27
- short: 32,
28
- compact: 24,
29
- normal: 48,
30
- tall: 64
25
+ xl: 64
31
26
  };
32
27
  var defaultRowHeight = rowSizeMap.lg;
33
28
  var DatagridVirtualBody = function DatagridVirtualBody(datagridState) {
@@ -51,8 +46,8 @@ var DatagridVirtualBody = function DatagridVirtualBody(datagridState) {
51
46
  gridRefElement.style.width = gridRefElement === null || gridRefElement === void 0 ? void 0 : gridRefElement.clientWidth;
52
47
  };
53
48
  useResizeObserver(gridRef, handleVirtualGridResize);
54
- var syncScroll = function syncScroll(e) {
55
- var virtualBody = e.target;
49
+ var syncScroll = function syncScroll(event) {
50
+ var virtualBody = event.target;
56
51
  document.querySelector(".".concat(blockClass, "__head-wrap")).scrollLeft = virtualBody.scrollLeft;
57
52
  var spacerColumn = document.querySelector(".".concat(blockClass, "__head-wrap thead th:last-child"));
58
53
  spacerColumn.style.width = px(32 + (virtualBody.offsetWidth - virtualBody.clientWidth)); // scrollbar width to header column to fix header alignment
@@ -73,9 +68,7 @@ var DatagridVirtualBody = function DatagridVirtualBody(datagridState) {
73
68
  overflow: 'hidden'
74
69
  }
75
70
  }, /*#__PURE__*/React.createElement(DatagridHead, datagridState)), /*#__PURE__*/React.createElement(TableBody, _extends({}, getTableBodyProps(), {
76
- onScroll: function onScroll(e) {
77
- return syncScroll(e);
78
- }
71
+ onScroll: syncScroll
79
72
  }), /*#__PURE__*/React.createElement(VariableSizeList, {
80
73
  height: virtualHeight || tableHeight,
81
74
  itemCount: visibleRows.length,
@@ -95,10 +88,13 @@ var DatagridVirtualBody = function DatagridVirtualBody(datagridState) {
95
88
  style = _ref.style;
96
89
  var row = visibleRows[index];
97
90
  prepareRow(row);
91
+ var _row$getRowProps = row.getRowProps(),
92
+ key = _row$getRowProps.key;
98
93
  return /*#__PURE__*/React.createElement("div", {
99
94
  style: _objectSpread({}, style)
100
95
  }, row.RowRenderer(_objectSpread(_objectSpread({}, datagridState), {}, {
101
- row: row
96
+ row: row,
97
+ key: key
102
98
  })));
103
99
  })));
104
100
  };
@@ -47,6 +47,12 @@ export var DocsPage = function DocsPage() {
47
47
  language: 'jsx',
48
48
  code: "\nuseDatagrid({\n columns,\n data,\n onColResizeEnd: (currentColumn, allColumns) =>\n console.log(currentColumn, allColumns),\n});\n "
49
49
  }
50
+ }, {
51
+ description: 'Disabling the resizable columns is possible by specifying `disableResizing: true` within the `useDatagrid` hook.',
52
+ source: {
53
+ language: 'jsx',
54
+ code: "\nuseDatagrid({\n columns,\n data,\n disableResizing: true,\n});\n "
55
+ }
50
56
  }, {
51
57
  title: 'Rendering the table toolbar',
52
58
  image: /*#__PURE__*/React.createElement("img", {
@@ -80,7 +86,7 @@ export var DocsPage = function DocsPage() {
80
86
  }, {
81
87
  description: "Infinite scroll:\n- Include `useInfiniteScroll` hook\n- Add `fetchMoreData` property to `useDatagrid`, this will be a function that is called when the scroll threshold is met. Optionally change the height of the grid with the `virtualHeight` property.",
82
88
  source: {
83
- code: "\nconst datagridState = useDatagrid(\n {\n columns,\n data,\n isFetching,\n fetchMoreData: fetchData,\n virtualHeight: 540,\n emptyStateTitle: 'Empty state title',\n emptyStateDescription: 'Description explaining why the table is empty',\n },\n useInfiniteScroll\n);"
89
+ code: "\nconst datagridState = useDatagrid(\n {\n columns,\n data,\n isFetching,\n fetchMoreData: fetchData,\n virtualHeight: 540,\n loadMoreThreshold: 200,\n emptyStateTitle: 'Empty state title',\n emptyStateDescription: 'Description explaining why the table is empty',\n },\n useInfiniteScroll\n);"
84
90
  }
85
91
  }, {
86
92
  description: "Virtualized data:\n- Include `useInfiniteScroll` hook\n- The Datagrid will know to use virtualized data just by providing the `useInfiniteScroll` hook\n ",
@@ -41,12 +41,13 @@ var useActionsColumn = function useActionsColumn(hooks) {
41
41
  column = cell.column;
42
42
  if (column.isAction) {
43
43
  var _cx3;
44
+ var isColumnSticky = !!column.sticky;
44
45
  return [props, {
45
46
  children: /*#__PURE__*/React.createElement("div", {
46
47
  className: "".concat(blockClass, "__actions-column-contents")
47
48
  }, isFetching && /*#__PURE__*/React.createElement(IconSkeleton, {
48
49
  className: "".concat(blockClass, "__actions-column-loading")
49
- }), !isFetching && rowActions.length <= 2 && /*#__PURE__*/React.createElement("div", {
50
+ }), !isFetching && rowActions.length <= 2 && !isColumnSticky && /*#__PURE__*/React.createElement("div", {
50
51
  className: "".concat(blockClass, "_actions-column"),
51
52
  style: {
52
53
  display: 'flex'
@@ -81,7 +82,7 @@ var useActionsColumn = function useActionsColumn(hooks) {
81
82
  _onClick(id, row, e);
82
83
  }
83
84
  })));
84
- })), !isFetching && rowActions.length > 2 && /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(OverflowMenu, {
85
+ })), !isFetching && (rowActions.length > 2 || isColumnSticky) && /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(OverflowMenu, {
85
86
  align: "left",
86
87
  size: "sm",
87
88
  flipped: true,
@@ -111,9 +112,9 @@ var useActionsColumn = function useActionsColumn(hooks) {
111
112
  key: id
112
113
  }));
113
114
  })))),
114
- className: cx((_cx3 = {}, _defineProperty(_cx3, "".concat(blockClass, "__actions-column-cell"), true), _defineProperty(_cx3, "".concat(blockClass, "__cell"), true), _cx3)),
115
+ className: cx((_cx3 = {}, _defineProperty(_cx3, "".concat(blockClass, "__actions-column-cell"), true), _defineProperty(_cx3, "".concat(blockClass, "__cell"), true), _defineProperty(_cx3, "".concat(blockClass, "__actions-column-cell-non-sticky"), !isColumnSticky), _cx3)),
115
116
  style: {
116
- width: rowActions.length > 2 ? 48 : 96
117
+ width: rowActions.length > 2 || isColumnSticky ? 48 : 96
117
118
  }
118
119
  }];
119
120
  }
@@ -128,9 +129,10 @@ var useActionsColumn = function useActionsColumn(hooks) {
128
129
  var addHeaderWidth = function addHeaderWidth(props, cellData) {
129
130
  var column = cellData.column;
130
131
  if (column.isAction) {
132
+ var isColumnSticky = !!column.sticky;
131
133
  return [props, {
132
134
  style: _objectSpread(_objectSpread({}, props.style), {}, {
133
- width: rowActions.length > 2 ? 48 : 96 // set header width based on action length
135
+ width: rowActions.length > 2 || isColumnSticky ? 48 : 96 // set header width based on action length
134
136
  })
135
137
  }];
136
138
  }
@@ -2,13 +2,13 @@ import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
2
2
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
3
3
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
4
4
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
5
- /*
6
- * Licensed Materials - Property of IBM
7
- * 5724-Q36
8
- * (c) Copyright IBM Corp. 2020
9
- * US Government Users Restricted Rights - Use, duplication or disclosure
10
- * restricted by GSA ADP Schedule Contract with IBM Corp.
5
+ /**
6
+ * Copyright IBM Corp. 2020, 2023
7
+ *
8
+ * This source code is licensed under the Apache-2.0 license found in the
9
+ * LICENSE file in the root directory of this source tree.
11
10
  */
11
+
12
12
  import React from 'react';
13
13
  import cx from 'classnames';
14
14
  import { pkg } from '../../settings';
@@ -2,13 +2,13 @@ import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
2
2
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
3
3
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
4
4
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
5
- /*
6
- * Licensed Materials - Property of IBM
7
- * 5724-Q36
8
- * (c) Copyright IBM Corp. 2020
9
- * US Government Users Restricted Rights - Use, duplication or disclosure
10
- * restricted by GSA ADP Schedule Contract with IBM Corp.
5
+ /**
6
+ * Copyright IBM Corp. 2020, 2023
7
+ *
8
+ * This source code is licensed under the Apache-2.0 license found in the
9
+ * LICENSE file in the root directory of this source tree.
11
10
  */
11
+
12
12
  import React from 'react';
13
13
  import cx from 'classnames';
14
14
  import { pkg } from '../../settings';
@@ -22,6 +22,14 @@ import useFloatingScroll from './useFloatingScroll';
22
22
  import { stateReducer } from './Datagrid/addons/stateReducer';
23
23
  var useDatagrid = function useDatagrid(params) {
24
24
  var defaultPlugins = [useFlexLayout, useHeaderRow, useSkeletonRows, useResizeColumns, useRowRenderer, useDefaultStringRenderer, useRowSize, useFilters, useGlobalFilter, useSortBy, 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 = [usePagination, useRowSelect, useFlexResize, useFloatingScroll];
26
34
  var clientEndPlugins = params.endPlugins || [];
27
35
  var tableId = useMemo(function () {
@@ -1,10 +1,10 @@
1
- /*
2
- * Licensed Materials - Property of IBM
3
- * 5724-Q36
4
- * (c) Copyright IBM Corp. 2020
5
- * US Government Users Restricted Rights - Use, duplication or disclosure
6
- * restricted by GSA ADP Schedule Contract with IBM Corp.
1
+ /**
2
+ * Copyright IBM Corp. 2020, 2023
3
+ *
4
+ * This source code is licensed under the Apache-2.0 license found in the
5
+ * LICENSE file in the root directory of this source tree.
7
6
  */
7
+
8
8
  import { useCallback, useEffect } from 'react';
9
9
  import debounce from 'lodash/debounce';
10
10
  import useParentDimensions from './useParentDimensions';
@@ -21,10 +21,11 @@ var useInfiniteScroll = function useInfiniteScroll(hooks) {
21
21
  tableHeight = instance.tableHeight,
22
22
  innerListRef = instance.innerListRef,
23
23
  fetchMoreData = instance.fetchMoreData,
24
- tableId = instance.tableId;
24
+ tableId = instance.tableId,
25
+ loadMoreThreshold = instance.loadMoreThreshold;
25
26
  var tableElement = document.querySelector("#".concat(tableId));
26
27
  var totalTableHeight = tableHeight || (tableElement === null || tableElement === void 0 ? void 0 : tableElement.clientHeight);
27
- var loadMoreThreshold = 200;
28
+ var loadMoreThresholdValue = typeof loadMoreThreshold === 'number' ? loadMoreThreshold : 200;
28
29
  var emptyFetchData = function emptyFetchData() {};
29
30
  // eslint-disable-next-line react-hooks/exhaustive-deps
30
31
  var fetchMore = useCallback(debounce(fetchMoreData || emptyFetchData, 3000, {
@@ -35,7 +36,7 @@ var useInfiniteScroll = function useInfiniteScroll(hooks) {
35
36
  var scrollDirection = _ref.scrollDirection,
36
37
  scrollOffset = _ref.scrollOffset;
37
38
  if (innerListRef && innerListRef.current) {
38
- if (!isFetching && scrollDirection === 'forward' && scrollOffset + totalTableHeight >= innerListRef.current.clientHeight - loadMoreThreshold) {
39
+ if (!isFetching && scrollDirection === 'forward' && scrollOffset + totalTableHeight >= innerListRef.current.clientHeight - loadMoreThresholdValue) {
39
40
  if (fetchMoreData) {
40
41
  fetchMore();
41
42
  }
@@ -1,6 +1,8 @@
1
1
  import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
2
2
  import _extends from "@babel/runtime/helpers/extends";
3
3
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
4
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
5
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
4
6
  /* eslint-disable react/prop-types */
5
7
  /**
6
8
  * Copyright IBM Corp. 2020, 2023
@@ -25,6 +27,13 @@ var useNestedRowExpander = function useNestedRowExpander(hooks) {
25
27
  Cell: function Cell(_ref) {
26
28
  var _cx;
27
29
  var row = _ref.row;
30
+ var expanderButtonProps = _objectSpread(_objectSpread({}, row.getToggleRowExpandedProps()), {}, {
31
+ onClick: function onClick(event) {
32
+ // Prevents `onRowClick` from being called if `useOnRowClick` is included
33
+ event.stopPropagation();
34
+ row.toggleRowExpanded();
35
+ }
36
+ });
28
37
  var _ref2 = (tempState === null || tempState === void 0 ? void 0 : tempState.current) || {},
29
38
  _ref2$expanderButtonT = _ref2.expanderButtonTitleExpanded,
30
39
  expanderButtonTitleExpanded = _ref2$expanderButtonT === void 0 ? 'Collapse row' : _ref2$expanderButtonT,
@@ -35,7 +44,7 @@ var useNestedRowExpander = function useNestedRowExpander(hooks) {
35
44
  type: "button",
36
45
  "aria-label": expanderTitle,
37
46
  className: cx("".concat(blockClass, "__row-expander"), "".concat(carbon.prefix, "--btn"), "".concat(carbon.prefix, "--btn--ghost"))
38
- }, row.getToggleRowExpandedProps(), {
47
+ }, expanderButtonProps, {
39
48
  title: expanderTitle
40
49
  }), /*#__PURE__*/React.createElement(ChevronRight, {
41
50
  className: cx("".concat(blockClass, "__expander-icon"), (_cx = {}, _defineProperty(_cx, "".concat(blockClass, "__expander-icon--not-open"), !row.isExpanded), _defineProperty(_cx, "".concat(blockClass, "__expander-icon--open"), row.isExpanded), _cx))
@@ -1,11 +1,11 @@
1
1
  import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
2
- /*
3
- * Licensed Materials - Property of IBM
4
- * 5724-Q36
5
- * (c) Copyright IBM Corp. 2020
6
- * US Government Users Restricted Rights - Use, duplication or disclosure
7
- * restricted by GSA ADP Schedule Contract with IBM Corp.
2
+ /**
3
+ * Copyright IBM Corp. 2020, 2023
4
+ *
5
+ * This source code is licensed under the Apache-2.0 license found in the
6
+ * LICENSE file in the root directory of this source tree.
8
7
  */
8
+
9
9
  import { useRef, useState } from 'react';
10
10
  var useParentDimensions = function useParentDimensions(hooks) {
11
11
  var rootRef = useRef();
@@ -1,10 +1,10 @@
1
- /*
2
- * Licensed Materials - Property of IBM
3
- * 5724-Q36
4
- * (c) Copyright IBM Corp. 2020
5
- * US Government Users Restricted Rights - Use, duplication or disclosure
6
- * restricted by GSA ADP Schedule Contract with IBM Corp.
1
+ /**
2
+ * Copyright IBM Corp. 2020, 2023
3
+ *
4
+ * This source code is licensed under the Apache-2.0 license found in the
5
+ * LICENSE file in the root directory of this source tree.
7
6
  */
7
+
8
8
  import { useLayoutEffect } from 'react';
9
9
  var useResizeTable = function useResizeTable(hooks) {
10
10
  var useInstanceBeforeDimensions = function useInstanceBeforeDimensions(instance) {
@@ -26,7 +26,7 @@ var useResizeTable = function useResizeTable(hooks) {
26
26
  resizeObserver = null;
27
27
  };
28
28
  }
29
- return console.error(' Could not resize table, no support for ResizeObserver');
29
+ return console.error('Could not resize table, no support for ResizeObserver');
30
30
  }, [handleResize, parent]);
31
31
  };
32
32
  hooks.useInstanceBeforeDimensions.push(useInstanceBeforeDimensions);
@@ -1,5 +1,8 @@
1
1
  import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
2
2
  import _extends from "@babel/runtime/helpers/extends";
3
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
4
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
5
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
3
6
  /* eslint-disable react/prop-types */
4
7
  /**
5
8
  * Copyright IBM Corp. 2020, 2023
@@ -23,6 +26,13 @@ var useRowExpander = function useRowExpander(hooks) {
23
26
  id: 'expander',
24
27
  Cell: function Cell(_ref) {
25
28
  var row = _ref.row;
29
+ var expanderButtonProps = _objectSpread(_objectSpread({}, row.getToggleRowExpandedProps()), {}, {
30
+ onClick: function onClick(event) {
31
+ // Prevents `onRowClick` from being called if `useOnRowClick` is included
32
+ event.stopPropagation();
33
+ row.toggleRowExpanded();
34
+ }
35
+ });
26
36
  var _ref2 = (tempState === null || tempState === void 0 ? void 0 : tempState.current) || {},
27
37
  _ref2$expanderButtonT = _ref2.expanderButtonTitleExpanded,
28
38
  expanderButtonTitleExpanded = _ref2$expanderButtonT === void 0 ? 'Collapse row' : _ref2$expanderButtonT,
@@ -33,7 +43,7 @@ var useRowExpander = function useRowExpander(hooks) {
33
43
  type: "button",
34
44
  "aria-label": expanderTitle,
35
45
  className: cx("".concat(blockClass, "__row-expander"), "".concat(carbon.prefix, "--btn"), "".concat(carbon.prefix, "--btn--ghost"))
36
- }, row.getToggleRowExpandedProps(), {
46
+ }, expanderButtonProps, {
37
47
  title: expanderTitle
38
48
  }), row.isExpanded ? /*#__PURE__*/React.createElement(ChevronUp, {
39
49
  className: "".concat(blockClass, "__row-expander--icon")
@@ -13,7 +13,7 @@ import cx from 'classnames';
13
13
  import { selectionColumnId } from './common-column-ids';
14
14
  import SelectAllWithToggle from './Datagrid/DatagridSelectAllWithToggle';
15
15
  import { pkg } from '../../settings';
16
- var blockClass = "".concat(pkg.prefix, "--datagrid");
16
+ var blockClass = "".concat(pkg.prefix, "--datagrid__select-all");
17
17
  var useSelectAllToggle = function useSelectAllToggle(hooks) {
18
18
  useSelectAllWithToggleComponent(hooks);
19
19
  useAddClassNameToSelectRow(hooks);
@@ -60,7 +60,7 @@ var useAddClassNameToSelectRow = function useAddClassNameToSelectRow(hooks) {
60
60
  var isFirstColumnStickyLeft = ((_columns$ = columns[0]) === null || _columns$ === void 0 ? void 0 : _columns$.sticky) === 'left' && withStickyColumn;
61
61
  if (column.id === selectionColumnId && DatagridPagination) {
62
62
  return [props, {
63
- className: cx("".concat(blockClass, "__select-all-toggle-on"), _defineProperty({}, "".concat(blockClass, "__select-all-sticky-left"), isFirstColumnStickyLeft && windowSize > 671))
63
+ className: cx("".concat(blockClass, "-toggle-on"), _defineProperty({}, "".concat(blockClass, "-sticky-left"), isFirstColumnStickyLeft && windowSize > 671))
64
64
  }];
65
65
  }
66
66
  return [props];
@@ -3,7 +3,7 @@ import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProper
3
3
  import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
4
4
  import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
5
5
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
6
- var _excluded = ["onChange"];
6
+ var _excluded = ["onChange", "title"];
7
7
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
8
8
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
9
9
  /*
@@ -21,6 +21,7 @@ import { SelectAll } from './Datagrid/DatagridSelectAll';
21
21
  import { selectionColumnId } from './common-column-ids';
22
22
  import { pkg, carbon } from '../../settings';
23
23
  var blockClass = "".concat(pkg.prefix, "--datagrid");
24
+ var checkboxClass = "".concat(pkg.prefix, "--datagrid__checkbox-cell");
24
25
  var useSelectRows = function useSelectRows(hooks) {
25
26
  useHighlightSelection(hooks);
26
27
  var useInstance = function useInstance(instance) {
@@ -54,9 +55,12 @@ var useSelectRows = function useSelectRows(hooks) {
54
55
  };
55
56
  var useHighlightSelection = function useHighlightSelection(hooks) {
56
57
  var getRowProps = function getRowProps(props, _ref) {
58
+ var _ref2;
57
59
  var row = _ref.row;
60
+ var _row$getToggleRowSele = row.getToggleRowSelectedProps(),
61
+ checked = _row$getToggleRowSele.checked;
58
62
  return [props, {
59
- className: cx("".concat(blockClass, "__carbon-row"), row.getToggleRowSelectedProps().checked ? "".concat(carbon.prefix, "--data-table--selected ").concat(blockClass, "__active-row") : '')
63
+ className: cx(["".concat(blockClass, "__carbon-row"), (_ref2 = {}, _defineProperty(_ref2, "".concat(carbon.prefix, "--data-table--selected"), checked), _defineProperty(_ref2, "".concat(blockClass, "__active-row"), checked), _ref2)])
60
64
  }];
61
65
  };
62
66
  hooks.getRowProps.push(getRowProps);
@@ -87,30 +91,32 @@ var SelectRow = function SelectRow(datagridState) {
87
91
  return window.removeEventListener('resize', updateSize);
88
92
  };
89
93
  }, []);
94
+ var onSelectHandler = function onSelectHandler(e) {
95
+ e.stopPropagation(); // avoid triggering onRowClick
96
+ if (radio) {
97
+ toggleAllRowsSelected(false);
98
+ if (onRadioSelect) {
99
+ onRadioSelect(row);
100
+ }
101
+ }
102
+ onChange(e);
103
+ onRowSelect === null || onRowSelect === void 0 || onRowSelect(row, e);
104
+ };
90
105
  var selectDisabled = isFetching || row.getRowProps().disabled;
91
- var _row$getToggleRowSele = row.getToggleRowSelectedProps(),
92
- onChange = _row$getToggleRowSele.onChange,
93
- selectProps = _objectWithoutProperties(_row$getToggleRowSele, _excluded);
106
+ var _row$getToggleRowSele2 = row.getToggleRowSelectedProps(),
107
+ onChange = _row$getToggleRowSele2.onChange,
108
+ title = _row$getToggleRowSele2.title,
109
+ selectProps = _objectWithoutProperties(_row$getToggleRowSele2, _excluded);
94
110
  var cellProps = cell.getCellProps();
95
111
  var isFirstColumnStickyLeft = ((_columns$ = columns[0]) === null || _columns$ === void 0 ? void 0 : _columns$.sticky) === 'left' && withStickyColumn;
112
+ var rowId = "".concat(tableId, "-").concat(row.index);
96
113
  return /*#__PURE__*/React.createElement(TableSelectRow, _extends({}, cellProps, selectProps, {
97
114
  radio: radio,
98
- onSelect: function onSelect(e) {
99
- e.stopPropagation(); // avoid triggering onRowClick
100
- if (radio) {
101
- toggleAllRowsSelected(false);
102
- if (onRadioSelect) {
103
- onRadioSelect(row);
104
- }
105
- }
106
- onChange(e);
107
- onRowSelect === null || onRowSelect === void 0 || onRowSelect(row, e);
108
- },
109
- id: "".concat(tableId, "-").concat(row.index),
110
- name: "".concat(tableId, "-").concat(row.index, "-name"),
111
- className: cx("".concat(blockClass, "__checkbox-cell"), cellProps.className, _defineProperty({}, "".concat(blockClass, "__checkbox-cell-sticky-left"), isFirstColumnStickyLeft && windowSize > 671)),
112
- ariaLabel: "".concat(tableId, "-row-").concat(row.index) // TODO: aria label should be i18n'ed
113
- ,
115
+ onSelect: onSelectHandler,
116
+ id: rowId,
117
+ name: "".concat(rowId, "-name"),
118
+ className: cx([checkboxClass, cellProps.className, _defineProperty({}, "".concat(checkboxClass, "-sticky-left"), isFirstColumnStickyLeft && windowSize > 671)]),
119
+ ariaLabel: title,
114
120
  disabled: selectDisabled
115
121
  }));
116
122
  };
@@ -1,11 +1,11 @@
1
1
  import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
2
- /*
3
- * Licensed Materials - Property of IBM
4
- * 5724-Q36
5
- * (c) Copyright IBM Corp. 2020
6
- * US Government Users Restricted Rights - Use, duplication or disclosure
7
- * restricted by GSA ADP Schedule Contract with IBM Corp.
2
+ /**
3
+ * Copyright IBM Corp. 2020, 2023
4
+ *
5
+ * This source code is licensed under the Apache-2.0 license found in the
6
+ * LICENSE file in the root directory of this source tree.
8
7
  */
8
+
9
9
  var useSkeletons = function useSkeletons(hooks) {
10
10
  var useInstance = function useInstance(instance) {
11
11
  var isFetching = instance.isFetching,
@@ -2,12 +2,11 @@ import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
2
  import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
3
3
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
4
4
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
5
- /*
6
- * Licensed Materials - Property of IBM
7
- * 5724-Q36
8
- * (c) Copyright IBM Corp. 2021
9
- * US Government Users Restricted Rights - Use, duplication or disclosure
10
- * restricted by GSA ADP Schedule Contract with IBM Corp.
5
+ /**
6
+ * Copyright IBM Corp. 2021, 2023
7
+ *
8
+ * This source code is licensed under the Apache-2.0 license found in the
9
+ * LICENSE file in the root directory of this source tree.
11
10
  */
12
11
 
13
12
  import { useEffect, useRef, useLayoutEffect, useState } from 'react';
@@ -29,9 +28,11 @@ var useStickyColumn = function useStickyColumn(hooks) {
29
28
  setWindowSize(window.innerWidth);
30
29
  }, []);
31
30
  useLayoutEffect(function () {
31
+ /* istanbul ignore next */
32
32
  function updateSize() {
33
33
  setWindowSize(window.innerWidth);
34
34
  }
35
+ /* istanbul ignore next */
35
36
  window.addEventListener('resize', updateSize);
36
37
  return function () {
37
38
  return window.removeEventListener('resize', updateSize);
@@ -52,14 +53,17 @@ var useStickyColumn = function useStickyColumn(hooks) {
52
53
  useEffect(function () {
53
54
  var tableBodyElement = tableBodyRef.current;
54
55
  var headerCellElement = stickyHeaderCellRef.current;
56
+ /* istanbul ignore next */
55
57
  if (hasVertScroll(tableBodyElement) && headerCellElement) {
56
58
  headerCellElement.classList.add(OFFSET_SCROLL_CLASS);
57
59
  }
58
60
  var boundListener = debounce(onBodyResize.bind(null, tableBodyElement, headerCellElement), 250);
61
+ /* istanbul ignore next */
59
62
  if (typeof window !== 'undefined') {
60
63
  window.addEventListener('resize', boundListener);
61
64
  }
62
65
  return function () {
66
+ /* istanbul ignore next */
63
67
  if (typeof window !== 'undefined') {
64
68
  window.removeEventListener('resize', boundListener);
65
69
  }
@@ -158,6 +162,7 @@ var changeProps = function changeProps(elementName, headerCellRef, windowSize, p
158
162
  };
159
163
  var onBodyResize = function onBodyResize(tableBodyEle, headerCellEle) {
160
164
  if (headerCellEle) {
165
+ /* istanbul ignore next */
161
166
  if (hasVertScroll(tableBodyEle)) {
162
167
  headerCellEle.classList.add(OFFSET_SCROLL_CLASS);
163
168
  } else {
@@ -167,6 +172,7 @@ var onBodyResize = function onBodyResize(tableBodyEle, headerCellEle) {
167
172
  }
168
173
  };
169
174
  var toggleStickyShadow = function toggleStickyShadow(tableBodyEle, headerCellEle) {
175
+ /* istanbul ignore next */
170
176
  if (tableBodyEle && headerCellEle) {
171
177
  var isScrolledToRight = tableBodyEle.scrollLeft + tableBodyEle.clientWidth === tableBodyEle.scrollWidth;
172
178
  if (isScrolledToRight) {
@@ -179,6 +185,7 @@ var toggleStickyShadow = function toggleStickyShadow(tableBodyEle, headerCellEle
179
185
  }
180
186
  };
181
187
  var hasVertScroll = function hasVertScroll(element) {
188
+ /* istanbul ignore next */
182
189
  if (!element) {
183
190
  return false;
184
191
  }
@@ -46,7 +46,7 @@ var DatagridExpandedRow = function DatagridExpandedRow(ExpandedRowContentCompone
46
46
  style: {
47
47
  height: expandedContentHeight ? expandedContentHeight : null
48
48
  }
49
- }, ExpandedRowContentComponent(datagridState)));
49
+ }, /*#__PURE__*/_react.default.createElement(ExpandedRowContentComponent, datagridState)));
50
50
  };
51
51
  };
52
52
  var _default = exports.default = DatagridExpandedRow;
@@ -88,13 +88,14 @@ var HeaderRow = function HeaderRow(datagridState, headRef, headerGroup) {
88
88
  dispatch = datagridState.dispatch,
89
89
  onColResizeEnd = datagridState.onColResizeEnd;
90
90
  var columnResizing = state.columnResizing;
91
- var columnWidths = columnResizing.columnWidths;
91
+ var _ref4 = columnResizing || {},
92
+ columnWidths = _ref4.columnWidths;
92
93
  var originalCol = visibleColumns[index];
93
94
  return /*#__PURE__*/_react.default.createElement(_react2.TableHeader, (0, _extends2.default)({}, header.getHeaderProps(), {
94
- className: (0, _classnames.default)((_cx = {}, (0, _defineProperty2.default)(_cx, "".concat(blockClass, "__resizableColumn"), header.getResizerProps), (0, _defineProperty2.default)(_cx, "".concat(blockClass, "__isResizing"), header.isResizing), (0, _defineProperty2.default)(_cx, "".concat(blockClass, "__sortableColumn"), datagridState.isTableSortable && header.id !== 'spacer'), (0, _defineProperty2.default)(_cx, "".concat(blockClass, "__isSorted"), header.isSorted), _cx), header.getHeaderProps().className),
95
+ className: (0, _classnames.default)((_cx = {}, (0, _defineProperty2.default)(_cx, "".concat(blockClass, "__resizableColumn"), header.getResizerProps), (0, _defineProperty2.default)(_cx, "".concat(blockClass, "__isResizing"), header.isResizing), (0, _defineProperty2.default)(_cx, "".concat(blockClass, "__sortableColumn"), datagridState.isTableSortable && header.id !== 'spacer'), (0, _defineProperty2.default)(_cx, "".concat(blockClass, "__isSorted"), header.isSorted), (0, _defineProperty2.default)(_cx, "".concat(blockClass, "__header-actions-column"), header.isAction), _cx), header.getHeaderProps().className),
95
96
  key: header.id,
96
97
  "aria-hidden": header.id === 'spacer' && 'true'
97
- }, getAccessibilityProps(header)), header.render('Header'), header.getResizerProps && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("input", (0, _extends2.default)({}, header.getResizerProps(), {
98
+ }, getAccessibilityProps(header)), header.render('Header'), header.getResizerProps && !header.isAction && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("input", (0, _extends2.default)({}, header.getResizerProps(), {
98
99
  onKeyDown: function onKeyDown(event) {
99
100
  var key = event.key;
100
101
  if (key === 'ArrowLeft' || key === 'ArrowRight') {
@@ -32,8 +32,11 @@ var DatagridRefBody = function DatagridRefBody(datagridState) {
32
32
  className: (0, _classnames.default)("".concat(blockClass, "__simple-body"), getTableBodyProps().className)
33
33
  }), rows.map(function (row) {
34
34
  prepareRow(row);
35
+ var _row$getRowProps = row.getRowProps(),
36
+ key = _row$getRowProps.key;
35
37
  return row.RowRenderer(_objectSpread(_objectSpread({}, datagridState), {}, {
36
- row: row
38
+ row: row,
39
+ key: key
37
40
  }));
38
41
  }));
39
42
  };
@@ -37,7 +37,8 @@ var DatagridRow = function DatagridRow(datagridState) {
37
37
  var row = datagridState.row,
38
38
  rowSize = datagridState.rowSize,
39
39
  withNestedRows = datagridState.withNestedRows,
40
- prepareRow = datagridState.prepareRow;
40
+ prepareRow = datagridState.prepareRow,
41
+ key = datagridState.key;
41
42
  var getVisibleNestedRowCount = function getVisibleNestedRowCount(_ref) {
42
43
  var isExpanded = _ref.isExpanded,
43
44
  subRows = _ref.subRows;
@@ -95,7 +96,9 @@ var DatagridRow = function DatagridRow(datagridState) {
95
96
  }
96
97
  };
97
98
  var rowClassNames = (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));
98
- return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_react2.TableRow, (0, _extends2.default)({
99
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, {
100
+ key: key
101
+ }, /*#__PURE__*/_react.default.createElement(_react2.TableRow, (0, _extends2.default)({
99
102
  className: rowClassNames
100
103
  }, row.getRowProps(), {
101
104
  key: row.id,
@@ -28,8 +28,11 @@ var DatagridSimpleBody = function DatagridSimpleBody(datagridState) {
28
28
  className: (0, _classnames.default)("".concat(blockClass, "__simple-body"), getTableBodyProps().className)
29
29
  }), rows.map(function (row) {
30
30
  prepareRow(row);
31
+ var _row$getRowProps = row.getRowProps(),
32
+ key = _row$getRowProps.key;
31
33
  return row.RowRenderer(_objectSpread(_objectSpread({}, datagridState), {}, {
32
- row: row
34
+ row: row,
35
+ key: key
33
36
  }));
34
37
  }));
35
38
  };