@carbon/ibm-products 2.0.0-rc.25 → 2.0.0-rc.27

Sign up to get free protection for your applications and to get access to all the features.
Files changed (106) hide show
  1. package/README.md +10 -4
  2. package/css/index-full-carbon.css +129 -127
  3. package/css/index-full-carbon.css.map +1 -1
  4. package/css/index-full-carbon.min.css +3 -3
  5. package/css/index-full-carbon.min.css.map +1 -1
  6. package/css/index-without-carbon-released-only.css +69 -118
  7. package/css/index-without-carbon-released-only.css.map +1 -1
  8. package/css/index-without-carbon-released-only.min.css +2 -2
  9. package/css/index-without-carbon-released-only.min.css.map +1 -1
  10. package/css/index-without-carbon.css +129 -127
  11. package/css/index-without-carbon.css.map +1 -1
  12. package/css/index-without-carbon.min.css +3 -3
  13. package/css/index-without-carbon.min.css.map +1 -1
  14. package/css/index.css +129 -127
  15. package/css/index.css.map +1 -1
  16. package/css/index.min.css +3 -3
  17. package/css/index.min.css.map +1 -1
  18. package/es/components/AddSelect/AddSelectBody.js +1 -0
  19. package/es/components/AddSelect/AddSelectFormControl.js +92 -0
  20. package/es/components/AddSelect/AddSelectList.js +26 -195
  21. package/es/components/AddSelect/AddSelectRow.js +220 -0
  22. package/es/components/AddSelect/hooks/useFocus.js +35 -0
  23. package/es/components/Card/Card.js +8 -6
  24. package/es/components/Card/CardHeader.js +2 -2
  25. package/es/components/Datagrid/Datagrid/DatagridEmptyBody.js +15 -20
  26. package/es/components/Datagrid/Datagrid/DatagridHeaderRow.js +6 -2
  27. package/es/components/Datagrid/Datagrid/DatagridRefBody.js +3 -1
  28. package/es/components/Datagrid/Datagrid/DatagridRow.js +6 -2
  29. package/es/components/Datagrid/Datagrid/DatagridSimpleBody.js +3 -1
  30. package/es/components/Datagrid/Datagrid/DatagridToolbar.js +1 -1
  31. package/es/components/Datagrid/Datagrid/DatagridVirtualBody.js +3 -1
  32. package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/Columns.js +15 -65
  33. package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/CustomizeColumnsTearsheet.js +5 -2
  34. package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/DraggableItemsList.js +112 -0
  35. package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/TearsheetWrapper.js +1 -0
  36. package/es/components/Datagrid/Datagrid/addons/Filtering/hooks/useFilters.js +11 -0
  37. package/es/components/Datagrid/Datagrid/addons/RowSize/RowSizeDropdown.js +29 -23
  38. package/es/components/Datagrid/Datagrid/addons/RowSize/RowSizeRadioGroup.js +1 -0
  39. package/es/components/Datagrid/index.js +7 -7
  40. package/es/components/Datagrid/useInfiniteScroll.js +5 -1
  41. package/es/components/Datagrid/useOnRowClick.js +3 -3
  42. package/es/components/Datagrid/useSortableColumns.js +7 -5
  43. package/es/components/Datagrid/utils/getAutoSizedColumnWidth.js +29 -0
  44. package/es/components/ExampleComponent/ExampleComponent.js +39 -5
  45. package/es/components/ExampleComponent/useExample.js +51 -0
  46. package/es/components/ExpressiveCard/ExpressiveCard.js +3 -3
  47. package/es/components/InlineEditV1/InlineEditV1.js +15 -20
  48. package/es/components/InlineEditV2/InlineEditV2.js +21 -31
  49. package/es/components/PageHeader/PageHeader.js +4 -3
  50. package/es/components/ProductiveCard/ProductiveCard.js +3 -3
  51. package/es/components/index.js +1 -1
  52. package/es/global/js/package-settings.js +24 -3
  53. package/es/global/js/utils/story-helper.js +9 -0
  54. package/es/global/js/utils/test-helper.js +38 -6
  55. package/lib/components/AddSelect/AddSelectBody.js +1 -0
  56. package/lib/components/AddSelect/AddSelectFormControl.js +110 -0
  57. package/lib/components/AddSelect/AddSelectList.js +29 -203
  58. package/lib/components/AddSelect/AddSelectRow.js +247 -0
  59. package/lib/components/AddSelect/hooks/useFocus.js +46 -0
  60. package/lib/components/Card/Card.js +7 -5
  61. package/lib/components/Card/CardHeader.js +2 -2
  62. package/lib/components/Datagrid/Datagrid/DatagridEmptyBody.js +14 -19
  63. package/lib/components/Datagrid/Datagrid/DatagridHeaderRow.js +6 -2
  64. package/lib/components/Datagrid/Datagrid/DatagridRefBody.js +3 -1
  65. package/lib/components/Datagrid/Datagrid/DatagridRow.js +6 -2
  66. package/lib/components/Datagrid/Datagrid/DatagridSimpleBody.js +3 -1
  67. package/lib/components/Datagrid/Datagrid/DatagridToolbar.js +1 -1
  68. package/lib/components/Datagrid/Datagrid/DatagridVirtualBody.js +3 -1
  69. package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/Columns.js +16 -69
  70. package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/CustomizeColumnsTearsheet.js +5 -2
  71. package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/DraggableItemsList.js +132 -0
  72. package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/TearsheetWrapper.js +1 -0
  73. package/lib/components/Datagrid/Datagrid/addons/Filtering/hooks/useFilters.js +11 -0
  74. package/lib/components/Datagrid/Datagrid/addons/RowSize/RowSizeDropdown.js +23 -16
  75. package/lib/components/Datagrid/Datagrid/addons/RowSize/RowSizeRadioGroup.js +1 -0
  76. package/lib/components/Datagrid/index.js +9 -1
  77. package/lib/components/Datagrid/useInfiniteScroll.js +5 -0
  78. package/lib/components/Datagrid/useOnRowClick.js +3 -3
  79. package/lib/components/Datagrid/useSortableColumns.js +7 -5
  80. package/lib/components/Datagrid/utils/getAutoSizedColumnWidth.js +40 -0
  81. package/lib/components/ExampleComponent/ExampleComponent.js +47 -4
  82. package/lib/components/ExampleComponent/useExample.js +63 -0
  83. package/lib/components/ExpressiveCard/ExpressiveCard.js +3 -3
  84. package/lib/components/InlineEditV1/InlineEditV1.js +14 -19
  85. package/lib/components/InlineEditV2/InlineEditV2.js +20 -30
  86. package/lib/components/PageHeader/PageHeader.js +4 -3
  87. package/lib/components/ProductiveCard/ProductiveCard.js +3 -3
  88. package/lib/components/index.js +6 -0
  89. package/lib/global/js/package-settings.js +24 -3
  90. package/lib/global/js/utils/story-helper.js +13 -2
  91. package/lib/global/js/utils/test-helper.js +42 -8
  92. package/package.json +2 -2
  93. package/scss/components/ActionBar/_action-bar.scss +0 -4
  94. package/scss/components/AddSelect/_add-select.scss +4 -16
  95. package/scss/components/Card/_card.scss +13 -6
  96. package/scss/components/Datagrid/styles/addons/_CustomizeColumnsTearsheet.scss +15 -2
  97. package/scss/components/Datagrid/styles/addons/_RowSizeDropdown.scss +18 -6
  98. package/scss/components/ExportModal/_export-modal.scss +0 -4
  99. package/scss/components/ExpressiveCard/_expressive-card.scss +1 -1
  100. package/scss/components/InlineEditV1/_inline-edit-v1.scss +5 -89
  101. package/scss/components/InlineEditV2/_inline-edit-v2.scss +42 -3
  102. package/scss/components/PageHeader/_page-header.scss +2 -3
  103. package/scss/components/ProductiveCard/_productive-card.scss +31 -2
  104. package/scss/components/SidePanel/_side-panel.scss +2 -1
  105. package/scss/components/TagSet/_tag-set.scss +1 -0
  106. package/scss/components/UserProfileImage/_user-profile-image.scss +5 -0
