@carbon/ibm-products 2.1.0 → 2.1.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 +191 -55
- 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 +52 -9
- 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 +67 -27
- 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 +96 -26
- 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 +1 -3
- package/es/components/ActionBar/ActionBar.js +2 -6
- package/es/components/AddSelect/AddSelectFormControl.js +6 -6
- package/es/components/AddSelect/AddSelectRow.js +15 -5
- package/es/components/BreadcrumbWithOverflow/BreadcrumbWithOverflow.js +2 -6
- package/es/components/ButtonMenu/ButtonMenu.js +4 -4
- package/es/components/ButtonSetWithOverflow/ButtonSetWithOverflow.js +3 -9
- package/es/components/Datagrid/Datagrid/DatagridVirtualBody.js +1 -3
- package/es/components/Datagrid/useStickyColumn.js +10 -3
- package/es/components/PageHeader/PageHeader.js +2 -6
- package/es/components/SidePanel/SidePanel.js +1 -3
- package/es/components/TagSet/TagSet.js +4 -7
- package/es/global/js/hooks/useResizeObserver.js +14 -28
- package/lib/components/AboutModal/AboutModal.js +1 -3
- package/lib/components/ActionBar/ActionBar.js +2 -6
- package/lib/components/AddSelect/AddSelectFormControl.js +6 -6
- package/lib/components/AddSelect/AddSelectRow.js +15 -5
- package/lib/components/BreadcrumbWithOverflow/BreadcrumbWithOverflow.js +2 -6
- package/lib/components/ButtonMenu/ButtonMenu.js +4 -4
- package/lib/components/ButtonSetWithOverflow/ButtonSetWithOverflow.js +3 -9
- package/lib/components/Datagrid/Datagrid/DatagridVirtualBody.js +1 -3
- package/lib/components/Datagrid/useStickyColumn.js +10 -3
- package/lib/components/PageHeader/PageHeader.js +2 -6
- package/lib/components/SidePanel/SidePanel.js +1 -3
- package/lib/components/TagSet/TagSet.js +4 -7
- package/lib/global/js/hooks/useResizeObserver.js +13 -27
- package/package.json +17 -17
- package/scss/components/AddSelect/_add-select.scss +4 -0
- package/scss/components/BreadcrumbWithOverflow/_breadcrumb-with-overflow.scss +0 -1
- package/scss/components/ButtonMenu/_button-menu.scss +32 -1
- package/scss/components/Datagrid/_datagrid.scss +4 -2
- package/scss/components/Datagrid/_storybook-styles.scss +8 -0
- package/scss/components/Datagrid/styles/_datagrid.scss +12 -13
- package/scss/components/PageHeader/_page-header.scss +0 -1
- package/scss/components/SidePanel/_side-panel.scss +0 -2
- package/scss/components/Tearsheet/_tearsheet.scss +0 -5
@@ -21,10 +21,13 @@ 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(null),
|
25
25
|
_useState2 = _slicedToArray(_useState, 2),
|
26
26
|
windowSize = _useState2[0],
|
27
27
|
setWindowSize = _useState2[1];
|
28
|
+
useEffect(function () {
|
29
|
+
setWindowSize(window.innerWidth);
|
30
|
+
}, []);
|
28
31
|
useLayoutEffect(function () {
|
29
32
|
function updateSize() {
|
30
33
|
setWindowSize(window.innerWidth);
|
@@ -53,9 +56,13 @@ var useStickyColumn = function useStickyColumn(hooks) {
|
|
53
56
|
headerCellElement.classList.add(OFFSET_SCROLL_CLASS);
|
54
57
|
}
|
55
58
|
var boundListener = debounce(onBodyResize.bind(null, tableBodyElement, headerCellElement), 250);
|
56
|
-
window
|
59
|
+
if (typeof window !== 'undefined') {
|
60
|
+
window.addEventListener('resize', boundListener);
|
61
|
+
}
|
57
62
|
return function () {
|
58
|
-
window
|
63
|
+
if (typeof window !== 'undefined') {
|
64
|
+
window.removeEventListener('resize', boundListener);
|
65
|
+
}
|
59
66
|
};
|
60
67
|
}, [instance.rows, instance.isFetching]);
|
61
68
|
useEffect(function () {
|
@@ -314,12 +314,8 @@ 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
|
-
|
319
|
-
});
|
320
|
-
useResizeObserver(headerRef, {
|
321
|
-
callback: handleResize
|
322
|
-
});
|
317
|
+
useResizeObserver(sizingContainerRef, handleResizeActionBarColumn);
|
318
|
+
useResizeObserver(headerRef, handleResize);
|
323
319
|
|
324
320
|
// Determine what form of title to display in the breadcrumb
|
325
321
|
var breadcrumbItemForTitle = utilGetBreadcrumbItemForTitle(blockClass, collapseTitle, title);
|
@@ -444,9 +444,7 @@ export var SidePanel = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
444
444
|
}, title));
|
445
445
|
};
|
446
446
|
var contentRef = ref || sidePanelRef;
|
447
|
-
useResizeObserver(contentRef,
|
448
|
-
callback: handleResize
|
449
|
-
});
|
447
|
+
useResizeObserver(contentRef, handleResize);
|
450
448
|
return /*#__PURE__*/React.createElement(AnimatePresence, null, open && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(motion.div, _extends({}, getDevtoolsProps(componentName), rest, {
|
451
449
|
id: "".concat(blockClass, "-outer"),
|
452
450
|
className: mainPanelClassNames,
|
@@ -156,7 +156,8 @@ 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
|
159
|
+
var _sizingTags$i;
|
160
|
+
var tagWidth = ((_sizingTags$i = sizingTags[i]) === null || _sizingTags$i === void 0 ? void 0 : _sizingTags$i.offsetWidth) || 0;
|
160
161
|
if (spaceAvailable >= tagWidth) {
|
161
162
|
spaceAvailable -= tagWidth;
|
162
163
|
willFit += 1;
|
@@ -198,12 +199,8 @@ export var TagSet = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
198
199
|
var handleModalClose = function handleModalClose() {
|
199
200
|
setShowAllModalOpen(false);
|
200
201
|
};
|
201
|
-
useResizeObserver(sizingContainerRef,
|
202
|
-
|
203
|
-
});
|
204
|
-
useResizeObserver(tagSetRef, {
|
205
|
-
callback: handleResize
|
206
|
-
});
|
202
|
+
useResizeObserver(sizingContainerRef, handleSizerTagsResize);
|
203
|
+
useResizeObserver(tagSetRef, handleResize);
|
207
204
|
return /*#__PURE__*/React.createElement("div", _extends({}, rest, {
|
208
205
|
className: cx([blockClass, className]),
|
209
206
|
ref: tagSetRef
|
@@ -5,14 +5,8 @@ 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 } 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;
|
8
|
+
import { useRef, useState, useLayoutEffect, useEffect } from 'react';
|
9
|
+
export var useResizeObserver = function useResizeObserver(ref, callback) {
|
16
10
|
var _useState = useState(0),
|
17
11
|
_useState2 = _slicedToArray(_useState, 2),
|
18
12
|
width = _useState2[0],
|
@@ -21,8 +15,14 @@ export var useResizeObserver = function useResizeObserver(ref) {
|
|
21
15
|
_useState4 = _slicedToArray(_useState3, 2),
|
22
16
|
height = _useState4[0],
|
23
17
|
setHeight = _useState4[1];
|
24
|
-
var throttleTimeout = useRef(null);
|
25
18
|
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,29 +34,15 @@ export var useResizeObserver = function useResizeObserver(ref) {
|
|
34
34
|
var entry = entriesToHandle.current[0];
|
35
35
|
setWidth(entry.contentRect.width);
|
36
36
|
setHeight(entry.contentRect.height);
|
37
|
-
|
38
|
-
callback && callback(entry.contentRect);
|
37
|
+
cb.current && cb.current(entry.contentRect);
|
39
38
|
};
|
40
39
|
var observer = new ResizeObserver(function (entries) {
|
41
40
|
// always update entriesToHandle
|
42
41
|
entriesToHandle.current = entries;
|
43
|
-
|
44
|
-
//
|
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
|
42
|
+
window.requestAnimationFrame(function () {
|
43
|
+
// do callbacks
|
58
44
|
doCallbacks();
|
59
|
-
}
|
45
|
+
});
|
60
46
|
});
|
61
47
|
|
62
48
|
// observe all refs passed
|
@@ -66,7 +52,7 @@ export var useResizeObserver = function useResizeObserver(ref) {
|
|
66
52
|
observer = null;
|
67
53
|
};
|
68
54
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
69
|
-
}, [ref
|
55
|
+
}, [ref]);
|
70
56
|
return {
|
71
57
|
width: width,
|
72
58
|
height: height
|
@@ -81,9 +81,7 @@ 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,
|
85
|
-
callback: handleResize
|
86
|
-
});
|
84
|
+
(0, _useResizeObserver.useResizeObserver)(bodyRef, handleResize);
|
87
85
|
return /*#__PURE__*/_react.default.createElement(_react2.ComposedModal, (0, _extends2.default)({}, rest, {
|
88
86
|
className: (0, _classnames.default)(blockClass,
|
89
87
|
// Apply the block class to the main HTML element
|
@@ -192,12 +192,8 @@ 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
|
-
|
197
|
-
});
|
198
|
-
(0, _useResizeObserver.useResizeObserver)(localRef, {
|
199
|
-
callback: handleResize
|
200
|
-
});
|
195
|
+
(0, _useResizeObserver.useResizeObserver)(sizingRef, handleResize);
|
196
|
+
(0, _useResizeObserver.useResizeObserver)(localRef, handleResize);
|
201
197
|
return /*#__PURE__*/_react.default.createElement("div", (0, _extends2.default)({}, rest, {
|
202
198
|
className: (0, _classnames.default)([blockClass, className]),
|
203
199
|
ref: localRef
|
@@ -14,16 +14,15 @@ 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;
|
18
17
|
var item = _ref.item,
|
19
18
|
onClick = _ref.onClick,
|
20
19
|
selected = _ref.selected,
|
21
20
|
type = _ref.type;
|
22
|
-
var controlProps = (
|
21
|
+
var controlProps = (0, _defineProperty2.default)({
|
23
22
|
onClick: onClick,
|
24
|
-
|
25
|
-
|
26
|
-
},
|
23
|
+
className: "".concat(blockClass, "-form-control-wrapper ").concat(blockClass, "-form-control-wrapper--").concat(type),
|
24
|
+
size: 20
|
25
|
+
}, "aria-labelledby", "control-label-".concat(item.id));
|
27
26
|
var getCheckbox = function getCheckbox() {
|
28
27
|
if (selected) {
|
29
28
|
return /*#__PURE__*/_react.default.createElement(_icons.CheckboxCheckedFilled, controlProps);
|
@@ -75,7 +74,8 @@ var AddSelectFormControl = function AddSelectFormControl(_ref) {
|
|
75
74
|
}, getItemIcon(item)), /*#__PURE__*/_react.default.createElement("div", {
|
76
75
|
className: "".concat(blockClass, "-form-control-label-text")
|
77
76
|
}, /*#__PURE__*/_react.default.createElement("span", {
|
78
|
-
className: "".concat(blockClass, "-cell-title")
|
77
|
+
className: "".concat(blockClass, "-cell-title"),
|
78
|
+
id: "control-label-".concat(item.id)
|
79
79
|
}, item.title), item.subtitle && /*#__PURE__*/_react.default.createElement("span", {
|
80
80
|
className: "".concat(blockClass, "-cell-subtitle")
|
81
81
|
}, item.subtitle))));
|
@@ -47,6 +47,7 @@ var AddSelectRow = function AddSelectRow(_ref) {
|
|
47
47
|
setMultiSelection = _ref.setMultiSelection,
|
48
48
|
setParentSelected = _ref.setParentSelected,
|
49
49
|
setSingleSelection = _ref.setSingleSelection,
|
50
|
+
setSize = _ref.setSize,
|
50
51
|
singleSelection = _ref.singleSelection;
|
51
52
|
var ref = (0, _react.useRef)(null);
|
52
53
|
(0, _react.useEffect)(function () {
|
@@ -129,14 +130,20 @@ var AddSelectRow = function AddSelectRow(_ref) {
|
|
129
130
|
var hasModifiers = (modifiers === null || modifiers === void 0 ? void 0 : (_modifiers$options = modifiers.options) === null || _modifiers$options === void 0 ? void 0 : _modifiers$options.length) > 0;
|
130
131
|
var tabIndex = getTabIndex();
|
131
132
|
var selected = isSelected();
|
133
|
+
var expanded = parentSelected === item.id;
|
132
134
|
return /*#__PURE__*/_react.default.createElement("div", {
|
133
|
-
className: (0, _classnames.default)("".concat(blockClass, "-row"), (_cx = {}, (0, _defineProperty2.default)(_cx, "".concat(blockClass, "-row--selected"), isSelected(
|
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"), expanded), _cx)),
|
134
136
|
onKeyDown: onSelectKeyDown,
|
135
137
|
tabIndex: tabIndex,
|
136
138
|
ref: ref,
|
137
|
-
role: "row"
|
139
|
+
role: "row",
|
140
|
+
"aria-selected": selected,
|
141
|
+
"aria-posinset": index,
|
142
|
+
"aria-setsize": setSize,
|
143
|
+
"aria-expanded": expanded
|
138
144
|
}, /*#__PURE__*/_react.default.createElement("div", {
|
139
|
-
className: "".concat(blockClass, "-cell")
|
145
|
+
className: "".concat(blockClass, "-cell"),
|
146
|
+
role: "gridcell"
|
140
147
|
}, /*#__PURE__*/_react.default.createElement("div", {
|
141
148
|
className: "".concat(blockClass, "-cell-wrapper")
|
142
149
|
}, multi ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_AddSelectFormControl.AddSelectFormControl, {
|
@@ -149,7 +156,7 @@ var AddSelectRow = function AddSelectRow(_ref) {
|
|
149
156
|
type: "inline",
|
150
157
|
items: modifiers.options,
|
151
158
|
label: modifiers.label,
|
152
|
-
disabled: !isSelected(
|
159
|
+
disabled: !isSelected(),
|
153
160
|
className: "".concat(blockClass, "-dropdown"),
|
154
161
|
initialSelectedItem: item[modifiers.id],
|
155
162
|
onChange: function onChange(_ref3) {
|
@@ -174,7 +181,9 @@ var AddSelectRow = function AddSelectRow(_ref) {
|
|
174
181
|
hasIconOnly: true,
|
175
182
|
onClick: onNavigateItem,
|
176
183
|
kind: "ghost",
|
177
|
-
size: "sm"
|
184
|
+
size: "sm",
|
185
|
+
tabIndex: -1,
|
186
|
+
"aria-hidden": true
|
178
187
|
}), item.meta && /*#__PURE__*/_react.default.createElement(_react2.Button, {
|
179
188
|
className: "".concat(blockClass, "-view-meta"),
|
180
189
|
renderIcon: function renderIcon(props) {
|
@@ -212,6 +221,7 @@ AddSelectRow.propTypes = {
|
|
212
221
|
setMultiSelection: _propTypes.default.func,
|
213
222
|
setParentSelected: _propTypes.default.func,
|
214
223
|
setSingleSelection: _propTypes.default.func,
|
224
|
+
setSize: _propTypes.default.number,
|
215
225
|
singleSelection: _propTypes.default.string
|
216
226
|
};
|
217
227
|
AddSelectRow.displayName = componentName;
|
@@ -257,13 +257,9 @@ var BreadcrumbWithOverflow = function BreadcrumbWithOverflow(_ref) {
|
|
257
257
|
}
|
258
258
|
|
259
259
|
// container resize
|
260
|
-
(0, _useResizeObserver.useResizeObserver)(sizingContainerRef,
|
261
|
-
callback: handleResize
|
262
|
-
});
|
260
|
+
(0, _useResizeObserver.useResizeObserver)(sizingContainerRef, handleResize);
|
263
261
|
// item resize
|
264
|
-
(0, _useResizeObserver.useResizeObserver)(breadcrumbItemWithOverflow,
|
265
|
-
callback: handleResize
|
266
|
-
});
|
262
|
+
(0, _useResizeObserver.useResizeObserver)(breadcrumbItemWithOverflow, handleResize);
|
267
263
|
return /*#__PURE__*/_react.default.createElement("div", {
|
268
264
|
className: (0, _classnames.default)(blockClass, className, (0, _defineProperty2.default)({}, "".concat(blockClass, "__with-items"), displayedBreadcrumbItems.length > 1)),
|
269
265
|
ref: breadcrumbItemWithOverflow
|
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
});
|
7
7
|
exports.ButtonMenu = void 0;
|
8
8
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
9
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
9
10
|
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
10
11
|
var _react = _interopRequireDefault(require("react"));
|
11
12
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
@@ -58,15 +59,14 @@ var ButtonMenu = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref) {
|
|
58
59
|
return /*#__PURE__*/_react.default.createElement(_react2.OverflowMenu, (0, _extends2.default)({}, rest, {
|
59
60
|
className: (0, _classnames.default)(blockClass,
|
60
61
|
// Apply the block class to the main HTML element
|
61
|
-
className // Apply any supplied class names to the main HTML element.
|
62
|
-
),
|
63
|
-
|
62
|
+
className, // Apply any supplied class names to the main HTML element.
|
63
|
+
"".concat(carbonPrefix, "--btn--").concat(size), (0, _defineProperty2.default)({}, "".concat(blockClass, "__wrapper--").concat(kind), kind)),
|
64
64
|
"aria-label": menuAriaLabel,
|
65
65
|
menuOptionsClass: (0, _classnames.default)("".concat(blockClass, "__options"), menuOptionsClass),
|
66
66
|
size: size,
|
67
67
|
renderIcon: function renderIcon() {
|
68
68
|
return /*#__PURE__*/_react.default.createElement("div", {
|
69
|
-
className: (0, _classnames.default)(
|
69
|
+
className: (0, _classnames.default)("".concat(blockClass, "__trigger"))
|
70
70
|
}, label, Icon && /*#__PURE__*/_react.default.createElement(Icon, {
|
71
71
|
"aria-hidden": "true",
|
72
72
|
"aria-label": iconDescription,
|
@@ -145,15 +145,9 @@ var ButtonSetWithOverflow = function ButtonSetWithOverflow(_ref) {
|
|
145
145
|
}, (0, _propsHelper.prepareProps)(other, ['iconDescription', 'renderIcon'])));
|
146
146
|
}).reverse());
|
147
147
|
});
|
148
|
-
(0, _useResizeObserver.useResizeObserver)(sizingContainerRefSet,
|
149
|
-
|
150
|
-
|
151
|
-
(0, _useResizeObserver.useResizeObserver)(sizingContainerRefCombo, {
|
152
|
-
callback: checkFullyVisibleItems
|
153
|
-
});
|
154
|
-
(0, _useResizeObserver.useResizeObserver)(spaceAvailableRef, {
|
155
|
-
callback: checkFullyVisibleItems
|
156
|
-
});
|
148
|
+
(0, _useResizeObserver.useResizeObserver)(sizingContainerRefSet, checkFullyVisibleItems);
|
149
|
+
(0, _useResizeObserver.useResizeObserver)(sizingContainerRefCombo, checkFullyVisibleItems);
|
150
|
+
(0, _useResizeObserver.useResizeObserver)(spaceAvailableRef, checkFullyVisibleItems);
|
157
151
|
return /*#__PURE__*/_react.default.createElement("div", {
|
158
152
|
className: (0, _classnames.default)([blockClass, className, (0, _defineProperty2.default)({}, "".concat(blockClass, "--right"), rightAlign)]),
|
159
153
|
ref: spaceAvailableRef
|
@@ -59,9 +59,7 @@ var DatagridVirtualBody = function DatagridVirtualBody(datagridState) {
|
|
59
59
|
var gridRefElement = gridRef === null || gridRef === void 0 ? void 0 : gridRef.current;
|
60
60
|
gridRefElement.style.width = gridRefElement === null || gridRefElement === void 0 ? void 0 : gridRefElement.clientWidth;
|
61
61
|
};
|
62
|
-
(0, _useResizeObserver.useResizeObserver)(gridRef,
|
63
|
-
callback: handleVirtualGridResize
|
64
|
-
});
|
62
|
+
(0, _useResizeObserver.useResizeObserver)(gridRef, handleVirtualGridResize);
|
65
63
|
var syncScroll = function syncScroll(e) {
|
66
64
|
var virtualBody = e.target;
|
67
65
|
document.querySelector(".".concat(blockClass, "__head-wrap")).scrollLeft = virtualBody.scrollLeft;
|
@@ -26,10 +26,13 @@ var OFFSET_SCROLL_CLASS = "".concat(styleClassPrefix, "-offset-scroll");
|
|
26
26
|
var useStickyColumn = function useStickyColumn(hooks) {
|
27
27
|
var tableBodyRef = (0, _react.useRef)();
|
28
28
|
var stickyHeaderCellRef = (0, _react.useRef)();
|
29
|
-
var _useState = (0, _react.useState)(
|
29
|
+
var _useState = (0, _react.useState)(null),
|
30
30
|
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
31
31
|
windowSize = _useState2[0],
|
32
32
|
setWindowSize = _useState2[1];
|
33
|
+
(0, _react.useEffect)(function () {
|
34
|
+
setWindowSize(window.innerWidth);
|
35
|
+
}, []);
|
33
36
|
(0, _react.useLayoutEffect)(function () {
|
34
37
|
function updateSize() {
|
35
38
|
setWindowSize(window.innerWidth);
|
@@ -58,9 +61,13 @@ var useStickyColumn = function useStickyColumn(hooks) {
|
|
58
61
|
headerCellElement.classList.add(OFFSET_SCROLL_CLASS);
|
59
62
|
}
|
60
63
|
var boundListener = (0, _debounce.default)(onBodyResize.bind(null, tableBodyElement, headerCellElement), 250);
|
61
|
-
window
|
64
|
+
if (typeof window !== 'undefined') {
|
65
|
+
window.addEventListener('resize', boundListener);
|
66
|
+
}
|
62
67
|
return function () {
|
63
|
-
window
|
68
|
+
if (typeof window !== 'undefined') {
|
69
|
+
window.removeEventListener('resize', boundListener);
|
70
|
+
}
|
64
71
|
};
|
65
72
|
}, [instance.rows, instance.isFetching]);
|
66
73
|
(0, _react.useEffect)(function () {
|
@@ -320,12 +320,8 @@ var PageHeader = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref) {
|
|
320
320
|
(0, _PageHeaderUtils.utilSetCollapsed)(collapseHeader, metrics.headerOffset, metrics.headerTopValue);
|
321
321
|
}
|
322
322
|
}, [collapseHeader, metrics.headerOffset, metrics.headerTopValue]);
|
323
|
-
(0, _useResizeObserver.useResizeObserver)(sizingContainerRef,
|
324
|
-
|
325
|
-
});
|
326
|
-
(0, _useResizeObserver.useResizeObserver)(headerRef, {
|
327
|
-
callback: handleResize
|
328
|
-
});
|
323
|
+
(0, _useResizeObserver.useResizeObserver)(sizingContainerRef, handleResizeActionBarColumn);
|
324
|
+
(0, _useResizeObserver.useResizeObserver)(headerRef, handleResize);
|
329
325
|
|
330
326
|
// Determine what form of title to display in the breadcrumb
|
331
327
|
var breadcrumbItemForTitle = (0, _PageHeaderUtils.utilGetBreadcrumbItemForTitle)(_PageHeaderUtils.blockClass, collapseTitle, title);
|
@@ -451,9 +451,7 @@ var SidePanel = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref) {
|
|
451
451
|
}, title));
|
452
452
|
};
|
453
453
|
var contentRef = ref || sidePanelRef;
|
454
|
-
(0, _useResizeObserver.useResizeObserver)(contentRef,
|
455
|
-
callback: handleResize
|
456
|
-
});
|
454
|
+
(0, _useResizeObserver.useResizeObserver)(contentRef, handleResize);
|
457
455
|
return /*#__PURE__*/_react.default.createElement(_framerMotion.AnimatePresence, null, open && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_framerMotion.motion.div, (0, _extends2.default)({}, (0, _devtools.getDevtoolsProps)(componentName), rest, {
|
458
456
|
id: "".concat(blockClass, "-outer"),
|
459
457
|
className: mainPanelClassNames,
|
@@ -164,7 +164,8 @@ var TagSet = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref) {
|
|
164
164
|
if (sizingTags.length > 0) {
|
165
165
|
var spaceAvailable = tagSetRef.current.offsetWidth;
|
166
166
|
for (var i in sizingTags) {
|
167
|
-
var
|
167
|
+
var _sizingTags$i;
|
168
|
+
var tagWidth = ((_sizingTags$i = sizingTags[i]) === null || _sizingTags$i === void 0 ? void 0 : _sizingTags$i.offsetWidth) || 0;
|
168
169
|
if (spaceAvailable >= tagWidth) {
|
169
170
|
spaceAvailable -= tagWidth;
|
170
171
|
willFit += 1;
|
@@ -206,12 +207,8 @@ var TagSet = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref) {
|
|
206
207
|
var handleModalClose = function handleModalClose() {
|
207
208
|
setShowAllModalOpen(false);
|
208
209
|
};
|
209
|
-
(0, _useResizeObserver.useResizeObserver)(sizingContainerRef,
|
210
|
-
|
211
|
-
});
|
212
|
-
(0, _useResizeObserver.useResizeObserver)(tagSetRef, {
|
213
|
-
callback: handleResize
|
214
|
-
});
|
210
|
+
(0, _useResizeObserver.useResizeObserver)(sizingContainerRef, handleSizerTagsResize);
|
211
|
+
(0, _useResizeObserver.useResizeObserver)(tagSetRef, handleResize);
|
215
212
|
return /*#__PURE__*/_react.default.createElement("div", (0, _extends2.default)({}, rest, {
|
216
213
|
className: (0, _classnames.default)([blockClass, className]),
|
217
214
|
ref: tagSetRef
|
@@ -14,13 +14,7 @@ var _react = require("react");
|
|
14
14
|
* LICENSE file in the root directory of this source tree.
|
15
15
|
*/
|
16
16
|
|
17
|
-
var useResizeObserver = function useResizeObserver(ref) {
|
18
|
-
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {
|
19
|
-
callback: null,
|
20
|
-
throttleInterval: 0
|
21
|
-
};
|
22
|
-
var callback = options.callback,
|
23
|
-
throttleInterval = options.throttleInterval;
|
17
|
+
var useResizeObserver = function useResizeObserver(ref, callback) {
|
24
18
|
var _useState = (0, _react.useState)(0),
|
25
19
|
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
26
20
|
width = _useState2[0],
|
@@ -29,8 +23,14 @@ var useResizeObserver = function useResizeObserver(ref) {
|
|
29
23
|
_useState4 = (0, _slicedToArray2.default)(_useState3, 2),
|
30
24
|
height = _useState4[0],
|
31
25
|
setHeight = _useState4[1];
|
32
|
-
var throttleTimeout = (0, _react.useRef)(null);
|
33
26
|
var entriesToHandle = (0, _react.useRef)(null);
|
27
|
+
var cb = (0, _react.useRef)(callback);
|
28
|
+
(0, _react.useEffect)(function () {
|
29
|
+
// ref for callback removes it as dependency fro useLayoutEffect
|
30
|
+
// This significantly reduces repeated calls if a function is redefined on every
|
31
|
+
// render
|
32
|
+
cb.current = callback;
|
33
|
+
}, [callback]);
|
34
34
|
(0, _react.useLayoutEffect)(function () {
|
35
35
|
if (!(ref !== null && ref !== void 0 && ref.current)) {
|
36
36
|
return;
|
@@ -42,29 +42,15 @@ var useResizeObserver = function useResizeObserver(ref) {
|
|
42
42
|
var entry = entriesToHandle.current[0];
|
43
43
|
setWidth(entry.contentRect.width);
|
44
44
|
setHeight(entry.contentRect.height);
|
45
|
-
|
46
|
-
callback && callback(entry.contentRect);
|
45
|
+
cb.current && cb.current(entry.contentRect);
|
47
46
|
};
|
48
47
|
var observer = new ResizeObserver(function (entries) {
|
49
48
|
// always update entriesToHandle
|
50
49
|
entriesToHandle.current = entries;
|
51
|
-
|
52
|
-
//
|
53
|
-
if (throttleTimeout.current === null) {
|
54
|
-
// no live timeout set entries to handle and move on
|
55
|
-
|
56
|
-
// set up throttle
|
57
|
-
throttleTimeout.current = setTimeout(function () {
|
58
|
-
// do callbacks
|
59
|
-
doCallbacks();
|
60
|
-
// reset throttle
|
61
|
-
throttleTimeout.current = null;
|
62
|
-
}, throttleInterval);
|
63
|
-
}
|
64
|
-
} else {
|
65
|
-
// no throttle do callbacks every time
|
50
|
+
window.requestAnimationFrame(function () {
|
51
|
+
// do callbacks
|
66
52
|
doCallbacks();
|
67
|
-
}
|
53
|
+
});
|
68
54
|
});
|
69
55
|
|
70
56
|
// observe all refs passed
|
@@ -74,7 +60,7 @@ var useResizeObserver = function useResizeObserver(ref) {
|
|
74
60
|
observer = null;
|
75
61
|
};
|
76
62
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
77
|
-
}, [ref
|
63
|
+
}, [ref]);
|
78
64
|
return {
|
79
65
|
width: width,
|
80
66
|
height: height
|
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.1",
|
5
5
|
"license": "Apache-2.0",
|
6
6
|
"main": "lib/index.js",
|
7
7
|
"module": "es/index.js",
|
@@ -54,27 +54,27 @@
|
|
54
54
|
"upgrade-dependencies": "npm-check-updates -u --dep dev,peer,prod --color --reject '/(carbon|^react$|^react-dom$|^chalk$|^react-dnd|^namor)/'"
|
55
55
|
},
|
56
56
|
"devDependencies": {
|
57
|
-
"@babel/cli": "^7.
|
58
|
-
"@babel/core": "^7.
|
59
|
-
"babel-preset-ibm-cloud-cognitive": "^0.14.
|
57
|
+
"@babel/cli": "^7.21.5",
|
58
|
+
"@babel/core": "^7.22.1",
|
59
|
+
"babel-preset-ibm-cloud-cognitive": "^0.14.35",
|
60
60
|
"chalk": "^4.1.2",
|
61
61
|
"change-case": "^4.1.2",
|
62
62
|
"copyfiles": "^2.4.1",
|
63
63
|
"cross-env": "^7.0.3",
|
64
64
|
"fs-extra": "^11.1.1",
|
65
|
-
"glob": "^10.2.
|
66
|
-
"jest": "^29.
|
67
|
-
"jest-config-ibm-cloud-cognitive": "^0.24.
|
68
|
-
"jest-environment-jsdom": "^29.
|
65
|
+
"glob": "^10.2.6",
|
66
|
+
"jest": "^29.5.0",
|
67
|
+
"jest-config-ibm-cloud-cognitive": "^0.24.22",
|
68
|
+
"jest-environment-jsdom": "^29.5.0",
|
69
69
|
"namor": "^1.1.2",
|
70
70
|
"npm-check-updates": "^16.10.12",
|
71
71
|
"npm-run-all": "^4.1.5",
|
72
|
-
"rimraf": "^5.0.
|
72
|
+
"rimraf": "^5.0.1",
|
73
73
|
"sass": "^1.62.1",
|
74
74
|
"yargs": "^17.7.2"
|
75
75
|
},
|
76
76
|
"dependencies": {
|
77
|
-
"@babel/runtime": "^7.
|
77
|
+
"@babel/runtime": "^7.22.3",
|
78
78
|
"@carbon/telemetry": "^0.1.0",
|
79
79
|
"framer-motion": "^6.5.1 < 7",
|
80
80
|
"immutability-helper": "^3.1.1",
|
@@ -85,14 +85,14 @@
|
|
85
85
|
"react-window": "^1.8.9"
|
86
86
|
},
|
87
87
|
"peerDependencies": {
|
88
|
-
"@carbon/grid": "^11.
|
89
|
-
"@carbon/layout": "^11.
|
90
|
-
"@carbon/motion": "^11.
|
91
|
-
"@carbon/react": "~1.
|
92
|
-
"@carbon/themes": "^11.
|
93
|
-
"@carbon/type": "^11.
|
88
|
+
"@carbon/grid": "^11.14.0",
|
89
|
+
"@carbon/layout": "^11.14.0",
|
90
|
+
"@carbon/motion": "^11.11.0",
|
91
|
+
"@carbon/react": "~1.30.0",
|
92
|
+
"@carbon/themes": "^11.19.0",
|
93
|
+
"@carbon/type": "^11.18.0",
|
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": "30b5fa97e450c8587e04b5e2e1be98c9a7379d45"
|
98
98
|
}
|
@@ -92,6 +92,5 @@ $_block-class: #{c4p-settings.$pkg-prefix}--breadcrumb-with-overflow;
|
|
92
92
|
|
93
93
|
.#{$_block-class}__overflow-menu-options.#{$_block-class}__overflow-menu-options {
|
94
94
|
// Need to disable stylelint until dart sass namespace support is added
|
95
|
-
/* stylelint-disable-next-line function-no-unknown */
|
96
95
|
z-index: utilities.z('header');
|
97
96
|
}
|