@rh-support/troubleshoot 2.7.1 → 2.7.11

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 (585) hide show
  1. package/lib/esm/components/AccountInfo/AccountSelector.d.ts.map +1 -1
  2. package/lib/esm/components/AccountInfo/AccountSelector.js +23 -33
  3. package/lib/esm/components/AccountInfo/ManagedAccountsDropdown.js +1 -1
  4. package/lib/esm/components/AccountInfo/OwnerSelector.d.ts.map +1 -1
  5. package/lib/esm/components/AccountInfo/OwnerSelector.js +90 -24
  6. package/lib/esm/components/AccountInfo/css/accountSelector.css +3 -2
  7. package/lib/esm/components/CaseEditView/ActiveCustomerEscalation/ActiveCustomerEscalation.d.ts.map +1 -1
  8. package/lib/esm/components/CaseEditView/ActiveCustomerEscalation/ActiveCustomerEscalation.js +47 -35
  9. package/lib/esm/components/CaseEditView/ActiveCustomerEscalation/RequestEscalationModal.d.ts.map +1 -1
  10. package/lib/esm/components/CaseEditView/ActiveCustomerEscalation/RequestEscalationModal.js +167 -90
  11. package/lib/esm/components/CaseEditView/ArchivedCaseBanner.d.ts +7 -0
  12. package/lib/esm/components/CaseEditView/ArchivedCaseBanner.d.ts.map +1 -0
  13. package/lib/esm/components/CaseEditView/ArchivedCaseBanner.js +12 -0
  14. package/lib/esm/components/CaseEditView/Case.d.ts.map +1 -1
  15. package/lib/esm/components/CaseEditView/Case.js +103 -37
  16. package/lib/esm/components/CaseEditView/CaseDetailsAside.d.ts.map +1 -1
  17. package/lib/esm/components/CaseEditView/CaseDetailsAside.js +44 -37
  18. package/lib/esm/components/CaseEditView/CaseDetailsErrorMessage.d.ts +1 -0
  19. package/lib/esm/components/CaseEditView/CaseDetailsErrorMessage.d.ts.map +1 -1
  20. package/lib/esm/components/CaseEditView/CaseDetailsErrorMessage.js +32 -11
  21. package/lib/esm/components/CaseEditView/CaseDetailsTabs.d.ts.map +1 -1
  22. package/lib/esm/components/CaseEditView/CaseDetailsTabs.js +94 -72
  23. package/lib/esm/components/CaseEditView/CaseOverview/CaseOwnerInfo.d.ts +2 -0
  24. package/lib/esm/components/CaseEditView/CaseOverview/CaseOwnerInfo.d.ts.map +1 -1
  25. package/lib/esm/components/CaseEditView/CaseOverview/CaseOwnerInfo.js +4 -4
  26. package/lib/esm/components/CaseEditView/CaseOverview/CaseStatus.d.ts +3 -2
  27. package/lib/esm/components/CaseEditView/CaseOverview/CaseStatus.d.ts.map +1 -1
  28. package/lib/esm/components/CaseEditView/CaseOverview/CaseStatus.js +24 -11
  29. package/lib/esm/components/CaseEditView/CaseOverview/CaseType.d.ts.map +1 -1
  30. package/lib/esm/components/CaseEditView/CaseOverview/CaseType.js +2 -4
  31. package/lib/esm/components/CaseEditView/CaseOverview/DateTime.d.ts.map +1 -1
  32. package/lib/esm/components/CaseEditView/CaseOverview/DateTime.js +1 -1
  33. package/lib/esm/components/CaseEditView/CaseOverview/index.d.ts.map +1 -1
  34. package/lib/esm/components/CaseEditView/CaseOverview/index.js +123 -70
  35. package/lib/esm/components/CaseEditView/CaseSolutions/CaseSolutions.d.ts.map +1 -1
  36. package/lib/esm/components/CaseEditView/CaseSolutions/CaseSolutions.js +240 -121
  37. package/lib/esm/components/CaseEditView/CaseSolutions/CaseSolutionsItem.d.ts +0 -1
  38. package/lib/esm/components/CaseEditView/CaseSolutions/CaseSolutionsItem.d.ts.map +1 -1
  39. package/lib/esm/components/CaseEditView/CaseSolutions/CaseSolutionsItem.js +6 -6
  40. package/lib/esm/components/CaseEditView/CaseSolutions/HandpicketItem.js +3 -3
  41. package/lib/esm/components/CaseEditView/CaseSubscriptionAbuseAlert.js +1 -1
  42. package/lib/esm/components/CaseEditView/ConfirmationModals/ReopenCaseModal.d.ts +1 -3
  43. package/lib/esm/components/CaseEditView/ConfirmationModals/ReopenCaseModal.d.ts.map +1 -1
  44. package/lib/esm/components/CaseEditView/ConfirmationModals/ReopenCaseModal.js +55 -43
  45. package/lib/esm/components/CaseEditView/PDFContainer.d.ts.map +1 -1
  46. package/lib/esm/components/CaseEditView/PDFContainer.js +19 -15
  47. package/lib/esm/components/CaseEditView/RequestRemoteSession/ESSRemoteSession.d.ts.map +1 -1
  48. package/lib/esm/components/CaseEditView/RequestRemoteSession/ESSRemoteSession.js +33 -16
  49. package/lib/esm/components/CaseEditView/RequestRemoteSession/ESSRemoteSessionModal.d.ts.map +1 -1
  50. package/lib/esm/components/CaseEditView/RequestRemoteSession/ESSRemoteSessionModal.js +31 -33
  51. package/lib/esm/components/CaseEditView/RequestRemoteSession/NewEssTermsModal.d.ts.map +1 -1
  52. package/lib/esm/components/CaseEditView/RequestRemoteSession/NewEssTermsModal.js +116 -91
  53. package/lib/esm/components/CaseEditView/RequestRemoteSession/RemoteSessionAgreement.d.ts.map +1 -1
  54. package/lib/esm/components/CaseEditView/RequestRemoteSession/RemoteSessionAgreement.js +33 -16
  55. package/lib/esm/components/CaseEditView/RequestRemoteSession/RemoteSessionAgreementModal.d.ts.map +1 -1
  56. package/lib/esm/components/CaseEditView/RequestRemoteSession/RemoteSessionAgreementModal.js +114 -89
  57. package/lib/esm/components/CaseEditView/RequestRemoteSession/remoteSessionUtils.d.ts +15 -0
  58. package/lib/esm/components/CaseEditView/RequestRemoteSession/remoteSessionUtils.d.ts.map +1 -0
  59. package/lib/esm/components/CaseEditView/RequestRemoteSession/remoteSessionUtils.js +47 -0
  60. package/lib/esm/components/CaseEditView/ShareCase/TnC.d.ts.map +1 -1
  61. package/lib/esm/components/CaseEditView/Tabs/CaseActionPlan/CaseActionPlan.d.ts.map +1 -1
  62. package/lib/esm/components/CaseEditView/Tabs/CaseActionPlan/CaseActionPlan.js +9 -6
  63. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseContactPhoneNumber.d.ts.map +1 -1
  64. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseContactPhoneNumber.js +54 -48
  65. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseDetailsManagement.d.ts.map +1 -1
  66. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseDetailsManagement.js +84 -17
  67. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseHostname.d.ts.map +1 -1
  68. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseHostname.js +8 -8
  69. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseInformation.d.ts.map +1 -1
  70. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseInformation.js +0 -2
  71. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseInternalStatus.d.ts.map +1 -1
  72. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseInternalStatus.js +4 -3
  73. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseOpenshiftClusterId/CaseOpenShiftPopover.js +1 -1
  74. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseOpenshiftClusterId/CaseOpenShiftV3Popover.js +1 -1
  75. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseOpenshiftClusterId/CaseOpenshiftClusterId.d.ts.map +1 -1
  76. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseOpenshiftClusterId/CaseOpenshiftClusterId.js +137 -59
  77. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CasePhoneNumberConfirmAlert.d.ts.map +1 -1
  78. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CasePhoneNumberConfirmAlert.js +6 -9
  79. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseReferenceNumber.d.ts.map +1 -1
  80. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseReferenceNumber.js +13 -8
  81. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseSbrGroups.d.ts.map +1 -1
  82. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseSbrGroups.js +3 -1
  83. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/ProductVersion.d.ts.map +1 -1
  84. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/ProductVersion.js +119 -65
  85. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/SFDCUrl.d.ts.map +1 -1
  86. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/SFDCUrl.js +3 -4
  87. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/Summary.d.ts.map +1 -1
  88. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/Summary.js +22 -15
  89. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/useCustomEmails.d.ts +1 -2
  90. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/useCustomEmails.d.ts.map +1 -1
  91. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/useCustomEmails.js +6 -5
  92. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/AsaCommentFeedbackModal.d.ts +25 -0
  93. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/AsaCommentFeedbackModal.d.ts.map +1 -0
  94. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/AsaCommentFeedbackModal.js +102 -0
  95. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/CaseAttachment.d.ts.map +1 -1
  96. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/CaseAttachment.js +44 -28
  97. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/CaseChat.d.ts.map +1 -1
  98. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/CaseChat.js +7 -1
  99. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/CaseComments.d.ts +1 -1
  100. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/CaseComments.d.ts.map +1 -1
  101. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/CaseComments.js +158 -101
  102. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/CaseDiscussion.d.ts +10 -2
  103. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/CaseDiscussion.d.ts.map +1 -1
  104. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/CaseDiscussion.js +294 -143
  105. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/CaseExternalTrackerUpdate.js +1 -1
  106. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/CommentSearch.d.ts.map +1 -1
  107. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/CommentSearch.js +16 -16
  108. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/DiscussionItemLink.d.ts.map +1 -1
  109. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/DiscussionItemLink.js +9 -2
  110. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/JumpAndCopyLink.d.ts.map +1 -1
  111. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/JumpAndCopyLink.js +8 -1
  112. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/PostComment/useAttachmentUploadCompletion.d.ts +29 -0
  113. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/PostComment/useAttachmentUploadCompletion.d.ts.map +1 -0
  114. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/PostComment/useAttachmentUploadCompletion.js +29 -0
  115. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/PostComment/useCommentDrafts.d.ts +17 -0
  116. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/PostComment/useCommentDrafts.d.ts.map +1 -0
  117. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/PostComment/useCommentDrafts.js +62 -0
  118. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/PostComment/useMarkdownFileUploader.d.ts +1 -2
  119. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/PostComment/useMarkdownFileUploader.d.ts.map +1 -1
  120. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/PostComment/useMarkdownFileUploader.js +14 -12
  121. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/PostComment.d.ts +9 -3
  122. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/PostComment.d.ts.map +1 -1
  123. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/PostComment.js +223 -277
  124. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/VerifyCaseStatusModal/VerifyCaseStatusModal.d.ts.map +1 -1
  125. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/VerifyCaseStatusModal/VerifyCaseStatusModal.js +33 -25
  126. package/lib/esm/components/CaseEditView/Tabs/CaseHistory/CaseHistory.d.ts +0 -1
  127. package/lib/esm/components/CaseEditView/Tabs/CaseHistory/CaseHistory.d.ts.map +1 -1
  128. package/lib/esm/components/CaseEditView/Tabs/CaseHistory/CaseHistory.js +8 -4
  129. package/lib/esm/components/CaseEditView/Tabs/CaseHistory/Timeline.css +55 -42
  130. package/lib/esm/components/CaseEditView/Tabs/CaseHistory/Timeline.d.ts +36 -3
  131. package/lib/esm/components/CaseEditView/Tabs/CaseHistory/Timeline.d.ts.map +1 -1
  132. package/lib/esm/components/CaseEditView/Tabs/CaseHistory/Timeline.js +100 -248
  133. package/lib/esm/components/CaseEditView/Tabs/CasePrivateNotes/CasePrivateNotes.d.ts +4 -5
  134. package/lib/esm/components/CaseEditView/Tabs/CasePrivateNotes/CasePrivateNotes.d.ts.map +1 -1
  135. package/lib/esm/components/CaseEditView/Tabs/CasePrivateNotes/CasePrivateNotes.js +29 -12
  136. package/lib/esm/components/CaseEditView/Tabs/CaseSummary/CaseSummary.d.ts.map +1 -1
  137. package/lib/esm/components/CaseEditView/Tabs/CaseSummary/CaseSummary.js +32 -18
  138. package/lib/esm/components/CaseEditView/Tabs/CaseSummary/CaseSummaryErrorMessage.d.ts.map +1 -1
  139. package/lib/esm/components/CaseEditView/Tabs/CaseSummary/CaseSummaryErrorMessage.js +5 -7
  140. package/lib/esm/components/CaseEditView/Tabs/RMEEscalations/RMEEscalationList.d.ts.map +1 -1
  141. package/lib/esm/components/CaseEditView/Tabs/RMEEscalations/RMEEscalationList.js +41 -55
  142. package/lib/esm/components/CaseEditView/Tabs/RelatedTasks/RelatedTasks.d.ts.map +1 -1
  143. package/lib/esm/components/CaseEditView/Tabs/RelatedTasks/RelatedTasks.js +2 -3
  144. package/lib/esm/components/CaseInformation/AISureMessageCard.d.ts +7 -0
  145. package/lib/esm/components/CaseInformation/AISureMessageCard.d.ts.map +1 -0
  146. package/lib/esm/components/CaseInformation/AISureMessageCard.js +15 -0
  147. package/lib/esm/components/CaseInformation/CaseGroup.d.ts.map +1 -1
  148. package/lib/esm/components/CaseInformation/CaseGroup.js +177 -55
  149. package/lib/esm/components/CaseInformation/CaseInformation.d.ts.map +1 -1
  150. package/lib/esm/components/CaseInformation/CaseInformation.js +15 -14
  151. package/lib/esm/components/CaseInformation/CaseLabels.d.ts +3 -0
  152. package/lib/esm/components/CaseInformation/CaseLabels.d.ts.map +1 -0
  153. package/lib/esm/components/CaseInformation/CaseLabels.js +108 -0
  154. package/lib/esm/components/CaseInformation/ContactPhoneNumber.d.ts.map +1 -1
  155. package/lib/esm/components/CaseInformation/ContactPhoneNumber.js +108 -31
  156. package/lib/esm/components/CaseInformation/ContactPhoneNumberPopOver.d.ts.map +1 -1
  157. package/lib/esm/components/CaseInformation/ContactPhoneNumberPopOver.js +3 -3
  158. package/lib/esm/components/CaseInformation/Description.d.ts.map +1 -1
  159. package/lib/esm/components/CaseInformation/Description.js +25 -7
  160. package/lib/esm/components/CaseInformation/FileDiag.d.ts.map +1 -1
  161. package/lib/esm/components/CaseInformation/FileDiag.js +2 -5
  162. package/lib/esm/components/CaseInformation/Fts.d.ts.map +1 -1
  163. package/lib/esm/components/CaseInformation/Fts.js +41 -27
  164. package/lib/esm/components/CaseInformation/OpenCaseIssue.d.ts +1 -0
  165. package/lib/esm/components/CaseInformation/OpenCaseIssue.d.ts.map +1 -1
  166. package/lib/esm/components/CaseInformation/OpenCaseIssue.js +8 -3
  167. package/lib/esm/components/CaseInformation/Severity.d.ts.map +1 -1
  168. package/lib/esm/components/CaseInformation/Severity.js +34 -25
  169. package/lib/esm/components/CaseInformation/SupportLevel.d.ts.map +1 -1
  170. package/lib/esm/components/CaseInformation/SupportLevel.js +43 -51
  171. package/lib/esm/components/CaseManagement/CaseLabelsCreate.d.ts +4 -0
  172. package/lib/esm/components/CaseManagement/CaseLabelsCreate.d.ts.map +1 -0
  173. package/lib/esm/components/CaseManagement/CaseLabelsCreate.js +141 -0
  174. package/lib/esm/components/CaseManagement/CaseLanguageSelector.d.ts.map +1 -1
  175. package/lib/esm/components/CaseManagement/CaseLanguageSelector.js +14 -17
  176. package/lib/esm/components/CaseManagement/CaseManagement.d.ts.map +1 -1
  177. package/lib/esm/components/CaseManagement/CaseManagement.js +15 -12
  178. package/lib/esm/components/CaseManagement/Cep.d.ts.map +1 -1
  179. package/lib/esm/components/CaseManagement/Cep.js +56 -51
  180. package/lib/esm/components/CaseManagement/ESSRemoteSessionCheckBox.d.ts.map +1 -1
  181. package/lib/esm/components/CaseManagement/ESSRemoteSessionCheckBox.js +50 -42
  182. package/lib/esm/components/CaseManagement/NoClusterIDReasonSelector.d.ts +2 -1
  183. package/lib/esm/components/CaseManagement/NoClusterIDReasonSelector.d.ts.map +1 -1
  184. package/lib/esm/components/CaseManagement/NoClusterIDReasonSelector.js +74 -72
  185. package/lib/esm/components/CaseManagement/OpenShiftClusterId.d.ts.map +1 -1
  186. package/lib/esm/components/CaseManagement/OpenShiftClusterId.js +14 -9
  187. package/lib/esm/components/CaseManagement/OpenshiftDropdownV4.d.ts +1 -4
  188. package/lib/esm/components/CaseManagement/OpenshiftDropdownV4.d.ts.map +1 -1
  189. package/lib/esm/components/CaseManagement/OpenshiftDropdownV4.js +136 -84
  190. package/lib/esm/components/CaseManagement/RHAssociatesSelector.d.ts.map +1 -1
  191. package/lib/esm/components/CaseManagement/RHAssociatesSelector.js +12 -8
  192. package/lib/esm/components/CaseManagement/SendNotifications/AddContactToGroupModal.d.ts.map +1 -1
  193. package/lib/esm/components/CaseManagement/SendNotifications/AddContactToGroupModal.js +8 -8
  194. package/lib/esm/components/CaseManagement/SendNotifications/AddCustomEmailToAccountModal.d.ts.map +1 -1
  195. package/lib/esm/components/CaseManagement/SendNotifications/AddCustomEmailToAccountModal.js +19 -21
  196. package/lib/esm/components/CaseManagement/SendNotifications/CaseContactSelector.d.ts.map +1 -1
  197. package/lib/esm/components/CaseManagement/SendNotifications/CaseContactSelector.js +15 -10
  198. package/lib/esm/components/CaseManagement/SendNotifications/NonOrgCaseNotifyeesSelector.d.ts.map +1 -1
  199. package/lib/esm/components/CaseManagement/SendNotifications/NonOrgCaseNotifyeesSelector.js +94 -49
  200. package/lib/esm/components/ConfirmationModals/NoAttachmentSelectedModal.d.ts.map +1 -1
  201. package/lib/esm/components/ConfirmationModals/NoAttachmentSelectedModal.js +17 -34
  202. package/lib/esm/components/ConfirmationModals/PreCaseConfirmationModals.d.ts.map +1 -1
  203. package/lib/esm/components/ConfirmationModals/PreferredSecureSupportModal.d.ts.map +1 -1
  204. package/lib/esm/components/ConfirmationModals/PreferredSecureSupportModal.js +1 -1
  205. package/lib/esm/components/Cve/CveItem.d.ts.map +1 -1
  206. package/lib/esm/components/Cve/CveItem.js +14 -11
  207. package/lib/esm/components/Cve/CveModal.d.ts.map +1 -1
  208. package/lib/esm/components/Cve/CveModal.js +12 -11
  209. package/lib/esm/components/Cve/CvePanel.d.ts.map +1 -1
  210. package/lib/esm/components/Cve/CvePanel.js +18 -10
  211. package/lib/esm/components/Cve/CveSidebar.d.ts.map +1 -1
  212. package/lib/esm/components/Cve/CveSidebar.js +9 -8
  213. package/lib/esm/components/EditDescription/EditDescription.d.ts.map +1 -1
  214. package/lib/esm/components/EditDescription/EditDescription.js +4 -2
  215. package/lib/esm/components/IdeaInformation/IdeaInformation.d.ts.map +1 -1
  216. package/lib/esm/components/IdeaInformation/IdeaInformation.js +30 -24
  217. package/lib/esm/components/ImproveCase/Hostname.d.ts.map +1 -1
  218. package/lib/esm/components/ImproveCase/Hostname.js +2 -2
  219. package/lib/esm/components/ImproveCase/KtQuestions.js +6 -6
  220. package/lib/esm/components/OpenCase/CaseTypeIcons/BugIcon.d.ts.map +1 -1
  221. package/lib/esm/components/OpenCase/CaseTypeIcons/CertificationIcon.d.ts.map +1 -1
  222. package/lib/esm/components/OpenCase/CaseTypeIcons/CustomerServiceIcon.d.ts.map +1 -1
  223. package/lib/esm/components/OpenCase/CaseTypeIcons/DocumentationIcon.d.ts.map +1 -1
  224. package/lib/esm/components/OpenCase/CaseTypeIcons/GearIcon.d.ts.map +1 -1
  225. package/lib/esm/components/OpenCase/CaseTypeIcons/IdeaIcon.d.ts.map +1 -1
  226. package/lib/esm/components/OpenCase/CaseTypeIcons/RcaIcon.d.ts.map +1 -1
  227. package/lib/esm/components/OpenCase/OpenCase.d.ts.map +1 -1
  228. package/lib/esm/components/OpenCase/OpenCase.js +2 -8
  229. package/lib/esm/components/OpenCase/SupportTypeIcons/BugIcon.d.ts.map +1 -1
  230. package/lib/esm/components/OpenCase/SupportTypeIcons/CertificationIcon.d.ts.map +1 -1
  231. package/lib/esm/components/OpenCase/SupportTypeIcons/CustomerServiceIcon.d.ts.map +1 -1
  232. package/lib/esm/components/OpenCase/SupportTypeIcons/DocumentationIcon.d.ts.map +1 -1
  233. package/lib/esm/components/OpenCase/SupportTypeIcons/GearIcon.d.ts.map +1 -1
  234. package/lib/esm/components/OpenCase/SupportTypeIcons/IdeaIcon.d.ts.map +1 -1
  235. package/lib/esm/components/OpenCase/SupportTypeIcons/RcaIcon.d.ts.map +1 -1
  236. package/lib/esm/components/OpenCase/SupportTypeSelectorPage.d.ts.map +1 -1
  237. package/lib/esm/components/OpenCase/SupportTypeSelectorPage.js +10 -15
  238. package/lib/esm/components/ProductSelector/AllProductsSelector.d.ts +0 -1
  239. package/lib/esm/components/ProductSelector/AllProductsSelector.d.ts.map +1 -1
  240. package/lib/esm/components/ProductSelector/AllProductsSelector.js +20 -39
  241. package/lib/esm/components/ProductSelector/NewProductDropdownSelector.d.ts +1 -1
  242. package/lib/esm/components/ProductSelector/NewProductDropdownSelector.d.ts.map +1 -1
  243. package/lib/esm/components/ProductSelector/NewProductDropdownSelector.js +67 -59
  244. package/lib/esm/components/ProductSelector/NewProductVersionSelector.d.ts.map +1 -1
  245. package/lib/esm/components/ProductSelector/NewProductVersionSelector.js +47 -56
  246. package/lib/esm/components/ProductSelector/ProductNotEntitledWarning.d.ts +3 -0
  247. package/lib/esm/components/ProductSelector/ProductNotEntitledWarning.d.ts.map +1 -0
  248. package/lib/esm/components/ProductSelector/ProductNotEntitledWarning.js +9 -0
  249. package/lib/esm/components/ProductSelector/ProductSelector.d.ts.map +1 -1
  250. package/lib/esm/components/ProductSelector/ProductSelector.js +7 -16
  251. package/lib/esm/components/ProductSelector/ProductVersionDropdownSelector.d.ts.map +1 -1
  252. package/lib/esm/components/ProductSelector/ProductVersionDropdownSelector.js +13 -5
  253. package/lib/esm/components/Recommendations/AsideResults.d.ts.map +1 -1
  254. package/lib/esm/components/Recommendations/AsideResults.js +22 -12
  255. package/lib/esm/components/Recommendations/ClusterRecommendationItems.d.ts +2 -0
  256. package/lib/esm/components/Recommendations/ClusterRecommendationItems.d.ts.map +1 -1
  257. package/lib/esm/components/Recommendations/ClusterRecommendationItems.js +18 -13
  258. package/lib/esm/components/Recommendations/ClusterRecommendationToast.d.ts.map +1 -1
  259. package/lib/esm/components/Recommendations/ClusterRecommendationToast.js +1 -4
  260. package/lib/esm/components/Recommendations/ClusterRecommendations.d.ts.map +1 -1
  261. package/lib/esm/components/Recommendations/ClusterRecommendations.js +3 -9
  262. package/lib/esm/components/Recommendations/ClusterRecommendationsModal.d.ts.map +1 -1
  263. package/lib/esm/components/Recommendations/ClusterRecommendationsModal.js +10 -11
  264. package/lib/esm/components/Recommendations/CriticalSolutionsToast.d.ts.map +1 -1
  265. package/lib/esm/components/Recommendations/CriticalSolutionsToast.js +1 -1
  266. package/lib/esm/components/Recommendations/EARules/EARule.d.ts.map +1 -1
  267. package/lib/esm/components/Recommendations/EARules/EARule.js +9 -4
  268. package/lib/esm/components/Recommendations/EARules/EARuleInfoAccordion.d.ts.map +1 -1
  269. package/lib/esm/components/Recommendations/EARules/EARuleInfoAccordion.js +6 -4
  270. package/lib/esm/components/Recommendations/EARules/EARuleInfoInline.d.ts.map +1 -1
  271. package/lib/esm/components/Recommendations/EARules/EARuleInfoInline.js +9 -9
  272. package/lib/esm/components/Recommendations/InsightsResults.d.ts.map +1 -1
  273. package/lib/esm/components/Recommendations/InsightsResults.js +9 -5
  274. package/lib/esm/components/Recommendations/InsightsRuleInfo.d.ts.map +1 -1
  275. package/lib/esm/components/Recommendations/InsightsRuleInfo.js +25 -16
  276. package/lib/esm/components/Recommendations/RecommendationFeedbackModal.d.ts.map +1 -1
  277. package/lib/esm/components/Recommendations/RecommendationFeedbackModal.js +7 -7
  278. package/lib/esm/components/Recommendations/RecommendationInfoBox.d.ts.map +1 -1
  279. package/lib/esm/components/Recommendations/RecommendationInfoBox.js +7 -7
  280. package/lib/esm/components/Recommendations/Recommendations.d.ts.map +1 -1
  281. package/lib/esm/components/Recommendations/Recommendations.js +51 -42
  282. package/lib/esm/components/Recommendations/RecommendationsLoader.js +1 -1
  283. package/lib/esm/components/Recommendations/RulesModal.d.ts.map +1 -1
  284. package/lib/esm/components/Recommendations/RulesModal.js +10 -12
  285. package/lib/esm/components/Recommendations/WatsonxAiIcon.d.ts.map +1 -1
  286. package/lib/esm/components/Recommendations/WatsonxAiIcon.js +9 -10
  287. package/lib/esm/components/RemoteRider/RemoteRiderAcceptanceModal.d.ts.map +1 -1
  288. package/lib/esm/components/RemoteRider/RemoteRiderAcceptanceModal.js +10 -8
  289. package/lib/esm/components/RemoteRider/RemoteRiderBanner.js +1 -1
  290. package/lib/esm/components/Review/Review.d.ts.map +1 -1
  291. package/lib/esm/components/Review/Review.js +43 -28
  292. package/lib/esm/components/SessionRestore/RestoreLastSessionModal.d.ts.map +1 -1
  293. package/lib/esm/components/SessionRestore/RestoreLastSessionModal.js +7 -5
  294. package/lib/esm/components/SessionRestore/SessionRestore.d.ts +2 -0
  295. package/lib/esm/components/SessionRestore/SessionRestore.d.ts.map +1 -1
  296. package/lib/esm/components/SessionRestore/SessionRestore.js +35 -13
  297. package/lib/esm/components/SessionRestore/SessionRestoreCard.js +1 -1
  298. package/lib/esm/components/SubmitCase/SubmitCase.d.ts.map +1 -1
  299. package/lib/esm/components/SubmitCase/SubmitCase.js +34 -22
  300. package/lib/esm/components/Suggestions/EmptyTopContentSidebar.d.ts +3 -0
  301. package/lib/esm/components/Suggestions/EmptyTopContentSidebar.d.ts.map +1 -0
  302. package/lib/esm/components/Suggestions/EmptyTopContentSidebar.js +26 -0
  303. package/lib/esm/components/Suggestions/Suggestions.d.ts.map +1 -1
  304. package/lib/esm/components/Suggestions/Suggestions.js +31 -25
  305. package/lib/esm/components/Suggestions/TopContent.d.ts.map +1 -1
  306. package/lib/esm/components/Suggestions/TopContent.js +17 -17
  307. package/lib/esm/components/TroubleshootSection/AskRedHat.d.ts +9 -0
  308. package/lib/esm/components/TroubleshootSection/AskRedHat.d.ts.map +1 -0
  309. package/lib/esm/components/TroubleshootSection/AskRedHat.js +367 -0
  310. package/lib/esm/components/TroubleshootSection/CloseButton.d.ts +9 -0
  311. package/lib/esm/components/TroubleshootSection/CloseButton.d.ts.map +1 -0
  312. package/lib/esm/components/TroubleshootSection/CloseButton.js +5 -0
  313. package/lib/esm/components/TroubleshootSection/QuickResponse.d.ts +15 -0
  314. package/lib/esm/components/TroubleshootSection/QuickResponse.d.ts.map +1 -0
  315. package/lib/esm/components/TroubleshootSection/QuickResponse.js +26 -0
  316. package/lib/esm/components/TroubleshootSection/ResponseActionButton.d.ts +18 -0
  317. package/lib/esm/components/TroubleshootSection/ResponseActionButton.d.ts.map +1 -0
  318. package/lib/esm/components/TroubleshootSection/ResponseActionButton.js +28 -0
  319. package/lib/esm/components/TroubleshootSection/ResponseActions.d.ts +20 -0
  320. package/lib/esm/components/TroubleshootSection/ResponseActions.d.ts.map +1 -0
  321. package/lib/esm/components/TroubleshootSection/ResponseActions.js +54 -0
  322. package/lib/esm/components/TroubleshootSection/TroubleshootSection.d.ts +20 -0
  323. package/lib/esm/components/TroubleshootSection/TroubleshootSection.d.ts.map +1 -1
  324. package/lib/esm/components/TroubleshootSection/TroubleshootSection.js +346 -27
  325. package/lib/esm/components/TroubleshootSection/UserFeedback.d.ts +13 -0
  326. package/lib/esm/components/TroubleshootSection/UserFeedback.d.ts.map +1 -0
  327. package/lib/esm/components/TroubleshootSection/UserFeedback.js +50 -0
  328. package/lib/esm/components/TroubleshootSection/UserFeedbackComplete.d.ts +10 -0
  329. package/lib/esm/components/TroubleshootSection/UserFeedbackComplete.d.ts.map +1 -0
  330. package/lib/esm/components/TroubleshootSection/UserFeedbackComplete.js +50 -0
  331. package/lib/esm/components/TroubleshootSection/icons/CollapseIcon.d.ts +9 -0
  332. package/lib/esm/components/TroubleshootSection/icons/CollapseIcon.d.ts.map +1 -0
  333. package/lib/esm/components/TroubleshootSection/icons/CollapseIcon.js +9 -0
  334. package/lib/esm/components/TroubleshootSection/icons/StarIcon.d.ts +9 -0
  335. package/lib/esm/components/TroubleshootSection/icons/StarIcon.d.ts.map +1 -0
  336. package/lib/esm/components/TroubleshootSection/icons/StarIcon.js +17 -0
  337. package/lib/esm/components/UpdateSeverityModal/UpdateSeverityModal.d.ts.map +1 -1
  338. package/lib/esm/components/UpdateSeverityModal/UpdateSeverityModal.js +157 -105
  339. package/lib/esm/components/shared/Constants.d.ts +1 -4
  340. package/lib/esm/components/shared/Constants.d.ts.map +1 -1
  341. package/lib/esm/components/shared/Constants.js +1 -4
  342. package/lib/esm/components/shared/Rule.d.ts.map +1 -1
  343. package/lib/esm/components/shared/Rule.js +6 -6
  344. package/lib/esm/components/shared/fileUpload/FileLister.d.ts.map +1 -1
  345. package/lib/esm/components/shared/fileUpload/FileLister.js +11 -14
  346. package/lib/esm/components/shared/fileUpload/FileUpload.js +2 -3
  347. package/lib/esm/components/shared/fileUpload/FileUploader.d.ts.map +1 -1
  348. package/lib/esm/components/shared/fileUpload/FileUploader.js +3 -1
  349. package/lib/esm/components/shared/fileUpload/WidgetFileUploader.d.ts +1 -0
  350. package/lib/esm/components/shared/fileUpload/WidgetFileUploader.d.ts.map +1 -1
  351. package/lib/esm/components/shared/fileUpload/WidgetFileUploader.js +13 -10
  352. package/lib/esm/components/shared/fileUpload/common/FileUploaderInfoIcon.js +1 -1
  353. package/lib/esm/components/shared/fileUpload/css/fileSelector.css +2 -0
  354. package/lib/esm/components/shared/fileUpload/fileSelectors/FileSelectorButton.d.ts +1 -1
  355. package/lib/esm/components/shared/fileUpload/fileSelectors/FileSelectorButton.d.ts.map +1 -1
  356. package/lib/esm/components/shared/fileUpload/fileSelectors/FileSelectorButton.js +1 -1
  357. package/lib/esm/components/shared/fileUpload/fileSelectors/WidgetFileSelector.d.ts.map +1 -1
  358. package/lib/esm/components/shared/fileUpload/fileSelectors/WidgetFileSelector.js +4 -4
  359. package/lib/esm/components/shared/fileUpload/fileSelectors/WidgetFileSelectorImage.js +2 -2
  360. package/lib/esm/components/shared/fileUpload/reducer/AttachmentHelper.d.ts +22 -5
  361. package/lib/esm/components/shared/fileUpload/reducer/AttachmentHelper.d.ts.map +1 -1
  362. package/lib/esm/components/shared/fileUpload/reducer/AttachmentHelper.js +311 -60
  363. package/lib/esm/components/shared/fileUpload/reducer/AttachmentReducer.d.ts +5 -1
  364. package/lib/esm/components/shared/fileUpload/reducer/AttachmentReducer.d.ts.map +1 -1
  365. package/lib/esm/components/shared/fileUpload/reducer/AttachmentReducer.js +36 -1
  366. package/lib/esm/components/shared/fileUpload/types/index.d.ts +5 -1
  367. package/lib/esm/components/shared/fileUpload/types/index.d.ts.map +1 -1
  368. package/lib/esm/components/shared/fileUpload/useFileUploader.d.ts +2 -2
  369. package/lib/esm/components/shared/fileUpload/useFileUploader.d.ts.map +1 -1
  370. package/lib/esm/components/shared/fileUpload/useFileUploader.js +119 -47
  371. package/lib/esm/components/shared/input/ContactSelectorInternal.d.ts +16 -6
  372. package/lib/esm/components/shared/input/ContactSelectorInternal.d.ts.map +1 -1
  373. package/lib/esm/components/shared/input/ContactSelectorInternal.js +133 -23
  374. package/lib/esm/components/shared/useIsSectionValid.d.ts.map +1 -1
  375. package/lib/esm/components/shared/useIsSectionValid.js +70 -91
  376. package/lib/esm/components/shared/usePostComment.d.ts.map +1 -1
  377. package/lib/esm/components/shared/usePostComment.js +16 -28
  378. package/lib/esm/components/shared/utils.d.ts +1 -0
  379. package/lib/esm/components/shared/utils.d.ts.map +1 -1
  380. package/lib/esm/components/shared/utils.js +9 -3
  381. package/lib/esm/components/wizardLayout/GlobalTroubleshootEffects.d.ts.map +1 -1
  382. package/lib/esm/components/wizardLayout/GlobalTroubleshootEffects.js +187 -37
  383. package/lib/esm/components/wizardLayout/MainSection.d.ts.map +1 -1
  384. package/lib/esm/components/wizardLayout/MainSection.js +5 -4
  385. package/lib/esm/components/wizardLayout/NewFeatureModal.d.ts.map +1 -1
  386. package/lib/esm/components/wizardLayout/NewFeatureModal.js +6 -6
  387. package/lib/esm/components/wizardLayout/WizardAside.d.ts.map +1 -1
  388. package/lib/esm/components/wizardLayout/WizardAside.js +35 -15
  389. package/lib/esm/components/wizardLayout/WizardLayout.d.ts.map +1 -1
  390. package/lib/esm/components/wizardLayout/WizardLayout.js +17 -46
  391. package/lib/esm/components/wizardLayout/WizardMain.d.ts +10 -1
  392. package/lib/esm/components/wizardLayout/WizardMain.d.ts.map +1 -1
  393. package/lib/esm/components/wizardLayout/WizardMain.js +361 -22
  394. package/lib/esm/components/wizardLayout/WizardNavigation.d.ts +8 -2
  395. package/lib/esm/components/wizardLayout/WizardNavigation.d.ts.map +1 -1
  396. package/lib/esm/components/wizardLayout/WizardNavigation.js +118 -75
  397. package/lib/esm/components/wizardLayout/index.d.ts +1 -0
  398. package/lib/esm/components/wizardLayout/index.d.ts.map +1 -1
  399. package/lib/esm/components/wizardLayout/index.js +1 -0
  400. package/lib/esm/constants/askRedHatMessages.d.ts +35 -0
  401. package/lib/esm/constants/askRedHatMessages.d.ts.map +1 -0
  402. package/lib/esm/constants/askRedHatMessages.js +61 -0
  403. package/lib/esm/constants/caseDetailsConstants.d.ts +15 -11
  404. package/lib/esm/constants/caseDetailsConstants.d.ts.map +1 -1
  405. package/lib/esm/constants/caseDetailsConstants.js +32 -12
  406. package/lib/esm/context/AIResponseContext.d.ts +10 -0
  407. package/lib/esm/context/AIResponseContext.d.ts.map +1 -0
  408. package/lib/esm/context/AIResponseContext.js +26 -0
  409. package/lib/esm/context/CaseContext.d.ts.map +1 -1
  410. package/lib/esm/context/RootTroubleshootProvider.d.ts.map +1 -1
  411. package/lib/esm/context/RootTroubleshootProvider.js +8 -6
  412. package/lib/esm/css/AskRedHat.css +495 -0
  413. package/lib/esm/css/app.css +54 -17
  414. package/lib/esm/css/case.css +499 -37
  415. package/lib/esm/css/productSelector.css +5 -1
  416. package/lib/esm/css/results.css +2 -2
  417. package/lib/esm/graphql/index.d.ts +4 -0
  418. package/lib/esm/graphql/index.d.ts.map +1 -0
  419. package/lib/esm/graphql/index.js +3 -0
  420. package/lib/esm/graphql/mutations/createRMECaseEscalation.d.ts +2 -0
  421. package/lib/esm/graphql/mutations/createRMECaseEscalation.d.ts.map +1 -0
  422. package/lib/esm/graphql/mutations/createRMECaseEscalation.js +24 -0
  423. package/lib/esm/graphql/mutations/index.d.ts +2 -0
  424. package/lib/esm/graphql/mutations/index.d.ts.map +1 -0
  425. package/lib/esm/graphql/mutations/index.js +1 -0
  426. package/lib/esm/graphql/queries/getEscalationDetails.d.ts +2 -0
  427. package/lib/esm/graphql/queries/getEscalationDetails.d.ts.map +1 -0
  428. package/lib/esm/graphql/queries/getEscalationDetails.js +36 -0
  429. package/lib/esm/graphql/queries/index.d.ts +2 -0
  430. package/lib/esm/graphql/queries/index.d.ts.map +1 -0
  431. package/lib/esm/graphql/queries/index.js +1 -0
  432. package/lib/esm/graphql/schemas/escalation.d.ts +66 -0
  433. package/lib/esm/graphql/schemas/escalation.d.ts.map +1 -0
  434. package/lib/esm/graphql/schemas/escalation.js +1 -0
  435. package/lib/esm/graphql/schemas/index.d.ts +2 -0
  436. package/lib/esm/graphql/schemas/index.d.ts.map +1 -0
  437. package/lib/esm/graphql/schemas/index.js +1 -0
  438. package/lib/esm/hooks/useAB.d.ts +23 -0
  439. package/lib/esm/hooks/useAB.d.ts.map +1 -0
  440. package/lib/esm/hooks/useAB.js +75 -0
  441. package/lib/esm/hooks/useARHResponse.d.ts +15 -0
  442. package/lib/esm/hooks/useARHResponse.d.ts.map +1 -0
  443. package/lib/esm/hooks/useARHResponse.js +103 -0
  444. package/lib/esm/hooks/useCaseComments/caseCommentsQuery.d.ts +4 -0
  445. package/lib/esm/hooks/useCaseComments/caseCommentsQuery.d.ts.map +1 -0
  446. package/lib/esm/hooks/useCaseComments/caseCommentsQuery.js +57 -0
  447. package/lib/esm/hooks/useCaseComments/index.d.ts +8 -0
  448. package/lib/esm/hooks/useCaseComments/index.d.ts.map +1 -0
  449. package/lib/esm/hooks/useCaseComments/index.js +5 -0
  450. package/lib/esm/hooks/useCaseComments/mapCaseComment.d.ts +25 -0
  451. package/lib/esm/hooks/useCaseComments/mapCaseComment.d.ts.map +1 -0
  452. package/lib/esm/hooks/useCaseComments/mapCaseComment.js +75 -0
  453. package/lib/esm/hooks/useCaseComments/types.d.ts +93 -0
  454. package/lib/esm/hooks/useCaseComments/types.d.ts.map +1 -0
  455. package/lib/esm/hooks/useCaseComments/types.js +1 -0
  456. package/lib/esm/hooks/useCaseComments/useCaseComments.d.ts +26 -0
  457. package/lib/esm/hooks/useCaseComments/useCaseComments.d.ts.map +1 -0
  458. package/lib/esm/hooks/useCaseComments/useCaseComments.js +116 -0
  459. package/lib/esm/hooks/useCaseComments/useCreateCaseComment.d.ts +19 -0
  460. package/lib/esm/hooks/useCaseComments/useCreateCaseComment.d.ts.map +1 -0
  461. package/lib/esm/hooks/useCaseComments/useCreateCaseComment.js +33 -0
  462. package/lib/esm/hooks/useCaseGroupUiState.d.ts +3 -0
  463. package/lib/esm/hooks/useCaseGroupUiState.d.ts.map +1 -0
  464. package/lib/esm/hooks/useCaseGroupUiState.js +10 -0
  465. package/lib/esm/hooks/useCaseHistory.d.ts +26 -0
  466. package/lib/esm/hooks/useCaseHistory.d.ts.map +1 -0
  467. package/lib/esm/hooks/useCaseHistory.js +107 -0
  468. package/lib/esm/hooks/useCaseLabelLinkMutations.d.ts +23 -0
  469. package/lib/esm/hooks/useCaseLabelLinkMutations.d.ts.map +1 -0
  470. package/lib/esm/hooks/useCaseLabelLinkMutations.js +84 -0
  471. package/lib/esm/hooks/useCaseUpdateErrorMessage.d.ts +9 -1
  472. package/lib/esm/hooks/useCaseUpdateErrorMessage.d.ts.map +1 -1
  473. package/lib/esm/hooks/useCaseUpdateErrorMessage.js +108 -11
  474. package/lib/esm/hooks/useResetCaseCreate.d.ts.map +1 -1
  475. package/lib/esm/hooks/useResetCaseCreate.js +18 -11
  476. package/lib/esm/hooks/useS3Upload.d.ts +5 -4
  477. package/lib/esm/hooks/useS3Upload.d.ts.map +1 -1
  478. package/lib/esm/hooks/useS3Upload.js +28 -30
  479. package/lib/esm/hooks/useWizard.d.ts +14 -0
  480. package/lib/esm/hooks/useWizard.d.ts.map +1 -1
  481. package/lib/esm/hooks/useWizard.js +33 -11
  482. package/lib/esm/i18n/template-de.d.ts +82 -4
  483. package/lib/esm/i18n/template-de.d.ts.map +1 -1
  484. package/lib/esm/i18n/template-de.js +82 -4
  485. package/lib/esm/i18n/template-es.d.ts +81 -3
  486. package/lib/esm/i18n/template-es.d.ts.map +1 -1
  487. package/lib/esm/i18n/template-es.js +81 -3
  488. package/lib/esm/i18n/template-fr.d.ts +81 -3
  489. package/lib/esm/i18n/template-fr.d.ts.map +1 -1
  490. package/lib/esm/i18n/template-fr.js +81 -3
  491. package/lib/esm/i18n/template-it.d.ts +81 -3
  492. package/lib/esm/i18n/template-it.d.ts.map +1 -1
  493. package/lib/esm/i18n/template-it.js +81 -3
  494. package/lib/esm/i18n/template-jp.d.ts +81 -3
  495. package/lib/esm/i18n/template-jp.d.ts.map +1 -1
  496. package/lib/esm/i18n/template-jp.js +81 -3
  497. package/lib/esm/i18n/template-ko.d.ts +81 -3
  498. package/lib/esm/i18n/template-ko.d.ts.map +1 -1
  499. package/lib/esm/i18n/template-ko.js +81 -3
  500. package/lib/esm/i18n/template-pt.d.ts +81 -3
  501. package/lib/esm/i18n/template-pt.d.ts.map +1 -1
  502. package/lib/esm/i18n/template-pt.js +81 -3
  503. package/lib/esm/i18n/template-ru.d.ts +47 -3
  504. package/lib/esm/i18n/template-ru.d.ts.map +1 -1
  505. package/lib/esm/i18n/template-ru.js +47 -3
  506. package/lib/esm/i18n/template-zh.d.ts +59 -3
  507. package/lib/esm/i18n/template-zh.d.ts.map +1 -1
  508. package/lib/esm/i18n/template-zh.js +59 -3
  509. package/lib/esm/index.d.ts.map +1 -1
  510. package/lib/esm/index.js +2 -0
  511. package/lib/esm/models/cache.d.ts +0 -2
  512. package/lib/esm/models/cache.d.ts.map +1 -1
  513. package/lib/esm/models/caseHistory.d.ts +86 -0
  514. package/lib/esm/models/caseHistory.d.ts.map +1 -0
  515. package/lib/esm/models/caseHistory.js +1 -0
  516. package/lib/esm/reducers/AIResponseConstNTypes.d.ts +90 -0
  517. package/lib/esm/reducers/AIResponseConstNTypes.d.ts.map +1 -0
  518. package/lib/esm/reducers/AIResponseConstNTypes.js +33 -0
  519. package/lib/esm/reducers/AIResponseReducer.d.ts +14 -0
  520. package/lib/esm/reducers/AIResponseReducer.d.ts.map +1 -0
  521. package/lib/esm/reducers/AIResponseReducer.js +80 -0
  522. package/lib/esm/reducers/CaseConstNTypes.d.ts +129 -9
  523. package/lib/esm/reducers/CaseConstNTypes.d.ts.map +1 -1
  524. package/lib/esm/reducers/CaseConstNTypes.js +39 -10
  525. package/lib/esm/reducers/CaseDetailsPageReducer.d.ts +7 -5
  526. package/lib/esm/reducers/CaseDetailsPageReducer.d.ts.map +1 -1
  527. package/lib/esm/reducers/CaseDetailsPageReducer.js +61 -26
  528. package/lib/esm/reducers/CaseDiscussionTabReducer.d.ts +11 -10
  529. package/lib/esm/reducers/CaseDiscussionTabReducer.d.ts.map +1 -1
  530. package/lib/esm/reducers/CaseDiscussionTabReducer.js +95 -64
  531. package/lib/esm/reducers/CaseHelpers.d.ts +26 -7
  532. package/lib/esm/reducers/CaseHelpers.d.ts.map +1 -1
  533. package/lib/esm/reducers/CaseHelpers.js +150 -27
  534. package/lib/esm/reducers/CaseOverviewReducer.d.ts +3 -1
  535. package/lib/esm/reducers/CaseOverviewReducer.d.ts.map +1 -1
  536. package/lib/esm/reducers/CaseOverviewReducer.js +7 -5
  537. package/lib/esm/reducers/CaseReducer.d.ts +59 -12
  538. package/lib/esm/reducers/CaseReducer.d.ts.map +1 -1
  539. package/lib/esm/reducers/CaseReducer.js +311 -95
  540. package/lib/esm/reducers/ClusterRecommendationsReducer.d.ts.map +1 -1
  541. package/lib/esm/reducers/RecommendationsReducer.d.ts.map +1 -1
  542. package/lib/esm/reducers/RecommendationsReducer.js +16 -19
  543. package/lib/esm/reducers/RouteConstNTypes.d.ts +1 -2
  544. package/lib/esm/reducers/RouteConstNTypes.d.ts.map +1 -1
  545. package/lib/esm/reducers/RouteConstNTypes.js +4 -1
  546. package/lib/esm/reducers/RouteReducer.d.ts +2 -2
  547. package/lib/esm/reducers/RouteReducer.d.ts.map +1 -1
  548. package/lib/esm/reducers/RouteReducer.js +1 -1
  549. package/lib/esm/reducers/RulesReducer.d.ts +11 -4
  550. package/lib/esm/reducers/RulesReducer.d.ts.map +1 -1
  551. package/lib/esm/reducers/RulesReducer.js +6 -1
  552. package/lib/esm/reducers/SessionRestoreReducer.d.ts +4 -3
  553. package/lib/esm/reducers/SessionRestoreReducer.d.ts.map +1 -1
  554. package/lib/esm/reducers/SessionRestoreReducer.js +51 -17
  555. package/lib/esm/reducers/TopContentReducer.d.ts.map +1 -1
  556. package/lib/esm/reducers/TopContentReducer.js +1 -1
  557. package/lib/esm/scss/_main.scss +295 -117
  558. package/lib/esm/scss/_pf-overrides.scss +269 -162
  559. package/lib/esm/utils/TimelineUtils.d.ts +41 -0
  560. package/lib/esm/utils/TimelineUtils.d.ts.map +1 -0
  561. package/lib/esm/utils/TimelineUtils.js +135 -0
  562. package/lib/esm/utils/caseDetailsCacheUtils.d.ts.map +1 -1
  563. package/lib/esm/utils/caseDetailsCacheUtils.js +1 -0
  564. package/lib/esm/utils/caseHistoryUtils.d.ts +85 -0
  565. package/lib/esm/utils/caseHistoryUtils.d.ts.map +1 -0
  566. package/lib/esm/utils/caseHistoryUtils.js +200 -0
  567. package/lib/esm/utils/caseOpenshiftClusterIdUtils.d.ts +1 -2
  568. package/lib/esm/utils/caseOpenshiftClusterIdUtils.d.ts.map +1 -1
  569. package/lib/esm/utils/caseOpenshiftClusterIdUtils.js +4 -4
  570. package/lib/esm/utils/caseSeverityFtsGraphQLUtils.d.ts +6 -0
  571. package/lib/esm/utils/caseSeverityFtsGraphQLUtils.d.ts.map +1 -0
  572. package/lib/esm/utils/caseSeverityFtsGraphQLUtils.js +26 -0
  573. package/lib/esm/utils/caseUtils.d.ts.map +1 -1
  574. package/lib/esm/utils/engagementUtils.d.ts +3 -0
  575. package/lib/esm/utils/engagementUtils.d.ts.map +1 -0
  576. package/lib/esm/utils/engagementUtils.js +16 -0
  577. package/lib/esm/utils/linkifyHtmlTextNodes.d.ts +8 -0
  578. package/lib/esm/utils/linkifyHtmlTextNodes.d.ts.map +1 -0
  579. package/lib/esm/utils/linkifyHtmlTextNodes.js +37 -0
  580. package/lib/esm/utils/remoteRiderUtils.d.ts.map +1 -1
  581. package/lib/esm/utils/visitedResourcesUtils.d.ts +31 -0
  582. package/lib/esm/utils/visitedResourcesUtils.d.ts.map +1 -0
  583. package/lib/esm/utils/visitedResourcesUtils.js +99 -0
  584. package/package.json +21 -26
  585. package/lib/esm/components/CaseEditView/Tabs/CaseHistory/CaseHistory.css +0 -0