@@ -112,7 +112,9 @@ var Card = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
112
112
  if (overflowActions.length > 0) {
113
113
  var pos = actionsPlacement === 'top' ? 'bottom' : 'top';
114
114
  var size = actionsPlacement === 'top' ? 'sm' : 'md';
115
- return /*#__PURE__*/_react.default.createElement(_react2.OverflowMenu, {
115
+ return /*#__PURE__*/_react.default.createElement(_react2.Layer, {
116
+ level: 2
117
+ }, /*#__PURE__*/_react.default.createElement(_react2.OverflowMenu, {
116
118
  size: size,
117
119
  direction: pos,
118
120
  flipped: true,
@@ -123,7 +125,7 @@ var Card = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
123
125
  return /*#__PURE__*/_react.default.createElement(_react2.OverflowMenuItem, (0, _extends2.default)({
124
126
  key: id
125
127
  }, rest));
126
- }));
128
+ })));
127
129
  }
128
130
 
129
131
  var icons = actionIcons.map(function (_ref3) {
@@ -266,8 +268,8 @@ Card.propTypes = {
266
268
  children: _propTypes.default.node,
267
269
  className: _propTypes.default.string,
268
270
  clickZone: _propTypes.default.oneOf(['one', 'two', 'three']),
269
- description: _propTypes.default.string,
270
- label: _propTypes.default.string,
271
+ description: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.object, _propTypes.default.node]),
272
+ label: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.object, _propTypes.default.node]),
271
273
  media: _propTypes.default.node,
272
274
  mediaPosition: _propTypes.default.oneOf(['top', 'left']),
273
275
  onClick: _propTypes.default.func,
@@ -292,7 +294,7 @@ Card.propTypes = {
292
294
  secondaryButtonIcon: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object]),
293
295
  secondaryButtonKind: _propTypes.default.oneOf(['secondary', 'ghost']),
294
296
  secondaryButtonText: _propTypes.default.string,
295
- title: _propTypes.default.string,
297
+ title: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.object, _propTypes.default.node]),
296
298
  titleSize: _propTypes.default.oneOf(['default', 'large'])
297
299
  };
298
300
  Card.displayName = componentName;
@@ -78,7 +78,7 @@ var CardHeader = function CardHeader(_ref) {
78
78
  exports.CardHeader = CardHeader;
79
79
  CardHeader.propTypes = {
80
80
  actions: _propTypes.default.oneOfType([_propTypes.default.array, _propTypes.default.node]),
81
- description: _propTypes.default.string,
81
+ description: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.object, _propTypes.default.node]),
82
82
  hasActions: _propTypes.default.bool,
83
83
  label: _propTypes.default.string,
84
84
  noActionIcons: _propTypes.default.bool,
@@ -86,7 +86,7 @@ CardHeader.propTypes = {
86
86
  primaryButtonIcon: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object]),
87
87
  primaryButtonPlacement: _propTypes.default.oneOf(['top', 'bottom']),
88
88
  primaryButtonText: _propTypes.default.string,
89
- title: _propTypes.default.string,
89
+ title: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.object, _propTypes.default.node]),
90
90
  titleSize: _propTypes.default.oneOf(['default', 'large'])
91
91
  };
92
92
  CardHeader.displayName = componentName;
@@ -17,12 +17,11 @@ var _react2 = require("@carbon/react");
17
17
 
