@carbon/ibm-products 2.0.0-rc.24 → 2.0.0-rc.26

Sign up to get free protection for your applications and to get access to all the features.
Files changed (93) hide show
  1. package/README.md +10 -4
  2. package/css/index-full-carbon.css +87 -123
  3. package/css/index-full-carbon.css.map +1 -1
  4. package/css/index-full-carbon.min.css +4 -4
  5. package/css/index-full-carbon.min.css.map +1 -1
  6. package/css/index-without-carbon-released-only.css +18 -109
  7. package/css/index-without-carbon-released-only.css.map +1 -1
  8. package/css/index-without-carbon-released-only.min.css +3 -3
  9. package/css/index-without-carbon-released-only.min.css.map +1 -1
  10. package/css/index-without-carbon.css +87 -123
  11. package/css/index-without-carbon.css.map +1 -1
  12. package/css/index-without-carbon.min.css +4 -4
  13. package/css/index-without-carbon.min.css.map +1 -1
  14. package/css/index.css +87 -123
  15. package/css/index.css.map +1 -1
  16. package/css/index.min.css +4 -4
  17. package/css/index.min.css.map +1 -1
  18. package/es/components/AddSelect/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/CreateFullPage/CreateFullPageStep.js +16 -9
  24. package/es/components/CreateTearsheet/CreateTearsheetStep.js +8 -8
  25. package/es/components/CreateTearsheet/preview-components/MultiStepTearsheet.js +11 -17
  26. package/es/components/CreateTearsheet/preview-components/MultiStepWithIntro.js +9 -13
  27. package/es/components/Datagrid/Datagrid/DatagridContent.js +1 -1
  28. package/es/components/Datagrid/Datagrid/DatagridToolbar.js +1 -1
  29. package/es/components/Datagrid/Datagrid/DatagridVirtualBody.js +15 -4
  30. package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/Columns.js +15 -60
  31. package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/CustomizeColumnsTearsheet.js +6 -8
  32. package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/DraggableItemsList.js +112 -0
  33. package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/TearsheetWrapper.js +1 -0
  34. package/es/components/Datagrid/Datagrid/addons/RowSize/RowSizeDropdown.js +29 -23
  35. package/es/components/Datagrid/Datagrid/addons/RowSize/RowSizeRadioGroup.js +1 -0
  36. package/es/components/Datagrid/index.js +7 -7
  37. package/es/components/Datagrid/useInfiniteScroll.js +5 -1
  38. package/es/components/Datagrid/useOnRowClick.js +3 -3
  39. package/es/components/Datagrid/useSortableColumns.js +19 -9
  40. package/es/components/Datagrid/utils/getAutoSizedColumnWidth.js +29 -0
  41. package/es/components/ExampleComponent/ExampleComponent.js +39 -5
  42. package/es/components/ExampleComponent/useExample.js +51 -0
  43. package/es/components/InlineEditV1/InlineEditV1.js +15 -20
  44. package/es/components/InlineEditV2/InlineEditV2.js +21 -31
  45. package/es/components/SidePanel/SidePanel.js +3 -5
  46. package/es/components/index.js +1 -1
  47. package/es/global/js/package-settings.js +24 -3
  48. package/es/global/js/utils/story-helper.js +9 -0
  49. package/es/global/js/utils/test-helper.js +38 -6
  50. package/lib/components/AddSelect/AddSelectBody.js +1 -0
  51. package/lib/components/AddSelect/AddSelectFormControl.js +110 -0
  52. package/lib/components/AddSelect/AddSelectList.js +29 -203
  53. package/lib/components/AddSelect/AddSelectRow.js +247 -0
  54. package/lib/components/AddSelect/hooks/useFocus.js +46 -0
  55. package/lib/components/CreateFullPage/CreateFullPageStep.js +14 -7
  56. package/lib/components/CreateTearsheet/CreateTearsheetStep.js +7 -7
  57. package/lib/components/CreateTearsheet/preview-components/MultiStepTearsheet.js +10 -16
  58. package/lib/components/CreateTearsheet/preview-components/MultiStepWithIntro.js +9 -13
  59. package/lib/components/Datagrid/Datagrid/DatagridContent.js +1 -1
  60. package/lib/components/Datagrid/Datagrid/DatagridToolbar.js +1 -1
  61. package/lib/components/Datagrid/Datagrid/DatagridVirtualBody.js +15 -3
  62. package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/Columns.js +16 -64
  63. package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/CustomizeColumnsTearsheet.js +6 -8
  64. package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/DraggableItemsList.js +132 -0
  65. package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/TearsheetWrapper.js +1 -0
  66. package/lib/components/Datagrid/Datagrid/addons/RowSize/RowSizeDropdown.js +23 -16
  67. package/lib/components/Datagrid/Datagrid/addons/RowSize/RowSizeRadioGroup.js +1 -0
  68. package/lib/components/Datagrid/index.js +9 -1
  69. package/lib/components/Datagrid/useInfiniteScroll.js +5 -0
  70. package/lib/components/Datagrid/useOnRowClick.js +3 -3
  71. package/lib/components/Datagrid/useSortableColumns.js +19 -9
  72. package/lib/components/Datagrid/utils/getAutoSizedColumnWidth.js +40 -0
  73. package/lib/components/ExampleComponent/ExampleComponent.js +47 -4
  74. package/lib/components/ExampleComponent/useExample.js +63 -0
  75. package/lib/components/InlineEditV1/InlineEditV1.js +14 -19
  76. package/lib/components/InlineEditV2/InlineEditV2.js +20 -30
  77. package/lib/components/SidePanel/SidePanel.js +2 -4
  78. package/lib/components/index.js +6 -0
  79. package/lib/global/js/package-settings.js +24 -3
  80. package/lib/global/js/utils/story-helper.js +13 -2
  81. package/lib/global/js/utils/test-helper.js +42 -8
  82. package/package.json +2 -2
  83. package/scss/components/AddSelect/_add-select.scss +4 -16
  84. package/scss/components/CreateFullPage/_create-full-page.scss +5 -10
  85. package/scss/components/CreateTearsheet/_create-tearsheet.scss +8 -3
  86. package/scss/components/Datagrid/styles/_datagrid.scss +4 -0
  87. package/scss/components/Datagrid/styles/_useSortableColumns.scss +6 -3
  88. package/scss/components/Datagrid/styles/addons/_CustomizeColumnsTearsheet.scss +15 -2
  89. package/scss/components/Datagrid/styles/addons/_RowSizeDropdown.scss +18 -6
  90. package/scss/components/EmptyStates/_empty-state.scss +2 -2
  91. package/scss/components/InlineEditV1/_inline-edit-v1.scss +5 -89
  92. package/scss/components/InlineEditV2/_inline-edit-v2.scss +42 -3
  93. package/scss/components/SidePanel/_side-panel.scss +7 -15
