@rh-support/troubleshoot 2.2.51 → 2.4.10-beta.6

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 (198) hide show
  1. package/README.md +1 -1
  2. package/lib/esm/components/AccountInfo/AccountSelector.d.ts.map +1 -1
  3. package/lib/esm/components/AccountInfo/AccountSelector.js +4 -4
  4. package/lib/esm/components/AccountInfo/ManagedAccountsDropdown.js +1 -1
  5. package/lib/esm/components/CaseEditView/ActiveCustomerEscalation/ActiveCustomerEscalation.js +2 -2
  6. package/lib/esm/components/CaseEditView/ActiveCustomerEscalation/RequestEscalationModal.d.ts.map +1 -1
  7. package/lib/esm/components/CaseEditView/ActiveCustomerEscalation/RequestEscalationModal.js +19 -22
  8. package/lib/esm/components/CaseEditView/CaseDetailsAside.d.ts.map +1 -1
  9. package/lib/esm/components/CaseEditView/CaseDetailsAside.js +9 -14
  10. package/lib/esm/components/CaseEditView/CaseDetailsErrorMessage.js +1 -1
  11. package/lib/esm/components/CaseEditView/CaseDetailsTabs.d.ts.map +1 -1
  12. package/lib/esm/components/CaseEditView/CaseDetailsTabs.js +13 -18
  13. package/lib/esm/components/CaseEditView/CaseOverview/CaseOwnerInfo.js +1 -1
  14. package/lib/esm/components/CaseEditView/CaseOverview/DateTime.js +1 -1
  15. package/lib/esm/components/CaseEditView/CaseOverview/index.d.ts.map +1 -1
  16. package/lib/esm/components/CaseEditView/CaseOverview/index.js +11 -14
  17. package/lib/esm/components/CaseEditView/CaseSecureSupportAlert.js +1 -1
  18. package/lib/esm/components/CaseEditView/CaseSolutions/CaseSolutions.d.ts.map +1 -1
  19. package/lib/esm/components/CaseEditView/CaseSolutions/CaseSolutions.js +38 -82
  20. package/lib/esm/components/CaseEditView/CaseSolutions/CaseSolutionsItem.d.ts +1 -4
  21. package/lib/esm/components/CaseEditView/CaseSolutions/CaseSolutionsItem.d.ts.map +1 -1
  22. package/lib/esm/components/CaseEditView/CaseSolutions/CaseSolutionsItem.js +4 -6
  23. package/lib/esm/components/CaseEditView/CaseSubscriptionAbuseAlert.js +1 -1
  24. package/lib/esm/components/CaseEditView/ConfirmationModals/ReopenCaseModal.d.ts.map +1 -1
  25. package/lib/esm/components/CaseEditView/ConfirmationModals/ReopenCaseModal.js +11 -17
  26. package/lib/esm/components/CaseEditView/RequestRemoteSession/ESSRemoteSession.js +2 -2
  27. package/lib/esm/components/CaseEditView/RequestRemoteSession/ESSRemoteSessionModal.d.ts.map +1 -1
  28. package/lib/esm/components/CaseEditView/RequestRemoteSession/ESSRemoteSessionModal.js +6 -7
  29. package/lib/esm/components/CaseEditView/RequestRemoteSession/NewEssTermsModal.d.ts.map +1 -1
  30. package/lib/esm/components/CaseEditView/RequestRemoteSession/NewEssTermsModal.js +10 -11
  31. package/lib/esm/components/CaseEditView/RequestRemoteSession/RemoteSessionAgreement.js +2 -2
  32. package/lib/esm/components/CaseEditView/RequestRemoteSession/RemoteSessionAgreementModal.d.ts.map +1 -1
  33. package/lib/esm/components/CaseEditView/RequestRemoteSession/RemoteSessionAgreementModal.js +10 -11
  34. package/lib/esm/components/CaseEditView/Tabs/CaseActionPlan/CaseActionPlan.d.ts.map +1 -1
  35. package/lib/esm/components/CaseEditView/Tabs/CaseActionPlan/CaseActionPlan.js +3 -3
  36. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseContactPhoneNumber.js +4 -4
  37. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseHostname.js +2 -2
  38. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseOpenshiftClusterId/CaseOpenShiftPopover.js +1 -1
  39. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseOpenshiftClusterId/CaseOpenShiftV3Popover.js +1 -1
  40. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseOpenshiftClusterId/CaseOpenshiftClusterId.js +1 -1
  41. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CasePhoneNumberConfirmAlert.js +2 -2
  42. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CasePhoneNumberSev1ConfirmAlert.js +2 -2
  43. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseReferenceNumber.d.ts.map +1 -1
  44. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseReferenceNumber.js +7 -7
  45. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/ProductVersion.js +1 -1
  46. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/Summary.d.ts.map +1 -1
  47. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/Summary.js +6 -6
  48. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/CaseAttachment.js +1 -1
  49. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/CaseChat.js +1 -1
  50. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/CaseComments.d.ts.map +1 -1
  51. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/CaseComments.js +4 -6
  52. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/CaseDiscussion.d.ts.map +1 -1
  53. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/CaseDiscussion.js +1 -18
  54. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/CaseExternalTrackerUpdate.d.ts.map +1 -1
  55. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/CaseExternalTrackerUpdate.js +3 -5
  56. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/CommentSearch.js +1 -1
  57. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/PostComment.js +4 -4
  58. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/VerifyCaseStatusModal/VerifyCaseStatusModal.d.ts.map +1 -1
  59. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/VerifyCaseStatusModal/VerifyCaseStatusModal.js +2 -3
  60. package/lib/esm/components/CaseEditView/Tabs/CasePrivateNotes/CasePrivateNotes.d.ts.map +1 -1
  61. package/lib/esm/components/CaseEditView/Tabs/CasePrivateNotes/CasePrivateNotes.js +3 -3
  62. package/lib/esm/components/CaseEditView/Tabs/RMEEscalations/RMEEscalationList.js +1 -1
  63. package/lib/esm/components/CaseEditView/index.d.ts.map +1 -1
  64. package/lib/esm/components/CaseEditView/index.js +6 -8
  65. package/lib/esm/components/CaseInformation/CaseInformation.d.ts.map +1 -1
  66. package/lib/esm/components/CaseInformation/CaseInformation.js +3 -3
  67. package/lib/esm/components/CaseInformation/ContactPhoneNumberPopOver.js +1 -1
  68. package/lib/esm/components/CaseInformation/Description.d.ts.map +1 -1
  69. package/lib/esm/components/CaseInformation/Description.js +3 -3
  70. package/lib/esm/components/CaseInformation/Fts.js +3 -3
  71. package/lib/esm/components/CaseInformation/Severity.d.ts.map +1 -1
  72. package/lib/esm/components/CaseInformation/Severity.js +3 -5
  73. package/lib/esm/components/CaseInformation/SupportLevel.d.ts.map +1 -1
  74. package/lib/esm/components/CaseInformation/SupportLevel.js +3 -4
  75. package/lib/esm/components/CaseManagement/CaseLanguageSelector.d.ts.map +1 -1
  76. package/lib/esm/components/CaseManagement/CaseLanguageSelector.js +2 -3
  77. package/lib/esm/components/CaseManagement/CaseManagement.js +2 -2
  78. package/lib/esm/components/CaseManagement/Cep.d.ts.map +1 -1
  79. package/lib/esm/components/CaseManagement/Cep.js +14 -30
  80. package/lib/esm/components/CaseManagement/ESSRemoteSessionCheckBox.d.ts.map +1 -1
  81. package/lib/esm/components/CaseManagement/ESSRemoteSessionCheckBox.js +12 -13
  82. package/lib/esm/components/CaseManagement/NoClusterIDReasonSelector.js +3 -3
  83. package/lib/esm/components/CaseManagement/OpenShiftClusterId.js +1 -1
  84. package/lib/esm/components/CaseManagement/OpenShiftV3Inputbox.js +1 -1
  85. package/lib/esm/components/CaseManagement/OpenshiftDropdownV4.d.ts.map +1 -1
  86. package/lib/esm/components/CaseManagement/OpenshiftDropdownV4.js +3 -4
  87. package/lib/esm/components/CaseManagement/RHAssociatesSelector.js +2 -2
  88. package/lib/esm/components/CaseManagement/SendNotifications/AddCustomEmailToAccountModal.d.ts.map +1 -1
  89. package/lib/esm/components/CaseManagement/SendNotifications/AddCustomEmailToAccountModal.js +14 -15
  90. package/lib/esm/components/CaseManagement/SendNotifications/CaseContactSelector.js +3 -3
  91. package/lib/esm/components/CaseManagement/SendNotifications/NonOrgCaseNotifyeesSelector.js +1 -1
  92. package/lib/esm/components/ConfirmationModals/NoAttachmentSelectedModal.js +3 -3
  93. package/lib/esm/components/IdeaInformation/IdeaInformation.js +5 -5
  94. package/lib/esm/components/ImproveCase/KtQuestions.d.ts.map +1 -1
  95. package/lib/esm/components/ImproveCase/KtQuestions.js +7 -7
  96. package/lib/esm/components/OpenCase/SupportTypeSelectorPage.js +15 -12
  97. package/lib/esm/components/ProductSelector/AllProductsSelector.js +1 -1
  98. package/lib/esm/components/ProductSelector/NewProductDropdownSelector.d.ts.map +1 -1
  99. package/lib/esm/components/ProductSelector/NewProductDropdownSelector.js +5 -6
  100. package/lib/esm/components/ProductSelector/NewProductVersionSelector.js +2 -2
  101. package/lib/esm/components/ProductSelector/ProductSelector.js +2 -2
  102. package/lib/esm/components/Recommendations/AlertToastWrapper.d.ts +0 -3
  103. package/lib/esm/components/Recommendations/AlertToastWrapper.d.ts.map +1 -1
  104. package/lib/esm/components/Recommendations/AlertToastWrapper.js +2 -2
  105. package/lib/esm/components/Recommendations/AsideResults.d.ts +7 -1
  106. package/lib/esm/components/Recommendations/AsideResults.d.ts.map +1 -1
  107. package/lib/esm/components/Recommendations/AsideResults.js +17 -4
  108. package/lib/esm/components/Recommendations/ClusterRecommendationItems.js +1 -1
  109. package/lib/esm/components/Recommendations/ClusterRecommendations.js +1 -1
  110. package/lib/esm/components/Recommendations/EARules/EARuleInfoAccordion.js +1 -1
  111. package/lib/esm/components/Recommendations/EARules/EARuleInfoInline.js +7 -7
  112. package/lib/esm/components/Recommendations/InsightsResults.d.ts.map +1 -1
  113. package/lib/esm/components/Recommendations/InsightsResults.js +3 -3
  114. package/lib/esm/components/Recommendations/InsightsRuleInfo.js +7 -7
  115. package/lib/esm/components/Recommendations/RecommendationFeedbackModal.js +1 -1
  116. package/lib/esm/components/Recommendations/Recommendations.d.ts +3 -0
  117. package/lib/esm/components/Recommendations/Recommendations.d.ts.map +1 -1
  118. package/lib/esm/components/Recommendations/Recommendations.js +19 -6
  119. package/lib/esm/components/Recommendations/RulesModal.d.ts.map +1 -1
  120. package/lib/esm/components/Recommendations/RulesModal.js +1 -2
  121. package/lib/esm/components/Recommendations/ShowRank.d.ts +12 -0
  122. package/lib/esm/components/Recommendations/ShowRank.d.ts.map +1 -0
  123. package/lib/esm/components/Recommendations/ShowRank.js +27 -0
  124. package/lib/esm/components/RemoteRider/RemoteRiderBanner.js +1 -1
  125. package/lib/esm/components/Review/Review.js +2 -2
  126. package/lib/esm/components/SessionRestore/SessionRestore.d.ts.map +1 -1
  127. package/lib/esm/components/SessionRestore/SessionRestore.js +14 -9
  128. package/lib/esm/components/SessionRestore/SessionRestoreCard.d.ts.map +1 -1
  129. package/lib/esm/components/SessionRestore/SessionRestoreCard.js +16 -9
  130. package/lib/esm/components/SubmitCase/ResubmitToast.d.ts +0 -3
  131. package/lib/esm/components/SubmitCase/ResubmitToast.d.ts.map +1 -1
  132. package/lib/esm/components/SubmitCase/ResubmitToast.js +1 -3
  133. package/lib/esm/components/SubmitCase/SubmitCase.d.ts +7 -1
  134. package/lib/esm/components/SubmitCase/SubmitCase.d.ts.map +1 -1
  135. package/lib/esm/components/SubmitCase/SubmitCase.js +17 -19
  136. package/lib/esm/components/Suggestions/Suggestions.js +1 -1
  137. package/lib/esm/components/Suggestions/TopContent.d.ts.map +1 -1
  138. package/lib/esm/components/Suggestions/TopContent.js +12 -58
  139. package/lib/esm/components/TroubleshootSection/TroubleshootSection.js +6 -6
  140. package/lib/esm/components/UpdateSeverityModal/UpdateSeverityModal.js +4 -4
  141. package/lib/esm/components/shared/Rule.js +6 -6
  142. package/lib/esm/components/shared/fileUpload/FileLister.js +6 -6
  143. package/lib/esm/components/shared/fileUpload/WidgetFileUploader.js +2 -2
  144. package/lib/esm/components/shared/fileUpload/common/FileUploaderInfoIcon.js +1 -1
  145. package/lib/esm/components/shared/fileUpload/css/fileSelector.css +1 -1
  146. package/lib/esm/components/shared/fileUpload/fileSelectors/FileSelectorButton.d.ts.map +1 -1
  147. package/lib/esm/components/shared/fileUpload/fileSelectors/FileSelectorButton.js +1 -1
  148. package/lib/esm/components/shared/fileUpload/fileSelectors/WidgetFileSelector.js +2 -2
  149. package/lib/esm/components/shared/fileUpload/fileSelectors/WidgetFileSelectorImage.js +2 -2
  150. package/lib/esm/components/shared/fileUpload/reducer/AttachmentHelper.js +1 -1
  151. package/lib/esm/components/shared/useIsSectionValid.js +1 -1
  152. package/lib/esm/components/wizardLayout/GlobalTroubleshootEffects.d.ts.map +1 -1
  153. package/lib/esm/components/wizardLayout/GlobalTroubleshootEffects.js +0 -6
  154. package/lib/esm/components/wizardLayout/MainSection.js +1 -1
  155. package/lib/esm/components/wizardLayout/WizardAside.d.ts.map +1 -1
  156. package/lib/esm/components/wizardLayout/WizardAside.js +3 -3
  157. package/lib/esm/components/wizardLayout/WizardLayout.d.ts.map +1 -1
  158. package/lib/esm/components/wizardLayout/WizardLayout.js +37 -6
  159. package/lib/esm/components/wizardLayout/WizardMain.js +2 -2
  160. package/lib/esm/components/wizardLayout/WizardNavigation.js +1 -1
  161. package/lib/esm/constants/caseDetailsConstants.d.ts +1 -7
  162. package/lib/esm/constants/caseDetailsConstants.d.ts.map +1 -1
  163. package/lib/esm/constants/caseDetailsConstants.js +0 -7
  164. package/lib/esm/css/app.css +7 -7
  165. package/lib/esm/css/case.css +3 -3
  166. package/lib/esm/hooks/useWizard.js +1 -1
  167. package/lib/esm/reducers/CaseConstNTypes.d.ts +4 -4
  168. package/lib/esm/reducers/CaseConstNTypes.d.ts.map +1 -1
  169. package/lib/esm/reducers/CaseConstNTypes.js +4 -4
  170. package/lib/esm/reducers/CaseHelpers.d.ts.map +1 -1
  171. package/lib/esm/reducers/CaseHelpers.js +0 -2
  172. package/lib/esm/reducers/CaseOverviewReducer.d.ts +1 -1
  173. package/lib/esm/reducers/CaseOverviewReducer.d.ts.map +1 -1
  174. package/lib/esm/reducers/CaseReducer.d.ts +2 -1
  175. package/lib/esm/reducers/CaseReducer.d.ts.map +1 -1
  176. package/lib/esm/reducers/CaseReducer.js +14 -20
  177. package/lib/esm/reducers/RecommendationsReducer.d.ts +2 -1
  178. package/lib/esm/reducers/RecommendationsReducer.d.ts.map +1 -1
  179. package/lib/esm/reducers/RecommendationsReducer.js +30 -2
  180. package/lib/esm/reducers/RouteConstNTypes.d.ts +2 -2
  181. package/lib/esm/reducers/RouteConstNTypes.d.ts.map +1 -1
  182. package/lib/esm/reducers/SessionRestoreReducer.d.ts +1 -1
  183. package/lib/esm/reducers/SessionRestoreReducer.d.ts.map +1 -1
  184. package/lib/esm/reducers/SessionRestoreReducer.js +1 -7
  185. package/lib/esm/scss/_main.scss +43 -109
  186. package/lib/esm/scss/_pf4-imports.scss +30 -0
  187. package/lib/esm/scss/{_pf-overrides.scss → _pf4-overrides.scss} +85 -214
  188. package/lib/esm/scss/index.scss +2 -1
  189. package/package.json +14 -13
  190. package/lib/esm/components/CaseEditView/CaseSolutions/HandpicketItem.d.ts +0 -13
  191. package/lib/esm/components/CaseEditView/CaseSolutions/HandpicketItem.d.ts.map +0 -1
  192. package/lib/esm/components/CaseEditView/CaseSolutions/HandpicketItem.js +0 -76
  193. package/lib/esm/components/CaseEditView/Tabs/RelatedTickets/RelatedTickets.d.ts +0 -3
  194. package/lib/esm/components/CaseEditView/Tabs/RelatedTickets/RelatedTickets.d.ts.map +0 -1
  195. package/lib/esm/components/CaseEditView/Tabs/RelatedTickets/RelatedTickets.js +0 -118
  196. package/lib/esm/context/CaseOverviewContext.d.ts +0 -8
  197. package/lib/esm/context/CaseOverviewContext.d.ts.map +0 -1
  198. package/lib/esm/context/CaseOverviewContext.js +0 -10
