@rh-support/troubleshoot 2.2.84 → 2.2.87

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.
Files changed (33) hide show
  1. package/lib/esm/components/CaseEditView/ShareCase/PartnerShare.js +1 -1
  2. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseOpenshiftClusterId/CaseOpenshiftClusterId.d.ts.map +1 -1
  3. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseOpenshiftClusterId/CaseOpenshiftClusterId.js +4 -1
  4. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/CaseDiscussion.d.ts.map +1 -1
  5. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/CaseDiscussion.js +1 -11
  6. package/lib/esm/components/CaseInformation/OpenCaseIssue.d.ts.map +1 -1
  7. package/lib/esm/components/CaseInformation/OpenCaseIssue.js +7 -11
  8. package/lib/esm/components/ProductSelector/AllProductsSelector.js +2 -2
  9. package/lib/esm/components/Recommendations/AsideResults.d.ts.map +1 -1
  10. package/lib/esm/components/Recommendations/AsideResults.js +1 -1
  11. package/lib/esm/components/Recommendations/RecommendationInfoBox.d.ts +3 -0
  12. package/lib/esm/components/Recommendations/RecommendationInfoBox.d.ts.map +1 -0
  13. package/lib/esm/components/Recommendations/RecommendationInfoBox.js +27 -0
  14. package/lib/esm/components/Recommendations/Recommendations.d.ts.map +1 -1
  15. package/lib/esm/components/Recommendations/Recommendations.js +8 -4
  16. package/lib/esm/components/Recommendations/WatsonxAiIcon.d.ts +10 -0
  17. package/lib/esm/components/Recommendations/WatsonxAiIcon.d.ts.map +1 -0
  18. package/lib/esm/components/Recommendations/WatsonxAiIcon.js +13 -0
  19. package/lib/esm/components/SubmitCase/SubmitCase.d.ts.map +1 -1
  20. package/lib/esm/components/SubmitCase/SubmitCase.js +1 -0
  21. package/lib/esm/components/TroubleshootSection/TroubleshootSection.d.ts.map +1 -1
  22. package/lib/esm/components/TroubleshootSection/TroubleshootSection.js +21 -16
  23. package/lib/esm/components/wizardLayout/WizardAside.d.ts.map +1 -1
  24. package/lib/esm/components/wizardLayout/WizardAside.js +5 -2
  25. package/lib/esm/css/app.css +5 -0
  26. package/lib/esm/hooks/useWizard.d.ts.map +1 -1
  27. package/lib/esm/hooks/useWizard.js +2 -2
  28. package/lib/esm/reducers/RouteConstNTypes.d.ts +1 -0
  29. package/lib/esm/reducers/RouteConstNTypes.d.ts.map +1 -1
  30. package/lib/esm/reducers/RouteConstNTypes.js +2 -5
  31. package/lib/esm/scss/_main.scss +14 -6
  32. package/lib/esm/scss/_pf-overrides.scss +4 -8
  33. package/package.json +8 -8