@@ -1,10 +1,14 @@
1
1
  export interface IFileUploaderCommonProps {
2
- isSecureSupport: boolean;
2
+ isSecureSupport?: boolean;
3
3
  idToUploadTo: string;
4
+ /** Salesforce case Id from caseDetails.state — avoids an extra GetCaseByCaseNumber on upload. */
5
+ caseSalesforceId?: string;
4
6
  needsAnalyzing?: boolean;
5
7
  isSessionId: boolean;
6
8
  autoUploadOnSelect?: boolean;
7
9
  isPrivate?: boolean;
8
10
  onUploadClick?: () => void;
11
+ /** Fired after each successful case attachment upload so discussion can refresh immediately. */
12
+ onCaseFileUploaded?: () => void;
9
13
  }
10
14
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/components/shared/fileUpload/types/index.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,wBAAwB;IACrC,eAAe,EAAE,OAAO,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,WAAW,EAAE,OAAO,CAAC;IACrB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;CAC9B"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/components/shared/fileUpload/types/index.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,wBAAwB;IACrC,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,iGAAiG;IACjG,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,WAAW,EAAE,OAAO,CAAC;IACrB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC3B,gGAAgG;IAChG,kBAAkB,CAAC,EAAE,MAAM,IAAI,CAAC;CACnC"}
@@ -2,11 +2,11 @@ import React from 'react';
2
2
  import { IFileLocal } from './reducer/AttachmentReducer';
