@rh-support/troubleshoot 2.4.10-beta.8 → 2.5.1

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 (645) hide show
  1. package/README.md +1 -4
  2. package/lib/esm/components/AccountInfo/AccountSelector.d.ts +2 -1
  3. package/lib/esm/components/AccountInfo/AccountSelector.d.ts.map +1 -1
  4. package/lib/esm/components/AccountInfo/AccountSelector.js +7 -7
  5. package/lib/esm/components/AccountInfo/ManagedAccountsDropdown.d.ts +2 -1
  6. package/lib/esm/components/AccountInfo/ManagedAccountsDropdown.d.ts.map +1 -1
  7. package/lib/esm/components/AccountInfo/ManagedAccountsDropdown.js +36 -11
  8. package/lib/esm/components/AccountInfo/OwnerSelector.d.ts +2 -1
  9. package/lib/esm/components/AccountInfo/OwnerSelector.d.ts.map +1 -1
  10. package/lib/esm/components/AccountInfo/OwnerSelector.js +10 -124
  11. package/lib/esm/components/AccountInfo/css/accountSelector.css +6 -0
  12. package/lib/esm/components/CaseEditView/ActiveCustomerEscalation/ActiveCustomerEscalation.js +5 -5
  13. package/lib/esm/components/CaseEditView/ActiveCustomerEscalation/RequestEscalationModal.d.ts +2 -1
  14. package/lib/esm/components/CaseEditView/ActiveCustomerEscalation/RequestEscalationModal.d.ts.map +1 -1
  15. package/lib/esm/components/CaseEditView/ActiveCustomerEscalation/RequestEscalationModal.js +23 -20
  16. package/lib/esm/components/CaseEditView/Case.d.ts +2 -1
  17. package/lib/esm/components/CaseEditView/Case.d.ts.map +1 -1
  18. package/lib/esm/components/CaseEditView/Case.js +8 -8
  19. package/lib/esm/components/CaseEditView/CaseDetailsAside.d.ts +2 -1
  20. package/lib/esm/components/CaseEditView/CaseDetailsAside.d.ts.map +1 -1
  21. package/lib/esm/components/CaseEditView/CaseDetailsAside.js +22 -16
  22. package/lib/esm/components/CaseEditView/CaseDetailsErrorMessage.d.ts +2 -1
  23. package/lib/esm/components/CaseEditView/CaseDetailsErrorMessage.d.ts.map +1 -1
  24. package/lib/esm/components/CaseEditView/CaseDetailsErrorMessage.js +1 -1
  25. package/lib/esm/components/CaseEditView/CaseDetailsModals.js +1 -1
  26. package/lib/esm/components/CaseEditView/CaseDetailsTabs.d.ts +1 -1
  27. package/lib/esm/components/CaseEditView/CaseDetailsTabs.d.ts.map +1 -1
  28. package/lib/esm/components/CaseEditView/CaseDetailsTabs.js +45 -25
  29. package/lib/esm/components/CaseEditView/CaseOverview/CaseOwnerInfo.d.ts +2 -1
  30. package/lib/esm/components/CaseEditView/CaseOverview/CaseOwnerInfo.d.ts.map +1 -1
  31. package/lib/esm/components/CaseEditView/CaseOverview/CaseOwnerInfo.js +1 -1
  32. package/lib/esm/components/CaseEditView/CaseOverview/CaseStatus.d.ts +2 -1
  33. package/lib/esm/components/CaseEditView/CaseOverview/CaseStatus.d.ts.map +1 -1
  34. package/lib/esm/components/CaseEditView/CaseOverview/CaseType.d.ts +2 -1
  35. package/lib/esm/components/CaseEditView/CaseOverview/CaseType.d.ts.map +1 -1
  36. package/lib/esm/components/CaseEditView/CaseOverview/CaseType.js +18 -4
  37. package/lib/esm/components/CaseEditView/CaseOverview/DateTime.d.ts +2 -1
  38. package/lib/esm/components/CaseEditView/CaseOverview/DateTime.d.ts.map +1 -1
  39. package/lib/esm/components/CaseEditView/CaseOverview/DateTime.js +1 -1
  40. package/lib/esm/components/CaseEditView/CaseOverview/index.d.ts +1 -1
  41. package/lib/esm/components/CaseEditView/CaseOverview/index.d.ts.map +1 -1
  42. package/lib/esm/components/CaseEditView/CaseOverview/index.js +44 -35
  43. package/lib/esm/components/CaseEditView/CaseSolutions/CaseSolutions.d.ts.map +1 -1
  44. package/lib/esm/components/CaseEditView/CaseSolutions/CaseSolutions.js +115 -47
  45. package/lib/esm/components/CaseEditView/CaseSolutions/CaseSolutionsItem.d.ts +7 -2
  46. package/lib/esm/components/CaseEditView/CaseSolutions/CaseSolutionsItem.d.ts.map +1 -1
  47. package/lib/esm/components/CaseEditView/CaseSolutions/CaseSolutionsItem.js +8 -6
  48. package/lib/esm/components/CaseEditView/CaseSolutions/HandpicketItem.d.ts +15 -0
  49. package/lib/esm/components/CaseEditView/CaseSolutions/HandpicketItem.d.ts.map +1 -0
  50. package/lib/esm/components/CaseEditView/CaseSolutions/HandpicketItem.js +76 -0
  51. package/lib/esm/components/CaseEditView/CaseSubscriptionAbuseAlert.d.ts +2 -1
  52. package/lib/esm/components/CaseEditView/CaseSubscriptionAbuseAlert.d.ts.map +1 -1
  53. package/lib/esm/components/CaseEditView/CaseSubscriptionAbuseAlert.js +1 -1
  54. package/lib/esm/components/CaseEditView/ConfirmationModals/ReopenCaseModal.d.ts +2 -1
  55. package/lib/esm/components/CaseEditView/ConfirmationModals/ReopenCaseModal.d.ts.map +1 -1
  56. package/lib/esm/components/CaseEditView/ConfirmationModals/ReopenCaseModal.js +17 -11
  57. package/lib/esm/components/CaseEditView/PDFContainer.d.ts +1 -1
  58. package/lib/esm/components/CaseEditView/PDFContainer.d.ts.map +1 -1
  59. package/lib/esm/components/CaseEditView/RequestRemoteSession/ESSRemoteSession.js +2 -2
  60. package/lib/esm/components/CaseEditView/RequestRemoteSession/ESSRemoteSessionModal.d.ts +2 -1
  61. package/lib/esm/components/CaseEditView/RequestRemoteSession/ESSRemoteSessionModal.d.ts.map +1 -1
  62. package/lib/esm/components/CaseEditView/RequestRemoteSession/ESSRemoteSessionModal.js +8 -7
  63. package/lib/esm/components/CaseEditView/RequestRemoteSession/NewEssTermsModal.d.ts +2 -1
  64. package/lib/esm/components/CaseEditView/RequestRemoteSession/NewEssTermsModal.d.ts.map +1 -1
  65. package/lib/esm/components/CaseEditView/RequestRemoteSession/NewEssTermsModal.js +13 -12
  66. package/lib/esm/components/CaseEditView/RequestRemoteSession/RemoteSessionAgreement.js +2 -2
  67. package/lib/esm/components/CaseEditView/RequestRemoteSession/RemoteSessionAgreementModal.d.ts +2 -1
  68. package/lib/esm/components/CaseEditView/RequestRemoteSession/RemoteSessionAgreementModal.d.ts.map +1 -1
  69. package/lib/esm/components/CaseEditView/RequestRemoteSession/RemoteSessionAgreementModal.js +13 -12
  70. package/lib/esm/components/CaseEditView/ShareCase/PartnerCaseHelper.d.ts +2 -2
  71. package/lib/esm/components/CaseEditView/ShareCase/PartnerCaseHelper.d.ts.map +1 -1
  72. package/lib/esm/components/CaseEditView/ShareCase/PartnerCaseHelper.js +1 -1
  73. package/lib/esm/components/CaseEditView/ShareCase/PartnerShare.d.ts +2 -1
  74. package/lib/esm/components/CaseEditView/ShareCase/PartnerShare.d.ts.map +1 -1
  75. package/lib/esm/components/CaseEditView/ShareCase/PartnerShare.js +59 -35
  76. package/lib/esm/components/CaseEditView/ShareCase/TnC.d.ts +1 -1
  77. package/lib/esm/components/CaseEditView/ShareCase/TnC.d.ts.map +1 -1
  78. package/lib/esm/components/CaseEditView/Tabs/CaseActionPlan/CaseActionPlan.d.ts +2 -1
  79. package/lib/esm/components/CaseEditView/Tabs/CaseActionPlan/CaseActionPlan.d.ts.map +1 -1
  80. package/lib/esm/components/CaseEditView/Tabs/CaseActionPlan/CaseActionPlan.js +11 -21
  81. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseContactPhoneNumber.d.ts +2 -1
  82. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseContactPhoneNumber.d.ts.map +1 -1
  83. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseContactPhoneNumber.js +187 -66
  84. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseDetailsManagement.d.ts +2 -2
  85. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseDetailsManagement.d.ts.map +1 -1
  86. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseDetailsManagement.js +2 -2
  87. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseHostname.d.ts +2 -1
  88. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseHostname.d.ts.map +1 -1
  89. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseHostname.js +2 -2
  90. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseInformation.d.ts +2 -1
  91. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseInformation.d.ts.map +1 -1
  92. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseInformation.js +10 -13
  93. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseInternalStatus.d.ts +2 -1
  94. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseInternalStatus.d.ts.map +1 -1
  95. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseInternalStatus.js +31 -12
  96. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseOpenshiftClusterId/CaseOpenShiftPopover.d.ts +2 -1
  97. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseOpenshiftClusterId/CaseOpenShiftPopover.d.ts.map +1 -1
  98. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseOpenshiftClusterId/CaseOpenShiftPopover.js +1 -1
  99. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseOpenshiftClusterId/CaseOpenShiftV3Popover.d.ts +2 -1
  100. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseOpenshiftClusterId/CaseOpenShiftV3Popover.d.ts.map +1 -1
  101. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseOpenshiftClusterId/CaseOpenShiftV3Popover.js +1 -1
  102. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseOpenshiftClusterId/CaseOpenshiftClusterId.d.ts +2 -1
  103. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseOpenshiftClusterId/CaseOpenshiftClusterId.d.ts.map +1 -1
  104. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseOpenshiftClusterId/CaseOpenshiftClusterId.js +15 -14
  105. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CasePhoneNumberConfirmAlert.d.ts +1 -1
  106. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CasePhoneNumberConfirmAlert.d.ts.map +1 -1
  107. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CasePhoneNumberConfirmAlert.js +21 -11
  108. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseReferenceNumber.d.ts +2 -1
  109. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseReferenceNumber.d.ts.map +1 -1
  110. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseReferenceNumber.js +7 -7
  111. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseSbrGroups.d.ts +2 -1
  112. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseSbrGroups.d.ts.map +1 -1
  113. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseSbrGroups.js +3 -3
  114. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/ProductVersion.d.ts +2 -1
  115. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/ProductVersion.d.ts.map +1 -1
  116. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/ProductVersion.js +1 -1
  117. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/SFDCUrl.d.ts +3 -0
  118. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/SFDCUrl.d.ts.map +1 -0
  119. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/SFDCUrl.js +37 -0
  120. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/Summary.d.ts +2 -1
  121. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/Summary.d.ts.map +1 -1
  122. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/Summary.js +9 -9
  123. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/useCustomEmails.js +1 -1
  124. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/CaseAttachment.d.ts.map +1 -1
  125. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/CaseAttachment.js +10 -8
  126. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/CaseChat.js +1 -1
  127. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/CaseComments.d.ts.map +1 -1
  128. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/CaseComments.js +29 -11
  129. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/CaseDiscussion.d.ts +1 -1
  130. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/CaseDiscussion.d.ts.map +1 -1
  131. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/CaseDiscussion.js +89 -31
  132. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/CaseExternalTrackerUpdate.d.ts.map +1 -1
  133. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/CaseExternalTrackerUpdate.js +6 -4
  134. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/CommentSearch.d.ts +2 -1
  135. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/CommentSearch.d.ts.map +1 -1
  136. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/CommentSearch.js +4 -3
  137. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/DiscussionItemLink.d.ts +1 -1
  138. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/DiscussionItemLink.d.ts.map +1 -1
  139. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/DiscussionItemLink.js +1 -1
  140. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/JumpAndCopyLink.d.ts +2 -1
  141. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/JumpAndCopyLink.d.ts.map +1 -1
  142. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/PostComment/useMarkdownFileUploader.d.ts.map +1 -1
  143. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/PostComment.d.ts +2 -1
  144. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/PostComment.d.ts.map +1 -1
  145. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/PostComment.js +29 -9
  146. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/VerifyCaseStatusModal/VerifyCaseStatusModal.d.ts +2 -1
  147. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/VerifyCaseStatusModal/VerifyCaseStatusModal.d.ts.map +1 -1
  148. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/VerifyCaseStatusModal/VerifyCaseStatusModal.js +4 -3
  149. package/lib/esm/components/CaseEditView/Tabs/CaseHistory/CaseHistory.css +0 -0
  150. package/lib/esm/components/CaseEditView/Tabs/CaseHistory/CaseHistory.d.ts +5 -2
  151. package/lib/esm/components/CaseEditView/Tabs/CaseHistory/CaseHistory.d.ts.map +1 -1
  152. package/lib/esm/components/CaseEditView/Tabs/CaseHistory/CaseHistory.js +7 -3
  153. package/lib/esm/components/CaseEditView/Tabs/CaseHistory/Timeline.css +331 -0
  154. package/lib/esm/components/CaseEditView/Tabs/CaseHistory/Timeline.d.ts +7 -0
  155. package/lib/esm/components/CaseEditView/Tabs/CaseHistory/Timeline.d.ts.map +1 -0
  156. package/lib/esm/components/CaseEditView/Tabs/CaseHistory/Timeline.js +442 -0
  157. package/lib/esm/components/CaseEditView/Tabs/CasePrivateNotes/CasePrivateNotes.d.ts +3 -2
  158. package/lib/esm/components/CaseEditView/Tabs/CasePrivateNotes/CasePrivateNotes.d.ts.map +1 -1
  159. package/lib/esm/components/CaseEditView/Tabs/CasePrivateNotes/CasePrivateNotes.js +5 -5
  160. package/lib/esm/components/CaseEditView/Tabs/RMEEscalations/RMEEscalationList.d.ts +2 -1
  161. package/lib/esm/components/CaseEditView/Tabs/RMEEscalations/RMEEscalationList.d.ts.map +1 -1
  162. package/lib/esm/components/CaseEditView/Tabs/RMEEscalations/RMEEscalationList.js +4 -4
  163. package/lib/esm/components/CaseEditView/Tabs/RelatedTasks/RelatedTasks.d.ts +4 -0
  164. package/lib/esm/components/CaseEditView/Tabs/RelatedTasks/RelatedTasks.d.ts.map +1 -0
  165. package/lib/esm/components/CaseEditView/Tabs/RelatedTasks/RelatedTasks.js +118 -0
  166. package/lib/esm/components/CaseEditView/index.d.ts +2 -8
  167. package/lib/esm/components/CaseEditView/index.d.ts.map +1 -1
  168. package/lib/esm/components/CaseEditView/index.js +8 -13
  169. package/lib/esm/components/CaseInformation/CaseGroup.d.ts +2 -1
  170. package/lib/esm/components/CaseInformation/CaseGroup.d.ts.map +1 -1
  171. package/lib/esm/components/CaseInformation/CaseGroup.js +79 -26
  172. package/lib/esm/components/CaseInformation/CaseInformation.d.ts +2 -1
  173. package/lib/esm/components/CaseInformation/CaseInformation.d.ts.map +1 -1
  174. package/lib/esm/components/CaseInformation/CaseInformation.js +3 -5
  175. package/lib/esm/components/CaseInformation/CaseType.d.ts +2 -1
  176. package/lib/esm/components/CaseInformation/CaseType.d.ts.map +1 -1
  177. package/lib/esm/components/CaseInformation/ContactPhoneNumber.d.ts +2 -1
  178. package/lib/esm/components/CaseInformation/ContactPhoneNumber.d.ts.map +1 -1
  179. package/lib/esm/components/CaseInformation/ContactPhoneNumber.js +230 -55
  180. package/lib/esm/components/CaseInformation/ContactPhoneNumberAlert.d.ts +2 -1
  181. package/lib/esm/components/CaseInformation/ContactPhoneNumberAlert.d.ts.map +1 -1
  182. package/lib/esm/components/CaseInformation/ContactPhoneNumberAlert.js +33 -14
  183. package/lib/esm/components/CaseInformation/ContactPhoneNumberPopOver.d.ts +2 -1
  184. package/lib/esm/components/CaseInformation/ContactPhoneNumberPopOver.d.ts.map +1 -1
  185. package/lib/esm/components/CaseInformation/ContactPhoneNumberPopOver.js +1 -1
  186. package/lib/esm/components/CaseInformation/Description.d.ts +3 -1
  187. package/lib/esm/components/CaseInformation/Description.d.ts.map +1 -1
  188. package/lib/esm/components/CaseInformation/Description.js +58 -28
  189. package/lib/esm/components/CaseInformation/FileDiag.d.ts +2 -1
  190. package/lib/esm/components/CaseInformation/FileDiag.d.ts.map +1 -1
  191. package/lib/esm/components/CaseInformation/Fts.d.ts +2 -1
  192. package/lib/esm/components/CaseInformation/Fts.d.ts.map +1 -1
  193. package/lib/esm/components/CaseInformation/Fts.js +38 -8
  194. package/lib/esm/components/CaseInformation/MandatoryPhonePopOver.d.ts +4 -0
  195. package/lib/esm/components/CaseInformation/MandatoryPhonePopOver.d.ts.map +1 -0
  196. package/lib/esm/components/CaseInformation/MandatoryPhonePopOver.js +26 -0
  197. package/lib/esm/components/CaseInformation/OpenCaseIssue.d.ts +3 -1
  198. package/lib/esm/components/CaseInformation/OpenCaseIssue.d.ts.map +1 -1
  199. package/lib/esm/components/CaseInformation/OpenCaseIssue.js +54 -29
  200. package/lib/esm/components/CaseInformation/Severity.d.ts +2 -1
  201. package/lib/esm/components/CaseInformation/Severity.d.ts.map +1 -1
  202. package/lib/esm/components/CaseInformation/Severity.js +18 -32
  203. package/lib/esm/components/CaseInformation/SupportLevel.d.ts +2 -1
  204. package/lib/esm/components/CaseInformation/SupportLevel.d.ts.map +1 -1
  205. package/lib/esm/components/CaseInformation/SupportLevel.js +9 -5
  206. package/lib/esm/components/CaseManagement/CaseLanguageSelector.d.ts +2 -1
  207. package/lib/esm/components/CaseManagement/CaseLanguageSelector.d.ts.map +1 -1
  208. package/lib/esm/components/CaseManagement/CaseLanguageSelector.js +3 -2
  209. package/lib/esm/components/CaseManagement/CaseManagement.d.ts +2 -1
  210. package/lib/esm/components/CaseManagement/CaseManagement.d.ts.map +1 -1
  211. package/lib/esm/components/CaseManagement/CaseManagement.js +10 -7
  212. package/lib/esm/components/CaseManagement/Cep.d.ts +2 -1
  213. package/lib/esm/components/CaseManagement/Cep.d.ts.map +1 -1
  214. package/lib/esm/components/CaseManagement/Cep.js +37 -21
  215. package/lib/esm/components/CaseManagement/ESSRemoteSessionCheckBox.d.ts +2 -1
  216. package/lib/esm/components/CaseManagement/ESSRemoteSessionCheckBox.d.ts.map +1 -1
  217. package/lib/esm/components/CaseManagement/ESSRemoteSessionCheckBox.js +14 -13
  218. package/lib/esm/components/CaseManagement/NoClusterIDReasonSelector.d.ts +2 -1
  219. package/lib/esm/components/CaseManagement/NoClusterIDReasonSelector.d.ts.map +1 -1
  220. package/lib/esm/components/CaseManagement/NoClusterIDReasonSelector.js +3 -3
  221. package/lib/esm/components/CaseManagement/OpenReferenceNumber.d.ts +2 -1
  222. package/lib/esm/components/CaseManagement/OpenReferenceNumber.d.ts.map +1 -1
  223. package/lib/esm/components/CaseManagement/OpenShiftClusterId.d.ts +6 -5
  224. package/lib/esm/components/CaseManagement/OpenShiftClusterId.d.ts.map +1 -1
  225. package/lib/esm/components/CaseManagement/OpenShiftClusterId.js +46 -28
  226. package/lib/esm/components/CaseManagement/OpenShiftV3Inputbox.d.ts +2 -1
  227. package/lib/esm/components/CaseManagement/OpenShiftV3Inputbox.d.ts.map +1 -1
  228. package/lib/esm/components/CaseManagement/OpenShiftV3Inputbox.js +1 -1
  229. package/lib/esm/components/CaseManagement/OpenshiftDropdownV4.d.ts +2 -1
  230. package/lib/esm/components/CaseManagement/OpenshiftDropdownV4.d.ts.map +1 -1
  231. package/lib/esm/components/CaseManagement/OpenshiftDropdownV4.js +7 -6
  232. package/lib/esm/components/CaseManagement/RHAssociatesSelector.d.ts +2 -1
  233. package/lib/esm/components/CaseManagement/RHAssociatesSelector.d.ts.map +1 -1
  234. package/lib/esm/components/CaseManagement/RHAssociatesSelector.js +19 -13
  235. package/lib/esm/components/CaseManagement/SendNotifications/AddContactToGroupModal.d.ts +2 -1
  236. package/lib/esm/components/CaseManagement/SendNotifications/AddContactToGroupModal.d.ts.map +1 -1
  237. package/lib/esm/components/CaseManagement/SendNotifications/AddCustomEmailToAccountModal.d.ts +2 -1
  238. package/lib/esm/components/CaseManagement/SendNotifications/AddCustomEmailToAccountModal.d.ts.map +1 -1
  239. package/lib/esm/components/CaseManagement/SendNotifications/AddCustomEmailToAccountModal.js +16 -15
  240. package/lib/esm/components/CaseManagement/SendNotifications/CaseContactSelector.d.ts +2 -1
  241. package/lib/esm/components/CaseManagement/SendNotifications/CaseContactSelector.d.ts.map +1 -1
  242. package/lib/esm/components/CaseManagement/SendNotifications/CaseContactSelector.js +43 -37
  243. package/lib/esm/components/CaseManagement/SendNotifications/NonOrgCaseNotifyeesSelector.d.ts +1 -1
  244. package/lib/esm/components/CaseManagement/SendNotifications/NonOrgCaseNotifyeesSelector.d.ts.map +1 -1
  245. package/lib/esm/components/CaseManagement/SendNotifications/NonOrgCaseNotifyeesSelector.js +3 -5
  246. package/lib/esm/components/ConfirmationModals/NoAttachmentSelectedModal.d.ts +2 -1
  247. package/lib/esm/components/ConfirmationModals/NoAttachmentSelectedModal.d.ts.map +1 -1
  248. package/lib/esm/components/ConfirmationModals/NoAttachmentSelectedModal.js +3 -3
  249. package/lib/esm/components/ConfirmationModals/PreCaseConfirmationModals.d.ts +2 -1
  250. package/lib/esm/components/ConfirmationModals/PreCaseConfirmationModals.d.ts.map +1 -1
  251. package/lib/esm/components/ConfirmationModals/PreCaseConfirmationModals.js +0 -2
  252. package/lib/esm/components/ConfirmationModals/PreferredSecureSupportModal.d.ts +2 -1
  253. package/lib/esm/components/ConfirmationModals/PreferredSecureSupportModal.d.ts.map +1 -1
  254. package/lib/esm/components/ConfirmationModals/ROCMModal.d.ts +2 -1
  255. package/lib/esm/components/ConfirmationModals/ROCMModal.d.ts.map +1 -1
  256. package/lib/esm/components/Cve/CveItem.d.ts +10 -0
  257. package/lib/esm/components/Cve/CveItem.d.ts.map +1 -0
  258. package/lib/esm/components/Cve/CveItem.js +139 -0
  259. package/lib/esm/components/Cve/CveModal.d.ts +3 -0
  260. package/lib/esm/components/Cve/CveModal.d.ts.map +1 -0
  261. package/lib/esm/components/Cve/CveModal.js +44 -0
  262. package/lib/esm/components/Cve/CvePanel.d.ts +7 -0
  263. package/lib/esm/components/Cve/CvePanel.d.ts.map +1 -0
  264. package/lib/esm/components/Cve/CvePanel.js +23 -0
  265. package/lib/esm/components/Cve/CveSidebar.d.ts +3 -0
  266. package/lib/esm/components/Cve/CveSidebar.d.ts.map +1 -0
  267. package/lib/esm/components/Cve/CveSidebar.js +23 -0
  268. package/lib/esm/components/EditDescription/EditDescription.d.ts +2 -1
  269. package/lib/esm/components/EditDescription/EditDescription.d.ts.map +1 -1
  270. package/lib/esm/components/EditDescription/EditDescription.js +1 -6
  271. package/lib/esm/components/IdeaInformation/IdeaInformation.d.ts +2 -1
  272. package/lib/esm/components/IdeaInformation/IdeaInformation.d.ts.map +1 -1
  273. package/lib/esm/components/IdeaInformation/IdeaInformation.js +12 -11
  274. package/lib/esm/components/ImproveCase/FileEARule.d.ts +2 -1
  275. package/lib/esm/components/ImproveCase/FileEARule.d.ts.map +1 -1
  276. package/lib/esm/components/ImproveCase/Hostname.d.ts +2 -1
  277. package/lib/esm/components/ImproveCase/Hostname.d.ts.map +1 -1
  278. package/lib/esm/components/ImproveCase/Hostname.js +3 -3
  279. package/lib/esm/components/ImproveCase/KtQuestions.d.ts +2 -1
  280. package/lib/esm/components/ImproveCase/KtQuestions.d.ts.map +1 -1
  281. package/lib/esm/components/ImproveCase/KtQuestions.js +62 -58
  282. package/lib/esm/components/OpenCase/CaseTypeIcons/BugIcon.d.ts +2 -1
  283. package/lib/esm/components/OpenCase/CaseTypeIcons/BugIcon.d.ts.map +1 -1
  284. package/lib/esm/components/OpenCase/CaseTypeIcons/CertificationIcon.d.ts +2 -1
  285. package/lib/esm/components/OpenCase/CaseTypeIcons/CertificationIcon.d.ts.map +1 -1
  286. package/lib/esm/components/OpenCase/CaseTypeIcons/CustomerServiceIcon.d.ts +2 -1
  287. package/lib/esm/components/OpenCase/CaseTypeIcons/CustomerServiceIcon.d.ts.map +1 -1
  288. package/lib/esm/components/OpenCase/CaseTypeIcons/DocumentationIcon.d.ts +2 -1
  289. package/lib/esm/components/OpenCase/CaseTypeIcons/DocumentationIcon.d.ts.map +1 -1
  290. package/lib/esm/components/OpenCase/CaseTypeIcons/GearIcon.d.ts +2 -1
  291. package/lib/esm/components/OpenCase/CaseTypeIcons/GearIcon.d.ts.map +1 -1
  292. package/lib/esm/components/OpenCase/CaseTypeIcons/IdeaIcon.d.ts +2 -1
  293. package/lib/esm/components/OpenCase/CaseTypeIcons/IdeaIcon.d.ts.map +1 -1
  294. package/lib/esm/components/OpenCase/CaseTypeIcons/RcaIcon.d.ts +2 -1
  295. package/lib/esm/components/OpenCase/CaseTypeIcons/RcaIcon.d.ts.map +1 -1
  296. package/lib/esm/components/OpenCase/OpenCase.d.ts +5 -1
  297. package/lib/esm/components/OpenCase/OpenCase.d.ts.map +1 -1
  298. package/lib/esm/components/OpenCase/OpenCase.js +9 -0
  299. package/lib/esm/components/OpenCase/SupportTypeIcons/BugIcon.d.ts +2 -1
  300. package/lib/esm/components/OpenCase/SupportTypeIcons/BugIcon.d.ts.map +1 -1
  301. package/lib/esm/components/OpenCase/SupportTypeIcons/CertificationIcon.d.ts +2 -1
  302. package/lib/esm/components/OpenCase/SupportTypeIcons/CertificationIcon.d.ts.map +1 -1
  303. package/lib/esm/components/OpenCase/SupportTypeIcons/CustomerServiceIcon.d.ts +2 -1
  304. package/lib/esm/components/OpenCase/SupportTypeIcons/CustomerServiceIcon.d.ts.map +1 -1
  305. package/lib/esm/components/OpenCase/SupportTypeIcons/DocumentationIcon.d.ts +2 -1
  306. package/lib/esm/components/OpenCase/SupportTypeIcons/DocumentationIcon.d.ts.map +1 -1
  307. package/lib/esm/components/OpenCase/SupportTypeIcons/GearIcon.d.ts +2 -1
  308. package/lib/esm/components/OpenCase/SupportTypeIcons/GearIcon.d.ts.map +1 -1
  309. package/lib/esm/components/OpenCase/SupportTypeIcons/IdeaIcon.d.ts +2 -1
  310. package/lib/esm/components/OpenCase/SupportTypeIcons/IdeaIcon.d.ts.map +1 -1
  311. package/lib/esm/components/OpenCase/SupportTypeIcons/RcaIcon.d.ts +2 -1
  312. package/lib/esm/components/OpenCase/SupportTypeIcons/RcaIcon.d.ts.map +1 -1
  313. package/lib/esm/components/OpenCase/SupportTypeSelectorPage.d.ts +2 -1
  314. package/lib/esm/components/OpenCase/SupportTypeSelectorPage.d.ts.map +1 -1
  315. package/lib/esm/components/OpenCase/SupportTypeSelectorPage.js +30 -17
  316. package/lib/esm/components/ProductSelector/AllProductsSelector.d.ts +5 -1
  317. package/lib/esm/components/ProductSelector/AllProductsSelector.d.ts.map +1 -1
  318. package/lib/esm/components/ProductSelector/AllProductsSelector.js +29 -9
  319. package/lib/esm/components/ProductSelector/NewProductDropdownSelector.d.ts +4 -1
  320. package/lib/esm/components/ProductSelector/NewProductDropdownSelector.d.ts.map +1 -1
  321. package/lib/esm/components/ProductSelector/NewProductDropdownSelector.js +21 -6
  322. package/lib/esm/components/ProductSelector/NewProductVersionSelector.d.ts +2 -1
  323. package/lib/esm/components/ProductSelector/NewProductVersionSelector.d.ts.map +1 -1
  324. package/lib/esm/components/ProductSelector/NewProductVersionSelector.js +2 -2
  325. package/lib/esm/components/ProductSelector/ProductSelector.d.ts +8 -2
  326. package/lib/esm/components/ProductSelector/ProductSelector.d.ts.map +1 -1
  327. package/lib/esm/components/ProductSelector/ProductSelector.js +45 -23
  328. package/lib/esm/components/ProductSelector/ProductSelectorLoader.d.ts +2 -1
  329. package/lib/esm/components/ProductSelector/ProductSelectorLoader.d.ts.map +1 -1
  330. package/lib/esm/components/ProductSelector/ProductVersionDropdownSelector.d.ts +3 -0
  331. package/lib/esm/components/ProductSelector/ProductVersionDropdownSelector.d.ts.map +1 -1
  332. package/lib/esm/components/ProductSelector/ProductVersionDropdownSelector.js +10 -2
  333. package/lib/esm/components/Recommendations/AlertToastWrapper.d.ts +3 -0
  334. package/lib/esm/components/Recommendations/AlertToastWrapper.d.ts.map +1 -1
  335. package/lib/esm/components/Recommendations/AlertToastWrapper.js +2 -2
  336. package/lib/esm/components/Recommendations/AsideResults.d.ts +3 -1
  337. package/lib/esm/components/Recommendations/AsideResults.d.ts.map +1 -1
  338. package/lib/esm/components/Recommendations/AsideResults.js +17 -28
  339. package/lib/esm/components/Recommendations/ClusterRecommendationItems.d.ts +2 -1
  340. package/lib/esm/components/Recommendations/ClusterRecommendationItems.d.ts.map +1 -1
  341. package/lib/esm/components/Recommendations/ClusterRecommendationItems.js +8 -5
  342. package/lib/esm/components/Recommendations/ClusterRecommendations.d.ts +2 -1
  343. package/lib/esm/components/Recommendations/ClusterRecommendations.d.ts.map +1 -1
  344. package/lib/esm/components/Recommendations/ClusterRecommendations.js +1 -1
  345. package/lib/esm/components/Recommendations/ClusterRecommendationsModal.d.ts +2 -1
  346. package/lib/esm/components/Recommendations/ClusterRecommendationsModal.d.ts.map +1 -1
  347. package/lib/esm/components/Recommendations/CriticalSolutionsToast.d.ts.map +1 -1
  348. package/lib/esm/components/Recommendations/CriticalSolutionsToast.js +1 -1
  349. package/lib/esm/components/Recommendations/EARules/EARule.d.ts +7 -6
  350. package/lib/esm/components/Recommendations/EARules/EARule.d.ts.map +1 -1
  351. package/lib/esm/components/Recommendations/EARules/EARule.js +7 -6
  352. package/lib/esm/components/Recommendations/EARules/EARuleInfoAccordion.d.ts +3 -1
  353. package/lib/esm/components/Recommendations/EARules/EARuleInfoAccordion.d.ts.map +1 -1
  354. package/lib/esm/components/Recommendations/EARules/EARuleInfoAccordion.js +14 -4
  355. package/lib/esm/components/Recommendations/EARules/EARuleInfoInline.d.ts +2 -1
  356. package/lib/esm/components/Recommendations/EARules/EARuleInfoInline.d.ts.map +1 -1
  357. package/lib/esm/components/Recommendations/EARules/EARuleInfoInline.js +13 -12
  358. package/lib/esm/components/Recommendations/EARules/EARuleWidget.d.ts +2 -1
  359. package/lib/esm/components/Recommendations/EARules/EARuleWidget.d.ts.map +1 -1
  360. package/lib/esm/components/Recommendations/EARules/EARuleWidget.js +6 -2
  361. package/lib/esm/components/Recommendations/InsightsResults.d.ts +2 -1
  362. package/lib/esm/components/Recommendations/InsightsResults.d.ts.map +1 -1
  363. package/lib/esm/components/Recommendations/InsightsResults.js +20 -7
  364. package/lib/esm/components/Recommendations/InsightsRuleInfo.d.ts +3 -1
  365. package/lib/esm/components/Recommendations/InsightsRuleInfo.d.ts.map +1 -1
  366. package/lib/esm/components/Recommendations/InsightsRuleInfo.js +17 -14
  367. package/lib/esm/components/Recommendations/RecommendationFeedbackModal.d.ts +2 -1
  368. package/lib/esm/components/Recommendations/RecommendationFeedbackModal.d.ts.map +1 -1
  369. package/lib/esm/components/Recommendations/RecommendationFeedbackModal.js +1 -1
  370. package/lib/esm/components/Recommendations/RecommendationInfoBox.d.ts +3 -0
  371. package/lib/esm/components/Recommendations/RecommendationInfoBox.d.ts.map +1 -0
  372. package/lib/esm/components/Recommendations/RecommendationInfoBox.js +28 -0
  373. package/lib/esm/components/Recommendations/Recommendations.d.ts +5 -1
  374. package/lib/esm/components/Recommendations/Recommendations.d.ts.map +1 -1
  375. package/lib/esm/components/Recommendations/Recommendations.js +108 -39
  376. package/lib/esm/components/Recommendations/RecommendationsLoader.d.ts +3 -0
  377. package/lib/esm/components/Recommendations/RecommendationsLoader.d.ts.map +1 -0
  378. package/lib/esm/components/Recommendations/RecommendationsLoader.js +11 -0
  379. package/lib/esm/components/Recommendations/RulesModal.d.ts +2 -1
  380. package/lib/esm/components/Recommendations/RulesModal.d.ts.map +1 -1
  381. package/lib/esm/components/Recommendations/RulesModal.js +8 -14
  382. package/lib/esm/components/Recommendations/WatsonxAiIcon.d.ts +10 -0
  383. package/lib/esm/components/Recommendations/WatsonxAiIcon.d.ts.map +1 -0
  384. package/lib/esm/components/Recommendations/WatsonxAiIcon.js +13 -0
  385. package/lib/esm/components/RemoteRider/RemoteRiderAcceptanceModal.d.ts +2 -1
  386. package/lib/esm/components/RemoteRider/RemoteRiderAcceptanceModal.d.ts.map +1 -1
  387. package/lib/esm/components/RemoteRider/RemoteRiderBanner.d.ts +2 -1
  388. package/lib/esm/components/RemoteRider/RemoteRiderBanner.d.ts.map +1 -1
  389. package/lib/esm/components/RemoteRider/RemoteRiderBanner.js +1 -1
  390. package/lib/esm/components/Review/Review.d.ts +3 -2
  391. package/lib/esm/components/Review/Review.d.ts.map +1 -1
  392. package/lib/esm/components/Review/Review.js +14 -11
  393. package/lib/esm/components/SessionRestore/SessionItem.d.ts +2 -1
  394. package/lib/esm/components/SessionRestore/SessionItem.d.ts.map +1 -1
  395. package/lib/esm/components/SessionRestore/SessionItem.js +4 -4
  396. package/lib/esm/components/SessionRestore/SessionRestore.d.ts +2 -1
  397. package/lib/esm/components/SessionRestore/SessionRestore.d.ts.map +1 -1
  398. package/lib/esm/components/SessionRestore/SessionRestore.js +51 -34
  399. package/lib/esm/components/SessionRestore/SessionRestoreCard.d.ts +2 -1
  400. package/lib/esm/components/SessionRestore/SessionRestoreCard.d.ts.map +1 -1
  401. package/lib/esm/components/SessionRestore/SessionRestoreCard.js +9 -16
  402. package/lib/esm/components/SubmitCase/ResubmitToast.d.ts +3 -0
  403. package/lib/esm/components/SubmitCase/ResubmitToast.d.ts.map +1 -1
  404. package/lib/esm/components/SubmitCase/ResubmitToast.js +3 -1
  405. package/lib/esm/components/SubmitCase/SubmitCase.d.ts +2 -1
  406. package/lib/esm/components/SubmitCase/SubmitCase.d.ts.map +1 -1
  407. package/lib/esm/components/SubmitCase/SubmitCase.js +122 -33
  408. package/lib/esm/components/Suggestions/Suggestions.d.ts +2 -1
  409. package/lib/esm/components/Suggestions/Suggestions.d.ts.map +1 -1
  410. package/lib/esm/components/Suggestions/Suggestions.js +10 -3
  411. package/lib/esm/components/Suggestions/TopContent.d.ts +2 -2
  412. package/lib/esm/components/Suggestions/TopContent.d.ts.map +1 -1
  413. package/lib/esm/components/Suggestions/TopContent.js +58 -13
  414. package/lib/esm/components/TroubleshootSection/TroubleshootSection.d.ts +2 -1
  415. package/lib/esm/components/TroubleshootSection/TroubleshootSection.d.ts.map +1 -1
  416. package/lib/esm/components/TroubleshootSection/TroubleshootSection.js +25 -34
  417. package/lib/esm/components/UpdateSeverityModal/UpdateSeverityModal.d.ts +2 -1
  418. package/lib/esm/components/UpdateSeverityModal/UpdateSeverityModal.d.ts.map +1 -1
  419. package/lib/esm/components/UpdateSeverityModal/UpdateSeverityModal.js +176 -75
  420. package/lib/esm/components/shared/Constants.d.ts +5 -4
  421. package/lib/esm/components/shared/Constants.d.ts.map +1 -1
  422. package/lib/esm/components/shared/Rule.d.ts +2 -1
  423. package/lib/esm/components/shared/Rule.d.ts.map +1 -1
  424. package/lib/esm/components/shared/Rule.js +6 -6
  425. package/lib/esm/components/shared/fileUpload/FileLister.d.ts +3 -1
  426. package/lib/esm/components/shared/fileUpload/FileLister.d.ts.map +1 -1
  427. package/lib/esm/components/shared/fileUpload/FileLister.js +8 -7
  428. package/lib/esm/components/shared/fileUpload/FileUpload.d.ts +2 -1
  429. package/lib/esm/components/shared/fileUpload/FileUpload.d.ts.map +1 -1
  430. package/lib/esm/components/shared/fileUpload/FileUploader.d.ts +2 -1
  431. package/lib/esm/components/shared/fileUpload/FileUploader.d.ts.map +1 -1
  432. package/lib/esm/components/shared/fileUpload/SectionFileUploader.d.ts +2 -1
  433. package/lib/esm/components/shared/fileUpload/SectionFileUploader.d.ts.map +1 -1
  434. package/lib/esm/components/shared/fileUpload/UploadButton.d.ts +2 -2
  435. package/lib/esm/components/shared/fileUpload/UploadButton.d.ts.map +1 -1
  436. package/lib/esm/components/shared/fileUpload/WidgetFileUploader.d.ts +1 -1
  437. package/lib/esm/components/shared/fileUpload/WidgetFileUploader.d.ts.map +1 -1
  438. package/lib/esm/components/shared/fileUpload/WidgetFileUploader.js +9 -9
  439. package/lib/esm/components/shared/fileUpload/common/FileUploaderInfoIcon.d.ts +2 -1
  440. package/lib/esm/components/shared/fileUpload/common/FileUploaderInfoIcon.d.ts.map +1 -1
  441. package/lib/esm/components/shared/fileUpload/common/FileUploaderInfoIcon.js +1 -1
  442. package/lib/esm/components/shared/fileUpload/css/fileSelector.css +1 -1
  443. package/lib/esm/components/shared/fileUpload/fileSelectors/FileSelectorButton.d.ts +2 -1
  444. package/lib/esm/components/shared/fileUpload/fileSelectors/FileSelectorButton.d.ts.map +1 -1
  445. package/lib/esm/components/shared/fileUpload/fileSelectors/FileSelectorButton.js +4 -3
  446. package/lib/esm/components/shared/fileUpload/fileSelectors/InputFileSelector.d.ts +2 -1
  447. package/lib/esm/components/shared/fileUpload/fileSelectors/InputFileSelector.d.ts.map +1 -1
  448. package/lib/esm/components/shared/fileUpload/fileSelectors/WidgetFileSelector.d.ts +3 -2
  449. package/lib/esm/components/shared/fileUpload/fileSelectors/WidgetFileSelector.d.ts.map +1 -1
  450. package/lib/esm/components/shared/fileUpload/fileSelectors/WidgetFileSelector.js +15 -6
  451. package/lib/esm/components/shared/fileUpload/fileSelectors/WidgetFileSelectorImage.d.ts +2 -1
  452. package/lib/esm/components/shared/fileUpload/fileSelectors/WidgetFileSelectorImage.d.ts.map +1 -1
  453. package/lib/esm/components/shared/fileUpload/fileSelectors/WidgetFileSelectorImage.js +3 -3
  454. package/lib/esm/components/shared/fileUpload/reducer/AttachmentHelper.d.ts +23 -23
  455. package/lib/esm/components/shared/fileUpload/reducer/AttachmentHelper.d.ts.map +1 -1
  456. package/lib/esm/components/shared/fileUpload/reducer/AttachmentHelper.js +14 -8
  457. package/lib/esm/components/shared/fileUpload/reducer/AttachmentReducer.d.ts +2 -2
  458. package/lib/esm/components/shared/fileUpload/reducer/AttachmentReducer.d.ts.map +1 -1
  459. package/lib/esm/components/shared/fileUpload/reducer/AttachmentReducerContext.d.ts +1 -1
  460. package/lib/esm/components/shared/fileUpload/reducer/AttachmentReducerContext.d.ts.map +1 -1
  461. package/lib/esm/components/shared/fileUpload/useFileUploader.d.ts.map +1 -1
  462. package/lib/esm/components/shared/fileUpload/useFileUploader.js +2 -1
  463. package/lib/esm/components/shared/input/ContactSelectorInternal.d.ts +2 -2
  464. package/lib/esm/components/shared/input/ContactSelectorInternal.d.ts.map +1 -1
  465. package/lib/esm/components/shared/useIsSectionValid.d.ts +2 -1
  466. package/lib/esm/components/shared/useIsSectionValid.d.ts.map +1 -1
  467. package/lib/esm/components/shared/useIsSectionValid.js +82 -23
  468. package/lib/esm/components/shared/usePostComment.d.ts.map +1 -1
  469. package/lib/esm/components/shared/usePostComment.js +4 -2
  470. package/lib/esm/components/shared/utils.d.ts +4 -1
  471. package/lib/esm/components/shared/utils.d.ts.map +1 -1
  472. package/lib/esm/components/shared/utils.js +17 -5
  473. package/lib/esm/components/wizardLayout/GlobalTroubleshootEffects.d.ts +2 -1
  474. package/lib/esm/components/wizardLayout/GlobalTroubleshootEffects.d.ts.map +1 -1
  475. package/lib/esm/components/wizardLayout/GlobalTroubleshootEffects.js +9 -49
  476. package/lib/esm/components/wizardLayout/MainSection.d.ts +4 -1
  477. package/lib/esm/components/wizardLayout/MainSection.d.ts.map +1 -1
  478. package/lib/esm/components/wizardLayout/MainSection.js +28 -4
  479. package/lib/esm/components/wizardLayout/NewFeatureModal.d.ts +4 -0
  480. package/lib/esm/components/wizardLayout/NewFeatureModal.d.ts.map +1 -0
  481. package/lib/esm/components/wizardLayout/NewFeatureModal.js +38 -0
  482. package/lib/esm/components/wizardLayout/RedHatCustomerPortalIcon.d.ts +3 -0
  483. package/lib/esm/components/wizardLayout/RedHatCustomerPortalIcon.d.ts.map +1 -0
  484. package/lib/esm/components/wizardLayout/RedHatCustomerPortalIcon.js +31 -0
  485. package/lib/esm/components/wizardLayout/WizardAside.d.ts +3 -2
  486. package/lib/esm/components/wizardLayout/WizardAside.d.ts.map +1 -1
  487. package/lib/esm/components/wizardLayout/WizardAside.js +19 -10
  488. package/lib/esm/components/wizardLayout/WizardLayout.d.ts +2 -1
  489. package/lib/esm/components/wizardLayout/WizardLayout.d.ts.map +1 -1
  490. package/lib/esm/components/wizardLayout/WizardLayout.js +50 -47
  491. package/lib/esm/components/wizardLayout/WizardMain.d.ts +3 -2
  492. package/lib/esm/components/wizardLayout/WizardMain.d.ts.map +1 -1
  493. package/lib/esm/components/wizardLayout/WizardMain.js +31 -4
  494. package/lib/esm/components/wizardLayout/WizardNavigation.d.ts +11 -3
  495. package/lib/esm/components/wizardLayout/WizardNavigation.d.ts.map +1 -1
  496. package/lib/esm/components/wizardLayout/WizardNavigation.js +137 -20
  497. package/lib/esm/components/wizardLayout/index.d.ts +2 -3
  498. package/lib/esm/components/wizardLayout/index.d.ts.map +1 -1
  499. package/lib/esm/components/wizardLayout/index.js +4 -11
  500. package/lib/esm/constants/caseDetailsConstants.d.ts +9 -3
  501. package/lib/esm/constants/caseDetailsConstants.d.ts.map +1 -1
  502. package/lib/esm/constants/caseDetailsConstants.js +9 -2
  503. package/lib/esm/context/CaseContext.d.ts +1 -1
  504. package/lib/esm/context/CaseContext.d.ts.map +1 -1
  505. package/lib/esm/context/CaseContext.js +1 -1
  506. package/lib/esm/context/CaseDetailsPageContext.d.ts +1 -1
  507. package/lib/esm/context/CaseDetailsPageContext.d.ts.map +1 -1
  508. package/lib/esm/context/CaseDiscussionTabContext.d.ts +1 -1
  509. package/lib/esm/context/CaseDiscussionTabContext.d.ts.map +1 -1
  510. package/lib/esm/context/CaseOverviewContext.d.ts +8 -0
  511. package/lib/esm/context/CaseOverviewContext.d.ts.map +1 -0
  512. package/lib/esm/context/CaseOverviewContext.js +10 -0
  513. package/lib/esm/context/ClusterRecommendationsContext.d.ts +1 -1
  514. package/lib/esm/context/ClusterRecommendationsContext.d.ts.map +1 -1
  515. package/lib/esm/context/RecommendationContext.d.ts +1 -1
  516. package/lib/esm/context/RecommendationContext.d.ts.map +1 -1
  517. package/lib/esm/context/RootTroubleshootProvider.d.ts +2 -1
  518. package/lib/esm/context/RootTroubleshootProvider.d.ts.map +1 -1
  519. package/lib/esm/context/RouteContext.d.ts +1 -1
  520. package/lib/esm/context/RouteContext.d.ts.map +1 -1
  521. package/lib/esm/context/RulesContext.d.ts +1 -1
  522. package/lib/esm/context/RulesContext.d.ts.map +1 -1
  523. package/lib/esm/context/SessionRestoreContext.d.ts +1 -1
  524. package/lib/esm/context/SessionRestoreContext.d.ts.map +1 -1
  525. package/lib/esm/context/TopContentContext.d.ts +1 -1
  526. package/lib/esm/context/TopContentContext.d.ts.map +1 -1
  527. package/lib/esm/css/app.css +43 -14
  528. package/lib/esm/css/case.css +4 -4
  529. package/lib/esm/css/productSelector.css +7 -3
  530. package/lib/esm/css/results.css +6 -0
  531. package/lib/esm/enums/cache.d.ts +2 -2
  532. package/lib/esm/enums/cache.d.ts.map +1 -1
  533. package/lib/esm/hooks/useFetchCVEData.d.ts +5 -0
  534. package/lib/esm/hooks/useFetchCVEData.d.ts.map +1 -0
  535. package/lib/esm/hooks/useFetchCVEData.js +138 -0
  536. package/lib/esm/hooks/useParseRuleMarkdown.d.ts.map +1 -1
  537. package/lib/esm/hooks/useParseRuleMarkdown.js +1 -1
  538. package/lib/esm/hooks/useS3Upload.js +2 -2
  539. package/lib/esm/hooks/useWizard.d.ts +10 -1
  540. package/lib/esm/hooks/useWizard.d.ts.map +1 -1
  541. package/lib/esm/hooks/useWizard.js +27 -15
  542. package/lib/esm/i18n/template-de.d.ts +52 -0
  543. package/lib/esm/i18n/template-de.d.ts.map +1 -1
  544. package/lib/esm/i18n/template-de.js +55 -0
  545. package/lib/esm/i18n/template-es.d.ts +51 -0
  546. package/lib/esm/i18n/template-es.d.ts.map +1 -1
  547. package/lib/esm/i18n/template-es.js +53 -0
  548. package/lib/esm/i18n/template-fr.d.ts +6 -0
  549. package/lib/esm/i18n/template-fr.d.ts.map +1 -1
  550. package/lib/esm/i18n/template-fr.js +6 -0
  551. package/lib/esm/i18n/template-it.d.ts +52 -0
  552. package/lib/esm/i18n/template-it.d.ts.map +1 -1
  553. package/lib/esm/i18n/template-it.js +54 -0
  554. package/lib/esm/i18n/template-jp.d.ts +9 -0
  555. package/lib/esm/i18n/template-jp.d.ts.map +1 -1
  556. package/lib/esm/i18n/template-jp.js +11 -2
  557. package/lib/esm/i18n/template-ko.d.ts +9 -0
  558. package/lib/esm/i18n/template-ko.d.ts.map +1 -1
  559. package/lib/esm/i18n/template-ko.js +10 -1
  560. package/lib/esm/i18n/template-pt.d.ts +50 -0
  561. package/lib/esm/i18n/template-pt.d.ts.map +1 -1
  562. package/lib/esm/i18n/template-pt.js +53 -0
  563. package/lib/esm/i18n/template-zh.d.ts +9 -0
  564. package/lib/esm/i18n/template-zh.d.ts.map +1 -1
  565. package/lib/esm/i18n/template-zh.js +9 -0
  566. package/lib/esm/index.d.ts +0 -1
  567. package/lib/esm/index.d.ts.map +1 -1
  568. package/lib/esm/index.js +0 -1
  569. package/lib/esm/models/caseCreationWorkflows.d.ts +27 -0
  570. package/lib/esm/models/caseCreationWorkflows.d.ts.map +1 -0
  571. package/lib/esm/models/caseCreationWorkflows.js +1 -0
  572. package/lib/esm/reducers/CaseConstNTypes.d.ts +42 -13
  573. package/lib/esm/reducers/CaseConstNTypes.d.ts.map +1 -1
  574. package/lib/esm/reducers/CaseConstNTypes.js +62 -31
  575. package/lib/esm/reducers/CaseDetailsPageReducer.d.ts +2 -2
  576. package/lib/esm/reducers/CaseDetailsPageReducer.d.ts.map +1 -1
  577. package/lib/esm/reducers/CaseDetailsPageReducer.js +1 -1
  578. package/lib/esm/reducers/CaseDiscussionTabReducer.d.ts +5 -4
  579. package/lib/esm/reducers/CaseDiscussionTabReducer.d.ts.map +1 -1
  580. package/lib/esm/reducers/CaseDiscussionTabReducer.js +7 -3
  581. package/lib/esm/reducers/CaseHelpers.d.ts +1 -0
  582. package/lib/esm/reducers/CaseHelpers.d.ts.map +1 -1
  583. package/lib/esm/reducers/CaseHelpers.js +21 -25
  584. package/lib/esm/reducers/CaseOverviewReducer.d.ts +3 -3
  585. package/lib/esm/reducers/CaseOverviewReducer.d.ts.map +1 -1
  586. package/lib/esm/reducers/CaseReducer.d.ts +5 -5
  587. package/lib/esm/reducers/CaseReducer.d.ts.map +1 -1
  588. package/lib/esm/reducers/CaseReducer.js +137 -70
  589. package/lib/esm/reducers/ClusterRecommendationsReducer.d.ts +2 -2
  590. package/lib/esm/reducers/ClusterRecommendationsReducer.d.ts.map +1 -1
  591. package/lib/esm/reducers/RecommendationsReducer.d.ts +6 -4
  592. package/lib/esm/reducers/RecommendationsReducer.d.ts.map +1 -1
  593. package/lib/esm/reducers/RecommendationsReducer.js +12 -9
  594. package/lib/esm/reducers/RouteConstNTypes.d.ts +6 -2
  595. package/lib/esm/reducers/RouteConstNTypes.d.ts.map +1 -1
  596. package/lib/esm/reducers/RouteConstNTypes.js +10 -5
  597. package/lib/esm/reducers/RouteReducer.d.ts +2 -2
  598. package/lib/esm/reducers/RouteReducer.d.ts.map +1 -1
  599. package/lib/esm/reducers/RulesReducer.d.ts +2 -2
  600. package/lib/esm/reducers/RulesReducer.d.ts.map +1 -1
  601. package/lib/esm/reducers/SessionRestoreReducer.d.ts +20 -16
  602. package/lib/esm/reducers/SessionRestoreReducer.d.ts.map +1 -1
  603. package/lib/esm/reducers/SessionRestoreReducer.js +80 -44
  604. package/lib/esm/reducers/TopContentReducer.d.ts +2 -2
  605. package/lib/esm/reducers/TopContentReducer.d.ts.map +1 -1
  606. package/lib/esm/scss/_main.scss +319 -51
  607. package/lib/esm/scss/_pf-overrides.scss +792 -0
  608. package/lib/esm/scss/index.scss +1 -7
  609. package/lib/esm/utils/caseOpenshiftClusterIdUtils.d.ts.map +1 -1
  610. package/lib/esm/utils/caseUtils.d.ts +20 -0
  611. package/lib/esm/utils/caseUtils.d.ts.map +1 -0
  612. package/lib/esm/utils/caseUtils.js +58 -0
  613. package/lib/esm/utils/insightRuleInfoUtils.d.ts +4 -0
  614. package/lib/esm/utils/insightRuleInfoUtils.d.ts.map +1 -0
  615. package/lib/esm/utils/insightRuleInfoUtils.js +23 -0
  616. package/lib/esm/utils/routeUtils.d.ts +1 -1
  617. package/lib/esm/utils/routeUtils.d.ts.map +1 -1
  618. package/lib/esm/utils/routeUtils.js +2 -1
  619. package/package.json +54 -50
  620. package/lib/esm/components/CaseEditView/CaseDetailsWarningMessage.d.ts +0 -8
  621. package/lib/esm/components/CaseEditView/CaseDetailsWarningMessage.d.ts.map +0 -1
  622. package/lib/esm/components/CaseEditView/CaseDetailsWarningMessage.js +0 -10
  623. package/lib/esm/components/CaseEditView/CaseSecureSupportAlert.d.ts +0 -8
  624. package/lib/esm/components/CaseEditView/CaseSecureSupportAlert.d.ts.map +0 -1
  625. package/lib/esm/components/CaseEditView/CaseSecureSupportAlert.js +0 -22
  626. package/lib/esm/components/CaseEditView/Tabs/CaseBugzilla/CaseBugzilla.d.ts +0 -5
  627. package/lib/esm/components/CaseEditView/Tabs/CaseBugzilla/CaseBugzilla.d.ts.map +0 -1
  628. package/lib/esm/components/CaseEditView/Tabs/CaseBugzilla/CaseBugzilla.js +0 -29
  629. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CasePhoneNumberSev1ConfirmAlert.d.ts +0 -9
  630. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CasePhoneNumberSev1ConfirmAlert.d.ts.map +0 -1
  631. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CasePhoneNumberSev1ConfirmAlert.js +0 -71
  632. package/lib/esm/components/CaseInformation/ProductNVersion.d.ts +0 -5
  633. package/lib/esm/components/CaseInformation/ProductNVersion.d.ts.map +0 -1
  634. package/lib/esm/components/CaseInformation/ProductNVersion.js +0 -20
  635. package/lib/esm/components/ConfirmationModals/ConfirmedStateSideSupportModal.d.ts +0 -7
  636. package/lib/esm/components/ConfirmationModals/ConfirmedStateSideSupportModal.d.ts.map +0 -1
  637. package/lib/esm/components/ConfirmationModals/ConfirmedStateSideSupportModal.js +0 -21
  638. package/lib/esm/components/Recommendations/ShowRank.d.ts +0 -12
  639. package/lib/esm/components/Recommendations/ShowRank.d.ts.map +0 -1
  640. package/lib/esm/components/Recommendations/ShowRank.js +0 -27
  641. package/lib/esm/hooks/useUserPreference.d.ts +0 -7
  642. package/lib/esm/hooks/useUserPreference.d.ts.map +0 -1
  643. package/lib/esm/hooks/useUserPreference.js +0 -36
  644. package/lib/esm/scss/_pf4-imports.scss +0 -30
  645. package/lib/esm/scss/_pf4-overrides.scss +0 -488