@@ -84,13 +84,13 @@ function KtQuestions(props) {
84
84
  t(KtQuestionConstant.timeFramesAndUrgency),
85
85
  ' ',
86
86
  isKT4Required && (React.createElement("span", { className: "form-required", "aria-hidden": true }, "*"))), allowInlineEdit: props.inlineEditable, hideSaveCancel: props.hideSaveCancel, initialIsEditing: isEmpty(timeFramesAndUrgency), usePreformattedTag: true, saveOnBlur: true, content: timeFramesAndUrgency },
87
- React.createElement(TextArea, { validated: invalidateQT4(timeFramesAndUrgency) ||
87
+ React.createElement(TextArea, { className: `form-control${invalidateQT4(timeFramesAndUrgency) ||
88
88
  (isNextBtnClickedToShowValidationError && isEmpty(timeFramesAndUrgency)) ||
89
89
  isKTQ4InValid
90
- ? 'error'
91
- : 'default', "aria-invalid": timeFramesAndUrgency && (timeFramesAndUrgency === null || timeFramesAndUrgency === void 0 ? void 0 : timeFramesAndUrgency.length) > CASE_DETAILS_TIMEFRAMESANDURGENCY_LIMIT
90
+ ? ' form-invalid'
91
+ : ''}`, "aria-invalid": timeFramesAndUrgency && (timeFramesAndUrgency === null || timeFramesAndUrgency === void 0 ? void 0 : timeFramesAndUrgency.length) > CASE_DETAILS_TIMEFRAMESANDURGENCY_LIMIT
92
92
  ? 'true'
93
- : 'false', id: "ktQ4-timeFramesAndUrgency", value: timeFramesAndUrgency, isDisabled: isEmpty(timeFramesAndUrgency) && hasLargeCaseDescription && !isKTQ4TextAreaActive, onChange: (e, value) => onKtQ4Change(value, e), onFocus: onKTQ4FocusChange, onBlur: onKTQ4FocusChange, "aria-required": isKT4Required, "data-tracking-id": "get-support-ktQ4-timeFramesAndUrgency", placeholder: t("User or financial impact, and whether there's a legal, national, or medical urgency"), isRequired: isKT4Required, resizeOrientation: "vertical" }),
93
+ : 'false', id: "ktQ4-timeFramesAndUrgency", value: timeFramesAndUrgency, isDisabled: isEmpty(timeFramesAndUrgency) && hasLargeCaseDescription && !isKTQ4TextAreaActive, onChange: onKtQ4Change, onFocus: onKTQ4FocusChange, onBlur: onKTQ4FocusChange, "aria-required": isKT4Required, "data-tracking-id": "get-support-ktQ4-timeFramesAndUrgency", placeholder: t("User or financial impact, and whether there's a legal, national, or medical urgency"), isRequired: isKT4Required }),
94
94
  React.createElement("p", { className: "form-instructions", "data-tracking-id": "large-4k-warning-ktQ4-environment" }, `${isKTQ4TextAreaActive && ((_a = timeFramesAndUrgency) === null || _a === void 0 ? void 0 : _a.length) > CASE_DETAILS_TIMEFRAMESANDURGENCY_LIMIT
95
95
  ? `Description cannot be more than ${CASE_DETAILS_TIMEFRAMESANDURGENCY_LIMIT} characters`
96
96
  : ''}`),
