@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.
- package/css/index-full-carbon.css +6291 -5856
- package/css/index-full-carbon.css.map +1 -1
- package/css/index-full-carbon.min.css +3 -3
- package/css/index-full-carbon.min.css.map +1 -1
- package/css/index-without-carbon-released-only.css +21 -21
- package/css/index-without-carbon-released-only.css.map +1 -1
- package/css/index-without-carbon-released-only.min.css +2 -2
- package/css/index-without-carbon-released-only.min.css.map +1 -1
- package/css/index-without-carbon.css +1259 -193
- package/css/index-without-carbon.css.map +1 -1
- package/css/index-without-carbon.min.css +3 -3
- package/css/index-without-carbon.min.css.map +1 -1
- package/css/index.css +3674 -3623
- package/css/index.css.map +1 -1
- package/css/index.min.css +3 -3
- package/css/index.min.css.map +1 -1
- package/es/components/CreateTearsheet/CreateTearsheet.js +30 -14
- package/es/components/CreateTearsheet/CreateTearsheetStep.js +10 -4
- package/es/components/CreateTearsheet/preview-components/MultiStepTearsheet.js +3 -0
- package/es/components/Datagrid/Datagrid/Datagrid.js +12 -7
- package/es/components/Datagrid/Datagrid/DatagridContent.js +18 -14
- package/es/components/Datagrid/Datagrid/DatagridHeaderRow.js +12 -1
- package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/Columns.js +1 -4
- package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/CustomizeColumnsTearsheet.js +2 -5
- package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/DraggableItemsList.js +11 -17
- package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/TearsheetWrapper.js +0 -1
- package/es/components/Datagrid/useDefaultStringRenderer.js +2 -1
- package/es/components/Datagrid/useSortableColumns.js +13 -5
- package/es/components/Datagrid/utils/getColTitle.js +25 -0
- package/es/components/NotificationsPanel/NotificationsPanel.js +5 -5
- package/es/components/OptionsTile/OptionsTile.js +2 -4
- package/es/global/js/hooks/useCreateComponentStepChange.js +98 -49
- package/es/global/js/hooks/useResizeObserver.js +15 -1
- package/es/global/js/hooks/useRetrieveStepData.js +1 -1
- package/es/global/js/utils/StoryDocsPage.js +0 -1
- package/lib/components/CreateTearsheet/CreateTearsheet.js +30 -14
- package/lib/components/CreateTearsheet/CreateTearsheetStep.js +10 -4
- package/lib/components/CreateTearsheet/preview-components/MultiStepTearsheet.js +3 -0
- package/lib/components/Datagrid/Datagrid/Datagrid.js +12 -7
- package/lib/components/Datagrid/Datagrid/DatagridContent.js +17 -13
- package/lib/components/Datagrid/Datagrid/DatagridHeaderRow.js +12 -1
- package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/Columns.js +1 -4
- package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/CustomizeColumnsTearsheet.js +2 -5
- package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/DraggableItemsList.js +11 -17
- package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/TearsheetWrapper.js +0 -1
- package/lib/components/Datagrid/useDefaultStringRenderer.js +2 -1
- package/lib/components/Datagrid/useSortableColumns.js +13 -5
- package/lib/components/Datagrid/utils/getColTitle.js +32 -0
- package/lib/components/NotificationsPanel/NotificationsPanel.js +5 -5
- package/lib/components/OptionsTile/OptionsTile.js +2 -4
- package/lib/global/js/hooks/useCreateComponentStepChange.js +98 -49
- package/lib/global/js/hooks/useResizeObserver.js +15 -1
- package/lib/global/js/hooks/useRetrieveStepData.js +1 -1
- package/lib/global/js/utils/StoryDocsPage.js +0 -1
- package/package.json +9 -9
- 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
|
12
|
-
import
|
13
|
-
import {
|
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 {
|
19
|
-
import { carbon, pkg } from '../../../settings';
|
18
|
+
import { FilterSummary } from '../../FilterSummary';
|
20
19
|
import { InlineEditContext } from './addons/InlineEdit/InlineEditContext';
|
21
|
-
import
|
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,
|
package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/CustomizeColumnsTearsheet.js
CHANGED
@@ -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
|
-
|
30
|
-
|
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
|
36
|
-
|
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
|
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 ?
|
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] :
|
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:
|
57
|
-
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:
|
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
|
-
|
29
|
-
|
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
|
-
|
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,
|
56
|
+
var sortableVisibleColumns = function sortableVisibleColumns(visibleColumns, _ref4) {
|
49
57
|
var _instance$customizeCo;
|
50
|
-
var 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("
|
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
|
-
*
|
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,
|
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
|
-
|
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
|
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
|
-
|
150
|
+
_context3.next = 14;
|
92
151
|
break;
|
93
152
|
}
|
94
|
-
|
95
|
-
|
153
|
+
_context3.prev = 2;
|
154
|
+
_context3.next = 5;
|
96
155
|
return onNext();
|
97
156
|
case 5:
|
98
157
|
continueToNextStep();
|
99
|
-
|
158
|
+
_context3.next = 12;
|
100
159
|
break;
|
101
160
|
case 8:
|
102
|
-
|
103
|
-
|
161
|
+
_context3.prev = 8;
|
162
|
+
_context3.t0 = _context3["catch"](2);
|
104
163
|
setIsSubmitting(false);
|
105
|
-
console.warn("".concat(componentName, " onNext error: ").concat(
|
164
|
+
console.warn("".concat(componentName, " onNext error: ").concat(_context3.t0));
|
106
165
|
case 12:
|
107
|
-
|
166
|
+
_context3.next = 15;
|
108
167
|
break;
|
109
168
|
case 14:
|
110
169
|
continueToNextStep();
|
111
170
|
case 15:
|
112
171
|
case "end":
|
113
|
-
return
|
172
|
+
return _context3.stop();
|
114
173
|
}
|
115
|
-
},
|
174
|
+
}, _callee3, null, [[2, 8]]);
|
116
175
|
}));
|
117
176
|
return function handleNext() {
|
118
|
-
return
|
177
|
+
return _ref4.apply(this, arguments);
|
119
178
|
};
|
120
179
|
}();
|
121
180
|
var handleSubmit = /*#__PURE__*/function () {
|
122
|
-
var
|
123
|
-
return _regeneratorRuntime.wrap(function
|
124
|
-
while (1) switch (
|
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
|
-
|
188
|
+
_context4.next = 15;
|
130
189
|
break;
|
131
190
|
}
|
132
|
-
|
133
|
-
|
191
|
+
_context4.prev = 2;
|
192
|
+
_context4.next = 5;
|
134
193
|
return onNext();
|
135
194
|
case 5:
|
136
|
-
|
195
|
+
_context4.next = 7;
|
137
196
|
return handleOnRequestSubmit();
|
138
197
|
case 7:
|
139
|
-
|
198
|
+
_context4.next = 13;
|
140
199
|
break;
|
141
200
|
case 9:
|
142
|
-
|
143
|
-
|
201
|
+
_context4.prev = 9;
|
202
|
+
_context4.t0 = _context4["catch"](2);
|
144
203
|
setIsSubmitting(false);
|
145
|
-
console.warn("".concat(componentName, " onNext error: ").concat(
|
204
|
+
console.warn("".concat(componentName, " onNext error: ").concat(_context4.t0));
|
146
205
|
case 13:
|
147
|
-
|
206
|
+
_context4.next = 17;
|
148
207
|
break;
|
149
208
|
case 15:
|
150
|
-
|
209
|
+
_context4.next = 17;
|
151
210
|
return handleOnRequestSubmit();
|
152
211
|
case 17:
|
153
212
|
case "end":
|
154
|
-
return
|
213
|
+
return _context4.stop();
|
155
214
|
}
|
156
|
-
},
|
215
|
+
}, _callee4, null, [[2, 9]]);
|
157
216
|
}));
|
158
217
|
return function handleSubmit() {
|
159
|
-
return
|
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
|
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:
|
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:
|
195
|
-
onClick:
|
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,
|
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
|
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;
|