18
18
  var _EmptyStates = require("../../EmptyStates");
19
19
 
20
- /*
21
- * Licensed Materials - Property of IBM
22
- * 5724-Q36
23
- * (c) Copyright IBM Corp. 2020
24
- * US Government Users Restricted Rights - Use, duplication or disclosure
25
- * restricted by GSA ADP Schedule Contract with IBM Corp.
20
+ /**
21
+ * Copyright IBM Corp. 2020, 2023
22
+ *
23
+ * This source code is licensed under the Apache-2.0 license found in the
24
+ * LICENSE file in the root directory of this source tree.
26
25
  */
27
26
  var blockClass = "".concat(_settings.pkg.prefix, "--datagrid");
28
27
 
@@ -37,25 +36,21 @@ var DatagridEmptyBody = function DatagridEmptyBody(datagridState) {
37
36
  illustrationTheme = datagridState.illustrationTheme,
38
37
  emptyStateAction = datagridState.emptyStateAction,
39
38
  emptyStateLink = datagridState.emptyStateLink;
40
- return /*#__PURE__*/_react.default.createElement(_react2.TableBody, (0, _extends2.default)({}, getTableBodyProps(), {
41
- className: "".concat(blockClass, "__empty-state-body")
42
- }), /*#__PURE__*/_react.default.createElement(_react2.TableRow, null, /*#__PURE__*/_react.default.createElement(_react2.TableCell, {
43
- colSpan: headers.length
44
- }, emptyStateType === 'error' && /*#__PURE__*/_react.default.createElement(_EmptyStates.ErrorEmptyState, {
45
- illustrationTheme: illustrationTheme,
46
- size: emptyStateSize,
47
- title: emptyStateTitle,
48
- subtitle: emptyStateDescription,
49
- action: emptyStateAction,
50
- link: emptyStateLink
51
- }), emptyStateType === 'noData' && /*#__PURE__*/_react.default.createElement(_EmptyStates.NoDataEmptyState, {
39
+ var emptyStateProps = {
52
40
  illustrationTheme: illustrationTheme,
53
41
  size: emptyStateSize,
54
42
  title: emptyStateTitle,
55
43
  subtitle: emptyStateDescription,
56
44
  action: emptyStateAction,
57
45
  link: emptyStateLink
58
- }))));
46
+ };
47
+ return /*#__PURE__*/_react.default.createElement(_react2.TableBody, (0, _extends2.default)({}, getTableBodyProps({
48
+ role: false
49
+ }), {
50
+ className: "".concat(blockClass, "__empty-state-body")
51
+ }), /*#__PURE__*/_react.default.createElement(_react2.TableRow, null, /*#__PURE__*/_react.default.createElement(_react2.TableCell, {
52
+ colSpan: headers.length
53
+ }, emptyStateType === 'error' && /*#__PURE__*/_react.default.createElement(_EmptyStates.ErrorEmptyState, emptyStateProps), emptyStateType === 'noData' && /*#__PURE__*/_react.default.createElement(_EmptyStates.NoDataEmptyState, emptyStateProps), emptyStateType === 'notFound' && /*#__PURE__*/_react.default.createElement(_EmptyStates.NotFoundEmptyState, emptyStateProps))));
59
54
  };
60
55
 
61
56
  var _default = DatagridEmptyBody;
@@ -31,7 +31,9 @@ var _settings = require("../../../settings");
31
31
  var blockClass = "".concat(_settings.pkg.prefix, "--datagrid");
32
32
 