@@ -100,7 +100,7 @@ function KtQuestions(props) {
100
100
  t(KtQuestionConstant.environment),
101
101
  ' ',
102
102
  isKT2Required && (React.createElement("span", { className: "form-required", "aria-hidden": true }, "*"))), allowInlineEdit: props.inlineEditable, hideSaveCancel: props.hideSaveCancel, initialIsEditing: isEmpty(environment), usePreformattedTag: true, saveOnBlur: true, content: environment },
103
- React.createElement(TextArea, { id: "ktQ2-environment", value: environment, isDisabled: isEmpty(environment) && hasLargeCaseDescription && !isKTQ2TextAreaActive, onChange: (e, value) => onKtQ2Change(value, e), onFocus: onKTQ2FocusChange, onBlur: onKTQ2FocusChange, "aria-required": isKT2Required, isRequired: isKT2Required, "data-tracking-id": "get-support-ktQ2-environment", "aria-invalid": environment && (environment === null || environment === void 0 ? void 0 : environment.length) > CASE_DEATILS_ENVIRONMENT_LIMIT ? 'true' : 'false', resizeOrientation: "vertical" }),
103
+ React.createElement(TextArea, { className: `form-control`, id: "ktQ2-environment", value: environment, isDisabled: isEmpty(environment) && hasLargeCaseDescription && !isKTQ2TextAreaActive, onChange: onKtQ2Change, onFocus: onKTQ2FocusChange, onBlur: onKTQ2FocusChange, "aria-required": isKT2Required, isRequired: isKT2Required, "data-tracking-id": "get-support-ktQ2-environment", "aria-invalid": environment && (environment === null || environment === void 0 ? void 0 : environment.length) > CASE_DEATILS_ENVIRONMENT_LIMIT ? 'true' : 'false' }),
104
104
  React.createElement("p", { className: "form-instructions", "data-tracking-id": "large-4k-warning-ktQ2-environment" }, `${isKTQ2TextAreaActive && ((_b = environment) === null || _b === void 0 ? void 0 : _b.length) > CASE_DEATILS_ENVIRONMENT_LIMIT
105
105
  ? `Description cannot be more than ${CASE_DEATILS_ENVIRONMENT_LIMIT} characters`
106
106
  : ''}`),
@@ -109,9 +109,9 @@ function KtQuestions(props) {
109
109
  t(KtQuestionConstant.periodicityOfIssue),
110
110
  ' ',
111
111
  isKT3Required && (React.createElement("span", { className: "form-required", "aria-hidden": true }, "*"))), allowInlineEdit: props.inlineEditable, hideSaveCancel: props.hideSaveCancel, initialIsEditing: isEmpty(periodicityOfIssue), usePreformattedTag: true, saveOnBlur: true, content: periodicityOfIssue },
112
- React.createElement(TextArea, { id: "ktQ3-periodicityOfIssue", value: periodicityOfIssue, isDisabled: isEmpty(periodicityOfIssue) && hasLargeCaseDescription && !isKTQ3TextAreaActive, onChange: (e, value) => onKtQ3Change(value, e), onFocus: onKTQ3FocusChange, onBlur: onKTQ3FocusChange, "aria-required": isKT3Required, isRequired: isKT3Required, "data-tracking-id": "get-support-ktQ3-periodicityOfIssue", "aria-invalid": periodicityOfIssue && (periodicityOfIssue === null || periodicityOfIssue === void 0 ? void 0 : periodicityOfIssue.length) > CASE_DEATILS_PERIODICITYOFISSUE_LIMIT
112
+ React.createElement(TextArea, { className: `form-control`, id: "ktQ3-periodicityOfIssue", value: periodicityOfIssue, isDisabled: isEmpty(periodicityOfIssue) && hasLargeCaseDescription && !isKTQ3TextAreaActive, onChange: onKtQ3Change, onFocus: onKTQ3FocusChange, onBlur: onKTQ3FocusChange, "aria-required": isKT3Required, isRequired: isKT3Required, "data-tracking-id": "get-support-ktQ3-periodicityOfIssue", "aria-invalid": periodicityOfIssue && (periodicityOfIssue === null || periodicityOfIssue === void 0 ? void 0 : periodicityOfIssue.length) > CASE_DEATILS_PERIODICITYOFISSUE_LIMIT
113
113
  ? 'true'
114
- : 'false', resizeOrientation: "vertical" }),
114
+ : 'false' }),
115
115
  React.createElement("p", { className: "form-instructions", "data-tracking-id": "large-4k-warning-ktQ3-environment" }, `${isKTQ3TextAreaActive && ((_c = periodicityOfIssue) === null || _c === void 0 ? void 0 : _c.length) > CASE_DEATILS_PERIODICITYOFISSUE_LIMIT
116
116
  ? `Description cannot be more than ${CASE_DEATILS_PERIODICITYOFISSUE_LIMIT} characters`
117
117
  : ''}`),