3
3
  import { IFileUploaderCommonProps } from './types';
4
4
  export declare function useFileUploader(props: IFileUploaderCommonProps): {
5
- retryUpload: (indexToRetry: number) => void;
5
+ retryUpload: (indexToRetry: number) => Promise<void>;
6
6
  editFile: (editedLocalFile: IFileLocal, fileIndexToEdit: number, changes: IFileLocal) => Promise<void>;
7
7
  removeFile: (fileIndexToRemove: number, file: IFileLocal) => Promise<void>;
8
8
  uploadAll: (event?: React.MouseEvent<HTMLButtonElement, MouseEvent>) => Promise<void>;
9
- uploadFile: (fileIndex: number) => void;
9
+ uploadFile: (fileIndex: number) => Promise<void>;
10
10
  retryAnalysis: (indexToRetry: number) => void;
11
11
  };
12
12
  //# sourceMappingURL=useFileUploader.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useFileUploader.d.ts","sourceRoot":"","sources":["../../../../../src/components/shared/fileUpload/useFileUploader.tsx"],"names":[],"mappings":"AAMA,OAAO,KAA8D,MAAM,OAAO,CAAC;AAenF,OAAO,EAAE,UAAU,EAAmD,MAAM,6BAA6B,CAAC;AAE1G,OAAO,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAC;AAEnD,wBAAgB,eAAe,CAAC,KAAK,EAAE,wBAAwB;gCA8DvB,MAAM;gCAYM,UAAU,mBAAmB,MAAM,WAAW,UAAU;oCAOpD,MAAM,QAAQ,UAAU;wBAczC,KAAK,CAAC,UAAU,CAAC,iBAAiB,EAAE,UAAU,CAAC;4BA4BjD,MAAM;kCAxDA,MAAM;EA8EhD"}
