@carbon/ibm-products 2.1.1 → 2.1.2
Sign up to get free protection for your applications and to get access to all the features.
- package/css/index-full-carbon.css +24 -2
- package/css/index-full-carbon.css.map +1 -1
- package/css/index-full-carbon.min.css +2 -2
- package/css/index-full-carbon.min.css.map +1 -1
- package/css/index-without-carbon-released-only.css +6 -1
- 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 +24 -2
- package/css/index-without-carbon.css.map +1 -1
- package/css/index-without-carbon.min.css +2 -2
- package/css/index-without-carbon.min.css.map +1 -1
- package/css/index.css +17 -1
- package/css/index.css.map +1 -1
- package/css/index.min.css +2 -2
- package/css/index.min.css.map +1 -1
- package/es/components/BreadcrumbWithOverflow/BreadcrumbWithOverflow.js +3 -0
- package/es/components/DataSpreadsheet/DataSpreadsheet.js +3 -3
- package/es/components/Datagrid/Datagrid/DatagridContent.js +1 -1
- package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/TearsheetWrapper.js +1 -1
- package/es/components/Datagrid/Datagrid/addons/Filtering/FilterFlyout.js +5 -11
- package/es/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditCell/InlineEditCell.js +17 -17
- package/es/components/Datagrid/utils/DatagridActions.js +6 -14
- package/es/components/ImportModal/ImportModal.js +13 -6
- package/es/components/NotificationsPanel/preview-components/UnreadNotificationBell.js +2 -17
- package/es/components/PageHeader/PageHeaderUtils.js +2 -2
- package/es/components/Tearsheet/TearsheetShell.js +4 -5
- package/es/global/js/hooks/useCreateComponentStepChange.js +16 -15
- package/es/global/js/utils/story-helper.js +1 -1
- package/lib/components/BreadcrumbWithOverflow/BreadcrumbWithOverflow.js +3 -0
- package/lib/components/DataSpreadsheet/DataSpreadsheet.js +3 -3
- package/lib/components/Datagrid/Datagrid/DatagridContent.js +1 -1
- package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/TearsheetWrapper.js +1 -1
- package/lib/components/Datagrid/Datagrid/addons/Filtering/FilterFlyout.js +4 -10
- package/lib/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditCell/InlineEditCell.js +17 -17
- package/lib/components/Datagrid/utils/DatagridActions.js +5 -13
- package/lib/components/ImportModal/ImportModal.js +13 -6
- package/lib/components/NotificationsPanel/preview-components/UnreadNotificationBell.js +2 -17
- package/lib/components/PageHeader/PageHeaderUtils.js +2 -2
- package/lib/components/Tearsheet/TearsheetShell.js +4 -5
- package/lib/global/js/hooks/useCreateComponentStepChange.js +16 -15
- package/lib/global/js/utils/story-helper.js +1 -1
- package/package.json +4 -4
- package/scss/components/DataSpreadsheet/_storybook-styles.scss +6 -0
- package/scss/components/Datagrid/_storybook-styles.scss +7 -1
- package/scss/components/Datagrid/styles/addons/_FilterFlyout.scss +7 -0
- package/scss/components/Datagrid/styles/addons/_FilterPanel.scss +4 -0
- package/scss/components/HTTPErrors/_storybook-styles.scss +16 -2
- package/scss/components/NotificationsPanel/_storybook-styles.scss +0 -4
- package/scss/components/PageHeader/_storybook-styles.scss +42 -14
- package/scss/components/Tearsheet/_tearsheet.scss +7 -1
- package/scss/components/WebTerminal/_storybook-styles.scss +16 -1
- package/scss/global/styles/_display-box.scss +1 -0
@@ -179,6 +179,13 @@ 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
|
+
};
|
182
189
|
var numberOfFiles = files.length;
|
183
190
|
var numberOfValidFiles = files.filter(function (f) {
|
184
191
|
return !f.invalid;
|
@@ -190,13 +197,13 @@ export var ImportModal = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
190
197
|
var blockClass = "".concat(pkg.prefix, "--import-modal");
|
191
198
|
return /*#__PURE__*/React.createElement(ComposedModal, _extends({}, rest, _objectSpread({
|
192
199
|
open: open,
|
193
|
-
ref: ref
|
194
|
-
onClose: onClose
|
200
|
+
ref: ref
|
195
201
|
}, getDevtoolsProps(componentName)), {
|
196
202
|
"aria-label": title,
|
197
203
|
className: cx(blockClass, className),
|
198
204
|
size: "sm",
|
199
|
-
preventCloseOnClickOutside: true
|
205
|
+
preventCloseOnClickOutside: true,
|
206
|
+
onClose: onCloseHandler
|
200
207
|
}), /*#__PURE__*/React.createElement(ModalHeader, {
|
201
208
|
className: "".concat(blockClass, "__header"),
|
202
209
|
title: title
|
@@ -259,7 +266,7 @@ export var ImportModal = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
259
266
|
}, /*#__PURE__*/React.createElement(Button, {
|
260
267
|
type: "button",
|
261
268
|
kind: "secondary",
|
262
|
-
onClick:
|
269
|
+
onClick: onCloseHandler
|
263
270
|
}, secondaryButtonText), /*#__PURE__*/React.createElement(Button, {
|
264
271
|
type: "submit",
|
265
272
|
kind: "primary",
|
@@ -362,11 +369,11 @@ ImportModal.propTypes = {
|
|
362
369
|
/**
|
363
370
|
* Specify a handler for "submitting" modal. Access the imported file via `file => {}`
|
364
371
|
*/
|
365
|
-
onRequestSubmit: PropTypes.func,
|
372
|
+
onRequestSubmit: PropTypes.func.isRequired,
|
366
373
|
/**
|
367
374
|
* Specify whether the Modal is currently open
|
368
375
|
*/
|
369
|
-
open: PropTypes.bool,
|
376
|
+
open: PropTypes.bool.isRequired,
|
370
377
|
/**
|
371
378
|
* Specify the text for the primary button
|
372
379
|
*/
|
@@ -15,34 +15,19 @@ 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", {
|
24
18
|
id: "Group",
|
25
19
|
transform: "translate(-1.000000, 0.000000)"
|
26
|
-
}, /*#__PURE__*/React.createElement("g", {
|
27
|
-
id: "notification"
|
28
20
|
}, /*#__PURE__*/React.createElement("path", {
|
29
21
|
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",
|
30
22
|
id: "Shape",
|
31
|
-
fill: "#FFFFFF",
|
32
23
|
fillRule: "nonzero"
|
33
|
-
}), /*#__PURE__*/React.createElement("
|
34
|
-
id: "_Transparent_Rectangle_",
|
35
|
-
x: "0",
|
36
|
-
y: "0",
|
37
|
-
width: "20",
|
38
|
-
height: "20"
|
39
|
-
})), /*#__PURE__*/React.createElement("circle", {
|
24
|
+
}), /*#__PURE__*/React.createElement("circle", {
|
40
25
|
id: "Oval",
|
41
26
|
stroke: "#161616",
|
42
27
|
fill: "#DA1E28",
|
43
28
|
cx: "15",
|
44
29
|
cy: "4.375",
|
45
30
|
r: "2.5"
|
46
|
-
})))
|
31
|
+
})));
|
47
32
|
};
|
48
33
|
export { UnreadNotificationBell };
|
@@ -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.getBoundingClientRect().top : 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 = (offsetTopMeasuringRef.current ? offsetTopMeasuringRef.current.getBoundingClientRect().top : 0) + scrollableContainerTop;
|
73
73
|
|
74
74
|
/* istanbul ignore next */
|
75
75
|
update.breadcrumbRowHeight = breadcrumbRowEl ? breadcrumbRowEl.clientHeight : 0;
|
@@ -216,7 +216,8 @@ 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")
|
219
|
+
className: "".concat(bc, "__header-content"),
|
220
|
+
element: wide ? Layer : undefined
|
220
221
|
}, /*#__PURE__*/React.createElement(Wrap, {
|
221
222
|
className: "".concat(bc, "__header-fields")
|
222
223
|
}, /*#__PURE__*/React.createElement(Wrap, {
|
@@ -241,12 +242,10 @@ export var TearsheetShell = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
241
242
|
className: "".concat(bc, "__right")
|
242
243
|
}, /*#__PURE__*/React.createElement(Wrap, {
|
243
244
|
className: "".concat(bc, "__main"),
|
244
|
-
alwaysRender: includeActions
|
245
|
-
element: wide ? Layer : undefined
|
245
|
+
alwaysRender: includeActions
|
246
246
|
}, /*#__PURE__*/React.createElement(Wrap, {
|
247
247
|
className: "".concat(bc, "__content"),
|
248
|
-
alwaysRender: influencer && influencerPosition === 'right'
|
249
|
-
element: wide ? Layer : undefined
|
248
|
+
alwaysRender: influencer && influencerPosition === 'right'
|
250
249
|
}, children), /*#__PURE__*/React.createElement(Wrap, {
|
251
250
|
className: cx((_cx6 = {}, _defineProperty(_cx6, "".concat(bc, "__influencer"), true), _defineProperty(_cx6, "".concat(bc, "__influencer--wide"), influencerWidth === 'wide'), _cx6)),
|
252
251
|
neverRender: influencerPosition !== 'right'
|
@@ -30,6 +30,20 @@ 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
|
+
|
33
47
|
// useEffect to handle multi step logic
|
34
48
|
useEffect(function () {
|
35
49
|
var onUnmount = function onUnmount() {
|
@@ -157,9 +171,9 @@ export var useCreateComponentStepChange = function useCreateComponentStepChange(
|
|
157
171
|
// There will always be a previous step otherwise we will
|
158
172
|
// have disabled the back button since we have reached the first visible step
|
159
173
|
do {
|
160
|
-
var
|
174
|
+
var _stepData2;
|
161
175
|
prev--;
|
162
|
-
} while (!((
|
176
|
+
} while (!((_stepData2 = stepData[prev - 1]) !== null && _stepData2 !== void 0 && _stepData2.shouldIncludeStep));
|
163
177
|
return prev;
|
164
178
|
});
|
165
179
|
},
|
@@ -187,17 +201,4 @@ export var useCreateComponentStepChange = function useCreateComponentStepChange(
|
|
187
201
|
setCreateComponentActions(buttons);
|
188
202
|
}
|
189
203
|
}, [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]);
|
203
204
|
};
|
@@ -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('[storybook-carbon-theme]').getAttribute('storybook-carbon-theme');
|
107
107
|
return themeId === 'g90' || themeId === 'g100' ? 'dark' : 'light';
|
108
108
|
};
|
@@ -167,6 +167,9 @@ 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
|
+
}
|
170
173
|
var displayItemIndex = function displayItemIndex(itemCount, index) {
|
171
174
|
// In this data set the overflow measuring item is [0]
|
172
175
|
// so the first displayItem in the list is [1]
|
@@ -674,9 +674,6 @@ var DataSpreadsheet = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref
|
|
674
674
|
defaultColumn: defaultColumn,
|
675
675
|
cellEditorValue: cellEditorValue
|
676
676
|
});
|
677
|
-
var handleActiveCellMouseEnter = (0, _react.useCallback)(function () {
|
678
|
-
handleActiveCellMouseEnterCallback(selectionAreas, clickAndHoldActive);
|
679
|
-
}, [clickAndHoldActive, selectionAreas, handleActiveCellMouseEnterCallback]);
|
680
677
|
|
681
678
|
// Only update if there are cell selection areas
|
682
679
|
// Find point object that matches currentMatcher and remove the second point
|
@@ -709,6 +706,9 @@ var DataSpreadsheet = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref
|
|
709
706
|
});
|
710
707
|
}
|
711
708
|
}, [spreadsheetRef, currentMatcher]);
|
709
|
+
var handleActiveCellMouseEnter = (0, _react.useCallback)(function () {
|
710
|
+
handleActiveCellMouseEnterCallback(selectionAreas, clickAndHoldActive);
|
711
|
+
}, [clickAndHoldActive, selectionAreas, handleActiveCellMouseEnterCallback]);
|
712
712
|
return /*#__PURE__*/_react.default.createElement("div", (0, _extends2.default)({}, rest, getTableProps(), (0, _devtools.getDevtoolsProps)(componentName), {
|
713
713
|
className: (0, _classnames.default)(blockClass, className, "".concat(blockClass, "--interactive-cell-element"), (_cx = {}, (0, _defineProperty2.default)(_cx, "".concat(blockClass, "__container-has-focus"), containerHasFocus), (0, _defineProperty2.default)(_cx, "".concat(blockClass, "__").concat(theme), theme === 'dark'), _cx)),
|
714
714
|
ref: spreadsheetRef,
|
@@ -92,7 +92,7 @@ var DatagridContent = function DatagridContent(_ref) {
|
|
92
92
|
return /*#__PURE__*/_react.default.createElement(_react2.Table, (0, _extends2.default)({}, getTableProps(), {
|
93
93
|
className: (0, _classnames.default)(withVirtualScroll ? '' : "".concat(blockClass, "__table-simple"), "".concat(blockClass, "__vertical-align-").concat(verticalAlign), (0, _defineProperty2.default)({}, "".concat(blockClass, "__variable-row-height"), variableRowHeight), (0, _defineProperty2.default)({}, "".concat(blockClass, "__table-with-inline-edit"), withInlineEdit), (0, _defineProperty2.default)({}, "".concat(blockClass, "__table-grid-active"), gridActive), (_getTableProps = getTableProps()) === null || _getTableProps === void 0 ? void 0 : _getTableProps.className),
|
94
94
|
role: withInlineEdit && 'grid',
|
95
|
-
tabIndex: withInlineEdit
|
95
|
+
tabIndex: withInlineEdit ? 0 : -1,
|
96
96
|
onKeyDown: withInlineEdit ? function (event) {
|
97
97
|
return (0, _handleGridKeyPress.handleGridKeyPress)({
|
98
98
|
event: event,
|
@@ -29,7 +29,7 @@ var TearsheetWrapper = function TearsheetWrapper(_ref) {
|
|
29
29
|
rest = (0, _objectWithoutProperties2.default)(_instance$customizeCo, _excluded);
|
30
30
|
return /*#__PURE__*/React.createElement(_CustomizeColumnsTearsheet.default, (0, _extends2.default)({}, rest, labels, {
|
31
31
|
isOpen: isTearsheetOpen,
|
32
|
-
isTableSortable: instance === null || instance === void 0 ? void 0 : instance.isTableSortable,
|
32
|
+
isTableSortable: (instance === null || instance === void 0 ? void 0 : instance.isTableSortable) || false,
|
33
33
|
setIsTearsheetOpen: setIsTearsheetOpen,
|
34
34
|
columnDefinitions: instance.allColumns,
|
35
35
|
originalColumnDefinitions: instance.columns,
|
@@ -163,20 +163,14 @@ var FilterFlyout = function FilterFlyout(_ref) {
|
|
163
163
|
}, [reactTableFiltersState, lastAppliedFilters]);
|
164
164
|
return /*#__PURE__*/_react2.default.createElement("div", {
|
165
165
|
className: "".concat(componentClass, "__container")
|
166
|
-
}, /*#__PURE__*/_react2.default.createElement(_react.
|
166
|
+
}, /*#__PURE__*/_react2.default.createElement(_react.IconButton, {
|
167
|
+
label: flyoutIconDescription,
|
167
168
|
kind: "ghost",
|
168
|
-
|
169
|
-
tooltipPosition: "bottom",
|
170
|
-
renderIcon: function renderIcon() {
|
171
|
-
return /*#__PURE__*/_react2.default.createElement(_icons.Filter, {
|
172
|
-
size: 16
|
173
|
-
});
|
174
|
-
},
|
175
|
-
iconDescription: flyoutIconDescription,
|
169
|
+
align: "bottom",
|
176
170
|
onClick: open ? closeFlyout : openFlyout,
|
177
171
|
className: (0, _classnames.default)("".concat(componentClass, "__trigger"), (0, _defineProperty2.default)({}, "".concat(componentClass, "__trigger--open"), open)),
|
178
172
|
disabled: data.length === 0
|
179
|
-
}), /*#__PURE__*/_react2.default.createElement("div", {
|
173
|
+
}, /*#__PURE__*/_react2.default.createElement(_icons.Filter, null)), /*#__PURE__*/_react2.default.createElement("div", {
|
180
174
|
ref: filterFlyoutRef,
|
181
175
|
className: (0, _classnames.default)(componentClass, (_cx2 = {}, (0, _defineProperty2.default)(_cx2, "".concat(componentClass, "--open"), open), (0, _defineProperty2.default)(_cx2, "".concat(componentClass, "--batch"), showActionSet), (0, _defineProperty2.default)(_cx2, "".concat(componentClass, "--instant"), !showActionSet), _cx2))
|
182
176
|
}, /*#__PURE__*/_react2.default.createElement("div", {
|
@@ -80,6 +80,23 @@ var InlineEditCell = function InlineEditCell(_ref) {
|
|
80
80
|
var dropdownRef = (0, _react.useRef)();
|
81
81
|
var datePickerRef = (0, _react.useRef)();
|
82
82
|
var outerButtonElement = (0, _react.useRef)();
|
83
|
+
var rowSize = instance.rowSize,
|
84
|
+
onDataUpdate = instance.onDataUpdate;
|
85
|
+
|
86
|
+
// Saves the new cell data, onDataUpdate is a required function to be
|
87
|
+
// passed to useDatagrid when using useInlineEdit
|
88
|
+
var saveCellData = (0, _react.useCallback)(function (newValue) {
|
89
|
+
var columnId = cell.column.id;
|
90
|
+
var rowIndex = cell.row.index;
|
91
|
+
onDataUpdate(function (prev) {
|
92
|
+
return prev.map(function (row, index) {
|
93
|
+
if (index === rowIndex) {
|
94
|
+
return _objectSpread(_objectSpread({}, prev[rowIndex]), {}, (0, _defineProperty2.default)({}, columnId, newValue));
|
95
|
+
}
|
96
|
+
return row;
|
97
|
+
});
|
98
|
+
});
|
99
|
+
}, [cell, onDataUpdate]);
|
83
100
|
(0, _react.useEffect)(function () {
|
84
101
|
setInitialValue(value);
|
85
102
|
var columnId = cell.column.id;
|
@@ -153,8 +170,6 @@ var InlineEditCell = function InlineEditCell(_ref) {
|
|
153
170
|
}, 1);
|
154
171
|
}
|
155
172
|
};
|
156
|
-
var rowSize = instance.rowSize,
|
157
|
-
onDataUpdate = instance.onDataUpdate;
|
158
173
|
|
159
174
|
// Auto focus text input when entering edit mode
|
160
175
|
(0, _react.useEffect)(function () {
|
@@ -172,21 +187,6 @@ var InlineEditCell = function InlineEditCell(_ref) {
|
|
172
187
|
(0, _react.useEffect)(function () {
|
173
188
|
setCellValue(value);
|
174
189
|
}, [value]);
|
175
|
-
|
176
|
-
// Saves the new cell data, onDataUpdate is a required function to be
|
177
|
-
// passed to useDatagrid when using useInlineEdit
|
178
|
-
var saveCellData = (0, _react.useCallback)(function (newValue) {
|
179
|
-
var columnId = cell.column.id;
|
180
|
-
var rowIndex = cell.row.index;
|
181
|
-
onDataUpdate(function (prev) {
|
182
|
-
return prev.map(function (row, index) {
|
183
|
-
if (index === rowIndex) {
|
184
|
-
return _objectSpread(_objectSpread({}, prev[rowIndex]), {}, (0, _defineProperty2.default)({}, columnId, newValue));
|
185
|
-
}
|
186
|
-
return row;
|
187
|
-
});
|
188
|
-
});
|
189
|
-
}, [cell, onDataUpdate]);
|
190
190
|
var sendFocusBackToGrid = function sendFocusBackToGrid() {
|
191
191
|
// Allows the onKeyDown listener to go back to the entire grid area
|
192
192
|
var inlineEditArea = document.querySelector("#".concat(instance.tableId, " .").concat(blockClass, "__table-with-inline-edit"));
|
@@ -7,7 +7,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
7
7
|
});
|
8
8
|
exports.DatagridActions = void 0;
|
9
9
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
10
|
-
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
11
10
|
var _react = _interopRequireWildcard(require("react"));
|
12
11
|
var _react2 = require("@carbon/react");
|
13
12
|
var _icons = require("@carbon/react/icons");
|
@@ -55,25 +54,18 @@ var DatagridActions = function DatagridActions(datagridState) {
|
|
55
54
|
return (filterProps === null || filterProps === void 0 ? void 0 : filterProps.variation) === 'flyout' && /*#__PURE__*/_react.default.createElement(FilterFlyout, getFilterFlyoutProps());
|
56
55
|
};
|
57
56
|
var renderFilterPanelButton = function renderFilterPanelButton() {
|
58
|
-
return (filterProps === null || filterProps === void 0 ? void 0 : filterProps.variation) === 'panel' && /*#__PURE__*/_react.default.createElement(_react2.
|
57
|
+
return (filterProps === null || filterProps === void 0 ? void 0 : filterProps.variation) === 'panel' && /*#__PURE__*/_react.default.createElement(_react2.IconButton, {
|
59
58
|
kind: "ghost",
|
60
|
-
|
61
|
-
|
62
|
-
renderIcon: function renderIcon(props) {
|
63
|
-
return /*#__PURE__*/_react.default.createElement(_icons.Filter, (0, _extends2.default)({
|
64
|
-
size: 16
|
65
|
-
}, props));
|
66
|
-
},
|
67
|
-
iconDescription: filterProps.panelIconDescription,
|
59
|
+
align: "bottom",
|
60
|
+
label: filterProps.panelIconDescription,
|
68
61
|
className: "".concat(blockClass, "-filter-panel-open-button"),
|
69
62
|
onClick: function onClick() {
|
70
63
|
return setPanelOpen(function (open) {
|
71
64
|
return !open;
|
72
65
|
});
|
73
66
|
},
|
74
|
-
disabled: data.length === 0
|
75
|
-
|
76
|
-
});
|
67
|
+
disabled: data.length === 0
|
68
|
+
}, /*#__PURE__*/_react.default.createElement(_icons.Filter, null));
|
77
69
|
};
|
78
70
|
var _useState = (0, _react.useState)(false),
|
79
71
|
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
@@ -187,6 +187,13 @@ var ImportModal = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
|
|
187
187
|
var inputHandler = function inputHandler(evt) {
|
188
188
|
setImportUrl(evt.target.value);
|
189
189
|
};
|
190
|
+
var onCloseHandler = function onCloseHandler() {
|
191
|
+
setFiles([]);
|
192
|
+
setImportUrl('');
|
193
|
+
if (onClose) {
|
194
|
+
onClose();
|
195
|
+
}
|
196
|
+
};
|
190
197
|
var numberOfFiles = files.length;
|
191
198
|
var numberOfValidFiles = files.filter(function (f) {
|
192
199
|
return !f.invalid;
|
@@ -198,13 +205,13 @@ var ImportModal = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
|
|
198
205
|
var blockClass = "".concat(_settings.pkg.prefix, "--import-modal");
|
199
206
|
return /*#__PURE__*/_react.default.createElement(_react2.ComposedModal, (0, _extends2.default)({}, rest, _objectSpread({
|
200
207
|
open: open,
|
201
|
-
ref: ref
|
202
|
-
onClose: onClose
|
208
|
+
ref: ref
|
203
209
|
}, (0, _devtools.getDevtoolsProps)(componentName)), {
|
204
210
|
"aria-label": title,
|
205
211
|
className: (0, _classnames.default)(blockClass, className),
|
206
212
|
size: "sm",
|
207
|
-
preventCloseOnClickOutside: true
|
213
|
+
preventCloseOnClickOutside: true,
|
214
|
+
onClose: onCloseHandler
|
208
215
|
}), /*#__PURE__*/_react.default.createElement(_react2.ModalHeader, {
|
209
216
|
className: "".concat(blockClass, "__header"),
|
210
217
|
title: title
|
@@ -267,7 +274,7 @@ var ImportModal = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
|
|
267
274
|
}, /*#__PURE__*/_react.default.createElement(_react2.Button, {
|
268
275
|
type: "button",
|
269
276
|
kind: "secondary",
|
270
|
-
onClick:
|
277
|
+
onClick: onCloseHandler
|
271
278
|
}, secondaryButtonText), /*#__PURE__*/_react.default.createElement(_react2.Button, {
|
272
279
|
type: "submit",
|
273
280
|
kind: "primary",
|
@@ -371,11 +378,11 @@ ImportModal.propTypes = {
|
|
371
378
|
/**
|
372
379
|
* Specify a handler for "submitting" modal. Access the imported file via `file => {}`
|
373
380
|
*/
|
374
|
-
onRequestSubmit: _propTypes.default.func,
|
381
|
+
onRequestSubmit: _propTypes.default.func.isRequired,
|
375
382
|
/**
|
376
383
|
* Specify whether the Modal is currently open
|
377
384
|
*/
|
378
|
-
open: _propTypes.default.bool,
|
385
|
+
open: _propTypes.default.bool.isRequired,
|
379
386
|
/**
|
380
387
|
* Specify the text for the primary button
|
381
388
|
*/
|
@@ -22,34 +22,19 @@ var UnreadNotificationBell = function UnreadNotificationBell() {
|
|
22
22
|
xmlns: "http://www.w3.org/2000/svg",
|
23
23
|
xmlnsXlink: "http://www.w3.org/1999/xlink"
|
24
24
|
}, /*#__PURE__*/_react.default.createElement("title", null, "Unread notification bell"), /*#__PURE__*/_react.default.createElement("g", {
|
25
|
-
id: "Page-1",
|
26
|
-
stroke: "none",
|
27
|
-
strokeWidth: "1",
|
28
|
-
fill: "none",
|
29
|
-
fillRule: "evenodd"
|
30
|
-
}, /*#__PURE__*/_react.default.createElement("g", {
|
31
25
|
id: "Group",
|
32
26
|
transform: "translate(-1.000000, 0.000000)"
|
33
|
-
}, /*#__PURE__*/_react.default.createElement("g", {
|
34
|
-
id: "notification"
|
35
27
|
}, /*#__PURE__*/_react.default.createElement("path", {
|
36
28
|
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",
|
37
29
|
id: "Shape",
|
38
|
-
fill: "#FFFFFF",
|
39
30
|
fillRule: "nonzero"
|
40
|
-
}), /*#__PURE__*/_react.default.createElement("
|
41
|
-
id: "_Transparent_Rectangle_",
|
42
|
-
x: "0",
|
43
|
-
y: "0",
|
44
|
-
width: "20",
|
45
|
-
height: "20"
|
46
|
-
})), /*#__PURE__*/_react.default.createElement("circle", {
|
31
|
+
}), /*#__PURE__*/_react.default.createElement("circle", {
|
47
32
|
id: "Oval",
|
48
33
|
stroke: "#161616",
|
49
34
|
fill: "#DA1E28",
|
50
35
|
cx: "15",
|
51
36
|
cy: "4.375",
|
52
37
|
r: "2.5"
|
53
|
-
})))
|
38
|
+
})));
|
54
39
|
};
|
55
40
|
exports.UnreadNotificationBell = UnreadNotificationBell;
|
@@ -71,11 +71,11 @@ var utilCheckUpdateVerticalSpace = function utilCheckUpdateVerticalSpace(headerR
|
|
71
71
|
var scrollableContainer = (0, _scrollableAncestor.scrollableAncestor)(headerRef.current);
|
72
72
|
|
73
73
|
/* istanbul ignore next */
|
74
|
-
var scrollableContainerTop = scrollableContainer ? scrollableContainer.scrollTop - scrollableContainer.
|
74
|
+
var scrollableContainerTop = scrollableContainer ? scrollableContainer.scrollTop - scrollableContainer.getBoundingClientRect().top : 0;
|
75
75
|
|
76
76
|
// The header offset calculation is either going to work out at 0 if we have no gap between scrolling container
|
77
77
|
// top and the measuring ref top, or the difference between. It does not change on scroll or resize.
|
78
|
-
update.headerOffset =
|
78
|
+
update.headerOffset = (offsetTopMeasuringRef.current ? offsetTopMeasuringRef.current.getBoundingClientRect().top : 0) + scrollableContainerTop;
|
79
79
|
|
80
80
|
/* istanbul ignore next */
|
81
81
|
update.breadcrumbRowHeight = breadcrumbRowEl ? breadcrumbRowEl.clientHeight : 0;
|
@@ -225,7 +225,8 @@ var TearsheetShell = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref)
|
|
225
225
|
closeModal: onClose,
|
226
226
|
iconDescription: closeIconDescription
|
227
227
|
}, /*#__PURE__*/_react.default.createElement(_Wrap.Wrap, {
|
228
|
-
className: "".concat(bc, "__header-content")
|
228
|
+
className: "".concat(bc, "__header-content"),
|
229
|
+
element: wide ? _react2.Layer : undefined
|
229
230
|
}, /*#__PURE__*/_react.default.createElement(_Wrap.Wrap, {
|
230
231
|
className: "".concat(bc, "__header-fields")
|
231
232
|
}, /*#__PURE__*/_react.default.createElement(_Wrap.Wrap, {
|
@@ -250,12 +251,10 @@ var TearsheetShell = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref)
|
|
250
251
|
className: "".concat(bc, "__right")
|
251
252
|
}, /*#__PURE__*/_react.default.createElement(_Wrap.Wrap, {
|
252
253
|
className: "".concat(bc, "__main"),
|
253
|
-
alwaysRender: includeActions
|
254
|
-
element: wide ? _react2.Layer : undefined
|
254
|
+
alwaysRender: includeActions
|
255
255
|
}, /*#__PURE__*/_react.default.createElement(_Wrap.Wrap, {
|
256
256
|
className: "".concat(bc, "__content"),
|
257
|
-
alwaysRender: influencer && influencerPosition === 'right'
|
258
|
-
element: wide ? _react2.Layer : undefined
|
257
|
+
alwaysRender: influencer && influencerPosition === 'right'
|
259
258
|
}, children), /*#__PURE__*/_react.default.createElement(_Wrap.Wrap, {
|
260
259
|
className: (0, _classnames.default)((_cx6 = {}, (0, _defineProperty2.default)(_cx6, "".concat(bc, "__influencer"), true), (0, _defineProperty2.default)(_cx6, "".concat(bc, "__influencer--wide"), influencerWidth === 'wide'), _cx6)),
|
261
260
|
neverRender: influencerPosition !== 'right'
|
@@ -37,6 +37,20 @@ var useCreateComponentStepChange = function useCreateComponentStepChange(_ref) {
|
|
37
37
|
componentBlockClass = _ref.componentBlockClass,
|
38
38
|
setCreateComponentActions = _ref.setCreateComponentActions,
|
39
39
|
setModalIsOpen = _ref.setModalIsOpen;
|
40
|
+
var continueToNextStep = (0, _react.useCallback)(function () {
|
41
|
+
setIsSubmitting(false);
|
42
|
+
setCurrentStep(function (prev) {
|
43
|
+
// Find next included step to render
|
44
|
+
// There will always be a next step otherwise we will
|
45
|
+
// have reach the onSubmit
|
46
|
+
do {
|
47
|
+
var _stepData;
|
48
|
+
prev++;
|
49
|
+
} while (!((_stepData = stepData[prev - 1]) !== null && _stepData !== void 0 && _stepData.shouldIncludeStep));
|
50
|
+
return prev;
|
51
|
+
});
|
52
|
+
}, [setCurrentStep, setIsSubmitting, stepData]);
|
53
|
+
|
40
54
|
// useEffect to handle multi step logic
|
41
55
|
(0, _react.useEffect)(function () {
|
42
56
|
var onUnmount = function onUnmount() {
|
@@ -164,9 +178,9 @@ var useCreateComponentStepChange = function useCreateComponentStepChange(_ref) {
|
|
164
178
|
// There will always be a previous step otherwise we will
|
165
179
|
// have disabled the back button since we have reached the first visible step
|
166
180
|
do {
|
167
|
-
var
|
181
|
+
var _stepData2;
|
168
182
|
prev--;
|
169
|
-
} while (!((
|
183
|
+
} while (!((_stepData2 = stepData[prev - 1]) !== null && _stepData2 !== void 0 && _stepData2.shouldIncludeStep));
|
170
184
|
return prev;
|
171
185
|
});
|
172
186
|
},
|
@@ -194,18 +208,5 @@ var useCreateComponentStepChange = function useCreateComponentStepChange(_ref) {
|
|
194
208
|
setCreateComponentActions(buttons);
|
195
209
|
}
|
196
210
|
}, [firstIncludedStep, lastIncludedStep, stepData, onNext, isSubmitDisabled, backButtonText, cancelButtonText, currentStep, onClose, nextButtonText, submitButtonText, onRequestSubmit, isSubmitting, shouldViewAll, componentBlockClass, componentName, continueToNextStep, setCurrentStep, setCreateComponentActions, setIsSubmitting, setShouldViewAll, setModalIsOpen]);
|
197
|
-
var continueToNextStep = (0, _react.useCallback)(function () {
|
198
|
-
setIsSubmitting(false);
|
199
|
-
setCurrentStep(function (prev) {
|
200
|
-
// Find next included step to render
|
201
|
-
// There will always be a next step otherwise we will
|
202
|
-
// have reach the onSubmit
|
203
|
-
do {
|
204
|
-
var _stepData2;
|
205
|
-
prev++;
|
206
|
-
} while (!((_stepData2 = stepData[prev - 1]) !== null && _stepData2 !== void 0 && _stepData2.shouldIncludeStep));
|
207
|
-
return prev;
|
208
|
-
});
|
209
|
-
}, [setCurrentStep, setIsSubmitting, stepData]);
|
210
211
|
};
|
211
212
|
exports.useCreateComponentStepChange = useCreateComponentStepChange;
|
@@ -114,7 +114,7 @@ StackblitzLink.propTypes = {
|
|
114
114
|
* @returns "dark" or "light"
|
115
115
|
*/
|
116
116
|
var getSelectedCarbonTheme = function getSelectedCarbonTheme() {
|
117
|
-
var themeId = document.querySelector('
|
117
|
+
var themeId = document.querySelector('[storybook-carbon-theme]').getAttribute('storybook-carbon-theme');
|
118
118
|
return themeId === 'g90' || themeId === 'g100' ? 'dark' : 'light';
|
119
119
|
};
|
120
120
|
exports.getSelectedCarbonTheme = getSelectedCarbonTheme;
|
package/package.json
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
{
|
2
2
|
"name": "@carbon/ibm-products",
|
3
3
|
"description": "Carbon for IBM Products",
|
4
|
-
"version": "2.1.
|
4
|
+
"version": "2.1.2",
|
5
5
|
"license": "Apache-2.0",
|
6
6
|
"main": "lib/index.js",
|
7
7
|
"module": "es/index.js",
|
@@ -56,7 +56,7 @@
|
|
56
56
|
"devDependencies": {
|
57
57
|
"@babel/cli": "^7.21.5",
|
58
58
|
"@babel/core": "^7.22.1",
|
59
|
-
"babel-preset-ibm-cloud-cognitive": "^0.14.
|
59
|
+
"babel-preset-ibm-cloud-cognitive": "^0.14.36",
|
60
60
|
"chalk": "^4.1.2",
|
61
61
|
"change-case": "^4.1.2",
|
62
62
|
"copyfiles": "^2.4.1",
|
@@ -64,7 +64,7 @@
|
|
64
64
|
"fs-extra": "^11.1.1",
|
65
65
|
"glob": "^10.2.6",
|
66
66
|
"jest": "^29.5.0",
|
67
|
-
"jest-config-ibm-cloud-cognitive": "^0.24.
|
67
|
+
"jest-config-ibm-cloud-cognitive": "^0.24.23",
|
68
68
|
"jest-environment-jsdom": "^29.5.0",
|
69
69
|
"namor": "^1.1.2",
|
70
70
|
"npm-check-updates": "^16.10.12",
|
@@ -94,5 +94,5 @@
|
|
94
94
|
"react": "^16.8.6 || ^17.0.1",
|
95
95
|
"react-dom": "^16.8.6 || ^17.0.1"
|
96
96
|
},
|
97
|
-
"gitHead": "
|
97
|
+
"gitHead": "32a25a322d0213e135506f646b0ad5721e67d813"
|
98
98
|
}
|
@@ -4,3 +4,9 @@
|
|
4
4
|
// This source code is licensed under the Apache-2.0 license found in the
|
5
5
|
// LICENSE file in the root directory of this source tree.
|
6
6
|
//
|
7
|
+
|
8
|
+
$story-anchor: 'data-spreadsheet';
|
9
|
+
div[id*='#{$story-anchor}'] .docs-story > div:first-child > div:first-child {
|
10
|
+
overflow: auto;
|
11
|
+
width: 100%;
|
12
|
+
}
|
@@ -1,5 +1,5 @@
|
|
1
1
|
//
|
2
|
-
// Copyright IBM Corp. 2022,
|
2
|
+
// Copyright IBM Corp. 2022, 2023
|
3
3
|
//
|
4
4
|
// This source code is licensed under the Apache-2.0 license found in the
|
5
5
|
// LICENSE file in the root directory of this source tree.
|
@@ -122,3 +122,9 @@ $block-class: #{c4p-settings.$pkg-prefix}--datagrid;
|
|
122
122
|
width: 100vw;
|
123
123
|
}
|
124
124
|
}
|
125
|
+
|
126
|
+
$story-anchor: 'datagrid';
|
127
|
+
div[id*='#{$story-anchor}'] .docs-story > div:first-child > div:first-child {
|
128
|
+
overflow: auto;
|
129
|
+
width: 100%;
|
130
|
+
}
|
@@ -75,6 +75,13 @@ $action-set-height: rem(64px);
|
|
75
75
|
}
|
76
76
|
|
77
77
|
// Carbon overrides
|
78
|
+
.#{variables.$block-class}-filter-flyout__trigger.#{c4p-settings.$carbon-prefix}--btn {
|
79
|
+
display: flex;
|
80
|
+
width: 3rem;
|
81
|
+
height: 3rem;
|
82
|
+
justify-content: center;
|
83
|
+
}
|
84
|
+
|
78
85
|
.#{variables.$block-class}-filter-flyout__trigger--open.#{c4p-settings.$carbon-prefix}--btn.#{c4p-settings.$carbon-prefix}--btn--icon-only {
|
79
86
|
position: relative;
|
80
87
|
background-color: $layer-02;
|