@carbon/ibm-products 2.6.0 → 2.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (56) hide show
  1. package/css/index-full-carbon.css +6291 -5856
  2. package/css/index-full-carbon.css.map +1 -1
  3. package/css/index-full-carbon.min.css +3 -3
  4. package/css/index-full-carbon.min.css.map +1 -1
  5. package/css/index-without-carbon-released-only.css +21 -21
  6. package/css/index-without-carbon-released-only.css.map +1 -1
  7. package/css/index-without-carbon-released-only.min.css +2 -2
  8. package/css/index-without-carbon-released-only.min.css.map +1 -1
  9. package/css/index-without-carbon.css +1259 -193
  10. package/css/index-without-carbon.css.map +1 -1
  11. package/css/index-without-carbon.min.css +3 -3
  12. package/css/index-without-carbon.min.css.map +1 -1
  13. package/css/index.css +3674 -3623
  14. package/css/index.css.map +1 -1
  15. package/css/index.min.css +3 -3
  16. package/css/index.min.css.map +1 -1
  17. package/es/components/CreateTearsheet/CreateTearsheet.js +30 -14
  18. package/es/components/CreateTearsheet/CreateTearsheetStep.js +10 -4
  19. package/es/components/CreateTearsheet/preview-components/MultiStepTearsheet.js +3 -0
  20. package/es/components/Datagrid/Datagrid/Datagrid.js +12 -7
  21. package/es/components/Datagrid/Datagrid/DatagridContent.js +18 -14
  22. package/es/components/Datagrid/Datagrid/DatagridHeaderRow.js +12 -1
  23. package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/Columns.js +1 -4
  24. package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/CustomizeColumnsTearsheet.js +2 -5
  25. package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/DraggableItemsList.js +11 -17
  26. package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/TearsheetWrapper.js +0 -1
  27. package/es/components/Datagrid/useDefaultStringRenderer.js +2 -1
  28. package/es/components/Datagrid/useSortableColumns.js +13 -5
  29. package/es/components/Datagrid/utils/getColTitle.js +25 -0
  30. package/es/components/NotificationsPanel/NotificationsPanel.js +5 -5
  31. package/es/components/OptionsTile/OptionsTile.js +2 -4
  32. package/es/global/js/hooks/useCreateComponentStepChange.js +98 -49
  33. package/es/global/js/hooks/useResizeObserver.js +15 -1
  34. package/es/global/js/hooks/useRetrieveStepData.js +1 -1
  35. package/es/global/js/utils/StoryDocsPage.js +0 -1
  36. package/lib/components/CreateTearsheet/CreateTearsheet.js +30 -14
  37. package/lib/components/CreateTearsheet/CreateTearsheetStep.js +10 -4
  38. package/lib/components/CreateTearsheet/preview-components/MultiStepTearsheet.js +3 -0
  39. package/lib/components/Datagrid/Datagrid/Datagrid.js +12 -7
  40. package/lib/components/Datagrid/Datagrid/DatagridContent.js +17 -13
  41. package/lib/components/Datagrid/Datagrid/DatagridHeaderRow.js +12 -1
  42. package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/Columns.js +1 -4
  43. package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/CustomizeColumnsTearsheet.js +2 -5
  44. package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/DraggableItemsList.js +11 -17
  45. package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/TearsheetWrapper.js +0 -1
  46. package/lib/components/Datagrid/useDefaultStringRenderer.js +2 -1
  47. package/lib/components/Datagrid/useSortableColumns.js +13 -5
  48. package/lib/components/Datagrid/utils/getColTitle.js +32 -0
  49. package/lib/components/NotificationsPanel/NotificationsPanel.js +5 -5
  50. package/lib/components/OptionsTile/OptionsTile.js +2 -4
  51. package/lib/global/js/hooks/useCreateComponentStepChange.js +98 -49
  52. package/lib/global/js/hooks/useResizeObserver.js +15 -1
  53. package/lib/global/js/hooks/useRetrieveStepData.js +1 -1
  54. package/lib/global/js/utils/StoryDocsPage.js +0 -1
  55. package/package.json +9 -9
  56. package/scss/components/Datagrid/styles/_useColumnCenterAlign.scss +9 -9
@@ -1,6 +1,6 @@
1
1
  import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