@@ -49,7 +49,7 @@ export function ShareWithPartner(props) {
49
49
  try {
50
50
  const _partners = loggedInUserRights.data.isAccountSameAsLoggedInAccount(accountNumber)
51
51
  ? accountManagers
52
- : yield accounts.getPartnerAccountsForACustomer(caseAccountNumber);
52
+ : yield accounts.getPartnerAccountsForACustomer(caseAccountNumber, null, true);
53
53
  const partners = get(_partners, 'data'); // to check
54
54
  if (!isEmpty(partners)) {
55
55
  const response = yield kase.access.getCaseAccessList(caseNumber);
@@ -1 +1 @@
1
- {"version":3,"file":"CaseOpenshiftClusterId.d.ts","sourceRoot":"","sources":["../../../../../../../src/components/CaseEditView/Tabs/CaseDetails/CaseOpenshiftClusterId/CaseOpenshiftClusterId.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAkD,MAAM,OAAO,CAAC;AAqBvE,wBAAgB,sBAAsB,sBAmSrC"}
1
+ {"version":3,"file":"CaseOpenshiftClusterId.d.ts","sourceRoot":"","sources":["../../../../../../../src/components/CaseEditView/Tabs/CaseDetails/CaseOpenshiftClusterId/CaseOpenshiftClusterId.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAkD,MAAM,OAAO,CAAC;AAqBvE,wBAAgB,sBAAsB,sBAsSrC"}
@@ -75,7 +75,10 @@ export function CaseOpenshiftClusterId() {
75
75
  const hasCluster = yield isClusterIdEnabledForProduct(product, (_b = allProducts.data) === null || _b === void 0 ? void 0 : _b.productsResult);
76
76
  setShowClusterId(hasCluster);
77
77
  // when product changes from a product with cluster to a product without cluster, reset the clusterId
78
- const IsProductHasChanged = previousProduct && previousProduct !== product;
78
+ const hasPreviousProduct = previousProduct !== undefined;
79
+ const hasCurrentProduct = product !== undefined;
80
+ //need to check if they are undefined as the data loads in and can cause eval against product version === undefined causing edge case to reset our cluster with logic as if product changed.
81
+ const IsProductHasChanged = hasPreviousProduct && hasCurrentProduct && previousProduct !== product;
79
82
  const isResetClusterID = (!hasCluster || isOpenShiftV3) && IsProductHasChanged;
80
83
  if (isResetClusterID) {
81
84
  const caseDetails = {
@@ -1 +1 @@
1
- {"version":3,"file":"CaseDiscussion.d.ts","sourceRoot":"","sources":["../../../../../../src/components/CaseEditView/Tabs/CaseDiscussion/CaseDiscussion.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,YAAY,EAA0B,MAAM,yCAAyC,CAAC;AAqB1G,OAAO,KAAoE,MAAM,OAAO,CAAC;AAwCzF,UAAU,MAAM;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,YAAY,EAAE,CAAC;IAC7B,SAAS,EAAE,SAAS,EAAE,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,KAAK,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC;IAC/C,eAAe,EAAE,OAAO,CAAC;CAC5B;AAOD,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,KAAK,EAAE,MAAM,qBAujBnD"}
1
+ {"version":3,"file":"CaseDiscussion.d.ts","sourceRoot":"","sources":["../../../../../../src/components/CaseEditView/Tabs/CaseDiscussion/CaseDiscussion.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,YAAY,EAA0B,MAAM,yCAAyC,CAAC;AAoB1G,OAAO,KAAoE,MAAM,OAAO,CAAC;AAwCzF,UAAU,MAAM;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,YAAY,EAAE,CAAC;IAC7B,SAAS,EAAE,SAAS,EAAE,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,KAAK,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC;IAC/C,eAAe,EAAE,OAAO,CAAC;CAC5B;AAOD,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,KAAK,EAAE,MAAM,qBA4iBnD"}
@@ -8,7 +8,6 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
8
8
  });
9
9
  };
10
10
  import { caseAttachments } from '@cee-eng/hydrajs';
11
- import { Alert } from '@patternfly/react-core';
12
11
  import { AlertMessage, AlertType, Dropdown, ErrorBoundary, LoadingIndicator, MultiSelectDropDownList, ToastNotification, } from '@rh-support/components';
13
12
  import { useGlobalStateContext } from '@rh-support/react-context';
14
13
  import { AbilityContext, CaseDetailsFields, resourceActions, resources } from '@rh-support/user-permissions';
@@ -42,7 +41,6 @@ let cellMeasureCache = new CellMeasurerCache({
42
41
  defaultHeight: 100,
43
42
  });
44
43
  export default function CaseDiscussion(props) {
45
- var _a;
46
44
  const { t } = useTranslation();
47
45
  const { isPostingRemoteRequestCommentCompleted, screenSessionRequested } = useCaseSelector((state) => ({
48
46
  isPostingRemoteRequestCommentCompleted: state.isPostingRemoteRequestCommentCompleted,
@@ -55,7 +53,7 @@ export default function CaseDiscussion(props) {
55
53
  (urlSearchParams === null || urlSearchParams === void 0 ? void 0 : urlSearchParams.chatId));
56
54
  const activeDiscussionElementRef = useRef(null);
57
55
  const { sort, discussionFiltersListState, allDiscussions, replyCommentText, replyCommentCreator } = useCaseDiscussionTabStateContext();
58
- const { globalMetadataState: { loggedInUsersAccount, loggedInUserRights, navBarRef }, } = useGlobalStateContext();
56
+ const { globalMetadataState: { loggedInUsersAccount, navBarRef }, } = useGlobalStateContext();
59
57
  const dispatchDiscussion = useCaseDiscussionTabDispatchContext();
60
58
  const caseDispatch = useCaseDispatch();
61
59
  const { caseDetailsPageState: { caseFeedbacksHydra, caseAttachmentHydra, caseExternalTrackersUpdate }, } = useCaseDetailsPageStateContext();
@@ -330,14 +328,6 @@ export default function CaseDiscussion(props) {
330
328
  }, [isPostingRemoteRequestCommentCompleted]);
331
329
  return (React.createElement(React.Fragment, null,
332
330
  React.createElement(ErrorBoundary, { errorMsgInfo: { message: t('There was an error loading post comment section') } },
333
- ((_a = loggedInUserRights === null || loggedInUserRights === void 0 ? void 0 : loggedInUserRights.data) === null || _a === void 0 ? void 0 : _a.isInternal()) && (React.createElement(Alert, { variant: "warning", isInline: true, title: t('Critical reminder'), className: "pf-v5-u-mb-md" },
334
- React.createElement("p", null,
335
- React.createElement(Trans, null,
336
- "Before posting any comments to a case ",
337
- React.createElement("b", null, "confirm"),
338
- " that your content and the case screen are for the ",
339
- React.createElement("b", null, "correct"),
340
- " customer case. This avoids accidental breaches of customer contracts and confidentiality obligations.")))),
341
331
  React.createElement(AttachmentContextProvider, null,
342
332
  React.createElement(PostComment, { caseNumber: caseNumber, allDiscussions: allDiscussions, onCommentAdded: onCommentAdded, onAttachmentAdded: onAttachmentAdded, commentText: replyCommentText, onCommentClear: resetReplyComment, commentCreator: replyCommentCreator, defaultIsPublic: replyingToPrivateComment === null ? replyingToPrivateComment : !replyingToPrivateComment }))),
343
333
  React.createElement(LoadingIndicator, { className: "text-center", isInline: true, show: caseAttachmentHydra.isFetching ||
@@ -1 +1 @@
1
- {"version":3,"file":"OpenCaseIssue.d.ts","sourceRoot":"","sources":["../../../../src/components/CaseInformation/OpenCaseIssue.tsx"],"names":[],"mappings":"AAIA,OAAO,KAA+B,MAAM,OAAO,CAAC;AAQpD,UAAU,MAAM;IACZ,cAAc,EAAE,OAAO,CAAC;IACxB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;CACxB;AASD,iBAAS,aAAa,CAAC,KAAK,EAAE,MAAM,qBAkGnC;kBAlGQ,aAAa;;;AAqGtB,eAAe,aAAa,CAAC"}
1
+ {"version":3,"file":"OpenCaseIssue.d.ts","sourceRoot":"","sources":["../../../../src/components/CaseInformation/OpenCaseIssue.tsx"],"names":[],"mappings":"AAKA,OAAO,KAA+B,MAAM,OAAO,CAAC;AAQpD,UAAU,MAAM;IACZ,cAAc,EAAE,OAAO,CAAC;IACxB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;CACxB;AASD,iBAAS,aAAa,CAAC,KAAK,EAAE,MAAM,qBAqGnC;kBArGQ,aAAa;;;AAwGtB,eAAe,aAAa,CAAC"}
@@ -1,3 +1,4 @@
1
+ import { Progress, ProgressMeasureLocation, ProgressSize } from '@patternfly/react-core';
1
2
  import { InlineEdit } from '@rh-support/components';
2
3
  import { PreviousCaseTypes } from '@rh-support/utils';
3
4
  import isEmpty from 'lodash/isEmpty';
@@ -5,7 +6,7 @@ import React, { useContext, useState } from 'react';
5
6
  import { Trans, useTranslation } from 'react-i18next';
6
7
  import { useCaseDispatch, useCaseSelector } from '../../context/CaseContext';
7
8
  import { RouteContext } from '../../context/RouteContext';
8
- import { SUMMARY_LENGTH_LIMIT, summaryMaxLengthErrorMessage } from '../../reducers/CaseConstNTypes';
9
+ import { SUMMARY_LENGTH_LIMIT } from '../../reducers/CaseConstNTypes';
9
10
  import { setCaseDetails } from '../../reducers/CaseReducer';
10
11
  const defaultProps = {
11
12
  initialIsEditing: false,
@@ -38,30 +39,25 @@ function OpenCaseIssue(props) {
38
39
  onCaseDetailsChange({ summary: summaryLocal });
39
40
  setIsSummaryInValid(isEmpty(summaryLocal === null || summaryLocal === void 0 ? void 0 : summaryLocal.trim()));
40
41
  };
41
- const maxLengthErrorMessage = t(summaryMaxLengthErrorMessage, {
42
- limit: SUMMARY_LENGTH_LIMIT,
43
- });
44
42
  return (React.createElement(React.Fragment, null,
45
43
  React.createElement(InlineEdit, { labelProps: {
46
44
  htmlFor: supportType === PreviousCaseTypes.FEATURE_ENHANCEMENT
47
45
  ? 'get-support-title'
48
46
  : 'get-support-summary',
49
47
  }, labelContent: React.createElement(React.Fragment, null,
50
- React.createElement(Trans, null, supportType === PreviousCaseTypes.FEATURE_ENHANCEMENT ? 'Title' : 'Summary'),
48
+ React.createElement(Trans, null, supportType === PreviousCaseTypes.FEATURE_ENHANCEMENT ? 'Title' : 'Problem description'),
51
49
  ' ',
52
50
  !!props.required && (React.createElement("span", { className: "form-required", "aria-hidden": true }, "*"))), allowInlineEdit: props.inlineEditable, hideSaveCancel: !!props.hideSaveCancel, initialIsEditing: !!props.initialIsEditing, saveOnBlur: true, collapseOnBlur: !!props.collapseOnBlur && !isSummaryInValid, content: summary },
53
- React.createElement("input", { type: "text", id: supportType === PreviousCaseTypes.FEATURE_ENHANCEMENT
51
+ React.createElement("textarea", { id: supportType === PreviousCaseTypes.FEATURE_ENHANCEMENT
54
52
  ? 'get-support-title'
55
53
  : 'get-support-summary', className: `form-control${isSummaryInValid || hasLargeSummary || (isNextBtnClickedToShowValidationError && !summary)
56
54
  ? ' form-invalid'
57
55
  : ''}`, "aria-invalid": isSummaryInValid, "aria-required": !!props.required, required: !!props.required, name: supportType === PreviousCaseTypes.FEATURE_ENHANCEMENT
58
56
  ? 'get-support-title'
59
- : 'get-support-summary', placeholder: t('i18nkeySummarizeExperience', "Summarize what you're experiencing today"), value: summary, onChange: onSummaryChange, onBlur: onSummaryBlur, autoFocus: !!props.autoFocus, "data-tracking-id": supportType === PreviousCaseTypes.FEATURE_ENHANCEMENT
57
+ : 'get-support-summary', placeholder: t('i18nkeySummarizeExperience', "Please describe the problem you are facing, including any specific steps you've taken or error messages."), value: summary, onChange: onSummaryChange, onBlur: onSummaryBlur, autoFocus: !!props.autoFocus, "data-tracking-id": supportType === PreviousCaseTypes.FEATURE_ENHANCEMENT
60
58
  ? 'get-support-title'
61
- : 'get-support-summary' })),
62
- (summary === null || summary === void 0 ? void 0 : summary.length) > SUMMARY_LENGTH_LIMIT && (React.createElement("div", { className: "pull-top" },
63
- React.createElement("p", { className: "form-instructions form-invalid" },
64
- React.createElement(Trans, null, maxLengthErrorMessage))))));
59
+ : 'get-support-summary', rows: 6 }),
60
+ React.createElement(Progress, { value: summary === null || summary === void 0 ? void 0 : summary.length, min: 0, max: SUMMARY_LENGTH_LIMIT, size: ProgressSize.sm, label: `${summary === null || summary === void 0 ? void 0 : summary.length} / ${SUMMARY_LENGTH_LIMIT}`, valueText: `${summary === null || summary === void 0 ? void 0 : summary.length} / ${SUMMARY_LENGTH_LIMIT}`, measureLocation: ProgressMeasureLocation.outside }))));
65
61
  }
66
62
  OpenCaseIssue.defaultProps = defaultProps;
67
63
  export default OpenCaseIssue;
@@ -78,10 +78,10 @@ const AllProductsSelector = forwardRef((props, ref) => {
78
78
  const entitledProducts = filter(allProducts.data.productsResult, (p) => p.isEntitledProduct);
79
79
  return (React.createElement(React.Fragment, null,
80
80
  React.createElement("div", { className: "form-group product-selector-wrapper" },
81
- React.createElement("div", { className: "case-details-summary" },
82
- React.createElement(OpenCaseIssue, { inlineEditable: false, required: true })),
83
81
  React.createElement("div", { className: "all-product-selector-dropdown" },
84
82
  React.createElement(ProductVersionDropdownSelector, { isLoading: allProducts.isFetching, products: props.checkEntitledProduct ? entitledProducts : allProducts.data.productsResult, onProductChange: onProductChange, onVersionChange: onVersionChange, ref: ref }))),
83
+ React.createElement("div", { className: "case-details-summary" },
84
+ React.createElement(OpenCaseIssue, { inlineEditable: false, required: true })),
85
85
  React.createElement(AlertMessage, { isInline: true, variant: AlertType.DANGER, className: "pf-v5-u-mt-lg", title: t(`${loggedInUserRights.data.isSSOUsernameSameAsLoggedInUser(contactSSOName)
86
86
  ? 'You are'
87
87
  : 'Selected owner is'} not allowed to create case on this product.`), show: !allProducts.isFetching && props.checkEntitledProduct && !isEntitledProduct && !isEmpty(product) }),
@@ -1 +1 @@
1
- {"version":3,"file":"AsideResults.d.ts","sourceRoot":"","sources":["../../../../src/components/Recommendations/AsideResults.tsx"],"names":[],"mappings":"AAgBA,OAAO,KAAwC,MAAM,OAAO,CAAC;AAE7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AASvD,OAAO,EAAE,eAAe,EAAsC,MAAM,iCAAiC,CAAC;AAUtG,UAAU,MAAM;IACZ,UAAU,EAAE,mBAAmB,CAAC,eAAe,CAAC,CAAC;CACpD;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,qBAsMzC"}
1
+ {"version":3,"file":"AsideResults.d.ts","sourceRoot":"","sources":["../../../../src/components/Recommendations/AsideResults.tsx"],"names":[],"mappings":"AAgBA,OAAO,KAAwC,MAAM,OAAO,CAAC;AAE7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AASvD,OAAO,EAAE,eAAe,EAAsC,MAAM,iCAAiC,CAAC;AAUtG,UAAU,MAAM;IACZ,UAAU,EAAE,mBAAmB,CAAC,eAAe,CAAC,CAAC;CACpD;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,qBA0MzC"}
@@ -131,7 +131,7 @@ export function AsideResults(props) {
131
131
  if (!canShowSideRecommendations())
132
132
  return React.createElement(React.Fragment, null);
133
133
  return (React.createElement("div", { className: "card card-white card-support top-recommendations" },
134
- React.createElement("h3", { className: "card-heading popular-solutions green-card-heading" }, isIdea ? React.createElement(Trans, null, "Search recommendations") : React.createElement(Trans, null, "Knowledgebase recommendations")),
134
+ React.createElement("h3", { className: "card-heading popular-solutions green-card-heading" }, isIdea ? (React.createElement(Trans, null, "Search recommendations")) : (React.createElement(Trans, null, "Live troubleshooting powered by OpenShift AI"))),
135
135
  React.createElement("div", { className: "card-body" },
136
136
  React.createElement("ul", { className: "list-flat" }, recommendationState.sideRecommendation.map((doc, index) => {
137
137
  var _a, _b;
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ export declare const RecommendationInfoBox: () => React.JSX.Element;
3
+ //# sourceMappingURL=RecommendationInfoBox.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RecommendationInfoBox.d.ts","sourceRoot":"","sources":["../../../../src/components/Recommendations/RecommendationInfoBox.tsx"],"names":[],"mappings":"AACA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAGxC,eAAO,MAAM,qBAAqB,yBA6CjC,CAAC"}
@@ -0,0 +1,27 @@
1
+ import { Accordion, AccordionContent, AccordionItem, AccordionToggle } from '@patternfly/react-core';
2
+ import React, { useState } from 'react';
3
+ import { Trans } from 'react-i18next';
4
+ export const RecommendationInfoBox = () => {
5
+ const [isExpanded, setIsExpanded] = useState(true);
6
+ return (React.createElement(React.Fragment, null,
7
+ React.createElement(Accordion, { isBordered: true, asDefinitionList: false, className: "card card-white pf-v5-u-mt-md" },
8
+ React.createElement(AccordionItem, null,
9
+ React.createElement(AccordionToggle, { id: "recommendation-tips", isExpanded: isExpanded, onClick: () => setIsExpanded(!isExpanded) },
10
+ React.createElement(Trans, null, "Tips for problem description fields")),
11
+ React.createElement(AccordionContent, { isHidden: !isExpanded },
12
+ React.createElement("span", { className: "pf-v5-u-color-100" },
13
+ React.createElement(Trans, null, "Include the following information in the description to expedite your case:")),
14
+ React.createElement("ul", null,
15
+ React.createElement("li", null,
16
+ React.createElement(Trans, null, ". Problem")),
17
+ React.createElement("li", null,
18
+ React.createElement(Trans, null, ". Steps you've taken")),
19
+ React.createElement("li", null,
20
+ React.createElement(Trans, null, ". Error Messages"))),
21
+ React.createElement("span", { className: "pf-v5-u-color-100" },
22
+ React.createElement(Trans, null, "Examples:")),
23
+ React.createElement("p", null,
24
+ React.createElement(Trans, null, "\"we see error/message\", \"function taht is failing\"")),
25
+ React.createElement("p", null,
26
+ React.createElement(Trans, null, "I'm unable to start the SSHD service receiving the error message \"Bad yes/no argument for ShowPatchLevel parameter\"")))))));
27
+ };
@@ -1 +1 @@
1
- {"version":3,"file":"Recommendations.d.ts","sourceRoot":"","sources":["../../../../src/components/Recommendations/Recommendations.tsx"],"names":[],"mappings":"AAkBA,OAAO,KAAkD,MAAM,OAAO,CAAC;AAEvE,OAAO,EAAE,mBAAmB,EAAa,MAAM,kBAAkB,CAAC;AAelE,OAAO,EAAoB,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAUpF,UAAU,MAAM;IACZ,UAAU,EAAE,mBAAmB,CAAC,eAAe,CAAC,CAAC;CACpD;AAED,MAAM,CAAC,OAAO,UAAU,eAAe,CAAC,KAAK,EAAE,MAAM,qBA2PpD"}
1
+ {"version":3,"file":"Recommendations.d.ts","sourceRoot":"","sources":["../../../../src/components/Recommendations/Recommendations.tsx"],"names":[],"mappings":"AAkBA,OAAO,KAAkD,MAAM,OAAO,CAAC;AAEvE,OAAO,EAAE,mBAAmB,EAAa,MAAM,kBAAkB,CAAC;AAelE,OAAO,EAAoB,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAWpF,UAAU,MAAM;IACZ,UAAU,EAAE,mBAAmB,CAAC,eAAe,CAAC,CAAC;CACpD;AAED,MAAM,CAAC,OAAO,UAAU,eAAe,CAAC,KAAK,EAAE,MAAM,qBAqQpD"}
@@ -1,5 +1,5 @@
1
1
  import { pcm } from '@cee-eng/hydrajs';
2
- import { Pagination, PaginationVariant } from '@patternfly/react-core';
2
+ import { Label, Pagination, PaginationVariant } from '@patternfly/react-core';
3
3
  import { LoadingDots, useDebounce, usePrevious } from '@rh-support/components';
4
4
  import { useGlobalStateContext } from '@rh-support/react-context';
5
5
  import { computeRecommendationAbstract, computeRecommendationTitle, formatDate, scrollIntoView, } from '@rh-support/utils';
@@ -20,6 +20,7 @@ import { fetchRecommendations, fetchWatsonXRecommendations, RecommendationsConst
20
20
  import { AppRouteSections } from '../../reducers/RouteConstNTypes';
21
21
  import { createOrUpdateSessionResources, getSessResFromRec, getSessResFromRecs, } from '../../reducers/SessionRestoreReducer';
22
22
  import RouteUtils from '../../utils/routeUtils';
23
+ import { WatsonxAiIcon } from './WatsonxAiIcon';
23
24
  const { SessionResourceSource, SessionResourceVisibility } = pcm.preCase.session;
24
25
  export default function Recommendations(props) {
25
26
  var _a, _b, _c;
@@ -132,10 +133,13 @@ export default function Recommendations(props) {
132
133
  createOrUpdateSessionResources(sessionRestoreDispatch, activeSessionId, sessionResourceTracking, SessionResourceSource.RECOMMENDATIONS, [
133
134
  getSessResFromRec(doc, SessionResourceVisibility.VISITED, index + 1 + (pageSize || DEFAULTPAGESIZE) * ((recommendationState.currentPage || 1) - 1)),
134
135
  ], JSON.stringify(payload));
135
- };
136
+ }; //
136
137
  return (React.createElement(React.Fragment, null,
137
- React.createElement(LoadingDots, { show: recommendationState.isLoadingRecommendations && !isEmpty(summary) }),
138
- React.createElement("div", { className: "recommendation-list pf-v5-u-mt-lg", ref: resultRowRef },
138
+ React.createElement(LoadingDots, { className: "recommendation-loading-dots", show: recommendationState.isLoadingRecommendations && !isEmpty(summary) }),
139
+ React.createElement("div", { className: "recommendation-list pf-v5-u-pt-md", ref: resultRowRef },
140
+ recommendationState.visibleDocs.length !== 0 && (React.createElement(Label, { color: "purple", className: "pf-v5-u-mb-md" },
141
+ React.createElement(WatsonxAiIcon, { fillColor: "#6753ac", className: "pf-v5-u-mb-sm" }),
142
+ "Live search results powered by Openshift AI")),
139
143
  React.createElement("ul", { className: "list-flat" }, map(recommendationState.visibleDocs, (doc, i) => {
140
144
  var _a, _b;
141
145
  return (React.createElement("li", { className: "result", key: doc.id },
@@ -0,0 +1,10 @@
1
+ import React from 'react';
2
+ interface IconProps {
3
+ width?: number;
4
+ height?: number;
5
+ fillColor?: string;
6
+ className?: string;
7
+ }
8
+ export declare const WatsonxAiIcon: (props: IconProps) => React.JSX.Element;
9
+ export {};
10
+ //# sourceMappingURL=WatsonxAiIcon.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WatsonxAiIcon.d.ts","sourceRoot":"","sources":["../../../../src/components/Recommendations/WatsonxAiIcon.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,UAAU,SAAS;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,eAAO,MAAM,aAAa,UAAW,SAAS,sBA4B7C,CAAC"}
@@ -0,0 +1,13 @@
1
+ import React from 'react';
2
+ export const WatsonxAiIcon = (props) => {
3
+ const { width = 32, height = 32 } = props;
4
+ const viewBox = '0 0 ' + width + ' ' + height;
5
+ return (React.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: viewBox, width: width, height: height, className: `pf-v5-svg ${props.className}` },
6
+ React.createElement("g", null,
7
+ React.createElement("g", { fill: props.fillColor },
8
+ React.createElement("path", { d: "m26,24c-1.1046,0-2,.8954-2,2,0,.0764.0142.1488.0225.2229-2.2808,1.7963-5.0792,2.7771-8.0225,2.7771-4.2617,0-8-3.9722-8-8.5,0-4.687,3.813-8.5,8.5-8.5h.5v-2h-.5c-5.7896,0-10.5,4.7104-10.5,10.5,0,1.8839.5304,3.6896,1.4371,5.2565-2.7133-2.3843-4.4371-5.869-4.4371-9.7565,0-2.1152.4917-4.1328,1.4619-5.9956l-1.7744-.9238c-1.104,2.1211-1.6875,4.5137-1.6875,6.9194,0,8.271,6.729,15,15,15,3.3744,0,6.5818-1.1193,9.2048-3.1662.244.106.5123.1662.7952.1662,1.1046,0,2-.8954,2-2s-.8954-2-2-2Z" }),
9
+ React.createElement("rect", { x: "11", y: "20", width: "2", height: "2", transform: "translate(33 9) rotate(90)" }),
10
+ React.createElement("rect", { x: "19", y: "10", width: "2", height: "2", transform: "translate(31 -9) rotate(90)" }),
11
+ React.createElement("path", { d: "m16,1c-3.3744,0-6.5818,1.1193-9.2048,3.1662-.244-.106-.5123-.1662-.7952-.1662-1.1046,0-2,.8954-2,2s.8954,2,2,2,2-.8954,2-2c0-.0764-.0142-.1488-.0225-.2229,2.2808-1.7963,5.0792-2.7771,8.0225-2.7771,4.2617,0,8,3.9722,8,8.5,0,4.687-3.813,8.5-8.5,8.5h-.5v2h.5c5.7896,0,10.5-4.7104,10.5-10.5,0-1.8853-.5322-3.6917-1.4401-5.2593,2.715,2.3843,4.4401,5.8704,4.4401,9.7593,0,2.1152-.4917,4.1328-1.4619,5.9956l1.7744.9238c1.104-2.1211,1.6875-4.5137,1.6875-6.9194C31,7.729,24.271,1,16,1Z" })),
12
+ React.createElement("rect", { fill: "none", id: "_Transparent_Rectangle_", "data-name": "<Transparent Rectangle>", width: "32", height: "32" }))));
13
+ };
@@ -1 +1 @@
1
- {"version":3,"file":"SubmitCase.d.ts","sourceRoot":"","sources":["../../../../src/components/SubmitCase/SubmitCase.tsx"],"names":[],"mappings":"AAeA,OAAO,KAA0C,MAAM,OAAO,CAAC;AAE/D,OAAO,EAAQ,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAO7D,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAWlE,UAAU,MAAM;IACZ,UAAU,EAAE,mBAAmB,CAAC,eAAe,CAAC,CAAC;CACpD;AAED,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,KAAK,EAAE,MAAM,qBAkU/C"}
1
+ {"version":3,"file":"SubmitCase.d.ts","sourceRoot":"","sources":["../../../../src/components/SubmitCase/SubmitCase.tsx"],"names":[],"mappings":"AAeA,OAAO,KAA0C,MAAM,OAAO,CAAC;AAE/D,OAAO,EAAQ,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAO7D,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAWlE,UAAU,MAAM;IACZ,UAAU,EAAE,mBAAmB,CAAC,eAAe,CAAC,CAAC;CACpD;AAED,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,KAAK,EAAE,MAAM,qBAmU/C"}
@@ -78,6 +78,7 @@ export default function SubmitCase(props) {
78
78
  const onRemoteRiderClose = () => {
79
79
  setIsRemoteRiderBannerVisible(false);
80
80
  };
81
+ // conditions to show Remote Rider banner
81
82
  const showRemoteRiderBanner = isRemoteRiderBannerVisible &&
82
83
  !loggedInUser.data.isInternal &&
83
84
  showRemoteRiderTermsInline &&
@@ -1 +1 @@
1
- {"version":3,"file":"TroubleshootSection.d.ts","sourceRoot":"","sources":["../../../../src/components/TroubleshootSection/TroubleshootSection.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAqB,MAAM,OAAO,CAAC;AAY1C,UAAU,MAAM;IACZ,cAAc,EAAE,OAAO,CAAC;IACxB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC5B;AASD,iBAAS,mBAAmB,CAAC,KAAK,EAAE,MAAM,qBA4GzC;kBA5GQ,mBAAmB;;;AA+G5B,eAAe,mBAAmB,CAAC"}
1
+ {"version":3,"file":"TroubleshootSection.d.ts","sourceRoot":"","sources":["../../../../src/components/TroubleshootSection/TroubleshootSection.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAqB,MAAM,OAAO,CAAC;AAY1C,UAAU,MAAM;IACZ,cAAc,EAAE,OAAO,CAAC;IACxB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC5B;AASD,iBAAS,mBAAmB,CAAC,KAAK,EAAE,MAAM,qBAgHzC;kBAhHQ,mBAAmB;;;AAmH5B,eAAe,mBAAmB,CAAC"}
@@ -27,9 +27,10 @@ function TroubleshootSection(props) {
27
27
  const { t } = useTranslation();
28
28
  const { topContentState: { topContent }, } = useContext(TCStateContext);
29
29
  const { globalMetadataState: { loggedInUsersAccount }, } = useContext(GlobalMetadataStateContext);
30
- const { product, version, isCreatingCase, caseType } = useCaseSelector((state) => ({
30
+ const { product, version, summary, isCreatingCase, caseType } = useCaseSelector((state) => ({
31
31
  product: state.caseDetails.product,
32
32
  version: state.caseDetails.version,
33
+ summary: state.caseDetails.summary,
33
34
  isCreatingCase: state.isCreatingCase,
34
35
  caseType: state.caseDetails.caseType,
35
36
  }), isEqual);
@@ -38,23 +39,27 @@ function TroubleshootSection(props) {
38
39
  const canAddAttachments = ability.can(resourceActions.PATCH, resources.CASE_CREATE, CaseListFields.ATTACHMENTS);
39
40
  const isNotAnIdea = caseType !== PreviousCaseTypes.FEATURE_ENHANCEMENT;
40
41
  return (React.createElement(React.Fragment, null,
41
- !isCreatingCase && (React.createElement(OpenShiftClusterId, { className: "push-bottom", "data-tracking-id": "troubleshoot-section-openshift-cluster-id" })),
42
42
  React.createElement("section", null,
43
43
  React.createElement("header", null,
44
- React.createElement("h3", null,
45
- React.createElement("p", { className: "selected-product-suggestion" },
46
- t('Because you selected'),
47
- " ",
48
- React.createElement("b", null, product))),
49
- React.createElement(LoadingDots, { show: topContent.isFetching }),
50
- topContent.data.length === 0 && (React.createElement(Card, { id: "card", className: "card-support top-recommendations pf-v5-u-mb-md", isCompact: true },
51
- React.createElement(CardHeader, { "aria-label": t('Popular solutions and docs'), className: "popular-solutions" },
52
- React.createElement(CardTitle, { id: "card-title", className: "card-title" },
53
- React.createElement(Trans, { i18nKey: 'i18nKeyPopularSolutions' }, "Popular solutions and docs"))),
54
- React.createElement(CardBody, { "aria-label": t('No recommendations for this product'), className: "file-recs-no-recommendation pf-v5-u-mt-md" },
55
- React.createElement(Trans, null, "No recommendations for this product")))),
56
- React.createElement(ErrorBoundary, { errorMsgInfo: { message: t('There was an error loading suggestions') } }, canShowTopContent && !isEmpty(version) && React.createElement(Suggestions, null)),
57
- !isCreatingCase && React.createElement(ClusterRecommendations, { className: "pf-v5-u-mt-lg" }))),
44
+ React.createElement("p", { className: "pf-v5-u-pt-md" },
45
+ React.createElement("span", { className: "pf-v5-u-font-family-heading pf-v5-u-pr-xs" }, "Product"),
46
+ " ",
47
+ product,
48
+ React.createElement("span", { className: "pf-v5-u-font-family-heading pf-v5-u-ml-xl pf-v5-u-pr-xs" }, "Version"),
49
+ ' ',
50
+ version),
51
+ React.createElement("div", { className: "pf-v5-u-font-family-heading" }, "Problem Description"),
52
+ React.createElement("p", { className: "pf-v5-u-mb-xl" }, summary)),
53
+ !isCreatingCase && (React.createElement(OpenShiftClusterId, { className: "push-bottom", "data-tracking-id": "troubleshoot-section-openshift-cluster-id" })),
54
+ React.createElement(LoadingDots, { show: topContent.isFetching }),
55
+ topContent.data.length === 0 && (React.createElement(Card, { id: "card", className: "card-support top-recommendations pf-v5-u-mb-md", isCompact: true },
56
+ React.createElement(CardHeader, { "aria-label": t('Popular solutions and docs'), className: "popular-solutions" },
57
+ React.createElement(CardTitle, { id: "card-title", className: "card-title" },
58
+ React.createElement(Trans, { i18nKey: 'i18nKeyPopularSolutions' }, "Popular solutions and docs"))),
59
+ React.createElement(CardBody, { "aria-label": t('No recommendations for this product'), className: "file-recs-no-recommendation pf-v5-u-mt-md" },
60
+ React.createElement(Trans, null, "No recommendations for this product")))),
61
+ React.createElement(ErrorBoundary, { errorMsgInfo: { message: t('There was an error loading suggestions') } }, canShowTopContent && !isEmpty(version) && React.createElement(Suggestions, null)),
62
+ !isCreatingCase && React.createElement(ClusterRecommendations, { className: "pf-v5-u-mt-lg" })),
58
63
  React.createElement("section", { className: "pf-v5-u-mt-lg" },
59
64
  isNotAnIdea && (React.createElement(InsightsResults, { isDisplayOnMain: true, "data-tracking-id": "troubleshoot-section-file-recs" })),
60
65
  React.createElement("div", { className: "pf-v5-u-mt-lg" }, canAddAttachments ? (React.createElement(FileDiag, null)) : (React.createElement(React.Fragment, null,
@@ -1 +1 @@
1
- {"version":3,"file":"WizardAside.d.ts","sourceRoot":"","sources":["../../../../src/components/wizardLayout/WizardAside.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAqB,MAAM,OAAO,CAAC;AAC1C,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAInD,OAAO,EAGH,eAAe,EAIlB,MAAM,iCAAiC,CAAC;AAQzC,UAAU,MAAM;IACZ,UAAU,EAAE,mBAAmB,CAAC,eAAe,CAAC,CAAC;IACjD,2BAA2B,EAAE,OAAO,CAAC;CACxC;AAGD,iBAAS,WAAW,CAAC,KAAK,EAAE,MAAM,qBA2CjC;kBA3CQ,WAAW;;;AA6CpB,eAAe,WAAW,CAAC"}
1
+ {"version":3,"file":"WizardAside.d.ts","sourceRoot":"","sources":["../../../../src/components/wizardLayout/WizardAside.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAqB,MAAM,OAAO,CAAC;AAC1C,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAInD,OAAO,EAGH,eAAe,EAKlB,MAAM,iCAAiC,CAAC;AASzC,UAAU,MAAM;IACZ,UAAU,EAAE,mBAAmB,CAAC,eAAe,CAAC,CAAC;IACjD,2BAA2B,EAAE,OAAO,CAAC;CACxC;AAGD,iBAAS,WAAW,CAAC,KAAK,EAAE,MAAM,qBA6CjC;kBA7CQ,WAAW;;;AA+CpB,eAAe,WAAW,CAAC"}
@@ -5,12 +5,13 @@ import isUndefined from 'lodash/isUndefined';
5
5
  import React, { useContext } from 'react';
6
6
  import { useCaseSelector } from '../../context/CaseContext';
7
7
  import { RouteContext } from '../../context/RouteContext';
8
- import { AppRouteSections, hideFileUploadSidebarWidgetSections, showSideBarClusterIdRuleWidgetSections, showSideBarEARuleWidgetSections, showSideBarFileRecommendationSections, } from '../../reducers/RouteConstNTypes';
8
+ import { AppRouteSections, hideFileUploadSidebarWidgetSections, showRecommendationTipsSections, showSideBarClusterIdRuleWidgetSections, showSideBarEARuleWidgetSections, showSideBarFileRecommendationSections, } from '../../reducers/RouteConstNTypes';
9
9
  import { FileDiag } from '../CaseInformation/FileDiag';
10
10
  import { AsideResults } from '../Recommendations/AsideResults';
11
11
  import ClusterRecommendations from '../Recommendations/ClusterRecommendations';
12
12
  import { EARuleWidget } from '../Recommendations/EARules/EARuleWidget';
13
13
  import InsightsResults from '../Recommendations/InsightsResults';
14
+ import { RecommendationInfoBox } from '../Recommendations/RecommendationInfoBox';
14
15
  import { SessionRestore } from '../SessionRestore';
15
16
  const defaultProps = {};
16
17
  function WizardAside(props) {
@@ -29,6 +30,7 @@ function WizardAside(props) {
29
30
  const canshowEARuleWidget = showSideBarEARuleWidgetSections.includes(activeSection);
30
31
  const canShowClusterIdReportWidget = showSideBarClusterIdRuleWidgetSections.includes(activeSection);
31
32
  const canShowFileRecommendationSectionsWidget = showSideBarFileRecommendationSections.includes(activeSection);
33
+ const canShowRecommendationTips = showRecommendationTipsSections.includes(activeSection);
32
34
  return (React.createElement("aside", null,
33
35
  React.createElement("section", { className: "grid-aside-content" },
34
36
  canshowEARuleWidget && React.createElement(EARuleWidget, null),
@@ -38,7 +40,8 @@ function WizardAside(props) {
38
40
  canShowFileRecommendationSectionsWidget && React.createElement(InsightsResults, { isDisplayOnMain: true }),
39
41
  React.createElement(ClusterRecommendations, { showClusterRecommendationsList: canShowClusterIdReportWidget }),
40
42
  canUseSessionManagement && !isCreatingCase && activeSection !== AppRouteSections.SUBMIT_CASE && (React.createElement(SessionRestore, { routeProps: props.routeProps })),
41
- canShowFileUploadWidget() && React.createElement(FileDiag, { className: "pf-u-mt-md" }))));
43
+ canShowFileUploadWidget() && React.createElement(FileDiag, { className: "pf-v5-u-mt-md" }),
44
+ canShowRecommendationTips && React.createElement(RecommendationInfoBox, null))));
42
45
  }
43
46
  WizardAside.defaultProps = defaultProps;
44
47
  export default WizardAside;
@@ -423,3 +423,8 @@ input[type='checkbox'] {
423
423
  .form-control {
424
424
  box-shadow: none !important;
425
425
  }
426
+
427
+ .recommendation-loading-dots {
428
+ position: absolute;
429
+ width: 100%;
430
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"useWizard.d.ts","sourceRoot":"","sources":["../../../src/hooks/useWizard.tsx"],"names":[],"mappings":"AA+BA,wBAAgB,SAAS,CAAC,UAAU,KAAA;iCAwNG,OAAO;EAwC7C"}
1
+ {"version":3,"file":"useWizard.d.ts","sourceRoot":"","sources":["../../../src/hooks/useWizard.tsx"],"names":[],"mappings":"AA+BA,wBAAgB,SAAS,CAAC,UAAU,KAAA;iCAyNG,OAAO;EAwC7C"}
@@ -55,11 +55,11 @@ export function useWizard(routeProps) {
55
55
  [AppRouteSections.SUMMARIZE]: Object.assign(Object.assign({}, defaultRouteConfiguration), { id: AppRouteSections.SUMMARIZE, name: t('Summarize'), component: (React.createElement(MainSection, { section: AppRouteSections.SUMMARIZE, title: t('What are you having an issue with?') },
56
56
  React.createElement(Suspense, { fallback: React.createElement(LoadingIndicator, { size: "sm" }) },
57
57
  alertMessage(),
58
- React.createElement(ProductSelector, { routeProps: routeProps })))), canJumpTo: isSectionValidFn(AppRouteSections.SUMMARIZE) || activeSection === AppRouteSections.SUMMARIZE }),
58
+ React.createElement(ProductSelector, { routeProps: routeProps })))), canJumpTo: isSectionValidFn(AppRouteSections.SUMMARIZE) || activeSection === AppRouteSections.SUMMARIZE, nextButtonLabel: t('See more options') }),
59
59
  [AppRouteSections.TROUBLESHOOT]: Object.assign(Object.assign({}, defaultRouteConfiguration), { id: AppRouteSections.TROUBLESHOOT, name: t('Troubleshoot'), component: (React.createElement(MainSection, { section: AppRouteSections.TROUBLESHOOT, title: t('Recommendations') },
60
60
  React.createElement(Suspense, { fallback: React.createElement(LoadingIndicator, { size: "sm" }) },
61
61
  alertMessage(),
62
- React.createElement(TroubleshootSection, null)))), canJumpTo: isSectionValidFn(AppRouteSections.TROUBLESHOOT) || activeSection === AppRouteSections.TROUBLESHOOT, nextButtonLabel: isCaseCreate ? t('Continue') : t('Get support') }),
62
+ React.createElement(TroubleshootSection, null)))), canJumpTo: isSectionValidFn(AppRouteSections.TROUBLESHOOT) || activeSection === AppRouteSections.TROUBLESHOOT, nextButtonLabel: isCaseCreate ? t('Continue') : t('Convert to Case') }),
63
63
  [AppRouteSections.DESCRIBE_MORE]: Object.assign(Object.assign({}, defaultRouteConfiguration), { id: AppRouteSections.DESCRIBE_MORE, name: t('Describe more'), component: (React.createElement(MainSection, { section: AppRouteSections.DESCRIBE_MORE, title: React.createElement(React.Fragment, null,
64
64
  t('Case information'),
65
65
  isEmpty(RouteUtils.seBasePath) && isSelectedAccounntSecureSupport && (React.createElement("span", { className: "secured-support" },
@@ -48,4 +48,5 @@ export declare const showSideBarClusterIdRuleWidgetSections: AppRouteSections[];
48
48
  export declare const showSideBarFileRecommendationSections: AppRouteSections[];
49
49
  export declare const hideSideBarClusterIdRuleToast: AppRouteSections[];
50
50
  export declare const hiddengetSupportSections: AppRouteSections[];
51
+ export declare const showRecommendationTipsSections: AppRouteSections[];
51
52
  //# sourceMappingURL=RouteConstNTypes.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"RouteConstNTypes.d.ts","sourceRoot":"","sources":["../../../src/reducers/RouteConstNTypes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AAE/D,MAAM,WAAW,iBAAiB;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IAInB,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,qBAAsB,SAAQ,UAAU;IACrD,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IAGjB,eAAe,EAAE,MAAM,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,WAAW,sBAAsB;IACnC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAC;CACjD;AAED,MAAM,WAAW,eAAe;CAAG;AACnC,oBAAY,gBAAgB;IACxB,WAAW,gBAAgB;IAC3B,SAAS,cAAc;IACvB,YAAY,iBAAiB;IAC7B,aAAa,kBAAkB;IAC/B,aAAa,kBAAkB;IAC/B,UAAU,eAAe;IACzB,MAAM,WAAW;IACjB,WAAW,gBAAgB;IAC3B,KAAK,UAAU;CAClB;AAKD,eAAO,MAAM,4BAA4B,EAAE,gBAAgB,EAI1D,CAAC;AAEF,eAAO,MAAM,gCAAgC,EAAE,gBAAgB,EAK9D,CAAC;AAEF,eAAO,MAAM,iCAAiC,oBAQ7C,CAAC;AAEF,eAAO,MAAM,gCAAgC,oBAQ5C,CAAC;AAEF,eAAO,MAAM,4BAA4B,oBAQxC,CAAC;AAGF,eAAO,MAAM,0BAA0B,oBAAiC,CAAC;AAEzE,eAAO,MAAM,mCAAmC,oBAI/C,CAAC;AAEF,eAAO,MAAM,kCAAkC,oBAO9C,CAAC;AAEF,eAAO,MAAM,+BAA+B,oBAM3C,CAAC;AAEF,eAAO,MAAM,sCAAsC,oBAAyD,CAAC;AAE7G,eAAO,MAAM,qCAAqC,oBAAgE,CAAC;AAEnH,eAAO,MAAM,6BAA6B,oBAAiC,CAAC;AAE5E,eAAO,MAAM,wBAAwB,EAAE,gBAAgB,EAKtD,CAAC"}
1
+ {"version":3,"file":"RouteConstNTypes.d.ts","sourceRoot":"","sources":["../../../src/reducers/RouteConstNTypes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AAE/D,MAAM,WAAW,iBAAiB;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IAInB,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,qBAAsB,SAAQ,UAAU;IACrD,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IAGjB,eAAe,EAAE,MAAM,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,WAAW,sBAAsB;IACnC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAC;CACjD;AAED,MAAM,WAAW,eAAe;CAAG;AACnC,oBAAY,gBAAgB;IACxB,WAAW,gBAAgB;IAC3B,SAAS,cAAc;IACvB,YAAY,iBAAiB;IAC7B,aAAa,kBAAkB;IAC/B,aAAa,kBAAkB;IAC/B,UAAU,eAAe;IACzB,MAAM,WAAW;IACjB,WAAW,gBAAgB;IAC3B,KAAK,UAAU;CAClB;AAKD,eAAO,MAAM,4BAA4B,EAAE,gBAAgB,EAI1D,CAAC;AAEF,eAAO,MAAM,gCAAgC,EAAE,gBAAgB,EAK9D,CAAC;AAEF,eAAO,MAAM,iCAAiC,oBAQ7C,CAAC;AAEF,eAAO,MAAM,gCAAgC,oBAQ5C,CAAC;AAEF,eAAO,MAAM,4BAA4B,oBAQxC,CAAC;AAGF,eAAO,MAAM,0BAA0B,oBAAiC,CAAC;AAEzE,eAAO,MAAM,mCAAmC,oBAA+D,CAAC;AAEhH,eAAO,MAAM,kCAAkC,oBAO9C,CAAC;AAEF,eAAO,MAAM,+BAA+B,oBAM3C,CAAC;AAEF,eAAO,MAAM,sCAAsC,oBAAyD,CAAC;AAE7G,eAAO,MAAM,qCAAqC,oBAAgE,CAAC;AAEnH,eAAO,MAAM,6BAA6B,oBAAiC,CAAC;AAE5E,eAAO,MAAM,wBAAwB,EAAE,gBAAgB,EAKtD,CAAC;AAEF,eAAO,MAAM,8BAA8B,oBAA+B,CAAC"}
@@ -53,11 +53,7 @@ export const openCaseRouteSectionSequence = [
53
53
  ];
54
54
  // end of wizard steps sequences
55
55
  export const sessionRestoreCardSections = [AppRouteSections.GET_SUPPORT];
56
- export const hideFileUploadSidebarWidgetSections = [
57
- AppRouteSections.GET_SUPPORT,
58
- AppRouteSections.TROUBLESHOOT,
59
- AppRouteSections.SUBMIT_CASE,
60
- ];
56
+ export const hideFileUploadSidebarWidgetSections = [AppRouteSections.GET_SUPPORT, AppRouteSections.SUBMIT_CASE];
61
57
  export const showSidebarRecommendationsSections = [
62
58
  AppRouteSections.TROUBLESHOOT,
63
59
  AppRouteSections.DESCRIBE_MORE,
@@ -82,3 +78,4 @@ export const hiddengetSupportSections = [
82
78
  AppRouteSections.MANAGEMENT,
83
79
  AppRouteSections.REVIEW,
84
80
  ];
81
+ export const showRecommendationTipsSections = [AppRouteSections.SUMMARIZE];
@@ -810,10 +810,12 @@ div.submit-case-header-container > p.kicker.kicker-sm.pf-v5-u-mb-sm > a.case-lin
810
810
  }
811
811
 
812
812
  .pf-v5-c-wizard__footer {
813
+ display: flex !important;
814
+ align-items: center !important;
813
815
  position: sticky;
814
816
  bottom: 0px;
815
817
  border-top: 1px solid #d9d9d9;
816
- padding: 1rem 1rem 0.5rem 2rem;
818
+ padding: 10px;
817
819
 
818
820
  /* Override buttons to match PF */
819
821
  .btn.btn-app,
@@ -823,6 +825,17 @@ div.submit-case-header-container > p.kicker.kicker-sm.pf-v5-u-mb-sm > a.case-lin
823
825
  }
824
826
  }
825
827
 
828
+ .pf-v5-c-wizard__footer::before {
829
+ content: '';
830
+ position: absolute;
831
+ top: -45px;
832
+ left: 0;
833
+ width: 100%;
834
+ bottom: 64px;
835
+ z-index: -1;
836
+ background: linear-gradient(to top, white, transparent);
837
+ }
838
+
826
839
  .pf-v5-c-wizard__main {
827
840
  padding: 0.8rem;
828
841
  }
@@ -855,11 +868,6 @@ li.pf-v5-c-wizard__nav-item button.pf-m-disabled::before {
855
868
  border: 2px dashed var(--pf-v5-global--palette--black-600);
856
869
  background-color: var(--pf-v5-global--palette--black-300);
857
870
  }
858
- .pf-v5-c-wizard__footer {
859
- display: flex !important;
860
- align-items: center !important;
861
- padding: 10px !important;
862
- }
863
871
 
864
872
  .main-nav-button {
865
873
  display: flex !important;
@@ -274,10 +274,6 @@
274
274
  list-style: none;
275
275
  }
276
276
 
277
- .selected-product-suggestion {
278
- display: inline;
279
- }
280
-
281
277
  .popular-solutions {
282
278
  background-color: #286869 !important;
283
279
  padding-top: 10px !important;
@@ -320,6 +316,10 @@
320
316
  font-size: 15px;
321
317
  }
322
318
 
319
+ .common-suggestions {
320
+ position: relative;
321
+ }
322
+
323
323
  .common-suggestions .PFElement h3 button[aria-expanded='false']::after {
324
324
  top: 20px !important;
325
325
  }
@@ -467,10 +467,6 @@ div.case-details-summary {
467
467
  margin-bottom: 1.5rem;
468
468
  }
469
469
 
470
- div.suggestions-result-section {
471
- margin-top: 2rem;
472
- }
473
-
474
470
  .all-product-selector-dropdown .pf-v5-c-select__menu-group-title:empty {
475
471
  display: none;
476
472
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rh-support/troubleshoot",
3
- "version": "2.2.84",
3
+ "version": "2.2.87",
4
4
  "publishConfig": {
5
5
  "access": "public",
6
6
  "registry": "https://registry.npmjs.org"
@@ -26,7 +26,7 @@
26
26
  "lib/**/*"
27
27
  ],
28
28
  "peerDependencies": {
29
- "@cee-eng/hydrajs": "4.17.3",
29
+ "@cee-eng/hydrajs": "4.17.7",
30
30
  "@cee-eng/ui-toolkit": "1.1.6",
31
31
  "@patternfly/patternfly": "5.1.0",
32
32
  "@patternfly/react-core": "5.1.1",
@@ -52,7 +52,7 @@
52
52
  "react-virtualized": "^9.22.5"
53
53
  },
54
54
  "dependencies": {
55
- "@cee-eng/hydrajs": "4.17.3",
55
+ "@cee-eng/hydrajs": "4.17.7",
56
56
  "@cee-eng/ui-toolkit": "1.1.6",
57
57
  "@patternfly/patternfly": "5.1.0",
58
58
  "@patternfly/react-core": "5.1.1",
@@ -61,11 +61,11 @@
61
61
  "@progress/kendo-licensing": "1.3.5",
62
62
  "@progress/kendo-react-pdf": "^5.16.0",
63
63
  "@redux-devtools/extension": "^3.3.0",
64
- "@rh-support/components": "2.1.45",
65
- "@rh-support/react-context": "2.1.50",
64
+ "@rh-support/components": "2.1.46",
65
+ "@rh-support/react-context": "2.1.51",
66
66
  "@rh-support/types": "2.0.3",
67
- "@rh-support/user-permissions": "2.1.32",
68
- "@rh-support/utils": "2.1.22",
67
+ "@rh-support/user-permissions": "2.1.33",
68
+ "@rh-support/utils": "2.1.23",
69
69
  "@types/react-redux": "^7.1.33",
70
70
  "@types/redux": "^3.6.0",
71
71
  "dompurify": "^2.2.6",
@@ -132,5 +132,5 @@
132
132
  "defaults and supports es6-module",
133
133
  "maintained node versions"
134
134
  ],
135
- "gitHead": "81feae5875e3bd90298890a7516b43851f6628ed"
135
+ "gitHead": "77a16a73843997304f58e22ff3fa0b436c2a7344"
136
136
  }