@@ -15,7 +15,7 @@ export default function SupportTypeSelectorPage() {
15
15
  const globalDispatch = useGlobalDispatchContext();
16
16
  const [selectedSupportType, setSelectedSupportType] = useState('');
17
17
  const { routeState: { isNextBtnClickedToShowValidationError }, } = useContext(RouteContext);
18
- const { caseType, isFetchingSelectedAccountDetails } = useCaseSelector((state) => ({
18
+ const { caseType, isFetchingSelectedAccountDetails, selectedAccountDetails } = useCaseSelector((state) => ({
19
19
  caseType: state.caseDetails.caseType,
20
20
  isFetchingSelectedAccountDetails: state.selectedAccountDetails.isFetching,
21
21
  selectedAccountDetails: state.selectedAccountDetails,
@@ -122,15 +122,18 @@ export default function SupportTypeSelectorPage() {
122
122
  React.createElement(Trans, null, "What can we help you with?"),
123
123
  React.createElement("span", { className: "form-required", "aria-hidden": true }, "*")),
124
124
  (allCaseTypes.isFetching || (isFetchingSelectedAccountDetails && haventLoadedMetadata(allCaseTypes))) && (React.createElement(LoadingIndicator, { size: "lg", show: true })),
125
- React.createElement(Gallery, { hasGutter: true, className: "pf-v5-u-mt-sm" }, SupportTypesArray.map((supportTypesArrayValues) => (React.createElement(GalleryItem, { key: supportTypesArrayValues.id },
126
- React.createElement(Card, { id: supportTypesArrayValues.oldSupportType, key: supportTypesArrayValues.oldSupportType, className: `support-types-card${isNextBtnClickedToShowValidationError && !caseType ? ' support-types-invalid' : ''}`, isSelectable: true, isSelectableRaised: true, onKeyDown: onKeyDown, onClick: onSupportTypeClick, onSelectableInputChange: (_event, labelledById) => onChange(labelledById, _event), isSelected: !!caseType && supportTypesArrayValues.oldSupportType === caseType, hasSelectableInput: true, isFullHeight: true, selectableInputAriaLabel: t(supportTypesArrayValues.supportTypeHeading), "data-tracking-id": supportTypesArrayValues.dataTrackingID, tabIndex: 0 },
127
- React.createElement(CardBody, null, supportTypesArrayValues.icon ? (React.createElement(Split, null,
128
- React.createElement(SplitItem, { className: "pf-v5-u-pr-lg" },
129
- React.createElement(Bullseye, null, supportTypesArrayValues.icon && supportTypesArrayValues.icon)),
130
- React.createElement(SplitItem, { isFilled: true },
131
- React.createElement("header", { className: "pf-v5-u-font-family-redhatVF-heading-sans-serif" },
132
- React.createElement(Trans, null, supportTypesArrayValues.supportTypeHeading)),
133
- React.createElement(Trans, null, supportTypesArrayValues.supportTypeDescription)))) : (React.createElement(Bullseye, null,
134
- React.createElement("header", { className: "pf-v5-u-font-family-redhatVF-heading-sans-serif" },
135
- React.createElement(Trans, null, supportTypesArrayValues.supportTypeHeading))))))))))));
125
+ React.createElement(Gallery, { hasGutter: true, className: "pf-u-mt-sm" }, SupportTypesArray.map((supportTypesArrayValues) => {
126
+ var _a;
127
+ return (React.createElement(GalleryItem, { key: supportTypesArrayValues.id },
128
+ React.createElement(Card, { id: supportTypesArrayValues.oldSupportType, key: supportTypesArrayValues.oldSupportType, className: `support-types-card${isNextBtnClickedToShowValidationError && !caseType ? ' support-types-invalid' : ''}`, onKeyDown: onKeyDown, onClick: onSupportTypeClick, onSelectableInputChange: onChange, isSelected: !!caseType && supportTypesArrayValues.oldSupportType === caseType, hasSelectableInput: true, isSelectable: true, isSelectableRaised: true, isFullHeight: true, isDisabledRaised: ((_a = selectedAccountDetails === null || selectedAccountDetails === void 0 ? void 0 : selectedAccountDetails.data) === null || _a === void 0 ? void 0 : _a.subscriptionAbuse) || false, selectableInputAriaLabel: t(supportTypesArrayValues.supportTypeHeading), "data-tracking-id": supportTypesArrayValues.dataTrackingID },
129
+ React.createElement(CardBody, null, supportTypesArrayValues.icon ? (React.createElement(Split, null,
130
+ React.createElement(SplitItem, { className: "pf-u-pr-lg" },
131
+ React.createElement(Bullseye, null, supportTypesArrayValues.icon && supportTypesArrayValues.icon)),
132
+ React.createElement(SplitItem, { isFilled: true },
133
+ React.createElement("header", { className: "pf-u-font-family-redhatVF-heading-sans-serif" },
134
+ React.createElement(Trans, null, supportTypesArrayValues.supportTypeHeading)),
135
+ React.createElement(Trans, null, supportTypesArrayValues.supportTypeDescription)))) : (React.createElement(Bullseye, null,
136
+ React.createElement("header", { className: "pf-u-font-family-redhatVF-heading-sans-serif" },
137
+ React.createElement(Trans, null, supportTypesArrayValues.supportTypeHeading))))))));
138
+ }))));
136
139
  }
@@ -82,7 +82,7 @@ const AllProductsSelector = forwardRef((props, ref) => {
82
82
  React.createElement(OpenCaseIssue, { inlineEditable: false, required: true })),
83
83
  React.createElement("div", { className: "all-product-selector-dropdown" },
84
84
  React.createElement(ProductVersionDropdownSelector, { isLoading: allProducts.isFetching, products: props.checkEntitledProduct ? entitledProducts : allProducts.data.productsResult, onProductChange: onProductChange, onVersionChange: onVersionChange, ref: ref }))),
85
- React.createElement(AlertMessage, { isInline: true, variant: AlertType.DANGER, className: "pf-v5-u-mt-lg", title: t(`${loggedInUserRights.data.isSSOUsernameSameAsLoggedInUser(contactSSOName)
85
+ React.createElement(AlertMessage, { isInline: true, variant: AlertType.DANGER, className: "pf-u-mt-lg", title: t(`${loggedInUserRights.data.isSSOUsernameSameAsLoggedInUser(contactSSOName)
86
86
  ? 'You are'
87
87
  : 'Selected owner is'} not allowed to create case on this product.`), show: !allProducts.isFetching && props.checkEntitledProduct && !isEntitledProduct && !isEmpty(product) }),
88
88
  React.createElement(LoadingIndicator, { show: topContent.isFetching && props.loadTCOnChange }),
@@ -1 +1 @@
1
- {"version":3,"file":"NewProductDropdownSelector.d.ts","sourceRoot":"","sources":["../../../../src/components/ProductSelector/NewProductDropdownSelector.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,wCAAwC,CAAC;AAWpE,UAAU,MAAM;IACZ,QAAQ,EAAE,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;IAChC,eAAe,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,GAAG,CAAC;IAC1C,qCAAqC,EAAE,OAAO,CAAC;IAC/C,YAAY,EAAE,OAAO,CAAC;CACzB;AAED,eAAO,MAAM,0BAA0B,UAAW,MAAM,gBAuGvD,CAAC"}
1
+ {"version":3,"file":"NewProductDropdownSelector.d.ts","sourceRoot":"","sources":["../../../../src/components/ProductSelector/NewProductDropdownSelector.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,wCAAwC,CAAC;AAUpE,UAAU,MAAM;IACZ,QAAQ,EAAE,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;IAChC,eAAe,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,GAAG,CAAC;IAC1C,qCAAqC,EAAE,OAAO,CAAC;IAC/C,YAAY,EAAE,OAAO,CAAC;CACzB;AAED,eAAO,MAAM,0BAA0B,UAAW,MAAM,gBAuGvD,CAAC"}
@@ -1,5 +1,4 @@
1
- import { Divider } from '@patternfly/react-core';
2
- import { Select, SelectGroup, SelectOption, SelectVariant } from '@patternfly/react-core/deprecated';
1
+ import { Divider, Select, SelectGroup, SelectOption, SelectVariant } from '@patternfly/react-core';
3
2
  import { GlobalMetadataStateContext } from '@rh-support/react-context';
4
3
  import isEmpty from 'lodash/isEmpty';
5
4
  import isEqual from 'lodash/isEqual';
@@ -19,7 +18,7 @@ export const NewProductDropdownSelector = (props) => {
19
18
  // eslint-disable-next-line react-hooks/exhaustive-deps
20
19
  }, [props.isNextBtnClickedToShowValidationError]);
21
20
  const createOption = (product, id, type) => {
22
- return (React.createElement(SelectOption, { key: `${type}-${id}`, value: product.name, className: "pf-v5-c-select__menu-wrapper", "data-tracking-id": `${product.name ? product.name.replace(/\s+/g, '') : ''}-${type}-dropdown` }));
21
+ return (React.createElement(SelectOption, { key: `${type}-${id}`, value: product.name, className: "pf-c-select__menu-wrapper", "data-tracking-id": `${product.name ? product.name.replace(/\s+/g, '') : ''}-${type}-dropdown` }));
23
22
  };
24
23
  const onToggle = (isOpen) => {
25
24
  setIsOpen(isOpen);
@@ -32,10 +31,10 @@ export const NewProductDropdownSelector = (props) => {
32
31
  const productOptions = props.products.map((p, id) => createOption(p, id, 'product'));
33
32
  const allProductsTroubleshootOptions = allProducts.data.productsResult.map((p, id) => createOption(p, id, 'product'));
34
33
  return [
35
- React.createElement(SelectGroup, { label: t('Top products'), key: "topProducts", value: '', className: "product-selector-group" }),
34
+ React.createElement(SelectGroup, { label: t('Top products'), key: "topProducts", value: '' }),
36
35
  ...topProductOptions,
37
36
  React.createElement(Divider, { key: "all-product-divider" }),
38
- React.createElement(SelectGroup, { label: t('All products'), key: "AllProducts", value: '', className: "product-selector-group" }),
37
+ React.createElement(SelectGroup, { label: t('All products'), key: "AllProducts", value: '' }),
39
38
  ...(props.isCaseCreate ? productOptions : allProductsTroubleshootOptions),
40
39
  ];
41
40
  };
@@ -63,5 +62,5 @@ export const NewProductDropdownSelector = (props) => {
63
62
  setIsOpen(false);
64
63
  };
65
64
  return (React.createElement("div", null,
66
- React.createElement(Select, { variant: SelectVariant.typeahead, typeAheadAriaLabel: t('Search for or select a product'), onToggle: (_event, isOpen) => onToggle(isOpen), onSelect: onSelect, isOpen: isOpen, placeholderText: t('Search for or select a product'), "aria-labelledby": t('Product-selector'), onFilter: onFilter, selections: product, validated: isEmpty(product) && showValidationLocal ? 'error' : 'default', "data-tracking-id": "get-support-product-dropdown-selector" }, getOptions())));
65
+ React.createElement(Select, { variant: SelectVariant.typeahead, typeAheadAriaLabel: t('Search for or select a product'), onToggle: onToggle, onSelect: onSelect, isOpen: isOpen, placeholderText: t('Search for or select a product'), "aria-labelledby": t('Product-selector'), onFilter: onFilter, selections: product, validated: isEmpty(product) && showValidationLocal ? 'error' : 'default', "data-tracking-id": "get-support-product-dropdown-selector" }, getOptions())));
67
66
  };
@@ -1,4 +1,4 @@
1
- import { Select, SelectOption, SelectVariant } from '@patternfly/react-core/deprecated';
1
+ import { Select, SelectOption, SelectVariant } from '@patternfly/react-core';
2
2
  import { GlobalMetadataStateContext } from '@rh-support/react-context';
3
3
  import { getUniqueSortedVersions } from '@rh-support/utils';
4
4
  import isEmpty from 'lodash/isEmpty';
@@ -91,5 +91,5 @@ export const NewProductVersionSelector = (props) => {
91
91
  setIsOpen(false);
92
92
  };
93
93
  const titleId = 'version-selector';
94
- return (React.createElement(Select, Object.assign({ variant: SelectVariant.single, onToggle: (_event, isOpen) => onToggle(isOpen), onSelect: onSelect, isOpen: isOpen, placeholderText: t('Select a version'), "aria-labelledby": titleId, selections: version, validated: isEmpty(version) && showValidationLocal ? 'error' : 'default', isDisabled: isEmpty(product), "data-tracking-id": "get-support-version-dropdown-selector" }, (isSEProductApiIsDown && versionsDetails.isFetching && { loadingVariant: 'spinner' })), selectVersionOptions.map((version, index) => (React.createElement(SelectOption, { key: index, value: version })))));
94
+ return (React.createElement(Select, Object.assign({ variant: SelectVariant.single, onToggle: onToggle, onSelect: onSelect, isOpen: isOpen, placeholderText: t('Select a version'), "aria-labelledby": titleId, selections: version, validated: isEmpty(version) && showValidationLocal ? 'error' : 'default', isDisabled: isEmpty(product), "data-tracking-id": "get-support-version-dropdown-selector" }, (isSEProductApiIsDown && versionsDetails.isFetching && { loadingVariant: 'spinner' })), selectVersionOptions.map((version, index) => (React.createElement(SelectOption, { key: index, value: version })))));
95
95
  };
@@ -35,7 +35,7 @@ export default function ProductSelector(props) {
35
35
  const productSelectorRef = useRef(null);
36
36
  return (React.createElement(React.Fragment, null,
37
37
  allProducts.isFetching && React.createElement(ProductSelectorLoader, null),
38
- React.createElement(AlertMessage, { variant: AlertType.DANGER, className: "pf-v5-u-mt-lg", title: t('There was an error loading products.'), show: allProducts.isError }),
38
+ React.createElement(AlertMessage, { variant: AlertType.DANGER, className: "pf-u-mt-lg", title: t('There was an error loading products.'), show: allProducts.isError }),
39
39
  !allProducts.isFetching && !allProducts.isError && (React.createElement(React.Fragment, null,
40
40
  React.createElement("form", null,
41
41
  React.createElement(AllProductsSelector, { routeProps: props.routeProps, checkEntitledProduct: isCaseCreate ? true : false, ref: productSelectorRef }),
@@ -52,5 +52,5 @@ export default function ProductSelector(props) {
52
52
  React.createElement(EARuleWidget, null)),
53
53
  React.createElement("div", { className: "suggestions-result-section" },
54
54
  React.createElement(ErrorBoundary, { errorMsgInfo: { message: t('There was an error loading recommendations') } }, !isEmpty(version) && (React.createElement("div", { className: "common-suggestions" },
55
- React.createElement(Recommendations, null)))))))));
55
+ React.createElement(Recommendations, { routeProps: props.routeProps })))))))));
56
56
  }
@@ -2,11 +2,8 @@
2
2
  * We need to wrap Critical solution toast notification and Cluster recommendation toast notification so they don't get overlapped.
3
3
  */
4
4
  import { FC } from 'react';
5
- import { RouteComponentProps } from 'react-router-dom';
6
- import { IRouteUrlParams } from '../../reducers/RouteConstNTypes';
7
5
  interface IProps {
8
6
  submitCaseAndNavigate: (isReSubmitting: boolean) => void;
9
- routeProps: RouteComponentProps<IRouteUrlParams>;
10
7
  }
11
8
  declare const AlertToastWrapper: FC<IProps>;
12
9
  export default AlertToastWrapper;
@@ -1 +1 @@
1
- {"version":3,"file":"AlertToastWrapper.d.ts","sourceRoot":"","sources":["../../../../src/components/Recommendations/AlertToastWrapper.tsx"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAc,EAAE,EAAE,EAAmC,MAAM,OAAO,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAKvD,OAAO,EAAiC,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAMjG,UAAU,MAAM;IACZ,qBAAqB,EAAE,CAAC,cAAc,EAAE,OAAO,KAAK,IAAI,CAAC;IACzD,UAAU,EAAE,mBAAmB,CAAC,eAAe,CAAC,CAAC;CACpD;AAED,QAAA,MAAM,iBAAiB,EAAE,EAAE,CAAC,MAAM,CAuCjC,CAAC;AAEF,eAAe,iBAAiB,CAAC"}
1
+ {"version":3,"file":"AlertToastWrapper.d.ts","sourceRoot":"","sources":["../../../../src/components/Recommendations/AlertToastWrapper.tsx"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAc,EAAE,EAAE,EAAmC,MAAM,OAAO,CAAC;AAWnE,UAAU,MAAM;IACZ,qBAAqB,EAAE,CAAC,cAAc,EAAE,OAAO,KAAK,IAAI,CAAC;CAC5D;AAED,QAAA,MAAM,iBAAiB,EAAE,EAAE,CAAC,MAAM,CAuCjC,CAAC;AAEF,eAAe,iBAAiB,CAAC"}
@@ -13,7 +13,7 @@ import { AttachmentStateContext } from '../shared/fileUpload';
13
13
  import { ResubmitToast } from '../SubmitCase/ResubmitToast';
14
14
  import ClusterRecommendationToast from './ClusterRecommendationToast';
15
15
  import CriticalSolutionsToast from './CriticalSolutionsToast';
16
- const AlertToastWrapper = ({ submitCaseAndNavigate, routeProps }) => {
16
+ const AlertToastWrapper = ({ submitCaseAndNavigate }) => {
17
17
  const { routeState: { activeSection }, } = useContext(RouteContext);
18
18
  const [isCriticalSolutionsVisible, setIsCriticalSolutionsVisible] = useState(true);
19
19
  const { caseType } = useCaseSelector((state) => ({
@@ -33,6 +33,6 @@ const AlertToastWrapper = ({ submitCaseAndNavigate, routeProps }) => {
33
33
  return (React.createElement(AlertGroup, { isToast: true },
34
34
  isCriticalSolutionsVisible && isNotAnIdea && React.createElement(CriticalSolutionsToast, { userClosed: userClosed }),
35
35
  !hideClusterIdReportModal && isNotAnIdea && React.createElement(ClusterRecommendationToast, null),
36
- React.createElement(ResubmitToast, { submitCaseAndNavigate: submitCaseAndNavigate, routeProps: routeProps })));
36
+ React.createElement(ResubmitToast, { submitCaseAndNavigate: submitCaseAndNavigate })));
37
37
  };
38
38
  export default AlertToastWrapper;
@@ -1,2 +1,8 @@
1
- export declare function AsideResults(): JSX.Element;
1
+ import { RouteComponentProps } from 'react-router-dom';
2
+ import { IRouteUrlParams } from '../../reducers/RouteConstNTypes';
3
+ interface IProps {
4
+ routeProps: RouteComponentProps<IRouteUrlParams>;
5
+ }
6
+ export declare function AsideResults(props: IProps): JSX.Element;
7
+ export {};
2
8
  //# sourceMappingURL=AsideResults.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AsideResults.d.ts","sourceRoot":"","sources":["../../../../src/components/Recommendations/AsideResults.tsx"],"names":[],"mappings":"AAiCA,wBAAgB,YAAY,gBAkM3B"}
1
+ {"version":3,"file":"AsideResults.d.ts","sourceRoot":"","sources":["../../../../src/components/Recommendations/AsideResults.tsx"],"names":[],"mappings":"AAmBA,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAUvD,OAAO,EAAE,eAAe,EAAsC,MAAM,iCAAiC,CAAC;AAWtG,UAAU,MAAM;IACZ,UAAU,EAAE,mBAAmB,CAAC,eAAe,CAAC,CAAC;CACpD;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,eAuOzC"}
@@ -9,7 +9,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
9
9
  };
10
10
  import { pcm, search } from '@cee-eng/hydrajs';
11
11
  import { useDebounce } from '@rh-support/components';
12
- import { computeRecommendationAbstract, computeRecommendationTitle, getSolrParams, PreviousCaseTypes, replaceHighlightingData, } from '@rh-support/utils';
12
+ import { GlobalMetadataStateContext } from '@rh-support/react-context';
13
+ import { computeRecommendationAbstract, computeRecommendationTitle, getConfigField, getSolrParams, getTrimmedSpecialCharacters, PCM_CONFIG_FIELD_TYPE, PreviousCaseTypes, replaceHighlightingData, } from '@rh-support/utils';
13
14
  import isEmpty from 'lodash/isEmpty';
14
15
  import isEqual from 'lodash/isEqual';
15
16
  import React, { useContext, useEffect, useRef } from 'react';
@@ -18,18 +19,22 @@ import { useCaseDispatch, useCaseSelector } from '../../context/CaseContext';
18
19
  import { RecommendationDispatchContext, RecommendationStateContext } from '../../context/RecommendationContext';
19
20
  import { RouteContext } from '../../context/RouteContext';
20
21
  import { SessionRestoreDispatchContext, SessionRestoreStateContext } from '../../context/SessionRestoreContext';
22
+ import { WATSONX_DESCRIPTION_LIMIT, WATSONX_SUMMARY_LIMIT } from '../../reducers/CaseConstNTypes';
21
23
  import { getDescriptionWOQues } from '../../reducers/CaseHelpers';
22
24
  import { setCaseRecommendations } from '../../reducers/CaseReducer';
23
25
  import { RecommendationsConstants } from '../../reducers/RecommendationsReducer';
24
26
  import { showSidebarRecommendationsSections } from '../../reducers/RouteConstNTypes';
25
27
  import { createOrUpdateSessionResources, getSessResFromRec, getSessResFromRecs, } from '../../reducers/SessionRestoreReducer';
26
28
  import RouteUtils from '../../utils/routeUtils';
29
+ import { ShowRank } from './ShowRank';
27
30
  const { SessionResourceSource, SessionResourceVisibility } = pcm.preCase.session;
28
- export function AsideResults() {
31
+ export function AsideResults(props) {
29
32
  /*
30
33
  * Sidebar recommendation logic
31
34
  */
32
- const { isSelectedAccounntSecureSupport, product, version, caseResourceLinks, summary, issue, environment, periodicityOfIssue, timeFramesAndUrgency, caseType, } = useCaseSelector((state) => ({
35
+ const { globalMetadataState: { loggedInUsersAccount, pcmConfig }, } = useContext(GlobalMetadataStateContext);
36
+ const isRerankEnabled = getConfigField(pcmConfig.data, 'isRerankEnabled', PCM_CONFIG_FIELD_TYPE.FEATURE_FLAG);
37
+ const { isSelectedAccounntSecureSupport, product, version, caseResourceLinks, summary, issue, environment, periodicityOfIssue, timeFramesAndUrgency, caseType, isFetchingRecommendationsFromWatsonX, } = useCaseSelector((state) => ({
33
38
  isSelectedAccounntSecureSupport: state.selectedAccountDetails.data.secureSupport,
34
39
  product: state.caseDetails.product,
35
40
  version: state.caseDetails.version,
@@ -40,6 +45,7 @@ export function AsideResults() {
40
45
  periodicityOfIssue: state.caseDetails.periodicityOfIssue,
41
46
  timeFramesAndUrgency: state.caseDetails.timeFramesAndUrgency,
42
47
  caseType: state.caseDetails.caseType,
48
+ isFetchingRecommendationsFromWatsonX: state.isFetchingRecommendationsFromWatsonX,
43
49
  }), isEqual);
44
50
  const caseDispatch = useCaseDispatch();
45
51
  // getting recommendation dispatch and state via context
@@ -75,7 +81,13 @@ export function AsideResults() {
75
81
  const queryFilters = {
76
82
  id: { values: recommendationState.insightsKcsIds, exclude: true },
77
83
  };
78
- const response = yield search.getRecommendationsForCase(payload, getSolrParams(PAGE_SIZE, 129, queryFilters), controllerRef.current.signal);
84
+ const response = isFetchingRecommendationsFromWatsonX && !loggedInUsersAccount.data.secureSupport
85
+ ? yield search.getWatsonXRecommendationsForCase(Object.assign(Object.assign(Object.assign(Object.assign({ product: product, version: version }, ((payload === null || payload === void 0 ? void 0 : payload.summary) && {
86
+ summary: getTrimmedSpecialCharacters(payload.summary, WATSONX_SUMMARY_LIMIT),
87
+ })), ((payload === null || payload === void 0 ? void 0 : payload.description) && {
88
+ description: getTrimmedSpecialCharacters(payload === null || payload === void 0 ? void 0 : payload.description, WATSONX_DESCRIPTION_LIMIT),
89
+ })), { rerank: isRerankEnabled }), getSolrParams(PAGE_SIZE, 129, queryFilters)), controllerRef.current.signal)
90
+ : yield search.getRecommendationsForCase(payload, getSolrParams(PAGE_SIZE, 129, queryFilters), controllerRef.current.signal);
79
91
  const sideDocs = replaceHighlightingData(response.response.docs, response.highlighting);
80
92
  recommendationDispatch({
81
93
  type: RecommendationsConstants.receiveSidebarRecommendation,
@@ -136,6 +148,7 @@ export function AsideResults() {
136
148
  return (React.createElement("li", { className: "result", key: doc.id },
137
149
  React.createElement("header", { className: "result-header" },
138
150
  React.createElement("a", { href: `${doc.view_uri}?${RouteUtils.getSEResourceQueryParams(activeSessionId, (_b = (_a = sessionResourceTracking[SessionResourceSource.RECOMMENDATIONS_ASIDE]) === null || _a === void 0 ? void 0 : _a.resourceOriginId) !== null && _b !== void 0 ? _b : '', SessionResourceSource.RECOMMENDATIONS_ASIDE)}`, className: "se-recommended ts-result-aside", "data-tracking-id": `se-recommended-sidebar-recommendations-${index}`, rel: "noopener noreferrer", target: "_blank", onClick: onResourceClick(doc, index), dangerouslySetInnerHTML: computeRecommendationTitle(doc) })),
151
+ isFetchingRecommendationsFromWatsonX && (React.createElement(ShowRank, { index: index, originalRank: doc.original_rank, routeProps: props.routeProps })),
139
152
  React.createElement("p", { className: "result-body", dangerouslySetInnerHTML: computeRecommendationAbstract(doc, 150) })));
140
153
  })))));
141
154
  }
@@ -32,7 +32,7 @@ export function ClusterRecommendationItems(props) {
32
32
  React.createElement(Label, { icon: riskLabels[rule.total_risk].icon, className: riskLabels[rule.total_risk].className },
33
33
  React.createElement(Trans, null, riskLabels[rule.total_risk].label))),
34
34
  React.createElement("p", null, rule.details || ''),
35
- React.createElement("a", { onClick: (e) => onResourceClick(e, rule), className: "pf-v5-u-font-weight-bold", "data-tracking-id": "cluster-recommendations", href: `https://console.redhat.com/openshift/insights/advisor/clusters/${openshiftClusterID}`, target: "_blank", rel: "noopener noreferrer" },
35
+ React.createElement("a", { onClick: (e) => onResourceClick(e, rule), className: "pf-u-font-weight-bold", "data-tracking-id": "cluster-recommendations", href: `https://console.redhat.com/openshift/insights/advisor/clusters/${openshiftClusterID}`, target: "_blank", rel: "noopener noreferrer" },
36
36
  React.createElement(Trans, null,
37
37
  "View details and remediation steps ",
38
38
  React.createElement(ArrowRightIcon, { "aria-hidden": "true" })))))))));