1
+ {"version":3,"file":"useFileUploader.d.ts","sourceRoot":"","sources":["../../../../../src/components/shared/fileUpload/useFileUploader.tsx"],"names":[],"mappings":"AAaA,OAAO,KAA8D,MAAM,OAAO,CAAC;AAgBnF,OAAO,EACH,UAAU,EAKb,MAAM,6BAA6B,CAAC;AAErC,OAAO,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAC;AAKnD,wBAAgB,eAAe,CAAC,KAAK,EAAE,wBAAwB;gCA8JjB,MAAM;gCAYA,UAAU,mBAAmB,MAAM,WAAW,UAAU;oCAOpD,MAAM,QAAQ,UAAU;wBAxGzD,KAAK,CAAC,UAAU,CAAC,iBAAiB,EAAE,UAAU,CAAC;4BAwJ3B,MAAM;kCA9DN,MAAM;EAwFhD"}
@@ -7,37 +7,111 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
7
7
  step((generator = generator.apply(thisArg, _arguments || [])).next());
8
8
  });
9
9
  };
10
- import { caseAttachments, sessionAttachments } from '@cee-eng/hydrajs';
10
+ import { useApolloClient } from '@apollo/client/react';
11
+ import { sessionAttachments } from '@cee-eng/hydrajs';
11
12
  import { useFetch, usePrevious } from '@rh-support/components';