@@ -1,42 +1,77 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ import { contacts } from '@cee-eng/hydrajs';
1
11
  import { ValidatedOptions } from '@patternfly/react-core';
2
12
  import { getPhoneObj, PhoneInput } from '@rh-support/components';
3
13
  import { GlobalMetadataStateContext } from '@rh-support/react-context';
4
- import { ability, CaseListFields, resourceActions, resources } from '@rh-support/user-permissions';
5
14
  import isEmpty from 'lodash/isEmpty';
6
15
  import isEqual from 'lodash/isEqual';
16
+ import isUndefined from 'lodash/isUndefined';
7
17
  import React, { useContext, useEffect, useState } from 'react';
8
18
  import { Trans, useTranslation } from 'react-i18next';
9
19
  import { PHONE_INSTRUCTION, PHONE_IS_NOT_VALID, PHONE_LINE_CANNOT_BE_EMPTY, PHONE_NO_CHAR_ERROR, } from '../../constants/caseDetailsConstants';
10
20
  import { useCaseDispatch, useCaseSelector } from '../../context/CaseContext';
11
21
  import { RouteContext } from '../../context/RouteContext';
12
22
  import { PHONE_LIMIT } from '../../reducers/CaseConstNTypes';
13
- import { setCaseDetails } from '../../reducers/CaseReducer';
14
- import { trimAndReplacePlus } from '../shared/utils';
23
+ import { setCaseDetails, setCaseState } from '../../reducers/CaseReducer';
24
+ import { PDFContext } from '../CaseEditView/PDFContainer';
25
+ import { removeAllChars, trimAndReplacePlus } from '../shared/utils';
15
26
  import { ContactPhoneNumberPopOver } from './ContactPhoneNumberPopOver';