@@ -41,13 +41,11 @@ var CustomStep = function CustomStep(_ref) {
41
41
  rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
42
42
  return /*#__PURE__*/_react.default.createElement(_CreateTearsheetStep.CreateTearsheetStep, (0, _extends2.default)({}, rest, {
43
43
  disableSubmit: !value1
44
- }), /*#__PURE__*/_react.default.createElement(_react2.Grid, {
45
- narrow: true
46
- }, /*#__PURE__*/_react.default.createElement(_react2.Column, {
44
+ }), /*#__PURE__*/_react.default.createElement(_react2.Grid, null, /*#__PURE__*/_react.default.createElement(_react2.Column, {
47
45
  xlg: 8,
48
46
  lg: 8,
49
47
  md: 8,
50
- sm: 8
48
+ sm: 4
51
49
  }, /*#__PURE__*/_react.default.createElement(_react2.TextInput, {
52
50
  value: value1,
53
51
  onChange: function onChange(event) {
@@ -189,13 +187,11 @@ var MultiStepTearsheet = function MultiStepTearsheet(_ref2) {
189
187
  disableSubmit: !stepOneTextInputValue,
190
188
  subtitle: "This is the unique name used to recognize your topic",
191
189
  description: "It will also be used by your producers and consumers as part of the connection information, so make it something easy to recognize."
192
- }, /*#__PURE__*/_react.default.createElement(_react2.Grid, {
193
- narrow: true
194
- }, /*#__PURE__*/_react.default.createElement(_react2.Column, {
190
+ }, /*#__PURE__*/_react.default.createElement(_react2.Grid, null, /*#__PURE__*/_react.default.createElement(_react2.Column, {
195
191
  xlg: 8,
196
192
  lg: 8,
197
193
  md: 8,
198
- sm: 8
194
+ sm: 4
199
195
  }, /*#__PURE__*/_react.default.createElement(_react2.TextInput, {
200
196
  labelText: "Topic name",
201
197
  placeholder: "Enter topic name",
@@ -268,11 +264,11 @@ var MultiStepTearsheet = function MultiStepTearsheet(_ref2) {
268
264
  subtitle: "One or more partitions make up a topic. A partition is an ordered list of messages.",
269
265
  description: "Partitions are distributed across the brokers in order to increase the scalability of your topic. You can also use them to distribute messages across the members of a consumer group.",
270
266
  fieldsetLegendText: "Partition information"
271
- }, /*#__PURE__*/_react.default.createElement(_react2.Grid, {
272
- narrow: true
273
- }, /*#__PURE__*/_react.default.createElement(_react2.Column, {
267
+ }, /*#__PURE__*/_react.default.createElement(_react2.Grid, null, /*#__PURE__*/_react.default.createElement(_react2.Column, {
274
268
  xlg: 3,
275
- lg: 3
269
+ lg: 3,
270
+ md: 8,
271
+ sm: 4
276
272
  }, /*#__PURE__*/_react.default.createElement(_react2.NumberInput, {
277
273
  iconDescription: "Choose a number",
278
274
  id: "carbon-number",
@@ -294,13 +290,11 @@ var MultiStepTearsheet = function MultiStepTearsheet(_ref2) {
294
290
  subtitle: "This is how long messages are retained before they are deleted.",
295
291
  description: "If your messages are not read by a consumer within this time, they will be missed.",
296
292
  fieldsetLegendText: "Message retention scheduling"
297
- }, /*#__PURE__*/_react.default.createElement(_react2.Grid, {
298
- narrow: true
299
- }, /*#__PURE__*/_react.default.createElement(_react2.Column, {
293
+ }, /*#__PURE__*/_react.default.createElement(_react2.Grid, null, /*#__PURE__*/_react.default.createElement(_react2.Column, {
300
294
  xlg: 8,
301
295
  lg: 8,
302
296
  md: 8,
303
- sm: 8
297
+ sm: 4
304
298
  }, /*#__PURE__*/_react.default.createElement(_react2.RadioButtonGroup, {
305
299
  legendText: "Message retention",
306
300
  name: "radio-button-group",
@@ -32,7 +32,7 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
32
32
  /* eslint-disable react/prop-types */
33
33
 
34
34
  /**
35
- * Copyright IBM Corp. 2021, 2022
35
+ * Copyright IBM Corp. 2021, 2023
36
36
  *
37
37
  * This source code is licensed under the Apache-2.0 license found in the
38
38
  * LICENSE file in the root directory of this source tree.
@@ -207,13 +207,11 @@ var MultiStepWithIntro = function MultiStepWithIntro(_ref) {
207
207
  disableSubmit: !stepOneTextInputValue,
208
208
  subtitle: "This is the unique name used to recognize your topic",
209
209
  description: "It will also be used by your producers and consumers as part of the connection information, so make it something easy to recognize."
210
- }, /*#__PURE__*/_react.default.createElement(_react2.Grid, {
211
- narrow: true
212
- }, /*#__PURE__*/_react.default.createElement(_react2.Column, {
210
+ }, /*#__PURE__*/_react.default.createElement(_react2.Grid, null, /*#__PURE__*/_react.default.createElement(_react2.Column, {
213
211
  xlg: 8,
214
212
  lg: 8,
215
213
  md: 8,
216
- sm: 8
214
+ sm: 4
217
215
  }, /*#__PURE__*/_react.default.createElement(_react2.TextInput, {
218
216
  labelText: "Topic name",
219
217
  id: "tearsheet-multi-step-story-text-input-multi-step-1",
@@ -266,11 +264,11 @@ var MultiStepWithIntro = function MultiStepWithIntro(_ref) {
266
264
  subtitle: "One or more partitions make up a topic. A partition is an ordered list of messages.",
267
265
  description: "Partitions are distributed across the brokers in order to increase the scalability of your topic. You can also use them to distribute messages across the members of a consumer group.",
268
266
  fieldsetLegendText: "Partition information"
269
- }, /*#__PURE__*/_react.default.createElement(_react2.Grid, {
270
- narrow: true
271
- }, /*#__PURE__*/_react.default.createElement(_react2.Column, {
267
+ }, /*#__PURE__*/_react.default.createElement(_react2.Grid, null, /*#__PURE__*/_react.default.createElement(_react2.Column, {
272
268
  xlg: 3,
273
- lg: 3
269
+ lg: 3,
270
+ md: 8,
271
+ sm: 4
274
272
  }, /*#__PURE__*/_react.default.createElement(_react2.NumberInput, {
275
273
  iconDescription: "Choose a number",
276
274
  id: "carbon-number",
@@ -292,13 +290,11 @@ var MultiStepWithIntro = function MultiStepWithIntro(_ref) {
292
290
  subtitle: "This is how long messages are retained before they are deleted.",
293
291
  description: "If your messages are not read by a consumer within this time, they will be missed.",
294
292
  fieldsetLegendText: "Message retention scheduling"
295
- }, /*#__PURE__*/_react.default.createElement(_react2.Grid, {
296
- narrow: true
297
- }, /*#__PURE__*/_react.default.createElement(_react2.Column, {
293
+ }, /*#__PURE__*/_react.default.createElement(_react2.Grid, null, /*#__PURE__*/_react.default.createElement(_react2.Column, {
298
294
  xlg: 8,
299
295
  lg: 8,
300
296
  md: 8,
301
- sm: 8
297
+ sm: 4
302
298
  }, /*#__PURE__*/_react.default.createElement(_react2.RadioButtonGroup, {
303
299
  legendText: "Message retention",
304
300
  name: "radio-button-group",
@@ -129,9 +129,9 @@ var DatagridContent = function DatagridContent(_ref) {
129
129
  return (0, _handleGridKeyPress.handleGridKeyPress)({
130
130
  event: event,
131
131
  dispatch: dispatch,
132
- inlineEditState: inlineEditState,
133
132
  instance: datagridState,
134
133
  keysPressedList: keysPressedList,
134
+ state: inlineEditState,
135
135
  usingMac: usingMac
136
136
  });
137
137
  } : null,
@@ -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,
@@ -25,6 +25,8 @@ var _DatagridHead = _interopRequireDefault(require("./DatagridHead"));
25
25
 
26
26
  var _layout = require("@carbon/layout");
27
27
 
28
+ var _reactResizeDetector = require("react-resize-detector");
29
+
28
30
  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); }
29
31
 
30
32
  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; }
@@ -66,10 +68,20 @@ var DatagridVirtualBody = function DatagridVirtualBody(datagridState) {
66
68
  handleResize = datagridState.handleResize,
67
69
  gridRef = datagridState.gridRef;
68
70
 
71
+ var handleVirtualGridResize = function handleVirtualGridResize() {
72
+ var gridRefElement = gridRef === null || gridRef === void 0 ? void 0 : gridRef.current;
73
+ gridRefElement.style.width = gridRefElement === null || gridRefElement === void 0 ? void 0 : gridRefElement.clientWidth;
74
+ };
75
+
76
+ (0, _reactResizeDetector.useResizeDetector)({
77
+ onResize: handleVirtualGridResize,
78
+ targetRef: gridRef
79
+ });
80
+
69
81
  var syncScroll = function syncScroll(e) {
70
82
  var virtualBody = e.target;
71
- document.querySelector(".".concat(blockClass, "__head-warp")).scrollLeft = virtualBody.scrollLeft;
72
- var spacerColumn = document.querySelector(".".concat(blockClass, "__head-warp thead th:last-child"));
83
+ document.querySelector(".".concat(blockClass, "__head-wrap")).scrollLeft = virtualBody.scrollLeft;
84
+ var spacerColumn = document.querySelector(".".concat(blockClass, "__head-wrap thead th:last-child"));
73
85
  spacerColumn.style.width = (0, _layout.px)(32 + (virtualBody.offsetWidth - virtualBody.clientWidth)); // scrollbar width to header column to fix header alignment
74
86
  };
75
87
 
@@ -84,7 +96,7 @@ var DatagridVirtualBody = function DatagridVirtualBody(datagridState) {
84
96
 
85
97
  var visibleRows = DatagridPagination && page || rows;
86
98
  return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
87
- className: "".concat(blockClass, "__head-warp"),
99
+ className: "".concat(blockClass, "__head-wrap"),
88
100
  style: {
89
101
  width: (_gridRef$current = gridRef.current) === null || _gridRef$current === void 0 ? void 0 : _gridRef$current.clientWidth,
90
102
  overflow: 'hidden'
@@ -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,65 +116,17 @@ var Columns = function Columns(_ref) {
117
116
  },
118
117
  id: "".concat(blockClass, "__customization-column-select-all"),
119
118
  labelText: selectAllLabel
120
- })), columns.filter(function (colDef) {
121
- return filterString.length === 0 || colDef.Header.props.title.toLowerCase().includes(filterString);
122
- }).map(function (colDef, i) {
123
- var searchString = new RegExp('(' + filterString + ')');
124
- var res = filterString.length ? colDef.Header.props.title.toLowerCase().split(searchString) : null;
125
- 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;
126
- var highlightedText = res !== null ? res[0] === '' ? "<strong>".concat(firstWord, "</strong>") + res[2] : firstWord + "<strong>".concat(res[1], "</strong>") + res[2] : colDef.Header.props.title;
127
- var isFrozenColumn = !!colDef.sticky;
128
-
129
- var listContents = /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_react2.Checkbox, {
130
- className: (0, _classnames.default)("".concat(blockClass, "__customize-columns-checkbox-wrapper"), "".concat(blockClass, "__customize-columns-checkbox")),
131
- checked: (0, _common.isColumnVisible)(colDef),
132
- disabled: isFrozenColumn,
133
- onChange: function onChange(_, _ref2) {
134
- var checked = _ref2.checked;
135
- return onSelectColumn(colDef, checked);
136
- },
137
- id: "".concat(blockClass, "__customization-column-").concat(colDef.id),
138
- labelText: colDef.Header.props.title,
139
- title: colDef.Header.props.title,
140
- hideLabel: true
141
- }), /*#__PURE__*/_react.default.createElement("div", {
142
- dangerouslySetInnerHTML: {
143
- __html: highlightedText
144
- }
145
- }));
146
-
147
- return /*#__PURE__*/_react.default.createElement(_DraggableElement.default, {
148
- key: colDef.id,
149
- index: i,
150
- listData: columns,
151
- setListData: setColumnsObject,
152
- id: "dnd-datagrid-columns-".concat(colDef.id),
153
- type: "column-customization",
154
- disabled: filterString.length > 0 || isFrozenColumn,
155
- ariaLabel: colDef.Header.props.title,
156
- onGrab: setAriaRegionText,
157
- isFocused: focusIndex === i,
158
- isSticky: isFrozenColumn,
159
- moveElement: moveElement,
160
- onArrowKeyDown: function onArrowKeyDown(e, isGrabbed, currentIndex) {
161
- if (isGrabbed) {
162
- var _columns$nextIndex;
163
-
164
- var nextIndex = getNextIndex(columns, currentIndex, e.key);
165
- e.preventDefault();
166
- e.stopPropagation();
167
-
168
- if (nextIndex >= 0 && !((_columns$nextIndex = columns[nextIndex]) !== null && _columns$nextIndex !== void 0 && _columns$nextIndex.sticky)) {
169
- setFocusIndex(nextIndex);
170
- moveElement(currentIndex, nextIndex);
171
- e.target.scrollIntoView({
172
- block: 'center'
173
- });
174
- }
175
- }
176
- },
177
- selected: (0, _common.isColumnVisible)(colDef)
178
- }, 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
179
130
  }))));
180
131
  };
181
132
 
@@ -187,6 +138,7 @@ Columns.propTypes = {
187
138
  filterString: _propTypes.default.string.isRequired,
188
139
  getVisibleColumnsCount: _propTypes.default.func.isRequired,
189
140
  instructionsLabel: _propTypes.default.string,
141
+ isTableSortable: _propTypes.default.bool.isRequired,
190
142
  onSelectColumn: _propTypes.default.func.isRequired,
191
143
  selectAllLabel: _propTypes.default.string,
192
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),
@@ -77,12 +78,7 @@ var CustomizeColumnsTearsheet = function CustomizeColumnsTearsheet(_ref) {
77
78
  searchText = _useState6[0],
78
79
  setSearchText = _useState6[1];
79
80
 
80
- var _useState7 = (0, _react.useState)(columnDefinitions // hide the columns without Header, e.g the sticky actions, spacer
81
- .filter(function (colDef) {
82
- return !!colDef.Header.props && !!colDef.Header.props.title;
83
- }).filter(function (colDef) {
84
- return !colDef.isAction;
85
- }) // only sort the hidden column to the end when modal reopen
81
+ var _useState7 = (0, _react.useState)(columnDefinitions // only sort the hidden column to the end when modal reopen
86
82
  .sort(function (defA, defB) {
87
83
  var isVisibleA = (0, _common.isColumnVisible)(defA);
88
84
  var isVisibleB = (0, _common.isColumnVisible)(defB);
@@ -188,7 +184,8 @@ var CustomizeColumnsTearsheet = function CustomizeColumnsTearsheet(_ref) {
188
184
  setColumnObjects(cols);
189
185
  setDirty();
190
186
  },
191
- selectAllLabel: selectAllLabel
187
+ selectAllLabel: selectAllLabel,
188
+ isTableSortable: isTableSortable
192
189
  }));
193
190
  };
194
191
 
@@ -200,6 +197,7 @@ CustomizeColumnsTearsheet.propTypes = {
200
197
  findColumnPlaceholderLabel: _propTypes.default.string,
201
198
  instructionsLabel: _propTypes.default.string,
202
199
  isOpen: _propTypes.default.bool.isRequired,
200
+ isTableSortable: _propTypes.default.bool.isRequired,
203
201
  onSaveColumnPrefs: _propTypes.default.func.isRequired,
204
202
  originalColumnDefinitions: _propTypes.default.array.isRequired,
205
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,
@@ -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,
@@ -8,7 +8,7 @@ exports.default = void 0;
8
8
  /*
9
9
  * Licensed Materials - Property of IBM
10
10
  * 5724-Q36
11
- * (c) Copyright IBM Corp. 2020
11
+ * (c) Copyright IBM Corp. 2020, 2023
12
12
  * US Government Users Restricted Rights - Use, duplication or disclosure
13
13
  * restricted by GSA ADP Schedule Contract with IBM Corp.
14
14
  */
@@ -23,9 +23,9 @@ var useOnRowClick = function useOnRowClick(hooks) {
23
23
  var id = row.id,
24
24
  toggleRowSelected = row.toggleRowSelected;
25
25
 
26
- var onClick = function onClick() {
26
+ var onClick = function onClick(event) {
27
27
  if (!isFetching && onRowClick) {
28
- onRowClick(row);
28
+ onRowClick(row, event);
29
29
  instance.selectedFlatRows && instance.selectedFlatRows.map(function (toggleRow) {
30
30
  return toggleRow.toggleRowSelected(false);
31
31
  });