2
2
  /**
3
- * Copyright IBM Corp. 2022, 2022
3
+ * Copyright IBM Corp. 2022, 2023
4
4
  *
5
5
  * This source code is licensed under the Apache-2.0 license found in the
6
6
  * LICENSE file in the root directory of this source tree.
@@ -83,7 +83,6 @@ export var StoryDocsPage = function StoryDocsPage(_ref2) {
83
83
  var isFullScreen = (csfFile === null || csfFile === void 0 || (_csfFile$meta = csfFile.meta) === null || _csfFile$meta === void 0 || (_csfFile$meta = _csfFile$meta.parameters) === null || _csfFile$meta === void 0 ? void 0 : _csfFile$meta.layout) === 'fullscreen' || false;
84
84
  var storyHelperClass = isFullScreen ? 'c4p--story-docs-page--fullscreen' : '';
85
85
  var processedBlocks = processBlocks(blocks, csfFile.stories, omitUnreferencedStories);
86
- console.log(processBlocks);
87
86
  var storyCount = (_processedBlocks$filt = processedBlocks === null || processedBlocks === void 0 ? void 0 : processedBlocks.filter(function (block) {
88
87
  return !!block.story;
89
88
  }).length) !== null && _processedBlocks$filt !== void 0 ? _processedBlocks$filt : 0;
@@ -89,26 +89,34 @@ var CreateTearsheet = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
89
89
  _useState10 = (0, _slicedToArray2.default)(_useState9, 2),
90
90
  isDisabled = _useState10[0],
91
91
  setIsDisabled = _useState10[1];
92
- var _useState11 = (0, _react.useState)(),
92
+ var _useState11 = (0, _react.useState)(false),
93
93
  _useState12 = (0, _slicedToArray2.default)(_useState11, 2),
94
- onNext = _useState12[0],
95
- _setOnNext = _useState12[1];
94
+ loadingPrevious = _useState12[0],
95
+ setLoadingPrevious = _useState12[1];
96
96
  var _useState13 = (0, _react.useState)(),
97
97
  _useState14 = (0, _slicedToArray2.default)(_useState13, 2),
98
- onMount = _useState14[0],
99
- _setOnMount = _useState14[1];
100
- var _useState15 = (0, _react.useState)([]),
98
+ onPrevious = _useState14[0],
99
+ _setOnPrevious = _useState14[1];
100
+ var _useState15 = (0, _react.useState)(),
101
101
  _useState16 = (0, _slicedToArray2.default)(_useState15, 2),
102
- stepData = _useState16[0],
103
- setStepData = _useState16[1];
104
- var _useState17 = (0, _react.useState)(1),
102
+ onNext = _useState16[0],
103
+ _setOnNext = _useState16[1];
104
+ var _useState17 = (0, _react.useState)(),
105
105
  _useState18 = (0, _slicedToArray2.default)(_useState17, 2),
106
- firstIncludedStep = _useState18[0],
107
- setFirstIncludedStep = _useState18[1];
108
- var _useState19 = (0, _react.useState)(null),
106
+ onMount = _useState18[0],
107
+ _setOnMount = _useState18[1];
108
+ var _useState19 = (0, _react.useState)([]),
109
109
  _useState20 = (0, _slicedToArray2.default)(_useState19, 2),
110
- lastIncludedStep = _useState20[0],
111
- setLastIncludedStep = _useState20[1];
110
+ stepData = _useState20[0],
111
+ setStepData = _useState20[1];
112
+ var _useState21 = (0, _react.useState)(1),
113
+ _useState22 = (0, _slicedToArray2.default)(_useState21, 2),
114
+ firstIncludedStep = _useState22[0],
115
+ setFirstIncludedStep = _useState22[1];
116
+ var _useState23 = (0, _react.useState)(null),
117
+ _useState24 = (0, _slicedToArray2.default)(_useState23, 2),
118
+ lastIncludedStep = _useState24[0],
119
+ setLastIncludedStep = _useState24[1];
112
120
  var previousState = (0, _hooks.usePreviousValue)({
113
121
  currentStep: currentStep,
114
122
  open: open
@@ -152,11 +160,14 @@ var CreateTearsheet = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
152
160
  firstIncludedStep: firstIncludedStep,
153
161
  lastIncludedStep: lastIncludedStep,
154
162
  stepData: stepData,
163
+ onPrevious: onPrevious,
155
164
  onNext: onNext,
156
165
  isSubmitDisabled: isDisabled,
157
166
  setCurrentStep: setCurrentStep,
158
167
  setIsSubmitting: setIsSubmitting,
159
168
  setShouldViewAll: setShouldViewAll,
169
+ setLoadingPrevious: setLoadingPrevious,
170
+ loadingPrevious: loadingPrevious,
160
171
  onClose: onClose,
161
172
  onRequestSubmit: onRequestSubmit,
162
173
  componentName: componentName,
@@ -213,6 +224,11 @@ var CreateTearsheet = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
213
224
  value: {
214
225
  currentStep: currentStep,
215
226
  setIsDisabled: setIsDisabled,
227
+ setOnPrevious: function setOnPrevious(fn) {
228
+ return _setOnPrevious(function () {
229
+ return fn;
230
+ });
231
+ },
216
232
  setOnNext: function setOnNext(fn) {
217
233
  return _setOnNext(function () {
218
234
  return fn;
@@ -18,7 +18,7 @@ var _CreateTearsheet = require("./CreateTearsheet");
18
18
  var _settings = require("../../settings");
19
19
  var _pconsole = _interopRequireDefault(require("../../global/js/utils/pconsole"));
20
20
  var _hooks = require("../../global/js/hooks");
21
- var _excluded = ["children", "className", "description", "disableSubmit", "fieldsetLegendText", "hasFieldset", "includeStep", "introStep", "onNext", "onMount", "secondaryLabel", "subtitle", "title"];
21
+ var _excluded = ["children", "className", "description", "disableSubmit", "fieldsetLegendText", "hasFieldset", "includeStep", "introStep", "onMount", "onNext", "onPrevious", "secondaryLabel", "subtitle", "title"];
22
22
  /**
23
23
  * Copyright IBM Corp. 2021, 2023
24
24
  *
@@ -47,8 +47,9 @@ var CreateTearsheetStep = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, re
47
47
  _ref$includeStep = _ref.includeStep,
48
48
  includeStep = _ref$includeStep === void 0 ? defaults.includeStep : _ref$includeStep,
49
49
  introStep = _ref.introStep,
50
- onNext = _ref.onNext,
51
50
  onMount = _ref.onMount,
51
+ onNext = _ref.onNext,
52
+ onPrevious = _ref.onPrevious,
52
53
  secondaryLabel = _ref.secondaryLabel,
53
54
  subtitle = _ref.subtitle,
54
55
  title = _ref.title,
@@ -90,8 +91,9 @@ var CreateTearsheetStep = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, re
90
91
  if (stepNumber === (stepsContext === null || stepsContext === void 0 ? void 0 : stepsContext.currentStep)) {
91
92
  stepsContext.setIsDisabled(disableSubmit);
92
93
  stepsContext === null || stepsContext === void 0 ? void 0 : stepsContext.setOnNext(onNext); // needs to be updated here otherwise there could be stale state values from only initially setting onNext
94
+ stepsContext === null || stepsContext === void 0 ? void 0 : stepsContext.setOnPrevious(onPrevious);
93
95
  }
94
- }, [stepsContext, stepNumber, disableSubmit, onNext]);
96
+ }, [stepsContext, stepNumber, disableSubmit, onNext, onPrevious]);
95
97
  var renderDescription = function renderDescription() {
96
98
  if (description) {
97
99
  if (typeof description === 'string') {
@@ -177,11 +179,15 @@ CreateTearsheetStep.propTypes = {
177
179
  */
