@carbon/ibm-products 2.6.0 → 2.7.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (56) hide show
  1. package/css/index-full-carbon.css +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
@@ -7,27 +7,28 @@ import _defineProperty from "@babel/runtime/helpers/defineProperty";
7
7
  * LICENSE file in the root directory of this source tree.
8
8
  */
9
9
 
10
+ import { FilterContext, FilterPanel } from './addons/Filtering';
10
11
  import React, { useContext, useEffect, useRef } from 'react';
11
- import cx from 'classnames';
12
- import PropTypes from 'prop-types';
13
- import { TableContainer, Table } from '@carbon/react';
14
- import { px } from '@carbon/layout';
15
- import DatagridHead from './DatagridHead';
12
+ import { Table, TableContainer } from '@carbon/react';
13
+ import { carbon, pkg } from '../../../settings';
14
+ import { CLEAR_FILTERS } from './addons/Filtering/constants';
16
15
  import DatagridBody from './DatagridBody';
16
+ import DatagridHead from './DatagridHead';
17
17
  import DatagridToolbar from './DatagridToolbar';
18
- import { handleGridKeyPress } from './addons/InlineEdit/handleGridKeyPress';
19
- import { carbon, pkg } from '../../../settings';
18
+ import { FilterSummary } from '../../FilterSummary';
20
19
  import { InlineEditContext } from './addons/InlineEdit/InlineEditContext';
21
- import { FilterContext, FilterPanel } from './addons/Filtering';
20
+ import PropTypes from 'prop-types';
21
+ import cx from 'classnames';
22
22
  import { handleGridFocus } from './addons/InlineEdit/handleGridFocus';
23
+ import { handleGridKeyPress } from './addons/InlineEdit/handleGridKeyPress';
24
+ import { px } from '@carbon/layout';
23
25
  import { useClickOutside } from '../../../global/js/hooks';
24
26
  import { useMultipleKeyTracking } from '../../DataSpreadsheet/hooks';
25
- import { FilterSummary } from '../../FilterSummary';
26
- import { CLEAR_FILTERS } from './addons/Filtering/constants';
27
27
  var blockClass = "".concat(pkg.prefix, "--datagrid");
28
28
  export var DatagridContent = function DatagridContent(_ref) {
29
29
  var _cx4;
30
- var datagridState = _ref.datagridState;
30
+ var datagridState = _ref.datagridState,
31
+ title = _ref.title;
31
32
  var _useContext = useContext(InlineEditContext),
32
33
  inlineEditState = _useContext.state,
33
34
  dispatch = _useContext.dispatch;
@@ -95,7 +96,8 @@ export var DatagridContent = function DatagridContent(_ref) {
95
96
  } : null,
96
97
  onFocus: withInlineEdit ? function () {
97
98
  return handleGridFocus(inlineEditState, dispatch);
98
- } : null
99
+ } : null,
100
+ title: title
99
101
  }), !withVirtualScroll ? /*#__PURE__*/React.createElement(DatagridHead, datagridState) : null, /*#__PURE__*/React.createElement(DatagridBody, _extends({}, datagridState, {
100
102
  rows: rows
101
103
  })));
@@ -126,7 +128,8 @@ export var DatagridContent = function DatagridContent(_ref) {
126
128
  filters: filterTags,
127
129
  clearFilters: function clearFilters() {
128
130
  return EventEmitter.dispatch(CLEAR_FILTERS);
129
- }
131
+ },
132
+ renderLabel: filterProps.renderLabel
130
133
  });
131
134
  };
132
135
  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(TableContainer, {
@@ -177,5 +180,6 @@ DatagridContent.propTypes = {
177
180
  setAllFilters: PropTypes.func,
178
181
  getFilterProps: PropTypes.func,
179
182
  state: PropTypes.object
180
- })
183
+ }),
184
+ title: PropTypes.string
181
185
  };
@@ -13,7 +13,18 @@ import cx from 'classnames';
13
13
  import { TableHeader, TableRow } from '@carbon/react';
14
14
  import { selectionColumnId } from '../common-column-ids';
15
15
  import { pkg } from '../../../settings';
16
+ import getColTitle from '../utils/getColTitle';
16
17
  var blockClass = "".concat(pkg.prefix, "--datagrid");
