@rh-support/troubleshoot 2.6.107 → 2.6.118

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 (79) hide show
  1. package/lib/esm/components/AccountInfo/AccountSelector.js +1 -1
  2. package/lib/esm/components/AccountInfo/css/accountSelector.css +2 -3
  3. package/lib/esm/components/CaseEditView/Case.d.ts.map +1 -1
  4. package/lib/esm/components/CaseEditView/Case.js +1 -1
  5. package/lib/esm/components/CaseEditView/CaseOverview/CaseOwnerInfo.d.ts.map +1 -1
  6. package/lib/esm/components/CaseEditView/CaseOverview/CaseOwnerInfo.js +1 -1
  7. package/lib/esm/components/CaseEditView/CaseOverview/CaseType.d.ts.map +1 -1
  8. package/lib/esm/components/CaseEditView/CaseOverview/CaseType.js +4 -2
  9. package/lib/esm/components/CaseEditView/CaseOverview/index.js +1 -1
  10. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseOpenshiftClusterId/CaseOpenShiftPopover.js +1 -1
  11. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/ProductVersion.d.ts.map +1 -1
  12. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/ProductVersion.js +2 -4
  13. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/PostComment.d.ts.map +1 -1
  14. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/PostComment.js +1 -2
  15. package/lib/esm/components/CaseEditView/Tabs/CaseHistory/Timeline.css +33 -13
  16. package/lib/esm/components/CaseEditView/Tabs/CaseSummary/CaseSummary.js +3 -3
  17. package/lib/esm/components/CaseEditView/Tabs/CaseSummary/CaseSummaryErrorMessage.js +1 -1
  18. package/lib/esm/components/CaseInformation/Description.d.ts.map +1 -1
  19. package/lib/esm/components/CaseInformation/Description.js +3 -1
  20. package/lib/esm/components/CaseInformation/Severity.d.ts.map +1 -1
  21. package/lib/esm/components/CaseInformation/Severity.js +1 -1
  22. package/lib/esm/components/CaseInformation/SupportLevel.d.ts.map +1 -1
  23. package/lib/esm/components/CaseInformation/SupportLevel.js +1 -1
  24. package/lib/esm/components/CaseManagement/OpenshiftDropdownV4.d.ts.map +1 -1
  25. package/lib/esm/components/CaseManagement/OpenshiftDropdownV4.js +6 -12
  26. package/lib/esm/components/OpenCase/OpenCase.d.ts.map +1 -1
  27. package/lib/esm/components/OpenCase/OpenCase.js +2 -8
  28. package/lib/esm/components/ProductSelector/AllProductsSelector.d.ts.map +1 -1
  29. package/lib/esm/components/ProductSelector/AllProductsSelector.js +6 -18
  30. package/lib/esm/components/ProductSelector/ProductSelector.d.ts.map +1 -1
  31. package/lib/esm/components/ProductSelector/ProductSelector.js +5 -12
  32. package/lib/esm/components/Recommendations/ClusterRecommendationItems.d.ts +0 -2
  33. package/lib/esm/components/Recommendations/ClusterRecommendationItems.d.ts.map +1 -1
  34. package/lib/esm/components/Recommendations/ClusterRecommendationItems.js +13 -16
  35. package/lib/esm/components/Recommendations/ClusterRecommendations.d.ts.map +1 -1
  36. package/lib/esm/components/Recommendations/ClusterRecommendations.js +4 -1
  37. package/lib/esm/components/Recommendations/Recommendations.d.ts.map +1 -1
  38. package/lib/esm/components/Recommendations/Recommendations.js +38 -38
  39. package/lib/esm/components/RemoteRider/RemoteRiderAcceptanceModal.d.ts.map +1 -1
  40. package/lib/esm/components/Review/Review.d.ts.map +1 -1
  41. package/lib/esm/components/Review/Review.js +1 -5
  42. package/lib/esm/components/Suggestions/TopContentSidebar.d.ts +3 -0
  43. package/lib/esm/components/Suggestions/TopContentSidebar.d.ts.map +1 -0
  44. package/lib/esm/components/Suggestions/TopContentSidebar.js +26 -0
  45. package/lib/esm/components/TroubleshootSection/AskRedHat.js +1 -1
  46. package/lib/esm/components/TroubleshootSection/TroubleshootSection.d.ts +9 -0
  47. package/lib/esm/components/TroubleshootSection/TroubleshootSection.d.ts.map +1 -1
  48. package/lib/esm/components/TroubleshootSection/TroubleshootSection.js +150 -44
  49. package/lib/esm/components/shared/useIsSectionValid.d.ts.map +1 -1
  50. package/lib/esm/components/shared/useIsSectionValid.js +26 -65
  51. package/lib/esm/components/wizardLayout/WizardAside.d.ts.map +1 -1
  52. package/lib/esm/components/wizardLayout/WizardAside.js +18 -9
  53. package/lib/esm/components/wizardLayout/WizardMain.d.ts.map +1 -1
  54. package/lib/esm/components/wizardLayout/WizardMain.js +110 -64
  55. package/lib/esm/components/wizardLayout/WizardNavigation.d.ts.map +1 -1
  56. package/lib/esm/components/wizardLayout/WizardNavigation.js +59 -53
  57. package/lib/esm/css/AskRedHat.css +9 -2
  58. package/lib/esm/css/app.css +1 -1
  59. package/lib/esm/hooks/useAB.d.ts +22 -0
  60. package/lib/esm/hooks/useAB.d.ts.map +1 -0
  61. package/lib/esm/hooks/useAB.js +37 -0
  62. package/lib/esm/hooks/useWizard.d.ts +4 -0
  63. package/lib/esm/hooks/useWizard.d.ts.map +1 -1
  64. package/lib/esm/hooks/useWizard.js +20 -6
  65. package/lib/esm/reducers/AIResponseConstNTypes.d.ts +17 -2
  66. package/lib/esm/reducers/AIResponseConstNTypes.d.ts.map +1 -1
  67. package/lib/esm/reducers/AIResponseConstNTypes.js +3 -0
  68. package/lib/esm/reducers/AIResponseReducer.d.ts +2 -0
  69. package/lib/esm/reducers/AIResponseReducer.d.ts.map +1 -1
  70. package/lib/esm/reducers/AIResponseReducer.js +17 -0
  71. package/lib/esm/reducers/CaseConstNTypes.js +3 -3
  72. package/lib/esm/reducers/CaseDiscussionTabReducer.js +1 -1
  73. package/lib/esm/reducers/CaseHelpers.d.ts +1 -2
  74. package/lib/esm/reducers/CaseHelpers.d.ts.map +1 -1
  75. package/lib/esm/reducers/CaseHelpers.js +1 -11
  76. package/lib/esm/reducers/RouteConstNTypes.d.ts.map +1 -1
  77. package/lib/esm/reducers/RouteConstNTypes.js +0 -1
  78. package/lib/esm/scss/_pf-overrides.scss +2 -23
  79. package/package.json +9 -7
@@ -17,10 +17,12 @@ import isEmpty from 'lodash/isEmpty';
17
17
  import isEqual from 'lodash/isEqual';
18
18
  import React, { useContext, useEffect, useRef, useState } from 'react';
19
19
  import { Trans, useTranslation } from 'react-i18next';
20
+ import { useAIResponseState } from '../../context/AIResponseContext';
20
21
  import { useCaseDispatch, useCaseSelector } from '../../context/CaseContext';
21
22
  import { RecommendationStateContext } from '../../context/RecommendationContext';
22
23
  import { RouteContext, RouteDispatchContext } from '../../context/RouteContext';
23
24
  import { SessionRestoreStateContext } from '../../context/SessionRestoreContext';
25
+ import { useAB } from '../../hooks/useAB';
24
26
  import { excludedCaseTypesforARH } from '../../reducers/CaseConstNTypes';
25
27
  import { setCaseState } from '../../reducers/CaseReducer';
26
28
  import { AppRouteSections } from '../../reducers/RouteConstNTypes';
