@carbon/ibm-products 2.1.2 → 2.2.0
Sign up to get free protection for your applications and to get access to all the features.
- package/css/index-full-carbon.css +58 -216
- 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 +11 -59
- package/css/index-without-carbon-released-only.css.map +1 -1
- package/css/index-without-carbon-released-only.min.css +1 -1
- package/css/index-without-carbon-released-only.min.css.map +1 -1
- package/css/index-without-carbon.css +30 -92
- 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 +28 -114
- 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/AboutModal/AboutModal.js +3 -1
- package/es/components/ActionBar/ActionBar.js +6 -2
- package/es/components/AddSelect/AddSelectFormControl.js +6 -6
- package/es/components/AddSelect/AddSelectRow.js +5 -15
- package/es/components/BreadcrumbWithOverflow/BreadcrumbWithOverflow.js +6 -5
- package/es/components/ButtonMenu/ButtonMenu.js +4 -4
- package/es/components/ButtonSetWithOverflow/ButtonSetWithOverflow.js +9 -3
- package/es/components/DataSpreadsheet/DataSpreadsheet.js +3 -3
- package/es/components/Datagrid/Datagrid/DatagridContent.js +1 -1
- package/es/components/Datagrid/Datagrid/DatagridVirtualBody.js +3 -1
- package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/TearsheetWrapper.js +1 -1
- package/es/components/Datagrid/Datagrid/addons/Filtering/FilterFlyout.js +47 -39
- package/es/components/Datagrid/Datagrid/addons/Filtering/FilterPanel.js +24 -20
- package/es/components/Datagrid/Datagrid/addons/Filtering/hooks/index.js +1 -0
- package/es/components/Datagrid/Datagrid/addons/Filtering/hooks/useFilters.js +15 -44
- package/es/components/Datagrid/Datagrid/addons/Filtering/hooks/useInitialStateFromFilters.js +21 -0
- package/es/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditCell/InlineEditCell.js +17 -17
- package/es/components/Datagrid/useActionsColumn.js +7 -10
- package/es/components/Datagrid/useCustomizeColumns.js +7 -9
- package/es/components/Datagrid/useExpandedRow.js +7 -11
- package/es/components/Datagrid/useFiltering.js +8 -12
- package/es/components/Datagrid/useInlineEdit.js +0 -3
- package/es/components/Datagrid/useNestedRows.js +6 -10
- package/es/components/Datagrid/useStickyColumn.js +3 -10
- package/es/components/Datagrid/utils/DatagridActions.js +14 -6
- package/es/components/ImportModal/ImportModal.js +6 -13
- package/es/components/NotificationsPanel/preview-components/UnreadNotificationBell.js +17 -2
- package/es/components/PageHeader/PageHeader.js +6 -2
- package/es/components/PageHeader/PageHeaderUtils.js +2 -2
- package/es/components/SidePanel/SidePanel.js +3 -1
- package/es/components/TagSet/TagSet.js +7 -4
- package/es/components/Tearsheet/TearsheetShell.js +5 -4
- package/es/components/UserProfileImage/UserProfileImage.js +2 -13
- package/es/global/js/hooks/useCreateComponentStepChange.js +15 -16
- package/es/global/js/hooks/useResizeObserver.js +28 -14
- package/es/global/js/package-settings.js +1 -14
- package/es/global/js/utils/story-helper.js +1 -1
- package/lib/components/AboutModal/AboutModal.js +3 -1
- package/lib/components/ActionBar/ActionBar.js +6 -2
- package/lib/components/AddSelect/AddSelectFormControl.js +6 -6
- package/lib/components/AddSelect/AddSelectRow.js +5 -15
- package/lib/components/BreadcrumbWithOverflow/BreadcrumbWithOverflow.js +6 -5
- package/lib/components/ButtonMenu/ButtonMenu.js +4 -4
- package/lib/components/ButtonSetWithOverflow/ButtonSetWithOverflow.js +9 -3
- package/lib/components/DataSpreadsheet/DataSpreadsheet.js +3 -3
- package/lib/components/Datagrid/Datagrid/DatagridContent.js +1 -1
- package/lib/components/Datagrid/Datagrid/DatagridVirtualBody.js +3 -1
- package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/TearsheetWrapper.js +1 -1
- package/lib/components/Datagrid/Datagrid/addons/Filtering/FilterFlyout.js +45 -37
- package/lib/components/Datagrid/Datagrid/addons/Filtering/FilterPanel.js +24 -20
- package/lib/components/Datagrid/Datagrid/addons/Filtering/hooks/index.js +7 -0
- package/lib/components/Datagrid/Datagrid/addons/Filtering/hooks/useFilters.js +13 -42
- package/lib/components/Datagrid/Datagrid/addons/Filtering/hooks/useInitialStateFromFilters.js +30 -0
- package/lib/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditCell/InlineEditCell.js +17 -17
- package/lib/components/Datagrid/useActionsColumn.js +7 -12
- package/lib/components/Datagrid/useCustomizeColumns.js +8 -10
- package/lib/components/Datagrid/useExpandedRow.js +6 -9
- package/lib/components/Datagrid/useFiltering.js +7 -10
- package/lib/components/Datagrid/useInlineEdit.js +0 -3
- package/lib/components/Datagrid/useNestedRows.js +6 -9
- package/lib/components/Datagrid/useStickyColumn.js +3 -10
- package/lib/components/Datagrid/utils/DatagridActions.js +13 -5
- package/lib/components/ImportModal/ImportModal.js +6 -13
- package/lib/components/NotificationsPanel/preview-components/UnreadNotificationBell.js +17 -2
- package/lib/components/PageHeader/PageHeader.js +6 -2
- package/lib/components/PageHeader/PageHeaderUtils.js +2 -2
- package/lib/components/SidePanel/SidePanel.js +3 -1
- package/lib/components/TagSet/TagSet.js +7 -4
- package/lib/components/Tearsheet/TearsheetShell.js +5 -4
- package/lib/components/UserProfileImage/UserProfileImage.js +2 -13
- package/lib/global/js/hooks/useCreateComponentStepChange.js +15 -16
- package/lib/global/js/hooks/useResizeObserver.js +27 -13
- package/lib/global/js/package-settings.js +1 -14
- package/lib/global/js/utils/story-helper.js +1 -1
- package/package.json +10 -10
- package/scss/components/AddSelect/_add-select.scss +0 -4
- package/scss/components/BreadcrumbWithOverflow/_breadcrumb-with-overflow.scss +1 -0
- package/scss/components/ButtonMenu/_button-menu.scss +1 -32
- package/scss/components/DataSpreadsheet/_storybook-styles.scss +0 -6
- package/scss/components/Datagrid/_datagrid.scss +2 -4
- package/scss/components/Datagrid/_storybook-styles.scss +1 -15
- package/scss/components/Datagrid/styles/_datagrid.scss +13 -12
- package/scss/components/Datagrid/styles/addons/_FilterFlyout.scss +0 -7
- package/scss/components/Datagrid/styles/addons/_FilterPanel.scss +0 -4
- package/scss/components/HTTPErrors/_storybook-styles.scss +2 -16
- package/scss/components/NotificationsPanel/_notifications-panel.scss +1 -1
- package/scss/components/NotificationsPanel/_storybook-styles.scss +4 -0
- package/scss/components/PageHeader/_page-header.scss +1 -0
- package/scss/components/PageHeader/_storybook-styles.scss +14 -42
- package/scss/components/SidePanel/_side-panel.scss +2 -0
- package/scss/components/Tearsheet/_tearsheet.scss +6 -7
- package/scss/components/WebTerminal/_storybook-styles.scss +1 -16
- package/scss/global/styles/_display-box.scss +0 -1
@@ -21,13 +21,10 @@ var OFFSET_SCROLL_CLASS = "".concat(styleClassPrefix, "-offset-scroll");
|
|
21
21
|
var useStickyColumn = function useStickyColumn(hooks) {
|
22
22
|
var tableBodyRef = useRef();
|
23
23
|
var stickyHeaderCellRef = useRef();
|
24
|
-
var _useState = useState(
|
24
|
+
var _useState = useState(window.innerWidth),
|
25
25
|
_useState2 = _slicedToArray(_useState, 2),
|
26
26
|
windowSize = _useState2[0],
|
27
27
|
setWindowSize = _useState2[1];
|
28
|
-
useEffect(function () {
|
29
|
-
setWindowSize(window.innerWidth);
|
30
|
-
}, []);
|
31
28
|
useLayoutEffect(function () {
|
32
29
|
function updateSize() {
|
33
30
|
setWindowSize(window.innerWidth);
|
@@ -56,13 +53,9 @@ var useStickyColumn = function useStickyColumn(hooks) {
|
|
56
53
|
headerCellElement.classList.add(OFFSET_SCROLL_CLASS);
|
57
54
|
}
|
58
55
|
var boundListener = debounce(onBodyResize.bind(null, tableBodyElement, headerCellElement), 250);
|
59
|
-
|
60
|
-
window.addEventListener('resize', boundListener);
|
61
|
-
}
|
56
|
+
window.addEventListener('resize', boundListener);
|
62
57
|
return function () {
|
63
|
-
|
64
|
-
window.removeEventListener('resize', boundListener);
|
65
|
-
}
|
58
|
+
window.removeEventListener('resize', boundListener);
|
66
59
|
};
|
67
60
|
}, [instance.rows, instance.isFetching]);
|
68
61
|
useEffect(function () {
|
@@ -1,4 +1,5 @@
|
|
1
1
|
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
2
|
+
import _extends from "@babel/runtime/helpers/extends";
|
2
3
|
/**
|
3
4
|
* Copyright IBM Corp. 2020, 2022
|
4
5
|
*
|
@@ -7,7 +8,7 @@ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
7
8
|
*/
|
8
9
|
|
9
10
|
import React, { useLayoutEffect, useState, useContext } from 'react';
|
10
|
-
import { TableToolbarContent, TableToolbarSearch, Button,
|
11
|
+
import { TableToolbarContent, TableToolbarSearch, Button, OverflowMenu, OverflowMenuItem, ComposedModal, ModalBody, ModalHeader, ModalFooter, Dropdown } from '@carbon/react';
|
11
12
|
import { Download, Add, Restart, ChevronDown, Filter } from '@carbon/react/icons';
|
12
13
|
import { action } from '@storybook/addon-actions';
|
13
14
|
import { pkg } from '../../../settings';
|
@@ -44,18 +45,25 @@ export var DatagridActions = function DatagridActions(datagridState) {
|
|
44
45
|
return (filterProps === null || filterProps === void 0 ? void 0 : filterProps.variation) === 'flyout' && /*#__PURE__*/React.createElement(FilterFlyout, getFilterFlyoutProps());
|
45
46
|
};
|
46
47
|
var renderFilterPanelButton = function renderFilterPanelButton() {
|
47
|
-
return (filterProps === null || filterProps === void 0 ? void 0 : filterProps.variation) === 'panel' && /*#__PURE__*/React.createElement(
|
48
|
+
return (filterProps === null || filterProps === void 0 ? void 0 : filterProps.variation) === 'panel' && /*#__PURE__*/React.createElement(Button, {
|
48
49
|
kind: "ghost",
|
49
|
-
|
50
|
-
|
50
|
+
hasIconOnly: true,
|
51
|
+
tooltipPosition: "bottom",
|
52
|
+
renderIcon: function renderIcon(props) {
|
53
|
+
return /*#__PURE__*/React.createElement(Filter, _extends({
|
54
|
+
size: 16
|
55
|
+
}, props));
|
56
|
+
},
|
57
|
+
iconDescription: filterProps.panelIconDescription,
|
51
58
|
className: "".concat(blockClass, "-filter-panel-open-button"),
|
52
59
|
onClick: function onClick() {
|
53
60
|
return setPanelOpen(function (open) {
|
54
61
|
return !open;
|
55
62
|
});
|
56
63
|
},
|
57
|
-
disabled: data.length === 0
|
58
|
-
|
64
|
+
disabled: data.length === 0,
|
65
|
+
tooltipAlignment: "start"
|
66
|
+
});
|
59
67
|
};
|
60
68
|
var _useState = useState(false),
|
61
69
|
_useState2 = _slicedToArray(_useState, 2),
|
@@ -179,13 +179,6 @@ export var ImportModal = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
179
179
|
var inputHandler = function inputHandler(evt) {
|
180
180
|
setImportUrl(evt.target.value);
|
181
181
|
};
|
182
|
-
var onCloseHandler = function onCloseHandler() {
|
183
|
-
setFiles([]);
|
184
|
-
setImportUrl('');
|
185
|
-
if (onClose) {
|
186
|
-
onClose();
|
187
|
-
}
|
188
|
-
};
|
189
182
|
var numberOfFiles = files.length;
|
190
183
|
var numberOfValidFiles = files.filter(function (f) {
|
191
184
|
return !f.invalid;
|
@@ -197,13 +190,13 @@ export var ImportModal = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
197
190
|
var blockClass = "".concat(pkg.prefix, "--import-modal");
|
198
191
|
return /*#__PURE__*/React.createElement(ComposedModal, _extends({}, rest, _objectSpread({
|
199
192
|
open: open,
|
200
|
-
ref: ref
|
193
|
+
ref: ref,
|
194
|
+
onClose: onClose
|
201
195
|
}, getDevtoolsProps(componentName)), {
|
202
196
|
"aria-label": title,
|
203
197
|
className: cx(blockClass, className),
|
204
198
|
size: "sm",
|
205
|
-
preventCloseOnClickOutside: true
|
206
|
-
onClose: onCloseHandler
|
199
|
+
preventCloseOnClickOutside: true
|
207
200
|
}), /*#__PURE__*/React.createElement(ModalHeader, {
|
208
201
|
className: "".concat(blockClass, "__header"),
|
209
202
|
title: title
|
@@ -266,7 +259,7 @@ export var ImportModal = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
266
259
|
}, /*#__PURE__*/React.createElement(Button, {
|
267
260
|
type: "button",
|
268
261
|
kind: "secondary",
|
269
|
-
onClick:
|
262
|
+
onClick: onClose
|
270
263
|
}, secondaryButtonText), /*#__PURE__*/React.createElement(Button, {
|
271
264
|
type: "submit",
|
272
265
|
kind: "primary",
|
@@ -369,11 +362,11 @@ ImportModal.propTypes = {
|
|
369
362
|
/**
|
370
363
|
* Specify a handler for "submitting" modal. Access the imported file via `file => {}`
|
371
364
|
*/
|
372
|
-
onRequestSubmit: PropTypes.func
|
365
|
+
onRequestSubmit: PropTypes.func,
|
373
366
|
/**
|
374
367
|
* Specify whether the Modal is currently open
|
375
368
|
*/
|
376
|
-
open: PropTypes.bool
|
369
|
+
open: PropTypes.bool,
|
377
370
|
/**
|
378
371
|
* Specify the text for the primary button
|
379
372
|
*/
|
@@ -15,19 +15,34 @@ var UnreadNotificationBell = function UnreadNotificationBell() {
|
|
15
15
|
xmlns: "http://www.w3.org/2000/svg",
|
16
16
|
xmlnsXlink: "http://www.w3.org/1999/xlink"
|
17
17
|
}, /*#__PURE__*/React.createElement("title", null, "Unread notification bell"), /*#__PURE__*/React.createElement("g", {
|
18
|
+
id: "Page-1",
|
19
|
+
stroke: "none",
|
20
|
+
strokeWidth: "1",
|
21
|
+
fill: "none",
|
22
|
+
fillRule: "evenodd"
|
23
|
+
}, /*#__PURE__*/React.createElement("g", {
|
18
24
|
id: "Group",
|
19
25
|
transform: "translate(-1.000000, 0.000000)"
|
26
|
+
}, /*#__PURE__*/React.createElement("g", {
|
27
|
+
id: "notification"
|
20
28
|
}, /*#__PURE__*/React.createElement("path", {
|
21
29
|
d: "M17.9419375,12.058125 L16.25,10.3661875 L16.25,8.125 C16.245845,4.91692673 13.816599,2.23147626 10.625,1.90675 L10.625,0.625 L9.375,0.625 L9.375,1.90675 C6.183401,2.23147626 3.754155,4.91692673 3.75,8.125 L3.75,10.3661875 L2.0580625,12.058125 C1.94086706,12.1753182 1.875,12.3342622 1.875,12.5 L1.875,14.375 C1.875,14.720178 2.15482203,15 2.5,15 L6.875,15 L6.875,15.4855 C6.84694527,17.1272367 8.05869477,18.5271305 9.6875,18.7346875 C10.5660567,18.8218694 11.4405518,18.5337871 12.0952737,17.9415019 C12.7499955,17.3492167 13.1239886,16.5078712 13.125,15.625 L13.125,15 L17.5,15 C17.845178,15 18.125,14.720178 18.125,14.375 L18.125,12.5 C18.125,12.3342622 18.0591329,12.1753182 17.9419375,12.058125 Z M11.875,15.625 C11.875,16.6605339 11.0355339,17.5 10,17.5 C8.96446609,17.5 8.125,16.6605339 8.125,15.625 L8.125,15 L11.875,15 L11.875,15.625 Z M16.875,13.75 L3.125,13.75 L3.125,12.7588125 L4.816875,11.066875 C4.93409336,10.949692 4.9999646,10.7907468 5,10.625 L5,8.125 C5,5.36357625 7.23857625,3.125 10,3.125 C12.7614237,3.125 15,5.36357625 15,8.125 L15,10.625 C15.0000354,10.7907468 15.0659066,10.949692 15.183125,11.066875 L16.875,12.7588125 L16.875,13.75 Z",
|
22
30
|
id: "Shape",
|
31
|
+
fill: "#FFFFFF",
|
23
32
|
fillRule: "nonzero"
|
24
|
-
}), /*#__PURE__*/React.createElement("
|
33
|
+
}), /*#__PURE__*/React.createElement("rect", {
|
34
|
+
id: "_Transparent_Rectangle_",
|
35
|
+
x: "0",
|
36
|
+
y: "0",
|
37
|
+
width: "20",
|
38
|
+
height: "20"
|
39
|
+
})), /*#__PURE__*/React.createElement("circle", {
|
25
40
|
id: "Oval",
|
26
41
|
stroke: "#161616",
|
27
42
|
fill: "#DA1E28",
|
28
43
|
cx: "15",
|
29
44
|
cy: "4.375",
|
30
45
|
r: "2.5"
|
31
|
-
})));
|
46
|
+
}))));
|
32
47
|
};
|
33
48
|
export { UnreadNotificationBell };
|
@@ -314,8 +314,12 @@ export var PageHeader = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
314
314
|
utilSetCollapsed(collapseHeader, metrics.headerOffset, metrics.headerTopValue);
|
315
315
|
}
|
316
316
|
}, [collapseHeader, metrics.headerOffset, metrics.headerTopValue]);
|
317
|
-
useResizeObserver(sizingContainerRef,
|
318
|
-
|
317
|
+
useResizeObserver(sizingContainerRef, {
|
318
|
+
callback: handleResizeActionBarColumn
|
319
|
+
});
|
320
|
+
useResizeObserver(headerRef, {
|
321
|
+
callback: handleResize
|
322
|
+
});
|
319
323
|
|
320
324
|
// Determine what form of title to display in the breadcrumb
|
321
325
|
var breadcrumbItemForTitle = utilGetBreadcrumbItemForTitle(blockClass, collapseTitle, title);
|
@@ -65,11 +65,11 @@ export var utilCheckUpdateVerticalSpace = function utilCheckUpdateVerticalSpace(
|
|
65
65
|
var scrollableContainer = scrollableAncestor(headerRef.current);
|
66
66
|
|
67
67
|
/* istanbul ignore next */
|
68
|
-
var scrollableContainerTop = scrollableContainer ? scrollableContainer.scrollTop - scrollableContainer.
|
68
|
+
var scrollableContainerTop = scrollableContainer ? scrollableContainer.scrollTop - scrollableContainer.offsetTop : 0;
|
69
69
|
|
70
70
|
// The header offset calculation is either going to work out at 0 if we have no gap between scrolling container
|
71
71
|
// top and the measuring ref top, or the difference between. It does not change on scroll or resize.
|
72
|
-
update.headerOffset =
|
72
|
+
update.headerOffset = scrollableContainerTop + offsetTopMeasuringRef.current.getBoundingClientRect().top;
|
73
73
|
|
74
74
|
/* istanbul ignore next */
|
75
75
|
update.breadcrumbRowHeight = breadcrumbRowEl ? breadcrumbRowEl.clientHeight : 0;
|
@@ -444,7 +444,9 @@ export var SidePanel = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
444
444
|
}, title));
|
445
445
|
};
|
446
446
|
var contentRef = ref || sidePanelRef;
|
447
|
-
useResizeObserver(contentRef,
|
447
|
+
useResizeObserver(contentRef, {
|
448
|
+
callback: handleResize
|
449
|
+
});
|
448
450
|
return /*#__PURE__*/React.createElement(AnimatePresence, null, open && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(motion.div, _extends({}, getDevtoolsProps(componentName), rest, {
|
449
451
|
id: "".concat(blockClass, "-outer"),
|
450
452
|
className: mainPanelClassNames,
|
@@ -156,8 +156,7 @@ export var TagSet = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
156
156
|
if (sizingTags.length > 0) {
|
157
157
|
var spaceAvailable = tagSetRef.current.offsetWidth;
|
158
158
|
for (var i in sizingTags) {
|
159
|
-
var
|
160
|
-
var tagWidth = ((_sizingTags$i = sizingTags[i]) === null || _sizingTags$i === void 0 ? void 0 : _sizingTags$i.offsetWidth) || 0;
|
159
|
+
var tagWidth = sizingTags[i].offsetWidth;
|
161
160
|
if (spaceAvailable >= tagWidth) {
|
162
161
|
spaceAvailable -= tagWidth;
|
163
162
|
willFit += 1;
|
@@ -199,8 +198,12 @@ export var TagSet = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
199
198
|
var handleModalClose = function handleModalClose() {
|
200
199
|
setShowAllModalOpen(false);
|
201
200
|
};
|
202
|
-
useResizeObserver(sizingContainerRef,
|
203
|
-
|
201
|
+
useResizeObserver(sizingContainerRef, {
|
202
|
+
callback: handleSizerTagsResize
|
203
|
+
});
|
204
|
+
useResizeObserver(tagSetRef, {
|
205
|
+
callback: handleResize
|
206
|
+
});
|
204
207
|
return /*#__PURE__*/React.createElement("div", _extends({}, rest, {
|
205
208
|
className: cx([blockClass, className]),
|
206
209
|
ref: tagSetRef
|
@@ -216,8 +216,7 @@ export var TearsheetShell = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
216
216
|
closeModal: onClose,
|
217
217
|
iconDescription: closeIconDescription
|
218
218
|
}, /*#__PURE__*/React.createElement(Wrap, {
|
219
|
-
className: "".concat(bc, "__header-content")
|
220
|
-
element: wide ? Layer : undefined
|
219
|
+
className: "".concat(bc, "__header-content")
|
221
220
|
}, /*#__PURE__*/React.createElement(Wrap, {
|
222
221
|
className: "".concat(bc, "__header-fields")
|
223
222
|
}, /*#__PURE__*/React.createElement(Wrap, {
|
@@ -242,10 +241,12 @@ export var TearsheetShell = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
242
241
|
className: "".concat(bc, "__right")
|
243
242
|
}, /*#__PURE__*/React.createElement(Wrap, {
|
244
243
|
className: "".concat(bc, "__main"),
|
245
|
-
alwaysRender: includeActions
|
244
|
+
alwaysRender: includeActions,
|
245
|
+
element: wide ? Layer : undefined
|
246
246
|
}, /*#__PURE__*/React.createElement(Wrap, {
|
247
247
|
className: "".concat(bc, "__content"),
|
248
|
-
alwaysRender: influencer && influencerPosition === 'right'
|
248
|
+
alwaysRender: influencer && influencerPosition === 'right',
|
249
|
+
element: wide ? Layer : undefined
|
249
250
|
}, children), /*#__PURE__*/React.createElement(Wrap, {
|
250
251
|
className: cx((_cx6 = {}, _defineProperty(_cx6, "".concat(bc, "__influencer"), true), _defineProperty(_cx6, "".concat(bc, "__influencer--wide"), influencerWidth === 'wide'), _cx6)),
|
251
252
|
neverRender: influencerPosition !== 'right'
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import _extends from "@babel/runtime/helpers/extends";
|
2
2
|
import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
|
3
|
-
var _excluded = ["backgroundColor", "className", "kind", "icon", "initials", "image", "imageDescription", "size", "theme", "tooltipText"
|
3
|
+
var _excluded = ["backgroundColor", "className", "kind", "icon", "initials", "image", "imageDescription", "size", "theme", "tooltipText"];
|
4
4
|
/**
|
5
5
|
* Copyright IBM Corp. 2021, 2021
|
6
6
|
*
|
@@ -28,10 +28,6 @@ var componentName = 'UserProfileImage';
|
|
28
28
|
|
29
29
|
// NOTE: the component SCSS is not imported here: it is rolled up separately.
|
30
30
|
|
31
|
-
// Default values for props
|
32
|
-
var defaults = {
|
33
|
-
tooltipAlignment: 'bottom'
|
34
|
-
};
|
35
31
|
/**
|
36
32
|
* This is a user profile image component which displays an image, or initials or icon for a user.
|
37
33
|
*/
|
@@ -46,8 +42,6 @@ export var UserProfileImage = /*#__PURE__*/React.forwardRef(function (_ref, ref)
|
|
46
42
|
size = _ref.size,
|
47
43
|
theme = _ref.theme,
|
48
44
|
tooltipText = _ref.tooltipText,
|
49
|
-
_ref$tooltipAlignment = _ref.tooltipAlignment,
|
50
|
-
tooltipAlignment = _ref$tooltipAlignment === void 0 ? defaults.tooltipAlignment : _ref$tooltipAlignment,
|
51
45
|
rest = _objectWithoutProperties(_ref, _excluded);
|
52
46
|
var icons = {
|
53
47
|
user: {
|
@@ -127,8 +121,7 @@ export var UserProfileImage = /*#__PURE__*/React.forwardRef(function (_ref, ref)
|
|
127
121
|
return FillItem && (tooltipText ? /*#__PURE__*/React.createElement(IconButton, {
|
128
122
|
label: tooltipText,
|
129
123
|
className: "".concat(blockClass, "__tooltip"),
|
130
|
-
kind: "ghost"
|
131
|
-
align: tooltipAlignment
|
124
|
+
kind: "ghost"
|
132
125
|
}, renderUserProfileImage()) : renderUserProfileImage());
|
133
126
|
});
|
134
127
|
|
@@ -176,10 +169,6 @@ UserProfileImage.propTypes = {
|
|
176
169
|
* Set theme in which the component will be rendered
|
177
170
|
*/
|
178
171
|
theme: PropTypes.oneOf(['light', 'dark']).isRequired,
|
179
|
-
/**
|
180
|
-
* Specify how the trigger should align with the tooltip
|
181
|
-
*/
|
182
|
-
tooltipAlignment: PropTypes.oneOf(['top', 'top-left', 'top-right', 'bottom', 'bottom-left', 'bottom-right', 'left', 'right']),
|
183
172
|
/**
|
184
173
|
* Pass in the display name to have it shown on hover
|
185
174
|
*/
|
@@ -30,20 +30,6 @@ export var useCreateComponentStepChange = function useCreateComponentStepChange(
|
|
30
30
|
componentBlockClass = _ref.componentBlockClass,
|
31
31
|
setCreateComponentActions = _ref.setCreateComponentActions,
|
32
32
|
setModalIsOpen = _ref.setModalIsOpen;
|
33
|
-
var continueToNextStep = useCallback(function () {
|
34
|
-
setIsSubmitting(false);
|
35
|
-
setCurrentStep(function (prev) {
|
36
|
-
// Find next included step to render
|
37
|
-
// There will always be a next step otherwise we will
|
38
|
-
// have reach the onSubmit
|
39
|
-
do {
|
40
|
-
var _stepData;
|
41
|
-
prev++;
|
42
|
-
} while (!((_stepData = stepData[prev - 1]) !== null && _stepData !== void 0 && _stepData.shouldIncludeStep));
|
43
|
-
return prev;
|
44
|
-
});
|
45
|
-
}, [setCurrentStep, setIsSubmitting, stepData]);
|
46
|
-
|
47
33
|
// useEffect to handle multi step logic
|
48
34
|
useEffect(function () {
|
49
35
|
var onUnmount = function onUnmount() {
|
@@ -171,9 +157,9 @@ export var useCreateComponentStepChange = function useCreateComponentStepChange(
|
|
171
157
|
// There will always be a previous step otherwise we will
|
172
158
|
// have disabled the back button since we have reached the first visible step
|
173
159
|
do {
|
174
|
-
var
|
160
|
+
var _stepData;
|
175
161
|
prev--;
|
176
|
-
} while (!((
|
162
|
+
} while (!((_stepData = stepData[prev - 1]) !== null && _stepData !== void 0 && _stepData.shouldIncludeStep));
|
177
163
|
return prev;
|
178
164
|
});
|
179
165
|
},
|
@@ -201,4 +187,17 @@ export var useCreateComponentStepChange = function useCreateComponentStepChange(
|
|
201
187
|
setCreateComponentActions(buttons);
|
202
188
|
}
|
203
189
|
}, [firstIncludedStep, lastIncludedStep, stepData, onNext, isSubmitDisabled, backButtonText, cancelButtonText, currentStep, onClose, nextButtonText, submitButtonText, onRequestSubmit, isSubmitting, shouldViewAll, componentBlockClass, componentName, continueToNextStep, setCurrentStep, setCreateComponentActions, setIsSubmitting, setShouldViewAll, setModalIsOpen]);
|
190
|
+
var continueToNextStep = useCallback(function () {
|
191
|
+
setIsSubmitting(false);
|
192
|
+
setCurrentStep(function (prev) {
|
193
|
+
// Find next included step to render
|
194
|
+
// There will always be a next step otherwise we will
|
195
|
+
// have reach the onSubmit
|
196
|
+
do {
|
197
|
+
var _stepData2;
|
198
|
+
prev++;
|
199
|
+
} while (!((_stepData2 = stepData[prev - 1]) !== null && _stepData2 !== void 0 && _stepData2.shouldIncludeStep));
|
200
|
+
return prev;
|
201
|
+
});
|
202
|
+
}, [setCurrentStep, setIsSubmitting, stepData]);
|
204
203
|
};
|
@@ -5,8 +5,14 @@ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
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.
|
7
7
|
*/
|
8
|
-
import { useRef, useState, useLayoutEffect
|
9
|
-
export var useResizeObserver = function useResizeObserver(ref
|
8
|
+
import { useRef, useState, useLayoutEffect } from 'react';
|
9
|
+
export var useResizeObserver = function useResizeObserver(ref) {
|
10
|
+
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {
|
11
|
+
callback: null,
|
12
|
+
throttleInterval: 0
|
13
|
+
};
|
14
|
+
var callback = options.callback,
|
15
|
+
throttleInterval = options.throttleInterval;
|
10
16
|
var _useState = useState(0),
|
11
17
|
_useState2 = _slicedToArray(_useState, 2),
|
12
18
|
width = _useState2[0],
|
@@ -15,14 +21,8 @@ export var useResizeObserver = function useResizeObserver(ref, callback) {
|
|
15
21
|
_useState4 = _slicedToArray(_useState3, 2),
|
16
22
|
height = _useState4[0],
|
17
23
|
setHeight = _useState4[1];
|
24
|
+
var throttleTimeout = useRef(null);
|
18
25
|
var entriesToHandle = useRef(null);
|
19
|
-
var cb = useRef(callback);
|
20
|
-
useEffect(function () {
|
21
|
-
// ref for callback removes it as dependency fro useLayoutEffect
|
22
|
-
// This significantly reduces repeated calls if a function is redefined on every
|
23
|
-
// render
|
24
|
-
cb.current = callback;
|
25
|
-
}, [callback]);
|
26
26
|
useLayoutEffect(function () {
|
27
27
|
if (!(ref !== null && ref !== void 0 && ref.current)) {
|
28
28
|
return;
|
@@ -34,15 +34,29 @@ export var useResizeObserver = function useResizeObserver(ref, callback) {
|
|
34
34
|
var entry = entriesToHandle.current[0];
|
35
35
|
setWidth(entry.contentRect.width);
|
36
36
|
setHeight(entry.contentRect.height);
|
37
|
-
|
37
|
+
throttleTimeout.current = null;
|
38
|
+
callback && callback(entry.contentRect);
|
38
39
|
};
|
39
40
|
var observer = new ResizeObserver(function (entries) {
|
40
41
|
// always update entriesToHandle
|
41
42
|
entriesToHandle.current = entries;
|
42
|
-
|
43
|
-
//
|
43
|
+
if (throttleInterval) {
|
44
|
+
// if a throttleInterval check for running timeout
|
45
|
+
if (throttleTimeout.current === null) {
|
46
|
+
// no live timeout set entries to handle and move on
|
47
|
+
|
48
|
+
// set up throttle
|
49
|
+
throttleTimeout.current = setTimeout(function () {
|
50
|
+
// do callbacks
|
51
|
+
doCallbacks();
|
52
|
+
// reset throttle
|
53
|
+
throttleTimeout.current = null;
|
54
|
+
}, throttleInterval);
|
55
|
+
}
|
56
|
+
} else {
|
57
|
+
// no throttle do callbacks every time
|
44
58
|
doCallbacks();
|
45
|
-
}
|
59
|
+
}
|
46
60
|
});
|
47
61
|
|
48
62
|
// observe all refs passed
|
@@ -52,7 +66,7 @@ export var useResizeObserver = function useResizeObserver(ref, callback) {
|
|
52
66
|
observer = null;
|
53
67
|
};
|
54
68
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
55
|
-
}, [ref]);
|
69
|
+
}, [ref, options]);
|
56
70
|
return {
|
57
71
|
width: width,
|
58
72
|
height: height
|
@@ -76,15 +76,7 @@ var defaults = {
|
|
76
76
|
'a-new-feature': false,
|
77
77
|
'default-portal-target-body': true,
|
78
78
|
'Datagrid.useInfiniteScroll': false,
|
79
|
-
'Datagrid.useInlineEdit': false
|
80
|
-
'Datagrid.useEditableCell': false,
|
81
|
-
'Datagrid.useExpandedRow': false,
|
82
|
-
'Datagrid.useNestedRows': false,
|
83
|
-
'Datagrid.useActionsColumn': false,
|
84
|
-
'Datagrid.useFiltering': false,
|
85
|
-
'Datagrid.useCustomizeColumns': false,
|
86
|
-
'ExampleComponent.secondaryIcon': false,
|
87
|
-
'ExampleComponent.useExample': false
|
79
|
+
'Datagrid.useInlineEdit': false
|
88
80
|
}
|
89
81
|
};
|
90
82
|
var warningMessageComponent = function warningMessageComponent(property) {
|
@@ -131,11 +123,6 @@ var component = new Proxy(_objectSpread({}, defaults.component), {
|
|
131
123
|
});
|
132
124
|
var feature = new Proxy(_objectSpread({}, defaults.feature), {
|
133
125
|
set: function set(target, property, value) {
|
134
|
-
// If we receive a feature flag that doesn't exist in our defaults we should not log
|
135
|
-
// a warning message and instead just return
|
136
|
-
if (!Object.getOwnPropertyDescriptor(defaults.feature, property)) {
|
137
|
-
return true;
|
138
|
-
}
|
139
126
|
if (target[property] !== true && !silent && value) {
|
140
127
|
// not already true, not silent, and now true
|
141
128
|
console.warn(warningMessageFeature(property));
|
@@ -103,6 +103,6 @@ StackblitzLink.propTypes = {
|
|
103
103
|
* @returns "dark" or "light"
|
104
104
|
*/
|
105
105
|
export var getSelectedCarbonTheme = function getSelectedCarbonTheme() {
|
106
|
-
var themeId = document.querySelector('
|
106
|
+
var themeId = document.querySelector('html').getAttribute('storybook-carbon-theme');
|
107
107
|
return themeId === 'g90' || themeId === 'g100' ? 'dark' : 'light';
|
108
108
|
};
|
@@ -81,7 +81,9 @@ var AboutModal = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref) {
|
|
81
81
|
}, [bodyRef]);
|
82
82
|
|
83
83
|
// Detect resize of the ModalBody to recalculate whether scrolling is enabled
|
84
|
-
(0, _useResizeObserver.useResizeObserver)(bodyRef,
|
84
|
+
(0, _useResizeObserver.useResizeObserver)(bodyRef, {
|
85
|
+
callback: handleResize
|
86
|
+
});
|
85
87
|
return /*#__PURE__*/_react.default.createElement(_react2.ComposedModal, (0, _extends2.default)({}, rest, {
|
86
88
|
className: (0, _classnames.default)(blockClass,
|
87
89
|
// Apply the block class to the main HTML element
|
@@ -192,8 +192,12 @@ var ActionBar = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref) {
|
|
192
192
|
};
|
193
193
|
|
194
194
|
// // resize of the items
|
195
|
-
(0, _useResizeObserver.useResizeObserver)(sizingRef,
|
196
|
-
|
195
|
+
(0, _useResizeObserver.useResizeObserver)(sizingRef, {
|
196
|
+
callback: handleResize
|
197
|
+
});
|
198
|
+
(0, _useResizeObserver.useResizeObserver)(localRef, {
|
199
|
+
callback: handleResize
|
200
|
+
});
|
197
201
|
return /*#__PURE__*/_react.default.createElement("div", (0, _extends2.default)({}, rest, {
|
198
202
|
className: (0, _classnames.default)([blockClass, className]),
|
199
203
|
ref: localRef
|
@@ -14,15 +14,16 @@ var _UserProfileImage = require("../UserProfileImage");
|
|
14
14
|
var componentName = 'AddSelectFormControl';
|
15
15
|
var blockClass = "".concat(_settings.pkg.prefix, "--add-select__selections");
|
16
16
|
var AddSelectFormControl = function AddSelectFormControl(_ref) {
|
17
|
+
var _controlProps;
|
17
18
|
var item = _ref.item,
|
18
19
|
onClick = _ref.onClick,
|
19
20
|
selected = _ref.selected,
|
20
21
|
type = _ref.type;
|
21
|
-
var controlProps = (
|
22
|
+
var controlProps = (_controlProps = {
|
22
23
|
onClick: onClick,
|
23
|
-
|
24
|
-
|
25
|
-
}, "aria-
|
24
|
+
id: item.id,
|
25
|
+
className: "".concat(blockClass, "-form-control-wrapper")
|
26
|
+
}, (0, _defineProperty2.default)(_controlProps, "aria-label", item.title), (0, _defineProperty2.default)(_controlProps, "size", 20), _controlProps);
|
26
27
|
var getCheckbox = function getCheckbox() {
|
27
28
|
if (selected) {
|
28
29
|
return /*#__PURE__*/_react.default.createElement(_icons.CheckboxCheckedFilled, controlProps);
|
@@ -74,8 +75,7 @@ var AddSelectFormControl = function AddSelectFormControl(_ref) {
|
|
74
75
|
}, getItemIcon(item)), /*#__PURE__*/_react.default.createElement("div", {
|
75
76
|
className: "".concat(blockClass, "-form-control-label-text")
|
76
77
|
}, /*#__PURE__*/_react.default.createElement("span", {
|
77
|
-
className: "".concat(blockClass, "-cell-title")
|
78
|
-
id: "control-label-".concat(item.id)
|
78
|
+
className: "".concat(blockClass, "-cell-title")
|
79
79
|
}, item.title), item.subtitle && /*#__PURE__*/_react.default.createElement("span", {
|
80
80
|
className: "".concat(blockClass, "-cell-subtitle")
|
81
81
|
}, item.subtitle))));
|
@@ -47,7 +47,6 @@ var AddSelectRow = function AddSelectRow(_ref) {
|
|
47
47
|
setMultiSelection = _ref.setMultiSelection,
|
48
48
|
setParentSelected = _ref.setParentSelected,
|
49
49
|
setSingleSelection = _ref.setSingleSelection,
|
50
|
-
setSize = _ref.setSize,
|
51
50
|
singleSelection = _ref.singleSelection;
|
52
51
|
var ref = (0, _react.useRef)(null);
|
53
52
|
(0, _react.useEffect)(function () {
|
@@ -130,20 +129,14 @@ var AddSelectRow = function AddSelectRow(_ref) {
|
|
130
129
|
var hasModifiers = (modifiers === null || modifiers === void 0 ? void 0 : (_modifiers$options = modifiers.options) === null || _modifiers$options === void 0 ? void 0 : _modifiers$options.length) > 0;
|
131
130
|
var tabIndex = getTabIndex();
|
132
131
|
var selected = isSelected();
|
133
|
-
var expanded = parentSelected === item.id;
|
134
132
|
return /*#__PURE__*/_react.default.createElement("div", {
|
135
|
-
className: (0, _classnames.default)("".concat(blockClass, "-row"), (_cx = {}, (0, _defineProperty2.default)(_cx, "".concat(blockClass, "-row--selected"), isSelected()), (0, _defineProperty2.default)(_cx, "".concat(blockClass, "-row-meta--selected"), isInMetaPanel(item.id)), (0, _defineProperty2.default)(_cx, "".concat(blockClass, "-row--active"),
|
133
|
+
className: (0, _classnames.default)("".concat(blockClass, "-row"), (_cx = {}, (0, _defineProperty2.default)(_cx, "".concat(blockClass, "-row--selected"), isSelected(item.id)), (0, _defineProperty2.default)(_cx, "".concat(blockClass, "-row-meta--selected"), isInMetaPanel(item.id)), (0, _defineProperty2.default)(_cx, "".concat(blockClass, "-row--active"), parentSelected === item.id), _cx)),
|
136
134
|
onKeyDown: onSelectKeyDown,
|
137
135
|
tabIndex: tabIndex,
|
138
136
|
ref: ref,
|
139
|
-
role: "row"
|
140
|
-
"aria-selected": selected,
|
141
|
-
"aria-posinset": index,
|
142
|
-
"aria-setsize": setSize,
|
143
|
-
"aria-expanded": expanded
|
137
|
+
role: "row"
|
144
138
|
}, /*#__PURE__*/_react.default.createElement("div", {
|
145
|
-
className: "".concat(blockClass, "-cell")
|
146
|
-
role: "gridcell"
|
139
|
+
className: "".concat(blockClass, "-cell")
|
147
140
|
}, /*#__PURE__*/_react.default.createElement("div", {
|
148
141
|
className: "".concat(blockClass, "-cell-wrapper")
|
149
142
|
}, multi ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_AddSelectFormControl.AddSelectFormControl, {
|
@@ -156,7 +149,7 @@ var AddSelectRow = function AddSelectRow(_ref) {
|
|
156
149
|
type: "inline",
|
157
150
|
items: modifiers.options,
|
158
151
|
label: modifiers.label,
|
159
|
-
disabled: !isSelected(),
|
152
|
+
disabled: !isSelected(item.id),
|
160
153
|
className: "".concat(blockClass, "-dropdown"),
|
161
154
|
initialSelectedItem: item[modifiers.id],
|
162
155
|
onChange: function onChange(_ref3) {
|
@@ -181,9 +174,7 @@ var AddSelectRow = function AddSelectRow(_ref) {
|
|
181
174
|
hasIconOnly: true,
|
182
175
|
onClick: onNavigateItem,
|
183
176
|
kind: "ghost",
|
184
|
-
size: "sm"
|
185
|
-
tabIndex: -1,
|
186
|
-
"aria-hidden": true
|
177
|
+
size: "sm"
|
187
178
|
}), item.meta && /*#__PURE__*/_react.default.createElement(_react2.Button, {
|
188
179
|
className: "".concat(blockClass, "-view-meta"),
|
189
180
|
renderIcon: function renderIcon(props) {
|
@@ -221,7 +212,6 @@ AddSelectRow.propTypes = {
|
|
221
212
|
setMultiSelection: _propTypes.default.func,
|
222
213
|
setParentSelected: _propTypes.default.func,
|
223
214
|
setSingleSelection: _propTypes.default.func,
|
224
|
-
setSize: _propTypes.default.number,
|
225
215
|
singleSelection: _propTypes.default.string
|
226
216
|
};
|
227
217
|
AddSelectRow.displayName = componentName;
|
@@ -167,9 +167,6 @@ var BreadcrumbWithOverflow = function BreadcrumbWithOverflow(_ref) {
|
|
167
167
|
setDisplayedBreadcrumbItems(newDisplayedBreadcrumbItems);
|
168
168
|
}, [breadcrumbs, displayCount]);
|
169
169
|
var checkFullyVisibleBreadcrumbItems = function checkFullyVisibleBreadcrumbItems() {
|
170
|
-
if (!breadcrumbItemWithOverflow.current) {
|
171
|
-
return;
|
172
|
-
}
|
173
170
|
var displayItemIndex = function displayItemIndex(itemCount, index) {
|
174
171
|
// In this data set the overflow measuring item is [0]
|
175
172
|
// so the first displayItem in the list is [1]
|
@@ -260,9 +257,13 @@ var BreadcrumbWithOverflow = function BreadcrumbWithOverflow(_ref) {
|
|
260
257
|
}
|
261
258
|
|
262
259
|
// container resize
|
263
|
-
(0, _useResizeObserver.useResizeObserver)(sizingContainerRef,
|
260
|
+
(0, _useResizeObserver.useResizeObserver)(sizingContainerRef, {
|
261
|
+
callback: handleResize
|
262
|
+
});
|
264
263
|
// item resize
|
265
|
-
(0, _useResizeObserver.useResizeObserver)(breadcrumbItemWithOverflow,
|
264
|
+
(0, _useResizeObserver.useResizeObserver)(breadcrumbItemWithOverflow, {
|
265
|
+
callback: handleResize
|
266
|
+
});
|
266
267
|
return /*#__PURE__*/_react.default.createElement("div", {
|
267
268
|
className: (0, _classnames.default)(blockClass, className, (0, _defineProperty2.default)({}, "".concat(blockClass, "__with-items"), displayedBreadcrumbItems.length > 1)),
|
268
269
|
ref: breadcrumbItemWithOverflow
|