@rh-support/troubleshoot 2.4.5-beta.14 → 2.4.5-beta.16
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/lib/esm/components/CaseManagement/OpenShiftClusterId.js +2 -2
- package/lib/esm/components/Cve/CveModal.d.ts.map +1 -1
- package/lib/esm/components/Cve/CveModal.js +1 -1
- package/lib/esm/components/ProductSelector/AllProductsSelector.d.ts.map +1 -1
- package/lib/esm/components/Recommendations/Recommendations.d.ts.map +1 -1
- package/lib/esm/components/Recommendations/Recommendations.js +18 -21
- package/lib/esm/components/SubmitCase/SubmitCase.d.ts.map +1 -1
- package/lib/esm/components/SubmitCase/SubmitCase.js +1 -1
- package/lib/esm/components/Suggestions/Suggestions.d.ts.map +1 -1
- package/lib/esm/components/Suggestions/Suggestions.js +8 -3
- package/lib/esm/components/TroubleshootSection/TroubleshootSection.d.ts.map +1 -1
- package/lib/esm/components/TroubleshootSection/TroubleshootSection.js +7 -3
- package/lib/esm/components/wizardLayout/WizardAside.d.ts.map +1 -1
- package/lib/esm/components/wizardLayout/WizardAside.js +5 -7
- package/lib/esm/components/wizardLayout/WizardNavigation.js +1 -1
- package/lib/esm/hooks/useFetchCVEData.d.ts.map +1 -1
- package/lib/esm/hooks/useFetchCVEData.js +10 -12
- package/lib/esm/hooks/useWizard.d.ts.map +1 -1
- package/lib/esm/hooks/useWizard.js +10 -36
- package/lib/esm/reducers/RouteConstNTypes.d.ts +1 -0
- package/lib/esm/reducers/RouteConstNTypes.d.ts.map +1 -1
- package/lib/esm/reducers/RouteConstNTypes.js +9 -0
- package/lib/esm/scss/_main.scss +17 -1
- package/package.json +7 -6
|
@@ -86,16 +86,16 @@ export function OpenShiftClusterId(props) {
|
|
|
86
86
|
*/
|
|
87
87
|
useEffect(() => {
|
|
88
88
|
var _a;
|
|
89
|
-
if (isEmpty(product)
|
|
89
|
+
if (isEmpty(product))
|
|
90
90
|
return;
|
|
91
91
|
const isClusterVisible = () => __awaiter(this, void 0, void 0, function* () {
|
|
92
92
|
var _a, _b;
|
|
93
93
|
const hasCluster = yield isClusterIdEnabledForProduct(product, (_a = allProducts.data) === null || _a === void 0 ? void 0 : _a.productsResult);
|
|
94
|
+
setShowClusterId(hasCluster);
|
|
94
95
|
if (!hasCluster) {
|
|
95
96
|
resetClusterData();
|
|
96
97
|
return;
|
|
97
98
|
}
|
|
98
|
-
setShowClusterId(hasCluster);
|
|
99
99
|
// if clusterId is already populated it means it comes from session and
|
|
100
100
|
// we ignore url clusterId otherwise we get cluster id from url and validate it
|
|
101
101
|
const clusterIdFromUrl = queryParams === null || queryParams === void 0 ? void 0 : queryParams.clusterId;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CveModal.d.ts","sourceRoot":"","sources":["../../../../src/components/Cve/CveModal.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAqB,MAAM,OAAO,CAAC;AAU1C,eAAO,MAAM,QAAQ,
|
|
1
|
+
{"version":3,"file":"CveModal.d.ts","sourceRoot":"","sources":["../../../../src/components/Cve/CveModal.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAqB,MAAM,OAAO,CAAC;AAU1C,eAAO,MAAM,QAAQ,yBAoEpB,CAAC"}
|
|
@@ -34,7 +34,7 @@ export const CveModal = () => {
|
|
|
34
34
|
};
|
|
35
35
|
return (React.createElement(Modal, { variant: ModalVariant.medium, title: React.createElement(Flex, { alignItems: { default: 'alignItemsCenter' } },
|
|
36
36
|
React.createElement(FlexItem, { spacer: { default: 'spacerSm' } }, cveWorkflowRecommendation.length > 1 ? (React.createElement(Trans, null, "Handpicked for these CVEs")) : (React.createElement(Trans, null, "Handpicked for this CVE"))),
|
|
37
|
-
React.createElement(Badge, { isRead: true }, size(cveWorkflowRecommendation))), isOpen: isCveModalOpened && activeSection === AppRouteSections.SUMMARIZE, onClose: handleModalToggle, titleIconVariant: "info", disableFocusTrap: true, onEscapePress: handleEscapePress, actions: [
|
|
37
|
+
React.createElement(Badge, { isRead: true }, size(cveWorkflowRecommendation))), isOpen: isCveModalOpened && activeSection === AppRouteSections.SUMMARIZE, onClose: handleModalToggle, titleIconVariant: "info", disableFocusTrap: true, className: "cve-modal-fade-in-effect", onEscapePress: handleEscapePress, actions: [
|
|
38
38
|
React.createElement(Button, { key: "cve-checker-link", "data-tracking-id": "cve-checker-link", target: "_blank", variant: "secondary", isInline: true, component: "a", href: generateCveCheckerUrl() },
|
|
39
39
|
React.createElement(Trans, null, "Red Hat CVE Checker"),
|
|
40
40
|
" ",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AllProductsSelector.d.ts","sourceRoot":"","sources":["../../../../src/components/ProductSelector/AllProductsSelector.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAsD,MAAM,OAAO,CAAC;AAE3E,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAMvD,OAAO,EAAuC,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAMvG,UAAU,MAAM;IACZ,qBAAqB,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IAChD,UAAU,EAAE,mBAAmB,CAAC,eAAe,CAAC,CAAC;IACjD,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAClC;AAQD;;;;;;;GAOG;AACH,QAAA,MAAM,mBAAmB,
|
|
1
|
+
{"version":3,"file":"AllProductsSelector.d.ts","sourceRoot":"","sources":["../../../../src/components/ProductSelector/AllProductsSelector.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAsD,MAAM,OAAO,CAAC;AAE3E,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAMvD,OAAO,EAAuC,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAMvG,UAAU,MAAM;IACZ,qBAAqB,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IAChD,UAAU,EAAE,mBAAmB,CAAC,eAAe,CAAC,CAAC;IACjD,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAClC;AAQD;;;;;;;GAOG;AACH,QAAA,MAAM,mBAAmB,4EAuKvB,CAAC;AAGH,OAAO,EAAE,mBAAmB,EAAE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Recommendations.d.ts","sourceRoot":"","sources":["../../../../src/components/Recommendations/Recommendations.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Recommendations.d.ts","sourceRoot":"","sources":["../../../../src/components/Recommendations/Recommendations.tsx"],"names":[],"mappings":"AAqBA,OAAO,KAAkD,MAAM,OAAO,CAAC;AAEvE,OAAO,EAAE,mBAAmB,EAAa,MAAM,kBAAkB,CAAC;AAelE,OAAO,EAAoB,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAYpF,UAAU,MAAM;IACZ,UAAU,EAAE,mBAAmB,CAAC,eAAe,CAAC,CAAC;IACjD,uBAAuB,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC;IACzE,qCAAqC,CAAC,EAAE,OAAO,CAAC;IAChD,aAAa,EAAE,GAAG,CAAC;CACtB;AAED,MAAM,CAAC,OAAO,UAAU,eAAe,CAAC,KAAK,EAAE,MAAM,qBA4WpD"}
|
|
@@ -3,9 +3,9 @@ import { Label, Pagination, PaginationVariant, Popover, Spinner } from '@pattern
|
|
|
3
3
|
import InfoCircleIcon from '@patternfly/react-icons/dist/js/icons/info-circle-icon';
|
|
4
4
|
import StarIcon from '@patternfly/react-icons/dist/js/icons/star-icon';
|
|
5
5
|
import { LoadingDots, useDebounce, usePrevious } from '@rh-support/components';
|
|
6
|
-
import {
|
|
7
|
-
import { computeRecommendationAbstract, computeRecommendationTitle, dtmTrackEventCaseStartStopped, formatDate, } from '@rh-support/utils';
|
|
6
|
+
import { computeRecommendationAbstract, computeRecommendationTitle, dtmTrackEventCaseStartStopped, formatDate, getRecommendationTitle, } from '@rh-support/utils';
|
|
8
7
|
import differenceBy from 'lodash/differenceBy';
|
|
8
|
+
import find from 'lodash/find';
|
|
9
9
|
import isEmpty from 'lodash/isEmpty';
|
|
10
10
|
import isEqual from 'lodash/isEqual';
|
|
11
11
|
import map from 'lodash/map';
|
|
@@ -18,7 +18,7 @@ import { RouteContext } from '../../context/RouteContext';
|
|
|
18
18
|
import { SessionRestoreDispatchContext, SessionRestoreStateContext } from '../../context/SessionRestoreContext';
|
|
19
19
|
import { getRecommendationObject } from '../../reducers/CaseHelpers';
|
|
20
20
|
import { setCaseRecommendations } from '../../reducers/CaseReducer';
|
|
21
|
-
import {
|
|
21
|
+
import { fetchWatsonXRecommendations, RecommendationsConstants, setCurrentPage, setVisibleDocs, } from '../../reducers/RecommendationsReducer';
|
|
22
22
|
import { AppRouteSections } from '../../reducers/RouteConstNTypes';
|
|
23
23
|
import { createOrUpdateSessionResources, getSessResFromRec, getSessResFromRecs, } from '../../reducers/SessionRestoreReducer';
|
|
24
24
|
import RouteUtils from '../../utils/routeUtils';
|
|
@@ -27,7 +27,7 @@ import { WatsonxAiIcon } from './WatsonxAiIcon';
|
|
|
27
27
|
const { SessionResourceSource, SessionResourceVisibility } = pcm.preCase.session;
|
|
28
28
|
export default function Recommendations(props) {
|
|
29
29
|
var _a, _b, _c;
|
|
30
|
-
const { product, version, environment, summary, caseResourceLinks, issue, ABTestVarioation } = useCaseSelector((state) => ({
|
|
30
|
+
const { product, version, environment, summary, caseResourceLinks, issue, ABTestVarioation, cveWorkflowRecommendation, } = useCaseSelector((state) => ({
|
|
31
31
|
product: state.caseDetails.product,
|
|
32
32
|
version: state.caseDetails.version,
|
|
33
33
|
environment: state.caseDetails.environment,
|
|
@@ -35,12 +35,10 @@ export default function Recommendations(props) {
|
|
|
35
35
|
issue: state.caseDetails.issue,
|
|
36
36
|
caseResourceLinks: state.caseDetails.caseResourceLinks,
|
|
37
37
|
ABTestVarioation: state.ABTestVarioation,
|
|
38
|
+
cveWorkflowRecommendation: state.cveWorkflowRecommendation,
|
|
38
39
|
}), isEqual);
|
|
39
40
|
const caseDispatch = useCaseDispatch();
|
|
40
|
-
// Use Case Number
|
|
41
41
|
const { caseNumber } = useParams();
|
|
42
|
-
const { globalMetadataState: { loggedInUsersAccount }, } = useGlobalStateContext();
|
|
43
|
-
const isSecureSupportAccount = loggedInUsersAccount.data.secureSupport;
|
|
44
42
|
const { routeState: { activeSection }, } = useContext(RouteContext);
|
|
45
43
|
const { sessionRestore: { activeSessionId, sessionResourceTracking }, } = useContext(SessionRestoreStateContext);
|
|
46
44
|
const sessionRestoreDispatch = useContext(SessionRestoreDispatchContext);
|
|
@@ -95,9 +93,7 @@ export default function Recommendations(props) {
|
|
|
95
93
|
let controller = new AbortController();
|
|
96
94
|
abortControllerRef.current = controller;
|
|
97
95
|
if (!isEmpty(issue) || !isEmpty(summary)) {
|
|
98
|
-
|
|
99
|
-
? fetchWatsonXRecommendations(recommendationDispatch, payload, MAXROW, recPageSize, 0, true, queryFilters, controller.signal)
|
|
100
|
-
: fetchRecommendations(recommendationDispatch, payload, MAXROW, recPageSize, 0, true, caseNumber, isSecureSupportAccount, queryFilters, controller.signal);
|
|
96
|
+
fetchWatsonXRecommendations(recommendationDispatch, payload, MAXROW, recPageSize, 0, true, queryFilters, controller.signal);
|
|
101
97
|
recommendationDispatch({
|
|
102
98
|
type: RecommendationsConstants.userViewedDocs,
|
|
103
99
|
payload: { userViewedDocs: true },
|
|
@@ -168,16 +164,19 @@ export default function Recommendations(props) {
|
|
|
168
164
|
function getRankPercentage(decimal) {
|
|
169
165
|
return Math.round(decimal * 100);
|
|
170
166
|
}
|
|
171
|
-
const computeLabel = (
|
|
172
|
-
const
|
|
167
|
+
const computeLabel = (recommendationDoc) => {
|
|
168
|
+
const { rerank_score } = recommendationDoc;
|
|
169
|
+
const title = getRecommendationTitle(recommendationDoc);
|
|
170
|
+
const isCveExist = !isEmpty(find(cveWorkflowRecommendation, (cveW) => (cveW === null || cveW === void 0 ? void 0 : cveW.title) === title));
|
|
171
|
+
const percentage = getRankPercentage(rerank_score);
|
|
173
172
|
return (React.createElement(React.Fragment, null,
|
|
174
|
-
percentage
|
|
175
|
-
React.createElement(Label, { className: "match-label", color: "purple" },
|
|
173
|
+
percentage >= 80 && (React.createElement(Label, { color: "green", className: "match-label", icon: React.createElement(StarIcon, null) }, isCveExist ? 'Exact match' : 'Best match')),
|
|
174
|
+
!isCveExist && (React.createElement(Label, { className: "match-label", color: "purple" },
|
|
176
175
|
percentage,
|
|
177
|
-
"% Match")));
|
|
176
|
+
"% Match"))));
|
|
178
177
|
};
|
|
179
178
|
return (React.createElement(React.Fragment, null,
|
|
180
|
-
isBTestvariation && (React.createElement(LoadingDots, { className: "recommendation-loading-dots", show: recommendationState.isLoadingRecommendations && !isEmpty(summary)
|
|
179
|
+
isBTestvariation && (React.createElement(LoadingDots, { className: "recommendation-loading-dots", show: recommendationState.isLoadingRecommendations && !isEmpty(summary) })),
|
|
181
180
|
React.createElement("div", { className: "recommendation-list pf-v5-u-pt-md", ref: props.resultsRowRef },
|
|
182
181
|
isATestvariation
|
|
183
182
|
? (recommendationState.visibleDocs.length !== 0 ||
|
|
@@ -198,14 +197,13 @@ export default function Recommendations(props) {
|
|
|
198
197
|
: recommendationState.visibleDocs.length !== 0 && (React.createElement(Label, { color: "purple", className: "pf-v5-u-mb-md" },
|
|
199
198
|
React.createElement(WatsonxAiIcon, { fillColor: "#6753ac", className: "pf-v5-u-mr-xs" }),
|
|
200
199
|
React.createElement(Trans, null, "Live search results powered by OpenShift AI"))),
|
|
201
|
-
isATestvariation && recommendationState.isLoadingRecommendations ? (
|
|
202
|
-
React.createElement(RecommendationsLoader, null)) : (React.createElement("ul", { className: "list-flat" }, map(recommendationState.visibleDocs, (doc, i) => {
|
|
200
|
+
isATestvariation && recommendationState.isLoadingRecommendations ? (React.createElement(RecommendationsLoader, null)) : (React.createElement("ul", { className: "list-flat" }, map(recommendationState.visibleDocs, (doc, i) => {
|
|
203
201
|
var _a, _b;
|
|
204
202
|
return (React.createElement("li", { className: "result", key: doc.id },
|
|
205
203
|
React.createElement("header", { className: "result-header" },
|
|
206
204
|
React.createElement("a", { href: `${doc.view_uri}?${RouteUtils.getSEResourceQueryParams(activeSessionId, (_b = (_a = sessionResourceTracking[SessionResourceSource.RECOMMENDATIONS]) === null || _a === void 0 ? void 0 : _a.resourceOriginId) !== null && _b !== void 0 ? _b : '', SessionResourceSource.RECOMMENDATIONS)}`, className: "se-recommended ts-result", "data-tracking-id": `se-recommended-main-recommendations-${i}`, rel: "noopener noreferrer", target: "_blank", onClick: onResourceClick(doc, i), dangerouslySetInnerHTML: computeRecommendationTitle(doc) }),
|
|
207
205
|
React.createElement("div", { className: "header-meta" },
|
|
208
|
-
isATestvariation && doc.rerank_score && computeLabel(doc
|
|
206
|
+
isATestvariation && doc.rerank_score && computeLabel(doc),
|
|
209
207
|
doc.kcsState === 'verified' && (React.createElement(React.Fragment, null,
|
|
210
208
|
React.createElement("span", { className: "status-verified pf-v5-u-font-weight-bold pf-v5-u-success-color-100" }, "verified"),
|
|
211
209
|
React.createElement("span", { className: "list-separator" }, "\u2013"))),
|
|
@@ -216,11 +214,10 @@ export default function Recommendations(props) {
|
|
|
216
214
|
}))),
|
|
217
215
|
recommendationState.numFound !== 0 && recommendationState.numFound > DEFAULTPAGESIZE && (React.createElement("div", { className: "pagination-footer" },
|
|
218
216
|
React.createElement(Pagination, { className: "push-top", itemCount: (_c = (_b = recommendationState.allDocs) === null || _b === void 0 ? void 0 : _b.length) !== null && _c !== void 0 ? _c : 0, perPage: recPageSize, page: recommendationState.currentPage, variant: PaginationVariant.bottom, onSetPage: pageChanged, dropDirection: "up", onPerPageSelect: onPageSizeChanged })))),
|
|
219
|
-
recommendationState.
|
|
217
|
+
recommendationState.numFound === 0 &&
|
|
220
218
|
!recommendationState.isLoadingRecommendations &&
|
|
221
219
|
!recommendationState.isLoadingRecommendationsError &&
|
|
222
220
|
!isEmpty(issue) &&
|
|
223
|
-
!isEmpty(summary) &&
|
|
224
221
|
isEmpty(prevMainRecommendations) && (React.createElement("p", null,
|
|
225
222
|
React.createElement(Trans, null, "We couldn't find any matches. Revise your search for better results.")))));
|
|
226
223
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SubmitCase.d.ts","sourceRoot":"","sources":["../../../../src/components/SubmitCase/SubmitCase.tsx"],"names":[],"mappings":"AAsBA,OAAO,KAA0C,MAAM,OAAO,CAAC;AAE/D,OAAO,EAAQ,mBAAmB,EAAe,MAAM,kBAAkB,CAAC;AAQ1E,OAAO,EAAqB,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAWrF,UAAU,MAAM;IACZ,UAAU,EAAE,mBAAmB,CAAC,eAAe,CAAC,CAAC;CACpD;AAED,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,KAAK,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"SubmitCase.d.ts","sourceRoot":"","sources":["../../../../src/components/SubmitCase/SubmitCase.tsx"],"names":[],"mappings":"AAsBA,OAAO,KAA0C,MAAM,OAAO,CAAC;AAE/D,OAAO,EAAQ,mBAAmB,EAAe,MAAM,kBAAkB,CAAC;AAQ1E,OAAO,EAAqB,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAWrF,UAAU,MAAM;IACZ,UAAU,EAAE,mBAAmB,CAAC,eAAe,CAAC,CAAC;CACpD;AAED,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,KAAK,EAAE,MAAM,qBAwZ/C"}
|
|
@@ -233,5 +233,5 @@ export default function SubmitCase(props) {
|
|
|
233
233
|
React.createElement(InsightsResults, { isDisplayOnMain: true })),
|
|
234
234
|
React.createElement(ClusterRecommendations, { showClusterRecommendationsModal: false }))),
|
|
235
235
|
React.createElement("div", { className: "pf-v5-u-mt-lg" }, isIdea ? (React.createElement(AsideResults, { routeProps: props.routeProps })) : (!isEmpty(topContent.data) &&
|
|
236
|
-
isNotAnIdea &&
|
|
236
|
+
isNotAnIdea && React.createElement(Suggestions, { showTitleDescription: true, showMax: 6 }))))))));
|
|
237
237
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Suggestions.d.ts","sourceRoot":"","sources":["../../../../src/components/Suggestions/Suggestions.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Suggestions.d.ts","sourceRoot":"","sources":["../../../../src/components/Suggestions/Suggestions.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAuC,MAAM,OAAO,CAAC;AAU5D,UAAU,MAAM;IACZ,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,KAAK,EAAE,MAAM,qBAqHhD"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import { pcm } from '@cee-eng/hydrajs';
|
|
2
|
+
import { Tooltip } from '@patternfly/react-core';
|
|
3
|
+
import InfoCircleIcon from '@patternfly/react-icons/dist/esm/icons/info-circle-icon';
|
|
2
4
|
import { TopContentSearch } from '@rh-support/components';
|
|
3
5
|
import { FeatureFlagKey, useIsFeatureAvailable } from '@rh-support/react-context';
|
|
4
6
|
import isEqual from 'lodash/isEqual';
|
|
@@ -44,10 +46,13 @@ export default function Suggestions(props) {
|
|
|
44
46
|
};
|
|
45
47
|
return (React.createElement("div", { className: "top-content-suggestion-accordion" },
|
|
46
48
|
showTitleDescription && (React.createElement("div", { className: "card card-support" },
|
|
47
|
-
!isTCSearchEnabled && (React.createElement(
|
|
48
|
-
|
|
49
|
+
!isTCSearchEnabled && (React.createElement("h3", { className: "card-heading popular-solutions green-card-heading" },
|
|
50
|
+
props.title
|
|
49
51
|
? props.title
|
|
50
|
-
: t('i18nKeyPopularSolutions', 'Red Hat
|
|
52
|
+
: t('i18nKeyPopularSolutions', 'Red Hat hand picked support articles'),
|
|
53
|
+
React.createElement(Tooltip, { content: React.createElement("div", null,
|
|
54
|
+
React.createElement(Trans, null, "Support articles are matched to the product and version details you selected, not the problem details you entered.")) },
|
|
55
|
+
React.createElement(InfoCircleIcon, { className: "pf-v5-u-ml-sm", "aria-label": t('More info about how support articles are matched') })))),
|
|
51
56
|
isTCSearchEnabled && (React.createElement("div", { className: "card-body" },
|
|
52
57
|
React.createElement(TopContentSearch, { topContentData: topContent.data, topContentResultsWrapperRef: accordionRef, onSearch: onSearchChange, dataTrackingId: "top-content-filter-troubleshoot", enableEventTracking: true }))))),
|
|
53
58
|
React.createElement("pfe-accordion", { ref: accordionRef }, map(filteredTC.slice(0, maxTC), (sug, index) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TroubleshootSection.d.ts","sourceRoot":"","sources":["../../../../src/components/TroubleshootSection/TroubleshootSection.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"TroubleshootSection.d.ts","sourceRoot":"","sources":["../../../../src/components/TroubleshootSection/TroubleshootSection.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAqB,MAAM,OAAO,CAAC;AAU1C,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,qBAyFzC;kBAzFQ,mBAAmB;;;AA4F5B,eAAe,mBAAmB,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { Card, CardBody, CardHeader, CardTitle } from '@patternfly/react-core';
|
|
1
|
+
import { Card, CardBody, CardHeader, CardTitle, Tooltip } from '@patternfly/react-core';
|
|
2
|
+
import InfoCircleIcon from '@patternfly/react-icons/dist/js/icons/info-circle-icon';
|
|
2
3
|
import { ErrorBoundary, LoadingDots } from '@rh-support/components';
|
|
3
4
|
import { PreviousCaseTypes } from '@rh-support/utils';
|
|
4
5
|
import isEmpty from 'lodash/isEmpty';
|
|
@@ -46,9 +47,12 @@ function TroubleshootSection(props) {
|
|
|
46
47
|
!isCreatingCase && (React.createElement(OpenShiftClusterId, { className: "push-bottom", "data-tracking-id": "troubleshoot-section-openshift-cluster-id" })),
|
|
47
48
|
React.createElement(LoadingDots, { show: topContent.isFetching }),
|
|
48
49
|
topContent.data.length === 0 && (React.createElement(Card, { id: "card", className: "card-support top-recommendations pf-v5-u-mb-md", isCompact: true },
|
|
49
|
-
React.createElement(CardHeader, { "aria-label": t('Red Hat
|
|
50
|
+
React.createElement(CardHeader, { "aria-label": t('Red Hat hand picked support articles'), className: "popular-solutions" },
|
|
50
51
|
React.createElement(CardTitle, { id: "card-title", className: "card-title" },
|
|
51
|
-
React.createElement(Trans, { i18nKey: 'i18nKeyPopularSolutions' }, "Red Hat
|
|
52
|
+
React.createElement(Trans, { i18nKey: 'i18nKeyPopularSolutions' }, "Red Hat hand picked support articles"),
|
|
53
|
+
React.createElement(Tooltip, { content: React.createElement("div", null,
|
|
54
|
+
React.createElement(Trans, null, "Support articles are matched to the product and version details you selected, not the problem details you entered.")) },
|
|
55
|
+
React.createElement(InfoCircleIcon, { className: "pf-v5-u-ml-sm", "aria-label": "More info about how support articles are matched" })))),
|
|
52
56
|
React.createElement(CardBody, { "aria-label": t('No recommendations for this product'), className: "file-recs-no-recommendation pf-v5-u-mt-md" },
|
|
53
57
|
React.createElement(Trans, null, "No recommendations for this product")))),
|
|
54
58
|
React.createElement(ErrorBoundary, { errorMsgInfo: { message: t('There was an error loading suggestions') } }, canShowTopContent && !isEmpty(version) && React.createElement(Suggestions, 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,kBAAkB,CAAC;AAIvD,OAAO,EAGH,eAAe,
|
|
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,kBAAkB,CAAC;AAIvD,OAAO,EAGH,eAAe,EAKlB,MAAM,iCAAiC,CAAC;AAQzC,UAAU,MAAM;IACZ,UAAU,EAAE,mBAAmB,CAAC,eAAe,CAAC,CAAC;IACjD,2BAA2B,EAAE,OAAO,CAAC;CACxC;AAED,iBAAS,WAAW,CAAC,KAAK,EAAE,MAAM,qBAsDjC;kBAtDQ,WAAW;;;AAwDpB,eAAe,WAAW,CAAC"}
|
|
@@ -5,7 +5,7 @@ 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, showSideBarClusterIdRuleWidgetSections, showSideBarEARuleWidgetSections, showSideBarEARuleWidgetSectionsExperienceA, showSideBarFileRecommendationSections, } from '../../reducers/RouteConstNTypes';
|
|
9
9
|
import { FileDiag } from '../CaseInformation/FileDiag';
|
|
10
10
|
import { CveSidebar } from '../Cve/CveSidebar';
|
|
11
11
|
import { AsideResults } from '../Recommendations/AsideResults';
|
|
@@ -23,18 +23,16 @@ function WizardAside(props) {
|
|
|
23
23
|
isCveModalOpened: state.isCveModalOpened,
|
|
24
24
|
ABTestVarioation: state.ABTestVarioation,
|
|
25
25
|
}), isEqual);
|
|
26
|
-
const
|
|
26
|
+
const isATestvariation = ABTestVarioation === 'A';
|
|
27
27
|
const isIdea = caseType === PreviousCaseTypes.FEATURE_ENHANCEMENT;
|
|
28
28
|
const canUseSessionManagement = ability.can(resourceActions.CREATE, resources.SESSION_TRACKING);
|
|
29
29
|
const canShowFileUploadWidget = () => canAddAttachments &&
|
|
30
30
|
!props.isAttachmentUploadModalOpen &&
|
|
31
31
|
!isUndefined(activeSection) &&
|
|
32
32
|
!hideFileUploadSidebarWidgetSections.includes(activeSection);
|
|
33
|
-
const canShowEARuleWidget =
|
|
34
|
-
?
|
|
35
|
-
: showSideBarEARuleWidgetSections.includes(activeSection)
|
|
36
|
-
activeSection === AppRouteSections.SUMMARIZE ||
|
|
37
|
-
activeSection === AppRouteSections.REVIEW;
|
|
33
|
+
const canShowEARuleWidget = isATestvariation
|
|
34
|
+
? showSideBarEARuleWidgetSectionsExperienceA.includes(activeSection)
|
|
35
|
+
: showSideBarEARuleWidgetSections.includes(activeSection);
|
|
38
36
|
const canShowClusterIdReportWidget = showSideBarClusterIdRuleWidgetSections.includes(activeSection);
|
|
39
37
|
const canShowFileRecommendationSectionsWidget = showSideBarFileRecommendationSections.includes(activeSection);
|
|
40
38
|
return (React.createElement("aside", null,
|
|
@@ -187,7 +187,7 @@ function WizardNavigation(props) {
|
|
|
187
187
|
return value;
|
|
188
188
|
}
|
|
189
189
|
else if (isATestvariation && !isCaseCreate) {
|
|
190
|
-
let value = (!props.userSeenRecommendations && props.activeStep.id === AppRouteSections.
|
|
190
|
+
let value = (!props.userSeenRecommendations && props.activeStep.id === AppRouteSections.SUMMARIZE) ||
|
|
191
191
|
(!isEntitledProductLocal && props.activeStep.nextButtonLabel === 'Get support') ||
|
|
192
192
|
(!isSectionValidFn(props.activeStep.id) && isNextBtnClickedToShowValidationError) ||
|
|
193
193
|
noValidEntitlement;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useFetchCVEData.d.ts","sourceRoot":"","sources":["../../../src/hooks/useFetchCVEData.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useFetchCVEData.d.ts","sourceRoot":"","sources":["../../../src/hooks/useFetchCVEData.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,0BAA0B,EAAkB,MAAM,iCAAiC,CAAC;AAI7F,wBAAgB,eAAe;;EAwI9B"}
|
|
@@ -8,8 +8,9 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
8
8
|
});
|
|
9
9
|
};
|
|
10
10
|
import { search } from '@cee-eng/hydrajs';
|
|
11
|
-
import { useLRUCache } from '@rh-support/components';
|
|
11
|
+
import { useDebounce, useLRUCache } from '@rh-support/components';
|
|
12
12
|
import filter from 'lodash/filter';
|
|
13
|
+
import includes from 'lodash/includes';
|
|
13
14
|
import isArray from 'lodash/isArray';
|
|
14
15
|
import isEmpty from 'lodash/isEmpty';
|
|
15
16
|
import isEqual from 'lodash/isEqual';
|
|
@@ -17,7 +18,7 @@ import map from 'lodash/map';
|
|
|
17
18
|
import slice from 'lodash/slice';
|
|
18
19
|
import sortBy from 'lodash/sortBy';
|
|
19
20
|
import uniqBy from 'lodash/uniqBy';
|
|
20
|
-
import {
|
|
21
|
+
import { useState } from 'react';
|
|
21
22
|
import { useCaseDispatch, useCaseSelector } from '../context/CaseContext';
|
|
22
23
|
import { setCaseState } from '../reducers/CaseReducer';
|
|
23
24
|
import { findCVEsInString } from '../utils/caseUtils';
|
|
@@ -43,13 +44,8 @@ export function useFetchCVEData() {
|
|
|
43
44
|
const filteredArray = releaseInfo.filter((obj) => {
|
|
44
45
|
var _a, _b;
|
|
45
46
|
const product = (_b = (_a = obj === null || obj === void 0 ? void 0 : obj.product) === null || _a === void 0 ? void 0 : _a.toLowerCase()) === null || _b === void 0 ? void 0 : _b.trim();
|
|
46
|
-
const
|
|
47
|
-
|
|
48
|
-
product === `${selectedProductLower} ${selectedVersionLower}` ||
|
|
49
|
-
product === `red hat ${selectedProductLower} ${selectedVersionLower}` ||
|
|
50
|
-
(majorVersion && product === `${selectedProductLower} ${majorVersion}`) ||
|
|
51
|
-
(majorVersion && product === `red hat ${selectedProductLower} ${majorVersion}`);
|
|
52
|
-
return productVersionMatchConditions && (obj === null || obj === void 0 ? void 0 : obj.state) === 'Fixed';
|
|
47
|
+
const productWithVersion = `${selectedProductLower} ${majorVersion}`;
|
|
48
|
+
return includes(product, productWithVersion) && (obj === null || obj === void 0 ? void 0 : obj.state) === 'Fixed';
|
|
53
49
|
});
|
|
54
50
|
const uniqFilteredArray = uniqBy(filteredArray, (fa) => { var _a; return (_a = fa === null || fa === void 0 ? void 0 : fa.advisory) === null || _a === void 0 ? void 0 : _a.name; });
|
|
55
51
|
const errataData = map(uniqFilteredArray, (i) => {
|
|
@@ -106,7 +102,10 @@ export function useFetchCVEData() {
|
|
|
106
102
|
return [];
|
|
107
103
|
}
|
|
108
104
|
});
|
|
109
|
-
|
|
105
|
+
useDebounce(() => {
|
|
106
|
+
if (isEmpty(summary) || isEmpty(description)) {
|
|
107
|
+
return;
|
|
108
|
+
}
|
|
110
109
|
const CVETextValue = `${summary || ''} ${description || ''}`;
|
|
111
110
|
const cveIds = findCVEsInString(CVETextValue);
|
|
112
111
|
fetchCVEData(cveIds)
|
|
@@ -134,7 +133,6 @@ export function useFetchCVEData() {
|
|
|
134
133
|
.catch((error) => {
|
|
135
134
|
console.error('Error processing CVE data:', error);
|
|
136
135
|
});
|
|
137
|
-
|
|
138
|
-
}, [summary, description, product, version]);
|
|
136
|
+
}, [summary, description, product, version], 1000);
|
|
139
137
|
return { cveRecommendation };
|
|
140
138
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useWizard.d.ts","sourceRoot":"","sources":["../../../src/hooks/useWizard.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useWizard.d.ts","sourceRoot":"","sources":["../../../src/hooks/useWizard.tsx"],"names":[],"mappings":"AA+BA,UAAU,MAAM;IACZ,yBAAyB,CAAC,EAAE,GAAG,CAAC;IAChC,4BAA4B,EAAE,OAAO,CAAC;IACtC,6BAA6B,EAAE,OAAO,CAAC;IACvC,qCAAqC,EAAE,OAAO,CAAC;IAC/C,aAAa,EAAE,GAAG,CAAC;IACnB,iBAAiB,EAAE,OAAO,CAAC;CAC9B;AAED,wBAAgB,SAAS,CAAC,UAAU,KAAA,EAAE,KAAK,CAAC,EAAE,MAAM;iCAwQb,OAAO;EAwC7C"}
|
|
@@ -1,13 +1,9 @@
|
|
|
1
1
|
import { AlertMessage, AlertType, LoadingIndicator } from '@rh-support/components';
|
|
2
|
-
import { ability } from '@rh-support/user-permissions/lib/esm/AuthFramework';
|
|
3
|
-
import { CaseListFields, resourceActions, resources } from '@rh-support/user-permissions/lib/esm/enums';
|
|
4
2
|
import { PreviousCaseTypes } from '@rh-support/utils';
|
|
5
3
|
import isEmpty from 'lodash/isEmpty';
|
|
6
4
|
import isEqual from 'lodash/isEqual';
|
|
7
5
|
import React, { Suspense, useContext } from 'react';
|
|
8
6
|
import { Trans, useTranslation } from 'react-i18next';
|
|
9
|
-
import { AccountSelector } from '../components/AccountInfo/AccountSelector';
|
|
10
|
-
import { OwnerSelector } from '../components/AccountInfo/OwnerSelector';
|
|
11
7
|
import CaseInformation from '../components/CaseInformation/CaseInformation';
|
|
12
8
|
import CaseManagement from '../components/CaseManagement/CaseManagement';
|
|
13
9
|
import IdeaInformation from '../components/IdeaInformation/IdeaInformation';
|
|
@@ -56,59 +52,37 @@ export function useWizard(routeProps, props) {
|
|
|
56
52
|
let summarizeNextButtonLabelLogic = () => {
|
|
57
53
|
return props.userScrolledLabel;
|
|
58
54
|
};
|
|
59
|
-
const canChangeAccountInfo = ability.can(resourceActions.PATCH, resources.CASE_CREATE, CaseListFields.ACCOUNT_AND_OWNER);
|
|
60
|
-
const summarizeButtonLabel = () => {
|
|
61
|
-
if (isCaseCreate) {
|
|
62
|
-
const shouldContinue = (summarizeNextButtonLabelLogic() || ((props === null || props === void 0 ? void 0 : props.userSeenRecommendationsValue) && numFound < 3)) &&
|
|
63
|
-
!isEmpty(issue);
|
|
64
|
-
return shouldContinue ? t('Continue') : t('See more options');
|
|
65
|
-
}
|
|
66
|
-
else {
|
|
67
|
-
return t('Continue');
|
|
68
|
-
}
|
|
69
|
-
};
|
|
70
|
-
const informationButtonLabel = () => {
|
|
71
|
-
if (!isCaseCreate) {
|
|
72
|
-
(summarizeNextButtonLabelLogic() || ((props === null || props === void 0 ? void 0 : props.userSeenRecommendationsValue) && numFound < 3)) &&
|
|
73
|
-
!isEmpty(issue) // do this so that when user refreshes tab and state persists we don't cause edge 'continue' render
|
|
74
|
-
? t('Continue')
|
|
75
|
-
: t('See more options');
|
|
76
|
-
}
|
|
77
|
-
else {
|
|
78
|
-
return t('Continue');
|
|
79
|
-
}
|
|
80
|
-
};
|
|
81
55
|
// components that are used in wizard steps
|
|
82
56
|
const appRouteConfugurations = {
|
|
83
57
|
[AppRouteSections.GET_SUPPORT]: Object.assign(Object.assign({}, defaultRouteConfiguration), { id: AppRouteSections.GET_SUPPORT, name: t('Get support'), component: (React.createElement(MainSection, { stepNumber: 1, totalSteps: 6, section: AppRouteSections.GET_SUPPORT, title: t('Why are you opening a case?'), description: t('Select the best category for your issue.') },
|
|
84
58
|
React.createElement(Suspense, { fallback: React.createElement(LoadingIndicator, { size: "sm" }) },
|
|
85
59
|
alertMessage(),
|
|
86
60
|
React.createElement(OpenCase, { routeProps: routeProps, userSeenRecommendations: props.userSeenRecommendationsfn, userClickedNextonRecommendations: props.userClickedNextonRecommendationsValue, resultsRowRef: props.resultsRowRef })))), canJumpTo: isSectionValidFn(AppRouteSections.GET_SUPPORT) || activeSection === AppRouteSections.GET_SUPPORT }),
|
|
87
|
-
[AppRouteSections.SUMMARIZE]: Object.assign(Object.assign({}, defaultRouteConfiguration), { id: AppRouteSections.SUMMARIZE, name: t('Summarize'), component: (React.createElement(MainSection, { stepNumber: 2, totalSteps: 6, section: AppRouteSections.SUMMARIZE, title: t('What are you having an issue with?') },
|
|
61
|
+
[AppRouteSections.SUMMARIZE]: Object.assign(Object.assign({}, defaultRouteConfiguration), { id: AppRouteSections.SUMMARIZE, name: isCaseCreate ? t('Summarize') : t('Troubleshoot'), component: (React.createElement(MainSection, { stepNumber: 2, totalSteps: 6, section: AppRouteSections.SUMMARIZE, title: t('What are you having an issue with?') },
|
|
88
62
|
React.createElement(Suspense, { fallback: React.createElement(LoadingIndicator, { size: "sm" }) },
|
|
89
63
|
alertMessage(),
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
[AppRouteSections.TROUBLESHOOT]: Object.assign(Object.assign({}, defaultRouteConfiguration), { id: AppRouteSections.TROUBLESHOOT, name: t('
|
|
64
|
+
React.createElement(ProductSelector, { routeProps: routeProps, userSeenRecommendations: props.userSeenRecommendationsfn, userClickedNextonRecommendations: props.userClickedNextonRecommendationsValue, resultsRowRef: props.resultsRowRef, isOnGetSupportPage: false, caseCreateExperience: isCaseCreate })))), canJumpTo: isSectionValidFn(AppRouteSections.SUMMARIZE) || activeSection === AppRouteSections.SUMMARIZE, nextButtonLabel: (summarizeNextButtonLabelLogic() || ((props === null || props === void 0 ? void 0 : props.userSeenRecommendationsValue) && numFound < 3)) &&
|
|
65
|
+
!isEmpty(issue) // do this so that when user refreshes tab and state persists we don't cause edge 'continue' render
|
|
66
|
+
? t('Continue')
|
|
67
|
+
: t('See more options') }),
|
|
68
|
+
[AppRouteSections.TROUBLESHOOT]: Object.assign(Object.assign({}, defaultRouteConfiguration), { id: AppRouteSections.TROUBLESHOOT, name: isCaseCreate ? t('Resources') : t('Resources'), component: (React.createElement(MainSection, { stepNumber: 3, totalSteps: 6, section: AppRouteSections.TROUBLESHOOT, title: t('Recommendations') },
|
|
95
69
|
React.createElement(Suspense, { fallback: React.createElement(LoadingIndicator, { size: "sm" }) },
|
|
96
70
|
alertMessage(),
|
|
97
71
|
React.createElement(TroubleshootSection, null)))), canJumpTo: isSectionValidFn(AppRouteSections.TROUBLESHOOT || activeSection === AppRouteSections.TROUBLESHOOT) &&
|
|
98
72
|
(props === null || props === void 0 ? void 0 : props.userSeenRecommendationsValue) &&
|
|
99
|
-
(props === null || props === void 0 ? void 0 : props.userCanNavigateToTroubleshoot), nextButtonLabel:
|
|
100
|
-
[AppRouteSections.DESCRIBE_MORE]: Object.assign(Object.assign({}, defaultRouteConfiguration), { id: AppRouteSections.DESCRIBE_MORE, name: t('
|
|
73
|
+
(props === null || props === void 0 ? void 0 : props.userCanNavigateToTroubleshoot), nextButtonLabel: isCaseCreate ? t('Continue') : t('Convert to Case') }),
|
|
74
|
+
[AppRouteSections.DESCRIBE_MORE]: Object.assign(Object.assign({}, defaultRouteConfiguration), { id: AppRouteSections.DESCRIBE_MORE, name: t('Additional information'), component: (React.createElement(MainSection, { stepNumber: 4, totalSteps: 6, section: AppRouteSections.DESCRIBE_MORE, title: React.createElement(React.Fragment, null,
|
|
101
75
|
t('Case information'),
|
|
102
76
|
isEmpty(RouteUtils.seBasePath) && isSelectedAccounntSecureSupport && (React.createElement("span", { className: "secured-support" },
|
|
103
77
|
React.createElement(Trans, null, "Secured Support")))), description: t('Provide the details of your issue.') },
|
|
104
78
|
React.createElement(Suspense, { fallback: React.createElement(LoadingIndicator, { size: "sm" }) },
|
|
105
79
|
alertMessage(),
|
|
106
80
|
React.createElement(CaseInformation, { routeProps: routeProps })))), canJumpTo: isSectionValidFn(AppRouteSections.DESCRIBE_MORE) || activeSection === AppRouteSections.DESCRIBE_MORE }),
|
|
107
|
-
[AppRouteSections.DESCRIBE_IDEA]: Object.assign(Object.assign({}, defaultRouteConfiguration), { id: AppRouteSections.DESCRIBE_IDEA, name: t('
|
|
81
|
+
[AppRouteSections.DESCRIBE_IDEA]: Object.assign(Object.assign({}, defaultRouteConfiguration), { id: AppRouteSections.DESCRIBE_IDEA, name: t('Additional Information'), component: (React.createElement(MainSection, { stepNumber: 4, totalSteps: 6, section: AppRouteSections.DESCRIBE_IDEA, title: t('Idea information'), description: t("We'll be in contact with you shortly. Look for updates on this case.") },
|
|
108
82
|
React.createElement(Suspense, { fallback: React.createElement(LoadingIndicator, { size: "sm" }) },
|
|
109
83
|
alertMessage(),
|
|
110
84
|
React.createElement(IdeaInformation, null)))), canJumpTo: isSectionValidFn(AppRouteSections.DESCRIBE_IDEA) || activeSection === AppRouteSections.DESCRIBE_IDEA, nextButtonLabel: 'Submit', disableOtherSections: false }),
|
|
111
|
-
[AppRouteSections.MANAGEMENT]: Object.assign(Object.assign({}, defaultRouteConfiguration), { id: AppRouteSections.MANAGEMENT, name: t('
|
|
85
|
+
[AppRouteSections.MANAGEMENT]: Object.assign(Object.assign({}, defaultRouteConfiguration), { id: AppRouteSections.MANAGEMENT, name: t('Configuration'), component: (React.createElement(MainSection, { stepNumber: 5, totalSteps: 6, section: AppRouteSections.MANAGEMENT, title: t('Case management'), descriptionClassName: "text-medium-grey" },
|
|
112
86
|
React.createElement(Suspense, { fallback: React.createElement(LoadingIndicator, { size: "sm" }) },
|
|
113
87
|
alertMessage(),
|
|
114
88
|
React.createElement(CaseManagement, null)))), canJumpTo: isSectionValidFn(AppRouteSections.MANAGEMENT) || activeSection === AppRouteSections.MANAGEMENT }),
|
|
@@ -46,6 +46,7 @@ export declare const sessionRestoreCardSections: AppRouteSections[];
|
|
|
46
46
|
export declare const hideFileUploadSidebarWidgetSections: AppRouteSections[];
|
|
47
47
|
export declare const showSidebarRecommendationsSections: AppRouteSections[];
|
|
48
48
|
export declare const showSideBarEARuleWidgetSections: AppRouteSections[];
|
|
49
|
+
export declare const showSideBarEARuleWidgetSectionsExperienceA: AppRouteSections[];
|
|
49
50
|
export declare const showSideBarClusterIdRuleWidgetSections: AppRouteSections[];
|
|
50
51
|
export declare const showSideBarFileRecommendationSections: AppRouteSections[];
|
|
51
52
|
export declare const hideSideBarClusterIdRuleToast: AppRouteSections[];
|
|
@@ -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;IACnB,qBAAqB,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAIxC,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACnC;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"}
|
|
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;IACnB,qBAAqB,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAIxC,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACnC;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,0CAA0C,oBAQtD,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"}
|
|
@@ -69,6 +69,15 @@ export const showSideBarEARuleWidgetSections = [
|
|
|
69
69
|
AppRouteSections.MANAGEMENT,
|
|
70
70
|
AppRouteSections.GET_SUPPORT,
|
|
71
71
|
];
|
|
72
|
+
export const showSideBarEARuleWidgetSectionsExperienceA = [
|
|
73
|
+
AppRouteSections.SUMMARIZE,
|
|
74
|
+
AppRouteSections.DESCRIBE_MORE,
|
|
75
|
+
AppRouteSections.DESCRIBE_IDEA,
|
|
76
|
+
AppRouteSections.TROUBLESHOOT,
|
|
77
|
+
AppRouteSections.MANAGEMENT,
|
|
78
|
+
AppRouteSections.GET_SUPPORT,
|
|
79
|
+
AppRouteSections.REVIEW,
|
|
80
|
+
];
|
|
72
81
|
export const showSideBarClusterIdRuleWidgetSections = [AppRouteSections.MANAGEMENT, AppRouteSections.REVIEW];
|
|
73
82
|
export const showSideBarFileRecommendationSections = [AppRouteSections.DESCRIBE_MORE, AppRouteSections.MANAGEMENT];
|
|
74
83
|
export const hideSideBarClusterIdRuleToast = [AppRouteSections.SUBMIT_CASE];
|
package/lib/esm/scss/_main.scss
CHANGED
|
@@ -1111,7 +1111,7 @@ svg.pf-v5-u-ml-xs.icon-size {
|
|
|
1111
1111
|
}
|
|
1112
1112
|
|
|
1113
1113
|
#DeepPurpleColorAILabel {
|
|
1114
|
-
background-color: #
|
|
1114
|
+
background-color: #5e40be !important;
|
|
1115
1115
|
position: relative;
|
|
1116
1116
|
display: inline-block;
|
|
1117
1117
|
z-index: 1;
|
|
@@ -1128,3 +1128,19 @@ svg.pf-v5-u-ml-xs.icon-size {
|
|
|
1128
1128
|
transform: rotate(360deg);
|
|
1129
1129
|
}
|
|
1130
1130
|
}
|
|
1131
|
+
|
|
1132
|
+
.cve-modal-fade-in-effect {
|
|
1133
|
+
opacity: 0;
|
|
1134
|
+
animation: cveModalfadeIn 0.3s forwards;
|
|
1135
|
+
}
|
|
1136
|
+
|
|
1137
|
+
@keyframes cveModalfadeIn {
|
|
1138
|
+
from {
|
|
1139
|
+
opacity: 0;
|
|
1140
|
+
transform: scale(0.9);
|
|
1141
|
+
}
|
|
1142
|
+
to {
|
|
1143
|
+
opacity: 1;
|
|
1144
|
+
transform: scale(1);
|
|
1145
|
+
}
|
|
1146
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rh-support/troubleshoot",
|
|
3
|
-
"version": "2.4.5-beta.
|
|
3
|
+
"version": "2.4.5-beta.16",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public",
|
|
6
6
|
"registry": "https://registry.npmjs.org"
|
|
@@ -60,11 +60,11 @@
|
|
|
60
60
|
"@progress/kendo-licensing": "1.3.5",
|
|
61
61
|
"@progress/kendo-react-pdf": "^5.16.0",
|
|
62
62
|
"@redux-devtools/extension": "^3.3.0",
|
|
63
|
-
"@rh-support/components": "2.4.3-beta.
|
|
64
|
-
"@rh-support/react-context": "2.4.3-beta.
|
|
63
|
+
"@rh-support/components": "2.4.3-beta.4",
|
|
64
|
+
"@rh-support/react-context": "2.4.3-beta.4",
|
|
65
65
|
"@rh-support/types": "2.0.5",
|
|
66
|
-
"@rh-support/user-permissions": "2.4.3-beta.
|
|
67
|
-
"@rh-support/utils": "2.4.3-beta.
|
|
66
|
+
"@rh-support/user-permissions": "2.4.3-beta.4",
|
|
67
|
+
"@rh-support/utils": "2.4.3-beta.4",
|
|
68
68
|
"@types/react-redux": "^7.1.33",
|
|
69
69
|
"@types/redux": "^3.6.0",
|
|
70
70
|
"date-fns": "3.6.0",
|
|
@@ -94,6 +94,7 @@
|
|
|
94
94
|
"timers": "^0.1.1"
|
|
95
95
|
},
|
|
96
96
|
"devDependencies": {
|
|
97
|
+
"@testing-library/dom": "^10.4.0",
|
|
97
98
|
"@testing-library/jest-dom": "^6.2.0",
|
|
98
99
|
"@testing-library/react": "^14.1.2",
|
|
99
100
|
"@testing-library/user-event": "^14.5.1",
|
|
@@ -134,5 +135,5 @@
|
|
|
134
135
|
"defaults and supports es6-module",
|
|
135
136
|
"maintained node versions"
|
|
136
137
|
],
|
|
137
|
-
"gitHead": "
|
|
138
|
+
"gitHead": "a6b8a621dbb440a324ea93262d5d8b1e8e9498be"
|
|
138
139
|
}
|