18
+ var getAccessibilityProps = function getAccessibilityProps(header) {
19
+ var props = {};
20
+ var title = getColTitle(header);
21
+ if (title) {
22
+ props.title = title;
23
+ } else {
24
+ props['aria-hidden'] = true;
25
+ }
26
+ return props;
27
+ };
17
28
  var HeaderRow = function HeaderRow(datagridState, headRef, headerGroup) {
18
29
  return /*#__PURE__*/React.createElement(TableRow, _extends({}, headerGroup.getHeaderGroupProps({
19
30
  role: false
@@ -36,7 +47,7 @@ var HeaderRow = function HeaderRow(datagridState, headRef, headerGroup) {
36
47
  }), {
37
48
  className: cx((_cx = {}, _defineProperty(_cx, "".concat(blockClass, "__resizableColumn"), header.getResizerProps), _defineProperty(_cx, "".concat(blockClass, "__isResizing"), header.isResizing), _defineProperty(_cx, "".concat(blockClass, "__sortableColumn"), datagridState.isTableSortable), _defineProperty(_cx, "".concat(blockClass, "__isSorted"), header.isSorted), _cx), header.getHeaderProps().className),
38
49
  key: header.id
39
- }), header.render('Header'), header.getResizerProps && /*#__PURE__*/React.createElement("div", _extends({}, header.getResizerProps(), {
50
+ }, getAccessibilityProps(header)), header.render('Header'), header.getResizerProps && /*#__PURE__*/React.createElement("div", _extends({}, header.getResizerProps(), {
40
51
  className: "".concat(blockClass, "__resizer")
41
52
  })));
42
53
  }));
@@ -35,8 +35,7 @@ var Columns = function Columns(_ref) {
35
35
  onSelectColumn = _ref.onSelectColumn,
36
36
  assistiveTextInstructionsLabel = _ref.assistiveTextInstructionsLabel,
37
37
  assistiveTextDisabledInstructionsLabel = _ref.assistiveTextDisabledInstructionsLabel,
38
- selectAllLabel = _ref.selectAllLabel,
39
- isTableSortable = _ref.isTableSortable;
38
+ selectAllLabel = _ref.selectAllLabel;
40
39
  var _React$useState = React.useState(''),
41
40
  _React$useState2 = _slicedToArray(_React$useState, 2),
42
41
  ariaRegionText = _React$useState2[0],
@@ -92,7 +91,6 @@ var Columns = function Columns(_ref) {
92
91
  filterString: filterString,
93
92
  focusIndex: focusIndex,
94
93
  getNextIndex: getNextIndex,
95
- isTableSortable: isTableSortable,
96
94
  moveElement: moveElement,
97
95
  onSelectColumn: onSelectColumn,
98
96
  setAriaRegionText: setAriaRegionText,
@@ -108,7 +106,6 @@ Columns.propTypes = {
108
106
  filterString: PropTypes.string.isRequired,
109
107
  getVisibleColumnsCount: PropTypes.func.isRequired,
110
108
  instructionsLabel: PropTypes.string,
111
- isTableSortable: PropTypes.bool.isRequired,
112
109
  onSelectColumn: PropTypes.func.isRequired,
113
110
  selectAllLabel: PropTypes.string,
114
111
  setColumnStatus: PropTypes.func,
@@ -41,8 +41,7 @@ var CustomizeColumnsTearsheet = function CustomizeColumnsTearsheet(_ref) {
41
41
  _ref$assistiveTextDis = _ref.assistiveTextDisabledInstructionsLabel,
42
42
  assistiveTextDisabledInstructionsLabel = _ref$assistiveTextDis === void 0 ? 'Reordering columns are disabled because they are filtered currently.' : _ref$assistiveTextDis,
43
43
  _ref$selectAllLabel = _ref.selectAllLabel,
44
- selectAllLabel = _ref$selectAllLabel === void 0 ? 'Column name' : _ref$selectAllLabel,
45
- isTableSortable = _ref.isTableSortable;
44
+ selectAllLabel = _ref$selectAllLabel === void 0 ? 'Column name' : _ref$selectAllLabel;
46
45
  var _useState = useState(''),
47
46
  _useState2 = _slicedToArray(_useState, 2),
48
47
  visibleColumnsCount = _useState2[0],
@@ -152,8 +151,7 @@ var CustomizeColumnsTearsheet = function CustomizeColumnsTearsheet(_ref) {
152
151
  setColumnObjects(cols);
153
152
  setDirty();
154
153
  },
155
- selectAllLabel: selectAllLabel,
156
- isTableSortable: isTableSortable
154
+ selectAllLabel: selectAllLabel
157
155
  }));
158
156
  };