33
33
  var HeaderRow = function HeaderRow(datagridState, headRef, headerGroup) {
34
- return /*#__PURE__*/_react.default.createElement(_react2.TableRow, (0, _extends2.default)({}, headerGroup.getHeaderGroupProps(), {
34
+ return /*#__PURE__*/_react.default.createElement(_react2.TableRow, (0, _extends2.default)({}, headerGroup.getHeaderGroupProps({
35
+ role: false
36
+ }), {
35
37
  className: (0, _classnames.default)("".concat(blockClass, "__head"), headerGroup.getHeaderGroupProps().className),
36
38
  ref: headRef
37
39
  }), datagridState.headers.filter(function (_ref) {
@@ -47,7 +49,9 @@ var HeaderRow = function HeaderRow(datagridState, headRef, headerGroup) {
47
49
  });
48
50
  }
49
51
 
50
- return /*#__PURE__*/_react.default.createElement(_react2.TableHeader, (0, _extends2.default)({}, header.getHeaderProps(), {
52
+ return /*#__PURE__*/_react.default.createElement(_react2.TableHeader, (0, _extends2.default)({}, header.getHeaderProps({
53
+ role: false
54
+ }), {
51
55
  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"), header.canSort), (0, _defineProperty2.default)(_cx, "".concat(blockClass, "__isSorted"), header.isSorted), _cx), header.getHeaderProps().className),
52
56
  key: header.id
53
57
  }), header.render('Header'), header.getResizerProps && /*#__PURE__*/_react.default.createElement("div", (0, _extends2.default)({}, header.getResizerProps(), {
@@ -30,7 +30,9 @@ var DatagridRefBody = function DatagridRefBody(datagridState) {
30
30
  var getTableBodyProps = datagridState.getTableBodyProps,
31
31
  rows = datagridState.rows,
32
32
  prepareRow = datagridState.prepareRow;
33
- return /*#__PURE__*/_react.default.createElement("tbody", (0, _extends2.default)({}, getTableBodyProps(), {
33
+ return /*#__PURE__*/_react.default.createElement("tbody", (0, _extends2.default)({}, getTableBodyProps({
34
+ role: false
35
+ }), {
34
36
  className: (0, _classnames.default)("".concat(blockClass, "__simple-body"), getTableBodyProps().className)
35
37
  }), rows.map(function (row) {
36
38
  prepareRow(row);
@@ -80,7 +80,9 @@ var DatagridRow = function DatagridRow(datagridState) {
80
80
 
81
81
  return /*#__PURE__*/_react.default.createElement(_react2.TableRow, (0, _extends2.default)({
82
82
  className: (0, _classnames.default)("".concat(blockClass, "__carbon-row"), (_cx = {}, (0, _defineProperty2.default)(_cx, "".concat(blockClass, "__carbon-row-expanded"), row.isExpanded), (0, _defineProperty2.default)(_cx, "".concat(blockClass, "__carbon-row-expandable"), row.canExpand), (0, _defineProperty2.default)(_cx, "".concat(_settings.carbon.prefix, "--data-table--selected"), row.isSelected), _cx))
83
- }, row.getRowProps(), {
83
+ }, row.getRowProps({
84
+ role: false
85
+ }), {
84
86
  key: row.id,
85
87
  onMouseEnter: function onMouseEnter(event) {
86
88
  if (!withNestedRows) {
@@ -114,7 +116,9 @@ var DatagridRow = function DatagridRow(datagridState) {
114
116
  }
115
117
  }
116
118
  }), row.cells.map(function (cell, index) {
117
- var cellProps = cell.getCellProps();
119
+ var cellProps = cell.getCellProps({
120
+ role: false
121
+ });
118
122
  var children = cellProps.children,
119
123
  restProps = (0, _objectWithoutProperties2.default)(cellProps, _excluded);
120
124
 
@@ -29,7 +29,9 @@ var DatagridSimpleBody = function DatagridSimpleBody(datagridState) {
29
29
  var getTableBodyProps = datagridState.getTableBodyProps,
30
30
  rows = datagridState.rows,
31
31
  prepareRow = datagridState.prepareRow;
32
- return /*#__PURE__*/_react.default.createElement(_react2.TableBody, (0, _extends2.default)({}, getTableBodyProps(), {
32
+ return /*#__PURE__*/_react.default.createElement(_react2.TableBody, (0, _extends2.default)({}, getTableBodyProps({
33
+ role: false
34
+ }), {
33
35
  className: (0, _classnames.default)("".concat(blockClass, "__simple-body"), getTableBodyProps().className)
34
36
  }), rows.map(function (row) {
35
37
  prepareRow(row);
@@ -139,7 +139,7 @@ var DatagridBatchActionsToolbar = function DatagridBatchActionsToolbar(datagridS
139
139
  setGlobalFilter(null);
140
140
  }
141
141
  }, !displayAllInMenu && toolbarBatchActions && (toolbarBatchActions === null || toolbarBatchActions === void 0 ? void 0 : toolbarBatchActions.map(function (batchAction, index) {
142
- if (index < 2 && toolbarBatchActions.length > 3 || index < 3 && toolbarBatchActions.length === 3) {
142
+ if (index < 2 && toolbarBatchActions.length > 3 || index < 3 && toolbarBatchActions.length <= 3) {
143
143
  return /*#__PURE__*/_react.default.createElement(_react2.TableBatchAction, {
144
144
  key: "".concat(batchAction.label, "-").concat(index),
145
145
  renderIcon: batchAction.renderIcon,
@@ -101,7 +101,9 @@ var DatagridVirtualBody = function DatagridVirtualBody(datagridState) {
101
101
  width: (_gridRef$current = gridRef.current) === null || _gridRef$current === void 0 ? void 0 : _gridRef$current.clientWidth,
102
102
  overflow: 'hidden'
103
103
  }
104
- }, /*#__PURE__*/_react.default.createElement(_DatagridHead.default, datagridState)), /*#__PURE__*/_react.default.createElement(_react2.TableBody, (0, _extends2.default)({}, getTableBodyProps(), {
104
+ }, /*#__PURE__*/_react.default.createElement(_DatagridHead.default, datagridState)), /*#__PURE__*/_react.default.createElement(_react2.TableBody, (0, _extends2.default)({}, getTableBodyProps({
105
+ role: false
106
+ }), {
105
107
  onScroll: function onScroll(e) {
106
108
  return syncScroll(e);
107
109
  }
@@ -25,12 +25,10 @@ var _immutabilityHelper = _interopRequireDefault(require("immutability-helper"))
25
25
 
26
26
  var _settings = require("../../../../../settings");
27
27
 
28
- var _DraggableElement = _interopRequireDefault(require("../../DraggableElement"));
29
-
30
- var _common = require("./common");
31
-
32
28
  var _classnames = _interopRequireDefault(require("classnames"));
33
29
 
30
+ var _DraggableItemsList = require("./DraggableItemsList");
31
+
34
32
  /**
35
33
  * Copyright IBM Corp. 2022, 2022
36
34
  *
@@ -61,7 +59,8 @@ var Columns = function Columns(_ref) {
61
59
  onSelectColumn = _ref.onSelectColumn,
62
60
  assistiveTextInstructionsLabel = _ref.assistiveTextInstructionsLabel,
63
61
  assistiveTextDisabledInstructionsLabel = _ref.assistiveTextDisabledInstructionsLabel,
64
- selectAllLabel = _ref.selectAllLabel;
62
+ selectAllLabel = _ref.selectAllLabel,
63
+ isTableSortable = _ref.isTableSortable;
65
64
 
66
65
  var _React$useState = _react.default.useState(''),
67
66
  _React$useState2 = (0, _slicedToArray2.default)(_React$useState, 2),
@@ -117,70 +116,17 @@ var Columns = function Columns(_ref) {
117
116
  },
118
117
  id: "".concat(blockClass, "__customization-column-select-all"),
119
118
  labelText: selectAllLabel
120
- })), columns // hide the columns without Header, e.g the sticky actions, spacer
121
- .filter(function (colDef) {
122
- return !!colDef.Header.props && !!colDef.Header.props.title;
123
- }).filter(function (colDef) {
124
- return !colDef.isAction;
125
- }).filter(function (colDef) {
126
- return filterString.length === 0 || colDef.Header.props.title.toLowerCase().includes(filterString);
127
- }).map(function (colDef, i) {
128
- var searchString = new RegExp('(' + filterString + ')');
129
- var res = filterString.length ? colDef.Header.props.title.toLowerCase().split(searchString) : null;
130
- var firstWord = res !== null ? res[0] === '' ? res[1].charAt(0).toUpperCase() + res[1].substring(1) : res[0].charAt(0).toUpperCase() + res[0].substring(1) : null;
131
- var highlightedText = res !== null ? res[0] === '' ? "<strong>".concat(firstWord, "</strong>") + res[2] : firstWord + "<strong>".concat(res[1], "</strong>") + res[2] : colDef.Header.props.title;
132
- var isFrozenColumn = !!colDef.sticky;
133
-
134
- var listContents = /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_react2.Checkbox, {
135
- className: (0, _classnames.default)("".concat(blockClass, "__customize-columns-checkbox-wrapper"), "".concat(blockClass, "__customize-columns-checkbox")),
136
- checked: (0, _common.isColumnVisible)(colDef),
137
- disabled: isFrozenColumn,
138
- onChange: function onChange(_, _ref2) {
139
- var checked = _ref2.checked;
140
- return onSelectColumn(colDef, checked);
141
- },
142
- id: "".concat(blockClass, "__customization-column-").concat(colDef.id),
143
- labelText: colDef.Header.props.title,
144
- title: colDef.Header.props.title,
145
- hideLabel: true
146
- }), /*#__PURE__*/_react.default.createElement("div", {
147
- dangerouslySetInnerHTML: {
148
- __html: highlightedText
149
- }
150
- }));
151
-
152
- return /*#__PURE__*/_react.default.createElement(_DraggableElement.default, {
153
- key: colDef.id,
154
- index: i,
155
- listData: columns,
156
- setListData: setColumnsObject,
157
- id: "dnd-datagrid-columns-".concat(colDef.id),
158
- type: "column-customization",
159
- disabled: filterString.length > 0 || isFrozenColumn,
160
- ariaLabel: colDef.Header.props.title,
161
- onGrab: setAriaRegionText,
162
- isFocused: focusIndex === i,
163
- isSticky: isFrozenColumn,
164
- moveElement: moveElement,
165
- onArrowKeyDown: function onArrowKeyDown(e, isGrabbed, currentIndex) {
166
- if (isGrabbed) {
167
- var _columns$nextIndex;
168
-
169
- var nextIndex = getNextIndex(columns, currentIndex, e.key);
170
- e.preventDefault();
171
- e.stopPropagation();
172
-
173
- if (nextIndex >= 0 && !((_columns$nextIndex = columns[nextIndex]) !== null && _columns$nextIndex !== void 0 && _columns$nextIndex.sticky)) {
174
- setFocusIndex(nextIndex);
175
- moveElement(currentIndex, nextIndex);
176
- e.target.scrollIntoView({
177
- block: 'center'
178
- });
179
- }
180
- }
181
- },
182
- selected: (0, _common.isColumnVisible)(colDef)
183
- }, listContents);
119
+ })), /*#__PURE__*/_react.default.createElement(_DraggableItemsList.DraggableItemsList, {
120
+ columns: columns,
121
+ filterString: filterString,
122
+ focusIndex: focusIndex,
123
+ getNextIndex: getNextIndex,
124
+ isTableSortable: isTableSortable,
125
+ moveElement: moveElement,
126
+ onSelectColumn: onSelectColumn,
127
+ setAriaRegionText: setAriaRegionText,
128
+ setColumnsObject: setColumnsObject,
129
+ setFocusIndex: setFocusIndex
184
130
  }))));
185
131
  };
186
132
 
@@ -192,6 +138,7 @@ Columns.propTypes = {
192
138
  filterString: _propTypes.default.string.isRequired,
193
139
  getVisibleColumnsCount: _propTypes.default.func.isRequired,
194
140
  instructionsLabel: _propTypes.default.string,
141
+ isTableSortable: _propTypes.default.bool.isRequired,
195
142
  onSelectColumn: _propTypes.default.func.isRequired,
196
143
  selectAllLabel: _propTypes.default.string,
197
144
  setColumnStatus: _propTypes.default.func,
@@ -60,7 +60,8 @@ var CustomizeColumnsTearsheet = function CustomizeColumnsTearsheet(_ref) {
60
60
  _ref$assistiveTextDis = _ref.assistiveTextDisabledInstructionsLabel,
61
61
  assistiveTextDisabledInstructionsLabel = _ref$assistiveTextDis === void 0 ? 'Reordering columns are disabled because they are filtered currently.' : _ref$assistiveTextDis,
62
62
  _ref$selectAllLabel = _ref.selectAllLabel,
63
- selectAllLabel = _ref$selectAllLabel === void 0 ? 'Column name' : _ref$selectAllLabel;
63
+ selectAllLabel = _ref$selectAllLabel === void 0 ? 'Column name' : _ref$selectAllLabel,
64
+ isTableSortable = _ref.isTableSortable;
64
65
 
65
66
  var _useState = (0, _react.useState)(''),
66
67
  _useState2 = (0, _slicedToArray2.default)(_useState, 2),
@@ -183,7 +184,8 @@ var CustomizeColumnsTearsheet = function CustomizeColumnsTearsheet(_ref) {
183
184
  setColumnObjects(cols);
184
185
  setDirty();
185
186
  },
186
- selectAllLabel: selectAllLabel
187
+ selectAllLabel: selectAllLabel,
188
+ isTableSortable: isTableSortable
187
189
  }));
188
190
  };
189
191
 
@@ -195,6 +197,7 @@ CustomizeColumnsTearsheet.propTypes = {
195
197
  findColumnPlaceholderLabel: _propTypes.default.string,
196
198
  instructionsLabel: _propTypes.default.string,
197
199
  isOpen: _propTypes.default.bool.isRequired,
200
+ isTableSortable: _propTypes.default.bool.isRequired,
198
201
  onSaveColumnPrefs: _propTypes.default.func.isRequired,
199
202
  originalColumnDefinitions: _propTypes.default.array.isRequired,
200
203
  primaryButtonTextLabel: _propTypes.default.string,
@@ -0,0 +1,132 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.DraggableItemsList = void 0;
9
+
10
+ var _react = _interopRequireDefault(require("react"));
11
+
12
+ var _propTypes = require("prop-types");
13
+
14
+ var _react2 = require("@carbon/react");
15
+
16
+ var _common = require("./common");
17
+
18
+ var _DraggableElement = _interopRequireDefault(require("../../DraggableElement"));
19
+
20
+ var _settings = require("../../../../../settings");
21
+
22
+ /**
23
+ * Copyright IBM Corp. 2023, 2023
24
+ *
25
+ * This source code is licensed under the Apache-2.0 license found in the
26
+ * LICENSE file in the root directory of this source tree.
27
+ */
28
+ var blockClass = "".concat(_settings.pkg.prefix, "--datagrid");
29
+
30
+ var DraggableItemsList = function DraggableItemsList(_ref) {
31
+ var columns = _ref.columns,
32
+ filterString = _ref.filterString,
33
+ focusIndex = _ref.focusIndex,
34
+ getNextIndex = _ref.getNextIndex,
35
+ isTableSortable = _ref.isTableSortable,
36
+ moveElement = _ref.moveElement,
37
+ onSelectColumn = _ref.onSelectColumn,
38
+ setAriaRegionText = _ref.setAriaRegionText,
39
+ setColumnsObject = _ref.setColumnsObject,
40
+ setFocusIndex = _ref.setFocusIndex;
41
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, columns // hide the columns without Header, e.g the sticky actions, spacer
42
+ .filter(function (colDef) {
43
+ var _colDef$Header$props$, _colDef$Header$props;
44
+
45
+ var sortableTitle = isTableSortable && ((_colDef$Header$props$ = colDef.Header().props.children.props) === null || _colDef$Header$props$ === void 0 ? void 0 : _colDef$Header$props$.title);
46
+ return !!colDef.Header.props && !!((_colDef$Header$props = colDef.Header.props) !== null && _colDef$Header$props !== void 0 && _colDef$Header$props.title) || isTableSortable && !!sortableTitle;
47
+ }).filter(function (colDef) {
48
+ return !colDef.isAction;
49
+ }).filter(function (colDef) {
50
+ var _colDef$Header$props$2, _colDef$Header$props2, _colDef$Header$props3;
51
+
52
+ var sortableTitle = isTableSortable && ((_colDef$Header$props$2 = colDef.Header().props.children.props) === null || _colDef$Header$props$2 === void 0 ? void 0 : _colDef$Header$props$2.title);
53
+ return filterString.length === 0 || (isTableSortable ? sortableTitle === null || sortableTitle === void 0 ? void 0 : sortableTitle.toLowerCase().includes(filterString) : (_colDef$Header$props2 = colDef.Header.props) === null || _colDef$Header$props2 === void 0 ? void 0 : (_colDef$Header$props3 = _colDef$Header$props2.title) === null || _colDef$Header$props3 === void 0 ? void 0 : _colDef$Header$props3.toLowerCase().includes(filterString)) && colDef.id !== 'spacer';
54
+ }).map(function (colDef, i) {
55
+ var _colDef$Header$props$3, _colDef$Header$props4, _colDef$Header$props5, _colDef$Header$props6, _colDef$Header$props7;
56
+
57
+ var isSortableColumn = !!colDef.canSort && !!isTableSortable;
58
+ var sortableTitle = isTableSortable && ((_colDef$Header$props$3 = colDef.Header().props.children.props) === null || _colDef$Header$props$3 === void 0 ? void 0 : _colDef$Header$props$3.title);
59
+ var searchString = new RegExp('(' + filterString + ')');
60
+ var res = filterString.length ? isSortableColumn ? sortableTitle.toLowerCase().split(searchString) : colDef.Header.props.title.toLowerCase().split(searchString) : null;
61
+ var firstWord = res !== null ? res[0] === '' ? res[1].charAt(0).toUpperCase() + res[1].substring(1) : res[0].charAt(0).toUpperCase() + res[0].substring(1) : null;
62
+ var highlightedText = res !== null ? res[0] === '' ? "<strong>".concat(firstWord, "</strong>") + res[2] : firstWord + "<strong>".concat(res[1], "</strong>") + res[2] : isSortableColumn ? sortableTitle : (_colDef$Header$props4 = colDef.Header.props) === null || _colDef$Header$props4 === void 0 ? void 0 : _colDef$Header$props4.title;
63
+ var isFrozenColumn = !!colDef.sticky;
64
+
65
+ var listContents = /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_react2.Checkbox, {
66
+ wrapperClassName: "".concat(blockClass, "__customize-columns-checkbox-wrapper"),
67
+ checked: (0, _common.isColumnVisible)(colDef),
68
+ disabled: isFrozenColumn,
69
+ onChange: function onChange(_, _ref2) {
70
+ var checked = _ref2.checked;
71
+ return onSelectColumn(colDef, checked);
72
+ },
73
+ id: "".concat(blockClass, "__customization-column-").concat(colDef.id),
74
+ labelText: isSortableColumn ? sortableTitle : (_colDef$Header$props5 = colDef.Header.props) === null || _colDef$Header$props5 === void 0 ? void 0 : _colDef$Header$props5.title,
75
+ title: isSortableColumn ? sortableTitle : (_colDef$Header$props6 = colDef.Header.props) === null || _colDef$Header$props6 === void 0 ? void 0 : _colDef$Header$props6.title,
76
+ className: "".concat(blockClass, "__customize-columns-checkbox"),
77
+ hideLabel: true
78
+ }), /*#__PURE__*/_react.default.createElement("div", {
79
+ dangerouslySetInnerHTML: {
80
+ __html: highlightedText
81
+ },
82
+ className: "".concat(blockClass, "__customize-columns-checkbox-visible-label")
83
+ }));
84
+
85
+ return /*#__PURE__*/_react.default.createElement(_DraggableElement.default, {
86
+ key: colDef.id,
87
+ index: i,
88
+ listData: columns,
89
+ setListData: setColumnsObject,
90
+ id: "dnd-datagrid-columns-".concat(colDef.id),
91
+ type: "column-customization",
92
+ disabled: filterString.length > 0 || isFrozenColumn,
93
+ ariaLabel: isSortableColumn ? sortableTitle : (_colDef$Header$props7 = colDef.Header.props) === null || _colDef$Header$props7 === void 0 ? void 0 : _colDef$Header$props7.title,
94
+ onGrab: setAriaRegionText,
95
+ isFocused: focusIndex === i,
96
+ moveElement: moveElement,
97
+ onArrowKeyDown: function onArrowKeyDown(e, isGrabbed, currentIndex) {
98
+ if (isGrabbed) {
99
+ var _columns$nextIndex;
100
+
101
+ var nextIndex = getNextIndex(columns, currentIndex, e.key);
102
+ e.preventDefault();
103
+ e.stopPropagation();
104
+
105
+ if (nextIndex >= 0 && !((_columns$nextIndex = columns[nextIndex]) !== null && _columns$nextIndex !== void 0 && _columns$nextIndex.sticky)) {
106
+ setFocusIndex(nextIndex);
107
+ moveElement(currentIndex, nextIndex);
108
+ e.target.scrollIntoView({
109
+ block: 'center'
110
+ });
111
+ }
112
+ }
113
+ },
114
+ isSticky: isFrozenColumn,
115
+ selected: (0, _common.isColumnVisible)(colDef)
116
+ }, listContents);
117
+ }));
118
+ };
119
+
120
+ exports.DraggableItemsList = DraggableItemsList;
121
+ DraggableItemsList.propTypes = {
122
+ columns: _propTypes.PropTypes.array.isRequired,
123
+ filterString: _propTypes.PropTypes.string.isRequired,
124
+ focusIndex: _propTypes.PropTypes.number.isRequired,
125
+ getNextIndex: _propTypes.PropTypes.func.isRequired,
126
+ isTableSortable: _propTypes.PropTypes.bool,
127
+ moveElement: _propTypes.PropTypes.func.isRequired,
128
+ onSelectColumn: _propTypes.PropTypes.func.isRequired,
129
+ setAriaRegionText: _propTypes.PropTypes.func.isRequired,
130
+ setColumnsObject: _propTypes.PropTypes.func.isRequired,
131
+ setFocusIndex: _propTypes.PropTypes.func.isRequired
132
+ };
@@ -35,6 +35,7 @@ var TearsheetWrapper = function TearsheetWrapper(_ref) {
35
35
  rest = (0, _objectWithoutProperties2.default)(_instance$customizeCo, _excluded);
36
36
  return /*#__PURE__*/React.createElement(_CustomizeColumnsTearsheet.default, (0, _extends2.default)({}, rest, labels, {
37
37
  isOpen: isTearsheetOpen,
38
+ isTableSortable: instance === null || instance === void 0 ? void 0 : instance.isTableSortable,
38
39
  setIsTearsheetOpen: setIsTearsheetOpen,
39
40
  columnDefinitions: instance.allColumns,
40
41
  originalColumnDefinitions: instance.columns,
@@ -147,6 +147,17 @@ var useFilters = function useFilters(_ref) {
147
147
 
148
148
  filtersObjectArrayCopy.splice(_index2, 1);
149
149
  }
150
+ } else if (type === _constants.NUMBER) {
151
+ // If the value is empty remove it from the filtersObjectArray
152
+ if (value === '') {
153
+ // Find the column that uses number and displays an empty string
154
+ var _index3 = filtersObjectArrayCopy.findIndex(function (filter) {
155
+ return filter.id === column;
156
+ }); // Remove it from the filters array
157
+
158
+
159
+ filtersObjectArrayCopy.splice(_index3, 1);
160
+ }
150
161
  }
151
162
 
152
163
  setFiltersObjectArray(filtersObjectArrayCopy); // // Automatically apply the filters if the updateMethod is instant
@@ -11,8 +11,6 @@ exports.default = void 0;
11
11
 
12
12
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
13
13
 
14
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
15
-
16
14
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
17
15
 
18
16
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
@@ -31,7 +29,7 @@ var _RowSizeRadioGroup = _interopRequireDefault(require("./RowSizeRadioGroup"));
31
29
 
32
30
  var _settings = require("../../../../../settings");
33
31
 
34
- var _excluded = ["legendText"];
32
+ var _excluded = ["align", "legendText"];
35
33
 
36
34
  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); }
37
35
 
@@ -40,7 +38,9 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
40
38
  var blockClass = "".concat(_settings.pkg.prefix, "--datagrid");
41
39
 
42
40
  var RowSizeDropdown = function RowSizeDropdown(_ref) {
43
- var _ref$legendText = _ref.legendText,
41
+ var _ref$align = _ref.align,
42
+ align = _ref$align === void 0 ? 'bottom' : _ref$align,
43
+ _ref$legendText = _ref.legendText,
44
44
  legendText = _ref$legendText === void 0 ? 'Row height' : _ref$legendText,
45
45
  props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
46
46
 
@@ -49,31 +49,38 @@ var RowSizeDropdown = function RowSizeDropdown(_ref) {
49
49
  isOpen = _React$useState2[0],
50
50
  setIsOpen = _React$useState2[1];
51
51
 
52
- return /*#__PURE__*/React.createElement(_react2.Popover, {
53
- align: "bottom-right",
54
- caret: false,
55
- dropShadow: false,
56
- open: isOpen,
57
- className: "".concat(blockClass, "__row-height-settings-popover")
58
- }, /*#__PURE__*/React.createElement(_react2.IconButton, {
52
+ return /*#__PURE__*/React.createElement(React.Fragment, null, !isOpen && /*#__PURE__*/React.createElement(_react2.IconButton, {
59
53
  kind: "ghost",
60
- align: "left",
54
+ align: align,
61
55
  onClick: function onClick() {
62
- return setIsOpen(!isOpen);
56
+ return setIsOpen(function (prevOpen) {
57
+ return !prevOpen;
58
+ });
63
59
  },
64
60
  label: legendText,
65
- className: (0, _classnames.default)("".concat(blockClass, "__row-size-button"), (0, _defineProperty2.default)({}, "".concat(blockClass, "__row-size-button--open"), isOpen))
61
+ className: (0, _classnames.default)("".concat(blockClass, "__row-size-button"))
62
+ }, /*#__PURE__*/React.createElement(_icons.Settings, {
63
+ size: 16
64
+ })), isOpen && /*#__PURE__*/React.createElement(_react2.Toggletip, {
65
+ defaultOpen: true,
66
+ className: "".concat(blockClass, "__row-size-toggle-tip")
67
+ }, /*#__PURE__*/React.createElement(_react2.ToggletipButton, {
68
+ className: (0, _classnames.default)("".concat(blockClass, "__row-size-toggle-tip-button"), "".concat(blockClass, "__row-size-button--open")),
69
+ label: legendText
66
70
  }, /*#__PURE__*/React.createElement(_icons.Settings, {
67
71
  size: 16
68
- })), /*#__PURE__*/React.createElement(_react2.PopoverContent, null, /*#__PURE__*/React.createElement(_RowSizeRadioGroup.default, (0, _extends2.default)({}, props, {
72
+ })), /*#__PURE__*/React.createElement(_react2.ToggletipContent, {
73
+ className: "".concat(blockClass, "__row-size-toggle-tip-content")
74
+ }, /*#__PURE__*/React.createElement(_RowSizeRadioGroup.default, (0, _extends2.default)({}, props, {
69
75
  legendText: legendText,
70
76
  hideRadioGroup: function hideRadioGroup() {
71
77
  setIsOpen(false);
72
78
  }
73
- }))));
79
+ })))));
74
80
  };
75
81
 
76
82
  RowSizeDropdown.propTypes = {
83
+ align: _react2.IconButton.propTypes.align,
77
84
  datagridName: _propTypes.default.string,
78
85
  legendText: _propTypes.default.string,
79
86
  light: _propTypes.default.bool,
@@ -83,6 +83,7 @@ var RowSizeRadioGroup = function RowSizeRadioGroup(_ref) {
83
83
  }
84
84
 
85
85
  return /*#__PURE__*/_react.default.createElement(_react2.RadioButton, {
86
+ className: "".concat(blockClass, "__row-size-radio-button"),
86
87
  key: option.value,
87
88
  labelText: labelText,
88
89
  value: option.value,
@@ -11,6 +11,12 @@ Object.defineProperty(exports, "Datagrid", {
11
11
  return _Datagrid.Datagrid;
12
12
  }
13
13
  });
14
+ Object.defineProperty(exports, "getAutoSizedColumnWidth", {
15
+ enumerable: true,
16
+ get: function get() {
17
+ return _getAutoSizedColumnWidth.getAutoSizedColumnWidth;
18
+ }
19
+ });
14
20
  Object.defineProperty(exports, "useActionsColumn", {
15
21
  enumerable: true,
16
22
  get: function get() {
@@ -156,4 +162,6 @@ var _useColumnOrder = _interopRequireDefault(require("./useColumnOrder"));
156
162
 
157
163
  var _useInlineEdit = _interopRequireDefault(require("./useInlineEdit"));
158
164
 
159
- var _useFiltering = _interopRequireDefault(require("./useFiltering"));
165
+ var _useFiltering = _interopRequireDefault(require("./useFiltering"));
166
+
167
+ var _getAutoSizedColumnWidth = require("./utils/getAutoSizedColumnWidth");
@@ -15,6 +15,8 @@ var _useParentDimensions = _interopRequireDefault(require("./useParentDimensions
15
15
 
16
16
  var _useResizeTable = _interopRequireDefault(require("./useResizeTable"));
17
17
 
18
+ var _settings = require("../../settings");
19
+
18
20
  /*
19
21
  * Licensed Materials - Property of IBM
20
22
  * 5724-Q36
@@ -25,6 +27,9 @@ var _useResizeTable = _interopRequireDefault(require("./useResizeTable"));
25
27
  var useInfiniteScroll = function useInfiniteScroll(hooks) {
26
28
  (0, _useParentDimensions.default)(hooks);
27
29
  (0, _useResizeTable.default)(hooks);
30
+ (0, _react.useEffect)(function () {
31
+ _settings.pkg.checkReportFeatureEnabled('Datagrid.useInfiniteScroll');
32
+ }, []);
28
33
 
29
34
  var useInstance = function useInstance(instance) {
30
35
  var isFetching = instance.isFetching,