12
13
  import { GlobalMetadataStateContext } from '@rh-support/react-context';
13
- import { getConfigField, getUserAgentForCaseMode, PCM_CONFIG_FIELD_TYPE } from '@rh-support/utils';
14
+ import { deleteCaseAttachment, fetchCaseDetailsByCaseNumber, getConfigField, getUserAgentForCaseMode, PCM_CONFIG_FIELD_TYPE, } from '@rh-support/utils';
14
15
  import debounce from 'lodash/debounce';
15
16
  import { useCallback, useContext, useEffect, useMemo, useRef } from 'react';
16
17
  import { SessionRestoreDispatchContext, SessionRestoreStateContext } from '../../../context/SessionRestoreContext';
17
18
  import { SESSION_REFERRER_URL_LIMIT } from '../../../reducers/CaseConstNTypes';
18
19
  import { getSessionDetailsFromCase } from '../../../reducers/CaseHelpers';
19
20
  import { createSession } from '../../../reducers/SessionRestoreReducer';
20
- import { doSosReportAnalysisForFile, isAnalysingAnyAttachment, isUploadedSuccessfully, isUploadingAttachment, updateUploadMetadata, uploadAllFiles, uploadFile, } from './reducer/AttachmentHelper';
21
- import { onFileEdit, onFileRemove, UploadStatusConstants } from './reducer/AttachmentReducer';
21
+ import { doSosReportAnalysisForFile, hasSomeSelectedFiles, isAnalysingAnyAttachment, isUploadedSuccessfully, isUploadingAttachment, updateUploadMetadata, uploadAllFiles, uploadFile, } from './reducer/AttachmentHelper';
22
+ import { onFileEdit, onFileRemove, resetAttachment, UploadStatusConstants, } from './reducer/AttachmentReducer';
22
23
  import { AttachmentDispatchContext, AttachmentStateContext } from './reducer/AttachmentReducerContext';