16
27
  export function ContactPhoneNumber() {
17
- const { suppliedPhoneNumberVerified, severity, phoneCountryCode = '', phoneAreaCodePrefixLineNumber = '', } = useCaseSelector((state) => ({
28
+ const { suppliedPhoneNumberVerified, phoneCountryCode = '', phoneAreaCodePrefixLineNumber = '', hasLoggedInUserConfirmedPhoneNumber, contactSSOName, shouldNotSetPhoneCountryCode, isCasePhoneUpdating, } = useCaseSelector((state) => ({
18
29
  suppliedPhoneNumberVerified: state.caseDetails.suppliedPhoneNumberVerified,
19
- severity: state.caseDetails.severity,
20
30
  phoneCountryCode: state.caseDetails.phoneCountryCode,
21
31
  phoneAreaCodePrefixLineNumber: state.caseDetails.phoneAreaCodePrefixLineNumber,
32
+ hasLoggedInUserConfirmedPhoneNumber: state.hasLoggedInUserConfirmedPhoneNumber,
33
+ contactSSOName: state.caseDetails.contactSSOName,
34
+ shouldNotSetPhoneCountryCode: state.shouldNotSetPhoneCountryCode,
35
+ isCasePhoneUpdating: state.isCasePhoneUpdating,
22
36
  }), isEqual);
23
37
  const { routeState: { isNextBtnClickedToShowValidationError }, } = useContext(RouteContext);
24
38
  const { globalMetadataState: { loggedInUser }, } = useContext(GlobalMetadataStateContext);
25
39
  const [invalid, setInvalid] = useState(false);
26
- const [localFullPhone, setLocalFullPhone] = useState(phoneCountryCode + ' ' + phoneAreaCodePrefixLineNumber);
27
- const canChangeAccountInfo = ability.can(resourceActions.PATCH, resources.CASE_CREATE, CaseListFields.ACCOUNT_AND_OWNER);
28
- const getPhone = () => phoneCountryCode + ' ' + phoneAreaCodePrefixLineNumber;
40
+ const [portalPhone, setPortalPhone] = useState('');
41
+ const [localFullPhone, setLocalFullPhone] = useState('');
42
+ const [isFetchingSso, setIsFetchingSso] = useState(false);
43
+ const { isExportingPDF } = useContext(PDFContext);
44
+ const getPhone = phoneCountryCode + ' ' + phoneAreaCodePrefixLineNumber;
29
45
  const caseDispatch = useCaseDispatch();
30
46
  const { t } = useTranslation();
47
+ const checkingPlusInLocalFullPhone = (_localFullPhone) => {
48
+ if (isEqual(_localFullPhone.trim(), '+')) {
49
+ return '';
50
+ }
51
+ else if (!isEmpty(_localFullPhone.trim()) && !_localFullPhone.trim().startsWith('+')) {
52
+ return '+' + _localFullPhone.trim();
53
+ }
54
+ else {
55
+ return _localFullPhone.trim();
56
+ }
57
+ };
31
58
  const onPhoneChange = (fullPhone) => {
32
- setLocalFullPhone(fullPhone);
33
- if (isEmpty(fullPhone)) {
34
- setInvalid(false);
59
+ setLocalFullPhone(checkingPlusInLocalFullPhone(fullPhone));
60
+ if (!shouldNotSetPhoneCountryCode) {
61
+ setCaseDetails(caseDispatch, {
62
+ phoneAreaCodePrefixLineNumber: getPhoneObj(fullPhone).phoneLine,
63
+ phoneCountryCode: getPhoneObj(fullPhone).countryCode,
64
+ });
65
+ }
66
+ else {
67
+ if (!isEmpty(fullPhone) && !isEqual(removeAllChars(portalPhone), removeAllChars(fullPhone))) {
68
+ setCaseState(caseDispatch, { shouldNotSetPhoneCountryCode: false });
69
+ }
70
+ setCaseDetails(caseDispatch, {
71
+ phoneAreaCodePrefixLineNumber: checkingPlusInLocalFullPhone(fullPhone),
72
+ phoneCountryCode: '',
73
+ });
35
74
  }
36
- setCaseDetails(caseDispatch, {
37
- phoneAreaCodePrefixLineNumber: getPhoneObj(fullPhone).phoneLine,
38
- phoneCountryCode: getPhoneObj(fullPhone).countryCode,
39
- });
40
75
  };
41
76
  const onCountryCodeChange = (phoneCountryCode) => {
42
77
  setCaseDetails(caseDispatch, { phoneCountryCode });
@@ -44,67 +79,207 @@ export function ContactPhoneNumber() {
44
79
  const maxLengthErrorMessage = t('Phone number cannot be more than {{limit}} digits.', {
45
80
  limit: PHONE_LIMIT,
46
81
  });
47
- const isPhoneNumberInvalid = isEmpty(trimAndReplacePlus(phoneCountryCode)) && !isEmpty(phoneAreaCodePrefixLineNumber.trim());
48
82
  // To check if country code is given but phone number empty
49
- const isPhoneNumberEmpty = !isEmpty(trimAndReplacePlus(phoneCountryCode)) &&
83
+ const isPhoneNumberInvalid = !isEmpty(trimAndReplacePlus(phoneCountryCode)) &&
84
+ isEmpty(phoneAreaCodePrefixLineNumber === null || phoneAreaCodePrefixLineNumber === void 0 ? void 0 : phoneAreaCodePrefixLineNumber.replace(phoneCountryCode, ''));
85
+ const isPhoneNumberEmpty = isEmpty(trimAndReplacePlus(phoneCountryCode)) &&
50
86
  isEmpty(phoneAreaCodePrefixLineNumber === null || phoneAreaCodePrefixLineNumber === void 0 ? void 0 : phoneAreaCodePrefixLineNumber.replace(phoneCountryCode, ''));
51
- const isPhoneNumberValid = getPhone().length > PHONE_LIMIT
52
- ? ValidatedOptions.error
53
- : severity === "1 (Urgent)" /* SEV_1 */ && isEmpty(suppliedPhoneNumberVerified)
54
- ? ValidatedOptions.warning
55
- : isNextBtnClickedToShowValidationError && (isPhoneNumberEmpty || isPhoneNumberInvalid)
87
+ const isPhoneNumberValid = !isEmpty(phoneAreaCodePrefixLineNumber) &&
88
+ !isNextBtnClickedToShowValidationError &&
89
+ !isEmpty(trimAndReplacePlus(phoneCountryCode)) &&
90
+ (isEqual(suppliedPhoneNumberVerified, 'False') || isUndefined(suppliedPhoneNumberVerified))
91
+ ? ValidatedOptions.warning
92
+ : getPhone.length > PHONE_LIMIT
93
+ ? ValidatedOptions.error
94
+ : isNextBtnClickedToShowValidationError &&
95
+ (isPhoneNumberEmpty || isPhoneNumberInvalid || isEmpty(trimAndReplacePlus(phoneCountryCode)))
56
96
  ? ValidatedOptions.error
57
- : invalid
58
- ? ValidatedOptions.error
59
- : ValidatedOptions.default;
97
+ : isNextBtnClickedToShowValidationError && !isPhoneNumberEmpty
98
+ ? ValidatedOptions.success
99
+ : invalid
100
+ ? ValidatedOptions.error
101
+ : ValidatedOptions.default;
102
+ // This useEffect initialize phone number inputbox
103
+ // - User open case for first time for herself/himself -> show portal phone number
104
+ // - User open case for NOT first time for herself/himself -> show phone number that we have on user contact in SF
60
105
  useEffect(() => {
61
- // when canChangeAccountInfo is false OwnerSelector is hidden
62
- // need to set phone on load here instead of OwnerSelector
63
- if (!canChangeAccountInfo && (isEmpty(phoneCountryCode) || isEmpty(phoneAreaCodePrefixLineNumber))) {
64
- if (loggedInUser.data.supportPhoneAreaCodePrefixLineNumber) {
106
+ if (isEmpty(contactSSOName)) {
107
+ setLocalFullPhone('');
108
+ return;
109
+ }
110
+ const getPhoneInfo = () => __awaiter(this, void 0, void 0, function* () {
111
+ if (isEmpty(loggedInUser.data.phone) &&
112
+ isEmpty(loggedInUser.data.supportPhoneAreaCodePrefixLineNumber) &&
113
+ isEmpty(loggedInUser.data.supportPhoneCountryCode))
114
+ setLocalFullPhone('');
115
+ setCaseState(caseDispatch, { isCasePhoneUpdating: true });
116
+ const initContactPhoneNumber = () => __awaiter(this, void 0, void 0, function* () {
117
+ let _phoneAreaCodePrefixLineNumber;
118
+ let _phoneCountryCode;
119
+ let _suppliedPhoneNumberVerified;
120
+ // logged in user and case owner are the same
121
+ if (contactSSOName === loggedInUser.data.ssoUsername) {
122
+ if (loggedInUser.data.supportPhoneAreaCodePrefixLineNumber) {
123
+ // User has opened a case before and has phone and area code in her/his contact on SF
124
+ _phoneAreaCodePrefixLineNumber = loggedInUser.data.supportPhoneAreaCodePrefixLineNumber;
125
+ _phoneCountryCode = loggedInUser.data.supportPhoneCountryCode;
126
+ _suppliedPhoneNumberVerified =
127
+ isEqual(hasLoggedInUserConfirmedPhoneNumber, 'True') ||
128
+ isEqual(hasLoggedInUserConfirmedPhoneNumber, 'Deferred')
129
+ ? hasLoggedInUserConfirmedPhoneNumber
130
+ : 'False';
131
+ }
132
+ else {
133
+ // User is openning a case for the first time
134
+ const phoneLength = trimAndReplacePlus(removeAllChars(loggedInUser.data.phone)).length;
135
+ // For first time user whose phone is fetched from portal without country code
136
+ // For phone length less or equal to 10 country code shouldn't be fetched to avoid faulty phone population
137
+ if (phoneLength > 10) {
138
+ const phoneLine = getPhoneObj(loggedInUser.data.phone).phoneLine || '';
139
+ const countryCode = getPhoneObj(loggedInUser.data.phone).countryCode;
140
+ _phoneAreaCodePrefixLineNumber = phoneLine;
141
+ _phoneCountryCode = countryCode;
142
+ }
143
+ else {
144
+ setCaseState(caseDispatch, {
145
+ shouldNotSetPhoneCountryCode: true,
146
+ });
147
+ _phoneAreaCodePrefixLineNumber = loggedInUser.data.phone;
148
+ _phoneCountryCode = '';
149
+ setPortalPhone(loggedInUser.data.phone);
150
+ }
151
+ _suppliedPhoneNumberVerified =
152
+ isEqual(hasLoggedInUserConfirmedPhoneNumber, 'True') ||
153
+ isEqual(hasLoggedInUserConfirmedPhoneNumber, 'Deferred')
154
+ ? hasLoggedInUserConfirmedPhoneNumber
155
+ : 'False';
156
+ }
157
+ }
158
+ else {
159
+ // user is openning case for others (use is partner or red hatter)
160
+ try {
161
+ if (!contactSSOName)
162
+ return;
163
+ setIsFetchingSso(true);
164
+ const selectedContact = yield contacts.getSFDCContactBySso(contactSSOName);
165
+ setIsFetchingSso(false);
166
+ if (selectedContact.supportPhoneAreaCodePrefixLineNumber) {
167
+ _phoneAreaCodePrefixLineNumber = selectedContact.supportPhoneAreaCodePrefixLineNumber;
168
+ _phoneCountryCode = selectedContact.supportPhoneCountryCode;
169
+ _suppliedPhoneNumberVerified = 'Deferred';
170
+ }
171
+ else {
172
+ const phoneLength = trimAndReplacePlus(removeAllChars(selectedContact.phone)).length;
173
+ if (phoneLength > 10) {
174
+ _phoneAreaCodePrefixLineNumber = getPhoneObj(selectedContact.phone).phoneLine || '';
175
+ _phoneCountryCode = getPhoneObj(selectedContact.phone).countryCode || '';
176
+ }
177
+ else {
178
+ _phoneAreaCodePrefixLineNumber = selectedContact.phone;
179
+ _phoneCountryCode = '';
180
+ setCaseState(caseDispatch, { shouldNotSetPhoneCountryCode: true });
181
+ setPortalPhone(selectedContact.phone);
182
+ }
183
+ _suppliedPhoneNumberVerified = 'Deferred';
184
+ }
185
+ }
186
+ catch (e) {
187
+ _phoneAreaCodePrefixLineNumber = '';
188
+ _phoneCountryCode = '';
189
+ _suppliedPhoneNumberVerified = 'False';
190
+ setIsFetchingSso(false);
191
+ setCaseState(caseDispatch, { isCasePhoneUpdating: false });
192
+ }
193
+ }
65
194
  setCaseDetails(caseDispatch, {
66
- phoneAreaCodePrefixLineNumber: loggedInUser.data.supportPhoneAreaCodePrefixLineNumber,
67
- phoneCountryCode: loggedInUser.data.supportPhoneCountryCode,
68
- suppliedPhoneNumberVerified: 'True',
195
+ phoneAreaCodePrefixLineNumber: _phoneAreaCodePrefixLineNumber,
196
+ phoneCountryCode: _phoneCountryCode,
197
+ suppliedPhoneNumberVerified: _suppliedPhoneNumberVerified,
69
198
  });
199
+ let _localFullPhone = _phoneCountryCode + ' ' + _phoneAreaCodePrefixLineNumber;
200
+ setLocalFullPhone(checkingPlusInLocalFullPhone(_localFullPhone));
201
+ setCaseState(caseDispatch, { isCasePhoneUpdating: false });
202
+ });
203
+ // if phone not initialized with portal and user contact value, initialize it else populate phone inputbox
204
+ if (isEmpty(phoneAreaCodePrefixLineNumber) && isEmpty(phoneCountryCode)) {
205
+ initContactPhoneNumber();
70
206
  }
71
207
  else {
72
- const phoneLine = getPhoneObj(loggedInUser.data.phone).phoneLine || '';
73
- const countryCode = getPhoneObj(loggedInUser.data.phone).countryCode || '';
74
- setCaseDetails(caseDispatch, {
75
- phoneAreaCodePrefixLineNumber: phoneLine,
76
- phoneCountryCode: countryCode,
77
- suppliedPhoneNumberVerified: phoneLine && countryCode ? 'True' : 'False',
208
+ let phoneLength;
209
+ let portalPhone;
210
+ let supportPhone;
211
+ setCaseState(caseDispatch, { isCasePhoneUpdating: true });
212
+ const getSelectedContactPhoneInfo = () => __awaiter(this, void 0, void 0, function* () {
213
+ try {
214
+ if (!contactSSOName)
215
+ return;
216
+ const selectedContact = yield contacts.getSFDCContactBySso(contactSSOName);
217
+ if (isEmpty(selectedContact.supportPhoneAreaCodePrefixLineNumber) &&
218
+ !isEmpty(selectedContact.phone)) {
219
+ portalPhone = selectedContact.phone;
220
+ phoneLength = trimAndReplacePlus(removeAllChars(portalPhone)).length;
221
+ supportPhone = selectedContact.supportPhoneAreaCodePrefixLineNumber;
222
+ }
223
+ }
224
+ catch (e) {
225
+ portalPhone = '';
226
+ supportPhone = '';
227
+ phoneLength = 0;
228
+ setCaseState(caseDispatch, { isCasePhoneUpdating: false });
229
+ }
78
230
  });
231
+ // logged in user and case owner are the same
232
+ if (contactSSOName === loggedInUser.data.ssoUsername) {
233
+ if (isEmpty(loggedInUser.data.supportPhoneAreaCodePrefixLineNumber) &&
234
+ !isEmpty(loggedInUser.data.phone)) {
235
+ portalPhone = loggedInUser.data.phone;
236
+ phoneLength = trimAndReplacePlus(removeAllChars(portalPhone)).length;
237
+ supportPhone = loggedInUser.data.supportPhoneAreaCodePrefixLineNumber;
238
+ }
239
+ }
240
+ else {
241
+ // user is openning case for others (use is partner or red hatter)
242
+ try {
243
+ yield getSelectedContactPhoneInfo();
244
+ }
245
+ catch (error) {
246
+ console.log(error);
247
+ setCaseState(caseDispatch, { isCasePhoneUpdating: false });
248
+ }
249
+ }
250
+ if ((isUndefined(supportPhone) || isEmpty(supportPhone)) &&
251
+ isEqual(removeAllChars(portalPhone), removeAllChars(phoneCountryCode + ' ' + phoneAreaCodePrefixLineNumber)) &&
252
+ phoneLength <= 10) {
253
+ setPortalPhone(portalPhone);
254
+ }
255
+ setLocalFullPhone(checkingPlusInLocalFullPhone((phoneCountryCode + ' ' + phoneAreaCodePrefixLineNumber).trim()));
256
+ setCaseState(caseDispatch, { isCasePhoneUpdating: false });
79
257
  }
80
- }
81
- setLocalFullPhone(phoneCountryCode + ' ' + phoneAreaCodePrefixLineNumber);
82
- // eslint-disable-next-line react-hooks/exhaustive-deps
83
- }, []);
84
- useEffect(() => {
85
- if (isEqual(localFullPhone.trim(), '+')) {
86
- setLocalFullPhone('');
87
- }
88
- else if (!isEmpty(localFullPhone) && !localFullPhone.startsWith('+')) {
89
- setLocalFullPhone('+' + localFullPhone.replace(' ', ''));
90
- }
258
+ });
259
+ getPhoneInfo();
91
260
  // eslint-disable-next-line react-hooks/exhaustive-deps
92
- }, [localFullPhone]);
261
+ }, [contactSSOName, shouldNotSetPhoneCountryCode]);
93
262
  return (React.createElement("div", { className: "form-group", style: { minWidth: '200px' } },
94
263
  React.createElement("label", null,
95
264
  React.createElement(Trans, null, "Case owner's phone number"),
265
+ React.createElement("span", { className: `form-required ${isExportingPDF ? 'hide-in-pdf' : ''}`, "aria-hidden": true }, "*"),
96
266
  ContactPhoneNumberPopOver()),
97
- React.createElement(PhoneInput, { phoneValue: localFullPhone, onPhoneValueChange: onPhoneChange, onCountryCodeChange: onCountryCodeChange, validations: isPhoneNumberValid, invalid: invalid, setInvalid: setInvalid }),
267
+ React.createElement(PhoneInput, { phoneValue: localFullPhone, countryCode: phoneCountryCode, onPhoneValueChange: onPhoneChange, onCountryCodeChange: onCountryCodeChange, validations: isPhoneNumberValid, invalid: invalid, setInvalid: setInvalid, isLoading: isFetchingSso || isCasePhoneUpdating, shouldNotSetCountryCode: shouldNotSetPhoneCountryCode, isDisabled: isFetchingSso || isCasePhoneUpdating }),
98
268
  !invalid &&
99
- getPhone().length < PHONE_LIMIT &&
269
+ getPhone.length <= PHONE_LIMIT &&
100
270
  !(isPhoneNumberEmpty && isNextBtnClickedToShowValidationError) &&
101
- !(isNextBtnClickedToShowValidationError && isPhoneNumberInvalid) && (React.createElement("p", { className: "form-instructions" },
271
+ !(isNextBtnClickedToShowValidationError &&
272
+ (isPhoneNumberInvalid || isEmpty(trimAndReplacePlus(phoneCountryCode)))) && (React.createElement("p", { className: "form-instructions" },
102
273
  React.createElement(Trans, null, PHONE_INSTRUCTION))),
103
274
  invalid && (React.createElement("p", { className: "form-instructions form-invalid" },
104
275
  React.createElement(Trans, null, PHONE_NO_CHAR_ERROR))),
105
- getPhone().length > PHONE_LIMIT && (React.createElement("p", { className: "form-instructions form-invalid" }, maxLengthErrorMessage)),
276
+ getPhone.length > PHONE_LIMIT && React.createElement("p", { className: "form-instructions form-invalid" }, maxLengthErrorMessage),
106
277
  isPhoneNumberEmpty && isNextBtnClickedToShowValidationError && (React.createElement("p", { className: "form-instructions form-invalid" },
107
- React.createElement(Trans, null, PHONE_LINE_CANNOT_BE_EMPTY))),
278
+ React.createElement(Trans, null, PHONE_INSTRUCTION))),
108
279
  isNextBtnClickedToShowValidationError && isPhoneNumberInvalid && (React.createElement("p", { className: "form-instructions form-invalid" },
280
+ React.createElement(Trans, null, PHONE_LINE_CANNOT_BE_EMPTY))),
281
+ isNextBtnClickedToShowValidationError &&
282
+ isEmpty(trimAndReplacePlus(phoneCountryCode)) &&
283
+ !isPhoneNumberEmpty && (React.createElement("p", { className: "form-instructions form-invalid" },
109
284
  React.createElement(Trans, null, PHONE_IS_NOT_VALID)))));
110
285
  }
@@ -1,2 +1,3 @@
1
- export declare function ContactPhoneNumberAlert(): JSX.Element;
1
+ import React from 'react';
2
+ export declare function ContactPhoneNumberAlert(): React.JSX.Element;
2
3
  //# sourceMappingURL=ContactPhoneNumberAlert.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ContactPhoneNumberAlert.d.ts","sourceRoot":"","sources":["../../../../src/components/CaseInformation/ContactPhoneNumberAlert.tsx"],"names":[],"mappings":"AAYA,wBAAgB,uBAAuB,gBA0DtC"}
1
+ {"version":3,"file":"ContactPhoneNumberAlert.d.ts","sourceRoot":"","sources":["../../../../src/components/CaseInformation/ContactPhoneNumberAlert.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAgC,MAAM,OAAO,CAAC;AAQrD,wBAAgB,uBAAuB,sBAqFtC"}
@@ -1,35 +1,54 @@
1
1
  import { Alert, AlertVariant, Button, ButtonVariant } from '@patternfly/react-core';
2
+ import { GlobalMetadataStateContext } from '@rh-support/react-context';
2
3
  import isEmpty from 'lodash/isEmpty';
3
4
  import isEqual from 'lodash/isEqual';
5
+ import isUndefined from 'lodash/isUndefined';
4
6
  import React, { useContext, useEffect } from 'react';
5
7
  import { Trans, useTranslation } from 'react-i18next';
6
8
  import { useCaseDispatch, useCaseSelector } from '../../context/CaseContext';
7
- import { setCaseDetails } from '../../reducers/CaseReducer';
9
+ import { setCaseDetails, setCaseState } from '../../reducers/CaseReducer';
8
10
  import { PDFContext } from '../CaseEditView/PDFContainer';
11
+ import { trimAndReplacePlus } from '../shared/utils';
9
12
  export function ContactPhoneNumberAlert() {
10
13
  const { t } = useTranslation();
11
14
  const caseDispatch = useCaseDispatch();
12
- const { caseDetails } = useCaseSelector((state) => ({
13
- caseDetails: state.caseDetails,
15
+ const { phoneCountryCode, phoneAreaCodePrefixLineNumber, contactSSOName, suppliedPhoneNumberVerified } = useCaseSelector((state) => ({
16
+ phoneCountryCode: state.caseDetails.phoneCountryCode,
17
+ phoneAreaCodePrefixLineNumber: state.caseDetails.phoneAreaCodePrefixLineNumber,
18
+ contactSSOName: state.caseDetails.contactSSOName,
19
+ suppliedPhoneNumberVerified: state.caseDetails.suppliedPhoneNumberVerified,
14
20
  }), isEqual);
21
+ const { globalMetadataState: { loggedInUser }, } = useContext(GlobalMetadataStateContext);
15
22
  const { isExportingPDF } = useContext(PDFContext);
16
- const onCaseDetailsChange = (caseDetails) => {
17
- setCaseDetails(caseDispatch, caseDetails);
23
+ const onSuppliedPhoneNumberVerifiedChange = (suppliedPhoneNumberVerified) => {
24
+ setCaseDetails(caseDispatch, { suppliedPhoneNumberVerified });
25
+ if (contactSSOName === loggedInUser.data.ssoUsername) {
26
+ // edge case: when loggedInUser === contactSSOName while opening a case confirms or deffers the phone
27
+ // we need to save the verification state globallly so that we don't show the phone review banner again
28
+ // to the user where he changes it to another owner and then again assigns himself as the case owner
29
+ setCaseState(caseDispatch, {
30
+ hasLoggedInUserConfirmedPhoneNumber: suppliedPhoneNumberVerified,
31
+ });
32
+ }
18
33
  };
34
+ const isPhoneNumberEmpty = isEmpty(trimAndReplacePlus(phoneCountryCode)) &&
35
+ isEmpty(phoneAreaCodePrefixLineNumber === null || phoneAreaCodePrefixLineNumber === void 0 ? void 0 : phoneAreaCodePrefixLineNumber.replace(phoneCountryCode, ''));
19
36
  useEffect(() => {
20
- if (caseDetails.severity === "1 (Urgent)" /* SEV_1 */ && !caseDetails.suppliedPhoneNumberVerified) {
21
- onCaseDetailsChange({ suppliedPhoneNumberVerified: undefined });
37
+ if (isPhoneNumberEmpty && !suppliedPhoneNumberVerified) {
38
+ onSuppliedPhoneNumberVerifiedChange(undefined);
22
39
  }
23
40
  // eslint-disable-next-line react-hooks/exhaustive-deps
24
- }, [caseDetails.severity]);
25
- const hideAlert = caseDetails.severity !== "1 (Urgent)" /* SEV_1 */ || !isEmpty(caseDetails.suppliedPhoneNumberVerified);
26
- if (hideAlert)
41
+ }, []);
42
+ const phoneAndCountryHaveValues = !isEmpty(phoneAreaCodePrefixLineNumber) && !isEmpty(trimAndReplacePlus(phoneCountryCode));
43
+ const phoneNotVerifiedOrVerificationIsUndefined = isEqual(suppliedPhoneNumberVerified, 'False') || isUndefined(suppliedPhoneNumberVerified);
44
+ const showAlert = phoneNotVerifiedOrVerificationIsUndefined && phoneAndCountryHaveValues;
45
+ if (!showAlert)
27
46
  return React.createElement(React.Fragment, null);
28
- return (React.createElement(Alert, { className: `form-group ${isExportingPDF ? 'hide-in-pdf' : ''}`, isInline: true, variant: AlertVariant.warning, title: t('Review phone number'), actionLinks: [
29
- React.createElement(Button, { variant: ButtonVariant.link, isInline: true, onClick: () => onCaseDetailsChange({ suppliedPhoneNumberVerified: 'True' }), "data-tracking-id": "case-contact-phone-number-confirm" },
47
+ return (React.createElement(Alert, { className: `form-group ${isExportingPDF ? 'hide-in-pdf' : ''} phone-review-banner`, isInline: true, variant: AlertVariant.warning, title: t('Review phone number'), actionLinks: [
48
+ React.createElement(Button, { variant: ButtonVariant.link, isInline: true, onClick: () => onSuppliedPhoneNumberVerifiedChange('True'), "data-tracking-id": "case-contact-phone-number-confirm", key: "case-contact-phone-number-confirm" },
30
49
  React.createElement(Trans, null, "Confirm phone number")),
31
- React.createElement(Button, { variant: ButtonVariant.link, isInline: true, onClick: () => onCaseDetailsChange({ suppliedPhoneNumberVerified: 'Deferred' }), "data-tracking-id": "case-contact-phone-number-dont-know" },
50
+ React.createElement(Button, { variant: ButtonVariant.link, isInline: true, onClick: () => onSuppliedPhoneNumberVerifiedChange('Deferred'), "data-tracking-id": "case-contact-phone-number-dont-know", key: "case-contact-phone-number-dont-know" },
32
51
  React.createElement(Trans, null, "I don't know")),
33
52
  ] },
34
- React.createElement(Trans, null, "You are opening an urgent severity case, please confirm the phone number we have on file is correct.")));
53
+ React.createElement(Trans, null, "Please confirm the phone number we have on file is correct.")));
35
54
  }
@@ -1,2 +1,3 @@
1
- export declare const ContactPhoneNumberPopOver: () => JSX.Element;
1
+ import React from 'react';
2
+ export declare const ContactPhoneNumberPopOver: () => React.JSX.Element;
2
3
  //# sourceMappingURL=ContactPhoneNumberPopOver.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ContactPhoneNumberPopOver.d.ts","sourceRoot":"","sources":["../../../../src/components/CaseInformation/ContactPhoneNumberPopOver.tsx"],"names":[],"mappings":"AAKA,eAAO,MAAM,yBAAyB,mBAkBrC,CAAC"}
1
+ {"version":3,"file":"ContactPhoneNumberPopOver.d.ts","sourceRoot":"","sources":["../../../../src/components/CaseInformation/ContactPhoneNumberPopOver.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,eAAO,MAAM,yBAAyB,yBAkBrC,CAAC"}
@@ -5,5 +5,5 @@ import { Trans } from 'react-i18next';
5
5
  export const ContactPhoneNumberPopOver = () => {
6
6
  return (React.createElement(Popover, { "aria-label": "Support Severity Level info", position: PopoverPosition.right, bodyContent: React.createElement("p", null,
7
7
  React.createElement(Trans, null, "When you change the phone number, it affects both this case and your contact info in the Red Hat support system.")), closeBtnAriaLabel: "Close" },
8
- React.createElement(QuestionCircleIcon, { className: "pf-u-ml-xs icon-size", "aria-label": "Contact Phone Number Info" })));
8
+ React.createElement(QuestionCircleIcon, { className: "pf-v5-u-ml-xs icon-size", "aria-label": "Contact Phone Number Info" })));
9
9
  };
@@ -1,8 +1,10 @@
1
+ import React from 'react';
1
2
  interface IProps {
2
3
  inlineEditable?: boolean;
3
4
  hideSaveCancel?: boolean;
4
5
  customTitle?: string;
6
+ isSummarizeInvalid?: boolean;
5
7
  }
6
- export default function Description(props: IProps): JSX.Element;
8
+ export default function Description(props: IProps): React.JSX.Element;
7
9
  export {};
8
10
  //# sourceMappingURL=Description.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Description.d.ts","sourceRoot":"","sources":["../../../../src/components/CaseInformation/Description.tsx"],"names":[],"mappings":"AAkBA,UAAU,MAAM;IACZ,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,KAAK,EAAE,MAAM,eAyGhD"}
1
+ {"version":3,"file":"Description.d.ts","sourceRoot":"","sources":["../../../../src/components/CaseInformation/Description.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAQ3D,UAAU,MAAM;IACZ,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAChC;AAED,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,KAAK,EAAE,MAAM,qBAqKhD"}
@@ -1,55 +1,85 @@
1
- import { TextArea } from '@patternfly/react-core';
2
- import { InlineEdit } from '@rh-support/components';
1
+ import { Popover, TextArea } from '@patternfly/react-core';
2
+ import OutlinedQuestionCircleIcon from '@patternfly/react-icons/dist/js/icons/outlined-question-circle-icon';
3
+ // import ArrowRightIcon from '@patternfly/react-icons/dist/js/icons/arrow-right-icon'; This will be used for the Learn More button
4
+ import { InlineEdit, useBreakpoint } from '@rh-support/components';
3
5
  import isEmpty from 'lodash/isEmpty';
4
6
  import isEqual from 'lodash/isEqual';
5
- import React, { useContext, useState } from 'react';
7
+ import React, { useEffect, useRef, useState } from 'react';
6
8
  import { Trans, useTranslation } from 'react-i18next';
7
9
  import { useCaseDispatch, useCaseSelector } from '../../context/CaseContext';
8
- import { RouteContext } from '../../context/RouteContext';
9
- import { CASE_DEATILS_ISSUE_LIMIT, LargeDescriptionErrorMessage, MODIFIED_DESCRIPTION_LENGTH_LIMIT, } from '../../reducers/CaseConstNTypes';
10
+ import { CASE_DETAILS_ISSUE_LIMIT } from '../../reducers/CaseConstNTypes';
10
11
  import { getUpdatedDescription } from '../../reducers/CaseHelpers';
11
12
  import { setCaseDetails } from '../../reducers/CaseReducer';
12
13
  export default function Description(props) {
13
14
  const { t } = useTranslation();
14
- const { hasLargeCaseDescription, issue, environment, periodicityOfIssue, timeFramesAndUrgency, v3ClusterName } = useCaseSelector((state) => ({
15
+ const { issue, environment, periodicityOfIssue, timeFramesAndUrgency, v3ClusterName, version, product, summary } = useCaseSelector((state) => ({
15
16
  description: state.caseDetails.description,
16
17
  issue: state.caseDetails.issue,
17
18
  environment: state.caseDetails.environment,
19
+ version: state.caseDetails.version,
18
20
  periodicityOfIssue: state.caseDetails.periodicityOfIssue,
19
21
  timeFramesAndUrgency: state.caseDetails.timeFramesAndUrgency,
20
22
  hasLargeCaseDescription: state.hasLargeCaseDescription,
21
23
  v3ClusterName: state.v3ClusterName,
24
+ product: state.caseDetails.product,
25
+ summary: state.caseDetails.summary,
22
26
  }), isEqual);
23
27
  const caseDispatch = useCaseDispatch();
24
- const [hasFocusedLostKT4, setHasFocusedLostKT4] = useState(false);
25
- const [isIssueTextAreaFocused, setIssueTextAreaFocused] = useState(false);
26
- const onKTQ1IssueFocusChange = (e) => {
27
- setIssueTextAreaFocused(e.type === 'focus');
28
- e.type === 'blur' && setHasFocusedLostKT4(true);
29
- };
28
+ const breakPoint = useBreakpoint();
29
+ const isLgScreenHeight = breakPoint.lgh; // min-height: 1100px
30
+ const [isOpen, setIsOpen] = useState(false);
31
+ const [hasShownPopover, setHasShownPopover] = useState(false);
32
+ const textAreaRef = useRef(null);
33
+ useEffect(() => {
34
+ const hasShown = localStorage.getItem('hasShownDescriptionPopover');
35
+ setHasShownPopover(hasShown === 'true');
36
+ }, []);
30
37
  const onCaseDetailsChange = (caseDetails) => {
31
38
  setCaseDetails(caseDispatch, caseDetails);
32
39
  };
33
- const { routeState: { isNextBtnClickedToShowValidationError }, } = useContext(RouteContext);
34
40
  const onKTQ1IssueChange = (value, e) => {
35
41
  const ktQ1Local = isEmpty(value === null || value === void 0 ? void 0 : value.trim()) ? '' : value;
36
42
  const newDescription = getUpdatedDescription(ktQ1Local, environment, periodicityOfIssue, timeFramesAndUrgency, v3ClusterName);
37
43
  onCaseDetailsChange({ issue: ktQ1Local, description: newDescription });
38
44
  };
39
- const isKT1Required = true;
40
- //changing limit to 31000 to account for extra chars added during description combination to backend. True limit is 32000
41
- const descriptionErrorMessage = t(LargeDescriptionErrorMessage, { limit: MODIFIED_DESCRIPTION_LENGTH_LIMIT });
42
- const isDescriptionInvalid = (issue) => {
43
- return hasFocusedLostKT4 && isEmpty(issue);
45
+ const handleTextAreaClick = () => {
46
+ if (!hasShownPopover) {
47
+ setIsOpen(true);
48
+ setHasShownPopover(true);
49
+ localStorage.setItem('hasShownDescriptionPopover', 'true');
50
+ }
51
+ };
52
+ const handleToggle = () => {
53
+ setIsOpen(!isOpen);
44
54
  };
45
- return (React.createElement(InlineEdit, { labelContent: React.createElement(React.Fragment, null,
46
- props.customTitle ? (props.customTitle) : (React.createElement(Trans, null, "What are you experiencing? What are you expecting to happen?")),
47
- isKT1Required && (React.createElement("span", { className: "form-required", "aria-hidden": true }, "*"))), labelProps: { htmlFor: 'get-support-ktQ1-issue' }, content: issue, allowInlineEdit: !!props.inlineEditable, hideSaveCancel: !!props.hideSaveCancel, initialIsEditing: isEmpty(issue), usePreformattedTag: true, saveOnBlur: true },
48
- React.createElement(TextArea, { id: "get-support-ktQ1-issue", name: "get-support-ktQ1-issue", className: `form-control${isDescriptionInvalid(issue) || (isNextBtnClickedToShowValidationError && isEmpty(issue))
49
- ? ' form-invalid'
50
- : ''}`, "aria-invalid": (issue === null || issue === void 0 ? void 0 : issue.length) > CASE_DEATILS_ISSUE_LIMIT ? 'true' : 'false', "aria-required": isKT1Required, isRequired: isKT1Required, value: issue, isDisabled: isEmpty(issue) && hasLargeCaseDescription && !setIssueTextAreaFocused, onChange: onKTQ1IssueChange, onFocus: onKTQ1IssueFocusChange, onBlur: onKTQ1IssueFocusChange, "data-tracking-id": "get-support-ktQ1-issue", placeholder: t('Please enter an elaborate description'), rows: 5 }),
51
- React.createElement("p", { className: "form-instructions", "data-tracking-id": "large-20k-warning-ktQ1-environment" }, `${(issue === null || issue === void 0 ? void 0 : issue.length) > CASE_DEATILS_ISSUE_LIMIT
52
- ? `Description cannot be more than ${CASE_DEATILS_ISSUE_LIMIT} characters`
53
- : ''}`),
54
- React.createElement("p", { className: "form-instructions" }, `${hasLargeCaseDescription && isIssueTextAreaFocused ? descriptionErrorMessage : ''}`)));
55
+ const handleClose = () => {
56
+ setIsOpen(false);
57
+ };
58
+ const isKT1Required = true;
59
+ const headerPopoverContent = (React.createElement("div", null,
60
+ React.createElement(Trans, null, "Tips for describing your problem")));
61
+ const PopoverContent = (React.createElement("div", { className: "popover-body-info-description" },
62
+ React.createElement(Trans, null, "Example:"),
63
+ React.createElement("p", { className: "pf-v5-u-color-200" },
64
+ React.createElement(Trans, null,
65
+ "I'm unable to start the SSHD service receiving the error message",
66
+ React.createElement("br", null),
67
+ "\"Bad yes/no argument for ShowPatchLevel parameter\"")),
68
+ React.createElement(Trans, null, "To expedite your case, include these details:"),
69
+ React.createElement("p", { className: "pf-v5-u-color-200" },
70
+ React.createElement(Trans, null,
71
+ "Problem",
72
+ React.createElement("br", null),
73
+ "Steps you've taken",
74
+ React.createElement("br", null),
75
+ "Error Messages"))));
76
+ return (React.createElement(InlineEdit, { labelContent: React.createElement(React.Fragment, null, props.customTitle ? (props.customTitle) : (React.createElement(React.Fragment, null,
77
+ React.createElement(Trans, null, "Describe your problem. Include specific actions and error messages."),
78
+ isKT1Required && (React.createElement("span", { className: "form-required", "aria-hidden": true }, "*")),
79
+ React.createElement(Popover, { isVisible: isOpen, shouldClose: handleClose, headerContent: headerPopoverContent, bodyContent: PopoverContent },
80
+ React.createElement(OutlinedQuestionCircleIcon, { className: "pf-v5-u-ml-xs icon-size", onClick: handleToggle }))))), labelProps: { htmlFor: 'get-support-ktQ1-issue' }, content: issue, allowInlineEdit: !!props.inlineEditable, hideSaveCancel: !!props.hideSaveCancel, initialIsEditing: isEmpty(issue), usePreformattedTag: true, saveOnBlur: true },
81
+ React.createElement(TextArea, { id: "get-support-ktQ1-issue", name: "get-support-ktQ1-issue", className: `description-textarea ${isEmpty(version) || isEmpty(summary) || isEmpty(product) ? 'kt1-disabled' : ''}`, "aria-invalid": (issue === null || issue === void 0 ? void 0 : issue.length) > CASE_DETAILS_ISSUE_LIMIT ? 'true' : 'false', "aria-required": isKT1Required, isRequired: isKT1Required, value: issue, disabled: isEmpty(version) || isEmpty(summary) || isEmpty(product), onChange: (e, value) => onKTQ1IssueChange(value, e), "data-tracking-id": "get-support-ktQ1-issue", placeholder: t(`The more detail that you include, the easier it is for us to help you. \nExample: \nI'm unable to start the SSHD service and am receiving the error message "Bad yes/no \nargument for ShowPatchLevel parameter"`), resizeOrientation: "vertical", validated: props.isSummarizeInvalid ? 'error' : 'default', rows: isLgScreenHeight ? 10 : 4, ref: textAreaRef, onClick: handleTextAreaClick }),
82
+ React.createElement("p", { className: "form-instructions pf-v5-u-danger-color-100", "data-tracking-id": "large-20k-warning-ktQ1-environment" }, `${(issue === null || issue === void 0 ? void 0 : issue.length) > CASE_DETAILS_ISSUE_LIMIT
83
+ ? `This description exceeds ${CASE_DETAILS_ISSUE_LIMIT} characters. Try shortening it.`
84
+ : ''}`)));
55
85
  }
@@ -1,6 +1,7 @@
1
+ import React from 'react';
1
2
  interface IProps {
2
3
  className?: string;
3
4
  }
4
- export declare function FileDiag(props: IProps): JSX.Element;
5
+ export declare function FileDiag(props: IProps): React.JSX.Element;
5
6
  export {};
6
7
  //# sourceMappingURL=FileDiag.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"FileDiag.d.ts","sourceRoot":"","sources":["../../../../src/components/CaseInformation/FileDiag.tsx"],"names":[],"mappings":"AAYA,UAAU,MAAM;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,eAqCrC"}
1
+ {"version":3,"file":"FileDiag.d.ts","sourceRoot":"","sources":["../../../../src/components/CaseInformation/FileDiag.tsx"],"names":[],"mappings":"AAIA,OAAO,KAA0C,MAAM,OAAO,CAAC;AAQ/D,UAAU,MAAM;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,qBAqCrC"}
@@ -1,9 +1,10 @@
1
+ import React from 'react';
1
2
  interface IProps {
2
3
  inlineEditable: boolean;
3
4
  hideSaveCancel: boolean;
4
5
  initialIsEditing?: boolean;
5
6
  }
6
- declare function Fts(props: IProps): JSX.Element;
7
+ declare function Fts(props: IProps): React.JSX.Element;
7
8
  declare namespace Fts {
8
9
  var defaultProps: Partial<IProps>;
9
10
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Fts.d.ts","sourceRoot":"","sources":["../../../../src/components/CaseInformation/Fts.tsx"],"names":[],"mappings":"AAoBA,UAAU,MAAM;IACZ,cAAc,EAAE,OAAO,CAAC;IACxB,cAAc,EAAE,OAAO,CAAC;IACxB,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAQD,iBAAS,GAAG,CAAC,KAAK,EAAE,MAAM,eAsLzB;kBAtLQ,GAAG;;;AAyLZ,eAAe,GAAG,CAAC"}
1
+ {"version":3,"file":"Fts.d.ts","sourceRoot":"","sources":["../../../../src/components/CaseInformation/Fts.tsx"],"names":[],"mappings":"AAWA,OAAO,KAA0C,MAAM,OAAO,CAAC;AAS/D,UAAU,MAAM;IACZ,cAAc,EAAE,OAAO,CAAC;IACxB,cAAc,EAAE,OAAO,CAAC;IACxB,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAQD,iBAAS,GAAG,CAAC,KAAK,EAAE,MAAM,qBA6OzB;kBA7OQ,GAAG;;;AAgPZ,eAAe,GAAG,CAAC"}