@rh-support/troubleshoot 0.2.72 → 0.2.82
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/ProductSelector/ProductVersionDropdownSelector.d.ts.map +1 -1
- package/lib/esm/components/ProductSelector/ProductVersionDropdownSelector.js +14 -3
- package/lib/esm/components/Recommendations/ClusterRecommendationItems.js +4 -4
- package/lib/esm/components/Recommendations/EARules/EARule.d.ts.map +1 -1
- package/lib/esm/components/Recommendations/EARules/EARule.js +10 -5
- package/lib/esm/components/Recommendations/InsightsResults.d.ts.map +1 -1
- package/lib/esm/components/Recommendations/InsightsResults.js +4 -0
- package/lib/esm/components/Recommendations/InsightsRuleInfo.d.ts.map +1 -1
- package/lib/esm/components/Recommendations/InsightsRuleInfo.js +6 -4
- package/lib/esm/components/wizardLayout/GlobalTroubleshootEffects.d.ts.map +1 -1
- package/lib/esm/components/wizardLayout/GlobalTroubleshootEffects.js +12 -3
- package/lib/esm/reducers/RulesReducer.d.ts +10 -3
- package/lib/esm/reducers/RulesReducer.d.ts.map +1 -1
- package/lib/esm/reducers/RulesReducer.js +11 -8
- package/lib/esm/reducers/SessionRestoreReducer.d.ts +4 -4
- package/lib/esm/reducers/SessionRestoreReducer.d.ts.map +1 -1
- package/lib/esm/reducers/SessionRestoreReducer.js +33 -15
- package/lib/esm/scss/_main.scss +11 -1
- package/package.json +6 -6
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProductVersionDropdownSelector.d.ts","sourceRoot":"","sources":["../../../../src/components/ProductSelector/ProductVersionDropdownSelector.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,wCAAwC,CAAC;AAEpE,OAAO,EAAE,gBAAgB,EAAW,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"ProductVersionDropdownSelector.d.ts","sourceRoot":"","sources":["../../../../src/components/ProductSelector/ProductVersionDropdownSelector.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,wCAAwC,CAAC;AAEpE,OAAO,EAAE,gBAAgB,EAAW,MAAM,0BAA0B,CAAC;AAIrE,OAAO,KAA+D,MAAM,OAAO,CAAC;AAMpF,UAAU,MAAO,SAAQ,gBAAgB;IACrC,QAAQ,EAAE,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;IAChC,eAAe,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;IACrC,eAAe,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC,KAAK,GAAG,CAAC;IACvD,eAAe,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,GAAG,CAAC;IAC1C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;CACnB;AAOD,QAAA,MAAM,8BAA8B,wEAqIlC,CAAC;AAEH,OAAO,EAAE,8BAA8B,EAAE,CAAC"}
|
|
@@ -1,21 +1,32 @@
|
|
|
1
1
|
import { Dropdown } from '@rh-support/components';
|
|
2
2
|
import { toOption, toOptions } from '@rh-support/utils';
|
|
3
3
|
import isEmpty from 'lodash/isEmpty';
|
|
4
|
-
import
|
|
4
|
+
import isEqual from 'lodash/isEqual';
|
|
5
|
+
import React, { forwardRef, useContext, useEffect, useMemo, useState } from 'react';
|
|
5
6
|
import { Trans, useTranslation } from 'react-i18next';
|
|
7
|
+
import { useCaseSelector } from '../../context/CaseContext';
|
|
6
8
|
import { RouteContext } from '../../context/RouteContext';
|
|
7
9
|
const defaultProps = {
|
|
8
10
|
disabled: false,
|
|
9
11
|
htmlForId: '',
|
|
10
12
|
};
|
|
11
13
|
const ProductVersionDropdownSelector = forwardRef((props, ref) => {
|
|
12
|
-
var _a;
|
|
13
14
|
const { t } = useTranslation();
|
|
14
15
|
const [isProductInValid, setIsProductInValid] = useState(true);
|
|
15
16
|
const [isVersionInValid, setIsVersionInValid] = useState(false);
|
|
16
17
|
const [isProductBlured, setIsProductBlured] = useState(false);
|
|
17
18
|
const [isVersionBlured, setIsVersionBlured] = useState(false);
|
|
18
19
|
const { routeState: { showValidationErrorAlert }, } = useContext(RouteContext);
|
|
20
|
+
const versionsDetails = useCaseSelector((state) => state.versionsDetails, isEqual);
|
|
21
|
+
const productVenisons = useMemo(() => versionsDetails.data.map(({ name }) => name),
|
|
22
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
23
|
+
[props.selectedProduct.name, versionsDetails.data]);
|
|
24
|
+
// Here we are conditionally checking if selected product is having version and if not fallback to fetched version list ].
|
|
25
|
+
const selectedProductVersion = isEmpty(props.selectedProduct.versions)
|
|
26
|
+
? productVenisons
|
|
27
|
+
: props.selectedProduct.versions;
|
|
28
|
+
// On the basis of which version source we are using we need to use loading status of it.
|
|
29
|
+
const isLoadingList = isEmpty(props.selectedProduct.versions) ? versionsDetails.isFetching : props.isLoading;
|
|
19
30
|
const onProductChange = (option) => {
|
|
20
31
|
props.onProductChange(option.value);
|
|
21
32
|
validateProduct(option);
|
|
@@ -72,7 +83,7 @@ const ProductVersionDropdownSelector = forwardRef((props, ref) => {
|
|
|
72
83
|
React.createElement(Trans, null, "Version"),
|
|
73
84
|
' ',
|
|
74
85
|
React.createElement("span", { className: "form-required", "aria-hidden": true }, "*"))),
|
|
75
|
-
React.createElement(Dropdown, { selectedItem: toOption(props.version), list:
|
|
86
|
+
React.createElement(Dropdown, { selectedItem: toOption(props.version), list: toOptions(selectedProductVersion !== null && selectedProductVersion !== void 0 ? selectedProductVersion : []), id: "version-selector-dropdown", placeholder: t('Select a version'), isLoadingList: isLoadingList, title: `Versions for ${props.selectedProduct.product}`, disabled: props.disabled || isEmpty(selectedProductVersion), isInValid: !props.disabled &&
|
|
76
87
|
isVersionInValid &&
|
|
77
88
|
showValidationErrorAlert &&
|
|
78
89
|
props.selectedProduct.product &&
|
|
@@ -6,12 +6,12 @@ import { Trans } from 'react-i18next';
|
|
|
6
6
|
import { useCaseSelector } from '../../context/CaseContext';
|
|
7
7
|
import { SessionRestoreDispatchContext, SessionRestoreStateContext } from '../../context/SessionRestoreContext';
|
|
8
8
|
import { useParseRuleMarkdown } from '../../hooks/useParseRuleMarkdown';
|
|
9
|
-
import { createOrUpdateSessionResources,
|
|
9
|
+
import { createOrUpdateSessionResources, getRulesToSave } from '../../reducers/SessionRestoreReducer';
|
|
10
10
|
import { riskLabels } from '../shared/Constants';
|
|
11
11
|
export function ClusterRecommendationItems(props) {
|
|
12
12
|
const sessionRestoreDispatch = useContext(SessionRestoreDispatchContext);
|
|
13
13
|
const { sessionRestore: { activeSessionId, sessionResourceTracking }, } = useContext(SessionRestoreStateContext);
|
|
14
|
-
const { SessionResourceSource
|
|
14
|
+
const { SessionResourceSource } = pcm.preCase.session;
|
|
15
15
|
const { version, product } = useCaseSelector((state) => ({
|
|
16
16
|
version: state.caseDetails.version,
|
|
17
17
|
product: state.caseDetails.product,
|
|
@@ -19,8 +19,8 @@ export function ClusterRecommendationItems(props) {
|
|
|
19
19
|
const { parseDotMarkdownWithTracking } = useParseRuleMarkdown();
|
|
20
20
|
const onResourceClick = (e, rule) => {
|
|
21
21
|
if (e.target.tagName.toLowerCase() === 'a') {
|
|
22
|
-
const
|
|
23
|
-
createOrUpdateSessionResources(sessionRestoreDispatch, activeSessionId, sessionResourceTracking, SessionResourceSource.CLUSTER_RECOMMENDATION,
|
|
22
|
+
const visitedUrl = e.target.href.split('?')[0];
|
|
23
|
+
createOrUpdateSessionResources(sessionRestoreDispatch, activeSessionId, sessionResourceTracking, SessionResourceSource.CLUSTER_RECOMMENDATION, getRulesToSave(visitedUrl, rule, props.clusterRecommendations), JSON.stringify({ product, version }));
|
|
24
24
|
}
|
|
25
25
|
};
|
|
26
26
|
return (React.createElement("pfe-accordion", null, props.clusterRecommendations.map((rule) => (React.createElement(React.Fragment, null,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EARule.d.ts","sourceRoot":"","sources":["../../../../../src/components/Recommendations/EARules/EARule.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"EARule.d.ts","sourceRoot":"","sources":["../../../../../src/components/Recommendations/EARules/EARule.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAqB,MAAM,OAAO,CAAC;AAM1C,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAE/D,UAAU,cAAc;IACpB,IAAI,EAAE,aAAa,CAAC;IACpB,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,iBAAiB,EAAE,UAAU,CAAC,KAAK,IAAI,CAAC;CAClG;AAGD,eAAO,MAAM,aAAa,+BAGxB,CAAC;AAEH,wBAAgB,gBAAgB,mBAM/B;AACD,wBAAgB,MAAM,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;;;CAAA,eA0BxC;AAED,iBAAS,WAAW,gBAGnB;AAED,iBAAS,iBAAiB,gBAsBzB;AAED,iBAAS,aAAa,CAAC,EAAE,SAA6B,EAAE,SAAc,EAAE,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,eA4BnH;AAED,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,aAAa,EAAE,CAAC"}
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
/* eslint-disable @typescript-eslint/no-unused-vars */
|
|
2
2
|
import { pcm } from '@cee-eng/hydrajs';
|
|
3
|
+
import CaretRightIcon from '@patternfly/react-icons/dist/js/icons/caret-right-icon';
|
|
3
4
|
import React, { useContext } from 'react';
|
|
4
5
|
import { Trans } from 'react-i18next';
|
|
6
|
+
import { RulesStateContext } from '../../../context/RulesContext';
|
|
5
7
|
import { SessionRestoreDispatchContext, SessionRestoreStateContext } from '../../../context/SessionRestoreContext';
|
|
6
8
|
import { useParseRuleMarkdown } from '../../../hooks/useParseRuleMarkdown';
|
|
7
|
-
import { createOrUpdateSessionResources,
|
|
8
|
-
const {
|
|
9
|
+
import { createOrUpdateSessionResources, getRulesToSave } from '../../../reducers/SessionRestoreReducer';
|
|
10
|
+
const { SessionResourceSource } = pcm.preCase.session;
|
|
9
11
|
export const EARuleContext = React.createContext({
|
|
10
12
|
rule: {},
|
|
11
13
|
onCtaClick: null,
|
|
@@ -20,8 +22,9 @@ export function useEARuleContext() {
|
|
|
20
22
|
export function EARule({ children, rule }) {
|
|
21
23
|
const { sessionRestore: { activeSessionId, sessionResourceTracking }, } = useContext(SessionRestoreStateContext);
|
|
22
24
|
const sessionRestoreDispatch = useContext(SessionRestoreDispatchContext);
|
|
25
|
+
const { rulesState } = useContext(RulesStateContext);
|
|
23
26
|
const onCtaClick = (link) => (event) => {
|
|
24
|
-
createOrUpdateSessionResources(sessionRestoreDispatch, activeSessionId, sessionResourceTracking, SessionResourceSource.EDMOUND_ABOTT,
|
|
27
|
+
createOrUpdateSessionResources(sessionRestoreDispatch, activeSessionId, sessionResourceTracking, SessionResourceSource.EDMOUND_ABOTT, getRulesToSave(link, rule, rulesState.EARules.rules));
|
|
25
28
|
};
|
|
26
29
|
return (React.createElement(EARuleContext.Provider, { value: {
|
|
27
30
|
rule,
|
|
@@ -50,7 +53,9 @@ function EARuleArticle({ linkTitle = 'Related Article', className = '' }) {
|
|
|
50
53
|
const { getTrackingULRWithQueryParams } = useParseRuleMarkdown();
|
|
51
54
|
if (!rule.cta)
|
|
52
55
|
return null;
|
|
53
|
-
return (React.createElement("a", { className: `se-recommended ts-known-vuln ${className}`, rel: "noopener noreferrer", target: "_blank", "data-tracking-id": "se-recommended-asa-rule", onClick: onCtaClick(rule.cta), href: getTrackingULRWithQueryParams(rule.cta, SessionResourceSource.EDMOUND_ABOTT) },
|
|
54
|
-
React.createElement(Trans, null, linkTitle)))
|
|
56
|
+
return linkTitle === 'View details' ? (React.createElement("a", { className: `se-recommended ts-known-vuln anchor-tag-link-td-none ${className}`, rel: "noopener noreferrer", target: "_blank", "data-tracking-id": "se-recommended-asa-rule", onClick: onCtaClick(rule.cta), href: getTrackingULRWithQueryParams(rule.cta, SessionResourceSource.EDMOUND_ABOTT) },
|
|
57
|
+
React.createElement(Trans, null, linkTitle))) : (React.createElement("a", { className: `se-recommended pf-c-button pf-m-link anchor-tag-link-pl ts-known-vuln ${className}`, rel: "noopener noreferrer", target: "_blank", "data-tracking-id": "se-recommended-asa-rule", onClick: onCtaClick(rule.cta), href: getTrackingULRWithQueryParams(rule.cta, SessionResourceSource.EDMOUND_ABOTT) },
|
|
58
|
+
React.createElement(Trans, null, linkTitle),
|
|
59
|
+
React.createElement(CaretRightIcon, null)));
|
|
55
60
|
}
|
|
56
61
|
export { EARuleTitle, EARuleDescription, EARuleArticle };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InsightsResults.d.ts","sourceRoot":"","sources":["../../../../src/components/Recommendations/InsightsResults.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAgC,MAAM,0CAA0C,CAAC;AAG7G,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAwB5D,UAAU,MAAO,SAAQ,gBAAgB;IACrC,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,OAAO,CAAC;CAC1B;AASD,MAAM,WAAW,wBAAyB,SAAQ,mBAAmB;IACjE,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,OAAO,CAAC;CAClB;AAED,iBAAS,eAAe,CAAC,KAAK,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"InsightsResults.d.ts","sourceRoot":"","sources":["../../../../src/components/Recommendations/InsightsResults.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAgC,MAAM,0CAA0C,CAAC;AAG7G,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAwB5D,UAAU,MAAO,SAAQ,gBAAgB;IACrC,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,OAAO,CAAC;CAC1B;AASD,MAAM,WAAW,wBAAyB,SAAQ,mBAAmB;IACjE,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,OAAO,CAAC;CAClB;AAED,iBAAS,eAAe,CAAC,KAAK,EAAE,MAAM,eAmPrC;kBAnPQ,eAAe;;;AAsPxB,eAAe,eAAe,CAAC"}
|
|
@@ -196,6 +196,10 @@ function InsightsResults(props) {
|
|
|
196
196
|
}, [selectedLocalFiles]);
|
|
197
197
|
useEffect(() => {
|
|
198
198
|
setInsighResultsKcsIds(recommendationDispatch, includeAnalysisResults ? allResults.map((result) => result.id) : []);
|
|
199
|
+
rulesDispatch({
|
|
200
|
+
type: RulesReducerConstants.setInsightRules,
|
|
201
|
+
payload: { rules: allResults },
|
|
202
|
+
});
|
|
199
203
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
200
204
|
}, [allResults.length, includeAnalysisResults]);
|
|
201
205
|
function insightsModalToggle() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InsightsRuleInfo.d.ts","sourceRoot":"","sources":["../../../../src/components/Recommendations/InsightsRuleInfo.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"InsightsRuleInfo.d.ts","sourceRoot":"","sources":["../../../../src/components/Recommendations/InsightsRuleInfo.tsx"],"names":[],"mappings":"AAeA,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAI7D,UAAU,MAAM;IACZ,GAAG,EAAE,wBAAwB,CAAC;IAC9B,UAAU,EAAE,OAAO,CAAC;IACpB,aAAa,EAAE,MAAM,EAAE,CAAC;CAC3B;AAOD,wBAAgB,gBAAgB,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,aAAa,EAAE,EAAE,MAAM,eA8J1E"}
|
|
@@ -6,11 +6,12 @@ import InfoCircleIcon from '@patternfly/react-icons/dist/js/icons/info-circle-ic
|
|
|
6
6
|
import { getRuleReasonHtml } from '@rh-support/utils';
|
|
7
7
|
import React, { useContext, useEffect, useRef, useState } from 'react';
|
|
8
8
|
import { Trans } from 'react-i18next';
|
|
9
|
+
import { RulesStateContext } from '../../context/RulesContext';
|
|
9
10
|
import { SessionRestoreDispatchContext, SessionRestoreStateContext } from '../../context/SessionRestoreContext';
|
|
10
11
|
import { useParseRuleMarkdown } from '../../hooks/useParseRuleMarkdown';
|
|
11
|
-
import { createOrUpdateSessionResources,
|
|
12
|
+
import { createOrUpdateSessionResources, getInsightRulesToSave } from '../../reducers/SessionRestoreReducer';
|
|
12
13
|
import { AttachmentStateContext } from '../shared/fileUpload/reducer/AttachmentReducerContext';
|
|
13
|
-
const {
|
|
14
|
+
const { SessionResourceSource } = pcm.preCase.session;
|
|
14
15
|
export function InsightsRuleInfo({ doc, showNewTag, duplicateKeys }) {
|
|
15
16
|
var _a, _b, _c, _d, _e, _f, _g;
|
|
16
17
|
const [ruleData, setRuleData] = useState(null);
|
|
@@ -19,6 +20,7 @@ export function InsightsRuleInfo({ doc, showNewTag, duplicateKeys }) {
|
|
|
19
20
|
const [isIssueExpanded, setIsIssueExpanded] = useState(true);
|
|
20
21
|
const [isAdditionalExpanded, setIsAdditionalExpanded] = useState(false);
|
|
21
22
|
const { sessionRestore: { activeSessionId, sessionResourceTracking }, } = useContext(SessionRestoreStateContext);
|
|
23
|
+
const { rulesState: { insightRules }, } = useContext(RulesStateContext);
|
|
22
24
|
const sessionRestoreDispatch = useContext(SessionRestoreDispatchContext);
|
|
23
25
|
const { parseDotMarkdownWithTracking, getTrackingULRWithQueryParams } = useParseRuleMarkdown();
|
|
24
26
|
const { attachmentState: { caseFiles: { selectedLocalFiles }, }, } = useContext(AttachmentStateContext);
|
|
@@ -36,7 +38,7 @@ export function InsightsRuleInfo({ doc, showNewTag, duplicateKeys }) {
|
|
|
36
38
|
setRuleData(rules[ruleId]);
|
|
37
39
|
}, [setRuleData, doc.attachmentId, doc.id, selectedLocalFiles, duplicateKeys]);
|
|
38
40
|
const onCtaClick = (link) => (event) => {
|
|
39
|
-
createOrUpdateSessionResources(sessionRestoreDispatch, activeSessionId, sessionResourceTracking, SessionResourceSource.INSIGHTS,
|
|
41
|
+
createOrUpdateSessionResources(sessionRestoreDispatch, activeSessionId, sessionResourceTracking, SessionResourceSource.INSIGHTS, getInsightRulesToSave(link, doc, insightRules.rules));
|
|
40
42
|
};
|
|
41
43
|
const parseMoreInfo = (moreInfo, reportDetails) => {
|
|
42
44
|
return parseDotMarkdownWithTracking(moreInfo, reportDetails, SessionResourceSource.INSIGHTS, 'ts-result-insights', 'se-recommended-insights-rule');
|
|
@@ -75,7 +77,7 @@ export function InsightsRuleInfo({ doc, showNewTag, duplicateKeys }) {
|
|
|
75
77
|
React.createElement(Trans, null, "Additional info")),
|
|
76
78
|
React.createElement(AccordionContent, { isHidden: !isAdditionalExpanded },
|
|
77
79
|
React.createElement("p", { onClick: onAdditionalInfoElemClick, dangerouslySetInnerHTML: parseMoreInfo(ruleData === null || ruleData === void 0 ? void 0 : ruleData.more_info, (_g = insightsReport === null || insightsReport === void 0 ? void 0 : insightsReport.current) === null || _g === void 0 ? void 0 : _g.details) }))))),
|
|
78
|
-
React.createElement("a", { className: "se-recommended pf-c-button pf-m-link ts-result-insights cta-link", rel: "noopener noreferrer", target: "_blank", onClick: onCtaClick(doc.view_uri), "data-tracking-id": "se-recommended-insights-rule", "aria-label": "Related article", role: "button", href: getTrackingULRWithQueryParams(doc.view_uri, SessionResourceSource.INSIGHTS) },
|
|
80
|
+
React.createElement("a", { className: "se-recommended pf-c-button pf-m-link anchor-tag-link-pl ts-result-insights cta-link", rel: "noopener noreferrer", target: "_blank", onClick: onCtaClick(doc.view_uri), "data-tracking-id": "se-recommended-insights-rule", "aria-label": "Related article", role: "button", href: getTrackingULRWithQueryParams(doc.view_uri, SessionResourceSource.INSIGHTS) },
|
|
79
81
|
React.createElement(Trans, null, "Related article"),
|
|
80
82
|
React.createElement(CaretRightIcon, null)))))));
|
|
81
83
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GlobalTroubleshootEffects.d.ts","sourceRoot":"","sources":["../../../../src/components/wizardLayout/GlobalTroubleshootEffects.tsx"],"names":[],"mappings":"AAUA,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAWvD,OAAO,EAAqB,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAOrF,UAAU,MAAM;IACZ,UAAU,EAAE,mBAAmB,CAAC,eAAe,CAAC,CAAC;CACpD;AAED,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"GlobalTroubleshootEffects.d.ts","sourceRoot":"","sources":["../../../../src/components/wizardLayout/GlobalTroubleshootEffects.tsx"],"names":[],"mappings":"AAUA,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAWvD,OAAO,EAAqB,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAOrF,UAAU,MAAM;IACZ,UAAU,EAAE,mBAAmB,CAAC,eAAe,CAAC,CAAC;CACpD;AAED,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,MAAM,eA2XtD"}
|
|
@@ -50,6 +50,11 @@ export function GlobalTroubleshootEffects(props) {
|
|
|
50
50
|
language: state.caseDetails.caseLanguage,
|
|
51
51
|
selectedAccountDetails: state.selectedAccountDetails,
|
|
52
52
|
}), isEqual);
|
|
53
|
+
const versionsDetails = useCaseSelector((state) => {
|
|
54
|
+
if (isEmpty(state.versionsDetails.data))
|
|
55
|
+
return [];
|
|
56
|
+
return state.versionsDetails.data.map(({ name }) => name);
|
|
57
|
+
}, isEqual);
|
|
53
58
|
const caseDispatch = useCaseDispatch();
|
|
54
59
|
const isCaseCreate = RouteUtils.getQueryParams(props.routeProps).caseCreate === 'true';
|
|
55
60
|
const urlQueryParams = RouteUtils.getQueryParams(props.routeProps);
|
|
@@ -84,9 +89,13 @@ export function GlobalTroubleshootEffects(props) {
|
|
|
84
89
|
RouteUtils.updateQueryParams(props.routeProps, newParams);
|
|
85
90
|
}
|
|
86
91
|
else {
|
|
92
|
+
// Check if product information it self is having version list or fallback to version list from different source.
|
|
93
|
+
const productVersions = isEmpty(allProducts.data.productsResult[index].versions)
|
|
94
|
+
? versionsDetails
|
|
95
|
+
: allProducts.data.productsResult[index].versions;
|
|
87
96
|
// product in url is valid
|
|
88
|
-
const isVersionFromURLValid = !isEmpty(versionFromUrl) && includes(
|
|
89
|
-
const isMultiVersionProduct = !isOnlyVersion(
|
|
97
|
+
const isVersionFromURLValid = !isEmpty(versionFromUrl) && includes(productVersions, versionFromUrl);
|
|
98
|
+
const isMultiVersionProduct = !isOnlyVersion(productVersions);
|
|
90
99
|
if (isVersionFromURLValid || isMultiVersionProduct) {
|
|
91
100
|
// version is also valid
|
|
92
101
|
const versionToSet = isVersionFromURLValid ? versionFromUrl : undefined;
|
|
@@ -96,7 +105,7 @@ export function GlobalTroubleshootEffects(props) {
|
|
|
96
105
|
}
|
|
97
106
|
else if (!isMultiVersionProduct) {
|
|
98
107
|
// no version or invalid version and there is only 1 version we set default version in url that will trigger the flow with valid version this time
|
|
99
|
-
const defaultVersion = getVersionIfOnlyVersion(
|
|
108
|
+
const defaultVersion = getVersionIfOnlyVersion(productVersions);
|
|
100
109
|
const newParams = { product: productFromUrl, version: defaultVersion };
|
|
101
110
|
RouteUtils.updateQueryParams(props.routeProps, newParams);
|
|
102
111
|
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { IEdmundAbbottBodyV2, IRule } from '@cee-eng/hydrajs/@types/api/pcm/edmundAbbott';
|
|
2
|
+
import { ISolrRecommendation } from '@cee-eng/hydrajs/@types/models/solr/solr';
|
|
2
3
|
import { IAction } from '@rh-support/types/shared';
|
|
3
4
|
export declare enum RulesReducerConstants {
|
|
4
5
|
CustomerPortalRuleVisibilityChanged = "CustomerPortalRuleVisibilityChanged",
|
|
@@ -10,11 +11,13 @@ export declare enum RulesReducerConstants {
|
|
|
10
11
|
triggerEARulesModalVisibiltyChange = "triggerEARulesModalVisibiltyChange",
|
|
11
12
|
resetEARules = "resetEARules",
|
|
12
13
|
setIsEARuleWidgetVisible = "setIsEARuleWidgetVisible",
|
|
13
|
-
EARuleMarkResolved = "EARuleMarkResolved"
|
|
14
|
+
EARuleMarkResolved = "EARuleMarkResolved",
|
|
15
|
+
setInsightRules = "setInsightRules"
|
|
14
16
|
}
|
|
15
17
|
export interface IAllRules {
|
|
16
18
|
customerPortalRules: IRules;
|
|
17
19
|
EARules: IRules;
|
|
20
|
+
insightRules: IRules;
|
|
18
21
|
isLoadingEdmundAbbottRules: boolean;
|
|
19
22
|
isLoadingEdmundAbbottRulesError: boolean;
|
|
20
23
|
triggerRuleNotification: boolean;
|
|
@@ -25,9 +28,12 @@ export interface IExtendedRule extends IRule {
|
|
|
25
28
|
isNew?: boolean;
|
|
26
29
|
resolved?: boolean;
|
|
27
30
|
}
|
|
31
|
+
export interface IExtendedSolrRecommendation extends ISolrRecommendation {
|
|
32
|
+
cta?: string;
|
|
33
|
+
}
|
|
28
34
|
export interface IRuleayloadType extends IAllRules {
|
|
29
|
-
rule: IExtendedRule;
|
|
30
|
-
rules: IExtendedRule[];
|
|
35
|
+
rule: IExtendedRule | IExtendedSolrRecommendation;
|
|
36
|
+
rules: IExtendedRule[] | IExtendedSolrRecommendation[];
|
|
31
37
|
}
|
|
32
38
|
declare type IActionType = IAction<RulesReducerConstants, IRuleayloadType>;
|
|
33
39
|
export declare type RulesDispatchType = (value: IActionType) => void;
|
|
@@ -44,5 +50,6 @@ export declare const resetEARules: (dispatch: RulesDispatchType) => void;
|
|
|
44
50
|
export declare const fetchEdmundAbbottRules: (dispatch: RulesDispatchType, body: Partial<IEdmundAbbottBodyV2>, onEARuleLoad?: (eaResponse: IRule[]) => void) => Promise<void>;
|
|
45
51
|
export declare const setIsEARuleWidgetVisible: (dispatch: RulesDispatchType, isEARuleWidgetVisible: boolean) => void;
|
|
46
52
|
export declare const markEARuleResolved: (dispatch: RulesDispatchType, rule: IRule) => void;
|
|
53
|
+
export declare const setInsightRules: (dispatch: RulesDispatchType, recResponse: IExtendedSolrRecommendation[]) => void;
|
|
47
54
|
export {};
|
|
48
55
|
//# sourceMappingURL=RulesReducer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RulesReducer.d.ts","sourceRoot":"","sources":["../../../src/reducers/RulesReducer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,KAAK,EAAE,MAAM,8CAA8C,CAAC;AAC1F,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAMnD,oBAAY,qBAAqB;IAC7B,mCAAmC,wCAAwC;IAC3E,uBAAuB,4BAA4B;IACnD,wBAAwB,6BAA6B;IACrD,yBAAyB,8BAA8B;IACvD,8BAA8B,mCAAmC;IACjE,uBAAuB,4BAA4B;IACnD,kCAAkC,uCAAuC;IACzE,YAAY,iBAAiB;IAC7B,wBAAwB,6BAA6B;IACrD,kBAAkB,uBAAuB;
|
|
1
|
+
{"version":3,"file":"RulesReducer.d.ts","sourceRoot":"","sources":["../../../src/reducers/RulesReducer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,KAAK,EAAE,MAAM,8CAA8C,CAAC;AAC1F,OAAO,EAAE,mBAAmB,EAAE,MAAM,0CAA0C,CAAC;AAC/E,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAMnD,oBAAY,qBAAqB;IAC7B,mCAAmC,wCAAwC;IAC3E,uBAAuB,4BAA4B;IACnD,wBAAwB,6BAA6B;IACrD,yBAAyB,8BAA8B;IACvD,8BAA8B,mCAAmC;IACjE,uBAAuB,4BAA4B;IACnD,kCAAkC,uCAAuC;IACzE,YAAY,iBAAiB;IAC7B,wBAAwB,6BAA6B;IACrD,kBAAkB,uBAAuB;IACzC,eAAe,oBAAoB;CACtC;AAED,MAAM,WAAW,SAAS;IACtB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,0BAA0B,EAAE,OAAO,CAAC;IACpC,+BAA+B,EAAE,OAAO,CAAC;IAEzC,uBAAuB,EAAE,OAAO,CAAC;IACjC,kBAAkB,EAAE,OAAO,CAAC;IAC5B,qBAAqB,EAAE,OAAO,CAAC;CAClC;AAED,MAAM,WAAW,aAAc,SAAQ,KAAK;IACxC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,2BAA4B,SAAQ,mBAAmB;IACpE,GAAG,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,eAAgB,SAAQ,SAAS;IAC9C,IAAI,EAAE,aAAa,GAAG,2BAA2B,CAAC;IAClD,KAAK,EAAE,aAAa,EAAE,GAAG,2BAA2B,EAAE,CAAC;CAC1D;AACD,aAAK,WAAW,GAAG,OAAO,CAAC,qBAAqB,EAAE,eAAe,CAAC,CAAC;AACnE,oBAAY,iBAAiB,GAAG,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;AAE7D,MAAM,WAAW,MAAM;IACnB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,KAAK,CAAC,EAAE,aAAa,EAAE,CAAC;CAC3B;AAED,eAAO,MAAM,iBAAiB,EAAE,SA8B/B,CAAC;AAEF,eAAO,MAAM,YAAY,UAAW,SAAS,0BAAwB,SA0EpE,CAAC;AAGF,eAAO,MAAM,sCAAsC,aAAc,iBAAiB,QAAQ,KAAK,SAE9F,CAAC;AACF,eAAO,MAAM,0BAA0B,aAAc,iBAAiB,QAAQ,KAAK,SAElF,CAAC;AACF,eAAO,MAAM,YAAY,aAAc,iBAAiB,SAEvD,CAAC;AACF,eAAO,MAAM,sBAAsB,aACrB,iBAAiB,QACrB,QAAQ,mBAAmB,CAAC,8BACN,KAAK,EAAE,KAAK,IAAI,kBAa/C,CAAC;AAEF,eAAO,MAAM,wBAAwB,aAAc,iBAAiB,yBAAyB,OAAO,SAKnG,CAAC;AACF,eAAO,MAAM,kBAAkB,aAAc,iBAAiB,QAAQ,KAAK,SAE1E,CAAC;AACF,eAAO,MAAM,eAAe,aAAc,iBAAiB,eAAe,2BAA2B,EAAE,SAEtG,CAAC"}
|
|
@@ -23,15 +23,8 @@ export var RulesReducerConstants;
|
|
|
23
23
|
RulesReducerConstants["resetEARules"] = "resetEARules";
|
|
24
24
|
RulesReducerConstants["setIsEARuleWidgetVisible"] = "setIsEARuleWidgetVisible";
|
|
25
25
|
RulesReducerConstants["EARuleMarkResolved"] = "EARuleMarkResolved";
|
|
26
|
+
RulesReducerConstants["setInsightRules"] = "setInsightRules";
|
|
26
27
|
})(RulesReducerConstants || (RulesReducerConstants = {}));
|
|
27
|
-
// export interface IRule {
|
|
28
|
-
// rule_type?: string;
|
|
29
|
-
// rule_sub_type?: string;
|
|
30
|
-
// title?: string;
|
|
31
|
-
// cta?: string;
|
|
32
|
-
// description?: string;
|
|
33
|
-
// visible?: boolean;
|
|
34
|
-
// }
|
|
35
28
|
export const initialRulesState = {
|
|
36
29
|
customerPortalRules: {
|
|
37
30
|
sidebarSections: [AppRouteSections.PRODUCT_SELECTOR],
|
|
@@ -44,6 +37,10 @@ export const initialRulesState = {
|
|
|
44
37
|
},
|
|
45
38
|
],
|
|
46
39
|
},
|
|
40
|
+
insightRules: {
|
|
41
|
+
sidebarSections: [],
|
|
42
|
+
rules: [],
|
|
43
|
+
},
|
|
47
44
|
EARules: {
|
|
48
45
|
sidebarSections: [
|
|
49
46
|
AppRouteSections.RECOMMENDATIONS,
|
|
@@ -109,6 +106,9 @@ export const rulesReducer = (state, action) => {
|
|
|
109
106
|
const newRules = map(EARules, (rule) => rule.cta === action.payload.rule.cta ? Object.assign(Object.assign({}, rule), { resolved: true }) : rule);
|
|
110
107
|
return Object.assign(Object.assign({}, state), { EARules: Object.assign(Object.assign({}, state.EARules), { rules: newRules }) });
|
|
111
108
|
}
|
|
109
|
+
case RulesReducerConstants.setInsightRules: {
|
|
110
|
+
return Object.assign(Object.assign({}, state), { insightRules: Object.assign(Object.assign({}, state.insightRules), { rules: action.payload.rules }) });
|
|
111
|
+
}
|
|
112
112
|
default: {
|
|
113
113
|
return state;
|
|
114
114
|
}
|
|
@@ -147,3 +147,6 @@ export const setIsEARuleWidgetVisible = (dispatch, isEARuleWidgetVisible) => {
|
|
|
147
147
|
export const markEARuleResolved = (dispatch, rule) => {
|
|
148
148
|
dispatch({ type: RulesReducerConstants.EARuleMarkResolved, payload: { rule } });
|
|
149
149
|
};
|
|
150
|
+
export const setInsightRules = (dispatch, recResponse) => {
|
|
151
|
+
dispatch({ type: RulesReducerConstants.setInsightRules, payload: { rules: recResponse } });
|
|
152
|
+
};
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { IRule } from '@cee-eng/hydrajs/@types/api/pcm/edmundAbbott';
|
|
2
1
|
import { ISession, ISessionDetails, ISessionItem, ISessionResource, SessionResourceSource as ISessionResourceSource, SessionResourceVisibility as ISessionResourceVisibility } from '@cee-eng/hydrajs/@types/api/pcm/troubleshootSession';
|
|
3
2
|
import { ICasePayload } from '@cee-eng/hydrajs/@types/api/public/case';
|
|
4
3
|
import { ISolrRecommendation } from '@cee-eng/hydrajs/@types/models/solr/solr';
|
|
@@ -63,11 +62,12 @@ export declare function createSessionResourcesLocal(dispatch: SessionReducerDisp
|
|
|
63
62
|
export declare function updateSessionResourcesLocal(dispatch: SessionReducerDispatchType, activeSessionId: string, currentSessionResourceTracking: ISessionResourcesTracking, source: ISessionResourceSource, resources: ISessionResource[]): Promise<void>;
|
|
64
63
|
export declare function getSessResFromTCCategories(tcCategories: ITopContentList[], visibilityStatus: ISessionResourceVisibility): ISessionResource[];
|
|
65
64
|
export declare const getSessResTCCategory: (tcCategory: ITopContentList, visibilityStatus: ISessionResourceVisibility) => ISessionResource[];
|
|
66
|
-
export declare const getSessResTC: (tc: ITopContent, visibilityStatus: ISessionResourceVisibility, resourceEntityId?:
|
|
65
|
+
export declare const getSessResTC: (tc: ITopContent, visibilityStatus: ISessionResourceVisibility, resourceEntityId?: number, rank?: number) => ISessionResource;
|
|
67
66
|
export declare function getSessResFromRecs(recs: ISolrRecommendation[], visibilityStatus: ISessionResourceVisibility): ISessionResource[];
|
|
68
67
|
export declare const getSessResFromRec: (rec: ISolrRecommendation, visibilityStatus: ISessionResourceVisibility, rank?: number) => ISessionResource;
|
|
69
|
-
export declare const
|
|
70
|
-
export declare const
|
|
68
|
+
export declare const getSessResFromRules: (url: string, visibilityStatus: ISessionResourceVisibility, resourceEntityId?: any, rank?: number) => ISessionResource;
|
|
69
|
+
export declare const getRulesToSave: (visiterUrl: any, visitedRec: any, allPresentedRec: any) => ISessionResource[];
|
|
70
|
+
export declare const getInsightRulesToSave: (visiterUrl: any, visitedRec: any, allPresentedRec: any) => ISessionResource[];
|
|
71
71
|
export declare const getSessResFromEA: (cta: string, visibilityStatus: ISessionResourceVisibility, resourceEntityId?: any) => ISessionResource;
|
|
72
72
|
export declare const getSessResFromClusterRecommendation: (cta: string, visibilityStatus: ISessionResourceVisibility, resourceEntityId?: any) => ISessionResource;
|
|
73
73
|
export declare const getRecToSave: (visitedRec: ISolrRecommendation, allPresentedRec: ISolrRecommendation[], allDocs?: ISolrRecommendation[]) => ISessionResource[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SessionRestoreReducer.d.ts","sourceRoot":"","sources":["../../../src/reducers/SessionRestoreReducer.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"SessionRestoreReducer.d.ts","sourceRoot":"","sources":["../../../src/reducers/SessionRestoreReducer.ts"],"names":[],"mappings":"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"}
|
|
@@ -336,25 +336,20 @@ export function updateSessionResourcesLocal(dispatch, activeSessionId, currentSe
|
|
|
336
336
|
}
|
|
337
337
|
});
|
|
338
338
|
}
|
|
339
|
-
// Session Resource Helper Functions
|
|
340
|
-
// Top Content Category Helper Function
|
|
341
339
|
export function getSessResFromTCCategories(tcCategories, visibilityStatus) {
|
|
342
340
|
const toReturn = [];
|
|
343
341
|
forEach(tcCategories, (tcCategory) => toReturn.push(...getSessResTCCategory(tcCategory, visibilityStatus)));
|
|
344
342
|
return toReturn;
|
|
345
343
|
}
|
|
346
|
-
// Top Content Helper Function Call
|
|
347
344
|
export const getSessResTCCategory = (tcCategory, visibilityStatus) => {
|
|
348
345
|
const toReturn = [];
|
|
349
346
|
forEach(tcCategory.content, (tc) => toReturn.push(getSessResTC(tc, visibilityStatus)));
|
|
350
347
|
return toReturn;
|
|
351
348
|
};
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
return (Object.assign(Object.assign({ visibilityStatus }, ((tc === null || tc === void 0 ? void 0 : tc.topContentId) && { resourceEntityId: `${(_a = tc === null || tc === void 0 ? void 0 : tc.topContentId) !== null && _a !== void 0 ? _a : null}` })), { type: getResTypeFromUrl((_b = tc === null || tc === void 0 ? void 0 : tc.contentUrl) !== null && _b !== void 0 ? _b : ''), url: (_c = tc === null || tc === void 0 ? void 0 : tc.contentUrl) !== null && _c !== void 0 ? _c : '', rank: (_d = tc === null || tc === void 0 ? void 0 : tc.contentRank) !== null && _d !== void 0 ? _d : 0 }));
|
|
349
|
+
export const getSessResTC = (tc, visibilityStatus, resourceEntityId, rank) => {
|
|
350
|
+
var _a, _b, _c;
|
|
351
|
+
return (Object.assign(Object.assign({ visibilityStatus }, ((tc === null || tc === void 0 ? void 0 : tc.topContentId) && { resourceEntityId: `${(_a = tc === null || tc === void 0 ? void 0 : tc.topContentId) !== null && _a !== void 0 ? _a : null}` })), { type: getResTypeFromUrl((_b = tc === null || tc === void 0 ? void 0 : tc.contentUrl) !== null && _b !== void 0 ? _b : ''), url: (_c = tc === null || tc === void 0 ? void 0 : tc.contentUrl) !== null && _c !== void 0 ? _c : '', rank: rank || 0 }));
|
|
356
352
|
};
|
|
357
|
-
// Recommendations Helper Function Call
|
|
358
353
|
export function getSessResFromRecs(recs, visibilityStatus) {
|
|
359
354
|
const toReturn = [];
|
|
360
355
|
forEach(recs, (rec) => toReturn.push(getSessResFromRec(rec, visibilityStatus)));
|
|
@@ -362,13 +357,36 @@ export function getSessResFromRecs(recs, visibilityStatus) {
|
|
|
362
357
|
}
|
|
363
358
|
// Recommendations Helper Function
|
|
364
359
|
export const getSessResFromRec = (rec, visibilityStatus, rank) => (Object.assign(Object.assign({ visibilityStatus }, (rec.id && { resourceEntityId: rec.id })), { type: getResTypeFromUrl(rec.view_uri), url: rec.view_uri, rank }));
|
|
365
|
-
|
|
366
|
-
export const
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
360
|
+
export const getSessResFromRules = (url, visibilityStatus, resourceEntityId, rank) => (Object.assign(Object.assign({ visibilityStatus }, (resourceEntityId && { resourceEntityId })), { type: getResTypeFromUrl(url), url: url, rank: rank || 0 }));
|
|
361
|
+
export const getRulesToSave = (visiterUrl, visitedRec, allPresentedRec) => {
|
|
362
|
+
return map(allPresentedRec, (rec, i) => {
|
|
363
|
+
let visStatus, url;
|
|
364
|
+
if (rec.rule_id === visitedRec.rule_id) {
|
|
365
|
+
url = visiterUrl;
|
|
366
|
+
visStatus = SessionResourceVisibility.VISITED;
|
|
367
|
+
}
|
|
368
|
+
else {
|
|
369
|
+
visStatus = SessionResourceVisibility.PRESENTED;
|
|
370
|
+
url = null;
|
|
371
|
+
}
|
|
372
|
+
const rank = i + 1;
|
|
373
|
+
return getSessResFromRules(url, visStatus, rec.rule_id, rank);
|
|
374
|
+
});
|
|
375
|
+
};
|
|
376
|
+
export const getInsightRulesToSave = (visiterUrl, visitedRec, allPresentedRec) => {
|
|
377
|
+
return map(allPresentedRec, (rec, i) => {
|
|
378
|
+
let visStatus, url;
|
|
379
|
+
if (rec.id === visitedRec.id) {
|
|
380
|
+
url = visiterUrl;
|
|
381
|
+
visStatus = SessionResourceVisibility.VISITED;
|
|
382
|
+
}
|
|
383
|
+
else {
|
|
384
|
+
visStatus = SessionResourceVisibility.PRESENTED;
|
|
385
|
+
url = null;
|
|
386
|
+
}
|
|
387
|
+
const rank = i + 1;
|
|
388
|
+
return getSessResFromRules(url, visStatus, rec.id, rank);
|
|
389
|
+
});
|
|
372
390
|
};
|
|
373
391
|
// EARules Helper Function
|
|
374
392
|
export const getSessResFromEA = (cta, visibilityStatus, resourceEntityId) => (Object.assign(Object.assign({ visibilityStatus }, (resourceEntityId && { resourceEntityId })), { type: getResTypeFromUrl(`${window.location.origin}${cta}`), url: cta.startsWith('http') ? cta : `${window.location.origin}/${cta}` }));
|
package/lib/esm/scss/_main.scss
CHANGED
|
@@ -923,5 +923,15 @@ div.pf-c-alert.ea-rule-alert > div.pf-c-alert__description > p {
|
|
|
923
923
|
}
|
|
924
924
|
|
|
925
925
|
.anchor-tag-button {
|
|
926
|
-
padding:
|
|
926
|
+
padding: 0px;
|
|
927
|
+
}
|
|
928
|
+
|
|
929
|
+
.anchor-tag-link-pl {
|
|
930
|
+
padding-left: 0px;
|
|
931
|
+
font-size: 14px;
|
|
932
|
+
display: inline-block;
|
|
933
|
+
}
|
|
934
|
+
|
|
935
|
+
.anchor-tag-link-td-none {
|
|
936
|
+
text-decoration: none;
|
|
927
937
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rh-support/troubleshoot",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.82",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public",
|
|
6
6
|
"registry": "https://registry.npmjs.org"
|
|
@@ -74,11 +74,11 @@
|
|
|
74
74
|
"@progress/kendo-drawing": "^1.6.0",
|
|
75
75
|
"@progress/kendo-react-pdf": "^3.12.0",
|
|
76
76
|
"@rh-support/api": "0.3.10",
|
|
77
|
-
"@rh-support/components": "1.1.
|
|
78
|
-
"@rh-support/react-context": "0.2.
|
|
77
|
+
"@rh-support/components": "1.1.51",
|
|
78
|
+
"@rh-support/react-context": "0.2.51",
|
|
79
79
|
"@rh-support/types": "0.2.0",
|
|
80
|
-
"@rh-support/user-permissions": "0.2.
|
|
81
|
-
"@rh-support/utils": "0.2.
|
|
80
|
+
"@rh-support/user-permissions": "0.2.41",
|
|
81
|
+
"@rh-support/utils": "0.2.31",
|
|
82
82
|
"@types/react-redux": "^7.1.12",
|
|
83
83
|
"@types/redux": "^3.6.0",
|
|
84
84
|
"@webcomponents/webcomponentsjs": "^2.2.10",
|
|
@@ -143,5 +143,5 @@
|
|
|
143
143
|
"not ie <= 11",
|
|
144
144
|
"not op_mini all"
|
|
145
145
|
],
|
|
146
|
-
"gitHead": "
|
|
146
|
+
"gitHead": "ded962055f61a00447aa7aff04d8ec7425429d0d"
|
|
147
147
|
}
|