24
+ /** Wait for staggered onDrop dispatches before auto-uploading. */
25
+ const AUTO_UPLOAD_ON_SELECT_DEBOUNCE_MS = 300;
23
26
  export function useFileUploader(props) {
27
+ var _a;
24
28
  const { attachmentState, attachmentState: { caseFiles }, } = useContext(AttachmentStateContext);
25
29
  const dispatch = useContext(AttachmentDispatchContext);
30
+ const apolloClient = useApolloClient();
31
+ const caseSalesforceIdRef = useRef();
26
32
  const { request: deleteSessionAttachment } = useFetch(sessionAttachments.deleteSesionAttachment);
27
- const { request: deleteCaseAttachment } = useFetch(caseAttachments.deleteAttachment);
28
- const { idToUploadTo, needsAnalyzing, isSecureSupport, isSessionId, autoUploadOnSelect, onUploadClick } = props;
29
- const { globalMetadataState: { pcmConfig, referrerUrl, loggedInUserRights }, } = useContext(GlobalMetadataStateContext);
33
+ const { request: deleteCaseAttachmentRequest } = useFetch(deleteCaseAttachment);
34
+ const { idToUploadTo, caseSalesforceId, needsAnalyzing, isSessionId, autoUploadOnSelect, onUploadClick, onCaseFileUploaded, } = props;
35
+ useEffect(() => {
36
+ if (caseSalesforceId) {
37
+ caseSalesforceIdRef.current = caseSalesforceId;
38
+ }
39
+ }, [caseSalesforceId]);
40
+ const { globalMetadataState: { pcmConfig, referrerUrl, loggedInUserRights, loggedInUsersAccount }, } = useContext(GlobalMetadataStateContext);
30
41
  const { sessionRestore } = useContext(SessionRestoreStateContext);
31
42
  const sessionRestoreDispatch = useContext(SessionRestoreDispatchContext);
32
43
  const checkForS3SlowUploads = getConfigField(pcmConfig.data, 'checkForS3SlowUploads', PCM_CONFIG_FIELD_TYPE.FEATURE_FLAG);
33
44
  const useBrowserAPIForDetection = getConfigField(pcmConfig.data, 'useBrowserAPIForSpeedDetection', PCM_CONFIG_FIELD_TYPE.FEATURE_FLAG);
34
- const slowUploadConfig = {
45
+ const slowUploadConfig = useMemo(() => ({
35
46
  checkForS3SlowUploads,
36
47
  useBrowserAPIForDetection,
37
- };
48
+ }), [checkForS3SlowUploads, useBrowserAPIForDetection]);
38
49
  const isInitialMountRef = useRef(true);
50
+ const caseFilesRef = useRef(caseFiles);
51
+ caseFilesRef.current = caseFiles;
39
52
  const selectedLocalFiles = attachmentState.caseFiles.selectedLocalFiles;
40
53
  const prevSelectedFiles = usePrevious(selectedLocalFiles);
54
+ const resolveCaseSalesforceId = useCallback(() => __awaiter(this, void 0, void 0, function* () {
55
+ var _a;
56
+ if (caseSalesforceIdRef.current || isSessionId || !idToUploadTo || !apolloClient) {
57
+ return;
58
+ }
59
+ try {
60
+ const caseDetails = yield fetchCaseDetailsByCaseNumber(apolloClient, idToUploadTo, Boolean((_a = loggedInUsersAccount === null || loggedInUsersAccount === void 0 ? void 0 : loggedInUsersAccount.data) === null || _a === void 0 ? void 0 : _a.secureSupport));
61
+ caseSalesforceIdRef.current = caseDetails === null || caseDetails === void 0 ? void 0 : caseDetails.id;
62
+ }
63
+ catch (_b) {
64
+ caseSalesforceIdRef.current = undefined;
65
+ }
66
+ }), [apolloClient, idToUploadTo, isSessionId, (_a = loggedInUsersAccount === null || loggedInUsersAccount === void 0 ? void 0 : loggedInUsersAccount.data) === null || _a === void 0 ? void 0 : _a.secureSupport]);
67
+ const onUploadAll = useCallback((event) => __awaiter(this, void 0, void 0, function* () {
68
+ onUploadClick && onUploadClick();
69
+ yield resolveCaseSalesforceId();
70
+ // on truobleshoot flow, user can upload a file while no data has added therefore no sessionId is available
71
+ let sessionId = '';
72
+ if (!idToUploadTo) {
73
+ const userAgent = getUserAgentForCaseMode(true);
74
+ const session = {
75
+ userAgent,
76
+ originatingSystem: userAgent,
77
+ referrerUrl: referrerUrl.substring(0, SESSION_REFERRER_URL_LIMIT),
78
+ isInternal: loggedInUserRights.data.isInternal(),
79
+ };
80
+ if (!sessionRestore.sessionCreationStatus.isCreating && !sessionRestore.sessionCreationStatus.isError) {
81
+ sessionId = yield createSession(sessionRestoreDispatch, getSessionDetailsFromCase({}, []), session);
82
+ }
83
+ }
84
+ uploadAllFiles({
85
+ dispatch,
86
+ idToUploadTo: idToUploadTo || sessionId,
87
+ caseFiles: caseFilesRef.current,
88
+ needsAnalyzing,
89
+ isSessionId,
90
+ slowUploadConfig,
91
+ apolloClient: !isSessionId ? apolloClient : undefined,
92
+ caseSalesforceId: !isSessionId ? caseSalesforceIdRef.current : undefined,
93
+ onCaseFileUploaded: !isSessionId ? onCaseFileUploaded : undefined,
94
+ });
95
+ }), [
96
+ apolloClient,
97
+ dispatch,
98
+ idToUploadTo,
99
+ isSessionId,
100
+ loggedInUserRights.data,
101
+ needsAnalyzing,
102
+ onCaseFileUploaded,
103
+ onUploadClick,
104
+ referrerUrl,
105
+ resolveCaseSalesforceId,
106
+ sessionRestore.sessionCreationStatus.isCreating,
107
+ sessionRestore.sessionCreationStatus.isError,
108
+ sessionRestoreDispatch,
109
+ slowUploadConfig,
110
+ ]);
111
+ const onUploadAllRef = useRef(onUploadAll);
112
+ onUploadAllRef.current = onUploadAll;
113
+ const debouncedAutoUploadOnSelect = useMemo(() => debounce(() => void onUploadAllRef.current(), AUTO_UPLOAD_ON_SELECT_DEBOUNCE_MS), []);
114
+ useEffect(() => () => debouncedAutoUploadOnSelect.cancel(), [debouncedAutoUploadOnSelect]);
41
115
  useEffect(() => {
42
116
  if (isInitialMountRef.current) {
43
117
  isInitialMountRef.current = false;
@@ -47,19 +121,18 @@ export function useFileUploader(props) {
47
121
  prevSelectedFiles &&
48
122
  selectedLocalFiles &&
49
123
  selectedLocalFiles.length > prevSelectedFiles.length) {
50
- onUploadAll();
124
+ debouncedAutoUploadOnSelect();
51
125
  }
52
- // eslint-disable-next-line react-hooks/exhaustive-deps
53
- }, [selectedLocalFiles]);
126
+ }, [autoUploadOnSelect, debouncedAutoUploadOnSelect, prevSelectedFiles, selectedLocalFiles]);
54
127
  const updateSessionAttachmentMetadata = useCallback((file, changes) => __awaiter(this, void 0, void 0, function* () {
55
128
  sessionAttachments.updateSessionAttachmentMetadata(idToUploadTo, [Object.assign({ id: file.attachmentId }, changes)]);
56
129
  }), [idToUploadTo]);
57
130
  const debounceSessionMetadataUpdate = useMemo(() => debounce(updateSessionAttachmentMetadata, 800), [updateSessionAttachmentMetadata]);
