@patternfly/quickstarts 6.0.0-alpha.1 → 6.0.0-alpha.3
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/dist/ConsoleInternal/components/markdown-view.d.ts +0 -1
- package/dist/ConsoleShared/src/components/markdown-extensions/accordion-extension.d.ts +0 -1
- package/dist/ConsoleShared/src/components/markdown-extensions/admonition-extension.d.ts +0 -1
- package/dist/ConsoleShared/src/components/markdown-extensions/code-extension.d.ts +0 -1
- package/dist/ConsoleShared/src/components/markdown-extensions/inline-clipboard-extension.d.ts +0 -1
- package/dist/ConsoleShared/src/components/markdown-extensions/multiline-clipboard-extension.d.ts +0 -1
- package/dist/ConsoleShared/src/components/modal/Modal.d.ts +1 -2
- package/dist/ConsoleShared/src/components/spotlight/InteractiveSpotlight.d.ts +0 -1
- package/dist/ConsoleShared/src/components/spotlight/StaticSpotlight.d.ts +0 -1
- package/dist/HelpTopicDrawer.d.ts +0 -1
- package/dist/HelpTopicPanelContent.d.ts +0 -1
- package/dist/QuickStartDrawer.d.ts +0 -1
- package/dist/QuickStartPanelContent.d.ts +2 -2
- package/dist/catalog/QuickStartCatalog.d.ts +0 -1
- package/dist/catalog/QuickStartTile.d.ts +18 -1
- package/dist/catalog/QuickStartTileDescription.d.ts +0 -1
- package/dist/catalog/QuickStartTileFooter.d.ts +1 -0
- package/dist/catalog/QuickStartTileHeader.d.ts +1 -5
- package/dist/catalog/Toolbar/QuickStartCatalogFilter.d.ts +0 -1
- package/dist/controller/QuickStartContent.d.ts +1 -1
- package/dist/controller/QuickStartFooter.d.ts +1 -1
- package/dist/controller/QuickStartIntroduction.d.ts +0 -1
- package/dist/controller/QuickStartTaskHeaderList.d.ts +0 -1
- package/dist/controller/QuickStartTaskReview.d.ts +0 -1
- package/dist/controller/QuickStartTasks.d.ts +0 -1
- package/dist/index.es.js +196 -288
- package/dist/index.es.js.map +1 -1
- package/dist/index.js +197 -288
- package/dist/index.js.map +1 -1
- package/dist/patternfly-docs/quick-starts/examples/HelpTopic.jsx +4 -4
- package/dist/patternfly-docs/quick-starts/examples/example-data/example-help-topics.js +9 -18
- package/dist/patternfly-global.css +20 -66
- package/dist/patternfly-nested.css +2036 -2119
- package/dist/quickstarts-base.css +38 -415
- package/dist/quickstarts-full.es.js +1417 -847
- package/dist/quickstarts-full.es.js.map +1 -1
- package/dist/quickstarts-standalone.css +41 -376
- package/dist/quickstarts-standalone.min.css +3 -3
- package/dist/quickstarts-vendor.css +6 -11
- package/dist/quickstarts.css +44 -426
- package/dist/quickstarts.min.css +1 -1
- package/dist/utils/quick-start-context.d.ts +2 -0
- package/dist/utils/quick-start-types.d.ts +1 -1
- package/package.json +13 -15
- package/src/ConsoleInternal/components/markdown-view.tsx +29 -9
- package/src/ConsoleShared/src/components/markdown-extensions/accordion-extension.tsx +10 -17
- package/src/ConsoleShared/src/components/markdown-extensions/admonition-extension.tsx +5 -11
- package/src/ConsoleShared/src/components/markdown-extensions/code-extension.tsx +2 -2
- package/src/ConsoleShared/src/components/markdown-extensions/inline-clipboard-extension.tsx +0 -1
- package/src/ConsoleShared/src/components/markdown-extensions/multiline-clipboard-extension.tsx +2 -6
- package/src/ConsoleShared/src/components/markdown-extensions/utils.ts +2 -1
- package/src/ConsoleShared/src/components/modal/Modal.tsx +1 -2
- package/src/ConsoleShared/src/components/popper/SimplePopper.tsx +5 -2
- package/src/ConsoleShared/src/components/spotlight/InteractiveSpotlight.tsx +0 -1
- package/src/ConsoleShared/src/components/spotlight/StaticSpotlight.tsx +0 -1
- package/src/ConsoleShared/src/components/status/icons.tsx +1 -5
- package/src/HelpTopicDrawer.tsx +1 -4
- package/src/HelpTopicPanelContent.tsx +4 -16
- package/src/QuickStartCatalogPage.tsx +34 -25
- package/src/QuickStartCloseModal.tsx +2 -2
- package/src/QuickStartController.tsx +2 -2
- package/src/QuickStartDrawer.tsx +2 -7
- package/src/QuickStartPanelContent.scss +7 -39
- package/src/QuickStartPanelContent.tsx +23 -47
- package/src/catalog/Catalog/QuickStartCatalogHeader.tsx +5 -4
- package/src/catalog/Catalog/QuickStartCatalogSection.tsx +1 -1
- package/src/catalog/Catalog/QuickStartCatalogToolbar.tsx +1 -3
- package/src/catalog/QuickStartCatalog.tsx +12 -16
- package/src/catalog/QuickStartTile.scss +11 -9
- package/src/catalog/QuickStartTile.tsx +135 -62
- package/src/catalog/QuickStartTileDescription.tsx +28 -42
- package/src/catalog/QuickStartTileFooter.tsx +13 -19
- package/src/catalog/QuickStartTileHeader.tsx +8 -58
- package/src/catalog/Toolbar/QuickStartCatalogFilter.tsx +8 -10
- package/src/catalog/Toolbar/QuickStartCatalogFilterItems.tsx +2 -5
- package/src/catalog/__tests__/QuickStartCatalog.spec.tsx +3 -3
- package/src/catalog/__tests__/QuickStartTile.spec.tsx +5 -5
- package/src/catalog/__tests__/QuickStartTileDescription.spec.tsx +1 -1
- package/src/controller/QuickStartConclusion.tsx +4 -4
- package/src/controller/QuickStartContent.scss +3 -7
- package/src/controller/QuickStartContent.tsx +3 -5
- package/src/controller/QuickStartFooter.scss +1 -11
- package/src/controller/QuickStartFooter.tsx +27 -21
- package/src/controller/QuickStartIntroduction.tsx +11 -16
- package/src/controller/QuickStartTaskHeader.scss +20 -42
- package/src/controller/QuickStartTaskHeader.tsx +25 -62
- package/src/controller/QuickStartTaskHeaderList.tsx +4 -6
- package/src/controller/QuickStartTaskReview.tsx +6 -12
- package/src/controller/QuickStartTasks.tsx +6 -8
- package/src/controller/__tests__/QuickStartConclusion.spec.tsx +6 -19
- package/src/controller/__tests__/QuickStartFooter.spec.tsx +9 -54
- package/src/controller/__tests__/QuickStartTaskHeader.spec.tsx +1 -1
- package/src/controller/__tests__/QuickStartTaskReview.spec.tsx +3 -6
- package/src/controller/__tests__/QuickStartTasks.spec.tsx +3 -6
- package/src/styles/_base.scss +3 -45
- package/src/styles/style.scss +1 -6
- package/src/utils/help-topic-context.tsx +2 -3
- package/src/utils/quick-start-context.tsx +12 -13
- package/src/utils/quick-start-types.ts +1 -1
- package/src/utils/quick-start-utils.ts +4 -2
- package/src/ConsoleInternal/components/_icon-and-text.scss +0 -14
- package/src/ConsoleInternal/components/_markdown-view.scss +0 -19
- package/src/ConsoleInternal/components/catalog/_catalog.scss +0 -392
- package/src/ConsoleInternal/components/utils/_status-box.scss +0 -58
- package/src/ConsoleShared/src/components/layout/PageLayout.scss +0 -29
- package/src/ConsoleShared/src/components/markdown-extensions/showdown-extension.scss +0 -52
- package/src/ConsoleShared/src/components/modal/Modal.scss +0 -3
- package/src/ConsoleShared/src/components/spotlight/spotlight.scss +0 -63
- package/src/QuickStartDrawer.scss +0 -11
- package/src/catalog/QuickStartCatalog.scss +0 -8
- package/src/catalog/QuickStartTileDescription.scss +0 -29
- package/src/catalog/QuickStartTileHeader.scss +0 -12
- package/src/catalog/Toolbar/QuickStartCatalogFilter.scss +0 -25
- package/src/controller/QuickStartIntroduction.scss +0 -35
- package/src/controller/QuickStartTaskHeaderList.scss +0 -17
- package/src/controller/QuickStartTaskReview.scss +0 -30
- package/src/controller/QuickStartTasks.scss +0 -90
- package/src/styles/_dark-custom-override.scss +0 -47
package/dist/index.es.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import React__default, { createContext, useCallback, useEffect, useState } from 'react';
|
|
3
|
-
import {
|
|
3
|
+
import { useIsomorphicLayoutEffect, Tooltip, Alert, CodeBlock, Accordion, AccordionItem, AccordionToggle, AccordionContent, Popover, PopoverPosition, Button, Icon, Flex, FlexItem, Title, Card, CardHeader, CardTitle, CardBody, Stack, Label, CardFooter, Gallery, ToolbarItem, SearchInput, Select, SelectList, SelectOption, MenuToggle, Badge, Toolbar, ToolbarContent, EmptyState, EmptyStateBody, EmptyStateFooter, EmptyStateActions, PageSection, Content, Divider, WizardNavItem, ExpandableSection, List, ListItem, Radio, ActionList, ActionListGroup, ActionListItem, DrawerPanelContent, DrawerHead, DrawerActions, DrawerCloseButton, DrawerPanelBody, Drawer, DrawerContent, DrawerContentBody, StackItem } from '@patternfly/react-core';
|
|
4
4
|
import SearchIcon from '@patternfly/react-icons/dist/js/icons/search-icon';
|
|
5
5
|
import { css } from '@patternfly/react-styles';
|
|
6
|
-
import { __rest } from 'tslib';
|
|
7
|
-
import '@patternfly/react-styles/css/components/Form/form';
|
|
8
6
|
import RocketIcon from '@patternfly/react-icons/dist/js/icons/rocket-icon';
|
|
7
|
+
import { __rest } from 'tslib';
|
|
8
|
+
import { Modal as Modal$1, ModalVariant } from '@patternfly/react-core/deprecated';
|
|
9
9
|
import * as ReactDOM from 'react-dom';
|
|
10
10
|
import { renderToStaticMarkup } from 'react-dom/server';
|
|
11
11
|
import CopyIcon from '@patternfly/react-icons/dist/js/icons/copy-icon';
|
|
@@ -17,6 +17,7 @@ import CheckCircleIcon from '@patternfly/react-icons/dist/js/icons/check-circle-
|
|
|
17
17
|
import '@patternfly/react-icons/dist/js/icons/exclamation-circle-icon';
|
|
18
18
|
import InfoCircleIcon from '@patternfly/react-icons/dist/js/icons/info-circle-icon';
|
|
19
19
|
import ExternalLinkAltIcon from '@patternfly/react-icons/dist/js/icons/external-link-alt-icon';
|
|
20
|
+
import OutlinedBookmarkIcon from '@patternfly/react-icons/dist/js/icons/outlined-bookmark-icon';
|
|
20
21
|
import OutlinedClockIcon from '@patternfly/react-icons/dist/js/icons/outlined-clock-icon';
|
|
21
22
|
import ArrowRightIcon from '@patternfly/react-icons/dist/js/icons/arrow-right-icon';
|
|
22
23
|
import BarsIcon from '@patternfly/react-icons/dist/js/icons/bars-icon';
|
|
@@ -576,6 +577,7 @@ const QuickStartContextDefaults = {
|
|
|
576
577
|
markdown: null,
|
|
577
578
|
loading: false,
|
|
578
579
|
alwaysShowTaskReview: true,
|
|
580
|
+
focusOnQuickStart: true,
|
|
579
581
|
};
|
|
580
582
|
const QuickStartContext = createContext(QuickStartContextDefaults);
|
|
581
583
|
const getResource = (resource, options, resourceBundle, lng) => {
|
|
@@ -752,9 +754,7 @@ const useValuesForQuickStartContext = (value = {}) => {
|
|
|
752
754
|
setAllQuickStartStates((qs) => (Object.assign(Object.assign({}, qs), { [activeQuickStartID]: updatedQuickStart })));
|
|
753
755
|
}, [allQuickStartStates, activeQuickStartID, setAllQuickStartStates]);
|
|
754
756
|
const activeQuickStartState = (_b = allQuickStartStates === null || allQuickStartStates === void 0 ? void 0 : allQuickStartStates[activeQuickStartID]) !== null && _b !== void 0 ? _b : {};
|
|
755
|
-
const getQuickStartForId = useCallback((id) => allQuickStartStates[id], [
|
|
756
|
-
allQuickStartStates,
|
|
757
|
-
]);
|
|
757
|
+
const getQuickStartForId = useCallback((id) => allQuickStartStates[id], [allQuickStartStates]);
|
|
758
758
|
return {
|
|
759
759
|
allQuickStarts: quickStarts,
|
|
760
760
|
setAllQuickStarts: updateAllQuickStarts,
|
|
@@ -833,66 +833,6 @@ const CamelCaseWrap = ({ value, dataTest }) => {
|
|
|
833
833
|
return rendered;
|
|
834
834
|
};
|
|
835
835
|
|
|
836
|
-
class CatalogTile extends React.Component {
|
|
837
|
-
constructor(props) {
|
|
838
|
-
super(props);
|
|
839
|
-
this.handleClick = (e) => {
|
|
840
|
-
const { onClick, href } = this.props;
|
|
841
|
-
if (!href) {
|
|
842
|
-
e.preventDefault();
|
|
843
|
-
}
|
|
844
|
-
if (onClick) {
|
|
845
|
-
onClick(e);
|
|
846
|
-
}
|
|
847
|
-
};
|
|
848
|
-
this.renderBadges = (badges) => {
|
|
849
|
-
if (!badges || !badges.length) {
|
|
850
|
-
return null;
|
|
851
|
-
}
|
|
852
|
-
return (React.createElement("div", { className: "catalog-tile-pf-badge-container" }, badges.map((badge, index) => (React.createElement("span", { key: `badge-${index}` }, badge)))));
|
|
853
|
-
};
|
|
854
|
-
this.generatedId = getUniqueId('pf-catalog-tile');
|
|
855
|
-
}
|
|
856
|
-
render() {
|
|
857
|
-
const _a = this.props, { id, className, featured, onClick, href, icon, iconImg, iconAlt, iconClass, badges, title, vendor, description, footer,
|
|
858
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
859
|
-
ref, children } = _a, props = __rest(_a, ["id", "className", "featured", "onClick", "href", "icon", "iconImg", "iconAlt", "iconClass", "badges", "title", "vendor", "description", "footer", "ref", "children"]);
|
|
860
|
-
return (React.createElement(Card, Object.assign({ component: href ? 'a' : 'div', id: id || this.generatedId, href: href || '#', className: css('catalog-tile-pf', { featured }, className), variant: featured ? 'secondary' : 'default', isClickable: !!onClick }, props),
|
|
861
|
-
(badges.length > 0 || iconImg || iconClass || icon || onClick) && (React.createElement(CardHeader, { actions: { actions: badges.length > 0 && this.renderBadges(badges), hasNoOffset: true }, selectableActions: onClick && {
|
|
862
|
-
selectableActionId: id + '-input',
|
|
863
|
-
onClickAction: (e) => this.handleClick(e),
|
|
864
|
-
selectableActionAriaLabelledby: id
|
|
865
|
-
} },
|
|
866
|
-
iconImg && React.createElement("img", { className: "catalog-tile-pf-icon", src: iconImg, alt: iconAlt }),
|
|
867
|
-
!iconImg && (iconClass || icon) && React.createElement("span", { className: `catalog-tile-pf-icon ${iconClass}` }, icon))),
|
|
868
|
-
React.createElement(CardTitle, { className: "catalog-tile-pf-header" },
|
|
869
|
-
React.createElement("div", { className: "catalog-tile-pf-title" }, title),
|
|
870
|
-
vendor && React.createElement("div", { className: "catalog-tile-pf-subtitle" }, vendor)),
|
|
871
|
-
(description || children) && (React.createElement(CardBody, { className: "catalog-tile-pf-body" },
|
|
872
|
-
description && (React.createElement("div", { className: "catalog-tile-pf-description" },
|
|
873
|
-
React.createElement("span", { className: css({ 'has-footer': footer }) }, description))),
|
|
874
|
-
children)),
|
|
875
|
-
footer && React.createElement(CardFooter, { className: "catalog-tile-pf-footer" }, footer)));
|
|
876
|
-
}
|
|
877
|
-
}
|
|
878
|
-
CatalogTile.displayName = 'CatalogTile';
|
|
879
|
-
CatalogTile.defaultProps = {
|
|
880
|
-
id: null,
|
|
881
|
-
className: '',
|
|
882
|
-
featured: false,
|
|
883
|
-
onClick: null,
|
|
884
|
-
href: null,
|
|
885
|
-
iconImg: null,
|
|
886
|
-
iconAlt: '',
|
|
887
|
-
iconClass: '',
|
|
888
|
-
icon: null,
|
|
889
|
-
badges: [],
|
|
890
|
-
vendor: null,
|
|
891
|
-
description: null,
|
|
892
|
-
footer: null,
|
|
893
|
-
children: null
|
|
894
|
-
};
|
|
895
|
-
|
|
896
836
|
const Modal = (_a) => {
|
|
897
837
|
var { isFullScreen = false, className } = _a, props = __rest(_a, ["isFullScreen", "className"]);
|
|
898
838
|
return (React.createElement(Modal$1, Object.assign({}, props, { className: css('pfext-modal', className), appendTo: () => (isFullScreen ? document.body : document.querySelector('#modal-container')) })));
|
|
@@ -1026,44 +966,6 @@ var Shadows;
|
|
|
1026
966
|
Shadows["top"] = "top";
|
|
1027
967
|
Shadows["bottom"] = "bottom";
|
|
1028
968
|
})(Shadows || (Shadows = {}));
|
|
1029
|
-
const useScrollShadows = (node) => {
|
|
1030
|
-
const [shadows, setShadows] = React.useState(Shadows.none);
|
|
1031
|
-
const computeShadows = React.useCallback(() => {
|
|
1032
|
-
if (node) {
|
|
1033
|
-
const { scrollTop, clientHeight, scrollHeight } = node;
|
|
1034
|
-
const top = scrollTop !== 0;
|
|
1035
|
-
const bottom = scrollTop + clientHeight < scrollHeight;
|
|
1036
|
-
if (top && bottom) {
|
|
1037
|
-
setShadows(Shadows.both);
|
|
1038
|
-
}
|
|
1039
|
-
else if (top) {
|
|
1040
|
-
setShadows(Shadows.top);
|
|
1041
|
-
}
|
|
1042
|
-
else if (bottom) {
|
|
1043
|
-
setShadows(Shadows.bottom);
|
|
1044
|
-
}
|
|
1045
|
-
else {
|
|
1046
|
-
setShadows(Shadows.none);
|
|
1047
|
-
}
|
|
1048
|
-
}
|
|
1049
|
-
}, [node]);
|
|
1050
|
-
// recompute when the scroll container changes in size
|
|
1051
|
-
useResizeObserver(computeShadows, node);
|
|
1052
|
-
React.useEffect(() => {
|
|
1053
|
-
if (node) {
|
|
1054
|
-
// compute initial shadows
|
|
1055
|
-
computeShadows();
|
|
1056
|
-
// listen for scroll events
|
|
1057
|
-
node.addEventListener('scroll', computeShadows);
|
|
1058
|
-
}
|
|
1059
|
-
return () => {
|
|
1060
|
-
if (node) {
|
|
1061
|
-
node.removeEventListener('scroll', computeShadows);
|
|
1062
|
-
}
|
|
1063
|
-
};
|
|
1064
|
-
}, [node, computeShadows]);
|
|
1065
|
-
return shadows;
|
|
1066
|
-
};
|
|
1067
969
|
|
|
1068
970
|
const useBoundingClientRect = (targetElement) => {
|
|
1069
971
|
const [clientRect, setClientRect] = React.useState(() => targetElement ? targetElement.getBoundingClientRect() : null);
|
|
@@ -1236,6 +1138,7 @@ const useInlineCopyClipboardShowdownExtension = () => {
|
|
|
1236
1138
|
}), [getResource]);
|
|
1237
1139
|
};
|
|
1238
1140
|
|
|
1141
|
+
/* eslint-disable max-len */
|
|
1239
1142
|
const useMultilineCopyClipboardShowdownExtension = () => {
|
|
1240
1143
|
const { getResource } = React.useContext(QuickStartContext);
|
|
1241
1144
|
return React.useMemo(() => ({
|
|
@@ -1256,10 +1159,7 @@ const useMultilineCopyClipboardShowdownExtension = () => {
|
|
|
1256
1159
|
</div>
|
|
1257
1160
|
</div>
|
|
1258
1161
|
<div class="pf-v6-c-code-block__content">
|
|
1259
|
-
<pre class="pf-v6-c-code-block__pre pfext-code-block__pre">
|
|
1260
|
-
<code class="pf-v6-c-code-block__code"
|
|
1261
|
-
${MARKDOWN_SNIPPET_ID}="${groupId}">${group.trim()}</code>
|
|
1262
|
-
</pre>
|
|
1162
|
+
<pre class="pf-v6-c-code-block__pre pfext-code-block__pre"><code class="pf-v6-c-code-block__code"${MARKDOWN_SNIPPET_ID}="${groupId}">${group.trim()}</code></pre>
|
|
1263
1163
|
</div>
|
|
1264
1164
|
</div>`;
|
|
1265
1165
|
},
|
|
@@ -1280,16 +1180,40 @@ const markdownConvert = (markdown, extensions) => {
|
|
|
1280
1180
|
}
|
|
1281
1181
|
DOMPurify.addHook('beforeSanitizeElements', function (node) {
|
|
1282
1182
|
// nodeType 1 = element type
|
|
1183
|
+
var _a;
|
|
1283
1184
|
// transform anchor tags
|
|
1284
1185
|
if (node.nodeType === 1 && node.nodeName.toLowerCase() === 'a') {
|
|
1285
1186
|
node.setAttribute('rel', 'noopener noreferrer');
|
|
1286
1187
|
return node;
|
|
1287
1188
|
}
|
|
1288
|
-
// add PF
|
|
1289
|
-
if (node.nodeType === 1
|
|
1290
|
-
|
|
1291
|
-
|
|
1292
|
-
|
|
1189
|
+
// add PF content classes
|
|
1190
|
+
if (node.nodeType === 1) {
|
|
1191
|
+
const contentElements = [
|
|
1192
|
+
'ul',
|
|
1193
|
+
'ol',
|
|
1194
|
+
'p',
|
|
1195
|
+
'li',
|
|
1196
|
+
'hr',
|
|
1197
|
+
'h1',
|
|
1198
|
+
'h2',
|
|
1199
|
+
'h3',
|
|
1200
|
+
'h4',
|
|
1201
|
+
'h5',
|
|
1202
|
+
'h6',
|
|
1203
|
+
'blockquote',
|
|
1204
|
+
'pre',
|
|
1205
|
+
'dl',
|
|
1206
|
+
'dt',
|
|
1207
|
+
'dd',
|
|
1208
|
+
'table',
|
|
1209
|
+
];
|
|
1210
|
+
if (contentElements.includes(node.nodeName.toLowerCase())) {
|
|
1211
|
+
// don't overwrite elements already being styled by PatternFly
|
|
1212
|
+
if (!((_a = node.getAttribute('class')) === null || _a === void 0 ? void 0 : _a.includes('pf-v6-c-'))) {
|
|
1213
|
+
node.setAttribute('class', `pf-v6-c-content--${node.nodeName.toLowerCase()}`);
|
|
1214
|
+
return node;
|
|
1215
|
+
}
|
|
1216
|
+
}
|
|
1293
1217
|
}
|
|
1294
1218
|
});
|
|
1295
1219
|
// Add a hook to make all links open a new window
|
|
@@ -1357,7 +1281,7 @@ const RenderExtension = ({ renderExtension, selector, markup, docContext, }) =>
|
|
|
1357
1281
|
};
|
|
1358
1282
|
const InlineMarkdownView = ({ markup, isEmpty, renderExtension, className, }) => {
|
|
1359
1283
|
const id = React.useMemo(() => uniqueId('markdown'), []);
|
|
1360
|
-
return (React.createElement("div", { className: css(
|
|
1284
|
+
return (React.createElement("div", { className: css({ 'is-empty': isEmpty }, className), id: id },
|
|
1361
1285
|
React.createElement("div", { dangerouslySetInnerHTML: { __html: markup } }),
|
|
1362
1286
|
renderExtension && (React.createElement(RenderExtension, { renderExtension: renderExtension, selector: `#${id}`, markup: markup }))));
|
|
1363
1287
|
};
|
|
@@ -1429,7 +1353,6 @@ const SELECTOR_ID = `[\\w-]+`;
|
|
|
1429
1353
|
// [linkLabel]{{action id}}
|
|
1430
1354
|
const HIGHLIGHT_REGEXP = new RegExp(`\\[(${LINK_LABEL})]{{(${HIGHLIGHT_ACTIONS.join('|')}) (${SELECTOR_ID})}}`, 'g');
|
|
1431
1355
|
|
|
1432
|
-
const removeParagraphWrap = (markdown) => markdown.replace(/^<p>|<\/p>$/g, '');
|
|
1433
1356
|
const QuickStartMarkdownView = ({ content, exactHeight, className, }) => {
|
|
1434
1357
|
const { markdown } = React.useContext(QuickStartContext);
|
|
1435
1358
|
const inlineCopyClipboardShowdownExtension = useInlineCopyClipboardShowdownExtension();
|
|
@@ -1481,7 +1404,7 @@ var AdmonitionType;
|
|
|
1481
1404
|
})(AdmonitionType || (AdmonitionType = {}));
|
|
1482
1405
|
const admonitionToAlertVariantMap = {
|
|
1483
1406
|
[AdmonitionType.NOTE]: { variant: 'info' },
|
|
1484
|
-
[AdmonitionType.TIP]: { variant: '
|
|
1407
|
+
[AdmonitionType.TIP]: { variant: 'custom', customIcon: React.createElement(LightbulbIcon, null) },
|
|
1485
1408
|
[AdmonitionType.IMPORTANT]: { variant: 'danger' },
|
|
1486
1409
|
[AdmonitionType.CAUTION]: { variant: 'warning', customIcon: React.createElement(FireIcon, null) },
|
|
1487
1410
|
[AdmonitionType.WARNING]: { variant: 'warning' },
|
|
@@ -1497,9 +1420,8 @@ React.useMemo(() => ({
|
|
|
1497
1420
|
}
|
|
1498
1421
|
admonitionType = admonitionType.toUpperCase();
|
|
1499
1422
|
const { variant, customIcon } = admonitionToAlertVariantMap[admonitionType];
|
|
1500
|
-
const style = admonitionType === AdmonitionType.CAUTION ? { backgroundColor: '#ec7a0915' } : {};
|
|
1501
1423
|
const mdContent = React.createElement(QuickStartMarkdownView, { content: content });
|
|
1502
|
-
const pfAlert = (React.createElement(Alert, { variant: variant, customIcon
|
|
1424
|
+
const pfAlert = (React.createElement(Alert, Object.assign({ variant: variant }, (customIcon && { customIcon }), { isInline: true, title: admonitionType, className: "pfext-markdown-admonition" }), mdContent));
|
|
1503
1425
|
return removeTemplateWhitespace(renderToStaticMarkup(pfAlert));
|
|
1504
1426
|
},
|
|
1505
1427
|
}), []);
|
|
@@ -1608,42 +1530,39 @@ const StatusIcon = ({ status }) => (React.createElement(Status, { status: status
|
|
|
1608
1530
|
const QuickStartTileDescription = ({ description, prerequisites, }) => {
|
|
1609
1531
|
const { getResource } = React.useContext(QuickStartContext);
|
|
1610
1532
|
const prereqs = prerequisites === null || prerequisites === void 0 ? void 0 : prerequisites.filter((p) => p);
|
|
1533
|
+
const buttonRef = React.useRef(null);
|
|
1611
1534
|
return (React.createElement(React.Fragment, null,
|
|
1612
|
-
React.createElement(QuickStartMarkdownView, { content: description
|
|
1613
|
-
(prereqs === null || prereqs === void 0 ? void 0 : prereqs.length) > 0 && (React.createElement(
|
|
1614
|
-
React.createElement(
|
|
1535
|
+
React.createElement(QuickStartMarkdownView, { content: description }),
|
|
1536
|
+
(prereqs === null || prereqs === void 0 ? void 0 : prereqs.length) > 0 && (React.createElement(Flex, { spaceItems: { default: 'spaceItemsSm' } },
|
|
1537
|
+
React.createElement("h5", null,
|
|
1615
1538
|
getResource('Prerequisites ({{totalPrereqs}})').replace('{{totalPrereqs}}', prereqs.length),
|
|
1616
1539
|
' '),
|
|
1617
|
-
React.createElement(
|
|
1618
|
-
|
|
1540
|
+
React.createElement(Button, { variant: "link", isInline: true, "data-testid": "qs-card-prereqs", ref: buttonRef, onClick: (e) => {
|
|
1541
|
+
e.preventDefault();
|
|
1542
|
+
e.stopPropagation();
|
|
1543
|
+
}, "aria-label": getResource('Show prerequisites') },
|
|
1544
|
+
React.createElement(InfoCircleIcon, null)),
|
|
1545
|
+
React.createElement(Popover, { "aria-label": getResource('Prerequisites'), headerContent: getResource('Prerequisites'), triggerRef: buttonRef, bodyContent: React.createElement("div", null,
|
|
1546
|
+
React.createElement("ul", { "aria-label": getResource('Prerequisites') }, prereqs.map((prerequisite, index) => (
|
|
1619
1547
|
// eslint-disable-next-line react/no-array-index-key
|
|
1620
|
-
React.createElement(
|
|
1621
|
-
React.createElement(QuickStartMarkdownView, { content: prerequisite })))))) }
|
|
1622
|
-
React.createElement(Button, { variant: "link", isInline: true, className: "pfext-quick-start-tile-prerequisites__icon", "data-testid": "qs-card-prereqs", onClick: (e) => {
|
|
1623
|
-
e.preventDefault();
|
|
1624
|
-
e.stopPropagation();
|
|
1625
|
-
}, "aria-label": getResource('Show prerequisites') },
|
|
1626
|
-
React.createElement(InfoCircleIcon, null)))))));
|
|
1548
|
+
React.createElement("li", { key: index },
|
|
1549
|
+
React.createElement(QuickStartMarkdownView, { content: prerequisite })))))) })))));
|
|
1627
1550
|
};
|
|
1628
1551
|
|
|
1629
|
-
const QuickStartTileFooter = ({ quickStartId, status, totalTasks, }) => {
|
|
1552
|
+
const QuickStartTileFooter = ({ quickStartId, status, totalTasks, onClickContinue, }) => {
|
|
1630
1553
|
const { getResource } = React.useContext(QuickStartContext);
|
|
1631
1554
|
const { activeQuickStartID, startQuickStart, restartQuickStart } = React.useContext(QuickStartContext);
|
|
1632
|
-
const start = React.useCallback((
|
|
1633
|
-
e.preventDefault();
|
|
1634
|
-
e.stopPropagation();
|
|
1555
|
+
const start = React.useCallback(() => {
|
|
1635
1556
|
startQuickStart(quickStartId, totalTasks);
|
|
1636
1557
|
}, [quickStartId, startQuickStart, totalTasks]);
|
|
1637
|
-
const restart = React.useCallback((
|
|
1638
|
-
e.preventDefault();
|
|
1639
|
-
e.stopPropagation();
|
|
1558
|
+
const restart = React.useCallback(() => {
|
|
1640
1559
|
restartQuickStart(quickStartId, totalTasks);
|
|
1641
1560
|
}, [quickStartId, restartQuickStart, totalTasks]);
|
|
1642
1561
|
return (React.createElement(Flex, { justifyContent: { default: 'justifyContentSpaceBetween' } },
|
|
1643
1562
|
status === QuickStartStatus.NOT_STARTED && (React.createElement(FlexItem, null,
|
|
1644
1563
|
React.createElement(Button, { onClick: start, variant: "link", isInline: true, "data-testid": "qs-card-notStarted-start", id: `${quickStartId}-start`, "aria-labelledby": `${quickStartId}-start ${quickStartId}` }, getResource('Start')))),
|
|
1645
1564
|
status === QuickStartStatus.IN_PROGRESS && activeQuickStartID !== quickStartId && (React.createElement(FlexItem, null,
|
|
1646
|
-
React.createElement(Button, { variant: "link", isInline: true, "data-testid": "qs-card-inProgress-resume", id: `${quickStartId}-continue`, "aria-labelledby": `${quickStartId}-continue ${quickStartId}` }, getResource('Continue')))),
|
|
1565
|
+
React.createElement(Button, { variant: "link", onClick: onClickContinue, isInline: true, "data-testid": "qs-card-inProgress-resume", id: `${quickStartId}-continue`, "aria-labelledby": `${quickStartId}-continue ${quickStartId}` }, getResource('Continue')))),
|
|
1647
1566
|
status === QuickStartStatus.COMPLETE && (React.createElement(FlexItem, null,
|
|
1648
1567
|
React.createElement(Button, { onClick: restart, variant: "link", isInline: true, "data-testid": "qs-card-complete-restart", id: `${quickStartId}-restart`, "aria-labelledby": `${quickStartId}-restart ${quickStartId}` }, getResource('Restart')))),
|
|
1649
1568
|
status === QuickStartStatus.IN_PROGRESS && (React.createElement(FlexItem, null,
|
|
@@ -1657,39 +1576,43 @@ const QuickStartTileFooterExternal = ({ link, quickStartId, }) => {
|
|
|
1657
1576
|
React.createElement(Button, { component: "a", href: href, target: "_blank", rel: "noopener noreferrer", variant: "link", "aria-label": `Open documentation in new window`, isInline: true, icon: React.createElement(ExternalLinkAltIcon, null), iconPosition: "right", id: quickStartId, "aria-labelledby": `${quickStartId}-external ${quickStartId}` }, text || href))));
|
|
1658
1577
|
};
|
|
1659
1578
|
|
|
1660
|
-
const
|
|
1661
|
-
|
|
1662
|
-
|
|
1663
|
-
|
|
1579
|
+
const QuickStartTileHeader = ({ name, quickStartId, onSelect, }) => {
|
|
1580
|
+
return (React.createElement(Flex, { flexWrap: { default: 'nowrap' } },
|
|
1581
|
+
React.createElement(Title, { headingLevel: "h3", "data-test": "title", id: quickStartId },
|
|
1582
|
+
React.createElement(Button, { variant: "link", isInline: true, onClick: onSelect },
|
|
1583
|
+
React.createElement(QuickStartMarkdownView, { content: name })))));
|
|
1664
1584
|
};
|
|
1665
|
-
|
|
1666
|
-
|
|
1585
|
+
|
|
1586
|
+
const QuickStartTile = ({ quickStart, status, isActive, onClick = () => { }, action, }) => {
|
|
1587
|
+
const { metadata: { name: id }, spec: { icon, tasks, displayName, description, durationMinutes, prerequisites, link, type }, } = quickStart;
|
|
1588
|
+
const { setActiveQuickStart, footer, getResource } = React.useContext(QuickStartContext);
|
|
1589
|
+
const statusColorMap = {
|
|
1590
|
+
[QuickStartStatus.COMPLETE]: 'green',
|
|
1591
|
+
[QuickStartStatus.IN_PROGRESS]: 'purple',
|
|
1592
|
+
[QuickStartStatus.NOT_STARTED]: 'grey',
|
|
1593
|
+
};
|
|
1667
1594
|
const statusLocaleMap = {
|
|
1668
1595
|
[QuickStartStatus.COMPLETE]: getResource('Complete'),
|
|
1669
1596
|
[QuickStartStatus.IN_PROGRESS]: getResource('In progress'),
|
|
1670
1597
|
[QuickStartStatus.NOT_STARTED]: getResource('Not started'),
|
|
1671
1598
|
};
|
|
1672
|
-
return (React.createElement("div", { className: "pfext-quick-start-tile-header" },
|
|
1673
|
-
React.createElement(Title, { headingLevel: "h3", "data-test": "title", id: quickStartId },
|
|
1674
|
-
React.createElement(QuickStartMarkdownView, { content: name })),
|
|
1675
|
-
React.createElement("div", { className: "pfext-quick-start-tile-header__status" },
|
|
1676
|
-
type && (React.createElement(Label, { className: "pfext-quick-start-tile-header--margin", color: type.color }, type.text)),
|
|
1677
|
-
duration && (React.createElement(Label, { variant: "outline", "data-test": "duration", icon: React.createElement(OutlinedClockIcon, null), className: "pfext-quick-start-tile-header--margin" }, getResource('{{duration, number}} minutes', duration).replace('{{duration, number}}', duration))),
|
|
1678
|
-
status !== QuickStartStatus.NOT_STARTED && (React.createElement(Label, { variant: "outline", color: statusColorMap[status], icon: React.createElement(StatusIcon, { status: status }), "data-test": "status" }, statusLocaleMap[status])))));
|
|
1679
|
-
};
|
|
1680
|
-
|
|
1681
|
-
const QuickStartTile = ({ quickStart, status, isActive, onClick = () => { }, }) => {
|
|
1682
|
-
const { metadata: { name: id }, spec: { icon, tasks, displayName, description, durationMinutes, prerequisites, link, type }, } = quickStart;
|
|
1683
|
-
const { setActiveQuickStart, footer } = React.useContext(QuickStartContext);
|
|
1684
|
-
const ref = React.useRef(null);
|
|
1685
1599
|
let quickStartIcon;
|
|
1686
1600
|
if (typeof icon === 'object') {
|
|
1687
|
-
quickStartIcon = React.createElement(Icon, { size: "
|
|
1601
|
+
quickStartIcon = React.createElement(Icon, { size: "2xl" }, icon);
|
|
1688
1602
|
}
|
|
1689
1603
|
else {
|
|
1690
|
-
quickStartIcon = (React.createElement(Icon, { size: "
|
|
1691
|
-
React.createElement(FallbackImg, { className: "pfext-catalog-item-icon__img
|
|
1604
|
+
quickStartIcon = (React.createElement(Icon, { size: "2xl" },
|
|
1605
|
+
React.createElement(FallbackImg, { src: icon, alt: "", className: "pfext-catalog-item-icon__img", fallback: React.createElement(RocketIcon, null) })));
|
|
1692
1606
|
}
|
|
1607
|
+
const onSelect = () => {
|
|
1608
|
+
if (!link) {
|
|
1609
|
+
setActiveQuickStart(id, tasks === null || tasks === void 0 ? void 0 : tasks.length);
|
|
1610
|
+
}
|
|
1611
|
+
else {
|
|
1612
|
+
window.open(link.href, '_blank', 'noopener,noreferrer');
|
|
1613
|
+
}
|
|
1614
|
+
onClick();
|
|
1615
|
+
};
|
|
1693
1616
|
const footerComponent = React.useMemo(() => {
|
|
1694
1617
|
if (footer && footer.show === false) {
|
|
1695
1618
|
return null;
|
|
@@ -1697,47 +1620,44 @@ const QuickStartTile = ({ quickStart, status, isActive, onClick = () => { }, })
|
|
|
1697
1620
|
if (link) {
|
|
1698
1621
|
return React.createElement(QuickStartTileFooterExternal, { link: link, quickStartId: id });
|
|
1699
1622
|
}
|
|
1700
|
-
return React.createElement(QuickStartTileFooter, { quickStartId: id, status: status, totalTasks: tasks === null || tasks === void 0 ? void 0 : tasks.length });
|
|
1623
|
+
return (React.createElement(QuickStartTileFooter, { quickStartId: id, status: status, totalTasks: tasks === null || tasks === void 0 ? void 0 : tasks.length, onClickContinue: onSelect }));
|
|
1701
1624
|
}, [footer, id, link, status, tasks === null || tasks === void 0 ? void 0 : tasks.length]);
|
|
1702
|
-
const
|
|
1703
|
-
|
|
1704
|
-
|
|
1705
|
-
|
|
1706
|
-
|
|
1707
|
-
|
|
1708
|
-
|
|
1709
|
-
|
|
1710
|
-
|
|
1711
|
-
|
|
1712
|
-
}
|
|
1713
|
-
|
|
1714
|
-
|
|
1715
|
-
React.createElement(
|
|
1716
|
-
|
|
1717
|
-
|
|
1718
|
-
|
|
1719
|
-
|
|
1720
|
-
|
|
1721
|
-
}
|
|
1722
|
-
|
|
1723
|
-
// https://github.com/patternfly/patternfly-react/issues/7039
|
|
1724
|
-
href: link === null || link === void 0 ? void 0 : link.href, "data-test": `tile ${id}`, description: React.createElement(QuickStartTileDescription, { description: description, prerequisites: prerequisites }), footer: footerComponent, tabIndex: 0 })));
|
|
1625
|
+
const ActionIcon = (action === null || action === void 0 ? void 0 : action.icon) || OutlinedBookmarkIcon;
|
|
1626
|
+
const additionalAction = action ? (React.createElement(Button, Object.assign({ "aria-label": action['aria-label'], icon: React.createElement(ActionIcon, null), variant: "plain", onClick: action.onClick }, action.buttonProps))) : undefined;
|
|
1627
|
+
return (React.createElement(Card, Object.assign({ id: `${id}-catalog-tile`, style: { height: '100%' }, "data-testid": `qs-card-${camelize(displayName)}` }, (isActive && {
|
|
1628
|
+
isClickable: true,
|
|
1629
|
+
isSelectable: true,
|
|
1630
|
+
isSelected: true,
|
|
1631
|
+
isClicked: true,
|
|
1632
|
+
})),
|
|
1633
|
+
React.createElement(CardHeader, Object.assign({}, (action && {
|
|
1634
|
+
actions: { actions: additionalAction },
|
|
1635
|
+
})), quickStartIcon),
|
|
1636
|
+
React.createElement(CardTitle, null,
|
|
1637
|
+
React.createElement(QuickStartTileHeader, { name: displayName, onSelect: onSelect, quickStartId: id })),
|
|
1638
|
+
React.createElement(CardBody, null,
|
|
1639
|
+
React.createElement(Stack, { hasGutter: true },
|
|
1640
|
+
React.createElement(Flex, { spaceItems: { default: 'spaceItemsSm' } },
|
|
1641
|
+
type && React.createElement(Label, { color: type.color }, type.text),
|
|
1642
|
+
durationMinutes && (React.createElement(Label, { variant: "outline", "data-test": "duration", icon: React.createElement(OutlinedClockIcon, null) }, getResource('{{duration, number}} minutes', durationMinutes).replace('{{duration, number}}', durationMinutes))),
|
|
1643
|
+
status !== QuickStartStatus.NOT_STARTED && (React.createElement(Label, { variant: "outline", color: statusColorMap[status], icon: React.createElement(StatusIcon, { status: status }), "data-test": "status" }, statusLocaleMap[status]))),
|
|
1644
|
+
React.createElement(QuickStartTileDescription, { description: description, prerequisites: prerequisites }))),
|
|
1645
|
+
React.createElement(CardFooter, null, footerComponent)));
|
|
1725
1646
|
};
|
|
1726
1647
|
|
|
1727
1648
|
const QuickStartCatalog = ({ quickStarts }) => {
|
|
1728
1649
|
const { activeQuickStartID, allQuickStartStates } = React.useContext(QuickStartContext);
|
|
1729
|
-
return (React.createElement("div",
|
|
1730
|
-
React.createElement(Gallery, {
|
|
1650
|
+
return (React.createElement("div", null,
|
|
1651
|
+
React.createElement(Gallery, { hasGutter: true }, quickStarts.map((quickStart, index) => {
|
|
1731
1652
|
const { metadata: { name: id }, } = quickStart;
|
|
1732
|
-
return (React.createElement(
|
|
1733
|
-
React.createElement(QuickStartTile, { quickStart: quickStart, isActive: id === activeQuickStartID, status: getQuickStartStatus(allQuickStartStates, id) })));
|
|
1653
|
+
return (React.createElement(QuickStartTile, { key: index, quickStart: quickStart, isActive: id === activeQuickStartID, status: getQuickStartStatus(allQuickStartStates, id) }));
|
|
1734
1654
|
}))));
|
|
1735
1655
|
};
|
|
1736
1656
|
|
|
1737
1657
|
const QuickStartCatalogFilterSearch = (_a) => {
|
|
1738
1658
|
var { searchInputText, handleTextChange } = _a, props = __rest(_a, ["searchInputText", "handleTextChange"]);
|
|
1739
1659
|
const { getResource } = React.useContext(QuickStartContext);
|
|
1740
|
-
return (React.createElement(ToolbarItem,
|
|
1660
|
+
return (React.createElement(ToolbarItem, null,
|
|
1741
1661
|
React.createElement(SearchInput, Object.assign({ placeholder: getResource('Filter by keyword...'), value: searchInputText, onChange: (_ev, value) => handleTextChange(value), onClear: () => handleTextChange('') }, props))));
|
|
1742
1662
|
};
|
|
1743
1663
|
const QuickStartCatalogFilterSelect = (_a) => {
|
|
@@ -1752,7 +1672,7 @@ const QuickStartCatalogFilterSelect = (_a) => {
|
|
|
1752
1672
|
};
|
|
1753
1673
|
const QuickStartCatalogFilterCount = ({ quickStartsCount }) => {
|
|
1754
1674
|
const { getResource } = React.useContext(QuickStartContext);
|
|
1755
|
-
return (React.createElement(ToolbarItem, {
|
|
1675
|
+
return (React.createElement(ToolbarItem, { align: { default: 'alignEnd' } }, getResource('{{count, number}} item', quickStartsCount).replace('{{count, number}}', quickStartsCount)));
|
|
1756
1676
|
};
|
|
1757
1677
|
const QuickStartCatalogFilterSearchWrapper = ({ onSearchInputChange = () => { } }) => {
|
|
1758
1678
|
const { useQueryParams, filter, setFilter } = React.useContext(QuickStartContext);
|
|
@@ -1842,7 +1762,7 @@ const QuickStartCatalogFilterCountWrapper = ({ quickStartsCount }) => React.crea
|
|
|
1842
1762
|
|
|
1843
1763
|
const QuickStartCatalogFilter = (_a) => {
|
|
1844
1764
|
var { quickStartsCount, onSearchInputChange = () => { }, onStatusChange = () => { } } = _a, props = __rest(_a, ["quickStartsCount", "onSearchInputChange", "onStatusChange"]);
|
|
1845
|
-
return (React.createElement(Toolbar, Object.assign({
|
|
1765
|
+
return (React.createElement(Toolbar, Object.assign({}, props),
|
|
1846
1766
|
React.createElement(ToolbarContent, null,
|
|
1847
1767
|
React.createElement(QuickStartCatalogFilterSearchWrapper, { onSearchInputChange: onSearchInputChange }),
|
|
1848
1768
|
React.createElement(QuickStartCatalogFilterStatusWrapper, { onStatusChange: onStatusChange }),
|
|
@@ -1918,28 +1838,29 @@ const QuickStartCatalogPage = ({ quickStarts, showFilter, sortFnc = (q1, q2) =>
|
|
|
1918
1838
|
if (!allQuickStarts || allQuickStarts.length === 0) {
|
|
1919
1839
|
return React.createElement(EmptyBox, { label: getResource('Quick Starts') });
|
|
1920
1840
|
}
|
|
1921
|
-
return (React.createElement(
|
|
1922
|
-
showTitle && (React.createElement(
|
|
1923
|
-
React.createElement(
|
|
1924
|
-
|
|
1925
|
-
|
|
1926
|
-
|
|
1927
|
-
React.createElement(
|
|
1928
|
-
|
|
1929
|
-
|
|
1841
|
+
return (React.createElement(React.Fragment, null,
|
|
1842
|
+
(showTitle || showFilter) && (React.createElement(PageSection, { hasBodyWrapper: false },
|
|
1843
|
+
showTitle && (React.createElement(React.Fragment, null,
|
|
1844
|
+
React.createElement(Content, { component: "h1", "data-test": "page-title" }, title || getResource('Quick Starts')),
|
|
1845
|
+
hint && React.createElement("div", null, hint))),
|
|
1846
|
+
showTitle && React.createElement(Divider, { component: "div" }),
|
|
1847
|
+
showFilter && (React.createElement(React.Fragment, null,
|
|
1848
|
+
React.createElement(QuickStartCatalogFilter, { quickStartsCount: filteredQuickStarts.length, onSearchInputChange: onSearchInputChange, onStatusChange: onStatusChange }),
|
|
1849
|
+
React.createElement(Divider, { component: "div" }))))),
|
|
1850
|
+
React.createElement(PageSection, { hasBodyWrapper: false }, filteredQuickStarts.length === 0 ? (React.createElement(QuickStartCatalogEmptyState, { clearFilters: clearFilters })) : (React.createElement(QuickStartCatalog, { quickStarts: filteredQuickStarts })))));
|
|
1930
1851
|
};
|
|
1931
1852
|
|
|
1932
|
-
const QuickStartCatalogHeader = ({ title, hint, }) => (React.createElement("div",
|
|
1933
|
-
React.createElement("h1",
|
|
1934
|
-
hint && React.createElement("div",
|
|
1853
|
+
const QuickStartCatalogHeader = ({ title, hint, }) => (React.createElement("div", null,
|
|
1854
|
+
React.createElement(Title, { headingLevel: "h1", "data-pf-content": "true" }, title),
|
|
1855
|
+
hint && React.createElement("div", null, hint)));
|
|
1935
1856
|
|
|
1936
|
-
const QuickStartCatalogSection = ({ children }) => (React.createElement("div",
|
|
1857
|
+
const QuickStartCatalogSection = ({ children }) => (React.createElement("div", null, children));
|
|
1937
1858
|
|
|
1938
|
-
const QuickStartCatalogToolbar = ({ children }) => (React.createElement(Toolbar,
|
|
1859
|
+
const QuickStartCatalogToolbar = ({ children }) => (React.createElement(Toolbar, null, children));
|
|
1939
1860
|
|
|
1940
1861
|
const QuickStartCloseModal = ({ isOpen, onConfirm, onCancel, }) => {
|
|
1941
1862
|
const { getResource } = React.useContext(QuickStartContext);
|
|
1942
|
-
return (React.createElement(Modal, {
|
|
1863
|
+
return (React.createElement(Modal, { isOpen: isOpen, variant: ModalVariant.small, showClose: false, "data-test": "leave-quickstart", title: getResource('Leave quick start?'), footer: React.createElement(Flex, null,
|
|
1943
1864
|
React.createElement(FlexItem, { align: { default: 'alignRight' } },
|
|
1944
1865
|
React.createElement(Button, { variant: "secondary", "data-test": "cancel button", onClick: onCancel }, getResource('Cancel'))),
|
|
1945
1866
|
React.createElement(FlexItem, null,
|
|
@@ -1948,35 +1869,35 @@ const QuickStartCloseModal = ({ isOpen, onConfirm, onCancel, }) => {
|
|
|
1948
1869
|
|
|
1949
1870
|
const QuickStartTaskHeader = ({ title, taskIndex, subtitle, taskStatus, size, isActiveTask, onTaskSelect, children, }) => {
|
|
1950
1871
|
const titleRef = React.useRef(null);
|
|
1872
|
+
const { focusOnQuickStart } = React.useContext(QuickStartContext);
|
|
1951
1873
|
React.useEffect(() => {
|
|
1952
|
-
if (isActiveTask) {
|
|
1874
|
+
if (focusOnQuickStart && isActiveTask) {
|
|
1953
1875
|
// Focus the WizardNavItem button element that contains the title
|
|
1954
1876
|
titleRef.current.parentNode.focus();
|
|
1955
1877
|
}
|
|
1956
|
-
}, [isActiveTask]);
|
|
1957
|
-
css('pfext-quick-start-task-header__title', {
|
|
1958
|
-
'pfext-quick-start-task-header__title-success': taskStatus === QuickStartTaskStatus.SUCCESS,
|
|
1959
|
-
'pfext-quick-start-task-header__title-failed': taskStatus === (QuickStartTaskStatus.FAILED || QuickStartTaskStatus.VISITED),
|
|
1960
|
-
});
|
|
1961
|
-
// const notCompleted = taskStatus === QuickStartTaskStatus.VISITED;
|
|
1962
|
-
// const skippedReview = taskStatus === QuickStartTaskStatus.REVIEW;
|
|
1878
|
+
}, [focusOnQuickStart, isActiveTask]);
|
|
1963
1879
|
const failedReview = taskStatus === QuickStartTaskStatus.FAILED;
|
|
1964
|
-
// TODO: toned down when this is shown, investigate further when we should display it
|
|
1965
|
-
// related: https://github.com/patternfly/patternfly-quickstarts/issues/104
|
|
1966
1880
|
const tryAgain = failedReview && (React.createElement(React.Fragment, null,
|
|
1967
1881
|
React.createElement("div", null),
|
|
1968
1882
|
React.createElement("div", { className: "pfext-quick-start-task-header__tryagain" }, "Try the steps again.")));
|
|
1969
1883
|
const content = (React.createElement("div", { ref: titleRef },
|
|
1970
|
-
React.createElement(Title, { headingLevel: "h3" },
|
|
1971
|
-
React.createElement("span", {
|
|
1972
|
-
isActiveTask && subtitle && (React.createElement("span",
|
|
1884
|
+
React.createElement(Title, { headingLevel: "h3", size: size },
|
|
1885
|
+
React.createElement("span", { className: "pfext-quick-start-task-header__title" }, title),
|
|
1886
|
+
isActiveTask && subtitle && (React.createElement("span", null,
|
|
1973
1887
|
' ',
|
|
1974
|
-
React.createElement(
|
|
1888
|
+
React.createElement("span", { "data-test-id": "quick-start-task-subtitle", className: "pfext-quick-start-task-header__subtitle" }, subtitle))),
|
|
1975
1889
|
tryAgain)));
|
|
1976
|
-
|
|
1890
|
+
let status = 'default';
|
|
1891
|
+
if (taskStatus === QuickStartTaskStatus.FAILED) {
|
|
1892
|
+
status = 'error';
|
|
1893
|
+
}
|
|
1894
|
+
else if (taskStatus === QuickStartTaskStatus.SUCCESS) {
|
|
1895
|
+
status = 'success';
|
|
1896
|
+
}
|
|
1897
|
+
return (React.createElement(WizardNavItem, { content: content, stepIndex: taskIndex, onClick: () => onTaskSelect(taskIndex - 1), component: "button", isCurrent: isActiveTask, status: status }, children));
|
|
1977
1898
|
};
|
|
1978
1899
|
|
|
1979
|
-
const QuickStartTaskHeaderList = ({ tasks, allTaskStatuses, onTaskSelect, }) => tasks.length > 0 ? (React.createElement(
|
|
1900
|
+
const QuickStartTaskHeaderList = ({ tasks, allTaskStatuses, onTaskSelect, }) => (tasks === null || tasks === void 0 ? void 0 : tasks.length) > 0 ? (React.createElement("div", { className: "pf-v6-c-wizard__nav-list" }, tasks.map((task, index) => (React.createElement(QuickStartTaskHeader, { key: task.title, title: task.title, taskIndex: index + 1, size: "md", taskStatus: allTaskStatuses[index], onTaskSelect: onTaskSelect }))))) : null;
|
|
1980
1901
|
|
|
1981
1902
|
const QuickStartConclusion = ({ tasks, conclusion, allTaskStatuses, nextQuickStarts, onQuickStartChange, onTaskSelect, }) => {
|
|
1982
1903
|
const hasFailedTask = allTaskStatuses.includes(QuickStartTaskStatus.FAILED);
|
|
@@ -1991,10 +1912,7 @@ const QuickStartConclusion = ({ tasks, conclusion, allTaskStatuses, nextQuickSta
|
|
|
1991
1912
|
nextQuickStarts.length > 0 &&
|
|
1992
1913
|
nextQuickStarts.map((nextQuickStart, index) => {
|
|
1993
1914
|
var _a;
|
|
1994
|
-
return (React.createElement(Button, { variant: "link", onClick: () => onQuickStartChange(nextQuickStart.metadata.name), isInline: true, isBlock: true, key: index },
|
|
1995
|
-
getResource('Start {{nextQSDisplayName}} quick start').replace('{{nextQSDisplayName}}', (_a = nextQuickStart === null || nextQuickStart === void 0 ? void 0 : nextQuickStart.spec) === null || _a === void 0 ? void 0 : _a.displayName),
|
|
1996
|
-
' ',
|
|
1997
|
-
React.createElement(ArrowRightIcon, { style: { marginLeft: 'var(--pf-t--global--spacer--xs)', verticalAlign: 'middle' } })));
|
|
1915
|
+
return (React.createElement(Button, { variant: "link", onClick: () => onQuickStartChange(nextQuickStart.metadata.name), isInline: true, icon: React.createElement(ArrowRightIcon, null), iconPosition: "end", isBlock: true, key: index, style: { marginTop: 'var(--pf-t--global--spacer--md' } }, getResource('Start {{nextQSDisplayName}} quick start').replace('{{nextQSDisplayName}}', (_a = nextQuickStart === null || nextQuickStart === void 0 ? void 0 : nextQuickStart.spec) === null || _a === void 0 ? void 0 : _a.displayName)));
|
|
1998
1916
|
})));
|
|
1999
1917
|
};
|
|
2000
1918
|
|
|
@@ -2002,15 +1920,14 @@ const QuickStartIntroduction = ({ tasks, introduction, allTaskStatuses, prerequi
|
|
|
2002
1920
|
const { getResource } = React.useContext(QuickStartContext);
|
|
2003
1921
|
const prereqs = prerequisites === null || prerequisites === void 0 ? void 0 : prerequisites.filter((p) => p);
|
|
2004
1922
|
const [isPrereqsExpanded, setIsPrereqsExpanded] = React.useState(false);
|
|
2005
|
-
const prereqList = (prereqs === null || prereqs === void 0 ? void 0 : prereqs.length) > 0 && (React.createElement(ExpandableSection, { toggleText: getResource('View Prerequisites ({{totalPrereqs}})').replace('{{totalPrereqs}}', prereqs.length), onToggle: () => setIsPrereqsExpanded(!isPrereqsExpanded)
|
|
2006
|
-
React.createElement(List,
|
|
2007
|
-
React.createElement(
|
|
2008
|
-
|
|
2009
|
-
return (React.createElement(React.Fragment, null,
|
|
1923
|
+
const prereqList = (prereqs === null || prereqs === void 0 ? void 0 : prereqs.length) > 0 && (React.createElement(ExpandableSection, { toggleText: getResource('View Prerequisites ({{totalPrereqs}})').replace('{{totalPrereqs}}', prereqs.length), onToggle: () => setIsPrereqsExpanded(!isPrereqsExpanded) },
|
|
1924
|
+
React.createElement(List, null, prereqs.map((pr) => (React.createElement(ListItem, { key: pr },
|
|
1925
|
+
React.createElement(QuickStartMarkdownView, { content: pr })))))));
|
|
1926
|
+
return (React.createElement(Stack, { hasGutter: true },
|
|
2010
1927
|
React.createElement(QuickStartMarkdownView, { content: introduction }),
|
|
2011
1928
|
prereqList,
|
|
2012
|
-
React.createElement("p",
|
|
2013
|
-
getResource('In this quick start, you will complete {{count, number}} task', tasks.length).replace('{{count, number}}', tasks.length),
|
|
1929
|
+
React.createElement("p", null,
|
|
1930
|
+
getResource('In this quick start, you will complete {{count, number}} task', tasks === null || tasks === void 0 ? void 0 : tasks.length).replace('{{count, number}}', (tasks === null || tasks === void 0 ? void 0 : tasks.length) || 0),
|
|
2014
1931
|
":"),
|
|
2015
1932
|
React.createElement(QuickStartTaskHeaderList, { tasks: tasks, allTaskStatuses: allTaskStatuses, onTaskSelect: onTaskSelect })));
|
|
2016
1933
|
};
|
|
@@ -2028,12 +1945,9 @@ const getAlertVariant = (status) => {
|
|
|
2028
1945
|
const QuickStartTaskReview = ({ review, taskStatus, onTaskReview, }) => {
|
|
2029
1946
|
const { instructions, failedTaskHelp: taskHelp } = review;
|
|
2030
1947
|
const { getResource } = React.useContext(QuickStartContext);
|
|
2031
|
-
|
|
2032
|
-
|
|
2033
|
-
|
|
2034
|
-
});
|
|
2035
|
-
const title = React.createElement("span", { className: alertClassNames }, getResource('Check your work'));
|
|
2036
|
-
return (React.createElement(Alert, { className: "pfext-quick-start-task-review-alert", variant: getAlertVariant(taskStatus), title: title, isInline: true, role: "alert" },
|
|
1948
|
+
return (React.createElement(Alert, { variant: getAlertVariant(taskStatus), title: getResource('Check your work'), isInline: true, role: "alert", style: {
|
|
1949
|
+
marginBottom: 'var(--pf-t--global--spacer--md)',
|
|
1950
|
+
} },
|
|
2037
1951
|
React.createElement(QuickStartMarkdownView, { content: instructions }),
|
|
2038
1952
|
React.createElement("span", { className: "pfext-quick-start-task-review__actions" },
|
|
2039
1953
|
React.createElement(Radio, { id: "review-success", name: "review-success", "data-testid": "qs-drawer-check-yes", label: getResource('Yes'), className: "pfext-quick-start-task-review__radio", isChecked: taskStatus === QuickStartTaskStatus.SUCCESS, onChange: () => onTaskReview(QuickStartTaskStatus.SUCCESS) }),
|
|
@@ -2043,7 +1957,7 @@ const QuickStartTaskReview = ({ review, taskStatus, onTaskReview, }) => {
|
|
|
2043
1957
|
|
|
2044
1958
|
const QuickStartTasks = ({ tasks, taskNumber, allTaskStatuses, onTaskReview, onTaskSelect, }) => {
|
|
2045
1959
|
const { getResource, alwaysShowTaskReview } = React.useContext(QuickStartContext);
|
|
2046
|
-
return (React.createElement("div", { className: "
|
|
1960
|
+
return (React.createElement("div", { className: "pf-v6-c-wizard__nav-list", style: { padding: '0 0 0 0' } },
|
|
2047
1961
|
React.createElement("ul", null, tasks
|
|
2048
1962
|
.filter((_, index) => allTaskStatuses[index] !== QuickStartTaskStatus.INIT)
|
|
2049
1963
|
.map((task, index) => {
|
|
@@ -2055,7 +1969,7 @@ const QuickStartTasks = ({ tasks, taskNumber, allTaskStatuses, onTaskReview, onT
|
|
|
2055
1969
|
return (React.createElement(React.Fragment, { key: title },
|
|
2056
1970
|
React.createElement(QuickStartTaskHeader, { taskIndex: index + 1, title: title, size: "md", subtitle: getResource('{{index, number}} of {{tasks, number}}')
|
|
2057
1971
|
.replace('{{index, number}}', index + 1)
|
|
2058
|
-
.replace('{{tasks, number}}', tasks.length), taskStatus: taskStatus, isActiveTask: isActiveTask, onTaskSelect: onTaskSelect }, isActiveTask && (React.createElement(
|
|
1972
|
+
.replace('{{tasks, number}}', tasks.length), taskStatus: taskStatus, isActiveTask: isActiveTask, onTaskSelect: onTaskSelect }, isActiveTask && (React.createElement(Stack, { hasGutter: true },
|
|
2059
1973
|
React.createElement(QuickStartMarkdownView, { content: description }),
|
|
2060
1974
|
shouldShowTaskReview && (React.createElement(QuickStartTaskReview, { review: review, taskStatus: taskStatus, onTaskReview: onTaskReview })))))));
|
|
2061
1975
|
}))));
|
|
@@ -2063,14 +1977,14 @@ const QuickStartTasks = ({ tasks, taskNumber, allTaskStatuses, onTaskReview, onT
|
|
|
2063
1977
|
|
|
2064
1978
|
const QuickStartContent = React.forwardRef(({ quickStart, nextQuickStarts = [], taskNumber, allTaskStatuses, onTaskSelect, onTaskReview, onQuickStartChange, }, ref) => {
|
|
2065
1979
|
const { spec: { introduction, tasks, conclusion, prerequisites }, } = quickStart;
|
|
2066
|
-
const totalTasks = tasks.length;
|
|
2067
|
-
return (React.createElement("div", { className: "pfext-quick-start-
|
|
1980
|
+
const totalTasks = tasks === null || tasks === void 0 ? void 0 : tasks.length;
|
|
1981
|
+
return (React.createElement("div", { className: "pfext-quick-start-task", ref: ref },
|
|
2068
1982
|
taskNumber === -1 && (React.createElement(QuickStartIntroduction, { tasks: tasks, allTaskStatuses: allTaskStatuses, introduction: introduction, prerequisites: prerequisites, onTaskSelect: onTaskSelect })),
|
|
2069
1983
|
taskNumber > -1 && taskNumber < totalTasks && (React.createElement(QuickStartTasks, { tasks: tasks, taskNumber: taskNumber, allTaskStatuses: allTaskStatuses, onTaskReview: onTaskReview, onTaskSelect: onTaskSelect })),
|
|
2070
1984
|
taskNumber === totalTasks && (React.createElement(QuickStartConclusion, { tasks: tasks, conclusion: conclusion, allTaskStatuses: allTaskStatuses, nextQuickStarts: nextQuickStarts, onQuickStartChange: onQuickStartChange, onTaskSelect: onTaskSelect }))));
|
|
2071
1985
|
});
|
|
2072
1986
|
|
|
2073
|
-
const QuickStartFooter = ({ status, taskNumber, totalTasks, onNext, onBack,
|
|
1987
|
+
const QuickStartFooter = ({ status, taskNumber, totalTasks, onNext, onBack, quickStartId, className, }) => {
|
|
2074
1988
|
const { restartQuickStart, getResource } = React.useContext(QuickStartContext);
|
|
2075
1989
|
const PrimaryButtonText = React.useMemo(() => ({
|
|
2076
1990
|
START: getResource('Start'),
|
|
@@ -2099,13 +2013,16 @@ const QuickStartFooter = ({ status, taskNumber, totalTasks, onNext, onBack, foot
|
|
|
2099
2013
|
}
|
|
2100
2014
|
return PrimaryButtonText.CONTINUE;
|
|
2101
2015
|
}, [taskNumber, totalTasks, PrimaryButtonText, status]);
|
|
2102
|
-
const getPrimaryButton = React.useMemo(() => (React.createElement(Button, { variant: "primary",
|
|
2016
|
+
const getPrimaryButton = React.useMemo(() => (React.createElement(Button, { variant: "primary", onClick: onNext, "data-testid": `qs-drawer-${camelize(getPrimaryButtonText)}`, "data-test": `${getPrimaryButtonText} button` }, getPrimaryButtonText)), [getPrimaryButtonText, onNext]);
|
|
2103
2017
|
const getSecondaryButton = React.useMemo(() => taskNumber === -1 && status !== QuickStartStatus.NOT_STARTED ? (React.createElement(Button, { variant: "secondary", onClick: onRestart, "data-testid": "qs-drawer-restart" }, SecondaryButtonText.RESTART)) : (taskNumber > -1 && (React.createElement(Button, { variant: "secondary", onClick: onBack, "data-testid": "qs-drawer-back" }, SecondaryButtonText.BACK))), [onRestart, onBack, SecondaryButtonText, status, taskNumber]);
|
|
2104
|
-
const getSideNoteAction = React.useMemo(() => taskNumber !== -1 && (React.createElement(Button, { variant: "link",
|
|
2105
|
-
return (React.createElement("div", { className:
|
|
2106
|
-
|
|
2107
|
-
|
|
2108
|
-
|
|
2018
|
+
const getSideNoteAction = React.useMemo(() => taskNumber !== -1 && (React.createElement(Button, { variant: "link", onClick: onRestart, "data-testid": "qs-drawer-side-note-action" }, SecondaryButtonText.RESTART)), [taskNumber, onRestart, SecondaryButtonText.RESTART]);
|
|
2019
|
+
return (React.createElement("div", { className: css('pfext-quick-start-footer', className) },
|
|
2020
|
+
React.createElement(ActionList, null,
|
|
2021
|
+
React.createElement(ActionListGroup, null,
|
|
2022
|
+
React.createElement(ActionListItem, null, getPrimaryButton),
|
|
2023
|
+
React.createElement(ActionListItem, null, getSecondaryButton)),
|
|
2024
|
+
React.createElement(ActionListGroup, null,
|
|
2025
|
+
React.createElement(ActionListItem, null, getSideNoteAction)))));
|
|
2109
2026
|
};
|
|
2110
2027
|
|
|
2111
2028
|
const QuickStartController = ({ quickStart, nextQuickStarts, contentRef, footerClass, }) => {
|
|
@@ -2120,7 +2037,7 @@ const QuickStartController = ({ quickStart, nextQuickStarts, contentRef, footerC
|
|
|
2120
2037
|
const getQuickStartActiveTask = React.useCallback(() => {
|
|
2121
2038
|
let activeTaskNumber = 0;
|
|
2122
2039
|
while (activeTaskNumber !== totalTasks &&
|
|
2123
|
-
activeQuickStartState[`taskStatus${activeTaskNumber}`]
|
|
2040
|
+
activeQuickStartState[`taskStatus${activeTaskNumber}`] === QuickStartTaskStatus.SUCCESS) {
|
|
2124
2041
|
activeTaskNumber++;
|
|
2125
2042
|
}
|
|
2126
2043
|
return activeTaskNumber;
|
|
@@ -2144,7 +2061,7 @@ const QuickStartController = ({ quickStart, nextQuickStarts, contentRef, footerC
|
|
|
2144
2061
|
}, [name, setQuickStartTaskNumber]);
|
|
2145
2062
|
return (React.createElement(React.Fragment, null,
|
|
2146
2063
|
React.createElement(QuickStartContent, { quickStart: quickStart, nextQuickStarts: nextQuickStarts, taskNumber: taskNumber, allTaskStatuses: allTaskStatuses, onTaskSelect: handleTaskSelect, onTaskReview: handleTaskStatusChange, onQuickStartChange: handleQuickStartChange, ref: contentRef }),
|
|
2147
|
-
React.createElement(QuickStartFooter, { status: status, taskNumber: taskNumber, totalTasks: totalTasks, onNext: handleNext, onBack: handleBack,
|
|
2064
|
+
React.createElement(QuickStartFooter, { status: status, taskNumber: taskNumber, totalTasks: totalTasks, onNext: handleNext, onBack: handleBack, className: footerClass, quickStartId: quickStart.metadata.name })));
|
|
2148
2065
|
};
|
|
2149
2066
|
|
|
2150
2067
|
const getElement = (appendTo) => {
|
|
@@ -2161,24 +2078,17 @@ const useScrollTopOnTaskNumberChange = (node, taskNumber) => {
|
|
|
2161
2078
|
}, [taskNumber, node]);
|
|
2162
2079
|
};
|
|
2163
2080
|
const QuickStartPanelContent = (_a) => {
|
|
2164
|
-
var { quickStarts = [], handleClose, activeQuickStartID, appendTo, isResizable = true, showClose = true,
|
|
2081
|
+
var { quickStarts = [], handleClose, activeQuickStartID, appendTo, isResizable = true, showClose = true, footerClass } = _a, props = __rest(_a, ["quickStarts", "handleClose", "activeQuickStartID", "appendTo", "isResizable", "showClose", "footerClass"]);
|
|
2165
2082
|
const titleRef = React.useRef(null);
|
|
2166
|
-
const { getResource, activeQuickStartState } = React.useContext(QuickStartContext);
|
|
2083
|
+
const { getResource, activeQuickStartState, focusOnQuickStart } = React.useContext(QuickStartContext);
|
|
2167
2084
|
const [contentRef, setContentRef] = React.useState();
|
|
2168
|
-
const shadows = useScrollShadows(contentRef);
|
|
2169
2085
|
const quickStart = quickStarts.find((qs) => qs.metadata.name === activeQuickStartID);
|
|
2170
2086
|
const taskNumber = activeQuickStartState === null || activeQuickStartState === void 0 ? void 0 : activeQuickStartState.taskNumber;
|
|
2171
2087
|
useScrollTopOnTaskNumberChange(contentRef, taskNumber);
|
|
2172
2088
|
const nextQuickStarts = quickStarts.filter((qs) => { var _a; return (_a = quickStart === null || quickStart === void 0 ? void 0 : quickStart.spec.nextQuickStart) === null || _a === void 0 ? void 0 : _a.includes(qs.metadata.name); });
|
|
2173
|
-
const headerClasses = css('pfext-quick-start-panel-content__header', {
|
|
2174
|
-
'pfext-quick-start-panel-content__header__shadow': shadows === Shadows.top || shadows === Shadows.both,
|
|
2175
|
-
'pfext-quick-start-panel-content__header--blue-white': headerVariant === 'blue-white',
|
|
2176
|
-
});
|
|
2177
|
-
const footerClass = css({
|
|
2178
|
-
'pfext-quick-start-panel-content__footer__shadow': shadows === Shadows.bottom || shadows === Shadows.both,
|
|
2179
|
-
});
|
|
2180
2089
|
const getStep = () => {
|
|
2181
|
-
|
|
2090
|
+
var _a;
|
|
2091
|
+
const tasks = ((_a = quickStart.spec.tasks) === null || _a === void 0 ? void 0 : _a.length) || 0;
|
|
2182
2092
|
if (Number.parseInt(taskNumber) === -1) {
|
|
2183
2093
|
return 'intro';
|
|
2184
2094
|
}
|
|
@@ -2188,27 +2098,25 @@ const QuickStartPanelContent = (_a) => {
|
|
|
2188
2098
|
return Number.parseInt(taskNumber) + 1;
|
|
2189
2099
|
};
|
|
2190
2100
|
React.useEffect(() => {
|
|
2191
|
-
if (quickStart) {
|
|
2101
|
+
if (focusOnQuickStart && quickStart) {
|
|
2192
2102
|
titleRef.current.focus();
|
|
2193
2103
|
}
|
|
2194
|
-
}, [quickStart]);
|
|
2195
|
-
const content = quickStart ? (React.createElement(DrawerPanelContent, Object.assign({ isResizable: isResizable,
|
|
2196
|
-
React.createElement("div", { className:
|
|
2104
|
+
}, [focusOnQuickStart, quickStart]);
|
|
2105
|
+
const content = quickStart ? (React.createElement(DrawerPanelContent, Object.assign({ isResizable: isResizable, "data-testid": `qs-drawer-${camelize(quickStart.spec.displayName)}`, "data-qs": `qs-step-${getStep()}`, "data-test": "quickstart drawer", style: { '--pf-v6-c-drawer__panel--PaddingBlockStart': '0' } }, props),
|
|
2106
|
+
React.createElement("div", { className: "pfext-quick-start-panel-content" },
|
|
2197
2107
|
React.createElement(DrawerHead, null,
|
|
2198
|
-
React.createElement("div", {
|
|
2199
|
-
React.createElement(Title, { headingLevel: "h2", size: "xl",
|
|
2200
|
-
React.createElement("span",
|
|
2201
|
-
|
|
2202
|
-
|
|
2203
|
-
' ',
|
|
2204
|
-
|
|
2205
|
-
|
|
2206
|
-
|
|
2207
|
-
.replace('{{type}}', getResource('Type'))
|
|
2208
|
-
: getResource('Type')))),
|
|
2108
|
+
React.createElement("div", { tabIndex: -1, ref: titleRef },
|
|
2109
|
+
React.createElement(Title, { headingLevel: "h2", size: "xl", style: { marginRight: 'var(--pf-t--global--spacer--md)' } },
|
|
2110
|
+
React.createElement("span", null, quickStart === null || quickStart === void 0 ? void 0 : quickStart.spec.displayName),
|
|
2111
|
+
' '),
|
|
2112
|
+
React.createElement("span", null, (quickStart === null || quickStart === void 0 ? void 0 : quickStart.spec.durationMinutes)
|
|
2113
|
+
? getResource('{{type}} • {{duration, number}} minutes', quickStart === null || quickStart === void 0 ? void 0 : quickStart.spec.durationMinutes)
|
|
2114
|
+
.replace('{{duration, number}}', quickStart === null || quickStart === void 0 ? void 0 : quickStart.spec.durationMinutes)
|
|
2115
|
+
.replace('{{type}}', getResource('Type'))
|
|
2116
|
+
: getResource('Type'))),
|
|
2209
2117
|
showClose && (React.createElement(DrawerActions, null,
|
|
2210
2118
|
React.createElement(DrawerCloseButton, { onClick: handleClose, className: "pfext-quick-start-panel-content__close-button", "data-testid": "qs-drawer-close" }))))),
|
|
2211
|
-
React.createElement(DrawerPanelBody, {
|
|
2119
|
+
React.createElement(DrawerPanelBody, { className: "pfext-quick-start-panel-content__body", "data-test": "content" },
|
|
2212
2120
|
React.createElement(QuickStartController, { quickStart: quickStart, nextQuickStarts: nextQuickStarts, footerClass: footerClass, contentRef: setContentRef })))) : null;
|
|
2213
2121
|
if (appendTo) {
|
|
2214
2122
|
return ReactDOM.createPortal(content, getElement(appendTo));
|
|
@@ -2248,7 +2156,7 @@ const QuickStartContainer = (_a) => {
|
|
|
2248
2156
|
};
|
|
2249
2157
|
const QuickStartDrawer = (_a) => {
|
|
2250
2158
|
var { quickStarts = [], children, appendTo, fullWidth, onCloseInProgress, onCloseNotInProgress } = _a, props = __rest(_a, ["quickStarts", "children", "appendTo", "fullWidth", "onCloseInProgress", "onCloseNotInProgress"]);
|
|
2251
|
-
const { activeQuickStartID, setActiveQuickStart, allQuickStarts = [], activeQuickStartState, allQuickStartStates, setAllQuickStartStates,
|
|
2159
|
+
const { activeQuickStartID, setActiveQuickStart, allQuickStarts = [], activeQuickStartState, allQuickStartStates, setAllQuickStartStates, } = React.useContext(QuickStartContext);
|
|
2252
2160
|
const combinedQuickStarts = allQuickStarts.concat(quickStarts);
|
|
2253
2161
|
React.useEffect(() => {
|
|
2254
2162
|
const params = new URLSearchParams(window.location.search);
|
|
@@ -2307,10 +2215,10 @@ const QuickStartDrawer = (_a) => {
|
|
|
2307
2215
|
},
|
|
2308
2216
|
}
|
|
2309
2217
|
: {};
|
|
2310
|
-
const panelContent = (React.createElement(QuickStartPanelContent, Object.assign({ quickStarts: combinedQuickStarts, handleClose: handleClose, activeQuickStartID: activeQuickStartID, appendTo: appendTo, isResizable: !fullWidth
|
|
2218
|
+
const panelContent = (React.createElement(QuickStartPanelContent, Object.assign({ quickStarts: combinedQuickStarts, handleClose: handleClose, activeQuickStartID: activeQuickStartID, appendTo: appendTo, isResizable: !fullWidth }, fullWidthPanelStyle)));
|
|
2311
2219
|
return (React.createElement(React.Fragment, null,
|
|
2312
2220
|
React.createElement(Drawer, Object.assign({ isExpanded: !!activeQuickStartID, isInline: true }, props), children ? (React.createElement(DrawerContent, Object.assign({ panelContent: panelContent }, fullWidthBodyStyle),
|
|
2313
|
-
React.createElement(DrawerContentBody,
|
|
2221
|
+
React.createElement(DrawerContentBody, null, children))) : (React.createElement("div", null, panelContent))),
|
|
2314
2222
|
React.createElement(QuickStartCloseModal, { isOpen: modalOpen, onConfirm: onModalConfirm, onCancel: onModalCancel })));
|
|
2315
2223
|
};
|
|
2316
2224
|
|
|
@@ -2372,17 +2280,17 @@ const HelpTopicPanelContent = (_a) => {
|
|
|
2372
2280
|
!!((_b = activeHelpTopic === null || activeHelpTopic === void 0 ? void 0 : activeHelpTopic.links) === null || _b === void 0 ? void 0 : _b.length) && React.createElement(Divider, null),
|
|
2373
2281
|
paddingContainer(React.createElement(Stack, { hasGutter: true }, (_c = activeHelpTopic === null || activeHelpTopic === void 0 ? void 0 : activeHelpTopic.links) === null || _c === void 0 ? void 0 : _c.map(({ href, text, newTab, isExternal }, index) => (React.createElement(StackItem, { key: index },
|
|
2374
2282
|
React.createElement(Button, { component: "a", href: href, target: newTab ? '_blank' : '', rel: "noopener noreferrer", variant: "link", "aria-label": `Open documentation in new window`, isInline: true, icon: isExternal ? React.createElement(ExternalLinkAltIcon, null) : null, iconPosition: "right", style: { fontSize: 'inherit' } }, text || href))))))));
|
|
2375
|
-
const content = (React.createElement(DrawerPanelContent, Object.assign({ isResizable: isResizable
|
|
2283
|
+
const content = (React.createElement(DrawerPanelContent, Object.assign({ isResizable: isResizable }, props),
|
|
2376
2284
|
React.createElement("div", null,
|
|
2377
2285
|
React.createElement(DrawerHead, null,
|
|
2378
|
-
React.createElement("div",
|
|
2286
|
+
React.createElement("div", null,
|
|
2379
2287
|
helpTopicOptions && (React.createElement(Select, { isPlain: true, id: "help-topics-select", selected: activeHelpTopic, isOpen: isHelpTopicMenuOpen, onSelect: onSelectHelpTopic, onOpenChange: (isOpen) => setIsHelpTopicMenuOpen(isOpen), toggle: (toggleRef) => (React.createElement(MenuToggle, { isFullWidth: true, ref: toggleRef, icon: React.createElement(BarsIcon, null), onClick: toggleHelpTopicMenu, isExpanded: isHelpTopicMenuOpen }, activeHelpTopic === null || activeHelpTopic === void 0 ? void 0 : activeHelpTopic.title)) },
|
|
2380
2288
|
React.createElement(SelectList, null, helpTopicOptions))),
|
|
2381
|
-
React.createElement(Title, { headingLevel: "h1", size: "xl",
|
|
2289
|
+
React.createElement(Title, { headingLevel: "h1", size: "xl", style: { marginRight: 'var(--pf-t--global--spacer--md)' } }, activeHelpTopic === null || activeHelpTopic === void 0 ? void 0 : activeHelpTopic.title)),
|
|
2382
2290
|
React.createElement(DrawerActions, null,
|
|
2383
|
-
React.createElement(DrawerCloseButton, { onClick: onClose,
|
|
2291
|
+
React.createElement(DrawerCloseButton, { onClick: onClose, "data-testid": "qs-drawer-close" }))),
|
|
2384
2292
|
React.createElement(Divider, null),
|
|
2385
|
-
React.createElement(DrawerPanelBody, {
|
|
2293
|
+
React.createElement(DrawerPanelBody, { "data-test": "content" }, panelBodyItems))));
|
|
2386
2294
|
return content;
|
|
2387
2295
|
};
|
|
2388
2296
|
|
|
@@ -2414,7 +2322,7 @@ const HelpTopicDrawer = (_a) => {
|
|
|
2414
2322
|
const panelContent = (React.createElement(HelpTopicPanelContent, { activeHelpTopic: activeHelpTopic, filteredHelpTopics: filteredHelpTopics, onClose: onClose }));
|
|
2415
2323
|
return (React.createElement(React.Fragment, null,
|
|
2416
2324
|
React.createElement(Drawer, Object.assign({ isExpanded: !!activeHelpTopic, isInline: true }, props), children ? (React.createElement(DrawerContent, { panelContent: panelContent },
|
|
2417
|
-
React.createElement(DrawerContentBody,
|
|
2325
|
+
React.createElement(DrawerContentBody, null, children))) : (React.createElement("div", { className: "pf-v6-c-drawer__main" }, panelContent)))));
|
|
2418
2326
|
};
|
|
2419
2327
|
|
|
2420
2328
|
const useLocalStorage = (key, initialValue) => {
|