@carbon/ibm-products 1.9.0 → 1.11.1
Sign up to get free protection for your applications and to get access to all the features.
- package/css/index-full-carbon.css +364 -5838
- package/css/index-full-carbon.css.map +1 -1
- package/css/index-full-carbon.min.css +5 -5
- package/css/index-full-carbon.min.css.map +1 -1
- package/css/index-without-carbon-released-only.css +68 -3430
- package/css/index-without-carbon-released-only.css.map +1 -1
- package/css/index-without-carbon-released-only.min.css +3 -3
- package/css/index-without-carbon-released-only.min.css.map +1 -1
- package/css/index-without-carbon.css +185 -4098
- package/css/index-without-carbon.css.map +1 -1
- package/css/index-without-carbon.min.css +5 -5
- package/css/index-without-carbon.min.css.map +1 -1
- package/css/index.css +302 -4099
- package/css/index.css.map +1 -1
- package/css/index.min.css +5 -5
- package/css/index.min.css.map +1 -1
- package/es/components/AddSelect/AddSelect.js +98 -92
- package/es/components/AddSelect/AddSelectColumn.js +219 -8
- package/es/components/AddSelect/AddSelectList.js +5 -5
- package/es/components/AddSelect/AddSelectSidebar.js +3 -15
- package/es/components/AddSelect/add-select-utils.js +64 -0
- package/es/components/BreadcrumbWithOverflow/BreadcrumbWithOverflow.js +2 -1
- package/es/components/ButtonMenu/ButtonMenu.js +12 -4
- package/es/components/DataSpreadsheet/DataSpreadsheet.js +480 -182
- package/es/components/DataSpreadsheet/DataSpreadsheetBody.js +124 -81
- package/es/components/DataSpreadsheet/DataSpreadsheetHeader.js +74 -8
- package/es/components/DataSpreadsheet/hooks/useMoveActiveCell.js +27 -0
- package/es/components/DataSpreadsheet/hooks/useResetSpreadsheetFocus.js +28 -0
- package/es/components/DataSpreadsheet/hooks/useSpreadsheetOutsideClick.js +41 -0
- package/es/components/DataSpreadsheet/utils/checkActiveHeaderCell.js +34 -0
- package/es/components/DataSpreadsheet/{createActiveCellFn.js → utils/createActiveCellFn.js} +21 -8
- package/es/components/DataSpreadsheet/{createCellSelectionArea.js → utils/createCellSelectionArea.js} +8 -4
- package/es/components/DataSpreadsheet/{generateData.js → utils/generateData.js} +6 -0
- package/es/components/DataSpreadsheet/{getCellSize.js → utils/getCellSize.js} +0 -0
- package/es/components/DataSpreadsheet/utils/handleHeaderCellSelection.js +46 -0
- package/es/components/DataSpreadsheet/utils/handleMultipleKeys.js +82 -0
- package/es/components/DataSpreadsheet/utils/removeCellSelections.js +30 -0
- package/es/components/InlineEdit/InlineEdit.js +58 -27
- package/es/components/OptionsTile/OptionsTile.js +31 -21
- package/es/components/OptionsTile/index.js +1 -1
- package/es/components/PageHeader/PageHeader.js +26 -15
- package/es/components/PageHeader/PageHeaderTitle.js +2 -1
- package/es/components/PageHeader/PageHeaderUtils.js +24 -29
- package/es/components/TagSet/TagSet.js +12 -3
- package/es/components/UserProfileImage/UserProfileImage.js +2 -1
- package/es/components/index.js +0 -1
- package/es/global/js/package-settings.js +1 -2
- package/lib/components/AddSelect/AddSelect.js +101 -92
- package/lib/components/AddSelect/AddSelectColumn.js +232 -13
- package/lib/components/AddSelect/AddSelectList.js +5 -5
- package/lib/components/AddSelect/AddSelectSidebar.js +9 -15
- package/lib/components/AddSelect/add-select-utils.js +78 -0
- package/lib/components/BreadcrumbWithOverflow/BreadcrumbWithOverflow.js +2 -1
- package/lib/components/ButtonMenu/ButtonMenu.js +12 -4
- package/lib/components/DataSpreadsheet/DataSpreadsheet.js +490 -186
- package/lib/components/DataSpreadsheet/DataSpreadsheetBody.js +127 -82
- package/lib/components/DataSpreadsheet/DataSpreadsheetHeader.js +82 -9
- package/lib/components/DataSpreadsheet/hooks/useMoveActiveCell.js +37 -0
- package/lib/components/DataSpreadsheet/hooks/useResetSpreadsheetFocus.js +39 -0
- package/lib/components/DataSpreadsheet/hooks/useSpreadsheetOutsideClick.js +52 -0
- package/lib/components/DataSpreadsheet/utils/checkActiveHeaderCell.js +45 -0
- package/lib/components/DataSpreadsheet/{createActiveCellFn.js → utils/createActiveCellFn.js} +21 -8
- package/lib/components/DataSpreadsheet/{createCellSelectionArea.js → utils/createCellSelectionArea.js} +8 -4
- package/lib/components/DataSpreadsheet/{generateData.js → utils/generateData.js} +6 -0
- package/lib/components/DataSpreadsheet/{getCellSize.js → utils/getCellSize.js} +0 -0
- package/lib/components/DataSpreadsheet/utils/handleHeaderCellSelection.js +59 -0
- package/lib/components/DataSpreadsheet/utils/handleMultipleKeys.js +92 -0
- package/lib/components/DataSpreadsheet/utils/removeCellSelections.js +41 -0
- package/lib/components/InlineEdit/InlineEdit.js +60 -28
- package/lib/components/OptionsTile/OptionsTile.js +30 -20
- package/lib/components/PageHeader/PageHeader.js +25 -15
- package/lib/components/PageHeader/PageHeaderTitle.js +2 -1
- package/lib/components/PageHeader/PageHeaderUtils.js +24 -29
- package/lib/components/TagSet/TagSet.js +13 -3
- package/lib/components/UserProfileImage/UserProfileImage.js +2 -1
- package/lib/components/index.js +0 -8
- package/lib/global/js/package-settings.js +1 -2
- package/package.json +17 -17
- package/scss/components/AddSelect/_add-select.scss +47 -14
- package/scss/components/BreadcrumbWithOverflow/_breadcrumb-with-overflow.scss +7 -3
- package/scss/components/CreateInfluencer/_create-influencer.scss +2 -0
- package/scss/components/CreateModal/_create-modal.scss +1 -0
- package/scss/components/CreateSidePanel/_create-side-panel.scss +1 -1
- package/scss/components/CreateSidePanel/_storybook-styles.scss +1 -1
- package/scss/components/CreateTearsheet/_create-tearsheet.scss +1 -0
- package/scss/components/CreateTearsheetNarrow/_create-tearsheet-narrow.scss +1 -0
- package/scss/components/DataSpreadsheet/_data-spreadsheet.scss +25 -7
- package/scss/components/EditSidePanel/_edit-side-panel.scss +9 -0
- package/scss/components/EditSidePanel/_storybook-styles.scss +1 -1
- package/scss/components/InlineEdit/_inline-edit.scss +46 -39
- package/scss/components/InlineEdit/_storybook-styles.scss +1 -0
- package/scss/components/ModifiedTabs/_modified-tabs.scss +5 -0
- package/scss/components/NotificationsPanel/_notifications-panel.scss +10 -3
- package/scss/components/OptionsTile/_index.scss +1 -1
- package/scss/components/OptionsTile/_options-tile.scss +17 -17
- package/scss/components/OptionsTile/_storybook-styles.scss +4 -4
- package/scss/components/PageHeader/_page-header.scss +5 -2
- package/scss/components/SidePanel/_side-panel.scss +19 -12
- package/scss/components/StatusIcon/_status-icon.scss +1 -0
- package/scss/components/Tearsheet/_tearsheet.scss +4 -0
- package/scss/components/UserProfileImage/_user-profile-image.scss +9 -0
- package/scss/components/WebTerminal/_web-terminal.scss +2 -0
- package/scss/components/_index.scss +0 -1
- package/es/components/LoadingBar/LoadingBar.js +0 -156
- package/es/components/LoadingBar/index.js +0 -7
- package/lib/components/LoadingBar/LoadingBar.js +0 -170
- package/lib/components/LoadingBar/index.js +0 -13
- package/scss/components/LoadingBar/_index.scss +0 -8
- package/scss/components/LoadingBar/_loading-bar.scss +0 -211
- package/scss/components/LoadingBar/_storybook-styles.scss +0 -14
@@ -2,7 +2,7 @@ import _extends from "@babel/runtime/helpers/extends";
|
|
2
2
|
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
3
3
|
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
4
4
|
import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
|
5
|
-
var _excluded = ["actionBarItems", "actionBarMenuOptionsClass", "actionBarOverflowAriaLabel", "allTagsModalSearchLabel", "allTagsModalSearchPlaceholderText", "allTagsModalTitle", "hasBackgroundAlways", "breadcrumbOverflowAriaLabel", "breadcrumbs", "children", "className", "collapseHeader", "collapseHeaderIconDescription", "collapseTitle", "disableBreadcrumbScroll", "expandHeaderIconDescription", "fullWidthGrid", "hasCollapseHeaderToggle", "narrowGrid", "navigation", "pageActions", "pageActionsOverflowLabel", "pageActionsMenuOptionsClass", "showAllTagsLabel", "subtitle", "tags", "title", "withoutBackground"];
|
5
|
+
var _excluded = ["actionBarItems", "actionBarMenuOptionsClass", "actionBarOverflowAriaLabel", "allTagsModalSearchLabel", "allTagsModalSearchPlaceholderText", "allTagsModalTitle", "hasBackgroundAlways", "breadcrumbOverflowAriaLabel", "breadcrumbs", "children", "className", "collapseHeader", "collapseHeaderIconDescription", "collapseTitle", "disableBreadcrumbScroll", "enableBreadcrumbScroll", "expandHeaderIconDescription", "fullWidthGrid", "hasCollapseHeaderToggle", "narrowGrid", "navigation", "pageActions", "pageActionsOverflowLabel", "pageActionsMenuOptionsClass", "showAllTagsLabel", "subtitle", "tags", "title", "withoutBackground"];
|
6
6
|
|
7
7
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
8
8
|
|
@@ -20,6 +20,7 @@ import { layout05, baseFontSize } from '@carbon/layout';
|
|
20
20
|
import cx from 'classnames';
|
21
21
|
import { useResizeDetector } from 'react-resize-detector';
|
22
22
|
import { Grid, Column, Row, Button, Tag } from 'carbon-components-react';
|
23
|
+
import { breakpoints } from '@carbon/layout';
|
23
24
|
import { useWindowResize, useNearestScroll } from '../../global/js/hooks';
|
24
25
|
import { getDevtoolsProps } from '../../global/js/utils/devtools';
|
25
26
|
import { deprecateProp, prepareProps } from '../../global/js/utils/props-helper';
|
@@ -38,7 +39,7 @@ var defaults = {
|
|
38
39
|
narrowGrid: false
|
39
40
|
};
|
40
41
|
export var PageHeader = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
41
|
-
var _withoutBackground, _ref6, _cx2, _ref7, _cx4, _cx7;
|
42
|
+
var _withoutBackground, _enableBreadcrumbScro, _ref6, _cx2, _ref7, _cx4, _cx7;
|
42
43
|
|
43
44
|
var actionBarItems = _ref.actionBarItems,
|
44
45
|
actionBarMenuOptionsClass = _ref.actionBarMenuOptionsClass,
|
@@ -54,7 +55,8 @@ export var PageHeader = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
54
55
|
collapseHeader = _ref.collapseHeader,
|
55
56
|
collapseHeaderIconDescription = _ref.collapseHeaderIconDescription,
|
56
57
|
collapseTitle = _ref.collapseTitle,
|
57
|
-
|
58
|
+
deprecated_disableBreadcrumbScroll = _ref.disableBreadcrumbScroll,
|
59
|
+
enableBreadcrumbScroll = _ref.enableBreadcrumbScroll,
|
58
60
|
expandHeaderIconDescription = _ref.expandHeaderIconDescription,
|
59
61
|
_ref$fullWidthGrid = _ref.fullWidthGrid,
|
60
62
|
fullWidthGrid = _ref$fullWidthGrid === void 0 ? defaults.fullWidthGrid : _ref$fullWidthGrid,
|
@@ -73,8 +75,10 @@ export var PageHeader = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
73
75
|
rest = _objectWithoutProperties(_ref, _excluded);
|
74
76
|
|
75
77
|
// handle deprecated props - START
|
76
|
-
// if withoutBackground is
|
77
|
-
(_withoutBackground = withoutBackground) !== null && _withoutBackground !== void 0 ? _withoutBackground : withoutBackground = !(deprecated_hasBackgroundAlways !== null && deprecated_hasBackgroundAlways !== void 0 ? deprecated_hasBackgroundAlways : true); //
|
78
|
+
// if withoutBackground is nullish check deprecated_hasBackgroundAlways and default false
|
79
|
+
(_withoutBackground = withoutBackground) !== null && _withoutBackground !== void 0 ? _withoutBackground : withoutBackground = !(deprecated_hasBackgroundAlways !== null && deprecated_hasBackgroundAlways !== void 0 ? deprecated_hasBackgroundAlways : true); // prefer enabled if nullish check deprecated_disableBreadcrumbScroll and default false
|
80
|
+
|
81
|
+
(_enableBreadcrumbScro = enableBreadcrumbScroll) !== null && _enableBreadcrumbScro !== void 0 ? _enableBreadcrumbScro : enableBreadcrumbScroll = !(deprecated_disableBreadcrumbScroll !== null && deprecated_disableBreadcrumbScroll !== void 0 ? deprecated_disableBreadcrumbScroll : true); // handle deprecated props - END
|
78
82
|
|
79
83
|
var _useState = useState({}),
|
80
84
|
_useState2 = _slicedToArray(_useState, 2),
|
@@ -96,7 +100,7 @@ export var PageHeader = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
96
100
|
var hasBreadcrumbRow = !!breadcrumbs || !!actionBarItems; // utility functions
|
97
101
|
|
98
102
|
var checkUpdateVerticalSpace = function checkUpdateVerticalSpace() {
|
99
|
-
return utilCheckUpdateVerticalSpace(headerRef, offsetTopMeasuringRef, navigation,
|
103
|
+
return utilCheckUpdateVerticalSpace(headerRef, offsetTopMeasuringRef, navigation, enableBreadcrumbScroll, hasActionBar, widthIsNarrow, setMetrics);
|
100
104
|
}; // NOTE: The buffer is used to add space between the bottom of the header and the last content
|
101
105
|
// Not pre-collapsed and (subtitle or children)
|
102
106
|
|
@@ -215,6 +219,7 @@ export var PageHeader = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
215
219
|
|
216
220
|
|
217
221
|
useEffect(function () {
|
222
|
+
/* istanbul ignore else */
|
218
223
|
if (pageActions !== null && pageActions !== void 0 && pageActions.content) {
|
219
224
|
var minWidth = pageActions.minWidth,
|
220
225
|
maxWidth = pageActions.maxWidth;
|
@@ -272,8 +277,9 @@ export var PageHeader = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
272
277
|
return _objectSpread(_objectSpread({}, prev), {}, (_objectSpread3 = {}, _defineProperty(_objectSpread3, "--".concat(blockClass, "--height-px"), "".concat(metrics.headerHeight, "px")), _defineProperty(_objectSpread3, "--".concat(blockClass, "--width-px"), "".concat(metrics.headerWidth, "px")), _defineProperty(_objectSpread3, "--".concat(blockClass, "--header-top"), "".concat(metrics.headerTopValue + metrics.headerOffset, "px")), _defineProperty(_objectSpread3, "--".concat(blockClass, "--breadcrumb-title-visibility"), scrollYValue > 0 ? 'visible' : 'hidden'), _defineProperty(_objectSpread3, "--".concat(blockClass, "--scroll"), "".concat(scrollYValue)), _defineProperty(_objectSpread3, "--".concat(blockClass, "--breadcrumb-title-top"), "".concat(Math.max(0, metrics.breadcrumbTitleHeight + metrics.titleRowSpaceAbove - scrollYValue), "px")), _defineProperty(_objectSpread3, "--".concat(blockClass, "--breadcrumb-title-opacity"), "".concat(Math.min(1, Math.max(0, (scrollYValue - (metrics.titleRowSpaceAbove || 0)) / (metrics.breadcrumbTitleHeight || 1) // don't want to divide by zero
|
273
278
|
)))), _defineProperty(_objectSpread3, "--".concat(blockClass, "--breadcrumb-row-width-px"), "".concat(metrics.breadcrumbRowWidth, "px")), _objectSpread3));
|
274
279
|
});
|
275
|
-
}, [headerRef,
|
280
|
+
}, [headerRef, enableBreadcrumbScroll, metrics, metrics.breadcrumbRowHeight, metrics.breadcrumbRowSpaceBelow, metrics.breadcrumbTitleHeight, metrics.breadcrumbRowWidth, metrics.headerHeight, metrics.headerWidth, metrics.headerOffset, metrics.headerTopValue, metrics.navigationRowHeight, navigation, scrollYValue, tags]);
|
276
281
|
useNearestScroll(headerRef, // on scroll or various layout changes check updates if needed
|
282
|
+
// istanbul ignore next
|
277
283
|
function (_ref4) {
|
278
284
|
var current = _ref4.current;
|
279
285
|
setPageHeaderStyles(function (prev) {
|
@@ -290,13 +296,13 @@ export var PageHeader = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
290
296
|
document.documentElement.style.setProperty("--".concat(blockClass, "--tagset-tooltip-position"), fullyCollapsed ? 'fixed' : 'absolute');
|
291
297
|
document.documentElement.style.setProperty("--".concat(blockClass, "--tagset-tooltip-offset"), "".concat(tagsetTooltipOffset, "px"));
|
292
298
|
setScrollYValue(current.scrollY);
|
293
|
-
}, [metrics.headerHeight, metrics.headerTopValue, metrics.headerOffset,
|
299
|
+
}, [metrics.headerHeight, metrics.headerTopValue, metrics.headerOffset, enableBreadcrumbScroll]);
|
294
300
|
useWindowResize(function (_ref5) {
|
295
301
|
var current = _ref5.current;
|
296
302
|
// on window resize and other updates some values may have changed
|
297
303
|
checkUpdateVerticalSpace();
|
298
|
-
setWidthIsNarrow(current.innerWidth <
|
299
|
-
}, [actionBarItems, children, breadcrumbs,
|
304
|
+
setWidthIsNarrow(current.innerWidth < breakpoints.md.width); // small (below medium) media query
|
305
|
+
}, [actionBarItems, children, breadcrumbs, enableBreadcrumbScroll, navigation, pageActions, subtitle, tags, title]);
|
300
306
|
useEffect(function () {
|
301
307
|
checkUpdateVerticalSpace(); // eslint-disable-next-line react-hooks/exhaustive-deps
|
302
308
|
}, [fullWidthGrid, narrowGrid]);
|
@@ -334,7 +340,7 @@ export var PageHeader = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
334
340
|
|
335
341
|
var nextToTabsCheck = function nextToTabsCheck() {
|
336
342
|
/* istanbul ignore next */
|
337
|
-
return
|
343
|
+
return enableBreadcrumbScroll && !actionBarItems && scrollYValue + metrics.headerTopValue >= 0;
|
338
344
|
};
|
339
345
|
|
340
346
|
useEffect(function () {
|
@@ -425,7 +431,7 @@ export var PageHeader = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
425
431
|
showAllTagsLabel: showAllTagsLabel,
|
426
432
|
tags: tags,
|
427
433
|
overflowClassName: "".concat(blockClass, "__navigation-tags-overflow")
|
428
|
-
}))) : null), // this navigation pushes the breadcrumb off or settles underneath it depending on
|
434
|
+
}))) : null), // this navigation pushes the breadcrumb off or settles underneath it depending on enableBreadcrumbScroll
|
429
435
|
navigation ? /*#__PURE__*/React.createElement(Row, {
|
430
436
|
className: cx("".concat(blockClass, "__navigation-row"), (_cx7 = {}, _defineProperty(_cx7, "".concat(blockClass, "__navigation-row--spacing-above-06"), !!navigation), _defineProperty(_cx7, "".concat(blockClass, "__navigation-row--has-tags"), tags), _cx7))
|
431
437
|
}, /*#__PURE__*/React.createElement(Column, {
|
@@ -497,6 +503,11 @@ var TYPES = {
|
|
497
503
|
};
|
498
504
|
var tagTypes = Object.keys(TYPES);
|
499
505
|
export var deprecatedProps = {
|
506
|
+
/**
|
507
|
+
* **Deprecated** see property `enableBreadcrumbScroll`
|
508
|
+
*/
|
509
|
+
disableBreadcrumbScroll: deprecateProp(PropTypes.bool, 'Property replaced by `enableBreadcrumbScroll`'),
|
510
|
+
|
500
511
|
/**
|
501
512
|
* **Deprecated** see property `withoutBackground`
|
502
513
|
*/
|
@@ -645,10 +656,10 @@ PageHeader.propTypes = _objectSpread({
|
|
645
656
|
collapseTitle: PropTypes.bool,
|
646
657
|
|
647
658
|
/**
|
648
|
-
* Standard
|
649
|
-
*
|
659
|
+
* Standard keeps the breadcrumb on the page. This option allows the breadcrumb
|
660
|
+
* to scroll off
|
650
661
|
*/
|
651
|
-
|
662
|
+
enableBreadcrumbScroll: PropTypes.bool,
|
652
663
|
|
653
664
|
/**
|
654
665
|
* If `hasCollapseHeaderToggle` is set and `withoutBackground` is unset/falsy then assistive text is
|
@@ -55,7 +55,8 @@ export var PageHeaderTitle = function PageHeaderTitle(_ref) {
|
|
55
55
|
onSave: onSave,
|
56
56
|
labelText: editableLabel,
|
57
57
|
revertDescription: revertDescription,
|
58
|
-
saveDescription: saveDescription
|
58
|
+
saveDescription: saveDescription,
|
59
|
+
buttonTooltipPosition: "bottom"
|
59
60
|
}, rest)) : /*#__PURE__*/React.createElement("span", {
|
60
61
|
title: !loading ? asText : null
|
61
62
|
}, text));
|
@@ -21,13 +21,13 @@ export var blockClass = "".concat(pkg.prefix, "--page-header");
|
|
21
21
|
* @param {{}} headerRef
|
22
22
|
* @param {{}} offsetTopMeasuringRef
|
23
23
|
* @param {{}} navigation
|
24
|
-
* @param {boolean}
|
24
|
+
* @param {boolean} enableBreadcrumbScroll
|
25
25
|
* @param {boolean} hasActionBar
|
26
26
|
* @param {boolean} widthIsNarrow
|
27
27
|
* @param {()} setMetrics
|
28
28
|
*/
|
29
29
|
|
30
|
-
export var utilCheckUpdateVerticalSpace = function utilCheckUpdateVerticalSpace(headerRef, offsetTopMeasuringRef, navigation,
|
30
|
+
export var utilCheckUpdateVerticalSpace = function utilCheckUpdateVerticalSpace(headerRef, offsetTopMeasuringRef, navigation, enableBreadcrumbScroll, hasActionBar, widthIsNarrow, setMetrics) {
|
31
31
|
var dynamicRefs = {};
|
32
32
|
|
33
33
|
var getDynamicRef = function getDynamicRef(selector) {
|
@@ -75,7 +75,10 @@ export var utilCheckUpdateVerticalSpace = function utilCheckUpdateVerticalSpace(
|
|
75
75
|
var scrollableContainer = scrollableAncestor(headerRef.current);
|
76
76
|
/* istanbul ignore next */
|
77
77
|
|
78
|
-
|
78
|
+
var scrollableContainerTop = scrollableContainer ? scrollableContainer.scrollTop - scrollableContainer.offsetTop : 0; // The header offset calculation is either going to work out at 0 if we have no gap between scrolling container
|
79
|
+
// top and the measuring ref top, or the difference between. It does not change on scroll or resize.
|
80
|
+
|
81
|
+
update.headerOffset = scrollableContainerTop + offsetTopMeasuringRef.current.getBoundingClientRect().top;
|
79
82
|
/* istanbul ignore next */
|
80
83
|
|
81
84
|
update.breadcrumbRowHeight = breadcrumbRowEl ? breadcrumbRowEl.clientHeight : 0;
|
@@ -112,42 +115,34 @@ export var utilCheckUpdateVerticalSpace = function utilCheckUpdateVerticalSpace(
|
|
112
115
|
update.headerTopValue += 8;
|
113
116
|
}
|
114
117
|
|
115
|
-
if (
|
118
|
+
if (!enableBreadcrumbScroll || !navigation) {
|
116
119
|
// adjust sticky top if no navigation or breadcrumb is to stay on screen
|
117
120
|
update.headerTopValue += update.breadcrumbRowHeight;
|
118
|
-
}
|
119
|
-
if (navigation && !widthIsNarrow) {
|
120
|
-
update.headerTopValue -= 8;
|
121
|
-
}
|
122
|
-
}
|
121
|
+
} // if (window) {
|
123
122
|
|
124
|
-
if (window) {
|
125
|
-
var val;
|
126
|
-
/* don't know how to test resize */
|
127
123
|
|
128
|
-
|
124
|
+
var val;
|
125
|
+
/* don't know how to test resize */
|
129
126
|
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
127
|
+
/* istanbul ignore if */
|
128
|
+
|
129
|
+
if (breadcrumbRowEl) {
|
130
|
+
val = parseFloat(window.getComputedStyle(breadcrumbRowEl).getPropertyValue('margin-bottom'), 10);
|
131
|
+
update.breadcrumbRowSpaceBelow = isNaN(val) ? 0 : val;
|
132
|
+
}
|
133
|
+
/* don't know how to test resize */
|
135
134
|
|
136
|
-
|
135
|
+
/* istanbul ignore if */
|
137
136
|
|
138
137
|
|
139
|
-
|
140
|
-
|
141
|
-
|
138
|
+
if (titleRowEl) {
|
139
|
+
val = parseFloat(window.getComputedStyle(titleRowEl).getPropertyValue('margin-top'), 10);
|
140
|
+
update.titleRowSpaceAbove = isNaN(val) ? 0 : val;
|
142
141
|
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
}
|
142
|
+
if (pageActionsEl) {
|
143
|
+
val = parseFloat(window.getComputedStyle(pageActionsEl).getPropertyValue('margin-top'), 10);
|
144
|
+
update.pageActionsSpaceAbove = titleRowEl.clientHeight - pageActionsEl.clientHeight + update.titleRowSpaceAbove - (isNaN(val) ? 0 : val);
|
147
145
|
}
|
148
|
-
} else {
|
149
|
-
update.breadcrumbRowSpaceBelow = 0;
|
150
|
-
update.titleRowSpaceAbove = 0;
|
151
146
|
}
|
152
147
|
|
153
148
|
return _objectSpread(_objectSpread({}, previous), update);
|
@@ -2,7 +2,7 @@ import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
2
2
|
import _extends from "@babel/runtime/helpers/extends";
|
3
3
|
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
4
4
|
import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
|
5
|
-
var _excluded = ["align", "className", "maxVisible", "overflowAlign", "overflowClassName", "overflowDirection", "allTagsModalTitle", "allTagsModalSearchLabel", "allTagsModalSearchPlaceholderText", "showAllTagsLabel", "tags"],
|
5
|
+
var _excluded = ["align", "allTagsModalTarget", "className", "maxVisible", "overflowAlign", "overflowClassName", "overflowDirection", "allTagsModalTitle", "allTagsModalSearchLabel", "allTagsModalSearchPlaceholderText", "showAllTagsLabel", "tags"],
|
6
6
|
_excluded2 = ["label", "id"],
|
7
7
|
_excluded3 = ["label"];
|
8
8
|
|
@@ -17,6 +17,7 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
|
|
17
17
|
// LICENSE file in the root directory of this source tree.
|
18
18
|
//
|
19
19
|
import React, { useState, useEffect, useRef, useCallback } from 'react';
|
20
|
+
import { createPortal } from 'react-dom';
|
20
21
|
import PropTypes from 'prop-types';
|
21
22
|
import cx from 'classnames';
|
22
23
|
import { TagSetOverflow } from './TagSetOverflow';
|
@@ -32,12 +33,15 @@ var allTagsModalSearchThreshold = 10; // Default values for props
|
|
32
33
|
|
33
34
|
var defaults = {
|
34
35
|
align: 'start',
|
36
|
+
allTagsModalTarget: document.body,
|
35
37
|
overflowAlign: 'center',
|
36
38
|
overflowDirection: 'bottom'
|
37
39
|
};
|
38
40
|
export var TagSet = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
39
41
|
var _ref$align = _ref.align,
|
40
42
|
align = _ref$align === void 0 ? defaults.align : _ref$align,
|
43
|
+
_ref$allTagsModalTarg = _ref.allTagsModalTarget,
|
44
|
+
allTagsModalTarget = _ref$allTagsModalTarg === void 0 ? defaults.allTagsModalTarget : _ref$allTagsModalTarg,
|
41
45
|
className = _ref.className,
|
42
46
|
maxVisible = _ref.maxVisible,
|
43
47
|
_ref$overflowAlign = _ref.overflowAlign,
|
@@ -224,14 +228,14 @@ export var TagSet = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
224
228
|
}, hiddenSizingTags), /*#__PURE__*/React.createElement("div", {
|
225
229
|
className: "".concat(blockClass, "__tag-container"),
|
226
230
|
ref: displayedArea
|
227
|
-
}, displayedTags)), tags && displayCount < tags.length ? /*#__PURE__*/React.createElement(TagSetModal, {
|
231
|
+
}, displayedTags)), allTagsModalTarget && tags && displayCount < tags.length ? /*#__PURE__*/createPortal( /*#__PURE__*/React.createElement(TagSetModal, {
|
228
232
|
allTags: tags,
|
229
233
|
open: showAllModalOpen,
|
230
234
|
title: allTagsModalTitle,
|
231
235
|
onClose: handleModalClose,
|
232
236
|
searchLabel: allTagsModalSearchLabel,
|
233
237
|
searchPlaceholder: allTagsModalSearchPlaceholderText
|
234
|
-
}) : null);
|
238
|
+
}), allTagsModalTarget) : null);
|
235
239
|
}); // Return a placeholder if not released and not enabled by feature flag
|
236
240
|
|
237
241
|
TagSet = pkg.checkComponentEnabled(TagSet, componentName);
|
@@ -276,6 +280,11 @@ TagSet.propTypes = {
|
|
276
280
|
*/
|
277
281
|
allTagsModalSearchPlaceholderText: string_required_if_more_than_10_tags,
|
278
282
|
|
283
|
+
/**
|
284
|
+
* portal target for the all tags modal
|
285
|
+
*/
|
286
|
+
allTagsModalTarget: PropTypes.node,
|
287
|
+
|
279
288
|
/**
|
280
289
|
* title for the show all modal. **Note: Required if more than 10 tags**
|
281
290
|
*/
|
@@ -78,7 +78,8 @@ export var UserProfileImage = /*#__PURE__*/React.forwardRef(function (_ref, ref)
|
|
78
78
|
};
|
79
79
|
|
80
80
|
return FillItem && (tooltipText ? /*#__PURE__*/React.createElement(TooltipIcon, {
|
81
|
-
tooltipText: tooltipText
|
81
|
+
tooltipText: tooltipText,
|
82
|
+
className: "".concat(blockClass, "__tooltip")
|
82
83
|
}, renderUserProfileImage()) : renderUserProfileImage());
|
83
84
|
}); // Return a placeholder if not released and not enabled by feature flag
|
84
85
|
|
package/es/components/index.js
CHANGED
@@ -18,7 +18,6 @@ export { ExportModal } from './ExportModal';
|
|
18
18
|
export { ExpressiveCard } from './ExpressiveCard';
|
19
19
|
export { HTTPError403, HTTPError404, HTTPErrorOther } from './HTTPErrors';
|
20
20
|
export { ImportModal } from './ImportModal';
|
21
|
-
export { LoadingBar } from './LoadingBar';
|
22
21
|
export { ModifiedTabs } from './ModifiedTabs';
|
23
22
|
export { MultiAddSelect } from './MultiAddSelect';
|
24
23
|
export { NotificationsPanel } from './NotificationsPanel';
|
@@ -40,6 +40,7 @@ var defaults = {
|
|
40
40
|
NoTagsEmptyState: true,
|
41
41
|
NotFoundEmptyState: true,
|
42
42
|
NotificationsEmptyState: true,
|
43
|
+
OptionsTile: true,
|
43
44
|
PageHeader: true,
|
44
45
|
ProductiveCard: true,
|
45
46
|
RemoveModal: true,
|
@@ -54,14 +55,12 @@ var defaults = {
|
|
54
55
|
// other public components not yet reviewed and released:
|
55
56
|
MultiAddSelect: false,
|
56
57
|
SingleAddSelect: false,
|
57
|
-
LoadingBar: false,
|
58
58
|
ModifiedTabs: false,
|
59
59
|
Toolbar: false,
|
60
60
|
ToolbarButton: false,
|
61
61
|
ToolbarGroup: false,
|
62
62
|
WebTerminal: false,
|
63
63
|
EditSidePanel: false,
|
64
|
-
OptionsTile: false,
|
65
64
|
CancelableTextEdit: false,
|
66
65
|
InlineEdit: false,
|
67
66
|
DataSpreadsheet: false
|