159
157
  CustomizeColumnsTearsheet.propTypes = {
@@ -164,7 +162,6 @@ CustomizeColumnsTearsheet.propTypes = {
164
162
  findColumnPlaceholderLabel: PropTypes.string,
165
163
  instructionsLabel: PropTypes.string,
166
164
  isOpen: PropTypes.bool.isRequired,
167
- isTableSortable: PropTypes.bool.isRequired,
168
165
  onSaveColumnPrefs: PropTypes.func.isRequired,
169
166
  originalColumnDefinitions: PropTypes.array.isRequired,
170
167
  primaryButtonTextLabel: PropTypes.string,
@@ -11,13 +11,13 @@ import { Checkbox } from '@carbon/react';
11
11
  import { isColumnVisible } from './common';
12
12
  import DraggableElement from '../../DraggableElement';
13
13
  import { pkg } from '../../../../../settings';
14
+ import getColTitle from '../../../utils/getColTitle';
14
15
  var blockClass = "".concat(pkg.prefix, "--datagrid");
15
16
  export var DraggableItemsList = function DraggableItemsList(_ref) {
16
17
  var columns = _ref.columns,
17
18
  filterString = _ref.filterString,
18
19
  focusIndex = _ref.focusIndex,
19
20
  getNextIndex = _ref.getNextIndex,
20
- isTableSortable = _ref.isTableSortable,
21
21
  moveElement = _ref.moveElement,
22
22
  onSelectColumn = _ref.onSelectColumn,
23
23
  setAriaRegionText = _ref.setAriaRegionText,
@@ -26,23 +26,18 @@ export var DraggableItemsList = function DraggableItemsList(_ref) {
26
26
  return /*#__PURE__*/React.createElement(React.Fragment, null, columns
27
27
  // hide the columns without Header, e.g the sticky actions, spacer
28
28
  .filter(function (colDef) {
29
- var _colDef$Header$props$, _colDef$Header$props;
30
- var sortableTitle = isTableSortable && ((_colDef$Header$props$ = colDef.Header().props.children.props) === null || _colDef$Header$props$ === void 0 ? void 0 : _colDef$Header$props$.title);
31
- return !!colDef.Header.props && !!((_colDef$Header$props = colDef.Header.props) !== null && _colDef$Header$props !== void 0 && _colDef$Header$props.title) || isTableSortable && !!sortableTitle;
32
- }).filter(function (colDef) {
29
+ return !!getColTitle(colDef);
30
+ }).filter(Boolean).filter(function (colDef) {
33
31
  return !colDef.isAction;
34
32
  }).filter(function (colDef) {
35
- var _colDef$Header$props$2, _colDef$Header$props2;
36
- 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);
37
- 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';
33
+ var _getColTitle;
34
+ return filterString.length === 0 || ((_getColTitle = getColTitle(colDef)) === null || _getColTitle === void 0 ? void 0 : _getColTitle.toLowerCase().includes(filterString)) && colDef.id !== 'spacer';
38
35
  }).map(function (colDef, i) {
39
- var _colDef$Header$props$3, _colDef$Header$props3, _colDef$Header$props4, _colDef$Header$props5, _colDef$Header$props6;
40
- var isSortableColumn = !!colDef.canSort && !!isTableSortable;
41
- 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);
36
+ var colHeaderTitle = getColTitle(colDef);
42
37
  var searchString = new RegExp('(' + filterString + ')');
43
- var res = filterString.length ? isSortableColumn ? sortableTitle.toLowerCase().split(searchString) : colDef.Header.props.title.toLowerCase().split(searchString) : null;
38
+ var res = filterString.length ? colHeaderTitle.toLowerCase().split(searchString) : null;
44
39
  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;
45
- 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;
40
+ var highlightedText = res !== null ? res[0] === '' ? "<strong>".concat(firstWord, "</strong>") + res[2] : firstWord + "<strong>".concat(res[1], "</strong>") + res[2] : colHeaderTitle;
46
41
  var isFrozenColumn = !!colDef.sticky;
47
42
  var listContents = /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Checkbox, {
48
43
  wrapperClassName: "".concat(blockClass, "__customize-columns-checkbox-wrapper"),
@@ -53,8 +48,8 @@ export var DraggableItemsList = function DraggableItemsList(_ref) {
53
48
  return onSelectColumn(colDef, checked);
54
49
  },
55
50
  id: "".concat(blockClass, "__customization-column-").concat(colDef.id),
56
- labelText: isSortableColumn ? sortableTitle : (_colDef$Header$props4 = colDef.Header.props) === null || _colDef$Header$props4 === void 0 ? void 0 : _colDef$Header$props4.title,
57
- title: isSortableColumn ? sortableTitle : (_colDef$Header$props5 = colDef.Header.props) === null || _colDef$Header$props5 === void 0 ? void 0 : _colDef$Header$props5.title,
51
+ labelText: colHeaderTitle,
52
+ title: colHeaderTitle,
58
53
  className: "".concat(blockClass, "__customize-columns-checkbox"),
59
54
  hideLabel: true
60
55
  }), /*#__PURE__*/React.createElement("div", {
@@ -71,7 +66,7 @@ export var DraggableItemsList = function DraggableItemsList(_ref) {
71
66
  id: "dnd-datagrid-columns-".concat(colDef.id),
72
67
  type: "column-customization",
73
68
  disabled: filterString.length > 0 || isFrozenColumn,
74
- ariaLabel: isSortableColumn ? sortableTitle : (_colDef$Header$props6 = colDef.Header.props) === null || _colDef$Header$props6 === void 0 ? void 0 : _colDef$Header$props6.title,
69
+ ariaLabel: colHeaderTitle,
75
70
  onGrab: setAriaRegionText,
76
71
  isFocused: focusIndex === i,
77
72
  moveElement: moveElement,
@@ -100,7 +95,6 @@ DraggableItemsList.propTypes = {
100
95
  filterString: PropTypes.string.isRequired,
101
96
  focusIndex: PropTypes.number.isRequired,
102
97
  getNextIndex: PropTypes.func.isRequired,
103
- isTableSortable: PropTypes.bool,
104
98
  moveElement: PropTypes.func.isRequired,
105
99
  onSelectColumn: PropTypes.func.isRequired,
106
100
  setAriaRegionText: PropTypes.func.isRequired,
@@ -20,7 +20,6 @@ var TearsheetWrapper = function TearsheetWrapper(_ref) {
20
20
  rest = _objectWithoutProperties(_instance$customizeCo, _excluded);
21
21
  return /*#__PURE__*/React.createElement(CustomizeColumnsTearsheet, _extends({}, rest, labels, {
22
22
  isOpen: isTearsheetOpen,
23
- isTableSortable: (instance === null || instance === void 0 ? void 0 : instance.isTableSortable) || false,
24
23
  setIsTearsheetOpen: setIsTearsheetOpen,
25
24
  columnDefinitions: instance.allColumns,
26
25
  originalColumnDefinitions: instance.columns,
@@ -24,7 +24,8 @@ var useDefaultStringRenderer = function useDefaultStringRenderer(hooks) {
24
24
  var HeaderRenderer = function HeaderRenderer(header) {
25
25
  return /*#__PURE__*/React.createElement("div", {
26
26
  className: "".concat(blockClass, "__defaultStringRenderer"),
27
- title: typeof header === 'string' ? header : ''
27
+ title: typeof header === 'string' ? header : '',
28
+ key: typeof header === 'string' ? header : ''
28
29
  }, header);
29
30
  };
30
31
  var visibleColumns = function visibleColumns(columns) {
@@ -25,8 +25,12 @@ var getAriaSortValue = function getAriaSortValue(col, _ref) {
25
25
  var ascendingSortableLabelText = _ref.ascendingSortableLabelText,
26
26
  descendingSortableLabelText = _ref.descendingSortableLabelText,
27
27
  defaultSortableLabelText = _ref.defaultSortableLabelText;
28
- var isSorted = col.isSorted,
29
- isSortedDesc = col.isSortedDesc;
28
+ if (!col) {
29
+ return;
30
+ }
31
+ var _ref2 = col || {},
32
+ isSorted = _ref2.isSorted,
33
+ isSortedDesc = _ref2.isSortedDesc;
30
34
  if (!isSorted) {
31
35
  return defaultSortableLabelText || 'none';
32
36
  }
@@ -38,16 +42,20 @@ var getAriaSortValue = function getAriaSortValue(col, _ref) {
38
42
  }
39
43
  };
40
44
  var getAriaPressedValue = function getAriaPressedValue(col) {
41
- var isSorted = col.isSorted;
45
+ if (!col) {
46
+ return;
47
+ }
48
+ var _ref3 = col || {},
49
+ isSorted = _ref3.isSorted;
42
50
  if (isSorted) {
43
51
  return 'true';
44
52
  }
45
53
  return 'false';
46
54
  };
47
55
  var useSortableColumns = function useSortableColumns(hooks) {
48
- var sortableVisibleColumns = function sortableVisibleColumns(visibleColumns, _ref2) {
56
+ var sortableVisibleColumns = function sortableVisibleColumns(visibleColumns, _ref4) {
49
57
  var _instance$customizeCo;
50
- var instance = _ref2.instance;
58
+ var instance = _ref4.instance;
51
59
  var onSort = instance.onSort,
52
60
  ascendingSortableLabelText = instance.ascendingSortableLabelText,
53
61
  descendingSortableLabelText = instance.descendingSortableLabelText,
@@ -0,0 +1,25 @@
1
+ // This function recursively looks for the nested header element until we can find the key which contains the title.
2
+ // This can happen if multiple hooks are used together that manipulate the rendering of the column
3
+ // header, such as `useColumnCenterAlign` and `useSortableColumns`.
4
+ var getNestedTitle = function getNestedTitle(component) {
5
+ if (component && !component.key) {
6
+ return getNestedTitle(component.children);
7
+ }
8
+ if (component && component.key && typeof component.key === 'string') {
9
+ return component.key;
10
+ }
11
+ };
12
+ var getColTitle = function getColTitle(col) {
13
+ var _col$Header;
14
+ if (!col) {
15
+ return;
16
+ }
17
+ var checkTitle = function checkTitle() {
18
+ if (col.Header().props.children.props && col.Header().props.children.props.title) {
19
+ return col.Header().props.children.props.title;
20
+ }
21
+ return getNestedTitle(col.Header().props.children.props);
22
+ };
23
+ 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;
24
+ };
25
+ export default getColTitle;
@@ -331,7 +331,7 @@ export var NotificationsPanel = /*#__PURE__*/React.forwardRef(function (_ref, re
331
331
  className: "".concat(blockClass, "__header-container")
332
332
  }, /*#__PURE__*/React.createElement("div", {
333
333
  className: "".concat(blockClass, "__header-flex")
334
- }, /*#__PURE__*/React.createElement("h1", {
334
+ }, /*#__PURE__*/React.createElement("h2", {
335
335
  className: "".concat(blockClass, "__header")
336
336
  }, title), /*#__PURE__*/React.createElement(Button, {
337
337
  size: "sm",
@@ -340,7 +340,7 @@ export var NotificationsPanel = /*#__PURE__*/React.forwardRef(function (_ref, re
340
340
  onClick: function onClick() {
341
341
  return onDismissAllNotifications();
342
342
  }
343
- }, dismissAllLabel)), /*#__PURE__*/React.createElement(Toggle, {
343
+ }, dismissAllLabel)), onDoNotDisturbChange && /*#__PURE__*/React.createElement(Toggle, {
344
344
  size: "sm",
345
345
  className: "".concat(blockClass, "__do-not-disturb-toggle"),
346
346
  id: "".concat(blockClass, "__do-not-disturb-toggle-component"),
@@ -441,11 +441,11 @@ NotificationsPanel.propTypes = {
441
441
  */
442
442
  dismissSingleNotificationIconDescription: PropTypes.string,
443
443
  /**
444
- * Determines if the `Do not disturb` toggle is on or off when the component is rendered
444
+ * Optional: Determines if the `Do not disturb` toggle is on or off when the component is rendered
445
445
  */
446
446
  doNotDisturbDefaultToggled: PropTypes.bool,
447
447
  /**
448
- * Label for Do not disturb toggle
448
+ * Optional: Label for Do not disturb toggle
449
449
  */
450
450
  doNotDisturbLabel: PropTypes.string,
451
451
  /**
@@ -493,7 +493,7 @@ NotificationsPanel.propTypes = {
493
493
  */
494
494
  onDismissSingleNotification: PropTypes.func,
495
495
  /**
496
- * Function that returns the current selected value of the disable notification toggle
496
+ * Optional: function that returns the current selected value of the disable notification toggle
497
497
  */
498
498
  onDoNotDisturbChange: PropTypes.func,
499
499
  /**
@@ -217,13 +217,11 @@ export var OptionsTile = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
217
217
  id: "".concat(id, "-toggle"),
218
218
  className: "".concat(blockClass, "__toggle"),
219
219
  toggled: enabled,
220
- labelA: "",
221
- labelB: "",
222
220
  "aria-labelledby": titleId,
221
+ hideLabel: true,
223
222
  onToggle: onToggle,
224
223
  size: "sm",
225
- disabled: isLocked,
226
- labelText: title
224
+ disabled: isLocked
227
225
  })), isExpandable ? /*#__PURE__*/React.createElement("details", {
228
226
  open: isOpen,
229
227
  ref: detailsRef
@@ -1,7 +1,7 @@
1
1
  import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
2
2
  import _regeneratorRuntime from "@babel/runtime/regenerator";
3
3
  /**
4
- * Copyright IBM Corp. 2021, 2022
4
+ * Copyright IBM Corp. 2021, 2023
5
5
  *
6
6
  * This source code is licensed under the Apache-2.0 license found in the
7
7
  * LICENSE file in the root directory of this source tree.
@@ -12,16 +12,19 @@ export var useCreateComponentStepChange = function useCreateComponentStepChange(
12
12
  var firstIncludedStep = _ref.firstIncludedStep,
13
13
  lastIncludedStep = _ref.lastIncludedStep,
14
14
  stepData = _ref.stepData,
15
+ onPrevious = _ref.onPrevious,
15
16
  onNext = _ref.onNext,
16
17
  isSubmitDisabled = _ref.isSubmitDisabled,
17
18
  setCurrentStep = _ref.setCurrentStep,
18
19
  setIsSubmitting = _ref.setIsSubmitting,
19
- setShouldViewAll = _ref.setShouldViewAll,
20
+ _ref$setLoadingPrevio = _ref.setLoadingPrevious,
21
+ setLoadingPrevious = _ref$setLoadingPrevio === void 0 ? null : _ref$setLoadingPrevio,
22
+ _ref$loadingPrevious = _ref.loadingPrevious,
23
+ loadingPrevious = _ref$loadingPrevious === void 0 ? false : _ref$loadingPrevious,
20
24
  onClose = _ref.onClose,
21
25
  onRequestSubmit = _ref.onRequestSubmit,
22
26
  componentName = _ref.componentName,
23
27
  currentStep = _ref.currentStep,
24
- shouldViewAll = _ref.shouldViewAll,
25
28
  backButtonText = _ref.backButtonText,
26
29
  cancelButtonText = _ref.cancelButtonText,
27
30
  submitButtonText = _ref.submitButtonText,
@@ -43,6 +46,21 @@ export var useCreateComponentStepChange = function useCreateComponentStepChange(
43
46
  return prev;
44
47
  });
45
48
  }, [setCurrentStep, setIsSubmitting, stepData]);
49
+ var moveToPreviousStep = useCallback(function () {
50
+ if (componentName !== 'CreateFullPage') {
51
+ setLoadingPrevious(false);
52
+ }
53
+ setCurrentStep(function (prev) {
54
+ // Find previous included step to render
55
+ // There will always be a previous step otherwise we will
56
+ // have disabled the back button since we have reached the first visible step
57
+ do {
58
+ var _stepData2;
59
+ prev--;
60
+ } while (!((_stepData2 = stepData[prev - 1]) !== null && _stepData2 !== void 0 && _stepData2.shouldIncludeStep));
61
+ return prev;
62
+ });
63
+ }, [setCurrentStep, stepData, setLoadingPrevious, componentName]);
46
64
 
47
65
  // useEffect to handle multi step logic
48
66
  useEffect(function () {
@@ -51,7 +69,6 @@ export var useCreateComponentStepChange = function useCreateComponentStepChange(
51
69
  setCurrentStep(0);
52
70
  }
53
71
  setIsSubmitting(false);
54
- setShouldViewAll(false);
55
72
  onClose();
56
73
  };
57
74
  var handleOnRequestSubmit = /*#__PURE__*/function () {
@@ -81,104 +98,136 @@ export var useCreateComponentStepChange = function useCreateComponentStepChange(
81
98
  return _ref2.apply(this, arguments);
82
99
  };
83
100
  }();
84
- var handleNext = /*#__PURE__*/function () {
101
+ var handlePrevious = /*#__PURE__*/function () {
85
102
  var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2() {
86
103
  return _regeneratorRuntime.wrap(function _callee2$(_context2) {
87
104
  while (1) switch (_context2.prev = _context2.next) {
105
+ case 0:
106
+ if (!(componentName === 'CreateFullPage')) {
107
+ _context2.next = 2;
108
+ break;
109
+ }
110
+ return _context2.abrupt("return");
111
+ case 2:
112
+ setLoadingPrevious(true);
113
+ if (!(typeof onPrevious === 'function')) {
114
+ _context2.next = 15;
115
+ break;
116
+ }
117
+ _context2.prev = 4;
118
+ _context2.next = 7;
119
+ return onPrevious();
120
+ case 7:
121
+ moveToPreviousStep();
122
+ _context2.next = 13;
123
+ break;
124
+ case 10:
125
+ _context2.prev = 10;
126
+ _context2.t0 = _context2["catch"](4);
127
+ console.warn("".concat(componentName, " onBack error: ").concat(_context2.t0));
128
+ case 13:
129
+ _context2.next = 16;
130
+ break;
131
+ case 15:
132
+ moveToPreviousStep();
133
+ case 16:
134
+ case "end":
135
+ return _context2.stop();
136
+ }
137
+ }, _callee2, null, [[4, 10]]);
138
+ }));
139
+ return function handlePrevious() {
140
+ return _ref3.apply(this, arguments);
141
+ };
142
+ }();
143
+ var handleNext = /*#__PURE__*/function () {
144
+ var _ref4 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3() {
145
+ return _regeneratorRuntime.wrap(function _callee3$(_context3) {
146
+ while (1) switch (_context3.prev = _context3.next) {
88
147
  case 0:
89
148
  setIsSubmitting(true);
90
149
  if (!(typeof onNext === 'function')) {
91
- _context2.next = 14;
150
+ _context3.next = 14;
92
151
  break;
93
152
  }
94
- _context2.prev = 2;
95
- _context2.next = 5;
153
+ _context3.prev = 2;
154
+ _context3.next = 5;
96
155
  return onNext();
97
156
  case 5:
98
157
  continueToNextStep();
99
- _context2.next = 12;
158
+ _context3.next = 12;
100
159
  break;
101
160
  case 8:
102
- _context2.prev = 8;
103
- _context2.t0 = _context2["catch"](2);
161
+ _context3.prev = 8;
162
+ _context3.t0 = _context3["catch"](2);
104
163
  setIsSubmitting(false);
105
- console.warn("".concat(componentName, " onNext error: ").concat(_context2.t0));
164
+ console.warn("".concat(componentName, " onNext error: ").concat(_context3.t0));
106
165
  case 12:
107
- _context2.next = 15;
166
+ _context3.next = 15;
108
167
  break;
109
168
  case 14:
110
169
  continueToNextStep();
111
170
  case 15:
112
171
  case "end":
113
- return _context2.stop();
172
+ return _context3.stop();
114
173
  }
115
- }, _callee2, null, [[2, 8]]);
174
+ }, _callee3, null, [[2, 8]]);
116
175
  }));
117
176
  return function handleNext() {
118
- return _ref3.apply(this, arguments);
177
+ return _ref4.apply(this, arguments);
119
178
  };
120
179
  }();
121
180
  var handleSubmit = /*#__PURE__*/function () {
122
- var _ref4 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3() {
123
- return _regeneratorRuntime.wrap(function _callee3$(_context3) {
124
- while (1) switch (_context3.prev = _context3.next) {
181
+ var _ref5 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee4() {
182
+ return _regeneratorRuntime.wrap(function _callee4$(_context4) {
183
+ while (1) switch (_context4.prev = _context4.next) {
125
184
  case 0:
126
185
  setIsSubmitting(true);
127
186
  // last step should have onNext as well
128
187
  if (!(typeof onNext === 'function')) {
129
- _context3.next = 15;
188
+ _context4.next = 15;
130
189
  break;
131
190
  }
132
- _context3.prev = 2;
133
- _context3.next = 5;
191
+ _context4.prev = 2;
192
+ _context4.next = 5;
134
193
  return onNext();
135
194
  case 5:
136
- _context3.next = 7;
195
+ _context4.next = 7;
137
196
  return handleOnRequestSubmit();
138
197
  case 7:
139
- _context3.next = 13;
198
+ _context4.next = 13;
140
199
  break;
141
200
  case 9:
142
- _context3.prev = 9;
143
- _context3.t0 = _context3["catch"](2);
201
+ _context4.prev = 9;
202
+ _context4.t0 = _context4["catch"](2);
144
203
  setIsSubmitting(false);
145
- console.warn("".concat(componentName, " onNext error: ").concat(_context3.t0));
204
+ console.warn("".concat(componentName, " onNext error: ").concat(_context4.t0));
146
205
  case 13:
147
- _context3.next = 17;
206
+ _context4.next = 17;
148
207
  break;
149
208
  case 15:
150
- _context3.next = 17;
209
+ _context4.next = 17;
151
210
  return handleOnRequestSubmit();
152
211
  case 17:
153
212
  case "end":
154
- return _context3.stop();
213
+ return _context4.stop();
155
214
  }
156
- }, _callee3, null, [[2, 9]]);
215
+ }, _callee4, null, [[2, 9]]);
157
216
  }));
158
217
  return function handleSubmit() {
159
- return _ref4.apply(this, arguments);
218
+ return _ref5.apply(this, arguments);
160
219
  };
161
220
  }();
162
221
  if ((stepData === null || stepData === void 0 ? void 0 : stepData.length) > 0) {
163
222
  var buttons = [];
164
- if ((stepData === null || stepData === void 0 ? void 0 : stepData.length) > 1 && !shouldViewAll) {
223
+ if ((stepData === null || stepData === void 0 ? void 0 : stepData.length) > 1) {
165
224
  buttons.push({
166
225
  key: 'create-action-button-back',
167
226
  label: backButtonText,
168
- onClick: function onClick() {
169
- return setCurrentStep(function (prev) {
170
- // Find previous included step to render
171
- // There will always be a previous step otherwise we will
172
- // have disabled the back button since we have reached the first visible step
173
- do {
174
- var _stepData2;
175
- prev--;
176
- } while (!((_stepData2 = stepData[prev - 1]) !== null && _stepData2 !== void 0 && _stepData2.shouldIncludeStep));
177
- return prev;
178
- });
179
- },
227
+ onClick: handlePrevious,
180
228
  kind: 'secondary',
181
- disabled: currentStep === firstIncludedStep
229
+ disabled: currentStep === firstIncludedStep,
230
+ loading: loadingPrevious
182
231
  });
183
232
  }
184
233
  buttons.push({
@@ -191,8 +240,8 @@ export var useCreateComponentStepChange = function useCreateComponentStepChange(
191
240
  });
192
241
  buttons.push({
193
242
  key: 'create-action-button-submit',
194
- label: shouldViewAll ? submitButtonText : currentStep < lastIncludedStep ? nextButtonText : submitButtonText,
195
- onClick: shouldViewAll ? handleSubmit : currentStep < lastIncludedStep ? handleNext : handleSubmit,
243
+ label: currentStep < lastIncludedStep ? nextButtonText : submitButtonText,
244
+ onClick: currentStep < lastIncludedStep ? handleNext : handleSubmit,
196
245
  disabled: isSubmitDisabled,
197
246
  kind: 'primary',
198
247
  loading: isSubmitting,
@@ -200,5 +249,5 @@ export var useCreateComponentStepChange = function useCreateComponentStepChange(
200
249
  });
201
250
  setCreateComponentActions(buttons);
202
251
  }
203
- }, [firstIncludedStep, lastIncludedStep, stepData, onNext, isSubmitDisabled, backButtonText, cancelButtonText, currentStep, onClose, nextButtonText, submitButtonText, onRequestSubmit, isSubmitting, shouldViewAll, componentBlockClass, componentName, continueToNextStep, setCurrentStep, setCreateComponentActions, setIsSubmitting, setShouldViewAll, setModalIsOpen]);
252
+ }, [firstIncludedStep, lastIncludedStep, stepData, onNext, isSubmitDisabled, backButtonText, cancelButtonText, currentStep, onClose, nextButtonText, submitButtonText, onRequestSubmit, isSubmitting, componentBlockClass, componentName, continueToNextStep, setCurrentStep, setCreateComponentActions, setIsSubmitting, setModalIsOpen, moveToPreviousStep, onPrevious, setLoadingPrevious, loadingPrevious]);
204
253
  };
@@ -18,11 +18,25 @@ export var useResizeObserver = function useResizeObserver(ref, callback) {
18
18
  var entriesToHandle = useRef(null);
19
19
  var cb = useRef(callback);
20
20
  useEffect(function () {
21
- // ref for callback removes it as dependency fro useLayoutEffect
21
+ // ref for callback removes it as dependency from useLayoutEffect
22
22
  // This significantly reduces repeated calls if a function is redefined on every
23
23
  // render
24
24
  cb.current = callback;
25
25
  }, [callback]);
26
+ useEffect(function () {
27
+ var getInitialSize = function getInitialSize() {
28
+ if (ref.current) {
29
+ var _ref$current;
30
+ var refComputedStyle = window.getComputedStyle(ref.current);
31
+ var initialWidth = (((_ref$current = ref.current) === null || _ref$current === void 0 ? void 0 : _ref$current.offsetWidth) || 0) - (parseFloat((refComputedStyle === null || refComputedStyle === void 0 ? void 0 : refComputedStyle.paddingLeft) || 0), parseFloat((refComputedStyle === null || refComputedStyle === void 0 ? void 0 : refComputedStyle.paddingRight) || 0));
32
+ setWidth(initialWidth);
33
+ }
34
+ };
35
+ if (!(ref !== null && ref !== void 0 && ref.current) && width !== 0) {
36
+ return;
37
+ }
38
+ getInitialSize();
39
+ }, [width, ref]);
26
40
  useLayoutEffect(function () {
27
41
  if (!(ref !== null && ref !== void 0 && ref.current)) {
28
42
  return;