@@ -36,7 +36,7 @@ export default function ClusterRecommendations(props) {
36
36
  React.createElement(Trans, null, "Cluster recommendations")),
37
37
  React.createElement("div", null,
38
38
  React.createElement(ClusterRecommendationItems, { clusterRecommendations: clusterRecommendations.data.slice(0, NUMBER_OF_RULES_TO_DISPLAY) }),
39
- clusterRecommendations.data.length > NUMBER_OF_RULES_TO_DISPLAY && (React.createElement(Button, { className: "pf-v5-u-p-md", variant: "link", isBlock: true, onClick: onViewMoreRecommendation, "data-tracking-id": "cluster-recs-view-more" },
39
+ clusterRecommendations.data.length > NUMBER_OF_RULES_TO_DISPLAY && (React.createElement(Button, { className: "pf-u-p-md", variant: "link", isBlock: true, onClick: onViewMoreRecommendation, "data-tracking-id": "cluster-recs-view-more" },
40
40
  React.createElement(Trans, null, "View more recommendations")))))),
41
41
  showClusterRecommendationsModal && React.createElement(ClusterRecommendationsModal, null)));
42
42
  }
@@ -10,7 +10,7 @@ export function EARuleInfoAccordion({ rule, showNewTag }) {
10
10
  React.createElement(AccordionToggle, { isExpanded: isExpanded, id: "ea-rule-accordion-toggle", onClick: () => {
11
11
  setIsExpanded(!isExpanded);
12
12
  } },
13
- showNewTag && ((_a = rule === null || rule === void 0 ? void 0 : rule.isNew) !== null && _a !== void 0 ? _a : false) && (React.createElement(Label, { color: "green", className: "pf-v5-u-mr-md" },
13
+ showNewTag && ((_a = rule === null || rule === void 0 ? void 0 : rule.isNew) !== null && _a !== void 0 ? _a : false) && (React.createElement(Label, { color: "green", className: "pf-u-mr-md" },
14
14
  React.createElement(Trans, null, "NEW"))),
15
15
  React.createElement("span", null,
16
16
  React.createElement(EARuleTitle, null))),
@@ -93,18 +93,18 @@ export function EARuleInfoInline({ eaRules = [] }) {
93
93
  return (React.createElement(React.Fragment, null,
94
94
  React.createElement(RecommendationFeedbackModal, { isModalOpen: isModalVisible, handleModalToggle: onModalToggle, modalContent: t(`Great, we're glad that resolved your issue`) }),
95
95
  React.createElement(EARule, { rule: visibleRule },
96
- React.createElement("div", { className: "pf-v5-c-alert pf-m-info pf-m-inline pf-v5-u-mb-md", "aria-label": "Success alert" },
97
- React.createElement("div", { className: "pf-v5-c-alert__icon" },
96
+ React.createElement("div", { className: "pf-c-alert pf-m-info pf-m-inline pf-u-mb-md", "aria-label": "Success alert" },
97
+ React.createElement("div", { className: "pf-c-alert__icon" },
98
98
  React.createElement(InfoCircleIcon, null)),
99
- React.createElement("p", { className: "pf-v5-c-alert__title" },
99
+ React.createElement("p", { className: "pf-c-alert__title" },
100
100
  React.createElement("strong", null,
101
101
  React.createElement(EARuleTitle, null))),
102
- React.createElement("div", { className: "pf-v5-c-alert__action" },
102
+ React.createElement("div", { className: "pf-c-alert__action" },
103
103
  React.createElement(Button, { style: { fontSize: 15 }, variant: ButtonVariant.link, "data-tracking-id": "se-recommended-asa-ignore", type: "button", onClick: onIgnoreBtnClick }, validEARulesLength > 1 ? React.createElement(Trans, null, "Skip") : React.createElement(CloseIcon, null))),
104
- React.createElement("div", { className: "pf-v5-c-alert__description" },
104
+ React.createElement("div", { className: "pf-c-alert__description" },
105
105
  React.createElement(EARuleDescription, null)),
106
- React.createElement("div", { className: "pf-v5-c-alert__action-group pf-v5-u-display-flex" },
107
- React.createElement(EARuleArticle, { className: "pf-v5-u-align-self-center pf-v5-u-mr-sm", linkTitle: "View details" }),
106
+ React.createElement("div", { className: "pf-c-alert__action-group pf-u-display-flex" },
107
+ React.createElement(EARuleArticle, { className: "pf-u-align-self-center pf-u-mr-sm", linkTitle: "View details" }),
108
108
  !isSecureSupportAccount && resolvedMyIssue(),
109
109
  validEARulesLength > 1 && (React.createElement(PaginationCompact, { maxPage: validEARulesLength, onPageChange: onPaginationChange, dataTrackingId: 'se-recommended-asa-widget' })))))));
110
110
  }
@@ -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;IACvB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC7B;AASD,MAAM,WAAW,wBAAyB,SAAQ,mBAAmB;IACjE,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,OAAO,CAAC;CAClB;AAED,iBAAS,eAAe,CAAC,KAAK,EAAE,MAAM,eA0PrC;kBA1PQ,eAAe;;;AA6PxB,eAAe,eAAe,CAAC"}
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;IACvB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC7B;AASD,MAAM,WAAW,wBAAyB,SAAQ,mBAAmB;IACjE,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,OAAO,CAAC;CAClB;AAED,iBAAS,eAAe,CAAC,KAAK,EAAE,MAAM,eAyPrC;kBAzPQ,eAAe;;;AA4PxB,eAAe,eAAe,CAAC"}
@@ -87,7 +87,7 @@ function InsightsResults(props) {
87
87
  payload: { isRuleModalVisible: isVisible },
88
88
  });
89
89
  };
90
- function fetchRecommendations(localFile) {
90
+ function fetchFileRecommendations(localFile) {
91
91
  var _a, _b, _c;
92
92
  return __awaiter(this, void 0, void 0, function* () {
93
93
  const analysisResults = (_a = localFile === null || localFile === void 0 ? void 0 : localFile.analysisMetadata) === null || _a === void 0 ? void 0 : _a.analysisResults;
@@ -190,7 +190,7 @@ function InsightsResults(props) {
190
190
  !(insightResultsMap[localFile.attachmentId] || recommendedResultsMap[localFile.attachmentId]) &&
191
191
  isAnalysisComplete(localFile.analysisMetadata.analysisStatus) &&
192
192
  ((_b = (_a = localFile.analysisMetadata.analysisResults) === null || _a === void 0 ? void 0 : _a.kcs_ids) !== null && _b !== void 0 ? _b : []).length > 0 &&
193
- fetchRecommendations(localFile);
193
+ fetchFileRecommendations(localFile);
194
194
  });
195
195
  }
196
196
  // eslint-disable-next-line react-hooks/exhaustive-deps
@@ -240,7 +240,7 @@ function InsightsResults(props) {
240
240
  }
241
241
  return (React.createElement(React.Fragment, null,
242
242
  !rulesState.triggerRuleNotification && caseType !== PreviousCaseTypes.FEATURE_ENHANCEMENT && (React.createElement(Alert, { isInline: true, title: t('File recommendations are ready to view'), "data-tracking-id": "inline-view-critical-solution-alert", children: React.createElement("p", null,
243
- React.createElement(Trans, null, "Troubleshooting specific for your uploaded files.")), className: "file-recommendations-file-upload-alert" })),
243
+ React.createElement(Trans, null, "Troubleshooting specific for your uploaded files.")) })),
244
244
  React.createElement(InsightResultModal, { EARule: validEARules, onModalToggle: insightsModalToggle, isOpen: isRuleModalVisible, insightResults: allResults })));
245
245
  }
246
246
  InsightsResults.defaultProps = defaultProps;
@@ -55,19 +55,19 @@ export function InsightsRuleInfo({ doc, showNewTag, duplicateKeys }) {
55
55
  React.createElement(AccordionToggle, { isExpanded: isParentExpanded, id: doc.id + doc.attachmentId, onClick: () => {
56
56
  setIsParentExpanded(!isParentExpanded);
57
57
  } },
58
- showNewTag && ((_b = (_a = insightsReport === null || insightsReport === void 0 ? void 0 : insightsReport.current) === null || _a === void 0 ? void 0 : _a.isNew) !== null && _b !== void 0 ? _b : false) && (React.createElement(Label, { color: "green", className: "pf-v5-u-mr-md" },
58
+ showNewTag && ((_b = (_a = insightsReport === null || insightsReport === void 0 ? void 0 : insightsReport.current) === null || _a === void 0 ? void 0 : _a.isNew) !== null && _b !== void 0 ? _b : false) && (React.createElement(Label, { color: "green", className: "pf-u-mr-md" },
59
59
  React.createElement(Trans, null, "NEW"))),
60
60
  React.createElement("div", null,
61
61
  React.createElement("div", null, ruleData === null || ruleData === void 0 ? void 0 : ruleData.summary),
62
- React.createElement("div", { className: "pf-v5-u-mb-sm pf-v5-u-text-align-left" }, ((_d = (_c = insightsReport === null || insightsReport === void 0 ? void 0 : insightsReport.current) === null || _c === void 0 ? void 0 : _c.name) !== null && _d !== void 0 ? _d : false) && (React.createElement(Label, null,
62
+ React.createElement("div", { className: "pf-u-mb-sm pf-u-text-align-left" }, ((_d = (_c = insightsReport === null || insightsReport === void 0 ? void 0 : insightsReport.current) === null || _c === void 0 ? void 0 : _c.name) !== null && _d !== void 0 ? _d : false) && (React.createElement(Label, null,
63
63
  React.createElement(Trans, null, insightsReport.current.name)))),
64
- React.createElement("div", { className: "pf-v5-u-text-align-left" },
65
- React.createElement(LabelGroup, { numLabels: 5 }, ((doc === null || doc === void 0 ? void 0 : doc.tag) || []).map((tag) => (React.createElement(Label, { color: "gold", className: "pf-v5-u-mr-sm" }, tag))))))),
64
+ React.createElement("div", { className: "pf-u-text-align-left" },
65
+ React.createElement(LabelGroup, { numLabels: 5 }, ((doc === null || doc === void 0 ? void 0 : doc.tag) || []).map((tag) => (React.createElement(Label, { color: "gold", className: "pf-u-mr-sm" }, tag))))))),
66
66
  React.createElement(AccordionContent, { isHidden: !isParentExpanded },
67
67
  React.createElement(Accordion, { asDefinitionList: false, className: "push-bottom-narrow" },
68
68
  React.createElement(AccordionItem, null,
69
69
  React.createElement(AccordionToggle, { isExpanded: isIssueExpanded, onClick: () => setIsIssueExpanded(!isIssueExpanded), id: `${doc.id}-detected-issue` },
70
- React.createElement(BullseyeIcon, { className: "pf-v5-u-mr-sm" }),
70
+ React.createElement(BullseyeIcon, { className: "pf-u-mr-sm" }),
71
71
  React.createElement(Trans, null, "Detected issues")),
72
72
  React.createElement(AccordionContent, { isHidden: !isIssueExpanded },
73
73
  React.createElement("p", { dangerouslySetInnerHTML: {
@@ -76,11 +76,11 @@ export function InsightsRuleInfo({ doc, showNewTag, duplicateKeys }) {
76
76
  } }))),
77
77
  ((_f = ruleData === null || ruleData === void 0 ? void 0 : ruleData.more_info) !== null && _f !== void 0 ? _f : false) && (React.createElement(AccordionItem, null,
78
78
  React.createElement(AccordionToggle, { isExpanded: isAdditionalExpanded, onClick: () => setIsAdditionalExpanded(!isAdditionalExpanded), id: `${doc.id}-additional-info` },
79
- React.createElement(InfoCircleIcon, { className: "pf-v5-u-mr-sm" }),
79
+ React.createElement(InfoCircleIcon, { className: "pf-u-mr-sm" }),
80
80
  React.createElement(Trans, null, "Additional info")),
81
81
  React.createElement(AccordionContent, { isHidden: !isAdditionalExpanded },
82
82
  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) }))))),
83
83
  React.createElement("pfe-cta", null,
84
- React.createElement("a", { className: "se-recommended ts-result-insights pf-v5-u-font-size-sm", rel: "noopener noreferrer", target: "_blank", onClick: onCtaClick(doc.view_uri), "data-tracking-id": "get-support-recommended-insights-rule", "aria-label": "Related article", role: "button", href: getTrackingULRWithQueryParams(doc.view_uri, SessionResourceSource.INSIGHTS) },
84
+ React.createElement("a", { className: "se-recommended ts-result-insights pf-u-font-size-sm", rel: "noopener noreferrer", target: "_blank", onClick: onCtaClick(doc.view_uri), "data-tracking-id": "get-support-recommended-insights-rule", "aria-label": "Related article", role: "button", href: getTrackingULRWithQueryParams(doc.view_uri, SessionResourceSource.INSIGHTS) },
85
85
  React.createElement(Trans, null, "Related article"))))))));
86
86
  }
@@ -4,7 +4,7 @@ import { Trans } from 'react-i18next';
4
4
  import { Link } from 'react-router-dom';
5
5
  export function RecommendationFeedbackModal({ isModalOpen, handleModalToggle, modalContent }) {
6
6
  return (React.createElement(Modal, { variant: ModalVariant.small, id: "resolved-feedback-modal", "aria-describedby": "rec-feedback-modal", "aria-label": "Feedback modal", isOpen: isModalOpen, onClose: handleModalToggle, actions: [
7
- React.createElement(Link, { "data-tracking-id": "resolved-feedback-cases", key: "view", className: "pf-v5-c-button pf-m-primary", to: "/case/list" },
7
+ React.createElement(Link, { "data-tracking-id": "resolved-feedback-cases", key: "view", className: "pf-c-button pf-m-primary", to: "/case/list" },
8
8
  React.createElement(Trans, null, "View your cases")),
9
9
  React.createElement(Button, { "data-tracking-id": "resolved-feedback-continue", key: "continue", variant: "link", onClick: handleModalToggle },
10
10
  React.createElement(Trans, null, "Continue troubleshooting")),
@@ -1,4 +1,7 @@
1
+ import { RouteComponentProps } from 'react-router-dom';
2
+ import { IRouteUrlParams } from '../../reducers/RouteConstNTypes';
1
3
  interface IProps {
4
+ routeProps: RouteComponentProps<IRouteUrlParams>;
2
5
  }
3
6
  export default function Recommendations(props: IProps): JSX.Element;
4
7
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"Recommendations.d.ts","sourceRoot":"","sources":["../../../../src/components/Recommendations/Recommendations.tsx"],"names":[],"mappings":"AA4CA,UAAU,MAAM;CAAG;AACnB,MAAM,CAAC,OAAO,UAAU,eAAe,CAAC,KAAK,EAAE,MAAM,eAkOpD"}
1
+ {"version":3,"file":"Recommendations.d.ts","sourceRoot":"","sources":["../../../../src/components/Recommendations/Recommendations.tsx"],"names":[],"mappings":"AAsBA,OAAO,EAAE,mBAAmB,EAAa,MAAM,kBAAkB,CAAC;AAelE,OAAO,EAAoB,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAWpF,UAAU,MAAM;IACZ,UAAU,EAAE,mBAAmB,CAAC,eAAe,CAAC,CAAC;CACpD;AAED,MAAM,CAAC,OAAO,UAAU,eAAe,CAAC,KAAK,EAAE,MAAM,eAwQpD"}
@@ -2,7 +2,7 @@ import { pcm } from '@cee-eng/hydrajs';
2
2
  import { Pagination, PaginationVariant } from '@patternfly/react-core';
3
3
  import { LoadingDots, useDebounce, usePrevious } from '@rh-support/components';
4
4
  import { useGlobalStateContext } from '@rh-support/react-context';
5
- import { computeRecommendationAbstract, computeRecommendationTitle, formatDate, scrollIntoView, } from '@rh-support/utils';
5
+ import { computeRecommendationAbstract, computeRecommendationTitle, formatDate, getConfigField, PCM_CONFIG_FIELD_TYPE, scrollIntoView, } from '@rh-support/utils';
6
6
  import differenceBy from 'lodash/differenceBy';
7
7
  import isEmpty from 'lodash/isEmpty';
8
8
  import isEqual from 'lodash/isEqual';
@@ -16,10 +16,11 @@ import { RouteContext } from '../../context/RouteContext';
16
16
  import { SessionRestoreDispatchContext, SessionRestoreStateContext } from '../../context/SessionRestoreContext';
17
17
  import { getRecommendationObject } from '../../reducers/CaseHelpers';
18
18
  import { setCaseRecommendations } from '../../reducers/CaseReducer';
19
- import { fetchRecommendations, RecommendationsConstants, setCurrentPage, setVisibleDocs, } from '../../reducers/RecommendationsReducer';
19
+ import { fetchRecommendations, fetchWatsonXRecommendations, RecommendationsConstants, setCurrentPage, setVisibleDocs, } from '../../reducers/RecommendationsReducer';
20
20
  import { AppRouteSections } from '../../reducers/RouteConstNTypes';
21
21
  import { createOrUpdateSessionResources, getSessResFromRec, getSessResFromRecs, } from '../../reducers/SessionRestoreReducer';
22
22
  import RouteUtils from '../../utils/routeUtils';
23
+ import { ShowRank } from './ShowRank';
23
24
  const { SessionResourceSource, SessionResourceVisibility } = pcm.preCase.session;
24
25
  export default function Recommendations(props) {
25
26
  var _a, _b, _c;
@@ -33,7 +34,10 @@ export default function Recommendations(props) {
33
34
  const caseDispatch = useCaseDispatch();
34
35
  // Use Case Number
35
36
  const { caseNumber } = useParams();
36
- const { globalMetadataState: { navBarRef, loggedInUsersAccount }, } = useGlobalStateContext();
37
+ const { globalMetadataState: { navBarRef, loggedInUsersAccount, pcmConfig }, } = useGlobalStateContext();
38
+ const { isFetchingRecommendationsFromWatsonX } = useCaseSelector((state) => ({
39
+ isFetchingRecommendationsFromWatsonX: state.isFetchingRecommendationsFromWatsonX,
40
+ }), isEqual);
37
41
  const isSecureSupportAccount = loggedInUsersAccount.data.secureSupport;
38
42
  const { routeState: { activeSection }, } = useContext(RouteContext);
39
43
  const { sessionRestore: { activeSessionId, sessionResourceTracking }, } = useContext(SessionRestoreStateContext);
@@ -42,7 +46,9 @@ export default function Recommendations(props) {
42
46
  const [pageSize, setPageSize] = useState(null);
43
47
  const { recommendationState } = useContext(RecommendationStateContext);
44
48
  const prevMainRecommendations = usePrevious((_a = recommendationState === null || recommendationState === void 0 ? void 0 : recommendationState.visibleDocs) !== null && _a !== void 0 ? _a : []);
49
+ const prevIsFetchingRecommendationsFromWatsonX = usePrevious(isFetchingRecommendationsFromWatsonX);
45
50
  const recommendationDispatch = useContext(RecommendationDispatchContext);
51
+ const isRerankEnabled = getConfigField(pcmConfig.data, 'isRerankEnabled', PCM_CONFIG_FIELD_TYPE.FEATURE_FLAG);
46
52
  const DEFAULTPAGESIZE = 8;
47
53
  const MAXROW = 24;
48
54
  const recPageSize = pageSize !== null && pageSize !== void 0 ? pageSize : DEFAULTPAGESIZE;
@@ -65,7 +71,10 @@ export default function Recommendations(props) {
65
71
  * Also, log the newly presented resources on the session
66
72
  */
67
73
  useDebounce(() => {
68
- if (activeSection !== AppRouteSections.SUMMARIZE || !summary || isRecSearchPayloadSame) {
74
+ if (activeSection !== AppRouteSections.SUMMARIZE ||
75
+ !summary ||
76
+ (isRecSearchPayloadSame &&
77
+ prevIsFetchingRecommendationsFromWatsonX === isFetchingRecommendationsFromWatsonX)) {
69
78
  return;
70
79
  }
71
80
  setCurrentPage(recommendationDispatch, 1);
@@ -79,7 +88,9 @@ export default function Recommendations(props) {
79
88
  // recreate a new AbortController for each call
80
89
  let controller = new AbortController();
81
90
  abortControllerRef.current = controller;
82
- fetchRecommendations(recommendationDispatch, payload, MAXROW, recPageSize, 0, true, caseNumber, isSecureSupportAccount, queryFilters, controller.signal);
91
+ isFetchingRecommendationsFromWatsonX && !loggedInUsersAccount.data.secureSupport
92
+ ? fetchWatsonXRecommendations(recommendationDispatch, payload, MAXROW, recPageSize, 0, true, caseNumber, isSecureSupportAccount, queryFilters, controller.signal, isRerankEnabled)
93
+ : fetchRecommendations(recommendationDispatch, payload, MAXROW, recPageSize, 0, true, caseNumber, isSecureSupportAccount, queryFilters, controller.signal);
83
94
  }, [
84
95
  activeSection,
85
96
  environment,
@@ -89,6 +100,7 @@ export default function Recommendations(props) {
89
100
  summary,
90
101
  version,
91
102
  recommendationState.insightsKcsIds,
103
+ isFetchingRecommendationsFromWatsonX,
92
104
  ], 1000);
93
105
  useEffect(() => {
94
106
  const visibleRecs = [];
@@ -129,7 +141,7 @@ export default function Recommendations(props) {
129
141
  };
130
142
  return (React.createElement(React.Fragment, null,
131
143
  React.createElement(LoadingDots, { show: recommendationState.isLoadingRecommendations && !isEmpty(summary) }),
132
- React.createElement("div", { className: "recommendation-list pf-v5-u-mt-lg", ref: resultRowRef },
144
+ React.createElement("div", { className: "recommendation-list pf-u-mt-lg", ref: resultRowRef },
133
145
  React.createElement("ul", { className: "list-flat" }, map(recommendationState.visibleDocs, (doc, i) => {
134
146
  var _a, _b;
135
147
  return (React.createElement("li", { className: "result", key: doc.id },
@@ -142,6 +154,7 @@ export default function Recommendations(props) {
142
154
  React.createElement("span", { className: "meta" }, doc.documentKind),
143
155
  React.createElement("span", { className: "list-separator" }, "\u2013"),
144
156
  React.createElement("time", { className: "moment_date meta", title: doc.lastModifiedDate.toString() }, formatDate(doc.lastModifiedDate)))),
157
+ isFetchingRecommendationsFromWatsonX && (React.createElement(ShowRank, { index: i, originalRank: doc.original_rank, routeProps: props.routeProps, perPage: recPageSize, pageNo: recommendationState.currentPage })),
145
158
  React.createElement("p", { className: "result-body", dangerouslySetInnerHTML: computeRecommendationAbstract(doc, 300) })));
146
159
  })),
147
160
  recommendationState.numFound !== 0 && recommendationState.numFound > DEFAULTPAGESIZE && (React.createElement("div", { className: "pagination-footer" },
@@ -1 +1 @@
1
- {"version":3,"file":"RulesModal.d.ts","sourceRoot":"","sources":["../../../../src/components/Recommendations/RulesModal.tsx"],"names":[],"mappings":"AAmBA,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAI5D,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAG7D,UAAU,MAAM;IACZ,cAAc,EAAE,wBAAwB,EAAE,CAAC;IAC3C,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,aAAa,EAAE,CAAC;IACxB,aAAa,EAAE,MAAM,GAAG,CAAC;IACzB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,eA+M/C"}
1
+ {"version":3,"file":"RulesModal.d.ts","sourceRoot":"","sources":["../../../../src/components/Recommendations/RulesModal.tsx"],"names":[],"mappings":"AAmBA,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAI5D,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAG7D,UAAU,MAAM;IACZ,cAAc,EAAE,wBAAwB,EAAE,CAAC;IAC3C,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,aAAa,EAAE,CAAC;IACxB,aAAa,EAAE,MAAM,GAAG,CAAC;IACzB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,eA8M/C"}
@@ -95,13 +95,12 @@ export function InsightResultModal(props) {
95
95
  }, [selectedLocalFiles, props.EARule]);
96
96
  if (props.isRenderedMain) {
97
97
  setCaseState(caseDispatch, { isFileRecommendationsTriggered: true });
98
- return (React.createElement(Card, { id: "expandable-card", className: "card-support top-recommendations pf-v5-u-mt-md", isExpanded: isExpanded, isCompact: true },
98
+ return (React.createElement(Card, { id: "expandable-card", className: "card-support top-recommendations pf-u-mt-md", isExpanded: isExpanded, isCompact: true },
99
99
  React.createElement(CardHeader, { onExpand: onExpand, toggleButtonProps: {
100
100
  id: 'toggle-button1',
101
101
  'aria-label': t('File recommendations'),
102
102
  'aria-labelledby': 'expandable-card-title toggle-button1',
103
103
  'aria-expanded': isExpanded,
104
- className: 'popular-solutions-toggle-button',
105
104
  }, className: "popular-solutions" },
106
105
  React.createElement(CardTitle, { id: "expandable-card-title", className: "card-title" },
107
106
  React.createElement(Trans, null, "File recommendations"))),