178
180
  onMount: _propTypes.default.func,
179
181
  /**
180
- * Optional function to be called on a step change.
182
+ * Optional function to be called when you move to the next step.
181
183
  * For example, this can be used to validate input fields before proceeding to the next step.
182
184
  * This function can _optionally_ return a promise that is either resolved or rejected and the CreateTearsheet will handle the submitting state of the next button.
183
185
  */
184
186
  onNext: _propTypes.default.func,
187
+ /**
188
+ * Optional function to be called when you move to the previous step.
189
+ */
190
+ onPrevious: _propTypes.default.func,
185
191
  /**
186
192
  * Sets the optional secondary label on the progress step component
187
193
  */
@@ -223,6 +223,9 @@ var MultiStepTearsheet = function MultiStepTearsheet(_ref2) {
223
223
  },
224
224
  checked: shouldIncludeAdditionalStep
225
225
  })))), /*#__PURE__*/_react.default.createElement(_CreateTearsheetStep.CreateTearsheetStep, {
226
+ onPrevious: function onPrevious() {
227
+ console.log('custom onPrevious handler');
228
+ },
226
229
  title: "Dynamic step",
227
230
  subtitle: "Dynamic step subtitle",
228
231
  description: "This is an example showing how to include a dynamic step into the CreateTearsheet",
@@ -16,7 +16,7 @@ var _pconsole = _interopRequireDefault(require("../../../global/js/utils/pconsol
16
16
  var _InlineEditContext = require("./addons/InlineEdit/InlineEditContext");
17
17
  var _DatagridContent = require("./DatagridContent");
18
18
  var _FilterProvider = require("./addons/Filtering/FilterProvider");
19
- var _excluded = ["datagridState"];
19
+ var _excluded = ["datagridState", "title"];
20
20
  /**
21
21
  * Copyright IBM Corp. 2020, 2023
22
22
  *
@@ -31,6 +31,7 @@ var componentName = 'Datagrid';
31
31
  */
32
32
  var Datagrid = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref) {
33
33
  var datagridState = _ref.datagridState,
34
+ title = _ref.title,
34
35
  rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
35
36
  if (!datagridState) {
36
37
  _pconsole.default.warn('Datagrid was not passed datagridState which is required to render this component.');
@@ -44,6 +45,10 @@ var Datagrid = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref) {
44
45
  className = datagridState.className,
45
46
  filters = datagridState.state.filters;
46
47
  var rows = DatagridPagination && datagridState.page || datagridState.rows;
48
+ var props = {
49
+ title: title,
50
+ datagridState: datagridState
51
+ };
47
52
  return /*#__PURE__*/_react.default.createElement(_FilterProvider.FilterProvider, {
48
53
  filters: filters
49
54
  }, /*#__PURE__*/_react.default.createElement(_InlineEditContext.InlineEditProvider, null, /*#__PURE__*/_react.default.createElement("div", (0, _extends2.default)({}, rest, {
@@ -52,11 +57,7 @@ var Datagrid = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref) {
52
57
  className: (0, _classnames.default)(className, blockClass, withVirtualScroll ? "".concat(blockClass, "__datagridWrap") : "".concat(blockClass, "__datagridWrap-simple"), !isFetching && rows.length === 0 ? "".concat(blockClass, "__empty-state") : '')
53
58
  }, (0, _devtools.getDevtoolsProps)(componentName)), (filterProps === null || filterProps === void 0 ? void 0 : filterProps.variation) === 'panel' ? /*#__PURE__*/_react.default.createElement("div", {
54
59
  className: "".concat(blockClass, "__datagridWithPanel ").concat(blockClass, "__displayFlex")
55
- }, /*#__PURE__*/_react.default.createElement(_DatagridContent.DatagridContent, {
56
- datagridState: datagridState
57
- })) : /*#__PURE__*/_react.default.createElement(_DatagridContent.DatagridContent, {
58
- datagridState: datagridState
59
- }))));
60
+ }, /*#__PURE__*/_react.default.createElement(_DatagridContent.DatagridContent, props)) : /*#__PURE__*/_react.default.createElement(_DatagridContent.DatagridContent, props))));
60
61
  });
