@carbon/ibm-products 1.3.0 → 1.6.1
Sign up to get free protection for your applications and to get access to all the features.
- package/css/index-full-carbon.css +5102 -4711
- package/css/index-full-carbon.css.map +1 -1
- package/css/index-full-carbon.min.css +9 -3
- package/css/index-full-carbon.min.css.map +1 -0
- package/css/index-without-carbon-released-only.css +189 -108
- 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 -0
- package/css/index-without-carbon.css +619 -236
- package/css/index-without-carbon.css.map +1 -1
- package/css/index-without-carbon.min.css +9 -3
- package/css/index-without-carbon.min.css.map +1 -0
- package/css/index.css +950 -567
- package/css/index.css.map +1 -1
- package/css/index.min.css +9 -3
- package/css/index.min.css.map +1 -0
- package/es/components/APIKeyModal/APIKeyModal.js +25 -29
- package/es/components/ActionBar/ActionBar.js +4 -1
- package/es/components/ActionSet/ActionSet.js +22 -10
- package/es/components/ActionSet/actions.js +25 -17
- package/es/components/AddSelect/AddSelect.js +141 -53
- package/es/components/AddSelect/AddSelectBreadcrumbs.js +56 -0
- package/es/components/AddSelect/AddSelectList.js +94 -0
- package/es/components/AddSelect/AddSelectSidebar.js +78 -0
- package/es/components/BreadcrumbWithOverflow/BreadcrumbWithOverflow.js +24 -17
- package/es/components/CancelableTextEdit/CancelableTextEdit.js +62 -24
- package/es/components/Card/Card.js +6 -4
- package/es/components/CreateFullPage/CreateFullPage.js +102 -258
- package/es/components/CreateFullPage/CreateFullPageStep.js +65 -13
- package/es/components/CreateFullPage/index.js +1 -2
- package/es/components/CreateInfluencer/CreateInfluencer.js +40 -220
- package/es/components/CreateTearsheet/CreateTearsheet.js +95 -146
- package/es/components/CreateTearsheet/CreateTearsheetStep.js +70 -20
- package/es/components/CreateTearsheet/index.js +0 -1
- package/es/components/CreateTearsheet/preview-components/MultiStepTearsheet.js +87 -28
- package/es/components/CreateTearsheet/preview-components/MultiStepWithIntro.js +8 -6
- package/es/components/EmptyStates/EmptyState.js +1 -1
- package/es/components/EmptyStates/EmptyStateContent.js +2 -2
- package/es/components/EmptyStates/ErrorEmptyState/ErrorEmptyState.js +1 -1
- package/es/components/EmptyStates/NoDataEmptyState/NoDataEmptyState.js +1 -1
- package/es/components/EmptyStates/NoTagsEmptyState/NoTagsEmptyState.js +1 -1
- package/es/components/EmptyStates/NotFoundEmptyState/NotFoundEmptyState.js +1 -1
- package/es/components/EmptyStates/NotificationsEmptyState/NotificationsEmptyState.js +1 -1
- package/es/components/EmptyStates/UnauthorizedEmptyState/UnauthorizedEmptyState.js +1 -1
- package/es/components/ExportModal/ExportModal.js +41 -12
- package/es/components/ImportModal/ImportModal.js +2 -1
- package/es/components/InlineEdit/InlineEdit.js +397 -0
- package/es/components/InlineEdit/index.js +7 -0
- package/es/components/MultiAddSelect/MultiAddSelect.js +16 -0
- package/es/components/MultiAddSelect/index.js +1 -0
- package/es/components/NotificationsPanel/NotificationsPanel.js +16 -3
- package/es/components/OptionsTile/OptionsTile.js +36 -15
- package/es/components/PageHeader/PageHeader.js +59 -35
- package/es/components/PageHeader/PageHeaderTitle.js +82 -7
- package/es/components/PageHeader/PageHeaderUtils.js +21 -2
- package/es/components/RemoveModal/RemoveModal.js +4 -2
- package/es/components/SidePanel/SidePanel.js +33 -16
- package/es/components/SingleAddSelect/SingleAddSelect.js +15 -0
- package/es/components/SingleAddSelect/index.js +1 -0
- package/es/components/TagSet/TagSet.js +4 -1
- package/es/components/Tearsheet/Tearsheet.js +1 -1
- package/es/components/Tearsheet/TearsheetNarrow.js +1 -1
- package/es/components/Tearsheet/TearsheetShell.js +1 -1
- package/es/components/Toolbar/Toolbar.js +69 -8
- package/es/components/WebTerminal/WebTerminal.js +1 -1
- package/es/components/index.js +4 -2
- package/es/global/js/hooks/index.js +1 -0
- package/es/global/js/hooks/useCreateComponentFocus.js +15 -19
- package/es/global/js/hooks/useCreateComponentStepChange.js +69 -79
- package/es/global/js/hooks/useResetCreateComponent.js +7 -4
- package/es/global/js/hooks/useRetrieveStepData.js +51 -0
- package/es/global/js/hooks/useValidCreateStepCount.js +4 -7
- package/es/global/js/package-settings.js +4 -2
- package/es/global/js/utils/lastIndexInArray.js +26 -0
- package/es/settings.js +0 -5
- package/lib/components/APIKeyModal/APIKeyModal.js +25 -29
- package/lib/components/ActionBar/ActionBar.js +4 -1
- package/lib/components/ActionSet/ActionSet.js +22 -10
- package/lib/components/ActionSet/actions.js +25 -17
- package/lib/components/AddSelect/AddSelect.js +141 -50
- package/lib/components/AddSelect/AddSelectBreadcrumbs.js +71 -0
- package/lib/components/AddSelect/AddSelectList.js +112 -0
- package/lib/components/AddSelect/AddSelectSidebar.js +89 -0
- package/lib/components/BreadcrumbWithOverflow/BreadcrumbWithOverflow.js +23 -16
- package/lib/components/CancelableTextEdit/CancelableTextEdit.js +62 -23
- package/lib/components/Card/Card.js +6 -4
- package/lib/components/CreateFullPage/CreateFullPage.js +102 -258
- package/lib/components/CreateFullPage/CreateFullPageStep.js +68 -13
- package/lib/components/CreateFullPage/index.js +1 -9
- package/lib/components/CreateInfluencer/CreateInfluencer.js +38 -231
- package/lib/components/CreateTearsheet/CreateTearsheet.js +97 -148
- package/lib/components/CreateTearsheet/CreateTearsheetStep.js +72 -19
- package/lib/components/CreateTearsheet/index.js +0 -8
- package/lib/components/CreateTearsheet/preview-components/MultiStepTearsheet.js +86 -34
- package/lib/components/CreateTearsheet/preview-components/MultiStepWithIntro.js +8 -6
- package/lib/components/EmptyStates/EmptyState.js +1 -1
- package/lib/components/EmptyStates/EmptyStateContent.js +2 -2
- package/lib/components/EmptyStates/ErrorEmptyState/ErrorEmptyState.js +1 -1
- package/lib/components/EmptyStates/NoDataEmptyState/NoDataEmptyState.js +1 -1
- package/lib/components/EmptyStates/NoTagsEmptyState/NoTagsEmptyState.js +1 -1
- package/lib/components/EmptyStates/NotFoundEmptyState/NotFoundEmptyState.js +1 -1
- package/lib/components/EmptyStates/NotificationsEmptyState/NotificationsEmptyState.js +1 -1
- package/lib/components/EmptyStates/UnauthorizedEmptyState/UnauthorizedEmptyState.js +1 -1
- package/lib/components/ExportModal/ExportModal.js +38 -11
- package/lib/components/ImportModal/ImportModal.js +2 -1
- package/lib/components/InlineEdit/InlineEdit.js +413 -0
- package/lib/components/InlineEdit/index.js +13 -0
- package/lib/components/MultiAddSelect/MultiAddSelect.js +37 -0
- package/lib/components/MultiAddSelect/index.js +13 -0
- package/lib/components/NotificationsPanel/NotificationsPanel.js +13 -1
- package/lib/components/OptionsTile/OptionsTile.js +36 -15
- package/lib/components/PageHeader/PageHeader.js +59 -35
- package/lib/components/PageHeader/PageHeaderTitle.js +91 -9
- package/lib/components/PageHeader/PageHeaderUtils.js +21 -2
- package/lib/components/RemoveModal/RemoveModal.js +4 -2
- package/lib/components/SidePanel/SidePanel.js +33 -16
- package/lib/components/SingleAddSelect/SingleAddSelect.js +36 -0
- package/lib/components/SingleAddSelect/index.js +13 -0
- package/lib/components/TagSet/TagSet.js +4 -1
- package/lib/components/Tearsheet/Tearsheet.js +1 -1
- package/lib/components/Tearsheet/TearsheetNarrow.js +1 -1
- package/lib/components/Tearsheet/TearsheetShell.js +1 -1
- package/lib/components/Toolbar/Toolbar.js +69 -6
- package/lib/components/WebTerminal/WebTerminal.js +1 -1
- package/lib/components/index.js +25 -9
- package/lib/global/js/hooks/index.js +8 -0
- package/lib/global/js/hooks/useCreateComponentFocus.js +15 -19
- package/lib/global/js/hooks/useCreateComponentStepChange.js +69 -79
- package/lib/global/js/hooks/useResetCreateComponent.js +7 -4
- package/lib/global/js/hooks/useRetrieveStepData.js +62 -0
- package/lib/global/js/hooks/useValidCreateStepCount.js +4 -7
- package/lib/global/js/package-settings.js +4 -2
- package/lib/global/js/utils/lastIndexInArray.js +35 -0
- package/lib/settings.js +0 -6
- package/package.json +24 -24
- package/scss/components/AddSelect/_add-select.scss +53 -8
- package/scss/components/BreadcrumbWithOverflow/_breadcrumb-with-overflow.scss +19 -15
- package/scss/components/BreadcrumbWithOverflow/_index.scss +1 -1
- package/scss/components/CancelableTextEdit/_cancelable-text-edit.scss +142 -70
- package/scss/components/CancelableTextEdit/_storybook-styles.scss +0 -7
- package/scss/components/CreateFullPage/_create-full-page.scss +4 -11
- package/scss/components/CreateInfluencer/_create-influencer.scss +4 -4
- package/scss/components/CreateTearsheet/_create-tearsheet.scss +6 -10
- package/scss/components/CreateTearsheetNarrow/_storybook-styles.scss +0 -6
- package/scss/components/EditSidePanel/_storybook-styles.scss +0 -8
- package/scss/components/InlineEdit/_index.scss +8 -0
- package/scss/components/InlineEdit/_inline-edit.scss +320 -0
- package/scss/components/InlineEdit/_storybook-styles.scss +21 -0
- package/scss/components/LoadingBar/_storybook-styles.scss +0 -5
- package/scss/components/MultiAddSelect/_index.scss +1 -0
- package/scss/components/MultiAddSelect/_multi-add-select.scss +1 -0
- package/scss/components/MultiAddSelect/_storybook-styles.scss +6 -0
- package/scss/components/NotificationsPanel/_notifications-panel.scss +2 -2
- package/scss/components/OptionsTile/_storybook-styles.scss +0 -7
- package/scss/components/PageHeader/_index.scss +1 -1
- package/scss/components/PageHeader/_page-header.scss +18 -5
- package/scss/components/ProductiveCard/_productive-card.scss +0 -4
- package/scss/components/SidePanel/_side-panel.scss +15 -6
- package/scss/components/SingleAddSelect/_index.scss +1 -0
- package/scss/components/SingleAddSelect/_single-add-select.scss +1 -0
- package/scss/components/SingleAddSelect/_storybook-styles.scss +6 -0
- package/scss/components/StatusIcon/_index.scss +1 -1
- package/scss/components/StatusIcon/_status-icon.scss +6 -4
- package/scss/components/TagSet/_index.scss +1 -1
- package/scss/components/UserProfileImage/_index.scss +1 -1
- package/scss/components/UserProfileImage/_user-profile-image.scss +2 -2
- package/scss/components/WebTerminal/_web-terminal.scss +2 -2
- package/scss/components/_index.scss +3 -1
- package/scss/global/styles/_project-settings.scss +5 -1
- package/es/components/CreateFullPage/CreateFullPageSection.js +0 -53
- package/es/components/CreateFullPage/constants.js +0 -8
- package/es/components/CreateTearsheet/CreateTearsheetSection.js +0 -83
- package/es/components/CreateTearsheet/constants.js +0 -8
- package/es/components/CreateTearsheet/preview-components/MultiStepWithSectionsTearsheet.js +0 -327
- package/es/generated/feature-flags/feature-flags.js +0 -15
- package/es/global/js/utils/hasValidType.js +0 -94
- package/lib/components/CreateFullPage/CreateFullPageSection.js +0 -74
- package/lib/components/CreateFullPage/constants.js +0 -16
- package/lib/components/CreateTearsheet/CreateTearsheetSection.js +0 -105
- package/lib/components/CreateTearsheet/constants.js +0 -17
- package/lib/components/CreateTearsheet/preview-components/MultiStepWithSectionsTearsheet.js +0 -354
- package/lib/generated/feature-flags/feature-flags.js +0 -22
- package/lib/global/js/utils/hasValidType.js +0 -110
- package/scss/generated/feature-flags/_feature-flags.scss +0 -19
@@ -64,7 +64,7 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
|
|
64
64
|
var componentName = 'PageHeader';
|
65
65
|
|
66
66
|
var PageHeader = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref) {
|
67
|
-
var _withoutBackground,
|
67
|
+
var _withoutBackground, _ref6, _cx2, _ref7, _cx4, _cx7;
|
68
68
|
|
69
69
|
var actionBarItems = _ref.actionBarItems,
|
70
70
|
actionBarMenuOptionsClass = _ref.actionBarMenuOptionsClass,
|
@@ -113,17 +113,17 @@ var PageHeader = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref) {
|
|
113
113
|
var localHeaderRef = (0, _react.useRef)(null);
|
114
114
|
var headerRef = ref || localHeaderRef;
|
115
115
|
var sizingContainerRef = (0, _react.useRef)();
|
116
|
-
var offsetTopMeasuringRef = (0, _react.useRef)(null); //
|
117
|
-
|
118
|
-
var checkUpdateVerticalSpace = function checkUpdateVerticalSpace() {
|
119
|
-
return (0, _PageHeaderUtils.utilCheckUpdateVerticalSpace)(headerRef, offsetTopMeasuringRef, navigation, disableBreadcrumbScroll, setMetrics);
|
120
|
-
}; // state based on props only
|
121
|
-
|
116
|
+
var offsetTopMeasuringRef = (0, _react.useRef)(null); // state based on props only
|
122
117
|
|
123
118
|
var hasActionBar = actionBarItems && actionBarItems.length > 0;
|
124
|
-
var hasBreadcrumbRow = breadcrumbs || actionBarItems; //
|
119
|
+
var hasBreadcrumbRow = !!breadcrumbs || !!actionBarItems; // utility functions
|
120
|
+
|
121
|
+
var checkUpdateVerticalSpace = function checkUpdateVerticalSpace() {
|
122
|
+
return (0, _PageHeaderUtils.utilCheckUpdateVerticalSpace)(headerRef, offsetTopMeasuringRef, navigation, disableBreadcrumbScroll, hasActionBar, widthIsNarrow, setMetrics);
|
123
|
+
}; // NOTE: The buffer is used to add space between the bottom of the header and the last content
|
125
124
|
// Not pre-collapsed and (subtitle or children)
|
126
125
|
|
126
|
+
|
127
127
|
var lastRowBufferActive = (title || pageActions) && !collapseTitle || subtitle || children; // state based on scroll/resize based effects
|
128
128
|
|
129
129
|
var _useState5 = (0, _react.useState)(false),
|
@@ -174,7 +174,12 @@ var PageHeader = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref) {
|
|
174
174
|
var _useState23 = (0, _react.useState)(false),
|
175
175
|
_useState24 = (0, _slicedToArray2.default)(_useState23, 2),
|
176
176
|
fullyCollapsed = _useState24[0],
|
177
|
-
setFullyCollapsed = _useState24[1];
|
177
|
+
setFullyCollapsed = _useState24[1];
|
178
|
+
|
179
|
+
var _useState25 = (0, _react.useState)(false),
|
180
|
+
_useState26 = (0, _slicedToArray2.default)(_useState25, 2),
|
181
|
+
widthIsNarrow = _useState26[0],
|
182
|
+
setWidthIsNarrow = _useState26[1]; // handlers
|
178
183
|
|
179
184
|
|
180
185
|
var handleActionBarWidthChange = function handleActionBarWidthChange(_ref2) {
|
@@ -246,8 +251,8 @@ var PageHeader = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref) {
|
|
246
251
|
// Determine the location of the pageAction buttons
|
247
252
|
|
248
253
|
/* istanbul ignore next */
|
249
|
-
setPageActionsInBreadcrumbRow(collapseTitle || scrollYValue > metrics.titleRowSpaceAbove &&
|
250
|
-
}, [hasActionBar, metrics.breadcrumbRowSpaceBelow, metrics.titleRowSpaceAbove, collapseTitle, scrollYValue]);
|
254
|
+
setPageActionsInBreadcrumbRow(collapseTitle || hasActionBar && scrollYValue > metrics.titleRowSpaceAbove || widthIsNarrow && scrollYValue > metrics.pageActionsSpaceAbove);
|
255
|
+
}, [hasActionBar, metrics.breadcrumbRowSpaceBelow, metrics.titleRowSpaceAbove, metrics.pageActionsSpaceAbove, collapseTitle, scrollYValue, widthIsNarrow]);
|
251
256
|
(0, _react.useEffect)(function () {
|
252
257
|
// Assesses the size of the action bar and page action area and their required
|
253
258
|
// space before setting their sizes
|
@@ -309,9 +314,11 @@ var PageHeader = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref) {
|
|
309
314
|
document.documentElement.style.setProperty("--".concat(_PageHeaderUtils.blockClass, "--tagset-tooltip-offset"), "".concat(tagsetTooltipOffset, "px"));
|
310
315
|
setScrollYValue(current.scrollY);
|
311
316
|
}, [metrics.headerHeight, metrics.headerTopValue, metrics.headerOffset, disableBreadcrumbScroll]);
|
312
|
-
(0, _hooks.useWindowResize)(function () {
|
317
|
+
(0, _hooks.useWindowResize)(function (_ref5) {
|
318
|
+
var current = _ref5.current;
|
313
319
|
// on window resize and other updates some values may have changed
|
314
320
|
checkUpdateVerticalSpace();
|
321
|
+
setWidthIsNarrow(current.innerWidth < 672); // small (below medium) media query
|
315
322
|
}, [actionBarItems, children, breadcrumbs, disableBreadcrumbScroll, navigation, pageActions, subtitle, tags, title]);
|
316
323
|
(0, _react.useEffect)(function () {
|
317
324
|
checkUpdateVerticalSpace(); // eslint-disable-next-line react-hooks/exhaustive-deps
|
@@ -374,7 +381,7 @@ var PageHeader = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref) {
|
|
374
381
|
className: "".concat(_PageHeaderUtils.blockClass, "--offset-top-measuring-element"),
|
375
382
|
ref: offsetTopMeasuringRef
|
376
383
|
}), /*#__PURE__*/_react.default.createElement("section", (0, _extends2.default)({}, rest, {
|
377
|
-
className: (0, _classnames.default)([_PageHeaderUtils.blockClass, "".concat(_PageHeaderUtils.blockClass, "--no-margins-below-row"), className, (
|
384
|
+
className: (0, _classnames.default)([_PageHeaderUtils.blockClass, "".concat(_PageHeaderUtils.blockClass, "--no-margins-below-row"), className, (_ref6 = {}, (0, _defineProperty2.default)(_ref6, "".concat(_PageHeaderUtils.blockClass, "--has-navigation"), navigation || tags), (0, _defineProperty2.default)(_ref6, "".concat(_PageHeaderUtils.blockClass, "--has-navigation-tags-only"), !navigation && tags), _ref6)]),
|
378
385
|
style: pageHeaderStyles,
|
379
386
|
ref: headerRef
|
380
387
|
}, (0, _devtools.getDevtoolsProps)(componentName)), /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.Grid, {
|
@@ -384,18 +391,19 @@ var PageHeader = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref) {
|
|
384
391
|
}, /*#__PURE__*/_react.default.createElement("div", {
|
385
392
|
className: "".concat(_PageHeaderUtils.blockClass, "__non-navigation-row-content")
|
386
393
|
}, hasBreadcrumbRow ? /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.Row, {
|
387
|
-
className: (0, _classnames.default)("".concat(_PageHeaderUtils.blockClass, "__breadcrumb-row"), (_cx2 = {}, (0, _defineProperty2.default)(_cx2, "".concat(_PageHeaderUtils.blockClass, "__breadcrumb-row--next-to-tabs"), nextToTabsCheck()), (0, _defineProperty2.default)(_cx2, "".concat(_PageHeaderUtils.blockClass, "__breadcrumb-row--has-breadcrumbs"), breadcrumbs), (0, _defineProperty2.default)(_cx2, "".concat(_PageHeaderUtils.blockClass, "__breadcrumb-row--has-action-bar"), hasActionBar), (0, _defineProperty2.default)(_cx2, "".concat(_PageHeaderUtils.blockClass, "__has-page-actions-without-action-bar"), !hasActionBar && pageActions), _cx2))
|
394
|
+
className: (0, _classnames.default)("".concat(_PageHeaderUtils.blockClass, "__breadcrumb-row"), (_cx2 = {}, (0, _defineProperty2.default)(_cx2, "".concat(_PageHeaderUtils.blockClass, "__breadcrumb-row--next-to-tabs"), nextToTabsCheck()), (0, _defineProperty2.default)(_cx2, "".concat(_PageHeaderUtils.blockClass, "__breadcrumb-row--has-breadcrumbs"), breadcrumbs || breadcrumbItemForTitle), (0, _defineProperty2.default)(_cx2, "".concat(_PageHeaderUtils.blockClass, "__breadcrumb-row--has-action-bar"), hasActionBar || widthIsNarrow), (0, _defineProperty2.default)(_cx2, "".concat(_PageHeaderUtils.blockClass, "__has-page-actions-without-action-bar"), !hasActionBar && !widthIsNarrow && pageActions), _cx2))
|
388
395
|
}, /*#__PURE__*/_react.default.createElement("div", {
|
389
396
|
className: "".concat(_PageHeaderUtils.blockClass, "__breadcrumb-row--container")
|
390
397
|
}, /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.Column, {
|
391
|
-
className: (0, _classnames.default)("".concat(_PageHeaderUtils.blockClass, "__breadcrumb-column"), (0, _defineProperty2.default)({}, "".concat(_PageHeaderUtils.blockClass, "__breadcrumb-column--background"), !!breadcrumbs || hasActionBar))
|
392
|
-
}, breadcrumbs ? /*#__PURE__*/_react.default.createElement(_BreadcrumbWithOverflow.BreadcrumbWithOverflow, {
|
398
|
+
className: (0, _classnames.default)("".concat(_PageHeaderUtils.blockClass, "__breadcrumb-column"), (0, _defineProperty2.default)({}, "".concat(_PageHeaderUtils.blockClass, "__breadcrumb-column--background"), !!breadcrumbs || hasActionBar || widthIsNarrow))
|
399
|
+
}, breadcrumbs || breadcrumbItemForTitle ? /*#__PURE__*/_react.default.createElement(_BreadcrumbWithOverflow.BreadcrumbWithOverflow, {
|
393
400
|
className: "".concat(_PageHeaderUtils.blockClass, "__breadcrumb"),
|
394
401
|
noTrailingSlash: !!title,
|
395
402
|
overflowAriaLabel: breadcrumbOverflowAriaLabel,
|
396
|
-
breadcrumbs: breadcrumbs
|
403
|
+
breadcrumbs: breadcrumbs && breadcrumbItemForTitle ? breadcrumbs.concat(breadcrumbItemForTitle) : breadcrumbItemForTitle ? [breadcrumbItemForTitle] : breadcrumbs // breadcrumbs may be null or undefined
|
404
|
+
|
397
405
|
}) : null), /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.Column, {
|
398
|
-
className: (0, _classnames.default)(["".concat(_PageHeaderUtils.blockClass, "__action-bar-column ").concat(_PageHeaderUtils.blockClass, "__action-bar-column--background"), (
|
406
|
+
className: (0, _classnames.default)(["".concat(_PageHeaderUtils.blockClass, "__action-bar-column ").concat(_PageHeaderUtils.blockClass, "__action-bar-column--background"), (_ref7 = {}, (0, _defineProperty2.default)(_ref7, "".concat(_PageHeaderUtils.blockClass, "__action-bar-column--has-page-actions"), pageActions), (0, _defineProperty2.default)(_ref7, "".concat(_PageHeaderUtils.blockClass, "__action-bar-column--influenced-by-collapse-button"), spaceForCollapseButton), _ref7)])
|
399
407
|
}, /*#__PURE__*/_react.default.createElement("div", {
|
400
408
|
className: "".concat(_PageHeaderUtils.blockClass, "__action-bar-column-content"),
|
401
409
|
ref: sizingContainerRef
|
@@ -409,8 +417,8 @@ var PageHeader = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref) {
|
|
409
417
|
className: "".concat(_PageHeaderUtils.blockClass, "__action-bar"),
|
410
418
|
onWidthChange: handleActionBarWidthChange,
|
411
419
|
rightAlign: true
|
412
|
-
})) :
|
413
|
-
className: (0, _classnames.default)("".concat(_PageHeaderUtils.blockClass, "__title-row"), (_cx4 = {}, (0, _defineProperty2.default)(_cx4, "".concat(_PageHeaderUtils.blockClass, "__title-row--no-breadcrumb-row"), !hasBreadcrumbRow), (0, _defineProperty2.default)(_cx4, "".concat(_PageHeaderUtils.blockClass, "__title-row--under-action-bar"), hasActionBar), (0, _defineProperty2.default)(_cx4, "".concat(_PageHeaderUtils.blockClass, "__title-row--has-page-actions"), !!pageActions), (0, _defineProperty2.default)(_cx4, "".concat(_PageHeaderUtils.blockClass, "__title-row--sticky"), !!pageActions && !actionBarItems && hasBreadcrumbRow), _cx4))
|
420
|
+
})) : widthIsNarrow && thePageActions(true, pageActionsInBreadcrumbRow))))) : null, !collapseTitle && (title || pageActions) ? /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.Row, {
|
421
|
+
className: (0, _classnames.default)("".concat(_PageHeaderUtils.blockClass, "__title-row"), (_cx4 = {}, (0, _defineProperty2.default)(_cx4, "".concat(_PageHeaderUtils.blockClass, "__title-row--no-breadcrumb-row"), !hasBreadcrumbRow), (0, _defineProperty2.default)(_cx4, "".concat(_PageHeaderUtils.blockClass, "__title-row--under-action-bar"), hasActionBar || widthIsNarrow), (0, _defineProperty2.default)(_cx4, "".concat(_PageHeaderUtils.blockClass, "__title-row--has-page-actions"), !!pageActions), (0, _defineProperty2.default)(_cx4, "".concat(_PageHeaderUtils.blockClass, "__title-row--sticky"), !!pageActions && !actionBarItems && hasBreadcrumbRow), _cx4))
|
414
422
|
}, /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.Column, {
|
415
423
|
className: "".concat(_PageHeaderUtils.blockClass, "__title-column")
|
416
424
|
}, title ? /*#__PURE__*/_react.default.createElement(_PageHeaderTitle.PageHeaderTitle, {
|
@@ -543,8 +551,8 @@ PageHeader.propTypes = _objectSpread({
|
|
543
551
|
*
|
544
552
|
* NOTE: This prop is required if actionBarItems are supplied
|
545
553
|
*/
|
546
|
-
actionBarOverflowAriaLabel: _propTypes.default.string.isRequired.if(function (
|
547
|
-
var actionBarItems =
|
554
|
+
actionBarOverflowAriaLabel: _propTypes.default.string.isRequired.if(function (_ref9) {
|
555
|
+
var actionBarItems = _ref9.actionBarItems;
|
548
556
|
return actionBarItems && actionBarItems.length > 0;
|
549
557
|
}),
|
550
558
|
|
@@ -579,8 +587,8 @@ PageHeader.propTypes = _objectSpread({
|
|
579
587
|
* If the user supplies breadcrumbs then this property is required.
|
580
588
|
* It is used in an overflow menu when there is insufficient space to display all breadcrumbs inline.
|
581
589
|
*/
|
582
|
-
breadcrumbOverflowAriaLabel: _propTypes.default.string.isRequired.if(function (
|
583
|
-
var breadcrumbs =
|
590
|
+
breadcrumbOverflowAriaLabel: _propTypes.default.string.isRequired.if(function (_ref10) {
|
591
|
+
var breadcrumbs = _ref10.breadcrumbs;
|
584
592
|
return breadcrumbs && breadcrumbs.length > 0;
|
585
593
|
}),
|
586
594
|
|
@@ -619,8 +627,8 @@ PageHeader.propTypes = _objectSpread({
|
|
619
627
|
/**
|
620
628
|
* A text version of the `label` for display, required if `label` is not a string.
|
621
629
|
*/
|
622
|
-
title: _propTypes.default.string.isRequired.if(function (
|
623
|
-
var label =
|
630
|
+
title: _propTypes.default.string.isRequired.if(function (_ref11) {
|
631
|
+
var label = _ref11.label;
|
624
632
|
return typeof label !== 'string';
|
625
633
|
})
|
626
634
|
})),
|
@@ -650,9 +658,9 @@ PageHeader.propTypes = _objectSpread({
|
|
650
658
|
* If `hasCollapseHeaderToggle` is set and `withoutBackground` is unset/falsy then assistive text is
|
651
659
|
* required for both the expend and collapse states of the button component used.
|
652
660
|
*/
|
653
|
-
collapseHeaderIconDescription: _propTypes.default.string.isRequired.if(function (
|
654
|
-
var withoutBackground =
|
655
|
-
hasCollapseHeaderToggle =
|
661
|
+
collapseHeaderIconDescription: _propTypes.default.string.isRequired.if(function (_ref12) {
|
662
|
+
var withoutBackground = _ref12.withoutBackground,
|
663
|
+
hasCollapseHeaderToggle = _ref12.hasCollapseHeaderToggle;
|
656
664
|
return !withoutBackground && hasCollapseHeaderToggle;
|
657
665
|
}),
|
658
666
|
|
@@ -672,9 +680,9 @@ PageHeader.propTypes = _objectSpread({
|
|
672
680
|
* If `hasCollapseHeaderToggle` is set and `withoutBackground` is unset/falsy then assistive text is
|
673
681
|
* required for both the expend and collapse states of the button component used.
|
674
682
|
*/
|
675
|
-
expandHeaderIconDescription: _propTypes.default.string.isRequired.if(function (
|
676
|
-
var withoutBackground =
|
677
|
-
hasCollapseHeaderToggle =
|
683
|
+
expandHeaderIconDescription: _propTypes.default.string.isRequired.if(function (_ref13) {
|
684
|
+
var withoutBackground = _ref13.withoutBackground,
|
685
|
+
hasCollapseHeaderToggle = _ref13.hasCollapseHeaderToggle;
|
678
686
|
return !withoutBackground && hasCollapseHeaderToggle;
|
679
687
|
}),
|
680
688
|
|
@@ -745,8 +753,8 @@ PageHeader.propTypes = _objectSpread({
|
|
745
753
|
*
|
746
754
|
* NOTE: This prop is required if pageActions are supplied
|
747
755
|
*/
|
748
|
-
pageActionsOverflowLabel: _propTypes.default.node.isRequired.if(function (
|
749
|
-
var pageActions =
|
756
|
+
pageActionsOverflowLabel: _propTypes.default.node.isRequired.if(function (_ref14) {
|
757
|
+
var pageActions = _ref14.pageActions;
|
750
758
|
return pageActions && pageActions.length > 0 && !pageActions.content;
|
751
759
|
}),
|
752
760
|
|
@@ -792,6 +800,11 @@ PageHeader.propTypes = _objectSpread({
|
|
792
800
|
* - text: title string
|
793
801
|
* - icon: optional icon
|
794
802
|
* - loading: boolean shows loading indicator if true
|
803
|
+
* - onChange: function to process the live value (React change === HTML Input)
|
804
|
+
* - onSave: function to process a confirmed change
|
805
|
+
* - editableLabel: label for edit required if onChange supplied
|
806
|
+
* - cancelDescription: label for edit cancel button
|
807
|
+
* - saveDescription: label for edit save button
|
795
808
|
* - Object containing user defined contents. These must fit within the area defined for the title in both main part of the header and the breadcrumb.
|
796
809
|
* - content: title or name of current location shown in main part of page header
|
797
810
|
* - breadcrumbContent: version of content used in the breadcrumb on scroll. If not supplied
|
@@ -801,7 +814,18 @@ PageHeader.propTypes = _objectSpread({
|
|
801
814
|
// Update docgen if changed
|
802
815
|
text: _propTypes.default.string.isRequired,
|
803
816
|
icon: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object]),
|
804
|
-
loading: _propTypes.default.bool
|
817
|
+
loading: _propTypes.default.bool,
|
818
|
+
// inline edit version properties
|
819
|
+
editableLabel: _propTypes.default.string,
|
820
|
+
// .isRequired.if(inlineEditRequired),
|
821
|
+
id: _propTypes.default.string,
|
822
|
+
// .isRequired.if(inlineEditRequired),
|
823
|
+
onChange: _propTypes.default.func,
|
824
|
+
onSave: _propTypes.default.func,
|
825
|
+
cancelDescription: _propTypes.default.string,
|
826
|
+
//.isRequired.if(inlineEditRequired),
|
827
|
+
saveDescription: _propTypes.default.string //.isRequired.if(inlineEditRequired),
|
828
|
+
// Update docgen if changed
|
805
829
|
|
806
830
|
}), _propTypes.default.string, _propTypes.default.shape({
|
807
831
|
content: _propTypes.default.node.isRequired,
|
@@ -5,16 +5,26 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
6
6
|
value: true
|
7
7
|
});
|
8
|
-
exports.PageHeaderTitle = void 0;
|
8
|
+
exports.inlineEditRequired = exports.PageHeaderTitle = void 0;
|
9
9
|
|
10
10
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
11
11
|
|
12
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
13
|
+
|
14
|
+
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
15
|
+
|
12
16
|
var _react = _interopRequireDefault(require("react"));
|
13
17
|
|
18
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
19
|
+
|
14
20
|
var _classnames = _interopRequireDefault(require("classnames"));
|
15
21
|
|
16
22
|
var _carbonComponentsReact = require("carbon-components-react");
|
17
23
|
|
24
|
+
var _ = require("../");
|
25
|
+
|
26
|
+
var _excluded = ["text", "content", "loading", "icon", "asText", "onChange", "onSave", "editDescription", "editableLabel", "revertDescription", "saveDescription"];
|
27
|
+
|
18
28
|
/**
|
19
29
|
*
|
20
30
|
* Utility component used by Page Header
|
@@ -26,14 +36,21 @@ var PageHeaderTitle = function PageHeaderTitle(_ref) {
|
|
26
36
|
title = _ref.title;
|
27
37
|
var titleInnards; // eslint-disable-next-line
|
28
38
|
// debugger;
|
29
|
-
// eslint-disable-next-line react/prop-types
|
30
39
|
|
31
40
|
var text = title.text,
|
32
41
|
content = title.content,
|
33
42
|
loading = title.loading,
|
34
43
|
icon = title.icon,
|
35
|
-
asText = title.asText
|
44
|
+
asText = title.asText,
|
45
|
+
onChange = title.onChange,
|
46
|
+
onSave = title.onSave,
|
47
|
+
editDescription = title.editDescription,
|
48
|
+
editableLabel = title.editableLabel,
|
49
|
+
revertDescription = title.revertDescription,
|
50
|
+
saveDescription = title.saveDescription,
|
51
|
+
rest = (0, _objectWithoutProperties2.default)(title, _excluded);
|
36
52
|
var titleText;
|
53
|
+
var isEditable = !!onSave;
|
37
54
|
|
38
55
|
if (text || !content) {
|
39
56
|
if (text === undefined && typeof title === 'string') {
|
@@ -44,20 +61,85 @@ var PageHeaderTitle = function PageHeaderTitle(_ref) {
|
|
44
61
|
var TitleIcon = icon;
|
45
62
|
titleInnards = /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, icon && !loading ? /*#__PURE__*/_react.default.createElement(TitleIcon, {
|
46
63
|
className: "".concat(blockClass, "__title-icon")
|
47
|
-
}) : null, /*#__PURE__*/_react.default.createElement(
|
48
|
-
title: !loading ? asText : null
|
49
|
-
}, loading ? /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.SkeletonText, {
|
64
|
+
}) : null, loading ? /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.SkeletonText, {
|
50
65
|
className: "".concat(blockClass, "__title-skeleton")
|
51
|
-
}) :
|
66
|
+
}) : isEditable ? /*#__PURE__*/_react.default.createElement(_.InlineEdit, (0, _extends2.default)({
|
67
|
+
hideLabel: true,
|
68
|
+
value: text,
|
69
|
+
editDescription: editDescription,
|
70
|
+
onChange: onChange,
|
71
|
+
onSave: onSave,
|
72
|
+
labelText: editableLabel,
|
73
|
+
revertDescription: revertDescription,
|
74
|
+
saveDescription: saveDescription
|
75
|
+
}, rest)) : /*#__PURE__*/_react.default.createElement("span", {
|
76
|
+
title: !loading ? asText : null
|
77
|
+
}, text));
|
52
78
|
} else {
|
53
79
|
titleInnards = content;
|
54
80
|
titleText = asText;
|
55
81
|
}
|
56
82
|
|
57
83
|
return /*#__PURE__*/_react.default.createElement("div", {
|
58
|
-
className: (0, _classnames.default)("".concat(blockClass, "__title"), (0, _defineProperty2.default)({}, "".concat(blockClass, "__title--fades"), hasBreadcrumbRow)),
|
84
|
+
className: (0, _classnames.default)("".concat(blockClass, "__title"), (0, _defineProperty2.default)({}, "".concat(blockClass, "__title--editable"), isEditable), (0, _defineProperty2.default)({}, "".concat(blockClass, "__title--fades"), hasBreadcrumbRow)),
|
59
85
|
title: titleText
|
60
86
|
}, titleInnards);
|
61
87
|
};
|
62
88
|
|
63
|
-
exports.PageHeaderTitle = PageHeaderTitle;
|
89
|
+
exports.PageHeaderTitle = PageHeaderTitle;
|
90
|
+
|
91
|
+
var inlineEditRequired = function inlineEditRequired(_ref2) {
|
92
|
+
var onSave = _ref2.onSave;
|
93
|
+
return !!onSave;
|
94
|
+
};
|
95
|
+
|
96
|
+
exports.inlineEditRequired = inlineEditRequired;
|
97
|
+
PageHeaderTitle.propTypes = {
|
98
|
+
// passed from page header
|
99
|
+
blockClass: _propTypes.default.string.isRequired,
|
100
|
+
|
101
|
+
/**
|
102
|
+
* controlled from within page header
|
103
|
+
*/
|
104
|
+
hasBreadcrumbRow: _propTypes.default.bool,
|
105
|
+
|
106
|
+
/**
|
107
|
+
* An optional page title supplied as a string or object with the following attributes: text, icon, loading
|
108
|
+
*
|
109
|
+
* Can be supplied either as:
|
110
|
+
* - String
|
111
|
+
* - Object containing
|
112
|
+
* - text: title string
|
113
|
+
* - icon: optional icon
|
114
|
+
* - loading: boolean shows loading indicator if true
|
115
|
+
* - onChange: function to process the live value (React change === HTML Input)
|
116
|
+
* - onSave: function to process a confirmed change
|
117
|
+
* - editDescription: description for edit button
|
118
|
+
* - editableLabel: label for edit required if onSave supplied
|
119
|
+
* - revertDescription: description for edit revert button
|
120
|
+
* - saveDescription: description for edit save button
|
121
|
+
* - Object containing user defined contents. These must fit within the area defined for the title in both main part of the header and the breadcrumb.
|
122
|
+
* - content: title or name of current location shown in main part of page header
|
123
|
+
* - breadcrumbContent: version of content used in the breadcrumb on scroll. If not supplied
|
124
|
+
* - asText: String based representation of the title
|
125
|
+
*/
|
126
|
+
title: _propTypes.default.oneOfType([_propTypes.default.shape({
|
127
|
+
// Update docgen if changed
|
128
|
+
text: _propTypes.default.string.isRequired,
|
129
|
+
icon: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object]),
|
130
|
+
loading: _propTypes.default.bool,
|
131
|
+
// inline edit version properties
|
132
|
+
editDescription: _propTypes.default.string.isRequired.if(inlineEditRequired),
|
133
|
+
editableLabel: _propTypes.default.string.isRequired.if(inlineEditRequired),
|
134
|
+
id: _propTypes.default.string.isRequired.if(inlineEditRequired),
|
135
|
+
onChange: _propTypes.default.func,
|
136
|
+
onSave: _propTypes.default.func,
|
137
|
+
revertDescription: _propTypes.default.string.isRequired.if(inlineEditRequired),
|
138
|
+
saveDescription: _propTypes.default.string.isRequired.if(inlineEditRequired) // Update docgen if changed
|
139
|
+
|
140
|
+
}), _propTypes.default.string, _propTypes.default.shape({
|
141
|
+
content: _propTypes.default.node.isRequired,
|
142
|
+
breadcrumbContent: _propTypes.default.node,
|
143
|
+
asText: _propTypes.default.string.isRequired
|
144
|
+
})])
|
145
|
+
};
|
@@ -30,12 +30,14 @@ var blockClass = "".concat(_settings.pkg.prefix, "--page-header");
|
|
30
30
|
* @param {{}} offsetTopMeasuringRef
|
31
31
|
* @param {{}} navigation
|
32
32
|
* @param {boolean} disableBreadcrumbScroll
|
33
|
+
* @param {boolean} hasActionBar
|
34
|
+
* @param {boolean} widthIsNarrow
|
33
35
|
* @param {()} setMetrics
|
34
36
|
*/
|
35
37
|
|
36
38
|
exports.blockClass = blockClass;
|
37
39
|
|
38
|
-
var utilCheckUpdateVerticalSpace = function utilCheckUpdateVerticalSpace(headerRef, offsetTopMeasuringRef, navigation, disableBreadcrumbScroll, setMetrics) {
|
40
|
+
var utilCheckUpdateVerticalSpace = function utilCheckUpdateVerticalSpace(headerRef, offsetTopMeasuringRef, navigation, disableBreadcrumbScroll, hasActionBar, widthIsNarrow, setMetrics) {
|
39
41
|
var dynamicRefs = {};
|
40
42
|
|
41
43
|
var getDynamicRef = function getDynamicRef(selector) {
|
@@ -70,6 +72,7 @@ var utilCheckUpdateVerticalSpace = function utilCheckUpdateVerticalSpace(headerR
|
|
70
72
|
var subtitleRowEl = getDynamicRef(".".concat(blockClass, "__subtitle-row"));
|
71
73
|
var availableRowEl = getDynamicRef(".".concat(blockClass, "__available-row"));
|
72
74
|
var navigationRowEl = getDynamicRef(".".concat(blockClass, "__navigation-row"));
|
75
|
+
var pageActionsEl = getDynamicRef(".".concat(blockClass, "__page-actions"));
|
73
76
|
/* istanbul ignore next */
|
74
77
|
|
75
78
|
update.headerHeight = headerRef.current ? headerRef.current.clientHeight : 0;
|
@@ -91,7 +94,8 @@ var utilCheckUpdateVerticalSpace = function utilCheckUpdateVerticalSpace(headerR
|
|
91
94
|
update.breadcrumbRowWidth = breadcrumbRowEl ? breadcrumbRowEl.offsetWidth : 0;
|
92
95
|
/* istanbul ignore next */
|
93
96
|
|
94
|
-
update.breadcrumbTitleHeight = breadcrumbTitleEl ? breadcrumbTitleEl.clientHeight
|
97
|
+
update.breadcrumbTitleHeight = breadcrumbTitleEl ? breadcrumbTitleEl.offsetHeight // clientHeight returns 0 when window small
|
98
|
+
: 1;
|
95
99
|
/* istanbul ignore next */
|
96
100
|
|
97
101
|
update.titleRowHeight = titleRowEl ? titleRowEl.clientHeight : 0;
|
@@ -112,9 +116,19 @@ var utilCheckUpdateVerticalSpace = function utilCheckUpdateVerticalSpace(headerR
|
|
112
116
|
update.headerTopValue += update.navigationRowHeight;
|
113
117
|
}
|
114
118
|
|
119
|
+
if (!hasActionBar && !widthIsNarrow) {
|
120
|
+
// Add difference between $spacing-08 and $spacing-07 to ensure space below breadcrumb is correct on scroll
|
121
|
+
// $spacing-07 is used as size for breadcrumb when no action bar otherwise $spacing-08
|
122
|
+
update.headerTopValue += 8;
|
123
|
+
}
|
124
|
+
|
115
125
|
if (disableBreadcrumbScroll || !navigation) {
|
116
126
|
// adjust sticky top if no navigation or breadcrumb is to stay on screen
|
117
127
|
update.headerTopValue += update.breadcrumbRowHeight;
|
128
|
+
} else {
|
129
|
+
if (navigation && !widthIsNarrow) {
|
130
|
+
update.headerTopValue -= 8;
|
131
|
+
}
|
118
132
|
}
|
119
133
|
|
120
134
|
if (window) {
|
@@ -135,6 +149,11 @@ var utilCheckUpdateVerticalSpace = function utilCheckUpdateVerticalSpace(headerR
|
|
135
149
|
if (titleRowEl) {
|
136
150
|
val = parseFloat(window.getComputedStyle(titleRowEl).getPropertyValue('margin-top'), 10);
|
137
151
|
update.titleRowSpaceAbove = isNaN(val) ? 0 : val;
|
152
|
+
|
153
|
+
if (pageActionsEl) {
|
154
|
+
val = parseFloat(window.getComputedStyle(pageActionsEl).getPropertyValue('margin-top'), 10);
|
155
|
+
update.pageActionsSpaceAbove = titleRowEl.clientHeight - pageActionsEl.clientHeight + update.titleRowSpaceAbove - (isNaN(val) ? 0 : val);
|
156
|
+
}
|
138
157
|
}
|
139
158
|
} else {
|
140
159
|
update.breadcrumbRowSpaceBelow = 0;
|
@@ -108,11 +108,13 @@ var RemoveModal = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
|
|
108
108
|
labelText: inputLabelText,
|
109
109
|
placeholder: inputPlaceholderText,
|
110
110
|
onChange: onChangeHandler,
|
111
|
-
value: userInput
|
111
|
+
value: userInput,
|
112
|
+
"data-modal-primary-focus": true
|
112
113
|
})), /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.ModalFooter, null, /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.Button, {
|
113
114
|
type: "button",
|
114
115
|
kind: "secondary",
|
115
|
-
onClick: onClose
|
116
|
+
onClick: onClose,
|
117
|
+
"data-modal-primary-focus": !textConfirmation
|
116
118
|
}, secondaryButtonText), /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.Button, {
|
117
119
|
type: "submit",
|
118
120
|
kind: "danger",
|
@@ -113,8 +113,12 @@ var SidePanel = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref) {
|
|
113
113
|
var sidePanelInnerRef = (0, _react.useRef)();
|
114
114
|
var sidePanelCloseRef = (0, _react.useRef)();
|
115
115
|
var previousState = (0, _hooks.usePreviousValue)({
|
116
|
-
size: size
|
117
|
-
|
116
|
+
size: size,
|
117
|
+
open: open
|
118
|
+
});
|
119
|
+
var reducedMotion = window && window.matchMedia ? window.matchMedia('(prefers-reduced-motion: reduce)') : {
|
120
|
+
matches: true
|
121
|
+
}; // scroll panel to top going between steps
|
118
122
|
|
119
123
|
(0, _react.useEffect)(function () {
|
120
124
|
var panelRef = ref || sidePanelRef;
|
@@ -193,7 +197,7 @@ var SidePanel = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref) {
|
|
193
197
|
|
194
198
|
|
195
199
|
(0, _react.useEffect)(function () {
|
196
|
-
if (open && animateTitle && animationComplete && title && title.length) {
|
200
|
+
if (open && animateTitle && animationComplete && title && title.length && !reducedMotion.matches) {
|
197
201
|
var _document$querySelect2, _document$querySelect3, _document$querySelect4;
|
198
202
|
|
199
203
|
var sidePanelOuter = document.querySelector("#".concat(blockClass, "-outer"));
|
@@ -285,7 +289,7 @@ var SidePanel = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref) {
|
|
285
289
|
_sidePanelOuter === null || _sidePanelOuter === void 0 ? void 0 : _sidePanelOuter.style.setProperty("--".concat(blockClass, "--subtitle-container-height"), "".concat(_sidePanelSubtitleElementHeight, "px"));
|
286
290
|
_sidePanelOuter === null || _sidePanelOuter === void 0 ? void 0 : _sidePanelOuter.style.setProperty("--".concat(blockClass, "--action-bar-container-height"), "".concat(sidePanelActionBarElementHeight, "px"));
|
287
291
|
}
|
288
|
-
}, [open, animateTitle, animationComplete, shouldRender, panelHeight, title, size]); // click outside functionality if `includeOverlay` prop is set
|
292
|
+
}, [open, animateTitle, animationComplete, shouldRender, panelHeight, title, size, reducedMotion.matches]); // click outside functionality if `includeOverlay` prop is set
|
289
293
|
|
290
294
|
(0, _react.useEffect)(function () {
|
291
295
|
var handleOutsideClick = function handleOutsideClick(event) {
|
@@ -311,7 +315,7 @@ var SidePanel = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref) {
|
|
311
315
|
return function () {
|
312
316
|
document.removeEventListener('click', handleOutsideClick);
|
313
317
|
};
|
314
|
-
}, [includeOverlay, onRequestClose, open, preventCloseOnClickOutside, ref]); // initialize the side panel to open
|
318
|
+
}, [includeOverlay, onRequestClose, open, preventCloseOnClickOutside, ref, onUnmount]); // initialize the side panel to open
|
315
319
|
|
316
320
|
(0, _react.useEffect)(function () {
|
317
321
|
if (open) {
|
@@ -321,14 +325,21 @@ var SidePanel = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref) {
|
|
321
325
|
|
322
326
|
var onAnimationEnd = function onAnimationEnd() {
|
323
327
|
if (!open) {
|
324
|
-
onUnmount
|
328
|
+
onUnmount === null || onUnmount === void 0 ? void 0 : onUnmount();
|
325
329
|
setRender(false);
|
326
330
|
}
|
327
331
|
|
328
332
|
setAnimationComplete(true);
|
329
|
-
}; //
|
333
|
+
}; // Set the internal state `animationComplete` to true if
|
334
|
+
// prefers reduced motion is true
|
330
335
|
|
331
336
|
|
337
|
+
(0, _react.useEffect)(function () {
|
338
|
+
if (reducedMotion.matches) {
|
339
|
+
setAnimationComplete(true);
|
340
|
+
}
|
341
|
+
}, [reducedMotion.matches]); // initializes the side panel to open
|
342
|
+
|
332
343
|
var _onAnimationStart = function onAnimationStart(event) {
|
333
344
|
event.persist();
|
334
345
|
var isPanelTarget = event.target.id === "".concat(blockClass, "-outer");
|
@@ -349,7 +360,13 @@ var SidePanel = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref) {
|
|
349
360
|
pageContentElement.style.marginLeft = 0;
|
350
361
|
}
|
351
362
|
}
|
352
|
-
}, [open, placement, selectorPageContent, slideIn]);
|
363
|
+
}, [open, placement, selectorPageContent, slideIn]);
|
364
|
+
(0, _react.useEffect)(function () {
|
365
|
+
if (!open && previousState !== null && previousState !== void 0 && previousState.open && reducedMotion.matches) {
|
366
|
+
setRender(false);
|
367
|
+
onUnmount === null || onUnmount === void 0 ? void 0 : onUnmount();
|
368
|
+
}
|
369
|
+
}, [open, onUnmount, reducedMotion.matches, previousState === null || previousState === void 0 ? void 0 : previousState.open]); // used to set margins of content for slide in panel version
|
353
370
|
|
354
371
|
(0, _react.useEffect)(function () {
|
355
372
|
if (shouldRender && slideIn) {
|
@@ -357,15 +374,15 @@ var SidePanel = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref) {
|
|
357
374
|
|
358
375
|
if (placement && placement === 'right' && pageContentElement) {
|
359
376
|
pageContentElement.style.marginRight = 0;
|
360
|
-
pageContentElement.style.transition = "margin-right ".concat(_motion.moderate02);
|
377
|
+
pageContentElement.style.transition = !reducedMotion.matches ? "margin-right ".concat(_motion.moderate02) : null;
|
361
378
|
pageContentElement.style.marginRight = _constants.SIDE_PANEL_SIZES[size];
|
362
379
|
} else if (pageContentElement) {
|
363
380
|
pageContentElement.style.marginLeft = 0;
|
364
|
-
pageContentElement.style.transition = "margin-left ".concat(_motion.moderate02);
|
381
|
+
pageContentElement.style.transition = !reducedMotion.matches ? "margin-left ".concat(_motion.moderate02) : null;
|
365
382
|
pageContentElement.style.marginLeft = _constants.SIDE_PANEL_SIZES[size];
|
366
383
|
}
|
367
384
|
}
|
368
|
-
}, [slideIn, selectorPageContent, placement, shouldRender, size]); // adds focus trap functionality
|
385
|
+
}, [slideIn, selectorPageContent, placement, shouldRender, size, reducedMotion.matches]); // adds focus trap functionality
|
369
386
|
|
370
387
|
/* istanbul ignore next */
|
371
388
|
|
@@ -392,7 +409,7 @@ var SidePanel = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref) {
|
|
392
409
|
var _cx, _cx2;
|
393
410
|
|
394
411
|
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
|
395
|
-
className: (0, _classnames.default)("".concat(blockClass, "__title-container"), (_cx = {}, (0, _defineProperty2.default)(_cx, "".concat(blockClass, "__on-detail-step"), currentStep > 0), (0, _defineProperty2.default)(_cx, "".concat(blockClass, "__on-detail-step-without-title"), currentStep > 0 && !title), (0, _defineProperty2.default)(_cx, "".concat(blockClass, "__title-container--no-title-animation"), !animateTitle), (0, _defineProperty2.default)(_cx, "".concat(blockClass, "__title-container-is-animating"), !animationComplete || !open), (0, _defineProperty2.default)(_cx, "".concat(blockClass, "__title-container-without-title"), !title), _cx))
|
412
|
+
className: (0, _classnames.default)("".concat(blockClass, "__title-container"), (_cx = {}, (0, _defineProperty2.default)(_cx, "".concat(blockClass, "__on-detail-step"), currentStep > 0), (0, _defineProperty2.default)(_cx, "".concat(blockClass, "__on-detail-step-without-title"), currentStep > 0 && !title), (0, _defineProperty2.default)(_cx, "".concat(blockClass, "__title-container--no-title-animation"), !animateTitle), (0, _defineProperty2.default)(_cx, "".concat(blockClass, "__title-container-is-animating"), !animationComplete || !open), (0, _defineProperty2.default)(_cx, "".concat(blockClass, "__title-container-without-title"), !title), (0, _defineProperty2.default)(_cx, "".concat(blockClass, "__title-container--reduced-motion"), reducedMotion.matches), _cx))
|
396
413
|
}, currentStep > 0 && /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.Button, {
|
397
414
|
"aria-label": navigationBackIconDescription,
|
398
415
|
kind: "ghost",
|
@@ -449,7 +466,7 @@ var SidePanel = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref) {
|
|
449
466
|
className: "".concat(blockClass, "__title-text"),
|
450
467
|
title: title,
|
451
468
|
"aria-hidden": false
|
452
|
-
}, title), animateTitle && title && title.length && /*#__PURE__*/_react.default.createElement("h2", {
|
469
|
+
}, title), animateTitle && title && title.length && !reducedMotion.matches && /*#__PURE__*/_react.default.createElement("h2", {
|
453
470
|
className: "".concat(blockClass, "__collapsed-title-text"),
|
454
471
|
title: title,
|
455
472
|
"aria-hidden": true
|
@@ -466,7 +483,7 @@ var SidePanel = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref) {
|
|
466
483
|
id: "".concat(blockClass, "-outer"),
|
467
484
|
className: mainPanelClassNames,
|
468
485
|
style: {
|
469
|
-
animation: "".concat(open ? placement === 'right' ? "
|
486
|
+
animation: !reducedMotion.matches ? "".concat(open ? placement === 'right' ? "side-panel-entrance-right ".concat(_motion.moderate02) : "side-panel-entrance-left ".concat(_motion.moderate02) : placement === 'right' ? "side-panel-exit-right ".concat(_motion.moderate02) : "side-panel-exit-left ".concat(_motion.moderate02)) : null
|
470
487
|
},
|
471
488
|
onAnimationEnd: onAnimationEnd,
|
472
489
|
onAnimationStart: function onAnimationStart(event) {
|
@@ -499,7 +516,7 @@ var SidePanel = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref) {
|
|
499
516
|
ref: sidePanelOverlayRef,
|
500
517
|
className: "".concat(blockClass, "__overlay"),
|
501
518
|
style: {
|
502
|
-
animation: "".concat(open ? "
|
519
|
+
animation: !reducedMotion.matches ? "".concat(open ? "side-panel-overlay-entrance ".concat(_motion.moderate02) : "side-panel-overlay-exit ".concat(_motion.moderate02)) : null
|
503
520
|
}
|
504
521
|
}));
|
505
522
|
}); // Return a placeholder if not released and not enabled by feature flag
|
@@ -533,7 +550,7 @@ SidePanel.propTypes = {
|
|
533
550
|
* See https://react.carbondesignsystem.com/?path=/docs/components-button--default#component-api
|
534
551
|
*/
|
535
552
|
actions: (0, _propsHelper.allPropTypes)([_ActionSet.ActionSet.validateActions(), _propTypes.default.arrayOf(_propTypes.default.shape(_objectSpread(_objectSpread({}, _carbonComponentsReact.Button.propTypes), {}, {
|
536
|
-
kind: _propTypes.default.oneOf(['ghost', 'secondary', 'primary']),
|
553
|
+
kind: _propTypes.default.oneOf(['ghost', 'danger--ghost', 'secondary', 'danger', 'primary']),
|
537
554
|
label: _propTypes.default.string,
|
538
555
|
loading: _propTypes.default.bool,
|
539
556
|
// we duplicate this Button prop to improve the DocGen here
|
@@ -0,0 +1,36 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
4
|
+
|
5
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
6
|
+
|
7
|
+
Object.defineProperty(exports, "__esModule", {
|
8
|
+
value: true
|
9
|
+
});
|
10
|
+
exports.SingleAddSelect = void 0;
|
11
|
+
|
12
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
13
|
+
|
14
|
+
var _react = _interopRequireWildcard(require("react"));
|
15
|
+
|
16
|
+
var _AddSelect = require("../AddSelect");
|
17
|
+
|
18
|
+
var _devtools = require("../../global/js/utils/devtools");
|
19
|
+
|
20
|
+
var _settings = require("../../settings");
|
21
|
+
|
22
|
+
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); }
|
23
|
+
|
24
|
+
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; }
|
25
|
+
|
26
|
+
// import PropTypes from 'prop-types';
|
27
|
+
var componentName = 'SingleAddSelect';
|
28
|
+
var SingleAddSelect = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
29
|
+
return /*#__PURE__*/_react.default.createElement(_AddSelect.AddSelect, (0, _extends2.default)({}, props, {
|
30
|
+
ref: ref
|
31
|
+
}, (0, _devtools.getDevtoolsProps)(componentName)));
|
32
|
+
});
|
33
|
+
exports.SingleAddSelect = SingleAddSelect;
|
34
|
+
exports.SingleAddSelect = SingleAddSelect = _settings.pkg.checkComponentEnabled(SingleAddSelect, componentName);
|
35
|
+
SingleAddSelect.propTypes = {};
|
36
|
+
SingleAddSelect.displayName = componentName;
|
@@ -0,0 +1,13 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
6
|
+
Object.defineProperty(exports, "SingleAddSelect", {
|
7
|
+
enumerable: true,
|
8
|
+
get: function get() {
|
9
|
+
return _SingleAddSelect.SingleAddSelect;
|
10
|
+
}
|
11
|
+
});
|
12
|
+
|
13
|
+
var _SingleAddSelect = require("./SingleAddSelect");
|