@@ -32,22 +34,21 @@ const defaultProps = {};
32
34
  function WizardNavigation(props) {
33
35
  var _a, _b;
34
36
  const { t } = useTranslation();
37
+ const { isVariationA } = useAB();
35
38
  const canCreateCase = useCanCreateCase();
36
39
  const { recommendationState } = useContext(RecommendationStateContext);
40
+ const aiResponseState = useAIResponseState();
37
41
  const { routeState: { activeSection, isNextBtnClickedToShowValidationError, noValidEntitlement, isSearchIntent, isCaseCreate, }, } = useContext(RouteContext);
38
42
  const { globalMetadataState: { loggedInUsersAccount, allProducts, navBarRef }, } = useContext(GlobalMetadataStateContext);
39
- const { caseState, ABTestVariation, issue, summary, product, version, caseType, manageSupportCases } = useCaseSelector((state) => ({
43
+ const { caseState, issue, summary, product, version, caseType } = useCaseSelector((state) => ({
40
44
  caseState: state,
41
45
  issue: state.caseDetails.issue,
42
46
  summary: state.caseDetails.summary,
43
- ABTestVariation: state.ABTestVariation,
44
47
  product: state.caseDetails.product,
45
48
  version: state.caseDetails.version,
46
49
  caseType: state.caseDetails.caseType,
47
50
  manageSupportCases: state.selectedOwner.data.manageSupportCases,
48
51
  }), isEqual);
49
- const isATestvariation = ABTestVariation === 'A';
50
- const isBTestvariation = ABTestVariation === 'B' || isEmpty(ABTestVariation);
51
52
  // To check if the user is entitled or not
52
53
  const isEntitledProduct = (_b = find((_a = allProducts === null || allProducts === void 0 ? void 0 : allProducts.data) === null || _a === void 0 ? void 0 : _a.productsResult, (p) => p.product === caseState.caseDetails.product)) === null || _b === void 0 ? void 0 : _b.isEntitledProduct;
53
54
  const dispatchToRouteReducer = useContext(RouteDispatchContext);
@@ -78,18 +79,37 @@ function WizardNavigation(props) {
78
79
  behavior: 'instant',
79
80
  });
80
81
  }
82
+ // Reset scroll state when navigating based on isVariationA
83
+ const resetScrollSection = isVariationA
84
+ ? AppRouteSections.RESOURCES
85
+ : isCaseCreate
86
+ ? AppRouteSections.SUMMARIZE
87
+ : AppRouteSections.TROUBLESHOOT;
88
+ if (props.activeStep.id === resetScrollSection) {
89
+ setHasUserScrolled(false);
90
+ }
81
91
  // eslint-disable-next-line react-hooks/exhaustive-deps
82
92
  }, [previousStep === null || previousStep === void 0 ? void 0 : previousStep.id, props.activeStep.id]);
83
93
  const [hasUserScrolled, setHasUserScrolled] = useState(false);