61
62
 
62
63
  // Return a placeholder if not released and not enabled by feature flag
@@ -70,5 +71,9 @@ Datagrid.propTypes = {
70
71
  /**
71
72
  * The data grid state, much of it being supplied by the useDatagrid hook
72
73
  */
73
- datagridState: _propTypes.default.object.isRequired
74
+ datagridState: _propTypes.default.object.isRequired,
75
+ /**
76
+ * Table title
77
+ */
78
+ title: _propTypes.default.string
74
79
  };
@@ -8,23 +8,23 @@ Object.defineProperty(exports, "__esModule", {
8
8
  exports.DatagridContent = void 0;
9
9
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
10
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
+ var _Filtering = require("./addons/Filtering");
11
12
  var _react = _interopRequireWildcard(require("react"));
12
- var _classnames = _interopRequireDefault(require("classnames"));
13
- var _propTypes = _interopRequireDefault(require("prop-types"));
14
13
  var _react2 = require("@carbon/react");
15
- var _layout = require("@carbon/layout");
16
- var _DatagridHead = _interopRequireDefault(require("./DatagridHead"));
14
+ var _settings = require("../../../settings");
15
+ var _constants = require("./addons/Filtering/constants");
17
16
  var _DatagridBody = _interopRequireDefault(require("./DatagridBody"));
17
+ var _DatagridHead = _interopRequireDefault(require("./DatagridHead"));
18
18
  var _DatagridToolbar = _interopRequireDefault(require("./DatagridToolbar"));
19
- var _handleGridKeyPress = require("./addons/InlineEdit/handleGridKeyPress");
20
- var _settings = require("../../../settings");
19
+ var _FilterSummary = require("../../FilterSummary");
21
20
  var _InlineEditContext = require("./addons/InlineEdit/InlineEditContext");
22
- var _Filtering = require("./addons/Filtering");
21
+ var _propTypes = _interopRequireDefault(require("prop-types"));
22
+ var _classnames = _interopRequireDefault(require("classnames"));
23
23
  var _handleGridFocus = require("./addons/InlineEdit/handleGridFocus");
24
+ var _handleGridKeyPress = require("./addons/InlineEdit/handleGridKeyPress");
25
+ var _layout = require("@carbon/layout");
24
26
  var _hooks = require("../../../global/js/hooks");
25
27
  var _hooks2 = require("../../DataSpreadsheet/hooks");
26
- var _FilterSummary = require("../../FilterSummary");
27
- var _constants = require("./addons/Filtering/constants");
28
28
  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
29
  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; }
30
30
  /**
@@ -37,7 +37,8 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
37
37
  var blockClass = "".concat(_settings.pkg.prefix, "--datagrid");
38
38
  var DatagridContent = function DatagridContent(_ref) {
39
39
  var _cx4;
40
- var datagridState = _ref.datagridState;
40
+ var datagridState = _ref.datagridState,
41
+ title = _ref.title;
41
42
  var _useContext = (0, _react.useContext)(_InlineEditContext.InlineEditContext),
42
43
  inlineEditState = _useContext.state,
43
44
  dispatch = _useContext.dispatch;
@@ -105,7 +106,8 @@ var DatagridContent = function DatagridContent(_ref) {
105
106
  } : null,
106
107
  onFocus: withInlineEdit ? function () {
107
108
  return (0, _handleGridFocus.handleGridFocus)(inlineEditState, dispatch);
108
- } : null
109
+ } : null,
110
+ title: title
109
111
  }), !withVirtualScroll ? /*#__PURE__*/_react.default.createElement(_DatagridHead.default, datagridState) : null, /*#__PURE__*/_react.default.createElement(_DatagridBody.default, (0, _extends2.default)({}, datagridState, {
110
112
  rows: rows
111
113
  })));
@@ -136,7 +138,8 @@ var DatagridContent = function DatagridContent(_ref) {
136
138
  filters: filterTags,
137
139
  clearFilters: function clearFilters() {
138
140
  return EventEmitter.dispatch(_constants.CLEAR_FILTERS);
139
- }
141
+ },
142
+ renderLabel: filterProps.renderLabel
140
143
  });
141
144
  };