58
- const onRetryLocal = (indexToRetry) => {
131
+ const onRetryLocal = (indexToRetry) => __awaiter(this, void 0, void 0, function* () {
59
132
  if (idToUploadTo && attachmentState.caseFiles.selectedLocalFiles[indexToRetry]) {
60
- onUploadFile(indexToRetry);
133
+ yield onUploadFile(indexToRetry);
61
134
  }
62
- };
135
+ });
63
136
  const onRetryAnalysis = (indexToRetry) => {
64
137
  const file = attachmentState.caseFiles.selectedLocalFiles[indexToRetry];
65
138
  if (idToUploadTo && file && file.attachmentId) {
@@ -75,59 +148,58 @@ export function useFileUploader(props) {
75
148
  debounceSessionMetadataUpdate(editedLocalFile, changes);
76
149
  });
77
150
  const onFileRemoveLocal = (fileIndexToRemove, file) => __awaiter(this, void 0, void 0, function* () {
151
+ var _a, _b, _c;
152
+ // Stop in-flight S3 transfer if Remove is used while upload/verify is still active
153
+ (_b = (_a = file.uploadProgress).onAbort) === null || _b === void 0 ? void 0 : _b.call(_a, fileIndexToRemove);
154
+ const attachmentIdToDelete = file.attachmentId || ((_c = file.uploadProgress.multipartResumeState) === null || _c === void 0 ? void 0 : _c.attachmentId);
78
155
  const selectedLocalFiles = attachmentState.caseFiles.selectedLocalFiles;
79
- if (!isUploadingAttachment(selectedLocalFiles) && !isAnalysingAnyAttachment(selectedLocalFiles)) {
156
+ const isBusy = isUploadingAttachment(selectedLocalFiles) || isAnalysingAnyAttachment(selectedLocalFiles);
157
+ let nextLocalFiles;
158
+ if (!isBusy) {
80
159
  onFileRemove(dispatch, fileIndexToRemove);
160
+ nextLocalFiles = selectedLocalFiles.filter((_, index) => index !== fileIndexToRemove);
81
161
  }
82
162
  else {
83
163
  updateUploadMetadata(dispatch, fileIndexToRemove, {
84
164
  uploadStatus: UploadStatusConstants.deleted,
165
+ onAbort: undefined,
85
166
  });
167
+ nextLocalFiles = selectedLocalFiles.map((localFile, index) => index === fileIndexToRemove
168
+ ? Object.assign(Object.assign({}, localFile), { uploadProgress: Object.assign(Object.assign({}, localFile.uploadProgress), { uploadStatus: UploadStatusConstants.deleted, onAbort: undefined }) }) : localFile);
86
169
  }
87
- isUploadedSuccessfully(file) && isSessionId && deleteSessionAttachment(idToUploadTo, file.attachmentId);
88
- isUploadedSuccessfully(file) &&
89
- !isSessionId &&
90
- deleteCaseAttachment(idToUploadTo, file.attachmentId, isSecureSupport);
91
- });
92
- const onUploadAll = (event) => __awaiter(this, void 0, void 0, function* () {
93
- onUploadClick && onUploadClick();
94
- // on truobleshoot flow, user can upload a file while no data has added therefore no sessionId is available
95
- let sessionId = '';
96
- if (!idToUploadTo) {
97
- const userAgent = getUserAgentForCaseMode(true);
98
- let session = {
99
- userAgent,
100
- originatingSystem: userAgent,
101
- referrerUrl: referrerUrl.substring(0, SESSION_REFERRER_URL_LIMIT),
102
- isInternal: loggedInUserRights.data.isInternal(),
103
- };
104
- if (!sessionRestore.sessionCreationStatus.isCreating && !sessionRestore.sessionCreationStatus.isError) {
105
- sessionId = yield createSession(sessionRestoreDispatch, getSessionDetailsFromCase({}, []), session);
170
+ // Drop soft-deleted stubs so "Uploading attachment(s)" / Upload new file do not linger
171
+ if (!hasSomeSelectedFiles(nextLocalFiles)) {
172
+ resetAttachment(dispatch);
173
+ }
174
+ if (attachmentIdToDelete && isSessionId && isUploadedSuccessfully(file)) {
175
+ deleteSessionAttachment(idToUploadTo, attachmentIdToDelete);
176
+ }
177
+ // Abort/fail after Hydra init still has an attachmentId clean up SFDC "In Progress" on Remove only
178
+ if (attachmentIdToDelete && !isSessionId) {
179
+ try {
180
+ yield deleteCaseAttachmentRequest(idToUploadTo, attachmentIdToDelete);
181
+ }
182
+ catch (_d) {
183
+ // Best-effort: row is already removed from the PCM queue
106
184
  }
107
185
  }
108
- uploadAllFiles({
109
- dispatch,
110
- idToUploadTo: idToUploadTo || sessionId,
111
- caseFiles,
112
- isSecureSupport,
113
- needsAnalyzing,
114
- isSessionId,
115
- slowUploadConfig,
116
- });
117
186
  });
118
- const onUploadFile = (fileIndex) => {
187
+ const onUploadFile = (fileIndex) => __awaiter(this, void 0, void 0, function* () {
188
+ yield resolveCaseSalesforceId();
119
189
  uploadFile({
120
190
  dispatch,
121
191
  idToUploadTo,
122
192
  localFile: attachmentState.caseFiles.selectedLocalFiles[fileIndex],
123
193
  originalFile: attachmentState.caseFiles.selectedOriginalFiles[fileIndex],
124
194
  index: fileIndex,
125
- isSecureSupport,
126
195
  needsAnalyzing,
127
196
  isSessionId,
128
197
  slowUploadConfig,
198
+ apolloClient: !isSessionId ? apolloClient : undefined,
199
+ caseSalesforceId: !isSessionId ? caseSalesforceIdRef.current : undefined,
200
+ onCaseFileUploaded: !isSessionId ? onCaseFileUploaded : undefined,
129
201
  });
130
- };
202
+ });
131
203
  return {
132
204
  retryUpload: onRetryLocal,
133
205
  editFile: onFileEditLocal,
@@ -1,7 +1,6 @@
1
1
  import { IContact } from '@cee-eng/hydrajs/@types/models/contact';
2
2
  import { IContactListParams } from '@cee-eng/hydrajs/@types/models/contacts/contact';
3
3
  import React from 'react';
4
- import { TypeaheadBsSizes } from 'react-bootstrap-typeahead';
5
4
  export interface IProps {
6
5
  onSelect: (contacts: IContact[]) => any;
7
6
  placeholder?: string;
@@ -9,9 +8,10 @@ export interface IProps {
9
8
  disabled?: boolean;
10
9
  selectedContacts?: IContact[];
11
10
  contactsToExclude?: IContact[];
11
+ disableContactRemoval?: IContact[];
12
12
  className?: string;
13
13
  id: string;
14
- typeAheadSize?: TypeaheadBsSizes;
14
+ typeAheadSize?: 'sm' | 'md' | 'lg';
15
15
  showSelectedContacts?: boolean;
16
16
  clearButton?: boolean;
17
17
  multiple?: boolean;
@@ -28,10 +28,14 @@ export interface IState {
28
28
  options: IContact[];
29
29
  selectedContacts?: IContact[];
30
30
  isLoading: boolean;
31
+ isOpen: boolean;
32
+ searchValue: string;
33
+ focusedItemIndex: number | null;
31
34
  }
32
35
  export declare class ContactSelectorInternal extends React.Component<IProps, IState> {
33
- typeahead: any;
34
36
  controller: AbortController;
37
+ searchTimeout: NodeJS.Timeout | null;
38
+ inputRef: React.RefObject<HTMLInputElement>;
35
39
  static defaultProps: Partial<IProps>;
36
40
  constructor(props: IProps);
37
41
  getSelectedLabel: (contact: IContact) => string;
@@ -39,9 +43,15 @@ export declare class ContactSelectorInternal extends React.Component<IProps, ISt
39
43
  isValidContactForQuery: (c: IContact) => boolean;
40
44
  componentDidUpdate(prevProps: IProps): void;
41
45
  onChange: (contacts: IContact[]) => Promise<void>;
42
- onFocus: (event: Event) => void;
43
- handleSearch: (query: string | number) => Promise<void>;
44
- renderMenuItemChildren: (option: IContact, p: any) => React.JSX.Element;
46
+ handleSearch: (query: string) => Promise<void>;
47
+ handleInputChange: (value: string) => void;
48
+ handleSelect: (event: any, selection: any) => void;
49
+ handleRemoveContact: (contactToRemove: IContact) => void;
50
+ handleKeyDown: (event: React.KeyboardEvent) => void;
51
+ handleFocus: () => void;
52
+ handleBlur: () => void;
53
+ handleClear: () => void;
54
+ onToggle: () => void;
45
55
  render(): React.JSX.Element;
46
56
  }
47
57
  //# sourceMappingURL=ContactSelectorInternal.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ContactSelectorInternal.d.ts","sourceRoot":"","sources":["../../../../../src/components/shared/input/ContactSelectorInternal.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,wCAAwC,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,iDAAiD,CAAC;AAMrF,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAA+B,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAE1F,MAAM,WAAW,MAAM;IACnB,QAAQ,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,GAAG,CAAC;IACxC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iBAAiB,CAAC,EAAE,kBAAkB,CAAC;IACvC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,gBAAgB,CAAC,EAAE,QAAQ,EAAE,CAAC;IAC9B,iBAAiB,CAAC,EAAE,QAAQ,EAAE,CAAC;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,aAAa,CAAC,EAAE,gBAAgB,CAAC;IACjC,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,WAAW,CAAC,EAAE,CAAC,MAAM,KAAA,EAAE,KAAK,KAAA,EAAE,GAAG,KAAA,KAAK,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC;CAClE;AAED,MAAM,WAAW,MAAM;IACnB,OAAO,EAAE,QAAQ,EAAE,CAAC;IACpB,gBAAgB,CAAC,EAAE,QAAQ,EAAE,CAAC;IAC9B,SAAS,EAAE,OAAO,CAAC;CACtB;AAGD,qBAAa,uBAAwB,SAAQ,KAAK,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC;IACxE,SAAS,EAAE,GAAG,CAAC;IACf,UAAU,EAAE,eAAe,CAAC;IAE5B,MAAM,CAAC,YAAY,EAAE,OAAO,CAAC,MAAM,CAAC,CAalC;gBAEU,KAAK,EAAE,MAAM;IAUzB,gBAAgB,YAAa,QAAQ,KAAG,MAAM,CAS5C;IAEF,mBAAmB,aAAc,QAAQ,EAAE,KAAG,QAAQ,EAAE,CAGtD;IAEF,sBAAsB,MAAO,QAAQ,KAAG,OAAO,CAE7C;IAEF,kBAAkB,CAAC,SAAS,EAAE,MAAM;IAoBpC,QAAQ,aAAoB,QAAQ,EAAE,mBAKpC;IAEF,OAAO,UAAW,KAAK,UAIrB;IAEF,YAAY,UAAiB,MAAM,GAAG,MAAM,mBA0C1C;IACF,sBAAsB,WAAY,QAAQ,+BAIxC;IAEF,MAAM;CAgCT"}
1
+ {"version":3,"file":"ContactSelectorInternal.d.ts","sourceRoot":"","sources":["../../../../../src/components/shared/input/ContactSelectorInternal.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,wCAAwC,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,iDAAiD,CAAC;AAsBrF,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,WAAW,MAAM;IACnB,QAAQ,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,GAAG,CAAC;IACxC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iBAAiB,CAAC,EAAE,kBAAkB,CAAC;IACvC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,gBAAgB,CAAC,EAAE,QAAQ,EAAE,CAAC;IAC9B,iBAAiB,CAAC,EAAE,QAAQ,EAAE,CAAC;IAC/B,qBAAqB,CAAC,EAAE,QAAQ,EAAE,CAAC;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,aAAa,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IACnC,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,WAAW,CAAC,EAAE,CAAC,MAAM,KAAA,EAAE,KAAK,KAAA,EAAE,GAAG,KAAA,KAAK,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC;CAClE;AAED,MAAM,WAAW,MAAM;IACnB,OAAO,EAAE,QAAQ,EAAE,CAAC;IACpB,gBAAgB,CAAC,EAAE,QAAQ,EAAE,CAAC;IAC9B,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,OAAO,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;CACnC;AAED,qBAAa,uBAAwB,SAAQ,KAAK,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC;IACxE,UAAU,EAAE,eAAe,CAAC;IAC5B,aAAa,EAAE,MAAM,CAAC,OAAO,GAAG,IAAI,CAAQ;IAC5C,QAAQ,oCAAuC;IAE/C,MAAM,CAAC,YAAY,EAAE,OAAO,CAAC,MAAM,CAAC,CAalC;gBAEU,KAAK,EAAE,MAAM;IAYzB,gBAAgB,GAAI,SAAS,QAAQ,KAAG,MAAM,CAS5C;IAEF,mBAAmB,GAAI,UAAU,QAAQ,EAAE,KAAG,QAAQ,EAAE,CAGtD;IAEF,sBAAsB,GAAI,GAAG,QAAQ,KAAG,OAAO,CAE7C;IAEF,kBAAkB,CAAC,SAAS,EAAE,MAAM;IAmBpC,QAAQ,GAAU,UAAU,QAAQ,EAAE,mBAKpC;IAEF,YAAY,GAAU,OAAO,MAAM,mBA0CjC;IAEF,iBAAiB,GAAI,OAAO,MAAM,UAiBhC;IAEF,YAAY,GAAI,OAAO,GAAG,EAAE,WAAW,GAAG,UAkBxC;IAEF,mBAAmB,GAAI,iBAAiB,QAAQ,UAI9C;IAEF,aAAa,GAAI,OAAO,KAAK,CAAC,aAAa,UAkCzC;IAEF,WAAW,aAIT;IAEF,UAAU,aAKR;IAEF,WAAW,aAGT;IAEF,QAAQ,aAEN;IAEF,MAAM;CA8GT"}
@@ -8,20 +8,23 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
8
8
  });
9
9
  };
10
10
  import { contacts } from '@cee-eng/hydrajs';
11
+ import { Button, Label, LabelGroup, MenuToggle, Select, SelectList, SelectOption, Spinner, TextInputGroup, TextInputGroupMain, TextInputGroupUtilities, } from '@patternfly/react-core';
12
+ import TimesCircleIcon from '@patternfly/react-icons/dist/esm/icons/times-circle-icon';
13
+ import { haltEvent } from '@rh-support/utils';
11
14
  import assign from 'lodash/assign';
12
15
  import differenceBy from 'lodash/differenceBy';
13
16
  import filter from 'lodash/filter';
14
17
  import isEmpty from 'lodash/isEmpty';
15
18
  import unionBy from 'lodash/unionBy';
16
19
  import React from 'react';
17
- import { AsyncTypeahead, Highlighter } from 'react-bootstrap-typeahead';
18
- // https://github.com/ericgio/react-bootstrap-typeahead/blob/master/docs/Props.md
19
20
  export class ContactSelectorInternal extends React.Component {
20
21
  constructor(props) {
21
22
  super(props);
23
+ this.searchTimeout = null;
24
+ this.inputRef = React.createRef();
22
25
  this.getSelectedLabel = (contact) => {
23
26
  if (!contact) {
24
- return undefined;
27
+ return '';
25
28
  }
26
29
  const userName = contact.internalSso || contact.ssoUsername || '';
27
30
  const fullName = contact.fullNameCustom
@@ -31,7 +34,7 @@ export class ContactSelectorInternal extends React.Component {
31
34
  };
32
35
  this.getContactsSelected = (contacts) => {
33
36
  if (!contacts)
34
- return undefined;
37
+ return [];
35
38
  return filter(contacts, (c) => this.isValidContactForQuery(c));
36
39
  };
37
40
  this.isValidContactForQuery = (c) => {
@@ -43,11 +46,6 @@ export class ContactSelectorInternal extends React.Component {
43
46
  this.props.onSelect(contacts);
44
47
  }
45
48
  });
46
- this.onFocus = (event) => {
47
- if (!this.state.selectedContacts && isEmpty(this.state.options) && this.props.contactListParams) {
48
- this.handleSearch('');
49
- }
50
- };
51
49
  this.handleSearch = (query) => __awaiter(this, void 0, void 0, function* () {
52
50
  if (query == null) {
53
51
  return;
@@ -73,7 +71,7 @@ export class ContactSelectorInternal extends React.Component {
73
71
  const response = yield contacts.getSFDCContacts(queryParams, this.controller.signal);
74
72
  const options = response && response.items && response.items.length ? this.getContactsSelected(response.items) : [];
75
73
  this.setState({
76
- options: differenceBy(options, this.props.contactsToExclude, 'ssoUsername'),
74
+ options: differenceBy(options, this.props.contactsToExclude || [], 'ssoUsername'),
77
75
  isLoading: false,
78
76
  });
79
77
  }
@@ -85,35 +83,147 @@ export class ContactSelectorInternal extends React.Component {
85
83
  });
86
84
  }
87
85
  });
88
- this.renderMenuItemChildren = (option, p) => (React.createElement(Highlighter, { key: option.ssoUsername, search: p.text }, this.getSelectedLabel(option)));
89
- this.typeahead = React.createRef();
86
+ this.handleInputChange = (value) => {
87
+ this.setState({ searchValue: value });
88
+ // Clear existing timeout
89
+ if (this.searchTimeout) {
90
+ clearTimeout(this.searchTimeout);
91
+ }
92
+ // Set new timeout for debounced search
93
+ this.searchTimeout = setTimeout(() => {
94
+ if (value.length >= (this.props.minLength || 0)) {
95
+ this.handleSearch(value);
96
+ this.setState({ isOpen: true });
97
+ }
98
+ else if (value.length === 0) {
99
+ this.setState({ options: [], isOpen: false });
100
+ }
101
+ }, this.props.debounceDelay || 300);
102
+ };
103
+ this.handleSelect = (event, selection) => {
104
+ if (this.props.multiple) {
105
+ const currentSelected = this.state.selectedContacts || [];
106
+ const isAlreadySelected = currentSelected.some((c) => c.ssoUsername === selection.ssoUsername);
107
+ if (isAlreadySelected) {
108
+ const newSelected = currentSelected.filter((c) => c.ssoUsername !== selection.ssoUsername);
109
+ this.onChange(newSelected);
110
+ }
111
+ else {
112
+ const newSelected = [...currentSelected, selection];
113
+ this.onChange(newSelected);
114
+ }
115
+ // Clear search value after selection in multiple mode
116
+ this.setState({ searchValue: '' });
117
+ }
118
+ else {
119
+ this.onChange([selection]);
120
+ this.setState({ isOpen: false, searchValue: '' });
121
+ }
122
+ };
123
+ this.handleRemoveContact = (contactToRemove) => {
124
+ const currentSelected = this.state.selectedContacts || [];
125
+ const newSelected = currentSelected.filter((c) => c.ssoUsername !== contactToRemove.ssoUsername);
126
+ this.onChange(newSelected);
127
+ };
128
+ this.handleKeyDown = (event) => {
129
+ const { options, focusedItemIndex, isOpen } = this.state;
130
+ if (!isOpen || options.length === 0)
131
+ return;
132
+ switch (event.key) {
133
+ case 'ArrowDown':
134
+ event.preventDefault();
135
+ this.setState((prevState) => ({
136
+ focusedItemIndex: prevState.focusedItemIndex === null || prevState.focusedItemIndex >= options.length - 1
137
+ ? 0
138
+ : prevState.focusedItemIndex + 1,
139
+ }));
140
+ break;
141
+ case 'ArrowUp':
142
+ event.preventDefault();
143
+ this.setState((prevState) => ({
144
+ focusedItemIndex: prevState.focusedItemIndex === null || prevState.focusedItemIndex <= 0
145
+ ? options.length - 1
146
+ : prevState.focusedItemIndex - 1,
147
+ }));
148
+ break;
149
+ case 'Enter':
150
+ event.preventDefault();
151
+ if (focusedItemIndex !== null && options[focusedItemIndex]) {
152
+ this.handleSelect(null, options[focusedItemIndex]);
153
+ }
154
+ break;
155
+ case 'Escape':
156
+ this.setState({ isOpen: false, focusedItemIndex: null });
157
+ break;
158
+ }
159
+ };
160
+ this.handleFocus = () => {
161
+ if (this.state.searchValue.length >= (this.props.minLength || 0)) {
162
+ this.setState({ isOpen: true });
163
+ }
164
+ };
165
+ this.handleBlur = () => {
166
+ // Delay closing to allow for clicks on menu items
167
+ setTimeout(() => {
168
+ this.setState({ isOpen: false, focusedItemIndex: null });
169
+ }, 150);
170
+ };
171
+ this.handleClear = () => {
172
+ this.setState({ searchValue: '', options: [], isOpen: false });
173
+ this.onChange([]);
174
+ };
175
+ this.onToggle = () => {
176
+ this.setState((prevState) => ({ isOpen: !prevState.isOpen }));
177
+ };
90
178
  this.state = {
91
179
  isLoading: false,
92
- selectedContacts: this.getContactsSelected(props.selectedContacts),
180
+ selectedContacts: this.getContactsSelected(props.selectedContacts || []),
93
181
  options: [],
182
+ isOpen: false,
183
+ searchValue: '',
184
+ focusedItemIndex: null,
94
185
  };
95
186
  }
96
187
  componentDidUpdate(prevProps) {
97
- if (!isEmpty(prevProps.selectedContacts) && isEmpty(this.props.selectedContacts)) {
188
+ if (!isEmpty(prevProps.selectedContacts || []) && isEmpty(this.props.selectedContacts || [])) {
98
189
  this.setState({ selectedContacts: [], options: [] });
99
- this.typeahead.current.clear();
100
190
  }
101
191
  if (this.props.showSelectedContacts) {
102
- if (prevProps.selectedContacts.length !== this.props.selectedContacts.length) {
103
- this.setState({ selectedContacts: this.getContactsSelected(this.props.selectedContacts) });
192
+ const prevSelected = prevProps.selectedContacts || [];
193
+ const currentSelected = this.props.selectedContacts || [];
194
+ if (prevSelected.length !== currentSelected.length) {
195
+ this.setState({ selectedContacts: this.getContactsSelected(currentSelected) });
104
196
  }
105
197
  else {
106
- const unionOldNew = unionBy(prevProps.selectedContacts, this.props.selectedContacts, 'ssoUsername');
107
- if (unionOldNew.length !== this.props.selectedContacts.length ||
108
- prevProps.selectedContacts.length !== this.props.selectedContacts.length) {
109
- this.setState({ selectedContacts: this.getContactsSelected(this.props.selectedContacts) });
198
+ const unionOldNew = unionBy(prevSelected, currentSelected, 'ssoUsername');
199
+ if (unionOldNew.length !== currentSelected.length || prevSelected.length !== currentSelected.length) {
200
+ this.setState({ selectedContacts: this.getContactsSelected(currentSelected) });
110
201
  }
111
202
  }
112
203
  }
113
204
  }
114
205
  render() {
115
- const conditionalProps = Object.assign({}, (this.props.renderToken ? { renderToken: this.props.renderToken } : undefined));
116
- return (React.createElement(AsyncTypeahead, Object.assign({ id: this.props.id + '-contact-select', className: `${this.props.className} contact-select`, defaultInputValue: "", autoFocus: this.props.autoFocus, clearButton: this.props.clearButton, isLoading: this.state.isLoading || this.props.isUpdating, options: this.state.options, selected: !isEmpty(this.state.selectedContacts) ? this.state.selectedContacts : [], onChange: this.onChange, onFocus: this.onFocus, labelKey: this.getSelectedLabel, onSearch: this.handleSearch, delay: this.props.debounceDelay, maxResults: this.props.maxResults, placeholder: this.props.placeholder, ref: this.typeahead, renderMenuItemChildren: this.renderMenuItemChildren, size: this.props.typeAheadSize, useCache: this.props.useCache, minLength: this.props.minLength, disabled: this.props.disabled || this.props.isUpdating, multiple: this.props.multiple }, conditionalProps)));
206
+ const { selectedContacts = [], options, isLoading, isOpen, searchValue, focusedItemIndex } = this.state;
207
+ // For multiple selection, always show the search value so typed text is visible
208
+ // For single selection, show selected contact label or search value
209
+ const displayValue = this.props.multiple
210
+ ? searchValue
211
+ : selectedContacts[0]
212
+ ? this.getSelectedLabel(selectedContacts[0])
213
+ : searchValue;
214
+ const toggle = (toggleRef) => (React.createElement(MenuToggle, { ref: toggleRef, variant: "typeahead", onClick: this.onToggle, isExpanded: isOpen, isDisabled: this.props.disabled || this.props.isUpdating, isFullWidth: true },
215
+ React.createElement(TextInputGroup, { isPlain: true },
216
+ React.createElement(TextInputGroupMain, { value: displayValue, onChange: (_, value) => this.handleInputChange(value), onFocus: this.handleFocus, onBlur: this.handleBlur, onKeyDown: this.handleKeyDown, placeholder: this.props.placeholder || 'Search contact by name or username', ref: this.inputRef, autoComplete: "off", isExpanded: isOpen, role: "combobox" }, this.props.multiple && selectedContacts.length > 0 && (React.createElement(LabelGroup, { "aria-label": "Selected contacts" }, selectedContacts.map((contact, index) => {
217
+ var _a, _b;
218
+ const isDisabled = !!((_b = (_a = this.props) === null || _a === void 0 ? void 0 : _a.disableContactRemoval) === null || _b === void 0 ? void 0 : _b.find((v) => v.ssoUsername === contact.ssoUsername));
219
+ return (React.createElement(Label, { key: contact.ssoUsername, variant: "outline", color: "blue", onClick: haltEvent, onClose: () => this.handleRemoveContact(contact), isDisabled: isDisabled }, this.getSelectedLabel(contact)));
220
+ })))),
221
+ React.createElement(TextInputGroupUtilities, null,
222
+ isLoading && React.createElement(Spinner, { size: "sm" }),
223
+ this.props.clearButton && (searchValue || selectedContacts.length > 0) && (React.createElement(Button, { variant: "plain", icon: React.createElement(TimesCircleIcon, null), onClick: this.handleClear, "aria-label": "Clear input" }))))));
224
+ return (React.createElement("div", { className: `${this.props.className} contact-select` },
225
+ React.createElement(Select, { id: this.props.id + '-contact-select', isOpen: isOpen, selected: this.props.multiple ? selectedContacts : selectedContacts[0] || null, onSelect: this.handleSelect, onOpenChange: (isOpen) => this.setState({ isOpen }), toggle: toggle, shouldFocusFirstItemOnOpen: false, shouldFocusToggleOnSelect: false, popperProps: { direction: 'down', enableFlip: false }, isScrollable: true, onBlur: this.handleBlur, "data-tracking-id": "external-case-contact-selector", className: "external-case-contact-selector" },
226
+ React.createElement(SelectList, { isAriaMultiselectable: this.props.multiple }, options.length > 0 ? (options.map((contact, index) => (React.createElement(SelectOption, { key: contact.ssoUsername, value: contact, isFocused: focusedItemIndex === index, isSelected: selectedContacts.some((c) => c.ssoUsername === contact.ssoUsername) }, this.getSelectedLabel(contact))))) : (React.createElement(SelectOption, { isDisabled: true }, isLoading ? 'Searching...' : searchValue ? 'No matches found.' : 'Type to search...'))))));
117
227
  }
118
228
  }
119
229
  ContactSelectorInternal.defaultProps = {
@@ -1 +1 @@
1
- {"version":3,"file":"useIsSectionValid.d.ts","sourceRoot":"","sources":["../../../../src/components/shared/useIsSectionValid.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAqB,MAAM,OAAO,CAAC;AAuB1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAKnE,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,gBAAgB;;;;;EAgR9D"}
1
+ {"version":3,"file":"useIsSectionValid.d.ts","sourceRoot":"","sources":["../../../../src/components/shared/useIsSectionValid.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAgC,MAAM,OAAO,CAAC;AAuBrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAKnE,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,gBAAgB;;;;;EAoP9D"}