@carbon/ibm-products 2.11.0 → 2.11.1
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 +11 -7
- 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.css +11 -7
- 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 +10 -6
- 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/Datagrid/Datagrid/DatagridToolbar.js +30 -37
- package/es/components/Datagrid/Extensions/ExpandableRow/ExpandableRow.docs-page.js +1 -1
- package/es/components/Datagrid/useNestedRowExpander.js +22 -9
- package/es/components/Datagrid/useRowExpander.js +22 -9
- package/es/components/Datagrid/utils/DatagridActions.js +1 -1
- package/es/components/Datagrid/utils/getArgTypes.js +12 -0
- package/es/components/EditTearsheet/EditTearsheet.js +47 -38
- package/es/components/EditTearsheet/EditTearsheetForm.js +6 -0
- package/es/components/EditTearsheet/preview-components/MultiFormEditTearsheet.js +6 -1
- package/es/components/Tearsheet/Tearsheet.js +2 -2
- package/es/components/Tearsheet/TearsheetNarrow.js +2 -2
- package/es/components/Tearsheet/TearsheetShell.js +2 -2
- package/es/global/js/hooks/useRetrieveFormTitles.js +20 -0
- package/lib/components/Datagrid/Datagrid/DatagridToolbar.js +30 -37
- package/lib/components/Datagrid/Extensions/ExpandableRow/ExpandableRow.docs-page.js +1 -1
- package/lib/components/Datagrid/useNestedRowExpander.js +24 -9
- package/lib/components/Datagrid/useRowExpander.js +24 -9
- package/lib/components/Datagrid/utils/DatagridActions.js +1 -1
- package/lib/components/Datagrid/utils/getArgTypes.js +12 -0
- package/lib/components/EditTearsheet/EditTearsheet.js +47 -38
- package/lib/components/EditTearsheet/EditTearsheetForm.js +6 -0
- package/lib/components/EditTearsheet/preview-components/MultiFormEditTearsheet.js +6 -1
- package/lib/components/Tearsheet/Tearsheet.js +2 -2
- package/lib/components/Tearsheet/TearsheetNarrow.js +2 -2
- package/lib/components/Tearsheet/TearsheetShell.js +2 -2
- package/lib/global/js/hooks/useRetrieveFormTitles.js +28 -0
- package/package.json +5 -5
- package/scss/components/Datagrid/_datagrid.scss +9 -0
- package/scss/components/Datagrid/styles/_datagrid.scss +1 -0
- package/scss/components/Datagrid/styles/addons/_FilterFlyout.scss +1 -0
- package/scss/components/Datagrid/styles/addons/_FilterPanel.scss +1 -0
- package/scss/components/FilterSummary/_filter-summary.scss +1 -0
@@ -16,9 +16,9 @@ var _react2 = require("@carbon/react");
|
|
16
16
|
var _settings = require("../../settings");
|
17
17
|
var _devtools = require("../../global/js/utils/devtools");
|
18
18
|
var _TearsheetShell = require("../Tearsheet/TearsheetShell");
|
19
|
-
var _excluded = ["cancelButtonText", "children", "className", "description", "influencerWidth", "label", "onClose", "open", "submitButtonText", "title", "verticalPosition", "onHandleModalClick"];
|
19
|
+
var _excluded = ["cancelButtonText", "children", "className", "description", "influencerWidth", "label", "onClose", "open", "submitButtonText", "title", "verticalPosition", "onHandleModalClick", "onFormChange", "sideNavAriaLabel"];
|
20
20
|
/**
|
21
|
-
* Copyright IBM Corp. 2022,
|
21
|
+
* Copyright IBM Corp. 2022, 2023
|
22
22
|
*
|
23
23
|
* This source code is licensed under the Apache-2.0 license found in the
|
24
24
|
* LICENSE file in the root directory of this source tree.
|
@@ -42,7 +42,8 @@ var FormNumberContext = /*#__PURE__*/(0, _react.createContext)(0);
|
|
42
42
|
exports.FormNumberContext = FormNumberContext;
|
43
43
|
var defaults = {
|
44
44
|
verticalPosition: 'normal',
|
45
|
-
influencerWidth: 'narrow'
|
45
|
+
influencerWidth: 'narrow',
|
46
|
+
sideNavAriaLabel: 'Side navigation'
|
46
47
|
};
|
47
48
|
|
48
49
|
/**
|
@@ -63,40 +64,43 @@ var EditTearsheet = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
|
|
63
64
|
_ref$verticalPosition = _ref.verticalPosition,
|
64
65
|
verticalPosition = _ref$verticalPosition === void 0 ? defaults.verticalPosition : _ref$verticalPosition,
|
65
66
|
onHandleModalClick = _ref.onHandleModalClick,
|
67
|
+
onFormChange = _ref.onFormChange,
|
68
|
+
_ref$sideNavAriaLabel = _ref.sideNavAriaLabel,
|
69
|
+
sideNavAriaLabel = _ref$sideNavAriaLabel === void 0 ? defaults.sideNavAriaLabel : _ref$sideNavAriaLabel,
|
66
70
|
rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
|
67
71
|
var _useState = (0, _react.useState)(0),
|
68
72
|
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
69
73
|
currentForm = _useState2[0],
|
70
74
|
setCurrentForm = _useState2[1];
|
75
|
+
var _useState3 = (0, _react.useState)([]),
|
76
|
+
_useState4 = (0, _slicedToArray2.default)(_useState3, 2),
|
77
|
+
formTitles = _useState4[0],
|
78
|
+
setFormTitles = _useState4[1];
|
71
79
|
var contentRef = (0, _react.useRef)();
|
72
|
-
var handleCurrentForm = function handleCurrentForm(
|
73
|
-
setCurrentForm(
|
80
|
+
var handleCurrentForm = function handleCurrentForm(formIndex) {
|
81
|
+
setCurrentForm(formIndex);
|
82
|
+
if (onFormChange) {
|
83
|
+
onFormChange(formIndex);
|
84
|
+
}
|
74
85
|
};
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
key: index,
|
94
|
-
onClick: function onClick() {
|
95
|
-
return handleCurrentForm(index);
|
96
|
-
},
|
97
|
-
isActive: currentForm === index
|
98
|
-
}, item.label);
|
99
|
-
}))));
|
86
|
+
function defaultInfluencer() {
|
87
|
+
return /*#__PURE__*/_react.default.createElement("div", {
|
88
|
+
className: "".concat(blockClass, "__side-nav-wrapper")
|
89
|
+
}, /*#__PURE__*/_react.default.createElement(_react2.SideNav, {
|
90
|
+
"aria-label": sideNavAriaLabel,
|
91
|
+
className: "".concat(blockClass, "__side-nav"),
|
92
|
+
expanded: true,
|
93
|
+
isFixedNav: false
|
94
|
+
}, /*#__PURE__*/_react.default.createElement(_react2.SideNavItems, null, formTitles.map(function (title, index) {
|
95
|
+
return /*#__PURE__*/_react.default.createElement(_react2.SideNavMenuItem, {
|
96
|
+
key: index,
|
97
|
+
onClick: function onClick() {
|
98
|
+
return handleCurrentForm(index);
|
99
|
+
},
|
100
|
+
isActive: currentForm === index
|
101
|
+
}, title);
|
102
|
+
}))));
|
103
|
+
}
|
100
104
|
return /*#__PURE__*/_react.default.createElement(_TearsheetShell.TearsheetShell, (0, _extends2.default)({}, rest, (0, _devtools.getDevtoolsProps)(componentName), {
|
101
105
|
actions: [{
|
102
106
|
label: submitButtonText,
|
@@ -110,7 +114,7 @@ var EditTearsheet = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
|
|
110
114
|
className: (0, _classnames.default)(blockClass, className),
|
111
115
|
description: description,
|
112
116
|
hasCloseIcon: false,
|
113
|
-
influencer:
|
117
|
+
influencer: defaultInfluencer(),
|
114
118
|
influencerPosition: "left",
|
115
119
|
influencerWidth: influencerWidth,
|
116
120
|
label: label,
|
@@ -126,7 +130,8 @@ var EditTearsheet = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
|
|
126
130
|
role: "main"
|
127
131
|
}, /*#__PURE__*/_react.default.createElement(_react2.Form, null, /*#__PURE__*/_react.default.createElement(FormContext.Provider, {
|
128
132
|
value: {
|
129
|
-
currentForm: currentForm
|
133
|
+
currentForm: currentForm,
|
134
|
+
setFormTitles: setFormTitles
|
130
135
|
}
|
131
136
|
}, _react.default.Children.map(children, function (child, index) {
|
132
137
|
return /*#__PURE__*/_react.default.createElement(FormNumberContext.Provider, {
|
@@ -162,12 +167,6 @@ EditTearsheet.propTypes = {
|
|
162
167
|
* A description of the flow, displayed in the header area of the tearsheet.
|
163
168
|
*/
|
164
169
|
description: _propTypes.default.node,
|
165
|
-
/**
|
166
|
-
* The content for the influencer section of the tearsheet, displayed
|
167
|
-
* alongside the main content. This is typically a menu, or filter, or
|
168
|
-
* progress indicator, or similar.
|
169
|
-
*/
|
170
|
-
influencer: _propTypes.default.element,
|
171
170
|
/**
|
172
171
|
* Used to set the size of the influencer
|
173
172
|
*/
|
@@ -184,6 +183,12 @@ EditTearsheet.propTypes = {
|
|
184
183
|
* Returning `false` here prevents the modal from closing.
|
185
184
|
*/
|
186
185
|
onClose: _propTypes.default.func,
|
186
|
+
/**
|
187
|
+
* An optional handler that is called when a user changes forms via clicking
|
188
|
+
* an influencer nav item.
|
189
|
+
* Returns the index of the selected form.
|
190
|
+
*/
|
191
|
+
onFormChange: _propTypes.default.func,
|
187
192
|
/**
|
188
193
|
* Specifies whether the tearsheet is currently open.
|
189
194
|
*/
|
@@ -192,6 +197,10 @@ EditTearsheet.propTypes = {
|
|
192
197
|
* Specifies whether the tearsheet is currently open.
|
193
198
|
*/
|
194
199
|
open: _propTypes.default.bool,
|
200
|
+
/**
|
201
|
+
* Specifies the aria label for the SideNav from Carbon UIShell
|
202
|
+
*/
|
203
|
+
sideNavAriaLabel: _propTypes.default.string,
|
195
204
|
/**
|
196
205
|
* The submit button text
|
197
206
|
*/
|
@@ -16,6 +16,7 @@ var _react2 = require("@carbon/react");
|
|
16
16
|
var _EditTearsheet = require("./EditTearsheet");
|
17
17
|
var _settings = require("../../settings");
|
18
18
|
var _pconsole = _interopRequireDefault(require("../../global/js/utils/pconsole"));
|
19
|
+
var _useRetrieveFormTitles = require("../../global/js/hooks/useRetrieveFormTitles");
|
19
20
|
var _excluded = ["children", "className", "description", "fieldsetLegendText", "hasFieldset", "subtitle", "title"];
|
20
21
|
/**
|
21
22
|
* Copyright IBM Corp. 2022, 2022
|
@@ -45,6 +46,11 @@ var EditTearsheetForm = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref)
|
|
45
46
|
rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
|
46
47
|
var formContext = (0, _react.useContext)(_EditTearsheet.FormContext);
|
47
48
|
var formNumber = (0, _react.useContext)(_EditTearsheet.FormNumberContext);
|
49
|
+
(0, _useRetrieveFormTitles.useRetrieveFormTitles)({
|
50
|
+
formContext: formContext,
|
51
|
+
formNumber: formNumber,
|
52
|
+
title: title
|
53
|
+
});
|
48
54
|
return formContext ? /*#__PURE__*/_react.default.createElement("div", (0, _extends2.default)({}, rest, {
|
49
55
|
className: (0, _classnames.default)(blockClass, className, (_cx = {}, (0, _defineProperty2.default)(_cx, "".concat(blockClass, "__form--hidden-form"), formNumber !== (formContext === null || formContext === void 0 ? void 0 : formContext.currentForm)), (0, _defineProperty2.default)(_cx, "".concat(blockClass, "__form--visible-form"), formNumber === (formContext === null || formContext === void 0 ? void 0 : formContext.currentForm)), _cx)),
|
50
56
|
ref: ref
|
@@ -13,6 +13,7 @@ var _classnames = _interopRequireDefault(require("classnames"));
|
|
13
13
|
var _settings = require("../../../settings");
|
14
14
|
var _EditTearsheet = require("../EditTearsheet");
|
15
15
|
var _EditTearsheetForm = require("../EditTearsheetForm");
|
16
|
+
var _addonActions = require("@storybook/addon-actions");
|
16
17
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
17
18
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
18
19
|
/* eslint-disable react/prop-types */
|
@@ -82,6 +83,9 @@ var MultiFormEditTearsheet = function MultiFormEditTearsheet(_ref) {
|
|
82
83
|
var handleModalClick = function handleModalClick() {
|
83
84
|
setOpen(!open);
|
84
85
|
};
|
86
|
+
var handleFormChange = function handleFormChange() {
|
87
|
+
(0, _addonActions.action)('handleFormChange')();
|
88
|
+
};
|
85
89
|
return /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement("style", null, ".".concat(blockClass, " { opacity: 0 }"), ";"), /*#__PURE__*/_react.default.createElement(_react2.Button, {
|
86
90
|
onClick: handleModalClick
|
87
91
|
}, open ? 'Close EditTearsheet' : 'Open EditTearsheet'), /*#__PURE__*/_react.default.createElement(_EditTearsheet.EditTearsheet, {
|
@@ -94,7 +98,8 @@ var MultiFormEditTearsheet = function MultiFormEditTearsheet(_ref) {
|
|
94
98
|
title: title,
|
95
99
|
open: open,
|
96
100
|
onHandleModalClick: handleModalClick,
|
97
|
-
onClose: clearCreateData
|
101
|
+
onClose: clearCreateData,
|
102
|
+
onFormChange: handleFormChange
|
98
103
|
}, /*#__PURE__*/_react.default.createElement(_EditTearsheetForm.EditTearsheetForm, {
|
99
104
|
title: "Topic name",
|
100
105
|
fieldsetLegendText: "Topic information",
|
@@ -182,9 +182,9 @@ Tearsheet.propTypes = _objectSpread({
|
|
182
182
|
*/
|
183
183
|
open: _propTypes.default.bool,
|
184
184
|
/**
|
185
|
-
* The DOM
|
185
|
+
* The DOM element that the tearsheet should be rendered within. Defaults to document.body.
|
186
186
|
*/
|
187
|
-
portalTarget: _propTypes.default.
|
187
|
+
portalTarget: _propTypes.default.instanceOf(Element),
|
188
188
|
/**
|
189
189
|
* Specify a CSS selector that matches the DOM element that should be focused when the Modal opens
|
190
190
|
*/
|
@@ -148,9 +148,9 @@ TearsheetNarrow.propTypes = _objectSpread({
|
|
148
148
|
*/
|
149
149
|
open: _propTypes.default.bool,
|
150
150
|
/**
|
151
|
-
* The DOM
|
151
|
+
* The DOM element that the tearsheet should be rendered within. Defaults to document.body.
|
152
152
|
*/
|
153
|
-
portalTarget: _propTypes.default.
|
153
|
+
portalTarget: _propTypes.default.instanceOf(Element),
|
154
154
|
/**
|
155
155
|
* The main title of the tearsheet, displayed in the header area.
|
156
156
|
*/
|
@@ -394,9 +394,9 @@ TearsheetShell.propTypes = _objectSpread({
|
|
394
394
|
*/
|
395
395
|
open: _propTypes.default.bool,
|
396
396
|
/**
|
397
|
-
* The DOM
|
397
|
+
* The DOM element that the tearsheet should be rendered within. Defaults to document.body.
|
398
398
|
*/
|
399
|
-
portalTarget: _propTypes.default.
|
399
|
+
portalTarget: _propTypes.default.instanceOf(Element),
|
400
400
|
/**
|
401
401
|
* Specifies the width of the tearsheet, 'narrow' or 'wide'.
|
402
402
|
*/
|
@@ -0,0 +1,28 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
5
|
+
value: true
|
6
|
+
});
|
7
|
+
exports.useRetrieveFormTitles = void 0;
|
8
|
+
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
9
|
+
var _react = require("react");
|
10
|
+
var useRetrieveFormTitles = function useRetrieveFormTitles(_ref) {
|
11
|
+
var formContext = _ref.formContext,
|
12
|
+
formNumber = _ref.formNumber,
|
13
|
+
title = _ref.title;
|
14
|
+
(0, _react.useEffect)(function () {
|
15
|
+
if (formContext) {
|
16
|
+
formContext.setFormTitles(function (prev) {
|
17
|
+
var prevTitle = prev[formNumber];
|
18
|
+
if (prevTitle !== title) {
|
19
|
+
var clone = (0, _toConsumableArray2.default)(prev);
|
20
|
+
clone[formNumber] = title;
|
21
|
+
return clone;
|
22
|
+
}
|
23
|
+
return prev;
|
24
|
+
});
|
25
|
+
}
|
26
|
+
}, [title, formContext, formNumber]);
|
27
|
+
};
|
28
|
+
exports.useRetrieveFormTitles = useRetrieveFormTitles;
|
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.11.
|
4
|
+
"version": "2.11.1",
|
5
5
|
"license": "Apache-2.0",
|
6
6
|
"main": "lib/index.js",
|
7
7
|
"module": "es/index.js",
|
@@ -57,9 +57,6 @@
|
|
57
57
|
"devDependencies": {
|
58
58
|
"@babel/cli": "^7.22.10",
|
59
59
|
"@babel/core": "^7.22.10",
|
60
|
-
"@dnd-kit/core": "^6.0.8",
|
61
|
-
"@dnd-kit/sortable": "^7.0.2",
|
62
|
-
"@dnd-kit/utilities": "^3.2.1",
|
63
60
|
"babel-preset-ibm-cloud-cognitive": "^0.14.39",
|
64
61
|
"chalk": "^4.1.2",
|
65
62
|
"change-case": "^4.1.2",
|
@@ -80,6 +77,9 @@
|
|
80
77
|
"dependencies": {
|
81
78
|
"@babel/runtime": "^7.22.10",
|
82
79
|
"@carbon/telemetry": "^0.1.0",
|
80
|
+
"@dnd-kit/core": "^6.0.8",
|
81
|
+
"@dnd-kit/sortable": "^7.0.2",
|
82
|
+
"@dnd-kit/utilities": "^3.2.1",
|
83
83
|
"framer-motion": "^6.5.1 < 7",
|
84
84
|
"immutability-helper": "^3.1.1",
|
85
85
|
"lodash": "^4.17.21",
|
@@ -96,5 +96,5 @@
|
|
96
96
|
"react": "^16.8.6 || ^17.0.1 || ^18.2.0",
|
97
97
|
"react-dom": "^16.8.6 || ^17.0.1 || ^18.2.0"
|
98
98
|
},
|
99
|
-
"gitHead": "
|
99
|
+
"gitHead": "7764b5a83d2878931c637c3a76e04c857f0aeb19"
|
100
100
|
}
|
@@ -31,6 +31,7 @@ $block-class: #{c4p-settings.$pkg-prefix}--datagrid;
|
|
31
31
|
.#{$block-class}__datagridWrap {
|
32
32
|
display: block;
|
33
33
|
width: 100%;
|
34
|
+
|
34
35
|
:global(.#{c4p-settings.$carbon-prefix}--checkbox) {
|
35
36
|
display: none;
|
36
37
|
}
|
@@ -70,3 +71,11 @@ $block-class: #{c4p-settings.$pkg-prefix}--datagrid;
|
|
70
71
|
}
|
71
72
|
}
|
72
73
|
}
|
74
|
+
|
75
|
+
// firefox fix for issue mentioned in 3442
|
76
|
+
.#{$block-class}
|
77
|
+
.#{c4p-settings.$carbon-prefix}--menu-button__trigger:not(
|
78
|
+
.#{c4p-settings.$carbon-prefix}--btn--ghost
|
79
|
+
) {
|
80
|
+
min-width: auto;
|
81
|
+
}
|
@@ -8,6 +8,7 @@
|
|
8
8
|
|
9
9
|
@use '../variables' as *;
|
10
10
|
@use '@carbon/styles/scss/theme' as *;
|
11
|
+
@use '@carbon/layout/scss/convert' as *;
|
11
12
|
@use '@carbon/styles/scss/spacing' as *;
|
12
13
|
@use '@carbon/styles/scss/type' as *;
|
13
14
|
@use '../../../../global/styles/project-settings' as c4p-settings;
|