142
145
  return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_react2.TableContainer, {
@@ -188,5 +191,6 @@ DatagridContent.propTypes = {
188
191
  setAllFilters: _propTypes.default.func,
189
192
  getFilterProps: _propTypes.default.func,
190
193
  state: _propTypes.default.object
191
- })
194
+ }),
195
+ title: _propTypes.default.string
192
196
  };
@@ -12,6 +12,7 @@ var _classnames = _interopRequireDefault(require("classnames"));
12
12
  var _react2 = require("@carbon/react");
13
13
  var _commonColumnIds = require("../common-column-ids");
14
14
  var _settings = require("../../../settings");
15
+ var _getColTitle = _interopRequireDefault(require("../utils/getColTitle"));
15
16
  /**
16
17
  * Copyright IBM Corp. 2020, 2022
17
18
  *
@@ -22,6 +23,16 @@ var _settings = require("../../../settings");
22
23
  // @flow
23
24
 
24
25
  var blockClass = "".concat(_settings.pkg.prefix, "--datagrid");
26
+ var getAccessibilityProps = function getAccessibilityProps(header) {
27
+ var props = {};
28
+ var title = (0, _getColTitle.default)(header);
29
+ if (title) {
30
+ props.title = title;
31
+ } else {
32
+ props['aria-hidden'] = true;
33
+ }
34
+ return props;
35
+ };
25
36
  var HeaderRow = function HeaderRow(datagridState, headRef, headerGroup) {
26
37
  return /*#__PURE__*/_react.default.createElement(_react2.TableRow, (0, _extends2.default)({}, headerGroup.getHeaderGroupProps({
27
38
  role: false
@@ -44,7 +55,7 @@ var HeaderRow = function HeaderRow(datagridState, headRef, headerGroup) {
44
55
  }), {
45
56
  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), (0, _defineProperty2.default)(_cx, "".concat(blockClass, "__isSorted"), header.isSorted), _cx), header.getHeaderProps().className),
46
57
  key: header.id
47
- }), header.render('Header'), header.getResizerProps && /*#__PURE__*/_react.default.createElement("div", (0, _extends2.default)({}, header.getResizerProps(), {
58
+ }, getAccessibilityProps(header)), header.render('Header'), header.getResizerProps && /*#__PURE__*/_react.default.createElement("div", (0, _extends2.default)({}, header.getResizerProps(), {
48
59
  className: "".concat(blockClass, "__resizer")
49
60
  })));
50
61
  }));
@@ -42,8 +42,7 @@ var Columns = function Columns(_ref) {
42
42
  onSelectColumn = _ref.onSelectColumn,
43
43
  assistiveTextInstructionsLabel = _ref.assistiveTextInstructionsLabel,
44
44
  assistiveTextDisabledInstructionsLabel = _ref.assistiveTextDisabledInstructionsLabel,
45
- selectAllLabel = _ref.selectAllLabel,
46
- isTableSortable = _ref.isTableSortable;
45
+ selectAllLabel = _ref.selectAllLabel;
47
46
  var _React$useState = _react.default.useState(''),
48
47
  _React$useState2 = (0, _slicedToArray2.default)(_React$useState, 2),
49
48
  ariaRegionText = _React$useState2[0],
@@ -99,7 +98,6 @@ var Columns = function Columns(_ref) {
99
98
  filterString: filterString,
100
99
  focusIndex: focusIndex,
101
100
  getNextIndex: getNextIndex,
102
- isTableSortable: isTableSortable,
103
101
  moveElement: moveElement,
104
102
  onSelectColumn: onSelectColumn,
105
103
  setAriaRegionText: setAriaRegionText,
@@ -115,7 +113,6 @@ Columns.propTypes = {
115
113
  filterString: _propTypes.default.string.isRequired,
116
114
  getVisibleColumnsCount: _propTypes.default.func.isRequired,
117
115
  instructionsLabel: _propTypes.default.string,
118
- isTableSortable: _propTypes.default.bool.isRequired,
119
116
  onSelectColumn: _propTypes.default.func.isRequired,
120
117
  selectAllLabel: _propTypes.default.string,
121
118
  setColumnStatus: _propTypes.default.func,
@@ -48,8 +48,7 @@ var CustomizeColumnsTearsheet = function CustomizeColumnsTearsheet(_ref) {
48
48
  _ref$assistiveTextDis = _ref.assistiveTextDisabledInstructionsLabel,
49
49
  assistiveTextDisabledInstructionsLabel = _ref$assistiveTextDis === void 0 ? 'Reordering columns are disabled because they are filtered currently.' : _ref$assistiveTextDis,
50
50
  _ref$selectAllLabel = _ref.selectAllLabel,
51
- selectAllLabel = _ref$selectAllLabel === void 0 ? 'Column name' : _ref$selectAllLabel,
52
- isTableSortable = _ref.isTableSortable;
51
+ selectAllLabel = _ref$selectAllLabel === void 0 ? 'Column name' : _ref$selectAllLabel;
53
52
  var _useState = (0, _react.useState)(''),
54
53
  _useState2 = (0, _slicedToArray2.default)(_useState, 2),
55
54
  visibleColumnsCount = _useState2[0],
@@ -159,8 +158,7 @@ var CustomizeColumnsTearsheet = function CustomizeColumnsTearsheet(_ref) {
159
158
  setColumnObjects(cols);
160
159
  setDirty();
161
160
  },
162
- selectAllLabel: selectAllLabel,
163
- isTableSortable: isTableSortable
161
+ selectAllLabel: selectAllLabel
164
162
  }));
165
163
  };