94
+ const [shouldOpenChatbot, setShouldOpenChatbot] = useState(false);
84
95
  useEffect(() => {
85
- var _a;
96
+ var _a, _b;
86
97
  if (activeSection !== AppRouteSections.RESOURCES && props.isAIChatMode) {
87
98
  (_a = props.setIsAIChatMode) === null || _a === void 0 ? void 0 : _a.call(props, false);
88
99
  }
100
+ if (activeSection === AppRouteSections.RESOURCES && shouldOpenChatbot) {
101
+ (_b = props.setIsAIChatMode) === null || _b === void 0 ? void 0 : _b.call(props, true);
102
+ setShouldOpenChatbot(false);
103
+ }
89
104
  // eslint-disable-next-line react-hooks/exhaustive-deps
90
- }, [activeSection]);
105
+ }, [activeSection, shouldOpenChatbot]);
91
106
  useEffect(() => {
92
- if (props.activeStep.id !== (isCaseCreate ? AppRouteSections.SUMMARIZE : AppRouteSections.TROUBLESHOOT)) {
107
+ const validSteps = isVariationA
108
+ ? [AppRouteSections.RESOURCES]
109
+ : isCaseCreate
110
+ ? [AppRouteSections.SUMMARIZE]
111
+ : [AppRouteSections.TROUBLESHOOT];
112
+ if (!validSteps.includes(props.activeStep.id)) {
93
113
  return;
94
114
  }
95
115
  const observer = new IntersectionObserver(([entry]) => {
@@ -147,13 +167,21 @@ function WizardNavigation(props) {
147
167
  observer.unobserve(resultsRowElement);
148
168
  }
149
169
  };
150
- }, [recommendationState.numFound, hasUserScrolled, props, isCaseCreate]);
170
+ }, [recommendationState.numFound, hasUserScrolled, props, isCaseCreate, isVariationA]);
151
171
  const onNext = (e) => {
152
172
  var _a;
153
173
  updateisNextBtnClickedToShowValidationError(dispatchToRouteReducer, true);
154
- //handle the new changes for 13406:
155
- if (props.activeStep.id === (isCaseCreate ? AppRouteSections.SUMMARIZE : AppRouteSections.TROUBLESHOOT) &&
156
- recommendationState.numFound > 2) {
174
+ if (isVariationA &&
175
+ activeSection === (isCaseCreate ? AppRouteSections.SUMMARIZE : AppRouteSections.TROUBLESHOOT)) {
176
+ setShouldOpenChatbot(true);
177
+ }
178
+ // Handle scroll behavior based on isVariationA
179
+ const scrollSection = isVariationA
180
+ ? AppRouteSections.RESOURCES
181
+ : isCaseCreate
182
+ ? AppRouteSections.SUMMARIZE
183
+ : AppRouteSections.TROUBLESHOOT;
184
+ if (props.activeStep.id === scrollSection && recommendationState.numFound > 2) {
157
185
  if (!hasUserScrolled) {
158
186
  scrollIntoView(props.resultsRowRef, {
159
187
  navBarRef,
@@ -223,60 +251,38 @@ function WizardNavigation(props) {
223
251
  const isLoadingARH = props.isLoadingARH &&
224
252
  props.activeStep.id === AppRouteSections.RESOURCES &&
225
253
  !excludedCaseTypesforARH.includes(caseType || '');
226
- if (isBTestvariation) {
227
- let value = isLoadingARH ||
228
- ((isEmpty(summary) || isEmpty(issue) || isEmpty(product) || isEmpty(version)) &&
229
- props.activeStep.id ===
230
- (isCaseCreate ? AppRouteSections.SUMMARIZE : AppRouteSections.TROUBLESHOOT)) ||
231
- (!isEntitledProductLocal && props.activeStep.nextButtonLabel === 'Get support') ||
232
- props.activeStep.nextButtonLabel === 'Troubleshoot' ||
233
- (!isSectionValidFn(props.activeStep.id) && isNextBtnClickedToShowValidationError) ||
234
- (noValidEntitlement && props.activeStep.id != AppRouteSections.TROUBLESHOOT) ||
235
- (!manageSupportCases && props.activeStep.id === AppRouteSections.GET_SUPPORT) ||
236
- recommendationState.isLoadingRecommendations;
237
- return value;
238
- }
239
- else if (isATestvariation) {
240
- let value = isLoadingARH ||
241
- ((isEmpty(summary) || isEmpty(issue) || isEmpty(product) || isEmpty(version)) &&
242
- props.activeStep.id ===
243
- (isCaseCreate ? AppRouteSections.SUMMARIZE : AppRouteSections.TROUBLESHOOT)) ||
244
- (!isEntitledProductLocal && props.activeStep.nextButtonLabel === 'Get support') ||
245
- props.activeStep.nextButtonLabel === 'Troubleshoot' ||
246
- (!isSectionValidFn(props.activeStep.id) && isNextBtnClickedToShowValidationError) ||
247
- (noValidEntitlement && props.activeStep.id != AppRouteSections.TROUBLESHOOT) ||
248
- (!manageSupportCases && props.activeStep.id === AppRouteSections.GET_SUPPORT) ||
249
- recommendationState.isLoadingRecommendations;
250
- return value;
251
- }
252
- else if (isATestvariation && !isCaseCreate) {
253
- let value = isLoadingARH ||
254
- isEmpty(summary) ||
255
- isEmpty(issue) ||
256
- (!isEntitledProductLocal && props.activeStep.nextButtonLabel === 'Get support') ||
257
- (!isSectionValidFn(props.activeStep.id) && isNextBtnClickedToShowValidationError) ||
258
- (noValidEntitlement && props.activeStep.id != AppRouteSections.TROUBLESHOOT) ||
259
- (!manageSupportCases && props.activeStep.id === AppRouteSections.GET_SUPPORT) ||
260
- recommendationState.isLoadingRecommendations;
261
- return value;
262
- }
254
+ const shouldCheckRecommendationsLoading = !isVariationA && recommendationState.isLoadingRecommendations;
255
+ let value = isLoadingARH ||
256
+ ((isEmpty(summary) || isEmpty(issue) || isEmpty(product) || isEmpty(version)) &&
257
+ props.activeStep.id === (isCaseCreate ? AppRouteSections.SUMMARIZE : AppRouteSections.TROUBLESHOOT)) ||
258
+ (!isEntitledProductLocal && props.activeStep.nextButtonLabel === 'Get support') ||
259
+ props.activeStep.nextButtonLabel === 'Troubleshoot' ||
260
+ (isSectionValidFn && !isSectionValidFn(props.activeStep.id) && isNextBtnClickedToShowValidationError) ||
261
+ noValidEntitlement ||
262
+ shouldCheckRecommendationsLoading;
263
+ return value;
263
264
  };
264
265
  const isDisabledGoBack = () => {
265
- if (isBTestvariation || isEmpty(ABTestVariation))
266
- return false;
267
- if (isATestvariation && props.activeStep.id === 'get-support') {
266
+ if (props.activeStep.id === 'get-support') {
268
267
  return isEmpty(product) || isEmpty(version);
269
268
  }
269
+ return false;
270
270
  };
271
+ const shouldShowNewARHFlowFooterButtons = isVariationA && props.isAIChatMode && activeSection === AppRouteSections.RESOURCES;
272
+ const shouldShowBackToAIButton = isVariationA && !props.isAIChatMode && activeSection === AppRouteSections.RESOURCES;
271
273
  // To handle entitled products
272
274
  return (React.createElement(React.Fragment, null,
273
275
  React.createElement(WizardFooterWrapper, null,
274
- props.isAIChatMode && activeSection === AppRouteSections.RESOURCES ? (isCaseCreate ? (React.createElement("span", null,
276
+ shouldShowNewARHFlowFooterButtons ? (React.createElement(React.Fragment, null,
277
+ props.activeStep.order !== 0 && (React.createElement("button", { onClick: () => onBack({}), className: "btn btn-app btn-open-white main-nav-button", "data-tracking-id": `prev-of-${activeSection}`, type: "button" }, t('Go back'))),
278
+ React.createElement("button", { onClick: () => { var _a; return (_a = props.setIsAIChatMode) === null || _a === void 0 ? void 0 : _a.call(props, false); }, className: "btn btn-app btn-primary main-nav-button", type: "button", disabled: !aiResponseState.hasChunkReceived }, t('See more resources')))) : props.isAIChatMode && activeSection === AppRouteSections.RESOURCES ? (isCaseCreate ? (React.createElement("span", null,
275
279
  React.createElement(Trans, { i18nKey: "<span>Return to</span> <button>case creation</button>", components: {
276
280
  span: React.createElement("span", { className: "return-to-case-text" }),
277
281
  button: (React.createElement(Button, { className: "return-to-case-btn", variant: "link", component: "a", onClick: props.onReturnToCaseCreation })),
278
282
  } }))) : (React.createElement(Button, { onClick: props.onReturnToCaseCreation, variant: "link", className: "return-to-resources-btn" }, t('Back to resources')))) : (React.createElement(React.Fragment, null,
279
- props.activeStep.order !== 0 && (React.createElement("button", { onClick: () => onBack({}), className: "btn btn-app btn-open-white main-nav-button", "data-tracking-id": `prev-of-${activeSection}`, type: "button", disabled: isDisabledGoBack() }, t('Go back'))),
283
+ props.activeStep.order !== 0 && (React.createElement("button", { onClick: shouldShowBackToAIButton
284
+ ? () => { var _a; return (_a = props.setIsAIChatMode) === null || _a === void 0 ? void 0 : _a.call(props, true); }
285
+ : () => onBack({}), className: "btn btn-app btn-open-white main-nav-button", "data-tracking-id": `prev-of-${activeSection}`, type: "button", disabled: !shouldShowBackToAIButton && isDisabledGoBack() }, shouldShowBackToAIButton ? t('Back to AI') : t('Go back'))),
280
286
  React.createElement("button", { disabled: nextButtonDisabledLogic(), onClick: onNext, className: "btn btn-app btn-primary main-nav-button", "data-tracking-id": `next-of-${activeSection}`, type: "button" }, t(props.activeStep.nextButtonLabel)),
281
287
  activeSection === AppRouteSections.RESOURCES && isFileRecommendationsTriggered && (React.createElement(Button, { onClick: handleFileRecsSelfSolved, variant: ButtonVariant.secondary, className: "issue-solved-button solved-issue-button", "data-tracking-id": "troubleshoot-self-solved-issue" }, t('I solved my issue'))))),
282
288
  React.createElement(RecommendationFeedbackModal, { isModalOpen: isRecsModalVisible, handleModalToggle: onRecsFeedbackModalToggle, modalContent: t(`Great, we're glad that resolved your issue`) }),
@@ -331,7 +331,7 @@
331
331
  }
332
332
 
333
333
  .pf-chatbot--fullscreen .pf-chatbot-container {
334
- height: calc(100vh - 255px) !important;
334
+ height: calc(100vh - 277px) !important;
335
335
  }
336
336
 
337
337
  .fullscreen-chat-footer {
@@ -339,7 +339,7 @@
339
339
  bottom: 0 !important;
340
340
  left: 0 !important;
341
341
  right: 0 !important;
342
- height: 42px !important;
342
+ height: 57px !important;
343
343
  background: #f6f6f6 !important;
344
344
  border-top: 1px solid #d1d1d1 !important;
345
345
  align-items: center !important;
@@ -354,6 +354,13 @@ body:has(.pf-chatbot--fullscreen) .pf-v6-c-wizard__footer {
354
354
 
355
355
  body:has(.pf-chatbot--fullscreen) .fullscreen-chat-footer {
356
356
  display: flex !important;
357
+ gap: 10px;
358
+ }
359
+
360
+ .fullscreen-chat-footer .btn.btn-app {
361
+ padding: 0.375rem 1rem;
362
+ border-radius: var(--global-border-radius-pill, 999px);
363
+ border: var(--global-border-width-regular, 1px) solid var(--global-border-color-brand-default, #06c);
357
364
  }
358
365
 
359
366
  body:has(.pf-chatbot--fullscreen) .main-section {
@@ -449,7 +449,7 @@ input[type='checkbox'] {
449
449
  .comment-plaintext.reset-pre-text {
450
450
  font-family: 'Red Hat Display', 'RedHatDisplay', 'Helvetica Neue', 'Arial', 'sans-serif';
451
451
  text-rendering: auto;
452
- font-weight: 300;
452
+ font-weight: 500;
453
453
  font-size: 1.12rem;
454
454
  line-height: 1.5em;
455
455
  }
@@ -0,0 +1,22 @@
1
+ export interface IUseABOptions {
2
+ defaultVariation?: ABEnum;
3
+ }
4
+ export interface IUseABReturn {
5
+ variation: ABEnum;
6
+ isVariationA: boolean;
7
+ isVariationB: boolean;
8
+ }
9
+ export interface IUseABComponentOptions extends IUseABOptions {
10
+ A: JSX.Element | null;
11
+ B: JSX.Element | null;
12
+ }
13
+ export interface IUseABComponentReturn extends IUseABReturn {
14
+ component: JSX.Element | null;
15
+ }
16
+ export declare enum ABEnum {
17
+ A = "A",
18
+ B = "B"
19
+ }
20
+ export declare function useAB(options?: IUseABOptions): IUseABReturn;
21
+ export declare function useABComponent(options: IUseABComponentOptions): IUseABComponentReturn;
22
+ //# sourceMappingURL=useAB.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useAB.d.ts","sourceRoot":"","sources":["../../../src/hooks/useAB.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,aAAa;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,YAAY;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,OAAO,CAAC;IACtB,YAAY,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,sBAAuB,SAAQ,aAAa;IACzD,CAAC,EAAE,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC;IACtB,CAAC,EAAE,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC;CACzB;AAED,MAAM,WAAW,qBAAsB,SAAQ,YAAY;IACvD,SAAS,EAAE,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC;CACjC;AAED,oBAAY,MAAM;IACd,CAAC,MAAM;IACP,CAAC,MAAM;CACV;AAED,wBAAgB,KAAK,CAAC,OAAO,GAAE,aAAkB,GAAG,YAAY,CAkC/D;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,sBAAsB,GAAG,qBAAqB,CAMrF"}
@@ -0,0 +1,37 @@
1
+ import { GlobalMetadataStateContext } from '@rh-support/react-context';
2
+ import { getConfigField, PCM_CONFIG_FIELD_TYPE } from '@rh-support/utils';
3
+ import { useContext, useEffect, useState } from 'react';
4
+ export var ABEnum;
5
+ (function (ABEnum) {
6
+ ABEnum["A"] = "A";
7
+ ABEnum["B"] = "B";
8
+ })(ABEnum || (ABEnum = {}));
9
+ export function useAB(options = {}) {
10
+ const { globalMetadataState: { pcmConfig, loggedInUsersAccount }, } = useContext(GlobalMetadataStateContext);
11
+ const [testVariation, setTestVariation] = useState((options === null || options === void 0 ? void 0 : options.defaultVariation) || ABEnum.A);
12
+ useEffect(() => {
13
+ if (loggedInUsersAccount.data.hasConfirmedStatesideSupport || loggedInUsersAccount.data.secureSupport) {
14
+ setTestVariation(ABEnum.B);
15
+ return;
16
+ }
17
+ const variantAAccountNumbers = getConfigField(pcmConfig.data, 'askRedHatAccountsA', PCM_CONFIG_FIELD_TYPE.STRING);
18
+ const userAccountNumber = loggedInUsersAccount.data.accountNumber;
19
+ const isUserInVariantAAccountNumbers = variantAAccountNumbers === null || variantAAccountNumbers === void 0 ? void 0 : variantAAccountNumbers.includes(userAccountNumber);
20
+ if ((variantAAccountNumbers === null || variantAAccountNumbers === void 0 ? void 0 : variantAAccountNumbers.length) && userAccountNumber && isUserInVariantAAccountNumbers) {
21
+ setTestVariation(ABEnum.A);
22
+ }
23
+ else {
24
+ setTestVariation(ABEnum.B);
25
+ }
26
+ // eslint-disable-next-line react-hooks/exhaustive-deps
27
+ }, [pcmConfig.data, loggedInUsersAccount.data.accountNumber]);
28
+ return {
29
+ variation: testVariation,
30
+ isVariationA: testVariation === ABEnum.A,
31
+ isVariationB: testVariation === ABEnum.B,
32
+ };
33
+ }
34
+ export function useABComponent(options) {
35
+ const variationObject = useAB(options);
36
+ return Object.assign(Object.assign({}, variationObject), { component: variationObject.isVariationA ? options.A : options.B });
37
+ }
@@ -1,3 +1,4 @@
1
+ import React from 'react';
1
2
  interface IProps {
2
3
  userSeenRecommendationsfn?: any;
3
4
  userSeenRecommendationsValue: boolean;
@@ -11,6 +12,9 @@ interface IProps {
11
12
  aiServicesAvailable: boolean;
12
13
  isSecureSupport?: boolean;
13
14
  hasConfirmedStatesideSupport?: boolean;
15
+ onBack?: (e: React.MouseEvent<HTMLButtonElement>) => void;
16
+ haveARHFieldsChanged?: boolean;
17
+ resetARHFieldsChanged?: () => void;
14
18
  }
15
19
  export declare function useWizard(routeProps: any, props?: IProps): {
16
20
  getStepsSequece: (showRest?: boolean) => any;
@@ -1 +1 @@
1
- {"version":3,"file":"useWizard.d.ts","sourceRoot":"","sources":["../../../src/hooks/useWizard.tsx"],"names":[],"mappings":"AAgCA,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;IAC3B,YAAY,EAAE,OAAO,CAAC;IACtB,eAAe,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAC1C,iBAAiB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC/B,mBAAmB,EAAE,OAAO,CAAC;IAC7B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,4BAA4B,CAAC,EAAE,OAAO,CAAC;CAC1C;AAED,wBAAgB,SAAS,CAAC,UAAU,KAAA,EAAE,KAAK,CAAC,EAAE,MAAM;iCAqSb,OAAO;EAwC7C"}
1
+ {"version":3,"file":"useWizard.d.ts","sourceRoot":"","sources":["../../../src/hooks/useWizard.tsx"],"names":[],"mappings":"AAKA,OAAO,KAA+B,MAAM,OAAO,CAAC;AA4BpD,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;IAC3B,YAAY,EAAE,OAAO,CAAC;IACtB,eAAe,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAC1C,iBAAiB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC/B,mBAAmB,EAAE,OAAO,CAAC;IAC7B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,4BAA4B,CAAC,EAAE,OAAO,CAAC;IACvC,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC;IAC1D,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,qBAAqB,CAAC,EAAE,MAAM,IAAI,CAAC;CACtC;AAED,wBAAgB,SAAS,CAAC,UAAU,KAAA,EAAE,KAAK,CAAC,EAAE,MAAM;iCAwTb,OAAO;EAwC7C"}
@@ -20,7 +20,9 @@ import { RouteContext } from '../context/RouteContext';
20
20
  import { TCStateContext } from '../context/TopContentContext';
21
21
  import { AppRouteSections, openCaseNonTechnicalSequence, openCaseRouteSectionSequence, searchIntentRouteSectionSequence, troubleshootNonTechnicalSequence, troubleshootRouteSectionsSequence, } from '../reducers/RouteConstNTypes';
22
22
  import RouteUtils from '../utils/routeUtils';
23
+ import { useAB } from './useAB';
23
24
  export function useWizard(routeProps, props) {
25
+ const { isVariationA } = useAB();
24
26
  const { routeState: { activeSection, isSearchIntent, isNextBtnClickedToShowValidationError }, } = useContext(RouteContext);
25
27
  // state value was available later - reading dirctly from url
26
28
  const isCaseCreate = RouteUtils.getQueryParams(routeProps).caseCreate === 'true';
@@ -69,17 +71,29 @@ export function useWizard(routeProps, props) {
69
71
  alertMessage(),
70
72
  !props.isSecureSupport && !props.hasConfirmedStatesideSupport && aiInformationAlert(),
71
73
  React.createElement(ProductSelector, { routeProps: routeProps, userSeenRecommendations: props.userSeenRecommendationsfn, userClickedNextonRecommendations: props.userClickedNextonRecommendationsValue, resultsRowRef: props.resultsRowRef, isOnGetSupportPage: false, caseCreateExperience: isCaseCreate })))), canJumpTo: isSectionValidFn(isCaseCreate ? AppRouteSections.SUMMARIZE : AppRouteSections.TROUBLESHOOT) ||
72
- activeSection === (isCaseCreate ? AppRouteSections.SUMMARIZE : AppRouteSections.TROUBLESHOOT), nextButtonLabel: ((summarizeNextButtonLabelLogic() || ((props === null || props === void 0 ? void 0 : props.userSeenRecommendationsValue) && numFound < 3)) &&
73
- !isEmpty(issue)) ||
74
- numFound === 0 // do this so that when user refreshes tab and state persists we don't cause edge 'continue' render
74
+ activeSection === (isCaseCreate ? AppRouteSections.SUMMARIZE : AppRouteSections.TROUBLESHOOT), nextButtonLabel: isVariationA
75
75
  ? t('Continue')
76
- : t('See more options') }),
76
+ : ((summarizeNextButtonLabelLogic() || ((props === null || props === void 0 ? void 0 : props.userSeenRecommendationsValue) && numFound < 3)) &&
77
+ !isEmpty(issue)) ||
78
+ numFound === 0
79
+ ? t('Continue')
80
+ : t('See more options') }),
77
81
  [AppRouteSections.RESOURCES]: Object.assign(Object.assign({}, defaultRouteConfiguration), { id: AppRouteSections.RESOURCES, name: isCaseCreate ? t('Resources') : t('Resources'), component: (React.createElement(MainSection, { stepNumber: 3, totalSteps: 6, section: AppRouteSections.RESOURCES, title: t('Recommendations') },
78
82
  React.createElement(Suspense, { fallback: React.createElement(LoadingIndicator, { size: "sm" }) },
79
83
  alertMessage(),
80
- React.createElement(TroubleshootSection, { isAIChatMode: props.isAIChatMode, setIsAIChatMode: props.setIsAIChatMode, onChatWithAIClick: props.onChatWithAIClick, aiServicesAvailable: props.aiServicesAvailable, isSecureSupport: props.isSecureSupport, hasConfirmedStatesideSupport: props.hasConfirmedStatesideSupport })))), canJumpTo: isSectionValidFn(AppRouteSections.RESOURCES || activeSection === AppRouteSections.RESOURCES) &&
84
+ React.createElement(TroubleshootSection, { isAIChatMode: props.isAIChatMode, setIsAIChatMode: props.setIsAIChatMode, onChatWithAIClick: props.onChatWithAIClick, aiServicesAvailable: props.aiServicesAvailable, isSecureSupport: props.isSecureSupport, hasConfirmedStatesideSupport: props.hasConfirmedStatesideSupport, onBack: props.onBack, routeProps: routeProps, userSeenRecommendations: props.userSeenRecommendationsfn, userClickedNextonRecommendations: props.userClickedNextonRecommendationsValue, resultsRowRef: props.resultsRowRef, haveARHFieldsChanged: props.haveARHFieldsChanged, resetARHFieldsChanged: props.resetARHFieldsChanged })))), canJumpTo: isSectionValidFn(AppRouteSections.RESOURCES || activeSection === AppRouteSections.RESOURCES) &&
81
85
  (props === null || props === void 0 ? void 0 : props.userSeenRecommendationsValue) &&
82
- (props === null || props === void 0 ? void 0 : props.userCanNavigateToTroubleshoot), nextButtonLabel: isCaseCreate ? t('Continue') : t('Convert to case') }),
86
+ (props === null || props === void 0 ? void 0 : props.userCanNavigateToTroubleshoot), nextButtonLabel: isVariationA
87
+ ? ((summarizeNextButtonLabelLogic() || ((props === null || props === void 0 ? void 0 : props.userSeenRecommendationsValue) && numFound < 3)) &&
88
+ !isEmpty(issue)) ||
89
+ numFound === 0
90
+ ? t('Continue')
91
+ : isCaseCreate
92
+ ? t('See more options')
93
+ : t('Convert to case')
94
+ : isCaseCreate
95
+ ? t('Continue')
96
+ : t('Convert to case') }),
83
97
  [AppRouteSections.ADDITIONAL_INFORMATION]: Object.assign(Object.assign({}, defaultRouteConfiguration), { id: AppRouteSections.ADDITIONAL_INFORMATION, name: t('Additional information'), component: (React.createElement(MainSection, { stepNumber: 4, totalSteps: 6, section: AppRouteSections.ADDITIONAL_INFORMATION, title: React.createElement(React.Fragment, null,
84
98
  t('Case information'),
85
99
  isEmpty(RouteUtils.seBasePath) && isSelectedAccounntSecureSupport && (React.createElement("span", { className: "secured-support" },
@@ -13,6 +13,7 @@ export interface IAIResponseState {
13
13
  submittedFeedbackTypes: string[];
14
14
  isRateLimited?: boolean;
15
15
  quotaLimit?: number;
16
+ hasChunkReceived?: boolean;
16
17
  }
17
18
  export declare const initialAIResponseState: IAIResponseState;
18
19
  export declare enum AIResponseConstants {
@@ -23,7 +24,9 @@ export declare enum AIResponseConstants {
23
24
  streamingError = "streamingError",
24
25
  addSubmittedFeedbackType = "addSubmittedFeedbackType",
25
26
  clearSubmittedFeedbackTypes = "clearSubmittedFeedbackTypes",
26
- updateQuotaLimit = "updateQuotaLimit"
27
+ updateQuotaLimit = "updateQuotaLimit",
28
+ updateConversationId = "updateConversationId",
29
+ setHasChunkReceived = "setHasChunkReceived"
27
30
  }
28
31
  export interface IClearAIResponseAction extends IActionType {
29
32
  type: AIResponseConstants.clearAIResponse;
@@ -66,5 +69,17 @@ export interface IUpdateQuotaLimitAction extends IActionType {
66
69
  quotaLimit: number;
67
70
  };
68
71
  }
69
- export type IAIResponseActionType = IClearAIResponseAction | IStreamingStartedAction | IStreamingChunkReceivedAction | IStreamingCompletedAction | IStreamingErrorAction | IAddSubmittedFeedbackTypeAction | IClearSubmittedFeedbackTypesAction | IUpdateQuotaLimitAction;
72
+ export interface IUpdateConversationIdAction extends IActionType {
73
+ type: AIResponseConstants.updateConversationId;
74
+ payload: {
75
+ conversationId: string;
76
+ };
77
+ }
78
+ export interface ISetHasChunkReceivedAction extends IActionType {
79
+ type: AIResponseConstants.setHasChunkReceived;
80
+ payload: {
81
+ hasChunkReceived: boolean;
82
+ };
83
+ }
84
+ export type IAIResponseActionType = IClearAIResponseAction | IStreamingStartedAction | IStreamingChunkReceivedAction | IStreamingCompletedAction | IStreamingErrorAction | IAddSubmittedFeedbackTypeAction | IClearSubmittedFeedbackTypesAction | IUpdateQuotaLimitAction | IUpdateConversationIdAction | ISetHasChunkReceivedAction;
70
85
  //# sourceMappingURL=AIResponseConstNTypes.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AIResponseConstNTypes.d.ts","sourceRoot":"","sources":["../../../src/reducers/AIResponseConstNTypes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAGhE,MAAM,WAAW,WAAW;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,GAAG,CAAC;CACjB;AAGD,MAAM,WAAW,gBAAgB;IAC7B,UAAU,EAAE,qBAAqB,GAAG,IAAI,CAAC;IACzC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,WAAW,EAAE,IAAI,GAAG,IAAI,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,sBAAsB,EAAE,MAAM,EAAE,CAAC;IACjC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB;AAGD,eAAO,MAAM,sBAAsB,EAAE,gBAUpC,CAAC;AAGF,oBAAY,mBAAmB;IAC3B,eAAe,oBAAoB;IACnC,gBAAgB,qBAAqB;IACrC,sBAAsB,2BAA2B;IACjD,kBAAkB,uBAAuB;IACzC,cAAc,mBAAmB;IACjC,wBAAwB,6BAA6B;IACrD,2BAA2B,gCAAgC;IAC3D,gBAAgB,qBAAqB;CACxC;AAGD,MAAM,WAAW,sBAAuB,SAAQ,WAAW;IACvD,IAAI,EAAE,mBAAmB,CAAC,eAAe,CAAC;CAC7C;AAED,MAAM,WAAW,uBAAwB,SAAQ,WAAW;IACxD,IAAI,EAAE,mBAAmB,CAAC,gBAAgB,CAAC;CAC9C;AAED,MAAM,WAAW,6BAA8B,SAAQ,WAAW;IAC9D,IAAI,EAAE,mBAAmB,CAAC,sBAAsB,CAAC;IACjD,OAAO,EAAE;QACL,KAAK,EAAE,MAAM,CAAC;QACd,mBAAmB,EAAE,MAAM,CAAC;KAC/B,CAAC;CACL;AAED,MAAM,WAAW,yBAA0B,SAAQ,WAAW;IAC1D,IAAI,EAAE,mBAAmB,CAAC,kBAAkB,CAAC;IAC7C,OAAO,EAAE;QACL,aAAa,EAAE,qBAAqB,CAAC;KACxC,CAAC;CACL;AAED,MAAM,WAAW,qBAAsB,SAAQ,WAAW;IACtD,IAAI,EAAE,mBAAmB,CAAC,cAAc,CAAC;IACzC,OAAO,EAAE;QACL,aAAa,EAAE,OAAO,CAAC;QACvB,KAAK,EAAE,MAAM,CAAC;KACjB,CAAC;CACL;AAED,MAAM,WAAW,+BAAgC,SAAQ,WAAW;IAChE,IAAI,EAAE,mBAAmB,CAAC,wBAAwB,CAAC;IACnD,OAAO,EAAE;QACL,YAAY,EAAE,MAAM,CAAC;KACxB,CAAC;CACL;AAED,MAAM,WAAW,kCAAmC,SAAQ,WAAW;IACnE,IAAI,EAAE,mBAAmB,CAAC,2BAA2B,CAAC;CACzD;AAED,MAAM,WAAW,uBAAwB,SAAQ,WAAW;IACxD,IAAI,EAAE,mBAAmB,CAAC,gBAAgB,CAAC;IAC3C,OAAO,EAAE;QACL,UAAU,EAAE,MAAM,CAAC;KACtB,CAAC;CACL;AAED,MAAM,MAAM,qBAAqB,GAC3B,sBAAsB,GACtB,uBAAuB,GACvB,6BAA6B,GAC7B,yBAAyB,GACzB,qBAAqB,GACrB,+BAA+B,GAC/B,kCAAkC,GAClC,uBAAuB,CAAC"}
1
+ {"version":3,"file":"AIResponseConstNTypes.d.ts","sourceRoot":"","sources":["../../../src/reducers/AIResponseConstNTypes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAGhE,MAAM,WAAW,WAAW;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,GAAG,CAAC;CACjB;AAGD,MAAM,WAAW,gBAAgB;IAC7B,UAAU,EAAE,qBAAqB,GAAG,IAAI,CAAC;IACzC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,WAAW,EAAE,IAAI,GAAG,IAAI,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,sBAAsB,EAAE,MAAM,EAAE,CAAC;IACjC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAGD,eAAO,MAAM,sBAAsB,EAAE,gBAWpC,CAAC;AAGF,oBAAY,mBAAmB;IAC3B,eAAe,oBAAoB;IACnC,gBAAgB,qBAAqB;IACrC,sBAAsB,2BAA2B;IACjD,kBAAkB,uBAAuB;IACzC,cAAc,mBAAmB;IACjC,wBAAwB,6BAA6B;IACrD,2BAA2B,gCAAgC;IAC3D,gBAAgB,qBAAqB;IACrC,oBAAoB,yBAAyB;IAC7C,mBAAmB,wBAAwB;CAC9C;AAGD,MAAM,WAAW,sBAAuB,SAAQ,WAAW;IACvD,IAAI,EAAE,mBAAmB,CAAC,eAAe,CAAC;CAC7C;AAED,MAAM,WAAW,uBAAwB,SAAQ,WAAW;IACxD,IAAI,EAAE,mBAAmB,CAAC,gBAAgB,CAAC;CAC9C;AAED,MAAM,WAAW,6BAA8B,SAAQ,WAAW;IAC9D,IAAI,EAAE,mBAAmB,CAAC,sBAAsB,CAAC;IACjD,OAAO,EAAE;QACL,KAAK,EAAE,MAAM,CAAC;QACd,mBAAmB,EAAE,MAAM,CAAC;KAC/B,CAAC;CACL;AAED,MAAM,WAAW,yBAA0B,SAAQ,WAAW;IAC1D,IAAI,EAAE,mBAAmB,CAAC,kBAAkB,CAAC;IAC7C,OAAO,EAAE;QACL,aAAa,EAAE,qBAAqB,CAAC;KACxC,CAAC;CACL;AAED,MAAM,WAAW,qBAAsB,SAAQ,WAAW;IACtD,IAAI,EAAE,mBAAmB,CAAC,cAAc,CAAC;IACzC,OAAO,EAAE;QACL,aAAa,EAAE,OAAO,CAAC;QACvB,KAAK,EAAE,MAAM,CAAC;KACjB,CAAC;CACL;AAED,MAAM,WAAW,+BAAgC,SAAQ,WAAW;IAChE,IAAI,EAAE,mBAAmB,CAAC,wBAAwB,CAAC;IACnD,OAAO,EAAE;QACL,YAAY,EAAE,MAAM,CAAC;KACxB,CAAC;CACL;AAED,MAAM,WAAW,kCAAmC,SAAQ,WAAW;IACnE,IAAI,EAAE,mBAAmB,CAAC,2BAA2B,CAAC;CACzD;AAED,MAAM,WAAW,uBAAwB,SAAQ,WAAW;IACxD,IAAI,EAAE,mBAAmB,CAAC,gBAAgB,CAAC;IAC3C,OAAO,EAAE;QACL,UAAU,EAAE,MAAM,CAAC;KACtB,CAAC;CACL;AAED,MAAM,WAAW,2BAA4B,SAAQ,WAAW;IAC5D,IAAI,EAAE,mBAAmB,CAAC,oBAAoB,CAAC;IAC/C,OAAO,EAAE;QACL,cAAc,EAAE,MAAM,CAAC;KAC1B,CAAC;CACL;AAED,MAAM,WAAW,0BAA2B,SAAQ,WAAW;IAC3D,IAAI,EAAE,mBAAmB,CAAC,mBAAmB,CAAC;IAC9C,OAAO,EAAE;QACL,gBAAgB,EAAE,OAAO,CAAC;KAC7B,CAAC;CACL;AAED,MAAM,MAAM,qBAAqB,GAC3B,sBAAsB,GACtB,uBAAuB,GACvB,6BAA6B,GAC7B,yBAAyB,GACzB,qBAAqB,GACrB,+BAA+B,GAC/B,kCAAkC,GAClC,uBAAuB,GACvB,2BAA2B,GAC3B,0BAA0B,CAAC"}
@@ -9,6 +9,7 @@ export const initialAIResponseState = {
9
9
  submittedFeedbackTypes: [],
10
10
  isRateLimited: false,
11
11
  quotaLimit: undefined,
12
+ hasChunkReceived: false,
12
13
  };
13
14
  // Action Constants
14
15
  export var AIResponseConstants;
@@ -21,4 +22,6 @@ export var AIResponseConstants;
21
22
  AIResponseConstants["addSubmittedFeedbackType"] = "addSubmittedFeedbackType";
22
23
  AIResponseConstants["clearSubmittedFeedbackTypes"] = "clearSubmittedFeedbackTypes";
23
24
  AIResponseConstants["updateQuotaLimit"] = "updateQuotaLimit";
25
+ AIResponseConstants["updateConversationId"] = "updateConversationId";
26
+ AIResponseConstants["setHasChunkReceived"] = "setHasChunkReceived";
24
27
  })(AIResponseConstants || (AIResponseConstants = {}));
@@ -9,4 +9,6 @@ export declare const streamingError: (error: string, isRateLimited?: boolean) =>
9
9
  export declare const addSubmittedFeedbackType: (feedbackType: string) => IAIResponseActionType;
10
10
  export declare const clearSubmittedFeedbackTypes: () => IAIResponseActionType;
11
11
  export declare const updateQuotaLimit: (quotaLimit: number) => IAIResponseActionType;
12
+ export declare const updateConversationId: (conversationId: string) => IAIResponseActionType;
13
+ export declare const setHasChunkReceived: (hasChunkReceived: boolean) => IAIResponseActionType;
12
14
  //# sourceMappingURL=AIResponseReducer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AIResponseReducer.d.ts","sourceRoot":"","sources":["../../../src/reducers/AIResponseReducer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEhE,OAAO,EAEH,qBAAqB,EACrB,gBAAgB,EAEnB,MAAM,yBAAyB,CAAC;AAEjC,eAAO,MAAM,iBAAiB,UACnB,gBAAgB,UACf,qBAAqB,KAC9B,gBAqEF,CAAC;AAGF,eAAO,MAAM,eAAe,QAAO,qBAGJ,CAAC;AAEhC,eAAO,MAAM,gBAAgB,QAAO,qBAGL,CAAC;AAEhC,eAAO,MAAM,sBAAsB,UAAW,MAAM,uBAAuB,MAAM,KAAG,qBAIrD,CAAC;AAEhC,eAAO,MAAM,kBAAkB,kBAAmB,qBAAqB,KAAG,qBAI3C,CAAC;AAEhC,eAAO,MAAM,cAAc,UAAW,MAAM,kBAAiB,OAAO,KAAW,qBAIhD,CAAC;AAEhC,eAAO,MAAM,wBAAwB,iBAAkB,MAAM,KAAG,qBAIjC,CAAC;AAEhC,eAAO,MAAM,2BAA2B,QAAO,qBAGhB,CAAC;AAEhC,eAAO,MAAM,gBAAgB,eAAgB,MAAM,KAAG,qBAIvB,CAAC"}
1
+ {"version":3,"file":"AIResponseReducer.d.ts","sourceRoot":"","sources":["../../../src/reducers/AIResponseReducer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEhE,OAAO,EAEH,qBAAqB,EACrB,gBAAgB,EAEnB,MAAM,yBAAyB,CAAC;AAEjC,eAAO,MAAM,iBAAiB,UACnB,gBAAgB,UACf,qBAAqB,KAC9B,gBAwFF,CAAC;AAGF,eAAO,MAAM,eAAe,QAAO,qBAGJ,CAAC;AAEhC,eAAO,MAAM,gBAAgB,QAAO,qBAGL,CAAC;AAEhC,eAAO,MAAM,sBAAsB,UAAW,MAAM,uBAAuB,MAAM,KAAG,qBAIrD,CAAC;AAEhC,eAAO,MAAM,kBAAkB,kBAAmB,qBAAqB,KAAG,qBAI3C,CAAC;AAEhC,eAAO,MAAM,cAAc,UAAW,MAAM,kBAAiB,OAAO,KAAW,qBAIhD,CAAC;AAEhC,eAAO,MAAM,wBAAwB,iBAAkB,MAAM,KAAG,qBAIjC,CAAC;AAEhC,eAAO,MAAM,2BAA2B,QAAO,qBAGhB,CAAC;AAEhC,eAAO,MAAM,gBAAgB,eAAgB,MAAM,KAAG,qBAIvB,CAAC;AAEhC,eAAO,MAAM,oBAAoB,mBAAoB,MAAM,KAAG,qBAI/B,CAAC;AAEhC,eAAO,MAAM,mBAAmB,qBAAsB,OAAO,KAAG,qBAIjC,CAAC"}
@@ -26,6 +26,15 @@ export const aiResponseReducer = (state = initialAIResponseState, action) => {
26
26
  case AIResponseConstants.updateQuotaLimit: {
27
27
  return Object.assign(Object.assign({}, state), { quotaLimit: action.payload.quotaLimit });
28
28
  }
29
+ case AIResponseConstants.updateConversationId: {
30
+ return Object.assign(Object.assign({}, state), { aiResponse: state.aiResponse
31
+ ? Object.assign(Object.assign({}, state.aiResponse), { conversationId: action.payload.conversationId }) : {
32
+ conversationId: action.payload.conversationId,
33
+ } });
34
+ }
35
+ case AIResponseConstants.setHasChunkReceived: {
36
+ return Object.assign(Object.assign({}, state), { hasChunkReceived: action.payload.hasChunkReceived });
37
+ }
29
38
  default: {
30
39
  return state;
31
40
  }
@@ -61,3 +70,11 @@ export const updateQuotaLimit = (quotaLimit) => ({
61
70
  type: AIResponseConstants.updateQuotaLimit,
62
71
  payload: { quotaLimit },
63
72
  });
73
+ export const updateConversationId = (conversationId) => ({
74
+ type: AIResponseConstants.updateConversationId,
75
+ payload: { conversationId },
76
+ });
77
+ export const setHasChunkReceived = (hasChunkReceived) => ({
78
+ type: AIResponseConstants.setHasChunkReceived,
79
+ payload: { hasChunkReceived },
80
+ });
@@ -84,9 +84,9 @@ export const SeverityDescription = {
84
84
  };
85
85
  //updated description details
86
86
  export const SeverityDescriptionDetails = {
87
- ["1 (Urgent)" /* SeverityLevelsInternal.SEV_1 */]: 'An issue with a Red Hat Product or Service that is<strong> actively causing serious interruptions to your business critical operations.</strong> This is an issue requiring immediate attention as there is a significant risk to your business.',
88
- ["2 (High)" /* SeverityLevelsInternal.SEV_2 */]: 'An issue with a Red Hat Product or Service that is <strong> partially functional </strong>(such as degradation of a service but the service is still available) and actively impacting your business operations. This is an issue on a business critical system requiring accelerated attention.',
89
- ["3 (Normal)" /* SeverityLevelsInternal.SEV_3 */]: 'An issue with a Red Hat Product or Service that is <strong> currently functioning as expected </strong> but you either (1) recently experienced a degradation that you are monitoring or seeking a root cause for or (2) you are seeing indicators of a potential loss of functionality to a business critical system.',
87
+ ["1 (Urgent)" /* SeverityLevelsInternal.SEV_1 */]: 'An issue with a Red Hat Product or Service that is actively causing serious interruptions to your business critical operations. This is an issue requiring immediate attention as there is a significant risk to your business.',
88
+ ["2 (High)" /* SeverityLevelsInternal.SEV_2 */]: 'An issue with a Red Hat Product or Service that is partially functional (such as degradation of a service but the service is still available) and actively impacting your business operations. This is an issue on a business critical system requiring accelerated attention.',
89
+ ["3 (Normal)" /* SeverityLevelsInternal.SEV_3 */]: 'An issue with a Red Hat Product or Service that is currently functioning as expected but you either (1) recently experienced a degradation that you are monitoring or seeking a root cause for or (2) you are seeing indicators of a potential loss of functionality to a business critical system.',
90
90
  ["4 (Low)" /* SeverityLevelsInternal.SEV_4 */]: 'Typically, a query that does not involve any interruption to your business critical operations. ',
91
91
  };
92
92
  export const LargeDescriptionErrorMessage = 'Cumulative case description cannot be more than {{limit}} characters';
@@ -147,7 +147,7 @@ export const setDiscussions = (dispatch, comments, chats, attachments, feedbacks
147
147
  }));
148
148
  const allDiscussions = [...allComments, ...allChats, ...allAttachments, ...allExternalTrackers];
149
149
  const sortedAllDiscussions = orderBy(allDiscussions, 'last_modified_date', 'desc');
150
- //set filter dropdown state
150
+ // set filter dropdown state
151
151
  // when we don't have any result for a discussion type, in filter options dropdown list, we make that type disable
152
152
  discussionFiltersListState.forEach((filter) => {
153
153
  if (filter.value === DiscussionType.ATTACHMENT) {
@@ -4,7 +4,6 @@ import { IEntitlement } from '@cee-eng/hydrajs/@types/api/public/entitlements';
4
4
  import { IContact } from '@cee-eng/hydrajs/@types/models/contact';
5
5
  import { ISolrRecommendation } from '@cee-eng/hydrajs/@types/models/solr/solr';
6
6
  import { IPortalJwtToken } from '@rh-support/types/shared';
7
- import React from 'react';
8
7
  import { ICaseState } from './CaseConstNTypes';
9
8
  export declare const getCaseRecommendations: (docs: ISolrRecommendation[], oldDocs: any) => any[];
10
9
  export declare const getCepCommentFromCepDetails: (cepDetails: ICepDetails) => string;
@@ -12,7 +11,7 @@ export declare const getRecommendationObject: (doc: ISolrRecommendation, index:
12
11
  export declare const getUpdatedDescription: (issue: string, environment?: string, periodicityOfIssue?: string, timeFramesAndUrgency?: string, v3ClusterName?: string, product?: string, version?: string) => string;
13
12
  export declare const getDescriptionWOQues: (issue: string, environment?: string, periodicityOfIssue?: string, timeFramesAndUrgency?: string) => string;
14
13
  export declare const getIrtForSLAAndSeverity: (slaProcessId: string, severity: string) => string;
15
- export declare const getNewSeverityStringDef: (severity: string) => string | React.JSX.Element;
14
+ export declare const getNewSeverityStringDef: (severity: string) => string;
16
15
  export declare const getOrtForSLAAndSeverity: (slaProcessId: string, severity: string) => string;
17
16
  export declare const getSeverityDescription: (severity: string) => string;
18
17
  export declare const isClusterIDValid: (caseState: any, allProducts: any) => boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"CaseHelpers.d.ts","sourceRoot":"","sources":["../../../src/reducers/CaseHelpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,qDAAqD,CAAC;AACpG,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,yCAAyC,CAAC;AACvG,OAAO,EAAE,YAAY,EAAE,MAAM,iDAAiD,CAAC;AAC/E,OAAO,EAAE,QAAQ,EAAE,MAAM,wCAAwC,CAAC;AAClE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0CAA0C,CAAC;AAC/E,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAgB3D,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,OAAO,EAOH,UAAU,EAkBb,MAAM,mBAAmB,CAAC;AAE3B,eAAO,MAAM,sBAAsB,SAAU,mBAAmB,EAAE,wBAMjE,CAAC;AAEF,eAAO,MAAM,2BAA2B,eAAgB,WAAW,KAAG,MAOrE,CAAC;AAEF,eAAO,MAAM,uBAAuB,QAAS,mBAAmB,SAAS,MAAM,sBAyB9E,CAAC;AAIF,eAAO,MAAM,qBAAqB,UACvB,MAAM,gBACC,MAAM,uBACC,MAAM,yBACJ,MAAM,kBACb,MAAM,YACZ,MAAM,YACN,MAAM,KACjB,MAyBF,CAAC;AAIF,eAAO,MAAM,oBAAoB,UACtB,MAAM,gBACC,MAAM,uBACC,MAAM,yBACJ,MAAM,KAC9B,MAQF,CAAC;AAEF,eAAO,MAAM,uBAAuB,iBAAkB,MAAM,YAAY,MAAM,KAAG,MAQhF,CAAC;AAEF,eAAO,MAAM,uBAAuB,aAAc,MAAM,KAAG,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,OAiB7E,CAAC;AAEF,eAAO,MAAM,uBAAuB,iBAAkB,MAAM,YAAY,MAAM,KAAG,MAQhF,CAAC;AAEF,eAAO,MAAM,sBAAsB,aAAc,MAAM,KAAG,MAKzD,CAAC;AAEF,eAAO,MAAM,gBAAgB,+CAsC5B,CAAC;AAIF,eAAO,MAAM,gBAAgB,cAAe,UAAU,wBAAwB,OAAO,CAAC,eAAe,CAAC,KAAG,OA6BxG,CAAC;AAEF,eAAO,MAAM,oBAAoB,cAClB,UAAU,wBACC,OAAO,CAAC,eAAe,CAAC,KAC/C,OA0BF,CAAC;AAEF,eAAO,MAAM,0BAA0B,cACxB,UAAU,wBACC,OAAO,CAAC,eAAe,CAAC,KAC/C,OAYF,CAAC;AAIF,eAAO,MAAM,6BAA6B,cAC3B,UAAU,wBACC,OAAO,CAAC,eAAe,CAAC,KAC/C,OAkBF,CAAC;AAEF,eAAO,MAAM,iBAAiB,cACf,UAAU,gBACP,YAAY,iBACZ,OAAO,KACtB,OAAO,CAAC,YAAY,CA6EtB,CAAC;AAEF,eAAO,MAAM,wBAAwB,qBAAsB,YAAY,EAAE,KAAG,YAAY,EAEvF,CAAC;AACF,eAAO,MAAM,yBAAyB,qBAAsB,YAAY,EAAE,KAAG,OAE5E,CAAC;AAEF,eAAO,MAAM,yBAAyB,gBACrB,YAAY,6BACE,MAAM,mBAChB,MAAM,KACxB,OAAO,CAAC,YAAY,CAiCtB,CAAC;AACF,eAAO,MAAM,yBAAyB,gBACrB,OAAO,CAAC,YAAY,CAAC,gCACJ,QAAQ,EAAE,KACzC,eAiDF,CAAC"}
1
+ {"version":3,"file":"CaseHelpers.d.ts","sourceRoot":"","sources":["../../../src/reducers/CaseHelpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,qDAAqD,CAAC;AACpG,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,yCAAyC,CAAC;AACvG,OAAO,EAAE,YAAY,EAAE,MAAM,iDAAiD,CAAC;AAC/E,OAAO,EAAE,QAAQ,EAAE,MAAM,wCAAwC,CAAC;AAClE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0CAA0C,CAAC;AAC/E,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAmB3D,OAAO,EAOH,UAAU,EAkBb,MAAM,mBAAmB,CAAC;AAE3B,eAAO,MAAM,sBAAsB,SAAU,mBAAmB,EAAE,wBAMjE,CAAC;AAEF,eAAO,MAAM,2BAA2B,eAAgB,WAAW,KAAG,MAOrE,CAAC;AAEF,eAAO,MAAM,uBAAuB,QAAS,mBAAmB,SAAS,MAAM,sBAyB9E,CAAC;AAIF,eAAO,MAAM,qBAAqB,UACvB,MAAM,gBACC,MAAM,uBACC,MAAM,yBACJ,MAAM,kBACb,MAAM,YACZ,MAAM,YACN,MAAM,KACjB,MAyBF,CAAC;AAIF,eAAO,MAAM,oBAAoB,UACtB,MAAM,gBACC,MAAM,uBACC,MAAM,yBACJ,MAAM,KAC9B,MAQF,CAAC;AAEF,eAAO,MAAM,uBAAuB,iBAAkB,MAAM,YAAY,MAAM,KAAG,MAQhF,CAAC;AAEF,eAAO,MAAM,uBAAuB,aAAc,MAAM,KAAG,MAM1D,CAAC;AAEF,eAAO,MAAM,uBAAuB,iBAAkB,MAAM,YAAY,MAAM,KAAG,MAQhF,CAAC;AAEF,eAAO,MAAM,sBAAsB,aAAc,MAAM,KAAG,MAKzD,CAAC;AAEF,eAAO,MAAM,gBAAgB,+CAsC5B,CAAC;AAIF,eAAO,MAAM,gBAAgB,cAAe,UAAU,wBAAwB,OAAO,CAAC,eAAe,CAAC,KAAG,OA6BxG,CAAC;AAEF,eAAO,MAAM,oBAAoB,cAClB,UAAU,wBACC,OAAO,CAAC,eAAe,CAAC,KAC/C,OA0BF,CAAC;AAEF,eAAO,MAAM,0BAA0B,cACxB,UAAU,wBACC,OAAO,CAAC,eAAe,CAAC,KAC/C,OAYF,CAAC;AAIF,eAAO,MAAM,6BAA6B,cAC3B,UAAU,wBACC,OAAO,CAAC,eAAe,CAAC,KAC/C,OAkBF,CAAC;AAEF,eAAO,MAAM,iBAAiB,cACf,UAAU,gBACP,YAAY,iBACZ,OAAO,KACtB,OAAO,CAAC,YAAY,CA6EtB,CAAC;AAEF,eAAO,MAAM,wBAAwB,qBAAsB,YAAY,EAAE,KAAG,YAAY,EAEvF,CAAC;AACF,eAAO,MAAM,yBAAyB,qBAAsB,YAAY,EAAE,KAAG,OAE5E,CAAC;AAEF,eAAO,MAAM,yBAAyB,gBACrB,YAAY,6BACE,MAAM,mBAChB,MAAM,KACxB,OAAO,CAAC,YAAY,CAiCtB,CAAC;AACF,eAAO,MAAM,yBAAyB,gBACrB,OAAO,CAAC,YAAY,CAAC,gCACJ,QAAQ,EAAE,KACzC,eAiDF,CAAC"}
@@ -6,7 +6,6 @@ import map from 'lodash/map';
6
6
  import some from 'lodash/some';
7
7
  import unionBy from 'lodash/unionBy';
8
8
  import uniqBy from 'lodash/uniqBy';
9
- import React from 'react';
10
9
  import { isPhoneValid, trimAndReplacePlus } from '../components/shared/utils';
11
10
  import { getIsClusterIdInvalid, isClusterIdEnabledForProduct } from '../utils/caseOpenshiftClusterIdUtils';
12
11
  import { CASE_DETAILS_ISSUE_LIMIT, CASE_REFERENCE_NUMBER_LIMIT, CLUSTER_ID_LIMIT, CONTACT_INFO_24X7_LIMIT, DESCRIPTION_LENGTH_LIMIT, HOSTNAME_LENGTH_LIMIT, IDEA_SECOND_KTQUESTION_MAX_LIMIT, ITRForSLASeverity, KTQUESTION_MAX_LIMIT, KtQuestionConstant, SESSION_ENVIRONMENT_LIMIT, SESSION_ISSUE_LIMIT, SESSION_NO_CLUSTER_REASON_EXPLANATION_LENGTH_LIMIT, SESSION_NO_CLUSTER_REASON_LENGTH_LIMIT, SESSION_NOTIFIED_USERS_EXTERNAL_LIMIT, SESSION_NOTIFIED_USERS_INTERNAL_LIMIT, SESSION_PERIODICITY_OF_ISSUE_LIMIT, SESSION_PHONE_LENGTH_LIMIT, SESSION_TIME_FRAMES_URGENCY_LIMIT, SeverityDescription, SeverityDescriptionDetails, TITLE_SUMMARY_LENGTH_LIMIT, } from './CaseConstNTypes';
@@ -91,16 +90,7 @@ export const getNewSeverityStringDef = (severity) => {
91
90
  if (isEmpty(severity)) {
92
91
  return '';
93
92
  }
94
- const description = SeverityDescriptionDetails[severity];
95
- if (!description) {
96
- return '';
97
- }
98
- if (!description.includes('<')) {
99
- return description;
100
- }
101
- return React.createElement('span', {
102
- dangerouslySetInnerHTML: { __html: description },
103
- });
93
+ return SeverityDescriptionDetails[severity];
104
94
  };
105
95
  export const getOrtForSLAAndSeverity = (slaProcessId, severity) => {
106
96
  if (isEmpty(slaProcessId) || isEmpty(severity)) {
@@ -1 +1 @@
1
- {"version":3,"file":"RouteConstNTypes.d.ts","sourceRoot":"","sources":["../../../src/reducers/RouteConstNTypes.ts"],"names":[],"mappings":"AAAA,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,qBAAqB,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAIxC,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,qBAAqB;IAClC,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,SAAS,cAAc;IACvB,sBAAsB,2BAA2B;IACjD,aAAa,kBAAkB;IAC/B,aAAa,kBAAkB;IAC/B,MAAM,WAAW;IACjB,WAAW,gBAAgB;IAC3B,KAAK,UAAU;CAClB;AAKD,eAAO,MAAM,4BAA4B,EAAE,gBAAgB,EAK1D,CAAC;AAEF,eAAO,MAAM,gCAAgC,EAAE,gBAAgB,EAM9D,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,oBAO3C,CAAC;AAEF,eAAO,MAAM,0CAA0C,oBAStD,CAAC;AAEF,eAAO,MAAM,sCAAsC,oBAA4D,CAAC;AAEhH,eAAO,MAAM,qCAAqC,oBAGjD,CAAC;AAEF,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,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,qBAAqB,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAIxC,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,qBAAqB;IAClC,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,SAAS,cAAc;IACvB,sBAAsB,2BAA2B;IACjD,aAAa,kBAAkB;IAC/B,aAAa,kBAAkB;IAC/B,MAAM,WAAW;IACjB,WAAW,gBAAgB;IAC3B,KAAK,UAAU;CAClB;AAKD,eAAO,MAAM,4BAA4B,EAAE,gBAAgB,EAK1D,CAAC;AAEF,eAAO,MAAM,gCAAgC,EAAE,gBAAgB,EAM9D,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,oBAM9C,CAAC;AAEF,eAAO,MAAM,+BAA+B,oBAO3C,CAAC;AAEF,eAAO,MAAM,0CAA0C,oBAStD,CAAC;AAEF,eAAO,MAAM,sCAAsC,oBAA4D,CAAC;AAEhH,eAAO,MAAM,qCAAqC,oBAGjD,CAAC;AAEF,eAAO,MAAM,6BAA6B,oBAAiC,CAAC;AAE5E,eAAO,MAAM,wBAAwB,EAAE,gBAAgB,EAKtD,CAAC"}
@@ -58,7 +58,6 @@ export const openCaseRouteSectionSequence = [
58
58
  export const sessionRestoreCardSections = [AppRouteSections.GET_SUPPORT];
59
59
  export const hideFileUploadSidebarWidgetSections = [AppRouteSections.GET_SUPPORT, AppRouteSections.SUBMIT_CASE];
60
60
  export const showSidebarRecommendationsSections = [
61
- AppRouteSections.RESOURCES,
62
61
  AppRouteSections.ADDITIONAL_INFORMATION,
63
62
  AppRouteSections.DESCRIBE_IDEA,
64
63
  AppRouteSections.CONFIGURATION,