166
164
  CustomizeColumnsTearsheet.propTypes = {
@@ -171,7 +169,6 @@ CustomizeColumnsTearsheet.propTypes = {
171
169
  findColumnPlaceholderLabel: _propTypes.default.string,
172
170
  instructionsLabel: _propTypes.default.string,
173
171
  isOpen: _propTypes.default.bool.isRequired,
174
- isTableSortable: _propTypes.default.bool.isRequired,
175
172
  onSaveColumnPrefs: _propTypes.default.func.isRequired,
176
173
  originalColumnDefinitions: _propTypes.default.array.isRequired,
177
174
  primaryButtonTextLabel: _propTypes.default.string,
@@ -11,6 +11,7 @@ var _react2 = require("@carbon/react");
11
11
  var _common = require("./common");
12
12
  var _DraggableElement = _interopRequireDefault(require("../../DraggableElement"));
13
13
  var _settings = require("../../../../../settings");
14
+ var _getColTitle2 = _interopRequireDefault(require("../../../utils/getColTitle"));
14
15
  /**
15
16
  * Copyright IBM Corp. 2023, 2023
16
17
  *
@@ -24,7 +25,6 @@ var DraggableItemsList = function DraggableItemsList(_ref) {
24
25
  filterString = _ref.filterString,
25
26
  focusIndex = _ref.focusIndex,
26
27
  getNextIndex = _ref.getNextIndex,
27
- isTableSortable = _ref.isTableSortable,
28
28
  moveElement = _ref.moveElement,
29
29
  onSelectColumn = _ref.onSelectColumn,
30
30
  setAriaRegionText = _ref.setAriaRegionText,
@@ -33,23 +33,18 @@ var DraggableItemsList = function DraggableItemsList(_ref) {
33
33
  return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, columns
34
34
  // hide the columns without Header, e.g the sticky actions, spacer
35
35
  .filter(function (colDef) {
36
- var _colDef$Header$props$, _colDef$Header$props;
37
- var sortableTitle = isTableSortable && ((_colDef$Header$props$ = colDef.Header().props.children.props) === null || _colDef$Header$props$ === void 0 ? void 0 : _colDef$Header$props$.title);
38
- return !!colDef.Header.props && !!((_colDef$Header$props = colDef.Header.props) !== null && _colDef$Header$props !== void 0 && _colDef$Header$props.title) || isTableSortable && !!sortableTitle;
39
- }).filter(function (colDef) {
36
+ return !!(0, _getColTitle2.default)(colDef);
37
+ }).filter(Boolean).filter(function (colDef) {
40
38
  return !colDef.isAction;
41
39
  }).filter(function (colDef) {
42
- var _colDef$Header$props$2, _colDef$Header$props2;
43
- 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);
44
- 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 || (_colDef$Header$props2 = _colDef$Header$props2.title) === null || _colDef$Header$props2 === void 0 ? void 0 : _colDef$Header$props2.toLowerCase().includes(filterString)) && colDef.id !== 'spacer';
40
+ var _getColTitle;
41
+ return filterString.length === 0 || ((_getColTitle = (0, _getColTitle2.default)(colDef)) === null || _getColTitle === void 0 ? void 0 : _getColTitle.toLowerCase().includes(filterString)) && colDef.id !== 'spacer';
45
42
  }).map(function (colDef, i) {
46
- var _colDef$Header$props$3, _colDef$Header$props3, _colDef$Header$props4, _colDef$Header$props5, _colDef$Header$props6;
47
- var isSortableColumn = !!colDef.canSort && !!isTableSortable;
48
- 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);
43
+ var colHeaderTitle = (0, _getColTitle2.default)(colDef);
49
44
  var searchString = new RegExp('(' + filterString + ')');
50
- var res = filterString.length ? isSortableColumn ? sortableTitle.toLowerCase().split(searchString) : colDef.Header.props.title.toLowerCase().split(searchString) : null;
45
+ var res = filterString.length ? colHeaderTitle.toLowerCase().split(searchString) : null;
51
46
  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;
52
- var highlightedText = res !== null ? res[0] === '' ? "<strong>".concat(firstWord, "</strong>") + res[2] : firstWord + "<strong>".concat(res[1], "</strong>") + res[2] : isSortableColumn ? sortableTitle : (_colDef$Header$props3 = colDef.Header.props) === null || _colDef$Header$props3 === void 0 ? void 0 : _colDef$Header$props3.title;
47
+ var highlightedText = res !== null ? res[0] === '' ? "<strong>".concat(firstWord, "</strong>") + res[2] : firstWord + "<strong>".concat(res[1], "</strong>") + res[2] : colHeaderTitle;
53
48
  var isFrozenColumn = !!colDef.sticky;
54
49
  var listContents = /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_react2.Checkbox, {
55
50
  wrapperClassName: "".concat(blockClass, "__customize-columns-checkbox-wrapper"),
@@ -60,8 +55,8 @@ var DraggableItemsList = function DraggableItemsList(_ref) {
60
55
  return onSelectColumn(colDef, checked);
61
56
  },
62
57
  id: "".concat(blockClass, "__customization-column-").concat(colDef.id),
63
- labelText: isSortableColumn ? sortableTitle : (_colDef$Header$props4 = colDef.Header.props) === null || _colDef$Header$props4 === void 0 ? void 0 : _colDef$Header$props4.title,
64
- title: isSortableColumn ? sortableTitle : (_colDef$Header$props5 = colDef.Header.props) === null || _colDef$Header$props5 === void 0 ? void 0 : _colDef$Header$props5.title,
58
+ labelText: colHeaderTitle,
59
+ title: colHeaderTitle,
65
60
  className: "".concat(blockClass, "__customize-columns-checkbox"),
66
61
  hideLabel: true
67
62
  }), /*#__PURE__*/_react.default.createElement("div", {
@@ -78,7 +73,7 @@ var DraggableItemsList = function DraggableItemsList(_ref) {
78
73
  id: "dnd-datagrid-columns-".concat(colDef.id),
79
74
  type: "column-customization",
80
75
  disabled: filterString.length > 0 || isFrozenColumn,
81
- ariaLabel: isSortableColumn ? sortableTitle : (_colDef$Header$props6 = colDef.Header.props) === null || _colDef$Header$props6 === void 0 ? void 0 : _colDef$Header$props6.title,
76
+ ariaLabel: colHeaderTitle,
82
77
  onGrab: setAriaRegionText,
83
78
  isFocused: focusIndex === i,
84
79
  moveElement: moveElement,
@@ -108,7 +103,6 @@ DraggableItemsList.propTypes = {
108
103
  filterString: _propTypes.PropTypes.string.isRequired,
109
104
  focusIndex: _propTypes.PropTypes.number.isRequired,
110
105
  getNextIndex: _propTypes.PropTypes.func.isRequired,
111
- isTableSortable: _propTypes.PropTypes.bool,
112
106
  moveElement: _propTypes.PropTypes.func.isRequired,
113
107
  onSelectColumn: _propTypes.PropTypes.func.isRequired,
114
108
  setAriaRegionText: _propTypes.PropTypes.func.isRequired,
@@ -29,7 +29,6 @@ var TearsheetWrapper = function TearsheetWrapper(_ref) {
29
29
  rest = (0, _objectWithoutProperties2.default)(_instance$customizeCo, _excluded);
30
30
  return /*#__PURE__*/React.createElement(_CustomizeColumnsTearsheet.default, (0, _extends2.default)({}, rest, labels, {
31
31
  isOpen: isTearsheetOpen,
32
- isTableSortable: (instance === null || instance === void 0 ? void 0 : instance.isTableSortable) || false,
33
32
  setIsTearsheetOpen: setIsTearsheetOpen,
34
33
  columnDefinitions: instance.allColumns,
35
34
  originalColumnDefinitions: instance.columns,
@@ -30,7 +30,8 @@ var useDefaultStringRenderer = function useDefaultStringRenderer(hooks) {
30
30
  var HeaderRenderer = function HeaderRenderer(header) {
31
31
  return /*#__PURE__*/_react.default.createElement("div", {
32
32
  className: "".concat(blockClass, "__defaultStringRenderer"),
33
- title: typeof header === 'string' ? header : ''
33
+ title: typeof header === 'string' ? header : '',
34
+ key: typeof header === 'string' ? header : ''
34
35
  }, header);
35
36
  };
36
37
  var visibleColumns = function visibleColumns(columns) {
@@ -30,8 +30,12 @@ var getAriaSortValue = function getAriaSortValue(col, _ref) {
30
30
  var ascendingSortableLabelText = _ref.ascendingSortableLabelText,
31
31
  descendingSortableLabelText = _ref.descendingSortableLabelText,
32
32
  defaultSortableLabelText = _ref.defaultSortableLabelText;
33
- var isSorted = col.isSorted,
34
- isSortedDesc = col.isSortedDesc;
33
+ if (!col) {
34
+ return;
35
+ }
36
+ var _ref2 = col || {},
37
+ isSorted = _ref2.isSorted,
38
+ isSortedDesc = _ref2.isSortedDesc;
35
39
  if (!isSorted) {
36
40
  return defaultSortableLabelText || 'none';
37
41
  }
@@ -43,16 +47,20 @@ var getAriaSortValue = function getAriaSortValue(col, _ref) {
43
47
  }
44
48
  };
45
49
  var getAriaPressedValue = function getAriaPressedValue(col) {
46
- var isSorted = col.isSorted;
50
+ if (!col) {
51
+ return;
52
+ }
53
+ var _ref3 = col || {},
54
+ isSorted = _ref3.isSorted;
47
55
  if (isSorted) {
48
56
  return 'true';
49
57
  }
50
58
  return 'false';
51
59
  };
52
60
  var useSortableColumns = function useSortableColumns(hooks) {
53
- var sortableVisibleColumns = function sortableVisibleColumns(visibleColumns, _ref2) {
61
+ var sortableVisibleColumns = function sortableVisibleColumns(visibleColumns, _ref4) {
54
62
  var _instance$customizeCo;
55
- var instance = _ref2.instance;
63
+ var instance = _ref4.instance;
56
64
  var onSort = instance.onSort,
57
65
  ascendingSortableLabelText = instance.ascendingSortableLabelText,
58
66
  descendingSortableLabelText = instance.descendingSortableLabelText,
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ // This function recursively looks for the nested header element until we can find the key which contains the title.
8
+ // This can happen if multiple hooks are used together that manipulate the rendering of the column
9
+ // header, such as `useColumnCenterAlign` and `useSortableColumns`.
10
+ var getNestedTitle = function getNestedTitle(component) {
11
+ if (component && !component.key) {
12
+ return getNestedTitle(component.children);
13
+ }
14
+ if (component && component.key && typeof component.key === 'string') {
15
+ return component.key;
16
+ }
17
+ };
18
+ var getColTitle = function getColTitle(col) {
19
+ var _col$Header;
20
+ if (!col) {
21
+ return;
22
+ }
23
+ var checkTitle = function checkTitle() {
24
+ if (col.Header().props.children.props && col.Header().props.children.props.title) {
25
+ return col.Header().props.children.props.title;
26
+ }
27
+ return getNestedTitle(col.Header().props.children.props);
28
+ };
29
+ return typeof (col === null || col === void 0 ? void 0 : col.Header) === 'function' ? checkTitle() : col === null || col === void 0 || (_col$Header = col.Header) === null || _col$Header === void 0 || (_col$Header = _col$Header.props) === null || _col$Header === void 0 ? void 0 : _col$Header.title;
30
+ };
31
+ var _default = getColTitle;
32
+ exports.default = _default;
@@ -336,7 +336,7 @@ var NotificationsPanel = /*#__PURE__*/_react.default.forwardRef(function (_ref,
336
336
  className: "".concat(blockClass, "__header-container")
337
337
  }, /*#__PURE__*/_react.default.createElement("div", {
338
338
  className: "".concat(blockClass, "__header-flex")
339
- }, /*#__PURE__*/_react.default.createElement("h1", {
339
+ }, /*#__PURE__*/_react.default.createElement("h2", {
340
340
  className: "".concat(blockClass, "__header")
341
341
  }, title), /*#__PURE__*/_react.default.createElement(_react2.Button, {
342
342
  size: "sm",
@@ -345,7 +345,7 @@ var NotificationsPanel = /*#__PURE__*/_react.default.forwardRef(function (_ref,
345
345
  onClick: function onClick() {
346
346
  return onDismissAllNotifications();
347
347
  }
348
- }, dismissAllLabel)), /*#__PURE__*/_react.default.createElement(_react2.Toggle, {
348
+ }, dismissAllLabel)), onDoNotDisturbChange && /*#__PURE__*/_react.default.createElement(_react2.Toggle, {
349
349
  size: "sm",
350
350
  className: "".concat(blockClass, "__do-not-disturb-toggle"),
351
351
  id: "".concat(blockClass, "__do-not-disturb-toggle-component"),
@@ -447,11 +447,11 @@ NotificationsPanel.propTypes = {
447
447
  */
448
448
  dismissSingleNotificationIconDescription: _propTypes.default.string,
449
449
  /**
450
- * Determines if the `Do not disturb` toggle is on or off when the component is rendered
450
+ * Optional: Determines if the `Do not disturb` toggle is on or off when the component is rendered
451
451
  */
452
452
  doNotDisturbDefaultToggled: _propTypes.default.bool,
453
453
  /**
454
- * Label for Do not disturb toggle
454
+ * Optional: Label for Do not disturb toggle
455
455
  */
456
456
  doNotDisturbLabel: _propTypes.default.string,
457
457
  /**
@@ -499,7 +499,7 @@ NotificationsPanel.propTypes = {
499
499
  */
500
500
  onDismissSingleNotification: _propTypes.default.func,
501
501
  /**
502
- * Function that returns the current selected value of the disable notification toggle
502
+ * Optional: function that returns the current selected value of the disable notification toggle
503
503
  */
504
504
  onDoNotDisturbChange: _propTypes.default.func,
505
505
  /**
@@ -223,13 +223,11 @@ var OptionsTile = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref) {
223
223
  id: "".concat(id, "-toggle"),
224
224
  className: "".concat(blockClass, "__toggle"),
225
225
  toggled: enabled,
226
- labelA: "",
227
- labelB: "",
228
226
  "aria-labelledby": titleId,
227
+ hideLabel: true,
229
228
  onToggle: onToggle,
230
229
  size: "sm",
231
- disabled: isLocked,
232
- labelText: title
230
+ disabled: isLocked
233
231
  })), isExpandable ? /*#__PURE__*/_react.default.createElement("details", {
234
232
  open: isOpen,
235
233
  ref: detailsRef